diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-10-27 07:38:02 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-10-27 07:38:02 -0400 |
commit | 5292ae11babca23c3ff82593630d2d7eebc350a9 (patch) | |
tree | 30a6c8123b35686098f306ea39398b7621f42054 /arch | |
parent | b0f209898f1a177bd503d49215b8c6628797a81c (diff) | |
parent | 0173a3265b228da319ceb9c1ec6a5682fd1b2d92 (diff) |
Merge commit 'v2.6.28-rc2' into x86/uv
Diffstat (limited to 'arch')
882 files changed, 69408 insertions, 6592 deletions
diff --git a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c index 8509dad31204..18a3ea1aac51 100644 --- a/arch/alpha/kernel/osf_sys.c +++ b/arch/alpha/kernel/osf_sys.c | |||
@@ -165,14 +165,11 @@ osf_getdirentries(unsigned int fd, struct osf_dirent __user *dirent, | |||
165 | buf.error = 0; | 165 | buf.error = 0; |
166 | 166 | ||
167 | error = vfs_readdir(file, osf_filldir, &buf); | 167 | error = vfs_readdir(file, osf_filldir, &buf); |
168 | if (error < 0) | 168 | if (error >= 0) |
169 | goto out_putf; | 169 | error = buf.error; |
170 | |||
171 | error = buf.error; | ||
172 | if (count != buf.count) | 170 | if (count != buf.count) |
173 | error = count - buf.count; | 171 | error = count - buf.count; |
174 | 172 | ||
175 | out_putf: | ||
176 | fput(file); | 173 | fput(file); |
177 | out: | 174 | out: |
178 | return error; | 175 | return error; |
@@ -986,10 +983,12 @@ asmlinkage int | |||
986 | osf_select(int n, fd_set __user *inp, fd_set __user *outp, fd_set __user *exp, | 983 | osf_select(int n, fd_set __user *inp, fd_set __user *outp, fd_set __user *exp, |
987 | struct timeval32 __user *tvp) | 984 | struct timeval32 __user *tvp) |
988 | { | 985 | { |
989 | s64 timeout = MAX_SCHEDULE_TIMEOUT; | 986 | struct timespec end_time, *to = NULL; |
990 | if (tvp) { | 987 | if (tvp) { |
991 | time_t sec, usec; | 988 | time_t sec, usec; |
992 | 989 | ||
990 | to = &end_time; | ||
991 | |||
993 | if (!access_ok(VERIFY_READ, tvp, sizeof(*tvp)) | 992 | if (!access_ok(VERIFY_READ, tvp, sizeof(*tvp)) |
994 | || __get_user(sec, &tvp->tv_sec) | 993 | || __get_user(sec, &tvp->tv_sec) |
995 | || __get_user(usec, &tvp->tv_usec)) { | 994 | || __get_user(usec, &tvp->tv_usec)) { |
@@ -999,14 +998,13 @@ osf_select(int n, fd_set __user *inp, fd_set __user *outp, fd_set __user *exp, | |||
999 | if (sec < 0 || usec < 0) | 998 | if (sec < 0 || usec < 0) |
1000 | return -EINVAL; | 999 | return -EINVAL; |
1001 | 1000 | ||
1002 | if ((unsigned long) sec < MAX_SELECT_SECONDS) { | 1001 | if (poll_select_set_timeout(to, sec, usec * NSEC_PER_USEC)) |
1003 | timeout = (usec + 1000000/HZ - 1) / (1000000/HZ); | 1002 | return -EINVAL; |
1004 | timeout += sec * (unsigned long) HZ; | 1003 | |
1005 | } | ||
1006 | } | 1004 | } |
1007 | 1005 | ||
1008 | /* OSF does not copy back the remaining time. */ | 1006 | /* OSF does not copy back the remaining time. */ |
1009 | return core_sys_select(n, inp, outp, exp, &timeout); | 1007 | return core_sys_select(n, inp, outp, exp, to); |
1010 | } | 1008 | } |
1011 | 1009 | ||
1012 | struct rusage32 { | 1010 | struct rusage32 { |
diff --git a/arch/alpha/oprofile/common.c b/arch/alpha/oprofile/common.c index 7c3d5ec6ec67..bd8ac533a504 100644 --- a/arch/alpha/oprofile/common.c +++ b/arch/alpha/oprofile/common.c | |||
@@ -106,7 +106,7 @@ op_axp_stop(void) | |||
106 | } | 106 | } |
107 | 107 | ||
108 | static int | 108 | static int |
109 | op_axp_create_files(struct super_block * sb, struct dentry * root) | 109 | op_axp_create_files(struct super_block *sb, struct dentry *root) |
110 | { | 110 | { |
111 | int i; | 111 | int i; |
112 | 112 | ||
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index df39d20f7425..5021db2217ed 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -356,7 +356,7 @@ config ARCH_IXP4XX | |||
356 | select GENERIC_GPIO | 356 | select GENERIC_GPIO |
357 | select GENERIC_TIME | 357 | select GENERIC_TIME |
358 | select GENERIC_CLOCKEVENTS | 358 | select GENERIC_CLOCKEVENTS |
359 | select ZONE_DMA if PCI | 359 | select DMABOUNCE if PCI |
360 | help | 360 | help |
361 | Support for Intel's IXP4XX (XScale) family of processors. | 361 | Support for Intel's IXP4XX (XScale) family of processors. |
362 | 362 | ||
@@ -540,16 +540,15 @@ config ARCH_OMAP | |||
540 | help | 540 | help |
541 | Support for TI's OMAP platform (OMAP1 and OMAP2). | 541 | Support for TI's OMAP platform (OMAP1 and OMAP2). |
542 | 542 | ||
543 | config ARCH_MSM7X00A | 543 | config ARCH_MSM |
544 | bool "Qualcomm MSM7X00A" | 544 | bool "Qualcomm MSM" |
545 | select GENERIC_TIME | 545 | select GENERIC_TIME |
546 | select GENERIC_CLOCKEVENTS | 546 | select GENERIC_CLOCKEVENTS |
547 | help | 547 | help |
548 | Support for Qualcomm MSM7X00A based systems. This runs on the ARM11 | 548 | Support for Qualcomm MSM7K based systems. This runs on the ARM11 |
549 | apps processor of the MSM7X00A and depends on a shared memory | 549 | apps processor of the MSM7K and depends on a shared memory |
550 | interface to the ARM9 modem processor which runs the baseband stack | 550 | interface to the ARM9 modem processor which runs the baseband stack |
551 | and controls some vital subsystems (clock and power control, etc). | 551 | and controls some vital subsystems (clock and power control, etc). |
552 | <http://www.cdmatech.com/products/msm7200_chipset_solution.jsp> | ||
553 | 552 | ||
554 | endchoice | 553 | endchoice |
555 | 554 | ||
@@ -1256,6 +1255,8 @@ source "drivers/hid/Kconfig" | |||
1256 | 1255 | ||
1257 | source "drivers/usb/Kconfig" | 1256 | source "drivers/usb/Kconfig" |
1258 | 1257 | ||
1258 | source "drivers/uwb/Kconfig" | ||
1259 | |||
1259 | source "drivers/mmc/Kconfig" | 1260 | source "drivers/mmc/Kconfig" |
1260 | 1261 | ||
1261 | source "drivers/memstick/Kconfig" | 1262 | source "drivers/memstick/Kconfig" |
diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 7d5121260fda..bd6e28115ebb 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile | |||
@@ -141,7 +141,7 @@ endif | |||
141 | machine-$(CONFIG_ARCH_MX3) := mx3 | 141 | machine-$(CONFIG_ARCH_MX3) := mx3 |
142 | machine-$(CONFIG_ARCH_ORION5X) := orion5x | 142 | machine-$(CONFIG_ARCH_ORION5X) := orion5x |
143 | plat-$(CONFIG_PLAT_ORION) := orion | 143 | plat-$(CONFIG_PLAT_ORION) := orion |
144 | machine-$(CONFIG_ARCH_MSM7X00A) := msm | 144 | machine-$(CONFIG_ARCH_MSM) := msm |
145 | machine-$(CONFIG_ARCH_LOKI) := loki | 145 | machine-$(CONFIG_ARCH_LOKI) := loki |
146 | machine-$(CONFIG_ARCH_MV78XX0) := mv78xx0 | 146 | machine-$(CONFIG_ARCH_MV78XX0) := mv78xx0 |
147 | 147 | ||
diff --git a/arch/arm/common/Kconfig b/arch/arm/common/Kconfig index 2e32acca02fb..86b5e6982660 100644 --- a/arch/arm/common/Kconfig +++ b/arch/arm/common/Kconfig | |||
@@ -13,10 +13,10 @@ config ICST307 | |||
13 | config SA1111 | 13 | config SA1111 |
14 | bool | 14 | bool |
15 | select DMABOUNCE if !ARCH_PXA | 15 | select DMABOUNCE if !ARCH_PXA |
16 | select ZONE_DMA if !ARCH_PXA | ||
17 | 16 | ||
18 | config DMABOUNCE | 17 | config DMABOUNCE |
19 | bool | 18 | bool |
19 | select ZONE_DMA | ||
20 | 20 | ||
21 | config TIMER_ACORN | 21 | config TIMER_ACORN |
22 | bool | 22 | bool |
diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c index fb86f248aab8..47ccec95f3e8 100644 --- a/arch/arm/common/sa1111.c +++ b/arch/arm/common/sa1111.c | |||
@@ -581,6 +581,7 @@ sa1111_init_one_child(struct sa1111 *sachip, struct resource *parent, | |||
581 | goto out; | 581 | goto out; |
582 | } | 582 | } |
583 | 583 | ||
584 | #ifdef CONFIG_DMABOUNCE | ||
584 | /* | 585 | /* |
585 | * If the parent device has a DMA mask associated with it, | 586 | * If the parent device has a DMA mask associated with it, |
586 | * propagate it down to the children. | 587 | * propagate it down to the children. |
@@ -598,6 +599,7 @@ sa1111_init_one_child(struct sa1111 *sachip, struct resource *parent, | |||
598 | } | 599 | } |
599 | } | 600 | } |
600 | } | 601 | } |
602 | #endif | ||
601 | 603 | ||
602 | out: | 604 | out: |
603 | return ret; | 605 | return ret; |
@@ -937,7 +939,7 @@ static int sa1111_resume(struct platform_device *dev) | |||
937 | #define sa1111_resume NULL | 939 | #define sa1111_resume NULL |
938 | #endif | 940 | #endif |
939 | 941 | ||
940 | static int sa1111_probe(struct platform_device *pdev) | 942 | static int __devinit sa1111_probe(struct platform_device *pdev) |
941 | { | 943 | { |
942 | struct resource *mem; | 944 | struct resource *mem; |
943 | int irq; | 945 | int irq; |
diff --git a/arch/arm/configs/corgi_defconfig b/arch/arm/configs/corgi_defconfig index 9b8748a8d9dd..f3af0b593eb0 100644 --- a/arch/arm/configs/corgi_defconfig +++ b/arch/arm/configs/corgi_defconfig | |||
@@ -1,71 +1,111 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.15-rc2 | 3 | # Linux kernel version: 2.6.27 |
4 | # Mon Nov 28 10:30:09 2005 | 4 | # Mon Oct 20 10:12:23 2008 |
5 | # | 5 | # |
6 | CONFIG_ARM=y | 6 | CONFIG_ARM=y |
7 | CONFIG_SYS_SUPPORTS_APM_EMULATION=y | ||
8 | CONFIG_GENERIC_GPIO=y | ||
9 | CONFIG_GENERIC_TIME=y | ||
10 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
7 | CONFIG_MMU=y | 11 | CONFIG_MMU=y |
8 | CONFIG_UID16=y | 12 | # CONFIG_NO_IOPORT is not set |
13 | CONFIG_GENERIC_HARDIRQS=y | ||
14 | CONFIG_STACKTRACE_SUPPORT=y | ||
15 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
16 | CONFIG_LOCKDEP_SUPPORT=y | ||
17 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
18 | CONFIG_HARDIRQS_SW_RESEND=y | ||
19 | CONFIG_GENERIC_IRQ_PROBE=y | ||
9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 20 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
21 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
22 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
23 | CONFIG_GENERIC_HWEIGHT=y | ||
10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 24 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
25 | CONFIG_ARCH_MTD_XIP=y | ||
26 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
27 | CONFIG_VECTORS_BASE=0xffff0000 | ||
28 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
11 | 29 | ||
12 | # | 30 | # |
13 | # Code maturity level options | 31 | # General setup |
14 | # | 32 | # |
15 | CONFIG_EXPERIMENTAL=y | 33 | CONFIG_EXPERIMENTAL=y |
16 | CONFIG_CLEAN_COMPILE=y | ||
17 | CONFIG_BROKEN_ON_SMP=y | 34 | CONFIG_BROKEN_ON_SMP=y |
18 | CONFIG_LOCK_KERNEL=y | 35 | CONFIG_LOCK_KERNEL=y |
19 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 36 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
20 | |||
21 | # | ||
22 | # General setup | ||
23 | # | ||
24 | CONFIG_LOCALVERSION="" | 37 | CONFIG_LOCALVERSION="" |
25 | CONFIG_LOCALVERSION_AUTO=y | 38 | CONFIG_LOCALVERSION_AUTO=y |
26 | CONFIG_SWAP=y | 39 | CONFIG_SWAP=y |
27 | CONFIG_SYSVIPC=y | 40 | CONFIG_SYSVIPC=y |
41 | CONFIG_SYSVIPC_SYSCTL=y | ||
28 | # CONFIG_POSIX_MQUEUE is not set | 42 | # CONFIG_POSIX_MQUEUE is not set |
29 | CONFIG_BSD_PROCESS_ACCT=y | 43 | CONFIG_BSD_PROCESS_ACCT=y |
30 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | 44 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set |
31 | CONFIG_SYSCTL=y | 45 | # CONFIG_TASKSTATS is not set |
32 | # CONFIG_AUDIT is not set | 46 | # CONFIG_AUDIT is not set |
33 | CONFIG_HOTPLUG=y | ||
34 | CONFIG_KOBJECT_UEVENT=y | ||
35 | # CONFIG_IKCONFIG is not set | 47 | # CONFIG_IKCONFIG is not set |
36 | CONFIG_INITRAMFS_SOURCE="" | 48 | CONFIG_LOG_BUF_SHIFT=14 |
49 | # CONFIG_CGROUPS is not set | ||
50 | # CONFIG_GROUP_SCHED is not set | ||
51 | CONFIG_SYSFS_DEPRECATED=y | ||
52 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
53 | # CONFIG_RELAY is not set | ||
54 | # CONFIG_NAMESPACES is not set | ||
55 | # CONFIG_BLK_DEV_INITRD is not set | ||
56 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
57 | CONFIG_SYSCTL=y | ||
37 | CONFIG_EMBEDDED=y | 58 | CONFIG_EMBEDDED=y |
59 | CONFIG_UID16=y | ||
60 | CONFIG_SYSCTL_SYSCALL=y | ||
38 | CONFIG_KALLSYMS=y | 61 | CONFIG_KALLSYMS=y |
39 | # CONFIG_KALLSYMS_ALL is not set | 62 | # CONFIG_KALLSYMS_ALL is not set |
40 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 63 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
64 | CONFIG_HOTPLUG=y | ||
41 | CONFIG_PRINTK=y | 65 | CONFIG_PRINTK=y |
42 | CONFIG_BUG=y | 66 | CONFIG_BUG=y |
67 | CONFIG_ELF_CORE=y | ||
68 | CONFIG_COMPAT_BRK=y | ||
43 | CONFIG_BASE_FULL=y | 69 | CONFIG_BASE_FULL=y |
44 | CONFIG_FUTEX=y | 70 | CONFIG_FUTEX=y |
71 | CONFIG_ANON_INODES=y | ||
45 | CONFIG_EPOLL=y | 72 | CONFIG_EPOLL=y |
46 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 73 | CONFIG_SIGNALFD=y |
74 | CONFIG_TIMERFD=y | ||
75 | CONFIG_EVENTFD=y | ||
47 | CONFIG_SHMEM=y | 76 | CONFIG_SHMEM=y |
48 | CONFIG_CC_ALIGN_FUNCTIONS=0 | 77 | CONFIG_AIO=y |
49 | CONFIG_CC_ALIGN_LABELS=0 | 78 | CONFIG_VM_EVENT_COUNTERS=y |
50 | CONFIG_CC_ALIGN_LOOPS=0 | 79 | CONFIG_SLUB_DEBUG=y |
51 | CONFIG_CC_ALIGN_JUMPS=0 | 80 | # CONFIG_SLAB is not set |
81 | CONFIG_SLUB=y | ||
82 | # CONFIG_SLOB is not set | ||
83 | CONFIG_PROFILING=y | ||
84 | # CONFIG_MARKERS is not set | ||
85 | CONFIG_OPROFILE=m | ||
86 | CONFIG_HAVE_OPROFILE=y | ||
87 | # CONFIG_KPROBES is not set | ||
88 | CONFIG_HAVE_KPROBES=y | ||
89 | CONFIG_HAVE_KRETPROBES=y | ||
90 | CONFIG_HAVE_CLK=y | ||
91 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
92 | CONFIG_SLABINFO=y | ||
93 | CONFIG_RT_MUTEXES=y | ||
52 | # CONFIG_TINY_SHMEM is not set | 94 | # CONFIG_TINY_SHMEM is not set |
53 | CONFIG_BASE_SMALL=0 | 95 | CONFIG_BASE_SMALL=0 |
54 | |||
55 | # | ||
56 | # Loadable module support | ||
57 | # | ||
58 | CONFIG_MODULES=y | 96 | CONFIG_MODULES=y |
97 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
59 | CONFIG_MODULE_UNLOAD=y | 98 | CONFIG_MODULE_UNLOAD=y |
60 | CONFIG_MODULE_FORCE_UNLOAD=y | 99 | CONFIG_MODULE_FORCE_UNLOAD=y |
61 | CONFIG_OBSOLETE_MODPARM=y | ||
62 | # CONFIG_MODVERSIONS is not set | 100 | # CONFIG_MODVERSIONS is not set |
63 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 101 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
64 | CONFIG_KMOD=y | 102 | CONFIG_KMOD=y |
65 | 103 | CONFIG_BLOCK=y | |
66 | # | 104 | # CONFIG_LBD is not set |
67 | # Block layer | 105 | # CONFIG_BLK_DEV_IO_TRACE is not set |
68 | # | 106 | # CONFIG_LSF is not set |
107 | # CONFIG_BLK_DEV_BSG is not set | ||
108 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
69 | 109 | ||
70 | # | 110 | # |
71 | # IO Schedulers | 111 | # IO Schedulers |
@@ -79,50 +119,97 @@ CONFIG_DEFAULT_AS=y | |||
79 | # CONFIG_DEFAULT_CFQ is not set | 119 | # CONFIG_DEFAULT_CFQ is not set |
80 | # CONFIG_DEFAULT_NOOP is not set | 120 | # CONFIG_DEFAULT_NOOP is not set |
81 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 121 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
122 | CONFIG_CLASSIC_RCU=y | ||
82 | 123 | ||
83 | # | 124 | # |
84 | # System Type | 125 | # System Type |
85 | # | 126 | # |
127 | # CONFIG_ARCH_AAEC2000 is not set | ||
128 | # CONFIG_ARCH_INTEGRATOR is not set | ||
129 | # CONFIG_ARCH_REALVIEW is not set | ||
130 | # CONFIG_ARCH_VERSATILE is not set | ||
131 | # CONFIG_ARCH_AT91 is not set | ||
86 | # CONFIG_ARCH_CLPS7500 is not set | 132 | # CONFIG_ARCH_CLPS7500 is not set |
87 | # CONFIG_ARCH_CLPS711X is not set | 133 | # CONFIG_ARCH_CLPS711X is not set |
88 | # CONFIG_ARCH_CO285 is not set | ||
89 | # CONFIG_ARCH_EBSA110 is not set | 134 | # CONFIG_ARCH_EBSA110 is not set |
135 | # CONFIG_ARCH_EP93XX is not set | ||
90 | # CONFIG_ARCH_FOOTBRIDGE is not set | 136 | # CONFIG_ARCH_FOOTBRIDGE is not set |
91 | # CONFIG_ARCH_INTEGRATOR is not set | 137 | # CONFIG_ARCH_NETX is not set |
92 | # CONFIG_ARCH_IOP3XX is not set | 138 | # CONFIG_ARCH_H720X is not set |
93 | # CONFIG_ARCH_IXP4XX is not set | 139 | # CONFIG_ARCH_IMX is not set |
140 | # CONFIG_ARCH_IOP13XX is not set | ||
141 | # CONFIG_ARCH_IOP32X is not set | ||
142 | # CONFIG_ARCH_IOP33X is not set | ||
143 | # CONFIG_ARCH_IXP23XX is not set | ||
94 | # CONFIG_ARCH_IXP2000 is not set | 144 | # CONFIG_ARCH_IXP2000 is not set |
145 | # CONFIG_ARCH_IXP4XX is not set | ||
95 | # CONFIG_ARCH_L7200 is not set | 146 | # CONFIG_ARCH_L7200 is not set |
147 | # CONFIG_ARCH_KIRKWOOD is not set | ||
148 | # CONFIG_ARCH_KS8695 is not set | ||
149 | # CONFIG_ARCH_NS9XXX is not set | ||
150 | # CONFIG_ARCH_LOKI is not set | ||
151 | # CONFIG_ARCH_MV78XX0 is not set | ||
152 | # CONFIG_ARCH_MXC is not set | ||
153 | # CONFIG_ARCH_ORION5X is not set | ||
154 | # CONFIG_ARCH_PNX4008 is not set | ||
96 | CONFIG_ARCH_PXA=y | 155 | CONFIG_ARCH_PXA=y |
97 | # CONFIG_ARCH_RPC is not set | 156 | # CONFIG_ARCH_RPC is not set |
98 | # CONFIG_ARCH_SA1100 is not set | 157 | # CONFIG_ARCH_SA1100 is not set |
99 | # CONFIG_ARCH_S3C2410 is not set | 158 | # CONFIG_ARCH_S3C2410 is not set |
100 | # CONFIG_ARCH_SHARK is not set | 159 | # CONFIG_ARCH_SHARK is not set |
101 | # CONFIG_ARCH_LH7A40X is not set | 160 | # CONFIG_ARCH_LH7A40X is not set |
161 | # CONFIG_ARCH_DAVINCI is not set | ||
102 | # CONFIG_ARCH_OMAP is not set | 162 | # CONFIG_ARCH_OMAP is not set |
103 | # CONFIG_ARCH_VERSATILE is not set | 163 | # CONFIG_ARCH_MSM7X00A is not set |
104 | # CONFIG_ARCH_REALVIEW is not set | ||
105 | # CONFIG_ARCH_IMX is not set | ||
106 | # CONFIG_ARCH_H720X is not set | ||
107 | # CONFIG_ARCH_AAEC2000 is not set | ||
108 | 164 | ||
109 | # | 165 | # |
110 | # Intel PXA2xx Implementations | 166 | # Intel PXA2xx/PXA3xx Implementations |
111 | # | 167 | # |
168 | # CONFIG_ARCH_GUMSTIX is not set | ||
112 | # CONFIG_ARCH_LUBBOCK is not set | 169 | # CONFIG_ARCH_LUBBOCK is not set |
170 | # CONFIG_MACH_LOGICPD_PXA270 is not set | ||
113 | # CONFIG_MACH_MAINSTONE is not set | 171 | # CONFIG_MACH_MAINSTONE is not set |
172 | # CONFIG_MACH_MP900C is not set | ||
114 | # CONFIG_ARCH_PXA_IDP is not set | 173 | # CONFIG_ARCH_PXA_IDP is not set |
115 | CONFIG_PXA_SHARPSL=y | 174 | CONFIG_PXA_SHARPSL=y |
116 | CONFIG_PXA_SHARPSL_25x=y | ||
117 | # CONFIG_PXA_SHARPSL_27x is not set | ||
118 | CONFIG_MACH_POODLE=y | 175 | CONFIG_MACH_POODLE=y |
119 | CONFIG_MACH_CORGI=y | 176 | CONFIG_MACH_CORGI=y |
120 | CONFIG_MACH_SHEPHERD=y | 177 | CONFIG_MACH_SHEPHERD=y |
121 | CONFIG_MACH_HUSKY=y | 178 | CONFIG_MACH_HUSKY=y |
179 | # CONFIG_MACH_AKITA is not set | ||
180 | # CONFIG_MACH_SPITZ is not set | ||
181 | # CONFIG_MACH_BORZOI is not set | ||
122 | CONFIG_MACH_TOSA=y | 182 | CONFIG_MACH_TOSA=y |
183 | # CONFIG_ARCH_VIPER is not set | ||
184 | # CONFIG_ARCH_PXA_ESERIES is not set | ||
185 | # CONFIG_TRIZEPS_PXA is not set | ||
186 | # CONFIG_MACH_EM_X270 is not set | ||
187 | # CONFIG_MACH_COLIBRI is not set | ||
188 | # CONFIG_MACH_ZYLONITE is not set | ||
189 | # CONFIG_MACH_LITTLETON is not set | ||
190 | # CONFIG_MACH_TAVOREVB is not set | ||
191 | # CONFIG_MACH_SAAR is not set | ||
192 | # CONFIG_MACH_ARMCORE is not set | ||
193 | # CONFIG_MACH_CM_X300 is not set | ||
194 | # CONFIG_MACH_MAGICIAN is not set | ||
195 | # CONFIG_MACH_MIOA701 is not set | ||
196 | # CONFIG_MACH_PCM027 is not set | ||
197 | # CONFIG_ARCH_PXA_PALM is not set | ||
198 | # CONFIG_PXA_EZX is not set | ||
123 | CONFIG_PXA25x=y | 199 | CONFIG_PXA25x=y |
124 | CONFIG_PXA_SHARP_C7xx=y | 200 | CONFIG_PXA_SHARP_C7xx=y |
125 | CONFIG_PXA_SSP=y | 201 | CONFIG_PXA_SSP=y |
202 | # CONFIG_PXA_PWM is not set | ||
203 | # CONFIG_TOSA_BT is not set | ||
204 | CONFIG_PXA_HAVE_BOARD_IRQS=y | ||
205 | |||
206 | # | ||
207 | # Boot options | ||
208 | # | ||
209 | |||
210 | # | ||
211 | # Power management | ||
212 | # | ||
126 | 213 | ||
127 | # | 214 | # |
128 | # Processor Type | 215 | # Processor Type |
@@ -131,25 +218,30 @@ CONFIG_CPU_32=y | |||
131 | CONFIG_CPU_XSCALE=y | 218 | CONFIG_CPU_XSCALE=y |
132 | CONFIG_CPU_32v5=y | 219 | CONFIG_CPU_32v5=y |
133 | CONFIG_CPU_ABRT_EV5T=y | 220 | CONFIG_CPU_ABRT_EV5T=y |
221 | CONFIG_CPU_PABRT_NOIFAR=y | ||
134 | CONFIG_CPU_CACHE_VIVT=y | 222 | CONFIG_CPU_CACHE_VIVT=y |
135 | CONFIG_CPU_TLB_V4WBI=y | 223 | CONFIG_CPU_TLB_V4WBI=y |
224 | CONFIG_CPU_CP15=y | ||
225 | CONFIG_CPU_CP15_MMU=y | ||
136 | 226 | ||
137 | # | 227 | # |
138 | # Processor Features | 228 | # Processor Features |
139 | # | 229 | # |
140 | CONFIG_ARM_THUMB=y | 230 | CONFIG_ARM_THUMB=y |
231 | # CONFIG_CPU_DCACHE_DISABLE is not set | ||
232 | # CONFIG_OUTER_CACHE is not set | ||
233 | # CONFIG_IWMMXT is not set | ||
141 | CONFIG_XSCALE_PMU=y | 234 | CONFIG_XSCALE_PMU=y |
235 | CONFIG_SHARP_LOCOMO=y | ||
142 | CONFIG_SHARP_PARAM=y | 236 | CONFIG_SHARP_PARAM=y |
237 | CONFIG_SHARPSL_PM=y | ||
143 | CONFIG_SHARP_SCOOP=y | 238 | CONFIG_SHARP_SCOOP=y |
144 | 239 | ||
145 | # | 240 | # |
146 | # Bus support | 241 | # Bus support |
147 | # | 242 | # |
148 | CONFIG_ISA_DMA_API=y | 243 | # CONFIG_PCI_SYSCALL is not set |
149 | 244 | # CONFIG_ARCH_SUPPORTS_MSI is not set | |
150 | # | ||
151 | # PCCARD (PCMCIA/CardBus) support | ||
152 | # | ||
153 | CONFIG_PCCARD=y | 245 | CONFIG_PCCARD=y |
154 | # CONFIG_PCMCIA_DEBUG is not set | 246 | # CONFIG_PCMCIA_DEBUG is not set |
155 | CONFIG_PCMCIA=y | 247 | CONFIG_PCMCIA=y |
@@ -164,16 +256,32 @@ CONFIG_PCMCIA_PXA2XX=y | |||
164 | # | 256 | # |
165 | # Kernel Features | 257 | # Kernel Features |
166 | # | 258 | # |
259 | CONFIG_TICK_ONESHOT=y | ||
260 | # CONFIG_NO_HZ is not set | ||
261 | # CONFIG_HIGH_RES_TIMERS is not set | ||
262 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
263 | CONFIG_VMSPLIT_3G=y | ||
264 | # CONFIG_VMSPLIT_2G is not set | ||
265 | # CONFIG_VMSPLIT_1G is not set | ||
266 | CONFIG_PAGE_OFFSET=0xC0000000 | ||
167 | CONFIG_PREEMPT=y | 267 | CONFIG_PREEMPT=y |
168 | # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set | 268 | CONFIG_HZ=100 |
269 | # CONFIG_AEABI is not set | ||
270 | CONFIG_ARCH_FLATMEM_HAS_HOLES=y | ||
271 | # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set | ||
272 | # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set | ||
169 | CONFIG_SELECT_MEMORY_MODEL=y | 273 | CONFIG_SELECT_MEMORY_MODEL=y |
170 | CONFIG_FLATMEM_MANUAL=y | 274 | CONFIG_FLATMEM_MANUAL=y |
171 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 275 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
172 | # CONFIG_SPARSEMEM_MANUAL is not set | 276 | # CONFIG_SPARSEMEM_MANUAL is not set |
173 | CONFIG_FLATMEM=y | 277 | CONFIG_FLATMEM=y |
174 | CONFIG_FLAT_NODE_MEM_MAP=y | 278 | CONFIG_FLAT_NODE_MEM_MAP=y |
175 | # CONFIG_SPARSEMEM_STATIC is not set | 279 | CONFIG_PAGEFLAGS_EXTENDED=y |
176 | CONFIG_SPLIT_PTLOCK_CPUS=4096 | 280 | CONFIG_SPLIT_PTLOCK_CPUS=4096 |
281 | # CONFIG_RESOURCES_64BIT is not set | ||
282 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
283 | CONFIG_ZONE_DMA_FLAG=0 | ||
284 | CONFIG_VIRT_TO_BUS=y | ||
177 | CONFIG_ALIGNMENT_TRAP=y | 285 | CONFIG_ALIGNMENT_TRAP=y |
178 | 286 | ||
179 | # | 287 | # |
@@ -183,6 +291,13 @@ CONFIG_ZBOOT_ROM_TEXT=0x0 | |||
183 | CONFIG_ZBOOT_ROM_BSS=0x0 | 291 | CONFIG_ZBOOT_ROM_BSS=0x0 |
184 | CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 debug" | 292 | CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 debug" |
185 | # CONFIG_XIP_KERNEL is not set | 293 | # CONFIG_XIP_KERNEL is not set |
294 | # CONFIG_KEXEC is not set | ||
295 | |||
296 | # | ||
297 | # CPU Power Management | ||
298 | # | ||
299 | # CONFIG_CPU_FREQ is not set | ||
300 | # CONFIG_CPU_IDLE is not set | ||
186 | 301 | ||
187 | # | 302 | # |
188 | # Floating point emulation | 303 | # Floating point emulation |
@@ -199,6 +314,7 @@ CONFIG_FPE_NWFPE=y | |||
199 | # Userspace binary formats | 314 | # Userspace binary formats |
200 | # | 315 | # |
201 | CONFIG_BINFMT_ELF=y | 316 | CONFIG_BINFMT_ELF=y |
317 | CONFIG_HAVE_AOUT=y | ||
202 | CONFIG_BINFMT_AOUT=m | 318 | CONFIG_BINFMT_AOUT=m |
203 | CONFIG_BINFMT_MISC=m | 319 | CONFIG_BINFMT_MISC=m |
204 | # CONFIG_ARTHUR is not set | 320 | # CONFIG_ARTHUR is not set |
@@ -207,12 +323,12 @@ CONFIG_BINFMT_MISC=m | |||
207 | # Power management options | 323 | # Power management options |
208 | # | 324 | # |
209 | CONFIG_PM=y | 325 | CONFIG_PM=y |
210 | # CONFIG_PM_LEGACY is not set | 326 | # CONFIG_PM_DEBUG is not set |
211 | CONFIG_APM=y | 327 | CONFIG_PM_SLEEP=y |
212 | 328 | CONFIG_SUSPEND=y | |
213 | # | 329 | CONFIG_SUSPEND_FREEZER=y |
214 | # Networking | 330 | CONFIG_APM_EMULATION=y |
215 | # | 331 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
216 | CONFIG_NET=y | 332 | CONFIG_NET=y |
217 | 333 | ||
218 | # | 334 | # |
@@ -223,6 +339,10 @@ CONFIG_PACKET_MMAP=y | |||
223 | CONFIG_UNIX=y | 339 | CONFIG_UNIX=y |
224 | CONFIG_XFRM=y | 340 | CONFIG_XFRM=y |
225 | CONFIG_XFRM_USER=m | 341 | CONFIG_XFRM_USER=m |
342 | # CONFIG_XFRM_SUB_POLICY is not set | ||
343 | # CONFIG_XFRM_MIGRATE is not set | ||
344 | # CONFIG_XFRM_STATISTICS is not set | ||
345 | CONFIG_XFRM_IPCOMP=m | ||
226 | # CONFIG_NET_KEY is not set | 346 | # CONFIG_NET_KEY is not set |
227 | CONFIG_INET=y | 347 | CONFIG_INET=y |
228 | # CONFIG_IP_MULTICAST is not set | 348 | # CONFIG_IP_MULTICAST is not set |
@@ -236,140 +356,131 @@ CONFIG_SYN_COOKIES=y | |||
236 | # CONFIG_INET_AH is not set | 356 | # CONFIG_INET_AH is not set |
237 | # CONFIG_INET_ESP is not set | 357 | # CONFIG_INET_ESP is not set |
238 | # CONFIG_INET_IPCOMP is not set | 358 | # CONFIG_INET_IPCOMP is not set |
239 | # CONFIG_INET_TUNNEL is not set | 359 | # CONFIG_INET_XFRM_TUNNEL is not set |
360 | CONFIG_INET_TUNNEL=m | ||
361 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
362 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
363 | CONFIG_INET_XFRM_MODE_BEET=y | ||
364 | # CONFIG_INET_LRO is not set | ||
240 | CONFIG_INET_DIAG=y | 365 | CONFIG_INET_DIAG=y |
241 | CONFIG_INET_TCP_DIAG=y | 366 | CONFIG_INET_TCP_DIAG=y |
242 | # CONFIG_TCP_CONG_ADVANCED is not set | 367 | # CONFIG_TCP_CONG_ADVANCED is not set |
243 | CONFIG_TCP_CONG_BIC=y | 368 | CONFIG_TCP_CONG_CUBIC=y |
244 | 369 | CONFIG_DEFAULT_TCP_CONG="cubic" | |
245 | # | 370 | # CONFIG_TCP_MD5SIG is not set |
246 | # IP: Virtual Server Configuration | ||
247 | # | ||
248 | # CONFIG_IP_VS is not set | ||
249 | CONFIG_IPV6=m | 371 | CONFIG_IPV6=m |
250 | # CONFIG_IPV6_PRIVACY is not set | 372 | # CONFIG_IPV6_PRIVACY is not set |
373 | # CONFIG_IPV6_ROUTER_PREF is not set | ||
374 | # CONFIG_IPV6_OPTIMISTIC_DAD is not set | ||
251 | CONFIG_INET6_AH=m | 375 | CONFIG_INET6_AH=m |
252 | CONFIG_INET6_ESP=m | 376 | CONFIG_INET6_ESP=m |
253 | CONFIG_INET6_IPCOMP=m | 377 | CONFIG_INET6_IPCOMP=m |
378 | # CONFIG_IPV6_MIP6 is not set | ||
379 | CONFIG_INET6_XFRM_TUNNEL=m | ||
254 | CONFIG_INET6_TUNNEL=m | 380 | CONFIG_INET6_TUNNEL=m |
381 | CONFIG_INET6_XFRM_MODE_TRANSPORT=m | ||
382 | CONFIG_INET6_XFRM_MODE_TUNNEL=m | ||
383 | CONFIG_INET6_XFRM_MODE_BEET=m | ||
384 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | ||
385 | CONFIG_IPV6_SIT=m | ||
386 | CONFIG_IPV6_NDISC_NODETYPE=y | ||
255 | CONFIG_IPV6_TUNNEL=m | 387 | CONFIG_IPV6_TUNNEL=m |
388 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | ||
389 | # CONFIG_IPV6_MROUTE is not set | ||
390 | # CONFIG_NETWORK_SECMARK is not set | ||
256 | CONFIG_NETFILTER=y | 391 | CONFIG_NETFILTER=y |
257 | # CONFIG_NETFILTER_DEBUG is not set | 392 | # CONFIG_NETFILTER_DEBUG is not set |
393 | CONFIG_NETFILTER_ADVANCED=y | ||
258 | 394 | ||
259 | # | 395 | # |
260 | # Core Netfilter Configuration | 396 | # Core Netfilter Configuration |
261 | # | 397 | # |
262 | # CONFIG_NETFILTER_NETLINK is not set | 398 | # CONFIG_NETFILTER_NETLINK_QUEUE is not set |
399 | # CONFIG_NETFILTER_NETLINK_LOG is not set | ||
400 | # CONFIG_NF_CONNTRACK is not set | ||
401 | CONFIG_NETFILTER_XTABLES=m | ||
402 | # CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set | ||
403 | # CONFIG_NETFILTER_XT_TARGET_DSCP is not set | ||
404 | # CONFIG_NETFILTER_XT_TARGET_MARK is not set | ||
405 | # CONFIG_NETFILTER_XT_TARGET_NFLOG is not set | ||
406 | # CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set | ||
407 | # CONFIG_NETFILTER_XT_TARGET_RATEEST is not set | ||
408 | # CONFIG_NETFILTER_XT_TARGET_TRACE is not set | ||
409 | # CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set | ||
410 | # CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set | ||
411 | # CONFIG_NETFILTER_XT_MATCH_COMMENT is not set | ||
412 | # CONFIG_NETFILTER_XT_MATCH_DCCP is not set | ||
413 | # CONFIG_NETFILTER_XT_MATCH_DSCP is not set | ||
414 | # CONFIG_NETFILTER_XT_MATCH_ESP is not set | ||
415 | # CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set | ||
416 | # CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set | ||
417 | # CONFIG_NETFILTER_XT_MATCH_LENGTH is not set | ||
418 | # CONFIG_NETFILTER_XT_MATCH_LIMIT is not set | ||
419 | # CONFIG_NETFILTER_XT_MATCH_MAC is not set | ||
420 | # CONFIG_NETFILTER_XT_MATCH_MARK is not set | ||
421 | # CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set | ||
422 | # CONFIG_NETFILTER_XT_MATCH_OWNER is not set | ||
423 | # CONFIG_NETFILTER_XT_MATCH_POLICY is not set | ||
424 | # CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set | ||
425 | # CONFIG_NETFILTER_XT_MATCH_QUOTA is not set | ||
426 | # CONFIG_NETFILTER_XT_MATCH_RATEEST is not set | ||
427 | # CONFIG_NETFILTER_XT_MATCH_REALM is not set | ||
428 | # CONFIG_NETFILTER_XT_MATCH_RECENT is not set | ||
429 | # CONFIG_NETFILTER_XT_MATCH_SCTP is not set | ||
430 | # CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set | ||
431 | # CONFIG_NETFILTER_XT_MATCH_STRING is not set | ||
432 | # CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set | ||
433 | # CONFIG_NETFILTER_XT_MATCH_TIME is not set | ||
434 | # CONFIG_NETFILTER_XT_MATCH_U32 is not set | ||
435 | # CONFIG_IP_VS is not set | ||
263 | 436 | ||
264 | # | 437 | # |
265 | # IP: Netfilter Configuration | 438 | # IP: Netfilter Configuration |
266 | # | 439 | # |
267 | CONFIG_IP_NF_CONNTRACK=m | 440 | # CONFIG_NF_DEFRAG_IPV4 is not set |
268 | # CONFIG_IP_NF_CT_ACCT is not set | ||
269 | # CONFIG_IP_NF_CONNTRACK_MARK is not set | ||
270 | # CONFIG_IP_NF_CONNTRACK_EVENTS is not set | ||
271 | CONFIG_IP_NF_CT_PROTO_SCTP=m | ||
272 | CONFIG_IP_NF_FTP=m | ||
273 | CONFIG_IP_NF_IRC=m | ||
274 | # CONFIG_IP_NF_NETBIOS_NS is not set | ||
275 | CONFIG_IP_NF_TFTP=m | ||
276 | CONFIG_IP_NF_AMANDA=m | ||
277 | # CONFIG_IP_NF_PPTP is not set | ||
278 | CONFIG_IP_NF_QUEUE=m | 441 | CONFIG_IP_NF_QUEUE=m |
279 | CONFIG_IP_NF_IPTABLES=m | 442 | CONFIG_IP_NF_IPTABLES=m |
280 | CONFIG_IP_NF_MATCH_LIMIT=m | 443 | CONFIG_IP_NF_MATCH_ADDRTYPE=m |
281 | CONFIG_IP_NF_MATCH_IPRANGE=m | 444 | # CONFIG_IP_NF_MATCH_AH is not set |
282 | CONFIG_IP_NF_MATCH_MAC=m | ||
283 | CONFIG_IP_NF_MATCH_PKTTYPE=m | ||
284 | CONFIG_IP_NF_MATCH_MARK=m | ||
285 | CONFIG_IP_NF_MATCH_MULTIPORT=m | ||
286 | CONFIG_IP_NF_MATCH_TOS=m | ||
287 | CONFIG_IP_NF_MATCH_RECENT=m | ||
288 | CONFIG_IP_NF_MATCH_ECN=m | 445 | CONFIG_IP_NF_MATCH_ECN=m |
289 | CONFIG_IP_NF_MATCH_DSCP=m | ||
290 | CONFIG_IP_NF_MATCH_AH_ESP=m | ||
291 | CONFIG_IP_NF_MATCH_LENGTH=m | ||
292 | CONFIG_IP_NF_MATCH_TTL=m | 446 | CONFIG_IP_NF_MATCH_TTL=m |
293 | CONFIG_IP_NF_MATCH_TCPMSS=m | ||
294 | CONFIG_IP_NF_MATCH_HELPER=m | ||
295 | CONFIG_IP_NF_MATCH_STATE=m | ||
296 | CONFIG_IP_NF_MATCH_CONNTRACK=m | ||
297 | CONFIG_IP_NF_MATCH_OWNER=m | ||
298 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | ||
299 | CONFIG_IP_NF_MATCH_REALM=m | ||
300 | CONFIG_IP_NF_MATCH_SCTP=m | ||
301 | # CONFIG_IP_NF_MATCH_DCCP is not set | ||
302 | CONFIG_IP_NF_MATCH_COMMENT=m | ||
303 | CONFIG_IP_NF_MATCH_HASHLIMIT=m | ||
304 | # CONFIG_IP_NF_MATCH_STRING is not set | ||
305 | CONFIG_IP_NF_FILTER=m | 447 | CONFIG_IP_NF_FILTER=m |
306 | # CONFIG_IP_NF_TARGET_REJECT is not set | 448 | # CONFIG_IP_NF_TARGET_REJECT is not set |
307 | CONFIG_IP_NF_TARGET_LOG=m | 449 | CONFIG_IP_NF_TARGET_LOG=m |
308 | CONFIG_IP_NF_TARGET_ULOG=m | 450 | CONFIG_IP_NF_TARGET_ULOG=m |
309 | CONFIG_IP_NF_TARGET_TCPMSS=m | ||
310 | # CONFIG_IP_NF_TARGET_NFQUEUE is not set | ||
311 | CONFIG_IP_NF_NAT=m | ||
312 | CONFIG_IP_NF_NAT_NEEDED=y | ||
313 | # CONFIG_IP_NF_TARGET_MASQUERADE is not set | ||
314 | # CONFIG_IP_NF_TARGET_REDIRECT is not set | ||
315 | # CONFIG_IP_NF_TARGET_NETMAP is not set | ||
316 | # CONFIG_IP_NF_TARGET_SAME is not set | ||
317 | # CONFIG_IP_NF_NAT_SNMP_BASIC is not set | ||
318 | CONFIG_IP_NF_NAT_IRC=m | ||
319 | CONFIG_IP_NF_NAT_FTP=m | ||
320 | CONFIG_IP_NF_NAT_TFTP=m | ||
321 | CONFIG_IP_NF_NAT_AMANDA=m | ||
322 | CONFIG_IP_NF_MANGLE=m | 451 | CONFIG_IP_NF_MANGLE=m |
323 | # CONFIG_IP_NF_TARGET_TOS is not set | ||
324 | # CONFIG_IP_NF_TARGET_ECN is not set | 452 | # CONFIG_IP_NF_TARGET_ECN is not set |
325 | # CONFIG_IP_NF_TARGET_DSCP is not set | ||
326 | # CONFIG_IP_NF_TARGET_MARK is not set | ||
327 | # CONFIG_IP_NF_TARGET_CLASSIFY is not set | ||
328 | # CONFIG_IP_NF_TARGET_TTL is not set | 453 | # CONFIG_IP_NF_TARGET_TTL is not set |
329 | CONFIG_IP_NF_RAW=m | 454 | CONFIG_IP_NF_RAW=m |
330 | # CONFIG_IP_NF_TARGET_NOTRACK is not set | ||
331 | CONFIG_IP_NF_ARPTABLES=m | 455 | CONFIG_IP_NF_ARPTABLES=m |
332 | CONFIG_IP_NF_ARPFILTER=m | 456 | CONFIG_IP_NF_ARPFILTER=m |
333 | CONFIG_IP_NF_ARP_MANGLE=m | 457 | CONFIG_IP_NF_ARP_MANGLE=m |
334 | 458 | ||
335 | # | 459 | # |
336 | # IPv6: Netfilter Configuration (EXPERIMENTAL) | 460 | # IPv6: Netfilter Configuration |
337 | # | 461 | # |
338 | CONFIG_IP6_NF_QUEUE=m | 462 | CONFIG_IP6_NF_QUEUE=m |
339 | CONFIG_IP6_NF_IPTABLES=m | 463 | CONFIG_IP6_NF_IPTABLES=m |
340 | CONFIG_IP6_NF_MATCH_LIMIT=m | 464 | # CONFIG_IP6_NF_MATCH_AH is not set |
341 | CONFIG_IP6_NF_MATCH_MAC=m | 465 | CONFIG_IP6_NF_MATCH_EUI64=m |
342 | CONFIG_IP6_NF_MATCH_RT=m | ||
343 | CONFIG_IP6_NF_MATCH_OPTS=m | ||
344 | CONFIG_IP6_NF_MATCH_FRAG=m | 466 | CONFIG_IP6_NF_MATCH_FRAG=m |
467 | CONFIG_IP6_NF_MATCH_OPTS=m | ||
345 | CONFIG_IP6_NF_MATCH_HL=m | 468 | CONFIG_IP6_NF_MATCH_HL=m |
346 | CONFIG_IP6_NF_MATCH_MULTIPORT=m | ||
347 | CONFIG_IP6_NF_MATCH_OWNER=m | ||
348 | CONFIG_IP6_NF_MATCH_MARK=m | ||
349 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m | 469 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m |
350 | CONFIG_IP6_NF_MATCH_AHESP=m | 470 | # CONFIG_IP6_NF_MATCH_MH is not set |
351 | CONFIG_IP6_NF_MATCH_LENGTH=m | 471 | CONFIG_IP6_NF_MATCH_RT=m |
352 | CONFIG_IP6_NF_MATCH_EUI64=m | ||
353 | CONFIG_IP6_NF_FILTER=m | ||
354 | # CONFIG_IP6_NF_TARGET_LOG is not set | 472 | # CONFIG_IP6_NF_TARGET_LOG is not set |
473 | CONFIG_IP6_NF_FILTER=m | ||
355 | # CONFIG_IP6_NF_TARGET_REJECT is not set | 474 | # CONFIG_IP6_NF_TARGET_REJECT is not set |
356 | # CONFIG_IP6_NF_TARGET_NFQUEUE is not set | ||
357 | CONFIG_IP6_NF_MANGLE=m | 475 | CONFIG_IP6_NF_MANGLE=m |
358 | # CONFIG_IP6_NF_TARGET_MARK is not set | ||
359 | # CONFIG_IP6_NF_TARGET_HL is not set | 476 | # CONFIG_IP6_NF_TARGET_HL is not set |
360 | CONFIG_IP6_NF_RAW=m | 477 | CONFIG_IP6_NF_RAW=m |
361 | |||
362 | # | ||
363 | # DCCP Configuration (EXPERIMENTAL) | ||
364 | # | ||
365 | # CONFIG_IP_DCCP is not set | 478 | # CONFIG_IP_DCCP is not set |
366 | |||
367 | # | ||
368 | # SCTP Configuration (EXPERIMENTAL) | ||
369 | # | ||
370 | # CONFIG_IP_SCTP is not set | 479 | # CONFIG_IP_SCTP is not set |
480 | # CONFIG_TIPC is not set | ||
371 | # CONFIG_ATM is not set | 481 | # CONFIG_ATM is not set |
372 | # CONFIG_BRIDGE is not set | 482 | # CONFIG_BRIDGE is not set |
483 | # CONFIG_NET_DSA is not set | ||
373 | # CONFIG_VLAN_8021Q is not set | 484 | # CONFIG_VLAN_8021Q is not set |
374 | # CONFIG_DECNET is not set | 485 | # CONFIG_DECNET is not set |
375 | # CONFIG_LLC2 is not set | 486 | # CONFIG_LLC2 is not set |
@@ -377,21 +488,16 @@ CONFIG_IP6_NF_RAW=m | |||
377 | # CONFIG_ATALK is not set | 488 | # CONFIG_ATALK is not set |
378 | # CONFIG_X25 is not set | 489 | # CONFIG_X25 is not set |
379 | # CONFIG_LAPB is not set | 490 | # CONFIG_LAPB is not set |
380 | # CONFIG_NET_DIVERT is not set | ||
381 | # CONFIG_ECONET is not set | 491 | # CONFIG_ECONET is not set |
382 | # CONFIG_WAN_ROUTER is not set | 492 | # CONFIG_WAN_ROUTER is not set |
383 | |||
384 | # | ||
385 | # QoS and/or fair queueing | ||
386 | # | ||
387 | # CONFIG_NET_SCHED is not set | 493 | # CONFIG_NET_SCHED is not set |
388 | CONFIG_NET_CLS_ROUTE=y | ||
389 | 494 | ||
390 | # | 495 | # |
391 | # Network testing | 496 | # Network testing |
392 | # | 497 | # |
393 | # CONFIG_NET_PKTGEN is not set | 498 | # CONFIG_NET_PKTGEN is not set |
394 | # CONFIG_HAMRADIO is not set | 499 | # CONFIG_HAMRADIO is not set |
500 | # CONFIG_CAN is not set | ||
395 | CONFIG_IRDA=m | 501 | CONFIG_IRDA=m |
396 | 502 | ||
397 | # | 503 | # |
@@ -421,27 +527,17 @@ CONFIG_IRCOMM=m | |||
421 | # | 527 | # |
422 | # Dongle support | 528 | # Dongle support |
423 | # | 529 | # |
424 | 530 | # CONFIG_KINGSUN_DONGLE is not set | |
425 | # | 531 | # CONFIG_KSDAZZLE_DONGLE is not set |
426 | # Old SIR device drivers | 532 | # CONFIG_KS959_DONGLE is not set |
427 | # | ||
428 | # CONFIG_IRPORT_SIR is not set | ||
429 | |||
430 | # | ||
431 | # Old Serial dongle support | ||
432 | # | ||
433 | 533 | ||
434 | # | 534 | # |
435 | # FIR device drivers | 535 | # FIR device drivers |
436 | # | 536 | # |
437 | # CONFIG_USB_IRDA is not set | 537 | # CONFIG_USB_IRDA is not set |
438 | # CONFIG_SIGMATEL_FIR is not set | 538 | # CONFIG_SIGMATEL_FIR is not set |
439 | # CONFIG_NSC_FIR is not set | ||
440 | # CONFIG_WINBOND_FIR is not set | ||
441 | # CONFIG_SMC_IRCC_FIR is not set | ||
442 | # CONFIG_ALI_FIR is not set | ||
443 | # CONFIG_VIA_FIR is not set | ||
444 | CONFIG_PXA_FICP=m | 539 | CONFIG_PXA_FICP=m |
540 | # CONFIG_MCS_FIR is not set | ||
445 | CONFIG_BT=m | 541 | CONFIG_BT=m |
446 | CONFIG_BT_L2CAP=m | 542 | CONFIG_BT_L2CAP=m |
447 | CONFIG_BT_SCO=m | 543 | CONFIG_BT_SCO=m |
@@ -457,9 +553,12 @@ CONFIG_BT_HIDP=m | |||
457 | # | 553 | # |
458 | CONFIG_BT_HCIUSB=m | 554 | CONFIG_BT_HCIUSB=m |
459 | # CONFIG_BT_HCIUSB_SCO is not set | 555 | # CONFIG_BT_HCIUSB_SCO is not set |
556 | # CONFIG_BT_HCIBTUSB is not set | ||
557 | # CONFIG_BT_HCIBTSDIO is not set | ||
460 | CONFIG_BT_HCIUART=m | 558 | CONFIG_BT_HCIUART=m |
461 | CONFIG_BT_HCIUART_H4=y | 559 | CONFIG_BT_HCIUART_H4=y |
462 | CONFIG_BT_HCIUART_BCSP=y | 560 | CONFIG_BT_HCIUART_BCSP=y |
561 | # CONFIG_BT_HCIUART_LL is not set | ||
463 | CONFIG_BT_HCIBCM203X=m | 562 | CONFIG_BT_HCIBCM203X=m |
464 | CONFIG_BT_HCIBPA10X=m | 563 | CONFIG_BT_HCIBPA10X=m |
465 | CONFIG_BT_HCIBFUSB=m | 564 | CONFIG_BT_HCIBFUSB=m |
@@ -468,11 +567,20 @@ CONFIG_BT_HCIBT3C=m | |||
468 | CONFIG_BT_HCIBLUECARD=m | 567 | CONFIG_BT_HCIBLUECARD=m |
469 | CONFIG_BT_HCIBTUART=m | 568 | CONFIG_BT_HCIBTUART=m |
470 | CONFIG_BT_HCIVHCI=m | 569 | CONFIG_BT_HCIVHCI=m |
570 | # CONFIG_AF_RXRPC is not set | ||
571 | # CONFIG_PHONET is not set | ||
572 | CONFIG_WIRELESS=y | ||
573 | # CONFIG_CFG80211 is not set | ||
574 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
575 | # CONFIG_WIRELESS_EXT is not set | ||
576 | # CONFIG_MAC80211 is not set | ||
471 | CONFIG_IEEE80211=m | 577 | CONFIG_IEEE80211=m |
472 | # CONFIG_IEEE80211_DEBUG is not set | 578 | # CONFIG_IEEE80211_DEBUG is not set |
473 | CONFIG_IEEE80211_CRYPT_WEP=m | 579 | CONFIG_IEEE80211_CRYPT_WEP=m |
474 | # CONFIG_IEEE80211_CRYPT_CCMP is not set | 580 | # CONFIG_IEEE80211_CRYPT_CCMP is not set |
475 | # CONFIG_IEEE80211_CRYPT_TKIP is not set | 581 | # CONFIG_IEEE80211_CRYPT_TKIP is not set |
582 | # CONFIG_RFKILL is not set | ||
583 | # CONFIG_NET_9P is not set | ||
476 | 584 | ||
477 | # | 585 | # |
478 | # Device Drivers | 586 | # Device Drivers |
@@ -481,19 +589,16 @@ CONFIG_IEEE80211_CRYPT_WEP=m | |||
481 | # | 589 | # |
482 | # Generic Driver Options | 590 | # Generic Driver Options |
483 | # | 591 | # |
592 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
484 | CONFIG_STANDALONE=y | 593 | CONFIG_STANDALONE=y |
485 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 594 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
486 | CONFIG_FW_LOADER=y | 595 | CONFIG_FW_LOADER=y |
596 | CONFIG_FIRMWARE_IN_KERNEL=y | ||
597 | CONFIG_EXTRA_FIRMWARE="" | ||
487 | # CONFIG_DEBUG_DRIVER is not set | 598 | # CONFIG_DEBUG_DRIVER is not set |
488 | 599 | # CONFIG_DEBUG_DEVRES is not set | |
489 | # | 600 | # CONFIG_SYS_HYPERVISOR is not set |
490 | # Connector - unified userspace <-> kernelspace linker | ||
491 | # | ||
492 | # CONFIG_CONNECTOR is not set | 601 | # CONFIG_CONNECTOR is not set |
493 | |||
494 | # | ||
495 | # Memory Technology Devices (MTD) | ||
496 | # | ||
497 | CONFIG_MTD=y | 602 | CONFIG_MTD=y |
498 | # CONFIG_MTD_DEBUG is not set | 603 | # CONFIG_MTD_DEBUG is not set |
499 | # CONFIG_MTD_CONCAT is not set | 604 | # CONFIG_MTD_CONCAT is not set |
@@ -501,16 +606,20 @@ CONFIG_MTD_PARTITIONS=y | |||
501 | # CONFIG_MTD_REDBOOT_PARTS is not set | 606 | # CONFIG_MTD_REDBOOT_PARTS is not set |
502 | CONFIG_MTD_CMDLINE_PARTS=y | 607 | CONFIG_MTD_CMDLINE_PARTS=y |
503 | # CONFIG_MTD_AFS_PARTS is not set | 608 | # CONFIG_MTD_AFS_PARTS is not set |
609 | # CONFIG_MTD_AR7_PARTS is not set | ||
504 | 610 | ||
505 | # | 611 | # |
506 | # User Modules And Translation Layers | 612 | # User Modules And Translation Layers |
507 | # | 613 | # |
508 | CONFIG_MTD_CHAR=y | 614 | CONFIG_MTD_CHAR=y |
615 | CONFIG_MTD_BLKDEVS=y | ||
509 | CONFIG_MTD_BLOCK=y | 616 | CONFIG_MTD_BLOCK=y |
510 | # CONFIG_FTL is not set | 617 | # CONFIG_FTL is not set |
511 | # CONFIG_NFTL is not set | 618 | # CONFIG_NFTL is not set |
512 | # CONFIG_INFTL is not set | 619 | # CONFIG_INFTL is not set |
513 | # CONFIG_RFD_FTL is not set | 620 | # CONFIG_RFD_FTL is not set |
621 | # CONFIG_SSFDC is not set | ||
622 | # CONFIG_MTD_OOPS is not set | ||
514 | 623 | ||
515 | # | 624 | # |
516 | # RAM/ROM/Flash chip drivers | 625 | # RAM/ROM/Flash chip drivers |
@@ -535,16 +644,18 @@ CONFIG_MTD_ROM=y | |||
535 | # Mapping drivers for chip access | 644 | # Mapping drivers for chip access |
536 | # | 645 | # |
537 | CONFIG_MTD_COMPLEX_MAPPINGS=y | 646 | CONFIG_MTD_COMPLEX_MAPPINGS=y |
647 | # CONFIG_MTD_PHYSMAP is not set | ||
538 | CONFIG_MTD_SHARP_SL=y | 648 | CONFIG_MTD_SHARP_SL=y |
539 | # CONFIG_MTD_PLATRAM is not set | 649 | # CONFIG_MTD_PLATRAM is not set |
540 | 650 | ||
541 | # | 651 | # |
542 | # Self-contained MTD device drivers | 652 | # Self-contained MTD device drivers |
543 | # | 653 | # |
654 | # CONFIG_MTD_DATAFLASH is not set | ||
655 | # CONFIG_MTD_M25P80 is not set | ||
544 | # CONFIG_MTD_SLRAM is not set | 656 | # CONFIG_MTD_SLRAM is not set |
545 | # CONFIG_MTD_PHRAM is not set | 657 | # CONFIG_MTD_PHRAM is not set |
546 | # CONFIG_MTD_MTDRAM is not set | 658 | # CONFIG_MTD_MTDRAM is not set |
547 | # CONFIG_MTD_BLKMTD is not set | ||
548 | # CONFIG_MTD_BLOCK2MTD is not set | 659 | # CONFIG_MTD_BLOCK2MTD is not set |
549 | 660 | ||
550 | # | 661 | # |
@@ -553,78 +664,66 @@ CONFIG_MTD_SHARP_SL=y | |||
553 | # CONFIG_MTD_DOC2000 is not set | 664 | # CONFIG_MTD_DOC2000 is not set |
554 | # CONFIG_MTD_DOC2001 is not set | 665 | # CONFIG_MTD_DOC2001 is not set |
555 | # CONFIG_MTD_DOC2001PLUS is not set | 666 | # CONFIG_MTD_DOC2001PLUS is not set |
556 | |||
557 | # | ||
558 | # NAND Flash Device Drivers | ||
559 | # | ||
560 | CONFIG_MTD_NAND=y | 667 | CONFIG_MTD_NAND=y |
561 | CONFIG_MTD_NAND_VERIFY_WRITE=y | 668 | CONFIG_MTD_NAND_VERIFY_WRITE=y |
669 | # CONFIG_MTD_NAND_ECC_SMC is not set | ||
670 | # CONFIG_MTD_NAND_MUSEUM_IDS is not set | ||
562 | # CONFIG_MTD_NAND_H1900 is not set | 671 | # CONFIG_MTD_NAND_H1900 is not set |
563 | CONFIG_MTD_NAND_IDS=y | 672 | CONFIG_MTD_NAND_IDS=y |
564 | # CONFIG_MTD_NAND_DISKONCHIP is not set | 673 | # CONFIG_MTD_NAND_DISKONCHIP is not set |
565 | CONFIG_MTD_NAND_SHARPSL=y | 674 | CONFIG_MTD_NAND_SHARPSL=y |
566 | # CONFIG_MTD_NAND_NANDSIM is not set | 675 | # CONFIG_MTD_NAND_NANDSIM is not set |
567 | 676 | # CONFIG_MTD_NAND_PLATFORM is not set | |
568 | # | 677 | # CONFIG_MTD_ALAUDA is not set |
569 | # OneNAND Flash Device Drivers | ||
570 | # | ||
571 | # CONFIG_MTD_ONENAND is not set | 678 | # CONFIG_MTD_ONENAND is not set |
572 | 679 | ||
573 | # | 680 | # |
574 | # Parallel port support | 681 | # UBI - Unsorted block images |
575 | # | 682 | # |
683 | # CONFIG_MTD_UBI is not set | ||
576 | # CONFIG_PARPORT is not set | 684 | # CONFIG_PARPORT is not set |
577 | 685 | CONFIG_BLK_DEV=y | |
578 | # | ||
579 | # Plug and Play support | ||
580 | # | ||
581 | |||
582 | # | ||
583 | # Block devices | ||
584 | # | ||
585 | # CONFIG_BLK_DEV_COW_COMMON is not set | 686 | # CONFIG_BLK_DEV_COW_COMMON is not set |
586 | CONFIG_BLK_DEV_LOOP=y | 687 | CONFIG_BLK_DEV_LOOP=y |
587 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 688 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
588 | # CONFIG_BLK_DEV_NBD is not set | 689 | # CONFIG_BLK_DEV_NBD is not set |
589 | # CONFIG_BLK_DEV_UB is not set | 690 | # CONFIG_BLK_DEV_UB is not set |
590 | # CONFIG_BLK_DEV_RAM is not set | 691 | # CONFIG_BLK_DEV_RAM is not set |
591 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
592 | # CONFIG_CDROM_PKTCDVD is not set | 692 | # CONFIG_CDROM_PKTCDVD is not set |
593 | # CONFIG_ATA_OVER_ETH is not set | 693 | # CONFIG_ATA_OVER_ETH is not set |
594 | 694 | CONFIG_MISC_DEVICES=y | |
595 | # | 695 | # CONFIG_EEPROM_93CX6 is not set |
596 | # ATA/ATAPI/MFM/RLL support | 696 | # CONFIG_ENCLOSURE_SERVICES is not set |
597 | # | 697 | CONFIG_HAVE_IDE=y |
598 | CONFIG_IDE=y | 698 | CONFIG_IDE=y |
599 | CONFIG_BLK_DEV_IDE=y | ||
600 | 699 | ||
601 | # | 700 | # |
602 | # Please see Documentation/ide.txt for help/info on IDE drives | 701 | # Please see Documentation/ide/ide.txt for help/info on IDE drives |
603 | # | 702 | # |
604 | # CONFIG_BLK_DEV_IDE_SATA is not set | 703 | # CONFIG_BLK_DEV_IDE_SATA is not set |
605 | CONFIG_BLK_DEV_IDEDISK=y | 704 | CONFIG_BLK_DEV_IDEDISK=y |
606 | # CONFIG_IDEDISK_MULTI_MODE is not set | ||
607 | CONFIG_BLK_DEV_IDECS=y | 705 | CONFIG_BLK_DEV_IDECS=y |
608 | # CONFIG_BLK_DEV_IDECD is not set | 706 | # CONFIG_BLK_DEV_IDECD is not set |
609 | # CONFIG_BLK_DEV_IDETAPE is not set | 707 | # CONFIG_BLK_DEV_IDETAPE is not set |
610 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | 708 | # CONFIG_BLK_DEV_IDEFLOPPY is not set |
611 | # CONFIG_BLK_DEV_IDESCSI is not set | 709 | # CONFIG_BLK_DEV_IDESCSI is not set |
612 | # CONFIG_IDE_TASK_IOCTL is not set | 710 | # CONFIG_IDE_TASK_IOCTL is not set |
711 | CONFIG_IDE_PROC_FS=y | ||
613 | 712 | ||
614 | # | 713 | # |
615 | # IDE chipset support/bugfixes | 714 | # IDE chipset support/bugfixes |
616 | # | 715 | # |
617 | CONFIG_IDE_GENERIC=y | 716 | # CONFIG_BLK_DEV_PLATFORM is not set |
618 | # CONFIG_IDE_ARM is not set | ||
619 | # CONFIG_BLK_DEV_IDEDMA is not set | 717 | # CONFIG_BLK_DEV_IDEDMA is not set |
620 | # CONFIG_IDEDMA_AUTO is not set | ||
621 | # CONFIG_BLK_DEV_HD is not set | ||
622 | 718 | ||
623 | # | 719 | # |
624 | # SCSI device support | 720 | # SCSI device support |
625 | # | 721 | # |
626 | # CONFIG_RAID_ATTRS is not set | 722 | # CONFIG_RAID_ATTRS is not set |
627 | CONFIG_SCSI=m | 723 | CONFIG_SCSI=m |
724 | CONFIG_SCSI_DMA=y | ||
725 | # CONFIG_SCSI_TGT is not set | ||
726 | # CONFIG_SCSI_NETLINK is not set | ||
628 | CONFIG_SCSI_PROC_FS=y | 727 | CONFIG_SCSI_PROC_FS=y |
629 | 728 | ||
630 | # | 729 | # |
@@ -644,121 +743,76 @@ CONFIG_CHR_DEV_SG=m | |||
644 | CONFIG_SCSI_MULTI_LUN=y | 743 | CONFIG_SCSI_MULTI_LUN=y |
645 | # CONFIG_SCSI_CONSTANTS is not set | 744 | # CONFIG_SCSI_CONSTANTS is not set |
646 | # CONFIG_SCSI_LOGGING is not set | 745 | # CONFIG_SCSI_LOGGING is not set |
746 | # CONFIG_SCSI_SCAN_ASYNC is not set | ||
747 | CONFIG_SCSI_WAIT_SCAN=m | ||
647 | 748 | ||
648 | # | 749 | # |
649 | # SCSI Transport Attributes | 750 | # SCSI Transports |
650 | # | 751 | # |
651 | # CONFIG_SCSI_SPI_ATTRS is not set | 752 | # CONFIG_SCSI_SPI_ATTRS is not set |
652 | # CONFIG_SCSI_FC_ATTRS is not set | 753 | # CONFIG_SCSI_FC_ATTRS is not set |
653 | # CONFIG_SCSI_ISCSI_ATTRS is not set | 754 | # CONFIG_SCSI_ISCSI_ATTRS is not set |
654 | # CONFIG_SCSI_SAS_ATTRS is not set | 755 | # CONFIG_SCSI_SAS_LIBSAS is not set |
655 | 756 | # CONFIG_SCSI_SRP_ATTRS is not set | |
656 | # | 757 | CONFIG_SCSI_LOWLEVEL=y |
657 | # SCSI low-level drivers | ||
658 | # | ||
659 | # CONFIG_ISCSI_TCP is not set | 758 | # CONFIG_ISCSI_TCP is not set |
660 | # CONFIG_SCSI_SATA is not set | ||
661 | # CONFIG_SCSI_DEBUG is not set | 759 | # CONFIG_SCSI_DEBUG is not set |
662 | 760 | # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set | |
663 | # | 761 | # CONFIG_SCSI_DH is not set |
664 | # PCMCIA SCSI adapter support | 762 | # CONFIG_ATA is not set |
665 | # | ||
666 | # CONFIG_PCMCIA_AHA152X is not set | ||
667 | # CONFIG_PCMCIA_FDOMAIN is not set | ||
668 | # CONFIG_PCMCIA_NINJA_SCSI is not set | ||
669 | # CONFIG_PCMCIA_QLOGIC is not set | ||
670 | # CONFIG_PCMCIA_SYM53C500 is not set | ||
671 | |||
672 | # | ||
673 | # Multi-device support (RAID and LVM) | ||
674 | # | ||
675 | # CONFIG_MD is not set | 763 | # CONFIG_MD is not set |
676 | |||
677 | # | ||
678 | # Fusion MPT device support | ||
679 | # | ||
680 | # CONFIG_FUSION is not set | ||
681 | |||
682 | # | ||
683 | # IEEE 1394 (FireWire) support | ||
684 | # | ||
685 | |||
686 | # | ||
687 | # I2O device support | ||
688 | # | ||
689 | |||
690 | # | ||
691 | # Network device support | ||
692 | # | ||
693 | CONFIG_NETDEVICES=y | 764 | CONFIG_NETDEVICES=y |
694 | # CONFIG_DUMMY is not set | 765 | # CONFIG_DUMMY is not set |
695 | # CONFIG_BONDING is not set | 766 | # CONFIG_BONDING is not set |
767 | # CONFIG_MACVLAN is not set | ||
696 | # CONFIG_EQUALIZER is not set | 768 | # CONFIG_EQUALIZER is not set |
697 | # CONFIG_TUN is not set | 769 | # CONFIG_TUN is not set |
698 | 770 | # CONFIG_VETH is not set | |
699 | # | ||
700 | # PHY device support | ||
701 | # | ||
702 | # CONFIG_PHYLIB is not set | 771 | # CONFIG_PHYLIB is not set |
703 | |||
704 | # | ||
705 | # Ethernet (10 or 100Mbit) | ||
706 | # | ||
707 | CONFIG_NET_ETHERNET=y | 772 | CONFIG_NET_ETHERNET=y |
708 | CONFIG_MII=m | 773 | CONFIG_MII=m |
774 | # CONFIG_AX88796 is not set | ||
709 | # CONFIG_SMC91X is not set | 775 | # CONFIG_SMC91X is not set |
710 | # CONFIG_DM9000 is not set | 776 | # CONFIG_DM9000 is not set |
777 | # CONFIG_ENC28J60 is not set | ||
778 | # CONFIG_SMC911X is not set | ||
779 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
780 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
781 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
782 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
783 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
784 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
785 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
786 | # CONFIG_B44 is not set | ||
787 | CONFIG_NETDEV_1000=y | ||
788 | CONFIG_NETDEV_10000=y | ||
711 | 789 | ||
712 | # | 790 | # |
713 | # Ethernet (1000 Mbit) | 791 | # Wireless LAN |
714 | # | ||
715 | |||
716 | # | ||
717 | # Ethernet (10000 Mbit) | ||
718 | # | ||
719 | |||
720 | # | ||
721 | # Token Ring devices | ||
722 | # | ||
723 | |||
724 | # | ||
725 | # Wireless LAN (non-hamradio) | ||
726 | # | ||
727 | CONFIG_NET_RADIO=y | ||
728 | |||
729 | # | ||
730 | # Obsolete Wireless cards support (pre-802.11) | ||
731 | # | ||
732 | # CONFIG_STRIP is not set | ||
733 | # CONFIG_PCMCIA_WAVELAN is not set | ||
734 | # CONFIG_PCMCIA_NETWAVE is not set | ||
735 | |||
736 | # | ||
737 | # Wireless 802.11 Frequency Hopping cards support | ||
738 | # | 792 | # |
739 | # CONFIG_PCMCIA_RAYCS is not set | 793 | # CONFIG_WLAN_PRE80211 is not set |
794 | # CONFIG_WLAN_80211 is not set | ||
795 | # CONFIG_IWLWIFI_LEDS is not set | ||
740 | 796 | ||
741 | # | 797 | # |
742 | # Wireless 802.11b ISA/PCI cards support | 798 | # USB Network Adapters |
743 | # | ||
744 | CONFIG_HERMES=m | ||
745 | # CONFIG_ATMEL is not set | ||
746 | |||
747 | # | ||
748 | # Wireless 802.11b Pcmcia/Cardbus cards support | ||
749 | # | ||
750 | CONFIG_PCMCIA_HERMES=m | ||
751 | CONFIG_PCMCIA_SPECTRUM=m | ||
752 | # CONFIG_AIRO_CS is not set | ||
753 | # CONFIG_PCMCIA_WL3501 is not set | ||
754 | CONFIG_HOSTAP=m | ||
755 | CONFIG_HOSTAP_FIRMWARE=y | ||
756 | CONFIG_HOSTAP_CS=m | ||
757 | CONFIG_NET_WIRELESS=y | ||
758 | |||
759 | # | ||
760 | # PCMCIA network device support | ||
761 | # | 799 | # |
800 | CONFIG_USB_CATC=m | ||
801 | CONFIG_USB_KAWETH=m | ||
802 | CONFIG_USB_PEGASUS=m | ||
803 | CONFIG_USB_RTL8150=m | ||
804 | CONFIG_USB_USBNET=m | ||
805 | CONFIG_USB_NET_AX8817X=m | ||
806 | CONFIG_USB_NET_CDCETHER=m | ||
807 | # CONFIG_USB_NET_DM9601 is not set | ||
808 | # CONFIG_USB_NET_SMSC95XX is not set | ||
809 | # CONFIG_USB_NET_GL620A is not set | ||
810 | CONFIG_USB_NET_NET1080=m | ||
811 | # CONFIG_USB_NET_PLUSB is not set | ||
812 | # CONFIG_USB_NET_MCS7830 is not set | ||
813 | # CONFIG_USB_NET_RNDIS_HOST is not set | ||
814 | # CONFIG_USB_NET_CDC_SUBSET is not set | ||
815 | CONFIG_USB_NET_ZAURUS=m | ||
762 | CONFIG_NET_PCMCIA=y | 816 | CONFIG_NET_PCMCIA=y |
763 | # CONFIG_PCMCIA_3C589 is not set | 817 | # CONFIG_PCMCIA_3C589 is not set |
764 | # CONFIG_PCMCIA_3C574 is not set | 818 | # CONFIG_PCMCIA_3C574 is not set |
@@ -768,10 +822,6 @@ CONFIG_PCMCIA_PCNET=m | |||
768 | # CONFIG_PCMCIA_SMC91C92 is not set | 822 | # CONFIG_PCMCIA_SMC91C92 is not set |
769 | # CONFIG_PCMCIA_XIRC2PS is not set | 823 | # CONFIG_PCMCIA_XIRC2PS is not set |
770 | # CONFIG_PCMCIA_AXNET is not set | 824 | # CONFIG_PCMCIA_AXNET is not set |
771 | |||
772 | # | ||
773 | # Wan interfaces | ||
774 | # | ||
775 | # CONFIG_WAN is not set | 825 | # CONFIG_WAN is not set |
776 | CONFIG_PPP=m | 826 | CONFIG_PPP=m |
777 | # CONFIG_PPP_MULTILINK is not set | 827 | # CONFIG_PPP_MULTILINK is not set |
@@ -782,30 +832,29 @@ CONFIG_PPP_ASYNC=m | |||
782 | CONFIG_PPP_BSDCOMP=m | 832 | CONFIG_PPP_BSDCOMP=m |
783 | # CONFIG_PPP_MPPE is not set | 833 | # CONFIG_PPP_MPPE is not set |
784 | # CONFIG_PPPOE is not set | 834 | # CONFIG_PPPOE is not set |
835 | # CONFIG_PPPOL2TP is not set | ||
785 | # CONFIG_SLIP is not set | 836 | # CONFIG_SLIP is not set |
786 | # CONFIG_SHAPER is not set | 837 | CONFIG_SLHC=m |
787 | # CONFIG_NETCONSOLE is not set | 838 | # CONFIG_NETCONSOLE is not set |
788 | # CONFIG_NETPOLL is not set | 839 | # CONFIG_NETPOLL is not set |
789 | # CONFIG_NET_POLL_CONTROLLER is not set | 840 | # CONFIG_NET_POLL_CONTROLLER is not set |
790 | |||
791 | # | ||
792 | # ISDN subsystem | ||
793 | # | ||
794 | # CONFIG_ISDN is not set | 841 | # CONFIG_ISDN is not set |
795 | 842 | ||
796 | # | 843 | # |
797 | # Input device support | 844 | # Input device support |
798 | # | 845 | # |
799 | CONFIG_INPUT=y | 846 | CONFIG_INPUT=y |
847 | CONFIG_INPUT_FF_MEMLESS=m | ||
848 | # CONFIG_INPUT_POLLDEV is not set | ||
800 | 849 | ||
801 | # | 850 | # |
802 | # Userland interfaces | 851 | # Userland interfaces |
803 | # | 852 | # |
804 | # CONFIG_INPUT_MOUSEDEV is not set | 853 | # CONFIG_INPUT_MOUSEDEV is not set |
805 | # CONFIG_INPUT_JOYDEV is not set | 854 | # CONFIG_INPUT_JOYDEV is not set |
806 | # CONFIG_INPUT_TSDEV is not set | ||
807 | CONFIG_INPUT_EVDEV=y | 855 | CONFIG_INPUT_EVDEV=y |
808 | # CONFIG_INPUT_EVBUG is not set | 856 | # CONFIG_INPUT_EVBUG is not set |
857 | # CONFIG_INPUT_APMPOWER is not set | ||
809 | 858 | ||
810 | # | 859 | # |
811 | # Input Device Drivers | 860 | # Input Device Drivers |
@@ -814,19 +863,39 @@ CONFIG_INPUT_KEYBOARD=y | |||
814 | # CONFIG_KEYBOARD_ATKBD is not set | 863 | # CONFIG_KEYBOARD_ATKBD is not set |
815 | # CONFIG_KEYBOARD_SUNKBD is not set | 864 | # CONFIG_KEYBOARD_SUNKBD is not set |
816 | # CONFIG_KEYBOARD_LKKBD is not set | 865 | # CONFIG_KEYBOARD_LKKBD is not set |
866 | # CONFIG_KEYBOARD_LOCOMO is not set | ||
817 | # CONFIG_KEYBOARD_XTKBD is not set | 867 | # CONFIG_KEYBOARD_XTKBD is not set |
818 | # CONFIG_KEYBOARD_NEWTON is not set | 868 | # CONFIG_KEYBOARD_NEWTON is not set |
869 | # CONFIG_KEYBOARD_STOWAWAY is not set | ||
819 | CONFIG_KEYBOARD_CORGI=y | 870 | CONFIG_KEYBOARD_CORGI=y |
820 | CONFIG_KEYBOARD_SPITZ=y | 871 | CONFIG_KEYBOARD_SPITZ=y |
872 | CONFIG_KEYBOARD_TOSA=y | ||
873 | # CONFIG_KEYBOARD_TOSA_USE_EXT_KEYCODES is not set | ||
874 | # CONFIG_KEYBOARD_GPIO is not set | ||
821 | # CONFIG_INPUT_MOUSE is not set | 875 | # CONFIG_INPUT_MOUSE is not set |
822 | # CONFIG_INPUT_JOYSTICK is not set | 876 | # CONFIG_INPUT_JOYSTICK is not set |
877 | # CONFIG_INPUT_TABLET is not set | ||
823 | CONFIG_INPUT_TOUCHSCREEN=y | 878 | CONFIG_INPUT_TOUCHSCREEN=y |
824 | CONFIG_TOUCHSCREEN_CORGI=y | 879 | CONFIG_TOUCHSCREEN_ADS7846=y |
880 | # CONFIG_TOUCHSCREEN_CORGI is not set | ||
881 | # CONFIG_TOUCHSCREEN_FUJITSU is not set | ||
825 | # CONFIG_TOUCHSCREEN_GUNZE is not set | 882 | # CONFIG_TOUCHSCREEN_GUNZE is not set |
826 | # CONFIG_TOUCHSCREEN_ELO is not set | 883 | # CONFIG_TOUCHSCREEN_ELO is not set |
827 | # CONFIG_TOUCHSCREEN_MTOUCH is not set | 884 | # CONFIG_TOUCHSCREEN_MTOUCH is not set |
885 | # CONFIG_TOUCHSCREEN_INEXIO is not set | ||
828 | # CONFIG_TOUCHSCREEN_MK712 is not set | 886 | # CONFIG_TOUCHSCREEN_MK712 is not set |
887 | # CONFIG_TOUCHSCREEN_PENMOUNT is not set | ||
888 | # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set | ||
889 | # CONFIG_TOUCHSCREEN_TOUCHWIN is not set | ||
890 | # CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set | ||
891 | # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set | ||
829 | CONFIG_INPUT_MISC=y | 892 | CONFIG_INPUT_MISC=y |
893 | # CONFIG_INPUT_ATI_REMOTE is not set | ||
894 | # CONFIG_INPUT_ATI_REMOTE2 is not set | ||
895 | # CONFIG_INPUT_KEYSPAN_REMOTE is not set | ||
896 | # CONFIG_INPUT_POWERMATE is not set | ||
897 | # CONFIG_INPUT_YEALINK is not set | ||
898 | # CONFIG_INPUT_CM109 is not set | ||
830 | CONFIG_INPUT_UINPUT=m | 899 | CONFIG_INPUT_UINPUT=m |
831 | 900 | ||
832 | # | 901 | # |
@@ -839,8 +908,11 @@ CONFIG_INPUT_UINPUT=m | |||
839 | # Character devices | 908 | # Character devices |
840 | # | 909 | # |
841 | CONFIG_VT=y | 910 | CONFIG_VT=y |
911 | CONFIG_CONSOLE_TRANSLATIONS=y | ||
842 | CONFIG_VT_CONSOLE=y | 912 | CONFIG_VT_CONSOLE=y |
843 | CONFIG_HW_CONSOLE=y | 913 | CONFIG_HW_CONSOLE=y |
914 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | ||
915 | CONFIG_DEVKMEM=y | ||
844 | # CONFIG_SERIAL_NONSTANDARD is not set | 916 | # CONFIG_SERIAL_NONSTANDARD is not set |
845 | 917 | ||
846 | # | 918 | # |
@@ -849,6 +921,7 @@ CONFIG_HW_CONSOLE=y | |||
849 | CONFIG_SERIAL_8250=m | 921 | CONFIG_SERIAL_8250=m |
850 | CONFIG_SERIAL_8250_CS=m | 922 | CONFIG_SERIAL_8250_CS=m |
851 | CONFIG_SERIAL_8250_NR_UARTS=4 | 923 | CONFIG_SERIAL_8250_NR_UARTS=4 |
924 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | ||
852 | # CONFIG_SERIAL_8250_EXTENDED is not set | 925 | # CONFIG_SERIAL_8250_EXTENDED is not set |
853 | 926 | ||
854 | # | 927 | # |
@@ -860,97 +933,130 @@ CONFIG_SERIAL_CORE=y | |||
860 | CONFIG_SERIAL_CORE_CONSOLE=y | 933 | CONFIG_SERIAL_CORE_CONSOLE=y |
861 | CONFIG_UNIX98_PTYS=y | 934 | CONFIG_UNIX98_PTYS=y |
862 | # CONFIG_LEGACY_PTYS is not set | 935 | # CONFIG_LEGACY_PTYS is not set |
863 | |||
864 | # | ||
865 | # IPMI | ||
866 | # | ||
867 | # CONFIG_IPMI_HANDLER is not set | 936 | # CONFIG_IPMI_HANDLER is not set |
868 | 937 | CONFIG_HW_RANDOM=m | |
869 | # | ||
870 | # Watchdog Cards | ||
871 | # | ||
872 | # CONFIG_WATCHDOG is not set | ||
873 | # CONFIG_NVRAM is not set | 938 | # CONFIG_NVRAM is not set |
874 | # CONFIG_RTC is not set | ||
875 | # CONFIG_DTLK is not set | ||
876 | # CONFIG_R3964 is not set | 939 | # CONFIG_R3964 is not set |
877 | 940 | ||
878 | # | 941 | # |
879 | # Ftape, the floppy tape device driver | ||
880 | # | ||
881 | |||
882 | # | ||
883 | # PCMCIA character devices | 942 | # PCMCIA character devices |
884 | # | 943 | # |
885 | # CONFIG_SYNCLINK_CS is not set | 944 | # CONFIG_SYNCLINK_CS is not set |
886 | # CONFIG_CARDMAN_4000 is not set | 945 | # CONFIG_CARDMAN_4000 is not set |
887 | # CONFIG_CARDMAN_4040 is not set | 946 | # CONFIG_CARDMAN_4040 is not set |
947 | # CONFIG_IPWIRELESS is not set | ||
888 | # CONFIG_RAW_DRIVER is not set | 948 | # CONFIG_RAW_DRIVER is not set |
889 | |||
890 | # | ||
891 | # TPM devices | ||
892 | # | ||
893 | # CONFIG_TCG_TPM is not set | 949 | # CONFIG_TCG_TPM is not set |
894 | # CONFIG_TELCLOCK is not set | ||
895 | |||
896 | # | ||
897 | # I2C support | ||
898 | # | ||
899 | CONFIG_I2C=y | 950 | CONFIG_I2C=y |
951 | CONFIG_I2C_BOARDINFO=y | ||
900 | # CONFIG_I2C_CHARDEV is not set | 952 | # CONFIG_I2C_CHARDEV is not set |
953 | CONFIG_I2C_HELPER_AUTO=y | ||
901 | 954 | ||
902 | # | 955 | # |
903 | # I2C Algorithms | 956 | # I2C Hardware Bus support |
904 | # | 957 | # |
905 | CONFIG_I2C_ALGOBIT=y | ||
906 | # CONFIG_I2C_ALGOPCF is not set | ||
907 | # CONFIG_I2C_ALGOPCA is not set | ||
908 | 958 | ||
909 | # | 959 | # |
910 | # I2C Hardware Bus support | 960 | # I2C system bus drivers (mostly embedded / system-on-chip) |
911 | # | 961 | # |
962 | # CONFIG_I2C_GPIO is not set | ||
963 | # CONFIG_I2C_OCORES is not set | ||
912 | CONFIG_I2C_PXA=y | 964 | CONFIG_I2C_PXA=y |
913 | # CONFIG_I2C_PXA_SLAVE is not set | 965 | # CONFIG_I2C_PXA_SLAVE is not set |
966 | # CONFIG_I2C_SIMTEC is not set | ||
967 | |||
968 | # | ||
969 | # External I2C/SMBus adapter drivers | ||
970 | # | ||
914 | # CONFIG_I2C_PARPORT_LIGHT is not set | 971 | # CONFIG_I2C_PARPORT_LIGHT is not set |
972 | # CONFIG_I2C_TAOS_EVM is not set | ||
973 | # CONFIG_I2C_TINY_USB is not set | ||
974 | |||
975 | # | ||
976 | # Other I2C/SMBus bus drivers | ||
977 | # | ||
978 | # CONFIG_I2C_PCA_PLATFORM is not set | ||
915 | # CONFIG_I2C_STUB is not set | 979 | # CONFIG_I2C_STUB is not set |
916 | # CONFIG_I2C_PCA_ISA is not set | ||
917 | 980 | ||
918 | # | 981 | # |
919 | # Miscellaneous I2C Chip support | 982 | # Miscellaneous I2C Chip support |
920 | # | 983 | # |
921 | # CONFIG_SENSORS_DS1337 is not set | 984 | # CONFIG_DS1682 is not set |
922 | # CONFIG_SENSORS_DS1374 is not set | 985 | # CONFIG_AT24 is not set |
923 | # CONFIG_SENSORS_EEPROM is not set | 986 | # CONFIG_SENSORS_EEPROM is not set |
924 | # CONFIG_SENSORS_PCF8574 is not set | 987 | # CONFIG_SENSORS_PCF8574 is not set |
988 | # CONFIG_PCF8575 is not set | ||
925 | # CONFIG_SENSORS_PCA9539 is not set | 989 | # CONFIG_SENSORS_PCA9539 is not set |
926 | # CONFIG_SENSORS_PCF8591 is not set | 990 | # CONFIG_SENSORS_PCF8591 is not set |
927 | # CONFIG_SENSORS_RTC8564 is not set | 991 | # CONFIG_TPS65010 is not set |
928 | # CONFIG_SENSORS_MAX6875 is not set | 992 | # CONFIG_SENSORS_MAX6875 is not set |
929 | # CONFIG_RTC_X1205_I2C is not set | 993 | # CONFIG_SENSORS_TSL2550 is not set |
930 | # CONFIG_I2C_DEBUG_CORE is not set | 994 | # CONFIG_I2C_DEBUG_CORE is not set |
931 | # CONFIG_I2C_DEBUG_ALGO is not set | 995 | # CONFIG_I2C_DEBUG_ALGO is not set |
932 | # CONFIG_I2C_DEBUG_BUS is not set | 996 | # CONFIG_I2C_DEBUG_BUS is not set |
933 | # CONFIG_I2C_DEBUG_CHIP is not set | 997 | # CONFIG_I2C_DEBUG_CHIP is not set |
998 | CONFIG_SPI=y | ||
999 | # CONFIG_SPI_DEBUG is not set | ||
1000 | CONFIG_SPI_MASTER=y | ||
934 | 1001 | ||
935 | # | 1002 | # |
936 | # Hardware Monitoring support | 1003 | # SPI Master Controller Drivers |
937 | # | 1004 | # |
1005 | # CONFIG_SPI_BITBANG is not set | ||
1006 | CONFIG_SPI_PXA2XX=y | ||
1007 | |||
1008 | # | ||
1009 | # SPI Protocol Masters | ||
1010 | # | ||
1011 | # CONFIG_SPI_AT25 is not set | ||
1012 | # CONFIG_SPI_SPIDEV is not set | ||
1013 | # CONFIG_SPI_TLE62X0 is not set | ||
1014 | CONFIG_ARCH_REQUIRE_GPIOLIB=y | ||
1015 | CONFIG_GPIOLIB=y | ||
1016 | # CONFIG_DEBUG_GPIO is not set | ||
1017 | # CONFIG_GPIO_SYSFS is not set | ||
1018 | |||
1019 | # | ||
1020 | # I2C GPIO expanders: | ||
1021 | # | ||
1022 | # CONFIG_GPIO_MAX732X is not set | ||
1023 | # CONFIG_GPIO_PCA953X is not set | ||
1024 | # CONFIG_GPIO_PCF857X is not set | ||
1025 | |||
1026 | # | ||
1027 | # PCI GPIO expanders: | ||
1028 | # | ||
1029 | |||
1030 | # | ||
1031 | # SPI GPIO expanders: | ||
1032 | # | ||
1033 | # CONFIG_GPIO_MAX7301 is not set | ||
1034 | # CONFIG_GPIO_MCP23S08 is not set | ||
1035 | # CONFIG_W1 is not set | ||
1036 | # CONFIG_POWER_SUPPLY is not set | ||
938 | CONFIG_HWMON=y | 1037 | CONFIG_HWMON=y |
939 | # CONFIG_HWMON_VID is not set | 1038 | # CONFIG_HWMON_VID is not set |
1039 | # CONFIG_SENSORS_AD7414 is not set | ||
1040 | # CONFIG_SENSORS_AD7418 is not set | ||
1041 | # CONFIG_SENSORS_ADCXX is not set | ||
940 | # CONFIG_SENSORS_ADM1021 is not set | 1042 | # CONFIG_SENSORS_ADM1021 is not set |
941 | # CONFIG_SENSORS_ADM1025 is not set | 1043 | # CONFIG_SENSORS_ADM1025 is not set |
942 | # CONFIG_SENSORS_ADM1026 is not set | 1044 | # CONFIG_SENSORS_ADM1026 is not set |
1045 | # CONFIG_SENSORS_ADM1029 is not set | ||
943 | # CONFIG_SENSORS_ADM1031 is not set | 1046 | # CONFIG_SENSORS_ADM1031 is not set |
944 | # CONFIG_SENSORS_ADM9240 is not set | 1047 | # CONFIG_SENSORS_ADM9240 is not set |
945 | # CONFIG_SENSORS_ASB100 is not set | 1048 | # CONFIG_SENSORS_ADT7470 is not set |
1049 | # CONFIG_SENSORS_ADT7473 is not set | ||
946 | # CONFIG_SENSORS_ATXP1 is not set | 1050 | # CONFIG_SENSORS_ATXP1 is not set |
947 | # CONFIG_SENSORS_DS1621 is not set | 1051 | # CONFIG_SENSORS_DS1621 is not set |
948 | # CONFIG_SENSORS_FSCHER is not set | 1052 | # CONFIG_SENSORS_F71805F is not set |
949 | # CONFIG_SENSORS_FSCPOS is not set | 1053 | # CONFIG_SENSORS_F71882FG is not set |
1054 | # CONFIG_SENSORS_F75375S is not set | ||
950 | # CONFIG_SENSORS_GL518SM is not set | 1055 | # CONFIG_SENSORS_GL518SM is not set |
951 | # CONFIG_SENSORS_GL520SM is not set | 1056 | # CONFIG_SENSORS_GL520SM is not set |
952 | # CONFIG_SENSORS_IT87 is not set | 1057 | # CONFIG_SENSORS_IT87 is not set |
953 | # CONFIG_SENSORS_LM63 is not set | 1058 | # CONFIG_SENSORS_LM63 is not set |
1059 | # CONFIG_SENSORS_LM70 is not set | ||
954 | # CONFIG_SENSORS_LM75 is not set | 1060 | # CONFIG_SENSORS_LM75 is not set |
955 | # CONFIG_SENSORS_LM77 is not set | 1061 | # CONFIG_SENSORS_LM77 is not set |
956 | # CONFIG_SENSORS_LM78 is not set | 1062 | # CONFIG_SENSORS_LM78 is not set |
@@ -960,70 +1066,193 @@ CONFIG_HWMON=y | |||
960 | # CONFIG_SENSORS_LM87 is not set | 1066 | # CONFIG_SENSORS_LM87 is not set |
961 | # CONFIG_SENSORS_LM90 is not set | 1067 | # CONFIG_SENSORS_LM90 is not set |
962 | # CONFIG_SENSORS_LM92 is not set | 1068 | # CONFIG_SENSORS_LM92 is not set |
1069 | # CONFIG_SENSORS_LM93 is not set | ||
1070 | CONFIG_SENSORS_MAX1111=y | ||
963 | # CONFIG_SENSORS_MAX1619 is not set | 1071 | # CONFIG_SENSORS_MAX1619 is not set |
1072 | # CONFIG_SENSORS_MAX6650 is not set | ||
964 | # CONFIG_SENSORS_PC87360 is not set | 1073 | # CONFIG_SENSORS_PC87360 is not set |
1074 | # CONFIG_SENSORS_PC87427 is not set | ||
1075 | # CONFIG_SENSORS_DME1737 is not set | ||
965 | # CONFIG_SENSORS_SMSC47M1 is not set | 1076 | # CONFIG_SENSORS_SMSC47M1 is not set |
1077 | # CONFIG_SENSORS_SMSC47M192 is not set | ||
966 | # CONFIG_SENSORS_SMSC47B397 is not set | 1078 | # CONFIG_SENSORS_SMSC47B397 is not set |
1079 | # CONFIG_SENSORS_ADS7828 is not set | ||
1080 | # CONFIG_SENSORS_THMC50 is not set | ||
1081 | # CONFIG_SENSORS_VT1211 is not set | ||
967 | # CONFIG_SENSORS_W83781D is not set | 1082 | # CONFIG_SENSORS_W83781D is not set |
1083 | # CONFIG_SENSORS_W83791D is not set | ||
968 | # CONFIG_SENSORS_W83792D is not set | 1084 | # CONFIG_SENSORS_W83792D is not set |
1085 | # CONFIG_SENSORS_W83793 is not set | ||
969 | # CONFIG_SENSORS_W83L785TS is not set | 1086 | # CONFIG_SENSORS_W83L785TS is not set |
1087 | # CONFIG_SENSORS_W83L786NG is not set | ||
970 | # CONFIG_SENSORS_W83627HF is not set | 1088 | # CONFIG_SENSORS_W83627HF is not set |
971 | # CONFIG_SENSORS_W83627EHF is not set | 1089 | # CONFIG_SENSORS_W83627EHF is not set |
972 | # CONFIG_HWMON_DEBUG_CHIP is not set | 1090 | # CONFIG_HWMON_DEBUG_CHIP is not set |
1091 | # CONFIG_THERMAL is not set | ||
1092 | # CONFIG_THERMAL_HWMON is not set | ||
1093 | # CONFIG_WATCHDOG is not set | ||
973 | 1094 | ||
974 | # | 1095 | # |
975 | # Misc devices | 1096 | # Sonics Silicon Backplane |
976 | # | 1097 | # |
1098 | CONFIG_SSB_POSSIBLE=y | ||
1099 | # CONFIG_SSB is not set | ||
977 | 1100 | ||
978 | # | 1101 | # |
979 | # Multimedia Capabilities Port drivers | 1102 | # Multifunction device drivers |
980 | # | 1103 | # |
1104 | # CONFIG_MFD_CORE is not set | ||
1105 | # CONFIG_MFD_SM501 is not set | ||
1106 | # CONFIG_MFD_ASIC3 is not set | ||
1107 | # CONFIG_HTC_EGPIO is not set | ||
1108 | # CONFIG_HTC_PASIC3 is not set | ||
1109 | # CONFIG_UCB1400_CORE is not set | ||
1110 | # CONFIG_MFD_TMIO is not set | ||
1111 | # CONFIG_MFD_T7L66XB is not set | ||
1112 | # CONFIG_MFD_TC6387XB is not set | ||
1113 | # CONFIG_MFD_TC6393XB is not set | ||
1114 | # CONFIG_MFD_WM8400 is not set | ||
1115 | # CONFIG_MFD_WM8350_I2C is not set | ||
981 | 1116 | ||
982 | # | 1117 | # |
983 | # Multimedia devices | 1118 | # Multimedia devices |
984 | # | 1119 | # |
985 | CONFIG_VIDEO_DEV=m | ||
986 | |||
987 | # | ||
988 | # Video For Linux | ||
989 | # | ||
990 | 1120 | ||
991 | # | 1121 | # |
992 | # Video Adapters | 1122 | # Multimedia core support |
993 | # | 1123 | # |
1124 | CONFIG_VIDEO_DEV=m | ||
1125 | CONFIG_VIDEO_V4L2_COMMON=m | ||
1126 | CONFIG_VIDEO_ALLOW_V4L1=y | ||
1127 | CONFIG_VIDEO_V4L1_COMPAT=y | ||
1128 | # CONFIG_DVB_CORE is not set | ||
1129 | CONFIG_VIDEO_MEDIA=m | ||
1130 | |||
1131 | # | ||
1132 | # Multimedia drivers | ||
1133 | # | ||
1134 | # CONFIG_MEDIA_ATTACH is not set | ||
1135 | CONFIG_MEDIA_TUNER=m | ||
1136 | # CONFIG_MEDIA_TUNER_CUSTOMIZE is not set | ||
1137 | CONFIG_MEDIA_TUNER_SIMPLE=m | ||
1138 | CONFIG_MEDIA_TUNER_TDA8290=m | ||
1139 | CONFIG_MEDIA_TUNER_TDA9887=m | ||
1140 | CONFIG_MEDIA_TUNER_TEA5761=m | ||
1141 | CONFIG_MEDIA_TUNER_TEA5767=m | ||
1142 | CONFIG_MEDIA_TUNER_MT20XX=m | ||
1143 | CONFIG_MEDIA_TUNER_XC2028=m | ||
1144 | CONFIG_MEDIA_TUNER_XC5000=m | ||
1145 | CONFIG_VIDEO_V4L2=m | ||
1146 | CONFIG_VIDEO_V4L1=m | ||
1147 | CONFIG_VIDEO_CAPTURE_DRIVERS=y | ||
1148 | # CONFIG_VIDEO_ADV_DEBUG is not set | ||
1149 | # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set | ||
1150 | CONFIG_VIDEO_HELPER_CHIPS_AUTO=y | ||
1151 | # CONFIG_VIDEO_VIVI is not set | ||
994 | # CONFIG_VIDEO_CPIA is not set | 1152 | # CONFIG_VIDEO_CPIA is not set |
1153 | # CONFIG_VIDEO_CPIA2 is not set | ||
995 | # CONFIG_VIDEO_SAA5246A is not set | 1154 | # CONFIG_VIDEO_SAA5246A is not set |
996 | # CONFIG_VIDEO_SAA5249 is not set | 1155 | # CONFIG_VIDEO_SAA5249 is not set |
997 | # CONFIG_TUNER_3036 is not set | 1156 | # CONFIG_SOC_CAMERA is not set |
1157 | CONFIG_V4L_USB_DRIVERS=y | ||
1158 | # CONFIG_USB_VIDEO_CLASS is not set | ||
1159 | CONFIG_USB_GSPCA=m | ||
1160 | # CONFIG_USB_M5602 is not set | ||
1161 | # CONFIG_USB_GSPCA_CONEX is not set | ||
1162 | # CONFIG_USB_GSPCA_ETOMS is not set | ||
1163 | # CONFIG_USB_GSPCA_FINEPIX is not set | ||
1164 | # CONFIG_USB_GSPCA_MARS is not set | ||
1165 | # CONFIG_USB_GSPCA_OV519 is not set | ||
1166 | # CONFIG_USB_GSPCA_PAC207 is not set | ||
1167 | # CONFIG_USB_GSPCA_PAC7311 is not set | ||
1168 | # CONFIG_USB_GSPCA_SONIXB is not set | ||
1169 | # CONFIG_USB_GSPCA_SONIXJ is not set | ||
1170 | # CONFIG_USB_GSPCA_SPCA500 is not set | ||
1171 | # CONFIG_USB_GSPCA_SPCA501 is not set | ||
1172 | # CONFIG_USB_GSPCA_SPCA505 is not set | ||
1173 | # CONFIG_USB_GSPCA_SPCA506 is not set | ||
1174 | # CONFIG_USB_GSPCA_SPCA508 is not set | ||
1175 | # CONFIG_USB_GSPCA_SPCA561 is not set | ||
1176 | # CONFIG_USB_GSPCA_STK014 is not set | ||
1177 | # CONFIG_USB_GSPCA_SUNPLUS is not set | ||
1178 | # CONFIG_USB_GSPCA_T613 is not set | ||
1179 | # CONFIG_USB_GSPCA_TV8532 is not set | ||
1180 | # CONFIG_USB_GSPCA_VC032X is not set | ||
1181 | # CONFIG_USB_GSPCA_ZC3XX is not set | ||
1182 | # CONFIG_VIDEO_PVRUSB2 is not set | ||
998 | # CONFIG_VIDEO_EM28XX is not set | 1183 | # CONFIG_VIDEO_EM28XX is not set |
1184 | # CONFIG_VIDEO_USBVISION is not set | ||
1185 | CONFIG_VIDEO_USBVIDEO=m | ||
1186 | CONFIG_USB_VICAM=m | ||
1187 | CONFIG_USB_IBMCAM=m | ||
1188 | CONFIG_USB_KONICAWC=m | ||
1189 | # CONFIG_USB_QUICKCAM_MESSENGER is not set | ||
1190 | # CONFIG_USB_ET61X251 is not set | ||
999 | # CONFIG_VIDEO_OVCAMCHIP is not set | 1191 | # CONFIG_VIDEO_OVCAMCHIP is not set |
1000 | # CONFIG_VIDEO_AUDIO_DECODER is not set | 1192 | CONFIG_USB_OV511=m |
1001 | # CONFIG_VIDEO_DECODER is not set | 1193 | CONFIG_USB_SE401=m |
1002 | 1194 | CONFIG_USB_SN9C102=m | |
1003 | # | 1195 | CONFIG_USB_STV680=m |
1004 | # Radio Adapters | 1196 | # CONFIG_USB_ZC0301 is not set |
1005 | # | 1197 | # CONFIG_USB_PWC is not set |
1006 | # CONFIG_RADIO_MAESTRO is not set | 1198 | # CONFIG_USB_ZR364XX is not set |
1007 | 1199 | # CONFIG_USB_STKWEBCAM is not set | |
1008 | # | 1200 | # CONFIG_USB_S2255 is not set |
1009 | # Digital Video Broadcasting Devices | 1201 | CONFIG_RADIO_ADAPTERS=y |
1010 | # | 1202 | CONFIG_USB_DSBR=m |
1011 | # CONFIG_DVB is not set | 1203 | # CONFIG_USB_SI470X is not set |
1204 | # CONFIG_USB_MR800 is not set | ||
1205 | # CONFIG_DAB is not set | ||
1012 | 1206 | ||
1013 | # | 1207 | # |
1014 | # Graphics support | 1208 | # Graphics support |
1015 | # | 1209 | # |
1210 | # CONFIG_VGASTATE is not set | ||
1211 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
1016 | CONFIG_FB=y | 1212 | CONFIG_FB=y |
1213 | # CONFIG_FIRMWARE_EDID is not set | ||
1214 | # CONFIG_FB_DDC is not set | ||
1215 | # CONFIG_FB_BOOT_VESA_SUPPORT is not set | ||
1017 | CONFIG_FB_CFB_FILLRECT=y | 1216 | CONFIG_FB_CFB_FILLRECT=y |
1018 | CONFIG_FB_CFB_COPYAREA=y | 1217 | CONFIG_FB_CFB_COPYAREA=y |
1019 | CONFIG_FB_CFB_IMAGEBLIT=y | 1218 | CONFIG_FB_CFB_IMAGEBLIT=y |
1219 | # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set | ||
1220 | # CONFIG_FB_SYS_FILLRECT is not set | ||
1221 | # CONFIG_FB_SYS_COPYAREA is not set | ||
1222 | # CONFIG_FB_SYS_IMAGEBLIT is not set | ||
1223 | # CONFIG_FB_FOREIGN_ENDIAN is not set | ||
1224 | # CONFIG_FB_SYS_FOPS is not set | ||
1225 | # CONFIG_FB_SVGALIB is not set | ||
1020 | # CONFIG_FB_MACMODES is not set | 1226 | # CONFIG_FB_MACMODES is not set |
1227 | # CONFIG_FB_BACKLIGHT is not set | ||
1021 | # CONFIG_FB_MODE_HELPERS is not set | 1228 | # CONFIG_FB_MODE_HELPERS is not set |
1022 | # CONFIG_FB_TILEBLITTING is not set | 1229 | # CONFIG_FB_TILEBLITTING is not set |
1230 | |||
1231 | # | ||
1232 | # Frame buffer hardware drivers | ||
1233 | # | ||
1023 | # CONFIG_FB_S1D13XXX is not set | 1234 | # CONFIG_FB_S1D13XXX is not set |
1024 | # CONFIG_FB_PXA is not set | 1235 | # CONFIG_FB_PXA is not set |
1236 | # CONFIG_FB_MBX is not set | ||
1025 | CONFIG_FB_W100=y | 1237 | CONFIG_FB_W100=y |
1026 | # CONFIG_FB_VIRTUAL is not set | 1238 | # CONFIG_FB_VIRTUAL is not set |
1239 | # CONFIG_FB_METRONOME is not set | ||
1240 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | ||
1241 | CONFIG_LCD_CLASS_DEVICE=y | ||
1242 | CONFIG_LCD_CORGI=y | ||
1243 | # CONFIG_LCD_LTV350QV is not set | ||
1244 | # CONFIG_LCD_ILI9320 is not set | ||
1245 | # CONFIG_LCD_TDO24M is not set | ||
1246 | # CONFIG_LCD_VGG2432A4 is not set | ||
1247 | # CONFIG_LCD_PLATFORM is not set | ||
1248 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | ||
1249 | # CONFIG_BACKLIGHT_CORGI is not set | ||
1250 | CONFIG_BACKLIGHT_LOCOMO=y | ||
1251 | |||
1252 | # | ||
1253 | # Display device support | ||
1254 | # | ||
1255 | # CONFIG_DISPLAY_SUPPORT is not set | ||
1027 | 1256 | ||
1028 | # | 1257 | # |
1029 | # Console display driver support | 1258 | # Console display driver support |
@@ -1031,6 +1260,7 @@ CONFIG_FB_W100=y | |||
1031 | # CONFIG_VGA_CONSOLE is not set | 1260 | # CONFIG_VGA_CONSOLE is not set |
1032 | CONFIG_DUMMY_CONSOLE=y | 1261 | CONFIG_DUMMY_CONSOLE=y |
1033 | CONFIG_FRAMEBUFFER_CONSOLE=y | 1262 | CONFIG_FRAMEBUFFER_CONSOLE=y |
1263 | # CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set | ||
1034 | # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set | 1264 | # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set |
1035 | CONFIG_FONTS=y | 1265 | CONFIG_FONTS=y |
1036 | CONFIG_FONT_8x8=y | 1266 | CONFIG_FONT_8x8=y |
@@ -1043,93 +1273,95 @@ CONFIG_FONT_8x16=y | |||
1043 | # CONFIG_FONT_SUN8x16 is not set | 1273 | # CONFIG_FONT_SUN8x16 is not set |
1044 | # CONFIG_FONT_SUN12x22 is not set | 1274 | # CONFIG_FONT_SUN12x22 is not set |
1045 | # CONFIG_FONT_10x18 is not set | 1275 | # CONFIG_FONT_10x18 is not set |
1046 | |||
1047 | # | ||
1048 | # Logo configuration | ||
1049 | # | ||
1050 | # CONFIG_LOGO is not set | 1276 | # CONFIG_LOGO is not set |
1051 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | ||
1052 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | ||
1053 | CONFIG_BACKLIGHT_DEVICE=y | ||
1054 | # CONFIG_LCD_CLASS_DEVICE is not set | ||
1055 | CONFIG_BACKLIGHT_CORGI=y | ||
1056 | |||
1057 | # | ||
1058 | # Sound | ||
1059 | # | ||
1060 | CONFIG_SOUND=y | 1277 | CONFIG_SOUND=y |
1278 | CONFIG_SOUND_OSS_CORE=y | ||
1279 | # CONFIG_SND is not set | ||
1280 | CONFIG_SOUND_PRIME=y | ||
1281 | CONFIG_HID_SUPPORT=y | ||
1282 | CONFIG_HID=y | ||
1283 | # CONFIG_HID_DEBUG is not set | ||
1284 | # CONFIG_HIDRAW is not set | ||
1061 | 1285 | ||
1062 | # | 1286 | # |
1063 | # Advanced Linux Sound Architecture | 1287 | # USB Input Devices |
1064 | # | 1288 | # |
1065 | # CONFIG_SND is not set | 1289 | CONFIG_USB_HID=m |
1290 | # CONFIG_HID_PID is not set | ||
1291 | # CONFIG_USB_HIDDEV is not set | ||
1066 | 1292 | ||
1067 | # | 1293 | # |
1068 | # Open Sound System | 1294 | # USB HID Boot Protocol drivers |
1069 | # | 1295 | # |
1070 | CONFIG_SOUND_PRIME=y | 1296 | CONFIG_USB_KBD=m |
1071 | # CONFIG_SOUND_MSNDCLAS is not set | 1297 | CONFIG_USB_MOUSE=m |
1072 | # CONFIG_SOUND_MSNDPIN is not set | 1298 | |
1073 | CONFIG_SOUND_OSS=y | ||
1074 | # CONFIG_SOUND_TRACEINIT is not set | ||
1075 | # CONFIG_SOUND_DMAP is not set | ||
1076 | # CONFIG_SOUND_AD1816 is not set | ||
1077 | # CONFIG_SOUND_SGALAXY is not set | ||
1078 | # CONFIG_SOUND_ADLIB is not set | ||
1079 | # CONFIG_SOUND_ACI_MIXER is not set | ||
1080 | # CONFIG_SOUND_CS4232 is not set | ||
1081 | # CONFIG_SOUND_SSCAPE is not set | ||
1082 | # CONFIG_SOUND_GUS is not set | ||
1083 | # CONFIG_SOUND_VMIDI is not set | ||
1084 | # CONFIG_SOUND_TRIX is not set | ||
1085 | # CONFIG_SOUND_MSS is not set | ||
1086 | # CONFIG_SOUND_MPU401 is not set | ||
1087 | # CONFIG_SOUND_NM256 is not set | ||
1088 | # CONFIG_SOUND_MAD16 is not set | ||
1089 | # CONFIG_SOUND_PAS is not set | ||
1090 | # CONFIG_SOUND_PSS is not set | ||
1091 | # CONFIG_SOUND_SB is not set | ||
1092 | # CONFIG_SOUND_AWE32_SYNTH is not set | ||
1093 | # CONFIG_SOUND_WAVEFRONT is not set | ||
1094 | # CONFIG_SOUND_MAUI is not set | ||
1095 | # CONFIG_SOUND_YM3812 is not set | ||
1096 | # CONFIG_SOUND_OPL3SA1 is not set | ||
1097 | # CONFIG_SOUND_OPL3SA2 is not set | ||
1098 | # CONFIG_SOUND_UART6850 is not set | ||
1099 | # CONFIG_SOUND_AEDSP16 is not set | ||
1100 | # CONFIG_SOUND_TVMIXER is not set | ||
1101 | # CONFIG_SOUND_AD1980 is not set | ||
1102 | |||
1103 | # | ||
1104 | # USB support | ||
1105 | # | 1299 | # |
1300 | # Special HID drivers | ||
1301 | # | ||
1302 | CONFIG_HID_COMPAT=y | ||
1303 | CONFIG_HID_A4TECH=m | ||
1304 | CONFIG_HID_APPLE=m | ||
1305 | CONFIG_HID_BELKIN=m | ||
1306 | CONFIG_HID_BRIGHT=m | ||
1307 | CONFIG_HID_CHERRY=m | ||
1308 | CONFIG_HID_CHICONY=m | ||
1309 | CONFIG_HID_CYPRESS=m | ||
1310 | CONFIG_HID_DELL=m | ||
1311 | CONFIG_HID_EZKEY=m | ||
1312 | CONFIG_HID_GYRATION=m | ||
1313 | CONFIG_HID_LOGITECH=m | ||
1314 | # CONFIG_LOGITECH_FF is not set | ||
1315 | # CONFIG_LOGIRUMBLEPAD2_FF is not set | ||
1316 | CONFIG_HID_MICROSOFT=m | ||
1317 | CONFIG_HID_MONTEREY=m | ||
1318 | CONFIG_HID_PANTHERLORD=m | ||
1319 | # CONFIG_PANTHERLORD_FF is not set | ||
1320 | CONFIG_HID_PETALYNX=m | ||
1321 | CONFIG_HID_SAMSUNG=m | ||
1322 | CONFIG_HID_SONY=m | ||
1323 | CONFIG_HID_SUNPLUS=m | ||
1324 | CONFIG_THRUSTMASTER_FF=m | ||
1325 | CONFIG_ZEROPLUS_FF=m | ||
1326 | CONFIG_USB_SUPPORT=y | ||
1106 | CONFIG_USB_ARCH_HAS_HCD=y | 1327 | CONFIG_USB_ARCH_HAS_HCD=y |
1107 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 1328 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
1329 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
1108 | CONFIG_USB=m | 1330 | CONFIG_USB=m |
1109 | # CONFIG_USB_DEBUG is not set | 1331 | # CONFIG_USB_DEBUG is not set |
1332 | # CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set | ||
1110 | 1333 | ||
1111 | # | 1334 | # |
1112 | # Miscellaneous USB options | 1335 | # Miscellaneous USB options |
1113 | # | 1336 | # |
1114 | CONFIG_USB_DEVICEFS=y | 1337 | CONFIG_USB_DEVICEFS=y |
1115 | # CONFIG_USB_BANDWIDTH is not set | 1338 | CONFIG_USB_DEVICE_CLASS=y |
1116 | # CONFIG_USB_DYNAMIC_MINORS is not set | 1339 | # CONFIG_USB_DYNAMIC_MINORS is not set |
1117 | # CONFIG_USB_SUSPEND is not set | 1340 | # CONFIG_USB_SUSPEND is not set |
1118 | # CONFIG_USB_OTG is not set | 1341 | # CONFIG_USB_OTG is not set |
1342 | # CONFIG_USB_OTG_WHITELIST is not set | ||
1343 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | ||
1344 | CONFIG_USB_MON=y | ||
1119 | 1345 | ||
1120 | # | 1346 | # |
1121 | # USB Host Controller Drivers | 1347 | # USB Host Controller Drivers |
1122 | # | 1348 | # |
1349 | # CONFIG_USB_C67X00_HCD is not set | ||
1123 | # CONFIG_USB_ISP116X_HCD is not set | 1350 | # CONFIG_USB_ISP116X_HCD is not set |
1351 | # CONFIG_USB_ISP1760_HCD is not set | ||
1124 | CONFIG_USB_SL811_HCD=m | 1352 | CONFIG_USB_SL811_HCD=m |
1125 | CONFIG_USB_SL811_CS=m | 1353 | CONFIG_USB_SL811_CS=m |
1354 | # CONFIG_USB_R8A66597_HCD is not set | ||
1355 | # CONFIG_USB_MUSB_HDRC is not set | ||
1356 | # CONFIG_USB_GADGET_MUSB_HDRC is not set | ||
1126 | 1357 | ||
1127 | # | 1358 | # |
1128 | # USB Device Class drivers | 1359 | # USB Device Class drivers |
1129 | # | 1360 | # |
1130 | # CONFIG_OBSOLETE_OSS_USB_DRIVER is not set | ||
1131 | CONFIG_USB_ACM=m | 1361 | CONFIG_USB_ACM=m |
1132 | CONFIG_USB_PRINTER=m | 1362 | CONFIG_USB_PRINTER=m |
1363 | # CONFIG_USB_WDM is not set | ||
1364 | # CONFIG_USB_TMC is not set | ||
1133 | 1365 | ||
1134 | # | 1366 | # |
1135 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 1367 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -1148,33 +1380,11 @@ CONFIG_USB_STORAGE=m | |||
1148 | # CONFIG_USB_STORAGE_SDDR09 is not set | 1380 | # CONFIG_USB_STORAGE_SDDR09 is not set |
1149 | # CONFIG_USB_STORAGE_SDDR55 is not set | 1381 | # CONFIG_USB_STORAGE_SDDR55 is not set |
1150 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | 1382 | # CONFIG_USB_STORAGE_JUMPSHOT is not set |
1151 | 1383 | # CONFIG_USB_STORAGE_ALAUDA is not set | |
1152 | # | 1384 | # CONFIG_USB_STORAGE_ONETOUCH is not set |
1153 | # USB Input Devices | 1385 | # CONFIG_USB_STORAGE_KARMA is not set |
1154 | # | 1386 | # CONFIG_USB_STORAGE_CYPRESS_ATACB is not set |
1155 | CONFIG_USB_HID=m | 1387 | # CONFIG_USB_LIBUSUAL is not set |
1156 | CONFIG_USB_HIDINPUT=y | ||
1157 | # CONFIG_HID_FF is not set | ||
1158 | # CONFIG_USB_HIDDEV is not set | ||
1159 | |||
1160 | # | ||
1161 | # USB HID Boot Protocol drivers | ||
1162 | # | ||
1163 | CONFIG_USB_KBD=m | ||
1164 | CONFIG_USB_MOUSE=m | ||
1165 | CONFIG_USB_AIPTEK=m | ||
1166 | CONFIG_USB_WACOM=m | ||
1167 | # CONFIG_USB_ACECAD is not set | ||
1168 | CONFIG_USB_KBTAB=m | ||
1169 | CONFIG_USB_POWERMATE=m | ||
1170 | CONFIG_USB_MTOUCH=m | ||
1171 | # CONFIG_USB_ITMTOUCH is not set | ||
1172 | CONFIG_USB_EGALAX=m | ||
1173 | # CONFIG_USB_YEALINK is not set | ||
1174 | CONFIG_USB_XPAD=m | ||
1175 | CONFIG_USB_ATI_REMOTE=m | ||
1176 | # CONFIG_USB_KEYSPAN_REMOTE is not set | ||
1177 | # CONFIG_USB_APPLETOUCH is not set | ||
1178 | 1388 | ||
1179 | # | 1389 | # |
1180 | # USB Imaging devices | 1390 | # USB Imaging devices |
@@ -1183,56 +1393,22 @@ CONFIG_USB_MDC800=m | |||
1183 | CONFIG_USB_MICROTEK=m | 1393 | CONFIG_USB_MICROTEK=m |
1184 | 1394 | ||
1185 | # | 1395 | # |
1186 | # USB Multimedia devices | ||
1187 | # | ||
1188 | CONFIG_USB_DABUSB=m | ||
1189 | CONFIG_USB_VICAM=m | ||
1190 | CONFIG_USB_DSBR=m | ||
1191 | CONFIG_USB_IBMCAM=m | ||
1192 | CONFIG_USB_KONICAWC=m | ||
1193 | CONFIG_USB_OV511=m | ||
1194 | CONFIG_USB_SE401=m | ||
1195 | CONFIG_USB_SN9C102=m | ||
1196 | CONFIG_USB_STV680=m | ||
1197 | # CONFIG_USB_PWC is not set | ||
1198 | |||
1199 | # | ||
1200 | # USB Network Adapters | ||
1201 | # | ||
1202 | CONFIG_USB_CATC=m | ||
1203 | CONFIG_USB_KAWETH=m | ||
1204 | CONFIG_USB_PEGASUS=m | ||
1205 | CONFIG_USB_RTL8150=m | ||
1206 | CONFIG_USB_USBNET=m | ||
1207 | CONFIG_USB_NET_AX8817X=m | ||
1208 | CONFIG_USB_NET_CDCETHER=m | ||
1209 | # CONFIG_USB_NET_GL620A is not set | ||
1210 | CONFIG_USB_NET_NET1080=m | ||
1211 | # CONFIG_USB_NET_PLUSB is not set | ||
1212 | # CONFIG_USB_NET_RNDIS_HOST is not set | ||
1213 | # CONFIG_USB_NET_CDC_SUBSET is not set | ||
1214 | CONFIG_USB_NET_ZAURUS=m | ||
1215 | # CONFIG_USB_ZD1201 is not set | ||
1216 | CONFIG_USB_MON=y | ||
1217 | |||
1218 | # | ||
1219 | # USB port drivers | 1396 | # USB port drivers |
1220 | # | 1397 | # |
1221 | |||
1222 | # | ||
1223 | # USB Serial Converter support | ||
1224 | # | ||
1225 | CONFIG_USB_SERIAL=m | 1398 | CONFIG_USB_SERIAL=m |
1399 | CONFIG_USB_EZUSB=y | ||
1226 | CONFIG_USB_SERIAL_GENERIC=y | 1400 | CONFIG_USB_SERIAL_GENERIC=y |
1227 | # CONFIG_USB_SERIAL_AIRPRIME is not set | 1401 | # CONFIG_USB_SERIAL_AIRCABLE is not set |
1228 | # CONFIG_USB_SERIAL_ANYDATA is not set | 1402 | # CONFIG_USB_SERIAL_ARK3116 is not set |
1229 | CONFIG_USB_SERIAL_BELKIN=m | 1403 | CONFIG_USB_SERIAL_BELKIN=m |
1404 | # CONFIG_USB_SERIAL_CH341 is not set | ||
1230 | # CONFIG_USB_SERIAL_WHITEHEAT is not set | 1405 | # CONFIG_USB_SERIAL_WHITEHEAT is not set |
1231 | CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m | 1406 | CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m |
1232 | # CONFIG_USB_SERIAL_CP2101 is not set | 1407 | # CONFIG_USB_SERIAL_CP2101 is not set |
1233 | CONFIG_USB_SERIAL_CYPRESS_M8=m | 1408 | CONFIG_USB_SERIAL_CYPRESS_M8=m |
1234 | CONFIG_USB_SERIAL_EMPEG=m | 1409 | CONFIG_USB_SERIAL_EMPEG=m |
1235 | CONFIG_USB_SERIAL_FTDI_SIO=m | 1410 | CONFIG_USB_SERIAL_FTDI_SIO=m |
1411 | # CONFIG_USB_SERIAL_FUNSOFT is not set | ||
1236 | CONFIG_USB_SERIAL_VISOR=m | 1412 | CONFIG_USB_SERIAL_VISOR=m |
1237 | CONFIG_USB_SERIAL_IPAQ=m | 1413 | CONFIG_USB_SERIAL_IPAQ=m |
1238 | CONFIG_USB_SERIAL_IR=m | 1414 | CONFIG_USB_SERIAL_IR=m |
@@ -1240,6 +1416,7 @@ CONFIG_USB_SERIAL_EDGEPORT=m | |||
1240 | CONFIG_USB_SERIAL_EDGEPORT_TI=m | 1416 | CONFIG_USB_SERIAL_EDGEPORT_TI=m |
1241 | CONFIG_USB_SERIAL_GARMIN=m | 1417 | CONFIG_USB_SERIAL_GARMIN=m |
1242 | CONFIG_USB_SERIAL_IPW=m | 1418 | CONFIG_USB_SERIAL_IPW=m |
1419 | # CONFIG_USB_SERIAL_IUU is not set | ||
1243 | CONFIG_USB_SERIAL_KEYSPAN_PDA=m | 1420 | CONFIG_USB_SERIAL_KEYSPAN_PDA=m |
1244 | CONFIG_USB_SERIAL_KEYSPAN=m | 1421 | CONFIG_USB_SERIAL_KEYSPAN=m |
1245 | # CONFIG_USB_SERIAL_KEYSPAN_MPR is not set | 1422 | # CONFIG_USB_SERIAL_KEYSPAN_MPR is not set |
@@ -1257,50 +1434,68 @@ CONFIG_USB_SERIAL_KEYSPAN=m | |||
1257 | CONFIG_USB_SERIAL_KLSI=m | 1434 | CONFIG_USB_SERIAL_KLSI=m |
1258 | CONFIG_USB_SERIAL_KOBIL_SCT=m | 1435 | CONFIG_USB_SERIAL_KOBIL_SCT=m |
1259 | CONFIG_USB_SERIAL_MCT_U232=m | 1436 | CONFIG_USB_SERIAL_MCT_U232=m |
1437 | # CONFIG_USB_SERIAL_MOS7720 is not set | ||
1438 | # CONFIG_USB_SERIAL_MOS7840 is not set | ||
1439 | # CONFIG_USB_SERIAL_MOTOROLA is not set | ||
1440 | # CONFIG_USB_SERIAL_NAVMAN is not set | ||
1260 | CONFIG_USB_SERIAL_PL2303=m | 1441 | CONFIG_USB_SERIAL_PL2303=m |
1442 | # CONFIG_USB_SERIAL_OTI6858 is not set | ||
1443 | # CONFIG_USB_SERIAL_SPCP8X5 is not set | ||
1261 | # CONFIG_USB_SERIAL_HP4X is not set | 1444 | # CONFIG_USB_SERIAL_HP4X is not set |
1262 | CONFIG_USB_SERIAL_SAFE=m | 1445 | CONFIG_USB_SERIAL_SAFE=m |
1263 | # CONFIG_USB_SERIAL_SAFE_PADDED is not set | 1446 | # CONFIG_USB_SERIAL_SAFE_PADDED is not set |
1447 | # CONFIG_USB_SERIAL_SIERRAWIRELESS is not set | ||
1264 | CONFIG_USB_SERIAL_TI=m | 1448 | CONFIG_USB_SERIAL_TI=m |
1265 | CONFIG_USB_SERIAL_CYBERJACK=m | 1449 | CONFIG_USB_SERIAL_CYBERJACK=m |
1266 | CONFIG_USB_SERIAL_XIRCOM=m | 1450 | CONFIG_USB_SERIAL_XIRCOM=m |
1451 | # CONFIG_USB_SERIAL_OPTION is not set | ||
1267 | CONFIG_USB_SERIAL_OMNINET=m | 1452 | CONFIG_USB_SERIAL_OMNINET=m |
1268 | CONFIG_USB_EZUSB=y | 1453 | # CONFIG_USB_SERIAL_DEBUG is not set |
1269 | 1454 | ||
1270 | # | 1455 | # |
1271 | # USB Miscellaneous drivers | 1456 | # USB Miscellaneous drivers |
1272 | # | 1457 | # |
1273 | CONFIG_USB_EMI62=m | 1458 | CONFIG_USB_EMI62=m |
1274 | CONFIG_USB_EMI26=m | 1459 | CONFIG_USB_EMI26=m |
1275 | CONFIG_USB_AUERSWALD=m | 1460 | # CONFIG_USB_ADUTUX is not set |
1461 | # CONFIG_USB_SEVSEG is not set | ||
1276 | CONFIG_USB_RIO500=m | 1462 | CONFIG_USB_RIO500=m |
1277 | CONFIG_USB_LEGOTOWER=m | 1463 | CONFIG_USB_LEGOTOWER=m |
1278 | CONFIG_USB_LCD=m | 1464 | CONFIG_USB_LCD=m |
1465 | # CONFIG_USB_BERRY_CHARGE is not set | ||
1279 | CONFIG_USB_LED=m | 1466 | CONFIG_USB_LED=m |
1467 | # CONFIG_USB_CYPRESS_CY7C63 is not set | ||
1280 | CONFIG_USB_CYTHERM=m | 1468 | CONFIG_USB_CYTHERM=m |
1281 | CONFIG_USB_PHIDGETKIT=m | 1469 | # CONFIG_USB_PHIDGET is not set |
1282 | CONFIG_USB_PHIDGETSERVO=m | ||
1283 | CONFIG_USB_IDMOUSE=m | 1470 | CONFIG_USB_IDMOUSE=m |
1471 | # CONFIG_USB_FTDI_ELAN is not set | ||
1472 | # CONFIG_USB_APPLEDISPLAY is not set | ||
1284 | # CONFIG_USB_LD is not set | 1473 | # CONFIG_USB_LD is not set |
1474 | # CONFIG_USB_TRANCEVIBRATOR is not set | ||
1475 | # CONFIG_USB_IOWARRIOR is not set | ||
1285 | # CONFIG_USB_TEST is not set | 1476 | # CONFIG_USB_TEST is not set |
1286 | 1477 | # CONFIG_USB_ISIGHTFW is not set | |
1287 | # | 1478 | # CONFIG_USB_VST is not set |
1288 | # USB DSL modem support | ||
1289 | # | ||
1290 | |||
1291 | # | ||
1292 | # USB Gadget Support | ||
1293 | # | ||
1294 | CONFIG_USB_GADGET=y | 1479 | CONFIG_USB_GADGET=y |
1480 | # CONFIG_USB_GADGET_DEBUG is not set | ||
1295 | # CONFIG_USB_GADGET_DEBUG_FILES is not set | 1481 | # CONFIG_USB_GADGET_DEBUG_FILES is not set |
1482 | CONFIG_USB_GADGET_VBUS_DRAW=2 | ||
1296 | CONFIG_USB_GADGET_SELECTED=y | 1483 | CONFIG_USB_GADGET_SELECTED=y |
1297 | # CONFIG_USB_GADGET_NET2280 is not set | 1484 | # CONFIG_USB_GADGET_AT91 is not set |
1298 | CONFIG_USB_GADGET_PXA2XX=y | 1485 | # CONFIG_USB_GADGET_ATMEL_USBA is not set |
1299 | CONFIG_USB_PXA2XX=y | 1486 | # CONFIG_USB_GADGET_FSL_USB2 is not set |
1300 | # CONFIG_USB_PXA2XX_SMALL is not set | ||
1301 | # CONFIG_USB_GADGET_GOKU is not set | ||
1302 | # CONFIG_USB_GADGET_LH7A40X is not set | 1487 | # CONFIG_USB_GADGET_LH7A40X is not set |
1303 | # CONFIG_USB_GADGET_OMAP is not set | 1488 | # CONFIG_USB_GADGET_OMAP is not set |
1489 | CONFIG_USB_GADGET_PXA25X=y | ||
1490 | CONFIG_USB_PXA25X=y | ||
1491 | # CONFIG_USB_PXA25X_SMALL is not set | ||
1492 | # CONFIG_USB_GADGET_PXA27X is not set | ||
1493 | # CONFIG_USB_GADGET_S3C2410 is not set | ||
1494 | # CONFIG_USB_GADGET_M66592 is not set | ||
1495 | # CONFIG_USB_GADGET_AMD5536UDC is not set | ||
1496 | # CONFIG_USB_GADGET_FSL_QE is not set | ||
1497 | # CONFIG_USB_GADGET_NET2280 is not set | ||
1498 | # CONFIG_USB_GADGET_GOKU is not set | ||
1304 | # CONFIG_USB_GADGET_DUMMY_HCD is not set | 1499 | # CONFIG_USB_GADGET_DUMMY_HCD is not set |
1305 | # CONFIG_USB_GADGET_DUALSPEED is not set | 1500 | # CONFIG_USB_GADGET_DUALSPEED is not set |
1306 | CONFIG_USB_ZERO=m | 1501 | CONFIG_USB_ZERO=m |
@@ -1310,15 +1505,42 @@ CONFIG_USB_GADGETFS=m | |||
1310 | CONFIG_USB_FILE_STORAGE=m | 1505 | CONFIG_USB_FILE_STORAGE=m |
1311 | # CONFIG_USB_FILE_STORAGE_TEST is not set | 1506 | # CONFIG_USB_FILE_STORAGE_TEST is not set |
1312 | CONFIG_USB_G_SERIAL=m | 1507 | CONFIG_USB_G_SERIAL=m |
1508 | # CONFIG_USB_MIDI_GADGET is not set | ||
1509 | # CONFIG_USB_G_PRINTER is not set | ||
1510 | # CONFIG_USB_CDC_COMPOSITE is not set | ||
1511 | CONFIG_MMC=y | ||
1512 | # CONFIG_MMC_DEBUG is not set | ||
1513 | # CONFIG_MMC_UNSAFE_RESUME is not set | ||
1313 | 1514 | ||
1314 | # | 1515 | # |
1315 | # MMC/SD Card support | 1516 | # MMC/SD/SDIO Card Drivers |
1316 | # | 1517 | # |
1317 | CONFIG_MMC=y | ||
1318 | # CONFIG_MMC_DEBUG is not set | ||
1319 | CONFIG_MMC_BLOCK=y | 1518 | CONFIG_MMC_BLOCK=y |
1519 | CONFIG_MMC_BLOCK_BOUNCE=y | ||
1520 | # CONFIG_SDIO_UART is not set | ||
1521 | # CONFIG_MMC_TEST is not set | ||
1522 | |||
1523 | # | ||
1524 | # MMC/SD/SDIO Host Controller Drivers | ||
1525 | # | ||
1320 | CONFIG_MMC_PXA=y | 1526 | CONFIG_MMC_PXA=y |
1321 | # CONFIG_MMC_WBSD is not set | 1527 | # CONFIG_MMC_SDHCI is not set |
1528 | # CONFIG_MMC_SPI is not set | ||
1529 | # CONFIG_MEMSTICK is not set | ||
1530 | # CONFIG_ACCESSIBILITY is not set | ||
1531 | # CONFIG_NEW_LEDS is not set | ||
1532 | CONFIG_RTC_LIB=y | ||
1533 | # CONFIG_RTC_CLASS is not set | ||
1534 | # CONFIG_DMADEVICES is not set | ||
1535 | |||
1536 | # | ||
1537 | # Voltage and Current regulators | ||
1538 | # | ||
1539 | # CONFIG_REGULATOR is not set | ||
1540 | # CONFIG_REGULATOR_FIXED_VOLTAGE is not set | ||
1541 | # CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set | ||
1542 | # CONFIG_REGULATOR_BQ24022 is not set | ||
1543 | # CONFIG_UIO is not set | ||
1322 | 1544 | ||
1323 | # | 1545 | # |
1324 | # File systems | 1546 | # File systems |
@@ -1327,16 +1549,17 @@ CONFIG_EXT2_FS=y | |||
1327 | # CONFIG_EXT2_FS_XATTR is not set | 1549 | # CONFIG_EXT2_FS_XATTR is not set |
1328 | # CONFIG_EXT2_FS_XIP is not set | 1550 | # CONFIG_EXT2_FS_XIP is not set |
1329 | # CONFIG_EXT3_FS is not set | 1551 | # CONFIG_EXT3_FS is not set |
1330 | # CONFIG_JBD is not set | 1552 | # CONFIG_EXT4_FS is not set |
1331 | # CONFIG_REISERFS_FS is not set | 1553 | # CONFIG_REISERFS_FS is not set |
1332 | # CONFIG_JFS_FS is not set | 1554 | # CONFIG_JFS_FS is not set |
1333 | # CONFIG_FS_POSIX_ACL is not set | 1555 | # CONFIG_FS_POSIX_ACL is not set |
1556 | CONFIG_FILE_LOCKING=y | ||
1334 | # CONFIG_XFS_FS is not set | 1557 | # CONFIG_XFS_FS is not set |
1335 | # CONFIG_MINIX_FS is not set | 1558 | # CONFIG_OCFS2_FS is not set |
1336 | # CONFIG_ROMFS_FS is not set | 1559 | CONFIG_DNOTIFY=y |
1337 | CONFIG_INOTIFY=y | 1560 | CONFIG_INOTIFY=y |
1561 | CONFIG_INOTIFY_USER=y | ||
1338 | # CONFIG_QUOTA is not set | 1562 | # CONFIG_QUOTA is not set |
1339 | CONFIG_DNOTIFY=y | ||
1340 | # CONFIG_AUTOFS_FS is not set | 1563 | # CONFIG_AUTOFS_FS is not set |
1341 | # CONFIG_AUTOFS4_FS is not set | 1564 | # CONFIG_AUTOFS4_FS is not set |
1342 | # CONFIG_FUSE_FS is not set | 1565 | # CONFIG_FUSE_FS is not set |
@@ -1361,11 +1584,13 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
1361 | # Pseudo filesystems | 1584 | # Pseudo filesystems |
1362 | # | 1585 | # |
1363 | CONFIG_PROC_FS=y | 1586 | CONFIG_PROC_FS=y |
1587 | CONFIG_PROC_SYSCTL=y | ||
1588 | CONFIG_PROC_PAGE_MONITOR=y | ||
1364 | CONFIG_SYSFS=y | 1589 | CONFIG_SYSFS=y |
1365 | CONFIG_TMPFS=y | 1590 | CONFIG_TMPFS=y |
1591 | # CONFIG_TMPFS_POSIX_ACL is not set | ||
1366 | # CONFIG_HUGETLB_PAGE is not set | 1592 | # CONFIG_HUGETLB_PAGE is not set |
1367 | CONFIG_RAMFS=y | 1593 | # CONFIG_CONFIGFS_FS is not set |
1368 | # CONFIG_RELAYFS_FS is not set | ||
1369 | 1594 | ||
1370 | # | 1595 | # |
1371 | # Miscellaneous filesystems | 1596 | # Miscellaneous filesystems |
@@ -1377,39 +1602,42 @@ CONFIG_RAMFS=y | |||
1377 | # CONFIG_BEFS_FS is not set | 1602 | # CONFIG_BEFS_FS is not set |
1378 | # CONFIG_BFS_FS is not set | 1603 | # CONFIG_BFS_FS is not set |
1379 | # CONFIG_EFS_FS is not set | 1604 | # CONFIG_EFS_FS is not set |
1380 | # CONFIG_JFFS_FS is not set | ||
1381 | CONFIG_JFFS2_FS=y | 1605 | CONFIG_JFFS2_FS=y |
1382 | CONFIG_JFFS2_FS_DEBUG=0 | 1606 | CONFIG_JFFS2_FS_DEBUG=0 |
1383 | CONFIG_JFFS2_FS_WRITEBUFFER=y | 1607 | CONFIG_JFFS2_FS_WRITEBUFFER=y |
1608 | # CONFIG_JFFS2_FS_WBUF_VERIFY is not set | ||
1384 | CONFIG_JFFS2_SUMMARY=y | 1609 | CONFIG_JFFS2_SUMMARY=y |
1610 | # CONFIG_JFFS2_FS_XATTR is not set | ||
1385 | CONFIG_JFFS2_COMPRESSION_OPTIONS=y | 1611 | CONFIG_JFFS2_COMPRESSION_OPTIONS=y |
1386 | CONFIG_JFFS2_ZLIB=y | 1612 | CONFIG_JFFS2_ZLIB=y |
1613 | # CONFIG_JFFS2_LZO is not set | ||
1387 | CONFIG_JFFS2_RTIME=y | 1614 | CONFIG_JFFS2_RTIME=y |
1388 | CONFIG_JFFS2_RUBIN=y | 1615 | CONFIG_JFFS2_RUBIN=y |
1389 | # CONFIG_JFFS2_CMODE_NONE is not set | 1616 | # CONFIG_JFFS2_CMODE_NONE is not set |
1390 | CONFIG_JFFS2_CMODE_PRIORITY=y | 1617 | CONFIG_JFFS2_CMODE_PRIORITY=y |
1391 | # CONFIG_JFFS2_CMODE_SIZE is not set | 1618 | # CONFIG_JFFS2_CMODE_SIZE is not set |
1619 | # CONFIG_JFFS2_CMODE_FAVOURLZO is not set | ||
1392 | CONFIG_CRAMFS=m | 1620 | CONFIG_CRAMFS=m |
1393 | # CONFIG_VXFS_FS is not set | 1621 | # CONFIG_VXFS_FS is not set |
1622 | # CONFIG_MINIX_FS is not set | ||
1623 | # CONFIG_OMFS_FS is not set | ||
1394 | # CONFIG_HPFS_FS is not set | 1624 | # CONFIG_HPFS_FS is not set |
1395 | # CONFIG_QNX4FS_FS is not set | 1625 | # CONFIG_QNX4FS_FS is not set |
1626 | # CONFIG_ROMFS_FS is not set | ||
1396 | # CONFIG_SYSV_FS is not set | 1627 | # CONFIG_SYSV_FS is not set |
1397 | # CONFIG_UFS_FS is not set | 1628 | # CONFIG_UFS_FS is not set |
1398 | 1629 | CONFIG_NETWORK_FILESYSTEMS=y | |
1399 | # | ||
1400 | # Network File Systems | ||
1401 | # | ||
1402 | CONFIG_NFS_FS=m | 1630 | CONFIG_NFS_FS=m |
1403 | CONFIG_NFS_V3=y | 1631 | CONFIG_NFS_V3=y |
1404 | # CONFIG_NFS_V3_ACL is not set | 1632 | # CONFIG_NFS_V3_ACL is not set |
1405 | CONFIG_NFS_V4=y | 1633 | CONFIG_NFS_V4=y |
1406 | # CONFIG_NFS_DIRECTIO is not set | ||
1407 | # CONFIG_NFSD is not set | 1634 | # CONFIG_NFSD is not set |
1408 | CONFIG_LOCKD=m | 1635 | CONFIG_LOCKD=m |
1409 | CONFIG_LOCKD_V4=y | 1636 | CONFIG_LOCKD_V4=y |
1410 | CONFIG_NFS_COMMON=y | 1637 | CONFIG_NFS_COMMON=y |
1411 | CONFIG_SUNRPC=m | 1638 | CONFIG_SUNRPC=m |
1412 | CONFIG_SUNRPC_GSS=m | 1639 | CONFIG_SUNRPC_GSS=m |
1640 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
1413 | CONFIG_RPCSEC_GSS_KRB5=m | 1641 | CONFIG_RPCSEC_GSS_KRB5=m |
1414 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1642 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1415 | CONFIG_SMB_FS=m | 1643 | CONFIG_SMB_FS=m |
@@ -1419,7 +1647,6 @@ CONFIG_SMB_NLS_REMOTE="cp437" | |||
1419 | # CONFIG_NCP_FS is not set | 1647 | # CONFIG_NCP_FS is not set |
1420 | # CONFIG_CODA_FS is not set | 1648 | # CONFIG_CODA_FS is not set |
1421 | # CONFIG_AFS_FS is not set | 1649 | # CONFIG_AFS_FS is not set |
1422 | # CONFIG_9P_FS is not set | ||
1423 | 1650 | ||
1424 | # | 1651 | # |
1425 | # Partition Types | 1652 | # Partition Types |
@@ -1439,11 +1666,9 @@ CONFIG_MSDOS_PARTITION=y | |||
1439 | # CONFIG_SGI_PARTITION is not set | 1666 | # CONFIG_SGI_PARTITION is not set |
1440 | # CONFIG_ULTRIX_PARTITION is not set | 1667 | # CONFIG_ULTRIX_PARTITION is not set |
1441 | # CONFIG_SUN_PARTITION is not set | 1668 | # CONFIG_SUN_PARTITION is not set |
1669 | # CONFIG_KARMA_PARTITION is not set | ||
1442 | # CONFIG_EFI_PARTITION is not set | 1670 | # CONFIG_EFI_PARTITION is not set |
1443 | 1671 | # CONFIG_SYSV68_PARTITION is not set | |
1444 | # | ||
1445 | # Native Language Support | ||
1446 | # | ||
1447 | CONFIG_NLS=y | 1672 | CONFIG_NLS=y |
1448 | CONFIG_NLS_DEFAULT="cp437" | 1673 | CONFIG_NLS_DEFAULT="cp437" |
1449 | CONFIG_NLS_CODEPAGE_437=y | 1674 | CONFIG_NLS_CODEPAGE_437=y |
@@ -1484,35 +1709,71 @@ CONFIG_NLS_ISO8859_1=y | |||
1484 | # CONFIG_NLS_KOI8_R is not set | 1709 | # CONFIG_NLS_KOI8_R is not set |
1485 | # CONFIG_NLS_KOI8_U is not set | 1710 | # CONFIG_NLS_KOI8_U is not set |
1486 | CONFIG_NLS_UTF8=y | 1711 | CONFIG_NLS_UTF8=y |
1487 | 1712 | # CONFIG_DLM is not set | |
1488 | # | ||
1489 | # Profiling support | ||
1490 | # | ||
1491 | CONFIG_PROFILING=y | ||
1492 | CONFIG_OPROFILE=m | ||
1493 | 1713 | ||
1494 | # | 1714 | # |
1495 | # Kernel hacking | 1715 | # Kernel hacking |
1496 | # | 1716 | # |
1497 | # CONFIG_PRINTK_TIME is not set | 1717 | # CONFIG_PRINTK_TIME is not set |
1498 | CONFIG_DEBUG_KERNEL=y | 1718 | CONFIG_ENABLE_WARN_DEPRECATED=y |
1719 | CONFIG_ENABLE_MUST_CHECK=y | ||
1720 | CONFIG_FRAME_WARN=1024 | ||
1499 | CONFIG_MAGIC_SYSRQ=y | 1721 | CONFIG_MAGIC_SYSRQ=y |
1500 | CONFIG_LOG_BUF_SHIFT=14 | 1722 | # CONFIG_UNUSED_SYMBOLS is not set |
1723 | # CONFIG_DEBUG_FS is not set | ||
1724 | # CONFIG_HEADERS_CHECK is not set | ||
1725 | CONFIG_DEBUG_KERNEL=y | ||
1726 | # CONFIG_DEBUG_SHIRQ is not set | ||
1501 | CONFIG_DETECT_SOFTLOCKUP=y | 1727 | CONFIG_DETECT_SOFTLOCKUP=y |
1728 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | ||
1729 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | ||
1730 | CONFIG_SCHED_DEBUG=y | ||
1502 | # CONFIG_SCHEDSTATS is not set | 1731 | # CONFIG_SCHEDSTATS is not set |
1503 | # CONFIG_DEBUG_SLAB is not set | 1732 | # CONFIG_TIMER_STATS is not set |
1733 | # CONFIG_DEBUG_OBJECTS is not set | ||
1734 | # CONFIG_SLUB_DEBUG_ON is not set | ||
1735 | # CONFIG_SLUB_STATS is not set | ||
1504 | # CONFIG_DEBUG_PREEMPT is not set | 1736 | # CONFIG_DEBUG_PREEMPT is not set |
1737 | # CONFIG_DEBUG_RT_MUTEXES is not set | ||
1738 | # CONFIG_RT_MUTEX_TESTER is not set | ||
1505 | # CONFIG_DEBUG_SPINLOCK is not set | 1739 | # CONFIG_DEBUG_SPINLOCK is not set |
1740 | # CONFIG_DEBUG_MUTEXES is not set | ||
1741 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
1742 | # CONFIG_PROVE_LOCKING is not set | ||
1743 | # CONFIG_LOCK_STAT is not set | ||
1506 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1744 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1745 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | ||
1507 | # CONFIG_DEBUG_KOBJECT is not set | 1746 | # CONFIG_DEBUG_KOBJECT is not set |
1508 | CONFIG_DEBUG_BUGVERBOSE=y | 1747 | CONFIG_DEBUG_BUGVERBOSE=y |
1509 | # CONFIG_DEBUG_INFO is not set | 1748 | # CONFIG_DEBUG_INFO is not set |
1510 | # CONFIG_DEBUG_FS is not set | ||
1511 | # CONFIG_DEBUG_VM is not set | 1749 | # CONFIG_DEBUG_VM is not set |
1750 | # CONFIG_DEBUG_WRITECOUNT is not set | ||
1751 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
1752 | # CONFIG_DEBUG_LIST is not set | ||
1753 | # CONFIG_DEBUG_SG is not set | ||
1512 | CONFIG_FRAME_POINTER=y | 1754 | CONFIG_FRAME_POINTER=y |
1755 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
1513 | # CONFIG_RCU_TORTURE_TEST is not set | 1756 | # CONFIG_RCU_TORTURE_TEST is not set |
1757 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
1758 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
1759 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
1760 | # CONFIG_FAULT_INJECTION is not set | ||
1761 | # CONFIG_LATENCYTOP is not set | ||
1762 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
1763 | CONFIG_HAVE_FTRACE=y | ||
1764 | CONFIG_HAVE_DYNAMIC_FTRACE=y | ||
1765 | # CONFIG_FTRACE is not set | ||
1766 | # CONFIG_IRQSOFF_TRACER is not set | ||
1767 | # CONFIG_PREEMPT_TRACER is not set | ||
1768 | # CONFIG_SCHED_TRACER is not set | ||
1769 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
1770 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
1771 | # CONFIG_SAMPLES is not set | ||
1772 | CONFIG_HAVE_ARCH_KGDB=y | ||
1773 | # CONFIG_KGDB is not set | ||
1514 | # CONFIG_DEBUG_USER is not set | 1774 | # CONFIG_DEBUG_USER is not set |
1515 | CONFIG_DEBUG_ERRORS=y | 1775 | CONFIG_DEBUG_ERRORS=y |
1776 | # CONFIG_DEBUG_STACK_USAGE is not set | ||
1516 | CONFIG_DEBUG_LL=y | 1777 | CONFIG_DEBUG_LL=y |
1517 | # CONFIG_DEBUG_ICEDCC is not set | 1778 | # CONFIG_DEBUG_ICEDCC is not set |
1518 | 1779 | ||
@@ -1521,46 +1782,113 @@ CONFIG_DEBUG_LL=y | |||
1521 | # | 1782 | # |
1522 | # CONFIG_KEYS is not set | 1783 | # CONFIG_KEYS is not set |
1523 | # CONFIG_SECURITY is not set | 1784 | # CONFIG_SECURITY is not set |
1785 | # CONFIG_SECURITYFS is not set | ||
1786 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
1787 | CONFIG_CRYPTO=y | ||
1524 | 1788 | ||
1525 | # | 1789 | # |
1526 | # Cryptographic options | 1790 | # Crypto core or helper |
1527 | # | 1791 | # |
1528 | CONFIG_CRYPTO=y | 1792 | # CONFIG_CRYPTO_FIPS is not set |
1529 | CONFIG_CRYPTO_HMAC=y | 1793 | CONFIG_CRYPTO_ALGAPI=y |
1794 | CONFIG_CRYPTO_AEAD=y | ||
1795 | CONFIG_CRYPTO_BLKCIPHER=y | ||
1796 | CONFIG_CRYPTO_HASH=y | ||
1797 | CONFIG_CRYPTO_RNG=y | ||
1798 | CONFIG_CRYPTO_MANAGER=y | ||
1799 | # CONFIG_CRYPTO_GF128MUL is not set | ||
1530 | CONFIG_CRYPTO_NULL=m | 1800 | CONFIG_CRYPTO_NULL=m |
1801 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1802 | CONFIG_CRYPTO_AUTHENC=m | ||
1803 | CONFIG_CRYPTO_TEST=m | ||
1804 | |||
1805 | # | ||
1806 | # Authenticated Encryption with Associated Data | ||
1807 | # | ||
1808 | # CONFIG_CRYPTO_CCM is not set | ||
1809 | # CONFIG_CRYPTO_GCM is not set | ||
1810 | # CONFIG_CRYPTO_SEQIV is not set | ||
1811 | |||
1812 | # | ||
1813 | # Block modes | ||
1814 | # | ||
1815 | CONFIG_CRYPTO_CBC=m | ||
1816 | # CONFIG_CRYPTO_CTR is not set | ||
1817 | # CONFIG_CRYPTO_CTS is not set | ||
1818 | CONFIG_CRYPTO_ECB=m | ||
1819 | # CONFIG_CRYPTO_LRW is not set | ||
1820 | # CONFIG_CRYPTO_PCBC is not set | ||
1821 | # CONFIG_CRYPTO_XTS is not set | ||
1822 | |||
1823 | # | ||
1824 | # Hash modes | ||
1825 | # | ||
1826 | CONFIG_CRYPTO_HMAC=y | ||
1827 | # CONFIG_CRYPTO_XCBC is not set | ||
1828 | |||
1829 | # | ||
1830 | # Digest | ||
1831 | # | ||
1832 | CONFIG_CRYPTO_CRC32C=m | ||
1531 | CONFIG_CRYPTO_MD4=m | 1833 | CONFIG_CRYPTO_MD4=m |
1532 | CONFIG_CRYPTO_MD5=m | 1834 | CONFIG_CRYPTO_MD5=m |
1835 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
1836 | # CONFIG_CRYPTO_RMD128 is not set | ||
1837 | # CONFIG_CRYPTO_RMD160 is not set | ||
1838 | # CONFIG_CRYPTO_RMD256 is not set | ||
1839 | # CONFIG_CRYPTO_RMD320 is not set | ||
1533 | CONFIG_CRYPTO_SHA1=m | 1840 | CONFIG_CRYPTO_SHA1=m |
1534 | CONFIG_CRYPTO_SHA256=m | 1841 | CONFIG_CRYPTO_SHA256=m |
1535 | CONFIG_CRYPTO_SHA512=m | 1842 | CONFIG_CRYPTO_SHA512=m |
1536 | CONFIG_CRYPTO_WP512=m | ||
1537 | # CONFIG_CRYPTO_TGR192 is not set | 1843 | # CONFIG_CRYPTO_TGR192 is not set |
1538 | CONFIG_CRYPTO_DES=m | 1844 | CONFIG_CRYPTO_WP512=m |
1539 | CONFIG_CRYPTO_BLOWFISH=m | 1845 | |
1540 | CONFIG_CRYPTO_TWOFISH=m | 1846 | # |
1541 | CONFIG_CRYPTO_SERPENT=m | 1847 | # Ciphers |
1848 | # | ||
1542 | CONFIG_CRYPTO_AES=m | 1849 | CONFIG_CRYPTO_AES=m |
1850 | CONFIG_CRYPTO_ANUBIS=m | ||
1851 | CONFIG_CRYPTO_ARC4=m | ||
1852 | CONFIG_CRYPTO_BLOWFISH=m | ||
1853 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1543 | CONFIG_CRYPTO_CAST5=m | 1854 | CONFIG_CRYPTO_CAST5=m |
1544 | CONFIG_CRYPTO_CAST6=m | 1855 | CONFIG_CRYPTO_CAST6=m |
1545 | CONFIG_CRYPTO_TEA=m | 1856 | CONFIG_CRYPTO_DES=m |
1546 | CONFIG_CRYPTO_ARC4=m | 1857 | # CONFIG_CRYPTO_FCRYPT is not set |
1547 | CONFIG_CRYPTO_KHAZAD=m | 1858 | CONFIG_CRYPTO_KHAZAD=m |
1548 | CONFIG_CRYPTO_ANUBIS=m | 1859 | # CONFIG_CRYPTO_SALSA20 is not set |
1860 | # CONFIG_CRYPTO_SEED is not set | ||
1861 | CONFIG_CRYPTO_SERPENT=m | ||
1862 | CONFIG_CRYPTO_TEA=m | ||
1863 | CONFIG_CRYPTO_TWOFISH=m | ||
1864 | CONFIG_CRYPTO_TWOFISH_COMMON=m | ||
1865 | |||
1866 | # | ||
1867 | # Compression | ||
1868 | # | ||
1549 | CONFIG_CRYPTO_DEFLATE=m | 1869 | CONFIG_CRYPTO_DEFLATE=m |
1550 | CONFIG_CRYPTO_MICHAEL_MIC=m | 1870 | # CONFIG_CRYPTO_LZO is not set |
1551 | CONFIG_CRYPTO_CRC32C=m | ||
1552 | CONFIG_CRYPTO_TEST=m | ||
1553 | 1871 | ||
1554 | # | 1872 | # |
1555 | # Hardware crypto devices | 1873 | # Random Number Generation |
1556 | # | 1874 | # |
1875 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
1876 | CONFIG_CRYPTO_HW=y | ||
1557 | 1877 | ||
1558 | # | 1878 | # |
1559 | # Library routines | 1879 | # Library routines |
1560 | # | 1880 | # |
1881 | CONFIG_BITREVERSE=y | ||
1561 | CONFIG_CRC_CCITT=y | 1882 | CONFIG_CRC_CCITT=y |
1562 | # CONFIG_CRC16 is not set | 1883 | # CONFIG_CRC16 is not set |
1884 | # CONFIG_CRC_T10DIF is not set | ||
1885 | # CONFIG_CRC_ITU_T is not set | ||
1563 | CONFIG_CRC32=y | 1886 | CONFIG_CRC32=y |
1887 | # CONFIG_CRC7 is not set | ||
1564 | CONFIG_LIBCRC32C=m | 1888 | CONFIG_LIBCRC32C=m |
1565 | CONFIG_ZLIB_INFLATE=y | 1889 | CONFIG_ZLIB_INFLATE=y |
1566 | CONFIG_ZLIB_DEFLATE=y | 1890 | CONFIG_ZLIB_DEFLATE=y |
1891 | CONFIG_PLIST=y | ||
1892 | CONFIG_HAS_IOMEM=y | ||
1893 | CONFIG_HAS_IOPORT=y | ||
1894 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/arm/configs/msm_defconfig b/arch/arm/configs/msm_defconfig index ae4c5e62086a..3b4ecf2a90dd 100644 --- a/arch/arm/configs/msm_defconfig +++ b/arch/arm/configs/msm_defconfig | |||
@@ -133,7 +133,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
133 | # CONFIG_ARCH_LH7A40X is not set | 133 | # CONFIG_ARCH_LH7A40X is not set |
134 | # CONFIG_ARCH_DAVINCI is not set | 134 | # CONFIG_ARCH_DAVINCI is not set |
135 | # CONFIG_ARCH_OMAP is not set | 135 | # CONFIG_ARCH_OMAP is not set |
136 | CONFIG_ARCH_MSM7X00A=y | 136 | CONFIG_ARCH_MSM=y |
137 | 137 | ||
138 | # | 138 | # |
139 | # Boot options | 139 | # Boot options |
diff --git a/arch/arm/configs/spitz_defconfig b/arch/arm/configs/spitz_defconfig index 7d59fb1f1cea..4df5b4db2aa0 100644 --- a/arch/arm/configs/spitz_defconfig +++ b/arch/arm/configs/spitz_defconfig | |||
@@ -1,71 +1,111 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.15-rc2 | 3 | # Linux kernel version: 2.6.27 |
4 | # Mon Nov 28 10:26:52 2005 | 4 | # Mon Oct 20 10:25:37 2008 |
5 | # | 5 | # |
6 | CONFIG_ARM=y | 6 | CONFIG_ARM=y |
7 | CONFIG_SYS_SUPPORTS_APM_EMULATION=y | ||
8 | CONFIG_GENERIC_GPIO=y | ||
9 | CONFIG_GENERIC_TIME=y | ||
10 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
7 | CONFIG_MMU=y | 11 | CONFIG_MMU=y |
8 | CONFIG_UID16=y | 12 | # CONFIG_NO_IOPORT is not set |
13 | CONFIG_GENERIC_HARDIRQS=y | ||
14 | CONFIG_STACKTRACE_SUPPORT=y | ||
15 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
16 | CONFIG_LOCKDEP_SUPPORT=y | ||
17 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
18 | CONFIG_HARDIRQS_SW_RESEND=y | ||
19 | CONFIG_GENERIC_IRQ_PROBE=y | ||
9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 20 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
21 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
22 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
23 | CONFIG_GENERIC_HWEIGHT=y | ||
10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 24 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
25 | CONFIG_ARCH_MTD_XIP=y | ||
26 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
27 | CONFIG_VECTORS_BASE=0xffff0000 | ||
28 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
11 | 29 | ||
12 | # | 30 | # |
13 | # Code maturity level options | 31 | # General setup |
14 | # | 32 | # |
15 | CONFIG_EXPERIMENTAL=y | 33 | CONFIG_EXPERIMENTAL=y |
16 | CONFIG_CLEAN_COMPILE=y | ||
17 | CONFIG_BROKEN_ON_SMP=y | 34 | CONFIG_BROKEN_ON_SMP=y |
18 | CONFIG_LOCK_KERNEL=y | 35 | CONFIG_LOCK_KERNEL=y |
19 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 36 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
20 | |||
21 | # | ||
22 | # General setup | ||
23 | # | ||
24 | CONFIG_LOCALVERSION="" | 37 | CONFIG_LOCALVERSION="" |
25 | CONFIG_LOCALVERSION_AUTO=y | 38 | CONFIG_LOCALVERSION_AUTO=y |
26 | CONFIG_SWAP=y | 39 | CONFIG_SWAP=y |
27 | CONFIG_SYSVIPC=y | 40 | CONFIG_SYSVIPC=y |
41 | CONFIG_SYSVIPC_SYSCTL=y | ||
28 | # CONFIG_POSIX_MQUEUE is not set | 42 | # CONFIG_POSIX_MQUEUE is not set |
29 | CONFIG_BSD_PROCESS_ACCT=y | 43 | CONFIG_BSD_PROCESS_ACCT=y |
30 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | 44 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set |
31 | CONFIG_SYSCTL=y | 45 | # CONFIG_TASKSTATS is not set |
32 | # CONFIG_AUDIT is not set | 46 | # CONFIG_AUDIT is not set |
33 | CONFIG_HOTPLUG=y | ||
34 | CONFIG_KOBJECT_UEVENT=y | ||
35 | # CONFIG_IKCONFIG is not set | 47 | # CONFIG_IKCONFIG is not set |
36 | CONFIG_INITRAMFS_SOURCE="" | 48 | CONFIG_LOG_BUF_SHIFT=14 |
49 | # CONFIG_CGROUPS is not set | ||
50 | # CONFIG_GROUP_SCHED is not set | ||
51 | CONFIG_SYSFS_DEPRECATED=y | ||
52 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
53 | # CONFIG_RELAY is not set | ||
54 | # CONFIG_NAMESPACES is not set | ||
55 | # CONFIG_BLK_DEV_INITRD is not set | ||
56 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
57 | CONFIG_SYSCTL=y | ||
37 | CONFIG_EMBEDDED=y | 58 | CONFIG_EMBEDDED=y |
59 | CONFIG_UID16=y | ||
60 | CONFIG_SYSCTL_SYSCALL=y | ||
38 | CONFIG_KALLSYMS=y | 61 | CONFIG_KALLSYMS=y |
39 | # CONFIG_KALLSYMS_ALL is not set | 62 | # CONFIG_KALLSYMS_ALL is not set |
40 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 63 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
64 | CONFIG_HOTPLUG=y | ||
41 | CONFIG_PRINTK=y | 65 | CONFIG_PRINTK=y |
42 | CONFIG_BUG=y | 66 | CONFIG_BUG=y |
67 | CONFIG_ELF_CORE=y | ||
68 | CONFIG_COMPAT_BRK=y | ||
43 | CONFIG_BASE_FULL=y | 69 | CONFIG_BASE_FULL=y |
44 | CONFIG_FUTEX=y | 70 | CONFIG_FUTEX=y |
71 | CONFIG_ANON_INODES=y | ||
45 | CONFIG_EPOLL=y | 72 | CONFIG_EPOLL=y |
46 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 73 | CONFIG_SIGNALFD=y |
74 | CONFIG_TIMERFD=y | ||
75 | CONFIG_EVENTFD=y | ||
47 | CONFIG_SHMEM=y | 76 | CONFIG_SHMEM=y |
48 | CONFIG_CC_ALIGN_FUNCTIONS=0 | 77 | CONFIG_AIO=y |
49 | CONFIG_CC_ALIGN_LABELS=0 | 78 | CONFIG_VM_EVENT_COUNTERS=y |
50 | CONFIG_CC_ALIGN_LOOPS=0 | 79 | CONFIG_SLUB_DEBUG=y |
51 | CONFIG_CC_ALIGN_JUMPS=0 | 80 | # CONFIG_SLAB is not set |
81 | CONFIG_SLUB=y | ||
82 | # CONFIG_SLOB is not set | ||
83 | CONFIG_PROFILING=y | ||
84 | # CONFIG_MARKERS is not set | ||
85 | CONFIG_OPROFILE=m | ||
86 | CONFIG_HAVE_OPROFILE=y | ||
87 | # CONFIG_KPROBES is not set | ||
88 | CONFIG_HAVE_KPROBES=y | ||
89 | CONFIG_HAVE_KRETPROBES=y | ||
90 | CONFIG_HAVE_CLK=y | ||
91 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
92 | CONFIG_SLABINFO=y | ||
93 | CONFIG_RT_MUTEXES=y | ||
52 | # CONFIG_TINY_SHMEM is not set | 94 | # CONFIG_TINY_SHMEM is not set |
53 | CONFIG_BASE_SMALL=0 | 95 | CONFIG_BASE_SMALL=0 |
54 | |||
55 | # | ||
56 | # Loadable module support | ||
57 | # | ||
58 | CONFIG_MODULES=y | 96 | CONFIG_MODULES=y |
97 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
59 | CONFIG_MODULE_UNLOAD=y | 98 | CONFIG_MODULE_UNLOAD=y |
60 | CONFIG_MODULE_FORCE_UNLOAD=y | 99 | CONFIG_MODULE_FORCE_UNLOAD=y |
61 | CONFIG_OBSOLETE_MODPARM=y | ||
62 | # CONFIG_MODVERSIONS is not set | 100 | # CONFIG_MODVERSIONS is not set |
63 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 101 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
64 | CONFIG_KMOD=y | 102 | CONFIG_KMOD=y |
65 | 103 | CONFIG_BLOCK=y | |
66 | # | 104 | # CONFIG_LBD is not set |
67 | # Block layer | 105 | # CONFIG_BLK_DEV_IO_TRACE is not set |
68 | # | 106 | # CONFIG_LSF is not set |
107 | # CONFIG_BLK_DEV_BSG is not set | ||
108 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
69 | 109 | ||
70 | # | 110 | # |
71 | # IO Schedulers | 111 | # IO Schedulers |
@@ -79,49 +119,95 @@ CONFIG_DEFAULT_AS=y | |||
79 | # CONFIG_DEFAULT_CFQ is not set | 119 | # CONFIG_DEFAULT_CFQ is not set |
80 | # CONFIG_DEFAULT_NOOP is not set | 120 | # CONFIG_DEFAULT_NOOP is not set |
81 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 121 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
122 | CONFIG_CLASSIC_RCU=y | ||
82 | 123 | ||
83 | # | 124 | # |
84 | # System Type | 125 | # System Type |
85 | # | 126 | # |
127 | # CONFIG_ARCH_AAEC2000 is not set | ||
128 | # CONFIG_ARCH_INTEGRATOR is not set | ||
129 | # CONFIG_ARCH_REALVIEW is not set | ||
130 | # CONFIG_ARCH_VERSATILE is not set | ||
131 | # CONFIG_ARCH_AT91 is not set | ||
86 | # CONFIG_ARCH_CLPS7500 is not set | 132 | # CONFIG_ARCH_CLPS7500 is not set |
87 | # CONFIG_ARCH_CLPS711X is not set | 133 | # CONFIG_ARCH_CLPS711X is not set |
88 | # CONFIG_ARCH_CO285 is not set | ||
89 | # CONFIG_ARCH_EBSA110 is not set | 134 | # CONFIG_ARCH_EBSA110 is not set |
135 | # CONFIG_ARCH_EP93XX is not set | ||
90 | # CONFIG_ARCH_FOOTBRIDGE is not set | 136 | # CONFIG_ARCH_FOOTBRIDGE is not set |
91 | # CONFIG_ARCH_INTEGRATOR is not set | 137 | # CONFIG_ARCH_NETX is not set |
92 | # CONFIG_ARCH_IOP3XX is not set | 138 | # CONFIG_ARCH_H720X is not set |
93 | # CONFIG_ARCH_IXP4XX is not set | 139 | # CONFIG_ARCH_IMX is not set |
140 | # CONFIG_ARCH_IOP13XX is not set | ||
141 | # CONFIG_ARCH_IOP32X is not set | ||
142 | # CONFIG_ARCH_IOP33X is not set | ||
143 | # CONFIG_ARCH_IXP23XX is not set | ||
94 | # CONFIG_ARCH_IXP2000 is not set | 144 | # CONFIG_ARCH_IXP2000 is not set |
145 | # CONFIG_ARCH_IXP4XX is not set | ||
95 | # CONFIG_ARCH_L7200 is not set | 146 | # CONFIG_ARCH_L7200 is not set |
147 | # CONFIG_ARCH_KIRKWOOD is not set | ||
148 | # CONFIG_ARCH_KS8695 is not set | ||
149 | # CONFIG_ARCH_NS9XXX is not set | ||
150 | # CONFIG_ARCH_LOKI is not set | ||
151 | # CONFIG_ARCH_MV78XX0 is not set | ||
152 | # CONFIG_ARCH_MXC is not set | ||
153 | # CONFIG_ARCH_ORION5X is not set | ||
154 | # CONFIG_ARCH_PNX4008 is not set | ||
96 | CONFIG_ARCH_PXA=y | 155 | CONFIG_ARCH_PXA=y |
97 | # CONFIG_ARCH_RPC is not set | 156 | # CONFIG_ARCH_RPC is not set |
98 | # CONFIG_ARCH_SA1100 is not set | 157 | # CONFIG_ARCH_SA1100 is not set |
99 | # CONFIG_ARCH_S3C2410 is not set | 158 | # CONFIG_ARCH_S3C2410 is not set |
100 | # CONFIG_ARCH_SHARK is not set | 159 | # CONFIG_ARCH_SHARK is not set |
101 | # CONFIG_ARCH_LH7A40X is not set | 160 | # CONFIG_ARCH_LH7A40X is not set |
161 | # CONFIG_ARCH_DAVINCI is not set | ||
102 | # CONFIG_ARCH_OMAP is not set | 162 | # CONFIG_ARCH_OMAP is not set |
103 | # CONFIG_ARCH_VERSATILE is not set | 163 | # CONFIG_ARCH_MSM7X00A is not set |
104 | # CONFIG_ARCH_REALVIEW is not set | ||
105 | # CONFIG_ARCH_IMX is not set | ||
106 | # CONFIG_ARCH_H720X is not set | ||
107 | # CONFIG_ARCH_AAEC2000 is not set | ||
108 | 164 | ||
109 | # | 165 | # |
110 | # Intel PXA2xx Implementations | 166 | # Intel PXA2xx/PXA3xx Implementations |
111 | # | 167 | # |
168 | # CONFIG_ARCH_GUMSTIX is not set | ||
112 | # CONFIG_ARCH_LUBBOCK is not set | 169 | # CONFIG_ARCH_LUBBOCK is not set |
170 | # CONFIG_MACH_LOGICPD_PXA270 is not set | ||
113 | # CONFIG_MACH_MAINSTONE is not set | 171 | # CONFIG_MACH_MAINSTONE is not set |
172 | # CONFIG_MACH_MP900C is not set | ||
114 | # CONFIG_ARCH_PXA_IDP is not set | 173 | # CONFIG_ARCH_PXA_IDP is not set |
115 | CONFIG_PXA_SHARPSL=y | 174 | CONFIG_PXA_SHARPSL=y |
116 | # CONFIG_PXA_SHARPSL_25x is not set | 175 | # CONFIG_MACH_POODLE is not set |
117 | CONFIG_PXA_SHARPSL_27x=y | 176 | # CONFIG_MACH_CORGI is not set |
177 | # CONFIG_MACH_SHEPHERD is not set | ||
178 | # CONFIG_MACH_HUSKY is not set | ||
118 | CONFIG_MACH_AKITA=y | 179 | CONFIG_MACH_AKITA=y |
119 | CONFIG_MACH_SPITZ=y | 180 | CONFIG_MACH_SPITZ=y |
120 | CONFIG_MACH_BORZOI=y | 181 | CONFIG_MACH_BORZOI=y |
182 | # CONFIG_MACH_TOSA is not set | ||
183 | # CONFIG_ARCH_VIPER is not set | ||
184 | # CONFIG_ARCH_PXA_ESERIES is not set | ||
185 | # CONFIG_TRIZEPS_PXA is not set | ||
186 | # CONFIG_MACH_EM_X270 is not set | ||
187 | # CONFIG_MACH_COLIBRI is not set | ||
188 | # CONFIG_MACH_ZYLONITE is not set | ||
189 | # CONFIG_MACH_LITTLETON is not set | ||
190 | # CONFIG_MACH_TAVOREVB is not set | ||
191 | # CONFIG_MACH_SAAR is not set | ||
192 | # CONFIG_MACH_ARMCORE is not set | ||
193 | # CONFIG_MACH_CM_X300 is not set | ||
194 | # CONFIG_MACH_MAGICIAN is not set | ||
195 | # CONFIG_MACH_MIOA701 is not set | ||
196 | # CONFIG_MACH_PCM027 is not set | ||
197 | # CONFIG_ARCH_PXA_PALM is not set | ||
198 | # CONFIG_PXA_EZX is not set | ||
121 | CONFIG_PXA27x=y | 199 | CONFIG_PXA27x=y |
122 | CONFIG_IWMMXT=y | ||
123 | CONFIG_PXA_SHARP_Cxx00=y | 200 | CONFIG_PXA_SHARP_Cxx00=y |
124 | CONFIG_PXA_SSP=y | 201 | CONFIG_PXA_SSP=y |
202 | # CONFIG_PXA_PWM is not set | ||
203 | |||
204 | # | ||
205 | # Boot options | ||
206 | # | ||
207 | |||
208 | # | ||
209 | # Power management | ||
210 | # | ||
125 | 211 | ||
126 | # | 212 | # |
127 | # Processor Type | 213 | # Processor Type |
@@ -130,25 +216,29 @@ CONFIG_CPU_32=y | |||
130 | CONFIG_CPU_XSCALE=y | 216 | CONFIG_CPU_XSCALE=y |
131 | CONFIG_CPU_32v5=y | 217 | CONFIG_CPU_32v5=y |
132 | CONFIG_CPU_ABRT_EV5T=y | 218 | CONFIG_CPU_ABRT_EV5T=y |
219 | CONFIG_CPU_PABRT_NOIFAR=y | ||
133 | CONFIG_CPU_CACHE_VIVT=y | 220 | CONFIG_CPU_CACHE_VIVT=y |
134 | CONFIG_CPU_TLB_V4WBI=y | 221 | CONFIG_CPU_TLB_V4WBI=y |
222 | CONFIG_CPU_CP15=y | ||
223 | CONFIG_CPU_CP15_MMU=y | ||
135 | 224 | ||
136 | # | 225 | # |
137 | # Processor Features | 226 | # Processor Features |
138 | # | 227 | # |
139 | CONFIG_ARM_THUMB=y | 228 | CONFIG_ARM_THUMB=y |
229 | # CONFIG_CPU_DCACHE_DISABLE is not set | ||
230 | # CONFIG_OUTER_CACHE is not set | ||
231 | CONFIG_IWMMXT=y | ||
140 | CONFIG_XSCALE_PMU=y | 232 | CONFIG_XSCALE_PMU=y |
141 | CONFIG_SHARP_PARAM=y | 233 | CONFIG_SHARP_PARAM=y |
234 | CONFIG_SHARPSL_PM=y | ||
142 | CONFIG_SHARP_SCOOP=y | 235 | CONFIG_SHARP_SCOOP=y |
143 | 236 | ||
144 | # | 237 | # |
145 | # Bus support | 238 | # Bus support |
146 | # | 239 | # |
147 | CONFIG_ISA_DMA_API=y | 240 | # CONFIG_PCI_SYSCALL is not set |
148 | 241 | # CONFIG_ARCH_SUPPORTS_MSI is not set | |
149 | # | ||
150 | # PCCARD (PCMCIA/CardBus) support | ||
151 | # | ||
152 | CONFIG_PCCARD=y | 242 | CONFIG_PCCARD=y |
153 | # CONFIG_PCMCIA_DEBUG is not set | 243 | # CONFIG_PCMCIA_DEBUG is not set |
154 | CONFIG_PCMCIA=y | 244 | CONFIG_PCMCIA=y |
@@ -163,16 +253,32 @@ CONFIG_PCMCIA_PXA2XX=y | |||
163 | # | 253 | # |
164 | # Kernel Features | 254 | # Kernel Features |
165 | # | 255 | # |
256 | CONFIG_TICK_ONESHOT=y | ||
257 | # CONFIG_NO_HZ is not set | ||
258 | # CONFIG_HIGH_RES_TIMERS is not set | ||
259 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
260 | CONFIG_VMSPLIT_3G=y | ||
261 | # CONFIG_VMSPLIT_2G is not set | ||
262 | # CONFIG_VMSPLIT_1G is not set | ||
263 | CONFIG_PAGE_OFFSET=0xC0000000 | ||
166 | CONFIG_PREEMPT=y | 264 | CONFIG_PREEMPT=y |
167 | # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set | 265 | CONFIG_HZ=100 |
266 | # CONFIG_AEABI is not set | ||
267 | CONFIG_ARCH_FLATMEM_HAS_HOLES=y | ||
268 | # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set | ||
269 | # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set | ||
168 | CONFIG_SELECT_MEMORY_MODEL=y | 270 | CONFIG_SELECT_MEMORY_MODEL=y |
169 | CONFIG_FLATMEM_MANUAL=y | 271 | CONFIG_FLATMEM_MANUAL=y |
170 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 272 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
171 | # CONFIG_SPARSEMEM_MANUAL is not set | 273 | # CONFIG_SPARSEMEM_MANUAL is not set |
172 | CONFIG_FLATMEM=y | 274 | CONFIG_FLATMEM=y |
173 | CONFIG_FLAT_NODE_MEM_MAP=y | 275 | CONFIG_FLAT_NODE_MEM_MAP=y |
174 | # CONFIG_SPARSEMEM_STATIC is not set | 276 | CONFIG_PAGEFLAGS_EXTENDED=y |
175 | CONFIG_SPLIT_PTLOCK_CPUS=4096 | 277 | CONFIG_SPLIT_PTLOCK_CPUS=4096 |
278 | # CONFIG_RESOURCES_64BIT is not set | ||
279 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
280 | CONFIG_ZONE_DMA_FLAG=0 | ||
281 | CONFIG_VIRT_TO_BUS=y | ||
176 | CONFIG_ALIGNMENT_TRAP=y | 282 | CONFIG_ALIGNMENT_TRAP=y |
177 | 283 | ||
178 | # | 284 | # |
@@ -182,6 +288,13 @@ CONFIG_ZBOOT_ROM_TEXT=0x0 | |||
182 | CONFIG_ZBOOT_ROM_BSS=0x0 | 288 | CONFIG_ZBOOT_ROM_BSS=0x0 |
183 | CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 debug" | 289 | CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 debug" |
184 | # CONFIG_XIP_KERNEL is not set | 290 | # CONFIG_XIP_KERNEL is not set |
291 | # CONFIG_KEXEC is not set | ||
292 | |||
293 | # | ||
294 | # CPU Power Management | ||
295 | # | ||
296 | # CONFIG_CPU_FREQ is not set | ||
297 | # CONFIG_CPU_IDLE is not set | ||
185 | 298 | ||
186 | # | 299 | # |
187 | # Floating point emulation | 300 | # Floating point emulation |
@@ -198,6 +311,7 @@ CONFIG_FPE_NWFPE=y | |||
198 | # Userspace binary formats | 311 | # Userspace binary formats |
199 | # | 312 | # |
200 | CONFIG_BINFMT_ELF=y | 313 | CONFIG_BINFMT_ELF=y |
314 | CONFIG_HAVE_AOUT=y | ||
201 | CONFIG_BINFMT_AOUT=m | 315 | CONFIG_BINFMT_AOUT=m |
202 | CONFIG_BINFMT_MISC=m | 316 | CONFIG_BINFMT_MISC=m |
203 | # CONFIG_ARTHUR is not set | 317 | # CONFIG_ARTHUR is not set |
@@ -206,12 +320,12 @@ CONFIG_BINFMT_MISC=m | |||
206 | # Power management options | 320 | # Power management options |
207 | # | 321 | # |
208 | CONFIG_PM=y | 322 | CONFIG_PM=y |
209 | # CONFIG_PM_LEGACY is not set | 323 | # CONFIG_PM_DEBUG is not set |
210 | CONFIG_APM=y | 324 | CONFIG_PM_SLEEP=y |
211 | 325 | CONFIG_SUSPEND=y | |
212 | # | 326 | CONFIG_SUSPEND_FREEZER=y |
213 | # Networking | 327 | CONFIG_APM_EMULATION=y |
214 | # | 328 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
215 | CONFIG_NET=y | 329 | CONFIG_NET=y |
216 | 330 | ||
217 | # | 331 | # |
@@ -222,6 +336,10 @@ CONFIG_PACKET_MMAP=y | |||
222 | CONFIG_UNIX=y | 336 | CONFIG_UNIX=y |
223 | CONFIG_XFRM=y | 337 | CONFIG_XFRM=y |
224 | # CONFIG_XFRM_USER is not set | 338 | # CONFIG_XFRM_USER is not set |
339 | # CONFIG_XFRM_SUB_POLICY is not set | ||
340 | # CONFIG_XFRM_MIGRATE is not set | ||
341 | # CONFIG_XFRM_STATISTICS is not set | ||
342 | CONFIG_XFRM_IPCOMP=m | ||
225 | # CONFIG_NET_KEY is not set | 343 | # CONFIG_NET_KEY is not set |
226 | CONFIG_INET=y | 344 | CONFIG_INET=y |
227 | # CONFIG_IP_MULTICAST is not set | 345 | # CONFIG_IP_MULTICAST is not set |
@@ -235,140 +353,131 @@ CONFIG_SYN_COOKIES=y | |||
235 | # CONFIG_INET_AH is not set | 353 | # CONFIG_INET_AH is not set |
236 | # CONFIG_INET_ESP is not set | 354 | # CONFIG_INET_ESP is not set |
237 | # CONFIG_INET_IPCOMP is not set | 355 | # CONFIG_INET_IPCOMP is not set |
238 | # CONFIG_INET_TUNNEL is not set | 356 | # CONFIG_INET_XFRM_TUNNEL is not set |
357 | CONFIG_INET_TUNNEL=m | ||
358 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
359 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
360 | CONFIG_INET_XFRM_MODE_BEET=y | ||
361 | # CONFIG_INET_LRO is not set | ||
239 | CONFIG_INET_DIAG=y | 362 | CONFIG_INET_DIAG=y |
240 | CONFIG_INET_TCP_DIAG=y | 363 | CONFIG_INET_TCP_DIAG=y |
241 | # CONFIG_TCP_CONG_ADVANCED is not set | 364 | # CONFIG_TCP_CONG_ADVANCED is not set |
242 | CONFIG_TCP_CONG_BIC=y | 365 | CONFIG_TCP_CONG_CUBIC=y |
243 | 366 | CONFIG_DEFAULT_TCP_CONG="cubic" | |
244 | # | 367 | # CONFIG_TCP_MD5SIG is not set |
245 | # IP: Virtual Server Configuration | ||
246 | # | ||
247 | # CONFIG_IP_VS is not set | ||
248 | CONFIG_IPV6=m | 368 | CONFIG_IPV6=m |
249 | # CONFIG_IPV6_PRIVACY is not set | 369 | # CONFIG_IPV6_PRIVACY is not set |
370 | # CONFIG_IPV6_ROUTER_PREF is not set | ||
371 | # CONFIG_IPV6_OPTIMISTIC_DAD is not set | ||
250 | CONFIG_INET6_AH=m | 372 | CONFIG_INET6_AH=m |
251 | CONFIG_INET6_ESP=m | 373 | CONFIG_INET6_ESP=m |
252 | CONFIG_INET6_IPCOMP=m | 374 | CONFIG_INET6_IPCOMP=m |
375 | # CONFIG_IPV6_MIP6 is not set | ||
376 | CONFIG_INET6_XFRM_TUNNEL=m | ||
253 | CONFIG_INET6_TUNNEL=m | 377 | CONFIG_INET6_TUNNEL=m |
378 | CONFIG_INET6_XFRM_MODE_TRANSPORT=m | ||
379 | CONFIG_INET6_XFRM_MODE_TUNNEL=m | ||
380 | CONFIG_INET6_XFRM_MODE_BEET=m | ||
381 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | ||
382 | CONFIG_IPV6_SIT=m | ||
383 | CONFIG_IPV6_NDISC_NODETYPE=y | ||
254 | CONFIG_IPV6_TUNNEL=m | 384 | CONFIG_IPV6_TUNNEL=m |
385 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | ||
386 | # CONFIG_IPV6_MROUTE is not set | ||
387 | # CONFIG_NETWORK_SECMARK is not set | ||
255 | CONFIG_NETFILTER=y | 388 | CONFIG_NETFILTER=y |
256 | # CONFIG_NETFILTER_DEBUG is not set | 389 | # CONFIG_NETFILTER_DEBUG is not set |
390 | CONFIG_NETFILTER_ADVANCED=y | ||
257 | 391 | ||
258 | # | 392 | # |
259 | # Core Netfilter Configuration | 393 | # Core Netfilter Configuration |
260 | # | 394 | # |
261 | # CONFIG_NETFILTER_NETLINK is not set | 395 | # CONFIG_NETFILTER_NETLINK_QUEUE is not set |
396 | # CONFIG_NETFILTER_NETLINK_LOG is not set | ||
397 | # CONFIG_NF_CONNTRACK is not set | ||
398 | CONFIG_NETFILTER_XTABLES=m | ||
399 | # CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set | ||
400 | # CONFIG_NETFILTER_XT_TARGET_DSCP is not set | ||
401 | # CONFIG_NETFILTER_XT_TARGET_MARK is not set | ||
402 | # CONFIG_NETFILTER_XT_TARGET_NFLOG is not set | ||
403 | # CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set | ||
404 | # CONFIG_NETFILTER_XT_TARGET_RATEEST is not set | ||
405 | # CONFIG_NETFILTER_XT_TARGET_TRACE is not set | ||
406 | # CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set | ||
407 | # CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set | ||
408 | # CONFIG_NETFILTER_XT_MATCH_COMMENT is not set | ||
409 | # CONFIG_NETFILTER_XT_MATCH_DCCP is not set | ||
410 | # CONFIG_NETFILTER_XT_MATCH_DSCP is not set | ||
411 | # CONFIG_NETFILTER_XT_MATCH_ESP is not set | ||
412 | # CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set | ||
413 | # CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set | ||
414 | # CONFIG_NETFILTER_XT_MATCH_LENGTH is not set | ||
415 | # CONFIG_NETFILTER_XT_MATCH_LIMIT is not set | ||
416 | # CONFIG_NETFILTER_XT_MATCH_MAC is not set | ||
417 | # CONFIG_NETFILTER_XT_MATCH_MARK is not set | ||
418 | # CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set | ||
419 | # CONFIG_NETFILTER_XT_MATCH_OWNER is not set | ||
420 | # CONFIG_NETFILTER_XT_MATCH_POLICY is not set | ||
421 | # CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set | ||
422 | # CONFIG_NETFILTER_XT_MATCH_QUOTA is not set | ||
423 | # CONFIG_NETFILTER_XT_MATCH_RATEEST is not set | ||
424 | # CONFIG_NETFILTER_XT_MATCH_REALM is not set | ||
425 | # CONFIG_NETFILTER_XT_MATCH_RECENT is not set | ||
426 | # CONFIG_NETFILTER_XT_MATCH_SCTP is not set | ||
427 | # CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set | ||
428 | # CONFIG_NETFILTER_XT_MATCH_STRING is not set | ||
429 | # CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set | ||
430 | # CONFIG_NETFILTER_XT_MATCH_TIME is not set | ||
431 | # CONFIG_NETFILTER_XT_MATCH_U32 is not set | ||
432 | # CONFIG_IP_VS is not set | ||
262 | 433 | ||
263 | # | 434 | # |
264 | # IP: Netfilter Configuration | 435 | # IP: Netfilter Configuration |
265 | # | 436 | # |
266 | CONFIG_IP_NF_CONNTRACK=m | 437 | # CONFIG_NF_DEFRAG_IPV4 is not set |
267 | # CONFIG_IP_NF_CT_ACCT is not set | ||
268 | # CONFIG_IP_NF_CONNTRACK_MARK is not set | ||
269 | # CONFIG_IP_NF_CONNTRACK_EVENTS is not set | ||
270 | CONFIG_IP_NF_CT_PROTO_SCTP=m | ||
271 | CONFIG_IP_NF_FTP=m | ||
272 | CONFIG_IP_NF_IRC=m | ||
273 | # CONFIG_IP_NF_NETBIOS_NS is not set | ||
274 | CONFIG_IP_NF_TFTP=m | ||
275 | CONFIG_IP_NF_AMANDA=m | ||
276 | # CONFIG_IP_NF_PPTP is not set | ||
277 | CONFIG_IP_NF_QUEUE=m | 438 | CONFIG_IP_NF_QUEUE=m |
278 | CONFIG_IP_NF_IPTABLES=m | 439 | CONFIG_IP_NF_IPTABLES=m |
279 | CONFIG_IP_NF_MATCH_LIMIT=m | 440 | CONFIG_IP_NF_MATCH_ADDRTYPE=m |
280 | CONFIG_IP_NF_MATCH_IPRANGE=m | 441 | # CONFIG_IP_NF_MATCH_AH is not set |
281 | CONFIG_IP_NF_MATCH_MAC=m | ||
282 | CONFIG_IP_NF_MATCH_PKTTYPE=m | ||
283 | CONFIG_IP_NF_MATCH_MARK=m | ||
284 | CONFIG_IP_NF_MATCH_MULTIPORT=m | ||
285 | CONFIG_IP_NF_MATCH_TOS=m | ||
286 | CONFIG_IP_NF_MATCH_RECENT=m | ||
287 | CONFIG_IP_NF_MATCH_ECN=m | 442 | CONFIG_IP_NF_MATCH_ECN=m |
288 | CONFIG_IP_NF_MATCH_DSCP=m | ||
289 | CONFIG_IP_NF_MATCH_AH_ESP=m | ||
290 | CONFIG_IP_NF_MATCH_LENGTH=m | ||
291 | CONFIG_IP_NF_MATCH_TTL=m | 443 | CONFIG_IP_NF_MATCH_TTL=m |
292 | CONFIG_IP_NF_MATCH_TCPMSS=m | ||
293 | CONFIG_IP_NF_MATCH_HELPER=m | ||
294 | CONFIG_IP_NF_MATCH_STATE=m | ||
295 | CONFIG_IP_NF_MATCH_CONNTRACK=m | ||
296 | CONFIG_IP_NF_MATCH_OWNER=m | ||
297 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | ||
298 | CONFIG_IP_NF_MATCH_REALM=m | ||
299 | CONFIG_IP_NF_MATCH_SCTP=m | ||
300 | # CONFIG_IP_NF_MATCH_DCCP is not set | ||
301 | CONFIG_IP_NF_MATCH_COMMENT=m | ||
302 | CONFIG_IP_NF_MATCH_HASHLIMIT=m | ||
303 | # CONFIG_IP_NF_MATCH_STRING is not set | ||
304 | CONFIG_IP_NF_FILTER=m | 444 | CONFIG_IP_NF_FILTER=m |
305 | # CONFIG_IP_NF_TARGET_REJECT is not set | 445 | # CONFIG_IP_NF_TARGET_REJECT is not set |
306 | CONFIG_IP_NF_TARGET_LOG=m | 446 | CONFIG_IP_NF_TARGET_LOG=m |
307 | CONFIG_IP_NF_TARGET_ULOG=m | 447 | CONFIG_IP_NF_TARGET_ULOG=m |
308 | CONFIG_IP_NF_TARGET_TCPMSS=m | ||
309 | # CONFIG_IP_NF_TARGET_NFQUEUE is not set | ||
310 | CONFIG_IP_NF_NAT=m | ||
311 | CONFIG_IP_NF_NAT_NEEDED=y | ||
312 | # CONFIG_IP_NF_TARGET_MASQUERADE is not set | ||
313 | # CONFIG_IP_NF_TARGET_REDIRECT is not set | ||
314 | # CONFIG_IP_NF_TARGET_NETMAP is not set | ||
315 | # CONFIG_IP_NF_TARGET_SAME is not set | ||
316 | # CONFIG_IP_NF_NAT_SNMP_BASIC is not set | ||
317 | CONFIG_IP_NF_NAT_IRC=m | ||
318 | CONFIG_IP_NF_NAT_FTP=m | ||
319 | CONFIG_IP_NF_NAT_TFTP=m | ||
320 | CONFIG_IP_NF_NAT_AMANDA=m | ||
321 | CONFIG_IP_NF_MANGLE=m | 448 | CONFIG_IP_NF_MANGLE=m |
322 | # CONFIG_IP_NF_TARGET_TOS is not set | ||
323 | # CONFIG_IP_NF_TARGET_ECN is not set | 449 | # CONFIG_IP_NF_TARGET_ECN is not set |
324 | # CONFIG_IP_NF_TARGET_DSCP is not set | ||
325 | # CONFIG_IP_NF_TARGET_MARK is not set | ||
326 | # CONFIG_IP_NF_TARGET_CLASSIFY is not set | ||
327 | # CONFIG_IP_NF_TARGET_TTL is not set | 450 | # CONFIG_IP_NF_TARGET_TTL is not set |
328 | CONFIG_IP_NF_RAW=m | 451 | CONFIG_IP_NF_RAW=m |
329 | # CONFIG_IP_NF_TARGET_NOTRACK is not set | ||
330 | CONFIG_IP_NF_ARPTABLES=m | 452 | CONFIG_IP_NF_ARPTABLES=m |
331 | CONFIG_IP_NF_ARPFILTER=m | 453 | CONFIG_IP_NF_ARPFILTER=m |
332 | CONFIG_IP_NF_ARP_MANGLE=m | 454 | CONFIG_IP_NF_ARP_MANGLE=m |
333 | 455 | ||
334 | # | 456 | # |
335 | # IPv6: Netfilter Configuration (EXPERIMENTAL) | 457 | # IPv6: Netfilter Configuration |
336 | # | 458 | # |
337 | CONFIG_IP6_NF_QUEUE=m | 459 | CONFIG_IP6_NF_QUEUE=m |
338 | CONFIG_IP6_NF_IPTABLES=m | 460 | CONFIG_IP6_NF_IPTABLES=m |
339 | CONFIG_IP6_NF_MATCH_LIMIT=m | 461 | # CONFIG_IP6_NF_MATCH_AH is not set |
340 | CONFIG_IP6_NF_MATCH_MAC=m | 462 | CONFIG_IP6_NF_MATCH_EUI64=m |
341 | CONFIG_IP6_NF_MATCH_RT=m | ||
342 | CONFIG_IP6_NF_MATCH_OPTS=m | ||
343 | CONFIG_IP6_NF_MATCH_FRAG=m | 463 | CONFIG_IP6_NF_MATCH_FRAG=m |
464 | CONFIG_IP6_NF_MATCH_OPTS=m | ||
344 | CONFIG_IP6_NF_MATCH_HL=m | 465 | CONFIG_IP6_NF_MATCH_HL=m |
345 | CONFIG_IP6_NF_MATCH_MULTIPORT=m | ||
346 | CONFIG_IP6_NF_MATCH_OWNER=m | ||
347 | CONFIG_IP6_NF_MATCH_MARK=m | ||
348 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m | 466 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m |
349 | CONFIG_IP6_NF_MATCH_AHESP=m | 467 | # CONFIG_IP6_NF_MATCH_MH is not set |
350 | CONFIG_IP6_NF_MATCH_LENGTH=m | 468 | CONFIG_IP6_NF_MATCH_RT=m |
351 | CONFIG_IP6_NF_MATCH_EUI64=m | ||
352 | CONFIG_IP6_NF_FILTER=m | ||
353 | # CONFIG_IP6_NF_TARGET_LOG is not set | 469 | # CONFIG_IP6_NF_TARGET_LOG is not set |
470 | CONFIG_IP6_NF_FILTER=m | ||
354 | # CONFIG_IP6_NF_TARGET_REJECT is not set | 471 | # CONFIG_IP6_NF_TARGET_REJECT is not set |
355 | # CONFIG_IP6_NF_TARGET_NFQUEUE is not set | ||
356 | CONFIG_IP6_NF_MANGLE=m | 472 | CONFIG_IP6_NF_MANGLE=m |
357 | # CONFIG_IP6_NF_TARGET_MARK is not set | ||
358 | # CONFIG_IP6_NF_TARGET_HL is not set | 473 | # CONFIG_IP6_NF_TARGET_HL is not set |
359 | CONFIG_IP6_NF_RAW=m | 474 | CONFIG_IP6_NF_RAW=m |
360 | |||
361 | # | ||
362 | # DCCP Configuration (EXPERIMENTAL) | ||
363 | # | ||
364 | # CONFIG_IP_DCCP is not set | 475 | # CONFIG_IP_DCCP is not set |
365 | |||
366 | # | ||
367 | # SCTP Configuration (EXPERIMENTAL) | ||
368 | # | ||
369 | # CONFIG_IP_SCTP is not set | 476 | # CONFIG_IP_SCTP is not set |
477 | # CONFIG_TIPC is not set | ||
370 | # CONFIG_ATM is not set | 478 | # CONFIG_ATM is not set |
371 | # CONFIG_BRIDGE is not set | 479 | # CONFIG_BRIDGE is not set |
480 | # CONFIG_NET_DSA is not set | ||
372 | # CONFIG_VLAN_8021Q is not set | 481 | # CONFIG_VLAN_8021Q is not set |
373 | # CONFIG_DECNET is not set | 482 | # CONFIG_DECNET is not set |
374 | # CONFIG_LLC2 is not set | 483 | # CONFIG_LLC2 is not set |
@@ -376,21 +485,16 @@ CONFIG_IP6_NF_RAW=m | |||
376 | # CONFIG_ATALK is not set | 485 | # CONFIG_ATALK is not set |
377 | # CONFIG_X25 is not set | 486 | # CONFIG_X25 is not set |
378 | # CONFIG_LAPB is not set | 487 | # CONFIG_LAPB is not set |
379 | # CONFIG_NET_DIVERT is not set | ||
380 | # CONFIG_ECONET is not set | 488 | # CONFIG_ECONET is not set |
381 | # CONFIG_WAN_ROUTER is not set | 489 | # CONFIG_WAN_ROUTER is not set |
382 | |||
383 | # | ||
384 | # QoS and/or fair queueing | ||
385 | # | ||
386 | # CONFIG_NET_SCHED is not set | 490 | # CONFIG_NET_SCHED is not set |
387 | CONFIG_NET_CLS_ROUTE=y | ||
388 | 491 | ||
389 | # | 492 | # |
390 | # Network testing | 493 | # Network testing |
391 | # | 494 | # |
392 | # CONFIG_NET_PKTGEN is not set | 495 | # CONFIG_NET_PKTGEN is not set |
393 | # CONFIG_HAMRADIO is not set | 496 | # CONFIG_HAMRADIO is not set |
497 | # CONFIG_CAN is not set | ||
394 | CONFIG_IRDA=m | 498 | CONFIG_IRDA=m |
395 | 499 | ||
396 | # | 500 | # |
@@ -420,27 +524,17 @@ CONFIG_IRCOMM=m | |||
420 | # | 524 | # |
421 | # Dongle support | 525 | # Dongle support |
422 | # | 526 | # |
423 | 527 | # CONFIG_KINGSUN_DONGLE is not set | |
424 | # | 528 | # CONFIG_KSDAZZLE_DONGLE is not set |
425 | # Old SIR device drivers | 529 | # CONFIG_KS959_DONGLE is not set |
426 | # | ||
427 | # CONFIG_IRPORT_SIR is not set | ||
428 | |||
429 | # | ||
430 | # Old Serial dongle support | ||
431 | # | ||
432 | 530 | ||
433 | # | 531 | # |
434 | # FIR device drivers | 532 | # FIR device drivers |
435 | # | 533 | # |
436 | # CONFIG_USB_IRDA is not set | 534 | # CONFIG_USB_IRDA is not set |
437 | # CONFIG_SIGMATEL_FIR is not set | 535 | # CONFIG_SIGMATEL_FIR is not set |
438 | # CONFIG_NSC_FIR is not set | ||
439 | # CONFIG_WINBOND_FIR is not set | ||
440 | # CONFIG_SMC_IRCC_FIR is not set | ||
441 | # CONFIG_ALI_FIR is not set | ||
442 | # CONFIG_VIA_FIR is not set | ||
443 | CONFIG_PXA_FICP=m | 536 | CONFIG_PXA_FICP=m |
537 | # CONFIG_MCS_FIR is not set | ||
444 | CONFIG_BT=m | 538 | CONFIG_BT=m |
445 | CONFIG_BT_L2CAP=m | 539 | CONFIG_BT_L2CAP=m |
446 | CONFIG_BT_SCO=m | 540 | CONFIG_BT_SCO=m |
@@ -456,9 +550,12 @@ CONFIG_BT_HIDP=m | |||
456 | # | 550 | # |
457 | CONFIG_BT_HCIUSB=m | 551 | CONFIG_BT_HCIUSB=m |
458 | # CONFIG_BT_HCIUSB_SCO is not set | 552 | # CONFIG_BT_HCIUSB_SCO is not set |
553 | # CONFIG_BT_HCIBTUSB is not set | ||
554 | # CONFIG_BT_HCIBTSDIO is not set | ||
459 | CONFIG_BT_HCIUART=m | 555 | CONFIG_BT_HCIUART=m |
460 | CONFIG_BT_HCIUART_H4=y | 556 | CONFIG_BT_HCIUART_H4=y |
461 | CONFIG_BT_HCIUART_BCSP=y | 557 | CONFIG_BT_HCIUART_BCSP=y |
558 | # CONFIG_BT_HCIUART_LL is not set | ||
462 | CONFIG_BT_HCIBCM203X=m | 559 | CONFIG_BT_HCIBCM203X=m |
463 | CONFIG_BT_HCIBPA10X=m | 560 | CONFIG_BT_HCIBPA10X=m |
464 | CONFIG_BT_HCIBFUSB=m | 561 | CONFIG_BT_HCIBFUSB=m |
@@ -467,11 +564,20 @@ CONFIG_BT_HCIBT3C=m | |||
467 | CONFIG_BT_HCIBLUECARD=m | 564 | CONFIG_BT_HCIBLUECARD=m |
468 | CONFIG_BT_HCIBTUART=m | 565 | CONFIG_BT_HCIBTUART=m |
469 | CONFIG_BT_HCIVHCI=m | 566 | CONFIG_BT_HCIVHCI=m |
567 | # CONFIG_AF_RXRPC is not set | ||
568 | # CONFIG_PHONET is not set | ||
569 | CONFIG_WIRELESS=y | ||
570 | # CONFIG_CFG80211 is not set | ||
571 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
572 | # CONFIG_WIRELESS_EXT is not set | ||
573 | # CONFIG_MAC80211 is not set | ||
470 | CONFIG_IEEE80211=m | 574 | CONFIG_IEEE80211=m |
471 | # CONFIG_IEEE80211_DEBUG is not set | 575 | # CONFIG_IEEE80211_DEBUG is not set |
472 | CONFIG_IEEE80211_CRYPT_WEP=m | 576 | CONFIG_IEEE80211_CRYPT_WEP=m |
473 | # CONFIG_IEEE80211_CRYPT_CCMP is not set | 577 | # CONFIG_IEEE80211_CRYPT_CCMP is not set |
474 | # CONFIG_IEEE80211_CRYPT_TKIP is not set | 578 | # CONFIG_IEEE80211_CRYPT_TKIP is not set |
579 | # CONFIG_RFKILL is not set | ||
580 | # CONFIG_NET_9P is not set | ||
475 | 581 | ||
476 | # | 582 | # |
477 | # Device Drivers | 583 | # Device Drivers |
@@ -480,19 +586,16 @@ CONFIG_IEEE80211_CRYPT_WEP=m | |||
480 | # | 586 | # |
481 | # Generic Driver Options | 587 | # Generic Driver Options |
482 | # | 588 | # |
589 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
483 | CONFIG_STANDALONE=y | 590 | CONFIG_STANDALONE=y |
484 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 591 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
485 | CONFIG_FW_LOADER=y | 592 | CONFIG_FW_LOADER=y |
593 | CONFIG_FIRMWARE_IN_KERNEL=y | ||
594 | CONFIG_EXTRA_FIRMWARE="" | ||
486 | # CONFIG_DEBUG_DRIVER is not set | 595 | # CONFIG_DEBUG_DRIVER is not set |
487 | 596 | # CONFIG_DEBUG_DEVRES is not set | |
488 | # | 597 | # CONFIG_SYS_HYPERVISOR is not set |
489 | # Connector - unified userspace <-> kernelspace linker | ||
490 | # | ||
491 | # CONFIG_CONNECTOR is not set | 598 | # CONFIG_CONNECTOR is not set |
492 | |||
493 | # | ||
494 | # Memory Technology Devices (MTD) | ||
495 | # | ||
496 | CONFIG_MTD=y | 599 | CONFIG_MTD=y |
497 | # CONFIG_MTD_DEBUG is not set | 600 | # CONFIG_MTD_DEBUG is not set |
498 | # CONFIG_MTD_CONCAT is not set | 601 | # CONFIG_MTD_CONCAT is not set |
@@ -500,16 +603,20 @@ CONFIG_MTD_PARTITIONS=y | |||
500 | # CONFIG_MTD_REDBOOT_PARTS is not set | 603 | # CONFIG_MTD_REDBOOT_PARTS is not set |
501 | CONFIG_MTD_CMDLINE_PARTS=y | 604 | CONFIG_MTD_CMDLINE_PARTS=y |
502 | # CONFIG_MTD_AFS_PARTS is not set | 605 | # CONFIG_MTD_AFS_PARTS is not set |
606 | # CONFIG_MTD_AR7_PARTS is not set | ||
503 | 607 | ||
504 | # | 608 | # |
505 | # User Modules And Translation Layers | 609 | # User Modules And Translation Layers |
506 | # | 610 | # |
507 | CONFIG_MTD_CHAR=y | 611 | CONFIG_MTD_CHAR=y |
612 | CONFIG_MTD_BLKDEVS=y | ||
508 | CONFIG_MTD_BLOCK=y | 613 | CONFIG_MTD_BLOCK=y |
509 | # CONFIG_FTL is not set | 614 | # CONFIG_FTL is not set |
510 | # CONFIG_NFTL is not set | 615 | # CONFIG_NFTL is not set |
511 | # CONFIG_INFTL is not set | 616 | # CONFIG_INFTL is not set |
512 | # CONFIG_RFD_FTL is not set | 617 | # CONFIG_RFD_FTL is not set |
618 | # CONFIG_SSFDC is not set | ||
619 | # CONFIG_MTD_OOPS is not set | ||
513 | 620 | ||
514 | # | 621 | # |
515 | # RAM/ROM/Flash chip drivers | 622 | # RAM/ROM/Flash chip drivers |
@@ -534,16 +641,18 @@ CONFIG_MTD_ROM=y | |||
534 | # Mapping drivers for chip access | 641 | # Mapping drivers for chip access |
535 | # | 642 | # |
536 | CONFIG_MTD_COMPLEX_MAPPINGS=y | 643 | CONFIG_MTD_COMPLEX_MAPPINGS=y |
644 | # CONFIG_MTD_PHYSMAP is not set | ||
537 | CONFIG_MTD_SHARP_SL=y | 645 | CONFIG_MTD_SHARP_SL=y |
538 | # CONFIG_MTD_PLATRAM is not set | 646 | # CONFIG_MTD_PLATRAM is not set |
539 | 647 | ||
540 | # | 648 | # |
541 | # Self-contained MTD device drivers | 649 | # Self-contained MTD device drivers |
542 | # | 650 | # |
651 | # CONFIG_MTD_DATAFLASH is not set | ||
652 | # CONFIG_MTD_M25P80 is not set | ||
543 | # CONFIG_MTD_SLRAM is not set | 653 | # CONFIG_MTD_SLRAM is not set |
544 | # CONFIG_MTD_PHRAM is not set | 654 | # CONFIG_MTD_PHRAM is not set |
545 | # CONFIG_MTD_MTDRAM is not set | 655 | # CONFIG_MTD_MTDRAM is not set |
546 | # CONFIG_MTD_BLKMTD is not set | ||
547 | # CONFIG_MTD_BLOCK2MTD is not set | 656 | # CONFIG_MTD_BLOCK2MTD is not set |
548 | 657 | ||
549 | # | 658 | # |
@@ -552,78 +661,66 @@ CONFIG_MTD_SHARP_SL=y | |||
552 | # CONFIG_MTD_DOC2000 is not set | 661 | # CONFIG_MTD_DOC2000 is not set |
553 | # CONFIG_MTD_DOC2001 is not set | 662 | # CONFIG_MTD_DOC2001 is not set |
554 | # CONFIG_MTD_DOC2001PLUS is not set | 663 | # CONFIG_MTD_DOC2001PLUS is not set |
555 | |||
556 | # | ||
557 | # NAND Flash Device Drivers | ||
558 | # | ||
559 | CONFIG_MTD_NAND=y | 664 | CONFIG_MTD_NAND=y |
560 | CONFIG_MTD_NAND_VERIFY_WRITE=y | 665 | CONFIG_MTD_NAND_VERIFY_WRITE=y |
666 | # CONFIG_MTD_NAND_ECC_SMC is not set | ||
667 | # CONFIG_MTD_NAND_MUSEUM_IDS is not set | ||
561 | # CONFIG_MTD_NAND_H1900 is not set | 668 | # CONFIG_MTD_NAND_H1900 is not set |
562 | CONFIG_MTD_NAND_IDS=y | 669 | CONFIG_MTD_NAND_IDS=y |
563 | # CONFIG_MTD_NAND_DISKONCHIP is not set | 670 | # CONFIG_MTD_NAND_DISKONCHIP is not set |
564 | CONFIG_MTD_NAND_SHARPSL=y | 671 | CONFIG_MTD_NAND_SHARPSL=y |
565 | # CONFIG_MTD_NAND_NANDSIM is not set | 672 | # CONFIG_MTD_NAND_NANDSIM is not set |
566 | 673 | # CONFIG_MTD_NAND_PLATFORM is not set | |
567 | # | 674 | # CONFIG_MTD_ALAUDA is not set |
568 | # OneNAND Flash Device Drivers | ||
569 | # | ||
570 | # CONFIG_MTD_ONENAND is not set | 675 | # CONFIG_MTD_ONENAND is not set |
571 | 676 | ||
572 | # | 677 | # |
573 | # Parallel port support | 678 | # UBI - Unsorted block images |
574 | # | 679 | # |
680 | # CONFIG_MTD_UBI is not set | ||
575 | # CONFIG_PARPORT is not set | 681 | # CONFIG_PARPORT is not set |
576 | 682 | CONFIG_BLK_DEV=y | |
577 | # | ||
578 | # Plug and Play support | ||
579 | # | ||
580 | |||
581 | # | ||
582 | # Block devices | ||
583 | # | ||
584 | # CONFIG_BLK_DEV_COW_COMMON is not set | 683 | # CONFIG_BLK_DEV_COW_COMMON is not set |
585 | CONFIG_BLK_DEV_LOOP=y | 684 | CONFIG_BLK_DEV_LOOP=y |
586 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 685 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
587 | # CONFIG_BLK_DEV_NBD is not set | 686 | # CONFIG_BLK_DEV_NBD is not set |
588 | # CONFIG_BLK_DEV_UB is not set | 687 | # CONFIG_BLK_DEV_UB is not set |
589 | # CONFIG_BLK_DEV_RAM is not set | 688 | # CONFIG_BLK_DEV_RAM is not set |
590 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
591 | # CONFIG_CDROM_PKTCDVD is not set | 689 | # CONFIG_CDROM_PKTCDVD is not set |
592 | # CONFIG_ATA_OVER_ETH is not set | 690 | # CONFIG_ATA_OVER_ETH is not set |
593 | 691 | CONFIG_MISC_DEVICES=y | |
594 | # | 692 | # CONFIG_EEPROM_93CX6 is not set |
595 | # ATA/ATAPI/MFM/RLL support | 693 | # CONFIG_ENCLOSURE_SERVICES is not set |
596 | # | 694 | CONFIG_HAVE_IDE=y |
597 | CONFIG_IDE=y | 695 | CONFIG_IDE=y |
598 | CONFIG_BLK_DEV_IDE=y | ||
599 | 696 | ||
600 | # | 697 | # |
601 | # Please see Documentation/ide.txt for help/info on IDE drives | 698 | # Please see Documentation/ide/ide.txt for help/info on IDE drives |
602 | # | 699 | # |
603 | # CONFIG_BLK_DEV_IDE_SATA is not set | 700 | # CONFIG_BLK_DEV_IDE_SATA is not set |
604 | CONFIG_BLK_DEV_IDEDISK=y | 701 | CONFIG_BLK_DEV_IDEDISK=y |
605 | # CONFIG_IDEDISK_MULTI_MODE is not set | ||
606 | CONFIG_BLK_DEV_IDECS=y | 702 | CONFIG_BLK_DEV_IDECS=y |
607 | # CONFIG_BLK_DEV_IDECD is not set | 703 | # CONFIG_BLK_DEV_IDECD is not set |
608 | # CONFIG_BLK_DEV_IDETAPE is not set | 704 | # CONFIG_BLK_DEV_IDETAPE is not set |
609 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | 705 | # CONFIG_BLK_DEV_IDEFLOPPY is not set |
610 | # CONFIG_BLK_DEV_IDESCSI is not set | 706 | # CONFIG_BLK_DEV_IDESCSI is not set |
611 | # CONFIG_IDE_TASK_IOCTL is not set | 707 | # CONFIG_IDE_TASK_IOCTL is not set |
708 | CONFIG_IDE_PROC_FS=y | ||
612 | 709 | ||
613 | # | 710 | # |
614 | # IDE chipset support/bugfixes | 711 | # IDE chipset support/bugfixes |
615 | # | 712 | # |
616 | CONFIG_IDE_GENERIC=y | 713 | # CONFIG_BLK_DEV_PLATFORM is not set |
617 | # CONFIG_IDE_ARM is not set | ||
618 | # CONFIG_BLK_DEV_IDEDMA is not set | 714 | # CONFIG_BLK_DEV_IDEDMA is not set |
619 | # CONFIG_IDEDMA_AUTO is not set | ||
620 | # CONFIG_BLK_DEV_HD is not set | ||
621 | 715 | ||
622 | # | 716 | # |
623 | # SCSI device support | 717 | # SCSI device support |
624 | # | 718 | # |
625 | # CONFIG_RAID_ATTRS is not set | 719 | # CONFIG_RAID_ATTRS is not set |
626 | CONFIG_SCSI=m | 720 | CONFIG_SCSI=m |
721 | CONFIG_SCSI_DMA=y | ||
722 | # CONFIG_SCSI_TGT is not set | ||
723 | # CONFIG_SCSI_NETLINK is not set | ||
627 | CONFIG_SCSI_PROC_FS=y | 724 | CONFIG_SCSI_PROC_FS=y |
628 | 725 | ||
629 | # | 726 | # |
@@ -643,121 +740,76 @@ CONFIG_CHR_DEV_SG=m | |||
643 | CONFIG_SCSI_MULTI_LUN=y | 740 | CONFIG_SCSI_MULTI_LUN=y |
644 | # CONFIG_SCSI_CONSTANTS is not set | 741 | # CONFIG_SCSI_CONSTANTS is not set |
645 | # CONFIG_SCSI_LOGGING is not set | 742 | # CONFIG_SCSI_LOGGING is not set |
743 | # CONFIG_SCSI_SCAN_ASYNC is not set | ||
744 | CONFIG_SCSI_WAIT_SCAN=m | ||
646 | 745 | ||
647 | # | 746 | # |
648 | # SCSI Transport Attributes | 747 | # SCSI Transports |
649 | # | 748 | # |
650 | # CONFIG_SCSI_SPI_ATTRS is not set | 749 | # CONFIG_SCSI_SPI_ATTRS is not set |
651 | # CONFIG_SCSI_FC_ATTRS is not set | 750 | # CONFIG_SCSI_FC_ATTRS is not set |
652 | # CONFIG_SCSI_ISCSI_ATTRS is not set | 751 | # CONFIG_SCSI_ISCSI_ATTRS is not set |
653 | # CONFIG_SCSI_SAS_ATTRS is not set | 752 | # CONFIG_SCSI_SAS_LIBSAS is not set |
654 | 753 | # CONFIG_SCSI_SRP_ATTRS is not set | |
655 | # | 754 | CONFIG_SCSI_LOWLEVEL=y |
656 | # SCSI low-level drivers | ||
657 | # | ||
658 | # CONFIG_ISCSI_TCP is not set | 755 | # CONFIG_ISCSI_TCP is not set |
659 | # CONFIG_SCSI_SATA is not set | ||
660 | # CONFIG_SCSI_DEBUG is not set | 756 | # CONFIG_SCSI_DEBUG is not set |
661 | 757 | # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set | |
662 | # | 758 | # CONFIG_SCSI_DH is not set |
663 | # PCMCIA SCSI adapter support | 759 | # CONFIG_ATA is not set |
664 | # | ||
665 | # CONFIG_PCMCIA_AHA152X is not set | ||
666 | # CONFIG_PCMCIA_FDOMAIN is not set | ||
667 | # CONFIG_PCMCIA_NINJA_SCSI is not set | ||
668 | # CONFIG_PCMCIA_QLOGIC is not set | ||
669 | # CONFIG_PCMCIA_SYM53C500 is not set | ||
670 | |||
671 | # | ||
672 | # Multi-device support (RAID and LVM) | ||
673 | # | ||
674 | # CONFIG_MD is not set | 760 | # CONFIG_MD is not set |
675 | |||
676 | # | ||
677 | # Fusion MPT device support | ||
678 | # | ||
679 | # CONFIG_FUSION is not set | ||
680 | |||
681 | # | ||
682 | # IEEE 1394 (FireWire) support | ||
683 | # | ||
684 | |||
685 | # | ||
686 | # I2O device support | ||
687 | # | ||
688 | |||
689 | # | ||
690 | # Network device support | ||
691 | # | ||
692 | CONFIG_NETDEVICES=y | 761 | CONFIG_NETDEVICES=y |
693 | # CONFIG_DUMMY is not set | 762 | # CONFIG_DUMMY is not set |
694 | # CONFIG_BONDING is not set | 763 | # CONFIG_BONDING is not set |
764 | # CONFIG_MACVLAN is not set | ||
695 | # CONFIG_EQUALIZER is not set | 765 | # CONFIG_EQUALIZER is not set |
696 | # CONFIG_TUN is not set | 766 | # CONFIG_TUN is not set |
697 | 767 | # CONFIG_VETH is not set | |
698 | # | ||
699 | # PHY device support | ||
700 | # | ||
701 | # CONFIG_PHYLIB is not set | 768 | # CONFIG_PHYLIB is not set |
702 | |||
703 | # | ||
704 | # Ethernet (10 or 100Mbit) | ||
705 | # | ||
706 | CONFIG_NET_ETHERNET=y | 769 | CONFIG_NET_ETHERNET=y |
707 | CONFIG_MII=m | 770 | CONFIG_MII=m |
771 | # CONFIG_AX88796 is not set | ||
708 | # CONFIG_SMC91X is not set | 772 | # CONFIG_SMC91X is not set |
709 | # CONFIG_DM9000 is not set | 773 | # CONFIG_DM9000 is not set |
774 | # CONFIG_ENC28J60 is not set | ||
775 | # CONFIG_SMC911X is not set | ||
776 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
777 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
778 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
779 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
780 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
781 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
782 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
783 | # CONFIG_B44 is not set | ||
784 | CONFIG_NETDEV_1000=y | ||
785 | CONFIG_NETDEV_10000=y | ||
710 | 786 | ||
711 | # | 787 | # |
712 | # Ethernet (1000 Mbit) | 788 | # Wireless LAN |
713 | # | ||
714 | |||
715 | # | ||
716 | # Ethernet (10000 Mbit) | ||
717 | # | ||
718 | |||
719 | # | ||
720 | # Token Ring devices | ||
721 | # | 789 | # |
790 | # CONFIG_WLAN_PRE80211 is not set | ||
791 | # CONFIG_WLAN_80211 is not set | ||
792 | # CONFIG_IWLWIFI_LEDS is not set | ||
722 | 793 | ||
723 | # | 794 | # |
724 | # Wireless LAN (non-hamradio) | 795 | # USB Network Adapters |
725 | # | ||
726 | CONFIG_NET_RADIO=y | ||
727 | |||
728 | # | ||
729 | # Obsolete Wireless cards support (pre-802.11) | ||
730 | # | ||
731 | # CONFIG_STRIP is not set | ||
732 | # CONFIG_PCMCIA_WAVELAN is not set | ||
733 | # CONFIG_PCMCIA_NETWAVE is not set | ||
734 | |||
735 | # | ||
736 | # Wireless 802.11 Frequency Hopping cards support | ||
737 | # | ||
738 | # CONFIG_PCMCIA_RAYCS is not set | ||
739 | |||
740 | # | ||
741 | # Wireless 802.11b ISA/PCI cards support | ||
742 | # | ||
743 | CONFIG_HERMES=m | ||
744 | # CONFIG_ATMEL is not set | ||
745 | |||
746 | # | ||
747 | # Wireless 802.11b Pcmcia/Cardbus cards support | ||
748 | # | ||
749 | CONFIG_PCMCIA_HERMES=m | ||
750 | CONFIG_PCMCIA_SPECTRUM=m | ||
751 | # CONFIG_AIRO_CS is not set | ||
752 | # CONFIG_PCMCIA_WL3501 is not set | ||
753 | CONFIG_HOSTAP=m | ||
754 | CONFIG_HOSTAP_FIRMWARE=y | ||
755 | CONFIG_HOSTAP_CS=m | ||
756 | CONFIG_NET_WIRELESS=y | ||
757 | |||
758 | # | ||
759 | # PCMCIA network device support | ||
760 | # | 796 | # |
797 | CONFIG_USB_CATC=m | ||
798 | CONFIG_USB_KAWETH=m | ||
799 | CONFIG_USB_PEGASUS=m | ||
800 | CONFIG_USB_RTL8150=m | ||
801 | CONFIG_USB_USBNET=m | ||
802 | CONFIG_USB_NET_AX8817X=m | ||
803 | CONFIG_USB_NET_CDCETHER=m | ||
804 | # CONFIG_USB_NET_DM9601 is not set | ||
805 | # CONFIG_USB_NET_SMSC95XX is not set | ||
806 | # CONFIG_USB_NET_GL620A is not set | ||
807 | CONFIG_USB_NET_NET1080=m | ||
808 | # CONFIG_USB_NET_PLUSB is not set | ||
809 | # CONFIG_USB_NET_MCS7830 is not set | ||
810 | # CONFIG_USB_NET_RNDIS_HOST is not set | ||
811 | # CONFIG_USB_NET_CDC_SUBSET is not set | ||
812 | CONFIG_USB_NET_ZAURUS=m | ||
761 | CONFIG_NET_PCMCIA=y | 813 | CONFIG_NET_PCMCIA=y |
762 | # CONFIG_PCMCIA_3C589 is not set | 814 | # CONFIG_PCMCIA_3C589 is not set |
763 | # CONFIG_PCMCIA_3C574 is not set | 815 | # CONFIG_PCMCIA_3C574 is not set |
@@ -767,10 +819,6 @@ CONFIG_PCMCIA_PCNET=m | |||
767 | # CONFIG_PCMCIA_SMC91C92 is not set | 819 | # CONFIG_PCMCIA_SMC91C92 is not set |
768 | # CONFIG_PCMCIA_XIRC2PS is not set | 820 | # CONFIG_PCMCIA_XIRC2PS is not set |
769 | # CONFIG_PCMCIA_AXNET is not set | 821 | # CONFIG_PCMCIA_AXNET is not set |
770 | |||
771 | # | ||
772 | # Wan interfaces | ||
773 | # | ||
774 | # CONFIG_WAN is not set | 822 | # CONFIG_WAN is not set |
775 | CONFIG_PPP=m | 823 | CONFIG_PPP=m |
776 | # CONFIG_PPP_MULTILINK is not set | 824 | # CONFIG_PPP_MULTILINK is not set |
@@ -781,31 +829,29 @@ CONFIG_PPP_ASYNC=m | |||
781 | CONFIG_PPP_BSDCOMP=m | 829 | CONFIG_PPP_BSDCOMP=m |
782 | # CONFIG_PPP_MPPE is not set | 830 | # CONFIG_PPP_MPPE is not set |
783 | # CONFIG_PPPOE is not set | 831 | # CONFIG_PPPOE is not set |
832 | # CONFIG_PPPOL2TP is not set | ||
784 | # CONFIG_SLIP is not set | 833 | # CONFIG_SLIP is not set |
785 | # CONFIG_SHAPER is not set | 834 | CONFIG_SLHC=m |
786 | # CONFIG_NETCONSOLE is not set | 835 | # CONFIG_NETCONSOLE is not set |
787 | # CONFIG_NETPOLL is not set | 836 | # CONFIG_NETPOLL is not set |
788 | # CONFIG_NET_POLL_CONTROLLER is not set | 837 | # CONFIG_NET_POLL_CONTROLLER is not set |
789 | |||
790 | # | ||
791 | # ISDN subsystem | ||
792 | # | ||
793 | # CONFIG_ISDN is not set | 838 | # CONFIG_ISDN is not set |
794 | 839 | ||
795 | # | 840 | # |
796 | # Input device support | 841 | # Input device support |
797 | # | 842 | # |
798 | CONFIG_INPUT=y | 843 | CONFIG_INPUT=y |
844 | CONFIG_INPUT_FF_MEMLESS=m | ||
845 | # CONFIG_INPUT_POLLDEV is not set | ||
799 | 846 | ||
800 | # | 847 | # |
801 | # Userland interfaces | 848 | # Userland interfaces |
802 | # | 849 | # |
803 | # CONFIG_INPUT_MOUSEDEV is not set | 850 | # CONFIG_INPUT_MOUSEDEV is not set |
804 | # CONFIG_INPUT_JOYDEV is not set | 851 | # CONFIG_INPUT_JOYDEV is not set |
805 | # CONFIG_INPUT_TSDEV is not set | ||
806 | CONFIG_INPUT_EVDEV=y | 852 | CONFIG_INPUT_EVDEV=y |
807 | # CONFIG_INPUT_EVBUG is not set | 853 | # CONFIG_INPUT_EVBUG is not set |
808 | # CONFIG_INPUT_POWER is not set | 854 | # CONFIG_INPUT_APMPOWER is not set |
809 | 855 | ||
810 | # | 856 | # |
811 | # Input Device Drivers | 857 | # Input Device Drivers |
@@ -816,17 +862,35 @@ CONFIG_INPUT_KEYBOARD=y | |||
816 | # CONFIG_KEYBOARD_LKKBD is not set | 862 | # CONFIG_KEYBOARD_LKKBD is not set |
817 | # CONFIG_KEYBOARD_XTKBD is not set | 863 | # CONFIG_KEYBOARD_XTKBD is not set |
818 | # CONFIG_KEYBOARD_NEWTON is not set | 864 | # CONFIG_KEYBOARD_NEWTON is not set |
865 | # CONFIG_KEYBOARD_STOWAWAY is not set | ||
819 | # CONFIG_KEYBOARD_CORGI is not set | 866 | # CONFIG_KEYBOARD_CORGI is not set |
820 | CONFIG_KEYBOARD_SPITZ=y | 867 | CONFIG_KEYBOARD_SPITZ=y |
868 | # CONFIG_KEYBOARD_PXA27x is not set | ||
869 | # CONFIG_KEYBOARD_GPIO is not set | ||
821 | # CONFIG_INPUT_MOUSE is not set | 870 | # CONFIG_INPUT_MOUSE is not set |
822 | # CONFIG_INPUT_JOYSTICK is not set | 871 | # CONFIG_INPUT_JOYSTICK is not set |
872 | # CONFIG_INPUT_TABLET is not set | ||
823 | CONFIG_INPUT_TOUCHSCREEN=y | 873 | CONFIG_INPUT_TOUCHSCREEN=y |
824 | CONFIG_TOUCHSCREEN_CORGI=y | 874 | CONFIG_TOUCHSCREEN_ADS7846=y |
875 | # CONFIG_TOUCHSCREEN_CORGI is not set | ||
876 | # CONFIG_TOUCHSCREEN_FUJITSU is not set | ||
825 | # CONFIG_TOUCHSCREEN_GUNZE is not set | 877 | # CONFIG_TOUCHSCREEN_GUNZE is not set |
826 | # CONFIG_TOUCHSCREEN_ELO is not set | 878 | # CONFIG_TOUCHSCREEN_ELO is not set |
827 | # CONFIG_TOUCHSCREEN_MTOUCH is not set | 879 | # CONFIG_TOUCHSCREEN_MTOUCH is not set |
880 | # CONFIG_TOUCHSCREEN_INEXIO is not set | ||
828 | # CONFIG_TOUCHSCREEN_MK712 is not set | 881 | # CONFIG_TOUCHSCREEN_MK712 is not set |
882 | # CONFIG_TOUCHSCREEN_PENMOUNT is not set | ||
883 | # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set | ||
884 | # CONFIG_TOUCHSCREEN_TOUCHWIN is not set | ||
885 | # CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set | ||
886 | # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set | ||
829 | CONFIG_INPUT_MISC=y | 887 | CONFIG_INPUT_MISC=y |
888 | # CONFIG_INPUT_ATI_REMOTE is not set | ||
889 | # CONFIG_INPUT_ATI_REMOTE2 is not set | ||
890 | # CONFIG_INPUT_KEYSPAN_REMOTE is not set | ||
891 | # CONFIG_INPUT_POWERMATE is not set | ||
892 | # CONFIG_INPUT_YEALINK is not set | ||
893 | # CONFIG_INPUT_CM109 is not set | ||
830 | CONFIG_INPUT_UINPUT=m | 894 | CONFIG_INPUT_UINPUT=m |
831 | 895 | ||
832 | # | 896 | # |
@@ -839,8 +903,11 @@ CONFIG_INPUT_UINPUT=m | |||
839 | # Character devices | 903 | # Character devices |
840 | # | 904 | # |
841 | CONFIG_VT=y | 905 | CONFIG_VT=y |
906 | CONFIG_CONSOLE_TRANSLATIONS=y | ||
842 | CONFIG_VT_CONSOLE=y | 907 | CONFIG_VT_CONSOLE=y |
843 | CONFIG_HW_CONSOLE=y | 908 | CONFIG_HW_CONSOLE=y |
909 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | ||
910 | CONFIG_DEVKMEM=y | ||
844 | # CONFIG_SERIAL_NONSTANDARD is not set | 911 | # CONFIG_SERIAL_NONSTANDARD is not set |
845 | 912 | ||
846 | # | 913 | # |
@@ -849,6 +916,7 @@ CONFIG_HW_CONSOLE=y | |||
849 | CONFIG_SERIAL_8250=m | 916 | CONFIG_SERIAL_8250=m |
850 | CONFIG_SERIAL_8250_CS=m | 917 | CONFIG_SERIAL_8250_CS=m |
851 | CONFIG_SERIAL_8250_NR_UARTS=4 | 918 | CONFIG_SERIAL_8250_NR_UARTS=4 |
919 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | ||
852 | # CONFIG_SERIAL_8250_EXTENDED is not set | 920 | # CONFIG_SERIAL_8250_EXTENDED is not set |
853 | 921 | ||
854 | # | 922 | # |
@@ -860,101 +928,253 @@ CONFIG_SERIAL_CORE=y | |||
860 | CONFIG_SERIAL_CORE_CONSOLE=y | 928 | CONFIG_SERIAL_CORE_CONSOLE=y |
861 | CONFIG_UNIX98_PTYS=y | 929 | CONFIG_UNIX98_PTYS=y |
862 | # CONFIG_LEGACY_PTYS is not set | 930 | # CONFIG_LEGACY_PTYS is not set |
863 | |||
864 | # | ||
865 | # IPMI | ||
866 | # | ||
867 | # CONFIG_IPMI_HANDLER is not set | 931 | # CONFIG_IPMI_HANDLER is not set |
868 | 932 | CONFIG_HW_RANDOM=m | |
869 | # | ||
870 | # Watchdog Cards | ||
871 | # | ||
872 | # CONFIG_WATCHDOG is not set | ||
873 | # CONFIG_NVRAM is not set | 933 | # CONFIG_NVRAM is not set |
874 | # CONFIG_RTC is not set | ||
875 | # CONFIG_DTLK is not set | ||
876 | # CONFIG_R3964 is not set | 934 | # CONFIG_R3964 is not set |
877 | 935 | ||
878 | # | 936 | # |
879 | # Ftape, the floppy tape device driver | ||
880 | # | ||
881 | |||
882 | # | ||
883 | # PCMCIA character devices | 937 | # PCMCIA character devices |
884 | # | 938 | # |
885 | # CONFIG_SYNCLINK_CS is not set | 939 | # CONFIG_SYNCLINK_CS is not set |
886 | # CONFIG_CARDMAN_4000 is not set | 940 | # CONFIG_CARDMAN_4000 is not set |
887 | # CONFIG_CARDMAN_4040 is not set | 941 | # CONFIG_CARDMAN_4040 is not set |
942 | # CONFIG_IPWIRELESS is not set | ||
888 | # CONFIG_RAW_DRIVER is not set | 943 | # CONFIG_RAW_DRIVER is not set |
889 | |||
890 | # | ||
891 | # TPM devices | ||
892 | # | ||
893 | # CONFIG_TCG_TPM is not set | 944 | # CONFIG_TCG_TPM is not set |
894 | # CONFIG_TELCLOCK is not set | ||
895 | |||
896 | # | ||
897 | # I2C support | ||
898 | # | ||
899 | CONFIG_I2C=y | 945 | CONFIG_I2C=y |
946 | CONFIG_I2C_BOARDINFO=y | ||
900 | # CONFIG_I2C_CHARDEV is not set | 947 | # CONFIG_I2C_CHARDEV is not set |
948 | CONFIG_I2C_HELPER_AUTO=y | ||
901 | 949 | ||
902 | # | 950 | # |
903 | # I2C Algorithms | 951 | # I2C Hardware Bus support |
904 | # | 952 | # |
905 | # CONFIG_I2C_ALGOBIT is not set | ||
906 | # CONFIG_I2C_ALGOPCF is not set | ||
907 | # CONFIG_I2C_ALGOPCA is not set | ||
908 | 953 | ||
909 | # | 954 | # |
910 | # I2C Hardware Bus support | 955 | # I2C system bus drivers (mostly embedded / system-on-chip) |
911 | # | 956 | # |
957 | # CONFIG_I2C_GPIO is not set | ||
958 | # CONFIG_I2C_OCORES is not set | ||
912 | CONFIG_I2C_PXA=y | 959 | CONFIG_I2C_PXA=y |
913 | # CONFIG_I2C_PXA_SLAVE is not set | 960 | # CONFIG_I2C_PXA_SLAVE is not set |
961 | # CONFIG_I2C_SIMTEC is not set | ||
962 | |||
963 | # | ||
964 | # External I2C/SMBus adapter drivers | ||
965 | # | ||
914 | # CONFIG_I2C_PARPORT_LIGHT is not set | 966 | # CONFIG_I2C_PARPORT_LIGHT is not set |
967 | # CONFIG_I2C_TAOS_EVM is not set | ||
968 | # CONFIG_I2C_TINY_USB is not set | ||
969 | |||
970 | # | ||
971 | # Other I2C/SMBus bus drivers | ||
972 | # | ||
973 | # CONFIG_I2C_PCA_PLATFORM is not set | ||
915 | # CONFIG_I2C_STUB is not set | 974 | # CONFIG_I2C_STUB is not set |
916 | # CONFIG_I2C_PCA_ISA is not set | ||
917 | 975 | ||
918 | # | 976 | # |
919 | # Hardware Monitoring support | 977 | # Miscellaneous I2C Chip support |
978 | # | ||
979 | # CONFIG_DS1682 is not set | ||
980 | # CONFIG_AT24 is not set | ||
981 | # CONFIG_SENSORS_EEPROM is not set | ||
982 | # CONFIG_SENSORS_PCF8574 is not set | ||
983 | # CONFIG_PCF8575 is not set | ||
984 | # CONFIG_SENSORS_PCA9539 is not set | ||
985 | # CONFIG_SENSORS_PCF8591 is not set | ||
986 | # CONFIG_TPS65010 is not set | ||
987 | # CONFIG_SENSORS_MAX6875 is not set | ||
988 | # CONFIG_SENSORS_TSL2550 is not set | ||
989 | # CONFIG_I2C_DEBUG_CORE is not set | ||
990 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
991 | # CONFIG_I2C_DEBUG_BUS is not set | ||
992 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
993 | CONFIG_SPI=y | ||
994 | # CONFIG_SPI_DEBUG is not set | ||
995 | CONFIG_SPI_MASTER=y | ||
996 | |||
997 | # | ||
998 | # SPI Master Controller Drivers | ||
999 | # | ||
1000 | # CONFIG_SPI_BITBANG is not set | ||
1001 | CONFIG_SPI_PXA2XX=y | ||
1002 | |||
1003 | # | ||
1004 | # SPI Protocol Masters | ||
1005 | # | ||
1006 | # CONFIG_SPI_AT25 is not set | ||
1007 | # CONFIG_SPI_SPIDEV is not set | ||
1008 | # CONFIG_SPI_TLE62X0 is not set | ||
1009 | CONFIG_ARCH_REQUIRE_GPIOLIB=y | ||
1010 | CONFIG_GPIOLIB=y | ||
1011 | # CONFIG_DEBUG_GPIO is not set | ||
1012 | # CONFIG_GPIO_SYSFS is not set | ||
1013 | |||
1014 | # | ||
1015 | # I2C GPIO expanders: | ||
1016 | # | ||
1017 | # CONFIG_GPIO_MAX732X is not set | ||
1018 | # CONFIG_GPIO_PCA953X is not set | ||
1019 | # CONFIG_GPIO_PCF857X is not set | ||
1020 | |||
1021 | # | ||
1022 | # PCI GPIO expanders: | ||
1023 | # | ||
1024 | |||
1025 | # | ||
1026 | # SPI GPIO expanders: | ||
920 | # | 1027 | # |
1028 | # CONFIG_GPIO_MAX7301 is not set | ||
1029 | # CONFIG_GPIO_MCP23S08 is not set | ||
1030 | # CONFIG_W1 is not set | ||
1031 | # CONFIG_POWER_SUPPLY is not set | ||
921 | CONFIG_HWMON=y | 1032 | CONFIG_HWMON=y |
922 | # CONFIG_HWMON_VID is not set | 1033 | # CONFIG_HWMON_VID is not set |
1034 | # CONFIG_SENSORS_AD7414 is not set | ||
1035 | # CONFIG_SENSORS_AD7418 is not set | ||
1036 | # CONFIG_SENSORS_ADCXX is not set | ||
1037 | # CONFIG_SENSORS_ADM1021 is not set | ||
1038 | # CONFIG_SENSORS_ADM1025 is not set | ||
1039 | # CONFIG_SENSORS_ADM1026 is not set | ||
1040 | # CONFIG_SENSORS_ADM1029 is not set | ||
1041 | # CONFIG_SENSORS_ADM1031 is not set | ||
1042 | # CONFIG_SENSORS_ADM9240 is not set | ||
1043 | # CONFIG_SENSORS_ADT7470 is not set | ||
1044 | # CONFIG_SENSORS_ADT7473 is not set | ||
1045 | # CONFIG_SENSORS_ATXP1 is not set | ||
1046 | # CONFIG_SENSORS_DS1621 is not set | ||
1047 | # CONFIG_SENSORS_F71805F is not set | ||
1048 | # CONFIG_SENSORS_F71882FG is not set | ||
1049 | # CONFIG_SENSORS_F75375S is not set | ||
1050 | # CONFIG_SENSORS_GL518SM is not set | ||
1051 | # CONFIG_SENSORS_GL520SM is not set | ||
1052 | # CONFIG_SENSORS_IT87 is not set | ||
1053 | # CONFIG_SENSORS_LM63 is not set | ||
1054 | # CONFIG_SENSORS_LM70 is not set | ||
1055 | # CONFIG_SENSORS_LM75 is not set | ||
1056 | # CONFIG_SENSORS_LM77 is not set | ||
1057 | # CONFIG_SENSORS_LM78 is not set | ||
1058 | # CONFIG_SENSORS_LM80 is not set | ||
1059 | # CONFIG_SENSORS_LM83 is not set | ||
1060 | # CONFIG_SENSORS_LM85 is not set | ||
1061 | # CONFIG_SENSORS_LM87 is not set | ||
1062 | # CONFIG_SENSORS_LM90 is not set | ||
1063 | # CONFIG_SENSORS_LM92 is not set | ||
1064 | # CONFIG_SENSORS_LM93 is not set | ||
1065 | CONFIG_SENSORS_MAX1111=y | ||
1066 | # CONFIG_SENSORS_MAX1619 is not set | ||
1067 | # CONFIG_SENSORS_MAX6650 is not set | ||
1068 | # CONFIG_SENSORS_PC87360 is not set | ||
1069 | # CONFIG_SENSORS_PC87427 is not set | ||
1070 | # CONFIG_SENSORS_DME1737 is not set | ||
1071 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
1072 | # CONFIG_SENSORS_SMSC47M192 is not set | ||
1073 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
1074 | # CONFIG_SENSORS_ADS7828 is not set | ||
1075 | # CONFIG_SENSORS_THMC50 is not set | ||
1076 | # CONFIG_SENSORS_VT1211 is not set | ||
1077 | # CONFIG_SENSORS_W83781D is not set | ||
1078 | # CONFIG_SENSORS_W83791D is not set | ||
1079 | # CONFIG_SENSORS_W83792D is not set | ||
1080 | # CONFIG_SENSORS_W83793 is not set | ||
1081 | # CONFIG_SENSORS_W83L785TS is not set | ||
1082 | # CONFIG_SENSORS_W83L786NG is not set | ||
1083 | # CONFIG_SENSORS_W83627HF is not set | ||
1084 | # CONFIG_SENSORS_W83627EHF is not set | ||
923 | # CONFIG_HWMON_DEBUG_CHIP is not set | 1085 | # CONFIG_HWMON_DEBUG_CHIP is not set |
1086 | # CONFIG_THERMAL is not set | ||
1087 | # CONFIG_THERMAL_HWMON is not set | ||
1088 | # CONFIG_WATCHDOG is not set | ||
924 | 1089 | ||
925 | # | 1090 | # |
926 | # Misc devices | 1091 | # Sonics Silicon Backplane |
927 | # | 1092 | # |
1093 | CONFIG_SSB_POSSIBLE=y | ||
1094 | # CONFIG_SSB is not set | ||
928 | 1095 | ||
929 | # | 1096 | # |
930 | # Multimedia Capabilities Port drivers | 1097 | # Multifunction device drivers |
931 | # | 1098 | # |
1099 | # CONFIG_MFD_CORE is not set | ||
1100 | # CONFIG_MFD_SM501 is not set | ||
1101 | # CONFIG_MFD_ASIC3 is not set | ||
1102 | # CONFIG_HTC_EGPIO is not set | ||
1103 | # CONFIG_HTC_PASIC3 is not set | ||
1104 | # CONFIG_UCB1400_CORE is not set | ||
1105 | # CONFIG_MFD_TMIO is not set | ||
1106 | # CONFIG_MFD_T7L66XB is not set | ||
1107 | # CONFIG_MFD_TC6387XB is not set | ||
1108 | # CONFIG_MFD_TC6393XB is not set | ||
1109 | # CONFIG_MFD_WM8400 is not set | ||
1110 | # CONFIG_MFD_WM8350_I2C is not set | ||
932 | 1111 | ||
933 | # | 1112 | # |
934 | # Multimedia devices | 1113 | # Multimedia devices |
935 | # | 1114 | # |
1115 | |||
1116 | # | ||
1117 | # Multimedia core support | ||
1118 | # | ||
936 | # CONFIG_VIDEO_DEV is not set | 1119 | # CONFIG_VIDEO_DEV is not set |
1120 | # CONFIG_DVB_CORE is not set | ||
1121 | # CONFIG_VIDEO_MEDIA is not set | ||
937 | 1122 | ||
938 | # | 1123 | # |
939 | # Digital Video Broadcasting Devices | 1124 | # Multimedia drivers |
940 | # | 1125 | # |
941 | # CONFIG_DVB is not set | 1126 | # CONFIG_DAB is not set |
942 | 1127 | ||
943 | # | 1128 | # |
944 | # Graphics support | 1129 | # Graphics support |
945 | # | 1130 | # |
1131 | # CONFIG_VGASTATE is not set | ||
1132 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
946 | CONFIG_FB=y | 1133 | CONFIG_FB=y |
1134 | # CONFIG_FIRMWARE_EDID is not set | ||
1135 | # CONFIG_FB_DDC is not set | ||
1136 | # CONFIG_FB_BOOT_VESA_SUPPORT is not set | ||
947 | CONFIG_FB_CFB_FILLRECT=y | 1137 | CONFIG_FB_CFB_FILLRECT=y |
948 | CONFIG_FB_CFB_COPYAREA=y | 1138 | CONFIG_FB_CFB_COPYAREA=y |
949 | CONFIG_FB_CFB_IMAGEBLIT=y | 1139 | CONFIG_FB_CFB_IMAGEBLIT=y |
1140 | # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set | ||
1141 | # CONFIG_FB_SYS_FILLRECT is not set | ||
1142 | # CONFIG_FB_SYS_COPYAREA is not set | ||
1143 | # CONFIG_FB_SYS_IMAGEBLIT is not set | ||
1144 | # CONFIG_FB_FOREIGN_ENDIAN is not set | ||
1145 | # CONFIG_FB_SYS_FOPS is not set | ||
1146 | # CONFIG_FB_SVGALIB is not set | ||
950 | # CONFIG_FB_MACMODES is not set | 1147 | # CONFIG_FB_MACMODES is not set |
1148 | # CONFIG_FB_BACKLIGHT is not set | ||
951 | # CONFIG_FB_MODE_HELPERS is not set | 1149 | # CONFIG_FB_MODE_HELPERS is not set |
952 | # CONFIG_FB_TILEBLITTING is not set | 1150 | # CONFIG_FB_TILEBLITTING is not set |
1151 | |||
1152 | # | ||
1153 | # Frame buffer hardware drivers | ||
1154 | # | ||
953 | # CONFIG_FB_S1D13XXX is not set | 1155 | # CONFIG_FB_S1D13XXX is not set |
954 | CONFIG_FB_PXA=y | 1156 | CONFIG_FB_PXA=y |
1157 | # CONFIG_FB_PXA_SMARTPANEL is not set | ||
955 | # CONFIG_FB_PXA_PARAMETERS is not set | 1158 | # CONFIG_FB_PXA_PARAMETERS is not set |
1159 | # CONFIG_FB_MBX is not set | ||
956 | # CONFIG_FB_W100 is not set | 1160 | # CONFIG_FB_W100 is not set |
957 | # CONFIG_FB_VIRTUAL is not set | 1161 | # CONFIG_FB_VIRTUAL is not set |
1162 | # CONFIG_FB_METRONOME is not set | ||
1163 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | ||
1164 | CONFIG_LCD_CLASS_DEVICE=y | ||
1165 | CONFIG_LCD_CORGI=y | ||
1166 | # CONFIG_LCD_LTV350QV is not set | ||
1167 | # CONFIG_LCD_ILI9320 is not set | ||
1168 | # CONFIG_LCD_TDO24M is not set | ||
1169 | # CONFIG_LCD_VGG2432A4 is not set | ||
1170 | # CONFIG_LCD_PLATFORM is not set | ||
1171 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | ||
1172 | # CONFIG_BACKLIGHT_CORGI is not set | ||
1173 | |||
1174 | # | ||
1175 | # Display device support | ||
1176 | # | ||
1177 | # CONFIG_DISPLAY_SUPPORT is not set | ||
958 | 1178 | ||
959 | # | 1179 | # |
960 | # Console display driver support | 1180 | # Console display driver support |
@@ -962,6 +1182,7 @@ CONFIG_FB_PXA=y | |||
962 | # CONFIG_VGA_CONSOLE is not set | 1182 | # CONFIG_VGA_CONSOLE is not set |
963 | CONFIG_DUMMY_CONSOLE=y | 1183 | CONFIG_DUMMY_CONSOLE=y |
964 | CONFIG_FRAMEBUFFER_CONSOLE=y | 1184 | CONFIG_FRAMEBUFFER_CONSOLE=y |
1185 | # CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set | ||
965 | CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y | 1186 | CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y |
966 | CONFIG_FONTS=y | 1187 | CONFIG_FONTS=y |
967 | CONFIG_FONT_8x8=y | 1188 | CONFIG_FONT_8x8=y |
@@ -974,55 +1195,96 @@ CONFIG_FONT_8x16=y | |||
974 | # CONFIG_FONT_SUN8x16 is not set | 1195 | # CONFIG_FONT_SUN8x16 is not set |
975 | # CONFIG_FONT_SUN12x22 is not set | 1196 | # CONFIG_FONT_SUN12x22 is not set |
976 | # CONFIG_FONT_10x18 is not set | 1197 | # CONFIG_FONT_10x18 is not set |
1198 | # CONFIG_LOGO is not set | ||
1199 | # CONFIG_SOUND is not set | ||
1200 | CONFIG_HID_SUPPORT=y | ||
1201 | CONFIG_HID=y | ||
1202 | # CONFIG_HID_DEBUG is not set | ||
1203 | # CONFIG_HIDRAW is not set | ||
977 | 1204 | ||
978 | # | 1205 | # |
979 | # Logo configuration | 1206 | # USB Input Devices |
980 | # | 1207 | # |
981 | # CONFIG_LOGO is not set | 1208 | CONFIG_USB_HID=m |
982 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | 1209 | # CONFIG_HID_PID is not set |
983 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | 1210 | # CONFIG_USB_HIDDEV is not set |
984 | CONFIG_BACKLIGHT_DEVICE=y | ||
985 | CONFIG_LCD_CLASS_DEVICE=y | ||
986 | CONFIG_LCD_DEVICE=y | ||
987 | CONFIG_BACKLIGHT_CORGI=y | ||
988 | 1211 | ||
989 | # | 1212 | # |
990 | # Sound | 1213 | # USB HID Boot Protocol drivers |
991 | # | 1214 | # |
992 | # CONFIG_SOUND is not set | 1215 | CONFIG_USB_KBD=m |
1216 | CONFIG_USB_MOUSE=m | ||
993 | 1217 | ||
994 | # | 1218 | # |
995 | # USB support | 1219 | # Special HID drivers |
996 | # | 1220 | # |
1221 | CONFIG_HID_COMPAT=y | ||
1222 | CONFIG_HID_A4TECH=m | ||
1223 | CONFIG_HID_APPLE=m | ||
1224 | CONFIG_HID_BELKIN=m | ||
1225 | CONFIG_HID_BRIGHT=m | ||
1226 | CONFIG_HID_CHERRY=m | ||
1227 | CONFIG_HID_CHICONY=m | ||
1228 | CONFIG_HID_CYPRESS=m | ||
1229 | CONFIG_HID_DELL=m | ||
1230 | CONFIG_HID_EZKEY=m | ||
1231 | CONFIG_HID_GYRATION=m | ||
1232 | CONFIG_HID_LOGITECH=m | ||
1233 | # CONFIG_LOGITECH_FF is not set | ||
1234 | # CONFIG_LOGIRUMBLEPAD2_FF is not set | ||
1235 | CONFIG_HID_MICROSOFT=m | ||
1236 | CONFIG_HID_MONTEREY=m | ||
1237 | CONFIG_HID_PANTHERLORD=m | ||
1238 | # CONFIG_PANTHERLORD_FF is not set | ||
1239 | CONFIG_HID_PETALYNX=m | ||
1240 | CONFIG_HID_SAMSUNG=m | ||
1241 | CONFIG_HID_SONY=m | ||
1242 | CONFIG_HID_SUNPLUS=m | ||
1243 | CONFIG_THRUSTMASTER_FF=m | ||
1244 | CONFIG_ZEROPLUS_FF=m | ||
1245 | CONFIG_USB_SUPPORT=y | ||
997 | CONFIG_USB_ARCH_HAS_HCD=y | 1246 | CONFIG_USB_ARCH_HAS_HCD=y |
998 | CONFIG_USB_ARCH_HAS_OHCI=y | 1247 | CONFIG_USB_ARCH_HAS_OHCI=y |
1248 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
999 | CONFIG_USB=m | 1249 | CONFIG_USB=m |
1000 | # CONFIG_USB_DEBUG is not set | 1250 | # CONFIG_USB_DEBUG is not set |
1251 | # CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set | ||
1001 | 1252 | ||
1002 | # | 1253 | # |
1003 | # Miscellaneous USB options | 1254 | # Miscellaneous USB options |
1004 | # | 1255 | # |
1005 | CONFIG_USB_DEVICEFS=y | 1256 | CONFIG_USB_DEVICEFS=y |
1006 | # CONFIG_USB_BANDWIDTH is not set | 1257 | CONFIG_USB_DEVICE_CLASS=y |
1007 | # CONFIG_USB_DYNAMIC_MINORS is not set | 1258 | # CONFIG_USB_DYNAMIC_MINORS is not set |
1008 | # CONFIG_USB_SUSPEND is not set | 1259 | # CONFIG_USB_SUSPEND is not set |
1009 | # CONFIG_USB_OTG is not set | 1260 | # CONFIG_USB_OTG is not set |
1261 | # CONFIG_USB_OTG_WHITELIST is not set | ||
1262 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | ||
1263 | CONFIG_USB_MON=y | ||
1010 | 1264 | ||
1011 | # | 1265 | # |
1012 | # USB Host Controller Drivers | 1266 | # USB Host Controller Drivers |
1013 | # | 1267 | # |
1268 | # CONFIG_USB_C67X00_HCD is not set | ||
1014 | # CONFIG_USB_ISP116X_HCD is not set | 1269 | # CONFIG_USB_ISP116X_HCD is not set |
1270 | # CONFIG_USB_ISP1760_HCD is not set | ||
1015 | CONFIG_USB_OHCI_HCD=m | 1271 | CONFIG_USB_OHCI_HCD=m |
1016 | # CONFIG_USB_OHCI_BIG_ENDIAN is not set | 1272 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set |
1273 | # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set | ||
1017 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y | 1274 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y |
1018 | CONFIG_USB_SL811_HCD=m | 1275 | CONFIG_USB_SL811_HCD=m |
1019 | CONFIG_USB_SL811_CS=m | 1276 | CONFIG_USB_SL811_CS=m |
1277 | # CONFIG_USB_R8A66597_HCD is not set | ||
1278 | # CONFIG_USB_MUSB_HDRC is not set | ||
1279 | # CONFIG_USB_GADGET_MUSB_HDRC is not set | ||
1020 | 1280 | ||
1021 | # | 1281 | # |
1022 | # USB Device Class drivers | 1282 | # USB Device Class drivers |
1023 | # | 1283 | # |
1024 | CONFIG_USB_ACM=m | 1284 | CONFIG_USB_ACM=m |
1025 | CONFIG_USB_PRINTER=m | 1285 | CONFIG_USB_PRINTER=m |
1286 | # CONFIG_USB_WDM is not set | ||
1287 | # CONFIG_USB_TMC is not set | ||
1026 | 1288 | ||
1027 | # | 1289 | # |
1028 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 1290 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -1041,33 +1303,11 @@ CONFIG_USB_STORAGE=m | |||
1041 | # CONFIG_USB_STORAGE_SDDR09 is not set | 1303 | # CONFIG_USB_STORAGE_SDDR09 is not set |
1042 | # CONFIG_USB_STORAGE_SDDR55 is not set | 1304 | # CONFIG_USB_STORAGE_SDDR55 is not set |
1043 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | 1305 | # CONFIG_USB_STORAGE_JUMPSHOT is not set |
1044 | 1306 | # CONFIG_USB_STORAGE_ALAUDA is not set | |
1045 | # | 1307 | # CONFIG_USB_STORAGE_ONETOUCH is not set |
1046 | # USB Input Devices | 1308 | # CONFIG_USB_STORAGE_KARMA is not set |
1047 | # | 1309 | # CONFIG_USB_STORAGE_CYPRESS_ATACB is not set |
1048 | CONFIG_USB_HID=m | 1310 | # CONFIG_USB_LIBUSUAL is not set |
1049 | CONFIG_USB_HIDINPUT=y | ||
1050 | # CONFIG_HID_FF is not set | ||
1051 | # CONFIG_USB_HIDDEV is not set | ||
1052 | |||
1053 | # | ||
1054 | # USB HID Boot Protocol drivers | ||
1055 | # | ||
1056 | CONFIG_USB_KBD=m | ||
1057 | CONFIG_USB_MOUSE=m | ||
1058 | CONFIG_USB_AIPTEK=m | ||
1059 | CONFIG_USB_WACOM=m | ||
1060 | # CONFIG_USB_ACECAD is not set | ||
1061 | CONFIG_USB_KBTAB=m | ||
1062 | CONFIG_USB_POWERMATE=m | ||
1063 | CONFIG_USB_MTOUCH=m | ||
1064 | # CONFIG_USB_ITMTOUCH is not set | ||
1065 | CONFIG_USB_EGALAX=m | ||
1066 | # CONFIG_USB_YEALINK is not set | ||
1067 | CONFIG_USB_XPAD=m | ||
1068 | CONFIG_USB_ATI_REMOTE=m | ||
1069 | # CONFIG_USB_KEYSPAN_REMOTE is not set | ||
1070 | # CONFIG_USB_APPLETOUCH is not set | ||
1071 | 1311 | ||
1072 | # | 1312 | # |
1073 | # USB Imaging devices | 1313 | # USB Imaging devices |
@@ -1076,51 +1316,22 @@ CONFIG_USB_MDC800=m | |||
1076 | CONFIG_USB_MICROTEK=m | 1316 | CONFIG_USB_MICROTEK=m |
1077 | 1317 | ||
1078 | # | 1318 | # |
1079 | # USB Multimedia devices | ||
1080 | # | ||
1081 | CONFIG_USB_DABUSB=m | ||
1082 | |||
1083 | # | ||
1084 | # Video4Linux support is needed for USB Multimedia device support | ||
1085 | # | ||
1086 | |||
1087 | # | ||
1088 | # USB Network Adapters | ||
1089 | # | ||
1090 | CONFIG_USB_CATC=m | ||
1091 | CONFIG_USB_KAWETH=m | ||
1092 | CONFIG_USB_PEGASUS=m | ||
1093 | CONFIG_USB_RTL8150=m | ||
1094 | CONFIG_USB_USBNET=m | ||
1095 | CONFIG_USB_NET_AX8817X=m | ||
1096 | CONFIG_USB_NET_CDCETHER=m | ||
1097 | # CONFIG_USB_NET_GL620A is not set | ||
1098 | CONFIG_USB_NET_NET1080=m | ||
1099 | # CONFIG_USB_NET_PLUSB is not set | ||
1100 | # CONFIG_USB_NET_RNDIS_HOST is not set | ||
1101 | # CONFIG_USB_NET_CDC_SUBSET is not set | ||
1102 | CONFIG_USB_NET_ZAURUS=m | ||
1103 | # CONFIG_USB_ZD1201 is not set | ||
1104 | CONFIG_USB_MON=y | ||
1105 | |||
1106 | # | ||
1107 | # USB port drivers | 1319 | # USB port drivers |
1108 | # | 1320 | # |
1109 | |||
1110 | # | ||
1111 | # USB Serial Converter support | ||
1112 | # | ||
1113 | CONFIG_USB_SERIAL=m | 1321 | CONFIG_USB_SERIAL=m |
1322 | CONFIG_USB_EZUSB=y | ||
1114 | CONFIG_USB_SERIAL_GENERIC=y | 1323 | CONFIG_USB_SERIAL_GENERIC=y |
1115 | # CONFIG_USB_SERIAL_AIRPRIME is not set | 1324 | # CONFIG_USB_SERIAL_AIRCABLE is not set |
1116 | # CONFIG_USB_SERIAL_ANYDATA is not set | 1325 | # CONFIG_USB_SERIAL_ARK3116 is not set |
1117 | CONFIG_USB_SERIAL_BELKIN=m | 1326 | CONFIG_USB_SERIAL_BELKIN=m |
1327 | # CONFIG_USB_SERIAL_CH341 is not set | ||
1118 | # CONFIG_USB_SERIAL_WHITEHEAT is not set | 1328 | # CONFIG_USB_SERIAL_WHITEHEAT is not set |
1119 | CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m | 1329 | CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m |
1120 | # CONFIG_USB_SERIAL_CP2101 is not set | 1330 | # CONFIG_USB_SERIAL_CP2101 is not set |
1121 | CONFIG_USB_SERIAL_CYPRESS_M8=m | 1331 | CONFIG_USB_SERIAL_CYPRESS_M8=m |
1122 | CONFIG_USB_SERIAL_EMPEG=m | 1332 | CONFIG_USB_SERIAL_EMPEG=m |
1123 | CONFIG_USB_SERIAL_FTDI_SIO=m | 1333 | CONFIG_USB_SERIAL_FTDI_SIO=m |
1334 | # CONFIG_USB_SERIAL_FUNSOFT is not set | ||
1124 | CONFIG_USB_SERIAL_VISOR=m | 1335 | CONFIG_USB_SERIAL_VISOR=m |
1125 | CONFIG_USB_SERIAL_IPAQ=m | 1336 | CONFIG_USB_SERIAL_IPAQ=m |
1126 | CONFIG_USB_SERIAL_IR=m | 1337 | CONFIG_USB_SERIAL_IR=m |
@@ -1128,6 +1339,7 @@ CONFIG_USB_SERIAL_EDGEPORT=m | |||
1128 | CONFIG_USB_SERIAL_EDGEPORT_TI=m | 1339 | CONFIG_USB_SERIAL_EDGEPORT_TI=m |
1129 | CONFIG_USB_SERIAL_GARMIN=m | 1340 | CONFIG_USB_SERIAL_GARMIN=m |
1130 | CONFIG_USB_SERIAL_IPW=m | 1341 | CONFIG_USB_SERIAL_IPW=m |
1342 | # CONFIG_USB_SERIAL_IUU is not set | ||
1131 | CONFIG_USB_SERIAL_KEYSPAN_PDA=m | 1343 | CONFIG_USB_SERIAL_KEYSPAN_PDA=m |
1132 | CONFIG_USB_SERIAL_KEYSPAN=m | 1344 | CONFIG_USB_SERIAL_KEYSPAN=m |
1133 | # CONFIG_USB_SERIAL_KEYSPAN_MPR is not set | 1345 | # CONFIG_USB_SERIAL_KEYSPAN_MPR is not set |
@@ -1145,49 +1357,66 @@ CONFIG_USB_SERIAL_KEYSPAN=m | |||
1145 | CONFIG_USB_SERIAL_KLSI=m | 1357 | CONFIG_USB_SERIAL_KLSI=m |
1146 | CONFIG_USB_SERIAL_KOBIL_SCT=m | 1358 | CONFIG_USB_SERIAL_KOBIL_SCT=m |
1147 | CONFIG_USB_SERIAL_MCT_U232=m | 1359 | CONFIG_USB_SERIAL_MCT_U232=m |
1360 | # CONFIG_USB_SERIAL_MOS7720 is not set | ||
1361 | # CONFIG_USB_SERIAL_MOS7840 is not set | ||
1362 | # CONFIG_USB_SERIAL_MOTOROLA is not set | ||
1363 | # CONFIG_USB_SERIAL_NAVMAN is not set | ||
1148 | CONFIG_USB_SERIAL_PL2303=m | 1364 | CONFIG_USB_SERIAL_PL2303=m |
1365 | # CONFIG_USB_SERIAL_OTI6858 is not set | ||
1366 | # CONFIG_USB_SERIAL_SPCP8X5 is not set | ||
1149 | # CONFIG_USB_SERIAL_HP4X is not set | 1367 | # CONFIG_USB_SERIAL_HP4X is not set |
1150 | CONFIG_USB_SERIAL_SAFE=m | 1368 | CONFIG_USB_SERIAL_SAFE=m |
1151 | # CONFIG_USB_SERIAL_SAFE_PADDED is not set | 1369 | # CONFIG_USB_SERIAL_SAFE_PADDED is not set |
1370 | # CONFIG_USB_SERIAL_SIERRAWIRELESS is not set | ||
1152 | CONFIG_USB_SERIAL_TI=m | 1371 | CONFIG_USB_SERIAL_TI=m |
1153 | CONFIG_USB_SERIAL_CYBERJACK=m | 1372 | CONFIG_USB_SERIAL_CYBERJACK=m |
1154 | CONFIG_USB_SERIAL_XIRCOM=m | 1373 | CONFIG_USB_SERIAL_XIRCOM=m |
1155 | # CONFIG_USB_SERIAL_OPTION is not set | 1374 | # CONFIG_USB_SERIAL_OPTION is not set |
1156 | CONFIG_USB_SERIAL_OMNINET=m | 1375 | CONFIG_USB_SERIAL_OMNINET=m |
1157 | CONFIG_USB_EZUSB=y | 1376 | # CONFIG_USB_SERIAL_DEBUG is not set |
1158 | 1377 | ||
1159 | # | 1378 | # |
1160 | # USB Miscellaneous drivers | 1379 | # USB Miscellaneous drivers |
1161 | # | 1380 | # |
1162 | CONFIG_USB_EMI62=m | 1381 | CONFIG_USB_EMI62=m |
1163 | CONFIG_USB_EMI26=m | 1382 | CONFIG_USB_EMI26=m |
1164 | CONFIG_USB_AUERSWALD=m | 1383 | # CONFIG_USB_ADUTUX is not set |
1384 | # CONFIG_USB_SEVSEG is not set | ||
1165 | CONFIG_USB_RIO500=m | 1385 | CONFIG_USB_RIO500=m |
1166 | CONFIG_USB_LEGOTOWER=m | 1386 | CONFIG_USB_LEGOTOWER=m |
1167 | CONFIG_USB_LCD=m | 1387 | CONFIG_USB_LCD=m |
1388 | # CONFIG_USB_BERRY_CHARGE is not set | ||
1168 | CONFIG_USB_LED=m | 1389 | CONFIG_USB_LED=m |
1390 | # CONFIG_USB_CYPRESS_CY7C63 is not set | ||
1169 | CONFIG_USB_CYTHERM=m | 1391 | CONFIG_USB_CYTHERM=m |
1170 | CONFIG_USB_PHIDGETKIT=m | 1392 | # CONFIG_USB_PHIDGET is not set |
1171 | CONFIG_USB_PHIDGETSERVO=m | ||
1172 | CONFIG_USB_IDMOUSE=m | 1393 | CONFIG_USB_IDMOUSE=m |
1394 | # CONFIG_USB_FTDI_ELAN is not set | ||
1395 | # CONFIG_USB_APPLEDISPLAY is not set | ||
1173 | # CONFIG_USB_LD is not set | 1396 | # CONFIG_USB_LD is not set |
1397 | # CONFIG_USB_TRANCEVIBRATOR is not set | ||
1398 | # CONFIG_USB_IOWARRIOR is not set | ||
1174 | # CONFIG_USB_TEST is not set | 1399 | # CONFIG_USB_TEST is not set |
1175 | 1400 | # CONFIG_USB_ISIGHTFW is not set | |
1176 | # | 1401 | # CONFIG_USB_VST is not set |
1177 | # USB DSL modem support | ||
1178 | # | ||
1179 | |||
1180 | # | ||
1181 | # USB Gadget Support | ||
1182 | # | ||
1183 | CONFIG_USB_GADGET=m | 1402 | CONFIG_USB_GADGET=m |
1403 | # CONFIG_USB_GADGET_DEBUG is not set | ||
1184 | # CONFIG_USB_GADGET_DEBUG_FILES is not set | 1404 | # CONFIG_USB_GADGET_DEBUG_FILES is not set |
1405 | CONFIG_USB_GADGET_VBUS_DRAW=2 | ||
1185 | CONFIG_USB_GADGET_SELECTED=y | 1406 | CONFIG_USB_GADGET_SELECTED=y |
1186 | # CONFIG_USB_GADGET_NET2280 is not set | 1407 | # CONFIG_USB_GADGET_AT91 is not set |
1187 | # CONFIG_USB_GADGET_PXA2XX is not set | 1408 | # CONFIG_USB_GADGET_ATMEL_USBA is not set |
1188 | # CONFIG_USB_GADGET_GOKU is not set | 1409 | # CONFIG_USB_GADGET_FSL_USB2 is not set |
1189 | # CONFIG_USB_GADGET_LH7A40X is not set | 1410 | # CONFIG_USB_GADGET_LH7A40X is not set |
1190 | # CONFIG_USB_GADGET_OMAP is not set | 1411 | # CONFIG_USB_GADGET_OMAP is not set |
1412 | # CONFIG_USB_GADGET_PXA25X is not set | ||
1413 | # CONFIG_USB_GADGET_PXA27X is not set | ||
1414 | # CONFIG_USB_GADGET_S3C2410 is not set | ||
1415 | # CONFIG_USB_GADGET_M66592 is not set | ||
1416 | # CONFIG_USB_GADGET_AMD5536UDC is not set | ||
1417 | # CONFIG_USB_GADGET_FSL_QE is not set | ||
1418 | # CONFIG_USB_GADGET_NET2280 is not set | ||
1419 | # CONFIG_USB_GADGET_GOKU is not set | ||
1191 | CONFIG_USB_GADGET_DUMMY_HCD=y | 1420 | CONFIG_USB_GADGET_DUMMY_HCD=y |
1192 | CONFIG_USB_DUMMY_HCD=m | 1421 | CONFIG_USB_DUMMY_HCD=m |
1193 | CONFIG_USB_GADGET_DUALSPEED=y | 1422 | CONFIG_USB_GADGET_DUALSPEED=y |
@@ -1198,15 +1427,42 @@ CONFIG_USB_GADGETFS=m | |||
1198 | CONFIG_USB_FILE_STORAGE=m | 1427 | CONFIG_USB_FILE_STORAGE=m |
1199 | # CONFIG_USB_FILE_STORAGE_TEST is not set | 1428 | # CONFIG_USB_FILE_STORAGE_TEST is not set |
1200 | CONFIG_USB_G_SERIAL=m | 1429 | CONFIG_USB_G_SERIAL=m |
1430 | # CONFIG_USB_MIDI_GADGET is not set | ||
1431 | # CONFIG_USB_G_PRINTER is not set | ||
1432 | # CONFIG_USB_CDC_COMPOSITE is not set | ||
1433 | CONFIG_MMC=y | ||
1434 | # CONFIG_MMC_DEBUG is not set | ||
1435 | # CONFIG_MMC_UNSAFE_RESUME is not set | ||
1201 | 1436 | ||
1202 | # | 1437 | # |
1203 | # MMC/SD Card support | 1438 | # MMC/SD/SDIO Card Drivers |
1204 | # | 1439 | # |
1205 | CONFIG_MMC=y | ||
1206 | # CONFIG_MMC_DEBUG is not set | ||
1207 | CONFIG_MMC_BLOCK=y | 1440 | CONFIG_MMC_BLOCK=y |
1441 | CONFIG_MMC_BLOCK_BOUNCE=y | ||
1442 | # CONFIG_SDIO_UART is not set | ||
1443 | # CONFIG_MMC_TEST is not set | ||
1444 | |||
1445 | # | ||
1446 | # MMC/SD/SDIO Host Controller Drivers | ||
1447 | # | ||
1208 | CONFIG_MMC_PXA=y | 1448 | CONFIG_MMC_PXA=y |
1209 | # CONFIG_MMC_WBSD is not set | 1449 | # CONFIG_MMC_SDHCI is not set |
1450 | # CONFIG_MMC_SPI is not set | ||
1451 | # CONFIG_MEMSTICK is not set | ||
1452 | # CONFIG_ACCESSIBILITY is not set | ||
1453 | # CONFIG_NEW_LEDS is not set | ||
1454 | CONFIG_RTC_LIB=y | ||
1455 | # CONFIG_RTC_CLASS is not set | ||
1456 | # CONFIG_DMADEVICES is not set | ||
1457 | |||
1458 | # | ||
1459 | # Voltage and Current regulators | ||
1460 | # | ||
1461 | # CONFIG_REGULATOR is not set | ||
1462 | # CONFIG_REGULATOR_FIXED_VOLTAGE is not set | ||
1463 | # CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set | ||
1464 | # CONFIG_REGULATOR_BQ24022 is not set | ||
1465 | # CONFIG_UIO is not set | ||
1210 | 1466 | ||
1211 | # | 1467 | # |
1212 | # File systems | 1468 | # File systems |
@@ -1218,18 +1474,19 @@ CONFIG_EXT2_FS_SECURITY=y | |||
1218 | # CONFIG_EXT2_FS_XIP is not set | 1474 | # CONFIG_EXT2_FS_XIP is not set |
1219 | CONFIG_EXT3_FS=y | 1475 | CONFIG_EXT3_FS=y |
1220 | # CONFIG_EXT3_FS_XATTR is not set | 1476 | # CONFIG_EXT3_FS_XATTR is not set |
1477 | # CONFIG_EXT4_FS is not set | ||
1221 | CONFIG_JBD=y | 1478 | CONFIG_JBD=y |
1222 | # CONFIG_JBD_DEBUG is not set | ||
1223 | CONFIG_FS_MBCACHE=y | 1479 | CONFIG_FS_MBCACHE=y |
1224 | # CONFIG_REISERFS_FS is not set | 1480 | # CONFIG_REISERFS_FS is not set |
1225 | # CONFIG_JFS_FS is not set | 1481 | # CONFIG_JFS_FS is not set |
1226 | CONFIG_FS_POSIX_ACL=y | 1482 | CONFIG_FS_POSIX_ACL=y |
1483 | CONFIG_FILE_LOCKING=y | ||
1227 | # CONFIG_XFS_FS is not set | 1484 | # CONFIG_XFS_FS is not set |
1228 | # CONFIG_MINIX_FS is not set | 1485 | # CONFIG_OCFS2_FS is not set |
1229 | # CONFIG_ROMFS_FS is not set | 1486 | CONFIG_DNOTIFY=y |
1230 | CONFIG_INOTIFY=y | 1487 | CONFIG_INOTIFY=y |
1488 | CONFIG_INOTIFY_USER=y | ||
1231 | # CONFIG_QUOTA is not set | 1489 | # CONFIG_QUOTA is not set |
1232 | CONFIG_DNOTIFY=y | ||
1233 | # CONFIG_AUTOFS_FS is not set | 1490 | # CONFIG_AUTOFS_FS is not set |
1234 | # CONFIG_AUTOFS4_FS is not set | 1491 | # CONFIG_AUTOFS4_FS is not set |
1235 | # CONFIG_FUSE_FS is not set | 1492 | # CONFIG_FUSE_FS is not set |
@@ -1254,11 +1511,13 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
1254 | # Pseudo filesystems | 1511 | # Pseudo filesystems |
1255 | # | 1512 | # |
1256 | CONFIG_PROC_FS=y | 1513 | CONFIG_PROC_FS=y |
1514 | CONFIG_PROC_SYSCTL=y | ||
1515 | CONFIG_PROC_PAGE_MONITOR=y | ||
1257 | CONFIG_SYSFS=y | 1516 | CONFIG_SYSFS=y |
1258 | CONFIG_TMPFS=y | 1517 | CONFIG_TMPFS=y |
1518 | # CONFIG_TMPFS_POSIX_ACL is not set | ||
1259 | # CONFIG_HUGETLB_PAGE is not set | 1519 | # CONFIG_HUGETLB_PAGE is not set |
1260 | CONFIG_RAMFS=y | 1520 | # CONFIG_CONFIGFS_FS is not set |
1261 | # CONFIG_RELAYFS_FS is not set | ||
1262 | 1521 | ||
1263 | # | 1522 | # |
1264 | # Miscellaneous filesystems | 1523 | # Miscellaneous filesystems |
@@ -1270,39 +1529,42 @@ CONFIG_RAMFS=y | |||
1270 | # CONFIG_BEFS_FS is not set | 1529 | # CONFIG_BEFS_FS is not set |
1271 | # CONFIG_BFS_FS is not set | 1530 | # CONFIG_BFS_FS is not set |
1272 | # CONFIG_EFS_FS is not set | 1531 | # CONFIG_EFS_FS is not set |
1273 | # CONFIG_JFFS_FS is not set | ||
1274 | CONFIG_JFFS2_FS=y | 1532 | CONFIG_JFFS2_FS=y |
1275 | CONFIG_JFFS2_FS_DEBUG=0 | 1533 | CONFIG_JFFS2_FS_DEBUG=0 |
1276 | CONFIG_JFFS2_FS_WRITEBUFFER=y | 1534 | CONFIG_JFFS2_FS_WRITEBUFFER=y |
1535 | # CONFIG_JFFS2_FS_WBUF_VERIFY is not set | ||
1277 | CONFIG_JFFS2_SUMMARY=y | 1536 | CONFIG_JFFS2_SUMMARY=y |
1537 | # CONFIG_JFFS2_FS_XATTR is not set | ||
1278 | CONFIG_JFFS2_COMPRESSION_OPTIONS=y | 1538 | CONFIG_JFFS2_COMPRESSION_OPTIONS=y |
1279 | CONFIG_JFFS2_ZLIB=y | 1539 | CONFIG_JFFS2_ZLIB=y |
1540 | # CONFIG_JFFS2_LZO is not set | ||
1280 | CONFIG_JFFS2_RTIME=y | 1541 | CONFIG_JFFS2_RTIME=y |
1281 | CONFIG_JFFS2_RUBIN=y | 1542 | CONFIG_JFFS2_RUBIN=y |
1282 | # CONFIG_JFFS2_CMODE_NONE is not set | 1543 | # CONFIG_JFFS2_CMODE_NONE is not set |
1283 | CONFIG_JFFS2_CMODE_PRIORITY=y | 1544 | CONFIG_JFFS2_CMODE_PRIORITY=y |
1284 | # CONFIG_JFFS2_CMODE_SIZE is not set | 1545 | # CONFIG_JFFS2_CMODE_SIZE is not set |
1546 | # CONFIG_JFFS2_CMODE_FAVOURLZO is not set | ||
1285 | CONFIG_CRAMFS=m | 1547 | CONFIG_CRAMFS=m |
1286 | # CONFIG_VXFS_FS is not set | 1548 | # CONFIG_VXFS_FS is not set |
1549 | # CONFIG_MINIX_FS is not set | ||
1550 | # CONFIG_OMFS_FS is not set | ||
1287 | # CONFIG_HPFS_FS is not set | 1551 | # CONFIG_HPFS_FS is not set |
1288 | # CONFIG_QNX4FS_FS is not set | 1552 | # CONFIG_QNX4FS_FS is not set |
1553 | # CONFIG_ROMFS_FS is not set | ||
1289 | # CONFIG_SYSV_FS is not set | 1554 | # CONFIG_SYSV_FS is not set |
1290 | # CONFIG_UFS_FS is not set | 1555 | # CONFIG_UFS_FS is not set |
1291 | 1556 | CONFIG_NETWORK_FILESYSTEMS=y | |
1292 | # | ||
1293 | # Network File Systems | ||
1294 | # | ||
1295 | CONFIG_NFS_FS=m | 1557 | CONFIG_NFS_FS=m |
1296 | CONFIG_NFS_V3=y | 1558 | CONFIG_NFS_V3=y |
1297 | # CONFIG_NFS_V3_ACL is not set | 1559 | # CONFIG_NFS_V3_ACL is not set |
1298 | CONFIG_NFS_V4=y | 1560 | CONFIG_NFS_V4=y |
1299 | # CONFIG_NFS_DIRECTIO is not set | ||
1300 | # CONFIG_NFSD is not set | 1561 | # CONFIG_NFSD is not set |
1301 | CONFIG_LOCKD=m | 1562 | CONFIG_LOCKD=m |
1302 | CONFIG_LOCKD_V4=y | 1563 | CONFIG_LOCKD_V4=y |
1303 | CONFIG_NFS_COMMON=y | 1564 | CONFIG_NFS_COMMON=y |
1304 | CONFIG_SUNRPC=m | 1565 | CONFIG_SUNRPC=m |
1305 | CONFIG_SUNRPC_GSS=m | 1566 | CONFIG_SUNRPC_GSS=m |
1567 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
1306 | CONFIG_RPCSEC_GSS_KRB5=m | 1568 | CONFIG_RPCSEC_GSS_KRB5=m |
1307 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1569 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1308 | CONFIG_SMB_FS=m | 1570 | CONFIG_SMB_FS=m |
@@ -1312,7 +1574,6 @@ CONFIG_SMB_NLS_REMOTE="cp437" | |||
1312 | # CONFIG_NCP_FS is not set | 1574 | # CONFIG_NCP_FS is not set |
1313 | # CONFIG_CODA_FS is not set | 1575 | # CONFIG_CODA_FS is not set |
1314 | # CONFIG_AFS_FS is not set | 1576 | # CONFIG_AFS_FS is not set |
1315 | # CONFIG_9P_FS is not set | ||
1316 | 1577 | ||
1317 | # | 1578 | # |
1318 | # Partition Types | 1579 | # Partition Types |
@@ -1332,11 +1593,9 @@ CONFIG_MSDOS_PARTITION=y | |||
1332 | # CONFIG_SGI_PARTITION is not set | 1593 | # CONFIG_SGI_PARTITION is not set |
1333 | # CONFIG_ULTRIX_PARTITION is not set | 1594 | # CONFIG_ULTRIX_PARTITION is not set |
1334 | # CONFIG_SUN_PARTITION is not set | 1595 | # CONFIG_SUN_PARTITION is not set |
1596 | # CONFIG_KARMA_PARTITION is not set | ||
1335 | # CONFIG_EFI_PARTITION is not set | 1597 | # CONFIG_EFI_PARTITION is not set |
1336 | 1598 | # CONFIG_SYSV68_PARTITION is not set | |
1337 | # | ||
1338 | # Native Language Support | ||
1339 | # | ||
1340 | CONFIG_NLS=y | 1599 | CONFIG_NLS=y |
1341 | CONFIG_NLS_DEFAULT="cp437" | 1600 | CONFIG_NLS_DEFAULT="cp437" |
1342 | CONFIG_NLS_CODEPAGE_437=y | 1601 | CONFIG_NLS_CODEPAGE_437=y |
@@ -1377,35 +1636,71 @@ CONFIG_NLS_ISO8859_1=y | |||
1377 | # CONFIG_NLS_KOI8_R is not set | 1636 | # CONFIG_NLS_KOI8_R is not set |
1378 | # CONFIG_NLS_KOI8_U is not set | 1637 | # CONFIG_NLS_KOI8_U is not set |
1379 | CONFIG_NLS_UTF8=y | 1638 | CONFIG_NLS_UTF8=y |
1380 | 1639 | # CONFIG_DLM is not set | |
1381 | # | ||
1382 | # Profiling support | ||
1383 | # | ||
1384 | CONFIG_PROFILING=y | ||
1385 | CONFIG_OPROFILE=m | ||
1386 | 1640 | ||
1387 | # | 1641 | # |
1388 | # Kernel hacking | 1642 | # Kernel hacking |
1389 | # | 1643 | # |
1390 | # CONFIG_PRINTK_TIME is not set | 1644 | # CONFIG_PRINTK_TIME is not set |
1391 | CONFIG_DEBUG_KERNEL=y | 1645 | CONFIG_ENABLE_WARN_DEPRECATED=y |
1646 | CONFIG_ENABLE_MUST_CHECK=y | ||
1647 | CONFIG_FRAME_WARN=1024 | ||
1392 | CONFIG_MAGIC_SYSRQ=y | 1648 | CONFIG_MAGIC_SYSRQ=y |
1393 | CONFIG_LOG_BUF_SHIFT=14 | 1649 | # CONFIG_UNUSED_SYMBOLS is not set |
1650 | # CONFIG_DEBUG_FS is not set | ||
1651 | # CONFIG_HEADERS_CHECK is not set | ||
1652 | CONFIG_DEBUG_KERNEL=y | ||
1653 | # CONFIG_DEBUG_SHIRQ is not set | ||
1394 | CONFIG_DETECT_SOFTLOCKUP=y | 1654 | CONFIG_DETECT_SOFTLOCKUP=y |
1655 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | ||
1656 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | ||
1657 | CONFIG_SCHED_DEBUG=y | ||
1395 | # CONFIG_SCHEDSTATS is not set | 1658 | # CONFIG_SCHEDSTATS is not set |
1396 | # CONFIG_DEBUG_SLAB is not set | 1659 | # CONFIG_TIMER_STATS is not set |
1660 | # CONFIG_DEBUG_OBJECTS is not set | ||
1661 | # CONFIG_SLUB_DEBUG_ON is not set | ||
1662 | # CONFIG_SLUB_STATS is not set | ||
1397 | # CONFIG_DEBUG_PREEMPT is not set | 1663 | # CONFIG_DEBUG_PREEMPT is not set |
1664 | # CONFIG_DEBUG_RT_MUTEXES is not set | ||
1665 | # CONFIG_RT_MUTEX_TESTER is not set | ||
1398 | # CONFIG_DEBUG_SPINLOCK is not set | 1666 | # CONFIG_DEBUG_SPINLOCK is not set |
1667 | # CONFIG_DEBUG_MUTEXES is not set | ||
1668 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
1669 | # CONFIG_PROVE_LOCKING is not set | ||
1670 | # CONFIG_LOCK_STAT is not set | ||
1399 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1671 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1672 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | ||
1400 | # CONFIG_DEBUG_KOBJECT is not set | 1673 | # CONFIG_DEBUG_KOBJECT is not set |
1401 | CONFIG_DEBUG_BUGVERBOSE=y | 1674 | CONFIG_DEBUG_BUGVERBOSE=y |
1402 | # CONFIG_DEBUG_INFO is not set | 1675 | # CONFIG_DEBUG_INFO is not set |
1403 | # CONFIG_DEBUG_FS is not set | ||
1404 | # CONFIG_DEBUG_VM is not set | 1676 | # CONFIG_DEBUG_VM is not set |
1677 | # CONFIG_DEBUG_WRITECOUNT is not set | ||
1678 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
1679 | # CONFIG_DEBUG_LIST is not set | ||
1680 | # CONFIG_DEBUG_SG is not set | ||
1405 | CONFIG_FRAME_POINTER=y | 1681 | CONFIG_FRAME_POINTER=y |
1682 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
1406 | # CONFIG_RCU_TORTURE_TEST is not set | 1683 | # CONFIG_RCU_TORTURE_TEST is not set |
1684 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
1685 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
1686 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
1687 | # CONFIG_FAULT_INJECTION is not set | ||
1688 | # CONFIG_LATENCYTOP is not set | ||
1689 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
1690 | CONFIG_HAVE_FTRACE=y | ||
1691 | CONFIG_HAVE_DYNAMIC_FTRACE=y | ||
1692 | # CONFIG_FTRACE is not set | ||
1693 | # CONFIG_IRQSOFF_TRACER is not set | ||
1694 | # CONFIG_PREEMPT_TRACER is not set | ||
1695 | # CONFIG_SCHED_TRACER is not set | ||
1696 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
1697 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
1698 | # CONFIG_SAMPLES is not set | ||
1699 | CONFIG_HAVE_ARCH_KGDB=y | ||
1700 | # CONFIG_KGDB is not set | ||
1407 | # CONFIG_DEBUG_USER is not set | 1701 | # CONFIG_DEBUG_USER is not set |
1408 | CONFIG_DEBUG_ERRORS=y | 1702 | CONFIG_DEBUG_ERRORS=y |
1703 | # CONFIG_DEBUG_STACK_USAGE is not set | ||
1409 | CONFIG_DEBUG_LL=y | 1704 | CONFIG_DEBUG_LL=y |
1410 | # CONFIG_DEBUG_ICEDCC is not set | 1705 | # CONFIG_DEBUG_ICEDCC is not set |
1411 | 1706 | ||
@@ -1414,46 +1709,113 @@ CONFIG_DEBUG_LL=y | |||
1414 | # | 1709 | # |
1415 | # CONFIG_KEYS is not set | 1710 | # CONFIG_KEYS is not set |
1416 | # CONFIG_SECURITY is not set | 1711 | # CONFIG_SECURITY is not set |
1712 | # CONFIG_SECURITYFS is not set | ||
1713 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
1714 | CONFIG_CRYPTO=y | ||
1417 | 1715 | ||
1418 | # | 1716 | # |
1419 | # Cryptographic options | 1717 | # Crypto core or helper |
1420 | # | 1718 | # |
1421 | CONFIG_CRYPTO=y | 1719 | # CONFIG_CRYPTO_FIPS is not set |
1422 | CONFIG_CRYPTO_HMAC=y | 1720 | CONFIG_CRYPTO_ALGAPI=y |
1721 | CONFIG_CRYPTO_AEAD=y | ||
1722 | CONFIG_CRYPTO_BLKCIPHER=y | ||
1723 | CONFIG_CRYPTO_HASH=y | ||
1724 | CONFIG_CRYPTO_RNG=y | ||
1725 | CONFIG_CRYPTO_MANAGER=y | ||
1726 | # CONFIG_CRYPTO_GF128MUL is not set | ||
1423 | CONFIG_CRYPTO_NULL=m | 1727 | CONFIG_CRYPTO_NULL=m |
1728 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1729 | CONFIG_CRYPTO_AUTHENC=m | ||
1730 | CONFIG_CRYPTO_TEST=m | ||
1731 | |||
1732 | # | ||
1733 | # Authenticated Encryption with Associated Data | ||
1734 | # | ||
1735 | # CONFIG_CRYPTO_CCM is not set | ||
1736 | # CONFIG_CRYPTO_GCM is not set | ||
1737 | # CONFIG_CRYPTO_SEQIV is not set | ||
1738 | |||
1739 | # | ||
1740 | # Block modes | ||
1741 | # | ||
1742 | CONFIG_CRYPTO_CBC=m | ||
1743 | # CONFIG_CRYPTO_CTR is not set | ||
1744 | # CONFIG_CRYPTO_CTS is not set | ||
1745 | CONFIG_CRYPTO_ECB=m | ||
1746 | # CONFIG_CRYPTO_LRW is not set | ||
1747 | # CONFIG_CRYPTO_PCBC is not set | ||
1748 | # CONFIG_CRYPTO_XTS is not set | ||
1749 | |||
1750 | # | ||
1751 | # Hash modes | ||
1752 | # | ||
1753 | CONFIG_CRYPTO_HMAC=y | ||
1754 | # CONFIG_CRYPTO_XCBC is not set | ||
1755 | |||
1756 | # | ||
1757 | # Digest | ||
1758 | # | ||
1759 | CONFIG_CRYPTO_CRC32C=m | ||
1424 | CONFIG_CRYPTO_MD4=m | 1760 | CONFIG_CRYPTO_MD4=m |
1425 | CONFIG_CRYPTO_MD5=m | 1761 | CONFIG_CRYPTO_MD5=m |
1762 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
1763 | # CONFIG_CRYPTO_RMD128 is not set | ||
1764 | # CONFIG_CRYPTO_RMD160 is not set | ||
1765 | # CONFIG_CRYPTO_RMD256 is not set | ||
1766 | # CONFIG_CRYPTO_RMD320 is not set | ||
1426 | CONFIG_CRYPTO_SHA1=m | 1767 | CONFIG_CRYPTO_SHA1=m |
1427 | CONFIG_CRYPTO_SHA256=m | 1768 | CONFIG_CRYPTO_SHA256=m |
1428 | CONFIG_CRYPTO_SHA512=m | 1769 | CONFIG_CRYPTO_SHA512=m |
1429 | CONFIG_CRYPTO_WP512=m | ||
1430 | # CONFIG_CRYPTO_TGR192 is not set | 1770 | # CONFIG_CRYPTO_TGR192 is not set |
1431 | CONFIG_CRYPTO_DES=m | 1771 | CONFIG_CRYPTO_WP512=m |
1432 | CONFIG_CRYPTO_BLOWFISH=m | 1772 | |
1433 | CONFIG_CRYPTO_TWOFISH=m | 1773 | # |
1434 | CONFIG_CRYPTO_SERPENT=m | 1774 | # Ciphers |
1775 | # | ||
1435 | CONFIG_CRYPTO_AES=m | 1776 | CONFIG_CRYPTO_AES=m |
1777 | CONFIG_CRYPTO_ANUBIS=m | ||
1778 | CONFIG_CRYPTO_ARC4=m | ||
1779 | CONFIG_CRYPTO_BLOWFISH=m | ||
1780 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1436 | CONFIG_CRYPTO_CAST5=m | 1781 | CONFIG_CRYPTO_CAST5=m |
1437 | CONFIG_CRYPTO_CAST6=m | 1782 | CONFIG_CRYPTO_CAST6=m |
1438 | CONFIG_CRYPTO_TEA=m | 1783 | CONFIG_CRYPTO_DES=m |
1439 | CONFIG_CRYPTO_ARC4=m | 1784 | # CONFIG_CRYPTO_FCRYPT is not set |
1440 | CONFIG_CRYPTO_KHAZAD=m | 1785 | CONFIG_CRYPTO_KHAZAD=m |
1441 | CONFIG_CRYPTO_ANUBIS=m | 1786 | # CONFIG_CRYPTO_SALSA20 is not set |
1787 | # CONFIG_CRYPTO_SEED is not set | ||
1788 | CONFIG_CRYPTO_SERPENT=m | ||
1789 | CONFIG_CRYPTO_TEA=m | ||
1790 | CONFIG_CRYPTO_TWOFISH=m | ||
1791 | CONFIG_CRYPTO_TWOFISH_COMMON=m | ||
1792 | |||
1793 | # | ||
1794 | # Compression | ||
1795 | # | ||
1442 | CONFIG_CRYPTO_DEFLATE=m | 1796 | CONFIG_CRYPTO_DEFLATE=m |
1443 | CONFIG_CRYPTO_MICHAEL_MIC=m | 1797 | # CONFIG_CRYPTO_LZO is not set |
1444 | CONFIG_CRYPTO_CRC32C=m | ||
1445 | CONFIG_CRYPTO_TEST=m | ||
1446 | 1798 | ||
1447 | # | 1799 | # |
1448 | # Hardware crypto devices | 1800 | # Random Number Generation |
1449 | # | 1801 | # |
1802 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
1803 | CONFIG_CRYPTO_HW=y | ||
1450 | 1804 | ||
1451 | # | 1805 | # |
1452 | # Library routines | 1806 | # Library routines |
1453 | # | 1807 | # |
1808 | CONFIG_BITREVERSE=y | ||
1454 | CONFIG_CRC_CCITT=y | 1809 | CONFIG_CRC_CCITT=y |
1455 | # CONFIG_CRC16 is not set | 1810 | # CONFIG_CRC16 is not set |
1811 | # CONFIG_CRC_T10DIF is not set | ||
1812 | # CONFIG_CRC_ITU_T is not set | ||
1456 | CONFIG_CRC32=y | 1813 | CONFIG_CRC32=y |
1814 | # CONFIG_CRC7 is not set | ||
1457 | CONFIG_LIBCRC32C=m | 1815 | CONFIG_LIBCRC32C=m |
1458 | CONFIG_ZLIB_INFLATE=y | 1816 | CONFIG_ZLIB_INFLATE=y |
1459 | CONFIG_ZLIB_DEFLATE=y | 1817 | CONFIG_ZLIB_DEFLATE=y |
1818 | CONFIG_PLIST=y | ||
1819 | CONFIG_HAS_IOMEM=y | ||
1820 | CONFIG_HAS_IOPORT=y | ||
1821 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/arm/configs/trizeps4_defconfig b/arch/arm/configs/trizeps4_defconfig index 8b7a431a8bfc..9033d147f052 100644 --- a/arch/arm/configs/trizeps4_defconfig +++ b/arch/arm/configs/trizeps4_defconfig | |||
@@ -147,6 +147,7 @@ CONFIG_ARCH_PXA=y | |||
147 | # CONFIG_MACH_MAINSTONE is not set | 147 | # CONFIG_MACH_MAINSTONE is not set |
148 | # CONFIG_ARCH_PXA_IDP is not set | 148 | # CONFIG_ARCH_PXA_IDP is not set |
149 | # CONFIG_PXA_SHARPSL is not set | 149 | # CONFIG_PXA_SHARPSL is not set |
150 | CONFIG_TRIZEPS_PXA=y | ||
150 | CONFIG_MACH_TRIZEPS4=y | 151 | CONFIG_MACH_TRIZEPS4=y |
151 | CONFIG_MACH_TRIZEPS4_CONXS=y | 152 | CONFIG_MACH_TRIZEPS4_CONXS=y |
152 | # CONFIG_MACH_TRIZEPS4_ANY is not set | 153 | # CONFIG_MACH_TRIZEPS4_ANY is not set |
diff --git a/arch/arm/include/asm/div64.h b/arch/arm/include/asm/div64.h index 5001390be958..d3f0a9eee9f6 100644 --- a/arch/arm/include/asm/div64.h +++ b/arch/arm/include/asm/div64.h | |||
@@ -165,7 +165,7 @@ | |||
165 | __res = __m; \ | 165 | __res = __m; \ |
166 | asm ( "umlal %Q0, %R0, %Q1, %Q2\n\t" \ | 166 | asm ( "umlal %Q0, %R0, %Q1, %Q2\n\t" \ |
167 | "mov %Q0, #0" \ | 167 | "mov %Q0, #0" \ |
168 | : "+r" (__res) \ | 168 | : "+&r" (__res) \ |
169 | : "r" (__m), "r" (__n) \ | 169 | : "r" (__m), "r" (__n) \ |
170 | : "cc" ); \ | 170 | : "cc" ); \ |
171 | } else { \ | 171 | } else { \ |
@@ -182,7 +182,7 @@ | |||
182 | "umlal %R0, %Q0, %Q1, %R2\n\t" \ | 182 | "umlal %R0, %Q0, %Q1, %R2\n\t" \ |
183 | "mov %R0, #0\n\t" \ | 183 | "mov %R0, #0\n\t" \ |
184 | "umlal %Q0, %R0, %R1, %R2" \ | 184 | "umlal %Q0, %R0, %R1, %R2" \ |
185 | : "+r" (__res) \ | 185 | : "+&r" (__res) \ |
186 | : "r" (__m), "r" (__n) \ | 186 | : "r" (__m), "r" (__n) \ |
187 | : "cc" ); \ | 187 | : "cc" ); \ |
188 | } else { \ | 188 | } else { \ |
@@ -192,7 +192,7 @@ | |||
192 | "adds %Q0, %1, %Q0\n\t" \ | 192 | "adds %Q0, %1, %Q0\n\t" \ |
193 | "adc %R0, %R0, #0\n\t" \ | 193 | "adc %R0, %R0, #0\n\t" \ |
194 | "umlal %Q0, %R0, %R2, %R3" \ | 194 | "umlal %Q0, %R0, %R2, %R3" \ |
195 | : "+r" (__res), "+r" (__z) \ | 195 | : "+&r" (__res), "+&r" (__z) \ |
196 | : "r" (__m), "r" (__n) \ | 196 | : "r" (__m), "r" (__n) \ |
197 | : "cc" ); \ | 197 | : "cc" ); \ |
198 | } \ | 198 | } \ |
diff --git a/arch/arm/mach-at91/gpio.c b/arch/arm/mach-at91/gpio.c index 7e5ebb5bdd17..9b0447c3d59b 100644 --- a/arch/arm/mach-at91/gpio.c +++ b/arch/arm/mach-at91/gpio.c | |||
@@ -404,6 +404,7 @@ static void gpio_irq_handler(unsigned irq, struct irq_desc *desc) | |||
404 | } | 404 | } |
405 | 405 | ||
406 | pin = bank->chipbase; | 406 | pin = bank->chipbase; |
407 | gpio = &irq_desc[pin]; | ||
407 | 408 | ||
408 | while (isr) { | 409 | while (isr) { |
409 | if (isr & 1) { | 410 | if (isr & 1) { |
diff --git a/arch/arm/mach-clps711x/include/mach/memory.h b/arch/arm/mach-clps711x/include/mach/memory.h index 71c2fa70c8e8..98ec30c97bbe 100644 --- a/arch/arm/mach-clps711x/include/mach/memory.h +++ b/arch/arm/mach-clps711x/include/mach/memory.h | |||
@@ -89,6 +89,8 @@ | |||
89 | * node 3: 0xd8000000 - 0xdfffffff | 89 | * node 3: 0xd8000000 - 0xdfffffff |
90 | */ | 90 | */ |
91 | #define NODE_MEM_SIZE_BITS 24 | 91 | #define NODE_MEM_SIZE_BITS 24 |
92 | #define SECTION_SIZE_BITS 24 | ||
93 | #define MAX_PHYSMEM_BITS 32 | ||
92 | 94 | ||
93 | #endif | 95 | #endif |
94 | 96 | ||
diff --git a/arch/arm/mach-ixp4xx/Kconfig b/arch/arm/mach-ixp4xx/Kconfig index db8b5fe06c0d..2c5a02b8520e 100644 --- a/arch/arm/mach-ixp4xx/Kconfig +++ b/arch/arm/mach-ixp4xx/Kconfig | |||
@@ -167,11 +167,6 @@ config MACH_GTWX5715 | |||
167 | 167 | ||
168 | comment "IXP4xx Options" | 168 | comment "IXP4xx Options" |
169 | 169 | ||
170 | config DMABOUNCE | ||
171 | bool | ||
172 | default y | ||
173 | depends on PCI | ||
174 | |||
175 | config IXP4XX_INDIRECT_PCI | 170 | config IXP4XX_INDIRECT_PCI |
176 | bool "Use indirect PCI memory access" | 171 | bool "Use indirect PCI memory access" |
177 | depends on PCI | 172 | depends on PCI |
diff --git a/arch/arm/mach-kirkwood/Makefile b/arch/arm/mach-kirkwood/Makefile index e14bf40bfb07..b96c55dad343 100644 --- a/arch/arm/mach-kirkwood/Makefile +++ b/arch/arm/mach-kirkwood/Makefile | |||
@@ -2,4 +2,4 @@ obj-y += common.o addr-map.o irq.o pcie.o | |||
2 | 2 | ||
3 | obj-$(CONFIG_MACH_DB88F6281_BP) += db88f6281-bp-setup.o | 3 | obj-$(CONFIG_MACH_DB88F6281_BP) += db88f6281-bp-setup.o |
4 | obj-$(CONFIG_MACH_RD88F6192_NAS) += rd88f6192-nas-setup.o | 4 | obj-$(CONFIG_MACH_RD88F6192_NAS) += rd88f6192-nas-setup.o |
5 | obj-$(CONFIG_MACH_RD88F6192_NAS) += rd88f6281-setup.o | 5 | obj-$(CONFIG_MACH_RD88F6281) += rd88f6281-setup.o |
diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c index 85cad05d8c5b..0bb1fbd84ccb 100644 --- a/arch/arm/mach-kirkwood/common.c +++ b/arch/arm/mach-kirkwood/common.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/mv643xx_eth.h> | 16 | #include <linux/mv643xx_eth.h> |
17 | #include <linux/ata_platform.h> | 17 | #include <linux/ata_platform.h> |
18 | #include <linux/spi/orion_spi.h> | 18 | #include <linux/spi/orion_spi.h> |
19 | #include <net/dsa.h> | ||
19 | #include <asm/page.h> | 20 | #include <asm/page.h> |
20 | #include <asm/timex.h> | 21 | #include <asm/timex.h> |
21 | #include <asm/mach/map.h> | 22 | #include <asm/mach/map.h> |
@@ -152,6 +153,40 @@ void __init kirkwood_ge00_init(struct mv643xx_eth_platform_data *eth_data) | |||
152 | 153 | ||
153 | 154 | ||
154 | /***************************************************************************** | 155 | /***************************************************************************** |
156 | * Ethernet switch | ||
157 | ****************************************************************************/ | ||
158 | static struct resource kirkwood_switch_resources[] = { | ||
159 | { | ||
160 | .start = 0, | ||
161 | .end = 0, | ||
162 | .flags = IORESOURCE_IRQ, | ||
163 | }, | ||
164 | }; | ||
165 | |||
166 | static struct platform_device kirkwood_switch_device = { | ||
167 | .name = "dsa", | ||
168 | .id = 0, | ||
169 | .num_resources = 0, | ||
170 | .resource = kirkwood_switch_resources, | ||
171 | }; | ||
172 | |||
173 | void __init kirkwood_ge00_switch_init(struct dsa_platform_data *d, int irq) | ||
174 | { | ||
175 | if (irq != NO_IRQ) { | ||
176 | kirkwood_switch_resources[0].start = irq; | ||
177 | kirkwood_switch_resources[0].end = irq; | ||
178 | kirkwood_switch_device.num_resources = 1; | ||
179 | } | ||
180 | |||
181 | d->mii_bus = &kirkwood_ge00_shared.dev; | ||
182 | d->netdev = &kirkwood_ge00.dev; | ||
183 | kirkwood_switch_device.dev.platform_data = d; | ||
184 | |||
185 | platform_device_register(&kirkwood_switch_device); | ||
186 | } | ||
187 | |||
188 | |||
189 | /***************************************************************************** | ||
155 | * SoC RTC | 190 | * SoC RTC |
156 | ****************************************************************************/ | 191 | ****************************************************************************/ |
157 | static struct resource kirkwood_rtc_resource = { | 192 | static struct resource kirkwood_rtc_resource = { |
diff --git a/arch/arm/mach-kirkwood/common.h b/arch/arm/mach-kirkwood/common.h index 8fa0f6a27635..5774632a67e3 100644 --- a/arch/arm/mach-kirkwood/common.h +++ b/arch/arm/mach-kirkwood/common.h | |||
@@ -11,6 +11,7 @@ | |||
11 | #ifndef __ARCH_KIRKWOOD_COMMON_H | 11 | #ifndef __ARCH_KIRKWOOD_COMMON_H |
12 | #define __ARCH_KIRKWOOD_COMMON_H | 12 | #define __ARCH_KIRKWOOD_COMMON_H |
13 | 13 | ||
14 | struct dsa_platform_data; | ||
14 | struct mv643xx_eth_platform_data; | 15 | struct mv643xx_eth_platform_data; |
15 | struct mv_sata_platform_data; | 16 | struct mv_sata_platform_data; |
16 | 17 | ||
@@ -29,6 +30,7 @@ void kirkwood_pcie_id(u32 *dev, u32 *rev); | |||
29 | 30 | ||
30 | void kirkwood_ehci_init(void); | 31 | void kirkwood_ehci_init(void); |
31 | void kirkwood_ge00_init(struct mv643xx_eth_platform_data *eth_data); | 32 | void kirkwood_ge00_init(struct mv643xx_eth_platform_data *eth_data); |
33 | void kirkwood_ge00_switch_init(struct dsa_platform_data *d, int irq); | ||
32 | void kirkwood_pcie_init(void); | 34 | void kirkwood_pcie_init(void); |
33 | void kirkwood_rtc_init(void); | 35 | void kirkwood_rtc_init(void); |
34 | void kirkwood_sata_init(struct mv_sata_platform_data *sata_data); | 36 | void kirkwood_sata_init(struct mv_sata_platform_data *sata_data); |
diff --git a/arch/arm/mach-kirkwood/rd88f6281-setup.c b/arch/arm/mach-kirkwood/rd88f6281-setup.c index f785093e433f..175054abd630 100644 --- a/arch/arm/mach-kirkwood/rd88f6281-setup.c +++ b/arch/arm/mach-kirkwood/rd88f6281-setup.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/ata_platform.h> | 19 | #include <linux/ata_platform.h> |
20 | #include <linux/mv643xx_eth.h> | 20 | #include <linux/mv643xx_eth.h> |
21 | #include <linux/ethtool.h> | 21 | #include <linux/ethtool.h> |
22 | #include <net/dsa.h> | ||
22 | #include <asm/mach-types.h> | 23 | #include <asm/mach-types.h> |
23 | #include <asm/mach/arch.h> | 24 | #include <asm/mach/arch.h> |
24 | #include <asm/mach/pci.h> | 25 | #include <asm/mach/pci.h> |
@@ -74,6 +75,15 @@ static struct mv643xx_eth_platform_data rd88f6281_ge00_data = { | |||
74 | .duplex = DUPLEX_FULL, | 75 | .duplex = DUPLEX_FULL, |
75 | }; | 76 | }; |
76 | 77 | ||
78 | static struct dsa_platform_data rd88f6281_switch_data = { | ||
79 | .port_names[0] = "lan1", | ||
80 | .port_names[1] = "lan2", | ||
81 | .port_names[2] = "lan3", | ||
82 | .port_names[3] = "lan4", | ||
83 | .port_names[4] = "wan", | ||
84 | .port_names[5] = "cpu", | ||
85 | }; | ||
86 | |||
77 | static struct mv_sata_platform_data rd88f6281_sata_data = { | 87 | static struct mv_sata_platform_data rd88f6281_sata_data = { |
78 | .n_ports = 2, | 88 | .n_ports = 2, |
79 | }; | 89 | }; |
@@ -87,6 +97,7 @@ static void __init rd88f6281_init(void) | |||
87 | 97 | ||
88 | kirkwood_ehci_init(); | 98 | kirkwood_ehci_init(); |
89 | kirkwood_ge00_init(&rd88f6281_ge00_data); | 99 | kirkwood_ge00_init(&rd88f6281_ge00_data); |
100 | kirkwood_ge00_switch_init(&rd88f6281_switch_data, NO_IRQ); | ||
90 | kirkwood_rtc_init(); | 101 | kirkwood_rtc_init(); |
91 | kirkwood_sata_init(&rd88f6281_sata_data); | 102 | kirkwood_sata_init(&rd88f6281_sata_data); |
92 | kirkwood_uart0_init(); | 103 | kirkwood_uart0_init(); |
diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig index 3553babbbf05..d140abca690a 100644 --- a/arch/arm/mach-msm/Kconfig +++ b/arch/arm/mach-msm/Kconfig | |||
@@ -1,18 +1,13 @@ | |||
1 | if ARCH_MSM7X00A | 1 | if ARCH_MSM |
2 | 2 | ||
3 | comment "MSM7X00A Board Type" | 3 | comment "MSM Board Type" |
4 | depends on ARCH_MSM7X00A | 4 | depends on ARCH_MSM |
5 | 5 | ||
6 | config MACH_HALIBUT | 6 | config MACH_HALIBUT |
7 | depends on ARCH_MSM7X00A | 7 | depends on ARCH_MSM |
8 | default y | 8 | default y |
9 | bool "Halibut Board (QCT SURF7200A)" | 9 | bool "Halibut Board (QCT SURF7201A)" |
10 | help | 10 | help |
11 | Support for the Qualcomm SURF7200A eval board. | 11 | Support for the Qualcomm SURF7201A eval board. |
12 | |||
13 | config MSM7X00A_IDLE | ||
14 | depends on ARCH_MSM7X00A | ||
15 | default y | ||
16 | bool "Idle Support for MSM7X00A" | ||
17 | 12 | ||
18 | endif | 13 | endif |
diff --git a/arch/arm/mach-msm/Makefile b/arch/arm/mach-msm/Makefile index d12f23655850..1aa47001aa3b 100644 --- a/arch/arm/mach-msm/Makefile +++ b/arch/arm/mach-msm/Makefile | |||
@@ -1,7 +1,8 @@ | |||
1 | obj-y += io.o idle.o irq.o timer.o dma.o | 1 | obj-y += io.o idle.o irq.o timer.o dma.o |
2 | 2 | obj-y += devices.o | |
3 | # Common code for board init | 3 | obj-y += proc_comm.o |
4 | obj-y += common.o | 4 | obj-y += vreg.o |
5 | obj-y += clock.o clock-7x01a.o | ||
5 | 6 | ||
6 | obj-$(CONFIG_MACH_HALIBUT) += board-halibut.o | 7 | obj-$(CONFIG_MACH_HALIBUT) += board-halibut.o |
7 | 8 | ||
diff --git a/arch/arm/mach-msm/board-halibut.c b/arch/arm/mach-msm/board-halibut.c index a24259133e07..c2a96e3965a6 100644 --- a/arch/arm/mach-msm/board-halibut.c +++ b/arch/arm/mach-msm/board-halibut.c | |||
@@ -33,6 +33,8 @@ | |||
33 | #include <linux/mtd/nand.h> | 33 | #include <linux/mtd/nand.h> |
34 | #include <linux/mtd/partitions.h> | 34 | #include <linux/mtd/partitions.h> |
35 | 35 | ||
36 | #include "devices.h" | ||
37 | |||
36 | static struct resource smc91x_resources[] = { | 38 | static struct resource smc91x_resources[] = { |
37 | [0] = { | 39 | [0] = { |
38 | .start = 0x9C004300, | 40 | .start = 0x9C004300, |
@@ -53,31 +55,12 @@ static struct platform_device smc91x_device = { | |||
53 | .resource = smc91x_resources, | 55 | .resource = smc91x_resources, |
54 | }; | 56 | }; |
55 | 57 | ||
56 | static void mddi0_panel_power(int on) | ||
57 | { | ||
58 | } | ||
59 | |||
60 | static struct msm_mddi_platform_data msm_mddi0_pdata = { | ||
61 | .panel_power = mddi0_panel_power, | ||
62 | .has_vsync_irq = 0, | ||
63 | }; | ||
64 | |||
65 | static struct platform_device msm_mddi0_device = { | ||
66 | .name = "msm_mddi", | ||
67 | .id = 0, | ||
68 | .dev = { | ||
69 | .platform_data = &msm_mddi0_pdata | ||
70 | }, | ||
71 | }; | ||
72 | |||
73 | static struct platform_device msm_serial0_device = { | ||
74 | .name = "msm_serial", | ||
75 | .id = 0, | ||
76 | }; | ||
77 | |||
78 | static struct platform_device *devices[] __initdata = { | 58 | static struct platform_device *devices[] __initdata = { |
79 | &msm_serial0_device, | 59 | &msm_device_uart3, |
80 | &msm_mddi0_device, | 60 | &msm_device_smd, |
61 | &msm_device_nand, | ||
62 | &msm_device_hsusb, | ||
63 | &msm_device_i2c, | ||
81 | &smc91x_device, | 64 | &smc91x_device, |
82 | }; | 65 | }; |
83 | 66 | ||
@@ -91,20 +74,15 @@ static void __init halibut_init_irq(void) | |||
91 | static void __init halibut_init(void) | 74 | static void __init halibut_init(void) |
92 | { | 75 | { |
93 | platform_add_devices(devices, ARRAY_SIZE(devices)); | 76 | platform_add_devices(devices, ARRAY_SIZE(devices)); |
94 | msm_add_devices(); | ||
95 | } | 77 | } |
96 | 78 | ||
97 | static void __init halibut_map_io(void) | 79 | static void __init halibut_map_io(void) |
98 | { | 80 | { |
99 | msm_map_common_io(); | 81 | msm_map_common_io(); |
82 | msm_clock_init(); | ||
100 | } | 83 | } |
101 | 84 | ||
102 | MACHINE_START(HALIBUT, "Halibut Board (QCT SURF7200A)") | 85 | MACHINE_START(HALIBUT, "Halibut Board (QCT SURF7200A)") |
103 | |||
104 | /* UART for LL DEBUG */ | ||
105 | .phys_io = MSM_UART1_PHYS, | ||
106 | .io_pg_offst = ((MSM_UART1_BASE) >> 18) & 0xfffc, | ||
107 | |||
108 | .boot_params = 0x10000100, | 86 | .boot_params = 0x10000100, |
109 | .map_io = halibut_map_io, | 87 | .map_io = halibut_map_io, |
110 | .init_irq = halibut_init_irq, | 88 | .init_irq = halibut_init_irq, |
diff --git a/arch/arm/mach-msm/clock-7x01a.c b/arch/arm/mach-msm/clock-7x01a.c new file mode 100644 index 000000000000..62230a3428ee --- /dev/null +++ b/arch/arm/mach-msm/clock-7x01a.c | |||
@@ -0,0 +1,126 @@ | |||
1 | /* arch/arm/mach-msm/clock-7x01a.c | ||
2 | * | ||
3 | * Clock tables for MSM7X01A | ||
4 | * | ||
5 | * Copyright (C) 2007 Google, Inc. | ||
6 | * Copyright (c) 2007 QUALCOMM Incorporated | ||
7 | * | ||
8 | * This software is licensed under the terms of the GNU General Public | ||
9 | * License version 2, as published by the Free Software Foundation, and | ||
10 | * may be copied, distributed, and modified under those terms. | ||
11 | * | ||
12 | * This program is distributed in the hope that it will be useful, | ||
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | * GNU General Public License for more details. | ||
16 | * | ||
17 | */ | ||
18 | |||
19 | #include <linux/kernel.h> | ||
20 | #include <linux/platform_device.h> | ||
21 | |||
22 | #include "clock.h" | ||
23 | #include "devices.h" | ||
24 | |||
25 | /* clock IDs used by the modem processor */ | ||
26 | |||
27 | #define ACPU_CLK 0 /* Applications processor clock */ | ||
28 | #define ADM_CLK 1 /* Applications data mover clock */ | ||
29 | #define ADSP_CLK 2 /* ADSP clock */ | ||
30 | #define EBI1_CLK 3 /* External bus interface 1 clock */ | ||
31 | #define EBI2_CLK 4 /* External bus interface 2 clock */ | ||
32 | #define ECODEC_CLK 5 /* External CODEC clock */ | ||
33 | #define EMDH_CLK 6 /* External MDDI host clock */ | ||
34 | #define GP_CLK 7 /* General purpose clock */ | ||
35 | #define GRP_CLK 8 /* Graphics clock */ | ||
36 | #define I2C_CLK 9 /* I2C clock */ | ||
37 | #define ICODEC_RX_CLK 10 /* Internal CODEX RX clock */ | ||
38 | #define ICODEC_TX_CLK 11 /* Internal CODEX TX clock */ | ||
39 | #define IMEM_CLK 12 /* Internal graphics memory clock */ | ||
40 | #define MDC_CLK 13 /* MDDI client clock */ | ||
41 | #define MDP_CLK 14 /* Mobile display processor clock */ | ||
42 | #define PBUS_CLK 15 /* Peripheral bus clock */ | ||
43 | #define PCM_CLK 16 /* PCM clock */ | ||
44 | #define PMDH_CLK 17 /* Primary MDDI host clock */ | ||
45 | #define SDAC_CLK 18 /* Stereo DAC clock */ | ||
46 | #define SDC1_CLK 19 /* Secure Digital Card clocks */ | ||
47 | #define SDC1_PCLK 20 | ||
48 | #define SDC2_CLK 21 | ||
49 | #define SDC2_PCLK 22 | ||
50 | #define SDC3_CLK 23 | ||
51 | #define SDC3_PCLK 24 | ||
52 | #define SDC4_CLK 25 | ||
53 | #define SDC4_PCLK 26 | ||
54 | #define TSIF_CLK 27 /* Transport Stream Interface clocks */ | ||
55 | #define TSIF_REF_CLK 28 | ||
56 | #define TV_DAC_CLK 29 /* TV clocks */ | ||
57 | #define TV_ENC_CLK 30 | ||
58 | #define UART1_CLK 31 /* UART clocks */ | ||
59 | #define UART2_CLK 32 | ||
60 | #define UART3_CLK 33 | ||
61 | #define UART1DM_CLK 34 | ||
62 | #define UART2DM_CLK 35 | ||
63 | #define USB_HS_CLK 36 /* High speed USB core clock */ | ||
64 | #define USB_HS_PCLK 37 /* High speed USB pbus clock */ | ||
65 | #define USB_OTG_CLK 38 /* Full speed USB clock */ | ||
66 | #define VDC_CLK 39 /* Video controller clock */ | ||
67 | #define VFE_CLK 40 /* Camera / Video Front End clock */ | ||
68 | #define VFE_MDC_CLK 41 /* VFE MDDI client clock */ | ||
69 | |||
70 | #define NR_CLKS 42 | ||
71 | |||
72 | #define CLOCK(clk_name, clk_id, clk_dev, clk_flags) { \ | ||
73 | .name = clk_name, \ | ||
74 | .id = clk_id, \ | ||
75 | .flags = clk_flags, \ | ||
76 | .dev = clk_dev, \ | ||
77 | } | ||
78 | |||
79 | #define OFF CLKFLAG_AUTO_OFF | ||
80 | #define MINMAX CLKFLAG_USE_MIN_MAX_TO_SET | ||
81 | |||
82 | struct clk msm_clocks[] = { | ||
83 | CLOCK("adm_clk", ADM_CLK, NULL, 0), | ||
84 | CLOCK("adsp_clk", ADSP_CLK, NULL, 0), | ||
85 | CLOCK("ebi1_clk", EBI1_CLK, NULL, 0), | ||
86 | CLOCK("ebi2_clk", EBI2_CLK, NULL, 0), | ||
87 | CLOCK("ecodec_clk", ECODEC_CLK, NULL, 0), | ||
88 | CLOCK("emdh_clk", EMDH_CLK, NULL, OFF), | ||
89 | CLOCK("gp_clk", GP_CLK, NULL, 0), | ||
90 | CLOCK("grp_clk", GRP_CLK, NULL, OFF), | ||
91 | CLOCK("i2c_clk", I2C_CLK, &msm_device_i2c.dev, 0), | ||
92 | CLOCK("icodec_rx_clk", ICODEC_RX_CLK, NULL, 0), | ||
93 | CLOCK("icodec_tx_clk", ICODEC_TX_CLK, NULL, 0), | ||
94 | CLOCK("imem_clk", IMEM_CLK, NULL, OFF), | ||
95 | CLOCK("mdc_clk", MDC_CLK, NULL, 0), | ||
96 | CLOCK("mdp_clk", MDP_CLK, NULL, OFF), | ||
97 | CLOCK("pbus_clk", PBUS_CLK, NULL, 0), | ||
98 | CLOCK("pcm_clk", PCM_CLK, NULL, 0), | ||
99 | CLOCK("pmdh_clk", PMDH_CLK, NULL, OFF | MINMAX), | ||
100 | CLOCK("sdac_clk", SDAC_CLK, NULL, OFF), | ||
101 | CLOCK("sdc_clk", SDC1_CLK, &msm_device_sdc1.dev, OFF), | ||
102 | CLOCK("sdc_pclk", SDC1_PCLK, &msm_device_sdc1.dev, OFF), | ||
103 | CLOCK("sdc_clk", SDC2_CLK, &msm_device_sdc2.dev, OFF), | ||
104 | CLOCK("sdc_pclk", SDC2_PCLK, &msm_device_sdc2.dev, OFF), | ||
105 | CLOCK("sdc_clk", SDC3_CLK, &msm_device_sdc3.dev, OFF), | ||
106 | CLOCK("sdc_pclk", SDC3_PCLK, &msm_device_sdc3.dev, OFF), | ||
107 | CLOCK("sdc_clk", SDC4_CLK, &msm_device_sdc4.dev, OFF), | ||
108 | CLOCK("sdc_pclk", SDC4_PCLK, &msm_device_sdc4.dev, OFF), | ||
109 | CLOCK("tsif_clk", TSIF_CLK, NULL, 0), | ||
110 | CLOCK("tsif_ref_clk", TSIF_REF_CLK, NULL, 0), | ||
111 | CLOCK("tv_dac_clk", TV_DAC_CLK, NULL, 0), | ||
112 | CLOCK("tv_enc_clk", TV_ENC_CLK, NULL, 0), | ||
113 | CLOCK("uart_clk", UART1_CLK, &msm_device_uart1.dev, OFF), | ||
114 | CLOCK("uart_clk", UART2_CLK, &msm_device_uart2.dev, 0), | ||
115 | CLOCK("uart_clk", UART3_CLK, &msm_device_uart3.dev, OFF), | ||
116 | CLOCK("uart1dm_clk", UART1DM_CLK, NULL, OFF), | ||
117 | CLOCK("uart2dm_clk", UART2DM_CLK, NULL, 0), | ||
118 | CLOCK("usb_hs_clk", USB_HS_CLK, &msm_device_hsusb.dev, OFF), | ||
119 | CLOCK("usb_hs_pclk", USB_HS_PCLK, &msm_device_hsusb.dev, OFF), | ||
120 | CLOCK("usb_otg_clk", USB_OTG_CLK, NULL, 0), | ||
121 | CLOCK("vdc_clk", VDC_CLK, NULL, OFF | MINMAX), | ||
122 | CLOCK("vfe_clk", VFE_CLK, NULL, OFF), | ||
123 | CLOCK("vfe_mdc_clk", VFE_MDC_CLK, NULL, OFF), | ||
124 | }; | ||
125 | |||
126 | unsigned msm_num_clocks = ARRAY_SIZE(msm_clocks); | ||
diff --git a/arch/arm/mach-msm/clock.c b/arch/arm/mach-msm/clock.c new file mode 100644 index 000000000000..3b1ce36f1032 --- /dev/null +++ b/arch/arm/mach-msm/clock.c | |||
@@ -0,0 +1,218 @@ | |||
1 | /* arch/arm/mach-msm/clock.c | ||
2 | * | ||
3 | * Copyright (C) 2007 Google, Inc. | ||
4 | * Copyright (c) 2007 QUALCOMM Incorporated | ||
5 | * | ||
6 | * This software is licensed under the terms of the GNU General Public | ||
7 | * License version 2, as published by the Free Software Foundation, and | ||
8 | * may be copied, distributed, and modified under those terms. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | * | ||
15 | */ | ||
16 | |||
17 | #include <linux/version.h> | ||
18 | #include <linux/kernel.h> | ||
19 | #include <linux/init.h> | ||
20 | #include <linux/module.h> | ||
21 | #include <linux/list.h> | ||
22 | #include <linux/err.h> | ||
23 | #include <linux/clk.h> | ||
24 | #include <linux/spinlock.h> | ||
25 | |||
26 | #include "clock.h" | ||
27 | #include "proc_comm.h" | ||
28 | |||
29 | static DEFINE_MUTEX(clocks_mutex); | ||
30 | static DEFINE_SPINLOCK(clocks_lock); | ||
31 | static LIST_HEAD(clocks); | ||
32 | |||
33 | /* | ||
34 | * glue for the proc_comm interface | ||
35 | */ | ||
36 | static inline int pc_clk_enable(unsigned id) | ||
37 | { | ||
38 | return msm_proc_comm(PCOM_CLKCTL_RPC_ENABLE, &id, NULL); | ||
39 | } | ||
40 | |||
41 | static inline void pc_clk_disable(unsigned id) | ||
42 | { | ||
43 | msm_proc_comm(PCOM_CLKCTL_RPC_DISABLE, &id, NULL); | ||
44 | } | ||
45 | |||
46 | static inline int pc_clk_set_rate(unsigned id, unsigned rate) | ||
47 | { | ||
48 | return msm_proc_comm(PCOM_CLKCTL_RPC_SET_RATE, &id, &rate); | ||
49 | } | ||
50 | |||
51 | static inline int pc_clk_set_min_rate(unsigned id, unsigned rate) | ||
52 | { | ||
53 | return msm_proc_comm(PCOM_CLKCTL_RPC_MIN_RATE, &id, &rate); | ||
54 | } | ||
55 | |||
56 | static inline int pc_clk_set_max_rate(unsigned id, unsigned rate) | ||
57 | { | ||
58 | return msm_proc_comm(PCOM_CLKCTL_RPC_MAX_RATE, &id, &rate); | ||
59 | } | ||
60 | |||
61 | static inline int pc_clk_set_flags(unsigned id, unsigned flags) | ||
62 | { | ||
63 | return msm_proc_comm(PCOM_CLKCTL_RPC_SET_FLAGS, &id, &flags); | ||
64 | } | ||
65 | |||
66 | static inline unsigned pc_clk_get_rate(unsigned id) | ||
67 | { | ||
68 | if (msm_proc_comm(PCOM_CLKCTL_RPC_RATE, &id, NULL)) | ||
69 | return 0; | ||
70 | else | ||
71 | return id; | ||
72 | } | ||
73 | |||
74 | static inline unsigned pc_clk_is_enabled(unsigned id) | ||
75 | { | ||
76 | if (msm_proc_comm(PCOM_CLKCTL_RPC_ENABLED, &id, NULL)) | ||
77 | return 0; | ||
78 | else | ||
79 | return id; | ||
80 | } | ||
81 | |||
82 | static inline int pc_pll_request(unsigned id, unsigned on) | ||
83 | { | ||
84 | on = !!on; | ||
85 | return msm_proc_comm(PCOM_CLKCTL_RPC_PLL_REQUEST, &id, &on); | ||
86 | } | ||
87 | |||
88 | /* | ||
89 | * Standard clock functions defined in include/linux/clk.h | ||
90 | */ | ||
91 | struct clk *clk_get(struct device *dev, const char *id) | ||
92 | { | ||
93 | struct clk *clk; | ||
94 | |||
95 | mutex_lock(&clocks_mutex); | ||
96 | |||
97 | list_for_each_entry(clk, &clocks, list) | ||
98 | if (!strcmp(id, clk->name) && clk->dev == dev) | ||
99 | goto found_it; | ||
100 | |||
101 | list_for_each_entry(clk, &clocks, list) | ||
102 | if (!strcmp(id, clk->name) && clk->dev == NULL) | ||
103 | goto found_it; | ||
104 | |||
105 | clk = ERR_PTR(-ENOENT); | ||
106 | found_it: | ||
107 | mutex_unlock(&clocks_mutex); | ||
108 | return clk; | ||
109 | } | ||
110 | EXPORT_SYMBOL(clk_get); | ||
111 | |||
112 | void clk_put(struct clk *clk) | ||
113 | { | ||
114 | } | ||
115 | EXPORT_SYMBOL(clk_put); | ||
116 | |||
117 | int clk_enable(struct clk *clk) | ||
118 | { | ||
119 | unsigned long flags; | ||
120 | spin_lock_irqsave(&clocks_lock, flags); | ||
121 | clk->count++; | ||
122 | if (clk->count == 1) | ||
123 | pc_clk_enable(clk->id); | ||
124 | spin_unlock_irqrestore(&clocks_lock, flags); | ||
125 | return 0; | ||
126 | } | ||
127 | EXPORT_SYMBOL(clk_enable); | ||
128 | |||
129 | void clk_disable(struct clk *clk) | ||
130 | { | ||
131 | unsigned long flags; | ||
132 | spin_lock_irqsave(&clocks_lock, flags); | ||
133 | BUG_ON(clk->count == 0); | ||
134 | clk->count--; | ||
135 | if (clk->count == 0) | ||
136 | pc_clk_disable(clk->id); | ||
137 | spin_unlock_irqrestore(&clocks_lock, flags); | ||
138 | } | ||
139 | EXPORT_SYMBOL(clk_disable); | ||
140 | |||
141 | unsigned long clk_get_rate(struct clk *clk) | ||
142 | { | ||
143 | return pc_clk_get_rate(clk->id); | ||
144 | } | ||
145 | EXPORT_SYMBOL(clk_get_rate); | ||
146 | |||
147 | int clk_set_rate(struct clk *clk, unsigned long rate) | ||
148 | { | ||
149 | int ret; | ||
150 | if (clk->flags & CLKFLAG_USE_MIN_MAX_TO_SET) { | ||
151 | ret = pc_clk_set_max_rate(clk->id, rate); | ||
152 | if (ret) | ||
153 | return ret; | ||
154 | return pc_clk_set_min_rate(clk->id, rate); | ||
155 | } | ||
156 | return pc_clk_set_rate(clk->id, rate); | ||
157 | } | ||
158 | EXPORT_SYMBOL(clk_set_rate); | ||
159 | |||
160 | int clk_set_parent(struct clk *clk, struct clk *parent) | ||
161 | { | ||
162 | return -ENOSYS; | ||
163 | } | ||
164 | EXPORT_SYMBOL(clk_set_parent); | ||
165 | |||
166 | struct clk *clk_get_parent(struct clk *clk) | ||
167 | { | ||
168 | return ERR_PTR(-ENOSYS); | ||
169 | } | ||
170 | EXPORT_SYMBOL(clk_get_parent); | ||
171 | |||
172 | int clk_set_flags(struct clk *clk, unsigned long flags) | ||
173 | { | ||
174 | if (clk == NULL || IS_ERR(clk)) | ||
175 | return -EINVAL; | ||
176 | return pc_clk_set_flags(clk->id, flags); | ||
177 | } | ||
178 | EXPORT_SYMBOL(clk_set_flags); | ||
179 | |||
180 | |||
181 | void __init msm_clock_init(void) | ||
182 | { | ||
183 | unsigned n; | ||
184 | |||
185 | spin_lock_init(&clocks_lock); | ||
186 | mutex_lock(&clocks_mutex); | ||
187 | for (n = 0; n < msm_num_clocks; n++) | ||
188 | list_add_tail(&msm_clocks[n].list, &clocks); | ||
189 | mutex_unlock(&clocks_mutex); | ||
190 | } | ||
191 | |||
192 | /* The bootloader and/or AMSS may have left various clocks enabled. | ||
193 | * Disable any clocks that belong to us (CLKFLAG_AUTO_OFF) but have | ||
194 | * not been explicitly enabled by a clk_enable() call. | ||
195 | */ | ||
196 | static int __init clock_late_init(void) | ||
197 | { | ||
198 | unsigned long flags; | ||
199 | struct clk *clk; | ||
200 | unsigned count = 0; | ||
201 | |||
202 | mutex_lock(&clocks_mutex); | ||
203 | list_for_each_entry(clk, &clocks, list) { | ||
204 | if (clk->flags & CLKFLAG_AUTO_OFF) { | ||
205 | spin_lock_irqsave(&clocks_lock, flags); | ||
206 | if (!clk->count) { | ||
207 | count++; | ||
208 | pc_clk_disable(clk->id); | ||
209 | } | ||
210 | spin_unlock_irqrestore(&clocks_lock, flags); | ||
211 | } | ||
212 | } | ||
213 | mutex_unlock(&clocks_mutex); | ||
214 | pr_info("clock_late_init() disabled %d unused clocks\n", count); | ||
215 | return 0; | ||
216 | } | ||
217 | |||
218 | late_initcall(clock_late_init); | ||
diff --git a/arch/arm/mach-msm/clock.h b/arch/arm/mach-msm/clock.h new file mode 100644 index 000000000000..f875e1544e5f --- /dev/null +++ b/arch/arm/mach-msm/clock.h | |||
@@ -0,0 +1,48 @@ | |||
1 | /* arch/arm/mach-msm/clock.h | ||
2 | * | ||
3 | * Copyright (C) 2007 Google, Inc. | ||
4 | * Copyright (c) 2007 QUALCOMM Incorporated | ||
5 | * | ||
6 | * This software is licensed under the terms of the GNU General Public | ||
7 | * License version 2, as published by the Free Software Foundation, and | ||
8 | * may be copied, distributed, and modified under those terms. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | * | ||
15 | */ | ||
16 | |||
17 | #ifndef __ARCH_ARM_MACH_MSM_CLOCK_H | ||
18 | #define __ARCH_ARM_MACH_MSM_CLOCK_H | ||
19 | |||
20 | #include <linux/list.h> | ||
21 | |||
22 | #define CLKFLAG_INVERT 0x00000001 | ||
23 | #define CLKFLAG_NOINVERT 0x00000002 | ||
24 | #define CLKFLAG_NONEST 0x00000004 | ||
25 | #define CLKFLAG_NORESET 0x00000008 | ||
26 | |||
27 | #define CLK_FIRST_AVAILABLE_FLAG 0x00000100 | ||
28 | #define CLKFLAG_USE_MIN_MAX_TO_SET 0x00000200 | ||
29 | #define CLKFLAG_AUTO_OFF 0x00000400 | ||
30 | |||
31 | struct clk { | ||
32 | uint32_t id; | ||
33 | uint32_t count; | ||
34 | uint32_t flags; | ||
35 | const char *name; | ||
36 | struct list_head list; | ||
37 | struct device *dev; | ||
38 | }; | ||
39 | |||
40 | #define A11S_CLK_CNTL_ADDR (MSM_CSR_BASE + 0x100) | ||
41 | #define A11S_CLK_SEL_ADDR (MSM_CSR_BASE + 0x104) | ||
42 | #define A11S_VDD_SVS_PLEVEL_ADDR (MSM_CSR_BASE + 0x124) | ||
43 | |||
44 | extern struct clk msm_clocks[]; | ||
45 | extern unsigned msm_num_clocks; | ||
46 | |||
47 | #endif | ||
48 | |||
diff --git a/arch/arm/mach-msm/common.c b/arch/arm/mach-msm/common.c deleted file mode 100644 index 604f8ade9587..000000000000 --- a/arch/arm/mach-msm/common.c +++ /dev/null | |||
@@ -1,116 +0,0 @@ | |||
1 | /* linux/arch/arm/mach-msm/common.c | ||
2 | * | ||
3 | * Common setup code for MSM7K Boards | ||
4 | * | ||
5 | * Copyright (C) 2007 Google, Inc. | ||
6 | * Author: Brian Swetland <swetland@google.com> | ||
7 | * | ||
8 | * This software is licensed under the terms of the GNU General Public | ||
9 | * License version 2, as published by the Free Software Foundation, and | ||
10 | * may be copied, distributed, and modified under those terms. | ||
11 | * | ||
12 | * This program is distributed in the hope that it will be useful, | ||
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | * GNU General Public License for more details. | ||
16 | * | ||
17 | */ | ||
18 | |||
19 | #include <linux/kernel.h> | ||
20 | #include <linux/init.h> | ||
21 | #include <linux/platform_device.h> | ||
22 | #include <linux/io.h> | ||
23 | |||
24 | #include <asm/mach/flash.h> | ||
25 | |||
26 | #include <asm/setup.h> | ||
27 | |||
28 | #include <linux/mtd/nand.h> | ||
29 | #include <linux/mtd/partitions.h> | ||
30 | |||
31 | #include <mach/msm_iomap.h> | ||
32 | |||
33 | #include <mach/board.h> | ||
34 | |||
35 | struct flash_platform_data msm_nand_data = { | ||
36 | .parts = 0, | ||
37 | .nr_parts = 0, | ||
38 | }; | ||
39 | |||
40 | static struct resource msm_nand_resources[] = { | ||
41 | [0] = { | ||
42 | .start = 7, | ||
43 | .end = 7, | ||
44 | .flags = IORESOURCE_DMA, | ||
45 | }, | ||
46 | }; | ||
47 | |||
48 | static struct platform_device msm_nand_device = { | ||
49 | .name = "msm_nand", | ||
50 | .id = -1, | ||
51 | .num_resources = ARRAY_SIZE(msm_nand_resources), | ||
52 | .resource = msm_nand_resources, | ||
53 | .dev = { | ||
54 | .platform_data = &msm_nand_data, | ||
55 | }, | ||
56 | }; | ||
57 | |||
58 | static struct platform_device msm_smd_device = { | ||
59 | .name = "msm_smd", | ||
60 | .id = -1, | ||
61 | }; | ||
62 | |||
63 | static struct resource msm_i2c_resources[] = { | ||
64 | { | ||
65 | .start = MSM_I2C_BASE, | ||
66 | .end = MSM_I2C_BASE + MSM_I2C_SIZE - 1, | ||
67 | .flags = IORESOURCE_MEM, | ||
68 | }, | ||
69 | { | ||
70 | .start = INT_PWB_I2C, | ||
71 | .end = INT_PWB_I2C, | ||
72 | .flags = IORESOURCE_IRQ, | ||
73 | }, | ||
74 | }; | ||
75 | |||
76 | static struct platform_device msm_i2c_device = { | ||
77 | .name = "msm_i2c", | ||
78 | .id = 0, | ||
79 | .num_resources = ARRAY_SIZE(msm_i2c_resources), | ||
80 | .resource = msm_i2c_resources, | ||
81 | }; | ||
82 | |||
83 | static struct resource usb_resources[] = { | ||
84 | { | ||
85 | .start = MSM_HSUSB_PHYS, | ||
86 | .end = MSM_HSUSB_PHYS + MSM_HSUSB_SIZE, | ||
87 | .flags = IORESOURCE_MEM, | ||
88 | }, | ||
89 | { | ||
90 | .start = INT_USB_HS, | ||
91 | .end = INT_USB_HS, | ||
92 | .flags = IORESOURCE_IRQ, | ||
93 | }, | ||
94 | }; | ||
95 | |||
96 | static struct platform_device msm_hsusb_device = { | ||
97 | .name = "msm_hsusb", | ||
98 | .id = -1, | ||
99 | .num_resources = ARRAY_SIZE(usb_resources), | ||
100 | .resource = usb_resources, | ||
101 | .dev = { | ||
102 | .coherent_dma_mask = 0xffffffff, | ||
103 | }, | ||
104 | }; | ||
105 | |||
106 | static struct platform_device *devices[] __initdata = { | ||
107 | &msm_nand_device, | ||
108 | &msm_smd_device, | ||
109 | &msm_i2c_device, | ||
110 | &msm_hsusb_device, | ||
111 | }; | ||
112 | |||
113 | void __init msm_add_devices(void) | ||
114 | { | ||
115 | platform_add_devices(devices, ARRAY_SIZE(devices)); | ||
116 | } | ||
diff --git a/arch/arm/mach-msm/devices.c b/arch/arm/mach-msm/devices.c new file mode 100644 index 000000000000..f2a74b92a97f --- /dev/null +++ b/arch/arm/mach-msm/devices.c | |||
@@ -0,0 +1,267 @@ | |||
1 | /* linux/arch/arm/mach-msm/devices.c | ||
2 | * | ||
3 | * Copyright (C) 2008 Google, Inc. | ||
4 | * | ||
5 | * This software is licensed under the terms of the GNU General Public | ||
6 | * License version 2, as published by the Free Software Foundation, and | ||
7 | * may be copied, distributed, and modified under those terms. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | */ | ||
15 | |||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/platform_device.h> | ||
18 | |||
19 | #include <mach/msm_iomap.h> | ||
20 | #include "devices.h" | ||
21 | |||
22 | #include <asm/mach/flash.h> | ||
23 | #include <linux/mtd/nand.h> | ||
24 | #include <linux/mtd/partitions.h> | ||
25 | |||
26 | static struct resource resources_uart1[] = { | ||
27 | { | ||
28 | .start = INT_UART1, | ||
29 | .end = INT_UART1, | ||
30 | .flags = IORESOURCE_IRQ, | ||
31 | }, | ||
32 | { | ||
33 | .start = MSM_UART1_PHYS, | ||
34 | .end = MSM_UART1_PHYS + MSM_UART1_SIZE - 1, | ||
35 | .flags = IORESOURCE_MEM, | ||
36 | }, | ||
37 | }; | ||
38 | |||
39 | static struct resource resources_uart2[] = { | ||
40 | { | ||
41 | .start = INT_UART2, | ||
42 | .end = INT_UART2, | ||
43 | .flags = IORESOURCE_IRQ, | ||
44 | }, | ||
45 | { | ||
46 | .start = MSM_UART2_PHYS, | ||
47 | .end = MSM_UART2_PHYS + MSM_UART2_SIZE - 1, | ||
48 | .flags = IORESOURCE_MEM, | ||
49 | }, | ||
50 | }; | ||
51 | |||
52 | static struct resource resources_uart3[] = { | ||
53 | { | ||
54 | .start = INT_UART3, | ||
55 | .end = INT_UART3, | ||
56 | .flags = IORESOURCE_IRQ, | ||
57 | }, | ||
58 | { | ||
59 | .start = MSM_UART3_PHYS, | ||
60 | .end = MSM_UART3_PHYS + MSM_UART3_SIZE - 1, | ||
61 | .flags = IORESOURCE_MEM, | ||
62 | }, | ||
63 | }; | ||
64 | |||
65 | struct platform_device msm_device_uart1 = { | ||
66 | .name = "msm_serial", | ||
67 | .id = 0, | ||
68 | .num_resources = ARRAY_SIZE(resources_uart1), | ||
69 | .resource = resources_uart1, | ||
70 | }; | ||
71 | |||
72 | struct platform_device msm_device_uart2 = { | ||
73 | .name = "msm_serial", | ||
74 | .id = 1, | ||
75 | .num_resources = ARRAY_SIZE(resources_uart2), | ||
76 | .resource = resources_uart2, | ||
77 | }; | ||
78 | |||
79 | struct platform_device msm_device_uart3 = { | ||
80 | .name = "msm_serial", | ||
81 | .id = 2, | ||
82 | .num_resources = ARRAY_SIZE(resources_uart3), | ||
83 | .resource = resources_uart3, | ||
84 | }; | ||
85 | |||
86 | static struct resource resources_i2c[] = { | ||
87 | { | ||
88 | .start = MSM_I2C_PHYS, | ||
89 | .end = MSM_I2C_PHYS + MSM_I2C_SIZE - 1, | ||
90 | .flags = IORESOURCE_MEM, | ||
91 | }, | ||
92 | { | ||
93 | .start = INT_PWB_I2C, | ||
94 | .end = INT_PWB_I2C, | ||
95 | .flags = IORESOURCE_IRQ, | ||
96 | }, | ||
97 | }; | ||
98 | |||
99 | struct platform_device msm_device_i2c = { | ||
100 | .name = "msm_i2c", | ||
101 | .id = 0, | ||
102 | .num_resources = ARRAY_SIZE(resources_i2c), | ||
103 | .resource = resources_i2c, | ||
104 | }; | ||
105 | |||
106 | static struct resource resources_hsusb[] = { | ||
107 | { | ||
108 | .start = MSM_HSUSB_PHYS, | ||
109 | .end = MSM_HSUSB_PHYS + MSM_HSUSB_SIZE, | ||
110 | .flags = IORESOURCE_MEM, | ||
111 | }, | ||
112 | { | ||
113 | .start = INT_USB_HS, | ||
114 | .end = INT_USB_HS, | ||
115 | .flags = IORESOURCE_IRQ, | ||
116 | }, | ||
117 | }; | ||
118 | |||
119 | struct platform_device msm_device_hsusb = { | ||
120 | .name = "msm_hsusb", | ||
121 | .id = -1, | ||
122 | .num_resources = ARRAY_SIZE(resources_hsusb), | ||
123 | .resource = resources_hsusb, | ||
124 | .dev = { | ||
125 | .coherent_dma_mask = 0xffffffff, | ||
126 | }, | ||
127 | }; | ||
128 | |||
129 | struct flash_platform_data msm_nand_data = { | ||
130 | .parts = NULL, | ||
131 | .nr_parts = 0, | ||
132 | }; | ||
133 | |||
134 | static struct resource resources_nand[] = { | ||
135 | [0] = { | ||
136 | .start = 7, | ||
137 | .end = 7, | ||
138 | .flags = IORESOURCE_DMA, | ||
139 | }, | ||
140 | }; | ||
141 | |||
142 | struct platform_device msm_device_nand = { | ||
143 | .name = "msm_nand", | ||
144 | .id = -1, | ||
145 | .num_resources = ARRAY_SIZE(resources_nand), | ||
146 | .resource = resources_nand, | ||
147 | .dev = { | ||
148 | .platform_data = &msm_nand_data, | ||
149 | }, | ||
150 | }; | ||
151 | |||
152 | struct platform_device msm_device_smd = { | ||
153 | .name = "msm_smd", | ||
154 | .id = -1, | ||
155 | }; | ||
156 | |||
157 | static struct resource resources_sdc1[] = { | ||
158 | { | ||
159 | .start = MSM_SDC1_PHYS, | ||
160 | .end = MSM_SDC1_PHYS + MSM_SDC1_SIZE - 1, | ||
161 | .flags = IORESOURCE_MEM, | ||
162 | }, | ||
163 | { | ||
164 | .start = INT_SDC1_0, | ||
165 | .end = INT_SDC1_1, | ||
166 | .flags = IORESOURCE_IRQ, | ||
167 | }, | ||
168 | { | ||
169 | .start = 8, | ||
170 | .end = 8, | ||
171 | .flags = IORESOURCE_DMA, | ||
172 | }, | ||
173 | }; | ||
174 | |||
175 | static struct resource resources_sdc2[] = { | ||
176 | { | ||
177 | .start = MSM_SDC2_PHYS, | ||
178 | .end = MSM_SDC2_PHYS + MSM_SDC2_SIZE - 1, | ||
179 | .flags = IORESOURCE_MEM, | ||
180 | }, | ||
181 | { | ||
182 | .start = INT_SDC2_0, | ||
183 | .end = INT_SDC2_1, | ||
184 | .flags = IORESOURCE_IRQ, | ||
185 | }, | ||
186 | { | ||
187 | .start = 8, | ||
188 | .end = 8, | ||
189 | .flags = IORESOURCE_DMA, | ||
190 | }, | ||
191 | }; | ||
192 | |||
193 | static struct resource resources_sdc3[] = { | ||
194 | { | ||
195 | .start = MSM_SDC3_PHYS, | ||
196 | .end = MSM_SDC3_PHYS + MSM_SDC3_SIZE - 1, | ||
197 | .flags = IORESOURCE_MEM, | ||
198 | }, | ||
199 | { | ||
200 | .start = INT_SDC3_0, | ||
201 | .end = INT_SDC3_1, | ||
202 | .flags = IORESOURCE_IRQ, | ||
203 | }, | ||
204 | { | ||
205 | .start = 8, | ||
206 | .end = 8, | ||
207 | .flags = IORESOURCE_DMA, | ||
208 | }, | ||
209 | }; | ||
210 | |||
211 | static struct resource resources_sdc4[] = { | ||
212 | { | ||
213 | .start = MSM_SDC4_PHYS, | ||
214 | .end = MSM_SDC4_PHYS + MSM_SDC4_SIZE - 1, | ||
215 | .flags = IORESOURCE_MEM, | ||
216 | }, | ||
217 | { | ||
218 | .start = INT_SDC4_0, | ||
219 | .end = INT_SDC4_1, | ||
220 | .flags = IORESOURCE_IRQ, | ||
221 | }, | ||
222 | { | ||
223 | .start = 8, | ||
224 | .end = 8, | ||
225 | .flags = IORESOURCE_DMA, | ||
226 | }, | ||
227 | }; | ||
228 | |||
229 | struct platform_device msm_device_sdc1 = { | ||
230 | .name = "msm_sdcc", | ||
231 | .id = 1, | ||
232 | .num_resources = ARRAY_SIZE(resources_sdc1), | ||
233 | .resource = resources_sdc1, | ||
234 | .dev = { | ||
235 | .coherent_dma_mask = 0xffffffff, | ||
236 | }, | ||
237 | }; | ||
238 | |||
239 | struct platform_device msm_device_sdc2 = { | ||
240 | .name = "msm_sdcc", | ||
241 | .id = 2, | ||
242 | .num_resources = ARRAY_SIZE(resources_sdc2), | ||
243 | .resource = resources_sdc2, | ||
244 | .dev = { | ||
245 | .coherent_dma_mask = 0xffffffff, | ||
246 | }, | ||
247 | }; | ||
248 | |||
249 | struct platform_device msm_device_sdc3 = { | ||
250 | .name = "msm_sdcc", | ||
251 | .id = 3, | ||
252 | .num_resources = ARRAY_SIZE(resources_sdc3), | ||
253 | .resource = resources_sdc3, | ||
254 | .dev = { | ||
255 | .coherent_dma_mask = 0xffffffff, | ||
256 | }, | ||
257 | }; | ||
258 | |||
259 | struct platform_device msm_device_sdc4 = { | ||
260 | .name = "msm_sdcc", | ||
261 | .id = 4, | ||
262 | .num_resources = ARRAY_SIZE(resources_sdc4), | ||
263 | .resource = resources_sdc4, | ||
264 | .dev = { | ||
265 | .coherent_dma_mask = 0xffffffff, | ||
266 | }, | ||
267 | }; | ||
diff --git a/arch/arm/mach-msm/devices.h b/arch/arm/mach-msm/devices.h new file mode 100644 index 000000000000..0744c4a27d6a --- /dev/null +++ b/arch/arm/mach-msm/devices.h | |||
@@ -0,0 +1,36 @@ | |||
1 | /* linux/arch/arm/mach-msm/devices.h | ||
2 | * | ||
3 | * Copyright (C) 2008 Google, Inc. | ||
4 | * | ||
5 | * This software is licensed under the terms of the GNU General Public | ||
6 | * License version 2, as published by the Free Software Foundation, and | ||
7 | * may be copied, distributed, and modified under those terms. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | */ | ||
15 | |||
16 | #ifndef __ARCH_ARM_MACH_MSM_DEVICES_H | ||
17 | #define __ARCH_ARM_MACH_MSM_DEVICES_H | ||
18 | |||
19 | extern struct platform_device msm_device_uart1; | ||
20 | extern struct platform_device msm_device_uart2; | ||
21 | extern struct platform_device msm_device_uart3; | ||
22 | |||
23 | extern struct platform_device msm_device_sdc1; | ||
24 | extern struct platform_device msm_device_sdc2; | ||
25 | extern struct platform_device msm_device_sdc3; | ||
26 | extern struct platform_device msm_device_sdc4; | ||
27 | |||
28 | extern struct platform_device msm_device_hsusb; | ||
29 | |||
30 | extern struct platform_device msm_device_i2c; | ||
31 | |||
32 | extern struct platform_device msm_device_smd; | ||
33 | |||
34 | extern struct platform_device msm_device_nand; | ||
35 | |||
36 | #endif | ||
diff --git a/arch/arm/mach-msm/dma.c b/arch/arm/mach-msm/dma.c index 0c8f252637e1..f5420f9585c5 100644 --- a/arch/arm/mach-msm/dma.c +++ b/arch/arm/mach-msm/dma.c | |||
@@ -26,7 +26,7 @@ enum { | |||
26 | }; | 26 | }; |
27 | 27 | ||
28 | static DEFINE_SPINLOCK(msm_dmov_lock); | 28 | static DEFINE_SPINLOCK(msm_dmov_lock); |
29 | static struct msm_dmov_cmd active_command; | 29 | static unsigned int channel_active; |
30 | static struct list_head ready_commands[MSM_DMOV_CHANNEL_COUNT]; | 30 | static struct list_head ready_commands[MSM_DMOV_CHANNEL_COUNT]; |
31 | static struct list_head active_commands[MSM_DMOV_CHANNEL_COUNT]; | 31 | static struct list_head active_commands[MSM_DMOV_CHANNEL_COUNT]; |
32 | unsigned int msm_dmov_print_mask = MSM_DMOV_PRINT_ERRORS; | 32 | unsigned int msm_dmov_print_mask = MSM_DMOV_PRINT_ERRORS; |
@@ -43,6 +43,11 @@ unsigned int msm_dmov_print_mask = MSM_DMOV_PRINT_ERRORS; | |||
43 | #define PRINT_FLOW(format, args...) \ | 43 | #define PRINT_FLOW(format, args...) \ |
44 | MSM_DMOV_DPRINTF(MSM_DMOV_PRINT_FLOW, format, args); | 44 | MSM_DMOV_DPRINTF(MSM_DMOV_PRINT_FLOW, format, args); |
45 | 45 | ||
46 | void msm_dmov_stop_cmd(unsigned id, struct msm_dmov_cmd *cmd, int graceful) | ||
47 | { | ||
48 | writel((graceful << 31), DMOV_FLUSH0(id)); | ||
49 | } | ||
50 | |||
46 | void msm_dmov_enqueue_cmd(unsigned id, struct msm_dmov_cmd *cmd) | 51 | void msm_dmov_enqueue_cmd(unsigned id, struct msm_dmov_cmd *cmd) |
47 | { | 52 | { |
48 | unsigned long irq_flags; | 53 | unsigned long irq_flags; |
@@ -60,6 +65,9 @@ void msm_dmov_enqueue_cmd(unsigned id, struct msm_dmov_cmd *cmd) | |||
60 | #endif | 65 | #endif |
61 | PRINT_IO("msm_dmov_enqueue_cmd(%d), start command, status %x\n", id, status); | 66 | PRINT_IO("msm_dmov_enqueue_cmd(%d), start command, status %x\n", id, status); |
62 | list_add_tail(&cmd->list, &active_commands[id]); | 67 | list_add_tail(&cmd->list, &active_commands[id]); |
68 | if (!channel_active) | ||
69 | enable_irq(INT_ADM_AARM); | ||
70 | channel_active |= 1U << id; | ||
63 | writel(cmd->cmdptr, DMOV_CMD_PTR(id)); | 71 | writel(cmd->cmdptr, DMOV_CMD_PTR(id)); |
64 | } else { | 72 | } else { |
65 | if (list_empty(&active_commands[id])) | 73 | if (list_empty(&active_commands[id])) |
@@ -76,21 +84,19 @@ struct msm_dmov_exec_cmdptr_cmd { | |||
76 | struct completion complete; | 84 | struct completion complete; |
77 | unsigned id; | 85 | unsigned id; |
78 | unsigned int result; | 86 | unsigned int result; |
79 | unsigned int flush[6]; | 87 | struct msm_dmov_errdata err; |
80 | }; | 88 | }; |
81 | 89 | ||
82 | static void dmov_exec_cmdptr_complete_func(struct msm_dmov_cmd *_cmd, unsigned int result) | 90 | static void |
91 | dmov_exec_cmdptr_complete_func(struct msm_dmov_cmd *_cmd, | ||
92 | unsigned int result, | ||
93 | struct msm_dmov_errdata *err) | ||
83 | { | 94 | { |
84 | struct msm_dmov_exec_cmdptr_cmd *cmd = container_of(_cmd, struct msm_dmov_exec_cmdptr_cmd, dmov_cmd); | 95 | struct msm_dmov_exec_cmdptr_cmd *cmd = container_of(_cmd, struct msm_dmov_exec_cmdptr_cmd, dmov_cmd); |
85 | cmd->result = result; | 96 | cmd->result = result; |
86 | if (result != 0x80000002) { | 97 | if (result != 0x80000002 && err) |
87 | cmd->flush[0] = readl(DMOV_FLUSH0(cmd->id)); | 98 | memcpy(&cmd->err, err, sizeof(struct msm_dmov_errdata)); |
88 | cmd->flush[1] = readl(DMOV_FLUSH1(cmd->id)); | 99 | |
89 | cmd->flush[2] = readl(DMOV_FLUSH2(cmd->id)); | ||
90 | cmd->flush[3] = readl(DMOV_FLUSH3(cmd->id)); | ||
91 | cmd->flush[4] = readl(DMOV_FLUSH4(cmd->id)); | ||
92 | cmd->flush[5] = readl(DMOV_FLUSH5(cmd->id)); | ||
93 | } | ||
94 | complete(&cmd->complete); | 100 | complete(&cmd->complete); |
95 | } | 101 | } |
96 | 102 | ||
@@ -111,7 +117,7 @@ int msm_dmov_exec_cmd(unsigned id, unsigned int cmdptr) | |||
111 | if (cmd.result != 0x80000002) { | 117 | if (cmd.result != 0x80000002) { |
112 | PRINT_ERROR("dmov_exec_cmdptr(%d): ERROR, result: %x\n", id, cmd.result); | 118 | PRINT_ERROR("dmov_exec_cmdptr(%d): ERROR, result: %x\n", id, cmd.result); |
113 | PRINT_ERROR("dmov_exec_cmdptr(%d): flush: %x %x %x %x\n", | 119 | PRINT_ERROR("dmov_exec_cmdptr(%d): flush: %x %x %x %x\n", |
114 | id, cmd.flush[0], cmd.flush[1], cmd.flush[2], cmd.flush[3]); | 120 | id, cmd.err.flush[0], cmd.err.flush[1], cmd.err.flush[2], cmd.err.flush[3]); |
115 | return -EIO; | 121 | return -EIO; |
116 | } | 122 | } |
117 | PRINT_FLOW("dmov_exec_cmdptr(%d, %x) done\n", id, cmdptr); | 123 | PRINT_FLOW("dmov_exec_cmdptr(%d, %x) done\n", id, cmdptr); |
@@ -159,25 +165,40 @@ static irqreturn_t msm_datamover_irq_handler(int irq, void *dev_id) | |||
159 | "for %p, result %x\n", id, cmd, ch_result); | 165 | "for %p, result %x\n", id, cmd, ch_result); |
160 | if (cmd) { | 166 | if (cmd) { |
161 | list_del(&cmd->list); | 167 | list_del(&cmd->list); |
162 | cmd->complete_func(cmd, ch_result); | 168 | cmd->complete_func(cmd, ch_result, NULL); |
163 | } | 169 | } |
164 | } | 170 | } |
165 | if (ch_result & DMOV_RSLT_FLUSH) { | 171 | if (ch_result & DMOV_RSLT_FLUSH) { |
166 | unsigned int flush0 = readl(DMOV_FLUSH0(id)); | 172 | struct msm_dmov_errdata errdata; |
173 | |||
174 | errdata.flush[0] = readl(DMOV_FLUSH0(id)); | ||
175 | errdata.flush[1] = readl(DMOV_FLUSH1(id)); | ||
176 | errdata.flush[2] = readl(DMOV_FLUSH2(id)); | ||
177 | errdata.flush[3] = readl(DMOV_FLUSH3(id)); | ||
178 | errdata.flush[4] = readl(DMOV_FLUSH4(id)); | ||
179 | errdata.flush[5] = readl(DMOV_FLUSH5(id)); | ||
167 | PRINT_FLOW("msm_datamover_irq_handler id %d, status %x\n", id, ch_status); | 180 | PRINT_FLOW("msm_datamover_irq_handler id %d, status %x\n", id, ch_status); |
168 | PRINT_FLOW("msm_datamover_irq_handler id %d, flush, result %x, flush0 %x\n", id, ch_result, flush0); | 181 | PRINT_FLOW("msm_datamover_irq_handler id %d, flush, result %x, flush0 %x\n", id, ch_result, errdata.flush[0]); |
169 | if (cmd) { | 182 | if (cmd) { |
170 | list_del(&cmd->list); | 183 | list_del(&cmd->list); |
171 | cmd->complete_func(cmd, ch_result); | 184 | cmd->complete_func(cmd, ch_result, &errdata); |
172 | } | 185 | } |
173 | } | 186 | } |
174 | if (ch_result & DMOV_RSLT_ERROR) { | 187 | if (ch_result & DMOV_RSLT_ERROR) { |
175 | unsigned int flush0 = readl(DMOV_FLUSH0(id)); | 188 | struct msm_dmov_errdata errdata; |
189 | |||
190 | errdata.flush[0] = readl(DMOV_FLUSH0(id)); | ||
191 | errdata.flush[1] = readl(DMOV_FLUSH1(id)); | ||
192 | errdata.flush[2] = readl(DMOV_FLUSH2(id)); | ||
193 | errdata.flush[3] = readl(DMOV_FLUSH3(id)); | ||
194 | errdata.flush[4] = readl(DMOV_FLUSH4(id)); | ||
195 | errdata.flush[5] = readl(DMOV_FLUSH5(id)); | ||
196 | |||
176 | PRINT_ERROR("msm_datamover_irq_handler id %d, status %x\n", id, ch_status); | 197 | PRINT_ERROR("msm_datamover_irq_handler id %d, status %x\n", id, ch_status); |
177 | PRINT_ERROR("msm_datamover_irq_handler id %d, error, result %x, flush0 %x\n", id, ch_result, flush0); | 198 | PRINT_ERROR("msm_datamover_irq_handler id %d, error, result %x, flush0 %x\n", id, ch_result, errdata.flush[0]); |
178 | if (cmd) { | 199 | if (cmd) { |
179 | list_del(&cmd->list); | 200 | list_del(&cmd->list); |
180 | cmd->complete_func(cmd, ch_result); | 201 | cmd->complete_func(cmd, ch_result, &errdata); |
181 | } | 202 | } |
182 | /* this does not seem to work, once we get an error */ | 203 | /* this does not seem to work, once we get an error */ |
183 | /* the datamover will no longer accept commands */ | 204 | /* the datamover will no longer accept commands */ |
@@ -193,8 +214,14 @@ static irqreturn_t msm_datamover_irq_handler(int irq, void *dev_id) | |||
193 | writel(cmd->cmdptr, DMOV_CMD_PTR(id)); | 214 | writel(cmd->cmdptr, DMOV_CMD_PTR(id)); |
194 | } | 215 | } |
195 | } while (ch_status & DMOV_STATUS_RSLT_VALID); | 216 | } while (ch_status & DMOV_STATUS_RSLT_VALID); |
217 | if (list_empty(&active_commands[id]) && list_empty(&ready_commands[id])) | ||
218 | channel_active &= ~(1U << id); | ||
196 | PRINT_FLOW("msm_datamover_irq_handler id %d, status %x\n", id, ch_status); | 219 | PRINT_FLOW("msm_datamover_irq_handler id %d, status %x\n", id, ch_status); |
197 | } | 220 | } |
221 | |||
222 | if (!channel_active) | ||
223 | disable_irq(INT_ADM_AARM); | ||
224 | |||
198 | spin_unlock_irqrestore(&msm_dmov_lock, irq_flags); | 225 | spin_unlock_irqrestore(&msm_dmov_lock, irq_flags); |
199 | return IRQ_HANDLED; | 226 | return IRQ_HANDLED; |
200 | } | 227 | } |
@@ -202,12 +229,17 @@ static irqreturn_t msm_datamover_irq_handler(int irq, void *dev_id) | |||
202 | static int __init msm_init_datamover(void) | 229 | static int __init msm_init_datamover(void) |
203 | { | 230 | { |
204 | int i; | 231 | int i; |
232 | int ret; | ||
205 | for (i = 0; i < MSM_DMOV_CHANNEL_COUNT; i++) { | 233 | for (i = 0; i < MSM_DMOV_CHANNEL_COUNT; i++) { |
206 | INIT_LIST_HEAD(&ready_commands[i]); | 234 | INIT_LIST_HEAD(&ready_commands[i]); |
207 | INIT_LIST_HEAD(&active_commands[i]); | 235 | INIT_LIST_HEAD(&active_commands[i]); |
208 | writel(DMOV_CONFIG_IRQ_EN | DMOV_CONFIG_FORCE_TOP_PTR_RSLT | DMOV_CONFIG_FORCE_FLUSH_RSLT, DMOV_CONFIG(i)); | 236 | writel(DMOV_CONFIG_IRQ_EN | DMOV_CONFIG_FORCE_TOP_PTR_RSLT | DMOV_CONFIG_FORCE_FLUSH_RSLT, DMOV_CONFIG(i)); |
209 | } | 237 | } |
210 | return request_irq(INT_ADM_AARM, msm_datamover_irq_handler, 0, "msmdatamover", NULL); | 238 | ret = request_irq(INT_ADM_AARM, msm_datamover_irq_handler, 0, "msmdatamover", NULL); |
239 | if (ret) | ||
240 | return ret; | ||
241 | disable_irq(INT_ADM_AARM); | ||
242 | return 0; | ||
211 | } | 243 | } |
212 | 244 | ||
213 | arch_initcall(msm_init_datamover); | 245 | arch_initcall(msm_init_datamover); |
diff --git a/arch/arm/mach-msm/include/mach/board.h b/arch/arm/mach-msm/include/mach/board.h index a7639493c095..264d62e519f3 100644 --- a/arch/arm/mach-msm/include/mach/board.h +++ b/arch/arm/mach-msm/include/mach/board.h | |||
@@ -33,5 +33,6 @@ void __init msm_add_devices(void); | |||
33 | void __init msm_map_common_io(void); | 33 | void __init msm_map_common_io(void); |
34 | void __init msm_init_irq(void); | 34 | void __init msm_init_irq(void); |
35 | void __init msm_init_gpio(void); | 35 | void __init msm_init_gpio(void); |
36 | void __init msm_clock_init(void); | ||
36 | 37 | ||
37 | #endif | 38 | #endif |
diff --git a/arch/arm/mach-msm/include/mach/debug-macro.S b/arch/arm/mach-msm/include/mach/debug-macro.S index 528eef4b605c..1db3c97dbc49 100644 --- a/arch/arm/mach-msm/include/mach/debug-macro.S +++ b/arch/arm/mach-msm/include/mach/debug-macro.S | |||
@@ -22,18 +22,22 @@ | |||
22 | mrc p15, 0, \rx, c1, c0 | 22 | mrc p15, 0, \rx, c1, c0 |
23 | tst \rx, #1 | 23 | tst \rx, #1 |
24 | ldreq \rx, =MSM_UART1_PHYS | 24 | ldreq \rx, =MSM_UART1_PHYS |
25 | ldrne \rx, =MSM_UART1_BASE | 25 | movne \rx, #0 |
26 | .endm | 26 | .endm |
27 | 27 | ||
28 | .macro senduart,rd,rx | 28 | .macro senduart,rd,rx |
29 | str \rd, [\rx, #0x0C] | 29 | teq \rx, #0 |
30 | strne \rd, [\rx, #0x0C] | ||
30 | .endm | 31 | .endm |
31 | 32 | ||
32 | .macro waituart,rd,rx | 33 | .macro waituart,rd,rx |
33 | @ wait for TX_READY | 34 | @ wait for TX_READY |
35 | teq \rx, #0 | ||
36 | bne 2f | ||
34 | 1: ldr \rd, [\rx, #0x08] | 37 | 1: ldr \rd, [\rx, #0x08] |
35 | tst \rd, #0x04 | 38 | tst \rd, #0x04 |
36 | beq 1b | 39 | beq 1b |
40 | 2: | ||
37 | .endm | 41 | .endm |
38 | 42 | ||
39 | .macro busyuart,rd,rx | 43 | .macro busyuart,rd,rx |
diff --git a/arch/arm/mach-msm/include/mach/dma.h b/arch/arm/mach-msm/include/mach/dma.h index ad1c87f86d10..5ab5bdffab07 100644 --- a/arch/arm/mach-msm/include/mach/dma.h +++ b/arch/arm/mach-msm/include/mach/dma.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* arch/arm/mach-msm/include/mach/dma.h | 1 | /* linux/include/asm-arm/arch-msm/dma.h |
2 | * | 2 | * |
3 | * Copyright (C) 2007 Google, Inc. | 3 | * Copyright (C) 2007 Google, Inc. |
4 | * | 4 | * |
@@ -18,17 +18,21 @@ | |||
18 | #include <linux/list.h> | 18 | #include <linux/list.h> |
19 | #include <mach/msm_iomap.h> | 19 | #include <mach/msm_iomap.h> |
20 | 20 | ||
21 | struct msm_dmov_errdata { | ||
22 | uint32_t flush[6]; | ||
23 | }; | ||
24 | |||
21 | struct msm_dmov_cmd { | 25 | struct msm_dmov_cmd { |
22 | struct list_head list; | 26 | struct list_head list; |
23 | unsigned int cmdptr; | 27 | unsigned int cmdptr; |
24 | void (*complete_func)(struct msm_dmov_cmd *cmd, unsigned int result); | 28 | void (*complete_func)(struct msm_dmov_cmd *cmd, |
25 | /* void (*user_result_func)(struct msm_dmov_cmd *cmd); */ | 29 | unsigned int result, |
30 | struct msm_dmov_errdata *err); | ||
26 | }; | 31 | }; |
27 | 32 | ||
28 | void msm_dmov_enqueue_cmd(unsigned id, struct msm_dmov_cmd *cmd); | 33 | void msm_dmov_enqueue_cmd(unsigned id, struct msm_dmov_cmd *cmd); |
29 | void msm_dmov_stop_cmd(unsigned id, struct msm_dmov_cmd *cmd); | 34 | void msm_dmov_stop_cmd(unsigned id, struct msm_dmov_cmd *cmd, int graceful); |
30 | int msm_dmov_exec_cmd(unsigned id, unsigned int cmdptr); | 35 | int msm_dmov_exec_cmd(unsigned id, unsigned int cmdptr); |
31 | /* int msm_dmov_exec_cmd_etc(unsigned id, unsigned int cmdptr, int timeout, int interruptible); */ | ||
32 | 36 | ||
33 | 37 | ||
34 | 38 | ||
@@ -122,6 +126,16 @@ typedef struct { | |||
122 | unsigned _reserved; | 126 | unsigned _reserved; |
123 | } dmov_sg; | 127 | } dmov_sg; |
124 | 128 | ||
129 | /* Box mode */ | ||
130 | typedef struct { | ||
131 | uint32_t cmd; | ||
132 | uint32_t src_row_addr; | ||
133 | uint32_t dst_row_addr; | ||
134 | uint32_t src_dst_len; | ||
135 | uint32_t num_rows; | ||
136 | uint32_t row_offset; | ||
137 | } dmov_box; | ||
138 | |||
125 | /* bits for the cmd field of the above structures */ | 139 | /* bits for the cmd field of the above structures */ |
126 | 140 | ||
127 | #define CMD_LC (1 << 31) /* last command */ | 141 | #define CMD_LC (1 << 31) /* last command */ |
diff --git a/arch/arm/mach-msm/include/mach/msm_iomap.h b/arch/arm/mach-msm/include/mach/msm_iomap.h index e221f58ceea3..2f7b4c8620d9 100644 --- a/arch/arm/mach-msm/include/mach/msm_iomap.h +++ b/arch/arm/mach-msm/include/mach/msm_iomap.h | |||
@@ -37,11 +37,17 @@ | |||
37 | * | 37 | * |
38 | */ | 38 | */ |
39 | 39 | ||
40 | #define MSM_VIC_BASE 0xE0000000 | 40 | #ifdef __ASSEMBLY__ |
41 | #define IOMEM(x) x | ||
42 | #else | ||
43 | #define IOMEM(x) ((void __force __iomem *)(x)) | ||
44 | #endif | ||
45 | |||
46 | #define MSM_VIC_BASE IOMEM(0xE0000000) | ||
41 | #define MSM_VIC_PHYS 0xC0000000 | 47 | #define MSM_VIC_PHYS 0xC0000000 |
42 | #define MSM_VIC_SIZE SZ_4K | 48 | #define MSM_VIC_SIZE SZ_4K |
43 | 49 | ||
44 | #define MSM_CSR_BASE 0xE0001000 | 50 | #define MSM_CSR_BASE IOMEM(0xE0001000) |
45 | #define MSM_CSR_PHYS 0xC0100000 | 51 | #define MSM_CSR_PHYS 0xC0100000 |
46 | #define MSM_CSR_SIZE SZ_4K | 52 | #define MSM_CSR_SIZE SZ_4K |
47 | 53 | ||
@@ -49,56 +55,67 @@ | |||
49 | #define MSM_GPT_BASE MSM_CSR_BASE | 55 | #define MSM_GPT_BASE MSM_CSR_BASE |
50 | #define MSM_GPT_SIZE SZ_4K | 56 | #define MSM_GPT_SIZE SZ_4K |
51 | 57 | ||
52 | #define MSM_DMOV_BASE 0xE0002000 | 58 | #define MSM_DMOV_BASE IOMEM(0xE0002000) |
53 | #define MSM_DMOV_PHYS 0xA9700000 | 59 | #define MSM_DMOV_PHYS 0xA9700000 |
54 | #define MSM_DMOV_SIZE SZ_4K | 60 | #define MSM_DMOV_SIZE SZ_4K |
55 | 61 | ||
56 | #define MSM_UART1_BASE 0xE0003000 | 62 | #define MSM_GPIO1_BASE IOMEM(0xE0003000) |
63 | #define MSM_GPIO1_PHYS 0xA9200000 | ||
64 | #define MSM_GPIO1_SIZE SZ_4K | ||
65 | |||
66 | #define MSM_GPIO2_BASE IOMEM(0xE0004000) | ||
67 | #define MSM_GPIO2_PHYS 0xA9300000 | ||
68 | #define MSM_GPIO2_SIZE SZ_4K | ||
69 | |||
70 | #define MSM_CLK_CTL_BASE IOMEM(0xE0005000) | ||
71 | #define MSM_CLK_CTL_PHYS 0xA8600000 | ||
72 | #define MSM_CLK_CTL_SIZE SZ_4K | ||
73 | |||
74 | #define MSM_SHARED_RAM_BASE IOMEM(0xE0100000) | ||
75 | #define MSM_SHARED_RAM_PHYS 0x01F00000 | ||
76 | #define MSM_SHARED_RAM_SIZE SZ_1M | ||
77 | |||
57 | #define MSM_UART1_PHYS 0xA9A00000 | 78 | #define MSM_UART1_PHYS 0xA9A00000 |
58 | #define MSM_UART1_SIZE SZ_4K | 79 | #define MSM_UART1_SIZE SZ_4K |
59 | 80 | ||
60 | #define MSM_UART2_BASE 0xE0004000 | ||
61 | #define MSM_UART2_PHYS 0xA9B00000 | 81 | #define MSM_UART2_PHYS 0xA9B00000 |
62 | #define MSM_UART2_SIZE SZ_4K | 82 | #define MSM_UART2_SIZE SZ_4K |
63 | 83 | ||
64 | #define MSM_UART3_BASE 0xE0005000 | ||
65 | #define MSM_UART3_PHYS 0xA9C00000 | 84 | #define MSM_UART3_PHYS 0xA9C00000 |
66 | #define MSM_UART3_SIZE SZ_4K | 85 | #define MSM_UART3_SIZE SZ_4K |
67 | 86 | ||
68 | #define MSM_I2C_BASE 0xE0006000 | 87 | #define MSM_SDC1_PHYS 0xA0400000 |
69 | #define MSM_I2C_PHYS 0xA9900000 | 88 | #define MSM_SDC1_SIZE SZ_4K |
70 | #define MSM_I2C_SIZE SZ_4K | ||
71 | 89 | ||
72 | #define MSM_GPIO1_BASE 0xE0007000 | 90 | #define MSM_SDC2_PHYS 0xA0500000 |
73 | #define MSM_GPIO1_PHYS 0xA9200000 | 91 | #define MSM_SDC2_SIZE SZ_4K |
74 | #define MSM_GPIO1_SIZE SZ_4K | ||
75 | 92 | ||
76 | #define MSM_GPIO2_BASE 0xE0008000 | 93 | #define MSM_SDC3_PHYS 0xA0600000 |
77 | #define MSM_GPIO2_PHYS 0xA9300000 | 94 | #define MSM_SDC3_SIZE SZ_4K |
78 | #define MSM_GPIO2_SIZE SZ_4K | 95 | |
96 | #define MSM_SDC4_PHYS 0xA0700000 | ||
97 | #define MSM_SDC4_SIZE SZ_4K | ||
98 | |||
99 | #define MSM_I2C_PHYS 0xA9900000 | ||
100 | #define MSM_I2C_SIZE SZ_4K | ||
79 | 101 | ||
80 | #define MSM_HSUSB_BASE 0xE0009000 | ||
81 | #define MSM_HSUSB_PHYS 0xA0800000 | 102 | #define MSM_HSUSB_PHYS 0xA0800000 |
82 | #define MSM_HSUSB_SIZE SZ_4K | 103 | #define MSM_HSUSB_SIZE SZ_4K |
83 | 104 | ||
84 | #define MSM_CLK_CTL_BASE 0xE000A000 | ||
85 | #define MSM_CLK_CTL_PHYS 0xA8600000 | ||
86 | #define MSM_CLK_CTL_SIZE SZ_4K | ||
87 | |||
88 | #define MSM_PMDH_BASE 0xE000B000 | ||
89 | #define MSM_PMDH_PHYS 0xAA600000 | 105 | #define MSM_PMDH_PHYS 0xAA600000 |
90 | #define MSM_PMDH_SIZE SZ_4K | 106 | #define MSM_PMDH_SIZE SZ_4K |
91 | 107 | ||
92 | #define MSM_EMDH_BASE 0xE000C000 | ||
93 | #define MSM_EMDH_PHYS 0xAA700000 | 108 | #define MSM_EMDH_PHYS 0xAA700000 |
94 | #define MSM_EMDH_SIZE SZ_4K | 109 | #define MSM_EMDH_SIZE SZ_4K |
95 | 110 | ||
96 | #define MSM_MDP_BASE 0xE0010000 | ||
97 | #define MSM_MDP_PHYS 0xAA200000 | 111 | #define MSM_MDP_PHYS 0xAA200000 |
98 | #define MSM_MDP_SIZE 0x000F0000 | 112 | #define MSM_MDP_SIZE 0x000F0000 |
99 | 113 | ||
100 | #define MSM_SHARED_RAM_BASE 0xE0100000 | 114 | #define MSM_MDC_PHYS 0xAA500000 |
101 | #define MSM_SHARED_RAM_PHYS 0x01F00000 | 115 | #define MSM_MDC_SIZE SZ_1M |
102 | #define MSM_SHARED_RAM_SIZE SZ_1M | 116 | |
117 | #define MSM_AD5_PHYS 0xAC000000 | ||
118 | #define MSM_AD5_SIZE (SZ_1M*13) | ||
119 | |||
103 | 120 | ||
104 | #endif | 121 | #endif |
diff --git a/arch/arm/mach-msm/include/mach/vreg.h b/arch/arm/mach-msm/include/mach/vreg.h new file mode 100644 index 000000000000..9f9e25cb718e --- /dev/null +++ b/arch/arm/mach-msm/include/mach/vreg.h | |||
@@ -0,0 +1,29 @@ | |||
1 | /* linux/include/asm-arm/arch-msm/vreg.h | ||
2 | * | ||
3 | * Copyright (C) 2008 Google, Inc. | ||
4 | * Author: Brian Swetland <swetland@google.com> | ||
5 | * | ||
6 | * This software is licensed under the terms of the GNU General Public | ||
7 | * License version 2, as published by the Free Software Foundation, and | ||
8 | * may be copied, distributed, and modified under those terms. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | * | ||
15 | */ | ||
16 | |||
17 | #ifndef __ARCH_ARM_MACH_MSM_VREG_H | ||
18 | #define __ARCH_ARM_MACH_MSM_VREG_H | ||
19 | |||
20 | struct vreg; | ||
21 | |||
22 | struct vreg *vreg_get(struct device *dev, const char *id); | ||
23 | void vreg_put(struct vreg *vreg); | ||
24 | |||
25 | int vreg_enable(struct vreg *vreg); | ||
26 | void vreg_disable(struct vreg *vreg); | ||
27 | int vreg_set_level(struct vreg *vreg, unsigned mv); | ||
28 | |||
29 | #endif | ||
diff --git a/arch/arm/mach-msm/io.c b/arch/arm/mach-msm/io.c index 7999e4ba8e20..6e7692ff6f2c 100644 --- a/arch/arm/mach-msm/io.c +++ b/arch/arm/mach-msm/io.c | |||
@@ -28,7 +28,7 @@ | |||
28 | #include <mach/board.h> | 28 | #include <mach/board.h> |
29 | 29 | ||
30 | #define MSM_DEVICE(name) { \ | 30 | #define MSM_DEVICE(name) { \ |
31 | .virtual = MSM_##name##_BASE, \ | 31 | .virtual = (unsigned long) MSM_##name##_BASE, \ |
32 | .pfn = __phys_to_pfn(MSM_##name##_PHYS), \ | 32 | .pfn = __phys_to_pfn(MSM_##name##_PHYS), \ |
33 | .length = MSM_##name##_SIZE, \ | 33 | .length = MSM_##name##_SIZE, \ |
34 | .type = MT_DEVICE_NONSHARED, \ | 34 | .type = MT_DEVICE_NONSHARED, \ |
@@ -39,19 +39,11 @@ static struct map_desc msm_io_desc[] __initdata = { | |||
39 | MSM_DEVICE(CSR), | 39 | MSM_DEVICE(CSR), |
40 | MSM_DEVICE(GPT), | 40 | MSM_DEVICE(GPT), |
41 | MSM_DEVICE(DMOV), | 41 | MSM_DEVICE(DMOV), |
42 | MSM_DEVICE(UART1), | ||
43 | MSM_DEVICE(UART2), | ||
44 | MSM_DEVICE(UART3), | ||
45 | MSM_DEVICE(I2C), | ||
46 | MSM_DEVICE(GPIO1), | 42 | MSM_DEVICE(GPIO1), |
47 | MSM_DEVICE(GPIO2), | 43 | MSM_DEVICE(GPIO2), |
48 | MSM_DEVICE(HSUSB), | ||
49 | MSM_DEVICE(CLK_CTL), | 44 | MSM_DEVICE(CLK_CTL), |
50 | MSM_DEVICE(PMDH), | ||
51 | MSM_DEVICE(EMDH), | ||
52 | MSM_DEVICE(MDP), | ||
53 | { | 45 | { |
54 | .virtual = MSM_SHARED_RAM_BASE, | 46 | .virtual = (unsigned long) MSM_SHARED_RAM_BASE, |
55 | .pfn = __phys_to_pfn(MSM_SHARED_RAM_PHYS), | 47 | .pfn = __phys_to_pfn(MSM_SHARED_RAM_PHYS), |
56 | .length = MSM_SHARED_RAM_SIZE, | 48 | .length = MSM_SHARED_RAM_SIZE, |
57 | .type = MT_DEVICE, | 49 | .type = MT_DEVICE, |
diff --git a/arch/arm/mach-msm/irq.c b/arch/arm/mach-msm/irq.c index 04b8d182ff8a..69ca0dd79bdf 100644 --- a/arch/arm/mach-msm/irq.c +++ b/arch/arm/mach-msm/irq.c | |||
@@ -66,20 +66,20 @@ | |||
66 | 66 | ||
67 | static void msm_irq_ack(unsigned int irq) | 67 | static void msm_irq_ack(unsigned int irq) |
68 | { | 68 | { |
69 | unsigned reg = VIC_INT_CLEAR0 + ((irq & 32) ? 4 : 0); | 69 | void __iomem *reg = VIC_INT_CLEAR0 + ((irq & 32) ? 4 : 0); |
70 | irq = 1 << (irq & 31); | 70 | irq = 1 << (irq & 31); |
71 | writel(irq, reg); | 71 | writel(irq, reg); |
72 | } | 72 | } |
73 | 73 | ||
74 | static void msm_irq_mask(unsigned int irq) | 74 | static void msm_irq_mask(unsigned int irq) |
75 | { | 75 | { |
76 | unsigned reg = VIC_INT_ENCLEAR0 + ((irq & 32) ? 4 : 0); | 76 | void __iomem *reg = VIC_INT_ENCLEAR0 + ((irq & 32) ? 4 : 0); |
77 | writel(1 << (irq & 31), reg); | 77 | writel(1 << (irq & 31), reg); |
78 | } | 78 | } |
79 | 79 | ||
80 | static void msm_irq_unmask(unsigned int irq) | 80 | static void msm_irq_unmask(unsigned int irq) |
81 | { | 81 | { |
82 | unsigned reg = VIC_INT_ENSET0 + ((irq & 32) ? 4 : 0); | 82 | void __iomem *reg = VIC_INT_ENSET0 + ((irq & 32) ? 4 : 0); |
83 | writel(1 << (irq & 31), reg); | 83 | writel(1 << (irq & 31), reg); |
84 | } | 84 | } |
85 | 85 | ||
@@ -90,8 +90,8 @@ static int msm_irq_set_wake(unsigned int irq, unsigned int on) | |||
90 | 90 | ||
91 | static int msm_irq_set_type(unsigned int irq, unsigned int flow_type) | 91 | static int msm_irq_set_type(unsigned int irq, unsigned int flow_type) |
92 | { | 92 | { |
93 | unsigned treg = VIC_INT_TYPE0 + ((irq & 32) ? 4 : 0); | 93 | void __iomem *treg = VIC_INT_TYPE0 + ((irq & 32) ? 4 : 0); |
94 | unsigned preg = VIC_INT_POLARITY0 + ((irq & 32) ? 4 : 0); | 94 | void __iomem *preg = VIC_INT_POLARITY0 + ((irq & 32) ? 4 : 0); |
95 | int b = 1 << (irq & 31); | 95 | int b = 1 << (irq & 31); |
96 | 96 | ||
97 | if (flow_type & (IRQF_TRIGGER_FALLING | IRQF_TRIGGER_LOW)) | 97 | if (flow_type & (IRQF_TRIGGER_FALLING | IRQF_TRIGGER_LOW)) |
diff --git a/arch/arm/mach-msm/proc_comm.c b/arch/arm/mach-msm/proc_comm.c new file mode 100644 index 000000000000..915ee704ed3c --- /dev/null +++ b/arch/arm/mach-msm/proc_comm.c | |||
@@ -0,0 +1,110 @@ | |||
1 | /* arch/arm/mach-msm/proc_comm.c | ||
2 | * | ||
3 | * Copyright (C) 2007-2008 Google, Inc. | ||
4 | * Author: Brian Swetland <swetland@google.com> | ||
5 | * | ||
6 | * This software is licensed under the terms of the GNU General Public | ||
7 | * License version 2, as published by the Free Software Foundation, and | ||
8 | * may be copied, distributed, and modified under those terms. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | * | ||
15 | */ | ||
16 | |||
17 | #include <linux/delay.h> | ||
18 | #include <linux/errno.h> | ||
19 | #include <linux/io.h> | ||
20 | #include <linux/spinlock.h> | ||
21 | #include <mach/msm_iomap.h> | ||
22 | #include <mach/system.h> | ||
23 | |||
24 | #include "proc_comm.h" | ||
25 | |||
26 | #define MSM_A2M_INT(n) (MSM_CSR_BASE + 0x400 + (n) * 4) | ||
27 | |||
28 | static inline void notify_other_proc_comm(void) | ||
29 | { | ||
30 | writel(1, MSM_A2M_INT(6)); | ||
31 | } | ||
32 | |||
33 | #define APP_COMMAND 0x00 | ||
34 | #define APP_STATUS 0x04 | ||
35 | #define APP_DATA1 0x08 | ||
36 | #define APP_DATA2 0x0C | ||
37 | |||
38 | #define MDM_COMMAND 0x10 | ||
39 | #define MDM_STATUS 0x14 | ||
40 | #define MDM_DATA1 0x18 | ||
41 | #define MDM_DATA2 0x1C | ||
42 | |||
43 | static DEFINE_SPINLOCK(proc_comm_lock); | ||
44 | |||
45 | /* The higher level SMD support will install this to | ||
46 | * provide a way to check for and handle modem restart. | ||
47 | */ | ||
48 | int (*msm_check_for_modem_crash)(void); | ||
49 | |||
50 | /* Poll for a state change, checking for possible | ||
51 | * modem crashes along the way (so we don't wait | ||
52 | * forever while the ARM9 is blowing up). | ||
53 | * | ||
54 | * Return an error in the event of a modem crash and | ||
55 | * restart so the msm_proc_comm() routine can restart | ||
56 | * the operation from the beginning. | ||
57 | */ | ||
58 | static int proc_comm_wait_for(void __iomem *addr, unsigned value) | ||
59 | { | ||
60 | for (;;) { | ||
61 | if (readl(addr) == value) | ||
62 | return 0; | ||
63 | |||
64 | if (msm_check_for_modem_crash) | ||
65 | if (msm_check_for_modem_crash()) | ||
66 | return -EAGAIN; | ||
67 | } | ||
68 | } | ||
69 | |||
70 | int msm_proc_comm(unsigned cmd, unsigned *data1, unsigned *data2) | ||
71 | { | ||
72 | void __iomem *base = MSM_SHARED_RAM_BASE; | ||
73 | unsigned long flags; | ||
74 | int ret; | ||
75 | |||
76 | spin_lock_irqsave(&proc_comm_lock, flags); | ||
77 | |||
78 | for (;;) { | ||
79 | if (proc_comm_wait_for(base + MDM_STATUS, PCOM_READY)) | ||
80 | continue; | ||
81 | |||
82 | writel(cmd, base + APP_COMMAND); | ||
83 | writel(data1 ? *data1 : 0, base + APP_DATA1); | ||
84 | writel(data2 ? *data2 : 0, base + APP_DATA2); | ||
85 | |||
86 | notify_other_proc_comm(); | ||
87 | |||
88 | if (proc_comm_wait_for(base + APP_COMMAND, PCOM_CMD_DONE)) | ||
89 | continue; | ||
90 | |||
91 | if (readl(base + APP_STATUS) != PCOM_CMD_FAIL) { | ||
92 | if (data1) | ||
93 | *data1 = readl(base + APP_DATA1); | ||
94 | if (data2) | ||
95 | *data2 = readl(base + APP_DATA2); | ||
96 | ret = 0; | ||
97 | } else { | ||
98 | ret = -EIO; | ||
99 | } | ||
100 | break; | ||
101 | } | ||
102 | |||
103 | writel(PCOM_CMD_IDLE, base + APP_COMMAND); | ||
104 | |||
105 | spin_unlock_irqrestore(&proc_comm_lock, flags); | ||
106 | |||
107 | return ret; | ||
108 | } | ||
109 | |||
110 | |||
diff --git a/arch/arm/mach-msm/proc_comm.h b/arch/arm/mach-msm/proc_comm.h new file mode 100644 index 000000000000..834760f25692 --- /dev/null +++ b/arch/arm/mach-msm/proc_comm.h | |||
@@ -0,0 +1,165 @@ | |||
1 | /* arch/arm/mach-msm/proc_comm.h | ||
2 | * | ||
3 | * Copyright (c) 2007 QUALCOMM Incorporated | ||
4 | * | ||
5 | * This software is licensed under the terms of the GNU General Public | ||
6 | * License version 2, as published by the Free Software Foundation, and | ||
7 | * may be copied, distributed, and modified under those terms. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | */ | ||
15 | |||
16 | #ifndef _ARCH_ARM_MACH_MSM_PROC_COMM_H_ | ||
17 | #define _ARCH_ARM_MACH_MSM_PROC_COMM_H_ | ||
18 | |||
19 | enum { | ||
20 | PCOM_CMD_IDLE = 0x0, | ||
21 | PCOM_CMD_DONE, | ||
22 | PCOM_RESET_APPS, | ||
23 | PCOM_RESET_CHIP, | ||
24 | PCOM_CONFIG_NAND_MPU, | ||
25 | PCOM_CONFIG_USB_CLKS, | ||
26 | PCOM_GET_POWER_ON_STATUS, | ||
27 | PCOM_GET_WAKE_UP_STATUS, | ||
28 | PCOM_GET_BATT_LEVEL, | ||
29 | PCOM_CHG_IS_CHARGING, | ||
30 | PCOM_POWER_DOWN, | ||
31 | PCOM_USB_PIN_CONFIG, | ||
32 | PCOM_USB_PIN_SEL, | ||
33 | PCOM_SET_RTC_ALARM, | ||
34 | PCOM_NV_READ, | ||
35 | PCOM_NV_WRITE, | ||
36 | PCOM_GET_UUID_HIGH, | ||
37 | PCOM_GET_UUID_LOW, | ||
38 | PCOM_GET_HW_ENTROPY, | ||
39 | PCOM_RPC_GPIO_TLMM_CONFIG_REMOTE, | ||
40 | PCOM_CLKCTL_RPC_ENABLE, | ||
41 | PCOM_CLKCTL_RPC_DISABLE, | ||
42 | PCOM_CLKCTL_RPC_RESET, | ||
43 | PCOM_CLKCTL_RPC_SET_FLAGS, | ||
44 | PCOM_CLKCTL_RPC_SET_RATE, | ||
45 | PCOM_CLKCTL_RPC_MIN_RATE, | ||
46 | PCOM_CLKCTL_RPC_MAX_RATE, | ||
47 | PCOM_CLKCTL_RPC_RATE, | ||
48 | PCOM_CLKCTL_RPC_PLL_REQUEST, | ||
49 | PCOM_CLKCTL_RPC_ENABLED, | ||
50 | PCOM_VREG_SWITCH, | ||
51 | PCOM_VREG_SET_LEVEL, | ||
52 | PCOM_GPIO_TLMM_CONFIG_GROUP, | ||
53 | PCOM_GPIO_TLMM_UNCONFIG_GROUP, | ||
54 | PCOM_NV_WRITE_BYTES_4_7, | ||
55 | PCOM_CONFIG_DISP, | ||
56 | PCOM_GET_FTM_BOOT_COUNT, | ||
57 | PCOM_RPC_GPIO_TLMM_CONFIG_EX, | ||
58 | PCOM_PM_MPP_CONFIG, | ||
59 | PCOM_GPIO_IN, | ||
60 | PCOM_GPIO_OUT, | ||
61 | PCOM_RESET_MODEM, | ||
62 | PCOM_RESET_CHIP_IMM, | ||
63 | PCOM_PM_VID_EN, | ||
64 | PCOM_VREG_PULLDOWN, | ||
65 | PCOM_NUM_CMDS, | ||
66 | }; | ||
67 | |||
68 | enum { | ||
69 | PCOM_INVALID_STATUS = 0x0, | ||
70 | PCOM_READY, | ||
71 | PCOM_CMD_RUNNING, | ||
72 | PCOM_CMD_SUCCESS, | ||
73 | PCOM_CMD_FAIL, | ||
74 | }; | ||
75 | |||
76 | /* List of VREGs that support the Pull Down Resistor setting. */ | ||
77 | enum { | ||
78 | PM_VREG_PDOWN_MSMA_ID, | ||
79 | PM_VREG_PDOWN_MSMP_ID, | ||
80 | PM_VREG_PDOWN_MSME1_ID, /* Not supported in Panoramix */ | ||
81 | PM_VREG_PDOWN_MSMC1_ID, /* Not supported in PM6620 */ | ||
82 | PM_VREG_PDOWN_MSMC2_ID, /* Supported in PM7500 only */ | ||
83 | PM_VREG_PDOWN_GP3_ID, /* Supported in PM7500 only */ | ||
84 | PM_VREG_PDOWN_MSME2_ID, /* Supported in PM7500 and Panoramix only */ | ||
85 | PM_VREG_PDOWN_GP4_ID, /* Supported in PM7500 only */ | ||
86 | PM_VREG_PDOWN_GP1_ID, /* Supported in PM7500 only */ | ||
87 | PM_VREG_PDOWN_TCXO_ID, | ||
88 | PM_VREG_PDOWN_PA_ID, | ||
89 | PM_VREG_PDOWN_RFTX_ID, | ||
90 | PM_VREG_PDOWN_RFRX1_ID, | ||
91 | PM_VREG_PDOWN_RFRX2_ID, | ||
92 | PM_VREG_PDOWN_SYNT_ID, | ||
93 | PM_VREG_PDOWN_WLAN_ID, | ||
94 | PM_VREG_PDOWN_USB_ID, | ||
95 | PM_VREG_PDOWN_MMC_ID, | ||
96 | PM_VREG_PDOWN_RUIM_ID, | ||
97 | PM_VREG_PDOWN_MSMC0_ID, /* Supported in PM6610 only */ | ||
98 | PM_VREG_PDOWN_GP2_ID, /* Supported in PM7500 only */ | ||
99 | PM_VREG_PDOWN_GP5_ID, /* Supported in PM7500 only */ | ||
100 | PM_VREG_PDOWN_GP6_ID, /* Supported in PM7500 only */ | ||
101 | PM_VREG_PDOWN_RF_ID, | ||
102 | PM_VREG_PDOWN_RF_VCO_ID, | ||
103 | PM_VREG_PDOWN_MPLL_ID, | ||
104 | PM_VREG_PDOWN_S2_ID, | ||
105 | PM_VREG_PDOWN_S3_ID, | ||
106 | PM_VREG_PDOWN_RFUBM_ID, | ||
107 | |||
108 | /* new for HAN */ | ||
109 | PM_VREG_PDOWN_RF1_ID, | ||
110 | PM_VREG_PDOWN_RF2_ID, | ||
111 | PM_VREG_PDOWN_RFA_ID, | ||
112 | PM_VREG_PDOWN_CDC2_ID, | ||
113 | PM_VREG_PDOWN_RFTX2_ID, | ||
114 | PM_VREG_PDOWN_USIM_ID, | ||
115 | PM_VREG_PDOWN_USB2P6_ID, | ||
116 | PM_VREG_PDOWN_USB3P3_ID, | ||
117 | PM_VREG_PDOWN_INVALID_ID, | ||
118 | |||
119 | /* backward compatible enums only */ | ||
120 | PM_VREG_PDOWN_CAM_ID = PM_VREG_PDOWN_GP1_ID, | ||
121 | PM_VREG_PDOWN_MDDI_ID = PM_VREG_PDOWN_GP2_ID, | ||
122 | PM_VREG_PDOWN_RUIM2_ID = PM_VREG_PDOWN_GP3_ID, | ||
123 | PM_VREG_PDOWN_AUX_ID = PM_VREG_PDOWN_GP4_ID, | ||
124 | PM_VREG_PDOWN_AUX2_ID = PM_VREG_PDOWN_GP5_ID, | ||
125 | PM_VREG_PDOWN_BT_ID = PM_VREG_PDOWN_GP6_ID, | ||
126 | |||
127 | PM_VREG_PDOWN_MSME_ID = PM_VREG_PDOWN_MSME1_ID, | ||
128 | PM_VREG_PDOWN_MSMC_ID = PM_VREG_PDOWN_MSMC1_ID, | ||
129 | PM_VREG_PDOWN_RFA1_ID = PM_VREG_PDOWN_RFRX2_ID, | ||
130 | PM_VREG_PDOWN_RFA2_ID = PM_VREG_PDOWN_RFTX2_ID, | ||
131 | PM_VREG_PDOWN_XO_ID = PM_VREG_PDOWN_TCXO_ID | ||
132 | }; | ||
133 | |||
134 | /* gpio info for PCOM_RPC_GPIO_TLMM_CONFIG_EX */ | ||
135 | |||
136 | #define GPIO_ENABLE 0 | ||
137 | #define GPIO_DISABLE 1 | ||
138 | |||
139 | #define GPIO_INPUT 0 | ||
140 | #define GPIO_OUTPUT 1 | ||
141 | |||
142 | #define GPIO_NO_PULL 0 | ||
143 | #define GPIO_PULL_DOWN 1 | ||
144 | #define GPIO_KEEPER 2 | ||
145 | #define GPIO_PULL_UP 3 | ||
146 | |||
147 | #define GPIO_2MA 0 | ||
148 | #define GPIO_4MA 1 | ||
149 | #define GPIO_6MA 2 | ||
150 | #define GPIO_8MA 3 | ||
151 | #define GPIO_10MA 4 | ||
152 | #define GPIO_12MA 5 | ||
153 | #define GPIO_14MA 6 | ||
154 | #define GPIO_16MA 7 | ||
155 | |||
156 | #define PCOM_GPIO_CFG(gpio, func, dir, pull, drvstr) \ | ||
157 | ((((gpio) & 0x3FF) << 4) | \ | ||
158 | ((func) & 0xf) | \ | ||
159 | (((dir) & 0x1) << 14) | \ | ||
160 | (((pull) & 0x3) << 15) | \ | ||
161 | (((drvstr) & 0xF) << 17)) | ||
162 | |||
163 | int msm_proc_comm(unsigned cmd, unsigned *data1, unsigned *data2); | ||
164 | |||
165 | #endif | ||
diff --git a/arch/arm/mach-msm/timer.c b/arch/arm/mach-msm/timer.c index 2bffe9b7e9fe..345a14cb73c3 100644 --- a/arch/arm/mach-msm/timer.c +++ b/arch/arm/mach-msm/timer.c | |||
@@ -45,7 +45,7 @@ struct msm_clock { | |||
45 | struct clock_event_device clockevent; | 45 | struct clock_event_device clockevent; |
46 | struct clocksource clocksource; | 46 | struct clocksource clocksource; |
47 | struct irqaction irq; | 47 | struct irqaction irq; |
48 | uint32_t regbase; | 48 | void __iomem *regbase; |
49 | uint32_t freq; | 49 | uint32_t freq; |
50 | uint32_t shift; | 50 | uint32_t shift; |
51 | }; | 51 | }; |
diff --git a/arch/arm/mach-msm/vreg.c b/arch/arm/mach-msm/vreg.c new file mode 100644 index 000000000000..fcb0b9f25684 --- /dev/null +++ b/arch/arm/mach-msm/vreg.c | |||
@@ -0,0 +1,143 @@ | |||
1 | /* arch/arm/mach-msm/vreg.c | ||
2 | * | ||
3 | * Copyright (C) 2008 Google, Inc. | ||
4 | * Author: Brian Swetland <swetland@google.com> | ||
5 | * | ||
6 | * This software is licensed under the terms of the GNU General Public | ||
7 | * License version 2, as published by the Free Software Foundation, and | ||
8 | * may be copied, distributed, and modified under those terms. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | * | ||
15 | */ | ||
16 | |||
17 | #include <linux/kernel.h> | ||
18 | #include <linux/device.h> | ||
19 | #include <linux/init.h> | ||
20 | #include <linux/debugfs.h> | ||
21 | #include <mach/vreg.h> | ||
22 | |||
23 | #include "proc_comm.h" | ||
24 | |||
25 | struct vreg { | ||
26 | const char *name; | ||
27 | unsigned id; | ||
28 | }; | ||
29 | |||
30 | #define VREG(_name, _id) { .name = _name, .id = _id, } | ||
31 | |||
32 | static struct vreg vregs[] = { | ||
33 | VREG("msma", 0), | ||
34 | VREG("msmp", 1), | ||
35 | VREG("msme1", 2), | ||
36 | VREG("msmc1", 3), | ||
37 | VREG("msmc2", 4), | ||
38 | VREG("gp3", 5), | ||
39 | VREG("msme2", 6), | ||
40 | VREG("gp4", 7), | ||
41 | VREG("gp1", 8), | ||
42 | VREG("tcxo", 9), | ||
43 | VREG("pa", 10), | ||
44 | VREG("rftx", 11), | ||
45 | VREG("rfrx1", 12), | ||
46 | VREG("rfrx2", 13), | ||
47 | VREG("synt", 14), | ||
48 | VREG("wlan", 15), | ||
49 | VREG("usb", 16), | ||
50 | VREG("boost", 17), | ||
51 | VREG("mmc", 18), | ||
52 | VREG("ruim", 19), | ||
53 | VREG("msmc0", 20), | ||
54 | VREG("gp2", 21), | ||
55 | VREG("gp5", 22), | ||
56 | VREG("gp6", 23), | ||
57 | VREG("rf", 24), | ||
58 | VREG("rf_vco", 26), | ||
59 | VREG("mpll", 27), | ||
60 | VREG("s2", 28), | ||
61 | VREG("s3", 29), | ||
62 | VREG("rfubm", 30), | ||
63 | VREG("ncp", 31), | ||
64 | }; | ||
65 | |||
66 | struct vreg *vreg_get(struct device *dev, const char *id) | ||
67 | { | ||
68 | int n; | ||
69 | for (n = 0; n < ARRAY_SIZE(vregs); n++) { | ||
70 | if (!strcmp(vregs[n].name, id)) | ||
71 | return vregs + n; | ||
72 | } | ||
73 | return 0; | ||
74 | } | ||
75 | |||
76 | void vreg_put(struct vreg *vreg) | ||
77 | { | ||
78 | } | ||
79 | |||
80 | int vreg_enable(struct vreg *vreg) | ||
81 | { | ||
82 | unsigned id = vreg->id; | ||
83 | unsigned enable = 1; | ||
84 | return msm_proc_comm(PCOM_VREG_SWITCH, &id, &enable); | ||
85 | } | ||
86 | |||
87 | void vreg_disable(struct vreg *vreg) | ||
88 | { | ||
89 | unsigned id = vreg->id; | ||
90 | unsigned enable = 0; | ||
91 | msm_proc_comm(PCOM_VREG_SWITCH, &id, &enable); | ||
92 | } | ||
93 | |||
94 | int vreg_set_level(struct vreg *vreg, unsigned mv) | ||
95 | { | ||
96 | unsigned id = vreg->id; | ||
97 | return msm_proc_comm(PCOM_VREG_SET_LEVEL, &id, &mv); | ||
98 | } | ||
99 | |||
100 | #if defined(CONFIG_DEBUG_FS) | ||
101 | |||
102 | static int vreg_debug_set(void *data, u64 val) | ||
103 | { | ||
104 | struct vreg *vreg = data; | ||
105 | switch (val) { | ||
106 | case 0: | ||
107 | vreg_disable(vreg); | ||
108 | break; | ||
109 | case 1: | ||
110 | vreg_enable(vreg); | ||
111 | break; | ||
112 | default: | ||
113 | vreg_set_level(vreg, val); | ||
114 | break; | ||
115 | } | ||
116 | return 0; | ||
117 | } | ||
118 | |||
119 | static int vreg_debug_get(void *data, u64 *val) | ||
120 | { | ||
121 | return -ENOSYS; | ||
122 | } | ||
123 | |||
124 | DEFINE_SIMPLE_ATTRIBUTE(vreg_fops, vreg_debug_get, vreg_debug_set, "%llu\n"); | ||
125 | |||
126 | static int __init vreg_debug_init(void) | ||
127 | { | ||
128 | struct dentry *dent; | ||
129 | int n; | ||
130 | |||
131 | dent = debugfs_create_dir("vreg", 0); | ||
132 | if (IS_ERR(dent)) | ||
133 | return 0; | ||
134 | |||
135 | for (n = 0; n < ARRAY_SIZE(vregs); n++) | ||
136 | (void) debugfs_create_file(vregs[n].name, 0644, | ||
137 | dent, vregs + n, &vreg_fops); | ||
138 | |||
139 | return 0; | ||
140 | } | ||
141 | |||
142 | device_initcall(vreg_debug_init); | ||
143 | #endif | ||
diff --git a/arch/arm/mach-mv78xx0/db78x00-bp-setup.c b/arch/arm/mach-mv78xx0/db78x00-bp-setup.c index 49f434c39eb7..2e285bbb7bbd 100644 --- a/arch/arm/mach-mv78xx0/db78x00-bp-setup.c +++ b/arch/arm/mach-mv78xx0/db78x00-bp-setup.c | |||
@@ -13,6 +13,7 @@ | |||
13 | #include <linux/platform_device.h> | 13 | #include <linux/platform_device.h> |
14 | #include <linux/ata_platform.h> | 14 | #include <linux/ata_platform.h> |
15 | #include <linux/mv643xx_eth.h> | 15 | #include <linux/mv643xx_eth.h> |
16 | #include <linux/ethtool.h> | ||
16 | #include <mach/mv78xx0.h> | 17 | #include <mach/mv78xx0.h> |
17 | #include <asm/mach-types.h> | 18 | #include <asm/mach-types.h> |
18 | #include <asm/mach/arch.h> | 19 | #include <asm/mach/arch.h> |
@@ -28,10 +29,14 @@ static struct mv643xx_eth_platform_data db78x00_ge01_data = { | |||
28 | 29 | ||
29 | static struct mv643xx_eth_platform_data db78x00_ge10_data = { | 30 | static struct mv643xx_eth_platform_data db78x00_ge10_data = { |
30 | .phy_addr = MV643XX_ETH_PHY_NONE, | 31 | .phy_addr = MV643XX_ETH_PHY_NONE, |
32 | .speed = SPEED_1000, | ||
33 | .duplex = DUPLEX_FULL, | ||
31 | }; | 34 | }; |
32 | 35 | ||
33 | static struct mv643xx_eth_platform_data db78x00_ge11_data = { | 36 | static struct mv643xx_eth_platform_data db78x00_ge11_data = { |
34 | .phy_addr = MV643XX_ETH_PHY_NONE, | 37 | .phy_addr = MV643XX_ETH_PHY_NONE, |
38 | .speed = SPEED_1000, | ||
39 | .duplex = DUPLEX_FULL, | ||
35 | }; | 40 | }; |
36 | 41 | ||
37 | static struct mv_sata_platform_data db78x00_sata_data = { | 42 | static struct mv_sata_platform_data db78x00_sata_data = { |
diff --git a/arch/arm/mach-orion5x/common.c b/arch/arm/mach-orion5x/common.c index 9625ef5975d0..437065c25c9c 100644 --- a/arch/arm/mach-orion5x/common.c +++ b/arch/arm/mach-orion5x/common.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/mv643xx_i2c.h> | 19 | #include <linux/mv643xx_i2c.h> |
20 | #include <linux/ata_platform.h> | 20 | #include <linux/ata_platform.h> |
21 | #include <linux/spi/orion_spi.h> | 21 | #include <linux/spi/orion_spi.h> |
22 | #include <net/dsa.h> | ||
22 | #include <asm/page.h> | 23 | #include <asm/page.h> |
23 | #include <asm/setup.h> | 24 | #include <asm/setup.h> |
24 | #include <asm/timex.h> | 25 | #include <asm/timex.h> |
@@ -198,6 +199,40 @@ void __init orion5x_eth_init(struct mv643xx_eth_platform_data *eth_data) | |||
198 | 199 | ||
199 | 200 | ||
200 | /***************************************************************************** | 201 | /***************************************************************************** |
202 | * Ethernet switch | ||
203 | ****************************************************************************/ | ||
204 | static struct resource orion5x_switch_resources[] = { | ||
205 | { | ||
206 | .start = 0, | ||
207 | .end = 0, | ||
208 | .flags = IORESOURCE_IRQ, | ||
209 | }, | ||
210 | }; | ||
211 | |||
212 | static struct platform_device orion5x_switch_device = { | ||
213 | .name = "dsa", | ||
214 | .id = 0, | ||
215 | .num_resources = 0, | ||
216 | .resource = orion5x_switch_resources, | ||
217 | }; | ||
218 | |||
219 | void __init orion5x_eth_switch_init(struct dsa_platform_data *d, int irq) | ||
220 | { | ||
221 | if (irq != NO_IRQ) { | ||
222 | orion5x_switch_resources[0].start = irq; | ||
223 | orion5x_switch_resources[0].end = irq; | ||
224 | orion5x_switch_device.num_resources = 1; | ||
225 | } | ||
226 | |||
227 | d->mii_bus = &orion5x_eth_shared.dev; | ||
228 | d->netdev = &orion5x_eth.dev; | ||
229 | orion5x_switch_device.dev.platform_data = d; | ||
230 | |||
231 | platform_device_register(&orion5x_switch_device); | ||
232 | } | ||
233 | |||
234 | |||
235 | /***************************************************************************** | ||
201 | * I2C | 236 | * I2C |
202 | ****************************************************************************/ | 237 | ****************************************************************************/ |
203 | static struct mv64xxx_i2c_pdata orion5x_i2c_pdata = { | 238 | static struct mv64xxx_i2c_pdata orion5x_i2c_pdata = { |
@@ -275,7 +310,8 @@ void __init orion5x_sata_init(struct mv_sata_platform_data *sata_data) | |||
275 | * SPI | 310 | * SPI |
276 | ****************************************************************************/ | 311 | ****************************************************************************/ |
277 | static struct orion_spi_info orion5x_spi_plat_data = { | 312 | static struct orion_spi_info orion5x_spi_plat_data = { |
278 | .tclk = 0, | 313 | .tclk = 0, |
314 | .enable_clock_fix = 1, | ||
279 | }; | 315 | }; |
280 | 316 | ||
281 | static struct resource orion5x_spi_resources[] = { | 317 | static struct resource orion5x_spi_resources[] = { |
diff --git a/arch/arm/mach-orion5x/common.h b/arch/arm/mach-orion5x/common.h index 1f8b2da676a5..a000c7c6ee96 100644 --- a/arch/arm/mach-orion5x/common.h +++ b/arch/arm/mach-orion5x/common.h | |||
@@ -1,6 +1,7 @@ | |||
1 | #ifndef __ARCH_ORION5X_COMMON_H | 1 | #ifndef __ARCH_ORION5X_COMMON_H |
2 | #define __ARCH_ORION5X_COMMON_H | 2 | #define __ARCH_ORION5X_COMMON_H |
3 | 3 | ||
4 | struct dsa_platform_data; | ||
4 | struct mv643xx_eth_platform_data; | 5 | struct mv643xx_eth_platform_data; |
5 | struct mv_sata_platform_data; | 6 | struct mv_sata_platform_data; |
6 | 7 | ||
@@ -29,6 +30,7 @@ void orion5x_setup_pcie_wa_win(u32 base, u32 size); | |||
29 | void orion5x_ehci0_init(void); | 30 | void orion5x_ehci0_init(void); |
30 | void orion5x_ehci1_init(void); | 31 | void orion5x_ehci1_init(void); |
31 | void orion5x_eth_init(struct mv643xx_eth_platform_data *eth_data); | 32 | void orion5x_eth_init(struct mv643xx_eth_platform_data *eth_data); |
33 | void orion5x_eth_switch_init(struct dsa_platform_data *d, int irq); | ||
32 | void orion5x_i2c_init(void); | 34 | void orion5x_i2c_init(void); |
33 | void orion5x_sata_init(struct mv_sata_platform_data *sata_data); | 35 | void orion5x_sata_init(struct mv_sata_platform_data *sata_data); |
34 | void orion5x_spi_init(void); | 36 | void orion5x_spi_init(void); |
diff --git a/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c b/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c index 500cdadaf09c..15f53235ee30 100644 --- a/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c +++ b/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/mtd/physmap.h> | 16 | #include <linux/mtd/physmap.h> |
17 | #include <linux/mv643xx_eth.h> | 17 | #include <linux/mv643xx_eth.h> |
18 | #include <linux/ethtool.h> | 18 | #include <linux/ethtool.h> |
19 | #include <net/dsa.h> | ||
19 | #include <asm/mach-types.h> | 20 | #include <asm/mach-types.h> |
20 | #include <asm/gpio.h> | 21 | #include <asm/gpio.h> |
21 | #include <asm/leds.h> | 22 | #include <asm/leds.h> |
@@ -93,6 +94,15 @@ static struct mv643xx_eth_platform_data rd88f5181l_fxo_eth_data = { | |||
93 | .duplex = DUPLEX_FULL, | 94 | .duplex = DUPLEX_FULL, |
94 | }; | 95 | }; |
95 | 96 | ||
97 | static struct dsa_platform_data rd88f5181l_fxo_switch_data = { | ||
98 | .port_names[0] = "lan2", | ||
99 | .port_names[1] = "lan1", | ||
100 | .port_names[2] = "wan", | ||
101 | .port_names[3] = "cpu", | ||
102 | .port_names[5] = "lan4", | ||
103 | .port_names[7] = "lan3", | ||
104 | }; | ||
105 | |||
96 | static void __init rd88f5181l_fxo_init(void) | 106 | static void __init rd88f5181l_fxo_init(void) |
97 | { | 107 | { |
98 | /* | 108 | /* |
@@ -107,6 +117,7 @@ static void __init rd88f5181l_fxo_init(void) | |||
107 | */ | 117 | */ |
108 | orion5x_ehci0_init(); | 118 | orion5x_ehci0_init(); |
109 | orion5x_eth_init(&rd88f5181l_fxo_eth_data); | 119 | orion5x_eth_init(&rd88f5181l_fxo_eth_data); |
120 | orion5x_eth_switch_init(&rd88f5181l_fxo_switch_data, NO_IRQ); | ||
110 | orion5x_uart0_init(); | 121 | orion5x_uart0_init(); |
111 | 122 | ||
112 | orion5x_setup_dev_boot_win(RD88F5181L_FXO_NOR_BOOT_BASE, | 123 | orion5x_setup_dev_boot_win(RD88F5181L_FXO_NOR_BOOT_BASE, |
diff --git a/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c b/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c index ebde81416499..8ad3934399d4 100644 --- a/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c +++ b/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/mv643xx_eth.h> | 17 | #include <linux/mv643xx_eth.h> |
18 | #include <linux/ethtool.h> | 18 | #include <linux/ethtool.h> |
19 | #include <linux/i2c.h> | 19 | #include <linux/i2c.h> |
20 | #include <net/dsa.h> | ||
20 | #include <asm/mach-types.h> | 21 | #include <asm/mach-types.h> |
21 | #include <asm/gpio.h> | 22 | #include <asm/gpio.h> |
22 | #include <asm/leds.h> | 23 | #include <asm/leds.h> |
@@ -94,6 +95,15 @@ static struct mv643xx_eth_platform_data rd88f5181l_ge_eth_data = { | |||
94 | .duplex = DUPLEX_FULL, | 95 | .duplex = DUPLEX_FULL, |
95 | }; | 96 | }; |
96 | 97 | ||
98 | static struct dsa_platform_data rd88f5181l_ge_switch_data = { | ||
99 | .port_names[0] = "lan2", | ||
100 | .port_names[1] = "lan1", | ||
101 | .port_names[2] = "wan", | ||
102 | .port_names[3] = "cpu", | ||
103 | .port_names[5] = "lan4", | ||
104 | .port_names[7] = "lan3", | ||
105 | }; | ||
106 | |||
97 | static struct i2c_board_info __initdata rd88f5181l_ge_i2c_rtc = { | 107 | static struct i2c_board_info __initdata rd88f5181l_ge_i2c_rtc = { |
98 | I2C_BOARD_INFO("ds1338", 0x68), | 108 | I2C_BOARD_INFO("ds1338", 0x68), |
99 | }; | 109 | }; |
@@ -112,6 +122,7 @@ static void __init rd88f5181l_ge_init(void) | |||
112 | */ | 122 | */ |
113 | orion5x_ehci0_init(); | 123 | orion5x_ehci0_init(); |
114 | orion5x_eth_init(&rd88f5181l_ge_eth_data); | 124 | orion5x_eth_init(&rd88f5181l_ge_eth_data); |
125 | orion5x_eth_switch_init(&rd88f5181l_ge_switch_data, gpio_to_irq(8)); | ||
115 | orion5x_i2c_init(); | 126 | orion5x_i2c_init(); |
116 | orion5x_uart0_init(); | 127 | orion5x_uart0_init(); |
117 | 128 | ||
diff --git a/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c b/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c index 40e049539091..262e25e4dace 100644 --- a/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c +++ b/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/spi/orion_spi.h> | 19 | #include <linux/spi/orion_spi.h> |
20 | #include <linux/spi/flash.h> | 20 | #include <linux/spi/flash.h> |
21 | #include <linux/ethtool.h> | 21 | #include <linux/ethtool.h> |
22 | #include <net/dsa.h> | ||
22 | #include <asm/mach-types.h> | 23 | #include <asm/mach-types.h> |
23 | #include <asm/gpio.h> | 24 | #include <asm/gpio.h> |
24 | #include <asm/leds.h> | 25 | #include <asm/leds.h> |
@@ -34,6 +35,15 @@ static struct mv643xx_eth_platform_data rd88f6183ap_ge_eth_data = { | |||
34 | .duplex = DUPLEX_FULL, | 35 | .duplex = DUPLEX_FULL, |
35 | }; | 36 | }; |
36 | 37 | ||
38 | static struct dsa_platform_data rd88f6183ap_ge_switch_data = { | ||
39 | .port_names[0] = "lan1", | ||
40 | .port_names[1] = "lan2", | ||
41 | .port_names[2] = "lan3", | ||
42 | .port_names[3] = "lan4", | ||
43 | .port_names[4] = "wan", | ||
44 | .port_names[5] = "cpu", | ||
45 | }; | ||
46 | |||
37 | static struct mtd_partition rd88f6183ap_ge_partitions[] = { | 47 | static struct mtd_partition rd88f6183ap_ge_partitions[] = { |
38 | { | 48 | { |
39 | .name = "kernel", | 49 | .name = "kernel", |
@@ -79,6 +89,7 @@ static void __init rd88f6183ap_ge_init(void) | |||
79 | */ | 89 | */ |
80 | orion5x_ehci0_init(); | 90 | orion5x_ehci0_init(); |
81 | orion5x_eth_init(&rd88f6183ap_ge_eth_data); | 91 | orion5x_eth_init(&rd88f6183ap_ge_eth_data); |
92 | orion5x_eth_switch_init(&rd88f6183ap_ge_switch_data, gpio_to_irq(3)); | ||
82 | spi_register_board_info(rd88f6183ap_ge_spi_slave_info, | 93 | spi_register_board_info(rd88f6183ap_ge_spi_slave_info, |
83 | ARRAY_SIZE(rd88f6183ap_ge_spi_slave_info)); | 94 | ARRAY_SIZE(rd88f6183ap_ge_spi_slave_info)); |
84 | orion5x_spi_init(); | 95 | orion5x_spi_init(); |
diff --git a/arch/arm/mach-orion5x/wrt350n-v2-setup.c b/arch/arm/mach-orion5x/wrt350n-v2-setup.c index 9a4fd5256462..cc8f89200865 100644 --- a/arch/arm/mach-orion5x/wrt350n-v2-setup.c +++ b/arch/arm/mach-orion5x/wrt350n-v2-setup.c | |||
@@ -15,6 +15,7 @@ | |||
15 | #include <linux/mtd/physmap.h> | 15 | #include <linux/mtd/physmap.h> |
16 | #include <linux/mv643xx_eth.h> | 16 | #include <linux/mv643xx_eth.h> |
17 | #include <linux/ethtool.h> | 17 | #include <linux/ethtool.h> |
18 | #include <net/dsa.h> | ||
18 | #include <asm/mach-types.h> | 19 | #include <asm/mach-types.h> |
19 | #include <asm/gpio.h> | 20 | #include <asm/gpio.h> |
20 | #include <asm/mach/arch.h> | 21 | #include <asm/mach/arch.h> |
@@ -105,6 +106,15 @@ static struct mv643xx_eth_platform_data wrt350n_v2_eth_data = { | |||
105 | .duplex = DUPLEX_FULL, | 106 | .duplex = DUPLEX_FULL, |
106 | }; | 107 | }; |
107 | 108 | ||
109 | static struct dsa_platform_data wrt350n_v2_switch_data = { | ||
110 | .port_names[0] = "lan2", | ||
111 | .port_names[1] = "lan1", | ||
112 | .port_names[2] = "wan", | ||
113 | .port_names[3] = "cpu", | ||
114 | .port_names[5] = "lan3", | ||
115 | .port_names[7] = "lan4", | ||
116 | }; | ||
117 | |||
108 | static void __init wrt350n_v2_init(void) | 118 | static void __init wrt350n_v2_init(void) |
109 | { | 119 | { |
110 | /* | 120 | /* |
@@ -119,6 +129,7 @@ static void __init wrt350n_v2_init(void) | |||
119 | */ | 129 | */ |
120 | orion5x_ehci0_init(); | 130 | orion5x_ehci0_init(); |
121 | orion5x_eth_init(&wrt350n_v2_eth_data); | 131 | orion5x_eth_init(&wrt350n_v2_eth_data); |
132 | orion5x_eth_switch_init(&wrt350n_v2_switch_data, NO_IRQ); | ||
122 | orion5x_uart0_init(); | 133 | orion5x_uart0_init(); |
123 | 134 | ||
124 | orion5x_setup_dev_boot_win(WRT350N_V2_NOR_BOOT_BASE, | 135 | orion5x_setup_dev_boot_win(WRT350N_V2_NOR_BOOT_BASE, |
diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig index f27f6b3d6e6f..a062235e83a8 100644 --- a/arch/arm/mach-pxa/Kconfig +++ b/arch/arm/mach-pxa/Kconfig | |||
@@ -71,6 +71,14 @@ config PXA_SHARPSL | |||
71 | SL-C3000 (Spitz), SL-C3100 (Borzoi) or SL-C6000x (Tosa) | 71 | SL-C3000 (Spitz), SL-C3100 (Borzoi) or SL-C6000x (Tosa) |
72 | handheld computer. | 72 | handheld computer. |
73 | 73 | ||
74 | config CORGI_SSP_DEPRECATED | ||
75 | bool | ||
76 | select PXA_SSP | ||
77 | help | ||
78 | This option will include corgi_ssp.c and corgi_lcd.c | ||
79 | that corgi_ts.c and other legacy drivers (corgi_bl.c | ||
80 | and sharpsl_pm.c) may depend on. | ||
81 | |||
74 | config MACH_POODLE | 82 | config MACH_POODLE |
75 | bool "Enable Sharp SL-5600 (Poodle) Support" | 83 | bool "Enable Sharp SL-5600 (Poodle) Support" |
76 | depends on PXA_SHARPSL | 84 | depends on PXA_SHARPSL |
@@ -257,7 +265,6 @@ config MACH_ARMCORE | |||
257 | bool "CompuLab CM-X255/CM-X270 modules" | 265 | bool "CompuLab CM-X255/CM-X270 modules" |
258 | select PXA27x | 266 | select PXA27x |
259 | select IWMMXT | 267 | select IWMMXT |
260 | select ZONE_DMA if PCI | ||
261 | select PXA25x | 268 | select PXA25x |
262 | select PXA_SSP | 269 | select PXA_SSP |
263 | 270 | ||
diff --git a/arch/arm/mach-pxa/Makefile b/arch/arm/mach-pxa/Makefile index d31c9979cfa3..d64c68b232e3 100644 --- a/arch/arm/mach-pxa/Makefile +++ b/arch/arm/mach-pxa/Makefile | |||
@@ -37,6 +37,7 @@ obj-$(CONFIG_MACH_TRIZEPS4) += trizeps4.o | |||
37 | obj-$(CONFIG_MACH_COLIBRI) += colibri.o | 37 | obj-$(CONFIG_MACH_COLIBRI) += colibri.o |
38 | obj-$(CONFIG_PXA_SHARP_C7xx) += corgi.o sharpsl_pm.o corgi_pm.o | 38 | obj-$(CONFIG_PXA_SHARP_C7xx) += corgi.o sharpsl_pm.o corgi_pm.o |
39 | obj-$(CONFIG_PXA_SHARP_Cxx00) += spitz.o sharpsl_pm.o spitz_pm.o | 39 | obj-$(CONFIG_PXA_SHARP_Cxx00) += spitz.o sharpsl_pm.o spitz_pm.o |
40 | obj-$(CONFIG_CORGI_SSP_DEPRECATED) += corgi_ssp.o corgi_lcd.o | ||
40 | obj-$(CONFIG_MACH_POODLE) += poodle.o | 41 | obj-$(CONFIG_MACH_POODLE) += poodle.o |
41 | obj-$(CONFIG_MACH_PCM027) += pcm027.o | 42 | obj-$(CONFIG_MACH_PCM027) += pcm027.o |
42 | obj-$(CONFIG_MACH_PCM990_BASEBOARD) += pcm990-baseboard.o | 43 | obj-$(CONFIG_MACH_PCM990_BASEBOARD) += pcm990-baseboard.o |
diff --git a/arch/arm/mach-pxa/corgi_lcd.c b/arch/arm/mach-pxa/corgi_lcd.c new file mode 100644 index 000000000000..411607bc1fc2 --- /dev/null +++ b/arch/arm/mach-pxa/corgi_lcd.c | |||
@@ -0,0 +1,289 @@ | |||
1 | /* | ||
2 | * linux/arch/arm/mach-pxa/corgi_lcd.c | ||
3 | * | ||
4 | * Corgi/Spitz LCD Specific Code | ||
5 | * | ||
6 | * Copyright (C) 2005 Richard Purdie | ||
7 | * | ||
8 | * Connectivity: | ||
9 | * Corgi - LCD to ATI Imageon w100 (Wallaby) | ||
10 | * Spitz - LCD to PXA Framebuffer | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or modify | ||
13 | * it under the terms of the GNU General Public License version 2 as | ||
14 | * published by the Free Software Foundation. | ||
15 | * | ||
16 | */ | ||
17 | |||
18 | #include <linux/delay.h> | ||
19 | #include <linux/kernel.h> | ||
20 | #include <linux/platform_device.h> | ||
21 | #include <linux/module.h> | ||
22 | #include <linux/string.h> | ||
23 | #include <mach/corgi.h> | ||
24 | #include <mach/hardware.h> | ||
25 | #include <mach/pxa-regs.h> | ||
26 | #include <mach/sharpsl.h> | ||
27 | #include <mach/spitz.h> | ||
28 | #include <asm/hardware/scoop.h> | ||
29 | #include <asm/mach/sharpsl_param.h> | ||
30 | #include "generic.h" | ||
31 | |||
32 | /* Register Addresses */ | ||
33 | #define RESCTL_ADRS 0x00 | ||
34 | #define PHACTRL_ADRS 0x01 | ||
35 | #define DUTYCTRL_ADRS 0x02 | ||
36 | #define POWERREG0_ADRS 0x03 | ||
37 | #define POWERREG1_ADRS 0x04 | ||
38 | #define GPOR3_ADRS 0x05 | ||
39 | #define PICTRL_ADRS 0x06 | ||
40 | #define POLCTRL_ADRS 0x07 | ||
41 | |||
42 | /* Register Bit Definitions */ | ||
43 | #define RESCTL_QVGA 0x01 | ||
44 | #define RESCTL_VGA 0x00 | ||
45 | |||
46 | #define POWER1_VW_ON 0x01 /* VW Supply FET ON */ | ||
47 | #define POWER1_GVSS_ON 0x02 /* GVSS(-8V) Power Supply ON */ | ||
48 | #define POWER1_VDD_ON 0x04 /* VDD(8V),SVSS(-4V) Power Supply ON */ | ||
49 | |||
50 | #define POWER1_VW_OFF 0x00 /* VW Supply FET OFF */ | ||
51 | #define POWER1_GVSS_OFF 0x00 /* GVSS(-8V) Power Supply OFF */ | ||
52 | #define POWER1_VDD_OFF 0x00 /* VDD(8V),SVSS(-4V) Power Supply OFF */ | ||
53 | |||
54 | #define POWER0_COM_DCLK 0x01 /* COM Voltage DC Bias DAC Serial Data Clock */ | ||
55 | #define POWER0_COM_DOUT 0x02 /* COM Voltage DC Bias DAC Serial Data Out */ | ||
56 | #define POWER0_DAC_ON 0x04 /* DAC Power Supply ON */ | ||
57 | #define POWER0_COM_ON 0x08 /* COM Power Supply ON */ | ||
58 | #define POWER0_VCC5_ON 0x10 /* VCC5 Power Supply ON */ | ||
59 | |||
60 | #define POWER0_DAC_OFF 0x00 /* DAC Power Supply OFF */ | ||
61 | #define POWER0_COM_OFF 0x00 /* COM Power Supply OFF */ | ||
62 | #define POWER0_VCC5_OFF 0x00 /* VCC5 Power Supply OFF */ | ||
63 | |||
64 | #define PICTRL_INIT_STATE 0x01 | ||
65 | #define PICTRL_INIOFF 0x02 | ||
66 | #define PICTRL_POWER_DOWN 0x04 | ||
67 | #define PICTRL_COM_SIGNAL_OFF 0x08 | ||
68 | #define PICTRL_DAC_SIGNAL_OFF 0x10 | ||
69 | |||
70 | #define POLCTRL_SYNC_POL_FALL 0x01 | ||
71 | #define POLCTRL_EN_POL_FALL 0x02 | ||
72 | #define POLCTRL_DATA_POL_FALL 0x04 | ||
73 | #define POLCTRL_SYNC_ACT_H 0x08 | ||
74 | #define POLCTRL_EN_ACT_L 0x10 | ||
75 | |||
76 | #define POLCTRL_SYNC_POL_RISE 0x00 | ||
77 | #define POLCTRL_EN_POL_RISE 0x00 | ||
78 | #define POLCTRL_DATA_POL_RISE 0x00 | ||
79 | #define POLCTRL_SYNC_ACT_L 0x00 | ||
80 | #define POLCTRL_EN_ACT_H 0x00 | ||
81 | |||
82 | #define PHACTRL_PHASE_MANUAL 0x01 | ||
83 | #define DEFAULT_PHAD_QVGA (9) | ||
84 | #define DEFAULT_COMADJ (125) | ||
85 | |||
86 | /* | ||
87 | * This is only a psuedo I2C interface. We can't use the standard kernel | ||
88 | * routines as the interface is write only. We just assume the data is acked... | ||
89 | */ | ||
90 | static void lcdtg_ssp_i2c_send(u8 data) | ||
91 | { | ||
92 | corgi_ssp_lcdtg_send(POWERREG0_ADRS, data); | ||
93 | udelay(10); | ||
94 | } | ||
95 | |||
96 | static void lcdtg_i2c_send_bit(u8 data) | ||
97 | { | ||
98 | lcdtg_ssp_i2c_send(data); | ||
99 | lcdtg_ssp_i2c_send(data | POWER0_COM_DCLK); | ||
100 | lcdtg_ssp_i2c_send(data); | ||
101 | } | ||
102 | |||
103 | static void lcdtg_i2c_send_start(u8 base) | ||
104 | { | ||
105 | lcdtg_ssp_i2c_send(base | POWER0_COM_DCLK | POWER0_COM_DOUT); | ||
106 | lcdtg_ssp_i2c_send(base | POWER0_COM_DCLK); | ||
107 | lcdtg_ssp_i2c_send(base); | ||
108 | } | ||
109 | |||
110 | static void lcdtg_i2c_send_stop(u8 base) | ||
111 | { | ||
112 | lcdtg_ssp_i2c_send(base); | ||
113 | lcdtg_ssp_i2c_send(base | POWER0_COM_DCLK); | ||
114 | lcdtg_ssp_i2c_send(base | POWER0_COM_DCLK | POWER0_COM_DOUT); | ||
115 | } | ||
116 | |||
117 | static void lcdtg_i2c_send_byte(u8 base, u8 data) | ||
118 | { | ||
119 | int i; | ||
120 | for (i = 0; i < 8; i++) { | ||
121 | if (data & 0x80) | ||
122 | lcdtg_i2c_send_bit(base | POWER0_COM_DOUT); | ||
123 | else | ||
124 | lcdtg_i2c_send_bit(base); | ||
125 | data <<= 1; | ||
126 | } | ||
127 | } | ||
128 | |||
129 | static void lcdtg_i2c_wait_ack(u8 base) | ||
130 | { | ||
131 | lcdtg_i2c_send_bit(base); | ||
132 | } | ||
133 | |||
134 | static void lcdtg_set_common_voltage(u8 base_data, u8 data) | ||
135 | { | ||
136 | /* Set Common Voltage to M62332FP via I2C */ | ||
137 | lcdtg_i2c_send_start(base_data); | ||
138 | lcdtg_i2c_send_byte(base_data, 0x9c); | ||
139 | lcdtg_i2c_wait_ack(base_data); | ||
140 | lcdtg_i2c_send_byte(base_data, 0x00); | ||
141 | lcdtg_i2c_wait_ack(base_data); | ||
142 | lcdtg_i2c_send_byte(base_data, data); | ||
143 | lcdtg_i2c_wait_ack(base_data); | ||
144 | lcdtg_i2c_send_stop(base_data); | ||
145 | } | ||
146 | |||
147 | /* Set Phase Adjust */ | ||
148 | static void lcdtg_set_phadadj(int mode) | ||
149 | { | ||
150 | int adj; | ||
151 | switch(mode) { | ||
152 | case 480: | ||
153 | case 640: | ||
154 | /* Setting for VGA */ | ||
155 | adj = sharpsl_param.phadadj; | ||
156 | if (adj < 0) { | ||
157 | adj = PHACTRL_PHASE_MANUAL; | ||
158 | } else { | ||
159 | adj = ((adj & 0x0f) << 1) | PHACTRL_PHASE_MANUAL; | ||
160 | } | ||
161 | break; | ||
162 | case 240: | ||
163 | case 320: | ||
164 | default: | ||
165 | /* Setting for QVGA */ | ||
166 | adj = (DEFAULT_PHAD_QVGA << 1) | PHACTRL_PHASE_MANUAL; | ||
167 | break; | ||
168 | } | ||
169 | |||
170 | corgi_ssp_lcdtg_send(PHACTRL_ADRS, adj); | ||
171 | } | ||
172 | |||
173 | static int lcd_inited; | ||
174 | |||
175 | void corgi_lcdtg_hw_init(int mode) | ||
176 | { | ||
177 | if (!lcd_inited) { | ||
178 | int comadj; | ||
179 | |||
180 | /* Initialize Internal Logic & Port */ | ||
181 | corgi_ssp_lcdtg_send(PICTRL_ADRS, PICTRL_POWER_DOWN | PICTRL_INIOFF | PICTRL_INIT_STATE | ||
182 | | PICTRL_COM_SIGNAL_OFF | PICTRL_DAC_SIGNAL_OFF); | ||
183 | |||
184 | corgi_ssp_lcdtg_send(POWERREG0_ADRS, POWER0_COM_DCLK | POWER0_COM_DOUT | POWER0_DAC_OFF | ||
185 | | POWER0_COM_OFF | POWER0_VCC5_OFF); | ||
186 | |||
187 | corgi_ssp_lcdtg_send(POWERREG1_ADRS, POWER1_VW_OFF | POWER1_GVSS_OFF | POWER1_VDD_OFF); | ||
188 | |||
189 | /* VDD(+8V), SVSS(-4V) ON */ | ||
190 | corgi_ssp_lcdtg_send(POWERREG1_ADRS, POWER1_VW_OFF | POWER1_GVSS_OFF | POWER1_VDD_ON); | ||
191 | mdelay(3); | ||
192 | |||
193 | /* DAC ON */ | ||
194 | corgi_ssp_lcdtg_send(POWERREG0_ADRS, POWER0_COM_DCLK | POWER0_COM_DOUT | POWER0_DAC_ON | ||
195 | | POWER0_COM_OFF | POWER0_VCC5_OFF); | ||
196 | |||
197 | /* INIB = H, INI = L */ | ||
198 | /* PICTL[0] = H , PICTL[1] = PICTL[2] = PICTL[4] = L */ | ||
199 | corgi_ssp_lcdtg_send(PICTRL_ADRS, PICTRL_INIT_STATE | PICTRL_COM_SIGNAL_OFF); | ||
200 | |||
201 | /* Set Common Voltage */ | ||
202 | comadj = sharpsl_param.comadj; | ||
203 | if (comadj < 0) | ||
204 | comadj = DEFAULT_COMADJ; | ||
205 | lcdtg_set_common_voltage((POWER0_DAC_ON | POWER0_COM_OFF | POWER0_VCC5_OFF), comadj); | ||
206 | |||
207 | /* VCC5 ON, DAC ON */ | ||
208 | corgi_ssp_lcdtg_send(POWERREG0_ADRS, POWER0_COM_DCLK | POWER0_COM_DOUT | POWER0_DAC_ON | | ||
209 | POWER0_COM_OFF | POWER0_VCC5_ON); | ||
210 | |||
211 | /* GVSS(-8V) ON, VDD ON */ | ||
212 | corgi_ssp_lcdtg_send(POWERREG1_ADRS, POWER1_VW_OFF | POWER1_GVSS_ON | POWER1_VDD_ON); | ||
213 | mdelay(2); | ||
214 | |||
215 | /* COM SIGNAL ON (PICTL[3] = L) */ | ||
216 | corgi_ssp_lcdtg_send(PICTRL_ADRS, PICTRL_INIT_STATE); | ||
217 | |||
218 | /* COM ON, DAC ON, VCC5_ON */ | ||
219 | corgi_ssp_lcdtg_send(POWERREG0_ADRS, POWER0_COM_DCLK | POWER0_COM_DOUT | POWER0_DAC_ON | ||
220 | | POWER0_COM_ON | POWER0_VCC5_ON); | ||
221 | |||
222 | /* VW ON, GVSS ON, VDD ON */ | ||
223 | corgi_ssp_lcdtg_send(POWERREG1_ADRS, POWER1_VW_ON | POWER1_GVSS_ON | POWER1_VDD_ON); | ||
224 | |||
225 | /* Signals output enable */ | ||
226 | corgi_ssp_lcdtg_send(PICTRL_ADRS, 0); | ||
227 | |||
228 | /* Set Phase Adjust */ | ||
229 | lcdtg_set_phadadj(mode); | ||
230 | |||
231 | /* Initialize for Input Signals from ATI */ | ||
232 | corgi_ssp_lcdtg_send(POLCTRL_ADRS, POLCTRL_SYNC_POL_RISE | POLCTRL_EN_POL_RISE | ||
233 | | POLCTRL_DATA_POL_RISE | POLCTRL_SYNC_ACT_L | POLCTRL_EN_ACT_H); | ||
234 | udelay(1000); | ||
235 | |||
236 | lcd_inited=1; | ||
237 | } else { | ||
238 | lcdtg_set_phadadj(mode); | ||
239 | } | ||
240 | |||
241 | switch(mode) { | ||
242 | case 480: | ||
243 | case 640: | ||
244 | /* Set Lcd Resolution (VGA) */ | ||
245 | corgi_ssp_lcdtg_send(RESCTL_ADRS, RESCTL_VGA); | ||
246 | break; | ||
247 | case 240: | ||
248 | case 320: | ||
249 | default: | ||
250 | /* Set Lcd Resolution (QVGA) */ | ||
251 | corgi_ssp_lcdtg_send(RESCTL_ADRS, RESCTL_QVGA); | ||
252 | break; | ||
253 | } | ||
254 | } | ||
255 | |||
256 | void corgi_lcdtg_suspend(void) | ||
257 | { | ||
258 | /* 60Hz x 2 frame = 16.7msec x 2 = 33.4 msec */ | ||
259 | mdelay(34); | ||
260 | |||
261 | /* (1)VW OFF */ | ||
262 | corgi_ssp_lcdtg_send(POWERREG1_ADRS, POWER1_VW_OFF | POWER1_GVSS_ON | POWER1_VDD_ON); | ||
263 | |||
264 | /* (2)COM OFF */ | ||
265 | corgi_ssp_lcdtg_send(PICTRL_ADRS, PICTRL_COM_SIGNAL_OFF); | ||
266 | corgi_ssp_lcdtg_send(POWERREG0_ADRS, POWER0_DAC_ON | POWER0_COM_OFF | POWER0_VCC5_ON); | ||
267 | |||
268 | /* (3)Set Common Voltage Bias 0V */ | ||
269 | lcdtg_set_common_voltage(POWER0_DAC_ON | POWER0_COM_OFF | POWER0_VCC5_ON, 0); | ||
270 | |||
271 | /* (4)GVSS OFF */ | ||
272 | corgi_ssp_lcdtg_send(POWERREG1_ADRS, POWER1_VW_OFF | POWER1_GVSS_OFF | POWER1_VDD_ON); | ||
273 | |||
274 | /* (5)VCC5 OFF */ | ||
275 | corgi_ssp_lcdtg_send(POWERREG0_ADRS, POWER0_DAC_ON | POWER0_COM_OFF | POWER0_VCC5_OFF); | ||
276 | |||
277 | /* (6)Set PDWN, INIOFF, DACOFF */ | ||
278 | corgi_ssp_lcdtg_send(PICTRL_ADRS, PICTRL_INIOFF | PICTRL_DAC_SIGNAL_OFF | | ||
279 | PICTRL_POWER_DOWN | PICTRL_COM_SIGNAL_OFF); | ||
280 | |||
281 | /* (7)DAC OFF */ | ||
282 | corgi_ssp_lcdtg_send(POWERREG0_ADRS, POWER0_DAC_OFF | POWER0_COM_OFF | POWER0_VCC5_OFF); | ||
283 | |||
284 | /* (8)VDD OFF */ | ||
285 | corgi_ssp_lcdtg_send(POWERREG1_ADRS, POWER1_VW_OFF | POWER1_GVSS_OFF | POWER1_VDD_OFF); | ||
286 | |||
287 | lcd_inited = 0; | ||
288 | } | ||
289 | |||
diff --git a/arch/arm/mach-pxa/corgi_ssp.c b/arch/arm/mach-pxa/corgi_ssp.c new file mode 100644 index 000000000000..8e2f2215c4ba --- /dev/null +++ b/arch/arm/mach-pxa/corgi_ssp.c | |||
@@ -0,0 +1,276 @@ | |||
1 | /* | ||
2 | * SSP control code for Sharp Corgi devices | ||
3 | * | ||
4 | * Copyright (c) 2004-2005 Richard Purdie | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | * | ||
10 | */ | ||
11 | |||
12 | #include <linux/module.h> | ||
13 | #include <linux/init.h> | ||
14 | #include <linux/kernel.h> | ||
15 | #include <linux/sched.h> | ||
16 | #include <linux/slab.h> | ||
17 | #include <linux/delay.h> | ||
18 | #include <linux/platform_device.h> | ||
19 | #include <mach/hardware.h> | ||
20 | #include <asm/mach-types.h> | ||
21 | |||
22 | #include <mach/ssp.h> | ||
23 | #include <mach/pxa-regs.h> | ||
24 | #include <mach/pxa2xx-gpio.h> | ||
25 | #include <mach/regs-ssp.h> | ||
26 | #include "sharpsl.h" | ||
27 | |||
28 | static DEFINE_SPINLOCK(corgi_ssp_lock); | ||
29 | static struct ssp_dev corgi_ssp_dev; | ||
30 | static struct ssp_state corgi_ssp_state; | ||
31 | static struct corgissp_machinfo *ssp_machinfo; | ||
32 | |||
33 | /* | ||
34 | * There are three devices connected to the SSP interface: | ||
35 | * 1. A touchscreen controller (TI ADS7846 compatible) | ||
36 | * 2. An LCD controller (with some Backlight functionality) | ||
37 | * 3. A battery monitoring IC (Maxim MAX1111) | ||
38 | * | ||
39 | * Each device uses a different speed/mode of communication. | ||
40 | * | ||
41 | * The touchscreen is very sensitive and the most frequently used | ||
42 | * so the port is left configured for this. | ||
43 | * | ||
44 | * Devices are selected using Chip Selects on GPIOs. | ||
45 | */ | ||
46 | |||
47 | /* | ||
48 | * ADS7846 Routines | ||
49 | */ | ||
50 | unsigned long corgi_ssp_ads7846_putget(ulong data) | ||
51 | { | ||
52 | unsigned long flag; | ||
53 | u32 ret = 0; | ||
54 | |||
55 | spin_lock_irqsave(&corgi_ssp_lock, flag); | ||
56 | if (ssp_machinfo->cs_ads7846 >= 0) | ||
57 | GPCR(ssp_machinfo->cs_ads7846) = GPIO_bit(ssp_machinfo->cs_ads7846); | ||
58 | |||
59 | ssp_write_word(&corgi_ssp_dev,data); | ||
60 | ssp_read_word(&corgi_ssp_dev, &ret); | ||
61 | |||
62 | if (ssp_machinfo->cs_ads7846 >= 0) | ||
63 | GPSR(ssp_machinfo->cs_ads7846) = GPIO_bit(ssp_machinfo->cs_ads7846); | ||
64 | spin_unlock_irqrestore(&corgi_ssp_lock, flag); | ||
65 | |||
66 | return ret; | ||
67 | } | ||
68 | |||
69 | /* | ||
70 | * NOTE: These functions should always be called in interrupt context | ||
71 | * and use the _lock and _unlock functions. They are very time sensitive. | ||
72 | */ | ||
73 | void corgi_ssp_ads7846_lock(void) | ||
74 | { | ||
75 | spin_lock(&corgi_ssp_lock); | ||
76 | if (ssp_machinfo->cs_ads7846 >= 0) | ||
77 | GPCR(ssp_machinfo->cs_ads7846) = GPIO_bit(ssp_machinfo->cs_ads7846); | ||
78 | } | ||
79 | |||
80 | void corgi_ssp_ads7846_unlock(void) | ||
81 | { | ||
82 | if (ssp_machinfo->cs_ads7846 >= 0) | ||
83 | GPSR(ssp_machinfo->cs_ads7846) = GPIO_bit(ssp_machinfo->cs_ads7846); | ||
84 | spin_unlock(&corgi_ssp_lock); | ||
85 | } | ||
86 | |||
87 | void corgi_ssp_ads7846_put(ulong data) | ||
88 | { | ||
89 | ssp_write_word(&corgi_ssp_dev,data); | ||
90 | } | ||
91 | |||
92 | unsigned long corgi_ssp_ads7846_get(void) | ||
93 | { | ||
94 | u32 ret = 0; | ||
95 | ssp_read_word(&corgi_ssp_dev, &ret); | ||
96 | return ret; | ||
97 | } | ||
98 | |||
99 | EXPORT_SYMBOL(corgi_ssp_ads7846_putget); | ||
100 | EXPORT_SYMBOL(corgi_ssp_ads7846_lock); | ||
101 | EXPORT_SYMBOL(corgi_ssp_ads7846_unlock); | ||
102 | EXPORT_SYMBOL(corgi_ssp_ads7846_put); | ||
103 | EXPORT_SYMBOL(corgi_ssp_ads7846_get); | ||
104 | |||
105 | |||
106 | /* | ||
107 | * LCD/Backlight Routines | ||
108 | */ | ||
109 | unsigned long corgi_ssp_dac_put(ulong data) | ||
110 | { | ||
111 | unsigned long flag, sscr1 = SSCR1_SPH; | ||
112 | u32 tmp; | ||
113 | |||
114 | spin_lock_irqsave(&corgi_ssp_lock, flag); | ||
115 | |||
116 | if (machine_is_spitz() || machine_is_akita() || machine_is_borzoi()) | ||
117 | sscr1 = 0; | ||
118 | |||
119 | ssp_disable(&corgi_ssp_dev); | ||
120 | ssp_config(&corgi_ssp_dev, (SSCR0_Motorola | (SSCR0_DSS & 0x07 )), sscr1, 0, SSCR0_SerClkDiv(ssp_machinfo->clk_lcdcon)); | ||
121 | ssp_enable(&corgi_ssp_dev); | ||
122 | |||
123 | if (ssp_machinfo->cs_lcdcon >= 0) | ||
124 | GPCR(ssp_machinfo->cs_lcdcon) = GPIO_bit(ssp_machinfo->cs_lcdcon); | ||
125 | ssp_write_word(&corgi_ssp_dev,data); | ||
126 | /* Read null data back from device to prevent SSP overflow */ | ||
127 | ssp_read_word(&corgi_ssp_dev, &tmp); | ||
128 | if (ssp_machinfo->cs_lcdcon >= 0) | ||
129 | GPSR(ssp_machinfo->cs_lcdcon) = GPIO_bit(ssp_machinfo->cs_lcdcon); | ||
130 | |||
131 | ssp_disable(&corgi_ssp_dev); | ||
132 | ssp_config(&corgi_ssp_dev, (SSCR0_National | (SSCR0_DSS & 0x0b )), 0, 0, SSCR0_SerClkDiv(ssp_machinfo->clk_ads7846)); | ||
133 | ssp_enable(&corgi_ssp_dev); | ||
134 | |||
135 | spin_unlock_irqrestore(&corgi_ssp_lock, flag); | ||
136 | |||
137 | return 0; | ||
138 | } | ||
139 | |||
140 | void corgi_ssp_lcdtg_send(u8 adrs, u8 data) | ||
141 | { | ||
142 | corgi_ssp_dac_put(((adrs & 0x07) << 5) | (data & 0x1f)); | ||
143 | } | ||
144 | |||
145 | void corgi_ssp_blduty_set(int duty) | ||
146 | { | ||
147 | corgi_ssp_lcdtg_send(0x02,duty); | ||
148 | } | ||
149 | |||
150 | EXPORT_SYMBOL(corgi_ssp_lcdtg_send); | ||
151 | EXPORT_SYMBOL(corgi_ssp_blduty_set); | ||
152 | |||
153 | /* | ||
154 | * Max1111 Routines | ||
155 | */ | ||
156 | int corgi_ssp_max1111_get(ulong data) | ||
157 | { | ||
158 | unsigned long flag; | ||
159 | long voltage = 0, voltage1 = 0, voltage2 = 0; | ||
160 | |||
161 | spin_lock_irqsave(&corgi_ssp_lock, flag); | ||
162 | if (ssp_machinfo->cs_max1111 >= 0) | ||
163 | GPCR(ssp_machinfo->cs_max1111) = GPIO_bit(ssp_machinfo->cs_max1111); | ||
164 | ssp_disable(&corgi_ssp_dev); | ||
165 | ssp_config(&corgi_ssp_dev, (SSCR0_Motorola | (SSCR0_DSS & 0x07 )), 0, 0, SSCR0_SerClkDiv(ssp_machinfo->clk_max1111)); | ||
166 | ssp_enable(&corgi_ssp_dev); | ||
167 | |||
168 | udelay(1); | ||
169 | |||
170 | /* TB1/RB1 */ | ||
171 | ssp_write_word(&corgi_ssp_dev,data); | ||
172 | ssp_read_word(&corgi_ssp_dev, (u32*)&voltage1); /* null read */ | ||
173 | |||
174 | /* TB12/RB2 */ | ||
175 | ssp_write_word(&corgi_ssp_dev,0); | ||
176 | ssp_read_word(&corgi_ssp_dev, (u32*)&voltage1); | ||
177 | |||
178 | /* TB13/RB3*/ | ||
179 | ssp_write_word(&corgi_ssp_dev,0); | ||
180 | ssp_read_word(&corgi_ssp_dev, (u32*)&voltage2); | ||
181 | |||
182 | ssp_disable(&corgi_ssp_dev); | ||
183 | ssp_config(&corgi_ssp_dev, (SSCR0_National | (SSCR0_DSS & 0x0b )), 0, 0, SSCR0_SerClkDiv(ssp_machinfo->clk_ads7846)); | ||
184 | ssp_enable(&corgi_ssp_dev); | ||
185 | if (ssp_machinfo->cs_max1111 >= 0) | ||
186 | GPSR(ssp_machinfo->cs_max1111) = GPIO_bit(ssp_machinfo->cs_max1111); | ||
187 | spin_unlock_irqrestore(&corgi_ssp_lock, flag); | ||
188 | |||
189 | if (voltage1 & 0xc0 || voltage2 & 0x3f) | ||
190 | voltage = -1; | ||
191 | else | ||
192 | voltage = ((voltage1 << 2) & 0xfc) | ((voltage2 >> 6) & 0x03); | ||
193 | |||
194 | return voltage; | ||
195 | } | ||
196 | |||
197 | EXPORT_SYMBOL(corgi_ssp_max1111_get); | ||
198 | |||
199 | /* | ||
200 | * Support Routines | ||
201 | */ | ||
202 | |||
203 | void __init corgi_ssp_set_machinfo(struct corgissp_machinfo *machinfo) | ||
204 | { | ||
205 | ssp_machinfo = machinfo; | ||
206 | } | ||
207 | |||
208 | static int __init corgi_ssp_probe(struct platform_device *dev) | ||
209 | { | ||
210 | int ret; | ||
211 | |||
212 | /* Chip Select - Disable All */ | ||
213 | if (ssp_machinfo->cs_lcdcon >= 0) | ||
214 | pxa_gpio_mode(ssp_machinfo->cs_lcdcon | GPIO_OUT | GPIO_DFLT_HIGH); | ||
215 | if (ssp_machinfo->cs_max1111 >= 0) | ||
216 | pxa_gpio_mode(ssp_machinfo->cs_max1111 | GPIO_OUT | GPIO_DFLT_HIGH); | ||
217 | if (ssp_machinfo->cs_ads7846 >= 0) | ||
218 | pxa_gpio_mode(ssp_machinfo->cs_ads7846 | GPIO_OUT | GPIO_DFLT_HIGH); | ||
219 | |||
220 | ret = ssp_init(&corgi_ssp_dev, ssp_machinfo->port, 0); | ||
221 | |||
222 | if (ret) | ||
223 | printk(KERN_ERR "Unable to register SSP handler!\n"); | ||
224 | else { | ||
225 | ssp_disable(&corgi_ssp_dev); | ||
226 | ssp_config(&corgi_ssp_dev, (SSCR0_National | (SSCR0_DSS & 0x0b )), 0, 0, SSCR0_SerClkDiv(ssp_machinfo->clk_ads7846)); | ||
227 | ssp_enable(&corgi_ssp_dev); | ||
228 | } | ||
229 | |||
230 | return ret; | ||
231 | } | ||
232 | |||
233 | static int corgi_ssp_remove(struct platform_device *dev) | ||
234 | { | ||
235 | ssp_exit(&corgi_ssp_dev); | ||
236 | return 0; | ||
237 | } | ||
238 | |||
239 | static int corgi_ssp_suspend(struct platform_device *dev, pm_message_t state) | ||
240 | { | ||
241 | ssp_flush(&corgi_ssp_dev); | ||
242 | ssp_save_state(&corgi_ssp_dev,&corgi_ssp_state); | ||
243 | |||
244 | return 0; | ||
245 | } | ||
246 | |||
247 | static int corgi_ssp_resume(struct platform_device *dev) | ||
248 | { | ||
249 | if (ssp_machinfo->cs_lcdcon >= 0) | ||
250 | GPSR(ssp_machinfo->cs_lcdcon) = GPIO_bit(ssp_machinfo->cs_lcdcon); /* High - Disable LCD Control/Timing Gen */ | ||
251 | if (ssp_machinfo->cs_max1111 >= 0) | ||
252 | GPSR(ssp_machinfo->cs_max1111) = GPIO_bit(ssp_machinfo->cs_max1111); /* High - Disable MAX1111*/ | ||
253 | if (ssp_machinfo->cs_ads7846 >= 0) | ||
254 | GPSR(ssp_machinfo->cs_ads7846) = GPIO_bit(ssp_machinfo->cs_ads7846); /* High - Disable ADS7846*/ | ||
255 | ssp_restore_state(&corgi_ssp_dev,&corgi_ssp_state); | ||
256 | ssp_enable(&corgi_ssp_dev); | ||
257 | |||
258 | return 0; | ||
259 | } | ||
260 | |||
261 | static struct platform_driver corgissp_driver = { | ||
262 | .probe = corgi_ssp_probe, | ||
263 | .remove = corgi_ssp_remove, | ||
264 | .suspend = corgi_ssp_suspend, | ||
265 | .resume = corgi_ssp_resume, | ||
266 | .driver = { | ||
267 | .name = "corgi-ssp", | ||
268 | }, | ||
269 | }; | ||
270 | |||
271 | int __init corgi_ssp_init(void) | ||
272 | { | ||
273 | return platform_driver_register(&corgissp_driver); | ||
274 | } | ||
275 | |||
276 | arch_initcall(corgi_ssp_init); | ||
diff --git a/arch/arm/mach-pxa/include/mach/corgi.h b/arch/arm/mach-pxa/include/mach/corgi.h index 585970ef08ce..7239281788de 100644 --- a/arch/arm/mach-pxa/include/mach/corgi.h +++ b/arch/arm/mach-pxa/include/mach/corgi.h | |||
@@ -113,6 +113,7 @@ | |||
113 | * Shared data structures | 113 | * Shared data structures |
114 | */ | 114 | */ |
115 | extern struct platform_device corgiscoop_device; | 115 | extern struct platform_device corgiscoop_device; |
116 | extern struct platform_device corgissp_device; | ||
116 | 117 | ||
117 | #endif /* __ASM_ARCH_CORGI_H */ | 118 | #endif /* __ASM_ARCH_CORGI_H */ |
118 | 119 | ||
diff --git a/arch/arm/mach-pxa/include/mach/irqs.h b/arch/arm/mach-pxa/include/mach/irqs.h index 9c163e19ada9..32bb4a2eb7f1 100644 --- a/arch/arm/mach-pxa/include/mach/irqs.h +++ b/arch/arm/mach-pxa/include/mach/irqs.h | |||
@@ -9,7 +9,8 @@ | |||
9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | */ | 11 | */ |
12 | 12 | #ifndef __ASM_MACH_IRQS_H | |
13 | #define __ASM_MACH_IRQS_H | ||
13 | 14 | ||
14 | #ifdef CONFIG_PXA_HAVE_ISA_IRQS | 15 | #ifdef CONFIG_PXA_HAVE_ISA_IRQS |
15 | #define PXA_ISA_IRQ(x) (x) | 16 | #define PXA_ISA_IRQ(x) (x) |
@@ -264,3 +265,5 @@ | |||
264 | #endif | 265 | #endif |
265 | 266 | ||
266 | #endif /* CONFIG_PCI_HOST_ITE8152 */ | 267 | #endif /* CONFIG_PCI_HOST_ITE8152 */ |
268 | |||
269 | #endif /* __ASM_MACH_IRQS_H */ | ||
diff --git a/arch/arm/mach-pxa/include/mach/spitz.h b/arch/arm/mach-pxa/include/mach/spitz.h index 31ac26b55bc1..fa1998caa78e 100644 --- a/arch/arm/mach-pxa/include/mach/spitz.h +++ b/arch/arm/mach-pxa/include/mach/spitz.h | |||
@@ -142,7 +142,7 @@ | |||
142 | 142 | ||
143 | #define SPITZ_SCP2_GPIO_BASE (NR_BUILTIN_GPIO + 12) | 143 | #define SPITZ_SCP2_GPIO_BASE (NR_BUILTIN_GPIO + 12) |
144 | #define SPITZ_GPIO_IR_ON (SPITZ_SCP2_GPIO_BASE + 0) | 144 | #define SPITZ_GPIO_IR_ON (SPITZ_SCP2_GPIO_BASE + 0) |
145 | #define SPITZ_GPIO_AKIN_PULLUP (SPITZ_SCP2_GPIO_BASE + 1 | 145 | #define SPITZ_GPIO_AKIN_PULLUP (SPITZ_SCP2_GPIO_BASE + 1) |
146 | #define SPITZ_GPIO_RESERVED_1 (SPITZ_SCP2_GPIO_BASE + 2) | 146 | #define SPITZ_GPIO_RESERVED_1 (SPITZ_SCP2_GPIO_BASE + 2) |
147 | #define SPITZ_GPIO_RESERVED_2 (SPITZ_SCP2_GPIO_BASE + 3) | 147 | #define SPITZ_GPIO_RESERVED_2 (SPITZ_SCP2_GPIO_BASE + 3) |
148 | #define SPITZ_GPIO_RESERVED_3 (SPITZ_SCP2_GPIO_BASE + 4) | 148 | #define SPITZ_GPIO_RESERVED_3 (SPITZ_SCP2_GPIO_BASE + 4) |
@@ -187,4 +187,5 @@ | |||
187 | */ | 187 | */ |
188 | extern struct platform_device spitzscoop_device; | 188 | extern struct platform_device spitzscoop_device; |
189 | extern struct platform_device spitzscoop2_device; | 189 | extern struct platform_device spitzscoop2_device; |
190 | extern struct platform_device spitzssp_device; | ||
190 | extern struct sharpsl_charger_machinfo spitz_pm_machinfo; | 191 | extern struct sharpsl_charger_machinfo spitz_pm_machinfo; |
diff --git a/arch/arm/mach-pxa/include/mach/tosa.h b/arch/arm/mach-pxa/include/mach/tosa.h index 8bce6d8615b9..4df2d38507dc 100644 --- a/arch/arm/mach-pxa/include/mach/tosa.h +++ b/arch/arm/mach-pxa/include/mach/tosa.h | |||
@@ -193,4 +193,7 @@ | |||
193 | #define TOSA_KEY_MAIL KEY_MAIL | 193 | #define TOSA_KEY_MAIL KEY_MAIL |
194 | #endif | 194 | #endif |
195 | 195 | ||
196 | struct spi_device; | ||
197 | extern int tosa_bl_enable(struct spi_device *spi, int enable); | ||
198 | |||
196 | #endif /* _ASM_ARCH_TOSA_H_ */ | 199 | #endif /* _ASM_ARCH_TOSA_H_ */ |
diff --git a/arch/arm/mach-pxa/pwm.c b/arch/arm/mach-pxa/pwm.c index 316cd986da5c..74e2ead8cee8 100644 --- a/arch/arm/mach-pxa/pwm.c +++ b/arch/arm/mach-pxa/pwm.c | |||
@@ -60,7 +60,7 @@ int pwm_config(struct pwm_device *pwm, int duty_ns, int period_ns) | |||
60 | do_div(c, 1000000000); | 60 | do_div(c, 1000000000); |
61 | period_cycles = c; | 61 | period_cycles = c; |
62 | 62 | ||
63 | if (period_cycles < 0) | 63 | if (period_cycles < 1) |
64 | period_cycles = 1; | 64 | period_cycles = 1; |
65 | prescale = (period_cycles - 1) / 1024; | 65 | prescale = (period_cycles - 1) / 1024; |
66 | pv = period_cycles / (prescale + 1) - 1; | 66 | pv = period_cycles / (prescale + 1) - 1; |
diff --git a/arch/arm/mach-pxa/sharpsl_pm.c b/arch/arm/mach-pxa/sharpsl_pm.c index 15c2f1a8623b..f0845c1b001c 100644 --- a/arch/arm/mach-pxa/sharpsl_pm.c +++ b/arch/arm/mach-pxa/sharpsl_pm.c | |||
@@ -116,20 +116,33 @@ struct battery_thresh spitz_battery_levels_noac[] = { | |||
116 | { 0, 0}, | 116 | { 0, 0}, |
117 | }; | 117 | }; |
118 | 118 | ||
119 | /* MAX1111 Commands */ | ||
120 | #define MAXCTRL_PD0 1u << 0 | ||
121 | #define MAXCTRL_PD1 1u << 1 | ||
122 | #define MAXCTRL_SGL 1u << 2 | ||
123 | #define MAXCTRL_UNI 1u << 3 | ||
124 | #define MAXCTRL_SEL_SH 4 | ||
125 | #define MAXCTRL_STR 1u << 7 | ||
126 | |||
119 | /* | 127 | /* |
120 | * Read MAX1111 ADC | 128 | * Read MAX1111 ADC |
121 | */ | 129 | */ |
122 | extern int max1111_read_channel(int); | ||
123 | |||
124 | int sharpsl_pm_pxa_read_max1111(int channel) | 130 | int sharpsl_pm_pxa_read_max1111(int channel) |
125 | { | 131 | { |
126 | if (machine_is_tosa()) // Ugly, better move this function into another module | 132 | if (machine_is_tosa()) // Ugly, better move this function into another module |
127 | return 0; | 133 | return 0; |
128 | 134 | ||
135 | #ifdef CONFIG_CORGI_SSP_DEPRECATED | ||
136 | return corgi_ssp_max1111_get((channel << MAXCTRL_SEL_SH) | MAXCTRL_PD0 | MAXCTRL_PD1 | ||
137 | | MAXCTRL_SGL | MAXCTRL_UNI | MAXCTRL_STR); | ||
138 | #else | ||
139 | extern int max1111_read_channel(int); | ||
140 | |||
129 | /* max1111 accepts channels from 0-3, however, | 141 | /* max1111 accepts channels from 0-3, however, |
130 | * it is encoded from 0-7 here in the code. | 142 | * it is encoded from 0-7 here in the code. |
131 | */ | 143 | */ |
132 | return max1111_read_channel(channel >> 1); | 144 | return max1111_read_channel(channel >> 1); |
145 | #endif | ||
133 | } | 146 | } |
134 | 147 | ||
135 | void sharpsl_pm_pxa_init(void) | 148 | void sharpsl_pm_pxa_init(void) |
diff --git a/arch/arm/mach-pxa/tosa.c b/arch/arm/mach-pxa/tosa.c index a6c4694359ca..224897a67d15 100644 --- a/arch/arm/mach-pxa/tosa.c +++ b/arch/arm/mach-pxa/tosa.c | |||
@@ -31,6 +31,7 @@ | |||
31 | #include <linux/gpio.h> | 31 | #include <linux/gpio.h> |
32 | #include <linux/pda_power.h> | 32 | #include <linux/pda_power.h> |
33 | #include <linux/rfkill.h> | 33 | #include <linux/rfkill.h> |
34 | #include <linux/spi/spi.h> | ||
34 | 35 | ||
35 | #include <asm/setup.h> | 36 | #include <asm/setup.h> |
36 | #include <asm/mach-types.h> | 37 | #include <asm/mach-types.h> |
@@ -42,6 +43,7 @@ | |||
42 | #include <mach/mmc.h> | 43 | #include <mach/mmc.h> |
43 | #include <mach/udc.h> | 44 | #include <mach/udc.h> |
44 | #include <mach/tosa_bt.h> | 45 | #include <mach/tosa_bt.h> |
46 | #include <mach/pxa2xx_spi.h> | ||
45 | 47 | ||
46 | #include <asm/mach/arch.h> | 48 | #include <asm/mach/arch.h> |
47 | #include <mach/tosa.h> | 49 | #include <mach/tosa.h> |
@@ -612,7 +614,7 @@ static int tosa_tc6393xb_enable(struct platform_device *dev) | |||
612 | rc = gpio_request(TOSA_GPIO_TC6393XB_SUSPEND, "tc6393xb #suspend"); | 614 | rc = gpio_request(TOSA_GPIO_TC6393XB_SUSPEND, "tc6393xb #suspend"); |
613 | if (rc) | 615 | if (rc) |
614 | goto err_req_suspend; | 616 | goto err_req_suspend; |
615 | rc = gpio_request(TOSA_GPIO_TC6393XB_L3V_ON, "l3v"); | 617 | rc = gpio_request(TOSA_GPIO_TC6393XB_L3V_ON, "tc6393xb l3v"); |
616 | if (rc) | 618 | if (rc) |
617 | goto err_req_l3v; | 619 | goto err_req_l3v; |
618 | rc = gpio_direction_output(TOSA_GPIO_TC6393XB_L3V_ON, 0); | 620 | rc = gpio_direction_output(TOSA_GPIO_TC6393XB_L3V_ON, 0); |
@@ -772,6 +774,20 @@ static struct platform_device tosa_bt_device = { | |||
772 | .dev.platform_data = &tosa_bt_data, | 774 | .dev.platform_data = &tosa_bt_data, |
773 | }; | 775 | }; |
774 | 776 | ||
777 | static struct pxa2xx_spi_master pxa_ssp_master_info = { | ||
778 | .num_chipselect = 1, | ||
779 | }; | ||
780 | |||
781 | static struct spi_board_info spi_board_info[] __initdata = { | ||
782 | { | ||
783 | .modalias = "tosa-lcd", | ||
784 | // .platform_data | ||
785 | .max_speed_hz = 28750, | ||
786 | .bus_num = 2, | ||
787 | .chip_select = 0, | ||
788 | .mode = SPI_MODE_0, | ||
789 | }, | ||
790 | }; | ||
775 | 791 | ||
776 | static struct platform_device *devices[] __initdata = { | 792 | static struct platform_device *devices[] __initdata = { |
777 | &tosascoop_device, | 793 | &tosascoop_device, |
@@ -826,6 +842,9 @@ static void __init tosa_init(void) | |||
826 | pxa_set_i2c_info(NULL); | 842 | pxa_set_i2c_info(NULL); |
827 | platform_scoop_config = &tosa_pcmcia_config; | 843 | platform_scoop_config = &tosa_pcmcia_config; |
828 | 844 | ||
845 | pxa2xx_set_spi_info(2, &pxa_ssp_master_info); | ||
846 | spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info)); | ||
847 | |||
829 | clk_add_alias("CLK_CK3P6MI", &tc6393xb_device.dev, "GPIO11_CLK", NULL); | 848 | clk_add_alias("CLK_CK3P6MI", &tc6393xb_device.dev, "GPIO11_CLK", NULL); |
830 | 849 | ||
831 | platform_add_devices(devices, ARRAY_SIZE(devices)); | 850 | platform_add_devices(devices, ARRAY_SIZE(devices)); |
diff --git a/arch/arm/mach-pxa/trizeps4.c b/arch/arm/mach-pxa/trizeps4.c index a13dbf3c2c05..a72e3add743c 100644 --- a/arch/arm/mach-pxa/trizeps4.c +++ b/arch/arm/mach-pxa/trizeps4.c | |||
@@ -399,7 +399,7 @@ static void trizeps4_irda_transceiver_mode(struct device *dev, int mode) | |||
399 | /* Switch mode */ | 399 | /* Switch mode */ |
400 | if (mode & IR_SIRMODE) | 400 | if (mode & IR_SIRMODE) |
401 | trizeps_conxs_ircr &= ~ConXS_IRCR_MODE; /* Slow mode */ | 401 | trizeps_conxs_ircr &= ~ConXS_IRCR_MODE; /* Slow mode */ |
402 | else if (mode & IR_FIRMODE) { | 402 | else if (mode & IR_FIRMODE) |
403 | trizeps_conxs_ircr |= ConXS_IRCR_MODE; /* Fast mode */ | 403 | trizeps_conxs_ircr |= ConXS_IRCR_MODE; /* Fast mode */ |
404 | 404 | ||
405 | /* Switch power */ | 405 | /* Switch power */ |
diff --git a/arch/arm/mach-s3c2443/clock.c b/arch/arm/mach-s3c2443/clock.c index 2f60bf6b8d43..f854e7385e3c 100644 --- a/arch/arm/mach-s3c2443/clock.c +++ b/arch/arm/mach-s3c2443/clock.c | |||
@@ -1033,8 +1033,7 @@ void __init s3c2443_init_clocks(int xtal) | |||
1033 | 1033 | ||
1034 | fclk = pll / s3c2443_fclk_div(clkdiv0); | 1034 | fclk = pll / s3c2443_fclk_div(clkdiv0); |
1035 | hclk = s3c2443_prediv_getrate(&clk_prediv); | 1035 | hclk = s3c2443_prediv_getrate(&clk_prediv); |
1036 | hclk = hclk / s3c2443_get_hdiv(clkdiv0); | 1036 | hclk /= s3c2443_get_hdiv(clkdiv0); |
1037 | hclk = hclk / ((clkdiv0 & S3C2443_CLKDIV0_HALF_HCLK) ? 2 : 1); | ||
1038 | pclk = hclk / ((clkdiv0 & S3C2443_CLKDIV0_HALF_PCLK) ? 2 : 1); | 1037 | pclk = hclk / ((clkdiv0 & S3C2443_CLKDIV0_HALF_PCLK) ? 2 : 1); |
1039 | 1038 | ||
1040 | s3c24xx_setup_clocks(xtal, fclk, hclk, pclk); | 1039 | s3c24xx_setup_clocks(xtal, fclk, hclk, pclk); |
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index d1193884d76d..ab5f7a21350b 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig | |||
@@ -400,9 +400,9 @@ config CPU_FEROCEON_OLD_ID | |||
400 | # ARMv6 | 400 | # ARMv6 |
401 | config CPU_V6 | 401 | config CPU_V6 |
402 | bool "Support ARM V6 processor" | 402 | bool "Support ARM V6 processor" |
403 | depends on ARCH_INTEGRATOR || MACH_REALVIEW_EB || ARCH_OMAP2 || ARCH_MX3 || ARCH_MSM7X00A || MACH_REALVIEW_PB11MP || MACH_REALVIEW_PB1176 | 403 | depends on ARCH_INTEGRATOR || MACH_REALVIEW_EB || ARCH_OMAP2 || ARCH_MX3 || ARCH_MSM || MACH_REALVIEW_PB11MP || MACH_REALVIEW_PB1176 |
404 | default y if ARCH_MX3 | 404 | default y if ARCH_MX3 |
405 | default y if ARCH_MSM7X00A | 405 | default y if ARCH_MSM |
406 | select CPU_32v6 | 406 | select CPU_32v6 |
407 | select CPU_ABRT_EV6 | 407 | select CPU_ABRT_EV6 |
408 | select CPU_PABRT_NOIFAR | 408 | select CPU_PABRT_NOIFAR |
diff --git a/arch/arm/mm/cache-v4.S b/arch/arm/mm/cache-v4.S index 33926c9fcda6..5786adf10040 100644 --- a/arch/arm/mm/cache-v4.S +++ b/arch/arm/mm/cache-v4.S | |||
@@ -29,7 +29,7 @@ ENTRY(v4_flush_user_cache_all) | |||
29 | * Clean and invalidate the entire cache. | 29 | * Clean and invalidate the entire cache. |
30 | */ | 30 | */ |
31 | ENTRY(v4_flush_kern_cache_all) | 31 | ENTRY(v4_flush_kern_cache_all) |
32 | #ifdef CPU_CP15 | 32 | #ifdef CONFIG_CPU_CP15 |
33 | mov r0, #0 | 33 | mov r0, #0 |
34 | mcr p15, 0, r0, c7, c7, 0 @ flush ID cache | 34 | mcr p15, 0, r0, c7, c7, 0 @ flush ID cache |
35 | mov pc, lr | 35 | mov pc, lr |
@@ -48,7 +48,7 @@ ENTRY(v4_flush_kern_cache_all) | |||
48 | * - flags - vma_area_struct flags describing address space | 48 | * - flags - vma_area_struct flags describing address space |
49 | */ | 49 | */ |
50 | ENTRY(v4_flush_user_cache_range) | 50 | ENTRY(v4_flush_user_cache_range) |
51 | #ifdef CPU_CP15 | 51 | #ifdef CONFIG_CPU_CP15 |
52 | mov ip, #0 | 52 | mov ip, #0 |
53 | mcreq p15, 0, ip, c7, c7, 0 @ flush ID cache | 53 | mcreq p15, 0, ip, c7, c7, 0 @ flush ID cache |
54 | mov pc, lr | 54 | mov pc, lr |
@@ -116,7 +116,7 @@ ENTRY(v4_dma_inv_range) | |||
116 | * - end - virtual end address | 116 | * - end - virtual end address |
117 | */ | 117 | */ |
118 | ENTRY(v4_dma_flush_range) | 118 | ENTRY(v4_dma_flush_range) |
119 | #ifdef CPU_CP15 | 119 | #ifdef CONFIG_CPU_CP15 |
120 | mov r0, #0 | 120 | mov r0, #0 |
121 | mcr p15, 0, r0, c7, c7, 0 @ flush ID cache | 121 | mcr p15, 0, r0, c7, c7, 0 @ flush ID cache |
122 | #endif | 122 | #endif |
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S index 34e424041927..07f82db70945 100644 --- a/arch/arm/mm/proc-v7.S +++ b/arch/arm/mm/proc-v7.S | |||
@@ -180,8 +180,8 @@ __v7_setup: | |||
180 | mov r10, #0x1f @ domains 0, 1 = manager | 180 | mov r10, #0x1f @ domains 0, 1 = manager |
181 | mcr p15, 0, r10, c3, c0, 0 @ load domain access register | 181 | mcr p15, 0, r10, c3, c0, 0 @ load domain access register |
182 | #endif | 182 | #endif |
183 | ldr r5, =0x40e040e0 | 183 | ldr r5, =0xff0aa1a8 |
184 | ldr r6, =0xff0aa1a8 | 184 | ldr r6, =0x40e040e0 |
185 | mcr p15, 0, r5, c10, c2, 0 @ write PRRR | 185 | mcr p15, 0, r5, c10, c2, 0 @ write PRRR |
186 | mcr p15, 0, r6, c10, c2, 1 @ write NMRR | 186 | mcr p15, 0, r6, c10, c2, 1 @ write NMRR |
187 | adr r5, v7_crval | 187 | adr r5, v7_crval |
diff --git a/arch/arm/plat-s3c24xx/pwm-clock.c b/arch/arm/plat-s3c24xx/pwm-clock.c index b8e854f1b1d5..3fad68a1e6bc 100644 --- a/arch/arm/plat-s3c24xx/pwm-clock.c +++ b/arch/arm/plat-s3c24xx/pwm-clock.c | |||
@@ -315,7 +315,7 @@ static int clk_pwm_tin_set_parent(struct clk *clk, struct clk *parent) | |||
315 | if (parent == s3c24xx_pwmclk_tclk(id)) | 315 | if (parent == s3c24xx_pwmclk_tclk(id)) |
316 | bits = S3C2410_TCFG1_MUX_TCLK << shift; | 316 | bits = S3C2410_TCFG1_MUX_TCLK << shift; |
317 | else if (parent == s3c24xx_pwmclk_tdiv(id)) | 317 | else if (parent == s3c24xx_pwmclk_tdiv(id)) |
318 | bits = clk_pwm_tdiv_bits(to_tdiv(clk)) << shift; | 318 | bits = clk_pwm_tdiv_bits(to_tdiv(parent)) << shift; |
319 | else | 319 | else |
320 | return -EINVAL; | 320 | return -EINVAL; |
321 | 321 | ||
diff --git a/arch/arm/plat-s3c24xx/pwm.c b/arch/arm/plat-s3c24xx/pwm.c index feb770f2e84e..ec56b88866c4 100644 --- a/arch/arm/plat-s3c24xx/pwm.c +++ b/arch/arm/plat-s3c24xx/pwm.c | |||
@@ -56,7 +56,7 @@ static struct clk *clk_scaler[2]; | |||
56 | } \ | 56 | } \ |
57 | } | 57 | } |
58 | 58 | ||
59 | #define DEFINE_TIMER(_tmr_no, _irq) \ | 59 | #define DEFINE_S3C_TIMER(_tmr_no, _irq) \ |
60 | .name = "s3c24xx-pwm", \ | 60 | .name = "s3c24xx-pwm", \ |
61 | .id = _tmr_no, \ | 61 | .id = _tmr_no, \ |
62 | .num_resources = TIMER_RESOURCE_SIZE, \ | 62 | .num_resources = TIMER_RESOURCE_SIZE, \ |
@@ -67,11 +67,11 @@ static struct clk *clk_scaler[2]; | |||
67 | */ | 67 | */ |
68 | 68 | ||
69 | struct platform_device s3c_device_timer[] = { | 69 | struct platform_device s3c_device_timer[] = { |
70 | [0] = { DEFINE_TIMER(0, IRQ_TIMER0) }, | 70 | [0] = { DEFINE_S3C_TIMER(0, IRQ_TIMER0) }, |
71 | [1] = { DEFINE_TIMER(1, IRQ_TIMER1) }, | 71 | [1] = { DEFINE_S3C_TIMER(1, IRQ_TIMER1) }, |
72 | [2] = { DEFINE_TIMER(2, IRQ_TIMER2) }, | 72 | [2] = { DEFINE_S3C_TIMER(2, IRQ_TIMER2) }, |
73 | [3] = { DEFINE_TIMER(3, IRQ_TIMER3) }, | 73 | [3] = { DEFINE_S3C_TIMER(3, IRQ_TIMER3) }, |
74 | [4] = { DEFINE_TIMER(4, IRQ_TIMER4) }, | 74 | [4] = { DEFINE_S3C_TIMER(4, IRQ_TIMER4) }, |
75 | }; | 75 | }; |
76 | 76 | ||
77 | static inline int pwm_is_tdiv(struct pwm_device *pwm) | 77 | static inline int pwm_is_tdiv(struct pwm_device *pwm) |
diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig index 33a5b2969eb4..26eca87f6735 100644 --- a/arch/avr32/Kconfig +++ b/arch/avr32/Kconfig | |||
@@ -121,11 +121,19 @@ config BOARD_ATSTK1000 | |||
121 | config BOARD_ATNGW100 | 121 | config BOARD_ATNGW100 |
122 | bool "ATNGW100 Network Gateway" | 122 | bool "ATNGW100 Network Gateway" |
123 | select CPU_AT32AP7000 | 123 | select CPU_AT32AP7000 |
124 | |||
125 | config BOARD_FAVR_32 | ||
126 | bool "Favr-32 LCD-board" | ||
127 | select CPU_AT32AP7000 | ||
128 | |||
129 | config BOARD_MIMC200 | ||
130 | bool "MIMC200 CPU board" | ||
131 | select CPU_AT32AP7000 | ||
124 | endchoice | 132 | endchoice |
125 | 133 | ||
126 | if BOARD_ATSTK1000 | ||
127 | source "arch/avr32/boards/atstk1000/Kconfig" | 134 | source "arch/avr32/boards/atstk1000/Kconfig" |
128 | endif | 135 | source "arch/avr32/boards/atngw100/Kconfig" |
136 | source "arch/avr32/boards/favr-32/Kconfig" | ||
129 | 137 | ||
130 | choice | 138 | choice |
131 | prompt "Boot loader type" | 139 | prompt "Boot loader type" |
diff --git a/arch/avr32/Makefile b/arch/avr32/Makefile index c9e1f0b47fd3..b088e103e753 100644 --- a/arch/avr32/Makefile +++ b/arch/avr32/Makefile | |||
@@ -33,6 +33,8 @@ head-y += arch/avr32/kernel/head.o | |||
33 | core-y += $(machdirs) | 33 | core-y += $(machdirs) |
34 | core-$(CONFIG_BOARD_ATSTK1000) += arch/avr32/boards/atstk1000/ | 34 | core-$(CONFIG_BOARD_ATSTK1000) += arch/avr32/boards/atstk1000/ |
35 | core-$(CONFIG_BOARD_ATNGW100) += arch/avr32/boards/atngw100/ | 35 | core-$(CONFIG_BOARD_ATNGW100) += arch/avr32/boards/atngw100/ |
36 | core-$(CONFIG_BOARD_FAVR_32) += arch/avr32/boards/favr-32/ | ||
37 | core-$(CONFIG_BOARD_MIMC200) += arch/avr32/boards/mimc200/ | ||
36 | core-$(CONFIG_LOADER_U_BOOT) += arch/avr32/boot/u-boot/ | 38 | core-$(CONFIG_LOADER_U_BOOT) += arch/avr32/boot/u-boot/ |
37 | core-y += arch/avr32/kernel/ | 39 | core-y += arch/avr32/kernel/ |
38 | core-y += arch/avr32/mm/ | 40 | core-y += arch/avr32/mm/ |
diff --git a/arch/avr32/boards/atngw100/Kconfig b/arch/avr32/boards/atngw100/Kconfig new file mode 100644 index 000000000000..b3f99477bbeb --- /dev/null +++ b/arch/avr32/boards/atngw100/Kconfig | |||
@@ -0,0 +1,35 @@ | |||
1 | # NGW100 customization | ||
2 | |||
3 | if BOARD_ATNGW100 | ||
4 | |||
5 | config BOARD_ATNGW100_EVKLCD10X | ||
6 | bool "Add support for EVKLCD10X addon board" | ||
7 | help | ||
8 | This enables support for the EVKLCD100 (QVGA) or EVKLCD101 (VGA) | ||
9 | addon board for the NGW100. By enabling this the LCD controller and | ||
10 | AC97 controller is added as platform devices. | ||
11 | |||
12 | This choice disables the detect pin and the write-protect pin for the | ||
13 | MCI platform device, since it conflicts with the LCD platform device. | ||
14 | The MCI pins can be reenabled by editing the "add device function" but | ||
15 | this may break the setup for other displays that use these pins. | ||
16 | |||
17 | Choose 'Y' here if you have a EVKLCD100/101 connected to the NGW100. | ||
18 | |||
19 | choice | ||
20 | prompt "LCD panel resolution on EVKLCD10X" | ||
21 | depends on BOARD_ATNGW100_EVKLCD10X | ||
22 | default BOARD_ATNGW100_EVKLCD10X_VGA | ||
23 | |||
24 | config BOARD_ATNGW100_EVKLCD10X_QVGA | ||
25 | bool "QVGA (320x240)" | ||
26 | |||
27 | config BOARD_ATNGW100_EVKLCD10X_VGA | ||
28 | bool "VGA (640x480)" | ||
29 | |||
30 | config BOARD_ATNGW100_EVKLCD10X_POW_QVGA | ||
31 | bool "Powertip QVGA (320x240)" | ||
32 | |||
33 | endchoice | ||
34 | |||
35 | endif # BOARD_ATNGW100 | ||
diff --git a/arch/avr32/boards/atngw100/Makefile b/arch/avr32/boards/atngw100/Makefile index c740aa116755..6376f5322e4d 100644 --- a/arch/avr32/boards/atngw100/Makefile +++ b/arch/avr32/boards/atngw100/Makefile | |||
@@ -1 +1,2 @@ | |||
1 | obj-y += setup.o flash.o | 1 | obj-y += setup.o flash.o |
2 | obj-$(CONFIG_BOARD_ATNGW100_EVKLCD10X) += evklcd10x.o | ||
diff --git a/arch/avr32/boards/atngw100/evklcd10x.c b/arch/avr32/boards/atngw100/evklcd10x.c new file mode 100644 index 000000000000..8140b22b3461 --- /dev/null +++ b/arch/avr32/boards/atngw100/evklcd10x.c | |||
@@ -0,0 +1,155 @@ | |||
1 | /* | ||
2 | * Board-specific setup code for the ATEVKLCD10X addon board to the ATNGW100 | ||
3 | * Network Gateway | ||
4 | * | ||
5 | * Copyright (C) 2008 Atmel Corporation | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License version 2 as published by | ||
9 | * the Free Software Foundation. | ||
10 | */ | ||
11 | |||
12 | #include <linux/init.h> | ||
13 | #include <linux/linkage.h> | ||
14 | #include <linux/fb.h> | ||
15 | #include <linux/platform_device.h> | ||
16 | |||
17 | #include <video/atmel_lcdc.h> | ||
18 | |||
19 | #include <asm/setup.h> | ||
20 | |||
21 | #include <mach/at32ap700x.h> | ||
22 | #include <mach/board.h> | ||
23 | |||
24 | static struct ac97c_platform_data __initdata ac97c0_data = { | ||
25 | .dma_rx_periph_id = 3, | ||
26 | .dma_tx_periph_id = 4, | ||
27 | .dma_controller_id = 0, | ||
28 | .reset_pin = GPIO_PIN_PB(19), | ||
29 | }; | ||
30 | |||
31 | #ifdef CONFIG_BOARD_ATNGW100_EVKLCD10X_VGA | ||
32 | static struct fb_videomode __initdata tcg057vglad_modes[] = { | ||
33 | { | ||
34 | .name = "640x480 @ 60", | ||
35 | .refresh = 60, | ||
36 | .xres = 640, .yres = 480, | ||
37 | .pixclock = KHZ2PICOS(25180), | ||
38 | |||
39 | .left_margin = 64, .right_margin = 31, | ||
40 | .upper_margin = 34, .lower_margin = 2, | ||
41 | .hsync_len = 96, .vsync_len = 4, | ||
42 | |||
43 | .sync = 0, | ||
44 | .vmode = FB_VMODE_NONINTERLACED, | ||
45 | }, | ||
46 | }; | ||
47 | |||
48 | static struct fb_monspecs __initdata atevklcd10x_default_monspecs = { | ||
49 | .manufacturer = "KYO", | ||
50 | .monitor = "TCG057VGLAD", | ||
51 | .modedb = tcg057vglad_modes, | ||
52 | .modedb_len = ARRAY_SIZE(tcg057vglad_modes), | ||
53 | .hfmin = 19948, | ||
54 | .hfmax = 31478, | ||
55 | .vfmin = 50, | ||
56 | .vfmax = 67, | ||
57 | .dclkmax = 28330000, | ||
58 | }; | ||
59 | |||
60 | static struct atmel_lcdfb_info __initdata atevklcd10x_lcdc_data = { | ||
61 | .default_bpp = 16, | ||
62 | .default_dmacon = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN, | ||
63 | .default_lcdcon2 = (ATMEL_LCDC_DISTYPE_TFT | ||
64 | | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE | ||
65 | | ATMEL_LCDC_MEMOR_BIG), | ||
66 | .default_monspecs = &atevklcd10x_default_monspecs, | ||
67 | .guard_time = 2, | ||
68 | }; | ||
69 | #elif CONFIG_BOARD_ATNGW100_EVKLCD10X_QVGA | ||
70 | static struct fb_videomode __initdata tcg057qvlad_modes[] = { | ||
71 | { | ||
72 | .name = "320x240 @ 60", | ||
73 | .refresh = 60, | ||
74 | .xres = 320, .yres = 240, | ||
75 | .pixclock = KHZ2PICOS(6300), | ||
76 | |||
77 | .left_margin = 52, .right_margin = 28, | ||
78 | .upper_margin = 7, .lower_margin = 2, | ||
79 | .hsync_len = 96, .vsync_len = 4, | ||
80 | |||
81 | .sync = 0, | ||
82 | .vmode = FB_VMODE_NONINTERLACED, | ||
83 | }, | ||
84 | }; | ||
85 | |||
86 | static struct fb_monspecs __initdata atevklcd10x_default_monspecs = { | ||
87 | .manufacturer = "KYO", | ||
88 | .monitor = "TCG057QVLAD", | ||
89 | .modedb = tcg057qvlad_modes, | ||
90 | .modedb_len = ARRAY_SIZE(tcg057qvlad_modes), | ||
91 | .hfmin = 19948, | ||
92 | .hfmax = 31478, | ||
93 | .vfmin = 50, | ||
94 | .vfmax = 67, | ||
95 | .dclkmax = 7000000, | ||
96 | }; | ||
97 | |||
98 | static struct atmel_lcdfb_info __initdata atevklcd10x_lcdc_data = { | ||
99 | .default_bpp = 16, | ||
100 | .default_dmacon = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN, | ||
101 | .default_lcdcon2 = (ATMEL_LCDC_DISTYPE_TFT | ||
102 | | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE | ||
103 | | ATMEL_LCDC_MEMOR_BIG), | ||
104 | .default_monspecs = &atevklcd10x_default_monspecs, | ||
105 | .guard_time = 2, | ||
106 | }; | ||
107 | #elif CONFIG_BOARD_ATNGW100_EVKLCD10X_POW_QVGA | ||
108 | static struct fb_videomode __initdata ph320240t_modes[] = { | ||
109 | { | ||
110 | .name = "320x240 @ 60", | ||
111 | .refresh = 60, | ||
112 | .xres = 320, .yres = 240, | ||
113 | .pixclock = KHZ2PICOS(6300), | ||
114 | |||
115 | .left_margin = 38, .right_margin = 20, | ||
116 | .upper_margin = 15, .lower_margin = 5, | ||
117 | .hsync_len = 30, .vsync_len = 3, | ||
118 | |||
119 | .sync = 0, | ||
120 | .vmode = FB_VMODE_NONINTERLACED, | ||
121 | }, | ||
122 | }; | ||
123 | |||
124 | static struct fb_monspecs __initdata atevklcd10x_default_monspecs = { | ||
125 | .manufacturer = "POW", | ||
126 | .monitor = "PH320240T", | ||
127 | .modedb = ph320240t_modes, | ||
128 | .modedb_len = ARRAY_SIZE(ph320240t_modes), | ||
129 | .hfmin = 14400, | ||
130 | .hfmax = 21600, | ||
131 | .vfmin = 50, | ||
132 | .vfmax = 90, | ||
133 | .dclkmax = 6400000, | ||
134 | }; | ||
135 | |||
136 | static struct atmel_lcdfb_info __initdata atevklcd10x_lcdc_data = { | ||
137 | .default_bpp = 16, | ||
138 | .default_dmacon = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN, | ||
139 | .default_lcdcon2 = (ATMEL_LCDC_DISTYPE_TFT | ||
140 | | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE | ||
141 | | ATMEL_LCDC_MEMOR_BIG), | ||
142 | .default_monspecs = &atevklcd10x_default_monspecs, | ||
143 | .guard_time = 2, | ||
144 | }; | ||
145 | #endif | ||
146 | |||
147 | static int __init atevklcd10x_init(void) | ||
148 | { | ||
149 | at32_add_device_ac97c(0, &ac97c0_data); | ||
150 | |||
151 | at32_add_device_lcdc(0, &atevklcd10x_lcdc_data, | ||
152 | fbmem_start, fbmem_size, 1); | ||
153 | return 0; | ||
154 | } | ||
155 | postcore_initcall(atevklcd10x_init); | ||
diff --git a/arch/avr32/boards/atngw100/setup.c b/arch/avr32/boards/atngw100/setup.c index 6c54580a66df..32fb9ba0fbdf 100644 --- a/arch/avr32/boards/atngw100/setup.c +++ b/arch/avr32/boards/atngw100/setup.c | |||
@@ -56,8 +56,13 @@ static struct spi_board_info spi0_board_info[] __initdata = { | |||
56 | static struct mci_platform_data __initdata mci0_data = { | 56 | static struct mci_platform_data __initdata mci0_data = { |
57 | .slot[0] = { | 57 | .slot[0] = { |
58 | .bus_width = 4, | 58 | .bus_width = 4, |
59 | #ifndef CONFIG_BOARD_ATNGW100_EVKLCD10X | ||
59 | .detect_pin = GPIO_PIN_PC(25), | 60 | .detect_pin = GPIO_PIN_PC(25), |
60 | .wp_pin = GPIO_PIN_PE(0), | 61 | .wp_pin = GPIO_PIN_PE(0), |
62 | #else | ||
63 | .detect_pin = GPIO_PIN_NONE, | ||
64 | .wp_pin = GPIO_PIN_NONE, | ||
65 | #endif | ||
61 | }, | 66 | }, |
62 | }; | 67 | }; |
63 | 68 | ||
@@ -172,8 +177,6 @@ static int __init atngw100_init(void) | |||
172 | * reserve any pins for it. | 177 | * reserve any pins for it. |
173 | */ | 178 | */ |
174 | 179 | ||
175 | at32_add_system_devices(); | ||
176 | |||
177 | at32_add_device_usart(0); | 180 | at32_add_device_usart(0); |
178 | 181 | ||
179 | set_hw_addr(at32_add_device_eth(0, ð_data[0])); | 182 | set_hw_addr(at32_add_device_eth(0, ð_data[0])); |
diff --git a/arch/avr32/boards/atstk1000/atstk1002.c b/arch/avr32/boards/atstk1000/atstk1002.c index 29e5b51a7fd2..5c5cdf3b464f 100644 --- a/arch/avr32/boards/atstk1000/atstk1002.c +++ b/arch/avr32/boards/atstk1000/atstk1002.c | |||
@@ -305,8 +305,6 @@ static int __init atstk1002_init(void) | |||
305 | at32_reserve_pin(GPIO_PIN_PE(15)); /* DATA[31] */ | 305 | at32_reserve_pin(GPIO_PIN_PE(15)); /* DATA[31] */ |
306 | at32_reserve_pin(GPIO_PIN_PE(26)); /* SDCS */ | 306 | at32_reserve_pin(GPIO_PIN_PE(26)); /* SDCS */ |
307 | 307 | ||
308 | at32_add_system_devices(); | ||
309 | |||
310 | #ifdef CONFIG_BOARD_ATSTK1006 | 308 | #ifdef CONFIG_BOARD_ATSTK1006 |
311 | smc_set_timing(&nand_config, &nand_timing); | 309 | smc_set_timing(&nand_config, &nand_timing); |
312 | smc_set_configuration(3, &nand_config); | 310 | smc_set_configuration(3, &nand_config); |
diff --git a/arch/avr32/boards/atstk1000/atstk1003.c b/arch/avr32/boards/atstk1000/atstk1003.c index be089d7f37eb..134b566630b0 100644 --- a/arch/avr32/boards/atstk1000/atstk1003.c +++ b/arch/avr32/boards/atstk1000/atstk1003.c | |||
@@ -149,8 +149,6 @@ static int __init atstk1003_init(void) | |||
149 | at32_reserve_pin(GPIO_PIN_PE(15)); /* DATA[31] */ | 149 | at32_reserve_pin(GPIO_PIN_PE(15)); /* DATA[31] */ |
150 | at32_reserve_pin(GPIO_PIN_PE(26)); /* SDCS */ | 150 | at32_reserve_pin(GPIO_PIN_PE(26)); /* SDCS */ |
151 | 151 | ||
152 | at32_add_system_devices(); | ||
153 | |||
154 | #ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM | 152 | #ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM |
155 | at32_add_device_usart(1); | 153 | at32_add_device_usart(1); |
156 | #else | 154 | #else |
diff --git a/arch/avr32/boards/atstk1000/atstk1004.c b/arch/avr32/boards/atstk1000/atstk1004.c index 248ef237c167..cb32eb844aa7 100644 --- a/arch/avr32/boards/atstk1000/atstk1004.c +++ b/arch/avr32/boards/atstk1000/atstk1004.c | |||
@@ -132,8 +132,6 @@ void __init setup_board(void) | |||
132 | 132 | ||
133 | static int __init atstk1004_init(void) | 133 | static int __init atstk1004_init(void) |
134 | { | 134 | { |
135 | at32_add_system_devices(); | ||
136 | |||
137 | #ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM | 135 | #ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM |
138 | at32_add_device_usart(1); | 136 | at32_add_device_usart(1); |
139 | #else | 137 | #else |
diff --git a/arch/avr32/boards/favr-32/Kconfig b/arch/avr32/boards/favr-32/Kconfig new file mode 100644 index 000000000000..2c83d1ddcaec --- /dev/null +++ b/arch/avr32/boards/favr-32/Kconfig | |||
@@ -0,0 +1,22 @@ | |||
1 | # Favr-32 customization | ||
2 | |||
3 | if BOARD_FAVR_32 | ||
4 | |||
5 | config BOARD_FAVR32_ABDAC_RATE | ||
6 | int "DAC target rate" | ||
7 | default 44100 | ||
8 | range 32000 50000 | ||
9 | help | ||
10 | Specify the target rate the internal DAC should try to match. This | ||
11 | will use PLL1 to generate a frequency as close as possible to this | ||
12 | rate. | ||
13 | |||
14 | Must be within the range 32000 to 50000, which should be suitable to | ||
15 | generate most other frequencies in power of 2 steps. | ||
16 | |||
17 | Ex: | ||
18 | 48000 will also suit 24000 and 12000 | ||
19 | 44100 will also suit 22050 and 11025 | ||
20 | 32000 will also suit 16000 and 8000 | ||
21 | |||
22 | endif # BOARD_FAVR_32 | ||
diff --git a/arch/avr32/boards/favr-32/Makefile b/arch/avr32/boards/favr-32/Makefile new file mode 100644 index 000000000000..234f21508e4b --- /dev/null +++ b/arch/avr32/boards/favr-32/Makefile | |||
@@ -0,0 +1 @@ | |||
obj-y += setup.o flash.o | |||
diff --git a/arch/avr32/boards/favr-32/flash.c b/arch/avr32/boards/favr-32/flash.c new file mode 100644 index 000000000000..5f139b7cb5f7 --- /dev/null +++ b/arch/avr32/boards/favr-32/flash.c | |||
@@ -0,0 +1,98 @@ | |||
1 | /* | ||
2 | * Favr-32 board-specific flash initialization | ||
3 | * | ||
4 | * Copyright (C) 2008 Atmel Corporation | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | #include <linux/init.h> | ||
11 | #include <linux/platform_device.h> | ||
12 | #include <linux/mtd/mtd.h> | ||
13 | #include <linux/mtd/partitions.h> | ||
14 | #include <linux/mtd/physmap.h> | ||
15 | |||
16 | #include <asm/arch/smc.h> | ||
17 | |||
18 | static struct smc_timing flash_timing __initdata = { | ||
19 | .ncs_read_setup = 0, | ||
20 | .nrd_setup = 40, | ||
21 | .ncs_write_setup = 0, | ||
22 | .nwe_setup = 10, | ||
23 | |||
24 | .ncs_read_pulse = 80, | ||
25 | .nrd_pulse = 40, | ||
26 | .ncs_write_pulse = 65, | ||
27 | .nwe_pulse = 55, | ||
28 | |||
29 | .read_cycle = 120, | ||
30 | .write_cycle = 120, | ||
31 | }; | ||
32 | |||
33 | static struct smc_config flash_config __initdata = { | ||
34 | .bus_width = 2, | ||
35 | .nrd_controlled = 1, | ||
36 | .nwe_controlled = 1, | ||
37 | .byte_write = 1, | ||
38 | }; | ||
39 | |||
40 | static struct mtd_partition flash_parts[] = { | ||
41 | { | ||
42 | .name = "u-boot", | ||
43 | .offset = 0x00000000, | ||
44 | .size = 0x00020000, /* 128 KiB */ | ||
45 | .mask_flags = MTD_WRITEABLE, | ||
46 | }, | ||
47 | { | ||
48 | .name = "root", | ||
49 | .offset = 0x00020000, | ||
50 | .size = 0x007d0000, | ||
51 | }, | ||
52 | { | ||
53 | .name = "env", | ||
54 | .offset = 0x007f0000, | ||
55 | .size = 0x00010000, | ||
56 | .mask_flags = MTD_WRITEABLE, | ||
57 | }, | ||
58 | }; | ||
59 | |||
60 | static struct physmap_flash_data flash_data = { | ||
61 | .width = 2, | ||
62 | .nr_parts = ARRAY_SIZE(flash_parts), | ||
63 | .parts = flash_parts, | ||
64 | }; | ||
65 | |||
66 | static struct resource flash_resource = { | ||
67 | .start = 0x00000000, | ||
68 | .end = 0x007fffff, | ||
69 | .flags = IORESOURCE_MEM, | ||
70 | }; | ||
71 | |||
72 | static struct platform_device flash_device = { | ||
73 | .name = "physmap-flash", | ||
74 | .id = 0, | ||
75 | .resource = &flash_resource, | ||
76 | .num_resources = 1, | ||
77 | .dev = { | ||
78 | .platform_data = &flash_data, | ||
79 | }, | ||
80 | }; | ||
81 | |||
82 | /* This needs to be called after the SMC has been initialized */ | ||
83 | static int __init favr32_flash_init(void) | ||
84 | { | ||
85 | int ret; | ||
86 | |||
87 | smc_set_timing(&flash_config, &flash_timing); | ||
88 | ret = smc_set_configuration(0, &flash_config); | ||
89 | if (ret < 0) { | ||
90 | printk(KERN_ERR "Favr-32: failed to set NOR flash timing\n"); | ||
91 | return ret; | ||
92 | } | ||
93 | |||
94 | platform_device_register(&flash_device); | ||
95 | |||
96 | return 0; | ||
97 | } | ||
98 | device_initcall(favr32_flash_init); | ||
diff --git a/arch/avr32/boards/favr-32/setup.c b/arch/avr32/boards/favr-32/setup.c new file mode 100644 index 000000000000..7538f3d2b9e0 --- /dev/null +++ b/arch/avr32/boards/favr-32/setup.c | |||
@@ -0,0 +1,352 @@ | |||
1 | /* | ||
2 | * Favr-32 board-specific setup code. | ||
3 | * | ||
4 | * Copyright (C) 2008 Atmel Corporation | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | #include <linux/clk.h> | ||
11 | #include <linux/etherdevice.h> | ||
12 | #include <linux/bootmem.h> | ||
13 | #include <linux/fb.h> | ||
14 | #include <linux/init.h> | ||
15 | #include <linux/platform_device.h> | ||
16 | #include <linux/types.h> | ||
17 | #include <linux/linkage.h> | ||
18 | #include <linux/gpio.h> | ||
19 | #include <linux/leds.h> | ||
20 | #include <linux/atmel-pwm-bl.h> | ||
21 | #include <linux/spi/spi.h> | ||
22 | #include <linux/spi/ads7846.h> | ||
23 | |||
24 | #include <video/atmel_lcdc.h> | ||
25 | |||
26 | #include <asm/setup.h> | ||
27 | |||
28 | #include <asm/arch/at32ap700x.h> | ||
29 | #include <asm/arch/init.h> | ||
30 | #include <asm/arch/board.h> | ||
31 | #include <asm/arch/portmux.h> | ||
32 | |||
33 | /* Oscillator frequencies. These are board-specific */ | ||
34 | unsigned long at32_board_osc_rates[3] = { | ||
35 | [0] = 32768, /* 32.768 kHz on RTC osc */ | ||
36 | [1] = 20000000, /* 20 MHz on osc0 */ | ||
37 | [2] = 12000000, /* 12 MHz on osc1 */ | ||
38 | }; | ||
39 | |||
40 | /* Initialized by bootloader-specific startup code. */ | ||
41 | struct tag *bootloader_tags __initdata; | ||
42 | |||
43 | struct eth_addr { | ||
44 | u8 addr[6]; | ||
45 | }; | ||
46 | static struct eth_addr __initdata hw_addr[1]; | ||
47 | static struct eth_platform_data __initdata eth_data[1] = { | ||
48 | { | ||
49 | .phy_mask = ~(1U << 1), | ||
50 | }, | ||
51 | }; | ||
52 | |||
53 | static int ads7843_get_pendown_state(void) | ||
54 | { | ||
55 | return !gpio_get_value(GPIO_PIN_PB(3)); | ||
56 | } | ||
57 | |||
58 | static struct ads7846_platform_data ads7843_data = { | ||
59 | .model = 7843, | ||
60 | .get_pendown_state = ads7843_get_pendown_state, | ||
61 | .pressure_max = 255, | ||
62 | /* | ||
63 | * Values below are for debounce filtering, these can be experimented | ||
64 | * with further. | ||
65 | */ | ||
66 | .debounce_max = 20, | ||
67 | .debounce_rep = 4, | ||
68 | .debounce_tol = 5, | ||
69 | }; | ||
70 | |||
71 | static struct spi_board_info __initdata spi1_board_info[] = { | ||
72 | { | ||
73 | /* ADS7843 touch controller */ | ||
74 | .modalias = "ads7846", | ||
75 | .max_speed_hz = 2000000, | ||
76 | .chip_select = 0, | ||
77 | .bus_num = 1, | ||
78 | .platform_data = &ads7843_data, | ||
79 | }, | ||
80 | }; | ||
81 | |||
82 | static struct fb_videomode __initdata lb104v03_modes[] = { | ||
83 | { | ||
84 | .name = "640x480 @ 50", | ||
85 | .refresh = 50, | ||
86 | .xres = 640, .yres = 480, | ||
87 | .pixclock = KHZ2PICOS(25100), | ||
88 | |||
89 | .left_margin = 90, .right_margin = 70, | ||
90 | .upper_margin = 30, .lower_margin = 15, | ||
91 | .hsync_len = 12, .vsync_len = 2, | ||
92 | |||
93 | .sync = 0, | ||
94 | .vmode = FB_VMODE_NONINTERLACED, | ||
95 | }, | ||
96 | }; | ||
97 | |||
98 | static struct fb_monspecs __initdata favr32_default_monspecs = { | ||
99 | .manufacturer = "LG", | ||
100 | .monitor = "LB104V03", | ||
101 | .modedb = lb104v03_modes, | ||
102 | .modedb_len = ARRAY_SIZE(lb104v03_modes), | ||
103 | .hfmin = 27273, | ||
104 | .hfmax = 31111, | ||
105 | .vfmin = 45, | ||
106 | .vfmax = 60, | ||
107 | .dclkmax = 28000000, | ||
108 | }; | ||
109 | |||
110 | struct atmel_lcdfb_info __initdata favr32_lcdc_data = { | ||
111 | .default_bpp = 16, | ||
112 | .default_dmacon = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN, | ||
113 | .default_lcdcon2 = (ATMEL_LCDC_DISTYPE_TFT | ||
114 | | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE | ||
115 | | ATMEL_LCDC_MEMOR_BIG), | ||
116 | .default_monspecs = &favr32_default_monspecs, | ||
117 | .guard_time = 2, | ||
118 | }; | ||
119 | |||
120 | static struct gpio_led favr32_leds[] = { | ||
121 | { | ||
122 | .name = "green", | ||
123 | .gpio = GPIO_PIN_PE(19), | ||
124 | .default_trigger = "heartbeat", | ||
125 | .active_low = 1, | ||
126 | }, | ||
127 | { | ||
128 | .name = "red", | ||
129 | .gpio = GPIO_PIN_PE(20), | ||
130 | .active_low = 1, | ||
131 | }, | ||
132 | }; | ||
133 | |||
134 | static struct gpio_led_platform_data favr32_led_data = { | ||
135 | .num_leds = ARRAY_SIZE(favr32_leds), | ||
136 | .leds = favr32_leds, | ||
137 | }; | ||
138 | |||
139 | static struct platform_device favr32_led_dev = { | ||
140 | .name = "leds-gpio", | ||
141 | .id = 0, | ||
142 | .dev = { | ||
143 | .platform_data = &favr32_led_data, | ||
144 | }, | ||
145 | }; | ||
146 | |||
147 | /* | ||
148 | * The next two functions should go away as the boot loader is | ||
149 | * supposed to initialize the macb address registers with a valid | ||
150 | * ethernet address. But we need to keep it around for a while until | ||
151 | * we can be reasonably sure the boot loader does this. | ||
152 | * | ||
153 | * The phy_id is ignored as the driver will probe for it. | ||
154 | */ | ||
155 | static int __init parse_tag_ethernet(struct tag *tag) | ||
156 | { | ||
157 | int i; | ||
158 | |||
159 | i = tag->u.ethernet.mac_index; | ||
160 | if (i < ARRAY_SIZE(hw_addr)) | ||
161 | memcpy(hw_addr[i].addr, tag->u.ethernet.hw_address, | ||
162 | sizeof(hw_addr[i].addr)); | ||
163 | |||
164 | return 0; | ||
165 | } | ||
166 | __tagtable(ATAG_ETHERNET, parse_tag_ethernet); | ||
167 | |||
168 | static void __init set_hw_addr(struct platform_device *pdev) | ||
169 | { | ||
170 | struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | ||
171 | const u8 *addr; | ||
172 | void __iomem *regs; | ||
173 | struct clk *pclk; | ||
174 | |||
175 | if (!res) | ||
176 | return; | ||
177 | if (pdev->id >= ARRAY_SIZE(hw_addr)) | ||
178 | return; | ||
179 | |||
180 | addr = hw_addr[pdev->id].addr; | ||
181 | if (!is_valid_ether_addr(addr)) | ||
182 | return; | ||
183 | |||
184 | /* | ||
185 | * Since this is board-specific code, we'll cheat and use the | ||
186 | * physical address directly as we happen to know that it's | ||
187 | * the same as the virtual address. | ||
188 | */ | ||
189 | regs = (void __iomem __force *)res->start; | ||
190 | pclk = clk_get(&pdev->dev, "pclk"); | ||
191 | if (!pclk) | ||
192 | return; | ||
193 | |||
194 | clk_enable(pclk); | ||
195 | __raw_writel((addr[3] << 24) | (addr[2] << 16) | ||
196 | | (addr[1] << 8) | addr[0], regs + 0x98); | ||
197 | __raw_writel((addr[5] << 8) | addr[4], regs + 0x9c); | ||
198 | clk_disable(pclk); | ||
199 | clk_put(pclk); | ||
200 | } | ||
201 | |||
202 | void __init favr32_setup_leds(void) | ||
203 | { | ||
204 | unsigned i; | ||
205 | |||
206 | for (i = 0; i < ARRAY_SIZE(favr32_leds); i++) | ||
207 | at32_select_gpio(favr32_leds[i].gpio, AT32_GPIOF_OUTPUT); | ||
208 | |||
209 | platform_device_register(&favr32_led_dev); | ||
210 | } | ||
211 | |||
212 | static struct atmel_pwm_bl_platform_data atmel_pwm_bl_pdata = { | ||
213 | .pwm_channel = 2, | ||
214 | .pwm_frequency = 200000, | ||
215 | .pwm_compare_max = 345, | ||
216 | .pwm_duty_max = 345, | ||
217 | .pwm_duty_min = 90, | ||
218 | .pwm_active_low = 1, | ||
219 | .gpio_on = GPIO_PIN_PA(28), | ||
220 | .on_active_low = 0, | ||
221 | }; | ||
222 | |||
223 | static struct platform_device atmel_pwm_bl_dev = { | ||
224 | .name = "atmel-pwm-bl", | ||
225 | .id = 0, | ||
226 | .dev = { | ||
227 | .platform_data = &atmel_pwm_bl_pdata, | ||
228 | }, | ||
229 | }; | ||
230 | |||
231 | static void __init favr32_setup_atmel_pwm_bl(void) | ||
232 | { | ||
233 | platform_device_register(&atmel_pwm_bl_dev); | ||
234 | at32_select_gpio(atmel_pwm_bl_pdata.gpio_on, 0); | ||
235 | } | ||
236 | |||
237 | void __init setup_board(void) | ||
238 | { | ||
239 | at32_map_usart(3, 0); /* USART 3 => /dev/ttyS0 */ | ||
240 | at32_setup_serial_console(0); | ||
241 | } | ||
242 | |||
243 | static int __init set_abdac_rate(struct platform_device *pdev) | ||
244 | { | ||
245 | int retval; | ||
246 | struct clk *osc1; | ||
247 | struct clk *pll1; | ||
248 | struct clk *abdac; | ||
249 | |||
250 | if (pdev == NULL) | ||
251 | return -ENXIO; | ||
252 | |||
253 | osc1 = clk_get(NULL, "osc1"); | ||
254 | if (IS_ERR(osc1)) { | ||
255 | retval = PTR_ERR(osc1); | ||
256 | goto out; | ||
257 | } | ||
258 | |||
259 | pll1 = clk_get(NULL, "pll1"); | ||
260 | if (IS_ERR(pll1)) { | ||
261 | retval = PTR_ERR(pll1); | ||
262 | goto out_osc1; | ||
263 | } | ||
264 | |||
265 | abdac = clk_get(&pdev->dev, "sample_clk"); | ||
266 | if (IS_ERR(abdac)) { | ||
267 | retval = PTR_ERR(abdac); | ||
268 | goto out_pll1; | ||
269 | } | ||
270 | |||
271 | retval = clk_set_parent(pll1, osc1); | ||
272 | if (retval != 0) | ||
273 | goto out_abdac; | ||
274 | |||
275 | /* | ||
276 | * Rate is 32000 to 50000 and ABDAC oversamples 256x. Multiply, in | ||
277 | * power of 2, to a value above 80 MHz. Power of 2 so it is possible | ||
278 | * for the generic clock to divide it down again and 80 MHz is the | ||
279 | * lowest frequency for the PLL. | ||
280 | */ | ||
281 | retval = clk_round_rate(pll1, | ||
282 | CONFIG_BOARD_FAVR32_ABDAC_RATE * 256 * 16); | ||
283 | if (retval < 0) | ||
284 | goto out_abdac; | ||
285 | |||
286 | retval = clk_set_rate(pll1, retval); | ||
287 | if (retval != 0) | ||
288 | goto out_abdac; | ||
289 | |||
290 | retval = clk_set_parent(abdac, pll1); | ||
291 | if (retval != 0) | ||
292 | goto out_abdac; | ||
293 | |||
294 | out_abdac: | ||
295 | clk_put(abdac); | ||
296 | out_pll1: | ||
297 | clk_put(pll1); | ||
298 | out_osc1: | ||
299 | clk_put(osc1); | ||
300 | out: | ||
301 | return retval; | ||
302 | } | ||
303 | |||
304 | static int __init favr32_init(void) | ||
305 | { | ||
306 | /* | ||
307 | * Favr-32 uses 32-bit SDRAM interface. Reserve the SDRAM-specific | ||
308 | * pins so that nobody messes with them. | ||
309 | */ | ||
310 | at32_reserve_pin(GPIO_PIN_PE(0)); /* DATA[16] */ | ||
311 | at32_reserve_pin(GPIO_PIN_PE(1)); /* DATA[17] */ | ||
312 | at32_reserve_pin(GPIO_PIN_PE(2)); /* DATA[18] */ | ||
313 | at32_reserve_pin(GPIO_PIN_PE(3)); /* DATA[19] */ | ||
314 | at32_reserve_pin(GPIO_PIN_PE(4)); /* DATA[20] */ | ||
315 | at32_reserve_pin(GPIO_PIN_PE(5)); /* DATA[21] */ | ||
316 | at32_reserve_pin(GPIO_PIN_PE(6)); /* DATA[22] */ | ||
317 | at32_reserve_pin(GPIO_PIN_PE(7)); /* DATA[23] */ | ||
318 | at32_reserve_pin(GPIO_PIN_PE(8)); /* DATA[24] */ | ||
319 | at32_reserve_pin(GPIO_PIN_PE(9)); /* DATA[25] */ | ||
320 | at32_reserve_pin(GPIO_PIN_PE(10)); /* DATA[26] */ | ||
321 | at32_reserve_pin(GPIO_PIN_PE(11)); /* DATA[27] */ | ||
322 | at32_reserve_pin(GPIO_PIN_PE(12)); /* DATA[28] */ | ||
323 | at32_reserve_pin(GPIO_PIN_PE(13)); /* DATA[29] */ | ||
324 | at32_reserve_pin(GPIO_PIN_PE(14)); /* DATA[30] */ | ||
325 | at32_reserve_pin(GPIO_PIN_PE(15)); /* DATA[31] */ | ||
326 | at32_reserve_pin(GPIO_PIN_PE(26)); /* SDCS */ | ||
327 | |||
328 | at32_select_gpio(GPIO_PIN_PB(3), 0); /* IRQ from ADS7843 */ | ||
329 | |||
330 | at32_add_system_devices(); | ||
331 | |||
332 | at32_add_device_usart(0); | ||
333 | |||
334 | set_hw_addr(at32_add_device_eth(0, ð_data[0])); | ||
335 | |||
336 | spi1_board_info[0].irq = gpio_to_irq(GPIO_PIN_PB(3)); | ||
337 | |||
338 | set_abdac_rate(at32_add_device_abdac(0)); | ||
339 | |||
340 | at32_add_device_pwm(1 << atmel_pwm_bl_pdata.pwm_channel); | ||
341 | at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info)); | ||
342 | at32_add_device_mci(0, NULL); | ||
343 | at32_add_device_usba(0, NULL); | ||
344 | at32_add_device_lcdc(0, &favr32_lcdc_data, fbmem_start, fbmem_size, 0); | ||
345 | |||
346 | favr32_setup_leds(); | ||
347 | |||
348 | favr32_setup_atmel_pwm_bl(); | ||
349 | |||
350 | return 0; | ||
351 | } | ||
352 | postcore_initcall(favr32_init); | ||
diff --git a/arch/avr32/boards/mimc200/Makefile b/arch/avr32/boards/mimc200/Makefile new file mode 100644 index 000000000000..79c076e168a8 --- /dev/null +++ b/arch/avr32/boards/mimc200/Makefile | |||
@@ -0,0 +1 @@ | |||
obj-y += setup.o flash.o fram.o | |||
diff --git a/arch/avr32/boards/mimc200/flash.c b/arch/avr32/boards/mimc200/flash.c new file mode 100644 index 000000000000..d83d650fc13f --- /dev/null +++ b/arch/avr32/boards/mimc200/flash.c | |||
@@ -0,0 +1,143 @@ | |||
1 | /* | ||
2 | * MIMC200 board-specific flash initialization | ||
3 | * | ||
4 | * Copyright (C) 2008 Mercury IMC Ltd | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | #include <linux/init.h> | ||
11 | #include <linux/platform_device.h> | ||
12 | #include <linux/mtd/mtd.h> | ||
13 | #include <linux/mtd/partitions.h> | ||
14 | #include <linux/mtd/physmap.h> | ||
15 | |||
16 | #include <mach/smc.h> | ||
17 | |||
18 | static struct smc_timing flash_timing __initdata = { | ||
19 | .ncs_read_setup = 0, | ||
20 | .nrd_setup = 15, | ||
21 | .ncs_write_setup = 0, | ||
22 | .nwe_setup = 0, | ||
23 | |||
24 | .ncs_read_pulse = 115, | ||
25 | .nrd_pulse = 110, | ||
26 | .ncs_write_pulse = 60, | ||
27 | .nwe_pulse = 60, | ||
28 | |||
29 | .read_cycle = 115, | ||
30 | .write_cycle = 100, | ||
31 | }; | ||
32 | |||
33 | static struct smc_config flash_config __initdata = { | ||
34 | .bus_width = 2, | ||
35 | .nrd_controlled = 1, | ||
36 | .nwe_controlled = 1, | ||
37 | .byte_write = 1, | ||
38 | }; | ||
39 | |||
40 | /* system flash definition */ | ||
41 | |||
42 | static struct mtd_partition flash_parts_system[] = { | ||
43 | { | ||
44 | .name = "u-boot", | ||
45 | .offset = 0x00000000, | ||
46 | .size = 0x00020000, /* 128 KiB */ | ||
47 | .mask_flags = MTD_WRITEABLE, | ||
48 | }, | ||
49 | { | ||
50 | .name = "root", | ||
51 | .offset = 0x00020000, | ||
52 | .size = 0x007c0000, | ||
53 | }, | ||
54 | { | ||
55 | .name = "splash", | ||
56 | .offset = 0x007e0000, | ||
57 | .size = 0x00010000, /* 64KiB */ | ||
58 | }, | ||
59 | { | ||
60 | .name = "env", | ||
61 | .offset = 0x007f0000, | ||
62 | .size = 0x00010000, | ||
63 | .mask_flags = MTD_WRITEABLE, | ||
64 | }, | ||
65 | }; | ||
66 | |||
67 | static struct physmap_flash_data flash_system = { | ||
68 | .width = 2, | ||
69 | .nr_parts = ARRAY_SIZE(flash_parts_system), | ||
70 | .parts = flash_parts_system, | ||
71 | }; | ||
72 | |||
73 | static struct resource flash_resource_system = { | ||
74 | .start = 0x00000000, | ||
75 | .end = 0x007fffff, | ||
76 | .flags = IORESOURCE_MEM, | ||
77 | }; | ||
78 | |||
79 | static struct platform_device flash_device_system = { | ||
80 | .name = "physmap-flash", | ||
81 | .id = 0, | ||
82 | .resource = &flash_resource_system, | ||
83 | .num_resources = 1, | ||
84 | .dev = { | ||
85 | .platform_data = &flash_system, | ||
86 | }, | ||
87 | }; | ||
88 | |||
89 | /* data flash definition */ | ||
90 | |||
91 | static struct mtd_partition flash_parts_data[] = { | ||
92 | { | ||
93 | .name = "data", | ||
94 | .offset = 0x00000000, | ||
95 | .size = 0x00800000, | ||
96 | }, | ||
97 | }; | ||
98 | |||
99 | static struct physmap_flash_data flash_data = { | ||
100 | .width = 2, | ||
101 | .nr_parts = ARRAY_SIZE(flash_parts_data), | ||
102 | .parts = flash_parts_data, | ||
103 | }; | ||
104 | |||
105 | static struct resource flash_resource_data = { | ||
106 | .start = 0x08000000, | ||
107 | .end = 0x087fffff, | ||
108 | .flags = IORESOURCE_MEM, | ||
109 | }; | ||
110 | |||
111 | static struct platform_device flash_device_data = { | ||
112 | .name = "physmap-flash", | ||
113 | .id = 1, | ||
114 | .resource = &flash_resource_data, | ||
115 | .num_resources = 1, | ||
116 | .dev = { | ||
117 | .platform_data = &flash_data, | ||
118 | }, | ||
119 | }; | ||
120 | |||
121 | /* This needs to be called after the SMC has been initialized */ | ||
122 | static int __init mimc200_flash_init(void) | ||
123 | { | ||
124 | int ret; | ||
125 | |||
126 | smc_set_timing(&flash_config, &flash_timing); | ||
127 | ret = smc_set_configuration(0, &flash_config); | ||
128 | if (ret < 0) { | ||
129 | printk(KERN_ERR "mimc200: failed to set 'System' NOR flash timing\n"); | ||
130 | return ret; | ||
131 | } | ||
132 | ret = smc_set_configuration(1, &flash_config); | ||
133 | if (ret < 0) { | ||
134 | printk(KERN_ERR "mimc200: failed to set 'Data' NOR flash timing\n"); | ||
135 | return ret; | ||
136 | } | ||
137 | |||
138 | platform_device_register(&flash_device_system); | ||
139 | platform_device_register(&flash_device_data); | ||
140 | |||
141 | return 0; | ||
142 | } | ||
143 | device_initcall(mimc200_flash_init); | ||
diff --git a/arch/avr32/boards/mimc200/fram.c b/arch/avr32/boards/mimc200/fram.c new file mode 100644 index 000000000000..54fbd95cee9b --- /dev/null +++ b/arch/avr32/boards/mimc200/fram.c | |||
@@ -0,0 +1,80 @@ | |||
1 | /* | ||
2 | * FRAM driver for MIMC200 board | ||
3 | * | ||
4 | * Copyright 2008 Mark Jackson <mpfj@mimc.co.uk> | ||
5 | * | ||
6 | * This module adds *very* simply support for the system's FRAM device. | ||
7 | * At the moment, this is hard-coded to the MIMC200 platform, and only | ||
8 | * supports mmap(). | ||
9 | */ | ||
10 | |||
11 | #define FRAM_VERSION "1.0" | ||
12 | |||
13 | #include <linux/miscdevice.h> | ||
14 | #include <linux/proc_fs.h> | ||
15 | #include <linux/mm.h> | ||
16 | #include <linux/io.h> | ||
17 | |||
18 | #define FRAM_BASE 0xac000000 | ||
19 | #define FRAM_SIZE 0x20000 | ||
20 | |||
21 | /* | ||
22 | * The are the file operation function for user access to /dev/fram | ||
23 | */ | ||
24 | |||
25 | static int fram_mmap(struct file *filp, struct vm_area_struct *vma) | ||
26 | { | ||
27 | int ret; | ||
28 | |||
29 | ret = remap_pfn_range(vma, | ||
30 | vma->vm_start, | ||
31 | virt_to_phys((void *)((unsigned long)FRAM_BASE)) >> PAGE_SHIFT, | ||
32 | vma->vm_end-vma->vm_start, | ||
33 | PAGE_SHARED); | ||
34 | |||
35 | if (ret != 0) | ||
36 | return -EAGAIN; | ||
37 | |||
38 | return 0; | ||
39 | } | ||
40 | |||
41 | static const struct file_operations fram_fops = { | ||
42 | .owner = THIS_MODULE, | ||
43 | .mmap = fram_mmap, | ||
44 | }; | ||
45 | |||
46 | #define FRAM_MINOR 0 | ||
47 | |||
48 | static struct miscdevice fram_dev = { | ||
49 | FRAM_MINOR, | ||
50 | "fram", | ||
51 | &fram_fops | ||
52 | }; | ||
53 | |||
54 | static int __init | ||
55 | fram_init(void) | ||
56 | { | ||
57 | int ret; | ||
58 | |||
59 | ret = misc_register(&fram_dev); | ||
60 | if (ret) { | ||
61 | printk(KERN_ERR "fram: can't misc_register on minor=%d\n", | ||
62 | FRAM_MINOR); | ||
63 | return ret; | ||
64 | } | ||
65 | printk(KERN_INFO "FRAM memory driver v" FRAM_VERSION "\n"); | ||
66 | return 0; | ||
67 | } | ||
68 | |||
69 | static void __exit | ||
70 | fram_cleanup_module(void) | ||
71 | { | ||
72 | misc_deregister(&fram_dev); | ||
73 | } | ||
74 | |||
75 | module_init(fram_init); | ||
76 | module_exit(fram_cleanup_module); | ||
77 | |||
78 | MODULE_LICENSE("GPL"); | ||
79 | |||
80 | MODULE_ALIAS_MISCDEV(FRAM_MINOR); | ||
diff --git a/arch/avr32/boards/mimc200/setup.c b/arch/avr32/boards/mimc200/setup.c new file mode 100644 index 000000000000..397cbb8f44c8 --- /dev/null +++ b/arch/avr32/boards/mimc200/setup.c | |||
@@ -0,0 +1,237 @@ | |||
1 | /* | ||
2 | * Board-specific setup code for the MIMC200 | ||
3 | * | ||
4 | * Copyright (C) 2008 Mercury IMC Ltd | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | |||
11 | extern struct atmel_lcdfb_info mimc200_lcdc_data; | ||
12 | |||
13 | #include <linux/clk.h> | ||
14 | #include <linux/etherdevice.h> | ||
15 | #include <linux/i2c-gpio.h> | ||
16 | #include <linux/init.h> | ||
17 | #include <linux/linkage.h> | ||
18 | #include <linux/platform_device.h> | ||
19 | #include <linux/types.h> | ||
20 | #include <linux/leds.h> | ||
21 | #include <linux/spi/spi.h> | ||
22 | #include <linux/spi/eeprom.h> | ||
23 | |||
24 | #include <video/atmel_lcdc.h> | ||
25 | #include <linux/fb.h> | ||
26 | |||
27 | #include <asm/atmel-mci.h> | ||
28 | #include <linux/io.h> | ||
29 | #include <asm/setup.h> | ||
30 | |||
31 | #include <mach/at32ap700x.h> | ||
32 | #include <mach/board.h> | ||
33 | #include <mach/init.h> | ||
34 | #include <mach/portmux.h> | ||
35 | |||
36 | /* Oscillator frequencies. These are board-specific */ | ||
37 | unsigned long at32_board_osc_rates[3] = { | ||
38 | [0] = 32768, /* 32.768 kHz on RTC osc */ | ||
39 | [1] = 10000000, /* 10 MHz on osc0 */ | ||
40 | [2] = 12000000, /* 12 MHz on osc1 */ | ||
41 | }; | ||
42 | |||
43 | /* Initialized by bootloader-specific startup code. */ | ||
44 | struct tag *bootloader_tags __initdata; | ||
45 | |||
46 | static struct fb_videomode __initdata tx14d14_modes[] = { | ||
47 | { | ||
48 | .name = "640x480 @ 60", | ||
49 | .refresh = 60, | ||
50 | .xres = 640, .yres = 480, | ||
51 | .pixclock = KHZ2PICOS(11666), | ||
52 | |||
53 | .left_margin = 80, .right_margin = 1, | ||
54 | .upper_margin = 13, .lower_margin = 2, | ||
55 | .hsync_len = 64, .vsync_len = 1, | ||
56 | |||
57 | .sync = 0, | ||
58 | .vmode = FB_VMODE_NONINTERLACED, | ||
59 | }, | ||
60 | }; | ||
61 | |||
62 | static struct fb_monspecs __initdata mimc200_default_monspecs = { | ||
63 | .manufacturer = "HIT", | ||
64 | .monitor = "TX14D14VM1BAB", | ||
65 | .modedb = tx14d14_modes, | ||
66 | .modedb_len = ARRAY_SIZE(tx14d14_modes), | ||
67 | .hfmin = 14820, | ||
68 | .hfmax = 22230, | ||
69 | .vfmin = 60, | ||
70 | .vfmax = 73.3, | ||
71 | .dclkmax = 25200000, | ||
72 | }; | ||
73 | |||
74 | struct atmel_lcdfb_info __initdata mimc200_lcdc_data = { | ||
75 | .default_bpp = 16, | ||
76 | .default_dmacon = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN, | ||
77 | .default_lcdcon2 = (ATMEL_LCDC_DISTYPE_TFT | ||
78 | | ATMEL_LCDC_INVCLK | ||
79 | | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE | ||
80 | | ATMEL_LCDC_MEMOR_BIG), | ||
81 | .default_monspecs = &mimc200_default_monspecs, | ||
82 | .guard_time = 2, | ||
83 | }; | ||
84 | |||
85 | struct eth_addr { | ||
86 | u8 addr[6]; | ||
87 | }; | ||
88 | static struct eth_addr __initdata hw_addr[2]; | ||
89 | static struct eth_platform_data __initdata eth_data[2]; | ||
90 | |||
91 | static struct spi_eeprom eeprom_25lc010 = { | ||
92 | .name = "25lc010", | ||
93 | .byte_len = 128, | ||
94 | .page_size = 16, | ||
95 | .flags = EE_ADDR1, | ||
96 | }; | ||
97 | |||
98 | static struct spi_board_info spi0_board_info[] __initdata = { | ||
99 | { | ||
100 | .modalias = "rtc-ds1390", | ||
101 | .max_speed_hz = 4000000, | ||
102 | .chip_select = 2, | ||
103 | }, | ||
104 | { | ||
105 | .modalias = "at25", | ||
106 | .max_speed_hz = 1000000, | ||
107 | .chip_select = 1, | ||
108 | .mode = SPI_MODE_3, | ||
109 | .platform_data = &eeprom_25lc010, | ||
110 | }, | ||
111 | }; | ||
112 | |||
113 | static struct mci_platform_data __initdata mci0_data = { | ||
114 | .slot[0] = { | ||
115 | .bus_width = 4, | ||
116 | .detect_pin = GPIO_PIN_PA(26), | ||
117 | .wp_pin = GPIO_PIN_PA(27), | ||
118 | }, | ||
119 | }; | ||
120 | |||
121 | /* | ||
122 | * The next two functions should go away as the boot loader is | ||
123 | * supposed to initialize the macb address registers with a valid | ||
124 | * ethernet address. But we need to keep it around for a while until | ||
125 | * we can be reasonably sure the boot loader does this. | ||
126 | * | ||
127 | * The phy_id is ignored as the driver will probe for it. | ||
128 | */ | ||
129 | static int __init parse_tag_ethernet(struct tag *tag) | ||
130 | { | ||
131 | int i; | ||
132 | |||
133 | i = tag->u.ethernet.mac_index; | ||
134 | if (i < ARRAY_SIZE(hw_addr)) | ||
135 | memcpy(hw_addr[i].addr, tag->u.ethernet.hw_address, | ||
136 | sizeof(hw_addr[i].addr)); | ||
137 | |||
138 | return 0; | ||
139 | } | ||
140 | __tagtable(ATAG_ETHERNET, parse_tag_ethernet); | ||
141 | |||
142 | static void __init set_hw_addr(struct platform_device *pdev) | ||
143 | { | ||
144 | struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | ||
145 | const u8 *addr; | ||
146 | void __iomem *regs; | ||
147 | struct clk *pclk; | ||
148 | |||
149 | if (!res) | ||
150 | return; | ||
151 | if (pdev->id >= ARRAY_SIZE(hw_addr)) | ||
152 | return; | ||
153 | |||
154 | addr = hw_addr[pdev->id].addr; | ||
155 | if (!is_valid_ether_addr(addr)) | ||
156 | return; | ||
157 | |||
158 | /* | ||
159 | * Since this is board-specific code, we'll cheat and use the | ||
160 | * physical address directly as we happen to know that it's | ||
161 | * the same as the virtual address. | ||
162 | */ | ||
163 | regs = (void __iomem __force *)res->start; | ||
164 | pclk = clk_get(&pdev->dev, "pclk"); | ||
165 | if (!pclk) | ||
166 | return; | ||
167 | |||
168 | clk_enable(pclk); | ||
169 | __raw_writel((addr[3] << 24) | (addr[2] << 16) | ||
170 | | (addr[1] << 8) | addr[0], regs + 0x98); | ||
171 | __raw_writel((addr[5] << 8) | addr[4], regs + 0x9c); | ||
172 | clk_disable(pclk); | ||
173 | clk_put(pclk); | ||
174 | } | ||
175 | |||
176 | void __init setup_board(void) | ||
177 | { | ||
178 | at32_map_usart(0, 0); /* USART 0: /dev/ttyS0 (TTL --> Altera) */ | ||
179 | at32_map_usart(1, 1); /* USART 1: /dev/ttyS1 (RS232) */ | ||
180 | at32_map_usart(2, 2); /* USART 2: /dev/ttyS2 (RS485) */ | ||
181 | at32_map_usart(3, 3); /* USART 3: /dev/ttyS3 (RS422 Multidrop) */ | ||
182 | } | ||
183 | |||
184 | static struct i2c_gpio_platform_data i2c_gpio_data = { | ||
185 | .sda_pin = GPIO_PIN_PA(6), | ||
186 | .scl_pin = GPIO_PIN_PA(7), | ||
187 | .sda_is_open_drain = 1, | ||
188 | .scl_is_open_drain = 1, | ||
189 | .udelay = 2, /* close to 100 kHz */ | ||
190 | }; | ||
191 | |||
192 | static struct platform_device i2c_gpio_device = { | ||
193 | .name = "i2c-gpio", | ||
194 | .id = 0, | ||
195 | .dev = { | ||
196 | .platform_data = &i2c_gpio_data, | ||
197 | }, | ||
198 | }; | ||
199 | |||
200 | static struct i2c_board_info __initdata i2c_info[] = { | ||
201 | }; | ||
202 | |||
203 | static int __init mimc200_init(void) | ||
204 | { | ||
205 | /* | ||
206 | * MIMC200 uses 16-bit SDRAM interface, so we don't need to | ||
207 | * reserve any pins for it. | ||
208 | */ | ||
209 | |||
210 | at32_add_system_devices(); | ||
211 | |||
212 | at32_add_device_usart(0); | ||
213 | at32_add_device_usart(1); | ||
214 | at32_add_device_usart(2); | ||
215 | at32_add_device_usart(3); | ||
216 | |||
217 | set_hw_addr(at32_add_device_eth(0, ð_data[0])); | ||
218 | set_hw_addr(at32_add_device_eth(1, ð_data[1])); | ||
219 | |||
220 | at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info)); | ||
221 | at32_add_device_mci(0, &mci0_data); | ||
222 | at32_add_device_usba(0, NULL); | ||
223 | |||
224 | at32_select_periph(GPIO_PIOB_BASE, 1 << 28, 0, AT32_GPIOF_PULLUP); | ||
225 | at32_select_gpio(i2c_gpio_data.sda_pin, | ||
226 | AT32_GPIOF_MULTIDRV | AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH); | ||
227 | at32_select_gpio(i2c_gpio_data.scl_pin, | ||
228 | AT32_GPIOF_MULTIDRV | AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH); | ||
229 | platform_device_register(&i2c_gpio_device); | ||
230 | i2c_register_board_info(0, i2c_info, ARRAY_SIZE(i2c_info)); | ||
231 | |||
232 | at32_add_device_lcdc(0, &mimc200_lcdc_data, | ||
233 | fbmem_start, fbmem_size, 1); | ||
234 | |||
235 | return 0; | ||
236 | } | ||
237 | postcore_initcall(mimc200_init); | ||
diff --git a/arch/avr32/configs/atngw100_evklcd100_defconfig b/arch/avr32/configs/atngw100_evklcd100_defconfig new file mode 100644 index 000000000000..b0572d213826 --- /dev/null +++ b/arch/avr32/configs/atngw100_evklcd100_defconfig | |||
@@ -0,0 +1,1264 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.25.6 | ||
4 | # Wed Jun 18 16:06:32 2008 | ||
5 | # | ||
6 | CONFIG_AVR32=y | ||
7 | CONFIG_GENERIC_GPIO=y | ||
8 | CONFIG_GENERIC_HARDIRQS=y | ||
9 | CONFIG_STACKTRACE_SUPPORT=y | ||
10 | CONFIG_LOCKDEP_SUPPORT=y | ||
11 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
12 | CONFIG_HARDIRQS_SW_RESEND=y | ||
13 | CONFIG_GENERIC_IRQ_PROBE=y | ||
14 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
15 | CONFIG_GENERIC_TIME=y | ||
16 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
17 | # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set | ||
18 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
19 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
20 | CONFIG_GENERIC_HWEIGHT=y | ||
21 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
22 | CONFIG_GENERIC_BUG=y | ||
23 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
24 | |||
25 | # | ||
26 | # General setup | ||
27 | # | ||
28 | CONFIG_EXPERIMENTAL=y | ||
29 | CONFIG_BROKEN_ON_SMP=y | ||
30 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
31 | CONFIG_LOCALVERSION="" | ||
32 | # CONFIG_LOCALVERSION_AUTO is not set | ||
33 | CONFIG_SWAP=y | ||
34 | CONFIG_SYSVIPC=y | ||
35 | CONFIG_SYSVIPC_SYSCTL=y | ||
36 | CONFIG_POSIX_MQUEUE=y | ||
37 | CONFIG_BSD_PROCESS_ACCT=y | ||
38 | CONFIG_BSD_PROCESS_ACCT_V3=y | ||
39 | # CONFIG_TASKSTATS is not set | ||
40 | # CONFIG_AUDIT is not set | ||
41 | # CONFIG_IKCONFIG is not set | ||
42 | CONFIG_LOG_BUF_SHIFT=14 | ||
43 | # CONFIG_CGROUPS is not set | ||
44 | # CONFIG_GROUP_SCHED is not set | ||
45 | CONFIG_SYSFS_DEPRECATED=y | ||
46 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
47 | # CONFIG_RELAY is not set | ||
48 | # CONFIG_NAMESPACES is not set | ||
49 | CONFIG_BLK_DEV_INITRD=y | ||
50 | CONFIG_INITRAMFS_SOURCE="" | ||
51 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
52 | CONFIG_SYSCTL=y | ||
53 | CONFIG_EMBEDDED=y | ||
54 | # CONFIG_SYSCTL_SYSCALL is not set | ||
55 | CONFIG_KALLSYMS=y | ||
56 | # CONFIG_KALLSYMS_ALL is not set | ||
57 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
58 | CONFIG_HOTPLUG=y | ||
59 | CONFIG_PRINTK=y | ||
60 | CONFIG_BUG=y | ||
61 | CONFIG_ELF_CORE=y | ||
62 | # CONFIG_COMPAT_BRK is not set | ||
63 | # CONFIG_BASE_FULL is not set | ||
64 | CONFIG_FUTEX=y | ||
65 | CONFIG_ANON_INODES=y | ||
66 | CONFIG_EPOLL=y | ||
67 | CONFIG_SIGNALFD=y | ||
68 | CONFIG_TIMERFD=y | ||
69 | CONFIG_EVENTFD=y | ||
70 | CONFIG_SHMEM=y | ||
71 | CONFIG_VM_EVENT_COUNTERS=y | ||
72 | CONFIG_SLUB_DEBUG=y | ||
73 | # CONFIG_SLAB is not set | ||
74 | CONFIG_SLUB=y | ||
75 | # CONFIG_SLOB is not set | ||
76 | CONFIG_PROFILING=y | ||
77 | # CONFIG_MARKERS is not set | ||
78 | CONFIG_OPROFILE=m | ||
79 | CONFIG_HAVE_OPROFILE=y | ||
80 | CONFIG_KPROBES=y | ||
81 | CONFIG_HAVE_KPROBES=y | ||
82 | # CONFIG_HAVE_KRETPROBES is not set | ||
83 | CONFIG_PROC_PAGE_MONITOR=y | ||
84 | CONFIG_SLABINFO=y | ||
85 | CONFIG_RT_MUTEXES=y | ||
86 | # CONFIG_TINY_SHMEM is not set | ||
87 | CONFIG_BASE_SMALL=1 | ||
88 | CONFIG_MODULES=y | ||
89 | CONFIG_MODULE_UNLOAD=y | ||
90 | CONFIG_MODULE_FORCE_UNLOAD=y | ||
91 | # CONFIG_MODVERSIONS is not set | ||
92 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
93 | CONFIG_KMOD=y | ||
94 | CONFIG_BLOCK=y | ||
95 | # CONFIG_LBD is not set | ||
96 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
97 | # CONFIG_LSF is not set | ||
98 | # CONFIG_BLK_DEV_BSG is not set | ||
99 | |||
100 | # | ||
101 | # IO Schedulers | ||
102 | # | ||
103 | CONFIG_IOSCHED_NOOP=y | ||
104 | # CONFIG_IOSCHED_AS is not set | ||
105 | # CONFIG_IOSCHED_DEADLINE is not set | ||
106 | CONFIG_IOSCHED_CFQ=y | ||
107 | # CONFIG_DEFAULT_AS is not set | ||
108 | # CONFIG_DEFAULT_DEADLINE is not set | ||
109 | CONFIG_DEFAULT_CFQ=y | ||
110 | # CONFIG_DEFAULT_NOOP is not set | ||
111 | CONFIG_DEFAULT_IOSCHED="cfq" | ||
112 | CONFIG_CLASSIC_RCU=y | ||
113 | |||
114 | # | ||
115 | # System Type and features | ||
116 | # | ||
117 | CONFIG_TICK_ONESHOT=y | ||
118 | CONFIG_NO_HZ=y | ||
119 | CONFIG_HIGH_RES_TIMERS=y | ||
120 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
121 | CONFIG_SUBARCH_AVR32B=y | ||
122 | CONFIG_MMU=y | ||
123 | CONFIG_PERFORMANCE_COUNTERS=y | ||
124 | CONFIG_PLATFORM_AT32AP=y | ||
125 | CONFIG_CPU_AT32AP700X=y | ||
126 | CONFIG_CPU_AT32AP7000=y | ||
127 | # CONFIG_BOARD_ATSTK1000 is not set | ||
128 | CONFIG_BOARD_ATNGW100=y | ||
129 | CONFIG_BOARD_ATNGW100_EVKLCD10X=y | ||
130 | CONFIG_BOARD_ATNGW100_EVKLCD10X_QVGA=y | ||
131 | # CONFIG_BOARD_ATNGW100_EVKLCD10X_VGA is not set | ||
132 | # CONFIG_BOARD_ATNGW100_EVKLCD10X_POW_QVGA is not set | ||
133 | CONFIG_BOARD_ATNGW100_I2C_GPIO=y | ||
134 | CONFIG_LOADER_U_BOOT=y | ||
135 | |||
136 | # | ||
137 | # Atmel AVR32 AP options | ||
138 | # | ||
139 | # CONFIG_AP700X_32_BIT_SMC is not set | ||
140 | CONFIG_AP700X_16_BIT_SMC=y | ||
141 | # CONFIG_AP700X_8_BIT_SMC is not set | ||
142 | CONFIG_GPIO_DEV=y | ||
143 | CONFIG_LOAD_ADDRESS=0x10000000 | ||
144 | CONFIG_ENTRY_ADDRESS=0x90000000 | ||
145 | CONFIG_PHYS_OFFSET=0x10000000 | ||
146 | CONFIG_PREEMPT_NONE=y | ||
147 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
148 | # CONFIG_PREEMPT is not set | ||
149 | # CONFIG_HAVE_ARCH_BOOTMEM_NODE is not set | ||
150 | # CONFIG_ARCH_HAVE_MEMORY_PRESENT is not set | ||
151 | # CONFIG_NEED_NODE_MEMMAP_SIZE is not set | ||
152 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
153 | # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set | ||
154 | # CONFIG_ARCH_SPARSEMEM_ENABLE is not set | ||
155 | CONFIG_SELECT_MEMORY_MODEL=y | ||
156 | CONFIG_FLATMEM_MANUAL=y | ||
157 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
158 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
159 | CONFIG_FLATMEM=y | ||
160 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
161 | # CONFIG_SPARSEMEM_STATIC is not set | ||
162 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
163 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
164 | # CONFIG_RESOURCES_64BIT is not set | ||
165 | CONFIG_ZONE_DMA_FLAG=0 | ||
166 | CONFIG_VIRT_TO_BUS=y | ||
167 | # CONFIG_OWNERSHIP_TRACE is not set | ||
168 | CONFIG_NMI_DEBUGGING=y | ||
169 | CONFIG_DW_DMAC=y | ||
170 | # CONFIG_HZ_100 is not set | ||
171 | CONFIG_HZ_250=y | ||
172 | # CONFIG_HZ_300 is not set | ||
173 | # CONFIG_HZ_1000 is not set | ||
174 | CONFIG_HZ=250 | ||
175 | # CONFIG_SCHED_HRTICK is not set | ||
176 | CONFIG_CMDLINE="" | ||
177 | |||
178 | # | ||
179 | # Power management options | ||
180 | # | ||
181 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
182 | CONFIG_PM=y | ||
183 | # CONFIG_PM_LEGACY is not set | ||
184 | # CONFIG_PM_DEBUG is not set | ||
185 | CONFIG_PM_SLEEP=y | ||
186 | CONFIG_SUSPEND=y | ||
187 | CONFIG_SUSPEND_FREEZER=y | ||
188 | |||
189 | # | ||
190 | # CPU Frequency scaling | ||
191 | # | ||
192 | CONFIG_CPU_FREQ=y | ||
193 | CONFIG_CPU_FREQ_TABLE=y | ||
194 | # CONFIG_CPU_FREQ_DEBUG is not set | ||
195 | # CONFIG_CPU_FREQ_STAT is not set | ||
196 | # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set | ||
197 | # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set | ||
198 | CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y | ||
199 | # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set | ||
200 | CONFIG_CPU_FREQ_GOV_PERFORMANCE=y | ||
201 | # CONFIG_CPU_FREQ_GOV_POWERSAVE is not set | ||
202 | CONFIG_CPU_FREQ_GOV_USERSPACE=y | ||
203 | CONFIG_CPU_FREQ_GOV_ONDEMAND=y | ||
204 | # CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set | ||
205 | CONFIG_CPU_FREQ_AT32AP=y | ||
206 | |||
207 | # | ||
208 | # Bus options | ||
209 | # | ||
210 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
211 | # CONFIG_PCCARD is not set | ||
212 | |||
213 | # | ||
214 | # Executable file formats | ||
215 | # | ||
216 | CONFIG_BINFMT_ELF=y | ||
217 | # CONFIG_BINFMT_MISC is not set | ||
218 | |||
219 | # | ||
220 | # Networking | ||
221 | # | ||
222 | CONFIG_NET=y | ||
223 | |||
224 | # | ||
225 | # Networking options | ||
226 | # | ||
227 | CONFIG_PACKET=y | ||
228 | CONFIG_PACKET_MMAP=y | ||
229 | CONFIG_UNIX=y | ||
230 | CONFIG_XFRM=y | ||
231 | CONFIG_XFRM_USER=y | ||
232 | # CONFIG_XFRM_SUB_POLICY is not set | ||
233 | # CONFIG_XFRM_MIGRATE is not set | ||
234 | # CONFIG_XFRM_STATISTICS is not set | ||
235 | CONFIG_NET_KEY=y | ||
236 | # CONFIG_NET_KEY_MIGRATE is not set | ||
237 | CONFIG_INET=y | ||
238 | CONFIG_IP_MULTICAST=y | ||
239 | CONFIG_IP_ADVANCED_ROUTER=y | ||
240 | CONFIG_ASK_IP_FIB_HASH=y | ||
241 | # CONFIG_IP_FIB_TRIE is not set | ||
242 | CONFIG_IP_FIB_HASH=y | ||
243 | # CONFIG_IP_MULTIPLE_TABLES is not set | ||
244 | # CONFIG_IP_ROUTE_MULTIPATH is not set | ||
245 | # CONFIG_IP_ROUTE_VERBOSE is not set | ||
246 | CONFIG_IP_PNP=y | ||
247 | CONFIG_IP_PNP_DHCP=y | ||
248 | # CONFIG_IP_PNP_BOOTP is not set | ||
249 | # CONFIG_IP_PNP_RARP is not set | ||
250 | # CONFIG_NET_IPIP is not set | ||
251 | # CONFIG_NET_IPGRE is not set | ||
252 | CONFIG_IP_MROUTE=y | ||
253 | CONFIG_IP_PIMSM_V1=y | ||
254 | # CONFIG_IP_PIMSM_V2 is not set | ||
255 | # CONFIG_ARPD is not set | ||
256 | CONFIG_SYN_COOKIES=y | ||
257 | CONFIG_INET_AH=y | ||
258 | CONFIG_INET_ESP=y | ||
259 | CONFIG_INET_IPCOMP=y | ||
260 | CONFIG_INET_XFRM_TUNNEL=y | ||
261 | CONFIG_INET_TUNNEL=y | ||
262 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
263 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
264 | CONFIG_INET_XFRM_MODE_BEET=y | ||
265 | # CONFIG_INET_LRO is not set | ||
266 | CONFIG_INET_DIAG=y | ||
267 | CONFIG_INET_TCP_DIAG=y | ||
268 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
269 | CONFIG_TCP_CONG_CUBIC=y | ||
270 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
271 | # CONFIG_TCP_MD5SIG is not set | ||
272 | # CONFIG_IP_VS is not set | ||
273 | CONFIG_IPV6=y | ||
274 | # CONFIG_IPV6_PRIVACY is not set | ||
275 | # CONFIG_IPV6_ROUTER_PREF is not set | ||
276 | # CONFIG_IPV6_OPTIMISTIC_DAD is not set | ||
277 | CONFIG_INET6_AH=y | ||
278 | CONFIG_INET6_ESP=y | ||
279 | CONFIG_INET6_IPCOMP=y | ||
280 | # CONFIG_IPV6_MIP6 is not set | ||
281 | CONFIG_INET6_XFRM_TUNNEL=y | ||
282 | CONFIG_INET6_TUNNEL=y | ||
283 | CONFIG_INET6_XFRM_MODE_TRANSPORT=y | ||
284 | CONFIG_INET6_XFRM_MODE_TUNNEL=y | ||
285 | CONFIG_INET6_XFRM_MODE_BEET=y | ||
286 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | ||
287 | CONFIG_IPV6_SIT=y | ||
288 | # CONFIG_IPV6_TUNNEL is not set | ||
289 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | ||
290 | # CONFIG_NETWORK_SECMARK is not set | ||
291 | CONFIG_NETFILTER=y | ||
292 | # CONFIG_NETFILTER_DEBUG is not set | ||
293 | # CONFIG_NETFILTER_ADVANCED is not set | ||
294 | |||
295 | # | ||
296 | # Core Netfilter Configuration | ||
297 | # | ||
298 | CONFIG_NETFILTER_NETLINK=m | ||
299 | CONFIG_NETFILTER_NETLINK_LOG=m | ||
300 | CONFIG_NF_CONNTRACK=m | ||
301 | CONFIG_NF_CONNTRACK_FTP=m | ||
302 | CONFIG_NF_CONNTRACK_IRC=m | ||
303 | CONFIG_NF_CONNTRACK_SIP=m | ||
304 | CONFIG_NF_CT_NETLINK=m | ||
305 | CONFIG_NETFILTER_XTABLES=y | ||
306 | CONFIG_NETFILTER_XT_TARGET_MARK=m | ||
307 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m | ||
308 | CONFIG_NETFILTER_XT_TARGET_TCPMSS=m | ||
309 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m | ||
310 | CONFIG_NETFILTER_XT_MATCH_MARK=m | ||
311 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | ||
312 | CONFIG_NETFILTER_XT_MATCH_STATE=m | ||
313 | |||
314 | # | ||
315 | # IP: Netfilter Configuration | ||
316 | # | ||
317 | CONFIG_NF_CONNTRACK_IPV4=m | ||
318 | CONFIG_NF_CONNTRACK_PROC_COMPAT=y | ||
319 | CONFIG_IP_NF_IPTABLES=m | ||
320 | CONFIG_IP_NF_FILTER=m | ||
321 | CONFIG_IP_NF_TARGET_REJECT=m | ||
322 | CONFIG_IP_NF_TARGET_LOG=m | ||
323 | # CONFIG_IP_NF_TARGET_ULOG is not set | ||
324 | CONFIG_NF_NAT=m | ||
325 | CONFIG_NF_NAT_NEEDED=y | ||
326 | CONFIG_IP_NF_TARGET_MASQUERADE=m | ||
327 | CONFIG_NF_NAT_FTP=m | ||
328 | CONFIG_NF_NAT_IRC=m | ||
329 | # CONFIG_NF_NAT_TFTP is not set | ||
330 | # CONFIG_NF_NAT_AMANDA is not set | ||
331 | # CONFIG_NF_NAT_PPTP is not set | ||
332 | # CONFIG_NF_NAT_H323 is not set | ||
333 | CONFIG_NF_NAT_SIP=m | ||
334 | CONFIG_IP_NF_MANGLE=m | ||
335 | |||
336 | # | ||
337 | # IPv6: Netfilter Configuration | ||
338 | # | ||
339 | CONFIG_NF_CONNTRACK_IPV6=m | ||
340 | CONFIG_IP6_NF_IPTABLES=m | ||
341 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m | ||
342 | CONFIG_IP6_NF_FILTER=m | ||
343 | CONFIG_IP6_NF_TARGET_LOG=m | ||
344 | CONFIG_IP6_NF_TARGET_REJECT=m | ||
345 | CONFIG_IP6_NF_MANGLE=m | ||
346 | # CONFIG_IP_DCCP is not set | ||
347 | # CONFIG_IP_SCTP is not set | ||
348 | # CONFIG_TIPC is not set | ||
349 | # CONFIG_ATM is not set | ||
350 | CONFIG_BRIDGE=m | ||
351 | CONFIG_VLAN_8021Q=m | ||
352 | # CONFIG_DECNET is not set | ||
353 | CONFIG_LLC=m | ||
354 | # CONFIG_LLC2 is not set | ||
355 | # CONFIG_IPX is not set | ||
356 | # CONFIG_ATALK is not set | ||
357 | # CONFIG_X25 is not set | ||
358 | # CONFIG_LAPB is not set | ||
359 | # CONFIG_ECONET is not set | ||
360 | # CONFIG_WAN_ROUTER is not set | ||
361 | # CONFIG_NET_SCHED is not set | ||
362 | |||
363 | # | ||
364 | # Network testing | ||
365 | # | ||
366 | # CONFIG_NET_PKTGEN is not set | ||
367 | # CONFIG_NET_TCPPROBE is not set | ||
368 | # CONFIG_HAMRADIO is not set | ||
369 | # CONFIG_CAN is not set | ||
370 | # CONFIG_IRDA is not set | ||
371 | # CONFIG_BT is not set | ||
372 | # CONFIG_AF_RXRPC is not set | ||
373 | |||
374 | # | ||
375 | # Wireless | ||
376 | # | ||
377 | # CONFIG_CFG80211 is not set | ||
378 | # CONFIG_WIRELESS_EXT is not set | ||
379 | # CONFIG_MAC80211 is not set | ||
380 | # CONFIG_IEEE80211 is not set | ||
381 | # CONFIG_RFKILL is not set | ||
382 | # CONFIG_NET_9P is not set | ||
383 | |||
384 | # | ||
385 | # Device Drivers | ||
386 | # | ||
387 | |||
388 | # | ||
389 | # Generic Driver Options | ||
390 | # | ||
391 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
392 | CONFIG_STANDALONE=y | ||
393 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | ||
394 | # CONFIG_FW_LOADER is not set | ||
395 | # CONFIG_DEBUG_DRIVER is not set | ||
396 | # CONFIG_DEBUG_DEVRES is not set | ||
397 | # CONFIG_SYS_HYPERVISOR is not set | ||
398 | # CONFIG_CONNECTOR is not set | ||
399 | CONFIG_MTD=y | ||
400 | # CONFIG_MTD_DEBUG is not set | ||
401 | # CONFIG_MTD_CONCAT is not set | ||
402 | CONFIG_MTD_PARTITIONS=y | ||
403 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
404 | CONFIG_MTD_CMDLINE_PARTS=y | ||
405 | |||
406 | # | ||
407 | # User Modules And Translation Layers | ||
408 | # | ||
409 | CONFIG_MTD_CHAR=y | ||
410 | CONFIG_MTD_BLKDEVS=y | ||
411 | CONFIG_MTD_BLOCK=y | ||
412 | # CONFIG_FTL is not set | ||
413 | # CONFIG_NFTL is not set | ||
414 | # CONFIG_INFTL is not set | ||
415 | # CONFIG_RFD_FTL is not set | ||
416 | # CONFIG_SSFDC is not set | ||
417 | # CONFIG_MTD_OOPS is not set | ||
418 | |||
419 | # | ||
420 | # RAM/ROM/Flash chip drivers | ||
421 | # | ||
422 | CONFIG_MTD_CFI=y | ||
423 | # CONFIG_MTD_JEDECPROBE is not set | ||
424 | CONFIG_MTD_GEN_PROBE=y | ||
425 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
426 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
427 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
428 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
429 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
430 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
431 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
432 | CONFIG_MTD_CFI_I1=y | ||
433 | CONFIG_MTD_CFI_I2=y | ||
434 | # CONFIG_MTD_CFI_I4 is not set | ||
435 | # CONFIG_MTD_CFI_I8 is not set | ||
436 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
437 | CONFIG_MTD_CFI_AMDSTD=y | ||
438 | # CONFIG_MTD_CFI_STAA is not set | ||
439 | CONFIG_MTD_CFI_UTIL=y | ||
440 | # CONFIG_MTD_RAM is not set | ||
441 | # CONFIG_MTD_ROM is not set | ||
442 | # CONFIG_MTD_ABSENT is not set | ||
443 | |||
444 | # | ||
445 | # Mapping drivers for chip access | ||
446 | # | ||
447 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
448 | CONFIG_MTD_PHYSMAP=y | ||
449 | CONFIG_MTD_PHYSMAP_START=0x80000000 | ||
450 | CONFIG_MTD_PHYSMAP_LEN=0x0 | ||
451 | CONFIG_MTD_PHYSMAP_BANKWIDTH=2 | ||
452 | # CONFIG_MTD_PLATRAM is not set | ||
453 | |||
454 | # | ||
455 | # Self-contained MTD device drivers | ||
456 | # | ||
457 | CONFIG_MTD_DATAFLASH=y | ||
458 | # CONFIG_MTD_M25P80 is not set | ||
459 | # CONFIG_MTD_SLRAM is not set | ||
460 | # CONFIG_MTD_PHRAM is not set | ||
461 | # CONFIG_MTD_MTDRAM is not set | ||
462 | # CONFIG_MTD_BLOCK2MTD is not set | ||
463 | |||
464 | # | ||
465 | # Disk-On-Chip Device Drivers | ||
466 | # | ||
467 | # CONFIG_MTD_DOC2000 is not set | ||
468 | # CONFIG_MTD_DOC2001 is not set | ||
469 | # CONFIG_MTD_DOC2001PLUS is not set | ||
470 | # CONFIG_MTD_NAND is not set | ||
471 | # CONFIG_MTD_ONENAND is not set | ||
472 | |||
473 | # | ||
474 | # UBI - Unsorted block images | ||
475 | # | ||
476 | CONFIG_MTD_UBI=y | ||
477 | CONFIG_MTD_UBI_WL_THRESHOLD=4096 | ||
478 | CONFIG_MTD_UBI_BEB_RESERVE=1 | ||
479 | # CONFIG_MTD_UBI_GLUEBI is not set | ||
480 | |||
481 | # | ||
482 | # UBI debugging options | ||
483 | # | ||
484 | # CONFIG_MTD_UBI_DEBUG is not set | ||
485 | # CONFIG_PARPORT is not set | ||
486 | CONFIG_BLK_DEV=y | ||
487 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
488 | CONFIG_BLK_DEV_LOOP=m | ||
489 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
490 | CONFIG_BLK_DEV_NBD=m | ||
491 | CONFIG_BLK_DEV_RAM=m | ||
492 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
493 | CONFIG_BLK_DEV_RAM_SIZE=4096 | ||
494 | # CONFIG_BLK_DEV_XIP is not set | ||
495 | # CONFIG_CDROM_PKTCDVD is not set | ||
496 | # CONFIG_ATA_OVER_ETH is not set | ||
497 | CONFIG_MISC_DEVICES=y | ||
498 | # CONFIG_ATMEL_PWM is not set | ||
499 | CONFIG_ATMEL_TCLIB=y | ||
500 | CONFIG_ATMEL_TCB_CLKSRC=y | ||
501 | CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0 | ||
502 | # CONFIG_EEPROM_93CX6 is not set | ||
503 | # CONFIG_ATMEL_SSC is not set | ||
504 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
505 | # CONFIG_HAVE_IDE is not set | ||
506 | |||
507 | # | ||
508 | # SCSI device support | ||
509 | # | ||
510 | # CONFIG_RAID_ATTRS is not set | ||
511 | # CONFIG_SCSI is not set | ||
512 | # CONFIG_SCSI_DMA is not set | ||
513 | # CONFIG_SCSI_NETLINK is not set | ||
514 | # CONFIG_ATA is not set | ||
515 | # CONFIG_MD is not set | ||
516 | CONFIG_NETDEVICES=y | ||
517 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
518 | # CONFIG_DUMMY is not set | ||
519 | # CONFIG_BONDING is not set | ||
520 | # CONFIG_MACVLAN is not set | ||
521 | # CONFIG_EQUALIZER is not set | ||
522 | # CONFIG_TUN is not set | ||
523 | # CONFIG_VETH is not set | ||
524 | CONFIG_PHYLIB=y | ||
525 | |||
526 | # | ||
527 | # MII PHY device drivers | ||
528 | # | ||
529 | # CONFIG_MARVELL_PHY is not set | ||
530 | # CONFIG_DAVICOM_PHY is not set | ||
531 | # CONFIG_QSEMI_PHY is not set | ||
532 | # CONFIG_LXT_PHY is not set | ||
533 | # CONFIG_CICADA_PHY is not set | ||
534 | # CONFIG_VITESSE_PHY is not set | ||
535 | # CONFIG_SMSC_PHY is not set | ||
536 | # CONFIG_BROADCOM_PHY is not set | ||
537 | # CONFIG_ICPLUS_PHY is not set | ||
538 | # CONFIG_REALTEK_PHY is not set | ||
539 | # CONFIG_FIXED_PHY is not set | ||
540 | # CONFIG_MDIO_BITBANG is not set | ||
541 | CONFIG_NET_ETHERNET=y | ||
542 | # CONFIG_MII is not set | ||
543 | CONFIG_MACB=y | ||
544 | # CONFIG_ENC28J60 is not set | ||
545 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
546 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
547 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
548 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
549 | # CONFIG_B44 is not set | ||
550 | # CONFIG_NETDEV_1000 is not set | ||
551 | # CONFIG_NETDEV_10000 is not set | ||
552 | |||
553 | # | ||
554 | # Wireless LAN | ||
555 | # | ||
556 | # CONFIG_WLAN_PRE80211 is not set | ||
557 | # CONFIG_WLAN_80211 is not set | ||
558 | # CONFIG_WAN is not set | ||
559 | CONFIG_PPP=m | ||
560 | # CONFIG_PPP_MULTILINK is not set | ||
561 | CONFIG_PPP_FILTER=y | ||
562 | CONFIG_PPP_ASYNC=m | ||
563 | # CONFIG_PPP_SYNC_TTY is not set | ||
564 | CONFIG_PPP_DEFLATE=m | ||
565 | CONFIG_PPP_BSDCOMP=m | ||
566 | CONFIG_PPP_MPPE=m | ||
567 | CONFIG_PPPOE=m | ||
568 | # CONFIG_PPPOL2TP is not set | ||
569 | # CONFIG_SLIP is not set | ||
570 | CONFIG_SLHC=m | ||
571 | # CONFIG_NETCONSOLE is not set | ||
572 | # CONFIG_NETPOLL is not set | ||
573 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
574 | # CONFIG_ISDN is not set | ||
575 | # CONFIG_PHONE is not set | ||
576 | |||
577 | # | ||
578 | # Input device support | ||
579 | # | ||
580 | CONFIG_INPUT=y | ||
581 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
582 | # CONFIG_INPUT_POLLDEV is not set | ||
583 | |||
584 | # | ||
585 | # Userland interfaces | ||
586 | # | ||
587 | # CONFIG_INPUT_MOUSEDEV is not set | ||
588 | # CONFIG_INPUT_JOYDEV is not set | ||
589 | CONFIG_INPUT_EVDEV=m | ||
590 | # CONFIG_INPUT_EVBUG is not set | ||
591 | |||
592 | # | ||
593 | # Input Device Drivers | ||
594 | # | ||
595 | # CONFIG_INPUT_KEYBOARD is not set | ||
596 | # CONFIG_INPUT_MOUSE is not set | ||
597 | # CONFIG_INPUT_JOYSTICK is not set | ||
598 | # CONFIG_INPUT_TABLET is not set | ||
599 | CONFIG_INPUT_TOUCHSCREEN=y | ||
600 | # CONFIG_TOUCHSCREEN_ADS7846 is not set | ||
601 | # CONFIG_TOUCHSCREEN_FUJITSU is not set | ||
602 | # CONFIG_TOUCHSCREEN_GUNZE is not set | ||
603 | # CONFIG_TOUCHSCREEN_ELO is not set | ||
604 | # CONFIG_TOUCHSCREEN_MTOUCH is not set | ||
605 | # CONFIG_TOUCHSCREEN_MK712 is not set | ||
606 | # CONFIG_TOUCHSCREEN_PENMOUNT is not set | ||
607 | # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set | ||
608 | # CONFIG_TOUCHSCREEN_TOUCHWIN is not set | ||
609 | # CONFIG_TOUCHSCREEN_UCB1400 is not set | ||
610 | # CONFIG_INPUT_MISC is not set | ||
611 | |||
612 | # | ||
613 | # Hardware I/O ports | ||
614 | # | ||
615 | # CONFIG_SERIO is not set | ||
616 | # CONFIG_GAMEPORT is not set | ||
617 | |||
618 | # | ||
619 | # Character devices | ||
620 | # | ||
621 | CONFIG_VT=y | ||
622 | CONFIG_VT_CONSOLE=y | ||
623 | CONFIG_HW_CONSOLE=y | ||
624 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | ||
625 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
626 | |||
627 | # | ||
628 | # Serial drivers | ||
629 | # | ||
630 | # CONFIG_SERIAL_8250 is not set | ||
631 | |||
632 | # | ||
633 | # Non-8250 serial port support | ||
634 | # | ||
635 | CONFIG_SERIAL_ATMEL=y | ||
636 | CONFIG_SERIAL_ATMEL_CONSOLE=y | ||
637 | CONFIG_SERIAL_ATMEL_PDC=y | ||
638 | # CONFIG_SERIAL_ATMEL_TTYAT is not set | ||
639 | CONFIG_SERIAL_CORE=y | ||
640 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
641 | CONFIG_UNIX98_PTYS=y | ||
642 | # CONFIG_LEGACY_PTYS is not set | ||
643 | # CONFIG_IPMI_HANDLER is not set | ||
644 | # CONFIG_HW_RANDOM is not set | ||
645 | # CONFIG_R3964 is not set | ||
646 | # CONFIG_RAW_DRIVER is not set | ||
647 | # CONFIG_TCG_TPM is not set | ||
648 | CONFIG_I2C=m | ||
649 | CONFIG_I2C_BOARDINFO=y | ||
650 | CONFIG_I2C_CHARDEV=m | ||
651 | |||
652 | # | ||
653 | # I2C Algorithms | ||
654 | # | ||
655 | CONFIG_I2C_ALGOBIT=m | ||
656 | # CONFIG_I2C_ALGOPCF is not set | ||
657 | # CONFIG_I2C_ALGOPCA is not set | ||
658 | |||
659 | # | ||
660 | # I2C Hardware Bus support | ||
661 | # | ||
662 | CONFIG_I2C_ATMELTWI=m | ||
663 | CONFIG_I2C_GPIO=m | ||
664 | # CONFIG_I2C_OCORES is not set | ||
665 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
666 | # CONFIG_I2C_SIMTEC is not set | ||
667 | # CONFIG_I2C_TAOS_EVM is not set | ||
668 | # CONFIG_I2C_STUB is not set | ||
669 | |||
670 | # | ||
671 | # Miscellaneous I2C Chip support | ||
672 | # | ||
673 | # CONFIG_DS1682 is not set | ||
674 | # CONFIG_SENSORS_EEPROM is not set | ||
675 | # CONFIG_SENSORS_PCF8574 is not set | ||
676 | # CONFIG_PCF8575 is not set | ||
677 | # CONFIG_SENSORS_PCF8591 is not set | ||
678 | # CONFIG_TPS65010 is not set | ||
679 | # CONFIG_SENSORS_MAX6875 is not set | ||
680 | # CONFIG_SENSORS_TSL2550 is not set | ||
681 | # CONFIG_I2C_DEBUG_CORE is not set | ||
682 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
683 | # CONFIG_I2C_DEBUG_BUS is not set | ||
684 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
685 | |||
686 | # | ||
687 | # SPI support | ||
688 | # | ||
689 | CONFIG_SPI=y | ||
690 | # CONFIG_SPI_DEBUG is not set | ||
691 | CONFIG_SPI_MASTER=y | ||
692 | |||
693 | # | ||
694 | # SPI Master Controller Drivers | ||
695 | # | ||
696 | CONFIG_SPI_ATMEL=y | ||
697 | # CONFIG_SPI_BITBANG is not set | ||
698 | |||
699 | # | ||
700 | # SPI Protocol Masters | ||
701 | # | ||
702 | # CONFIG_SPI_AT25 is not set | ||
703 | CONFIG_SPI_SPIDEV=m | ||
704 | # CONFIG_SPI_TLE62X0 is not set | ||
705 | CONFIG_HAVE_GPIO_LIB=y | ||
706 | |||
707 | # | ||
708 | # GPIO Support | ||
709 | # | ||
710 | # CONFIG_DEBUG_GPIO is not set | ||
711 | |||
712 | # | ||
713 | # I2C GPIO expanders: | ||
714 | # | ||
715 | # CONFIG_GPIO_PCA953X is not set | ||
716 | # CONFIG_GPIO_PCF857X is not set | ||
717 | |||
718 | # | ||
719 | # SPI GPIO expanders: | ||
720 | # | ||
721 | # CONFIG_GPIO_MCP23S08 is not set | ||
722 | # CONFIG_W1 is not set | ||
723 | # CONFIG_POWER_SUPPLY is not set | ||
724 | # CONFIG_HWMON is not set | ||
725 | # CONFIG_THERMAL is not set | ||
726 | CONFIG_WATCHDOG=y | ||
727 | # CONFIG_WATCHDOG_NOWAYOUT is not set | ||
728 | |||
729 | # | ||
730 | # Watchdog Device Drivers | ||
731 | # | ||
732 | # CONFIG_SOFT_WATCHDOG is not set | ||
733 | CONFIG_AT32AP700X_WDT=y | ||
734 | |||
735 | # | ||
736 | # Sonics Silicon Backplane | ||
737 | # | ||
738 | CONFIG_SSB_POSSIBLE=y | ||
739 | # CONFIG_SSB is not set | ||
740 | |||
741 | # | ||
742 | # Multifunction device drivers | ||
743 | # | ||
744 | # CONFIG_MFD_SM501 is not set | ||
745 | |||
746 | # | ||
747 | # Multimedia devices | ||
748 | # | ||
749 | # CONFIG_VIDEO_DEV is not set | ||
750 | # CONFIG_DVB_CORE is not set | ||
751 | # CONFIG_DAB is not set | ||
752 | |||
753 | # | ||
754 | # Graphics support | ||
755 | # | ||
756 | # CONFIG_VGASTATE is not set | ||
757 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
758 | CONFIG_FB=y | ||
759 | # CONFIG_FIRMWARE_EDID is not set | ||
760 | # CONFIG_FB_DDC is not set | ||
761 | CONFIG_FB_CFB_FILLRECT=y | ||
762 | CONFIG_FB_CFB_COPYAREA=y | ||
763 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
764 | # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set | ||
765 | # CONFIG_FB_SYS_FILLRECT is not set | ||
766 | # CONFIG_FB_SYS_COPYAREA is not set | ||
767 | # CONFIG_FB_SYS_IMAGEBLIT is not set | ||
768 | # CONFIG_FB_SYS_FOPS is not set | ||
769 | CONFIG_FB_DEFERRED_IO=y | ||
770 | # CONFIG_FB_SVGALIB is not set | ||
771 | # CONFIG_FB_MACMODES is not set | ||
772 | # CONFIG_FB_BACKLIGHT is not set | ||
773 | # CONFIG_FB_MODE_HELPERS is not set | ||
774 | # CONFIG_FB_TILEBLITTING is not set | ||
775 | |||
776 | # | ||
777 | # Frame buffer hardware drivers | ||
778 | # | ||
779 | # CONFIG_FB_S1D13XXX is not set | ||
780 | CONFIG_FB_ATMEL=y | ||
781 | # CONFIG_FB_VIRTUAL is not set | ||
782 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
783 | |||
784 | # | ||
785 | # Display device support | ||
786 | # | ||
787 | # CONFIG_DISPLAY_SUPPORT is not set | ||
788 | |||
789 | # | ||
790 | # Console display driver support | ||
791 | # | ||
792 | CONFIG_DUMMY_CONSOLE=y | ||
793 | # CONFIG_FRAMEBUFFER_CONSOLE is not set | ||
794 | # CONFIG_LOGO is not set | ||
795 | |||
796 | # | ||
797 | # Sound | ||
798 | # | ||
799 | CONFIG_SOUND=y | ||
800 | |||
801 | # | ||
802 | # Advanced Linux Sound Architecture | ||
803 | # | ||
804 | CONFIG_SND=y | ||
805 | CONFIG_SND_TIMER=m | ||
806 | CONFIG_SND_PCM=m | ||
807 | # CONFIG_SND_SEQUENCER is not set | ||
808 | CONFIG_SND_OSSEMUL=y | ||
809 | CONFIG_SND_MIXER_OSS=m | ||
810 | CONFIG_SND_PCM_OSS=m | ||
811 | CONFIG_SND_PCM_OSS_PLUGINS=y | ||
812 | # CONFIG_SND_DYNAMIC_MINORS is not set | ||
813 | # CONFIG_SND_SUPPORT_OLD_API is not set | ||
814 | CONFIG_SND_VERBOSE_PROCFS=y | ||
815 | # CONFIG_SND_VERBOSE_PRINTK is not set | ||
816 | # CONFIG_SND_DEBUG is not set | ||
817 | |||
818 | # | ||
819 | # Generic devices | ||
820 | # | ||
821 | CONFIG_SND_AC97_CODEC=m | ||
822 | # CONFIG_SND_DUMMY is not set | ||
823 | # CONFIG_SND_MTPAV is not set | ||
824 | # CONFIG_SND_SERIAL_U16550 is not set | ||
825 | # CONFIG_SND_MPU401 is not set | ||
826 | |||
827 | # | ||
828 | # AVR32 devices | ||
829 | # | ||
830 | CONFIG_SND_ATMEL_AC97=m | ||
831 | |||
832 | # | ||
833 | # SPI devices | ||
834 | # | ||
835 | |||
836 | # | ||
837 | # System on Chip audio support | ||
838 | # | ||
839 | # CONFIG_SND_SOC is not set | ||
840 | |||
841 | # | ||
842 | # SoC Audio support for SuperH | ||
843 | # | ||
844 | |||
845 | # | ||
846 | # ALSA SoC audio for Freescale SOCs | ||
847 | # | ||
848 | |||
849 | # | ||
850 | # Open Sound System | ||
851 | # | ||
852 | # CONFIG_SOUND_PRIME is not set | ||
853 | CONFIG_AC97_BUS=m | ||
854 | CONFIG_HID_SUPPORT=y | ||
855 | CONFIG_HID=y | ||
856 | # CONFIG_HID_DEBUG is not set | ||
857 | # CONFIG_HIDRAW is not set | ||
858 | CONFIG_USB_SUPPORT=y | ||
859 | # CONFIG_USB_ARCH_HAS_HCD is not set | ||
860 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
861 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
862 | |||
863 | # | ||
864 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
865 | # | ||
866 | CONFIG_USB_GADGET=y | ||
867 | # CONFIG_USB_GADGET_DEBUG is not set | ||
868 | # CONFIG_USB_GADGET_DEBUG_FILES is not set | ||
869 | CONFIG_USB_GADGET_SELECTED=y | ||
870 | # CONFIG_USB_GADGET_AMD5536UDC is not set | ||
871 | CONFIG_USB_GADGET_ATMEL_USBA=y | ||
872 | CONFIG_USB_ATMEL_USBA=y | ||
873 | # CONFIG_USB_GADGET_FSL_USB2 is not set | ||
874 | # CONFIG_USB_GADGET_NET2280 is not set | ||
875 | # CONFIG_USB_GADGET_PXA2XX is not set | ||
876 | # CONFIG_USB_GADGET_M66592 is not set | ||
877 | # CONFIG_USB_GADGET_GOKU is not set | ||
878 | # CONFIG_USB_GADGET_LH7A40X is not set | ||
879 | # CONFIG_USB_GADGET_OMAP is not set | ||
880 | # CONFIG_USB_GADGET_S3C2410 is not set | ||
881 | # CONFIG_USB_GADGET_AT91 is not set | ||
882 | # CONFIG_USB_GADGET_DUMMY_HCD is not set | ||
883 | CONFIG_USB_GADGET_DUALSPEED=y | ||
884 | CONFIG_USB_ZERO=m | ||
885 | CONFIG_USB_ETH=m | ||
886 | CONFIG_USB_ETH_RNDIS=y | ||
887 | CONFIG_USB_GADGETFS=m | ||
888 | CONFIG_USB_FILE_STORAGE=m | ||
889 | # CONFIG_USB_FILE_STORAGE_TEST is not set | ||
890 | CONFIG_USB_G_SERIAL=m | ||
891 | # CONFIG_USB_MIDI_GADGET is not set | ||
892 | # CONFIG_USB_G_PRINTER is not set | ||
893 | CONFIG_MMC=y | ||
894 | # CONFIG_MMC_DEBUG is not set | ||
895 | # CONFIG_MMC_UNSAFE_RESUME is not set | ||
896 | |||
897 | # | ||
898 | # MMC/SD Card Drivers | ||
899 | # | ||
900 | CONFIG_MMC_BLOCK=y | ||
901 | CONFIG_MMC_BLOCK_BOUNCE=y | ||
902 | # CONFIG_SDIO_UART is not set | ||
903 | |||
904 | # | ||
905 | # MMC/SD Host Controller Drivers | ||
906 | # | ||
907 | CONFIG_MMC_ATMELMCI=y | ||
908 | # CONFIG_MMC_SPI is not set | ||
909 | # CONFIG_MEMSTICK is not set | ||
910 | CONFIG_NEW_LEDS=y | ||
911 | CONFIG_LEDS_CLASS=y | ||
912 | |||
913 | # | ||
914 | # LED drivers | ||
915 | # | ||
916 | CONFIG_LEDS_GPIO=y | ||
917 | |||
918 | # | ||
919 | # LED Triggers | ||
920 | # | ||
921 | CONFIG_LEDS_TRIGGERS=y | ||
922 | CONFIG_LEDS_TRIGGER_TIMER=y | ||
923 | CONFIG_LEDS_TRIGGER_HEARTBEAT=y | ||
924 | CONFIG_RTC_LIB=y | ||
925 | CONFIG_RTC_CLASS=y | ||
926 | CONFIG_RTC_HCTOSYS=y | ||
927 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
928 | # CONFIG_RTC_DEBUG is not set | ||
929 | |||
930 | # | ||
931 | # RTC interfaces | ||
932 | # | ||
933 | CONFIG_RTC_INTF_SYSFS=y | ||
934 | CONFIG_RTC_INTF_PROC=y | ||
935 | CONFIG_RTC_INTF_DEV=y | ||
936 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
937 | # CONFIG_RTC_DRV_TEST is not set | ||
938 | |||
939 | # | ||
940 | # I2C RTC drivers | ||
941 | # | ||
942 | # CONFIG_RTC_DRV_DS1307 is not set | ||
943 | # CONFIG_RTC_DRV_DS1374 is not set | ||
944 | # CONFIG_RTC_DRV_DS1672 is not set | ||
945 | # CONFIG_RTC_DRV_MAX6900 is not set | ||
946 | # CONFIG_RTC_DRV_RS5C372 is not set | ||
947 | # CONFIG_RTC_DRV_ISL1208 is not set | ||
948 | # CONFIG_RTC_DRV_X1205 is not set | ||
949 | # CONFIG_RTC_DRV_PCF8563 is not set | ||
950 | # CONFIG_RTC_DRV_PCF8583 is not set | ||
951 | # CONFIG_RTC_DRV_M41T80 is not set | ||
952 | # CONFIG_RTC_DRV_S35390A is not set | ||
953 | |||
954 | # | ||
955 | # SPI RTC drivers | ||
956 | # | ||
957 | # CONFIG_RTC_DRV_MAX6902 is not set | ||
958 | # CONFIG_RTC_DRV_R9701 is not set | ||
959 | # CONFIG_RTC_DRV_RS5C348 is not set | ||
960 | |||
961 | # | ||
962 | # Platform RTC drivers | ||
963 | # | ||
964 | # CONFIG_RTC_DRV_DS1511 is not set | ||
965 | # CONFIG_RTC_DRV_DS1553 is not set | ||
966 | # CONFIG_RTC_DRV_DS1742 is not set | ||
967 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
968 | # CONFIG_RTC_DRV_M48T86 is not set | ||
969 | # CONFIG_RTC_DRV_M48T59 is not set | ||
970 | # CONFIG_RTC_DRV_V3020 is not set | ||
971 | |||
972 | # | ||
973 | # on-CPU RTC drivers | ||
974 | # | ||
975 | CONFIG_RTC_DRV_AT32AP700X=y | ||
976 | |||
977 | # | ||
978 | # Userspace I/O | ||
979 | # | ||
980 | # CONFIG_UIO is not set | ||
981 | |||
982 | # | ||
983 | # File systems | ||
984 | # | ||
985 | CONFIG_EXT2_FS=y | ||
986 | # CONFIG_EXT2_FS_XATTR is not set | ||
987 | # CONFIG_EXT2_FS_XIP is not set | ||
988 | CONFIG_EXT3_FS=y | ||
989 | # CONFIG_EXT3_FS_XATTR is not set | ||
990 | # CONFIG_EXT4DEV_FS is not set | ||
991 | CONFIG_JBD=y | ||
992 | # CONFIG_REISERFS_FS is not set | ||
993 | # CONFIG_JFS_FS is not set | ||
994 | # CONFIG_FS_POSIX_ACL is not set | ||
995 | # CONFIG_XFS_FS is not set | ||
996 | # CONFIG_GFS2_FS is not set | ||
997 | # CONFIG_OCFS2_FS is not set | ||
998 | # CONFIG_DNOTIFY is not set | ||
999 | CONFIG_INOTIFY=y | ||
1000 | CONFIG_INOTIFY_USER=y | ||
1001 | # CONFIG_QUOTA is not set | ||
1002 | # CONFIG_AUTOFS_FS is not set | ||
1003 | # CONFIG_AUTOFS4_FS is not set | ||
1004 | CONFIG_FUSE_FS=m | ||
1005 | |||
1006 | # | ||
1007 | # CD-ROM/DVD Filesystems | ||
1008 | # | ||
1009 | # CONFIG_ISO9660_FS is not set | ||
1010 | # CONFIG_UDF_FS is not set | ||
1011 | |||
1012 | # | ||
1013 | # DOS/FAT/NT Filesystems | ||
1014 | # | ||
1015 | CONFIG_FAT_FS=m | ||
1016 | CONFIG_MSDOS_FS=m | ||
1017 | CONFIG_VFAT_FS=m | ||
1018 | CONFIG_FAT_DEFAULT_CODEPAGE=850 | ||
1019 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
1020 | # CONFIG_NTFS_FS is not set | ||
1021 | |||
1022 | # | ||
1023 | # Pseudo filesystems | ||
1024 | # | ||
1025 | CONFIG_PROC_FS=y | ||
1026 | # CONFIG_PROC_KCORE is not set | ||
1027 | CONFIG_PROC_SYSCTL=y | ||
1028 | CONFIG_SYSFS=y | ||
1029 | CONFIG_TMPFS=y | ||
1030 | # CONFIG_TMPFS_POSIX_ACL is not set | ||
1031 | # CONFIG_HUGETLB_PAGE is not set | ||
1032 | CONFIG_CONFIGFS_FS=y | ||
1033 | |||
1034 | # | ||
1035 | # Miscellaneous filesystems | ||
1036 | # | ||
1037 | # CONFIG_ADFS_FS is not set | ||
1038 | # CONFIG_AFFS_FS is not set | ||
1039 | # CONFIG_HFS_FS is not set | ||
1040 | # CONFIG_HFSPLUS_FS is not set | ||
1041 | # CONFIG_BEFS_FS is not set | ||
1042 | # CONFIG_BFS_FS is not set | ||
1043 | # CONFIG_EFS_FS is not set | ||
1044 | CONFIG_JFFS2_FS=y | ||
1045 | CONFIG_JFFS2_FS_DEBUG=0 | ||
1046 | CONFIG_JFFS2_FS_WRITEBUFFER=y | ||
1047 | # CONFIG_JFFS2_FS_WBUF_VERIFY is not set | ||
1048 | # CONFIG_JFFS2_SUMMARY is not set | ||
1049 | # CONFIG_JFFS2_FS_XATTR is not set | ||
1050 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | ||
1051 | CONFIG_JFFS2_ZLIB=y | ||
1052 | # CONFIG_JFFS2_LZO is not set | ||
1053 | CONFIG_JFFS2_RTIME=y | ||
1054 | # CONFIG_JFFS2_RUBIN is not set | ||
1055 | CONFIG_UBIFS_FS=y | ||
1056 | # CONFIG_UBIFS_FS_XATTR is not set | ||
1057 | # CONFIG_UBIFS_FS_ADVANCED_COMPR is not set | ||
1058 | CONFIG_UBIFS_FS_LZO=y | ||
1059 | CONFIG_UBIFS_FS_ZLIB=y | ||
1060 | # CONFIG_UBIFS_FS_DEBUG is not set | ||
1061 | # CONFIG_CRAMFS is not set | ||
1062 | # CONFIG_VXFS_FS is not set | ||
1063 | # CONFIG_MINIX_FS is not set | ||
1064 | # CONFIG_HPFS_FS is not set | ||
1065 | # CONFIG_QNX4FS_FS is not set | ||
1066 | # CONFIG_ROMFS_FS is not set | ||
1067 | # CONFIG_SYSV_FS is not set | ||
1068 | # CONFIG_UFS_FS is not set | ||
1069 | CONFIG_NETWORK_FILESYSTEMS=y | ||
1070 | CONFIG_NFS_FS=y | ||
1071 | CONFIG_NFS_V3=y | ||
1072 | # CONFIG_NFS_V3_ACL is not set | ||
1073 | # CONFIG_NFS_V4 is not set | ||
1074 | # CONFIG_NFS_DIRECTIO is not set | ||
1075 | CONFIG_NFSD=m | ||
1076 | CONFIG_NFSD_V3=y | ||
1077 | # CONFIG_NFSD_V3_ACL is not set | ||
1078 | # CONFIG_NFSD_V4 is not set | ||
1079 | CONFIG_NFSD_TCP=y | ||
1080 | CONFIG_ROOT_NFS=y | ||
1081 | CONFIG_LOCKD=y | ||
1082 | CONFIG_LOCKD_V4=y | ||
1083 | CONFIG_EXPORTFS=m | ||
1084 | CONFIG_NFS_COMMON=y | ||
1085 | CONFIG_SUNRPC=y | ||
1086 | # CONFIG_SUNRPC_BIND34 is not set | ||
1087 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
1088 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
1089 | CONFIG_SMB_FS=m | ||
1090 | # CONFIG_SMB_NLS_DEFAULT is not set | ||
1091 | CONFIG_CIFS=m | ||
1092 | # CONFIG_CIFS_STATS is not set | ||
1093 | # CONFIG_CIFS_WEAK_PW_HASH is not set | ||
1094 | # CONFIG_CIFS_XATTR is not set | ||
1095 | # CONFIG_CIFS_DEBUG2 is not set | ||
1096 | # CONFIG_CIFS_EXPERIMENTAL is not set | ||
1097 | # CONFIG_NCP_FS is not set | ||
1098 | # CONFIG_CODA_FS is not set | ||
1099 | # CONFIG_AFS_FS is not set | ||
1100 | |||
1101 | # | ||
1102 | # Partition Types | ||
1103 | # | ||
1104 | # CONFIG_PARTITION_ADVANCED is not set | ||
1105 | CONFIG_MSDOS_PARTITION=y | ||
1106 | CONFIG_NLS=m | ||
1107 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
1108 | CONFIG_NLS_CODEPAGE_437=m | ||
1109 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
1110 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
1111 | CONFIG_NLS_CODEPAGE_850=m | ||
1112 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
1113 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
1114 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
1115 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
1116 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
1117 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
1118 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
1119 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
1120 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
1121 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
1122 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
1123 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
1124 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
1125 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
1126 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
1127 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
1128 | # CONFIG_NLS_ISO8859_8 is not set | ||
1129 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
1130 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
1131 | # CONFIG_NLS_ASCII is not set | ||
1132 | CONFIG_NLS_ISO8859_1=m | ||
1133 | # CONFIG_NLS_ISO8859_2 is not set | ||
1134 | # CONFIG_NLS_ISO8859_3 is not set | ||
1135 | # CONFIG_NLS_ISO8859_4 is not set | ||
1136 | # CONFIG_NLS_ISO8859_5 is not set | ||
1137 | # CONFIG_NLS_ISO8859_6 is not set | ||
1138 | # CONFIG_NLS_ISO8859_7 is not set | ||
1139 | # CONFIG_NLS_ISO8859_9 is not set | ||
1140 | # CONFIG_NLS_ISO8859_13 is not set | ||
1141 | # CONFIG_NLS_ISO8859_14 is not set | ||
1142 | # CONFIG_NLS_ISO8859_15 is not set | ||
1143 | # CONFIG_NLS_KOI8_R is not set | ||
1144 | # CONFIG_NLS_KOI8_U is not set | ||
1145 | CONFIG_NLS_UTF8=m | ||
1146 | # CONFIG_DLM is not set | ||
1147 | |||
1148 | # | ||
1149 | # Kernel hacking | ||
1150 | # | ||
1151 | # CONFIG_PRINTK_TIME is not set | ||
1152 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
1153 | CONFIG_ENABLE_MUST_CHECK=y | ||
1154 | CONFIG_MAGIC_SYSRQ=y | ||
1155 | # CONFIG_UNUSED_SYMBOLS is not set | ||
1156 | # CONFIG_DEBUG_FS is not set | ||
1157 | # CONFIG_HEADERS_CHECK is not set | ||
1158 | CONFIG_DEBUG_KERNEL=y | ||
1159 | # CONFIG_DEBUG_SHIRQ is not set | ||
1160 | CONFIG_DETECT_SOFTLOCKUP=y | ||
1161 | CONFIG_SCHED_DEBUG=y | ||
1162 | # CONFIG_SCHEDSTATS is not set | ||
1163 | # CONFIG_TIMER_STATS is not set | ||
1164 | # CONFIG_SLUB_DEBUG_ON is not set | ||
1165 | # CONFIG_SLUB_STATS is not set | ||
1166 | # CONFIG_DEBUG_RT_MUTEXES is not set | ||
1167 | # CONFIG_RT_MUTEX_TESTER is not set | ||
1168 | # CONFIG_DEBUG_SPINLOCK is not set | ||
1169 | # CONFIG_DEBUG_MUTEXES is not set | ||
1170 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
1171 | # CONFIG_PROVE_LOCKING is not set | ||
1172 | # CONFIG_LOCK_STAT is not set | ||
1173 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
1174 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | ||
1175 | # CONFIG_DEBUG_KOBJECT is not set | ||
1176 | CONFIG_DEBUG_BUGVERBOSE=y | ||
1177 | # CONFIG_DEBUG_INFO is not set | ||
1178 | # CONFIG_DEBUG_VM is not set | ||
1179 | # CONFIG_DEBUG_LIST is not set | ||
1180 | # CONFIG_DEBUG_SG is not set | ||
1181 | CONFIG_FRAME_POINTER=y | ||
1182 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
1183 | # CONFIG_RCU_TORTURE_TEST is not set | ||
1184 | # CONFIG_KPROBES_SANITY_TEST is not set | ||
1185 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
1186 | # CONFIG_LKDTM is not set | ||
1187 | # CONFIG_FAULT_INJECTION is not set | ||
1188 | # CONFIG_SAMPLES is not set | ||
1189 | |||
1190 | # | ||
1191 | # Security options | ||
1192 | # | ||
1193 | # CONFIG_KEYS is not set | ||
1194 | # CONFIG_SECURITY is not set | ||
1195 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
1196 | CONFIG_CRYPTO=y | ||
1197 | CONFIG_CRYPTO_ALGAPI=y | ||
1198 | CONFIG_CRYPTO_AEAD=y | ||
1199 | CONFIG_CRYPTO_BLKCIPHER=y | ||
1200 | # CONFIG_CRYPTO_SEQIV is not set | ||
1201 | CONFIG_CRYPTO_HASH=y | ||
1202 | CONFIG_CRYPTO_MANAGER=y | ||
1203 | CONFIG_CRYPTO_HMAC=y | ||
1204 | # CONFIG_CRYPTO_XCBC is not set | ||
1205 | # CONFIG_CRYPTO_NULL is not set | ||
1206 | # CONFIG_CRYPTO_MD4 is not set | ||
1207 | CONFIG_CRYPTO_MD5=y | ||
1208 | CONFIG_CRYPTO_SHA1=y | ||
1209 | # CONFIG_CRYPTO_SHA256 is not set | ||
1210 | # CONFIG_CRYPTO_SHA512 is not set | ||
1211 | # CONFIG_CRYPTO_WP512 is not set | ||
1212 | # CONFIG_CRYPTO_TGR192 is not set | ||
1213 | # CONFIG_CRYPTO_GF128MUL is not set | ||
1214 | CONFIG_CRYPTO_ECB=m | ||
1215 | CONFIG_CRYPTO_CBC=y | ||
1216 | # CONFIG_CRYPTO_PCBC is not set | ||
1217 | # CONFIG_CRYPTO_LRW is not set | ||
1218 | # CONFIG_CRYPTO_XTS is not set | ||
1219 | # CONFIG_CRYPTO_CTR is not set | ||
1220 | # CONFIG_CRYPTO_GCM is not set | ||
1221 | # CONFIG_CRYPTO_CCM is not set | ||
1222 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1223 | CONFIG_CRYPTO_DES=y | ||
1224 | # CONFIG_CRYPTO_FCRYPT is not set | ||
1225 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
1226 | # CONFIG_CRYPTO_TWOFISH is not set | ||
1227 | # CONFIG_CRYPTO_SERPENT is not set | ||
1228 | # CONFIG_CRYPTO_AES is not set | ||
1229 | # CONFIG_CRYPTO_CAST5 is not set | ||
1230 | # CONFIG_CRYPTO_CAST6 is not set | ||
1231 | # CONFIG_CRYPTO_TEA is not set | ||
1232 | CONFIG_CRYPTO_ARC4=m | ||
1233 | # CONFIG_CRYPTO_KHAZAD is not set | ||
1234 | # CONFIG_CRYPTO_ANUBIS is not set | ||
1235 | # CONFIG_CRYPTO_SEED is not set | ||
1236 | # CONFIG_CRYPTO_SALSA20 is not set | ||
1237 | CONFIG_CRYPTO_DEFLATE=y | ||
1238 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
1239 | # CONFIG_CRYPTO_CRC32C is not set | ||
1240 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1241 | # CONFIG_CRYPTO_TEST is not set | ||
1242 | CONFIG_CRYPTO_AUTHENC=y | ||
1243 | CONFIG_CRYPTO_LZO=y | ||
1244 | CONFIG_CRYPTO_HW=y | ||
1245 | |||
1246 | # | ||
1247 | # Library routines | ||
1248 | # | ||
1249 | CONFIG_BITREVERSE=y | ||
1250 | CONFIG_CRC_CCITT=m | ||
1251 | CONFIG_CRC16=y | ||
1252 | # CONFIG_CRC_ITU_T is not set | ||
1253 | CONFIG_CRC32=y | ||
1254 | # CONFIG_CRC7 is not set | ||
1255 | # CONFIG_LIBCRC32C is not set | ||
1256 | CONFIG_ZLIB_INFLATE=y | ||
1257 | CONFIG_ZLIB_DEFLATE=y | ||
1258 | CONFIG_LZO_COMPRESS=y | ||
1259 | CONFIG_LZO_DECOMPRESS=y | ||
1260 | CONFIG_GENERIC_ALLOCATOR=y | ||
1261 | CONFIG_PLIST=y | ||
1262 | CONFIG_HAS_IOMEM=y | ||
1263 | CONFIG_HAS_IOPORT=y | ||
1264 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/avr32/configs/atngw100_evklcd101_defconfig b/arch/avr32/configs/atngw100_evklcd101_defconfig new file mode 100644 index 000000000000..c5b898d21075 --- /dev/null +++ b/arch/avr32/configs/atngw100_evklcd101_defconfig | |||
@@ -0,0 +1,1264 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.25.6 | ||
4 | # Wed Jun 18 16:09:32 2008 | ||
5 | # | ||
6 | CONFIG_AVR32=y | ||
7 | CONFIG_GENERIC_GPIO=y | ||
8 | CONFIG_GENERIC_HARDIRQS=y | ||
9 | CONFIG_STACKTRACE_SUPPORT=y | ||
10 | CONFIG_LOCKDEP_SUPPORT=y | ||
11 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
12 | CONFIG_HARDIRQS_SW_RESEND=y | ||
13 | CONFIG_GENERIC_IRQ_PROBE=y | ||
14 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
15 | CONFIG_GENERIC_TIME=y | ||
16 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
17 | # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set | ||
18 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
19 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
20 | CONFIG_GENERIC_HWEIGHT=y | ||
21 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
22 | CONFIG_GENERIC_BUG=y | ||
23 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
24 | |||
25 | # | ||
26 | # General setup | ||
27 | # | ||
28 | CONFIG_EXPERIMENTAL=y | ||
29 | CONFIG_BROKEN_ON_SMP=y | ||
30 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
31 | CONFIG_LOCALVERSION="" | ||
32 | # CONFIG_LOCALVERSION_AUTO is not set | ||
33 | CONFIG_SWAP=y | ||
34 | CONFIG_SYSVIPC=y | ||
35 | CONFIG_SYSVIPC_SYSCTL=y | ||
36 | CONFIG_POSIX_MQUEUE=y | ||
37 | CONFIG_BSD_PROCESS_ACCT=y | ||
38 | CONFIG_BSD_PROCESS_ACCT_V3=y | ||
39 | # CONFIG_TASKSTATS is not set | ||
40 | # CONFIG_AUDIT is not set | ||
41 | # CONFIG_IKCONFIG is not set | ||
42 | CONFIG_LOG_BUF_SHIFT=14 | ||
43 | # CONFIG_CGROUPS is not set | ||
44 | # CONFIG_GROUP_SCHED is not set | ||
45 | CONFIG_SYSFS_DEPRECATED=y | ||
46 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
47 | # CONFIG_RELAY is not set | ||
48 | # CONFIG_NAMESPACES is not set | ||
49 | CONFIG_BLK_DEV_INITRD=y | ||
50 | CONFIG_INITRAMFS_SOURCE="" | ||
51 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
52 | CONFIG_SYSCTL=y | ||
53 | CONFIG_EMBEDDED=y | ||
54 | # CONFIG_SYSCTL_SYSCALL is not set | ||
55 | CONFIG_KALLSYMS=y | ||
56 | # CONFIG_KALLSYMS_ALL is not set | ||
57 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
58 | CONFIG_HOTPLUG=y | ||
59 | CONFIG_PRINTK=y | ||
60 | CONFIG_BUG=y | ||
61 | CONFIG_ELF_CORE=y | ||
62 | # CONFIG_COMPAT_BRK is not set | ||
63 | # CONFIG_BASE_FULL is not set | ||
64 | CONFIG_FUTEX=y | ||
65 | CONFIG_ANON_INODES=y | ||
66 | CONFIG_EPOLL=y | ||
67 | CONFIG_SIGNALFD=y | ||
68 | CONFIG_TIMERFD=y | ||
69 | CONFIG_EVENTFD=y | ||
70 | CONFIG_SHMEM=y | ||
71 | CONFIG_VM_EVENT_COUNTERS=y | ||
72 | CONFIG_SLUB_DEBUG=y | ||
73 | # CONFIG_SLAB is not set | ||
74 | CONFIG_SLUB=y | ||
75 | # CONFIG_SLOB is not set | ||
76 | CONFIG_PROFILING=y | ||
77 | # CONFIG_MARKERS is not set | ||
78 | CONFIG_OPROFILE=m | ||
79 | CONFIG_HAVE_OPROFILE=y | ||
80 | CONFIG_KPROBES=y | ||
81 | CONFIG_HAVE_KPROBES=y | ||
82 | # CONFIG_HAVE_KRETPROBES is not set | ||
83 | CONFIG_PROC_PAGE_MONITOR=y | ||
84 | CONFIG_SLABINFO=y | ||
85 | CONFIG_RT_MUTEXES=y | ||
86 | # CONFIG_TINY_SHMEM is not set | ||
87 | CONFIG_BASE_SMALL=1 | ||
88 | CONFIG_MODULES=y | ||
89 | CONFIG_MODULE_UNLOAD=y | ||
90 | CONFIG_MODULE_FORCE_UNLOAD=y | ||
91 | # CONFIG_MODVERSIONS is not set | ||
92 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
93 | CONFIG_KMOD=y | ||
94 | CONFIG_BLOCK=y | ||
95 | # CONFIG_LBD is not set | ||
96 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
97 | # CONFIG_LSF is not set | ||
98 | # CONFIG_BLK_DEV_BSG is not set | ||
99 | |||
100 | # | ||
101 | # IO Schedulers | ||
102 | # | ||
103 | CONFIG_IOSCHED_NOOP=y | ||
104 | # CONFIG_IOSCHED_AS is not set | ||
105 | # CONFIG_IOSCHED_DEADLINE is not set | ||
106 | CONFIG_IOSCHED_CFQ=y | ||
107 | # CONFIG_DEFAULT_AS is not set | ||
108 | # CONFIG_DEFAULT_DEADLINE is not set | ||
109 | CONFIG_DEFAULT_CFQ=y | ||
110 | # CONFIG_DEFAULT_NOOP is not set | ||
111 | CONFIG_DEFAULT_IOSCHED="cfq" | ||
112 | CONFIG_CLASSIC_RCU=y | ||
113 | |||
114 | # | ||
115 | # System Type and features | ||
116 | # | ||
117 | CONFIG_TICK_ONESHOT=y | ||
118 | CONFIG_NO_HZ=y | ||
119 | CONFIG_HIGH_RES_TIMERS=y | ||
120 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
121 | CONFIG_SUBARCH_AVR32B=y | ||
122 | CONFIG_MMU=y | ||
123 | CONFIG_PERFORMANCE_COUNTERS=y | ||
124 | CONFIG_PLATFORM_AT32AP=y | ||
125 | CONFIG_CPU_AT32AP700X=y | ||
126 | CONFIG_CPU_AT32AP7000=y | ||
127 | # CONFIG_BOARD_ATSTK1000 is not set | ||
128 | CONFIG_BOARD_ATNGW100=y | ||
129 | CONFIG_BOARD_ATNGW100_EVKLCD10X=y | ||
130 | # CONFIG_BOARD_ATNGW100_EVKLCD10X_QVGA is not set | ||
131 | CONFIG_BOARD_ATNGW100_EVKLCD10X_VGA=y | ||
132 | # CONFIG_BOARD_ATNGW100_EVKLCD10X_POW_QVGA is not set | ||
133 | CONFIG_BOARD_ATNGW100_I2C_GPIO=y | ||
134 | CONFIG_LOADER_U_BOOT=y | ||
135 | |||
136 | # | ||
137 | # Atmel AVR32 AP options | ||
138 | # | ||
139 | # CONFIG_AP700X_32_BIT_SMC is not set | ||
140 | CONFIG_AP700X_16_BIT_SMC=y | ||
141 | # CONFIG_AP700X_8_BIT_SMC is not set | ||
142 | CONFIG_GPIO_DEV=y | ||
143 | CONFIG_LOAD_ADDRESS=0x10000000 | ||
144 | CONFIG_ENTRY_ADDRESS=0x90000000 | ||
145 | CONFIG_PHYS_OFFSET=0x10000000 | ||
146 | CONFIG_PREEMPT_NONE=y | ||
147 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
148 | # CONFIG_PREEMPT is not set | ||
149 | # CONFIG_HAVE_ARCH_BOOTMEM_NODE is not set | ||
150 | # CONFIG_ARCH_HAVE_MEMORY_PRESENT is not set | ||
151 | # CONFIG_NEED_NODE_MEMMAP_SIZE is not set | ||
152 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
153 | # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set | ||
154 | # CONFIG_ARCH_SPARSEMEM_ENABLE is not set | ||
155 | CONFIG_SELECT_MEMORY_MODEL=y | ||
156 | CONFIG_FLATMEM_MANUAL=y | ||
157 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
158 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
159 | CONFIG_FLATMEM=y | ||
160 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
161 | # CONFIG_SPARSEMEM_STATIC is not set | ||
162 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
163 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
164 | # CONFIG_RESOURCES_64BIT is not set | ||
165 | CONFIG_ZONE_DMA_FLAG=0 | ||
166 | CONFIG_VIRT_TO_BUS=y | ||
167 | # CONFIG_OWNERSHIP_TRACE is not set | ||
168 | CONFIG_NMI_DEBUGGING=y | ||
169 | CONFIG_DW_DMAC=y | ||
170 | # CONFIG_HZ_100 is not set | ||
171 | CONFIG_HZ_250=y | ||
172 | # CONFIG_HZ_300 is not set | ||
173 | # CONFIG_HZ_1000 is not set | ||
174 | CONFIG_HZ=250 | ||
175 | # CONFIG_SCHED_HRTICK is not set | ||
176 | CONFIG_CMDLINE="" | ||
177 | |||
178 | # | ||
179 | # Power management options | ||
180 | # | ||
181 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
182 | CONFIG_PM=y | ||
183 | # CONFIG_PM_LEGACY is not set | ||
184 | # CONFIG_PM_DEBUG is not set | ||
185 | CONFIG_PM_SLEEP=y | ||
186 | CONFIG_SUSPEND=y | ||
187 | CONFIG_SUSPEND_FREEZER=y | ||
188 | |||
189 | # | ||
190 | # CPU Frequency scaling | ||
191 | # | ||
192 | CONFIG_CPU_FREQ=y | ||
193 | CONFIG_CPU_FREQ_TABLE=y | ||
194 | # CONFIG_CPU_FREQ_DEBUG is not set | ||
195 | # CONFIG_CPU_FREQ_STAT is not set | ||
196 | # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set | ||
197 | # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set | ||
198 | CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y | ||
199 | # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set | ||
200 | CONFIG_CPU_FREQ_GOV_PERFORMANCE=y | ||
201 | # CONFIG_CPU_FREQ_GOV_POWERSAVE is not set | ||
202 | CONFIG_CPU_FREQ_GOV_USERSPACE=y | ||
203 | CONFIG_CPU_FREQ_GOV_ONDEMAND=y | ||
204 | # CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set | ||
205 | CONFIG_CPU_FREQ_AT32AP=y | ||
206 | |||
207 | # | ||
208 | # Bus options | ||
209 | # | ||
210 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
211 | # CONFIG_PCCARD is not set | ||
212 | |||
213 | # | ||
214 | # Executable file formats | ||
215 | # | ||
216 | CONFIG_BINFMT_ELF=y | ||
217 | # CONFIG_BINFMT_MISC is not set | ||
218 | |||
219 | # | ||
220 | # Networking | ||
221 | # | ||
222 | CONFIG_NET=y | ||
223 | |||
224 | # | ||
225 | # Networking options | ||
226 | # | ||
227 | CONFIG_PACKET=y | ||
228 | CONFIG_PACKET_MMAP=y | ||
229 | CONFIG_UNIX=y | ||
230 | CONFIG_XFRM=y | ||
231 | CONFIG_XFRM_USER=y | ||
232 | # CONFIG_XFRM_SUB_POLICY is not set | ||
233 | # CONFIG_XFRM_MIGRATE is not set | ||
234 | # CONFIG_XFRM_STATISTICS is not set | ||
235 | CONFIG_NET_KEY=y | ||
236 | # CONFIG_NET_KEY_MIGRATE is not set | ||
237 | CONFIG_INET=y | ||
238 | CONFIG_IP_MULTICAST=y | ||
239 | CONFIG_IP_ADVANCED_ROUTER=y | ||
240 | CONFIG_ASK_IP_FIB_HASH=y | ||
241 | # CONFIG_IP_FIB_TRIE is not set | ||
242 | CONFIG_IP_FIB_HASH=y | ||
243 | # CONFIG_IP_MULTIPLE_TABLES is not set | ||
244 | # CONFIG_IP_ROUTE_MULTIPATH is not set | ||
245 | # CONFIG_IP_ROUTE_VERBOSE is not set | ||
246 | CONFIG_IP_PNP=y | ||
247 | CONFIG_IP_PNP_DHCP=y | ||
248 | # CONFIG_IP_PNP_BOOTP is not set | ||
249 | # CONFIG_IP_PNP_RARP is not set | ||
250 | # CONFIG_NET_IPIP is not set | ||
251 | # CONFIG_NET_IPGRE is not set | ||
252 | CONFIG_IP_MROUTE=y | ||
253 | CONFIG_IP_PIMSM_V1=y | ||
254 | # CONFIG_IP_PIMSM_V2 is not set | ||
255 | # CONFIG_ARPD is not set | ||
256 | CONFIG_SYN_COOKIES=y | ||
257 | CONFIG_INET_AH=y | ||
258 | CONFIG_INET_ESP=y | ||
259 | CONFIG_INET_IPCOMP=y | ||
260 | CONFIG_INET_XFRM_TUNNEL=y | ||
261 | CONFIG_INET_TUNNEL=y | ||
262 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
263 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
264 | CONFIG_INET_XFRM_MODE_BEET=y | ||
265 | # CONFIG_INET_LRO is not set | ||
266 | CONFIG_INET_DIAG=y | ||
267 | CONFIG_INET_TCP_DIAG=y | ||
268 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
269 | CONFIG_TCP_CONG_CUBIC=y | ||
270 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
271 | # CONFIG_TCP_MD5SIG is not set | ||
272 | # CONFIG_IP_VS is not set | ||
273 | CONFIG_IPV6=y | ||
274 | # CONFIG_IPV6_PRIVACY is not set | ||
275 | # CONFIG_IPV6_ROUTER_PREF is not set | ||
276 | # CONFIG_IPV6_OPTIMISTIC_DAD is not set | ||
277 | CONFIG_INET6_AH=y | ||
278 | CONFIG_INET6_ESP=y | ||
279 | CONFIG_INET6_IPCOMP=y | ||
280 | # CONFIG_IPV6_MIP6 is not set | ||
281 | CONFIG_INET6_XFRM_TUNNEL=y | ||
282 | CONFIG_INET6_TUNNEL=y | ||
283 | CONFIG_INET6_XFRM_MODE_TRANSPORT=y | ||
284 | CONFIG_INET6_XFRM_MODE_TUNNEL=y | ||
285 | CONFIG_INET6_XFRM_MODE_BEET=y | ||
286 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | ||
287 | CONFIG_IPV6_SIT=y | ||
288 | # CONFIG_IPV6_TUNNEL is not set | ||
289 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | ||
290 | # CONFIG_NETWORK_SECMARK is not set | ||
291 | CONFIG_NETFILTER=y | ||
292 | # CONFIG_NETFILTER_DEBUG is not set | ||
293 | # CONFIG_NETFILTER_ADVANCED is not set | ||
294 | |||
295 | # | ||
296 | # Core Netfilter Configuration | ||
297 | # | ||
298 | CONFIG_NETFILTER_NETLINK=m | ||
299 | CONFIG_NETFILTER_NETLINK_LOG=m | ||
300 | CONFIG_NF_CONNTRACK=m | ||
301 | CONFIG_NF_CONNTRACK_FTP=m | ||
302 | CONFIG_NF_CONNTRACK_IRC=m | ||
303 | CONFIG_NF_CONNTRACK_SIP=m | ||
304 | CONFIG_NF_CT_NETLINK=m | ||
305 | CONFIG_NETFILTER_XTABLES=y | ||
306 | CONFIG_NETFILTER_XT_TARGET_MARK=m | ||
307 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m | ||
308 | CONFIG_NETFILTER_XT_TARGET_TCPMSS=m | ||
309 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m | ||
310 | CONFIG_NETFILTER_XT_MATCH_MARK=m | ||
311 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | ||
312 | CONFIG_NETFILTER_XT_MATCH_STATE=m | ||
313 | |||
314 | # | ||
315 | # IP: Netfilter Configuration | ||
316 | # | ||
317 | CONFIG_NF_CONNTRACK_IPV4=m | ||
318 | CONFIG_NF_CONNTRACK_PROC_COMPAT=y | ||
319 | CONFIG_IP_NF_IPTABLES=m | ||
320 | CONFIG_IP_NF_FILTER=m | ||
321 | CONFIG_IP_NF_TARGET_REJECT=m | ||
322 | CONFIG_IP_NF_TARGET_LOG=m | ||
323 | # CONFIG_IP_NF_TARGET_ULOG is not set | ||
324 | CONFIG_NF_NAT=m | ||
325 | CONFIG_NF_NAT_NEEDED=y | ||
326 | CONFIG_IP_NF_TARGET_MASQUERADE=m | ||
327 | CONFIG_NF_NAT_FTP=m | ||
328 | CONFIG_NF_NAT_IRC=m | ||
329 | # CONFIG_NF_NAT_TFTP is not set | ||
330 | # CONFIG_NF_NAT_AMANDA is not set | ||
331 | # CONFIG_NF_NAT_PPTP is not set | ||
332 | # CONFIG_NF_NAT_H323 is not set | ||
333 | CONFIG_NF_NAT_SIP=m | ||
334 | CONFIG_IP_NF_MANGLE=m | ||
335 | |||
336 | # | ||
337 | # IPv6: Netfilter Configuration | ||
338 | # | ||
339 | CONFIG_NF_CONNTRACK_IPV6=m | ||
340 | CONFIG_IP6_NF_IPTABLES=m | ||
341 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m | ||
342 | CONFIG_IP6_NF_FILTER=m | ||
343 | CONFIG_IP6_NF_TARGET_LOG=m | ||
344 | CONFIG_IP6_NF_TARGET_REJECT=m | ||
345 | CONFIG_IP6_NF_MANGLE=m | ||
346 | # CONFIG_IP_DCCP is not set | ||
347 | # CONFIG_IP_SCTP is not set | ||
348 | # CONFIG_TIPC is not set | ||
349 | # CONFIG_ATM is not set | ||
350 | CONFIG_BRIDGE=m | ||
351 | CONFIG_VLAN_8021Q=m | ||
352 | # CONFIG_DECNET is not set | ||
353 | CONFIG_LLC=m | ||
354 | # CONFIG_LLC2 is not set | ||
355 | # CONFIG_IPX is not set | ||
356 | # CONFIG_ATALK is not set | ||
357 | # CONFIG_X25 is not set | ||
358 | # CONFIG_LAPB is not set | ||
359 | # CONFIG_ECONET is not set | ||
360 | # CONFIG_WAN_ROUTER is not set | ||
361 | # CONFIG_NET_SCHED is not set | ||
362 | |||
363 | # | ||
364 | # Network testing | ||
365 | # | ||
366 | # CONFIG_NET_PKTGEN is not set | ||
367 | # CONFIG_NET_TCPPROBE is not set | ||
368 | # CONFIG_HAMRADIO is not set | ||
369 | # CONFIG_CAN is not set | ||
370 | # CONFIG_IRDA is not set | ||
371 | # CONFIG_BT is not set | ||
372 | # CONFIG_AF_RXRPC is not set | ||
373 | |||
374 | # | ||
375 | # Wireless | ||
376 | # | ||
377 | # CONFIG_CFG80211 is not set | ||
378 | # CONFIG_WIRELESS_EXT is not set | ||
379 | # CONFIG_MAC80211 is not set | ||
380 | # CONFIG_IEEE80211 is not set | ||
381 | # CONFIG_RFKILL is not set | ||
382 | # CONFIG_NET_9P is not set | ||
383 | |||
384 | # | ||
385 | # Device Drivers | ||
386 | # | ||
387 | |||
388 | # | ||
389 | # Generic Driver Options | ||
390 | # | ||
391 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
392 | CONFIG_STANDALONE=y | ||
393 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | ||
394 | # CONFIG_FW_LOADER is not set | ||
395 | # CONFIG_DEBUG_DRIVER is not set | ||
396 | # CONFIG_DEBUG_DEVRES is not set | ||
397 | # CONFIG_SYS_HYPERVISOR is not set | ||
398 | # CONFIG_CONNECTOR is not set | ||
399 | CONFIG_MTD=y | ||
400 | # CONFIG_MTD_DEBUG is not set | ||
401 | # CONFIG_MTD_CONCAT is not set | ||
402 | CONFIG_MTD_PARTITIONS=y | ||
403 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
404 | CONFIG_MTD_CMDLINE_PARTS=y | ||
405 | |||
406 | # | ||
407 | # User Modules And Translation Layers | ||
408 | # | ||
409 | CONFIG_MTD_CHAR=y | ||
410 | CONFIG_MTD_BLKDEVS=y | ||
411 | CONFIG_MTD_BLOCK=y | ||
412 | # CONFIG_FTL is not set | ||
413 | # CONFIG_NFTL is not set | ||
414 | # CONFIG_INFTL is not set | ||
415 | # CONFIG_RFD_FTL is not set | ||
416 | # CONFIG_SSFDC is not set | ||
417 | # CONFIG_MTD_OOPS is not set | ||
418 | |||
419 | # | ||
420 | # RAM/ROM/Flash chip drivers | ||
421 | # | ||
422 | CONFIG_MTD_CFI=y | ||
423 | # CONFIG_MTD_JEDECPROBE is not set | ||
424 | CONFIG_MTD_GEN_PROBE=y | ||
425 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
426 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
427 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
428 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
429 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
430 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
431 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
432 | CONFIG_MTD_CFI_I1=y | ||
433 | CONFIG_MTD_CFI_I2=y | ||
434 | # CONFIG_MTD_CFI_I4 is not set | ||
435 | # CONFIG_MTD_CFI_I8 is not set | ||
436 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
437 | CONFIG_MTD_CFI_AMDSTD=y | ||
438 | # CONFIG_MTD_CFI_STAA is not set | ||
439 | CONFIG_MTD_CFI_UTIL=y | ||
440 | # CONFIG_MTD_RAM is not set | ||
441 | # CONFIG_MTD_ROM is not set | ||
442 | # CONFIG_MTD_ABSENT is not set | ||
443 | |||
444 | # | ||
445 | # Mapping drivers for chip access | ||
446 | # | ||
447 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
448 | CONFIG_MTD_PHYSMAP=y | ||
449 | CONFIG_MTD_PHYSMAP_START=0x80000000 | ||
450 | CONFIG_MTD_PHYSMAP_LEN=0x0 | ||
451 | CONFIG_MTD_PHYSMAP_BANKWIDTH=2 | ||
452 | # CONFIG_MTD_PLATRAM is not set | ||
453 | |||
454 | # | ||
455 | # Self-contained MTD device drivers | ||
456 | # | ||
457 | CONFIG_MTD_DATAFLASH=y | ||
458 | # CONFIG_MTD_M25P80 is not set | ||
459 | # CONFIG_MTD_SLRAM is not set | ||
460 | # CONFIG_MTD_PHRAM is not set | ||
461 | # CONFIG_MTD_MTDRAM is not set | ||
462 | # CONFIG_MTD_BLOCK2MTD is not set | ||
463 | |||
464 | # | ||
465 | # Disk-On-Chip Device Drivers | ||
466 | # | ||
467 | # CONFIG_MTD_DOC2000 is not set | ||
468 | # CONFIG_MTD_DOC2001 is not set | ||
469 | # CONFIG_MTD_DOC2001PLUS is not set | ||
470 | # CONFIG_MTD_NAND is not set | ||
471 | # CONFIG_MTD_ONENAND is not set | ||
472 | |||
473 | # | ||
474 | # UBI - Unsorted block images | ||
475 | # | ||
476 | CONFIG_MTD_UBI=y | ||
477 | CONFIG_MTD_UBI_WL_THRESHOLD=4096 | ||
478 | CONFIG_MTD_UBI_BEB_RESERVE=1 | ||
479 | # CONFIG_MTD_UBI_GLUEBI is not set | ||
480 | |||
481 | # | ||
482 | # UBI debugging options | ||
483 | # | ||
484 | # CONFIG_MTD_UBI_DEBUG is not set | ||
485 | # CONFIG_PARPORT is not set | ||
486 | CONFIG_BLK_DEV=y | ||
487 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
488 | CONFIG_BLK_DEV_LOOP=m | ||
489 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
490 | CONFIG_BLK_DEV_NBD=m | ||
491 | CONFIG_BLK_DEV_RAM=m | ||
492 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
493 | CONFIG_BLK_DEV_RAM_SIZE=4096 | ||
494 | # CONFIG_BLK_DEV_XIP is not set | ||
495 | # CONFIG_CDROM_PKTCDVD is not set | ||
496 | # CONFIG_ATA_OVER_ETH is not set | ||
497 | CONFIG_MISC_DEVICES=y | ||
498 | # CONFIG_ATMEL_PWM is not set | ||
499 | CONFIG_ATMEL_TCLIB=y | ||
500 | CONFIG_ATMEL_TCB_CLKSRC=y | ||
501 | CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0 | ||
502 | # CONFIG_EEPROM_93CX6 is not set | ||
503 | # CONFIG_ATMEL_SSC is not set | ||
504 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
505 | # CONFIG_HAVE_IDE is not set | ||
506 | |||
507 | # | ||
508 | # SCSI device support | ||
509 | # | ||
510 | # CONFIG_RAID_ATTRS is not set | ||
511 | # CONFIG_SCSI is not set | ||
512 | # CONFIG_SCSI_DMA is not set | ||
513 | # CONFIG_SCSI_NETLINK is not set | ||
514 | # CONFIG_ATA is not set | ||
515 | # CONFIG_MD is not set | ||
516 | CONFIG_NETDEVICES=y | ||
517 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
518 | # CONFIG_DUMMY is not set | ||
519 | # CONFIG_BONDING is not set | ||
520 | # CONFIG_MACVLAN is not set | ||
521 | # CONFIG_EQUALIZER is not set | ||
522 | # CONFIG_TUN is not set | ||
523 | # CONFIG_VETH is not set | ||
524 | CONFIG_PHYLIB=y | ||
525 | |||
526 | # | ||
527 | # MII PHY device drivers | ||
528 | # | ||
529 | # CONFIG_MARVELL_PHY is not set | ||
530 | # CONFIG_DAVICOM_PHY is not set | ||
531 | # CONFIG_QSEMI_PHY is not set | ||
532 | # CONFIG_LXT_PHY is not set | ||
533 | # CONFIG_CICADA_PHY is not set | ||
534 | # CONFIG_VITESSE_PHY is not set | ||
535 | # CONFIG_SMSC_PHY is not set | ||
536 | # CONFIG_BROADCOM_PHY is not set | ||
537 | # CONFIG_ICPLUS_PHY is not set | ||
538 | # CONFIG_REALTEK_PHY is not set | ||
539 | # CONFIG_FIXED_PHY is not set | ||
540 | # CONFIG_MDIO_BITBANG is not set | ||
541 | CONFIG_NET_ETHERNET=y | ||
542 | # CONFIG_MII is not set | ||
543 | CONFIG_MACB=y | ||
544 | # CONFIG_ENC28J60 is not set | ||
545 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
546 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
547 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
548 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
549 | # CONFIG_B44 is not set | ||
550 | # CONFIG_NETDEV_1000 is not set | ||
551 | # CONFIG_NETDEV_10000 is not set | ||
552 | |||
553 | # | ||
554 | # Wireless LAN | ||
555 | # | ||
556 | # CONFIG_WLAN_PRE80211 is not set | ||
557 | # CONFIG_WLAN_80211 is not set | ||
558 | # CONFIG_WAN is not set | ||
559 | CONFIG_PPP=m | ||
560 | # CONFIG_PPP_MULTILINK is not set | ||
561 | CONFIG_PPP_FILTER=y | ||
562 | CONFIG_PPP_ASYNC=m | ||
563 | # CONFIG_PPP_SYNC_TTY is not set | ||
564 | CONFIG_PPP_DEFLATE=m | ||
565 | CONFIG_PPP_BSDCOMP=m | ||
566 | CONFIG_PPP_MPPE=m | ||
567 | CONFIG_PPPOE=m | ||
568 | # CONFIG_PPPOL2TP is not set | ||
569 | # CONFIG_SLIP is not set | ||
570 | CONFIG_SLHC=m | ||
571 | # CONFIG_NETCONSOLE is not set | ||
572 | # CONFIG_NETPOLL is not set | ||
573 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
574 | # CONFIG_ISDN is not set | ||
575 | # CONFIG_PHONE is not set | ||
576 | |||
577 | # | ||
578 | # Input device support | ||
579 | # | ||
580 | CONFIG_INPUT=y | ||
581 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
582 | # CONFIG_INPUT_POLLDEV is not set | ||
583 | |||
584 | # | ||
585 | # Userland interfaces | ||
586 | # | ||
587 | # CONFIG_INPUT_MOUSEDEV is not set | ||
588 | # CONFIG_INPUT_JOYDEV is not set | ||
589 | CONFIG_INPUT_EVDEV=m | ||
590 | # CONFIG_INPUT_EVBUG is not set | ||
591 | |||
592 | # | ||
593 | # Input Device Drivers | ||
594 | # | ||
595 | # CONFIG_INPUT_KEYBOARD is not set | ||
596 | # CONFIG_INPUT_MOUSE is not set | ||
597 | # CONFIG_INPUT_JOYSTICK is not set | ||
598 | # CONFIG_INPUT_TABLET is not set | ||
599 | CONFIG_INPUT_TOUCHSCREEN=y | ||
600 | # CONFIG_TOUCHSCREEN_ADS7846 is not set | ||
601 | # CONFIG_TOUCHSCREEN_FUJITSU is not set | ||
602 | # CONFIG_TOUCHSCREEN_GUNZE is not set | ||
603 | # CONFIG_TOUCHSCREEN_ELO is not set | ||
604 | # CONFIG_TOUCHSCREEN_MTOUCH is not set | ||
605 | # CONFIG_TOUCHSCREEN_MK712 is not set | ||
606 | # CONFIG_TOUCHSCREEN_PENMOUNT is not set | ||
607 | # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set | ||
608 | # CONFIG_TOUCHSCREEN_TOUCHWIN is not set | ||
609 | # CONFIG_TOUCHSCREEN_UCB1400 is not set | ||
610 | # CONFIG_INPUT_MISC is not set | ||
611 | |||
612 | # | ||
613 | # Hardware I/O ports | ||
614 | # | ||
615 | # CONFIG_SERIO is not set | ||
616 | # CONFIG_GAMEPORT is not set | ||
617 | |||
618 | # | ||
619 | # Character devices | ||
620 | # | ||
621 | CONFIG_VT=y | ||
622 | CONFIG_VT_CONSOLE=y | ||
623 | CONFIG_HW_CONSOLE=y | ||
624 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | ||
625 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
626 | |||
627 | # | ||
628 | # Serial drivers | ||
629 | # | ||
630 | # CONFIG_SERIAL_8250 is not set | ||
631 | |||
632 | # | ||
633 | # Non-8250 serial port support | ||
634 | # | ||
635 | CONFIG_SERIAL_ATMEL=y | ||
636 | CONFIG_SERIAL_ATMEL_CONSOLE=y | ||
637 | CONFIG_SERIAL_ATMEL_PDC=y | ||
638 | # CONFIG_SERIAL_ATMEL_TTYAT is not set | ||
639 | CONFIG_SERIAL_CORE=y | ||
640 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
641 | CONFIG_UNIX98_PTYS=y | ||
642 | # CONFIG_LEGACY_PTYS is not set | ||
643 | # CONFIG_IPMI_HANDLER is not set | ||
644 | # CONFIG_HW_RANDOM is not set | ||
645 | # CONFIG_R3964 is not set | ||
646 | # CONFIG_RAW_DRIVER is not set | ||
647 | # CONFIG_TCG_TPM is not set | ||
648 | CONFIG_I2C=m | ||
649 | CONFIG_I2C_BOARDINFO=y | ||
650 | CONFIG_I2C_CHARDEV=m | ||
651 | |||
652 | # | ||
653 | # I2C Algorithms | ||
654 | # | ||
655 | CONFIG_I2C_ALGOBIT=m | ||
656 | # CONFIG_I2C_ALGOPCF is not set | ||
657 | # CONFIG_I2C_ALGOPCA is not set | ||
658 | |||
659 | # | ||
660 | # I2C Hardware Bus support | ||
661 | # | ||
662 | CONFIG_I2C_ATMELTWI=m | ||
663 | CONFIG_I2C_GPIO=m | ||
664 | # CONFIG_I2C_OCORES is not set | ||
665 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
666 | # CONFIG_I2C_SIMTEC is not set | ||
667 | # CONFIG_I2C_TAOS_EVM is not set | ||
668 | # CONFIG_I2C_STUB is not set | ||
669 | |||
670 | # | ||
671 | # Miscellaneous I2C Chip support | ||
672 | # | ||
673 | # CONFIG_DS1682 is not set | ||
674 | # CONFIG_SENSORS_EEPROM is not set | ||
675 | # CONFIG_SENSORS_PCF8574 is not set | ||
676 | # CONFIG_PCF8575 is not set | ||
677 | # CONFIG_SENSORS_PCF8591 is not set | ||
678 | # CONFIG_TPS65010 is not set | ||
679 | # CONFIG_SENSORS_MAX6875 is not set | ||
680 | # CONFIG_SENSORS_TSL2550 is not set | ||
681 | # CONFIG_I2C_DEBUG_CORE is not set | ||
682 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
683 | # CONFIG_I2C_DEBUG_BUS is not set | ||
684 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
685 | |||
686 | # | ||
687 | # SPI support | ||
688 | # | ||
689 | CONFIG_SPI=y | ||
690 | # CONFIG_SPI_DEBUG is not set | ||
691 | CONFIG_SPI_MASTER=y | ||
692 | |||
693 | # | ||
694 | # SPI Master Controller Drivers | ||
695 | # | ||
696 | CONFIG_SPI_ATMEL=y | ||
697 | # CONFIG_SPI_BITBANG is not set | ||
698 | |||
699 | # | ||
700 | # SPI Protocol Masters | ||
701 | # | ||
702 | # CONFIG_SPI_AT25 is not set | ||
703 | CONFIG_SPI_SPIDEV=m | ||
704 | # CONFIG_SPI_TLE62X0 is not set | ||
705 | CONFIG_HAVE_GPIO_LIB=y | ||
706 | |||
707 | # | ||
708 | # GPIO Support | ||
709 | # | ||
710 | # CONFIG_DEBUG_GPIO is not set | ||
711 | |||
712 | # | ||
713 | # I2C GPIO expanders: | ||
714 | # | ||
715 | # CONFIG_GPIO_PCA953X is not set | ||
716 | # CONFIG_GPIO_PCF857X is not set | ||
717 | |||
718 | # | ||
719 | # SPI GPIO expanders: | ||
720 | # | ||
721 | # CONFIG_GPIO_MCP23S08 is not set | ||
722 | # CONFIG_W1 is not set | ||
723 | # CONFIG_POWER_SUPPLY is not set | ||
724 | # CONFIG_HWMON is not set | ||
725 | # CONFIG_THERMAL is not set | ||
726 | CONFIG_WATCHDOG=y | ||
727 | # CONFIG_WATCHDOG_NOWAYOUT is not set | ||
728 | |||
729 | # | ||
730 | # Watchdog Device Drivers | ||
731 | # | ||
732 | # CONFIG_SOFT_WATCHDOG is not set | ||
733 | CONFIG_AT32AP700X_WDT=y | ||
734 | |||
735 | # | ||
736 | # Sonics Silicon Backplane | ||
737 | # | ||
738 | CONFIG_SSB_POSSIBLE=y | ||
739 | # CONFIG_SSB is not set | ||
740 | |||
741 | # | ||
742 | # Multifunction device drivers | ||
743 | # | ||
744 | # CONFIG_MFD_SM501 is not set | ||
745 | |||
746 | # | ||
747 | # Multimedia devices | ||
748 | # | ||
749 | # CONFIG_VIDEO_DEV is not set | ||
750 | # CONFIG_DVB_CORE is not set | ||
751 | # CONFIG_DAB is not set | ||
752 | |||
753 | # | ||
754 | # Graphics support | ||
755 | # | ||
756 | # CONFIG_VGASTATE is not set | ||
757 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
758 | CONFIG_FB=y | ||
759 | # CONFIG_FIRMWARE_EDID is not set | ||
760 | # CONFIG_FB_DDC is not set | ||
761 | CONFIG_FB_CFB_FILLRECT=y | ||
762 | CONFIG_FB_CFB_COPYAREA=y | ||
763 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
764 | # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set | ||
765 | # CONFIG_FB_SYS_FILLRECT is not set | ||
766 | # CONFIG_FB_SYS_COPYAREA is not set | ||
767 | # CONFIG_FB_SYS_IMAGEBLIT is not set | ||
768 | # CONFIG_FB_SYS_FOPS is not set | ||
769 | CONFIG_FB_DEFERRED_IO=y | ||
770 | # CONFIG_FB_SVGALIB is not set | ||
771 | # CONFIG_FB_MACMODES is not set | ||
772 | # CONFIG_FB_BACKLIGHT is not set | ||
773 | # CONFIG_FB_MODE_HELPERS is not set | ||
774 | # CONFIG_FB_TILEBLITTING is not set | ||
775 | |||
776 | # | ||
777 | # Frame buffer hardware drivers | ||
778 | # | ||
779 | # CONFIG_FB_S1D13XXX is not set | ||
780 | CONFIG_FB_ATMEL=y | ||
781 | # CONFIG_FB_VIRTUAL is not set | ||
782 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
783 | |||
784 | # | ||
785 | # Display device support | ||
786 | # | ||
787 | # CONFIG_DISPLAY_SUPPORT is not set | ||
788 | |||
789 | # | ||
790 | # Console display driver support | ||
791 | # | ||
792 | CONFIG_DUMMY_CONSOLE=y | ||
793 | # CONFIG_FRAMEBUFFER_CONSOLE is not set | ||
794 | # CONFIG_LOGO is not set | ||
795 | |||
796 | # | ||
797 | # Sound | ||
798 | # | ||
799 | CONFIG_SOUND=y | ||
800 | |||
801 | # | ||
802 | # Advanced Linux Sound Architecture | ||
803 | # | ||
804 | CONFIG_SND=y | ||
805 | CONFIG_SND_TIMER=m | ||
806 | CONFIG_SND_PCM=m | ||
807 | # CONFIG_SND_SEQUENCER is not set | ||
808 | CONFIG_SND_OSSEMUL=y | ||
809 | CONFIG_SND_MIXER_OSS=m | ||
810 | CONFIG_SND_PCM_OSS=m | ||
811 | CONFIG_SND_PCM_OSS_PLUGINS=y | ||
812 | # CONFIG_SND_DYNAMIC_MINORS is not set | ||
813 | # CONFIG_SND_SUPPORT_OLD_API is not set | ||
814 | CONFIG_SND_VERBOSE_PROCFS=y | ||
815 | # CONFIG_SND_VERBOSE_PRINTK is not set | ||
816 | # CONFIG_SND_DEBUG is not set | ||
817 | |||
818 | # | ||
819 | # Generic devices | ||
820 | # | ||
821 | CONFIG_SND_AC97_CODEC=m | ||
822 | # CONFIG_SND_DUMMY is not set | ||
823 | # CONFIG_SND_MTPAV is not set | ||
824 | # CONFIG_SND_SERIAL_U16550 is not set | ||
825 | # CONFIG_SND_MPU401 is not set | ||
826 | |||
827 | # | ||
828 | # AVR32 devices | ||
829 | # | ||
830 | CONFIG_SND_ATMEL_AC97=m | ||
831 | |||
832 | # | ||
833 | # SPI devices | ||
834 | # | ||
835 | |||
836 | # | ||
837 | # System on Chip audio support | ||
838 | # | ||
839 | # CONFIG_SND_SOC is not set | ||
840 | |||
841 | # | ||
842 | # SoC Audio support for SuperH | ||
843 | # | ||
844 | |||
845 | # | ||
846 | # ALSA SoC audio for Freescale SOCs | ||
847 | # | ||
848 | |||
849 | # | ||
850 | # Open Sound System | ||
851 | # | ||
852 | # CONFIG_SOUND_PRIME is not set | ||
853 | CONFIG_AC97_BUS=m | ||
854 | CONFIG_HID_SUPPORT=y | ||
855 | CONFIG_HID=y | ||
856 | # CONFIG_HID_DEBUG is not set | ||
857 | # CONFIG_HIDRAW is not set | ||
858 | CONFIG_USB_SUPPORT=y | ||
859 | # CONFIG_USB_ARCH_HAS_HCD is not set | ||
860 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
861 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
862 | |||
863 | # | ||
864 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
865 | # | ||
866 | CONFIG_USB_GADGET=y | ||
867 | # CONFIG_USB_GADGET_DEBUG is not set | ||
868 | # CONFIG_USB_GADGET_DEBUG_FILES is not set | ||
869 | CONFIG_USB_GADGET_SELECTED=y | ||
870 | # CONFIG_USB_GADGET_AMD5536UDC is not set | ||
871 | CONFIG_USB_GADGET_ATMEL_USBA=y | ||
872 | CONFIG_USB_ATMEL_USBA=y | ||
873 | # CONFIG_USB_GADGET_FSL_USB2 is not set | ||
874 | # CONFIG_USB_GADGET_NET2280 is not set | ||
875 | # CONFIG_USB_GADGET_PXA2XX is not set | ||
876 | # CONFIG_USB_GADGET_M66592 is not set | ||
877 | # CONFIG_USB_GADGET_GOKU is not set | ||
878 | # CONFIG_USB_GADGET_LH7A40X is not set | ||
879 | # CONFIG_USB_GADGET_OMAP is not set | ||
880 | # CONFIG_USB_GADGET_S3C2410 is not set | ||
881 | # CONFIG_USB_GADGET_AT91 is not set | ||
882 | # CONFIG_USB_GADGET_DUMMY_HCD is not set | ||
883 | CONFIG_USB_GADGET_DUALSPEED=y | ||
884 | CONFIG_USB_ZERO=m | ||
885 | CONFIG_USB_ETH=m | ||
886 | CONFIG_USB_ETH_RNDIS=y | ||
887 | CONFIG_USB_GADGETFS=m | ||
888 | CONFIG_USB_FILE_STORAGE=m | ||
889 | # CONFIG_USB_FILE_STORAGE_TEST is not set | ||
890 | CONFIG_USB_G_SERIAL=m | ||
891 | # CONFIG_USB_MIDI_GADGET is not set | ||
892 | # CONFIG_USB_G_PRINTER is not set | ||
893 | CONFIG_MMC=y | ||
894 | # CONFIG_MMC_DEBUG is not set | ||
895 | # CONFIG_MMC_UNSAFE_RESUME is not set | ||
896 | |||
897 | # | ||
898 | # MMC/SD Card Drivers | ||
899 | # | ||
900 | CONFIG_MMC_BLOCK=y | ||
901 | CONFIG_MMC_BLOCK_BOUNCE=y | ||
902 | # CONFIG_SDIO_UART is not set | ||
903 | |||
904 | # | ||
905 | # MMC/SD Host Controller Drivers | ||
906 | # | ||
907 | CONFIG_MMC_ATMELMCI=y | ||
908 | # CONFIG_MMC_SPI is not set | ||
909 | # CONFIG_MEMSTICK is not set | ||
910 | CONFIG_NEW_LEDS=y | ||
911 | CONFIG_LEDS_CLASS=y | ||
912 | |||
913 | # | ||
914 | # LED drivers | ||
915 | # | ||
916 | CONFIG_LEDS_GPIO=y | ||
917 | |||
918 | # | ||
919 | # LED Triggers | ||
920 | # | ||
921 | CONFIG_LEDS_TRIGGERS=y | ||
922 | CONFIG_LEDS_TRIGGER_TIMER=y | ||
923 | CONFIG_LEDS_TRIGGER_HEARTBEAT=y | ||
924 | CONFIG_RTC_LIB=y | ||
925 | CONFIG_RTC_CLASS=y | ||
926 | CONFIG_RTC_HCTOSYS=y | ||
927 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
928 | # CONFIG_RTC_DEBUG is not set | ||
929 | |||
930 | # | ||
931 | # RTC interfaces | ||
932 | # | ||
933 | CONFIG_RTC_INTF_SYSFS=y | ||
934 | CONFIG_RTC_INTF_PROC=y | ||
935 | CONFIG_RTC_INTF_DEV=y | ||
936 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
937 | # CONFIG_RTC_DRV_TEST is not set | ||
938 | |||
939 | # | ||
940 | # I2C RTC drivers | ||
941 | # | ||
942 | # CONFIG_RTC_DRV_DS1307 is not set | ||
943 | # CONFIG_RTC_DRV_DS1374 is not set | ||
944 | # CONFIG_RTC_DRV_DS1672 is not set | ||
945 | # CONFIG_RTC_DRV_MAX6900 is not set | ||
946 | # CONFIG_RTC_DRV_RS5C372 is not set | ||
947 | # CONFIG_RTC_DRV_ISL1208 is not set | ||
948 | # CONFIG_RTC_DRV_X1205 is not set | ||
949 | # CONFIG_RTC_DRV_PCF8563 is not set | ||
950 | # CONFIG_RTC_DRV_PCF8583 is not set | ||
951 | # CONFIG_RTC_DRV_M41T80 is not set | ||
952 | # CONFIG_RTC_DRV_S35390A is not set | ||
953 | |||
954 | # | ||
955 | # SPI RTC drivers | ||
956 | # | ||
957 | # CONFIG_RTC_DRV_MAX6902 is not set | ||
958 | # CONFIG_RTC_DRV_R9701 is not set | ||
959 | # CONFIG_RTC_DRV_RS5C348 is not set | ||
960 | |||
961 | # | ||
962 | # Platform RTC drivers | ||
963 | # | ||
964 | # CONFIG_RTC_DRV_DS1511 is not set | ||
965 | # CONFIG_RTC_DRV_DS1553 is not set | ||
966 | # CONFIG_RTC_DRV_DS1742 is not set | ||
967 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
968 | # CONFIG_RTC_DRV_M48T86 is not set | ||
969 | # CONFIG_RTC_DRV_M48T59 is not set | ||
970 | # CONFIG_RTC_DRV_V3020 is not set | ||
971 | |||
972 | # | ||
973 | # on-CPU RTC drivers | ||
974 | # | ||
975 | CONFIG_RTC_DRV_AT32AP700X=y | ||
976 | |||
977 | # | ||
978 | # Userspace I/O | ||
979 | # | ||
980 | # CONFIG_UIO is not set | ||
981 | |||
982 | # | ||
983 | # File systems | ||
984 | # | ||
985 | CONFIG_EXT2_FS=y | ||
986 | # CONFIG_EXT2_FS_XATTR is not set | ||
987 | # CONFIG_EXT2_FS_XIP is not set | ||
988 | CONFIG_EXT3_FS=y | ||
989 | # CONFIG_EXT3_FS_XATTR is not set | ||
990 | # CONFIG_EXT4DEV_FS is not set | ||
991 | CONFIG_JBD=y | ||
992 | # CONFIG_REISERFS_FS is not set | ||
993 | # CONFIG_JFS_FS is not set | ||
994 | # CONFIG_FS_POSIX_ACL is not set | ||
995 | # CONFIG_XFS_FS is not set | ||
996 | # CONFIG_GFS2_FS is not set | ||
997 | # CONFIG_OCFS2_FS is not set | ||
998 | # CONFIG_DNOTIFY is not set | ||
999 | CONFIG_INOTIFY=y | ||
1000 | CONFIG_INOTIFY_USER=y | ||
1001 | # CONFIG_QUOTA is not set | ||
1002 | # CONFIG_AUTOFS_FS is not set | ||
1003 | # CONFIG_AUTOFS4_FS is not set | ||
1004 | CONFIG_FUSE_FS=m | ||
1005 | |||
1006 | # | ||
1007 | # CD-ROM/DVD Filesystems | ||
1008 | # | ||
1009 | # CONFIG_ISO9660_FS is not set | ||
1010 | # CONFIG_UDF_FS is not set | ||
1011 | |||
1012 | # | ||
1013 | # DOS/FAT/NT Filesystems | ||
1014 | # | ||
1015 | CONFIG_FAT_FS=m | ||
1016 | CONFIG_MSDOS_FS=m | ||
1017 | CONFIG_VFAT_FS=m | ||
1018 | CONFIG_FAT_DEFAULT_CODEPAGE=850 | ||
1019 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
1020 | # CONFIG_NTFS_FS is not set | ||
1021 | |||
1022 | # | ||
1023 | # Pseudo filesystems | ||
1024 | # | ||
1025 | CONFIG_PROC_FS=y | ||
1026 | # CONFIG_PROC_KCORE is not set | ||
1027 | CONFIG_PROC_SYSCTL=y | ||
1028 | CONFIG_SYSFS=y | ||
1029 | CONFIG_TMPFS=y | ||
1030 | # CONFIG_TMPFS_POSIX_ACL is not set | ||
1031 | # CONFIG_HUGETLB_PAGE is not set | ||
1032 | CONFIG_CONFIGFS_FS=y | ||
1033 | |||
1034 | # | ||
1035 | # Miscellaneous filesystems | ||
1036 | # | ||
1037 | # CONFIG_ADFS_FS is not set | ||
1038 | # CONFIG_AFFS_FS is not set | ||
1039 | # CONFIG_HFS_FS is not set | ||
1040 | # CONFIG_HFSPLUS_FS is not set | ||
1041 | # CONFIG_BEFS_FS is not set | ||
1042 | # CONFIG_BFS_FS is not set | ||
1043 | # CONFIG_EFS_FS is not set | ||
1044 | CONFIG_JFFS2_FS=y | ||
1045 | CONFIG_JFFS2_FS_DEBUG=0 | ||
1046 | CONFIG_JFFS2_FS_WRITEBUFFER=y | ||
1047 | # CONFIG_JFFS2_FS_WBUF_VERIFY is not set | ||
1048 | # CONFIG_JFFS2_SUMMARY is not set | ||
1049 | # CONFIG_JFFS2_FS_XATTR is not set | ||
1050 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | ||
1051 | CONFIG_JFFS2_ZLIB=y | ||
1052 | # CONFIG_JFFS2_LZO is not set | ||
1053 | CONFIG_JFFS2_RTIME=y | ||
1054 | # CONFIG_JFFS2_RUBIN is not set | ||
1055 | CONFIG_UBIFS_FS=y | ||
1056 | # CONFIG_UBIFS_FS_XATTR is not set | ||
1057 | # CONFIG_UBIFS_FS_ADVANCED_COMPR is not set | ||
1058 | CONFIG_UBIFS_FS_LZO=y | ||
1059 | CONFIG_UBIFS_FS_ZLIB=y | ||
1060 | # CONFIG_UBIFS_FS_DEBUG is not set | ||
1061 | # CONFIG_CRAMFS is not set | ||
1062 | # CONFIG_VXFS_FS is not set | ||
1063 | # CONFIG_MINIX_FS is not set | ||
1064 | # CONFIG_HPFS_FS is not set | ||
1065 | # CONFIG_QNX4FS_FS is not set | ||
1066 | # CONFIG_ROMFS_FS is not set | ||
1067 | # CONFIG_SYSV_FS is not set | ||
1068 | # CONFIG_UFS_FS is not set | ||
1069 | CONFIG_NETWORK_FILESYSTEMS=y | ||
1070 | CONFIG_NFS_FS=y | ||
1071 | CONFIG_NFS_V3=y | ||
1072 | # CONFIG_NFS_V3_ACL is not set | ||
1073 | # CONFIG_NFS_V4 is not set | ||
1074 | # CONFIG_NFS_DIRECTIO is not set | ||
1075 | CONFIG_NFSD=m | ||
1076 | CONFIG_NFSD_V3=y | ||
1077 | # CONFIG_NFSD_V3_ACL is not set | ||
1078 | # CONFIG_NFSD_V4 is not set | ||
1079 | CONFIG_NFSD_TCP=y | ||
1080 | CONFIG_ROOT_NFS=y | ||
1081 | CONFIG_LOCKD=y | ||
1082 | CONFIG_LOCKD_V4=y | ||
1083 | CONFIG_EXPORTFS=m | ||
1084 | CONFIG_NFS_COMMON=y | ||
1085 | CONFIG_SUNRPC=y | ||
1086 | # CONFIG_SUNRPC_BIND34 is not set | ||
1087 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
1088 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
1089 | CONFIG_SMB_FS=m | ||
1090 | # CONFIG_SMB_NLS_DEFAULT is not set | ||
1091 | CONFIG_CIFS=m | ||
1092 | # CONFIG_CIFS_STATS is not set | ||
1093 | # CONFIG_CIFS_WEAK_PW_HASH is not set | ||
1094 | # CONFIG_CIFS_XATTR is not set | ||
1095 | # CONFIG_CIFS_DEBUG2 is not set | ||
1096 | # CONFIG_CIFS_EXPERIMENTAL is not set | ||
1097 | # CONFIG_NCP_FS is not set | ||
1098 | # CONFIG_CODA_FS is not set | ||
1099 | # CONFIG_AFS_FS is not set | ||
1100 | |||
1101 | # | ||
1102 | # Partition Types | ||
1103 | # | ||
1104 | # CONFIG_PARTITION_ADVANCED is not set | ||
1105 | CONFIG_MSDOS_PARTITION=y | ||
1106 | CONFIG_NLS=m | ||
1107 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
1108 | CONFIG_NLS_CODEPAGE_437=m | ||
1109 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
1110 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
1111 | CONFIG_NLS_CODEPAGE_850=m | ||
1112 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
1113 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
1114 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
1115 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
1116 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
1117 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
1118 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
1119 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
1120 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
1121 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
1122 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
1123 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
1124 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
1125 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
1126 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
1127 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
1128 | # CONFIG_NLS_ISO8859_8 is not set | ||
1129 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
1130 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
1131 | # CONFIG_NLS_ASCII is not set | ||
1132 | CONFIG_NLS_ISO8859_1=m | ||
1133 | # CONFIG_NLS_ISO8859_2 is not set | ||
1134 | # CONFIG_NLS_ISO8859_3 is not set | ||
1135 | # CONFIG_NLS_ISO8859_4 is not set | ||
1136 | # CONFIG_NLS_ISO8859_5 is not set | ||
1137 | # CONFIG_NLS_ISO8859_6 is not set | ||
1138 | # CONFIG_NLS_ISO8859_7 is not set | ||
1139 | # CONFIG_NLS_ISO8859_9 is not set | ||
1140 | # CONFIG_NLS_ISO8859_13 is not set | ||
1141 | # CONFIG_NLS_ISO8859_14 is not set | ||
1142 | # CONFIG_NLS_ISO8859_15 is not set | ||
1143 | # CONFIG_NLS_KOI8_R is not set | ||
1144 | # CONFIG_NLS_KOI8_U is not set | ||
1145 | CONFIG_NLS_UTF8=m | ||
1146 | # CONFIG_DLM is not set | ||
1147 | |||
1148 | # | ||
1149 | # Kernel hacking | ||
1150 | # | ||
1151 | # CONFIG_PRINTK_TIME is not set | ||
1152 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
1153 | CONFIG_ENABLE_MUST_CHECK=y | ||
1154 | CONFIG_MAGIC_SYSRQ=y | ||
1155 | # CONFIG_UNUSED_SYMBOLS is not set | ||
1156 | # CONFIG_DEBUG_FS is not set | ||
1157 | # CONFIG_HEADERS_CHECK is not set | ||
1158 | CONFIG_DEBUG_KERNEL=y | ||
1159 | # CONFIG_DEBUG_SHIRQ is not set | ||
1160 | CONFIG_DETECT_SOFTLOCKUP=y | ||
1161 | CONFIG_SCHED_DEBUG=y | ||
1162 | # CONFIG_SCHEDSTATS is not set | ||
1163 | # CONFIG_TIMER_STATS is not set | ||
1164 | # CONFIG_SLUB_DEBUG_ON is not set | ||
1165 | # CONFIG_SLUB_STATS is not set | ||
1166 | # CONFIG_DEBUG_RT_MUTEXES is not set | ||
1167 | # CONFIG_RT_MUTEX_TESTER is not set | ||
1168 | # CONFIG_DEBUG_SPINLOCK is not set | ||
1169 | # CONFIG_DEBUG_MUTEXES is not set | ||
1170 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
1171 | # CONFIG_PROVE_LOCKING is not set | ||
1172 | # CONFIG_LOCK_STAT is not set | ||
1173 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
1174 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | ||
1175 | # CONFIG_DEBUG_KOBJECT is not set | ||
1176 | CONFIG_DEBUG_BUGVERBOSE=y | ||
1177 | # CONFIG_DEBUG_INFO is not set | ||
1178 | # CONFIG_DEBUG_VM is not set | ||
1179 | # CONFIG_DEBUG_LIST is not set | ||
1180 | # CONFIG_DEBUG_SG is not set | ||
1181 | CONFIG_FRAME_POINTER=y | ||
1182 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
1183 | # CONFIG_RCU_TORTURE_TEST is not set | ||
1184 | # CONFIG_KPROBES_SANITY_TEST is not set | ||
1185 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
1186 | # CONFIG_LKDTM is not set | ||
1187 | # CONFIG_FAULT_INJECTION is not set | ||
1188 | # CONFIG_SAMPLES is not set | ||
1189 | |||
1190 | # | ||
1191 | # Security options | ||
1192 | # | ||
1193 | # CONFIG_KEYS is not set | ||
1194 | # CONFIG_SECURITY is not set | ||
1195 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
1196 | CONFIG_CRYPTO=y | ||
1197 | CONFIG_CRYPTO_ALGAPI=y | ||
1198 | CONFIG_CRYPTO_AEAD=y | ||
1199 | CONFIG_CRYPTO_BLKCIPHER=y | ||
1200 | # CONFIG_CRYPTO_SEQIV is not set | ||
1201 | CONFIG_CRYPTO_HASH=y | ||
1202 | CONFIG_CRYPTO_MANAGER=y | ||
1203 | CONFIG_CRYPTO_HMAC=y | ||
1204 | # CONFIG_CRYPTO_XCBC is not set | ||
1205 | # CONFIG_CRYPTO_NULL is not set | ||
1206 | # CONFIG_CRYPTO_MD4 is not set | ||
1207 | CONFIG_CRYPTO_MD5=y | ||
1208 | CONFIG_CRYPTO_SHA1=y | ||
1209 | # CONFIG_CRYPTO_SHA256 is not set | ||
1210 | # CONFIG_CRYPTO_SHA512 is not set | ||
1211 | # CONFIG_CRYPTO_WP512 is not set | ||
1212 | # CONFIG_CRYPTO_TGR192 is not set | ||
1213 | # CONFIG_CRYPTO_GF128MUL is not set | ||
1214 | CONFIG_CRYPTO_ECB=m | ||
1215 | CONFIG_CRYPTO_CBC=y | ||
1216 | # CONFIG_CRYPTO_PCBC is not set | ||
1217 | # CONFIG_CRYPTO_LRW is not set | ||
1218 | # CONFIG_CRYPTO_XTS is not set | ||
1219 | # CONFIG_CRYPTO_CTR is not set | ||
1220 | # CONFIG_CRYPTO_GCM is not set | ||
1221 | # CONFIG_CRYPTO_CCM is not set | ||
1222 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1223 | CONFIG_CRYPTO_DES=y | ||
1224 | # CONFIG_CRYPTO_FCRYPT is not set | ||
1225 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
1226 | # CONFIG_CRYPTO_TWOFISH is not set | ||
1227 | # CONFIG_CRYPTO_SERPENT is not set | ||
1228 | # CONFIG_CRYPTO_AES is not set | ||
1229 | # CONFIG_CRYPTO_CAST5 is not set | ||
1230 | # CONFIG_CRYPTO_CAST6 is not set | ||
1231 | # CONFIG_CRYPTO_TEA is not set | ||
1232 | CONFIG_CRYPTO_ARC4=m | ||
1233 | # CONFIG_CRYPTO_KHAZAD is not set | ||
1234 | # CONFIG_CRYPTO_ANUBIS is not set | ||
1235 | # CONFIG_CRYPTO_SEED is not set | ||
1236 | # CONFIG_CRYPTO_SALSA20 is not set | ||
1237 | CONFIG_CRYPTO_DEFLATE=y | ||
1238 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
1239 | # CONFIG_CRYPTO_CRC32C is not set | ||
1240 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1241 | # CONFIG_CRYPTO_TEST is not set | ||
1242 | CONFIG_CRYPTO_AUTHENC=y | ||
1243 | CONFIG_CRYPTO_LZO=y | ||
1244 | CONFIG_CRYPTO_HW=y | ||
1245 | |||
1246 | # | ||
1247 | # Library routines | ||
1248 | # | ||
1249 | CONFIG_BITREVERSE=y | ||
1250 | CONFIG_CRC_CCITT=m | ||
1251 | CONFIG_CRC16=y | ||
1252 | # CONFIG_CRC_ITU_T is not set | ||
1253 | CONFIG_CRC32=y | ||
1254 | # CONFIG_CRC7 is not set | ||
1255 | # CONFIG_LIBCRC32C is not set | ||
1256 | CONFIG_ZLIB_INFLATE=y | ||
1257 | CONFIG_ZLIB_DEFLATE=y | ||
1258 | CONFIG_LZO_COMPRESS=y | ||
1259 | CONFIG_LZO_DECOMPRESS=y | ||
1260 | CONFIG_GENERIC_ALLOCATOR=y | ||
1261 | CONFIG_PLIST=y | ||
1262 | CONFIG_HAS_IOMEM=y | ||
1263 | CONFIG_HAS_IOPORT=y | ||
1264 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/avr32/configs/favr-32_defconfig b/arch/avr32/configs/favr-32_defconfig new file mode 100644 index 000000000000..e2bd9982e2af --- /dev/null +++ b/arch/avr32/configs/favr-32_defconfig | |||
@@ -0,0 +1,1235 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.27-rc8 | ||
4 | # Tue Oct 14 13:20:41 2008 | ||
5 | # | ||
6 | CONFIG_AVR32=y | ||
7 | CONFIG_GENERIC_GPIO=y | ||
8 | CONFIG_GENERIC_HARDIRQS=y | ||
9 | CONFIG_STACKTRACE_SUPPORT=y | ||
10 | CONFIG_LOCKDEP_SUPPORT=y | ||
11 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
12 | CONFIG_HARDIRQS_SW_RESEND=y | ||
13 | CONFIG_GENERIC_IRQ_PROBE=y | ||
14 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
15 | CONFIG_GENERIC_TIME=y | ||
16 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
17 | # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set | ||
18 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
19 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
20 | CONFIG_GENERIC_HWEIGHT=y | ||
21 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
22 | CONFIG_GENERIC_BUG=y | ||
23 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
24 | |||
25 | # | ||
26 | # General setup | ||
27 | # | ||
28 | CONFIG_EXPERIMENTAL=y | ||
29 | CONFIG_BROKEN_ON_SMP=y | ||
30 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
31 | CONFIG_LOCALVERSION="" | ||
32 | # CONFIG_LOCALVERSION_AUTO is not set | ||
33 | CONFIG_SWAP=y | ||
34 | CONFIG_SYSVIPC=y | ||
35 | CONFIG_SYSVIPC_SYSCTL=y | ||
36 | CONFIG_POSIX_MQUEUE=y | ||
37 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
38 | # CONFIG_TASKSTATS is not set | ||
39 | # CONFIG_AUDIT is not set | ||
40 | # CONFIG_IKCONFIG is not set | ||
41 | CONFIG_LOG_BUF_SHIFT=14 | ||
42 | # CONFIG_CGROUPS is not set | ||
43 | # CONFIG_GROUP_SCHED is not set | ||
44 | CONFIG_SYSFS_DEPRECATED=y | ||
45 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
46 | CONFIG_RELAY=y | ||
47 | # CONFIG_NAMESPACES is not set | ||
48 | CONFIG_BLK_DEV_INITRD=y | ||
49 | CONFIG_INITRAMFS_SOURCE="" | ||
50 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
51 | CONFIG_SYSCTL=y | ||
52 | CONFIG_EMBEDDED=y | ||
53 | # CONFIG_SYSCTL_SYSCALL is not set | ||
54 | CONFIG_KALLSYMS=y | ||
55 | # CONFIG_KALLSYMS_ALL is not set | ||
56 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
57 | CONFIG_HOTPLUG=y | ||
58 | CONFIG_PRINTK=y | ||
59 | CONFIG_BUG=y | ||
60 | CONFIG_ELF_CORE=y | ||
61 | # CONFIG_COMPAT_BRK is not set | ||
62 | # CONFIG_BASE_FULL is not set | ||
63 | CONFIG_FUTEX=y | ||
64 | CONFIG_ANON_INODES=y | ||
65 | CONFIG_EPOLL=y | ||
66 | CONFIG_SIGNALFD=y | ||
67 | CONFIG_TIMERFD=y | ||
68 | CONFIG_EVENTFD=y | ||
69 | CONFIG_SHMEM=y | ||
70 | CONFIG_VM_EVENT_COUNTERS=y | ||
71 | CONFIG_SLUB_DEBUG=y | ||
72 | # CONFIG_SLAB is not set | ||
73 | CONFIG_SLUB=y | ||
74 | # CONFIG_SLOB is not set | ||
75 | CONFIG_PROFILING=y | ||
76 | # CONFIG_MARKERS is not set | ||
77 | CONFIG_OPROFILE=m | ||
78 | CONFIG_HAVE_OPROFILE=y | ||
79 | CONFIG_KPROBES=y | ||
80 | # CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set | ||
81 | # CONFIG_HAVE_IOREMAP_PROT is not set | ||
82 | CONFIG_HAVE_KPROBES=y | ||
83 | # CONFIG_HAVE_KRETPROBES is not set | ||
84 | # CONFIG_HAVE_ARCH_TRACEHOOK is not set | ||
85 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
86 | # CONFIG_USE_GENERIC_SMP_HELPERS is not set | ||
87 | CONFIG_HAVE_CLK=y | ||
88 | CONFIG_PROC_PAGE_MONITOR=y | ||
89 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | ||
90 | CONFIG_SLABINFO=y | ||
91 | CONFIG_RT_MUTEXES=y | ||
92 | # CONFIG_TINY_SHMEM is not set | ||
93 | CONFIG_BASE_SMALL=1 | ||
94 | CONFIG_MODULES=y | ||
95 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
96 | CONFIG_MODULE_UNLOAD=y | ||
97 | # CONFIG_MODULE_FORCE_UNLOAD is not set | ||
98 | # CONFIG_MODVERSIONS is not set | ||
99 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
100 | CONFIG_KMOD=y | ||
101 | CONFIG_BLOCK=y | ||
102 | # CONFIG_LBD is not set | ||
103 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
104 | # CONFIG_LSF is not set | ||
105 | # CONFIG_BLK_DEV_BSG is not set | ||
106 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
107 | |||
108 | # | ||
109 | # IO Schedulers | ||
110 | # | ||
111 | CONFIG_IOSCHED_NOOP=y | ||
112 | # CONFIG_IOSCHED_AS is not set | ||
113 | # CONFIG_IOSCHED_DEADLINE is not set | ||
114 | CONFIG_IOSCHED_CFQ=y | ||
115 | # CONFIG_DEFAULT_AS is not set | ||
116 | # CONFIG_DEFAULT_DEADLINE is not set | ||
117 | CONFIG_DEFAULT_CFQ=y | ||
118 | # CONFIG_DEFAULT_NOOP is not set | ||
119 | CONFIG_DEFAULT_IOSCHED="cfq" | ||
120 | CONFIG_CLASSIC_RCU=y | ||
121 | |||
122 | # | ||
123 | # System Type and features | ||
124 | # | ||
125 | CONFIG_TICK_ONESHOT=y | ||
126 | CONFIG_NO_HZ=y | ||
127 | CONFIG_HIGH_RES_TIMERS=y | ||
128 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
129 | CONFIG_SUBARCH_AVR32B=y | ||
130 | CONFIG_MMU=y | ||
131 | CONFIG_PERFORMANCE_COUNTERS=y | ||
132 | CONFIG_PLATFORM_AT32AP=y | ||
133 | CONFIG_CPU_AT32AP700X=y | ||
134 | CONFIG_CPU_AT32AP7000=y | ||
135 | # CONFIG_BOARD_ATSTK1000 is not set | ||
136 | # CONFIG_BOARD_ATNGW100 is not set | ||
137 | CONFIG_BOARD_FAVR_32=y | ||
138 | # CONFIG_BOARD_MIMC200 is not set | ||
139 | CONFIG_BOARD_FAVR32_ABDAC_RATE=44100 | ||
140 | CONFIG_LOADER_U_BOOT=y | ||
141 | |||
142 | # | ||
143 | # Atmel AVR32 AP options | ||
144 | # | ||
145 | # CONFIG_AP700X_32_BIT_SMC is not set | ||
146 | CONFIG_AP700X_16_BIT_SMC=y | ||
147 | # CONFIG_AP700X_8_BIT_SMC is not set | ||
148 | CONFIG_LOAD_ADDRESS=0x10000000 | ||
149 | CONFIG_ENTRY_ADDRESS=0x90000000 | ||
150 | CONFIG_PHYS_OFFSET=0x10000000 | ||
151 | CONFIG_PREEMPT_NONE=y | ||
152 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
153 | # CONFIG_PREEMPT is not set | ||
154 | CONFIG_QUICKLIST=y | ||
155 | # CONFIG_HAVE_ARCH_BOOTMEM_NODE is not set | ||
156 | # CONFIG_ARCH_HAVE_MEMORY_PRESENT is not set | ||
157 | # CONFIG_NEED_NODE_MEMMAP_SIZE is not set | ||
158 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
159 | # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set | ||
160 | # CONFIG_ARCH_SPARSEMEM_ENABLE is not set | ||
161 | CONFIG_SELECT_MEMORY_MODEL=y | ||
162 | CONFIG_FLATMEM_MANUAL=y | ||
163 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
164 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
165 | CONFIG_FLATMEM=y | ||
166 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
167 | # CONFIG_SPARSEMEM_STATIC is not set | ||
168 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
169 | CONFIG_PAGEFLAGS_EXTENDED=y | ||
170 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
171 | # CONFIG_RESOURCES_64BIT is not set | ||
172 | CONFIG_ZONE_DMA_FLAG=0 | ||
173 | CONFIG_NR_QUICK=2 | ||
174 | CONFIG_VIRT_TO_BUS=y | ||
175 | # CONFIG_OWNERSHIP_TRACE is not set | ||
176 | CONFIG_NMI_DEBUGGING=y | ||
177 | # CONFIG_HZ_100 is not set | ||
178 | CONFIG_HZ_250=y | ||
179 | # CONFIG_HZ_300 is not set | ||
180 | # CONFIG_HZ_1000 is not set | ||
181 | CONFIG_HZ=250 | ||
182 | CONFIG_SCHED_HRTICK=y | ||
183 | CONFIG_CMDLINE="" | ||
184 | |||
185 | # | ||
186 | # Power management options | ||
187 | # | ||
188 | CONFIG_PM=y | ||
189 | # CONFIG_PM_DEBUG is not set | ||
190 | CONFIG_PM_SLEEP=y | ||
191 | CONFIG_SUSPEND=y | ||
192 | CONFIG_SUSPEND_FREEZER=y | ||
193 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
194 | |||
195 | # | ||
196 | # CPU Frequency scaling | ||
197 | # | ||
198 | CONFIG_CPU_FREQ=y | ||
199 | CONFIG_CPU_FREQ_TABLE=y | ||
200 | # CONFIG_CPU_FREQ_DEBUG is not set | ||
201 | # CONFIG_CPU_FREQ_STAT is not set | ||
202 | # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set | ||
203 | # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set | ||
204 | # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set | ||
205 | CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y | ||
206 | # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set | ||
207 | CONFIG_CPU_FREQ_GOV_PERFORMANCE=y | ||
208 | # CONFIG_CPU_FREQ_GOV_POWERSAVE is not set | ||
209 | CONFIG_CPU_FREQ_GOV_USERSPACE=y | ||
210 | CONFIG_CPU_FREQ_GOV_ONDEMAND=y | ||
211 | # CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set | ||
212 | CONFIG_CPU_FREQ_AT32AP=y | ||
213 | |||
214 | # | ||
215 | # Bus options | ||
216 | # | ||
217 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
218 | # CONFIG_PCCARD is not set | ||
219 | |||
220 | # | ||
221 | # Executable file formats | ||
222 | # | ||
223 | CONFIG_BINFMT_ELF=y | ||
224 | # CONFIG_BINFMT_MISC is not set | ||
225 | CONFIG_NET=y | ||
226 | |||
227 | # | ||
228 | # Networking options | ||
229 | # | ||
230 | CONFIG_PACKET=y | ||
231 | CONFIG_PACKET_MMAP=y | ||
232 | CONFIG_UNIX=y | ||
233 | CONFIG_XFRM=y | ||
234 | CONFIG_XFRM_USER=m | ||
235 | # CONFIG_XFRM_SUB_POLICY is not set | ||
236 | # CONFIG_XFRM_MIGRATE is not set | ||
237 | # CONFIG_XFRM_STATISTICS is not set | ||
238 | CONFIG_XFRM_IPCOMP=m | ||
239 | CONFIG_NET_KEY=m | ||
240 | # CONFIG_NET_KEY_MIGRATE is not set | ||
241 | CONFIG_INET=y | ||
242 | # CONFIG_IP_MULTICAST is not set | ||
243 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
244 | CONFIG_IP_FIB_HASH=y | ||
245 | CONFIG_IP_PNP=y | ||
246 | CONFIG_IP_PNP_DHCP=y | ||
247 | # CONFIG_IP_PNP_BOOTP is not set | ||
248 | # CONFIG_IP_PNP_RARP is not set | ||
249 | CONFIG_NET_IPIP=m | ||
250 | CONFIG_NET_IPGRE=m | ||
251 | # CONFIG_ARPD is not set | ||
252 | # CONFIG_SYN_COOKIES is not set | ||
253 | CONFIG_INET_AH=m | ||
254 | CONFIG_INET_ESP=m | ||
255 | # CONFIG_INET_IPCOMP is not set | ||
256 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
257 | CONFIG_INET_TUNNEL=m | ||
258 | CONFIG_INET_XFRM_MODE_TRANSPORT=m | ||
259 | CONFIG_INET_XFRM_MODE_TUNNEL=m | ||
260 | CONFIG_INET_XFRM_MODE_BEET=m | ||
261 | # CONFIG_INET_LRO is not set | ||
262 | CONFIG_INET_DIAG=y | ||
263 | CONFIG_INET_TCP_DIAG=y | ||
264 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
265 | CONFIG_TCP_CONG_CUBIC=y | ||
266 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
267 | # CONFIG_TCP_MD5SIG is not set | ||
268 | CONFIG_IPV6=y | ||
269 | # CONFIG_IPV6_PRIVACY is not set | ||
270 | # CONFIG_IPV6_ROUTER_PREF is not set | ||
271 | # CONFIG_IPV6_OPTIMISTIC_DAD is not set | ||
272 | CONFIG_INET6_AH=m | ||
273 | CONFIG_INET6_ESP=m | ||
274 | CONFIG_INET6_IPCOMP=m | ||
275 | # CONFIG_IPV6_MIP6 is not set | ||
276 | CONFIG_INET6_XFRM_TUNNEL=m | ||
277 | CONFIG_INET6_TUNNEL=m | ||
278 | CONFIG_INET6_XFRM_MODE_TRANSPORT=m | ||
279 | CONFIG_INET6_XFRM_MODE_TUNNEL=m | ||
280 | CONFIG_INET6_XFRM_MODE_BEET=m | ||
281 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | ||
282 | CONFIG_IPV6_SIT=m | ||
283 | CONFIG_IPV6_NDISC_NODETYPE=y | ||
284 | CONFIG_IPV6_TUNNEL=m | ||
285 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | ||
286 | # CONFIG_IPV6_MROUTE is not set | ||
287 | # CONFIG_NETWORK_SECMARK is not set | ||
288 | # CONFIG_NETFILTER is not set | ||
289 | # CONFIG_IP_DCCP is not set | ||
290 | # CONFIG_IP_SCTP is not set | ||
291 | # CONFIG_TIPC is not set | ||
292 | # CONFIG_ATM is not set | ||
293 | CONFIG_STP=m | ||
294 | CONFIG_BRIDGE=m | ||
295 | # CONFIG_VLAN_8021Q is not set | ||
296 | # CONFIG_DECNET is not set | ||
297 | CONFIG_LLC=m | ||
298 | # CONFIG_LLC2 is not set | ||
299 | # CONFIG_IPX is not set | ||
300 | # CONFIG_ATALK is not set | ||
301 | # CONFIG_X25 is not set | ||
302 | # CONFIG_LAPB is not set | ||
303 | # CONFIG_ECONET is not set | ||
304 | # CONFIG_WAN_ROUTER is not set | ||
305 | # CONFIG_NET_SCHED is not set | ||
306 | |||
307 | # | ||
308 | # Network testing | ||
309 | # | ||
310 | # CONFIG_NET_PKTGEN is not set | ||
311 | # CONFIG_NET_TCPPROBE is not set | ||
312 | # CONFIG_HAMRADIO is not set | ||
313 | # CONFIG_CAN is not set | ||
314 | # CONFIG_IRDA is not set | ||
315 | # CONFIG_BT is not set | ||
316 | # CONFIG_AF_RXRPC is not set | ||
317 | |||
318 | # | ||
319 | # Wireless | ||
320 | # | ||
321 | # CONFIG_CFG80211 is not set | ||
322 | # CONFIG_WIRELESS_EXT is not set | ||
323 | # CONFIG_MAC80211 is not set | ||
324 | # CONFIG_IEEE80211 is not set | ||
325 | # CONFIG_RFKILL is not set | ||
326 | # CONFIG_NET_9P is not set | ||
327 | |||
328 | # | ||
329 | # Device Drivers | ||
330 | # | ||
331 | |||
332 | # | ||
333 | # Generic Driver Options | ||
334 | # | ||
335 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
336 | CONFIG_STANDALONE=y | ||
337 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | ||
338 | # CONFIG_FW_LOADER is not set | ||
339 | # CONFIG_DEBUG_DRIVER is not set | ||
340 | # CONFIG_DEBUG_DEVRES is not set | ||
341 | # CONFIG_SYS_HYPERVISOR is not set | ||
342 | # CONFIG_CONNECTOR is not set | ||
343 | CONFIG_MTD=y | ||
344 | # CONFIG_MTD_DEBUG is not set | ||
345 | # CONFIG_MTD_CONCAT is not set | ||
346 | CONFIG_MTD_PARTITIONS=y | ||
347 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
348 | CONFIG_MTD_CMDLINE_PARTS=y | ||
349 | # CONFIG_MTD_AR7_PARTS is not set | ||
350 | |||
351 | # | ||
352 | # User Modules And Translation Layers | ||
353 | # | ||
354 | CONFIG_MTD_CHAR=y | ||
355 | CONFIG_MTD_BLKDEVS=y | ||
356 | CONFIG_MTD_BLOCK=y | ||
357 | # CONFIG_FTL is not set | ||
358 | # CONFIG_NFTL is not set | ||
359 | # CONFIG_INFTL is not set | ||
360 | # CONFIG_RFD_FTL is not set | ||
361 | # CONFIG_SSFDC is not set | ||
362 | # CONFIG_MTD_OOPS is not set | ||
363 | |||
364 | # | ||
365 | # RAM/ROM/Flash chip drivers | ||
366 | # | ||
367 | CONFIG_MTD_CFI=y | ||
368 | # CONFIG_MTD_JEDECPROBE is not set | ||
369 | CONFIG_MTD_GEN_PROBE=y | ||
370 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
371 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
372 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
373 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
374 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
375 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
376 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
377 | CONFIG_MTD_CFI_I1=y | ||
378 | CONFIG_MTD_CFI_I2=y | ||
379 | # CONFIG_MTD_CFI_I4 is not set | ||
380 | # CONFIG_MTD_CFI_I8 is not set | ||
381 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
382 | CONFIG_MTD_CFI_AMDSTD=y | ||
383 | # CONFIG_MTD_CFI_STAA is not set | ||
384 | CONFIG_MTD_CFI_UTIL=y | ||
385 | # CONFIG_MTD_RAM is not set | ||
386 | # CONFIG_MTD_ROM is not set | ||
387 | # CONFIG_MTD_ABSENT is not set | ||
388 | |||
389 | # | ||
390 | # Mapping drivers for chip access | ||
391 | # | ||
392 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
393 | CONFIG_MTD_PHYSMAP=y | ||
394 | CONFIG_MTD_PHYSMAP_START=0x8000000 | ||
395 | CONFIG_MTD_PHYSMAP_LEN=0x0 | ||
396 | CONFIG_MTD_PHYSMAP_BANKWIDTH=2 | ||
397 | # CONFIG_MTD_PLATRAM is not set | ||
398 | |||
399 | # | ||
400 | # Self-contained MTD device drivers | ||
401 | # | ||
402 | # CONFIG_MTD_DATAFLASH is not set | ||
403 | # CONFIG_MTD_M25P80 is not set | ||
404 | # CONFIG_MTD_SLRAM is not set | ||
405 | # CONFIG_MTD_PHRAM is not set | ||
406 | # CONFIG_MTD_MTDRAM is not set | ||
407 | # CONFIG_MTD_BLOCK2MTD is not set | ||
408 | |||
409 | # | ||
410 | # Disk-On-Chip Device Drivers | ||
411 | # | ||
412 | # CONFIG_MTD_DOC2000 is not set | ||
413 | # CONFIG_MTD_DOC2001 is not set | ||
414 | # CONFIG_MTD_DOC2001PLUS is not set | ||
415 | # CONFIG_MTD_NAND is not set | ||
416 | # CONFIG_MTD_ONENAND is not set | ||
417 | |||
418 | # | ||
419 | # UBI - Unsorted block images | ||
420 | # | ||
421 | # CONFIG_MTD_UBI is not set | ||
422 | # CONFIG_PARPORT is not set | ||
423 | CONFIG_BLK_DEV=y | ||
424 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
425 | CONFIG_BLK_DEV_LOOP=m | ||
426 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
427 | CONFIG_BLK_DEV_NBD=m | ||
428 | CONFIG_BLK_DEV_RAM=m | ||
429 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
430 | CONFIG_BLK_DEV_RAM_SIZE=4096 | ||
431 | # CONFIG_BLK_DEV_XIP is not set | ||
432 | # CONFIG_CDROM_PKTCDVD is not set | ||
433 | # CONFIG_ATA_OVER_ETH is not set | ||
434 | CONFIG_MISC_DEVICES=y | ||
435 | CONFIG_ATMEL_PWM=m | ||
436 | CONFIG_ATMEL_TCLIB=y | ||
437 | CONFIG_ATMEL_TCB_CLKSRC=y | ||
438 | CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0 | ||
439 | # CONFIG_EEPROM_93CX6 is not set | ||
440 | CONFIG_ATMEL_SSC=m | ||
441 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
442 | # CONFIG_HAVE_IDE is not set | ||
443 | |||
444 | # | ||
445 | # SCSI device support | ||
446 | # | ||
447 | # CONFIG_RAID_ATTRS is not set | ||
448 | # CONFIG_SCSI is not set | ||
449 | # CONFIG_SCSI_DMA is not set | ||
450 | # CONFIG_SCSI_NETLINK is not set | ||
451 | # CONFIG_ATA is not set | ||
452 | # CONFIG_MD is not set | ||
453 | CONFIG_NETDEVICES=y | ||
454 | # CONFIG_DUMMY is not set | ||
455 | # CONFIG_BONDING is not set | ||
456 | # CONFIG_MACVLAN is not set | ||
457 | # CONFIG_EQUALIZER is not set | ||
458 | # CONFIG_TUN is not set | ||
459 | # CONFIG_VETH is not set | ||
460 | CONFIG_PHYLIB=y | ||
461 | |||
462 | # | ||
463 | # MII PHY device drivers | ||
464 | # | ||
465 | # CONFIG_MARVELL_PHY is not set | ||
466 | # CONFIG_DAVICOM_PHY is not set | ||
467 | # CONFIG_QSEMI_PHY is not set | ||
468 | # CONFIG_LXT_PHY is not set | ||
469 | # CONFIG_CICADA_PHY is not set | ||
470 | # CONFIG_VITESSE_PHY is not set | ||
471 | # CONFIG_SMSC_PHY is not set | ||
472 | # CONFIG_BROADCOM_PHY is not set | ||
473 | # CONFIG_ICPLUS_PHY is not set | ||
474 | # CONFIG_REALTEK_PHY is not set | ||
475 | # CONFIG_FIXED_PHY is not set | ||
476 | # CONFIG_MDIO_BITBANG is not set | ||
477 | CONFIG_NET_ETHERNET=y | ||
478 | # CONFIG_MII is not set | ||
479 | CONFIG_MACB=y | ||
480 | # CONFIG_ENC28J60 is not set | ||
481 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
482 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
483 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
484 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
485 | # CONFIG_B44 is not set | ||
486 | # CONFIG_NETDEV_1000 is not set | ||
487 | # CONFIG_NETDEV_10000 is not set | ||
488 | |||
489 | # | ||
490 | # Wireless LAN | ||
491 | # | ||
492 | # CONFIG_WLAN_PRE80211 is not set | ||
493 | # CONFIG_WLAN_80211 is not set | ||
494 | # CONFIG_IWLWIFI_LEDS is not set | ||
495 | # CONFIG_WAN is not set | ||
496 | CONFIG_PPP=m | ||
497 | # CONFIG_PPP_MULTILINK is not set | ||
498 | # CONFIG_PPP_FILTER is not set | ||
499 | CONFIG_PPP_ASYNC=m | ||
500 | # CONFIG_PPP_SYNC_TTY is not set | ||
501 | CONFIG_PPP_DEFLATE=m | ||
502 | CONFIG_PPP_BSDCOMP=m | ||
503 | # CONFIG_PPP_MPPE is not set | ||
504 | # CONFIG_PPPOE is not set | ||
505 | # CONFIG_PPPOL2TP is not set | ||
506 | # CONFIG_SLIP is not set | ||
507 | CONFIG_SLHC=m | ||
508 | # CONFIG_NETCONSOLE is not set | ||
509 | # CONFIG_NETPOLL is not set | ||
510 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
511 | # CONFIG_ISDN is not set | ||
512 | # CONFIG_PHONE is not set | ||
513 | |||
514 | # | ||
515 | # Input device support | ||
516 | # | ||
517 | CONFIG_INPUT=y | ||
518 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
519 | CONFIG_INPUT_POLLDEV=m | ||
520 | |||
521 | # | ||
522 | # Userland interfaces | ||
523 | # | ||
524 | CONFIG_INPUT_MOUSEDEV=m | ||
525 | CONFIG_INPUT_MOUSEDEV_PSAUX=y | ||
526 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
527 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
528 | # CONFIG_INPUT_JOYDEV is not set | ||
529 | CONFIG_INPUT_EVDEV=m | ||
530 | # CONFIG_INPUT_EVBUG is not set | ||
531 | |||
532 | # | ||
533 | # Input Device Drivers | ||
534 | # | ||
535 | CONFIG_INPUT_KEYBOARD=y | ||
536 | # CONFIG_KEYBOARD_ATKBD is not set | ||
537 | # CONFIG_KEYBOARD_SUNKBD is not set | ||
538 | # CONFIG_KEYBOARD_LKKBD is not set | ||
539 | # CONFIG_KEYBOARD_XTKBD is not set | ||
540 | # CONFIG_KEYBOARD_NEWTON is not set | ||
541 | # CONFIG_KEYBOARD_STOWAWAY is not set | ||
542 | CONFIG_KEYBOARD_GPIO=m | ||
543 | CONFIG_INPUT_MOUSE=y | ||
544 | # CONFIG_MOUSE_PS2 is not set | ||
545 | # CONFIG_MOUSE_SERIAL is not set | ||
546 | # CONFIG_MOUSE_VSXXXAA is not set | ||
547 | CONFIG_MOUSE_GPIO=m | ||
548 | # CONFIG_INPUT_JOYSTICK is not set | ||
549 | # CONFIG_INPUT_TABLET is not set | ||
550 | CONFIG_INPUT_TOUCHSCREEN=y | ||
551 | CONFIG_TOUCHSCREEN_ADS7846=m | ||
552 | # CONFIG_TOUCHSCREEN_FUJITSU is not set | ||
553 | # CONFIG_TOUCHSCREEN_GUNZE is not set | ||
554 | # CONFIG_TOUCHSCREEN_ELO is not set | ||
555 | # CONFIG_TOUCHSCREEN_MTOUCH is not set | ||
556 | # CONFIG_TOUCHSCREEN_INEXIO is not set | ||
557 | # CONFIG_TOUCHSCREEN_MK712 is not set | ||
558 | # CONFIG_TOUCHSCREEN_PENMOUNT is not set | ||
559 | # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set | ||
560 | # CONFIG_TOUCHSCREEN_TOUCHWIN is not set | ||
561 | # CONFIG_TOUCHSCREEN_UCB1400 is not set | ||
562 | # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set | ||
563 | # CONFIG_INPUT_MISC is not set | ||
564 | |||
565 | # | ||
566 | # Hardware I/O ports | ||
567 | # | ||
568 | # CONFIG_SERIO is not set | ||
569 | # CONFIG_GAMEPORT is not set | ||
570 | |||
571 | # | ||
572 | # Character devices | ||
573 | # | ||
574 | CONFIG_VT=y | ||
575 | # CONFIG_CONSOLE_TRANSLATIONS is not set | ||
576 | CONFIG_VT_CONSOLE=y | ||
577 | CONFIG_HW_CONSOLE=y | ||
578 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | ||
579 | # CONFIG_DEVKMEM is not set | ||
580 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
581 | |||
582 | # | ||
583 | # Serial drivers | ||
584 | # | ||
585 | # CONFIG_SERIAL_8250 is not set | ||
586 | |||
587 | # | ||
588 | # Non-8250 serial port support | ||
589 | # | ||
590 | CONFIG_SERIAL_ATMEL=y | ||
591 | CONFIG_SERIAL_ATMEL_CONSOLE=y | ||
592 | CONFIG_SERIAL_ATMEL_PDC=y | ||
593 | # CONFIG_SERIAL_ATMEL_TTYAT is not set | ||
594 | CONFIG_SERIAL_CORE=y | ||
595 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
596 | CONFIG_UNIX98_PTYS=y | ||
597 | # CONFIG_LEGACY_PTYS is not set | ||
598 | # CONFIG_IPMI_HANDLER is not set | ||
599 | # CONFIG_HW_RANDOM is not set | ||
600 | # CONFIG_R3964 is not set | ||
601 | # CONFIG_RAW_DRIVER is not set | ||
602 | # CONFIG_TCG_TPM is not set | ||
603 | CONFIG_I2C=m | ||
604 | CONFIG_I2C_BOARDINFO=y | ||
605 | CONFIG_I2C_CHARDEV=m | ||
606 | CONFIG_I2C_HELPER_AUTO=y | ||
607 | CONFIG_I2C_ALGOBIT=m | ||
608 | |||
609 | # | ||
610 | # I2C Hardware Bus support | ||
611 | # | ||
612 | |||
613 | # | ||
614 | # I2C system bus drivers (mostly embedded / system-on-chip) | ||
615 | # | ||
616 | CONFIG_I2C_GPIO=m | ||
617 | # CONFIG_I2C_OCORES is not set | ||
618 | # CONFIG_I2C_SIMTEC is not set | ||
619 | |||
620 | # | ||
621 | # External I2C/SMBus adapter drivers | ||
622 | # | ||
623 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
624 | # CONFIG_I2C_TAOS_EVM is not set | ||
625 | |||
626 | # | ||
627 | # Other I2C/SMBus bus drivers | ||
628 | # | ||
629 | # CONFIG_I2C_PCA_PLATFORM is not set | ||
630 | # CONFIG_I2C_STUB is not set | ||
631 | |||
632 | # | ||
633 | # Miscellaneous I2C Chip support | ||
634 | # | ||
635 | # CONFIG_DS1682 is not set | ||
636 | # CONFIG_AT24 is not set | ||
637 | # CONFIG_SENSORS_EEPROM is not set | ||
638 | # CONFIG_SENSORS_PCF8574 is not set | ||
639 | # CONFIG_PCF8575 is not set | ||
640 | # CONFIG_SENSORS_PCA9539 is not set | ||
641 | # CONFIG_SENSORS_PCF8591 is not set | ||
642 | # CONFIG_TPS65010 is not set | ||
643 | # CONFIG_SENSORS_MAX6875 is not set | ||
644 | # CONFIG_SENSORS_TSL2550 is not set | ||
645 | # CONFIG_I2C_DEBUG_CORE is not set | ||
646 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
647 | # CONFIG_I2C_DEBUG_BUS is not set | ||
648 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
649 | CONFIG_SPI=y | ||
650 | # CONFIG_SPI_DEBUG is not set | ||
651 | CONFIG_SPI_MASTER=y | ||
652 | |||
653 | # | ||
654 | # SPI Master Controller Drivers | ||
655 | # | ||
656 | CONFIG_SPI_ATMEL=y | ||
657 | # CONFIG_SPI_BITBANG is not set | ||
658 | |||
659 | # | ||
660 | # SPI Protocol Masters | ||
661 | # | ||
662 | # CONFIG_SPI_AT25 is not set | ||
663 | CONFIG_SPI_SPIDEV=m | ||
664 | # CONFIG_SPI_TLE62X0 is not set | ||
665 | CONFIG_ARCH_REQUIRE_GPIOLIB=y | ||
666 | CONFIG_GPIOLIB=y | ||
667 | # CONFIG_DEBUG_GPIO is not set | ||
668 | CONFIG_GPIO_SYSFS=y | ||
669 | |||
670 | # | ||
671 | # I2C GPIO expanders: | ||
672 | # | ||
673 | # CONFIG_GPIO_MAX732X is not set | ||
674 | # CONFIG_GPIO_PCA953X is not set | ||
675 | # CONFIG_GPIO_PCF857X is not set | ||
676 | |||
677 | # | ||
678 | # PCI GPIO expanders: | ||
679 | # | ||
680 | |||
681 | # | ||
682 | # SPI GPIO expanders: | ||
683 | # | ||
684 | # CONFIG_GPIO_MAX7301 is not set | ||
685 | # CONFIG_GPIO_MCP23S08 is not set | ||
686 | # CONFIG_W1 is not set | ||
687 | # CONFIG_POWER_SUPPLY is not set | ||
688 | # CONFIG_HWMON is not set | ||
689 | # CONFIG_THERMAL is not set | ||
690 | # CONFIG_THERMAL_HWMON is not set | ||
691 | CONFIG_WATCHDOG=y | ||
692 | # CONFIG_WATCHDOG_NOWAYOUT is not set | ||
693 | |||
694 | # | ||
695 | # Watchdog Device Drivers | ||
696 | # | ||
697 | # CONFIG_SOFT_WATCHDOG is not set | ||
698 | CONFIG_AT32AP700X_WDT=y | ||
699 | |||
700 | # | ||
701 | # Sonics Silicon Backplane | ||
702 | # | ||
703 | CONFIG_SSB_POSSIBLE=y | ||
704 | # CONFIG_SSB is not set | ||
705 | |||
706 | # | ||
707 | # Multifunction device drivers | ||
708 | # | ||
709 | # CONFIG_MFD_CORE is not set | ||
710 | # CONFIG_MFD_SM501 is not set | ||
711 | # CONFIG_HTC_PASIC3 is not set | ||
712 | # CONFIG_MFD_TMIO is not set | ||
713 | |||
714 | # | ||
715 | # Multimedia devices | ||
716 | # | ||
717 | |||
718 | # | ||
719 | # Multimedia core support | ||
720 | # | ||
721 | # CONFIG_VIDEO_DEV is not set | ||
722 | # CONFIG_DVB_CORE is not set | ||
723 | # CONFIG_VIDEO_MEDIA is not set | ||
724 | |||
725 | # | ||
726 | # Multimedia drivers | ||
727 | # | ||
728 | # CONFIG_DAB is not set | ||
729 | |||
730 | # | ||
731 | # Graphics support | ||
732 | # | ||
733 | # CONFIG_VGASTATE is not set | ||
734 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
735 | CONFIG_FB=y | ||
736 | # CONFIG_FIRMWARE_EDID is not set | ||
737 | # CONFIG_FB_DDC is not set | ||
738 | CONFIG_FB_CFB_FILLRECT=y | ||
739 | CONFIG_FB_CFB_COPYAREA=y | ||
740 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
741 | # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set | ||
742 | # CONFIG_FB_SYS_FILLRECT is not set | ||
743 | # CONFIG_FB_SYS_COPYAREA is not set | ||
744 | # CONFIG_FB_SYS_IMAGEBLIT is not set | ||
745 | # CONFIG_FB_FOREIGN_ENDIAN is not set | ||
746 | # CONFIG_FB_SYS_FOPS is not set | ||
747 | # CONFIG_FB_SVGALIB is not set | ||
748 | # CONFIG_FB_MACMODES is not set | ||
749 | # CONFIG_FB_BACKLIGHT is not set | ||
750 | # CONFIG_FB_MODE_HELPERS is not set | ||
751 | # CONFIG_FB_TILEBLITTING is not set | ||
752 | |||
753 | # | ||
754 | # Frame buffer hardware drivers | ||
755 | # | ||
756 | # CONFIG_FB_S1D13XXX is not set | ||
757 | CONFIG_FB_ATMEL=y | ||
758 | # CONFIG_FB_VIRTUAL is not set | ||
759 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | ||
760 | # CONFIG_LCD_CLASS_DEVICE is not set | ||
761 | CONFIG_BACKLIGHT_CLASS_DEVICE=m | ||
762 | # CONFIG_BACKLIGHT_ATMEL_LCDC is not set | ||
763 | CONFIG_BACKLIGHT_ATMEL_PWM=m | ||
764 | # CONFIG_BACKLIGHT_CORGI is not set | ||
765 | |||
766 | # | ||
767 | # Display device support | ||
768 | # | ||
769 | # CONFIG_DISPLAY_SUPPORT is not set | ||
770 | |||
771 | # | ||
772 | # Console display driver support | ||
773 | # | ||
774 | CONFIG_DUMMY_CONSOLE=y | ||
775 | # CONFIG_FRAMEBUFFER_CONSOLE is not set | ||
776 | # CONFIG_LOGO is not set | ||
777 | CONFIG_SOUND=m | ||
778 | # CONFIG_SND is not set | ||
779 | CONFIG_SOUND_PRIME=m | ||
780 | # CONFIG_HID_SUPPORT is not set | ||
781 | CONFIG_USB_SUPPORT=y | ||
782 | # CONFIG_USB_ARCH_HAS_HCD is not set | ||
783 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
784 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
785 | # CONFIG_USB_OTG_WHITELIST is not set | ||
786 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | ||
787 | # CONFIG_USB_MUSB_HDRC is not set | ||
788 | # CONFIG_USB_GADGET_MUSB_HDRC is not set | ||
789 | |||
790 | # | ||
791 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
792 | # | ||
793 | CONFIG_USB_GADGET=y | ||
794 | # CONFIG_USB_GADGET_DEBUG is not set | ||
795 | # CONFIG_USB_GADGET_DEBUG_FILES is not set | ||
796 | # CONFIG_USB_GADGET_DEBUG_FS is not set | ||
797 | CONFIG_USB_GADGET_SELECTED=y | ||
798 | # CONFIG_USB_GADGET_AMD5536UDC is not set | ||
799 | CONFIG_USB_GADGET_ATMEL_USBA=y | ||
800 | CONFIG_USB_ATMEL_USBA=y | ||
801 | # CONFIG_USB_GADGET_FSL_USB2 is not set | ||
802 | # CONFIG_USB_GADGET_NET2280 is not set | ||
803 | # CONFIG_USB_GADGET_PXA25X is not set | ||
804 | # CONFIG_USB_GADGET_M66592 is not set | ||
805 | # CONFIG_USB_GADGET_PXA27X is not set | ||
806 | # CONFIG_USB_GADGET_GOKU is not set | ||
807 | # CONFIG_USB_GADGET_LH7A40X is not set | ||
808 | # CONFIG_USB_GADGET_OMAP is not set | ||
809 | # CONFIG_USB_GADGET_S3C2410 is not set | ||
810 | # CONFIG_USB_GADGET_AT91 is not set | ||
811 | # CONFIG_USB_GADGET_DUMMY_HCD is not set | ||
812 | CONFIG_USB_GADGET_DUALSPEED=y | ||
813 | CONFIG_USB_ZERO=m | ||
814 | CONFIG_USB_ETH=m | ||
815 | CONFIG_USB_ETH_RNDIS=y | ||
816 | CONFIG_USB_GADGETFS=m | ||
817 | CONFIG_USB_FILE_STORAGE=m | ||
818 | # CONFIG_USB_FILE_STORAGE_TEST is not set | ||
819 | CONFIG_USB_G_SERIAL=m | ||
820 | # CONFIG_USB_MIDI_GADGET is not set | ||
821 | # CONFIG_USB_G_PRINTER is not set | ||
822 | CONFIG_USB_CDC_COMPOSITE=m | ||
823 | CONFIG_MMC=y | ||
824 | # CONFIG_MMC_DEBUG is not set | ||
825 | # CONFIG_MMC_UNSAFE_RESUME is not set | ||
826 | |||
827 | # | ||
828 | # MMC/SD Card Drivers | ||
829 | # | ||
830 | CONFIG_MMC_BLOCK=y | ||
831 | CONFIG_MMC_BLOCK_BOUNCE=y | ||
832 | # CONFIG_SDIO_UART is not set | ||
833 | # CONFIG_MMC_TEST is not set | ||
834 | |||
835 | # | ||
836 | # MMC/SD Host Controller Drivers | ||
837 | # | ||
838 | # CONFIG_MMC_SDHCI is not set | ||
839 | CONFIG_MMC_ATMELMCI=y | ||
840 | CONFIG_MMC_ATMELMCI_DMA=y | ||
841 | # CONFIG_MMC_SPI is not set | ||
842 | # CONFIG_MEMSTICK is not set | ||
843 | CONFIG_NEW_LEDS=y | ||
844 | CONFIG_LEDS_CLASS=y | ||
845 | |||
846 | # | ||
847 | # LED drivers | ||
848 | # | ||
849 | CONFIG_LEDS_ATMEL_PWM=m | ||
850 | # CONFIG_LEDS_PCA9532 is not set | ||
851 | CONFIG_LEDS_GPIO=y | ||
852 | # CONFIG_LEDS_PCA955X is not set | ||
853 | |||
854 | # | ||
855 | # LED Triggers | ||
856 | # | ||
857 | CONFIG_LEDS_TRIGGERS=y | ||
858 | CONFIG_LEDS_TRIGGER_TIMER=y | ||
859 | CONFIG_LEDS_TRIGGER_HEARTBEAT=y | ||
860 | CONFIG_LEDS_TRIGGER_DEFAULT_ON=y | ||
861 | # CONFIG_ACCESSIBILITY is not set | ||
862 | CONFIG_RTC_LIB=y | ||
863 | CONFIG_RTC_CLASS=y | ||
864 | CONFIG_RTC_HCTOSYS=y | ||
865 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
866 | # CONFIG_RTC_DEBUG is not set | ||
867 | |||
868 | # | ||
869 | # RTC interfaces | ||
870 | # | ||
871 | CONFIG_RTC_INTF_SYSFS=y | ||
872 | CONFIG_RTC_INTF_PROC=y | ||
873 | CONFIG_RTC_INTF_DEV=y | ||
874 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
875 | # CONFIG_RTC_DRV_TEST is not set | ||
876 | |||
877 | # | ||
878 | # I2C RTC drivers | ||
879 | # | ||
880 | # CONFIG_RTC_DRV_DS1307 is not set | ||
881 | # CONFIG_RTC_DRV_DS1374 is not set | ||
882 | # CONFIG_RTC_DRV_DS1672 is not set | ||
883 | # CONFIG_RTC_DRV_MAX6900 is not set | ||
884 | # CONFIG_RTC_DRV_RS5C372 is not set | ||
885 | # CONFIG_RTC_DRV_ISL1208 is not set | ||
886 | # CONFIG_RTC_DRV_X1205 is not set | ||
887 | # CONFIG_RTC_DRV_PCF8563 is not set | ||
888 | # CONFIG_RTC_DRV_PCF8583 is not set | ||
889 | # CONFIG_RTC_DRV_M41T80 is not set | ||
890 | # CONFIG_RTC_DRV_S35390A is not set | ||
891 | # CONFIG_RTC_DRV_FM3130 is not set | ||
892 | |||
893 | # | ||
894 | # SPI RTC drivers | ||
895 | # | ||
896 | # CONFIG_RTC_DRV_M41T94 is not set | ||
897 | # CONFIG_RTC_DRV_DS1305 is not set | ||
898 | # CONFIG_RTC_DRV_MAX6902 is not set | ||
899 | # CONFIG_RTC_DRV_R9701 is not set | ||
900 | # CONFIG_RTC_DRV_RS5C348 is not set | ||
901 | |||
902 | # | ||
903 | # Platform RTC drivers | ||
904 | # | ||
905 | # CONFIG_RTC_DRV_DS1511 is not set | ||
906 | # CONFIG_RTC_DRV_DS1553 is not set | ||
907 | # CONFIG_RTC_DRV_DS1742 is not set | ||
908 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
909 | # CONFIG_RTC_DRV_M48T86 is not set | ||
910 | # CONFIG_RTC_DRV_M48T59 is not set | ||
911 | # CONFIG_RTC_DRV_V3020 is not set | ||
912 | |||
913 | # | ||
914 | # on-CPU RTC drivers | ||
915 | # | ||
916 | CONFIG_RTC_DRV_AT32AP700X=y | ||
917 | CONFIG_DMADEVICES=y | ||
918 | |||
919 | # | ||
920 | # DMA Devices | ||
921 | # | ||
922 | CONFIG_DW_DMAC=y | ||
923 | CONFIG_DMA_ENGINE=y | ||
924 | |||
925 | # | ||
926 | # DMA Clients | ||
927 | # | ||
928 | # CONFIG_NET_DMA is not set | ||
929 | # CONFIG_DMATEST is not set | ||
930 | # CONFIG_UIO is not set | ||
931 | |||
932 | # | ||
933 | # File systems | ||
934 | # | ||
935 | CONFIG_EXT2_FS=y | ||
936 | # CONFIG_EXT2_FS_XATTR is not set | ||
937 | # CONFIG_EXT2_FS_XIP is not set | ||
938 | CONFIG_EXT3_FS=y | ||
939 | # CONFIG_EXT3_FS_XATTR is not set | ||
940 | # CONFIG_EXT4DEV_FS is not set | ||
941 | CONFIG_JBD=y | ||
942 | # CONFIG_JBD_DEBUG is not set | ||
943 | # CONFIG_REISERFS_FS is not set | ||
944 | # CONFIG_JFS_FS is not set | ||
945 | # CONFIG_FS_POSIX_ACL is not set | ||
946 | # CONFIG_XFS_FS is not set | ||
947 | # CONFIG_OCFS2_FS is not set | ||
948 | # CONFIG_DNOTIFY is not set | ||
949 | CONFIG_INOTIFY=y | ||
950 | CONFIG_INOTIFY_USER=y | ||
951 | # CONFIG_QUOTA is not set | ||
952 | # CONFIG_AUTOFS_FS is not set | ||
953 | # CONFIG_AUTOFS4_FS is not set | ||
954 | CONFIG_FUSE_FS=m | ||
955 | |||
956 | # | ||
957 | # CD-ROM/DVD Filesystems | ||
958 | # | ||
959 | # CONFIG_ISO9660_FS is not set | ||
960 | # CONFIG_UDF_FS is not set | ||
961 | |||
962 | # | ||
963 | # DOS/FAT/NT Filesystems | ||
964 | # | ||
965 | CONFIG_FAT_FS=m | ||
966 | CONFIG_MSDOS_FS=m | ||
967 | CONFIG_VFAT_FS=m | ||
968 | CONFIG_FAT_DEFAULT_CODEPAGE=437 | ||
969 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
970 | # CONFIG_NTFS_FS is not set | ||
971 | |||
972 | # | ||
973 | # Pseudo filesystems | ||
974 | # | ||
975 | CONFIG_PROC_FS=y | ||
976 | CONFIG_PROC_KCORE=y | ||
977 | CONFIG_PROC_SYSCTL=y | ||
978 | CONFIG_SYSFS=y | ||
979 | CONFIG_TMPFS=y | ||
980 | # CONFIG_TMPFS_POSIX_ACL is not set | ||
981 | # CONFIG_HUGETLB_PAGE is not set | ||
982 | CONFIG_CONFIGFS_FS=y | ||
983 | |||
984 | # | ||
985 | # Miscellaneous filesystems | ||
986 | # | ||
987 | # CONFIG_ADFS_FS is not set | ||
988 | # CONFIG_AFFS_FS is not set | ||
989 | # CONFIG_HFS_FS is not set | ||
990 | # CONFIG_HFSPLUS_FS is not set | ||
991 | # CONFIG_BEFS_FS is not set | ||
992 | # CONFIG_BFS_FS is not set | ||
993 | # CONFIG_EFS_FS is not set | ||
994 | CONFIG_JFFS2_FS=y | ||
995 | CONFIG_JFFS2_FS_DEBUG=0 | ||
996 | # CONFIG_JFFS2_FS_WRITEBUFFER is not set | ||
997 | # CONFIG_JFFS2_SUMMARY is not set | ||
998 | # CONFIG_JFFS2_FS_XATTR is not set | ||
999 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | ||
1000 | CONFIG_JFFS2_ZLIB=y | ||
1001 | # CONFIG_JFFS2_LZO is not set | ||
1002 | CONFIG_JFFS2_RTIME=y | ||
1003 | # CONFIG_JFFS2_RUBIN is not set | ||
1004 | # CONFIG_CRAMFS is not set | ||
1005 | # CONFIG_VXFS_FS is not set | ||
1006 | # CONFIG_MINIX_FS is not set | ||
1007 | # CONFIG_OMFS_FS is not set | ||
1008 | # CONFIG_HPFS_FS is not set | ||
1009 | # CONFIG_QNX4FS_FS is not set | ||
1010 | # CONFIG_ROMFS_FS is not set | ||
1011 | # CONFIG_SYSV_FS is not set | ||
1012 | # CONFIG_UFS_FS is not set | ||
1013 | CONFIG_NETWORK_FILESYSTEMS=y | ||
1014 | CONFIG_NFS_FS=y | ||
1015 | CONFIG_NFS_V3=y | ||
1016 | # CONFIG_NFS_V3_ACL is not set | ||
1017 | # CONFIG_NFS_V4 is not set | ||
1018 | CONFIG_ROOT_NFS=y | ||
1019 | # CONFIG_NFSD is not set | ||
1020 | CONFIG_LOCKD=y | ||
1021 | CONFIG_LOCKD_V4=y | ||
1022 | CONFIG_NFS_COMMON=y | ||
1023 | CONFIG_SUNRPC=y | ||
1024 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
1025 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
1026 | # CONFIG_SMB_FS is not set | ||
1027 | # CONFIG_CIFS is not set | ||
1028 | # CONFIG_NCP_FS is not set | ||
1029 | # CONFIG_CODA_FS is not set | ||
1030 | # CONFIG_AFS_FS is not set | ||
1031 | |||
1032 | # | ||
1033 | # Partition Types | ||
1034 | # | ||
1035 | # CONFIG_PARTITION_ADVANCED is not set | ||
1036 | CONFIG_MSDOS_PARTITION=y | ||
1037 | CONFIG_NLS=m | ||
1038 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
1039 | CONFIG_NLS_CODEPAGE_437=m | ||
1040 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
1041 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
1042 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
1043 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
1044 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
1045 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
1046 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
1047 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
1048 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
1049 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
1050 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
1051 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
1052 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
1053 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
1054 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
1055 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
1056 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
1057 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
1058 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
1059 | # CONFIG_NLS_ISO8859_8 is not set | ||
1060 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
1061 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
1062 | # CONFIG_NLS_ASCII is not set | ||
1063 | CONFIG_NLS_ISO8859_1=m | ||
1064 | # CONFIG_NLS_ISO8859_2 is not set | ||
1065 | # CONFIG_NLS_ISO8859_3 is not set | ||
1066 | # CONFIG_NLS_ISO8859_4 is not set | ||
1067 | # CONFIG_NLS_ISO8859_5 is not set | ||
1068 | # CONFIG_NLS_ISO8859_6 is not set | ||
1069 | # CONFIG_NLS_ISO8859_7 is not set | ||
1070 | # CONFIG_NLS_ISO8859_9 is not set | ||
1071 | # CONFIG_NLS_ISO8859_13 is not set | ||
1072 | # CONFIG_NLS_ISO8859_14 is not set | ||
1073 | # CONFIG_NLS_ISO8859_15 is not set | ||
1074 | # CONFIG_NLS_KOI8_R is not set | ||
1075 | # CONFIG_NLS_KOI8_U is not set | ||
1076 | CONFIG_NLS_UTF8=m | ||
1077 | # CONFIG_DLM is not set | ||
1078 | |||
1079 | # | ||
1080 | # Kernel hacking | ||
1081 | # | ||
1082 | # CONFIG_PRINTK_TIME is not set | ||
1083 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
1084 | CONFIG_ENABLE_MUST_CHECK=y | ||
1085 | CONFIG_FRAME_WARN=1024 | ||
1086 | CONFIG_MAGIC_SYSRQ=y | ||
1087 | # CONFIG_UNUSED_SYMBOLS is not set | ||
1088 | CONFIG_DEBUG_FS=y | ||
1089 | # CONFIG_HEADERS_CHECK is not set | ||
1090 | CONFIG_DEBUG_KERNEL=y | ||
1091 | # CONFIG_DEBUG_SHIRQ is not set | ||
1092 | CONFIG_DETECT_SOFTLOCKUP=y | ||
1093 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | ||
1094 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | ||
1095 | CONFIG_SCHED_DEBUG=y | ||
1096 | # CONFIG_SCHEDSTATS is not set | ||
1097 | # CONFIG_TIMER_STATS is not set | ||
1098 | # CONFIG_DEBUG_OBJECTS is not set | ||
1099 | # CONFIG_SLUB_DEBUG_ON is not set | ||
1100 | # CONFIG_SLUB_STATS is not set | ||
1101 | # CONFIG_DEBUG_RT_MUTEXES is not set | ||
1102 | # CONFIG_RT_MUTEX_TESTER is not set | ||
1103 | # CONFIG_DEBUG_SPINLOCK is not set | ||
1104 | # CONFIG_DEBUG_MUTEXES is not set | ||
1105 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
1106 | # CONFIG_PROVE_LOCKING is not set | ||
1107 | # CONFIG_LOCK_STAT is not set | ||
1108 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
1109 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | ||
1110 | # CONFIG_DEBUG_KOBJECT is not set | ||
1111 | CONFIG_DEBUG_BUGVERBOSE=y | ||
1112 | # CONFIG_DEBUG_INFO is not set | ||
1113 | # CONFIG_DEBUG_VM is not set | ||
1114 | # CONFIG_DEBUG_WRITECOUNT is not set | ||
1115 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
1116 | # CONFIG_DEBUG_LIST is not set | ||
1117 | # CONFIG_DEBUG_SG is not set | ||
1118 | CONFIG_FRAME_POINTER=y | ||
1119 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
1120 | # CONFIG_RCU_TORTURE_TEST is not set | ||
1121 | # CONFIG_KPROBES_SANITY_TEST is not set | ||
1122 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
1123 | # CONFIG_LKDTM is not set | ||
1124 | # CONFIG_FAULT_INJECTION is not set | ||
1125 | # CONFIG_SAMPLES is not set | ||
1126 | |||
1127 | # | ||
1128 | # Security options | ||
1129 | # | ||
1130 | # CONFIG_KEYS is not set | ||
1131 | # CONFIG_SECURITY is not set | ||
1132 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
1133 | CONFIG_CRYPTO=y | ||
1134 | |||
1135 | # | ||
1136 | # Crypto core or helper | ||
1137 | # | ||
1138 | CONFIG_CRYPTO_ALGAPI=m | ||
1139 | CONFIG_CRYPTO_AEAD=m | ||
1140 | CONFIG_CRYPTO_BLKCIPHER=m | ||
1141 | CONFIG_CRYPTO_HASH=m | ||
1142 | CONFIG_CRYPTO_MANAGER=m | ||
1143 | # CONFIG_CRYPTO_GF128MUL is not set | ||
1144 | # CONFIG_CRYPTO_NULL is not set | ||
1145 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1146 | CONFIG_CRYPTO_AUTHENC=m | ||
1147 | # CONFIG_CRYPTO_TEST is not set | ||
1148 | |||
1149 | # | ||
1150 | # Authenticated Encryption with Associated Data | ||
1151 | # | ||
1152 | # CONFIG_CRYPTO_CCM is not set | ||
1153 | # CONFIG_CRYPTO_GCM is not set | ||
1154 | # CONFIG_CRYPTO_SEQIV is not set | ||
1155 | |||
1156 | # | ||
1157 | # Block modes | ||
1158 | # | ||
1159 | CONFIG_CRYPTO_CBC=m | ||
1160 | # CONFIG_CRYPTO_CTR is not set | ||
1161 | # CONFIG_CRYPTO_CTS is not set | ||
1162 | # CONFIG_CRYPTO_ECB is not set | ||
1163 | # CONFIG_CRYPTO_LRW is not set | ||
1164 | # CONFIG_CRYPTO_PCBC is not set | ||
1165 | # CONFIG_CRYPTO_XTS is not set | ||
1166 | |||
1167 | # | ||
1168 | # Hash modes | ||
1169 | # | ||
1170 | CONFIG_CRYPTO_HMAC=m | ||
1171 | # CONFIG_CRYPTO_XCBC is not set | ||
1172 | |||
1173 | # | ||
1174 | # Digest | ||
1175 | # | ||
1176 | # CONFIG_CRYPTO_CRC32C is not set | ||
1177 | # CONFIG_CRYPTO_MD4 is not set | ||
1178 | CONFIG_CRYPTO_MD5=m | ||
1179 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
1180 | # CONFIG_CRYPTO_RMD128 is not set | ||
1181 | # CONFIG_CRYPTO_RMD160 is not set | ||
1182 | # CONFIG_CRYPTO_RMD256 is not set | ||
1183 | # CONFIG_CRYPTO_RMD320 is not set | ||
1184 | CONFIG_CRYPTO_SHA1=m | ||
1185 | # CONFIG_CRYPTO_SHA256 is not set | ||
1186 | # CONFIG_CRYPTO_SHA512 is not set | ||
1187 | # CONFIG_CRYPTO_TGR192 is not set | ||
1188 | # CONFIG_CRYPTO_WP512 is not set | ||
1189 | |||
1190 | # | ||
1191 | # Ciphers | ||
1192 | # | ||
1193 | # CONFIG_CRYPTO_AES is not set | ||
1194 | # CONFIG_CRYPTO_ANUBIS is not set | ||
1195 | # CONFIG_CRYPTO_ARC4 is not set | ||
1196 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
1197 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1198 | # CONFIG_CRYPTO_CAST5 is not set | ||
1199 | # CONFIG_CRYPTO_CAST6 is not set | ||
1200 | CONFIG_CRYPTO_DES=m | ||
1201 | # CONFIG_CRYPTO_FCRYPT is not set | ||
1202 | # CONFIG_CRYPTO_KHAZAD is not set | ||
1203 | # CONFIG_CRYPTO_SALSA20 is not set | ||
1204 | # CONFIG_CRYPTO_SEED is not set | ||
1205 | # CONFIG_CRYPTO_SERPENT is not set | ||
1206 | # CONFIG_CRYPTO_TEA is not set | ||
1207 | # CONFIG_CRYPTO_TWOFISH is not set | ||
1208 | |||
1209 | # | ||
1210 | # Compression | ||
1211 | # | ||
1212 | CONFIG_CRYPTO_DEFLATE=m | ||
1213 | # CONFIG_CRYPTO_LZO is not set | ||
1214 | # CONFIG_CRYPTO_HW is not set | ||
1215 | |||
1216 | # | ||
1217 | # Library routines | ||
1218 | # | ||
1219 | CONFIG_BITREVERSE=y | ||
1220 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
1221 | # CONFIG_GENERIC_FIND_NEXT_BIT is not set | ||
1222 | CONFIG_CRC_CCITT=m | ||
1223 | # CONFIG_CRC16 is not set | ||
1224 | # CONFIG_CRC_T10DIF is not set | ||
1225 | # CONFIG_CRC_ITU_T is not set | ||
1226 | CONFIG_CRC32=y | ||
1227 | # CONFIG_CRC7 is not set | ||
1228 | # CONFIG_LIBCRC32C is not set | ||
1229 | CONFIG_ZLIB_INFLATE=y | ||
1230 | CONFIG_ZLIB_DEFLATE=y | ||
1231 | CONFIG_GENERIC_ALLOCATOR=y | ||
1232 | CONFIG_PLIST=y | ||
1233 | CONFIG_HAS_IOMEM=y | ||
1234 | CONFIG_HAS_IOPORT=y | ||
1235 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/avr32/configs/mimc200_defconfig b/arch/avr32/configs/mimc200_defconfig new file mode 100644 index 000000000000..981e4f8b8aeb --- /dev/null +++ b/arch/avr32/configs/mimc200_defconfig | |||
@@ -0,0 +1,1109 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.27-rc8 | ||
4 | # Mon Oct 13 15:46:53 2008 | ||
5 | # | ||
6 | CONFIG_AVR32=y | ||
7 | CONFIG_GENERIC_GPIO=y | ||
8 | CONFIG_GENERIC_HARDIRQS=y | ||
9 | CONFIG_STACKTRACE_SUPPORT=y | ||
10 | CONFIG_LOCKDEP_SUPPORT=y | ||
11 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
12 | CONFIG_HARDIRQS_SW_RESEND=y | ||
13 | CONFIG_GENERIC_IRQ_PROBE=y | ||
14 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
15 | CONFIG_GENERIC_TIME=y | ||
16 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
17 | # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set | ||
18 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
19 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
20 | CONFIG_GENERIC_HWEIGHT=y | ||
21 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
22 | CONFIG_GENERIC_BUG=y | ||
23 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
24 | |||
25 | # | ||
26 | # General setup | ||
27 | # | ||
28 | CONFIG_EXPERIMENTAL=y | ||
29 | CONFIG_BROKEN_ON_SMP=y | ||
30 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
31 | CONFIG_LOCALVERSION="" | ||
32 | # CONFIG_LOCALVERSION_AUTO is not set | ||
33 | CONFIG_SWAP=y | ||
34 | CONFIG_SYSVIPC=y | ||
35 | CONFIG_SYSVIPC_SYSCTL=y | ||
36 | CONFIG_POSIX_MQUEUE=y | ||
37 | CONFIG_BSD_PROCESS_ACCT=y | ||
38 | CONFIG_BSD_PROCESS_ACCT_V3=y | ||
39 | # CONFIG_TASKSTATS is not set | ||
40 | # CONFIG_AUDIT is not set | ||
41 | # CONFIG_IKCONFIG is not set | ||
42 | CONFIG_LOG_BUF_SHIFT=14 | ||
43 | # CONFIG_CGROUPS is not set | ||
44 | # CONFIG_GROUP_SCHED is not set | ||
45 | CONFIG_SYSFS_DEPRECATED=y | ||
46 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
47 | # CONFIG_RELAY is not set | ||
48 | # CONFIG_NAMESPACES is not set | ||
49 | CONFIG_BLK_DEV_INITRD=y | ||
50 | CONFIG_INITRAMFS_SOURCE="" | ||
51 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
52 | CONFIG_SYSCTL=y | ||
53 | CONFIG_EMBEDDED=y | ||
54 | # CONFIG_SYSCTL_SYSCALL is not set | ||
55 | CONFIG_KALLSYMS=y | ||
56 | # CONFIG_KALLSYMS_ALL is not set | ||
57 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
58 | CONFIG_HOTPLUG=y | ||
59 | CONFIG_PRINTK=y | ||
60 | CONFIG_BUG=y | ||
61 | CONFIG_ELF_CORE=y | ||
62 | # CONFIG_COMPAT_BRK is not set | ||
63 | # CONFIG_BASE_FULL is not set | ||
64 | CONFIG_FUTEX=y | ||
65 | CONFIG_ANON_INODES=y | ||
66 | CONFIG_EPOLL=y | ||
67 | CONFIG_SIGNALFD=y | ||
68 | CONFIG_TIMERFD=y | ||
69 | CONFIG_EVENTFD=y | ||
70 | CONFIG_SHMEM=y | ||
71 | CONFIG_VM_EVENT_COUNTERS=y | ||
72 | CONFIG_SLUB_DEBUG=y | ||
73 | # CONFIG_SLAB is not set | ||
74 | CONFIG_SLUB=y | ||
75 | # CONFIG_SLOB is not set | ||
76 | CONFIG_PROFILING=y | ||
77 | # CONFIG_MARKERS is not set | ||
78 | # CONFIG_OPROFILE is not set | ||
79 | CONFIG_HAVE_OPROFILE=y | ||
80 | # CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set | ||
81 | # CONFIG_HAVE_IOREMAP_PROT is not set | ||
82 | CONFIG_HAVE_KPROBES=y | ||
83 | # CONFIG_HAVE_KRETPROBES is not set | ||
84 | # CONFIG_HAVE_ARCH_TRACEHOOK is not set | ||
85 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
86 | # CONFIG_USE_GENERIC_SMP_HELPERS is not set | ||
87 | CONFIG_HAVE_CLK=y | ||
88 | CONFIG_PROC_PAGE_MONITOR=y | ||
89 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | ||
90 | CONFIG_SLABINFO=y | ||
91 | CONFIG_RT_MUTEXES=y | ||
92 | # CONFIG_TINY_SHMEM is not set | ||
93 | CONFIG_BASE_SMALL=1 | ||
94 | # CONFIG_MODULES is not set | ||
95 | CONFIG_BLOCK=y | ||
96 | # CONFIG_LBD is not set | ||
97 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
98 | # CONFIG_LSF is not set | ||
99 | # CONFIG_BLK_DEV_BSG is not set | ||
100 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
101 | |||
102 | # | ||
103 | # IO Schedulers | ||
104 | # | ||
105 | CONFIG_IOSCHED_NOOP=y | ||
106 | # CONFIG_IOSCHED_AS is not set | ||
107 | # CONFIG_IOSCHED_DEADLINE is not set | ||
108 | CONFIG_IOSCHED_CFQ=y | ||
109 | # CONFIG_DEFAULT_AS is not set | ||
110 | # CONFIG_DEFAULT_DEADLINE is not set | ||
111 | CONFIG_DEFAULT_CFQ=y | ||
112 | # CONFIG_DEFAULT_NOOP is not set | ||
113 | CONFIG_DEFAULT_IOSCHED="cfq" | ||
114 | CONFIG_CLASSIC_RCU=y | ||
115 | |||
116 | # | ||
117 | # System Type and features | ||
118 | # | ||
119 | CONFIG_TICK_ONESHOT=y | ||
120 | CONFIG_NO_HZ=y | ||
121 | CONFIG_HIGH_RES_TIMERS=y | ||
122 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
123 | CONFIG_SUBARCH_AVR32B=y | ||
124 | CONFIG_MMU=y | ||
125 | CONFIG_PERFORMANCE_COUNTERS=y | ||
126 | CONFIG_PLATFORM_AT32AP=y | ||
127 | CONFIG_CPU_AT32AP700X=y | ||
128 | CONFIG_CPU_AT32AP7000=y | ||
129 | # CONFIG_BOARD_ATSTK1000 is not set | ||
130 | # CONFIG_BOARD_ATNGW100 is not set | ||
131 | CONFIG_BOARD_MIMC200=y | ||
132 | CONFIG_LOADER_U_BOOT=y | ||
133 | |||
134 | # | ||
135 | # Atmel AVR32 AP options | ||
136 | # | ||
137 | # CONFIG_AP700X_32_BIT_SMC is not set | ||
138 | CONFIG_AP700X_16_BIT_SMC=y | ||
139 | # CONFIG_AP700X_8_BIT_SMC is not set | ||
140 | CONFIG_LOAD_ADDRESS=0x10000000 | ||
141 | CONFIG_ENTRY_ADDRESS=0x90000000 | ||
142 | CONFIG_PHYS_OFFSET=0x10000000 | ||
143 | CONFIG_PREEMPT_NONE=y | ||
144 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
145 | # CONFIG_PREEMPT is not set | ||
146 | CONFIG_QUICKLIST=y | ||
147 | # CONFIG_HAVE_ARCH_BOOTMEM_NODE is not set | ||
148 | # CONFIG_ARCH_HAVE_MEMORY_PRESENT is not set | ||
149 | # CONFIG_NEED_NODE_MEMMAP_SIZE is not set | ||
150 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
151 | # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set | ||
152 | # CONFIG_ARCH_SPARSEMEM_ENABLE is not set | ||
153 | CONFIG_SELECT_MEMORY_MODEL=y | ||
154 | CONFIG_FLATMEM_MANUAL=y | ||
155 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
156 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
157 | CONFIG_FLATMEM=y | ||
158 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
159 | # CONFIG_SPARSEMEM_STATIC is not set | ||
160 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
161 | CONFIG_PAGEFLAGS_EXTENDED=y | ||
162 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
163 | # CONFIG_RESOURCES_64BIT is not set | ||
164 | CONFIG_ZONE_DMA_FLAG=0 | ||
165 | CONFIG_NR_QUICK=2 | ||
166 | CONFIG_VIRT_TO_BUS=y | ||
167 | # CONFIG_OWNERSHIP_TRACE is not set | ||
168 | CONFIG_NMI_DEBUGGING=y | ||
169 | # CONFIG_HZ_100 is not set | ||
170 | CONFIG_HZ_250=y | ||
171 | # CONFIG_HZ_300 is not set | ||
172 | # CONFIG_HZ_1000 is not set | ||
173 | CONFIG_HZ=250 | ||
174 | CONFIG_SCHED_HRTICK=y | ||
175 | CONFIG_CMDLINE="" | ||
176 | |||
177 | # | ||
178 | # Power management options | ||
179 | # | ||
180 | CONFIG_PM=y | ||
181 | # CONFIG_PM_DEBUG is not set | ||
182 | CONFIG_PM_SLEEP=y | ||
183 | CONFIG_SUSPEND=y | ||
184 | CONFIG_SUSPEND_FREEZER=y | ||
185 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
186 | |||
187 | # | ||
188 | # CPU Frequency scaling | ||
189 | # | ||
190 | CONFIG_CPU_FREQ=y | ||
191 | CONFIG_CPU_FREQ_TABLE=y | ||
192 | # CONFIG_CPU_FREQ_DEBUG is not set | ||
193 | # CONFIG_CPU_FREQ_STAT is not set | ||
194 | # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set | ||
195 | # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set | ||
196 | # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set | ||
197 | CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y | ||
198 | # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set | ||
199 | CONFIG_CPU_FREQ_GOV_PERFORMANCE=y | ||
200 | # CONFIG_CPU_FREQ_GOV_POWERSAVE is not set | ||
201 | CONFIG_CPU_FREQ_GOV_USERSPACE=y | ||
202 | CONFIG_CPU_FREQ_GOV_ONDEMAND=y | ||
203 | # CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set | ||
204 | CONFIG_CPU_FREQ_AT32AP=y | ||
205 | |||
206 | # | ||
207 | # Bus options | ||
208 | # | ||
209 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
210 | # CONFIG_PCCARD is not set | ||
211 | |||
212 | # | ||
213 | # Executable file formats | ||
214 | # | ||
215 | CONFIG_BINFMT_ELF=y | ||
216 | # CONFIG_BINFMT_MISC is not set | ||
217 | CONFIG_NET=y | ||
218 | |||
219 | # | ||
220 | # Networking options | ||
221 | # | ||
222 | CONFIG_PACKET=y | ||
223 | CONFIG_PACKET_MMAP=y | ||
224 | CONFIG_UNIX=y | ||
225 | CONFIG_XFRM=y | ||
226 | CONFIG_XFRM_USER=y | ||
227 | # CONFIG_XFRM_SUB_POLICY is not set | ||
228 | # CONFIG_XFRM_MIGRATE is not set | ||
229 | # CONFIG_XFRM_STATISTICS is not set | ||
230 | CONFIG_XFRM_IPCOMP=y | ||
231 | CONFIG_NET_KEY=y | ||
232 | # CONFIG_NET_KEY_MIGRATE is not set | ||
233 | CONFIG_INET=y | ||
234 | CONFIG_IP_MULTICAST=y | ||
235 | CONFIG_IP_ADVANCED_ROUTER=y | ||
236 | CONFIG_ASK_IP_FIB_HASH=y | ||
237 | # CONFIG_IP_FIB_TRIE is not set | ||
238 | CONFIG_IP_FIB_HASH=y | ||
239 | # CONFIG_IP_MULTIPLE_TABLES is not set | ||
240 | # CONFIG_IP_ROUTE_MULTIPATH is not set | ||
241 | # CONFIG_IP_ROUTE_VERBOSE is not set | ||
242 | CONFIG_IP_PNP=y | ||
243 | CONFIG_IP_PNP_DHCP=y | ||
244 | # CONFIG_IP_PNP_BOOTP is not set | ||
245 | # CONFIG_IP_PNP_RARP is not set | ||
246 | # CONFIG_NET_IPIP is not set | ||
247 | # CONFIG_NET_IPGRE is not set | ||
248 | CONFIG_IP_MROUTE=y | ||
249 | CONFIG_IP_PIMSM_V1=y | ||
250 | # CONFIG_IP_PIMSM_V2 is not set | ||
251 | # CONFIG_ARPD is not set | ||
252 | CONFIG_SYN_COOKIES=y | ||
253 | CONFIG_INET_AH=y | ||
254 | CONFIG_INET_ESP=y | ||
255 | CONFIG_INET_IPCOMP=y | ||
256 | CONFIG_INET_XFRM_TUNNEL=y | ||
257 | CONFIG_INET_TUNNEL=y | ||
258 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
259 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
260 | CONFIG_INET_XFRM_MODE_BEET=y | ||
261 | # CONFIG_INET_LRO is not set | ||
262 | CONFIG_INET_DIAG=y | ||
263 | CONFIG_INET_TCP_DIAG=y | ||
264 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
265 | CONFIG_TCP_CONG_CUBIC=y | ||
266 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
267 | # CONFIG_TCP_MD5SIG is not set | ||
268 | CONFIG_IPV6=y | ||
269 | # CONFIG_IPV6_PRIVACY is not set | ||
270 | # CONFIG_IPV6_ROUTER_PREF is not set | ||
271 | # CONFIG_IPV6_OPTIMISTIC_DAD is not set | ||
272 | CONFIG_INET6_AH=y | ||
273 | CONFIG_INET6_ESP=y | ||
274 | CONFIG_INET6_IPCOMP=y | ||
275 | # CONFIG_IPV6_MIP6 is not set | ||
276 | CONFIG_INET6_XFRM_TUNNEL=y | ||
277 | CONFIG_INET6_TUNNEL=y | ||
278 | CONFIG_INET6_XFRM_MODE_TRANSPORT=y | ||
279 | CONFIG_INET6_XFRM_MODE_TUNNEL=y | ||
280 | CONFIG_INET6_XFRM_MODE_BEET=y | ||
281 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | ||
282 | CONFIG_IPV6_SIT=y | ||
283 | CONFIG_IPV6_NDISC_NODETYPE=y | ||
284 | # CONFIG_IPV6_TUNNEL is not set | ||
285 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | ||
286 | # CONFIG_IPV6_MROUTE is not set | ||
287 | # CONFIG_NETWORK_SECMARK is not set | ||
288 | # CONFIG_NETFILTER is not set | ||
289 | # CONFIG_IP_DCCP is not set | ||
290 | # CONFIG_IP_SCTP is not set | ||
291 | # CONFIG_TIPC is not set | ||
292 | # CONFIG_ATM is not set | ||
293 | # CONFIG_BRIDGE is not set | ||
294 | # CONFIG_VLAN_8021Q is not set | ||
295 | # CONFIG_DECNET is not set | ||
296 | # CONFIG_LLC2 is not set | ||
297 | # CONFIG_IPX is not set | ||
298 | # CONFIG_ATALK is not set | ||
299 | # CONFIG_X25 is not set | ||
300 | # CONFIG_LAPB is not set | ||
301 | # CONFIG_ECONET is not set | ||
302 | # CONFIG_WAN_ROUTER is not set | ||
303 | # CONFIG_NET_SCHED is not set | ||
304 | |||
305 | # | ||
306 | # Network testing | ||
307 | # | ||
308 | # CONFIG_NET_PKTGEN is not set | ||
309 | # CONFIG_HAMRADIO is not set | ||
310 | # CONFIG_CAN is not set | ||
311 | # CONFIG_IRDA is not set | ||
312 | # CONFIG_BT is not set | ||
313 | # CONFIG_AF_RXRPC is not set | ||
314 | |||
315 | # | ||
316 | # Wireless | ||
317 | # | ||
318 | # CONFIG_CFG80211 is not set | ||
319 | # CONFIG_WIRELESS_EXT is not set | ||
320 | # CONFIG_MAC80211 is not set | ||
321 | # CONFIG_IEEE80211 is not set | ||
322 | # CONFIG_RFKILL is not set | ||
323 | # CONFIG_NET_9P is not set | ||
324 | |||
325 | # | ||
326 | # Device Drivers | ||
327 | # | ||
328 | |||
329 | # | ||
330 | # Generic Driver Options | ||
331 | # | ||
332 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
333 | CONFIG_STANDALONE=y | ||
334 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | ||
335 | # CONFIG_FW_LOADER is not set | ||
336 | # CONFIG_DEBUG_DRIVER is not set | ||
337 | # CONFIG_DEBUG_DEVRES is not set | ||
338 | # CONFIG_SYS_HYPERVISOR is not set | ||
339 | # CONFIG_CONNECTOR is not set | ||
340 | CONFIG_MTD=y | ||
341 | # CONFIG_MTD_DEBUG is not set | ||
342 | # CONFIG_MTD_CONCAT is not set | ||
343 | CONFIG_MTD_PARTITIONS=y | ||
344 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
345 | CONFIG_MTD_CMDLINE_PARTS=y | ||
346 | # CONFIG_MTD_AR7_PARTS is not set | ||
347 | |||
348 | # | ||
349 | # User Modules And Translation Layers | ||
350 | # | ||
351 | CONFIG_MTD_CHAR=y | ||
352 | CONFIG_MTD_BLKDEVS=y | ||
353 | CONFIG_MTD_BLOCK=y | ||
354 | # CONFIG_FTL is not set | ||
355 | # CONFIG_NFTL is not set | ||
356 | # CONFIG_INFTL is not set | ||
357 | # CONFIG_RFD_FTL is not set | ||
358 | # CONFIG_SSFDC is not set | ||
359 | # CONFIG_MTD_OOPS is not set | ||
360 | |||
361 | # | ||
362 | # RAM/ROM/Flash chip drivers | ||
363 | # | ||
364 | CONFIG_MTD_CFI=y | ||
365 | # CONFIG_MTD_JEDECPROBE is not set | ||
366 | CONFIG_MTD_GEN_PROBE=y | ||
367 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
368 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
369 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
370 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
371 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
372 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
373 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
374 | CONFIG_MTD_CFI_I1=y | ||
375 | CONFIG_MTD_CFI_I2=y | ||
376 | # CONFIG_MTD_CFI_I4 is not set | ||
377 | # CONFIG_MTD_CFI_I8 is not set | ||
378 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
379 | CONFIG_MTD_CFI_AMDSTD=y | ||
380 | # CONFIG_MTD_CFI_STAA is not set | ||
381 | CONFIG_MTD_CFI_UTIL=y | ||
382 | # CONFIG_MTD_RAM is not set | ||
383 | # CONFIG_MTD_ROM is not set | ||
384 | # CONFIG_MTD_ABSENT is not set | ||
385 | |||
386 | # | ||
387 | # Mapping drivers for chip access | ||
388 | # | ||
389 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
390 | CONFIG_MTD_PHYSMAP=y | ||
391 | CONFIG_MTD_PHYSMAP_START=0x80000000 | ||
392 | CONFIG_MTD_PHYSMAP_LEN=0x0 | ||
393 | CONFIG_MTD_PHYSMAP_BANKWIDTH=2 | ||
394 | # CONFIG_MTD_PLATRAM is not set | ||
395 | |||
396 | # | ||
397 | # Self-contained MTD device drivers | ||
398 | # | ||
399 | CONFIG_MTD_DATAFLASH=y | ||
400 | # CONFIG_MTD_M25P80 is not set | ||
401 | # CONFIG_MTD_SLRAM is not set | ||
402 | # CONFIG_MTD_PHRAM is not set | ||
403 | # CONFIG_MTD_MTDRAM is not set | ||
404 | # CONFIG_MTD_BLOCK2MTD is not set | ||
405 | |||
406 | # | ||
407 | # Disk-On-Chip Device Drivers | ||
408 | # | ||
409 | # CONFIG_MTD_DOC2000 is not set | ||
410 | # CONFIG_MTD_DOC2001 is not set | ||
411 | # CONFIG_MTD_DOC2001PLUS is not set | ||
412 | # CONFIG_MTD_NAND is not set | ||
413 | # CONFIG_MTD_ONENAND is not set | ||
414 | |||
415 | # | ||
416 | # UBI - Unsorted block images | ||
417 | # | ||
418 | # CONFIG_MTD_UBI is not set | ||
419 | # CONFIG_PARPORT is not set | ||
420 | CONFIG_BLK_DEV=y | ||
421 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
422 | # CONFIG_BLK_DEV_LOOP is not set | ||
423 | # CONFIG_BLK_DEV_NBD is not set | ||
424 | # CONFIG_BLK_DEV_RAM is not set | ||
425 | # CONFIG_CDROM_PKTCDVD is not set | ||
426 | # CONFIG_ATA_OVER_ETH is not set | ||
427 | CONFIG_MISC_DEVICES=y | ||
428 | # CONFIG_ATMEL_PWM is not set | ||
429 | CONFIG_ATMEL_TCLIB=y | ||
430 | CONFIG_ATMEL_TCB_CLKSRC=y | ||
431 | CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0 | ||
432 | # CONFIG_EEPROM_93CX6 is not set | ||
433 | # CONFIG_ATMEL_SSC is not set | ||
434 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
435 | # CONFIG_HAVE_IDE is not set | ||
436 | |||
437 | # | ||
438 | # SCSI device support | ||
439 | # | ||
440 | # CONFIG_RAID_ATTRS is not set | ||
441 | # CONFIG_SCSI is not set | ||
442 | # CONFIG_SCSI_DMA is not set | ||
443 | # CONFIG_SCSI_NETLINK is not set | ||
444 | # CONFIG_ATA is not set | ||
445 | # CONFIG_MD is not set | ||
446 | CONFIG_NETDEVICES=y | ||
447 | # CONFIG_DUMMY is not set | ||
448 | # CONFIG_BONDING is not set | ||
449 | # CONFIG_MACVLAN is not set | ||
450 | # CONFIG_EQUALIZER is not set | ||
451 | # CONFIG_TUN is not set | ||
452 | # CONFIG_VETH is not set | ||
453 | CONFIG_PHYLIB=y | ||
454 | |||
455 | # | ||
456 | # MII PHY device drivers | ||
457 | # | ||
458 | # CONFIG_MARVELL_PHY is not set | ||
459 | # CONFIG_DAVICOM_PHY is not set | ||
460 | # CONFIG_QSEMI_PHY is not set | ||
461 | # CONFIG_LXT_PHY is not set | ||
462 | # CONFIG_CICADA_PHY is not set | ||
463 | # CONFIG_VITESSE_PHY is not set | ||
464 | # CONFIG_SMSC_PHY is not set | ||
465 | # CONFIG_BROADCOM_PHY is not set | ||
466 | # CONFIG_ICPLUS_PHY is not set | ||
467 | # CONFIG_REALTEK_PHY is not set | ||
468 | # CONFIG_FIXED_PHY is not set | ||
469 | # CONFIG_MDIO_BITBANG is not set | ||
470 | CONFIG_NET_ETHERNET=y | ||
471 | # CONFIG_MII is not set | ||
472 | CONFIG_MACB=y | ||
473 | # CONFIG_ENC28J60 is not set | ||
474 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
475 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
476 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
477 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
478 | # CONFIG_B44 is not set | ||
479 | # CONFIG_NETDEV_1000 is not set | ||
480 | # CONFIG_NETDEV_10000 is not set | ||
481 | |||
482 | # | ||
483 | # Wireless LAN | ||
484 | # | ||
485 | # CONFIG_WLAN_PRE80211 is not set | ||
486 | # CONFIG_WLAN_80211 is not set | ||
487 | # CONFIG_IWLWIFI_LEDS is not set | ||
488 | # CONFIG_WAN is not set | ||
489 | # CONFIG_PPP is not set | ||
490 | # CONFIG_SLIP is not set | ||
491 | # CONFIG_NETCONSOLE is not set | ||
492 | # CONFIG_NETPOLL is not set | ||
493 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
494 | # CONFIG_ISDN is not set | ||
495 | # CONFIG_PHONE is not set | ||
496 | |||
497 | # | ||
498 | # Input device support | ||
499 | # | ||
500 | # CONFIG_INPUT is not set | ||
501 | |||
502 | # | ||
503 | # Hardware I/O ports | ||
504 | # | ||
505 | # CONFIG_SERIO is not set | ||
506 | # CONFIG_GAMEPORT is not set | ||
507 | |||
508 | # | ||
509 | # Character devices | ||
510 | # | ||
511 | # CONFIG_VT is not set | ||
512 | # CONFIG_DEVKMEM is not set | ||
513 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
514 | |||
515 | # | ||
516 | # Serial drivers | ||
517 | # | ||
518 | # CONFIG_SERIAL_8250 is not set | ||
519 | |||
520 | # | ||
521 | # Non-8250 serial port support | ||
522 | # | ||
523 | CONFIG_SERIAL_ATMEL=y | ||
524 | CONFIG_SERIAL_ATMEL_CONSOLE=y | ||
525 | CONFIG_SERIAL_ATMEL_PDC=y | ||
526 | # CONFIG_SERIAL_ATMEL_TTYAT is not set | ||
527 | CONFIG_SERIAL_CORE=y | ||
528 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
529 | CONFIG_UNIX98_PTYS=y | ||
530 | # CONFIG_LEGACY_PTYS is not set | ||
531 | # CONFIG_IPMI_HANDLER is not set | ||
532 | # CONFIG_HW_RANDOM is not set | ||
533 | # CONFIG_R3964 is not set | ||
534 | # CONFIG_RAW_DRIVER is not set | ||
535 | # CONFIG_TCG_TPM is not set | ||
536 | CONFIG_I2C=y | ||
537 | CONFIG_I2C_BOARDINFO=y | ||
538 | CONFIG_I2C_CHARDEV=y | ||
539 | CONFIG_I2C_HELPER_AUTO=y | ||
540 | CONFIG_I2C_ALGOBIT=y | ||
541 | |||
542 | # | ||
543 | # I2C Hardware Bus support | ||
544 | # | ||
545 | |||
546 | # | ||
547 | # I2C system bus drivers (mostly embedded / system-on-chip) | ||
548 | # | ||
549 | CONFIG_I2C_GPIO=y | ||
550 | # CONFIG_I2C_OCORES is not set | ||
551 | # CONFIG_I2C_SIMTEC is not set | ||
552 | |||
553 | # | ||
554 | # External I2C/SMBus adapter drivers | ||
555 | # | ||
556 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
557 | # CONFIG_I2C_TAOS_EVM is not set | ||
558 | |||
559 | # | ||
560 | # Other I2C/SMBus bus drivers | ||
561 | # | ||
562 | # CONFIG_I2C_PCA_PLATFORM is not set | ||
563 | |||
564 | # | ||
565 | # Miscellaneous I2C Chip support | ||
566 | # | ||
567 | # CONFIG_DS1682 is not set | ||
568 | CONFIG_AT24=y | ||
569 | # CONFIG_SENSORS_EEPROM is not set | ||
570 | # CONFIG_SENSORS_PCF8574 is not set | ||
571 | # CONFIG_PCF8575 is not set | ||
572 | # CONFIG_SENSORS_PCA9539 is not set | ||
573 | # CONFIG_SENSORS_PCF8591 is not set | ||
574 | # CONFIG_TPS65010 is not set | ||
575 | # CONFIG_SENSORS_MAX6875 is not set | ||
576 | # CONFIG_SENSORS_TSL2550 is not set | ||
577 | # CONFIG_DS28CM00 is not set | ||
578 | # CONFIG_I2C_DEBUG_CORE is not set | ||
579 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
580 | # CONFIG_I2C_DEBUG_BUS is not set | ||
581 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
582 | CONFIG_SPI=y | ||
583 | # CONFIG_SPI_DEBUG is not set | ||
584 | CONFIG_SPI_MASTER=y | ||
585 | |||
586 | # | ||
587 | # SPI Master Controller Drivers | ||
588 | # | ||
589 | CONFIG_SPI_ATMEL=y | ||
590 | # CONFIG_SPI_BITBANG is not set | ||
591 | |||
592 | # | ||
593 | # SPI Protocol Masters | ||
594 | # | ||
595 | CONFIG_SPI_AT25=y | ||
596 | # CONFIG_SPI_SPIDEV is not set | ||
597 | # CONFIG_SPI_TLE62X0 is not set | ||
598 | CONFIG_ARCH_REQUIRE_GPIOLIB=y | ||
599 | CONFIG_GPIOLIB=y | ||
600 | # CONFIG_DEBUG_GPIO is not set | ||
601 | CONFIG_GPIO_SYSFS=y | ||
602 | |||
603 | # | ||
604 | # I2C GPIO expanders: | ||
605 | # | ||
606 | # CONFIG_GPIO_MAX732X is not set | ||
607 | # CONFIG_GPIO_PCA953X is not set | ||
608 | # CONFIG_GPIO_PCF857X is not set | ||
609 | |||
610 | # | ||
611 | # PCI GPIO expanders: | ||
612 | # | ||
613 | |||
614 | # | ||
615 | # SPI GPIO expanders: | ||
616 | # | ||
617 | # CONFIG_GPIO_MAX7301 is not set | ||
618 | # CONFIG_GPIO_MCP23S08 is not set | ||
619 | # CONFIG_W1 is not set | ||
620 | # CONFIG_POWER_SUPPLY is not set | ||
621 | # CONFIG_HWMON is not set | ||
622 | # CONFIG_THERMAL is not set | ||
623 | # CONFIG_THERMAL_HWMON is not set | ||
624 | CONFIG_WATCHDOG=y | ||
625 | # CONFIG_WATCHDOG_NOWAYOUT is not set | ||
626 | |||
627 | # | ||
628 | # Watchdog Device Drivers | ||
629 | # | ||
630 | # CONFIG_SOFT_WATCHDOG is not set | ||
631 | CONFIG_AT32AP700X_WDT=y | ||
632 | |||
633 | # | ||
634 | # Sonics Silicon Backplane | ||
635 | # | ||
636 | CONFIG_SSB_POSSIBLE=y | ||
637 | # CONFIG_SSB is not set | ||
638 | |||
639 | # | ||
640 | # Multifunction device drivers | ||
641 | # | ||
642 | # CONFIG_MFD_CORE is not set | ||
643 | # CONFIG_MFD_SM501 is not set | ||
644 | # CONFIG_HTC_PASIC3 is not set | ||
645 | # CONFIG_MFD_TMIO is not set | ||
646 | |||
647 | # | ||
648 | # Multimedia devices | ||
649 | # | ||
650 | |||
651 | # | ||
652 | # Multimedia core support | ||
653 | # | ||
654 | # CONFIG_VIDEO_DEV is not set | ||
655 | # CONFIG_DVB_CORE is not set | ||
656 | # CONFIG_VIDEO_MEDIA is not set | ||
657 | |||
658 | # | ||
659 | # Multimedia drivers | ||
660 | # | ||
661 | # CONFIG_DAB is not set | ||
662 | |||
663 | # | ||
664 | # Graphics support | ||
665 | # | ||
666 | # CONFIG_VGASTATE is not set | ||
667 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
668 | CONFIG_FB=y | ||
669 | # CONFIG_FIRMWARE_EDID is not set | ||
670 | # CONFIG_FB_DDC is not set | ||
671 | CONFIG_FB_CFB_FILLRECT=y | ||
672 | CONFIG_FB_CFB_COPYAREA=y | ||
673 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
674 | # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set | ||
675 | # CONFIG_FB_SYS_FILLRECT is not set | ||
676 | # CONFIG_FB_SYS_COPYAREA is not set | ||
677 | # CONFIG_FB_SYS_IMAGEBLIT is not set | ||
678 | # CONFIG_FB_FOREIGN_ENDIAN is not set | ||
679 | # CONFIG_FB_SYS_FOPS is not set | ||
680 | # CONFIG_FB_SVGALIB is not set | ||
681 | # CONFIG_FB_MACMODES is not set | ||
682 | # CONFIG_FB_BACKLIGHT is not set | ||
683 | # CONFIG_FB_MODE_HELPERS is not set | ||
684 | # CONFIG_FB_TILEBLITTING is not set | ||
685 | |||
686 | # | ||
687 | # Frame buffer hardware drivers | ||
688 | # | ||
689 | # CONFIG_FB_S1D13XXX is not set | ||
690 | CONFIG_FB_ATMEL=y | ||
691 | # CONFIG_FB_VIRTUAL is not set | ||
692 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
693 | |||
694 | # | ||
695 | # Display device support | ||
696 | # | ||
697 | # CONFIG_DISPLAY_SUPPORT is not set | ||
698 | # CONFIG_LOGO is not set | ||
699 | # CONFIG_SOUND is not set | ||
700 | # CONFIG_USB_SUPPORT is not set | ||
701 | CONFIG_MMC=y | ||
702 | # CONFIG_MMC_DEBUG is not set | ||
703 | # CONFIG_MMC_UNSAFE_RESUME is not set | ||
704 | |||
705 | # | ||
706 | # MMC/SD Card Drivers | ||
707 | # | ||
708 | CONFIG_MMC_BLOCK=y | ||
709 | CONFIG_MMC_BLOCK_BOUNCE=y | ||
710 | # CONFIG_SDIO_UART is not set | ||
711 | CONFIG_MMC_TEST=y | ||
712 | |||
713 | # | ||
714 | # MMC/SD Host Controller Drivers | ||
715 | # | ||
716 | # CONFIG_MMC_SDHCI is not set | ||
717 | CONFIG_MMC_ATMELMCI=y | ||
718 | # CONFIG_MMC_ATMELMCI_DMA is not set | ||
719 | CONFIG_MMC_SPI=y | ||
720 | # CONFIG_MEMSTICK is not set | ||
721 | CONFIG_NEW_LEDS=y | ||
722 | CONFIG_LEDS_CLASS=y | ||
723 | |||
724 | # | ||
725 | # LED drivers | ||
726 | # | ||
727 | CONFIG_LEDS_GPIO=y | ||
728 | # CONFIG_LEDS_PCA955X is not set | ||
729 | |||
730 | # | ||
731 | # LED Triggers | ||
732 | # | ||
733 | CONFIG_LEDS_TRIGGERS=y | ||
734 | CONFIG_LEDS_TRIGGER_TIMER=y | ||
735 | CONFIG_LEDS_TRIGGER_HEARTBEAT=y | ||
736 | CONFIG_LEDS_TRIGGER_DEFAULT_ON=y | ||
737 | # CONFIG_ACCESSIBILITY is not set | ||
738 | CONFIG_RTC_LIB=y | ||
739 | CONFIG_RTC_CLASS=y | ||
740 | CONFIG_RTC_HCTOSYS=y | ||
741 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
742 | # CONFIG_RTC_DEBUG is not set | ||
743 | |||
744 | # | ||
745 | # RTC interfaces | ||
746 | # | ||
747 | CONFIG_RTC_INTF_SYSFS=y | ||
748 | CONFIG_RTC_INTF_PROC=y | ||
749 | CONFIG_RTC_INTF_DEV=y | ||
750 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
751 | # CONFIG_RTC_DRV_TEST is not set | ||
752 | |||
753 | # | ||
754 | # I2C RTC drivers | ||
755 | # | ||
756 | # CONFIG_RTC_DRV_DS1307 is not set | ||
757 | # CONFIG_RTC_DRV_DS1374 is not set | ||
758 | # CONFIG_RTC_DRV_DS1672 is not set | ||
759 | # CONFIG_RTC_DRV_MAX6900 is not set | ||
760 | # CONFIG_RTC_DRV_RS5C372 is not set | ||
761 | # CONFIG_RTC_DRV_ISL1208 is not set | ||
762 | # CONFIG_RTC_DRV_X1205 is not set | ||
763 | # CONFIG_RTC_DRV_PCF8563 is not set | ||
764 | # CONFIG_RTC_DRV_PCF8583 is not set | ||
765 | # CONFIG_RTC_DRV_M41T80 is not set | ||
766 | # CONFIG_RTC_DRV_S35390A is not set | ||
767 | # CONFIG_RTC_DRV_FM3130 is not set | ||
768 | |||
769 | # | ||
770 | # SPI RTC drivers | ||
771 | # | ||
772 | # CONFIG_RTC_DRV_M41T94 is not set | ||
773 | # CONFIG_RTC_DRV_DS1305 is not set | ||
774 | CONFIG_RTC_DRV_DS1390=y | ||
775 | # CONFIG_RTC_DRV_MAX6902 is not set | ||
776 | # CONFIG_RTC_DRV_R9701 is not set | ||
777 | # CONFIG_RTC_DRV_RS5C348 is not set | ||
778 | |||
779 | # | ||
780 | # Platform RTC drivers | ||
781 | # | ||
782 | # CONFIG_RTC_DRV_DS1511 is not set | ||
783 | # CONFIG_RTC_DRV_DS1553 is not set | ||
784 | # CONFIG_RTC_DRV_DS1742 is not set | ||
785 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
786 | # CONFIG_RTC_DRV_M48T86 is not set | ||
787 | # CONFIG_RTC_DRV_M48T59 is not set | ||
788 | # CONFIG_RTC_DRV_V3020 is not set | ||
789 | |||
790 | # | ||
791 | # on-CPU RTC drivers | ||
792 | # | ||
793 | # CONFIG_RTC_DRV_AT32AP700X is not set | ||
794 | CONFIG_DMADEVICES=y | ||
795 | |||
796 | # | ||
797 | # DMA Devices | ||
798 | # | ||
799 | CONFIG_DW_DMAC=y | ||
800 | CONFIG_DMA_ENGINE=y | ||
801 | |||
802 | # | ||
803 | # DMA Clients | ||
804 | # | ||
805 | # CONFIG_NET_DMA is not set | ||
806 | # CONFIG_DMATEST is not set | ||
807 | # CONFIG_UIO is not set | ||
808 | |||
809 | # | ||
810 | # File systems | ||
811 | # | ||
812 | CONFIG_EXT2_FS=y | ||
813 | # CONFIG_EXT2_FS_XATTR is not set | ||
814 | # CONFIG_EXT2_FS_XIP is not set | ||
815 | CONFIG_EXT3_FS=y | ||
816 | # CONFIG_EXT3_FS_XATTR is not set | ||
817 | # CONFIG_EXT4DEV_FS is not set | ||
818 | CONFIG_JBD=y | ||
819 | # CONFIG_REISERFS_FS is not set | ||
820 | # CONFIG_JFS_FS is not set | ||
821 | # CONFIG_FS_POSIX_ACL is not set | ||
822 | # CONFIG_XFS_FS is not set | ||
823 | # CONFIG_OCFS2_FS is not set | ||
824 | # CONFIG_DNOTIFY is not set | ||
825 | CONFIG_INOTIFY=y | ||
826 | CONFIG_INOTIFY_USER=y | ||
827 | # CONFIG_QUOTA is not set | ||
828 | # CONFIG_AUTOFS_FS is not set | ||
829 | # CONFIG_AUTOFS4_FS is not set | ||
830 | # CONFIG_FUSE_FS is not set | ||
831 | |||
832 | # | ||
833 | # CD-ROM/DVD Filesystems | ||
834 | # | ||
835 | # CONFIG_ISO9660_FS is not set | ||
836 | # CONFIG_UDF_FS is not set | ||
837 | |||
838 | # | ||
839 | # DOS/FAT/NT Filesystems | ||
840 | # | ||
841 | CONFIG_FAT_FS=y | ||
842 | CONFIG_MSDOS_FS=y | ||
843 | CONFIG_VFAT_FS=y | ||
844 | CONFIG_FAT_DEFAULT_CODEPAGE=850 | ||
845 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
846 | # CONFIG_NTFS_FS is not set | ||
847 | |||
848 | # | ||
849 | # Pseudo filesystems | ||
850 | # | ||
851 | CONFIG_PROC_FS=y | ||
852 | # CONFIG_PROC_KCORE is not set | ||
853 | CONFIG_PROC_SYSCTL=y | ||
854 | CONFIG_SYSFS=y | ||
855 | CONFIG_TMPFS=y | ||
856 | # CONFIG_TMPFS_POSIX_ACL is not set | ||
857 | # CONFIG_HUGETLB_PAGE is not set | ||
858 | CONFIG_CONFIGFS_FS=y | ||
859 | |||
860 | # | ||
861 | # Miscellaneous filesystems | ||
862 | # | ||
863 | # CONFIG_ADFS_FS is not set | ||
864 | # CONFIG_AFFS_FS is not set | ||
865 | # CONFIG_HFS_FS is not set | ||
866 | # CONFIG_HFSPLUS_FS is not set | ||
867 | # CONFIG_BEFS_FS is not set | ||
868 | # CONFIG_BFS_FS is not set | ||
869 | # CONFIG_EFS_FS is not set | ||
870 | CONFIG_JFFS2_FS=y | ||
871 | CONFIG_JFFS2_FS_DEBUG=0 | ||
872 | CONFIG_JFFS2_FS_WRITEBUFFER=y | ||
873 | # CONFIG_JFFS2_FS_WBUF_VERIFY is not set | ||
874 | # CONFIG_JFFS2_SUMMARY is not set | ||
875 | # CONFIG_JFFS2_FS_XATTR is not set | ||
876 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | ||
877 | CONFIG_JFFS2_ZLIB=y | ||
878 | # CONFIG_JFFS2_LZO is not set | ||
879 | CONFIG_JFFS2_RTIME=y | ||
880 | # CONFIG_JFFS2_RUBIN is not set | ||
881 | # CONFIG_CRAMFS is not set | ||
882 | # CONFIG_VXFS_FS is not set | ||
883 | # CONFIG_MINIX_FS is not set | ||
884 | # CONFIG_OMFS_FS is not set | ||
885 | # CONFIG_HPFS_FS is not set | ||
886 | # CONFIG_QNX4FS_FS is not set | ||
887 | # CONFIG_ROMFS_FS is not set | ||
888 | # CONFIG_SYSV_FS is not set | ||
889 | # CONFIG_UFS_FS is not set | ||
890 | CONFIG_NETWORK_FILESYSTEMS=y | ||
891 | CONFIG_NFS_FS=y | ||
892 | CONFIG_NFS_V3=y | ||
893 | # CONFIG_NFS_V3_ACL is not set | ||
894 | # CONFIG_NFS_V4 is not set | ||
895 | CONFIG_ROOT_NFS=y | ||
896 | # CONFIG_NFSD is not set | ||
897 | CONFIG_LOCKD=y | ||
898 | CONFIG_LOCKD_V4=y | ||
899 | CONFIG_NFS_COMMON=y | ||
900 | CONFIG_SUNRPC=y | ||
901 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
902 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
903 | # CONFIG_SMB_FS is not set | ||
904 | # CONFIG_CIFS is not set | ||
905 | # CONFIG_NCP_FS is not set | ||
906 | # CONFIG_CODA_FS is not set | ||
907 | # CONFIG_AFS_FS is not set | ||
908 | |||
909 | # | ||
910 | # Partition Types | ||
911 | # | ||
912 | # CONFIG_PARTITION_ADVANCED is not set | ||
913 | CONFIG_MSDOS_PARTITION=y | ||
914 | CONFIG_NLS=y | ||
915 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
916 | CONFIG_NLS_CODEPAGE_437=y | ||
917 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
918 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
919 | CONFIG_NLS_CODEPAGE_850=y | ||
920 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
921 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
922 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
923 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
924 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
925 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
926 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
927 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
928 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
929 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
930 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
931 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
932 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
933 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
934 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
935 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
936 | # CONFIG_NLS_ISO8859_8 is not set | ||
937 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
938 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
939 | # CONFIG_NLS_ASCII is not set | ||
940 | CONFIG_NLS_ISO8859_1=y | ||
941 | # CONFIG_NLS_ISO8859_2 is not set | ||
942 | # CONFIG_NLS_ISO8859_3 is not set | ||
943 | # CONFIG_NLS_ISO8859_4 is not set | ||
944 | # CONFIG_NLS_ISO8859_5 is not set | ||
945 | # CONFIG_NLS_ISO8859_6 is not set | ||
946 | # CONFIG_NLS_ISO8859_7 is not set | ||
947 | # CONFIG_NLS_ISO8859_9 is not set | ||
948 | # CONFIG_NLS_ISO8859_13 is not set | ||
949 | # CONFIG_NLS_ISO8859_14 is not set | ||
950 | # CONFIG_NLS_ISO8859_15 is not set | ||
951 | # CONFIG_NLS_KOI8_R is not set | ||
952 | # CONFIG_NLS_KOI8_U is not set | ||
953 | CONFIG_NLS_UTF8=y | ||
954 | # CONFIG_DLM is not set | ||
955 | |||
956 | # | ||
957 | # Kernel hacking | ||
958 | # | ||
959 | # CONFIG_PRINTK_TIME is not set | ||
960 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
961 | CONFIG_ENABLE_MUST_CHECK=y | ||
962 | CONFIG_FRAME_WARN=1024 | ||
963 | CONFIG_MAGIC_SYSRQ=y | ||
964 | # CONFIG_UNUSED_SYMBOLS is not set | ||
965 | # CONFIG_DEBUG_FS is not set | ||
966 | # CONFIG_HEADERS_CHECK is not set | ||
967 | CONFIG_DEBUG_KERNEL=y | ||
968 | # CONFIG_DEBUG_SHIRQ is not set | ||
969 | CONFIG_DETECT_SOFTLOCKUP=y | ||
970 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | ||
971 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | ||
972 | CONFIG_SCHED_DEBUG=y | ||
973 | # CONFIG_SCHEDSTATS is not set | ||
974 | # CONFIG_TIMER_STATS is not set | ||
975 | # CONFIG_DEBUG_OBJECTS is not set | ||
976 | # CONFIG_SLUB_DEBUG_ON is not set | ||
977 | # CONFIG_SLUB_STATS is not set | ||
978 | # CONFIG_DEBUG_RT_MUTEXES is not set | ||
979 | # CONFIG_RT_MUTEX_TESTER is not set | ||
980 | # CONFIG_DEBUG_SPINLOCK is not set | ||
981 | # CONFIG_DEBUG_MUTEXES is not set | ||
982 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
983 | # CONFIG_PROVE_LOCKING is not set | ||
984 | # CONFIG_LOCK_STAT is not set | ||
985 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
986 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | ||
987 | # CONFIG_DEBUG_KOBJECT is not set | ||
988 | CONFIG_DEBUG_BUGVERBOSE=y | ||
989 | # CONFIG_DEBUG_INFO is not set | ||
990 | # CONFIG_DEBUG_VM is not set | ||
991 | # CONFIG_DEBUG_WRITECOUNT is not set | ||
992 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
993 | # CONFIG_DEBUG_LIST is not set | ||
994 | # CONFIG_DEBUG_SG is not set | ||
995 | CONFIG_FRAME_POINTER=y | ||
996 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
997 | # CONFIG_RCU_TORTURE_TEST is not set | ||
998 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
999 | # CONFIG_FAULT_INJECTION is not set | ||
1000 | # CONFIG_SAMPLES is not set | ||
1001 | |||
1002 | # | ||
1003 | # Security options | ||
1004 | # | ||
1005 | # CONFIG_KEYS is not set | ||
1006 | # CONFIG_SECURITY is not set | ||
1007 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
1008 | CONFIG_CRYPTO=y | ||
1009 | |||
1010 | # | ||
1011 | # Crypto core or helper | ||
1012 | # | ||
1013 | CONFIG_CRYPTO_ALGAPI=y | ||
1014 | CONFIG_CRYPTO_AEAD=y | ||
1015 | CONFIG_CRYPTO_BLKCIPHER=y | ||
1016 | CONFIG_CRYPTO_HASH=y | ||
1017 | CONFIG_CRYPTO_MANAGER=y | ||
1018 | # CONFIG_CRYPTO_GF128MUL is not set | ||
1019 | # CONFIG_CRYPTO_NULL is not set | ||
1020 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1021 | CONFIG_CRYPTO_AUTHENC=y | ||
1022 | |||
1023 | # | ||
1024 | # Authenticated Encryption with Associated Data | ||
1025 | # | ||
1026 | # CONFIG_CRYPTO_CCM is not set | ||
1027 | # CONFIG_CRYPTO_GCM is not set | ||
1028 | # CONFIG_CRYPTO_SEQIV is not set | ||
1029 | |||
1030 | # | ||
1031 | # Block modes | ||
1032 | # | ||
1033 | CONFIG_CRYPTO_CBC=y | ||
1034 | # CONFIG_CRYPTO_CTR is not set | ||
1035 | # CONFIG_CRYPTO_CTS is not set | ||
1036 | CONFIG_CRYPTO_ECB=y | ||
1037 | # CONFIG_CRYPTO_LRW is not set | ||
1038 | CONFIG_CRYPTO_PCBC=y | ||
1039 | # CONFIG_CRYPTO_XTS is not set | ||
1040 | |||
1041 | # | ||
1042 | # Hash modes | ||
1043 | # | ||
1044 | CONFIG_CRYPTO_HMAC=y | ||
1045 | # CONFIG_CRYPTO_XCBC is not set | ||
1046 | |||
1047 | # | ||
1048 | # Digest | ||
1049 | # | ||
1050 | # CONFIG_CRYPTO_CRC32C is not set | ||
1051 | # CONFIG_CRYPTO_MD4 is not set | ||
1052 | CONFIG_CRYPTO_MD5=y | ||
1053 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
1054 | # CONFIG_CRYPTO_RMD128 is not set | ||
1055 | # CONFIG_CRYPTO_RMD160 is not set | ||
1056 | # CONFIG_CRYPTO_RMD256 is not set | ||
1057 | # CONFIG_CRYPTO_RMD320 is not set | ||
1058 | CONFIG_CRYPTO_SHA1=y | ||
1059 | # CONFIG_CRYPTO_SHA256 is not set | ||
1060 | # CONFIG_CRYPTO_SHA512 is not set | ||
1061 | # CONFIG_CRYPTO_TGR192 is not set | ||
1062 | # CONFIG_CRYPTO_WP512 is not set | ||
1063 | |||
1064 | # | ||
1065 | # Ciphers | ||
1066 | # | ||
1067 | # CONFIG_CRYPTO_AES is not set | ||
1068 | # CONFIG_CRYPTO_ANUBIS is not set | ||
1069 | CONFIG_CRYPTO_ARC4=y | ||
1070 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
1071 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1072 | # CONFIG_CRYPTO_CAST5 is not set | ||
1073 | # CONFIG_CRYPTO_CAST6 is not set | ||
1074 | CONFIG_CRYPTO_DES=y | ||
1075 | # CONFIG_CRYPTO_FCRYPT is not set | ||
1076 | # CONFIG_CRYPTO_KHAZAD is not set | ||
1077 | # CONFIG_CRYPTO_SALSA20 is not set | ||
1078 | # CONFIG_CRYPTO_SEED is not set | ||
1079 | # CONFIG_CRYPTO_SERPENT is not set | ||
1080 | # CONFIG_CRYPTO_TEA is not set | ||
1081 | # CONFIG_CRYPTO_TWOFISH is not set | ||
1082 | |||
1083 | # | ||
1084 | # Compression | ||
1085 | # | ||
1086 | CONFIG_CRYPTO_DEFLATE=y | ||
1087 | # CONFIG_CRYPTO_LZO is not set | ||
1088 | CONFIG_CRYPTO_HW=y | ||
1089 | |||
1090 | # | ||
1091 | # Library routines | ||
1092 | # | ||
1093 | CONFIG_BITREVERSE=y | ||
1094 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
1095 | # CONFIG_GENERIC_FIND_NEXT_BIT is not set | ||
1096 | CONFIG_CRC_CCITT=y | ||
1097 | # CONFIG_CRC16 is not set | ||
1098 | # CONFIG_CRC_T10DIF is not set | ||
1099 | CONFIG_CRC_ITU_T=y | ||
1100 | CONFIG_CRC32=y | ||
1101 | CONFIG_CRC7=y | ||
1102 | # CONFIG_LIBCRC32C is not set | ||
1103 | CONFIG_ZLIB_INFLATE=y | ||
1104 | CONFIG_ZLIB_DEFLATE=y | ||
1105 | CONFIG_GENERIC_ALLOCATOR=y | ||
1106 | CONFIG_PLIST=y | ||
1107 | CONFIG_HAS_IOMEM=y | ||
1108 | CONFIG_HAS_IOPORT=y | ||
1109 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/avr32/mach-at32ap/at32ap700x.c b/arch/avr32/mach-at32ap/at32ap700x.c index 813b6844cdf6..0c6e02f80a31 100644 --- a/arch/avr32/mach-at32ap/at32ap700x.c +++ b/arch/avr32/mach-at32ap/at32ap700x.c | |||
@@ -813,7 +813,7 @@ static struct resource pio4_resource[] = { | |||
813 | DEFINE_DEV(pio, 4); | 813 | DEFINE_DEV(pio, 4); |
814 | DEV_CLK(mck, pio4, pba, 14); | 814 | DEV_CLK(mck, pio4, pba, 14); |
815 | 815 | ||
816 | void __init at32_add_system_devices(void) | 816 | static int __init system_device_init(void) |
817 | { | 817 | { |
818 | platform_device_register(&at32_pm0_device); | 818 | platform_device_register(&at32_pm0_device); |
819 | platform_device_register(&at32_intc0_device); | 819 | platform_device_register(&at32_intc0_device); |
@@ -832,7 +832,10 @@ void __init at32_add_system_devices(void) | |||
832 | platform_device_register(&pio2_device); | 832 | platform_device_register(&pio2_device); |
833 | platform_device_register(&pio3_device); | 833 | platform_device_register(&pio3_device); |
834 | platform_device_register(&pio4_device); | 834 | platform_device_register(&pio4_device); |
835 | |||
836 | return 0; | ||
835 | } | 837 | } |
838 | core_initcall(system_device_init); | ||
836 | 839 | ||
837 | /* -------------------------------------------------------------------- | 840 | /* -------------------------------------------------------------------- |
838 | * PSIF | 841 | * PSIF |
@@ -1091,7 +1094,9 @@ at32_add_device_eth(unsigned int id, struct eth_platform_data *data) | |||
1091 | pin_mask |= (1 << 11); /* RXD2 */ | 1094 | pin_mask |= (1 << 11); /* RXD2 */ |
1092 | pin_mask |= (1 << 12); /* RXD3 */ | 1095 | pin_mask |= (1 << 12); /* RXD3 */ |
1093 | pin_mask |= (1 << 14); /* RXCK */ | 1096 | pin_mask |= (1 << 14); /* RXCK */ |
1097 | #ifndef CONFIG_BOARD_MIMC200 | ||
1094 | pin_mask |= (1 << 18); /* SPD */ | 1098 | pin_mask |= (1 << 18); /* SPD */ |
1099 | #endif | ||
1095 | } | 1100 | } |
1096 | 1101 | ||
1097 | select_peripheral(PIOC, pin_mask, PERIPH_A, 0); | 1102 | select_peripheral(PIOC, pin_mask, PERIPH_A, 0); |
@@ -1112,8 +1117,10 @@ at32_add_device_eth(unsigned int id, struct eth_platform_data *data) | |||
1112 | pin_mask |= (1 << 3); /* MDC */ | 1117 | pin_mask |= (1 << 3); /* MDC */ |
1113 | pin_mask |= (1 << 2); /* MDIO */ | 1118 | pin_mask |= (1 << 2); /* MDIO */ |
1114 | 1119 | ||
1120 | #ifndef CONFIG_BOARD_MIMC200 | ||
1115 | if (!data->is_rmii) | 1121 | if (!data->is_rmii) |
1116 | pin_mask |= (1 << 15); /* SPD */ | 1122 | pin_mask |= (1 << 15); /* SPD */ |
1123 | #endif | ||
1117 | 1124 | ||
1118 | select_peripheral(PIOD, pin_mask, PERIPH_B, 0); | 1125 | select_peripheral(PIOD, pin_mask, PERIPH_B, 0); |
1119 | 1126 | ||
@@ -1470,7 +1477,7 @@ at32_add_device_lcdc(unsigned int id, struct atmel_lcdfb_info *data, | |||
1470 | pin_mask = ATMEL_LCDC_PRI_24BIT | ATMEL_LCDC_PRI_CONTROL; | 1477 | pin_mask = ATMEL_LCDC_PRI_24BIT | ATMEL_LCDC_PRI_CONTROL; |
1471 | 1478 | ||
1472 | /* LCDC on port C */ | 1479 | /* LCDC on port C */ |
1473 | portc_mask = (pin_mask & 0xfff80000) >> 19; | 1480 | portc_mask = pin_mask & 0xfff80000; |
1474 | select_peripheral(PIOC, portc_mask, PERIPH_A, 0); | 1481 | select_peripheral(PIOC, portc_mask, PERIPH_A, 0); |
1475 | 1482 | ||
1476 | /* LCDC on port D */ | 1483 | /* LCDC on port D */ |
diff --git a/arch/avr32/mach-at32ap/cpufreq.c b/arch/avr32/mach-at32ap/cpufreq.c index d84efe4984ab..024c586e936c 100644 --- a/arch/avr32/mach-at32ap/cpufreq.c +++ b/arch/avr32/mach-at32ap/cpufreq.c | |||
@@ -40,6 +40,9 @@ static unsigned int at32_get_speed(unsigned int cpu) | |||
40 | return (unsigned int)((clk_get_rate(cpuclk) + 500) / 1000); | 40 | return (unsigned int)((clk_get_rate(cpuclk) + 500) / 1000); |
41 | } | 41 | } |
42 | 42 | ||
43 | static unsigned int ref_freq; | ||
44 | static unsigned long loops_per_jiffy_ref; | ||
45 | |||
43 | static int at32_set_target(struct cpufreq_policy *policy, | 46 | static int at32_set_target(struct cpufreq_policy *policy, |
44 | unsigned int target_freq, | 47 | unsigned int target_freq, |
45 | unsigned int relation) | 48 | unsigned int relation) |
@@ -61,8 +64,19 @@ static int at32_set_target(struct cpufreq_policy *policy, | |||
61 | freqs.cpu = 0; | 64 | freqs.cpu = 0; |
62 | freqs.flags = 0; | 65 | freqs.flags = 0; |
63 | 66 | ||
67 | if (!ref_freq) { | ||
68 | ref_freq = freqs.old; | ||
69 | loops_per_jiffy_ref = boot_cpu_data.loops_per_jiffy; | ||
70 | } | ||
71 | |||
64 | cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); | 72 | cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); |
73 | if (freqs.old < freqs.new) | ||
74 | boot_cpu_data.loops_per_jiffy = cpufreq_scale( | ||
75 | loops_per_jiffy_ref, ref_freq, freqs.new); | ||
65 | clk_set_rate(cpuclk, freq); | 76 | clk_set_rate(cpuclk, freq); |
77 | if (freqs.new < freqs.old) | ||
78 | boot_cpu_data.loops_per_jiffy = cpufreq_scale( | ||
79 | loops_per_jiffy_ref, ref_freq, freqs.new); | ||
66 | cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); | 80 | cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); |
67 | 81 | ||
68 | pr_debug("cpufreq: set frequency %lu Hz\n", freq); | 82 | pr_debug("cpufreq: set frequency %lu Hz\n", freq); |
diff --git a/arch/avr32/mach-at32ap/include/mach/board.h b/arch/avr32/mach-at32ap/include/mach/board.h index c48386d66bc3..aafaf7a78886 100644 --- a/arch/avr32/mach-at32ap/include/mach/board.h +++ b/arch/avr32/mach-at32ap/include/mach/board.h | |||
@@ -14,8 +14,14 @@ | |||
14 | */ | 14 | */ |
15 | extern unsigned long at32_board_osc_rates[]; | 15 | extern unsigned long at32_board_osc_rates[]; |
16 | 16 | ||
17 | /* Add basic devices: system manager, interrupt controller, portmuxes, etc. */ | 17 | /* |
18 | void at32_add_system_devices(void); | 18 | * This used to add essential system devices, but this is now done |
19 | * automatically. Please don't use it in new board code. | ||
20 | */ | ||
21 | static inline void __deprecated at32_add_system_devices(void) | ||
22 | { | ||
23 | |||
24 | } | ||
19 | 25 | ||
20 | #define ATMEL_MAX_UART 4 | 26 | #define ATMEL_MAX_UART 4 |
21 | extern struct platform_device *atmel_default_console_device; | 27 | extern struct platform_device *atmel_default_console_device; |
diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig index 07335e719bf8..b17aeea8d620 100644 --- a/arch/cris/Kconfig +++ b/arch/cris/Kconfig | |||
@@ -679,6 +679,8 @@ source "fs/Kconfig" | |||
679 | 679 | ||
680 | source "drivers/usb/Kconfig" | 680 | source "drivers/usb/Kconfig" |
681 | 681 | ||
682 | source "drivers/uwb/Kconfig" | ||
683 | |||
682 | source "arch/cris/Kconfig.debug" | 684 | source "arch/cris/Kconfig.debug" |
683 | 685 | ||
684 | source "security/Kconfig" | 686 | source "security/Kconfig" |
diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig index bd1995403c67..28f06fd9b7b7 100644 --- a/arch/h8300/Kconfig +++ b/arch/h8300/Kconfig | |||
@@ -216,6 +216,8 @@ source "drivers/hwmon/Kconfig" | |||
216 | 216 | ||
217 | source "drivers/usb/Kconfig" | 217 | source "drivers/usb/Kconfig" |
218 | 218 | ||
219 | source "drivers/uwb/Kconfig" | ||
220 | |||
219 | endmenu | 221 | endmenu |
220 | 222 | ||
221 | source "fs/Kconfig" | 223 | source "fs/Kconfig" |
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index 912c57db2d21..27eec71429b0 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig | |||
@@ -23,6 +23,7 @@ config IA64 | |||
23 | select HAVE_KRETPROBES | 23 | select HAVE_KRETPROBES |
24 | select HAVE_DMA_ATTRS | 24 | select HAVE_DMA_ATTRS |
25 | select HAVE_KVM | 25 | select HAVE_KVM |
26 | select HAVE_ARCH_TRACEHOOK | ||
26 | default y | 27 | default y |
27 | help | 28 | help |
28 | The Itanium Processor Family is Intel's 64-bit successor to | 29 | The Itanium Processor Family is Intel's 64-bit successor to |
@@ -110,6 +111,33 @@ config AUDIT_ARCH | |||
110 | bool | 111 | bool |
111 | default y | 112 | default y |
112 | 113 | ||
114 | menuconfig PARAVIRT_GUEST | ||
115 | bool "Paravirtualized guest support" | ||
116 | help | ||
117 | Say Y here to get to see options related to running Linux under | ||
118 | various hypervisors. This option alone does not add any kernel code. | ||
119 | |||
120 | If you say N, all options in this submenu will be skipped and disabled. | ||
121 | |||
122 | if PARAVIRT_GUEST | ||
123 | |||
124 | config PARAVIRT | ||
125 | bool "Enable paravirtualization code" | ||
126 | depends on PARAVIRT_GUEST | ||
127 | default y | ||
128 | bool | ||
129 | default y | ||
130 | help | ||
131 | This changes the kernel so it can modify itself when it is run | ||
132 | under a hypervisor, potentially improving performance significantly | ||
133 | over full virtualization. However, when run without a hypervisor | ||
134 | the kernel is theoretically slower and slightly larger. | ||
135 | |||
136 | |||
137 | source "arch/ia64/xen/Kconfig" | ||
138 | |||
139 | endif | ||
140 | |||
113 | choice | 141 | choice |
114 | prompt "System type" | 142 | prompt "System type" |
115 | default IA64_GENERIC | 143 | default IA64_GENERIC |
@@ -119,6 +147,7 @@ config IA64_GENERIC | |||
119 | select NUMA | 147 | select NUMA |
120 | select ACPI_NUMA | 148 | select ACPI_NUMA |
121 | select SWIOTLB | 149 | select SWIOTLB |
150 | select PCI_MSI | ||
122 | help | 151 | help |
123 | This selects the system type of your hardware. A "generic" kernel | 152 | This selects the system type of your hardware. A "generic" kernel |
124 | will run on any supported IA-64 system. However, if you configure | 153 | will run on any supported IA-64 system. However, if you configure |
@@ -126,11 +155,13 @@ config IA64_GENERIC | |||
126 | 155 | ||
127 | generic For any supported IA-64 system | 156 | generic For any supported IA-64 system |
128 | DIG-compliant For DIG ("Developer's Interface Guide") compliant systems | 157 | DIG-compliant For DIG ("Developer's Interface Guide") compliant systems |
158 | DIG+Intel+IOMMU For DIG systems with Intel IOMMU | ||
129 | HP-zx1/sx1000 For HP systems | 159 | HP-zx1/sx1000 For HP systems |
130 | HP-zx1/sx1000+swiotlb For HP systems with (broken) DMA-constrained devices. | 160 | HP-zx1/sx1000+swiotlb For HP systems with (broken) DMA-constrained devices. |
131 | SGI-SN2 For SGI Altix systems | 161 | SGI-SN2 For SGI Altix systems |
132 | SGI-UV For SGI UV systems | 162 | SGI-UV For SGI UV systems |
133 | Ski-simulator For the HP simulator <http://www.hpl.hp.com/research/linux/ski/> | 163 | Ski-simulator For the HP simulator <http://www.hpl.hp.com/research/linux/ski/> |
164 | Xen-domU For xen domU system | ||
134 | 165 | ||
135 | If you don't know what to do, choose "generic". | 166 | If you don't know what to do, choose "generic". |
136 | 167 | ||
@@ -138,6 +169,11 @@ config IA64_DIG | |||
138 | bool "DIG-compliant" | 169 | bool "DIG-compliant" |
139 | select SWIOTLB | 170 | select SWIOTLB |
140 | 171 | ||
172 | config IA64_DIG_VTD | ||
173 | bool "DIG+Intel+IOMMU" | ||
174 | select DMAR | ||
175 | select PCI_MSI | ||
176 | |||
141 | config IA64_HP_ZX1 | 177 | config IA64_HP_ZX1 |
142 | bool "HP-zx1/sx1000" | 178 | bool "HP-zx1/sx1000" |
143 | help | 179 | help |
@@ -181,6 +217,10 @@ config IA64_HP_SIM | |||
181 | bool "Ski-simulator" | 217 | bool "Ski-simulator" |
182 | select SWIOTLB | 218 | select SWIOTLB |
183 | 219 | ||
220 | config IA64_XEN_GUEST | ||
221 | bool "Xen guest" | ||
222 | depends on XEN | ||
223 | |||
184 | endchoice | 224 | endchoice |
185 | 225 | ||
186 | choice | 226 | choice |
@@ -583,6 +623,16 @@ source "drivers/pci/hotplug/Kconfig" | |||
583 | 623 | ||
584 | source "drivers/pcmcia/Kconfig" | 624 | source "drivers/pcmcia/Kconfig" |
585 | 625 | ||
626 | config DMAR | ||
627 | bool "Support for DMA Remapping Devices (EXPERIMENTAL)" | ||
628 | depends on IA64_GENERIC && ACPI && EXPERIMENTAL | ||
629 | help | ||
630 | DMA remapping (DMAR) devices support enables independent address | ||
631 | translations for Direct Memory Access (DMA) from devices. | ||
632 | These DMA remapping devices are reported via ACPI tables | ||
633 | and include PCI device scope covered by these DMA | ||
634 | remapping devices. | ||
635 | |||
586 | endmenu | 636 | endmenu |
587 | 637 | ||
588 | endif | 638 | endif |
diff --git a/arch/ia64/Makefile b/arch/ia64/Makefile index 905d25b13d5a..58a7e46affda 100644 --- a/arch/ia64/Makefile +++ b/arch/ia64/Makefile | |||
@@ -53,12 +53,15 @@ libs-y += arch/ia64/lib/ | |||
53 | core-y += arch/ia64/kernel/ arch/ia64/mm/ | 53 | core-y += arch/ia64/kernel/ arch/ia64/mm/ |
54 | core-$(CONFIG_IA32_SUPPORT) += arch/ia64/ia32/ | 54 | core-$(CONFIG_IA32_SUPPORT) += arch/ia64/ia32/ |
55 | core-$(CONFIG_IA64_DIG) += arch/ia64/dig/ | 55 | core-$(CONFIG_IA64_DIG) += arch/ia64/dig/ |
56 | core-$(CONFIG_IA64_DIG_VTD) += arch/ia64/dig/ | ||
56 | core-$(CONFIG_IA64_GENERIC) += arch/ia64/dig/ | 57 | core-$(CONFIG_IA64_GENERIC) += arch/ia64/dig/ |
57 | core-$(CONFIG_IA64_HP_ZX1) += arch/ia64/dig/ | 58 | core-$(CONFIG_IA64_HP_ZX1) += arch/ia64/dig/ |
58 | core-$(CONFIG_IA64_HP_ZX1_SWIOTLB) += arch/ia64/dig/ | 59 | core-$(CONFIG_IA64_HP_ZX1_SWIOTLB) += arch/ia64/dig/ |
60 | core-$(CONFIG_IA64_XEN_GUEST) += arch/ia64/dig/ | ||
59 | core-$(CONFIG_IA64_SGI_SN2) += arch/ia64/sn/ | 61 | core-$(CONFIG_IA64_SGI_SN2) += arch/ia64/sn/ |
60 | core-$(CONFIG_IA64_SGI_UV) += arch/ia64/uv/ | 62 | core-$(CONFIG_IA64_SGI_UV) += arch/ia64/uv/ |
61 | core-$(CONFIG_KVM) += arch/ia64/kvm/ | 63 | core-$(CONFIG_KVM) += arch/ia64/kvm/ |
64 | core-$(CONFIG_XEN) += arch/ia64/xen/ | ||
62 | 65 | ||
63 | drivers-$(CONFIG_PCI) += arch/ia64/pci/ | 66 | drivers-$(CONFIG_PCI) += arch/ia64/pci/ |
64 | drivers-$(CONFIG_IA64_HP_SIM) += arch/ia64/hp/sim/ | 67 | drivers-$(CONFIG_IA64_HP_SIM) += arch/ia64/hp/sim/ |
diff --git a/arch/ia64/configs/generic_defconfig b/arch/ia64/configs/generic_defconfig index 9f483976228f..e05f9e1d3faa 100644 --- a/arch/ia64/configs/generic_defconfig +++ b/arch/ia64/configs/generic_defconfig | |||
@@ -233,6 +233,8 @@ CONFIG_DMIID=y | |||
233 | CONFIG_BINFMT_ELF=y | 233 | CONFIG_BINFMT_ELF=y |
234 | CONFIG_BINFMT_MISC=m | 234 | CONFIG_BINFMT_MISC=m |
235 | 235 | ||
236 | # CONFIG_DMAR is not set | ||
237 | |||
236 | # | 238 | # |
237 | # Power management and ACPI | 239 | # Power management and ACPI |
238 | # | 240 | # |
diff --git a/arch/ia64/configs/tiger_defconfig b/arch/ia64/configs/tiger_defconfig index 797acf9066c1..c522edf23c62 100644 --- a/arch/ia64/configs/tiger_defconfig +++ b/arch/ia64/configs/tiger_defconfig | |||
@@ -172,6 +172,8 @@ CONFIG_DMIID=y | |||
172 | CONFIG_BINFMT_ELF=y | 172 | CONFIG_BINFMT_ELF=y |
173 | CONFIG_BINFMT_MISC=m | 173 | CONFIG_BINFMT_MISC=m |
174 | 174 | ||
175 | # CONFIG_DMAR is not set | ||
176 | |||
175 | # | 177 | # |
176 | # Power management and ACPI | 178 | # Power management and ACPI |
177 | # | 179 | # |
diff --git a/arch/ia64/dig/Makefile b/arch/ia64/dig/Makefile index 971cd7870dd4..5c0283830bd6 100644 --- a/arch/ia64/dig/Makefile +++ b/arch/ia64/dig/Makefile | |||
@@ -6,4 +6,9 @@ | |||
6 | # | 6 | # |
7 | 7 | ||
8 | obj-y := setup.o | 8 | obj-y := setup.o |
9 | ifeq ($(CONFIG_DMAR), y) | ||
10 | obj-$(CONFIG_IA64_GENERIC) += machvec.o machvec_vtd.o dig_vtd_iommu.o | ||
11 | else | ||
9 | obj-$(CONFIG_IA64_GENERIC) += machvec.o | 12 | obj-$(CONFIG_IA64_GENERIC) += machvec.o |
13 | endif | ||
14 | obj-$(CONFIG_IA64_DIG_VTD) += dig_vtd_iommu.o | ||
diff --git a/arch/ia64/dig/dig_vtd_iommu.c b/arch/ia64/dig/dig_vtd_iommu.c new file mode 100644 index 000000000000..1c8a079017a3 --- /dev/null +++ b/arch/ia64/dig/dig_vtd_iommu.c | |||
@@ -0,0 +1,59 @@ | |||
1 | #include <linux/types.h> | ||
2 | #include <linux/kernel.h> | ||
3 | #include <linux/module.h> | ||
4 | #include <linux/intel-iommu.h> | ||
5 | |||
6 | void * | ||
7 | vtd_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle, | ||
8 | gfp_t flags) | ||
9 | { | ||
10 | return intel_alloc_coherent(dev, size, dma_handle, flags); | ||
11 | } | ||
12 | EXPORT_SYMBOL_GPL(vtd_alloc_coherent); | ||
13 | |||
14 | void | ||
15 | vtd_free_coherent(struct device *dev, size_t size, void *vaddr, | ||
16 | dma_addr_t dma_handle) | ||
17 | { | ||
18 | intel_free_coherent(dev, size, vaddr, dma_handle); | ||
19 | } | ||
20 | EXPORT_SYMBOL_GPL(vtd_free_coherent); | ||
21 | |||
22 | dma_addr_t | ||
23 | vtd_map_single_attrs(struct device *dev, void *addr, size_t size, | ||
24 | int dir, struct dma_attrs *attrs) | ||
25 | { | ||
26 | return intel_map_single(dev, (phys_addr_t)addr, size, dir); | ||
27 | } | ||
28 | EXPORT_SYMBOL_GPL(vtd_map_single_attrs); | ||
29 | |||
30 | void | ||
31 | vtd_unmap_single_attrs(struct device *dev, dma_addr_t iova, size_t size, | ||
32 | int dir, struct dma_attrs *attrs) | ||
33 | { | ||
34 | intel_unmap_single(dev, iova, size, dir); | ||
35 | } | ||
36 | EXPORT_SYMBOL_GPL(vtd_unmap_single_attrs); | ||
37 | |||
38 | int | ||
39 | vtd_map_sg_attrs(struct device *dev, struct scatterlist *sglist, int nents, | ||
40 | int dir, struct dma_attrs *attrs) | ||
41 | { | ||
42 | return intel_map_sg(dev, sglist, nents, dir); | ||
43 | } | ||
44 | EXPORT_SYMBOL_GPL(vtd_map_sg_attrs); | ||
45 | |||
46 | void | ||
47 | vtd_unmap_sg_attrs(struct device *dev, struct scatterlist *sglist, | ||
48 | int nents, int dir, struct dma_attrs *attrs) | ||
49 | { | ||
50 | intel_unmap_sg(dev, sglist, nents, dir); | ||
51 | } | ||
52 | EXPORT_SYMBOL_GPL(vtd_unmap_sg_attrs); | ||
53 | |||
54 | int | ||
55 | vtd_dma_mapping_error(struct device *dev, dma_addr_t dma_addr) | ||
56 | { | ||
57 | return 0; | ||
58 | } | ||
59 | EXPORT_SYMBOL_GPL(vtd_dma_mapping_error); | ||
diff --git a/arch/ia64/dig/machvec_vtd.c b/arch/ia64/dig/machvec_vtd.c new file mode 100644 index 000000000000..7cd3eb471cad --- /dev/null +++ b/arch/ia64/dig/machvec_vtd.c | |||
@@ -0,0 +1,3 @@ | |||
1 | #define MACHVEC_PLATFORM_NAME dig_vtd | ||
2 | #define MACHVEC_PLATFORM_HEADER <asm/machvec_dig_vtd.h> | ||
3 | #include <asm/machvec_init.h> | ||
diff --git a/arch/ia64/ia32/audit.c b/arch/ia64/ia32/audit.c index 5e901c75df1b..5c93ddd1e42d 100644 --- a/arch/ia64/ia32/audit.c +++ b/arch/ia64/ia32/audit.c | |||
@@ -1,4 +1,4 @@ | |||
1 | #include <asm-x86/unistd_32.h> | 1 | #include "../../x86/include/asm/unistd_32.h" |
2 | 2 | ||
3 | unsigned ia32_dir_class[] = { | 3 | unsigned ia32_dir_class[] = { |
4 | #include <asm-generic/audit_dir_write.h> | 4 | #include <asm-generic/audit_dir_write.h> |
diff --git a/arch/ia64/ia32/ia32_entry.S b/arch/ia64/ia32/ia32_entry.S index 53505bb04771..a8cf19958850 100644 --- a/arch/ia64/ia32/ia32_entry.S +++ b/arch/ia64/ia32/ia32_entry.S | |||
@@ -108,6 +108,11 @@ GLOBAL_ENTRY(ia32_trace_syscall) | |||
108 | ;; | 108 | ;; |
109 | st8 [r2]=r3 // initialize return code to -ENOSYS | 109 | st8 [r2]=r3 // initialize return code to -ENOSYS |
110 | br.call.sptk.few rp=syscall_trace_enter // give parent a chance to catch syscall args | 110 | br.call.sptk.few rp=syscall_trace_enter // give parent a chance to catch syscall args |
111 | cmp.lt p6,p0=r8,r0 // check tracehook | ||
112 | adds r2=IA64_PT_REGS_R8_OFFSET+16,sp // r2 = &pt_regs.r8 | ||
113 | ;; | ||
114 | (p6) st8.spill [r2]=r8 // store return value in slot for r8 | ||
115 | (p6) br.spnt.few .ret4 | ||
111 | .ret2: // Need to reload arguments (they may be changed by the tracing process) | 116 | .ret2: // Need to reload arguments (they may be changed by the tracing process) |
112 | adds r2=IA64_PT_REGS_R1_OFFSET+16,sp // r2 = &pt_regs.r1 | 117 | adds r2=IA64_PT_REGS_R1_OFFSET+16,sp // r2 = &pt_regs.r1 |
113 | adds r3=IA64_PT_REGS_R13_OFFSET+16,sp // r3 = &pt_regs.r13 | 118 | adds r3=IA64_PT_REGS_R13_OFFSET+16,sp // r3 = &pt_regs.r13 |
@@ -199,10 +204,10 @@ ia32_syscall_table: | |||
199 | data8 sys_setuid /* 16-bit version */ | 204 | data8 sys_setuid /* 16-bit version */ |
200 | data8 sys_getuid /* 16-bit version */ | 205 | data8 sys_getuid /* 16-bit version */ |
201 | data8 compat_sys_stime /* 25 */ | 206 | data8 compat_sys_stime /* 25 */ |
202 | data8 sys32_ptrace | 207 | data8 compat_sys_ptrace |
203 | data8 sys32_alarm | 208 | data8 sys32_alarm |
204 | data8 sys_ni_syscall | 209 | data8 sys_ni_syscall |
205 | data8 sys32_pause | 210 | data8 sys_pause |
206 | data8 compat_sys_utime /* 30 */ | 211 | data8 compat_sys_utime /* 30 */ |
207 | data8 sys_ni_syscall /* old stty syscall holder */ | 212 | data8 sys_ni_syscall /* old stty syscall holder */ |
208 | data8 sys_ni_syscall /* old gtty syscall holder */ | 213 | data8 sys_ni_syscall /* old gtty syscall holder */ |
@@ -215,7 +220,7 @@ ia32_syscall_table: | |||
215 | data8 sys_mkdir | 220 | data8 sys_mkdir |
216 | data8 sys_rmdir /* 40 */ | 221 | data8 sys_rmdir /* 40 */ |
217 | data8 sys_dup | 222 | data8 sys_dup |
218 | data8 sys32_pipe | 223 | data8 sys_pipe |
219 | data8 compat_sys_times | 224 | data8 compat_sys_times |
220 | data8 sys_ni_syscall /* old prof syscall holder */ | 225 | data8 sys_ni_syscall /* old prof syscall holder */ |
221 | data8 sys32_brk /* 45 */ | 226 | data8 sys32_brk /* 45 */ |
diff --git a/arch/ia64/ia32/sys_ia32.c b/arch/ia64/ia32/sys_ia32.c index f4430bb4bbdc..5e92ae00bdbb 100644 --- a/arch/ia64/ia32/sys_ia32.c +++ b/arch/ia64/ia32/sys_ia32.c | |||
@@ -1098,21 +1098,6 @@ sys32_mremap (unsigned int addr, unsigned int old_len, unsigned int new_len, | |||
1098 | return ret; | 1098 | return ret; |
1099 | } | 1099 | } |
1100 | 1100 | ||
1101 | asmlinkage long | ||
1102 | sys32_pipe (int __user *fd) | ||
1103 | { | ||
1104 | int retval; | ||
1105 | int fds[2]; | ||
1106 | |||
1107 | retval = do_pipe_flags(fds, 0); | ||
1108 | if (retval) | ||
1109 | goto out; | ||
1110 | if (copy_to_user(fd, fds, sizeof(fds))) | ||
1111 | retval = -EFAULT; | ||
1112 | out: | ||
1113 | return retval; | ||
1114 | } | ||
1115 | |||
1116 | asmlinkage unsigned long | 1101 | asmlinkage unsigned long |
1117 | sys32_alarm (unsigned int seconds) | 1102 | sys32_alarm (unsigned int seconds) |
1118 | { | 1103 | { |
@@ -1209,25 +1194,6 @@ sys32_waitpid (int pid, unsigned int *stat_addr, int options) | |||
1209 | return compat_sys_wait4(pid, stat_addr, options, NULL); | 1194 | return compat_sys_wait4(pid, stat_addr, options, NULL); |
1210 | } | 1195 | } |
1211 | 1196 | ||
1212 | static unsigned int | ||
1213 | ia32_peek (struct task_struct *child, unsigned long addr, unsigned int *val) | ||
1214 | { | ||
1215 | size_t copied; | ||
1216 | unsigned int ret; | ||
1217 | |||
1218 | copied = access_process_vm(child, addr, val, sizeof(*val), 0); | ||
1219 | return (copied != sizeof(ret)) ? -EIO : 0; | ||
1220 | } | ||
1221 | |||
1222 | static unsigned int | ||
1223 | ia32_poke (struct task_struct *child, unsigned long addr, unsigned int val) | ||
1224 | { | ||
1225 | |||
1226 | if (access_process_vm(child, addr, &val, sizeof(val), 1) != sizeof(val)) | ||
1227 | return -EIO; | ||
1228 | return 0; | ||
1229 | } | ||
1230 | |||
1231 | /* | 1197 | /* |
1232 | * The order in which registers are stored in the ptrace regs structure | 1198 | * The order in which registers are stored in the ptrace regs structure |
1233 | */ | 1199 | */ |
@@ -1525,49 +1491,15 @@ restore_ia32_fpxstate (struct task_struct *tsk, struct ia32_user_fxsr_struct __u | |||
1525 | return 0; | 1491 | return 0; |
1526 | } | 1492 | } |
1527 | 1493 | ||
1528 | asmlinkage long | 1494 | long compat_arch_ptrace(struct task_struct *child, compat_long_t request, |
1529 | sys32_ptrace (int request, pid_t pid, unsigned int addr, unsigned int data) | 1495 | compat_ulong_t caddr, compat_ulong_t cdata) |
1530 | { | 1496 | { |
1531 | struct task_struct *child; | 1497 | unsigned long addr = caddr; |
1532 | unsigned int value, tmp; | 1498 | unsigned long data = cdata; |
1499 | unsigned int tmp; | ||
1533 | long i, ret; | 1500 | long i, ret; |
1534 | 1501 | ||
1535 | lock_kernel(); | ||
1536 | if (request == PTRACE_TRACEME) { | ||
1537 | ret = ptrace_traceme(); | ||
1538 | goto out; | ||
1539 | } | ||
1540 | |||
1541 | child = ptrace_get_task_struct(pid); | ||
1542 | if (IS_ERR(child)) { | ||
1543 | ret = PTR_ERR(child); | ||
1544 | goto out; | ||
1545 | } | ||
1546 | |||
1547 | if (request == PTRACE_ATTACH) { | ||
1548 | ret = sys_ptrace(request, pid, addr, data); | ||
1549 | goto out_tsk; | ||
1550 | } | ||
1551 | |||
1552 | ret = ptrace_check_attach(child, request == PTRACE_KILL); | ||
1553 | if (ret < 0) | ||
1554 | goto out_tsk; | ||
1555 | |||
1556 | switch (request) { | 1502 | switch (request) { |
1557 | case PTRACE_PEEKTEXT: | ||
1558 | case PTRACE_PEEKDATA: /* read word at location addr */ | ||
1559 | ret = ia32_peek(child, addr, &value); | ||
1560 | if (ret == 0) | ||
1561 | ret = put_user(value, (unsigned int __user *) compat_ptr(data)); | ||
1562 | else | ||
1563 | ret = -EIO; | ||
1564 | goto out_tsk; | ||
1565 | |||
1566 | case PTRACE_POKETEXT: | ||
1567 | case PTRACE_POKEDATA: /* write the word at location addr */ | ||
1568 | ret = ia32_poke(child, addr, data); | ||
1569 | goto out_tsk; | ||
1570 | |||
1571 | case PTRACE_PEEKUSR: /* read word at addr in USER area */ | 1503 | case PTRACE_PEEKUSR: /* read word at addr in USER area */ |
1572 | ret = -EIO; | 1504 | ret = -EIO; |
1573 | if ((addr & 3) || addr > 17*sizeof(int)) | 1505 | if ((addr & 3) || addr > 17*sizeof(int)) |
@@ -1632,27 +1564,9 @@ sys32_ptrace (int request, pid_t pid, unsigned int addr, unsigned int data) | |||
1632 | compat_ptr(data)); | 1564 | compat_ptr(data)); |
1633 | break; | 1565 | break; |
1634 | 1566 | ||
1635 | case PTRACE_GETEVENTMSG: | ||
1636 | ret = put_user(child->ptrace_message, (unsigned int __user *) compat_ptr(data)); | ||
1637 | break; | ||
1638 | |||
1639 | case PTRACE_SYSCALL: /* continue, stop after next syscall */ | ||
1640 | case PTRACE_CONT: /* restart after signal. */ | ||
1641 | case PTRACE_KILL: | ||
1642 | case PTRACE_SINGLESTEP: /* execute chile for one instruction */ | ||
1643 | case PTRACE_DETACH: /* detach a process */ | ||
1644 | ret = sys_ptrace(request, pid, addr, data); | ||
1645 | break; | ||
1646 | |||
1647 | default: | 1567 | default: |
1648 | ret = ptrace_request(child, request, addr, data); | 1568 | return compat_ptrace_request(child, request, caddr, cdata); |
1649 | break; | ||
1650 | |||
1651 | } | 1569 | } |
1652 | out_tsk: | ||
1653 | put_task_struct(child); | ||
1654 | out: | ||
1655 | unlock_kernel(); | ||
1656 | return ret; | 1570 | return ret; |
1657 | } | 1571 | } |
1658 | 1572 | ||
@@ -1704,14 +1618,6 @@ out: | |||
1704 | } | 1618 | } |
1705 | 1619 | ||
1706 | asmlinkage int | 1620 | asmlinkage int |
1707 | sys32_pause (void) | ||
1708 | { | ||
1709 | current->state = TASK_INTERRUPTIBLE; | ||
1710 | schedule(); | ||
1711 | return -ERESTARTNOHAND; | ||
1712 | } | ||
1713 | |||
1714 | asmlinkage int | ||
1715 | sys32_msync (unsigned int start, unsigned int len, int flags) | 1621 | sys32_msync (unsigned int start, unsigned int len, int flags) |
1716 | { | 1622 | { |
1717 | unsigned int addr; | 1623 | unsigned int addr; |
diff --git a/arch/ia64/include/asm/break.h b/arch/ia64/include/asm/break.h index f03402039896..e90c40ec9edf 100644 --- a/arch/ia64/include/asm/break.h +++ b/arch/ia64/include/asm/break.h | |||
@@ -20,4 +20,13 @@ | |||
20 | */ | 20 | */ |
21 | #define __IA64_BREAK_SYSCALL 0x100000 | 21 | #define __IA64_BREAK_SYSCALL 0x100000 |
22 | 22 | ||
23 | /* | ||
24 | * Xen specific break numbers: | ||
25 | */ | ||
26 | #define __IA64_XEN_HYPERCALL 0x1000 | ||
27 | /* [__IA64_XEN_HYPERPRIVOP_START, __IA64_XEN_HYPERPRIVOP_MAX] is used | ||
28 | for xen hyperprivops */ | ||
29 | #define __IA64_XEN_HYPERPRIVOP_START 0x1 | ||
30 | #define __IA64_XEN_HYPERPRIVOP_MAX 0x1a | ||
31 | |||
23 | #endif /* _ASM_IA64_BREAK_H */ | 32 | #endif /* _ASM_IA64_BREAK_H */ |
diff --git a/arch/ia64/include/asm/cacheflush.h b/arch/ia64/include/asm/cacheflush.h index afcfbda76e20..c8ce2719fee8 100644 --- a/arch/ia64/include/asm/cacheflush.h +++ b/arch/ia64/include/asm/cacheflush.h | |||
@@ -34,6 +34,8 @@ do { \ | |||
34 | #define flush_dcache_mmap_unlock(mapping) do { } while (0) | 34 | #define flush_dcache_mmap_unlock(mapping) do { } while (0) |
35 | 35 | ||
36 | extern void flush_icache_range (unsigned long start, unsigned long end); | 36 | extern void flush_icache_range (unsigned long start, unsigned long end); |
37 | extern void clflush_cache_range(void *addr, int size); | ||
38 | |||
37 | 39 | ||
38 | #define flush_icache_user_range(vma, page, user_addr, len) \ | 40 | #define flush_icache_user_range(vma, page, user_addr, len) \ |
39 | do { \ | 41 | do { \ |
diff --git a/arch/ia64/include/asm/device.h b/arch/ia64/include/asm/device.h index 3db6daf7f251..41ab85d66f33 100644 --- a/arch/ia64/include/asm/device.h +++ b/arch/ia64/include/asm/device.h | |||
@@ -10,6 +10,9 @@ struct dev_archdata { | |||
10 | #ifdef CONFIG_ACPI | 10 | #ifdef CONFIG_ACPI |
11 | void *acpi_handle; | 11 | void *acpi_handle; |
12 | #endif | 12 | #endif |
13 | #ifdef CONFIG_DMAR | ||
14 | void *iommu; /* hook for IOMMU specific extension */ | ||
15 | #endif | ||
13 | }; | 16 | }; |
14 | 17 | ||
15 | #endif /* _ASM_IA64_DEVICE_H */ | 18 | #endif /* _ASM_IA64_DEVICE_H */ |
diff --git a/arch/ia64/include/asm/dma-mapping.h b/arch/ia64/include/asm/dma-mapping.h index 06ff1ba21465..bbab7e2b0fc9 100644 --- a/arch/ia64/include/asm/dma-mapping.h +++ b/arch/ia64/include/asm/dma-mapping.h | |||
@@ -7,6 +7,49 @@ | |||
7 | */ | 7 | */ |
8 | #include <asm/machvec.h> | 8 | #include <asm/machvec.h> |
9 | #include <linux/scatterlist.h> | 9 | #include <linux/scatterlist.h> |
10 | #include <asm/swiotlb.h> | ||
11 | |||
12 | struct dma_mapping_ops { | ||
13 | int (*mapping_error)(struct device *dev, | ||
14 | dma_addr_t dma_addr); | ||
15 | void* (*alloc_coherent)(struct device *dev, size_t size, | ||
16 | dma_addr_t *dma_handle, gfp_t gfp); | ||
17 | void (*free_coherent)(struct device *dev, size_t size, | ||
18 | void *vaddr, dma_addr_t dma_handle); | ||
19 | dma_addr_t (*map_single)(struct device *hwdev, unsigned long ptr, | ||
20 | size_t size, int direction); | ||
21 | void (*unmap_single)(struct device *dev, dma_addr_t addr, | ||
22 | size_t size, int direction); | ||
23 | void (*sync_single_for_cpu)(struct device *hwdev, | ||
24 | dma_addr_t dma_handle, size_t size, | ||
25 | int direction); | ||
26 | void (*sync_single_for_device)(struct device *hwdev, | ||
27 | dma_addr_t dma_handle, size_t size, | ||
28 | int direction); | ||
29 | void (*sync_single_range_for_cpu)(struct device *hwdev, | ||
30 | dma_addr_t dma_handle, unsigned long offset, | ||
31 | size_t size, int direction); | ||
32 | void (*sync_single_range_for_device)(struct device *hwdev, | ||
33 | dma_addr_t dma_handle, unsigned long offset, | ||
34 | size_t size, int direction); | ||
35 | void (*sync_sg_for_cpu)(struct device *hwdev, | ||
36 | struct scatterlist *sg, int nelems, | ||
37 | int direction); | ||
38 | void (*sync_sg_for_device)(struct device *hwdev, | ||
39 | struct scatterlist *sg, int nelems, | ||
40 | int direction); | ||
41 | int (*map_sg)(struct device *hwdev, struct scatterlist *sg, | ||
42 | int nents, int direction); | ||
43 | void (*unmap_sg)(struct device *hwdev, | ||
44 | struct scatterlist *sg, int nents, | ||
45 | int direction); | ||
46 | int (*dma_supported_op)(struct device *hwdev, u64 mask); | ||
47 | int is_phys; | ||
48 | }; | ||
49 | |||
50 | extern struct dma_mapping_ops *dma_ops; | ||
51 | extern struct ia64_machine_vector ia64_mv; | ||
52 | extern void set_iommu_machvec(void); | ||
10 | 53 | ||
11 | #define dma_alloc_coherent(dev, size, handle, gfp) \ | 54 | #define dma_alloc_coherent(dev, size, handle, gfp) \ |
12 | platform_dma_alloc_coherent(dev, size, handle, (gfp) | GFP_DMA) | 55 | platform_dma_alloc_coherent(dev, size, handle, (gfp) | GFP_DMA) |
@@ -96,4 +139,11 @@ dma_cache_sync (struct device *dev, void *vaddr, size_t size, | |||
96 | 139 | ||
97 | #define dma_is_consistent(d, h) (1) /* all we do is coherent memory... */ | 140 | #define dma_is_consistent(d, h) (1) /* all we do is coherent memory... */ |
98 | 141 | ||
142 | static inline struct dma_mapping_ops *get_dma_ops(struct device *dev) | ||
143 | { | ||
144 | return dma_ops; | ||
145 | } | ||
146 | |||
147 | |||
148 | |||
99 | #endif /* _ASM_IA64_DMA_MAPPING_H */ | 149 | #endif /* _ASM_IA64_DMA_MAPPING_H */ |
diff --git a/arch/ia64/include/asm/iommu.h b/arch/ia64/include/asm/iommu.h new file mode 100644 index 000000000000..5fb2bb93de3b --- /dev/null +++ b/arch/ia64/include/asm/iommu.h | |||
@@ -0,0 +1,16 @@ | |||
1 | #ifndef _ASM_IA64_IOMMU_H | ||
2 | #define _ASM_IA64_IOMMU_H 1 | ||
3 | |||
4 | #define cpu_has_x2apic 0 | ||
5 | /* 10 seconds */ | ||
6 | #define DMAR_OPERATION_TIMEOUT (((cycles_t) local_cpu_data->itc_freq)*10) | ||
7 | |||
8 | extern void pci_iommu_shutdown(void); | ||
9 | extern void no_iommu_init(void); | ||
10 | extern int force_iommu, no_iommu; | ||
11 | extern int iommu_detected; | ||
12 | extern void iommu_dma_init(void); | ||
13 | extern void machvec_init(const char *name); | ||
14 | extern int forbid_dac; | ||
15 | |||
16 | #endif | ||
diff --git a/arch/ia64/include/asm/kregs.h b/arch/ia64/include/asm/kregs.h index aefcdfee7f23..39e65f6639f5 100644 --- a/arch/ia64/include/asm/kregs.h +++ b/arch/ia64/include/asm/kregs.h | |||
@@ -32,7 +32,7 @@ | |||
32 | #define IA64_TR_CURRENT_STACK 1 /* dtr1: maps kernel's memory- & register-stacks */ | 32 | #define IA64_TR_CURRENT_STACK 1 /* dtr1: maps kernel's memory- & register-stacks */ |
33 | 33 | ||
34 | #define IA64_TR_ALLOC_BASE 2 /* itr&dtr: Base of dynamic TR resource*/ | 34 | #define IA64_TR_ALLOC_BASE 2 /* itr&dtr: Base of dynamic TR resource*/ |
35 | #define IA64_TR_ALLOC_MAX 32 /* Max number for dynamic use*/ | 35 | #define IA64_TR_ALLOC_MAX 64 /* Max number for dynamic use*/ |
36 | 36 | ||
37 | /* Processor status register bits: */ | 37 | /* Processor status register bits: */ |
38 | #define IA64_PSR_BE_BIT 1 | 38 | #define IA64_PSR_BE_BIT 1 |
diff --git a/arch/ia64/include/asm/machvec.h b/arch/ia64/include/asm/machvec.h index 2b850ccafef5..1ea28bcee33b 100644 --- a/arch/ia64/include/asm/machvec.h +++ b/arch/ia64/include/asm/machvec.h | |||
@@ -120,6 +120,8 @@ extern void machvec_tlb_migrate_finish (struct mm_struct *); | |||
120 | # include <asm/machvec_hpsim.h> | 120 | # include <asm/machvec_hpsim.h> |
121 | # elif defined (CONFIG_IA64_DIG) | 121 | # elif defined (CONFIG_IA64_DIG) |
122 | # include <asm/machvec_dig.h> | 122 | # include <asm/machvec_dig.h> |
123 | # elif defined(CONFIG_IA64_DIG_VTD) | ||
124 | # include <asm/machvec_dig_vtd.h> | ||
123 | # elif defined (CONFIG_IA64_HP_ZX1) | 125 | # elif defined (CONFIG_IA64_HP_ZX1) |
124 | # include <asm/machvec_hpzx1.h> | 126 | # include <asm/machvec_hpzx1.h> |
125 | # elif defined (CONFIG_IA64_HP_ZX1_SWIOTLB) | 127 | # elif defined (CONFIG_IA64_HP_ZX1_SWIOTLB) |
@@ -128,6 +130,8 @@ extern void machvec_tlb_migrate_finish (struct mm_struct *); | |||
128 | # include <asm/machvec_sn2.h> | 130 | # include <asm/machvec_sn2.h> |
129 | # elif defined (CONFIG_IA64_SGI_UV) | 131 | # elif defined (CONFIG_IA64_SGI_UV) |
130 | # include <asm/machvec_uv.h> | 132 | # include <asm/machvec_uv.h> |
133 | # elif defined (CONFIG_IA64_XEN_GUEST) | ||
134 | # include <asm/machvec_xen.h> | ||
131 | # elif defined (CONFIG_IA64_GENERIC) | 135 | # elif defined (CONFIG_IA64_GENERIC) |
132 | 136 | ||
133 | # ifdef MACHVEC_PLATFORM_HEADER | 137 | # ifdef MACHVEC_PLATFORM_HEADER |
diff --git a/arch/ia64/include/asm/machvec_dig_vtd.h b/arch/ia64/include/asm/machvec_dig_vtd.h new file mode 100644 index 000000000000..3400b561e711 --- /dev/null +++ b/arch/ia64/include/asm/machvec_dig_vtd.h | |||
@@ -0,0 +1,38 @@ | |||
1 | #ifndef _ASM_IA64_MACHVEC_DIG_VTD_h | ||
2 | #define _ASM_IA64_MACHVEC_DIG_VTD_h | ||
3 | |||
4 | extern ia64_mv_setup_t dig_setup; | ||
5 | extern ia64_mv_dma_alloc_coherent vtd_alloc_coherent; | ||
6 | extern ia64_mv_dma_free_coherent vtd_free_coherent; | ||
7 | extern ia64_mv_dma_map_single_attrs vtd_map_single_attrs; | ||
8 | extern ia64_mv_dma_unmap_single_attrs vtd_unmap_single_attrs; | ||
9 | extern ia64_mv_dma_map_sg_attrs vtd_map_sg_attrs; | ||
10 | extern ia64_mv_dma_unmap_sg_attrs vtd_unmap_sg_attrs; | ||
11 | extern ia64_mv_dma_supported iommu_dma_supported; | ||
12 | extern ia64_mv_dma_mapping_error vtd_dma_mapping_error; | ||
13 | extern ia64_mv_dma_init pci_iommu_alloc; | ||
14 | |||
15 | /* | ||
16 | * This stuff has dual use! | ||
17 | * | ||
18 | * For a generic kernel, the macros are used to initialize the | ||
19 | * platform's machvec structure. When compiling a non-generic kernel, | ||
20 | * the macros are used directly. | ||
21 | */ | ||
22 | #define platform_name "dig_vtd" | ||
23 | #define platform_setup dig_setup | ||
24 | #define platform_dma_init pci_iommu_alloc | ||
25 | #define platform_dma_alloc_coherent vtd_alloc_coherent | ||
26 | #define platform_dma_free_coherent vtd_free_coherent | ||
27 | #define platform_dma_map_single_attrs vtd_map_single_attrs | ||
28 | #define platform_dma_unmap_single_attrs vtd_unmap_single_attrs | ||
29 | #define platform_dma_map_sg_attrs vtd_map_sg_attrs | ||
30 | #define platform_dma_unmap_sg_attrs vtd_unmap_sg_attrs | ||
31 | #define platform_dma_sync_single_for_cpu machvec_dma_sync_single | ||
32 | #define platform_dma_sync_sg_for_cpu machvec_dma_sync_sg | ||
33 | #define platform_dma_sync_single_for_device machvec_dma_sync_single | ||
34 | #define platform_dma_sync_sg_for_device machvec_dma_sync_sg | ||
35 | #define platform_dma_supported iommu_dma_supported | ||
36 | #define platform_dma_mapping_error vtd_dma_mapping_error | ||
37 | |||
38 | #endif /* _ASM_IA64_MACHVEC_DIG_VTD_h */ | ||
diff --git a/arch/ia64/include/asm/machvec_init.h b/arch/ia64/include/asm/machvec_init.h index 7f21249fba3f..ef964b286842 100644 --- a/arch/ia64/include/asm/machvec_init.h +++ b/arch/ia64/include/asm/machvec_init.h | |||
@@ -1,3 +1,4 @@ | |||
1 | #include <asm/iommu.h> | ||
1 | #include <asm/machvec.h> | 2 | #include <asm/machvec.h> |
2 | 3 | ||
3 | extern ia64_mv_send_ipi_t ia64_send_ipi; | 4 | extern ia64_mv_send_ipi_t ia64_send_ipi; |
diff --git a/arch/ia64/include/asm/machvec_xen.h b/arch/ia64/include/asm/machvec_xen.h new file mode 100644 index 000000000000..55f9228056cd --- /dev/null +++ b/arch/ia64/include/asm/machvec_xen.h | |||
@@ -0,0 +1,22 @@ | |||
1 | #ifndef _ASM_IA64_MACHVEC_XEN_h | ||
2 | #define _ASM_IA64_MACHVEC_XEN_h | ||
3 | |||
4 | extern ia64_mv_setup_t dig_setup; | ||
5 | extern ia64_mv_cpu_init_t xen_cpu_init; | ||
6 | extern ia64_mv_irq_init_t xen_irq_init; | ||
7 | extern ia64_mv_send_ipi_t xen_platform_send_ipi; | ||
8 | |||
9 | /* | ||
10 | * This stuff has dual use! | ||
11 | * | ||
12 | * For a generic kernel, the macros are used to initialize the | ||
13 | * platform's machvec structure. When compiling a non-generic kernel, | ||
14 | * the macros are used directly. | ||
15 | */ | ||
16 | #define platform_name "xen" | ||
17 | #define platform_setup dig_setup | ||
18 | #define platform_cpu_init xen_cpu_init | ||
19 | #define platform_irq_init xen_irq_init | ||
20 | #define platform_send_ipi xen_platform_send_ipi | ||
21 | |||
22 | #endif /* _ASM_IA64_MACHVEC_XEN_h */ | ||
diff --git a/arch/ia64/include/asm/meminit.h b/arch/ia64/include/asm/meminit.h index 7245a5781594..6bc96ee54327 100644 --- a/arch/ia64/include/asm/meminit.h +++ b/arch/ia64/include/asm/meminit.h | |||
@@ -18,10 +18,11 @@ | |||
18 | * - crash dumping code reserved region | 18 | * - crash dumping code reserved region |
19 | * - Kernel memory map built from EFI memory map | 19 | * - Kernel memory map built from EFI memory map |
20 | * - ELF core header | 20 | * - ELF core header |
21 | * - xen start info if CONFIG_XEN | ||
21 | * | 22 | * |
22 | * More could be added if necessary | 23 | * More could be added if necessary |
23 | */ | 24 | */ |
24 | #define IA64_MAX_RSVD_REGIONS 8 | 25 | #define IA64_MAX_RSVD_REGIONS 9 |
25 | 26 | ||
26 | struct rsvd_region { | 27 | struct rsvd_region { |
27 | unsigned long start; /* virtual address of beginning of element */ | 28 | unsigned long start; /* virtual address of beginning of element */ |
diff --git a/arch/ia64/include/asm/native/inst.h b/arch/ia64/include/asm/native/inst.h index c8efbf7b849e..0a1026cca4fa 100644 --- a/arch/ia64/include/asm/native/inst.h +++ b/arch/ia64/include/asm/native/inst.h | |||
@@ -36,8 +36,13 @@ | |||
36 | ;; \ | 36 | ;; \ |
37 | movl clob = PARAVIRT_POISON; \ | 37 | movl clob = PARAVIRT_POISON; \ |
38 | ;; | 38 | ;; |
39 | # define CLOBBER_PRED(pred_clob) \ | ||
40 | ;; \ | ||
41 | cmp.eq pred_clob, p0 = r0, r0 \ | ||
42 | ;; | ||
39 | #else | 43 | #else |
40 | # define CLOBBER(clob) /* nothing */ | 44 | # define CLOBBER(clob) /* nothing */ |
45 | # define CLOBBER_PRED(pred_clob) /* nothing */ | ||
41 | #endif | 46 | #endif |
42 | 47 | ||
43 | #define MOV_FROM_IFA(reg) \ | 48 | #define MOV_FROM_IFA(reg) \ |
@@ -136,7 +141,8 @@ | |||
136 | 141 | ||
137 | #define SSM_PSR_I(pred, pred_clob, clob) \ | 142 | #define SSM_PSR_I(pred, pred_clob, clob) \ |
138 | (pred) ssm psr.i \ | 143 | (pred) ssm psr.i \ |
139 | CLOBBER(clob) | 144 | CLOBBER(clob) \ |
145 | CLOBBER_PRED(pred_clob) | ||
140 | 146 | ||
141 | #define RSM_PSR_I(pred, clob0, clob1) \ | 147 | #define RSM_PSR_I(pred, clob0, clob1) \ |
142 | (pred) rsm psr.i \ | 148 | (pred) rsm psr.i \ |
diff --git a/arch/ia64/include/asm/native/pvchk_inst.h b/arch/ia64/include/asm/native/pvchk_inst.h new file mode 100644 index 000000000000..b8e6eb1090d7 --- /dev/null +++ b/arch/ia64/include/asm/native/pvchk_inst.h | |||
@@ -0,0 +1,263 @@ | |||
1 | #ifndef _ASM_NATIVE_PVCHK_INST_H | ||
2 | #define _ASM_NATIVE_PVCHK_INST_H | ||
3 | |||
4 | /****************************************************************************** | ||
5 | * arch/ia64/include/asm/native/pvchk_inst.h | ||
6 | * Checker for paravirtualizations of privileged operations. | ||
7 | * | ||
8 | * Copyright (C) 2005 Hewlett-Packard Co | ||
9 | * Dan Magenheimer <dan.magenheimer@hp.com> | ||
10 | * | ||
11 | * Copyright (c) 2008 Isaku Yamahata <yamahata at valinux co jp> | ||
12 | * VA Linux Systems Japan K.K. | ||
13 | * | ||
14 | * This program is free software; you can redistribute it and/or modify | ||
15 | * it under the terms of the GNU General Public License as published by | ||
16 | * the Free Software Foundation; either version 2 of the License, or | ||
17 | * (at your option) any later version. | ||
18 | * | ||
19 | * This program is distributed in the hope that it will be useful, | ||
20 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
21 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
22 | * GNU General Public License for more details. | ||
23 | * | ||
24 | * You should have received a copy of the GNU General Public License | ||
25 | * along with this program; if not, write to the Free Software | ||
26 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
27 | * | ||
28 | */ | ||
29 | |||
30 | /********************************************** | ||
31 | * Instructions paravirtualized for correctness | ||
32 | **********************************************/ | ||
33 | |||
34 | /* "fc" and "thash" are privilege-sensitive instructions, meaning they | ||
35 | * may have different semantics depending on whether they are executed | ||
36 | * at PL0 vs PL!=0. When paravirtualized, these instructions mustn't | ||
37 | * be allowed to execute directly, lest incorrect semantics result. | ||
38 | */ | ||
39 | |||
40 | #define fc .error "fc should not be used directly." | ||
41 | #define thash .error "thash should not be used directly." | ||
42 | |||
43 | /* Note that "ttag" and "cover" are also privilege-sensitive; "ttag" | ||
44 | * is not currently used (though it may be in a long-format VHPT system!) | ||
45 | * and the semantics of cover only change if psr.ic is off which is very | ||
46 | * rare (and currently non-existent outside of assembly code | ||
47 | */ | ||
48 | #define ttag .error "ttag should not be used directly." | ||
49 | #define cover .error "cover should not be used directly." | ||
50 | |||
51 | /* There are also privilege-sensitive registers. These registers are | ||
52 | * readable at any privilege level but only writable at PL0. | ||
53 | */ | ||
54 | #define cpuid .error "cpuid should not be used directly." | ||
55 | #define pmd .error "pmd should not be used directly." | ||
56 | |||
57 | /* | ||
58 | * mov ar.eflag = | ||
59 | * mov = ar.eflag | ||
60 | */ | ||
61 | |||
62 | /********************************************** | ||
63 | * Instructions paravirtualized for performance | ||
64 | **********************************************/ | ||
65 | /* | ||
66 | * Those instructions include '.' which can't be handled by cpp. | ||
67 | * or can't be handled by cpp easily. | ||
68 | * They are handled by sed instead of cpp. | ||
69 | */ | ||
70 | |||
71 | /* for .S | ||
72 | * itc.i | ||
73 | * itc.d | ||
74 | * | ||
75 | * bsw.0 | ||
76 | * bsw.1 | ||
77 | * | ||
78 | * ssm psr.ic | PSR_DEFAULT_BITS | ||
79 | * ssm psr.ic | ||
80 | * rsm psr.ic | ||
81 | * ssm psr.i | ||
82 | * rsm psr.i | ||
83 | * rsm psr.i | psr.ic | ||
84 | * rsm psr.dt | ||
85 | * ssm psr.dt | ||
86 | * | ||
87 | * mov = cr.ifa | ||
88 | * mov = cr.itir | ||
89 | * mov = cr.isr | ||
90 | * mov = cr.iha | ||
91 | * mov = cr.ipsr | ||
92 | * mov = cr.iim | ||
93 | * mov = cr.iip | ||
94 | * mov = cr.ivr | ||
95 | * mov = psr | ||
96 | * | ||
97 | * mov cr.ifa = | ||
98 | * mov cr.itir = | ||
99 | * mov cr.iha = | ||
100 | * mov cr.ipsr = | ||
101 | * mov cr.ifs = | ||
102 | * mov cr.iip = | ||
103 | * mov cr.kr = | ||
104 | */ | ||
105 | |||
106 | /* for intrinsics | ||
107 | * ssm psr.i | ||
108 | * rsm psr.i | ||
109 | * mov = psr | ||
110 | * mov = ivr | ||
111 | * mov = tpr | ||
112 | * mov cr.itm = | ||
113 | * mov eoi = | ||
114 | * mov rr[] = | ||
115 | * mov = rr[] | ||
116 | * mov = kr | ||
117 | * mov kr = | ||
118 | * ptc.ga | ||
119 | */ | ||
120 | |||
121 | /************************************************************* | ||
122 | * define paravirtualized instrcution macros as nop to ingore. | ||
123 | * and check whether arguments are appropriate. | ||
124 | *************************************************************/ | ||
125 | |||
126 | /* check whether reg is a regular register */ | ||
127 | .macro is_rreg_in reg | ||
128 | .ifc "\reg", "r0" | ||
129 | nop 0 | ||
130 | .exitm | ||
131 | .endif | ||
132 | ;; | ||
133 | mov \reg = r0 | ||
134 | ;; | ||
135 | .endm | ||
136 | #define IS_RREG_IN(reg) is_rreg_in reg ; | ||
137 | |||
138 | #define IS_RREG_OUT(reg) \ | ||
139 | ;; \ | ||
140 | mov reg = r0 \ | ||
141 | ;; | ||
142 | |||
143 | #define IS_RREG_CLOB(reg) IS_RREG_OUT(reg) | ||
144 | |||
145 | /* check whether pred is a predicate register */ | ||
146 | #define IS_PRED_IN(pred) \ | ||
147 | ;; \ | ||
148 | (pred) nop 0 \ | ||
149 | ;; | ||
150 | |||
151 | #define IS_PRED_OUT(pred) \ | ||
152 | ;; \ | ||
153 | cmp.eq pred, p0 = r0, r0 \ | ||
154 | ;; | ||
155 | |||
156 | #define IS_PRED_CLOB(pred) IS_PRED_OUT(pred) | ||
157 | |||
158 | |||
159 | #define DO_SAVE_MIN(__COVER, SAVE_IFS, EXTRA, WORKAROUND) \ | ||
160 | nop 0 | ||
161 | #define MOV_FROM_IFA(reg) \ | ||
162 | IS_RREG_OUT(reg) | ||
163 | #define MOV_FROM_ITIR(reg) \ | ||
164 | IS_RREG_OUT(reg) | ||
165 | #define MOV_FROM_ISR(reg) \ | ||
166 | IS_RREG_OUT(reg) | ||
167 | #define MOV_FROM_IHA(reg) \ | ||
168 | IS_RREG_OUT(reg) | ||
169 | #define MOV_FROM_IPSR(pred, reg) \ | ||
170 | IS_PRED_IN(pred) \ | ||
171 | IS_RREG_OUT(reg) | ||
172 | #define MOV_FROM_IIM(reg) \ | ||
173 | IS_RREG_OUT(reg) | ||
174 | #define MOV_FROM_IIP(reg) \ | ||
175 | IS_RREG_OUT(reg) | ||
176 | #define MOV_FROM_IVR(reg, clob) \ | ||
177 | IS_RREG_OUT(reg) \ | ||
178 | IS_RREG_CLOB(clob) | ||
179 | #define MOV_FROM_PSR(pred, reg, clob) \ | ||
180 | IS_PRED_IN(pred) \ | ||
181 | IS_RREG_OUT(reg) \ | ||
182 | IS_RREG_CLOB(clob) | ||
183 | #define MOV_TO_IFA(reg, clob) \ | ||
184 | IS_RREG_IN(reg) \ | ||
185 | IS_RREG_CLOB(clob) | ||
186 | #define MOV_TO_ITIR(pred, reg, clob) \ | ||
187 | IS_PRED_IN(pred) \ | ||
188 | IS_RREG_IN(reg) \ | ||
189 | IS_RREG_CLOB(clob) | ||
190 | #define MOV_TO_IHA(pred, reg, clob) \ | ||
191 | IS_PRED_IN(pred) \ | ||
192 | IS_RREG_IN(reg) \ | ||
193 | IS_RREG_CLOB(clob) | ||
194 | #define MOV_TO_IPSR(pred, reg, clob) \ | ||
195 | IS_PRED_IN(pred) \ | ||
196 | IS_RREG_IN(reg) \ | ||
197 | IS_RREG_CLOB(clob) | ||
198 | #define MOV_TO_IFS(pred, reg, clob) \ | ||
199 | IS_PRED_IN(pred) \ | ||
200 | IS_RREG_IN(reg) \ | ||
201 | IS_RREG_CLOB(clob) | ||
202 | #define MOV_TO_IIP(reg, clob) \ | ||
203 | IS_RREG_IN(reg) \ | ||
204 | IS_RREG_CLOB(clob) | ||
205 | #define MOV_TO_KR(kr, reg, clob0, clob1) \ | ||
206 | IS_RREG_IN(reg) \ | ||
207 | IS_RREG_CLOB(clob0) \ | ||
208 | IS_RREG_CLOB(clob1) | ||
209 | #define ITC_I(pred, reg, clob) \ | ||
210 | IS_PRED_IN(pred) \ | ||
211 | IS_RREG_IN(reg) \ | ||
212 | IS_RREG_CLOB(clob) | ||
213 | #define ITC_D(pred, reg, clob) \ | ||
214 | IS_PRED_IN(pred) \ | ||
215 | IS_RREG_IN(reg) \ | ||
216 | IS_RREG_CLOB(clob) | ||
217 | #define ITC_I_AND_D(pred_i, pred_d, reg, clob) \ | ||
218 | IS_PRED_IN(pred_i) \ | ||
219 | IS_PRED_IN(pred_d) \ | ||
220 | IS_RREG_IN(reg) \ | ||
221 | IS_RREG_CLOB(clob) | ||
222 | #define THASH(pred, reg0, reg1, clob) \ | ||
223 | IS_PRED_IN(pred) \ | ||
224 | IS_RREG_OUT(reg0) \ | ||
225 | IS_RREG_IN(reg1) \ | ||
226 | IS_RREG_CLOB(clob) | ||
227 | #define SSM_PSR_IC_AND_DEFAULT_BITS_AND_SRLZ_I(clob0, clob1) \ | ||
228 | IS_RREG_CLOB(clob0) \ | ||
229 | IS_RREG_CLOB(clob1) | ||
230 | #define SSM_PSR_IC_AND_SRLZ_D(clob0, clob1) \ | ||
231 | IS_RREG_CLOB(clob0) \ | ||
232 | IS_RREG_CLOB(clob1) | ||
233 | #define RSM_PSR_IC(clob) \ | ||
234 | IS_RREG_CLOB(clob) | ||
235 | #define SSM_PSR_I(pred, pred_clob, clob) \ | ||
236 | IS_PRED_IN(pred) \ | ||
237 | IS_PRED_CLOB(pred_clob) \ | ||
238 | IS_RREG_CLOB(clob) | ||
239 | #define RSM_PSR_I(pred, clob0, clob1) \ | ||
240 | IS_PRED_IN(pred) \ | ||
241 | IS_RREG_CLOB(clob0) \ | ||
242 | IS_RREG_CLOB(clob1) | ||
243 | #define RSM_PSR_I_IC(clob0, clob1, clob2) \ | ||
244 | IS_RREG_CLOB(clob0) \ | ||
245 | IS_RREG_CLOB(clob1) \ | ||
246 | IS_RREG_CLOB(clob2) | ||
247 | #define RSM_PSR_DT \ | ||
248 | nop 0 | ||
249 | #define SSM_PSR_DT_AND_SRLZ_I \ | ||
250 | nop 0 | ||
251 | #define BSW_0(clob0, clob1, clob2) \ | ||
252 | IS_RREG_CLOB(clob0) \ | ||
253 | IS_RREG_CLOB(clob1) \ | ||
254 | IS_RREG_CLOB(clob2) | ||
255 | #define BSW_1(clob0, clob1) \ | ||
256 | IS_RREG_CLOB(clob0) \ | ||
257 | IS_RREG_CLOB(clob1) | ||
258 | #define COVER \ | ||
259 | nop 0 | ||
260 | #define RFI \ | ||
261 | br.ret.sptk.many rp /* defining nop causes dependency error */ | ||
262 | |||
263 | #endif /* _ASM_NATIVE_PVCHK_INST_H */ | ||
diff --git a/arch/ia64/include/asm/paravirt.h b/arch/ia64/include/asm/paravirt.h index 660cab044834..2bf3636473fe 100644 --- a/arch/ia64/include/asm/paravirt.h +++ b/arch/ia64/include/asm/paravirt.h | |||
@@ -117,7 +117,7 @@ static inline void paravirt_post_smp_prepare_boot_cpu(void) | |||
117 | struct pv_iosapic_ops { | 117 | struct pv_iosapic_ops { |
118 | void (*pcat_compat_init)(void); | 118 | void (*pcat_compat_init)(void); |
119 | 119 | ||
120 | struct irq_chip *(*get_irq_chip)(unsigned long trigger); | 120 | struct irq_chip *(*__get_irq_chip)(unsigned long trigger); |
121 | 121 | ||
122 | unsigned int (*__read)(char __iomem *iosapic, unsigned int reg); | 122 | unsigned int (*__read)(char __iomem *iosapic, unsigned int reg); |
123 | void (*__write)(char __iomem *iosapic, unsigned int reg, u32 val); | 123 | void (*__write)(char __iomem *iosapic, unsigned int reg, u32 val); |
@@ -135,7 +135,7 @@ iosapic_pcat_compat_init(void) | |||
135 | static inline struct irq_chip* | 135 | static inline struct irq_chip* |
136 | iosapic_get_irq_chip(unsigned long trigger) | 136 | iosapic_get_irq_chip(unsigned long trigger) |
137 | { | 137 | { |
138 | return pv_iosapic_ops.get_irq_chip(trigger); | 138 | return pv_iosapic_ops.__get_irq_chip(trigger); |
139 | } | 139 | } |
140 | 140 | ||
141 | static inline unsigned int | 141 | static inline unsigned int |
diff --git a/arch/ia64/include/asm/pci.h b/arch/ia64/include/asm/pci.h index ce342fb74246..1d660d89db0d 100644 --- a/arch/ia64/include/asm/pci.h +++ b/arch/ia64/include/asm/pci.h | |||
@@ -156,4 +156,7 @@ static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) | |||
156 | return channel ? isa_irq_to_vector(15) : isa_irq_to_vector(14); | 156 | return channel ? isa_irq_to_vector(15) : isa_irq_to_vector(14); |
157 | } | 157 | } |
158 | 158 | ||
159 | #ifdef CONFIG_DMAR | ||
160 | extern void pci_iommu_alloc(void); | ||
161 | #endif | ||
159 | #endif /* _ASM_IA64_PCI_H */ | 162 | #endif /* _ASM_IA64_PCI_H */ |
diff --git a/arch/ia64/include/asm/ptrace.h b/arch/ia64/include/asm/ptrace.h index 15f8dcfe6eee..6417c1ecb44e 100644 --- a/arch/ia64/include/asm/ptrace.h +++ b/arch/ia64/include/asm/ptrace.h | |||
@@ -240,6 +240,12 @@ struct switch_stack { | |||
240 | */ | 240 | */ |
241 | # define instruction_pointer(regs) ((regs)->cr_iip + ia64_psr(regs)->ri) | 241 | # define instruction_pointer(regs) ((regs)->cr_iip + ia64_psr(regs)->ri) |
242 | 242 | ||
243 | static inline unsigned long user_stack_pointer(struct pt_regs *regs) | ||
244 | { | ||
245 | /* FIXME: should this be bspstore + nr_dirty regs? */ | ||
246 | return regs->ar_bspstore; | ||
247 | } | ||
248 | |||
243 | #define regs_return_value(regs) ((regs)->r8) | 249 | #define regs_return_value(regs) ((regs)->r8) |
244 | 250 | ||
245 | /* Conserve space in histogram by encoding slot bits in address | 251 | /* Conserve space in histogram by encoding slot bits in address |
@@ -319,6 +325,8 @@ struct switch_stack { | |||
319 | #define arch_has_block_step() (1) | 325 | #define arch_has_block_step() (1) |
320 | extern void user_enable_block_step(struct task_struct *); | 326 | extern void user_enable_block_step(struct task_struct *); |
321 | 327 | ||
328 | #define __ARCH_WANT_COMPAT_SYS_PTRACE | ||
329 | |||
322 | #endif /* !__KERNEL__ */ | 330 | #endif /* !__KERNEL__ */ |
323 | 331 | ||
324 | /* pt_all_user_regs is used for PTRACE_GETREGS PTRACE_SETREGS */ | 332 | /* pt_all_user_regs is used for PTRACE_GETREGS PTRACE_SETREGS */ |
diff --git a/arch/ia64/include/asm/pvclock-abi.h b/arch/ia64/include/asm/pvclock-abi.h new file mode 100644 index 000000000000..44ef9ef8f5b3 --- /dev/null +++ b/arch/ia64/include/asm/pvclock-abi.h | |||
@@ -0,0 +1,48 @@ | |||
1 | /* | ||
2 | * same structure to x86's | ||
3 | * Hopefully asm-x86/pvclock-abi.h would be moved to somewhere more generic. | ||
4 | * For now, define same duplicated definitions. | ||
5 | */ | ||
6 | |||
7 | #ifndef _ASM_IA64__PVCLOCK_ABI_H | ||
8 | #define _ASM_IA64__PVCLOCK_ABI_H | ||
9 | #ifndef __ASSEMBLY__ | ||
10 | |||
11 | /* | ||
12 | * These structs MUST NOT be changed. | ||
13 | * They are the ABI between hypervisor and guest OS. | ||
14 | * Both Xen and KVM are using this. | ||
15 | * | ||
16 | * pvclock_vcpu_time_info holds the system time and the tsc timestamp | ||
17 | * of the last update. So the guest can use the tsc delta to get a | ||
18 | * more precise system time. There is one per virtual cpu. | ||
19 | * | ||
20 | * pvclock_wall_clock references the point in time when the system | ||
21 | * time was zero (usually boot time), thus the guest calculates the | ||
22 | * current wall clock by adding the system time. | ||
23 | * | ||
24 | * Protocol for the "version" fields is: hypervisor raises it (making | ||
25 | * it uneven) before it starts updating the fields and raises it again | ||
26 | * (making it even) when it is done. Thus the guest can make sure the | ||
27 | * time values it got are consistent by checking the version before | ||
28 | * and after reading them. | ||
29 | */ | ||
30 | |||
31 | struct pvclock_vcpu_time_info { | ||
32 | u32 version; | ||
33 | u32 pad0; | ||
34 | u64 tsc_timestamp; | ||
35 | u64 system_time; | ||
36 | u32 tsc_to_system_mul; | ||
37 | s8 tsc_shift; | ||
38 | u8 pad[3]; | ||
39 | } __attribute__((__packed__)); /* 32 bytes */ | ||
40 | |||
41 | struct pvclock_wall_clock { | ||
42 | u32 version; | ||
43 | u32 sec; | ||
44 | u32 nsec; | ||
45 | } __attribute__((__packed__)); | ||
46 | |||
47 | #endif /* __ASSEMBLY__ */ | ||
48 | #endif /* _ASM_IA64__PVCLOCK_ABI_H */ | ||
diff --git a/arch/ia64/include/asm/swiotlb.h b/arch/ia64/include/asm/swiotlb.h new file mode 100644 index 000000000000..fb79423834d0 --- /dev/null +++ b/arch/ia64/include/asm/swiotlb.h | |||
@@ -0,0 +1,56 @@ | |||
1 | #ifndef ASM_IA64__SWIOTLB_H | ||
2 | #define ASM_IA64__SWIOTLB_H | ||
3 | |||
4 | #include <linux/dma-mapping.h> | ||
5 | |||
6 | /* SWIOTLB interface */ | ||
7 | |||
8 | extern dma_addr_t swiotlb_map_single(struct device *hwdev, void *ptr, | ||
9 | size_t size, int dir); | ||
10 | extern void *swiotlb_alloc_coherent(struct device *hwdev, size_t size, | ||
11 | dma_addr_t *dma_handle, gfp_t flags); | ||
12 | extern void swiotlb_unmap_single(struct device *hwdev, dma_addr_t dev_addr, | ||
13 | size_t size, int dir); | ||
14 | extern void swiotlb_sync_single_for_cpu(struct device *hwdev, | ||
15 | dma_addr_t dev_addr, | ||
16 | size_t size, int dir); | ||
17 | extern void swiotlb_sync_single_for_device(struct device *hwdev, | ||
18 | dma_addr_t dev_addr, | ||
19 | size_t size, int dir); | ||
20 | extern void swiotlb_sync_single_range_for_cpu(struct device *hwdev, | ||
21 | dma_addr_t dev_addr, | ||
22 | unsigned long offset, | ||
23 | size_t size, int dir); | ||
24 | extern void swiotlb_sync_single_range_for_device(struct device *hwdev, | ||
25 | dma_addr_t dev_addr, | ||
26 | unsigned long offset, | ||
27 | size_t size, int dir); | ||
28 | extern void swiotlb_sync_sg_for_cpu(struct device *hwdev, | ||
29 | struct scatterlist *sg, int nelems, | ||
30 | int dir); | ||
31 | extern void swiotlb_sync_sg_for_device(struct device *hwdev, | ||
32 | struct scatterlist *sg, int nelems, | ||
33 | int dir); | ||
34 | extern int swiotlb_map_sg(struct device *hwdev, struct scatterlist *sg, | ||
35 | int nents, int direction); | ||
36 | extern void swiotlb_unmap_sg(struct device *hwdev, struct scatterlist *sg, | ||
37 | int nents, int direction); | ||
38 | extern int swiotlb_dma_mapping_error(struct device *hwdev, dma_addr_t dma_addr); | ||
39 | extern void swiotlb_free_coherent(struct device *hwdev, size_t size, | ||
40 | void *vaddr, dma_addr_t dma_handle); | ||
41 | extern int swiotlb_dma_supported(struct device *hwdev, u64 mask); | ||
42 | extern void swiotlb_init(void); | ||
43 | |||
44 | extern int swiotlb_force; | ||
45 | |||
46 | #ifdef CONFIG_SWIOTLB | ||
47 | extern int swiotlb; | ||
48 | extern void pci_swiotlb_init(void); | ||
49 | #else | ||
50 | #define swiotlb 0 | ||
51 | static inline void pci_swiotlb_init(void) | ||
52 | { | ||
53 | } | ||
54 | #endif | ||
55 | |||
56 | #endif /* ASM_IA64__SWIOTLB_H */ | ||
diff --git a/arch/ia64/include/asm/sync_bitops.h b/arch/ia64/include/asm/sync_bitops.h new file mode 100644 index 000000000000..593c12eeb270 --- /dev/null +++ b/arch/ia64/include/asm/sync_bitops.h | |||
@@ -0,0 +1,51 @@ | |||
1 | #ifndef _ASM_IA64_SYNC_BITOPS_H | ||
2 | #define _ASM_IA64_SYNC_BITOPS_H | ||
3 | |||
4 | /* | ||
5 | * Copyright (C) 2008 Isaku Yamahata <yamahata at valinux co jp> | ||
6 | * | ||
7 | * Based on synch_bitops.h which Dan Magenhaimer wrote. | ||
8 | * | ||
9 | * bit operations which provide guaranteed strong synchronisation | ||
10 | * when communicating with Xen or other guest OSes running on other CPUs. | ||
11 | */ | ||
12 | |||
13 | static inline void sync_set_bit(int nr, volatile void *addr) | ||
14 | { | ||
15 | set_bit(nr, addr); | ||
16 | } | ||
17 | |||
18 | static inline void sync_clear_bit(int nr, volatile void *addr) | ||
19 | { | ||
20 | clear_bit(nr, addr); | ||
21 | } | ||
22 | |||
23 | static inline void sync_change_bit(int nr, volatile void *addr) | ||
24 | { | ||
25 | change_bit(nr, addr); | ||
26 | } | ||
27 | |||
28 | static inline int sync_test_and_set_bit(int nr, volatile void *addr) | ||
29 | { | ||
30 | return test_and_set_bit(nr, addr); | ||
31 | } | ||
32 | |||
33 | static inline int sync_test_and_clear_bit(int nr, volatile void *addr) | ||
34 | { | ||
35 | return test_and_clear_bit(nr, addr); | ||
36 | } | ||
37 | |||
38 | static inline int sync_test_and_change_bit(int nr, volatile void *addr) | ||
39 | { | ||
40 | return test_and_change_bit(nr, addr); | ||
41 | } | ||
42 | |||
43 | static inline int sync_test_bit(int nr, const volatile void *addr) | ||
44 | { | ||
45 | return test_bit(nr, addr); | ||
46 | } | ||
47 | |||
48 | #define sync_cmpxchg(ptr, old, new) \ | ||
49 | ((__typeof__(*(ptr)))cmpxchg_acq((ptr), (old), (new))) | ||
50 | |||
51 | #endif /* _ASM_IA64_SYNC_BITOPS_H */ | ||
diff --git a/arch/ia64/include/asm/syscall.h b/arch/ia64/include/asm/syscall.h new file mode 100644 index 000000000000..2f758a42f94b --- /dev/null +++ b/arch/ia64/include/asm/syscall.h | |||
@@ -0,0 +1,163 @@ | |||
1 | /* | ||
2 | * Access to user system call parameters and results | ||
3 | * | ||
4 | * Copyright (C) 2008 Intel Corp. Shaohua Li <shaohua.li@intel.com> | ||
5 | * | ||
6 | * This copyrighted material is made available to anyone wishing to use, | ||
7 | * modify, copy, or redistribute it subject to the terms and conditions | ||
8 | * of the GNU General Public License v.2. | ||
9 | * | ||
10 | * See asm-generic/syscall.h for descriptions of what we must do here. | ||
11 | */ | ||
12 | |||
13 | #ifndef _ASM_SYSCALL_H | ||
14 | #define _ASM_SYSCALL_H 1 | ||
15 | |||
16 | #include <linux/sched.h> | ||
17 | #include <linux/err.h> | ||
18 | |||
19 | static inline long syscall_get_nr(struct task_struct *task, | ||
20 | struct pt_regs *regs) | ||
21 | { | ||
22 | if ((long)regs->cr_ifs < 0) /* Not a syscall */ | ||
23 | return -1; | ||
24 | |||
25 | #ifdef CONFIG_IA32_SUPPORT | ||
26 | if (IS_IA32_PROCESS(regs)) | ||
27 | return regs->r1; | ||
28 | #endif | ||
29 | |||
30 | return regs->r15; | ||
31 | } | ||
32 | |||
33 | static inline void syscall_rollback(struct task_struct *task, | ||
34 | struct pt_regs *regs) | ||
35 | { | ||
36 | #ifdef CONFIG_IA32_SUPPORT | ||
37 | if (IS_IA32_PROCESS(regs)) | ||
38 | regs->r8 = regs->r1; | ||
39 | #endif | ||
40 | |||
41 | /* do nothing */ | ||
42 | } | ||
43 | |||
44 | static inline long syscall_get_error(struct task_struct *task, | ||
45 | struct pt_regs *regs) | ||
46 | { | ||
47 | #ifdef CONFIG_IA32_SUPPORT | ||
48 | if (IS_IA32_PROCESS(regs)) | ||
49 | return regs->r8; | ||
50 | #endif | ||
51 | |||
52 | return regs->r10 == -1 ? regs->r8:0; | ||
53 | } | ||
54 | |||
55 | static inline long syscall_get_return_value(struct task_struct *task, | ||
56 | struct pt_regs *regs) | ||
57 | { | ||
58 | return regs->r8; | ||
59 | } | ||
60 | |||
61 | static inline void syscall_set_return_value(struct task_struct *task, | ||
62 | struct pt_regs *regs, | ||
63 | int error, long val) | ||
64 | { | ||
65 | #ifdef CONFIG_IA32_SUPPORT | ||
66 | if (IS_IA32_PROCESS(regs)) { | ||
67 | regs->r8 = (long) error ? error : val; | ||
68 | return; | ||
69 | } | ||
70 | #endif | ||
71 | |||
72 | if (error) { | ||
73 | /* error < 0, but ia64 uses > 0 return value */ | ||
74 | regs->r8 = -error; | ||
75 | regs->r10 = -1; | ||
76 | } else { | ||
77 | regs->r8 = val; | ||
78 | regs->r10 = 0; | ||
79 | } | ||
80 | } | ||
81 | |||
82 | extern void ia64_syscall_get_set_arguments(struct task_struct *task, | ||
83 | struct pt_regs *regs, unsigned int i, unsigned int n, | ||
84 | unsigned long *args, int rw); | ||
85 | static inline void syscall_get_arguments(struct task_struct *task, | ||
86 | struct pt_regs *regs, | ||
87 | unsigned int i, unsigned int n, | ||
88 | unsigned long *args) | ||
89 | { | ||
90 | BUG_ON(i + n > 6); | ||
91 | |||
92 | #ifdef CONFIG_IA32_SUPPORT | ||
93 | if (IS_IA32_PROCESS(regs)) { | ||
94 | switch (i + n) { | ||
95 | case 6: | ||
96 | if (!n--) break; | ||
97 | *args++ = regs->r13; | ||
98 | case 5: | ||
99 | if (!n--) break; | ||
100 | *args++ = regs->r15; | ||
101 | case 4: | ||
102 | if (!n--) break; | ||
103 | *args++ = regs->r14; | ||
104 | case 3: | ||
105 | if (!n--) break; | ||
106 | *args++ = regs->r10; | ||
107 | case 2: | ||
108 | if (!n--) break; | ||
109 | *args++ = regs->r9; | ||
110 | case 1: | ||
111 | if (!n--) break; | ||
112 | *args++ = regs->r11; | ||
113 | case 0: | ||
114 | if (!n--) break; | ||
115 | default: | ||
116 | BUG(); | ||
117 | break; | ||
118 | } | ||
119 | |||
120 | return; | ||
121 | } | ||
122 | #endif | ||
123 | ia64_syscall_get_set_arguments(task, regs, i, n, args, 0); | ||
124 | } | ||
125 | |||
126 | static inline void syscall_set_arguments(struct task_struct *task, | ||
127 | struct pt_regs *regs, | ||
128 | unsigned int i, unsigned int n, | ||
129 | unsigned long *args) | ||
130 | { | ||
131 | BUG_ON(i + n > 6); | ||
132 | |||
133 | #ifdef CONFIG_IA32_SUPPORT | ||
134 | if (IS_IA32_PROCESS(regs)) { | ||
135 | switch (i + n) { | ||
136 | case 6: | ||
137 | if (!n--) break; | ||
138 | regs->r13 = *args++; | ||
139 | case 5: | ||
140 | if (!n--) break; | ||
141 | regs->r15 = *args++; | ||
142 | case 4: | ||
143 | if (!n--) break; | ||
144 | regs->r14 = *args++; | ||
145 | case 3: | ||
146 | if (!n--) break; | ||
147 | regs->r10 = *args++; | ||
148 | case 2: | ||
149 | if (!n--) break; | ||
150 | regs->r9 = *args++; | ||
151 | case 1: | ||
152 | if (!n--) break; | ||
153 | regs->r11 = *args++; | ||
154 | case 0: | ||
155 | if (!n--) break; | ||
156 | } | ||
157 | |||
158 | return; | ||
159 | } | ||
160 | #endif | ||
161 | ia64_syscall_get_set_arguments(task, regs, i, n, args, 1); | ||
162 | } | ||
163 | #endif /* _ASM_SYSCALL_H */ | ||
diff --git a/arch/ia64/include/asm/thread_info.h b/arch/ia64/include/asm/thread_info.h index 7c60fcdd2efd..ae6922626bf4 100644 --- a/arch/ia64/include/asm/thread_info.h +++ b/arch/ia64/include/asm/thread_info.h | |||
@@ -87,9 +87,6 @@ struct thread_info { | |||
87 | #define alloc_task_struct() ((struct task_struct *)__get_free_pages(GFP_KERNEL | __GFP_COMP, KERNEL_STACK_SIZE_ORDER)) | 87 | #define alloc_task_struct() ((struct task_struct *)__get_free_pages(GFP_KERNEL | __GFP_COMP, KERNEL_STACK_SIZE_ORDER)) |
88 | #define free_task_struct(tsk) free_pages((unsigned long) (tsk), KERNEL_STACK_SIZE_ORDER) | 88 | #define free_task_struct(tsk) free_pages((unsigned long) (tsk), KERNEL_STACK_SIZE_ORDER) |
89 | 89 | ||
90 | #define tsk_set_notify_resume(tsk) \ | ||
91 | set_ti_thread_flag(task_thread_info(tsk), TIF_NOTIFY_RESUME) | ||
92 | extern void tsk_clear_notify_resume(struct task_struct *tsk); | ||
93 | #endif /* !__ASSEMBLY */ | 90 | #endif /* !__ASSEMBLY */ |
94 | 91 | ||
95 | /* | 92 | /* |
diff --git a/arch/ia64/include/asm/timex.h b/arch/ia64/include/asm/timex.h index 05a6baf8a472..4e03cfe74a0c 100644 --- a/arch/ia64/include/asm/timex.h +++ b/arch/ia64/include/asm/timex.h | |||
@@ -39,4 +39,6 @@ get_cycles (void) | |||
39 | return ret; | 39 | return ret; |
40 | } | 40 | } |
41 | 41 | ||
42 | extern void ia64_cpu_local_tick (void); | ||
43 | |||
42 | #endif /* _ASM_IA64_TIMEX_H */ | 44 | #endif /* _ASM_IA64_TIMEX_H */ |
diff --git a/arch/ia64/include/asm/unistd.h b/arch/ia64/include/asm/unistd.h index d535833aab5e..f791576355ad 100644 --- a/arch/ia64/include/asm/unistd.h +++ b/arch/ia64/include/asm/unistd.h | |||
@@ -337,6 +337,7 @@ | |||
337 | # define __ARCH_WANT_SYS_NICE | 337 | # define __ARCH_WANT_SYS_NICE |
338 | # define __ARCH_WANT_SYS_OLD_GETRLIMIT | 338 | # define __ARCH_WANT_SYS_OLD_GETRLIMIT |
339 | # define __ARCH_WANT_SYS_OLDUMOUNT | 339 | # define __ARCH_WANT_SYS_OLDUMOUNT |
340 | # define __ARCH_WANT_SYS_PAUSE | ||
340 | # define __ARCH_WANT_SYS_SIGPENDING | 341 | # define __ARCH_WANT_SYS_SIGPENDING |
341 | # define __ARCH_WANT_SYS_SIGPROCMASK | 342 | # define __ARCH_WANT_SYS_SIGPROCMASK |
342 | # define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND | 343 | # define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND |
diff --git a/arch/ia64/include/asm/xen/events.h b/arch/ia64/include/asm/xen/events.h new file mode 100644 index 000000000000..73248781fba8 --- /dev/null +++ b/arch/ia64/include/asm/xen/events.h | |||
@@ -0,0 +1,50 @@ | |||
1 | /****************************************************************************** | ||
2 | * arch/ia64/include/asm/xen/events.h | ||
3 | * | ||
4 | * Copyright (c) 2008 Isaku Yamahata <yamahata at valinux co jp> | ||
5 | * VA Linux Systems Japan K.K. | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License as published by | ||
9 | * the Free Software Foundation; either version 2 of the License, or | ||
10 | * (at your option) any later version. | ||
11 | * | ||
12 | * This program is distributed in the hope that it will be useful, | ||
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | * GNU General Public License for more details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program; if not, write to the Free Software | ||
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
20 | * | ||
21 | */ | ||
22 | #ifndef _ASM_IA64_XEN_EVENTS_H | ||
23 | #define _ASM_IA64_XEN_EVENTS_H | ||
24 | |||
25 | enum ipi_vector { | ||
26 | XEN_RESCHEDULE_VECTOR, | ||
27 | XEN_IPI_VECTOR, | ||
28 | XEN_CMCP_VECTOR, | ||
29 | XEN_CPEP_VECTOR, | ||
30 | |||
31 | XEN_NR_IPIS, | ||
32 | }; | ||
33 | |||
34 | static inline int xen_irqs_disabled(struct pt_regs *regs) | ||
35 | { | ||
36 | return !(ia64_psr(regs)->i); | ||
37 | } | ||
38 | |||
39 | static inline void xen_do_IRQ(int irq, struct pt_regs *regs) | ||
40 | { | ||
41 | struct pt_regs *old_regs; | ||
42 | old_regs = set_irq_regs(regs); | ||
43 | irq_enter(); | ||
44 | __do_IRQ(irq); | ||
45 | irq_exit(); | ||
46 | set_irq_regs(old_regs); | ||
47 | } | ||
48 | #define irq_ctx_init(cpu) do { } while (0) | ||
49 | |||
50 | #endif /* _ASM_IA64_XEN_EVENTS_H */ | ||
diff --git a/arch/ia64/include/asm/xen/grant_table.h b/arch/ia64/include/asm/xen/grant_table.h new file mode 100644 index 000000000000..2b1fae0e2d11 --- /dev/null +++ b/arch/ia64/include/asm/xen/grant_table.h | |||
@@ -0,0 +1,29 @@ | |||
1 | /****************************************************************************** | ||
2 | * arch/ia64/include/asm/xen/grant_table.h | ||
3 | * | ||
4 | * Copyright (c) 2008 Isaku Yamahata <yamahata at valinux co jp> | ||
5 | * VA Linux Systems Japan K.K. | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License as published by | ||
9 | * the Free Software Foundation; either version 2 of the License, or | ||
10 | * (at your option) any later version. | ||
11 | * | ||
12 | * This program is distributed in the hope that it will be useful, | ||
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | * GNU General Public License for more details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program; if not, write to the Free Software | ||
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
20 | * | ||
21 | */ | ||
22 | |||
23 | #ifndef _ASM_IA64_XEN_GRANT_TABLE_H | ||
24 | #define _ASM_IA64_XEN_GRANT_TABLE_H | ||
25 | |||
26 | struct vm_struct *xen_alloc_vm_area(unsigned long size); | ||
27 | void xen_free_vm_area(struct vm_struct *area); | ||
28 | |||
29 | #endif /* _ASM_IA64_XEN_GRANT_TABLE_H */ | ||
diff --git a/arch/ia64/include/asm/xen/hypercall.h b/arch/ia64/include/asm/xen/hypercall.h new file mode 100644 index 000000000000..96fc62366aa4 --- /dev/null +++ b/arch/ia64/include/asm/xen/hypercall.h | |||
@@ -0,0 +1,265 @@ | |||
1 | /****************************************************************************** | ||
2 | * hypercall.h | ||
3 | * | ||
4 | * Linux-specific hypervisor handling. | ||
5 | * | ||
6 | * Copyright (c) 2002-2004, K A Fraser | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or | ||
9 | * modify it under the terms of the GNU General Public License version 2 | ||
10 | * as published by the Free Software Foundation; or, when distributed | ||
11 | * separately from the Linux kernel or incorporated into other | ||
12 | * software packages, subject to the following license: | ||
13 | * | ||
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy | ||
15 | * of this source file (the "Software"), to deal in the Software without | ||
16 | * restriction, including without limitation the rights to use, copy, modify, | ||
17 | * merge, publish, distribute, sublicense, and/or sell copies of the Software, | ||
18 | * and to permit persons to whom the Software is furnished to do so, subject to | ||
19 | * the following conditions: | ||
20 | * | ||
21 | * The above copyright notice and this permission notice shall be included in | ||
22 | * all copies or substantial portions of the Software. | ||
23 | * | ||
24 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
25 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
26 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
27 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
28 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
29 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | ||
30 | * IN THE SOFTWARE. | ||
31 | */ | ||
32 | |||
33 | #ifndef _ASM_IA64_XEN_HYPERCALL_H | ||
34 | #define _ASM_IA64_XEN_HYPERCALL_H | ||
35 | |||
36 | #include <xen/interface/xen.h> | ||
37 | #include <xen/interface/physdev.h> | ||
38 | #include <xen/interface/sched.h> | ||
39 | #include <asm/xen/xcom_hcall.h> | ||
40 | struct xencomm_handle; | ||
41 | extern unsigned long __hypercall(unsigned long a1, unsigned long a2, | ||
42 | unsigned long a3, unsigned long a4, | ||
43 | unsigned long a5, unsigned long cmd); | ||
44 | |||
45 | /* | ||
46 | * Assembler stubs for hyper-calls. | ||
47 | */ | ||
48 | |||
49 | #define _hypercall0(type, name) \ | ||
50 | ({ \ | ||
51 | long __res; \ | ||
52 | __res = __hypercall(0, 0, 0, 0, 0, __HYPERVISOR_##name);\ | ||
53 | (type)__res; \ | ||
54 | }) | ||
55 | |||
56 | #define _hypercall1(type, name, a1) \ | ||
57 | ({ \ | ||
58 | long __res; \ | ||
59 | __res = __hypercall((unsigned long)a1, \ | ||
60 | 0, 0, 0, 0, __HYPERVISOR_##name); \ | ||
61 | (type)__res; \ | ||
62 | }) | ||
63 | |||
64 | #define _hypercall2(type, name, a1, a2) \ | ||
65 | ({ \ | ||
66 | long __res; \ | ||
67 | __res = __hypercall((unsigned long)a1, \ | ||
68 | (unsigned long)a2, \ | ||
69 | 0, 0, 0, __HYPERVISOR_##name); \ | ||
70 | (type)__res; \ | ||
71 | }) | ||
72 | |||
73 | #define _hypercall3(type, name, a1, a2, a3) \ | ||
74 | ({ \ | ||
75 | long __res; \ | ||
76 | __res = __hypercall((unsigned long)a1, \ | ||
77 | (unsigned long)a2, \ | ||
78 | (unsigned long)a3, \ | ||
79 | 0, 0, __HYPERVISOR_##name); \ | ||
80 | (type)__res; \ | ||
81 | }) | ||
82 | |||
83 | #define _hypercall4(type, name, a1, a2, a3, a4) \ | ||
84 | ({ \ | ||
85 | long __res; \ | ||
86 | __res = __hypercall((unsigned long)a1, \ | ||
87 | (unsigned long)a2, \ | ||
88 | (unsigned long)a3, \ | ||
89 | (unsigned long)a4, \ | ||
90 | 0, __HYPERVISOR_##name); \ | ||
91 | (type)__res; \ | ||
92 | }) | ||
93 | |||
94 | #define _hypercall5(type, name, a1, a2, a3, a4, a5) \ | ||
95 | ({ \ | ||
96 | long __res; \ | ||
97 | __res = __hypercall((unsigned long)a1, \ | ||
98 | (unsigned long)a2, \ | ||
99 | (unsigned long)a3, \ | ||
100 | (unsigned long)a4, \ | ||
101 | (unsigned long)a5, \ | ||
102 | __HYPERVISOR_##name); \ | ||
103 | (type)__res; \ | ||
104 | }) | ||
105 | |||
106 | |||
107 | static inline int | ||
108 | xencomm_arch_hypercall_sched_op(int cmd, struct xencomm_handle *arg) | ||
109 | { | ||
110 | return _hypercall2(int, sched_op_new, cmd, arg); | ||
111 | } | ||
112 | |||
113 | static inline long | ||
114 | HYPERVISOR_set_timer_op(u64 timeout) | ||
115 | { | ||
116 | unsigned long timeout_hi = (unsigned long)(timeout >> 32); | ||
117 | unsigned long timeout_lo = (unsigned long)timeout; | ||
118 | return _hypercall2(long, set_timer_op, timeout_lo, timeout_hi); | ||
119 | } | ||
120 | |||
121 | static inline int | ||
122 | xencomm_arch_hypercall_multicall(struct xencomm_handle *call_list, | ||
123 | int nr_calls) | ||
124 | { | ||
125 | return _hypercall2(int, multicall, call_list, nr_calls); | ||
126 | } | ||
127 | |||
128 | static inline int | ||
129 | xencomm_arch_hypercall_memory_op(unsigned int cmd, struct xencomm_handle *arg) | ||
130 | { | ||
131 | return _hypercall2(int, memory_op, cmd, arg); | ||
132 | } | ||
133 | |||
134 | static inline int | ||
135 | xencomm_arch_hypercall_event_channel_op(int cmd, struct xencomm_handle *arg) | ||
136 | { | ||
137 | return _hypercall2(int, event_channel_op, cmd, arg); | ||
138 | } | ||
139 | |||
140 | static inline int | ||
141 | xencomm_arch_hypercall_xen_version(int cmd, struct xencomm_handle *arg) | ||
142 | { | ||
143 | return _hypercall2(int, xen_version, cmd, arg); | ||
144 | } | ||
145 | |||
146 | static inline int | ||
147 | xencomm_arch_hypercall_console_io(int cmd, int count, | ||
148 | struct xencomm_handle *str) | ||
149 | { | ||
150 | return _hypercall3(int, console_io, cmd, count, str); | ||
151 | } | ||
152 | |||
153 | static inline int | ||
154 | xencomm_arch_hypercall_physdev_op(int cmd, struct xencomm_handle *arg) | ||
155 | { | ||
156 | return _hypercall2(int, physdev_op, cmd, arg); | ||
157 | } | ||
158 | |||
159 | static inline int | ||
160 | xencomm_arch_hypercall_grant_table_op(unsigned int cmd, | ||
161 | struct xencomm_handle *uop, | ||
162 | unsigned int count) | ||
163 | { | ||
164 | return _hypercall3(int, grant_table_op, cmd, uop, count); | ||
165 | } | ||
166 | |||
167 | int HYPERVISOR_grant_table_op(unsigned int cmd, void *uop, unsigned int count); | ||
168 | |||
169 | extern int xencomm_arch_hypercall_suspend(struct xencomm_handle *arg); | ||
170 | |||
171 | static inline int | ||
172 | xencomm_arch_hypercall_callback_op(int cmd, struct xencomm_handle *arg) | ||
173 | { | ||
174 | return _hypercall2(int, callback_op, cmd, arg); | ||
175 | } | ||
176 | |||
177 | static inline long | ||
178 | xencomm_arch_hypercall_vcpu_op(int cmd, int cpu, void *arg) | ||
179 | { | ||
180 | return _hypercall3(long, vcpu_op, cmd, cpu, arg); | ||
181 | } | ||
182 | |||
183 | static inline int | ||
184 | HYPERVISOR_physdev_op(int cmd, void *arg) | ||
185 | { | ||
186 | switch (cmd) { | ||
187 | case PHYSDEVOP_eoi: | ||
188 | return _hypercall1(int, ia64_fast_eoi, | ||
189 | ((struct physdev_eoi *)arg)->irq); | ||
190 | default: | ||
191 | return xencomm_hypercall_physdev_op(cmd, arg); | ||
192 | } | ||
193 | } | ||
194 | |||
195 | static inline long | ||
196 | xencomm_arch_hypercall_opt_feature(struct xencomm_handle *arg) | ||
197 | { | ||
198 | return _hypercall1(long, opt_feature, arg); | ||
199 | } | ||
200 | |||
201 | /* for balloon driver */ | ||
202 | #define HYPERVISOR_update_va_mapping(va, new_val, flags) (0) | ||
203 | |||
204 | /* Use xencomm to do hypercalls. */ | ||
205 | #define HYPERVISOR_sched_op xencomm_hypercall_sched_op | ||
206 | #define HYPERVISOR_event_channel_op xencomm_hypercall_event_channel_op | ||
207 | #define HYPERVISOR_callback_op xencomm_hypercall_callback_op | ||
208 | #define HYPERVISOR_multicall xencomm_hypercall_multicall | ||
209 | #define HYPERVISOR_xen_version xencomm_hypercall_xen_version | ||
210 | #define HYPERVISOR_console_io xencomm_hypercall_console_io | ||
211 | #define HYPERVISOR_memory_op xencomm_hypercall_memory_op | ||
212 | #define HYPERVISOR_suspend xencomm_hypercall_suspend | ||
213 | #define HYPERVISOR_vcpu_op xencomm_hypercall_vcpu_op | ||
214 | #define HYPERVISOR_opt_feature xencomm_hypercall_opt_feature | ||
215 | |||
216 | /* to compile gnttab_copy_grant_page() in drivers/xen/core/gnttab.c */ | ||
217 | #define HYPERVISOR_mmu_update(req, count, success_count, domid) ({ BUG(); 0; }) | ||
218 | |||
219 | static inline int | ||
220 | HYPERVISOR_shutdown( | ||
221 | unsigned int reason) | ||
222 | { | ||
223 | struct sched_shutdown sched_shutdown = { | ||
224 | .reason = reason | ||
225 | }; | ||
226 | |||
227 | int rc = HYPERVISOR_sched_op(SCHEDOP_shutdown, &sched_shutdown); | ||
228 | |||
229 | return rc; | ||
230 | } | ||
231 | |||
232 | /* for netfront.c, netback.c */ | ||
233 | #define MULTI_UVMFLAGS_INDEX 0 /* XXX any value */ | ||
234 | |||
235 | static inline void | ||
236 | MULTI_update_va_mapping( | ||
237 | struct multicall_entry *mcl, unsigned long va, | ||
238 | pte_t new_val, unsigned long flags) | ||
239 | { | ||
240 | mcl->op = __HYPERVISOR_update_va_mapping; | ||
241 | mcl->result = 0; | ||
242 | } | ||
243 | |||
244 | static inline void | ||
245 | MULTI_grant_table_op(struct multicall_entry *mcl, unsigned int cmd, | ||
246 | void *uop, unsigned int count) | ||
247 | { | ||
248 | mcl->op = __HYPERVISOR_grant_table_op; | ||
249 | mcl->args[0] = cmd; | ||
250 | mcl->args[1] = (unsigned long)uop; | ||
251 | mcl->args[2] = count; | ||
252 | } | ||
253 | |||
254 | static inline void | ||
255 | MULTI_mmu_update(struct multicall_entry *mcl, struct mmu_update *req, | ||
256 | int count, int *success_count, domid_t domid) | ||
257 | { | ||
258 | mcl->op = __HYPERVISOR_mmu_update; | ||
259 | mcl->args[0] = (unsigned long)req; | ||
260 | mcl->args[1] = count; | ||
261 | mcl->args[2] = (unsigned long)success_count; | ||
262 | mcl->args[3] = domid; | ||
263 | } | ||
264 | |||
265 | #endif /* _ASM_IA64_XEN_HYPERCALL_H */ | ||
diff --git a/arch/ia64/include/asm/xen/hypervisor.h b/arch/ia64/include/asm/xen/hypervisor.h new file mode 100644 index 000000000000..7a804e80fc67 --- /dev/null +++ b/arch/ia64/include/asm/xen/hypervisor.h | |||
@@ -0,0 +1,89 @@ | |||
1 | /****************************************************************************** | ||
2 | * hypervisor.h | ||
3 | * | ||
4 | * Linux-specific hypervisor handling. | ||
5 | * | ||
6 | * Copyright (c) 2002-2004, K A Fraser | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or | ||
9 | * modify it under the terms of the GNU General Public License version 2 | ||
10 | * as published by the Free Software Foundation; or, when distributed | ||
11 | * separately from the Linux kernel or incorporated into other | ||
12 | * software packages, subject to the following license: | ||
13 | * | ||
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy | ||
15 | * of this source file (the "Software"), to deal in the Software without | ||
16 | * restriction, including without limitation the rights to use, copy, modify, | ||
17 | * merge, publish, distribute, sublicense, and/or sell copies of the Software, | ||
18 | * and to permit persons to whom the Software is furnished to do so, subject to | ||
19 | * the following conditions: | ||
20 | * | ||
21 | * The above copyright notice and this permission notice shall be included in | ||
22 | * all copies or substantial portions of the Software. | ||
23 | * | ||
24 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
25 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
26 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
27 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
28 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
29 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | ||
30 | * IN THE SOFTWARE. | ||
31 | */ | ||
32 | |||
33 | #ifndef _ASM_IA64_XEN_HYPERVISOR_H | ||
34 | #define _ASM_IA64_XEN_HYPERVISOR_H | ||
35 | |||
36 | #ifdef CONFIG_XEN | ||
37 | |||
38 | #include <linux/init.h> | ||
39 | #include <xen/interface/xen.h> | ||
40 | #include <xen/interface/version.h> /* to compile feature.c */ | ||
41 | #include <xen/features.h> /* to comiple xen-netfront.c */ | ||
42 | #include <asm/xen/hypercall.h> | ||
43 | |||
44 | /* xen_domain_type is set before executing any C code by early_xen_setup */ | ||
45 | enum xen_domain_type { | ||
46 | XEN_NATIVE, | ||
47 | XEN_PV_DOMAIN, | ||
48 | XEN_HVM_DOMAIN, | ||
49 | }; | ||
50 | |||
51 | extern enum xen_domain_type xen_domain_type; | ||
52 | |||
53 | #define xen_domain() (xen_domain_type != XEN_NATIVE) | ||
54 | #define xen_pv_domain() (xen_domain_type == XEN_PV_DOMAIN) | ||
55 | #define xen_initial_domain() (xen_pv_domain() && \ | ||
56 | (xen_start_info->flags & SIF_INITDOMAIN)) | ||
57 | #define xen_hvm_domain() (xen_domain_type == XEN_HVM_DOMAIN) | ||
58 | |||
59 | /* deprecated. remove this */ | ||
60 | #define is_running_on_xen() (xen_domain_type == XEN_PV_DOMAIN) | ||
61 | |||
62 | extern struct shared_info *HYPERVISOR_shared_info; | ||
63 | extern struct start_info *xen_start_info; | ||
64 | |||
65 | void __init xen_setup_vcpu_info_placement(void); | ||
66 | void force_evtchn_callback(void); | ||
67 | |||
68 | /* for drivers/xen/balloon/balloon.c */ | ||
69 | #ifdef CONFIG_XEN_SCRUB_PAGES | ||
70 | #define scrub_pages(_p, _n) memset((void *)(_p), 0, (_n) << PAGE_SHIFT) | ||
71 | #else | ||
72 | #define scrub_pages(_p, _n) ((void)0) | ||
73 | #endif | ||
74 | |||
75 | /* For setup_arch() in arch/ia64/kernel/setup.c */ | ||
76 | void xen_ia64_enable_opt_feature(void); | ||
77 | |||
78 | #else /* CONFIG_XEN */ | ||
79 | |||
80 | #define xen_domain() (0) | ||
81 | #define xen_pv_domain() (0) | ||
82 | #define xen_initial_domain() (0) | ||
83 | #define xen_hvm_domain() (0) | ||
84 | #define is_running_on_xen() (0) /* deprecated. remove this */ | ||
85 | #endif | ||
86 | |||
87 | #define is_initial_xendomain() (0) /* deprecated. remove this */ | ||
88 | |||
89 | #endif /* _ASM_IA64_XEN_HYPERVISOR_H */ | ||
diff --git a/arch/ia64/include/asm/xen/inst.h b/arch/ia64/include/asm/xen/inst.h new file mode 100644 index 000000000000..19c2ae1d878a --- /dev/null +++ b/arch/ia64/include/asm/xen/inst.h | |||
@@ -0,0 +1,458 @@ | |||
1 | /****************************************************************************** | ||
2 | * arch/ia64/include/asm/xen/inst.h | ||
3 | * | ||
4 | * Copyright (c) 2008 Isaku Yamahata <yamahata at valinux co jp> | ||
5 | * VA Linux Systems Japan K.K. | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License as published by | ||
9 | * the Free Software Foundation; either version 2 of the License, or | ||
10 | * (at your option) any later version. | ||
11 | * | ||
12 | * This program is distributed in the hope that it will be useful, | ||
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | * GNU General Public License for more details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program; if not, write to the Free Software | ||
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
20 | * | ||
21 | */ | ||
22 | |||
23 | #include <asm/xen/privop.h> | ||
24 | |||
25 | #define ia64_ivt xen_ivt | ||
26 | #define DO_SAVE_MIN XEN_DO_SAVE_MIN | ||
27 | |||
28 | #define __paravirt_switch_to xen_switch_to | ||
29 | #define __paravirt_leave_syscall xen_leave_syscall | ||
30 | #define __paravirt_work_processed_syscall xen_work_processed_syscall | ||
31 | #define __paravirt_leave_kernel xen_leave_kernel | ||
32 | #define __paravirt_pending_syscall_end xen_work_pending_syscall_end | ||
33 | #define __paravirt_work_processed_syscall_target \ | ||
34 | xen_work_processed_syscall | ||
35 | |||
36 | #define MOV_FROM_IFA(reg) \ | ||
37 | movl reg = XSI_IFA; \ | ||
38 | ;; \ | ||
39 | ld8 reg = [reg] | ||
40 | |||
41 | #define MOV_FROM_ITIR(reg) \ | ||
42 | movl reg = XSI_ITIR; \ | ||
43 | ;; \ | ||
44 | ld8 reg = [reg] | ||
45 | |||
46 | #define MOV_FROM_ISR(reg) \ | ||
47 | movl reg = XSI_ISR; \ | ||
48 | ;; \ | ||
49 | ld8 reg = [reg] | ||
50 | |||
51 | #define MOV_FROM_IHA(reg) \ | ||
52 | movl reg = XSI_IHA; \ | ||
53 | ;; \ | ||
54 | ld8 reg = [reg] | ||
55 | |||
56 | #define MOV_FROM_IPSR(pred, reg) \ | ||
57 | (pred) movl reg = XSI_IPSR; \ | ||
58 | ;; \ | ||
59 | (pred) ld8 reg = [reg] | ||
60 | |||
61 | #define MOV_FROM_IIM(reg) \ | ||
62 | movl reg = XSI_IIM; \ | ||
63 | ;; \ | ||
64 | ld8 reg = [reg] | ||
65 | |||
66 | #define MOV_FROM_IIP(reg) \ | ||
67 | movl reg = XSI_IIP; \ | ||
68 | ;; \ | ||
69 | ld8 reg = [reg] | ||
70 | |||
71 | .macro __MOV_FROM_IVR reg, clob | ||
72 | .ifc "\reg", "r8" | ||
73 | XEN_HYPER_GET_IVR | ||
74 | .exitm | ||
75 | .endif | ||
76 | .ifc "\clob", "r8" | ||
77 | XEN_HYPER_GET_IVR | ||
78 | ;; | ||
79 | mov \reg = r8 | ||
80 | .exitm | ||
81 | .endif | ||
82 | |||
83 | mov \clob = r8 | ||
84 | ;; | ||
85 | XEN_HYPER_GET_IVR | ||
86 | ;; | ||
87 | mov \reg = r8 | ||
88 | ;; | ||
89 | mov r8 = \clob | ||
90 | .endm | ||
91 | #define MOV_FROM_IVR(reg, clob) __MOV_FROM_IVR reg, clob | ||
92 | |||
93 | .macro __MOV_FROM_PSR pred, reg, clob | ||
94 | .ifc "\reg", "r8" | ||
95 | (\pred) XEN_HYPER_GET_PSR; | ||
96 | .exitm | ||
97 | .endif | ||
98 | .ifc "\clob", "r8" | ||
99 | (\pred) XEN_HYPER_GET_PSR | ||
100 | ;; | ||
101 | (\pred) mov \reg = r8 | ||
102 | .exitm | ||
103 | .endif | ||
104 | |||
105 | (\pred) mov \clob = r8 | ||
106 | (\pred) XEN_HYPER_GET_PSR | ||
107 | ;; | ||
108 | (\pred) mov \reg = r8 | ||
109 | (\pred) mov r8 = \clob | ||
110 | .endm | ||
111 | #define MOV_FROM_PSR(pred, reg, clob) __MOV_FROM_PSR pred, reg, clob | ||
112 | |||
113 | |||
114 | #define MOV_TO_IFA(reg, clob) \ | ||
115 | movl clob = XSI_IFA; \ | ||
116 | ;; \ | ||
117 | st8 [clob] = reg \ | ||
118 | |||
119 | #define MOV_TO_ITIR(pred, reg, clob) \ | ||
120 | (pred) movl clob = XSI_ITIR; \ | ||
121 | ;; \ | ||
122 | (pred) st8 [clob] = reg | ||
123 | |||
124 | #define MOV_TO_IHA(pred, reg, clob) \ | ||
125 | (pred) movl clob = XSI_IHA; \ | ||
126 | ;; \ | ||
127 | (pred) st8 [clob] = reg | ||
128 | |||
129 | #define MOV_TO_IPSR(pred, reg, clob) \ | ||
130 | (pred) movl clob = XSI_IPSR; \ | ||
131 | ;; \ | ||
132 | (pred) st8 [clob] = reg; \ | ||
133 | ;; | ||
134 | |||
135 | #define MOV_TO_IFS(pred, reg, clob) \ | ||
136 | (pred) movl clob = XSI_IFS; \ | ||
137 | ;; \ | ||
138 | (pred) st8 [clob] = reg; \ | ||
139 | ;; | ||
140 | |||
141 | #define MOV_TO_IIP(reg, clob) \ | ||
142 | movl clob = XSI_IIP; \ | ||
143 | ;; \ | ||
144 | st8 [clob] = reg | ||
145 | |||
146 | .macro ____MOV_TO_KR kr, reg, clob0, clob1 | ||
147 | .ifc "\clob0", "r9" | ||
148 | .error "clob0 \clob0 must not be r9" | ||
149 | .endif | ||
150 | .ifc "\clob1", "r8" | ||
151 | .error "clob1 \clob1 must not be r8" | ||
152 | .endif | ||
153 | |||
154 | .ifnc "\reg", "r9" | ||
155 | .ifnc "\clob1", "r9" | ||
156 | mov \clob1 = r9 | ||
157 | .endif | ||
158 | mov r9 = \reg | ||
159 | .endif | ||
160 | .ifnc "\clob0", "r8" | ||
161 | mov \clob0 = r8 | ||
162 | .endif | ||
163 | mov r8 = \kr | ||
164 | ;; | ||
165 | XEN_HYPER_SET_KR | ||
166 | |||
167 | .ifnc "\reg", "r9" | ||
168 | .ifnc "\clob1", "r9" | ||
169 | mov r9 = \clob1 | ||
170 | .endif | ||
171 | .endif | ||
172 | .ifnc "\clob0", "r8" | ||
173 | mov r8 = \clob0 | ||
174 | .endif | ||
175 | .endm | ||
176 | |||
177 | .macro __MOV_TO_KR kr, reg, clob0, clob1 | ||
178 | .ifc "\clob0", "r9" | ||
179 | ____MOV_TO_KR \kr, \reg, \clob1, \clob0 | ||
180 | .exitm | ||
181 | .endif | ||
182 | .ifc "\clob1", "r8" | ||
183 | ____MOV_TO_KR \kr, \reg, \clob1, \clob0 | ||
184 | .exitm | ||
185 | .endif | ||
186 | |||
187 | ____MOV_TO_KR \kr, \reg, \clob0, \clob1 | ||
188 | .endm | ||
189 | |||
190 | #define MOV_TO_KR(kr, reg, clob0, clob1) \ | ||
191 | __MOV_TO_KR IA64_KR_ ## kr, reg, clob0, clob1 | ||
192 | |||
193 | |||
194 | .macro __ITC_I pred, reg, clob | ||
195 | .ifc "\reg", "r8" | ||
196 | (\pred) XEN_HYPER_ITC_I | ||
197 | .exitm | ||
198 | .endif | ||
199 | .ifc "\clob", "r8" | ||
200 | (\pred) mov r8 = \reg | ||
201 | ;; | ||
202 | (\pred) XEN_HYPER_ITC_I | ||
203 | .exitm | ||
204 | .endif | ||
205 | |||
206 | (\pred) mov \clob = r8 | ||
207 | (\pred) mov r8 = \reg | ||
208 | ;; | ||
209 | (\pred) XEN_HYPER_ITC_I | ||
210 | ;; | ||
211 | (\pred) mov r8 = \clob | ||
212 | ;; | ||
213 | .endm | ||
214 | #define ITC_I(pred, reg, clob) __ITC_I pred, reg, clob | ||
215 | |||
216 | .macro __ITC_D pred, reg, clob | ||
217 | .ifc "\reg", "r8" | ||
218 | (\pred) XEN_HYPER_ITC_D | ||
219 | ;; | ||
220 | .exitm | ||
221 | .endif | ||
222 | .ifc "\clob", "r8" | ||
223 | (\pred) mov r8 = \reg | ||
224 | ;; | ||
225 | (\pred) XEN_HYPER_ITC_D | ||
226 | ;; | ||
227 | .exitm | ||
228 | .endif | ||
229 | |||
230 | (\pred) mov \clob = r8 | ||
231 | (\pred) mov r8 = \reg | ||
232 | ;; | ||
233 | (\pred) XEN_HYPER_ITC_D | ||
234 | ;; | ||
235 | (\pred) mov r8 = \clob | ||
236 | ;; | ||
237 | .endm | ||
238 | #define ITC_D(pred, reg, clob) __ITC_D pred, reg, clob | ||
239 | |||
240 | .macro __ITC_I_AND_D pred_i, pred_d, reg, clob | ||
241 | .ifc "\reg", "r8" | ||
242 | (\pred_i)XEN_HYPER_ITC_I | ||
243 | ;; | ||
244 | (\pred_d)XEN_HYPER_ITC_D | ||
245 | ;; | ||
246 | .exitm | ||
247 | .endif | ||
248 | .ifc "\clob", "r8" | ||
249 | mov r8 = \reg | ||
250 | ;; | ||
251 | (\pred_i)XEN_HYPER_ITC_I | ||
252 | ;; | ||
253 | (\pred_d)XEN_HYPER_ITC_D | ||
254 | ;; | ||
255 | .exitm | ||
256 | .endif | ||
257 | |||
258 | mov \clob = r8 | ||
259 | mov r8 = \reg | ||
260 | ;; | ||
261 | (\pred_i)XEN_HYPER_ITC_I | ||
262 | ;; | ||
263 | (\pred_d)XEN_HYPER_ITC_D | ||
264 | ;; | ||
265 | mov r8 = \clob | ||
266 | ;; | ||
267 | .endm | ||
268 | #define ITC_I_AND_D(pred_i, pred_d, reg, clob) \ | ||
269 | __ITC_I_AND_D pred_i, pred_d, reg, clob | ||
270 | |||
271 | .macro __THASH pred, reg0, reg1, clob | ||
272 | .ifc "\reg0", "r8" | ||
273 | (\pred) mov r8 = \reg1 | ||
274 | (\pred) XEN_HYPER_THASH | ||
275 | .exitm | ||
276 | .endc | ||
277 | .ifc "\reg1", "r8" | ||
278 | (\pred) XEN_HYPER_THASH | ||
279 | ;; | ||
280 | (\pred) mov \reg0 = r8 | ||
281 | ;; | ||
282 | .exitm | ||
283 | .endif | ||
284 | .ifc "\clob", "r8" | ||
285 | (\pred) mov r8 = \reg1 | ||
286 | (\pred) XEN_HYPER_THASH | ||
287 | ;; | ||
288 | (\pred) mov \reg0 = r8 | ||
289 | ;; | ||
290 | .exitm | ||
291 | .endif | ||
292 | |||
293 | (\pred) mov \clob = r8 | ||
294 | (\pred) mov r8 = \reg1 | ||
295 | (\pred) XEN_HYPER_THASH | ||
296 | ;; | ||
297 | (\pred) mov \reg0 = r8 | ||
298 | (\pred) mov r8 = \clob | ||
299 | ;; | ||
300 | .endm | ||
301 | #define THASH(pred, reg0, reg1, clob) __THASH pred, reg0, reg1, clob | ||
302 | |||
303 | #define SSM_PSR_IC_AND_DEFAULT_BITS_AND_SRLZ_I(clob0, clob1) \ | ||
304 | mov clob0 = 1; \ | ||
305 | movl clob1 = XSI_PSR_IC; \ | ||
306 | ;; \ | ||
307 | st4 [clob1] = clob0 \ | ||
308 | ;; | ||
309 | |||
310 | #define SSM_PSR_IC_AND_SRLZ_D(clob0, clob1) \ | ||
311 | ;; \ | ||
312 | srlz.d; \ | ||
313 | mov clob1 = 1; \ | ||
314 | movl clob0 = XSI_PSR_IC; \ | ||
315 | ;; \ | ||
316 | st4 [clob0] = clob1 | ||
317 | |||
318 | #define RSM_PSR_IC(clob) \ | ||
319 | movl clob = XSI_PSR_IC; \ | ||
320 | ;; \ | ||
321 | st4 [clob] = r0; \ | ||
322 | ;; | ||
323 | |||
324 | /* pred will be clobbered */ | ||
325 | #define MASK_TO_PEND_OFS (-1) | ||
326 | #define SSM_PSR_I(pred, pred_clob, clob) \ | ||
327 | (pred) movl clob = XSI_PSR_I_ADDR \ | ||
328 | ;; \ | ||
329 | (pred) ld8 clob = [clob] \ | ||
330 | ;; \ | ||
331 | /* if (pred) vpsr.i = 1 */ \ | ||
332 | /* if (pred) (vcpu->vcpu_info->evtchn_upcall_mask)=0 */ \ | ||
333 | (pred) st1 [clob] = r0, MASK_TO_PEND_OFS \ | ||
334 | ;; \ | ||
335 | /* if (vcpu->vcpu_info->evtchn_upcall_pending) */ \ | ||
336 | (pred) ld1 clob = [clob] \ | ||
337 | ;; \ | ||
338 | (pred) cmp.ne.unc pred_clob, p0 = clob, r0 \ | ||
339 | ;; \ | ||
340 | (pred_clob)XEN_HYPER_SSM_I /* do areal ssm psr.i */ | ||
341 | |||
342 | #define RSM_PSR_I(pred, clob0, clob1) \ | ||
343 | movl clob0 = XSI_PSR_I_ADDR; \ | ||
344 | mov clob1 = 1; \ | ||
345 | ;; \ | ||
346 | ld8 clob0 = [clob0]; \ | ||
347 | ;; \ | ||
348 | (pred) st1 [clob0] = clob1 | ||
349 | |||
350 | #define RSM_PSR_I_IC(clob0, clob1, clob2) \ | ||
351 | movl clob0 = XSI_PSR_I_ADDR; \ | ||
352 | movl clob1 = XSI_PSR_IC; \ | ||
353 | ;; \ | ||
354 | ld8 clob0 = [clob0]; \ | ||
355 | mov clob2 = 1; \ | ||
356 | ;; \ | ||
357 | /* note: clears both vpsr.i and vpsr.ic! */ \ | ||
358 | st1 [clob0] = clob2; \ | ||
359 | st4 [clob1] = r0; \ | ||
360 | ;; | ||
361 | |||
362 | #define RSM_PSR_DT \ | ||
363 | XEN_HYPER_RSM_PSR_DT | ||
364 | |||
365 | #define SSM_PSR_DT_AND_SRLZ_I \ | ||
366 | XEN_HYPER_SSM_PSR_DT | ||
367 | |||
368 | #define BSW_0(clob0, clob1, clob2) \ | ||
369 | ;; \ | ||
370 | /* r16-r31 all now hold bank1 values */ \ | ||
371 | mov clob2 = ar.unat; \ | ||
372 | movl clob0 = XSI_BANK1_R16; \ | ||
373 | movl clob1 = XSI_BANK1_R16 + 8; \ | ||
374 | ;; \ | ||
375 | .mem.offset 0, 0; st8.spill [clob0] = r16, 16; \ | ||
376 | .mem.offset 8, 0; st8.spill [clob1] = r17, 16; \ | ||
377 | ;; \ | ||
378 | .mem.offset 0, 0; st8.spill [clob0] = r18, 16; \ | ||
379 | .mem.offset 8, 0; st8.spill [clob1] = r19, 16; \ | ||
380 | ;; \ | ||
381 | .mem.offset 0, 0; st8.spill [clob0] = r20, 16; \ | ||
382 | .mem.offset 8, 0; st8.spill [clob1] = r21, 16; \ | ||
383 | ;; \ | ||
384 | .mem.offset 0, 0; st8.spill [clob0] = r22, 16; \ | ||
385 | .mem.offset 8, 0; st8.spill [clob1] = r23, 16; \ | ||
386 | ;; \ | ||
387 | .mem.offset 0, 0; st8.spill [clob0] = r24, 16; \ | ||
388 | .mem.offset 8, 0; st8.spill [clob1] = r25, 16; \ | ||
389 | ;; \ | ||
390 | .mem.offset 0, 0; st8.spill [clob0] = r26, 16; \ | ||
391 | .mem.offset 8, 0; st8.spill [clob1] = r27, 16; \ | ||
392 | ;; \ | ||
393 | .mem.offset 0, 0; st8.spill [clob0] = r28, 16; \ | ||
394 | .mem.offset 8, 0; st8.spill [clob1] = r29, 16; \ | ||
395 | ;; \ | ||
396 | .mem.offset 0, 0; st8.spill [clob0] = r30, 16; \ | ||
397 | .mem.offset 8, 0; st8.spill [clob1] = r31, 16; \ | ||
398 | ;; \ | ||
399 | mov clob1 = ar.unat; \ | ||
400 | movl clob0 = XSI_B1NAT; \ | ||
401 | ;; \ | ||
402 | st8 [clob0] = clob1; \ | ||
403 | mov ar.unat = clob2; \ | ||
404 | movl clob0 = XSI_BANKNUM; \ | ||
405 | ;; \ | ||
406 | st4 [clob0] = r0 | ||
407 | |||
408 | |||
409 | /* FIXME: THIS CODE IS NOT NaT SAFE! */ | ||
410 | #define XEN_BSW_1(clob) \ | ||
411 | mov clob = ar.unat; \ | ||
412 | movl r30 = XSI_B1NAT; \ | ||
413 | ;; \ | ||
414 | ld8 r30 = [r30]; \ | ||
415 | mov r31 = 1; \ | ||
416 | ;; \ | ||
417 | mov ar.unat = r30; \ | ||
418 | movl r30 = XSI_BANKNUM; \ | ||
419 | ;; \ | ||
420 | st4 [r30] = r31; \ | ||
421 | movl r30 = XSI_BANK1_R16; \ | ||
422 | movl r31 = XSI_BANK1_R16+8; \ | ||
423 | ;; \ | ||
424 | ld8.fill r16 = [r30], 16; \ | ||
425 | ld8.fill r17 = [r31], 16; \ | ||
426 | ;; \ | ||
427 | ld8.fill r18 = [r30], 16; \ | ||
428 | ld8.fill r19 = [r31], 16; \ | ||
429 | ;; \ | ||
430 | ld8.fill r20 = [r30], 16; \ | ||
431 | ld8.fill r21 = [r31], 16; \ | ||
432 | ;; \ | ||
433 | ld8.fill r22 = [r30], 16; \ | ||
434 | ld8.fill r23 = [r31], 16; \ | ||
435 | ;; \ | ||
436 | ld8.fill r24 = [r30], 16; \ | ||
437 | ld8.fill r25 = [r31], 16; \ | ||
438 | ;; \ | ||
439 | ld8.fill r26 = [r30], 16; \ | ||
440 | ld8.fill r27 = [r31], 16; \ | ||
441 | ;; \ | ||
442 | ld8.fill r28 = [r30], 16; \ | ||
443 | ld8.fill r29 = [r31], 16; \ | ||
444 | ;; \ | ||
445 | ld8.fill r30 = [r30]; \ | ||
446 | ld8.fill r31 = [r31]; \ | ||
447 | ;; \ | ||
448 | mov ar.unat = clob | ||
449 | |||
450 | #define BSW_1(clob0, clob1) XEN_BSW_1(clob1) | ||
451 | |||
452 | |||
453 | #define COVER \ | ||
454 | XEN_HYPER_COVER | ||
455 | |||
456 | #define RFI \ | ||
457 | XEN_HYPER_RFI; \ | ||
458 | dv_serialize_data | ||
diff --git a/arch/ia64/include/asm/xen/interface.h b/arch/ia64/include/asm/xen/interface.h new file mode 100644 index 000000000000..f00fab40854d --- /dev/null +++ b/arch/ia64/include/asm/xen/interface.h | |||
@@ -0,0 +1,346 @@ | |||
1 | /****************************************************************************** | ||
2 | * arch-ia64/hypervisor-if.h | ||
3 | * | ||
4 | * Guest OS interface to IA64 Xen. | ||
5 | * | ||
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy | ||
7 | * of this software and associated documentation files (the "Software"), to | ||
8 | * deal in the Software without restriction, including without limitation the | ||
9 | * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or | ||
10 | * sell copies of the Software, and to permit persons to whom the Software is | ||
11 | * furnished to do so, subject to the following conditions: | ||
12 | * | ||
13 | * The above copyright notice and this permission notice shall be included in | ||
14 | * all copies or substantial portions of the Software. | ||
15 | * | ||
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
21 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||
22 | * DEALINGS IN THE SOFTWARE. | ||
23 | * | ||
24 | * Copyright by those who contributed. (in alphabetical order) | ||
25 | * | ||
26 | * Anthony Xu <anthony.xu@intel.com> | ||
27 | * Eddie Dong <eddie.dong@intel.com> | ||
28 | * Fred Yang <fred.yang@intel.com> | ||
29 | * Kevin Tian <kevin.tian@intel.com> | ||
30 | * Alex Williamson <alex.williamson@hp.com> | ||
31 | * Chris Wright <chrisw@sous-sol.org> | ||
32 | * Christian Limpach <Christian.Limpach@cl.cam.ac.uk> | ||
33 | * Dietmar Hahn <dietmar.hahn@fujitsu-siemens.com> | ||
34 | * Hollis Blanchard <hollisb@us.ibm.com> | ||
35 | * Isaku Yamahata <yamahata@valinux.co.jp> | ||
36 | * Jan Beulich <jbeulich@novell.com> | ||
37 | * John Levon <john.levon@sun.com> | ||
38 | * Kazuhiro Suzuki <kaz@jp.fujitsu.com> | ||
39 | * Keir Fraser <keir.fraser@citrix.com> | ||
40 | * Kouya Shimura <kouya@jp.fujitsu.com> | ||
41 | * Masaki Kanno <kanno.masaki@jp.fujitsu.com> | ||
42 | * Matt Chapman <matthewc@hp.com> | ||
43 | * Matthew Chapman <matthewc@hp.com> | ||
44 | * Samuel Thibault <samuel.thibault@eu.citrix.com> | ||
45 | * Tomonari Horikoshi <t.horikoshi@jp.fujitsu.com> | ||
46 | * Tristan Gingold <tgingold@free.fr> | ||
47 | * Tsunehisa Doi <Doi.Tsunehisa@jp.fujitsu.com> | ||
48 | * Yutaka Ezaki <yutaka.ezaki@jp.fujitsu.com> | ||
49 | * Zhang Xin <xing.z.zhang@intel.com> | ||
50 | * Zhang xiantao <xiantao.zhang@intel.com> | ||
51 | * dan.magenheimer@hp.com | ||
52 | * ian.pratt@cl.cam.ac.uk | ||
53 | * michael.fetterman@cl.cam.ac.uk | ||
54 | */ | ||
55 | |||
56 | #ifndef _ASM_IA64_XEN_INTERFACE_H | ||
57 | #define _ASM_IA64_XEN_INTERFACE_H | ||
58 | |||
59 | #define __DEFINE_GUEST_HANDLE(name, type) \ | ||
60 | typedef struct { type *p; } __guest_handle_ ## name | ||
61 | |||
62 | #define DEFINE_GUEST_HANDLE_STRUCT(name) \ | ||
63 | __DEFINE_GUEST_HANDLE(name, struct name) | ||
64 | #define DEFINE_GUEST_HANDLE(name) __DEFINE_GUEST_HANDLE(name, name) | ||
65 | #define GUEST_HANDLE(name) __guest_handle_ ## name | ||
66 | #define GUEST_HANDLE_64(name) GUEST_HANDLE(name) | ||
67 | #define set_xen_guest_handle(hnd, val) do { (hnd).p = val; } while (0) | ||
68 | |||
69 | #ifndef __ASSEMBLY__ | ||
70 | /* Guest handles for primitive C types. */ | ||
71 | __DEFINE_GUEST_HANDLE(uchar, unsigned char); | ||
72 | __DEFINE_GUEST_HANDLE(uint, unsigned int); | ||
73 | __DEFINE_GUEST_HANDLE(ulong, unsigned long); | ||
74 | __DEFINE_GUEST_HANDLE(u64, unsigned long); | ||
75 | DEFINE_GUEST_HANDLE(char); | ||
76 | DEFINE_GUEST_HANDLE(int); | ||
77 | DEFINE_GUEST_HANDLE(long); | ||
78 | DEFINE_GUEST_HANDLE(void); | ||
79 | |||
80 | typedef unsigned long xen_pfn_t; | ||
81 | DEFINE_GUEST_HANDLE(xen_pfn_t); | ||
82 | #define PRI_xen_pfn "lx" | ||
83 | #endif | ||
84 | |||
85 | /* Arch specific VIRQs definition */ | ||
86 | #define VIRQ_ITC VIRQ_ARCH_0 /* V. Virtual itc timer */ | ||
87 | #define VIRQ_MCA_CMC VIRQ_ARCH_1 /* MCA cmc interrupt */ | ||
88 | #define VIRQ_MCA_CPE VIRQ_ARCH_2 /* MCA cpe interrupt */ | ||
89 | |||
90 | /* Maximum number of virtual CPUs in multi-processor guests. */ | ||
91 | /* keep sizeof(struct shared_page) <= PAGE_SIZE. | ||
92 | * this is checked in arch/ia64/xen/hypervisor.c. */ | ||
93 | #define MAX_VIRT_CPUS 64 | ||
94 | |||
95 | #ifndef __ASSEMBLY__ | ||
96 | |||
97 | #define INVALID_MFN (~0UL) | ||
98 | |||
99 | union vac { | ||
100 | unsigned long value; | ||
101 | struct { | ||
102 | int a_int:1; | ||
103 | int a_from_int_cr:1; | ||
104 | int a_to_int_cr:1; | ||
105 | int a_from_psr:1; | ||
106 | int a_from_cpuid:1; | ||
107 | int a_cover:1; | ||
108 | int a_bsw:1; | ||
109 | long reserved:57; | ||
110 | }; | ||
111 | }; | ||
112 | |||
113 | union vdc { | ||
114 | unsigned long value; | ||
115 | struct { | ||
116 | int d_vmsw:1; | ||
117 | int d_extint:1; | ||
118 | int d_ibr_dbr:1; | ||
119 | int d_pmc:1; | ||
120 | int d_to_pmd:1; | ||
121 | int d_itm:1; | ||
122 | long reserved:58; | ||
123 | }; | ||
124 | }; | ||
125 | |||
126 | struct mapped_regs { | ||
127 | union vac vac; | ||
128 | union vdc vdc; | ||
129 | unsigned long virt_env_vaddr; | ||
130 | unsigned long reserved1[29]; | ||
131 | unsigned long vhpi; | ||
132 | unsigned long reserved2[95]; | ||
133 | union { | ||
134 | unsigned long vgr[16]; | ||
135 | unsigned long bank1_regs[16]; /* bank1 regs (r16-r31) | ||
136 | when bank0 active */ | ||
137 | }; | ||
138 | union { | ||
139 | unsigned long vbgr[16]; | ||
140 | unsigned long bank0_regs[16]; /* bank0 regs (r16-r31) | ||
141 | when bank1 active */ | ||
142 | }; | ||
143 | unsigned long vnat; | ||
144 | unsigned long vbnat; | ||
145 | unsigned long vcpuid[5]; | ||
146 | unsigned long reserved3[11]; | ||
147 | unsigned long vpsr; | ||
148 | unsigned long vpr; | ||
149 | unsigned long reserved4[76]; | ||
150 | union { | ||
151 | unsigned long vcr[128]; | ||
152 | struct { | ||
153 | unsigned long dcr; /* CR0 */ | ||
154 | unsigned long itm; | ||
155 | unsigned long iva; | ||
156 | unsigned long rsv1[5]; | ||
157 | unsigned long pta; /* CR8 */ | ||
158 | unsigned long rsv2[7]; | ||
159 | unsigned long ipsr; /* CR16 */ | ||
160 | unsigned long isr; | ||
161 | unsigned long rsv3; | ||
162 | unsigned long iip; | ||
163 | unsigned long ifa; | ||
164 | unsigned long itir; | ||
165 | unsigned long iipa; | ||
166 | unsigned long ifs; | ||
167 | unsigned long iim; /* CR24 */ | ||
168 | unsigned long iha; | ||
169 | unsigned long rsv4[38]; | ||
170 | unsigned long lid; /* CR64 */ | ||
171 | unsigned long ivr; | ||
172 | unsigned long tpr; | ||
173 | unsigned long eoi; | ||
174 | unsigned long irr[4]; | ||
175 | unsigned long itv; /* CR72 */ | ||
176 | unsigned long pmv; | ||
177 | unsigned long cmcv; | ||
178 | unsigned long rsv5[5]; | ||
179 | unsigned long lrr0; /* CR80 */ | ||
180 | unsigned long lrr1; | ||
181 | unsigned long rsv6[46]; | ||
182 | }; | ||
183 | }; | ||
184 | union { | ||
185 | unsigned long reserved5[128]; | ||
186 | struct { | ||
187 | unsigned long precover_ifs; | ||
188 | unsigned long unat; /* not sure if this is needed | ||
189 | until NaT arch is done */ | ||
190 | int interrupt_collection_enabled; /* virtual psr.ic */ | ||
191 | |||
192 | /* virtual interrupt deliverable flag is | ||
193 | * evtchn_upcall_mask in shared info area now. | ||
194 | * interrupt_mask_addr is the address | ||
195 | * of evtchn_upcall_mask for current vcpu | ||
196 | */ | ||
197 | unsigned char *interrupt_mask_addr; | ||
198 | int pending_interruption; | ||
199 | unsigned char vpsr_pp; | ||
200 | unsigned char vpsr_dfh; | ||
201 | unsigned char hpsr_dfh; | ||
202 | unsigned char hpsr_mfh; | ||
203 | unsigned long reserved5_1[4]; | ||
204 | int metaphysical_mode; /* 1 = use metaphys mapping | ||
205 | 0 = use virtual */ | ||
206 | int banknum; /* 0 or 1, which virtual | ||
207 | register bank is active */ | ||
208 | unsigned long rrs[8]; /* region registers */ | ||
209 | unsigned long krs[8]; /* kernel registers */ | ||
210 | unsigned long tmp[16]; /* temp registers | ||
211 | (e.g. for hyperprivops) */ | ||
212 | }; | ||
213 | }; | ||
214 | }; | ||
215 | |||
216 | struct arch_vcpu_info { | ||
217 | /* nothing */ | ||
218 | }; | ||
219 | |||
220 | /* | ||
221 | * This structure is used for magic page in domain pseudo physical address | ||
222 | * space and the result of XENMEM_machine_memory_map. | ||
223 | * As the XENMEM_machine_memory_map result, | ||
224 | * xen_memory_map::nr_entries indicates the size in bytes | ||
225 | * including struct xen_ia64_memmap_info. Not the number of entries. | ||
226 | */ | ||
227 | struct xen_ia64_memmap_info { | ||
228 | uint64_t efi_memmap_size; /* size of EFI memory map */ | ||
229 | uint64_t efi_memdesc_size; /* size of an EFI memory map | ||
230 | * descriptor */ | ||
231 | uint32_t efi_memdesc_version; /* memory descriptor version */ | ||
232 | void *memdesc[0]; /* array of efi_memory_desc_t */ | ||
233 | }; | ||
234 | |||
235 | struct arch_shared_info { | ||
236 | /* PFN of the start_info page. */ | ||
237 | unsigned long start_info_pfn; | ||
238 | |||
239 | /* Interrupt vector for event channel. */ | ||
240 | int evtchn_vector; | ||
241 | |||
242 | /* PFN of memmap_info page */ | ||
243 | unsigned int memmap_info_num_pages; /* currently only = 1 case is | ||
244 | supported. */ | ||
245 | unsigned long memmap_info_pfn; | ||
246 | |||
247 | uint64_t pad[31]; | ||
248 | }; | ||
249 | |||
250 | struct xen_callback { | ||
251 | unsigned long ip; | ||
252 | }; | ||
253 | typedef struct xen_callback xen_callback_t; | ||
254 | |||
255 | #endif /* !__ASSEMBLY__ */ | ||
256 | |||
257 | /* Size of the shared_info area (this is not related to page size). */ | ||
258 | #define XSI_SHIFT 14 | ||
259 | #define XSI_SIZE (1 << XSI_SHIFT) | ||
260 | /* Log size of mapped_regs area (64 KB - only 4KB is used). */ | ||
261 | #define XMAPPEDREGS_SHIFT 12 | ||
262 | #define XMAPPEDREGS_SIZE (1 << XMAPPEDREGS_SHIFT) | ||
263 | /* Offset of XASI (Xen arch shared info) wrt XSI_BASE. */ | ||
264 | #define XMAPPEDREGS_OFS XSI_SIZE | ||
265 | |||
266 | /* Hyperprivops. */ | ||
267 | #define HYPERPRIVOP_START 0x1 | ||
268 | #define HYPERPRIVOP_RFI (HYPERPRIVOP_START + 0x0) | ||
269 | #define HYPERPRIVOP_RSM_DT (HYPERPRIVOP_START + 0x1) | ||
270 | #define HYPERPRIVOP_SSM_DT (HYPERPRIVOP_START + 0x2) | ||
271 | #define HYPERPRIVOP_COVER (HYPERPRIVOP_START + 0x3) | ||
272 | #define HYPERPRIVOP_ITC_D (HYPERPRIVOP_START + 0x4) | ||
273 | #define HYPERPRIVOP_ITC_I (HYPERPRIVOP_START + 0x5) | ||
274 | #define HYPERPRIVOP_SSM_I (HYPERPRIVOP_START + 0x6) | ||
275 | #define HYPERPRIVOP_GET_IVR (HYPERPRIVOP_START + 0x7) | ||
276 | #define HYPERPRIVOP_GET_TPR (HYPERPRIVOP_START + 0x8) | ||
277 | #define HYPERPRIVOP_SET_TPR (HYPERPRIVOP_START + 0x9) | ||
278 | #define HYPERPRIVOP_EOI (HYPERPRIVOP_START + 0xa) | ||
279 | #define HYPERPRIVOP_SET_ITM (HYPERPRIVOP_START + 0xb) | ||
280 | #define HYPERPRIVOP_THASH (HYPERPRIVOP_START + 0xc) | ||
281 | #define HYPERPRIVOP_PTC_GA (HYPERPRIVOP_START + 0xd) | ||
282 | #define HYPERPRIVOP_ITR_D (HYPERPRIVOP_START + 0xe) | ||
283 | #define HYPERPRIVOP_GET_RR (HYPERPRIVOP_START + 0xf) | ||
284 | #define HYPERPRIVOP_SET_RR (HYPERPRIVOP_START + 0x10) | ||
285 | #define HYPERPRIVOP_SET_KR (HYPERPRIVOP_START + 0x11) | ||
286 | #define HYPERPRIVOP_FC (HYPERPRIVOP_START + 0x12) | ||
287 | #define HYPERPRIVOP_GET_CPUID (HYPERPRIVOP_START + 0x13) | ||
288 | #define HYPERPRIVOP_GET_PMD (HYPERPRIVOP_START + 0x14) | ||
289 | #define HYPERPRIVOP_GET_EFLAG (HYPERPRIVOP_START + 0x15) | ||
290 | #define HYPERPRIVOP_SET_EFLAG (HYPERPRIVOP_START + 0x16) | ||
291 | #define HYPERPRIVOP_RSM_BE (HYPERPRIVOP_START + 0x17) | ||
292 | #define HYPERPRIVOP_GET_PSR (HYPERPRIVOP_START + 0x18) | ||
293 | #define HYPERPRIVOP_SET_RR0_TO_RR4 (HYPERPRIVOP_START + 0x19) | ||
294 | #define HYPERPRIVOP_MAX (0x1a) | ||
295 | |||
296 | /* Fast and light hypercalls. */ | ||
297 | #define __HYPERVISOR_ia64_fast_eoi __HYPERVISOR_arch_1 | ||
298 | |||
299 | /* Xencomm macros. */ | ||
300 | #define XENCOMM_INLINE_MASK 0xf800000000000000UL | ||
301 | #define XENCOMM_INLINE_FLAG 0x8000000000000000UL | ||
302 | |||
303 | #ifndef __ASSEMBLY__ | ||
304 | |||
305 | /* | ||
306 | * Optimization features. | ||
307 | * The hypervisor may do some special optimizations for guests. This hypercall | ||
308 | * can be used to switch on/of these special optimizations. | ||
309 | */ | ||
310 | #define __HYPERVISOR_opt_feature 0x700UL | ||
311 | |||
312 | #define XEN_IA64_OPTF_OFF 0x0 | ||
313 | #define XEN_IA64_OPTF_ON 0x1 | ||
314 | |||
315 | /* | ||
316 | * If this feature is switched on, the hypervisor inserts the | ||
317 | * tlb entries without calling the guests traphandler. | ||
318 | * This is useful in guests using region 7 for identity mapping | ||
319 | * like the linux kernel does. | ||
320 | */ | ||
321 | #define XEN_IA64_OPTF_IDENT_MAP_REG7 1 | ||
322 | |||
323 | /* Identity mapping of region 4 addresses in HVM. */ | ||
324 | #define XEN_IA64_OPTF_IDENT_MAP_REG4 2 | ||
325 | |||
326 | /* Identity mapping of region 5 addresses in HVM. */ | ||
327 | #define XEN_IA64_OPTF_IDENT_MAP_REG5 3 | ||
328 | |||
329 | #define XEN_IA64_OPTF_IDENT_MAP_NOT_SET (0) | ||
330 | |||
331 | struct xen_ia64_opt_feature { | ||
332 | unsigned long cmd; /* Which feature */ | ||
333 | unsigned char on; /* Switch feature on/off */ | ||
334 | union { | ||
335 | struct { | ||
336 | /* The page protection bit mask of the pte. | ||
337 | * This will be or'ed with the pte. */ | ||
338 | unsigned long pgprot; | ||
339 | unsigned long key; /* A protection key for itir.*/ | ||
340 | }; | ||
341 | }; | ||
342 | }; | ||
343 | |||
344 | #endif /* __ASSEMBLY__ */ | ||
345 | |||
346 | #endif /* _ASM_IA64_XEN_INTERFACE_H */ | ||
diff --git a/arch/ia64/include/asm/xen/irq.h b/arch/ia64/include/asm/xen/irq.h new file mode 100644 index 000000000000..a90450983003 --- /dev/null +++ b/arch/ia64/include/asm/xen/irq.h | |||
@@ -0,0 +1,44 @@ | |||
1 | /****************************************************************************** | ||
2 | * arch/ia64/include/asm/xen/irq.h | ||
3 | * | ||
4 | * Copyright (c) 2008 Isaku Yamahata <yamahata at valinux co jp> | ||
5 | * VA Linux Systems Japan K.K. | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License as published by | ||
9 | * the Free Software Foundation; either version 2 of the License, or | ||
10 | * (at your option) any later version. | ||
11 | * | ||
12 | * This program is distributed in the hope that it will be useful, | ||
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | * GNU General Public License for more details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program; if not, write to the Free Software | ||
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
20 | * | ||
21 | */ | ||
22 | |||
23 | #ifndef _ASM_IA64_XEN_IRQ_H | ||
24 | #define _ASM_IA64_XEN_IRQ_H | ||
25 | |||
26 | /* | ||
27 | * The flat IRQ space is divided into two regions: | ||
28 | * 1. A one-to-one mapping of real physical IRQs. This space is only used | ||
29 | * if we have physical device-access privilege. This region is at the | ||
30 | * start of the IRQ space so that existing device drivers do not need | ||
31 | * to be modified to translate physical IRQ numbers into our IRQ space. | ||
32 | * 3. A dynamic mapping of inter-domain and Xen-sourced virtual IRQs. These | ||
33 | * are bound using the provided bind/unbind functions. | ||
34 | */ | ||
35 | |||
36 | #define XEN_PIRQ_BASE 0 | ||
37 | #define XEN_NR_PIRQS 256 | ||
38 | |||
39 | #define XEN_DYNIRQ_BASE (XEN_PIRQ_BASE + XEN_NR_PIRQS) | ||
40 | #define XEN_NR_DYNIRQS (NR_CPUS * 8) | ||
41 | |||
42 | #define XEN_NR_IRQS (XEN_NR_PIRQS + XEN_NR_DYNIRQS) | ||
43 | |||
44 | #endif /* _ASM_IA64_XEN_IRQ_H */ | ||
diff --git a/arch/ia64/include/asm/xen/minstate.h b/arch/ia64/include/asm/xen/minstate.h new file mode 100644 index 000000000000..4d92d9bbda7b --- /dev/null +++ b/arch/ia64/include/asm/xen/minstate.h | |||
@@ -0,0 +1,134 @@ | |||
1 | /* | ||
2 | * DO_SAVE_MIN switches to the kernel stacks (if necessary) and saves | ||
3 | * the minimum state necessary that allows us to turn psr.ic back | ||
4 | * on. | ||
5 | * | ||
6 | * Assumed state upon entry: | ||
7 | * psr.ic: off | ||
8 | * r31: contains saved predicates (pr) | ||
9 | * | ||
10 | * Upon exit, the state is as follows: | ||
11 | * psr.ic: off | ||
12 | * r2 = points to &pt_regs.r16 | ||
13 | * r8 = contents of ar.ccv | ||
14 | * r9 = contents of ar.csd | ||
15 | * r10 = contents of ar.ssd | ||
16 | * r11 = FPSR_DEFAULT | ||
17 | * r12 = kernel sp (kernel virtual address) | ||
18 | * r13 = points to current task_struct (kernel virtual address) | ||
19 | * p15 = TRUE if psr.i is set in cr.ipsr | ||
20 | * predicate registers (other than p2, p3, and p15), b6, r3, r14, r15: | ||
21 | * preserved | ||
22 | * CONFIG_XEN note: p6/p7 are not preserved | ||
23 | * | ||
24 | * Note that psr.ic is NOT turned on by this macro. This is so that | ||
25 | * we can pass interruption state as arguments to a handler. | ||
26 | */ | ||
27 | #define XEN_DO_SAVE_MIN(__COVER,SAVE_IFS,EXTRA,WORKAROUND) \ | ||
28 | mov r16=IA64_KR(CURRENT); /* M */ \ | ||
29 | mov r27=ar.rsc; /* M */ \ | ||
30 | mov r20=r1; /* A */ \ | ||
31 | mov r25=ar.unat; /* M */ \ | ||
32 | MOV_FROM_IPSR(p0,r29); /* M */ \ | ||
33 | MOV_FROM_IIP(r28); /* M */ \ | ||
34 | mov r21=ar.fpsr; /* M */ \ | ||
35 | mov r26=ar.pfs; /* I */ \ | ||
36 | __COVER; /* B;; (or nothing) */ \ | ||
37 | adds r16=IA64_TASK_THREAD_ON_USTACK_OFFSET,r16; \ | ||
38 | ;; \ | ||
39 | ld1 r17=[r16]; /* load current->thread.on_ustack flag */ \ | ||
40 | st1 [r16]=r0; /* clear current->thread.on_ustack flag */ \ | ||
41 | adds r1=-IA64_TASK_THREAD_ON_USTACK_OFFSET,r16 \ | ||
42 | /* switch from user to kernel RBS: */ \ | ||
43 | ;; \ | ||
44 | invala; /* M */ \ | ||
45 | /* SAVE_IFS;*/ /* see xen special handling below */ \ | ||
46 | cmp.eq pKStk,pUStk=r0,r17; /* are we in kernel mode already? */ \ | ||
47 | ;; \ | ||
48 | (pUStk) mov ar.rsc=0; /* set enforced lazy mode, pl 0, little-endian, loadrs=0 */ \ | ||
49 | ;; \ | ||
50 | (pUStk) mov.m r24=ar.rnat; \ | ||
51 | (pUStk) addl r22=IA64_RBS_OFFSET,r1; /* compute base of RBS */ \ | ||
52 | (pKStk) mov r1=sp; /* get sp */ \ | ||
53 | ;; \ | ||
54 | (pUStk) lfetch.fault.excl.nt1 [r22]; \ | ||
55 | (pUStk) addl r1=IA64_STK_OFFSET-IA64_PT_REGS_SIZE,r1; /* compute base of memory stack */ \ | ||
56 | (pUStk) mov r23=ar.bspstore; /* save ar.bspstore */ \ | ||
57 | ;; \ | ||
58 | (pUStk) mov ar.bspstore=r22; /* switch to kernel RBS */ \ | ||
59 | (pKStk) addl r1=-IA64_PT_REGS_SIZE,r1; /* if in kernel mode, use sp (r12) */ \ | ||
60 | ;; \ | ||
61 | (pUStk) mov r18=ar.bsp; \ | ||
62 | (pUStk) mov ar.rsc=0x3; /* set eager mode, pl 0, little-endian, loadrs=0 */ \ | ||
63 | adds r17=2*L1_CACHE_BYTES,r1; /* really: biggest cache-line size */ \ | ||
64 | adds r16=PT(CR_IPSR),r1; \ | ||
65 | ;; \ | ||
66 | lfetch.fault.excl.nt1 [r17],L1_CACHE_BYTES; \ | ||
67 | st8 [r16]=r29; /* save cr.ipsr */ \ | ||
68 | ;; \ | ||
69 | lfetch.fault.excl.nt1 [r17]; \ | ||
70 | tbit.nz p15,p0=r29,IA64_PSR_I_BIT; \ | ||
71 | mov r29=b0 \ | ||
72 | ;; \ | ||
73 | WORKAROUND; \ | ||
74 | adds r16=PT(R8),r1; /* initialize first base pointer */ \ | ||
75 | adds r17=PT(R9),r1; /* initialize second base pointer */ \ | ||
76 | (pKStk) mov r18=r0; /* make sure r18 isn't NaT */ \ | ||
77 | ;; \ | ||
78 | .mem.offset 0,0; st8.spill [r16]=r8,16; \ | ||
79 | .mem.offset 8,0; st8.spill [r17]=r9,16; \ | ||
80 | ;; \ | ||
81 | .mem.offset 0,0; st8.spill [r16]=r10,24; \ | ||
82 | movl r8=XSI_PRECOVER_IFS; \ | ||
83 | .mem.offset 8,0; st8.spill [r17]=r11,24; \ | ||
84 | ;; \ | ||
85 | /* xen special handling for possibly lazy cover */ \ | ||
86 | /* SAVE_MIN case in dispatch_ia32_handler: mov r30=r0 */ \ | ||
87 | ld8 r30=[r8]; \ | ||
88 | (pUStk) sub r18=r18,r22; /* r18=RSE.ndirty*8 */ \ | ||
89 | st8 [r16]=r28,16; /* save cr.iip */ \ | ||
90 | ;; \ | ||
91 | st8 [r17]=r30,16; /* save cr.ifs */ \ | ||
92 | mov r8=ar.ccv; \ | ||
93 | mov r9=ar.csd; \ | ||
94 | mov r10=ar.ssd; \ | ||
95 | movl r11=FPSR_DEFAULT; /* L-unit */ \ | ||
96 | ;; \ | ||
97 | st8 [r16]=r25,16; /* save ar.unat */ \ | ||
98 | st8 [r17]=r26,16; /* save ar.pfs */ \ | ||
99 | shl r18=r18,16; /* compute ar.rsc to be used for "loadrs" */ \ | ||
100 | ;; \ | ||
101 | st8 [r16]=r27,16; /* save ar.rsc */ \ | ||
102 | (pUStk) st8 [r17]=r24,16; /* save ar.rnat */ \ | ||
103 | (pKStk) adds r17=16,r17; /* skip over ar_rnat field */ \ | ||
104 | ;; /* avoid RAW on r16 & r17 */ \ | ||
105 | (pUStk) st8 [r16]=r23,16; /* save ar.bspstore */ \ | ||
106 | st8 [r17]=r31,16; /* save predicates */ \ | ||
107 | (pKStk) adds r16=16,r16; /* skip over ar_bspstore field */ \ | ||
108 | ;; \ | ||
109 | st8 [r16]=r29,16; /* save b0 */ \ | ||
110 | st8 [r17]=r18,16; /* save ar.rsc value for "loadrs" */ \ | ||
111 | cmp.eq pNonSys,pSys=r0,r0 /* initialize pSys=0, pNonSys=1 */ \ | ||
112 | ;; \ | ||
113 | .mem.offset 0,0; st8.spill [r16]=r20,16; /* save original r1 */ \ | ||
114 | .mem.offset 8,0; st8.spill [r17]=r12,16; \ | ||
115 | adds r12=-16,r1; /* switch to kernel memory stack (with 16 bytes of scratch) */ \ | ||
116 | ;; \ | ||
117 | .mem.offset 0,0; st8.spill [r16]=r13,16; \ | ||
118 | .mem.offset 8,0; st8.spill [r17]=r21,16; /* save ar.fpsr */ \ | ||
119 | mov r13=IA64_KR(CURRENT); /* establish `current' */ \ | ||
120 | ;; \ | ||
121 | .mem.offset 0,0; st8.spill [r16]=r15,16; \ | ||
122 | .mem.offset 8,0; st8.spill [r17]=r14,16; \ | ||
123 | ;; \ | ||
124 | .mem.offset 0,0; st8.spill [r16]=r2,16; \ | ||
125 | .mem.offset 8,0; st8.spill [r17]=r3,16; \ | ||
126 | ACCOUNT_GET_STAMP \ | ||
127 | adds r2=IA64_PT_REGS_R16_OFFSET,r1; \ | ||
128 | ;; \ | ||
129 | EXTRA; \ | ||
130 | movl r1=__gp; /* establish kernel global pointer */ \ | ||
131 | ;; \ | ||
132 | ACCOUNT_SYS_ENTER \ | ||
133 | BSW_1(r3,r14); /* switch back to bank 1 (must be last in insn group) */ \ | ||
134 | ;; | ||
diff --git a/arch/ia64/include/asm/xen/page.h b/arch/ia64/include/asm/xen/page.h new file mode 100644 index 000000000000..03441a780b5b --- /dev/null +++ b/arch/ia64/include/asm/xen/page.h | |||
@@ -0,0 +1,65 @@ | |||
1 | /****************************************************************************** | ||
2 | * arch/ia64/include/asm/xen/page.h | ||
3 | * | ||
4 | * Copyright (c) 2008 Isaku Yamahata <yamahata at valinux co jp> | ||
5 | * VA Linux Systems Japan K.K. | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License as published by | ||
9 | * the Free Software Foundation; either version 2 of the License, or | ||
10 | * (at your option) any later version. | ||
11 | * | ||
12 | * This program is distributed in the hope that it will be useful, | ||
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | * GNU General Public License for more details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program; if not, write to the Free Software | ||
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
20 | * | ||
21 | */ | ||
22 | |||
23 | #ifndef _ASM_IA64_XEN_PAGE_H | ||
24 | #define _ASM_IA64_XEN_PAGE_H | ||
25 | |||
26 | #define INVALID_P2M_ENTRY (~0UL) | ||
27 | |||
28 | static inline unsigned long mfn_to_pfn(unsigned long mfn) | ||
29 | { | ||
30 | return mfn; | ||
31 | } | ||
32 | |||
33 | static inline unsigned long pfn_to_mfn(unsigned long pfn) | ||
34 | { | ||
35 | return pfn; | ||
36 | } | ||
37 | |||
38 | #define phys_to_machine_mapping_valid(_x) (1) | ||
39 | |||
40 | static inline void *mfn_to_virt(unsigned long mfn) | ||
41 | { | ||
42 | return __va(mfn << PAGE_SHIFT); | ||
43 | } | ||
44 | |||
45 | static inline unsigned long virt_to_mfn(void *virt) | ||
46 | { | ||
47 | return __pa(virt) >> PAGE_SHIFT; | ||
48 | } | ||
49 | |||
50 | /* for tpmfront.c */ | ||
51 | static inline unsigned long virt_to_machine(void *virt) | ||
52 | { | ||
53 | return __pa(virt); | ||
54 | } | ||
55 | |||
56 | static inline void set_phys_to_machine(unsigned long pfn, unsigned long mfn) | ||
57 | { | ||
58 | /* nothing */ | ||
59 | } | ||
60 | |||
61 | #define pte_mfn(_x) pte_pfn(_x) | ||
62 | #define mfn_pte(_x, _y) __pte_ma(0) /* unmodified use */ | ||
63 | #define __pte_ma(_x) ((pte_t) {(_x)}) /* unmodified use */ | ||
64 | |||
65 | #endif /* _ASM_IA64_XEN_PAGE_H */ | ||
diff --git a/arch/ia64/include/asm/xen/privop.h b/arch/ia64/include/asm/xen/privop.h new file mode 100644 index 000000000000..71ec7546e100 --- /dev/null +++ b/arch/ia64/include/asm/xen/privop.h | |||
@@ -0,0 +1,129 @@ | |||
1 | #ifndef _ASM_IA64_XEN_PRIVOP_H | ||
2 | #define _ASM_IA64_XEN_PRIVOP_H | ||
3 | |||
4 | /* | ||
5 | * Copyright (C) 2005 Hewlett-Packard Co | ||
6 | * Dan Magenheimer <dan.magenheimer@hp.com> | ||
7 | * | ||
8 | * Paravirtualizations of privileged operations for Xen/ia64 | ||
9 | * | ||
10 | * | ||
11 | * inline privop and paravirt_alt support | ||
12 | * Copyright (c) 2007 Isaku Yamahata <yamahata at valinux co jp> | ||
13 | * VA Linux Systems Japan K.K. | ||
14 | * | ||
15 | */ | ||
16 | |||
17 | #ifndef __ASSEMBLY__ | ||
18 | #include <linux/types.h> /* arch-ia64.h requires uint64_t */ | ||
19 | #endif | ||
20 | #include <asm/xen/interface.h> | ||
21 | |||
22 | /* At 1 MB, before per-cpu space but still addressable using addl instead | ||
23 | of movl. */ | ||
24 | #define XSI_BASE 0xfffffffffff00000 | ||
25 | |||
26 | /* Address of mapped regs. */ | ||
27 | #define XMAPPEDREGS_BASE (XSI_BASE + XSI_SIZE) | ||
28 | |||
29 | #ifdef __ASSEMBLY__ | ||
30 | #define XEN_HYPER_RFI break HYPERPRIVOP_RFI | ||
31 | #define XEN_HYPER_RSM_PSR_DT break HYPERPRIVOP_RSM_DT | ||
32 | #define XEN_HYPER_SSM_PSR_DT break HYPERPRIVOP_SSM_DT | ||
33 | #define XEN_HYPER_COVER break HYPERPRIVOP_COVER | ||
34 | #define XEN_HYPER_ITC_D break HYPERPRIVOP_ITC_D | ||
35 | #define XEN_HYPER_ITC_I break HYPERPRIVOP_ITC_I | ||
36 | #define XEN_HYPER_SSM_I break HYPERPRIVOP_SSM_I | ||
37 | #define XEN_HYPER_GET_IVR break HYPERPRIVOP_GET_IVR | ||
38 | #define XEN_HYPER_THASH break HYPERPRIVOP_THASH | ||
39 | #define XEN_HYPER_ITR_D break HYPERPRIVOP_ITR_D | ||
40 | #define XEN_HYPER_SET_KR break HYPERPRIVOP_SET_KR | ||
41 | #define XEN_HYPER_GET_PSR break HYPERPRIVOP_GET_PSR | ||
42 | #define XEN_HYPER_SET_RR0_TO_RR4 break HYPERPRIVOP_SET_RR0_TO_RR4 | ||
43 | |||
44 | #define XSI_IFS (XSI_BASE + XSI_IFS_OFS) | ||
45 | #define XSI_PRECOVER_IFS (XSI_BASE + XSI_PRECOVER_IFS_OFS) | ||
46 | #define XSI_IFA (XSI_BASE + XSI_IFA_OFS) | ||
47 | #define XSI_ISR (XSI_BASE + XSI_ISR_OFS) | ||
48 | #define XSI_IIM (XSI_BASE + XSI_IIM_OFS) | ||
49 | #define XSI_ITIR (XSI_BASE + XSI_ITIR_OFS) | ||
50 | #define XSI_PSR_I_ADDR (XSI_BASE + XSI_PSR_I_ADDR_OFS) | ||
51 | #define XSI_PSR_IC (XSI_BASE + XSI_PSR_IC_OFS) | ||
52 | #define XSI_IPSR (XSI_BASE + XSI_IPSR_OFS) | ||
53 | #define XSI_IIP (XSI_BASE + XSI_IIP_OFS) | ||
54 | #define XSI_B1NAT (XSI_BASE + XSI_B1NATS_OFS) | ||
55 | #define XSI_BANK1_R16 (XSI_BASE + XSI_BANK1_R16_OFS) | ||
56 | #define XSI_BANKNUM (XSI_BASE + XSI_BANKNUM_OFS) | ||
57 | #define XSI_IHA (XSI_BASE + XSI_IHA_OFS) | ||
58 | #endif | ||
59 | |||
60 | #ifndef __ASSEMBLY__ | ||
61 | |||
62 | /************************************************/ | ||
63 | /* Instructions paravirtualized for correctness */ | ||
64 | /************************************************/ | ||
65 | |||
66 | /* "fc" and "thash" are privilege-sensitive instructions, meaning they | ||
67 | * may have different semantics depending on whether they are executed | ||
68 | * at PL0 vs PL!=0. When paravirtualized, these instructions mustn't | ||
69 | * be allowed to execute directly, lest incorrect semantics result. */ | ||
70 | extern void xen_fc(unsigned long addr); | ||
71 | extern unsigned long xen_thash(unsigned long addr); | ||
72 | |||
73 | /* Note that "ttag" and "cover" are also privilege-sensitive; "ttag" | ||
74 | * is not currently used (though it may be in a long-format VHPT system!) | ||
75 | * and the semantics of cover only change if psr.ic is off which is very | ||
76 | * rare (and currently non-existent outside of assembly code */ | ||
77 | |||
78 | /* There are also privilege-sensitive registers. These registers are | ||
79 | * readable at any privilege level but only writable at PL0. */ | ||
80 | extern unsigned long xen_get_cpuid(int index); | ||
81 | extern unsigned long xen_get_pmd(int index); | ||
82 | |||
83 | extern unsigned long xen_get_eflag(void); /* see xen_ia64_getreg */ | ||
84 | extern void xen_set_eflag(unsigned long); /* see xen_ia64_setreg */ | ||
85 | |||
86 | /************************************************/ | ||
87 | /* Instructions paravirtualized for performance */ | ||
88 | /************************************************/ | ||
89 | |||
90 | /* Xen uses memory-mapped virtual privileged registers for access to many | ||
91 | * performance-sensitive privileged registers. Some, like the processor | ||
92 | * status register (psr), are broken up into multiple memory locations. | ||
93 | * Others, like "pend", are abstractions based on privileged registers. | ||
94 | * "Pend" is guaranteed to be set if reading cr.ivr would return a | ||
95 | * (non-spurious) interrupt. */ | ||
96 | #define XEN_MAPPEDREGS ((struct mapped_regs *)XMAPPEDREGS_BASE) | ||
97 | |||
98 | #define XSI_PSR_I \ | ||
99 | (*XEN_MAPPEDREGS->interrupt_mask_addr) | ||
100 | #define xen_get_virtual_psr_i() \ | ||
101 | (!XSI_PSR_I) | ||
102 | #define xen_set_virtual_psr_i(_val) \ | ||
103 | ({ XSI_PSR_I = (uint8_t)(_val) ? 0 : 1; }) | ||
104 | #define xen_set_virtual_psr_ic(_val) \ | ||
105 | ({ XEN_MAPPEDREGS->interrupt_collection_enabled = _val ? 1 : 0; }) | ||
106 | #define xen_get_virtual_pend() \ | ||
107 | (*(((uint8_t *)XEN_MAPPEDREGS->interrupt_mask_addr) - 1)) | ||
108 | |||
109 | /* Although all privileged operations can be left to trap and will | ||
110 | * be properly handled by Xen, some are frequent enough that we use | ||
111 | * hyperprivops for performance. */ | ||
112 | extern unsigned long xen_get_psr(void); | ||
113 | extern unsigned long xen_get_ivr(void); | ||
114 | extern unsigned long xen_get_tpr(void); | ||
115 | extern void xen_hyper_ssm_i(void); | ||
116 | extern void xen_set_itm(unsigned long); | ||
117 | extern void xen_set_tpr(unsigned long); | ||
118 | extern void xen_eoi(unsigned long); | ||
119 | extern unsigned long xen_get_rr(unsigned long index); | ||
120 | extern void xen_set_rr(unsigned long index, unsigned long val); | ||
121 | extern void xen_set_rr0_to_rr4(unsigned long val0, unsigned long val1, | ||
122 | unsigned long val2, unsigned long val3, | ||
123 | unsigned long val4); | ||
124 | extern void xen_set_kr(unsigned long index, unsigned long val); | ||
125 | extern void xen_ptcga(unsigned long addr, unsigned long size); | ||
126 | |||
127 | #endif /* !__ASSEMBLY__ */ | ||
128 | |||
129 | #endif /* _ASM_IA64_XEN_PRIVOP_H */ | ||
diff --git a/arch/ia64/include/asm/xen/xcom_hcall.h b/arch/ia64/include/asm/xen/xcom_hcall.h new file mode 100644 index 000000000000..20b2950c71b6 --- /dev/null +++ b/arch/ia64/include/asm/xen/xcom_hcall.h | |||
@@ -0,0 +1,51 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2006 Tristan Gingold <tristan.gingold@bull.net>, Bull SAS | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation; either version 2 of the License, or | ||
7 | * (at your option) any later version. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
17 | */ | ||
18 | |||
19 | #ifndef _ASM_IA64_XEN_XCOM_HCALL_H | ||
20 | #define _ASM_IA64_XEN_XCOM_HCALL_H | ||
21 | |||
22 | /* These function creates inline or mini descriptor for the parameters and | ||
23 | calls the corresponding xencomm_arch_hypercall_X. | ||
24 | Architectures should defines HYPERVISOR_xxx as xencomm_hypercall_xxx unless | ||
25 | they want to use their own wrapper. */ | ||
26 | extern int xencomm_hypercall_console_io(int cmd, int count, char *str); | ||
27 | |||
28 | extern int xencomm_hypercall_event_channel_op(int cmd, void *op); | ||
29 | |||
30 | extern int xencomm_hypercall_xen_version(int cmd, void *arg); | ||
31 | |||
32 | extern int xencomm_hypercall_physdev_op(int cmd, void *op); | ||
33 | |||
34 | extern int xencomm_hypercall_grant_table_op(unsigned int cmd, void *op, | ||
35 | unsigned int count); | ||
36 | |||
37 | extern int xencomm_hypercall_sched_op(int cmd, void *arg); | ||
38 | |||
39 | extern int xencomm_hypercall_multicall(void *call_list, int nr_calls); | ||
40 | |||
41 | extern int xencomm_hypercall_callback_op(int cmd, void *arg); | ||
42 | |||
43 | extern int xencomm_hypercall_memory_op(unsigned int cmd, void *arg); | ||
44 | |||
45 | extern int xencomm_hypercall_suspend(unsigned long srec); | ||
46 | |||
47 | extern long xencomm_hypercall_vcpu_op(int cmd, int cpu, void *arg); | ||
48 | |||
49 | extern long xencomm_hypercall_opt_feature(void *arg); | ||
50 | |||
51 | #endif /* _ASM_IA64_XEN_XCOM_HCALL_H */ | ||
diff --git a/arch/ia64/include/asm/xen/xencomm.h b/arch/ia64/include/asm/xen/xencomm.h new file mode 100644 index 000000000000..cded677bebf2 --- /dev/null +++ b/arch/ia64/include/asm/xen/xencomm.h | |||
@@ -0,0 +1,42 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2006 Hollis Blanchard <hollisb@us.ibm.com>, IBM Corporation | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation; either version 2 of the License, or | ||
7 | * (at your option) any later version. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
17 | */ | ||
18 | |||
19 | #ifndef _ASM_IA64_XEN_XENCOMM_H | ||
20 | #define _ASM_IA64_XEN_XENCOMM_H | ||
21 | |||
22 | #include <xen/xencomm.h> | ||
23 | #include <asm/pgtable.h> | ||
24 | |||
25 | /* Must be called before any hypercall. */ | ||
26 | extern void xencomm_initialize(void); | ||
27 | extern int xencomm_is_initialized(void); | ||
28 | |||
29 | /* Check if virtual contiguity means physical contiguity | ||
30 | * where the passed address is a pointer value in virtual address. | ||
31 | * On ia64, identity mapping area in region 7 or the piece of region 5 | ||
32 | * that is mapped by itr[IA64_TR_KERNEL]/dtr[IA64_TR_KERNEL] | ||
33 | */ | ||
34 | static inline int xencomm_is_phys_contiguous(unsigned long addr) | ||
35 | { | ||
36 | return (PAGE_OFFSET <= addr && | ||
37 | addr < (PAGE_OFFSET + (1UL << IA64_MAX_PHYS_BITS))) || | ||
38 | (KERNEL_START <= addr && | ||
39 | addr < KERNEL_START + KERNEL_TR_PAGE_SIZE); | ||
40 | } | ||
41 | |||
42 | #endif /* _ASM_IA64_XEN_XENCOMM_H */ | ||
diff --git a/arch/ia64/kernel/Makefile b/arch/ia64/kernel/Makefile index 87fea11aecb7..c381ea954892 100644 --- a/arch/ia64/kernel/Makefile +++ b/arch/ia64/kernel/Makefile | |||
@@ -42,6 +42,10 @@ obj-$(CONFIG_IA64_ESI) += esi.o | |||
42 | ifneq ($(CONFIG_IA64_ESI),) | 42 | ifneq ($(CONFIG_IA64_ESI),) |
43 | obj-y += esi_stub.o # must be in kernel proper | 43 | obj-y += esi_stub.o # must be in kernel proper |
44 | endif | 44 | endif |
45 | obj-$(CONFIG_DMAR) += pci-dma.o | ||
46 | ifeq ($(CONFIG_DMAR), y) | ||
47 | obj-$(CONFIG_SWIOTLB) += pci-swiotlb.o | ||
48 | endif | ||
45 | 49 | ||
46 | # The gate DSO image is built using a special linker script. | 50 | # The gate DSO image is built using a special linker script. |
47 | targets += gate.so gate-syms.o | 51 | targets += gate.so gate-syms.o |
@@ -112,5 +116,23 @@ clean-files += $(objtree)/include/asm-ia64/nr-irqs.h | |||
112 | ASM_PARAVIRT_OBJS = ivt.o entry.o | 116 | ASM_PARAVIRT_OBJS = ivt.o entry.o |
113 | define paravirtualized_native | 117 | define paravirtualized_native |
114 | AFLAGS_$(1) += -D__IA64_ASM_PARAVIRTUALIZED_NATIVE | 118 | AFLAGS_$(1) += -D__IA64_ASM_PARAVIRTUALIZED_NATIVE |
119 | AFLAGS_pvchk-sed-$(1) += -D__IA64_ASM_PARAVIRTUALIZED_PVCHECK | ||
120 | extra-y += pvchk-$(1) | ||
115 | endef | 121 | endef |
116 | $(foreach obj,$(ASM_PARAVIRT_OBJS),$(eval $(call paravirtualized_native,$(obj)))) | 122 | $(foreach obj,$(ASM_PARAVIRT_OBJS),$(eval $(call paravirtualized_native,$(obj)))) |
123 | |||
124 | # | ||
125 | # Checker for paravirtualizations of privileged operations. | ||
126 | # | ||
127 | quiet_cmd_pv_check_sed = PVCHK $@ | ||
128 | define cmd_pv_check_sed | ||
129 | sed -f $(srctree)/arch/$(SRCARCH)/scripts/pvcheck.sed $< > $@ | ||
130 | endef | ||
131 | |||
132 | $(obj)/pvchk-sed-%.s: $(src)/%.S $(srctree)/arch/$(SRCARCH)/scripts/pvcheck.sed FORCE | ||
133 | $(call if_changed_dep,as_s_S) | ||
134 | $(obj)/pvchk-%.s: $(obj)/pvchk-sed-%.s FORCE | ||
135 | $(call if_changed,pv_check_sed) | ||
136 | $(obj)/pvchk-%.o: $(obj)/pvchk-%.s FORCE | ||
137 | $(call if_changed,as_o_S) | ||
138 | .PRECIOUS: $(obj)/pvchk-sed-%.s $(obj)/pvchk-%.s $(obj)/pvchk-%.o | ||
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c index 5d1eb7ee2bf6..0635015d0aaa 100644 --- a/arch/ia64/kernel/acpi.c +++ b/arch/ia64/kernel/acpi.c | |||
@@ -52,6 +52,7 @@ | |||
52 | #include <asm/numa.h> | 52 | #include <asm/numa.h> |
53 | #include <asm/sal.h> | 53 | #include <asm/sal.h> |
54 | #include <asm/cyclone.h> | 54 | #include <asm/cyclone.h> |
55 | #include <asm/xen/hypervisor.h> | ||
55 | 56 | ||
56 | #define BAD_MADT_ENTRY(entry, end) ( \ | 57 | #define BAD_MADT_ENTRY(entry, end) ( \ |
57 | (!entry) || (unsigned long)entry + sizeof(*entry) > end || \ | 58 | (!entry) || (unsigned long)entry + sizeof(*entry) > end || \ |
@@ -91,6 +92,9 @@ acpi_get_sysname(void) | |||
91 | struct acpi_table_rsdp *rsdp; | 92 | struct acpi_table_rsdp *rsdp; |
92 | struct acpi_table_xsdt *xsdt; | 93 | struct acpi_table_xsdt *xsdt; |
93 | struct acpi_table_header *hdr; | 94 | struct acpi_table_header *hdr; |
95 | #ifdef CONFIG_DMAR | ||
96 | u64 i, nentries; | ||
97 | #endif | ||
94 | 98 | ||
95 | rsdp_phys = acpi_find_rsdp(); | 99 | rsdp_phys = acpi_find_rsdp(); |
96 | if (!rsdp_phys) { | 100 | if (!rsdp_phys) { |
@@ -121,7 +125,21 @@ acpi_get_sysname(void) | |||
121 | return "uv"; | 125 | return "uv"; |
122 | else | 126 | else |
123 | return "sn2"; | 127 | return "sn2"; |
128 | } else if (xen_pv_domain() && !strcmp(hdr->oem_id, "XEN")) { | ||
129 | return "xen"; | ||
130 | } | ||
131 | |||
132 | #ifdef CONFIG_DMAR | ||
133 | /* Look for Intel IOMMU */ | ||
134 | nentries = (hdr->length - sizeof(*hdr)) / | ||
135 | sizeof(xsdt->table_offset_entry[0]); | ||
136 | for (i = 0; i < nentries; i++) { | ||
137 | hdr = __va(xsdt->table_offset_entry[i]); | ||
138 | if (strncmp(hdr->signature, ACPI_SIG_DMAR, | ||
139 | sizeof(ACPI_SIG_DMAR) - 1) == 0) | ||
140 | return "dig_vtd"; | ||
124 | } | 141 | } |
142 | #endif | ||
125 | 143 | ||
126 | return "dig"; | 144 | return "dig"; |
127 | #else | 145 | #else |
@@ -137,6 +155,10 @@ acpi_get_sysname(void) | |||
137 | return "uv"; | 155 | return "uv"; |
138 | # elif defined (CONFIG_IA64_DIG) | 156 | # elif defined (CONFIG_IA64_DIG) |
139 | return "dig"; | 157 | return "dig"; |
158 | # elif defined (CONFIG_IA64_XEN_GUEST) | ||
159 | return "xen"; | ||
160 | # elif defined(CONFIG_IA64_DIG_VTD) | ||
161 | return "dig_vtd"; | ||
140 | # else | 162 | # else |
141 | # error Unknown platform. Fix acpi.c. | 163 | # error Unknown platform. Fix acpi.c. |
142 | # endif | 164 | # endif |
diff --git a/arch/ia64/kernel/asm-offsets.c b/arch/ia64/kernel/asm-offsets.c index 94c44b1ccfd0..742dbb1d5a4f 100644 --- a/arch/ia64/kernel/asm-offsets.c +++ b/arch/ia64/kernel/asm-offsets.c | |||
@@ -16,6 +16,9 @@ | |||
16 | #include <asm/sigcontext.h> | 16 | #include <asm/sigcontext.h> |
17 | #include <asm/mca.h> | 17 | #include <asm/mca.h> |
18 | 18 | ||
19 | #include <asm/xen/interface.h> | ||
20 | #include <asm/xen/hypervisor.h> | ||
21 | |||
19 | #include "../kernel/sigframe.h" | 22 | #include "../kernel/sigframe.h" |
20 | #include "../kernel/fsyscall_gtod_data.h" | 23 | #include "../kernel/fsyscall_gtod_data.h" |
21 | 24 | ||
@@ -286,4 +289,32 @@ void foo(void) | |||
286 | offsetof (struct itc_jitter_data_t, itc_jitter)); | 289 | offsetof (struct itc_jitter_data_t, itc_jitter)); |
287 | DEFINE(IA64_ITC_LASTCYCLE_OFFSET, | 290 | DEFINE(IA64_ITC_LASTCYCLE_OFFSET, |
288 | offsetof (struct itc_jitter_data_t, itc_lastcycle)); | 291 | offsetof (struct itc_jitter_data_t, itc_lastcycle)); |
292 | |||
293 | #ifdef CONFIG_XEN | ||
294 | BLANK(); | ||
295 | |||
296 | DEFINE(XEN_NATIVE_ASM, XEN_NATIVE); | ||
297 | DEFINE(XEN_PV_DOMAIN_ASM, XEN_PV_DOMAIN); | ||
298 | |||
299 | #define DEFINE_MAPPED_REG_OFS(sym, field) \ | ||
300 | DEFINE(sym, (XMAPPEDREGS_OFS + offsetof(struct mapped_regs, field))) | ||
301 | |||
302 | DEFINE_MAPPED_REG_OFS(XSI_PSR_I_ADDR_OFS, interrupt_mask_addr); | ||
303 | DEFINE_MAPPED_REG_OFS(XSI_IPSR_OFS, ipsr); | ||
304 | DEFINE_MAPPED_REG_OFS(XSI_IIP_OFS, iip); | ||
305 | DEFINE_MAPPED_REG_OFS(XSI_IFS_OFS, ifs); | ||
306 | DEFINE_MAPPED_REG_OFS(XSI_PRECOVER_IFS_OFS, precover_ifs); | ||
307 | DEFINE_MAPPED_REG_OFS(XSI_ISR_OFS, isr); | ||
308 | DEFINE_MAPPED_REG_OFS(XSI_IFA_OFS, ifa); | ||
309 | DEFINE_MAPPED_REG_OFS(XSI_IIPA_OFS, iipa); | ||
310 | DEFINE_MAPPED_REG_OFS(XSI_IIM_OFS, iim); | ||
311 | DEFINE_MAPPED_REG_OFS(XSI_IHA_OFS, iha); | ||
312 | DEFINE_MAPPED_REG_OFS(XSI_ITIR_OFS, itir); | ||
313 | DEFINE_MAPPED_REG_OFS(XSI_PSR_IC_OFS, interrupt_collection_enabled); | ||
314 | DEFINE_MAPPED_REG_OFS(XSI_BANKNUM_OFS, banknum); | ||
315 | DEFINE_MAPPED_REG_OFS(XSI_BANK0_R16_OFS, bank0_regs[0]); | ||
316 | DEFINE_MAPPED_REG_OFS(XSI_BANK1_R16_OFS, bank1_regs[0]); | ||
317 | DEFINE_MAPPED_REG_OFS(XSI_B0NATS_OFS, vbnat); | ||
318 | DEFINE_MAPPED_REG_OFS(XSI_B1NATS_OFS, vnat); | ||
319 | #endif /* CONFIG_XEN */ | ||
289 | } | 320 | } |
diff --git a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S index 0dd6c1419d8d..7ef0c594f5ed 100644 --- a/arch/ia64/kernel/entry.S +++ b/arch/ia64/kernel/entry.S | |||
@@ -534,6 +534,11 @@ GLOBAL_ENTRY(ia64_trace_syscall) | |||
534 | stf.spill [r16]=f10 | 534 | stf.spill [r16]=f10 |
535 | stf.spill [r17]=f11 | 535 | stf.spill [r17]=f11 |
536 | br.call.sptk.many rp=syscall_trace_enter // give parent a chance to catch syscall args | 536 | br.call.sptk.many rp=syscall_trace_enter // give parent a chance to catch syscall args |
537 | cmp.lt p6,p0=r8,r0 // check tracehook | ||
538 | adds r2=PT(R8)+16,sp // r2 = &pt_regs.r8 | ||
539 | adds r3=PT(R10)+16,sp // r3 = &pt_regs.r10 | ||
540 | mov r10=0 | ||
541 | (p6) br.cond.sptk strace_error // syscall failed -> | ||
537 | adds r16=PT(F6)+16,sp | 542 | adds r16=PT(F6)+16,sp |
538 | adds r17=PT(F7)+16,sp | 543 | adds r17=PT(F7)+16,sp |
539 | ;; | 544 | ;; |
diff --git a/arch/ia64/kernel/ivt.S b/arch/ia64/kernel/ivt.S index 416a952b19bd..f675d8e33853 100644 --- a/arch/ia64/kernel/ivt.S +++ b/arch/ia64/kernel/ivt.S | |||
@@ -580,7 +580,7 @@ ENTRY(dirty_bit) | |||
580 | mov b0=r29 // restore b0 | 580 | mov b0=r29 // restore b0 |
581 | ;; | 581 | ;; |
582 | st8 [r17]=r18 // store back updated PTE | 582 | st8 [r17]=r18 // store back updated PTE |
583 | itc.d r18 // install updated PTE | 583 | ITC_D(p0, r18, r16) // install updated PTE |
584 | #endif | 584 | #endif |
585 | mov pr=r31,-1 // restore pr | 585 | mov pr=r31,-1 // restore pr |
586 | RFI | 586 | RFI |
@@ -646,7 +646,7 @@ ENTRY(iaccess_bit) | |||
646 | mov b0=r29 // restore b0 | 646 | mov b0=r29 // restore b0 |
647 | ;; | 647 | ;; |
648 | st8 [r17]=r18 // store back updated PTE | 648 | st8 [r17]=r18 // store back updated PTE |
649 | itc.i r18 // install updated PTE | 649 | ITC_I(p0, r18, r16) // install updated PTE |
650 | #endif /* !CONFIG_SMP */ | 650 | #endif /* !CONFIG_SMP */ |
651 | mov pr=r31,-1 | 651 | mov pr=r31,-1 |
652 | RFI | 652 | RFI |
@@ -698,7 +698,7 @@ ENTRY(daccess_bit) | |||
698 | or r18=_PAGE_A,r18 // set the accessed bit | 698 | or r18=_PAGE_A,r18 // set the accessed bit |
699 | ;; | 699 | ;; |
700 | st8 [r17]=r18 // store back updated PTE | 700 | st8 [r17]=r18 // store back updated PTE |
701 | itc.d r18 // install updated PTE | 701 | ITC_D(p0, r18, r16) // install updated PTE |
702 | #endif | 702 | #endif |
703 | mov b0=r29 // restore b0 | 703 | mov b0=r29 // restore b0 |
704 | mov pr=r31,-1 | 704 | mov pr=r31,-1 |
diff --git a/arch/ia64/kernel/msi_ia64.c b/arch/ia64/kernel/msi_ia64.c index 60c6ef67ebb2..702a09c13238 100644 --- a/arch/ia64/kernel/msi_ia64.c +++ b/arch/ia64/kernel/msi_ia64.c | |||
@@ -5,6 +5,7 @@ | |||
5 | #include <linux/pci.h> | 5 | #include <linux/pci.h> |
6 | #include <linux/irq.h> | 6 | #include <linux/irq.h> |
7 | #include <linux/msi.h> | 7 | #include <linux/msi.h> |
8 | #include <linux/dmar.h> | ||
8 | #include <asm/smp.h> | 9 | #include <asm/smp.h> |
9 | 10 | ||
10 | /* | 11 | /* |
@@ -162,3 +163,82 @@ void arch_teardown_msi_irq(unsigned int irq) | |||
162 | 163 | ||
163 | return ia64_teardown_msi_irq(irq); | 164 | return ia64_teardown_msi_irq(irq); |
164 | } | 165 | } |
166 | |||
167 | #ifdef CONFIG_DMAR | ||
168 | #ifdef CONFIG_SMP | ||
169 | static void dmar_msi_set_affinity(unsigned int irq, cpumask_t mask) | ||
170 | { | ||
171 | struct irq_cfg *cfg = irq_cfg + irq; | ||
172 | struct msi_msg msg; | ||
173 | int cpu = first_cpu(mask); | ||
174 | |||
175 | |||
176 | if (!cpu_online(cpu)) | ||
177 | return; | ||
178 | |||
179 | if (irq_prepare_move(irq, cpu)) | ||
180 | return; | ||
181 | |||
182 | dmar_msi_read(irq, &msg); | ||
183 | |||
184 | msg.data &= ~MSI_DATA_VECTOR_MASK; | ||
185 | msg.data |= MSI_DATA_VECTOR(cfg->vector); | ||
186 | msg.address_lo &= ~MSI_ADDR_DESTID_MASK; | ||
187 | msg.address_lo |= MSI_ADDR_DESTID_CPU(cpu_physical_id(cpu)); | ||
188 | |||
189 | dmar_msi_write(irq, &msg); | ||
190 | irq_desc[irq].affinity = mask; | ||
191 | } | ||
192 | #endif /* CONFIG_SMP */ | ||
193 | |||
194 | struct irq_chip dmar_msi_type = { | ||
195 | .name = "DMAR_MSI", | ||
196 | .unmask = dmar_msi_unmask, | ||
197 | .mask = dmar_msi_mask, | ||
198 | .ack = ia64_ack_msi_irq, | ||
199 | #ifdef CONFIG_SMP | ||
200 | .set_affinity = dmar_msi_set_affinity, | ||
201 | #endif | ||
202 | .retrigger = ia64_msi_retrigger_irq, | ||
203 | }; | ||
204 | |||
205 | static int | ||
206 | msi_compose_msg(struct pci_dev *pdev, unsigned int irq, struct msi_msg *msg) | ||
207 | { | ||
208 | struct irq_cfg *cfg = irq_cfg + irq; | ||
209 | unsigned dest; | ||
210 | cpumask_t mask; | ||
211 | |||
212 | cpus_and(mask, irq_to_domain(irq), cpu_online_map); | ||
213 | dest = cpu_physical_id(first_cpu(mask)); | ||
214 | |||
215 | msg->address_hi = 0; | ||
216 | msg->address_lo = | ||
217 | MSI_ADDR_HEADER | | ||
218 | MSI_ADDR_DESTMODE_PHYS | | ||
219 | MSI_ADDR_REDIRECTION_CPU | | ||
220 | MSI_ADDR_DESTID_CPU(dest); | ||
221 | |||
222 | msg->data = | ||
223 | MSI_DATA_TRIGGER_EDGE | | ||
224 | MSI_DATA_LEVEL_ASSERT | | ||
225 | MSI_DATA_DELIVERY_FIXED | | ||
226 | MSI_DATA_VECTOR(cfg->vector); | ||
227 | return 0; | ||
228 | } | ||
229 | |||
230 | int arch_setup_dmar_msi(unsigned int irq) | ||
231 | { | ||
232 | int ret; | ||
233 | struct msi_msg msg; | ||
234 | |||
235 | ret = msi_compose_msg(NULL, irq, &msg); | ||
236 | if (ret < 0) | ||
237 | return ret; | ||
238 | dmar_msi_write(irq, &msg); | ||
239 | set_irq_chip_and_handler_name(irq, &dmar_msi_type, handle_edge_irq, | ||
240 | "edge"); | ||
241 | return 0; | ||
242 | } | ||
243 | #endif /* CONFIG_DMAR */ | ||
244 | |||
diff --git a/arch/ia64/kernel/nr-irqs.c b/arch/ia64/kernel/nr-irqs.c index 8273afc32db8..ee564575148e 100644 --- a/arch/ia64/kernel/nr-irqs.c +++ b/arch/ia64/kernel/nr-irqs.c | |||
@@ -10,6 +10,7 @@ | |||
10 | #include <linux/kbuild.h> | 10 | #include <linux/kbuild.h> |
11 | #include <linux/threads.h> | 11 | #include <linux/threads.h> |
12 | #include <asm/native/irq.h> | 12 | #include <asm/native/irq.h> |
13 | #include <asm/xen/irq.h> | ||
13 | 14 | ||
14 | void foo(void) | 15 | void foo(void) |
15 | { | 16 | { |
diff --git a/arch/ia64/kernel/paravirt.c b/arch/ia64/kernel/paravirt.c index afaf5b9a2cf0..de35d8e8b7d2 100644 --- a/arch/ia64/kernel/paravirt.c +++ b/arch/ia64/kernel/paravirt.c | |||
@@ -332,7 +332,7 @@ ia64_native_iosapic_write(char __iomem *iosapic, unsigned int reg, u32 val) | |||
332 | 332 | ||
333 | struct pv_iosapic_ops pv_iosapic_ops = { | 333 | struct pv_iosapic_ops pv_iosapic_ops = { |
334 | .pcat_compat_init = ia64_native_iosapic_pcat_compat_init, | 334 | .pcat_compat_init = ia64_native_iosapic_pcat_compat_init, |
335 | .get_irq_chip = ia64_native_iosapic_get_irq_chip, | 335 | .__get_irq_chip = ia64_native_iosapic_get_irq_chip, |
336 | 336 | ||
337 | .__read = ia64_native_iosapic_read, | 337 | .__read = ia64_native_iosapic_read, |
338 | .__write = ia64_native_iosapic_write, | 338 | .__write = ia64_native_iosapic_write, |
diff --git a/arch/ia64/kernel/paravirt_inst.h b/arch/ia64/kernel/paravirt_inst.h index 5cad6fb2ed19..64d6d810c64b 100644 --- a/arch/ia64/kernel/paravirt_inst.h +++ b/arch/ia64/kernel/paravirt_inst.h | |||
@@ -20,7 +20,9 @@ | |||
20 | * | 20 | * |
21 | */ | 21 | */ |
22 | 22 | ||
23 | #ifdef __IA64_ASM_PARAVIRTUALIZED_XEN | 23 | #ifdef __IA64_ASM_PARAVIRTUALIZED_PVCHECK |
24 | #include <asm/native/pvchk_inst.h> | ||
25 | #elif defined(__IA64_ASM_PARAVIRTUALIZED_XEN) | ||
24 | #include <asm/xen/inst.h> | 26 | #include <asm/xen/inst.h> |
25 | #include <asm/xen/minstate.h> | 27 | #include <asm/xen/minstate.h> |
26 | #else | 28 | #else |
diff --git a/arch/ia64/kernel/pci-dma.c b/arch/ia64/kernel/pci-dma.c new file mode 100644 index 000000000000..10a75b557650 --- /dev/null +++ b/arch/ia64/kernel/pci-dma.c | |||
@@ -0,0 +1,129 @@ | |||
1 | /* | ||
2 | * Dynamic DMA mapping support. | ||
3 | */ | ||
4 | |||
5 | #include <linux/types.h> | ||
6 | #include <linux/mm.h> | ||
7 | #include <linux/string.h> | ||
8 | #include <linux/pci.h> | ||
9 | #include <linux/module.h> | ||
10 | #include <linux/dmar.h> | ||
11 | #include <asm/iommu.h> | ||
12 | #include <asm/machvec.h> | ||
13 | #include <linux/dma-mapping.h> | ||
14 | |||
15 | #include <asm/machvec.h> | ||
16 | #include <asm/system.h> | ||
17 | |||
18 | #ifdef CONFIG_DMAR | ||
19 | |||
20 | #include <linux/kernel.h> | ||
21 | #include <linux/string.h> | ||
22 | |||
23 | #include <asm/page.h> | ||
24 | #include <asm/iommu.h> | ||
25 | |||
26 | dma_addr_t bad_dma_address __read_mostly; | ||
27 | EXPORT_SYMBOL(bad_dma_address); | ||
28 | |||
29 | static int iommu_sac_force __read_mostly; | ||
30 | |||
31 | int no_iommu __read_mostly; | ||
32 | #ifdef CONFIG_IOMMU_DEBUG | ||
33 | int force_iommu __read_mostly = 1; | ||
34 | #else | ||
35 | int force_iommu __read_mostly; | ||
36 | #endif | ||
37 | |||
38 | /* Set this to 1 if there is a HW IOMMU in the system */ | ||
39 | int iommu_detected __read_mostly; | ||
40 | |||
41 | /* Dummy device used for NULL arguments (normally ISA). Better would | ||
42 | be probably a smaller DMA mask, but this is bug-to-bug compatible | ||
43 | to i386. */ | ||
44 | struct device fallback_dev = { | ||
45 | .bus_id = "fallback device", | ||
46 | .coherent_dma_mask = DMA_32BIT_MASK, | ||
47 | .dma_mask = &fallback_dev.coherent_dma_mask, | ||
48 | }; | ||
49 | |||
50 | void __init pci_iommu_alloc(void) | ||
51 | { | ||
52 | /* | ||
53 | * The order of these functions is important for | ||
54 | * fall-back/fail-over reasons | ||
55 | */ | ||
56 | detect_intel_iommu(); | ||
57 | |||
58 | #ifdef CONFIG_SWIOTLB | ||
59 | pci_swiotlb_init(); | ||
60 | #endif | ||
61 | } | ||
62 | |||
63 | static int __init pci_iommu_init(void) | ||
64 | { | ||
65 | if (iommu_detected) | ||
66 | intel_iommu_init(); | ||
67 | |||
68 | return 0; | ||
69 | } | ||
70 | |||
71 | /* Must execute after PCI subsystem */ | ||
72 | fs_initcall(pci_iommu_init); | ||
73 | |||
74 | void pci_iommu_shutdown(void) | ||
75 | { | ||
76 | return; | ||
77 | } | ||
78 | |||
79 | void __init | ||
80 | iommu_dma_init(void) | ||
81 | { | ||
82 | return; | ||
83 | } | ||
84 | |||
85 | struct dma_mapping_ops *dma_ops; | ||
86 | EXPORT_SYMBOL(dma_ops); | ||
87 | |||
88 | int iommu_dma_supported(struct device *dev, u64 mask) | ||
89 | { | ||
90 | struct dma_mapping_ops *ops = get_dma_ops(dev); | ||
91 | |||
92 | #ifdef CONFIG_PCI | ||
93 | if (mask > 0xffffffff && forbid_dac > 0) { | ||
94 | dev_info(dev, "Disallowing DAC for device\n"); | ||
95 | return 0; | ||
96 | } | ||
97 | #endif | ||
98 | |||
99 | if (ops->dma_supported_op) | ||
100 | return ops->dma_supported_op(dev, mask); | ||
101 | |||
102 | /* Copied from i386. Doesn't make much sense, because it will | ||
103 | only work for pci_alloc_coherent. | ||
104 | The caller just has to use GFP_DMA in this case. */ | ||
105 | if (mask < DMA_24BIT_MASK) | ||
106 | return 0; | ||
107 | |||
108 | /* Tell the device to use SAC when IOMMU force is on. This | ||
109 | allows the driver to use cheaper accesses in some cases. | ||
110 | |||
111 | Problem with this is that if we overflow the IOMMU area and | ||
112 | return DAC as fallback address the device may not handle it | ||
113 | correctly. | ||
114 | |||
115 | As a special case some controllers have a 39bit address | ||
116 | mode that is as efficient as 32bit (aic79xx). Don't force | ||
117 | SAC for these. Assume all masks <= 40 bits are of this | ||
118 | type. Normally this doesn't make any difference, but gives | ||
119 | more gentle handling of IOMMU overflow. */ | ||
120 | if (iommu_sac_force && (mask >= DMA_40BIT_MASK)) { | ||
121 | dev_info(dev, "Force SAC with mask %lx\n", mask); | ||
122 | return 0; | ||
123 | } | ||
124 | |||
125 | return 1; | ||
126 | } | ||
127 | EXPORT_SYMBOL(iommu_dma_supported); | ||
128 | |||
129 | #endif | ||
diff --git a/arch/ia64/kernel/pci-swiotlb.c b/arch/ia64/kernel/pci-swiotlb.c new file mode 100644 index 000000000000..16c50516dbc1 --- /dev/null +++ b/arch/ia64/kernel/pci-swiotlb.c | |||
@@ -0,0 +1,46 @@ | |||
1 | /* Glue code to lib/swiotlb.c */ | ||
2 | |||
3 | #include <linux/pci.h> | ||
4 | #include <linux/cache.h> | ||
5 | #include <linux/module.h> | ||
6 | #include <linux/dma-mapping.h> | ||
7 | |||
8 | #include <asm/swiotlb.h> | ||
9 | #include <asm/dma.h> | ||
10 | #include <asm/iommu.h> | ||
11 | #include <asm/machvec.h> | ||
12 | |||
13 | int swiotlb __read_mostly; | ||
14 | EXPORT_SYMBOL(swiotlb); | ||
15 | |||
16 | struct dma_mapping_ops swiotlb_dma_ops = { | ||
17 | .mapping_error = swiotlb_dma_mapping_error, | ||
18 | .alloc_coherent = swiotlb_alloc_coherent, | ||
19 | .free_coherent = swiotlb_free_coherent, | ||
20 | .map_single = swiotlb_map_single, | ||
21 | .unmap_single = swiotlb_unmap_single, | ||
22 | .sync_single_for_cpu = swiotlb_sync_single_for_cpu, | ||
23 | .sync_single_for_device = swiotlb_sync_single_for_device, | ||
24 | .sync_single_range_for_cpu = swiotlb_sync_single_range_for_cpu, | ||
25 | .sync_single_range_for_device = swiotlb_sync_single_range_for_device, | ||
26 | .sync_sg_for_cpu = swiotlb_sync_sg_for_cpu, | ||
27 | .sync_sg_for_device = swiotlb_sync_sg_for_device, | ||
28 | .map_sg = swiotlb_map_sg, | ||
29 | .unmap_sg = swiotlb_unmap_sg, | ||
30 | .dma_supported_op = swiotlb_dma_supported, | ||
31 | }; | ||
32 | |||
33 | void __init pci_swiotlb_init(void) | ||
34 | { | ||
35 | if (!iommu_detected) { | ||
36 | #ifdef CONFIG_IA64_GENERIC | ||
37 | swiotlb = 1; | ||
38 | printk(KERN_INFO "PCI-DMA: Re-initialize machine vector.\n"); | ||
39 | machvec_init("dig"); | ||
40 | swiotlb_init(); | ||
41 | dma_ops = &swiotlb_dma_ops; | ||
42 | #else | ||
43 | panic("Unable to find Intel IOMMU"); | ||
44 | #endif | ||
45 | } | ||
46 | } | ||
diff --git a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c index fc8f3509df27..ada4605d1223 100644 --- a/arch/ia64/kernel/perfmon.c +++ b/arch/ia64/kernel/perfmon.c | |||
@@ -40,6 +40,7 @@ | |||
40 | #include <linux/capability.h> | 40 | #include <linux/capability.h> |
41 | #include <linux/rcupdate.h> | 41 | #include <linux/rcupdate.h> |
42 | #include <linux/completion.h> | 42 | #include <linux/completion.h> |
43 | #include <linux/tracehook.h> | ||
43 | 44 | ||
44 | #include <asm/errno.h> | 45 | #include <asm/errno.h> |
45 | #include <asm/intrinsics.h> | 46 | #include <asm/intrinsics.h> |
@@ -3684,7 +3685,7 @@ pfm_restart(pfm_context_t *ctx, void *arg, int count, struct pt_regs *regs) | |||
3684 | 3685 | ||
3685 | PFM_SET_WORK_PENDING(task, 1); | 3686 | PFM_SET_WORK_PENDING(task, 1); |
3686 | 3687 | ||
3687 | tsk_set_notify_resume(task); | 3688 | set_notify_resume(task); |
3688 | 3689 | ||
3689 | /* | 3690 | /* |
3690 | * XXX: send reschedule if task runs on another CPU | 3691 | * XXX: send reschedule if task runs on another CPU |
@@ -5044,8 +5045,6 @@ pfm_handle_work(void) | |||
5044 | 5045 | ||
5045 | PFM_SET_WORK_PENDING(current, 0); | 5046 | PFM_SET_WORK_PENDING(current, 0); |
5046 | 5047 | ||
5047 | tsk_clear_notify_resume(current); | ||
5048 | |||
5049 | regs = task_pt_regs(current); | 5048 | regs = task_pt_regs(current); |
5050 | 5049 | ||
5051 | /* | 5050 | /* |
@@ -5414,7 +5413,7 @@ pfm_overflow_handler(struct task_struct *task, pfm_context_t *ctx, u64 pmc0, str | |||
5414 | * when coming from ctxsw, current still points to the | 5413 | * when coming from ctxsw, current still points to the |
5415 | * previous task, therefore we must work with task and not current. | 5414 | * previous task, therefore we must work with task and not current. |
5416 | */ | 5415 | */ |
5417 | tsk_set_notify_resume(task); | 5416 | set_notify_resume(task); |
5418 | } | 5417 | } |
5419 | /* | 5418 | /* |
5420 | * defer until state is changed (shorten spin window). the context is locked | 5419 | * defer until state is changed (shorten spin window). the context is locked |
diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c index 3ab8373103ec..c57162705147 100644 --- a/arch/ia64/kernel/process.c +++ b/arch/ia64/kernel/process.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include <linux/delay.h> | 28 | #include <linux/delay.h> |
29 | #include <linux/kdebug.h> | 29 | #include <linux/kdebug.h> |
30 | #include <linux/utsname.h> | 30 | #include <linux/utsname.h> |
31 | #include <linux/tracehook.h> | ||
31 | 32 | ||
32 | #include <asm/cpu.h> | 33 | #include <asm/cpu.h> |
33 | #include <asm/delay.h> | 34 | #include <asm/delay.h> |
@@ -160,21 +161,6 @@ show_regs (struct pt_regs *regs) | |||
160 | show_stack(NULL, NULL); | 161 | show_stack(NULL, NULL); |
161 | } | 162 | } |
162 | 163 | ||
163 | void tsk_clear_notify_resume(struct task_struct *tsk) | ||
164 | { | ||
165 | #ifdef CONFIG_PERFMON | ||
166 | if (tsk->thread.pfm_needs_checking) | ||
167 | return; | ||
168 | #endif | ||
169 | if (test_ti_thread_flag(task_thread_info(tsk), TIF_RESTORE_RSE)) | ||
170 | return; | ||
171 | clear_ti_thread_flag(task_thread_info(tsk), TIF_NOTIFY_RESUME); | ||
172 | } | ||
173 | |||
174 | /* | ||
175 | * do_notify_resume_user(): | ||
176 | * Called from notify_resume_user at entry.S, with interrupts disabled. | ||
177 | */ | ||
178 | void | 164 | void |
179 | do_notify_resume_user(sigset_t *unused, struct sigscratch *scr, long in_syscall) | 165 | do_notify_resume_user(sigset_t *unused, struct sigscratch *scr, long in_syscall) |
180 | { | 166 | { |
@@ -203,6 +189,11 @@ do_notify_resume_user(sigset_t *unused, struct sigscratch *scr, long in_syscall) | |||
203 | ia64_do_signal(scr, in_syscall); | 189 | ia64_do_signal(scr, in_syscall); |
204 | } | 190 | } |
205 | 191 | ||
192 | if (test_thread_flag(TIF_NOTIFY_RESUME)) { | ||
193 | clear_thread_flag(TIF_NOTIFY_RESUME); | ||
194 | tracehook_notify_resume(&scr->pt); | ||
195 | } | ||
196 | |||
206 | /* copy user rbs to kernel rbs */ | 197 | /* copy user rbs to kernel rbs */ |
207 | if (unlikely(test_thread_flag(TIF_RESTORE_RSE))) { | 198 | if (unlikely(test_thread_flag(TIF_RESTORE_RSE))) { |
208 | local_irq_enable(); /* force interrupt enable */ | 199 | local_irq_enable(); /* force interrupt enable */ |
@@ -251,7 +242,6 @@ default_idle (void) | |||
251 | /* We don't actually take CPU down, just spin without interrupts. */ | 242 | /* We don't actually take CPU down, just spin without interrupts. */ |
252 | static inline void play_dead(void) | 243 | static inline void play_dead(void) |
253 | { | 244 | { |
254 | extern void ia64_cpu_local_tick (void); | ||
255 | unsigned int this_cpu = smp_processor_id(); | 245 | unsigned int this_cpu = smp_processor_id(); |
256 | 246 | ||
257 | /* Ack it */ | 247 | /* Ack it */ |
diff --git a/arch/ia64/kernel/ptrace.c b/arch/ia64/kernel/ptrace.c index 2a9943b5947f..92c9689b7d97 100644 --- a/arch/ia64/kernel/ptrace.c +++ b/arch/ia64/kernel/ptrace.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/signal.h> | 22 | #include <linux/signal.h> |
23 | #include <linux/regset.h> | 23 | #include <linux/regset.h> |
24 | #include <linux/elf.h> | 24 | #include <linux/elf.h> |
25 | #include <linux/tracehook.h> | ||
25 | 26 | ||
26 | #include <asm/pgtable.h> | 27 | #include <asm/pgtable.h> |
27 | #include <asm/processor.h> | 28 | #include <asm/processor.h> |
@@ -603,7 +604,7 @@ void ia64_ptrace_stop(void) | |||
603 | { | 604 | { |
604 | if (test_and_set_tsk_thread_flag(current, TIF_RESTORE_RSE)) | 605 | if (test_and_set_tsk_thread_flag(current, TIF_RESTORE_RSE)) |
605 | return; | 606 | return; |
606 | tsk_set_notify_resume(current); | 607 | set_notify_resume(current); |
607 | unw_init_running(do_sync_rbs, ia64_sync_user_rbs); | 608 | unw_init_running(do_sync_rbs, ia64_sync_user_rbs); |
608 | } | 609 | } |
609 | 610 | ||
@@ -613,7 +614,6 @@ void ia64_ptrace_stop(void) | |||
613 | void ia64_sync_krbs(void) | 614 | void ia64_sync_krbs(void) |
614 | { | 615 | { |
615 | clear_tsk_thread_flag(current, TIF_RESTORE_RSE); | 616 | clear_tsk_thread_flag(current, TIF_RESTORE_RSE); |
616 | tsk_clear_notify_resume(current); | ||
617 | 617 | ||
618 | unw_init_running(do_sync_rbs, ia64_sync_kernel_rbs); | 618 | unw_init_running(do_sync_rbs, ia64_sync_kernel_rbs); |
619 | } | 619 | } |
@@ -644,7 +644,7 @@ ptrace_attach_sync_user_rbs (struct task_struct *child) | |||
644 | spin_lock_irq(&child->sighand->siglock); | 644 | spin_lock_irq(&child->sighand->siglock); |
645 | if (child->state == TASK_STOPPED && | 645 | if (child->state == TASK_STOPPED && |
646 | !test_and_set_tsk_thread_flag(child, TIF_RESTORE_RSE)) { | 646 | !test_and_set_tsk_thread_flag(child, TIF_RESTORE_RSE)) { |
647 | tsk_set_notify_resume(child); | 647 | set_notify_resume(child); |
648 | 648 | ||
649 | child->state = TASK_TRACED; | 649 | child->state = TASK_TRACED; |
650 | stopped = 1; | 650 | stopped = 1; |
@@ -1232,37 +1232,16 @@ arch_ptrace (struct task_struct *child, long request, long addr, long data) | |||
1232 | } | 1232 | } |
1233 | 1233 | ||
1234 | 1234 | ||
1235 | static void | ||
1236 | syscall_trace (void) | ||
1237 | { | ||
1238 | /* | ||
1239 | * The 0x80 provides a way for the tracing parent to | ||
1240 | * distinguish between a syscall stop and SIGTRAP delivery. | ||
1241 | */ | ||
1242 | ptrace_notify(SIGTRAP | ||
1243 | | ((current->ptrace & PT_TRACESYSGOOD) ? 0x80 : 0)); | ||
1244 | |||
1245 | /* | ||
1246 | * This isn't the same as continuing with a signal, but it | ||
1247 | * will do for normal use. strace only continues with a | ||
1248 | * signal if the stopping signal is not SIGTRAP. -brl | ||
1249 | */ | ||
1250 | if (current->exit_code) { | ||
1251 | send_sig(current->exit_code, current, 1); | ||
1252 | current->exit_code = 0; | ||
1253 | } | ||
1254 | } | ||
1255 | |||
1256 | /* "asmlinkage" so the input arguments are preserved... */ | 1235 | /* "asmlinkage" so the input arguments are preserved... */ |
1257 | 1236 | ||
1258 | asmlinkage void | 1237 | asmlinkage long |
1259 | syscall_trace_enter (long arg0, long arg1, long arg2, long arg3, | 1238 | syscall_trace_enter (long arg0, long arg1, long arg2, long arg3, |
1260 | long arg4, long arg5, long arg6, long arg7, | 1239 | long arg4, long arg5, long arg6, long arg7, |
1261 | struct pt_regs regs) | 1240 | struct pt_regs regs) |
1262 | { | 1241 | { |
1263 | if (test_thread_flag(TIF_SYSCALL_TRACE) | 1242 | if (test_thread_flag(TIF_SYSCALL_TRACE)) |
1264 | && (current->ptrace & PT_PTRACED)) | 1243 | if (tracehook_report_syscall_entry(®s)) |
1265 | syscall_trace(); | 1244 | return -ENOSYS; |
1266 | 1245 | ||
1267 | /* copy user rbs to kernel rbs */ | 1246 | /* copy user rbs to kernel rbs */ |
1268 | if (test_thread_flag(TIF_RESTORE_RSE)) | 1247 | if (test_thread_flag(TIF_RESTORE_RSE)) |
@@ -1283,6 +1262,7 @@ syscall_trace_enter (long arg0, long arg1, long arg2, long arg3, | |||
1283 | audit_syscall_entry(arch, syscall, arg0, arg1, arg2, arg3); | 1262 | audit_syscall_entry(arch, syscall, arg0, arg1, arg2, arg3); |
1284 | } | 1263 | } |
1285 | 1264 | ||
1265 | return 0; | ||
1286 | } | 1266 | } |
1287 | 1267 | ||
1288 | /* "asmlinkage" so the input arguments are preserved... */ | 1268 | /* "asmlinkage" so the input arguments are preserved... */ |
@@ -1292,6 +1272,8 @@ syscall_trace_leave (long arg0, long arg1, long arg2, long arg3, | |||
1292 | long arg4, long arg5, long arg6, long arg7, | 1272 | long arg4, long arg5, long arg6, long arg7, |
1293 | struct pt_regs regs) | 1273 | struct pt_regs regs) |
1294 | { | 1274 | { |
1275 | int step; | ||
1276 | |||
1295 | if (unlikely(current->audit_context)) { | 1277 | if (unlikely(current->audit_context)) { |
1296 | int success = AUDITSC_RESULT(regs.r10); | 1278 | int success = AUDITSC_RESULT(regs.r10); |
1297 | long result = regs.r8; | 1279 | long result = regs.r8; |
@@ -1301,10 +1283,9 @@ syscall_trace_leave (long arg0, long arg1, long arg2, long arg3, | |||
1301 | audit_syscall_exit(success, result); | 1283 | audit_syscall_exit(success, result); |
1302 | } | 1284 | } |
1303 | 1285 | ||
1304 | if ((test_thread_flag(TIF_SYSCALL_TRACE) | 1286 | step = test_thread_flag(TIF_SINGLESTEP); |
1305 | || test_thread_flag(TIF_SINGLESTEP)) | 1287 | if (step || test_thread_flag(TIF_SYSCALL_TRACE)) |
1306 | && (current->ptrace & PT_PTRACED)) | 1288 | tracehook_report_syscall_exit(®s, step); |
1307 | syscall_trace(); | ||
1308 | 1289 | ||
1309 | /* copy user rbs to kernel rbs */ | 1290 | /* copy user rbs to kernel rbs */ |
1310 | if (test_thread_flag(TIF_RESTORE_RSE)) | 1291 | if (test_thread_flag(TIF_RESTORE_RSE)) |
@@ -1940,7 +1921,7 @@ gpregs_writeback(struct task_struct *target, | |||
1940 | { | 1921 | { |
1941 | if (test_and_set_tsk_thread_flag(target, TIF_RESTORE_RSE)) | 1922 | if (test_and_set_tsk_thread_flag(target, TIF_RESTORE_RSE)) |
1942 | return 0; | 1923 | return 0; |
1943 | tsk_set_notify_resume(target); | 1924 | set_notify_resume(target); |
1944 | return do_regset_call(do_gpregs_writeback, target, regset, 0, 0, | 1925 | return do_regset_call(do_gpregs_writeback, target, regset, 0, 0, |
1945 | NULL, NULL); | 1926 | NULL, NULL); |
1946 | } | 1927 | } |
@@ -2199,3 +2180,68 @@ const struct user_regset_view *task_user_regset_view(struct task_struct *tsk) | |||
2199 | #endif | 2180 | #endif |
2200 | return &user_ia64_view; | 2181 | return &user_ia64_view; |
2201 | } | 2182 | } |
2183 | |||
2184 | struct syscall_get_set_args { | ||
2185 | unsigned int i; | ||
2186 | unsigned int n; | ||
2187 | unsigned long *args; | ||
2188 | struct pt_regs *regs; | ||
2189 | int rw; | ||
2190 | }; | ||
2191 | |||
2192 | static void syscall_get_set_args_cb(struct unw_frame_info *info, void *data) | ||
2193 | { | ||
2194 | struct syscall_get_set_args *args = data; | ||
2195 | struct pt_regs *pt = args->regs; | ||
2196 | unsigned long *krbs, cfm, ndirty; | ||
2197 | int i, count; | ||
2198 | |||
2199 | if (unw_unwind_to_user(info) < 0) | ||
2200 | return; | ||
2201 | |||
2202 | cfm = pt->cr_ifs; | ||
2203 | krbs = (unsigned long *)info->task + IA64_RBS_OFFSET/8; | ||
2204 | ndirty = ia64_rse_num_regs(krbs, krbs + (pt->loadrs >> 19)); | ||
2205 | |||
2206 | count = 0; | ||
2207 | if (in_syscall(pt)) | ||
2208 | count = min_t(int, args->n, cfm & 0x7f); | ||
2209 | |||
2210 | for (i = 0; i < count; i++) { | ||
2211 | if (args->rw) | ||
2212 | *ia64_rse_skip_regs(krbs, ndirty + i + args->i) = | ||
2213 | args->args[i]; | ||
2214 | else | ||
2215 | args->args[i] = *ia64_rse_skip_regs(krbs, | ||
2216 | ndirty + i + args->i); | ||
2217 | } | ||
2218 | |||
2219 | if (!args->rw) { | ||
2220 | while (i < args->n) { | ||
2221 | args->args[i] = 0; | ||
2222 | i++; | ||
2223 | } | ||
2224 | } | ||
2225 | } | ||
2226 | |||
2227 | void ia64_syscall_get_set_arguments(struct task_struct *task, | ||
2228 | struct pt_regs *regs, unsigned int i, unsigned int n, | ||
2229 | unsigned long *args, int rw) | ||
2230 | { | ||
2231 | struct syscall_get_set_args data = { | ||
2232 | .i = i, | ||
2233 | .n = n, | ||
2234 | .args = args, | ||
2235 | .regs = regs, | ||
2236 | .rw = rw, | ||
2237 | }; | ||
2238 | |||
2239 | if (task == current) | ||
2240 | unw_init_running(syscall_get_set_args_cb, &data); | ||
2241 | else { | ||
2242 | struct unw_frame_info ufi; | ||
2243 | memset(&ufi, 0, sizeof(ufi)); | ||
2244 | unw_init_from_blocked_task(&ufi, task); | ||
2245 | syscall_get_set_args_cb(&ufi, &data); | ||
2246 | } | ||
2247 | } | ||
diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c index 916ba898237f..ae7911702bf8 100644 --- a/arch/ia64/kernel/setup.c +++ b/arch/ia64/kernel/setup.c | |||
@@ -116,6 +116,13 @@ unsigned int num_io_spaces; | |||
116 | */ | 116 | */ |
117 | #define I_CACHE_STRIDE_SHIFT 5 /* Safest way to go: 32 bytes by 32 bytes */ | 117 | #define I_CACHE_STRIDE_SHIFT 5 /* Safest way to go: 32 bytes by 32 bytes */ |
118 | unsigned long ia64_i_cache_stride_shift = ~0; | 118 | unsigned long ia64_i_cache_stride_shift = ~0; |
119 | /* | ||
120 | * "clflush_cache_range()" needs to know what processor dependent stride size to | ||
121 | * use when it flushes cache lines including both d-cache and i-cache. | ||
122 | */ | ||
123 | /* Safest way to go: 32 bytes by 32 bytes */ | ||
124 | #define CACHE_STRIDE_SHIFT 5 | ||
125 | unsigned long ia64_cache_stride_shift = ~0; | ||
119 | 126 | ||
120 | /* | 127 | /* |
121 | * The merge_mask variable needs to be set to (max(iommu_page_size(iommu)) - 1). This | 128 | * The merge_mask variable needs to be set to (max(iommu_page_size(iommu)) - 1). This |
@@ -852,13 +859,14 @@ setup_per_cpu_areas (void) | |||
852 | } | 859 | } |
853 | 860 | ||
854 | /* | 861 | /* |
855 | * Calculate the max. cache line size. | 862 | * Do the following calculations: |
856 | * | 863 | * |
857 | * In addition, the minimum of the i-cache stride sizes is calculated for | 864 | * 1. the max. cache line size. |
858 | * "flush_icache_range()". | 865 | * 2. the minimum of the i-cache stride sizes for "flush_icache_range()". |
866 | * 3. the minimum of the cache stride sizes for "clflush_cache_range()". | ||
859 | */ | 867 | */ |
860 | static void __cpuinit | 868 | static void __cpuinit |
861 | get_max_cacheline_size (void) | 869 | get_cache_info(void) |
862 | { | 870 | { |
863 | unsigned long line_size, max = 1; | 871 | unsigned long line_size, max = 1; |
864 | u64 l, levels, unique_caches; | 872 | u64 l, levels, unique_caches; |
@@ -872,12 +880,14 @@ get_max_cacheline_size (void) | |||
872 | max = SMP_CACHE_BYTES; | 880 | max = SMP_CACHE_BYTES; |
873 | /* Safest setup for "flush_icache_range()" */ | 881 | /* Safest setup for "flush_icache_range()" */ |
874 | ia64_i_cache_stride_shift = I_CACHE_STRIDE_SHIFT; | 882 | ia64_i_cache_stride_shift = I_CACHE_STRIDE_SHIFT; |
883 | /* Safest setup for "clflush_cache_range()" */ | ||
884 | ia64_cache_stride_shift = CACHE_STRIDE_SHIFT; | ||
875 | goto out; | 885 | goto out; |
876 | } | 886 | } |
877 | 887 | ||
878 | for (l = 0; l < levels; ++l) { | 888 | for (l = 0; l < levels; ++l) { |
879 | status = ia64_pal_cache_config_info(l, /* cache_type (data_or_unified)= */ 2, | 889 | /* cache_type (data_or_unified)=2 */ |
880 | &cci); | 890 | status = ia64_pal_cache_config_info(l, 2, &cci); |
881 | if (status != 0) { | 891 | if (status != 0) { |
882 | printk(KERN_ERR | 892 | printk(KERN_ERR |
883 | "%s: ia64_pal_cache_config_info(l=%lu, 2) failed (status=%ld)\n", | 893 | "%s: ia64_pal_cache_config_info(l=%lu, 2) failed (status=%ld)\n", |
@@ -885,15 +895,21 @@ get_max_cacheline_size (void) | |||
885 | max = SMP_CACHE_BYTES; | 895 | max = SMP_CACHE_BYTES; |
886 | /* The safest setup for "flush_icache_range()" */ | 896 | /* The safest setup for "flush_icache_range()" */ |
887 | cci.pcci_stride = I_CACHE_STRIDE_SHIFT; | 897 | cci.pcci_stride = I_CACHE_STRIDE_SHIFT; |
898 | /* The safest setup for "clflush_cache_range()" */ | ||
899 | ia64_cache_stride_shift = CACHE_STRIDE_SHIFT; | ||
888 | cci.pcci_unified = 1; | 900 | cci.pcci_unified = 1; |
901 | } else { | ||
902 | if (cci.pcci_stride < ia64_cache_stride_shift) | ||
903 | ia64_cache_stride_shift = cci.pcci_stride; | ||
904 | |||
905 | line_size = 1 << cci.pcci_line_size; | ||
906 | if (line_size > max) | ||
907 | max = line_size; | ||
889 | } | 908 | } |
890 | line_size = 1 << cci.pcci_line_size; | 909 | |
891 | if (line_size > max) | ||
892 | max = line_size; | ||
893 | if (!cci.pcci_unified) { | 910 | if (!cci.pcci_unified) { |
894 | status = ia64_pal_cache_config_info(l, | 911 | /* cache_type (instruction)=1*/ |
895 | /* cache_type (instruction)= */ 1, | 912 | status = ia64_pal_cache_config_info(l, 1, &cci); |
896 | &cci); | ||
897 | if (status != 0) { | 913 | if (status != 0) { |
898 | printk(KERN_ERR | 914 | printk(KERN_ERR |
899 | "%s: ia64_pal_cache_config_info(l=%lu, 1) failed (status=%ld)\n", | 915 | "%s: ia64_pal_cache_config_info(l=%lu, 1) failed (status=%ld)\n", |
@@ -947,7 +963,7 @@ cpu_init (void) | |||
947 | } | 963 | } |
948 | #endif | 964 | #endif |
949 | 965 | ||
950 | get_max_cacheline_size(); | 966 | get_cache_info(); |
951 | 967 | ||
952 | /* | 968 | /* |
953 | * We can't pass "local_cpu_data" to identify_cpu() because we haven't called | 969 | * We can't pass "local_cpu_data" to identify_cpu() because we haven't called |
diff --git a/arch/ia64/kernel/signal.c b/arch/ia64/kernel/signal.c index 19c5a78636fc..e12500a9c443 100644 --- a/arch/ia64/kernel/signal.c +++ b/arch/ia64/kernel/signal.c | |||
@@ -11,6 +11,7 @@ | |||
11 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
12 | #include <linux/mm.h> | 12 | #include <linux/mm.h> |
13 | #include <linux/ptrace.h> | 13 | #include <linux/ptrace.h> |
14 | #include <linux/tracehook.h> | ||
14 | #include <linux/sched.h> | 15 | #include <linux/sched.h> |
15 | #include <linux/signal.h> | 16 | #include <linux/signal.h> |
16 | #include <linux/smp.h> | 17 | #include <linux/smp.h> |
@@ -439,6 +440,13 @@ handle_signal (unsigned long sig, struct k_sigaction *ka, siginfo_t *info, sigse | |||
439 | sigaddset(¤t->blocked, sig); | 440 | sigaddset(¤t->blocked, sig); |
440 | recalc_sigpending(); | 441 | recalc_sigpending(); |
441 | spin_unlock_irq(¤t->sighand->siglock); | 442 | spin_unlock_irq(¤t->sighand->siglock); |
443 | |||
444 | /* | ||
445 | * Let tracing know that we've done the handler setup. | ||
446 | */ | ||
447 | tracehook_signal_handler(sig, info, ka, &scr->pt, | ||
448 | test_thread_flag(TIF_SINGLESTEP)); | ||
449 | |||
442 | return 1; | 450 | return 1; |
443 | } | 451 | } |
444 | 452 | ||
diff --git a/arch/ia64/kvm/kvm-ia64.c b/arch/ia64/kvm/kvm-ia64.c index c0699f0e35a9..a312c9e9b9ef 100644 --- a/arch/ia64/kvm/kvm-ia64.c +++ b/arch/ia64/kvm/kvm-ia64.c | |||
@@ -1114,7 +1114,7 @@ static void kvm_migrate_hlt_timer(struct kvm_vcpu *vcpu) | |||
1114 | struct hrtimer *p_ht = &vcpu->arch.hlt_timer; | 1114 | struct hrtimer *p_ht = &vcpu->arch.hlt_timer; |
1115 | 1115 | ||
1116 | if (hrtimer_cancel(p_ht)) | 1116 | if (hrtimer_cancel(p_ht)) |
1117 | hrtimer_start(p_ht, p_ht->expires, HRTIMER_MODE_ABS); | 1117 | hrtimer_start_expires(p_ht, HRTIMER_MODE_ABS); |
1118 | } | 1118 | } |
1119 | 1119 | ||
1120 | static enum hrtimer_restart hlt_timer_fn(struct hrtimer *data) | 1120 | static enum hrtimer_restart hlt_timer_fn(struct hrtimer *data) |
diff --git a/arch/ia64/lib/flush.S b/arch/ia64/lib/flush.S index 2a0d27f2f21b..1d8c88860063 100644 --- a/arch/ia64/lib/flush.S +++ b/arch/ia64/lib/flush.S | |||
@@ -60,3 +60,58 @@ GLOBAL_ENTRY(flush_icache_range) | |||
60 | mov ar.lc=r3 // restore ar.lc | 60 | mov ar.lc=r3 // restore ar.lc |
61 | br.ret.sptk.many rp | 61 | br.ret.sptk.many rp |
62 | END(flush_icache_range) | 62 | END(flush_icache_range) |
63 | |||
64 | /* | ||
65 | * clflush_cache_range(start,size) | ||
66 | * | ||
67 | * Flush cache lines from start to start+size-1. | ||
68 | * | ||
69 | * Must deal with range from start to start+size-1 but nothing else | ||
70 | * (need to be careful not to touch addresses that may be | ||
71 | * unmapped). | ||
72 | * | ||
73 | * Note: "in0" and "in1" are preserved for debugging purposes. | ||
74 | */ | ||
75 | .section .kprobes.text,"ax" | ||
76 | GLOBAL_ENTRY(clflush_cache_range) | ||
77 | |||
78 | .prologue | ||
79 | alloc r2=ar.pfs,2,0,0,0 | ||
80 | movl r3=ia64_cache_stride_shift | ||
81 | mov r21=1 | ||
82 | add r22=in1,in0 | ||
83 | ;; | ||
84 | ld8 r20=[r3] // r20: stride shift | ||
85 | sub r22=r22,r0,1 // last byte address | ||
86 | ;; | ||
87 | shr.u r23=in0,r20 // start / (stride size) | ||
88 | shr.u r22=r22,r20 // (last byte address) / (stride size) | ||
89 | shl r21=r21,r20 // r21: stride size of the i-cache(s) | ||
90 | ;; | ||
91 | sub r8=r22,r23 // number of strides - 1 | ||
92 | shl r24=r23,r20 // r24: addresses for "fc" = | ||
93 | // "start" rounded down to stride | ||
94 | // boundary | ||
95 | .save ar.lc,r3 | ||
96 | mov r3=ar.lc // save ar.lc | ||
97 | ;; | ||
98 | |||
99 | .body | ||
100 | mov ar.lc=r8 | ||
101 | ;; | ||
102 | /* | ||
103 | * 32 byte aligned loop, even number of (actually 2) bundles | ||
104 | */ | ||
105 | .Loop_fc: | ||
106 | fc r24 // issuable on M0 only | ||
107 | add r24=r21,r24 // we flush "stride size" bytes per iteration | ||
108 | nop.i 0 | ||
109 | br.cloop.sptk.few .Loop_fc | ||
110 | ;; | ||
111 | sync.i | ||
112 | ;; | ||
113 | srlz.i | ||
114 | ;; | ||
115 | mov ar.lc=r3 // restore ar.lc | ||
116 | br.ret.sptk.many rp | ||
117 | END(clflush_cache_range) | ||
diff --git a/arch/ia64/mm/tlb.c b/arch/ia64/mm/tlb.c index 8caf42471f0d..bd9818a36b47 100644 --- a/arch/ia64/mm/tlb.c +++ b/arch/ia64/mm/tlb.c | |||
@@ -362,9 +362,13 @@ ia64_tlb_init (void) | |||
362 | per_cpu(ia64_tr_num, cpu) = | 362 | per_cpu(ia64_tr_num, cpu) = |
363 | vm_info_1.pal_vm_info_1_s.max_dtr_entry+1; | 363 | vm_info_1.pal_vm_info_1_s.max_dtr_entry+1; |
364 | if (per_cpu(ia64_tr_num, cpu) > IA64_TR_ALLOC_MAX) { | 364 | if (per_cpu(ia64_tr_num, cpu) > IA64_TR_ALLOC_MAX) { |
365 | static int justonce = 1; | ||
365 | per_cpu(ia64_tr_num, cpu) = IA64_TR_ALLOC_MAX; | 366 | per_cpu(ia64_tr_num, cpu) = IA64_TR_ALLOC_MAX; |
366 | printk(KERN_DEBUG "TR register number exceeds IA64_TR_ALLOC_MAX!" | 367 | if (justonce) { |
367 | "IA64_TR_ALLOC_MAX should be extended\n"); | 368 | justonce = 0; |
369 | printk(KERN_DEBUG "TR register number exceeds " | ||
370 | "IA64_TR_ALLOC_MAX!\n"); | ||
371 | } | ||
368 | } | 372 | } |
369 | } | 373 | } |
370 | 374 | ||
diff --git a/arch/ia64/oprofile/init.c b/arch/ia64/oprofile/init.c index 125a602a660d..31b545c35460 100644 --- a/arch/ia64/oprofile/init.c +++ b/arch/ia64/oprofile/init.c | |||
@@ -12,11 +12,11 @@ | |||
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/errno.h> | 13 | #include <linux/errno.h> |
14 | 14 | ||
15 | extern int perfmon_init(struct oprofile_operations * ops); | 15 | extern int perfmon_init(struct oprofile_operations *ops); |
16 | extern void perfmon_exit(void); | 16 | extern void perfmon_exit(void); |
17 | extern void ia64_backtrace(struct pt_regs * const regs, unsigned int depth); | 17 | extern void ia64_backtrace(struct pt_regs * const regs, unsigned int depth); |
18 | 18 | ||
19 | int __init oprofile_arch_init(struct oprofile_operations * ops) | 19 | int __init oprofile_arch_init(struct oprofile_operations *ops) |
20 | { | 20 | { |
21 | int ret = -ENODEV; | 21 | int ret = -ENODEV; |
22 | 22 | ||
diff --git a/arch/ia64/oprofile/perfmon.c b/arch/ia64/oprofile/perfmon.c index bc41dd32fec6..192d3e8e1f65 100644 --- a/arch/ia64/oprofile/perfmon.c +++ b/arch/ia64/oprofile/perfmon.c | |||
@@ -56,7 +56,7 @@ static pfm_buffer_fmt_t oprofile_fmt = { | |||
56 | }; | 56 | }; |
57 | 57 | ||
58 | 58 | ||
59 | static char * get_cpu_type(void) | 59 | static char *get_cpu_type(void) |
60 | { | 60 | { |
61 | __u8 family = local_cpu_data->family; | 61 | __u8 family = local_cpu_data->family; |
62 | 62 | ||
@@ -75,7 +75,7 @@ static char * get_cpu_type(void) | |||
75 | 75 | ||
76 | static int using_perfmon; | 76 | static int using_perfmon; |
77 | 77 | ||
78 | int perfmon_init(struct oprofile_operations * ops) | 78 | int perfmon_init(struct oprofile_operations *ops) |
79 | { | 79 | { |
80 | int ret = pfm_register_buffer_fmt(&oprofile_fmt); | 80 | int ret = pfm_register_buffer_fmt(&oprofile_fmt); |
81 | if (ret) | 81 | if (ret) |
diff --git a/arch/ia64/scripts/pvcheck.sed b/arch/ia64/scripts/pvcheck.sed new file mode 100644 index 000000000000..ba66ac2e4c60 --- /dev/null +++ b/arch/ia64/scripts/pvcheck.sed | |||
@@ -0,0 +1,32 @@ | |||
1 | # | ||
2 | # Checker for paravirtualizations of privileged operations. | ||
3 | # | ||
4 | s/ssm.*psr\.ic.*/.warning \"ssm psr.ic should not be used directly\"/g | ||
5 | s/rsm.*psr\.ic.*/.warning \"rsm psr.ic should not be used directly\"/g | ||
6 | s/ssm.*psr\.i.*/.warning \"ssm psr.i should not be used directly\"/g | ||
7 | s/rsm.*psr\.i.*/.warning \"rsm psr.i should not be used directly\"/g | ||
8 | s/ssm.*psr\.dt.*/.warning \"ssm psr.dt should not be used directly\"/g | ||
9 | s/rsm.*psr\.dt.*/.warning \"rsm psr.dt should not be used directly\"/g | ||
10 | s/mov.*=.*cr\.ifa/.warning \"cr.ifa should not used directly\"/g | ||
11 | s/mov.*=.*cr\.itir/.warning \"cr.itir should not used directly\"/g | ||
12 | s/mov.*=.*cr\.isr/.warning \"cr.isr should not used directly\"/g | ||
13 | s/mov.*=.*cr\.iha/.warning \"cr.iha should not used directly\"/g | ||
14 | s/mov.*=.*cr\.ipsr/.warning \"cr.ipsr should not used directly\"/g | ||
15 | s/mov.*=.*cr\.iim/.warning \"cr.iim should not used directly\"/g | ||
16 | s/mov.*=.*cr\.iip/.warning \"cr.iip should not used directly\"/g | ||
17 | s/mov.*=.*cr\.ivr/.warning \"cr.ivr should not used directly\"/g | ||
18 | s/mov.*=[^\.]*psr/.warning \"psr should not used directly\"/g # avoid ar.fpsr | ||
19 | s/mov.*=.*ar\.eflags/.warning \"ar.eflags should not used directly\"/g | ||
20 | s/mov.*cr\.ifa.*=.*/.warning \"cr.ifa should not used directly\"/g | ||
21 | s/mov.*cr\.itir.*=.*/.warning \"cr.itir should not used directly\"/g | ||
22 | s/mov.*cr\.iha.*=.*/.warning \"cr.iha should not used directly\"/g | ||
23 | s/mov.*cr\.ipsr.*=.*/.warning \"cr.ipsr should not used directly\"/g | ||
24 | s/mov.*cr\.ifs.*=.*/.warning \"cr.ifs should not used directly\"/g | ||
25 | s/mov.*cr\.iip.*=.*/.warning \"cr.iip should not used directly\"/g | ||
26 | s/mov.*cr\.kr.*=.*/.warning \"cr.kr should not used directly\"/g | ||
27 | s/mov.*ar\.eflags.*=.*/.warning \"ar.eflags should not used directly\"/g | ||
28 | s/itc\.i.*/.warning \"itc.i should not be used directly.\"/g | ||
29 | s/itc\.d.*/.warning \"itc.d should not be used directly.\"/g | ||
30 | s/bsw\.0/.warning \"bsw.0 should not be used directly.\"/g | ||
31 | s/bsw\.1/.warning \"bsw.1 should not be used directly.\"/g | ||
32 | s/ptc\.ga.*/.warning \"ptc.ga should not be used directly.\"/g | ||
diff --git a/arch/ia64/sn/kernel/io_acpi_init.c b/arch/ia64/sn/kernel/io_acpi_init.c index 6568942a95f0..bc610a6c7851 100644 --- a/arch/ia64/sn/kernel/io_acpi_init.c +++ b/arch/ia64/sn/kernel/io_acpi_init.c | |||
@@ -232,7 +232,7 @@ exit: | |||
232 | static unsigned int | 232 | static unsigned int |
233 | get_host_devfn(acpi_handle device_handle, acpi_handle rootbus_handle) | 233 | get_host_devfn(acpi_handle device_handle, acpi_handle rootbus_handle) |
234 | { | 234 | { |
235 | unsigned long adr; | 235 | unsigned long long adr; |
236 | acpi_handle child; | 236 | acpi_handle child; |
237 | unsigned int devfn; | 237 | unsigned int devfn; |
238 | int function; | 238 | int function; |
@@ -292,8 +292,8 @@ get_host_devfn(acpi_handle device_handle, acpi_handle rootbus_handle) | |||
292 | static acpi_status | 292 | static acpi_status |
293 | find_matching_device(acpi_handle handle, u32 lvl, void *context, void **rv) | 293 | find_matching_device(acpi_handle handle, u32 lvl, void *context, void **rv) |
294 | { | 294 | { |
295 | unsigned long bbn = -1; | 295 | unsigned long long bbn = -1; |
296 | unsigned long adr; | 296 | unsigned long long adr; |
297 | acpi_handle parent = NULL; | 297 | acpi_handle parent = NULL; |
298 | acpi_status status; | 298 | acpi_status status; |
299 | unsigned int devfn; | 299 | unsigned int devfn; |
@@ -348,7 +348,7 @@ sn_acpi_get_pcidev_info(struct pci_dev *dev, struct pcidev_info **pcidev_info, | |||
348 | unsigned int host_devfn; | 348 | unsigned int host_devfn; |
349 | struct sn_pcidev_match pcidev_match; | 349 | struct sn_pcidev_match pcidev_match; |
350 | acpi_handle rootbus_handle; | 350 | acpi_handle rootbus_handle; |
351 | unsigned long segment; | 351 | unsigned long long segment; |
352 | acpi_status status; | 352 | acpi_status status; |
353 | 353 | ||
354 | rootbus_handle = PCI_CONTROLLER(dev)->acpi_handle; | 354 | rootbus_handle = PCI_CONTROLLER(dev)->acpi_handle; |
@@ -357,7 +357,7 @@ sn_acpi_get_pcidev_info(struct pci_dev *dev, struct pcidev_info **pcidev_info, | |||
357 | if (ACPI_SUCCESS(status)) { | 357 | if (ACPI_SUCCESS(status)) { |
358 | if (segment != pci_domain_nr(dev)) { | 358 | if (segment != pci_domain_nr(dev)) { |
359 | printk(KERN_ERR | 359 | printk(KERN_ERR |
360 | "%s: Segment number mismatch, 0x%lx vs 0x%x for: ", | 360 | "%s: Segment number mismatch, 0x%llx vs 0x%x for: ", |
361 | __func__, segment, pci_domain_nr(dev)); | 361 | __func__, segment, pci_domain_nr(dev)); |
362 | acpi_ns_print_node_pathname(rootbus_handle, NULL); | 362 | acpi_ns_print_node_pathname(rootbus_handle, NULL); |
363 | printk("\n"); | 363 | printk("\n"); |
diff --git a/arch/ia64/xen/Kconfig b/arch/ia64/xen/Kconfig new file mode 100644 index 000000000000..f1683a20275b --- /dev/null +++ b/arch/ia64/xen/Kconfig | |||
@@ -0,0 +1,26 @@ | |||
1 | # | ||
2 | # This Kconfig describes xen/ia64 options | ||
3 | # | ||
4 | |||
5 | config XEN | ||
6 | bool "Xen hypervisor support" | ||
7 | default y | ||
8 | depends on PARAVIRT && MCKINLEY && IA64_PAGE_SIZE_16KB && EXPERIMENTAL | ||
9 | select XEN_XENCOMM | ||
10 | select NO_IDLE_HZ | ||
11 | |||
12 | # those are required to save/restore. | ||
13 | select ARCH_SUSPEND_POSSIBLE | ||
14 | select SUSPEND | ||
15 | select PM_SLEEP | ||
16 | help | ||
17 | Enable Xen hypervisor support. Resulting kernel runs | ||
18 | both as a guest OS on Xen and natively on hardware. | ||
19 | |||
20 | config XEN_XENCOMM | ||
21 | depends on XEN | ||
22 | bool | ||
23 | |||
24 | config NO_IDLE_HZ | ||
25 | depends on XEN | ||
26 | bool | ||
diff --git a/arch/ia64/xen/Makefile b/arch/ia64/xen/Makefile new file mode 100644 index 000000000000..0ad0224693d9 --- /dev/null +++ b/arch/ia64/xen/Makefile | |||
@@ -0,0 +1,22 @@ | |||
1 | # | ||
2 | # Makefile for Xen components | ||
3 | # | ||
4 | |||
5 | obj-y := hypercall.o xenivt.o xensetup.o xen_pv_ops.o irq_xen.o \ | ||
6 | hypervisor.o xencomm.o xcom_hcall.o grant-table.o time.o suspend.o | ||
7 | |||
8 | obj-$(CONFIG_IA64_GENERIC) += machvec.o | ||
9 | |||
10 | AFLAGS_xenivt.o += -D__IA64_ASM_PARAVIRTUALIZED_XEN | ||
11 | |||
12 | # xen multi compile | ||
13 | ASM_PARAVIRT_MULTI_COMPILE_SRCS = ivt.S entry.S | ||
14 | ASM_PARAVIRT_OBJS = $(addprefix xen-,$(ASM_PARAVIRT_MULTI_COMPILE_SRCS:.S=.o)) | ||
15 | obj-y += $(ASM_PARAVIRT_OBJS) | ||
16 | define paravirtualized_xen | ||
17 | AFLAGS_$(1) += -D__IA64_ASM_PARAVIRTUALIZED_XEN | ||
18 | endef | ||
19 | $(foreach o,$(ASM_PARAVIRT_OBJS),$(eval $(call paravirtualized_xen,$(o)))) | ||
20 | |||
21 | $(obj)/xen-%.o: $(src)/../kernel/%.S FORCE | ||
22 | $(call if_changed_dep,as_o_S) | ||
diff --git a/arch/ia64/xen/grant-table.c b/arch/ia64/xen/grant-table.c new file mode 100644 index 000000000000..777dd9a9108b --- /dev/null +++ b/arch/ia64/xen/grant-table.c | |||
@@ -0,0 +1,155 @@ | |||
1 | /****************************************************************************** | ||
2 | * arch/ia64/xen/grant-table.c | ||
3 | * | ||
4 | * Copyright (c) 2006 Isaku Yamahata <yamahata at valinux co jp> | ||
5 | * VA Linux Systems Japan K.K. | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License as published by | ||
9 | * the Free Software Foundation; either version 2 of the License, or | ||
10 | * (at your option) any later version. | ||
11 | * | ||
12 | * This program is distributed in the hope that it will be useful, | ||
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | * GNU General Public License for more details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program; if not, write to the Free Software | ||
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
20 | * | ||
21 | */ | ||
22 | |||
23 | #include <linux/module.h> | ||
24 | #include <linux/vmalloc.h> | ||
25 | #include <linux/mm.h> | ||
26 | |||
27 | #include <xen/interface/xen.h> | ||
28 | #include <xen/interface/memory.h> | ||
29 | #include <xen/grant_table.h> | ||
30 | |||
31 | #include <asm/xen/hypervisor.h> | ||
32 | |||
33 | struct vm_struct *xen_alloc_vm_area(unsigned long size) | ||
34 | { | ||
35 | int order; | ||
36 | unsigned long virt; | ||
37 | unsigned long nr_pages; | ||
38 | struct vm_struct *area; | ||
39 | |||
40 | order = get_order(size); | ||
41 | virt = __get_free_pages(GFP_KERNEL, order); | ||
42 | if (virt == 0) | ||
43 | goto err0; | ||
44 | nr_pages = 1 << order; | ||
45 | scrub_pages(virt, nr_pages); | ||
46 | |||
47 | area = kmalloc(sizeof(*area), GFP_KERNEL); | ||
48 | if (area == NULL) | ||
49 | goto err1; | ||
50 | |||
51 | area->flags = VM_IOREMAP; | ||
52 | area->addr = (void *)virt; | ||
53 | area->size = size; | ||
54 | area->pages = NULL; | ||
55 | area->nr_pages = nr_pages; | ||
56 | area->phys_addr = 0; /* xenbus_map_ring_valloc uses this field! */ | ||
57 | |||
58 | return area; | ||
59 | |||
60 | err1: | ||
61 | free_pages(virt, order); | ||
62 | err0: | ||
63 | return NULL; | ||
64 | } | ||
65 | EXPORT_SYMBOL_GPL(xen_alloc_vm_area); | ||
66 | |||
67 | void xen_free_vm_area(struct vm_struct *area) | ||
68 | { | ||
69 | unsigned int order = get_order(area->size); | ||
70 | unsigned long i; | ||
71 | unsigned long phys_addr = __pa(area->addr); | ||
72 | |||
73 | /* This area is used for foreign page mappping. | ||
74 | * So underlying machine page may not be assigned. */ | ||
75 | for (i = 0; i < (1 << order); i++) { | ||
76 | unsigned long ret; | ||
77 | unsigned long gpfn = (phys_addr >> PAGE_SHIFT) + i; | ||
78 | struct xen_memory_reservation reservation = { | ||
79 | .nr_extents = 1, | ||
80 | .address_bits = 0, | ||
81 | .extent_order = 0, | ||
82 | .domid = DOMID_SELF | ||
83 | }; | ||
84 | set_xen_guest_handle(reservation.extent_start, &gpfn); | ||
85 | ret = HYPERVISOR_memory_op(XENMEM_populate_physmap, | ||
86 | &reservation); | ||
87 | BUG_ON(ret != 1); | ||
88 | } | ||
89 | free_pages((unsigned long)area->addr, order); | ||
90 | kfree(area); | ||
91 | } | ||
92 | EXPORT_SYMBOL_GPL(xen_free_vm_area); | ||
93 | |||
94 | |||
95 | /**************************************************************************** | ||
96 | * grant table hack | ||
97 | * cmd: GNTTABOP_xxx | ||
98 | */ | ||
99 | |||
100 | int arch_gnttab_map_shared(unsigned long *frames, unsigned long nr_gframes, | ||
101 | unsigned long max_nr_gframes, | ||
102 | struct grant_entry **__shared) | ||
103 | { | ||
104 | *__shared = __va(frames[0] << PAGE_SHIFT); | ||
105 | return 0; | ||
106 | } | ||
107 | |||
108 | void arch_gnttab_unmap_shared(struct grant_entry *shared, | ||
109 | unsigned long nr_gframes) | ||
110 | { | ||
111 | /* nothing */ | ||
112 | } | ||
113 | |||
114 | static void | ||
115 | gnttab_map_grant_ref_pre(struct gnttab_map_grant_ref *uop) | ||
116 | { | ||
117 | uint32_t flags; | ||
118 | |||
119 | flags = uop->flags; | ||
120 | |||
121 | if (flags & GNTMAP_host_map) { | ||
122 | if (flags & GNTMAP_application_map) { | ||
123 | printk(KERN_DEBUG | ||
124 | "GNTMAP_application_map is not supported yet: " | ||
125 | "flags 0x%x\n", flags); | ||
126 | BUG(); | ||
127 | } | ||
128 | if (flags & GNTMAP_contains_pte) { | ||
129 | printk(KERN_DEBUG | ||
130 | "GNTMAP_contains_pte is not supported yet: " | ||
131 | "flags 0x%x\n", flags); | ||
132 | BUG(); | ||
133 | } | ||
134 | } else if (flags & GNTMAP_device_map) { | ||
135 | printk("GNTMAP_device_map is not supported yet 0x%x\n", flags); | ||
136 | BUG(); /* not yet. actually this flag is not used. */ | ||
137 | } else { | ||
138 | BUG(); | ||
139 | } | ||
140 | } | ||
141 | |||
142 | int | ||
143 | HYPERVISOR_grant_table_op(unsigned int cmd, void *uop, unsigned int count) | ||
144 | { | ||
145 | if (cmd == GNTTABOP_map_grant_ref) { | ||
146 | unsigned int i; | ||
147 | for (i = 0; i < count; i++) { | ||
148 | gnttab_map_grant_ref_pre( | ||
149 | (struct gnttab_map_grant_ref *)uop + i); | ||
150 | } | ||
151 | } | ||
152 | return xencomm_hypercall_grant_table_op(cmd, uop, count); | ||
153 | } | ||
154 | |||
155 | EXPORT_SYMBOL(HYPERVISOR_grant_table_op); | ||
diff --git a/arch/ia64/xen/hypercall.S b/arch/ia64/xen/hypercall.S new file mode 100644 index 000000000000..d4ff0b9e79f1 --- /dev/null +++ b/arch/ia64/xen/hypercall.S | |||
@@ -0,0 +1,91 @@ | |||
1 | /* | ||
2 | * Support routines for Xen hypercalls | ||
3 | * | ||
4 | * Copyright (C) 2005 Dan Magenheimer <dan.magenheimer@hp.com> | ||
5 | * Copyright (C) 2008 Yaozu (Eddie) Dong <eddie.dong@intel.com> | ||
6 | */ | ||
7 | |||
8 | #include <asm/asmmacro.h> | ||
9 | #include <asm/intrinsics.h> | ||
10 | #include <asm/xen/privop.h> | ||
11 | |||
12 | /* | ||
13 | * Hypercalls without parameter. | ||
14 | */ | ||
15 | #define __HCALL0(name,hcall) \ | ||
16 | GLOBAL_ENTRY(name); \ | ||
17 | break hcall; \ | ||
18 | br.ret.sptk.many rp; \ | ||
19 | END(name) | ||
20 | |||
21 | /* | ||
22 | * Hypercalls with 1 parameter. | ||
23 | */ | ||
24 | #define __HCALL1(name,hcall) \ | ||
25 | GLOBAL_ENTRY(name); \ | ||
26 | mov r8=r32; \ | ||
27 | break hcall; \ | ||
28 | br.ret.sptk.many rp; \ | ||
29 | END(name) | ||
30 | |||
31 | /* | ||
32 | * Hypercalls with 2 parameters. | ||
33 | */ | ||
34 | #define __HCALL2(name,hcall) \ | ||
35 | GLOBAL_ENTRY(name); \ | ||
36 | mov r8=r32; \ | ||
37 | mov r9=r33; \ | ||
38 | break hcall; \ | ||
39 | br.ret.sptk.many rp; \ | ||
40 | END(name) | ||
41 | |||
42 | __HCALL0(xen_get_psr, HYPERPRIVOP_GET_PSR) | ||
43 | __HCALL0(xen_get_ivr, HYPERPRIVOP_GET_IVR) | ||
44 | __HCALL0(xen_get_tpr, HYPERPRIVOP_GET_TPR) | ||
45 | __HCALL0(xen_hyper_ssm_i, HYPERPRIVOP_SSM_I) | ||
46 | |||
47 | __HCALL1(xen_set_tpr, HYPERPRIVOP_SET_TPR) | ||
48 | __HCALL1(xen_eoi, HYPERPRIVOP_EOI) | ||
49 | __HCALL1(xen_thash, HYPERPRIVOP_THASH) | ||
50 | __HCALL1(xen_set_itm, HYPERPRIVOP_SET_ITM) | ||
51 | __HCALL1(xen_get_rr, HYPERPRIVOP_GET_RR) | ||
52 | __HCALL1(xen_fc, HYPERPRIVOP_FC) | ||
53 | __HCALL1(xen_get_cpuid, HYPERPRIVOP_GET_CPUID) | ||
54 | __HCALL1(xen_get_pmd, HYPERPRIVOP_GET_PMD) | ||
55 | |||
56 | __HCALL2(xen_ptcga, HYPERPRIVOP_PTC_GA) | ||
57 | __HCALL2(xen_set_rr, HYPERPRIVOP_SET_RR) | ||
58 | __HCALL2(xen_set_kr, HYPERPRIVOP_SET_KR) | ||
59 | |||
60 | #ifdef CONFIG_IA32_SUPPORT | ||
61 | __HCALL1(xen_get_eflag, HYPERPRIVOP_GET_EFLAG) | ||
62 | __HCALL1(xen_set_eflag, HYPERPRIVOP_SET_EFLAG) // refer SDM vol1 3.1.8 | ||
63 | #endif /* CONFIG_IA32_SUPPORT */ | ||
64 | |||
65 | GLOBAL_ENTRY(xen_set_rr0_to_rr4) | ||
66 | mov r8=r32 | ||
67 | mov r9=r33 | ||
68 | mov r10=r34 | ||
69 | mov r11=r35 | ||
70 | mov r14=r36 | ||
71 | XEN_HYPER_SET_RR0_TO_RR4 | ||
72 | br.ret.sptk.many rp | ||
73 | ;; | ||
74 | END(xen_set_rr0_to_rr4) | ||
75 | |||
76 | GLOBAL_ENTRY(xen_send_ipi) | ||
77 | mov r14=r32 | ||
78 | mov r15=r33 | ||
79 | mov r2=0x400 | ||
80 | break 0x1000 | ||
81 | ;; | ||
82 | br.ret.sptk.many rp | ||
83 | ;; | ||
84 | END(xen_send_ipi) | ||
85 | |||
86 | GLOBAL_ENTRY(__hypercall) | ||
87 | mov r2=r37 | ||
88 | break 0x1000 | ||
89 | br.ret.sptk.many b0 | ||
90 | ;; | ||
91 | END(__hypercall) | ||
diff --git a/arch/ia64/xen/hypervisor.c b/arch/ia64/xen/hypervisor.c new file mode 100644 index 000000000000..cac4d97c0b5a --- /dev/null +++ b/arch/ia64/xen/hypervisor.c | |||
@@ -0,0 +1,96 @@ | |||
1 | /****************************************************************************** | ||
2 | * arch/ia64/xen/hypervisor.c | ||
3 | * | ||
4 | * Copyright (c) 2006 Isaku Yamahata <yamahata at valinux co jp> | ||
5 | * VA Linux Systems Japan K.K. | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License as published by | ||
9 | * the Free Software Foundation; either version 2 of the License, or | ||
10 | * (at your option) any later version. | ||
11 | * | ||
12 | * This program is distributed in the hope that it will be useful, | ||
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | * GNU General Public License for more details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program; if not, write to the Free Software | ||
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
20 | * | ||
21 | */ | ||
22 | |||
23 | #include <linux/efi.h> | ||
24 | #include <asm/xen/hypervisor.h> | ||
25 | #include <asm/xen/privop.h> | ||
26 | |||
27 | #include "irq_xen.h" | ||
28 | |||
29 | struct shared_info *HYPERVISOR_shared_info __read_mostly = | ||
30 | (struct shared_info *)XSI_BASE; | ||
31 | EXPORT_SYMBOL(HYPERVISOR_shared_info); | ||
32 | |||
33 | DEFINE_PER_CPU(struct vcpu_info *, xen_vcpu); | ||
34 | |||
35 | struct start_info *xen_start_info; | ||
36 | EXPORT_SYMBOL(xen_start_info); | ||
37 | |||
38 | EXPORT_SYMBOL(xen_domain_type); | ||
39 | |||
40 | EXPORT_SYMBOL(__hypercall); | ||
41 | |||
42 | /* Stolen from arch/x86/xen/enlighten.c */ | ||
43 | /* | ||
44 | * Flag to determine whether vcpu info placement is available on all | ||
45 | * VCPUs. We assume it is to start with, and then set it to zero on | ||
46 | * the first failure. This is because it can succeed on some VCPUs | ||
47 | * and not others, since it can involve hypervisor memory allocation, | ||
48 | * or because the guest failed to guarantee all the appropriate | ||
49 | * constraints on all VCPUs (ie buffer can't cross a page boundary). | ||
50 | * | ||
51 | * Note that any particular CPU may be using a placed vcpu structure, | ||
52 | * but we can only optimise if the all are. | ||
53 | * | ||
54 | * 0: not available, 1: available | ||
55 | */ | ||
56 | |||
57 | static void __init xen_vcpu_setup(int cpu) | ||
58 | { | ||
59 | /* | ||
60 | * WARNING: | ||
61 | * before changing MAX_VIRT_CPUS, | ||
62 | * check that shared_info fits on a page | ||
63 | */ | ||
64 | BUILD_BUG_ON(sizeof(struct shared_info) > PAGE_SIZE); | ||
65 | per_cpu(xen_vcpu, cpu) = &HYPERVISOR_shared_info->vcpu_info[cpu]; | ||
66 | } | ||
67 | |||
68 | void __init xen_setup_vcpu_info_placement(void) | ||
69 | { | ||
70 | int cpu; | ||
71 | |||
72 | for_each_possible_cpu(cpu) | ||
73 | xen_vcpu_setup(cpu); | ||
74 | } | ||
75 | |||
76 | void __cpuinit | ||
77 | xen_cpu_init(void) | ||
78 | { | ||
79 | xen_smp_intr_init(); | ||
80 | } | ||
81 | |||
82 | /************************************************************************** | ||
83 | * opt feature | ||
84 | */ | ||
85 | void | ||
86 | xen_ia64_enable_opt_feature(void) | ||
87 | { | ||
88 | /* Enable region 7 identity map optimizations in Xen */ | ||
89 | struct xen_ia64_opt_feature optf; | ||
90 | |||
91 | optf.cmd = XEN_IA64_OPTF_IDENT_MAP_REG7; | ||
92 | optf.on = XEN_IA64_OPTF_ON; | ||
93 | optf.pgprot = pgprot_val(PAGE_KERNEL); | ||
94 | optf.key = 0; /* No key on linux. */ | ||
95 | HYPERVISOR_opt_feature(&optf); | ||
96 | } | ||
diff --git a/arch/ia64/xen/irq_xen.c b/arch/ia64/xen/irq_xen.c new file mode 100644 index 000000000000..af93aadb68bb --- /dev/null +++ b/arch/ia64/xen/irq_xen.c | |||
@@ -0,0 +1,435 @@ | |||
1 | /****************************************************************************** | ||
2 | * arch/ia64/xen/irq_xen.c | ||
3 | * | ||
4 | * Copyright (c) 2008 Isaku Yamahata <yamahata at valinux co jp> | ||
5 | * VA Linux Systems Japan K.K. | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License as published by | ||
9 | * the Free Software Foundation; either version 2 of the License, or | ||
10 | * (at your option) any later version. | ||
11 | * | ||
12 | * This program is distributed in the hope that it will be useful, | ||
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | * GNU General Public License for more details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program; if not, write to the Free Software | ||
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
20 | * | ||
21 | */ | ||
22 | |||
23 | #include <linux/cpu.h> | ||
24 | |||
25 | #include <xen/interface/xen.h> | ||
26 | #include <xen/interface/callback.h> | ||
27 | #include <xen/events.h> | ||
28 | |||
29 | #include <asm/xen/privop.h> | ||
30 | |||
31 | #include "irq_xen.h" | ||
32 | |||
33 | /*************************************************************************** | ||
34 | * pv_irq_ops | ||
35 | * irq operations | ||
36 | */ | ||
37 | |||
38 | static int | ||
39 | xen_assign_irq_vector(int irq) | ||
40 | { | ||
41 | struct physdev_irq irq_op; | ||
42 | |||
43 | irq_op.irq = irq; | ||
44 | if (HYPERVISOR_physdev_op(PHYSDEVOP_alloc_irq_vector, &irq_op)) | ||
45 | return -ENOSPC; | ||
46 | |||
47 | return irq_op.vector; | ||
48 | } | ||
49 | |||
50 | static void | ||
51 | xen_free_irq_vector(int vector) | ||
52 | { | ||
53 | struct physdev_irq irq_op; | ||
54 | |||
55 | if (vector < IA64_FIRST_DEVICE_VECTOR || | ||
56 | vector > IA64_LAST_DEVICE_VECTOR) | ||
57 | return; | ||
58 | |||
59 | irq_op.vector = vector; | ||
60 | if (HYPERVISOR_physdev_op(PHYSDEVOP_free_irq_vector, &irq_op)) | ||
61 | printk(KERN_WARNING "%s: xen_free_irq_vecotr fail vector=%d\n", | ||
62 | __func__, vector); | ||
63 | } | ||
64 | |||
65 | |||
66 | static DEFINE_PER_CPU(int, timer_irq) = -1; | ||
67 | static DEFINE_PER_CPU(int, ipi_irq) = -1; | ||
68 | static DEFINE_PER_CPU(int, resched_irq) = -1; | ||
69 | static DEFINE_PER_CPU(int, cmc_irq) = -1; | ||
70 | static DEFINE_PER_CPU(int, cmcp_irq) = -1; | ||
71 | static DEFINE_PER_CPU(int, cpep_irq) = -1; | ||
72 | #define NAME_SIZE 15 | ||
73 | static DEFINE_PER_CPU(char[NAME_SIZE], timer_name); | ||
74 | static DEFINE_PER_CPU(char[NAME_SIZE], ipi_name); | ||
75 | static DEFINE_PER_CPU(char[NAME_SIZE], resched_name); | ||
76 | static DEFINE_PER_CPU(char[NAME_SIZE], cmc_name); | ||
77 | static DEFINE_PER_CPU(char[NAME_SIZE], cmcp_name); | ||
78 | static DEFINE_PER_CPU(char[NAME_SIZE], cpep_name); | ||
79 | #undef NAME_SIZE | ||
80 | |||
81 | struct saved_irq { | ||
82 | unsigned int irq; | ||
83 | struct irqaction *action; | ||
84 | }; | ||
85 | /* 16 should be far optimistic value, since only several percpu irqs | ||
86 | * are registered early. | ||
87 | */ | ||
88 | #define MAX_LATE_IRQ 16 | ||
89 | static struct saved_irq saved_percpu_irqs[MAX_LATE_IRQ]; | ||
90 | static unsigned short late_irq_cnt; | ||
91 | static unsigned short saved_irq_cnt; | ||
92 | static int xen_slab_ready; | ||
93 | |||
94 | #ifdef CONFIG_SMP | ||
95 | /* Dummy stub. Though we may check XEN_RESCHEDULE_VECTOR before __do_IRQ, | ||
96 | * it ends up to issue several memory accesses upon percpu data and | ||
97 | * thus adds unnecessary traffic to other paths. | ||
98 | */ | ||
99 | static irqreturn_t | ||
100 | xen_dummy_handler(int irq, void *dev_id) | ||
101 | { | ||
102 | |||
103 | return IRQ_HANDLED; | ||
104 | } | ||
105 | |||
106 | static struct irqaction xen_ipi_irqaction = { | ||
107 | .handler = handle_IPI, | ||
108 | .flags = IRQF_DISABLED, | ||
109 | .name = "IPI" | ||
110 | }; | ||
111 | |||
112 | static struct irqaction xen_resched_irqaction = { | ||
113 | .handler = xen_dummy_handler, | ||
114 | .flags = IRQF_DISABLED, | ||
115 | .name = "resched" | ||
116 | }; | ||
117 | |||
118 | static struct irqaction xen_tlb_irqaction = { | ||
119 | .handler = xen_dummy_handler, | ||
120 | .flags = IRQF_DISABLED, | ||
121 | .name = "tlb_flush" | ||
122 | }; | ||
123 | #endif | ||
124 | |||
125 | /* | ||
126 | * This is xen version percpu irq registration, which needs bind | ||
127 | * to xen specific evtchn sub-system. One trick here is that xen | ||
128 | * evtchn binding interface depends on kmalloc because related | ||
129 | * port needs to be freed at device/cpu down. So we cache the | ||
130 | * registration on BSP before slab is ready and then deal them | ||
131 | * at later point. For rest instances happening after slab ready, | ||
132 | * we hook them to xen evtchn immediately. | ||
133 | * | ||
134 | * FIXME: MCA is not supported by far, and thus "nomca" boot param is | ||
135 | * required. | ||
136 | */ | ||
137 | static void | ||
138 | __xen_register_percpu_irq(unsigned int cpu, unsigned int vec, | ||
139 | struct irqaction *action, int save) | ||
140 | { | ||
141 | irq_desc_t *desc; | ||
142 | int irq = 0; | ||
143 | |||
144 | if (xen_slab_ready) { | ||
145 | switch (vec) { | ||
146 | case IA64_TIMER_VECTOR: | ||
147 | snprintf(per_cpu(timer_name, cpu), | ||
148 | sizeof(per_cpu(timer_name, cpu)), | ||
149 | "%s%d", action->name, cpu); | ||
150 | irq = bind_virq_to_irqhandler(VIRQ_ITC, cpu, | ||
151 | action->handler, action->flags, | ||
152 | per_cpu(timer_name, cpu), action->dev_id); | ||
153 | per_cpu(timer_irq, cpu) = irq; | ||
154 | break; | ||
155 | case IA64_IPI_RESCHEDULE: | ||
156 | snprintf(per_cpu(resched_name, cpu), | ||
157 | sizeof(per_cpu(resched_name, cpu)), | ||
158 | "%s%d", action->name, cpu); | ||
159 | irq = bind_ipi_to_irqhandler(XEN_RESCHEDULE_VECTOR, cpu, | ||
160 | action->handler, action->flags, | ||
161 | per_cpu(resched_name, cpu), action->dev_id); | ||
162 | per_cpu(resched_irq, cpu) = irq; | ||
163 | break; | ||
164 | case IA64_IPI_VECTOR: | ||
165 | snprintf(per_cpu(ipi_name, cpu), | ||
166 | sizeof(per_cpu(ipi_name, cpu)), | ||
167 | "%s%d", action->name, cpu); | ||
168 | irq = bind_ipi_to_irqhandler(XEN_IPI_VECTOR, cpu, | ||
169 | action->handler, action->flags, | ||
170 | per_cpu(ipi_name, cpu), action->dev_id); | ||
171 | per_cpu(ipi_irq, cpu) = irq; | ||
172 | break; | ||
173 | case IA64_CMC_VECTOR: | ||
174 | snprintf(per_cpu(cmc_name, cpu), | ||
175 | sizeof(per_cpu(cmc_name, cpu)), | ||
176 | "%s%d", action->name, cpu); | ||
177 | irq = bind_virq_to_irqhandler(VIRQ_MCA_CMC, cpu, | ||
178 | action->handler, | ||
179 | action->flags, | ||
180 | per_cpu(cmc_name, cpu), | ||
181 | action->dev_id); | ||
182 | per_cpu(cmc_irq, cpu) = irq; | ||
183 | break; | ||
184 | case IA64_CMCP_VECTOR: | ||
185 | snprintf(per_cpu(cmcp_name, cpu), | ||
186 | sizeof(per_cpu(cmcp_name, cpu)), | ||
187 | "%s%d", action->name, cpu); | ||
188 | irq = bind_ipi_to_irqhandler(XEN_CMCP_VECTOR, cpu, | ||
189 | action->handler, | ||
190 | action->flags, | ||
191 | per_cpu(cmcp_name, cpu), | ||
192 | action->dev_id); | ||
193 | per_cpu(cmcp_irq, cpu) = irq; | ||
194 | break; | ||
195 | case IA64_CPEP_VECTOR: | ||
196 | snprintf(per_cpu(cpep_name, cpu), | ||
197 | sizeof(per_cpu(cpep_name, cpu)), | ||
198 | "%s%d", action->name, cpu); | ||
199 | irq = bind_ipi_to_irqhandler(XEN_CPEP_VECTOR, cpu, | ||
200 | action->handler, | ||
201 | action->flags, | ||
202 | per_cpu(cpep_name, cpu), | ||
203 | action->dev_id); | ||
204 | per_cpu(cpep_irq, cpu) = irq; | ||
205 | break; | ||
206 | case IA64_CPE_VECTOR: | ||
207 | case IA64_MCA_RENDEZ_VECTOR: | ||
208 | case IA64_PERFMON_VECTOR: | ||
209 | case IA64_MCA_WAKEUP_VECTOR: | ||
210 | case IA64_SPURIOUS_INT_VECTOR: | ||
211 | /* No need to complain, these aren't supported. */ | ||
212 | break; | ||
213 | default: | ||
214 | printk(KERN_WARNING "Percpu irq %d is unsupported " | ||
215 | "by xen!\n", vec); | ||
216 | break; | ||
217 | } | ||
218 | BUG_ON(irq < 0); | ||
219 | |||
220 | if (irq > 0) { | ||
221 | /* | ||
222 | * Mark percpu. Without this, migrate_irqs() will | ||
223 | * mark the interrupt for migrations and trigger it | ||
224 | * on cpu hotplug. | ||
225 | */ | ||
226 | desc = irq_desc + irq; | ||
227 | desc->status |= IRQ_PER_CPU; | ||
228 | } | ||
229 | } | ||
230 | |||
231 | /* For BSP, we cache registered percpu irqs, and then re-walk | ||
232 | * them when initializing APs | ||
233 | */ | ||
234 | if (!cpu && save) { | ||
235 | BUG_ON(saved_irq_cnt == MAX_LATE_IRQ); | ||
236 | saved_percpu_irqs[saved_irq_cnt].irq = vec; | ||
237 | saved_percpu_irqs[saved_irq_cnt].action = action; | ||
238 | saved_irq_cnt++; | ||
239 | if (!xen_slab_ready) | ||
240 | late_irq_cnt++; | ||
241 | } | ||
242 | } | ||
243 | |||
244 | static void | ||
245 | xen_register_percpu_irq(ia64_vector vec, struct irqaction *action) | ||
246 | { | ||
247 | __xen_register_percpu_irq(smp_processor_id(), vec, action, 1); | ||
248 | } | ||
249 | |||
250 | static void | ||
251 | xen_bind_early_percpu_irq(void) | ||
252 | { | ||
253 | int i; | ||
254 | |||
255 | xen_slab_ready = 1; | ||
256 | /* There's no race when accessing this cached array, since only | ||
257 | * BSP will face with such step shortly | ||
258 | */ | ||
259 | for (i = 0; i < late_irq_cnt; i++) | ||
260 | __xen_register_percpu_irq(smp_processor_id(), | ||
261 | saved_percpu_irqs[i].irq, | ||
262 | saved_percpu_irqs[i].action, 0); | ||
263 | } | ||
264 | |||
265 | /* FIXME: There's no obvious point to check whether slab is ready. So | ||
266 | * a hack is used here by utilizing a late time hook. | ||
267 | */ | ||
268 | |||
269 | #ifdef CONFIG_HOTPLUG_CPU | ||
270 | static int __devinit | ||
271 | unbind_evtchn_callback(struct notifier_block *nfb, | ||
272 | unsigned long action, void *hcpu) | ||
273 | { | ||
274 | unsigned int cpu = (unsigned long)hcpu; | ||
275 | |||
276 | if (action == CPU_DEAD) { | ||
277 | /* Unregister evtchn. */ | ||
278 | if (per_cpu(cpep_irq, cpu) >= 0) { | ||
279 | unbind_from_irqhandler(per_cpu(cpep_irq, cpu), NULL); | ||
280 | per_cpu(cpep_irq, cpu) = -1; | ||
281 | } | ||
282 | if (per_cpu(cmcp_irq, cpu) >= 0) { | ||
283 | unbind_from_irqhandler(per_cpu(cmcp_irq, cpu), NULL); | ||
284 | per_cpu(cmcp_irq, cpu) = -1; | ||
285 | } | ||
286 | if (per_cpu(cmc_irq, cpu) >= 0) { | ||
287 | unbind_from_irqhandler(per_cpu(cmc_irq, cpu), NULL); | ||
288 | per_cpu(cmc_irq, cpu) = -1; | ||
289 | } | ||
290 | if (per_cpu(ipi_irq, cpu) >= 0) { | ||
291 | unbind_from_irqhandler(per_cpu(ipi_irq, cpu), NULL); | ||
292 | per_cpu(ipi_irq, cpu) = -1; | ||
293 | } | ||
294 | if (per_cpu(resched_irq, cpu) >= 0) { | ||
295 | unbind_from_irqhandler(per_cpu(resched_irq, cpu), | ||
296 | NULL); | ||
297 | per_cpu(resched_irq, cpu) = -1; | ||
298 | } | ||
299 | if (per_cpu(timer_irq, cpu) >= 0) { | ||
300 | unbind_from_irqhandler(per_cpu(timer_irq, cpu), NULL); | ||
301 | per_cpu(timer_irq, cpu) = -1; | ||
302 | } | ||
303 | } | ||
304 | return NOTIFY_OK; | ||
305 | } | ||
306 | |||
307 | static struct notifier_block unbind_evtchn_notifier = { | ||
308 | .notifier_call = unbind_evtchn_callback, | ||
309 | .priority = 0 | ||
310 | }; | ||
311 | #endif | ||
312 | |||
313 | void xen_smp_intr_init_early(unsigned int cpu) | ||
314 | { | ||
315 | #ifdef CONFIG_SMP | ||
316 | unsigned int i; | ||
317 | |||
318 | for (i = 0; i < saved_irq_cnt; i++) | ||
319 | __xen_register_percpu_irq(cpu, saved_percpu_irqs[i].irq, | ||
320 | saved_percpu_irqs[i].action, 0); | ||
321 | #endif | ||
322 | } | ||
323 | |||
324 | void xen_smp_intr_init(void) | ||
325 | { | ||
326 | #ifdef CONFIG_SMP | ||
327 | unsigned int cpu = smp_processor_id(); | ||
328 | struct callback_register event = { | ||
329 | .type = CALLBACKTYPE_event, | ||
330 | .address = { .ip = (unsigned long)&xen_event_callback }, | ||
331 | }; | ||
332 | |||
333 | if (cpu == 0) { | ||
334 | /* Initialization was already done for boot cpu. */ | ||
335 | #ifdef CONFIG_HOTPLUG_CPU | ||
336 | /* Register the notifier only once. */ | ||
337 | register_cpu_notifier(&unbind_evtchn_notifier); | ||
338 | #endif | ||
339 | return; | ||
340 | } | ||
341 | |||
342 | /* This should be piggyback when setup vcpu guest context */ | ||
343 | BUG_ON(HYPERVISOR_callback_op(CALLBACKOP_register, &event)); | ||
344 | #endif /* CONFIG_SMP */ | ||
345 | } | ||
346 | |||
347 | void __init | ||
348 | xen_irq_init(void) | ||
349 | { | ||
350 | struct callback_register event = { | ||
351 | .type = CALLBACKTYPE_event, | ||
352 | .address = { .ip = (unsigned long)&xen_event_callback }, | ||
353 | }; | ||
354 | |||
355 | xen_init_IRQ(); | ||
356 | BUG_ON(HYPERVISOR_callback_op(CALLBACKOP_register, &event)); | ||
357 | late_time_init = xen_bind_early_percpu_irq; | ||
358 | } | ||
359 | |||
360 | void | ||
361 | xen_platform_send_ipi(int cpu, int vector, int delivery_mode, int redirect) | ||
362 | { | ||
363 | #ifdef CONFIG_SMP | ||
364 | /* TODO: we need to call vcpu_up here */ | ||
365 | if (unlikely(vector == ap_wakeup_vector)) { | ||
366 | /* XXX | ||
367 | * This should be in __cpu_up(cpu) in ia64 smpboot.c | ||
368 | * like x86. But don't want to modify it, | ||
369 | * keep it untouched. | ||
370 | */ | ||
371 | xen_smp_intr_init_early(cpu); | ||
372 | |||
373 | xen_send_ipi(cpu, vector); | ||
374 | /* vcpu_prepare_and_up(cpu); */ | ||
375 | return; | ||
376 | } | ||
377 | #endif | ||
378 | |||
379 | switch (vector) { | ||
380 | case IA64_IPI_VECTOR: | ||
381 | xen_send_IPI_one(cpu, XEN_IPI_VECTOR); | ||
382 | break; | ||
383 | case IA64_IPI_RESCHEDULE: | ||
384 | xen_send_IPI_one(cpu, XEN_RESCHEDULE_VECTOR); | ||
385 | break; | ||
386 | case IA64_CMCP_VECTOR: | ||
387 | xen_send_IPI_one(cpu, XEN_CMCP_VECTOR); | ||
388 | break; | ||
389 | case IA64_CPEP_VECTOR: | ||
390 | xen_send_IPI_one(cpu, XEN_CPEP_VECTOR); | ||
391 | break; | ||
392 | case IA64_TIMER_VECTOR: { | ||
393 | /* this is used only once by check_sal_cache_flush() | ||
394 | at boot time */ | ||
395 | static int used = 0; | ||
396 | if (!used) { | ||
397 | xen_send_ipi(cpu, IA64_TIMER_VECTOR); | ||
398 | used = 1; | ||
399 | break; | ||
400 | } | ||
401 | /* fallthrough */ | ||
402 | } | ||
403 | default: | ||
404 | printk(KERN_WARNING "Unsupported IPI type 0x%x\n", | ||
405 | vector); | ||
406 | notify_remote_via_irq(0); /* defaults to 0 irq */ | ||
407 | break; | ||
408 | } | ||
409 | } | ||
410 | |||
411 | static void __init | ||
412 | xen_register_ipi(void) | ||
413 | { | ||
414 | #ifdef CONFIG_SMP | ||
415 | register_percpu_irq(IA64_IPI_VECTOR, &xen_ipi_irqaction); | ||
416 | register_percpu_irq(IA64_IPI_RESCHEDULE, &xen_resched_irqaction); | ||
417 | register_percpu_irq(IA64_IPI_LOCAL_TLB_FLUSH, &xen_tlb_irqaction); | ||
418 | #endif | ||
419 | } | ||
420 | |||
421 | static void | ||
422 | xen_resend_irq(unsigned int vector) | ||
423 | { | ||
424 | (void)resend_irq_on_evtchn(vector); | ||
425 | } | ||
426 | |||
427 | const struct pv_irq_ops xen_irq_ops __initdata = { | ||
428 | .register_ipi = xen_register_ipi, | ||
429 | |||
430 | .assign_irq_vector = xen_assign_irq_vector, | ||
431 | .free_irq_vector = xen_free_irq_vector, | ||
432 | .register_percpu_irq = xen_register_percpu_irq, | ||
433 | |||
434 | .resend_irq = xen_resend_irq, | ||
435 | }; | ||
diff --git a/arch/ia64/xen/irq_xen.h b/arch/ia64/xen/irq_xen.h new file mode 100644 index 000000000000..26110f330c87 --- /dev/null +++ b/arch/ia64/xen/irq_xen.h | |||
@@ -0,0 +1,34 @@ | |||
1 | /****************************************************************************** | ||
2 | * arch/ia64/xen/irq_xen.h | ||
3 | * | ||
4 | * Copyright (c) 2008 Isaku Yamahata <yamahata at valinux co jp> | ||
5 | * VA Linux Systems Japan K.K. | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License as published by | ||
9 | * the Free Software Foundation; either version 2 of the License, or | ||
10 | * (at your option) any later version. | ||
11 | * | ||
12 | * This program is distributed in the hope that it will be useful, | ||
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | * GNU General Public License for more details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program; if not, write to the Free Software | ||
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
20 | * | ||
21 | */ | ||
22 | |||
23 | #ifndef IRQ_XEN_H | ||
24 | #define IRQ_XEN_H | ||
25 | |||
26 | extern void (*late_time_init)(void); | ||
27 | extern char xen_event_callback; | ||
28 | void __init xen_init_IRQ(void); | ||
29 | |||
30 | extern const struct pv_irq_ops xen_irq_ops __initdata; | ||
31 | extern void xen_smp_intr_init(void); | ||
32 | extern void xen_send_ipi(int cpu, int vec); | ||
33 | |||
34 | #endif /* IRQ_XEN_H */ | ||
diff --git a/arch/ia64/xen/machvec.c b/arch/ia64/xen/machvec.c new file mode 100644 index 000000000000..4ad588a7c279 --- /dev/null +++ b/arch/ia64/xen/machvec.c | |||
@@ -0,0 +1,4 @@ | |||
1 | #define MACHVEC_PLATFORM_NAME xen | ||
2 | #define MACHVEC_PLATFORM_HEADER <asm/machvec_xen.h> | ||
3 | #include <asm/machvec_init.h> | ||
4 | |||
diff --git a/arch/ia64/xen/suspend.c b/arch/ia64/xen/suspend.c new file mode 100644 index 000000000000..fd66b048c6fa --- /dev/null +++ b/arch/ia64/xen/suspend.c | |||
@@ -0,0 +1,64 @@ | |||
1 | /****************************************************************************** | ||
2 | * arch/ia64/xen/suspend.c | ||
3 | * | ||
4 | * Copyright (c) 2008 Isaku Yamahata <yamahata at valinux co jp> | ||
5 | * VA Linux Systems Japan K.K. | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License as published by | ||
9 | * the Free Software Foundation; either version 2 of the License, or | ||
10 | * (at your option) any later version. | ||
11 | * | ||
12 | * This program is distributed in the hope that it will be useful, | ||
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | * GNU General Public License for more details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program; if not, write to the Free Software | ||
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
20 | * | ||
21 | * suspend/resume | ||
22 | */ | ||
23 | |||
24 | #include <xen/xen-ops.h> | ||
25 | #include <asm/xen/hypervisor.h> | ||
26 | #include "time.h" | ||
27 | |||
28 | void | ||
29 | xen_mm_pin_all(void) | ||
30 | { | ||
31 | /* nothing */ | ||
32 | } | ||
33 | |||
34 | void | ||
35 | xen_mm_unpin_all(void) | ||
36 | { | ||
37 | /* nothing */ | ||
38 | } | ||
39 | |||
40 | void xen_pre_device_suspend(void) | ||
41 | { | ||
42 | /* nothing */ | ||
43 | } | ||
44 | |||
45 | void | ||
46 | xen_pre_suspend() | ||
47 | { | ||
48 | /* nothing */ | ||
49 | } | ||
50 | |||
51 | void | ||
52 | xen_post_suspend(int suspend_cancelled) | ||
53 | { | ||
54 | if (suspend_cancelled) | ||
55 | return; | ||
56 | |||
57 | xen_ia64_enable_opt_feature(); | ||
58 | /* add more if necessary */ | ||
59 | } | ||
60 | |||
61 | void xen_arch_resume(void) | ||
62 | { | ||
63 | xen_timer_resume_on_aps(); | ||
64 | } | ||
diff --git a/arch/ia64/xen/time.c b/arch/ia64/xen/time.c new file mode 100644 index 000000000000..d15a94c330fb --- /dev/null +++ b/arch/ia64/xen/time.c | |||
@@ -0,0 +1,213 @@ | |||
1 | /****************************************************************************** | ||
2 | * arch/ia64/xen/time.c | ||
3 | * | ||
4 | * Copyright (c) 2008 Isaku Yamahata <yamahata at valinux co jp> | ||
5 | * VA Linux Systems Japan K.K. | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License as published by | ||
9 | * the Free Software Foundation; either version 2 of the License, or | ||
10 | * (at your option) any later version. | ||
11 | * | ||
12 | * This program is distributed in the hope that it will be useful, | ||
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | * GNU General Public License for more details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program; if not, write to the Free Software | ||
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
20 | * | ||
21 | */ | ||
22 | |||
23 | #include <linux/delay.h> | ||
24 | #include <linux/kernel_stat.h> | ||
25 | #include <linux/posix-timers.h> | ||
26 | #include <linux/irq.h> | ||
27 | #include <linux/clocksource.h> | ||
28 | |||
29 | #include <asm/timex.h> | ||
30 | |||
31 | #include <asm/xen/hypervisor.h> | ||
32 | |||
33 | #include <xen/interface/vcpu.h> | ||
34 | |||
35 | #include "../kernel/fsyscall_gtod_data.h" | ||
36 | |||
37 | DEFINE_PER_CPU(struct vcpu_runstate_info, runstate); | ||
38 | DEFINE_PER_CPU(unsigned long, processed_stolen_time); | ||
39 | DEFINE_PER_CPU(unsigned long, processed_blocked_time); | ||
40 | |||
41 | /* taken from i386/kernel/time-xen.c */ | ||
42 | static void xen_init_missing_ticks_accounting(int cpu) | ||
43 | { | ||
44 | struct vcpu_register_runstate_memory_area area; | ||
45 | struct vcpu_runstate_info *runstate = &per_cpu(runstate, cpu); | ||
46 | int rc; | ||
47 | |||
48 | memset(runstate, 0, sizeof(*runstate)); | ||
49 | |||
50 | area.addr.v = runstate; | ||
51 | rc = HYPERVISOR_vcpu_op(VCPUOP_register_runstate_memory_area, cpu, | ||
52 | &area); | ||
53 | WARN_ON(rc && rc != -ENOSYS); | ||
54 | |||
55 | per_cpu(processed_blocked_time, cpu) = runstate->time[RUNSTATE_blocked]; | ||
56 | per_cpu(processed_stolen_time, cpu) = runstate->time[RUNSTATE_runnable] | ||
57 | + runstate->time[RUNSTATE_offline]; | ||
58 | } | ||
59 | |||
60 | /* | ||
61 | * Runstate accounting | ||
62 | */ | ||
63 | /* stolen from arch/x86/xen/time.c */ | ||
64 | static void get_runstate_snapshot(struct vcpu_runstate_info *res) | ||
65 | { | ||
66 | u64 state_time; | ||
67 | struct vcpu_runstate_info *state; | ||
68 | |||
69 | BUG_ON(preemptible()); | ||
70 | |||
71 | state = &__get_cpu_var(runstate); | ||
72 | |||
73 | /* | ||
74 | * The runstate info is always updated by the hypervisor on | ||
75 | * the current CPU, so there's no need to use anything | ||
76 | * stronger than a compiler barrier when fetching it. | ||
77 | */ | ||
78 | do { | ||
79 | state_time = state->state_entry_time; | ||
80 | rmb(); | ||
81 | *res = *state; | ||
82 | rmb(); | ||
83 | } while (state->state_entry_time != state_time); | ||
84 | } | ||
85 | |||
86 | #define NS_PER_TICK (1000000000LL/HZ) | ||
87 | |||
88 | static unsigned long | ||
89 | consider_steal_time(unsigned long new_itm) | ||
90 | { | ||
91 | unsigned long stolen, blocked; | ||
92 | unsigned long delta_itm = 0, stolentick = 0; | ||
93 | int cpu = smp_processor_id(); | ||
94 | struct vcpu_runstate_info runstate; | ||
95 | struct task_struct *p = current; | ||
96 | |||
97 | get_runstate_snapshot(&runstate); | ||
98 | |||
99 | /* | ||
100 | * Check for vcpu migration effect | ||
101 | * In this case, itc value is reversed. | ||
102 | * This causes huge stolen value. | ||
103 | * This function just checks and reject this effect. | ||
104 | */ | ||
105 | if (!time_after_eq(runstate.time[RUNSTATE_blocked], | ||
106 | per_cpu(processed_blocked_time, cpu))) | ||
107 | blocked = 0; | ||
108 | |||
109 | if (!time_after_eq(runstate.time[RUNSTATE_runnable] + | ||
110 | runstate.time[RUNSTATE_offline], | ||
111 | per_cpu(processed_stolen_time, cpu))) | ||
112 | stolen = 0; | ||
113 | |||
114 | if (!time_after(delta_itm + new_itm, ia64_get_itc())) | ||
115 | stolentick = ia64_get_itc() - new_itm; | ||
116 | |||
117 | do_div(stolentick, NS_PER_TICK); | ||
118 | stolentick++; | ||
119 | |||
120 | do_div(stolen, NS_PER_TICK); | ||
121 | |||
122 | if (stolen > stolentick) | ||
123 | stolen = stolentick; | ||
124 | |||
125 | stolentick -= stolen; | ||
126 | do_div(blocked, NS_PER_TICK); | ||
127 | |||
128 | if (blocked > stolentick) | ||
129 | blocked = stolentick; | ||
130 | |||
131 | if (stolen > 0 || blocked > 0) { | ||
132 | account_steal_time(NULL, jiffies_to_cputime(stolen)); | ||
133 | account_steal_time(idle_task(cpu), jiffies_to_cputime(blocked)); | ||
134 | run_local_timers(); | ||
135 | |||
136 | if (rcu_pending(cpu)) | ||
137 | rcu_check_callbacks(cpu, user_mode(get_irq_regs())); | ||
138 | |||
139 | scheduler_tick(); | ||
140 | run_posix_cpu_timers(p); | ||
141 | delta_itm += local_cpu_data->itm_delta * (stolen + blocked); | ||
142 | |||
143 | if (cpu == time_keeper_id) { | ||
144 | write_seqlock(&xtime_lock); | ||
145 | do_timer(stolen + blocked); | ||
146 | local_cpu_data->itm_next = delta_itm + new_itm; | ||
147 | write_sequnlock(&xtime_lock); | ||
148 | } else { | ||
149 | local_cpu_data->itm_next = delta_itm + new_itm; | ||
150 | } | ||
151 | per_cpu(processed_stolen_time, cpu) += NS_PER_TICK * stolen; | ||
152 | per_cpu(processed_blocked_time, cpu) += NS_PER_TICK * blocked; | ||
153 | } | ||
154 | return delta_itm; | ||
155 | } | ||
156 | |||
157 | static int xen_do_steal_accounting(unsigned long *new_itm) | ||
158 | { | ||
159 | unsigned long delta_itm; | ||
160 | delta_itm = consider_steal_time(*new_itm); | ||
161 | *new_itm += delta_itm; | ||
162 | if (time_after(*new_itm, ia64_get_itc()) && delta_itm) | ||
163 | return 1; | ||
164 | |||
165 | return 0; | ||
166 | } | ||
167 | |||
168 | static void xen_itc_jitter_data_reset(void) | ||
169 | { | ||
170 | u64 lcycle, ret; | ||
171 | |||
172 | do { | ||
173 | lcycle = itc_jitter_data.itc_lastcycle; | ||
174 | ret = cmpxchg(&itc_jitter_data.itc_lastcycle, lcycle, 0); | ||
175 | } while (unlikely(ret != lcycle)); | ||
176 | } | ||
177 | |||
178 | struct pv_time_ops xen_time_ops __initdata = { | ||
179 | .init_missing_ticks_accounting = xen_init_missing_ticks_accounting, | ||
180 | .do_steal_accounting = xen_do_steal_accounting, | ||
181 | .clocksource_resume = xen_itc_jitter_data_reset, | ||
182 | }; | ||
183 | |||
184 | /* Called after suspend, to resume time. */ | ||
185 | static void xen_local_tick_resume(void) | ||
186 | { | ||
187 | /* Just trigger a tick. */ | ||
188 | ia64_cpu_local_tick(); | ||
189 | touch_softlockup_watchdog(); | ||
190 | } | ||
191 | |||
192 | void | ||
193 | xen_timer_resume(void) | ||
194 | { | ||
195 | unsigned int cpu; | ||
196 | |||
197 | xen_local_tick_resume(); | ||
198 | |||
199 | for_each_online_cpu(cpu) | ||
200 | xen_init_missing_ticks_accounting(cpu); | ||
201 | } | ||
202 | |||
203 | static void ia64_cpu_local_tick_fn(void *unused) | ||
204 | { | ||
205 | xen_local_tick_resume(); | ||
206 | xen_init_missing_ticks_accounting(smp_processor_id()); | ||
207 | } | ||
208 | |||
209 | void | ||
210 | xen_timer_resume_on_aps(void) | ||
211 | { | ||
212 | smp_call_function(&ia64_cpu_local_tick_fn, NULL, 1); | ||
213 | } | ||
diff --git a/arch/ia64/xen/time.h b/arch/ia64/xen/time.h new file mode 100644 index 000000000000..f98d7e1a42f0 --- /dev/null +++ b/arch/ia64/xen/time.h | |||
@@ -0,0 +1,24 @@ | |||
1 | /****************************************************************************** | ||
2 | * arch/ia64/xen/time.h | ||
3 | * | ||
4 | * Copyright (c) 2008 Isaku Yamahata <yamahata at valinux co jp> | ||
5 | * VA Linux Systems Japan K.K. | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License as published by | ||
9 | * the Free Software Foundation; either version 2 of the License, or | ||
10 | * (at your option) any later version. | ||
11 | * | ||
12 | * This program is distributed in the hope that it will be useful, | ||
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | * GNU General Public License for more details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program; if not, write to the Free Software | ||
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
20 | * | ||
21 | */ | ||
22 | |||
23 | extern struct pv_time_ops xen_time_ops __initdata; | ||
24 | void xen_timer_resume_on_aps(void); | ||
diff --git a/arch/ia64/xen/xcom_hcall.c b/arch/ia64/xen/xcom_hcall.c new file mode 100644 index 000000000000..ccaf7431f7c8 --- /dev/null +++ b/arch/ia64/xen/xcom_hcall.c | |||
@@ -0,0 +1,441 @@ | |||
1 | /* | ||
2 | * This program is free software; you can redistribute it and/or modify | ||
3 | * it under the terms of the GNU General Public License as published by | ||
4 | * the Free Software Foundation; either version 2 of the License, or | ||
5 | * (at your option) any later version. | ||
6 | * | ||
7 | * This program is distributed in the hope that it will be useful, | ||
8 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
9 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
10 | * GNU General Public License for more details. | ||
11 | * | ||
12 | * You should have received a copy of the GNU General Public License | ||
13 | * along with this program; if not, write to the Free Software | ||
14 | * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | ||
15 | * | ||
16 | * Tristan Gingold <tristan.gingold@bull.net> | ||
17 | * | ||
18 | * Copyright (c) 2007 | ||
19 | * Isaku Yamahata <yamahata at valinux co jp> | ||
20 | * VA Linux Systems Japan K.K. | ||
21 | * consolidate mini and inline version. | ||
22 | */ | ||
23 | |||
24 | #include <linux/module.h> | ||
25 | #include <xen/interface/xen.h> | ||
26 | #include <xen/interface/memory.h> | ||
27 | #include <xen/interface/grant_table.h> | ||
28 | #include <xen/interface/callback.h> | ||
29 | #include <xen/interface/vcpu.h> | ||
30 | #include <asm/xen/hypervisor.h> | ||
31 | #include <asm/xen/xencomm.h> | ||
32 | |||
33 | /* Xencomm notes: | ||
34 | * This file defines hypercalls to be used by xencomm. The hypercalls simply | ||
35 | * create inlines or mini descriptors for pointers and then call the raw arch | ||
36 | * hypercall xencomm_arch_hypercall_XXX | ||
37 | * | ||
38 | * If the arch wants to directly use these hypercalls, simply define macros | ||
39 | * in asm/xen/hypercall.h, eg: | ||
40 | * #define HYPERVISOR_sched_op xencomm_hypercall_sched_op | ||
41 | * | ||
42 | * The arch may also define HYPERVISOR_xxx as a function and do more operations | ||
43 | * before/after doing the hypercall. | ||
44 | * | ||
45 | * Note: because only inline or mini descriptors are created these functions | ||
46 | * must only be called with in kernel memory parameters. | ||
47 | */ | ||
48 | |||
49 | int | ||
50 | xencomm_hypercall_console_io(int cmd, int count, char *str) | ||
51 | { | ||
52 | /* xen early printk uses console io hypercall before | ||
53 | * xencomm initialization. In that case, we just ignore it. | ||
54 | */ | ||
55 | if (!xencomm_is_initialized()) | ||
56 | return 0; | ||
57 | |||
58 | return xencomm_arch_hypercall_console_io | ||
59 | (cmd, count, xencomm_map_no_alloc(str, count)); | ||
60 | } | ||
61 | EXPORT_SYMBOL_GPL(xencomm_hypercall_console_io); | ||
62 | |||
63 | int | ||
64 | xencomm_hypercall_event_channel_op(int cmd, void *op) | ||
65 | { | ||
66 | struct xencomm_handle *desc; | ||
67 | desc = xencomm_map_no_alloc(op, sizeof(struct evtchn_op)); | ||
68 | if (desc == NULL) | ||
69 | return -EINVAL; | ||
70 | |||
71 | return xencomm_arch_hypercall_event_channel_op(cmd, desc); | ||
72 | } | ||
73 | EXPORT_SYMBOL_GPL(xencomm_hypercall_event_channel_op); | ||
74 | |||
75 | int | ||
76 | xencomm_hypercall_xen_version(int cmd, void *arg) | ||
77 | { | ||
78 | struct xencomm_handle *desc; | ||
79 | unsigned int argsize; | ||
80 | |||
81 | switch (cmd) { | ||
82 | case XENVER_version: | ||
83 | /* do not actually pass an argument */ | ||
84 | return xencomm_arch_hypercall_xen_version(cmd, 0); | ||
85 | case XENVER_extraversion: | ||
86 | argsize = sizeof(struct xen_extraversion); | ||
87 | break; | ||
88 | case XENVER_compile_info: | ||
89 | argsize = sizeof(struct xen_compile_info); | ||
90 | break; | ||
91 | case XENVER_capabilities: | ||
92 | argsize = sizeof(struct xen_capabilities_info); | ||
93 | break; | ||
94 | case XENVER_changeset: | ||
95 | argsize = sizeof(struct xen_changeset_info); | ||
96 | break; | ||
97 | case XENVER_platform_parameters: | ||
98 | argsize = sizeof(struct xen_platform_parameters); | ||
99 | break; | ||
100 | case XENVER_get_features: | ||
101 | argsize = (arg == NULL) ? 0 : sizeof(struct xen_feature_info); | ||
102 | break; | ||
103 | |||
104 | default: | ||
105 | printk(KERN_DEBUG | ||
106 | "%s: unknown version op %d\n", __func__, cmd); | ||
107 | return -ENOSYS; | ||
108 | } | ||
109 | |||
110 | desc = xencomm_map_no_alloc(arg, argsize); | ||
111 | if (desc == NULL) | ||
112 | return -EINVAL; | ||
113 | |||
114 | return xencomm_arch_hypercall_xen_version(cmd, desc); | ||
115 | } | ||
116 | EXPORT_SYMBOL_GPL(xencomm_hypercall_xen_version); | ||
117 | |||
118 | int | ||
119 | xencomm_hypercall_physdev_op(int cmd, void *op) | ||
120 | { | ||
121 | unsigned int argsize; | ||
122 | |||
123 | switch (cmd) { | ||
124 | case PHYSDEVOP_apic_read: | ||
125 | case PHYSDEVOP_apic_write: | ||
126 | argsize = sizeof(struct physdev_apic); | ||
127 | break; | ||
128 | case PHYSDEVOP_alloc_irq_vector: | ||
129 | case PHYSDEVOP_free_irq_vector: | ||
130 | argsize = sizeof(struct physdev_irq); | ||
131 | break; | ||
132 | case PHYSDEVOP_irq_status_query: | ||
133 | argsize = sizeof(struct physdev_irq_status_query); | ||
134 | break; | ||
135 | |||
136 | default: | ||
137 | printk(KERN_DEBUG | ||
138 | "%s: unknown physdev op %d\n", __func__, cmd); | ||
139 | return -ENOSYS; | ||
140 | } | ||
141 | |||
142 | return xencomm_arch_hypercall_physdev_op | ||
143 | (cmd, xencomm_map_no_alloc(op, argsize)); | ||
144 | } | ||
145 | |||
146 | static int | ||
147 | xencommize_grant_table_op(struct xencomm_mini **xc_area, | ||
148 | unsigned int cmd, void *op, unsigned int count, | ||
149 | struct xencomm_handle **desc) | ||
150 | { | ||
151 | struct xencomm_handle *desc1; | ||
152 | unsigned int argsize; | ||
153 | |||
154 | switch (cmd) { | ||
155 | case GNTTABOP_map_grant_ref: | ||
156 | argsize = sizeof(struct gnttab_map_grant_ref); | ||
157 | break; | ||
158 | case GNTTABOP_unmap_grant_ref: | ||
159 | argsize = sizeof(struct gnttab_unmap_grant_ref); | ||
160 | break; | ||
161 | case GNTTABOP_setup_table: | ||
162 | { | ||
163 | struct gnttab_setup_table *setup = op; | ||
164 | |||
165 | argsize = sizeof(*setup); | ||
166 | |||
167 | if (count != 1) | ||
168 | return -EINVAL; | ||
169 | desc1 = __xencomm_map_no_alloc | ||
170 | (xen_guest_handle(setup->frame_list), | ||
171 | setup->nr_frames * | ||
172 | sizeof(*xen_guest_handle(setup->frame_list)), | ||
173 | *xc_area); | ||
174 | if (desc1 == NULL) | ||
175 | return -EINVAL; | ||
176 | (*xc_area)++; | ||
177 | set_xen_guest_handle(setup->frame_list, (void *)desc1); | ||
178 | break; | ||
179 | } | ||
180 | case GNTTABOP_dump_table: | ||
181 | argsize = sizeof(struct gnttab_dump_table); | ||
182 | break; | ||
183 | case GNTTABOP_transfer: | ||
184 | argsize = sizeof(struct gnttab_transfer); | ||
185 | break; | ||
186 | case GNTTABOP_copy: | ||
187 | argsize = sizeof(struct gnttab_copy); | ||
188 | break; | ||
189 | case GNTTABOP_query_size: | ||
190 | argsize = sizeof(struct gnttab_query_size); | ||
191 | break; | ||
192 | default: | ||
193 | printk(KERN_DEBUG "%s: unknown hypercall grant table op %d\n", | ||
194 | __func__, cmd); | ||
195 | BUG(); | ||
196 | } | ||
197 | |||
198 | *desc = __xencomm_map_no_alloc(op, count * argsize, *xc_area); | ||
199 | if (*desc == NULL) | ||
200 | return -EINVAL; | ||
201 | (*xc_area)++; | ||
202 | |||
203 | return 0; | ||
204 | } | ||
205 | |||
206 | int | ||
207 | xencomm_hypercall_grant_table_op(unsigned int cmd, void *op, | ||
208 | unsigned int count) | ||
209 | { | ||
210 | int rc; | ||
211 | struct xencomm_handle *desc; | ||
212 | XENCOMM_MINI_ALIGNED(xc_area, 2); | ||
213 | |||
214 | rc = xencommize_grant_table_op(&xc_area, cmd, op, count, &desc); | ||
215 | if (rc) | ||
216 | return rc; | ||
217 | |||
218 | return xencomm_arch_hypercall_grant_table_op(cmd, desc, count); | ||
219 | } | ||
220 | EXPORT_SYMBOL_GPL(xencomm_hypercall_grant_table_op); | ||
221 | |||
222 | int | ||
223 | xencomm_hypercall_sched_op(int cmd, void *arg) | ||
224 | { | ||
225 | struct xencomm_handle *desc; | ||
226 | unsigned int argsize; | ||
227 | |||
228 | switch (cmd) { | ||
229 | case SCHEDOP_yield: | ||
230 | case SCHEDOP_block: | ||
231 | argsize = 0; | ||
232 | break; | ||
233 | case SCHEDOP_shutdown: | ||
234 | argsize = sizeof(struct sched_shutdown); | ||
235 | break; | ||
236 | case SCHEDOP_poll: | ||
237 | { | ||
238 | struct sched_poll *poll = arg; | ||
239 | struct xencomm_handle *ports; | ||
240 | |||
241 | argsize = sizeof(struct sched_poll); | ||
242 | ports = xencomm_map_no_alloc(xen_guest_handle(poll->ports), | ||
243 | sizeof(*xen_guest_handle(poll->ports))); | ||
244 | |||
245 | set_xen_guest_handle(poll->ports, (void *)ports); | ||
246 | break; | ||
247 | } | ||
248 | default: | ||
249 | printk(KERN_DEBUG "%s: unknown sched op %d\n", __func__, cmd); | ||
250 | return -ENOSYS; | ||
251 | } | ||
252 | |||
253 | desc = xencomm_map_no_alloc(arg, argsize); | ||
254 | if (desc == NULL) | ||
255 | return -EINVAL; | ||
256 | |||
257 | return xencomm_arch_hypercall_sched_op(cmd, desc); | ||
258 | } | ||
259 | EXPORT_SYMBOL_GPL(xencomm_hypercall_sched_op); | ||
260 | |||
261 | int | ||
262 | xencomm_hypercall_multicall(void *call_list, int nr_calls) | ||
263 | { | ||
264 | int rc; | ||
265 | int i; | ||
266 | struct multicall_entry *mce; | ||
267 | struct xencomm_handle *desc; | ||
268 | XENCOMM_MINI_ALIGNED(xc_area, nr_calls * 2); | ||
269 | |||
270 | for (i = 0; i < nr_calls; i++) { | ||
271 | mce = (struct multicall_entry *)call_list + i; | ||
272 | |||
273 | switch (mce->op) { | ||
274 | case __HYPERVISOR_update_va_mapping: | ||
275 | case __HYPERVISOR_mmu_update: | ||
276 | /* No-op on ia64. */ | ||
277 | break; | ||
278 | case __HYPERVISOR_grant_table_op: | ||
279 | rc = xencommize_grant_table_op | ||
280 | (&xc_area, | ||
281 | mce->args[0], (void *)mce->args[1], | ||
282 | mce->args[2], &desc); | ||
283 | if (rc) | ||
284 | return rc; | ||
285 | mce->args[1] = (unsigned long)desc; | ||
286 | break; | ||
287 | case __HYPERVISOR_memory_op: | ||
288 | default: | ||
289 | printk(KERN_DEBUG | ||
290 | "%s: unhandled multicall op entry op %lu\n", | ||
291 | __func__, mce->op); | ||
292 | return -ENOSYS; | ||
293 | } | ||
294 | } | ||
295 | |||
296 | desc = xencomm_map_no_alloc(call_list, | ||
297 | nr_calls * sizeof(struct multicall_entry)); | ||
298 | if (desc == NULL) | ||
299 | return -EINVAL; | ||
300 | |||
301 | return xencomm_arch_hypercall_multicall(desc, nr_calls); | ||
302 | } | ||
303 | EXPORT_SYMBOL_GPL(xencomm_hypercall_multicall); | ||
304 | |||
305 | int | ||
306 | xencomm_hypercall_callback_op(int cmd, void *arg) | ||
307 | { | ||
308 | unsigned int argsize; | ||
309 | switch (cmd) { | ||
310 | case CALLBACKOP_register: | ||
311 | argsize = sizeof(struct callback_register); | ||
312 | break; | ||
313 | case CALLBACKOP_unregister: | ||
314 | argsize = sizeof(struct callback_unregister); | ||
315 | break; | ||
316 | default: | ||
317 | printk(KERN_DEBUG | ||
318 | "%s: unknown callback op %d\n", __func__, cmd); | ||
319 | return -ENOSYS; | ||
320 | } | ||
321 | |||
322 | return xencomm_arch_hypercall_callback_op | ||
323 | (cmd, xencomm_map_no_alloc(arg, argsize)); | ||
324 | } | ||
325 | |||
326 | static int | ||
327 | xencommize_memory_reservation(struct xencomm_mini *xc_area, | ||
328 | struct xen_memory_reservation *mop) | ||
329 | { | ||
330 | struct xencomm_handle *desc; | ||
331 | |||
332 | desc = __xencomm_map_no_alloc(xen_guest_handle(mop->extent_start), | ||
333 | mop->nr_extents * | ||
334 | sizeof(*xen_guest_handle(mop->extent_start)), | ||
335 | xc_area); | ||
336 | if (desc == NULL) | ||
337 | return -EINVAL; | ||
338 | |||
339 | set_xen_guest_handle(mop->extent_start, (void *)desc); | ||
340 | return 0; | ||
341 | } | ||
342 | |||
343 | int | ||
344 | xencomm_hypercall_memory_op(unsigned int cmd, void *arg) | ||
345 | { | ||
346 | GUEST_HANDLE(xen_pfn_t) extent_start_va[2] = { {NULL}, {NULL} }; | ||
347 | struct xen_memory_reservation *xmr = NULL; | ||
348 | int rc; | ||
349 | struct xencomm_handle *desc; | ||
350 | unsigned int argsize; | ||
351 | XENCOMM_MINI_ALIGNED(xc_area, 2); | ||
352 | |||
353 | switch (cmd) { | ||
354 | case XENMEM_increase_reservation: | ||
355 | case XENMEM_decrease_reservation: | ||
356 | case XENMEM_populate_physmap: | ||
357 | xmr = (struct xen_memory_reservation *)arg; | ||
358 | set_xen_guest_handle(extent_start_va[0], | ||
359 | xen_guest_handle(xmr->extent_start)); | ||
360 | |||
361 | argsize = sizeof(*xmr); | ||
362 | rc = xencommize_memory_reservation(xc_area, xmr); | ||
363 | if (rc) | ||
364 | return rc; | ||
365 | xc_area++; | ||
366 | break; | ||
367 | |||
368 | case XENMEM_maximum_ram_page: | ||
369 | argsize = 0; | ||
370 | break; | ||
371 | |||
372 | case XENMEM_add_to_physmap: | ||
373 | argsize = sizeof(struct xen_add_to_physmap); | ||
374 | break; | ||
375 | |||
376 | default: | ||
377 | printk(KERN_DEBUG "%s: unknown memory op %d\n", __func__, cmd); | ||
378 | return -ENOSYS; | ||
379 | } | ||
380 | |||
381 | desc = xencomm_map_no_alloc(arg, argsize); | ||
382 | if (desc == NULL) | ||
383 | return -EINVAL; | ||
384 | |||
385 | rc = xencomm_arch_hypercall_memory_op(cmd, desc); | ||
386 | |||
387 | switch (cmd) { | ||
388 | case XENMEM_increase_reservation: | ||
389 | case XENMEM_decrease_reservation: | ||
390 | case XENMEM_populate_physmap: | ||
391 | set_xen_guest_handle(xmr->extent_start, | ||
392 | xen_guest_handle(extent_start_va[0])); | ||
393 | break; | ||
394 | } | ||
395 | |||
396 | return rc; | ||
397 | } | ||
398 | EXPORT_SYMBOL_GPL(xencomm_hypercall_memory_op); | ||
399 | |||
400 | int | ||
401 | xencomm_hypercall_suspend(unsigned long srec) | ||
402 | { | ||
403 | struct sched_shutdown arg; | ||
404 | |||
405 | arg.reason = SHUTDOWN_suspend; | ||
406 | |||
407 | return xencomm_arch_hypercall_sched_op( | ||
408 | SCHEDOP_shutdown, xencomm_map_no_alloc(&arg, sizeof(arg))); | ||
409 | } | ||
410 | |||
411 | long | ||
412 | xencomm_hypercall_vcpu_op(int cmd, int cpu, void *arg) | ||
413 | { | ||
414 | unsigned int argsize; | ||
415 | switch (cmd) { | ||
416 | case VCPUOP_register_runstate_memory_area: { | ||
417 | struct vcpu_register_runstate_memory_area *area = | ||
418 | (struct vcpu_register_runstate_memory_area *)arg; | ||
419 | argsize = sizeof(*arg); | ||
420 | set_xen_guest_handle(area->addr.h, | ||
421 | (void *)xencomm_map_no_alloc(area->addr.v, | ||
422 | sizeof(area->addr.v))); | ||
423 | break; | ||
424 | } | ||
425 | |||
426 | default: | ||
427 | printk(KERN_DEBUG "%s: unknown vcpu op %d\n", __func__, cmd); | ||
428 | return -ENOSYS; | ||
429 | } | ||
430 | |||
431 | return xencomm_arch_hypercall_vcpu_op(cmd, cpu, | ||
432 | xencomm_map_no_alloc(arg, argsize)); | ||
433 | } | ||
434 | |||
435 | long | ||
436 | xencomm_hypercall_opt_feature(void *arg) | ||
437 | { | ||
438 | return xencomm_arch_hypercall_opt_feature( | ||
439 | xencomm_map_no_alloc(arg, | ||
440 | sizeof(struct xen_ia64_opt_feature))); | ||
441 | } | ||
diff --git a/arch/ia64/xen/xen_pv_ops.c b/arch/ia64/xen/xen_pv_ops.c new file mode 100644 index 000000000000..04cd12350455 --- /dev/null +++ b/arch/ia64/xen/xen_pv_ops.c | |||
@@ -0,0 +1,364 @@ | |||
1 | /****************************************************************************** | ||
2 | * arch/ia64/xen/xen_pv_ops.c | ||
3 | * | ||
4 | * Copyright (c) 2008 Isaku Yamahata <yamahata at valinux co jp> | ||
5 | * VA Linux Systems Japan K.K. | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License as published by | ||
9 | * the Free Software Foundation; either version 2 of the License, or | ||
10 | * (at your option) any later version. | ||
11 | * | ||
12 | * This program is distributed in the hope that it will be useful, | ||
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | * GNU General Public License for more details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program; if not, write to the Free Software | ||
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
20 | * | ||
21 | */ | ||
22 | |||
23 | #include <linux/console.h> | ||
24 | #include <linux/irq.h> | ||
25 | #include <linux/kernel.h> | ||
26 | #include <linux/pm.h> | ||
27 | |||
28 | #include <asm/xen/hypervisor.h> | ||
29 | #include <asm/xen/xencomm.h> | ||
30 | #include <asm/xen/privop.h> | ||
31 | |||
32 | #include "irq_xen.h" | ||
33 | #include "time.h" | ||
34 | |||
35 | /*************************************************************************** | ||
36 | * general info | ||
37 | */ | ||
38 | static struct pv_info xen_info __initdata = { | ||
39 | .kernel_rpl = 2, /* or 1: determin at runtime */ | ||
40 | .paravirt_enabled = 1, | ||
41 | .name = "Xen/ia64", | ||
42 | }; | ||
43 | |||
44 | #define IA64_RSC_PL_SHIFT 2 | ||
45 | #define IA64_RSC_PL_BIT_SIZE 2 | ||
46 | #define IA64_RSC_PL_MASK \ | ||
47 | (((1UL << IA64_RSC_PL_BIT_SIZE) - 1) << IA64_RSC_PL_SHIFT) | ||
48 | |||
49 | static void __init | ||
50 | xen_info_init(void) | ||
51 | { | ||
52 | /* Xenified Linux/ia64 may run on pl = 1 or 2. | ||
53 | * determin at run time. */ | ||
54 | unsigned long rsc = ia64_getreg(_IA64_REG_AR_RSC); | ||
55 | unsigned int rpl = (rsc & IA64_RSC_PL_MASK) >> IA64_RSC_PL_SHIFT; | ||
56 | xen_info.kernel_rpl = rpl; | ||
57 | } | ||
58 | |||
59 | /*************************************************************************** | ||
60 | * pv_init_ops | ||
61 | * initialization hooks. | ||
62 | */ | ||
63 | |||
64 | static void | ||
65 | xen_panic_hypercall(struct unw_frame_info *info, void *arg) | ||
66 | { | ||
67 | current->thread.ksp = (__u64)info->sw - 16; | ||
68 | HYPERVISOR_shutdown(SHUTDOWN_crash); | ||
69 | /* we're never actually going to get here... */ | ||
70 | } | ||
71 | |||
72 | static int | ||
73 | xen_panic_event(struct notifier_block *this, unsigned long event, void *ptr) | ||
74 | { | ||
75 | unw_init_running(xen_panic_hypercall, NULL); | ||
76 | /* we're never actually going to get here... */ | ||
77 | return NOTIFY_DONE; | ||
78 | } | ||
79 | |||
80 | static struct notifier_block xen_panic_block = { | ||
81 | xen_panic_event, NULL, 0 /* try to go last */ | ||
82 | }; | ||
83 | |||
84 | static void xen_pm_power_off(void) | ||
85 | { | ||
86 | local_irq_disable(); | ||
87 | HYPERVISOR_shutdown(SHUTDOWN_poweroff); | ||
88 | } | ||
89 | |||
90 | static void __init | ||
91 | xen_banner(void) | ||
92 | { | ||
93 | printk(KERN_INFO | ||
94 | "Running on Xen! pl = %d start_info_pfn=0x%lx nr_pages=%ld " | ||
95 | "flags=0x%x\n", | ||
96 | xen_info.kernel_rpl, | ||
97 | HYPERVISOR_shared_info->arch.start_info_pfn, | ||
98 | xen_start_info->nr_pages, xen_start_info->flags); | ||
99 | } | ||
100 | |||
101 | static int __init | ||
102 | xen_reserve_memory(struct rsvd_region *region) | ||
103 | { | ||
104 | region->start = (unsigned long)__va( | ||
105 | (HYPERVISOR_shared_info->arch.start_info_pfn << PAGE_SHIFT)); | ||
106 | region->end = region->start + PAGE_SIZE; | ||
107 | return 1; | ||
108 | } | ||
109 | |||
110 | static void __init | ||
111 | xen_arch_setup_early(void) | ||
112 | { | ||
113 | struct shared_info *s; | ||
114 | BUG_ON(!xen_pv_domain()); | ||
115 | |||
116 | s = HYPERVISOR_shared_info; | ||
117 | xen_start_info = __va(s->arch.start_info_pfn << PAGE_SHIFT); | ||
118 | |||
119 | /* Must be done before any hypercall. */ | ||
120 | xencomm_initialize(); | ||
121 | |||
122 | xen_setup_features(); | ||
123 | /* Register a call for panic conditions. */ | ||
124 | atomic_notifier_chain_register(&panic_notifier_list, | ||
125 | &xen_panic_block); | ||
126 | pm_power_off = xen_pm_power_off; | ||
127 | |||
128 | xen_ia64_enable_opt_feature(); | ||
129 | } | ||
130 | |||
131 | static void __init | ||
132 | xen_arch_setup_console(char **cmdline_p) | ||
133 | { | ||
134 | add_preferred_console("xenboot", 0, NULL); | ||
135 | add_preferred_console("tty", 0, NULL); | ||
136 | /* use hvc_xen */ | ||
137 | add_preferred_console("hvc", 0, NULL); | ||
138 | |||
139 | #if !defined(CONFIG_VT) || !defined(CONFIG_DUMMY_CONSOLE) | ||
140 | conswitchp = NULL; | ||
141 | #endif | ||
142 | } | ||
143 | |||
144 | static int __init | ||
145 | xen_arch_setup_nomca(void) | ||
146 | { | ||
147 | return 1; | ||
148 | } | ||
149 | |||
150 | static void __init | ||
151 | xen_post_smp_prepare_boot_cpu(void) | ||
152 | { | ||
153 | xen_setup_vcpu_info_placement(); | ||
154 | } | ||
155 | |||
156 | static const struct pv_init_ops xen_init_ops __initdata = { | ||
157 | .banner = xen_banner, | ||
158 | |||
159 | .reserve_memory = xen_reserve_memory, | ||
160 | |||
161 | .arch_setup_early = xen_arch_setup_early, | ||
162 | .arch_setup_console = xen_arch_setup_console, | ||
163 | .arch_setup_nomca = xen_arch_setup_nomca, | ||
164 | |||
165 | .post_smp_prepare_boot_cpu = xen_post_smp_prepare_boot_cpu, | ||
166 | }; | ||
167 | |||
168 | /*************************************************************************** | ||
169 | * pv_cpu_ops | ||
170 | * intrinsics hooks. | ||
171 | */ | ||
172 | |||
173 | static void xen_setreg(int regnum, unsigned long val) | ||
174 | { | ||
175 | switch (regnum) { | ||
176 | case _IA64_REG_AR_KR0 ... _IA64_REG_AR_KR7: | ||
177 | xen_set_kr(regnum - _IA64_REG_AR_KR0, val); | ||
178 | break; | ||
179 | #ifdef CONFIG_IA32_SUPPORT | ||
180 | case _IA64_REG_AR_EFLAG: | ||
181 | xen_set_eflag(val); | ||
182 | break; | ||
183 | #endif | ||
184 | case _IA64_REG_CR_TPR: | ||
185 | xen_set_tpr(val); | ||
186 | break; | ||
187 | case _IA64_REG_CR_ITM: | ||
188 | xen_set_itm(val); | ||
189 | break; | ||
190 | case _IA64_REG_CR_EOI: | ||
191 | xen_eoi(val); | ||
192 | break; | ||
193 | default: | ||
194 | ia64_native_setreg_func(regnum, val); | ||
195 | break; | ||
196 | } | ||
197 | } | ||
198 | |||
199 | static unsigned long xen_getreg(int regnum) | ||
200 | { | ||
201 | unsigned long res; | ||
202 | |||
203 | switch (regnum) { | ||
204 | case _IA64_REG_PSR: | ||
205 | res = xen_get_psr(); | ||
206 | break; | ||
207 | #ifdef CONFIG_IA32_SUPPORT | ||
208 | case _IA64_REG_AR_EFLAG: | ||
209 | res = xen_get_eflag(); | ||
210 | break; | ||
211 | #endif | ||
212 | case _IA64_REG_CR_IVR: | ||
213 | res = xen_get_ivr(); | ||
214 | break; | ||
215 | case _IA64_REG_CR_TPR: | ||
216 | res = xen_get_tpr(); | ||
217 | break; | ||
218 | default: | ||
219 | res = ia64_native_getreg_func(regnum); | ||
220 | break; | ||
221 | } | ||
222 | return res; | ||
223 | } | ||
224 | |||
225 | /* turning on interrupts is a bit more complicated.. write to the | ||
226 | * memory-mapped virtual psr.i bit first (to avoid race condition), | ||
227 | * then if any interrupts were pending, we have to execute a hyperprivop | ||
228 | * to ensure the pending interrupt gets delivered; else we're done! */ | ||
229 | static void | ||
230 | xen_ssm_i(void) | ||
231 | { | ||
232 | int old = xen_get_virtual_psr_i(); | ||
233 | xen_set_virtual_psr_i(1); | ||
234 | barrier(); | ||
235 | if (!old && xen_get_virtual_pend()) | ||
236 | xen_hyper_ssm_i(); | ||
237 | } | ||
238 | |||
239 | /* turning off interrupts can be paravirtualized simply by writing | ||
240 | * to a memory-mapped virtual psr.i bit (implemented as a 16-bit bool) */ | ||
241 | static void | ||
242 | xen_rsm_i(void) | ||
243 | { | ||
244 | xen_set_virtual_psr_i(0); | ||
245 | barrier(); | ||
246 | } | ||
247 | |||
248 | static unsigned long | ||
249 | xen_get_psr_i(void) | ||
250 | { | ||
251 | return xen_get_virtual_psr_i() ? IA64_PSR_I : 0; | ||
252 | } | ||
253 | |||
254 | static void | ||
255 | xen_intrin_local_irq_restore(unsigned long mask) | ||
256 | { | ||
257 | if (mask & IA64_PSR_I) | ||
258 | xen_ssm_i(); | ||
259 | else | ||
260 | xen_rsm_i(); | ||
261 | } | ||
262 | |||
263 | static const struct pv_cpu_ops xen_cpu_ops __initdata = { | ||
264 | .fc = xen_fc, | ||
265 | .thash = xen_thash, | ||
266 | .get_cpuid = xen_get_cpuid, | ||
267 | .get_pmd = xen_get_pmd, | ||
268 | .getreg = xen_getreg, | ||
269 | .setreg = xen_setreg, | ||
270 | .ptcga = xen_ptcga, | ||
271 | .get_rr = xen_get_rr, | ||
272 | .set_rr = xen_set_rr, | ||
273 | .set_rr0_to_rr4 = xen_set_rr0_to_rr4, | ||
274 | .ssm_i = xen_ssm_i, | ||
275 | .rsm_i = xen_rsm_i, | ||
276 | .get_psr_i = xen_get_psr_i, | ||
277 | .intrin_local_irq_restore | ||
278 | = xen_intrin_local_irq_restore, | ||
279 | }; | ||
280 | |||
281 | /****************************************************************************** | ||
282 | * replacement of hand written assembly codes. | ||
283 | */ | ||
284 | |||
285 | extern char xen_switch_to; | ||
286 | extern char xen_leave_syscall; | ||
287 | extern char xen_work_processed_syscall; | ||
288 | extern char xen_leave_kernel; | ||
289 | |||
290 | const struct pv_cpu_asm_switch xen_cpu_asm_switch = { | ||
291 | .switch_to = (unsigned long)&xen_switch_to, | ||
292 | .leave_syscall = (unsigned long)&xen_leave_syscall, | ||
293 | .work_processed_syscall = (unsigned long)&xen_work_processed_syscall, | ||
294 | .leave_kernel = (unsigned long)&xen_leave_kernel, | ||
295 | }; | ||
296 | |||
297 | /*************************************************************************** | ||
298 | * pv_iosapic_ops | ||
299 | * iosapic read/write hooks. | ||
300 | */ | ||
301 | static void | ||
302 | xen_pcat_compat_init(void) | ||
303 | { | ||
304 | /* nothing */ | ||
305 | } | ||
306 | |||
307 | static struct irq_chip* | ||
308 | xen_iosapic_get_irq_chip(unsigned long trigger) | ||
309 | { | ||
310 | return NULL; | ||
311 | } | ||
312 | |||
313 | static unsigned int | ||
314 | xen_iosapic_read(char __iomem *iosapic, unsigned int reg) | ||
315 | { | ||
316 | struct physdev_apic apic_op; | ||
317 | int ret; | ||
318 | |||
319 | apic_op.apic_physbase = (unsigned long)iosapic - | ||
320 | __IA64_UNCACHED_OFFSET; | ||
321 | apic_op.reg = reg; | ||
322 | ret = HYPERVISOR_physdev_op(PHYSDEVOP_apic_read, &apic_op); | ||
323 | if (ret) | ||
324 | return ret; | ||
325 | return apic_op.value; | ||
326 | } | ||
327 | |||
328 | static void | ||
329 | xen_iosapic_write(char __iomem *iosapic, unsigned int reg, u32 val) | ||
330 | { | ||
331 | struct physdev_apic apic_op; | ||
332 | |||
333 | apic_op.apic_physbase = (unsigned long)iosapic - | ||
334 | __IA64_UNCACHED_OFFSET; | ||
335 | apic_op.reg = reg; | ||
336 | apic_op.value = val; | ||
337 | HYPERVISOR_physdev_op(PHYSDEVOP_apic_write, &apic_op); | ||
338 | } | ||
339 | |||
340 | static const struct pv_iosapic_ops xen_iosapic_ops __initdata = { | ||
341 | .pcat_compat_init = xen_pcat_compat_init, | ||
342 | .__get_irq_chip = xen_iosapic_get_irq_chip, | ||
343 | |||
344 | .__read = xen_iosapic_read, | ||
345 | .__write = xen_iosapic_write, | ||
346 | }; | ||
347 | |||
348 | /*************************************************************************** | ||
349 | * pv_ops initialization | ||
350 | */ | ||
351 | |||
352 | void __init | ||
353 | xen_setup_pv_ops(void) | ||
354 | { | ||
355 | xen_info_init(); | ||
356 | pv_info = xen_info; | ||
357 | pv_init_ops = xen_init_ops; | ||
358 | pv_cpu_ops = xen_cpu_ops; | ||
359 | pv_iosapic_ops = xen_iosapic_ops; | ||
360 | pv_irq_ops = xen_irq_ops; | ||
361 | pv_time_ops = xen_time_ops; | ||
362 | |||
363 | paravirt_cpu_asm_init(&xen_cpu_asm_switch); | ||
364 | } | ||
diff --git a/arch/ia64/xen/xencomm.c b/arch/ia64/xen/xencomm.c new file mode 100644 index 000000000000..1f5d7ac82e97 --- /dev/null +++ b/arch/ia64/xen/xencomm.c | |||
@@ -0,0 +1,105 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2006 Hollis Blanchard <hollisb@us.ibm.com>, IBM Corporation | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation; either version 2 of the License, or | ||
7 | * (at your option) any later version. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
17 | */ | ||
18 | |||
19 | #include <linux/mm.h> | ||
20 | |||
21 | static unsigned long kernel_virtual_offset; | ||
22 | static int is_xencomm_initialized; | ||
23 | |||
24 | /* for xen early printk. It uses console io hypercall which uses xencomm. | ||
25 | * However early printk may use it before xencomm initialization. | ||
26 | */ | ||
27 | int | ||
28 | xencomm_is_initialized(void) | ||
29 | { | ||
30 | return is_xencomm_initialized; | ||
31 | } | ||
32 | |||
33 | void | ||
34 | xencomm_initialize(void) | ||
35 | { | ||
36 | kernel_virtual_offset = KERNEL_START - ia64_tpa(KERNEL_START); | ||
37 | is_xencomm_initialized = 1; | ||
38 | } | ||
39 | |||
40 | /* Translate virtual address to physical address. */ | ||
41 | unsigned long | ||
42 | xencomm_vtop(unsigned long vaddr) | ||
43 | { | ||
44 | struct page *page; | ||
45 | struct vm_area_struct *vma; | ||
46 | |||
47 | if (vaddr == 0) | ||
48 | return 0UL; | ||
49 | |||
50 | if (REGION_NUMBER(vaddr) == 5) { | ||
51 | pgd_t *pgd; | ||
52 | pud_t *pud; | ||
53 | pmd_t *pmd; | ||
54 | pte_t *ptep; | ||
55 | |||
56 | /* On ia64, TASK_SIZE refers to current. It is not initialized | ||
57 | during boot. | ||
58 | Furthermore the kernel is relocatable and __pa() doesn't | ||
59 | work on addresses. */ | ||
60 | if (vaddr >= KERNEL_START | ||
61 | && vaddr < (KERNEL_START + KERNEL_TR_PAGE_SIZE)) | ||
62 | return vaddr - kernel_virtual_offset; | ||
63 | |||
64 | /* In kernel area -- virtually mapped. */ | ||
65 | pgd = pgd_offset_k(vaddr); | ||
66 | if (pgd_none(*pgd) || pgd_bad(*pgd)) | ||
67 | return ~0UL; | ||
68 | |||
69 | pud = pud_offset(pgd, vaddr); | ||
70 | if (pud_none(*pud) || pud_bad(*pud)) | ||
71 | return ~0UL; | ||
72 | |||
73 | pmd = pmd_offset(pud, vaddr); | ||
74 | if (pmd_none(*pmd) || pmd_bad(*pmd)) | ||
75 | return ~0UL; | ||
76 | |||
77 | ptep = pte_offset_kernel(pmd, vaddr); | ||
78 | if (!ptep) | ||
79 | return ~0UL; | ||
80 | |||
81 | return (pte_val(*ptep) & _PFN_MASK) | (vaddr & ~PAGE_MASK); | ||
82 | } | ||
83 | |||
84 | if (vaddr > TASK_SIZE) { | ||
85 | /* percpu variables */ | ||
86 | if (REGION_NUMBER(vaddr) == 7 && | ||
87 | REGION_OFFSET(vaddr) >= (1ULL << IA64_MAX_PHYS_BITS)) | ||
88 | ia64_tpa(vaddr); | ||
89 | |||
90 | /* kernel address */ | ||
91 | return __pa(vaddr); | ||
92 | } | ||
93 | |||
94 | /* XXX double-check (lack of) locking */ | ||
95 | vma = find_extend_vma(current->mm, vaddr); | ||
96 | if (!vma) | ||
97 | return ~0UL; | ||
98 | |||
99 | /* We assume the page is modified. */ | ||
100 | page = follow_page(vma, vaddr, FOLL_WRITE | FOLL_TOUCH); | ||
101 | if (!page) | ||
102 | return ~0UL; | ||
103 | |||
104 | return (page_to_pfn(page) << PAGE_SHIFT) | (vaddr & ~PAGE_MASK); | ||
105 | } | ||
diff --git a/arch/ia64/xen/xenivt.S b/arch/ia64/xen/xenivt.S new file mode 100644 index 000000000000..3e71d50584d9 --- /dev/null +++ b/arch/ia64/xen/xenivt.S | |||
@@ -0,0 +1,52 @@ | |||
1 | /* | ||
2 | * arch/ia64/xen/ivt.S | ||
3 | * | ||
4 | * Copyright (C) 2005 Hewlett-Packard Co | ||
5 | * Dan Magenheimer <dan.magenheimer@hp.com> | ||
6 | * | ||
7 | * Copyright (c) 2008 Isaku Yamahata <yamahata at valinux co jp> | ||
8 | * VA Linux Systems Japan K.K. | ||
9 | * pv_ops. | ||
10 | */ | ||
11 | |||
12 | #include <asm/asmmacro.h> | ||
13 | #include <asm/kregs.h> | ||
14 | #include <asm/pgtable.h> | ||
15 | |||
16 | #include "../kernel/minstate.h" | ||
17 | |||
18 | .section .text,"ax" | ||
19 | GLOBAL_ENTRY(xen_event_callback) | ||
20 | mov r31=pr // prepare to save predicates | ||
21 | ;; | ||
22 | SAVE_MIN_WITH_COVER // uses r31; defines r2 and r3 | ||
23 | ;; | ||
24 | movl r3=XSI_PSR_IC | ||
25 | mov r14=1 | ||
26 | ;; | ||
27 | st4 [r3]=r14 | ||
28 | ;; | ||
29 | adds r3=8,r2 // set up second base pointer for SAVE_REST | ||
30 | srlz.i // ensure everybody knows psr.ic is back on | ||
31 | ;; | ||
32 | SAVE_REST | ||
33 | ;; | ||
34 | 1: | ||
35 | alloc r14=ar.pfs,0,0,1,0 // must be first in an insn group | ||
36 | add out0=16,sp // pass pointer to pt_regs as first arg | ||
37 | ;; | ||
38 | br.call.sptk.many b0=xen_evtchn_do_upcall | ||
39 | ;; | ||
40 | movl r20=XSI_PSR_I_ADDR | ||
41 | ;; | ||
42 | ld8 r20=[r20] | ||
43 | ;; | ||
44 | adds r20=-1,r20 // vcpu_info->evtchn_upcall_pending | ||
45 | ;; | ||
46 | ld1 r20=[r20] | ||
47 | ;; | ||
48 | cmp.ne p6,p0=r20,r0 // if there are pending events, | ||
49 | (p6) br.spnt.few 1b // call evtchn_do_upcall again. | ||
50 | br.sptk.many xen_leave_kernel // we know ia64_leave_kernel is | ||
51 | // paravirtualized as xen_leave_kernel | ||
52 | END(xen_event_callback) | ||
diff --git a/arch/ia64/xen/xensetup.S b/arch/ia64/xen/xensetup.S new file mode 100644 index 000000000000..28fed1fcc079 --- /dev/null +++ b/arch/ia64/xen/xensetup.S | |||
@@ -0,0 +1,83 @@ | |||
1 | /* | ||
2 | * Support routines for Xen | ||
3 | * | ||
4 | * Copyright (C) 2005 Dan Magenheimer <dan.magenheimer@hp.com> | ||
5 | */ | ||
6 | |||
7 | #include <asm/processor.h> | ||
8 | #include <asm/asmmacro.h> | ||
9 | #include <asm/pgtable.h> | ||
10 | #include <asm/system.h> | ||
11 | #include <asm/paravirt.h> | ||
12 | #include <asm/xen/privop.h> | ||
13 | #include <linux/elfnote.h> | ||
14 | #include <linux/init.h> | ||
15 | #include <xen/interface/elfnote.h> | ||
16 | |||
17 | .section .data.read_mostly | ||
18 | .align 8 | ||
19 | .global xen_domain_type | ||
20 | xen_domain_type: | ||
21 | data4 XEN_NATIVE_ASM | ||
22 | .previous | ||
23 | |||
24 | __INIT | ||
25 | ENTRY(startup_xen) | ||
26 | // Calculate load offset. | ||
27 | // The constant, LOAD_OFFSET, can't be used because the boot | ||
28 | // loader doesn't always load to the LMA specified by the vmlinux.lds. | ||
29 | mov r9=ip // must be the first instruction to make sure | ||
30 | // that r9 = the physical address of startup_xen. | ||
31 | // Usually r9 = startup_xen - LOAD_OFFSET | ||
32 | movl r8=startup_xen | ||
33 | ;; | ||
34 | sub r9=r9,r8 // Usually r9 = -LOAD_OFFSET. | ||
35 | |||
36 | mov r10=PARAVIRT_HYPERVISOR_TYPE_XEN | ||
37 | movl r11=_start | ||
38 | ;; | ||
39 | add r11=r11,r9 | ||
40 | movl r8=hypervisor_type | ||
41 | ;; | ||
42 | add r8=r8,r9 | ||
43 | mov b0=r11 | ||
44 | ;; | ||
45 | st8 [r8]=r10 | ||
46 | br.cond.sptk.many b0 | ||
47 | ;; | ||
48 | END(startup_xen) | ||
49 | |||
50 | ELFNOTE(Xen, XEN_ELFNOTE_GUEST_OS, .asciz "linux") | ||
51 | ELFNOTE(Xen, XEN_ELFNOTE_GUEST_VERSION, .asciz "2.6") | ||
52 | ELFNOTE(Xen, XEN_ELFNOTE_XEN_VERSION, .asciz "xen-3.0") | ||
53 | ELFNOTE(Xen, XEN_ELFNOTE_ENTRY, data8.ua startup_xen - LOAD_OFFSET) | ||
54 | |||
55 | #define isBP p3 // are we the Bootstrap Processor? | ||
56 | |||
57 | .text | ||
58 | |||
59 | GLOBAL_ENTRY(xen_setup_hook) | ||
60 | mov r8=XEN_PV_DOMAIN_ASM | ||
61 | (isBP) movl r9=xen_domain_type;; | ||
62 | (isBP) st4 [r9]=r8 | ||
63 | movl r10=xen_ivt;; | ||
64 | |||
65 | mov cr.iva=r10 | ||
66 | |||
67 | /* Set xsi base. */ | ||
68 | #define FW_HYPERCALL_SET_SHARED_INFO_VA 0x600 | ||
69 | (isBP) mov r2=FW_HYPERCALL_SET_SHARED_INFO_VA | ||
70 | (isBP) movl r28=XSI_BASE;; | ||
71 | (isBP) break 0x1000;; | ||
72 | |||
73 | /* setup pv_ops */ | ||
74 | (isBP) mov r4=rp | ||
75 | ;; | ||
76 | (isBP) br.call.sptk.many rp=xen_setup_pv_ops | ||
77 | ;; | ||
78 | (isBP) mov rp=r4 | ||
79 | ;; | ||
80 | |||
81 | br.ret.sptk.many rp | ||
82 | ;; | ||
83 | END(xen_setup_hook) | ||
diff --git a/arch/m32r/oprofile/init.c b/arch/m32r/oprofile/init.c index b7773e45c43f..fa56860f4258 100644 --- a/arch/m32r/oprofile/init.c +++ b/arch/m32r/oprofile/init.c | |||
@@ -12,7 +12,7 @@ | |||
12 | #include <linux/errno.h> | 12 | #include <linux/errno.h> |
13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
14 | 14 | ||
15 | int __init oprofile_arch_init(struct oprofile_operations * ops) | 15 | int __init oprofile_arch_init(struct oprofile_operations *ops) |
16 | { | 16 | { |
17 | return -ENODEV; | 17 | return -ENODEV; |
18 | } | 18 | } |
diff --git a/arch/m68k/amiga/config.c b/arch/m68k/amiga/config.c index 0a3f9e8ebde0..ab9862c3a136 100644 --- a/arch/m68k/amiga/config.c +++ b/arch/m68k/amiga/config.c | |||
@@ -15,6 +15,7 @@ | |||
15 | #include <linux/types.h> | 15 | #include <linux/types.h> |
16 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
17 | #include <linux/mm.h> | 17 | #include <linux/mm.h> |
18 | #include <linux/seq_file.h> | ||
18 | #include <linux/tty.h> | 19 | #include <linux/tty.h> |
19 | #include <linux/console.h> | 20 | #include <linux/console.h> |
20 | #include <linux/rtc.h> | 21 | #include <linux/rtc.h> |
@@ -93,7 +94,7 @@ static char amiga_model_name[13] = "Amiga "; | |||
93 | 94 | ||
94 | static void amiga_sched_init(irq_handler_t handler); | 95 | static void amiga_sched_init(irq_handler_t handler); |
95 | static void amiga_get_model(char *model); | 96 | static void amiga_get_model(char *model); |
96 | static int amiga_get_hardware_list(char *buffer); | 97 | static void amiga_get_hardware_list(struct seq_file *m); |
97 | /* amiga specific timer functions */ | 98 | /* amiga specific timer functions */ |
98 | static unsigned long amiga_gettimeoffset(void); | 99 | static unsigned long amiga_gettimeoffset(void); |
99 | static int a3000_hwclk(int, struct rtc_time *); | 100 | static int a3000_hwclk(int, struct rtc_time *); |
@@ -911,13 +912,11 @@ static void amiga_get_model(char *model) | |||
911 | } | 912 | } |
912 | 913 | ||
913 | 914 | ||
914 | static int amiga_get_hardware_list(char *buffer) | 915 | static void amiga_get_hardware_list(struct seq_file *m) |
915 | { | 916 | { |
916 | int len = 0; | ||
917 | |||
918 | if (AMIGAHW_PRESENT(CHIP_RAM)) | 917 | if (AMIGAHW_PRESENT(CHIP_RAM)) |
919 | len += sprintf(buffer+len, "Chip RAM:\t%ldK\n", amiga_chip_size>>10); | 918 | seq_printf(m, "Chip RAM:\t%ldK\n", amiga_chip_size>>10); |
920 | len += sprintf(buffer+len, "PS Freq:\t%dHz\nEClock Freq:\t%ldHz\n", | 919 | seq_printf(m, "PS Freq:\t%dHz\nEClock Freq:\t%ldHz\n", |
921 | amiga_psfreq, amiga_eclock); | 920 | amiga_psfreq, amiga_eclock); |
922 | if (AMIGAHW_PRESENT(AMI_VIDEO)) { | 921 | if (AMIGAHW_PRESENT(AMI_VIDEO)) { |
923 | char *type; | 922 | char *type; |
@@ -935,14 +934,14 @@ static int amiga_get_hardware_list(char *buffer) | |||
935 | type = "Old or Unknown"; | 934 | type = "Old or Unknown"; |
936 | break; | 935 | break; |
937 | } | 936 | } |
938 | len += sprintf(buffer+len, "Graphics:\t%s\n", type); | 937 | seq_printf(m, "Graphics:\t%s\n", type); |
939 | } | 938 | } |
940 | 939 | ||
941 | #define AMIGAHW_ANNOUNCE(name, str) \ | 940 | #define AMIGAHW_ANNOUNCE(name, str) \ |
942 | if (AMIGAHW_PRESENT(name)) \ | 941 | if (AMIGAHW_PRESENT(name)) \ |
943 | len += sprintf (buffer+len, "\t%s\n", str) | 942 | seq_printf (m, "\t%s\n", str) |
944 | 943 | ||
945 | len += sprintf (buffer + len, "Detected hardware:\n"); | 944 | seq_printf (m, "Detected hardware:\n"); |
946 | 945 | ||
947 | AMIGAHW_ANNOUNCE(AMI_VIDEO, "Amiga Video"); | 946 | AMIGAHW_ANNOUNCE(AMI_VIDEO, "Amiga Video"); |
948 | AMIGAHW_ANNOUNCE(AMI_BLITTER, "Blitter"); | 947 | AMIGAHW_ANNOUNCE(AMI_BLITTER, "Blitter"); |
@@ -975,15 +974,13 @@ static int amiga_get_hardware_list(char *buffer) | |||
975 | AMIGAHW_ANNOUNCE(PCMCIA, "PCMCIA Slot"); | 974 | AMIGAHW_ANNOUNCE(PCMCIA, "PCMCIA Slot"); |
976 | #ifdef CONFIG_ZORRO | 975 | #ifdef CONFIG_ZORRO |
977 | if (AMIGAHW_PRESENT(ZORRO)) | 976 | if (AMIGAHW_PRESENT(ZORRO)) |
978 | len += sprintf(buffer+len, "\tZorro II%s AutoConfig: %d Expansion " | 977 | seq_printf(m, "\tZorro II%s AutoConfig: %d Expansion " |
979 | "Device%s\n", | 978 | "Device%s\n", |
980 | AMIGAHW_PRESENT(ZORRO3) ? "I" : "", | 979 | AMIGAHW_PRESENT(ZORRO3) ? "I" : "", |
981 | zorro_num_autocon, zorro_num_autocon == 1 ? "" : "s"); | 980 | zorro_num_autocon, zorro_num_autocon == 1 ? "" : "s"); |
982 | #endif /* CONFIG_ZORRO */ | 981 | #endif /* CONFIG_ZORRO */ |
983 | 982 | ||
984 | #undef AMIGAHW_ANNOUNCE | 983 | #undef AMIGAHW_ANNOUNCE |
985 | |||
986 | return len; | ||
987 | } | 984 | } |
988 | 985 | ||
989 | /* | 986 | /* |
diff --git a/arch/m68k/atari/config.c b/arch/m68k/atari/config.c index af031855f796..49c28cdbea5c 100644 --- a/arch/m68k/atari/config.c +++ b/arch/m68k/atari/config.c | |||
@@ -26,6 +26,7 @@ | |||
26 | 26 | ||
27 | #include <linux/types.h> | 27 | #include <linux/types.h> |
28 | #include <linux/mm.h> | 28 | #include <linux/mm.h> |
29 | #include <linux/seq_file.h> | ||
29 | #include <linux/console.h> | 30 | #include <linux/console.h> |
30 | #include <linux/init.h> | 31 | #include <linux/init.h> |
31 | #include <linux/delay.h> | 32 | #include <linux/delay.h> |
@@ -63,7 +64,7 @@ int atari_rtc_year_offset; | |||
63 | /* local function prototypes */ | 64 | /* local function prototypes */ |
64 | static void atari_reset(void); | 65 | static void atari_reset(void); |
65 | static void atari_get_model(char *model); | 66 | static void atari_get_model(char *model); |
66 | static int atari_get_hardware_list(char *buffer); | 67 | static void atari_get_hardware_list(struct seq_file *m); |
67 | 68 | ||
68 | /* atari specific irq functions */ | 69 | /* atari specific irq functions */ |
69 | extern void atari_init_IRQ (void); | 70 | extern void atari_init_IRQ (void); |
@@ -611,21 +612,21 @@ static void atari_get_model(char *model) | |||
611 | } | 612 | } |
612 | 613 | ||
613 | 614 | ||
614 | static int atari_get_hardware_list(char *buffer) | 615 | static void atari_get_hardware_list(struct seq_file *m) |
615 | { | 616 | { |
616 | int len = 0, i; | 617 | int i; |
617 | 618 | ||
618 | for (i = 0; i < m68k_num_memory; i++) | 619 | for (i = 0; i < m68k_num_memory; i++) |
619 | len += sprintf(buffer+len, "\t%3ld MB at 0x%08lx (%s)\n", | 620 | seq_printf(m, "\t%3ld MB at 0x%08lx (%s)\n", |
620 | m68k_memory[i].size >> 20, m68k_memory[i].addr, | 621 | m68k_memory[i].size >> 20, m68k_memory[i].addr, |
621 | (m68k_memory[i].addr & 0xff000000 ? | 622 | (m68k_memory[i].addr & 0xff000000 ? |
622 | "alternate RAM" : "ST-RAM")); | 623 | "alternate RAM" : "ST-RAM")); |
623 | 624 | ||
624 | #define ATARIHW_ANNOUNCE(name, str) \ | 625 | #define ATARIHW_ANNOUNCE(name, str) \ |
625 | if (ATARIHW_PRESENT(name)) \ | 626 | if (ATARIHW_PRESENT(name)) \ |
626 | len += sprintf(buffer + len, "\t%s\n", str) | 627 | seq_printf(m, "\t%s\n", str) |
627 | 628 | ||
628 | len += sprintf(buffer + len, "Detected hardware:\n"); | 629 | seq_printf(m, "Detected hardware:\n"); |
629 | ATARIHW_ANNOUNCE(STND_SHIFTER, "ST Shifter"); | 630 | ATARIHW_ANNOUNCE(STND_SHIFTER, "ST Shifter"); |
630 | ATARIHW_ANNOUNCE(EXTD_SHIFTER, "STe Shifter"); | 631 | ATARIHW_ANNOUNCE(EXTD_SHIFTER, "STe Shifter"); |
631 | ATARIHW_ANNOUNCE(TT_SHIFTER, "TT Shifter"); | 632 | ATARIHW_ANNOUNCE(TT_SHIFTER, "TT Shifter"); |
@@ -654,6 +655,4 @@ static int atari_get_hardware_list(char *buffer) | |||
654 | ATARIHW_ANNOUNCE(BLITTER, "Blitter"); | 655 | ATARIHW_ANNOUNCE(BLITTER, "Blitter"); |
655 | ATARIHW_ANNOUNCE(VME, "VME Bus"); | 656 | ATARIHW_ANNOUNCE(VME, "VME Bus"); |
656 | ATARIHW_ANNOUNCE(DSP56K, "DSP56001 processor"); | 657 | ATARIHW_ANNOUNCE(DSP56K, "DSP56001 processor"); |
657 | |||
658 | return len; | ||
659 | } | 658 | } |
diff --git a/arch/m68k/atari/stram.c b/arch/m68k/atari/stram.c index 04c69ffbea71..6ec3b7f33779 100644 --- a/arch/m68k/atari/stram.c +++ b/arch/m68k/atari/stram.c | |||
@@ -42,6 +42,7 @@ | |||
42 | /* abbrev for the && above... */ | 42 | /* abbrev for the && above... */ |
43 | #define DO_PROC | 43 | #define DO_PROC |
44 | #include <linux/proc_fs.h> | 44 | #include <linux/proc_fs.h> |
45 | #include <linux/seq_file.h> | ||
45 | #endif | 46 | #endif |
46 | 47 | ||
47 | /* | 48 | /* |
@@ -323,19 +324,16 @@ static int remove_region( BLOCK *block ) | |||
323 | 324 | ||
324 | #ifdef DO_PROC | 325 | #ifdef DO_PROC |
325 | 326 | ||
326 | #define PRINT_PROC(fmt,args...) len += sprintf( buf+len, fmt, ##args ) | 327 | #define PRINT_PROC(fmt,args...) seq_printf( m, fmt, ##args ) |
327 | 328 | ||
328 | int get_stram_list( char *buf ) | 329 | static int stram_proc_show(struct seq_file *m, void *v) |
329 | { | 330 | { |
330 | int len = 0; | ||
331 | BLOCK *p; | 331 | BLOCK *p; |
332 | 332 | ||
333 | PRINT_PROC("Total ST-RAM: %8u kB\n", | 333 | PRINT_PROC("Total ST-RAM: %8u kB\n", |
334 | (stram_end - stram_start) >> 10); | 334 | (stram_end - stram_start) >> 10); |
335 | PRINT_PROC( "Allocated regions:\n" ); | 335 | PRINT_PROC( "Allocated regions:\n" ); |
336 | for( p = alloc_list; p; p = p->next ) { | 336 | for( p = alloc_list; p; p = p->next ) { |
337 | if (len + 50 >= PAGE_SIZE) | ||
338 | break; | ||
339 | PRINT_PROC("0x%08lx-0x%08lx: %s (", | 337 | PRINT_PROC("0x%08lx-0x%08lx: %s (", |
340 | virt_to_phys(p->start), | 338 | virt_to_phys(p->start), |
341 | virt_to_phys(p->start+p->size-1), | 339 | virt_to_phys(p->start+p->size-1), |
@@ -346,9 +344,27 @@ int get_stram_list( char *buf ) | |||
346 | PRINT_PROC( "??)\n" ); | 344 | PRINT_PROC( "??)\n" ); |
347 | } | 345 | } |
348 | 346 | ||
349 | return( len ); | 347 | return 0; |
348 | } | ||
349 | |||
350 | static int stram_proc_open(struct inode *inode, struct file *file) | ||
351 | { | ||
352 | return single_open(file, stram_proc_show, NULL); | ||
350 | } | 353 | } |
351 | 354 | ||
355 | static const struct file_operations stram_proc_fops = { | ||
356 | .open = stram_proc_open, | ||
357 | .read = seq_read, | ||
358 | .llseek = seq_lseek, | ||
359 | .release = single_release, | ||
360 | }; | ||
361 | |||
362 | static int __init proc_stram_init(void) | ||
363 | { | ||
364 | proc_create("stram", 0, NULL, &stram_proc_fops); | ||
365 | return 0; | ||
366 | } | ||
367 | module_init(proc_stram_init); | ||
352 | #endif | 368 | #endif |
353 | 369 | ||
354 | 370 | ||
diff --git a/arch/m68k/bvme6000/config.c b/arch/m68k/bvme6000/config.c index 65c9204ab9ac..c072595928c0 100644 --- a/arch/m68k/bvme6000/config.c +++ b/arch/m68k/bvme6000/config.c | |||
@@ -38,7 +38,6 @@ | |||
38 | #include <asm/bvme6000hw.h> | 38 | #include <asm/bvme6000hw.h> |
39 | 39 | ||
40 | static void bvme6000_get_model(char *model); | 40 | static void bvme6000_get_model(char *model); |
41 | static int bvme6000_get_hardware_list(char *buffer); | ||
42 | extern void bvme6000_sched_init(irq_handler_t handler); | 41 | extern void bvme6000_sched_init(irq_handler_t handler); |
43 | extern unsigned long bvme6000_gettimeoffset (void); | 42 | extern unsigned long bvme6000_gettimeoffset (void); |
44 | extern int bvme6000_hwclk (int, struct rtc_time *); | 43 | extern int bvme6000_hwclk (int, struct rtc_time *); |
@@ -82,15 +81,6 @@ static void bvme6000_get_model(char *model) | |||
82 | sprintf(model, "BVME%d000", m68k_cputype == CPU_68060 ? 6 : 4); | 81 | sprintf(model, "BVME%d000", m68k_cputype == CPU_68060 ? 6 : 4); |
83 | } | 82 | } |
84 | 83 | ||
85 | |||
86 | /* No hardware options on BVME6000? */ | ||
87 | |||
88 | static int bvme6000_get_hardware_list(char *buffer) | ||
89 | { | ||
90 | *buffer = '\0'; | ||
91 | return 0; | ||
92 | } | ||
93 | |||
94 | /* | 84 | /* |
95 | * This function is called during kernel startup to initialize | 85 | * This function is called during kernel startup to initialize |
96 | * the bvme6000 IRQ handling routines. | 86 | * the bvme6000 IRQ handling routines. |
@@ -127,7 +117,6 @@ void __init config_bvme6000(void) | |||
127 | mach_set_clock_mmss = bvme6000_set_clock_mmss; | 117 | mach_set_clock_mmss = bvme6000_set_clock_mmss; |
128 | mach_reset = bvme6000_reset; | 118 | mach_reset = bvme6000_reset; |
129 | mach_get_model = bvme6000_get_model; | 119 | mach_get_model = bvme6000_get_model; |
130 | mach_get_hardware_list = bvme6000_get_hardware_list; | ||
131 | 120 | ||
132 | printk ("Board is %sconfigured as a System Controller\n", | 121 | printk ("Board is %sconfigured as a System Controller\n", |
133 | *config_reg_ptr & BVME_CONFIG_SW1 ? "" : "not "); | 122 | *config_reg_ptr & BVME_CONFIG_SW1 ? "" : "not "); |
diff --git a/arch/m68k/kernel/setup.c b/arch/m68k/kernel/setup.c index ea1e44da19b9..4d97bd2bd573 100644 --- a/arch/m68k/kernel/setup.c +++ b/arch/m68k/kernel/setup.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <linux/string.h> | 20 | #include <linux/string.h> |
21 | #include <linux/init.h> | 21 | #include <linux/init.h> |
22 | #include <linux/bootmem.h> | 22 | #include <linux/bootmem.h> |
23 | #include <linux/proc_fs.h> | ||
23 | #include <linux/seq_file.h> | 24 | #include <linux/seq_file.h> |
24 | #include <linux/module.h> | 25 | #include <linux/module.h> |
25 | #include <linux/initrd.h> | 26 | #include <linux/initrd.h> |
@@ -80,7 +81,7 @@ void (*mach_sched_init) (irq_handler_t handler) __initdata = NULL; | |||
80 | /* machine dependent irq functions */ | 81 | /* machine dependent irq functions */ |
81 | void (*mach_init_IRQ) (void) __initdata = NULL; | 82 | void (*mach_init_IRQ) (void) __initdata = NULL; |
82 | void (*mach_get_model) (char *model); | 83 | void (*mach_get_model) (char *model); |
83 | int (*mach_get_hardware_list) (char *buffer); | 84 | void (*mach_get_hardware_list) (struct seq_file *m); |
84 | /* machine dependent timer functions */ | 85 | /* machine dependent timer functions */ |
85 | unsigned long (*mach_gettimeoffset) (void); | 86 | unsigned long (*mach_gettimeoffset) (void); |
86 | int (*mach_hwclk) (int, struct rtc_time*); | 87 | int (*mach_hwclk) (int, struct rtc_time*); |
@@ -467,9 +468,9 @@ const struct seq_operations cpuinfo_op = { | |||
467 | .show = show_cpuinfo, | 468 | .show = show_cpuinfo, |
468 | }; | 469 | }; |
469 | 470 | ||
470 | int get_hardware_list(char *buffer) | 471 | #ifdef CONFIG_PROC_HARDWARE |
472 | static int hardware_proc_show(struct seq_file *m, void *v) | ||
471 | { | 473 | { |
472 | int len = 0; | ||
473 | char model[80]; | 474 | char model[80]; |
474 | unsigned long mem; | 475 | unsigned long mem; |
475 | int i; | 476 | int i; |
@@ -479,17 +480,37 @@ int get_hardware_list(char *buffer) | |||
479 | else | 480 | else |
480 | strcpy(model, "Unknown m68k"); | 481 | strcpy(model, "Unknown m68k"); |
481 | 482 | ||
482 | len += sprintf(buffer + len, "Model:\t\t%s\n", model); | 483 | seq_printf(m, "Model:\t\t%s\n", model); |
483 | for (mem = 0, i = 0; i < m68k_num_memory; i++) | 484 | for (mem = 0, i = 0; i < m68k_num_memory; i++) |
484 | mem += m68k_memory[i].size; | 485 | mem += m68k_memory[i].size; |
485 | len += sprintf(buffer + len, "System Memory:\t%ldK\n", mem >> 10); | 486 | seq_printf(m, "System Memory:\t%ldK\n", mem >> 10); |
486 | 487 | ||
487 | if (mach_get_hardware_list) | 488 | if (mach_get_hardware_list) |
488 | len += mach_get_hardware_list(buffer + len); | 489 | mach_get_hardware_list(m); |
489 | 490 | ||
490 | return len; | 491 | return 0; |
492 | } | ||
493 | |||
494 | static int hardware_proc_open(struct inode *inode, struct file *file) | ||
495 | { | ||
496 | return single_open(file, hardware_proc_show, NULL); | ||
491 | } | 497 | } |
492 | 498 | ||
499 | static const struct file_operations hardware_proc_fops = { | ||
500 | .open = hardware_proc_open, | ||
501 | .read = seq_read, | ||
502 | .llseek = seq_lseek, | ||
503 | .release = single_release, | ||
504 | }; | ||
505 | |||
506 | static int __init proc_hardware_init(void) | ||
507 | { | ||
508 | proc_create("hardware", 0, NULL, &hardware_proc_fops); | ||
509 | return 0; | ||
510 | } | ||
511 | module_init(proc_hardware_init); | ||
512 | #endif | ||
513 | |||
493 | void check_bugs(void) | 514 | void check_bugs(void) |
494 | { | 515 | { |
495 | #ifndef CONFIG_M68KFPU_EMU | 516 | #ifndef CONFIG_M68KFPU_EMU |
diff --git a/arch/m68k/mvme147/config.c b/arch/m68k/mvme147/config.c index 92fe50714112..43cdf476ffab 100644 --- a/arch/m68k/mvme147/config.c +++ b/arch/m68k/mvme147/config.c | |||
@@ -37,7 +37,6 @@ | |||
37 | 37 | ||
38 | 38 | ||
39 | static void mvme147_get_model(char *model); | 39 | static void mvme147_get_model(char *model); |
40 | static int mvme147_get_hardware_list(char *buffer); | ||
41 | extern void mvme147_sched_init(irq_handler_t handler); | 40 | extern void mvme147_sched_init(irq_handler_t handler); |
42 | extern unsigned long mvme147_gettimeoffset (void); | 41 | extern unsigned long mvme147_gettimeoffset (void); |
43 | extern int mvme147_hwclk (int, struct rtc_time *); | 42 | extern int mvme147_hwclk (int, struct rtc_time *); |
@@ -76,14 +75,6 @@ static void mvme147_get_model(char *model) | |||
76 | sprintf(model, "Motorola MVME147"); | 75 | sprintf(model, "Motorola MVME147"); |
77 | } | 76 | } |
78 | 77 | ||
79 | |||
80 | static int mvme147_get_hardware_list(char *buffer) | ||
81 | { | ||
82 | *buffer = '\0'; | ||
83 | |||
84 | return 0; | ||
85 | } | ||
86 | |||
87 | /* | 78 | /* |
88 | * This function is called during kernel startup to initialize | 79 | * This function is called during kernel startup to initialize |
89 | * the mvme147 IRQ handling routines. | 80 | * the mvme147 IRQ handling routines. |
@@ -104,7 +95,6 @@ void __init config_mvme147(void) | |||
104 | mach_set_clock_mmss = mvme147_set_clock_mmss; | 95 | mach_set_clock_mmss = mvme147_set_clock_mmss; |
105 | mach_reset = mvme147_reset; | 96 | mach_reset = mvme147_reset; |
106 | mach_get_model = mvme147_get_model; | 97 | mach_get_model = mvme147_get_model; |
107 | mach_get_hardware_list = mvme147_get_hardware_list; | ||
108 | 98 | ||
109 | /* Board type is only set by newer versions of vmelilo/tftplilo */ | 99 | /* Board type is only set by newer versions of vmelilo/tftplilo */ |
110 | if (!vme_brdtype) | 100 | if (!vme_brdtype) |
diff --git a/arch/m68k/mvme16x/config.c b/arch/m68k/mvme16x/config.c index 24cbc3030454..1521826fc3c7 100644 --- a/arch/m68k/mvme16x/config.c +++ b/arch/m68k/mvme16x/config.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/types.h> | 17 | #include <linux/types.h> |
18 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
19 | #include <linux/mm.h> | 19 | #include <linux/mm.h> |
20 | #include <linux/seq_file.h> | ||
20 | #include <linux/tty.h> | 21 | #include <linux/tty.h> |
21 | #include <linux/console.h> | 22 | #include <linux/console.h> |
22 | #include <linux/linkage.h> | 23 | #include <linux/linkage.h> |
@@ -42,7 +43,6 @@ extern t_bdid mvme_bdid; | |||
42 | static MK48T08ptr_t volatile rtc = (MK48T08ptr_t)MVME_RTC_BASE; | 43 | static MK48T08ptr_t volatile rtc = (MK48T08ptr_t)MVME_RTC_BASE; |
43 | 44 | ||
44 | static void mvme16x_get_model(char *model); | 45 | static void mvme16x_get_model(char *model); |
45 | static int mvme16x_get_hardware_list(char *buffer); | ||
46 | extern void mvme16x_sched_init(irq_handler_t handler); | 46 | extern void mvme16x_sched_init(irq_handler_t handler); |
47 | extern unsigned long mvme16x_gettimeoffset (void); | 47 | extern unsigned long mvme16x_gettimeoffset (void); |
48 | extern int mvme16x_hwclk (int, struct rtc_time *); | 48 | extern int mvme16x_hwclk (int, struct rtc_time *); |
@@ -93,26 +93,21 @@ static void mvme16x_get_model(char *model) | |||
93 | } | 93 | } |
94 | 94 | ||
95 | 95 | ||
96 | static int mvme16x_get_hardware_list(char *buffer) | 96 | static void mvme16x_get_hardware_list(struct seq_file *m) |
97 | { | 97 | { |
98 | p_bdid p = &mvme_bdid; | 98 | p_bdid p = &mvme_bdid; |
99 | int len = 0; | ||
100 | 99 | ||
101 | if (p->brdno == 0x0162 || p->brdno == 0x0172) | 100 | if (p->brdno == 0x0162 || p->brdno == 0x0172) |
102 | { | 101 | { |
103 | unsigned char rev = *(unsigned char *)MVME162_VERSION_REG; | 102 | unsigned char rev = *(unsigned char *)MVME162_VERSION_REG; |
104 | 103 | ||
105 | len += sprintf (buffer+len, "VMEchip2 %spresent\n", | 104 | seq_printf (m, "VMEchip2 %spresent\n", |
106 | rev & MVME16x_CONFIG_NO_VMECHIP2 ? "NOT " : ""); | 105 | rev & MVME16x_CONFIG_NO_VMECHIP2 ? "NOT " : ""); |
107 | len += sprintf (buffer+len, "SCSI interface %spresent\n", | 106 | seq_printf (m, "SCSI interface %spresent\n", |
108 | rev & MVME16x_CONFIG_NO_SCSICHIP ? "NOT " : ""); | 107 | rev & MVME16x_CONFIG_NO_SCSICHIP ? "NOT " : ""); |
109 | len += sprintf (buffer+len, "Ethernet i/f %spresent\n", | 108 | seq_printf (m, "Ethernet i/f %spresent\n", |
110 | rev & MVME16x_CONFIG_NO_ETHERNET ? "NOT " : ""); | 109 | rev & MVME16x_CONFIG_NO_ETHERNET ? "NOT " : ""); |
111 | } | 110 | } |
112 | else | ||
113 | *buffer = '\0'; | ||
114 | |||
115 | return (len); | ||
116 | } | 111 | } |
117 | 112 | ||
118 | /* | 113 | /* |
diff --git a/arch/m68k/q40/config.c b/arch/m68k/q40/config.c index 9c7eefa3f98a..7110546e3c00 100644 --- a/arch/m68k/q40/config.c +++ b/arch/m68k/q40/config.c | |||
@@ -39,7 +39,6 @@ | |||
39 | extern irqreturn_t q40_process_int(int level, struct pt_regs *regs); | 39 | extern irqreturn_t q40_process_int(int level, struct pt_regs *regs); |
40 | extern void q40_init_IRQ(void); | 40 | extern void q40_init_IRQ(void); |
41 | static void q40_get_model(char *model); | 41 | static void q40_get_model(char *model); |
42 | static int q40_get_hardware_list(char *buffer); | ||
43 | extern void q40_sched_init(irq_handler_t handler); | 42 | extern void q40_sched_init(irq_handler_t handler); |
44 | 43 | ||
45 | static unsigned long q40_gettimeoffset(void); | 44 | static unsigned long q40_gettimeoffset(void); |
@@ -153,14 +152,6 @@ static void q40_get_model(char *model) | |||
153 | sprintf(model, "Q40"); | 152 | sprintf(model, "Q40"); |
154 | } | 153 | } |
155 | 154 | ||
156 | /* No hardware options on Q40? */ | ||
157 | |||
158 | static int q40_get_hardware_list(char *buffer) | ||
159 | { | ||
160 | *buffer = '\0'; | ||
161 | return 0; | ||
162 | } | ||
163 | |||
164 | static unsigned int serports[] = | 155 | static unsigned int serports[] = |
165 | { | 156 | { |
166 | 0x3f8,0x2f8,0x3e8,0x2e8,0 | 157 | 0x3f8,0x2f8,0x3e8,0x2e8,0 |
@@ -191,7 +182,6 @@ void __init config_q40(void) | |||
191 | 182 | ||
192 | mach_reset = q40_reset; | 183 | mach_reset = q40_reset; |
193 | mach_get_model = q40_get_model; | 184 | mach_get_model = q40_get_model; |
194 | mach_get_hardware_list = q40_get_hardware_list; | ||
195 | 185 | ||
196 | #if defined(CONFIG_INPUT_M68K_BEEP) || defined(CONFIG_INPUT_M68K_BEEP_MODULE) | 186 | #if defined(CONFIG_INPUT_M68K_BEEP) || defined(CONFIG_INPUT_M68K_BEEP_MODULE) |
197 | mach_beep = q40_mksound; | 187 | mach_beep = q40_mksound; |
diff --git a/arch/m68k/sun3/config.c b/arch/m68k/sun3/config.c index 732087d0735c..8dfaa201342e 100644 --- a/arch/m68k/sun3/config.c +++ b/arch/m68k/sun3/config.c | |||
@@ -11,6 +11,7 @@ | |||
11 | #include <linux/types.h> | 11 | #include <linux/types.h> |
12 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
13 | #include <linux/mm.h> | 13 | #include <linux/mm.h> |
14 | #include <linux/seq_file.h> | ||
14 | #include <linux/tty.h> | 15 | #include <linux/tty.h> |
15 | #include <linux/console.h> | 16 | #include <linux/console.h> |
16 | #include <linux/init.h> | 17 | #include <linux/init.h> |
@@ -46,16 +47,9 @@ extern volatile unsigned char* sun3_intreg; | |||
46 | extern unsigned long availmem; | 47 | extern unsigned long availmem; |
47 | unsigned long num_pages; | 48 | unsigned long num_pages; |
48 | 49 | ||
49 | static int sun3_get_hardware_list(char *buffer) | 50 | static void sun3_get_hardware_list(struct seq_file *m) |
50 | { | 51 | { |
51 | 52 | seq_printf(m, "PROM Revision:\t%s\n", romvec->pv_monid); | |
52 | int len = 0; | ||
53 | |||
54 | len += sprintf(buffer + len, "PROM Revision:\t%s\n", | ||
55 | romvec->pv_monid); | ||
56 | |||
57 | return len; | ||
58 | |||
59 | } | 53 | } |
60 | 54 | ||
61 | void __init sun3_init(void) | 55 | void __init sun3_init(void) |
diff --git a/arch/m68k/sun3x/config.c b/arch/m68k/sun3x/config.c index 987891783a47..2b1ca2db070f 100644 --- a/arch/m68k/sun3x/config.c +++ b/arch/m68k/sun3x/config.c | |||
@@ -8,6 +8,7 @@ | |||
8 | 8 | ||
9 | #include <linux/types.h> | 9 | #include <linux/types.h> |
10 | #include <linux/mm.h> | 10 | #include <linux/mm.h> |
11 | #include <linux/seq_file.h> | ||
11 | #include <linux/console.h> | 12 | #include <linux/console.h> |
12 | #include <linux/init.h> | 13 | #include <linux/init.h> |
13 | 14 | ||
@@ -31,16 +32,9 @@ void sun3_leds(unsigned int i) | |||
31 | 32 | ||
32 | } | 33 | } |
33 | 34 | ||
34 | static int sun3x_get_hardware_list(char *buffer) | 35 | static void sun3x_get_hardware_list(struct seq_file *m) |
35 | { | 36 | { |
36 | 37 | seq_printf(m, "PROM Revision:\t%s\n", romvec->pv_monid); | |
37 | int len = 0; | ||
38 | |||
39 | len += sprintf(buffer + len, "PROM Revision:\t%s\n", | ||
40 | romvec->pv_monid); | ||
41 | |||
42 | return len; | ||
43 | |||
44 | } | 38 | } |
45 | 39 | ||
46 | /* | 40 | /* |
diff --git a/arch/mips/include/asm/txx9/tx4938.h b/arch/mips/include/asm/txx9/tx4938.h index 989e7751135a..0b068154054c 100644 --- a/arch/mips/include/asm/txx9/tx4938.h +++ b/arch/mips/include/asm/txx9/tx4938.h | |||
@@ -292,4 +292,17 @@ void tx4938_setup_pcierr_irq(void); | |||
292 | void tx4938_irq_init(void); | 292 | void tx4938_irq_init(void); |
293 | void tx4938_mtd_init(int ch); | 293 | void tx4938_mtd_init(int ch); |
294 | 294 | ||
295 | struct tx4938ide_platform_info { | ||
296 | /* | ||
297 | * I/O port shift, for platforms with ports that are | ||
298 | * constantly spaced and need larger than the 1-byte | ||
299 | * spacing used by ata_std_ports(). | ||
300 | */ | ||
301 | unsigned int ioport_shift; | ||
302 | unsigned int gbus_clock; /* 0 means no PIO mode tuning. */ | ||
303 | unsigned int ebus_ch; | ||
304 | }; | ||
305 | |||
306 | void tx4938_ata_init(unsigned int irq, unsigned int shift, int tune); | ||
307 | |||
295 | #endif | 308 | #endif |
diff --git a/arch/mips/oprofile/common.c b/arch/mips/oprofile/common.c index dd2fbd6645c1..3bf3354547f6 100644 --- a/arch/mips/oprofile/common.c +++ b/arch/mips/oprofile/common.c | |||
@@ -32,7 +32,7 @@ static int op_mips_setup(void) | |||
32 | return 0; | 32 | return 0; |
33 | } | 33 | } |
34 | 34 | ||
35 | static int op_mips_create_files(struct super_block * sb, struct dentry * root) | 35 | static int op_mips_create_files(struct super_block *sb, struct dentry *root) |
36 | { | 36 | { |
37 | int i; | 37 | int i; |
38 | 38 | ||
diff --git a/arch/mips/oprofile/op_impl.h b/arch/mips/oprofile/op_impl.h index 2bfc17c30106..f04b54fb37d1 100644 --- a/arch/mips/oprofile/op_impl.h +++ b/arch/mips/oprofile/op_impl.h | |||
@@ -27,7 +27,7 @@ struct op_counter_config { | |||
27 | /* Per-architecture configury and hooks. */ | 27 | /* Per-architecture configury and hooks. */ |
28 | struct op_mips_model { | 28 | struct op_mips_model { |
29 | void (*reg_setup) (struct op_counter_config *); | 29 | void (*reg_setup) (struct op_counter_config *); |
30 | void (*cpu_setup) (void * dummy); | 30 | void (*cpu_setup) (void *dummy); |
31 | int (*init)(void); | 31 | int (*init)(void); |
32 | void (*exit)(void); | 32 | void (*exit)(void); |
33 | void (*cpu_start)(void *args); | 33 | void (*cpu_start)(void *args); |
diff --git a/arch/mips/oprofile/op_model_rm9000.c b/arch/mips/oprofile/op_model_rm9000.c index a45d3202894f..3aa81384966d 100644 --- a/arch/mips/oprofile/op_model_rm9000.c +++ b/arch/mips/oprofile/op_model_rm9000.c | |||
@@ -80,7 +80,7 @@ static void rm9000_cpu_stop(void *args) | |||
80 | write_c0_perfcontrol(0); | 80 | write_c0_perfcontrol(0); |
81 | } | 81 | } |
82 | 82 | ||
83 | static irqreturn_t rm9000_perfcount_handler(int irq, void * dev_id) | 83 | static irqreturn_t rm9000_perfcount_handler(int irq, void *dev_id) |
84 | { | 84 | { |
85 | unsigned int control = read_c0_perfcontrol(); | 85 | unsigned int control = read_c0_perfcontrol(); |
86 | struct pt_regs *regs = get_irq_regs(); | 86 | struct pt_regs *regs = get_irq_regs(); |
diff --git a/arch/mips/txx9/generic/setup_tx4938.c b/arch/mips/txx9/generic/setup_tx4938.c index af724e53ef91..25819ff1c350 100644 --- a/arch/mips/txx9/generic/setup_tx4938.c +++ b/arch/mips/txx9/generic/setup_tx4938.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/param.h> | 16 | #include <linux/param.h> |
17 | #include <linux/ptrace.h> | 17 | #include <linux/ptrace.h> |
18 | #include <linux/mtd/physmap.h> | 18 | #include <linux/mtd/physmap.h> |
19 | #include <linux/platform_device.h> | ||
19 | #include <asm/reboot.h> | 20 | #include <asm/reboot.h> |
20 | #include <asm/traps.h> | 21 | #include <asm/traps.h> |
21 | #include <asm/txx9irq.h> | 22 | #include <asm/txx9irq.h> |
@@ -335,6 +336,52 @@ void __init tx4938_mtd_init(int ch) | |||
335 | txx9_physmap_flash_init(ch, start, size, &pdata); | 336 | txx9_physmap_flash_init(ch, start, size, &pdata); |
336 | } | 337 | } |
337 | 338 | ||
339 | void __init tx4938_ata_init(unsigned int irq, unsigned int shift, int tune) | ||
340 | { | ||
341 | struct platform_device *pdev; | ||
342 | struct resource res[] = { | ||
343 | { | ||
344 | /* .start and .end are filled in later */ | ||
345 | .flags = IORESOURCE_MEM, | ||
346 | }, { | ||
347 | .start = irq, | ||
348 | .flags = IORESOURCE_IRQ, | ||
349 | }, | ||
350 | }; | ||
351 | struct tx4938ide_platform_info pdata = { | ||
352 | .ioport_shift = shift, | ||
353 | /* | ||
354 | * The IDE driver should not change bus timings if other ISA | ||
355 | * devices existed. | ||
356 | */ | ||
357 | .gbus_clock = tune ? txx9_gbus_clock : 0, | ||
358 | }; | ||
359 | u64 ebccr; | ||
360 | int i; | ||
361 | |||
362 | if ((__raw_readq(&tx4938_ccfgptr->pcfg) & | ||
363 | (TX4938_PCFG_ATA_SEL | TX4938_PCFG_NDF_SEL)) | ||
364 | != TX4938_PCFG_ATA_SEL) | ||
365 | return; | ||
366 | for (i = 0; i < 8; i++) { | ||
367 | /* check EBCCRn.ISA, EBCCRn.BSZ, EBCCRn.ME */ | ||
368 | ebccr = __raw_readq(&tx4938_ebuscptr->cr[i]); | ||
369 | if ((ebccr & 0x00f00008) == 0x00e00008) | ||
370 | break; | ||
371 | } | ||
372 | if (i == 8) | ||
373 | return; | ||
374 | pdata.ebus_ch = i; | ||
375 | res[0].start = ((ebccr >> 48) << 20) + 0x10000; | ||
376 | res[0].end = res[0].start + 0x20000 - 1; | ||
377 | pdev = platform_device_alloc("tx4938ide", -1); | ||
378 | if (!pdev || | ||
379 | platform_device_add_resources(pdev, res, ARRAY_SIZE(res)) || | ||
380 | platform_device_add_data(pdev, &pdata, sizeof(pdata)) || | ||
381 | platform_device_add(pdev)) | ||
382 | platform_device_put(pdev); | ||
383 | } | ||
384 | |||
338 | static void __init tx4938_stop_unused_modules(void) | 385 | static void __init tx4938_stop_unused_modules(void) |
339 | { | 386 | { |
340 | __u64 pcfg, rst = 0, ckd = 0; | 387 | __u64 pcfg, rst = 0, ckd = 0; |
diff --git a/arch/mips/txx9/rbtx4938/setup.c b/arch/mips/txx9/rbtx4938/setup.c index e077cc4d3a59..547ff2920bf0 100644 --- a/arch/mips/txx9/rbtx4938/setup.c +++ b/arch/mips/txx9/rbtx4938/setup.c | |||
@@ -352,6 +352,7 @@ static void __init rbtx4938_device_init(void) | |||
352 | rbtx4938_ne_init(); | 352 | rbtx4938_ne_init(); |
353 | tx4938_wdt_init(); | 353 | tx4938_wdt_init(); |
354 | rbtx4938_mtd_init(); | 354 | rbtx4938_mtd_init(); |
355 | tx4938_ata_init(RBTX4938_IRQ_IOC_ATA, 0, 1); | ||
355 | txx9_iocled_init(RBTX4938_LED_ADDR - IO_BASE, -1, 8, 1, "green", NULL); | 356 | txx9_iocled_init(RBTX4938_LED_ADDR - IO_BASE, -1, 8, 1, "green", NULL); |
356 | } | 357 | } |
357 | 358 | ||
diff --git a/arch/parisc/hpux/fs.c b/arch/parisc/hpux/fs.c index 12c04c5e558b..bd9a4db3bd4c 100644 --- a/arch/parisc/hpux/fs.c +++ b/arch/parisc/hpux/fs.c | |||
@@ -127,9 +127,8 @@ int hpux_getdents(unsigned int fd, struct hpux_dirent __user *dirent, unsigned i | |||
127 | buf.error = 0; | 127 | buf.error = 0; |
128 | 128 | ||
129 | error = vfs_readdir(file, filldir, &buf); | 129 | error = vfs_readdir(file, filldir, &buf); |
130 | if (error < 0) | 130 | if (error >= 0) |
131 | goto out_putf; | 131 | error = buf.error; |
132 | error = buf.error; | ||
133 | lastdirent = buf.previous; | 132 | lastdirent = buf.previous; |
134 | if (lastdirent) { | 133 | if (lastdirent) { |
135 | if (put_user(file->f_pos, &lastdirent->d_off)) | 134 | if (put_user(file->f_pos, &lastdirent->d_off)) |
diff --git a/arch/parisc/oprofile/init.c b/arch/parisc/oprofile/init.c index 113f5139f551..026cba2af07a 100644 --- a/arch/parisc/oprofile/init.c +++ b/arch/parisc/oprofile/init.c | |||
@@ -12,7 +12,7 @@ | |||
12 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
13 | #include <linux/oprofile.h> | 13 | #include <linux/oprofile.h> |
14 | 14 | ||
15 | int __init oprofile_arch_init(struct oprofile_operations * ops) | 15 | int __init oprofile_arch_init(struct oprofile_operations *ops) |
16 | { | 16 | { |
17 | return -ENODEV; | 17 | return -ENODEV; |
18 | } | 18 | } |
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 9391199d9e77..5b1527883fcb 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig | |||
@@ -19,9 +19,6 @@ config WORD_SIZE | |||
19 | default 64 if PPC64 | 19 | default 64 if PPC64 |
20 | default 32 if !PPC64 | 20 | default 32 if !PPC64 |
21 | 21 | ||
22 | config PPC_MERGE | ||
23 | def_bool y | ||
24 | |||
25 | config ARCH_PHYS_ADDR_T_64BIT | 22 | config ARCH_PHYS_ADDR_T_64BIT |
26 | def_bool PPC64 || PHYS_64BIT | 23 | def_bool PPC64 || PHYS_64BIT |
27 | 24 | ||
@@ -326,13 +323,11 @@ config KEXEC | |||
326 | 323 | ||
327 | config CRASH_DUMP | 324 | config CRASH_DUMP |
328 | bool "Build a kdump crash kernel" | 325 | bool "Build a kdump crash kernel" |
329 | depends on PPC_MULTIPLATFORM && PPC64 | 326 | depends on PPC_MULTIPLATFORM && PPC64 && RELOCATABLE |
330 | help | 327 | help |
331 | Build a kernel suitable for use as a kdump capture kernel. | 328 | Build a kernel suitable for use as a kdump capture kernel. |
332 | The kernel will be linked at a different address than normal, and | 329 | The same kernel binary can be used as production kernel and dump |
333 | so can only be used for Kdump. | 330 | capture kernel. |
334 | |||
335 | Don't change this unless you know what you are doing. | ||
336 | 331 | ||
337 | config PHYP_DUMP | 332 | config PHYP_DUMP |
338 | bool "Hypervisor-assisted dump (EXPERIMENTAL)" | 333 | bool "Hypervisor-assisted dump (EXPERIMENTAL)" |
@@ -832,11 +827,9 @@ config PAGE_OFFSET | |||
832 | default "0xc000000000000000" | 827 | default "0xc000000000000000" |
833 | config KERNEL_START | 828 | config KERNEL_START |
834 | hex | 829 | hex |
835 | default "0xc000000002000000" if CRASH_DUMP | ||
836 | default "0xc000000000000000" | 830 | default "0xc000000000000000" |
837 | config PHYSICAL_START | 831 | config PHYSICAL_START |
838 | hex | 832 | hex |
839 | default "0x02000000" if CRASH_DUMP | ||
840 | default "0x00000000" | 833 | default "0x00000000" |
841 | endif | 834 | endif |
842 | 835 | ||
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile index aac1406ccba5..8fc6d72849ae 100644 --- a/arch/powerpc/boot/Makefile +++ b/arch/powerpc/boot/Makefile | |||
@@ -68,7 +68,8 @@ src-plat := of.c cuboot-52xx.c cuboot-824x.c cuboot-83xx.c cuboot-85xx.c holly.c | |||
68 | fixed-head.S ep88xc.c ep405.c cuboot-c2k.c \ | 68 | fixed-head.S ep88xc.c ep405.c cuboot-c2k.c \ |
69 | cuboot-katmai.c cuboot-rainier.c redboot-8xx.c ep8248e.c \ | 69 | cuboot-katmai.c cuboot-rainier.c redboot-8xx.c ep8248e.c \ |
70 | cuboot-warp.c cuboot-85xx-cpm2.c cuboot-yosemite.c simpleboot.c \ | 70 | cuboot-warp.c cuboot-85xx-cpm2.c cuboot-yosemite.c simpleboot.c \ |
71 | virtex405-head.S virtex.c redboot-83xx.c cuboot-sam440ep.c | 71 | virtex405-head.S virtex.c redboot-83xx.c cuboot-sam440ep.c \ |
72 | cuboot-acadia.c | ||
72 | src-boot := $(src-wlib) $(src-plat) empty.c | 73 | src-boot := $(src-wlib) $(src-plat) empty.c |
73 | 74 | ||
74 | src-boot := $(addprefix $(obj)/, $(src-boot)) | 75 | src-boot := $(addprefix $(obj)/, $(src-boot)) |
@@ -211,6 +212,7 @@ image-$(CONFIG_DEFAULT_UIMAGE) += uImage | |||
211 | # Board ports in arch/powerpc/platform/40x/Kconfig | 212 | # Board ports in arch/powerpc/platform/40x/Kconfig |
212 | image-$(CONFIG_EP405) += dtbImage.ep405 | 213 | image-$(CONFIG_EP405) += dtbImage.ep405 |
213 | image-$(CONFIG_WALNUT) += treeImage.walnut | 214 | image-$(CONFIG_WALNUT) += treeImage.walnut |
215 | image-$(CONFIG_ACADIA) += cuImage.acadia | ||
214 | 216 | ||
215 | # Board ports in arch/powerpc/platform/44x/Kconfig | 217 | # Board ports in arch/powerpc/platform/44x/Kconfig |
216 | image-$(CONFIG_EBONY) += treeImage.ebony cuImage.ebony | 218 | image-$(CONFIG_EBONY) += treeImage.ebony cuImage.ebony |
@@ -319,6 +321,9 @@ $(obj)/zImage.iseries: vmlinux | |||
319 | $(obj)/uImage: vmlinux $(wrapperbits) | 321 | $(obj)/uImage: vmlinux $(wrapperbits) |
320 | $(call if_changed,wrap,uboot) | 322 | $(call if_changed,wrap,uboot) |
321 | 323 | ||
324 | $(obj)/cuImage.initrd.%: vmlinux $(obj)/%.dtb $(wrapperbits) | ||
325 | $(call if_changed,wrap,cuboot-$*,,$(obj)/$*.dtb,$(obj)/ramdisk.image.gz) | ||
326 | |||
322 | $(obj)/cuImage.%: vmlinux $(obj)/%.dtb $(wrapperbits) | 327 | $(obj)/cuImage.%: vmlinux $(obj)/%.dtb $(wrapperbits) |
323 | $(call if_changed,wrap,cuboot-$*,,$(obj)/$*.dtb) | 328 | $(call if_changed,wrap,cuboot-$*,,$(obj)/$*.dtb) |
324 | 329 | ||
diff --git a/arch/powerpc/boot/addnote.c b/arch/powerpc/boot/addnote.c index dcc9ab2ca823..3091d1d21aef 100644 --- a/arch/powerpc/boot/addnote.c +++ b/arch/powerpc/boot/addnote.c | |||
@@ -11,7 +11,7 @@ | |||
11 | * as published by the Free Software Foundation; either version | 11 | * as published by the Free Software Foundation; either version |
12 | * 2 of the License, or (at your option) any later version. | 12 | * 2 of the License, or (at your option) any later version. |
13 | * | 13 | * |
14 | * Usage: addnote zImage [note.elf] | 14 | * Usage: addnote [-r realbase] zImage [note.elf] |
15 | * | 15 | * |
16 | * If note.elf is supplied, it is the name of an ELF file that contains | 16 | * If note.elf is supplied, it is the name of an ELF file that contains |
17 | * an RPA note to use instead of the built-in one. Alternatively, the | 17 | * an RPA note to use instead of the built-in one. Alternatively, the |
@@ -153,18 +153,31 @@ unsigned char *read_rpanote(const char *fname, int *nnp) | |||
153 | int | 153 | int |
154 | main(int ac, char **av) | 154 | main(int ac, char **av) |
155 | { | 155 | { |
156 | int fd, n, i; | 156 | int fd, n, i, ai; |
157 | int ph, ps, np; | 157 | int ph, ps, np; |
158 | int nnote, nnote2, ns; | 158 | int nnote, nnote2, ns; |
159 | unsigned char *rpap; | 159 | unsigned char *rpap; |
160 | 160 | char *p, *endp; | |
161 | if (ac != 2 && ac != 3) { | 161 | |
162 | fprintf(stderr, "Usage: %s elf-file [rpanote.elf]\n", av[0]); | 162 | ai = 1; |
163 | if (ac >= ai + 2 && strcmp(av[ai], "-r") == 0) { | ||
164 | /* process -r realbase */ | ||
165 | p = av[ai + 1]; | ||
166 | descr[1] = strtol(p, &endp, 16); | ||
167 | if (endp == p || *endp != 0) { | ||
168 | fprintf(stderr, "Can't parse -r argument '%s' as hex\n", | ||
169 | p); | ||
170 | exit(1); | ||
171 | } | ||
172 | ai += 2; | ||
173 | } | ||
174 | if (ac != ai + 1 && ac != ai + 2) { | ||
175 | fprintf(stderr, "Usage: %s [-r realbase] elf-file [rpanote.elf]\n", av[0]); | ||
163 | exit(1); | 176 | exit(1); |
164 | } | 177 | } |
165 | fd = open(av[1], O_RDWR); | 178 | fd = open(av[ai], O_RDWR); |
166 | if (fd < 0) { | 179 | if (fd < 0) { |
167 | perror(av[1]); | 180 | perror(av[ai]); |
168 | exit(1); | 181 | exit(1); |
169 | } | 182 | } |
170 | 183 | ||
@@ -184,12 +197,12 @@ main(int ac, char **av) | |||
184 | if (buf[E_IDENT+EI_CLASS] != ELFCLASS32 | 197 | if (buf[E_IDENT+EI_CLASS] != ELFCLASS32 |
185 | || buf[E_IDENT+EI_DATA] != ELFDATA2MSB) { | 198 | || buf[E_IDENT+EI_DATA] != ELFDATA2MSB) { |
186 | fprintf(stderr, "%s is not a big-endian 32-bit ELF image\n", | 199 | fprintf(stderr, "%s is not a big-endian 32-bit ELF image\n", |
187 | av[1]); | 200 | av[ai]); |
188 | exit(1); | 201 | exit(1); |
189 | } | 202 | } |
190 | 203 | ||
191 | if (ac == 3) | 204 | if (ac == ai + 2) |
192 | rpap = read_rpanote(av[2], &nnote2); | 205 | rpap = read_rpanote(av[ai + 1], &nnote2); |
193 | 206 | ||
194 | ph = GET_32BE(buf, E_PHOFF); | 207 | ph = GET_32BE(buf, E_PHOFF); |
195 | ps = GET_16BE(buf, E_PHENTSIZE); | 208 | ps = GET_16BE(buf, E_PHENTSIZE); |
@@ -202,7 +215,7 @@ main(int ac, char **av) | |||
202 | for (i = 0; i < np; ++i) { | 215 | for (i = 0; i < np; ++i) { |
203 | if (GET_32BE(buf, ph + PH_TYPE) == PT_NOTE) { | 216 | if (GET_32BE(buf, ph + PH_TYPE) == PT_NOTE) { |
204 | fprintf(stderr, "%s already has a note entry\n", | 217 | fprintf(stderr, "%s already has a note entry\n", |
205 | av[1]); | 218 | av[ai]); |
206 | exit(0); | 219 | exit(0); |
207 | } | 220 | } |
208 | ph += ps; | 221 | ph += ps; |
@@ -260,18 +273,18 @@ main(int ac, char **av) | |||
260 | exit(1); | 273 | exit(1); |
261 | } | 274 | } |
262 | if (i < n) { | 275 | if (i < n) { |
263 | fprintf(stderr, "%s: write truncated\n", av[1]); | 276 | fprintf(stderr, "%s: write truncated\n", av[ai]); |
264 | exit(1); | 277 | exit(1); |
265 | } | 278 | } |
266 | 279 | ||
267 | exit(0); | 280 | exit(0); |
268 | 281 | ||
269 | notelf: | 282 | notelf: |
270 | fprintf(stderr, "%s does not appear to be an ELF file\n", av[1]); | 283 | fprintf(stderr, "%s does not appear to be an ELF file\n", av[ai]); |
271 | exit(1); | 284 | exit(1); |
272 | 285 | ||
273 | nospace: | 286 | nospace: |
274 | fprintf(stderr, "sorry, I can't find space in %s to put the note\n", | 287 | fprintf(stderr, "sorry, I can't find space in %s to put the note\n", |
275 | av[1]); | 288 | av[ai]); |
276 | exit(1); | 289 | exit(1); |
277 | } | 290 | } |
diff --git a/arch/powerpc/boot/cuboot-52xx.c b/arch/powerpc/boot/cuboot-52xx.c index a8611546a656..4c42ec8687be 100644 --- a/arch/powerpc/boot/cuboot-52xx.c +++ b/arch/powerpc/boot/cuboot-52xx.c | |||
@@ -37,6 +37,10 @@ static void platform_fixups(void) | |||
37 | * this can do a simple path lookup. | 37 | * this can do a simple path lookup. |
38 | */ | 38 | */ |
39 | soc = find_node_by_devtype(NULL, "soc"); | 39 | soc = find_node_by_devtype(NULL, "soc"); |
40 | if (!soc) | ||
41 | soc = find_node_by_compatible(NULL, "fsl,mpc5200-immr"); | ||
42 | if (!soc) | ||
43 | soc = find_node_by_compatible(NULL, "fsl,mpc5200b-immr"); | ||
40 | if (soc) { | 44 | if (soc) { |
41 | setprop(soc, "bus-frequency", &bd.bi_ipbfreq, | 45 | setprop(soc, "bus-frequency", &bd.bi_ipbfreq, |
42 | sizeof(bd.bi_ipbfreq)); | 46 | sizeof(bd.bi_ipbfreq)); |
diff --git a/arch/powerpc/boot/cuboot-acadia.c b/arch/powerpc/boot/cuboot-acadia.c new file mode 100644 index 000000000000..0634aba6348a --- /dev/null +++ b/arch/powerpc/boot/cuboot-acadia.c | |||
@@ -0,0 +1,174 @@ | |||
1 | /* | ||
2 | * Old U-boot compatibility for Acadia | ||
3 | * | ||
4 | * Author: Josh Boyer <jwboyer@linux.vnet.ibm.com> | ||
5 | * | ||
6 | * Copyright 2008 IBM Corporation | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify it | ||
9 | * under the terms of the GNU General Public License version 2 as published | ||
10 | * by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #include "ops.h" | ||
14 | #include "io.h" | ||
15 | #include "dcr.h" | ||
16 | #include "stdio.h" | ||
17 | #include "4xx.h" | ||
18 | #include "44x.h" | ||
19 | #include "cuboot.h" | ||
20 | |||
21 | #define TARGET_4xx | ||
22 | #include "ppcboot.h" | ||
23 | |||
24 | static bd_t bd; | ||
25 | |||
26 | #define CPR_PERD0_SPIDV_MASK 0x000F0000 /* SPI Clock Divider */ | ||
27 | |||
28 | #define PLLC_SRC_MASK 0x20000000 /* PLL feedback source */ | ||
29 | |||
30 | #define PLLD_FBDV_MASK 0x1F000000 /* PLL feedback divider value */ | ||
31 | #define PLLD_FWDVA_MASK 0x000F0000 /* PLL forward divider A value */ | ||
32 | #define PLLD_FWDVB_MASK 0x00000700 /* PLL forward divider B value */ | ||
33 | |||
34 | #define PRIMAD_CPUDV_MASK 0x0F000000 /* CPU Clock Divisor Mask */ | ||
35 | #define PRIMAD_PLBDV_MASK 0x000F0000 /* PLB Clock Divisor Mask */ | ||
36 | #define PRIMAD_OPBDV_MASK 0x00000F00 /* OPB Clock Divisor Mask */ | ||
37 | #define PRIMAD_EBCDV_MASK 0x0000000F /* EBC Clock Divisor Mask */ | ||
38 | |||
39 | #define PERD0_PWMDV_MASK 0xFF000000 /* PWM Divider Mask */ | ||
40 | #define PERD0_SPIDV_MASK 0x000F0000 /* SPI Divider Mask */ | ||
41 | #define PERD0_U0DV_MASK 0x0000FF00 /* UART 0 Divider Mask */ | ||
42 | #define PERD0_U1DV_MASK 0x000000FF /* UART 1 Divider Mask */ | ||
43 | |||
44 | static void get_clocks(void) | ||
45 | { | ||
46 | unsigned long sysclk, cpr_plld, cpr_pllc, cpr_primad, plloutb, i; | ||
47 | unsigned long pllFwdDiv, pllFwdDivB, pllFbkDiv, pllPlbDiv, pllExtBusDiv; | ||
48 | unsigned long pllOpbDiv, freqEBC, freqUART, freqOPB; | ||
49 | unsigned long div; /* total divisor udiv * bdiv */ | ||
50 | unsigned long umin; /* minimum udiv */ | ||
51 | unsigned short diff; /* smallest diff */ | ||
52 | unsigned long udiv; /* best udiv */ | ||
53 | unsigned short idiff; /* current diff */ | ||
54 | unsigned short ibdiv; /* current bdiv */ | ||
55 | unsigned long est; /* current estimate */ | ||
56 | unsigned long baud; | ||
57 | void *np; | ||
58 | |||
59 | /* read the sysclk value from the CPLD */ | ||
60 | sysclk = (in_8((unsigned char *)0x80000000) == 0xc) ? 66666666 : 33333000; | ||
61 | |||
62 | /* | ||
63 | * Read PLL Mode registers | ||
64 | */ | ||
65 | cpr_plld = CPR0_READ(DCRN_CPR0_PLLD); | ||
66 | cpr_pllc = CPR0_READ(DCRN_CPR0_PLLC); | ||
67 | |||
68 | /* | ||
69 | * Determine forward divider A | ||
70 | */ | ||
71 | pllFwdDiv = ((cpr_plld & PLLD_FWDVA_MASK) >> 16); | ||
72 | |||
73 | /* | ||
74 | * Determine forward divider B | ||
75 | */ | ||
76 | pllFwdDivB = ((cpr_plld & PLLD_FWDVB_MASK) >> 8); | ||
77 | if (pllFwdDivB == 0) | ||
78 | pllFwdDivB = 8; | ||
79 | |||
80 | /* | ||
81 | * Determine FBK_DIV. | ||
82 | */ | ||
83 | pllFbkDiv = ((cpr_plld & PLLD_FBDV_MASK) >> 24); | ||
84 | if (pllFbkDiv == 0) | ||
85 | pllFbkDiv = 256; | ||
86 | |||
87 | /* | ||
88 | * Read CPR_PRIMAD register | ||
89 | */ | ||
90 | cpr_primad = CPR0_READ(DCRN_CPR0_PRIMAD); | ||
91 | |||
92 | /* | ||
93 | * Determine PLB_DIV. | ||
94 | */ | ||
95 | pllPlbDiv = ((cpr_primad & PRIMAD_PLBDV_MASK) >> 16); | ||
96 | if (pllPlbDiv == 0) | ||
97 | pllPlbDiv = 16; | ||
98 | |||
99 | /* | ||
100 | * Determine EXTBUS_DIV. | ||
101 | */ | ||
102 | pllExtBusDiv = (cpr_primad & PRIMAD_EBCDV_MASK); | ||
103 | if (pllExtBusDiv == 0) | ||
104 | pllExtBusDiv = 16; | ||
105 | |||
106 | /* | ||
107 | * Determine OPB_DIV. | ||
108 | */ | ||
109 | pllOpbDiv = ((cpr_primad & PRIMAD_OPBDV_MASK) >> 8); | ||
110 | if (pllOpbDiv == 0) | ||
111 | pllOpbDiv = 16; | ||
112 | |||
113 | /* There is a bug in U-Boot that prevents us from using | ||
114 | * bd.bi_opbfreq because U-Boot doesn't populate it for | ||
115 | * 405EZ. We get to calculate it, yay! | ||
116 | */ | ||
117 | freqOPB = (sysclk *pllFbkDiv) /pllOpbDiv; | ||
118 | |||
119 | freqEBC = (sysclk * pllFbkDiv) / pllExtBusDiv; | ||
120 | |||
121 | plloutb = ((sysclk * ((cpr_pllc & PLLC_SRC_MASK) ? | ||
122 | pllFwdDivB : pllFwdDiv) * | ||
123 | pllFbkDiv) / pllFwdDivB); | ||
124 | |||
125 | np = find_node_by_alias("serial0"); | ||
126 | if (getprop(np, "current-speed", &baud, sizeof(baud)) != sizeof(baud)) | ||
127 | fatal("no current-speed property\n\r"); | ||
128 | |||
129 | udiv = 256; /* Assume lowest possible serial clk */ | ||
130 | div = plloutb / (16 * baud); /* total divisor */ | ||
131 | umin = (plloutb / freqOPB) << 1; /* 2 x OPB divisor */ | ||
132 | diff = 256; /* highest possible */ | ||
133 | |||
134 | /* i is the test udiv value -- start with the largest | ||
135 | * possible (256) to minimize serial clock and constrain | ||
136 | * search to umin. | ||
137 | */ | ||
138 | for (i = 256; i > umin; i--) { | ||
139 | ibdiv = div / i; | ||
140 | est = i * ibdiv; | ||
141 | idiff = (est > div) ? (est-div) : (div-est); | ||
142 | if (idiff == 0) { | ||
143 | udiv = i; | ||
144 | break; /* can't do better */ | ||
145 | } else if (idiff < diff) { | ||
146 | udiv = i; /* best so far */ | ||
147 | diff = idiff; /* update lowest diff*/ | ||
148 | } | ||
149 | } | ||
150 | freqUART = plloutb / udiv; | ||
151 | |||
152 | dt_fixup_cpu_clocks(bd.bi_procfreq, bd.bi_intfreq, bd.bi_plb_busfreq); | ||
153 | dt_fixup_clock("/plb/ebc", freqEBC); | ||
154 | dt_fixup_clock("/plb/opb", freqOPB); | ||
155 | dt_fixup_clock("/plb/opb/serial@ef600300", freqUART); | ||
156 | dt_fixup_clock("/plb/opb/serial@ef600400", freqUART); | ||
157 | } | ||
158 | |||
159 | static void acadia_fixups(void) | ||
160 | { | ||
161 | dt_fixup_memory(bd.bi_memstart, bd.bi_memsize); | ||
162 | get_clocks(); | ||
163 | dt_fixup_mac_address_by_alias("ethernet0", bd.bi_enetaddr); | ||
164 | } | ||
165 | |||
166 | void platform_init(unsigned long r3, unsigned long r4, unsigned long r5, | ||
167 | unsigned long r6, unsigned long r7) | ||
168 | { | ||
169 | CUBOOT_INIT(); | ||
170 | platform_ops.fixups = acadia_fixups; | ||
171 | platform_ops.exit = ibm40x_dbcr_reset; | ||
172 | fdt_init(_dtb_start); | ||
173 | serial_console_init(); | ||
174 | } | ||
diff --git a/arch/powerpc/boot/dts/acadia.dts b/arch/powerpc/boot/dts/acadia.dts new file mode 100644 index 000000000000..57291f61ffe7 --- /dev/null +++ b/arch/powerpc/boot/dts/acadia.dts | |||
@@ -0,0 +1,224 @@ | |||
1 | /* | ||
2 | * Device Tree Source for AMCC Acadia (405EZ) | ||
3 | * | ||
4 | * Copyright IBM Corp. 2008 | ||
5 | * | ||
6 | * This file is licensed under the terms of the GNU General Public License | ||
7 | * version 2. This program is licensed "as is" without any warranty of any | ||
8 | * kind, whether express or implied. | ||
9 | */ | ||
10 | |||
11 | /dts-v1/; | ||
12 | |||
13 | / { | ||
14 | #address-cells = <1>; | ||
15 | #size-cells = <1>; | ||
16 | model = "amcc,acadia"; | ||
17 | compatible = "amcc,acadia"; | ||
18 | dcr-parent = <&{/cpus/cpu@0}>; | ||
19 | |||
20 | aliases { | ||
21 | ethernet0 = &EMAC0; | ||
22 | serial0 = &UART0; | ||
23 | serial1 = &UART1; | ||
24 | }; | ||
25 | |||
26 | cpus { | ||
27 | #address-cells = <1>; | ||
28 | #size-cells = <0>; | ||
29 | |||
30 | cpu@0 { | ||
31 | device_type = "cpu"; | ||
32 | model = "PowerPC,405EZ"; | ||
33 | reg = <0x0>; | ||
34 | clock-frequency = <0>; /* Filled in by wrapper */ | ||
35 | timebase-frequency = <0>; /* Filled in by wrapper */ | ||
36 | i-cache-line-size = <32>; | ||
37 | d-cache-line-size = <32>; | ||
38 | i-cache-size = <16384>; | ||
39 | d-cache-size = <16384>; | ||
40 | dcr-controller; | ||
41 | dcr-access-method = "native"; | ||
42 | }; | ||
43 | }; | ||
44 | |||
45 | memory { | ||
46 | device_type = "memory"; | ||
47 | reg = <0x0 0x0>; /* Filled in by wrapper */ | ||
48 | }; | ||
49 | |||
50 | UIC0: interrupt-controller { | ||
51 | compatible = "ibm,uic-405ez", "ibm,uic"; | ||
52 | interrupt-controller; | ||
53 | dcr-reg = <0x0c0 0x009>; | ||
54 | cell-index = <0>; | ||
55 | #address-cells = <0>; | ||
56 | #size-cells = <0>; | ||
57 | #interrupt-cells = <2>; | ||
58 | }; | ||
59 | |||
60 | plb { | ||
61 | compatible = "ibm,plb-405ez", "ibm,plb3"; | ||
62 | #address-cells = <1>; | ||
63 | #size-cells = <1>; | ||
64 | ranges; | ||
65 | clock-frequency = <0>; /* Filled in by wrapper */ | ||
66 | |||
67 | MAL0: mcmal { | ||
68 | compatible = "ibm,mcmal-405ez", "ibm,mcmal"; | ||
69 | dcr-reg = <0x380 0x62>; | ||
70 | num-tx-chans = <1>; | ||
71 | num-rx-chans = <1>; | ||
72 | interrupt-parent = <&UIC0>; | ||
73 | /* 405EZ has only 3 interrupts to the UIC, as | ||
74 | * SERR, TXDE, and RXDE are or'd together into | ||
75 | * one UIC bit | ||
76 | */ | ||
77 | interrupts = < | ||
78 | 0x13 0x4 /* TXEOB */ | ||
79 | 0x15 0x4 /* RXEOB */ | ||
80 | 0x12 0x4 /* SERR, TXDE, RXDE */>; | ||
81 | }; | ||
82 | |||
83 | POB0: opb { | ||
84 | compatible = "ibm,opb-405ez", "ibm,opb"; | ||
85 | #address-cells = <1>; | ||
86 | #size-cells = <1>; | ||
87 | ranges; | ||
88 | dcr-reg = <0x0a 0x05>; | ||
89 | clock-frequency = <0>; /* Filled in by wrapper */ | ||
90 | |||
91 | UART0: serial@ef600300 { | ||
92 | device_type = "serial"; | ||
93 | compatible = "ns16550"; | ||
94 | reg = <0xef600300 0x8>; | ||
95 | virtual-reg = <0xef600300>; | ||
96 | clock-frequency = <0>; /* Filled in by wrapper */ | ||
97 | current-speed = <115200>; | ||
98 | interrupt-parent = <&UIC0>; | ||
99 | interrupts = <0x5 0x4>; | ||
100 | }; | ||
101 | |||
102 | UART1: serial@ef600400 { | ||
103 | device_type = "serial"; | ||
104 | compatible = "ns16550"; | ||
105 | reg = <0xef600400 0x8>; | ||
106 | clock-frequency = <0>; /* Filled in by wrapper */ | ||
107 | current-speed = <115200>; | ||
108 | interrupt-parent = <&UIC0>; | ||
109 | interrupts = <0x6 0x4>; | ||
110 | }; | ||
111 | |||
112 | IIC: i2c@ef600500 { | ||
113 | compatible = "ibm,iic-405ez", "ibm,iic"; | ||
114 | reg = <0xef600500 0x11>; | ||
115 | interrupt-parent = <&UIC0>; | ||
116 | interrupts = <0xa 0x4>; | ||
117 | }; | ||
118 | |||
119 | GPIO0: gpio@ef600700 { | ||
120 | compatible = "ibm,gpio-405ez"; | ||
121 | reg = <0xef600700 0x20>; | ||
122 | }; | ||
123 | |||
124 | GPIO1: gpio@ef600800 { | ||
125 | compatible = "ibm,gpio-405ez"; | ||
126 | reg = <0xef600800 0x20>; | ||
127 | }; | ||
128 | |||
129 | EMAC0: ethernet@ef600900 { | ||
130 | device_type = "network"; | ||
131 | compatible = "ibm,emac-405ez", "ibm,emac"; | ||
132 | interrupt-parent = <&UIC0>; | ||
133 | interrupts = < | ||
134 | 0x10 0x4 /* Ethernet */ | ||
135 | 0x11 0x4 /* Ethernet Wake up */>; | ||
136 | local-mac-address = [000000000000]; /* Filled in by wrapper */ | ||
137 | reg = <0xef600900 0x70>; | ||
138 | mal-device = <&MAL0>; | ||
139 | mal-tx-channel = <0>; | ||
140 | mal-rx-channel = <0>; | ||
141 | cell-index = <0>; | ||
142 | max-frame-size = <1500>; | ||
143 | rx-fifo-size = <4096>; | ||
144 | tx-fifo-size = <2048>; | ||
145 | phy-mode = "mii"; | ||
146 | phy-map = <0x0>; | ||
147 | }; | ||
148 | |||
149 | CAN0: can@ef601000 { | ||
150 | compatible = "amcc,can-405ez"; | ||
151 | reg = <0xef601000 0x620>; | ||
152 | interrupt-parent = <&UIC0>; | ||
153 | interrupts = <0x7 0x4>; | ||
154 | }; | ||
155 | |||
156 | CAN1: can@ef601800 { | ||
157 | compatible = "amcc,can-405ez"; | ||
158 | reg = <0xef601800 0x620>; | ||
159 | interrupt-parent = <&UIC0>; | ||
160 | interrupts = <0x8 0x4>; | ||
161 | }; | ||
162 | |||
163 | cameleon@ef602000 { | ||
164 | compatible = "amcc,cameleon-405ez"; | ||
165 | reg = <0xef602000 0x800>; | ||
166 | interrupt-parent = <&UIC0>; | ||
167 | interrupts = <0xb 0x4 0xc 0x4>; | ||
168 | }; | ||
169 | |||
170 | ieee1588@ef602800 { | ||
171 | compatible = "amcc,ieee1588-405ez"; | ||
172 | reg = <0xef602800 0x60>; | ||
173 | interrupt-parent = <&UIC0>; | ||
174 | interrupts = <0x4 0x4>; | ||
175 | /* This thing is a bit weird. It has it's own UIC | ||
176 | * that it uses to generate snapshot triggers. We | ||
177 | * don't really support this device yet, and it needs | ||
178 | * work to figure this out. | ||
179 | */ | ||
180 | dcr-reg = <0xe0 0x9>; | ||
181 | }; | ||
182 | |||
183 | usb@ef603000 { | ||
184 | compatible = "ohci-be"; | ||
185 | reg = <0xef603000 0x80>; | ||
186 | interrupts-parent = <&UIC0>; | ||
187 | interrupts = <0xd 0x4 0xe 0x4>; | ||
188 | }; | ||
189 | |||
190 | dac@ef603300 { | ||
191 | compatible = "amcc,dac-405ez"; | ||
192 | reg = <0xef603300 0x40>; | ||
193 | interrupt-parent = <&UIC0>; | ||
194 | interrupts = <0x18 0x4>; | ||
195 | }; | ||
196 | |||
197 | adc@ef603400 { | ||
198 | compatible = "amcc,adc-405ez"; | ||
199 | reg = <0xef603400 0x40>; | ||
200 | interrupt-parent = <&UIC0>; | ||
201 | interrupts = <0x17 0x4>; | ||
202 | }; | ||
203 | |||
204 | spi@ef603500 { | ||
205 | compatible = "amcc,spi-405ez"; | ||
206 | reg = <0xef603500 0x100>; | ||
207 | interrupt-parent = <&UIC0>; | ||
208 | interrupts = <0x9 0x4>; | ||
209 | }; | ||
210 | }; | ||
211 | |||
212 | EBC0: ebc { | ||
213 | compatible = "ibm,ebc-405ez", "ibm,ebc"; | ||
214 | dcr-reg = <0x12 0x2>; | ||
215 | #address-cells = <2>; | ||
216 | #size-cells = <1>; | ||
217 | clock-frequency = <0>; /* Filled in by wrapper */ | ||
218 | }; | ||
219 | }; | ||
220 | |||
221 | chosen { | ||
222 | linux,stdout-path = "/plb/opb/serial@ef600300"; | ||
223 | }; | ||
224 | }; | ||
diff --git a/arch/powerpc/boot/dts/hcu4.dts b/arch/powerpc/boot/dts/hcu4.dts new file mode 100644 index 000000000000..7988598da4c9 --- /dev/null +++ b/arch/powerpc/boot/dts/hcu4.dts | |||
@@ -0,0 +1,168 @@ | |||
1 | /* | ||
2 | * Device Tree Source for Netstal Maschinen HCU4 | ||
3 | * based on the IBM Walnut | ||
4 | * | ||
5 | * Copyright 2008 | ||
6 | * Niklaus Giger <niklaus.giger@member.fsf.org> | ||
7 | * | ||
8 | * Copyright 2007 IBM Corp. | ||
9 | * Josh Boyer <jwboyer@linux.vnet.ibm.com> | ||
10 | * | ||
11 | * This file is licensed under the terms of the GNU General Public | ||
12 | * License version 2. This program is licensed "as is" without | ||
13 | * any warranty of any kind, whether express or implied. | ||
14 | */ | ||
15 | |||
16 | /dts-v1/; | ||
17 | |||
18 | / { | ||
19 | #address-cells = <0x1>; | ||
20 | #size-cells = <0x1>; | ||
21 | model = "netstal,hcu4"; | ||
22 | compatible = "netstal,hcu4"; | ||
23 | dcr-parent = <0x1>; | ||
24 | |||
25 | aliases { | ||
26 | ethernet0 = "/plb/opb/ethernet@ef600800"; | ||
27 | serial0 = "/plb/opb/serial@ef600300"; | ||
28 | }; | ||
29 | |||
30 | cpus { | ||
31 | #address-cells = <0x1>; | ||
32 | #size-cells = <0x0>; | ||
33 | |||
34 | cpu@0 { | ||
35 | device_type = "cpu"; | ||
36 | model = "PowerPC,405GPr"; | ||
37 | reg = <0x0>; | ||
38 | clock-frequency = <0>; /* Filled in by U-Boot */ | ||
39 | timebase-frequency = <0x0>; /* Filled in by U-Boot */ | ||
40 | i-cache-line-size = <0x20>; | ||
41 | d-cache-line-size = <0x20>; | ||
42 | i-cache-size = <0x4000>; | ||
43 | d-cache-size = <0x4000>; | ||
44 | dcr-controller; | ||
45 | dcr-access-method = "native"; | ||
46 | linux,phandle = <0x1>; | ||
47 | }; | ||
48 | }; | ||
49 | |||
50 | memory { | ||
51 | device_type = "memory"; | ||
52 | reg = <0x0 0x0>; /* Filled in by U-Boot */ | ||
53 | }; | ||
54 | |||
55 | UIC0: interrupt-controller { | ||
56 | compatible = "ibm,uic"; | ||
57 | interrupt-controller; | ||
58 | cell-index = <0x0>; | ||
59 | dcr-reg = <0xc0 0x9>; | ||
60 | #address-cells = <0x0>; | ||
61 | #size-cells = <0x0>; | ||
62 | #interrupt-cells = <0x2>; | ||
63 | linux,phandle = <0x2>; | ||
64 | }; | ||
65 | |||
66 | plb { | ||
67 | compatible = "ibm,plb3"; | ||
68 | #address-cells = <0x1>; | ||
69 | #size-cells = <0x1>; | ||
70 | ranges; | ||
71 | clock-frequency = <0x0>; /* Filled in by U-Boot */ | ||
72 | |||
73 | SDRAM0: memory-controller { | ||
74 | compatible = "ibm,sdram-405gp"; | ||
75 | dcr-reg = <0x10 0x2>; | ||
76 | }; | ||
77 | |||
78 | MAL: mcmal { | ||
79 | compatible = "ibm,mcmal-405gp", "ibm,mcmal"; | ||
80 | dcr-reg = <0x180 0x62>; | ||
81 | num-tx-chans = <0x1>; | ||
82 | num-rx-chans = <0x1>; | ||
83 | interrupt-parent = <0x2>; | ||
84 | interrupts = <0xb 0x4 0xc 0x4 0xa 0x4 0xd 0x4 0xe 0x4>; | ||
85 | linux,phandle = <0x3>; | ||
86 | }; | ||
87 | |||
88 | POB0: opb { | ||
89 | compatible = "ibm,opb-405gp", "ibm,opb"; | ||
90 | #address-cells = <0x1>; | ||
91 | #size-cells = <0x1>; | ||
92 | ranges = <0xef600000 0xef600000 0xa00000>; | ||
93 | dcr-reg = <0xa0 0x5>; | ||
94 | clock-frequency = <0x0>; /* Filled in by U-Boot */ | ||
95 | |||
96 | UART0: serial@ef600300 { | ||
97 | device_type = "serial"; | ||
98 | compatible = "ns16550"; | ||
99 | reg = <0xef600300 0x8>; | ||
100 | virtual-reg = <0xef600300>; | ||
101 | clock-frequency = <0x0>;/* Filled in by U-Boot */ | ||
102 | current-speed = <0>; /* Filled in by U-Boot */ | ||
103 | interrupt-parent = <0x2>; | ||
104 | interrupts = <0x0 0x4>; | ||
105 | }; | ||
106 | |||
107 | IIC: i2c@ef600500 { | ||
108 | compatible = "ibm,iic-405gp", "ibm,iic"; | ||
109 | reg = <0xef600500 0x11>; | ||
110 | interrupt-parent = <0x2>; | ||
111 | interrupts = <0x2 0x4>; | ||
112 | }; | ||
113 | |||
114 | GPIO: gpio@ef600700 { | ||
115 | compatible = "ibm,gpio-405gp"; | ||
116 | reg = <0xef600700 0x20>; | ||
117 | }; | ||
118 | |||
119 | EMAC: ethernet@ef600800 { | ||
120 | device_type = "network"; | ||
121 | compatible = "ibm,emac-405gp", "ibm,emac"; | ||
122 | interrupt-parent = <0x2>; | ||
123 | interrupts = <0xf 0x4 0x9 0x4>; | ||
124 | local-mac-address = [00 00 00 00 00 00]; | ||
125 | reg = <0xef600800 0x70>; | ||
126 | mal-device = <0x3>; | ||
127 | mal-tx-channel = <0x0>; | ||
128 | mal-rx-channel = <0x0>; | ||
129 | cell-index = <0x0>; | ||
130 | max-frame-size = <0x5dc>; | ||
131 | rx-fifo-size = <0x1000>; | ||
132 | tx-fifo-size = <0x800>; | ||
133 | phy-mode = "rmii"; | ||
134 | phy-map = <0x1>; | ||
135 | }; | ||
136 | }; | ||
137 | |||
138 | EBC0: ebc { | ||
139 | compatible = "ibm,ebc-405gp", "ibm,ebc"; | ||
140 | dcr-reg = <0x12 0x2>; | ||
141 | #address-cells = <0x2>; | ||
142 | #size-cells = <0x1>; | ||
143 | clock-frequency = <0x0>; /* Filled in by U-Boot */ | ||
144 | |||
145 | sram@0,0 { | ||
146 | reg = <0x0 0x0 0x80000>; | ||
147 | }; | ||
148 | |||
149 | flash@0,80000 { | ||
150 | compatible = "jedec-flash"; | ||
151 | bank-width = <0x1>; | ||
152 | reg = <0x0 0x80000 0x80000>; | ||
153 | #address-cells = <0x1>; | ||
154 | #size-cells = <0x1>; | ||
155 | |||
156 | partition@0 { | ||
157 | label = "OpenBIOS"; | ||
158 | reg = <0x0 0x80000>; | ||
159 | read-only; | ||
160 | }; | ||
161 | }; | ||
162 | }; | ||
163 | }; | ||
164 | |||
165 | chosen { | ||
166 | linux,stdout-path = "/plb/opb/serial@ef600300"; | ||
167 | }; | ||
168 | }; | ||
diff --git a/arch/powerpc/boot/dts/mpc8315erdb.dts b/arch/powerpc/boot/dts/mpc8315erdb.dts index 7449e54c1a90..6b850670de1d 100644 --- a/arch/powerpc/boot/dts/mpc8315erdb.dts +++ b/arch/powerpc/boot/dts/mpc8315erdb.dts | |||
@@ -121,6 +121,14 @@ | |||
121 | compatible = "dallas,ds1339"; | 121 | compatible = "dallas,ds1339"; |
122 | reg = <0x68>; | 122 | reg = <0x68>; |
123 | }; | 123 | }; |
124 | |||
125 | mcu_pio: mcu@a { | ||
126 | #gpio-cells = <2>; | ||
127 | compatible = "fsl,mc9s08qg8-mpc8315erdb", | ||
128 | "fsl,mcu-mpc8349emitx"; | ||
129 | reg = <0x0a>; | ||
130 | gpio-controller; | ||
131 | }; | ||
124 | }; | 132 | }; |
125 | 133 | ||
126 | spi@7000 { | 134 | spi@7000 { |
diff --git a/arch/powerpc/boot/dts/mpc832x_mds.dts b/arch/powerpc/boot/dts/mpc832x_mds.dts index e4cc1768f241..57c595bf1071 100644 --- a/arch/powerpc/boot/dts/mpc832x_mds.dts +++ b/arch/powerpc/boot/dts/mpc832x_mds.dts | |||
@@ -60,7 +60,7 @@ | |||
60 | }; | 60 | }; |
61 | 61 | ||
62 | bcsr@f8000000 { | 62 | bcsr@f8000000 { |
63 | device_type = "board-control"; | 63 | compatible = "fsl,mpc8323mds-bcsr"; |
64 | reg = <0xf8000000 0x8000>; | 64 | reg = <0xf8000000 0x8000>; |
65 | }; | 65 | }; |
66 | 66 | ||
diff --git a/arch/powerpc/boot/dts/mpc8349emitx.dts b/arch/powerpc/boot/dts/mpc8349emitx.dts index 5cedf373a1d8..2c9d54a35bc3 100644 --- a/arch/powerpc/boot/dts/mpc8349emitx.dts +++ b/arch/powerpc/boot/dts/mpc8349emitx.dts | |||
@@ -83,6 +83,14 @@ | |||
83 | interrupts = <15 0x8>; | 83 | interrupts = <15 0x8>; |
84 | interrupt-parent = <&ipic>; | 84 | interrupt-parent = <&ipic>; |
85 | dfsrr; | 85 | dfsrr; |
86 | |||
87 | rtc@68 { | ||
88 | device_type = "rtc"; | ||
89 | compatible = "dallas,ds1339"; | ||
90 | reg = <0x68>; | ||
91 | interrupts = <18 0x8>; | ||
92 | interrupt-parent = <&ipic>; | ||
93 | }; | ||
86 | }; | 94 | }; |
87 | 95 | ||
88 | spi@7000 { | 96 | spi@7000 { |
@@ -131,6 +139,14 @@ | |||
131 | interrupt-parent = <&ipic>; | 139 | interrupt-parent = <&ipic>; |
132 | interrupts = <71 8>; | 140 | interrupts = <71 8>; |
133 | }; | 141 | }; |
142 | |||
143 | mcu_pio: mcu@a { | ||
144 | #gpio-cells = <2>; | ||
145 | compatible = "fsl,mc9s08qg8-mpc8349emitx", | ||
146 | "fsl,mcu-mpc8349emitx"; | ||
147 | reg = <0x0a>; | ||
148 | gpio-controller; | ||
149 | }; | ||
134 | }; | 150 | }; |
135 | 151 | ||
136 | usb@22000 { | 152 | usb@22000 { |
diff --git a/arch/powerpc/boot/dts/mpc8349emitxgp.dts b/arch/powerpc/boot/dts/mpc8349emitxgp.dts index 81ae1d3e9440..fa40647ee62e 100644 --- a/arch/powerpc/boot/dts/mpc8349emitxgp.dts +++ b/arch/powerpc/boot/dts/mpc8349emitxgp.dts | |||
@@ -81,6 +81,14 @@ | |||
81 | interrupts = <15 0x8>; | 81 | interrupts = <15 0x8>; |
82 | interrupt-parent = <&ipic>; | 82 | interrupt-parent = <&ipic>; |
83 | dfsrr; | 83 | dfsrr; |
84 | |||
85 | rtc@68 { | ||
86 | device_type = "rtc"; | ||
87 | compatible = "dallas,ds1339"; | ||
88 | reg = <0x68>; | ||
89 | interrupts = <18 0x8>; | ||
90 | interrupt-parent = <&ipic>; | ||
91 | }; | ||
84 | }; | 92 | }; |
85 | 93 | ||
86 | spi@7000 { | 94 | spi@7000 { |
diff --git a/arch/powerpc/boot/dts/mpc834x_mds.dts b/arch/powerpc/boot/dts/mpc834x_mds.dts index 04bfde3ea605..c986c541e9bb 100644 --- a/arch/powerpc/boot/dts/mpc834x_mds.dts +++ b/arch/powerpc/boot/dts/mpc834x_mds.dts | |||
@@ -49,7 +49,7 @@ | |||
49 | }; | 49 | }; |
50 | 50 | ||
51 | bcsr@e2400000 { | 51 | bcsr@e2400000 { |
52 | device_type = "board-control"; | 52 | compatible = "fsl,mpc8349mds-bcsr"; |
53 | reg = <0xe2400000 0x8000>; | 53 | reg = <0xe2400000 0x8000>; |
54 | }; | 54 | }; |
55 | 55 | ||
diff --git a/arch/powerpc/boot/dts/mpc836x_mds.dts b/arch/powerpc/boot/dts/mpc836x_mds.dts index 66a12d2631fb..14534d04e4db 100644 --- a/arch/powerpc/boot/dts/mpc836x_mds.dts +++ b/arch/powerpc/boot/dts/mpc836x_mds.dts | |||
@@ -69,7 +69,7 @@ | |||
69 | }; | 69 | }; |
70 | 70 | ||
71 | bcsr@1,0 { | 71 | bcsr@1,0 { |
72 | device_type = "board-control"; | 72 | compatible = "fsl,mpc8360mds-bcsr"; |
73 | reg = <1 0 0x8000>; | 73 | reg = <1 0 0x8000>; |
74 | }; | 74 | }; |
75 | }; | 75 | }; |
diff --git a/arch/powerpc/boot/dts/mpc8377_rdb.dts b/arch/powerpc/boot/dts/mpc8377_rdb.dts index 53191ba67aaa..435ef3dd022d 100644 --- a/arch/powerpc/boot/dts/mpc8377_rdb.dts +++ b/arch/powerpc/boot/dts/mpc8377_rdb.dts | |||
@@ -121,6 +121,14 @@ | |||
121 | compatible = "dallas,ds1339"; | 121 | compatible = "dallas,ds1339"; |
122 | reg = <0x68>; | 122 | reg = <0x68>; |
123 | }; | 123 | }; |
124 | |||
125 | mcu_pio: mcu@a { | ||
126 | #gpio-cells = <2>; | ||
127 | compatible = "fsl,mc9s08qg8-mpc8377erdb", | ||
128 | "fsl,mcu-mpc8349emitx"; | ||
129 | reg = <0x0a>; | ||
130 | gpio-controller; | ||
131 | }; | ||
124 | }; | 132 | }; |
125 | 133 | ||
126 | i2c@3100 { | 134 | i2c@3100 { |
diff --git a/arch/powerpc/boot/dts/mpc8378_rdb.dts b/arch/powerpc/boot/dts/mpc8378_rdb.dts index 4a09153d160c..b11e68f56a06 100644 --- a/arch/powerpc/boot/dts/mpc8378_rdb.dts +++ b/arch/powerpc/boot/dts/mpc8378_rdb.dts | |||
@@ -121,6 +121,14 @@ | |||
121 | compatible = "dallas,ds1339"; | 121 | compatible = "dallas,ds1339"; |
122 | reg = <0x68>; | 122 | reg = <0x68>; |
123 | }; | 123 | }; |
124 | |||
125 | mcu_pio: mcu@a { | ||
126 | #gpio-cells = <2>; | ||
127 | compatible = "fsl,mc9s08qg8-mpc8378erdb", | ||
128 | "fsl,mcu-mpc8349emitx"; | ||
129 | reg = <0x0a>; | ||
130 | gpio-controller; | ||
131 | }; | ||
124 | }; | 132 | }; |
125 | 133 | ||
126 | i2c@3100 { | 134 | i2c@3100 { |
diff --git a/arch/powerpc/boot/dts/mpc8379_rdb.dts b/arch/powerpc/boot/dts/mpc8379_rdb.dts index bbd884ac9dc0..337af6ea26d3 100644 --- a/arch/powerpc/boot/dts/mpc8379_rdb.dts +++ b/arch/powerpc/boot/dts/mpc8379_rdb.dts | |||
@@ -121,6 +121,14 @@ | |||
121 | compatible = "dallas,ds1339"; | 121 | compatible = "dallas,ds1339"; |
122 | reg = <0x68>; | 122 | reg = <0x68>; |
123 | }; | 123 | }; |
124 | |||
125 | mcu_pio: mcu@a { | ||
126 | #gpio-cells = <2>; | ||
127 | compatible = "fsl,mc9s08qg8-mpc8379erdb", | ||
128 | "fsl,mcu-mpc8349emitx"; | ||
129 | reg = <0x0a>; | ||
130 | gpio-controller; | ||
131 | }; | ||
124 | }; | 132 | }; |
125 | 133 | ||
126 | i2c@3100 { | 134 | i2c@3100 { |
diff --git a/arch/powerpc/boot/dts/mpc8536ds.dts b/arch/powerpc/boot/dts/mpc8536ds.dts index 93fdd99901b6..35db1e5440c7 100644 --- a/arch/powerpc/boot/dts/mpc8536ds.dts +++ b/arch/powerpc/boot/dts/mpc8536ds.dts | |||
@@ -109,7 +109,7 @@ | |||
109 | reg = <0x0 0x80>; | 109 | reg = <0x0 0x80>; |
110 | cell-index = <0>; | 110 | cell-index = <0>; |
111 | interrupt-parent = <&mpic>; | 111 | interrupt-parent = <&mpic>; |
112 | interrupts = <14 0x2>; | 112 | interrupts = <20 2>; |
113 | }; | 113 | }; |
114 | dma-channel@80 { | 114 | dma-channel@80 { |
115 | compatible = "fsl,mpc8536-dma-channel", | 115 | compatible = "fsl,mpc8536-dma-channel", |
@@ -117,7 +117,7 @@ | |||
117 | reg = <0x80 0x80>; | 117 | reg = <0x80 0x80>; |
118 | cell-index = <1>; | 118 | cell-index = <1>; |
119 | interrupt-parent = <&mpic>; | 119 | interrupt-parent = <&mpic>; |
120 | interrupts = <15 0x2>; | 120 | interrupts = <21 2>; |
121 | }; | 121 | }; |
122 | dma-channel@100 { | 122 | dma-channel@100 { |
123 | compatible = "fsl,mpc8536-dma-channel", | 123 | compatible = "fsl,mpc8536-dma-channel", |
@@ -125,7 +125,7 @@ | |||
125 | reg = <0x100 0x80>; | 125 | reg = <0x100 0x80>; |
126 | cell-index = <2>; | 126 | cell-index = <2>; |
127 | interrupt-parent = <&mpic>; | 127 | interrupt-parent = <&mpic>; |
128 | interrupts = <16 0x2>; | 128 | interrupts = <22 2>; |
129 | }; | 129 | }; |
130 | dma-channel@180 { | 130 | dma-channel@180 { |
131 | compatible = "fsl,mpc8536-dma-channel", | 131 | compatible = "fsl,mpc8536-dma-channel", |
@@ -133,7 +133,7 @@ | |||
133 | reg = <0x180 0x80>; | 133 | reg = <0x180 0x80>; |
134 | cell-index = <3>; | 134 | cell-index = <3>; |
135 | interrupt-parent = <&mpic>; | 135 | interrupt-parent = <&mpic>; |
136 | interrupts = <17 0x2>; | 136 | interrupts = <23 2>; |
137 | }; | 137 | }; |
138 | }; | 138 | }; |
139 | 139 | ||
@@ -180,7 +180,7 @@ | |||
180 | enet0: ethernet@24000 { | 180 | enet0: ethernet@24000 { |
181 | cell-index = <0>; | 181 | cell-index = <0>; |
182 | device_type = "network"; | 182 | device_type = "network"; |
183 | model = "TSEC"; | 183 | model = "eTSEC"; |
184 | compatible = "gianfar"; | 184 | compatible = "gianfar"; |
185 | reg = <0x24000 0x1000>; | 185 | reg = <0x24000 0x1000>; |
186 | local-mac-address = [ 00 00 00 00 00 00 ]; | 186 | local-mac-address = [ 00 00 00 00 00 00 ]; |
@@ -193,7 +193,7 @@ | |||
193 | enet1: ethernet@26000 { | 193 | enet1: ethernet@26000 { |
194 | cell-index = <1>; | 194 | cell-index = <1>; |
195 | device_type = "network"; | 195 | device_type = "network"; |
196 | model = "TSEC"; | 196 | model = "eTSEC"; |
197 | compatible = "gianfar"; | 197 | compatible = "gianfar"; |
198 | reg = <0x26000 0x1000>; | 198 | reg = <0x26000 0x1000>; |
199 | local-mac-address = [ 00 00 00 00 00 00 ]; | 199 | local-mac-address = [ 00 00 00 00 00 00 ]; |
diff --git a/arch/powerpc/boot/dts/mpc8568mds.dts b/arch/powerpc/boot/dts/mpc8568mds.dts index a15f10343f53..c80158f7741d 100644 --- a/arch/powerpc/boot/dts/mpc8568mds.dts +++ b/arch/powerpc/boot/dts/mpc8568mds.dts | |||
@@ -52,7 +52,7 @@ | |||
52 | }; | 52 | }; |
53 | 53 | ||
54 | bcsr@f8000000 { | 54 | bcsr@f8000000 { |
55 | device_type = "board-control"; | 55 | compatible = "fsl,mpc8568mds-bcsr"; |
56 | reg = <0xf8000000 0x8000>; | 56 | reg = <0xf8000000 0x8000>; |
57 | }; | 57 | }; |
58 | 58 | ||
diff --git a/arch/powerpc/boot/dts/mpc8572ds.dts b/arch/powerpc/boot/dts/mpc8572ds.dts index e124dd18fb5a..cadd4652a695 100644 --- a/arch/powerpc/boot/dts/mpc8572ds.dts +++ b/arch/powerpc/boot/dts/mpc8572ds.dts | |||
@@ -13,8 +13,8 @@ | |||
13 | / { | 13 | / { |
14 | model = "fsl,MPC8572DS"; | 14 | model = "fsl,MPC8572DS"; |
15 | compatible = "fsl,MPC8572DS"; | 15 | compatible = "fsl,MPC8572DS"; |
16 | #address-cells = <1>; | 16 | #address-cells = <2>; |
17 | #size-cells = <1>; | 17 | #size-cells = <2>; |
18 | 18 | ||
19 | aliases { | 19 | aliases { |
20 | ethernet0 = &enet0; | 20 | ethernet0 = &enet0; |
@@ -61,7 +61,6 @@ | |||
61 | 61 | ||
62 | memory { | 62 | memory { |
63 | device_type = "memory"; | 63 | device_type = "memory"; |
64 | reg = <0x0 0x0>; // Filled by U-Boot | ||
65 | }; | 64 | }; |
66 | 65 | ||
67 | soc8572@ffe00000 { | 66 | soc8572@ffe00000 { |
@@ -69,8 +68,8 @@ | |||
69 | #size-cells = <1>; | 68 | #size-cells = <1>; |
70 | device_type = "soc"; | 69 | device_type = "soc"; |
71 | compatible = "simple-bus"; | 70 | compatible = "simple-bus"; |
72 | ranges = <0x0 0xffe00000 0x100000>; | 71 | ranges = <0x0 0 0xffe00000 0x100000>; |
73 | reg = <0xffe00000 0x1000>; // CCSRBAR & soc regs, remove once parse code for immrbase fixed | 72 | reg = <0 0xffe00000 0 0x1000>; // CCSRBAR & soc regs, remove once parse code for immrbase fixed |
74 | bus-frequency = <0>; // Filled out by uboot. | 73 | bus-frequency = <0>; // Filled out by uboot. |
75 | 74 | ||
76 | memory-controller@2000 { | 75 | memory-controller@2000 { |
@@ -351,10 +350,10 @@ | |||
351 | #interrupt-cells = <1>; | 350 | #interrupt-cells = <1>; |
352 | #size-cells = <2>; | 351 | #size-cells = <2>; |
353 | #address-cells = <3>; | 352 | #address-cells = <3>; |
354 | reg = <0xffe08000 0x1000>; | 353 | reg = <0 0xffe08000 0 0x1000>; |
355 | bus-range = <0 255>; | 354 | bus-range = <0 255>; |
356 | ranges = <0x2000000 0x0 0x80000000 0x80000000 0x0 0x20000000 | 355 | ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000 |
357 | 0x1000000 0x0 0x0 0xffc00000 0x0 0x10000>; | 356 | 0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x00010000>; |
358 | clock-frequency = <33333333>; | 357 | clock-frequency = <33333333>; |
359 | interrupt-parent = <&mpic>; | 358 | interrupt-parent = <&mpic>; |
360 | interrupts = <24 2>; | 359 | interrupts = <24 2>; |
@@ -561,10 +560,10 @@ | |||
561 | #interrupt-cells = <1>; | 560 | #interrupt-cells = <1>; |
562 | #size-cells = <2>; | 561 | #size-cells = <2>; |
563 | #address-cells = <3>; | 562 | #address-cells = <3>; |
564 | reg = <0xffe09000 0x1000>; | 563 | reg = <0 0xffe09000 0 0x1000>; |
565 | bus-range = <0 255>; | 564 | bus-range = <0 255>; |
566 | ranges = <0x2000000 0x0 0xa0000000 0xa0000000 0x0 0x20000000 | 565 | ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000 |
567 | 0x1000000 0x0 0x0 0xffc10000 0x0 0x10000>; | 566 | 0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x00010000>; |
568 | clock-frequency = <33333333>; | 567 | clock-frequency = <33333333>; |
569 | interrupt-parent = <&mpic>; | 568 | interrupt-parent = <&mpic>; |
570 | interrupts = <26 2>; | 569 | interrupts = <26 2>; |
@@ -598,10 +597,10 @@ | |||
598 | #interrupt-cells = <1>; | 597 | #interrupt-cells = <1>; |
599 | #size-cells = <2>; | 598 | #size-cells = <2>; |
600 | #address-cells = <3>; | 599 | #address-cells = <3>; |
601 | reg = <0xffe0a000 0x1000>; | 600 | reg = <0 0xffe0a000 0 0x1000>; |
602 | bus-range = <0 255>; | 601 | bus-range = <0 255>; |
603 | ranges = <0x2000000 0x0 0xc0000000 0xc0000000 0x0 0x20000000 | 602 | ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000 |
604 | 0x1000000 0x0 0x0 0xffc20000 0x0 0x10000>; | 603 | 0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x00010000>; |
605 | clock-frequency = <33333333>; | 604 | clock-frequency = <33333333>; |
606 | interrupt-parent = <&mpic>; | 605 | interrupt-parent = <&mpic>; |
607 | interrupts = <27 2>; | 606 | interrupts = <27 2>; |
diff --git a/arch/powerpc/boot/libfdt-wrapper.c b/arch/powerpc/boot/libfdt-wrapper.c index c541fd8a95d4..9276327bc2bb 100644 --- a/arch/powerpc/boot/libfdt-wrapper.c +++ b/arch/powerpc/boot/libfdt-wrapper.c | |||
@@ -105,6 +105,11 @@ static int fdt_wrapper_setprop(const void *devp, const char *name, | |||
105 | return check_err(rc); | 105 | return check_err(rc); |
106 | } | 106 | } |
107 | 107 | ||
108 | static int fdt_wrapper_del_node(const void *devp) | ||
109 | { | ||
110 | return fdt_del_node(fdt, devp_offset(devp)); | ||
111 | } | ||
112 | |||
108 | static void *fdt_wrapper_get_parent(const void *devp) | 113 | static void *fdt_wrapper_get_parent(const void *devp) |
109 | { | 114 | { |
110 | return offset_devp(fdt_parent_offset(fdt, devp_offset(devp))); | 115 | return offset_devp(fdt_parent_offset(fdt, devp_offset(devp))); |
@@ -165,6 +170,7 @@ static unsigned long fdt_wrapper_finalize(void) | |||
165 | void fdt_init(void *blob) | 170 | void fdt_init(void *blob) |
166 | { | 171 | { |
167 | int err; | 172 | int err; |
173 | int bufsize; | ||
168 | 174 | ||
169 | dt_ops.finddevice = fdt_wrapper_finddevice; | 175 | dt_ops.finddevice = fdt_wrapper_finddevice; |
170 | dt_ops.getprop = fdt_wrapper_getprop; | 176 | dt_ops.getprop = fdt_wrapper_getprop; |
@@ -173,21 +179,21 @@ void fdt_init(void *blob) | |||
173 | dt_ops.create_node = fdt_wrapper_create_node; | 179 | dt_ops.create_node = fdt_wrapper_create_node; |
174 | dt_ops.find_node_by_prop_value = fdt_wrapper_find_node_by_prop_value; | 180 | dt_ops.find_node_by_prop_value = fdt_wrapper_find_node_by_prop_value; |
175 | dt_ops.find_node_by_compatible = fdt_wrapper_find_node_by_compatible; | 181 | dt_ops.find_node_by_compatible = fdt_wrapper_find_node_by_compatible; |
182 | dt_ops.del_node = fdt_wrapper_del_node; | ||
176 | dt_ops.get_path = fdt_wrapper_get_path; | 183 | dt_ops.get_path = fdt_wrapper_get_path; |
177 | dt_ops.finalize = fdt_wrapper_finalize; | 184 | dt_ops.finalize = fdt_wrapper_finalize; |
178 | 185 | ||
179 | /* Make sure the dt blob is the right version and so forth */ | 186 | /* Make sure the dt blob is the right version and so forth */ |
180 | fdt = blob; | 187 | fdt = blob; |
181 | err = fdt_open_into(fdt, fdt, fdt_totalsize(blob)); | 188 | bufsize = fdt_totalsize(fdt) + 4; |
182 | if (err == -FDT_ERR_NOSPACE) { | 189 | buf = malloc(bufsize); |
183 | int bufsize = fdt_totalsize(fdt) + 4; | 190 | if(!buf) |
184 | buf = malloc(bufsize); | 191 | fatal("malloc failed. can't relocate the device tree\n\r"); |
185 | err = fdt_open_into(fdt, buf, bufsize); | 192 | |
186 | } | 193 | err = fdt_open_into(fdt, buf, bufsize); |
187 | 194 | ||
188 | if (err != 0) | 195 | if (err != 0) |
189 | fatal("fdt_init(): %s\n\r", fdt_strerror(err)); | 196 | fatal("fdt_init(): %s\n\r", fdt_strerror(err)); |
190 | 197 | ||
191 | if (buf) | 198 | fdt = buf; |
192 | fdt = buf; | ||
193 | } | 199 | } |
diff --git a/arch/powerpc/boot/main.c b/arch/powerpc/boot/main.c index 9e7f3ddd9913..ae32801ebd69 100644 --- a/arch/powerpc/boot/main.c +++ b/arch/powerpc/boot/main.c | |||
@@ -56,9 +56,19 @@ static struct addr_range prep_kernel(void) | |||
56 | if (platform_ops.vmlinux_alloc) { | 56 | if (platform_ops.vmlinux_alloc) { |
57 | addr = platform_ops.vmlinux_alloc(ei.memsize); | 57 | addr = platform_ops.vmlinux_alloc(ei.memsize); |
58 | } else { | 58 | } else { |
59 | if ((unsigned long)_start < ei.memsize) | 59 | /* |
60 | * Check if the kernel image (without bss) would overwrite the | ||
61 | * bootwrapper. The device tree has been moved in fdt_init() | ||
62 | * to an area allocated with malloc() (somewhere past _end). | ||
63 | */ | ||
64 | if ((unsigned long)_start < ei.loadsize) | ||
60 | fatal("Insufficient memory for kernel at address 0!" | 65 | fatal("Insufficient memory for kernel at address 0!" |
61 | " (_start=%p)\n\r", _start); | 66 | " (_start=%p, uncomressed size=%08x)\n\r", |
67 | _start, ei.loadsize); | ||
68 | |||
69 | if ((unsigned long)_end < ei.memsize) | ||
70 | fatal("The final kernel image would overwrite the " | ||
71 | "device tree\n\r"); | ||
62 | } | 72 | } |
63 | 73 | ||
64 | /* Finally, gunzip the kernel */ | 74 | /* Finally, gunzip the kernel */ |
diff --git a/arch/powerpc/boot/ops.h b/arch/powerpc/boot/ops.h index 321e2f5afe71..b3218ce451bb 100644 --- a/arch/powerpc/boot/ops.h +++ b/arch/powerpc/boot/ops.h | |||
@@ -40,6 +40,7 @@ struct dt_ops { | |||
40 | const int buflen); | 40 | const int buflen); |
41 | int (*setprop)(const void *phandle, const char *name, | 41 | int (*setprop)(const void *phandle, const char *name, |
42 | const void *buf, const int buflen); | 42 | const void *buf, const int buflen); |
43 | int (*del_node)(const void *phandle); | ||
43 | void *(*get_parent)(const void *phandle); | 44 | void *(*get_parent)(const void *phandle); |
44 | /* The node must not already exist. */ | 45 | /* The node must not already exist. */ |
45 | void *(*create_node)(const void *parent, const char *name); | 46 | void *(*create_node)(const void *parent, const char *name); |
@@ -126,6 +127,11 @@ static inline int setprop_str(void *devp, const char *name, const char *buf) | |||
126 | return -1; | 127 | return -1; |
127 | } | 128 | } |
128 | 129 | ||
130 | static inline int del_node(const void *devp) | ||
131 | { | ||
132 | return dt_ops.del_node ? dt_ops.del_node(devp) : -1; | ||
133 | } | ||
134 | |||
129 | static inline void *get_parent(const char *devp) | 135 | static inline void *get_parent(const char *devp) |
130 | { | 136 | { |
131 | return dt_ops.get_parent ? dt_ops.get_parent(devp) : NULL; | 137 | return dt_ops.get_parent ? dt_ops.get_parent(devp) : NULL; |
diff --git a/arch/powerpc/boot/string.S b/arch/powerpc/boot/string.S index 643e4cb2f11d..acc9428f2789 100644 --- a/arch/powerpc/boot/string.S +++ b/arch/powerpc/boot/string.S | |||
@@ -235,7 +235,7 @@ memchr: | |||
235 | .globl memcmp | 235 | .globl memcmp |
236 | memcmp: | 236 | memcmp: |
237 | cmpwi 0,r5,0 | 237 | cmpwi 0,r5,0 |
238 | blelr | 238 | ble 2f |
239 | mtctr r5 | 239 | mtctr r5 |
240 | addi r6,r3,-1 | 240 | addi r6,r3,-1 |
241 | addi r4,r4,-1 | 241 | addi r4,r4,-1 |
@@ -244,6 +244,8 @@ memcmp: | |||
244 | subf. r3,r0,r3 | 244 | subf. r3,r0,r3 |
245 | bdnzt 2,1b | 245 | bdnzt 2,1b |
246 | blr | 246 | blr |
247 | 2: li r3,0 | ||
248 | blr | ||
247 | 249 | ||
248 | 250 | ||
249 | /* | 251 | /* |
diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper index ee0dc41d7c56..f39073511a49 100755 --- a/arch/powerpc/boot/wrapper +++ b/arch/powerpc/boot/wrapper | |||
@@ -306,11 +306,14 @@ fi | |||
306 | 306 | ||
307 | # post-processing needed for some platforms | 307 | # post-processing needed for some platforms |
308 | case "$platform" in | 308 | case "$platform" in |
309 | pseries|chrp) | 309 | pseries) |
310 | ${CROSS}objcopy -O binary -j .fakeelf "$kernel" "$ofile".rpanote | 310 | ${CROSS}objcopy -O binary -j .fakeelf "$kernel" "$ofile".rpanote |
311 | $objbin/addnote "$ofile" "$ofile".rpanote | 311 | $objbin/addnote "$ofile" "$ofile".rpanote |
312 | rm -r "$ofile".rpanote | 312 | rm -r "$ofile".rpanote |
313 | ;; | 313 | ;; |
314 | chrp) | ||
315 | $objbin/addnote -r c00000 "$ofile" | ||
316 | ;; | ||
314 | coff) | 317 | coff) |
315 | ${CROSS}objcopy -O aixcoff-rs6000 --set-start "$entry" "$ofile" | 318 | ${CROSS}objcopy -O aixcoff-rs6000 --set-start "$entry" "$ofile" |
316 | $objbin/hack-coff "$ofile" | 319 | $objbin/hack-coff "$ofile" |
diff --git a/arch/powerpc/configs/40x/acadia_defconfig b/arch/powerpc/configs/40x/acadia_defconfig new file mode 100644 index 000000000000..39bd9eb453f0 --- /dev/null +++ b/arch/powerpc/configs/40x/acadia_defconfig | |||
@@ -0,0 +1,921 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.27-rc5 | ||
4 | # Mon Oct 13 13:47:16 2008 | ||
5 | # | ||
6 | # CONFIG_PPC64 is not set | ||
7 | |||
8 | # | ||
9 | # Processor support | ||
10 | # | ||
11 | # CONFIG_6xx is not set | ||
12 | # CONFIG_PPC_85xx is not set | ||
13 | # CONFIG_PPC_8xx is not set | ||
14 | CONFIG_40x=y | ||
15 | # CONFIG_44x is not set | ||
16 | # CONFIG_E200 is not set | ||
17 | CONFIG_4xx=y | ||
18 | # CONFIG_PPC_MM_SLICES is not set | ||
19 | CONFIG_NOT_COHERENT_CACHE=y | ||
20 | CONFIG_PPC32=y | ||
21 | CONFIG_WORD_SIZE=32 | ||
22 | CONFIG_PPC_MERGE=y | ||
23 | CONFIG_MMU=y | ||
24 | CONFIG_GENERIC_CMOS_UPDATE=y | ||
25 | CONFIG_GENERIC_TIME=y | ||
26 | CONFIG_GENERIC_TIME_VSYSCALL=y | ||
27 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
28 | CONFIG_GENERIC_HARDIRQS=y | ||
29 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | ||
30 | CONFIG_IRQ_PER_CPU=y | ||
31 | CONFIG_STACKTRACE_SUPPORT=y | ||
32 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
33 | CONFIG_LOCKDEP_SUPPORT=y | ||
34 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | ||
35 | CONFIG_ARCH_HAS_ILOG2_U32=y | ||
36 | CONFIG_GENERIC_HWEIGHT=y | ||
37 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
38 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
39 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | ||
40 | CONFIG_PPC=y | ||
41 | CONFIG_EARLY_PRINTK=y | ||
42 | CONFIG_GENERIC_NVRAM=y | ||
43 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | ||
44 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | ||
45 | CONFIG_PPC_OF=y | ||
46 | CONFIG_OF=y | ||
47 | CONFIG_PPC_UDBG_16550=y | ||
48 | # CONFIG_GENERIC_TBSYNC is not set | ||
49 | CONFIG_AUDIT_ARCH=y | ||
50 | CONFIG_GENERIC_BUG=y | ||
51 | # CONFIG_DEFAULT_UIMAGE is not set | ||
52 | CONFIG_PPC_DCR_NATIVE=y | ||
53 | # CONFIG_PPC_DCR_MMIO is not set | ||
54 | CONFIG_PPC_DCR=y | ||
55 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
56 | |||
57 | # | ||
58 | # General setup | ||
59 | # | ||
60 | CONFIG_EXPERIMENTAL=y | ||
61 | CONFIG_BROKEN_ON_SMP=y | ||
62 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
63 | CONFIG_LOCALVERSION="" | ||
64 | CONFIG_LOCALVERSION_AUTO=y | ||
65 | CONFIG_SWAP=y | ||
66 | CONFIG_SYSVIPC=y | ||
67 | CONFIG_SYSVIPC_SYSCTL=y | ||
68 | CONFIG_POSIX_MQUEUE=y | ||
69 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
70 | # CONFIG_TASKSTATS is not set | ||
71 | # CONFIG_AUDIT is not set | ||
72 | # CONFIG_IKCONFIG is not set | ||
73 | CONFIG_LOG_BUF_SHIFT=14 | ||
74 | # CONFIG_CGROUPS is not set | ||
75 | CONFIG_GROUP_SCHED=y | ||
76 | # CONFIG_FAIR_GROUP_SCHED is not set | ||
77 | # CONFIG_RT_GROUP_SCHED is not set | ||
78 | CONFIG_USER_SCHED=y | ||
79 | # CONFIG_CGROUP_SCHED is not set | ||
80 | CONFIG_SYSFS_DEPRECATED=y | ||
81 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
82 | # CONFIG_RELAY is not set | ||
83 | # CONFIG_NAMESPACES is not set | ||
84 | CONFIG_BLK_DEV_INITRD=y | ||
85 | CONFIG_INITRAMFS_SOURCE="" | ||
86 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
87 | CONFIG_SYSCTL=y | ||
88 | CONFIG_EMBEDDED=y | ||
89 | CONFIG_SYSCTL_SYSCALL=y | ||
90 | CONFIG_KALLSYMS=y | ||
91 | CONFIG_KALLSYMS_ALL=y | ||
92 | CONFIG_KALLSYMS_EXTRA_PASS=y | ||
93 | CONFIG_HOTPLUG=y | ||
94 | CONFIG_PRINTK=y | ||
95 | CONFIG_BUG=y | ||
96 | CONFIG_ELF_CORE=y | ||
97 | CONFIG_COMPAT_BRK=y | ||
98 | CONFIG_BASE_FULL=y | ||
99 | CONFIG_FUTEX=y | ||
100 | CONFIG_ANON_INODES=y | ||
101 | CONFIG_EPOLL=y | ||
102 | CONFIG_SIGNALFD=y | ||
103 | CONFIG_TIMERFD=y | ||
104 | CONFIG_EVENTFD=y | ||
105 | CONFIG_SHMEM=y | ||
106 | CONFIG_VM_EVENT_COUNTERS=y | ||
107 | CONFIG_SLUB_DEBUG=y | ||
108 | # CONFIG_SLAB is not set | ||
109 | CONFIG_SLUB=y | ||
110 | # CONFIG_SLOB is not set | ||
111 | # CONFIG_PROFILING is not set | ||
112 | # CONFIG_MARKERS is not set | ||
113 | CONFIG_HAVE_OPROFILE=y | ||
114 | # CONFIG_KPROBES is not set | ||
115 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y | ||
116 | CONFIG_HAVE_IOREMAP_PROT=y | ||
117 | CONFIG_HAVE_KPROBES=y | ||
118 | CONFIG_HAVE_KRETPROBES=y | ||
119 | CONFIG_HAVE_ARCH_TRACEHOOK=y | ||
120 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
121 | # CONFIG_USE_GENERIC_SMP_HELPERS is not set | ||
122 | # CONFIG_HAVE_CLK is not set | ||
123 | CONFIG_PROC_PAGE_MONITOR=y | ||
124 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | ||
125 | CONFIG_SLABINFO=y | ||
126 | CONFIG_RT_MUTEXES=y | ||
127 | # CONFIG_TINY_SHMEM is not set | ||
128 | CONFIG_BASE_SMALL=0 | ||
129 | CONFIG_MODULES=y | ||
130 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
131 | CONFIG_MODULE_UNLOAD=y | ||
132 | # CONFIG_MODULE_FORCE_UNLOAD is not set | ||
133 | # CONFIG_MODVERSIONS is not set | ||
134 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
135 | CONFIG_KMOD=y | ||
136 | CONFIG_BLOCK=y | ||
137 | CONFIG_LBD=y | ||
138 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
139 | # CONFIG_LSF is not set | ||
140 | # CONFIG_BLK_DEV_BSG is not set | ||
141 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
142 | |||
143 | # | ||
144 | # IO Schedulers | ||
145 | # | ||
146 | CONFIG_IOSCHED_NOOP=y | ||
147 | CONFIG_IOSCHED_AS=y | ||
148 | CONFIG_IOSCHED_DEADLINE=y | ||
149 | CONFIG_IOSCHED_CFQ=y | ||
150 | CONFIG_DEFAULT_AS=y | ||
151 | # CONFIG_DEFAULT_DEADLINE is not set | ||
152 | # CONFIG_DEFAULT_CFQ is not set | ||
153 | # CONFIG_DEFAULT_NOOP is not set | ||
154 | CONFIG_DEFAULT_IOSCHED="anticipatory" | ||
155 | CONFIG_CLASSIC_RCU=y | ||
156 | # CONFIG_PPC4xx_PCI_EXPRESS is not set | ||
157 | |||
158 | # | ||
159 | # Platform support | ||
160 | # | ||
161 | # CONFIG_PPC_CELL is not set | ||
162 | # CONFIG_PPC_CELL_NATIVE is not set | ||
163 | # CONFIG_PQ2ADS is not set | ||
164 | CONFIG_ACADIA=y | ||
165 | # CONFIG_EP405 is not set | ||
166 | # CONFIG_KILAUEA is not set | ||
167 | # CONFIG_MAKALU is not set | ||
168 | # CONFIG_WALNUT is not set | ||
169 | # CONFIG_XILINX_VIRTEX_GENERIC_BOARD is not set | ||
170 | CONFIG_PPC40x_SIMPLE=y | ||
171 | CONFIG_405EZ=y | ||
172 | # CONFIG_IPIC is not set | ||
173 | # CONFIG_MPIC is not set | ||
174 | # CONFIG_MPIC_WEIRD is not set | ||
175 | # CONFIG_PPC_I8259 is not set | ||
176 | # CONFIG_PPC_RTAS is not set | ||
177 | # CONFIG_MMIO_NVRAM is not set | ||
178 | # CONFIG_PPC_MPC106 is not set | ||
179 | # CONFIG_PPC_970_NAP is not set | ||
180 | # CONFIG_PPC_INDIRECT_IO is not set | ||
181 | # CONFIG_GENERIC_IOMAP is not set | ||
182 | # CONFIG_CPU_FREQ is not set | ||
183 | # CONFIG_FSL_ULI1575 is not set | ||
184 | |||
185 | # | ||
186 | # Kernel options | ||
187 | # | ||
188 | # CONFIG_HIGHMEM is not set | ||
189 | # CONFIG_TICK_ONESHOT is not set | ||
190 | # CONFIG_NO_HZ is not set | ||
191 | # CONFIG_HIGH_RES_TIMERS is not set | ||
192 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
193 | # CONFIG_HZ_100 is not set | ||
194 | CONFIG_HZ_250=y | ||
195 | # CONFIG_HZ_300 is not set | ||
196 | # CONFIG_HZ_1000 is not set | ||
197 | CONFIG_HZ=250 | ||
198 | # CONFIG_SCHED_HRTICK is not set | ||
199 | CONFIG_PREEMPT_NONE=y | ||
200 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
201 | # CONFIG_PREEMPT is not set | ||
202 | CONFIG_BINFMT_ELF=y | ||
203 | # CONFIG_BINFMT_MISC is not set | ||
204 | # CONFIG_MATH_EMULATION is not set | ||
205 | # CONFIG_IOMMU_HELPER is not set | ||
206 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | ||
207 | CONFIG_ARCH_HAS_WALK_MEMORY=y | ||
208 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | ||
209 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
210 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
211 | CONFIG_SELECT_MEMORY_MODEL=y | ||
212 | CONFIG_FLATMEM_MANUAL=y | ||
213 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
214 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
215 | CONFIG_FLATMEM=y | ||
216 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
217 | # CONFIG_SPARSEMEM_STATIC is not set | ||
218 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
219 | CONFIG_PAGEFLAGS_EXTENDED=y | ||
220 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
221 | CONFIG_MIGRATION=y | ||
222 | # CONFIG_RESOURCES_64BIT is not set | ||
223 | CONFIG_ZONE_DMA_FLAG=1 | ||
224 | CONFIG_BOUNCE=y | ||
225 | CONFIG_VIRT_TO_BUS=y | ||
226 | CONFIG_FORCE_MAX_ZONEORDER=11 | ||
227 | CONFIG_PROC_DEVICETREE=y | ||
228 | # CONFIG_CMDLINE_BOOL is not set | ||
229 | CONFIG_EXTRA_TARGETS="" | ||
230 | # CONFIG_PM is not set | ||
231 | CONFIG_SECCOMP=y | ||
232 | CONFIG_ISA_DMA_API=y | ||
233 | |||
234 | # | ||
235 | # Bus options | ||
236 | # | ||
237 | CONFIG_ZONE_DMA=y | ||
238 | CONFIG_PPC_INDIRECT_PCI=y | ||
239 | CONFIG_4xx_SOC=y | ||
240 | CONFIG_PPC_PCI_CHOICE=y | ||
241 | CONFIG_PCI=y | ||
242 | CONFIG_PCI_DOMAINS=y | ||
243 | CONFIG_PCI_SYSCALL=y | ||
244 | # CONFIG_PCIEPORTBUS is not set | ||
245 | CONFIG_ARCH_SUPPORTS_MSI=y | ||
246 | # CONFIG_PCI_MSI is not set | ||
247 | CONFIG_PCI_LEGACY=y | ||
248 | # CONFIG_PCI_DEBUG is not set | ||
249 | # CONFIG_PCCARD is not set | ||
250 | # CONFIG_HOTPLUG_PCI is not set | ||
251 | # CONFIG_HAS_RAPIDIO is not set | ||
252 | |||
253 | # | ||
254 | # Advanced setup | ||
255 | # | ||
256 | # CONFIG_ADVANCED_OPTIONS is not set | ||
257 | |||
258 | # | ||
259 | # Default settings for advanced configuration options are used | ||
260 | # | ||
261 | CONFIG_LOWMEM_SIZE=0x30000000 | ||
262 | CONFIG_PAGE_OFFSET=0xc0000000 | ||
263 | CONFIG_KERNEL_START=0xc0000000 | ||
264 | CONFIG_PHYSICAL_START=0x00000000 | ||
265 | CONFIG_TASK_SIZE=0xc0000000 | ||
266 | CONFIG_CONSISTENT_START=0xff100000 | ||
267 | CONFIG_CONSISTENT_SIZE=0x00200000 | ||
268 | CONFIG_NET=y | ||
269 | |||
270 | # | ||
271 | # Networking options | ||
272 | # | ||
273 | CONFIG_PACKET=y | ||
274 | # CONFIG_PACKET_MMAP is not set | ||
275 | CONFIG_UNIX=y | ||
276 | # CONFIG_NET_KEY is not set | ||
277 | CONFIG_INET=y | ||
278 | # CONFIG_IP_MULTICAST is not set | ||
279 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
280 | CONFIG_IP_FIB_HASH=y | ||
281 | CONFIG_IP_PNP=y | ||
282 | CONFIG_IP_PNP_DHCP=y | ||
283 | CONFIG_IP_PNP_BOOTP=y | ||
284 | # CONFIG_IP_PNP_RARP is not set | ||
285 | # CONFIG_NET_IPIP is not set | ||
286 | # CONFIG_NET_IPGRE is not set | ||
287 | # CONFIG_ARPD is not set | ||
288 | # CONFIG_SYN_COOKIES is not set | ||
289 | # CONFIG_INET_AH is not set | ||
290 | # CONFIG_INET_ESP is not set | ||
291 | # CONFIG_INET_IPCOMP is not set | ||
292 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
293 | # CONFIG_INET_TUNNEL is not set | ||
294 | # CONFIG_INET_XFRM_MODE_TRANSPORT is not set | ||
295 | # CONFIG_INET_XFRM_MODE_TUNNEL is not set | ||
296 | # CONFIG_INET_XFRM_MODE_BEET is not set | ||
297 | # CONFIG_INET_LRO is not set | ||
298 | CONFIG_INET_DIAG=y | ||
299 | CONFIG_INET_TCP_DIAG=y | ||
300 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
301 | CONFIG_TCP_CONG_CUBIC=y | ||
302 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
303 | # CONFIG_TCP_MD5SIG is not set | ||
304 | # CONFIG_IPV6 is not set | ||
305 | # CONFIG_NETWORK_SECMARK is not set | ||
306 | # CONFIG_NETFILTER is not set | ||
307 | # CONFIG_IP_DCCP is not set | ||
308 | # CONFIG_IP_SCTP is not set | ||
309 | # CONFIG_TIPC is not set | ||
310 | # CONFIG_ATM is not set | ||
311 | # CONFIG_BRIDGE is not set | ||
312 | # CONFIG_VLAN_8021Q is not set | ||
313 | # CONFIG_DECNET is not set | ||
314 | # CONFIG_LLC2 is not set | ||
315 | # CONFIG_IPX is not set | ||
316 | # CONFIG_ATALK is not set | ||
317 | # CONFIG_X25 is not set | ||
318 | # CONFIG_LAPB is not set | ||
319 | # CONFIG_ECONET is not set | ||
320 | # CONFIG_WAN_ROUTER is not set | ||
321 | # CONFIG_NET_SCHED is not set | ||
322 | |||
323 | # | ||
324 | # Network testing | ||
325 | # | ||
326 | # CONFIG_NET_PKTGEN is not set | ||
327 | # CONFIG_HAMRADIO is not set | ||
328 | # CONFIG_CAN is not set | ||
329 | # CONFIG_IRDA is not set | ||
330 | # CONFIG_BT is not set | ||
331 | # CONFIG_AF_RXRPC is not set | ||
332 | |||
333 | # | ||
334 | # Wireless | ||
335 | # | ||
336 | # CONFIG_CFG80211 is not set | ||
337 | # CONFIG_WIRELESS_EXT is not set | ||
338 | # CONFIG_MAC80211 is not set | ||
339 | # CONFIG_IEEE80211 is not set | ||
340 | # CONFIG_RFKILL is not set | ||
341 | # CONFIG_NET_9P is not set | ||
342 | |||
343 | # | ||
344 | # Device Drivers | ||
345 | # | ||
346 | |||
347 | # | ||
348 | # Generic Driver Options | ||
349 | # | ||
350 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
351 | CONFIG_STANDALONE=y | ||
352 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
353 | CONFIG_FW_LOADER=y | ||
354 | CONFIG_FIRMWARE_IN_KERNEL=y | ||
355 | CONFIG_EXTRA_FIRMWARE="" | ||
356 | # CONFIG_DEBUG_DRIVER is not set | ||
357 | # CONFIG_DEBUG_DEVRES is not set | ||
358 | # CONFIG_SYS_HYPERVISOR is not set | ||
359 | CONFIG_CONNECTOR=y | ||
360 | CONFIG_PROC_EVENTS=y | ||
361 | CONFIG_MTD=y | ||
362 | # CONFIG_MTD_DEBUG is not set | ||
363 | # CONFIG_MTD_CONCAT is not set | ||
364 | CONFIG_MTD_PARTITIONS=y | ||
365 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
366 | CONFIG_MTD_CMDLINE_PARTS=y | ||
367 | CONFIG_MTD_OF_PARTS=y | ||
368 | # CONFIG_MTD_AR7_PARTS is not set | ||
369 | |||
370 | # | ||
371 | # User Modules And Translation Layers | ||
372 | # | ||
373 | CONFIG_MTD_CHAR=y | ||
374 | CONFIG_MTD_BLKDEVS=m | ||
375 | CONFIG_MTD_BLOCK=m | ||
376 | # CONFIG_MTD_BLOCK_RO is not set | ||
377 | # CONFIG_FTL is not set | ||
378 | # CONFIG_NFTL is not set | ||
379 | # CONFIG_INFTL is not set | ||
380 | # CONFIG_RFD_FTL is not set | ||
381 | # CONFIG_SSFDC is not set | ||
382 | # CONFIG_MTD_OOPS is not set | ||
383 | |||
384 | # | ||
385 | # RAM/ROM/Flash chip drivers | ||
386 | # | ||
387 | CONFIG_MTD_CFI=y | ||
388 | CONFIG_MTD_JEDECPROBE=y | ||
389 | CONFIG_MTD_GEN_PROBE=y | ||
390 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
391 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
392 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
393 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
394 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
395 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
396 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
397 | CONFIG_MTD_CFI_I1=y | ||
398 | CONFIG_MTD_CFI_I2=y | ||
399 | # CONFIG_MTD_CFI_I4 is not set | ||
400 | # CONFIG_MTD_CFI_I8 is not set | ||
401 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
402 | CONFIG_MTD_CFI_AMDSTD=y | ||
403 | # CONFIG_MTD_CFI_STAA is not set | ||
404 | CONFIG_MTD_CFI_UTIL=y | ||
405 | # CONFIG_MTD_RAM is not set | ||
406 | # CONFIG_MTD_ROM is not set | ||
407 | # CONFIG_MTD_ABSENT is not set | ||
408 | |||
409 | # | ||
410 | # Mapping drivers for chip access | ||
411 | # | ||
412 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
413 | # CONFIG_MTD_PHYSMAP is not set | ||
414 | CONFIG_MTD_PHYSMAP_OF=y | ||
415 | # CONFIG_MTD_INTEL_VR_NOR is not set | ||
416 | # CONFIG_MTD_PLATRAM is not set | ||
417 | |||
418 | # | ||
419 | # Self-contained MTD device drivers | ||
420 | # | ||
421 | # CONFIG_MTD_PMC551 is not set | ||
422 | # CONFIG_MTD_SLRAM is not set | ||
423 | # CONFIG_MTD_PHRAM is not set | ||
424 | # CONFIG_MTD_MTDRAM is not set | ||
425 | # CONFIG_MTD_BLOCK2MTD is not set | ||
426 | |||
427 | # | ||
428 | # Disk-On-Chip Device Drivers | ||
429 | # | ||
430 | # CONFIG_MTD_DOC2000 is not set | ||
431 | # CONFIG_MTD_DOC2001 is not set | ||
432 | # CONFIG_MTD_DOC2001PLUS is not set | ||
433 | # CONFIG_MTD_NAND is not set | ||
434 | # CONFIG_MTD_ONENAND is not set | ||
435 | |||
436 | # | ||
437 | # UBI - Unsorted block images | ||
438 | # | ||
439 | # CONFIG_MTD_UBI is not set | ||
440 | CONFIG_OF_DEVICE=y | ||
441 | # CONFIG_PARPORT is not set | ||
442 | CONFIG_BLK_DEV=y | ||
443 | # CONFIG_BLK_DEV_FD is not set | ||
444 | # CONFIG_BLK_CPQ_DA is not set | ||
445 | # CONFIG_BLK_CPQ_CISS_DA is not set | ||
446 | # CONFIG_BLK_DEV_DAC960 is not set | ||
447 | # CONFIG_BLK_DEV_UMEM is not set | ||
448 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
449 | # CONFIG_BLK_DEV_LOOP is not set | ||
450 | # CONFIG_BLK_DEV_NBD is not set | ||
451 | # CONFIG_BLK_DEV_SX8 is not set | ||
452 | CONFIG_BLK_DEV_RAM=y | ||
453 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
454 | CONFIG_BLK_DEV_RAM_SIZE=35000 | ||
455 | # CONFIG_BLK_DEV_XIP is not set | ||
456 | # CONFIG_CDROM_PKTCDVD is not set | ||
457 | # CONFIG_ATA_OVER_ETH is not set | ||
458 | # CONFIG_XILINX_SYSACE is not set | ||
459 | # CONFIG_BLK_DEV_HD is not set | ||
460 | # CONFIG_MISC_DEVICES is not set | ||
461 | CONFIG_HAVE_IDE=y | ||
462 | # CONFIG_IDE is not set | ||
463 | |||
464 | # | ||
465 | # SCSI device support | ||
466 | # | ||
467 | # CONFIG_RAID_ATTRS is not set | ||
468 | # CONFIG_SCSI is not set | ||
469 | # CONFIG_SCSI_DMA is not set | ||
470 | # CONFIG_SCSI_NETLINK is not set | ||
471 | # CONFIG_ATA is not set | ||
472 | # CONFIG_MD is not set | ||
473 | # CONFIG_FUSION is not set | ||
474 | |||
475 | # | ||
476 | # IEEE 1394 (FireWire) support | ||
477 | # | ||
478 | |||
479 | # | ||
480 | # Enable only one of the two stacks, unless you know what you are doing | ||
481 | # | ||
482 | # CONFIG_FIREWIRE is not set | ||
483 | # CONFIG_IEEE1394 is not set | ||
484 | # CONFIG_I2O is not set | ||
485 | # CONFIG_MACINTOSH_DRIVERS is not set | ||
486 | CONFIG_NETDEVICES=y | ||
487 | # CONFIG_DUMMY is not set | ||
488 | # CONFIG_BONDING is not set | ||
489 | # CONFIG_MACVLAN is not set | ||
490 | # CONFIG_EQUALIZER is not set | ||
491 | # CONFIG_TUN is not set | ||
492 | # CONFIG_VETH is not set | ||
493 | # CONFIG_ARCNET is not set | ||
494 | # CONFIG_PHYLIB is not set | ||
495 | CONFIG_NET_ETHERNET=y | ||
496 | CONFIG_MII=y | ||
497 | # CONFIG_HAPPYMEAL is not set | ||
498 | # CONFIG_SUNGEM is not set | ||
499 | # CONFIG_CASSINI is not set | ||
500 | # CONFIG_NET_VENDOR_3COM is not set | ||
501 | # CONFIG_NET_TULIP is not set | ||
502 | # CONFIG_HP100 is not set | ||
503 | CONFIG_IBM_NEW_EMAC=y | ||
504 | CONFIG_IBM_NEW_EMAC_RXB=256 | ||
505 | CONFIG_IBM_NEW_EMAC_TXB=256 | ||
506 | CONFIG_IBM_NEW_EMAC_POLL_WEIGHT=32 | ||
507 | CONFIG_IBM_NEW_EMAC_RX_COPY_THRESHOLD=256 | ||
508 | CONFIG_IBM_NEW_EMAC_RX_SKB_HEADROOM=0 | ||
509 | CONFIG_IBM_NEW_EMAC_DEBUG=y | ||
510 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
511 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
512 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
513 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
514 | CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL=y | ||
515 | CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT=y | ||
516 | CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR=y | ||
517 | # CONFIG_NET_PCI is not set | ||
518 | # CONFIG_B44 is not set | ||
519 | # CONFIG_NETDEV_1000 is not set | ||
520 | # CONFIG_NETDEV_10000 is not set | ||
521 | # CONFIG_TR is not set | ||
522 | |||
523 | # | ||
524 | # Wireless LAN | ||
525 | # | ||
526 | # CONFIG_WLAN_PRE80211 is not set | ||
527 | # CONFIG_WLAN_80211 is not set | ||
528 | # CONFIG_IWLWIFI_LEDS is not set | ||
529 | # CONFIG_WAN is not set | ||
530 | # CONFIG_FDDI is not set | ||
531 | # CONFIG_HIPPI is not set | ||
532 | # CONFIG_PPP is not set | ||
533 | # CONFIG_SLIP is not set | ||
534 | # CONFIG_NETCONSOLE is not set | ||
535 | # CONFIG_NETPOLL is not set | ||
536 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
537 | # CONFIG_ISDN is not set | ||
538 | # CONFIG_PHONE is not set | ||
539 | |||
540 | # | ||
541 | # Input device support | ||
542 | # | ||
543 | # CONFIG_INPUT is not set | ||
544 | |||
545 | # | ||
546 | # Hardware I/O ports | ||
547 | # | ||
548 | # CONFIG_SERIO is not set | ||
549 | # CONFIG_GAMEPORT is not set | ||
550 | |||
551 | # | ||
552 | # Character devices | ||
553 | # | ||
554 | # CONFIG_VT is not set | ||
555 | CONFIG_DEVKMEM=y | ||
556 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
557 | # CONFIG_NOZOMI is not set | ||
558 | |||
559 | # | ||
560 | # Serial drivers | ||
561 | # | ||
562 | CONFIG_SERIAL_8250=y | ||
563 | CONFIG_SERIAL_8250_CONSOLE=y | ||
564 | CONFIG_SERIAL_8250_PCI=y | ||
565 | CONFIG_SERIAL_8250_NR_UARTS=4 | ||
566 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | ||
567 | CONFIG_SERIAL_8250_EXTENDED=y | ||
568 | # CONFIG_SERIAL_8250_MANY_PORTS is not set | ||
569 | CONFIG_SERIAL_8250_SHARE_IRQ=y | ||
570 | # CONFIG_SERIAL_8250_DETECT_IRQ is not set | ||
571 | # CONFIG_SERIAL_8250_RSA is not set | ||
572 | |||
573 | # | ||
574 | # Non-8250 serial port support | ||
575 | # | ||
576 | # CONFIG_SERIAL_UARTLITE is not set | ||
577 | CONFIG_SERIAL_CORE=y | ||
578 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
579 | # CONFIG_SERIAL_JSM is not set | ||
580 | CONFIG_SERIAL_OF_PLATFORM=y | ||
581 | CONFIG_UNIX98_PTYS=y | ||
582 | CONFIG_LEGACY_PTYS=y | ||
583 | CONFIG_LEGACY_PTY_COUNT=256 | ||
584 | # CONFIG_IPMI_HANDLER is not set | ||
585 | # CONFIG_HW_RANDOM is not set | ||
586 | # CONFIG_NVRAM is not set | ||
587 | # CONFIG_GEN_RTC is not set | ||
588 | # CONFIG_R3964 is not set | ||
589 | # CONFIG_APPLICOM is not set | ||
590 | # CONFIG_RAW_DRIVER is not set | ||
591 | # CONFIG_TCG_TPM is not set | ||
592 | CONFIG_DEVPORT=y | ||
593 | # CONFIG_I2C is not set | ||
594 | # CONFIG_SPI is not set | ||
595 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | ||
596 | # CONFIG_GPIOLIB is not set | ||
597 | # CONFIG_W1 is not set | ||
598 | # CONFIG_POWER_SUPPLY is not set | ||
599 | # CONFIG_HWMON is not set | ||
600 | CONFIG_THERMAL=y | ||
601 | # CONFIG_WATCHDOG is not set | ||
602 | |||
603 | # | ||
604 | # Sonics Silicon Backplane | ||
605 | # | ||
606 | CONFIG_SSB_POSSIBLE=y | ||
607 | # CONFIG_SSB is not set | ||
608 | |||
609 | # | ||
610 | # Multifunction device drivers | ||
611 | # | ||
612 | # CONFIG_MFD_CORE is not set | ||
613 | # CONFIG_MFD_SM501 is not set | ||
614 | # CONFIG_HTC_PASIC3 is not set | ||
615 | # CONFIG_MFD_TMIO is not set | ||
616 | |||
617 | # | ||
618 | # Multimedia devices | ||
619 | # | ||
620 | |||
621 | # | ||
622 | # Multimedia core support | ||
623 | # | ||
624 | # CONFIG_VIDEO_DEV is not set | ||
625 | # CONFIG_DVB_CORE is not set | ||
626 | # CONFIG_VIDEO_MEDIA is not set | ||
627 | |||
628 | # | ||
629 | # Multimedia drivers | ||
630 | # | ||
631 | # CONFIG_DAB is not set | ||
632 | |||
633 | # | ||
634 | # Graphics support | ||
635 | # | ||
636 | # CONFIG_AGP is not set | ||
637 | # CONFIG_DRM is not set | ||
638 | # CONFIG_VGASTATE is not set | ||
639 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
640 | # CONFIG_FB is not set | ||
641 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
642 | |||
643 | # | ||
644 | # Display device support | ||
645 | # | ||
646 | # CONFIG_DISPLAY_SUPPORT is not set | ||
647 | # CONFIG_SOUND is not set | ||
648 | # CONFIG_USB_SUPPORT is not set | ||
649 | # CONFIG_MMC is not set | ||
650 | # CONFIG_MEMSTICK is not set | ||
651 | # CONFIG_NEW_LEDS is not set | ||
652 | # CONFIG_ACCESSIBILITY is not set | ||
653 | # CONFIG_INFINIBAND is not set | ||
654 | # CONFIG_EDAC is not set | ||
655 | # CONFIG_RTC_CLASS is not set | ||
656 | # CONFIG_DMADEVICES is not set | ||
657 | # CONFIG_UIO is not set | ||
658 | |||
659 | # | ||
660 | # File systems | ||
661 | # | ||
662 | CONFIG_EXT2_FS=y | ||
663 | # CONFIG_EXT2_FS_XATTR is not set | ||
664 | # CONFIG_EXT2_FS_XIP is not set | ||
665 | # CONFIG_EXT3_FS is not set | ||
666 | # CONFIG_EXT4DEV_FS is not set | ||
667 | # CONFIG_REISERFS_FS is not set | ||
668 | # CONFIG_JFS_FS is not set | ||
669 | # CONFIG_FS_POSIX_ACL is not set | ||
670 | # CONFIG_XFS_FS is not set | ||
671 | # CONFIG_OCFS2_FS is not set | ||
672 | CONFIG_DNOTIFY=y | ||
673 | CONFIG_INOTIFY=y | ||
674 | CONFIG_INOTIFY_USER=y | ||
675 | # CONFIG_QUOTA is not set | ||
676 | # CONFIG_AUTOFS_FS is not set | ||
677 | # CONFIG_AUTOFS4_FS is not set | ||
678 | # CONFIG_FUSE_FS is not set | ||
679 | |||
680 | # | ||
681 | # CD-ROM/DVD Filesystems | ||
682 | # | ||
683 | # CONFIG_ISO9660_FS is not set | ||
684 | # CONFIG_UDF_FS is not set | ||
685 | |||
686 | # | ||
687 | # DOS/FAT/NT Filesystems | ||
688 | # | ||
689 | # CONFIG_MSDOS_FS is not set | ||
690 | # CONFIG_VFAT_FS is not set | ||
691 | # CONFIG_NTFS_FS is not set | ||
692 | |||
693 | # | ||
694 | # Pseudo filesystems | ||
695 | # | ||
696 | CONFIG_PROC_FS=y | ||
697 | CONFIG_PROC_KCORE=y | ||
698 | CONFIG_PROC_SYSCTL=y | ||
699 | CONFIG_SYSFS=y | ||
700 | CONFIG_TMPFS=y | ||
701 | # CONFIG_TMPFS_POSIX_ACL is not set | ||
702 | # CONFIG_HUGETLB_PAGE is not set | ||
703 | # CONFIG_CONFIGFS_FS is not set | ||
704 | |||
705 | # | ||
706 | # Miscellaneous filesystems | ||
707 | # | ||
708 | # CONFIG_ADFS_FS is not set | ||
709 | # CONFIG_AFFS_FS is not set | ||
710 | # CONFIG_HFS_FS is not set | ||
711 | # CONFIG_HFSPLUS_FS is not set | ||
712 | # CONFIG_BEFS_FS is not set | ||
713 | # CONFIG_BFS_FS is not set | ||
714 | # CONFIG_EFS_FS is not set | ||
715 | # CONFIG_JFFS2_FS is not set | ||
716 | CONFIG_CRAMFS=y | ||
717 | # CONFIG_VXFS_FS is not set | ||
718 | # CONFIG_MINIX_FS is not set | ||
719 | # CONFIG_OMFS_FS is not set | ||
720 | # CONFIG_HPFS_FS is not set | ||
721 | # CONFIG_QNX4FS_FS is not set | ||
722 | # CONFIG_ROMFS_FS is not set | ||
723 | # CONFIG_SYSV_FS is not set | ||
724 | # CONFIG_UFS_FS is not set | ||
725 | CONFIG_NETWORK_FILESYSTEMS=y | ||
726 | CONFIG_NFS_FS=y | ||
727 | CONFIG_NFS_V3=y | ||
728 | # CONFIG_NFS_V3_ACL is not set | ||
729 | # CONFIG_NFS_V4 is not set | ||
730 | CONFIG_ROOT_NFS=y | ||
731 | # CONFIG_NFSD is not set | ||
732 | CONFIG_LOCKD=y | ||
733 | CONFIG_LOCKD_V4=y | ||
734 | CONFIG_NFS_COMMON=y | ||
735 | CONFIG_SUNRPC=y | ||
736 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
737 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
738 | # CONFIG_SMB_FS is not set | ||
739 | # CONFIG_CIFS is not set | ||
740 | # CONFIG_NCP_FS is not set | ||
741 | # CONFIG_CODA_FS is not set | ||
742 | # CONFIG_AFS_FS is not set | ||
743 | |||
744 | # | ||
745 | # Partition Types | ||
746 | # | ||
747 | # CONFIG_PARTITION_ADVANCED is not set | ||
748 | CONFIG_MSDOS_PARTITION=y | ||
749 | # CONFIG_NLS is not set | ||
750 | # CONFIG_DLM is not set | ||
751 | |||
752 | # | ||
753 | # Library routines | ||
754 | # | ||
755 | CONFIG_BITREVERSE=y | ||
756 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
757 | # CONFIG_CRC_CCITT is not set | ||
758 | # CONFIG_CRC16 is not set | ||
759 | # CONFIG_CRC_T10DIF is not set | ||
760 | # CONFIG_CRC_ITU_T is not set | ||
761 | CONFIG_CRC32=y | ||
762 | # CONFIG_CRC7 is not set | ||
763 | # CONFIG_LIBCRC32C is not set | ||
764 | CONFIG_ZLIB_INFLATE=y | ||
765 | CONFIG_PLIST=y | ||
766 | CONFIG_HAS_IOMEM=y | ||
767 | CONFIG_HAS_IOPORT=y | ||
768 | CONFIG_HAS_DMA=y | ||
769 | CONFIG_HAVE_LMB=y | ||
770 | |||
771 | # | ||
772 | # Kernel hacking | ||
773 | # | ||
774 | # CONFIG_PRINTK_TIME is not set | ||
775 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
776 | CONFIG_ENABLE_MUST_CHECK=y | ||
777 | CONFIG_FRAME_WARN=1024 | ||
778 | CONFIG_MAGIC_SYSRQ=y | ||
779 | # CONFIG_UNUSED_SYMBOLS is not set | ||
780 | CONFIG_DEBUG_FS=y | ||
781 | # CONFIG_HEADERS_CHECK is not set | ||
782 | CONFIG_DEBUG_KERNEL=y | ||
783 | # CONFIG_DEBUG_SHIRQ is not set | ||
784 | CONFIG_DETECT_SOFTLOCKUP=y | ||
785 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | ||
786 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | ||
787 | CONFIG_SCHED_DEBUG=y | ||
788 | # CONFIG_SCHEDSTATS is not set | ||
789 | # CONFIG_TIMER_STATS is not set | ||
790 | # CONFIG_DEBUG_OBJECTS is not set | ||
791 | # CONFIG_SLUB_DEBUG_ON is not set | ||
792 | # CONFIG_SLUB_STATS is not set | ||
793 | # CONFIG_DEBUG_RT_MUTEXES is not set | ||
794 | # CONFIG_RT_MUTEX_TESTER is not set | ||
795 | # CONFIG_DEBUG_SPINLOCK is not set | ||
796 | # CONFIG_DEBUG_MUTEXES is not set | ||
797 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
798 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | ||
799 | # CONFIG_DEBUG_KOBJECT is not set | ||
800 | CONFIG_DEBUG_BUGVERBOSE=y | ||
801 | # CONFIG_DEBUG_INFO is not set | ||
802 | # CONFIG_DEBUG_VM is not set | ||
803 | # CONFIG_DEBUG_WRITECOUNT is not set | ||
804 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
805 | # CONFIG_DEBUG_LIST is not set | ||
806 | # CONFIG_DEBUG_SG is not set | ||
807 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
808 | # CONFIG_RCU_TORTURE_TEST is not set | ||
809 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
810 | # CONFIG_FAULT_INJECTION is not set | ||
811 | # CONFIG_LATENCYTOP is not set | ||
812 | CONFIG_SYSCTL_SYSCALL_CHECK=y | ||
813 | CONFIG_HAVE_FTRACE=y | ||
814 | CONFIG_HAVE_DYNAMIC_FTRACE=y | ||
815 | # CONFIG_FTRACE is not set | ||
816 | # CONFIG_SCHED_TRACER is not set | ||
817 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
818 | # CONFIG_SAMPLES is not set | ||
819 | CONFIG_HAVE_ARCH_KGDB=y | ||
820 | # CONFIG_KGDB is not set | ||
821 | # CONFIG_DEBUG_STACKOVERFLOW is not set | ||
822 | # CONFIG_DEBUG_STACK_USAGE is not set | ||
823 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
824 | # CONFIG_CODE_PATCHING_SELFTEST is not set | ||
825 | # CONFIG_FTR_FIXUP_SELFTEST is not set | ||
826 | # CONFIG_MSI_BITMAP_SELFTEST is not set | ||
827 | # CONFIG_XMON is not set | ||
828 | # CONFIG_IRQSTACKS is not set | ||
829 | # CONFIG_VIRQ_DEBUG is not set | ||
830 | # CONFIG_BDI_SWITCH is not set | ||
831 | # CONFIG_PPC_EARLY_DEBUG is not set | ||
832 | |||
833 | # | ||
834 | # Security options | ||
835 | # | ||
836 | # CONFIG_KEYS is not set | ||
837 | # CONFIG_SECURITY is not set | ||
838 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
839 | CONFIG_CRYPTO=y | ||
840 | |||
841 | # | ||
842 | # Crypto core or helper | ||
843 | # | ||
844 | CONFIG_CRYPTO_ALGAPI=y | ||
845 | CONFIG_CRYPTO_BLKCIPHER=y | ||
846 | CONFIG_CRYPTO_MANAGER=y | ||
847 | # CONFIG_CRYPTO_GF128MUL is not set | ||
848 | # CONFIG_CRYPTO_NULL is not set | ||
849 | # CONFIG_CRYPTO_CRYPTD is not set | ||
850 | # CONFIG_CRYPTO_AUTHENC is not set | ||
851 | # CONFIG_CRYPTO_TEST is not set | ||
852 | |||
853 | # | ||
854 | # Authenticated Encryption with Associated Data | ||
855 | # | ||
856 | # CONFIG_CRYPTO_CCM is not set | ||
857 | # CONFIG_CRYPTO_GCM is not set | ||
858 | # CONFIG_CRYPTO_SEQIV is not set | ||
859 | |||
860 | # | ||
861 | # Block modes | ||
862 | # | ||
863 | CONFIG_CRYPTO_CBC=y | ||
864 | # CONFIG_CRYPTO_CTR is not set | ||
865 | # CONFIG_CRYPTO_CTS is not set | ||
866 | CONFIG_CRYPTO_ECB=y | ||
867 | # CONFIG_CRYPTO_LRW is not set | ||
868 | CONFIG_CRYPTO_PCBC=y | ||
869 | # CONFIG_CRYPTO_XTS is not set | ||
870 | |||
871 | # | ||
872 | # Hash modes | ||
873 | # | ||
874 | # CONFIG_CRYPTO_HMAC is not set | ||
875 | # CONFIG_CRYPTO_XCBC is not set | ||
876 | |||
877 | # | ||
878 | # Digest | ||
879 | # | ||
880 | # CONFIG_CRYPTO_CRC32C is not set | ||
881 | # CONFIG_CRYPTO_MD4 is not set | ||
882 | CONFIG_CRYPTO_MD5=y | ||
883 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
884 | # CONFIG_CRYPTO_RMD128 is not set | ||
885 | # CONFIG_CRYPTO_RMD160 is not set | ||
886 | # CONFIG_CRYPTO_RMD256 is not set | ||
887 | # CONFIG_CRYPTO_RMD320 is not set | ||
888 | # CONFIG_CRYPTO_SHA1 is not set | ||
889 | # CONFIG_CRYPTO_SHA256 is not set | ||
890 | # CONFIG_CRYPTO_SHA512 is not set | ||
891 | # CONFIG_CRYPTO_TGR192 is not set | ||
892 | # CONFIG_CRYPTO_WP512 is not set | ||
893 | |||
894 | # | ||
895 | # Ciphers | ||
896 | # | ||
897 | # CONFIG_CRYPTO_AES is not set | ||
898 | # CONFIG_CRYPTO_ANUBIS is not set | ||
899 | # CONFIG_CRYPTO_ARC4 is not set | ||
900 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
901 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
902 | # CONFIG_CRYPTO_CAST5 is not set | ||
903 | # CONFIG_CRYPTO_CAST6 is not set | ||
904 | CONFIG_CRYPTO_DES=y | ||
905 | # CONFIG_CRYPTO_FCRYPT is not set | ||
906 | # CONFIG_CRYPTO_KHAZAD is not set | ||
907 | # CONFIG_CRYPTO_SALSA20 is not set | ||
908 | # CONFIG_CRYPTO_SEED is not set | ||
909 | # CONFIG_CRYPTO_SERPENT is not set | ||
910 | # CONFIG_CRYPTO_TEA is not set | ||
911 | # CONFIG_CRYPTO_TWOFISH is not set | ||
912 | |||
913 | # | ||
914 | # Compression | ||
915 | # | ||
916 | # CONFIG_CRYPTO_DEFLATE is not set | ||
917 | # CONFIG_CRYPTO_LZO is not set | ||
918 | CONFIG_CRYPTO_HW=y | ||
919 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | ||
920 | # CONFIG_PPC_CLOCK is not set | ||
921 | # CONFIG_VIRTUALIZATION is not set | ||
diff --git a/arch/powerpc/configs/40x/hcu4_defconfig b/arch/powerpc/configs/40x/hcu4_defconfig new file mode 100644 index 000000000000..682fce02c73a --- /dev/null +++ b/arch/powerpc/configs/40x/hcu4_defconfig | |||
@@ -0,0 +1,929 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.26.5 | ||
4 | # Tue Sep 16 00:44:33 2008 | ||
5 | # | ||
6 | # CONFIG_PPC64 is not set | ||
7 | |||
8 | # | ||
9 | # Processor support | ||
10 | # | ||
11 | # CONFIG_6xx is not set | ||
12 | # CONFIG_PPC_85xx is not set | ||
13 | # CONFIG_PPC_8xx is not set | ||
14 | CONFIG_40x=y | ||
15 | # CONFIG_44x is not set | ||
16 | # CONFIG_E200 is not set | ||
17 | CONFIG_4xx=y | ||
18 | # CONFIG_PPC_MM_SLICES is not set | ||
19 | CONFIG_NOT_COHERENT_CACHE=y | ||
20 | CONFIG_PPC32=y | ||
21 | CONFIG_WORD_SIZE=32 | ||
22 | CONFIG_PPC_MERGE=y | ||
23 | CONFIG_MMU=y | ||
24 | CONFIG_GENERIC_CMOS_UPDATE=y | ||
25 | CONFIG_GENERIC_TIME=y | ||
26 | CONFIG_GENERIC_TIME_VSYSCALL=y | ||
27 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
28 | CONFIG_GENERIC_HARDIRQS=y | ||
29 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | ||
30 | CONFIG_IRQ_PER_CPU=y | ||
31 | CONFIG_STACKTRACE_SUPPORT=y | ||
32 | CONFIG_LOCKDEP_SUPPORT=y | ||
33 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | ||
34 | CONFIG_ARCH_HAS_ILOG2_U32=y | ||
35 | CONFIG_GENERIC_HWEIGHT=y | ||
36 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
37 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
38 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | ||
39 | CONFIG_PPC=y | ||
40 | CONFIG_EARLY_PRINTK=y | ||
41 | CONFIG_GENERIC_NVRAM=y | ||
42 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | ||
43 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | ||
44 | CONFIG_PPC_OF=y | ||
45 | CONFIG_OF=y | ||
46 | CONFIG_PPC_UDBG_16550=y | ||
47 | # CONFIG_GENERIC_TBSYNC is not set | ||
48 | CONFIG_AUDIT_ARCH=y | ||
49 | CONFIG_GENERIC_BUG=y | ||
50 | # CONFIG_DEFAULT_UIMAGE is not set | ||
51 | CONFIG_PPC_DCR_NATIVE=y | ||
52 | # CONFIG_PPC_DCR_MMIO is not set | ||
53 | CONFIG_PPC_DCR=y | ||
54 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
55 | |||
56 | # | ||
57 | # General setup | ||
58 | # | ||
59 | CONFIG_EXPERIMENTAL=y | ||
60 | CONFIG_BROKEN_ON_SMP=y | ||
61 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
62 | CONFIG_LOCALVERSION="" | ||
63 | CONFIG_LOCALVERSION_AUTO=y | ||
64 | CONFIG_SWAP=y | ||
65 | CONFIG_SYSVIPC=y | ||
66 | CONFIG_SYSVIPC_SYSCTL=y | ||
67 | CONFIG_POSIX_MQUEUE=y | ||
68 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
69 | # CONFIG_TASKSTATS is not set | ||
70 | # CONFIG_AUDIT is not set | ||
71 | # CONFIG_IKCONFIG is not set | ||
72 | CONFIG_LOG_BUF_SHIFT=14 | ||
73 | # CONFIG_CGROUPS is not set | ||
74 | CONFIG_GROUP_SCHED=y | ||
75 | CONFIG_FAIR_GROUP_SCHED=y | ||
76 | # CONFIG_RT_GROUP_SCHED is not set | ||
77 | CONFIG_USER_SCHED=y | ||
78 | # CONFIG_CGROUP_SCHED is not set | ||
79 | CONFIG_SYSFS_DEPRECATED=y | ||
80 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
81 | # CONFIG_RELAY is not set | ||
82 | # CONFIG_NAMESPACES is not set | ||
83 | CONFIG_BLK_DEV_INITRD=y | ||
84 | CONFIG_INITRAMFS_SOURCE="" | ||
85 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
86 | CONFIG_SYSCTL=y | ||
87 | CONFIG_EMBEDDED=y | ||
88 | CONFIG_SYSCTL_SYSCALL=y | ||
89 | CONFIG_SYSCTL_SYSCALL_CHECK=y | ||
90 | CONFIG_KALLSYMS=y | ||
91 | CONFIG_KALLSYMS_ALL=y | ||
92 | CONFIG_KALLSYMS_EXTRA_PASS=y | ||
93 | CONFIG_HOTPLUG=y | ||
94 | CONFIG_PRINTK=y | ||
95 | # CONFIG_LOGBUFFER is not set | ||
96 | CONFIG_BUG=y | ||
97 | CONFIG_ELF_CORE=y | ||
98 | CONFIG_COMPAT_BRK=y | ||
99 | CONFIG_BASE_FULL=y | ||
100 | CONFIG_FUTEX=y | ||
101 | CONFIG_ANON_INODES=y | ||
102 | CONFIG_EPOLL=y | ||
103 | CONFIG_SIGNALFD=y | ||
104 | CONFIG_TIMERFD=y | ||
105 | CONFIG_EVENTFD=y | ||
106 | CONFIG_SHMEM=y | ||
107 | CONFIG_VM_EVENT_COUNTERS=y | ||
108 | CONFIG_SLUB_DEBUG=y | ||
109 | # CONFIG_SLAB is not set | ||
110 | CONFIG_SLUB=y | ||
111 | # CONFIG_SLOB is not set | ||
112 | # CONFIG_PROFILING is not set | ||
113 | # CONFIG_MARKERS is not set | ||
114 | CONFIG_HAVE_OPROFILE=y | ||
115 | # CONFIG_KPROBES is not set | ||
116 | CONFIG_HAVE_KPROBES=y | ||
117 | CONFIG_HAVE_KRETPROBES=y | ||
118 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
119 | CONFIG_PROC_PAGE_MONITOR=y | ||
120 | CONFIG_SLABINFO=y | ||
121 | CONFIG_RT_MUTEXES=y | ||
122 | # CONFIG_TINY_SHMEM is not set | ||
123 | CONFIG_BASE_SMALL=0 | ||
124 | CONFIG_MODULES=y | ||
125 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
126 | CONFIG_MODULE_UNLOAD=y | ||
127 | # CONFIG_MODULE_FORCE_UNLOAD is not set | ||
128 | # CONFIG_MODVERSIONS is not set | ||
129 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
130 | CONFIG_KMOD=y | ||
131 | CONFIG_BLOCK=y | ||
132 | CONFIG_LBD=y | ||
133 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
134 | # CONFIG_LSF is not set | ||
135 | # CONFIG_BLK_DEV_BSG is not set | ||
136 | |||
137 | # | ||
138 | # IO Schedulers | ||
139 | # | ||
140 | CONFIG_IOSCHED_NOOP=y | ||
141 | CONFIG_IOSCHED_AS=y | ||
142 | CONFIG_IOSCHED_DEADLINE=y | ||
143 | CONFIG_IOSCHED_CFQ=y | ||
144 | CONFIG_DEFAULT_AS=y | ||
145 | # CONFIG_DEFAULT_DEADLINE is not set | ||
146 | # CONFIG_DEFAULT_CFQ is not set | ||
147 | # CONFIG_DEFAULT_NOOP is not set | ||
148 | CONFIG_DEFAULT_IOSCHED="anticipatory" | ||
149 | CONFIG_CLASSIC_RCU=y | ||
150 | # CONFIG_PPC4xx_PCI_EXPRESS is not set | ||
151 | |||
152 | # | ||
153 | # Platform support | ||
154 | # | ||
155 | # CONFIG_PPC_MPC512x is not set | ||
156 | # CONFIG_PPC_MPC5121 is not set | ||
157 | # CONFIG_PPC_CELL is not set | ||
158 | # CONFIG_PPC_CELL_NATIVE is not set | ||
159 | # CONFIG_PQ2ADS is not set | ||
160 | # CONFIG_EP405 is not set | ||
161 | CONFIG_HCU4=y | ||
162 | # CONFIG_KILAUEA is not set | ||
163 | # CONFIG_MAKALU is not set | ||
164 | # CONFIG_WALNUT is not set | ||
165 | # CONFIG_XILINX_VIRTEX_GENERIC_BOARD is not set | ||
166 | # CONFIG_IPIC is not set | ||
167 | # CONFIG_MPIC is not set | ||
168 | # CONFIG_MPIC_WEIRD is not set | ||
169 | # CONFIG_PPC_I8259 is not set | ||
170 | # CONFIG_PPC_RTAS is not set | ||
171 | # CONFIG_MMIO_NVRAM is not set | ||
172 | # CONFIG_PPC_MPC106 is not set | ||
173 | # CONFIG_PPC_970_NAP is not set | ||
174 | # CONFIG_PPC_INDIRECT_IO is not set | ||
175 | # CONFIG_GENERIC_IOMAP is not set | ||
176 | # CONFIG_CPU_FREQ is not set | ||
177 | # CONFIG_FSL_ULI1575 is not set | ||
178 | |||
179 | # | ||
180 | # Kernel options | ||
181 | # | ||
182 | # CONFIG_HIGHMEM is not set | ||
183 | # CONFIG_TICK_ONESHOT is not set | ||
184 | # CONFIG_NO_HZ is not set | ||
185 | # CONFIG_HIGH_RES_TIMERS is not set | ||
186 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
187 | # CONFIG_HZ_100 is not set | ||
188 | CONFIG_HZ_250=y | ||
189 | # CONFIG_HZ_300 is not set | ||
190 | # CONFIG_HZ_1000 is not set | ||
191 | CONFIG_HZ=250 | ||
192 | # CONFIG_SCHED_HRTICK is not set | ||
193 | CONFIG_PREEMPT_NONE=y | ||
194 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
195 | # CONFIG_PREEMPT is not set | ||
196 | CONFIG_BINFMT_ELF=y | ||
197 | # CONFIG_BINFMT_MISC is not set | ||
198 | # CONFIG_MATH_EMULATION is not set | ||
199 | # CONFIG_IOMMU_HELPER is not set | ||
200 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | ||
201 | CONFIG_ARCH_HAS_WALK_MEMORY=y | ||
202 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | ||
203 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
204 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
205 | CONFIG_SELECT_MEMORY_MODEL=y | ||
206 | CONFIG_FLATMEM_MANUAL=y | ||
207 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
208 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
209 | CONFIG_FLATMEM=y | ||
210 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
211 | # CONFIG_SPARSEMEM_STATIC is not set | ||
212 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
213 | CONFIG_PAGEFLAGS_EXTENDED=y | ||
214 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
215 | CONFIG_RESOURCES_64BIT=y | ||
216 | CONFIG_ZONE_DMA_FLAG=1 | ||
217 | CONFIG_BOUNCE=y | ||
218 | CONFIG_VIRT_TO_BUS=y | ||
219 | CONFIG_FORCE_MAX_ZONEORDER=11 | ||
220 | CONFIG_PROC_DEVICETREE=y | ||
221 | # CONFIG_CMDLINE_BOOL is not set | ||
222 | # CONFIG_PM is not set | ||
223 | CONFIG_SECCOMP=y | ||
224 | CONFIG_ISA_DMA_API=y | ||
225 | |||
226 | # | ||
227 | # Bus options | ||
228 | # | ||
229 | CONFIG_ZONE_DMA=y | ||
230 | CONFIG_PPC_INDIRECT_PCI=y | ||
231 | CONFIG_4xx_SOC=y | ||
232 | CONFIG_PCI=y | ||
233 | CONFIG_PCI_DOMAINS=y | ||
234 | CONFIG_PCI_SYSCALL=y | ||
235 | # CONFIG_PCIEPORTBUS is not set | ||
236 | CONFIG_ARCH_SUPPORTS_MSI=y | ||
237 | # CONFIG_PCI_MSI is not set | ||
238 | # CONFIG_PCI_LEGACY is not set | ||
239 | # CONFIG_PCI_DEBUG is not set | ||
240 | # CONFIG_PCCARD is not set | ||
241 | # CONFIG_HOTPLUG_PCI is not set | ||
242 | # CONFIG_HAS_RAPIDIO is not set | ||
243 | |||
244 | # | ||
245 | # Advanced setup | ||
246 | # | ||
247 | # CONFIG_ADVANCED_OPTIONS is not set | ||
248 | |||
249 | # | ||
250 | # Default settings for advanced configuration options are used | ||
251 | # | ||
252 | CONFIG_LOWMEM_SIZE=0x30000000 | ||
253 | CONFIG_PAGE_OFFSET=0xc0000000 | ||
254 | CONFIG_KERNEL_START=0xc0000000 | ||
255 | CONFIG_PHYSICAL_START=0x00000000 | ||
256 | CONFIG_TASK_SIZE=0xc0000000 | ||
257 | CONFIG_CONSISTENT_START=0xff100000 | ||
258 | CONFIG_CONSISTENT_SIZE=0x00200000 | ||
259 | |||
260 | # | ||
261 | # Networking | ||
262 | # | ||
263 | CONFIG_NET=y | ||
264 | |||
265 | # | ||
266 | # Networking options | ||
267 | # | ||
268 | CONFIG_PACKET=y | ||
269 | # CONFIG_PACKET_MMAP is not set | ||
270 | CONFIG_UNIX=y | ||
271 | # CONFIG_NET_KEY is not set | ||
272 | CONFIG_INET=y | ||
273 | # CONFIG_IP_MULTICAST is not set | ||
274 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
275 | CONFIG_IP_FIB_HASH=y | ||
276 | CONFIG_IP_PNP=y | ||
277 | CONFIG_IP_PNP_DHCP=y | ||
278 | CONFIG_IP_PNP_BOOTP=y | ||
279 | # CONFIG_IP_PNP_RARP is not set | ||
280 | # CONFIG_NET_IPIP is not set | ||
281 | # CONFIG_NET_IPGRE is not set | ||
282 | # CONFIG_ARPD is not set | ||
283 | # CONFIG_SYN_COOKIES is not set | ||
284 | # CONFIG_INET_AH is not set | ||
285 | # CONFIG_INET_ESP is not set | ||
286 | # CONFIG_INET_IPCOMP is not set | ||
287 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
288 | # CONFIG_INET_TUNNEL is not set | ||
289 | # CONFIG_INET_XFRM_MODE_TRANSPORT is not set | ||
290 | # CONFIG_INET_XFRM_MODE_TUNNEL is not set | ||
291 | # CONFIG_INET_XFRM_MODE_BEET is not set | ||
292 | # CONFIG_INET_LRO is not set | ||
293 | CONFIG_INET_DIAG=y | ||
294 | CONFIG_INET_TCP_DIAG=y | ||
295 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
296 | CONFIG_TCP_CONG_CUBIC=y | ||
297 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
298 | # CONFIG_TCP_MD5SIG is not set | ||
299 | # CONFIG_IPV6 is not set | ||
300 | # CONFIG_NETWORK_SECMARK is not set | ||
301 | # CONFIG_NETFILTER is not set | ||
302 | # CONFIG_IP_DCCP is not set | ||
303 | # CONFIG_IP_SCTP is not set | ||
304 | # CONFIG_TIPC is not set | ||
305 | # CONFIG_ATM is not set | ||
306 | # CONFIG_BRIDGE is not set | ||
307 | # CONFIG_VLAN_8021Q is not set | ||
308 | # CONFIG_DECNET is not set | ||
309 | # CONFIG_LLC2 is not set | ||
310 | # CONFIG_IPX is not set | ||
311 | # CONFIG_ATALK is not set | ||
312 | # CONFIG_X25 is not set | ||
313 | # CONFIG_LAPB is not set | ||
314 | # CONFIG_ECONET is not set | ||
315 | # CONFIG_WAN_ROUTER is not set | ||
316 | # CONFIG_NET_SCHED is not set | ||
317 | |||
318 | # | ||
319 | # Network testing | ||
320 | # | ||
321 | # CONFIG_NET_PKTGEN is not set | ||
322 | # CONFIG_HAMRADIO is not set | ||
323 | # CONFIG_CAN is not set | ||
324 | # CONFIG_IRDA is not set | ||
325 | # CONFIG_BT is not set | ||
326 | # CONFIG_AF_RXRPC is not set | ||
327 | |||
328 | # | ||
329 | # Wireless | ||
330 | # | ||
331 | # CONFIG_CFG80211 is not set | ||
332 | # CONFIG_WIRELESS_EXT is not set | ||
333 | # CONFIG_MAC80211 is not set | ||
334 | # CONFIG_IEEE80211 is not set | ||
335 | # CONFIG_RFKILL is not set | ||
336 | # CONFIG_NET_9P is not set | ||
337 | |||
338 | # | ||
339 | # Device Drivers | ||
340 | # | ||
341 | |||
342 | # | ||
343 | # Generic Driver Options | ||
344 | # | ||
345 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
346 | CONFIG_STANDALONE=y | ||
347 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
348 | CONFIG_FW_LOADER=y | ||
349 | # CONFIG_DEBUG_DRIVER is not set | ||
350 | # CONFIG_DEBUG_DEVRES is not set | ||
351 | # CONFIG_SYS_HYPERVISOR is not set | ||
352 | CONFIG_CONNECTOR=y | ||
353 | CONFIG_PROC_EVENTS=y | ||
354 | CONFIG_MTD=y | ||
355 | # CONFIG_MTD_DEBUG is not set | ||
356 | # CONFIG_MTD_CONCAT is not set | ||
357 | CONFIG_MTD_PARTITIONS=y | ||
358 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
359 | CONFIG_MTD_CMDLINE_PARTS=y | ||
360 | CONFIG_MTD_OF_PARTS=y | ||
361 | # CONFIG_MTD_AR7_PARTS is not set | ||
362 | |||
363 | # | ||
364 | # User Modules And Translation Layers | ||
365 | # | ||
366 | CONFIG_MTD_CHAR=y | ||
367 | CONFIG_MTD_BLKDEVS=m | ||
368 | CONFIG_MTD_BLOCK=m | ||
369 | # CONFIG_MTD_BLOCK_RO is not set | ||
370 | # CONFIG_FTL is not set | ||
371 | # CONFIG_NFTL is not set | ||
372 | # CONFIG_INFTL is not set | ||
373 | # CONFIG_RFD_FTL is not set | ||
374 | # CONFIG_SSFDC is not set | ||
375 | # CONFIG_MTD_OOPS is not set | ||
376 | |||
377 | # | ||
378 | # RAM/ROM/Flash chip drivers | ||
379 | # | ||
380 | CONFIG_MTD_CFI=y | ||
381 | CONFIG_MTD_JEDECPROBE=y | ||
382 | CONFIG_MTD_GEN_PROBE=y | ||
383 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
384 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
385 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
386 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
387 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
388 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
389 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
390 | CONFIG_MTD_CFI_I1=y | ||
391 | CONFIG_MTD_CFI_I2=y | ||
392 | # CONFIG_MTD_CFI_I4 is not set | ||
393 | # CONFIG_MTD_CFI_I8 is not set | ||
394 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
395 | CONFIG_MTD_CFI_AMDSTD=y | ||
396 | # CONFIG_MTD_CFI_STAA is not set | ||
397 | CONFIG_MTD_CFI_UTIL=y | ||
398 | # CONFIG_MTD_RAM is not set | ||
399 | # CONFIG_MTD_ROM is not set | ||
400 | # CONFIG_MTD_ABSENT is not set | ||
401 | |||
402 | # | ||
403 | # Mapping drivers for chip access | ||
404 | # | ||
405 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
406 | # CONFIG_MTD_PHYSMAP is not set | ||
407 | CONFIG_MTD_PHYSMAP_OF=y | ||
408 | # CONFIG_MTD_INTEL_VR_NOR is not set | ||
409 | # CONFIG_MTD_PLATRAM is not set | ||
410 | |||
411 | # | ||
412 | # Self-contained MTD device drivers | ||
413 | # | ||
414 | # CONFIG_MTD_PMC551 is not set | ||
415 | # CONFIG_MTD_SLRAM is not set | ||
416 | # CONFIG_MTD_PHRAM is not set | ||
417 | # CONFIG_MTD_MTDRAM is not set | ||
418 | # CONFIG_MTD_BLOCK2MTD is not set | ||
419 | |||
420 | # | ||
421 | # Disk-On-Chip Device Drivers | ||
422 | # | ||
423 | # CONFIG_MTD_DOC2000 is not set | ||
424 | # CONFIG_MTD_DOC2001 is not set | ||
425 | # CONFIG_MTD_DOC2001PLUS is not set | ||
426 | # CONFIG_MTD_NAND is not set | ||
427 | # CONFIG_MTD_ONENAND is not set | ||
428 | |||
429 | # | ||
430 | # UBI - Unsorted block images | ||
431 | # | ||
432 | # CONFIG_MTD_UBI is not set | ||
433 | CONFIG_OF_DEVICE=y | ||
434 | # CONFIG_PARPORT is not set | ||
435 | CONFIG_BLK_DEV=y | ||
436 | # CONFIG_BLK_DEV_FD is not set | ||
437 | # CONFIG_BLK_CPQ_DA is not set | ||
438 | # CONFIG_BLK_CPQ_CISS_DA is not set | ||
439 | # CONFIG_BLK_DEV_DAC960 is not set | ||
440 | # CONFIG_BLK_DEV_UMEM is not set | ||
441 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
442 | # CONFIG_BLK_DEV_LOOP is not set | ||
443 | # CONFIG_BLK_DEV_NBD is not set | ||
444 | # CONFIG_BLK_DEV_SX8 is not set | ||
445 | CONFIG_BLK_DEV_RAM=y | ||
446 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
447 | CONFIG_BLK_DEV_RAM_SIZE=35000 | ||
448 | # CONFIG_BLK_DEV_XIP is not set | ||
449 | # CONFIG_CDROM_PKTCDVD is not set | ||
450 | # CONFIG_ATA_OVER_ETH is not set | ||
451 | # CONFIG_XILINX_SYSACE is not set | ||
452 | CONFIG_MISC_DEVICES=y | ||
453 | # CONFIG_PHANTOM is not set | ||
454 | # CONFIG_EEPROM_93CX6 is not set | ||
455 | # CONFIG_SGI_IOC4 is not set | ||
456 | # CONFIG_TIFM_CORE is not set | ||
457 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
458 | CONFIG_HAVE_IDE=y | ||
459 | # CONFIG_IDE is not set | ||
460 | |||
461 | # | ||
462 | # SCSI device support | ||
463 | # | ||
464 | # CONFIG_RAID_ATTRS is not set | ||
465 | # CONFIG_SCSI is not set | ||
466 | # CONFIG_SCSI_DMA is not set | ||
467 | # CONFIG_SCSI_NETLINK is not set | ||
468 | # CONFIG_ATA is not set | ||
469 | # CONFIG_MD is not set | ||
470 | # CONFIG_FUSION is not set | ||
471 | |||
472 | # | ||
473 | # IEEE 1394 (FireWire) support | ||
474 | # | ||
475 | |||
476 | # | ||
477 | # Enable only one of the two stacks, unless you know what you are doing | ||
478 | # | ||
479 | # CONFIG_FIREWIRE is not set | ||
480 | # CONFIG_IEEE1394 is not set | ||
481 | # CONFIG_I2O is not set | ||
482 | # CONFIG_MACINTOSH_DRIVERS is not set | ||
483 | CONFIG_NETDEVICES=y | ||
484 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
485 | # CONFIG_DUMMY is not set | ||
486 | # CONFIG_BONDING is not set | ||
487 | # CONFIG_MACVLAN is not set | ||
488 | # CONFIG_EQUALIZER is not set | ||
489 | # CONFIG_TUN is not set | ||
490 | # CONFIG_VETH is not set | ||
491 | # CONFIG_ARCNET is not set | ||
492 | # CONFIG_PHYLIB is not set | ||
493 | CONFIG_NET_ETHERNET=y | ||
494 | # CONFIG_MII is not set | ||
495 | # CONFIG_HAPPYMEAL is not set | ||
496 | # CONFIG_SUNGEM is not set | ||
497 | # CONFIG_CASSINI is not set | ||
498 | # CONFIG_NET_VENDOR_3COM is not set | ||
499 | # CONFIG_NET_TULIP is not set | ||
500 | # CONFIG_HP100 is not set | ||
501 | CONFIG_IBM_NEW_EMAC=y | ||
502 | CONFIG_IBM_NEW_EMAC_RXB=128 | ||
503 | CONFIG_IBM_NEW_EMAC_TXB=64 | ||
504 | CONFIG_IBM_NEW_EMAC_POLL_WEIGHT=32 | ||
505 | CONFIG_IBM_NEW_EMAC_RX_COPY_THRESHOLD=256 | ||
506 | CONFIG_IBM_NEW_EMAC_RX_SKB_HEADROOM=0 | ||
507 | # CONFIG_IBM_NEW_EMAC_DEBUG is not set | ||
508 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
509 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
510 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
511 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
512 | # CONFIG_NET_PCI is not set | ||
513 | # CONFIG_B44 is not set | ||
514 | CONFIG_NETDEV_1000=y | ||
515 | # CONFIG_ACENIC is not set | ||
516 | # CONFIG_DL2K is not set | ||
517 | # CONFIG_E1000 is not set | ||
518 | # CONFIG_E1000E is not set | ||
519 | # CONFIG_E1000E_ENABLED is not set | ||
520 | # CONFIG_IP1000 is not set | ||
521 | # CONFIG_IGB is not set | ||
522 | # CONFIG_NS83820 is not set | ||
523 | # CONFIG_HAMACHI is not set | ||
524 | # CONFIG_YELLOWFIN is not set | ||
525 | # CONFIG_R8169 is not set | ||
526 | # CONFIG_SIS190 is not set | ||
527 | # CONFIG_SKGE is not set | ||
528 | # CONFIG_SKY2 is not set | ||
529 | # CONFIG_VIA_VELOCITY is not set | ||
530 | # CONFIG_TIGON3 is not set | ||
531 | # CONFIG_BNX2 is not set | ||
532 | # CONFIG_QLA3XXX is not set | ||
533 | # CONFIG_ATL1 is not set | ||
534 | CONFIG_NETDEV_10000=y | ||
535 | # CONFIG_CHELSIO_T1 is not set | ||
536 | # CONFIG_CHELSIO_T3 is not set | ||
537 | # CONFIG_IXGBE is not set | ||
538 | # CONFIG_IXGB is not set | ||
539 | # CONFIG_S2IO is not set | ||
540 | # CONFIG_MYRI10GE is not set | ||
541 | # CONFIG_NETXEN_NIC is not set | ||
542 | # CONFIG_NIU is not set | ||
543 | # CONFIG_MLX4_CORE is not set | ||
544 | # CONFIG_TEHUTI is not set | ||
545 | # CONFIG_BNX2X is not set | ||
546 | # CONFIG_SFC is not set | ||
547 | # CONFIG_TR is not set | ||
548 | |||
549 | # | ||
550 | # Wireless LAN | ||
551 | # | ||
552 | # CONFIG_WLAN_PRE80211 is not set | ||
553 | # CONFIG_WLAN_80211 is not set | ||
554 | # CONFIG_IWLWIFI_LEDS is not set | ||
555 | # CONFIG_WAN is not set | ||
556 | # CONFIG_FDDI is not set | ||
557 | # CONFIG_HIPPI is not set | ||
558 | # CONFIG_PPP is not set | ||
559 | # CONFIG_SLIP is not set | ||
560 | # CONFIG_NETCONSOLE is not set | ||
561 | # CONFIG_NETPOLL is not set | ||
562 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
563 | # CONFIG_ISDN is not set | ||
564 | # CONFIG_PHONE is not set | ||
565 | |||
566 | # | ||
567 | # Input device support | ||
568 | # | ||
569 | # CONFIG_INPUT is not set | ||
570 | |||
571 | # | ||
572 | # Hardware I/O ports | ||
573 | # | ||
574 | # CONFIG_SERIO is not set | ||
575 | # CONFIG_GAMEPORT is not set | ||
576 | |||
577 | # | ||
578 | # Character devices | ||
579 | # | ||
580 | # CONFIG_VT is not set | ||
581 | CONFIG_DEVKMEM=y | ||
582 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
583 | # CONFIG_NOZOMI is not set | ||
584 | |||
585 | # | ||
586 | # Serial drivers | ||
587 | # | ||
588 | CONFIG_SERIAL_8250=y | ||
589 | CONFIG_SERIAL_8250_CONSOLE=y | ||
590 | CONFIG_SERIAL_8250_PCI=y | ||
591 | CONFIG_SERIAL_8250_NR_UARTS=4 | ||
592 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | ||
593 | CONFIG_SERIAL_8250_EXTENDED=y | ||
594 | # CONFIG_SERIAL_8250_MANY_PORTS is not set | ||
595 | CONFIG_SERIAL_8250_SHARE_IRQ=y | ||
596 | # CONFIG_SERIAL_8250_DETECT_IRQ is not set | ||
597 | # CONFIG_SERIAL_8250_RSA is not set | ||
598 | |||
599 | # | ||
600 | # Non-8250 serial port support | ||
601 | # | ||
602 | # CONFIG_SERIAL_UARTLITE is not set | ||
603 | CONFIG_SERIAL_CORE=y | ||
604 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
605 | # CONFIG_SERIAL_JSM is not set | ||
606 | CONFIG_SERIAL_OF_PLATFORM=y | ||
607 | CONFIG_UNIX98_PTYS=y | ||
608 | CONFIG_LEGACY_PTYS=y | ||
609 | CONFIG_LEGACY_PTY_COUNT=256 | ||
610 | # CONFIG_IPMI_HANDLER is not set | ||
611 | # CONFIG_HW_RANDOM is not set | ||
612 | # CONFIG_NVRAM is not set | ||
613 | # CONFIG_GEN_RTC is not set | ||
614 | # CONFIG_R3964 is not set | ||
615 | # CONFIG_APPLICOM is not set | ||
616 | # CONFIG_RAW_DRIVER is not set | ||
617 | # CONFIG_TCG_TPM is not set | ||
618 | CONFIG_DEVPORT=y | ||
619 | # CONFIG_I2C is not set | ||
620 | # CONFIG_SPI is not set | ||
621 | # CONFIG_W1 is not set | ||
622 | # CONFIG_POWER_SUPPLY is not set | ||
623 | # CONFIG_HWMON is not set | ||
624 | # CONFIG_THERMAL is not set | ||
625 | # CONFIG_THERMAL_HWMON is not set | ||
626 | # CONFIG_WATCHDOG is not set | ||
627 | |||
628 | # | ||
629 | # Sonics Silicon Backplane | ||
630 | # | ||
631 | CONFIG_SSB_POSSIBLE=y | ||
632 | # CONFIG_SSB is not set | ||
633 | |||
634 | # | ||
635 | # Multifunction device drivers | ||
636 | # | ||
637 | # CONFIG_MFD_SM501 is not set | ||
638 | # CONFIG_HTC_PASIC3 is not set | ||
639 | |||
640 | # | ||
641 | # Multimedia devices | ||
642 | # | ||
643 | |||
644 | # | ||
645 | # Multimedia core support | ||
646 | # | ||
647 | # CONFIG_VIDEO_DEV is not set | ||
648 | # CONFIG_DVB_CORE is not set | ||
649 | # CONFIG_VIDEO_MEDIA is not set | ||
650 | |||
651 | # | ||
652 | # Multimedia drivers | ||
653 | # | ||
654 | # CONFIG_DAB is not set | ||
655 | |||
656 | # | ||
657 | # Graphics support | ||
658 | # | ||
659 | # CONFIG_AGP is not set | ||
660 | # CONFIG_DRM is not set | ||
661 | # CONFIG_VGASTATE is not set | ||
662 | CONFIG_VIDEO_OUTPUT_CONTROL=m | ||
663 | # CONFIG_FB is not set | ||
664 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
665 | |||
666 | # | ||
667 | # Display device support | ||
668 | # | ||
669 | # CONFIG_DISPLAY_SUPPORT is not set | ||
670 | |||
671 | # | ||
672 | # Sound | ||
673 | # | ||
674 | # CONFIG_SOUND is not set | ||
675 | # CONFIG_USB_SUPPORT is not set | ||
676 | # CONFIG_MMC is not set | ||
677 | # CONFIG_MEMSTICK is not set | ||
678 | # CONFIG_NEW_LEDS is not set | ||
679 | # CONFIG_ACCESSIBILITY is not set | ||
680 | # CONFIG_INFINIBAND is not set | ||
681 | # CONFIG_EDAC is not set | ||
682 | # CONFIG_RTC_CLASS is not set | ||
683 | # CONFIG_DMADEVICES is not set | ||
684 | # CONFIG_UIO is not set | ||
685 | |||
686 | # | ||
687 | # File systems | ||
688 | # | ||
689 | CONFIG_EXT2_FS=y | ||
690 | # CONFIG_EXT2_FS_XATTR is not set | ||
691 | # CONFIG_EXT2_FS_XIP is not set | ||
692 | # CONFIG_EXT3_FS is not set | ||
693 | # CONFIG_EXT4DEV_FS is not set | ||
694 | # CONFIG_REISERFS_FS is not set | ||
695 | # CONFIG_JFS_FS is not set | ||
696 | # CONFIG_FS_POSIX_ACL is not set | ||
697 | # CONFIG_XFS_FS is not set | ||
698 | # CONFIG_OCFS2_FS is not set | ||
699 | CONFIG_DNOTIFY=y | ||
700 | CONFIG_INOTIFY=y | ||
701 | CONFIG_INOTIFY_USER=y | ||
702 | # CONFIG_QUOTA is not set | ||
703 | # CONFIG_AUTOFS_FS is not set | ||
704 | # CONFIG_AUTOFS4_FS is not set | ||
705 | # CONFIG_FUSE_FS is not set | ||
706 | |||
707 | # | ||
708 | # CD-ROM/DVD Filesystems | ||
709 | # | ||
710 | # CONFIG_ISO9660_FS is not set | ||
711 | # CONFIG_UDF_FS is not set | ||
712 | |||
713 | # | ||
714 | # DOS/FAT/NT Filesystems | ||
715 | # | ||
716 | # CONFIG_MSDOS_FS is not set | ||
717 | # CONFIG_VFAT_FS is not set | ||
718 | # CONFIG_NTFS_FS is not set | ||
719 | |||
720 | # | ||
721 | # Pseudo filesystems | ||
722 | # | ||
723 | CONFIG_PROC_FS=y | ||
724 | CONFIG_PROC_KCORE=y | ||
725 | CONFIG_PROC_SYSCTL=y | ||
726 | CONFIG_SYSFS=y | ||
727 | CONFIG_TMPFS=y | ||
728 | # CONFIG_TMPFS_POSIX_ACL is not set | ||
729 | # CONFIG_HUGETLB_PAGE is not set | ||
730 | # CONFIG_CONFIGFS_FS is not set | ||
731 | |||
732 | # | ||
733 | # Miscellaneous filesystems | ||
734 | # | ||
735 | # CONFIG_ADFS_FS is not set | ||
736 | # CONFIG_AFFS_FS is not set | ||
737 | # CONFIG_HFS_FS is not set | ||
738 | # CONFIG_HFSPLUS_FS is not set | ||
739 | # CONFIG_BEFS_FS is not set | ||
740 | # CONFIG_BFS_FS is not set | ||
741 | # CONFIG_EFS_FS is not set | ||
742 | # CONFIG_YAFFS_FS is not set | ||
743 | # CONFIG_JFFS2_FS is not set | ||
744 | CONFIG_CRAMFS=y | ||
745 | # CONFIG_VXFS_FS is not set | ||
746 | # CONFIG_MINIX_FS is not set | ||
747 | # CONFIG_HPFS_FS is not set | ||
748 | # CONFIG_QNX4FS_FS is not set | ||
749 | # CONFIG_ROMFS_FS is not set | ||
750 | # CONFIG_SYSV_FS is not set | ||
751 | # CONFIG_UFS_FS is not set | ||
752 | CONFIG_NETWORK_FILESYSTEMS=y | ||
753 | CONFIG_NFS_FS=y | ||
754 | CONFIG_NFS_V3=y | ||
755 | # CONFIG_NFS_V3_ACL is not set | ||
756 | # CONFIG_NFS_V4 is not set | ||
757 | # CONFIG_NFSD is not set | ||
758 | CONFIG_ROOT_NFS=y | ||
759 | CONFIG_LOCKD=y | ||
760 | CONFIG_LOCKD_V4=y | ||
761 | CONFIG_NFS_COMMON=y | ||
762 | CONFIG_SUNRPC=y | ||
763 | # CONFIG_SUNRPC_BIND34 is not set | ||
764 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
765 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
766 | # CONFIG_SMB_FS is not set | ||
767 | # CONFIG_CIFS is not set | ||
768 | # CONFIG_NCP_FS is not set | ||
769 | # CONFIG_CODA_FS is not set | ||
770 | # CONFIG_AFS_FS is not set | ||
771 | |||
772 | # | ||
773 | # Partition Types | ||
774 | # | ||
775 | # CONFIG_PARTITION_ADVANCED is not set | ||
776 | CONFIG_MSDOS_PARTITION=y | ||
777 | # CONFIG_NLS is not set | ||
778 | # CONFIG_DLM is not set | ||
779 | |||
780 | # | ||
781 | # Library routines | ||
782 | # | ||
783 | CONFIG_BITREVERSE=y | ||
784 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
785 | # CONFIG_CRC_CCITT is not set | ||
786 | # CONFIG_CRC16 is not set | ||
787 | # CONFIG_CRC_ITU_T is not set | ||
788 | CONFIG_CRC32=y | ||
789 | # CONFIG_CRC7 is not set | ||
790 | # CONFIG_LIBCRC32C is not set | ||
791 | CONFIG_ZLIB_INFLATE=y | ||
792 | CONFIG_PLIST=y | ||
793 | CONFIG_HAS_IOMEM=y | ||
794 | CONFIG_HAS_IOPORT=y | ||
795 | CONFIG_HAS_DMA=y | ||
796 | CONFIG_HAVE_LMB=y | ||
797 | |||
798 | # | ||
799 | # Kernel hacking | ||
800 | # | ||
801 | # CONFIG_PRINTK_TIME is not set | ||
802 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
803 | CONFIG_ENABLE_MUST_CHECK=y | ||
804 | CONFIG_FRAME_WARN=1024 | ||
805 | CONFIG_MAGIC_SYSRQ=y | ||
806 | # CONFIG_UNUSED_SYMBOLS is not set | ||
807 | CONFIG_DEBUG_FS=y | ||
808 | # CONFIG_HEADERS_CHECK is not set | ||
809 | CONFIG_DEBUG_KERNEL=y | ||
810 | # CONFIG_DEBUG_SHIRQ is not set | ||
811 | CONFIG_DETECT_SOFTLOCKUP=y | ||
812 | CONFIG_SCHED_DEBUG=y | ||
813 | # CONFIG_SCHEDSTATS is not set | ||
814 | # CONFIG_TIMER_STATS is not set | ||
815 | # CONFIG_DEBUG_OBJECTS is not set | ||
816 | # CONFIG_SLUB_DEBUG_ON is not set | ||
817 | # CONFIG_SLUB_STATS is not set | ||
818 | # CONFIG_DEBUG_RT_MUTEXES is not set | ||
819 | # CONFIG_RT_MUTEX_TESTER is not set | ||
820 | # CONFIG_DEBUG_SPINLOCK is not set | ||
821 | # CONFIG_DEBUG_MUTEXES is not set | ||
822 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
823 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | ||
824 | # CONFIG_DEBUG_KOBJECT is not set | ||
825 | CONFIG_DEBUG_BUGVERBOSE=y | ||
826 | # CONFIG_DEBUG_INFO is not set | ||
827 | # CONFIG_DEBUG_VM is not set | ||
828 | # CONFIG_DEBUG_WRITECOUNT is not set | ||
829 | # CONFIG_DEBUG_LIST is not set | ||
830 | # CONFIG_DEBUG_SG is not set | ||
831 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
832 | # CONFIG_RCU_TORTURE_TEST is not set | ||
833 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
834 | # CONFIG_FAULT_INJECTION is not set | ||
835 | # CONFIG_SAMPLES is not set | ||
836 | # CONFIG_DEBUG_STACKOVERFLOW is not set | ||
837 | # CONFIG_DEBUG_STACK_USAGE is not set | ||
838 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
839 | # CONFIG_DEBUGGER is not set | ||
840 | # CONFIG_IRQSTACKS is not set | ||
841 | # CONFIG_VIRQ_DEBUG is not set | ||
842 | # CONFIG_BDI_SWITCH is not set | ||
843 | # CONFIG_PPC_EARLY_DEBUG is not set | ||
844 | |||
845 | # | ||
846 | # Security options | ||
847 | # | ||
848 | # CONFIG_KEYS is not set | ||
849 | # CONFIG_SECURITY is not set | ||
850 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
851 | CONFIG_CRYPTO=y | ||
852 | |||
853 | # | ||
854 | # Crypto core or helper | ||
855 | # | ||
856 | CONFIG_CRYPTO_ALGAPI=y | ||
857 | CONFIG_CRYPTO_BLKCIPHER=y | ||
858 | CONFIG_CRYPTO_MANAGER=y | ||
859 | # CONFIG_CRYPTO_GF128MUL is not set | ||
860 | # CONFIG_CRYPTO_NULL is not set | ||
861 | # CONFIG_CRYPTO_CRYPTD is not set | ||
862 | # CONFIG_CRYPTO_AUTHENC is not set | ||
863 | # CONFIG_CRYPTO_TEST is not set | ||
864 | |||
865 | # | ||
866 | # Authenticated Encryption with Associated Data | ||
867 | # | ||
868 | # CONFIG_CRYPTO_CCM is not set | ||
869 | # CONFIG_CRYPTO_GCM is not set | ||
870 | # CONFIG_CRYPTO_SEQIV is not set | ||
871 | |||
872 | # | ||
873 | # Block modes | ||
874 | # | ||
875 | CONFIG_CRYPTO_CBC=y | ||
876 | # CONFIG_CRYPTO_CTR is not set | ||
877 | # CONFIG_CRYPTO_CTS is not set | ||
878 | CONFIG_CRYPTO_ECB=y | ||
879 | # CONFIG_CRYPTO_LRW is not set | ||
880 | CONFIG_CRYPTO_PCBC=y | ||
881 | # CONFIG_CRYPTO_XTS is not set | ||
882 | |||
883 | # | ||
884 | # Hash modes | ||
885 | # | ||
886 | # CONFIG_CRYPTO_HMAC is not set | ||
887 | # CONFIG_CRYPTO_XCBC is not set | ||
888 | |||
889 | # | ||
890 | # Digest | ||
891 | # | ||
892 | # CONFIG_CRYPTO_CRC32C is not set | ||
893 | # CONFIG_CRYPTO_MD4 is not set | ||
894 | CONFIG_CRYPTO_MD5=y | ||
895 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
896 | # CONFIG_CRYPTO_SHA1 is not set | ||
897 | # CONFIG_CRYPTO_SHA256 is not set | ||
898 | # CONFIG_CRYPTO_SHA512 is not set | ||
899 | # CONFIG_CRYPTO_TGR192 is not set | ||
900 | # CONFIG_CRYPTO_WP512 is not set | ||
901 | |||
902 | # | ||
903 | # Ciphers | ||
904 | # | ||
905 | # CONFIG_CRYPTO_AES is not set | ||
906 | # CONFIG_CRYPTO_ANUBIS is not set | ||
907 | # CONFIG_CRYPTO_ARC4 is not set | ||
908 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
909 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
910 | # CONFIG_CRYPTO_CAST5 is not set | ||
911 | # CONFIG_CRYPTO_CAST6 is not set | ||
912 | CONFIG_CRYPTO_DES=y | ||
913 | # CONFIG_CRYPTO_FCRYPT is not set | ||
914 | # CONFIG_CRYPTO_KHAZAD is not set | ||
915 | # CONFIG_CRYPTO_SALSA20 is not set | ||
916 | # CONFIG_CRYPTO_SEED is not set | ||
917 | # CONFIG_CRYPTO_SERPENT is not set | ||
918 | # CONFIG_CRYPTO_TEA is not set | ||
919 | # CONFIG_CRYPTO_TWOFISH is not set | ||
920 | |||
921 | # | ||
922 | # Compression | ||
923 | # | ||
924 | # CONFIG_CRYPTO_DEFLATE is not set | ||
925 | # CONFIG_CRYPTO_LZO is not set | ||
926 | CONFIG_CRYPTO_HW=y | ||
927 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | ||
928 | # CONFIG_PPC_CLOCK is not set | ||
929 | # CONFIG_VIRTUALIZATION is not set | ||
diff --git a/arch/powerpc/include/asm/kdump.h b/arch/powerpc/include/asm/kdump.h index f6c93c716898..a503da9d56f3 100644 --- a/arch/powerpc/include/asm/kdump.h +++ b/arch/powerpc/include/asm/kdump.h | |||
@@ -9,6 +9,12 @@ | |||
9 | * Reserve to the end of the FWNMI area, see head_64.S */ | 9 | * Reserve to the end of the FWNMI area, see head_64.S */ |
10 | #define KDUMP_RESERVE_LIMIT 0x10000 /* 64K */ | 10 | #define KDUMP_RESERVE_LIMIT 0x10000 /* 64K */ |
11 | 11 | ||
12 | /* | ||
13 | * Used to differentiate between relocatable kdump kernel and other | ||
14 | * kernels | ||
15 | */ | ||
16 | #define KDUMP_SIGNATURE 0xfeed1234 | ||
17 | |||
12 | #ifdef CONFIG_CRASH_DUMP | 18 | #ifdef CONFIG_CRASH_DUMP |
13 | 19 | ||
14 | #define KDUMP_TRAMPOLINE_START 0x0100 | 20 | #define KDUMP_TRAMPOLINE_START 0x0100 |
@@ -19,17 +25,18 @@ | |||
19 | #endif /* CONFIG_CRASH_DUMP */ | 25 | #endif /* CONFIG_CRASH_DUMP */ |
20 | 26 | ||
21 | #ifndef __ASSEMBLY__ | 27 | #ifndef __ASSEMBLY__ |
22 | #ifdef CONFIG_CRASH_DUMP | ||
23 | 28 | ||
29 | extern unsigned long __kdump_flag; | ||
30 | |||
31 | #if defined(CONFIG_CRASH_DUMP) && !defined(CONFIG_RELOCATABLE) | ||
24 | extern void reserve_kdump_trampoline(void); | 32 | extern void reserve_kdump_trampoline(void); |
25 | extern void setup_kdump_trampoline(void); | 33 | extern void setup_kdump_trampoline(void); |
26 | 34 | #else | |
27 | #else /* !CONFIG_CRASH_DUMP */ | 35 | /* !CRASH_DUMP || RELOCATABLE */ |
28 | |||
29 | static inline void reserve_kdump_trampoline(void) { ; } | 36 | static inline void reserve_kdump_trampoline(void) { ; } |
30 | static inline void setup_kdump_trampoline(void) { ; } | 37 | static inline void setup_kdump_trampoline(void) { ; } |
38 | #endif | ||
31 | 39 | ||
32 | #endif /* CONFIG_CRASH_DUMP */ | ||
33 | #endif /* __ASSEMBLY__ */ | 40 | #endif /* __ASSEMBLY__ */ |
34 | 41 | ||
35 | #endif /* __PPC64_KDUMP_H */ | 42 | #endif /* __PPC64_KDUMP_H */ |
diff --git a/arch/powerpc/include/asm/page.h b/arch/powerpc/include/asm/page.h index 5ac51e6efc1d..c0b8d4a29a91 100644 --- a/arch/powerpc/include/asm/page.h +++ b/arch/powerpc/include/asm/page.h | |||
@@ -77,6 +77,7 @@ | |||
77 | 77 | ||
78 | #if defined(CONFIG_RELOCATABLE) | 78 | #if defined(CONFIG_RELOCATABLE) |
79 | #ifndef __ASSEMBLY__ | 79 | #ifndef __ASSEMBLY__ |
80 | |||
80 | extern phys_addr_t memstart_addr; | 81 | extern phys_addr_t memstart_addr; |
81 | extern phys_addr_t kernstart_addr; | 82 | extern phys_addr_t kernstart_addr; |
82 | #endif | 83 | #endif |
diff --git a/arch/powerpc/include/asm/signal.h b/arch/powerpc/include/asm/signal.h index a7360cdd99eb..69f709d8e8e7 100644 --- a/arch/powerpc/include/asm/signal.h +++ b/arch/powerpc/include/asm/signal.h | |||
@@ -122,7 +122,6 @@ typedef struct sigaltstack { | |||
122 | 122 | ||
123 | #ifdef __KERNEL__ | 123 | #ifdef __KERNEL__ |
124 | struct pt_regs; | 124 | struct pt_regs; |
125 | extern void do_signal(struct pt_regs *regs, unsigned long thread_info_flags); | ||
126 | #define ptrace_signal_deliver(regs, cookie) do { } while (0) | 125 | #define ptrace_signal_deliver(regs, cookie) do { } while (0) |
127 | #endif /* __KERNEL__ */ | 126 | #endif /* __KERNEL__ */ |
128 | 127 | ||
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c index e70d0483fb4e..b1eb834bc0fc 100644 --- a/arch/powerpc/kernel/cputable.c +++ b/arch/powerpc/kernel/cputable.c | |||
@@ -1277,6 +1277,19 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
1277 | .machine_check = machine_check_4xx, | 1277 | .machine_check = machine_check_4xx, |
1278 | .platform = "ppc405", | 1278 | .platform = "ppc405", |
1279 | }, | 1279 | }, |
1280 | { | ||
1281 | /* 405EZ */ | ||
1282 | .pvr_mask = 0xffff0000, | ||
1283 | .pvr_value = 0x41510000, | ||
1284 | .cpu_name = "405EZ", | ||
1285 | .cpu_features = CPU_FTRS_40X, | ||
1286 | .cpu_user_features = PPC_FEATURE_32 | | ||
1287 | PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC, | ||
1288 | .icache_bsize = 32, | ||
1289 | .dcache_bsize = 32, | ||
1290 | .machine_check = machine_check_4xx, | ||
1291 | .platform = "ppc405", | ||
1292 | }, | ||
1280 | { /* default match */ | 1293 | { /* default match */ |
1281 | .pvr_mask = 0x00000000, | 1294 | .pvr_mask = 0x00000000, |
1282 | .pvr_value = 0x00000000, | 1295 | .pvr_value = 0x00000000, |
diff --git a/arch/powerpc/kernel/crash_dump.c b/arch/powerpc/kernel/crash_dump.c index 97e056379728..19671aca6591 100644 --- a/arch/powerpc/kernel/crash_dump.c +++ b/arch/powerpc/kernel/crash_dump.c | |||
@@ -30,6 +30,7 @@ | |||
30 | /* Stores the physical address of elf header of crash image. */ | 30 | /* Stores the physical address of elf header of crash image. */ |
31 | unsigned long long elfcorehdr_addr = ELFCORE_ADDR_MAX; | 31 | unsigned long long elfcorehdr_addr = ELFCORE_ADDR_MAX; |
32 | 32 | ||
33 | #ifndef CONFIG_RELOCATABLE | ||
33 | void __init reserve_kdump_trampoline(void) | 34 | void __init reserve_kdump_trampoline(void) |
34 | { | 35 | { |
35 | lmb_reserve(0, KDUMP_RESERVE_LIMIT); | 36 | lmb_reserve(0, KDUMP_RESERVE_LIMIT); |
@@ -68,6 +69,7 @@ void __init setup_kdump_trampoline(void) | |||
68 | 69 | ||
69 | DBG(" <- setup_kdump_trampoline()\n"); | 70 | DBG(" <- setup_kdump_trampoline()\n"); |
70 | } | 71 | } |
72 | #endif /* CONFIG_RELOCATABLE */ | ||
71 | 73 | ||
72 | /* | 74 | /* |
73 | * Note: elfcorehdr_addr is not just limited to vmcore. It is also used by | 75 | * Note: elfcorehdr_addr is not just limited to vmcore. It is also used by |
diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S index 84856bee33a5..69489bd3210c 100644 --- a/arch/powerpc/kernel/head_64.S +++ b/arch/powerpc/kernel/head_64.S | |||
@@ -97,6 +97,12 @@ __secondary_hold_spinloop: | |||
97 | __secondary_hold_acknowledge: | 97 | __secondary_hold_acknowledge: |
98 | .llong 0x0 | 98 | .llong 0x0 |
99 | 99 | ||
100 | /* This flag is set by purgatory if we should be a kdump kernel. */ | ||
101 | /* Do not move this variable as purgatory knows about it. */ | ||
102 | .globl __kdump_flag | ||
103 | __kdump_flag: | ||
104 | .llong 0x0 | ||
105 | |||
100 | #ifdef CONFIG_PPC_ISERIES | 106 | #ifdef CONFIG_PPC_ISERIES |
101 | /* | 107 | /* |
102 | * At offset 0x20, there is a pointer to iSeries LPAR data. | 108 | * At offset 0x20, there is a pointer to iSeries LPAR data. |
@@ -1384,7 +1390,13 @@ _STATIC(__after_prom_start) | |||
1384 | /* process relocations for the final address of the kernel */ | 1390 | /* process relocations for the final address of the kernel */ |
1385 | lis r25,PAGE_OFFSET@highest /* compute virtual base of kernel */ | 1391 | lis r25,PAGE_OFFSET@highest /* compute virtual base of kernel */ |
1386 | sldi r25,r25,32 | 1392 | sldi r25,r25,32 |
1387 | mr r3,r25 | 1393 | #ifdef CONFIG_CRASH_DUMP |
1394 | ld r7,__kdump_flag-_stext(r26) | ||
1395 | cmpldi cr0,r7,1 /* kdump kernel ? - stay where we are */ | ||
1396 | bne 1f | ||
1397 | add r25,r25,r26 | ||
1398 | #endif | ||
1399 | 1: mr r3,r25 | ||
1388 | bl .relocate | 1400 | bl .relocate |
1389 | #endif | 1401 | #endif |
1390 | 1402 | ||
@@ -1398,11 +1410,26 @@ _STATIC(__after_prom_start) | |||
1398 | li r3,0 /* target addr */ | 1410 | li r3,0 /* target addr */ |
1399 | mr. r4,r26 /* In some cases the loader may */ | 1411 | mr. r4,r26 /* In some cases the loader may */ |
1400 | beq 9f /* have already put us at zero */ | 1412 | beq 9f /* have already put us at zero */ |
1401 | lis r5,(copy_to_here - _stext)@ha | ||
1402 | addi r5,r5,(copy_to_here - _stext)@l /* # bytes of memory to copy */ | ||
1403 | li r6,0x100 /* Start offset, the first 0x100 */ | 1413 | li r6,0x100 /* Start offset, the first 0x100 */ |
1404 | /* bytes were copied earlier. */ | 1414 | /* bytes were copied earlier. */ |
1405 | 1415 | ||
1416 | #ifdef CONFIG_CRASH_DUMP | ||
1417 | /* | ||
1418 | * Check if the kernel has to be running as relocatable kernel based on the | ||
1419 | * variable __kdump_flag, if it is set the kernel is treated as relocatable | ||
1420 | * kernel, otherwise it will be moved to PHYSICAL_START | ||
1421 | */ | ||
1422 | ld r7,__kdump_flag-_stext(r26) | ||
1423 | cmpldi cr0,r7,1 | ||
1424 | bne 3f | ||
1425 | |||
1426 | li r5,__end_interrupts - _stext /* just copy interrupts */ | ||
1427 | b 5f | ||
1428 | 3: | ||
1429 | #endif | ||
1430 | lis r5,(copy_to_here - _stext)@ha | ||
1431 | addi r5,r5,(copy_to_here - _stext)@l /* # bytes of memory to copy */ | ||
1432 | |||
1406 | bl .copy_and_flush /* copy the first n bytes */ | 1433 | bl .copy_and_flush /* copy the first n bytes */ |
1407 | /* this includes the code being */ | 1434 | /* this includes the code being */ |
1408 | /* executed here. */ | 1435 | /* executed here. */ |
@@ -1411,15 +1438,15 @@ _STATIC(__after_prom_start) | |||
1411 | mtctr r8 | 1438 | mtctr r8 |
1412 | bctr | 1439 | bctr |
1413 | 1440 | ||
1441 | p_end: .llong _end - _stext | ||
1442 | |||
1414 | 4: /* Now copy the rest of the kernel up to _end */ | 1443 | 4: /* Now copy the rest of the kernel up to _end */ |
1415 | addis r5,r26,(p_end - _stext)@ha | 1444 | addis r5,r26,(p_end - _stext)@ha |
1416 | ld r5,(p_end - _stext)@l(r5) /* get _end */ | 1445 | ld r5,(p_end - _stext)@l(r5) /* get _end */ |
1417 | bl .copy_and_flush /* copy the rest */ | 1446 | 5: bl .copy_and_flush /* copy the rest */ |
1418 | 1447 | ||
1419 | 9: b .start_here_multiplatform | 1448 | 9: b .start_here_multiplatform |
1420 | 1449 | ||
1421 | p_end: .llong _end - _stext | ||
1422 | |||
1423 | /* | 1450 | /* |
1424 | * Copy routine used to copy the kernel to start at physical address 0 | 1451 | * Copy routine used to copy the kernel to start at physical address 0 |
1425 | * and flush and invalidate the caches as needed. | 1452 | * and flush and invalidate the caches as needed. |
diff --git a/arch/powerpc/kernel/iommu.c b/arch/powerpc/kernel/iommu.c index ea1ba89f9c90..3857d7e2af0c 100644 --- a/arch/powerpc/kernel/iommu.c +++ b/arch/powerpc/kernel/iommu.c | |||
@@ -458,6 +458,42 @@ void iommu_unmap_sg(struct iommu_table *tbl, struct scatterlist *sglist, | |||
458 | spin_unlock_irqrestore(&(tbl->it_lock), flags); | 458 | spin_unlock_irqrestore(&(tbl->it_lock), flags); |
459 | } | 459 | } |
460 | 460 | ||
461 | static void iommu_table_clear(struct iommu_table *tbl) | ||
462 | { | ||
463 | if (!__kdump_flag) { | ||
464 | /* Clear the table in case firmware left allocations in it */ | ||
465 | ppc_md.tce_free(tbl, tbl->it_offset, tbl->it_size); | ||
466 | return; | ||
467 | } | ||
468 | |||
469 | #ifdef CONFIG_CRASH_DUMP | ||
470 | if (ppc_md.tce_get) { | ||
471 | unsigned long index, tceval, tcecount = 0; | ||
472 | |||
473 | /* Reserve the existing mappings left by the first kernel. */ | ||
474 | for (index = 0; index < tbl->it_size; index++) { | ||
475 | tceval = ppc_md.tce_get(tbl, index + tbl->it_offset); | ||
476 | /* | ||
477 | * Freed TCE entry contains 0x7fffffffffffffff on JS20 | ||
478 | */ | ||
479 | if (tceval && (tceval != 0x7fffffffffffffffUL)) { | ||
480 | __set_bit(index, tbl->it_map); | ||
481 | tcecount++; | ||
482 | } | ||
483 | } | ||
484 | |||
485 | if ((tbl->it_size - tcecount) < KDUMP_MIN_TCE_ENTRIES) { | ||
486 | printk(KERN_WARNING "TCE table is full; freeing "); | ||
487 | printk(KERN_WARNING "%d entries for the kdump boot\n", | ||
488 | KDUMP_MIN_TCE_ENTRIES); | ||
489 | for (index = tbl->it_size - KDUMP_MIN_TCE_ENTRIES; | ||
490 | index < tbl->it_size; index++) | ||
491 | __clear_bit(index, tbl->it_map); | ||
492 | } | ||
493 | } | ||
494 | #endif | ||
495 | } | ||
496 | |||
461 | /* | 497 | /* |
462 | * Build a iommu_table structure. This contains a bit map which | 498 | * Build a iommu_table structure. This contains a bit map which |
463 | * is used to manage allocation of the tce space. | 499 | * is used to manage allocation of the tce space. |
@@ -484,38 +520,7 @@ struct iommu_table *iommu_init_table(struct iommu_table *tbl, int nid) | |||
484 | tbl->it_largehint = tbl->it_halfpoint; | 520 | tbl->it_largehint = tbl->it_halfpoint; |
485 | spin_lock_init(&tbl->it_lock); | 521 | spin_lock_init(&tbl->it_lock); |
486 | 522 | ||
487 | #ifdef CONFIG_CRASH_DUMP | 523 | iommu_table_clear(tbl); |
488 | if (ppc_md.tce_get) { | ||
489 | unsigned long index; | ||
490 | unsigned long tceval; | ||
491 | unsigned long tcecount = 0; | ||
492 | |||
493 | /* | ||
494 | * Reserve the existing mappings left by the first kernel. | ||
495 | */ | ||
496 | for (index = 0; index < tbl->it_size; index++) { | ||
497 | tceval = ppc_md.tce_get(tbl, index + tbl->it_offset); | ||
498 | /* | ||
499 | * Freed TCE entry contains 0x7fffffffffffffff on JS20 | ||
500 | */ | ||
501 | if (tceval && (tceval != 0x7fffffffffffffffUL)) { | ||
502 | __set_bit(index, tbl->it_map); | ||
503 | tcecount++; | ||
504 | } | ||
505 | } | ||
506 | if ((tbl->it_size - tcecount) < KDUMP_MIN_TCE_ENTRIES) { | ||
507 | printk(KERN_WARNING "TCE table is full; "); | ||
508 | printk(KERN_WARNING "freeing %d entries for the kdump boot\n", | ||
509 | KDUMP_MIN_TCE_ENTRIES); | ||
510 | for (index = tbl->it_size - KDUMP_MIN_TCE_ENTRIES; | ||
511 | index < tbl->it_size; index++) | ||
512 | __clear_bit(index, tbl->it_map); | ||
513 | } | ||
514 | } | ||
515 | #else | ||
516 | /* Clear the hardware table in case firmware left allocations in it */ | ||
517 | ppc_md.tce_free(tbl, tbl->it_offset, tbl->it_size); | ||
518 | #endif | ||
519 | 524 | ||
520 | if (!welcomed) { | 525 | if (!welcomed) { |
521 | printk(KERN_INFO "IOMMU table initialized, virtual merging %s\n", | 526 | printk(KERN_INFO "IOMMU table initialized, virtual merging %s\n", |
diff --git a/arch/powerpc/kernel/machine_kexec.c b/arch/powerpc/kernel/machine_kexec.c index aab76887a842..ac2a21f45c75 100644 --- a/arch/powerpc/kernel/machine_kexec.c +++ b/arch/powerpc/kernel/machine_kexec.c | |||
@@ -88,11 +88,13 @@ void __init reserve_crashkernel(void) | |||
88 | 88 | ||
89 | crash_size = crashk_res.end - crashk_res.start + 1; | 89 | crash_size = crashk_res.end - crashk_res.start + 1; |
90 | 90 | ||
91 | #ifndef CONFIG_RELOCATABLE | ||
91 | if (crashk_res.start != KDUMP_KERNELBASE) | 92 | if (crashk_res.start != KDUMP_KERNELBASE) |
92 | printk("Crash kernel location must be 0x%x\n", | 93 | printk("Crash kernel location must be 0x%x\n", |
93 | KDUMP_KERNELBASE); | 94 | KDUMP_KERNELBASE); |
94 | 95 | ||
95 | crashk_res.start = KDUMP_KERNELBASE; | 96 | crashk_res.start = KDUMP_KERNELBASE; |
97 | #endif | ||
96 | crash_size = PAGE_ALIGN(crash_size); | 98 | crash_size = PAGE_ALIGN(crash_size); |
97 | crashk_res.end = crashk_res.start + crash_size - 1; | 99 | crashk_res.end = crashk_res.start + crash_size - 1; |
98 | 100 | ||
diff --git a/arch/powerpc/kernel/machine_kexec_64.c b/arch/powerpc/kernel/machine_kexec_64.c index a168514d8609..e6efec788c4d 100644 --- a/arch/powerpc/kernel/machine_kexec_64.c +++ b/arch/powerpc/kernel/machine_kexec_64.c | |||
@@ -255,11 +255,14 @@ static union thread_union kexec_stack | |||
255 | /* Our assembly helper, in kexec_stub.S */ | 255 | /* Our assembly helper, in kexec_stub.S */ |
256 | extern NORET_TYPE void kexec_sequence(void *newstack, unsigned long start, | 256 | extern NORET_TYPE void kexec_sequence(void *newstack, unsigned long start, |
257 | void *image, void *control, | 257 | void *image, void *control, |
258 | void (*clear_all)(void)) ATTRIB_NORET; | 258 | void (*clear_all)(void), |
259 | unsigned long kdump_flag) ATTRIB_NORET; | ||
259 | 260 | ||
260 | /* too late to fail here */ | 261 | /* too late to fail here */ |
261 | void default_machine_kexec(struct kimage *image) | 262 | void default_machine_kexec(struct kimage *image) |
262 | { | 263 | { |
264 | unsigned long kdump_flag = 0; | ||
265 | |||
263 | /* prepare control code if any */ | 266 | /* prepare control code if any */ |
264 | 267 | ||
265 | /* | 268 | /* |
@@ -270,8 +273,10 @@ void default_machine_kexec(struct kimage *image) | |||
270 | * using debugger IPI. | 273 | * using debugger IPI. |
271 | */ | 274 | */ |
272 | 275 | ||
273 | if (crashing_cpu == -1) | 276 | if (crashing_cpu == -1) |
274 | kexec_prepare_cpus(); | 277 | kexec_prepare_cpus(); |
278 | else | ||
279 | kdump_flag = KDUMP_SIGNATURE; | ||
275 | 280 | ||
276 | /* switch to a staticly allocated stack. Based on irq stack code. | 281 | /* switch to a staticly allocated stack. Based on irq stack code. |
277 | * XXX: the task struct will likely be invalid once we do the copy! | 282 | * XXX: the task struct will likely be invalid once we do the copy! |
@@ -284,7 +289,7 @@ void default_machine_kexec(struct kimage *image) | |||
284 | */ | 289 | */ |
285 | kexec_sequence(&kexec_stack, image->start, image, | 290 | kexec_sequence(&kexec_stack, image->start, image, |
286 | page_address(image->control_code_page), | 291 | page_address(image->control_code_page), |
287 | ppc_md.hpte_clear_all); | 292 | ppc_md.hpte_clear_all, kdump_flag); |
288 | /* NOTREACHED */ | 293 | /* NOTREACHED */ |
289 | } | 294 | } |
290 | 295 | ||
@@ -312,11 +317,24 @@ static struct property kernel_end_prop = { | |||
312 | static void __init export_htab_values(void) | 317 | static void __init export_htab_values(void) |
313 | { | 318 | { |
314 | struct device_node *node; | 319 | struct device_node *node; |
320 | struct property *prop; | ||
315 | 321 | ||
316 | node = of_find_node_by_path("/chosen"); | 322 | node = of_find_node_by_path("/chosen"); |
317 | if (!node) | 323 | if (!node) |
318 | return; | 324 | return; |
319 | 325 | ||
326 | /* remove any stale propertys so ours can be found */ | ||
327 | prop = of_find_property(node, kernel_end_prop.name, NULL); | ||
328 | if (prop) | ||
329 | prom_remove_property(node, prop); | ||
330 | prop = of_find_property(node, htab_base_prop.name, NULL); | ||
331 | if (prop) | ||
332 | prom_remove_property(node, prop); | ||
333 | prop = of_find_property(node, htab_size_prop.name, NULL); | ||
334 | if (prop) | ||
335 | prom_remove_property(node, prop); | ||
336 | |||
337 | /* information needed by userspace when using default_machine_kexec */ | ||
320 | kernel_end = __pa(_end); | 338 | kernel_end = __pa(_end); |
321 | prom_add_property(node, &kernel_end_prop); | 339 | prom_add_property(node, &kernel_end_prop); |
322 | 340 | ||
diff --git a/arch/powerpc/kernel/misc_64.S b/arch/powerpc/kernel/misc_64.S index 3053fe5c62f2..a243fd072a77 100644 --- a/arch/powerpc/kernel/misc_64.S +++ b/arch/powerpc/kernel/misc_64.S | |||
@@ -611,10 +611,12 @@ real_mode: /* assume normal blr return */ | |||
611 | 611 | ||
612 | 612 | ||
613 | /* | 613 | /* |
614 | * kexec_sequence(newstack, start, image, control, clear_all()) | 614 | * kexec_sequence(newstack, start, image, control, clear_all(), kdump_flag) |
615 | * | 615 | * |
616 | * does the grungy work with stack switching and real mode switches | 616 | * does the grungy work with stack switching and real mode switches |
617 | * also does simple calls to other code | 617 | * also does simple calls to other code |
618 | * | ||
619 | * kdump_flag says whether the next kernel should be a kdump kernel. | ||
618 | */ | 620 | */ |
619 | 621 | ||
620 | _GLOBAL(kexec_sequence) | 622 | _GLOBAL(kexec_sequence) |
@@ -647,7 +649,7 @@ _GLOBAL(kexec_sequence) | |||
647 | mr r29,r5 /* image (virt) */ | 649 | mr r29,r5 /* image (virt) */ |
648 | mr r28,r6 /* control, unused */ | 650 | mr r28,r6 /* control, unused */ |
649 | mr r27,r7 /* clear_all() fn desc */ | 651 | mr r27,r7 /* clear_all() fn desc */ |
650 | mr r26,r8 /* spare */ | 652 | mr r26,r8 /* kdump flag */ |
651 | lhz r25,PACAHWCPUID(r13) /* get our phys cpu from paca */ | 653 | lhz r25,PACAHWCPUID(r13) /* get our phys cpu from paca */ |
652 | 654 | ||
653 | /* disable interrupts, we are overwriting kernel data next */ | 655 | /* disable interrupts, we are overwriting kernel data next */ |
@@ -709,5 +711,6 @@ _GLOBAL(kexec_sequence) | |||
709 | mr r4,r30 # start, aka phys mem offset | 711 | mr r4,r30 # start, aka phys mem offset |
710 | mtlr 4 | 712 | mtlr 4 |
711 | li r5,0 | 713 | li r5,0 |
712 | blr /* image->start(physid, image->start, 0); */ | 714 | mr r6,r26 /* kdump_flag */ |
715 | blr /* image->start(physid, image->start, 0, kdump_flag); */ | ||
713 | #endif /* CONFIG_KEXEC */ | 716 | #endif /* CONFIG_KEXEC */ |
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c index 3815d84a1ef4..1ec73938a00f 100644 --- a/arch/powerpc/kernel/pci-common.c +++ b/arch/powerpc/kernel/pci-common.c | |||
@@ -610,7 +610,8 @@ int pci_mmap_legacy_page_range(struct pci_bus *bus, | |||
610 | pr_debug(" -> mapping phys %llx\n", (unsigned long long)offset); | 610 | pr_debug(" -> mapping phys %llx\n", (unsigned long long)offset); |
611 | 611 | ||
612 | vma->vm_pgoff = offset >> PAGE_SHIFT; | 612 | vma->vm_pgoff = offset >> PAGE_SHIFT; |
613 | vma->vm_page_prot |= _PAGE_NO_CACHE | _PAGE_GUARDED; | 613 | vma->vm_page_prot = __pgprot(pgprot_val(vma->vm_page_prot) |
614 | | _PAGE_NO_CACHE | _PAGE_GUARDED); | ||
614 | return remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff, | 615 | return remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff, |
615 | vma->vm_end - vma->vm_start, | 616 | vma->vm_end - vma->vm_start, |
616 | vma->vm_page_prot); | 617 | vma->vm_page_prot); |
diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c index 2fdbc18ae94a..23e0db203329 100644 --- a/arch/powerpc/kernel/prom_init.c +++ b/arch/powerpc/kernel/prom_init.c | |||
@@ -487,67 +487,6 @@ static int __init prom_setprop(phandle node, const char *nodename, | |||
487 | return call_prom("interpret", 1, 1, (u32)(unsigned long) cmd); | 487 | return call_prom("interpret", 1, 1, (u32)(unsigned long) cmd); |
488 | } | 488 | } |
489 | 489 | ||
490 | /* We can't use the standard versions because of RELOC headaches. */ | ||
491 | #define isxdigit(c) (('0' <= (c) && (c) <= '9') \ | ||
492 | || ('a' <= (c) && (c) <= 'f') \ | ||
493 | || ('A' <= (c) && (c) <= 'F')) | ||
494 | |||
495 | #define isdigit(c) ('0' <= (c) && (c) <= '9') | ||
496 | #define islower(c) ('a' <= (c) && (c) <= 'z') | ||
497 | #define toupper(c) (islower(c) ? ((c) - 'a' + 'A') : (c)) | ||
498 | |||
499 | unsigned long prom_strtoul(const char *cp, const char **endp) | ||
500 | { | ||
501 | unsigned long result = 0, base = 10, value; | ||
502 | |||
503 | if (*cp == '0') { | ||
504 | base = 8; | ||
505 | cp++; | ||
506 | if (toupper(*cp) == 'X') { | ||
507 | cp++; | ||
508 | base = 16; | ||
509 | } | ||
510 | } | ||
511 | |||
512 | while (isxdigit(*cp) && | ||
513 | (value = isdigit(*cp) ? *cp - '0' : toupper(*cp) - 'A' + 10) < base) { | ||
514 | result = result * base + value; | ||
515 | cp++; | ||
516 | } | ||
517 | |||
518 | if (endp) | ||
519 | *endp = cp; | ||
520 | |||
521 | return result; | ||
522 | } | ||
523 | |||
524 | unsigned long prom_memparse(const char *ptr, const char **retptr) | ||
525 | { | ||
526 | unsigned long ret = prom_strtoul(ptr, retptr); | ||
527 | int shift = 0; | ||
528 | |||
529 | /* | ||
530 | * We can't use a switch here because GCC *may* generate a | ||
531 | * jump table which won't work, because we're not running at | ||
532 | * the address we're linked at. | ||
533 | */ | ||
534 | if ('G' == **retptr || 'g' == **retptr) | ||
535 | shift = 30; | ||
536 | |||
537 | if ('M' == **retptr || 'm' == **retptr) | ||
538 | shift = 20; | ||
539 | |||
540 | if ('K' == **retptr || 'k' == **retptr) | ||
541 | shift = 10; | ||
542 | |||
543 | if (shift) { | ||
544 | ret <<= shift; | ||
545 | (*retptr)++; | ||
546 | } | ||
547 | |||
548 | return ret; | ||
549 | } | ||
550 | |||
551 | /* | 490 | /* |
552 | * Early parsing of the command line passed to the kernel, used for | 491 | * Early parsing of the command line passed to the kernel, used for |
553 | * "mem=x" and the options that affect the iommu | 492 | * "mem=x" and the options that affect the iommu |
diff --git a/arch/powerpc/kernel/prom_init_check.sh b/arch/powerpc/kernel/prom_init_check.sh index 2c7e8e87f770..ea3a2ec03ffa 100644 --- a/arch/powerpc/kernel/prom_init_check.sh +++ b/arch/powerpc/kernel/prom_init_check.sh | |||
@@ -20,7 +20,7 @@ WHITELIST="add_reloc_offset __bss_start __bss_stop copy_and_flush | |||
20 | _end enter_prom memcpy memset reloc_offset __secondary_hold | 20 | _end enter_prom memcpy memset reloc_offset __secondary_hold |
21 | __secondary_hold_acknowledge __secondary_hold_spinloop __start | 21 | __secondary_hold_acknowledge __secondary_hold_spinloop __start |
22 | strcmp strcpy strlcpy strlen strncmp strstr logo_linux_clut224 | 22 | strcmp strcpy strlcpy strlen strncmp strstr logo_linux_clut224 |
23 | reloc_got2 kernstart_addr" | 23 | reloc_got2 kernstart_addr memstart_addr" |
24 | 24 | ||
25 | NM="$1" | 25 | NM="$1" |
26 | OBJ="$2" | 26 | OBJ="$2" |
diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c index 5ec56ff03e86..705fc4bf3800 100644 --- a/arch/powerpc/kernel/setup-common.c +++ b/arch/powerpc/kernel/setup-common.c | |||
@@ -59,6 +59,7 @@ | |||
59 | #include <asm/mmu.h> | 59 | #include <asm/mmu.h> |
60 | #include <asm/xmon.h> | 60 | #include <asm/xmon.h> |
61 | #include <asm/cputhreads.h> | 61 | #include <asm/cputhreads.h> |
62 | #include <mm/mmu_decl.h> | ||
62 | 63 | ||
63 | #include "setup.h" | 64 | #include "setup.h" |
64 | 65 | ||
@@ -190,6 +191,12 @@ static int show_cpuinfo(struct seq_file *m, void *v) | |||
190 | if (ppc_md.show_cpuinfo != NULL) | 191 | if (ppc_md.show_cpuinfo != NULL) |
191 | ppc_md.show_cpuinfo(m); | 192 | ppc_md.show_cpuinfo(m); |
192 | 193 | ||
194 | #ifdef CONFIG_PPC32 | ||
195 | /* Display the amount of memory */ | ||
196 | seq_printf(m, "Memory\t\t: %d MB\n", | ||
197 | (unsigned int)(total_memory / (1024 * 1024))); | ||
198 | #endif | ||
199 | |||
193 | return 0; | 200 | return 0; |
194 | } | 201 | } |
195 | 202 | ||
diff --git a/arch/powerpc/kernel/signal.h b/arch/powerpc/kernel/signal.h index 28f4b9f5fe5e..b427bf8e1d8f 100644 --- a/arch/powerpc/kernel/signal.h +++ b/arch/powerpc/kernel/signal.h | |||
@@ -12,6 +12,8 @@ | |||
12 | 12 | ||
13 | #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) | 13 | #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) |
14 | 14 | ||
15 | extern void do_signal(struct pt_regs *regs, unsigned long thread_info_flags); | ||
16 | |||
15 | extern void __user * get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, | 17 | extern void __user * get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, |
16 | size_t frame_size); | 18 | size_t frame_size); |
17 | extern void restore_sigmask(sigset_t *set); | 19 | extern void restore_sigmask(sigset_t *set); |
diff --git a/arch/powerpc/kernel/signal_64.c b/arch/powerpc/kernel/signal_64.c index 65ad925c3a8f..c6a8f2326b6f 100644 --- a/arch/powerpc/kernel/signal_64.c +++ b/arch/powerpc/kernel/signal_64.c | |||
@@ -235,8 +235,6 @@ static long restore_sigcontext(struct pt_regs *regs, sigset_t *set, int sig, | |||
235 | else | 235 | else |
236 | for (i = 0; i < 32 ; i++) | 236 | for (i = 0; i < 32 ; i++) |
237 | current->thread.fpr[i][TS_VSRLOWOFFSET] = 0; | 237 | current->thread.fpr[i][TS_VSRLOWOFFSET] = 0; |
238 | |||
239 | #else | ||
240 | #endif | 238 | #endif |
241 | return err; | 239 | return err; |
242 | } | 240 | } |
diff --git a/arch/powerpc/kernel/udbg_16550.c b/arch/powerpc/kernel/udbg_16550.c index cb01ebc59387..7b7da8cfd5e8 100644 --- a/arch/powerpc/kernel/udbg_16550.c +++ b/arch/powerpc/kernel/udbg_16550.c | |||
@@ -142,7 +142,7 @@ unsigned int udbg_probe_uart_speed(void __iomem *comport, unsigned int clock) | |||
142 | speed = (clock / prescaler) / (divisor * 16); | 142 | speed = (clock / prescaler) / (divisor * 16); |
143 | 143 | ||
144 | /* sanity check */ | 144 | /* sanity check */ |
145 | if (speed < 0 || speed > (clock / 16)) | 145 | if (speed > (clock / 16)) |
146 | speed = 9600; | 146 | speed = 9600; |
147 | 147 | ||
148 | return speed; | 148 | return speed; |
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c index 5c64af174752..8d5b4758c13a 100644 --- a/arch/powerpc/mm/hash_utils_64.c +++ b/arch/powerpc/mm/hash_utils_64.c | |||
@@ -382,8 +382,10 @@ static int __init htab_dt_scan_hugepage_blocks(unsigned long node, | |||
382 | printk(KERN_INFO "Huge page(16GB) memory: " | 382 | printk(KERN_INFO "Huge page(16GB) memory: " |
383 | "addr = 0x%lX size = 0x%lX pages = %d\n", | 383 | "addr = 0x%lX size = 0x%lX pages = %d\n", |
384 | phys_addr, block_size, expected_pages); | 384 | phys_addr, block_size, expected_pages); |
385 | lmb_reserve(phys_addr, block_size * expected_pages); | 385 | if (phys_addr + (16 * GB) <= lmb_end_of_DRAM()) { |
386 | add_gpage(phys_addr, block_size, expected_pages); | 386 | lmb_reserve(phys_addr, block_size * expected_pages); |
387 | add_gpage(phys_addr, block_size, expected_pages); | ||
388 | } | ||
387 | return 0; | 389 | return 0; |
388 | } | 390 | } |
389 | #endif /* CONFIG_HUGETLB_PAGE */ | 391 | #endif /* CONFIG_HUGETLB_PAGE */ |
diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c index 6cf5c71c431f..eb505ad34a85 100644 --- a/arch/powerpc/mm/numa.c +++ b/arch/powerpc/mm/numa.c | |||
@@ -116,6 +116,7 @@ static int __init get_active_region_work_fn(unsigned long start_pfn, | |||
116 | 116 | ||
117 | /* | 117 | /* |
118 | * get_node_active_region - Return active region containing start_pfn | 118 | * get_node_active_region - Return active region containing start_pfn |
119 | * Active range returned is empty if none found. | ||
119 | * @start_pfn: The page to return the region for. | 120 | * @start_pfn: The page to return the region for. |
120 | * @node_ar: Returned set to the active region containing start_pfn | 121 | * @node_ar: Returned set to the active region containing start_pfn |
121 | */ | 122 | */ |
@@ -126,6 +127,7 @@ static void __init get_node_active_region(unsigned long start_pfn, | |||
126 | 127 | ||
127 | node_ar->nid = nid; | 128 | node_ar->nid = nid; |
128 | node_ar->start_pfn = start_pfn; | 129 | node_ar->start_pfn = start_pfn; |
130 | node_ar->end_pfn = start_pfn; | ||
129 | work_with_active_regions(nid, get_active_region_work_fn, node_ar); | 131 | work_with_active_regions(nid, get_active_region_work_fn, node_ar); |
130 | } | 132 | } |
131 | 133 | ||
@@ -526,12 +528,10 @@ static unsigned long __init numa_enforce_memory_limit(unsigned long start, | |||
526 | /* | 528 | /* |
527 | * We use lmb_end_of_DRAM() in here instead of memory_limit because | 529 | * We use lmb_end_of_DRAM() in here instead of memory_limit because |
528 | * we've already adjusted it for the limit and it takes care of | 530 | * we've already adjusted it for the limit and it takes care of |
529 | * having memory holes below the limit. | 531 | * having memory holes below the limit. Also, in the case of |
532 | * iommu_is_off, memory_limit is not set but is implicitly enforced. | ||
530 | */ | 533 | */ |
531 | 534 | ||
532 | if (! memory_limit) | ||
533 | return size; | ||
534 | |||
535 | if (start + size <= lmb_end_of_DRAM()) | 535 | if (start + size <= lmb_end_of_DRAM()) |
536 | return size; | 536 | return size; |
537 | 537 | ||
@@ -933,18 +933,20 @@ void __init do_init_bootmem(void) | |||
933 | struct node_active_region node_ar; | 933 | struct node_active_region node_ar; |
934 | 934 | ||
935 | get_node_active_region(start_pfn, &node_ar); | 935 | get_node_active_region(start_pfn, &node_ar); |
936 | while (start_pfn < end_pfn) { | 936 | while (start_pfn < end_pfn && |
937 | node_ar.start_pfn < node_ar.end_pfn) { | ||
938 | unsigned long reserve_size = size; | ||
937 | /* | 939 | /* |
938 | * if reserved region extends past active region | 940 | * if reserved region extends past active region |
939 | * then trim size to active region | 941 | * then trim size to active region |
940 | */ | 942 | */ |
941 | if (end_pfn > node_ar.end_pfn) | 943 | if (end_pfn > node_ar.end_pfn) |
942 | size = (node_ar.end_pfn << PAGE_SHIFT) | 944 | reserve_size = (node_ar.end_pfn << PAGE_SHIFT) |
943 | - (start_pfn << PAGE_SHIFT); | 945 | - (start_pfn << PAGE_SHIFT); |
944 | dbg("reserve_bootmem %lx %lx nid=%d\n", physbase, size, | 946 | dbg("reserve_bootmem %lx %lx nid=%d\n", physbase, |
945 | node_ar.nid); | 947 | reserve_size, node_ar.nid); |
946 | reserve_bootmem_node(NODE_DATA(node_ar.nid), physbase, | 948 | reserve_bootmem_node(NODE_DATA(node_ar.nid), physbase, |
947 | size, BOOTMEM_DEFAULT); | 949 | reserve_size, BOOTMEM_DEFAULT); |
948 | /* | 950 | /* |
949 | * if reserved region is contained in the active region | 951 | * if reserved region is contained in the active region |
950 | * then done. | 952 | * then done. |
@@ -959,6 +961,7 @@ void __init do_init_bootmem(void) | |||
959 | */ | 961 | */ |
960 | start_pfn = node_ar.end_pfn; | 962 | start_pfn = node_ar.end_pfn; |
961 | physbase = start_pfn << PAGE_SHIFT; | 963 | physbase = start_pfn << PAGE_SHIFT; |
964 | size = size - reserve_size; | ||
962 | get_node_active_region(start_pfn, &node_ar); | 965 | get_node_active_region(start_pfn, &node_ar); |
963 | } | 966 | } |
964 | 967 | ||
diff --git a/arch/powerpc/oprofile/cell/pr_util.h b/arch/powerpc/oprofile/cell/pr_util.h index 22e4e8d4eb2c..628009c01958 100644 --- a/arch/powerpc/oprofile/cell/pr_util.h +++ b/arch/powerpc/oprofile/cell/pr_util.h | |||
@@ -24,6 +24,11 @@ | |||
24 | #define SKIP_GENERIC_SYNC 0 | 24 | #define SKIP_GENERIC_SYNC 0 |
25 | #define SYNC_START_ERROR -1 | 25 | #define SYNC_START_ERROR -1 |
26 | #define DO_GENERIC_SYNC 1 | 26 | #define DO_GENERIC_SYNC 1 |
27 | #define SPUS_PER_NODE 8 | ||
28 | #define DEFAULT_TIMER_EXPIRE (HZ / 10) | ||
29 | |||
30 | extern struct delayed_work spu_work; | ||
31 | extern int spu_prof_running; | ||
27 | 32 | ||
28 | struct spu_overlay_info { /* map of sections within an SPU overlay */ | 33 | struct spu_overlay_info { /* map of sections within an SPU overlay */ |
29 | unsigned int vma; /* SPU virtual memory address from elf */ | 34 | unsigned int vma; /* SPU virtual memory address from elf */ |
@@ -62,6 +67,14 @@ struct vma_to_fileoffset_map { /* map of sections within an SPU program */ | |||
62 | 67 | ||
63 | }; | 68 | }; |
64 | 69 | ||
70 | struct spu_buffer { | ||
71 | int last_guard_val; | ||
72 | int ctx_sw_seen; | ||
73 | unsigned long *buff; | ||
74 | unsigned int head, tail; | ||
75 | }; | ||
76 | |||
77 | |||
65 | /* The three functions below are for maintaining and accessing | 78 | /* The three functions below are for maintaining and accessing |
66 | * the vma-to-fileoffset map. | 79 | * the vma-to-fileoffset map. |
67 | */ | 80 | */ |
diff --git a/arch/powerpc/oprofile/cell/spu_profiler.c b/arch/powerpc/oprofile/cell/spu_profiler.c index 380d7e217531..dd499c3e9da7 100644 --- a/arch/powerpc/oprofile/cell/spu_profiler.c +++ b/arch/powerpc/oprofile/cell/spu_profiler.c | |||
@@ -23,12 +23,11 @@ | |||
23 | 23 | ||
24 | static u32 *samples; | 24 | static u32 *samples; |
25 | 25 | ||
26 | static int spu_prof_running; | 26 | int spu_prof_running; |
27 | static unsigned int profiling_interval; | 27 | static unsigned int profiling_interval; |
28 | 28 | ||
29 | #define NUM_SPU_BITS_TRBUF 16 | 29 | #define NUM_SPU_BITS_TRBUF 16 |
30 | #define SPUS_PER_TB_ENTRY 4 | 30 | #define SPUS_PER_TB_ENTRY 4 |
31 | #define SPUS_PER_NODE 8 | ||
32 | 31 | ||
33 | #define SPU_PC_MASK 0xFFFF | 32 | #define SPU_PC_MASK 0xFFFF |
34 | 33 | ||
@@ -196,7 +195,7 @@ int start_spu_profiling(unsigned int cycles_reset) | |||
196 | pr_debug("timer resolution: %lu\n", TICK_NSEC); | 195 | pr_debug("timer resolution: %lu\n", TICK_NSEC); |
197 | kt = ktime_set(0, profiling_interval); | 196 | kt = ktime_set(0, profiling_interval); |
198 | hrtimer_init(&timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); | 197 | hrtimer_init(&timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); |
199 | timer.expires = kt; | 198 | hrtimer_set_expires(&timer, kt); |
200 | timer.function = profile_spus; | 199 | timer.function = profile_spus; |
201 | 200 | ||
202 | /* Allocate arrays for collecting SPU PC samples */ | 201 | /* Allocate arrays for collecting SPU PC samples */ |
@@ -208,6 +207,7 @@ int start_spu_profiling(unsigned int cycles_reset) | |||
208 | 207 | ||
209 | spu_prof_running = 1; | 208 | spu_prof_running = 1; |
210 | hrtimer_start(&timer, kt, HRTIMER_MODE_REL); | 209 | hrtimer_start(&timer, kt, HRTIMER_MODE_REL); |
210 | schedule_delayed_work(&spu_work, DEFAULT_TIMER_EXPIRE); | ||
211 | 211 | ||
212 | return 0; | 212 | return 0; |
213 | } | 213 | } |
diff --git a/arch/powerpc/oprofile/cell/spu_task_sync.c b/arch/powerpc/oprofile/cell/spu_task_sync.c index 2a9b4a049329..2949126d28d1 100644 --- a/arch/powerpc/oprofile/cell/spu_task_sync.c +++ b/arch/powerpc/oprofile/cell/spu_task_sync.c | |||
@@ -35,7 +35,102 @@ static DEFINE_SPINLOCK(buffer_lock); | |||
35 | static DEFINE_SPINLOCK(cache_lock); | 35 | static DEFINE_SPINLOCK(cache_lock); |
36 | static int num_spu_nodes; | 36 | static int num_spu_nodes; |
37 | int spu_prof_num_nodes; | 37 | int spu_prof_num_nodes; |
38 | int last_guard_val[MAX_NUMNODES * 8]; | 38 | |
39 | struct spu_buffer spu_buff[MAX_NUMNODES * SPUS_PER_NODE]; | ||
40 | struct delayed_work spu_work; | ||
41 | static unsigned max_spu_buff; | ||
42 | |||
43 | static void spu_buff_add(unsigned long int value, int spu) | ||
44 | { | ||
45 | /* spu buff is a circular buffer. Add entries to the | ||
46 | * head. Head is the index to store the next value. | ||
47 | * The buffer is full when there is one available entry | ||
48 | * in the queue, i.e. head and tail can't be equal. | ||
49 | * That way we can tell the difference between the | ||
50 | * buffer being full versus empty. | ||
51 | * | ||
52 | * ASSUPTION: the buffer_lock is held when this function | ||
53 | * is called to lock the buffer, head and tail. | ||
54 | */ | ||
55 | int full = 1; | ||
56 | |||
57 | if (spu_buff[spu].head >= spu_buff[spu].tail) { | ||
58 | if ((spu_buff[spu].head - spu_buff[spu].tail) | ||
59 | < (max_spu_buff - 1)) | ||
60 | full = 0; | ||
61 | |||
62 | } else if (spu_buff[spu].tail > spu_buff[spu].head) { | ||
63 | if ((spu_buff[spu].tail - spu_buff[spu].head) | ||
64 | > 1) | ||
65 | full = 0; | ||
66 | } | ||
67 | |||
68 | if (!full) { | ||
69 | spu_buff[spu].buff[spu_buff[spu].head] = value; | ||
70 | spu_buff[spu].head++; | ||
71 | |||
72 | if (spu_buff[spu].head >= max_spu_buff) | ||
73 | spu_buff[spu].head = 0; | ||
74 | } else { | ||
75 | /* From the user's perspective make the SPU buffer | ||
76 | * size management/overflow look like we are using | ||
77 | * per cpu buffers. The user uses the same | ||
78 | * per cpu parameter to adjust the SPU buffer size. | ||
79 | * Increment the sample_lost_overflow to inform | ||
80 | * the user the buffer size needs to be increased. | ||
81 | */ | ||
82 | oprofile_cpu_buffer_inc_smpl_lost(); | ||
83 | } | ||
84 | } | ||
85 | |||
86 | /* This function copies the per SPU buffers to the | ||
87 | * OProfile kernel buffer. | ||
88 | */ | ||
89 | void sync_spu_buff(void) | ||
90 | { | ||
91 | int spu; | ||
92 | unsigned long flags; | ||
93 | int curr_head; | ||
94 | |||
95 | for (spu = 0; spu < num_spu_nodes; spu++) { | ||
96 | /* In case there was an issue and the buffer didn't | ||
97 | * get created skip it. | ||
98 | */ | ||
99 | if (spu_buff[spu].buff == NULL) | ||
100 | continue; | ||
101 | |||
102 | /* Hold the lock to make sure the head/tail | ||
103 | * doesn't change while spu_buff_add() is | ||
104 | * deciding if the buffer is full or not. | ||
105 | * Being a little paranoid. | ||
106 | */ | ||
107 | spin_lock_irqsave(&buffer_lock, flags); | ||
108 | curr_head = spu_buff[spu].head; | ||
109 | spin_unlock_irqrestore(&buffer_lock, flags); | ||
110 | |||
111 | /* Transfer the current contents to the kernel buffer. | ||
112 | * data can still be added to the head of the buffer. | ||
113 | */ | ||
114 | oprofile_put_buff(spu_buff[spu].buff, | ||
115 | spu_buff[spu].tail, | ||
116 | curr_head, max_spu_buff); | ||
117 | |||
118 | spin_lock_irqsave(&buffer_lock, flags); | ||
119 | spu_buff[spu].tail = curr_head; | ||
120 | spin_unlock_irqrestore(&buffer_lock, flags); | ||
121 | } | ||
122 | |||
123 | } | ||
124 | |||
125 | static void wq_sync_spu_buff(struct work_struct *work) | ||
126 | { | ||
127 | /* move data from spu buffers to kernel buffer */ | ||
128 | sync_spu_buff(); | ||
129 | |||
130 | /* only reschedule if profiling is not done */ | ||
131 | if (spu_prof_running) | ||
132 | schedule_delayed_work(&spu_work, DEFAULT_TIMER_EXPIRE); | ||
133 | } | ||
39 | 134 | ||
40 | /* Container for caching information about an active SPU task. */ | 135 | /* Container for caching information about an active SPU task. */ |
41 | struct cached_info { | 136 | struct cached_info { |
@@ -305,14 +400,21 @@ static int process_context_switch(struct spu *spu, unsigned long objectId) | |||
305 | 400 | ||
306 | /* Record context info in event buffer */ | 401 | /* Record context info in event buffer */ |
307 | spin_lock_irqsave(&buffer_lock, flags); | 402 | spin_lock_irqsave(&buffer_lock, flags); |
308 | add_event_entry(ESCAPE_CODE); | 403 | spu_buff_add(ESCAPE_CODE, spu->number); |
309 | add_event_entry(SPU_CTX_SWITCH_CODE); | 404 | spu_buff_add(SPU_CTX_SWITCH_CODE, spu->number); |
310 | add_event_entry(spu->number); | 405 | spu_buff_add(spu->number, spu->number); |
311 | add_event_entry(spu->pid); | 406 | spu_buff_add(spu->pid, spu->number); |
312 | add_event_entry(spu->tgid); | 407 | spu_buff_add(spu->tgid, spu->number); |
313 | add_event_entry(app_dcookie); | 408 | spu_buff_add(app_dcookie, spu->number); |
314 | add_event_entry(spu_cookie); | 409 | spu_buff_add(spu_cookie, spu->number); |
315 | add_event_entry(offset); | 410 | spu_buff_add(offset, spu->number); |
411 | |||
412 | /* Set flag to indicate SPU PC data can now be written out. If | ||
413 | * the SPU program counter data is seen before an SPU context | ||
414 | * record is seen, the postprocessing will fail. | ||
415 | */ | ||
416 | spu_buff[spu->number].ctx_sw_seen = 1; | ||
417 | |||
316 | spin_unlock_irqrestore(&buffer_lock, flags); | 418 | spin_unlock_irqrestore(&buffer_lock, flags); |
317 | smp_wmb(); /* insure spu event buffer updates are written */ | 419 | smp_wmb(); /* insure spu event buffer updates are written */ |
318 | /* don't want entries intermingled... */ | 420 | /* don't want entries intermingled... */ |
@@ -360,6 +462,47 @@ static int number_of_online_nodes(void) | |||
360 | return nodes; | 462 | return nodes; |
361 | } | 463 | } |
362 | 464 | ||
465 | static int oprofile_spu_buff_create(void) | ||
466 | { | ||
467 | int spu; | ||
468 | |||
469 | max_spu_buff = oprofile_get_cpu_buffer_size(); | ||
470 | |||
471 | for (spu = 0; spu < num_spu_nodes; spu++) { | ||
472 | /* create circular buffers to store the data in. | ||
473 | * use locks to manage accessing the buffers | ||
474 | */ | ||
475 | spu_buff[spu].head = 0; | ||
476 | spu_buff[spu].tail = 0; | ||
477 | |||
478 | /* | ||
479 | * Create a buffer for each SPU. Can't reliably | ||
480 | * create a single buffer for all spus due to not | ||
481 | * enough contiguous kernel memory. | ||
482 | */ | ||
483 | |||
484 | spu_buff[spu].buff = kzalloc((max_spu_buff | ||
485 | * sizeof(unsigned long)), | ||
486 | GFP_KERNEL); | ||
487 | |||
488 | if (!spu_buff[spu].buff) { | ||
489 | printk(KERN_ERR "SPU_PROF: " | ||
490 | "%s, line %d: oprofile_spu_buff_create " | ||
491 | "failed to allocate spu buffer %d.\n", | ||
492 | __func__, __LINE__, spu); | ||
493 | |||
494 | /* release the spu buffers that have been allocated */ | ||
495 | while (spu >= 0) { | ||
496 | kfree(spu_buff[spu].buff); | ||
497 | spu_buff[spu].buff = 0; | ||
498 | spu--; | ||
499 | } | ||
500 | return -ENOMEM; | ||
501 | } | ||
502 | } | ||
503 | return 0; | ||
504 | } | ||
505 | |||
363 | /* The main purpose of this function is to synchronize | 506 | /* The main purpose of this function is to synchronize |
364 | * OProfile with SPUFS by registering to be notified of | 507 | * OProfile with SPUFS by registering to be notified of |
365 | * SPU task switches. | 508 | * SPU task switches. |
@@ -372,20 +515,35 @@ static int number_of_online_nodes(void) | |||
372 | */ | 515 | */ |
373 | int spu_sync_start(void) | 516 | int spu_sync_start(void) |
374 | { | 517 | { |
375 | int k; | 518 | int spu; |
376 | int ret = SKIP_GENERIC_SYNC; | 519 | int ret = SKIP_GENERIC_SYNC; |
377 | int register_ret; | 520 | int register_ret; |
378 | unsigned long flags = 0; | 521 | unsigned long flags = 0; |
379 | 522 | ||
380 | spu_prof_num_nodes = number_of_online_nodes(); | 523 | spu_prof_num_nodes = number_of_online_nodes(); |
381 | num_spu_nodes = spu_prof_num_nodes * 8; | 524 | num_spu_nodes = spu_prof_num_nodes * 8; |
525 | INIT_DELAYED_WORK(&spu_work, wq_sync_spu_buff); | ||
526 | |||
527 | /* create buffer for storing the SPU data to put in | ||
528 | * the kernel buffer. | ||
529 | */ | ||
530 | ret = oprofile_spu_buff_create(); | ||
531 | if (ret) | ||
532 | goto out; | ||
382 | 533 | ||
383 | spin_lock_irqsave(&buffer_lock, flags); | 534 | spin_lock_irqsave(&buffer_lock, flags); |
384 | add_event_entry(ESCAPE_CODE); | 535 | for (spu = 0; spu < num_spu_nodes; spu++) { |
385 | add_event_entry(SPU_PROFILING_CODE); | 536 | spu_buff_add(ESCAPE_CODE, spu); |
386 | add_event_entry(num_spu_nodes); | 537 | spu_buff_add(SPU_PROFILING_CODE, spu); |
538 | spu_buff_add(num_spu_nodes, spu); | ||
539 | } | ||
387 | spin_unlock_irqrestore(&buffer_lock, flags); | 540 | spin_unlock_irqrestore(&buffer_lock, flags); |
388 | 541 | ||
542 | for (spu = 0; spu < num_spu_nodes; spu++) { | ||
543 | spu_buff[spu].ctx_sw_seen = 0; | ||
544 | spu_buff[spu].last_guard_val = 0; | ||
545 | } | ||
546 | |||
389 | /* Register for SPU events */ | 547 | /* Register for SPU events */ |
390 | register_ret = spu_switch_event_register(&spu_active); | 548 | register_ret = spu_switch_event_register(&spu_active); |
391 | if (register_ret) { | 549 | if (register_ret) { |
@@ -393,8 +551,6 @@ int spu_sync_start(void) | |||
393 | goto out; | 551 | goto out; |
394 | } | 552 | } |
395 | 553 | ||
396 | for (k = 0; k < (MAX_NUMNODES * 8); k++) | ||
397 | last_guard_val[k] = 0; | ||
398 | pr_debug("spu_sync_start -- running.\n"); | 554 | pr_debug("spu_sync_start -- running.\n"); |
399 | out: | 555 | out: |
400 | return ret; | 556 | return ret; |
@@ -446,13 +602,20 @@ void spu_sync_buffer(int spu_num, unsigned int *samples, | |||
446 | * use. We need to discard samples taken during the time | 602 | * use. We need to discard samples taken during the time |
447 | * period which an overlay occurs (i.e., guard value changes). | 603 | * period which an overlay occurs (i.e., guard value changes). |
448 | */ | 604 | */ |
449 | if (grd_val && grd_val != last_guard_val[spu_num]) { | 605 | if (grd_val && grd_val != spu_buff[spu_num].last_guard_val) { |
450 | last_guard_val[spu_num] = grd_val; | 606 | spu_buff[spu_num].last_guard_val = grd_val; |
451 | /* Drop the rest of the samples. */ | 607 | /* Drop the rest of the samples. */ |
452 | break; | 608 | break; |
453 | } | 609 | } |
454 | 610 | ||
455 | add_event_entry(file_offset | spu_num_shifted); | 611 | /* We must ensure that the SPU context switch has been written |
612 | * out before samples for the SPU. Otherwise, the SPU context | ||
613 | * information is not available and the postprocessing of the | ||
614 | * SPU PC will fail with no available anonymous map information. | ||
615 | */ | ||
616 | if (spu_buff[spu_num].ctx_sw_seen) | ||
617 | spu_buff_add((file_offset | spu_num_shifted), | ||
618 | spu_num); | ||
456 | } | 619 | } |
457 | spin_unlock(&buffer_lock); | 620 | spin_unlock(&buffer_lock); |
458 | out: | 621 | out: |
@@ -463,20 +626,41 @@ out: | |||
463 | int spu_sync_stop(void) | 626 | int spu_sync_stop(void) |
464 | { | 627 | { |
465 | unsigned long flags = 0; | 628 | unsigned long flags = 0; |
466 | int ret = spu_switch_event_unregister(&spu_active); | 629 | int ret; |
467 | if (ret) { | 630 | int k; |
631 | |||
632 | ret = spu_switch_event_unregister(&spu_active); | ||
633 | |||
634 | if (ret) | ||
468 | printk(KERN_ERR "SPU_PROF: " | 635 | printk(KERN_ERR "SPU_PROF: " |
469 | "%s, line %d: spu_switch_event_unregister returned %d\n", | 636 | "%s, line %d: spu_switch_event_unregister " \ |
470 | __func__, __LINE__, ret); | 637 | "returned %d\n", |
471 | goto out; | 638 | __func__, __LINE__, ret); |
472 | } | 639 | |
640 | /* flush any remaining data in the per SPU buffers */ | ||
641 | sync_spu_buff(); | ||
473 | 642 | ||
474 | spin_lock_irqsave(&cache_lock, flags); | 643 | spin_lock_irqsave(&cache_lock, flags); |
475 | ret = release_cached_info(RELEASE_ALL); | 644 | ret = release_cached_info(RELEASE_ALL); |
476 | spin_unlock_irqrestore(&cache_lock, flags); | 645 | spin_unlock_irqrestore(&cache_lock, flags); |
477 | out: | 646 | |
647 | /* remove scheduled work queue item rather then waiting | ||
648 | * for every queued entry to execute. Then flush pending | ||
649 | * system wide buffer to event buffer. | ||
650 | */ | ||
651 | cancel_delayed_work(&spu_work); | ||
652 | |||
653 | for (k = 0; k < num_spu_nodes; k++) { | ||
654 | spu_buff[k].ctx_sw_seen = 0; | ||
655 | |||
656 | /* | ||
657 | * spu_sys_buff will be null if there was a problem | ||
658 | * allocating the buffer. Only delete if it exists. | ||
659 | */ | ||
660 | kfree(spu_buff[k].buff); | ||
661 | spu_buff[k].buff = 0; | ||
662 | } | ||
478 | pr_debug("spu_sync_stop -- done.\n"); | 663 | pr_debug("spu_sync_stop -- done.\n"); |
479 | return ret; | 664 | return ret; |
480 | } | 665 | } |
481 | 666 | ||
482 | |||
diff --git a/arch/powerpc/oprofile/op_model_cell.c b/arch/powerpc/oprofile/op_model_cell.c index 5ff4de3eb3be..35141a8bc3d9 100644 --- a/arch/powerpc/oprofile/op_model_cell.c +++ b/arch/powerpc/oprofile/op_model_cell.c | |||
@@ -404,7 +404,7 @@ set_count_mode(u32 kernel, u32 user) | |||
404 | } | 404 | } |
405 | } | 405 | } |
406 | 406 | ||
407 | static inline void enable_ctr(u32 cpu, u32 ctr, u32 * pm07_cntrl) | 407 | static inline void enable_ctr(u32 cpu, u32 ctr, u32 *pm07_cntrl) |
408 | { | 408 | { |
409 | 409 | ||
410 | pm07_cntrl[ctr] |= CBE_PM_CTR_ENABLE; | 410 | pm07_cntrl[ctr] |= CBE_PM_CTR_ENABLE; |
diff --git a/arch/powerpc/platforms/40x/Kconfig b/arch/powerpc/platforms/40x/Kconfig index a9260e21451e..65730275e012 100644 --- a/arch/powerpc/platforms/40x/Kconfig +++ b/arch/powerpc/platforms/40x/Kconfig | |||
@@ -14,6 +14,15 @@ | |||
14 | # help | 14 | # help |
15 | # This option enables support for the CPCI405 board. | 15 | # This option enables support for the CPCI405 board. |
16 | 16 | ||
17 | config ACADIA | ||
18 | bool "Acadia" | ||
19 | depends on 40x | ||
20 | default n | ||
21 | select PPC40x_SIMPLE | ||
22 | select 405EZ | ||
23 | help | ||
24 | This option enables support for the AMCC 405EZ Acadia evaluation board. | ||
25 | |||
17 | config EP405 | 26 | config EP405 |
18 | bool "EP405/EP405PC" | 27 | bool "EP405/EP405PC" |
19 | depends on 40x | 28 | depends on 40x |
@@ -23,6 +32,14 @@ config EP405 | |||
23 | help | 32 | help |
24 | This option enables support for the EP405/EP405PC boards. | 33 | This option enables support for the EP405/EP405PC boards. |
25 | 34 | ||
35 | config HCU4 | ||
36 | bool "Hcu4" | ||
37 | depends on 40x | ||
38 | default y | ||
39 | select 405GPR | ||
40 | help | ||
41 | This option enables support for the Nestal Maschinen HCU4 board. | ||
42 | |||
26 | config KILAUEA | 43 | config KILAUEA |
27 | bool "Kilauea" | 44 | bool "Kilauea" |
28 | depends on 40x | 45 | depends on 40x |
@@ -93,6 +110,13 @@ config XILINX_VIRTEX_GENERIC_BOARD | |||
93 | Most Virtex designs should use this unless it needs to do some | 110 | Most Virtex designs should use this unless it needs to do some |
94 | special configuration at board probe time. | 111 | special configuration at board probe time. |
95 | 112 | ||
113 | config PPC40x_SIMPLE | ||
114 | bool "Simple PowerPC 40x board support" | ||
115 | depends on 40x | ||
116 | default n | ||
117 | help | ||
118 | This option enables the simple PowerPC 40x platform support. | ||
119 | |||
96 | # 40x specific CPU modules, selected based on the board above. | 120 | # 40x specific CPU modules, selected based on the board above. |
97 | config NP405H | 121 | config NP405H |
98 | bool | 122 | bool |
@@ -118,6 +142,12 @@ config 405EX | |||
118 | select IBM_NEW_EMAC_EMAC4 | 142 | select IBM_NEW_EMAC_EMAC4 |
119 | select IBM_NEW_EMAC_RGMII | 143 | select IBM_NEW_EMAC_RGMII |
120 | 144 | ||
145 | config 405EZ | ||
146 | bool | ||
147 | select IBM_NEW_EMAC_NO_FLOW_CTRL | ||
148 | select IBM_NEW_EMAC_MAL_CLR_ICINTSTAT | ||
149 | select IBM_NEW_EMAC_MAL_COMMON_ERR | ||
150 | |||
121 | config 405GPR | 151 | config 405GPR |
122 | bool | 152 | bool |
123 | 153 | ||
@@ -139,6 +169,14 @@ config STB03xxx | |||
139 | select IBM405_ERR77 | 169 | select IBM405_ERR77 |
140 | select IBM405_ERR51 | 170 | select IBM405_ERR51 |
141 | 171 | ||
172 | config PPC4xx_GPIO | ||
173 | bool "PPC4xx GPIO support" | ||
174 | depends on 40x | ||
175 | select ARCH_REQUIRE_GPIOLIB | ||
176 | select GENERIC_GPIO | ||
177 | help | ||
178 | Enable gpiolib support for ppc40x based boards | ||
179 | |||
142 | # 40x errata/workaround config symbols, selected by the CPU models above | 180 | # 40x errata/workaround config symbols, selected by the CPU models above |
143 | 181 | ||
144 | # All 405-based cores up until the 405GPR and 405EP have this errata. | 182 | # All 405-based cores up until the 405GPR and 405EP have this errata. |
diff --git a/arch/powerpc/platforms/40x/Makefile b/arch/powerpc/platforms/40x/Makefile index 5533a5c8ce4e..9bab76a652a6 100644 --- a/arch/powerpc/platforms/40x/Makefile +++ b/arch/powerpc/platforms/40x/Makefile | |||
@@ -1,5 +1,7 @@ | |||
1 | obj-$(CONFIG_KILAUEA) += kilauea.o | 1 | obj-$(CONFIG_KILAUEA) += kilauea.o |
2 | obj-$(CONFIG_HCU4) += hcu4.o | ||
2 | obj-$(CONFIG_MAKALU) += makalu.o | 3 | obj-$(CONFIG_MAKALU) += makalu.o |
3 | obj-$(CONFIG_WALNUT) += walnut.o | 4 | obj-$(CONFIG_WALNUT) += walnut.o |
4 | obj-$(CONFIG_XILINX_VIRTEX_GENERIC_BOARD) += virtex.o | 5 | obj-$(CONFIG_XILINX_VIRTEX_GENERIC_BOARD) += virtex.o |
5 | obj-$(CONFIG_EP405) += ep405.o | 6 | obj-$(CONFIG_EP405) += ep405.o |
7 | obj-$(CONFIG_PPC40x_SIMPLE) += ppc40x_simple.o | ||
diff --git a/arch/powerpc/platforms/40x/hcu4.c b/arch/powerpc/platforms/40x/hcu4.c new file mode 100644 index 000000000000..60b2afecab75 --- /dev/null +++ b/arch/powerpc/platforms/40x/hcu4.c | |||
@@ -0,0 +1,61 @@ | |||
1 | /* | ||
2 | * Architecture- / platform-specific boot-time initialization code for | ||
3 | * IBM PowerPC 4xx based boards. Adapted from original | ||
4 | * code by Gary Thomas, Cort Dougan <cort@fsmlabs.com>, and Dan Malek | ||
5 | * <dan@net4x.com>. | ||
6 | * | ||
7 | * Copyright(c) 1999-2000 Grant Erickson <grant@lcse.umn.edu> | ||
8 | * | ||
9 | * Rewritten and ported to the merged powerpc tree: | ||
10 | * Copyright 2007 IBM Corporation | ||
11 | * Josh Boyer <jwboyer@linux.vnet.ibm.com> | ||
12 | * | ||
13 | * 2002 (c) MontaVista, Software, Inc. This file is licensed under | ||
14 | * the terms of the GNU General Public License version 2. This program | ||
15 | * is licensed "as is" without any warranty of any kind, whether express | ||
16 | * or implied. | ||
17 | */ | ||
18 | |||
19 | #include <linux/init.h> | ||
20 | #include <linux/of_platform.h> | ||
21 | |||
22 | #include <asm/machdep.h> | ||
23 | #include <asm/prom.h> | ||
24 | #include <asm/udbg.h> | ||
25 | #include <asm/time.h> | ||
26 | #include <asm/uic.h> | ||
27 | #include <asm/ppc4xx.h> | ||
28 | |||
29 | static __initdata struct of_device_id hcu4_of_bus[] = { | ||
30 | { .compatible = "ibm,plb3", }, | ||
31 | { .compatible = "ibm,opb", }, | ||
32 | { .compatible = "ibm,ebc", }, | ||
33 | {}, | ||
34 | }; | ||
35 | |||
36 | static int __init hcu4_device_probe(void) | ||
37 | { | ||
38 | of_platform_bus_probe(NULL, hcu4_of_bus, NULL); | ||
39 | return 0; | ||
40 | } | ||
41 | machine_device_initcall(hcu4, hcu4_device_probe); | ||
42 | |||
43 | static int __init hcu4_probe(void) | ||
44 | { | ||
45 | unsigned long root = of_get_flat_dt_root(); | ||
46 | |||
47 | if (!of_flat_dt_is_compatible(root, "netstal,hcu4")) | ||
48 | return 0; | ||
49 | |||
50 | return 1; | ||
51 | } | ||
52 | |||
53 | define_machine(hcu4) { | ||
54 | .name = "HCU4", | ||
55 | .probe = hcu4_probe, | ||
56 | .progress = udbg_progress, | ||
57 | .init_IRQ = uic_init_tree, | ||
58 | .get_irq = uic_get_irq, | ||
59 | .restart = ppc4xx_reset_system, | ||
60 | .calibrate_decr = generic_calibrate_decr, | ||
61 | }; | ||
diff --git a/arch/powerpc/platforms/40x/ppc40x_simple.c b/arch/powerpc/platforms/40x/ppc40x_simple.c new file mode 100644 index 000000000000..4498a86b46c3 --- /dev/null +++ b/arch/powerpc/platforms/40x/ppc40x_simple.c | |||
@@ -0,0 +1,80 @@ | |||
1 | /* | ||
2 | * Generic PowerPC 40x platform support | ||
3 | * | ||
4 | * Copyright 2008 IBM Corporation | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify it | ||
7 | * under the terms of the GNU General Public License as published by the | ||
8 | * Free Software Foundation; version 2 of the License. | ||
9 | * | ||
10 | * This implements simple platform support for PowerPC 44x chips. This is | ||
11 | * mostly used for eval boards or other simple and "generic" 44x boards. If | ||
12 | * your board has custom functions or hardware, then you will likely want to | ||
13 | * implement your own board.c file to accommodate it. | ||
14 | */ | ||
15 | |||
16 | #include <asm/machdep.h> | ||
17 | #include <asm/pci-bridge.h> | ||
18 | #include <asm/ppc4xx.h> | ||
19 | #include <asm/prom.h> | ||
20 | #include <asm/time.h> | ||
21 | #include <asm/udbg.h> | ||
22 | #include <asm/uic.h> | ||
23 | |||
24 | #include <linux/init.h> | ||
25 | #include <linux/of_platform.h> | ||
26 | |||
27 | static __initdata struct of_device_id ppc40x_of_bus[] = { | ||
28 | { .compatible = "ibm,plb3", }, | ||
29 | { .compatible = "ibm,plb4", }, | ||
30 | { .compatible = "ibm,opb", }, | ||
31 | { .compatible = "ibm,ebc", }, | ||
32 | { .compatible = "simple-bus", }, | ||
33 | {}, | ||
34 | }; | ||
35 | |||
36 | static int __init ppc40x_device_probe(void) | ||
37 | { | ||
38 | of_platform_bus_probe(NULL, ppc40x_of_bus, NULL); | ||
39 | |||
40 | return 0; | ||
41 | } | ||
42 | machine_device_initcall(ppc40x_simple, ppc40x_device_probe); | ||
43 | |||
44 | /* This is the list of boards that can be supported by this simple | ||
45 | * platform code. This does _not_ mean the boards are compatible, | ||
46 | * as they most certainly are not from a device tree perspective. | ||
47 | * However, their differences are handled by the device tree and the | ||
48 | * drivers and therefore they don't need custom board support files. | ||
49 | * | ||
50 | * Again, if your board needs to do things differently then create a | ||
51 | * board.c file for it rather than adding it to this list. | ||
52 | */ | ||
53 | static char *board[] __initdata = { | ||
54 | "amcc,acadia" | ||
55 | }; | ||
56 | |||
57 | static int __init ppc40x_probe(void) | ||
58 | { | ||
59 | unsigned long root = of_get_flat_dt_root(); | ||
60 | int i = 0; | ||
61 | |||
62 | for (i = 0; i < ARRAY_SIZE(board); i++) { | ||
63 | if (of_flat_dt_is_compatible(root, board[i])) { | ||
64 | ppc_pci_flags = PPC_PCI_REASSIGN_ALL_RSRC; | ||
65 | return 1; | ||
66 | } | ||
67 | } | ||
68 | |||
69 | return 0; | ||
70 | } | ||
71 | |||
72 | define_machine(ppc40x_simple) { | ||
73 | .name = "PowerPC 40x Platform", | ||
74 | .probe = ppc40x_probe, | ||
75 | .progress = udbg_progress, | ||
76 | .init_IRQ = uic_init_tree, | ||
77 | .get_irq = uic_get_irq, | ||
78 | .restart = ppc4xx_reset_system, | ||
79 | .calibrate_decr = generic_calibrate_decr, | ||
80 | }; | ||
diff --git a/arch/powerpc/platforms/44x/Kconfig b/arch/powerpc/platforms/44x/Kconfig index 79c1154f88d4..3496bc05058e 100644 --- a/arch/powerpc/platforms/44x/Kconfig +++ b/arch/powerpc/platforms/44x/Kconfig | |||
@@ -167,6 +167,14 @@ config PPC44x_SIMPLE | |||
167 | help | 167 | help |
168 | This option enables the simple PowerPC 44x platform support. | 168 | This option enables the simple PowerPC 44x platform support. |
169 | 169 | ||
170 | config PPC4xx_GPIO | ||
171 | bool "PPC4xx GPIO support" | ||
172 | depends on 44x | ||
173 | select ARCH_REQUIRE_GPIOLIB | ||
174 | select GENERIC_GPIO | ||
175 | help | ||
176 | Enable gpiolib support for ppc440 based boards | ||
177 | |||
170 | # 44x specific CPU modules, selected based on the board above. | 178 | # 44x specific CPU modules, selected based on the board above. |
171 | config 440EP | 179 | config 440EP |
172 | bool | 180 | bool |
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_common.c b/arch/powerpc/platforms/52xx/mpc52xx_common.c index 044b4e6e8743..ae7c34f37e1c 100644 --- a/arch/powerpc/platforms/52xx/mpc52xx_common.c +++ b/arch/powerpc/platforms/52xx/mpc52xx_common.c | |||
@@ -99,11 +99,14 @@ mpc5200_setup_xlb_arbiter(void) | |||
99 | out_be32(&xlb->master_pri_enable, 0xff); | 99 | out_be32(&xlb->master_pri_enable, 0xff); |
100 | out_be32(&xlb->master_priority, 0x11111111); | 100 | out_be32(&xlb->master_priority, 0x11111111); |
101 | 101 | ||
102 | /* Disable XLB pipelining | 102 | /* |
103 | * Disable XLB pipelining | ||
103 | * (cfr errate 292. We could do this only just before ATA PIO | 104 | * (cfr errate 292. We could do this only just before ATA PIO |
104 | * transaction and re-enable it afterwards ...) | 105 | * transaction and re-enable it afterwards ...) |
106 | * Not needed on MPC5200B. | ||
105 | */ | 107 | */ |
106 | out_be32(&xlb->config, in_be32(&xlb->config) | MPC52xx_XLB_CFG_PLDIS); | 108 | if ((mfspr(SPRN_SVR) & MPC5200_SVR_MASK) == MPC5200_SVR) |
109 | out_be32(&xlb->config, in_be32(&xlb->config) | MPC52xx_XLB_CFG_PLDIS); | ||
107 | 110 | ||
108 | iounmap(xlb); | 111 | iounmap(xlb); |
109 | } | 112 | } |
diff --git a/arch/powerpc/platforms/85xx/ksi8560.c b/arch/powerpc/platforms/85xx/ksi8560.c index 8a3b117b6ce2..81cee7bbf2d2 100644 --- a/arch/powerpc/platforms/85xx/ksi8560.c +++ b/arch/powerpc/platforms/85xx/ksi8560.c | |||
@@ -193,7 +193,6 @@ static void __init ksi8560_setup_arch(void) | |||
193 | static void ksi8560_show_cpuinfo(struct seq_file *m) | 193 | static void ksi8560_show_cpuinfo(struct seq_file *m) |
194 | { | 194 | { |
195 | uint pvid, svid, phid1; | 195 | uint pvid, svid, phid1; |
196 | uint memsize = total_memory; | ||
197 | 196 | ||
198 | pvid = mfspr(SPRN_PVR); | 197 | pvid = mfspr(SPRN_PVR); |
199 | svid = mfspr(SPRN_SVR); | 198 | svid = mfspr(SPRN_SVR); |
@@ -215,9 +214,6 @@ static void ksi8560_show_cpuinfo(struct seq_file *m) | |||
215 | /* Display cpu Pll setting */ | 214 | /* Display cpu Pll setting */ |
216 | phid1 = mfspr(SPRN_HID1); | 215 | phid1 = mfspr(SPRN_HID1); |
217 | seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f)); | 216 | seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f)); |
218 | |||
219 | /* Display the amount of memory */ | ||
220 | seq_printf(m, "Memory\t\t: %d MB\n", memsize / (1024 * 1024)); | ||
221 | } | 217 | } |
222 | 218 | ||
223 | static struct of_device_id __initdata of_bus_ids[] = { | 219 | static struct of_device_id __initdata of_bus_ids[] = { |
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ads.c b/arch/powerpc/platforms/85xx/mpc85xx_ads.c index 0293e3d3580f..21f009023e26 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_ads.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_ads.c | |||
@@ -207,7 +207,6 @@ static void __init mpc85xx_ads_setup_arch(void) | |||
207 | static void mpc85xx_ads_show_cpuinfo(struct seq_file *m) | 207 | static void mpc85xx_ads_show_cpuinfo(struct seq_file *m) |
208 | { | 208 | { |
209 | uint pvid, svid, phid1; | 209 | uint pvid, svid, phid1; |
210 | uint memsize = total_memory; | ||
211 | 210 | ||
212 | pvid = mfspr(SPRN_PVR); | 211 | pvid = mfspr(SPRN_PVR); |
213 | svid = mfspr(SPRN_SVR); | 212 | svid = mfspr(SPRN_SVR); |
@@ -219,9 +218,6 @@ static void mpc85xx_ads_show_cpuinfo(struct seq_file *m) | |||
219 | /* Display cpu Pll setting */ | 218 | /* Display cpu Pll setting */ |
220 | phid1 = mfspr(SPRN_HID1); | 219 | phid1 = mfspr(SPRN_HID1); |
221 | seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f)); | 220 | seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f)); |
222 | |||
223 | /* Display the amount of memory */ | ||
224 | seq_printf(m, "Memory\t\t: %d MB\n", memsize / (1024 * 1024)); | ||
225 | } | 221 | } |
226 | 222 | ||
227 | static struct of_device_id __initdata of_bus_ids[] = { | 223 | static struct of_device_id __initdata of_bus_ids[] = { |
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_cds.c b/arch/powerpc/platforms/85xx/mpc85xx_cds.c index 50d7ea8f922b..aeb6a5bc5522 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_cds.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_cds.c | |||
@@ -307,7 +307,6 @@ static void __init mpc85xx_cds_setup_arch(void) | |||
307 | static void mpc85xx_cds_show_cpuinfo(struct seq_file *m) | 307 | static void mpc85xx_cds_show_cpuinfo(struct seq_file *m) |
308 | { | 308 | { |
309 | uint pvid, svid, phid1; | 309 | uint pvid, svid, phid1; |
310 | uint memsize = total_memory; | ||
311 | 310 | ||
312 | pvid = mfspr(SPRN_PVR); | 311 | pvid = mfspr(SPRN_PVR); |
313 | svid = mfspr(SPRN_SVR); | 312 | svid = mfspr(SPRN_SVR); |
@@ -320,9 +319,6 @@ static void mpc85xx_cds_show_cpuinfo(struct seq_file *m) | |||
320 | /* Display cpu Pll setting */ | 319 | /* Display cpu Pll setting */ |
321 | phid1 = mfspr(SPRN_HID1); | 320 | phid1 = mfspr(SPRN_HID1); |
322 | seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f)); | 321 | seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f)); |
323 | |||
324 | /* Display the amount of memory */ | ||
325 | seq_printf(m, "Memory\t\t: %d MB\n", memsize / (1024 * 1024)); | ||
326 | } | 322 | } |
327 | 323 | ||
328 | 324 | ||
diff --git a/arch/powerpc/platforms/85xx/sbc8548.c b/arch/powerpc/platforms/85xx/sbc8548.c index b9246ea0928a..7ec77ce12dad 100644 --- a/arch/powerpc/platforms/85xx/sbc8548.c +++ b/arch/powerpc/platforms/85xx/sbc8548.c | |||
@@ -136,7 +136,6 @@ static void __init sbc8548_setup_arch(void) | |||
136 | static void sbc8548_show_cpuinfo(struct seq_file *m) | 136 | static void sbc8548_show_cpuinfo(struct seq_file *m) |
137 | { | 137 | { |
138 | uint pvid, svid, phid1; | 138 | uint pvid, svid, phid1; |
139 | uint memsize = total_memory; | ||
140 | 139 | ||
141 | pvid = mfspr(SPRN_PVR); | 140 | pvid = mfspr(SPRN_PVR); |
142 | svid = mfspr(SPRN_SVR); | 141 | svid = mfspr(SPRN_SVR); |
@@ -149,9 +148,6 @@ static void sbc8548_show_cpuinfo(struct seq_file *m) | |||
149 | /* Display cpu Pll setting */ | 148 | /* Display cpu Pll setting */ |
150 | phid1 = mfspr(SPRN_HID1); | 149 | phid1 = mfspr(SPRN_HID1); |
151 | seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f)); | 150 | seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f)); |
152 | |||
153 | /* Display the amount of memory */ | ||
154 | seq_printf(m, "Memory\t\t: %d MB\n", memsize / (1024 * 1024)); | ||
155 | } | 151 | } |
156 | 152 | ||
157 | static struct of_device_id __initdata of_bus_ids[] = { | 153 | static struct of_device_id __initdata of_bus_ids[] = { |
diff --git a/arch/powerpc/platforms/85xx/sbc8560.c b/arch/powerpc/platforms/85xx/sbc8560.c index 0c9a856f66b6..472f254a19d2 100644 --- a/arch/powerpc/platforms/85xx/sbc8560.c +++ b/arch/powerpc/platforms/85xx/sbc8560.c | |||
@@ -194,7 +194,6 @@ static void __init sbc8560_setup_arch(void) | |||
194 | static void sbc8560_show_cpuinfo(struct seq_file *m) | 194 | static void sbc8560_show_cpuinfo(struct seq_file *m) |
195 | { | 195 | { |
196 | uint pvid, svid, phid1; | 196 | uint pvid, svid, phid1; |
197 | uint memsize = total_memory; | ||
198 | 197 | ||
199 | pvid = mfspr(SPRN_PVR); | 198 | pvid = mfspr(SPRN_PVR); |
200 | svid = mfspr(SPRN_SVR); | 199 | svid = mfspr(SPRN_SVR); |
@@ -206,9 +205,6 @@ static void sbc8560_show_cpuinfo(struct seq_file *m) | |||
206 | /* Display cpu Pll setting */ | 205 | /* Display cpu Pll setting */ |
207 | phid1 = mfspr(SPRN_HID1); | 206 | phid1 = mfspr(SPRN_HID1); |
208 | seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f)); | 207 | seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f)); |
209 | |||
210 | /* Display the amount of memory */ | ||
211 | seq_printf(m, "Memory\t\t: %d MB\n", memsize / (1024 * 1024)); | ||
212 | } | 208 | } |
213 | 209 | ||
214 | static struct of_device_id __initdata of_bus_ids[] = { | 210 | static struct of_device_id __initdata of_bus_ids[] = { |
diff --git a/arch/powerpc/platforms/85xx/stx_gp3.c b/arch/powerpc/platforms/85xx/stx_gp3.c index 18499d7c9d9e..0cca8f5cb272 100644 --- a/arch/powerpc/platforms/85xx/stx_gp3.c +++ b/arch/powerpc/platforms/85xx/stx_gp3.c | |||
@@ -130,7 +130,6 @@ static void __init stx_gp3_setup_arch(void) | |||
130 | static void stx_gp3_show_cpuinfo(struct seq_file *m) | 130 | static void stx_gp3_show_cpuinfo(struct seq_file *m) |
131 | { | 131 | { |
132 | uint pvid, svid, phid1; | 132 | uint pvid, svid, phid1; |
133 | uint memsize = total_memory; | ||
134 | 133 | ||
135 | pvid = mfspr(SPRN_PVR); | 134 | pvid = mfspr(SPRN_PVR); |
136 | svid = mfspr(SPRN_SVR); | 135 | svid = mfspr(SPRN_SVR); |
@@ -142,9 +141,6 @@ static void stx_gp3_show_cpuinfo(struct seq_file *m) | |||
142 | /* Display cpu Pll setting */ | 141 | /* Display cpu Pll setting */ |
143 | phid1 = mfspr(SPRN_HID1); | 142 | phid1 = mfspr(SPRN_HID1); |
144 | seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f)); | 143 | seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f)); |
145 | |||
146 | /* Display the amount of memory */ | ||
147 | seq_printf(m, "Memory\t\t: %d MB\n", memsize / (1024 * 1024)); | ||
148 | } | 144 | } |
149 | 145 | ||
150 | static struct of_device_id __initdata of_bus_ids[] = { | 146 | static struct of_device_id __initdata of_bus_ids[] = { |
diff --git a/arch/powerpc/platforms/85xx/tqm85xx.c b/arch/powerpc/platforms/85xx/tqm85xx.c index d850880d6964..2933a8e827d9 100644 --- a/arch/powerpc/platforms/85xx/tqm85xx.c +++ b/arch/powerpc/platforms/85xx/tqm85xx.c | |||
@@ -138,7 +138,6 @@ static void __init tqm85xx_setup_arch(void) | |||
138 | static void tqm85xx_show_cpuinfo(struct seq_file *m) | 138 | static void tqm85xx_show_cpuinfo(struct seq_file *m) |
139 | { | 139 | { |
140 | uint pvid, svid, phid1; | 140 | uint pvid, svid, phid1; |
141 | uint memsize = total_memory; | ||
142 | 141 | ||
143 | pvid = mfspr(SPRN_PVR); | 142 | pvid = mfspr(SPRN_PVR); |
144 | svid = mfspr(SPRN_SVR); | 143 | svid = mfspr(SPRN_SVR); |
@@ -150,9 +149,6 @@ static void tqm85xx_show_cpuinfo(struct seq_file *m) | |||
150 | /* Display cpu Pll setting */ | 149 | /* Display cpu Pll setting */ |
151 | phid1 = mfspr(SPRN_HID1); | 150 | phid1 = mfspr(SPRN_HID1); |
152 | seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f)); | 151 | seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f)); |
153 | |||
154 | /* Display the amount of memory */ | ||
155 | seq_printf(m, "Memory\t\t: %d MB\n", memsize / (1024 * 1024)); | ||
156 | } | 152 | } |
157 | 153 | ||
158 | static struct of_device_id __initdata of_bus_ids[] = { | 154 | static struct of_device_id __initdata of_bus_ids[] = { |
diff --git a/arch/powerpc/platforms/86xx/gef_sbc610.c b/arch/powerpc/platforms/86xx/gef_sbc610.c index 821c45fac18b..fb371f5ce132 100644 --- a/arch/powerpc/platforms/86xx/gef_sbc610.c +++ b/arch/powerpc/platforms/86xx/gef_sbc610.c | |||
@@ -127,7 +127,6 @@ static unsigned int gef_sbc610_get_fpga_rev(void) | |||
127 | 127 | ||
128 | static void gef_sbc610_show_cpuinfo(struct seq_file *m) | 128 | static void gef_sbc610_show_cpuinfo(struct seq_file *m) |
129 | { | 129 | { |
130 | uint memsize = total_memory; | ||
131 | uint svid = mfspr(SPRN_SVR); | 130 | uint svid = mfspr(SPRN_SVR); |
132 | 131 | ||
133 | seq_printf(m, "Vendor\t\t: GE Fanuc Intelligent Platforms\n"); | 132 | seq_printf(m, "Vendor\t\t: GE Fanuc Intelligent Platforms\n"); |
@@ -137,7 +136,6 @@ static void gef_sbc610_show_cpuinfo(struct seq_file *m) | |||
137 | seq_printf(m, "FPGA Revision\t: %u\n", gef_sbc610_get_fpga_rev()); | 136 | seq_printf(m, "FPGA Revision\t: %u\n", gef_sbc610_get_fpga_rev()); |
138 | 137 | ||
139 | seq_printf(m, "SVR\t\t: 0x%x\n", svid); | 138 | seq_printf(m, "SVR\t\t: 0x%x\n", svid); |
140 | seq_printf(m, "Memory\t\t: %d MB\n", memsize / (1024 * 1024)); | ||
141 | } | 139 | } |
142 | 140 | ||
143 | static void __init gef_sbc610_nec_fixup(struct pci_dev *pdev) | 141 | static void __init gef_sbc610_nec_fixup(struct pci_dev *pdev) |
diff --git a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c index 2672829a71dc..27e0e682d8e1 100644 --- a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c +++ b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c | |||
@@ -101,13 +101,11 @@ mpc86xx_hpcn_setup_arch(void) | |||
101 | static void | 101 | static void |
102 | mpc86xx_hpcn_show_cpuinfo(struct seq_file *m) | 102 | mpc86xx_hpcn_show_cpuinfo(struct seq_file *m) |
103 | { | 103 | { |
104 | uint memsize = total_memory; | ||
105 | uint svid = mfspr(SPRN_SVR); | 104 | uint svid = mfspr(SPRN_SVR); |
106 | 105 | ||
107 | seq_printf(m, "Vendor\t\t: Freescale Semiconductor\n"); | 106 | seq_printf(m, "Vendor\t\t: Freescale Semiconductor\n"); |
108 | 107 | ||
109 | seq_printf(m, "SVR\t\t: 0x%x\n", svid); | 108 | seq_printf(m, "SVR\t\t: 0x%x\n", svid); |
110 | seq_printf(m, "Memory\t\t: %d MB\n", memsize / (1024 * 1024)); | ||
111 | } | 109 | } |
112 | 110 | ||
113 | 111 | ||
diff --git a/arch/powerpc/platforms/86xx/sbc8641d.c b/arch/powerpc/platforms/86xx/sbc8641d.c index da677a74e2d1..5fd7ed40986f 100644 --- a/arch/powerpc/platforms/86xx/sbc8641d.c +++ b/arch/powerpc/platforms/86xx/sbc8641d.c | |||
@@ -63,13 +63,11 @@ sbc8641_setup_arch(void) | |||
63 | static void | 63 | static void |
64 | sbc8641_show_cpuinfo(struct seq_file *m) | 64 | sbc8641_show_cpuinfo(struct seq_file *m) |
65 | { | 65 | { |
66 | uint memsize = total_memory; | ||
67 | uint svid = mfspr(SPRN_SVR); | 66 | uint svid = mfspr(SPRN_SVR); |
68 | 67 | ||
69 | seq_printf(m, "Vendor\t\t: Wind River Systems\n"); | 68 | seq_printf(m, "Vendor\t\t: Wind River Systems\n"); |
70 | 69 | ||
71 | seq_printf(m, "SVR\t\t: 0x%x\n", svid); | 70 | seq_printf(m, "SVR\t\t: 0x%x\n", svid); |
72 | seq_printf(m, "Memory\t\t: %d MB\n", memsize / (1024 * 1024)); | ||
73 | } | 71 | } |
74 | 72 | ||
75 | 73 | ||
diff --git a/arch/powerpc/platforms/cell/ras.c b/arch/powerpc/platforms/cell/ras.c index 2a14b052abcd..665af1c4195b 100644 --- a/arch/powerpc/platforms/cell/ras.c +++ b/arch/powerpc/platforms/cell/ras.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <asm/machdep.h> | 21 | #include <asm/machdep.h> |
22 | #include <asm/rtas.h> | 22 | #include <asm/rtas.h> |
23 | #include <asm/cell-regs.h> | 23 | #include <asm/cell-regs.h> |
24 | #include <asm/kdump.h> | ||
24 | 25 | ||
25 | #include "ras.h" | 26 | #include "ras.h" |
26 | 27 | ||
@@ -111,9 +112,8 @@ static int __init cbe_ptcal_enable_on_node(int nid, int order) | |||
111 | int ret = -ENOMEM; | 112 | int ret = -ENOMEM; |
112 | unsigned long addr; | 113 | unsigned long addr; |
113 | 114 | ||
114 | #ifdef CONFIG_CRASH_DUMP | 115 | if (__kdump_flag) |
115 | rtas_call(ptcal_stop_tok, 1, 1, NULL, nid); | 116 | rtas_call(ptcal_stop_tok, 1, 1, NULL, nid); |
116 | #endif | ||
117 | 117 | ||
118 | area = kmalloc(sizeof(*area), GFP_KERNEL); | 118 | area = kmalloc(sizeof(*area), GFP_KERNEL); |
119 | if (!area) | 119 | if (!area) |
diff --git a/arch/powerpc/platforms/cell/smp.c b/arch/powerpc/platforms/cell/smp.c index efb3964457b1..c0d86e1f56ea 100644 --- a/arch/powerpc/platforms/cell/smp.c +++ b/arch/powerpc/platforms/cell/smp.c | |||
@@ -54,8 +54,8 @@ | |||
54 | #endif | 54 | #endif |
55 | 55 | ||
56 | /* | 56 | /* |
57 | * The primary thread of each non-boot processor is recorded here before | 57 | * The Primary thread of each non-boot processor was started from the OF client |
58 | * smp init. | 58 | * interface by prom_hold_cpus and is spinning on secondary_hold_spinloop. |
59 | */ | 59 | */ |
60 | static cpumask_t of_spin_map; | 60 | static cpumask_t of_spin_map; |
61 | 61 | ||
@@ -208,11 +208,7 @@ void __init smp_init_cell(void) | |||
208 | /* Mark threads which are still spinning in hold loops. */ | 208 | /* Mark threads which are still spinning in hold loops. */ |
209 | if (cpu_has_feature(CPU_FTR_SMT)) { | 209 | if (cpu_has_feature(CPU_FTR_SMT)) { |
210 | for_each_present_cpu(i) { | 210 | for_each_present_cpu(i) { |
211 | if (i % 2 == 0) | 211 | if (cpu_thread_in_core(i) == 0) |
212 | /* | ||
213 | * Even-numbered logical cpus correspond to | ||
214 | * primary threads. | ||
215 | */ | ||
216 | cpu_set(i, of_spin_map); | 212 | cpu_set(i, of_spin_map); |
217 | } | 213 | } |
218 | } else { | 214 | } else { |
diff --git a/arch/powerpc/platforms/cell/spufs/file.c b/arch/powerpc/platforms/cell/spufs/file.c index 010a51f59796..b73c369cc6f1 100644 --- a/arch/powerpc/platforms/cell/spufs/file.c +++ b/arch/powerpc/platforms/cell/spufs/file.c | |||
@@ -548,6 +548,11 @@ spufs_regs_read(struct file *file, char __user *buffer, | |||
548 | int ret; | 548 | int ret; |
549 | struct spu_context *ctx = file->private_data; | 549 | struct spu_context *ctx = file->private_data; |
550 | 550 | ||
551 | /* pre-check for file position: if we'd return EOF, there's no point | ||
552 | * causing a deschedule */ | ||
553 | if (*pos >= sizeof(ctx->csa.lscsa->gprs)) | ||
554 | return 0; | ||
555 | |||
551 | ret = spu_acquire_saved(ctx); | 556 | ret = spu_acquire_saved(ctx); |
552 | if (ret) | 557 | if (ret) |
553 | return ret; | 558 | return ret; |
@@ -2426,38 +2431,49 @@ static inline int spufs_switch_log_avail(struct spu_context *ctx) | |||
2426 | static int spufs_switch_log_open(struct inode *inode, struct file *file) | 2431 | static int spufs_switch_log_open(struct inode *inode, struct file *file) |
2427 | { | 2432 | { |
2428 | struct spu_context *ctx = SPUFS_I(inode)->i_ctx; | 2433 | struct spu_context *ctx = SPUFS_I(inode)->i_ctx; |
2434 | int rc; | ||
2435 | |||
2436 | rc = spu_acquire(ctx); | ||
2437 | if (rc) | ||
2438 | return rc; | ||
2429 | 2439 | ||
2430 | /* | ||
2431 | * We (ab-)use the mapping_lock here because it serves the similar | ||
2432 | * purpose for synchronizing open/close elsewhere. Maybe it should | ||
2433 | * be renamed eventually. | ||
2434 | */ | ||
2435 | mutex_lock(&ctx->mapping_lock); | ||
2436 | if (ctx->switch_log) { | 2440 | if (ctx->switch_log) { |
2437 | spin_lock(&ctx->switch_log->lock); | 2441 | rc = -EBUSY; |
2438 | ctx->switch_log->head = 0; | 2442 | goto out; |
2439 | ctx->switch_log->tail = 0; | ||
2440 | spin_unlock(&ctx->switch_log->lock); | ||
2441 | } else { | ||
2442 | /* | ||
2443 | * We allocate the switch log data structures on first open. | ||
2444 | * They will never be free because we assume a context will | ||
2445 | * be traced until it goes away. | ||
2446 | */ | ||
2447 | ctx->switch_log = kzalloc(sizeof(struct switch_log) + | ||
2448 | SWITCH_LOG_BUFSIZE * sizeof(struct switch_log_entry), | ||
2449 | GFP_KERNEL); | ||
2450 | if (!ctx->switch_log) | ||
2451 | goto out; | ||
2452 | spin_lock_init(&ctx->switch_log->lock); | ||
2453 | init_waitqueue_head(&ctx->switch_log->wait); | ||
2454 | } | 2443 | } |
2455 | mutex_unlock(&ctx->mapping_lock); | 2444 | |
2445 | ctx->switch_log = kmalloc(sizeof(struct switch_log) + | ||
2446 | SWITCH_LOG_BUFSIZE * sizeof(struct switch_log_entry), | ||
2447 | GFP_KERNEL); | ||
2448 | |||
2449 | if (!ctx->switch_log) { | ||
2450 | rc = -ENOMEM; | ||
2451 | goto out; | ||
2452 | } | ||
2453 | |||
2454 | ctx->switch_log->head = ctx->switch_log->tail = 0; | ||
2455 | init_waitqueue_head(&ctx->switch_log->wait); | ||
2456 | rc = 0; | ||
2457 | |||
2458 | out: | ||
2459 | spu_release(ctx); | ||
2460 | return rc; | ||
2461 | } | ||
2462 | |||
2463 | static int spufs_switch_log_release(struct inode *inode, struct file *file) | ||
2464 | { | ||
2465 | struct spu_context *ctx = SPUFS_I(inode)->i_ctx; | ||
2466 | int rc; | ||
2467 | |||
2468 | rc = spu_acquire(ctx); | ||
2469 | if (rc) | ||
2470 | return rc; | ||
2471 | |||
2472 | kfree(ctx->switch_log); | ||
2473 | ctx->switch_log = NULL; | ||
2474 | spu_release(ctx); | ||
2456 | 2475 | ||
2457 | return 0; | 2476 | return 0; |
2458 | out: | ||
2459 | mutex_unlock(&ctx->mapping_lock); | ||
2460 | return -ENOMEM; | ||
2461 | } | 2477 | } |
2462 | 2478 | ||
2463 | static int switch_log_sprint(struct spu_context *ctx, char *tbuf, int n) | 2479 | static int switch_log_sprint(struct spu_context *ctx, char *tbuf, int n) |
@@ -2485,42 +2501,54 @@ static ssize_t spufs_switch_log_read(struct file *file, char __user *buf, | |||
2485 | if (!buf || len < 0) | 2501 | if (!buf || len < 0) |
2486 | return -EINVAL; | 2502 | return -EINVAL; |
2487 | 2503 | ||
2504 | error = spu_acquire(ctx); | ||
2505 | if (error) | ||
2506 | return error; | ||
2507 | |||
2488 | while (cnt < len) { | 2508 | while (cnt < len) { |
2489 | char tbuf[128]; | 2509 | char tbuf[128]; |
2490 | int width; | 2510 | int width; |
2491 | 2511 | ||
2492 | if (file->f_flags & O_NONBLOCK) { | 2512 | if (spufs_switch_log_used(ctx) == 0) { |
2493 | if (spufs_switch_log_used(ctx) <= 0) | 2513 | if (cnt > 0) { |
2494 | return cnt ? cnt : -EAGAIN; | 2514 | /* If there's data ready to go, we can |
2495 | } else { | 2515 | * just return straight away */ |
2496 | /* Wait for data in buffer */ | 2516 | break; |
2497 | error = wait_event_interruptible(ctx->switch_log->wait, | 2517 | |
2498 | spufs_switch_log_used(ctx) > 0); | 2518 | } else if (file->f_flags & O_NONBLOCK) { |
2499 | if (error) | 2519 | error = -EAGAIN; |
2500 | break; | 2520 | break; |
2501 | } | ||
2502 | 2521 | ||
2503 | spin_lock(&ctx->switch_log->lock); | 2522 | } else { |
2504 | if (ctx->switch_log->head == ctx->switch_log->tail) { | 2523 | /* spufs_wait will drop the mutex and |
2505 | /* multiple readers race? */ | 2524 | * re-acquire, but since we're in read(), the |
2506 | spin_unlock(&ctx->switch_log->lock); | 2525 | * file cannot be _released (and so |
2507 | continue; | 2526 | * ctx->switch_log is stable). |
2527 | */ | ||
2528 | error = spufs_wait(ctx->switch_log->wait, | ||
2529 | spufs_switch_log_used(ctx) > 0); | ||
2530 | |||
2531 | /* On error, spufs_wait returns without the | ||
2532 | * state mutex held */ | ||
2533 | if (error) | ||
2534 | return error; | ||
2535 | |||
2536 | /* We may have had entries read from underneath | ||
2537 | * us while we dropped the mutex in spufs_wait, | ||
2538 | * so re-check */ | ||
2539 | if (spufs_switch_log_used(ctx) == 0) | ||
2540 | continue; | ||
2541 | } | ||
2508 | } | 2542 | } |
2509 | 2543 | ||
2510 | width = switch_log_sprint(ctx, tbuf, sizeof(tbuf)); | 2544 | width = switch_log_sprint(ctx, tbuf, sizeof(tbuf)); |
2511 | if (width < len) { | 2545 | if (width < len) |
2512 | ctx->switch_log->tail = | 2546 | ctx->switch_log->tail = |
2513 | (ctx->switch_log->tail + 1) % | 2547 | (ctx->switch_log->tail + 1) % |
2514 | SWITCH_LOG_BUFSIZE; | 2548 | SWITCH_LOG_BUFSIZE; |
2515 | } | 2549 | else |
2516 | 2550 | /* If the record is greater than space available return | |
2517 | spin_unlock(&ctx->switch_log->lock); | 2551 | * partial buffer (so far) */ |
2518 | |||
2519 | /* | ||
2520 | * If the record is greater than space available return | ||
2521 | * partial buffer (so far) | ||
2522 | */ | ||
2523 | if (width >= len) | ||
2524 | break; | 2552 | break; |
2525 | 2553 | ||
2526 | error = copy_to_user(buf + cnt, tbuf, width); | 2554 | error = copy_to_user(buf + cnt, tbuf, width); |
@@ -2529,6 +2557,8 @@ static ssize_t spufs_switch_log_read(struct file *file, char __user *buf, | |||
2529 | cnt += width; | 2557 | cnt += width; |
2530 | } | 2558 | } |
2531 | 2559 | ||
2560 | spu_release(ctx); | ||
2561 | |||
2532 | return cnt == 0 ? error : cnt; | 2562 | return cnt == 0 ? error : cnt; |
2533 | } | 2563 | } |
2534 | 2564 | ||
@@ -2537,29 +2567,41 @@ static unsigned int spufs_switch_log_poll(struct file *file, poll_table *wait) | |||
2537 | struct inode *inode = file->f_path.dentry->d_inode; | 2567 | struct inode *inode = file->f_path.dentry->d_inode; |
2538 | struct spu_context *ctx = SPUFS_I(inode)->i_ctx; | 2568 | struct spu_context *ctx = SPUFS_I(inode)->i_ctx; |
2539 | unsigned int mask = 0; | 2569 | unsigned int mask = 0; |
2570 | int rc; | ||
2540 | 2571 | ||
2541 | poll_wait(file, &ctx->switch_log->wait, wait); | 2572 | poll_wait(file, &ctx->switch_log->wait, wait); |
2542 | 2573 | ||
2574 | rc = spu_acquire(ctx); | ||
2575 | if (rc) | ||
2576 | return rc; | ||
2577 | |||
2543 | if (spufs_switch_log_used(ctx) > 0) | 2578 | if (spufs_switch_log_used(ctx) > 0) |
2544 | mask |= POLLIN; | 2579 | mask |= POLLIN; |
2545 | 2580 | ||
2581 | spu_release(ctx); | ||
2582 | |||
2546 | return mask; | 2583 | return mask; |
2547 | } | 2584 | } |
2548 | 2585 | ||
2549 | static const struct file_operations spufs_switch_log_fops = { | 2586 | static const struct file_operations spufs_switch_log_fops = { |
2550 | .owner = THIS_MODULE, | 2587 | .owner = THIS_MODULE, |
2551 | .open = spufs_switch_log_open, | 2588 | .open = spufs_switch_log_open, |
2552 | .read = spufs_switch_log_read, | 2589 | .read = spufs_switch_log_read, |
2553 | .poll = spufs_switch_log_poll, | 2590 | .poll = spufs_switch_log_poll, |
2591 | .release = spufs_switch_log_release, | ||
2554 | }; | 2592 | }; |
2555 | 2593 | ||
2594 | /** | ||
2595 | * Log a context switch event to a switch log reader. | ||
2596 | * | ||
2597 | * Must be called with ctx->state_mutex held. | ||
2598 | */ | ||
2556 | void spu_switch_log_notify(struct spu *spu, struct spu_context *ctx, | 2599 | void spu_switch_log_notify(struct spu *spu, struct spu_context *ctx, |
2557 | u32 type, u32 val) | 2600 | u32 type, u32 val) |
2558 | { | 2601 | { |
2559 | if (!ctx->switch_log) | 2602 | if (!ctx->switch_log) |
2560 | return; | 2603 | return; |
2561 | 2604 | ||
2562 | spin_lock(&ctx->switch_log->lock); | ||
2563 | if (spufs_switch_log_avail(ctx) > 1) { | 2605 | if (spufs_switch_log_avail(ctx) > 1) { |
2564 | struct switch_log_entry *p; | 2606 | struct switch_log_entry *p; |
2565 | 2607 | ||
@@ -2573,7 +2615,6 @@ void spu_switch_log_notify(struct spu *spu, struct spu_context *ctx, | |||
2573 | ctx->switch_log->head = | 2615 | ctx->switch_log->head = |
2574 | (ctx->switch_log->head + 1) % SWITCH_LOG_BUFSIZE; | 2616 | (ctx->switch_log->head + 1) % SWITCH_LOG_BUFSIZE; |
2575 | } | 2617 | } |
2576 | spin_unlock(&ctx->switch_log->lock); | ||
2577 | 2618 | ||
2578 | wake_up(&ctx->switch_log->wait); | 2619 | wake_up(&ctx->switch_log->wait); |
2579 | } | 2620 | } |
diff --git a/arch/powerpc/platforms/cell/spufs/run.c b/arch/powerpc/platforms/cell/spufs/run.c index c9bb7cfd3dca..c58bd36b0c5b 100644 --- a/arch/powerpc/platforms/cell/spufs/run.c +++ b/arch/powerpc/platforms/cell/spufs/run.c | |||
@@ -249,6 +249,7 @@ static int spu_run_fini(struct spu_context *ctx, u32 *npc, | |||
249 | 249 | ||
250 | spuctx_switch_state(ctx, SPU_UTIL_IDLE_LOADED); | 250 | spuctx_switch_state(ctx, SPU_UTIL_IDLE_LOADED); |
251 | clear_bit(SPU_SCHED_SPU_RUN, &ctx->sched_flags); | 251 | clear_bit(SPU_SCHED_SPU_RUN, &ctx->sched_flags); |
252 | spu_switch_log_notify(NULL, ctx, SWITCH_LOG_EXIT, *status); | ||
252 | spu_release(ctx); | 253 | spu_release(ctx); |
253 | 254 | ||
254 | if (signal_pending(current)) | 255 | if (signal_pending(current)) |
@@ -417,8 +418,6 @@ long spufs_run_spu(struct spu_context *ctx, u32 *npc, u32 *event) | |||
417 | ret = spu_run_fini(ctx, npc, &status); | 418 | ret = spu_run_fini(ctx, npc, &status); |
418 | spu_yield(ctx); | 419 | spu_yield(ctx); |
419 | 420 | ||
420 | spu_switch_log_notify(NULL, ctx, SWITCH_LOG_EXIT, status); | ||
421 | |||
422 | if ((status & SPU_STATUS_STOPPED_BY_STOP) && | 421 | if ((status & SPU_STATUS_STOPPED_BY_STOP) && |
423 | (((status >> SPU_STOP_STATUS_SHIFT) & 0x3f00) == 0x2100)) | 422 | (((status >> SPU_STOP_STATUS_SHIFT) & 0x3f00) == 0x2100)) |
424 | ctx->stats.libassist++; | 423 | ctx->stats.libassist++; |
diff --git a/arch/powerpc/platforms/cell/spufs/sched.c b/arch/powerpc/platforms/cell/spufs/sched.c index 67595bc380dc..2ad914c47493 100644 --- a/arch/powerpc/platforms/cell/spufs/sched.c +++ b/arch/powerpc/platforms/cell/spufs/sched.c | |||
@@ -312,6 +312,15 @@ static struct spu *aff_ref_location(struct spu_context *ctx, int mem_aff, | |||
312 | */ | 312 | */ |
313 | node = cpu_to_node(raw_smp_processor_id()); | 313 | node = cpu_to_node(raw_smp_processor_id()); |
314 | for (n = 0; n < MAX_NUMNODES; n++, node++) { | 314 | for (n = 0; n < MAX_NUMNODES; n++, node++) { |
315 | /* | ||
316 | * "available_spus" counts how many spus are not potentially | ||
317 | * going to be used by other affinity gangs whose reference | ||
318 | * context is already in place. Although this code seeks to | ||
319 | * avoid having affinity gangs with a summed amount of | ||
320 | * contexts bigger than the amount of spus in the node, | ||
321 | * this may happen sporadically. In this case, available_spus | ||
322 | * becomes negative, which is harmless. | ||
323 | */ | ||
315 | int available_spus; | 324 | int available_spus; |
316 | 325 | ||
317 | node = (node < MAX_NUMNODES) ? node : 0; | 326 | node = (node < MAX_NUMNODES) ? node : 0; |
@@ -321,12 +330,10 @@ static struct spu *aff_ref_location(struct spu_context *ctx, int mem_aff, | |||
321 | available_spus = 0; | 330 | available_spus = 0; |
322 | mutex_lock(&cbe_spu_info[node].list_mutex); | 331 | mutex_lock(&cbe_spu_info[node].list_mutex); |
323 | list_for_each_entry(spu, &cbe_spu_info[node].spus, cbe_list) { | 332 | list_for_each_entry(spu, &cbe_spu_info[node].spus, cbe_list) { |
324 | if (spu->ctx && spu->ctx->gang | 333 | if (spu->ctx && spu->ctx->gang && !spu->ctx->aff_offset |
325 | && spu->ctx->aff_offset == 0) | 334 | && spu->ctx->gang->aff_ref_spu) |
326 | available_spus -= | 335 | available_spus -= spu->ctx->gang->contexts; |
327 | (spu->ctx->gang->contexts - 1); | 336 | available_spus++; |
328 | else | ||
329 | available_spus++; | ||
330 | } | 337 | } |
331 | if (available_spus < ctx->gang->contexts) { | 338 | if (available_spus < ctx->gang->contexts) { |
332 | mutex_unlock(&cbe_spu_info[node].list_mutex); | 339 | mutex_unlock(&cbe_spu_info[node].list_mutex); |
@@ -437,6 +444,11 @@ static void spu_unbind_context(struct spu *spu, struct spu_context *ctx) | |||
437 | atomic_dec(&cbe_spu_info[spu->node].reserved_spus); | 444 | atomic_dec(&cbe_spu_info[spu->node].reserved_spus); |
438 | 445 | ||
439 | if (ctx->gang) | 446 | if (ctx->gang) |
447 | /* | ||
448 | * If ctx->gang->aff_sched_count is positive, SPU affinity is | ||
449 | * being considered in this gang. Using atomic_dec_if_positive | ||
450 | * allow us to skip an explicit check for affinity in this gang | ||
451 | */ | ||
440 | atomic_dec_if_positive(&ctx->gang->aff_sched_count); | 452 | atomic_dec_if_positive(&ctx->gang->aff_sched_count); |
441 | 453 | ||
442 | spu_switch_notify(spu, NULL); | 454 | spu_switch_notify(spu, NULL); |
diff --git a/arch/powerpc/platforms/cell/spufs/spufs.h b/arch/powerpc/platforms/cell/spufs/spufs.h index 8ae8ef9dfc22..15c62d3ca129 100644 --- a/arch/powerpc/platforms/cell/spufs/spufs.h +++ b/arch/powerpc/platforms/cell/spufs/spufs.h | |||
@@ -65,7 +65,6 @@ enum { | |||
65 | }; | 65 | }; |
66 | 66 | ||
67 | struct switch_log { | 67 | struct switch_log { |
68 | spinlock_t lock; | ||
69 | wait_queue_head_t wait; | 68 | wait_queue_head_t wait; |
70 | unsigned long head; | 69 | unsigned long head; |
71 | unsigned long tail; | 70 | unsigned long tail; |
diff --git a/arch/powerpc/platforms/cell/spufs/sputrace.c b/arch/powerpc/platforms/cell/spufs/sputrace.c index 2ece399f2862..d0b1f3f4d9c8 100644 --- a/arch/powerpc/platforms/cell/spufs/sputrace.c +++ b/arch/powerpc/platforms/cell/spufs/sputrace.c | |||
@@ -40,6 +40,7 @@ static DECLARE_WAIT_QUEUE_HEAD(sputrace_wait); | |||
40 | static ktime_t sputrace_start; | 40 | static ktime_t sputrace_start; |
41 | static unsigned long sputrace_head, sputrace_tail; | 41 | static unsigned long sputrace_head, sputrace_tail; |
42 | static struct sputrace *sputrace_log; | 42 | static struct sputrace *sputrace_log; |
43 | static int sputrace_logging; | ||
43 | 44 | ||
44 | static int sputrace_used(void) | 45 | static int sputrace_used(void) |
45 | { | 46 | { |
@@ -79,6 +80,11 @@ static ssize_t sputrace_read(struct file *file, char __user *buf, | |||
79 | char tbuf[128]; | 80 | char tbuf[128]; |
80 | int width; | 81 | int width; |
81 | 82 | ||
83 | /* If we have data ready to return, don't block waiting | ||
84 | * for more */ | ||
85 | if (cnt > 0 && sputrace_used() == 0) | ||
86 | break; | ||
87 | |||
82 | error = wait_event_interruptible(sputrace_wait, | 88 | error = wait_event_interruptible(sputrace_wait, |
83 | sputrace_used() > 0); | 89 | sputrace_used() > 0); |
84 | if (error) | 90 | if (error) |
@@ -109,24 +115,49 @@ static ssize_t sputrace_read(struct file *file, char __user *buf, | |||
109 | 115 | ||
110 | static int sputrace_open(struct inode *inode, struct file *file) | 116 | static int sputrace_open(struct inode *inode, struct file *file) |
111 | { | 117 | { |
118 | int rc; | ||
119 | |||
112 | spin_lock(&sputrace_lock); | 120 | spin_lock(&sputrace_lock); |
121 | if (sputrace_logging) { | ||
122 | rc = -EBUSY; | ||
123 | goto out; | ||
124 | } | ||
125 | |||
126 | sputrace_logging = 1; | ||
113 | sputrace_head = sputrace_tail = 0; | 127 | sputrace_head = sputrace_tail = 0; |
114 | sputrace_start = ktime_get(); | 128 | sputrace_start = ktime_get(); |
129 | rc = 0; | ||
130 | |||
131 | out: | ||
115 | spin_unlock(&sputrace_lock); | 132 | spin_unlock(&sputrace_lock); |
133 | return rc; | ||
134 | } | ||
116 | 135 | ||
136 | static int sputrace_release(struct inode *inode, struct file *file) | ||
137 | { | ||
138 | spin_lock(&sputrace_lock); | ||
139 | sputrace_logging = 0; | ||
140 | spin_unlock(&sputrace_lock); | ||
117 | return 0; | 141 | return 0; |
118 | } | 142 | } |
119 | 143 | ||
120 | static const struct file_operations sputrace_fops = { | 144 | static const struct file_operations sputrace_fops = { |
121 | .owner = THIS_MODULE, | 145 | .owner = THIS_MODULE, |
122 | .open = sputrace_open, | 146 | .open = sputrace_open, |
123 | .read = sputrace_read, | 147 | .read = sputrace_read, |
148 | .release = sputrace_release, | ||
124 | }; | 149 | }; |
125 | 150 | ||
126 | static void sputrace_log_item(const char *name, struct spu_context *ctx, | 151 | static void sputrace_log_item(const char *name, struct spu_context *ctx, |
127 | struct spu *spu) | 152 | struct spu *spu) |
128 | { | 153 | { |
129 | spin_lock(&sputrace_lock); | 154 | spin_lock(&sputrace_lock); |
155 | |||
156 | if (!sputrace_logging) { | ||
157 | spin_unlock(&sputrace_lock); | ||
158 | return; | ||
159 | } | ||
160 | |||
130 | if (sputrace_avail() > 1) { | 161 | if (sputrace_avail() > 1) { |
131 | struct sputrace *t = sputrace_log + sputrace_head; | 162 | struct sputrace *t = sputrace_log + sputrace_head; |
132 | 163 | ||
diff --git a/arch/powerpc/platforms/cell/spufs/syscalls.c b/arch/powerpc/platforms/cell/spufs/syscalls.c index 49c87769b1f8..c23617c6baf3 100644 --- a/arch/powerpc/platforms/cell/spufs/syscalls.c +++ b/arch/powerpc/platforms/cell/spufs/syscalls.c | |||
@@ -69,9 +69,9 @@ static long do_spu_create(const char __user *pathname, unsigned int flags, | |||
69 | if (!IS_ERR(tmp)) { | 69 | if (!IS_ERR(tmp)) { |
70 | struct nameidata nd; | 70 | struct nameidata nd; |
71 | 71 | ||
72 | ret = path_lookup(tmp, LOOKUP_PARENT| | 72 | ret = path_lookup(tmp, LOOKUP_PARENT, &nd); |
73 | LOOKUP_OPEN|LOOKUP_CREATE, &nd); | ||
74 | if (!ret) { | 73 | if (!ret) { |
74 | nd.flags |= LOOKUP_OPEN | LOOKUP_CREATE; | ||
75 | ret = spufs_create(&nd, flags, mode, neighbor); | 75 | ret = spufs_create(&nd, flags, mode, neighbor); |
76 | path_put(&nd.path); | 76 | path_put(&nd.path); |
77 | } | 77 | } |
diff --git a/arch/powerpc/platforms/embedded6xx/c2k.c b/arch/powerpc/platforms/embedded6xx/c2k.c index d0b25b8c39d1..32ba0fa0ad03 100644 --- a/arch/powerpc/platforms/embedded6xx/c2k.c +++ b/arch/powerpc/platforms/embedded6xx/c2k.c | |||
@@ -116,10 +116,7 @@ static void c2k_restart(char *cmd) | |||
116 | 116 | ||
117 | void c2k_show_cpuinfo(struct seq_file *m) | 117 | void c2k_show_cpuinfo(struct seq_file *m) |
118 | { | 118 | { |
119 | uint memsize = total_memory; | ||
120 | |||
121 | seq_printf(m, "Vendor\t\t: GEFanuc\n"); | 119 | seq_printf(m, "Vendor\t\t: GEFanuc\n"); |
122 | seq_printf(m, "Memory\t\t: %d MB\n", memsize / (1024 * 1024)); | ||
123 | seq_printf(m, "coherency\t: %s\n", COHERENCY_SETTING); | 120 | seq_printf(m, "coherency\t: %s\n", COHERENCY_SETTING); |
124 | } | 121 | } |
125 | 122 | ||
diff --git a/arch/powerpc/platforms/embedded6xx/prpmc2800.c b/arch/powerpc/platforms/embedded6xx/prpmc2800.c index 5a19b9a1457c..4c485e984236 100644 --- a/arch/powerpc/platforms/embedded6xx/prpmc2800.c +++ b/arch/powerpc/platforms/embedded6xx/prpmc2800.c | |||
@@ -119,10 +119,7 @@ static void prpmc2800_restart(char *cmd) | |||
119 | 119 | ||
120 | void prpmc2800_show_cpuinfo(struct seq_file *m) | 120 | void prpmc2800_show_cpuinfo(struct seq_file *m) |
121 | { | 121 | { |
122 | uint memsize = total_memory; | ||
123 | |||
124 | seq_printf(m, "Vendor\t\t: Motorola\n"); | 122 | seq_printf(m, "Vendor\t\t: Motorola\n"); |
125 | seq_printf(m, "Memory\t\t: %d MB\n", memsize / (1024 * 1024)); | ||
126 | seq_printf(m, "coherency\t: %s\n", PPRPM2800_COHERENCY_SETTING); | 123 | seq_printf(m, "coherency\t: %s\n", PPRPM2800_COHERENCY_SETTING); |
127 | } | 124 | } |
128 | 125 | ||
diff --git a/arch/powerpc/platforms/pseries/hotplug-memory.c b/arch/powerpc/platforms/pseries/hotplug-memory.c index 140d02a5232a..a623ad256e9e 100644 --- a/arch/powerpc/platforms/pseries/hotplug-memory.c +++ b/arch/powerpc/platforms/pseries/hotplug-memory.c | |||
@@ -22,6 +22,12 @@ static int pseries_remove_lmb(unsigned long base, unsigned int lmb_size) | |||
22 | int ret; | 22 | int ret; |
23 | 23 | ||
24 | start_pfn = base >> PAGE_SHIFT; | 24 | start_pfn = base >> PAGE_SHIFT; |
25 | |||
26 | if (!pfn_valid(start_pfn)) { | ||
27 | lmb_remove(base, lmb_size); | ||
28 | return 0; | ||
29 | } | ||
30 | |||
25 | zone = page_zone(pfn_to_page(start_pfn)); | 31 | zone = page_zone(pfn_to_page(start_pfn)); |
26 | 32 | ||
27 | /* | 33 | /* |
diff --git a/arch/powerpc/platforms/pseries/iommu.c b/arch/powerpc/platforms/pseries/iommu.c index a8c446697f9e..d56491d182d3 100644 --- a/arch/powerpc/platforms/pseries/iommu.c +++ b/arch/powerpc/platforms/pseries/iommu.c | |||
@@ -44,6 +44,7 @@ | |||
44 | #include <asm/tce.h> | 44 | #include <asm/tce.h> |
45 | #include <asm/ppc-pci.h> | 45 | #include <asm/ppc-pci.h> |
46 | #include <asm/udbg.h> | 46 | #include <asm/udbg.h> |
47 | #include <asm/kdump.h> | ||
47 | 48 | ||
48 | #include "plpar_wrappers.h" | 49 | #include "plpar_wrappers.h" |
49 | 50 | ||
@@ -291,9 +292,8 @@ static void iommu_table_setparms(struct pci_controller *phb, | |||
291 | 292 | ||
292 | tbl->it_base = (unsigned long)__va(*basep); | 293 | tbl->it_base = (unsigned long)__va(*basep); |
293 | 294 | ||
294 | #ifndef CONFIG_CRASH_DUMP | 295 | if (!__kdump_flag) |
295 | memset((void *)tbl->it_base, 0, *sizep); | 296 | memset((void *)tbl->it_base, 0, *sizep); |
296 | #endif | ||
297 | 297 | ||
298 | tbl->it_busno = phb->bus->number; | 298 | tbl->it_busno = phb->bus->number; |
299 | 299 | ||
diff --git a/arch/powerpc/platforms/pseries/smp.c b/arch/powerpc/platforms/pseries/smp.c index e00f96baa381..1a231c389ba0 100644 --- a/arch/powerpc/platforms/pseries/smp.c +++ b/arch/powerpc/platforms/pseries/smp.c | |||
@@ -52,8 +52,8 @@ | |||
52 | 52 | ||
53 | 53 | ||
54 | /* | 54 | /* |
55 | * The primary thread of each non-boot processor is recorded here before | 55 | * The Primary thread of each non-boot processor was started from the OF client |
56 | * smp init. | 56 | * interface by prom_hold_cpus and is spinning on secondary_hold_spinloop. |
57 | */ | 57 | */ |
58 | static cpumask_t of_spin_map; | 58 | static cpumask_t of_spin_map; |
59 | 59 | ||
@@ -161,8 +161,7 @@ static void __devinit smp_pSeries_kick_cpu(int nr) | |||
161 | static int smp_pSeries_cpu_bootable(unsigned int nr) | 161 | static int smp_pSeries_cpu_bootable(unsigned int nr) |
162 | { | 162 | { |
163 | /* Special case - we inhibit secondary thread startup | 163 | /* Special case - we inhibit secondary thread startup |
164 | * during boot if the user requests it. Odd-numbered | 164 | * during boot if the user requests it. |
165 | * cpus are assumed to be secondary threads. | ||
166 | */ | 165 | */ |
167 | if (system_state < SYSTEM_RUNNING && | 166 | if (system_state < SYSTEM_RUNNING && |
168 | cpu_has_feature(CPU_FTR_SMT) && | 167 | cpu_has_feature(CPU_FTR_SMT) && |
@@ -199,11 +198,7 @@ static void __init smp_init_pseries(void) | |||
199 | /* Mark threads which are still spinning in hold loops. */ | 198 | /* Mark threads which are still spinning in hold loops. */ |
200 | if (cpu_has_feature(CPU_FTR_SMT)) { | 199 | if (cpu_has_feature(CPU_FTR_SMT)) { |
201 | for_each_present_cpu(i) { | 200 | for_each_present_cpu(i) { |
202 | if (i % 2 == 0) | 201 | if (cpu_thread_in_core(i) == 0) |
203 | /* | ||
204 | * Even-numbered logical cpus correspond to | ||
205 | * primary threads. | ||
206 | */ | ||
207 | cpu_set(i, of_spin_map); | 202 | cpu_set(i, of_spin_map); |
208 | } | 203 | } |
209 | } else { | 204 | } else { |
diff --git a/arch/powerpc/sysdev/Makefile b/arch/powerpc/sysdev/Makefile index a44709a94f97..5afce115ab1f 100644 --- a/arch/powerpc/sysdev/Makefile +++ b/arch/powerpc/sysdev/Makefile | |||
@@ -37,6 +37,7 @@ obj-$(CONFIG_OF_RTC) += of_rtc.o | |||
37 | ifeq ($(CONFIG_PCI),y) | 37 | ifeq ($(CONFIG_PCI),y) |
38 | obj-$(CONFIG_4xx) += ppc4xx_pci.o | 38 | obj-$(CONFIG_4xx) += ppc4xx_pci.o |
39 | endif | 39 | endif |
40 | obj-$(CONFIG_PPC4xx_GPIO) += ppc4xx_gpio.o | ||
40 | 41 | ||
41 | obj-$(CONFIG_CPM) += cpm_common.o | 42 | obj-$(CONFIG_CPM) += cpm_common.o |
42 | obj-$(CONFIG_CPM2) += cpm2.o cpm2_pic.o | 43 | obj-$(CONFIG_CPM2) += cpm2.o cpm2_pic.o |
diff --git a/arch/powerpc/sysdev/ppc4xx_gpio.c b/arch/powerpc/sysdev/ppc4xx_gpio.c new file mode 100644 index 000000000000..110efe2a54fc --- /dev/null +++ b/arch/powerpc/sysdev/ppc4xx_gpio.c | |||
@@ -0,0 +1,217 @@ | |||
1 | /* | ||
2 | * PPC4xx gpio driver | ||
3 | * | ||
4 | * Copyright (c) 2008 Harris Corporation | ||
5 | * Copyright (c) 2008 Sascha Hauer <s.hauer@pengutronix.de>, Pengutronix | ||
6 | * Copyright (c) MontaVista Software, Inc. 2008. | ||
7 | * | ||
8 | * Author: Steve Falco <sfalco@harris.com> | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify | ||
11 | * it under the terms of the GNU General Public License version 2 | ||
12 | * as published by the Free Software Foundation. | ||
13 | * | ||
14 | * This program is distributed in the hope that it will be useful, | ||
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
17 | * GNU General Public License for more details. | ||
18 | * | ||
19 | * You should have received a copy of the GNU General Public License | ||
20 | * along with this program; if not, write to the Free Software | ||
21 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
22 | */ | ||
23 | |||
24 | #include <linux/kernel.h> | ||
25 | #include <linux/init.h> | ||
26 | #include <linux/spinlock.h> | ||
27 | #include <linux/io.h> | ||
28 | #include <linux/of.h> | ||
29 | #include <linux/of_gpio.h> | ||
30 | #include <linux/gpio.h> | ||
31 | #include <linux/types.h> | ||
32 | |||
33 | #define GPIO_MASK(gpio) (0x80000000 >> (gpio)) | ||
34 | #define GPIO_MASK2(gpio) (0xc0000000 >> ((gpio) * 2)) | ||
35 | |||
36 | /* Physical GPIO register layout */ | ||
37 | struct ppc4xx_gpio { | ||
38 | __be32 or; | ||
39 | __be32 tcr; | ||
40 | __be32 osrl; | ||
41 | __be32 osrh; | ||
42 | __be32 tsrl; | ||
43 | __be32 tsrh; | ||
44 | __be32 odr; | ||
45 | __be32 ir; | ||
46 | __be32 rr1; | ||
47 | __be32 rr2; | ||
48 | __be32 rr3; | ||
49 | __be32 reserved1; | ||
50 | __be32 isr1l; | ||
51 | __be32 isr1h; | ||
52 | __be32 isr2l; | ||
53 | __be32 isr2h; | ||
54 | __be32 isr3l; | ||
55 | __be32 isr3h; | ||
56 | }; | ||
57 | |||
58 | struct ppc4xx_gpio_chip { | ||
59 | struct of_mm_gpio_chip mm_gc; | ||
60 | spinlock_t lock; | ||
61 | }; | ||
62 | |||
63 | /* | ||
64 | * GPIO LIB API implementation for GPIOs | ||
65 | * | ||
66 | * There are a maximum of 32 gpios in each gpio controller. | ||
67 | */ | ||
68 | |||
69 | static inline struct ppc4xx_gpio_chip * | ||
70 | to_ppc4xx_gpiochip(struct of_mm_gpio_chip *mm_gc) | ||
71 | { | ||
72 | return container_of(mm_gc, struct ppc4xx_gpio_chip, mm_gc); | ||
73 | } | ||
74 | |||
75 | static int ppc4xx_gpio_get(struct gpio_chip *gc, unsigned int gpio) | ||
76 | { | ||
77 | struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc); | ||
78 | struct ppc4xx_gpio __iomem *regs = mm_gc->regs; | ||
79 | |||
80 | return in_be32(®s->ir) & GPIO_MASK(gpio); | ||
81 | } | ||
82 | |||
83 | static inline void | ||
84 | __ppc4xx_gpio_set(struct gpio_chip *gc, unsigned int gpio, int val) | ||
85 | { | ||
86 | struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc); | ||
87 | struct ppc4xx_gpio __iomem *regs = mm_gc->regs; | ||
88 | |||
89 | if (val) | ||
90 | setbits32(®s->or, GPIO_MASK(gpio)); | ||
91 | else | ||
92 | clrbits32(®s->or, GPIO_MASK(gpio)); | ||
93 | } | ||
94 | |||
95 | static void | ||
96 | ppc4xx_gpio_set(struct gpio_chip *gc, unsigned int gpio, int val) | ||
97 | { | ||
98 | struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc); | ||
99 | struct ppc4xx_gpio_chip *chip = to_ppc4xx_gpiochip(mm_gc); | ||
100 | unsigned long flags; | ||
101 | |||
102 | spin_lock_irqsave(&chip->lock, flags); | ||
103 | |||
104 | __ppc4xx_gpio_set(gc, gpio, val); | ||
105 | |||
106 | spin_unlock_irqrestore(&chip->lock, flags); | ||
107 | |||
108 | pr_debug("%s: gpio: %d val: %d\n", __func__, gpio, val); | ||
109 | } | ||
110 | |||
111 | static int ppc4xx_gpio_dir_in(struct gpio_chip *gc, unsigned int gpio) | ||
112 | { | ||
113 | struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc); | ||
114 | struct ppc4xx_gpio_chip *chip = to_ppc4xx_gpiochip(mm_gc); | ||
115 | struct ppc4xx_gpio __iomem *regs = mm_gc->regs; | ||
116 | unsigned long flags; | ||
117 | |||
118 | spin_lock_irqsave(&chip->lock, flags); | ||
119 | |||
120 | /* Disable open-drain function */ | ||
121 | clrbits32(®s->odr, GPIO_MASK(gpio)); | ||
122 | |||
123 | /* Float the pin */ | ||
124 | clrbits32(®s->tcr, GPIO_MASK(gpio)); | ||
125 | |||
126 | /* Bits 0-15 use TSRL/OSRL, bits 16-31 use TSRH/OSRH */ | ||
127 | if (gpio < 16) { | ||
128 | clrbits32(®s->osrl, GPIO_MASK2(gpio)); | ||
129 | clrbits32(®s->tsrl, GPIO_MASK2(gpio)); | ||
130 | } else { | ||
131 | clrbits32(®s->osrh, GPIO_MASK2(gpio)); | ||
132 | clrbits32(®s->tsrh, GPIO_MASK2(gpio)); | ||
133 | } | ||
134 | |||
135 | spin_unlock_irqrestore(&chip->lock, flags); | ||
136 | |||
137 | return 0; | ||
138 | } | ||
139 | |||
140 | static int | ||
141 | ppc4xx_gpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val) | ||
142 | { | ||
143 | struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc); | ||
144 | struct ppc4xx_gpio_chip *chip = to_ppc4xx_gpiochip(mm_gc); | ||
145 | struct ppc4xx_gpio __iomem *regs = mm_gc->regs; | ||
146 | unsigned long flags; | ||
147 | |||
148 | spin_lock_irqsave(&chip->lock, flags); | ||
149 | |||
150 | /* First set initial value */ | ||
151 | __ppc4xx_gpio_set(gc, gpio, val); | ||
152 | |||
153 | /* Disable open-drain function */ | ||
154 | clrbits32(®s->odr, GPIO_MASK(gpio)); | ||
155 | |||
156 | /* Drive the pin */ | ||
157 | setbits32(®s->tcr, GPIO_MASK(gpio)); | ||
158 | |||
159 | /* Bits 0-15 use TSRL, bits 16-31 use TSRH */ | ||
160 | if (gpio < 16) { | ||
161 | clrbits32(®s->osrl, GPIO_MASK2(gpio)); | ||
162 | clrbits32(®s->tsrl, GPIO_MASK2(gpio)); | ||
163 | } else { | ||
164 | clrbits32(®s->osrh, GPIO_MASK2(gpio)); | ||
165 | clrbits32(®s->tsrh, GPIO_MASK2(gpio)); | ||
166 | } | ||
167 | |||
168 | spin_unlock_irqrestore(&chip->lock, flags); | ||
169 | |||
170 | pr_debug("%s: gpio: %d val: %d\n", __func__, gpio, val); | ||
171 | |||
172 | return 0; | ||
173 | } | ||
174 | |||
175 | static int __init ppc4xx_add_gpiochips(void) | ||
176 | { | ||
177 | struct device_node *np; | ||
178 | |||
179 | for_each_compatible_node(np, NULL, "ibm,ppc4xx-gpio") { | ||
180 | int ret; | ||
181 | struct ppc4xx_gpio_chip *ppc4xx_gc; | ||
182 | struct of_mm_gpio_chip *mm_gc; | ||
183 | struct of_gpio_chip *of_gc; | ||
184 | struct gpio_chip *gc; | ||
185 | |||
186 | ppc4xx_gc = kzalloc(sizeof(*ppc4xx_gc), GFP_KERNEL); | ||
187 | if (!ppc4xx_gc) { | ||
188 | ret = -ENOMEM; | ||
189 | goto err; | ||
190 | } | ||
191 | |||
192 | spin_lock_init(&ppc4xx_gc->lock); | ||
193 | |||
194 | mm_gc = &ppc4xx_gc->mm_gc; | ||
195 | of_gc = &mm_gc->of_gc; | ||
196 | gc = &of_gc->gc; | ||
197 | |||
198 | of_gc->gpio_cells = 2; | ||
199 | gc->ngpio = 32; | ||
200 | gc->direction_input = ppc4xx_gpio_dir_in; | ||
201 | gc->direction_output = ppc4xx_gpio_dir_out; | ||
202 | gc->get = ppc4xx_gpio_get; | ||
203 | gc->set = ppc4xx_gpio_set; | ||
204 | |||
205 | ret = of_mm_gpiochip_add(np, mm_gc); | ||
206 | if (ret) | ||
207 | goto err; | ||
208 | continue; | ||
209 | err: | ||
210 | pr_err("%s: registration failed with status %d\n", | ||
211 | np->full_name, ret); | ||
212 | kfree(ppc4xx_gc); | ||
213 | /* try others anyway */ | ||
214 | } | ||
215 | return 0; | ||
216 | } | ||
217 | arch_initcall(ppc4xx_add_gpiochips); | ||
diff --git a/arch/sh/boards/board-ap325rxa.c b/arch/sh/boards/board-ap325rxa.c index 7c7874e6ac36..8881a643ac32 100644 --- a/arch/sh/boards/board-ap325rxa.c +++ b/arch/sh/boards/board-ap325rxa.c | |||
@@ -15,6 +15,7 @@ | |||
15 | #include <linux/interrupt.h> | 15 | #include <linux/interrupt.h> |
16 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
17 | #include <linux/mtd/physmap.h> | 17 | #include <linux/mtd/physmap.h> |
18 | #include <linux/mtd/sh_flctl.h> | ||
18 | #include <linux/delay.h> | 19 | #include <linux/delay.h> |
19 | #include <linux/i2c.h> | 20 | #include <linux/i2c.h> |
20 | #include <linux/smc911x.h> | 21 | #include <linux/smc911x.h> |
@@ -108,10 +109,45 @@ static struct platform_device ap325rxa_nor_flash_device = { | |||
108 | }, | 109 | }, |
109 | }; | 110 | }; |
110 | 111 | ||
112 | static struct mtd_partition nand_partition_info[] = { | ||
113 | { | ||
114 | .name = "nand_data", | ||
115 | .offset = 0, | ||
116 | .size = MTDPART_SIZ_FULL, | ||
117 | }, | ||
118 | }; | ||
119 | |||
120 | static struct resource nand_flash_resources[] = { | ||
121 | [0] = { | ||
122 | .start = 0xa4530000, | ||
123 | .end = 0xa45300ff, | ||
124 | .flags = IORESOURCE_MEM, | ||
125 | } | ||
126 | }; | ||
127 | |||
128 | static struct sh_flctl_platform_data nand_flash_data = { | ||
129 | .parts = nand_partition_info, | ||
130 | .nr_parts = ARRAY_SIZE(nand_partition_info), | ||
131 | .flcmncr_val = FCKSEL_E | TYPESEL_SET | NANWF_E, | ||
132 | .has_hwecc = 1, | ||
133 | }; | ||
134 | |||
135 | static struct platform_device nand_flash_device = { | ||
136 | .name = "sh_flctl", | ||
137 | .resource = nand_flash_resources, | ||
138 | .num_resources = ARRAY_SIZE(nand_flash_resources), | ||
139 | .dev = { | ||
140 | .platform_data = &nand_flash_data, | ||
141 | }, | ||
142 | }; | ||
143 | |||
111 | #define FPGA_LCDREG 0xB4100180 | 144 | #define FPGA_LCDREG 0xB4100180 |
112 | #define FPGA_BKLREG 0xB4100212 | 145 | #define FPGA_BKLREG 0xB4100212 |
113 | #define FPGA_LCDREG_VAL 0x0018 | 146 | #define FPGA_LCDREG_VAL 0x0018 |
114 | #define PORT_MSELCRB 0xA4050182 | 147 | #define PORT_MSELCRB 0xA4050182 |
148 | #define PORT_HIZCRC 0xA405015C | ||
149 | #define PORT_DRVCRA 0xA405018A | ||
150 | #define PORT_DRVCRB 0xA405018C | ||
115 | 151 | ||
116 | static void ap320_wvga_power_on(void *board_data) | 152 | static void ap320_wvga_power_on(void *board_data) |
117 | { | 153 | { |
@@ -282,6 +318,7 @@ static struct platform_device *ap325rxa_devices[] __initdata = { | |||
282 | #ifdef CONFIG_I2C | 318 | #ifdef CONFIG_I2C |
283 | &camera_device, | 319 | &camera_device, |
284 | #endif | 320 | #endif |
321 | &nand_flash_device, | ||
285 | }; | 322 | }; |
286 | 323 | ||
287 | static struct i2c_board_info __initdata ap325rxa_i2c_devices[] = { | 324 | static struct i2c_board_info __initdata ap325rxa_i2c_devices[] = { |
@@ -364,21 +401,36 @@ static int __init ap325rxa_devices_setup(void) | |||
364 | 401 | ||
365 | ctrl_outw(ctrl_inw(PORT_MSELCRB) & ~0x0001, PORT_MSELCRB); | 402 | ctrl_outw(ctrl_inw(PORT_MSELCRB) & ~0x0001, PORT_MSELCRB); |
366 | 403 | ||
404 | /* FLCTL */ | ||
405 | gpio_request(GPIO_FN_FCE, NULL); | ||
406 | gpio_request(GPIO_FN_NAF7, NULL); | ||
407 | gpio_request(GPIO_FN_NAF6, NULL); | ||
408 | gpio_request(GPIO_FN_NAF5, NULL); | ||
409 | gpio_request(GPIO_FN_NAF4, NULL); | ||
410 | gpio_request(GPIO_FN_NAF3, NULL); | ||
411 | gpio_request(GPIO_FN_NAF2, NULL); | ||
412 | gpio_request(GPIO_FN_NAF1, NULL); | ||
413 | gpio_request(GPIO_FN_NAF0, NULL); | ||
414 | gpio_request(GPIO_FN_FCDE, NULL); | ||
415 | gpio_request(GPIO_FN_FOE, NULL); | ||
416 | gpio_request(GPIO_FN_FSC, NULL); | ||
417 | gpio_request(GPIO_FN_FWE, NULL); | ||
418 | gpio_request(GPIO_FN_FRB, NULL); | ||
419 | |||
420 | ctrl_outw(0, PORT_HIZCRC); | ||
421 | ctrl_outw(0xFFFF, PORT_DRVCRA); | ||
422 | ctrl_outw(0xFFFF, PORT_DRVCRB); | ||
423 | |||
367 | platform_resource_setup_memory(&ceu_device, "ceu", 4 << 20); | 424 | platform_resource_setup_memory(&ceu_device, "ceu", 4 << 20); |
368 | 425 | ||
369 | i2c_register_board_info(0, ap325rxa_i2c_devices, | 426 | i2c_register_board_info(0, ap325rxa_i2c_devices, |
370 | ARRAY_SIZE(ap325rxa_i2c_devices)); | 427 | ARRAY_SIZE(ap325rxa_i2c_devices)); |
371 | 428 | ||
372 | return platform_add_devices(ap325rxa_devices, | 429 | return platform_add_devices(ap325rxa_devices, |
373 | ARRAY_SIZE(ap325rxa_devices)); | 430 | ARRAY_SIZE(ap325rxa_devices)); |
374 | } | 431 | } |
375 | device_initcall(ap325rxa_devices_setup); | 432 | device_initcall(ap325rxa_devices_setup); |
376 | 433 | ||
377 | static void __init ap325rxa_setup(char **cmdline_p) | ||
378 | { | ||
379 | } | ||
380 | |||
381 | static struct sh_machine_vector mv_ap325rxa __initmv = { | 434 | static struct sh_machine_vector mv_ap325rxa __initmv = { |
382 | .mv_name = "AP-325RXA", | 435 | .mv_name = "AP-325RXA", |
383 | .mv_setup = ap325rxa_setup, | ||
384 | }; | 436 | }; |
diff --git a/arch/sh/boards/board-rsk7203.c b/arch/sh/boards/board-rsk7203.c index ded799cf3eae..58266f06134a 100644 --- a/arch/sh/boards/board-rsk7203.c +++ b/arch/sh/boards/board-rsk7203.c | |||
@@ -17,9 +17,10 @@ | |||
17 | #include <linux/mtd/map.h> | 17 | #include <linux/mtd/map.h> |
18 | #include <linux/smc911x.h> | 18 | #include <linux/smc911x.h> |
19 | #include <linux/gpio.h> | 19 | #include <linux/gpio.h> |
20 | #include <linux/leds.h> | ||
20 | #include <asm/machvec.h> | 21 | #include <asm/machvec.h> |
21 | #include <asm/io.h> | 22 | #include <asm/io.h> |
22 | #include <asm/sh7203.h> | 23 | #include <cpu/sh7203.h> |
23 | 24 | ||
24 | static struct smc911x_platdata smc911x_info = { | 25 | static struct smc911x_platdata smc911x_info = { |
25 | .flags = SMC911X_USE_16BIT, | 26 | .flags = SMC911X_USE_16BIT, |
@@ -116,10 +117,46 @@ static void __init set_mtd_partitions(void) | |||
116 | } | 117 | } |
117 | } | 118 | } |
118 | 119 | ||
120 | static struct gpio_led rsk7203_gpio_leds[] = { | ||
121 | { | ||
122 | .name = "green", | ||
123 | .gpio = GPIO_PE10, | ||
124 | .active_low = 1, | ||
125 | }, { | ||
126 | .name = "orange", | ||
127 | .default_trigger = "nand-disk", | ||
128 | .gpio = GPIO_PE12, | ||
129 | .active_low = 1, | ||
130 | }, { | ||
131 | .name = "red:timer", | ||
132 | .default_trigger = "timer", | ||
133 | .gpio = GPIO_PC14, | ||
134 | .active_low = 1, | ||
135 | }, { | ||
136 | .name = "red:heartbeat", | ||
137 | .default_trigger = "heartbeat", | ||
138 | .gpio = GPIO_PE11, | ||
139 | .active_low = 1, | ||
140 | }, | ||
141 | }; | ||
142 | |||
143 | static struct gpio_led_platform_data rsk7203_gpio_leds_info = { | ||
144 | .leds = rsk7203_gpio_leds, | ||
145 | .num_leds = ARRAY_SIZE(rsk7203_gpio_leds), | ||
146 | }; | ||
147 | |||
148 | static struct platform_device led_device = { | ||
149 | .name = "leds-gpio", | ||
150 | .id = -1, | ||
151 | .dev = { | ||
152 | .platform_data = &rsk7203_gpio_leds_info, | ||
153 | }, | ||
154 | }; | ||
119 | 155 | ||
120 | static struct platform_device *rsk7203_devices[] __initdata = { | 156 | static struct platform_device *rsk7203_devices[] __initdata = { |
121 | &smc911x_device, | 157 | &smc911x_device, |
122 | &flash_device, | 158 | &flash_device, |
159 | &led_device, | ||
123 | }; | 160 | }; |
124 | 161 | ||
125 | static int __init rsk7203_devices_setup(void) | 162 | static int __init rsk7203_devices_setup(void) |
@@ -128,11 +165,6 @@ static int __init rsk7203_devices_setup(void) | |||
128 | gpio_request(GPIO_FN_TXD0, NULL); | 165 | gpio_request(GPIO_FN_TXD0, NULL); |
129 | gpio_request(GPIO_FN_RXD0, NULL); | 166 | gpio_request(GPIO_FN_RXD0, NULL); |
130 | 167 | ||
131 | /* Lit LED0 */ | ||
132 | gpio_request(GPIO_PE10, NULL); | ||
133 | gpio_direction_output(GPIO_PE10, 0); | ||
134 | gpio_export(GPIO_PE10, 0); | ||
135 | |||
136 | set_mtd_partitions(); | 168 | set_mtd_partitions(); |
137 | return platform_add_devices(rsk7203_devices, | 169 | return platform_add_devices(rsk7203_devices, |
138 | ARRAY_SIZE(rsk7203_devices)); | 170 | ARRAY_SIZE(rsk7203_devices)); |
diff --git a/arch/sh/boards/mach-highlander/Kconfig b/arch/sh/boards/mach-highlander/Kconfig index fc8f28e04ba3..08057f62687b 100644 --- a/arch/sh/boards/mach-highlander/Kconfig +++ b/arch/sh/boards/mach-highlander/Kconfig | |||
@@ -18,6 +18,7 @@ config SH_R7780MP | |||
18 | config SH_R7785RP | 18 | config SH_R7785RP |
19 | bool "R7785RP board support" | 19 | bool "R7785RP board support" |
20 | depends on CPU_SUBTYPE_SH7785 | 20 | depends on CPU_SUBTYPE_SH7785 |
21 | select GENERIC_GPIO | ||
21 | 22 | ||
22 | endchoice | 23 | endchoice |
23 | 24 | ||
diff --git a/arch/sh/boards/mach-highlander/Makefile b/arch/sh/boards/mach-highlander/Makefile index 20a10080b11f..d93aaf880134 100644 --- a/arch/sh/boards/mach-highlander/Makefile +++ b/arch/sh/boards/mach-highlander/Makefile | |||
@@ -1,10 +1,10 @@ | |||
1 | # | 1 | # |
2 | # Makefile for the R7780RP-1 specific parts of the kernel | 2 | # Makefile for the Highlander specific parts of the kernel |
3 | # | 3 | # |
4 | irqinit-$(CONFIG_SH_R7780MP) := irq-r7780mp.o | 4 | obj-y := setup.o |
5 | irqinit-$(CONFIG_SH_R7785RP) := irq-r7785rp.o | 5 | obj-$(CONFIG_SH_R7780RP) += irq-r7780rp.o |
6 | irqinit-$(CONFIG_SH_R7780RP) := irq-r7780rp.o | 6 | obj-$(CONFIG_SH_R7780MP) += irq-r7780mp.o |
7 | obj-y := setup.o $(irqinit-y) | 7 | obj-$(CONFIG_SH_R7785RP) += irq-r7785rp.o pinmux-r7785rp.o |
8 | 8 | ||
9 | ifneq ($(CONFIG_SH_R7785RP),y) | 9 | ifneq ($(CONFIG_SH_R7785RP),y) |
10 | obj-$(CONFIG_PUSH_SWITCH) += psw.o | 10 | obj-$(CONFIG_PUSH_SWITCH) += psw.o |
diff --git a/arch/sh/boards/mach-highlander/pinmux-r7785rp.c b/arch/sh/boards/mach-highlander/pinmux-r7785rp.c new file mode 100644 index 000000000000..c77a2bea8f2a --- /dev/null +++ b/arch/sh/boards/mach-highlander/pinmux-r7785rp.c | |||
@@ -0,0 +1,20 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2008 Paul Mundt | ||
3 | * | ||
4 | * This file is subject to the terms and conditions of the GNU General Public | ||
5 | * License. See the file "COPYING" in the main directory of this archive | ||
6 | * for more details. | ||
7 | */ | ||
8 | #include <linux/init.h> | ||
9 | #include <linux/gpio.h> | ||
10 | #include <cpu/sh7785.h> | ||
11 | |||
12 | void __init highlander_plat_pinmux_setup(void) | ||
13 | { | ||
14 | /* SCIF0 */ | ||
15 | gpio_request(GPIO_FN_SCIF0_CTS, NULL); | ||
16 | gpio_request(GPIO_FN_SCIF0_RTS, NULL); | ||
17 | gpio_request(GPIO_FN_SCIF0_SCK, NULL); | ||
18 | gpio_request(GPIO_FN_SCIF0_RXD, NULL); | ||
19 | gpio_request(GPIO_FN_SCIF0_TXD, NULL); | ||
20 | } | ||
diff --git a/arch/sh/boards/mach-highlander/setup.c b/arch/sh/boards/mach-highlander/setup.c index c5a40f7906d7..806438b42cac 100644 --- a/arch/sh/boards/mach-highlander/setup.c +++ b/arch/sh/boards/mach-highlander/setup.c | |||
@@ -294,6 +294,8 @@ static void __init highlander_setup(char **cmdline_p) | |||
294 | (ver >> 12) & 0xf, (ver >> 8) & 0xf, | 294 | (ver >> 12) & 0xf, (ver >> 8) & 0xf, |
295 | (ver >> 4) & 0xf, ver & 0xf); | 295 | (ver >> 4) & 0xf, ver & 0xf); |
296 | 296 | ||
297 | highlander_plat_pinmux_setup(); | ||
298 | |||
297 | /* | 299 | /* |
298 | * Enable the important clocks right away.. | 300 | * Enable the important clocks right away.. |
299 | */ | 301 | */ |
diff --git a/arch/sh/boards/mach-migor/setup.c b/arch/sh/boards/mach-migor/setup.c index 769d63043424..975281980299 100644 --- a/arch/sh/boards/mach-migor/setup.c +++ b/arch/sh/boards/mach-migor/setup.c | |||
@@ -288,8 +288,11 @@ static struct clk *camera_clk; | |||
288 | 288 | ||
289 | static void camera_power_on(void) | 289 | static void camera_power_on(void) |
290 | { | 290 | { |
291 | /* Use 10 MHz VIO_CKO instead of 24 MHz to work | ||
292 | * around signal quality issues on Panel Board V2.1. | ||
293 | */ | ||
291 | camera_clk = clk_get(NULL, "video_clk"); | 294 | camera_clk = clk_get(NULL, "video_clk"); |
292 | clk_set_rate(camera_clk, 24000000); | 295 | clk_set_rate(camera_clk, 10000000); |
293 | clk_enable(camera_clk); /* start VIO_CKO */ | 296 | clk_enable(camera_clk); /* start VIO_CKO */ |
294 | 297 | ||
295 | /* use VIO_RST to take camera out of reset */ | 298 | /* use VIO_RST to take camera out of reset */ |
@@ -307,10 +310,18 @@ static void camera_power_off(void) | |||
307 | gpio_set_value(GPIO_PTT3, 0); | 310 | gpio_set_value(GPIO_PTT3, 0); |
308 | } | 311 | } |
309 | 312 | ||
313 | static void camera_power(int mode) | ||
314 | { | ||
315 | if (mode) | ||
316 | camera_power_on(); | ||
317 | else | ||
318 | camera_power_off(); | ||
319 | } | ||
320 | |||
310 | #ifdef CONFIG_I2C | 321 | #ifdef CONFIG_I2C |
311 | static unsigned char camera_ov772x_magic[] = | 322 | static unsigned char camera_ov772x_magic[] = |
312 | { | 323 | { |
313 | 0x09, 0x01, 0x0c, 0x10, 0x0d, 0x41, 0x0e, 0x01, | 324 | 0x09, 0x01, 0x0c, 0x20, 0x0d, 0x41, 0x0e, 0x01, |
314 | 0x12, 0x00, 0x13, 0x8F, 0x14, 0x4A, 0x15, 0x00, | 325 | 0x12, 0x00, 0x13, 0x8F, 0x14, 0x4A, 0x15, 0x00, |
315 | 0x16, 0x00, 0x17, 0x23, 0x18, 0xa0, 0x19, 0x07, | 326 | 0x16, 0x00, 0x17, 0x23, 0x18, 0xa0, 0x19, 0x07, |
316 | 0x1a, 0xf0, 0x1b, 0x40, 0x1f, 0x00, 0x20, 0x10, | 327 | 0x1a, 0xf0, 0x1b, 0x40, 0x1f, 0x00, 0x20, 0x10, |
@@ -386,6 +397,7 @@ static struct soc_camera_platform_info ov772x_info = { | |||
386 | }, | 397 | }, |
387 | .bus_param = SOCAM_PCLK_SAMPLE_RISING | SOCAM_HSYNC_ACTIVE_HIGH | | 398 | .bus_param = SOCAM_PCLK_SAMPLE_RISING | SOCAM_HSYNC_ACTIVE_HIGH | |
388 | SOCAM_VSYNC_ACTIVE_HIGH | SOCAM_MASTER | SOCAM_DATAWIDTH_8, | 399 | SOCAM_VSYNC_ACTIVE_HIGH | SOCAM_MASTER | SOCAM_DATAWIDTH_8, |
400 | .power = camera_power, | ||
389 | .set_capture = ov772x_set_capture, | 401 | .set_capture = ov772x_set_capture, |
390 | }; | 402 | }; |
391 | 403 | ||
@@ -400,8 +412,6 @@ static struct platform_device migor_camera_device = { | |||
400 | static struct sh_mobile_ceu_info sh_mobile_ceu_info = { | 412 | static struct sh_mobile_ceu_info sh_mobile_ceu_info = { |
401 | .flags = SOCAM_MASTER | SOCAM_DATAWIDTH_8 | SOCAM_PCLK_SAMPLE_RISING \ | 413 | .flags = SOCAM_MASTER | SOCAM_DATAWIDTH_8 | SOCAM_PCLK_SAMPLE_RISING \ |
402 | | SOCAM_HSYNC_ACTIVE_HIGH | SOCAM_VSYNC_ACTIVE_HIGH, | 414 | | SOCAM_HSYNC_ACTIVE_HIGH | SOCAM_VSYNC_ACTIVE_HIGH, |
403 | .enable_camera = camera_power_on, | ||
404 | .disable_camera = camera_power_off, | ||
405 | }; | 415 | }; |
406 | 416 | ||
407 | static struct resource migor_ceu_resources[] = { | 417 | static struct resource migor_ceu_resources[] = { |
diff --git a/arch/sh/configs/ap325rxa_defconfig b/arch/sh/configs/ap325rxa_defconfig index 851c870adf3b..874dd9726e52 100644 --- a/arch/sh/configs/ap325rxa_defconfig +++ b/arch/sh/configs/ap325rxa_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.27-rc4 | 3 | # Linux kernel version: 2.6.27 |
4 | # Tue Aug 26 14:21:17 2008 | 4 | # Tue Oct 21 18:20:06 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -13,11 +13,12 @@ CONFIG_GENERIC_HWEIGHT=y | |||
13 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
15 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
16 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | CONFIG_GENERIC_GPIO=y |
17 | CONFIG_GENERIC_TIME=y | 17 | CONFIG_GENERIC_TIME=y |
18 | CONFIG_GENERIC_CLOCKEVENTS=y | 18 | CONFIG_GENERIC_CLOCKEVENTS=y |
19 | CONFIG_STACKTRACE_SUPPORT=y | 19 | CONFIG_STACKTRACE_SUPPORT=y |
20 | CONFIG_LOCKDEP_SUPPORT=y | 20 | CONFIG_LOCKDEP_SUPPORT=y |
21 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
21 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 22 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
22 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 23 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
23 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 24 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
@@ -72,22 +73,20 @@ CONFIG_SIGNALFD=y | |||
72 | CONFIG_TIMERFD=y | 73 | CONFIG_TIMERFD=y |
73 | CONFIG_EVENTFD=y | 74 | CONFIG_EVENTFD=y |
74 | CONFIG_SHMEM=y | 75 | CONFIG_SHMEM=y |
76 | CONFIG_AIO=y | ||
75 | CONFIG_VM_EVENT_COUNTERS=y | 77 | CONFIG_VM_EVENT_COUNTERS=y |
78 | CONFIG_PCI_QUIRKS=y | ||
76 | CONFIG_SLAB=y | 79 | CONFIG_SLAB=y |
77 | # CONFIG_SLUB is not set | 80 | # CONFIG_SLUB is not set |
78 | # CONFIG_SLOB is not set | 81 | # CONFIG_SLOB is not set |
79 | # CONFIG_PROFILING is not set | 82 | # CONFIG_PROFILING is not set |
80 | # CONFIG_MARKERS is not set | 83 | # CONFIG_MARKERS is not set |
81 | CONFIG_HAVE_OPROFILE=y | 84 | CONFIG_HAVE_OPROFILE=y |
82 | # CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set | 85 | CONFIG_HAVE_IOREMAP_PROT=y |
83 | # CONFIG_HAVE_IOREMAP_PROT is not set | 86 | CONFIG_HAVE_KPROBES=y |
84 | # CONFIG_HAVE_KPROBES is not set | 87 | CONFIG_HAVE_KRETPROBES=y |
85 | # CONFIG_HAVE_KRETPROBES is not set | 88 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
86 | # CONFIG_HAVE_ARCH_TRACEHOOK is not set | ||
87 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
88 | # CONFIG_USE_GENERIC_SMP_HELPERS is not set | ||
89 | CONFIG_HAVE_CLK=y | 89 | CONFIG_HAVE_CLK=y |
90 | CONFIG_PROC_PAGE_MONITOR=y | ||
91 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | 90 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
92 | CONFIG_SLABINFO=y | 91 | CONFIG_SLABINFO=y |
93 | CONFIG_RT_MUTEXES=y | 92 | CONFIG_RT_MUTEXES=y |
@@ -120,6 +119,7 @@ CONFIG_DEFAULT_CFQ=y | |||
120 | # CONFIG_DEFAULT_NOOP is not set | 119 | # CONFIG_DEFAULT_NOOP is not set |
121 | CONFIG_DEFAULT_IOSCHED="cfq" | 120 | CONFIG_DEFAULT_IOSCHED="cfq" |
122 | CONFIG_CLASSIC_RCU=y | 121 | CONFIG_CLASSIC_RCU=y |
122 | # CONFIG_FREEZER is not set | ||
123 | 123 | ||
124 | # | 124 | # |
125 | # System type | 125 | # System type |
@@ -190,12 +190,13 @@ CONFIG_FLATMEM_MANUAL=y | |||
190 | CONFIG_FLATMEM=y | 190 | CONFIG_FLATMEM=y |
191 | CONFIG_FLAT_NODE_MEM_MAP=y | 191 | CONFIG_FLAT_NODE_MEM_MAP=y |
192 | CONFIG_SPARSEMEM_STATIC=y | 192 | CONFIG_SPARSEMEM_STATIC=y |
193 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
194 | CONFIG_PAGEFLAGS_EXTENDED=y | 193 | CONFIG_PAGEFLAGS_EXTENDED=y |
195 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 194 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
196 | # CONFIG_RESOURCES_64BIT is not set | 195 | # CONFIG_RESOURCES_64BIT is not set |
196 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
197 | CONFIG_ZONE_DMA_FLAG=0 | 197 | CONFIG_ZONE_DMA_FLAG=0 |
198 | CONFIG_NR_QUICK=2 | 198 | CONFIG_NR_QUICK=2 |
199 | CONFIG_UNEVICTABLE_LRU=y | ||
199 | 200 | ||
200 | # | 201 | # |
201 | # Cache configuration | 202 | # Cache configuration |
@@ -289,6 +290,8 @@ CONFIG_CMDLINE="console=tty1 console=ttySC5,38400 root=/dev/nfs ip=dhcp" | |||
289 | # Executable file formats | 290 | # Executable file formats |
290 | # | 291 | # |
291 | CONFIG_BINFMT_ELF=y | 292 | CONFIG_BINFMT_ELF=y |
293 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
294 | # CONFIG_HAVE_AOUT is not set | ||
292 | # CONFIG_BINFMT_MISC is not set | 295 | # CONFIG_BINFMT_MISC is not set |
293 | CONFIG_NET=y | 296 | CONFIG_NET=y |
294 | 297 | ||
@@ -339,6 +342,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
339 | # CONFIG_TIPC is not set | 342 | # CONFIG_TIPC is not set |
340 | # CONFIG_ATM is not set | 343 | # CONFIG_ATM is not set |
341 | # CONFIG_BRIDGE is not set | 344 | # CONFIG_BRIDGE is not set |
345 | # CONFIG_NET_DSA is not set | ||
342 | # CONFIG_VLAN_8021Q is not set | 346 | # CONFIG_VLAN_8021Q is not set |
343 | # CONFIG_DECNET is not set | 347 | # CONFIG_DECNET is not set |
344 | # CONFIG_LLC2 is not set | 348 | # CONFIG_LLC2 is not set |
@@ -359,11 +363,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
359 | # CONFIG_IRDA is not set | 363 | # CONFIG_IRDA is not set |
360 | # CONFIG_BT is not set | 364 | # CONFIG_BT is not set |
361 | # CONFIG_AF_RXRPC is not set | 365 | # CONFIG_AF_RXRPC is not set |
362 | 366 | # CONFIG_PHONET is not set | |
363 | # | 367 | CONFIG_WIRELESS=y |
364 | # Wireless | ||
365 | # | ||
366 | # CONFIG_CFG80211 is not set | 368 | # CONFIG_CFG80211 is not set |
369 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
367 | # CONFIG_WIRELESS_EXT is not set | 370 | # CONFIG_WIRELESS_EXT is not set |
368 | # CONFIG_MAC80211 is not set | 371 | # CONFIG_MAC80211 is not set |
369 | # CONFIG_IEEE80211 is not set | 372 | # CONFIG_IEEE80211 is not set |
@@ -455,7 +458,15 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=0 | |||
455 | # CONFIG_MTD_DOC2000 is not set | 458 | # CONFIG_MTD_DOC2000 is not set |
456 | # CONFIG_MTD_DOC2001 is not set | 459 | # CONFIG_MTD_DOC2001 is not set |
457 | # CONFIG_MTD_DOC2001PLUS is not set | 460 | # CONFIG_MTD_DOC2001PLUS is not set |
458 | # CONFIG_MTD_NAND is not set | 461 | CONFIG_MTD_NAND=y |
462 | # CONFIG_MTD_NAND_VERIFY_WRITE is not set | ||
463 | # CONFIG_MTD_NAND_ECC_SMC is not set | ||
464 | # CONFIG_MTD_NAND_MUSEUM_IDS is not set | ||
465 | CONFIG_MTD_NAND_IDS=y | ||
466 | # CONFIG_MTD_NAND_DISKONCHIP is not set | ||
467 | # CONFIG_MTD_NAND_NANDSIM is not set | ||
468 | # CONFIG_MTD_NAND_PLATFORM is not set | ||
469 | CONFIG_MTD_NAND_SH_FLCTL=y | ||
459 | # CONFIG_MTD_ONENAND is not set | 470 | # CONFIG_MTD_ONENAND is not set |
460 | 471 | ||
461 | # | 472 | # |
@@ -541,6 +552,9 @@ CONFIG_SMC911X=y | |||
541 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 552 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
542 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 553 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
543 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 554 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
555 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
556 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
557 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
544 | # CONFIG_B44 is not set | 558 | # CONFIG_B44 is not set |
545 | # CONFIG_NETDEV_1000 is not set | 559 | # CONFIG_NETDEV_1000 is not set |
546 | # CONFIG_NETDEV_10000 is not set | 560 | # CONFIG_NETDEV_10000 is not set |
@@ -645,6 +659,7 @@ CONFIG_SSB_POSSIBLE=y | |||
645 | # CONFIG_MFD_SM501 is not set | 659 | # CONFIG_MFD_SM501 is not set |
646 | # CONFIG_HTC_PASIC3 is not set | 660 | # CONFIG_HTC_PASIC3 is not set |
647 | # CONFIG_MFD_TMIO is not set | 661 | # CONFIG_MFD_TMIO is not set |
662 | # CONFIG_MFD_WM8400 is not set | ||
648 | 663 | ||
649 | # | 664 | # |
650 | # Multimedia devices | 665 | # Multimedia devices |
@@ -692,6 +707,8 @@ CONFIG_UIO=y | |||
692 | # CONFIG_UIO_PDRV is not set | 707 | # CONFIG_UIO_PDRV is not set |
693 | CONFIG_UIO_PDRV_GENIRQ=y | 708 | CONFIG_UIO_PDRV_GENIRQ=y |
694 | # CONFIG_UIO_SMX is not set | 709 | # CONFIG_UIO_SMX is not set |
710 | # CONFIG_UIO_SERCOS3 is not set | ||
711 | # CONFIG_STAGING is not set | ||
695 | 712 | ||
696 | # | 713 | # |
697 | # File systems | 714 | # File systems |
@@ -705,12 +722,13 @@ CONFIG_EXT3_FS=y | |||
705 | CONFIG_EXT3_FS_XATTR=y | 722 | CONFIG_EXT3_FS_XATTR=y |
706 | CONFIG_EXT3_FS_POSIX_ACL=y | 723 | CONFIG_EXT3_FS_POSIX_ACL=y |
707 | CONFIG_EXT3_FS_SECURITY=y | 724 | CONFIG_EXT3_FS_SECURITY=y |
708 | # CONFIG_EXT4DEV_FS is not set | 725 | # CONFIG_EXT4_FS is not set |
709 | CONFIG_JBD=y | 726 | CONFIG_JBD=y |
710 | CONFIG_FS_MBCACHE=y | 727 | CONFIG_FS_MBCACHE=y |
711 | # CONFIG_REISERFS_FS is not set | 728 | # CONFIG_REISERFS_FS is not set |
712 | # CONFIG_JFS_FS is not set | 729 | # CONFIG_JFS_FS is not set |
713 | CONFIG_FS_POSIX_ACL=y | 730 | CONFIG_FS_POSIX_ACL=y |
731 | CONFIG_FILE_LOCKING=y | ||
714 | # CONFIG_XFS_FS is not set | 732 | # CONFIG_XFS_FS is not set |
715 | # CONFIG_OCFS2_FS is not set | 733 | # CONFIG_OCFS2_FS is not set |
716 | CONFIG_DNOTIFY=y | 734 | CONFIG_DNOTIFY=y |
@@ -743,6 +761,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
743 | CONFIG_PROC_FS=y | 761 | CONFIG_PROC_FS=y |
744 | CONFIG_PROC_KCORE=y | 762 | CONFIG_PROC_KCORE=y |
745 | CONFIG_PROC_SYSCTL=y | 763 | CONFIG_PROC_SYSCTL=y |
764 | CONFIG_PROC_PAGE_MONITOR=y | ||
746 | CONFIG_SYSFS=y | 765 | CONFIG_SYSFS=y |
747 | CONFIG_TMPFS=y | 766 | CONFIG_TMPFS=y |
748 | # CONFIG_TMPFS_POSIX_ACL is not set | 767 | # CONFIG_TMPFS_POSIX_ACL is not set |
@@ -785,6 +804,7 @@ CONFIG_LOCKD_V4=y | |||
785 | CONFIG_EXPORTFS=y | 804 | CONFIG_EXPORTFS=y |
786 | CONFIG_NFS_COMMON=y | 805 | CONFIG_NFS_COMMON=y |
787 | CONFIG_SUNRPC=y | 806 | CONFIG_SUNRPC=y |
807 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
788 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 808 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
789 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 809 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
790 | # CONFIG_SMB_FS is not set | 810 | # CONFIG_SMB_FS is not set |
@@ -855,7 +875,12 @@ CONFIG_FRAME_WARN=1024 | |||
855 | # CONFIG_DEBUG_KERNEL is not set | 875 | # CONFIG_DEBUG_KERNEL is not set |
856 | # CONFIG_DEBUG_BUGVERBOSE is not set | 876 | # CONFIG_DEBUG_BUGVERBOSE is not set |
857 | # CONFIG_DEBUG_MEMORY_INIT is not set | 877 | # CONFIG_DEBUG_MEMORY_INIT is not set |
878 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
879 | # CONFIG_LATENCYTOP is not set | ||
858 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 880 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
881 | CONFIG_NOP_TRACER=y | ||
882 | CONFIG_HAVE_FTRACE=y | ||
883 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
859 | # CONFIG_SAMPLES is not set | 884 | # CONFIG_SAMPLES is not set |
860 | # CONFIG_SH_STANDARD_BIOS is not set | 885 | # CONFIG_SH_STANDARD_BIOS is not set |
861 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 886 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
@@ -866,14 +891,19 @@ CONFIG_SYSCTL_SYSCALL_CHECK=y | |||
866 | # | 891 | # |
867 | # CONFIG_KEYS is not set | 892 | # CONFIG_KEYS is not set |
868 | # CONFIG_SECURITY is not set | 893 | # CONFIG_SECURITY is not set |
894 | # CONFIG_SECURITYFS is not set | ||
869 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 895 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
870 | CONFIG_CRYPTO=y | 896 | CONFIG_CRYPTO=y |
871 | 897 | ||
872 | # | 898 | # |
873 | # Crypto core or helper | 899 | # Crypto core or helper |
874 | # | 900 | # |
901 | # CONFIG_CRYPTO_FIPS is not set | ||
875 | CONFIG_CRYPTO_ALGAPI=y | 902 | CONFIG_CRYPTO_ALGAPI=y |
903 | CONFIG_CRYPTO_AEAD=y | ||
876 | CONFIG_CRYPTO_BLKCIPHER=y | 904 | CONFIG_CRYPTO_BLKCIPHER=y |
905 | CONFIG_CRYPTO_HASH=y | ||
906 | CONFIG_CRYPTO_RNG=y | ||
877 | CONFIG_CRYPTO_MANAGER=y | 907 | CONFIG_CRYPTO_MANAGER=y |
878 | # CONFIG_CRYPTO_GF128MUL is not set | 908 | # CONFIG_CRYPTO_GF128MUL is not set |
879 | # CONFIG_CRYPTO_NULL is not set | 909 | # CONFIG_CRYPTO_NULL is not set |
@@ -946,13 +976,17 @@ CONFIG_CRYPTO_CBC=y | |||
946 | # | 976 | # |
947 | # CONFIG_CRYPTO_DEFLATE is not set | 977 | # CONFIG_CRYPTO_DEFLATE is not set |
948 | # CONFIG_CRYPTO_LZO is not set | 978 | # CONFIG_CRYPTO_LZO is not set |
979 | |||
980 | # | ||
981 | # Random Number Generation | ||
982 | # | ||
983 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
949 | CONFIG_CRYPTO_HW=y | 984 | CONFIG_CRYPTO_HW=y |
950 | 985 | ||
951 | # | 986 | # |
952 | # Library routines | 987 | # Library routines |
953 | # | 988 | # |
954 | CONFIG_BITREVERSE=y | 989 | CONFIG_BITREVERSE=y |
955 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
956 | # CONFIG_CRC_CCITT is not set | 990 | # CONFIG_CRC_CCITT is not set |
957 | # CONFIG_CRC16 is not set | 991 | # CONFIG_CRC16 is not set |
958 | CONFIG_CRC_T10DIF=y | 992 | CONFIG_CRC_T10DIF=y |
diff --git a/arch/sh/configs/cayman_defconfig b/arch/sh/configs/cayman_defconfig index a05b278d72f5..e21c0e8e22d9 100644 --- a/arch/sh/configs/cayman_defconfig +++ b/arch/sh/configs/cayman_defconfig | |||
@@ -1,22 +1,25 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.24-rc3 | 3 | # Linux kernel version: 2.6.27 |
4 | # Fri Nov 23 14:15:55 2007 | 4 | # Wed Oct 22 18:04:52 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | # CONFIG_SUPERH32 is not set | 7 | # CONFIG_SUPERH32 is not set |
8 | CONFIG_SUPERH64=y | 8 | CONFIG_SUPERH64=y |
9 | CONFIG_ARCH_DEFCONFIG="arch/sh/configs/cayman_defconfig" | ||
9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 10 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
10 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
11 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
12 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
13 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
14 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
15 | # CONFIG_GENERIC_TIME is not set | 17 | # CONFIG_GENERIC_TIME is not set |
16 | # CONFIG_GENERIC_CLOCKEVENTS is not set | 18 | # CONFIG_GENERIC_CLOCKEVENTS is not set |
17 | CONFIG_SYS_SUPPORTS_PCI=y | 19 | CONFIG_SYS_SUPPORTS_PCI=y |
18 | CONFIG_STACKTRACE_SUPPORT=y | 20 | CONFIG_STACKTRACE_SUPPORT=y |
19 | CONFIG_LOCKDEP_SUPPORT=y | 21 | CONFIG_LOCKDEP_SUPPORT=y |
22 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
20 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 23 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
21 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 24 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
22 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 25 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
@@ -36,17 +39,15 @@ CONFIG_SWAP=y | |||
36 | CONFIG_POSIX_MQUEUE=y | 39 | CONFIG_POSIX_MQUEUE=y |
37 | # CONFIG_BSD_PROCESS_ACCT is not set | 40 | # CONFIG_BSD_PROCESS_ACCT is not set |
38 | # CONFIG_TASKSTATS is not set | 41 | # CONFIG_TASKSTATS is not set |
39 | # CONFIG_USER_NS is not set | ||
40 | # CONFIG_PID_NS is not set | ||
41 | # CONFIG_AUDIT is not set | 42 | # CONFIG_AUDIT is not set |
42 | # CONFIG_IKCONFIG is not set | 43 | # CONFIG_IKCONFIG is not set |
43 | CONFIG_LOG_BUF_SHIFT=14 | 44 | CONFIG_LOG_BUF_SHIFT=14 |
44 | # CONFIG_CGROUPS is not set | 45 | # CONFIG_CGROUPS is not set |
45 | CONFIG_FAIR_GROUP_SCHED=y | 46 | # CONFIG_GROUP_SCHED is not set |
46 | CONFIG_FAIR_USER_SCHED=y | ||
47 | # CONFIG_FAIR_CGROUP_SCHED is not set | ||
48 | CONFIG_SYSFS_DEPRECATED=y | 47 | CONFIG_SYSFS_DEPRECATED=y |
48 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
49 | # CONFIG_RELAY is not set | 49 | # CONFIG_RELAY is not set |
50 | # CONFIG_NAMESPACES is not set | ||
50 | # CONFIG_BLK_DEV_INITRD is not set | 51 | # CONFIG_BLK_DEV_INITRD is not set |
51 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 52 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
52 | CONFIG_SYSCTL=y | 53 | CONFIG_SYSCTL=y |
@@ -60,21 +61,33 @@ CONFIG_HOTPLUG=y | |||
60 | CONFIG_PRINTK=y | 61 | CONFIG_PRINTK=y |
61 | CONFIG_BUG=y | 62 | CONFIG_BUG=y |
62 | CONFIG_ELF_CORE=y | 63 | CONFIG_ELF_CORE=y |
64 | CONFIG_COMPAT_BRK=y | ||
63 | CONFIG_BASE_FULL=y | 65 | CONFIG_BASE_FULL=y |
64 | CONFIG_FUTEX=y | 66 | CONFIG_FUTEX=y |
65 | CONFIG_ANON_INODES=y | 67 | CONFIG_ANON_INODES=y |
66 | CONFIG_EPOLL=y | 68 | CONFIG_EPOLL=y |
67 | CONFIG_SIGNALFD=y | 69 | CONFIG_SIGNALFD=y |
70 | CONFIG_TIMERFD=y | ||
68 | CONFIG_EVENTFD=y | 71 | CONFIG_EVENTFD=y |
69 | CONFIG_SHMEM=y | 72 | CONFIG_SHMEM=y |
73 | CONFIG_AIO=y | ||
70 | CONFIG_VM_EVENT_COUNTERS=y | 74 | CONFIG_VM_EVENT_COUNTERS=y |
75 | CONFIG_PCI_QUIRKS=y | ||
71 | CONFIG_SLAB=y | 76 | CONFIG_SLAB=y |
72 | # CONFIG_SLUB is not set | 77 | # CONFIG_SLUB is not set |
73 | # CONFIG_SLOB is not set | 78 | # CONFIG_SLOB is not set |
79 | # CONFIG_PROFILING is not set | ||
80 | # CONFIG_MARKERS is not set | ||
81 | CONFIG_HAVE_OPROFILE=y | ||
82 | CONFIG_HAVE_IOREMAP_PROT=y | ||
83 | CONFIG_HAVE_CLK=y | ||
84 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
85 | CONFIG_SLABINFO=y | ||
74 | CONFIG_RT_MUTEXES=y | 86 | CONFIG_RT_MUTEXES=y |
75 | # CONFIG_TINY_SHMEM is not set | 87 | # CONFIG_TINY_SHMEM is not set |
76 | CONFIG_BASE_SMALL=0 | 88 | CONFIG_BASE_SMALL=0 |
77 | CONFIG_MODULES=y | 89 | CONFIG_MODULES=y |
90 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
78 | CONFIG_MODULE_UNLOAD=y | 91 | CONFIG_MODULE_UNLOAD=y |
79 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 92 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
80 | # CONFIG_MODVERSIONS is not set | 93 | # CONFIG_MODVERSIONS is not set |
@@ -85,6 +98,7 @@ CONFIG_BLOCK=y | |||
85 | # CONFIG_BLK_DEV_IO_TRACE is not set | 98 | # CONFIG_BLK_DEV_IO_TRACE is not set |
86 | # CONFIG_LSF is not set | 99 | # CONFIG_LSF is not set |
87 | # CONFIG_BLK_DEV_BSG is not set | 100 | # CONFIG_BLK_DEV_BSG is not set |
101 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
88 | 102 | ||
89 | # | 103 | # |
90 | # IO Schedulers | 104 | # IO Schedulers |
@@ -98,13 +112,18 @@ CONFIG_IOSCHED_CFQ=y | |||
98 | CONFIG_DEFAULT_CFQ=y | 112 | CONFIG_DEFAULT_CFQ=y |
99 | # CONFIG_DEFAULT_NOOP is not set | 113 | # CONFIG_DEFAULT_NOOP is not set |
100 | CONFIG_DEFAULT_IOSCHED="cfq" | 114 | CONFIG_DEFAULT_IOSCHED="cfq" |
115 | CONFIG_CLASSIC_RCU=y | ||
116 | # CONFIG_FREEZER is not set | ||
101 | 117 | ||
102 | # | 118 | # |
103 | # System type | 119 | # System type |
104 | # | 120 | # |
105 | CONFIG_CPU_SH5=y | 121 | CONFIG_CPU_SH5=y |
106 | # CONFIG_CPU_SUBTYPE_SH7619 is not set | 122 | # CONFIG_CPU_SUBTYPE_SH7619 is not set |
123 | # CONFIG_CPU_SUBTYPE_SH7203 is not set | ||
107 | # CONFIG_CPU_SUBTYPE_SH7206 is not set | 124 | # CONFIG_CPU_SUBTYPE_SH7206 is not set |
125 | # CONFIG_CPU_SUBTYPE_SH7263 is not set | ||
126 | # CONFIG_CPU_SUBTYPE_MXG is not set | ||
108 | # CONFIG_CPU_SUBTYPE_SH7705 is not set | 127 | # CONFIG_CPU_SUBTYPE_SH7705 is not set |
109 | # CONFIG_CPU_SUBTYPE_SH7706 is not set | 128 | # CONFIG_CPU_SUBTYPE_SH7706 is not set |
110 | # CONFIG_CPU_SUBTYPE_SH7707 is not set | 129 | # CONFIG_CPU_SUBTYPE_SH7707 is not set |
@@ -113,6 +132,7 @@ CONFIG_CPU_SH5=y | |||
113 | # CONFIG_CPU_SUBTYPE_SH7710 is not set | 132 | # CONFIG_CPU_SUBTYPE_SH7710 is not set |
114 | # CONFIG_CPU_SUBTYPE_SH7712 is not set | 133 | # CONFIG_CPU_SUBTYPE_SH7712 is not set |
115 | # CONFIG_CPU_SUBTYPE_SH7720 is not set | 134 | # CONFIG_CPU_SUBTYPE_SH7720 is not set |
135 | # CONFIG_CPU_SUBTYPE_SH7721 is not set | ||
116 | # CONFIG_CPU_SUBTYPE_SH7750 is not set | 136 | # CONFIG_CPU_SUBTYPE_SH7750 is not set |
117 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | 137 | # CONFIG_CPU_SUBTYPE_SH7091 is not set |
118 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | 138 | # CONFIG_CPU_SUBTYPE_SH7750R is not set |
@@ -121,12 +141,15 @@ CONFIG_CPU_SH5=y | |||
121 | # CONFIG_CPU_SUBTYPE_SH7751R is not set | 141 | # CONFIG_CPU_SUBTYPE_SH7751R is not set |
122 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | 142 | # CONFIG_CPU_SUBTYPE_SH7760 is not set |
123 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | 143 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set |
144 | # CONFIG_CPU_SUBTYPE_SH7723 is not set | ||
145 | # CONFIG_CPU_SUBTYPE_SH7763 is not set | ||
124 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | 146 | # CONFIG_CPU_SUBTYPE_SH7770 is not set |
125 | # CONFIG_CPU_SUBTYPE_SH7780 is not set | 147 | # CONFIG_CPU_SUBTYPE_SH7780 is not set |
126 | # CONFIG_CPU_SUBTYPE_SH7785 is not set | 148 | # CONFIG_CPU_SUBTYPE_SH7785 is not set |
127 | # CONFIG_CPU_SUBTYPE_SHX3 is not set | 149 | # CONFIG_CPU_SUBTYPE_SHX3 is not set |
128 | # CONFIG_CPU_SUBTYPE_SH7343 is not set | 150 | # CONFIG_CPU_SUBTYPE_SH7343 is not set |
129 | # CONFIG_CPU_SUBTYPE_SH7722 is not set | 151 | # CONFIG_CPU_SUBTYPE_SH7722 is not set |
152 | # CONFIG_CPU_SUBTYPE_SH7366 is not set | ||
130 | CONFIG_CPU_SUBTYPE_SH5_101=y | 153 | CONFIG_CPU_SUBTYPE_SH5_101=y |
131 | # CONFIG_CPU_SUBTYPE_SH5_103 is not set | 154 | # CONFIG_CPU_SUBTYPE_SH5_103 is not set |
132 | 155 | ||
@@ -147,7 +170,9 @@ CONFIG_ARCH_POPULATES_NODE_MAP=y | |||
147 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | 170 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y |
148 | CONFIG_PAGE_SIZE_4KB=y | 171 | CONFIG_PAGE_SIZE_4KB=y |
149 | # CONFIG_PAGE_SIZE_8KB is not set | 172 | # CONFIG_PAGE_SIZE_8KB is not set |
173 | # CONFIG_PAGE_SIZE_16KB is not set | ||
150 | # CONFIG_PAGE_SIZE_64KB is not set | 174 | # CONFIG_PAGE_SIZE_64KB is not set |
175 | CONFIG_ENTRY_OFFSET=0x00001000 | ||
151 | CONFIG_HUGETLB_PAGE_SIZE_64K=y | 176 | CONFIG_HUGETLB_PAGE_SIZE_64K=y |
152 | # CONFIG_HUGETLB_PAGE_SIZE_256K is not set | 177 | # CONFIG_HUGETLB_PAGE_SIZE_256K is not set |
153 | # CONFIG_HUGETLB_PAGE_SIZE_1MB is not set | 178 | # CONFIG_HUGETLB_PAGE_SIZE_1MB is not set |
@@ -161,11 +186,13 @@ CONFIG_FLATMEM_MANUAL=y | |||
161 | CONFIG_FLATMEM=y | 186 | CONFIG_FLATMEM=y |
162 | CONFIG_FLAT_NODE_MEM_MAP=y | 187 | CONFIG_FLAT_NODE_MEM_MAP=y |
163 | CONFIG_SPARSEMEM_STATIC=y | 188 | CONFIG_SPARSEMEM_STATIC=y |
164 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | 189 | CONFIG_PAGEFLAGS_EXTENDED=y |
165 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 190 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
166 | CONFIG_RESOURCES_64BIT=y | 191 | CONFIG_RESOURCES_64BIT=y |
192 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
167 | CONFIG_ZONE_DMA_FLAG=0 | 193 | CONFIG_ZONE_DMA_FLAG=0 |
168 | CONFIG_NR_QUICK=2 | 194 | CONFIG_NR_QUICK=2 |
195 | CONFIG_UNEVICTABLE_LRU=y | ||
169 | 196 | ||
170 | # | 197 | # |
171 | # Cache configuration | 198 | # Cache configuration |
@@ -196,7 +223,6 @@ CONFIG_SH_CAYMAN=y | |||
196 | # | 223 | # |
197 | CONFIG_SH_TIMER_IRQ=16 | 224 | CONFIG_SH_TIMER_IRQ=16 |
198 | CONFIG_SH_PCLK_FREQ=50000000 | 225 | CONFIG_SH_PCLK_FREQ=50000000 |
199 | # CONFIG_TICK_ONESHOT is not set | ||
200 | 226 | ||
201 | # | 227 | # |
202 | # CPU Frequency scaling | 228 | # CPU Frequency scaling |
@@ -225,13 +251,12 @@ CONFIG_HZ_250=y | |||
225 | # CONFIG_HZ_300 is not set | 251 | # CONFIG_HZ_300 is not set |
226 | # CONFIG_HZ_1000 is not set | 252 | # CONFIG_HZ_1000 is not set |
227 | CONFIG_HZ=250 | 253 | CONFIG_HZ=250 |
228 | # CONFIG_KEXEC is not set | 254 | # CONFIG_SCHED_HRTICK is not set |
229 | # CONFIG_CRASH_DUMP is not set | 255 | # CONFIG_SECCOMP is not set |
230 | # CONFIG_PREEMPT_NONE is not set | 256 | # CONFIG_PREEMPT_NONE is not set |
231 | # CONFIG_PREEMPT_VOLUNTARY is not set | 257 | # CONFIG_PREEMPT_VOLUNTARY is not set |
232 | CONFIG_PREEMPT=y | 258 | CONFIG_PREEMPT=y |
233 | CONFIG_PREEMPT_BKL=y | 259 | # CONFIG_PREEMPT_RCU is not set |
234 | CONFIG_GUSA=y | ||
235 | 260 | ||
236 | # | 261 | # |
237 | # Boot options | 262 | # Boot options |
@@ -257,11 +282,9 @@ CONFIG_PCI_LEGACY=y | |||
257 | # Executable file formats | 282 | # Executable file formats |
258 | # | 283 | # |
259 | CONFIG_BINFMT_ELF=y | 284 | CONFIG_BINFMT_ELF=y |
285 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
286 | # CONFIG_HAVE_AOUT is not set | ||
260 | # CONFIG_BINFMT_MISC is not set | 287 | # CONFIG_BINFMT_MISC is not set |
261 | |||
262 | # | ||
263 | # Networking | ||
264 | # | ||
265 | CONFIG_NET=y | 288 | CONFIG_NET=y |
266 | 289 | ||
267 | # | 290 | # |
@@ -274,6 +297,7 @@ CONFIG_XFRM=y | |||
274 | # CONFIG_XFRM_USER is not set | 297 | # CONFIG_XFRM_USER is not set |
275 | # CONFIG_XFRM_SUB_POLICY is not set | 298 | # CONFIG_XFRM_SUB_POLICY is not set |
276 | # CONFIG_XFRM_MIGRATE is not set | 299 | # CONFIG_XFRM_MIGRATE is not set |
300 | # CONFIG_XFRM_STATISTICS is not set | ||
277 | # CONFIG_NET_KEY is not set | 301 | # CONFIG_NET_KEY is not set |
278 | CONFIG_INET=y | 302 | CONFIG_INET=y |
279 | # CONFIG_IP_MULTICAST is not set | 303 | # CONFIG_IP_MULTICAST is not set |
@@ -303,8 +327,6 @@ CONFIG_TCP_CONG_CUBIC=y | |||
303 | CONFIG_DEFAULT_TCP_CONG="cubic" | 327 | CONFIG_DEFAULT_TCP_CONG="cubic" |
304 | # CONFIG_TCP_MD5SIG is not set | 328 | # CONFIG_TCP_MD5SIG is not set |
305 | # CONFIG_IPV6 is not set | 329 | # CONFIG_IPV6 is not set |
306 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
307 | # CONFIG_INET6_TUNNEL is not set | ||
308 | # CONFIG_NETWORK_SECMARK is not set | 330 | # CONFIG_NETWORK_SECMARK is not set |
309 | # CONFIG_NETFILTER is not set | 331 | # CONFIG_NETFILTER is not set |
310 | # CONFIG_IP_DCCP is not set | 332 | # CONFIG_IP_DCCP is not set |
@@ -312,6 +334,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
312 | # CONFIG_TIPC is not set | 334 | # CONFIG_TIPC is not set |
313 | # CONFIG_ATM is not set | 335 | # CONFIG_ATM is not set |
314 | # CONFIG_BRIDGE is not set | 336 | # CONFIG_BRIDGE is not set |
337 | # CONFIG_NET_DSA is not set | ||
315 | # CONFIG_VLAN_8021Q is not set | 338 | # CONFIG_VLAN_8021Q is not set |
316 | # CONFIG_DECNET is not set | 339 | # CONFIG_DECNET is not set |
317 | # CONFIG_LLC2 is not set | 340 | # CONFIG_LLC2 is not set |
@@ -328,14 +351,14 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
328 | # | 351 | # |
329 | # CONFIG_NET_PKTGEN is not set | 352 | # CONFIG_NET_PKTGEN is not set |
330 | # CONFIG_HAMRADIO is not set | 353 | # CONFIG_HAMRADIO is not set |
354 | # CONFIG_CAN is not set | ||
331 | # CONFIG_IRDA is not set | 355 | # CONFIG_IRDA is not set |
332 | # CONFIG_BT is not set | 356 | # CONFIG_BT is not set |
333 | # CONFIG_AF_RXRPC is not set | 357 | # CONFIG_AF_RXRPC is not set |
334 | 358 | # CONFIG_PHONET is not set | |
335 | # | 359 | CONFIG_WIRELESS=y |
336 | # Wireless | ||
337 | # | ||
338 | # CONFIG_CFG80211 is not set | 360 | # CONFIG_CFG80211 is not set |
361 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
339 | # CONFIG_WIRELESS_EXT is not set | 362 | # CONFIG_WIRELESS_EXT is not set |
340 | # CONFIG_MAC80211 is not set | 363 | # CONFIG_MAC80211 is not set |
341 | # CONFIG_IEEE80211 is not set | 364 | # CONFIG_IEEE80211 is not set |
@@ -371,14 +394,18 @@ CONFIG_BLK_DEV_LOOP=y | |||
371 | CONFIG_BLK_DEV_RAM=y | 394 | CONFIG_BLK_DEV_RAM=y |
372 | CONFIG_BLK_DEV_RAM_COUNT=16 | 395 | CONFIG_BLK_DEV_RAM_COUNT=16 |
373 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 396 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
374 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 397 | # CONFIG_BLK_DEV_XIP is not set |
375 | # CONFIG_CDROM_PKTCDVD is not set | 398 | # CONFIG_CDROM_PKTCDVD is not set |
376 | # CONFIG_ATA_OVER_ETH is not set | 399 | # CONFIG_ATA_OVER_ETH is not set |
400 | # CONFIG_BLK_DEV_HD is not set | ||
377 | CONFIG_MISC_DEVICES=y | 401 | CONFIG_MISC_DEVICES=y |
378 | # CONFIG_PHANTOM is not set | 402 | # CONFIG_PHANTOM is not set |
379 | # CONFIG_EEPROM_93CX6 is not set | 403 | # CONFIG_EEPROM_93CX6 is not set |
380 | # CONFIG_SGI_IOC4 is not set | 404 | # CONFIG_SGI_IOC4 is not set |
381 | # CONFIG_TIFM_CORE is not set | 405 | # CONFIG_TIFM_CORE is not set |
406 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
407 | # CONFIG_HP_ILO is not set | ||
408 | CONFIG_HAVE_IDE=y | ||
382 | # CONFIG_IDE is not set | 409 | # CONFIG_IDE is not set |
383 | 410 | ||
384 | # | 411 | # |
@@ -438,6 +465,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
438 | # CONFIG_SCSI_IPS is not set | 465 | # CONFIG_SCSI_IPS is not set |
439 | # CONFIG_SCSI_INITIO is not set | 466 | # CONFIG_SCSI_INITIO is not set |
440 | # CONFIG_SCSI_INIA100 is not set | 467 | # CONFIG_SCSI_INIA100 is not set |
468 | # CONFIG_SCSI_MVSAS is not set | ||
441 | # CONFIG_SCSI_STEX is not set | 469 | # CONFIG_SCSI_STEX is not set |
442 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 470 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
443 | # CONFIG_SCSI_QLOGIC_1280 is not set | 471 | # CONFIG_SCSI_QLOGIC_1280 is not set |
@@ -449,6 +477,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
449 | # CONFIG_SCSI_NSP32 is not set | 477 | # CONFIG_SCSI_NSP32 is not set |
450 | # CONFIG_SCSI_DEBUG is not set | 478 | # CONFIG_SCSI_DEBUG is not set |
451 | # CONFIG_SCSI_SRP is not set | 479 | # CONFIG_SCSI_SRP is not set |
480 | # CONFIG_SCSI_DH is not set | ||
452 | # CONFIG_ATA is not set | 481 | # CONFIG_ATA is not set |
453 | # CONFIG_MD is not set | 482 | # CONFIG_MD is not set |
454 | # CONFIG_FUSION is not set | 483 | # CONFIG_FUSION is not set |
@@ -456,18 +485,20 @@ CONFIG_SCSI_LOWLEVEL=y | |||
456 | # | 485 | # |
457 | # IEEE 1394 (FireWire) support | 486 | # IEEE 1394 (FireWire) support |
458 | # | 487 | # |
488 | |||
489 | # | ||
490 | # Enable only one of the two stacks, unless you know what you are doing | ||
491 | # | ||
459 | # CONFIG_FIREWIRE is not set | 492 | # CONFIG_FIREWIRE is not set |
460 | # CONFIG_IEEE1394 is not set | 493 | # CONFIG_IEEE1394 is not set |
461 | # CONFIG_I2O is not set | 494 | # CONFIG_I2O is not set |
462 | CONFIG_NETDEVICES=y | 495 | CONFIG_NETDEVICES=y |
463 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
464 | # CONFIG_DUMMY is not set | 496 | # CONFIG_DUMMY is not set |
465 | # CONFIG_BONDING is not set | 497 | # CONFIG_BONDING is not set |
466 | # CONFIG_MACVLAN is not set | 498 | # CONFIG_MACVLAN is not set |
467 | # CONFIG_EQUALIZER is not set | 499 | # CONFIG_EQUALIZER is not set |
468 | # CONFIG_TUN is not set | 500 | # CONFIG_TUN is not set |
469 | # CONFIG_VETH is not set | 501 | # CONFIG_VETH is not set |
470 | # CONFIG_IP1000 is not set | ||
471 | # CONFIG_ARCNET is not set | 502 | # CONFIG_ARCNET is not set |
472 | # CONFIG_PHYLIB is not set | 503 | # CONFIG_PHYLIB is not set |
473 | CONFIG_NET_ETHERNET=y | 504 | CONFIG_NET_ETHERNET=y |
@@ -486,13 +517,19 @@ CONFIG_NET_ETHERNET=y | |||
486 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 517 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
487 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 518 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
488 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 519 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
520 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
521 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
522 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
489 | # CONFIG_NET_PCI is not set | 523 | # CONFIG_NET_PCI is not set |
490 | # CONFIG_B44 is not set | 524 | # CONFIG_B44 is not set |
525 | # CONFIG_ATL2 is not set | ||
491 | CONFIG_NETDEV_1000=y | 526 | CONFIG_NETDEV_1000=y |
492 | # CONFIG_ACENIC is not set | 527 | # CONFIG_ACENIC is not set |
493 | # CONFIG_DL2K is not set | 528 | # CONFIG_DL2K is not set |
494 | # CONFIG_E1000 is not set | 529 | # CONFIG_E1000 is not set |
495 | # CONFIG_E1000E is not set | 530 | # CONFIG_E1000E is not set |
531 | # CONFIG_IP1000 is not set | ||
532 | # CONFIG_IGB is not set | ||
496 | # CONFIG_NS83820 is not set | 533 | # CONFIG_NS83820 is not set |
497 | # CONFIG_HAMACHI is not set | 534 | # CONFIG_HAMACHI is not set |
498 | # CONFIG_YELLOWFIN is not set | 535 | # CONFIG_YELLOWFIN is not set |
@@ -500,15 +537,17 @@ CONFIG_NETDEV_1000=y | |||
500 | # CONFIG_SIS190 is not set | 537 | # CONFIG_SIS190 is not set |
501 | # CONFIG_SKGE is not set | 538 | # CONFIG_SKGE is not set |
502 | # CONFIG_SKY2 is not set | 539 | # CONFIG_SKY2 is not set |
503 | # CONFIG_SK98LIN is not set | ||
504 | # CONFIG_VIA_VELOCITY is not set | 540 | # CONFIG_VIA_VELOCITY is not set |
505 | # CONFIG_TIGON3 is not set | 541 | # CONFIG_TIGON3 is not set |
506 | # CONFIG_BNX2 is not set | 542 | # CONFIG_BNX2 is not set |
507 | # CONFIG_QLA3XXX is not set | 543 | # CONFIG_QLA3XXX is not set |
508 | # CONFIG_ATL1 is not set | 544 | # CONFIG_ATL1 is not set |
545 | # CONFIG_ATL1E is not set | ||
546 | # CONFIG_JME is not set | ||
509 | CONFIG_NETDEV_10000=y | 547 | CONFIG_NETDEV_10000=y |
510 | # CONFIG_CHELSIO_T1 is not set | 548 | # CONFIG_CHELSIO_T1 is not set |
511 | # CONFIG_CHELSIO_T3 is not set | 549 | # CONFIG_CHELSIO_T3 is not set |
550 | # CONFIG_ENIC is not set | ||
512 | # CONFIG_IXGBE is not set | 551 | # CONFIG_IXGBE is not set |
513 | # CONFIG_IXGB is not set | 552 | # CONFIG_IXGB is not set |
514 | # CONFIG_S2IO is not set | 553 | # CONFIG_S2IO is not set |
@@ -517,6 +556,9 @@ CONFIG_NETDEV_10000=y | |||
517 | # CONFIG_NIU is not set | 556 | # CONFIG_NIU is not set |
518 | # CONFIG_MLX4_CORE is not set | 557 | # CONFIG_MLX4_CORE is not set |
519 | # CONFIG_TEHUTI is not set | 558 | # CONFIG_TEHUTI is not set |
559 | # CONFIG_BNX2X is not set | ||
560 | # CONFIG_QLGE is not set | ||
561 | # CONFIG_SFC is not set | ||
520 | # CONFIG_TR is not set | 562 | # CONFIG_TR is not set |
521 | 563 | ||
522 | # | 564 | # |
@@ -524,13 +566,13 @@ CONFIG_NETDEV_10000=y | |||
524 | # | 566 | # |
525 | # CONFIG_WLAN_PRE80211 is not set | 567 | # CONFIG_WLAN_PRE80211 is not set |
526 | # CONFIG_WLAN_80211 is not set | 568 | # CONFIG_WLAN_80211 is not set |
569 | # CONFIG_IWLWIFI_LEDS is not set | ||
527 | # CONFIG_WAN is not set | 570 | # CONFIG_WAN is not set |
528 | # CONFIG_FDDI is not set | 571 | # CONFIG_FDDI is not set |
529 | # CONFIG_HIPPI is not set | 572 | # CONFIG_HIPPI is not set |
530 | # CONFIG_PPP is not set | 573 | # CONFIG_PPP is not set |
531 | # CONFIG_SLIP is not set | 574 | # CONFIG_SLIP is not set |
532 | # CONFIG_NET_FC is not set | 575 | # CONFIG_NET_FC is not set |
533 | # CONFIG_SHAPER is not set | ||
534 | # CONFIG_NETCONSOLE is not set | 576 | # CONFIG_NETCONSOLE is not set |
535 | # CONFIG_NETPOLL is not set | 577 | # CONFIG_NETPOLL is not set |
536 | # CONFIG_NET_POLL_CONTROLLER is not set | 578 | # CONFIG_NET_POLL_CONTROLLER is not set |
@@ -575,10 +617,13 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | |||
575 | # Character devices | 617 | # Character devices |
576 | # | 618 | # |
577 | CONFIG_VT=y | 619 | CONFIG_VT=y |
620 | CONFIG_CONSOLE_TRANSLATIONS=y | ||
578 | CONFIG_VT_CONSOLE=y | 621 | CONFIG_VT_CONSOLE=y |
579 | CONFIG_HW_CONSOLE=y | 622 | CONFIG_HW_CONSOLE=y |
580 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | 623 | # CONFIG_VT_HW_CONSOLE_BINDING is not set |
624 | CONFIG_DEVKMEM=y | ||
581 | # CONFIG_SERIAL_NONSTANDARD is not set | 625 | # CONFIG_SERIAL_NONSTANDARD is not set |
626 | # CONFIG_NOZOMI is not set | ||
582 | 627 | ||
583 | # | 628 | # |
584 | # Serial drivers | 629 | # Serial drivers |
@@ -603,16 +648,14 @@ CONFIG_DEVPORT=y | |||
603 | CONFIG_I2C=m | 648 | CONFIG_I2C=m |
604 | CONFIG_I2C_BOARDINFO=y | 649 | CONFIG_I2C_BOARDINFO=y |
605 | # CONFIG_I2C_CHARDEV is not set | 650 | # CONFIG_I2C_CHARDEV is not set |
651 | CONFIG_I2C_HELPER_AUTO=y | ||
606 | 652 | ||
607 | # | 653 | # |
608 | # I2C Algorithms | 654 | # I2C Hardware Bus support |
609 | # | 655 | # |
610 | # CONFIG_I2C_ALGOBIT is not set | ||
611 | # CONFIG_I2C_ALGOPCF is not set | ||
612 | # CONFIG_I2C_ALGOPCA is not set | ||
613 | 656 | ||
614 | # | 657 | # |
615 | # I2C Hardware Bus support | 658 | # PC SMBus host controller drivers |
616 | # | 659 | # |
617 | # CONFIG_I2C_ALI1535 is not set | 660 | # CONFIG_I2C_ALI1535 is not set |
618 | # CONFIG_I2C_ALI1563 is not set | 661 | # CONFIG_I2C_ALI1563 is not set |
@@ -620,31 +663,47 @@ CONFIG_I2C_BOARDINFO=y | |||
620 | # CONFIG_I2C_AMD756 is not set | 663 | # CONFIG_I2C_AMD756 is not set |
621 | # CONFIG_I2C_AMD8111 is not set | 664 | # CONFIG_I2C_AMD8111 is not set |
622 | # CONFIG_I2C_I801 is not set | 665 | # CONFIG_I2C_I801 is not set |
623 | # CONFIG_I2C_I810 is not set | 666 | # CONFIG_I2C_ISCH is not set |
624 | # CONFIG_I2C_PIIX4 is not set | 667 | # CONFIG_I2C_PIIX4 is not set |
625 | # CONFIG_I2C_NFORCE2 is not set | 668 | # CONFIG_I2C_NFORCE2 is not set |
626 | # CONFIG_I2C_OCORES is not set | ||
627 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
628 | # CONFIG_I2C_PROSAVAGE is not set | ||
629 | # CONFIG_I2C_SAVAGE4 is not set | ||
630 | # CONFIG_I2C_SIMTEC is not set | ||
631 | # CONFIG_I2C_SIS5595 is not set | 669 | # CONFIG_I2C_SIS5595 is not set |
632 | # CONFIG_I2C_SIS630 is not set | 670 | # CONFIG_I2C_SIS630 is not set |
633 | # CONFIG_I2C_SIS96X is not set | 671 | # CONFIG_I2C_SIS96X is not set |
634 | # CONFIG_I2C_TAOS_EVM is not set | ||
635 | # CONFIG_I2C_STUB is not set | ||
636 | # CONFIG_I2C_VIA is not set | 672 | # CONFIG_I2C_VIA is not set |
637 | # CONFIG_I2C_VIAPRO is not set | 673 | # CONFIG_I2C_VIAPRO is not set |
674 | |||
675 | # | ||
676 | # I2C system bus drivers (mostly embedded / system-on-chip) | ||
677 | # | ||
678 | # CONFIG_I2C_OCORES is not set | ||
679 | # CONFIG_I2C_SH_MOBILE is not set | ||
680 | # CONFIG_I2C_SIMTEC is not set | ||
681 | |||
682 | # | ||
683 | # External I2C/SMBus adapter drivers | ||
684 | # | ||
685 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
686 | # CONFIG_I2C_TAOS_EVM is not set | ||
687 | |||
688 | # | ||
689 | # Graphics adapter I2C/DDC channel drivers | ||
690 | # | ||
638 | # CONFIG_I2C_VOODOO3 is not set | 691 | # CONFIG_I2C_VOODOO3 is not set |
639 | 692 | ||
640 | # | 693 | # |
694 | # Other I2C/SMBus bus drivers | ||
695 | # | ||
696 | # CONFIG_I2C_PCA_PLATFORM is not set | ||
697 | # CONFIG_I2C_STUB is not set | ||
698 | |||
699 | # | ||
641 | # Miscellaneous I2C Chip support | 700 | # Miscellaneous I2C Chip support |
642 | # | 701 | # |
643 | # CONFIG_SENSORS_DS1337 is not set | ||
644 | # CONFIG_SENSORS_DS1374 is not set | ||
645 | # CONFIG_DS1682 is not set | 702 | # CONFIG_DS1682 is not set |
703 | # CONFIG_AT24 is not set | ||
646 | # CONFIG_SENSORS_EEPROM is not set | 704 | # CONFIG_SENSORS_EEPROM is not set |
647 | # CONFIG_SENSORS_PCF8574 is not set | 705 | # CONFIG_SENSORS_PCF8574 is not set |
706 | # CONFIG_PCF8575 is not set | ||
648 | # CONFIG_SENSORS_PCA9539 is not set | 707 | # CONFIG_SENSORS_PCA9539 is not set |
649 | # CONFIG_SENSORS_PCF8591 is not set | 708 | # CONFIG_SENSORS_PCF8591 is not set |
650 | # CONFIG_SENSORS_MAX6875 is not set | 709 | # CONFIG_SENSORS_MAX6875 is not set |
@@ -653,16 +712,12 @@ CONFIG_I2C_BOARDINFO=y | |||
653 | # CONFIG_I2C_DEBUG_ALGO is not set | 712 | # CONFIG_I2C_DEBUG_ALGO is not set |
654 | # CONFIG_I2C_DEBUG_BUS is not set | 713 | # CONFIG_I2C_DEBUG_BUS is not set |
655 | # CONFIG_I2C_DEBUG_CHIP is not set | 714 | # CONFIG_I2C_DEBUG_CHIP is not set |
656 | |||
657 | # | ||
658 | # SPI support | ||
659 | # | ||
660 | # CONFIG_SPI is not set | 715 | # CONFIG_SPI is not set |
661 | # CONFIG_SPI_MASTER is not set | ||
662 | # CONFIG_W1 is not set | 716 | # CONFIG_W1 is not set |
663 | # CONFIG_POWER_SUPPLY is not set | 717 | # CONFIG_POWER_SUPPLY is not set |
664 | CONFIG_HWMON=y | 718 | CONFIG_HWMON=y |
665 | # CONFIG_HWMON_VID is not set | 719 | # CONFIG_HWMON_VID is not set |
720 | # CONFIG_SENSORS_AD7414 is not set | ||
666 | # CONFIG_SENSORS_AD7418 is not set | 721 | # CONFIG_SENSORS_AD7418 is not set |
667 | # CONFIG_SENSORS_ADM1021 is not set | 722 | # CONFIG_SENSORS_ADM1021 is not set |
668 | # CONFIG_SENSORS_ADM1025 is not set | 723 | # CONFIG_SENSORS_ADM1025 is not set |
@@ -671,6 +726,7 @@ CONFIG_HWMON=y | |||
671 | # CONFIG_SENSORS_ADM1031 is not set | 726 | # CONFIG_SENSORS_ADM1031 is not set |
672 | # CONFIG_SENSORS_ADM9240 is not set | 727 | # CONFIG_SENSORS_ADM9240 is not set |
673 | # CONFIG_SENSORS_ADT7470 is not set | 728 | # CONFIG_SENSORS_ADT7470 is not set |
729 | # CONFIG_SENSORS_ADT7473 is not set | ||
674 | # CONFIG_SENSORS_ATXP1 is not set | 730 | # CONFIG_SENSORS_ATXP1 is not set |
675 | # CONFIG_SENSORS_DS1621 is not set | 731 | # CONFIG_SENSORS_DS1621 is not set |
676 | # CONFIG_SENSORS_I5K_AMB is not set | 732 | # CONFIG_SENSORS_I5K_AMB is not set |
@@ -700,6 +756,7 @@ CONFIG_HWMON=y | |||
700 | # CONFIG_SENSORS_SMSC47M1 is not set | 756 | # CONFIG_SENSORS_SMSC47M1 is not set |
701 | # CONFIG_SENSORS_SMSC47M192 is not set | 757 | # CONFIG_SENSORS_SMSC47M192 is not set |
702 | # CONFIG_SENSORS_SMSC47B397 is not set | 758 | # CONFIG_SENSORS_SMSC47B397 is not set |
759 | # CONFIG_SENSORS_ADS7828 is not set | ||
703 | # CONFIG_SENSORS_THMC50 is not set | 760 | # CONFIG_SENSORS_THMC50 is not set |
704 | # CONFIG_SENSORS_VIA686A is not set | 761 | # CONFIG_SENSORS_VIA686A is not set |
705 | # CONFIG_SENSORS_VT1211 is not set | 762 | # CONFIG_SENSORS_VT1211 is not set |
@@ -709,9 +766,12 @@ CONFIG_HWMON=y | |||
709 | # CONFIG_SENSORS_W83792D is not set | 766 | # CONFIG_SENSORS_W83792D is not set |
710 | # CONFIG_SENSORS_W83793 is not set | 767 | # CONFIG_SENSORS_W83793 is not set |
711 | # CONFIG_SENSORS_W83L785TS is not set | 768 | # CONFIG_SENSORS_W83L785TS is not set |
769 | # CONFIG_SENSORS_W83L786NG is not set | ||
712 | # CONFIG_SENSORS_W83627HF is not set | 770 | # CONFIG_SENSORS_W83627HF is not set |
713 | # CONFIG_SENSORS_W83627EHF is not set | 771 | # CONFIG_SENSORS_W83627EHF is not set |
714 | # CONFIG_HWMON_DEBUG_CHIP is not set | 772 | # CONFIG_HWMON_DEBUG_CHIP is not set |
773 | # CONFIG_THERMAL is not set | ||
774 | # CONFIG_THERMAL_HWMON is not set | ||
715 | CONFIG_WATCHDOG=y | 775 | CONFIG_WATCHDOG=y |
716 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 776 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
717 | 777 | ||
@@ -719,6 +779,7 @@ CONFIG_WATCHDOG=y | |||
719 | # Watchdog Device Drivers | 779 | # Watchdog Device Drivers |
720 | # | 780 | # |
721 | # CONFIG_SOFT_WATCHDOG is not set | 781 | # CONFIG_SOFT_WATCHDOG is not set |
782 | # CONFIG_ALIM7101_WDT is not set | ||
722 | 783 | ||
723 | # | 784 | # |
724 | # PCI-based Watchdog Cards | 785 | # PCI-based Watchdog Cards |
@@ -735,35 +796,71 @@ CONFIG_SSB_POSSIBLE=y | |||
735 | # | 796 | # |
736 | # Multifunction device drivers | 797 | # Multifunction device drivers |
737 | # | 798 | # |
799 | # CONFIG_MFD_CORE is not set | ||
738 | # CONFIG_MFD_SM501 is not set | 800 | # CONFIG_MFD_SM501 is not set |
801 | # CONFIG_HTC_PASIC3 is not set | ||
802 | # CONFIG_MFD_TMIO is not set | ||
803 | # CONFIG_MFD_WM8400 is not set | ||
804 | # CONFIG_MFD_WM8350_I2C is not set | ||
739 | 805 | ||
740 | # | 806 | # |
741 | # Multimedia devices | 807 | # Multimedia devices |
742 | # | 808 | # |
809 | |||
810 | # | ||
811 | # Multimedia core support | ||
812 | # | ||
743 | CONFIG_VIDEO_DEV=m | 813 | CONFIG_VIDEO_DEV=m |
744 | # CONFIG_VIDEO_V4L1 is not set | 814 | CONFIG_VIDEO_V4L2_COMMON=m |
745 | # CONFIG_VIDEO_V4L1_COMPAT is not set | 815 | CONFIG_VIDEO_ALLOW_V4L1=y |
746 | CONFIG_VIDEO_V4L2=y | 816 | CONFIG_VIDEO_V4L1_COMPAT=y |
817 | CONFIG_DVB_CORE=y | ||
818 | CONFIG_VIDEO_MEDIA=m | ||
819 | |||
820 | # | ||
821 | # Multimedia drivers | ||
822 | # | ||
823 | # CONFIG_MEDIA_ATTACH is not set | ||
824 | CONFIG_MEDIA_TUNER=m | ||
825 | # CONFIG_MEDIA_TUNER_CUSTOMIZE is not set | ||
826 | CONFIG_MEDIA_TUNER_SIMPLE=m | ||
827 | CONFIG_MEDIA_TUNER_TDA8290=m | ||
828 | CONFIG_MEDIA_TUNER_TDA9887=m | ||
829 | CONFIG_MEDIA_TUNER_TEA5761=m | ||
830 | CONFIG_MEDIA_TUNER_TEA5767=m | ||
831 | CONFIG_MEDIA_TUNER_MT20XX=m | ||
832 | CONFIG_MEDIA_TUNER_XC2028=m | ||
833 | CONFIG_MEDIA_TUNER_XC5000=m | ||
834 | CONFIG_VIDEO_V4L2=m | ||
835 | CONFIG_VIDEO_V4L1=m | ||
747 | CONFIG_VIDEO_CAPTURE_DRIVERS=y | 836 | CONFIG_VIDEO_CAPTURE_DRIVERS=y |
748 | # CONFIG_VIDEO_ADV_DEBUG is not set | 837 | # CONFIG_VIDEO_ADV_DEBUG is not set |
838 | # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set | ||
749 | CONFIG_VIDEO_HELPER_CHIPS_AUTO=y | 839 | CONFIG_VIDEO_HELPER_CHIPS_AUTO=y |
750 | # CONFIG_VIDEO_VIVI is not set | 840 | # CONFIG_VIDEO_VIVI is not set |
841 | # CONFIG_VIDEO_BT848 is not set | ||
842 | # CONFIG_VIDEO_CPIA is not set | ||
751 | # CONFIG_VIDEO_SAA5246A is not set | 843 | # CONFIG_VIDEO_SAA5246A is not set |
752 | # CONFIG_VIDEO_SAA5249 is not set | 844 | # CONFIG_VIDEO_SAA5249 is not set |
753 | # CONFIG_VIDEO_SAA7134 is not set | 845 | # CONFIG_VIDEO_SAA7134 is not set |
846 | # CONFIG_VIDEO_MXB is not set | ||
754 | # CONFIG_VIDEO_HEXIUM_ORION is not set | 847 | # CONFIG_VIDEO_HEXIUM_ORION is not set |
755 | # CONFIG_VIDEO_HEXIUM_GEMINI is not set | 848 | # CONFIG_VIDEO_HEXIUM_GEMINI is not set |
756 | # CONFIG_VIDEO_CX88 is not set | 849 | # CONFIG_VIDEO_CX88 is not set |
757 | # CONFIG_VIDEO_CX23885 is not set | 850 | # CONFIG_VIDEO_CX23885 is not set |
851 | # CONFIG_VIDEO_IVTV is not set | ||
852 | # CONFIG_VIDEO_CX18 is not set | ||
758 | # CONFIG_VIDEO_CAFE_CCIC is not set | 853 | # CONFIG_VIDEO_CAFE_CCIC is not set |
854 | # CONFIG_SOC_CAMERA is not set | ||
759 | # CONFIG_RADIO_ADAPTERS is not set | 855 | # CONFIG_RADIO_ADAPTERS is not set |
760 | CONFIG_DVB_CORE=y | ||
761 | # CONFIG_DVB_CORE_ATTACH is not set | ||
762 | CONFIG_DVB_CAPTURE_DRIVERS=y | 856 | CONFIG_DVB_CAPTURE_DRIVERS=y |
763 | 857 | ||
764 | # | 858 | # |
765 | # Supported SAA7146 based PCI Adapters | 859 | # Supported SAA7146 based PCI Adapters |
766 | # | 860 | # |
861 | # CONFIG_TTPCI_EEPROM is not set | ||
862 | # CONFIG_DVB_AV7110 is not set | ||
863 | # CONFIG_DVB_BUDGET_CORE is not set | ||
767 | 864 | ||
768 | # | 865 | # |
769 | # Supported FlexCopII (B2C2) Adapters | 866 | # Supported FlexCopII (B2C2) Adapters |
@@ -780,6 +877,11 @@ CONFIG_DVB_CAPTURE_DRIVERS=y | |||
780 | # CONFIG_DVB_PLUTO2 is not set | 877 | # CONFIG_DVB_PLUTO2 is not set |
781 | 878 | ||
782 | # | 879 | # |
880 | # Supported SDMC DM1105 Adapters | ||
881 | # | ||
882 | # CONFIG_DVB_DM1105 is not set | ||
883 | |||
884 | # | ||
783 | # Supported DVB Frontends | 885 | # Supported DVB Frontends |
784 | # | 886 | # |
785 | 887 | ||
@@ -791,14 +893,21 @@ CONFIG_DVB_CAPTURE_DRIVERS=y | |||
791 | # | 893 | # |
792 | # DVB-S (satellite) frontends | 894 | # DVB-S (satellite) frontends |
793 | # | 895 | # |
794 | # CONFIG_DVB_STV0299 is not set | ||
795 | # CONFIG_DVB_CX24110 is not set | 896 | # CONFIG_DVB_CX24110 is not set |
796 | # CONFIG_DVB_CX24123 is not set | 897 | # CONFIG_DVB_CX24123 is not set |
797 | # CONFIG_DVB_TDA8083 is not set | ||
798 | # CONFIG_DVB_MT312 is not set | 898 | # CONFIG_DVB_MT312 is not set |
799 | # CONFIG_DVB_VES1X93 is not set | ||
800 | # CONFIG_DVB_S5H1420 is not set | 899 | # CONFIG_DVB_S5H1420 is not set |
900 | # CONFIG_DVB_STV0288 is not set | ||
901 | # CONFIG_DVB_STB6000 is not set | ||
902 | # CONFIG_DVB_STV0299 is not set | ||
903 | # CONFIG_DVB_TDA8083 is not set | ||
801 | # CONFIG_DVB_TDA10086 is not set | 904 | # CONFIG_DVB_TDA10086 is not set |
905 | # CONFIG_DVB_VES1X93 is not set | ||
906 | # CONFIG_DVB_TUNER_ITD1000 is not set | ||
907 | # CONFIG_DVB_TDA826X is not set | ||
908 | # CONFIG_DVB_TUA6100 is not set | ||
909 | # CONFIG_DVB_CX24116 is not set | ||
910 | # CONFIG_DVB_SI21XX is not set | ||
802 | 911 | ||
803 | # | 912 | # |
804 | # DVB-T (terrestrial) frontends | 913 | # DVB-T (terrestrial) frontends |
@@ -807,6 +916,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y | |||
807 | # CONFIG_DVB_SP887X is not set | 916 | # CONFIG_DVB_SP887X is not set |
808 | # CONFIG_DVB_CX22700 is not set | 917 | # CONFIG_DVB_CX22700 is not set |
809 | # CONFIG_DVB_CX22702 is not set | 918 | # CONFIG_DVB_CX22702 is not set |
919 | # CONFIG_DVB_DRX397XD is not set | ||
810 | # CONFIG_DVB_L64781 is not set | 920 | # CONFIG_DVB_L64781 is not set |
811 | # CONFIG_DVB_TDA1004X is not set | 921 | # CONFIG_DVB_TDA1004X is not set |
812 | # CONFIG_DVB_NXT6000 is not set | 922 | # CONFIG_DVB_NXT6000 is not set |
@@ -816,6 +926,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y | |||
816 | # CONFIG_DVB_DIB3000MC is not set | 926 | # CONFIG_DVB_DIB3000MC is not set |
817 | # CONFIG_DVB_DIB7000M is not set | 927 | # CONFIG_DVB_DIB7000M is not set |
818 | # CONFIG_DVB_DIB7000P is not set | 928 | # CONFIG_DVB_DIB7000P is not set |
929 | # CONFIG_DVB_TDA10048 is not set | ||
819 | 930 | ||
820 | # | 931 | # |
821 | # DVB-C (cable) frontends | 932 | # DVB-C (cable) frontends |
@@ -834,25 +945,28 @@ CONFIG_DVB_CAPTURE_DRIVERS=y | |||
834 | # CONFIG_DVB_BCM3510 is not set | 945 | # CONFIG_DVB_BCM3510 is not set |
835 | # CONFIG_DVB_LGDT330X is not set | 946 | # CONFIG_DVB_LGDT330X is not set |
836 | # CONFIG_DVB_S5H1409 is not set | 947 | # CONFIG_DVB_S5H1409 is not set |
948 | # CONFIG_DVB_AU8522 is not set | ||
949 | # CONFIG_DVB_S5H1411 is not set | ||
837 | 950 | ||
838 | # | 951 | # |
839 | # Tuners/PLL support | 952 | # Digital terrestrial only tuners/PLL |
840 | # | 953 | # |
841 | # CONFIG_DVB_PLL is not set | 954 | # CONFIG_DVB_PLL is not set |
842 | # CONFIG_DVB_TDA826X is not set | ||
843 | # CONFIG_DVB_TDA827X is not set | ||
844 | # CONFIG_DVB_TUNER_QT1010 is not set | ||
845 | # CONFIG_DVB_TUNER_MT2060 is not set | ||
846 | # CONFIG_DVB_TUNER_MT2266 is not set | ||
847 | # CONFIG_DVB_TUNER_MT2131 is not set | ||
848 | # CONFIG_DVB_TUNER_DIB0070 is not set | 955 | # CONFIG_DVB_TUNER_DIB0070 is not set |
849 | 956 | ||
850 | # | 957 | # |
851 | # Miscellaneous devices | 958 | # SEC control devices for DVB-S |
852 | # | 959 | # |
853 | # CONFIG_DVB_LNBP21 is not set | 960 | # CONFIG_DVB_LNBP21 is not set |
961 | # CONFIG_DVB_ISL6405 is not set | ||
854 | # CONFIG_DVB_ISL6421 is not set | 962 | # CONFIG_DVB_ISL6421 is not set |
855 | # CONFIG_DVB_TUA6100 is not set | 963 | # CONFIG_DVB_LGS8GL5 is not set |
964 | |||
965 | # | ||
966 | # Tools to develop new frontends | ||
967 | # | ||
968 | # CONFIG_DVB_DUMMY_FE is not set | ||
969 | # CONFIG_DVB_AF9013 is not set | ||
856 | CONFIG_DAB=y | 970 | CONFIG_DAB=y |
857 | 971 | ||
858 | # | 972 | # |
@@ -864,15 +978,16 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y | |||
864 | CONFIG_FB=y | 978 | CONFIG_FB=y |
865 | CONFIG_FIRMWARE_EDID=y | 979 | CONFIG_FIRMWARE_EDID=y |
866 | # CONFIG_FB_DDC is not set | 980 | # CONFIG_FB_DDC is not set |
867 | # CONFIG_FB_CFB_FILLRECT is not set | 981 | # CONFIG_FB_BOOT_VESA_SUPPORT is not set |
868 | # CONFIG_FB_CFB_COPYAREA is not set | 982 | CONFIG_FB_CFB_FILLRECT=m |
869 | # CONFIG_FB_CFB_IMAGEBLIT is not set | 983 | CONFIG_FB_CFB_COPYAREA=m |
984 | CONFIG_FB_CFB_IMAGEBLIT=m | ||
870 | # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set | 985 | # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set |
871 | # CONFIG_FB_SYS_FILLRECT is not set | 986 | # CONFIG_FB_SYS_FILLRECT is not set |
872 | # CONFIG_FB_SYS_COPYAREA is not set | 987 | # CONFIG_FB_SYS_COPYAREA is not set |
873 | # CONFIG_FB_SYS_IMAGEBLIT is not set | 988 | # CONFIG_FB_SYS_IMAGEBLIT is not set |
989 | # CONFIG_FB_FOREIGN_ENDIAN is not set | ||
874 | # CONFIG_FB_SYS_FOPS is not set | 990 | # CONFIG_FB_SYS_FOPS is not set |
875 | CONFIG_FB_DEFERRED_IO=y | ||
876 | # CONFIG_FB_SVGALIB is not set | 991 | # CONFIG_FB_SVGALIB is not set |
877 | # CONFIG_FB_MACMODES is not set | 992 | # CONFIG_FB_MACMODES is not set |
878 | # CONFIG_FB_BACKLIGHT is not set | 993 | # CONFIG_FB_BACKLIGHT is not set |
@@ -897,6 +1012,7 @@ CONFIG_FB_MODE_HELPERS=y | |||
897 | # CONFIG_FB_S3 is not set | 1012 | # CONFIG_FB_S3 is not set |
898 | # CONFIG_FB_SAVAGE is not set | 1013 | # CONFIG_FB_SAVAGE is not set |
899 | # CONFIG_FB_SIS is not set | 1014 | # CONFIG_FB_SIS is not set |
1015 | # CONFIG_FB_VIA is not set | ||
900 | # CONFIG_FB_NEOMAGIC is not set | 1016 | # CONFIG_FB_NEOMAGIC is not set |
901 | # CONFIG_FB_KYRO is not set | 1017 | # CONFIG_FB_KYRO is not set |
902 | # CONFIG_FB_3DFX is not set | 1018 | # CONFIG_FB_3DFX is not set |
@@ -905,7 +1021,10 @@ CONFIG_FB_MODE_HELPERS=y | |||
905 | # CONFIG_FB_TRIDENT is not set | 1021 | # CONFIG_FB_TRIDENT is not set |
906 | # CONFIG_FB_ARK is not set | 1022 | # CONFIG_FB_ARK is not set |
907 | # CONFIG_FB_PM3 is not set | 1023 | # CONFIG_FB_PM3 is not set |
1024 | # CONFIG_FB_CARMINE is not set | ||
1025 | CONFIG_FB_SH_MOBILE_LCDC=m | ||
908 | # CONFIG_FB_VIRTUAL is not set | 1026 | # CONFIG_FB_VIRTUAL is not set |
1027 | # CONFIG_FB_METRONOME is not set | ||
909 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 1028 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
910 | 1029 | ||
911 | # | 1030 | # |
@@ -938,38 +1057,42 @@ CONFIG_LOGO=y | |||
938 | # CONFIG_LOGO_SUPERH_MONO is not set | 1057 | # CONFIG_LOGO_SUPERH_MONO is not set |
939 | # CONFIG_LOGO_SUPERH_VGA16 is not set | 1058 | # CONFIG_LOGO_SUPERH_VGA16 is not set |
940 | CONFIG_LOGO_SUPERH_CLUT224=y | 1059 | CONFIG_LOGO_SUPERH_CLUT224=y |
941 | |||
942 | # | ||
943 | # Sound | ||
944 | # | ||
945 | # CONFIG_SOUND is not set | 1060 | # CONFIG_SOUND is not set |
946 | CONFIG_HID_SUPPORT=y | 1061 | CONFIG_HID_SUPPORT=y |
947 | CONFIG_HID=y | 1062 | CONFIG_HID=y |
948 | # CONFIG_HID_DEBUG is not set | 1063 | # CONFIG_HID_DEBUG is not set |
949 | # CONFIG_HIDRAW is not set | 1064 | # CONFIG_HIDRAW is not set |
1065 | # CONFIG_HID_PID is not set | ||
1066 | |||
1067 | # | ||
1068 | # Special HID drivers | ||
1069 | # | ||
1070 | CONFIG_HID_COMPAT=y | ||
950 | CONFIG_USB_SUPPORT=y | 1071 | CONFIG_USB_SUPPORT=y |
951 | CONFIG_USB_ARCH_HAS_HCD=y | 1072 | CONFIG_USB_ARCH_HAS_HCD=y |
952 | CONFIG_USB_ARCH_HAS_OHCI=y | 1073 | CONFIG_USB_ARCH_HAS_OHCI=y |
953 | CONFIG_USB_ARCH_HAS_EHCI=y | 1074 | CONFIG_USB_ARCH_HAS_EHCI=y |
954 | # CONFIG_USB is not set | 1075 | # CONFIG_USB is not set |
1076 | # CONFIG_USB_OTG_WHITELIST is not set | ||
1077 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | ||
955 | 1078 | ||
956 | # | 1079 | # |
957 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 1080 | # Enable Host or Gadget support to see Inventra options |
958 | # | 1081 | # |
959 | 1082 | ||
960 | # | 1083 | # |
961 | # USB Gadget Support | 1084 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
962 | # | 1085 | # |
963 | # CONFIG_USB_GADGET is not set | 1086 | # CONFIG_USB_GADGET is not set |
964 | # CONFIG_MMC is not set | 1087 | # CONFIG_MMC is not set |
1088 | # CONFIG_MEMSTICK is not set | ||
965 | # CONFIG_NEW_LEDS is not set | 1089 | # CONFIG_NEW_LEDS is not set |
1090 | # CONFIG_ACCESSIBILITY is not set | ||
966 | # CONFIG_INFINIBAND is not set | 1091 | # CONFIG_INFINIBAND is not set |
967 | # CONFIG_RTC_CLASS is not set | 1092 | # CONFIG_RTC_CLASS is not set |
968 | 1093 | # CONFIG_DMADEVICES is not set | |
969 | # | ||
970 | # Userspace I/O | ||
971 | # | ||
972 | # CONFIG_UIO is not set | 1094 | # CONFIG_UIO is not set |
1095 | # CONFIG_STAGING is not set | ||
973 | 1096 | ||
974 | # | 1097 | # |
975 | # File systems | 1098 | # File systems |
@@ -981,22 +1104,20 @@ CONFIG_EXT3_FS=y | |||
981 | CONFIG_EXT3_FS_XATTR=y | 1104 | CONFIG_EXT3_FS_XATTR=y |
982 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 1105 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
983 | # CONFIG_EXT3_FS_SECURITY is not set | 1106 | # CONFIG_EXT3_FS_SECURITY is not set |
984 | # CONFIG_EXT4DEV_FS is not set | 1107 | # CONFIG_EXT4_FS is not set |
985 | CONFIG_JBD=y | 1108 | CONFIG_JBD=y |
986 | # CONFIG_JBD_DEBUG is not set | 1109 | # CONFIG_JBD_DEBUG is not set |
987 | CONFIG_FS_MBCACHE=y | 1110 | CONFIG_FS_MBCACHE=y |
988 | # CONFIG_REISERFS_FS is not set | 1111 | # CONFIG_REISERFS_FS is not set |
989 | # CONFIG_JFS_FS is not set | 1112 | # CONFIG_JFS_FS is not set |
990 | # CONFIG_FS_POSIX_ACL is not set | 1113 | # CONFIG_FS_POSIX_ACL is not set |
1114 | CONFIG_FILE_LOCKING=y | ||
991 | # CONFIG_XFS_FS is not set | 1115 | # CONFIG_XFS_FS is not set |
992 | # CONFIG_GFS2_FS is not set | ||
993 | # CONFIG_OCFS2_FS is not set | 1116 | # CONFIG_OCFS2_FS is not set |
994 | CONFIG_MINIX_FS=y | 1117 | CONFIG_DNOTIFY=y |
995 | CONFIG_ROMFS_FS=y | ||
996 | CONFIG_INOTIFY=y | 1118 | CONFIG_INOTIFY=y |
997 | CONFIG_INOTIFY_USER=y | 1119 | CONFIG_INOTIFY_USER=y |
998 | # CONFIG_QUOTA is not set | 1120 | # CONFIG_QUOTA is not set |
999 | CONFIG_DNOTIFY=y | ||
1000 | # CONFIG_AUTOFS_FS is not set | 1121 | # CONFIG_AUTOFS_FS is not set |
1001 | # CONFIG_AUTOFS4_FS is not set | 1122 | # CONFIG_AUTOFS4_FS is not set |
1002 | # CONFIG_FUSE_FS is not set | 1123 | # CONFIG_FUSE_FS is not set |
@@ -1020,6 +1141,7 @@ CONFIG_DNOTIFY=y | |||
1020 | CONFIG_PROC_FS=y | 1141 | CONFIG_PROC_FS=y |
1021 | CONFIG_PROC_KCORE=y | 1142 | CONFIG_PROC_KCORE=y |
1022 | CONFIG_PROC_SYSCTL=y | 1143 | CONFIG_PROC_SYSCTL=y |
1144 | CONFIG_PROC_PAGE_MONITOR=y | ||
1023 | CONFIG_SYSFS=y | 1145 | CONFIG_SYSFS=y |
1024 | CONFIG_TMPFS=y | 1146 | CONFIG_TMPFS=y |
1025 | # CONFIG_TMPFS_POSIX_ACL is not set | 1147 | # CONFIG_TMPFS_POSIX_ACL is not set |
@@ -1039,8 +1161,11 @@ CONFIG_HUGETLB_PAGE=y | |||
1039 | # CONFIG_EFS_FS is not set | 1161 | # CONFIG_EFS_FS is not set |
1040 | # CONFIG_CRAMFS is not set | 1162 | # CONFIG_CRAMFS is not set |
1041 | # CONFIG_VXFS_FS is not set | 1163 | # CONFIG_VXFS_FS is not set |
1164 | CONFIG_MINIX_FS=y | ||
1165 | # CONFIG_OMFS_FS is not set | ||
1042 | # CONFIG_HPFS_FS is not set | 1166 | # CONFIG_HPFS_FS is not set |
1043 | # CONFIG_QNX4FS_FS is not set | 1167 | # CONFIG_QNX4FS_FS is not set |
1168 | CONFIG_ROMFS_FS=y | ||
1044 | # CONFIG_SYSV_FS is not set | 1169 | # CONFIG_SYSV_FS is not set |
1045 | # CONFIG_UFS_FS is not set | 1170 | # CONFIG_UFS_FS is not set |
1046 | CONFIG_NETWORK_FILESYSTEMS=y | 1171 | CONFIG_NETWORK_FILESYSTEMS=y |
@@ -1048,14 +1173,13 @@ CONFIG_NFS_FS=y | |||
1048 | CONFIG_NFS_V3=y | 1173 | CONFIG_NFS_V3=y |
1049 | # CONFIG_NFS_V3_ACL is not set | 1174 | # CONFIG_NFS_V3_ACL is not set |
1050 | # CONFIG_NFS_V4 is not set | 1175 | # CONFIG_NFS_V4 is not set |
1051 | # CONFIG_NFS_DIRECTIO is not set | ||
1052 | # CONFIG_NFSD is not set | ||
1053 | CONFIG_ROOT_NFS=y | 1176 | CONFIG_ROOT_NFS=y |
1177 | # CONFIG_NFSD is not set | ||
1054 | CONFIG_LOCKD=y | 1178 | CONFIG_LOCKD=y |
1055 | CONFIG_LOCKD_V4=y | 1179 | CONFIG_LOCKD_V4=y |
1056 | CONFIG_NFS_COMMON=y | 1180 | CONFIG_NFS_COMMON=y |
1057 | CONFIG_SUNRPC=y | 1181 | CONFIG_SUNRPC=y |
1058 | # CONFIG_SUNRPC_BIND34 is not set | 1182 | # CONFIG_SUNRPC_REGISTER_V4 is not set |
1059 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 1183 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
1060 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1184 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1061 | # CONFIG_SMB_FS is not set | 1185 | # CONFIG_SMB_FS is not set |
@@ -1087,9 +1211,6 @@ CONFIG_MSDOS_PARTITION=y | |||
1087 | # CONFIG_SYSV68_PARTITION is not set | 1211 | # CONFIG_SYSV68_PARTITION is not set |
1088 | # CONFIG_NLS is not set | 1212 | # CONFIG_NLS is not set |
1089 | # CONFIG_DLM is not set | 1213 | # CONFIG_DLM is not set |
1090 | CONFIG_INSTRUMENTATION=y | ||
1091 | # CONFIG_PROFILING is not set | ||
1092 | # CONFIG_MARKERS is not set | ||
1093 | 1214 | ||
1094 | # | 1215 | # |
1095 | # Kernel hacking | 1216 | # Kernel hacking |
@@ -1098,6 +1219,7 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y | |||
1098 | # CONFIG_PRINTK_TIME is not set | 1219 | # CONFIG_PRINTK_TIME is not set |
1099 | CONFIG_ENABLE_WARN_DEPRECATED=y | 1220 | CONFIG_ENABLE_WARN_DEPRECATED=y |
1100 | CONFIG_ENABLE_MUST_CHECK=y | 1221 | CONFIG_ENABLE_MUST_CHECK=y |
1222 | CONFIG_FRAME_WARN=1024 | ||
1101 | CONFIG_MAGIC_SYSRQ=y | 1223 | CONFIG_MAGIC_SYSRQ=y |
1102 | # CONFIG_UNUSED_SYMBOLS is not set | 1224 | # CONFIG_UNUSED_SYMBOLS is not set |
1103 | CONFIG_DEBUG_FS=y | 1225 | CONFIG_DEBUG_FS=y |
@@ -1105,9 +1227,12 @@ CONFIG_DEBUG_FS=y | |||
1105 | CONFIG_DEBUG_KERNEL=y | 1227 | CONFIG_DEBUG_KERNEL=y |
1106 | # CONFIG_DEBUG_SHIRQ is not set | 1228 | # CONFIG_DEBUG_SHIRQ is not set |
1107 | CONFIG_DETECT_SOFTLOCKUP=y | 1229 | CONFIG_DETECT_SOFTLOCKUP=y |
1230 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | ||
1231 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | ||
1108 | CONFIG_SCHED_DEBUG=y | 1232 | CONFIG_SCHED_DEBUG=y |
1109 | CONFIG_SCHEDSTATS=y | 1233 | CONFIG_SCHEDSTATS=y |
1110 | # CONFIG_TIMER_STATS is not set | 1234 | # CONFIG_TIMER_STATS is not set |
1235 | # CONFIG_DEBUG_OBJECTS is not set | ||
1111 | # CONFIG_DEBUG_SLAB is not set | 1236 | # CONFIG_DEBUG_SLAB is not set |
1112 | CONFIG_DEBUG_PREEMPT=y | 1237 | CONFIG_DEBUG_PREEMPT=y |
1113 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1238 | # CONFIG_DEBUG_RT_MUTEXES is not set |
@@ -1123,15 +1248,20 @@ CONFIG_DEBUG_PREEMPT=y | |||
1123 | CONFIG_DEBUG_BUGVERBOSE=y | 1248 | CONFIG_DEBUG_BUGVERBOSE=y |
1124 | # CONFIG_DEBUG_INFO is not set | 1249 | # CONFIG_DEBUG_INFO is not set |
1125 | # CONFIG_DEBUG_VM is not set | 1250 | # CONFIG_DEBUG_VM is not set |
1251 | # CONFIG_DEBUG_WRITECOUNT is not set | ||
1252 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
1126 | # CONFIG_DEBUG_LIST is not set | 1253 | # CONFIG_DEBUG_LIST is not set |
1127 | # CONFIG_DEBUG_SG is not set | 1254 | # CONFIG_DEBUG_SG is not set |
1128 | CONFIG_FRAME_POINTER=y | 1255 | CONFIG_FRAME_POINTER=y |
1129 | CONFIG_FORCED_INLINING=y | ||
1130 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
1131 | # CONFIG_RCU_TORTURE_TEST is not set | 1256 | # CONFIG_RCU_TORTURE_TEST is not set |
1257 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
1258 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
1259 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
1132 | # CONFIG_FAULT_INJECTION is not set | 1260 | # CONFIG_FAULT_INJECTION is not set |
1261 | # CONFIG_LATENCYTOP is not set | ||
1262 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
1263 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
1133 | # CONFIG_SAMPLES is not set | 1264 | # CONFIG_SAMPLES is not set |
1134 | # CONFIG_SH_STANDARD_BIOS is not set | ||
1135 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 1265 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
1136 | # CONFIG_DEBUG_BOOTMEM is not set | 1266 | # CONFIG_DEBUG_BOOTMEM is not set |
1137 | # CONFIG_DEBUG_STACK_USAGE is not set | 1267 | # CONFIG_DEBUG_STACK_USAGE is not set |
@@ -1147,8 +1277,93 @@ CONFIG_SH64_SR_WATCH=y | |||
1147 | # | 1277 | # |
1148 | # CONFIG_KEYS is not set | 1278 | # CONFIG_KEYS is not set |
1149 | # CONFIG_SECURITY is not set | 1279 | # CONFIG_SECURITY is not set |
1280 | # CONFIG_SECURITYFS is not set | ||
1150 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1281 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
1151 | # CONFIG_CRYPTO is not set | 1282 | CONFIG_CRYPTO=y |
1283 | |||
1284 | # | ||
1285 | # Crypto core or helper | ||
1286 | # | ||
1287 | # CONFIG_CRYPTO_FIPS is not set | ||
1288 | # CONFIG_CRYPTO_MANAGER is not set | ||
1289 | # CONFIG_CRYPTO_GF128MUL is not set | ||
1290 | # CONFIG_CRYPTO_NULL is not set | ||
1291 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1292 | # CONFIG_CRYPTO_AUTHENC is not set | ||
1293 | # CONFIG_CRYPTO_TEST is not set | ||
1294 | |||
1295 | # | ||
1296 | # Authenticated Encryption with Associated Data | ||
1297 | # | ||
1298 | # CONFIG_CRYPTO_CCM is not set | ||
1299 | # CONFIG_CRYPTO_GCM is not set | ||
1300 | # CONFIG_CRYPTO_SEQIV is not set | ||
1301 | |||
1302 | # | ||
1303 | # Block modes | ||
1304 | # | ||
1305 | # CONFIG_CRYPTO_CBC is not set | ||
1306 | # CONFIG_CRYPTO_CTR is not set | ||
1307 | # CONFIG_CRYPTO_CTS is not set | ||
1308 | # CONFIG_CRYPTO_ECB is not set | ||
1309 | # CONFIG_CRYPTO_LRW is not set | ||
1310 | # CONFIG_CRYPTO_PCBC is not set | ||
1311 | # CONFIG_CRYPTO_XTS is not set | ||
1312 | |||
1313 | # | ||
1314 | # Hash modes | ||
1315 | # | ||
1316 | # CONFIG_CRYPTO_HMAC is not set | ||
1317 | # CONFIG_CRYPTO_XCBC is not set | ||
1318 | |||
1319 | # | ||
1320 | # Digest | ||
1321 | # | ||
1322 | # CONFIG_CRYPTO_CRC32C is not set | ||
1323 | # CONFIG_CRYPTO_MD4 is not set | ||
1324 | # CONFIG_CRYPTO_MD5 is not set | ||
1325 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
1326 | # CONFIG_CRYPTO_RMD128 is not set | ||
1327 | # CONFIG_CRYPTO_RMD160 is not set | ||
1328 | # CONFIG_CRYPTO_RMD256 is not set | ||
1329 | # CONFIG_CRYPTO_RMD320 is not set | ||
1330 | # CONFIG_CRYPTO_SHA1 is not set | ||
1331 | # CONFIG_CRYPTO_SHA256 is not set | ||
1332 | # CONFIG_CRYPTO_SHA512 is not set | ||
1333 | # CONFIG_CRYPTO_TGR192 is not set | ||
1334 | # CONFIG_CRYPTO_WP512 is not set | ||
1335 | |||
1336 | # | ||
1337 | # Ciphers | ||
1338 | # | ||
1339 | # CONFIG_CRYPTO_AES is not set | ||
1340 | # CONFIG_CRYPTO_ANUBIS is not set | ||
1341 | # CONFIG_CRYPTO_ARC4 is not set | ||
1342 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
1343 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1344 | # CONFIG_CRYPTO_CAST5 is not set | ||
1345 | # CONFIG_CRYPTO_CAST6 is not set | ||
1346 | # CONFIG_CRYPTO_DES is not set | ||
1347 | # CONFIG_CRYPTO_FCRYPT is not set | ||
1348 | # CONFIG_CRYPTO_KHAZAD is not set | ||
1349 | # CONFIG_CRYPTO_SALSA20 is not set | ||
1350 | # CONFIG_CRYPTO_SEED is not set | ||
1351 | # CONFIG_CRYPTO_SERPENT is not set | ||
1352 | # CONFIG_CRYPTO_TEA is not set | ||
1353 | # CONFIG_CRYPTO_TWOFISH is not set | ||
1354 | |||
1355 | # | ||
1356 | # Compression | ||
1357 | # | ||
1358 | # CONFIG_CRYPTO_DEFLATE is not set | ||
1359 | # CONFIG_CRYPTO_LZO is not set | ||
1360 | |||
1361 | # | ||
1362 | # Random Number Generation | ||
1363 | # | ||
1364 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
1365 | CONFIG_CRYPTO_HW=y | ||
1366 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | ||
1152 | 1367 | ||
1153 | # | 1368 | # |
1154 | # Library routines | 1369 | # Library routines |
@@ -1156,6 +1371,7 @@ CONFIG_SH64_SR_WATCH=y | |||
1156 | CONFIG_BITREVERSE=y | 1371 | CONFIG_BITREVERSE=y |
1157 | # CONFIG_CRC_CCITT is not set | 1372 | # CONFIG_CRC_CCITT is not set |
1158 | # CONFIG_CRC16 is not set | 1373 | # CONFIG_CRC16 is not set |
1374 | # CONFIG_CRC_T10DIF is not set | ||
1159 | # CONFIG_CRC_ITU_T is not set | 1375 | # CONFIG_CRC_ITU_T is not set |
1160 | CONFIG_CRC32=y | 1376 | CONFIG_CRC32=y |
1161 | # CONFIG_CRC7 is not set | 1377 | # CONFIG_CRC7 is not set |
diff --git a/arch/sh/configs/dreamcast_defconfig b/arch/sh/configs/dreamcast_defconfig index 3dc1cbd8a981..be4c2e0dbb26 100644 --- a/arch/sh/configs/dreamcast_defconfig +++ b/arch/sh/configs/dreamcast_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.27-rc1 | 3 | # Linux kernel version: 2.6.27 |
4 | # Mon Aug 4 16:49:13 2008 | 4 | # Wed Oct 22 18:18:02 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -13,12 +13,13 @@ CONFIG_GENERIC_HWEIGHT=y | |||
13 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
15 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
16 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
17 | CONFIG_GENERIC_TIME=y | 17 | CONFIG_GENERIC_TIME=y |
18 | CONFIG_GENERIC_CLOCKEVENTS=y | 18 | CONFIG_GENERIC_CLOCKEVENTS=y |
19 | CONFIG_SYS_SUPPORTS_PCI=y | 19 | CONFIG_SYS_SUPPORTS_PCI=y |
20 | CONFIG_STACKTRACE_SUPPORT=y | 20 | CONFIG_STACKTRACE_SUPPORT=y |
21 | CONFIG_LOCKDEP_SUPPORT=y | 21 | CONFIG_LOCKDEP_SUPPORT=y |
22 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
22 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 23 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
23 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 24 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
24 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 25 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
@@ -70,7 +71,9 @@ CONFIG_SIGNALFD=y | |||
70 | CONFIG_TIMERFD=y | 71 | CONFIG_TIMERFD=y |
71 | CONFIG_EVENTFD=y | 72 | CONFIG_EVENTFD=y |
72 | CONFIG_SHMEM=y | 73 | CONFIG_SHMEM=y |
74 | CONFIG_AIO=y | ||
73 | CONFIG_VM_EVENT_COUNTERS=y | 75 | CONFIG_VM_EVENT_COUNTERS=y |
76 | CONFIG_PCI_QUIRKS=y | ||
74 | CONFIG_SLAB=y | 77 | CONFIG_SLAB=y |
75 | # CONFIG_SLUB is not set | 78 | # CONFIG_SLUB is not set |
76 | # CONFIG_SLOB is not set | 79 | # CONFIG_SLOB is not set |
@@ -78,15 +81,12 @@ CONFIG_PROFILING=y | |||
78 | # CONFIG_MARKERS is not set | 81 | # CONFIG_MARKERS is not set |
79 | # CONFIG_OPROFILE is not set | 82 | # CONFIG_OPROFILE is not set |
80 | CONFIG_HAVE_OPROFILE=y | 83 | CONFIG_HAVE_OPROFILE=y |
81 | # CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set | 84 | # CONFIG_KPROBES is not set |
82 | # CONFIG_HAVE_IOREMAP_PROT is not set | 85 | CONFIG_HAVE_IOREMAP_PROT=y |
83 | # CONFIG_HAVE_KPROBES is not set | 86 | CONFIG_HAVE_KPROBES=y |
84 | # CONFIG_HAVE_KRETPROBES is not set | 87 | CONFIG_HAVE_KRETPROBES=y |
85 | # CONFIG_HAVE_ARCH_TRACEHOOK is not set | 88 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
86 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
87 | # CONFIG_USE_GENERIC_SMP_HELPERS is not set | ||
88 | CONFIG_HAVE_CLK=y | 89 | CONFIG_HAVE_CLK=y |
89 | CONFIG_PROC_PAGE_MONITOR=y | ||
90 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | 90 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
91 | CONFIG_SLABINFO=y | 91 | CONFIG_SLABINFO=y |
92 | CONFIG_RT_MUTEXES=y | 92 | CONFIG_RT_MUTEXES=y |
@@ -119,6 +119,7 @@ CONFIG_DEFAULT_AS=y | |||
119 | # CONFIG_DEFAULT_NOOP is not set | 119 | # CONFIG_DEFAULT_NOOP is not set |
120 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 120 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
121 | CONFIG_CLASSIC_RCU=y | 121 | CONFIG_CLASSIC_RCU=y |
122 | # CONFIG_FREEZER is not set | ||
122 | 123 | ||
123 | # | 124 | # |
124 | # System type | 125 | # System type |
@@ -192,12 +193,13 @@ CONFIG_FLATMEM_MANUAL=y | |||
192 | CONFIG_FLATMEM=y | 193 | CONFIG_FLATMEM=y |
193 | CONFIG_FLAT_NODE_MEM_MAP=y | 194 | CONFIG_FLAT_NODE_MEM_MAP=y |
194 | CONFIG_SPARSEMEM_STATIC=y | 195 | CONFIG_SPARSEMEM_STATIC=y |
195 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
196 | CONFIG_PAGEFLAGS_EXTENDED=y | 196 | CONFIG_PAGEFLAGS_EXTENDED=y |
197 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 197 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
198 | # CONFIG_RESOURCES_64BIT is not set | 198 | # CONFIG_RESOURCES_64BIT is not set |
199 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
199 | CONFIG_ZONE_DMA_FLAG=0 | 200 | CONFIG_ZONE_DMA_FLAG=0 |
200 | CONFIG_NR_QUICK=2 | 201 | CONFIG_NR_QUICK=2 |
202 | CONFIG_UNEVICTABLE_LRU=y | ||
201 | 203 | ||
202 | # | 204 | # |
203 | # Cache configuration | 205 | # Cache configuration |
@@ -230,7 +232,6 @@ CONFIG_SH_DREAMCAST=y | |||
230 | CONFIG_SH_TMU=y | 232 | CONFIG_SH_TMU=y |
231 | CONFIG_SH_TIMER_IRQ=16 | 233 | CONFIG_SH_TIMER_IRQ=16 |
232 | CONFIG_SH_PCLK_FREQ=49876504 | 234 | CONFIG_SH_PCLK_FREQ=49876504 |
233 | # CONFIG_TICK_ONESHOT is not set | ||
234 | # CONFIG_NO_HZ is not set | 235 | # CONFIG_NO_HZ is not set |
235 | # CONFIG_HIGH_RES_TIMERS is not set | 236 | # CONFIG_HIGH_RES_TIMERS is not set |
236 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | 237 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y |
@@ -318,6 +319,8 @@ CONFIG_PCI_LEGACY=y | |||
318 | # Executable file formats | 319 | # Executable file formats |
319 | # | 320 | # |
320 | CONFIG_BINFMT_ELF=y | 321 | CONFIG_BINFMT_ELF=y |
322 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
323 | # CONFIG_HAVE_AOUT is not set | ||
321 | # CONFIG_BINFMT_MISC is not set | 324 | # CONFIG_BINFMT_MISC is not set |
322 | CONFIG_NET=y | 325 | CONFIG_NET=y |
323 | 326 | ||
@@ -365,6 +368,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
365 | # CONFIG_TIPC is not set | 368 | # CONFIG_TIPC is not set |
366 | # CONFIG_ATM is not set | 369 | # CONFIG_ATM is not set |
367 | # CONFIG_BRIDGE is not set | 370 | # CONFIG_BRIDGE is not set |
371 | # CONFIG_NET_DSA is not set | ||
368 | # CONFIG_VLAN_8021Q is not set | 372 | # CONFIG_VLAN_8021Q is not set |
369 | # CONFIG_DECNET is not set | 373 | # CONFIG_DECNET is not set |
370 | # CONFIG_LLC2 is not set | 374 | # CONFIG_LLC2 is not set |
@@ -385,11 +389,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
385 | # CONFIG_IRDA is not set | 389 | # CONFIG_IRDA is not set |
386 | # CONFIG_BT is not set | 390 | # CONFIG_BT is not set |
387 | # CONFIG_AF_RXRPC is not set | 391 | # CONFIG_AF_RXRPC is not set |
388 | 392 | # CONFIG_PHONET is not set | |
389 | # | 393 | CONFIG_WIRELESS=y |
390 | # Wireless | ||
391 | # | ||
392 | # CONFIG_CFG80211 is not set | 394 | # CONFIG_CFG80211 is not set |
395 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
393 | # CONFIG_WIRELESS_EXT is not set | 396 | # CONFIG_WIRELESS_EXT is not set |
394 | # CONFIG_MAC80211 is not set | 397 | # CONFIG_MAC80211 is not set |
395 | # CONFIG_IEEE80211 is not set | 398 | # CONFIG_IEEE80211 is not set |
@@ -480,6 +483,9 @@ CONFIG_MII=y | |||
480 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 483 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
481 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 484 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
482 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 485 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
486 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
487 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
488 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
483 | CONFIG_NET_PCI=y | 489 | CONFIG_NET_PCI=y |
484 | # CONFIG_PCNET32 is not set | 490 | # CONFIG_PCNET32 is not set |
485 | # CONFIG_AMD8111_ETH is not set | 491 | # CONFIG_AMD8111_ETH is not set |
@@ -504,6 +510,7 @@ CONFIG_8139TOO=y | |||
504 | # CONFIG_TLAN is not set | 510 | # CONFIG_TLAN is not set |
505 | # CONFIG_VIA_RHINE is not set | 511 | # CONFIG_VIA_RHINE is not set |
506 | # CONFIG_SC92031 is not set | 512 | # CONFIG_SC92031 is not set |
513 | # CONFIG_ATL2 is not set | ||
507 | # CONFIG_NETDEV_1000 is not set | 514 | # CONFIG_NETDEV_1000 is not set |
508 | # CONFIG_NETDEV_10000 is not set | 515 | # CONFIG_NETDEV_10000 is not set |
509 | # CONFIG_TR is not set | 516 | # CONFIG_TR is not set |
@@ -559,6 +566,7 @@ CONFIG_INPUT_MOUSE=y | |||
559 | # CONFIG_MOUSE_PS2 is not set | 566 | # CONFIG_MOUSE_PS2 is not set |
560 | # CONFIG_MOUSE_SERIAL is not set | 567 | # CONFIG_MOUSE_SERIAL is not set |
561 | # CONFIG_MOUSE_APPLETOUCH is not set | 568 | # CONFIG_MOUSE_APPLETOUCH is not set |
569 | # CONFIG_MOUSE_BCM5974 is not set | ||
562 | # CONFIG_MOUSE_VSXXXAA is not set | 570 | # CONFIG_MOUSE_VSXXXAA is not set |
563 | # CONFIG_INPUT_JOYSTICK is not set | 571 | # CONFIG_INPUT_JOYSTICK is not set |
564 | # CONFIG_INPUT_TABLET is not set | 572 | # CONFIG_INPUT_TABLET is not set |
@@ -626,6 +634,7 @@ CONFIG_WATCHDOG=y | |||
626 | # Watchdog Device Drivers | 634 | # Watchdog Device Drivers |
627 | # | 635 | # |
628 | # CONFIG_SOFT_WATCHDOG is not set | 636 | # CONFIG_SOFT_WATCHDOG is not set |
637 | # CONFIG_ALIM7101_WDT is not set | ||
629 | CONFIG_SH_WDT=y | 638 | CONFIG_SH_WDT=y |
630 | # CONFIG_SH_WDT_MMAP is not set | 639 | # CONFIG_SH_WDT_MMAP is not set |
631 | 640 | ||
@@ -647,6 +656,8 @@ CONFIG_SSB_POSSIBLE=y | |||
647 | # CONFIG_MFD_CORE is not set | 656 | # CONFIG_MFD_CORE is not set |
648 | # CONFIG_MFD_SM501 is not set | 657 | # CONFIG_MFD_SM501 is not set |
649 | # CONFIG_HTC_PASIC3 is not set | 658 | # CONFIG_HTC_PASIC3 is not set |
659 | # CONFIG_MFD_TMIO is not set | ||
660 | # CONFIG_MFD_WM8400 is not set | ||
650 | 661 | ||
651 | # | 662 | # |
652 | # Multimedia devices | 663 | # Multimedia devices |
@@ -673,6 +684,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m | |||
673 | CONFIG_FB=y | 684 | CONFIG_FB=y |
674 | CONFIG_FIRMWARE_EDID=y | 685 | CONFIG_FIRMWARE_EDID=y |
675 | # CONFIG_FB_DDC is not set | 686 | # CONFIG_FB_DDC is not set |
687 | # CONFIG_FB_BOOT_VESA_SUPPORT is not set | ||
676 | CONFIG_FB_CFB_FILLRECT=y | 688 | CONFIG_FB_CFB_FILLRECT=y |
677 | CONFIG_FB_CFB_COPYAREA=y | 689 | CONFIG_FB_CFB_COPYAREA=y |
678 | CONFIG_FB_CFB_IMAGEBLIT=y | 690 | CONFIG_FB_CFB_IMAGEBLIT=y |
@@ -707,6 +719,7 @@ CONFIG_FB_PVR2=y | |||
707 | # CONFIG_FB_S3 is not set | 719 | # CONFIG_FB_S3 is not set |
708 | # CONFIG_FB_SAVAGE is not set | 720 | # CONFIG_FB_SAVAGE is not set |
709 | # CONFIG_FB_SIS is not set | 721 | # CONFIG_FB_SIS is not set |
722 | # CONFIG_FB_VIA is not set | ||
710 | # CONFIG_FB_NEOMAGIC is not set | 723 | # CONFIG_FB_NEOMAGIC is not set |
711 | # CONFIG_FB_KYRO is not set | 724 | # CONFIG_FB_KYRO is not set |
712 | # CONFIG_FB_3DFX is not set | 725 | # CONFIG_FB_3DFX is not set |
@@ -718,6 +731,7 @@ CONFIG_FB_PVR2=y | |||
718 | # CONFIG_FB_CARMINE is not set | 731 | # CONFIG_FB_CARMINE is not set |
719 | # CONFIG_FB_SH_MOBILE_LCDC is not set | 732 | # CONFIG_FB_SH_MOBILE_LCDC is not set |
720 | # CONFIG_FB_VIRTUAL is not set | 733 | # CONFIG_FB_VIRTUAL is not set |
734 | # CONFIG_FB_METRONOME is not set | ||
721 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 735 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
722 | 736 | ||
723 | # | 737 | # |
@@ -755,6 +769,12 @@ CONFIG_HID_SUPPORT=y | |||
755 | CONFIG_HID=y | 769 | CONFIG_HID=y |
756 | # CONFIG_HID_DEBUG is not set | 770 | # CONFIG_HID_DEBUG is not set |
757 | # CONFIG_HIDRAW is not set | 771 | # CONFIG_HIDRAW is not set |
772 | # CONFIG_HID_PID is not set | ||
773 | |||
774 | # | ||
775 | # Special HID drivers | ||
776 | # | ||
777 | CONFIG_HID_COMPAT=y | ||
758 | CONFIG_USB_SUPPORT=y | 778 | CONFIG_USB_SUPPORT=y |
759 | CONFIG_USB_ARCH_HAS_HCD=y | 779 | CONFIG_USB_ARCH_HAS_HCD=y |
760 | CONFIG_USB_ARCH_HAS_OHCI=y | 780 | CONFIG_USB_ARCH_HAS_OHCI=y |
@@ -764,6 +784,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
764 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | 784 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set |
765 | 785 | ||
766 | # | 786 | # |
787 | # Enable Host or Gadget support to see Inventra options | ||
788 | # | ||
789 | |||
790 | # | ||
767 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 791 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
768 | # | 792 | # |
769 | # CONFIG_USB_GADGET is not set | 793 | # CONFIG_USB_GADGET is not set |
@@ -775,16 +799,18 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
775 | # CONFIG_RTC_CLASS is not set | 799 | # CONFIG_RTC_CLASS is not set |
776 | # CONFIG_DMADEVICES is not set | 800 | # CONFIG_DMADEVICES is not set |
777 | # CONFIG_UIO is not set | 801 | # CONFIG_UIO is not set |
802 | # CONFIG_STAGING is not set | ||
778 | 803 | ||
779 | # | 804 | # |
780 | # File systems | 805 | # File systems |
781 | # | 806 | # |
782 | # CONFIG_EXT2_FS is not set | 807 | # CONFIG_EXT2_FS is not set |
783 | # CONFIG_EXT3_FS is not set | 808 | # CONFIG_EXT3_FS is not set |
784 | # CONFIG_EXT4DEV_FS is not set | 809 | # CONFIG_EXT4_FS is not set |
785 | # CONFIG_REISERFS_FS is not set | 810 | # CONFIG_REISERFS_FS is not set |
786 | # CONFIG_JFS_FS is not set | 811 | # CONFIG_JFS_FS is not set |
787 | # CONFIG_FS_POSIX_ACL is not set | 812 | # CONFIG_FS_POSIX_ACL is not set |
813 | CONFIG_FILE_LOCKING=y | ||
788 | # CONFIG_XFS_FS is not set | 814 | # CONFIG_XFS_FS is not set |
789 | # CONFIG_OCFS2_FS is not set | 815 | # CONFIG_OCFS2_FS is not set |
790 | # CONFIG_DNOTIFY is not set | 816 | # CONFIG_DNOTIFY is not set |
@@ -814,6 +840,7 @@ CONFIG_INOTIFY_USER=y | |||
814 | CONFIG_PROC_FS=y | 840 | CONFIG_PROC_FS=y |
815 | CONFIG_PROC_KCORE=y | 841 | CONFIG_PROC_KCORE=y |
816 | CONFIG_PROC_SYSCTL=y | 842 | CONFIG_PROC_SYSCTL=y |
843 | CONFIG_PROC_PAGE_MONITOR=y | ||
817 | CONFIG_SYSFS=y | 844 | CONFIG_SYSFS=y |
818 | CONFIG_TMPFS=y | 845 | CONFIG_TMPFS=y |
819 | # CONFIG_TMPFS_POSIX_ACL is not set | 846 | # CONFIG_TMPFS_POSIX_ACL is not set |
@@ -872,6 +899,11 @@ CONFIG_FRAME_WARN=1024 | |||
872 | # CONFIG_DEBUG_KERNEL is not set | 899 | # CONFIG_DEBUG_KERNEL is not set |
873 | # CONFIG_DEBUG_BUGVERBOSE is not set | 900 | # CONFIG_DEBUG_BUGVERBOSE is not set |
874 | # CONFIG_DEBUG_MEMORY_INIT is not set | 901 | # CONFIG_DEBUG_MEMORY_INIT is not set |
902 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
903 | # CONFIG_LATENCYTOP is not set | ||
904 | CONFIG_NOP_TRACER=y | ||
905 | CONFIG_HAVE_FTRACE=y | ||
906 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
875 | # CONFIG_SAMPLES is not set | 907 | # CONFIG_SAMPLES is not set |
876 | # CONFIG_SH_STANDARD_BIOS is not set | 908 | # CONFIG_SH_STANDARD_BIOS is not set |
877 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 909 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
@@ -882,12 +914,14 @@ CONFIG_FRAME_WARN=1024 | |||
882 | # | 914 | # |
883 | # CONFIG_KEYS is not set | 915 | # CONFIG_KEYS is not set |
884 | # CONFIG_SECURITY is not set | 916 | # CONFIG_SECURITY is not set |
917 | # CONFIG_SECURITYFS is not set | ||
885 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 918 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
886 | CONFIG_CRYPTO=y | 919 | CONFIG_CRYPTO=y |
887 | 920 | ||
888 | # | 921 | # |
889 | # Crypto core or helper | 922 | # Crypto core or helper |
890 | # | 923 | # |
924 | # CONFIG_CRYPTO_FIPS is not set | ||
891 | # CONFIG_CRYPTO_MANAGER is not set | 925 | # CONFIG_CRYPTO_MANAGER is not set |
892 | # CONFIG_CRYPTO_GF128MUL is not set | 926 | # CONFIG_CRYPTO_GF128MUL is not set |
893 | # CONFIG_CRYPTO_NULL is not set | 927 | # CONFIG_CRYPTO_NULL is not set |
@@ -960,6 +994,11 @@ CONFIG_CRYPTO=y | |||
960 | # | 994 | # |
961 | # CONFIG_CRYPTO_DEFLATE is not set | 995 | # CONFIG_CRYPTO_DEFLATE is not set |
962 | # CONFIG_CRYPTO_LZO is not set | 996 | # CONFIG_CRYPTO_LZO is not set |
997 | |||
998 | # | ||
999 | # Random Number Generation | ||
1000 | # | ||
1001 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
963 | CONFIG_CRYPTO_HW=y | 1002 | CONFIG_CRYPTO_HW=y |
964 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 1003 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
965 | 1004 | ||
@@ -967,7 +1006,6 @@ CONFIG_CRYPTO_HW=y | |||
967 | # Library routines | 1006 | # Library routines |
968 | # | 1007 | # |
969 | CONFIG_BITREVERSE=y | 1008 | CONFIG_BITREVERSE=y |
970 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
971 | # CONFIG_CRC_CCITT is not set | 1009 | # CONFIG_CRC_CCITT is not set |
972 | # CONFIG_CRC16 is not set | 1010 | # CONFIG_CRC16 is not set |
973 | # CONFIG_CRC_T10DIF is not set | 1011 | # CONFIG_CRC_T10DIF is not set |
diff --git a/arch/sh/configs/edosk7760_defconfig b/arch/sh/configs/edosk7760_defconfig index bef07fa8d858..158006847ad6 100644 --- a/arch/sh/configs/edosk7760_defconfig +++ b/arch/sh/configs/edosk7760_defconfig | |||
@@ -1,25 +1,27 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.26 | 3 | # Linux kernel version: 2.6.27 |
4 | # Tue Aug 26 11:36:09 2008 | 4 | # Wed Oct 22 18:20:09 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
8 | CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig" | ||
8 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
9 | CONFIG_GENERIC_BUG=y | 10 | CONFIG_GENERIC_BUG=y |
10 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
11 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
12 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
13 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
14 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
15 | CONFIG_GENERIC_TIME=y | 17 | CONFIG_GENERIC_TIME=y |
16 | CONFIG_GENERIC_CLOCKEVENTS=y | 18 | CONFIG_GENERIC_CLOCKEVENTS=y |
17 | CONFIG_STACKTRACE_SUPPORT=y | 19 | CONFIG_STACKTRACE_SUPPORT=y |
18 | CONFIG_LOCKDEP_SUPPORT=y | 20 | CONFIG_LOCKDEP_SUPPORT=y |
21 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
19 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 22 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
20 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 23 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
21 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 24 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
22 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
23 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 25 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
24 | 26 | ||
25 | # | 27 | # |
@@ -55,7 +57,6 @@ CONFIG_SYSCTL=y | |||
55 | CONFIG_EMBEDDED=y | 57 | CONFIG_EMBEDDED=y |
56 | CONFIG_UID16=y | 58 | CONFIG_UID16=y |
57 | CONFIG_SYSCTL_SYSCALL=y | 59 | CONFIG_SYSCTL_SYSCALL=y |
58 | CONFIG_SYSCTL_SYSCALL_CHECK=y | ||
59 | CONFIG_KALLSYMS=y | 60 | CONFIG_KALLSYMS=y |
60 | CONFIG_KALLSYMS_ALL=y | 61 | CONFIG_KALLSYMS_ALL=y |
61 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 62 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
@@ -72,7 +73,9 @@ CONFIG_SIGNALFD=y | |||
72 | CONFIG_TIMERFD=y | 73 | CONFIG_TIMERFD=y |
73 | CONFIG_EVENTFD=y | 74 | CONFIG_EVENTFD=y |
74 | CONFIG_SHMEM=y | 75 | CONFIG_SHMEM=y |
76 | CONFIG_AIO=y | ||
75 | CONFIG_VM_EVENT_COUNTERS=y | 77 | CONFIG_VM_EVENT_COUNTERS=y |
78 | CONFIG_PCI_QUIRKS=y | ||
76 | CONFIG_SLUB_DEBUG=y | 79 | CONFIG_SLUB_DEBUG=y |
77 | # CONFIG_SLAB is not set | 80 | # CONFIG_SLAB is not set |
78 | CONFIG_SLUB=y | 81 | CONFIG_SLUB=y |
@@ -80,10 +83,13 @@ CONFIG_SLUB=y | |||
80 | # CONFIG_PROFILING is not set | 83 | # CONFIG_PROFILING is not set |
81 | # CONFIG_MARKERS is not set | 84 | # CONFIG_MARKERS is not set |
82 | CONFIG_HAVE_OPROFILE=y | 85 | CONFIG_HAVE_OPROFILE=y |
83 | # CONFIG_HAVE_KPROBES is not set | 86 | # CONFIG_KPROBES is not set |
84 | # CONFIG_HAVE_KRETPROBES is not set | 87 | CONFIG_HAVE_IOREMAP_PROT=y |
85 | # CONFIG_HAVE_DMA_ATTRS is not set | 88 | CONFIG_HAVE_KPROBES=y |
86 | CONFIG_PROC_PAGE_MONITOR=y | 89 | CONFIG_HAVE_KRETPROBES=y |
90 | CONFIG_HAVE_ARCH_TRACEHOOK=y | ||
91 | CONFIG_HAVE_CLK=y | ||
92 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
87 | CONFIG_SLABINFO=y | 93 | CONFIG_SLABINFO=y |
88 | CONFIG_RT_MUTEXES=y | 94 | CONFIG_RT_MUTEXES=y |
89 | # CONFIG_TINY_SHMEM is not set | 95 | # CONFIG_TINY_SHMEM is not set |
@@ -100,6 +106,7 @@ CONFIG_BLOCK=y | |||
100 | # CONFIG_BLK_DEV_IO_TRACE is not set | 106 | # CONFIG_BLK_DEV_IO_TRACE is not set |
101 | # CONFIG_LSF is not set | 107 | # CONFIG_LSF is not set |
102 | # CONFIG_BLK_DEV_BSG is not set | 108 | # CONFIG_BLK_DEV_BSG is not set |
109 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
103 | 110 | ||
104 | # | 111 | # |
105 | # IO Schedulers | 112 | # IO Schedulers |
@@ -114,6 +121,7 @@ CONFIG_DEFAULT_CFQ=y | |||
114 | # CONFIG_DEFAULT_NOOP is not set | 121 | # CONFIG_DEFAULT_NOOP is not set |
115 | CONFIG_DEFAULT_IOSCHED="cfq" | 122 | CONFIG_DEFAULT_IOSCHED="cfq" |
116 | CONFIG_CLASSIC_RCU=y | 123 | CONFIG_CLASSIC_RCU=y |
124 | # CONFIG_FREEZER is not set | ||
117 | 125 | ||
118 | # | 126 | # |
119 | # System type | 127 | # System type |
@@ -171,7 +179,9 @@ CONFIG_ARCH_POPULATES_NODE_MAP=y | |||
171 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | 179 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y |
172 | CONFIG_PAGE_SIZE_4KB=y | 180 | CONFIG_PAGE_SIZE_4KB=y |
173 | # CONFIG_PAGE_SIZE_8KB is not set | 181 | # CONFIG_PAGE_SIZE_8KB is not set |
182 | # CONFIG_PAGE_SIZE_16KB is not set | ||
174 | # CONFIG_PAGE_SIZE_64KB is not set | 183 | # CONFIG_PAGE_SIZE_64KB is not set |
184 | CONFIG_ENTRY_OFFSET=0x00001000 | ||
175 | CONFIG_SELECT_MEMORY_MODEL=y | 185 | CONFIG_SELECT_MEMORY_MODEL=y |
176 | CONFIG_FLATMEM_MANUAL=y | 186 | CONFIG_FLATMEM_MANUAL=y |
177 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 187 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
@@ -179,12 +189,13 @@ CONFIG_FLATMEM_MANUAL=y | |||
179 | CONFIG_FLATMEM=y | 189 | CONFIG_FLATMEM=y |
180 | CONFIG_FLAT_NODE_MEM_MAP=y | 190 | CONFIG_FLAT_NODE_MEM_MAP=y |
181 | CONFIG_SPARSEMEM_STATIC=y | 191 | CONFIG_SPARSEMEM_STATIC=y |
182 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
183 | CONFIG_PAGEFLAGS_EXTENDED=y | 192 | CONFIG_PAGEFLAGS_EXTENDED=y |
184 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 193 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
185 | # CONFIG_RESOURCES_64BIT is not set | 194 | # CONFIG_RESOURCES_64BIT is not set |
195 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
186 | CONFIG_ZONE_DMA_FLAG=0 | 196 | CONFIG_ZONE_DMA_FLAG=0 |
187 | CONFIG_NR_QUICK=2 | 197 | CONFIG_NR_QUICK=2 |
198 | CONFIG_UNEVICTABLE_LRU=y | ||
188 | 199 | ||
189 | # | 200 | # |
190 | # Cache configuration | 201 | # Cache configuration |
@@ -254,9 +265,10 @@ CONFIG_HZ_250=y | |||
254 | # CONFIG_HZ_300 is not set | 265 | # CONFIG_HZ_300 is not set |
255 | # CONFIG_HZ_1000 is not set | 266 | # CONFIG_HZ_1000 is not set |
256 | CONFIG_HZ=250 | 267 | CONFIG_HZ=250 |
257 | # CONFIG_SCHED_HRTICK is not set | 268 | CONFIG_SCHED_HRTICK=y |
258 | # CONFIG_KEXEC is not set | 269 | # CONFIG_KEXEC is not set |
259 | # CONFIG_CRASH_DUMP is not set | 270 | # CONFIG_CRASH_DUMP is not set |
271 | # CONFIG_SECCOMP is not set | ||
260 | # CONFIG_PREEMPT_NONE is not set | 272 | # CONFIG_PREEMPT_NONE is not set |
261 | # CONFIG_PREEMPT_VOLUNTARY is not set | 273 | # CONFIG_PREEMPT_VOLUNTARY is not set |
262 | CONFIG_PREEMPT=y | 274 | CONFIG_PREEMPT=y |
@@ -283,11 +295,9 @@ CONFIG_CMDLINE="mem=64M console=ttySC2,115200 root=/dev/nfs rw nfsroot=192.168.0 | |||
283 | # Executable file formats | 295 | # Executable file formats |
284 | # | 296 | # |
285 | CONFIG_BINFMT_ELF=y | 297 | CONFIG_BINFMT_ELF=y |
298 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
299 | # CONFIG_HAVE_AOUT is not set | ||
286 | # CONFIG_BINFMT_MISC is not set | 300 | # CONFIG_BINFMT_MISC is not set |
287 | |||
288 | # | ||
289 | # Networking | ||
290 | # | ||
291 | CONFIG_NET=y | 301 | CONFIG_NET=y |
292 | 302 | ||
293 | # | 303 | # |
@@ -332,6 +342,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
332 | # CONFIG_TIPC is not set | 342 | # CONFIG_TIPC is not set |
333 | # CONFIG_ATM is not set | 343 | # CONFIG_ATM is not set |
334 | # CONFIG_BRIDGE is not set | 344 | # CONFIG_BRIDGE is not set |
345 | # CONFIG_NET_DSA is not set | ||
335 | # CONFIG_VLAN_8021Q is not set | 346 | # CONFIG_VLAN_8021Q is not set |
336 | # CONFIG_DECNET is not set | 347 | # CONFIG_DECNET is not set |
337 | # CONFIG_LLC2 is not set | 348 | # CONFIG_LLC2 is not set |
@@ -352,11 +363,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
352 | # CONFIG_IRDA is not set | 363 | # CONFIG_IRDA is not set |
353 | # CONFIG_BT is not set | 364 | # CONFIG_BT is not set |
354 | # CONFIG_AF_RXRPC is not set | 365 | # CONFIG_AF_RXRPC is not set |
355 | 366 | # CONFIG_PHONET is not set | |
356 | # | 367 | CONFIG_WIRELESS=y |
357 | # Wireless | ||
358 | # | ||
359 | # CONFIG_CFG80211 is not set | 368 | # CONFIG_CFG80211 is not set |
369 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
360 | # CONFIG_WIRELESS_EXT is not set | 370 | # CONFIG_WIRELESS_EXT is not set |
361 | # CONFIG_MAC80211 is not set | 371 | # CONFIG_MAC80211 is not set |
362 | # CONFIG_IEEE80211 is not set | 372 | # CONFIG_IEEE80211 is not set |
@@ -472,6 +482,7 @@ CONFIG_BLK_DEV_RAM_SIZE=26000 | |||
472 | # CONFIG_BLK_DEV_XIP is not set | 482 | # CONFIG_BLK_DEV_XIP is not set |
473 | # CONFIG_CDROM_PKTCDVD is not set | 483 | # CONFIG_CDROM_PKTCDVD is not set |
474 | # CONFIG_ATA_OVER_ETH is not set | 484 | # CONFIG_ATA_OVER_ETH is not set |
485 | # CONFIG_BLK_DEV_HD is not set | ||
475 | # CONFIG_MISC_DEVICES is not set | 486 | # CONFIG_MISC_DEVICES is not set |
476 | CONFIG_HAVE_IDE=y | 487 | CONFIG_HAVE_IDE=y |
477 | # CONFIG_IDE is not set | 488 | # CONFIG_IDE is not set |
@@ -486,7 +497,6 @@ CONFIG_HAVE_IDE=y | |||
486 | # CONFIG_ATA is not set | 497 | # CONFIG_ATA is not set |
487 | # CONFIG_MD is not set | 498 | # CONFIG_MD is not set |
488 | CONFIG_NETDEVICES=y | 499 | CONFIG_NETDEVICES=y |
489 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
490 | # CONFIG_DUMMY is not set | 500 | # CONFIG_DUMMY is not set |
491 | # CONFIG_BONDING is not set | 501 | # CONFIG_BONDING is not set |
492 | # CONFIG_MACVLAN is not set | 502 | # CONFIG_MACVLAN is not set |
@@ -498,12 +508,15 @@ CONFIG_NET_ETHERNET=y | |||
498 | CONFIG_MII=y | 508 | CONFIG_MII=y |
499 | # CONFIG_AX88796 is not set | 509 | # CONFIG_AX88796 is not set |
500 | # CONFIG_STNIC is not set | 510 | # CONFIG_STNIC is not set |
501 | # CONFIG_SMC9194 is not set | ||
502 | CONFIG_SMC91X=y | 511 | CONFIG_SMC91X=y |
512 | # CONFIG_SMC911X is not set | ||
503 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | 513 | # CONFIG_IBM_NEW_EMAC_ZMII is not set |
504 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 514 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
505 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 515 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
506 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 516 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
517 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
518 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
519 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
507 | # CONFIG_B44 is not set | 520 | # CONFIG_B44 is not set |
508 | # CONFIG_NETDEV_1000 is not set | 521 | # CONFIG_NETDEV_1000 is not set |
509 | # CONFIG_NETDEV_10000 is not set | 522 | # CONFIG_NETDEV_10000 is not set |
@@ -558,6 +571,7 @@ CONFIG_INPUT=y | |||
558 | # Character devices | 571 | # Character devices |
559 | # | 572 | # |
560 | CONFIG_VT=y | 573 | CONFIG_VT=y |
574 | CONFIG_CONSOLE_TRANSLATIONS=y | ||
561 | CONFIG_VT_CONSOLE=y | 575 | CONFIG_VT_CONSOLE=y |
562 | CONFIG_HW_CONSOLE=y | 576 | CONFIG_HW_CONSOLE=y |
563 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | 577 | # CONFIG_VT_HW_CONSOLE_BINDING is not set |
@@ -588,26 +602,41 @@ CONFIG_HW_RANDOM=y | |||
588 | CONFIG_I2C=y | 602 | CONFIG_I2C=y |
589 | CONFIG_I2C_BOARDINFO=y | 603 | CONFIG_I2C_BOARDINFO=y |
590 | CONFIG_I2C_CHARDEV=y | 604 | CONFIG_I2C_CHARDEV=y |
605 | CONFIG_I2C_HELPER_AUTO=y | ||
591 | 606 | ||
592 | # | 607 | # |
593 | # I2C Hardware Bus support | 608 | # I2C Hardware Bus support |
594 | # | 609 | # |
610 | |||
611 | # | ||
612 | # I2C system bus drivers (mostly embedded / system-on-chip) | ||
613 | # | ||
595 | # CONFIG_I2C_OCORES is not set | 614 | # CONFIG_I2C_OCORES is not set |
596 | # CONFIG_I2C_PARPORT_LIGHT is not set | 615 | CONFIG_I2C_SH7760=y |
616 | # CONFIG_I2C_SH_MOBILE is not set | ||
597 | # CONFIG_I2C_SIMTEC is not set | 617 | # CONFIG_I2C_SIMTEC is not set |
618 | |||
619 | # | ||
620 | # External I2C/SMBus adapter drivers | ||
621 | # | ||
622 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
598 | # CONFIG_I2C_TAOS_EVM is not set | 623 | # CONFIG_I2C_TAOS_EVM is not set |
599 | # CONFIG_I2C_STUB is not set | 624 | |
625 | # | ||
626 | # Other I2C/SMBus bus drivers | ||
627 | # | ||
600 | # CONFIG_I2C_PCA_PLATFORM is not set | 628 | # CONFIG_I2C_PCA_PLATFORM is not set |
601 | CONFIG_I2C_SH7760=y | 629 | # CONFIG_I2C_STUB is not set |
602 | # CONFIG_I2C_SH_MOBILE is not set | ||
603 | 630 | ||
604 | # | 631 | # |
605 | # Miscellaneous I2C Chip support | 632 | # Miscellaneous I2C Chip support |
606 | # | 633 | # |
607 | # CONFIG_DS1682 is not set | 634 | # CONFIG_DS1682 is not set |
635 | # CONFIG_AT24 is not set | ||
608 | # CONFIG_SENSORS_EEPROM is not set | 636 | # CONFIG_SENSORS_EEPROM is not set |
609 | # CONFIG_SENSORS_PCF8574 is not set | 637 | # CONFIG_SENSORS_PCF8574 is not set |
610 | # CONFIG_PCF8575 is not set | 638 | # CONFIG_PCF8575 is not set |
639 | # CONFIG_SENSORS_PCA9539 is not set | ||
611 | # CONFIG_SENSORS_PCF8591 is not set | 640 | # CONFIG_SENSORS_PCF8591 is not set |
612 | # CONFIG_SENSORS_MAX6875 is not set | 641 | # CONFIG_SENSORS_MAX6875 is not set |
613 | # CONFIG_SENSORS_TSL2550 is not set | 642 | # CONFIG_SENSORS_TSL2550 is not set |
@@ -632,8 +661,12 @@ CONFIG_SSB_POSSIBLE=y | |||
632 | # | 661 | # |
633 | # Multifunction device drivers | 662 | # Multifunction device drivers |
634 | # | 663 | # |
664 | # CONFIG_MFD_CORE is not set | ||
635 | # CONFIG_MFD_SM501 is not set | 665 | # CONFIG_MFD_SM501 is not set |
636 | # CONFIG_HTC_PASIC3 is not set | 666 | # CONFIG_HTC_PASIC3 is not set |
667 | # CONFIG_MFD_TMIO is not set | ||
668 | # CONFIG_MFD_WM8400 is not set | ||
669 | # CONFIG_MFD_WM8350_I2C is not set | ||
637 | 670 | ||
638 | # | 671 | # |
639 | # Multimedia devices | 672 | # Multimedia devices |
@@ -659,6 +692,7 @@ CONFIG_SSB_POSSIBLE=y | |||
659 | CONFIG_FB=m | 692 | CONFIG_FB=m |
660 | # CONFIG_FIRMWARE_EDID is not set | 693 | # CONFIG_FIRMWARE_EDID is not set |
661 | # CONFIG_FB_DDC is not set | 694 | # CONFIG_FB_DDC is not set |
695 | # CONFIG_FB_BOOT_VESA_SUPPORT is not set | ||
662 | CONFIG_FB_CFB_FILLRECT=m | 696 | CONFIG_FB_CFB_FILLRECT=m |
663 | CONFIG_FB_CFB_COPYAREA=m | 697 | CONFIG_FB_CFB_COPYAREA=m |
664 | CONFIG_FB_CFB_IMAGEBLIT=m | 698 | CONFIG_FB_CFB_IMAGEBLIT=m |
@@ -677,9 +711,11 @@ CONFIG_FB_TILEBLITTING=y | |||
677 | # | 711 | # |
678 | # Frame buffer hardware drivers | 712 | # Frame buffer hardware drivers |
679 | # | 713 | # |
680 | # CONFIG_FB_MB86290_640X480_16BPP is not set | ||
681 | # CONFIG_FB_S1D13XXX is not set | 714 | # CONFIG_FB_S1D13XXX is not set |
715 | CONFIG_FB_SH_MOBILE_LCDC=m | ||
716 | # CONFIG_FB_SH7760 is not set | ||
682 | # CONFIG_FB_VIRTUAL is not set | 717 | # CONFIG_FB_VIRTUAL is not set |
718 | # CONFIG_FB_METRONOME is not set | ||
683 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 719 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
684 | 720 | ||
685 | # | 721 | # |
@@ -693,15 +729,8 @@ CONFIG_FB_TILEBLITTING=y | |||
693 | CONFIG_DUMMY_CONSOLE=y | 729 | CONFIG_DUMMY_CONSOLE=y |
694 | # CONFIG_FRAMEBUFFER_CONSOLE is not set | 730 | # CONFIG_FRAMEBUFFER_CONSOLE is not set |
695 | # CONFIG_LOGO is not set | 731 | # CONFIG_LOGO is not set |
696 | |||
697 | # | ||
698 | # Sound | ||
699 | # | ||
700 | CONFIG_SOUND=y | 732 | CONFIG_SOUND=y |
701 | 733 | # CONFIG_SOUND_OSS_CORE is not set | |
702 | # | ||
703 | # Advanced Linux Sound Architecture | ||
704 | # | ||
705 | CONFIG_SND=y | 734 | CONFIG_SND=y |
706 | CONFIG_SND_TIMER=y | 735 | CONFIG_SND_TIMER=y |
707 | CONFIG_SND_PCM=y | 736 | CONFIG_SND_PCM=y |
@@ -713,39 +742,18 @@ CONFIG_SND_PCM=y | |||
713 | # CONFIG_SND_VERBOSE_PROCFS is not set | 742 | # CONFIG_SND_VERBOSE_PROCFS is not set |
714 | CONFIG_SND_VERBOSE_PRINTK=y | 743 | CONFIG_SND_VERBOSE_PRINTK=y |
715 | # CONFIG_SND_DEBUG is not set | 744 | # CONFIG_SND_DEBUG is not set |
716 | 745 | CONFIG_SND_DRIVERS=y | |
717 | # | ||
718 | # Generic devices | ||
719 | # | ||
720 | # CONFIG_SND_DUMMY is not set | 746 | # CONFIG_SND_DUMMY is not set |
721 | # CONFIG_SND_MTPAV is not set | 747 | # CONFIG_SND_MTPAV is not set |
722 | # CONFIG_SND_SERIAL_U16550 is not set | 748 | # CONFIG_SND_SERIAL_U16550 is not set |
723 | # CONFIG_SND_MPU401 is not set | 749 | # CONFIG_SND_MPU401 is not set |
724 | 750 | CONFIG_SND_SUPERH=y | |
725 | # | ||
726 | # SUPERH devices | ||
727 | # | ||
728 | |||
729 | # | ||
730 | # System on Chip audio support | ||
731 | # | ||
732 | CONFIG_SND_SOC=y | 751 | CONFIG_SND_SOC=y |
733 | 752 | ||
734 | # | 753 | # |
735 | # SoC Audio support for SuperH | 754 | # SoC Audio support for SuperH |
736 | # | 755 | # |
737 | 756 | # CONFIG_SND_SOC_ALL_CODECS is not set | |
738 | # | ||
739 | # ALSA SoC audio for Freescale SOCs | ||
740 | # | ||
741 | |||
742 | # | ||
743 | # SoC Audio for the Texas Instruments OMAP | ||
744 | # | ||
745 | |||
746 | # | ||
747 | # Open Sound System | ||
748 | # | ||
749 | # CONFIG_SOUND_PRIME is not set | 757 | # CONFIG_SOUND_PRIME is not set |
750 | # CONFIG_HID_SUPPORT is not set | 758 | # CONFIG_HID_SUPPORT is not set |
751 | # CONFIG_USB_SUPPORT is not set | 759 | # CONFIG_USB_SUPPORT is not set |
@@ -754,7 +762,9 @@ CONFIG_SND_SOC=y | |||
754 | # CONFIG_NEW_LEDS is not set | 762 | # CONFIG_NEW_LEDS is not set |
755 | # CONFIG_ACCESSIBILITY is not set | 763 | # CONFIG_ACCESSIBILITY is not set |
756 | # CONFIG_RTC_CLASS is not set | 764 | # CONFIG_RTC_CLASS is not set |
765 | # CONFIG_DMADEVICES is not set | ||
757 | # CONFIG_UIO is not set | 766 | # CONFIG_UIO is not set |
767 | # CONFIG_STAGING is not set | ||
758 | 768 | ||
759 | # | 769 | # |
760 | # File systems | 770 | # File systems |
@@ -764,17 +774,18 @@ CONFIG_EXT2_FS_XATTR=y | |||
764 | # CONFIG_EXT2_FS_POSIX_ACL is not set | 774 | # CONFIG_EXT2_FS_POSIX_ACL is not set |
765 | # CONFIG_EXT2_FS_SECURITY is not set | 775 | # CONFIG_EXT2_FS_SECURITY is not set |
766 | CONFIG_EXT2_FS_XIP=y | 776 | CONFIG_EXT2_FS_XIP=y |
767 | CONFIG_FS_XIP=y | ||
768 | CONFIG_EXT3_FS=y | 777 | CONFIG_EXT3_FS=y |
769 | CONFIG_EXT3_FS_XATTR=y | 778 | CONFIG_EXT3_FS_XATTR=y |
770 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 779 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
771 | # CONFIG_EXT3_FS_SECURITY is not set | 780 | # CONFIG_EXT3_FS_SECURITY is not set |
772 | # CONFIG_EXT4DEV_FS is not set | 781 | # CONFIG_EXT4_FS is not set |
782 | CONFIG_FS_XIP=y | ||
773 | CONFIG_JBD=y | 783 | CONFIG_JBD=y |
774 | CONFIG_FS_MBCACHE=y | 784 | CONFIG_FS_MBCACHE=y |
775 | # CONFIG_REISERFS_FS is not set | 785 | # CONFIG_REISERFS_FS is not set |
776 | # CONFIG_JFS_FS is not set | 786 | # CONFIG_JFS_FS is not set |
777 | CONFIG_FS_POSIX_ACL=y | 787 | CONFIG_FS_POSIX_ACL=y |
788 | CONFIG_FILE_LOCKING=y | ||
778 | # CONFIG_XFS_FS is not set | 789 | # CONFIG_XFS_FS is not set |
779 | # CONFIG_OCFS2_FS is not set | 790 | # CONFIG_OCFS2_FS is not set |
780 | CONFIG_DNOTIFY=y | 791 | CONFIG_DNOTIFY=y |
@@ -805,6 +816,7 @@ CONFIG_GENERIC_ACL=y | |||
805 | CONFIG_PROC_FS=y | 816 | CONFIG_PROC_FS=y |
806 | # CONFIG_PROC_KCORE is not set | 817 | # CONFIG_PROC_KCORE is not set |
807 | CONFIG_PROC_SYSCTL=y | 818 | CONFIG_PROC_SYSCTL=y |
819 | CONFIG_PROC_PAGE_MONITOR=y | ||
808 | CONFIG_SYSFS=y | 820 | CONFIG_SYSFS=y |
809 | CONFIG_TMPFS=y | 821 | CONFIG_TMPFS=y |
810 | CONFIG_TMPFS_POSIX_ACL=y | 822 | CONFIG_TMPFS_POSIX_ACL=y |
@@ -826,6 +838,7 @@ CONFIG_TMPFS_POSIX_ACL=y | |||
826 | # CONFIG_CRAMFS is not set | 838 | # CONFIG_CRAMFS is not set |
827 | # CONFIG_VXFS_FS is not set | 839 | # CONFIG_VXFS_FS is not set |
828 | # CONFIG_MINIX_FS is not set | 840 | # CONFIG_MINIX_FS is not set |
841 | # CONFIG_OMFS_FS is not set | ||
829 | # CONFIG_HPFS_FS is not set | 842 | # CONFIG_HPFS_FS is not set |
830 | # CONFIG_QNX4FS_FS is not set | 843 | # CONFIG_QNX4FS_FS is not set |
831 | # CONFIG_ROMFS_FS is not set | 844 | # CONFIG_ROMFS_FS is not set |
@@ -835,12 +848,12 @@ CONFIG_NETWORK_FILESYSTEMS=y | |||
835 | CONFIG_NFS_FS=y | 848 | CONFIG_NFS_FS=y |
836 | # CONFIG_NFS_V3 is not set | 849 | # CONFIG_NFS_V3 is not set |
837 | # CONFIG_NFS_V4 is not set | 850 | # CONFIG_NFS_V4 is not set |
838 | # CONFIG_NFSD is not set | ||
839 | CONFIG_ROOT_NFS=y | 851 | CONFIG_ROOT_NFS=y |
852 | # CONFIG_NFSD is not set | ||
840 | CONFIG_LOCKD=y | 853 | CONFIG_LOCKD=y |
841 | CONFIG_NFS_COMMON=y | 854 | CONFIG_NFS_COMMON=y |
842 | CONFIG_SUNRPC=y | 855 | CONFIG_SUNRPC=y |
843 | # CONFIG_SUNRPC_BIND34 is not set | 856 | # CONFIG_SUNRPC_REGISTER_V4 is not set |
844 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 857 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
845 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 858 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
846 | # CONFIG_SMB_FS is not set | 859 | # CONFIG_SMB_FS is not set |
@@ -911,6 +924,8 @@ CONFIG_UNUSED_SYMBOLS=y | |||
911 | CONFIG_DEBUG_KERNEL=y | 924 | CONFIG_DEBUG_KERNEL=y |
912 | CONFIG_DEBUG_SHIRQ=y | 925 | CONFIG_DEBUG_SHIRQ=y |
913 | CONFIG_DETECT_SOFTLOCKUP=y | 926 | CONFIG_DETECT_SOFTLOCKUP=y |
927 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | ||
928 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | ||
914 | # CONFIG_SCHED_DEBUG is not set | 929 | # CONFIG_SCHED_DEBUG is not set |
915 | # CONFIG_SCHEDSTATS is not set | 930 | # CONFIG_SCHEDSTATS is not set |
916 | CONFIG_TIMER_STATS=y | 931 | CONFIG_TIMER_STATS=y |
@@ -932,13 +947,27 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
932 | CONFIG_DEBUG_INFO=y | 947 | CONFIG_DEBUG_INFO=y |
933 | # CONFIG_DEBUG_VM is not set | 948 | # CONFIG_DEBUG_VM is not set |
934 | # CONFIG_DEBUG_WRITECOUNT is not set | 949 | # CONFIG_DEBUG_WRITECOUNT is not set |
950 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
935 | # CONFIG_DEBUG_LIST is not set | 951 | # CONFIG_DEBUG_LIST is not set |
936 | # CONFIG_DEBUG_SG is not set | 952 | # CONFIG_DEBUG_SG is not set |
937 | # CONFIG_FRAME_POINTER is not set | 953 | # CONFIG_FRAME_POINTER is not set |
938 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
939 | # CONFIG_RCU_TORTURE_TEST is not set | 954 | # CONFIG_RCU_TORTURE_TEST is not set |
955 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
940 | # CONFIG_BACKTRACE_SELF_TEST is not set | 956 | # CONFIG_BACKTRACE_SELF_TEST is not set |
957 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
941 | # CONFIG_FAULT_INJECTION is not set | 958 | # CONFIG_FAULT_INJECTION is not set |
959 | # CONFIG_LATENCYTOP is not set | ||
960 | CONFIG_SYSCTL_SYSCALL_CHECK=y | ||
961 | CONFIG_NOP_TRACER=y | ||
962 | CONFIG_HAVE_FTRACE=y | ||
963 | # CONFIG_FTRACE is not set | ||
964 | # CONFIG_IRQSOFF_TRACER is not set | ||
965 | # CONFIG_PREEMPT_TRACER is not set | ||
966 | # CONFIG_SCHED_TRACER is not set | ||
967 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
968 | # CONFIG_BOOT_TRACER is not set | ||
969 | # CONFIG_STACK_TRACER is not set | ||
970 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
942 | # CONFIG_SAMPLES is not set | 971 | # CONFIG_SAMPLES is not set |
943 | # CONFIG_SH_STANDARD_BIOS is not set | 972 | # CONFIG_SH_STANDARD_BIOS is not set |
944 | CONFIG_EARLY_SCIF_CONSOLE=y | 973 | CONFIG_EARLY_SCIF_CONSOLE=y |
@@ -956,12 +985,14 @@ CONFIG_DEBUG_STACKOVERFLOW=y | |||
956 | # | 985 | # |
957 | # CONFIG_KEYS is not set | 986 | # CONFIG_KEYS is not set |
958 | # CONFIG_SECURITY is not set | 987 | # CONFIG_SECURITY is not set |
988 | # CONFIG_SECURITYFS is not set | ||
959 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 989 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
960 | CONFIG_CRYPTO=y | 990 | CONFIG_CRYPTO=y |
961 | 991 | ||
962 | # | 992 | # |
963 | # Crypto core or helper | 993 | # Crypto core or helper |
964 | # | 994 | # |
995 | # CONFIG_CRYPTO_FIPS is not set | ||
965 | CONFIG_CRYPTO_ALGAPI=y | 996 | CONFIG_CRYPTO_ALGAPI=y |
966 | # CONFIG_CRYPTO_MANAGER is not set | 997 | # CONFIG_CRYPTO_MANAGER is not set |
967 | # CONFIG_CRYPTO_GF128MUL is not set | 998 | # CONFIG_CRYPTO_GF128MUL is not set |
@@ -1001,6 +1032,10 @@ CONFIG_CRYPTO_ALGAPI=y | |||
1001 | # CONFIG_CRYPTO_MD4 is not set | 1032 | # CONFIG_CRYPTO_MD4 is not set |
1002 | CONFIG_CRYPTO_MD5=y | 1033 | CONFIG_CRYPTO_MD5=y |
1003 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1034 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
1035 | # CONFIG_CRYPTO_RMD128 is not set | ||
1036 | # CONFIG_CRYPTO_RMD160 is not set | ||
1037 | # CONFIG_CRYPTO_RMD256 is not set | ||
1038 | # CONFIG_CRYPTO_RMD320 is not set | ||
1004 | # CONFIG_CRYPTO_SHA1 is not set | 1039 | # CONFIG_CRYPTO_SHA1 is not set |
1005 | # CONFIG_CRYPTO_SHA256 is not set | 1040 | # CONFIG_CRYPTO_SHA256 is not set |
1006 | # CONFIG_CRYPTO_SHA512 is not set | 1041 | # CONFIG_CRYPTO_SHA512 is not set |
@@ -1031,15 +1066,20 @@ CONFIG_CRYPTO_DES=y | |||
1031 | # | 1066 | # |
1032 | # CONFIG_CRYPTO_DEFLATE is not set | 1067 | # CONFIG_CRYPTO_DEFLATE is not set |
1033 | # CONFIG_CRYPTO_LZO is not set | 1068 | # CONFIG_CRYPTO_LZO is not set |
1069 | |||
1070 | # | ||
1071 | # Random Number Generation | ||
1072 | # | ||
1073 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
1034 | CONFIG_CRYPTO_HW=y | 1074 | CONFIG_CRYPTO_HW=y |
1035 | 1075 | ||
1036 | # | 1076 | # |
1037 | # Library routines | 1077 | # Library routines |
1038 | # | 1078 | # |
1039 | CONFIG_BITREVERSE=y | 1079 | CONFIG_BITREVERSE=y |
1040 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
1041 | # CONFIG_CRC_CCITT is not set | 1080 | # CONFIG_CRC_CCITT is not set |
1042 | # CONFIG_CRC16 is not set | 1081 | # CONFIG_CRC16 is not set |
1082 | # CONFIG_CRC_T10DIF is not set | ||
1043 | # CONFIG_CRC_ITU_T is not set | 1083 | # CONFIG_CRC_ITU_T is not set |
1044 | CONFIG_CRC32=y | 1084 | CONFIG_CRC32=y |
1045 | # CONFIG_CRC7 is not set | 1085 | # CONFIG_CRC7 is not set |
diff --git a/arch/sh/configs/hp6xx_defconfig b/arch/sh/configs/hp6xx_defconfig index 41e25b3a5b01..1032b235f080 100644 --- a/arch/sh/configs/hp6xx_defconfig +++ b/arch/sh/configs/hp6xx_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.26 | 3 | # Linux kernel version: 2.6.27 |
4 | # Wed Jul 30 01:24:57 2008 | 4 | # Wed Oct 22 18:23:53 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -11,18 +11,19 @@ CONFIG_GENERIC_BUG=y | |||
11 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
12 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
13 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
14 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
15 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
16 | CONFIG_GENERIC_TIME=y | 17 | CONFIG_GENERIC_TIME=y |
17 | CONFIG_GENERIC_CLOCKEVENTS=y | 18 | CONFIG_GENERIC_CLOCKEVENTS=y |
18 | CONFIG_SYS_SUPPORTS_PM=y | 19 | CONFIG_SYS_SUPPORTS_PM=y |
19 | CONFIG_SYS_SUPPORTS_APM_EMULATION=y | 20 | CONFIG_SYS_SUPPORTS_APM_EMULATION=y |
20 | CONFIG_STACKTRACE_SUPPORT=y | 21 | CONFIG_STACKTRACE_SUPPORT=y |
21 | CONFIG_LOCKDEP_SUPPORT=y | 22 | CONFIG_LOCKDEP_SUPPORT=y |
23 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
22 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 24 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
23 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 25 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
24 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 26 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
25 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
26 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 27 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
27 | 28 | ||
28 | # | 29 | # |
@@ -67,22 +68,21 @@ CONFIG_SIGNALFD=y | |||
67 | CONFIG_TIMERFD=y | 68 | CONFIG_TIMERFD=y |
68 | CONFIG_EVENTFD=y | 69 | CONFIG_EVENTFD=y |
69 | CONFIG_SHMEM=y | 70 | CONFIG_SHMEM=y |
71 | CONFIG_AIO=y | ||
70 | CONFIG_VM_EVENT_COUNTERS=y | 72 | CONFIG_VM_EVENT_COUNTERS=y |
73 | CONFIG_PCI_QUIRKS=y | ||
71 | CONFIG_SLAB=y | 74 | CONFIG_SLAB=y |
72 | # CONFIG_SLUB is not set | 75 | # CONFIG_SLUB is not set |
73 | # CONFIG_SLOB is not set | 76 | # CONFIG_SLOB is not set |
74 | # CONFIG_PROFILING is not set | 77 | # CONFIG_PROFILING is not set |
75 | # CONFIG_MARKERS is not set | 78 | # CONFIG_MARKERS is not set |
76 | CONFIG_HAVE_OPROFILE=y | 79 | CONFIG_HAVE_OPROFILE=y |
77 | # CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set | 80 | CONFIG_HAVE_IOREMAP_PROT=y |
78 | # CONFIG_HAVE_IOREMAP_PROT is not set | 81 | CONFIG_HAVE_KPROBES=y |
79 | # CONFIG_HAVE_KPROBES is not set | 82 | CONFIG_HAVE_KRETPROBES=y |
80 | # CONFIG_HAVE_KRETPROBES is not set | 83 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
81 | # CONFIG_HAVE_ARCH_TRACEHOOK is not set | ||
82 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
83 | # CONFIG_USE_GENERIC_SMP_HELPERS is not set | ||
84 | CONFIG_HAVE_CLK=y | 84 | CONFIG_HAVE_CLK=y |
85 | CONFIG_PROC_PAGE_MONITOR=y | 85 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
86 | CONFIG_SLABINFO=y | 86 | CONFIG_SLABINFO=y |
87 | CONFIG_RT_MUTEXES=y | 87 | CONFIG_RT_MUTEXES=y |
88 | # CONFIG_TINY_SHMEM is not set | 88 | # CONFIG_TINY_SHMEM is not set |
@@ -108,6 +108,7 @@ CONFIG_DEFAULT_AS=y | |||
108 | # CONFIG_DEFAULT_NOOP is not set | 108 | # CONFIG_DEFAULT_NOOP is not set |
109 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 109 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
110 | CONFIG_CLASSIC_RCU=y | 110 | CONFIG_CLASSIC_RCU=y |
111 | CONFIG_FREEZER=y | ||
111 | 112 | ||
112 | # | 113 | # |
113 | # System type | 114 | # System type |
@@ -175,12 +176,13 @@ CONFIG_FLATMEM_MANUAL=y | |||
175 | CONFIG_FLATMEM=y | 176 | CONFIG_FLATMEM=y |
176 | CONFIG_FLAT_NODE_MEM_MAP=y | 177 | CONFIG_FLAT_NODE_MEM_MAP=y |
177 | CONFIG_SPARSEMEM_STATIC=y | 178 | CONFIG_SPARSEMEM_STATIC=y |
178 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
179 | CONFIG_PAGEFLAGS_EXTENDED=y | 179 | CONFIG_PAGEFLAGS_EXTENDED=y |
180 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 180 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
181 | # CONFIG_RESOURCES_64BIT is not set | 181 | # CONFIG_RESOURCES_64BIT is not set |
182 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
182 | CONFIG_ZONE_DMA_FLAG=0 | 183 | CONFIG_ZONE_DMA_FLAG=0 |
183 | CONFIG_NR_QUICK=2 | 184 | CONFIG_NR_QUICK=2 |
185 | CONFIG_UNEVICTABLE_LRU=y | ||
184 | 186 | ||
185 | # | 187 | # |
186 | # Cache configuration | 188 | # Cache configuration |
@@ -212,7 +214,6 @@ CONFIG_SH_HP6XX=y | |||
212 | CONFIG_SH_TMU=y | 214 | CONFIG_SH_TMU=y |
213 | CONFIG_SH_TIMER_IRQ=16 | 215 | CONFIG_SH_TIMER_IRQ=16 |
214 | CONFIG_SH_PCLK_FREQ=22110000 | 216 | CONFIG_SH_PCLK_FREQ=22110000 |
215 | # CONFIG_TICK_ONESHOT is not set | ||
216 | # CONFIG_NO_HZ is not set | 217 | # CONFIG_NO_HZ is not set |
217 | # CONFIG_HIGH_RES_TIMERS is not set | 218 | # CONFIG_HIGH_RES_TIMERS is not set |
218 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | 219 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y |
@@ -257,6 +258,7 @@ CONFIG_HZ=250 | |||
257 | # CONFIG_SCHED_HRTICK is not set | 258 | # CONFIG_SCHED_HRTICK is not set |
258 | # CONFIG_KEXEC is not set | 259 | # CONFIG_KEXEC is not set |
259 | # CONFIG_CRASH_DUMP is not set | 260 | # CONFIG_CRASH_DUMP is not set |
261 | # CONFIG_SECCOMP is not set | ||
260 | CONFIG_PREEMPT_NONE=y | 262 | CONFIG_PREEMPT_NONE=y |
261 | # CONFIG_PREEMPT_VOLUNTARY is not set | 263 | # CONFIG_PREEMPT_VOLUNTARY is not set |
262 | # CONFIG_PREEMPT is not set | 264 | # CONFIG_PREEMPT is not set |
@@ -292,6 +294,8 @@ CONFIG_PCMCIA_PROBE=y | |||
292 | # Executable file formats | 294 | # Executable file formats |
293 | # | 295 | # |
294 | CONFIG_BINFMT_ELF=y | 296 | CONFIG_BINFMT_ELF=y |
297 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
298 | # CONFIG_HAVE_AOUT is not set | ||
295 | # CONFIG_BINFMT_MISC is not set | 299 | # CONFIG_BINFMT_MISC is not set |
296 | 300 | ||
297 | # | 301 | # |
@@ -304,10 +308,6 @@ CONFIG_PM_SLEEP=y | |||
304 | CONFIG_SUSPEND=y | 308 | CONFIG_SUSPEND=y |
305 | CONFIG_SUSPEND_FREEZER=y | 309 | CONFIG_SUSPEND_FREEZER=y |
306 | CONFIG_APM_EMULATION=y | 310 | CONFIG_APM_EMULATION=y |
307 | |||
308 | # | ||
309 | # Networking | ||
310 | # | ||
311 | # CONFIG_NET is not set | 311 | # CONFIG_NET is not set |
312 | 312 | ||
313 | # | 313 | # |
@@ -446,7 +446,6 @@ CONFIG_TOUCHSCREEN_HP600=y | |||
446 | # CONFIG_TOUCHSCREEN_PENMOUNT is not set | 446 | # CONFIG_TOUCHSCREEN_PENMOUNT is not set |
447 | # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set | 447 | # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set |
448 | # CONFIG_TOUCHSCREEN_TOUCHWIN is not set | 448 | # CONFIG_TOUCHSCREEN_TOUCHWIN is not set |
449 | # CONFIG_TOUCHSCREEN_UCB1400 is not set | ||
450 | # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set | 449 | # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set |
451 | # CONFIG_INPUT_MISC is not set | 450 | # CONFIG_INPUT_MISC is not set |
452 | 451 | ||
@@ -522,6 +521,8 @@ CONFIG_SSB_POSSIBLE=y | |||
522 | # CONFIG_MFD_CORE is not set | 521 | # CONFIG_MFD_CORE is not set |
523 | # CONFIG_MFD_SM501 is not set | 522 | # CONFIG_MFD_SM501 is not set |
524 | # CONFIG_HTC_PASIC3 is not set | 523 | # CONFIG_HTC_PASIC3 is not set |
524 | # CONFIG_MFD_TMIO is not set | ||
525 | # CONFIG_MFD_WM8400 is not set | ||
525 | 526 | ||
526 | # | 527 | # |
527 | # Multimedia devices | 528 | # Multimedia devices |
@@ -546,6 +547,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y | |||
546 | CONFIG_FB=y | 547 | CONFIG_FB=y |
547 | CONFIG_FIRMWARE_EDID=y | 548 | CONFIG_FIRMWARE_EDID=y |
548 | # CONFIG_FB_DDC is not set | 549 | # CONFIG_FB_DDC is not set |
550 | # CONFIG_FB_BOOT_VESA_SUPPORT is not set | ||
549 | CONFIG_FB_CFB_FILLRECT=y | 551 | CONFIG_FB_CFB_FILLRECT=y |
550 | CONFIG_FB_CFB_COPYAREA=y | 552 | CONFIG_FB_CFB_COPYAREA=y |
551 | CONFIG_FB_CFB_IMAGEBLIT=y | 553 | CONFIG_FB_CFB_IMAGEBLIT=y |
@@ -568,6 +570,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y | |||
568 | CONFIG_FB_HIT=y | 570 | CONFIG_FB_HIT=y |
569 | CONFIG_FB_SH_MOBILE_LCDC=y | 571 | CONFIG_FB_SH_MOBILE_LCDC=y |
570 | # CONFIG_FB_VIRTUAL is not set | 572 | # CONFIG_FB_VIRTUAL is not set |
573 | # CONFIG_FB_METRONOME is not set | ||
571 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | 574 | CONFIG_BACKLIGHT_LCD_SUPPORT=y |
572 | CONFIG_LCD_CLASS_DEVICE=y | 575 | CONFIG_LCD_CLASS_DEVICE=y |
573 | # CONFIG_LCD_ILI9320 is not set | 576 | # CONFIG_LCD_ILI9320 is not set |
@@ -630,12 +633,15 @@ CONFIG_RTC_INTF_DEV=y | |||
630 | # | 633 | # |
631 | # Platform RTC drivers | 634 | # Platform RTC drivers |
632 | # | 635 | # |
636 | # CONFIG_RTC_DRV_DS1286 is not set | ||
633 | # CONFIG_RTC_DRV_DS1511 is not set | 637 | # CONFIG_RTC_DRV_DS1511 is not set |
634 | # CONFIG_RTC_DRV_DS1553 is not set | 638 | # CONFIG_RTC_DRV_DS1553 is not set |
635 | # CONFIG_RTC_DRV_DS1742 is not set | 639 | # CONFIG_RTC_DRV_DS1742 is not set |
636 | # CONFIG_RTC_DRV_STK17TA8 is not set | 640 | # CONFIG_RTC_DRV_STK17TA8 is not set |
637 | # CONFIG_RTC_DRV_M48T86 is not set | 641 | # CONFIG_RTC_DRV_M48T86 is not set |
642 | # CONFIG_RTC_DRV_M48T35 is not set | ||
638 | # CONFIG_RTC_DRV_M48T59 is not set | 643 | # CONFIG_RTC_DRV_M48T59 is not set |
644 | # CONFIG_RTC_DRV_BQ4802 is not set | ||
639 | # CONFIG_RTC_DRV_V3020 is not set | 645 | # CONFIG_RTC_DRV_V3020 is not set |
640 | 646 | ||
641 | # | 647 | # |
@@ -644,6 +650,7 @@ CONFIG_RTC_INTF_DEV=y | |||
644 | CONFIG_RTC_DRV_SH=y | 650 | CONFIG_RTC_DRV_SH=y |
645 | # CONFIG_DMADEVICES is not set | 651 | # CONFIG_DMADEVICES is not set |
646 | # CONFIG_UIO is not set | 652 | # CONFIG_UIO is not set |
653 | # CONFIG_STAGING is not set | ||
647 | 654 | ||
648 | # | 655 | # |
649 | # File systems | 656 | # File systems |
@@ -652,10 +659,11 @@ CONFIG_EXT2_FS=y | |||
652 | # CONFIG_EXT2_FS_XATTR is not set | 659 | # CONFIG_EXT2_FS_XATTR is not set |
653 | # CONFIG_EXT2_FS_XIP is not set | 660 | # CONFIG_EXT2_FS_XIP is not set |
654 | # CONFIG_EXT3_FS is not set | 661 | # CONFIG_EXT3_FS is not set |
655 | # CONFIG_EXT4DEV_FS is not set | 662 | # CONFIG_EXT4_FS is not set |
656 | # CONFIG_REISERFS_FS is not set | 663 | # CONFIG_REISERFS_FS is not set |
657 | # CONFIG_JFS_FS is not set | 664 | # CONFIG_JFS_FS is not set |
658 | # CONFIG_FS_POSIX_ACL is not set | 665 | # CONFIG_FS_POSIX_ACL is not set |
666 | CONFIG_FILE_LOCKING=y | ||
659 | # CONFIG_XFS_FS is not set | 667 | # CONFIG_XFS_FS is not set |
660 | CONFIG_DNOTIFY=y | 668 | CONFIG_DNOTIFY=y |
661 | CONFIG_INOTIFY=y | 669 | CONFIG_INOTIFY=y |
@@ -687,6 +695,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
687 | CONFIG_PROC_FS=y | 695 | CONFIG_PROC_FS=y |
688 | CONFIG_PROC_KCORE=y | 696 | CONFIG_PROC_KCORE=y |
689 | CONFIG_PROC_SYSCTL=y | 697 | CONFIG_PROC_SYSCTL=y |
698 | CONFIG_PROC_PAGE_MONITOR=y | ||
690 | CONFIG_SYSFS=y | 699 | CONFIG_SYSFS=y |
691 | # CONFIG_TMPFS is not set | 700 | # CONFIG_TMPFS is not set |
692 | # CONFIG_HUGETLBFS is not set | 701 | # CONFIG_HUGETLBFS is not set |
@@ -774,6 +783,11 @@ CONFIG_FRAME_WARN=1024 | |||
774 | # CONFIG_DEBUG_KERNEL is not set | 783 | # CONFIG_DEBUG_KERNEL is not set |
775 | # CONFIG_DEBUG_BUGVERBOSE is not set | 784 | # CONFIG_DEBUG_BUGVERBOSE is not set |
776 | # CONFIG_DEBUG_MEMORY_INIT is not set | 785 | # CONFIG_DEBUG_MEMORY_INIT is not set |
786 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
787 | # CONFIG_LATENCYTOP is not set | ||
788 | CONFIG_NOP_TRACER=y | ||
789 | CONFIG_HAVE_FTRACE=y | ||
790 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
777 | # CONFIG_SAMPLES is not set | 791 | # CONFIG_SAMPLES is not set |
778 | # CONFIG_SH_STANDARD_BIOS is not set | 792 | # CONFIG_SH_STANDARD_BIOS is not set |
779 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 793 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
@@ -784,14 +798,19 @@ CONFIG_FRAME_WARN=1024 | |||
784 | # | 798 | # |
785 | # CONFIG_KEYS is not set | 799 | # CONFIG_KEYS is not set |
786 | # CONFIG_SECURITY is not set | 800 | # CONFIG_SECURITY is not set |
801 | # CONFIG_SECURITYFS is not set | ||
787 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 802 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
788 | CONFIG_CRYPTO=y | 803 | CONFIG_CRYPTO=y |
789 | 804 | ||
790 | # | 805 | # |
791 | # Crypto core or helper | 806 | # Crypto core or helper |
792 | # | 807 | # |
808 | # CONFIG_CRYPTO_FIPS is not set | ||
793 | CONFIG_CRYPTO_ALGAPI=y | 809 | CONFIG_CRYPTO_ALGAPI=y |
810 | CONFIG_CRYPTO_AEAD=y | ||
794 | CONFIG_CRYPTO_BLKCIPHER=y | 811 | CONFIG_CRYPTO_BLKCIPHER=y |
812 | CONFIG_CRYPTO_HASH=y | ||
813 | CONFIG_CRYPTO_RNG=y | ||
795 | CONFIG_CRYPTO_MANAGER=y | 814 | CONFIG_CRYPTO_MANAGER=y |
796 | # CONFIG_CRYPTO_GF128MUL is not set | 815 | # CONFIG_CRYPTO_GF128MUL is not set |
797 | # CONFIG_CRYPTO_NULL is not set | 816 | # CONFIG_CRYPTO_NULL is not set |
@@ -863,13 +882,17 @@ CONFIG_CRYPTO_MD5=y | |||
863 | # | 882 | # |
864 | # CONFIG_CRYPTO_DEFLATE is not set | 883 | # CONFIG_CRYPTO_DEFLATE is not set |
865 | # CONFIG_CRYPTO_LZO is not set | 884 | # CONFIG_CRYPTO_LZO is not set |
885 | |||
886 | # | ||
887 | # Random Number Generation | ||
888 | # | ||
889 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
866 | # CONFIG_CRYPTO_HW is not set | 890 | # CONFIG_CRYPTO_HW is not set |
867 | 891 | ||
868 | # | 892 | # |
869 | # Library routines | 893 | # Library routines |
870 | # | 894 | # |
871 | CONFIG_BITREVERSE=y | 895 | CONFIG_BITREVERSE=y |
872 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
873 | # CONFIG_CRC_CCITT is not set | 896 | # CONFIG_CRC_CCITT is not set |
874 | CONFIG_CRC16=y | 897 | CONFIG_CRC16=y |
875 | CONFIG_CRC_T10DIF=y | 898 | CONFIG_CRC_T10DIF=y |
diff --git a/arch/sh/configs/landisk_defconfig b/arch/sh/configs/landisk_defconfig index 99cc39c5c6ca..b82dfb4da3aa 100644 --- a/arch/sh/configs/landisk_defconfig +++ b/arch/sh/configs/landisk_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.26 | 3 | # Linux kernel version: 2.6.27 |
4 | # Wed Jul 30 01:35:07 2008 | 4 | # Wed Oct 22 18:25:51 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -11,17 +11,18 @@ CONFIG_GENERIC_BUG=y | |||
11 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
12 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
13 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
14 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
15 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
16 | CONFIG_GENERIC_TIME=y | 17 | CONFIG_GENERIC_TIME=y |
17 | CONFIG_GENERIC_CLOCKEVENTS=y | 18 | CONFIG_GENERIC_CLOCKEVENTS=y |
18 | CONFIG_SYS_SUPPORTS_PCI=y | 19 | CONFIG_SYS_SUPPORTS_PCI=y |
19 | CONFIG_STACKTRACE_SUPPORT=y | 20 | CONFIG_STACKTRACE_SUPPORT=y |
20 | CONFIG_LOCKDEP_SUPPORT=y | 21 | CONFIG_LOCKDEP_SUPPORT=y |
22 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
21 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 23 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
22 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 24 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
23 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 25 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
24 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
25 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 26 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
26 | 27 | ||
27 | # | 28 | # |
@@ -68,22 +69,22 @@ CONFIG_SIGNALFD=y | |||
68 | CONFIG_TIMERFD=y | 69 | CONFIG_TIMERFD=y |
69 | CONFIG_EVENTFD=y | 70 | CONFIG_EVENTFD=y |
70 | CONFIG_SHMEM=y | 71 | CONFIG_SHMEM=y |
72 | CONFIG_AIO=y | ||
71 | CONFIG_VM_EVENT_COUNTERS=y | 73 | CONFIG_VM_EVENT_COUNTERS=y |
74 | CONFIG_PCI_QUIRKS=y | ||
72 | CONFIG_SLAB=y | 75 | CONFIG_SLAB=y |
73 | # CONFIG_SLUB is not set | 76 | # CONFIG_SLUB is not set |
74 | # CONFIG_SLOB is not set | 77 | # CONFIG_SLOB is not set |
75 | # CONFIG_PROFILING is not set | 78 | # CONFIG_PROFILING is not set |
76 | # CONFIG_MARKERS is not set | 79 | # CONFIG_MARKERS is not set |
77 | CONFIG_HAVE_OPROFILE=y | 80 | CONFIG_HAVE_OPROFILE=y |
78 | # CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set | 81 | # CONFIG_KPROBES is not set |
79 | # CONFIG_HAVE_IOREMAP_PROT is not set | 82 | CONFIG_HAVE_IOREMAP_PROT=y |
80 | # CONFIG_HAVE_KPROBES is not set | 83 | CONFIG_HAVE_KPROBES=y |
81 | # CONFIG_HAVE_KRETPROBES is not set | 84 | CONFIG_HAVE_KRETPROBES=y |
82 | # CONFIG_HAVE_ARCH_TRACEHOOK is not set | 85 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
83 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
84 | # CONFIG_USE_GENERIC_SMP_HELPERS is not set | ||
85 | CONFIG_HAVE_CLK=y | 86 | CONFIG_HAVE_CLK=y |
86 | CONFIG_PROC_PAGE_MONITOR=y | 87 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
87 | CONFIG_SLABINFO=y | 88 | CONFIG_SLABINFO=y |
88 | CONFIG_RT_MUTEXES=y | 89 | CONFIG_RT_MUTEXES=y |
89 | # CONFIG_TINY_SHMEM is not set | 90 | # CONFIG_TINY_SHMEM is not set |
@@ -115,6 +116,7 @@ CONFIG_DEFAULT_AS=y | |||
115 | # CONFIG_DEFAULT_NOOP is not set | 116 | # CONFIG_DEFAULT_NOOP is not set |
116 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 117 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
117 | CONFIG_CLASSIC_RCU=y | 118 | CONFIG_CLASSIC_RCU=y |
119 | # CONFIG_FREEZER is not set | ||
118 | 120 | ||
119 | # | 121 | # |
120 | # System type | 122 | # System type |
@@ -182,12 +184,13 @@ CONFIG_FLATMEM_MANUAL=y | |||
182 | CONFIG_FLATMEM=y | 184 | CONFIG_FLATMEM=y |
183 | CONFIG_FLAT_NODE_MEM_MAP=y | 185 | CONFIG_FLAT_NODE_MEM_MAP=y |
184 | CONFIG_SPARSEMEM_STATIC=y | 186 | CONFIG_SPARSEMEM_STATIC=y |
185 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
186 | CONFIG_PAGEFLAGS_EXTENDED=y | 187 | CONFIG_PAGEFLAGS_EXTENDED=y |
187 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 188 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
188 | # CONFIG_RESOURCES_64BIT is not set | 189 | # CONFIG_RESOURCES_64BIT is not set |
190 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
189 | CONFIG_ZONE_DMA_FLAG=0 | 191 | CONFIG_ZONE_DMA_FLAG=0 |
190 | CONFIG_NR_QUICK=2 | 192 | CONFIG_NR_QUICK=2 |
193 | CONFIG_UNEVICTABLE_LRU=y | ||
191 | 194 | ||
192 | # | 195 | # |
193 | # Cache configuration | 196 | # Cache configuration |
@@ -225,7 +228,6 @@ CONFIG_SH_LANDISK=y | |||
225 | CONFIG_SH_TMU=y | 228 | CONFIG_SH_TMU=y |
226 | CONFIG_SH_TIMER_IRQ=16 | 229 | CONFIG_SH_TIMER_IRQ=16 |
227 | CONFIG_SH_PCLK_FREQ=33333333 | 230 | CONFIG_SH_PCLK_FREQ=33333333 |
228 | # CONFIG_TICK_ONESHOT is not set | ||
229 | # CONFIG_NO_HZ is not set | 231 | # CONFIG_NO_HZ is not set |
230 | # CONFIG_HIGH_RES_TIMERS is not set | 232 | # CONFIG_HIGH_RES_TIMERS is not set |
231 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | 233 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y |
@@ -261,6 +263,7 @@ CONFIG_HZ=250 | |||
261 | # CONFIG_SCHED_HRTICK is not set | 263 | # CONFIG_SCHED_HRTICK is not set |
262 | CONFIG_KEXEC=y | 264 | CONFIG_KEXEC=y |
263 | # CONFIG_CRASH_DUMP is not set | 265 | # CONFIG_CRASH_DUMP is not set |
266 | # CONFIG_SECCOMP is not set | ||
264 | CONFIG_PREEMPT_NONE=y | 267 | CONFIG_PREEMPT_NONE=y |
265 | # CONFIG_PREEMPT_VOLUNTARY is not set | 268 | # CONFIG_PREEMPT_VOLUNTARY is not set |
266 | # CONFIG_PREEMPT is not set | 269 | # CONFIG_PREEMPT is not set |
@@ -309,11 +312,9 @@ CONFIG_PCCARD_NONSTATIC=y | |||
309 | # Executable file formats | 312 | # Executable file formats |
310 | # | 313 | # |
311 | CONFIG_BINFMT_ELF=y | 314 | CONFIG_BINFMT_ELF=y |
315 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
316 | # CONFIG_HAVE_AOUT is not set | ||
312 | # CONFIG_BINFMT_MISC is not set | 317 | # CONFIG_BINFMT_MISC is not set |
313 | |||
314 | # | ||
315 | # Networking | ||
316 | # | ||
317 | CONFIG_NET=y | 318 | CONFIG_NET=y |
318 | 319 | ||
319 | # | 320 | # |
@@ -360,7 +361,6 @@ CONFIG_INET_TCP_DIAG=y | |||
360 | CONFIG_TCP_CONG_CUBIC=y | 361 | CONFIG_TCP_CONG_CUBIC=y |
361 | CONFIG_DEFAULT_TCP_CONG="cubic" | 362 | CONFIG_DEFAULT_TCP_CONG="cubic" |
362 | # CONFIG_TCP_MD5SIG is not set | 363 | # CONFIG_TCP_MD5SIG is not set |
363 | # CONFIG_IP_VS is not set | ||
364 | # CONFIG_IPV6 is not set | 364 | # CONFIG_IPV6 is not set |
365 | # CONFIG_NETWORK_SECMARK is not set | 365 | # CONFIG_NETWORK_SECMARK is not set |
366 | CONFIG_NETFILTER=y | 366 | CONFIG_NETFILTER=y |
@@ -374,10 +374,12 @@ CONFIG_NETFILTER_ADVANCED=y | |||
374 | # CONFIG_NETFILTER_NETLINK_LOG is not set | 374 | # CONFIG_NETFILTER_NETLINK_LOG is not set |
375 | # CONFIG_NF_CONNTRACK is not set | 375 | # CONFIG_NF_CONNTRACK is not set |
376 | # CONFIG_NETFILTER_XTABLES is not set | 376 | # CONFIG_NETFILTER_XTABLES is not set |
377 | # CONFIG_IP_VS is not set | ||
377 | 378 | ||
378 | # | 379 | # |
379 | # IP: Netfilter Configuration | 380 | # IP: Netfilter Configuration |
380 | # | 381 | # |
382 | # CONFIG_NF_DEFRAG_IPV4 is not set | ||
381 | CONFIG_IP_NF_QUEUE=m | 383 | CONFIG_IP_NF_QUEUE=m |
382 | # CONFIG_IP_NF_IPTABLES is not set | 384 | # CONFIG_IP_NF_IPTABLES is not set |
383 | # CONFIG_IP_NF_ARPTABLES is not set | 385 | # CONFIG_IP_NF_ARPTABLES is not set |
@@ -386,6 +388,7 @@ CONFIG_IP_NF_QUEUE=m | |||
386 | # CONFIG_TIPC is not set | 388 | # CONFIG_TIPC is not set |
387 | # CONFIG_ATM is not set | 389 | # CONFIG_ATM is not set |
388 | # CONFIG_BRIDGE is not set | 390 | # CONFIG_BRIDGE is not set |
391 | # CONFIG_NET_DSA is not set | ||
389 | # CONFIG_VLAN_8021Q is not set | 392 | # CONFIG_VLAN_8021Q is not set |
390 | # CONFIG_DECNET is not set | 393 | # CONFIG_DECNET is not set |
391 | CONFIG_LLC=m | 394 | CONFIG_LLC=m |
@@ -408,11 +411,10 @@ CONFIG_ATALK=m | |||
408 | # CONFIG_IRDA is not set | 411 | # CONFIG_IRDA is not set |
409 | # CONFIG_BT is not set | 412 | # CONFIG_BT is not set |
410 | # CONFIG_AF_RXRPC is not set | 413 | # CONFIG_AF_RXRPC is not set |
411 | 414 | # CONFIG_PHONET is not set | |
412 | # | 415 | CONFIG_WIRELESS=y |
413 | # Wireless | ||
414 | # | ||
415 | # CONFIG_CFG80211 is not set | 416 | # CONFIG_CFG80211 is not set |
417 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
416 | # CONFIG_WIRELESS_EXT is not set | 418 | # CONFIG_WIRELESS_EXT is not set |
417 | # CONFIG_MAC80211 is not set | 419 | # CONFIG_MAC80211 is not set |
418 | # CONFIG_IEEE80211 is not set | 420 | # CONFIG_IEEE80211 is not set |
@@ -462,22 +464,20 @@ CONFIG_MISC_DEVICES=y | |||
462 | # CONFIG_HP_ILO is not set | 464 | # CONFIG_HP_ILO is not set |
463 | CONFIG_HAVE_IDE=y | 465 | CONFIG_HAVE_IDE=y |
464 | CONFIG_IDE=y | 466 | CONFIG_IDE=y |
465 | CONFIG_IDE_MAX_HWIFS=4 | ||
466 | CONFIG_BLK_DEV_IDE=y | ||
467 | 467 | ||
468 | # | 468 | # |
469 | # Please see Documentation/ide/ide.txt for help/info on IDE drives | 469 | # Please see Documentation/ide/ide.txt for help/info on IDE drives |
470 | # | 470 | # |
471 | CONFIG_IDE_ATAPI=y | 471 | CONFIG_IDE_ATAPI=y |
472 | # CONFIG_BLK_DEV_IDE_SATA is not set | 472 | # CONFIG_BLK_DEV_IDE_SATA is not set |
473 | CONFIG_BLK_DEV_IDEDISK=y | 473 | CONFIG_IDE_GD=y |
474 | # CONFIG_IDEDISK_MULTI_MODE is not set | 474 | CONFIG_IDE_GD_ATA=y |
475 | # CONFIG_IDE_GD_ATAPI is not set | ||
475 | # CONFIG_BLK_DEV_IDECS is not set | 476 | # CONFIG_BLK_DEV_IDECS is not set |
476 | # CONFIG_BLK_DEV_DELKIN is not set | 477 | # CONFIG_BLK_DEV_DELKIN is not set |
477 | CONFIG_BLK_DEV_IDECD=y | 478 | CONFIG_BLK_DEV_IDECD=y |
478 | CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y | 479 | CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y |
479 | # CONFIG_BLK_DEV_IDETAPE is not set | 480 | # CONFIG_BLK_DEV_IDETAPE is not set |
480 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | ||
481 | CONFIG_BLK_DEV_IDESCSI=y | 481 | CONFIG_BLK_DEV_IDESCSI=y |
482 | # CONFIG_IDE_TASK_IOCTL is not set | 482 | # CONFIG_IDE_TASK_IOCTL is not set |
483 | CONFIG_IDE_PROC_FS=y | 483 | CONFIG_IDE_PROC_FS=y |
@@ -640,6 +640,9 @@ CONFIG_MII=y | |||
640 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 640 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
641 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 641 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
642 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 642 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
643 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
644 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
645 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
643 | CONFIG_NET_PCI=y | 646 | CONFIG_NET_PCI=y |
644 | # CONFIG_PCNET32 is not set | 647 | # CONFIG_PCNET32 is not set |
645 | # CONFIG_AMD8111_ETH is not set | 648 | # CONFIG_AMD8111_ETH is not set |
@@ -660,6 +663,7 @@ CONFIG_8139CP=y | |||
660 | # CONFIG_TLAN is not set | 663 | # CONFIG_TLAN is not set |
661 | # CONFIG_VIA_RHINE is not set | 664 | # CONFIG_VIA_RHINE is not set |
662 | # CONFIG_SC92031 is not set | 665 | # CONFIG_SC92031 is not set |
666 | # CONFIG_ATL2 is not set | ||
663 | CONFIG_NETDEV_1000=y | 667 | CONFIG_NETDEV_1000=y |
664 | # CONFIG_ACENIC is not set | 668 | # CONFIG_ACENIC is not set |
665 | # CONFIG_DL2K is not set | 669 | # CONFIG_DL2K is not set |
@@ -680,9 +684,11 @@ CONFIG_NETDEV_1000=y | |||
680 | # CONFIG_QLA3XXX is not set | 684 | # CONFIG_QLA3XXX is not set |
681 | # CONFIG_ATL1 is not set | 685 | # CONFIG_ATL1 is not set |
682 | # CONFIG_ATL1E is not set | 686 | # CONFIG_ATL1E is not set |
687 | # CONFIG_JME is not set | ||
683 | CONFIG_NETDEV_10000=y | 688 | CONFIG_NETDEV_10000=y |
684 | # CONFIG_CHELSIO_T1 is not set | 689 | # CONFIG_CHELSIO_T1 is not set |
685 | # CONFIG_CHELSIO_T3 is not set | 690 | # CONFIG_CHELSIO_T3 is not set |
691 | # CONFIG_ENIC is not set | ||
686 | # CONFIG_IXGBE is not set | 692 | # CONFIG_IXGBE is not set |
687 | # CONFIG_IXGB is not set | 693 | # CONFIG_IXGB is not set |
688 | # CONFIG_S2IO is not set | 694 | # CONFIG_S2IO is not set |
@@ -692,6 +698,7 @@ CONFIG_NETDEV_10000=y | |||
692 | # CONFIG_MLX4_CORE is not set | 698 | # CONFIG_MLX4_CORE is not set |
693 | # CONFIG_TEHUTI is not set | 699 | # CONFIG_TEHUTI is not set |
694 | # CONFIG_BNX2X is not set | 700 | # CONFIG_BNX2X is not set |
701 | # CONFIG_QLGE is not set | ||
695 | # CONFIG_SFC is not set | 702 | # CONFIG_SFC is not set |
696 | # CONFIG_TR is not set | 703 | # CONFIG_TR is not set |
697 | 704 | ||
@@ -727,7 +734,7 @@ CONFIG_USB_RTL8150=m | |||
727 | # Input device support | 734 | # Input device support |
728 | # | 735 | # |
729 | CONFIG_INPUT=y | 736 | CONFIG_INPUT=y |
730 | # CONFIG_INPUT_FF_MEMLESS is not set | 737 | CONFIG_INPUT_FF_MEMLESS=m |
731 | # CONFIG_INPUT_POLLDEV is not set | 738 | # CONFIG_INPUT_POLLDEV is not set |
732 | 739 | ||
733 | # | 740 | # |
@@ -838,6 +845,8 @@ CONFIG_SSB_POSSIBLE=y | |||
838 | # CONFIG_MFD_CORE is not set | 845 | # CONFIG_MFD_CORE is not set |
839 | # CONFIG_MFD_SM501 is not set | 846 | # CONFIG_MFD_SM501 is not set |
840 | # CONFIG_HTC_PASIC3 is not set | 847 | # CONFIG_HTC_PASIC3 is not set |
848 | # CONFIG_MFD_TMIO is not set | ||
849 | # CONFIG_MFD_WM8400 is not set | ||
841 | 850 | ||
842 | # | 851 | # |
843 | # Multimedia devices | 852 | # Multimedia devices |
@@ -861,10 +870,12 @@ CONFIG_VIDEO_V4L2=m | |||
861 | CONFIG_VIDEO_V4L1=m | 870 | CONFIG_VIDEO_V4L1=m |
862 | CONFIG_VIDEO_CAPTURE_DRIVERS=y | 871 | CONFIG_VIDEO_CAPTURE_DRIVERS=y |
863 | # CONFIG_VIDEO_ADV_DEBUG is not set | 872 | # CONFIG_VIDEO_ADV_DEBUG is not set |
873 | # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set | ||
864 | CONFIG_VIDEO_HELPER_CHIPS_AUTO=y | 874 | CONFIG_VIDEO_HELPER_CHIPS_AUTO=y |
865 | # CONFIG_VIDEO_VIVI is not set | 875 | # CONFIG_VIDEO_VIVI is not set |
866 | # CONFIG_VIDEO_CPIA is not set | 876 | # CONFIG_VIDEO_CPIA is not set |
867 | # CONFIG_VIDEO_CPIA2 is not set | 877 | # CONFIG_VIDEO_CPIA2 is not set |
878 | # CONFIG_SOC_CAMERA is not set | ||
868 | CONFIG_V4L_USB_DRIVERS=y | 879 | CONFIG_V4L_USB_DRIVERS=y |
869 | # CONFIG_USB_VIDEO_CLASS is not set | 880 | # CONFIG_USB_VIDEO_CLASS is not set |
870 | # CONFIG_USB_GSPCA is not set | 881 | # CONFIG_USB_GSPCA is not set |
@@ -884,14 +895,13 @@ CONFIG_USB_PWC=m | |||
884 | # CONFIG_USB_ZR364XX is not set | 895 | # CONFIG_USB_ZR364XX is not set |
885 | # CONFIG_USB_STKWEBCAM is not set | 896 | # CONFIG_USB_STKWEBCAM is not set |
886 | # CONFIG_USB_S2255 is not set | 897 | # CONFIG_USB_S2255 is not set |
887 | # CONFIG_SOC_CAMERA is not set | ||
888 | # CONFIG_VIDEO_SH_MOBILE_CEU is not set | ||
889 | CONFIG_RADIO_ADAPTERS=y | 898 | CONFIG_RADIO_ADAPTERS=y |
890 | # CONFIG_RADIO_GEMTEK_PCI is not set | 899 | # CONFIG_RADIO_GEMTEK_PCI is not set |
891 | # CONFIG_RADIO_MAXIRADIO is not set | 900 | # CONFIG_RADIO_MAXIRADIO is not set |
892 | # CONFIG_RADIO_MAESTRO is not set | 901 | # CONFIG_RADIO_MAESTRO is not set |
893 | CONFIG_USB_DSBR=m | 902 | CONFIG_USB_DSBR=m |
894 | # CONFIG_USB_SI470X is not set | 903 | # CONFIG_USB_SI470X is not set |
904 | # CONFIG_USB_MR800 is not set | ||
895 | # CONFIG_DAB is not set | 905 | # CONFIG_DAB is not set |
896 | 906 | ||
897 | # | 907 | # |
@@ -914,6 +924,7 @@ CONFIG_USB_DSBR=m | |||
914 | CONFIG_DUMMY_CONSOLE=y | 924 | CONFIG_DUMMY_CONSOLE=y |
915 | CONFIG_FONT_8x16=y | 925 | CONFIG_FONT_8x16=y |
916 | CONFIG_SOUND=m | 926 | CONFIG_SOUND=m |
927 | CONFIG_SOUND_OSS_CORE=y | ||
917 | # CONFIG_SND is not set | 928 | # CONFIG_SND is not set |
918 | CONFIG_SOUND_PRIME=m | 929 | CONFIG_SOUND_PRIME=m |
919 | CONFIG_HID_SUPPORT=y | 930 | CONFIG_HID_SUPPORT=y |
@@ -925,8 +936,7 @@ CONFIG_HID=y | |||
925 | # USB Input Devices | 936 | # USB Input Devices |
926 | # | 937 | # |
927 | CONFIG_USB_HID=m | 938 | CONFIG_USB_HID=m |
928 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | 939 | # CONFIG_HID_PID is not set |
929 | # CONFIG_HID_FF is not set | ||
930 | # CONFIG_USB_HIDDEV is not set | 940 | # CONFIG_USB_HIDDEV is not set |
931 | 941 | ||
932 | # | 942 | # |
@@ -934,6 +944,34 @@ CONFIG_USB_HID=m | |||
934 | # | 944 | # |
935 | # CONFIG_USB_KBD is not set | 945 | # CONFIG_USB_KBD is not set |
936 | # CONFIG_USB_MOUSE is not set | 946 | # CONFIG_USB_MOUSE is not set |
947 | |||
948 | # | ||
949 | # Special HID drivers | ||
950 | # | ||
951 | CONFIG_HID_COMPAT=y | ||
952 | CONFIG_HID_A4TECH=m | ||
953 | CONFIG_HID_APPLE=m | ||
954 | CONFIG_HID_BELKIN=m | ||
955 | CONFIG_HID_BRIGHT=m | ||
956 | CONFIG_HID_CHERRY=m | ||
957 | CONFIG_HID_CHICONY=m | ||
958 | CONFIG_HID_CYPRESS=m | ||
959 | CONFIG_HID_DELL=m | ||
960 | CONFIG_HID_EZKEY=m | ||
961 | CONFIG_HID_GYRATION=m | ||
962 | CONFIG_HID_LOGITECH=m | ||
963 | # CONFIG_LOGITECH_FF is not set | ||
964 | # CONFIG_LOGIRUMBLEPAD2_FF is not set | ||
965 | CONFIG_HID_MICROSOFT=m | ||
966 | CONFIG_HID_MONTEREY=m | ||
967 | CONFIG_HID_PANTHERLORD=m | ||
968 | # CONFIG_PANTHERLORD_FF is not set | ||
969 | CONFIG_HID_PETALYNX=m | ||
970 | CONFIG_HID_SAMSUNG=m | ||
971 | CONFIG_HID_SONY=m | ||
972 | CONFIG_HID_SUNPLUS=m | ||
973 | CONFIG_THRUSTMASTER_FF=m | ||
974 | CONFIG_ZEROPLUS_FF=m | ||
937 | CONFIG_USB_SUPPORT=y | 975 | CONFIG_USB_SUPPORT=y |
938 | CONFIG_USB_ARCH_HAS_HCD=y | 976 | CONFIG_USB_ARCH_HAS_HCD=y |
939 | CONFIG_USB_ARCH_HAS_OHCI=y | 977 | CONFIG_USB_ARCH_HAS_OHCI=y |
@@ -951,6 +989,7 @@ CONFIG_USB_DEVICE_CLASS=y | |||
951 | # CONFIG_USB_OTG is not set | 989 | # CONFIG_USB_OTG is not set |
952 | # CONFIG_USB_OTG_WHITELIST is not set | 990 | # CONFIG_USB_OTG_WHITELIST is not set |
953 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | 991 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set |
992 | CONFIG_USB_MON=y | ||
954 | 993 | ||
955 | # | 994 | # |
956 | # USB Host Controller Drivers | 995 | # USB Host Controller Drivers |
@@ -975,6 +1014,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
975 | # CONFIG_USB_ACM is not set | 1014 | # CONFIG_USB_ACM is not set |
976 | CONFIG_USB_PRINTER=m | 1015 | CONFIG_USB_PRINTER=m |
977 | # CONFIG_USB_WDM is not set | 1016 | # CONFIG_USB_WDM is not set |
1017 | # CONFIG_USB_TMC is not set | ||
978 | 1018 | ||
979 | # | 1019 | # |
980 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 1020 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -1004,7 +1044,6 @@ CONFIG_USB_STORAGE_JUMPSHOT=y | |||
1004 | # | 1044 | # |
1005 | # CONFIG_USB_MDC800 is not set | 1045 | # CONFIG_USB_MDC800 is not set |
1006 | # CONFIG_USB_MICROTEK is not set | 1046 | # CONFIG_USB_MICROTEK is not set |
1007 | CONFIG_USB_MON=y | ||
1008 | 1047 | ||
1009 | # | 1048 | # |
1010 | # USB port drivers | 1049 | # USB port drivers |
@@ -1059,7 +1098,7 @@ CONFIG_USB_SERIAL_PL2303=m | |||
1059 | CONFIG_USB_EMI62=m | 1098 | CONFIG_USB_EMI62=m |
1060 | CONFIG_USB_EMI26=m | 1099 | CONFIG_USB_EMI26=m |
1061 | # CONFIG_USB_ADUTUX is not set | 1100 | # CONFIG_USB_ADUTUX is not set |
1062 | # CONFIG_USB_AUERSWALD is not set | 1101 | # CONFIG_USB_SEVSEG is not set |
1063 | # CONFIG_USB_RIO500 is not set | 1102 | # CONFIG_USB_RIO500 is not set |
1064 | # CONFIG_USB_LEGOTOWER is not set | 1103 | # CONFIG_USB_LEGOTOWER is not set |
1065 | # CONFIG_USB_LCD is not set | 1104 | # CONFIG_USB_LCD is not set |
@@ -1078,6 +1117,7 @@ CONFIG_USB_SISUSBVGA_CON=y | |||
1078 | # CONFIG_USB_IOWARRIOR is not set | 1117 | # CONFIG_USB_IOWARRIOR is not set |
1079 | # CONFIG_USB_TEST is not set | 1118 | # CONFIG_USB_TEST is not set |
1080 | # CONFIG_USB_ISIGHTFW is not set | 1119 | # CONFIG_USB_ISIGHTFW is not set |
1120 | # CONFIG_USB_VST is not set | ||
1081 | # CONFIG_USB_GADGET is not set | 1121 | # CONFIG_USB_GADGET is not set |
1082 | # CONFIG_MMC is not set | 1122 | # CONFIG_MMC is not set |
1083 | # CONFIG_MEMSTICK is not set | 1123 | # CONFIG_MEMSTICK is not set |
@@ -1087,6 +1127,7 @@ CONFIG_USB_SISUSBVGA_CON=y | |||
1087 | # CONFIG_RTC_CLASS is not set | 1127 | # CONFIG_RTC_CLASS is not set |
1088 | # CONFIG_DMADEVICES is not set | 1128 | # CONFIG_DMADEVICES is not set |
1089 | # CONFIG_UIO is not set | 1129 | # CONFIG_UIO is not set |
1130 | # CONFIG_STAGING is not set | ||
1090 | 1131 | ||
1091 | # | 1132 | # |
1092 | # File systems | 1133 | # File systems |
@@ -1098,7 +1139,7 @@ CONFIG_EXT3_FS=y | |||
1098 | CONFIG_EXT3_FS_XATTR=y | 1139 | CONFIG_EXT3_FS_XATTR=y |
1099 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 1140 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
1100 | # CONFIG_EXT3_FS_SECURITY is not set | 1141 | # CONFIG_EXT3_FS_SECURITY is not set |
1101 | # CONFIG_EXT4DEV_FS is not set | 1142 | # CONFIG_EXT4_FS is not set |
1102 | CONFIG_JBD=y | 1143 | CONFIG_JBD=y |
1103 | CONFIG_FS_MBCACHE=y | 1144 | CONFIG_FS_MBCACHE=y |
1104 | CONFIG_REISERFS_FS=y | 1145 | CONFIG_REISERFS_FS=y |
@@ -1107,6 +1148,7 @@ CONFIG_REISERFS_FS=y | |||
1107 | # CONFIG_REISERFS_FS_XATTR is not set | 1148 | # CONFIG_REISERFS_FS_XATTR is not set |
1108 | # CONFIG_JFS_FS is not set | 1149 | # CONFIG_JFS_FS is not set |
1109 | # CONFIG_FS_POSIX_ACL is not set | 1150 | # CONFIG_FS_POSIX_ACL is not set |
1151 | CONFIG_FILE_LOCKING=y | ||
1110 | # CONFIG_XFS_FS is not set | 1152 | # CONFIG_XFS_FS is not set |
1111 | # CONFIG_OCFS2_FS is not set | 1153 | # CONFIG_OCFS2_FS is not set |
1112 | CONFIG_DNOTIFY=y | 1154 | CONFIG_DNOTIFY=y |
@@ -1143,6 +1185,7 @@ CONFIG_NTFS_RW=y | |||
1143 | CONFIG_PROC_FS=y | 1185 | CONFIG_PROC_FS=y |
1144 | # CONFIG_PROC_KCORE is not set | 1186 | # CONFIG_PROC_KCORE is not set |
1145 | CONFIG_PROC_SYSCTL=y | 1187 | CONFIG_PROC_SYSCTL=y |
1188 | CONFIG_PROC_PAGE_MONITOR=y | ||
1146 | CONFIG_SYSFS=y | 1189 | CONFIG_SYSFS=y |
1147 | CONFIG_TMPFS=y | 1190 | CONFIG_TMPFS=y |
1148 | # CONFIG_TMPFS_POSIX_ACL is not set | 1191 | # CONFIG_TMPFS_POSIX_ACL is not set |
@@ -1185,6 +1228,7 @@ CONFIG_LOCKD_V4=y | |||
1185 | CONFIG_EXPORTFS=m | 1228 | CONFIG_EXPORTFS=m |
1186 | CONFIG_NFS_COMMON=y | 1229 | CONFIG_NFS_COMMON=y |
1187 | CONFIG_SUNRPC=m | 1230 | CONFIG_SUNRPC=m |
1231 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
1188 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 1232 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
1189 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1233 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1190 | CONFIG_SMB_FS=m | 1234 | CONFIG_SMB_FS=m |
@@ -1256,6 +1300,11 @@ CONFIG_FRAME_WARN=1024 | |||
1256 | # CONFIG_DEBUG_KERNEL is not set | 1300 | # CONFIG_DEBUG_KERNEL is not set |
1257 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1301 | # CONFIG_DEBUG_BUGVERBOSE is not set |
1258 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1302 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1303 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
1304 | # CONFIG_LATENCYTOP is not set | ||
1305 | CONFIG_NOP_TRACER=y | ||
1306 | CONFIG_HAVE_FTRACE=y | ||
1307 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
1259 | # CONFIG_SAMPLES is not set | 1308 | # CONFIG_SAMPLES is not set |
1260 | CONFIG_SH_STANDARD_BIOS=y | 1309 | CONFIG_SH_STANDARD_BIOS=y |
1261 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 1310 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
@@ -1267,12 +1316,14 @@ CONFIG_SH_STANDARD_BIOS=y | |||
1267 | # | 1316 | # |
1268 | # CONFIG_KEYS is not set | 1317 | # CONFIG_KEYS is not set |
1269 | # CONFIG_SECURITY is not set | 1318 | # CONFIG_SECURITY is not set |
1319 | # CONFIG_SECURITYFS is not set | ||
1270 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1320 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
1271 | CONFIG_CRYPTO=y | 1321 | CONFIG_CRYPTO=y |
1272 | 1322 | ||
1273 | # | 1323 | # |
1274 | # Crypto core or helper | 1324 | # Crypto core or helper |
1275 | # | 1325 | # |
1326 | # CONFIG_CRYPTO_FIPS is not set | ||
1276 | # CONFIG_CRYPTO_MANAGER is not set | 1327 | # CONFIG_CRYPTO_MANAGER is not set |
1277 | # CONFIG_CRYPTO_GF128MUL is not set | 1328 | # CONFIG_CRYPTO_GF128MUL is not set |
1278 | # CONFIG_CRYPTO_NULL is not set | 1329 | # CONFIG_CRYPTO_NULL is not set |
@@ -1345,6 +1396,11 @@ CONFIG_CRYPTO=y | |||
1345 | # | 1396 | # |
1346 | # CONFIG_CRYPTO_DEFLATE is not set | 1397 | # CONFIG_CRYPTO_DEFLATE is not set |
1347 | # CONFIG_CRYPTO_LZO is not set | 1398 | # CONFIG_CRYPTO_LZO is not set |
1399 | |||
1400 | # | ||
1401 | # Random Number Generation | ||
1402 | # | ||
1403 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
1348 | CONFIG_CRYPTO_HW=y | 1404 | CONFIG_CRYPTO_HW=y |
1349 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 1405 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
1350 | 1406 | ||
@@ -1352,7 +1408,6 @@ CONFIG_CRYPTO_HW=y | |||
1352 | # Library routines | 1408 | # Library routines |
1353 | # | 1409 | # |
1354 | CONFIG_BITREVERSE=y | 1410 | CONFIG_BITREVERSE=y |
1355 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
1356 | # CONFIG_CRC_CCITT is not set | 1411 | # CONFIG_CRC_CCITT is not set |
1357 | # CONFIG_CRC16 is not set | 1412 | # CONFIG_CRC16 is not set |
1358 | CONFIG_CRC_T10DIF=y | 1413 | CONFIG_CRC_T10DIF=y |
diff --git a/arch/sh/configs/lboxre2_defconfig b/arch/sh/configs/lboxre2_defconfig index aecdfd33c695..c3ecedfc1bc7 100644 --- a/arch/sh/configs/lboxre2_defconfig +++ b/arch/sh/configs/lboxre2_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.26 | 3 | # Linux kernel version: 2.6.27 |
4 | # Wed Jul 30 01:39:41 2008 | 4 | # Wed Oct 22 18:29:42 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -11,17 +11,18 @@ CONFIG_GENERIC_BUG=y | |||
11 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
12 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
13 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
14 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
15 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
16 | CONFIG_GENERIC_TIME=y | 17 | CONFIG_GENERIC_TIME=y |
17 | CONFIG_GENERIC_CLOCKEVENTS=y | 18 | CONFIG_GENERIC_CLOCKEVENTS=y |
18 | CONFIG_SYS_SUPPORTS_PCI=y | 19 | CONFIG_SYS_SUPPORTS_PCI=y |
19 | CONFIG_STACKTRACE_SUPPORT=y | 20 | CONFIG_STACKTRACE_SUPPORT=y |
20 | CONFIG_LOCKDEP_SUPPORT=y | 21 | CONFIG_LOCKDEP_SUPPORT=y |
22 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
21 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 23 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
22 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 24 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
23 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 25 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
24 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
25 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 26 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
26 | 27 | ||
27 | # | 28 | # |
@@ -68,22 +69,22 @@ CONFIG_SIGNALFD=y | |||
68 | CONFIG_TIMERFD=y | 69 | CONFIG_TIMERFD=y |
69 | CONFIG_EVENTFD=y | 70 | CONFIG_EVENTFD=y |
70 | CONFIG_SHMEM=y | 71 | CONFIG_SHMEM=y |
72 | CONFIG_AIO=y | ||
71 | CONFIG_VM_EVENT_COUNTERS=y | 73 | CONFIG_VM_EVENT_COUNTERS=y |
74 | CONFIG_PCI_QUIRKS=y | ||
72 | CONFIG_SLAB=y | 75 | CONFIG_SLAB=y |
73 | # CONFIG_SLUB is not set | 76 | # CONFIG_SLUB is not set |
74 | # CONFIG_SLOB is not set | 77 | # CONFIG_SLOB is not set |
75 | # CONFIG_PROFILING is not set | 78 | # CONFIG_PROFILING is not set |
76 | # CONFIG_MARKERS is not set | 79 | # CONFIG_MARKERS is not set |
77 | CONFIG_HAVE_OPROFILE=y | 80 | CONFIG_HAVE_OPROFILE=y |
78 | # CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set | 81 | # CONFIG_KPROBES is not set |
79 | # CONFIG_HAVE_IOREMAP_PROT is not set | 82 | CONFIG_HAVE_IOREMAP_PROT=y |
80 | # CONFIG_HAVE_KPROBES is not set | 83 | CONFIG_HAVE_KPROBES=y |
81 | # CONFIG_HAVE_KRETPROBES is not set | 84 | CONFIG_HAVE_KRETPROBES=y |
82 | # CONFIG_HAVE_ARCH_TRACEHOOK is not set | 85 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
83 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
84 | # CONFIG_USE_GENERIC_SMP_HELPERS is not set | ||
85 | CONFIG_HAVE_CLK=y | 86 | CONFIG_HAVE_CLK=y |
86 | CONFIG_PROC_PAGE_MONITOR=y | 87 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
87 | CONFIG_SLABINFO=y | 88 | CONFIG_SLABINFO=y |
88 | CONFIG_RT_MUTEXES=y | 89 | CONFIG_RT_MUTEXES=y |
89 | # CONFIG_TINY_SHMEM is not set | 90 | # CONFIG_TINY_SHMEM is not set |
@@ -115,6 +116,7 @@ CONFIG_DEFAULT_AS=y | |||
115 | # CONFIG_DEFAULT_NOOP is not set | 116 | # CONFIG_DEFAULT_NOOP is not set |
116 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 117 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
117 | CONFIG_CLASSIC_RCU=y | 118 | CONFIG_CLASSIC_RCU=y |
119 | # CONFIG_FREEZER is not set | ||
118 | 120 | ||
119 | # | 121 | # |
120 | # System type | 122 | # System type |
@@ -182,12 +184,13 @@ CONFIG_FLATMEM_MANUAL=y | |||
182 | CONFIG_FLATMEM=y | 184 | CONFIG_FLATMEM=y |
183 | CONFIG_FLAT_NODE_MEM_MAP=y | 185 | CONFIG_FLAT_NODE_MEM_MAP=y |
184 | CONFIG_SPARSEMEM_STATIC=y | 186 | CONFIG_SPARSEMEM_STATIC=y |
185 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
186 | CONFIG_PAGEFLAGS_EXTENDED=y | 187 | CONFIG_PAGEFLAGS_EXTENDED=y |
187 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 188 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
188 | # CONFIG_RESOURCES_64BIT is not set | 189 | # CONFIG_RESOURCES_64BIT is not set |
190 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
189 | CONFIG_ZONE_DMA_FLAG=0 | 191 | CONFIG_ZONE_DMA_FLAG=0 |
190 | CONFIG_NR_QUICK=2 | 192 | CONFIG_NR_QUICK=2 |
193 | CONFIG_UNEVICTABLE_LRU=y | ||
191 | 194 | ||
192 | # | 195 | # |
193 | # Cache configuration | 196 | # Cache configuration |
@@ -225,7 +228,6 @@ CONFIG_SH_LBOX_RE2=y | |||
225 | CONFIG_SH_TMU=y | 228 | CONFIG_SH_TMU=y |
226 | CONFIG_SH_TIMER_IRQ=16 | 229 | CONFIG_SH_TIMER_IRQ=16 |
227 | CONFIG_SH_PCLK_FREQ=40000000 | 230 | CONFIG_SH_PCLK_FREQ=40000000 |
228 | # CONFIG_TICK_ONESHOT is not set | ||
229 | # CONFIG_NO_HZ is not set | 231 | # CONFIG_NO_HZ is not set |
230 | # CONFIG_HIGH_RES_TIMERS is not set | 232 | # CONFIG_HIGH_RES_TIMERS is not set |
231 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | 233 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y |
@@ -261,6 +263,7 @@ CONFIG_HZ=250 | |||
261 | # CONFIG_SCHED_HRTICK is not set | 263 | # CONFIG_SCHED_HRTICK is not set |
262 | CONFIG_KEXEC=y | 264 | CONFIG_KEXEC=y |
263 | # CONFIG_CRASH_DUMP is not set | 265 | # CONFIG_CRASH_DUMP is not set |
266 | # CONFIG_SECCOMP is not set | ||
264 | CONFIG_PREEMPT_NONE=y | 267 | CONFIG_PREEMPT_NONE=y |
265 | # CONFIG_PREEMPT_VOLUNTARY is not set | 268 | # CONFIG_PREEMPT_VOLUNTARY is not set |
266 | # CONFIG_PREEMPT is not set | 269 | # CONFIG_PREEMPT is not set |
@@ -309,11 +312,9 @@ CONFIG_PCCARD_NONSTATIC=y | |||
309 | # Executable file formats | 312 | # Executable file formats |
310 | # | 313 | # |
311 | CONFIG_BINFMT_ELF=y | 314 | CONFIG_BINFMT_ELF=y |
315 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
316 | # CONFIG_HAVE_AOUT is not set | ||
312 | # CONFIG_BINFMT_MISC is not set | 317 | # CONFIG_BINFMT_MISC is not set |
313 | |||
314 | # | ||
315 | # Networking | ||
316 | # | ||
317 | CONFIG_NET=y | 318 | CONFIG_NET=y |
318 | 319 | ||
319 | # | 320 | # |
@@ -360,7 +361,6 @@ CONFIG_INET_TCP_DIAG=y | |||
360 | CONFIG_TCP_CONG_CUBIC=y | 361 | CONFIG_TCP_CONG_CUBIC=y |
361 | CONFIG_DEFAULT_TCP_CONG="cubic" | 362 | CONFIG_DEFAULT_TCP_CONG="cubic" |
362 | # CONFIG_TCP_MD5SIG is not set | 363 | # CONFIG_TCP_MD5SIG is not set |
363 | # CONFIG_IP_VS is not set | ||
364 | # CONFIG_IPV6 is not set | 364 | # CONFIG_IPV6 is not set |
365 | # CONFIG_NETWORK_SECMARK is not set | 365 | # CONFIG_NETWORK_SECMARK is not set |
366 | CONFIG_NETFILTER=y | 366 | CONFIG_NETFILTER=y |
@@ -374,10 +374,12 @@ CONFIG_NETFILTER_ADVANCED=y | |||
374 | # CONFIG_NETFILTER_NETLINK_LOG is not set | 374 | # CONFIG_NETFILTER_NETLINK_LOG is not set |
375 | # CONFIG_NF_CONNTRACK is not set | 375 | # CONFIG_NF_CONNTRACK is not set |
376 | # CONFIG_NETFILTER_XTABLES is not set | 376 | # CONFIG_NETFILTER_XTABLES is not set |
377 | # CONFIG_IP_VS is not set | ||
377 | 378 | ||
378 | # | 379 | # |
379 | # IP: Netfilter Configuration | 380 | # IP: Netfilter Configuration |
380 | # | 381 | # |
382 | # CONFIG_NF_DEFRAG_IPV4 is not set | ||
381 | # CONFIG_IP_NF_QUEUE is not set | 383 | # CONFIG_IP_NF_QUEUE is not set |
382 | # CONFIG_IP_NF_IPTABLES is not set | 384 | # CONFIG_IP_NF_IPTABLES is not set |
383 | # CONFIG_IP_NF_ARPTABLES is not set | 385 | # CONFIG_IP_NF_ARPTABLES is not set |
@@ -386,6 +388,7 @@ CONFIG_NETFILTER_ADVANCED=y | |||
386 | # CONFIG_TIPC is not set | 388 | # CONFIG_TIPC is not set |
387 | # CONFIG_ATM is not set | 389 | # CONFIG_ATM is not set |
388 | # CONFIG_BRIDGE is not set | 390 | # CONFIG_BRIDGE is not set |
391 | # CONFIG_NET_DSA is not set | ||
389 | # CONFIG_VLAN_8021Q is not set | 392 | # CONFIG_VLAN_8021Q is not set |
390 | # CONFIG_DECNET is not set | 393 | # CONFIG_DECNET is not set |
391 | # CONFIG_LLC2 is not set | 394 | # CONFIG_LLC2 is not set |
@@ -406,11 +409,10 @@ CONFIG_NETFILTER_ADVANCED=y | |||
406 | # CONFIG_IRDA is not set | 409 | # CONFIG_IRDA is not set |
407 | # CONFIG_BT is not set | 410 | # CONFIG_BT is not set |
408 | # CONFIG_AF_RXRPC is not set | 411 | # CONFIG_AF_RXRPC is not set |
409 | 412 | # CONFIG_PHONET is not set | |
410 | # | 413 | CONFIG_WIRELESS=y |
411 | # Wireless | ||
412 | # | ||
413 | # CONFIG_CFG80211 is not set | 414 | # CONFIG_CFG80211 is not set |
415 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
414 | # CONFIG_WIRELESS_EXT is not set | 416 | # CONFIG_WIRELESS_EXT is not set |
415 | # CONFIG_MAC80211 is not set | 417 | # CONFIG_MAC80211 is not set |
416 | # CONFIG_IEEE80211 is not set | 418 | # CONFIG_IEEE80211 is not set |
@@ -631,6 +633,9 @@ CONFIG_MII=y | |||
631 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 633 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
632 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 634 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
633 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 635 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
636 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
637 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
638 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
634 | CONFIG_NET_PCI=y | 639 | CONFIG_NET_PCI=y |
635 | # CONFIG_PCNET32 is not set | 640 | # CONFIG_PCNET32 is not set |
636 | # CONFIG_AMD8111_ETH is not set | 641 | # CONFIG_AMD8111_ETH is not set |
@@ -655,6 +660,7 @@ CONFIG_8139TOO_TUNE_TWISTER=y | |||
655 | # CONFIG_TLAN is not set | 660 | # CONFIG_TLAN is not set |
656 | # CONFIG_VIA_RHINE is not set | 661 | # CONFIG_VIA_RHINE is not set |
657 | # CONFIG_SC92031 is not set | 662 | # CONFIG_SC92031 is not set |
663 | # CONFIG_ATL2 is not set | ||
658 | CONFIG_NETDEV_1000=y | 664 | CONFIG_NETDEV_1000=y |
659 | # CONFIG_ACENIC is not set | 665 | # CONFIG_ACENIC is not set |
660 | # CONFIG_DL2K is not set | 666 | # CONFIG_DL2K is not set |
@@ -675,9 +681,11 @@ CONFIG_NETDEV_1000=y | |||
675 | # CONFIG_QLA3XXX is not set | 681 | # CONFIG_QLA3XXX is not set |
676 | # CONFIG_ATL1 is not set | 682 | # CONFIG_ATL1 is not set |
677 | # CONFIG_ATL1E is not set | 683 | # CONFIG_ATL1E is not set |
684 | # CONFIG_JME is not set | ||
678 | CONFIG_NETDEV_10000=y | 685 | CONFIG_NETDEV_10000=y |
679 | # CONFIG_CHELSIO_T1 is not set | 686 | # CONFIG_CHELSIO_T1 is not set |
680 | # CONFIG_CHELSIO_T3 is not set | 687 | # CONFIG_CHELSIO_T3 is not set |
688 | # CONFIG_ENIC is not set | ||
681 | # CONFIG_IXGBE is not set | 689 | # CONFIG_IXGBE is not set |
682 | # CONFIG_IXGB is not set | 690 | # CONFIG_IXGB is not set |
683 | # CONFIG_S2IO is not set | 691 | # CONFIG_S2IO is not set |
@@ -687,6 +695,7 @@ CONFIG_NETDEV_10000=y | |||
687 | # CONFIG_MLX4_CORE is not set | 695 | # CONFIG_MLX4_CORE is not set |
688 | # CONFIG_TEHUTI is not set | 696 | # CONFIG_TEHUTI is not set |
689 | # CONFIG_BNX2X is not set | 697 | # CONFIG_BNX2X is not set |
698 | # CONFIG_QLGE is not set | ||
690 | # CONFIG_SFC is not set | 699 | # CONFIG_SFC is not set |
691 | # CONFIG_TR is not set | 700 | # CONFIG_TR is not set |
692 | 701 | ||
@@ -832,6 +841,8 @@ CONFIG_SSB_POSSIBLE=y | |||
832 | # CONFIG_MFD_CORE is not set | 841 | # CONFIG_MFD_CORE is not set |
833 | # CONFIG_MFD_SM501 is not set | 842 | # CONFIG_MFD_SM501 is not set |
834 | # CONFIG_HTC_PASIC3 is not set | 843 | # CONFIG_HTC_PASIC3 is not set |
844 | # CONFIG_MFD_TMIO is not set | ||
845 | # CONFIG_MFD_WM8400 is not set | ||
835 | 846 | ||
836 | # | 847 | # |
837 | # Multimedia devices | 848 | # Multimedia devices |
@@ -872,6 +883,12 @@ CONFIG_HID_SUPPORT=y | |||
872 | CONFIG_HID=y | 883 | CONFIG_HID=y |
873 | # CONFIG_HID_DEBUG is not set | 884 | # CONFIG_HID_DEBUG is not set |
874 | # CONFIG_HIDRAW is not set | 885 | # CONFIG_HIDRAW is not set |
886 | # CONFIG_HID_PID is not set | ||
887 | |||
888 | # | ||
889 | # Special HID drivers | ||
890 | # | ||
891 | CONFIG_HID_COMPAT=y | ||
875 | CONFIG_USB_SUPPORT=y | 892 | CONFIG_USB_SUPPORT=y |
876 | CONFIG_USB_ARCH_HAS_HCD=y | 893 | CONFIG_USB_ARCH_HAS_HCD=y |
877 | CONFIG_USB_ARCH_HAS_OHCI=y | 894 | CONFIG_USB_ARCH_HAS_OHCI=y |
@@ -881,6 +898,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
881 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | 898 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set |
882 | 899 | ||
883 | # | 900 | # |
901 | # Enable Host or Gadget support to see Inventra options | ||
902 | # | ||
903 | |||
904 | # | ||
884 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 905 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
885 | # | 906 | # |
886 | # CONFIG_USB_GADGET is not set | 907 | # CONFIG_USB_GADGET is not set |
@@ -911,12 +932,15 @@ CONFIG_RTC_INTF_DEV=y | |||
911 | # | 932 | # |
912 | # Platform RTC drivers | 933 | # Platform RTC drivers |
913 | # | 934 | # |
935 | # CONFIG_RTC_DRV_DS1286 is not set | ||
914 | # CONFIG_RTC_DRV_DS1511 is not set | 936 | # CONFIG_RTC_DRV_DS1511 is not set |
915 | # CONFIG_RTC_DRV_DS1553 is not set | 937 | # CONFIG_RTC_DRV_DS1553 is not set |
916 | # CONFIG_RTC_DRV_DS1742 is not set | 938 | # CONFIG_RTC_DRV_DS1742 is not set |
917 | # CONFIG_RTC_DRV_STK17TA8 is not set | 939 | # CONFIG_RTC_DRV_STK17TA8 is not set |
918 | # CONFIG_RTC_DRV_M48T86 is not set | 940 | # CONFIG_RTC_DRV_M48T86 is not set |
941 | # CONFIG_RTC_DRV_M48T35 is not set | ||
919 | # CONFIG_RTC_DRV_M48T59 is not set | 942 | # CONFIG_RTC_DRV_M48T59 is not set |
943 | # CONFIG_RTC_DRV_BQ4802 is not set | ||
920 | # CONFIG_RTC_DRV_V3020 is not set | 944 | # CONFIG_RTC_DRV_V3020 is not set |
921 | 945 | ||
922 | # | 946 | # |
@@ -925,6 +949,7 @@ CONFIG_RTC_INTF_DEV=y | |||
925 | # CONFIG_RTC_DRV_SH is not set | 949 | # CONFIG_RTC_DRV_SH is not set |
926 | # CONFIG_DMADEVICES is not set | 950 | # CONFIG_DMADEVICES is not set |
927 | # CONFIG_UIO is not set | 951 | # CONFIG_UIO is not set |
952 | # CONFIG_STAGING is not set | ||
928 | 953 | ||
929 | # | 954 | # |
930 | # File systems | 955 | # File systems |
@@ -936,12 +961,13 @@ CONFIG_EXT3_FS=y | |||
936 | CONFIG_EXT3_FS_XATTR=y | 961 | CONFIG_EXT3_FS_XATTR=y |
937 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 962 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
938 | # CONFIG_EXT3_FS_SECURITY is not set | 963 | # CONFIG_EXT3_FS_SECURITY is not set |
939 | # CONFIG_EXT4DEV_FS is not set | 964 | # CONFIG_EXT4_FS is not set |
940 | CONFIG_JBD=y | 965 | CONFIG_JBD=y |
941 | CONFIG_FS_MBCACHE=y | 966 | CONFIG_FS_MBCACHE=y |
942 | # CONFIG_REISERFS_FS is not set | 967 | # CONFIG_REISERFS_FS is not set |
943 | # CONFIG_JFS_FS is not set | 968 | # CONFIG_JFS_FS is not set |
944 | # CONFIG_FS_POSIX_ACL is not set | 969 | # CONFIG_FS_POSIX_ACL is not set |
970 | CONFIG_FILE_LOCKING=y | ||
945 | # CONFIG_XFS_FS is not set | 971 | # CONFIG_XFS_FS is not set |
946 | # CONFIG_OCFS2_FS is not set | 972 | # CONFIG_OCFS2_FS is not set |
947 | CONFIG_DNOTIFY=y | 973 | CONFIG_DNOTIFY=y |
@@ -974,6 +1000,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
974 | CONFIG_PROC_FS=y | 1000 | CONFIG_PROC_FS=y |
975 | # CONFIG_PROC_KCORE is not set | 1001 | # CONFIG_PROC_KCORE is not set |
976 | CONFIG_PROC_SYSCTL=y | 1002 | CONFIG_PROC_SYSCTL=y |
1003 | CONFIG_PROC_PAGE_MONITOR=y | ||
977 | CONFIG_SYSFS=y | 1004 | CONFIG_SYSFS=y |
978 | CONFIG_TMPFS=y | 1005 | CONFIG_TMPFS=y |
979 | # CONFIG_TMPFS_POSIX_ACL is not set | 1006 | # CONFIG_TMPFS_POSIX_ACL is not set |
@@ -1071,6 +1098,11 @@ CONFIG_FRAME_WARN=1024 | |||
1071 | # CONFIG_DEBUG_KERNEL is not set | 1098 | # CONFIG_DEBUG_KERNEL is not set |
1072 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1099 | # CONFIG_DEBUG_BUGVERBOSE is not set |
1073 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1100 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1101 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
1102 | # CONFIG_LATENCYTOP is not set | ||
1103 | CONFIG_NOP_TRACER=y | ||
1104 | CONFIG_HAVE_FTRACE=y | ||
1105 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
1074 | # CONFIG_SAMPLES is not set | 1106 | # CONFIG_SAMPLES is not set |
1075 | CONFIG_SH_STANDARD_BIOS=y | 1107 | CONFIG_SH_STANDARD_BIOS=y |
1076 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 1108 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
@@ -1082,12 +1114,14 @@ CONFIG_SH_STANDARD_BIOS=y | |||
1082 | # | 1114 | # |
1083 | # CONFIG_KEYS is not set | 1115 | # CONFIG_KEYS is not set |
1084 | # CONFIG_SECURITY is not set | 1116 | # CONFIG_SECURITY is not set |
1117 | # CONFIG_SECURITYFS is not set | ||
1085 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1118 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
1086 | CONFIG_CRYPTO=y | 1119 | CONFIG_CRYPTO=y |
1087 | 1120 | ||
1088 | # | 1121 | # |
1089 | # Crypto core or helper | 1122 | # Crypto core or helper |
1090 | # | 1123 | # |
1124 | # CONFIG_CRYPTO_FIPS is not set | ||
1091 | # CONFIG_CRYPTO_MANAGER is not set | 1125 | # CONFIG_CRYPTO_MANAGER is not set |
1092 | # CONFIG_CRYPTO_GF128MUL is not set | 1126 | # CONFIG_CRYPTO_GF128MUL is not set |
1093 | # CONFIG_CRYPTO_NULL is not set | 1127 | # CONFIG_CRYPTO_NULL is not set |
@@ -1160,6 +1194,11 @@ CONFIG_CRYPTO=y | |||
1160 | # | 1194 | # |
1161 | # CONFIG_CRYPTO_DEFLATE is not set | 1195 | # CONFIG_CRYPTO_DEFLATE is not set |
1162 | # CONFIG_CRYPTO_LZO is not set | 1196 | # CONFIG_CRYPTO_LZO is not set |
1197 | |||
1198 | # | ||
1199 | # Random Number Generation | ||
1200 | # | ||
1201 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
1163 | CONFIG_CRYPTO_HW=y | 1202 | CONFIG_CRYPTO_HW=y |
1164 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 1203 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
1165 | 1204 | ||
@@ -1167,7 +1206,6 @@ CONFIG_CRYPTO_HW=y | |||
1167 | # Library routines | 1206 | # Library routines |
1168 | # | 1207 | # |
1169 | CONFIG_BITREVERSE=y | 1208 | CONFIG_BITREVERSE=y |
1170 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
1171 | # CONFIG_CRC_CCITT is not set | 1209 | # CONFIG_CRC_CCITT is not set |
1172 | # CONFIG_CRC16 is not set | 1210 | # CONFIG_CRC16 is not set |
1173 | CONFIG_CRC_T10DIF=y | 1211 | CONFIG_CRC_T10DIF=y |
diff --git a/arch/sh/configs/magicpanelr2_defconfig b/arch/sh/configs/magicpanelr2_defconfig index a3a80f3d27c0..499ed7204385 100644 --- a/arch/sh/configs/magicpanelr2_defconfig +++ b/arch/sh/configs/magicpanelr2_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.26 | 3 | # Linux kernel version: 2.6.27 |
4 | # Wed Jul 30 01:41:08 2008 | 4 | # Wed Oct 22 18:32:23 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -11,16 +11,17 @@ CONFIG_GENERIC_BUG=y | |||
11 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
12 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
13 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
14 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
15 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | CONFIG_GENERIC_GPIO=y |
16 | CONFIG_GENERIC_TIME=y | 17 | CONFIG_GENERIC_TIME=y |
17 | CONFIG_GENERIC_CLOCKEVENTS=y | 18 | CONFIG_GENERIC_CLOCKEVENTS=y |
18 | CONFIG_STACKTRACE_SUPPORT=y | 19 | CONFIG_STACKTRACE_SUPPORT=y |
19 | CONFIG_LOCKDEP_SUPPORT=y | 20 | CONFIG_LOCKDEP_SUPPORT=y |
21 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
20 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 22 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
21 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 23 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
22 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 24 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
23 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
24 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 25 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
25 | 26 | ||
26 | # | 27 | # |
@@ -55,7 +56,6 @@ CONFIG_SYSCTL=y | |||
55 | CONFIG_EMBEDDED=y | 56 | CONFIG_EMBEDDED=y |
56 | CONFIG_UID16=y | 57 | CONFIG_UID16=y |
57 | CONFIG_SYSCTL_SYSCALL=y | 58 | CONFIG_SYSCTL_SYSCALL=y |
58 | CONFIG_SYSCTL_SYSCALL_CHECK=y | ||
59 | CONFIG_KALLSYMS=y | 59 | CONFIG_KALLSYMS=y |
60 | CONFIG_KALLSYMS_ALL=y | 60 | CONFIG_KALLSYMS_ALL=y |
61 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 61 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
@@ -72,22 +72,22 @@ CONFIG_SIGNALFD=y | |||
72 | CONFIG_TIMERFD=y | 72 | CONFIG_TIMERFD=y |
73 | CONFIG_EVENTFD=y | 73 | CONFIG_EVENTFD=y |
74 | CONFIG_SHMEM=y | 74 | CONFIG_SHMEM=y |
75 | CONFIG_AIO=y | ||
75 | CONFIG_VM_EVENT_COUNTERS=y | 76 | CONFIG_VM_EVENT_COUNTERS=y |
77 | CONFIG_PCI_QUIRKS=y | ||
76 | CONFIG_SLAB=y | 78 | CONFIG_SLAB=y |
77 | # CONFIG_SLUB is not set | 79 | # CONFIG_SLUB is not set |
78 | # CONFIG_SLOB is not set | 80 | # CONFIG_SLOB is not set |
79 | # CONFIG_PROFILING is not set | 81 | # CONFIG_PROFILING is not set |
80 | # CONFIG_MARKERS is not set | 82 | # CONFIG_MARKERS is not set |
81 | CONFIG_HAVE_OPROFILE=y | 83 | CONFIG_HAVE_OPROFILE=y |
82 | # CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set | 84 | # CONFIG_KPROBES is not set |
83 | # CONFIG_HAVE_IOREMAP_PROT is not set | 85 | CONFIG_HAVE_IOREMAP_PROT=y |
84 | # CONFIG_HAVE_KPROBES is not set | 86 | CONFIG_HAVE_KPROBES=y |
85 | # CONFIG_HAVE_KRETPROBES is not set | 87 | CONFIG_HAVE_KRETPROBES=y |
86 | # CONFIG_HAVE_ARCH_TRACEHOOK is not set | 88 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
87 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
88 | # CONFIG_USE_GENERIC_SMP_HELPERS is not set | ||
89 | CONFIG_HAVE_CLK=y | 89 | CONFIG_HAVE_CLK=y |
90 | CONFIG_PROC_PAGE_MONITOR=y | 90 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
91 | CONFIG_SLABINFO=y | 91 | CONFIG_SLABINFO=y |
92 | CONFIG_RT_MUTEXES=y | 92 | CONFIG_RT_MUTEXES=y |
93 | # CONFIG_TINY_SHMEM is not set | 93 | # CONFIG_TINY_SHMEM is not set |
@@ -119,6 +119,7 @@ CONFIG_IOSCHED_NOOP=y | |||
119 | CONFIG_DEFAULT_NOOP=y | 119 | CONFIG_DEFAULT_NOOP=y |
120 | CONFIG_DEFAULT_IOSCHED="noop" | 120 | CONFIG_DEFAULT_IOSCHED="noop" |
121 | CONFIG_CLASSIC_RCU=y | 121 | CONFIG_CLASSIC_RCU=y |
122 | # CONFIG_FREEZER is not set | ||
122 | 123 | ||
123 | # | 124 | # |
124 | # System type | 125 | # System type |
@@ -186,12 +187,13 @@ CONFIG_FLATMEM_MANUAL=y | |||
186 | CONFIG_FLATMEM=y | 187 | CONFIG_FLATMEM=y |
187 | CONFIG_FLAT_NODE_MEM_MAP=y | 188 | CONFIG_FLAT_NODE_MEM_MAP=y |
188 | CONFIG_SPARSEMEM_STATIC=y | 189 | CONFIG_SPARSEMEM_STATIC=y |
189 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
190 | CONFIG_PAGEFLAGS_EXTENDED=y | 190 | CONFIG_PAGEFLAGS_EXTENDED=y |
191 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 191 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
192 | # CONFIG_RESOURCES_64BIT is not set | 192 | # CONFIG_RESOURCES_64BIT is not set |
193 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
193 | CONFIG_ZONE_DMA_FLAG=0 | 194 | CONFIG_ZONE_DMA_FLAG=0 |
194 | CONFIG_NR_QUICK=2 | 195 | CONFIG_NR_QUICK=2 |
196 | CONFIG_UNEVICTABLE_LRU=y | ||
195 | 197 | ||
196 | # | 198 | # |
197 | # Cache configuration | 199 | # Cache configuration |
@@ -229,7 +231,6 @@ CONFIG_SH_MAGIC_PANEL_R2_VERSION=3 | |||
229 | CONFIG_SH_TMU=y | 231 | CONFIG_SH_TMU=y |
230 | CONFIG_SH_TIMER_IRQ=16 | 232 | CONFIG_SH_TIMER_IRQ=16 |
231 | CONFIG_SH_PCLK_FREQ=24000000 | 233 | CONFIG_SH_PCLK_FREQ=24000000 |
232 | # CONFIG_TICK_ONESHOT is not set | ||
233 | # CONFIG_NO_HZ is not set | 234 | # CONFIG_NO_HZ is not set |
234 | # CONFIG_HIGH_RES_TIMERS is not set | 235 | # CONFIG_HIGH_RES_TIMERS is not set |
235 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | 236 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y |
@@ -268,6 +269,7 @@ CONFIG_HZ=250 | |||
268 | # CONFIG_SCHED_HRTICK is not set | 269 | # CONFIG_SCHED_HRTICK is not set |
269 | # CONFIG_KEXEC is not set | 270 | # CONFIG_KEXEC is not set |
270 | # CONFIG_CRASH_DUMP is not set | 271 | # CONFIG_CRASH_DUMP is not set |
272 | # CONFIG_SECCOMP is not set | ||
271 | CONFIG_PREEMPT_NONE=y | 273 | CONFIG_PREEMPT_NONE=y |
272 | # CONFIG_PREEMPT_VOLUNTARY is not set | 274 | # CONFIG_PREEMPT_VOLUNTARY is not set |
273 | # CONFIG_PREEMPT is not set | 275 | # CONFIG_PREEMPT is not set |
@@ -291,11 +293,9 @@ CONFIG_BOOT_LINK_OFFSET=0x00800000 | |||
291 | # Executable file formats | 293 | # Executable file formats |
292 | # | 294 | # |
293 | CONFIG_BINFMT_ELF=y | 295 | CONFIG_BINFMT_ELF=y |
296 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
297 | # CONFIG_HAVE_AOUT is not set | ||
294 | # CONFIG_BINFMT_MISC is not set | 298 | # CONFIG_BINFMT_MISC is not set |
295 | |||
296 | # | ||
297 | # Networking | ||
298 | # | ||
299 | CONFIG_NET=y | 299 | CONFIG_NET=y |
300 | 300 | ||
301 | # | 301 | # |
@@ -340,6 +340,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
340 | # CONFIG_TIPC is not set | 340 | # CONFIG_TIPC is not set |
341 | # CONFIG_ATM is not set | 341 | # CONFIG_ATM is not set |
342 | # CONFIG_BRIDGE is not set | 342 | # CONFIG_BRIDGE is not set |
343 | # CONFIG_NET_DSA is not set | ||
343 | # CONFIG_VLAN_8021Q is not set | 344 | # CONFIG_VLAN_8021Q is not set |
344 | # CONFIG_DECNET is not set | 345 | # CONFIG_DECNET is not set |
345 | # CONFIG_LLC2 is not set | 346 | # CONFIG_LLC2 is not set |
@@ -360,11 +361,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
360 | # CONFIG_IRDA is not set | 361 | # CONFIG_IRDA is not set |
361 | # CONFIG_BT is not set | 362 | # CONFIG_BT is not set |
362 | # CONFIG_AF_RXRPC is not set | 363 | # CONFIG_AF_RXRPC is not set |
363 | 364 | # CONFIG_PHONET is not set | |
364 | # | 365 | CONFIG_WIRELESS=y |
365 | # Wireless | ||
366 | # | ||
367 | # CONFIG_CFG80211 is not set | 366 | # CONFIG_CFG80211 is not set |
367 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
368 | # CONFIG_WIRELESS_EXT is not set | 368 | # CONFIG_WIRELESS_EXT is not set |
369 | # CONFIG_MAC80211 is not set | 369 | # CONFIG_MAC80211 is not set |
370 | # CONFIG_IEEE80211 is not set | 370 | # CONFIG_IEEE80211 is not set |
@@ -513,6 +513,9 @@ CONFIG_SMC911X=y | |||
513 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 513 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
514 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 514 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
515 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 515 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
516 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
517 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
518 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
516 | # CONFIG_B44 is not set | 519 | # CONFIG_B44 is not set |
517 | # CONFIG_NETDEV_1000 is not set | 520 | # CONFIG_NETDEV_1000 is not set |
518 | # CONFIG_NETDEV_10000 is not set | 521 | # CONFIG_NETDEV_10000 is not set |
@@ -560,11 +563,13 @@ CONFIG_KEYBOARD_ATKBD=y | |||
560 | # CONFIG_KEYBOARD_XTKBD is not set | 563 | # CONFIG_KEYBOARD_XTKBD is not set |
561 | # CONFIG_KEYBOARD_NEWTON is not set | 564 | # CONFIG_KEYBOARD_NEWTON is not set |
562 | # CONFIG_KEYBOARD_STOWAWAY is not set | 565 | # CONFIG_KEYBOARD_STOWAWAY is not set |
566 | # CONFIG_KEYBOARD_GPIO is not set | ||
563 | # CONFIG_KEYBOARD_SH_KEYSC is not set | 567 | # CONFIG_KEYBOARD_SH_KEYSC is not set |
564 | CONFIG_INPUT_MOUSE=y | 568 | CONFIG_INPUT_MOUSE=y |
565 | # CONFIG_MOUSE_PS2 is not set | 569 | # CONFIG_MOUSE_PS2 is not set |
566 | # CONFIG_MOUSE_SERIAL is not set | 570 | # CONFIG_MOUSE_SERIAL is not set |
567 | # CONFIG_MOUSE_VSXXXAA is not set | 571 | # CONFIG_MOUSE_VSXXXAA is not set |
572 | # CONFIG_MOUSE_GPIO is not set | ||
568 | # CONFIG_INPUT_JOYSTICK is not set | 573 | # CONFIG_INPUT_JOYSTICK is not set |
569 | # CONFIG_INPUT_TABLET is not set | 574 | # CONFIG_INPUT_TABLET is not set |
570 | # CONFIG_INPUT_TOUCHSCREEN is not set | 575 | # CONFIG_INPUT_TOUCHSCREEN is not set |
@@ -641,6 +646,8 @@ CONFIG_SSB_POSSIBLE=y | |||
641 | # CONFIG_MFD_CORE is not set | 646 | # CONFIG_MFD_CORE is not set |
642 | # CONFIG_MFD_SM501 is not set | 647 | # CONFIG_MFD_SM501 is not set |
643 | # CONFIG_HTC_PASIC3 is not set | 648 | # CONFIG_HTC_PASIC3 is not set |
649 | # CONFIG_MFD_TMIO is not set | ||
650 | # CONFIG_MFD_WM8400 is not set | ||
644 | 651 | ||
645 | # | 652 | # |
646 | # Multimedia devices | 653 | # Multimedia devices |
@@ -703,12 +710,15 @@ CONFIG_RTC_INTF_DEV=y | |||
703 | # | 710 | # |
704 | # Platform RTC drivers | 711 | # Platform RTC drivers |
705 | # | 712 | # |
713 | # CONFIG_RTC_DRV_DS1286 is not set | ||
706 | # CONFIG_RTC_DRV_DS1511 is not set | 714 | # CONFIG_RTC_DRV_DS1511 is not set |
707 | # CONFIG_RTC_DRV_DS1553 is not set | 715 | # CONFIG_RTC_DRV_DS1553 is not set |
708 | # CONFIG_RTC_DRV_DS1742 is not set | 716 | # CONFIG_RTC_DRV_DS1742 is not set |
709 | # CONFIG_RTC_DRV_STK17TA8 is not set | 717 | # CONFIG_RTC_DRV_STK17TA8 is not set |
710 | # CONFIG_RTC_DRV_M48T86 is not set | 718 | # CONFIG_RTC_DRV_M48T86 is not set |
719 | # CONFIG_RTC_DRV_M48T35 is not set | ||
711 | # CONFIG_RTC_DRV_M48T59 is not set | 720 | # CONFIG_RTC_DRV_M48T59 is not set |
721 | # CONFIG_RTC_DRV_BQ4802 is not set | ||
712 | # CONFIG_RTC_DRV_V3020 is not set | 722 | # CONFIG_RTC_DRV_V3020 is not set |
713 | 723 | ||
714 | # | 724 | # |
@@ -717,6 +727,7 @@ CONFIG_RTC_INTF_DEV=y | |||
717 | CONFIG_RTC_DRV_SH=y | 727 | CONFIG_RTC_DRV_SH=y |
718 | # CONFIG_DMADEVICES is not set | 728 | # CONFIG_DMADEVICES is not set |
719 | # CONFIG_UIO is not set | 729 | # CONFIG_UIO is not set |
730 | # CONFIG_STAGING is not set | ||
720 | 731 | ||
721 | # | 732 | # |
722 | # File systems | 733 | # File systems |
@@ -726,11 +737,12 @@ CONFIG_EXT2_FS=y | |||
726 | # CONFIG_EXT2_FS_XIP is not set | 737 | # CONFIG_EXT2_FS_XIP is not set |
727 | CONFIG_EXT3_FS=y | 738 | CONFIG_EXT3_FS=y |
728 | # CONFIG_EXT3_FS_XATTR is not set | 739 | # CONFIG_EXT3_FS_XATTR is not set |
729 | # CONFIG_EXT4DEV_FS is not set | 740 | # CONFIG_EXT4_FS is not set |
730 | CONFIG_JBD=y | 741 | CONFIG_JBD=y |
731 | # CONFIG_REISERFS_FS is not set | 742 | # CONFIG_REISERFS_FS is not set |
732 | # CONFIG_JFS_FS is not set | 743 | # CONFIG_JFS_FS is not set |
733 | # CONFIG_FS_POSIX_ACL is not set | 744 | # CONFIG_FS_POSIX_ACL is not set |
745 | CONFIG_FILE_LOCKING=y | ||
734 | # CONFIG_XFS_FS is not set | 746 | # CONFIG_XFS_FS is not set |
735 | # CONFIG_OCFS2_FS is not set | 747 | # CONFIG_OCFS2_FS is not set |
736 | # CONFIG_DNOTIFY is not set | 748 | # CONFIG_DNOTIFY is not set |
@@ -759,6 +771,7 @@ CONFIG_JBD=y | |||
759 | CONFIG_PROC_FS=y | 771 | CONFIG_PROC_FS=y |
760 | CONFIG_PROC_KCORE=y | 772 | CONFIG_PROC_KCORE=y |
761 | CONFIG_PROC_SYSCTL=y | 773 | CONFIG_PROC_SYSCTL=y |
774 | CONFIG_PROC_PAGE_MONITOR=y | ||
762 | CONFIG_SYSFS=y | 775 | CONFIG_SYSFS=y |
763 | CONFIG_TMPFS=y | 776 | CONFIG_TMPFS=y |
764 | # CONFIG_TMPFS_POSIX_ACL is not set | 777 | # CONFIG_TMPFS_POSIX_ACL is not set |
@@ -806,6 +819,7 @@ CONFIG_LOCKD=y | |||
806 | CONFIG_LOCKD_V4=y | 819 | CONFIG_LOCKD_V4=y |
807 | CONFIG_NFS_COMMON=y | 820 | CONFIG_NFS_COMMON=y |
808 | CONFIG_SUNRPC=y | 821 | CONFIG_SUNRPC=y |
822 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
809 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 823 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
810 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 824 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
811 | # CONFIG_SMB_FS is not set | 825 | # CONFIG_SMB_FS is not set |
@@ -899,10 +913,22 @@ CONFIG_DEBUG_INFO=y | |||
899 | # CONFIG_DEBUG_LIST is not set | 913 | # CONFIG_DEBUG_LIST is not set |
900 | # CONFIG_DEBUG_SG is not set | 914 | # CONFIG_DEBUG_SG is not set |
901 | CONFIG_FRAME_POINTER=y | 915 | CONFIG_FRAME_POINTER=y |
902 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
903 | # CONFIG_RCU_TORTURE_TEST is not set | 916 | # CONFIG_RCU_TORTURE_TEST is not set |
917 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
904 | # CONFIG_BACKTRACE_SELF_TEST is not set | 918 | # CONFIG_BACKTRACE_SELF_TEST is not set |
919 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
905 | # CONFIG_FAULT_INJECTION is not set | 920 | # CONFIG_FAULT_INJECTION is not set |
921 | # CONFIG_LATENCYTOP is not set | ||
922 | CONFIG_SYSCTL_SYSCALL_CHECK=y | ||
923 | CONFIG_NOP_TRACER=y | ||
924 | CONFIG_HAVE_FTRACE=y | ||
925 | # CONFIG_FTRACE is not set | ||
926 | # CONFIG_IRQSOFF_TRACER is not set | ||
927 | # CONFIG_SCHED_TRACER is not set | ||
928 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
929 | # CONFIG_BOOT_TRACER is not set | ||
930 | # CONFIG_STACK_TRACER is not set | ||
931 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
906 | # CONFIG_SAMPLES is not set | 932 | # CONFIG_SAMPLES is not set |
907 | # CONFIG_SH_STANDARD_BIOS is not set | 933 | # CONFIG_SH_STANDARD_BIOS is not set |
908 | CONFIG_EARLY_SCIF_CONSOLE=y | 934 | CONFIG_EARLY_SCIF_CONSOLE=y |
@@ -938,6 +964,7 @@ CONFIG_KGDB_DEFBITS_8=y | |||
938 | # | 964 | # |
939 | # CONFIG_KEYS is not set | 965 | # CONFIG_KEYS is not set |
940 | # CONFIG_SECURITY is not set | 966 | # CONFIG_SECURITY is not set |
967 | # CONFIG_SECURITYFS is not set | ||
941 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 968 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
942 | # CONFIG_CRYPTO is not set | 969 | # CONFIG_CRYPTO is not set |
943 | 970 | ||
@@ -945,7 +972,6 @@ CONFIG_KGDB_DEFBITS_8=y | |||
945 | # Library routines | 972 | # Library routines |
946 | # | 973 | # |
947 | CONFIG_BITREVERSE=y | 974 | CONFIG_BITREVERSE=y |
948 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
949 | CONFIG_CRC_CCITT=m | 975 | CONFIG_CRC_CCITT=m |
950 | CONFIG_CRC16=m | 976 | CONFIG_CRC16=m |
951 | # CONFIG_CRC_T10DIF is not set | 977 | # CONFIG_CRC_T10DIF is not set |
diff --git a/arch/sh/configs/microdev_defconfig b/arch/sh/configs/microdev_defconfig index e4b900e72dcd..b8ada8ce98d9 100644 --- a/arch/sh/configs/microdev_defconfig +++ b/arch/sh/configs/microdev_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.26 | 3 | # Linux kernel version: 2.6.27 |
4 | # Wed Jul 30 01:47:16 2008 | 4 | # Wed Oct 22 18:37:41 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -11,16 +11,17 @@ CONFIG_GENERIC_BUG=y | |||
11 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
12 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
13 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
14 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
15 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
16 | CONFIG_GENERIC_TIME=y | 17 | CONFIG_GENERIC_TIME=y |
17 | CONFIG_GENERIC_CLOCKEVENTS=y | 18 | CONFIG_GENERIC_CLOCKEVENTS=y |
18 | CONFIG_STACKTRACE_SUPPORT=y | 19 | CONFIG_STACKTRACE_SUPPORT=y |
19 | CONFIG_LOCKDEP_SUPPORT=y | 20 | CONFIG_LOCKDEP_SUPPORT=y |
21 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
20 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 22 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
21 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 23 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
22 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 24 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
23 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
24 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 25 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
25 | 26 | ||
26 | # | 27 | # |
@@ -69,22 +70,21 @@ CONFIG_SIGNALFD=y | |||
69 | CONFIG_TIMERFD=y | 70 | CONFIG_TIMERFD=y |
70 | CONFIG_EVENTFD=y | 71 | CONFIG_EVENTFD=y |
71 | CONFIG_SHMEM=y | 72 | CONFIG_SHMEM=y |
73 | CONFIG_AIO=y | ||
72 | CONFIG_VM_EVENT_COUNTERS=y | 74 | CONFIG_VM_EVENT_COUNTERS=y |
75 | CONFIG_PCI_QUIRKS=y | ||
73 | CONFIG_SLAB=y | 76 | CONFIG_SLAB=y |
74 | # CONFIG_SLUB is not set | 77 | # CONFIG_SLUB is not set |
75 | # CONFIG_SLOB is not set | 78 | # CONFIG_SLOB is not set |
76 | # CONFIG_PROFILING is not set | 79 | # CONFIG_PROFILING is not set |
77 | # CONFIG_MARKERS is not set | 80 | # CONFIG_MARKERS is not set |
78 | CONFIG_HAVE_OPROFILE=y | 81 | CONFIG_HAVE_OPROFILE=y |
79 | # CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set | 82 | CONFIG_HAVE_IOREMAP_PROT=y |
80 | # CONFIG_HAVE_IOREMAP_PROT is not set | 83 | CONFIG_HAVE_KPROBES=y |
81 | # CONFIG_HAVE_KPROBES is not set | 84 | CONFIG_HAVE_KRETPROBES=y |
82 | # CONFIG_HAVE_KRETPROBES is not set | 85 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
83 | # CONFIG_HAVE_ARCH_TRACEHOOK is not set | ||
84 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
85 | # CONFIG_USE_GENERIC_SMP_HELPERS is not set | ||
86 | CONFIG_HAVE_CLK=y | 86 | CONFIG_HAVE_CLK=y |
87 | CONFIG_PROC_PAGE_MONITOR=y | 87 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
88 | CONFIG_SLABINFO=y | 88 | CONFIG_SLABINFO=y |
89 | CONFIG_RT_MUTEXES=y | 89 | CONFIG_RT_MUTEXES=y |
90 | # CONFIG_TINY_SHMEM is not set | 90 | # CONFIG_TINY_SHMEM is not set |
@@ -110,6 +110,7 @@ CONFIG_DEFAULT_AS=y | |||
110 | # CONFIG_DEFAULT_NOOP is not set | 110 | # CONFIG_DEFAULT_NOOP is not set |
111 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 111 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
112 | CONFIG_CLASSIC_RCU=y | 112 | CONFIG_CLASSIC_RCU=y |
113 | # CONFIG_FREEZER is not set | ||
113 | 114 | ||
114 | # | 115 | # |
115 | # System type | 116 | # System type |
@@ -183,12 +184,13 @@ CONFIG_FLATMEM_MANUAL=y | |||
183 | CONFIG_FLATMEM=y | 184 | CONFIG_FLATMEM=y |
184 | CONFIG_FLAT_NODE_MEM_MAP=y | 185 | CONFIG_FLAT_NODE_MEM_MAP=y |
185 | CONFIG_SPARSEMEM_STATIC=y | 186 | CONFIG_SPARSEMEM_STATIC=y |
186 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
187 | CONFIG_PAGEFLAGS_EXTENDED=y | 187 | CONFIG_PAGEFLAGS_EXTENDED=y |
188 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 188 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
189 | # CONFIG_RESOURCES_64BIT is not set | 189 | # CONFIG_RESOURCES_64BIT is not set |
190 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
190 | CONFIG_ZONE_DMA_FLAG=0 | 191 | CONFIG_ZONE_DMA_FLAG=0 |
191 | CONFIG_NR_QUICK=2 | 192 | CONFIG_NR_QUICK=2 |
193 | CONFIG_UNEVICTABLE_LRU=y | ||
192 | 194 | ||
193 | # | 195 | # |
194 | # Cache configuration | 196 | # Cache configuration |
@@ -221,7 +223,6 @@ CONFIG_SH_SH4202_MICRODEV=y | |||
221 | CONFIG_SH_TMU=y | 223 | CONFIG_SH_TMU=y |
222 | CONFIG_SH_TIMER_IRQ=16 | 224 | CONFIG_SH_TIMER_IRQ=16 |
223 | CONFIG_SH_PCLK_FREQ=66000000 | 225 | CONFIG_SH_PCLK_FREQ=66000000 |
224 | # CONFIG_TICK_ONESHOT is not set | ||
225 | # CONFIG_NO_HZ is not set | 226 | # CONFIG_NO_HZ is not set |
226 | # CONFIG_HIGH_RES_TIMERS is not set | 227 | # CONFIG_HIGH_RES_TIMERS is not set |
227 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | 228 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y |
@@ -260,6 +261,7 @@ CONFIG_HZ=250 | |||
260 | # CONFIG_SCHED_HRTICK is not set | 261 | # CONFIG_SCHED_HRTICK is not set |
261 | # CONFIG_KEXEC is not set | 262 | # CONFIG_KEXEC is not set |
262 | # CONFIG_CRASH_DUMP is not set | 263 | # CONFIG_CRASH_DUMP is not set |
264 | # CONFIG_SECCOMP is not set | ||
263 | # CONFIG_PREEMPT_NONE is not set | 265 | # CONFIG_PREEMPT_NONE is not set |
264 | # CONFIG_PREEMPT_VOLUNTARY is not set | 266 | # CONFIG_PREEMPT_VOLUNTARY is not set |
265 | CONFIG_PREEMPT=y | 267 | CONFIG_PREEMPT=y |
@@ -287,11 +289,9 @@ CONFIG_SUPERHYWAY=y | |||
287 | # Executable file formats | 289 | # Executable file formats |
288 | # | 290 | # |
289 | CONFIG_BINFMT_ELF=y | 291 | CONFIG_BINFMT_ELF=y |
292 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
293 | # CONFIG_HAVE_AOUT is not set | ||
290 | # CONFIG_BINFMT_MISC is not set | 294 | # CONFIG_BINFMT_MISC is not set |
291 | |||
292 | # | ||
293 | # Networking | ||
294 | # | ||
295 | CONFIG_NET=y | 295 | CONFIG_NET=y |
296 | 296 | ||
297 | # | 297 | # |
@@ -340,6 +340,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
340 | # CONFIG_TIPC is not set | 340 | # CONFIG_TIPC is not set |
341 | # CONFIG_ATM is not set | 341 | # CONFIG_ATM is not set |
342 | # CONFIG_BRIDGE is not set | 342 | # CONFIG_BRIDGE is not set |
343 | # CONFIG_NET_DSA is not set | ||
343 | # CONFIG_VLAN_8021Q is not set | 344 | # CONFIG_VLAN_8021Q is not set |
344 | # CONFIG_DECNET is not set | 345 | # CONFIG_DECNET is not set |
345 | # CONFIG_LLC2 is not set | 346 | # CONFIG_LLC2 is not set |
@@ -360,11 +361,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
360 | # CONFIG_IRDA is not set | 361 | # CONFIG_IRDA is not set |
361 | # CONFIG_BT is not set | 362 | # CONFIG_BT is not set |
362 | # CONFIG_AF_RXRPC is not set | 363 | # CONFIG_AF_RXRPC is not set |
363 | 364 | # CONFIG_PHONET is not set | |
364 | # | 365 | CONFIG_WIRELESS=y |
365 | # Wireless | ||
366 | # | ||
367 | # CONFIG_CFG80211 is not set | 366 | # CONFIG_CFG80211 is not set |
367 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
368 | # CONFIG_WIRELESS_EXT is not set | 368 | # CONFIG_WIRELESS_EXT is not set |
369 | # CONFIG_MAC80211 is not set | 369 | # CONFIG_MAC80211 is not set |
370 | # CONFIG_IEEE80211 is not set | 370 | # CONFIG_IEEE80211 is not set |
@@ -402,19 +402,17 @@ CONFIG_MISC_DEVICES=y | |||
402 | # CONFIG_ENCLOSURE_SERVICES is not set | 402 | # CONFIG_ENCLOSURE_SERVICES is not set |
403 | CONFIG_HAVE_IDE=y | 403 | CONFIG_HAVE_IDE=y |
404 | CONFIG_IDE=y | 404 | CONFIG_IDE=y |
405 | CONFIG_IDE_MAX_HWIFS=1 | ||
406 | CONFIG_BLK_DEV_IDE=y | ||
407 | 405 | ||
408 | # | 406 | # |
409 | # Please see Documentation/ide/ide.txt for help/info on IDE drives | 407 | # Please see Documentation/ide/ide.txt for help/info on IDE drives |
410 | # | 408 | # |
411 | # CONFIG_BLK_DEV_IDE_SATA is not set | 409 | # CONFIG_BLK_DEV_IDE_SATA is not set |
412 | CONFIG_BLK_DEV_IDEDISK=y | 410 | CONFIG_IDE_GD=y |
413 | # CONFIG_IDEDISK_MULTI_MODE is not set | 411 | CONFIG_IDE_GD_ATA=y |
412 | # CONFIG_IDE_GD_ATAPI is not set | ||
414 | CONFIG_BLK_DEV_IDECD=y | 413 | CONFIG_BLK_DEV_IDECD=y |
415 | CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y | 414 | CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y |
416 | # CONFIG_BLK_DEV_IDETAPE is not set | 415 | # CONFIG_BLK_DEV_IDETAPE is not set |
417 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | ||
418 | # CONFIG_IDE_TASK_IOCTL is not set | 416 | # CONFIG_IDE_TASK_IOCTL is not set |
419 | CONFIG_IDE_PROC_FS=y | 417 | CONFIG_IDE_PROC_FS=y |
420 | 418 | ||
@@ -451,6 +449,9 @@ CONFIG_SMC91X=y | |||
451 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 449 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
452 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 450 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
453 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 451 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
452 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
453 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
454 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
454 | # CONFIG_B44 is not set | 455 | # CONFIG_B44 is not set |
455 | CONFIG_NETDEV_1000=y | 456 | CONFIG_NETDEV_1000=y |
456 | CONFIG_NETDEV_10000=y | 457 | CONFIG_NETDEV_10000=y |
@@ -542,6 +543,8 @@ CONFIG_SSB_POSSIBLE=y | |||
542 | # CONFIG_MFD_CORE is not set | 543 | # CONFIG_MFD_CORE is not set |
543 | # CONFIG_MFD_SM501 is not set | 544 | # CONFIG_MFD_SM501 is not set |
544 | # CONFIG_HTC_PASIC3 is not set | 545 | # CONFIG_HTC_PASIC3 is not set |
546 | # CONFIG_MFD_TMIO is not set | ||
547 | # CONFIG_MFD_WM8400 is not set | ||
545 | 548 | ||
546 | # | 549 | # |
547 | # Multimedia devices | 550 | # Multimedia devices |
@@ -581,6 +584,10 @@ CONFIG_USB_ARCH_HAS_HCD=y | |||
581 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | 584 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set |
582 | 585 | ||
583 | # | 586 | # |
587 | # Enable Host or Gadget support to see Inventra options | ||
588 | # | ||
589 | |||
590 | # | ||
584 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 591 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
585 | # | 592 | # |
586 | # CONFIG_USB_GADGET is not set | 593 | # CONFIG_USB_GADGET is not set |
@@ -591,6 +598,7 @@ CONFIG_USB_ARCH_HAS_HCD=y | |||
591 | # CONFIG_RTC_CLASS is not set | 598 | # CONFIG_RTC_CLASS is not set |
592 | # CONFIG_DMADEVICES is not set | 599 | # CONFIG_DMADEVICES is not set |
593 | # CONFIG_UIO is not set | 600 | # CONFIG_UIO is not set |
601 | # CONFIG_STAGING is not set | ||
594 | 602 | ||
595 | # | 603 | # |
596 | # File systems | 604 | # File systems |
@@ -602,12 +610,13 @@ CONFIG_EXT3_FS=y | |||
602 | CONFIG_EXT3_FS_XATTR=y | 610 | CONFIG_EXT3_FS_XATTR=y |
603 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 611 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
604 | # CONFIG_EXT3_FS_SECURITY is not set | 612 | # CONFIG_EXT3_FS_SECURITY is not set |
605 | # CONFIG_EXT4DEV_FS is not set | 613 | # CONFIG_EXT4_FS is not set |
606 | CONFIG_JBD=y | 614 | CONFIG_JBD=y |
607 | CONFIG_FS_MBCACHE=y | 615 | CONFIG_FS_MBCACHE=y |
608 | # CONFIG_REISERFS_FS is not set | 616 | # CONFIG_REISERFS_FS is not set |
609 | # CONFIG_JFS_FS is not set | 617 | # CONFIG_JFS_FS is not set |
610 | # CONFIG_FS_POSIX_ACL is not set | 618 | # CONFIG_FS_POSIX_ACL is not set |
619 | CONFIG_FILE_LOCKING=y | ||
611 | # CONFIG_XFS_FS is not set | 620 | # CONFIG_XFS_FS is not set |
612 | # CONFIG_OCFS2_FS is not set | 621 | # CONFIG_OCFS2_FS is not set |
613 | CONFIG_DNOTIFY=y | 622 | CONFIG_DNOTIFY=y |
@@ -640,6 +649,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
640 | CONFIG_PROC_FS=y | 649 | CONFIG_PROC_FS=y |
641 | CONFIG_PROC_KCORE=y | 650 | CONFIG_PROC_KCORE=y |
642 | CONFIG_PROC_SYSCTL=y | 651 | CONFIG_PROC_SYSCTL=y |
652 | CONFIG_PROC_PAGE_MONITOR=y | ||
643 | CONFIG_SYSFS=y | 653 | CONFIG_SYSFS=y |
644 | CONFIG_TMPFS=y | 654 | CONFIG_TMPFS=y |
645 | # CONFIG_TMPFS_POSIX_ACL is not set | 655 | # CONFIG_TMPFS_POSIX_ACL is not set |
@@ -678,6 +688,7 @@ CONFIG_LOCKD_V4=y | |||
678 | CONFIG_NFS_COMMON=y | 688 | CONFIG_NFS_COMMON=y |
679 | CONFIG_SUNRPC=y | 689 | CONFIG_SUNRPC=y |
680 | CONFIG_SUNRPC_GSS=y | 690 | CONFIG_SUNRPC_GSS=y |
691 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
681 | CONFIG_RPCSEC_GSS_KRB5=y | 692 | CONFIG_RPCSEC_GSS_KRB5=y |
682 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 693 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
683 | # CONFIG_SMB_FS is not set | 694 | # CONFIG_SMB_FS is not set |
@@ -748,6 +759,11 @@ CONFIG_FRAME_WARN=1024 | |||
748 | # CONFIG_DEBUG_KERNEL is not set | 759 | # CONFIG_DEBUG_KERNEL is not set |
749 | # CONFIG_DEBUG_BUGVERBOSE is not set | 760 | # CONFIG_DEBUG_BUGVERBOSE is not set |
750 | # CONFIG_DEBUG_MEMORY_INIT is not set | 761 | # CONFIG_DEBUG_MEMORY_INIT is not set |
762 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
763 | # CONFIG_LATENCYTOP is not set | ||
764 | CONFIG_NOP_TRACER=y | ||
765 | CONFIG_HAVE_FTRACE=y | ||
766 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
751 | # CONFIG_SAMPLES is not set | 767 | # CONFIG_SAMPLES is not set |
752 | # CONFIG_SH_STANDARD_BIOS is not set | 768 | # CONFIG_SH_STANDARD_BIOS is not set |
753 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 769 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
@@ -758,14 +774,19 @@ CONFIG_FRAME_WARN=1024 | |||
758 | # | 774 | # |
759 | # CONFIG_KEYS is not set | 775 | # CONFIG_KEYS is not set |
760 | # CONFIG_SECURITY is not set | 776 | # CONFIG_SECURITY is not set |
777 | # CONFIG_SECURITYFS is not set | ||
761 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 778 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
762 | CONFIG_CRYPTO=y | 779 | CONFIG_CRYPTO=y |
763 | 780 | ||
764 | # | 781 | # |
765 | # Crypto core or helper | 782 | # Crypto core or helper |
766 | # | 783 | # |
784 | # CONFIG_CRYPTO_FIPS is not set | ||
767 | CONFIG_CRYPTO_ALGAPI=y | 785 | CONFIG_CRYPTO_ALGAPI=y |
786 | CONFIG_CRYPTO_AEAD=y | ||
768 | CONFIG_CRYPTO_BLKCIPHER=y | 787 | CONFIG_CRYPTO_BLKCIPHER=y |
788 | CONFIG_CRYPTO_HASH=y | ||
789 | CONFIG_CRYPTO_RNG=y | ||
769 | CONFIG_CRYPTO_MANAGER=y | 790 | CONFIG_CRYPTO_MANAGER=y |
770 | # CONFIG_CRYPTO_GF128MUL is not set | 791 | # CONFIG_CRYPTO_GF128MUL is not set |
771 | # CONFIG_CRYPTO_NULL is not set | 792 | # CONFIG_CRYPTO_NULL is not set |
@@ -837,13 +858,17 @@ CONFIG_CRYPTO_DES=y | |||
837 | # | 858 | # |
838 | # CONFIG_CRYPTO_DEFLATE is not set | 859 | # CONFIG_CRYPTO_DEFLATE is not set |
839 | # CONFIG_CRYPTO_LZO is not set | 860 | # CONFIG_CRYPTO_LZO is not set |
861 | |||
862 | # | ||
863 | # Random Number Generation | ||
864 | # | ||
865 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
840 | CONFIG_CRYPTO_HW=y | 866 | CONFIG_CRYPTO_HW=y |
841 | 867 | ||
842 | # | 868 | # |
843 | # Library routines | 869 | # Library routines |
844 | # | 870 | # |
845 | CONFIG_BITREVERSE=y | 871 | CONFIG_BITREVERSE=y |
846 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
847 | # CONFIG_CRC_CCITT is not set | 872 | # CONFIG_CRC_CCITT is not set |
848 | # CONFIG_CRC16 is not set | 873 | # CONFIG_CRC16 is not set |
849 | # CONFIG_CRC_T10DIF is not set | 874 | # CONFIG_CRC_T10DIF is not set |
diff --git a/arch/sh/configs/migor_defconfig b/arch/sh/configs/migor_defconfig index 4f8b1974f2c7..624c47aa66d3 100644 --- a/arch/sh/configs/migor_defconfig +++ b/arch/sh/configs/migor_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.27-rc4 | 3 | # Linux kernel version: 2.6.27 |
4 | # Tue Aug 26 14:18:17 2008 | 4 | # Tue Oct 21 12:57:28 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -13,12 +13,13 @@ CONFIG_GENERIC_HWEIGHT=y | |||
13 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
15 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
16 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | CONFIG_GENERIC_GPIO=y |
17 | CONFIG_GENERIC_TIME=y | 17 | CONFIG_GENERIC_TIME=y |
18 | CONFIG_GENERIC_CLOCKEVENTS=y | 18 | CONFIG_GENERIC_CLOCKEVENTS=y |
19 | CONFIG_SYS_SUPPORTS_NUMA=y | 19 | CONFIG_SYS_SUPPORTS_NUMA=y |
20 | CONFIG_STACKTRACE_SUPPORT=y | 20 | CONFIG_STACKTRACE_SUPPORT=y |
21 | CONFIG_LOCKDEP_SUPPORT=y | 21 | CONFIG_LOCKDEP_SUPPORT=y |
22 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
22 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 23 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
23 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 24 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
24 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 25 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
@@ -70,7 +71,9 @@ CONFIG_SIGNALFD=y | |||
70 | CONFIG_TIMERFD=y | 71 | CONFIG_TIMERFD=y |
71 | CONFIG_EVENTFD=y | 72 | CONFIG_EVENTFD=y |
72 | CONFIG_SHMEM=y | 73 | CONFIG_SHMEM=y |
74 | CONFIG_AIO=y | ||
73 | CONFIG_VM_EVENT_COUNTERS=y | 75 | CONFIG_VM_EVENT_COUNTERS=y |
76 | CONFIG_PCI_QUIRKS=y | ||
74 | CONFIG_SLAB=y | 77 | CONFIG_SLAB=y |
75 | # CONFIG_SLUB is not set | 78 | # CONFIG_SLUB is not set |
76 | # CONFIG_SLOB is not set | 79 | # CONFIG_SLOB is not set |
@@ -78,15 +81,12 @@ CONFIG_PROFILING=y | |||
78 | # CONFIG_MARKERS is not set | 81 | # CONFIG_MARKERS is not set |
79 | CONFIG_OPROFILE=y | 82 | CONFIG_OPROFILE=y |
80 | CONFIG_HAVE_OPROFILE=y | 83 | CONFIG_HAVE_OPROFILE=y |
81 | # CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set | 84 | # CONFIG_KPROBES is not set |
82 | # CONFIG_HAVE_IOREMAP_PROT is not set | 85 | CONFIG_HAVE_IOREMAP_PROT=y |
83 | # CONFIG_HAVE_KPROBES is not set | 86 | CONFIG_HAVE_KPROBES=y |
84 | # CONFIG_HAVE_KRETPROBES is not set | 87 | CONFIG_HAVE_KRETPROBES=y |
85 | # CONFIG_HAVE_ARCH_TRACEHOOK is not set | 88 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
86 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
87 | # CONFIG_USE_GENERIC_SMP_HELPERS is not set | ||
88 | CONFIG_HAVE_CLK=y | 89 | CONFIG_HAVE_CLK=y |
89 | CONFIG_PROC_PAGE_MONITOR=y | ||
90 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | 90 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
91 | CONFIG_SLABINFO=y | 91 | CONFIG_SLABINFO=y |
92 | CONFIG_RT_MUTEXES=y | 92 | CONFIG_RT_MUTEXES=y |
@@ -118,6 +118,7 @@ CONFIG_DEFAULT_AS=y | |||
118 | # CONFIG_DEFAULT_NOOP is not set | 118 | # CONFIG_DEFAULT_NOOP is not set |
119 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 119 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
120 | CONFIG_CLASSIC_RCU=y | 120 | CONFIG_CLASSIC_RCU=y |
121 | # CONFIG_FREEZER is not set | ||
121 | 122 | ||
122 | # | 123 | # |
123 | # System type | 124 | # System type |
@@ -179,6 +180,7 @@ CONFIG_MAX_ACTIVE_REGIONS=2 | |||
179 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 180 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
180 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | 181 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y |
181 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 182 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
183 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | ||
182 | CONFIG_PAGE_SIZE_4KB=y | 184 | CONFIG_PAGE_SIZE_4KB=y |
183 | # CONFIG_PAGE_SIZE_8KB is not set | 185 | # CONFIG_PAGE_SIZE_8KB is not set |
184 | # CONFIG_PAGE_SIZE_16KB is not set | 186 | # CONFIG_PAGE_SIZE_16KB is not set |
@@ -192,13 +194,14 @@ CONFIG_SPARSEMEM=y | |||
192 | CONFIG_NEED_MULTIPLE_NODES=y | 194 | CONFIG_NEED_MULTIPLE_NODES=y |
193 | CONFIG_HAVE_MEMORY_PRESENT=y | 195 | CONFIG_HAVE_MEMORY_PRESENT=y |
194 | CONFIG_SPARSEMEM_STATIC=y | 196 | CONFIG_SPARSEMEM_STATIC=y |
195 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
196 | # CONFIG_MEMORY_HOTPLUG is not set | 197 | # CONFIG_MEMORY_HOTPLUG is not set |
197 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 198 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
198 | # CONFIG_MIGRATION is not set | 199 | # CONFIG_MIGRATION is not set |
199 | # CONFIG_RESOURCES_64BIT is not set | 200 | # CONFIG_RESOURCES_64BIT is not set |
201 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
200 | CONFIG_ZONE_DMA_FLAG=0 | 202 | CONFIG_ZONE_DMA_FLAG=0 |
201 | CONFIG_NR_QUICK=2 | 203 | CONFIG_NR_QUICK=2 |
204 | CONFIG_UNEVICTABLE_LRU=y | ||
202 | 205 | ||
203 | # | 206 | # |
204 | # Cache configuration | 207 | # Cache configuration |
@@ -235,7 +238,6 @@ CONFIG_SH_MIGOR_QVGA=y | |||
235 | CONFIG_SH_TMU=y | 238 | CONFIG_SH_TMU=y |
236 | CONFIG_SH_TIMER_IRQ=16 | 239 | CONFIG_SH_TIMER_IRQ=16 |
237 | CONFIG_SH_PCLK_FREQ=33333333 | 240 | CONFIG_SH_PCLK_FREQ=33333333 |
238 | # CONFIG_TICK_ONESHOT is not set | ||
239 | # CONFIG_NO_HZ is not set | 241 | # CONFIG_NO_HZ is not set |
240 | # CONFIG_HIGH_RES_TIMERS is not set | 242 | # CONFIG_HIGH_RES_TIMERS is not set |
241 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | 243 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y |
@@ -295,6 +297,8 @@ CONFIG_CMDLINE="console=ttySC0,115200 earlyprintk=serial ip=on" | |||
295 | # Executable file formats | 297 | # Executable file formats |
296 | # | 298 | # |
297 | CONFIG_BINFMT_ELF=y | 299 | CONFIG_BINFMT_ELF=y |
300 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
301 | # CONFIG_HAVE_AOUT is not set | ||
298 | # CONFIG_BINFMT_MISC is not set | 302 | # CONFIG_BINFMT_MISC is not set |
299 | CONFIG_NET=y | 303 | CONFIG_NET=y |
300 | 304 | ||
@@ -345,6 +349,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
345 | # CONFIG_TIPC is not set | 349 | # CONFIG_TIPC is not set |
346 | # CONFIG_ATM is not set | 350 | # CONFIG_ATM is not set |
347 | # CONFIG_BRIDGE is not set | 351 | # CONFIG_BRIDGE is not set |
352 | # CONFIG_NET_DSA is not set | ||
348 | # CONFIG_VLAN_8021Q is not set | 353 | # CONFIG_VLAN_8021Q is not set |
349 | # CONFIG_DECNET is not set | 354 | # CONFIG_DECNET is not set |
350 | # CONFIG_LLC2 is not set | 355 | # CONFIG_LLC2 is not set |
@@ -365,11 +370,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
365 | # CONFIG_IRDA is not set | 370 | # CONFIG_IRDA is not set |
366 | # CONFIG_BT is not set | 371 | # CONFIG_BT is not set |
367 | # CONFIG_AF_RXRPC is not set | 372 | # CONFIG_AF_RXRPC is not set |
368 | 373 | # CONFIG_PHONET is not set | |
369 | # | 374 | CONFIG_WIRELESS=y |
370 | # Wireless | ||
371 | # | ||
372 | # CONFIG_CFG80211 is not set | 375 | # CONFIG_CFG80211 is not set |
376 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
373 | CONFIG_WIRELESS_EXT=y | 377 | CONFIG_WIRELESS_EXT=y |
374 | CONFIG_WIRELESS_EXT_SYSFS=y | 378 | CONFIG_WIRELESS_EXT_SYSFS=y |
375 | # CONFIG_MAC80211 is not set | 379 | # CONFIG_MAC80211 is not set |
@@ -555,6 +559,9 @@ CONFIG_SMC91X=y | |||
555 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 559 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
556 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 560 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
557 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 561 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
562 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
563 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
564 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
558 | # CONFIG_B44 is not set | 565 | # CONFIG_B44 is not set |
559 | # CONFIG_NETDEV_1000 is not set | 566 | # CONFIG_NETDEV_1000 is not set |
560 | # CONFIG_NETDEV_10000 is not set | 567 | # CONFIG_NETDEV_10000 is not set |
@@ -599,6 +606,7 @@ CONFIG_INPUT_KEYBOARD=y | |||
599 | # CONFIG_KEYBOARD_XTKBD is not set | 606 | # CONFIG_KEYBOARD_XTKBD is not set |
600 | # CONFIG_KEYBOARD_NEWTON is not set | 607 | # CONFIG_KEYBOARD_NEWTON is not set |
601 | # CONFIG_KEYBOARD_STOWAWAY is not set | 608 | # CONFIG_KEYBOARD_STOWAWAY is not set |
609 | # CONFIG_KEYBOARD_GPIO is not set | ||
602 | CONFIG_KEYBOARD_SH_KEYSC=y | 610 | CONFIG_KEYBOARD_SH_KEYSC=y |
603 | # CONFIG_INPUT_MOUSE is not set | 611 | # CONFIG_INPUT_MOUSE is not set |
604 | # CONFIG_INPUT_JOYSTICK is not set | 612 | # CONFIG_INPUT_JOYSTICK is not set |
@@ -656,6 +664,7 @@ CONFIG_I2C_HELPER_AUTO=y | |||
656 | # | 664 | # |
657 | # I2C system bus drivers (mostly embedded / system-on-chip) | 665 | # I2C system bus drivers (mostly embedded / system-on-chip) |
658 | # | 666 | # |
667 | # CONFIG_I2C_GPIO is not set | ||
659 | # CONFIG_I2C_OCORES is not set | 668 | # CONFIG_I2C_OCORES is not set |
660 | CONFIG_I2C_SH_MOBILE=y | 669 | CONFIG_I2C_SH_MOBILE=y |
661 | # CONFIG_I2C_SIMTEC is not set | 670 | # CONFIG_I2C_SIMTEC is not set |
@@ -709,6 +718,8 @@ CONFIG_SSB_POSSIBLE=y | |||
709 | # CONFIG_MFD_SM501 is not set | 718 | # CONFIG_MFD_SM501 is not set |
710 | # CONFIG_HTC_PASIC3 is not set | 719 | # CONFIG_HTC_PASIC3 is not set |
711 | # CONFIG_MFD_TMIO is not set | 720 | # CONFIG_MFD_TMIO is not set |
721 | # CONFIG_MFD_WM8400 is not set | ||
722 | # CONFIG_MFD_WM8350_I2C is not set | ||
712 | 723 | ||
713 | # | 724 | # |
714 | # Multimedia devices | 725 | # Multimedia devices |
@@ -717,13 +728,44 @@ CONFIG_SSB_POSSIBLE=y | |||
717 | # | 728 | # |
718 | # Multimedia core support | 729 | # Multimedia core support |
719 | # | 730 | # |
720 | # CONFIG_VIDEO_DEV is not set | 731 | CONFIG_VIDEO_DEV=y |
732 | CONFIG_VIDEO_V4L2_COMMON=y | ||
733 | # CONFIG_VIDEO_ALLOW_V4L1 is not set | ||
734 | CONFIG_VIDEO_V4L1_COMPAT=y | ||
721 | # CONFIG_DVB_CORE is not set | 735 | # CONFIG_DVB_CORE is not set |
722 | # CONFIG_VIDEO_MEDIA is not set | 736 | CONFIG_VIDEO_MEDIA=y |
723 | 737 | ||
724 | # | 738 | # |
725 | # Multimedia drivers | 739 | # Multimedia drivers |
726 | # | 740 | # |
741 | # CONFIG_MEDIA_ATTACH is not set | ||
742 | CONFIG_MEDIA_TUNER=y | ||
743 | # CONFIG_MEDIA_TUNER_CUSTOMIZE is not set | ||
744 | CONFIG_MEDIA_TUNER_SIMPLE=y | ||
745 | CONFIG_MEDIA_TUNER_TDA8290=y | ||
746 | CONFIG_MEDIA_TUNER_TDA9887=y | ||
747 | CONFIG_MEDIA_TUNER_TEA5761=y | ||
748 | CONFIG_MEDIA_TUNER_TEA5767=y | ||
749 | CONFIG_MEDIA_TUNER_MT20XX=y | ||
750 | CONFIG_MEDIA_TUNER_XC2028=y | ||
751 | CONFIG_MEDIA_TUNER_XC5000=y | ||
752 | CONFIG_VIDEO_V4L2=y | ||
753 | CONFIG_VIDEOBUF_GEN=y | ||
754 | CONFIG_VIDEOBUF_DMA_CONTIG=y | ||
755 | CONFIG_VIDEO_CAPTURE_DRIVERS=y | ||
756 | # CONFIG_VIDEO_ADV_DEBUG is not set | ||
757 | # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set | ||
758 | CONFIG_VIDEO_HELPER_CHIPS_AUTO=y | ||
759 | # CONFIG_VIDEO_VIVI is not set | ||
760 | # CONFIG_VIDEO_SAA5246A is not set | ||
761 | # CONFIG_VIDEO_SAA5249 is not set | ||
762 | CONFIG_SOC_CAMERA=y | ||
763 | # CONFIG_SOC_CAMERA_MT9M001 is not set | ||
764 | # CONFIG_SOC_CAMERA_MT9M111 is not set | ||
765 | # CONFIG_SOC_CAMERA_MT9V022 is not set | ||
766 | CONFIG_SOC_CAMERA_PLATFORM=y | ||
767 | CONFIG_VIDEO_SH_MOBILE_CEU=y | ||
768 | # CONFIG_RADIO_ADAPTERS is not set | ||
727 | # CONFIG_DAB is not set | 769 | # CONFIG_DAB is not set |
728 | 770 | ||
729 | # | 771 | # |
@@ -748,6 +790,12 @@ CONFIG_HID_SUPPORT=y | |||
748 | CONFIG_HID=y | 790 | CONFIG_HID=y |
749 | # CONFIG_HID_DEBUG is not set | 791 | # CONFIG_HID_DEBUG is not set |
750 | # CONFIG_HIDRAW is not set | 792 | # CONFIG_HIDRAW is not set |
793 | # CONFIG_HID_PID is not set | ||
794 | |||
795 | # | ||
796 | # Special HID drivers | ||
797 | # | ||
798 | CONFIG_HID_COMPAT=y | ||
751 | CONFIG_USB_SUPPORT=y | 799 | CONFIG_USB_SUPPORT=y |
752 | CONFIG_USB_ARCH_HAS_HCD=y | 800 | CONFIG_USB_ARCH_HAS_HCD=y |
753 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 801 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
@@ -755,7 +803,6 @@ CONFIG_USB_ARCH_HAS_HCD=y | |||
755 | # CONFIG_USB is not set | 803 | # CONFIG_USB is not set |
756 | # CONFIG_USB_OTG_WHITELIST is not set | 804 | # CONFIG_USB_OTG_WHITELIST is not set |
757 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | 805 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set |
758 | # CONFIG_USB_MUSB_HDRC is not set | ||
759 | # CONFIG_USB_GADGET_MUSB_HDRC is not set | 806 | # CONFIG_USB_GADGET_MUSB_HDRC is not set |
760 | 807 | ||
761 | # | 808 | # |
@@ -764,21 +811,23 @@ CONFIG_USB_ARCH_HAS_HCD=y | |||
764 | CONFIG_USB_GADGET=y | 811 | CONFIG_USB_GADGET=y |
765 | # CONFIG_USB_GADGET_DEBUG_FILES is not set | 812 | # CONFIG_USB_GADGET_DEBUG_FILES is not set |
766 | # CONFIG_USB_GADGET_DEBUG_FS is not set | 813 | # CONFIG_USB_GADGET_DEBUG_FS is not set |
814 | CONFIG_USB_GADGET_VBUS_DRAW=2 | ||
767 | CONFIG_USB_GADGET_SELECTED=y | 815 | CONFIG_USB_GADGET_SELECTED=y |
768 | # CONFIG_USB_GADGET_AMD5536UDC is not set | 816 | # CONFIG_USB_GADGET_AT91 is not set |
769 | # CONFIG_USB_GADGET_ATMEL_USBA is not set | 817 | # CONFIG_USB_GADGET_ATMEL_USBA is not set |
770 | # CONFIG_USB_GADGET_FSL_USB2 is not set | 818 | # CONFIG_USB_GADGET_FSL_USB2 is not set |
771 | # CONFIG_USB_GADGET_NET2280 is not set | 819 | # CONFIG_USB_GADGET_LH7A40X is not set |
820 | # CONFIG_USB_GADGET_OMAP is not set | ||
772 | # CONFIG_USB_GADGET_PXA25X is not set | 821 | # CONFIG_USB_GADGET_PXA25X is not set |
822 | # CONFIG_USB_GADGET_PXA27X is not set | ||
823 | # CONFIG_USB_GADGET_S3C2410 is not set | ||
773 | CONFIG_USB_GADGET_M66592=y | 824 | CONFIG_USB_GADGET_M66592=y |
774 | CONFIG_USB_M66592=y | 825 | CONFIG_USB_M66592=y |
775 | CONFIG_SUPERH_BUILT_IN_M66592=y | 826 | CONFIG_SUPERH_BUILT_IN_M66592=y |
776 | # CONFIG_USB_GADGET_PXA27X is not set | 827 | # CONFIG_USB_GADGET_AMD5536UDC is not set |
828 | # CONFIG_USB_GADGET_FSL_QE is not set | ||
829 | # CONFIG_USB_GADGET_NET2280 is not set | ||
777 | # CONFIG_USB_GADGET_GOKU is not set | 830 | # CONFIG_USB_GADGET_GOKU is not set |
778 | # CONFIG_USB_GADGET_LH7A40X is not set | ||
779 | # CONFIG_USB_GADGET_OMAP is not set | ||
780 | # CONFIG_USB_GADGET_S3C2410 is not set | ||
781 | # CONFIG_USB_GADGET_AT91 is not set | ||
782 | # CONFIG_USB_GADGET_DUMMY_HCD is not set | 831 | # CONFIG_USB_GADGET_DUMMY_HCD is not set |
783 | CONFIG_USB_GADGET_DUALSPEED=y | 832 | CONFIG_USB_GADGET_DUALSPEED=y |
784 | # CONFIG_USB_ZERO is not set | 833 | # CONFIG_USB_ZERO is not set |
@@ -831,12 +880,15 @@ CONFIG_RTC_DRV_RS5C372=y | |||
831 | # | 880 | # |
832 | # Platform RTC drivers | 881 | # Platform RTC drivers |
833 | # | 882 | # |
883 | # CONFIG_RTC_DRV_DS1286 is not set | ||
834 | # CONFIG_RTC_DRV_DS1511 is not set | 884 | # CONFIG_RTC_DRV_DS1511 is not set |
835 | # CONFIG_RTC_DRV_DS1553 is not set | 885 | # CONFIG_RTC_DRV_DS1553 is not set |
836 | # CONFIG_RTC_DRV_DS1742 is not set | 886 | # CONFIG_RTC_DRV_DS1742 is not set |
837 | # CONFIG_RTC_DRV_STK17TA8 is not set | 887 | # CONFIG_RTC_DRV_STK17TA8 is not set |
838 | # CONFIG_RTC_DRV_M48T86 is not set | 888 | # CONFIG_RTC_DRV_M48T86 is not set |
889 | # CONFIG_RTC_DRV_M48T35 is not set | ||
839 | # CONFIG_RTC_DRV_M48T59 is not set | 890 | # CONFIG_RTC_DRV_M48T59 is not set |
891 | # CONFIG_RTC_DRV_BQ4802 is not set | ||
840 | # CONFIG_RTC_DRV_V3020 is not set | 892 | # CONFIG_RTC_DRV_V3020 is not set |
841 | 893 | ||
842 | # | 894 | # |
@@ -848,16 +900,19 @@ CONFIG_UIO=y | |||
848 | # CONFIG_UIO_PDRV is not set | 900 | # CONFIG_UIO_PDRV is not set |
849 | CONFIG_UIO_PDRV_GENIRQ=y | 901 | CONFIG_UIO_PDRV_GENIRQ=y |
850 | # CONFIG_UIO_SMX is not set | 902 | # CONFIG_UIO_SMX is not set |
903 | # CONFIG_UIO_SERCOS3 is not set | ||
904 | # CONFIG_STAGING is not set | ||
851 | 905 | ||
852 | # | 906 | # |
853 | # File systems | 907 | # File systems |
854 | # | 908 | # |
855 | # CONFIG_EXT2_FS is not set | 909 | # CONFIG_EXT2_FS is not set |
856 | # CONFIG_EXT3_FS is not set | 910 | # CONFIG_EXT3_FS is not set |
857 | # CONFIG_EXT4DEV_FS is not set | 911 | # CONFIG_EXT4_FS is not set |
858 | # CONFIG_REISERFS_FS is not set | 912 | # CONFIG_REISERFS_FS is not set |
859 | # CONFIG_JFS_FS is not set | 913 | # CONFIG_JFS_FS is not set |
860 | # CONFIG_FS_POSIX_ACL is not set | 914 | # CONFIG_FS_POSIX_ACL is not set |
915 | CONFIG_FILE_LOCKING=y | ||
861 | # CONFIG_XFS_FS is not set | 916 | # CONFIG_XFS_FS is not set |
862 | # CONFIG_OCFS2_FS is not set | 917 | # CONFIG_OCFS2_FS is not set |
863 | # CONFIG_DNOTIFY is not set | 918 | # CONFIG_DNOTIFY is not set |
@@ -886,6 +941,7 @@ CONFIG_UIO_PDRV_GENIRQ=y | |||
886 | CONFIG_PROC_FS=y | 941 | CONFIG_PROC_FS=y |
887 | CONFIG_PROC_KCORE=y | 942 | CONFIG_PROC_KCORE=y |
888 | CONFIG_PROC_SYSCTL=y | 943 | CONFIG_PROC_SYSCTL=y |
944 | CONFIG_PROC_PAGE_MONITOR=y | ||
889 | CONFIG_SYSFS=y | 945 | CONFIG_SYSFS=y |
890 | CONFIG_TMPFS=y | 946 | CONFIG_TMPFS=y |
891 | # CONFIG_TMPFS_POSIX_ACL is not set | 947 | # CONFIG_TMPFS_POSIX_ACL is not set |
@@ -938,6 +994,11 @@ CONFIG_DEBUG_FS=y | |||
938 | # CONFIG_DEBUG_KERNEL is not set | 994 | # CONFIG_DEBUG_KERNEL is not set |
939 | # CONFIG_DEBUG_BUGVERBOSE is not set | 995 | # CONFIG_DEBUG_BUGVERBOSE is not set |
940 | # CONFIG_DEBUG_MEMORY_INIT is not set | 996 | # CONFIG_DEBUG_MEMORY_INIT is not set |
997 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
998 | # CONFIG_LATENCYTOP is not set | ||
999 | CONFIG_NOP_TRACER=y | ||
1000 | CONFIG_HAVE_FTRACE=y | ||
1001 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
941 | # CONFIG_SAMPLES is not set | 1002 | # CONFIG_SAMPLES is not set |
942 | # CONFIG_SH_STANDARD_BIOS is not set | 1003 | # CONFIG_SH_STANDARD_BIOS is not set |
943 | CONFIG_EARLY_SCIF_CONSOLE=y | 1004 | CONFIG_EARLY_SCIF_CONSOLE=y |
@@ -950,12 +1011,14 @@ CONFIG_EARLY_PRINTK=y | |||
950 | # | 1011 | # |
951 | # CONFIG_KEYS is not set | 1012 | # CONFIG_KEYS is not set |
952 | # CONFIG_SECURITY is not set | 1013 | # CONFIG_SECURITY is not set |
1014 | # CONFIG_SECURITYFS is not set | ||
953 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1015 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
954 | CONFIG_CRYPTO=y | 1016 | CONFIG_CRYPTO=y |
955 | 1017 | ||
956 | # | 1018 | # |
957 | # Crypto core or helper | 1019 | # Crypto core or helper |
958 | # | 1020 | # |
1021 | # CONFIG_CRYPTO_FIPS is not set | ||
959 | # CONFIG_CRYPTO_MANAGER is not set | 1022 | # CONFIG_CRYPTO_MANAGER is not set |
960 | # CONFIG_CRYPTO_GF128MUL is not set | 1023 | # CONFIG_CRYPTO_GF128MUL is not set |
961 | # CONFIG_CRYPTO_NULL is not set | 1024 | # CONFIG_CRYPTO_NULL is not set |
@@ -1028,13 +1091,17 @@ CONFIG_CRYPTO=y | |||
1028 | # | 1091 | # |
1029 | # CONFIG_CRYPTO_DEFLATE is not set | 1092 | # CONFIG_CRYPTO_DEFLATE is not set |
1030 | # CONFIG_CRYPTO_LZO is not set | 1093 | # CONFIG_CRYPTO_LZO is not set |
1094 | |||
1095 | # | ||
1096 | # Random Number Generation | ||
1097 | # | ||
1098 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
1031 | CONFIG_CRYPTO_HW=y | 1099 | CONFIG_CRYPTO_HW=y |
1032 | 1100 | ||
1033 | # | 1101 | # |
1034 | # Library routines | 1102 | # Library routines |
1035 | # | 1103 | # |
1036 | CONFIG_BITREVERSE=y | 1104 | CONFIG_BITREVERSE=y |
1037 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
1038 | # CONFIG_CRC_CCITT is not set | 1105 | # CONFIG_CRC_CCITT is not set |
1039 | # CONFIG_CRC16 is not set | 1106 | # CONFIG_CRC16 is not set |
1040 | CONFIG_CRC_T10DIF=y | 1107 | CONFIG_CRC_T10DIF=y |
diff --git a/arch/sh/configs/r7780mp_defconfig b/arch/sh/configs/r7780mp_defconfig index 57a300797584..2e65149e9502 100644 --- a/arch/sh/configs/r7780mp_defconfig +++ b/arch/sh/configs/r7780mp_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.26 | 3 | # Linux kernel version: 2.6.27 |
4 | # Wed Jul 30 01:51:13 2008 | 4 | # Wed Oct 22 20:03:46 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -11,17 +11,18 @@ CONFIG_GENERIC_BUG=y | |||
11 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
12 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
13 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
14 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
15 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
16 | CONFIG_GENERIC_TIME=y | 17 | CONFIG_GENERIC_TIME=y |
17 | CONFIG_GENERIC_CLOCKEVENTS=y | 18 | CONFIG_GENERIC_CLOCKEVENTS=y |
18 | CONFIG_SYS_SUPPORTS_PCI=y | 19 | CONFIG_SYS_SUPPORTS_PCI=y |
19 | CONFIG_STACKTRACE_SUPPORT=y | 20 | CONFIG_STACKTRACE_SUPPORT=y |
20 | CONFIG_LOCKDEP_SUPPORT=y | 21 | CONFIG_LOCKDEP_SUPPORT=y |
22 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
21 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 23 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
22 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 24 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
23 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 25 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
24 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
25 | CONFIG_IO_TRAPPED=y | 26 | CONFIG_IO_TRAPPED=y |
26 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 27 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
27 | 28 | ||
@@ -77,7 +78,9 @@ CONFIG_SIGNALFD=y | |||
77 | CONFIG_TIMERFD=y | 78 | CONFIG_TIMERFD=y |
78 | CONFIG_EVENTFD=y | 79 | CONFIG_EVENTFD=y |
79 | CONFIG_SHMEM=y | 80 | CONFIG_SHMEM=y |
81 | CONFIG_AIO=y | ||
80 | CONFIG_VM_EVENT_COUNTERS=y | 82 | CONFIG_VM_EVENT_COUNTERS=y |
83 | CONFIG_PCI_QUIRKS=y | ||
81 | CONFIG_SLAB=y | 84 | CONFIG_SLAB=y |
82 | # CONFIG_SLUB is not set | 85 | # CONFIG_SLUB is not set |
83 | # CONFIG_SLOB is not set | 86 | # CONFIG_SLOB is not set |
@@ -85,15 +88,13 @@ CONFIG_PROFILING=y | |||
85 | # CONFIG_MARKERS is not set | 88 | # CONFIG_MARKERS is not set |
86 | CONFIG_OPROFILE=m | 89 | CONFIG_OPROFILE=m |
87 | CONFIG_HAVE_OPROFILE=y | 90 | CONFIG_HAVE_OPROFILE=y |
88 | # CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set | 91 | # CONFIG_KPROBES is not set |
89 | # CONFIG_HAVE_IOREMAP_PROT is not set | 92 | CONFIG_HAVE_IOREMAP_PROT=y |
90 | # CONFIG_HAVE_KPROBES is not set | 93 | CONFIG_HAVE_KPROBES=y |
91 | # CONFIG_HAVE_KRETPROBES is not set | 94 | CONFIG_HAVE_KRETPROBES=y |
92 | # CONFIG_HAVE_ARCH_TRACEHOOK is not set | 95 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
93 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
94 | # CONFIG_USE_GENERIC_SMP_HELPERS is not set | ||
95 | CONFIG_HAVE_CLK=y | 96 | CONFIG_HAVE_CLK=y |
96 | CONFIG_PROC_PAGE_MONITOR=y | 97 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
97 | CONFIG_SLABINFO=y | 98 | CONFIG_SLABINFO=y |
98 | # CONFIG_TINY_SHMEM is not set | 99 | # CONFIG_TINY_SHMEM is not set |
99 | CONFIG_BASE_SMALL=0 | 100 | CONFIG_BASE_SMALL=0 |
@@ -124,6 +125,7 @@ CONFIG_IOSCHED_NOOP=y | |||
124 | CONFIG_DEFAULT_NOOP=y | 125 | CONFIG_DEFAULT_NOOP=y |
125 | CONFIG_DEFAULT_IOSCHED="noop" | 126 | CONFIG_DEFAULT_IOSCHED="noop" |
126 | CONFIG_CLASSIC_RCU=y | 127 | CONFIG_CLASSIC_RCU=y |
128 | # CONFIG_FREEZER is not set | ||
127 | 129 | ||
128 | # | 130 | # |
129 | # System type | 131 | # System type |
@@ -199,12 +201,13 @@ CONFIG_FLATMEM_MANUAL=y | |||
199 | CONFIG_FLATMEM=y | 201 | CONFIG_FLATMEM=y |
200 | CONFIG_FLAT_NODE_MEM_MAP=y | 202 | CONFIG_FLAT_NODE_MEM_MAP=y |
201 | CONFIG_SPARSEMEM_STATIC=y | 203 | CONFIG_SPARSEMEM_STATIC=y |
202 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
203 | CONFIG_PAGEFLAGS_EXTENDED=y | 204 | CONFIG_PAGEFLAGS_EXTENDED=y |
204 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 205 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
205 | # CONFIG_RESOURCES_64BIT is not set | 206 | # CONFIG_RESOURCES_64BIT is not set |
207 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
206 | CONFIG_ZONE_DMA_FLAG=0 | 208 | CONFIG_ZONE_DMA_FLAG=0 |
207 | CONFIG_NR_QUICK=2 | 209 | CONFIG_NR_QUICK=2 |
210 | CONFIG_UNEVICTABLE_LRU=y | ||
208 | 211 | ||
209 | # | 212 | # |
210 | # Cache configuration | 213 | # Cache configuration |
@@ -242,7 +245,6 @@ CONFIG_SH_R7780MP=y | |||
242 | CONFIG_SH_TMU=y | 245 | CONFIG_SH_TMU=y |
243 | CONFIG_SH_TIMER_IRQ=28 | 246 | CONFIG_SH_TIMER_IRQ=28 |
244 | CONFIG_SH_PCLK_FREQ=32000000 | 247 | CONFIG_SH_PCLK_FREQ=32000000 |
245 | # CONFIG_TICK_ONESHOT is not set | ||
246 | # CONFIG_NO_HZ is not set | 248 | # CONFIG_NO_HZ is not set |
247 | # CONFIG_HIGH_RES_TIMERS is not set | 249 | # CONFIG_HIGH_RES_TIMERS is not set |
248 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | 250 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y |
@@ -278,6 +280,7 @@ CONFIG_HZ=250 | |||
278 | # CONFIG_SCHED_HRTICK is not set | 280 | # CONFIG_SCHED_HRTICK is not set |
279 | CONFIG_KEXEC=y | 281 | CONFIG_KEXEC=y |
280 | # CONFIG_CRASH_DUMP is not set | 282 | # CONFIG_CRASH_DUMP is not set |
283 | # CONFIG_SECCOMP is not set | ||
281 | # CONFIG_PREEMPT_NONE is not set | 284 | # CONFIG_PREEMPT_NONE is not set |
282 | # CONFIG_PREEMPT_VOLUNTARY is not set | 285 | # CONFIG_PREEMPT_VOLUNTARY is not set |
283 | CONFIG_PREEMPT=y | 286 | CONFIG_PREEMPT=y |
@@ -309,11 +312,9 @@ CONFIG_PCI_LEGACY=y | |||
309 | # Executable file formats | 312 | # Executable file formats |
310 | # | 313 | # |
311 | CONFIG_BINFMT_ELF=y | 314 | CONFIG_BINFMT_ELF=y |
315 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
316 | # CONFIG_HAVE_AOUT is not set | ||
312 | # CONFIG_BINFMT_MISC is not set | 317 | # CONFIG_BINFMT_MISC is not set |
313 | |||
314 | # | ||
315 | # Networking | ||
316 | # | ||
317 | CONFIG_NET=y | 318 | CONFIG_NET=y |
318 | 319 | ||
319 | # | 320 | # |
@@ -369,6 +370,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
369 | # CONFIG_ATM is not set | 370 | # CONFIG_ATM is not set |
370 | CONFIG_STP=m | 371 | CONFIG_STP=m |
371 | CONFIG_BRIDGE=m | 372 | CONFIG_BRIDGE=m |
373 | # CONFIG_NET_DSA is not set | ||
372 | # CONFIG_VLAN_8021Q is not set | 374 | # CONFIG_VLAN_8021Q is not set |
373 | # CONFIG_DECNET is not set | 375 | # CONFIG_DECNET is not set |
374 | CONFIG_LLC=m | 376 | CONFIG_LLC=m |
@@ -390,11 +392,10 @@ CONFIG_LLC=m | |||
390 | # CONFIG_IRDA is not set | 392 | # CONFIG_IRDA is not set |
391 | # CONFIG_BT is not set | 393 | # CONFIG_BT is not set |
392 | # CONFIG_AF_RXRPC is not set | 394 | # CONFIG_AF_RXRPC is not set |
393 | 395 | # CONFIG_PHONET is not set | |
394 | # | 396 | CONFIG_WIRELESS=y |
395 | # Wireless | ||
396 | # | ||
397 | # CONFIG_CFG80211 is not set | 397 | # CONFIG_CFG80211 is not set |
398 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
398 | CONFIG_WIRELESS_EXT=y | 399 | CONFIG_WIRELESS_EXT=y |
399 | CONFIG_WIRELESS_EXT_SYSFS=y | 400 | CONFIG_WIRELESS_EXT_SYSFS=y |
400 | # CONFIG_MAC80211 is not set | 401 | # CONFIG_MAC80211 is not set |
@@ -616,6 +617,9 @@ CONFIG_AX88796_93CX6=y | |||
616 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 617 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
617 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 618 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
618 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 619 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
620 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
621 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
622 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
619 | CONFIG_NET_PCI=y | 623 | CONFIG_NET_PCI=y |
620 | CONFIG_PCNET32=m | 624 | CONFIG_PCNET32=m |
621 | # CONFIG_AMD8111_ETH is not set | 625 | # CONFIG_AMD8111_ETH is not set |
@@ -641,11 +645,11 @@ CONFIG_8139TOO_8129=y | |||
641 | CONFIG_VIA_RHINE=m | 645 | CONFIG_VIA_RHINE=m |
642 | CONFIG_VIA_RHINE_MMIO=y | 646 | CONFIG_VIA_RHINE_MMIO=y |
643 | # CONFIG_SC92031 is not set | 647 | # CONFIG_SC92031 is not set |
648 | # CONFIG_ATL2 is not set | ||
644 | CONFIG_NETDEV_1000=y | 649 | CONFIG_NETDEV_1000=y |
645 | # CONFIG_ACENIC is not set | 650 | # CONFIG_ACENIC is not set |
646 | # CONFIG_DL2K is not set | 651 | # CONFIG_DL2K is not set |
647 | CONFIG_E1000=m | 652 | CONFIG_E1000=m |
648 | # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set | ||
649 | # CONFIG_E1000E is not set | 653 | # CONFIG_E1000E is not set |
650 | # CONFIG_IP1000 is not set | 654 | # CONFIG_IP1000 is not set |
651 | # CONFIG_IGB is not set | 655 | # CONFIG_IGB is not set |
@@ -662,9 +666,11 @@ CONFIG_R8169=y | |||
662 | # CONFIG_QLA3XXX is not set | 666 | # CONFIG_QLA3XXX is not set |
663 | # CONFIG_ATL1 is not set | 667 | # CONFIG_ATL1 is not set |
664 | # CONFIG_ATL1E is not set | 668 | # CONFIG_ATL1E is not set |
669 | # CONFIG_JME is not set | ||
665 | CONFIG_NETDEV_10000=y | 670 | CONFIG_NETDEV_10000=y |
666 | # CONFIG_CHELSIO_T1 is not set | 671 | # CONFIG_CHELSIO_T1 is not set |
667 | # CONFIG_CHELSIO_T3 is not set | 672 | # CONFIG_CHELSIO_T3 is not set |
673 | # CONFIG_ENIC is not set | ||
668 | # CONFIG_IXGBE is not set | 674 | # CONFIG_IXGBE is not set |
669 | # CONFIG_IXGB is not set | 675 | # CONFIG_IXGB is not set |
670 | # CONFIG_S2IO is not set | 676 | # CONFIG_S2IO is not set |
@@ -674,6 +680,7 @@ CONFIG_NETDEV_10000=y | |||
674 | # CONFIG_MLX4_CORE is not set | 680 | # CONFIG_MLX4_CORE is not set |
675 | # CONFIG_TEHUTI is not set | 681 | # CONFIG_TEHUTI is not set |
676 | # CONFIG_BNX2X is not set | 682 | # CONFIG_BNX2X is not set |
683 | # CONFIG_QLGE is not set | ||
677 | # CONFIG_SFC is not set | 684 | # CONFIG_SFC is not set |
678 | # CONFIG_TR is not set | 685 | # CONFIG_TR is not set |
679 | 686 | ||
@@ -773,24 +780,129 @@ CONFIG_HW_RANDOM=y | |||
773 | # CONFIG_RAW_DRIVER is not set | 780 | # CONFIG_RAW_DRIVER is not set |
774 | # CONFIG_TCG_TPM is not set | 781 | # CONFIG_TCG_TPM is not set |
775 | CONFIG_DEVPORT=y | 782 | CONFIG_DEVPORT=y |
776 | # CONFIG_I2C is not set | 783 | CONFIG_I2C=y |
784 | CONFIG_I2C_BOARDINFO=y | ||
785 | CONFIG_I2C_CHARDEV=y | ||
786 | CONFIG_I2C_HELPER_AUTO=y | ||
787 | |||
788 | # | ||
789 | # I2C Hardware Bus support | ||
790 | # | ||
791 | |||
792 | # | ||
793 | # PC SMBus host controller drivers | ||
794 | # | ||
795 | # CONFIG_I2C_ALI1535 is not set | ||
796 | # CONFIG_I2C_ALI1563 is not set | ||
797 | # CONFIG_I2C_ALI15X3 is not set | ||
798 | # CONFIG_I2C_AMD756 is not set | ||
799 | # CONFIG_I2C_AMD8111 is not set | ||
800 | # CONFIG_I2C_I801 is not set | ||
801 | # CONFIG_I2C_ISCH is not set | ||
802 | # CONFIG_I2C_PIIX4 is not set | ||
803 | # CONFIG_I2C_NFORCE2 is not set | ||
804 | # CONFIG_I2C_SIS5595 is not set | ||
805 | # CONFIG_I2C_SIS630 is not set | ||
806 | # CONFIG_I2C_SIS96X is not set | ||
807 | # CONFIG_I2C_VIA is not set | ||
808 | # CONFIG_I2C_VIAPRO is not set | ||
809 | |||
810 | # | ||
811 | # I2C system bus drivers (mostly embedded / system-on-chip) | ||
812 | # | ||
813 | CONFIG_I2C_HIGHLANDER=y | ||
814 | # CONFIG_I2C_OCORES is not set | ||
815 | # CONFIG_I2C_SH_MOBILE is not set | ||
816 | # CONFIG_I2C_SIMTEC is not set | ||
817 | |||
818 | # | ||
819 | # External I2C/SMBus adapter drivers | ||
820 | # | ||
821 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
822 | # CONFIG_I2C_TAOS_EVM is not set | ||
823 | |||
824 | # | ||
825 | # Graphics adapter I2C/DDC channel drivers | ||
826 | # | ||
827 | # CONFIG_I2C_VOODOO3 is not set | ||
828 | |||
829 | # | ||
830 | # Other I2C/SMBus bus drivers | ||
831 | # | ||
832 | # CONFIG_I2C_PCA_PLATFORM is not set | ||
833 | # CONFIG_I2C_STUB is not set | ||
834 | |||
835 | # | ||
836 | # Miscellaneous I2C Chip support | ||
837 | # | ||
838 | # CONFIG_DS1682 is not set | ||
839 | # CONFIG_AT24 is not set | ||
840 | # CONFIG_SENSORS_EEPROM is not set | ||
841 | # CONFIG_SENSORS_PCF8574 is not set | ||
842 | # CONFIG_PCF8575 is not set | ||
843 | # CONFIG_SENSORS_PCA9539 is not set | ||
844 | # CONFIG_SENSORS_PCF8591 is not set | ||
845 | # CONFIG_SENSORS_MAX6875 is not set | ||
846 | # CONFIG_SENSORS_TSL2550 is not set | ||
847 | # CONFIG_I2C_DEBUG_CORE is not set | ||
848 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
849 | # CONFIG_I2C_DEBUG_BUS is not set | ||
850 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
777 | # CONFIG_SPI is not set | 851 | # CONFIG_SPI is not set |
778 | # CONFIG_W1 is not set | 852 | # CONFIG_W1 is not set |
779 | # CONFIG_POWER_SUPPLY is not set | 853 | # CONFIG_POWER_SUPPLY is not set |
780 | CONFIG_HWMON=y | 854 | CONFIG_HWMON=y |
781 | # CONFIG_HWMON_VID is not set | 855 | # CONFIG_HWMON_VID is not set |
856 | # CONFIG_SENSORS_AD7414 is not set | ||
857 | # CONFIG_SENSORS_AD7418 is not set | ||
858 | # CONFIG_SENSORS_ADM1021 is not set | ||
859 | # CONFIG_SENSORS_ADM1025 is not set | ||
860 | # CONFIG_SENSORS_ADM1026 is not set | ||
861 | # CONFIG_SENSORS_ADM1029 is not set | ||
862 | # CONFIG_SENSORS_ADM1031 is not set | ||
863 | # CONFIG_SENSORS_ADM9240 is not set | ||
864 | # CONFIG_SENSORS_ADT7470 is not set | ||
865 | # CONFIG_SENSORS_ADT7473 is not set | ||
866 | # CONFIG_SENSORS_ATXP1 is not set | ||
867 | # CONFIG_SENSORS_DS1621 is not set | ||
782 | # CONFIG_SENSORS_I5K_AMB is not set | 868 | # CONFIG_SENSORS_I5K_AMB is not set |
783 | # CONFIG_SENSORS_F71805F is not set | 869 | # CONFIG_SENSORS_F71805F is not set |
784 | # CONFIG_SENSORS_F71882FG is not set | 870 | # CONFIG_SENSORS_F71882FG is not set |
871 | # CONFIG_SENSORS_F75375S is not set | ||
872 | # CONFIG_SENSORS_GL518SM is not set | ||
873 | # CONFIG_SENSORS_GL520SM is not set | ||
785 | # CONFIG_SENSORS_IT87 is not set | 874 | # CONFIG_SENSORS_IT87 is not set |
875 | # CONFIG_SENSORS_LM63 is not set | ||
876 | # CONFIG_SENSORS_LM75 is not set | ||
877 | # CONFIG_SENSORS_LM77 is not set | ||
878 | # CONFIG_SENSORS_LM78 is not set | ||
879 | # CONFIG_SENSORS_LM80 is not set | ||
880 | # CONFIG_SENSORS_LM83 is not set | ||
881 | # CONFIG_SENSORS_LM85 is not set | ||
882 | # CONFIG_SENSORS_LM87 is not set | ||
883 | # CONFIG_SENSORS_LM90 is not set | ||
884 | # CONFIG_SENSORS_LM92 is not set | ||
885 | # CONFIG_SENSORS_LM93 is not set | ||
886 | # CONFIG_SENSORS_MAX1619 is not set | ||
887 | # CONFIG_SENSORS_MAX6650 is not set | ||
786 | # CONFIG_SENSORS_PC87360 is not set | 888 | # CONFIG_SENSORS_PC87360 is not set |
787 | # CONFIG_SENSORS_PC87427 is not set | 889 | # CONFIG_SENSORS_PC87427 is not set |
788 | # CONFIG_SENSORS_SIS5595 is not set | 890 | # CONFIG_SENSORS_SIS5595 is not set |
891 | # CONFIG_SENSORS_DME1737 is not set | ||
789 | # CONFIG_SENSORS_SMSC47M1 is not set | 892 | # CONFIG_SENSORS_SMSC47M1 is not set |
893 | # CONFIG_SENSORS_SMSC47M192 is not set | ||
790 | # CONFIG_SENSORS_SMSC47B397 is not set | 894 | # CONFIG_SENSORS_SMSC47B397 is not set |
895 | # CONFIG_SENSORS_ADS7828 is not set | ||
896 | # CONFIG_SENSORS_THMC50 is not set | ||
791 | # CONFIG_SENSORS_VIA686A is not set | 897 | # CONFIG_SENSORS_VIA686A is not set |
792 | # CONFIG_SENSORS_VT1211 is not set | 898 | # CONFIG_SENSORS_VT1211 is not set |
793 | # CONFIG_SENSORS_VT8231 is not set | 899 | # CONFIG_SENSORS_VT8231 is not set |
900 | # CONFIG_SENSORS_W83781D is not set | ||
901 | # CONFIG_SENSORS_W83791D is not set | ||
902 | # CONFIG_SENSORS_W83792D is not set | ||
903 | # CONFIG_SENSORS_W83793 is not set | ||
904 | # CONFIG_SENSORS_W83L785TS is not set | ||
905 | # CONFIG_SENSORS_W83L786NG is not set | ||
794 | # CONFIG_SENSORS_W83627HF is not set | 906 | # CONFIG_SENSORS_W83627HF is not set |
795 | # CONFIG_SENSORS_W83627EHF is not set | 907 | # CONFIG_SENSORS_W83627EHF is not set |
796 | # CONFIG_HWMON_DEBUG_CHIP is not set | 908 | # CONFIG_HWMON_DEBUG_CHIP is not set |
@@ -810,6 +922,9 @@ CONFIG_SSB_POSSIBLE=y | |||
810 | # CONFIG_MFD_CORE is not set | 922 | # CONFIG_MFD_CORE is not set |
811 | # CONFIG_MFD_SM501 is not set | 923 | # CONFIG_MFD_SM501 is not set |
812 | # CONFIG_HTC_PASIC3 is not set | 924 | # CONFIG_HTC_PASIC3 is not set |
925 | # CONFIG_MFD_TMIO is not set | ||
926 | # CONFIG_MFD_WM8400 is not set | ||
927 | # CONFIG_MFD_WM8350_I2C is not set | ||
813 | 928 | ||
814 | # | 929 | # |
815 | # Multimedia devices | 930 | # Multimedia devices |
@@ -841,12 +956,19 @@ CONFIG_DAB=y | |||
841 | # | 956 | # |
842 | # CONFIG_DISPLAY_SUPPORT is not set | 957 | # CONFIG_DISPLAY_SUPPORT is not set |
843 | CONFIG_SOUND=m | 958 | CONFIG_SOUND=m |
959 | CONFIG_SOUND_OSS_CORE=y | ||
844 | # CONFIG_SND is not set | 960 | # CONFIG_SND is not set |
845 | CONFIG_SOUND_PRIME=m | 961 | CONFIG_SOUND_PRIME=m |
846 | CONFIG_HID_SUPPORT=y | 962 | CONFIG_HID_SUPPORT=y |
847 | CONFIG_HID=y | 963 | CONFIG_HID=y |
848 | # CONFIG_HID_DEBUG is not set | 964 | # CONFIG_HID_DEBUG is not set |
849 | # CONFIG_HIDRAW is not set | 965 | # CONFIG_HIDRAW is not set |
966 | # CONFIG_HID_PID is not set | ||
967 | |||
968 | # | ||
969 | # Special HID drivers | ||
970 | # | ||
971 | CONFIG_HID_COMPAT=y | ||
850 | CONFIG_USB_SUPPORT=y | 972 | CONFIG_USB_SUPPORT=y |
851 | CONFIG_USB_ARCH_HAS_HCD=y | 973 | CONFIG_USB_ARCH_HAS_HCD=y |
852 | CONFIG_USB_ARCH_HAS_OHCI=y | 974 | CONFIG_USB_ARCH_HAS_OHCI=y |
@@ -856,6 +978,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
856 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | 978 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set |
857 | 979 | ||
858 | # | 980 | # |
981 | # Enable Host or Gadget support to see Inventra options | ||
982 | # | ||
983 | |||
984 | # | ||
859 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 985 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
860 | # | 986 | # |
861 | # CONFIG_USB_GADGET is not set | 987 | # CONFIG_USB_GADGET is not set |
@@ -880,18 +1006,37 @@ CONFIG_RTC_INTF_DEV=y | |||
880 | # CONFIG_RTC_DRV_TEST is not set | 1006 | # CONFIG_RTC_DRV_TEST is not set |
881 | 1007 | ||
882 | # | 1008 | # |
1009 | # I2C RTC drivers | ||
1010 | # | ||
1011 | # CONFIG_RTC_DRV_DS1307 is not set | ||
1012 | # CONFIG_RTC_DRV_DS1374 is not set | ||
1013 | # CONFIG_RTC_DRV_DS1672 is not set | ||
1014 | # CONFIG_RTC_DRV_MAX6900 is not set | ||
1015 | CONFIG_RTC_DRV_RS5C372=y | ||
1016 | # CONFIG_RTC_DRV_ISL1208 is not set | ||
1017 | # CONFIG_RTC_DRV_X1205 is not set | ||
1018 | # CONFIG_RTC_DRV_PCF8563 is not set | ||
1019 | # CONFIG_RTC_DRV_PCF8583 is not set | ||
1020 | # CONFIG_RTC_DRV_M41T80 is not set | ||
1021 | # CONFIG_RTC_DRV_S35390A is not set | ||
1022 | # CONFIG_RTC_DRV_FM3130 is not set | ||
1023 | |||
1024 | # | ||
883 | # SPI RTC drivers | 1025 | # SPI RTC drivers |
884 | # | 1026 | # |
885 | 1027 | ||
886 | # | 1028 | # |
887 | # Platform RTC drivers | 1029 | # Platform RTC drivers |
888 | # | 1030 | # |
1031 | # CONFIG_RTC_DRV_DS1286 is not set | ||
889 | # CONFIG_RTC_DRV_DS1511 is not set | 1032 | # CONFIG_RTC_DRV_DS1511 is not set |
890 | # CONFIG_RTC_DRV_DS1553 is not set | 1033 | # CONFIG_RTC_DRV_DS1553 is not set |
891 | # CONFIG_RTC_DRV_DS1742 is not set | 1034 | # CONFIG_RTC_DRV_DS1742 is not set |
892 | # CONFIG_RTC_DRV_STK17TA8 is not set | 1035 | # CONFIG_RTC_DRV_STK17TA8 is not set |
893 | # CONFIG_RTC_DRV_M48T86 is not set | 1036 | # CONFIG_RTC_DRV_M48T86 is not set |
1037 | # CONFIG_RTC_DRV_M48T35 is not set | ||
894 | # CONFIG_RTC_DRV_M48T59 is not set | 1038 | # CONFIG_RTC_DRV_M48T59 is not set |
1039 | # CONFIG_RTC_DRV_BQ4802 is not set | ||
895 | # CONFIG_RTC_DRV_V3020 is not set | 1040 | # CONFIG_RTC_DRV_V3020 is not set |
896 | 1041 | ||
897 | # | 1042 | # |
@@ -900,6 +1045,7 @@ CONFIG_RTC_INTF_DEV=y | |||
900 | CONFIG_RTC_DRV_SH=y | 1045 | CONFIG_RTC_DRV_SH=y |
901 | # CONFIG_DMADEVICES is not set | 1046 | # CONFIG_DMADEVICES is not set |
902 | # CONFIG_UIO is not set | 1047 | # CONFIG_UIO is not set |
1048 | # CONFIG_STAGING is not set | ||
903 | 1049 | ||
904 | # | 1050 | # |
905 | # File systems | 1051 | # File systems |
@@ -911,13 +1057,14 @@ CONFIG_EXT3_FS=y | |||
911 | CONFIG_EXT3_FS_XATTR=y | 1057 | CONFIG_EXT3_FS_XATTR=y |
912 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 1058 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
913 | # CONFIG_EXT3_FS_SECURITY is not set | 1059 | # CONFIG_EXT3_FS_SECURITY is not set |
914 | # CONFIG_EXT4DEV_FS is not set | 1060 | # CONFIG_EXT4_FS is not set |
915 | CONFIG_JBD=y | 1061 | CONFIG_JBD=y |
916 | # CONFIG_JBD_DEBUG is not set | 1062 | # CONFIG_JBD_DEBUG is not set |
917 | CONFIG_FS_MBCACHE=y | 1063 | CONFIG_FS_MBCACHE=y |
918 | # CONFIG_REISERFS_FS is not set | 1064 | # CONFIG_REISERFS_FS is not set |
919 | # CONFIG_JFS_FS is not set | 1065 | # CONFIG_JFS_FS is not set |
920 | CONFIG_FS_POSIX_ACL=y | 1066 | CONFIG_FS_POSIX_ACL=y |
1067 | CONFIG_FILE_LOCKING=y | ||
921 | # CONFIG_XFS_FS is not set | 1068 | # CONFIG_XFS_FS is not set |
922 | # CONFIG_OCFS2_FS is not set | 1069 | # CONFIG_OCFS2_FS is not set |
923 | CONFIG_DNOTIFY=y | 1070 | CONFIG_DNOTIFY=y |
@@ -952,6 +1099,7 @@ CONFIG_NTFS_RW=y | |||
952 | CONFIG_PROC_FS=y | 1099 | CONFIG_PROC_FS=y |
953 | CONFIG_PROC_KCORE=y | 1100 | CONFIG_PROC_KCORE=y |
954 | CONFIG_PROC_SYSCTL=y | 1101 | CONFIG_PROC_SYSCTL=y |
1102 | CONFIG_PROC_PAGE_MONITOR=y | ||
955 | CONFIG_SYSFS=y | 1103 | CONFIG_SYSFS=y |
956 | CONFIG_TMPFS=y | 1104 | CONFIG_TMPFS=y |
957 | # CONFIG_TMPFS_POSIX_ACL is not set | 1105 | # CONFIG_TMPFS_POSIX_ACL is not set |
@@ -994,6 +1142,7 @@ CONFIG_EXPORTFS=y | |||
994 | CONFIG_NFS_COMMON=y | 1142 | CONFIG_NFS_COMMON=y |
995 | CONFIG_SUNRPC=y | 1143 | CONFIG_SUNRPC=y |
996 | CONFIG_SUNRPC_GSS=y | 1144 | CONFIG_SUNRPC_GSS=y |
1145 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
997 | CONFIG_RPCSEC_GSS_KRB5=y | 1146 | CONFIG_RPCSEC_GSS_KRB5=y |
998 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1147 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
999 | # CONFIG_SMB_FS is not set | 1148 | # CONFIG_SMB_FS is not set |
@@ -1088,10 +1237,22 @@ CONFIG_DEBUG_INFO=y | |||
1088 | # CONFIG_DEBUG_LIST is not set | 1237 | # CONFIG_DEBUG_LIST is not set |
1089 | # CONFIG_DEBUG_SG is not set | 1238 | # CONFIG_DEBUG_SG is not set |
1090 | # CONFIG_FRAME_POINTER is not set | 1239 | # CONFIG_FRAME_POINTER is not set |
1091 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
1092 | # CONFIG_RCU_TORTURE_TEST is not set | 1240 | # CONFIG_RCU_TORTURE_TEST is not set |
1241 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
1093 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1242 | # CONFIG_BACKTRACE_SELF_TEST is not set |
1243 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
1094 | # CONFIG_FAULT_INJECTION is not set | 1244 | # CONFIG_FAULT_INJECTION is not set |
1245 | # CONFIG_LATENCYTOP is not set | ||
1246 | CONFIG_NOP_TRACER=y | ||
1247 | CONFIG_HAVE_FTRACE=y | ||
1248 | # CONFIG_FTRACE is not set | ||
1249 | # CONFIG_IRQSOFF_TRACER is not set | ||
1250 | # CONFIG_PREEMPT_TRACER is not set | ||
1251 | # CONFIG_SCHED_TRACER is not set | ||
1252 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
1253 | # CONFIG_BOOT_TRACER is not set | ||
1254 | # CONFIG_STACK_TRACER is not set | ||
1255 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
1095 | # CONFIG_SAMPLES is not set | 1256 | # CONFIG_SAMPLES is not set |
1096 | CONFIG_SH_STANDARD_BIOS=y | 1257 | CONFIG_SH_STANDARD_BIOS=y |
1097 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 1258 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
@@ -1108,15 +1269,19 @@ CONFIG_DEBUG_STACKOVERFLOW=y | |||
1108 | # | 1269 | # |
1109 | # CONFIG_KEYS is not set | 1270 | # CONFIG_KEYS is not set |
1110 | # CONFIG_SECURITY is not set | 1271 | # CONFIG_SECURITY is not set |
1272 | # CONFIG_SECURITYFS is not set | ||
1111 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1273 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
1112 | CONFIG_CRYPTO=y | 1274 | CONFIG_CRYPTO=y |
1113 | 1275 | ||
1114 | # | 1276 | # |
1115 | # Crypto core or helper | 1277 | # Crypto core or helper |
1116 | # | 1278 | # |
1279 | # CONFIG_CRYPTO_FIPS is not set | ||
1117 | CONFIG_CRYPTO_ALGAPI=y | 1280 | CONFIG_CRYPTO_ALGAPI=y |
1281 | CONFIG_CRYPTO_AEAD=y | ||
1118 | CONFIG_CRYPTO_BLKCIPHER=y | 1282 | CONFIG_CRYPTO_BLKCIPHER=y |
1119 | CONFIG_CRYPTO_HASH=y | 1283 | CONFIG_CRYPTO_HASH=y |
1284 | CONFIG_CRYPTO_RNG=y | ||
1120 | CONFIG_CRYPTO_MANAGER=y | 1285 | CONFIG_CRYPTO_MANAGER=y |
1121 | # CONFIG_CRYPTO_GF128MUL is not set | 1286 | # CONFIG_CRYPTO_GF128MUL is not set |
1122 | # CONFIG_CRYPTO_NULL is not set | 1287 | # CONFIG_CRYPTO_NULL is not set |
@@ -1189,6 +1354,11 @@ CONFIG_CRYPTO_DES=y | |||
1189 | # | 1354 | # |
1190 | # CONFIG_CRYPTO_DEFLATE is not set | 1355 | # CONFIG_CRYPTO_DEFLATE is not set |
1191 | # CONFIG_CRYPTO_LZO is not set | 1356 | # CONFIG_CRYPTO_LZO is not set |
1357 | |||
1358 | # | ||
1359 | # Random Number Generation | ||
1360 | # | ||
1361 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
1192 | CONFIG_CRYPTO_HW=y | 1362 | CONFIG_CRYPTO_HW=y |
1193 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 1363 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
1194 | 1364 | ||
@@ -1196,7 +1366,6 @@ CONFIG_CRYPTO_HW=y | |||
1196 | # Library routines | 1366 | # Library routines |
1197 | # | 1367 | # |
1198 | CONFIG_BITREVERSE=y | 1368 | CONFIG_BITREVERSE=y |
1199 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
1200 | # CONFIG_CRC_CCITT is not set | 1369 | # CONFIG_CRC_CCITT is not set |
1201 | # CONFIG_CRC16 is not set | 1370 | # CONFIG_CRC16 is not set |
1202 | CONFIG_CRC_T10DIF=y | 1371 | CONFIG_CRC_T10DIF=y |
diff --git a/arch/sh/configs/r7785rp_defconfig b/arch/sh/configs/r7785rp_defconfig index 1d09d24d4298..043a8a509e09 100644 --- a/arch/sh/configs/r7785rp_defconfig +++ b/arch/sh/configs/r7785rp_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.26 | 3 | # Linux kernel version: 2.6.27 |
4 | # Wed Jul 30 00:59:19 2008 | 4 | # Wed Oct 22 16:25:30 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -11,18 +11,19 @@ CONFIG_GENERIC_BUG=y | |||
11 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
12 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
13 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
14 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
15 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
16 | CONFIG_GENERIC_TIME=y | 17 | CONFIG_GENERIC_TIME=y |
17 | CONFIG_GENERIC_CLOCKEVENTS=y | 18 | CONFIG_GENERIC_CLOCKEVENTS=y |
18 | CONFIG_SYS_SUPPORTS_NUMA=y | 19 | CONFIG_SYS_SUPPORTS_NUMA=y |
19 | CONFIG_SYS_SUPPORTS_PCI=y | 20 | CONFIG_SYS_SUPPORTS_PCI=y |
20 | CONFIG_STACKTRACE_SUPPORT=y | 21 | CONFIG_STACKTRACE_SUPPORT=y |
21 | CONFIG_LOCKDEP_SUPPORT=y | 22 | CONFIG_LOCKDEP_SUPPORT=y |
23 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
22 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 24 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
23 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 25 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
24 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 26 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
25 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
26 | CONFIG_IO_TRAPPED=y | 27 | CONFIG_IO_TRAPPED=y |
27 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 28 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
28 | 29 | ||
@@ -38,11 +39,13 @@ CONFIG_LOCALVERSION_AUTO=y | |||
38 | CONFIG_SWAP=y | 39 | CONFIG_SWAP=y |
39 | CONFIG_SYSVIPC=y | 40 | CONFIG_SYSVIPC=y |
40 | CONFIG_SYSVIPC_SYSCTL=y | 41 | CONFIG_SYSVIPC_SYSCTL=y |
41 | # CONFIG_POSIX_MQUEUE is not set | 42 | CONFIG_POSIX_MQUEUE=y |
42 | CONFIG_BSD_PROCESS_ACCT=y | 43 | CONFIG_BSD_PROCESS_ACCT=y |
43 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | 44 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set |
44 | # CONFIG_TASKSTATS is not set | 45 | # CONFIG_TASKSTATS is not set |
45 | # CONFIG_AUDIT is not set | 46 | CONFIG_AUDIT=y |
47 | CONFIG_AUDITSYSCALL=y | ||
48 | CONFIG_AUDIT_TREE=y | ||
46 | CONFIG_IKCONFIG=y | 49 | CONFIG_IKCONFIG=y |
47 | CONFIG_IKCONFIG_PROC=y | 50 | CONFIG_IKCONFIG_PROC=y |
48 | CONFIG_LOG_BUF_SHIFT=14 | 51 | CONFIG_LOG_BUF_SHIFT=14 |
@@ -67,31 +70,33 @@ CONFIG_BUG=y | |||
67 | CONFIG_ELF_CORE=y | 70 | CONFIG_ELF_CORE=y |
68 | CONFIG_COMPAT_BRK=y | 71 | CONFIG_COMPAT_BRK=y |
69 | CONFIG_BASE_FULL=y | 72 | CONFIG_BASE_FULL=y |
70 | # CONFIG_FUTEX is not set | 73 | CONFIG_FUTEX=y |
71 | CONFIG_ANON_INODES=y | 74 | CONFIG_ANON_INODES=y |
72 | # CONFIG_EPOLL is not set | 75 | CONFIG_EPOLL=y |
73 | CONFIG_SIGNALFD=y | 76 | CONFIG_SIGNALFD=y |
74 | CONFIG_TIMERFD=y | 77 | CONFIG_TIMERFD=y |
75 | CONFIG_EVENTFD=y | 78 | CONFIG_EVENTFD=y |
76 | CONFIG_SHMEM=y | 79 | CONFIG_SHMEM=y |
80 | CONFIG_AIO=y | ||
77 | CONFIG_VM_EVENT_COUNTERS=y | 81 | CONFIG_VM_EVENT_COUNTERS=y |
82 | CONFIG_PCI_QUIRKS=y | ||
78 | CONFIG_SLAB=y | 83 | CONFIG_SLAB=y |
79 | # CONFIG_SLUB is not set | 84 | # CONFIG_SLUB is not set |
80 | # CONFIG_SLOB is not set | 85 | # CONFIG_SLOB is not set |
81 | CONFIG_PROFILING=y | 86 | CONFIG_PROFILING=y |
82 | # CONFIG_MARKERS is not set | 87 | # CONFIG_MARKERS is not set |
83 | CONFIG_OPROFILE=m | 88 | CONFIG_OPROFILE=y |
84 | CONFIG_HAVE_OPROFILE=y | 89 | CONFIG_HAVE_OPROFILE=y |
85 | # CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set | 90 | CONFIG_KPROBES=y |
86 | # CONFIG_HAVE_IOREMAP_PROT is not set | 91 | CONFIG_KRETPROBES=y |
87 | # CONFIG_HAVE_KPROBES is not set | 92 | CONFIG_HAVE_IOREMAP_PROT=y |
88 | # CONFIG_HAVE_KRETPROBES is not set | 93 | CONFIG_HAVE_KPROBES=y |
89 | # CONFIG_HAVE_ARCH_TRACEHOOK is not set | 94 | CONFIG_HAVE_KRETPROBES=y |
90 | # CONFIG_HAVE_DMA_ATTRS is not set | 95 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
91 | # CONFIG_USE_GENERIC_SMP_HELPERS is not set | ||
92 | CONFIG_HAVE_CLK=y | 96 | CONFIG_HAVE_CLK=y |
93 | CONFIG_PROC_PAGE_MONITOR=y | 97 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
94 | CONFIG_SLABINFO=y | 98 | CONFIG_SLABINFO=y |
99 | CONFIG_RT_MUTEXES=y | ||
95 | # CONFIG_TINY_SHMEM is not set | 100 | # CONFIG_TINY_SHMEM is not set |
96 | CONFIG_BASE_SMALL=0 | 101 | CONFIG_BASE_SMALL=0 |
97 | CONFIG_MODULES=y | 102 | CONFIG_MODULES=y |
@@ -120,7 +125,8 @@ CONFIG_IOSCHED_NOOP=y | |||
120 | # CONFIG_DEFAULT_CFQ is not set | 125 | # CONFIG_DEFAULT_CFQ is not set |
121 | CONFIG_DEFAULT_NOOP=y | 126 | CONFIG_DEFAULT_NOOP=y |
122 | CONFIG_DEFAULT_IOSCHED="noop" | 127 | CONFIG_DEFAULT_IOSCHED="noop" |
123 | CONFIG_CLASSIC_RCU=y | 128 | # CONFIG_CLASSIC_RCU is not set |
129 | # CONFIG_FREEZER is not set | ||
124 | 130 | ||
125 | # | 131 | # |
126 | # System type | 132 | # System type |
@@ -182,6 +188,7 @@ CONFIG_MAX_ACTIVE_REGIONS=2 | |||
182 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 188 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
183 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | 189 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y |
184 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 190 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
191 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | ||
185 | CONFIG_PAGE_SIZE_4KB=y | 192 | CONFIG_PAGE_SIZE_4KB=y |
186 | # CONFIG_PAGE_SIZE_8KB is not set | 193 | # CONFIG_PAGE_SIZE_8KB is not set |
187 | # CONFIG_PAGE_SIZE_16KB is not set | 194 | # CONFIG_PAGE_SIZE_16KB is not set |
@@ -200,13 +207,15 @@ CONFIG_SPARSEMEM_MANUAL=y | |||
200 | CONFIG_SPARSEMEM=y | 207 | CONFIG_SPARSEMEM=y |
201 | CONFIG_HAVE_MEMORY_PRESENT=y | 208 | CONFIG_HAVE_MEMORY_PRESENT=y |
202 | CONFIG_SPARSEMEM_STATIC=y | 209 | CONFIG_SPARSEMEM_STATIC=y |
203 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
204 | # CONFIG_MEMORY_HOTPLUG is not set | 210 | # CONFIG_MEMORY_HOTPLUG is not set |
205 | CONFIG_PAGEFLAGS_EXTENDED=y | 211 | CONFIG_PAGEFLAGS_EXTENDED=y |
206 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 212 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
213 | CONFIG_MIGRATION=y | ||
207 | # CONFIG_RESOURCES_64BIT is not set | 214 | # CONFIG_RESOURCES_64BIT is not set |
215 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
208 | CONFIG_ZONE_DMA_FLAG=0 | 216 | CONFIG_ZONE_DMA_FLAG=0 |
209 | CONFIG_NR_QUICK=2 | 217 | CONFIG_NR_QUICK=2 |
218 | CONFIG_UNEVICTABLE_LRU=y | ||
210 | 219 | ||
211 | # | 220 | # |
212 | # Cache configuration | 221 | # Cache configuration |
@@ -243,15 +252,30 @@ CONFIG_SH_R7785RP=y | |||
243 | CONFIG_SH_TMU=y | 252 | CONFIG_SH_TMU=y |
244 | CONFIG_SH_TIMER_IRQ=28 | 253 | CONFIG_SH_TIMER_IRQ=28 |
245 | CONFIG_SH_PCLK_FREQ=50000000 | 254 | CONFIG_SH_PCLK_FREQ=50000000 |
246 | # CONFIG_TICK_ONESHOT is not set | 255 | CONFIG_TICK_ONESHOT=y |
247 | # CONFIG_NO_HZ is not set | 256 | CONFIG_NO_HZ=y |
248 | # CONFIG_HIGH_RES_TIMERS is not set | 257 | CONFIG_HIGH_RES_TIMERS=y |
249 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | 258 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y |
250 | 259 | ||
251 | # | 260 | # |
252 | # CPU Frequency scaling | 261 | # CPU Frequency scaling |
253 | # | 262 | # |
254 | # CONFIG_CPU_FREQ is not set | 263 | CONFIG_CPU_FREQ=y |
264 | CONFIG_CPU_FREQ_TABLE=y | ||
265 | # CONFIG_CPU_FREQ_DEBUG is not set | ||
266 | CONFIG_CPU_FREQ_STAT=y | ||
267 | # CONFIG_CPU_FREQ_STAT_DETAILS is not set | ||
268 | CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y | ||
269 | # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set | ||
270 | # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set | ||
271 | # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set | ||
272 | # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set | ||
273 | CONFIG_CPU_FREQ_GOV_PERFORMANCE=y | ||
274 | # CONFIG_CPU_FREQ_GOV_POWERSAVE is not set | ||
275 | # CONFIG_CPU_FREQ_GOV_USERSPACE is not set | ||
276 | # CONFIG_CPU_FREQ_GOV_ONDEMAND is not set | ||
277 | # CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set | ||
278 | CONFIG_SH_CPU_FREQ=y | ||
255 | 279 | ||
256 | # | 280 | # |
257 | # DMA support | 281 | # DMA support |
@@ -276,13 +300,15 @@ CONFIG_HZ_250=y | |||
276 | # CONFIG_HZ_300 is not set | 300 | # CONFIG_HZ_300 is not set |
277 | # CONFIG_HZ_1000 is not set | 301 | # CONFIG_HZ_1000 is not set |
278 | CONFIG_HZ=250 | 302 | CONFIG_HZ=250 |
279 | # CONFIG_SCHED_HRTICK is not set | 303 | CONFIG_SCHED_HRTICK=y |
280 | CONFIG_KEXEC=y | 304 | CONFIG_KEXEC=y |
281 | # CONFIG_CRASH_DUMP is not set | 305 | # CONFIG_CRASH_DUMP is not set |
306 | # CONFIG_SECCOMP is not set | ||
282 | # CONFIG_PREEMPT_NONE is not set | 307 | # CONFIG_PREEMPT_NONE is not set |
283 | # CONFIG_PREEMPT_VOLUNTARY is not set | 308 | # CONFIG_PREEMPT_VOLUNTARY is not set |
284 | CONFIG_PREEMPT=y | 309 | CONFIG_PREEMPT=y |
285 | # CONFIG_PREEMPT_RCU is not set | 310 | CONFIG_PREEMPT_RCU=y |
311 | CONFIG_RCU_TRACE=y | ||
286 | CONFIG_GUSA=y | 312 | CONFIG_GUSA=y |
287 | 313 | ||
288 | # | 314 | # |
@@ -301,7 +327,7 @@ CONFIG_SH_PCIDMA_NONCOHERENT=y | |||
301 | CONFIG_PCI_AUTO=y | 327 | CONFIG_PCI_AUTO=y |
302 | CONFIG_PCI_AUTO_UPDATE_RESOURCES=y | 328 | CONFIG_PCI_AUTO_UPDATE_RESOURCES=y |
303 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 329 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
304 | CONFIG_PCI_LEGACY=y | 330 | # CONFIG_PCI_LEGACY is not set |
305 | # CONFIG_PCI_DEBUG is not set | 331 | # CONFIG_PCI_DEBUG is not set |
306 | # CONFIG_PCCARD is not set | 332 | # CONFIG_PCCARD is not set |
307 | # CONFIG_HOTPLUG_PCI is not set | 333 | # CONFIG_HOTPLUG_PCI is not set |
@@ -310,11 +336,9 @@ CONFIG_PCI_LEGACY=y | |||
310 | # Executable file formats | 336 | # Executable file formats |
311 | # | 337 | # |
312 | CONFIG_BINFMT_ELF=y | 338 | CONFIG_BINFMT_ELF=y |
313 | # CONFIG_BINFMT_MISC is not set | 339 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set |
314 | 340 | # CONFIG_HAVE_AOUT is not set | |
315 | # | 341 | CONFIG_BINFMT_MISC=m |
316 | # Networking | ||
317 | # | ||
318 | CONFIG_NET=y | 342 | CONFIG_NET=y |
319 | 343 | ||
320 | # | 344 | # |
@@ -370,6 +394,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
370 | # CONFIG_ATM is not set | 394 | # CONFIG_ATM is not set |
371 | CONFIG_STP=m | 395 | CONFIG_STP=m |
372 | CONFIG_BRIDGE=m | 396 | CONFIG_BRIDGE=m |
397 | # CONFIG_NET_DSA is not set | ||
373 | # CONFIG_VLAN_8021Q is not set | 398 | # CONFIG_VLAN_8021Q is not set |
374 | # CONFIG_DECNET is not set | 399 | # CONFIG_DECNET is not set |
375 | CONFIG_LLC=m | 400 | CONFIG_LLC=m |
@@ -386,16 +411,16 @@ CONFIG_LLC=m | |||
386 | # Network testing | 411 | # Network testing |
387 | # | 412 | # |
388 | # CONFIG_NET_PKTGEN is not set | 413 | # CONFIG_NET_PKTGEN is not set |
414 | # CONFIG_NET_TCPPROBE is not set | ||
389 | # CONFIG_HAMRADIO is not set | 415 | # CONFIG_HAMRADIO is not set |
390 | # CONFIG_CAN is not set | 416 | # CONFIG_CAN is not set |
391 | # CONFIG_IRDA is not set | 417 | # CONFIG_IRDA is not set |
392 | # CONFIG_BT is not set | 418 | # CONFIG_BT is not set |
393 | # CONFIG_AF_RXRPC is not set | 419 | # CONFIG_AF_RXRPC is not set |
394 | 420 | # CONFIG_PHONET is not set | |
395 | # | 421 | CONFIG_WIRELESS=y |
396 | # Wireless | ||
397 | # | ||
398 | # CONFIG_CFG80211 is not set | 422 | # CONFIG_CFG80211 is not set |
423 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
399 | CONFIG_WIRELESS_EXT=y | 424 | CONFIG_WIRELESS_EXT=y |
400 | CONFIG_WIRELESS_EXT_SYSFS=y | 425 | CONFIG_WIRELESS_EXT_SYSFS=y |
401 | # CONFIG_MAC80211 is not set | 426 | # CONFIG_MAC80211 is not set |
@@ -617,8 +642,12 @@ CONFIG_AX88796_93CX6=y | |||
617 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 642 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
618 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 643 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
619 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 644 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
645 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
646 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
647 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
620 | # CONFIG_NET_PCI is not set | 648 | # CONFIG_NET_PCI is not set |
621 | # CONFIG_B44 is not set | 649 | # CONFIG_B44 is not set |
650 | # CONFIG_ATL2 is not set | ||
622 | CONFIG_NETDEV_1000=y | 651 | CONFIG_NETDEV_1000=y |
623 | # CONFIG_ACENIC is not set | 652 | # CONFIG_ACENIC is not set |
624 | # CONFIG_DL2K is not set | 653 | # CONFIG_DL2K is not set |
@@ -639,9 +668,11 @@ CONFIG_R8169=y | |||
639 | # CONFIG_QLA3XXX is not set | 668 | # CONFIG_QLA3XXX is not set |
640 | # CONFIG_ATL1 is not set | 669 | # CONFIG_ATL1 is not set |
641 | # CONFIG_ATL1E is not set | 670 | # CONFIG_ATL1E is not set |
671 | # CONFIG_JME is not set | ||
642 | CONFIG_NETDEV_10000=y | 672 | CONFIG_NETDEV_10000=y |
643 | # CONFIG_CHELSIO_T1 is not set | 673 | # CONFIG_CHELSIO_T1 is not set |
644 | # CONFIG_CHELSIO_T3 is not set | 674 | # CONFIG_CHELSIO_T3 is not set |
675 | # CONFIG_ENIC is not set | ||
645 | # CONFIG_IXGBE is not set | 676 | # CONFIG_IXGBE is not set |
646 | # CONFIG_IXGB is not set | 677 | # CONFIG_IXGB is not set |
647 | # CONFIG_S2IO is not set | 678 | # CONFIG_S2IO is not set |
@@ -651,6 +682,7 @@ CONFIG_NETDEV_10000=y | |||
651 | # CONFIG_MLX4_CORE is not set | 682 | # CONFIG_MLX4_CORE is not set |
652 | # CONFIG_TEHUTI is not set | 683 | # CONFIG_TEHUTI is not set |
653 | # CONFIG_BNX2X is not set | 684 | # CONFIG_BNX2X is not set |
685 | # CONFIG_QLGE is not set | ||
654 | # CONFIG_SFC is not set | 686 | # CONFIG_SFC is not set |
655 | # CONFIG_TR is not set | 687 | # CONFIG_TR is not set |
656 | 688 | ||
@@ -750,24 +782,129 @@ CONFIG_HW_RANDOM=y | |||
750 | # CONFIG_RAW_DRIVER is not set | 782 | # CONFIG_RAW_DRIVER is not set |
751 | # CONFIG_TCG_TPM is not set | 783 | # CONFIG_TCG_TPM is not set |
752 | CONFIG_DEVPORT=y | 784 | CONFIG_DEVPORT=y |
753 | # CONFIG_I2C is not set | 785 | CONFIG_I2C=y |
786 | CONFIG_I2C_BOARDINFO=y | ||
787 | CONFIG_I2C_CHARDEV=y | ||
788 | CONFIG_I2C_HELPER_AUTO=y | ||
789 | |||
790 | # | ||
791 | # I2C Hardware Bus support | ||
792 | # | ||
793 | |||
794 | # | ||
795 | # PC SMBus host controller drivers | ||
796 | # | ||
797 | # CONFIG_I2C_ALI1535 is not set | ||
798 | # CONFIG_I2C_ALI1563 is not set | ||
799 | # CONFIG_I2C_ALI15X3 is not set | ||
800 | # CONFIG_I2C_AMD756 is not set | ||
801 | # CONFIG_I2C_AMD8111 is not set | ||
802 | # CONFIG_I2C_I801 is not set | ||
803 | # CONFIG_I2C_ISCH is not set | ||
804 | # CONFIG_I2C_PIIX4 is not set | ||
805 | # CONFIG_I2C_NFORCE2 is not set | ||
806 | # CONFIG_I2C_SIS5595 is not set | ||
807 | # CONFIG_I2C_SIS630 is not set | ||
808 | # CONFIG_I2C_SIS96X is not set | ||
809 | # CONFIG_I2C_VIA is not set | ||
810 | # CONFIG_I2C_VIAPRO is not set | ||
811 | |||
812 | # | ||
813 | # I2C system bus drivers (mostly embedded / system-on-chip) | ||
814 | # | ||
815 | CONFIG_I2C_HIGHLANDER=y | ||
816 | # CONFIG_I2C_OCORES is not set | ||
817 | # CONFIG_I2C_SH_MOBILE is not set | ||
818 | # CONFIG_I2C_SIMTEC is not set | ||
819 | |||
820 | # | ||
821 | # External I2C/SMBus adapter drivers | ||
822 | # | ||
823 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
824 | # CONFIG_I2C_TAOS_EVM is not set | ||
825 | |||
826 | # | ||
827 | # Graphics adapter I2C/DDC channel drivers | ||
828 | # | ||
829 | # CONFIG_I2C_VOODOO3 is not set | ||
830 | |||
831 | # | ||
832 | # Other I2C/SMBus bus drivers | ||
833 | # | ||
834 | # CONFIG_I2C_PCA_PLATFORM is not set | ||
835 | # CONFIG_I2C_STUB is not set | ||
836 | |||
837 | # | ||
838 | # Miscellaneous I2C Chip support | ||
839 | # | ||
840 | # CONFIG_DS1682 is not set | ||
841 | # CONFIG_AT24 is not set | ||
842 | # CONFIG_SENSORS_EEPROM is not set | ||
843 | # CONFIG_SENSORS_PCF8574 is not set | ||
844 | # CONFIG_PCF8575 is not set | ||
845 | # CONFIG_SENSORS_PCA9539 is not set | ||
846 | # CONFIG_SENSORS_PCF8591 is not set | ||
847 | # CONFIG_SENSORS_MAX6875 is not set | ||
848 | # CONFIG_SENSORS_TSL2550 is not set | ||
849 | # CONFIG_I2C_DEBUG_CORE is not set | ||
850 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
851 | # CONFIG_I2C_DEBUG_BUS is not set | ||
852 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
754 | # CONFIG_SPI is not set | 853 | # CONFIG_SPI is not set |
755 | # CONFIG_W1 is not set | 854 | # CONFIG_W1 is not set |
756 | # CONFIG_POWER_SUPPLY is not set | 855 | # CONFIG_POWER_SUPPLY is not set |
757 | CONFIG_HWMON=y | 856 | CONFIG_HWMON=y |
758 | # CONFIG_HWMON_VID is not set | 857 | # CONFIG_HWMON_VID is not set |
858 | # CONFIG_SENSORS_AD7414 is not set | ||
859 | # CONFIG_SENSORS_AD7418 is not set | ||
860 | # CONFIG_SENSORS_ADM1021 is not set | ||
861 | # CONFIG_SENSORS_ADM1025 is not set | ||
862 | # CONFIG_SENSORS_ADM1026 is not set | ||
863 | # CONFIG_SENSORS_ADM1029 is not set | ||
864 | # CONFIG_SENSORS_ADM1031 is not set | ||
865 | # CONFIG_SENSORS_ADM9240 is not set | ||
866 | # CONFIG_SENSORS_ADT7470 is not set | ||
867 | # CONFIG_SENSORS_ADT7473 is not set | ||
868 | # CONFIG_SENSORS_ATXP1 is not set | ||
869 | # CONFIG_SENSORS_DS1621 is not set | ||
759 | # CONFIG_SENSORS_I5K_AMB is not set | 870 | # CONFIG_SENSORS_I5K_AMB is not set |
760 | # CONFIG_SENSORS_F71805F is not set | 871 | # CONFIG_SENSORS_F71805F is not set |
761 | # CONFIG_SENSORS_F71882FG is not set | 872 | # CONFIG_SENSORS_F71882FG is not set |
873 | # CONFIG_SENSORS_F75375S is not set | ||
874 | # CONFIG_SENSORS_GL518SM is not set | ||
875 | # CONFIG_SENSORS_GL520SM is not set | ||
762 | # CONFIG_SENSORS_IT87 is not set | 876 | # CONFIG_SENSORS_IT87 is not set |
877 | # CONFIG_SENSORS_LM63 is not set | ||
878 | # CONFIG_SENSORS_LM75 is not set | ||
879 | # CONFIG_SENSORS_LM77 is not set | ||
880 | # CONFIG_SENSORS_LM78 is not set | ||
881 | # CONFIG_SENSORS_LM80 is not set | ||
882 | # CONFIG_SENSORS_LM83 is not set | ||
883 | # CONFIG_SENSORS_LM85 is not set | ||
884 | # CONFIG_SENSORS_LM87 is not set | ||
885 | # CONFIG_SENSORS_LM90 is not set | ||
886 | # CONFIG_SENSORS_LM92 is not set | ||
887 | # CONFIG_SENSORS_LM93 is not set | ||
888 | # CONFIG_SENSORS_MAX1619 is not set | ||
889 | # CONFIG_SENSORS_MAX6650 is not set | ||
763 | # CONFIG_SENSORS_PC87360 is not set | 890 | # CONFIG_SENSORS_PC87360 is not set |
764 | # CONFIG_SENSORS_PC87427 is not set | 891 | # CONFIG_SENSORS_PC87427 is not set |
765 | # CONFIG_SENSORS_SIS5595 is not set | 892 | # CONFIG_SENSORS_SIS5595 is not set |
893 | # CONFIG_SENSORS_DME1737 is not set | ||
766 | # CONFIG_SENSORS_SMSC47M1 is not set | 894 | # CONFIG_SENSORS_SMSC47M1 is not set |
895 | # CONFIG_SENSORS_SMSC47M192 is not set | ||
767 | # CONFIG_SENSORS_SMSC47B397 is not set | 896 | # CONFIG_SENSORS_SMSC47B397 is not set |
897 | # CONFIG_SENSORS_ADS7828 is not set | ||
898 | # CONFIG_SENSORS_THMC50 is not set | ||
768 | # CONFIG_SENSORS_VIA686A is not set | 899 | # CONFIG_SENSORS_VIA686A is not set |
769 | # CONFIG_SENSORS_VT1211 is not set | 900 | # CONFIG_SENSORS_VT1211 is not set |
770 | # CONFIG_SENSORS_VT8231 is not set | 901 | # CONFIG_SENSORS_VT8231 is not set |
902 | # CONFIG_SENSORS_W83781D is not set | ||
903 | # CONFIG_SENSORS_W83791D is not set | ||
904 | # CONFIG_SENSORS_W83792D is not set | ||
905 | # CONFIG_SENSORS_W83793 is not set | ||
906 | # CONFIG_SENSORS_W83L785TS is not set | ||
907 | # CONFIG_SENSORS_W83L786NG is not set | ||
771 | # CONFIG_SENSORS_W83627HF is not set | 908 | # CONFIG_SENSORS_W83627HF is not set |
772 | # CONFIG_SENSORS_W83627EHF is not set | 909 | # CONFIG_SENSORS_W83627EHF is not set |
773 | # CONFIG_HWMON_DEBUG_CHIP is not set | 910 | # CONFIG_HWMON_DEBUG_CHIP is not set |
@@ -787,6 +924,9 @@ CONFIG_SSB_POSSIBLE=y | |||
787 | # CONFIG_MFD_CORE is not set | 924 | # CONFIG_MFD_CORE is not set |
788 | # CONFIG_MFD_SM501 is not set | 925 | # CONFIG_MFD_SM501 is not set |
789 | # CONFIG_HTC_PASIC3 is not set | 926 | # CONFIG_HTC_PASIC3 is not set |
927 | # CONFIG_MFD_TMIO is not set | ||
928 | # CONFIG_MFD_WM8400 is not set | ||
929 | # CONFIG_MFD_WM8350_I2C is not set | ||
790 | 930 | ||
791 | # | 931 | # |
792 | # Multimedia devices | 932 | # Multimedia devices |
@@ -813,6 +953,7 @@ CONFIG_SSB_POSSIBLE=y | |||
813 | CONFIG_FB=y | 953 | CONFIG_FB=y |
814 | # CONFIG_FIRMWARE_EDID is not set | 954 | # CONFIG_FIRMWARE_EDID is not set |
815 | # CONFIG_FB_DDC is not set | 955 | # CONFIG_FB_DDC is not set |
956 | # CONFIG_FB_BOOT_VESA_SUPPORT is not set | ||
816 | CONFIG_FB_CFB_FILLRECT=m | 957 | CONFIG_FB_CFB_FILLRECT=m |
817 | CONFIG_FB_CFB_COPYAREA=m | 958 | CONFIG_FB_CFB_COPYAREA=m |
818 | CONFIG_FB_CFB_IMAGEBLIT=m | 959 | CONFIG_FB_CFB_IMAGEBLIT=m |
@@ -846,6 +987,7 @@ CONFIG_FB_CFB_IMAGEBLIT=m | |||
846 | # CONFIG_FB_S3 is not set | 987 | # CONFIG_FB_S3 is not set |
847 | # CONFIG_FB_SAVAGE is not set | 988 | # CONFIG_FB_SAVAGE is not set |
848 | # CONFIG_FB_SIS is not set | 989 | # CONFIG_FB_SIS is not set |
990 | # CONFIG_FB_VIA is not set | ||
849 | # CONFIG_FB_NEOMAGIC is not set | 991 | # CONFIG_FB_NEOMAGIC is not set |
850 | # CONFIG_FB_KYRO is not set | 992 | # CONFIG_FB_KYRO is not set |
851 | # CONFIG_FB_3DFX is not set | 993 | # CONFIG_FB_3DFX is not set |
@@ -857,6 +999,7 @@ CONFIG_FB_CFB_IMAGEBLIT=m | |||
857 | # CONFIG_FB_CARMINE is not set | 999 | # CONFIG_FB_CARMINE is not set |
858 | CONFIG_FB_SH_MOBILE_LCDC=m | 1000 | CONFIG_FB_SH_MOBILE_LCDC=m |
859 | # CONFIG_FB_VIRTUAL is not set | 1001 | # CONFIG_FB_VIRTUAL is not set |
1002 | # CONFIG_FB_METRONOME is not set | ||
860 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 1003 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
861 | 1004 | ||
862 | # | 1005 | # |
@@ -865,12 +1008,19 @@ CONFIG_FB_SH_MOBILE_LCDC=m | |||
865 | # CONFIG_DISPLAY_SUPPORT is not set | 1008 | # CONFIG_DISPLAY_SUPPORT is not set |
866 | # CONFIG_LOGO is not set | 1009 | # CONFIG_LOGO is not set |
867 | CONFIG_SOUND=m | 1010 | CONFIG_SOUND=m |
1011 | CONFIG_SOUND_OSS_CORE=y | ||
868 | # CONFIG_SND is not set | 1012 | # CONFIG_SND is not set |
869 | CONFIG_SOUND_PRIME=m | 1013 | CONFIG_SOUND_PRIME=m |
870 | CONFIG_HID_SUPPORT=y | 1014 | CONFIG_HID_SUPPORT=y |
871 | CONFIG_HID=y | 1015 | CONFIG_HID=y |
872 | # CONFIG_HID_DEBUG is not set | 1016 | # CONFIG_HID_DEBUG is not set |
873 | # CONFIG_HIDRAW is not set | 1017 | # CONFIG_HIDRAW is not set |
1018 | # CONFIG_HID_PID is not set | ||
1019 | |||
1020 | # | ||
1021 | # Special HID drivers | ||
1022 | # | ||
1023 | CONFIG_HID_COMPAT=y | ||
874 | CONFIG_USB_SUPPORT=y | 1024 | CONFIG_USB_SUPPORT=y |
875 | CONFIG_USB_ARCH_HAS_HCD=y | 1025 | CONFIG_USB_ARCH_HAS_HCD=y |
876 | CONFIG_USB_ARCH_HAS_OHCI=y | 1026 | CONFIG_USB_ARCH_HAS_OHCI=y |
@@ -880,6 +1030,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
880 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | 1030 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set |
881 | 1031 | ||
882 | # | 1032 | # |
1033 | # Enable Host or Gadget support to see Inventra options | ||
1034 | # | ||
1035 | |||
1036 | # | ||
883 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 1037 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
884 | # | 1038 | # |
885 | # CONFIG_USB_GADGET is not set | 1039 | # CONFIG_USB_GADGET is not set |
@@ -904,18 +1058,37 @@ CONFIG_RTC_INTF_DEV=y | |||
904 | # CONFIG_RTC_DRV_TEST is not set | 1058 | # CONFIG_RTC_DRV_TEST is not set |
905 | 1059 | ||
906 | # | 1060 | # |
1061 | # I2C RTC drivers | ||
1062 | # | ||
1063 | # CONFIG_RTC_DRV_DS1307 is not set | ||
1064 | # CONFIG_RTC_DRV_DS1374 is not set | ||
1065 | # CONFIG_RTC_DRV_DS1672 is not set | ||
1066 | # CONFIG_RTC_DRV_MAX6900 is not set | ||
1067 | CONFIG_RTC_DRV_RS5C372=y | ||
1068 | # CONFIG_RTC_DRV_ISL1208 is not set | ||
1069 | # CONFIG_RTC_DRV_X1205 is not set | ||
1070 | # CONFIG_RTC_DRV_PCF8563 is not set | ||
1071 | # CONFIG_RTC_DRV_PCF8583 is not set | ||
1072 | # CONFIG_RTC_DRV_M41T80 is not set | ||
1073 | # CONFIG_RTC_DRV_S35390A is not set | ||
1074 | # CONFIG_RTC_DRV_FM3130 is not set | ||
1075 | |||
1076 | # | ||
907 | # SPI RTC drivers | 1077 | # SPI RTC drivers |
908 | # | 1078 | # |
909 | 1079 | ||
910 | # | 1080 | # |
911 | # Platform RTC drivers | 1081 | # Platform RTC drivers |
912 | # | 1082 | # |
1083 | # CONFIG_RTC_DRV_DS1286 is not set | ||
913 | # CONFIG_RTC_DRV_DS1511 is not set | 1084 | # CONFIG_RTC_DRV_DS1511 is not set |
914 | # CONFIG_RTC_DRV_DS1553 is not set | 1085 | # CONFIG_RTC_DRV_DS1553 is not set |
915 | # CONFIG_RTC_DRV_DS1742 is not set | 1086 | # CONFIG_RTC_DRV_DS1742 is not set |
916 | # CONFIG_RTC_DRV_STK17TA8 is not set | 1087 | # CONFIG_RTC_DRV_STK17TA8 is not set |
917 | # CONFIG_RTC_DRV_M48T86 is not set | 1088 | # CONFIG_RTC_DRV_M48T86 is not set |
1089 | # CONFIG_RTC_DRV_M48T35 is not set | ||
918 | # CONFIG_RTC_DRV_M48T59 is not set | 1090 | # CONFIG_RTC_DRV_M48T59 is not set |
1091 | # CONFIG_RTC_DRV_BQ4802 is not set | ||
919 | # CONFIG_RTC_DRV_V3020 is not set | 1092 | # CONFIG_RTC_DRV_V3020 is not set |
920 | 1093 | ||
921 | # | 1094 | # |
@@ -924,6 +1097,7 @@ CONFIG_RTC_INTF_DEV=y | |||
924 | CONFIG_RTC_DRV_SH=y | 1097 | CONFIG_RTC_DRV_SH=y |
925 | # CONFIG_DMADEVICES is not set | 1098 | # CONFIG_DMADEVICES is not set |
926 | # CONFIG_UIO is not set | 1099 | # CONFIG_UIO is not set |
1100 | # CONFIG_STAGING is not set | ||
927 | 1101 | ||
928 | # | 1102 | # |
929 | # File systems | 1103 | # File systems |
@@ -935,13 +1109,14 @@ CONFIG_EXT3_FS=y | |||
935 | CONFIG_EXT3_FS_XATTR=y | 1109 | CONFIG_EXT3_FS_XATTR=y |
936 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 1110 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
937 | # CONFIG_EXT3_FS_SECURITY is not set | 1111 | # CONFIG_EXT3_FS_SECURITY is not set |
938 | # CONFIG_EXT4DEV_FS is not set | 1112 | # CONFIG_EXT4_FS is not set |
939 | CONFIG_JBD=y | 1113 | CONFIG_JBD=y |
940 | # CONFIG_JBD_DEBUG is not set | 1114 | # CONFIG_JBD_DEBUG is not set |
941 | CONFIG_FS_MBCACHE=y | 1115 | CONFIG_FS_MBCACHE=y |
942 | # CONFIG_REISERFS_FS is not set | 1116 | # CONFIG_REISERFS_FS is not set |
943 | # CONFIG_JFS_FS is not set | 1117 | # CONFIG_JFS_FS is not set |
944 | CONFIG_FS_POSIX_ACL=y | 1118 | CONFIG_FS_POSIX_ACL=y |
1119 | CONFIG_FILE_LOCKING=y | ||
945 | # CONFIG_XFS_FS is not set | 1120 | # CONFIG_XFS_FS is not set |
946 | # CONFIG_OCFS2_FS is not set | 1121 | # CONFIG_OCFS2_FS is not set |
947 | CONFIG_DNOTIFY=y | 1122 | CONFIG_DNOTIFY=y |
@@ -976,6 +1151,7 @@ CONFIG_NTFS_RW=y | |||
976 | CONFIG_PROC_FS=y | 1151 | CONFIG_PROC_FS=y |
977 | CONFIG_PROC_KCORE=y | 1152 | CONFIG_PROC_KCORE=y |
978 | CONFIG_PROC_SYSCTL=y | 1153 | CONFIG_PROC_SYSCTL=y |
1154 | CONFIG_PROC_PAGE_MONITOR=y | ||
979 | CONFIG_SYSFS=y | 1155 | CONFIG_SYSFS=y |
980 | CONFIG_TMPFS=y | 1156 | CONFIG_TMPFS=y |
981 | # CONFIG_TMPFS_POSIX_ACL is not set | 1157 | # CONFIG_TMPFS_POSIX_ACL is not set |
@@ -1018,6 +1194,7 @@ CONFIG_EXPORTFS=y | |||
1018 | CONFIG_NFS_COMMON=y | 1194 | CONFIG_NFS_COMMON=y |
1019 | CONFIG_SUNRPC=y | 1195 | CONFIG_SUNRPC=y |
1020 | CONFIG_SUNRPC_GSS=y | 1196 | CONFIG_SUNRPC_GSS=y |
1197 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
1021 | CONFIG_RPCSEC_GSS_KRB5=y | 1198 | CONFIG_RPCSEC_GSS_KRB5=y |
1022 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1199 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1023 | # CONFIG_SMB_FS is not set | 1200 | # CONFIG_SMB_FS is not set |
@@ -1094,6 +1271,8 @@ CONFIG_SCHED_DEBUG=y | |||
1094 | # CONFIG_DEBUG_OBJECTS is not set | 1271 | # CONFIG_DEBUG_OBJECTS is not set |
1095 | # CONFIG_DEBUG_SLAB is not set | 1272 | # CONFIG_DEBUG_SLAB is not set |
1096 | # CONFIG_DEBUG_PREEMPT is not set | 1273 | # CONFIG_DEBUG_PREEMPT is not set |
1274 | # CONFIG_DEBUG_RT_MUTEXES is not set | ||
1275 | # CONFIG_RT_MUTEX_TESTER is not set | ||
1097 | CONFIG_DEBUG_SPINLOCK=y | 1276 | CONFIG_DEBUG_SPINLOCK=y |
1098 | CONFIG_DEBUG_MUTEXES=y | 1277 | CONFIG_DEBUG_MUTEXES=y |
1099 | CONFIG_DEBUG_LOCK_ALLOC=y | 1278 | CONFIG_DEBUG_LOCK_ALLOC=y |
@@ -1113,10 +1292,23 @@ CONFIG_DEBUG_INFO=y | |||
1113 | # CONFIG_DEBUG_LIST is not set | 1292 | # CONFIG_DEBUG_LIST is not set |
1114 | # CONFIG_DEBUG_SG is not set | 1293 | # CONFIG_DEBUG_SG is not set |
1115 | CONFIG_FRAME_POINTER=y | 1294 | CONFIG_FRAME_POINTER=y |
1116 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
1117 | # CONFIG_RCU_TORTURE_TEST is not set | 1295 | # CONFIG_RCU_TORTURE_TEST is not set |
1296 | # CONFIG_KPROBES_SANITY_TEST is not set | ||
1118 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1297 | # CONFIG_BACKTRACE_SELF_TEST is not set |
1298 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
1299 | # CONFIG_LKDTM is not set | ||
1119 | # CONFIG_FAULT_INJECTION is not set | 1300 | # CONFIG_FAULT_INJECTION is not set |
1301 | # CONFIG_LATENCYTOP is not set | ||
1302 | CONFIG_NOP_TRACER=y | ||
1303 | CONFIG_HAVE_FTRACE=y | ||
1304 | # CONFIG_FTRACE is not set | ||
1305 | # CONFIG_IRQSOFF_TRACER is not set | ||
1306 | # CONFIG_PREEMPT_TRACER is not set | ||
1307 | # CONFIG_SCHED_TRACER is not set | ||
1308 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
1309 | # CONFIG_BOOT_TRACER is not set | ||
1310 | # CONFIG_STACK_TRACER is not set | ||
1311 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
1120 | # CONFIG_SAMPLES is not set | 1312 | # CONFIG_SAMPLES is not set |
1121 | CONFIG_SH_STANDARD_BIOS=y | 1313 | CONFIG_SH_STANDARD_BIOS=y |
1122 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 1314 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
@@ -1133,15 +1325,19 @@ CONFIG_4KSTACKS=y | |||
1133 | # | 1325 | # |
1134 | # CONFIG_KEYS is not set | 1326 | # CONFIG_KEYS is not set |
1135 | # CONFIG_SECURITY is not set | 1327 | # CONFIG_SECURITY is not set |
1328 | # CONFIG_SECURITYFS is not set | ||
1136 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1329 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
1137 | CONFIG_CRYPTO=y | 1330 | CONFIG_CRYPTO=y |
1138 | 1331 | ||
1139 | # | 1332 | # |
1140 | # Crypto core or helper | 1333 | # Crypto core or helper |
1141 | # | 1334 | # |
1335 | # CONFIG_CRYPTO_FIPS is not set | ||
1142 | CONFIG_CRYPTO_ALGAPI=y | 1336 | CONFIG_CRYPTO_ALGAPI=y |
1337 | CONFIG_CRYPTO_AEAD=y | ||
1143 | CONFIG_CRYPTO_BLKCIPHER=y | 1338 | CONFIG_CRYPTO_BLKCIPHER=y |
1144 | CONFIG_CRYPTO_HASH=y | 1339 | CONFIG_CRYPTO_HASH=y |
1340 | CONFIG_CRYPTO_RNG=y | ||
1145 | CONFIG_CRYPTO_MANAGER=y | 1341 | CONFIG_CRYPTO_MANAGER=y |
1146 | # CONFIG_CRYPTO_GF128MUL is not set | 1342 | # CONFIG_CRYPTO_GF128MUL is not set |
1147 | # CONFIG_CRYPTO_NULL is not set | 1343 | # CONFIG_CRYPTO_NULL is not set |
@@ -1214,6 +1410,11 @@ CONFIG_CRYPTO_DES=y | |||
1214 | # | 1410 | # |
1215 | # CONFIG_CRYPTO_DEFLATE is not set | 1411 | # CONFIG_CRYPTO_DEFLATE is not set |
1216 | # CONFIG_CRYPTO_LZO is not set | 1412 | # CONFIG_CRYPTO_LZO is not set |
1413 | |||
1414 | # | ||
1415 | # Random Number Generation | ||
1416 | # | ||
1417 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
1217 | CONFIG_CRYPTO_HW=y | 1418 | CONFIG_CRYPTO_HW=y |
1218 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 1419 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
1219 | 1420 | ||
@@ -1221,7 +1422,6 @@ CONFIG_CRYPTO_HW=y | |||
1221 | # Library routines | 1422 | # Library routines |
1222 | # | 1423 | # |
1223 | CONFIG_BITREVERSE=y | 1424 | CONFIG_BITREVERSE=y |
1224 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
1225 | # CONFIG_CRC_CCITT is not set | 1425 | # CONFIG_CRC_CCITT is not set |
1226 | # CONFIG_CRC16 is not set | 1426 | # CONFIG_CRC16 is not set |
1227 | CONFIG_CRC_T10DIF=y | 1427 | CONFIG_CRC_T10DIF=y |
@@ -1229,6 +1429,8 @@ CONFIG_CRC_T10DIF=y | |||
1229 | CONFIG_CRC32=y | 1429 | CONFIG_CRC32=y |
1230 | # CONFIG_CRC7 is not set | 1430 | # CONFIG_CRC7 is not set |
1231 | # CONFIG_LIBCRC32C is not set | 1431 | # CONFIG_LIBCRC32C is not set |
1432 | CONFIG_AUDIT_GENERIC=y | ||
1433 | CONFIG_PLIST=y | ||
1232 | CONFIG_HAS_IOMEM=y | 1434 | CONFIG_HAS_IOMEM=y |
1233 | CONFIG_HAS_IOPORT=y | 1435 | CONFIG_HAS_IOPORT=y |
1234 | CONFIG_HAS_DMA=y | 1436 | CONFIG_HAS_DMA=y |
diff --git a/arch/sh/configs/rsk7203_defconfig b/arch/sh/configs/rsk7203_defconfig index 840fe3843ffa..85b0ac4fc667 100644 --- a/arch/sh/configs/rsk7203_defconfig +++ b/arch/sh/configs/rsk7203_defconfig | |||
@@ -1,25 +1,27 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.26 | 3 | # Linux kernel version: 2.6.27 |
4 | # Mon Jul 28 22:23:03 2008 | 4 | # Tue Oct 21 12:58:47 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
8 | CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig" | ||
8 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
9 | CONFIG_GENERIC_BUG=y | 10 | CONFIG_GENERIC_BUG=y |
10 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
11 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
12 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
13 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
14 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | CONFIG_GENERIC_GPIO=y |
15 | # CONFIG_GENERIC_TIME is not set | 17 | # CONFIG_GENERIC_TIME is not set |
16 | # CONFIG_GENERIC_CLOCKEVENTS is not set | 18 | # CONFIG_GENERIC_CLOCKEVENTS is not set |
17 | CONFIG_STACKTRACE_SUPPORT=y | 19 | CONFIG_STACKTRACE_SUPPORT=y |
18 | CONFIG_LOCKDEP_SUPPORT=y | 20 | CONFIG_LOCKDEP_SUPPORT=y |
21 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
19 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 22 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
20 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 23 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
21 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 24 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
22 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
23 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 25 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
24 | 26 | ||
25 | # | 27 | # |
@@ -56,7 +58,6 @@ CONFIG_SYSCTL=y | |||
56 | CONFIG_EMBEDDED=y | 58 | CONFIG_EMBEDDED=y |
57 | CONFIG_UID16=y | 59 | CONFIG_UID16=y |
58 | CONFIG_SYSCTL_SYSCALL=y | 60 | CONFIG_SYSCTL_SYSCALL=y |
59 | CONFIG_SYSCTL_SYSCALL_CHECK=y | ||
60 | CONFIG_KALLSYMS=y | 61 | CONFIG_KALLSYMS=y |
61 | CONFIG_KALLSYMS_ALL=y | 62 | CONFIG_KALLSYMS_ALL=y |
62 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 63 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
@@ -72,7 +73,9 @@ CONFIG_EPOLL=y | |||
72 | CONFIG_SIGNALFD=y | 73 | CONFIG_SIGNALFD=y |
73 | CONFIG_TIMERFD=y | 74 | CONFIG_TIMERFD=y |
74 | CONFIG_EVENTFD=y | 75 | CONFIG_EVENTFD=y |
76 | CONFIG_AIO=y | ||
75 | CONFIG_VM_EVENT_COUNTERS=y | 77 | CONFIG_VM_EVENT_COUNTERS=y |
78 | CONFIG_PCI_QUIRKS=y | ||
76 | # CONFIG_SLAB is not set | 79 | # CONFIG_SLAB is not set |
77 | # CONFIG_SLUB is not set | 80 | # CONFIG_SLUB is not set |
78 | CONFIG_SLOB=y | 81 | CONFIG_SLOB=y |
@@ -80,14 +83,12 @@ CONFIG_PROFILING=y | |||
80 | # CONFIG_MARKERS is not set | 83 | # CONFIG_MARKERS is not set |
81 | CONFIG_OPROFILE=y | 84 | CONFIG_OPROFILE=y |
82 | CONFIG_HAVE_OPROFILE=y | 85 | CONFIG_HAVE_OPROFILE=y |
83 | # CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set | 86 | # CONFIG_KPROBES is not set |
84 | # CONFIG_HAVE_IOREMAP_PROT is not set | 87 | CONFIG_HAVE_KPROBES=y |
85 | # CONFIG_HAVE_KPROBES is not set | 88 | CONFIG_HAVE_KRETPROBES=y |
86 | # CONFIG_HAVE_KRETPROBES is not set | 89 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
87 | # CONFIG_HAVE_ARCH_TRACEHOOK is not set | ||
88 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
89 | # CONFIG_USE_GENERIC_SMP_HELPERS is not set | ||
90 | CONFIG_HAVE_CLK=y | 90 | CONFIG_HAVE_CLK=y |
91 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
91 | CONFIG_RT_MUTEXES=y | 92 | CONFIG_RT_MUTEXES=y |
92 | CONFIG_TINY_SHMEM=y | 93 | CONFIG_TINY_SHMEM=y |
93 | CONFIG_BASE_SMALL=0 | 94 | CONFIG_BASE_SMALL=0 |
@@ -117,6 +118,7 @@ CONFIG_IOSCHED_NOOP=y | |||
117 | CONFIG_DEFAULT_NOOP=y | 118 | CONFIG_DEFAULT_NOOP=y |
118 | CONFIG_DEFAULT_IOSCHED="noop" | 119 | CONFIG_DEFAULT_IOSCHED="noop" |
119 | CONFIG_CLASSIC_RCU=y | 120 | CONFIG_CLASSIC_RCU=y |
121 | # CONFIG_FREEZER is not set | ||
120 | 122 | ||
121 | # | 123 | # |
122 | # System type | 124 | # System type |
@@ -183,10 +185,10 @@ CONFIG_FLATMEM_MANUAL=y | |||
183 | CONFIG_FLATMEM=y | 185 | CONFIG_FLATMEM=y |
184 | CONFIG_FLAT_NODE_MEM_MAP=y | 186 | CONFIG_FLAT_NODE_MEM_MAP=y |
185 | CONFIG_SPARSEMEM_STATIC=y | 187 | CONFIG_SPARSEMEM_STATIC=y |
186 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
187 | CONFIG_PAGEFLAGS_EXTENDED=y | 188 | CONFIG_PAGEFLAGS_EXTENDED=y |
188 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 189 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
189 | # CONFIG_RESOURCES_64BIT is not set | 190 | # CONFIG_RESOURCES_64BIT is not set |
191 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
190 | CONFIG_ZONE_DMA_FLAG=0 | 192 | CONFIG_ZONE_DMA_FLAG=0 |
191 | CONFIG_NR_QUICK=2 | 193 | CONFIG_NR_QUICK=2 |
192 | 194 | ||
@@ -219,7 +221,6 @@ CONFIG_SH_CMT=y | |||
219 | CONFIG_SH_TIMER_IRQ=142 | 221 | CONFIG_SH_TIMER_IRQ=142 |
220 | CONFIG_SH_PCLK_FREQ=16670800 | 222 | CONFIG_SH_PCLK_FREQ=16670800 |
221 | CONFIG_SH_CLK_MD=0 | 223 | CONFIG_SH_CLK_MD=0 |
222 | # CONFIG_TICK_ONESHOT is not set | ||
223 | 224 | ||
224 | # | 225 | # |
225 | # CPU Frequency scaling | 226 | # CPU Frequency scaling |
@@ -266,6 +267,7 @@ CONFIG_HZ=1000 | |||
266 | # CONFIG_SCHED_HRTICK is not set | 267 | # CONFIG_SCHED_HRTICK is not set |
267 | # CONFIG_KEXEC is not set | 268 | # CONFIG_KEXEC is not set |
268 | # CONFIG_CRASH_DUMP is not set | 269 | # CONFIG_CRASH_DUMP is not set |
270 | # CONFIG_SECCOMP is not set | ||
269 | CONFIG_PREEMPT_NONE=y | 271 | CONFIG_PREEMPT_NONE=y |
270 | # CONFIG_PREEMPT_VOLUNTARY is not set | 272 | # CONFIG_PREEMPT_VOLUNTARY is not set |
271 | # CONFIG_PREEMPT is not set | 273 | # CONFIG_PREEMPT is not set |
@@ -292,11 +294,8 @@ CONFIG_BINFMT_ELF_FDPIC=y | |||
292 | CONFIG_BINFMT_FLAT=y | 294 | CONFIG_BINFMT_FLAT=y |
293 | CONFIG_BINFMT_ZFLAT=y | 295 | CONFIG_BINFMT_ZFLAT=y |
294 | CONFIG_BINFMT_SHARED_FLAT=y | 296 | CONFIG_BINFMT_SHARED_FLAT=y |
297 | # CONFIG_HAVE_AOUT is not set | ||
295 | # CONFIG_BINFMT_MISC is not set | 298 | # CONFIG_BINFMT_MISC is not set |
296 | |||
297 | # | ||
298 | # Networking | ||
299 | # | ||
300 | CONFIG_NET=y | 299 | CONFIG_NET=y |
301 | 300 | ||
302 | # | 301 | # |
@@ -339,6 +338,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
339 | # CONFIG_TIPC is not set | 338 | # CONFIG_TIPC is not set |
340 | # CONFIG_ATM is not set | 339 | # CONFIG_ATM is not set |
341 | # CONFIG_BRIDGE is not set | 340 | # CONFIG_BRIDGE is not set |
341 | # CONFIG_NET_DSA is not set | ||
342 | # CONFIG_VLAN_8021Q is not set | 342 | # CONFIG_VLAN_8021Q is not set |
343 | # CONFIG_DECNET is not set | 343 | # CONFIG_DECNET is not set |
344 | # CONFIG_LLC2 is not set | 344 | # CONFIG_LLC2 is not set |
@@ -359,11 +359,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
359 | # CONFIG_IRDA is not set | 359 | # CONFIG_IRDA is not set |
360 | # CONFIG_BT is not set | 360 | # CONFIG_BT is not set |
361 | # CONFIG_AF_RXRPC is not set | 361 | # CONFIG_AF_RXRPC is not set |
362 | 362 | # CONFIG_PHONET is not set | |
363 | # | 363 | CONFIG_WIRELESS=y |
364 | # Wireless | ||
365 | # | ||
366 | # CONFIG_CFG80211 is not set | 364 | # CONFIG_CFG80211 is not set |
365 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
367 | # CONFIG_WIRELESS_EXT is not set | 366 | # CONFIG_WIRELESS_EXT is not set |
368 | # CONFIG_MAC80211 is not set | 367 | # CONFIG_MAC80211 is not set |
369 | # CONFIG_IEEE80211 is not set | 368 | # CONFIG_IEEE80211 is not set |
@@ -442,7 +441,6 @@ CONFIG_MTD_PHYSMAP=y | |||
442 | CONFIG_MTD_PHYSMAP_START=0x0 | 441 | CONFIG_MTD_PHYSMAP_START=0x0 |
443 | CONFIG_MTD_PHYSMAP_LEN=0x0 | 442 | CONFIG_MTD_PHYSMAP_LEN=0x0 |
444 | CONFIG_MTD_PHYSMAP_BANKWIDTH=4 | 443 | CONFIG_MTD_PHYSMAP_BANKWIDTH=4 |
445 | # CONFIG_MTD_UCLINUX is not set | ||
446 | # CONFIG_MTD_PLATRAM is not set | 444 | # CONFIG_MTD_PLATRAM is not set |
447 | 445 | ||
448 | # | 446 | # |
@@ -509,6 +507,9 @@ CONFIG_SMC911X=y | |||
509 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 507 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
510 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 508 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
511 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 509 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
510 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
511 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
512 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
512 | # CONFIG_B44 is not set | 513 | # CONFIG_B44 is not set |
513 | # CONFIG_NETDEV_1000 is not set | 514 | # CONFIG_NETDEV_1000 is not set |
514 | # CONFIG_NETDEV_10000 is not set | 515 | # CONFIG_NETDEV_10000 is not set |
@@ -541,7 +542,7 @@ CONFIG_SMC911X=y | |||
541 | # Input device support | 542 | # Input device support |
542 | # | 543 | # |
543 | CONFIG_INPUT=y | 544 | CONFIG_INPUT=y |
544 | # CONFIG_INPUT_FF_MEMLESS is not set | 545 | CONFIG_INPUT_FF_MEMLESS=m |
545 | # CONFIG_INPUT_POLLDEV is not set | 546 | # CONFIG_INPUT_POLLDEV is not set |
546 | 547 | ||
547 | # | 548 | # |
@@ -615,6 +616,8 @@ CONFIG_SSB_POSSIBLE=y | |||
615 | # CONFIG_MFD_CORE is not set | 616 | # CONFIG_MFD_CORE is not set |
616 | # CONFIG_MFD_SM501 is not set | 617 | # CONFIG_MFD_SM501 is not set |
617 | # CONFIG_HTC_PASIC3 is not set | 618 | # CONFIG_HTC_PASIC3 is not set |
619 | # CONFIG_MFD_TMIO is not set | ||
620 | # CONFIG_MFD_WM8400 is not set | ||
618 | 621 | ||
619 | # | 622 | # |
620 | # Multimedia devices | 623 | # Multimedia devices |
@@ -655,9 +658,36 @@ CONFIG_HID=y | |||
655 | # USB Input Devices | 658 | # USB Input Devices |
656 | # | 659 | # |
657 | CONFIG_USB_HID=y | 660 | CONFIG_USB_HID=y |
658 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | 661 | # CONFIG_HID_PID is not set |
659 | # CONFIG_HID_FF is not set | ||
660 | # CONFIG_USB_HIDDEV is not set | 662 | # CONFIG_USB_HIDDEV is not set |
663 | |||
664 | # | ||
665 | # Special HID drivers | ||
666 | # | ||
667 | CONFIG_HID_COMPAT=y | ||
668 | CONFIG_HID_A4TECH=y | ||
669 | CONFIG_HID_APPLE=y | ||
670 | CONFIG_HID_BELKIN=y | ||
671 | CONFIG_HID_BRIGHT=y | ||
672 | CONFIG_HID_CHERRY=y | ||
673 | CONFIG_HID_CHICONY=y | ||
674 | CONFIG_HID_CYPRESS=y | ||
675 | CONFIG_HID_DELL=y | ||
676 | CONFIG_HID_EZKEY=y | ||
677 | CONFIG_HID_GYRATION=y | ||
678 | CONFIG_HID_LOGITECH=y | ||
679 | # CONFIG_LOGITECH_FF is not set | ||
680 | # CONFIG_LOGIRUMBLEPAD2_FF is not set | ||
681 | CONFIG_HID_MICROSOFT=y | ||
682 | CONFIG_HID_MONTEREY=y | ||
683 | CONFIG_HID_PANTHERLORD=y | ||
684 | # CONFIG_PANTHERLORD_FF is not set | ||
685 | CONFIG_HID_PETALYNX=y | ||
686 | CONFIG_HID_SAMSUNG=y | ||
687 | CONFIG_HID_SONY=y | ||
688 | CONFIG_HID_SUNPLUS=y | ||
689 | CONFIG_THRUSTMASTER_FF=m | ||
690 | CONFIG_ZEROPLUS_FF=m | ||
661 | CONFIG_USB_SUPPORT=y | 691 | CONFIG_USB_SUPPORT=y |
662 | CONFIG_USB_ARCH_HAS_HCD=y | 692 | CONFIG_USB_ARCH_HAS_HCD=y |
663 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 693 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
@@ -675,6 +705,7 @@ CONFIG_USB_DEVICE_CLASS=y | |||
675 | # CONFIG_USB_OTG is not set | 705 | # CONFIG_USB_OTG is not set |
676 | # CONFIG_USB_OTG_WHITELIST is not set | 706 | # CONFIG_USB_OTG_WHITELIST is not set |
677 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | 707 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set |
708 | CONFIG_USB_MON=y | ||
678 | 709 | ||
679 | # | 710 | # |
680 | # USB Host Controller Drivers | 711 | # USB Host Controller Drivers |
@@ -691,6 +722,7 @@ CONFIG_USB_R8A66597_HCD=y | |||
691 | # CONFIG_USB_ACM is not set | 722 | # CONFIG_USB_ACM is not set |
692 | # CONFIG_USB_PRINTER is not set | 723 | # CONFIG_USB_PRINTER is not set |
693 | # CONFIG_USB_WDM is not set | 724 | # CONFIG_USB_WDM is not set |
725 | # CONFIG_USB_TMC is not set | ||
694 | 726 | ||
695 | # | 727 | # |
696 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 728 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -705,7 +737,6 @@ CONFIG_USB_R8A66597_HCD=y | |||
705 | # USB Imaging devices | 737 | # USB Imaging devices |
706 | # | 738 | # |
707 | # CONFIG_USB_MDC800 is not set | 739 | # CONFIG_USB_MDC800 is not set |
708 | CONFIG_USB_MON=y | ||
709 | 740 | ||
710 | # | 741 | # |
711 | # USB port drivers | 742 | # USB port drivers |
@@ -718,7 +749,7 @@ CONFIG_USB_MON=y | |||
718 | # CONFIG_USB_EMI62 is not set | 749 | # CONFIG_USB_EMI62 is not set |
719 | # CONFIG_USB_EMI26 is not set | 750 | # CONFIG_USB_EMI26 is not set |
720 | # CONFIG_USB_ADUTUX is not set | 751 | # CONFIG_USB_ADUTUX is not set |
721 | # CONFIG_USB_AUERSWALD is not set | 752 | # CONFIG_USB_SEVSEG is not set |
722 | # CONFIG_USB_RIO500 is not set | 753 | # CONFIG_USB_RIO500 is not set |
723 | # CONFIG_USB_LEGOTOWER is not set | 754 | # CONFIG_USB_LEGOTOWER is not set |
724 | # CONFIG_USB_LCD is not set | 755 | # CONFIG_USB_LCD is not set |
@@ -735,6 +766,7 @@ CONFIG_USB_MON=y | |||
735 | # CONFIG_USB_IOWARRIOR is not set | 766 | # CONFIG_USB_IOWARRIOR is not set |
736 | # CONFIG_USB_TEST is not set | 767 | # CONFIG_USB_TEST is not set |
737 | # CONFIG_USB_ISIGHTFW is not set | 768 | # CONFIG_USB_ISIGHTFW is not set |
769 | # CONFIG_USB_VST is not set | ||
738 | # CONFIG_USB_GADGET is not set | 770 | # CONFIG_USB_GADGET is not set |
739 | # CONFIG_MMC is not set | 771 | # CONFIG_MMC is not set |
740 | # CONFIG_MEMSTICK is not set | 772 | # CONFIG_MEMSTICK is not set |
@@ -762,12 +794,15 @@ CONFIG_RTC_INTF_DEV=y | |||
762 | # | 794 | # |
763 | # Platform RTC drivers | 795 | # Platform RTC drivers |
764 | # | 796 | # |
797 | # CONFIG_RTC_DRV_DS1286 is not set | ||
765 | # CONFIG_RTC_DRV_DS1511 is not set | 798 | # CONFIG_RTC_DRV_DS1511 is not set |
766 | # CONFIG_RTC_DRV_DS1553 is not set | 799 | # CONFIG_RTC_DRV_DS1553 is not set |
767 | # CONFIG_RTC_DRV_DS1742 is not set | 800 | # CONFIG_RTC_DRV_DS1742 is not set |
768 | # CONFIG_RTC_DRV_STK17TA8 is not set | 801 | # CONFIG_RTC_DRV_STK17TA8 is not set |
769 | # CONFIG_RTC_DRV_M48T86 is not set | 802 | # CONFIG_RTC_DRV_M48T86 is not set |
803 | # CONFIG_RTC_DRV_M48T35 is not set | ||
770 | # CONFIG_RTC_DRV_M48T59 is not set | 804 | # CONFIG_RTC_DRV_M48T59 is not set |
805 | # CONFIG_RTC_DRV_BQ4802 is not set | ||
771 | # CONFIG_RTC_DRV_V3020 is not set | 806 | # CONFIG_RTC_DRV_V3020 is not set |
772 | 807 | ||
773 | # | 808 | # |
@@ -776,16 +811,18 @@ CONFIG_RTC_INTF_DEV=y | |||
776 | CONFIG_RTC_DRV_SH=y | 811 | CONFIG_RTC_DRV_SH=y |
777 | # CONFIG_DMADEVICES is not set | 812 | # CONFIG_DMADEVICES is not set |
778 | # CONFIG_UIO is not set | 813 | # CONFIG_UIO is not set |
814 | # CONFIG_STAGING is not set | ||
779 | 815 | ||
780 | # | 816 | # |
781 | # File systems | 817 | # File systems |
782 | # | 818 | # |
783 | # CONFIG_EXT2_FS is not set | 819 | # CONFIG_EXT2_FS is not set |
784 | # CONFIG_EXT3_FS is not set | 820 | # CONFIG_EXT3_FS is not set |
785 | # CONFIG_EXT4DEV_FS is not set | 821 | # CONFIG_EXT4_FS is not set |
786 | # CONFIG_REISERFS_FS is not set | 822 | # CONFIG_REISERFS_FS is not set |
787 | # CONFIG_JFS_FS is not set | 823 | # CONFIG_JFS_FS is not set |
788 | # CONFIG_FS_POSIX_ACL is not set | 824 | # CONFIG_FS_POSIX_ACL is not set |
825 | CONFIG_FILE_LOCKING=y | ||
789 | # CONFIG_XFS_FS is not set | 826 | # CONFIG_XFS_FS is not set |
790 | # CONFIG_OCFS2_FS is not set | 827 | # CONFIG_OCFS2_FS is not set |
791 | # CONFIG_DNOTIFY is not set | 828 | # CONFIG_DNOTIFY is not set |
@@ -847,6 +884,7 @@ CONFIG_ROOT_NFS=y | |||
847 | CONFIG_LOCKD=y | 884 | CONFIG_LOCKD=y |
848 | CONFIG_NFS_COMMON=y | 885 | CONFIG_NFS_COMMON=y |
849 | CONFIG_SUNRPC=y | 886 | CONFIG_SUNRPC=y |
887 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
850 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 888 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
851 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 889 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
852 | # CONFIG_SMB_FS is not set | 890 | # CONFIG_SMB_FS is not set |
@@ -905,10 +943,21 @@ CONFIG_DEBUG_WRITECOUNT=y | |||
905 | CONFIG_DEBUG_LIST=y | 943 | CONFIG_DEBUG_LIST=y |
906 | CONFIG_DEBUG_SG=y | 944 | CONFIG_DEBUG_SG=y |
907 | CONFIG_FRAME_POINTER=y | 945 | CONFIG_FRAME_POINTER=y |
908 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
909 | # CONFIG_RCU_TORTURE_TEST is not set | 946 | # CONFIG_RCU_TORTURE_TEST is not set |
947 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
910 | # CONFIG_BACKTRACE_SELF_TEST is not set | 948 | # CONFIG_BACKTRACE_SELF_TEST is not set |
949 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
911 | # CONFIG_FAULT_INJECTION is not set | 950 | # CONFIG_FAULT_INJECTION is not set |
951 | # CONFIG_LATENCYTOP is not set | ||
952 | CONFIG_SYSCTL_SYSCALL_CHECK=y | ||
953 | CONFIG_NOP_TRACER=y | ||
954 | CONFIG_HAVE_FTRACE=y | ||
955 | # CONFIG_FTRACE is not set | ||
956 | # CONFIG_SCHED_TRACER is not set | ||
957 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
958 | # CONFIG_BOOT_TRACER is not set | ||
959 | # CONFIG_STACK_TRACER is not set | ||
960 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
912 | # CONFIG_SAMPLES is not set | 961 | # CONFIG_SAMPLES is not set |
913 | # CONFIG_SH_STANDARD_BIOS is not set | 962 | # CONFIG_SH_STANDARD_BIOS is not set |
914 | CONFIG_EARLY_SCIF_CONSOLE=y | 963 | CONFIG_EARLY_SCIF_CONSOLE=y |
@@ -924,6 +973,7 @@ CONFIG_DEBUG_STACK_USAGE=y | |||
924 | # | 973 | # |
925 | # CONFIG_KEYS is not set | 974 | # CONFIG_KEYS is not set |
926 | # CONFIG_SECURITY is not set | 975 | # CONFIG_SECURITY is not set |
976 | # CONFIG_SECURITYFS is not set | ||
927 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 977 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
928 | # CONFIG_CRYPTO is not set | 978 | # CONFIG_CRYPTO is not set |
929 | 979 | ||
@@ -931,7 +981,6 @@ CONFIG_DEBUG_STACK_USAGE=y | |||
931 | # Library routines | 981 | # Library routines |
932 | # | 982 | # |
933 | CONFIG_BITREVERSE=y | 983 | CONFIG_BITREVERSE=y |
934 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
935 | # CONFIG_CRC_CCITT is not set | 984 | # CONFIG_CRC_CCITT is not set |
936 | # CONFIG_CRC16 is not set | 985 | # CONFIG_CRC16 is not set |
937 | # CONFIG_CRC_T10DIF is not set | 986 | # CONFIG_CRC_T10DIF is not set |
diff --git a/arch/sh/configs/rts7751r2d1_defconfig b/arch/sh/configs/rts7751r2d1_defconfig index 8413236c1b37..7d2a9e88838b 100644 --- a/arch/sh/configs/rts7751r2d1_defconfig +++ b/arch/sh/configs/rts7751r2d1_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.26 | 3 | # Linux kernel version: 2.6.27 |
4 | # Wed Jul 30 01:55:52 2008 | 4 | # Wed Oct 22 18:44:36 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -11,17 +11,18 @@ CONFIG_GENERIC_BUG=y | |||
11 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
12 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
13 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
14 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
15 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
16 | CONFIG_GENERIC_TIME=y | 17 | CONFIG_GENERIC_TIME=y |
17 | CONFIG_GENERIC_CLOCKEVENTS=y | 18 | CONFIG_GENERIC_CLOCKEVENTS=y |
18 | CONFIG_SYS_SUPPORTS_PCI=y | 19 | CONFIG_SYS_SUPPORTS_PCI=y |
19 | CONFIG_STACKTRACE_SUPPORT=y | 20 | CONFIG_STACKTRACE_SUPPORT=y |
20 | CONFIG_LOCKDEP_SUPPORT=y | 21 | CONFIG_LOCKDEP_SUPPORT=y |
22 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
21 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 23 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
22 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 24 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
23 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 25 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
24 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
25 | CONFIG_IO_TRAPPED=y | 26 | CONFIG_IO_TRAPPED=y |
26 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 27 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
27 | 28 | ||
@@ -69,7 +70,9 @@ CONFIG_SIGNALFD=y | |||
69 | CONFIG_TIMERFD=y | 70 | CONFIG_TIMERFD=y |
70 | CONFIG_EVENTFD=y | 71 | CONFIG_EVENTFD=y |
71 | CONFIG_SHMEM=y | 72 | CONFIG_SHMEM=y |
73 | CONFIG_AIO=y | ||
72 | CONFIG_VM_EVENT_COUNTERS=y | 74 | CONFIG_VM_EVENT_COUNTERS=y |
75 | CONFIG_PCI_QUIRKS=y | ||
73 | CONFIG_SLAB=y | 76 | CONFIG_SLAB=y |
74 | # CONFIG_SLUB is not set | 77 | # CONFIG_SLUB is not set |
75 | # CONFIG_SLOB is not set | 78 | # CONFIG_SLOB is not set |
@@ -77,15 +80,13 @@ CONFIG_PROFILING=y | |||
77 | # CONFIG_MARKERS is not set | 80 | # CONFIG_MARKERS is not set |
78 | CONFIG_OPROFILE=y | 81 | CONFIG_OPROFILE=y |
79 | CONFIG_HAVE_OPROFILE=y | 82 | CONFIG_HAVE_OPROFILE=y |
80 | # CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set | 83 | # CONFIG_KPROBES is not set |
81 | # CONFIG_HAVE_IOREMAP_PROT is not set | 84 | CONFIG_HAVE_IOREMAP_PROT=y |
82 | # CONFIG_HAVE_KPROBES is not set | 85 | CONFIG_HAVE_KPROBES=y |
83 | # CONFIG_HAVE_KRETPROBES is not set | 86 | CONFIG_HAVE_KRETPROBES=y |
84 | # CONFIG_HAVE_ARCH_TRACEHOOK is not set | 87 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
85 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
86 | # CONFIG_USE_GENERIC_SMP_HELPERS is not set | ||
87 | CONFIG_HAVE_CLK=y | 88 | CONFIG_HAVE_CLK=y |
88 | CONFIG_PROC_PAGE_MONITOR=y | 89 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
89 | CONFIG_SLABINFO=y | 90 | CONFIG_SLABINFO=y |
90 | CONFIG_RT_MUTEXES=y | 91 | CONFIG_RT_MUTEXES=y |
91 | # CONFIG_TINY_SHMEM is not set | 92 | # CONFIG_TINY_SHMEM is not set |
@@ -116,6 +117,7 @@ CONFIG_DEFAULT_AS=y | |||
116 | # CONFIG_DEFAULT_NOOP is not set | 117 | # CONFIG_DEFAULT_NOOP is not set |
117 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 118 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
118 | CONFIG_CLASSIC_RCU=y | 119 | CONFIG_CLASSIC_RCU=y |
120 | # CONFIG_FREEZER is not set | ||
119 | 121 | ||
120 | # | 122 | # |
121 | # System type | 123 | # System type |
@@ -183,12 +185,13 @@ CONFIG_FLATMEM_MANUAL=y | |||
183 | CONFIG_FLATMEM=y | 185 | CONFIG_FLATMEM=y |
184 | CONFIG_FLAT_NODE_MEM_MAP=y | 186 | CONFIG_FLAT_NODE_MEM_MAP=y |
185 | CONFIG_SPARSEMEM_STATIC=y | 187 | CONFIG_SPARSEMEM_STATIC=y |
186 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
187 | CONFIG_PAGEFLAGS_EXTENDED=y | 188 | CONFIG_PAGEFLAGS_EXTENDED=y |
188 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 189 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
189 | # CONFIG_RESOURCES_64BIT is not set | 190 | # CONFIG_RESOURCES_64BIT is not set |
191 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
190 | CONFIG_ZONE_DMA_FLAG=0 | 192 | CONFIG_ZONE_DMA_FLAG=0 |
191 | CONFIG_NR_QUICK=2 | 193 | CONFIG_NR_QUICK=2 |
194 | CONFIG_UNEVICTABLE_LRU=y | ||
192 | 195 | ||
193 | # | 196 | # |
194 | # Cache configuration | 197 | # Cache configuration |
@@ -232,7 +235,6 @@ CONFIG_RTS7751R2D_1=y | |||
232 | CONFIG_SH_TMU=y | 235 | CONFIG_SH_TMU=y |
233 | CONFIG_SH_TIMER_IRQ=16 | 236 | CONFIG_SH_TIMER_IRQ=16 |
234 | CONFIG_SH_PCLK_FREQ=60000000 | 237 | CONFIG_SH_PCLK_FREQ=60000000 |
235 | # CONFIG_TICK_ONESHOT is not set | ||
236 | # CONFIG_NO_HZ is not set | 238 | # CONFIG_NO_HZ is not set |
237 | # CONFIG_HIGH_RES_TIMERS is not set | 239 | # CONFIG_HIGH_RES_TIMERS is not set |
238 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | 240 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y |
@@ -268,6 +270,7 @@ CONFIG_HZ=250 | |||
268 | # CONFIG_SCHED_HRTICK is not set | 270 | # CONFIG_SCHED_HRTICK is not set |
269 | # CONFIG_KEXEC is not set | 271 | # CONFIG_KEXEC is not set |
270 | # CONFIG_CRASH_DUMP is not set | 272 | # CONFIG_CRASH_DUMP is not set |
273 | # CONFIG_SECCOMP is not set | ||
271 | CONFIG_PREEMPT_NONE=y | 274 | CONFIG_PREEMPT_NONE=y |
272 | # CONFIG_PREEMPT_VOLUNTARY is not set | 275 | # CONFIG_PREEMPT_VOLUNTARY is not set |
273 | # CONFIG_PREEMPT is not set | 276 | # CONFIG_PREEMPT is not set |
@@ -302,11 +305,9 @@ CONFIG_HOTPLUG_PCI=y | |||
302 | # Executable file formats | 305 | # Executable file formats |
303 | # | 306 | # |
304 | CONFIG_BINFMT_ELF=y | 307 | CONFIG_BINFMT_ELF=y |
308 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
309 | # CONFIG_HAVE_AOUT is not set | ||
305 | # CONFIG_BINFMT_MISC is not set | 310 | # CONFIG_BINFMT_MISC is not set |
306 | |||
307 | # | ||
308 | # Networking | ||
309 | # | ||
310 | CONFIG_NET=y | 311 | CONFIG_NET=y |
311 | 312 | ||
312 | # | 313 | # |
@@ -353,6 +354,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
353 | # CONFIG_TIPC is not set | 354 | # CONFIG_TIPC is not set |
354 | # CONFIG_ATM is not set | 355 | # CONFIG_ATM is not set |
355 | # CONFIG_BRIDGE is not set | 356 | # CONFIG_BRIDGE is not set |
357 | # CONFIG_NET_DSA is not set | ||
356 | # CONFIG_VLAN_8021Q is not set | 358 | # CONFIG_VLAN_8021Q is not set |
357 | # CONFIG_DECNET is not set | 359 | # CONFIG_DECNET is not set |
358 | # CONFIG_LLC2 is not set | 360 | # CONFIG_LLC2 is not set |
@@ -373,11 +375,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
373 | # CONFIG_IRDA is not set | 375 | # CONFIG_IRDA is not set |
374 | # CONFIG_BT is not set | 376 | # CONFIG_BT is not set |
375 | # CONFIG_AF_RXRPC is not set | 377 | # CONFIG_AF_RXRPC is not set |
376 | 378 | # CONFIG_PHONET is not set | |
377 | # | 379 | CONFIG_WIRELESS=y |
378 | # Wireless | ||
379 | # | ||
380 | # CONFIG_CFG80211 is not set | 380 | # CONFIG_CFG80211 is not set |
381 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
381 | CONFIG_WIRELESS_EXT=y | 382 | CONFIG_WIRELESS_EXT=y |
382 | CONFIG_WIRELESS_EXT_SYSFS=y | 383 | CONFIG_WIRELESS_EXT_SYSFS=y |
383 | # CONFIG_MAC80211 is not set | 384 | # CONFIG_MAC80211 is not set |
@@ -598,6 +599,9 @@ CONFIG_MII=y | |||
598 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 599 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
599 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 600 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
600 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 601 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
602 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
603 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
604 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
601 | CONFIG_NET_PCI=y | 605 | CONFIG_NET_PCI=y |
602 | # CONFIG_PCNET32 is not set | 606 | # CONFIG_PCNET32 is not set |
603 | # CONFIG_AMD8111_ETH is not set | 607 | # CONFIG_AMD8111_ETH is not set |
@@ -622,6 +626,7 @@ CONFIG_8139TOO=y | |||
622 | # CONFIG_TLAN is not set | 626 | # CONFIG_TLAN is not set |
623 | # CONFIG_VIA_RHINE is not set | 627 | # CONFIG_VIA_RHINE is not set |
624 | # CONFIG_SC92031 is not set | 628 | # CONFIG_SC92031 is not set |
629 | # CONFIG_ATL2 is not set | ||
625 | CONFIG_NETDEV_1000=y | 630 | CONFIG_NETDEV_1000=y |
626 | # CONFIG_ACENIC is not set | 631 | # CONFIG_ACENIC is not set |
627 | # CONFIG_DL2K is not set | 632 | # CONFIG_DL2K is not set |
@@ -642,9 +647,11 @@ CONFIG_NETDEV_1000=y | |||
642 | # CONFIG_QLA3XXX is not set | 647 | # CONFIG_QLA3XXX is not set |
643 | # CONFIG_ATL1 is not set | 648 | # CONFIG_ATL1 is not set |
644 | # CONFIG_ATL1E is not set | 649 | # CONFIG_ATL1E is not set |
650 | # CONFIG_JME is not set | ||
645 | CONFIG_NETDEV_10000=y | 651 | CONFIG_NETDEV_10000=y |
646 | # CONFIG_CHELSIO_T1 is not set | 652 | # CONFIG_CHELSIO_T1 is not set |
647 | # CONFIG_CHELSIO_T3 is not set | 653 | # CONFIG_CHELSIO_T3 is not set |
654 | # CONFIG_ENIC is not set | ||
648 | # CONFIG_IXGBE is not set | 655 | # CONFIG_IXGBE is not set |
649 | # CONFIG_IXGB is not set | 656 | # CONFIG_IXGB is not set |
650 | # CONFIG_S2IO is not set | 657 | # CONFIG_S2IO is not set |
@@ -654,6 +661,7 @@ CONFIG_NETDEV_10000=y | |||
654 | # CONFIG_MLX4_CORE is not set | 661 | # CONFIG_MLX4_CORE is not set |
655 | # CONFIG_TEHUTI is not set | 662 | # CONFIG_TEHUTI is not set |
656 | # CONFIG_BNX2X is not set | 663 | # CONFIG_BNX2X is not set |
664 | # CONFIG_QLGE is not set | ||
657 | # CONFIG_SFC is not set | 665 | # CONFIG_SFC is not set |
658 | # CONFIG_TR is not set | 666 | # CONFIG_TR is not set |
659 | 667 | ||
@@ -688,7 +696,7 @@ CONFIG_NETDEV_10000=y | |||
688 | # Input device support | 696 | # Input device support |
689 | # | 697 | # |
690 | CONFIG_INPUT=y | 698 | CONFIG_INPUT=y |
691 | # CONFIG_INPUT_FF_MEMLESS is not set | 699 | CONFIG_INPUT_FF_MEMLESS=m |
692 | # CONFIG_INPUT_POLLDEV is not set | 700 | # CONFIG_INPUT_POLLDEV is not set |
693 | 701 | ||
694 | # | 702 | # |
@@ -776,11 +784,13 @@ CONFIG_SPI_SH_SCI=y | |||
776 | # CONFIG_POWER_SUPPLY is not set | 784 | # CONFIG_POWER_SUPPLY is not set |
777 | CONFIG_HWMON=y | 785 | CONFIG_HWMON=y |
778 | # CONFIG_HWMON_VID is not set | 786 | # CONFIG_HWMON_VID is not set |
787 | # CONFIG_SENSORS_ADCXX is not set | ||
779 | # CONFIG_SENSORS_I5K_AMB is not set | 788 | # CONFIG_SENSORS_I5K_AMB is not set |
780 | # CONFIG_SENSORS_F71805F is not set | 789 | # CONFIG_SENSORS_F71805F is not set |
781 | # CONFIG_SENSORS_F71882FG is not set | 790 | # CONFIG_SENSORS_F71882FG is not set |
782 | # CONFIG_SENSORS_IT87 is not set | 791 | # CONFIG_SENSORS_IT87 is not set |
783 | # CONFIG_SENSORS_LM70 is not set | 792 | # CONFIG_SENSORS_LM70 is not set |
793 | # CONFIG_SENSORS_MAX1111 is not set | ||
784 | # CONFIG_SENSORS_PC87360 is not set | 794 | # CONFIG_SENSORS_PC87360 is not set |
785 | # CONFIG_SENSORS_PC87427 is not set | 795 | # CONFIG_SENSORS_PC87427 is not set |
786 | # CONFIG_SENSORS_SIS5595 is not set | 796 | # CONFIG_SENSORS_SIS5595 is not set |
@@ -808,6 +818,8 @@ CONFIG_SSB_POSSIBLE=y | |||
808 | # CONFIG_MFD_CORE is not set | 818 | # CONFIG_MFD_CORE is not set |
809 | CONFIG_MFD_SM501=y | 819 | CONFIG_MFD_SM501=y |
810 | # CONFIG_HTC_PASIC3 is not set | 820 | # CONFIG_HTC_PASIC3 is not set |
821 | # CONFIG_MFD_TMIO is not set | ||
822 | # CONFIG_MFD_WM8400 is not set | ||
811 | 823 | ||
812 | # | 824 | # |
813 | # Multimedia devices | 825 | # Multimedia devices |
@@ -835,6 +847,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m | |||
835 | CONFIG_FB=y | 847 | CONFIG_FB=y |
836 | # CONFIG_FIRMWARE_EDID is not set | 848 | # CONFIG_FIRMWARE_EDID is not set |
837 | # CONFIG_FB_DDC is not set | 849 | # CONFIG_FB_DDC is not set |
850 | # CONFIG_FB_BOOT_VESA_SUPPORT is not set | ||
838 | CONFIG_FB_CFB_FILLRECT=y | 851 | CONFIG_FB_CFB_FILLRECT=y |
839 | CONFIG_FB_CFB_COPYAREA=y | 852 | CONFIG_FB_CFB_COPYAREA=y |
840 | CONFIG_FB_CFB_IMAGEBLIT=y | 853 | CONFIG_FB_CFB_IMAGEBLIT=y |
@@ -868,6 +881,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y | |||
868 | # CONFIG_FB_S3 is not set | 881 | # CONFIG_FB_S3 is not set |
869 | # CONFIG_FB_SAVAGE is not set | 882 | # CONFIG_FB_SAVAGE is not set |
870 | # CONFIG_FB_SIS is not set | 883 | # CONFIG_FB_SIS is not set |
884 | # CONFIG_FB_VIA is not set | ||
871 | # CONFIG_FB_NEOMAGIC is not set | 885 | # CONFIG_FB_NEOMAGIC is not set |
872 | # CONFIG_FB_KYRO is not set | 886 | # CONFIG_FB_KYRO is not set |
873 | # CONFIG_FB_3DFX is not set | 887 | # CONFIG_FB_3DFX is not set |
@@ -880,6 +894,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y | |||
880 | CONFIG_FB_SH_MOBILE_LCDC=m | 894 | CONFIG_FB_SH_MOBILE_LCDC=m |
881 | CONFIG_FB_SM501=y | 895 | CONFIG_FB_SM501=y |
882 | # CONFIG_FB_VIRTUAL is not set | 896 | # CONFIG_FB_VIRTUAL is not set |
897 | # CONFIG_FB_METRONOME is not set | ||
883 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 898 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
884 | 899 | ||
885 | # | 900 | # |
@@ -905,6 +920,7 @@ CONFIG_LOGO=y | |||
905 | # CONFIG_LOGO_SUPERH_VGA16 is not set | 920 | # CONFIG_LOGO_SUPERH_VGA16 is not set |
906 | CONFIG_LOGO_SUPERH_CLUT224=y | 921 | CONFIG_LOGO_SUPERH_CLUT224=y |
907 | CONFIG_SOUND=y | 922 | CONFIG_SOUND=y |
923 | CONFIG_SOUND_OSS_CORE=y | ||
908 | CONFIG_SND=m | 924 | CONFIG_SND=m |
909 | CONFIG_SND_TIMER=m | 925 | CONFIG_SND_TIMER=m |
910 | CONFIG_SND_PCM=m | 926 | CONFIG_SND_PCM=m |
@@ -1005,9 +1021,36 @@ CONFIG_HID=y | |||
1005 | # USB Input Devices | 1021 | # USB Input Devices |
1006 | # | 1022 | # |
1007 | CONFIG_USB_HID=y | 1023 | CONFIG_USB_HID=y |
1008 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | 1024 | # CONFIG_HID_PID is not set |
1009 | # CONFIG_HID_FF is not set | ||
1010 | # CONFIG_USB_HIDDEV is not set | 1025 | # CONFIG_USB_HIDDEV is not set |
1026 | |||
1027 | # | ||
1028 | # Special HID drivers | ||
1029 | # | ||
1030 | CONFIG_HID_COMPAT=y | ||
1031 | CONFIG_HID_A4TECH=y | ||
1032 | CONFIG_HID_APPLE=y | ||
1033 | CONFIG_HID_BELKIN=y | ||
1034 | CONFIG_HID_BRIGHT=y | ||
1035 | CONFIG_HID_CHERRY=y | ||
1036 | CONFIG_HID_CHICONY=y | ||
1037 | CONFIG_HID_CYPRESS=y | ||
1038 | CONFIG_HID_DELL=y | ||
1039 | CONFIG_HID_EZKEY=y | ||
1040 | CONFIG_HID_GYRATION=y | ||
1041 | CONFIG_HID_LOGITECH=y | ||
1042 | # CONFIG_LOGITECH_FF is not set | ||
1043 | # CONFIG_LOGIRUMBLEPAD2_FF is not set | ||
1044 | CONFIG_HID_MICROSOFT=y | ||
1045 | CONFIG_HID_MONTEREY=y | ||
1046 | CONFIG_HID_PANTHERLORD=y | ||
1047 | # CONFIG_PANTHERLORD_FF is not set | ||
1048 | CONFIG_HID_PETALYNX=y | ||
1049 | CONFIG_HID_SAMSUNG=y | ||
1050 | CONFIG_HID_SONY=y | ||
1051 | CONFIG_HID_SUNPLUS=y | ||
1052 | CONFIG_THRUSTMASTER_FF=m | ||
1053 | CONFIG_ZEROPLUS_FF=m | ||
1011 | CONFIG_USB_SUPPORT=y | 1054 | CONFIG_USB_SUPPORT=y |
1012 | CONFIG_USB_ARCH_HAS_HCD=y | 1055 | CONFIG_USB_ARCH_HAS_HCD=y |
1013 | CONFIG_USB_ARCH_HAS_OHCI=y | 1056 | CONFIG_USB_ARCH_HAS_OHCI=y |
@@ -1025,6 +1068,7 @@ CONFIG_USB_DEVICE_CLASS=y | |||
1025 | # CONFIG_USB_OTG is not set | 1068 | # CONFIG_USB_OTG is not set |
1026 | # CONFIG_USB_OTG_WHITELIST is not set | 1069 | # CONFIG_USB_OTG_WHITELIST is not set |
1027 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | 1070 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set |
1071 | # CONFIG_USB_MON is not set | ||
1028 | 1072 | ||
1029 | # | 1073 | # |
1030 | # USB Host Controller Drivers | 1074 | # USB Host Controller Drivers |
@@ -1047,6 +1091,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
1047 | # CONFIG_USB_ACM is not set | 1091 | # CONFIG_USB_ACM is not set |
1048 | # CONFIG_USB_PRINTER is not set | 1092 | # CONFIG_USB_PRINTER is not set |
1049 | # CONFIG_USB_WDM is not set | 1093 | # CONFIG_USB_WDM is not set |
1094 | # CONFIG_USB_TMC is not set | ||
1050 | 1095 | ||
1051 | # | 1096 | # |
1052 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 1097 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -1076,7 +1121,6 @@ CONFIG_USB_LIBUSUAL=y | |||
1076 | # | 1121 | # |
1077 | # CONFIG_USB_MDC800 is not set | 1122 | # CONFIG_USB_MDC800 is not set |
1078 | # CONFIG_USB_MICROTEK is not set | 1123 | # CONFIG_USB_MICROTEK is not set |
1079 | # CONFIG_USB_MON is not set | ||
1080 | 1124 | ||
1081 | # | 1125 | # |
1082 | # USB port drivers | 1126 | # USB port drivers |
@@ -1089,7 +1133,7 @@ CONFIG_USB_LIBUSUAL=y | |||
1089 | # CONFIG_USB_EMI62 is not set | 1133 | # CONFIG_USB_EMI62 is not set |
1090 | # CONFIG_USB_EMI26 is not set | 1134 | # CONFIG_USB_EMI26 is not set |
1091 | # CONFIG_USB_ADUTUX is not set | 1135 | # CONFIG_USB_ADUTUX is not set |
1092 | # CONFIG_USB_AUERSWALD is not set | 1136 | # CONFIG_USB_SEVSEG is not set |
1093 | # CONFIG_USB_RIO500 is not set | 1137 | # CONFIG_USB_RIO500 is not set |
1094 | # CONFIG_USB_LEGOTOWER is not set | 1138 | # CONFIG_USB_LEGOTOWER is not set |
1095 | # CONFIG_USB_LCD is not set | 1139 | # CONFIG_USB_LCD is not set |
@@ -1105,6 +1149,7 @@ CONFIG_USB_LIBUSUAL=y | |||
1105 | # CONFIG_USB_TRANCEVIBRATOR is not set | 1149 | # CONFIG_USB_TRANCEVIBRATOR is not set |
1106 | # CONFIG_USB_IOWARRIOR is not set | 1150 | # CONFIG_USB_IOWARRIOR is not set |
1107 | # CONFIG_USB_ISIGHTFW is not set | 1151 | # CONFIG_USB_ISIGHTFW is not set |
1152 | # CONFIG_USB_VST is not set | ||
1108 | # CONFIG_USB_GADGET is not set | 1153 | # CONFIG_USB_GADGET is not set |
1109 | # CONFIG_MMC is not set | 1154 | # CONFIG_MMC is not set |
1110 | # CONFIG_MEMSTICK is not set | 1155 | # CONFIG_MEMSTICK is not set |
@@ -1134,16 +1179,20 @@ CONFIG_RTC_INTF_DEV=y | |||
1134 | # CONFIG_RTC_DRV_MAX6902 is not set | 1179 | # CONFIG_RTC_DRV_MAX6902 is not set |
1135 | CONFIG_RTC_DRV_R9701=y | 1180 | CONFIG_RTC_DRV_R9701=y |
1136 | # CONFIG_RTC_DRV_RS5C348 is not set | 1181 | # CONFIG_RTC_DRV_RS5C348 is not set |
1182 | # CONFIG_RTC_DRV_DS3234 is not set | ||
1137 | 1183 | ||
1138 | # | 1184 | # |
1139 | # Platform RTC drivers | 1185 | # Platform RTC drivers |
1140 | # | 1186 | # |
1187 | # CONFIG_RTC_DRV_DS1286 is not set | ||
1141 | # CONFIG_RTC_DRV_DS1511 is not set | 1188 | # CONFIG_RTC_DRV_DS1511 is not set |
1142 | # CONFIG_RTC_DRV_DS1553 is not set | 1189 | # CONFIG_RTC_DRV_DS1553 is not set |
1143 | # CONFIG_RTC_DRV_DS1742 is not set | 1190 | # CONFIG_RTC_DRV_DS1742 is not set |
1144 | # CONFIG_RTC_DRV_STK17TA8 is not set | 1191 | # CONFIG_RTC_DRV_STK17TA8 is not set |
1145 | # CONFIG_RTC_DRV_M48T86 is not set | 1192 | # CONFIG_RTC_DRV_M48T86 is not set |
1193 | # CONFIG_RTC_DRV_M48T35 is not set | ||
1146 | # CONFIG_RTC_DRV_M48T59 is not set | 1194 | # CONFIG_RTC_DRV_M48T59 is not set |
1195 | # CONFIG_RTC_DRV_BQ4802 is not set | ||
1147 | # CONFIG_RTC_DRV_V3020 is not set | 1196 | # CONFIG_RTC_DRV_V3020 is not set |
1148 | 1197 | ||
1149 | # | 1198 | # |
@@ -1152,6 +1201,7 @@ CONFIG_RTC_DRV_R9701=y | |||
1152 | # CONFIG_RTC_DRV_SH is not set | 1201 | # CONFIG_RTC_DRV_SH is not set |
1153 | # CONFIG_DMADEVICES is not set | 1202 | # CONFIG_DMADEVICES is not set |
1154 | # CONFIG_UIO is not set | 1203 | # CONFIG_UIO is not set |
1204 | # CONFIG_STAGING is not set | ||
1155 | 1205 | ||
1156 | # | 1206 | # |
1157 | # File systems | 1207 | # File systems |
@@ -1160,10 +1210,11 @@ CONFIG_EXT2_FS=y | |||
1160 | # CONFIG_EXT2_FS_XATTR is not set | 1210 | # CONFIG_EXT2_FS_XATTR is not set |
1161 | # CONFIG_EXT2_FS_XIP is not set | 1211 | # CONFIG_EXT2_FS_XIP is not set |
1162 | # CONFIG_EXT3_FS is not set | 1212 | # CONFIG_EXT3_FS is not set |
1163 | # CONFIG_EXT4DEV_FS is not set | 1213 | # CONFIG_EXT4_FS is not set |
1164 | # CONFIG_REISERFS_FS is not set | 1214 | # CONFIG_REISERFS_FS is not set |
1165 | # CONFIG_JFS_FS is not set | 1215 | # CONFIG_JFS_FS is not set |
1166 | # CONFIG_FS_POSIX_ACL is not set | 1216 | # CONFIG_FS_POSIX_ACL is not set |
1217 | CONFIG_FILE_LOCKING=y | ||
1167 | # CONFIG_XFS_FS is not set | 1218 | # CONFIG_XFS_FS is not set |
1168 | # CONFIG_OCFS2_FS is not set | 1219 | # CONFIG_OCFS2_FS is not set |
1169 | CONFIG_DNOTIFY=y | 1220 | CONFIG_DNOTIFY=y |
@@ -1196,6 +1247,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
1196 | CONFIG_PROC_FS=y | 1247 | CONFIG_PROC_FS=y |
1197 | CONFIG_PROC_KCORE=y | 1248 | CONFIG_PROC_KCORE=y |
1198 | CONFIG_PROC_SYSCTL=y | 1249 | CONFIG_PROC_SYSCTL=y |
1250 | CONFIG_PROC_PAGE_MONITOR=y | ||
1199 | CONFIG_SYSFS=y | 1251 | CONFIG_SYSFS=y |
1200 | CONFIG_TMPFS=y | 1252 | CONFIG_TMPFS=y |
1201 | # CONFIG_TMPFS_POSIX_ACL is not set | 1253 | # CONFIG_TMPFS_POSIX_ACL is not set |
@@ -1293,6 +1345,11 @@ CONFIG_DEBUG_FS=y | |||
1293 | # CONFIG_DEBUG_KERNEL is not set | 1345 | # CONFIG_DEBUG_KERNEL is not set |
1294 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1346 | # CONFIG_DEBUG_BUGVERBOSE is not set |
1295 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1347 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1348 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
1349 | # CONFIG_LATENCYTOP is not set | ||
1350 | CONFIG_NOP_TRACER=y | ||
1351 | CONFIG_HAVE_FTRACE=y | ||
1352 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
1296 | # CONFIG_SAMPLES is not set | 1353 | # CONFIG_SAMPLES is not set |
1297 | # CONFIG_SH_STANDARD_BIOS is not set | 1354 | # CONFIG_SH_STANDARD_BIOS is not set |
1298 | CONFIG_EARLY_SCIF_CONSOLE=y | 1355 | CONFIG_EARLY_SCIF_CONSOLE=y |
@@ -1305,12 +1362,14 @@ CONFIG_EARLY_PRINTK=y | |||
1305 | # | 1362 | # |
1306 | # CONFIG_KEYS is not set | 1363 | # CONFIG_KEYS is not set |
1307 | # CONFIG_SECURITY is not set | 1364 | # CONFIG_SECURITY is not set |
1365 | # CONFIG_SECURITYFS is not set | ||
1308 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1366 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
1309 | CONFIG_CRYPTO=y | 1367 | CONFIG_CRYPTO=y |
1310 | 1368 | ||
1311 | # | 1369 | # |
1312 | # Crypto core or helper | 1370 | # Crypto core or helper |
1313 | # | 1371 | # |
1372 | # CONFIG_CRYPTO_FIPS is not set | ||
1314 | # CONFIG_CRYPTO_MANAGER is not set | 1373 | # CONFIG_CRYPTO_MANAGER is not set |
1315 | # CONFIG_CRYPTO_GF128MUL is not set | 1374 | # CONFIG_CRYPTO_GF128MUL is not set |
1316 | # CONFIG_CRYPTO_NULL is not set | 1375 | # CONFIG_CRYPTO_NULL is not set |
@@ -1383,6 +1442,11 @@ CONFIG_CRYPTO=y | |||
1383 | # | 1442 | # |
1384 | # CONFIG_CRYPTO_DEFLATE is not set | 1443 | # CONFIG_CRYPTO_DEFLATE is not set |
1385 | # CONFIG_CRYPTO_LZO is not set | 1444 | # CONFIG_CRYPTO_LZO is not set |
1445 | |||
1446 | # | ||
1447 | # Random Number Generation | ||
1448 | # | ||
1449 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
1386 | CONFIG_CRYPTO_HW=y | 1450 | CONFIG_CRYPTO_HW=y |
1387 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 1451 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
1388 | 1452 | ||
@@ -1390,7 +1454,6 @@ CONFIG_CRYPTO_HW=y | |||
1390 | # Library routines | 1454 | # Library routines |
1391 | # | 1455 | # |
1392 | CONFIG_BITREVERSE=y | 1456 | CONFIG_BITREVERSE=y |
1393 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
1394 | # CONFIG_CRC_CCITT is not set | 1457 | # CONFIG_CRC_CCITT is not set |
1395 | # CONFIG_CRC16 is not set | 1458 | # CONFIG_CRC16 is not set |
1396 | CONFIG_CRC_T10DIF=y | 1459 | CONFIG_CRC_T10DIF=y |
diff --git a/arch/sh/configs/rts7751r2dplus_defconfig b/arch/sh/configs/rts7751r2dplus_defconfig index 7d9fa6e9ded5..f680d3eecdfb 100644 --- a/arch/sh/configs/rts7751r2dplus_defconfig +++ b/arch/sh/configs/rts7751r2dplus_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.26 | 3 | # Linux kernel version: 2.6.27 |
4 | # Wed Jul 30 01:59:18 2008 | 4 | # Wed Oct 22 18:47:39 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -11,17 +11,18 @@ CONFIG_GENERIC_BUG=y | |||
11 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
12 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
13 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
14 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
15 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
16 | CONFIG_GENERIC_TIME=y | 17 | CONFIG_GENERIC_TIME=y |
17 | CONFIG_GENERIC_CLOCKEVENTS=y | 18 | CONFIG_GENERIC_CLOCKEVENTS=y |
18 | CONFIG_SYS_SUPPORTS_PCI=y | 19 | CONFIG_SYS_SUPPORTS_PCI=y |
19 | CONFIG_STACKTRACE_SUPPORT=y | 20 | CONFIG_STACKTRACE_SUPPORT=y |
20 | CONFIG_LOCKDEP_SUPPORT=y | 21 | CONFIG_LOCKDEP_SUPPORT=y |
22 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
21 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 23 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
22 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 24 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
23 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 25 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
24 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
25 | CONFIG_IO_TRAPPED=y | 26 | CONFIG_IO_TRAPPED=y |
26 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 27 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
27 | 28 | ||
@@ -69,7 +70,9 @@ CONFIG_SIGNALFD=y | |||
69 | CONFIG_TIMERFD=y | 70 | CONFIG_TIMERFD=y |
70 | CONFIG_EVENTFD=y | 71 | CONFIG_EVENTFD=y |
71 | CONFIG_SHMEM=y | 72 | CONFIG_SHMEM=y |
73 | CONFIG_AIO=y | ||
72 | CONFIG_VM_EVENT_COUNTERS=y | 74 | CONFIG_VM_EVENT_COUNTERS=y |
75 | CONFIG_PCI_QUIRKS=y | ||
73 | CONFIG_SLAB=y | 76 | CONFIG_SLAB=y |
74 | # CONFIG_SLUB is not set | 77 | # CONFIG_SLUB is not set |
75 | # CONFIG_SLOB is not set | 78 | # CONFIG_SLOB is not set |
@@ -77,15 +80,13 @@ CONFIG_PROFILING=y | |||
77 | # CONFIG_MARKERS is not set | 80 | # CONFIG_MARKERS is not set |
78 | CONFIG_OPROFILE=y | 81 | CONFIG_OPROFILE=y |
79 | CONFIG_HAVE_OPROFILE=y | 82 | CONFIG_HAVE_OPROFILE=y |
80 | # CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set | 83 | # CONFIG_KPROBES is not set |
81 | # CONFIG_HAVE_IOREMAP_PROT is not set | 84 | CONFIG_HAVE_IOREMAP_PROT=y |
82 | # CONFIG_HAVE_KPROBES is not set | 85 | CONFIG_HAVE_KPROBES=y |
83 | # CONFIG_HAVE_KRETPROBES is not set | 86 | CONFIG_HAVE_KRETPROBES=y |
84 | # CONFIG_HAVE_ARCH_TRACEHOOK is not set | 87 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
85 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
86 | # CONFIG_USE_GENERIC_SMP_HELPERS is not set | ||
87 | CONFIG_HAVE_CLK=y | 88 | CONFIG_HAVE_CLK=y |
88 | CONFIG_PROC_PAGE_MONITOR=y | 89 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
89 | CONFIG_SLABINFO=y | 90 | CONFIG_SLABINFO=y |
90 | CONFIG_RT_MUTEXES=y | 91 | CONFIG_RT_MUTEXES=y |
91 | # CONFIG_TINY_SHMEM is not set | 92 | # CONFIG_TINY_SHMEM is not set |
@@ -116,6 +117,7 @@ CONFIG_DEFAULT_AS=y | |||
116 | # CONFIG_DEFAULT_NOOP is not set | 117 | # CONFIG_DEFAULT_NOOP is not set |
117 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 118 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
118 | CONFIG_CLASSIC_RCU=y | 119 | CONFIG_CLASSIC_RCU=y |
120 | # CONFIG_FREEZER is not set | ||
119 | 121 | ||
120 | # | 122 | # |
121 | # System type | 123 | # System type |
@@ -183,12 +185,13 @@ CONFIG_FLATMEM_MANUAL=y | |||
183 | CONFIG_FLATMEM=y | 185 | CONFIG_FLATMEM=y |
184 | CONFIG_FLAT_NODE_MEM_MAP=y | 186 | CONFIG_FLAT_NODE_MEM_MAP=y |
185 | CONFIG_SPARSEMEM_STATIC=y | 187 | CONFIG_SPARSEMEM_STATIC=y |
186 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
187 | CONFIG_PAGEFLAGS_EXTENDED=y | 188 | CONFIG_PAGEFLAGS_EXTENDED=y |
188 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 189 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
189 | # CONFIG_RESOURCES_64BIT is not set | 190 | # CONFIG_RESOURCES_64BIT is not set |
191 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
190 | CONFIG_ZONE_DMA_FLAG=0 | 192 | CONFIG_ZONE_DMA_FLAG=0 |
191 | CONFIG_NR_QUICK=2 | 193 | CONFIG_NR_QUICK=2 |
194 | CONFIG_UNEVICTABLE_LRU=y | ||
192 | 195 | ||
193 | # | 196 | # |
194 | # Cache configuration | 197 | # Cache configuration |
@@ -232,7 +235,6 @@ CONFIG_RTS7751R2D_PLUS=y | |||
232 | CONFIG_SH_TMU=y | 235 | CONFIG_SH_TMU=y |
233 | CONFIG_SH_TIMER_IRQ=16 | 236 | CONFIG_SH_TIMER_IRQ=16 |
234 | CONFIG_SH_PCLK_FREQ=60000000 | 237 | CONFIG_SH_PCLK_FREQ=60000000 |
235 | # CONFIG_TICK_ONESHOT is not set | ||
236 | # CONFIG_NO_HZ is not set | 238 | # CONFIG_NO_HZ is not set |
237 | # CONFIG_HIGH_RES_TIMERS is not set | 239 | # CONFIG_HIGH_RES_TIMERS is not set |
238 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | 240 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y |
@@ -268,6 +270,7 @@ CONFIG_HZ=250 | |||
268 | # CONFIG_SCHED_HRTICK is not set | 270 | # CONFIG_SCHED_HRTICK is not set |
269 | # CONFIG_KEXEC is not set | 271 | # CONFIG_KEXEC is not set |
270 | # CONFIG_CRASH_DUMP is not set | 272 | # CONFIG_CRASH_DUMP is not set |
273 | # CONFIG_SECCOMP is not set | ||
271 | CONFIG_PREEMPT_NONE=y | 274 | CONFIG_PREEMPT_NONE=y |
272 | # CONFIG_PREEMPT_VOLUNTARY is not set | 275 | # CONFIG_PREEMPT_VOLUNTARY is not set |
273 | # CONFIG_PREEMPT is not set | 276 | # CONFIG_PREEMPT is not set |
@@ -302,11 +305,9 @@ CONFIG_HOTPLUG_PCI=y | |||
302 | # Executable file formats | 305 | # Executable file formats |
303 | # | 306 | # |
304 | CONFIG_BINFMT_ELF=y | 307 | CONFIG_BINFMT_ELF=y |
308 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
309 | # CONFIG_HAVE_AOUT is not set | ||
305 | # CONFIG_BINFMT_MISC is not set | 310 | # CONFIG_BINFMT_MISC is not set |
306 | |||
307 | # | ||
308 | # Networking | ||
309 | # | ||
310 | CONFIG_NET=y | 311 | CONFIG_NET=y |
311 | 312 | ||
312 | # | 313 | # |
@@ -353,6 +354,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
353 | # CONFIG_TIPC is not set | 354 | # CONFIG_TIPC is not set |
354 | # CONFIG_ATM is not set | 355 | # CONFIG_ATM is not set |
355 | # CONFIG_BRIDGE is not set | 356 | # CONFIG_BRIDGE is not set |
357 | # CONFIG_NET_DSA is not set | ||
356 | # CONFIG_VLAN_8021Q is not set | 358 | # CONFIG_VLAN_8021Q is not set |
357 | # CONFIG_DECNET is not set | 359 | # CONFIG_DECNET is not set |
358 | # CONFIG_LLC2 is not set | 360 | # CONFIG_LLC2 is not set |
@@ -373,11 +375,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
373 | # CONFIG_IRDA is not set | 375 | # CONFIG_IRDA is not set |
374 | # CONFIG_BT is not set | 376 | # CONFIG_BT is not set |
375 | # CONFIG_AF_RXRPC is not set | 377 | # CONFIG_AF_RXRPC is not set |
376 | 378 | # CONFIG_PHONET is not set | |
377 | # | 379 | CONFIG_WIRELESS=y |
378 | # Wireless | ||
379 | # | ||
380 | # CONFIG_CFG80211 is not set | 380 | # CONFIG_CFG80211 is not set |
381 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
381 | CONFIG_WIRELESS_EXT=y | 382 | CONFIG_WIRELESS_EXT=y |
382 | CONFIG_WIRELESS_EXT_SYSFS=y | 383 | CONFIG_WIRELESS_EXT_SYSFS=y |
383 | # CONFIG_MAC80211 is not set | 384 | # CONFIG_MAC80211 is not set |
@@ -598,6 +599,9 @@ CONFIG_MII=y | |||
598 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 599 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
599 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 600 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
600 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 601 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
602 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
603 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
604 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
601 | CONFIG_NET_PCI=y | 605 | CONFIG_NET_PCI=y |
602 | # CONFIG_PCNET32 is not set | 606 | # CONFIG_PCNET32 is not set |
603 | # CONFIG_AMD8111_ETH is not set | 607 | # CONFIG_AMD8111_ETH is not set |
@@ -622,6 +626,7 @@ CONFIG_8139TOO=y | |||
622 | # CONFIG_TLAN is not set | 626 | # CONFIG_TLAN is not set |
623 | # CONFIG_VIA_RHINE is not set | 627 | # CONFIG_VIA_RHINE is not set |
624 | # CONFIG_SC92031 is not set | 628 | # CONFIG_SC92031 is not set |
629 | # CONFIG_ATL2 is not set | ||
625 | CONFIG_NETDEV_1000=y | 630 | CONFIG_NETDEV_1000=y |
626 | # CONFIG_ACENIC is not set | 631 | # CONFIG_ACENIC is not set |
627 | # CONFIG_DL2K is not set | 632 | # CONFIG_DL2K is not set |
@@ -642,9 +647,11 @@ CONFIG_NETDEV_1000=y | |||
642 | # CONFIG_QLA3XXX is not set | 647 | # CONFIG_QLA3XXX is not set |
643 | # CONFIG_ATL1 is not set | 648 | # CONFIG_ATL1 is not set |
644 | # CONFIG_ATL1E is not set | 649 | # CONFIG_ATL1E is not set |
650 | # CONFIG_JME is not set | ||
645 | CONFIG_NETDEV_10000=y | 651 | CONFIG_NETDEV_10000=y |
646 | # CONFIG_CHELSIO_T1 is not set | 652 | # CONFIG_CHELSIO_T1 is not set |
647 | # CONFIG_CHELSIO_T3 is not set | 653 | # CONFIG_CHELSIO_T3 is not set |
654 | # CONFIG_ENIC is not set | ||
648 | # CONFIG_IXGBE is not set | 655 | # CONFIG_IXGBE is not set |
649 | # CONFIG_IXGB is not set | 656 | # CONFIG_IXGB is not set |
650 | # CONFIG_S2IO is not set | 657 | # CONFIG_S2IO is not set |
@@ -654,6 +661,7 @@ CONFIG_NETDEV_10000=y | |||
654 | # CONFIG_MLX4_CORE is not set | 661 | # CONFIG_MLX4_CORE is not set |
655 | # CONFIG_TEHUTI is not set | 662 | # CONFIG_TEHUTI is not set |
656 | # CONFIG_BNX2X is not set | 663 | # CONFIG_BNX2X is not set |
664 | # CONFIG_QLGE is not set | ||
657 | # CONFIG_SFC is not set | 665 | # CONFIG_SFC is not set |
658 | # CONFIG_TR is not set | 666 | # CONFIG_TR is not set |
659 | 667 | ||
@@ -688,7 +696,7 @@ CONFIG_NETDEV_10000=y | |||
688 | # Input device support | 696 | # Input device support |
689 | # | 697 | # |
690 | CONFIG_INPUT=y | 698 | CONFIG_INPUT=y |
691 | # CONFIG_INPUT_FF_MEMLESS is not set | 699 | CONFIG_INPUT_FF_MEMLESS=m |
692 | # CONFIG_INPUT_POLLDEV is not set | 700 | # CONFIG_INPUT_POLLDEV is not set |
693 | 701 | ||
694 | # | 702 | # |
@@ -776,11 +784,13 @@ CONFIG_SPI_SH_SCI=y | |||
776 | # CONFIG_POWER_SUPPLY is not set | 784 | # CONFIG_POWER_SUPPLY is not set |
777 | CONFIG_HWMON=y | 785 | CONFIG_HWMON=y |
778 | # CONFIG_HWMON_VID is not set | 786 | # CONFIG_HWMON_VID is not set |
787 | # CONFIG_SENSORS_ADCXX is not set | ||
779 | # CONFIG_SENSORS_I5K_AMB is not set | 788 | # CONFIG_SENSORS_I5K_AMB is not set |
780 | # CONFIG_SENSORS_F71805F is not set | 789 | # CONFIG_SENSORS_F71805F is not set |
781 | # CONFIG_SENSORS_F71882FG is not set | 790 | # CONFIG_SENSORS_F71882FG is not set |
782 | # CONFIG_SENSORS_IT87 is not set | 791 | # CONFIG_SENSORS_IT87 is not set |
783 | # CONFIG_SENSORS_LM70 is not set | 792 | # CONFIG_SENSORS_LM70 is not set |
793 | # CONFIG_SENSORS_MAX1111 is not set | ||
784 | # CONFIG_SENSORS_PC87360 is not set | 794 | # CONFIG_SENSORS_PC87360 is not set |
785 | # CONFIG_SENSORS_PC87427 is not set | 795 | # CONFIG_SENSORS_PC87427 is not set |
786 | # CONFIG_SENSORS_SIS5595 is not set | 796 | # CONFIG_SENSORS_SIS5595 is not set |
@@ -808,6 +818,8 @@ CONFIG_SSB_POSSIBLE=y | |||
808 | # CONFIG_MFD_CORE is not set | 818 | # CONFIG_MFD_CORE is not set |
809 | CONFIG_MFD_SM501=y | 819 | CONFIG_MFD_SM501=y |
810 | # CONFIG_HTC_PASIC3 is not set | 820 | # CONFIG_HTC_PASIC3 is not set |
821 | # CONFIG_MFD_TMIO is not set | ||
822 | # CONFIG_MFD_WM8400 is not set | ||
811 | 823 | ||
812 | # | 824 | # |
813 | # Multimedia devices | 825 | # Multimedia devices |
@@ -835,6 +847,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m | |||
835 | CONFIG_FB=y | 847 | CONFIG_FB=y |
836 | # CONFIG_FIRMWARE_EDID is not set | 848 | # CONFIG_FIRMWARE_EDID is not set |
837 | # CONFIG_FB_DDC is not set | 849 | # CONFIG_FB_DDC is not set |
850 | # CONFIG_FB_BOOT_VESA_SUPPORT is not set | ||
838 | CONFIG_FB_CFB_FILLRECT=y | 851 | CONFIG_FB_CFB_FILLRECT=y |
839 | CONFIG_FB_CFB_COPYAREA=y | 852 | CONFIG_FB_CFB_COPYAREA=y |
840 | CONFIG_FB_CFB_IMAGEBLIT=y | 853 | CONFIG_FB_CFB_IMAGEBLIT=y |
@@ -868,6 +881,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y | |||
868 | # CONFIG_FB_S3 is not set | 881 | # CONFIG_FB_S3 is not set |
869 | # CONFIG_FB_SAVAGE is not set | 882 | # CONFIG_FB_SAVAGE is not set |
870 | # CONFIG_FB_SIS is not set | 883 | # CONFIG_FB_SIS is not set |
884 | # CONFIG_FB_VIA is not set | ||
871 | # CONFIG_FB_NEOMAGIC is not set | 885 | # CONFIG_FB_NEOMAGIC is not set |
872 | # CONFIG_FB_KYRO is not set | 886 | # CONFIG_FB_KYRO is not set |
873 | # CONFIG_FB_3DFX is not set | 887 | # CONFIG_FB_3DFX is not set |
@@ -880,6 +894,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y | |||
880 | CONFIG_FB_SH_MOBILE_LCDC=m | 894 | CONFIG_FB_SH_MOBILE_LCDC=m |
881 | CONFIG_FB_SM501=y | 895 | CONFIG_FB_SM501=y |
882 | # CONFIG_FB_VIRTUAL is not set | 896 | # CONFIG_FB_VIRTUAL is not set |
897 | # CONFIG_FB_METRONOME is not set | ||
883 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 898 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
884 | 899 | ||
885 | # | 900 | # |
@@ -905,6 +920,7 @@ CONFIG_LOGO=y | |||
905 | # CONFIG_LOGO_SUPERH_VGA16 is not set | 920 | # CONFIG_LOGO_SUPERH_VGA16 is not set |
906 | CONFIG_LOGO_SUPERH_CLUT224=y | 921 | CONFIG_LOGO_SUPERH_CLUT224=y |
907 | CONFIG_SOUND=y | 922 | CONFIG_SOUND=y |
923 | CONFIG_SOUND_OSS_CORE=y | ||
908 | CONFIG_SND=m | 924 | CONFIG_SND=m |
909 | CONFIG_SND_TIMER=m | 925 | CONFIG_SND_TIMER=m |
910 | CONFIG_SND_PCM=m | 926 | CONFIG_SND_PCM=m |
@@ -1005,9 +1021,36 @@ CONFIG_HID=y | |||
1005 | # USB Input Devices | 1021 | # USB Input Devices |
1006 | # | 1022 | # |
1007 | CONFIG_USB_HID=y | 1023 | CONFIG_USB_HID=y |
1008 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | 1024 | # CONFIG_HID_PID is not set |
1009 | # CONFIG_HID_FF is not set | ||
1010 | # CONFIG_USB_HIDDEV is not set | 1025 | # CONFIG_USB_HIDDEV is not set |
1026 | |||
1027 | # | ||
1028 | # Special HID drivers | ||
1029 | # | ||
1030 | CONFIG_HID_COMPAT=y | ||
1031 | CONFIG_HID_A4TECH=y | ||
1032 | CONFIG_HID_APPLE=y | ||
1033 | CONFIG_HID_BELKIN=y | ||
1034 | CONFIG_HID_BRIGHT=y | ||
1035 | CONFIG_HID_CHERRY=y | ||
1036 | CONFIG_HID_CHICONY=y | ||
1037 | CONFIG_HID_CYPRESS=y | ||
1038 | CONFIG_HID_DELL=y | ||
1039 | CONFIG_HID_EZKEY=y | ||
1040 | CONFIG_HID_GYRATION=y | ||
1041 | CONFIG_HID_LOGITECH=y | ||
1042 | # CONFIG_LOGITECH_FF is not set | ||
1043 | # CONFIG_LOGIRUMBLEPAD2_FF is not set | ||
1044 | CONFIG_HID_MICROSOFT=y | ||
1045 | CONFIG_HID_MONTEREY=y | ||
1046 | CONFIG_HID_PANTHERLORD=y | ||
1047 | # CONFIG_PANTHERLORD_FF is not set | ||
1048 | CONFIG_HID_PETALYNX=y | ||
1049 | CONFIG_HID_SAMSUNG=y | ||
1050 | CONFIG_HID_SONY=y | ||
1051 | CONFIG_HID_SUNPLUS=y | ||
1052 | CONFIG_THRUSTMASTER_FF=m | ||
1053 | CONFIG_ZEROPLUS_FF=m | ||
1011 | CONFIG_USB_SUPPORT=y | 1054 | CONFIG_USB_SUPPORT=y |
1012 | CONFIG_USB_ARCH_HAS_HCD=y | 1055 | CONFIG_USB_ARCH_HAS_HCD=y |
1013 | CONFIG_USB_ARCH_HAS_OHCI=y | 1056 | CONFIG_USB_ARCH_HAS_OHCI=y |
@@ -1025,6 +1068,7 @@ CONFIG_USB_DEVICE_CLASS=y | |||
1025 | # CONFIG_USB_OTG is not set | 1068 | # CONFIG_USB_OTG is not set |
1026 | # CONFIG_USB_OTG_WHITELIST is not set | 1069 | # CONFIG_USB_OTG_WHITELIST is not set |
1027 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | 1070 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set |
1071 | # CONFIG_USB_MON is not set | ||
1028 | 1072 | ||
1029 | # | 1073 | # |
1030 | # USB Host Controller Drivers | 1074 | # USB Host Controller Drivers |
@@ -1047,6 +1091,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
1047 | # CONFIG_USB_ACM is not set | 1091 | # CONFIG_USB_ACM is not set |
1048 | # CONFIG_USB_PRINTER is not set | 1092 | # CONFIG_USB_PRINTER is not set |
1049 | # CONFIG_USB_WDM is not set | 1093 | # CONFIG_USB_WDM is not set |
1094 | # CONFIG_USB_TMC is not set | ||
1050 | 1095 | ||
1051 | # | 1096 | # |
1052 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 1097 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -1076,7 +1121,6 @@ CONFIG_USB_LIBUSUAL=y | |||
1076 | # | 1121 | # |
1077 | # CONFIG_USB_MDC800 is not set | 1122 | # CONFIG_USB_MDC800 is not set |
1078 | # CONFIG_USB_MICROTEK is not set | 1123 | # CONFIG_USB_MICROTEK is not set |
1079 | # CONFIG_USB_MON is not set | ||
1080 | 1124 | ||
1081 | # | 1125 | # |
1082 | # USB port drivers | 1126 | # USB port drivers |
@@ -1089,7 +1133,7 @@ CONFIG_USB_LIBUSUAL=y | |||
1089 | # CONFIG_USB_EMI62 is not set | 1133 | # CONFIG_USB_EMI62 is not set |
1090 | # CONFIG_USB_EMI26 is not set | 1134 | # CONFIG_USB_EMI26 is not set |
1091 | # CONFIG_USB_ADUTUX is not set | 1135 | # CONFIG_USB_ADUTUX is not set |
1092 | # CONFIG_USB_AUERSWALD is not set | 1136 | # CONFIG_USB_SEVSEG is not set |
1093 | # CONFIG_USB_RIO500 is not set | 1137 | # CONFIG_USB_RIO500 is not set |
1094 | # CONFIG_USB_LEGOTOWER is not set | 1138 | # CONFIG_USB_LEGOTOWER is not set |
1095 | # CONFIG_USB_LCD is not set | 1139 | # CONFIG_USB_LCD is not set |
@@ -1105,6 +1149,7 @@ CONFIG_USB_LIBUSUAL=y | |||
1105 | # CONFIG_USB_TRANCEVIBRATOR is not set | 1149 | # CONFIG_USB_TRANCEVIBRATOR is not set |
1106 | # CONFIG_USB_IOWARRIOR is not set | 1150 | # CONFIG_USB_IOWARRIOR is not set |
1107 | # CONFIG_USB_ISIGHTFW is not set | 1151 | # CONFIG_USB_ISIGHTFW is not set |
1152 | # CONFIG_USB_VST is not set | ||
1108 | # CONFIG_USB_GADGET is not set | 1153 | # CONFIG_USB_GADGET is not set |
1109 | # CONFIG_MMC is not set | 1154 | # CONFIG_MMC is not set |
1110 | # CONFIG_MEMSTICK is not set | 1155 | # CONFIG_MEMSTICK is not set |
@@ -1134,16 +1179,20 @@ CONFIG_RTC_INTF_DEV=y | |||
1134 | # CONFIG_RTC_DRV_MAX6902 is not set | 1179 | # CONFIG_RTC_DRV_MAX6902 is not set |
1135 | CONFIG_RTC_DRV_R9701=y | 1180 | CONFIG_RTC_DRV_R9701=y |
1136 | # CONFIG_RTC_DRV_RS5C348 is not set | 1181 | # CONFIG_RTC_DRV_RS5C348 is not set |
1182 | # CONFIG_RTC_DRV_DS3234 is not set | ||
1137 | 1183 | ||
1138 | # | 1184 | # |
1139 | # Platform RTC drivers | 1185 | # Platform RTC drivers |
1140 | # | 1186 | # |
1187 | # CONFIG_RTC_DRV_DS1286 is not set | ||
1141 | # CONFIG_RTC_DRV_DS1511 is not set | 1188 | # CONFIG_RTC_DRV_DS1511 is not set |
1142 | # CONFIG_RTC_DRV_DS1553 is not set | 1189 | # CONFIG_RTC_DRV_DS1553 is not set |
1143 | # CONFIG_RTC_DRV_DS1742 is not set | 1190 | # CONFIG_RTC_DRV_DS1742 is not set |
1144 | # CONFIG_RTC_DRV_STK17TA8 is not set | 1191 | # CONFIG_RTC_DRV_STK17TA8 is not set |
1145 | # CONFIG_RTC_DRV_M48T86 is not set | 1192 | # CONFIG_RTC_DRV_M48T86 is not set |
1193 | # CONFIG_RTC_DRV_M48T35 is not set | ||
1146 | # CONFIG_RTC_DRV_M48T59 is not set | 1194 | # CONFIG_RTC_DRV_M48T59 is not set |
1195 | # CONFIG_RTC_DRV_BQ4802 is not set | ||
1147 | # CONFIG_RTC_DRV_V3020 is not set | 1196 | # CONFIG_RTC_DRV_V3020 is not set |
1148 | 1197 | ||
1149 | # | 1198 | # |
@@ -1152,6 +1201,7 @@ CONFIG_RTC_DRV_R9701=y | |||
1152 | # CONFIG_RTC_DRV_SH is not set | 1201 | # CONFIG_RTC_DRV_SH is not set |
1153 | # CONFIG_DMADEVICES is not set | 1202 | # CONFIG_DMADEVICES is not set |
1154 | # CONFIG_UIO is not set | 1203 | # CONFIG_UIO is not set |
1204 | # CONFIG_STAGING is not set | ||
1155 | 1205 | ||
1156 | # | 1206 | # |
1157 | # File systems | 1207 | # File systems |
@@ -1160,10 +1210,11 @@ CONFIG_EXT2_FS=y | |||
1160 | # CONFIG_EXT2_FS_XATTR is not set | 1210 | # CONFIG_EXT2_FS_XATTR is not set |
1161 | # CONFIG_EXT2_FS_XIP is not set | 1211 | # CONFIG_EXT2_FS_XIP is not set |
1162 | # CONFIG_EXT3_FS is not set | 1212 | # CONFIG_EXT3_FS is not set |
1163 | # CONFIG_EXT4DEV_FS is not set | 1213 | # CONFIG_EXT4_FS is not set |
1164 | # CONFIG_REISERFS_FS is not set | 1214 | # CONFIG_REISERFS_FS is not set |
1165 | # CONFIG_JFS_FS is not set | 1215 | # CONFIG_JFS_FS is not set |
1166 | # CONFIG_FS_POSIX_ACL is not set | 1216 | # CONFIG_FS_POSIX_ACL is not set |
1217 | CONFIG_FILE_LOCKING=y | ||
1167 | # CONFIG_XFS_FS is not set | 1218 | # CONFIG_XFS_FS is not set |
1168 | # CONFIG_OCFS2_FS is not set | 1219 | # CONFIG_OCFS2_FS is not set |
1169 | CONFIG_DNOTIFY=y | 1220 | CONFIG_DNOTIFY=y |
@@ -1196,6 +1247,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
1196 | CONFIG_PROC_FS=y | 1247 | CONFIG_PROC_FS=y |
1197 | CONFIG_PROC_KCORE=y | 1248 | CONFIG_PROC_KCORE=y |
1198 | CONFIG_PROC_SYSCTL=y | 1249 | CONFIG_PROC_SYSCTL=y |
1250 | CONFIG_PROC_PAGE_MONITOR=y | ||
1199 | CONFIG_SYSFS=y | 1251 | CONFIG_SYSFS=y |
1200 | CONFIG_TMPFS=y | 1252 | CONFIG_TMPFS=y |
1201 | # CONFIG_TMPFS_POSIX_ACL is not set | 1253 | # CONFIG_TMPFS_POSIX_ACL is not set |
@@ -1293,6 +1345,11 @@ CONFIG_DEBUG_FS=y | |||
1293 | # CONFIG_DEBUG_KERNEL is not set | 1345 | # CONFIG_DEBUG_KERNEL is not set |
1294 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1346 | # CONFIG_DEBUG_BUGVERBOSE is not set |
1295 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1347 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1348 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
1349 | # CONFIG_LATENCYTOP is not set | ||
1350 | CONFIG_NOP_TRACER=y | ||
1351 | CONFIG_HAVE_FTRACE=y | ||
1352 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
1296 | # CONFIG_SAMPLES is not set | 1353 | # CONFIG_SAMPLES is not set |
1297 | # CONFIG_SH_STANDARD_BIOS is not set | 1354 | # CONFIG_SH_STANDARD_BIOS is not set |
1298 | CONFIG_EARLY_SCIF_CONSOLE=y | 1355 | CONFIG_EARLY_SCIF_CONSOLE=y |
@@ -1305,12 +1362,14 @@ CONFIG_EARLY_PRINTK=y | |||
1305 | # | 1362 | # |
1306 | # CONFIG_KEYS is not set | 1363 | # CONFIG_KEYS is not set |
1307 | # CONFIG_SECURITY is not set | 1364 | # CONFIG_SECURITY is not set |
1365 | # CONFIG_SECURITYFS is not set | ||
1308 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1366 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
1309 | CONFIG_CRYPTO=y | 1367 | CONFIG_CRYPTO=y |
1310 | 1368 | ||
1311 | # | 1369 | # |
1312 | # Crypto core or helper | 1370 | # Crypto core or helper |
1313 | # | 1371 | # |
1372 | # CONFIG_CRYPTO_FIPS is not set | ||
1314 | # CONFIG_CRYPTO_MANAGER is not set | 1373 | # CONFIG_CRYPTO_MANAGER is not set |
1315 | # CONFIG_CRYPTO_GF128MUL is not set | 1374 | # CONFIG_CRYPTO_GF128MUL is not set |
1316 | # CONFIG_CRYPTO_NULL is not set | 1375 | # CONFIG_CRYPTO_NULL is not set |
@@ -1383,6 +1442,11 @@ CONFIG_CRYPTO=y | |||
1383 | # | 1442 | # |
1384 | # CONFIG_CRYPTO_DEFLATE is not set | 1443 | # CONFIG_CRYPTO_DEFLATE is not set |
1385 | # CONFIG_CRYPTO_LZO is not set | 1444 | # CONFIG_CRYPTO_LZO is not set |
1445 | |||
1446 | # | ||
1447 | # Random Number Generation | ||
1448 | # | ||
1449 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
1386 | CONFIG_CRYPTO_HW=y | 1450 | CONFIG_CRYPTO_HW=y |
1387 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 1451 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
1388 | 1452 | ||
@@ -1390,7 +1454,6 @@ CONFIG_CRYPTO_HW=y | |||
1390 | # Library routines | 1454 | # Library routines |
1391 | # | 1455 | # |
1392 | CONFIG_BITREVERSE=y | 1456 | CONFIG_BITREVERSE=y |
1393 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
1394 | # CONFIG_CRC_CCITT is not set | 1457 | # CONFIG_CRC_CCITT is not set |
1395 | # CONFIG_CRC16 is not set | 1458 | # CONFIG_CRC16 is not set |
1396 | CONFIG_CRC_T10DIF=y | 1459 | CONFIG_CRC_T10DIF=y |
diff --git a/arch/sh/configs/rts7751r2dplus_qemu_defconfig b/arch/sh/configs/rts7751r2dplus_qemu_defconfig index a72796c0293c..ae8f63000fbf 100644 --- a/arch/sh/configs/rts7751r2dplus_qemu_defconfig +++ b/arch/sh/configs/rts7751r2dplus_qemu_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.27-rc2 | 3 | # Linux kernel version: 2.6.27 |
4 | # Mon Aug 18 22:17:44 2008 | 4 | # Wed Oct 22 18:51:20 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -13,12 +13,13 @@ CONFIG_GENERIC_HWEIGHT=y | |||
13 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
15 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
16 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
17 | CONFIG_GENERIC_TIME=y | 17 | CONFIG_GENERIC_TIME=y |
18 | CONFIG_GENERIC_CLOCKEVENTS=y | 18 | CONFIG_GENERIC_CLOCKEVENTS=y |
19 | CONFIG_SYS_SUPPORTS_PCI=y | 19 | CONFIG_SYS_SUPPORTS_PCI=y |
20 | CONFIG_STACKTRACE_SUPPORT=y | 20 | CONFIG_STACKTRACE_SUPPORT=y |
21 | CONFIG_LOCKDEP_SUPPORT=y | 21 | CONFIG_LOCKDEP_SUPPORT=y |
22 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
22 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 23 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
23 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 24 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
24 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 25 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
@@ -73,7 +74,9 @@ CONFIG_SIGNALFD=y | |||
73 | CONFIG_TIMERFD=y | 74 | CONFIG_TIMERFD=y |
74 | CONFIG_EVENTFD=y | 75 | CONFIG_EVENTFD=y |
75 | CONFIG_SHMEM=y | 76 | CONFIG_SHMEM=y |
77 | CONFIG_AIO=y | ||
76 | CONFIG_VM_EVENT_COUNTERS=y | 78 | CONFIG_VM_EVENT_COUNTERS=y |
79 | CONFIG_PCI_QUIRKS=y | ||
77 | CONFIG_SLAB=y | 80 | CONFIG_SLAB=y |
78 | # CONFIG_SLUB is not set | 81 | # CONFIG_SLUB is not set |
79 | # CONFIG_SLOB is not set | 82 | # CONFIG_SLOB is not set |
@@ -81,15 +84,12 @@ CONFIG_PROFILING=y | |||
81 | # CONFIG_MARKERS is not set | 84 | # CONFIG_MARKERS is not set |
82 | CONFIG_OPROFILE=y | 85 | CONFIG_OPROFILE=y |
83 | CONFIG_HAVE_OPROFILE=y | 86 | CONFIG_HAVE_OPROFILE=y |
84 | # CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set | 87 | # CONFIG_KPROBES is not set |
85 | # CONFIG_HAVE_IOREMAP_PROT is not set | 88 | CONFIG_HAVE_IOREMAP_PROT=y |
86 | # CONFIG_HAVE_KPROBES is not set | 89 | CONFIG_HAVE_KPROBES=y |
87 | # CONFIG_HAVE_KRETPROBES is not set | 90 | CONFIG_HAVE_KRETPROBES=y |
88 | # CONFIG_HAVE_ARCH_TRACEHOOK is not set | 91 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
89 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
90 | # CONFIG_USE_GENERIC_SMP_HELPERS is not set | ||
91 | CONFIG_HAVE_CLK=y | 92 | CONFIG_HAVE_CLK=y |
92 | CONFIG_PROC_PAGE_MONITOR=y | ||
93 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | 93 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
94 | CONFIG_SLABINFO=y | 94 | CONFIG_SLABINFO=y |
95 | CONFIG_RT_MUTEXES=y | 95 | CONFIG_RT_MUTEXES=y |
@@ -121,6 +121,7 @@ CONFIG_DEFAULT_AS=y | |||
121 | # CONFIG_DEFAULT_NOOP is not set | 121 | # CONFIG_DEFAULT_NOOP is not set |
122 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 122 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
123 | CONFIG_CLASSIC_RCU=y | 123 | CONFIG_CLASSIC_RCU=y |
124 | # CONFIG_FREEZER is not set | ||
124 | 125 | ||
125 | # | 126 | # |
126 | # System type | 127 | # System type |
@@ -188,12 +189,13 @@ CONFIG_FLATMEM_MANUAL=y | |||
188 | CONFIG_FLATMEM=y | 189 | CONFIG_FLATMEM=y |
189 | CONFIG_FLAT_NODE_MEM_MAP=y | 190 | CONFIG_FLAT_NODE_MEM_MAP=y |
190 | CONFIG_SPARSEMEM_STATIC=y | 191 | CONFIG_SPARSEMEM_STATIC=y |
191 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
192 | CONFIG_PAGEFLAGS_EXTENDED=y | 192 | CONFIG_PAGEFLAGS_EXTENDED=y |
193 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 193 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
194 | # CONFIG_RESOURCES_64BIT is not set | 194 | # CONFIG_RESOURCES_64BIT is not set |
195 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
195 | CONFIG_ZONE_DMA_FLAG=0 | 196 | CONFIG_ZONE_DMA_FLAG=0 |
196 | CONFIG_NR_QUICK=2 | 197 | CONFIG_NR_QUICK=2 |
198 | CONFIG_UNEVICTABLE_LRU=y | ||
197 | 199 | ||
198 | # | 200 | # |
199 | # Cache configuration | 201 | # Cache configuration |
@@ -237,7 +239,6 @@ CONFIG_RTS7751R2D_PLUS=y | |||
237 | CONFIG_SH_TMU=y | 239 | CONFIG_SH_TMU=y |
238 | CONFIG_SH_TIMER_IRQ=16 | 240 | CONFIG_SH_TIMER_IRQ=16 |
239 | CONFIG_SH_PCLK_FREQ=60000000 | 241 | CONFIG_SH_PCLK_FREQ=60000000 |
240 | # CONFIG_TICK_ONESHOT is not set | ||
241 | # CONFIG_NO_HZ is not set | 242 | # CONFIG_NO_HZ is not set |
242 | # CONFIG_HIGH_RES_TIMERS is not set | 243 | # CONFIG_HIGH_RES_TIMERS is not set |
243 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | 244 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y |
@@ -299,6 +300,8 @@ CONFIG_CMDLINE="console=tty0 console=ttySC0,115200 root=/dev/sda1 earlyprintk=se | |||
299 | # Executable file formats | 300 | # Executable file formats |
300 | # | 301 | # |
301 | CONFIG_BINFMT_ELF=y | 302 | CONFIG_BINFMT_ELF=y |
303 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
304 | # CONFIG_HAVE_AOUT is not set | ||
302 | # CONFIG_BINFMT_MISC is not set | 305 | # CONFIG_BINFMT_MISC is not set |
303 | # CONFIG_NET is not set | 306 | # CONFIG_NET is not set |
304 | 307 | ||
@@ -467,10 +470,12 @@ CONFIG_SPI_BITBANG=y | |||
467 | # CONFIG_POWER_SUPPLY is not set | 470 | # CONFIG_POWER_SUPPLY is not set |
468 | CONFIG_HWMON=y | 471 | CONFIG_HWMON=y |
469 | # CONFIG_HWMON_VID is not set | 472 | # CONFIG_HWMON_VID is not set |
473 | # CONFIG_SENSORS_ADCXX is not set | ||
470 | # CONFIG_SENSORS_F71805F is not set | 474 | # CONFIG_SENSORS_F71805F is not set |
471 | # CONFIG_SENSORS_F71882FG is not set | 475 | # CONFIG_SENSORS_F71882FG is not set |
472 | # CONFIG_SENSORS_IT87 is not set | 476 | # CONFIG_SENSORS_IT87 is not set |
473 | # CONFIG_SENSORS_LM70 is not set | 477 | # CONFIG_SENSORS_LM70 is not set |
478 | # CONFIG_SENSORS_MAX1111 is not set | ||
474 | # CONFIG_SENSORS_PC87360 is not set | 479 | # CONFIG_SENSORS_PC87360 is not set |
475 | # CONFIG_SENSORS_PC87427 is not set | 480 | # CONFIG_SENSORS_PC87427 is not set |
476 | # CONFIG_SENSORS_SMSC47M1 is not set | 481 | # CONFIG_SENSORS_SMSC47M1 is not set |
@@ -495,6 +500,8 @@ CONFIG_SSB_POSSIBLE=y | |||
495 | # CONFIG_MFD_CORE is not set | 500 | # CONFIG_MFD_CORE is not set |
496 | CONFIG_MFD_SM501=y | 501 | CONFIG_MFD_SM501=y |
497 | # CONFIG_HTC_PASIC3 is not set | 502 | # CONFIG_HTC_PASIC3 is not set |
503 | # CONFIG_MFD_TMIO is not set | ||
504 | # CONFIG_MFD_WM8400 is not set | ||
498 | 505 | ||
499 | # | 506 | # |
500 | # Multimedia devices | 507 | # Multimedia devices |
@@ -519,6 +526,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m | |||
519 | CONFIG_FB=y | 526 | CONFIG_FB=y |
520 | # CONFIG_FIRMWARE_EDID is not set | 527 | # CONFIG_FIRMWARE_EDID is not set |
521 | # CONFIG_FB_DDC is not set | 528 | # CONFIG_FB_DDC is not set |
529 | # CONFIG_FB_BOOT_VESA_SUPPORT is not set | ||
522 | CONFIG_FB_CFB_FILLRECT=y | 530 | CONFIG_FB_CFB_FILLRECT=y |
523 | CONFIG_FB_CFB_COPYAREA=y | 531 | CONFIG_FB_CFB_COPYAREA=y |
524 | CONFIG_FB_CFB_IMAGEBLIT=y | 532 | CONFIG_FB_CFB_IMAGEBLIT=y |
@@ -541,6 +549,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y | |||
541 | CONFIG_FB_SH_MOBILE_LCDC=m | 549 | CONFIG_FB_SH_MOBILE_LCDC=m |
542 | CONFIG_FB_SM501=y | 550 | CONFIG_FB_SM501=y |
543 | # CONFIG_FB_VIRTUAL is not set | 551 | # CONFIG_FB_VIRTUAL is not set |
552 | # CONFIG_FB_METRONOME is not set | ||
544 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 553 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
545 | 554 | ||
546 | # | 555 | # |
@@ -566,6 +575,7 @@ CONFIG_LOGO=y | |||
566 | # CONFIG_LOGO_SUPERH_VGA16 is not set | 575 | # CONFIG_LOGO_SUPERH_VGA16 is not set |
567 | CONFIG_LOGO_SUPERH_CLUT224=y | 576 | CONFIG_LOGO_SUPERH_CLUT224=y |
568 | CONFIG_SOUND=y | 577 | CONFIG_SOUND=y |
578 | CONFIG_SOUND_OSS_CORE=y | ||
569 | CONFIG_SND=m | 579 | CONFIG_SND=m |
570 | # CONFIG_SND_SEQUENCER is not set | 580 | # CONFIG_SND_SEQUENCER is not set |
571 | # CONFIG_SND_MIXER_OSS is not set | 581 | # CONFIG_SND_MIXER_OSS is not set |
@@ -588,6 +598,12 @@ CONFIG_HID_SUPPORT=y | |||
588 | CONFIG_HID=y | 598 | CONFIG_HID=y |
589 | # CONFIG_HID_DEBUG is not set | 599 | # CONFIG_HID_DEBUG is not set |
590 | # CONFIG_HIDRAW is not set | 600 | # CONFIG_HIDRAW is not set |
601 | # CONFIG_HID_PID is not set | ||
602 | |||
603 | # | ||
604 | # Special HID drivers | ||
605 | # | ||
606 | CONFIG_HID_COMPAT=y | ||
591 | # CONFIG_USB_SUPPORT is not set | 607 | # CONFIG_USB_SUPPORT is not set |
592 | # CONFIG_MMC is not set | 608 | # CONFIG_MMC is not set |
593 | # CONFIG_MEMSTICK is not set | 609 | # CONFIG_MEMSTICK is not set |
@@ -616,16 +632,20 @@ CONFIG_RTC_INTF_DEV=y | |||
616 | # CONFIG_RTC_DRV_MAX6902 is not set | 632 | # CONFIG_RTC_DRV_MAX6902 is not set |
617 | CONFIG_RTC_DRV_R9701=y | 633 | CONFIG_RTC_DRV_R9701=y |
618 | # CONFIG_RTC_DRV_RS5C348 is not set | 634 | # CONFIG_RTC_DRV_RS5C348 is not set |
635 | # CONFIG_RTC_DRV_DS3234 is not set | ||
619 | 636 | ||
620 | # | 637 | # |
621 | # Platform RTC drivers | 638 | # Platform RTC drivers |
622 | # | 639 | # |
640 | # CONFIG_RTC_DRV_DS1286 is not set | ||
623 | # CONFIG_RTC_DRV_DS1511 is not set | 641 | # CONFIG_RTC_DRV_DS1511 is not set |
624 | # CONFIG_RTC_DRV_DS1553 is not set | 642 | # CONFIG_RTC_DRV_DS1553 is not set |
625 | # CONFIG_RTC_DRV_DS1742 is not set | 643 | # CONFIG_RTC_DRV_DS1742 is not set |
626 | # CONFIG_RTC_DRV_STK17TA8 is not set | 644 | # CONFIG_RTC_DRV_STK17TA8 is not set |
627 | # CONFIG_RTC_DRV_M48T86 is not set | 645 | # CONFIG_RTC_DRV_M48T86 is not set |
646 | # CONFIG_RTC_DRV_M48T35 is not set | ||
628 | # CONFIG_RTC_DRV_M48T59 is not set | 647 | # CONFIG_RTC_DRV_M48T59 is not set |
648 | # CONFIG_RTC_DRV_BQ4802 is not set | ||
629 | # CONFIG_RTC_DRV_V3020 is not set | 649 | # CONFIG_RTC_DRV_V3020 is not set |
630 | 650 | ||
631 | # | 651 | # |
@@ -634,6 +654,7 @@ CONFIG_RTC_DRV_R9701=y | |||
634 | # CONFIG_RTC_DRV_SH is not set | 654 | # CONFIG_RTC_DRV_SH is not set |
635 | # CONFIG_DMADEVICES is not set | 655 | # CONFIG_DMADEVICES is not set |
636 | # CONFIG_UIO is not set | 656 | # CONFIG_UIO is not set |
657 | # CONFIG_STAGING is not set | ||
637 | 658 | ||
638 | # | 659 | # |
639 | # File systems | 660 | # File systems |
@@ -642,10 +663,11 @@ CONFIG_EXT2_FS=y | |||
642 | # CONFIG_EXT2_FS_XATTR is not set | 663 | # CONFIG_EXT2_FS_XATTR is not set |
643 | # CONFIG_EXT2_FS_XIP is not set | 664 | # CONFIG_EXT2_FS_XIP is not set |
644 | # CONFIG_EXT3_FS is not set | 665 | # CONFIG_EXT3_FS is not set |
645 | # CONFIG_EXT4DEV_FS is not set | 666 | # CONFIG_EXT4_FS is not set |
646 | # CONFIG_REISERFS_FS is not set | 667 | # CONFIG_REISERFS_FS is not set |
647 | # CONFIG_JFS_FS is not set | 668 | # CONFIG_JFS_FS is not set |
648 | # CONFIG_FS_POSIX_ACL is not set | 669 | # CONFIG_FS_POSIX_ACL is not set |
670 | CONFIG_FILE_LOCKING=y | ||
649 | # CONFIG_XFS_FS is not set | 671 | # CONFIG_XFS_FS is not set |
650 | CONFIG_DNOTIFY=y | 672 | CONFIG_DNOTIFY=y |
651 | CONFIG_INOTIFY=y | 673 | CONFIG_INOTIFY=y |
@@ -677,6 +699,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
677 | CONFIG_PROC_FS=y | 699 | CONFIG_PROC_FS=y |
678 | CONFIG_PROC_KCORE=y | 700 | CONFIG_PROC_KCORE=y |
679 | CONFIG_PROC_SYSCTL=y | 701 | CONFIG_PROC_SYSCTL=y |
702 | CONFIG_PROC_PAGE_MONITOR=y | ||
680 | CONFIG_SYSFS=y | 703 | CONFIG_SYSFS=y |
681 | CONFIG_TMPFS=y | 704 | CONFIG_TMPFS=y |
682 | # CONFIG_TMPFS_POSIX_ACL is not set | 705 | # CONFIG_TMPFS_POSIX_ACL is not set |
@@ -790,10 +813,21 @@ CONFIG_DEBUG_INFO=y | |||
790 | # CONFIG_DEBUG_LIST is not set | 813 | # CONFIG_DEBUG_LIST is not set |
791 | # CONFIG_DEBUG_SG is not set | 814 | # CONFIG_DEBUG_SG is not set |
792 | # CONFIG_FRAME_POINTER is not set | 815 | # CONFIG_FRAME_POINTER is not set |
793 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
794 | # CONFIG_RCU_TORTURE_TEST is not set | 816 | # CONFIG_RCU_TORTURE_TEST is not set |
817 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
795 | # CONFIG_BACKTRACE_SELF_TEST is not set | 818 | # CONFIG_BACKTRACE_SELF_TEST is not set |
819 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
796 | # CONFIG_FAULT_INJECTION is not set | 820 | # CONFIG_FAULT_INJECTION is not set |
821 | # CONFIG_LATENCYTOP is not set | ||
822 | CONFIG_NOP_TRACER=y | ||
823 | CONFIG_HAVE_FTRACE=y | ||
824 | # CONFIG_FTRACE is not set | ||
825 | # CONFIG_IRQSOFF_TRACER is not set | ||
826 | # CONFIG_SCHED_TRACER is not set | ||
827 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
828 | # CONFIG_BOOT_TRACER is not set | ||
829 | # CONFIG_STACK_TRACER is not set | ||
830 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
797 | # CONFIG_SAMPLES is not set | 831 | # CONFIG_SAMPLES is not set |
798 | # CONFIG_SH_STANDARD_BIOS is not set | 832 | # CONFIG_SH_STANDARD_BIOS is not set |
799 | CONFIG_EARLY_SCIF_CONSOLE=y | 833 | CONFIG_EARLY_SCIF_CONSOLE=y |
@@ -811,12 +845,14 @@ CONFIG_EARLY_PRINTK=y | |||
811 | # | 845 | # |
812 | # CONFIG_KEYS is not set | 846 | # CONFIG_KEYS is not set |
813 | # CONFIG_SECURITY is not set | 847 | # CONFIG_SECURITY is not set |
848 | # CONFIG_SECURITYFS is not set | ||
814 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 849 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
815 | CONFIG_CRYPTO=y | 850 | CONFIG_CRYPTO=y |
816 | 851 | ||
817 | # | 852 | # |
818 | # Crypto core or helper | 853 | # Crypto core or helper |
819 | # | 854 | # |
855 | # CONFIG_CRYPTO_FIPS is not set | ||
820 | # CONFIG_CRYPTO_MANAGER is not set | 856 | # CONFIG_CRYPTO_MANAGER is not set |
821 | # CONFIG_CRYPTO_GF128MUL is not set | 857 | # CONFIG_CRYPTO_GF128MUL is not set |
822 | # CONFIG_CRYPTO_NULL is not set | 858 | # CONFIG_CRYPTO_NULL is not set |
@@ -889,13 +925,17 @@ CONFIG_CRYPTO=y | |||
889 | # | 925 | # |
890 | # CONFIG_CRYPTO_DEFLATE is not set | 926 | # CONFIG_CRYPTO_DEFLATE is not set |
891 | # CONFIG_CRYPTO_LZO is not set | 927 | # CONFIG_CRYPTO_LZO is not set |
928 | |||
929 | # | ||
930 | # Random Number Generation | ||
931 | # | ||
932 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
892 | CONFIG_CRYPTO_HW=y | 933 | CONFIG_CRYPTO_HW=y |
893 | 934 | ||
894 | # | 935 | # |
895 | # Library routines | 936 | # Library routines |
896 | # | 937 | # |
897 | CONFIG_BITREVERSE=y | 938 | CONFIG_BITREVERSE=y |
898 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
899 | # CONFIG_CRC_CCITT is not set | 939 | # CONFIG_CRC_CCITT is not set |
900 | # CONFIG_CRC16 is not set | 940 | # CONFIG_CRC16 is not set |
901 | CONFIG_CRC_T10DIF=y | 941 | CONFIG_CRC_T10DIF=y |
diff --git a/arch/sh/configs/sdk7780_defconfig b/arch/sh/configs/sdk7780_defconfig index 6d834f242905..543287b97a6a 100644 --- a/arch/sh/configs/sdk7780_defconfig +++ b/arch/sh/configs/sdk7780_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.26 | 3 | # Linux kernel version: 2.6.27 |
4 | # Wed Jul 30 02:00:12 2008 | 4 | # Wed Oct 22 18:53:22 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -11,17 +11,18 @@ CONFIG_GENERIC_BUG=y | |||
11 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
12 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
13 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
14 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
15 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
16 | CONFIG_GENERIC_TIME=y | 17 | CONFIG_GENERIC_TIME=y |
17 | CONFIG_GENERIC_CLOCKEVENTS=y | 18 | CONFIG_GENERIC_CLOCKEVENTS=y |
18 | CONFIG_SYS_SUPPORTS_PCI=y | 19 | CONFIG_SYS_SUPPORTS_PCI=y |
19 | CONFIG_STACKTRACE_SUPPORT=y | 20 | CONFIG_STACKTRACE_SUPPORT=y |
20 | CONFIG_LOCKDEP_SUPPORT=y | 21 | CONFIG_LOCKDEP_SUPPORT=y |
22 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
21 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 23 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
22 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 24 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
23 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 25 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
24 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
25 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 26 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
26 | 27 | ||
27 | # | 28 | # |
@@ -56,7 +57,6 @@ CONFIG_SYSCTL=y | |||
56 | CONFIG_EMBEDDED=y | 57 | CONFIG_EMBEDDED=y |
57 | CONFIG_UID16=y | 58 | CONFIG_UID16=y |
58 | CONFIG_SYSCTL_SYSCALL=y | 59 | CONFIG_SYSCTL_SYSCALL=y |
59 | CONFIG_SYSCTL_SYSCALL_CHECK=y | ||
60 | CONFIG_KALLSYMS=y | 60 | CONFIG_KALLSYMS=y |
61 | CONFIG_KALLSYMS_ALL=y | 61 | CONFIG_KALLSYMS_ALL=y |
62 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 62 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
@@ -73,7 +73,9 @@ CONFIG_SIGNALFD=y | |||
73 | CONFIG_TIMERFD=y | 73 | CONFIG_TIMERFD=y |
74 | CONFIG_EVENTFD=y | 74 | CONFIG_EVENTFD=y |
75 | CONFIG_SHMEM=y | 75 | CONFIG_SHMEM=y |
76 | CONFIG_AIO=y | ||
76 | CONFIG_VM_EVENT_COUNTERS=y | 77 | CONFIG_VM_EVENT_COUNTERS=y |
78 | CONFIG_PCI_QUIRKS=y | ||
77 | CONFIG_SLUB_DEBUG=y | 79 | CONFIG_SLUB_DEBUG=y |
78 | # CONFIG_SLAB is not set | 80 | # CONFIG_SLAB is not set |
79 | CONFIG_SLUB=y | 81 | CONFIG_SLUB=y |
@@ -81,15 +83,13 @@ CONFIG_SLUB=y | |||
81 | # CONFIG_PROFILING is not set | 83 | # CONFIG_PROFILING is not set |
82 | # CONFIG_MARKERS is not set | 84 | # CONFIG_MARKERS is not set |
83 | CONFIG_HAVE_OPROFILE=y | 85 | CONFIG_HAVE_OPROFILE=y |
84 | # CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set | 86 | # CONFIG_KPROBES is not set |
85 | # CONFIG_HAVE_IOREMAP_PROT is not set | 87 | CONFIG_HAVE_IOREMAP_PROT=y |
86 | # CONFIG_HAVE_KPROBES is not set | 88 | CONFIG_HAVE_KPROBES=y |
87 | # CONFIG_HAVE_KRETPROBES is not set | 89 | CONFIG_HAVE_KRETPROBES=y |
88 | # CONFIG_HAVE_ARCH_TRACEHOOK is not set | 90 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
89 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
90 | # CONFIG_USE_GENERIC_SMP_HELPERS is not set | ||
91 | CONFIG_HAVE_CLK=y | 91 | CONFIG_HAVE_CLK=y |
92 | CONFIG_PROC_PAGE_MONITOR=y | 92 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
93 | CONFIG_SLABINFO=y | 93 | CONFIG_SLABINFO=y |
94 | CONFIG_RT_MUTEXES=y | 94 | CONFIG_RT_MUTEXES=y |
95 | # CONFIG_TINY_SHMEM is not set | 95 | # CONFIG_TINY_SHMEM is not set |
@@ -121,6 +121,7 @@ CONFIG_DEFAULT_AS=y | |||
121 | # CONFIG_DEFAULT_NOOP is not set | 121 | # CONFIG_DEFAULT_NOOP is not set |
122 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 122 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
123 | CONFIG_CLASSIC_RCU=y | 123 | CONFIG_CLASSIC_RCU=y |
124 | # CONFIG_FREEZER is not set | ||
124 | 125 | ||
125 | # | 126 | # |
126 | # System type | 127 | # System type |
@@ -196,12 +197,13 @@ CONFIG_FLATMEM_MANUAL=y | |||
196 | CONFIG_FLATMEM=y | 197 | CONFIG_FLATMEM=y |
197 | CONFIG_FLAT_NODE_MEM_MAP=y | 198 | CONFIG_FLAT_NODE_MEM_MAP=y |
198 | CONFIG_SPARSEMEM_STATIC=y | 199 | CONFIG_SPARSEMEM_STATIC=y |
199 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
200 | CONFIG_PAGEFLAGS_EXTENDED=y | 200 | CONFIG_PAGEFLAGS_EXTENDED=y |
201 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 201 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
202 | CONFIG_RESOURCES_64BIT=y | 202 | CONFIG_RESOURCES_64BIT=y |
203 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
203 | CONFIG_ZONE_DMA_FLAG=0 | 204 | CONFIG_ZONE_DMA_FLAG=0 |
204 | CONFIG_NR_QUICK=2 | 205 | CONFIG_NR_QUICK=2 |
206 | CONFIG_UNEVICTABLE_LRU=y | ||
205 | 207 | ||
206 | # | 208 | # |
207 | # Cache configuration | 209 | # Cache configuration |
@@ -273,9 +275,10 @@ CONFIG_HZ_250=y | |||
273 | # CONFIG_HZ_300 is not set | 275 | # CONFIG_HZ_300 is not set |
274 | # CONFIG_HZ_1000 is not set | 276 | # CONFIG_HZ_1000 is not set |
275 | CONFIG_HZ=250 | 277 | CONFIG_HZ=250 |
276 | # CONFIG_SCHED_HRTICK is not set | 278 | CONFIG_SCHED_HRTICK=y |
277 | # CONFIG_KEXEC is not set | 279 | # CONFIG_KEXEC is not set |
278 | # CONFIG_CRASH_DUMP is not set | 280 | # CONFIG_CRASH_DUMP is not set |
281 | # CONFIG_SECCOMP is not set | ||
279 | # CONFIG_PREEMPT_NONE is not set | 282 | # CONFIG_PREEMPT_NONE is not set |
280 | # CONFIG_PREEMPT_VOLUNTARY is not set | 283 | # CONFIG_PREEMPT_VOLUNTARY is not set |
281 | CONFIG_PREEMPT=y | 284 | CONFIG_PREEMPT=y |
@@ -328,11 +331,9 @@ CONFIG_HOTPLUG_PCI=y | |||
328 | # Executable file formats | 331 | # Executable file formats |
329 | # | 332 | # |
330 | CONFIG_BINFMT_ELF=y | 333 | CONFIG_BINFMT_ELF=y |
334 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
335 | # CONFIG_HAVE_AOUT is not set | ||
331 | # CONFIG_BINFMT_MISC is not set | 336 | # CONFIG_BINFMT_MISC is not set |
332 | |||
333 | # | ||
334 | # Networking | ||
335 | # | ||
336 | CONFIG_NET=y | 337 | CONFIG_NET=y |
337 | 338 | ||
338 | # | 339 | # |
@@ -406,6 +407,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y | |||
406 | # CONFIG_TIPC is not set | 407 | # CONFIG_TIPC is not set |
407 | # CONFIG_ATM is not set | 408 | # CONFIG_ATM is not set |
408 | # CONFIG_BRIDGE is not set | 409 | # CONFIG_BRIDGE is not set |
410 | # CONFIG_NET_DSA is not set | ||
409 | # CONFIG_VLAN_8021Q is not set | 411 | # CONFIG_VLAN_8021Q is not set |
410 | # CONFIG_DECNET is not set | 412 | # CONFIG_DECNET is not set |
411 | # CONFIG_LLC2 is not set | 413 | # CONFIG_LLC2 is not set |
@@ -424,6 +426,7 @@ CONFIG_NET_SCHED=y | |||
424 | # CONFIG_NET_SCH_HTB is not set | 426 | # CONFIG_NET_SCH_HTB is not set |
425 | # CONFIG_NET_SCH_HFSC is not set | 427 | # CONFIG_NET_SCH_HFSC is not set |
426 | # CONFIG_NET_SCH_PRIO is not set | 428 | # CONFIG_NET_SCH_PRIO is not set |
429 | # CONFIG_NET_SCH_MULTIQ is not set | ||
427 | # CONFIG_NET_SCH_RED is not set | 430 | # CONFIG_NET_SCH_RED is not set |
428 | # CONFIG_NET_SCH_SFQ is not set | 431 | # CONFIG_NET_SCH_SFQ is not set |
429 | # CONFIG_NET_SCH_TEQL is not set | 432 | # CONFIG_NET_SCH_TEQL is not set |
@@ -456,11 +459,10 @@ CONFIG_NET_SCH_FIFO=y | |||
456 | # CONFIG_IRDA is not set | 459 | # CONFIG_IRDA is not set |
457 | # CONFIG_BT is not set | 460 | # CONFIG_BT is not set |
458 | # CONFIG_AF_RXRPC is not set | 461 | # CONFIG_AF_RXRPC is not set |
459 | 462 | # CONFIG_PHONET is not set | |
460 | # | 463 | CONFIG_WIRELESS=y |
461 | # Wireless | ||
462 | # | ||
463 | # CONFIG_CFG80211 is not set | 464 | # CONFIG_CFG80211 is not set |
465 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
464 | # CONFIG_WIRELESS_EXT is not set | 466 | # CONFIG_WIRELESS_EXT is not set |
465 | # CONFIG_MAC80211 is not set | 467 | # CONFIG_MAC80211 is not set |
466 | # CONFIG_IEEE80211 is not set | 468 | # CONFIG_IEEE80211 is not set |
@@ -510,21 +512,19 @@ CONFIG_BLK_DEV_RAM_SIZE=4096 | |||
510 | # CONFIG_MISC_DEVICES is not set | 512 | # CONFIG_MISC_DEVICES is not set |
511 | CONFIG_HAVE_IDE=y | 513 | CONFIG_HAVE_IDE=y |
512 | CONFIG_IDE=y | 514 | CONFIG_IDE=y |
513 | CONFIG_IDE_MAX_HWIFS=4 | ||
514 | CONFIG_BLK_DEV_IDE=y | ||
515 | 515 | ||
516 | # | 516 | # |
517 | # Please see Documentation/ide/ide.txt for help/info on IDE drives | 517 | # Please see Documentation/ide/ide.txt for help/info on IDE drives |
518 | # | 518 | # |
519 | # CONFIG_BLK_DEV_IDE_SATA is not set | 519 | # CONFIG_BLK_DEV_IDE_SATA is not set |
520 | CONFIG_BLK_DEV_IDEDISK=y | 520 | CONFIG_IDE_GD=y |
521 | CONFIG_IDEDISK_MULTI_MODE=y | 521 | CONFIG_IDE_GD_ATA=y |
522 | # CONFIG_IDE_GD_ATAPI is not set | ||
522 | # CONFIG_BLK_DEV_IDECS is not set | 523 | # CONFIG_BLK_DEV_IDECS is not set |
523 | # CONFIG_BLK_DEV_DELKIN is not set | 524 | # CONFIG_BLK_DEV_DELKIN is not set |
524 | CONFIG_BLK_DEV_IDECD=y | 525 | CONFIG_BLK_DEV_IDECD=y |
525 | CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y | 526 | CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y |
526 | # CONFIG_BLK_DEV_IDETAPE is not set | 527 | # CONFIG_BLK_DEV_IDETAPE is not set |
527 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | ||
528 | # CONFIG_BLK_DEV_IDESCSI is not set | 528 | # CONFIG_BLK_DEV_IDESCSI is not set |
529 | # CONFIG_IDE_TASK_IOCTL is not set | 529 | # CONFIG_IDE_TASK_IOCTL is not set |
530 | CONFIG_IDE_PROC_FS=y | 530 | CONFIG_IDE_PROC_FS=y |
@@ -748,9 +748,13 @@ CONFIG_SMC91X=y | |||
748 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 748 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
749 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 749 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
750 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 750 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
751 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
752 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
753 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
751 | # CONFIG_NET_PCI is not set | 754 | # CONFIG_NET_PCI is not set |
752 | # CONFIG_B44 is not set | 755 | # CONFIG_B44 is not set |
753 | # CONFIG_NET_POCKET is not set | 756 | # CONFIG_NET_POCKET is not set |
757 | # CONFIG_ATL2 is not set | ||
754 | # CONFIG_NETDEV_1000 is not set | 758 | # CONFIG_NETDEV_1000 is not set |
755 | # CONFIG_NETDEV_10000 is not set | 759 | # CONFIG_NETDEV_10000 is not set |
756 | # CONFIG_TR is not set | 760 | # CONFIG_TR is not set |
@@ -790,7 +794,7 @@ CONFIG_NET_POLL_CONTROLLER=y | |||
790 | # Input device support | 794 | # Input device support |
791 | # | 795 | # |
792 | CONFIG_INPUT=y | 796 | CONFIG_INPUT=y |
793 | # CONFIG_INPUT_FF_MEMLESS is not set | 797 | CONFIG_INPUT_FF_MEMLESS=m |
794 | # CONFIG_INPUT_POLLDEV is not set | 798 | # CONFIG_INPUT_POLLDEV is not set |
795 | 799 | ||
796 | # | 800 | # |
@@ -825,6 +829,7 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y | |||
825 | # CONFIG_MOUSE_PS2_TOUCHKIT is not set | 829 | # CONFIG_MOUSE_PS2_TOUCHKIT is not set |
826 | # CONFIG_MOUSE_SERIAL is not set | 830 | # CONFIG_MOUSE_SERIAL is not set |
827 | # CONFIG_MOUSE_APPLETOUCH is not set | 831 | # CONFIG_MOUSE_APPLETOUCH is not set |
832 | # CONFIG_MOUSE_BCM5974 is not set | ||
828 | # CONFIG_MOUSE_VSXXXAA is not set | 833 | # CONFIG_MOUSE_VSXXXAA is not set |
829 | # CONFIG_INPUT_JOYSTICK is not set | 834 | # CONFIG_INPUT_JOYSTICK is not set |
830 | # CONFIG_INPUT_TABLET is not set | 835 | # CONFIG_INPUT_TABLET is not set |
@@ -923,6 +928,8 @@ CONFIG_SSB_DRIVER_PCICORE=y | |||
923 | # CONFIG_MFD_CORE is not set | 928 | # CONFIG_MFD_CORE is not set |
924 | # CONFIG_MFD_SM501 is not set | 929 | # CONFIG_MFD_SM501 is not set |
925 | # CONFIG_HTC_PASIC3 is not set | 930 | # CONFIG_HTC_PASIC3 is not set |
931 | # CONFIG_MFD_TMIO is not set | ||
932 | # CONFIG_MFD_WM8400 is not set | ||
926 | 933 | ||
927 | # | 934 | # |
928 | # Multimedia devices | 935 | # Multimedia devices |
@@ -949,6 +956,7 @@ CONFIG_SSB_DRIVER_PCICORE=y | |||
949 | CONFIG_FB=y | 956 | CONFIG_FB=y |
950 | # CONFIG_FIRMWARE_EDID is not set | 957 | # CONFIG_FIRMWARE_EDID is not set |
951 | # CONFIG_FB_DDC is not set | 958 | # CONFIG_FB_DDC is not set |
959 | # CONFIG_FB_BOOT_VESA_SUPPORT is not set | ||
952 | CONFIG_FB_CFB_FILLRECT=m | 960 | CONFIG_FB_CFB_FILLRECT=m |
953 | CONFIG_FB_CFB_COPYAREA=m | 961 | CONFIG_FB_CFB_COPYAREA=m |
954 | CONFIG_FB_CFB_IMAGEBLIT=m | 962 | CONFIG_FB_CFB_IMAGEBLIT=m |
@@ -982,6 +990,7 @@ CONFIG_FB_CFB_IMAGEBLIT=m | |||
982 | # CONFIG_FB_S3 is not set | 990 | # CONFIG_FB_S3 is not set |
983 | # CONFIG_FB_SAVAGE is not set | 991 | # CONFIG_FB_SAVAGE is not set |
984 | # CONFIG_FB_SIS is not set | 992 | # CONFIG_FB_SIS is not set |
993 | # CONFIG_FB_VIA is not set | ||
985 | # CONFIG_FB_NEOMAGIC is not set | 994 | # CONFIG_FB_NEOMAGIC is not set |
986 | # CONFIG_FB_KYRO is not set | 995 | # CONFIG_FB_KYRO is not set |
987 | # CONFIG_FB_3DFX is not set | 996 | # CONFIG_FB_3DFX is not set |
@@ -993,6 +1002,7 @@ CONFIG_FB_CFB_IMAGEBLIT=m | |||
993 | # CONFIG_FB_CARMINE is not set | 1002 | # CONFIG_FB_CARMINE is not set |
994 | CONFIG_FB_SH_MOBILE_LCDC=m | 1003 | CONFIG_FB_SH_MOBILE_LCDC=m |
995 | # CONFIG_FB_VIRTUAL is not set | 1004 | # CONFIG_FB_VIRTUAL is not set |
1005 | # CONFIG_FB_METRONOME is not set | ||
996 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 1006 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
997 | 1007 | ||
998 | # | 1008 | # |
@@ -1022,6 +1032,7 @@ CONFIG_LOGO_SUPERH_MONO=y | |||
1022 | CONFIG_LOGO_SUPERH_VGA16=y | 1032 | CONFIG_LOGO_SUPERH_VGA16=y |
1023 | CONFIG_LOGO_SUPERH_CLUT224=y | 1033 | CONFIG_LOGO_SUPERH_CLUT224=y |
1024 | CONFIG_SOUND=y | 1034 | CONFIG_SOUND=y |
1035 | CONFIG_SOUND_OSS_CORE=y | ||
1025 | # CONFIG_SND is not set | 1036 | # CONFIG_SND is not set |
1026 | CONFIG_SOUND_PRIME=y | 1037 | CONFIG_SOUND_PRIME=y |
1027 | CONFIG_HID_SUPPORT=y | 1038 | CONFIG_HID_SUPPORT=y |
@@ -1033,9 +1044,36 @@ CONFIG_HID=y | |||
1033 | # USB Input Devices | 1044 | # USB Input Devices |
1034 | # | 1045 | # |
1035 | CONFIG_USB_HID=y | 1046 | CONFIG_USB_HID=y |
1036 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | 1047 | # CONFIG_HID_PID is not set |
1037 | # CONFIG_HID_FF is not set | ||
1038 | # CONFIG_USB_HIDDEV is not set | 1048 | # CONFIG_USB_HIDDEV is not set |
1049 | |||
1050 | # | ||
1051 | # Special HID drivers | ||
1052 | # | ||
1053 | CONFIG_HID_COMPAT=y | ||
1054 | CONFIG_HID_A4TECH=y | ||
1055 | CONFIG_HID_APPLE=y | ||
1056 | CONFIG_HID_BELKIN=y | ||
1057 | CONFIG_HID_BRIGHT=y | ||
1058 | CONFIG_HID_CHERRY=y | ||
1059 | CONFIG_HID_CHICONY=y | ||
1060 | CONFIG_HID_CYPRESS=y | ||
1061 | CONFIG_HID_DELL=y | ||
1062 | CONFIG_HID_EZKEY=y | ||
1063 | CONFIG_HID_GYRATION=y | ||
1064 | CONFIG_HID_LOGITECH=y | ||
1065 | # CONFIG_LOGITECH_FF is not set | ||
1066 | # CONFIG_LOGIRUMBLEPAD2_FF is not set | ||
1067 | CONFIG_HID_MICROSOFT=y | ||
1068 | CONFIG_HID_MONTEREY=y | ||
1069 | CONFIG_HID_PANTHERLORD=y | ||
1070 | # CONFIG_PANTHERLORD_FF is not set | ||
1071 | CONFIG_HID_PETALYNX=y | ||
1072 | CONFIG_HID_SAMSUNG=y | ||
1073 | CONFIG_HID_SONY=y | ||
1074 | CONFIG_HID_SUNPLUS=y | ||
1075 | CONFIG_THRUSTMASTER_FF=m | ||
1076 | CONFIG_ZEROPLUS_FF=m | ||
1039 | CONFIG_USB_SUPPORT=y | 1077 | CONFIG_USB_SUPPORT=y |
1040 | CONFIG_USB_ARCH_HAS_HCD=y | 1078 | CONFIG_USB_ARCH_HAS_HCD=y |
1041 | CONFIG_USB_ARCH_HAS_OHCI=y | 1079 | CONFIG_USB_ARCH_HAS_OHCI=y |
@@ -1053,6 +1091,7 @@ CONFIG_USB_DEVICEFS=y | |||
1053 | # CONFIG_USB_OTG is not set | 1091 | # CONFIG_USB_OTG is not set |
1054 | # CONFIG_USB_OTG_WHITELIST is not set | 1092 | # CONFIG_USB_OTG_WHITELIST is not set |
1055 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | 1093 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set |
1094 | CONFIG_USB_MON=y | ||
1056 | 1095 | ||
1057 | # | 1096 | # |
1058 | # USB Host Controller Drivers | 1097 | # USB Host Controller Drivers |
@@ -1074,6 +1113,7 @@ CONFIG_USB_EHCI_HCD=y | |||
1074 | # CONFIG_USB_ACM is not set | 1113 | # CONFIG_USB_ACM is not set |
1075 | CONFIG_USB_PRINTER=y | 1114 | CONFIG_USB_PRINTER=y |
1076 | # CONFIG_USB_WDM is not set | 1115 | # CONFIG_USB_WDM is not set |
1116 | # CONFIG_USB_TMC is not set | ||
1077 | 1117 | ||
1078 | # | 1118 | # |
1079 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 1119 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -1103,7 +1143,6 @@ CONFIG_USB_STORAGE=y | |||
1103 | # | 1143 | # |
1104 | # CONFIG_USB_MDC800 is not set | 1144 | # CONFIG_USB_MDC800 is not set |
1105 | # CONFIG_USB_MICROTEK is not set | 1145 | # CONFIG_USB_MICROTEK is not set |
1106 | CONFIG_USB_MON=y | ||
1107 | 1146 | ||
1108 | # | 1147 | # |
1109 | # USB port drivers | 1148 | # USB port drivers |
@@ -1117,7 +1156,7 @@ CONFIG_USB_MON=y | |||
1117 | # CONFIG_USB_EMI62 is not set | 1156 | # CONFIG_USB_EMI62 is not set |
1118 | # CONFIG_USB_EMI26 is not set | 1157 | # CONFIG_USB_EMI26 is not set |
1119 | # CONFIG_USB_ADUTUX is not set | 1158 | # CONFIG_USB_ADUTUX is not set |
1120 | # CONFIG_USB_AUERSWALD is not set | 1159 | # CONFIG_USB_SEVSEG is not set |
1121 | # CONFIG_USB_RIO500 is not set | 1160 | # CONFIG_USB_RIO500 is not set |
1122 | # CONFIG_USB_LEGOTOWER is not set | 1161 | # CONFIG_USB_LEGOTOWER is not set |
1123 | # CONFIG_USB_LCD is not set | 1162 | # CONFIG_USB_LCD is not set |
@@ -1135,6 +1174,7 @@ CONFIG_USB_MON=y | |||
1135 | # CONFIG_USB_IOWARRIOR is not set | 1174 | # CONFIG_USB_IOWARRIOR is not set |
1136 | # CONFIG_USB_TEST is not set | 1175 | # CONFIG_USB_TEST is not set |
1137 | # CONFIG_USB_ISIGHTFW is not set | 1176 | # CONFIG_USB_ISIGHTFW is not set |
1177 | # CONFIG_USB_VST is not set | ||
1138 | # CONFIG_USB_GADGET is not set | 1178 | # CONFIG_USB_GADGET is not set |
1139 | # CONFIG_MMC is not set | 1179 | # CONFIG_MMC is not set |
1140 | # CONFIG_MEMSTICK is not set | 1180 | # CONFIG_MEMSTICK is not set |
@@ -1155,6 +1195,7 @@ CONFIG_LEDS_CLASS=y | |||
1155 | # CONFIG_DMADEVICES is not set | 1195 | # CONFIG_DMADEVICES is not set |
1156 | # CONFIG_AUXDISPLAY is not set | 1196 | # CONFIG_AUXDISPLAY is not set |
1157 | # CONFIG_UIO is not set | 1197 | # CONFIG_UIO is not set |
1198 | # CONFIG_STAGING is not set | ||
1158 | 1199 | ||
1159 | # | 1200 | # |
1160 | # File systems | 1201 | # File systems |
@@ -1168,12 +1209,13 @@ CONFIG_EXT3_FS=y | |||
1168 | CONFIG_EXT3_FS_XATTR=y | 1209 | CONFIG_EXT3_FS_XATTR=y |
1169 | CONFIG_EXT3_FS_POSIX_ACL=y | 1210 | CONFIG_EXT3_FS_POSIX_ACL=y |
1170 | # CONFIG_EXT3_FS_SECURITY is not set | 1211 | # CONFIG_EXT3_FS_SECURITY is not set |
1171 | # CONFIG_EXT4DEV_FS is not set | 1212 | # CONFIG_EXT4_FS is not set |
1172 | CONFIG_JBD=y | 1213 | CONFIG_JBD=y |
1173 | CONFIG_FS_MBCACHE=y | 1214 | CONFIG_FS_MBCACHE=y |
1174 | # CONFIG_REISERFS_FS is not set | 1215 | # CONFIG_REISERFS_FS is not set |
1175 | # CONFIG_JFS_FS is not set | 1216 | # CONFIG_JFS_FS is not set |
1176 | CONFIG_FS_POSIX_ACL=y | 1217 | CONFIG_FS_POSIX_ACL=y |
1218 | CONFIG_FILE_LOCKING=y | ||
1177 | # CONFIG_XFS_FS is not set | 1219 | # CONFIG_XFS_FS is not set |
1178 | # CONFIG_OCFS2_FS is not set | 1220 | # CONFIG_OCFS2_FS is not set |
1179 | CONFIG_DNOTIFY=y | 1221 | CONFIG_DNOTIFY=y |
@@ -1211,6 +1253,7 @@ CONFIG_NTFS_RW=y | |||
1211 | CONFIG_PROC_FS=y | 1253 | CONFIG_PROC_FS=y |
1212 | # CONFIG_PROC_KCORE is not set | 1254 | # CONFIG_PROC_KCORE is not set |
1213 | CONFIG_PROC_SYSCTL=y | 1255 | CONFIG_PROC_SYSCTL=y |
1256 | CONFIG_PROC_PAGE_MONITOR=y | ||
1214 | CONFIG_SYSFS=y | 1257 | CONFIG_SYSFS=y |
1215 | CONFIG_TMPFS=y | 1258 | CONFIG_TMPFS=y |
1216 | CONFIG_TMPFS_POSIX_ACL=y | 1259 | CONFIG_TMPFS_POSIX_ACL=y |
@@ -1252,6 +1295,7 @@ CONFIG_LOCKD_V4=y | |||
1252 | CONFIG_EXPORTFS=y | 1295 | CONFIG_EXPORTFS=y |
1253 | CONFIG_NFS_COMMON=y | 1296 | CONFIG_NFS_COMMON=y |
1254 | CONFIG_SUNRPC=y | 1297 | CONFIG_SUNRPC=y |
1298 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
1255 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 1299 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
1256 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1300 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1257 | # CONFIG_SMB_FS is not set | 1301 | # CONFIG_SMB_FS is not set |
@@ -1349,10 +1393,23 @@ CONFIG_DEBUG_INFO=y | |||
1349 | # CONFIG_DEBUG_LIST is not set | 1393 | # CONFIG_DEBUG_LIST is not set |
1350 | # CONFIG_DEBUG_SG is not set | 1394 | # CONFIG_DEBUG_SG is not set |
1351 | # CONFIG_FRAME_POINTER is not set | 1395 | # CONFIG_FRAME_POINTER is not set |
1352 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
1353 | # CONFIG_RCU_TORTURE_TEST is not set | 1396 | # CONFIG_RCU_TORTURE_TEST is not set |
1397 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
1354 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1398 | # CONFIG_BACKTRACE_SELF_TEST is not set |
1399 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
1355 | # CONFIG_FAULT_INJECTION is not set | 1400 | # CONFIG_FAULT_INJECTION is not set |
1401 | # CONFIG_LATENCYTOP is not set | ||
1402 | CONFIG_SYSCTL_SYSCALL_CHECK=y | ||
1403 | CONFIG_NOP_TRACER=y | ||
1404 | CONFIG_HAVE_FTRACE=y | ||
1405 | # CONFIG_FTRACE is not set | ||
1406 | # CONFIG_IRQSOFF_TRACER is not set | ||
1407 | # CONFIG_PREEMPT_TRACER is not set | ||
1408 | # CONFIG_SCHED_TRACER is not set | ||
1409 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
1410 | # CONFIG_BOOT_TRACER is not set | ||
1411 | # CONFIG_STACK_TRACER is not set | ||
1412 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
1356 | # CONFIG_SAMPLES is not set | 1413 | # CONFIG_SAMPLES is not set |
1357 | CONFIG_SH_STANDARD_BIOS=y | 1414 | CONFIG_SH_STANDARD_BIOS=y |
1358 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 1415 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
@@ -1369,12 +1426,14 @@ CONFIG_DEBUG_STACKOVERFLOW=y | |||
1369 | # | 1426 | # |
1370 | # CONFIG_KEYS is not set | 1427 | # CONFIG_KEYS is not set |
1371 | # CONFIG_SECURITY is not set | 1428 | # CONFIG_SECURITY is not set |
1429 | # CONFIG_SECURITYFS is not set | ||
1372 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1430 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
1373 | CONFIG_CRYPTO=y | 1431 | CONFIG_CRYPTO=y |
1374 | 1432 | ||
1375 | # | 1433 | # |
1376 | # Crypto core or helper | 1434 | # Crypto core or helper |
1377 | # | 1435 | # |
1436 | # CONFIG_CRYPTO_FIPS is not set | ||
1378 | CONFIG_CRYPTO_ALGAPI=y | 1437 | CONFIG_CRYPTO_ALGAPI=y |
1379 | # CONFIG_CRYPTO_MANAGER is not set | 1438 | # CONFIG_CRYPTO_MANAGER is not set |
1380 | # CONFIG_CRYPTO_GF128MUL is not set | 1439 | # CONFIG_CRYPTO_GF128MUL is not set |
@@ -1448,6 +1507,11 @@ CONFIG_CRYPTO_DES=y | |||
1448 | # | 1507 | # |
1449 | # CONFIG_CRYPTO_DEFLATE is not set | 1508 | # CONFIG_CRYPTO_DEFLATE is not set |
1450 | # CONFIG_CRYPTO_LZO is not set | 1509 | # CONFIG_CRYPTO_LZO is not set |
1510 | |||
1511 | # | ||
1512 | # Random Number Generation | ||
1513 | # | ||
1514 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
1451 | CONFIG_CRYPTO_HW=y | 1515 | CONFIG_CRYPTO_HW=y |
1452 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 1516 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
1453 | 1517 | ||
@@ -1455,7 +1519,6 @@ CONFIG_CRYPTO_HW=y | |||
1455 | # Library routines | 1519 | # Library routines |
1456 | # | 1520 | # |
1457 | CONFIG_BITREVERSE=y | 1521 | CONFIG_BITREVERSE=y |
1458 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
1459 | # CONFIG_CRC_CCITT is not set | 1522 | # CONFIG_CRC_CCITT is not set |
1460 | # CONFIG_CRC16 is not set | 1523 | # CONFIG_CRC16 is not set |
1461 | CONFIG_CRC_T10DIF=y | 1524 | CONFIG_CRC_T10DIF=y |
diff --git a/arch/sh/configs/se7206_defconfig b/arch/sh/configs/se7206_defconfig index af15cbef12ba..25717ff26ca9 100644 --- a/arch/sh/configs/se7206_defconfig +++ b/arch/sh/configs/se7206_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.26 | 3 | # Linux kernel version: 2.6.27 |
4 | # Wed Jul 30 02:06:07 2008 | 4 | # Wed Oct 22 18:57:39 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -11,16 +11,17 @@ CONFIG_GENERIC_BUG=y | |||
11 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
12 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
13 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
14 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
15 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
16 | # CONFIG_GENERIC_TIME is not set | 17 | # CONFIG_GENERIC_TIME is not set |
17 | # CONFIG_GENERIC_CLOCKEVENTS is not set | 18 | # CONFIG_GENERIC_CLOCKEVENTS is not set |
18 | CONFIG_STACKTRACE_SUPPORT=y | 19 | CONFIG_STACKTRACE_SUPPORT=y |
19 | CONFIG_LOCKDEP_SUPPORT=y | 20 | CONFIG_LOCKDEP_SUPPORT=y |
21 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
20 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 22 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
21 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 23 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
22 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 24 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
23 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
24 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 25 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
25 | 26 | ||
26 | # | 27 | # |
@@ -45,6 +46,7 @@ CONFIG_LOG_BUF_SHIFT=14 | |||
45 | CONFIG_CGROUPS=y | 46 | CONFIG_CGROUPS=y |
46 | CONFIG_CGROUP_DEBUG=y | 47 | CONFIG_CGROUP_DEBUG=y |
47 | CONFIG_CGROUP_NS=y | 48 | CONFIG_CGROUP_NS=y |
49 | # CONFIG_CGROUP_FREEZER is not set | ||
48 | CONFIG_CGROUP_DEVICE=y | 50 | CONFIG_CGROUP_DEVICE=y |
49 | # CONFIG_GROUP_SCHED is not set | 51 | # CONFIG_GROUP_SCHED is not set |
50 | CONFIG_CGROUP_CPUACCT=y | 52 | CONFIG_CGROUP_CPUACCT=y |
@@ -80,7 +82,9 @@ CONFIG_EPOLL=y | |||
80 | CONFIG_SIGNALFD=y | 82 | CONFIG_SIGNALFD=y |
81 | CONFIG_TIMERFD=y | 83 | CONFIG_TIMERFD=y |
82 | CONFIG_EVENTFD=y | 84 | CONFIG_EVENTFD=y |
85 | CONFIG_AIO=y | ||
83 | CONFIG_VM_EVENT_COUNTERS=y | 86 | CONFIG_VM_EVENT_COUNTERS=y |
87 | CONFIG_PCI_QUIRKS=y | ||
84 | # CONFIG_SLAB is not set | 88 | # CONFIG_SLAB is not set |
85 | # CONFIG_SLUB is not set | 89 | # CONFIG_SLUB is not set |
86 | CONFIG_SLOB=y | 90 | CONFIG_SLOB=y |
@@ -88,14 +92,12 @@ CONFIG_PROFILING=y | |||
88 | # CONFIG_MARKERS is not set | 92 | # CONFIG_MARKERS is not set |
89 | CONFIG_OPROFILE=y | 93 | CONFIG_OPROFILE=y |
90 | CONFIG_HAVE_OPROFILE=y | 94 | CONFIG_HAVE_OPROFILE=y |
91 | # CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set | 95 | # CONFIG_KPROBES is not set |
92 | # CONFIG_HAVE_IOREMAP_PROT is not set | 96 | CONFIG_HAVE_KPROBES=y |
93 | # CONFIG_HAVE_KPROBES is not set | 97 | CONFIG_HAVE_KRETPROBES=y |
94 | # CONFIG_HAVE_KRETPROBES is not set | 98 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
95 | # CONFIG_HAVE_ARCH_TRACEHOOK is not set | ||
96 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
97 | # CONFIG_USE_GENERIC_SMP_HELPERS is not set | ||
98 | CONFIG_HAVE_CLK=y | 99 | CONFIG_HAVE_CLK=y |
100 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
99 | CONFIG_RT_MUTEXES=y | 101 | CONFIG_RT_MUTEXES=y |
100 | CONFIG_TINY_SHMEM=y | 102 | CONFIG_TINY_SHMEM=y |
101 | CONFIG_BASE_SMALL=0 | 103 | CONFIG_BASE_SMALL=0 |
@@ -126,6 +128,7 @@ CONFIG_IOSCHED_NOOP=y | |||
126 | CONFIG_DEFAULT_NOOP=y | 128 | CONFIG_DEFAULT_NOOP=y |
127 | CONFIG_DEFAULT_IOSCHED="noop" | 129 | CONFIG_DEFAULT_IOSCHED="noop" |
128 | # CONFIG_CLASSIC_RCU is not set | 130 | # CONFIG_CLASSIC_RCU is not set |
131 | # CONFIG_FREEZER is not set | ||
129 | 132 | ||
130 | # | 133 | # |
131 | # System type | 134 | # System type |
@@ -192,10 +195,10 @@ CONFIG_FLATMEM_MANUAL=y | |||
192 | CONFIG_FLATMEM=y | 195 | CONFIG_FLATMEM=y |
193 | CONFIG_FLAT_NODE_MEM_MAP=y | 196 | CONFIG_FLAT_NODE_MEM_MAP=y |
194 | CONFIG_SPARSEMEM_STATIC=y | 197 | CONFIG_SPARSEMEM_STATIC=y |
195 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
196 | CONFIG_PAGEFLAGS_EXTENDED=y | 198 | CONFIG_PAGEFLAGS_EXTENDED=y |
197 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 199 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
198 | # CONFIG_RESOURCES_64BIT is not set | 200 | # CONFIG_RESOURCES_64BIT is not set |
201 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
199 | CONFIG_ZONE_DMA_FLAG=0 | 202 | CONFIG_ZONE_DMA_FLAG=0 |
200 | CONFIG_NR_QUICK=2 | 203 | CONFIG_NR_QUICK=2 |
201 | 204 | ||
@@ -228,7 +231,6 @@ CONFIG_SH_CMT=y | |||
228 | CONFIG_SH_TIMER_IRQ=140 | 231 | CONFIG_SH_TIMER_IRQ=140 |
229 | CONFIG_SH_PCLK_FREQ=33333333 | 232 | CONFIG_SH_PCLK_FREQ=33333333 |
230 | CONFIG_SH_CLK_MD=6 | 233 | CONFIG_SH_CLK_MD=6 |
231 | # CONFIG_TICK_ONESHOT is not set | ||
232 | 234 | ||
233 | # | 235 | # |
234 | # CPU Frequency scaling | 236 | # CPU Frequency scaling |
@@ -275,6 +277,7 @@ CONFIG_HZ=1000 | |||
275 | # CONFIG_SCHED_HRTICK is not set | 277 | # CONFIG_SCHED_HRTICK is not set |
276 | CONFIG_KEXEC=y | 278 | CONFIG_KEXEC=y |
277 | # CONFIG_CRASH_DUMP is not set | 279 | # CONFIG_CRASH_DUMP is not set |
280 | # CONFIG_SECCOMP is not set | ||
278 | # CONFIG_PREEMPT_NONE is not set | 281 | # CONFIG_PREEMPT_NONE is not set |
279 | # CONFIG_PREEMPT_VOLUNTARY is not set | 282 | # CONFIG_PREEMPT_VOLUNTARY is not set |
280 | CONFIG_PREEMPT=y | 283 | CONFIG_PREEMPT=y |
@@ -307,11 +310,8 @@ CONFIG_BINFMT_ELF_FDPIC=y | |||
307 | CONFIG_BINFMT_FLAT=y | 310 | CONFIG_BINFMT_FLAT=y |
308 | CONFIG_BINFMT_ZFLAT=y | 311 | CONFIG_BINFMT_ZFLAT=y |
309 | CONFIG_BINFMT_SHARED_FLAT=y | 312 | CONFIG_BINFMT_SHARED_FLAT=y |
313 | # CONFIG_HAVE_AOUT is not set | ||
310 | CONFIG_BINFMT_MISC=y | 314 | CONFIG_BINFMT_MISC=y |
311 | |||
312 | # | ||
313 | # Networking | ||
314 | # | ||
315 | CONFIG_NET=y | 315 | CONFIG_NET=y |
316 | 316 | ||
317 | # | 317 | # |
@@ -361,6 +361,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
361 | # CONFIG_TIPC is not set | 361 | # CONFIG_TIPC is not set |
362 | # CONFIG_ATM is not set | 362 | # CONFIG_ATM is not set |
363 | # CONFIG_BRIDGE is not set | 363 | # CONFIG_BRIDGE is not set |
364 | # CONFIG_NET_DSA is not set | ||
364 | # CONFIG_VLAN_8021Q is not set | 365 | # CONFIG_VLAN_8021Q is not set |
365 | # CONFIG_DECNET is not set | 366 | # CONFIG_DECNET is not set |
366 | # CONFIG_LLC2 is not set | 367 | # CONFIG_LLC2 is not set |
@@ -381,11 +382,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
381 | # CONFIG_IRDA is not set | 382 | # CONFIG_IRDA is not set |
382 | # CONFIG_BT is not set | 383 | # CONFIG_BT is not set |
383 | # CONFIG_AF_RXRPC is not set | 384 | # CONFIG_AF_RXRPC is not set |
384 | 385 | # CONFIG_PHONET is not set | |
385 | # | 386 | CONFIG_WIRELESS=y |
386 | # Wireless | ||
387 | # | ||
388 | # CONFIG_CFG80211 is not set | 387 | # CONFIG_CFG80211 is not set |
388 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
389 | # CONFIG_WIRELESS_EXT is not set | 389 | # CONFIG_WIRELESS_EXT is not set |
390 | # CONFIG_MAC80211 is not set | 390 | # CONFIG_MAC80211 is not set |
391 | # CONFIG_IEEE80211 is not set | 391 | # CONFIG_IEEE80211 is not set |
@@ -461,7 +461,6 @@ CONFIG_MTD_PHYSMAP=y | |||
461 | CONFIG_MTD_PHYSMAP_START=0x20000000 | 461 | CONFIG_MTD_PHYSMAP_START=0x20000000 |
462 | CONFIG_MTD_PHYSMAP_LEN=0x01000000 | 462 | CONFIG_MTD_PHYSMAP_LEN=0x01000000 |
463 | CONFIG_MTD_PHYSMAP_BANKWIDTH=4 | 463 | CONFIG_MTD_PHYSMAP_BANKWIDTH=4 |
464 | # CONFIG_MTD_UCLINUX is not set | ||
465 | # CONFIG_MTD_PLATRAM is not set | 464 | # CONFIG_MTD_PLATRAM is not set |
466 | 465 | ||
467 | # | 466 | # |
@@ -531,6 +530,9 @@ CONFIG_SMC91X=y | |||
531 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 530 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
532 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 531 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
533 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 532 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
533 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
534 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
535 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
534 | # CONFIG_B44 is not set | 536 | # CONFIG_B44 is not set |
535 | # CONFIG_NETDEV_1000 is not set | 537 | # CONFIG_NETDEV_1000 is not set |
536 | # CONFIG_NETDEV_10000 is not set | 538 | # CONFIG_NETDEV_10000 is not set |
@@ -609,6 +611,8 @@ CONFIG_SSB_POSSIBLE=y | |||
609 | # CONFIG_MFD_CORE is not set | 611 | # CONFIG_MFD_CORE is not set |
610 | # CONFIG_MFD_SM501 is not set | 612 | # CONFIG_MFD_SM501 is not set |
611 | # CONFIG_HTC_PASIC3 is not set | 613 | # CONFIG_HTC_PASIC3 is not set |
614 | # CONFIG_MFD_TMIO is not set | ||
615 | # CONFIG_MFD_WM8400 is not set | ||
612 | 616 | ||
613 | # | 617 | # |
614 | # Multimedia devices | 618 | # Multimedia devices |
@@ -666,12 +670,15 @@ CONFIG_RTC_INTF_DEV=y | |||
666 | # | 670 | # |
667 | # Platform RTC drivers | 671 | # Platform RTC drivers |
668 | # | 672 | # |
673 | # CONFIG_RTC_DRV_DS1286 is not set | ||
669 | # CONFIG_RTC_DRV_DS1511 is not set | 674 | # CONFIG_RTC_DRV_DS1511 is not set |
670 | # CONFIG_RTC_DRV_DS1553 is not set | 675 | # CONFIG_RTC_DRV_DS1553 is not set |
671 | # CONFIG_RTC_DRV_DS1742 is not set | 676 | # CONFIG_RTC_DRV_DS1742 is not set |
672 | # CONFIG_RTC_DRV_STK17TA8 is not set | 677 | # CONFIG_RTC_DRV_STK17TA8 is not set |
673 | # CONFIG_RTC_DRV_M48T86 is not set | 678 | # CONFIG_RTC_DRV_M48T86 is not set |
679 | # CONFIG_RTC_DRV_M48T35 is not set | ||
674 | # CONFIG_RTC_DRV_M48T59 is not set | 680 | # CONFIG_RTC_DRV_M48T59 is not set |
681 | # CONFIG_RTC_DRV_BQ4802 is not set | ||
675 | # CONFIG_RTC_DRV_V3020 is not set | 682 | # CONFIG_RTC_DRV_V3020 is not set |
676 | 683 | ||
677 | # | 684 | # |
@@ -680,6 +687,7 @@ CONFIG_RTC_INTF_DEV=y | |||
680 | CONFIG_RTC_DRV_SH=y | 687 | CONFIG_RTC_DRV_SH=y |
681 | # CONFIG_DMADEVICES is not set | 688 | # CONFIG_DMADEVICES is not set |
682 | # CONFIG_UIO is not set | 689 | # CONFIG_UIO is not set |
690 | # CONFIG_STAGING is not set | ||
683 | 691 | ||
684 | # | 692 | # |
685 | # File systems | 693 | # File systems |
@@ -687,10 +695,11 @@ CONFIG_RTC_DRV_SH=y | |||
687 | CONFIG_EXT2_FS=y | 695 | CONFIG_EXT2_FS=y |
688 | # CONFIG_EXT2_FS_XATTR is not set | 696 | # CONFIG_EXT2_FS_XATTR is not set |
689 | # CONFIG_EXT3_FS is not set | 697 | # CONFIG_EXT3_FS is not set |
690 | # CONFIG_EXT4DEV_FS is not set | 698 | # CONFIG_EXT4_FS is not set |
691 | # CONFIG_REISERFS_FS is not set | 699 | # CONFIG_REISERFS_FS is not set |
692 | # CONFIG_JFS_FS is not set | 700 | # CONFIG_JFS_FS is not set |
693 | # CONFIG_FS_POSIX_ACL is not set | 701 | # CONFIG_FS_POSIX_ACL is not set |
702 | CONFIG_FILE_LOCKING=y | ||
694 | # CONFIG_XFS_FS is not set | 703 | # CONFIG_XFS_FS is not set |
695 | # CONFIG_OCFS2_FS is not set | 704 | # CONFIG_OCFS2_FS is not set |
696 | # CONFIG_DNOTIFY is not set | 705 | # CONFIG_DNOTIFY is not set |
@@ -755,6 +764,7 @@ CONFIG_LOCKD=y | |||
755 | CONFIG_LOCKD_V4=y | 764 | CONFIG_LOCKD_V4=y |
756 | CONFIG_NFS_COMMON=y | 765 | CONFIG_NFS_COMMON=y |
757 | CONFIG_SUNRPC=y | 766 | CONFIG_SUNRPC=y |
767 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
758 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 768 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
759 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 769 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
760 | # CONFIG_SMB_FS is not set | 770 | # CONFIG_SMB_FS is not set |
@@ -811,10 +821,19 @@ CONFIG_DEBUG_VM=y | |||
811 | CONFIG_DEBUG_LIST=y | 821 | CONFIG_DEBUG_LIST=y |
812 | # CONFIG_DEBUG_SG is not set | 822 | # CONFIG_DEBUG_SG is not set |
813 | CONFIG_FRAME_POINTER=y | 823 | CONFIG_FRAME_POINTER=y |
814 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
815 | # CONFIG_RCU_TORTURE_TEST is not set | 824 | # CONFIG_RCU_TORTURE_TEST is not set |
816 | # CONFIG_BACKTRACE_SELF_TEST is not set | 825 | # CONFIG_BACKTRACE_SELF_TEST is not set |
826 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
817 | # CONFIG_FAULT_INJECTION is not set | 827 | # CONFIG_FAULT_INJECTION is not set |
828 | # CONFIG_LATENCYTOP is not set | ||
829 | CONFIG_NOP_TRACER=y | ||
830 | CONFIG_HAVE_FTRACE=y | ||
831 | # CONFIG_FTRACE is not set | ||
832 | # CONFIG_SCHED_TRACER is not set | ||
833 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
834 | # CONFIG_BOOT_TRACER is not set | ||
835 | # CONFIG_STACK_TRACER is not set | ||
836 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
818 | # CONFIG_SAMPLES is not set | 837 | # CONFIG_SAMPLES is not set |
819 | # CONFIG_SH_STANDARD_BIOS is not set | 838 | # CONFIG_SH_STANDARD_BIOS is not set |
820 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 839 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
@@ -828,12 +847,14 @@ CONFIG_DEBUG_STACK_USAGE=y | |||
828 | # | 847 | # |
829 | # CONFIG_KEYS is not set | 848 | # CONFIG_KEYS is not set |
830 | # CONFIG_SECURITY is not set | 849 | # CONFIG_SECURITY is not set |
850 | # CONFIG_SECURITYFS is not set | ||
831 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 851 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
832 | CONFIG_CRYPTO=y | 852 | CONFIG_CRYPTO=y |
833 | 853 | ||
834 | # | 854 | # |
835 | # Crypto core or helper | 855 | # Crypto core or helper |
836 | # | 856 | # |
857 | # CONFIG_CRYPTO_FIPS is not set | ||
837 | CONFIG_CRYPTO_ALGAPI=y | 858 | CONFIG_CRYPTO_ALGAPI=y |
838 | # CONFIG_CRYPTO_MANAGER is not set | 859 | # CONFIG_CRYPTO_MANAGER is not set |
839 | # CONFIG_CRYPTO_GF128MUL is not set | 860 | # CONFIG_CRYPTO_GF128MUL is not set |
@@ -907,13 +928,17 @@ CONFIG_CRYPTO_ALGAPI=y | |||
907 | # | 928 | # |
908 | CONFIG_CRYPTO_DEFLATE=y | 929 | CONFIG_CRYPTO_DEFLATE=y |
909 | CONFIG_CRYPTO_LZO=y | 930 | CONFIG_CRYPTO_LZO=y |
931 | |||
932 | # | ||
933 | # Random Number Generation | ||
934 | # | ||
935 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
910 | # CONFIG_CRYPTO_HW is not set | 936 | # CONFIG_CRYPTO_HW is not set |
911 | 937 | ||
912 | # | 938 | # |
913 | # Library routines | 939 | # Library routines |
914 | # | 940 | # |
915 | CONFIG_BITREVERSE=y | 941 | CONFIG_BITREVERSE=y |
916 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
917 | CONFIG_CRC_CCITT=y | 942 | CONFIG_CRC_CCITT=y |
918 | CONFIG_CRC16=y | 943 | CONFIG_CRC16=y |
919 | # CONFIG_CRC_T10DIF is not set | 944 | # CONFIG_CRC_T10DIF is not set |
diff --git a/arch/sh/configs/se7343_defconfig b/arch/sh/configs/se7343_defconfig index 4e30b70377e2..075f42ed5b09 100644 --- a/arch/sh/configs/se7343_defconfig +++ b/arch/sh/configs/se7343_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.26 | 3 | # Linux kernel version: 2.6.27 |
4 | # Wed Jul 30 02:08:38 2008 | 4 | # Wed Oct 22 19:00:21 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -11,16 +11,17 @@ CONFIG_GENERIC_BUG=y | |||
11 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
12 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
13 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
14 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
15 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
16 | CONFIG_GENERIC_TIME=y | 17 | CONFIG_GENERIC_TIME=y |
17 | CONFIG_GENERIC_CLOCKEVENTS=y | 18 | CONFIG_GENERIC_CLOCKEVENTS=y |
18 | CONFIG_STACKTRACE_SUPPORT=y | 19 | CONFIG_STACKTRACE_SUPPORT=y |
19 | CONFIG_LOCKDEP_SUPPORT=y | 20 | CONFIG_LOCKDEP_SUPPORT=y |
21 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
20 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 22 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
21 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 23 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
22 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 24 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
23 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
24 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 25 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
25 | 26 | ||
26 | # | 27 | # |
@@ -71,22 +72,22 @@ CONFIG_SIGNALFD=y | |||
71 | CONFIG_TIMERFD=y | 72 | CONFIG_TIMERFD=y |
72 | CONFIG_EVENTFD=y | 73 | CONFIG_EVENTFD=y |
73 | # CONFIG_SHMEM is not set | 74 | # CONFIG_SHMEM is not set |
75 | CONFIG_AIO=y | ||
74 | CONFIG_VM_EVENT_COUNTERS=y | 76 | CONFIG_VM_EVENT_COUNTERS=y |
77 | CONFIG_PCI_QUIRKS=y | ||
75 | CONFIG_SLAB=y | 78 | CONFIG_SLAB=y |
76 | # CONFIG_SLUB is not set | 79 | # CONFIG_SLUB is not set |
77 | # CONFIG_SLOB is not set | 80 | # CONFIG_SLOB is not set |
78 | # CONFIG_PROFILING is not set | 81 | # CONFIG_PROFILING is not set |
79 | # CONFIG_MARKERS is not set | 82 | # CONFIG_MARKERS is not set |
80 | CONFIG_HAVE_OPROFILE=y | 83 | CONFIG_HAVE_OPROFILE=y |
81 | # CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set | 84 | # CONFIG_KPROBES is not set |
82 | # CONFIG_HAVE_IOREMAP_PROT is not set | 85 | CONFIG_HAVE_IOREMAP_PROT=y |
83 | # CONFIG_HAVE_KPROBES is not set | 86 | CONFIG_HAVE_KPROBES=y |
84 | # CONFIG_HAVE_KRETPROBES is not set | 87 | CONFIG_HAVE_KRETPROBES=y |
85 | # CONFIG_HAVE_ARCH_TRACEHOOK is not set | 88 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
86 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
87 | # CONFIG_USE_GENERIC_SMP_HELPERS is not set | ||
88 | CONFIG_HAVE_CLK=y | 89 | CONFIG_HAVE_CLK=y |
89 | CONFIG_PROC_PAGE_MONITOR=y | 90 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
90 | CONFIG_SLABINFO=y | 91 | CONFIG_SLABINFO=y |
91 | CONFIG_TINY_SHMEM=y | 92 | CONFIG_TINY_SHMEM=y |
92 | CONFIG_BASE_SMALL=0 | 93 | CONFIG_BASE_SMALL=0 |
@@ -117,6 +118,7 @@ CONFIG_DEFAULT_DEADLINE=y | |||
117 | # CONFIG_DEFAULT_NOOP is not set | 118 | # CONFIG_DEFAULT_NOOP is not set |
118 | CONFIG_DEFAULT_IOSCHED="deadline" | 119 | CONFIG_DEFAULT_IOSCHED="deadline" |
119 | CONFIG_CLASSIC_RCU=y | 120 | CONFIG_CLASSIC_RCU=y |
121 | # CONFIG_FREEZER is not set | ||
120 | 122 | ||
121 | # | 123 | # |
122 | # System type | 124 | # System type |
@@ -186,12 +188,13 @@ CONFIG_FLATMEM_MANUAL=y | |||
186 | CONFIG_FLATMEM=y | 188 | CONFIG_FLATMEM=y |
187 | CONFIG_FLAT_NODE_MEM_MAP=y | 189 | CONFIG_FLAT_NODE_MEM_MAP=y |
188 | CONFIG_SPARSEMEM_STATIC=y | 190 | CONFIG_SPARSEMEM_STATIC=y |
189 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
190 | CONFIG_PAGEFLAGS_EXTENDED=y | 191 | CONFIG_PAGEFLAGS_EXTENDED=y |
191 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 192 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
192 | # CONFIG_RESOURCES_64BIT is not set | 193 | # CONFIG_RESOURCES_64BIT is not set |
194 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
193 | CONFIG_ZONE_DMA_FLAG=0 | 195 | CONFIG_ZONE_DMA_FLAG=0 |
194 | CONFIG_NR_QUICK=2 | 196 | CONFIG_NR_QUICK=2 |
197 | CONFIG_UNEVICTABLE_LRU=y | ||
195 | 198 | ||
196 | # | 199 | # |
197 | # Cache configuration | 200 | # Cache configuration |
@@ -225,7 +228,6 @@ CONFIG_SH_7343_SOLUTION_ENGINE=y | |||
225 | CONFIG_SH_TMU=y | 228 | CONFIG_SH_TMU=y |
226 | CONFIG_SH_TIMER_IRQ=16 | 229 | CONFIG_SH_TIMER_IRQ=16 |
227 | CONFIG_SH_PCLK_FREQ=27000000 | 230 | CONFIG_SH_PCLK_FREQ=27000000 |
228 | # CONFIG_TICK_ONESHOT is not set | ||
229 | # CONFIG_NO_HZ is not set | 231 | # CONFIG_NO_HZ is not set |
230 | # CONFIG_HIGH_RES_TIMERS is not set | 232 | # CONFIG_HIGH_RES_TIMERS is not set |
231 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | 233 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y |
@@ -261,6 +263,7 @@ CONFIG_HZ=250 | |||
261 | # CONFIG_SCHED_HRTICK is not set | 263 | # CONFIG_SCHED_HRTICK is not set |
262 | # CONFIG_KEXEC is not set | 264 | # CONFIG_KEXEC is not set |
263 | # CONFIG_CRASH_DUMP is not set | 265 | # CONFIG_CRASH_DUMP is not set |
266 | # CONFIG_SECCOMP is not set | ||
264 | CONFIG_PREEMPT_NONE=y | 267 | CONFIG_PREEMPT_NONE=y |
265 | # CONFIG_PREEMPT_VOLUNTARY is not set | 268 | # CONFIG_PREEMPT_VOLUNTARY is not set |
266 | # CONFIG_PREEMPT is not set | 269 | # CONFIG_PREEMPT is not set |
@@ -284,11 +287,9 @@ CONFIG_BOOT_LINK_OFFSET=0x00800000 | |||
284 | # Executable file formats | 287 | # Executable file formats |
285 | # | 288 | # |
286 | CONFIG_BINFMT_ELF=y | 289 | CONFIG_BINFMT_ELF=y |
290 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
291 | # CONFIG_HAVE_AOUT is not set | ||
287 | # CONFIG_BINFMT_MISC is not set | 292 | # CONFIG_BINFMT_MISC is not set |
288 | |||
289 | # | ||
290 | # Networking | ||
291 | # | ||
292 | CONFIG_NET=y | 293 | CONFIG_NET=y |
293 | 294 | ||
294 | # | 295 | # |
@@ -334,6 +335,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
334 | # CONFIG_TIPC is not set | 335 | # CONFIG_TIPC is not set |
335 | # CONFIG_ATM is not set | 336 | # CONFIG_ATM is not set |
336 | # CONFIG_BRIDGE is not set | 337 | # CONFIG_BRIDGE is not set |
338 | # CONFIG_NET_DSA is not set | ||
337 | # CONFIG_VLAN_8021Q is not set | 339 | # CONFIG_VLAN_8021Q is not set |
338 | # CONFIG_DECNET is not set | 340 | # CONFIG_DECNET is not set |
339 | # CONFIG_LLC2 is not set | 341 | # CONFIG_LLC2 is not set |
@@ -354,11 +356,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
354 | # CONFIG_IRDA is not set | 356 | # CONFIG_IRDA is not set |
355 | # CONFIG_BT is not set | 357 | # CONFIG_BT is not set |
356 | # CONFIG_AF_RXRPC is not set | 358 | # CONFIG_AF_RXRPC is not set |
357 | 359 | # CONFIG_PHONET is not set | |
358 | # | 360 | CONFIG_WIRELESS=y |
359 | # Wireless | ||
360 | # | ||
361 | # CONFIG_CFG80211 is not set | 361 | # CONFIG_CFG80211 is not set |
362 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
362 | # CONFIG_WIRELESS_EXT is not set | 363 | # CONFIG_WIRELESS_EXT is not set |
363 | # CONFIG_MAC80211 is not set | 364 | # CONFIG_MAC80211 is not set |
364 | # CONFIG_IEEE80211 is not set | 365 | # CONFIG_IEEE80211 is not set |
@@ -529,6 +530,9 @@ CONFIG_SMC91X=y | |||
529 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 530 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
530 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 531 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
531 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 532 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
533 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
534 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
535 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
532 | # CONFIG_B44 is not set | 536 | # CONFIG_B44 is not set |
533 | CONFIG_NETDEV_1000=y | 537 | CONFIG_NETDEV_1000=y |
534 | CONFIG_NETDEV_10000=y | 538 | CONFIG_NETDEV_10000=y |
@@ -632,6 +636,8 @@ CONFIG_SSB_POSSIBLE=y | |||
632 | # CONFIG_MFD_CORE is not set | 636 | # CONFIG_MFD_CORE is not set |
633 | # CONFIG_MFD_SM501 is not set | 637 | # CONFIG_MFD_SM501 is not set |
634 | # CONFIG_HTC_PASIC3 is not set | 638 | # CONFIG_HTC_PASIC3 is not set |
639 | # CONFIG_MFD_TMIO is not set | ||
640 | # CONFIG_MFD_WM8400 is not set | ||
635 | 641 | ||
636 | # | 642 | # |
637 | # Multimedia devices | 643 | # Multimedia devices |
@@ -655,11 +661,11 @@ CONFIG_VIDEO_V4L2=y | |||
655 | CONFIG_VIDEO_V4L1=y | 661 | CONFIG_VIDEO_V4L1=y |
656 | CONFIG_VIDEO_CAPTURE_DRIVERS=y | 662 | CONFIG_VIDEO_CAPTURE_DRIVERS=y |
657 | # CONFIG_VIDEO_ADV_DEBUG is not set | 663 | # CONFIG_VIDEO_ADV_DEBUG is not set |
664 | # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set | ||
658 | CONFIG_VIDEO_HELPER_CHIPS_AUTO=y | 665 | CONFIG_VIDEO_HELPER_CHIPS_AUTO=y |
659 | # CONFIG_VIDEO_VIVI is not set | 666 | # CONFIG_VIDEO_VIVI is not set |
660 | # CONFIG_VIDEO_CPIA is not set | 667 | # CONFIG_VIDEO_CPIA is not set |
661 | # CONFIG_SOC_CAMERA is not set | 668 | # CONFIG_SOC_CAMERA is not set |
662 | # CONFIG_VIDEO_SH_MOBILE_CEU is not set | ||
663 | CONFIG_RADIO_ADAPTERS=y | 669 | CONFIG_RADIO_ADAPTERS=y |
664 | # CONFIG_DAB is not set | 670 | # CONFIG_DAB is not set |
665 | 671 | ||
@@ -671,6 +677,7 @@ CONFIG_RADIO_ADAPTERS=y | |||
671 | CONFIG_FB=y | 677 | CONFIG_FB=y |
672 | CONFIG_FIRMWARE_EDID=y | 678 | CONFIG_FIRMWARE_EDID=y |
673 | # CONFIG_FB_DDC is not set | 679 | # CONFIG_FB_DDC is not set |
680 | # CONFIG_FB_BOOT_VESA_SUPPORT is not set | ||
674 | CONFIG_FB_CFB_FILLRECT=m | 681 | CONFIG_FB_CFB_FILLRECT=m |
675 | CONFIG_FB_CFB_COPYAREA=m | 682 | CONFIG_FB_CFB_COPYAREA=m |
676 | CONFIG_FB_CFB_IMAGEBLIT=m | 683 | CONFIG_FB_CFB_IMAGEBLIT=m |
@@ -692,6 +699,7 @@ CONFIG_FB_CFB_IMAGEBLIT=m | |||
692 | # CONFIG_FB_S1D13XXX is not set | 699 | # CONFIG_FB_S1D13XXX is not set |
693 | CONFIG_FB_SH_MOBILE_LCDC=m | 700 | CONFIG_FB_SH_MOBILE_LCDC=m |
694 | # CONFIG_FB_VIRTUAL is not set | 701 | # CONFIG_FB_VIRTUAL is not set |
702 | # CONFIG_FB_METRONOME is not set | ||
695 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 703 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
696 | 704 | ||
697 | # | 705 | # |
@@ -706,6 +714,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
706 | # CONFIG_FRAMEBUFFER_CONSOLE is not set | 714 | # CONFIG_FRAMEBUFFER_CONSOLE is not set |
707 | # CONFIG_LOGO is not set | 715 | # CONFIG_LOGO is not set |
708 | CONFIG_SOUND=y | 716 | CONFIG_SOUND=y |
717 | CONFIG_SOUND_OSS_CORE=y | ||
709 | CONFIG_SND=y | 718 | CONFIG_SND=y |
710 | CONFIG_SND_TIMER=y | 719 | CONFIG_SND_TIMER=y |
711 | CONFIG_SND_PCM=y | 720 | CONFIG_SND_PCM=y |
@@ -734,6 +743,12 @@ CONFIG_HID_SUPPORT=y | |||
734 | CONFIG_HID=y | 743 | CONFIG_HID=y |
735 | # CONFIG_HID_DEBUG is not set | 744 | # CONFIG_HID_DEBUG is not set |
736 | # CONFIG_HIDRAW is not set | 745 | # CONFIG_HIDRAW is not set |
746 | # CONFIG_HID_PID is not set | ||
747 | |||
748 | # | ||
749 | # Special HID drivers | ||
750 | # | ||
751 | CONFIG_HID_COMPAT=y | ||
737 | # CONFIG_USB_SUPPORT is not set | 752 | # CONFIG_USB_SUPPORT is not set |
738 | # CONFIG_MMC is not set | 753 | # CONFIG_MMC is not set |
739 | # CONFIG_MEMSTICK is not set | 754 | # CONFIG_MEMSTICK is not set |
@@ -742,6 +757,7 @@ CONFIG_HID=y | |||
742 | # CONFIG_RTC_CLASS is not set | 757 | # CONFIG_RTC_CLASS is not set |
743 | # CONFIG_DMADEVICES is not set | 758 | # CONFIG_DMADEVICES is not set |
744 | # CONFIG_UIO is not set | 759 | # CONFIG_UIO is not set |
760 | # CONFIG_STAGING is not set | ||
745 | 761 | ||
746 | # | 762 | # |
747 | # File systems | 763 | # File systems |
@@ -753,12 +769,13 @@ CONFIG_EXT3_FS=y | |||
753 | CONFIG_EXT3_FS_XATTR=y | 769 | CONFIG_EXT3_FS_XATTR=y |
754 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 770 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
755 | # CONFIG_EXT3_FS_SECURITY is not set | 771 | # CONFIG_EXT3_FS_SECURITY is not set |
756 | # CONFIG_EXT4DEV_FS is not set | 772 | # CONFIG_EXT4_FS is not set |
757 | CONFIG_JBD=y | 773 | CONFIG_JBD=y |
758 | CONFIG_FS_MBCACHE=y | 774 | CONFIG_FS_MBCACHE=y |
759 | # CONFIG_REISERFS_FS is not set | 775 | # CONFIG_REISERFS_FS is not set |
760 | # CONFIG_JFS_FS is not set | 776 | # CONFIG_JFS_FS is not set |
761 | # CONFIG_FS_POSIX_ACL is not set | 777 | # CONFIG_FS_POSIX_ACL is not set |
778 | CONFIG_FILE_LOCKING=y | ||
762 | # CONFIG_XFS_FS is not set | 779 | # CONFIG_XFS_FS is not set |
763 | # CONFIG_OCFS2_FS is not set | 780 | # CONFIG_OCFS2_FS is not set |
764 | # CONFIG_DNOTIFY is not set | 781 | # CONFIG_DNOTIFY is not set |
@@ -787,6 +804,7 @@ CONFIG_FS_MBCACHE=y | |||
787 | CONFIG_PROC_FS=y | 804 | CONFIG_PROC_FS=y |
788 | # CONFIG_PROC_KCORE is not set | 805 | # CONFIG_PROC_KCORE is not set |
789 | CONFIG_PROC_SYSCTL=y | 806 | CONFIG_PROC_SYSCTL=y |
807 | CONFIG_PROC_PAGE_MONITOR=y | ||
790 | CONFIG_SYSFS=y | 808 | CONFIG_SYSFS=y |
791 | CONFIG_TMPFS=y | 809 | CONFIG_TMPFS=y |
792 | # CONFIG_TMPFS_POSIX_ACL is not set | 810 | # CONFIG_TMPFS_POSIX_ACL is not set |
@@ -837,6 +855,7 @@ CONFIG_LOCKD_V4=y | |||
837 | CONFIG_EXPORTFS=y | 855 | CONFIG_EXPORTFS=y |
838 | CONFIG_NFS_COMMON=y | 856 | CONFIG_NFS_COMMON=y |
839 | CONFIG_SUNRPC=y | 857 | CONFIG_SUNRPC=y |
858 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
840 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 859 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
841 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 860 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
842 | # CONFIG_SMB_FS is not set | 861 | # CONFIG_SMB_FS is not set |
@@ -868,6 +887,11 @@ CONFIG_FRAME_WARN=1024 | |||
868 | # CONFIG_DEBUG_KERNEL is not set | 887 | # CONFIG_DEBUG_KERNEL is not set |
869 | # CONFIG_DEBUG_BUGVERBOSE is not set | 888 | # CONFIG_DEBUG_BUGVERBOSE is not set |
870 | # CONFIG_DEBUG_MEMORY_INIT is not set | 889 | # CONFIG_DEBUG_MEMORY_INIT is not set |
890 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
891 | # CONFIG_LATENCYTOP is not set | ||
892 | CONFIG_NOP_TRACER=y | ||
893 | CONFIG_HAVE_FTRACE=y | ||
894 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
871 | # CONFIG_SAMPLES is not set | 895 | # CONFIG_SAMPLES is not set |
872 | # CONFIG_SH_STANDARD_BIOS is not set | 896 | # CONFIG_SH_STANDARD_BIOS is not set |
873 | CONFIG_EARLY_SCIF_CONSOLE=y | 897 | CONFIG_EARLY_SCIF_CONSOLE=y |
@@ -880,12 +904,14 @@ CONFIG_EARLY_PRINTK=y | |||
880 | # | 904 | # |
881 | # CONFIG_KEYS is not set | 905 | # CONFIG_KEYS is not set |
882 | # CONFIG_SECURITY is not set | 906 | # CONFIG_SECURITY is not set |
907 | # CONFIG_SECURITYFS is not set | ||
883 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 908 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
884 | CONFIG_CRYPTO=y | 909 | CONFIG_CRYPTO=y |
885 | 910 | ||
886 | # | 911 | # |
887 | # Crypto core or helper | 912 | # Crypto core or helper |
888 | # | 913 | # |
914 | # CONFIG_CRYPTO_FIPS is not set | ||
889 | # CONFIG_CRYPTO_MANAGER is not set | 915 | # CONFIG_CRYPTO_MANAGER is not set |
890 | # CONFIG_CRYPTO_GF128MUL is not set | 916 | # CONFIG_CRYPTO_GF128MUL is not set |
891 | # CONFIG_CRYPTO_NULL is not set | 917 | # CONFIG_CRYPTO_NULL is not set |
@@ -958,13 +984,17 @@ CONFIG_CRYPTO=y | |||
958 | # | 984 | # |
959 | # CONFIG_CRYPTO_DEFLATE is not set | 985 | # CONFIG_CRYPTO_DEFLATE is not set |
960 | # CONFIG_CRYPTO_LZO is not set | 986 | # CONFIG_CRYPTO_LZO is not set |
987 | |||
988 | # | ||
989 | # Random Number Generation | ||
990 | # | ||
991 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
961 | CONFIG_CRYPTO_HW=y | 992 | CONFIG_CRYPTO_HW=y |
962 | 993 | ||
963 | # | 994 | # |
964 | # Library routines | 995 | # Library routines |
965 | # | 996 | # |
966 | CONFIG_BITREVERSE=y | 997 | CONFIG_BITREVERSE=y |
967 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
968 | # CONFIG_CRC_CCITT is not set | 998 | # CONFIG_CRC_CCITT is not set |
969 | # CONFIG_CRC16 is not set | 999 | # CONFIG_CRC16 is not set |
970 | # CONFIG_CRC_T10DIF is not set | 1000 | # CONFIG_CRC_T10DIF is not set |
diff --git a/arch/sh/configs/se7619_defconfig b/arch/sh/configs/se7619_defconfig index 80c1c72edb56..db9cacd7c4e7 100644 --- a/arch/sh/configs/se7619_defconfig +++ b/arch/sh/configs/se7619_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.26 | 3 | # Linux kernel version: 2.6.27 |
4 | # Wed Jul 30 02:12:32 2008 | 4 | # Wed Oct 22 19:03:29 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -11,16 +11,17 @@ CONFIG_GENERIC_BUG=y | |||
11 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
12 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
13 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
14 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
15 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
16 | # CONFIG_GENERIC_TIME is not set | 17 | # CONFIG_GENERIC_TIME is not set |
17 | # CONFIG_GENERIC_CLOCKEVENTS is not set | 18 | # CONFIG_GENERIC_CLOCKEVENTS is not set |
18 | CONFIG_STACKTRACE_SUPPORT=y | 19 | CONFIG_STACKTRACE_SUPPORT=y |
19 | CONFIG_LOCKDEP_SUPPORT=y | 20 | CONFIG_LOCKDEP_SUPPORT=y |
21 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
20 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 22 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
21 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 23 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
22 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 24 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
23 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
24 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 25 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
25 | 26 | ||
26 | # | 27 | # |
@@ -58,21 +59,20 @@ CONFIG_ANON_INODES=y | |||
58 | CONFIG_SIGNALFD=y | 59 | CONFIG_SIGNALFD=y |
59 | CONFIG_TIMERFD=y | 60 | CONFIG_TIMERFD=y |
60 | CONFIG_EVENTFD=y | 61 | CONFIG_EVENTFD=y |
62 | CONFIG_AIO=y | ||
61 | # CONFIG_VM_EVENT_COUNTERS is not set | 63 | # CONFIG_VM_EVENT_COUNTERS is not set |
64 | CONFIG_PCI_QUIRKS=y | ||
62 | CONFIG_SLAB=y | 65 | CONFIG_SLAB=y |
63 | # CONFIG_SLUB is not set | 66 | # CONFIG_SLUB is not set |
64 | # CONFIG_SLOB is not set | 67 | # CONFIG_SLOB is not set |
65 | # CONFIG_PROFILING is not set | 68 | # CONFIG_PROFILING is not set |
66 | # CONFIG_MARKERS is not set | 69 | # CONFIG_MARKERS is not set |
67 | CONFIG_HAVE_OPROFILE=y | 70 | CONFIG_HAVE_OPROFILE=y |
68 | # CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set | 71 | CONFIG_HAVE_KPROBES=y |
69 | # CONFIG_HAVE_IOREMAP_PROT is not set | 72 | CONFIG_HAVE_KRETPROBES=y |
70 | # CONFIG_HAVE_KPROBES is not set | 73 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
71 | # CONFIG_HAVE_KRETPROBES is not set | ||
72 | # CONFIG_HAVE_ARCH_TRACEHOOK is not set | ||
73 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
74 | # CONFIG_USE_GENERIC_SMP_HELPERS is not set | ||
75 | CONFIG_HAVE_CLK=y | 74 | CONFIG_HAVE_CLK=y |
75 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
76 | CONFIG_SLABINFO=y | 76 | CONFIG_SLABINFO=y |
77 | CONFIG_TINY_SHMEM=y | 77 | CONFIG_TINY_SHMEM=y |
78 | CONFIG_BASE_SMALL=1 | 78 | CONFIG_BASE_SMALL=1 |
@@ -96,6 +96,7 @@ CONFIG_IOSCHED_NOOP=y | |||
96 | CONFIG_DEFAULT_NOOP=y | 96 | CONFIG_DEFAULT_NOOP=y |
97 | CONFIG_DEFAULT_IOSCHED="noop" | 97 | CONFIG_DEFAULT_IOSCHED="noop" |
98 | CONFIG_CLASSIC_RCU=y | 98 | CONFIG_CLASSIC_RCU=y |
99 | # CONFIG_FREEZER is not set | ||
99 | 100 | ||
100 | # | 101 | # |
101 | # System type | 102 | # System type |
@@ -161,10 +162,10 @@ CONFIG_FLATMEM_MANUAL=y | |||
161 | CONFIG_FLATMEM=y | 162 | CONFIG_FLATMEM=y |
162 | CONFIG_FLAT_NODE_MEM_MAP=y | 163 | CONFIG_FLAT_NODE_MEM_MAP=y |
163 | CONFIG_SPARSEMEM_STATIC=y | 164 | CONFIG_SPARSEMEM_STATIC=y |
164 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
165 | CONFIG_PAGEFLAGS_EXTENDED=y | 165 | CONFIG_PAGEFLAGS_EXTENDED=y |
166 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 166 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
167 | # CONFIG_RESOURCES_64BIT is not set | 167 | # CONFIG_RESOURCES_64BIT is not set |
168 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
168 | CONFIG_ZONE_DMA_FLAG=0 | 169 | CONFIG_ZONE_DMA_FLAG=0 |
169 | CONFIG_NR_QUICK=2 | 170 | CONFIG_NR_QUICK=2 |
170 | 171 | ||
@@ -196,7 +197,6 @@ CONFIG_SH_CMT=y | |||
196 | CONFIG_SH_TIMER_IRQ=86 | 197 | CONFIG_SH_TIMER_IRQ=86 |
197 | CONFIG_SH_PCLK_FREQ=31250000 | 198 | CONFIG_SH_PCLK_FREQ=31250000 |
198 | CONFIG_SH_CLK_MD=5 | 199 | CONFIG_SH_CLK_MD=5 |
199 | # CONFIG_TICK_ONESHOT is not set | ||
200 | 200 | ||
201 | # | 201 | # |
202 | # CPU Frequency scaling | 202 | # CPU Frequency scaling |
@@ -228,6 +228,7 @@ CONFIG_HZ=100 | |||
228 | # CONFIG_SCHED_HRTICK is not set | 228 | # CONFIG_SCHED_HRTICK is not set |
229 | # CONFIG_KEXEC is not set | 229 | # CONFIG_KEXEC is not set |
230 | # CONFIG_CRASH_DUMP is not set | 230 | # CONFIG_CRASH_DUMP is not set |
231 | # CONFIG_SECCOMP is not set | ||
231 | CONFIG_PREEMPT_NONE=y | 232 | CONFIG_PREEMPT_NONE=y |
232 | # CONFIG_PREEMPT_VOLUNTARY is not set | 233 | # CONFIG_PREEMPT_VOLUNTARY is not set |
233 | # CONFIG_PREEMPT is not set | 234 | # CONFIG_PREEMPT is not set |
@@ -253,11 +254,8 @@ CONFIG_BINFMT_ELF_FDPIC=y | |||
253 | CONFIG_BINFMT_FLAT=y | 254 | CONFIG_BINFMT_FLAT=y |
254 | CONFIG_BINFMT_ZFLAT=y | 255 | CONFIG_BINFMT_ZFLAT=y |
255 | # CONFIG_BINFMT_SHARED_FLAT is not set | 256 | # CONFIG_BINFMT_SHARED_FLAT is not set |
257 | # CONFIG_HAVE_AOUT is not set | ||
256 | # CONFIG_BINFMT_MISC is not set | 258 | # CONFIG_BINFMT_MISC is not set |
257 | |||
258 | # | ||
259 | # Networking | ||
260 | # | ||
261 | # CONFIG_NET is not set | 259 | # CONFIG_NET is not set |
262 | 260 | ||
263 | # | 261 | # |
@@ -328,7 +326,6 @@ CONFIG_MTD_PHYSMAP_START=0xa0000000 | |||
328 | CONFIG_MTD_PHYSMAP_LEN=0x01000000 | 326 | CONFIG_MTD_PHYSMAP_LEN=0x01000000 |
329 | CONFIG_MTD_PHYSMAP_BANKWIDTH=2 | 327 | CONFIG_MTD_PHYSMAP_BANKWIDTH=2 |
330 | # CONFIG_MTD_SOLUTIONENGINE is not set | 328 | # CONFIG_MTD_SOLUTIONENGINE is not set |
331 | # CONFIG_MTD_UCLINUX is not set | ||
332 | # CONFIG_MTD_PLATRAM is not set | 329 | # CONFIG_MTD_PLATRAM is not set |
333 | 330 | ||
334 | # | 331 | # |
@@ -455,6 +452,8 @@ CONFIG_SSB_POSSIBLE=y | |||
455 | # CONFIG_MFD_CORE is not set | 452 | # CONFIG_MFD_CORE is not set |
456 | # CONFIG_MFD_SM501 is not set | 453 | # CONFIG_MFD_SM501 is not set |
457 | # CONFIG_HTC_PASIC3 is not set | 454 | # CONFIG_HTC_PASIC3 is not set |
455 | # CONFIG_MFD_TMIO is not set | ||
456 | # CONFIG_MFD_WM8400 is not set | ||
458 | 457 | ||
459 | # | 458 | # |
460 | # Multimedia devices | 459 | # Multimedia devices |
@@ -488,6 +487,12 @@ CONFIG_HID_SUPPORT=y | |||
488 | CONFIG_HID=y | 487 | CONFIG_HID=y |
489 | # CONFIG_HID_DEBUG is not set | 488 | # CONFIG_HID_DEBUG is not set |
490 | # CONFIG_HIDRAW is not set | 489 | # CONFIG_HIDRAW is not set |
490 | # CONFIG_HID_PID is not set | ||
491 | |||
492 | # | ||
493 | # Special HID drivers | ||
494 | # | ||
495 | CONFIG_HID_COMPAT=y | ||
491 | CONFIG_USB_SUPPORT=y | 496 | CONFIG_USB_SUPPORT=y |
492 | CONFIG_USB_ARCH_HAS_HCD=y | 497 | CONFIG_USB_ARCH_HAS_HCD=y |
493 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 498 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
@@ -497,6 +502,10 @@ CONFIG_USB_ARCH_HAS_HCD=y | |||
497 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | 502 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set |
498 | 503 | ||
499 | # | 504 | # |
505 | # Enable Host or Gadget support to see Inventra options | ||
506 | # | ||
507 | |||
508 | # | ||
500 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 509 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
501 | # | 510 | # |
502 | # CONFIG_USB_GADGET is not set | 511 | # CONFIG_USB_GADGET is not set |
@@ -507,16 +516,18 @@ CONFIG_USB_ARCH_HAS_HCD=y | |||
507 | # CONFIG_RTC_CLASS is not set | 516 | # CONFIG_RTC_CLASS is not set |
508 | # CONFIG_DMADEVICES is not set | 517 | # CONFIG_DMADEVICES is not set |
509 | # CONFIG_UIO is not set | 518 | # CONFIG_UIO is not set |
519 | # CONFIG_STAGING is not set | ||
510 | 520 | ||
511 | # | 521 | # |
512 | # File systems | 522 | # File systems |
513 | # | 523 | # |
514 | # CONFIG_EXT2_FS is not set | 524 | # CONFIG_EXT2_FS is not set |
515 | # CONFIG_EXT3_FS is not set | 525 | # CONFIG_EXT3_FS is not set |
516 | # CONFIG_EXT4DEV_FS is not set | 526 | # CONFIG_EXT4_FS is not set |
517 | # CONFIG_REISERFS_FS is not set | 527 | # CONFIG_REISERFS_FS is not set |
518 | # CONFIG_JFS_FS is not set | 528 | # CONFIG_JFS_FS is not set |
519 | # CONFIG_FS_POSIX_ACL is not set | 529 | # CONFIG_FS_POSIX_ACL is not set |
530 | CONFIG_FILE_LOCKING=y | ||
520 | # CONFIG_XFS_FS is not set | 531 | # CONFIG_XFS_FS is not set |
521 | # CONFIG_DNOTIFY is not set | 532 | # CONFIG_DNOTIFY is not set |
522 | # CONFIG_INOTIFY is not set | 533 | # CONFIG_INOTIFY is not set |
@@ -589,6 +600,11 @@ CONFIG_FRAME_WARN=1024 | |||
589 | # CONFIG_DEBUG_KERNEL is not set | 600 | # CONFIG_DEBUG_KERNEL is not set |
590 | # CONFIG_DEBUG_BUGVERBOSE is not set | 601 | # CONFIG_DEBUG_BUGVERBOSE is not set |
591 | # CONFIG_DEBUG_MEMORY_INIT is not set | 602 | # CONFIG_DEBUG_MEMORY_INIT is not set |
603 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
604 | # CONFIG_LATENCYTOP is not set | ||
605 | CONFIG_NOP_TRACER=y | ||
606 | CONFIG_HAVE_FTRACE=y | ||
607 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
592 | # CONFIG_SAMPLES is not set | 608 | # CONFIG_SAMPLES is not set |
593 | # CONFIG_SH_STANDARD_BIOS is not set | 609 | # CONFIG_SH_STANDARD_BIOS is not set |
594 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 610 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
@@ -597,6 +613,7 @@ CONFIG_FRAME_WARN=1024 | |||
597 | # Security options | 613 | # Security options |
598 | # | 614 | # |
599 | # CONFIG_KEYS is not set | 615 | # CONFIG_KEYS is not set |
616 | # CONFIG_SECURITYFS is not set | ||
600 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 617 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
601 | # CONFIG_CRYPTO is not set | 618 | # CONFIG_CRYPTO is not set |
602 | 619 | ||
@@ -604,7 +621,6 @@ CONFIG_FRAME_WARN=1024 | |||
604 | # Library routines | 621 | # Library routines |
605 | # | 622 | # |
606 | CONFIG_BITREVERSE=y | 623 | CONFIG_BITREVERSE=y |
607 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
608 | # CONFIG_CRC_CCITT is not set | 624 | # CONFIG_CRC_CCITT is not set |
609 | # CONFIG_CRC16 is not set | 625 | # CONFIG_CRC16 is not set |
610 | # CONFIG_CRC_T10DIF is not set | 626 | # CONFIG_CRC_T10DIF is not set |
diff --git a/arch/sh/configs/se7705_defconfig b/arch/sh/configs/se7705_defconfig index 490dcbc2ce33..d88190fdd7c1 100644 --- a/arch/sh/configs/se7705_defconfig +++ b/arch/sh/configs/se7705_defconfig | |||
@@ -1,34 +1,36 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.21-rc5 | 3 | # Linux kernel version: 2.6.27 |
4 | # Thu Apr 26 09:16:31 2007 | 4 | # Wed Oct 22 19:04:52 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | ||
8 | CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig" | ||
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
8 | CONFIG_GENERIC_BUG=y | 10 | CONFIG_GENERIC_BUG=y |
9 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
10 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
11 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
12 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
13 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
14 | # CONFIG_GENERIC_TIME is not set | 17 | CONFIG_GENERIC_TIME=y |
18 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
15 | CONFIG_STACKTRACE_SUPPORT=y | 19 | CONFIG_STACKTRACE_SUPPORT=y |
16 | CONFIG_LOCKDEP_SUPPORT=y | 20 | CONFIG_LOCKDEP_SUPPORT=y |
21 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
17 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 22 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
18 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 23 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
24 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | ||
19 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 25 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
20 | 26 | ||
21 | # | 27 | # |
22 | # Code maturity level options | 28 | # General setup |
23 | # | 29 | # |
24 | CONFIG_EXPERIMENTAL=y | 30 | CONFIG_EXPERIMENTAL=y |
25 | CONFIG_BROKEN_ON_SMP=y | 31 | CONFIG_BROKEN_ON_SMP=y |
26 | CONFIG_LOCK_KERNEL=y | 32 | CONFIG_LOCK_KERNEL=y |
27 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 33 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
28 | |||
29 | # | ||
30 | # General setup | ||
31 | # | ||
32 | CONFIG_LOCALVERSION="" | 34 | CONFIG_LOCALVERSION="" |
33 | CONFIG_LOCALVERSION_AUTO=y | 35 | CONFIG_LOCALVERSION_AUTO=y |
34 | # CONFIG_SWAP is not set | 36 | # CONFIG_SWAP is not set |
@@ -36,11 +38,13 @@ CONFIG_LOCALVERSION_AUTO=y | |||
36 | # CONFIG_POSIX_MQUEUE is not set | 38 | # CONFIG_POSIX_MQUEUE is not set |
37 | # CONFIG_BSD_PROCESS_ACCT is not set | 39 | # CONFIG_BSD_PROCESS_ACCT is not set |
38 | # CONFIG_TASKSTATS is not set | 40 | # CONFIG_TASKSTATS is not set |
39 | # CONFIG_UTS_NS is not set | ||
40 | # CONFIG_AUDIT is not set | 41 | # CONFIG_AUDIT is not set |
41 | # CONFIG_IKCONFIG is not set | 42 | # CONFIG_IKCONFIG is not set |
42 | CONFIG_SYSFS_DEPRECATED=y | 43 | CONFIG_LOG_BUF_SHIFT=14 |
44 | # CONFIG_CGROUPS is not set | ||
45 | # CONFIG_GROUP_SCHED is not set | ||
43 | # CONFIG_RELAY is not set | 46 | # CONFIG_RELAY is not set |
47 | # CONFIG_NAMESPACES is not set | ||
44 | CONFIG_BLK_DEV_INITRD=y | 48 | CONFIG_BLK_DEV_INITRD=y |
45 | CONFIG_INITRAMFS_SOURCE="" | 49 | CONFIG_INITRAMFS_SOURCE="" |
46 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 50 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
@@ -53,32 +57,45 @@ CONFIG_UID16=y | |||
53 | CONFIG_PRINTK=y | 57 | CONFIG_PRINTK=y |
54 | CONFIG_BUG=y | 58 | CONFIG_BUG=y |
55 | CONFIG_ELF_CORE=y | 59 | CONFIG_ELF_CORE=y |
60 | CONFIG_COMPAT_BRK=y | ||
56 | CONFIG_BASE_FULL=y | 61 | CONFIG_BASE_FULL=y |
57 | CONFIG_FUTEX=y | 62 | CONFIG_FUTEX=y |
63 | CONFIG_ANON_INODES=y | ||
58 | CONFIG_EPOLL=y | 64 | CONFIG_EPOLL=y |
65 | CONFIG_SIGNALFD=y | ||
66 | CONFIG_TIMERFD=y | ||
67 | CONFIG_EVENTFD=y | ||
59 | CONFIG_SHMEM=y | 68 | CONFIG_SHMEM=y |
60 | CONFIG_SLAB=y | 69 | CONFIG_AIO=y |
61 | CONFIG_VM_EVENT_COUNTERS=y | 70 | CONFIG_VM_EVENT_COUNTERS=y |
71 | CONFIG_PCI_QUIRKS=y | ||
72 | CONFIG_SLAB=y | ||
73 | # CONFIG_SLUB is not set | ||
74 | # CONFIG_SLOB is not set | ||
75 | # CONFIG_PROFILING is not set | ||
76 | # CONFIG_MARKERS is not set | ||
77 | CONFIG_HAVE_OPROFILE=y | ||
78 | CONFIG_HAVE_IOREMAP_PROT=y | ||
79 | CONFIG_HAVE_KPROBES=y | ||
80 | CONFIG_HAVE_KRETPROBES=y | ||
81 | CONFIG_HAVE_ARCH_TRACEHOOK=y | ||
82 | CONFIG_HAVE_CLK=y | ||
83 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
84 | CONFIG_SLABINFO=y | ||
62 | CONFIG_RT_MUTEXES=y | 85 | CONFIG_RT_MUTEXES=y |
63 | # CONFIG_TINY_SHMEM is not set | 86 | # CONFIG_TINY_SHMEM is not set |
64 | CONFIG_BASE_SMALL=0 | 87 | CONFIG_BASE_SMALL=0 |
65 | # CONFIG_SLOB is not set | ||
66 | |||
67 | # | ||
68 | # Loadable module support | ||
69 | # | ||
70 | CONFIG_MODULES=y | 88 | CONFIG_MODULES=y |
89 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
71 | # CONFIG_MODULE_UNLOAD is not set | 90 | # CONFIG_MODULE_UNLOAD is not set |
72 | # CONFIG_MODVERSIONS is not set | 91 | # CONFIG_MODVERSIONS is not set |
73 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 92 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
74 | CONFIG_KMOD=y | 93 | CONFIG_KMOD=y |
75 | |||
76 | # | ||
77 | # Block layer | ||
78 | # | ||
79 | CONFIG_BLOCK=y | 94 | CONFIG_BLOCK=y |
80 | # CONFIG_LBD is not set | 95 | # CONFIG_LBD is not set |
81 | # CONFIG_LSF is not set | 96 | # CONFIG_LSF is not set |
97 | # CONFIG_BLK_DEV_BSG is not set | ||
98 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
82 | 99 | ||
83 | # | 100 | # |
84 | # IO Schedulers | 101 | # IO Schedulers |
@@ -92,59 +109,18 @@ CONFIG_DEFAULT_AS=y | |||
92 | # CONFIG_DEFAULT_CFQ is not set | 109 | # CONFIG_DEFAULT_CFQ is not set |
93 | # CONFIG_DEFAULT_NOOP is not set | 110 | # CONFIG_DEFAULT_NOOP is not set |
94 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 111 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
112 | CONFIG_CLASSIC_RCU=y | ||
113 | # CONFIG_FREEZER is not set | ||
95 | 114 | ||
96 | # | 115 | # |
97 | # System type | 116 | # System type |
98 | # | 117 | # |
99 | CONFIG_SOLUTION_ENGINE=y | ||
100 | CONFIG_SH_SOLUTION_ENGINE=y | ||
101 | # CONFIG_SH_7751_SOLUTION_ENGINE is not set | ||
102 | # CONFIG_SH_7780_SOLUTION_ENGINE is not set | ||
103 | # CONFIG_SH_7300_SOLUTION_ENGINE is not set | ||
104 | # CONFIG_SH_7343_SOLUTION_ENGINE is not set | ||
105 | # CONFIG_SH_73180_SOLUTION_ENGINE is not set | ||
106 | # CONFIG_SH_7722_SOLUTION_ENGINE is not set | ||
107 | # CONFIG_SH_7751_SYSTEMH is not set | ||
108 | # CONFIG_SH_HP6XX is not set | ||
109 | # CONFIG_SH_SATURN is not set | ||
110 | # CONFIG_SH_DREAMCAST is not set | ||
111 | # CONFIG_SH_MPC1211 is not set | ||
112 | # CONFIG_SH_SH03 is not set | ||
113 | # CONFIG_SH_SECUREEDGE5410 is not set | ||
114 | # CONFIG_SH_HS7751RVOIP is not set | ||
115 | # CONFIG_SH_7710VOIPGW is not set | ||
116 | # CONFIG_SH_RTS7751R2D is not set | ||
117 | # CONFIG_SH_HIGHLANDER is not set | ||
118 | # CONFIG_SH_EDOSK7705 is not set | ||
119 | # CONFIG_SH_SH4202_MICRODEV is not set | ||
120 | # CONFIG_SH_LANDISK is not set | ||
121 | # CONFIG_SH_TITAN is not set | ||
122 | # CONFIG_SH_SHMIN is not set | ||
123 | # CONFIG_SH_7206_SOLUTION_ENGINE is not set | ||
124 | # CONFIG_SH_7619_SOLUTION_ENGINE is not set | ||
125 | # CONFIG_SH_LBOX_RE2 is not set | ||
126 | # CONFIG_SH_UNKNOWN is not set | ||
127 | |||
128 | # | ||
129 | # Processor selection | ||
130 | # | ||
131 | CONFIG_CPU_SH3=y | 118 | CONFIG_CPU_SH3=y |
132 | |||
133 | # | ||
134 | # SH-2 Processor Support | ||
135 | # | ||
136 | # CONFIG_CPU_SUBTYPE_SH7604 is not set | ||
137 | # CONFIG_CPU_SUBTYPE_SH7619 is not set | 119 | # CONFIG_CPU_SUBTYPE_SH7619 is not set |
138 | 120 | # CONFIG_CPU_SUBTYPE_SH7203 is not set | |
139 | # | ||
140 | # SH-2A Processor Support | ||
141 | # | ||
142 | # CONFIG_CPU_SUBTYPE_SH7206 is not set | 121 | # CONFIG_CPU_SUBTYPE_SH7206 is not set |
143 | 122 | # CONFIG_CPU_SUBTYPE_SH7263 is not set | |
144 | # | 123 | # CONFIG_CPU_SUBTYPE_MXG is not set |
145 | # SH-3 Processor Support | ||
146 | # | ||
147 | # CONFIG_CPU_SUBTYPE_SH7300 is not set | ||
148 | CONFIG_CPU_SUBTYPE_SH7705=y | 124 | CONFIG_CPU_SUBTYPE_SH7705=y |
149 | # CONFIG_CPU_SUBTYPE_SH7706 is not set | 125 | # CONFIG_CPU_SUBTYPE_SH7706 is not set |
150 | # CONFIG_CPU_SUBTYPE_SH7707 is not set | 126 | # CONFIG_CPU_SUBTYPE_SH7707 is not set |
@@ -152,10 +128,8 @@ CONFIG_CPU_SUBTYPE_SH7705=y | |||
152 | # CONFIG_CPU_SUBTYPE_SH7709 is not set | 128 | # CONFIG_CPU_SUBTYPE_SH7709 is not set |
153 | # CONFIG_CPU_SUBTYPE_SH7710 is not set | 129 | # CONFIG_CPU_SUBTYPE_SH7710 is not set |
154 | # CONFIG_CPU_SUBTYPE_SH7712 is not set | 130 | # CONFIG_CPU_SUBTYPE_SH7712 is not set |
155 | 131 | # CONFIG_CPU_SUBTYPE_SH7720 is not set | |
156 | # | 132 | # CONFIG_CPU_SUBTYPE_SH7721 is not set |
157 | # SH-4 Processor Support | ||
158 | # | ||
159 | # CONFIG_CPU_SUBTYPE_SH7750 is not set | 133 | # CONFIG_CPU_SUBTYPE_SH7750 is not set |
160 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | 134 | # CONFIG_CPU_SUBTYPE_SH7091 is not set |
161 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | 135 | # CONFIG_CPU_SUBTYPE_SH7750R is not set |
@@ -164,63 +138,62 @@ CONFIG_CPU_SUBTYPE_SH7705=y | |||
164 | # CONFIG_CPU_SUBTYPE_SH7751R is not set | 138 | # CONFIG_CPU_SUBTYPE_SH7751R is not set |
165 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | 139 | # CONFIG_CPU_SUBTYPE_SH7760 is not set |
166 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | 140 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set |
167 | 141 | # CONFIG_CPU_SUBTYPE_SH7723 is not set | |
168 | # | 142 | # CONFIG_CPU_SUBTYPE_SH7763 is not set |
169 | # ST40 Processor Support | ||
170 | # | ||
171 | # CONFIG_CPU_SUBTYPE_ST40STB1 is not set | ||
172 | # CONFIG_CPU_SUBTYPE_ST40GX1 is not set | ||
173 | |||
174 | # | ||
175 | # SH-4A Processor Support | ||
176 | # | ||
177 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | 143 | # CONFIG_CPU_SUBTYPE_SH7770 is not set |
178 | # CONFIG_CPU_SUBTYPE_SH7780 is not set | 144 | # CONFIG_CPU_SUBTYPE_SH7780 is not set |
179 | # CONFIG_CPU_SUBTYPE_SH7785 is not set | 145 | # CONFIG_CPU_SUBTYPE_SH7785 is not set |
180 | 146 | # CONFIG_CPU_SUBTYPE_SHX3 is not set | |
181 | # | ||
182 | # SH4AL-DSP Processor Support | ||
183 | # | ||
184 | # CONFIG_CPU_SUBTYPE_SH73180 is not set | ||
185 | # CONFIG_CPU_SUBTYPE_SH7343 is not set | 147 | # CONFIG_CPU_SUBTYPE_SH7343 is not set |
186 | # CONFIG_CPU_SUBTYPE_SH7722 is not set | 148 | # CONFIG_CPU_SUBTYPE_SH7722 is not set |
149 | # CONFIG_CPU_SUBTYPE_SH7366 is not set | ||
150 | # CONFIG_CPU_SUBTYPE_SH5_101 is not set | ||
151 | # CONFIG_CPU_SUBTYPE_SH5_103 is not set | ||
187 | 152 | ||
188 | # | 153 | # |
189 | # Memory management options | 154 | # Memory management options |
190 | # | 155 | # |
156 | CONFIG_QUICKLIST=y | ||
191 | CONFIG_MMU=y | 157 | CONFIG_MMU=y |
192 | CONFIG_PAGE_OFFSET=0x80000000 | 158 | CONFIG_PAGE_OFFSET=0x80000000 |
193 | CONFIG_MEMORY_START=0x0c000000 | 159 | CONFIG_MEMORY_START=0x0c000000 |
194 | CONFIG_MEMORY_SIZE=0x02000000 | 160 | CONFIG_MEMORY_SIZE=0x02000000 |
161 | CONFIG_29BIT=y | ||
195 | CONFIG_VSYSCALL=y | 162 | CONFIG_VSYSCALL=y |
196 | CONFIG_ARCH_FLATMEM_ENABLE=y | 163 | CONFIG_ARCH_FLATMEM_ENABLE=y |
164 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | ||
165 | CONFIG_ARCH_SPARSEMEM_DEFAULT=y | ||
166 | CONFIG_MAX_ACTIVE_REGIONS=1 | ||
197 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 167 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
168 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | ||
198 | CONFIG_PAGE_SIZE_4KB=y | 169 | CONFIG_PAGE_SIZE_4KB=y |
199 | # CONFIG_PAGE_SIZE_8KB is not set | 170 | # CONFIG_PAGE_SIZE_8KB is not set |
171 | # CONFIG_PAGE_SIZE_16KB is not set | ||
200 | # CONFIG_PAGE_SIZE_64KB is not set | 172 | # CONFIG_PAGE_SIZE_64KB is not set |
173 | CONFIG_ENTRY_OFFSET=0x00001000 | ||
201 | CONFIG_SELECT_MEMORY_MODEL=y | 174 | CONFIG_SELECT_MEMORY_MODEL=y |
202 | CONFIG_FLATMEM_MANUAL=y | 175 | CONFIG_FLATMEM_MANUAL=y |
203 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 176 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
204 | # CONFIG_SPARSEMEM_MANUAL is not set | 177 | # CONFIG_SPARSEMEM_MANUAL is not set |
205 | CONFIG_FLATMEM=y | 178 | CONFIG_FLATMEM=y |
206 | CONFIG_FLAT_NODE_MEM_MAP=y | 179 | CONFIG_FLAT_NODE_MEM_MAP=y |
207 | # CONFIG_SPARSEMEM_STATIC is not set | 180 | CONFIG_SPARSEMEM_STATIC=y |
181 | CONFIG_PAGEFLAGS_EXTENDED=y | ||
208 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 182 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
209 | # CONFIG_RESOURCES_64BIT is not set | 183 | # CONFIG_RESOURCES_64BIT is not set |
184 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
210 | CONFIG_ZONE_DMA_FLAG=0 | 185 | CONFIG_ZONE_DMA_FLAG=0 |
186 | CONFIG_NR_QUICK=2 | ||
187 | CONFIG_UNEVICTABLE_LRU=y | ||
211 | 188 | ||
212 | # | 189 | # |
213 | # Cache configuration | 190 | # Cache configuration |
214 | # | 191 | # |
215 | CONFIG_SH7705_CACHE_32KB=y | 192 | CONFIG_SH7705_CACHE_32KB=y |
216 | # CONFIG_SH_DIRECT_MAPPED is not set | 193 | # CONFIG_SH_DIRECT_MAPPED is not set |
217 | # CONFIG_SH_WRITETHROUGH is not set | 194 | CONFIG_CACHE_WRITEBACK=y |
218 | # CONFIG_SH_OCRAM is not set | 195 | # CONFIG_CACHE_WRITETHROUGH is not set |
219 | CONFIG_CF_ENABLER=y | 196 | # CONFIG_CACHE_OFF is not set |
220 | # CONFIG_CF_AREA5 is not set | ||
221 | CONFIG_CF_AREA6=y | ||
222 | # CONFIG_CF_AREA4 is not set | ||
223 | CONFIG_CF_BASE_ADDR=0xb8000000 | ||
224 | 197 | ||
225 | # | 198 | # |
226 | # Processor features | 199 | # Processor features |
@@ -228,18 +201,27 @@ CONFIG_CF_BASE_ADDR=0xb8000000 | |||
228 | CONFIG_CPU_LITTLE_ENDIAN=y | 201 | CONFIG_CPU_LITTLE_ENDIAN=y |
229 | # CONFIG_CPU_BIG_ENDIAN is not set | 202 | # CONFIG_CPU_BIG_ENDIAN is not set |
230 | # CONFIG_SH_FPU_EMU is not set | 203 | # CONFIG_SH_FPU_EMU is not set |
231 | # CONFIG_SH_DSP is not set | ||
232 | # CONFIG_SH_ADC is not set | 204 | # CONFIG_SH_ADC is not set |
233 | CONFIG_CPU_HAS_INTEVT=y | 205 | CONFIG_CPU_HAS_INTEVT=y |
234 | CONFIG_CPU_HAS_IPR_IRQ=y | 206 | CONFIG_CPU_HAS_IPR_IRQ=y |
235 | CONFIG_CPU_HAS_SR_RB=y | 207 | CONFIG_CPU_HAS_SR_RB=y |
236 | 208 | ||
237 | # | 209 | # |
210 | # Board support | ||
211 | # | ||
212 | CONFIG_SOLUTION_ENGINE=y | ||
213 | CONFIG_SH_SOLUTION_ENGINE=y | ||
214 | # CONFIG_SH_EDOSK7705 is not set | ||
215 | |||
216 | # | ||
238 | # Timer and clock configuration | 217 | # Timer and clock configuration |
239 | # | 218 | # |
240 | CONFIG_SH_TMU=y | 219 | CONFIG_SH_TMU=y |
241 | CONFIG_SH_TIMER_IRQ=16 | 220 | CONFIG_SH_TIMER_IRQ=16 |
242 | CONFIG_SH_PCLK_FREQ=33333333 | 221 | CONFIG_SH_PCLK_FREQ=33333333 |
222 | # CONFIG_NO_HZ is not set | ||
223 | # CONFIG_HIGH_RES_TIMERS is not set | ||
224 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
243 | 225 | ||
244 | # | 226 | # |
245 | # CPU Frequency scaling | 227 | # CPU Frequency scaling |
@@ -254,7 +236,6 @@ CONFIG_SH_PCLK_FREQ=33333333 | |||
254 | # | 236 | # |
255 | # Companion Chips | 237 | # Companion Chips |
256 | # | 238 | # |
257 | # CONFIG_HD6446X_SERIES is not set | ||
258 | 239 | ||
259 | # | 240 | # |
260 | # Additional SuperH Device Drivers | 241 | # Additional SuperH Device Drivers |
@@ -270,55 +251,45 @@ CONFIG_HZ_250=y | |||
270 | # CONFIG_HZ_300 is not set | 251 | # CONFIG_HZ_300 is not set |
271 | # CONFIG_HZ_1000 is not set | 252 | # CONFIG_HZ_1000 is not set |
272 | CONFIG_HZ=250 | 253 | CONFIG_HZ=250 |
254 | # CONFIG_SCHED_HRTICK is not set | ||
273 | # CONFIG_KEXEC is not set | 255 | # CONFIG_KEXEC is not set |
274 | # CONFIG_SMP is not set | 256 | # CONFIG_CRASH_DUMP is not set |
257 | # CONFIG_SECCOMP is not set | ||
275 | # CONFIG_PREEMPT_NONE is not set | 258 | # CONFIG_PREEMPT_NONE is not set |
276 | # CONFIG_PREEMPT_VOLUNTARY is not set | 259 | # CONFIG_PREEMPT_VOLUNTARY is not set |
277 | CONFIG_PREEMPT=y | 260 | CONFIG_PREEMPT=y |
278 | CONFIG_PREEMPT_BKL=y | 261 | # CONFIG_PREEMPT_RCU is not set |
262 | CONFIG_GUSA=y | ||
263 | # CONFIG_GUSA_RB is not set | ||
279 | 264 | ||
280 | # | 265 | # |
281 | # Boot options | 266 | # Boot options |
282 | # | 267 | # |
283 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 | 268 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 |
284 | CONFIG_BOOT_LINK_OFFSET=0x00800000 | 269 | CONFIG_BOOT_LINK_OFFSET=0x00800000 |
285 | # CONFIG_UBC_WAKEUP is not set | ||
286 | # CONFIG_CMDLINE_BOOL is not set | 270 | # CONFIG_CMDLINE_BOOL is not set |
287 | 271 | ||
288 | # | 272 | # |
289 | # Bus options | 273 | # Bus options |
290 | # | 274 | # |
291 | # CONFIG_PCI is not set | 275 | CONFIG_CF_ENABLER=y |
292 | 276 | # CONFIG_CF_AREA5 is not set | |
293 | # | 277 | CONFIG_CF_AREA6=y |
294 | # PCCARD (PCMCIA/CardBus) support | 278 | CONFIG_CF_BASE_ADDR=0xb8000000 |
295 | # | 279 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
296 | |||
297 | # | ||
298 | # PCI Hotplug Support | ||
299 | # | ||
300 | 280 | ||
301 | # | 281 | # |
302 | # Executable file formats | 282 | # Executable file formats |
303 | # | 283 | # |
304 | CONFIG_BINFMT_ELF=y | 284 | CONFIG_BINFMT_ELF=y |
305 | # CONFIG_BINFMT_FLAT is not set | 285 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set |
286 | # CONFIG_HAVE_AOUT is not set | ||
306 | # CONFIG_BINFMT_MISC is not set | 287 | # CONFIG_BINFMT_MISC is not set |
307 | |||
308 | # | ||
309 | # Power management options (EXPERIMENTAL) | ||
310 | # | ||
311 | # CONFIG_PM is not set | ||
312 | |||
313 | # | ||
314 | # Networking | ||
315 | # | ||
316 | CONFIG_NET=y | 288 | CONFIG_NET=y |
317 | 289 | ||
318 | # | 290 | # |
319 | # Networking options | 291 | # Networking options |
320 | # | 292 | # |
321 | # CONFIG_NETDEBUG is not set | ||
322 | CONFIG_PACKET=y | 293 | CONFIG_PACKET=y |
323 | # CONFIG_PACKET_MMAP is not set | 294 | # CONFIG_PACKET_MMAP is not set |
324 | CONFIG_UNIX=y | 295 | CONFIG_UNIX=y |
@@ -326,6 +297,7 @@ CONFIG_XFRM=y | |||
326 | # CONFIG_XFRM_USER is not set | 297 | # CONFIG_XFRM_USER is not set |
327 | # CONFIG_XFRM_SUB_POLICY is not set | 298 | # CONFIG_XFRM_SUB_POLICY is not set |
328 | # CONFIG_XFRM_MIGRATE is not set | 299 | # CONFIG_XFRM_MIGRATE is not set |
300 | # CONFIG_XFRM_STATISTICS is not set | ||
329 | # CONFIG_NET_KEY is not set | 301 | # CONFIG_NET_KEY is not set |
330 | CONFIG_INET=y | 302 | CONFIG_INET=y |
331 | # CONFIG_IP_MULTICAST is not set | 303 | # CONFIG_IP_MULTICAST is not set |
@@ -347,6 +319,7 @@ CONFIG_IP_PNP_RARP=y | |||
347 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | 319 | CONFIG_INET_XFRM_MODE_TRANSPORT=y |
348 | CONFIG_INET_XFRM_MODE_TUNNEL=y | 320 | CONFIG_INET_XFRM_MODE_TUNNEL=y |
349 | CONFIG_INET_XFRM_MODE_BEET=y | 321 | CONFIG_INET_XFRM_MODE_BEET=y |
322 | # CONFIG_INET_LRO is not set | ||
350 | CONFIG_INET_DIAG=y | 323 | CONFIG_INET_DIAG=y |
351 | CONFIG_INET_TCP_DIAG=y | 324 | CONFIG_INET_TCP_DIAG=y |
352 | # CONFIG_TCP_CONG_ADVANCED is not set | 325 | # CONFIG_TCP_CONG_ADVANCED is not set |
@@ -354,27 +327,14 @@ CONFIG_TCP_CONG_CUBIC=y | |||
354 | CONFIG_DEFAULT_TCP_CONG="cubic" | 327 | CONFIG_DEFAULT_TCP_CONG="cubic" |
355 | # CONFIG_TCP_MD5SIG is not set | 328 | # CONFIG_TCP_MD5SIG is not set |
356 | # CONFIG_IPV6 is not set | 329 | # CONFIG_IPV6 is not set |
357 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
358 | # CONFIG_INET6_TUNNEL is not set | ||
359 | # CONFIG_NETWORK_SECMARK is not set | 330 | # CONFIG_NETWORK_SECMARK is not set |
360 | # CONFIG_NETFILTER is not set | 331 | # CONFIG_NETFILTER is not set |
361 | |||
362 | # | ||
363 | # DCCP Configuration (EXPERIMENTAL) | ||
364 | # | ||
365 | # CONFIG_IP_DCCP is not set | 332 | # CONFIG_IP_DCCP is not set |
366 | |||
367 | # | ||
368 | # SCTP Configuration (EXPERIMENTAL) | ||
369 | # | ||
370 | # CONFIG_IP_SCTP is not set | 333 | # CONFIG_IP_SCTP is not set |
371 | |||
372 | # | ||
373 | # TIPC Configuration (EXPERIMENTAL) | ||
374 | # | ||
375 | # CONFIG_TIPC is not set | 334 | # CONFIG_TIPC is not set |
376 | # CONFIG_ATM is not set | 335 | # CONFIG_ATM is not set |
377 | # CONFIG_BRIDGE is not set | 336 | # CONFIG_BRIDGE is not set |
337 | # CONFIG_NET_DSA is not set | ||
378 | # CONFIG_VLAN_8021Q is not set | 338 | # CONFIG_VLAN_8021Q is not set |
379 | # CONFIG_DECNET is not set | 339 | # CONFIG_DECNET is not set |
380 | # CONFIG_LLC2 is not set | 340 | # CONFIG_LLC2 is not set |
@@ -384,10 +344,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
384 | # CONFIG_LAPB is not set | 344 | # CONFIG_LAPB is not set |
385 | # CONFIG_ECONET is not set | 345 | # CONFIG_ECONET is not set |
386 | # CONFIG_WAN_ROUTER is not set | 346 | # CONFIG_WAN_ROUTER is not set |
387 | |||
388 | # | ||
389 | # QoS and/or fair queueing | ||
390 | # | ||
391 | # CONFIG_NET_SCHED is not set | 347 | # CONFIG_NET_SCHED is not set |
392 | 348 | ||
393 | # | 349 | # |
@@ -395,9 +351,19 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
395 | # | 351 | # |
396 | # CONFIG_NET_PKTGEN is not set | 352 | # CONFIG_NET_PKTGEN is not set |
397 | # CONFIG_HAMRADIO is not set | 353 | # CONFIG_HAMRADIO is not set |
354 | # CONFIG_CAN is not set | ||
398 | # CONFIG_IRDA is not set | 355 | # CONFIG_IRDA is not set |
399 | # CONFIG_BT is not set | 356 | # CONFIG_BT is not set |
357 | # CONFIG_AF_RXRPC is not set | ||
358 | # CONFIG_PHONET is not set | ||
359 | CONFIG_WIRELESS=y | ||
360 | # CONFIG_CFG80211 is not set | ||
361 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
362 | # CONFIG_WIRELESS_EXT is not set | ||
363 | # CONFIG_MAC80211 is not set | ||
400 | # CONFIG_IEEE80211 is not set | 364 | # CONFIG_IEEE80211 is not set |
365 | # CONFIG_RFKILL is not set | ||
366 | # CONFIG_NET_9P is not set | ||
401 | 367 | ||
402 | # | 368 | # |
403 | # Device Drivers | 369 | # Device Drivers |
@@ -409,21 +375,14 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
409 | CONFIG_STANDALONE=y | 375 | CONFIG_STANDALONE=y |
410 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 376 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
411 | # CONFIG_SYS_HYPERVISOR is not set | 377 | # CONFIG_SYS_HYPERVISOR is not set |
412 | |||
413 | # | ||
414 | # Connector - unified userspace <-> kernelspace linker | ||
415 | # | ||
416 | # CONFIG_CONNECTOR is not set | 378 | # CONFIG_CONNECTOR is not set |
417 | |||
418 | # | ||
419 | # Memory Technology Devices (MTD) | ||
420 | # | ||
421 | CONFIG_MTD=y | 379 | CONFIG_MTD=y |
422 | # CONFIG_MTD_DEBUG is not set | 380 | # CONFIG_MTD_DEBUG is not set |
423 | # CONFIG_MTD_CONCAT is not set | 381 | # CONFIG_MTD_CONCAT is not set |
424 | CONFIG_MTD_PARTITIONS=y | 382 | CONFIG_MTD_PARTITIONS=y |
425 | # CONFIG_MTD_REDBOOT_PARTS is not set | 383 | # CONFIG_MTD_REDBOOT_PARTS is not set |
426 | # CONFIG_MTD_CMDLINE_PARTS is not set | 384 | # CONFIG_MTD_CMDLINE_PARTS is not set |
385 | # CONFIG_MTD_AR7_PARTS is not set | ||
427 | 386 | ||
428 | # | 387 | # |
429 | # User Modules And Translation Layers | 388 | # User Modules And Translation Layers |
@@ -436,6 +395,7 @@ CONFIG_MTD_BLOCK=y | |||
436 | # CONFIG_INFTL is not set | 395 | # CONFIG_INFTL is not set |
437 | # CONFIG_RFD_FTL is not set | 396 | # CONFIG_RFD_FTL is not set |
438 | # CONFIG_SSFDC is not set | 397 | # CONFIG_SSFDC is not set |
398 | # CONFIG_MTD_OOPS is not set | ||
439 | 399 | ||
440 | # | 400 | # |
441 | # RAM/ROM/Flash chip drivers | 401 | # RAM/ROM/Flash chip drivers |
@@ -461,7 +421,6 @@ CONFIG_MTD_CFI_UTIL=y | |||
461 | # CONFIG_MTD_RAM is not set | 421 | # CONFIG_MTD_RAM is not set |
462 | # CONFIG_MTD_ROM is not set | 422 | # CONFIG_MTD_ROM is not set |
463 | # CONFIG_MTD_ABSENT is not set | 423 | # CONFIG_MTD_ABSENT is not set |
464 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
465 | 424 | ||
466 | # | 425 | # |
467 | # Mapping drivers for chip access | 426 | # Mapping drivers for chip access |
@@ -484,47 +443,29 @@ CONFIG_MTD_CFI_UTIL=y | |||
484 | # CONFIG_MTD_DOC2000 is not set | 443 | # CONFIG_MTD_DOC2000 is not set |
485 | # CONFIG_MTD_DOC2001 is not set | 444 | # CONFIG_MTD_DOC2001 is not set |
486 | # CONFIG_MTD_DOC2001PLUS is not set | 445 | # CONFIG_MTD_DOC2001PLUS is not set |
487 | |||
488 | # | ||
489 | # NAND Flash Device Drivers | ||
490 | # | ||
491 | # CONFIG_MTD_NAND is not set | 446 | # CONFIG_MTD_NAND is not set |
492 | |||
493 | # | ||
494 | # OneNAND Flash Device Drivers | ||
495 | # | ||
496 | # CONFIG_MTD_ONENAND is not set | 447 | # CONFIG_MTD_ONENAND is not set |
497 | 448 | ||
498 | # | 449 | # |
499 | # Parallel port support | 450 | # UBI - Unsorted block images |
500 | # | 451 | # |
452 | # CONFIG_MTD_UBI is not set | ||
501 | # CONFIG_PARPORT is not set | 453 | # CONFIG_PARPORT is not set |
502 | 454 | CONFIG_BLK_DEV=y | |
503 | # | ||
504 | # Plug and Play support | ||
505 | # | ||
506 | # CONFIG_PNPACPI is not set | ||
507 | |||
508 | # | ||
509 | # Block devices | ||
510 | # | ||
511 | # CONFIG_BLK_DEV_COW_COMMON is not set | 455 | # CONFIG_BLK_DEV_COW_COMMON is not set |
512 | # CONFIG_BLK_DEV_LOOP is not set | 456 | # CONFIG_BLK_DEV_LOOP is not set |
513 | # CONFIG_BLK_DEV_NBD is not set | 457 | # CONFIG_BLK_DEV_NBD is not set |
514 | CONFIG_BLK_DEV_RAM=y | 458 | CONFIG_BLK_DEV_RAM=y |
515 | CONFIG_BLK_DEV_RAM_COUNT=16 | 459 | CONFIG_BLK_DEV_RAM_COUNT=16 |
516 | CONFIG_BLK_DEV_RAM_SIZE=8192 | 460 | CONFIG_BLK_DEV_RAM_SIZE=8192 |
517 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 461 | # CONFIG_BLK_DEV_XIP is not set |
518 | # CONFIG_CDROM_PKTCDVD is not set | 462 | # CONFIG_CDROM_PKTCDVD is not set |
519 | # CONFIG_ATA_OVER_ETH is not set | 463 | # CONFIG_ATA_OVER_ETH is not set |
520 | 464 | # CONFIG_BLK_DEV_HD is not set | |
521 | # | 465 | CONFIG_MISC_DEVICES=y |
522 | # Misc devices | 466 | # CONFIG_EEPROM_93CX6 is not set |
523 | # | 467 | # CONFIG_ENCLOSURE_SERVICES is not set |
524 | 468 | CONFIG_HAVE_IDE=y | |
525 | # | ||
526 | # ATA/ATAPI/MFM/RLL support | ||
527 | # | ||
528 | # CONFIG_IDE is not set | 469 | # CONFIG_IDE is not set |
529 | 470 | ||
530 | # | 471 | # |
@@ -532,73 +473,41 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | |||
532 | # | 473 | # |
533 | # CONFIG_RAID_ATTRS is not set | 474 | # CONFIG_RAID_ATTRS is not set |
534 | # CONFIG_SCSI is not set | 475 | # CONFIG_SCSI is not set |
476 | # CONFIG_SCSI_DMA is not set | ||
535 | # CONFIG_SCSI_NETLINK is not set | 477 | # CONFIG_SCSI_NETLINK is not set |
536 | |||
537 | # | ||
538 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
539 | # | ||
540 | # CONFIG_ATA is not set | 478 | # CONFIG_ATA is not set |
541 | |||
542 | # | ||
543 | # Multi-device support (RAID and LVM) | ||
544 | # | ||
545 | # CONFIG_MD is not set | 479 | # CONFIG_MD is not set |
546 | |||
547 | # | ||
548 | # Fusion MPT device support | ||
549 | # | ||
550 | # CONFIG_FUSION is not set | ||
551 | |||
552 | # | ||
553 | # IEEE 1394 (FireWire) support | ||
554 | # | ||
555 | |||
556 | # | ||
557 | # I2O device support | ||
558 | # | ||
559 | |||
560 | # | ||
561 | # Network device support | ||
562 | # | ||
563 | CONFIG_NETDEVICES=y | 480 | CONFIG_NETDEVICES=y |
564 | # CONFIG_DUMMY is not set | 481 | # CONFIG_DUMMY is not set |
565 | # CONFIG_BONDING is not set | 482 | # CONFIG_BONDING is not set |
483 | # CONFIG_MACVLAN is not set | ||
566 | # CONFIG_EQUALIZER is not set | 484 | # CONFIG_EQUALIZER is not set |
567 | # CONFIG_TUN is not set | 485 | # CONFIG_TUN is not set |
568 | 486 | # CONFIG_VETH is not set | |
569 | # | ||
570 | # PHY device support | ||
571 | # | ||
572 | # CONFIG_PHYLIB is not set | 487 | # CONFIG_PHYLIB is not set |
573 | |||
574 | # | ||
575 | # Ethernet (10 or 100Mbit) | ||
576 | # | ||
577 | CONFIG_NET_ETHERNET=y | 488 | CONFIG_NET_ETHERNET=y |
578 | # CONFIG_MII is not set | 489 | # CONFIG_MII is not set |
490 | # CONFIG_AX88796 is not set | ||
579 | CONFIG_STNIC=y | 491 | CONFIG_STNIC=y |
580 | # CONFIG_SMC91X is not set | 492 | # CONFIG_SMC91X is not set |
581 | 493 | # CONFIG_SMC911X is not set | |
582 | # | 494 | # CONFIG_IBM_NEW_EMAC_ZMII is not set |
583 | # Ethernet (1000 Mbit) | 495 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
584 | # | 496 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
585 | 497 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | |
586 | # | 498 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set |
587 | # Ethernet (10000 Mbit) | 499 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set |
588 | # | 500 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
589 | 501 | # CONFIG_B44 is not set | |
590 | # | 502 | CONFIG_NETDEV_1000=y |
591 | # Token Ring devices | 503 | CONFIG_NETDEV_10000=y |
592 | # | 504 | |
593 | 505 | # | |
594 | # | 506 | # Wireless LAN |
595 | # Wireless LAN (non-hamradio) | 507 | # |
596 | # | 508 | # CONFIG_WLAN_PRE80211 is not set |
597 | # CONFIG_NET_RADIO is not set | 509 | # CONFIG_WLAN_80211 is not set |
598 | 510 | # CONFIG_IWLWIFI_LEDS is not set | |
599 | # | ||
600 | # Wan interfaces | ||
601 | # | ||
602 | # CONFIG_WAN is not set | 511 | # CONFIG_WAN is not set |
603 | CONFIG_PPP=y | 512 | CONFIG_PPP=y |
604 | # CONFIG_PPP_MULTILINK is not set | 513 | # CONFIG_PPP_MULTILINK is not set |
@@ -609,21 +518,13 @@ CONFIG_PPP_DEFLATE=y | |||
609 | # CONFIG_PPP_BSDCOMP is not set | 518 | # CONFIG_PPP_BSDCOMP is not set |
610 | # CONFIG_PPP_MPPE is not set | 519 | # CONFIG_PPP_MPPE is not set |
611 | # CONFIG_PPPOE is not set | 520 | # CONFIG_PPPOE is not set |
521 | # CONFIG_PPPOL2TP is not set | ||
612 | # CONFIG_SLIP is not set | 522 | # CONFIG_SLIP is not set |
613 | CONFIG_SLHC=y | 523 | CONFIG_SLHC=y |
614 | # CONFIG_SHAPER is not set | ||
615 | # CONFIG_NETCONSOLE is not set | 524 | # CONFIG_NETCONSOLE is not set |
616 | # CONFIG_NETPOLL is not set | 525 | # CONFIG_NETPOLL is not set |
617 | # CONFIG_NET_POLL_CONTROLLER is not set | 526 | # CONFIG_NET_POLL_CONTROLLER is not set |
618 | |||
619 | # | ||
620 | # ISDN subsystem | ||
621 | # | ||
622 | # CONFIG_ISDN is not set | 527 | # CONFIG_ISDN is not set |
623 | |||
624 | # | ||
625 | # Telephony Support | ||
626 | # | ||
627 | # CONFIG_PHONE is not set | 528 | # CONFIG_PHONE is not set |
628 | 529 | ||
629 | # | 530 | # |
@@ -631,13 +532,13 @@ CONFIG_SLHC=y | |||
631 | # | 532 | # |
632 | CONFIG_INPUT=y | 533 | CONFIG_INPUT=y |
633 | # CONFIG_INPUT_FF_MEMLESS is not set | 534 | # CONFIG_INPUT_FF_MEMLESS is not set |
535 | # CONFIG_INPUT_POLLDEV is not set | ||
634 | 536 | ||
635 | # | 537 | # |
636 | # Userland interfaces | 538 | # Userland interfaces |
637 | # | 539 | # |
638 | # CONFIG_INPUT_MOUSEDEV is not set | 540 | # CONFIG_INPUT_MOUSEDEV is not set |
639 | # CONFIG_INPUT_JOYDEV is not set | 541 | # CONFIG_INPUT_JOYDEV is not set |
640 | # CONFIG_INPUT_TSDEV is not set | ||
641 | # CONFIG_INPUT_EVDEV is not set | 542 | # CONFIG_INPUT_EVDEV is not set |
642 | # CONFIG_INPUT_EVBUG is not set | 543 | # CONFIG_INPUT_EVBUG is not set |
643 | 544 | ||
@@ -647,6 +548,7 @@ CONFIG_INPUT=y | |||
647 | # CONFIG_INPUT_KEYBOARD is not set | 548 | # CONFIG_INPUT_KEYBOARD is not set |
648 | # CONFIG_INPUT_MOUSE is not set | 549 | # CONFIG_INPUT_MOUSE is not set |
649 | # CONFIG_INPUT_JOYSTICK is not set | 550 | # CONFIG_INPUT_JOYSTICK is not set |
551 | # CONFIG_INPUT_TABLET is not set | ||
650 | # CONFIG_INPUT_TOUCHSCREEN is not set | 552 | # CONFIG_INPUT_TOUCHSCREEN is not set |
651 | # CONFIG_INPUT_MISC is not set | 553 | # CONFIG_INPUT_MISC is not set |
652 | 554 | ||
@@ -664,6 +566,7 @@ CONFIG_SERIO=y | |||
664 | # Character devices | 566 | # Character devices |
665 | # | 567 | # |
666 | # CONFIG_VT is not set | 568 | # CONFIG_VT is not set |
569 | CONFIG_DEVKMEM=y | ||
667 | # CONFIG_SERIAL_NONSTANDARD is not set | 570 | # CONFIG_SERIAL_NONSTANDARD is not set |
668 | 571 | ||
669 | # | 572 | # |
@@ -681,153 +584,110 @@ CONFIG_SERIAL_CORE=y | |||
681 | CONFIG_SERIAL_CORE_CONSOLE=y | 584 | CONFIG_SERIAL_CORE_CONSOLE=y |
682 | CONFIG_UNIX98_PTYS=y | 585 | CONFIG_UNIX98_PTYS=y |
683 | # CONFIG_LEGACY_PTYS is not set | 586 | # CONFIG_LEGACY_PTYS is not set |
684 | |||
685 | # | ||
686 | # IPMI | ||
687 | # | ||
688 | # CONFIG_IPMI_HANDLER is not set | 587 | # CONFIG_IPMI_HANDLER is not set |
689 | |||
690 | # | ||
691 | # Watchdog Cards | ||
692 | # | ||
693 | # CONFIG_WATCHDOG is not set | ||
694 | CONFIG_HW_RANDOM=y | 588 | CONFIG_HW_RANDOM=y |
695 | # CONFIG_GEN_RTC is not set | ||
696 | # CONFIG_DTLK is not set | ||
697 | # CONFIG_R3964 is not set | 589 | # CONFIG_R3964 is not set |
698 | # CONFIG_RAW_DRIVER is not set | 590 | # CONFIG_RAW_DRIVER is not set |
699 | |||
700 | # | ||
701 | # TPM devices | ||
702 | # | ||
703 | # CONFIG_TCG_TPM is not set | 591 | # CONFIG_TCG_TPM is not set |
704 | |||
705 | # | ||
706 | # I2C support | ||
707 | # | ||
708 | # CONFIG_I2C is not set | 592 | # CONFIG_I2C is not set |
709 | |||
710 | # | ||
711 | # SPI support | ||
712 | # | ||
713 | # CONFIG_SPI is not set | 593 | # CONFIG_SPI is not set |
714 | # CONFIG_SPI_MASTER is not set | ||
715 | |||
716 | # | ||
717 | # Dallas's 1-wire bus | ||
718 | # | ||
719 | # CONFIG_W1 is not set | 594 | # CONFIG_W1 is not set |
720 | 595 | # CONFIG_POWER_SUPPLY is not set | |
721 | # | ||
722 | # Hardware Monitoring support | ||
723 | # | ||
724 | CONFIG_HWMON=y | 596 | CONFIG_HWMON=y |
725 | # CONFIG_HWMON_VID is not set | 597 | # CONFIG_HWMON_VID is not set |
726 | # CONFIG_SENSORS_ABITUGURU is not set | ||
727 | # CONFIG_SENSORS_F71805F is not set | 598 | # CONFIG_SENSORS_F71805F is not set |
599 | # CONFIG_SENSORS_F71882FG is not set | ||
600 | # CONFIG_SENSORS_IT87 is not set | ||
601 | # CONFIG_SENSORS_PC87360 is not set | ||
728 | # CONFIG_SENSORS_PC87427 is not set | 602 | # CONFIG_SENSORS_PC87427 is not set |
603 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
604 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
729 | # CONFIG_SENSORS_VT1211 is not set | 605 | # CONFIG_SENSORS_VT1211 is not set |
606 | # CONFIG_SENSORS_W83627HF is not set | ||
607 | # CONFIG_SENSORS_W83627EHF is not set | ||
730 | # CONFIG_HWMON_DEBUG_CHIP is not set | 608 | # CONFIG_HWMON_DEBUG_CHIP is not set |
609 | # CONFIG_THERMAL is not set | ||
610 | # CONFIG_THERMAL_HWMON is not set | ||
611 | # CONFIG_WATCHDOG is not set | ||
612 | |||
613 | # | ||
614 | # Sonics Silicon Backplane | ||
615 | # | ||
616 | CONFIG_SSB_POSSIBLE=y | ||
617 | # CONFIG_SSB is not set | ||
731 | 618 | ||
732 | # | 619 | # |
733 | # Multifunction device drivers | 620 | # Multifunction device drivers |
734 | # | 621 | # |
622 | # CONFIG_MFD_CORE is not set | ||
735 | # CONFIG_MFD_SM501 is not set | 623 | # CONFIG_MFD_SM501 is not set |
624 | # CONFIG_HTC_PASIC3 is not set | ||
625 | # CONFIG_MFD_TMIO is not set | ||
626 | # CONFIG_MFD_WM8400 is not set | ||
736 | 627 | ||
737 | # | 628 | # |
738 | # Multimedia devices | 629 | # Multimedia devices |
739 | # | 630 | # |
631 | |||
632 | # | ||
633 | # Multimedia core support | ||
634 | # | ||
740 | # CONFIG_VIDEO_DEV is not set | 635 | # CONFIG_VIDEO_DEV is not set |
636 | # CONFIG_DVB_CORE is not set | ||
637 | # CONFIG_VIDEO_MEDIA is not set | ||
741 | 638 | ||
742 | # | 639 | # |
743 | # Digital Video Broadcasting Devices | 640 | # Multimedia drivers |
744 | # | 641 | # |
745 | # CONFIG_DVB is not set | 642 | # CONFIG_DAB is not set |
746 | 643 | ||
747 | # | 644 | # |
748 | # Graphics support | 645 | # Graphics support |
749 | # | 646 | # |
750 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 647 | # CONFIG_VGASTATE is not set |
648 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
751 | # CONFIG_FB is not set | 649 | # CONFIG_FB is not set |
650 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
752 | 651 | ||
753 | # | 652 | # |
754 | # Sound | 653 | # Display device support |
755 | # | 654 | # |
655 | # CONFIG_DISPLAY_SUPPORT is not set | ||
756 | # CONFIG_SOUND is not set | 656 | # CONFIG_SOUND is not set |
757 | 657 | CONFIG_HID_SUPPORT=y | |
758 | # | ||
759 | # HID Devices | ||
760 | # | ||
761 | CONFIG_HID=y | 658 | CONFIG_HID=y |
762 | # CONFIG_HID_DEBUG is not set | 659 | # CONFIG_HID_DEBUG is not set |
660 | # CONFIG_HIDRAW is not set | ||
661 | # CONFIG_HID_PID is not set | ||
763 | 662 | ||
764 | # | 663 | # |
765 | # USB support | 664 | # Special HID drivers |
766 | # | 665 | # |
767 | # CONFIG_USB_ARCH_HAS_HCD is not set | 666 | CONFIG_HID_COMPAT=y |
667 | CONFIG_USB_SUPPORT=y | ||
668 | CONFIG_USB_ARCH_HAS_HCD=y | ||
768 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 669 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
769 | # CONFIG_USB_ARCH_HAS_EHCI is not set | 670 | # CONFIG_USB_ARCH_HAS_EHCI is not set |
671 | # CONFIG_USB is not set | ||
672 | # CONFIG_USB_OTG_WHITELIST is not set | ||
673 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | ||
770 | 674 | ||
771 | # | 675 | # |
772 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 676 | # Enable Host or Gadget support to see Inventra options |
773 | # | 677 | # |
774 | 678 | ||
775 | # | 679 | # |
776 | # USB Gadget Support | 680 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
777 | # | 681 | # |
778 | # CONFIG_USB_GADGET is not set | 682 | # CONFIG_USB_GADGET is not set |
779 | |||
780 | # | ||
781 | # MMC/SD Card support | ||
782 | # | ||
783 | # CONFIG_MMC is not set | 683 | # CONFIG_MMC is not set |
784 | 684 | # CONFIG_MEMSTICK is not set | |
785 | # | ||
786 | # LED devices | ||
787 | # | ||
788 | # CONFIG_NEW_LEDS is not set | 685 | # CONFIG_NEW_LEDS is not set |
789 | 686 | # CONFIG_ACCESSIBILITY is not set | |
790 | # | ||
791 | # LED drivers | ||
792 | # | ||
793 | |||
794 | # | ||
795 | # LED Triggers | ||
796 | # | ||
797 | |||
798 | # | ||
799 | # InfiniBand support | ||
800 | # | ||
801 | |||
802 | # | ||
803 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
804 | # | ||
805 | |||
806 | # | ||
807 | # Real Time Clock | ||
808 | # | ||
809 | # CONFIG_RTC_CLASS is not set | 687 | # CONFIG_RTC_CLASS is not set |
810 | 688 | # CONFIG_DMADEVICES is not set | |
811 | # | 689 | # CONFIG_UIO is not set |
812 | # DMA Engine support | 690 | # CONFIG_STAGING is not set |
813 | # | ||
814 | # CONFIG_DMA_ENGINE is not set | ||
815 | |||
816 | # | ||
817 | # DMA Clients | ||
818 | # | ||
819 | |||
820 | # | ||
821 | # DMA Devices | ||
822 | # | ||
823 | |||
824 | # | ||
825 | # Auxiliary Display support | ||
826 | # | ||
827 | |||
828 | # | ||
829 | # Virtualization | ||
830 | # | ||
831 | 691 | ||
832 | # | 692 | # |
833 | # File systems | 693 | # File systems |
@@ -836,18 +696,16 @@ CONFIG_EXT2_FS=y | |||
836 | # CONFIG_EXT2_FS_XATTR is not set | 696 | # CONFIG_EXT2_FS_XATTR is not set |
837 | # CONFIG_EXT2_FS_XIP is not set | 697 | # CONFIG_EXT2_FS_XIP is not set |
838 | # CONFIG_EXT3_FS is not set | 698 | # CONFIG_EXT3_FS is not set |
839 | # CONFIG_EXT4DEV_FS is not set | 699 | # CONFIG_EXT4_FS is not set |
840 | # CONFIG_REISERFS_FS is not set | 700 | # CONFIG_REISERFS_FS is not set |
841 | # CONFIG_JFS_FS is not set | 701 | # CONFIG_JFS_FS is not set |
842 | # CONFIG_FS_POSIX_ACL is not set | 702 | # CONFIG_FS_POSIX_ACL is not set |
703 | CONFIG_FILE_LOCKING=y | ||
843 | # CONFIG_XFS_FS is not set | 704 | # CONFIG_XFS_FS is not set |
844 | # CONFIG_GFS2_FS is not set | 705 | CONFIG_DNOTIFY=y |
845 | # CONFIG_MINIX_FS is not set | ||
846 | # CONFIG_ROMFS_FS is not set | ||
847 | CONFIG_INOTIFY=y | 706 | CONFIG_INOTIFY=y |
848 | CONFIG_INOTIFY_USER=y | 707 | CONFIG_INOTIFY_USER=y |
849 | # CONFIG_QUOTA is not set | 708 | # CONFIG_QUOTA is not set |
850 | CONFIG_DNOTIFY=y | ||
851 | # CONFIG_AUTOFS_FS is not set | 709 | # CONFIG_AUTOFS_FS is not set |
852 | # CONFIG_AUTOFS4_FS is not set | 710 | # CONFIG_AUTOFS4_FS is not set |
853 | # CONFIG_FUSE_FS is not set | 711 | # CONFIG_FUSE_FS is not set |
@@ -871,11 +729,11 @@ CONFIG_DNOTIFY=y | |||
871 | CONFIG_PROC_FS=y | 729 | CONFIG_PROC_FS=y |
872 | CONFIG_PROC_KCORE=y | 730 | CONFIG_PROC_KCORE=y |
873 | CONFIG_PROC_SYSCTL=y | 731 | CONFIG_PROC_SYSCTL=y |
732 | CONFIG_PROC_PAGE_MONITOR=y | ||
874 | # CONFIG_SYSFS is not set | 733 | # CONFIG_SYSFS is not set |
875 | # CONFIG_TMPFS is not set | 734 | # CONFIG_TMPFS is not set |
876 | # CONFIG_HUGETLBFS is not set | 735 | # CONFIG_HUGETLBFS is not set |
877 | # CONFIG_HUGETLB_PAGE is not set | 736 | # CONFIG_HUGETLB_PAGE is not set |
878 | CONFIG_RAMFS=y | ||
879 | 737 | ||
880 | # | 738 | # |
881 | # Miscellaneous filesystems | 739 | # Miscellaneous filesystems |
@@ -890,31 +748,33 @@ CONFIG_RAMFS=y | |||
890 | CONFIG_JFFS2_FS=y | 748 | CONFIG_JFFS2_FS=y |
891 | CONFIG_JFFS2_FS_DEBUG=0 | 749 | CONFIG_JFFS2_FS_DEBUG=0 |
892 | CONFIG_JFFS2_FS_WRITEBUFFER=y | 750 | CONFIG_JFFS2_FS_WRITEBUFFER=y |
751 | # CONFIG_JFFS2_FS_WBUF_VERIFY is not set | ||
893 | # CONFIG_JFFS2_SUMMARY is not set | 752 | # CONFIG_JFFS2_SUMMARY is not set |
894 | # CONFIG_JFFS2_FS_XATTR is not set | 753 | # CONFIG_JFFS2_FS_XATTR is not set |
895 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | 754 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set |
896 | CONFIG_JFFS2_ZLIB=y | 755 | CONFIG_JFFS2_ZLIB=y |
756 | # CONFIG_JFFS2_LZO is not set | ||
897 | CONFIG_JFFS2_RTIME=y | 757 | CONFIG_JFFS2_RTIME=y |
898 | # CONFIG_JFFS2_RUBIN is not set | 758 | # CONFIG_JFFS2_RUBIN is not set |
899 | # CONFIG_CRAMFS is not set | 759 | # CONFIG_CRAMFS is not set |
900 | # CONFIG_VXFS_FS is not set | 760 | # CONFIG_VXFS_FS is not set |
761 | # CONFIG_MINIX_FS is not set | ||
762 | # CONFIG_OMFS_FS is not set | ||
901 | # CONFIG_HPFS_FS is not set | 763 | # CONFIG_HPFS_FS is not set |
902 | # CONFIG_QNX4FS_FS is not set | 764 | # CONFIG_QNX4FS_FS is not set |
765 | # CONFIG_ROMFS_FS is not set | ||
903 | # CONFIG_SYSV_FS is not set | 766 | # CONFIG_SYSV_FS is not set |
904 | # CONFIG_UFS_FS is not set | 767 | # CONFIG_UFS_FS is not set |
905 | 768 | CONFIG_NETWORK_FILESYSTEMS=y | |
906 | # | ||
907 | # Network File Systems | ||
908 | # | ||
909 | CONFIG_NFS_FS=y | 769 | CONFIG_NFS_FS=y |
910 | # CONFIG_NFS_V3 is not set | 770 | # CONFIG_NFS_V3 is not set |
911 | # CONFIG_NFS_V4 is not set | 771 | # CONFIG_NFS_V4 is not set |
912 | # CONFIG_NFS_DIRECTIO is not set | ||
913 | # CONFIG_NFSD is not set | ||
914 | CONFIG_ROOT_NFS=y | 772 | CONFIG_ROOT_NFS=y |
773 | # CONFIG_NFSD is not set | ||
915 | CONFIG_LOCKD=y | 774 | CONFIG_LOCKD=y |
916 | CONFIG_NFS_COMMON=y | 775 | CONFIG_NFS_COMMON=y |
917 | CONFIG_SUNRPC=y | 776 | CONFIG_SUNRPC=y |
777 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
918 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 778 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
919 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 779 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
920 | # CONFIG_SMB_FS is not set | 780 | # CONFIG_SMB_FS is not set |
@@ -922,40 +782,34 @@ CONFIG_SUNRPC=y | |||
922 | # CONFIG_NCP_FS is not set | 782 | # CONFIG_NCP_FS is not set |
923 | # CONFIG_CODA_FS is not set | 783 | # CONFIG_CODA_FS is not set |
924 | # CONFIG_AFS_FS is not set | 784 | # CONFIG_AFS_FS is not set |
925 | # CONFIG_9P_FS is not set | ||
926 | 785 | ||
927 | # | 786 | # |
928 | # Partition Types | 787 | # Partition Types |
929 | # | 788 | # |
930 | # CONFIG_PARTITION_ADVANCED is not set | 789 | # CONFIG_PARTITION_ADVANCED is not set |
931 | CONFIG_MSDOS_PARTITION=y | 790 | CONFIG_MSDOS_PARTITION=y |
932 | |||
933 | # | ||
934 | # Native Language Support | ||
935 | # | ||
936 | # CONFIG_NLS is not set | 791 | # CONFIG_NLS is not set |
937 | 792 | ||
938 | # | 793 | # |
939 | # Distributed Lock Manager | ||
940 | # | ||
941 | |||
942 | # | ||
943 | # Profiling support | ||
944 | # | ||
945 | # CONFIG_PROFILING is not set | ||
946 | |||
947 | # | ||
948 | # Kernel hacking | 794 | # Kernel hacking |
949 | # | 795 | # |
950 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 796 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
951 | # CONFIG_PRINTK_TIME is not set | 797 | # CONFIG_PRINTK_TIME is not set |
798 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
952 | CONFIG_ENABLE_MUST_CHECK=y | 799 | CONFIG_ENABLE_MUST_CHECK=y |
800 | CONFIG_FRAME_WARN=1024 | ||
953 | # CONFIG_MAGIC_SYSRQ is not set | 801 | # CONFIG_MAGIC_SYSRQ is not set |
954 | # CONFIG_UNUSED_SYMBOLS is not set | 802 | # CONFIG_UNUSED_SYMBOLS is not set |
955 | # CONFIG_HEADERS_CHECK is not set | 803 | # CONFIG_HEADERS_CHECK is not set |
956 | # CONFIG_DEBUG_KERNEL is not set | 804 | # CONFIG_DEBUG_KERNEL is not set |
957 | CONFIG_LOG_BUF_SHIFT=14 | ||
958 | # CONFIG_DEBUG_BUGVERBOSE is not set | 805 | # CONFIG_DEBUG_BUGVERBOSE is not set |
806 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
807 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
808 | # CONFIG_LATENCYTOP is not set | ||
809 | CONFIG_NOP_TRACER=y | ||
810 | CONFIG_HAVE_FTRACE=y | ||
811 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
812 | # CONFIG_SAMPLES is not set | ||
959 | # CONFIG_SH_STANDARD_BIOS is not set | 813 | # CONFIG_SH_STANDARD_BIOS is not set |
960 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 814 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
961 | # CONFIG_SH_KGDB is not set | 815 | # CONFIG_SH_KGDB is not set |
@@ -964,11 +818,92 @@ CONFIG_LOG_BUF_SHIFT=14 | |||
964 | # Security options | 818 | # Security options |
965 | # | 819 | # |
966 | # CONFIG_KEYS is not set | 820 | # CONFIG_KEYS is not set |
821 | # CONFIG_SECURITYFS is not set | ||
822 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
823 | CONFIG_CRYPTO=y | ||
824 | |||
825 | # | ||
826 | # Crypto core or helper | ||
827 | # | ||
828 | # CONFIG_CRYPTO_FIPS is not set | ||
829 | # CONFIG_CRYPTO_MANAGER is not set | ||
830 | # CONFIG_CRYPTO_GF128MUL is not set | ||
831 | # CONFIG_CRYPTO_NULL is not set | ||
832 | # CONFIG_CRYPTO_CRYPTD is not set | ||
833 | # CONFIG_CRYPTO_AUTHENC is not set | ||
834 | # CONFIG_CRYPTO_TEST is not set | ||
835 | |||
836 | # | ||
837 | # Authenticated Encryption with Associated Data | ||
838 | # | ||
839 | # CONFIG_CRYPTO_CCM is not set | ||
840 | # CONFIG_CRYPTO_GCM is not set | ||
841 | # CONFIG_CRYPTO_SEQIV is not set | ||
842 | |||
843 | # | ||
844 | # Block modes | ||
845 | # | ||
846 | # CONFIG_CRYPTO_CBC is not set | ||
847 | # CONFIG_CRYPTO_CTR is not set | ||
848 | # CONFIG_CRYPTO_CTS is not set | ||
849 | # CONFIG_CRYPTO_ECB is not set | ||
850 | # CONFIG_CRYPTO_LRW is not set | ||
851 | # CONFIG_CRYPTO_PCBC is not set | ||
852 | # CONFIG_CRYPTO_XTS is not set | ||
853 | |||
854 | # | ||
855 | # Hash modes | ||
856 | # | ||
857 | # CONFIG_CRYPTO_HMAC is not set | ||
858 | # CONFIG_CRYPTO_XCBC is not set | ||
859 | |||
860 | # | ||
861 | # Digest | ||
862 | # | ||
863 | # CONFIG_CRYPTO_CRC32C is not set | ||
864 | # CONFIG_CRYPTO_MD4 is not set | ||
865 | # CONFIG_CRYPTO_MD5 is not set | ||
866 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
867 | # CONFIG_CRYPTO_RMD128 is not set | ||
868 | # CONFIG_CRYPTO_RMD160 is not set | ||
869 | # CONFIG_CRYPTO_RMD256 is not set | ||
870 | # CONFIG_CRYPTO_RMD320 is not set | ||
871 | # CONFIG_CRYPTO_SHA1 is not set | ||
872 | # CONFIG_CRYPTO_SHA256 is not set | ||
873 | # CONFIG_CRYPTO_SHA512 is not set | ||
874 | # CONFIG_CRYPTO_TGR192 is not set | ||
875 | # CONFIG_CRYPTO_WP512 is not set | ||
876 | |||
877 | # | ||
878 | # Ciphers | ||
879 | # | ||
880 | # CONFIG_CRYPTO_AES is not set | ||
881 | # CONFIG_CRYPTO_ANUBIS is not set | ||
882 | # CONFIG_CRYPTO_ARC4 is not set | ||
883 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
884 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
885 | # CONFIG_CRYPTO_CAST5 is not set | ||
886 | # CONFIG_CRYPTO_CAST6 is not set | ||
887 | # CONFIG_CRYPTO_DES is not set | ||
888 | # CONFIG_CRYPTO_FCRYPT is not set | ||
889 | # CONFIG_CRYPTO_KHAZAD is not set | ||
890 | # CONFIG_CRYPTO_SALSA20 is not set | ||
891 | # CONFIG_CRYPTO_SEED is not set | ||
892 | # CONFIG_CRYPTO_SERPENT is not set | ||
893 | # CONFIG_CRYPTO_TEA is not set | ||
894 | # CONFIG_CRYPTO_TWOFISH is not set | ||
895 | |||
896 | # | ||
897 | # Compression | ||
898 | # | ||
899 | # CONFIG_CRYPTO_DEFLATE is not set | ||
900 | # CONFIG_CRYPTO_LZO is not set | ||
967 | 901 | ||
968 | # | 902 | # |
969 | # Cryptographic options | 903 | # Random Number Generation |
970 | # | 904 | # |
971 | # CONFIG_CRYPTO is not set | 905 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
906 | CONFIG_CRYPTO_HW=y | ||
972 | 907 | ||
973 | # | 908 | # |
974 | # Library routines | 909 | # Library routines |
@@ -976,10 +911,14 @@ CONFIG_LOG_BUF_SHIFT=14 | |||
976 | CONFIG_BITREVERSE=y | 911 | CONFIG_BITREVERSE=y |
977 | CONFIG_CRC_CCITT=y | 912 | CONFIG_CRC_CCITT=y |
978 | # CONFIG_CRC16 is not set | 913 | # CONFIG_CRC16 is not set |
914 | # CONFIG_CRC_T10DIF is not set | ||
915 | # CONFIG_CRC_ITU_T is not set | ||
979 | CONFIG_CRC32=y | 916 | CONFIG_CRC32=y |
917 | # CONFIG_CRC7 is not set | ||
980 | # CONFIG_LIBCRC32C is not set | 918 | # CONFIG_LIBCRC32C is not set |
981 | CONFIG_ZLIB_INFLATE=y | 919 | CONFIG_ZLIB_INFLATE=y |
982 | CONFIG_ZLIB_DEFLATE=y | 920 | CONFIG_ZLIB_DEFLATE=y |
983 | CONFIG_PLIST=y | 921 | CONFIG_PLIST=y |
984 | CONFIG_HAS_IOMEM=y | 922 | CONFIG_HAS_IOMEM=y |
985 | CONFIG_HAS_IOPORT=y | 923 | CONFIG_HAS_IOPORT=y |
924 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/sh/configs/se7712_defconfig b/arch/sh/configs/se7712_defconfig index 7be79cd04eb0..869ab1737deb 100644 --- a/arch/sh/configs/se7712_defconfig +++ b/arch/sh/configs/se7712_defconfig | |||
@@ -1,24 +1,26 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.26-rc6 | 3 | # Linux kernel version: 2.6.27 |
4 | # Wed Jun 18 16:36:08 2008 | 4 | # Wed Oct 22 19:08:12 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
8 | CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig" | ||
8 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
9 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 10 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
10 | CONFIG_GENERIC_HWEIGHT=y | 11 | CONFIG_GENERIC_HWEIGHT=y |
11 | CONFIG_GENERIC_HARDIRQS=y | 12 | CONFIG_GENERIC_HARDIRQS=y |
13 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
12 | CONFIG_GENERIC_IRQ_PROBE=y | 14 | CONFIG_GENERIC_IRQ_PROBE=y |
13 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 15 | # CONFIG_GENERIC_GPIO is not set |
14 | CONFIG_GENERIC_TIME=y | 16 | CONFIG_GENERIC_TIME=y |
15 | CONFIG_GENERIC_CLOCKEVENTS=y | 17 | CONFIG_GENERIC_CLOCKEVENTS=y |
16 | CONFIG_STACKTRACE_SUPPORT=y | 18 | CONFIG_STACKTRACE_SUPPORT=y |
17 | CONFIG_LOCKDEP_SUPPORT=y | 19 | CONFIG_LOCKDEP_SUPPORT=y |
20 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
18 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 21 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
19 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 22 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
20 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 23 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
21 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
22 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 24 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
23 | 25 | ||
24 | # | 26 | # |
@@ -51,7 +53,6 @@ CONFIG_SYSCTL=y | |||
51 | CONFIG_EMBEDDED=y | 53 | CONFIG_EMBEDDED=y |
52 | CONFIG_UID16=y | 54 | CONFIG_UID16=y |
53 | CONFIG_SYSCTL_SYSCALL=y | 55 | CONFIG_SYSCTL_SYSCALL=y |
54 | CONFIG_SYSCTL_SYSCALL_CHECK=y | ||
55 | CONFIG_KALLSYMS=y | 56 | CONFIG_KALLSYMS=y |
56 | CONFIG_KALLSYMS_ALL=y | 57 | CONFIG_KALLSYMS_ALL=y |
57 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 58 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
@@ -68,17 +69,22 @@ CONFIG_SIGNALFD=y | |||
68 | CONFIG_TIMERFD=y | 69 | CONFIG_TIMERFD=y |
69 | CONFIG_EVENTFD=y | 70 | CONFIG_EVENTFD=y |
70 | # CONFIG_SHMEM is not set | 71 | # CONFIG_SHMEM is not set |
72 | CONFIG_AIO=y | ||
71 | CONFIG_VM_EVENT_COUNTERS=y | 73 | CONFIG_VM_EVENT_COUNTERS=y |
74 | CONFIG_PCI_QUIRKS=y | ||
72 | CONFIG_SLAB=y | 75 | CONFIG_SLAB=y |
73 | # CONFIG_SLUB is not set | 76 | # CONFIG_SLUB is not set |
74 | # CONFIG_SLOB is not set | 77 | # CONFIG_SLOB is not set |
75 | # CONFIG_PROFILING is not set | 78 | # CONFIG_PROFILING is not set |
76 | # CONFIG_MARKERS is not set | 79 | # CONFIG_MARKERS is not set |
77 | CONFIG_HAVE_OPROFILE=y | 80 | CONFIG_HAVE_OPROFILE=y |
78 | # CONFIG_HAVE_KPROBES is not set | 81 | # CONFIG_KPROBES is not set |
79 | # CONFIG_HAVE_KRETPROBES is not set | 82 | CONFIG_HAVE_IOREMAP_PROT=y |
80 | # CONFIG_HAVE_DMA_ATTRS is not set | 83 | CONFIG_HAVE_KPROBES=y |
81 | CONFIG_PROC_PAGE_MONITOR=y | 84 | CONFIG_HAVE_KRETPROBES=y |
85 | CONFIG_HAVE_ARCH_TRACEHOOK=y | ||
86 | CONFIG_HAVE_CLK=y | ||
87 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
82 | CONFIG_SLABINFO=y | 88 | CONFIG_SLABINFO=y |
83 | CONFIG_RT_MUTEXES=y | 89 | CONFIG_RT_MUTEXES=y |
84 | CONFIG_TINY_SHMEM=y | 90 | CONFIG_TINY_SHMEM=y |
@@ -88,12 +94,13 @@ CONFIG_MODULES=y | |||
88 | # CONFIG_MODULE_UNLOAD is not set | 94 | # CONFIG_MODULE_UNLOAD is not set |
89 | # CONFIG_MODVERSIONS is not set | 95 | # CONFIG_MODVERSIONS is not set |
90 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 96 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
91 | # CONFIG_KMOD is not set | 97 | CONFIG_KMOD=y |
92 | CONFIG_BLOCK=y | 98 | CONFIG_BLOCK=y |
93 | # CONFIG_LBD is not set | 99 | # CONFIG_LBD is not set |
94 | # CONFIG_BLK_DEV_IO_TRACE is not set | 100 | # CONFIG_BLK_DEV_IO_TRACE is not set |
95 | # CONFIG_LSF is not set | 101 | # CONFIG_LSF is not set |
96 | # CONFIG_BLK_DEV_BSG is not set | 102 | # CONFIG_BLK_DEV_BSG is not set |
103 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
97 | 104 | ||
98 | # | 105 | # |
99 | # IO Schedulers | 106 | # IO Schedulers |
@@ -108,6 +115,7 @@ CONFIG_IOSCHED_NOOP=y | |||
108 | CONFIG_DEFAULT_NOOP=y | 115 | CONFIG_DEFAULT_NOOP=y |
109 | CONFIG_DEFAULT_IOSCHED="noop" | 116 | CONFIG_DEFAULT_IOSCHED="noop" |
110 | CONFIG_CLASSIC_RCU=y | 117 | CONFIG_CLASSIC_RCU=y |
118 | # CONFIG_FREEZER is not set | ||
111 | 119 | ||
112 | # | 120 | # |
113 | # System type | 121 | # System type |
@@ -167,6 +175,7 @@ CONFIG_PAGE_SIZE_4KB=y | |||
167 | # CONFIG_PAGE_SIZE_8KB is not set | 175 | # CONFIG_PAGE_SIZE_8KB is not set |
168 | # CONFIG_PAGE_SIZE_16KB is not set | 176 | # CONFIG_PAGE_SIZE_16KB is not set |
169 | # CONFIG_PAGE_SIZE_64KB is not set | 177 | # CONFIG_PAGE_SIZE_64KB is not set |
178 | CONFIG_ENTRY_OFFSET=0x00001000 | ||
170 | CONFIG_SELECT_MEMORY_MODEL=y | 179 | CONFIG_SELECT_MEMORY_MODEL=y |
171 | CONFIG_FLATMEM_MANUAL=y | 180 | CONFIG_FLATMEM_MANUAL=y |
172 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 181 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
@@ -174,12 +183,13 @@ CONFIG_FLATMEM_MANUAL=y | |||
174 | CONFIG_FLATMEM=y | 183 | CONFIG_FLATMEM=y |
175 | CONFIG_FLAT_NODE_MEM_MAP=y | 184 | CONFIG_FLAT_NODE_MEM_MAP=y |
176 | CONFIG_SPARSEMEM_STATIC=y | 185 | CONFIG_SPARSEMEM_STATIC=y |
177 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
178 | CONFIG_PAGEFLAGS_EXTENDED=y | 186 | CONFIG_PAGEFLAGS_EXTENDED=y |
179 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 187 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
180 | # CONFIG_RESOURCES_64BIT is not set | 188 | # CONFIG_RESOURCES_64BIT is not set |
189 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
181 | CONFIG_ZONE_DMA_FLAG=0 | 190 | CONFIG_ZONE_DMA_FLAG=0 |
182 | CONFIG_NR_QUICK=2 | 191 | CONFIG_NR_QUICK=2 |
192 | CONFIG_UNEVICTABLE_LRU=y | ||
183 | 193 | ||
184 | # | 194 | # |
185 | # Cache configuration | 195 | # Cache configuration |
@@ -207,7 +217,6 @@ CONFIG_CPU_HAS_DSP=y | |||
207 | # | 217 | # |
208 | CONFIG_SOLUTION_ENGINE=y | 218 | CONFIG_SOLUTION_ENGINE=y |
209 | CONFIG_SH_SOLUTION_ENGINE=y | 219 | CONFIG_SH_SOLUTION_ENGINE=y |
210 | # CONFIG_SH_AP325RXA is not set | ||
211 | 220 | ||
212 | # | 221 | # |
213 | # Timer and clock configuration | 222 | # Timer and clock configuration |
@@ -215,7 +224,6 @@ CONFIG_SH_SOLUTION_ENGINE=y | |||
215 | CONFIG_SH_TMU=y | 224 | CONFIG_SH_TMU=y |
216 | CONFIG_SH_TIMER_IRQ=16 | 225 | CONFIG_SH_TIMER_IRQ=16 |
217 | CONFIG_SH_PCLK_FREQ=66666666 | 226 | CONFIG_SH_PCLK_FREQ=66666666 |
218 | # CONFIG_TICK_ONESHOT is not set | ||
219 | # CONFIG_NO_HZ is not set | 227 | # CONFIG_NO_HZ is not set |
220 | # CONFIG_HIGH_RES_TIMERS is not set | 228 | # CONFIG_HIGH_RES_TIMERS is not set |
221 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | 229 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y |
@@ -251,6 +259,7 @@ CONFIG_HZ=250 | |||
251 | # CONFIG_SCHED_HRTICK is not set | 259 | # CONFIG_SCHED_HRTICK is not set |
252 | # CONFIG_KEXEC is not set | 260 | # CONFIG_KEXEC is not set |
253 | # CONFIG_CRASH_DUMP is not set | 261 | # CONFIG_CRASH_DUMP is not set |
262 | # CONFIG_SECCOMP is not set | ||
254 | # CONFIG_PREEMPT_NONE is not set | 263 | # CONFIG_PREEMPT_NONE is not set |
255 | CONFIG_PREEMPT_VOLUNTARY=y | 264 | CONFIG_PREEMPT_VOLUNTARY=y |
256 | # CONFIG_PREEMPT is not set | 265 | # CONFIG_PREEMPT is not set |
@@ -279,11 +288,9 @@ CONFIG_CF_BASE_ADDR=0xb8000000 | |||
279 | # Executable file formats | 288 | # Executable file formats |
280 | # | 289 | # |
281 | CONFIG_BINFMT_ELF=y | 290 | CONFIG_BINFMT_ELF=y |
291 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
292 | # CONFIG_HAVE_AOUT is not set | ||
282 | # CONFIG_BINFMT_MISC is not set | 293 | # CONFIG_BINFMT_MISC is not set |
283 | |||
284 | # | ||
285 | # Networking | ||
286 | # | ||
287 | CONFIG_NET=y | 294 | CONFIG_NET=y |
288 | 295 | ||
289 | # | 296 | # |
@@ -297,6 +304,7 @@ CONFIG_XFRM=y | |||
297 | # CONFIG_XFRM_SUB_POLICY is not set | 304 | # CONFIG_XFRM_SUB_POLICY is not set |
298 | # CONFIG_XFRM_MIGRATE is not set | 305 | # CONFIG_XFRM_MIGRATE is not set |
299 | # CONFIG_XFRM_STATISTICS is not set | 306 | # CONFIG_XFRM_STATISTICS is not set |
307 | CONFIG_XFRM_IPCOMP=y | ||
300 | CONFIG_NET_KEY=y | 308 | CONFIG_NET_KEY=y |
301 | # CONFIG_NET_KEY_MIGRATE is not set | 309 | # CONFIG_NET_KEY_MIGRATE is not set |
302 | CONFIG_INET=y | 310 | CONFIG_INET=y |
@@ -341,6 +349,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
341 | # CONFIG_TIPC is not set | 349 | # CONFIG_TIPC is not set |
342 | # CONFIG_ATM is not set | 350 | # CONFIG_ATM is not set |
343 | # CONFIG_BRIDGE is not set | 351 | # CONFIG_BRIDGE is not set |
352 | # CONFIG_NET_DSA is not set | ||
344 | # CONFIG_VLAN_8021Q is not set | 353 | # CONFIG_VLAN_8021Q is not set |
345 | # CONFIG_DECNET is not set | 354 | # CONFIG_DECNET is not set |
346 | # CONFIG_LLC2 is not set | 355 | # CONFIG_LLC2 is not set |
@@ -359,7 +368,7 @@ CONFIG_NET_SCH_CBQ=y | |||
359 | CONFIG_NET_SCH_HTB=y | 368 | CONFIG_NET_SCH_HTB=y |
360 | CONFIG_NET_SCH_HFSC=y | 369 | CONFIG_NET_SCH_HFSC=y |
361 | CONFIG_NET_SCH_PRIO=y | 370 | CONFIG_NET_SCH_PRIO=y |
362 | # CONFIG_NET_SCH_RR is not set | 371 | # CONFIG_NET_SCH_MULTIQ is not set |
363 | CONFIG_NET_SCH_RED=y | 372 | CONFIG_NET_SCH_RED=y |
364 | CONFIG_NET_SCH_SFQ=y | 373 | CONFIG_NET_SCH_SFQ=y |
365 | CONFIG_NET_SCH_TEQL=y | 374 | CONFIG_NET_SCH_TEQL=y |
@@ -395,12 +404,11 @@ CONFIG_NET_SCH_FIFO=y | |||
395 | # CONFIG_IRDA is not set | 404 | # CONFIG_IRDA is not set |
396 | # CONFIG_BT is not set | 405 | # CONFIG_BT is not set |
397 | # CONFIG_AF_RXRPC is not set | 406 | # CONFIG_AF_RXRPC is not set |
407 | # CONFIG_PHONET is not set | ||
398 | CONFIG_FIB_RULES=y | 408 | CONFIG_FIB_RULES=y |
399 | 409 | CONFIG_WIRELESS=y | |
400 | # | ||
401 | # Wireless | ||
402 | # | ||
403 | # CONFIG_CFG80211 is not set | 410 | # CONFIG_CFG80211 is not set |
411 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
404 | # CONFIG_WIRELESS_EXT is not set | 412 | # CONFIG_WIRELESS_EXT is not set |
405 | # CONFIG_MAC80211 is not set | 413 | # CONFIG_MAC80211 is not set |
406 | # CONFIG_IEEE80211 is not set | 414 | # CONFIG_IEEE80211 is not set |
@@ -418,6 +426,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | |||
418 | CONFIG_STANDALONE=y | 426 | CONFIG_STANDALONE=y |
419 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 427 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
420 | CONFIG_FW_LOADER=y | 428 | CONFIG_FW_LOADER=y |
429 | CONFIG_FIRMWARE_IN_KERNEL=y | ||
430 | CONFIG_EXTRA_FIRMWARE="" | ||
421 | # CONFIG_DEBUG_DRIVER is not set | 431 | # CONFIG_DEBUG_DRIVER is not set |
422 | # CONFIG_DEBUG_DEVRES is not set | 432 | # CONFIG_DEBUG_DEVRES is not set |
423 | # CONFIG_SYS_HYPERVISOR is not set | 433 | # CONFIG_SYS_HYPERVISOR is not set |
@@ -504,6 +514,7 @@ CONFIG_BLK_DEV=y | |||
504 | # CONFIG_BLK_DEV_RAM is not set | 514 | # CONFIG_BLK_DEV_RAM is not set |
505 | # CONFIG_CDROM_PKTCDVD is not set | 515 | # CONFIG_CDROM_PKTCDVD is not set |
506 | # CONFIG_ATA_OVER_ETH is not set | 516 | # CONFIG_ATA_OVER_ETH is not set |
517 | # CONFIG_BLK_DEV_HD is not set | ||
507 | CONFIG_MISC_DEVICES=y | 518 | CONFIG_MISC_DEVICES=y |
508 | # CONFIG_EEPROM_93CX6 is not set | 519 | # CONFIG_EEPROM_93CX6 is not set |
509 | # CONFIG_ENCLOSURE_SERVICES is not set | 520 | # CONFIG_ENCLOSURE_SERVICES is not set |
@@ -550,6 +561,7 @@ CONFIG_SCSI_WAIT_SCAN=m | |||
550 | CONFIG_SCSI_LOWLEVEL=y | 561 | CONFIG_SCSI_LOWLEVEL=y |
551 | # CONFIG_ISCSI_TCP is not set | 562 | # CONFIG_ISCSI_TCP is not set |
552 | # CONFIG_SCSI_DEBUG is not set | 563 | # CONFIG_SCSI_DEBUG is not set |
564 | # CONFIG_SCSI_DH is not set | ||
553 | CONFIG_ATA=y | 565 | CONFIG_ATA=y |
554 | # CONFIG_ATA_NONSTANDARD is not set | 566 | # CONFIG_ATA_NONSTANDARD is not set |
555 | CONFIG_SATA_PMP=y | 567 | CONFIG_SATA_PMP=y |
@@ -558,7 +570,6 @@ CONFIG_ATA_SFF=y | |||
558 | CONFIG_PATA_PLATFORM=y | 570 | CONFIG_PATA_PLATFORM=y |
559 | # CONFIG_MD is not set | 571 | # CONFIG_MD is not set |
560 | CONFIG_NETDEVICES=y | 572 | CONFIG_NETDEVICES=y |
561 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
562 | # CONFIG_DUMMY is not set | 573 | # CONFIG_DUMMY is not set |
563 | # CONFIG_BONDING is not set | 574 | # CONFIG_BONDING is not set |
564 | # CONFIG_MACVLAN is not set | 575 | # CONFIG_MACVLAN is not set |
@@ -593,9 +604,11 @@ CONFIG_SH_ETH=y | |||
593 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 604 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
594 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 605 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
595 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 606 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
607 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
608 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
609 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
596 | # CONFIG_B44 is not set | 610 | # CONFIG_B44 is not set |
597 | CONFIG_NETDEV_1000=y | 611 | CONFIG_NETDEV_1000=y |
598 | # CONFIG_E1000E_ENABLED is not set | ||
599 | CONFIG_NETDEV_10000=y | 612 | CONFIG_NETDEV_10000=y |
600 | 613 | ||
601 | # | 614 | # |
@@ -657,6 +670,7 @@ CONFIG_HW_RANDOM=m | |||
657 | # CONFIG_POWER_SUPPLY is not set | 670 | # CONFIG_POWER_SUPPLY is not set |
658 | # CONFIG_HWMON is not set | 671 | # CONFIG_HWMON is not set |
659 | # CONFIG_THERMAL is not set | 672 | # CONFIG_THERMAL is not set |
673 | # CONFIG_THERMAL_HWMON is not set | ||
660 | # CONFIG_WATCHDOG is not set | 674 | # CONFIG_WATCHDOG is not set |
661 | 675 | ||
662 | # | 676 | # |
@@ -668,8 +682,11 @@ CONFIG_SSB_POSSIBLE=y | |||
668 | # | 682 | # |
669 | # Multifunction device drivers | 683 | # Multifunction device drivers |
670 | # | 684 | # |
685 | # CONFIG_MFD_CORE is not set | ||
671 | # CONFIG_MFD_SM501 is not set | 686 | # CONFIG_MFD_SM501 is not set |
672 | # CONFIG_HTC_PASIC3 is not set | 687 | # CONFIG_HTC_PASIC3 is not set |
688 | # CONFIG_MFD_TMIO is not set | ||
689 | # CONFIG_MFD_WM8400 is not set | ||
673 | 690 | ||
674 | # | 691 | # |
675 | # Multimedia devices | 692 | # Multimedia devices |
@@ -699,10 +716,6 @@ CONFIG_SSB_POSSIBLE=y | |||
699 | # Display device support | 716 | # Display device support |
700 | # | 717 | # |
701 | # CONFIG_DISPLAY_SUPPORT is not set | 718 | # CONFIG_DISPLAY_SUPPORT is not set |
702 | |||
703 | # | ||
704 | # Sound | ||
705 | # | ||
706 | # CONFIG_SOUND is not set | 719 | # CONFIG_SOUND is not set |
707 | CONFIG_USB_SUPPORT=y | 720 | CONFIG_USB_SUPPORT=y |
708 | CONFIG_USB_ARCH_HAS_HCD=y | 721 | CONFIG_USB_ARCH_HAS_HCD=y |
@@ -713,6 +726,10 @@ CONFIG_USB_ARCH_HAS_HCD=y | |||
713 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | 726 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set |
714 | 727 | ||
715 | # | 728 | # |
729 | # Enable Host or Gadget support to see Inventra options | ||
730 | # | ||
731 | |||
732 | # | ||
716 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 733 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
717 | # | 734 | # |
718 | # CONFIG_USB_GADGET is not set | 735 | # CONFIG_USB_GADGET is not set |
@@ -734,7 +751,9 @@ CONFIG_LEDS_TRIGGERS=y | |||
734 | # CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set | 751 | # CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set |
735 | # CONFIG_ACCESSIBILITY is not set | 752 | # CONFIG_ACCESSIBILITY is not set |
736 | # CONFIG_RTC_CLASS is not set | 753 | # CONFIG_RTC_CLASS is not set |
754 | # CONFIG_DMADEVICES is not set | ||
737 | # CONFIG_UIO is not set | 755 | # CONFIG_UIO is not set |
756 | # CONFIG_STAGING is not set | ||
738 | 757 | ||
739 | # | 758 | # |
740 | # File systems | 759 | # File systems |
@@ -748,12 +767,13 @@ CONFIG_EXT3_FS=y | |||
748 | CONFIG_EXT3_FS_XATTR=y | 767 | CONFIG_EXT3_FS_XATTR=y |
749 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 768 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
750 | # CONFIG_EXT3_FS_SECURITY is not set | 769 | # CONFIG_EXT3_FS_SECURITY is not set |
751 | # CONFIG_EXT4DEV_FS is not set | 770 | # CONFIG_EXT4_FS is not set |
752 | CONFIG_JBD=y | 771 | CONFIG_JBD=y |
753 | CONFIG_FS_MBCACHE=y | 772 | CONFIG_FS_MBCACHE=y |
754 | # CONFIG_REISERFS_FS is not set | 773 | # CONFIG_REISERFS_FS is not set |
755 | # CONFIG_JFS_FS is not set | 774 | # CONFIG_JFS_FS is not set |
756 | CONFIG_FS_POSIX_ACL=y | 775 | CONFIG_FS_POSIX_ACL=y |
776 | CONFIG_FILE_LOCKING=y | ||
757 | # CONFIG_XFS_FS is not set | 777 | # CONFIG_XFS_FS is not set |
758 | # CONFIG_OCFS2_FS is not set | 778 | # CONFIG_OCFS2_FS is not set |
759 | # CONFIG_DNOTIFY is not set | 779 | # CONFIG_DNOTIFY is not set |
@@ -782,6 +802,7 @@ CONFIG_FS_POSIX_ACL=y | |||
782 | CONFIG_PROC_FS=y | 802 | CONFIG_PROC_FS=y |
783 | # CONFIG_PROC_KCORE is not set | 803 | # CONFIG_PROC_KCORE is not set |
784 | CONFIG_PROC_SYSCTL=y | 804 | CONFIG_PROC_SYSCTL=y |
805 | CONFIG_PROC_PAGE_MONITOR=y | ||
785 | CONFIG_SYSFS=y | 806 | CONFIG_SYSFS=y |
786 | CONFIG_TMPFS=y | 807 | CONFIG_TMPFS=y |
787 | # CONFIG_TMPFS_POSIX_ACL is not set | 808 | # CONFIG_TMPFS_POSIX_ACL is not set |
@@ -813,6 +834,7 @@ CONFIG_JFFS2_RTIME=y | |||
813 | CONFIG_CRAMFS=y | 834 | CONFIG_CRAMFS=y |
814 | # CONFIG_VXFS_FS is not set | 835 | # CONFIG_VXFS_FS is not set |
815 | # CONFIG_MINIX_FS is not set | 836 | # CONFIG_MINIX_FS is not set |
837 | # CONFIG_OMFS_FS is not set | ||
816 | # CONFIG_HPFS_FS is not set | 838 | # CONFIG_HPFS_FS is not set |
817 | # CONFIG_QNX4FS_FS is not set | 839 | # CONFIG_QNX4FS_FS is not set |
818 | # CONFIG_ROMFS_FS is not set | 840 | # CONFIG_ROMFS_FS is not set |
@@ -822,12 +844,12 @@ CONFIG_NETWORK_FILESYSTEMS=y | |||
822 | CONFIG_NFS_FS=y | 844 | CONFIG_NFS_FS=y |
823 | # CONFIG_NFS_V3 is not set | 845 | # CONFIG_NFS_V3 is not set |
824 | # CONFIG_NFS_V4 is not set | 846 | # CONFIG_NFS_V4 is not set |
825 | # CONFIG_NFSD is not set | ||
826 | CONFIG_ROOT_NFS=y | 847 | CONFIG_ROOT_NFS=y |
848 | # CONFIG_NFSD is not set | ||
827 | CONFIG_LOCKD=y | 849 | CONFIG_LOCKD=y |
828 | CONFIG_NFS_COMMON=y | 850 | CONFIG_NFS_COMMON=y |
829 | CONFIG_SUNRPC=y | 851 | CONFIG_SUNRPC=y |
830 | # CONFIG_SUNRPC_BIND34 is not set | 852 | # CONFIG_SUNRPC_REGISTER_V4 is not set |
831 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 853 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
832 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 854 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
833 | # CONFIG_SMB_FS is not set | 855 | # CONFIG_SMB_FS is not set |
@@ -877,13 +899,26 @@ CONFIG_SCHED_DEBUG=y | |||
877 | CONFIG_DEBUG_INFO=y | 899 | CONFIG_DEBUG_INFO=y |
878 | # CONFIG_DEBUG_VM is not set | 900 | # CONFIG_DEBUG_VM is not set |
879 | # CONFIG_DEBUG_WRITECOUNT is not set | 901 | # CONFIG_DEBUG_WRITECOUNT is not set |
902 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
880 | # CONFIG_DEBUG_LIST is not set | 903 | # CONFIG_DEBUG_LIST is not set |
881 | # CONFIG_DEBUG_SG is not set | 904 | # CONFIG_DEBUG_SG is not set |
882 | CONFIG_FRAME_POINTER=y | 905 | CONFIG_FRAME_POINTER=y |
883 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
884 | # CONFIG_RCU_TORTURE_TEST is not set | 906 | # CONFIG_RCU_TORTURE_TEST is not set |
907 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
885 | # CONFIG_BACKTRACE_SELF_TEST is not set | 908 | # CONFIG_BACKTRACE_SELF_TEST is not set |
909 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
886 | # CONFIG_FAULT_INJECTION is not set | 910 | # CONFIG_FAULT_INJECTION is not set |
911 | # CONFIG_LATENCYTOP is not set | ||
912 | CONFIG_SYSCTL_SYSCALL_CHECK=y | ||
913 | CONFIG_NOP_TRACER=y | ||
914 | CONFIG_HAVE_FTRACE=y | ||
915 | # CONFIG_FTRACE is not set | ||
916 | # CONFIG_IRQSOFF_TRACER is not set | ||
917 | # CONFIG_SCHED_TRACER is not set | ||
918 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
919 | # CONFIG_BOOT_TRACER is not set | ||
920 | # CONFIG_STACK_TRACER is not set | ||
921 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
887 | # CONFIG_SAMPLES is not set | 922 | # CONFIG_SAMPLES is not set |
888 | # CONFIG_SH_STANDARD_BIOS is not set | 923 | # CONFIG_SH_STANDARD_BIOS is not set |
889 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 924 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
@@ -899,16 +934,19 @@ CONFIG_FRAME_POINTER=y | |||
899 | # | 934 | # |
900 | # CONFIG_KEYS is not set | 935 | # CONFIG_KEYS is not set |
901 | # CONFIG_SECURITY is not set | 936 | # CONFIG_SECURITY is not set |
937 | # CONFIG_SECURITYFS is not set | ||
902 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 938 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
903 | CONFIG_CRYPTO=y | 939 | CONFIG_CRYPTO=y |
904 | 940 | ||
905 | # | 941 | # |
906 | # Crypto core or helper | 942 | # Crypto core or helper |
907 | # | 943 | # |
944 | # CONFIG_CRYPTO_FIPS is not set | ||
908 | CONFIG_CRYPTO_ALGAPI=y | 945 | CONFIG_CRYPTO_ALGAPI=y |
909 | CONFIG_CRYPTO_AEAD=y | 946 | CONFIG_CRYPTO_AEAD=y |
910 | CONFIG_CRYPTO_BLKCIPHER=y | 947 | CONFIG_CRYPTO_BLKCIPHER=y |
911 | CONFIG_CRYPTO_HASH=y | 948 | CONFIG_CRYPTO_HASH=y |
949 | CONFIG_CRYPTO_RNG=y | ||
912 | CONFIG_CRYPTO_MANAGER=y | 950 | CONFIG_CRYPTO_MANAGER=y |
913 | # CONFIG_CRYPTO_GF128MUL is not set | 951 | # CONFIG_CRYPTO_GF128MUL is not set |
914 | # CONFIG_CRYPTO_NULL is not set | 952 | # CONFIG_CRYPTO_NULL is not set |
@@ -947,6 +985,10 @@ CONFIG_CRYPTO_HMAC=y | |||
947 | # CONFIG_CRYPTO_MD4 is not set | 985 | # CONFIG_CRYPTO_MD4 is not set |
948 | CONFIG_CRYPTO_MD5=y | 986 | CONFIG_CRYPTO_MD5=y |
949 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 987 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
988 | # CONFIG_CRYPTO_RMD128 is not set | ||
989 | # CONFIG_CRYPTO_RMD160 is not set | ||
990 | # CONFIG_CRYPTO_RMD256 is not set | ||
991 | # CONFIG_CRYPTO_RMD320 is not set | ||
950 | CONFIG_CRYPTO_SHA1=y | 992 | CONFIG_CRYPTO_SHA1=y |
951 | # CONFIG_CRYPTO_SHA256 is not set | 993 | # CONFIG_CRYPTO_SHA256 is not set |
952 | # CONFIG_CRYPTO_SHA512 is not set | 994 | # CONFIG_CRYPTO_SHA512 is not set |
@@ -977,15 +1019,20 @@ CONFIG_CRYPTO_DES=y | |||
977 | # | 1019 | # |
978 | CONFIG_CRYPTO_DEFLATE=y | 1020 | CONFIG_CRYPTO_DEFLATE=y |
979 | # CONFIG_CRYPTO_LZO is not set | 1021 | # CONFIG_CRYPTO_LZO is not set |
1022 | |||
1023 | # | ||
1024 | # Random Number Generation | ||
1025 | # | ||
1026 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
980 | CONFIG_CRYPTO_HW=y | 1027 | CONFIG_CRYPTO_HW=y |
981 | 1028 | ||
982 | # | 1029 | # |
983 | # Library routines | 1030 | # Library routines |
984 | # | 1031 | # |
985 | CONFIG_BITREVERSE=y | 1032 | CONFIG_BITREVERSE=y |
986 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
987 | CONFIG_CRC_CCITT=y | 1033 | CONFIG_CRC_CCITT=y |
988 | # CONFIG_CRC16 is not set | 1034 | # CONFIG_CRC16 is not set |
1035 | # CONFIG_CRC_T10DIF is not set | ||
989 | # CONFIG_CRC_ITU_T is not set | 1036 | # CONFIG_CRC_ITU_T is not set |
990 | CONFIG_CRC32=y | 1037 | CONFIG_CRC32=y |
991 | # CONFIG_CRC7 is not set | 1038 | # CONFIG_CRC7 is not set |
diff --git a/arch/sh/configs/se7721_defconfig b/arch/sh/configs/se7721_defconfig index f3d4ca0caa46..b52be14074d8 100644 --- a/arch/sh/configs/se7721_defconfig +++ b/arch/sh/configs/se7721_defconfig | |||
@@ -1,24 +1,26 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.25-rc5 | 3 | # Linux kernel version: 2.6.27 |
4 | # Fri Mar 21 12:05:31 2008 | 4 | # Wed Oct 22 19:12:06 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
8 | CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig" | ||
8 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
9 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 10 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
10 | CONFIG_GENERIC_HWEIGHT=y | 11 | CONFIG_GENERIC_HWEIGHT=y |
11 | CONFIG_GENERIC_HARDIRQS=y | 12 | CONFIG_GENERIC_HARDIRQS=y |
13 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
12 | CONFIG_GENERIC_IRQ_PROBE=y | 14 | CONFIG_GENERIC_IRQ_PROBE=y |
13 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 15 | # CONFIG_GENERIC_GPIO is not set |
14 | CONFIG_GENERIC_TIME=y | 16 | CONFIG_GENERIC_TIME=y |
15 | CONFIG_GENERIC_CLOCKEVENTS=y | 17 | CONFIG_GENERIC_CLOCKEVENTS=y |
16 | CONFIG_STACKTRACE_SUPPORT=y | 18 | CONFIG_STACKTRACE_SUPPORT=y |
17 | CONFIG_LOCKDEP_SUPPORT=y | 19 | CONFIG_LOCKDEP_SUPPORT=y |
20 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
18 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 21 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
19 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 22 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
20 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 23 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
21 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
22 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 24 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
23 | 25 | ||
24 | # | 26 | # |
@@ -71,30 +73,38 @@ CONFIG_SIGNALFD=y | |||
71 | CONFIG_TIMERFD=y | 73 | CONFIG_TIMERFD=y |
72 | CONFIG_EVENTFD=y | 74 | CONFIG_EVENTFD=y |
73 | # CONFIG_SHMEM is not set | 75 | # CONFIG_SHMEM is not set |
76 | CONFIG_AIO=y | ||
74 | CONFIG_VM_EVENT_COUNTERS=y | 77 | CONFIG_VM_EVENT_COUNTERS=y |
78 | CONFIG_PCI_QUIRKS=y | ||
75 | CONFIG_SLAB=y | 79 | CONFIG_SLAB=y |
76 | # CONFIG_SLUB is not set | 80 | # CONFIG_SLUB is not set |
77 | # CONFIG_SLOB is not set | 81 | # CONFIG_SLOB is not set |
78 | # CONFIG_PROFILING is not set | 82 | # CONFIG_PROFILING is not set |
79 | # CONFIG_MARKERS is not set | 83 | # CONFIG_MARKERS is not set |
80 | CONFIG_HAVE_OPROFILE=y | 84 | CONFIG_HAVE_OPROFILE=y |
81 | # CONFIG_HAVE_KPROBES is not set | 85 | # CONFIG_KPROBES is not set |
82 | # CONFIG_HAVE_KRETPROBES is not set | 86 | CONFIG_HAVE_IOREMAP_PROT=y |
83 | CONFIG_PROC_PAGE_MONITOR=y | 87 | CONFIG_HAVE_KPROBES=y |
88 | CONFIG_HAVE_KRETPROBES=y | ||
89 | CONFIG_HAVE_ARCH_TRACEHOOK=y | ||
90 | CONFIG_HAVE_CLK=y | ||
91 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
84 | CONFIG_SLABINFO=y | 92 | CONFIG_SLABINFO=y |
85 | CONFIG_RT_MUTEXES=y | 93 | CONFIG_RT_MUTEXES=y |
86 | CONFIG_TINY_SHMEM=y | 94 | CONFIG_TINY_SHMEM=y |
87 | CONFIG_BASE_SMALL=1 | 95 | CONFIG_BASE_SMALL=1 |
88 | CONFIG_MODULES=y | 96 | CONFIG_MODULES=y |
97 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
89 | # CONFIG_MODULE_UNLOAD is not set | 98 | # CONFIG_MODULE_UNLOAD is not set |
90 | # CONFIG_MODVERSIONS is not set | 99 | # CONFIG_MODVERSIONS is not set |
91 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 100 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
92 | # CONFIG_KMOD is not set | 101 | CONFIG_KMOD=y |
93 | CONFIG_BLOCK=y | 102 | CONFIG_BLOCK=y |
94 | # CONFIG_LBD is not set | 103 | # CONFIG_LBD is not set |
95 | # CONFIG_BLK_DEV_IO_TRACE is not set | 104 | # CONFIG_BLK_DEV_IO_TRACE is not set |
96 | # CONFIG_LSF is not set | 105 | # CONFIG_LSF is not set |
97 | # CONFIG_BLK_DEV_BSG is not set | 106 | # CONFIG_BLK_DEV_BSG is not set |
107 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
98 | 108 | ||
99 | # | 109 | # |
100 | # IO Schedulers | 110 | # IO Schedulers |
@@ -109,6 +119,7 @@ CONFIG_IOSCHED_NOOP=y | |||
109 | CONFIG_DEFAULT_NOOP=y | 119 | CONFIG_DEFAULT_NOOP=y |
110 | CONFIG_DEFAULT_IOSCHED="noop" | 120 | CONFIG_DEFAULT_IOSCHED="noop" |
111 | CONFIG_CLASSIC_RCU=y | 121 | CONFIG_CLASSIC_RCU=y |
122 | # CONFIG_FREEZER is not set | ||
112 | 123 | ||
113 | # | 124 | # |
114 | # System type | 125 | # System type |
@@ -136,6 +147,7 @@ CONFIG_CPU_SUBTYPE_SH7721=y | |||
136 | # CONFIG_CPU_SUBTYPE_SH7751R is not set | 147 | # CONFIG_CPU_SUBTYPE_SH7751R is not set |
137 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | 148 | # CONFIG_CPU_SUBTYPE_SH7760 is not set |
138 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | 149 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set |
150 | # CONFIG_CPU_SUBTYPE_SH7723 is not set | ||
139 | # CONFIG_CPU_SUBTYPE_SH7763 is not set | 151 | # CONFIG_CPU_SUBTYPE_SH7763 is not set |
140 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | 152 | # CONFIG_CPU_SUBTYPE_SH7770 is not set |
141 | # CONFIG_CPU_SUBTYPE_SH7780 is not set | 153 | # CONFIG_CPU_SUBTYPE_SH7780 is not set |
@@ -165,7 +177,9 @@ CONFIG_ARCH_POPULATES_NODE_MAP=y | |||
165 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | 177 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y |
166 | CONFIG_PAGE_SIZE_4KB=y | 178 | CONFIG_PAGE_SIZE_4KB=y |
167 | # CONFIG_PAGE_SIZE_8KB is not set | 179 | # CONFIG_PAGE_SIZE_8KB is not set |
180 | # CONFIG_PAGE_SIZE_16KB is not set | ||
168 | # CONFIG_PAGE_SIZE_64KB is not set | 181 | # CONFIG_PAGE_SIZE_64KB is not set |
182 | CONFIG_ENTRY_OFFSET=0x00001000 | ||
169 | CONFIG_SELECT_MEMORY_MODEL=y | 183 | CONFIG_SELECT_MEMORY_MODEL=y |
170 | CONFIG_FLATMEM_MANUAL=y | 184 | CONFIG_FLATMEM_MANUAL=y |
171 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 185 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
@@ -173,11 +187,13 @@ CONFIG_FLATMEM_MANUAL=y | |||
173 | CONFIG_FLATMEM=y | 187 | CONFIG_FLATMEM=y |
174 | CONFIG_FLAT_NODE_MEM_MAP=y | 188 | CONFIG_FLAT_NODE_MEM_MAP=y |
175 | CONFIG_SPARSEMEM_STATIC=y | 189 | CONFIG_SPARSEMEM_STATIC=y |
176 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | 190 | CONFIG_PAGEFLAGS_EXTENDED=y |
177 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 191 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
178 | # CONFIG_RESOURCES_64BIT is not set | 192 | # CONFIG_RESOURCES_64BIT is not set |
193 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
179 | CONFIG_ZONE_DMA_FLAG=0 | 194 | CONFIG_ZONE_DMA_FLAG=0 |
180 | CONFIG_NR_QUICK=2 | 195 | CONFIG_NR_QUICK=2 |
196 | CONFIG_UNEVICTABLE_LRU=y | ||
181 | 197 | ||
182 | # | 198 | # |
183 | # Cache configuration | 199 | # Cache configuration |
@@ -211,7 +227,6 @@ CONFIG_SH_7721_SOLUTION_ENGINE=y | |||
211 | CONFIG_SH_TMU=y | 227 | CONFIG_SH_TMU=y |
212 | CONFIG_SH_TIMER_IRQ=16 | 228 | CONFIG_SH_TIMER_IRQ=16 |
213 | CONFIG_SH_PCLK_FREQ=33333333 | 229 | CONFIG_SH_PCLK_FREQ=33333333 |
214 | # CONFIG_TICK_ONESHOT is not set | ||
215 | # CONFIG_NO_HZ is not set | 230 | # CONFIG_NO_HZ is not set |
216 | # CONFIG_HIGH_RES_TIMERS is not set | 231 | # CONFIG_HIGH_RES_TIMERS is not set |
217 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | 232 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y |
@@ -247,6 +262,7 @@ CONFIG_HZ=250 | |||
247 | # CONFIG_SCHED_HRTICK is not set | 262 | # CONFIG_SCHED_HRTICK is not set |
248 | # CONFIG_KEXEC is not set | 263 | # CONFIG_KEXEC is not set |
249 | # CONFIG_CRASH_DUMP is not set | 264 | # CONFIG_CRASH_DUMP is not set |
265 | # CONFIG_SECCOMP is not set | ||
250 | # CONFIG_PREEMPT_NONE is not set | 266 | # CONFIG_PREEMPT_NONE is not set |
251 | CONFIG_PREEMPT_VOLUNTARY=y | 267 | CONFIG_PREEMPT_VOLUNTARY=y |
252 | # CONFIG_PREEMPT is not set | 268 | # CONFIG_PREEMPT is not set |
@@ -275,11 +291,9 @@ CONFIG_CF_BASE_ADDR=0xb8000000 | |||
275 | # Executable file formats | 291 | # Executable file formats |
276 | # | 292 | # |
277 | CONFIG_BINFMT_ELF=y | 293 | CONFIG_BINFMT_ELF=y |
294 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
295 | # CONFIG_HAVE_AOUT is not set | ||
278 | # CONFIG_BINFMT_MISC is not set | 296 | # CONFIG_BINFMT_MISC is not set |
279 | |||
280 | # | ||
281 | # Networking | ||
282 | # | ||
283 | CONFIG_NET=y | 297 | CONFIG_NET=y |
284 | 298 | ||
285 | # | 299 | # |
@@ -293,6 +307,7 @@ CONFIG_XFRM=y | |||
293 | # CONFIG_XFRM_SUB_POLICY is not set | 307 | # CONFIG_XFRM_SUB_POLICY is not set |
294 | # CONFIG_XFRM_MIGRATE is not set | 308 | # CONFIG_XFRM_MIGRATE is not set |
295 | # CONFIG_XFRM_STATISTICS is not set | 309 | # CONFIG_XFRM_STATISTICS is not set |
310 | CONFIG_XFRM_IPCOMP=y | ||
296 | CONFIG_NET_KEY=y | 311 | CONFIG_NET_KEY=y |
297 | # CONFIG_NET_KEY_MIGRATE is not set | 312 | # CONFIG_NET_KEY_MIGRATE is not set |
298 | CONFIG_INET=y | 313 | CONFIG_INET=y |
@@ -330,8 +345,6 @@ CONFIG_TCP_CONG_CUBIC=y | |||
330 | CONFIG_DEFAULT_TCP_CONG="cubic" | 345 | CONFIG_DEFAULT_TCP_CONG="cubic" |
331 | # CONFIG_TCP_MD5SIG is not set | 346 | # CONFIG_TCP_MD5SIG is not set |
332 | # CONFIG_IPV6 is not set | 347 | # CONFIG_IPV6 is not set |
333 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
334 | # CONFIG_INET6_TUNNEL is not set | ||
335 | # CONFIG_NETWORK_SECMARK is not set | 348 | # CONFIG_NETWORK_SECMARK is not set |
336 | # CONFIG_NETFILTER is not set | 349 | # CONFIG_NETFILTER is not set |
337 | # CONFIG_IP_DCCP is not set | 350 | # CONFIG_IP_DCCP is not set |
@@ -339,6 +352,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
339 | # CONFIG_TIPC is not set | 352 | # CONFIG_TIPC is not set |
340 | # CONFIG_ATM is not set | 353 | # CONFIG_ATM is not set |
341 | # CONFIG_BRIDGE is not set | 354 | # CONFIG_BRIDGE is not set |
355 | # CONFIG_NET_DSA is not set | ||
342 | # CONFIG_VLAN_8021Q is not set | 356 | # CONFIG_VLAN_8021Q is not set |
343 | # CONFIG_DECNET is not set | 357 | # CONFIG_DECNET is not set |
344 | # CONFIG_LLC2 is not set | 358 | # CONFIG_LLC2 is not set |
@@ -357,7 +371,7 @@ CONFIG_NET_SCH_CBQ=y | |||
357 | CONFIG_NET_SCH_HTB=y | 371 | CONFIG_NET_SCH_HTB=y |
358 | CONFIG_NET_SCH_HFSC=y | 372 | CONFIG_NET_SCH_HFSC=y |
359 | CONFIG_NET_SCH_PRIO=y | 373 | CONFIG_NET_SCH_PRIO=y |
360 | # CONFIG_NET_SCH_RR is not set | 374 | # CONFIG_NET_SCH_MULTIQ is not set |
361 | CONFIG_NET_SCH_RED=y | 375 | CONFIG_NET_SCH_RED=y |
362 | CONFIG_NET_SCH_SFQ=y | 376 | CONFIG_NET_SCH_SFQ=y |
363 | CONFIG_NET_SCH_TEQL=y | 377 | CONFIG_NET_SCH_TEQL=y |
@@ -393,12 +407,11 @@ CONFIG_NET_SCH_FIFO=y | |||
393 | # CONFIG_IRDA is not set | 407 | # CONFIG_IRDA is not set |
394 | # CONFIG_BT is not set | 408 | # CONFIG_BT is not set |
395 | # CONFIG_AF_RXRPC is not set | 409 | # CONFIG_AF_RXRPC is not set |
410 | # CONFIG_PHONET is not set | ||
396 | CONFIG_FIB_RULES=y | 411 | CONFIG_FIB_RULES=y |
397 | 412 | CONFIG_WIRELESS=y | |
398 | # | ||
399 | # Wireless | ||
400 | # | ||
401 | # CONFIG_CFG80211 is not set | 413 | # CONFIG_CFG80211 is not set |
414 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
402 | # CONFIG_WIRELESS_EXT is not set | 415 | # CONFIG_WIRELESS_EXT is not set |
403 | # CONFIG_MAC80211 is not set | 416 | # CONFIG_MAC80211 is not set |
404 | # CONFIG_IEEE80211 is not set | 417 | # CONFIG_IEEE80211 is not set |
@@ -416,6 +429,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | |||
416 | CONFIG_STANDALONE=y | 429 | CONFIG_STANDALONE=y |
417 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 430 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
418 | CONFIG_FW_LOADER=y | 431 | CONFIG_FW_LOADER=y |
432 | CONFIG_FIRMWARE_IN_KERNEL=y | ||
433 | CONFIG_EXTRA_FIRMWARE="" | ||
419 | # CONFIG_DEBUG_DRIVER is not set | 434 | # CONFIG_DEBUG_DRIVER is not set |
420 | # CONFIG_DEBUG_DEVRES is not set | 435 | # CONFIG_DEBUG_DEVRES is not set |
421 | # CONFIG_SYS_HYPERVISOR is not set | 436 | # CONFIG_SYS_HYPERVISOR is not set |
@@ -426,6 +441,7 @@ CONFIG_MTD_CONCAT=y | |||
426 | CONFIG_MTD_PARTITIONS=y | 441 | CONFIG_MTD_PARTITIONS=y |
427 | # CONFIG_MTD_REDBOOT_PARTS is not set | 442 | # CONFIG_MTD_REDBOOT_PARTS is not set |
428 | # CONFIG_MTD_CMDLINE_PARTS is not set | 443 | # CONFIG_MTD_CMDLINE_PARTS is not set |
444 | # CONFIG_MTD_AR7_PARTS is not set | ||
429 | 445 | ||
430 | # | 446 | # |
431 | # User Modules And Translation Layers | 447 | # User Modules And Translation Layers |
@@ -502,6 +518,7 @@ CONFIG_BLK_DEV=y | |||
502 | # CONFIG_BLK_DEV_RAM is not set | 518 | # CONFIG_BLK_DEV_RAM is not set |
503 | # CONFIG_CDROM_PKTCDVD is not set | 519 | # CONFIG_CDROM_PKTCDVD is not set |
504 | # CONFIG_ATA_OVER_ETH is not set | 520 | # CONFIG_ATA_OVER_ETH is not set |
521 | # CONFIG_BLK_DEV_HD is not set | ||
505 | CONFIG_MISC_DEVICES=y | 522 | CONFIG_MISC_DEVICES=y |
506 | # CONFIG_EEPROM_93CX6 is not set | 523 | # CONFIG_EEPROM_93CX6 is not set |
507 | # CONFIG_ENCLOSURE_SERVICES is not set | 524 | # CONFIG_ENCLOSURE_SERVICES is not set |
@@ -546,13 +563,15 @@ CONFIG_SCSI_WAIT_SCAN=m | |||
546 | # CONFIG_SCSI_SAS_LIBSAS is not set | 563 | # CONFIG_SCSI_SAS_LIBSAS is not set |
547 | # CONFIG_SCSI_SRP_ATTRS is not set | 564 | # CONFIG_SCSI_SRP_ATTRS is not set |
548 | # CONFIG_SCSI_LOWLEVEL is not set | 565 | # CONFIG_SCSI_LOWLEVEL is not set |
566 | # CONFIG_SCSI_DH is not set | ||
549 | CONFIG_ATA=y | 567 | CONFIG_ATA=y |
550 | # CONFIG_ATA_NONSTANDARD is not set | 568 | # CONFIG_ATA_NONSTANDARD is not set |
569 | CONFIG_SATA_PMP=y | ||
570 | CONFIG_ATA_SFF=y | ||
551 | # CONFIG_SATA_MV is not set | 571 | # CONFIG_SATA_MV is not set |
552 | CONFIG_PATA_PLATFORM=y | 572 | CONFIG_PATA_PLATFORM=y |
553 | # CONFIG_MD is not set | 573 | # CONFIG_MD is not set |
554 | CONFIG_NETDEVICES=y | 574 | CONFIG_NETDEVICES=y |
555 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
556 | # CONFIG_DUMMY is not set | 575 | # CONFIG_DUMMY is not set |
557 | # CONFIG_BONDING is not set | 576 | # CONFIG_BONDING is not set |
558 | # CONFIG_MACVLAN is not set | 577 | # CONFIG_MACVLAN is not set |
@@ -561,7 +580,6 @@ CONFIG_NETDEVICES=y | |||
561 | # CONFIG_VETH is not set | 580 | # CONFIG_VETH is not set |
562 | # CONFIG_NET_ETHERNET is not set | 581 | # CONFIG_NET_ETHERNET is not set |
563 | CONFIG_NETDEV_1000=y | 582 | CONFIG_NETDEV_1000=y |
564 | # CONFIG_E1000E_ENABLED is not set | ||
565 | CONFIG_NETDEV_10000=y | 583 | CONFIG_NETDEV_10000=y |
566 | 584 | ||
567 | # | 585 | # |
@@ -569,6 +587,7 @@ CONFIG_NETDEV_10000=y | |||
569 | # | 587 | # |
570 | # CONFIG_WLAN_PRE80211 is not set | 588 | # CONFIG_WLAN_PRE80211 is not set |
571 | # CONFIG_WLAN_80211 is not set | 589 | # CONFIG_WLAN_80211 is not set |
590 | # CONFIG_IWLWIFI_LEDS is not set | ||
572 | 591 | ||
573 | # | 592 | # |
574 | # USB Network Adapters | 593 | # USB Network Adapters |
@@ -591,7 +610,7 @@ CONFIG_NETDEV_10000=y | |||
591 | # Input device support | 610 | # Input device support |
592 | # | 611 | # |
593 | CONFIG_INPUT=y | 612 | CONFIG_INPUT=y |
594 | # CONFIG_INPUT_FF_MEMLESS is not set | 613 | CONFIG_INPUT_FF_MEMLESS=m |
595 | # CONFIG_INPUT_POLLDEV is not set | 614 | # CONFIG_INPUT_POLLDEV is not set |
596 | 615 | ||
597 | # | 616 | # |
@@ -620,6 +639,7 @@ CONFIG_INPUT_MOUSE=y | |||
620 | # CONFIG_MOUSE_PS2 is not set | 639 | # CONFIG_MOUSE_PS2 is not set |
621 | # CONFIG_MOUSE_SERIAL is not set | 640 | # CONFIG_MOUSE_SERIAL is not set |
622 | # CONFIG_MOUSE_APPLETOUCH is not set | 641 | # CONFIG_MOUSE_APPLETOUCH is not set |
642 | # CONFIG_MOUSE_BCM5974 is not set | ||
623 | # CONFIG_MOUSE_VSXXXAA is not set | 643 | # CONFIG_MOUSE_VSXXXAA is not set |
624 | # CONFIG_INPUT_JOYSTICK is not set | 644 | # CONFIG_INPUT_JOYSTICK is not set |
625 | # CONFIG_INPUT_TABLET is not set | 645 | # CONFIG_INPUT_TABLET is not set |
@@ -636,6 +656,7 @@ CONFIG_INPUT_MOUSE=y | |||
636 | # Character devices | 656 | # Character devices |
637 | # | 657 | # |
638 | # CONFIG_VT is not set | 658 | # CONFIG_VT is not set |
659 | CONFIG_DEVKMEM=y | ||
639 | # CONFIG_SERIAL_NONSTANDARD is not set | 660 | # CONFIG_SERIAL_NONSTANDARD is not set |
640 | 661 | ||
641 | # | 662 | # |
@@ -659,12 +680,7 @@ CONFIG_UNIX98_PTYS=y | |||
659 | # CONFIG_RAW_DRIVER is not set | 680 | # CONFIG_RAW_DRIVER is not set |
660 | # CONFIG_TCG_TPM is not set | 681 | # CONFIG_TCG_TPM is not set |
661 | # CONFIG_I2C is not set | 682 | # CONFIG_I2C is not set |
662 | |||
663 | # | ||
664 | # SPI support | ||
665 | # | ||
666 | # CONFIG_SPI is not set | 683 | # CONFIG_SPI is not set |
667 | # CONFIG_SPI_MASTER is not set | ||
668 | # CONFIG_W1 is not set | 684 | # CONFIG_W1 is not set |
669 | # CONFIG_POWER_SUPPLY is not set | 685 | # CONFIG_POWER_SUPPLY is not set |
670 | # CONFIG_HWMON is not set | 686 | # CONFIG_HWMON is not set |
@@ -680,13 +696,26 @@ CONFIG_SSB_POSSIBLE=y | |||
680 | # | 696 | # |
681 | # Multifunction device drivers | 697 | # Multifunction device drivers |
682 | # | 698 | # |
699 | # CONFIG_MFD_CORE is not set | ||
683 | # CONFIG_MFD_SM501 is not set | 700 | # CONFIG_MFD_SM501 is not set |
701 | # CONFIG_HTC_PASIC3 is not set | ||
702 | # CONFIG_MFD_TMIO is not set | ||
703 | # CONFIG_MFD_WM8400 is not set | ||
684 | 704 | ||
685 | # | 705 | # |
686 | # Multimedia devices | 706 | # Multimedia devices |
687 | # | 707 | # |
708 | |||
709 | # | ||
710 | # Multimedia core support | ||
711 | # | ||
688 | # CONFIG_VIDEO_DEV is not set | 712 | # CONFIG_VIDEO_DEV is not set |
689 | # CONFIG_DVB_CORE is not set | 713 | # CONFIG_DVB_CORE is not set |
714 | # CONFIG_VIDEO_MEDIA is not set | ||
715 | |||
716 | # | ||
717 | # Multimedia drivers | ||
718 | # | ||
690 | # CONFIG_DAB is not set | 719 | # CONFIG_DAB is not set |
691 | 720 | ||
692 | # | 721 | # |
@@ -701,10 +730,6 @@ CONFIG_SSB_POSSIBLE=y | |||
701 | # Display device support | 730 | # Display device support |
702 | # | 731 | # |
703 | # CONFIG_DISPLAY_SUPPORT is not set | 732 | # CONFIG_DISPLAY_SUPPORT is not set |
704 | |||
705 | # | ||
706 | # Sound | ||
707 | # | ||
708 | # CONFIG_SOUND is not set | 733 | # CONFIG_SOUND is not set |
709 | CONFIG_HID_SUPPORT=y | 734 | CONFIG_HID_SUPPORT=y |
710 | CONFIG_HID=y | 735 | CONFIG_HID=y |
@@ -715,9 +740,36 @@ CONFIG_HID=y | |||
715 | # USB Input Devices | 740 | # USB Input Devices |
716 | # | 741 | # |
717 | CONFIG_USB_HID=y | 742 | CONFIG_USB_HID=y |
718 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | 743 | # CONFIG_HID_PID is not set |
719 | # CONFIG_HID_FF is not set | ||
720 | # CONFIG_USB_HIDDEV is not set | 744 | # CONFIG_USB_HIDDEV is not set |
745 | |||
746 | # | ||
747 | # Special HID drivers | ||
748 | # | ||
749 | CONFIG_HID_COMPAT=y | ||
750 | CONFIG_HID_A4TECH=y | ||
751 | CONFIG_HID_APPLE=y | ||
752 | CONFIG_HID_BELKIN=y | ||
753 | CONFIG_HID_BRIGHT=y | ||
754 | CONFIG_HID_CHERRY=y | ||
755 | CONFIG_HID_CHICONY=y | ||
756 | CONFIG_HID_CYPRESS=y | ||
757 | CONFIG_HID_DELL=y | ||
758 | CONFIG_HID_EZKEY=y | ||
759 | CONFIG_HID_GYRATION=y | ||
760 | CONFIG_HID_LOGITECH=y | ||
761 | # CONFIG_LOGITECH_FF is not set | ||
762 | # CONFIG_LOGIRUMBLEPAD2_FF is not set | ||
763 | CONFIG_HID_MICROSOFT=y | ||
764 | CONFIG_HID_MONTEREY=y | ||
765 | CONFIG_HID_PANTHERLORD=y | ||
766 | # CONFIG_PANTHERLORD_FF is not set | ||
767 | CONFIG_HID_PETALYNX=y | ||
768 | CONFIG_HID_SAMSUNG=y | ||
769 | CONFIG_HID_SONY=y | ||
770 | CONFIG_HID_SUNPLUS=y | ||
771 | CONFIG_THRUSTMASTER_FF=m | ||
772 | CONFIG_ZEROPLUS_FF=m | ||
721 | CONFIG_USB_SUPPORT=y | 773 | CONFIG_USB_SUPPORT=y |
722 | CONFIG_USB_ARCH_HAS_HCD=y | 774 | CONFIG_USB_ARCH_HAS_HCD=y |
723 | CONFIG_USB_ARCH_HAS_OHCI=y | 775 | CONFIG_USB_ARCH_HAS_OHCI=y |
@@ -733,11 +785,16 @@ CONFIG_USB=y | |||
733 | CONFIG_USB_DEVICE_CLASS=y | 785 | CONFIG_USB_DEVICE_CLASS=y |
734 | # CONFIG_USB_DYNAMIC_MINORS is not set | 786 | # CONFIG_USB_DYNAMIC_MINORS is not set |
735 | # CONFIG_USB_OTG is not set | 787 | # CONFIG_USB_OTG is not set |
788 | # CONFIG_USB_OTG_WHITELIST is not set | ||
789 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | ||
790 | CONFIG_USB_MON=y | ||
736 | 791 | ||
737 | # | 792 | # |
738 | # USB Host Controller Drivers | 793 | # USB Host Controller Drivers |
739 | # | 794 | # |
795 | # CONFIG_USB_C67X00_HCD is not set | ||
740 | # CONFIG_USB_ISP116X_HCD is not set | 796 | # CONFIG_USB_ISP116X_HCD is not set |
797 | # CONFIG_USB_ISP1760_HCD is not set | ||
741 | CONFIG_USB_OHCI_HCD=y | 798 | CONFIG_USB_OHCI_HCD=y |
742 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set | 799 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set |
743 | # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set | 800 | # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set |
@@ -750,6 +807,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
750 | # | 807 | # |
751 | # CONFIG_USB_ACM is not set | 808 | # CONFIG_USB_ACM is not set |
752 | # CONFIG_USB_PRINTER is not set | 809 | # CONFIG_USB_PRINTER is not set |
810 | # CONFIG_USB_WDM is not set | ||
811 | # CONFIG_USB_TMC is not set | ||
753 | 812 | ||
754 | # | 813 | # |
755 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 814 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -771,6 +830,7 @@ CONFIG_USB_STORAGE=y | |||
771 | # CONFIG_USB_STORAGE_ALAUDA is not set | 830 | # CONFIG_USB_STORAGE_ALAUDA is not set |
772 | # CONFIG_USB_STORAGE_ONETOUCH is not set | 831 | # CONFIG_USB_STORAGE_ONETOUCH is not set |
773 | # CONFIG_USB_STORAGE_KARMA is not set | 832 | # CONFIG_USB_STORAGE_KARMA is not set |
833 | # CONFIG_USB_STORAGE_CYPRESS_ATACB is not set | ||
774 | # CONFIG_USB_LIBUSUAL is not set | 834 | # CONFIG_USB_LIBUSUAL is not set |
775 | 835 | ||
776 | # | 836 | # |
@@ -778,7 +838,6 @@ CONFIG_USB_STORAGE=y | |||
778 | # | 838 | # |
779 | # CONFIG_USB_MDC800 is not set | 839 | # CONFIG_USB_MDC800 is not set |
780 | # CONFIG_USB_MICROTEK is not set | 840 | # CONFIG_USB_MICROTEK is not set |
781 | CONFIG_USB_MON=y | ||
782 | 841 | ||
783 | # | 842 | # |
784 | # USB port drivers | 843 | # USB port drivers |
@@ -791,7 +850,7 @@ CONFIG_USB_MON=y | |||
791 | # CONFIG_USB_EMI62 is not set | 850 | # CONFIG_USB_EMI62 is not set |
792 | # CONFIG_USB_EMI26 is not set | 851 | # CONFIG_USB_EMI26 is not set |
793 | # CONFIG_USB_ADUTUX is not set | 852 | # CONFIG_USB_ADUTUX is not set |
794 | # CONFIG_USB_AUERSWALD is not set | 853 | # CONFIG_USB_SEVSEG is not set |
795 | # CONFIG_USB_RIO500 is not set | 854 | # CONFIG_USB_RIO500 is not set |
796 | # CONFIG_USB_LEGOTOWER is not set | 855 | # CONFIG_USB_LEGOTOWER is not set |
797 | # CONFIG_USB_LCD is not set | 856 | # CONFIG_USB_LCD is not set |
@@ -806,6 +865,8 @@ CONFIG_USB_MON=y | |||
806 | # CONFIG_USB_LD is not set | 865 | # CONFIG_USB_LD is not set |
807 | # CONFIG_USB_TRANCEVIBRATOR is not set | 866 | # CONFIG_USB_TRANCEVIBRATOR is not set |
808 | # CONFIG_USB_IOWARRIOR is not set | 867 | # CONFIG_USB_IOWARRIOR is not set |
868 | # CONFIG_USB_ISIGHTFW is not set | ||
869 | # CONFIG_USB_VST is not set | ||
809 | # CONFIG_USB_GADGET is not set | 870 | # CONFIG_USB_GADGET is not set |
810 | # CONFIG_MMC is not set | 871 | # CONFIG_MMC is not set |
811 | # CONFIG_MEMSTICK is not set | 872 | # CONFIG_MEMSTICK is not set |
@@ -822,12 +883,12 @@ CONFIG_LEDS_CLASS=y | |||
822 | CONFIG_LEDS_TRIGGERS=y | 883 | CONFIG_LEDS_TRIGGERS=y |
823 | # CONFIG_LEDS_TRIGGER_TIMER is not set | 884 | # CONFIG_LEDS_TRIGGER_TIMER is not set |
824 | # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set | 885 | # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set |
886 | # CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set | ||
887 | # CONFIG_ACCESSIBILITY is not set | ||
825 | # CONFIG_RTC_CLASS is not set | 888 | # CONFIG_RTC_CLASS is not set |
826 | 889 | # CONFIG_DMADEVICES is not set | |
827 | # | ||
828 | # Userspace I/O | ||
829 | # | ||
830 | # CONFIG_UIO is not set | 890 | # CONFIG_UIO is not set |
891 | # CONFIG_STAGING is not set | ||
831 | 892 | ||
832 | # | 893 | # |
833 | # File systems | 894 | # File systems |
@@ -841,14 +902,14 @@ CONFIG_EXT3_FS=y | |||
841 | CONFIG_EXT3_FS_XATTR=y | 902 | CONFIG_EXT3_FS_XATTR=y |
842 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 903 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
843 | # CONFIG_EXT3_FS_SECURITY is not set | 904 | # CONFIG_EXT3_FS_SECURITY is not set |
844 | # CONFIG_EXT4DEV_FS is not set | 905 | # CONFIG_EXT4_FS is not set |
845 | CONFIG_JBD=y | 906 | CONFIG_JBD=y |
846 | CONFIG_FS_MBCACHE=y | 907 | CONFIG_FS_MBCACHE=y |
847 | # CONFIG_REISERFS_FS is not set | 908 | # CONFIG_REISERFS_FS is not set |
848 | # CONFIG_JFS_FS is not set | 909 | # CONFIG_JFS_FS is not set |
849 | CONFIG_FS_POSIX_ACL=y | 910 | CONFIG_FS_POSIX_ACL=y |
911 | CONFIG_FILE_LOCKING=y | ||
850 | # CONFIG_XFS_FS is not set | 912 | # CONFIG_XFS_FS is not set |
851 | # CONFIG_GFS2_FS is not set | ||
852 | # CONFIG_OCFS2_FS is not set | 913 | # CONFIG_OCFS2_FS is not set |
853 | # CONFIG_DNOTIFY is not set | 914 | # CONFIG_DNOTIFY is not set |
854 | # CONFIG_INOTIFY is not set | 915 | # CONFIG_INOTIFY is not set |
@@ -879,6 +940,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
879 | CONFIG_PROC_FS=y | 940 | CONFIG_PROC_FS=y |
880 | # CONFIG_PROC_KCORE is not set | 941 | # CONFIG_PROC_KCORE is not set |
881 | CONFIG_PROC_SYSCTL=y | 942 | CONFIG_PROC_SYSCTL=y |
943 | CONFIG_PROC_PAGE_MONITOR=y | ||
882 | CONFIG_SYSFS=y | 944 | CONFIG_SYSFS=y |
883 | CONFIG_TMPFS=y | 945 | CONFIG_TMPFS=y |
884 | # CONFIG_TMPFS_POSIX_ACL is not set | 946 | # CONFIG_TMPFS_POSIX_ACL is not set |
@@ -910,6 +972,7 @@ CONFIG_JFFS2_RTIME=y | |||
910 | CONFIG_CRAMFS=y | 972 | CONFIG_CRAMFS=y |
911 | # CONFIG_VXFS_FS is not set | 973 | # CONFIG_VXFS_FS is not set |
912 | # CONFIG_MINIX_FS is not set | 974 | # CONFIG_MINIX_FS is not set |
975 | # CONFIG_OMFS_FS is not set | ||
913 | # CONFIG_HPFS_FS is not set | 976 | # CONFIG_HPFS_FS is not set |
914 | # CONFIG_QNX4FS_FS is not set | 977 | # CONFIG_QNX4FS_FS is not set |
915 | # CONFIG_ROMFS_FS is not set | 978 | # CONFIG_ROMFS_FS is not set |
@@ -971,6 +1034,7 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y | |||
971 | # CONFIG_PRINTK_TIME is not set | 1034 | # CONFIG_PRINTK_TIME is not set |
972 | CONFIG_ENABLE_WARN_DEPRECATED=y | 1035 | CONFIG_ENABLE_WARN_DEPRECATED=y |
973 | CONFIG_ENABLE_MUST_CHECK=y | 1036 | CONFIG_ENABLE_MUST_CHECK=y |
1037 | CONFIG_FRAME_WARN=1024 | ||
974 | # CONFIG_MAGIC_SYSRQ is not set | 1038 | # CONFIG_MAGIC_SYSRQ is not set |
975 | # CONFIG_UNUSED_SYMBOLS is not set | 1039 | # CONFIG_UNUSED_SYMBOLS is not set |
976 | # CONFIG_DEBUG_FS is not set | 1040 | # CONFIG_DEBUG_FS is not set |
@@ -981,6 +1045,7 @@ CONFIG_DEBUG_KERNEL=y | |||
981 | CONFIG_SCHED_DEBUG=y | 1045 | CONFIG_SCHED_DEBUG=y |
982 | # CONFIG_SCHEDSTATS is not set | 1046 | # CONFIG_SCHEDSTATS is not set |
983 | # CONFIG_TIMER_STATS is not set | 1047 | # CONFIG_TIMER_STATS is not set |
1048 | # CONFIG_DEBUG_OBJECTS is not set | ||
984 | # CONFIG_DEBUG_SLAB is not set | 1049 | # CONFIG_DEBUG_SLAB is not set |
985 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1050 | # CONFIG_DEBUG_RT_MUTEXES is not set |
986 | # CONFIG_RT_MUTEX_TESTER is not set | 1051 | # CONFIG_RT_MUTEX_TESTER is not set |
@@ -994,13 +1059,27 @@ CONFIG_SCHED_DEBUG=y | |||
994 | # CONFIG_DEBUG_KOBJECT is not set | 1059 | # CONFIG_DEBUG_KOBJECT is not set |
995 | CONFIG_DEBUG_INFO=y | 1060 | CONFIG_DEBUG_INFO=y |
996 | # CONFIG_DEBUG_VM is not set | 1061 | # CONFIG_DEBUG_VM is not set |
1062 | # CONFIG_DEBUG_WRITECOUNT is not set | ||
1063 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
997 | # CONFIG_DEBUG_LIST is not set | 1064 | # CONFIG_DEBUG_LIST is not set |
998 | # CONFIG_DEBUG_SG is not set | 1065 | # CONFIG_DEBUG_SG is not set |
999 | CONFIG_FRAME_POINTER=y | 1066 | CONFIG_FRAME_POINTER=y |
1000 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
1001 | # CONFIG_RCU_TORTURE_TEST is not set | 1067 | # CONFIG_RCU_TORTURE_TEST is not set |
1068 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
1002 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1069 | # CONFIG_BACKTRACE_SELF_TEST is not set |
1070 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
1003 | # CONFIG_FAULT_INJECTION is not set | 1071 | # CONFIG_FAULT_INJECTION is not set |
1072 | # CONFIG_LATENCYTOP is not set | ||
1073 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
1074 | CONFIG_NOP_TRACER=y | ||
1075 | CONFIG_HAVE_FTRACE=y | ||
1076 | # CONFIG_FTRACE is not set | ||
1077 | # CONFIG_IRQSOFF_TRACER is not set | ||
1078 | # CONFIG_SCHED_TRACER is not set | ||
1079 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
1080 | # CONFIG_BOOT_TRACER is not set | ||
1081 | # CONFIG_STACK_TRACER is not set | ||
1082 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
1004 | # CONFIG_SAMPLES is not set | 1083 | # CONFIG_SAMPLES is not set |
1005 | # CONFIG_SH_STANDARD_BIOS is not set | 1084 | # CONFIG_SH_STANDARD_BIOS is not set |
1006 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 1085 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
@@ -1016,55 +1095,96 @@ CONFIG_FRAME_POINTER=y | |||
1016 | # | 1095 | # |
1017 | # CONFIG_KEYS is not set | 1096 | # CONFIG_KEYS is not set |
1018 | # CONFIG_SECURITY is not set | 1097 | # CONFIG_SECURITY is not set |
1098 | # CONFIG_SECURITYFS is not set | ||
1019 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1099 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
1020 | CONFIG_CRYPTO=y | 1100 | CONFIG_CRYPTO=y |
1101 | |||
1102 | # | ||
1103 | # Crypto core or helper | ||
1104 | # | ||
1105 | # CONFIG_CRYPTO_FIPS is not set | ||
1021 | CONFIG_CRYPTO_ALGAPI=y | 1106 | CONFIG_CRYPTO_ALGAPI=y |
1022 | CONFIG_CRYPTO_AEAD=y | 1107 | CONFIG_CRYPTO_AEAD=y |
1023 | CONFIG_CRYPTO_BLKCIPHER=y | 1108 | CONFIG_CRYPTO_BLKCIPHER=y |
1024 | # CONFIG_CRYPTO_SEQIV is not set | ||
1025 | CONFIG_CRYPTO_HASH=y | 1109 | CONFIG_CRYPTO_HASH=y |
1110 | CONFIG_CRYPTO_RNG=y | ||
1026 | CONFIG_CRYPTO_MANAGER=y | 1111 | CONFIG_CRYPTO_MANAGER=y |
1112 | # CONFIG_CRYPTO_GF128MUL is not set | ||
1113 | # CONFIG_CRYPTO_NULL is not set | ||
1114 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1115 | CONFIG_CRYPTO_AUTHENC=y | ||
1116 | # CONFIG_CRYPTO_TEST is not set | ||
1117 | |||
1118 | # | ||
1119 | # Authenticated Encryption with Associated Data | ||
1120 | # | ||
1121 | # CONFIG_CRYPTO_CCM is not set | ||
1122 | # CONFIG_CRYPTO_GCM is not set | ||
1123 | # CONFIG_CRYPTO_SEQIV is not set | ||
1124 | |||
1125 | # | ||
1126 | # Block modes | ||
1127 | # | ||
1128 | CONFIG_CRYPTO_CBC=y | ||
1129 | # CONFIG_CRYPTO_CTR is not set | ||
1130 | # CONFIG_CRYPTO_CTS is not set | ||
1131 | # CONFIG_CRYPTO_ECB is not set | ||
1132 | # CONFIG_CRYPTO_LRW is not set | ||
1133 | # CONFIG_CRYPTO_PCBC is not set | ||
1134 | # CONFIG_CRYPTO_XTS is not set | ||
1135 | |||
1136 | # | ||
1137 | # Hash modes | ||
1138 | # | ||
1027 | CONFIG_CRYPTO_HMAC=y | 1139 | CONFIG_CRYPTO_HMAC=y |
1028 | # CONFIG_CRYPTO_XCBC is not set | 1140 | # CONFIG_CRYPTO_XCBC is not set |
1029 | # CONFIG_CRYPTO_NULL is not set | 1141 | |
1142 | # | ||
1143 | # Digest | ||
1144 | # | ||
1145 | # CONFIG_CRYPTO_CRC32C is not set | ||
1030 | # CONFIG_CRYPTO_MD4 is not set | 1146 | # CONFIG_CRYPTO_MD4 is not set |
1031 | CONFIG_CRYPTO_MD5=y | 1147 | CONFIG_CRYPTO_MD5=y |
1148 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
1149 | # CONFIG_CRYPTO_RMD128 is not set | ||
1150 | # CONFIG_CRYPTO_RMD160 is not set | ||
1151 | # CONFIG_CRYPTO_RMD256 is not set | ||
1152 | # CONFIG_CRYPTO_RMD320 is not set | ||
1032 | CONFIG_CRYPTO_SHA1=y | 1153 | CONFIG_CRYPTO_SHA1=y |
1033 | # CONFIG_CRYPTO_SHA256 is not set | 1154 | # CONFIG_CRYPTO_SHA256 is not set |
1034 | # CONFIG_CRYPTO_SHA512 is not set | 1155 | # CONFIG_CRYPTO_SHA512 is not set |
1035 | # CONFIG_CRYPTO_WP512 is not set | ||
1036 | # CONFIG_CRYPTO_TGR192 is not set | 1156 | # CONFIG_CRYPTO_TGR192 is not set |
1037 | # CONFIG_CRYPTO_GF128MUL is not set | 1157 | # CONFIG_CRYPTO_WP512 is not set |
1038 | # CONFIG_CRYPTO_ECB is not set | 1158 | |
1039 | CONFIG_CRYPTO_CBC=y | 1159 | # |
1040 | # CONFIG_CRYPTO_PCBC is not set | 1160 | # Ciphers |
1041 | # CONFIG_CRYPTO_LRW is not set | 1161 | # |
1042 | # CONFIG_CRYPTO_XTS is not set | ||
1043 | # CONFIG_CRYPTO_CTR is not set | ||
1044 | # CONFIG_CRYPTO_GCM is not set | ||
1045 | # CONFIG_CRYPTO_CCM is not set | ||
1046 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1047 | CONFIG_CRYPTO_DES=y | ||
1048 | # CONFIG_CRYPTO_FCRYPT is not set | ||
1049 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
1050 | # CONFIG_CRYPTO_TWOFISH is not set | ||
1051 | # CONFIG_CRYPTO_SERPENT is not set | ||
1052 | # CONFIG_CRYPTO_AES is not set | 1162 | # CONFIG_CRYPTO_AES is not set |
1163 | # CONFIG_CRYPTO_ANUBIS is not set | ||
1164 | # CONFIG_CRYPTO_ARC4 is not set | ||
1165 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
1166 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1053 | # CONFIG_CRYPTO_CAST5 is not set | 1167 | # CONFIG_CRYPTO_CAST5 is not set |
1054 | # CONFIG_CRYPTO_CAST6 is not set | 1168 | # CONFIG_CRYPTO_CAST6 is not set |
1055 | # CONFIG_CRYPTO_TEA is not set | 1169 | CONFIG_CRYPTO_DES=y |
1056 | # CONFIG_CRYPTO_ARC4 is not set | 1170 | # CONFIG_CRYPTO_FCRYPT is not set |
1057 | # CONFIG_CRYPTO_KHAZAD is not set | 1171 | # CONFIG_CRYPTO_KHAZAD is not set |
1058 | # CONFIG_CRYPTO_ANUBIS is not set | ||
1059 | # CONFIG_CRYPTO_SEED is not set | ||
1060 | # CONFIG_CRYPTO_SALSA20 is not set | 1172 | # CONFIG_CRYPTO_SALSA20 is not set |
1173 | # CONFIG_CRYPTO_SEED is not set | ||
1174 | # CONFIG_CRYPTO_SERPENT is not set | ||
1175 | # CONFIG_CRYPTO_TEA is not set | ||
1176 | # CONFIG_CRYPTO_TWOFISH is not set | ||
1177 | |||
1178 | # | ||
1179 | # Compression | ||
1180 | # | ||
1061 | CONFIG_CRYPTO_DEFLATE=y | 1181 | CONFIG_CRYPTO_DEFLATE=y |
1062 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
1063 | # CONFIG_CRYPTO_CRC32C is not set | ||
1064 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1065 | # CONFIG_CRYPTO_TEST is not set | ||
1066 | CONFIG_CRYPTO_AUTHENC=y | ||
1067 | # CONFIG_CRYPTO_LZO is not set | 1182 | # CONFIG_CRYPTO_LZO is not set |
1183 | |||
1184 | # | ||
1185 | # Random Number Generation | ||
1186 | # | ||
1187 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
1068 | CONFIG_CRYPTO_HW=y | 1188 | CONFIG_CRYPTO_HW=y |
1069 | 1189 | ||
1070 | # | 1190 | # |
@@ -1073,6 +1193,7 @@ CONFIG_CRYPTO_HW=y | |||
1073 | CONFIG_BITREVERSE=y | 1193 | CONFIG_BITREVERSE=y |
1074 | CONFIG_CRC_CCITT=y | 1194 | CONFIG_CRC_CCITT=y |
1075 | # CONFIG_CRC16 is not set | 1195 | # CONFIG_CRC16 is not set |
1196 | # CONFIG_CRC_T10DIF is not set | ||
1076 | # CONFIG_CRC_ITU_T is not set | 1197 | # CONFIG_CRC_ITU_T is not set |
1077 | CONFIG_CRC32=y | 1198 | CONFIG_CRC32=y |
1078 | # CONFIG_CRC7 is not set | 1199 | # CONFIG_CRC7 is not set |
diff --git a/arch/sh/configs/se7722_defconfig b/arch/sh/configs/se7722_defconfig index 8e6a6baf5d27..e6df51f098f0 100644 --- a/arch/sh/configs/se7722_defconfig +++ b/arch/sh/configs/se7722_defconfig | |||
@@ -1,53 +1,56 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.22-rc4 | 3 | # Linux kernel version: 2.6.27 |
4 | # Wed Jun 20 18:08:04 2007 | 4 | # Wed Oct 22 19:15:10 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | ||
8 | CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig" | ||
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
8 | CONFIG_GENERIC_BUG=y | 10 | CONFIG_GENERIC_BUG=y |
9 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
10 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
11 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
12 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
13 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
14 | CONFIG_GENERIC_TIME=y | 17 | CONFIG_GENERIC_TIME=y |
15 | CONFIG_GENERIC_CLOCKEVENTS=y | 18 | CONFIG_GENERIC_CLOCKEVENTS=y |
16 | CONFIG_SYS_SUPPORTS_NUMA=y | 19 | CONFIG_SYS_SUPPORTS_NUMA=y |
17 | CONFIG_STACKTRACE_SUPPORT=y | 20 | CONFIG_STACKTRACE_SUPPORT=y |
18 | CONFIG_LOCKDEP_SUPPORT=y | 21 | CONFIG_LOCKDEP_SUPPORT=y |
22 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
19 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 23 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
20 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 24 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
25 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | ||
21 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 26 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
22 | 27 | ||
23 | # | 28 | # |
24 | # Code maturity level options | 29 | # General setup |
25 | # | 30 | # |
26 | CONFIG_EXPERIMENTAL=y | 31 | CONFIG_EXPERIMENTAL=y |
27 | CONFIG_BROKEN_ON_SMP=y | 32 | CONFIG_BROKEN_ON_SMP=y |
28 | CONFIG_LOCK_KERNEL=y | 33 | CONFIG_LOCK_KERNEL=y |
29 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 34 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
30 | |||
31 | # | ||
32 | # General setup | ||
33 | # | ||
34 | CONFIG_LOCALVERSION="" | 35 | CONFIG_LOCALVERSION="" |
35 | CONFIG_LOCALVERSION_AUTO=y | 36 | CONFIG_LOCALVERSION_AUTO=y |
36 | CONFIG_SWAP=y | 37 | CONFIG_SWAP=y |
37 | CONFIG_SYSVIPC=y | 38 | CONFIG_SYSVIPC=y |
38 | # CONFIG_IPC_NS is not set | ||
39 | CONFIG_SYSVIPC_SYSCTL=y | 39 | CONFIG_SYSVIPC_SYSCTL=y |
40 | # CONFIG_POSIX_MQUEUE is not set | 40 | # CONFIG_POSIX_MQUEUE is not set |
41 | CONFIG_BSD_PROCESS_ACCT=y | 41 | CONFIG_BSD_PROCESS_ACCT=y |
42 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | 42 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set |
43 | # CONFIG_TASKSTATS is not set | 43 | # CONFIG_TASKSTATS is not set |
44 | # CONFIG_UTS_NS is not set | ||
45 | # CONFIG_AUDIT is not set | 44 | # CONFIG_AUDIT is not set |
46 | CONFIG_IKCONFIG=y | 45 | CONFIG_IKCONFIG=y |
47 | CONFIG_IKCONFIG_PROC=y | 46 | CONFIG_IKCONFIG_PROC=y |
48 | CONFIG_LOG_BUF_SHIFT=14 | 47 | CONFIG_LOG_BUF_SHIFT=14 |
49 | # CONFIG_SYSFS_DEPRECATED is not set | 48 | # CONFIG_CGROUPS is not set |
49 | # CONFIG_GROUP_SCHED is not set | ||
50 | CONFIG_SYSFS_DEPRECATED=y | ||
51 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
50 | # CONFIG_RELAY is not set | 52 | # CONFIG_RELAY is not set |
53 | # CONFIG_NAMESPACES is not set | ||
51 | CONFIG_BLK_DEV_INITRD=y | 54 | CONFIG_BLK_DEV_INITRD=y |
52 | CONFIG_INITRAMFS_SOURCE="" | 55 | CONFIG_INITRAMFS_SOURCE="" |
53 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 56 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
@@ -61,6 +64,7 @@ CONFIG_HOTPLUG=y | |||
61 | CONFIG_PRINTK=y | 64 | CONFIG_PRINTK=y |
62 | CONFIG_BUG=y | 65 | CONFIG_BUG=y |
63 | CONFIG_ELF_CORE=y | 66 | CONFIG_ELF_CORE=y |
67 | CONFIG_COMPAT_BRK=y | ||
64 | CONFIG_BASE_FULL=y | 68 | CONFIG_BASE_FULL=y |
65 | CONFIG_FUTEX=y | 69 | CONFIG_FUTEX=y |
66 | CONFIG_ANON_INODES=y | 70 | CONFIG_ANON_INODES=y |
@@ -69,32 +73,41 @@ CONFIG_SIGNALFD=y | |||
69 | CONFIG_TIMERFD=y | 73 | CONFIG_TIMERFD=y |
70 | CONFIG_EVENTFD=y | 74 | CONFIG_EVENTFD=y |
71 | CONFIG_SHMEM=y | 75 | CONFIG_SHMEM=y |
76 | CONFIG_AIO=y | ||
72 | CONFIG_VM_EVENT_COUNTERS=y | 77 | CONFIG_VM_EVENT_COUNTERS=y |
78 | CONFIG_PCI_QUIRKS=y | ||
73 | CONFIG_SLUB_DEBUG=y | 79 | CONFIG_SLUB_DEBUG=y |
74 | # CONFIG_SLAB is not set | 80 | # CONFIG_SLAB is not set |
75 | CONFIG_SLUB=y | 81 | CONFIG_SLUB=y |
76 | # CONFIG_SLOB is not set | 82 | # CONFIG_SLOB is not set |
83 | CONFIG_PROFILING=y | ||
84 | # CONFIG_MARKERS is not set | ||
85 | # CONFIG_OPROFILE is not set | ||
86 | CONFIG_HAVE_OPROFILE=y | ||
87 | # CONFIG_KPROBES is not set | ||
88 | CONFIG_HAVE_IOREMAP_PROT=y | ||
89 | CONFIG_HAVE_KPROBES=y | ||
90 | CONFIG_HAVE_KRETPROBES=y | ||
91 | CONFIG_HAVE_ARCH_TRACEHOOK=y | ||
92 | CONFIG_HAVE_CLK=y | ||
93 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
94 | CONFIG_SLABINFO=y | ||
77 | CONFIG_RT_MUTEXES=y | 95 | CONFIG_RT_MUTEXES=y |
78 | # CONFIG_TINY_SHMEM is not set | 96 | # CONFIG_TINY_SHMEM is not set |
79 | CONFIG_BASE_SMALL=0 | 97 | CONFIG_BASE_SMALL=0 |
80 | |||
81 | # | ||
82 | # Loadable module support | ||
83 | # | ||
84 | CONFIG_MODULES=y | 98 | CONFIG_MODULES=y |
99 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
85 | CONFIG_MODULE_UNLOAD=y | 100 | CONFIG_MODULE_UNLOAD=y |
86 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 101 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
87 | # CONFIG_MODVERSIONS is not set | 102 | # CONFIG_MODVERSIONS is not set |
88 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 103 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
89 | CONFIG_KMOD=y | 104 | CONFIG_KMOD=y |
90 | |||
91 | # | ||
92 | # Block layer | ||
93 | # | ||
94 | CONFIG_BLOCK=y | 105 | CONFIG_BLOCK=y |
95 | # CONFIG_LBD is not set | 106 | # CONFIG_LBD is not set |
96 | # CONFIG_BLK_DEV_IO_TRACE is not set | 107 | # CONFIG_BLK_DEV_IO_TRACE is not set |
97 | # CONFIG_LSF is not set | 108 | # CONFIG_LSF is not set |
109 | # CONFIG_BLK_DEV_BSG is not set | ||
110 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
98 | 111 | ||
99 | # | 112 | # |
100 | # IO Schedulers | 113 | # IO Schedulers |
@@ -108,6 +121,8 @@ CONFIG_IOSCHED_NOOP=y | |||
108 | # CONFIG_DEFAULT_CFQ is not set | 121 | # CONFIG_DEFAULT_CFQ is not set |
109 | CONFIG_DEFAULT_NOOP=y | 122 | CONFIG_DEFAULT_NOOP=y |
110 | CONFIG_DEFAULT_IOSCHED="noop" | 123 | CONFIG_DEFAULT_IOSCHED="noop" |
124 | CONFIG_CLASSIC_RCU=y | ||
125 | # CONFIG_FREEZER is not set | ||
111 | 126 | ||
112 | # | 127 | # |
113 | # System type | 128 | # System type |
@@ -117,8 +132,10 @@ CONFIG_CPU_SH4A=y | |||
117 | CONFIG_CPU_SH4AL_DSP=y | 132 | CONFIG_CPU_SH4AL_DSP=y |
118 | CONFIG_CPU_SHX2=y | 133 | CONFIG_CPU_SHX2=y |
119 | # CONFIG_CPU_SUBTYPE_SH7619 is not set | 134 | # CONFIG_CPU_SUBTYPE_SH7619 is not set |
135 | # CONFIG_CPU_SUBTYPE_SH7203 is not set | ||
120 | # CONFIG_CPU_SUBTYPE_SH7206 is not set | 136 | # CONFIG_CPU_SUBTYPE_SH7206 is not set |
121 | # CONFIG_CPU_SUBTYPE_SH7300 is not set | 137 | # CONFIG_CPU_SUBTYPE_SH7263 is not set |
138 | # CONFIG_CPU_SUBTYPE_MXG is not set | ||
122 | # CONFIG_CPU_SUBTYPE_SH7705 is not set | 139 | # CONFIG_CPU_SUBTYPE_SH7705 is not set |
123 | # CONFIG_CPU_SUBTYPE_SH7706 is not set | 140 | # CONFIG_CPU_SUBTYPE_SH7706 is not set |
124 | # CONFIG_CPU_SUBTYPE_SH7707 is not set | 141 | # CONFIG_CPU_SUBTYPE_SH7707 is not set |
@@ -126,6 +143,8 @@ CONFIG_CPU_SHX2=y | |||
126 | # CONFIG_CPU_SUBTYPE_SH7709 is not set | 143 | # CONFIG_CPU_SUBTYPE_SH7709 is not set |
127 | # CONFIG_CPU_SUBTYPE_SH7710 is not set | 144 | # CONFIG_CPU_SUBTYPE_SH7710 is not set |
128 | # CONFIG_CPU_SUBTYPE_SH7712 is not set | 145 | # CONFIG_CPU_SUBTYPE_SH7712 is not set |
146 | # CONFIG_CPU_SUBTYPE_SH7720 is not set | ||
147 | # CONFIG_CPU_SUBTYPE_SH7721 is not set | ||
129 | # CONFIG_CPU_SUBTYPE_SH7750 is not set | 148 | # CONFIG_CPU_SUBTYPE_SH7750 is not set |
130 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | 149 | # CONFIG_CPU_SUBTYPE_SH7091 is not set |
131 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | 150 | # CONFIG_CPU_SUBTYPE_SH7750R is not set |
@@ -134,14 +153,17 @@ CONFIG_CPU_SHX2=y | |||
134 | # CONFIG_CPU_SUBTYPE_SH7751R is not set | 153 | # CONFIG_CPU_SUBTYPE_SH7751R is not set |
135 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | 154 | # CONFIG_CPU_SUBTYPE_SH7760 is not set |
136 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | 155 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set |
137 | # CONFIG_CPU_SUBTYPE_ST40STB1 is not set | 156 | # CONFIG_CPU_SUBTYPE_SH7723 is not set |
138 | # CONFIG_CPU_SUBTYPE_ST40GX1 is not set | 157 | # CONFIG_CPU_SUBTYPE_SH7763 is not set |
139 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | 158 | # CONFIG_CPU_SUBTYPE_SH7770 is not set |
140 | # CONFIG_CPU_SUBTYPE_SH7780 is not set | 159 | # CONFIG_CPU_SUBTYPE_SH7780 is not set |
141 | # CONFIG_CPU_SUBTYPE_SH7785 is not set | 160 | # CONFIG_CPU_SUBTYPE_SH7785 is not set |
142 | # CONFIG_CPU_SUBTYPE_SH73180 is not set | 161 | # CONFIG_CPU_SUBTYPE_SHX3 is not set |
143 | # CONFIG_CPU_SUBTYPE_SH7343 is not set | 162 | # CONFIG_CPU_SUBTYPE_SH7343 is not set |
144 | CONFIG_CPU_SUBTYPE_SH7722=y | 163 | CONFIG_CPU_SUBTYPE_SH7722=y |
164 | # CONFIG_CPU_SUBTYPE_SH7366 is not set | ||
165 | # CONFIG_CPU_SUBTYPE_SH5_101 is not set | ||
166 | # CONFIG_CPU_SUBTYPE_SH5_103 is not set | ||
145 | 167 | ||
146 | # | 168 | # |
147 | # Memory management options | 169 | # Memory management options |
@@ -151,6 +173,7 @@ CONFIG_MMU=y | |||
151 | CONFIG_PAGE_OFFSET=0x80000000 | 173 | CONFIG_PAGE_OFFSET=0x80000000 |
152 | CONFIG_MEMORY_START=0x0c000000 | 174 | CONFIG_MEMORY_START=0x0c000000 |
153 | CONFIG_MEMORY_SIZE=0x04000000 | 175 | CONFIG_MEMORY_SIZE=0x04000000 |
176 | CONFIG_29BIT=y | ||
154 | # CONFIG_X2TLB is not set | 177 | # CONFIG_X2TLB is not set |
155 | CONFIG_VSYSCALL=y | 178 | CONFIG_VSYSCALL=y |
156 | CONFIG_NUMA=y | 179 | CONFIG_NUMA=y |
@@ -161,14 +184,18 @@ CONFIG_MAX_ACTIVE_REGIONS=2 | |||
161 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 184 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
162 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | 185 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y |
163 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 186 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
187 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | ||
164 | CONFIG_PAGE_SIZE_4KB=y | 188 | CONFIG_PAGE_SIZE_4KB=y |
165 | # CONFIG_PAGE_SIZE_8KB is not set | 189 | # CONFIG_PAGE_SIZE_8KB is not set |
190 | # CONFIG_PAGE_SIZE_16KB is not set | ||
166 | # CONFIG_PAGE_SIZE_64KB is not set | 191 | # CONFIG_PAGE_SIZE_64KB is not set |
192 | CONFIG_ENTRY_OFFSET=0x00001000 | ||
167 | CONFIG_HUGETLB_PAGE_SIZE_64K=y | 193 | CONFIG_HUGETLB_PAGE_SIZE_64K=y |
168 | # CONFIG_HUGETLB_PAGE_SIZE_256K is not set | 194 | # CONFIG_HUGETLB_PAGE_SIZE_256K is not set |
169 | # CONFIG_HUGETLB_PAGE_SIZE_1MB is not set | 195 | # CONFIG_HUGETLB_PAGE_SIZE_1MB is not set |
170 | # CONFIG_HUGETLB_PAGE_SIZE_4MB is not set | 196 | # CONFIG_HUGETLB_PAGE_SIZE_4MB is not set |
171 | # CONFIG_HUGETLB_PAGE_SIZE_64MB is not set | 197 | # CONFIG_HUGETLB_PAGE_SIZE_64MB is not set |
198 | # CONFIG_HUGETLB_PAGE_SIZE_512MB is not set | ||
172 | CONFIG_SELECT_MEMORY_MODEL=y | 199 | CONFIG_SELECT_MEMORY_MODEL=y |
173 | # CONFIG_FLATMEM_MANUAL is not set | 200 | # CONFIG_FLATMEM_MANUAL is not set |
174 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 201 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
@@ -181,34 +208,38 @@ CONFIG_SPARSEMEM_STATIC=y | |||
181 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 208 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
182 | CONFIG_MIGRATION=y | 209 | CONFIG_MIGRATION=y |
183 | # CONFIG_RESOURCES_64BIT is not set | 210 | # CONFIG_RESOURCES_64BIT is not set |
211 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
184 | CONFIG_ZONE_DMA_FLAG=0 | 212 | CONFIG_ZONE_DMA_FLAG=0 |
185 | CONFIG_NR_QUICK=2 | 213 | CONFIG_NR_QUICK=2 |
214 | CONFIG_UNEVICTABLE_LRU=y | ||
186 | 215 | ||
187 | # | 216 | # |
188 | # Cache configuration | 217 | # Cache configuration |
189 | # | 218 | # |
190 | # CONFIG_SH_DIRECT_MAPPED is not set | 219 | # CONFIG_SH_DIRECT_MAPPED is not set |
191 | # CONFIG_SH_WRITETHROUGH is not set | 220 | CONFIG_CACHE_WRITEBACK=y |
221 | # CONFIG_CACHE_WRITETHROUGH is not set | ||
222 | # CONFIG_CACHE_OFF is not set | ||
192 | 223 | ||
193 | # | 224 | # |
194 | # Processor features | 225 | # Processor features |
195 | # | 226 | # |
196 | CONFIG_CPU_LITTLE_ENDIAN=y | 227 | CONFIG_CPU_LITTLE_ENDIAN=y |
197 | # CONFIG_CPU_BIG_ENDIAN is not set | 228 | # CONFIG_CPU_BIG_ENDIAN is not set |
198 | # CONFIG_SH_FPU is not set | ||
199 | # CONFIG_SH_FPU_EMU is not set | 229 | # CONFIG_SH_FPU_EMU is not set |
200 | CONFIG_SH_DSP=y | 230 | CONFIG_SH_DSP=y |
201 | CONFIG_SH_STORE_QUEUES=y | 231 | CONFIG_SH_STORE_QUEUES=y |
202 | CONFIG_CPU_HAS_INTEVT=y | 232 | CONFIG_CPU_HAS_INTEVT=y |
203 | CONFIG_CPU_HAS_INTC_IRQ=y | ||
204 | CONFIG_CPU_HAS_SR_RB=y | 233 | CONFIG_CPU_HAS_SR_RB=y |
205 | CONFIG_CPU_HAS_PTEA=y | 234 | CONFIG_CPU_HAS_PTEA=y |
235 | CONFIG_CPU_HAS_DSP=y | ||
206 | 236 | ||
207 | # | 237 | # |
208 | # Board support | 238 | # Board support |
209 | # | 239 | # |
210 | CONFIG_SOLUTION_ENGINE=y | 240 | CONFIG_SOLUTION_ENGINE=y |
211 | CONFIG_SH_7722_SOLUTION_ENGINE=y | 241 | CONFIG_SH_7722_SOLUTION_ENGINE=y |
242 | # CONFIG_SH_MIGOR is not set | ||
212 | 243 | ||
213 | # | 244 | # |
214 | # Timer and clock configuration | 245 | # Timer and clock configuration |
@@ -219,6 +250,7 @@ CONFIG_SH_PCLK_FREQ=33333333 | |||
219 | CONFIG_TICK_ONESHOT=y | 250 | CONFIG_TICK_ONESHOT=y |
220 | CONFIG_NO_HZ=y | 251 | CONFIG_NO_HZ=y |
221 | CONFIG_HIGH_RES_TIMERS=y | 252 | CONFIG_HIGH_RES_TIMERS=y |
253 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
222 | 254 | ||
223 | # | 255 | # |
224 | # CPU Frequency scaling | 256 | # CPU Frequency scaling |
@@ -248,19 +280,21 @@ CONFIG_HZ_250=y | |||
248 | # CONFIG_HZ_300 is not set | 280 | # CONFIG_HZ_300 is not set |
249 | # CONFIG_HZ_1000 is not set | 281 | # CONFIG_HZ_1000 is not set |
250 | CONFIG_HZ=250 | 282 | CONFIG_HZ=250 |
283 | CONFIG_SCHED_HRTICK=y | ||
251 | CONFIG_KEXEC=y | 284 | CONFIG_KEXEC=y |
252 | # CONFIG_CRASH_DUMP is not set | 285 | # CONFIG_CRASH_DUMP is not set |
286 | # CONFIG_SECCOMP is not set | ||
253 | # CONFIG_PREEMPT_NONE is not set | 287 | # CONFIG_PREEMPT_NONE is not set |
254 | # CONFIG_PREEMPT_VOLUNTARY is not set | 288 | # CONFIG_PREEMPT_VOLUNTARY is not set |
255 | CONFIG_PREEMPT=y | 289 | CONFIG_PREEMPT=y |
256 | CONFIG_PREEMPT_BKL=y | 290 | # CONFIG_PREEMPT_RCU is not set |
291 | CONFIG_GUSA=y | ||
257 | 292 | ||
258 | # | 293 | # |
259 | # Boot options | 294 | # Boot options |
260 | # | 295 | # |
261 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 | 296 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 |
262 | CONFIG_BOOT_LINK_OFFSET=0x00800000 | 297 | CONFIG_BOOT_LINK_OFFSET=0x00800000 |
263 | # CONFIG_UBC_WAKEUP is not set | ||
264 | # CONFIG_CMDLINE_BOOL is not set | 298 | # CONFIG_CMDLINE_BOOL is not set |
265 | 299 | ||
266 | # | 300 | # |
@@ -271,21 +305,15 @@ CONFIG_CF_ENABLER=y | |||
271 | CONFIG_CF_AREA6=y | 305 | CONFIG_CF_AREA6=y |
272 | CONFIG_CF_BASE_ADDR=0xb8000000 | 306 | CONFIG_CF_BASE_ADDR=0xb8000000 |
273 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 307 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
274 | |||
275 | # | ||
276 | # PCCARD (PCMCIA/CardBus) support | ||
277 | # | ||
278 | # CONFIG_PCCARD is not set | 308 | # CONFIG_PCCARD is not set |
279 | 309 | ||
280 | # | 310 | # |
281 | # Executable file formats | 311 | # Executable file formats |
282 | # | 312 | # |
283 | CONFIG_BINFMT_ELF=y | 313 | CONFIG_BINFMT_ELF=y |
314 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
315 | # CONFIG_HAVE_AOUT is not set | ||
284 | # CONFIG_BINFMT_MISC is not set | 316 | # CONFIG_BINFMT_MISC is not set |
285 | |||
286 | # | ||
287 | # Networking | ||
288 | # | ||
289 | CONFIG_NET=y | 317 | CONFIG_NET=y |
290 | 318 | ||
291 | # | 319 | # |
@@ -298,6 +326,7 @@ CONFIG_XFRM=y | |||
298 | # CONFIG_XFRM_USER is not set | 326 | # CONFIG_XFRM_USER is not set |
299 | # CONFIG_XFRM_SUB_POLICY is not set | 327 | # CONFIG_XFRM_SUB_POLICY is not set |
300 | # CONFIG_XFRM_MIGRATE is not set | 328 | # CONFIG_XFRM_MIGRATE is not set |
329 | # CONFIG_XFRM_STATISTICS is not set | ||
301 | # CONFIG_NET_KEY is not set | 330 | # CONFIG_NET_KEY is not set |
302 | CONFIG_INET=y | 331 | CONFIG_INET=y |
303 | # CONFIG_IP_MULTICAST is not set | 332 | # CONFIG_IP_MULTICAST is not set |
@@ -316,6 +345,7 @@ CONFIG_IP_FIB_HASH=y | |||
316 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | 345 | CONFIG_INET_XFRM_MODE_TRANSPORT=y |
317 | CONFIG_INET_XFRM_MODE_TUNNEL=y | 346 | CONFIG_INET_XFRM_MODE_TUNNEL=y |
318 | CONFIG_INET_XFRM_MODE_BEET=y | 347 | CONFIG_INET_XFRM_MODE_BEET=y |
348 | # CONFIG_INET_LRO is not set | ||
319 | CONFIG_INET_DIAG=y | 349 | CONFIG_INET_DIAG=y |
320 | CONFIG_INET_TCP_DIAG=y | 350 | CONFIG_INET_TCP_DIAG=y |
321 | # CONFIG_TCP_CONG_ADVANCED is not set | 351 | # CONFIG_TCP_CONG_ADVANCED is not set |
@@ -323,8 +353,6 @@ CONFIG_TCP_CONG_CUBIC=y | |||
323 | CONFIG_DEFAULT_TCP_CONG="cubic" | 353 | CONFIG_DEFAULT_TCP_CONG="cubic" |
324 | # CONFIG_TCP_MD5SIG is not set | 354 | # CONFIG_TCP_MD5SIG is not set |
325 | # CONFIG_IPV6 is not set | 355 | # CONFIG_IPV6 is not set |
326 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
327 | # CONFIG_INET6_TUNNEL is not set | ||
328 | # CONFIG_NETWORK_SECMARK is not set | 356 | # CONFIG_NETWORK_SECMARK is not set |
329 | # CONFIG_NETFILTER is not set | 357 | # CONFIG_NETFILTER is not set |
330 | # CONFIG_IP_DCCP is not set | 358 | # CONFIG_IP_DCCP is not set |
@@ -332,6 +360,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
332 | # CONFIG_TIPC is not set | 360 | # CONFIG_TIPC is not set |
333 | # CONFIG_ATM is not set | 361 | # CONFIG_ATM is not set |
334 | # CONFIG_BRIDGE is not set | 362 | # CONFIG_BRIDGE is not set |
363 | # CONFIG_NET_DSA is not set | ||
335 | # CONFIG_VLAN_8021Q is not set | 364 | # CONFIG_VLAN_8021Q is not set |
336 | # CONFIG_DECNET is not set | 365 | # CONFIG_DECNET is not set |
337 | # CONFIG_LLC2 is not set | 366 | # CONFIG_LLC2 is not set |
@@ -341,10 +370,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
341 | # CONFIG_LAPB is not set | 370 | # CONFIG_LAPB is not set |
342 | # CONFIG_ECONET is not set | 371 | # CONFIG_ECONET is not set |
343 | # CONFIG_WAN_ROUTER is not set | 372 | # CONFIG_WAN_ROUTER is not set |
344 | |||
345 | # | ||
346 | # QoS and/or fair queueing | ||
347 | # | ||
348 | # CONFIG_NET_SCHED is not set | 373 | # CONFIG_NET_SCHED is not set |
349 | 374 | ||
350 | # | 375 | # |
@@ -352,18 +377,19 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
352 | # | 377 | # |
353 | # CONFIG_NET_PKTGEN is not set | 378 | # CONFIG_NET_PKTGEN is not set |
354 | # CONFIG_HAMRADIO is not set | 379 | # CONFIG_HAMRADIO is not set |
380 | # CONFIG_CAN is not set | ||
355 | # CONFIG_IRDA is not set | 381 | # CONFIG_IRDA is not set |
356 | # CONFIG_BT is not set | 382 | # CONFIG_BT is not set |
357 | # CONFIG_AF_RXRPC is not set | 383 | # CONFIG_AF_RXRPC is not set |
358 | 384 | # CONFIG_PHONET is not set | |
359 | # | 385 | CONFIG_WIRELESS=y |
360 | # Wireless | ||
361 | # | ||
362 | # CONFIG_CFG80211 is not set | 386 | # CONFIG_CFG80211 is not set |
387 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
363 | # CONFIG_WIRELESS_EXT is not set | 388 | # CONFIG_WIRELESS_EXT is not set |
364 | # CONFIG_MAC80211 is not set | 389 | # CONFIG_MAC80211 is not set |
365 | # CONFIG_IEEE80211 is not set | 390 | # CONFIG_IEEE80211 is not set |
366 | # CONFIG_RFKILL is not set | 391 | # CONFIG_RFKILL is not set |
392 | # CONFIG_NET_9P is not set | ||
367 | 393 | ||
368 | # | 394 | # |
369 | # Device Drivers | 395 | # Device Drivers |
@@ -372,44 +398,29 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
372 | # | 398 | # |
373 | # Generic Driver Options | 399 | # Generic Driver Options |
374 | # | 400 | # |
401 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
375 | CONFIG_STANDALONE=y | 402 | CONFIG_STANDALONE=y |
376 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 403 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
377 | # CONFIG_FW_LOADER is not set | 404 | # CONFIG_FW_LOADER is not set |
378 | # CONFIG_SYS_HYPERVISOR is not set | 405 | # CONFIG_SYS_HYPERVISOR is not set |
379 | |||
380 | # | ||
381 | # Connector - unified userspace <-> kernelspace linker | ||
382 | # | ||
383 | # CONFIG_CONNECTOR is not set | 406 | # CONFIG_CONNECTOR is not set |
384 | # CONFIG_MTD is not set | 407 | # CONFIG_MTD is not set |
385 | |||
386 | # | ||
387 | # Parallel port support | ||
388 | # | ||
389 | # CONFIG_PARPORT is not set | 408 | # CONFIG_PARPORT is not set |
390 | 409 | CONFIG_BLK_DEV=y | |
391 | # | ||
392 | # Plug and Play support | ||
393 | # | ||
394 | # CONFIG_PNPACPI is not set | ||
395 | |||
396 | # | ||
397 | # Block devices | ||
398 | # | ||
399 | # CONFIG_BLK_DEV_COW_COMMON is not set | 410 | # CONFIG_BLK_DEV_COW_COMMON is not set |
400 | # CONFIG_BLK_DEV_LOOP is not set | 411 | # CONFIG_BLK_DEV_LOOP is not set |
401 | # CONFIG_BLK_DEV_NBD is not set | 412 | # CONFIG_BLK_DEV_NBD is not set |
402 | CONFIG_BLK_DEV_RAM=y | 413 | CONFIG_BLK_DEV_RAM=y |
403 | CONFIG_BLK_DEV_RAM_COUNT=16 | 414 | CONFIG_BLK_DEV_RAM_COUNT=16 |
404 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 415 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
405 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 416 | # CONFIG_BLK_DEV_XIP is not set |
406 | # CONFIG_CDROM_PKTCDVD is not set | 417 | # CONFIG_CDROM_PKTCDVD is not set |
407 | # CONFIG_ATA_OVER_ETH is not set | 418 | # CONFIG_ATA_OVER_ETH is not set |
408 | 419 | # CONFIG_BLK_DEV_HD is not set | |
409 | # | 420 | CONFIG_MISC_DEVICES=y |
410 | # Misc devices | 421 | # CONFIG_EEPROM_93CX6 is not set |
411 | # | 422 | # CONFIG_ENCLOSURE_SERVICES is not set |
412 | # CONFIG_BLINK is not set | 423 | CONFIG_HAVE_IDE=y |
413 | # CONFIG_IDE is not set | 424 | # CONFIG_IDE is not set |
414 | 425 | ||
415 | # | 426 | # |
@@ -417,6 +428,7 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | |||
417 | # | 428 | # |
418 | # CONFIG_RAID_ATTRS is not set | 429 | # CONFIG_RAID_ATTRS is not set |
419 | CONFIG_SCSI=y | 430 | CONFIG_SCSI=y |
431 | CONFIG_SCSI_DMA=y | ||
420 | # CONFIG_SCSI_TGT is not set | 432 | # CONFIG_SCSI_TGT is not set |
421 | # CONFIG_SCSI_NETLINK is not set | 433 | # CONFIG_SCSI_NETLINK is not set |
422 | CONFIG_SCSI_PROC_FS=y | 434 | CONFIG_SCSI_PROC_FS=y |
@@ -446,40 +458,41 @@ CONFIG_SCSI_WAIT_SCAN=m | |||
446 | # CONFIG_SCSI_SPI_ATTRS is not set | 458 | # CONFIG_SCSI_SPI_ATTRS is not set |
447 | # CONFIG_SCSI_FC_ATTRS is not set | 459 | # CONFIG_SCSI_FC_ATTRS is not set |
448 | # CONFIG_SCSI_ISCSI_ATTRS is not set | 460 | # CONFIG_SCSI_ISCSI_ATTRS is not set |
449 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
450 | # CONFIG_SCSI_SAS_LIBSAS is not set | 461 | # CONFIG_SCSI_SAS_LIBSAS is not set |
451 | 462 | # CONFIG_SCSI_SRP_ATTRS is not set | |
452 | # | 463 | CONFIG_SCSI_LOWLEVEL=y |
453 | # SCSI low-level drivers | ||
454 | # | ||
455 | # CONFIG_ISCSI_TCP is not set | 464 | # CONFIG_ISCSI_TCP is not set |
456 | # CONFIG_SCSI_DEBUG is not set | 465 | # CONFIG_SCSI_DEBUG is not set |
466 | # CONFIG_SCSI_DH is not set | ||
457 | CONFIG_ATA=y | 467 | CONFIG_ATA=y |
458 | # CONFIG_ATA_NONSTANDARD is not set | 468 | # CONFIG_ATA_NONSTANDARD is not set |
469 | CONFIG_SATA_PMP=y | ||
470 | CONFIG_ATA_SFF=y | ||
471 | # CONFIG_SATA_MV is not set | ||
459 | CONFIG_PATA_PLATFORM=y | 472 | CONFIG_PATA_PLATFORM=y |
460 | |||
461 | # | ||
462 | # Multi-device support (RAID and LVM) | ||
463 | # | ||
464 | # CONFIG_MD is not set | 473 | # CONFIG_MD is not set |
465 | |||
466 | # | ||
467 | # Network device support | ||
468 | # | ||
469 | CONFIG_NETDEVICES=y | 474 | CONFIG_NETDEVICES=y |
470 | # CONFIG_DUMMY is not set | 475 | # CONFIG_DUMMY is not set |
471 | # CONFIG_BONDING is not set | 476 | # CONFIG_BONDING is not set |
477 | # CONFIG_MACVLAN is not set | ||
472 | # CONFIG_EQUALIZER is not set | 478 | # CONFIG_EQUALIZER is not set |
473 | # CONFIG_TUN is not set | 479 | # CONFIG_TUN is not set |
480 | # CONFIG_VETH is not set | ||
474 | # CONFIG_PHYLIB is not set | 481 | # CONFIG_PHYLIB is not set |
475 | |||
476 | # | ||
477 | # Ethernet (10 or 100Mbit) | ||
478 | # | ||
479 | CONFIG_NET_ETHERNET=y | 482 | CONFIG_NET_ETHERNET=y |
480 | CONFIG_MII=y | 483 | CONFIG_MII=y |
484 | # CONFIG_AX88796 is not set | ||
481 | # CONFIG_STNIC is not set | 485 | # CONFIG_STNIC is not set |
482 | CONFIG_SMC91X=y | 486 | CONFIG_SMC91X=y |
487 | # CONFIG_SMC911X is not set | ||
488 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
489 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
490 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
491 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
492 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
493 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
494 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
495 | # CONFIG_B44 is not set | ||
483 | CONFIG_NETDEV_1000=y | 496 | CONFIG_NETDEV_1000=y |
484 | CONFIG_NETDEV_10000=y | 497 | CONFIG_NETDEV_10000=y |
485 | 498 | ||
@@ -488,22 +501,14 @@ CONFIG_NETDEV_10000=y | |||
488 | # | 501 | # |
489 | # CONFIG_WLAN_PRE80211 is not set | 502 | # CONFIG_WLAN_PRE80211 is not set |
490 | # CONFIG_WLAN_80211 is not set | 503 | # CONFIG_WLAN_80211 is not set |
504 | # CONFIG_IWLWIFI_LEDS is not set | ||
491 | # CONFIG_WAN is not set | 505 | # CONFIG_WAN is not set |
492 | # CONFIG_PPP is not set | 506 | # CONFIG_PPP is not set |
493 | # CONFIG_SLIP is not set | 507 | # CONFIG_SLIP is not set |
494 | # CONFIG_SHAPER is not set | ||
495 | # CONFIG_NETCONSOLE is not set | 508 | # CONFIG_NETCONSOLE is not set |
496 | # CONFIG_NETPOLL is not set | 509 | # CONFIG_NETPOLL is not set |
497 | # CONFIG_NET_POLL_CONTROLLER is not set | 510 | # CONFIG_NET_POLL_CONTROLLER is not set |
498 | |||
499 | # | ||
500 | # ISDN subsystem | ||
501 | # | ||
502 | # CONFIG_ISDN is not set | 511 | # CONFIG_ISDN is not set |
503 | |||
504 | # | ||
505 | # Telephony Support | ||
506 | # | ||
507 | # CONFIG_PHONE is not set | 512 | # CONFIG_PHONE is not set |
508 | 513 | ||
509 | # | 514 | # |
@@ -511,6 +516,7 @@ CONFIG_NETDEV_10000=y | |||
511 | # | 516 | # |
512 | CONFIG_INPUT=y | 517 | CONFIG_INPUT=y |
513 | # CONFIG_INPUT_FF_MEMLESS is not set | 518 | # CONFIG_INPUT_FF_MEMLESS is not set |
519 | # CONFIG_INPUT_POLLDEV is not set | ||
514 | 520 | ||
515 | # | 521 | # |
516 | # Userland interfaces | 522 | # Userland interfaces |
@@ -520,7 +526,6 @@ CONFIG_INPUT_MOUSEDEV=y | |||
520 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | 526 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 |
521 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | 527 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 |
522 | # CONFIG_INPUT_JOYDEV is not set | 528 | # CONFIG_INPUT_JOYDEV is not set |
523 | # CONFIG_INPUT_TSDEV is not set | ||
524 | # CONFIG_INPUT_EVDEV is not set | 529 | # CONFIG_INPUT_EVDEV is not set |
525 | # CONFIG_INPUT_EVBUG is not set | 530 | # CONFIG_INPUT_EVBUG is not set |
526 | 531 | ||
@@ -534,6 +539,7 @@ CONFIG_KEYBOARD_ATKBD=y | |||
534 | # CONFIG_KEYBOARD_XTKBD is not set | 539 | # CONFIG_KEYBOARD_XTKBD is not set |
535 | # CONFIG_KEYBOARD_NEWTON is not set | 540 | # CONFIG_KEYBOARD_NEWTON is not set |
536 | # CONFIG_KEYBOARD_STOWAWAY is not set | 541 | # CONFIG_KEYBOARD_STOWAWAY is not set |
542 | # CONFIG_KEYBOARD_SH_KEYSC is not set | ||
537 | # CONFIG_INPUT_MOUSE is not set | 543 | # CONFIG_INPUT_MOUSE is not set |
538 | # CONFIG_INPUT_JOYSTICK is not set | 544 | # CONFIG_INPUT_JOYSTICK is not set |
539 | # CONFIG_INPUT_TABLET is not set | 545 | # CONFIG_INPUT_TABLET is not set |
@@ -554,6 +560,7 @@ CONFIG_SERIO_LIBPS2=y | |||
554 | # Character devices | 560 | # Character devices |
555 | # | 561 | # |
556 | # CONFIG_VT is not set | 562 | # CONFIG_VT is not set |
563 | CONFIG_DEVKMEM=y | ||
557 | # CONFIG_SERIAL_NONSTANDARD is not set | 564 | # CONFIG_SERIAL_NONSTANDARD is not set |
558 | 565 | ||
559 | # | 566 | # |
@@ -572,119 +579,106 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
572 | CONFIG_UNIX98_PTYS=y | 579 | CONFIG_UNIX98_PTYS=y |
573 | CONFIG_LEGACY_PTYS=y | 580 | CONFIG_LEGACY_PTYS=y |
574 | CONFIG_LEGACY_PTY_COUNT=256 | 581 | CONFIG_LEGACY_PTY_COUNT=256 |
575 | |||
576 | # | ||
577 | # IPMI | ||
578 | # | ||
579 | # CONFIG_IPMI_HANDLER is not set | 582 | # CONFIG_IPMI_HANDLER is not set |
580 | # CONFIG_WATCHDOG is not set | ||
581 | CONFIG_HW_RANDOM=y | 583 | CONFIG_HW_RANDOM=y |
582 | # CONFIG_R3964 is not set | 584 | # CONFIG_R3964 is not set |
583 | # CONFIG_RAW_DRIVER is not set | 585 | # CONFIG_RAW_DRIVER is not set |
584 | |||
585 | # | ||
586 | # TPM devices | ||
587 | # | ||
588 | # CONFIG_TCG_TPM is not set | 586 | # CONFIG_TCG_TPM is not set |
589 | # CONFIG_I2C is not set | 587 | # CONFIG_I2C is not set |
590 | |||
591 | # | ||
592 | # SPI support | ||
593 | # | ||
594 | # CONFIG_SPI is not set | 588 | # CONFIG_SPI is not set |
595 | # CONFIG_SPI_MASTER is not set | ||
596 | |||
597 | # | ||
598 | # Dallas's 1-wire bus | ||
599 | # | ||
600 | # CONFIG_W1 is not set | 589 | # CONFIG_W1 is not set |
590 | # CONFIG_POWER_SUPPLY is not set | ||
601 | CONFIG_HWMON=y | 591 | CONFIG_HWMON=y |
602 | # CONFIG_HWMON_VID is not set | 592 | # CONFIG_HWMON_VID is not set |
603 | # CONFIG_SENSORS_ABITUGURU is not set | ||
604 | # CONFIG_SENSORS_F71805F is not set | 593 | # CONFIG_SENSORS_F71805F is not set |
594 | # CONFIG_SENSORS_F71882FG is not set | ||
595 | # CONFIG_SENSORS_IT87 is not set | ||
596 | # CONFIG_SENSORS_PC87360 is not set | ||
605 | # CONFIG_SENSORS_PC87427 is not set | 597 | # CONFIG_SENSORS_PC87427 is not set |
606 | # CONFIG_SENSORS_SMSC47M1 is not set | 598 | # CONFIG_SENSORS_SMSC47M1 is not set |
607 | # CONFIG_SENSORS_SMSC47B397 is not set | 599 | # CONFIG_SENSORS_SMSC47B397 is not set |
608 | # CONFIG_SENSORS_VT1211 is not set | 600 | # CONFIG_SENSORS_VT1211 is not set |
609 | # CONFIG_SENSORS_W83627HF is not set | 601 | # CONFIG_SENSORS_W83627HF is not set |
602 | # CONFIG_SENSORS_W83627EHF is not set | ||
610 | # CONFIG_HWMON_DEBUG_CHIP is not set | 603 | # CONFIG_HWMON_DEBUG_CHIP is not set |
604 | # CONFIG_THERMAL is not set | ||
605 | # CONFIG_THERMAL_HWMON is not set | ||
606 | # CONFIG_WATCHDOG is not set | ||
607 | |||
608 | # | ||
609 | # Sonics Silicon Backplane | ||
610 | # | ||
611 | CONFIG_SSB_POSSIBLE=y | ||
612 | # CONFIG_SSB is not set | ||
611 | 613 | ||
612 | # | 614 | # |
613 | # Multifunction device drivers | 615 | # Multifunction device drivers |
614 | # | 616 | # |
617 | # CONFIG_MFD_CORE is not set | ||
615 | # CONFIG_MFD_SM501 is not set | 618 | # CONFIG_MFD_SM501 is not set |
619 | # CONFIG_HTC_PASIC3 is not set | ||
620 | # CONFIG_MFD_TMIO is not set | ||
621 | # CONFIG_MFD_WM8400 is not set | ||
616 | 622 | ||
617 | # | 623 | # |
618 | # Multimedia devices | 624 | # Multimedia devices |
619 | # | 625 | # |
626 | |||
627 | # | ||
628 | # Multimedia core support | ||
629 | # | ||
620 | # CONFIG_VIDEO_DEV is not set | 630 | # CONFIG_VIDEO_DEV is not set |
621 | # CONFIG_DVB_CORE is not set | 631 | # CONFIG_DVB_CORE is not set |
622 | CONFIG_DAB=y | 632 | # CONFIG_VIDEO_MEDIA is not set |
623 | 633 | ||
624 | # | 634 | # |
625 | # Graphics support | 635 | # Multimedia drivers |
626 | # | 636 | # |
627 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 637 | CONFIG_DAB=y |
628 | 638 | ||
629 | # | 639 | # |
630 | # Display device support | 640 | # Graphics support |
631 | # | 641 | # |
632 | # CONFIG_DISPLAY_SUPPORT is not set | ||
633 | # CONFIG_VGASTATE is not set | 642 | # CONFIG_VGASTATE is not set |
643 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
634 | # CONFIG_FB is not set | 644 | # CONFIG_FB is not set |
645 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
635 | 646 | ||
636 | # | 647 | # |
637 | # Sound | 648 | # Display device support |
638 | # | 649 | # |
650 | # CONFIG_DISPLAY_SUPPORT is not set | ||
639 | # CONFIG_SOUND is not set | 651 | # CONFIG_SOUND is not set |
640 | 652 | CONFIG_HID_SUPPORT=y | |
641 | # | ||
642 | # HID Devices | ||
643 | # | ||
644 | CONFIG_HID=y | 653 | CONFIG_HID=y |
645 | # CONFIG_HID_DEBUG is not set | 654 | # CONFIG_HID_DEBUG is not set |
655 | # CONFIG_HIDRAW is not set | ||
656 | # CONFIG_HID_PID is not set | ||
646 | 657 | ||
647 | # | 658 | # |
648 | # USB support | 659 | # Special HID drivers |
649 | # | 660 | # |
650 | # CONFIG_USB_ARCH_HAS_HCD is not set | 661 | CONFIG_HID_COMPAT=y |
662 | CONFIG_USB_SUPPORT=y | ||
663 | CONFIG_USB_ARCH_HAS_HCD=y | ||
651 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 664 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
652 | # CONFIG_USB_ARCH_HAS_EHCI is not set | 665 | # CONFIG_USB_ARCH_HAS_EHCI is not set |
666 | # CONFIG_USB is not set | ||
667 | # CONFIG_USB_OTG_WHITELIST is not set | ||
668 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | ||
653 | 669 | ||
654 | # | 670 | # |
655 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 671 | # Enable Host or Gadget support to see Inventra options |
656 | # | 672 | # |
657 | 673 | ||
658 | # | 674 | # |
659 | # USB Gadget Support | 675 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
660 | # | 676 | # |
661 | # CONFIG_USB_GADGET is not set | 677 | # CONFIG_USB_GADGET is not set |
662 | # CONFIG_MMC is not set | 678 | # CONFIG_MMC is not set |
663 | 679 | # CONFIG_MEMSTICK is not set | |
664 | # | ||
665 | # LED devices | ||
666 | # | ||
667 | # CONFIG_NEW_LEDS is not set | 680 | # CONFIG_NEW_LEDS is not set |
668 | 681 | # CONFIG_ACCESSIBILITY is not set | |
669 | # | ||
670 | # LED drivers | ||
671 | # | ||
672 | |||
673 | # | ||
674 | # LED Triggers | ||
675 | # | ||
676 | |||
677 | # | ||
678 | # InfiniBand support | ||
679 | # | ||
680 | |||
681 | # | ||
682 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
683 | # | ||
684 | |||
685 | # | ||
686 | # Real Time Clock | ||
687 | # | ||
688 | CONFIG_RTC_LIB=y | 682 | CONFIG_RTC_LIB=y |
689 | CONFIG_RTC_CLASS=y | 683 | CONFIG_RTC_CLASS=y |
690 | CONFIG_RTC_HCTOSYS=y | 684 | CONFIG_RTC_HCTOSYS=y |
@@ -701,38 +695,30 @@ CONFIG_RTC_INTF_DEV=y | |||
701 | # CONFIG_RTC_DRV_TEST is not set | 695 | # CONFIG_RTC_DRV_TEST is not set |
702 | 696 | ||
703 | # | 697 | # |
704 | # I2C RTC drivers | ||
705 | # | ||
706 | |||
707 | # | ||
708 | # SPI RTC drivers | 698 | # SPI RTC drivers |
709 | # | 699 | # |
710 | 700 | ||
711 | # | 701 | # |
712 | # Platform RTC drivers | 702 | # Platform RTC drivers |
713 | # | 703 | # |
704 | # CONFIG_RTC_DRV_DS1286 is not set | ||
705 | # CONFIG_RTC_DRV_DS1511 is not set | ||
714 | # CONFIG_RTC_DRV_DS1553 is not set | 706 | # CONFIG_RTC_DRV_DS1553 is not set |
715 | # CONFIG_RTC_DRV_DS1742 is not set | 707 | # CONFIG_RTC_DRV_DS1742 is not set |
708 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
716 | # CONFIG_RTC_DRV_M48T86 is not set | 709 | # CONFIG_RTC_DRV_M48T86 is not set |
710 | # CONFIG_RTC_DRV_M48T35 is not set | ||
711 | # CONFIG_RTC_DRV_M48T59 is not set | ||
712 | # CONFIG_RTC_DRV_BQ4802 is not set | ||
717 | # CONFIG_RTC_DRV_V3020 is not set | 713 | # CONFIG_RTC_DRV_V3020 is not set |
718 | 714 | ||
719 | # | 715 | # |
720 | # on-CPU RTC drivers | 716 | # on-CPU RTC drivers |
721 | # | 717 | # |
722 | CONFIG_RTC_DRV_SH=y | 718 | CONFIG_RTC_DRV_SH=y |
723 | 719 | # CONFIG_DMADEVICES is not set | |
724 | # | 720 | # CONFIG_UIO is not set |
725 | # DMA Engine support | 721 | # CONFIG_STAGING is not set |
726 | # | ||
727 | # CONFIG_DMA_ENGINE is not set | ||
728 | |||
729 | # | ||
730 | # DMA Clients | ||
731 | # | ||
732 | |||
733 | # | ||
734 | # DMA Devices | ||
735 | # | ||
736 | 722 | ||
737 | # | 723 | # |
738 | # File systems | 724 | # File systems |
@@ -744,22 +730,20 @@ CONFIG_EXT3_FS=y | |||
744 | CONFIG_EXT3_FS_XATTR=y | 730 | CONFIG_EXT3_FS_XATTR=y |
745 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 731 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
746 | # CONFIG_EXT3_FS_SECURITY is not set | 732 | # CONFIG_EXT3_FS_SECURITY is not set |
747 | # CONFIG_EXT4DEV_FS is not set | 733 | # CONFIG_EXT4_FS is not set |
748 | CONFIG_JBD=y | 734 | CONFIG_JBD=y |
749 | # CONFIG_JBD_DEBUG is not set | 735 | # CONFIG_JBD_DEBUG is not set |
750 | CONFIG_FS_MBCACHE=y | 736 | CONFIG_FS_MBCACHE=y |
751 | # CONFIG_REISERFS_FS is not set | 737 | # CONFIG_REISERFS_FS is not set |
752 | # CONFIG_JFS_FS is not set | 738 | # CONFIG_JFS_FS is not set |
753 | # CONFIG_FS_POSIX_ACL is not set | 739 | # CONFIG_FS_POSIX_ACL is not set |
740 | CONFIG_FILE_LOCKING=y | ||
754 | # CONFIG_XFS_FS is not set | 741 | # CONFIG_XFS_FS is not set |
755 | # CONFIG_GFS2_FS is not set | ||
756 | # CONFIG_OCFS2_FS is not set | 742 | # CONFIG_OCFS2_FS is not set |
757 | # CONFIG_MINIX_FS is not set | 743 | CONFIG_DNOTIFY=y |
758 | # CONFIG_ROMFS_FS is not set | ||
759 | CONFIG_INOTIFY=y | 744 | CONFIG_INOTIFY=y |
760 | CONFIG_INOTIFY_USER=y | 745 | CONFIG_INOTIFY_USER=y |
761 | # CONFIG_QUOTA is not set | 746 | # CONFIG_QUOTA is not set |
762 | CONFIG_DNOTIFY=y | ||
763 | # CONFIG_AUTOFS_FS is not set | 747 | # CONFIG_AUTOFS_FS is not set |
764 | # CONFIG_AUTOFS4_FS is not set | 748 | # CONFIG_AUTOFS4_FS is not set |
765 | # CONFIG_FUSE_FS is not set | 749 | # CONFIG_FUSE_FS is not set |
@@ -783,12 +767,12 @@ CONFIG_DNOTIFY=y | |||
783 | CONFIG_PROC_FS=y | 767 | CONFIG_PROC_FS=y |
784 | CONFIG_PROC_KCORE=y | 768 | CONFIG_PROC_KCORE=y |
785 | CONFIG_PROC_SYSCTL=y | 769 | CONFIG_PROC_SYSCTL=y |
770 | CONFIG_PROC_PAGE_MONITOR=y | ||
786 | CONFIG_SYSFS=y | 771 | CONFIG_SYSFS=y |
787 | CONFIG_TMPFS=y | 772 | CONFIG_TMPFS=y |
788 | # CONFIG_TMPFS_POSIX_ACL is not set | 773 | # CONFIG_TMPFS_POSIX_ACL is not set |
789 | CONFIG_HUGETLBFS=y | 774 | CONFIG_HUGETLBFS=y |
790 | CONFIG_HUGETLB_PAGE=y | 775 | CONFIG_HUGETLB_PAGE=y |
791 | CONFIG_RAMFS=y | ||
792 | # CONFIG_CONFIGFS_FS is not set | 776 | # CONFIG_CONFIGFS_FS is not set |
793 | 777 | ||
794 | # | 778 | # |
@@ -803,14 +787,14 @@ CONFIG_RAMFS=y | |||
803 | # CONFIG_EFS_FS is not set | 787 | # CONFIG_EFS_FS is not set |
804 | # CONFIG_CRAMFS is not set | 788 | # CONFIG_CRAMFS is not set |
805 | # CONFIG_VXFS_FS is not set | 789 | # CONFIG_VXFS_FS is not set |
790 | # CONFIG_MINIX_FS is not set | ||
791 | # CONFIG_OMFS_FS is not set | ||
806 | # CONFIG_HPFS_FS is not set | 792 | # CONFIG_HPFS_FS is not set |
807 | # CONFIG_QNX4FS_FS is not set | 793 | # CONFIG_QNX4FS_FS is not set |
794 | # CONFIG_ROMFS_FS is not set | ||
808 | # CONFIG_SYSV_FS is not set | 795 | # CONFIG_SYSV_FS is not set |
809 | # CONFIG_UFS_FS is not set | 796 | # CONFIG_UFS_FS is not set |
810 | 797 | CONFIG_NETWORK_FILESYSTEMS=y | |
811 | # | ||
812 | # Network File Systems | ||
813 | # | ||
814 | # CONFIG_NFS_FS is not set | 798 | # CONFIG_NFS_FS is not set |
815 | # CONFIG_NFSD is not set | 799 | # CONFIG_NFSD is not set |
816 | # CONFIG_SMB_FS is not set | 800 | # CONFIG_SMB_FS is not set |
@@ -818,42 +802,39 @@ CONFIG_RAMFS=y | |||
818 | # CONFIG_NCP_FS is not set | 802 | # CONFIG_NCP_FS is not set |
819 | # CONFIG_CODA_FS is not set | 803 | # CONFIG_CODA_FS is not set |
820 | # CONFIG_AFS_FS is not set | 804 | # CONFIG_AFS_FS is not set |
821 | # CONFIG_9P_FS is not set | ||
822 | 805 | ||
823 | # | 806 | # |
824 | # Partition Types | 807 | # Partition Types |
825 | # | 808 | # |
826 | # CONFIG_PARTITION_ADVANCED is not set | 809 | # CONFIG_PARTITION_ADVANCED is not set |
827 | CONFIG_MSDOS_PARTITION=y | 810 | CONFIG_MSDOS_PARTITION=y |
828 | |||
829 | # | ||
830 | # Native Language Support | ||
831 | # | ||
832 | # CONFIG_NLS is not set | 811 | # CONFIG_NLS is not set |
833 | |||
834 | # | ||
835 | # Distributed Lock Manager | ||
836 | # | ||
837 | # CONFIG_DLM is not set | 812 | # CONFIG_DLM is not set |
838 | 813 | ||
839 | # | 814 | # |
840 | # Profiling support | ||
841 | # | ||
842 | CONFIG_PROFILING=y | ||
843 | # CONFIG_OPROFILE is not set | ||
844 | |||
845 | # | ||
846 | # Kernel hacking | 815 | # Kernel hacking |
847 | # | 816 | # |
848 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 817 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
849 | CONFIG_PRINTK_TIME=y | 818 | CONFIG_PRINTK_TIME=y |
819 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
850 | # CONFIG_ENABLE_MUST_CHECK is not set | 820 | # CONFIG_ENABLE_MUST_CHECK is not set |
821 | CONFIG_FRAME_WARN=1024 | ||
851 | CONFIG_MAGIC_SYSRQ=y | 822 | CONFIG_MAGIC_SYSRQ=y |
852 | # CONFIG_UNUSED_SYMBOLS is not set | 823 | # CONFIG_UNUSED_SYMBOLS is not set |
853 | CONFIG_DEBUG_FS=y | 824 | CONFIG_DEBUG_FS=y |
854 | # CONFIG_HEADERS_CHECK is not set | 825 | # CONFIG_HEADERS_CHECK is not set |
855 | # CONFIG_DEBUG_KERNEL is not set | 826 | # CONFIG_DEBUG_KERNEL is not set |
827 | # CONFIG_SLUB_DEBUG_ON is not set | ||
828 | # CONFIG_SLUB_STATS is not set | ||
856 | # CONFIG_DEBUG_BUGVERBOSE is not set | 829 | # CONFIG_DEBUG_BUGVERBOSE is not set |
830 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
831 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
832 | # CONFIG_LATENCYTOP is not set | ||
833 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
834 | CONFIG_NOP_TRACER=y | ||
835 | CONFIG_HAVE_FTRACE=y | ||
836 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
837 | # CONFIG_SAMPLES is not set | ||
857 | CONFIG_SH_STANDARD_BIOS=y | 838 | CONFIG_SH_STANDARD_BIOS=y |
858 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 839 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
859 | # CONFIG_EARLY_PRINTK is not set | 840 | # CONFIG_EARLY_PRINTK is not set |
@@ -864,11 +845,92 @@ CONFIG_SH_STANDARD_BIOS=y | |||
864 | # | 845 | # |
865 | # CONFIG_KEYS is not set | 846 | # CONFIG_KEYS is not set |
866 | # CONFIG_SECURITY is not set | 847 | # CONFIG_SECURITY is not set |
848 | # CONFIG_SECURITYFS is not set | ||
849 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
850 | CONFIG_CRYPTO=y | ||
851 | |||
852 | # | ||
853 | # Crypto core or helper | ||
854 | # | ||
855 | # CONFIG_CRYPTO_FIPS is not set | ||
856 | # CONFIG_CRYPTO_MANAGER is not set | ||
857 | # CONFIG_CRYPTO_GF128MUL is not set | ||
858 | # CONFIG_CRYPTO_NULL is not set | ||
859 | # CONFIG_CRYPTO_CRYPTD is not set | ||
860 | # CONFIG_CRYPTO_AUTHENC is not set | ||
861 | # CONFIG_CRYPTO_TEST is not set | ||
862 | |||
863 | # | ||
864 | # Authenticated Encryption with Associated Data | ||
865 | # | ||
866 | # CONFIG_CRYPTO_CCM is not set | ||
867 | # CONFIG_CRYPTO_GCM is not set | ||
868 | # CONFIG_CRYPTO_SEQIV is not set | ||
869 | |||
870 | # | ||
871 | # Block modes | ||
872 | # | ||
873 | # CONFIG_CRYPTO_CBC is not set | ||
874 | # CONFIG_CRYPTO_CTR is not set | ||
875 | # CONFIG_CRYPTO_CTS is not set | ||
876 | # CONFIG_CRYPTO_ECB is not set | ||
877 | # CONFIG_CRYPTO_LRW is not set | ||
878 | # CONFIG_CRYPTO_PCBC is not set | ||
879 | # CONFIG_CRYPTO_XTS is not set | ||
880 | |||
881 | # | ||
882 | # Hash modes | ||
883 | # | ||
884 | # CONFIG_CRYPTO_HMAC is not set | ||
885 | # CONFIG_CRYPTO_XCBC is not set | ||
886 | |||
887 | # | ||
888 | # Digest | ||
889 | # | ||
890 | # CONFIG_CRYPTO_CRC32C is not set | ||
891 | # CONFIG_CRYPTO_MD4 is not set | ||
892 | # CONFIG_CRYPTO_MD5 is not set | ||
893 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
894 | # CONFIG_CRYPTO_RMD128 is not set | ||
895 | # CONFIG_CRYPTO_RMD160 is not set | ||
896 | # CONFIG_CRYPTO_RMD256 is not set | ||
897 | # CONFIG_CRYPTO_RMD320 is not set | ||
898 | # CONFIG_CRYPTO_SHA1 is not set | ||
899 | # CONFIG_CRYPTO_SHA256 is not set | ||
900 | # CONFIG_CRYPTO_SHA512 is not set | ||
901 | # CONFIG_CRYPTO_TGR192 is not set | ||
902 | # CONFIG_CRYPTO_WP512 is not set | ||
903 | |||
904 | # | ||
905 | # Ciphers | ||
906 | # | ||
907 | # CONFIG_CRYPTO_AES is not set | ||
908 | # CONFIG_CRYPTO_ANUBIS is not set | ||
909 | # CONFIG_CRYPTO_ARC4 is not set | ||
910 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
911 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
912 | # CONFIG_CRYPTO_CAST5 is not set | ||
913 | # CONFIG_CRYPTO_CAST6 is not set | ||
914 | # CONFIG_CRYPTO_DES is not set | ||
915 | # CONFIG_CRYPTO_FCRYPT is not set | ||
916 | # CONFIG_CRYPTO_KHAZAD is not set | ||
917 | # CONFIG_CRYPTO_SALSA20 is not set | ||
918 | # CONFIG_CRYPTO_SEED is not set | ||
919 | # CONFIG_CRYPTO_SERPENT is not set | ||
920 | # CONFIG_CRYPTO_TEA is not set | ||
921 | # CONFIG_CRYPTO_TWOFISH is not set | ||
922 | |||
923 | # | ||
924 | # Compression | ||
925 | # | ||
926 | # CONFIG_CRYPTO_DEFLATE is not set | ||
927 | # CONFIG_CRYPTO_LZO is not set | ||
867 | 928 | ||
868 | # | 929 | # |
869 | # Cryptographic options | 930 | # Random Number Generation |
870 | # | 931 | # |
871 | # CONFIG_CRYPTO is not set | 932 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
933 | CONFIG_CRYPTO_HW=y | ||
872 | 934 | ||
873 | # | 935 | # |
874 | # Library routines | 936 | # Library routines |
@@ -876,8 +938,10 @@ CONFIG_SH_STANDARD_BIOS=y | |||
876 | CONFIG_BITREVERSE=y | 938 | CONFIG_BITREVERSE=y |
877 | # CONFIG_CRC_CCITT is not set | 939 | # CONFIG_CRC_CCITT is not set |
878 | # CONFIG_CRC16 is not set | 940 | # CONFIG_CRC16 is not set |
941 | # CONFIG_CRC_T10DIF is not set | ||
879 | # CONFIG_CRC_ITU_T is not set | 942 | # CONFIG_CRC_ITU_T is not set |
880 | CONFIG_CRC32=y | 943 | CONFIG_CRC32=y |
944 | # CONFIG_CRC7 is not set | ||
881 | # CONFIG_LIBCRC32C is not set | 945 | # CONFIG_LIBCRC32C is not set |
882 | CONFIG_PLIST=y | 946 | CONFIG_PLIST=y |
883 | CONFIG_HAS_IOMEM=y | 947 | CONFIG_HAS_IOMEM=y |
diff --git a/arch/sh/configs/se7750_defconfig b/arch/sh/configs/se7750_defconfig index 167786f9a9bd..a577099c3247 100644 --- a/arch/sh/configs/se7750_defconfig +++ b/arch/sh/configs/se7750_defconfig | |||
@@ -1,48 +1,55 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.20-rc2 | 3 | # Linux kernel version: 2.6.27 |
4 | # Thu Dec 28 23:15:49 2006 | 4 | # Wed Oct 22 19:17:29 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | ||
8 | CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig" | ||
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
10 | CONFIG_GENERIC_BUG=y | ||
8 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
9 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
10 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
11 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
12 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
13 | # CONFIG_GENERIC_TIME is not set | 17 | CONFIG_GENERIC_TIME=y |
18 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
14 | CONFIG_STACKTRACE_SUPPORT=y | 19 | CONFIG_STACKTRACE_SUPPORT=y |
15 | CONFIG_LOCKDEP_SUPPORT=y | 20 | CONFIG_LOCKDEP_SUPPORT=y |
21 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
16 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 22 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
17 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 23 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
24 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | ||
18 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 25 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
19 | 26 | ||
20 | # | 27 | # |
21 | # Code maturity level options | 28 | # General setup |
22 | # | 29 | # |
23 | CONFIG_EXPERIMENTAL=y | 30 | CONFIG_EXPERIMENTAL=y |
24 | CONFIG_BROKEN_ON_SMP=y | 31 | CONFIG_BROKEN_ON_SMP=y |
25 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 32 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
26 | |||
27 | # | ||
28 | # General setup | ||
29 | # | ||
30 | CONFIG_LOCALVERSION="" | 33 | CONFIG_LOCALVERSION="" |
31 | CONFIG_LOCALVERSION_AUTO=y | 34 | CONFIG_LOCALVERSION_AUTO=y |
32 | # CONFIG_SWAP is not set | 35 | # CONFIG_SWAP is not set |
33 | CONFIG_SYSVIPC=y | 36 | CONFIG_SYSVIPC=y |
34 | # CONFIG_IPC_NS is not set | 37 | CONFIG_SYSVIPC_SYSCTL=y |
35 | # CONFIG_POSIX_MQUEUE is not set | 38 | # CONFIG_POSIX_MQUEUE is not set |
36 | CONFIG_BSD_PROCESS_ACCT=y | 39 | CONFIG_BSD_PROCESS_ACCT=y |
37 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | 40 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set |
38 | # CONFIG_TASKSTATS is not set | 41 | # CONFIG_TASKSTATS is not set |
39 | # CONFIG_UTS_NS is not set | ||
40 | # CONFIG_AUDIT is not set | 42 | # CONFIG_AUDIT is not set |
41 | CONFIG_IKCONFIG=y | 43 | CONFIG_IKCONFIG=y |
42 | CONFIG_IKCONFIG_PROC=y | 44 | CONFIG_IKCONFIG_PROC=y |
45 | CONFIG_LOG_BUF_SHIFT=14 | ||
46 | # CONFIG_CGROUPS is not set | ||
47 | # CONFIG_GROUP_SCHED is not set | ||
43 | CONFIG_SYSFS_DEPRECATED=y | 48 | CONFIG_SYSFS_DEPRECATED=y |
49 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
44 | # CONFIG_RELAY is not set | 50 | # CONFIG_RELAY is not set |
45 | CONFIG_INITRAMFS_SOURCE="" | 51 | # CONFIG_NAMESPACES is not set |
52 | # CONFIG_BLK_DEV_INITRD is not set | ||
46 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 53 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
47 | CONFIG_SYSCTL=y | 54 | CONFIG_SYSCTL=y |
48 | CONFIG_EMBEDDED=y | 55 | CONFIG_EMBEDDED=y |
@@ -54,33 +61,47 @@ CONFIG_KALLSYMS=y | |||
54 | CONFIG_PRINTK=y | 61 | CONFIG_PRINTK=y |
55 | CONFIG_BUG=y | 62 | CONFIG_BUG=y |
56 | CONFIG_ELF_CORE=y | 63 | CONFIG_ELF_CORE=y |
64 | CONFIG_COMPAT_BRK=y | ||
57 | CONFIG_BASE_FULL=y | 65 | CONFIG_BASE_FULL=y |
58 | CONFIG_FUTEX=y | 66 | CONFIG_FUTEX=y |
67 | CONFIG_ANON_INODES=y | ||
59 | CONFIG_EPOLL=y | 68 | CONFIG_EPOLL=y |
69 | CONFIG_SIGNALFD=y | ||
70 | CONFIG_TIMERFD=y | ||
71 | CONFIG_EVENTFD=y | ||
60 | CONFIG_SHMEM=y | 72 | CONFIG_SHMEM=y |
61 | CONFIG_SLAB=y | 73 | CONFIG_AIO=y |
62 | CONFIG_VM_EVENT_COUNTERS=y | 74 | CONFIG_VM_EVENT_COUNTERS=y |
75 | CONFIG_PCI_QUIRKS=y | ||
76 | CONFIG_SLAB=y | ||
77 | # CONFIG_SLUB is not set | ||
78 | # CONFIG_SLOB is not set | ||
79 | # CONFIG_PROFILING is not set | ||
80 | # CONFIG_MARKERS is not set | ||
81 | CONFIG_HAVE_OPROFILE=y | ||
82 | # CONFIG_KPROBES is not set | ||
83 | CONFIG_HAVE_IOREMAP_PROT=y | ||
84 | CONFIG_HAVE_KPROBES=y | ||
85 | CONFIG_HAVE_KRETPROBES=y | ||
86 | CONFIG_HAVE_ARCH_TRACEHOOK=y | ||
87 | CONFIG_HAVE_CLK=y | ||
88 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
89 | CONFIG_SLABINFO=y | ||
63 | CONFIG_RT_MUTEXES=y | 90 | CONFIG_RT_MUTEXES=y |
64 | # CONFIG_TINY_SHMEM is not set | 91 | # CONFIG_TINY_SHMEM is not set |
65 | CONFIG_BASE_SMALL=0 | 92 | CONFIG_BASE_SMALL=0 |
66 | # CONFIG_SLOB is not set | ||
67 | |||
68 | # | ||
69 | # Loadable module support | ||
70 | # | ||
71 | CONFIG_MODULES=y | 93 | CONFIG_MODULES=y |
94 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
72 | # CONFIG_MODULE_UNLOAD is not set | 95 | # CONFIG_MODULE_UNLOAD is not set |
73 | # CONFIG_MODVERSIONS is not set | 96 | # CONFIG_MODVERSIONS is not set |
74 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 97 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
75 | CONFIG_KMOD=y | 98 | CONFIG_KMOD=y |
76 | |||
77 | # | ||
78 | # Block layer | ||
79 | # | ||
80 | CONFIG_BLOCK=y | 99 | CONFIG_BLOCK=y |
81 | # CONFIG_LBD is not set | 100 | # CONFIG_LBD is not set |
82 | # CONFIG_BLK_DEV_IO_TRACE is not set | 101 | # CONFIG_BLK_DEV_IO_TRACE is not set |
83 | # CONFIG_LSF is not set | 102 | # CONFIG_LSF is not set |
103 | # CONFIG_BLK_DEV_BSG is not set | ||
104 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
84 | 105 | ||
85 | # | 106 | # |
86 | # IO Schedulers | 107 | # IO Schedulers |
@@ -94,68 +115,27 @@ CONFIG_DEFAULT_AS=y | |||
94 | # CONFIG_DEFAULT_CFQ is not set | 115 | # CONFIG_DEFAULT_CFQ is not set |
95 | # CONFIG_DEFAULT_NOOP is not set | 116 | # CONFIG_DEFAULT_NOOP is not set |
96 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 117 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
118 | CONFIG_CLASSIC_RCU=y | ||
119 | # CONFIG_FREEZER is not set | ||
97 | 120 | ||
98 | # | 121 | # |
99 | # System type | 122 | # System type |
100 | # | 123 | # |
101 | CONFIG_SOLUTION_ENGINE=y | ||
102 | CONFIG_SH_SOLUTION_ENGINE=y | ||
103 | # CONFIG_SH_7751_SOLUTION_ENGINE is not set | ||
104 | # CONFIG_SH_7300_SOLUTION_ENGINE is not set | ||
105 | # CONFIG_SH_7343_SOLUTION_ENGINE is not set | ||
106 | # CONFIG_SH_73180_SOLUTION_ENGINE is not set | ||
107 | # CONFIG_SH_7751_SYSTEMH is not set | ||
108 | # CONFIG_SH_HP6XX is not set | ||
109 | # CONFIG_SH_EC3104 is not set | ||
110 | # CONFIG_SH_SATURN is not set | ||
111 | # CONFIG_SH_DREAMCAST is not set | ||
112 | # CONFIG_SH_BIGSUR is not set | ||
113 | # CONFIG_SH_MPC1211 is not set | ||
114 | # CONFIG_SH_SH03 is not set | ||
115 | # CONFIG_SH_SECUREEDGE5410 is not set | ||
116 | # CONFIG_SH_HS7751RVOIP is not set | ||
117 | # CONFIG_SH_7710VOIPGW is not set | ||
118 | # CONFIG_SH_RTS7751R2D is not set | ||
119 | # CONFIG_SH_R7780RP is not set | ||
120 | # CONFIG_SH_EDOSK7705 is not set | ||
121 | # CONFIG_SH_SH4202_MICRODEV is not set | ||
122 | # CONFIG_SH_LANDISK is not set | ||
123 | # CONFIG_SH_TITAN is not set | ||
124 | # CONFIG_SH_SHMIN is not set | ||
125 | # CONFIG_SH_7206_SOLUTION_ENGINE is not set | ||
126 | # CONFIG_SH_7619_SOLUTION_ENGINE is not set | ||
127 | # CONFIG_SH_UNKNOWN is not set | ||
128 | |||
129 | # | ||
130 | # Processor selection | ||
131 | # | ||
132 | CONFIG_CPU_SH4=y | 124 | CONFIG_CPU_SH4=y |
133 | |||
134 | # | ||
135 | # SH-2 Processor Support | ||
136 | # | ||
137 | # CONFIG_CPU_SUBTYPE_SH7604 is not set | ||
138 | # CONFIG_CPU_SUBTYPE_SH7619 is not set | 125 | # CONFIG_CPU_SUBTYPE_SH7619 is not set |
139 | 126 | # CONFIG_CPU_SUBTYPE_SH7203 is not set | |
140 | # | ||
141 | # SH-2A Processor Support | ||
142 | # | ||
143 | # CONFIG_CPU_SUBTYPE_SH7206 is not set | 127 | # CONFIG_CPU_SUBTYPE_SH7206 is not set |
144 | 128 | # CONFIG_CPU_SUBTYPE_SH7263 is not set | |
145 | # | 129 | # CONFIG_CPU_SUBTYPE_MXG is not set |
146 | # SH-3 Processor Support | ||
147 | # | ||
148 | # CONFIG_CPU_SUBTYPE_SH7300 is not set | ||
149 | # CONFIG_CPU_SUBTYPE_SH7705 is not set | 130 | # CONFIG_CPU_SUBTYPE_SH7705 is not set |
150 | # CONFIG_CPU_SUBTYPE_SH7706 is not set | 131 | # CONFIG_CPU_SUBTYPE_SH7706 is not set |
151 | # CONFIG_CPU_SUBTYPE_SH7707 is not set | 132 | # CONFIG_CPU_SUBTYPE_SH7707 is not set |
152 | # CONFIG_CPU_SUBTYPE_SH7708 is not set | 133 | # CONFIG_CPU_SUBTYPE_SH7708 is not set |
153 | # CONFIG_CPU_SUBTYPE_SH7709 is not set | 134 | # CONFIG_CPU_SUBTYPE_SH7709 is not set |
154 | # CONFIG_CPU_SUBTYPE_SH7710 is not set | 135 | # CONFIG_CPU_SUBTYPE_SH7710 is not set |
155 | 136 | # CONFIG_CPU_SUBTYPE_SH7712 is not set | |
156 | # | 137 | # CONFIG_CPU_SUBTYPE_SH7720 is not set |
157 | # SH-4 Processor Support | 138 | # CONFIG_CPU_SUBTYPE_SH7721 is not set |
158 | # | ||
159 | CONFIG_CPU_SUBTYPE_SH7750=y | 139 | CONFIG_CPU_SUBTYPE_SH7750=y |
160 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | 140 | # CONFIG_CPU_SUBTYPE_SH7091 is not set |
161 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | 141 | # CONFIG_CPU_SUBTYPE_SH7750R is not set |
@@ -164,58 +144,61 @@ CONFIG_CPU_SUBTYPE_SH7750=y | |||
164 | # CONFIG_CPU_SUBTYPE_SH7751R is not set | 144 | # CONFIG_CPU_SUBTYPE_SH7751R is not set |
165 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | 145 | # CONFIG_CPU_SUBTYPE_SH7760 is not set |
166 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | 146 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set |
167 | 147 | # CONFIG_CPU_SUBTYPE_SH7723 is not set | |
168 | # | 148 | # CONFIG_CPU_SUBTYPE_SH7763 is not set |
169 | # ST40 Processor Support | ||
170 | # | ||
171 | # CONFIG_CPU_SUBTYPE_ST40STB1 is not set | ||
172 | # CONFIG_CPU_SUBTYPE_ST40GX1 is not set | ||
173 | |||
174 | # | ||
175 | # SH-4A Processor Support | ||
176 | # | ||
177 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | 149 | # CONFIG_CPU_SUBTYPE_SH7770 is not set |
178 | # CONFIG_CPU_SUBTYPE_SH7780 is not set | 150 | # CONFIG_CPU_SUBTYPE_SH7780 is not set |
179 | # CONFIG_CPU_SUBTYPE_SH7785 is not set | 151 | # CONFIG_CPU_SUBTYPE_SH7785 is not set |
180 | 152 | # CONFIG_CPU_SUBTYPE_SHX3 is not set | |
181 | # | ||
182 | # SH4AL-DSP Processor Support | ||
183 | # | ||
184 | # CONFIG_CPU_SUBTYPE_SH73180 is not set | ||
185 | # CONFIG_CPU_SUBTYPE_SH7343 is not set | 153 | # CONFIG_CPU_SUBTYPE_SH7343 is not set |
186 | # CONFIG_CPU_SUBTYPE_SH7722 is not set | 154 | # CONFIG_CPU_SUBTYPE_SH7722 is not set |
155 | # CONFIG_CPU_SUBTYPE_SH7366 is not set | ||
156 | # CONFIG_CPU_SUBTYPE_SH5_101 is not set | ||
157 | # CONFIG_CPU_SUBTYPE_SH5_103 is not set | ||
187 | 158 | ||
188 | # | 159 | # |
189 | # Memory management options | 160 | # Memory management options |
190 | # | 161 | # |
162 | CONFIG_QUICKLIST=y | ||
191 | CONFIG_MMU=y | 163 | CONFIG_MMU=y |
192 | CONFIG_PAGE_OFFSET=0x80000000 | 164 | CONFIG_PAGE_OFFSET=0x80000000 |
193 | CONFIG_MEMORY_START=0x0c000000 | 165 | CONFIG_MEMORY_START=0x0c000000 |
194 | CONFIG_MEMORY_SIZE=0x02000000 | 166 | CONFIG_MEMORY_SIZE=0x02000000 |
167 | CONFIG_29BIT=y | ||
195 | CONFIG_VSYSCALL=y | 168 | CONFIG_VSYSCALL=y |
169 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
170 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | ||
171 | CONFIG_ARCH_SPARSEMEM_DEFAULT=y | ||
172 | CONFIG_MAX_ACTIVE_REGIONS=1 | ||
173 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
174 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | ||
196 | CONFIG_PAGE_SIZE_4KB=y | 175 | CONFIG_PAGE_SIZE_4KB=y |
197 | # CONFIG_PAGE_SIZE_8KB is not set | 176 | # CONFIG_PAGE_SIZE_8KB is not set |
177 | # CONFIG_PAGE_SIZE_16KB is not set | ||
198 | # CONFIG_PAGE_SIZE_64KB is not set | 178 | # CONFIG_PAGE_SIZE_64KB is not set |
179 | CONFIG_ENTRY_OFFSET=0x00001000 | ||
199 | CONFIG_SELECT_MEMORY_MODEL=y | 180 | CONFIG_SELECT_MEMORY_MODEL=y |
200 | CONFIG_FLATMEM_MANUAL=y | 181 | CONFIG_FLATMEM_MANUAL=y |
201 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 182 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
202 | # CONFIG_SPARSEMEM_MANUAL is not set | 183 | # CONFIG_SPARSEMEM_MANUAL is not set |
203 | CONFIG_FLATMEM=y | 184 | CONFIG_FLATMEM=y |
204 | CONFIG_FLAT_NODE_MEM_MAP=y | 185 | CONFIG_FLAT_NODE_MEM_MAP=y |
205 | # CONFIG_SPARSEMEM_STATIC is not set | 186 | CONFIG_SPARSEMEM_STATIC=y |
187 | CONFIG_PAGEFLAGS_EXTENDED=y | ||
206 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 188 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
207 | # CONFIG_RESOURCES_64BIT is not set | 189 | # CONFIG_RESOURCES_64BIT is not set |
190 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
191 | CONFIG_ZONE_DMA_FLAG=0 | ||
192 | CONFIG_NR_QUICK=2 | ||
193 | CONFIG_UNEVICTABLE_LRU=y | ||
208 | 194 | ||
209 | # | 195 | # |
210 | # Cache configuration | 196 | # Cache configuration |
211 | # | 197 | # |
212 | # CONFIG_SH_DIRECT_MAPPED is not set | 198 | # CONFIG_SH_DIRECT_MAPPED is not set |
213 | # CONFIG_SH_WRITETHROUGH is not set | 199 | CONFIG_CACHE_WRITEBACK=y |
214 | # CONFIG_SH_OCRAM is not set | 200 | # CONFIG_CACHE_WRITETHROUGH is not set |
215 | CONFIG_CF_ENABLER=y | 201 | # CONFIG_CACHE_OFF is not set |
216 | # CONFIG_CF_AREA5 is not set | ||
217 | CONFIG_CF_AREA6=y | ||
218 | CONFIG_CF_BASE_ADDR=0xb8000000 | ||
219 | 202 | ||
220 | # | 203 | # |
221 | # Processor features | 204 | # Processor features |
@@ -223,19 +206,28 @@ CONFIG_CF_BASE_ADDR=0xb8000000 | |||
223 | CONFIG_CPU_LITTLE_ENDIAN=y | 206 | CONFIG_CPU_LITTLE_ENDIAN=y |
224 | # CONFIG_CPU_BIG_ENDIAN is not set | 207 | # CONFIG_CPU_BIG_ENDIAN is not set |
225 | CONFIG_SH_FPU=y | 208 | CONFIG_SH_FPU=y |
226 | # CONFIG_SH_DSP is not set | ||
227 | # CONFIG_SH_STORE_QUEUES is not set | 209 | # CONFIG_SH_STORE_QUEUES is not set |
228 | CONFIG_CPU_HAS_INTEVT=y | 210 | CONFIG_CPU_HAS_INTEVT=y |
229 | CONFIG_CPU_HAS_INTC_IRQ=y | 211 | CONFIG_CPU_HAS_IPR_IRQ=y |
230 | CONFIG_CPU_HAS_SR_RB=y | 212 | CONFIG_CPU_HAS_SR_RB=y |
231 | CONFIG_CPU_HAS_PTEA=y | 213 | CONFIG_CPU_HAS_PTEA=y |
214 | CONFIG_CPU_HAS_FPU=y | ||
232 | 215 | ||
233 | # | 216 | # |
234 | # Timer support | 217 | # Board support |
218 | # | ||
219 | CONFIG_SOLUTION_ENGINE=y | ||
220 | CONFIG_SH_SOLUTION_ENGINE=y | ||
221 | |||
222 | # | ||
223 | # Timer and clock configuration | ||
235 | # | 224 | # |
236 | CONFIG_SH_TMU=y | 225 | CONFIG_SH_TMU=y |
237 | CONFIG_SH_TIMER_IRQ=16 | 226 | CONFIG_SH_TIMER_IRQ=16 |
238 | CONFIG_SH_PCLK_FREQ=33333333 | 227 | CONFIG_SH_PCLK_FREQ=33333333 |
228 | # CONFIG_NO_HZ is not set | ||
229 | # CONFIG_HIGH_RES_TIMERS is not set | ||
230 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
239 | 231 | ||
240 | # | 232 | # |
241 | # CPU Frequency scaling | 233 | # CPU Frequency scaling |
@@ -250,12 +242,11 @@ CONFIG_SH_PCLK_FREQ=33333333 | |||
250 | # | 242 | # |
251 | # Companion Chips | 243 | # Companion Chips |
252 | # | 244 | # |
253 | # CONFIG_HD6446X_SERIES is not set | ||
254 | CONFIG_HEARTBEAT=y | ||
255 | 245 | ||
256 | # | 246 | # |
257 | # Additional SuperH Device Drivers | 247 | # Additional SuperH Device Drivers |
258 | # | 248 | # |
249 | CONFIG_HEARTBEAT=y | ||
259 | # CONFIG_PUSH_SWITCH is not set | 250 | # CONFIG_PUSH_SWITCH is not set |
260 | 251 | ||
261 | # | 252 | # |
@@ -266,11 +257,15 @@ CONFIG_HZ_250=y | |||
266 | # CONFIG_HZ_300 is not set | 257 | # CONFIG_HZ_300 is not set |
267 | # CONFIG_HZ_1000 is not set | 258 | # CONFIG_HZ_1000 is not set |
268 | CONFIG_HZ=250 | 259 | CONFIG_HZ=250 |
260 | # CONFIG_SCHED_HRTICK is not set | ||
269 | # CONFIG_KEXEC is not set | 261 | # CONFIG_KEXEC is not set |
270 | # CONFIG_SMP is not set | 262 | # CONFIG_CRASH_DUMP is not set |
263 | # CONFIG_SECCOMP is not set | ||
271 | CONFIG_PREEMPT_NONE=y | 264 | CONFIG_PREEMPT_NONE=y |
272 | # CONFIG_PREEMPT_VOLUNTARY is not set | 265 | # CONFIG_PREEMPT_VOLUNTARY is not set |
273 | # CONFIG_PREEMPT is not set | 266 | # CONFIG_PREEMPT is not set |
267 | CONFIG_GUSA=y | ||
268 | # CONFIG_GUSA_RB is not set | ||
274 | 269 | ||
275 | # | 270 | # |
276 | # Boot options | 271 | # Boot options |
@@ -283,43 +278,32 @@ CONFIG_BOOT_LINK_OFFSET=0x00800000 | |||
283 | # | 278 | # |
284 | # Bus options | 279 | # Bus options |
285 | # | 280 | # |
286 | # CONFIG_PCI is not set | 281 | CONFIG_CF_ENABLER=y |
287 | 282 | # CONFIG_CF_AREA5 is not set | |
288 | # | 283 | CONFIG_CF_AREA6=y |
289 | # PCCARD (PCMCIA/CardBus) support | 284 | CONFIG_CF_BASE_ADDR=0xb8000000 |
290 | # | 285 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
291 | |||
292 | # | ||
293 | # PCI Hotplug Support | ||
294 | # | ||
295 | 286 | ||
296 | # | 287 | # |
297 | # Executable file formats | 288 | # Executable file formats |
298 | # | 289 | # |
299 | CONFIG_BINFMT_ELF=y | 290 | CONFIG_BINFMT_ELF=y |
300 | # CONFIG_BINFMT_FLAT is not set | 291 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set |
292 | # CONFIG_HAVE_AOUT is not set | ||
301 | # CONFIG_BINFMT_MISC is not set | 293 | # CONFIG_BINFMT_MISC is not set |
302 | |||
303 | # | ||
304 | # Power management options (EXPERIMENTAL) | ||
305 | # | ||
306 | # CONFIG_PM is not set | ||
307 | |||
308 | # | ||
309 | # Networking | ||
310 | # | ||
311 | CONFIG_NET=y | 294 | CONFIG_NET=y |
312 | 295 | ||
313 | # | 296 | # |
314 | # Networking options | 297 | # Networking options |
315 | # | 298 | # |
316 | # CONFIG_NETDEBUG is not set | ||
317 | CONFIG_PACKET=y | 299 | CONFIG_PACKET=y |
318 | # CONFIG_PACKET_MMAP is not set | 300 | # CONFIG_PACKET_MMAP is not set |
319 | CONFIG_UNIX=y | 301 | CONFIG_UNIX=y |
320 | CONFIG_XFRM=y | 302 | CONFIG_XFRM=y |
321 | # CONFIG_XFRM_USER is not set | 303 | # CONFIG_XFRM_USER is not set |
322 | # CONFIG_XFRM_SUB_POLICY is not set | 304 | # CONFIG_XFRM_SUB_POLICY is not set |
305 | # CONFIG_XFRM_MIGRATE is not set | ||
306 | # CONFIG_XFRM_STATISTICS is not set | ||
323 | # CONFIG_NET_KEY is not set | 307 | # CONFIG_NET_KEY is not set |
324 | CONFIG_INET=y | 308 | CONFIG_INET=y |
325 | CONFIG_IP_MULTICAST=y | 309 | CONFIG_IP_MULTICAST=y |
@@ -342,6 +326,7 @@ CONFIG_IP_PNP_BOOTP=y | |||
342 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | 326 | CONFIG_INET_XFRM_MODE_TRANSPORT=y |
343 | CONFIG_INET_XFRM_MODE_TUNNEL=y | 327 | CONFIG_INET_XFRM_MODE_TUNNEL=y |
344 | CONFIG_INET_XFRM_MODE_BEET=y | 328 | CONFIG_INET_XFRM_MODE_BEET=y |
329 | # CONFIG_INET_LRO is not set | ||
345 | CONFIG_INET_DIAG=y | 330 | CONFIG_INET_DIAG=y |
346 | CONFIG_INET_TCP_DIAG=y | 331 | CONFIG_INET_TCP_DIAG=y |
347 | # CONFIG_TCP_CONG_ADVANCED is not set | 332 | # CONFIG_TCP_CONG_ADVANCED is not set |
@@ -349,27 +334,14 @@ CONFIG_TCP_CONG_CUBIC=y | |||
349 | CONFIG_DEFAULT_TCP_CONG="cubic" | 334 | CONFIG_DEFAULT_TCP_CONG="cubic" |
350 | # CONFIG_TCP_MD5SIG is not set | 335 | # CONFIG_TCP_MD5SIG is not set |
351 | # CONFIG_IPV6 is not set | 336 | # CONFIG_IPV6 is not set |
352 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
353 | # CONFIG_INET6_TUNNEL is not set | ||
354 | # CONFIG_NETWORK_SECMARK is not set | 337 | # CONFIG_NETWORK_SECMARK is not set |
355 | # CONFIG_NETFILTER is not set | 338 | # CONFIG_NETFILTER is not set |
356 | |||
357 | # | ||
358 | # DCCP Configuration (EXPERIMENTAL) | ||
359 | # | ||
360 | # CONFIG_IP_DCCP is not set | 339 | # CONFIG_IP_DCCP is not set |
361 | |||
362 | # | ||
363 | # SCTP Configuration (EXPERIMENTAL) | ||
364 | # | ||
365 | # CONFIG_IP_SCTP is not set | 340 | # CONFIG_IP_SCTP is not set |
366 | |||
367 | # | ||
368 | # TIPC Configuration (EXPERIMENTAL) | ||
369 | # | ||
370 | # CONFIG_TIPC is not set | 341 | # CONFIG_TIPC is not set |
371 | # CONFIG_ATM is not set | 342 | # CONFIG_ATM is not set |
372 | # CONFIG_BRIDGE is not set | 343 | # CONFIG_BRIDGE is not set |
344 | # CONFIG_NET_DSA is not set | ||
373 | # CONFIG_VLAN_8021Q is not set | 345 | # CONFIG_VLAN_8021Q is not set |
374 | # CONFIG_DECNET is not set | 346 | # CONFIG_DECNET is not set |
375 | # CONFIG_LLC2 is not set | 347 | # CONFIG_LLC2 is not set |
@@ -379,10 +351,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
379 | # CONFIG_LAPB is not set | 351 | # CONFIG_LAPB is not set |
380 | # CONFIG_ECONET is not set | 352 | # CONFIG_ECONET is not set |
381 | # CONFIG_WAN_ROUTER is not set | 353 | # CONFIG_WAN_ROUTER is not set |
382 | |||
383 | # | ||
384 | # QoS and/or fair queueing | ||
385 | # | ||
386 | # CONFIG_NET_SCHED is not set | 354 | # CONFIG_NET_SCHED is not set |
387 | 355 | ||
388 | # | 356 | # |
@@ -390,9 +358,19 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
390 | # | 358 | # |
391 | # CONFIG_NET_PKTGEN is not set | 359 | # CONFIG_NET_PKTGEN is not set |
392 | # CONFIG_HAMRADIO is not set | 360 | # CONFIG_HAMRADIO is not set |
361 | # CONFIG_CAN is not set | ||
393 | # CONFIG_IRDA is not set | 362 | # CONFIG_IRDA is not set |
394 | # CONFIG_BT is not set | 363 | # CONFIG_BT is not set |
364 | # CONFIG_AF_RXRPC is not set | ||
365 | # CONFIG_PHONET is not set | ||
366 | CONFIG_WIRELESS=y | ||
367 | # CONFIG_CFG80211 is not set | ||
368 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
369 | # CONFIG_WIRELESS_EXT is not set | ||
370 | # CONFIG_MAC80211 is not set | ||
395 | # CONFIG_IEEE80211 is not set | 371 | # CONFIG_IEEE80211 is not set |
372 | # CONFIG_RFKILL is not set | ||
373 | # CONFIG_NET_9P is not set | ||
396 | 374 | ||
397 | # | 375 | # |
398 | # Device Drivers | 376 | # Device Drivers |
@@ -404,32 +382,27 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
404 | CONFIG_STANDALONE=y | 382 | CONFIG_STANDALONE=y |
405 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 383 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
406 | # CONFIG_SYS_HYPERVISOR is not set | 384 | # CONFIG_SYS_HYPERVISOR is not set |
407 | |||
408 | # | ||
409 | # Connector - unified userspace <-> kernelspace linker | ||
410 | # | ||
411 | # CONFIG_CONNECTOR is not set | 385 | # CONFIG_CONNECTOR is not set |
412 | |||
413 | # | ||
414 | # Memory Technology Devices (MTD) | ||
415 | # | ||
416 | CONFIG_MTD=y | 386 | CONFIG_MTD=y |
417 | # CONFIG_MTD_DEBUG is not set | 387 | # CONFIG_MTD_DEBUG is not set |
418 | # CONFIG_MTD_CONCAT is not set | 388 | # CONFIG_MTD_CONCAT is not set |
419 | CONFIG_MTD_PARTITIONS=y | 389 | CONFIG_MTD_PARTITIONS=y |
420 | # CONFIG_MTD_REDBOOT_PARTS is not set | 390 | # CONFIG_MTD_REDBOOT_PARTS is not set |
421 | # CONFIG_MTD_CMDLINE_PARTS is not set | 391 | # CONFIG_MTD_CMDLINE_PARTS is not set |
392 | # CONFIG_MTD_AR7_PARTS is not set | ||
422 | 393 | ||
423 | # | 394 | # |
424 | # User Modules And Translation Layers | 395 | # User Modules And Translation Layers |
425 | # | 396 | # |
426 | CONFIG_MTD_CHAR=y | 397 | CONFIG_MTD_CHAR=y |
398 | CONFIG_MTD_BLKDEVS=y | ||
427 | CONFIG_MTD_BLOCK=y | 399 | CONFIG_MTD_BLOCK=y |
428 | # CONFIG_FTL is not set | 400 | # CONFIG_FTL is not set |
429 | # CONFIG_NFTL is not set | 401 | # CONFIG_NFTL is not set |
430 | # CONFIG_INFTL is not set | 402 | # CONFIG_INFTL is not set |
431 | # CONFIG_RFD_FTL is not set | 403 | # CONFIG_RFD_FTL is not set |
432 | # CONFIG_SSFDC is not set | 404 | # CONFIG_SSFDC is not set |
405 | # CONFIG_MTD_OOPS is not set | ||
433 | 406 | ||
434 | # | 407 | # |
435 | # RAM/ROM/Flash chip drivers | 408 | # RAM/ROM/Flash chip drivers |
@@ -455,7 +428,6 @@ CONFIG_MTD_CFI_UTIL=y | |||
455 | # CONFIG_MTD_RAM is not set | 428 | # CONFIG_MTD_RAM is not set |
456 | CONFIG_MTD_ROM=y | 429 | CONFIG_MTD_ROM=y |
457 | # CONFIG_MTD_ABSENT is not set | 430 | # CONFIG_MTD_ABSENT is not set |
458 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
459 | 431 | ||
460 | # | 432 | # |
461 | # Mapping drivers for chip access | 433 | # Mapping drivers for chip access |
@@ -478,75 +450,53 @@ CONFIG_MTD_ROM=y | |||
478 | # CONFIG_MTD_DOC2000 is not set | 450 | # CONFIG_MTD_DOC2000 is not set |
479 | # CONFIG_MTD_DOC2001 is not set | 451 | # CONFIG_MTD_DOC2001 is not set |
480 | # CONFIG_MTD_DOC2001PLUS is not set | 452 | # CONFIG_MTD_DOC2001PLUS is not set |
481 | |||
482 | # | ||
483 | # NAND Flash Device Drivers | ||
484 | # | ||
485 | # CONFIG_MTD_NAND is not set | 453 | # CONFIG_MTD_NAND is not set |
486 | |||
487 | # | ||
488 | # OneNAND Flash Device Drivers | ||
489 | # | ||
490 | # CONFIG_MTD_ONENAND is not set | 454 | # CONFIG_MTD_ONENAND is not set |
491 | 455 | ||
492 | # | 456 | # |
493 | # Parallel port support | 457 | # UBI - Unsorted block images |
494 | # | 458 | # |
459 | # CONFIG_MTD_UBI is not set | ||
495 | # CONFIG_PARPORT is not set | 460 | # CONFIG_PARPORT is not set |
496 | 461 | CONFIG_BLK_DEV=y | |
497 | # | ||
498 | # Plug and Play support | ||
499 | # | ||
500 | |||
501 | # | ||
502 | # Block devices | ||
503 | # | ||
504 | # CONFIG_BLK_DEV_COW_COMMON is not set | 462 | # CONFIG_BLK_DEV_COW_COMMON is not set |
505 | # CONFIG_BLK_DEV_LOOP is not set | 463 | # CONFIG_BLK_DEV_LOOP is not set |
506 | # CONFIG_BLK_DEV_NBD is not set | 464 | # CONFIG_BLK_DEV_NBD is not set |
507 | # CONFIG_BLK_DEV_RAM is not set | 465 | # CONFIG_BLK_DEV_RAM is not set |
508 | # CONFIG_BLK_DEV_INITRD is not set | ||
509 | # CONFIG_CDROM_PKTCDVD is not set | 466 | # CONFIG_CDROM_PKTCDVD is not set |
510 | # CONFIG_ATA_OVER_ETH is not set | 467 | # CONFIG_ATA_OVER_ETH is not set |
511 | 468 | # CONFIG_BLK_DEV_HD is not set | |
512 | # | 469 | CONFIG_MISC_DEVICES=y |
513 | # Misc devices | 470 | # CONFIG_EEPROM_93CX6 is not set |
514 | # | 471 | # CONFIG_ENCLOSURE_SERVICES is not set |
515 | # CONFIG_TIFM_CORE is not set | 472 | CONFIG_HAVE_IDE=y |
516 | |||
517 | # | ||
518 | # ATA/ATAPI/MFM/RLL support | ||
519 | # | ||
520 | CONFIG_IDE=y | 473 | CONFIG_IDE=y |
521 | CONFIG_IDE_MAX_HWIFS=4 | ||
522 | CONFIG_BLK_DEV_IDE=y | ||
523 | 474 | ||
524 | # | 475 | # |
525 | # Please see Documentation/ide.txt for help/info on IDE drives | 476 | # Please see Documentation/ide/ide.txt for help/info on IDE drives |
526 | # | 477 | # |
527 | # CONFIG_BLK_DEV_IDE_SATA is not set | 478 | # CONFIG_BLK_DEV_IDE_SATA is not set |
528 | CONFIG_BLK_DEV_IDEDISK=y | 479 | CONFIG_IDE_GD=y |
529 | # CONFIG_IDEDISK_MULTI_MODE is not set | 480 | CONFIG_IDE_GD_ATA=y |
481 | # CONFIG_IDE_GD_ATAPI is not set | ||
530 | # CONFIG_BLK_DEV_IDECD is not set | 482 | # CONFIG_BLK_DEV_IDECD is not set |
531 | # CONFIG_BLK_DEV_IDETAPE is not set | 483 | # CONFIG_BLK_DEV_IDETAPE is not set |
532 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | ||
533 | # CONFIG_BLK_DEV_IDESCSI is not set | 484 | # CONFIG_BLK_DEV_IDESCSI is not set |
534 | # CONFIG_IDE_TASK_IOCTL is not set | 485 | # CONFIG_IDE_TASK_IOCTL is not set |
486 | CONFIG_IDE_PROC_FS=y | ||
535 | 487 | ||
536 | # | 488 | # |
537 | # IDE chipset support/bugfixes | 489 | # IDE chipset support/bugfixes |
538 | # | 490 | # |
539 | # CONFIG_IDE_GENERIC is not set | 491 | # CONFIG_BLK_DEV_PLATFORM is not set |
540 | # CONFIG_IDE_ARM is not set | ||
541 | # CONFIG_BLK_DEV_IDEDMA is not set | 492 | # CONFIG_BLK_DEV_IDEDMA is not set |
542 | # CONFIG_IDEDMA_AUTO is not set | ||
543 | # CONFIG_BLK_DEV_HD is not set | ||
544 | 493 | ||
545 | # | 494 | # |
546 | # SCSI device support | 495 | # SCSI device support |
547 | # | 496 | # |
548 | # CONFIG_RAID_ATTRS is not set | 497 | # CONFIG_RAID_ATTRS is not set |
549 | CONFIG_SCSI=y | 498 | CONFIG_SCSI=y |
499 | CONFIG_SCSI_DMA=y | ||
550 | # CONFIG_SCSI_TGT is not set | 500 | # CONFIG_SCSI_TGT is not set |
551 | # CONFIG_SCSI_NETLINK is not set | 501 | # CONFIG_SCSI_NETLINK is not set |
552 | CONFIG_SCSI_PROC_FS=y | 502 | CONFIG_SCSI_PROC_FS=y |
@@ -568,6 +518,7 @@ CONFIG_SCSI_PROC_FS=y | |||
568 | # CONFIG_SCSI_CONSTANTS is not set | 518 | # CONFIG_SCSI_CONSTANTS is not set |
569 | # CONFIG_SCSI_LOGGING is not set | 519 | # CONFIG_SCSI_LOGGING is not set |
570 | # CONFIG_SCSI_SCAN_ASYNC is not set | 520 | # CONFIG_SCSI_SCAN_ASYNC is not set |
521 | CONFIG_SCSI_WAIT_SCAN=m | ||
571 | 522 | ||
572 | # | 523 | # |
573 | # SCSI Transports | 524 | # SCSI Transports |
@@ -575,96 +526,52 @@ CONFIG_SCSI_PROC_FS=y | |||
575 | # CONFIG_SCSI_SPI_ATTRS is not set | 526 | # CONFIG_SCSI_SPI_ATTRS is not set |
576 | # CONFIG_SCSI_FC_ATTRS is not set | 527 | # CONFIG_SCSI_FC_ATTRS is not set |
577 | # CONFIG_SCSI_ISCSI_ATTRS is not set | 528 | # CONFIG_SCSI_ISCSI_ATTRS is not set |
578 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
579 | # CONFIG_SCSI_SAS_LIBSAS is not set | 529 | # CONFIG_SCSI_SAS_LIBSAS is not set |
580 | 530 | # CONFIG_SCSI_SRP_ATTRS is not set | |
581 | # | 531 | CONFIG_SCSI_LOWLEVEL=y |
582 | # SCSI low-level drivers | ||
583 | # | ||
584 | # CONFIG_ISCSI_TCP is not set | 532 | # CONFIG_ISCSI_TCP is not set |
585 | # CONFIG_SCSI_DEBUG is not set | 533 | # CONFIG_SCSI_DEBUG is not set |
586 | 534 | # CONFIG_SCSI_DH is not set | |
587 | # | ||
588 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
589 | # | ||
590 | # CONFIG_ATA is not set | 535 | # CONFIG_ATA is not set |
591 | |||
592 | # | ||
593 | # Multi-device support (RAID and LVM) | ||
594 | # | ||
595 | # CONFIG_MD is not set | 536 | # CONFIG_MD is not set |
596 | |||
597 | # | ||
598 | # Fusion MPT device support | ||
599 | # | ||
600 | # CONFIG_FUSION is not set | ||
601 | |||
602 | # | ||
603 | # IEEE 1394 (FireWire) support | ||
604 | # | ||
605 | |||
606 | # | ||
607 | # I2O device support | ||
608 | # | ||
609 | |||
610 | # | ||
611 | # Network device support | ||
612 | # | ||
613 | CONFIG_NETDEVICES=y | 537 | CONFIG_NETDEVICES=y |
614 | # CONFIG_DUMMY is not set | 538 | # CONFIG_DUMMY is not set |
615 | # CONFIG_BONDING is not set | 539 | # CONFIG_BONDING is not set |
540 | # CONFIG_MACVLAN is not set | ||
616 | # CONFIG_EQUALIZER is not set | 541 | # CONFIG_EQUALIZER is not set |
617 | # CONFIG_TUN is not set | 542 | # CONFIG_TUN is not set |
618 | 543 | # CONFIG_VETH is not set | |
619 | # | ||
620 | # PHY device support | ||
621 | # | ||
622 | # CONFIG_PHYLIB is not set | 544 | # CONFIG_PHYLIB is not set |
623 | |||
624 | # | ||
625 | # Ethernet (10 or 100Mbit) | ||
626 | # | ||
627 | CONFIG_NET_ETHERNET=y | 545 | CONFIG_NET_ETHERNET=y |
628 | # CONFIG_MII is not set | 546 | # CONFIG_MII is not set |
547 | # CONFIG_AX88796 is not set | ||
629 | CONFIG_STNIC=y | 548 | CONFIG_STNIC=y |
630 | # CONFIG_SMC91X is not set | 549 | # CONFIG_SMC91X is not set |
631 | 550 | # CONFIG_SMC911X is not set | |
632 | # | 551 | # CONFIG_IBM_NEW_EMAC_ZMII is not set |
633 | # Ethernet (1000 Mbit) | 552 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
634 | # | 553 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
635 | 554 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | |
636 | # | 555 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set |
637 | # Ethernet (10000 Mbit) | 556 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set |
638 | # | 557 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
639 | 558 | # CONFIG_B44 is not set | |
640 | # | 559 | CONFIG_NETDEV_1000=y |
641 | # Token Ring devices | 560 | CONFIG_NETDEV_10000=y |
642 | # | 561 | |
643 | 562 | # | |
644 | # | 563 | # Wireless LAN |
645 | # Wireless LAN (non-hamradio) | 564 | # |
646 | # | 565 | # CONFIG_WLAN_PRE80211 is not set |
647 | # CONFIG_NET_RADIO is not set | 566 | # CONFIG_WLAN_80211 is not set |
648 | 567 | # CONFIG_IWLWIFI_LEDS is not set | |
649 | # | ||
650 | # Wan interfaces | ||
651 | # | ||
652 | # CONFIG_WAN is not set | 568 | # CONFIG_WAN is not set |
653 | # CONFIG_PPP is not set | 569 | # CONFIG_PPP is not set |
654 | # CONFIG_SLIP is not set | 570 | # CONFIG_SLIP is not set |
655 | # CONFIG_SHAPER is not set | ||
656 | # CONFIG_NETCONSOLE is not set | 571 | # CONFIG_NETCONSOLE is not set |
657 | # CONFIG_NETPOLL is not set | 572 | # CONFIG_NETPOLL is not set |
658 | # CONFIG_NET_POLL_CONTROLLER is not set | 573 | # CONFIG_NET_POLL_CONTROLLER is not set |
659 | |||
660 | # | ||
661 | # ISDN subsystem | ||
662 | # | ||
663 | # CONFIG_ISDN is not set | 574 | # CONFIG_ISDN is not set |
664 | |||
665 | # | ||
666 | # Telephony Support | ||
667 | # | ||
668 | # CONFIG_PHONE is not set | 575 | # CONFIG_PHONE is not set |
669 | 576 | ||
670 | # | 577 | # |
@@ -682,6 +589,7 @@ CONFIG_STNIC=y | |||
682 | # Character devices | 589 | # Character devices |
683 | # | 590 | # |
684 | # CONFIG_VT is not set | 591 | # CONFIG_VT is not set |
592 | CONFIG_DEVKMEM=y | ||
685 | # CONFIG_SERIAL_NONSTANDARD is not set | 593 | # CONFIG_SERIAL_NONSTANDARD is not set |
686 | 594 | ||
687 | # | 595 | # |
@@ -704,15 +612,30 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
704 | CONFIG_UNIX98_PTYS=y | 612 | CONFIG_UNIX98_PTYS=y |
705 | CONFIG_LEGACY_PTYS=y | 613 | CONFIG_LEGACY_PTYS=y |
706 | CONFIG_LEGACY_PTY_COUNT=256 | 614 | CONFIG_LEGACY_PTY_COUNT=256 |
707 | |||
708 | # | ||
709 | # IPMI | ||
710 | # | ||
711 | # CONFIG_IPMI_HANDLER is not set | 615 | # CONFIG_IPMI_HANDLER is not set |
712 | 616 | CONFIG_HW_RANDOM=y | |
713 | # | 617 | # CONFIG_R3964 is not set |
714 | # Watchdog Cards | 618 | # CONFIG_RAW_DRIVER is not set |
715 | # | 619 | # CONFIG_TCG_TPM is not set |
620 | # CONFIG_I2C is not set | ||
621 | # CONFIG_SPI is not set | ||
622 | # CONFIG_W1 is not set | ||
623 | # CONFIG_POWER_SUPPLY is not set | ||
624 | CONFIG_HWMON=y | ||
625 | # CONFIG_HWMON_VID is not set | ||
626 | # CONFIG_SENSORS_F71805F is not set | ||
627 | # CONFIG_SENSORS_F71882FG is not set | ||
628 | # CONFIG_SENSORS_IT87 is not set | ||
629 | # CONFIG_SENSORS_PC87360 is not set | ||
630 | # CONFIG_SENSORS_PC87427 is not set | ||
631 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
632 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
633 | # CONFIG_SENSORS_VT1211 is not set | ||
634 | # CONFIG_SENSORS_W83627HF is not set | ||
635 | # CONFIG_SENSORS_W83627EHF is not set | ||
636 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
637 | # CONFIG_THERMAL is not set | ||
638 | # CONFIG_THERMAL_HWMON is not set | ||
716 | CONFIG_WATCHDOG=y | 639 | CONFIG_WATCHDOG=y |
717 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 640 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
718 | 641 | ||
@@ -722,148 +645,92 @@ CONFIG_WATCHDOG=y | |||
722 | # CONFIG_SOFT_WATCHDOG is not set | 645 | # CONFIG_SOFT_WATCHDOG is not set |
723 | CONFIG_SH_WDT=y | 646 | CONFIG_SH_WDT=y |
724 | # CONFIG_SH_WDT_MMAP is not set | 647 | # CONFIG_SH_WDT_MMAP is not set |
725 | CONFIG_HW_RANDOM=y | ||
726 | # CONFIG_GEN_RTC is not set | ||
727 | # CONFIG_DTLK is not set | ||
728 | # CONFIG_R3964 is not set | ||
729 | # CONFIG_RAW_DRIVER is not set | ||
730 | 648 | ||
731 | # | 649 | # |
732 | # TPM devices | 650 | # Sonics Silicon Backplane |
733 | # | 651 | # |
734 | # CONFIG_TCG_TPM is not set | 652 | CONFIG_SSB_POSSIBLE=y |
653 | # CONFIG_SSB is not set | ||
735 | 654 | ||
736 | # | 655 | # |
737 | # I2C support | 656 | # Multifunction device drivers |
738 | # | 657 | # |
739 | # CONFIG_I2C is not set | 658 | # CONFIG_MFD_CORE is not set |
659 | # CONFIG_MFD_SM501 is not set | ||
660 | # CONFIG_HTC_PASIC3 is not set | ||
661 | # CONFIG_MFD_TMIO is not set | ||
662 | # CONFIG_MFD_WM8400 is not set | ||
740 | 663 | ||
741 | # | 664 | # |
742 | # SPI support | 665 | # Multimedia devices |
743 | # | ||
744 | # CONFIG_SPI is not set | ||
745 | # CONFIG_SPI_MASTER is not set | ||
746 | |||
747 | # | ||
748 | # Dallas's 1-wire bus | ||
749 | # | ||
750 | # CONFIG_W1 is not set | ||
751 | |||
752 | # | ||
753 | # Hardware Monitoring support | ||
754 | # | 666 | # |
755 | CONFIG_HWMON=y | ||
756 | # CONFIG_HWMON_VID is not set | ||
757 | # CONFIG_SENSORS_ABITUGURU is not set | ||
758 | # CONFIG_SENSORS_F71805F is not set | ||
759 | # CONFIG_SENSORS_PC87427 is not set | ||
760 | # CONFIG_SENSORS_VT1211 is not set | ||
761 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
762 | 667 | ||
763 | # | 668 | # |
764 | # Multimedia devices | 669 | # Multimedia core support |
765 | # | 670 | # |
766 | # CONFIG_VIDEO_DEV is not set | 671 | # CONFIG_VIDEO_DEV is not set |
672 | # CONFIG_DVB_CORE is not set | ||
673 | # CONFIG_VIDEO_MEDIA is not set | ||
767 | 674 | ||
768 | # | 675 | # |
769 | # Digital Video Broadcasting Devices | 676 | # Multimedia drivers |
770 | # | 677 | # |
771 | # CONFIG_DVB is not set | 678 | # CONFIG_DAB is not set |
772 | 679 | ||
773 | # | 680 | # |
774 | # Graphics support | 681 | # Graphics support |
775 | # | 682 | # |
776 | CONFIG_FIRMWARE_EDID=y | 683 | # CONFIG_VGASTATE is not set |
684 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
777 | # CONFIG_FB is not set | 685 | # CONFIG_FB is not set |
778 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 686 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
779 | 687 | ||
780 | # | 688 | # |
781 | # Sound | 689 | # Display device support |
782 | # | 690 | # |
691 | # CONFIG_DISPLAY_SUPPORT is not set | ||
783 | # CONFIG_SOUND is not set | 692 | # CONFIG_SOUND is not set |
784 | 693 | CONFIG_USB_SUPPORT=y | |
785 | # | 694 | CONFIG_USB_ARCH_HAS_HCD=y |
786 | # USB support | ||
787 | # | ||
788 | # CONFIG_USB_ARCH_HAS_HCD is not set | ||
789 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 695 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
790 | # CONFIG_USB_ARCH_HAS_EHCI is not set | 696 | # CONFIG_USB_ARCH_HAS_EHCI is not set |
697 | # CONFIG_USB is not set | ||
698 | # CONFIG_USB_OTG_WHITELIST is not set | ||
699 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | ||
791 | 700 | ||
792 | # | 701 | # |
793 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 702 | # Enable Host or Gadget support to see Inventra options |
794 | # | 703 | # |
795 | 704 | ||
796 | # | 705 | # |
797 | # USB Gadget Support | 706 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
798 | # | 707 | # |
799 | # CONFIG_USB_GADGET is not set | 708 | # CONFIG_USB_GADGET is not set |
800 | |||
801 | # | ||
802 | # MMC/SD Card support | ||
803 | # | ||
804 | # CONFIG_MMC is not set | 709 | # CONFIG_MMC is not set |
805 | 710 | # CONFIG_MEMSTICK is not set | |
806 | # | ||
807 | # LED devices | ||
808 | # | ||
809 | # CONFIG_NEW_LEDS is not set | 711 | # CONFIG_NEW_LEDS is not set |
810 | 712 | # CONFIG_ACCESSIBILITY is not set | |
811 | # | ||
812 | # LED drivers | ||
813 | # | ||
814 | |||
815 | # | ||
816 | # LED Triggers | ||
817 | # | ||
818 | |||
819 | # | ||
820 | # InfiniBand support | ||
821 | # | ||
822 | |||
823 | # | ||
824 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
825 | # | ||
826 | |||
827 | # | ||
828 | # Real Time Clock | ||
829 | # | ||
830 | # CONFIG_RTC_CLASS is not set | 713 | # CONFIG_RTC_CLASS is not set |
831 | 714 | # CONFIG_DMADEVICES is not set | |
832 | # | 715 | # CONFIG_UIO is not set |
833 | # DMA Engine support | 716 | # CONFIG_STAGING is not set |
834 | # | ||
835 | # CONFIG_DMA_ENGINE is not set | ||
836 | |||
837 | # | ||
838 | # DMA Clients | ||
839 | # | ||
840 | |||
841 | # | ||
842 | # DMA Devices | ||
843 | # | ||
844 | |||
845 | # | ||
846 | # Virtualization | ||
847 | # | ||
848 | 717 | ||
849 | # | 718 | # |
850 | # File systems | 719 | # File systems |
851 | # | 720 | # |
852 | # CONFIG_EXT2_FS is not set | 721 | # CONFIG_EXT2_FS is not set |
853 | # CONFIG_EXT3_FS is not set | 722 | # CONFIG_EXT3_FS is not set |
854 | # CONFIG_EXT4DEV_FS is not set | 723 | # CONFIG_EXT4_FS is not set |
855 | # CONFIG_REISERFS_FS is not set | 724 | # CONFIG_REISERFS_FS is not set |
856 | # CONFIG_JFS_FS is not set | 725 | # CONFIG_JFS_FS is not set |
857 | # CONFIG_FS_POSIX_ACL is not set | 726 | # CONFIG_FS_POSIX_ACL is not set |
727 | CONFIG_FILE_LOCKING=y | ||
858 | # CONFIG_XFS_FS is not set | 728 | # CONFIG_XFS_FS is not set |
859 | # CONFIG_GFS2_FS is not set | ||
860 | # CONFIG_OCFS2_FS is not set | 729 | # CONFIG_OCFS2_FS is not set |
861 | # CONFIG_MINIX_FS is not set | 730 | CONFIG_DNOTIFY=y |
862 | # CONFIG_ROMFS_FS is not set | ||
863 | CONFIG_INOTIFY=y | 731 | CONFIG_INOTIFY=y |
864 | CONFIG_INOTIFY_USER=y | 732 | CONFIG_INOTIFY_USER=y |
865 | # CONFIG_QUOTA is not set | 733 | # CONFIG_QUOTA is not set |
866 | CONFIG_DNOTIFY=y | ||
867 | # CONFIG_AUTOFS_FS is not set | 734 | # CONFIG_AUTOFS_FS is not set |
868 | # CONFIG_AUTOFS4_FS is not set | 735 | # CONFIG_AUTOFS4_FS is not set |
869 | # CONFIG_FUSE_FS is not set | 736 | # CONFIG_FUSE_FS is not set |
@@ -887,12 +754,12 @@ CONFIG_DNOTIFY=y | |||
887 | CONFIG_PROC_FS=y | 754 | CONFIG_PROC_FS=y |
888 | CONFIG_PROC_KCORE=y | 755 | CONFIG_PROC_KCORE=y |
889 | CONFIG_PROC_SYSCTL=y | 756 | CONFIG_PROC_SYSCTL=y |
757 | CONFIG_PROC_PAGE_MONITOR=y | ||
890 | CONFIG_SYSFS=y | 758 | CONFIG_SYSFS=y |
891 | CONFIG_TMPFS=y | 759 | CONFIG_TMPFS=y |
892 | # CONFIG_TMPFS_POSIX_ACL is not set | 760 | # CONFIG_TMPFS_POSIX_ACL is not set |
893 | # CONFIG_HUGETLBFS is not set | 761 | # CONFIG_HUGETLBFS is not set |
894 | # CONFIG_HUGETLB_PAGE is not set | 762 | # CONFIG_HUGETLB_PAGE is not set |
895 | CONFIG_RAMFS=y | ||
896 | # CONFIG_CONFIGFS_FS is not set | 763 | # CONFIG_CONFIGFS_FS is not set |
897 | 764 | ||
898 | # | 765 | # |
@@ -908,31 +775,33 @@ CONFIG_RAMFS=y | |||
908 | CONFIG_JFFS2_FS=y | 775 | CONFIG_JFFS2_FS=y |
909 | CONFIG_JFFS2_FS_DEBUG=0 | 776 | CONFIG_JFFS2_FS_DEBUG=0 |
910 | CONFIG_JFFS2_FS_WRITEBUFFER=y | 777 | CONFIG_JFFS2_FS_WRITEBUFFER=y |
778 | # CONFIG_JFFS2_FS_WBUF_VERIFY is not set | ||
911 | # CONFIG_JFFS2_SUMMARY is not set | 779 | # CONFIG_JFFS2_SUMMARY is not set |
912 | # CONFIG_JFFS2_FS_XATTR is not set | 780 | # CONFIG_JFFS2_FS_XATTR is not set |
913 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | 781 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set |
914 | CONFIG_JFFS2_ZLIB=y | 782 | CONFIG_JFFS2_ZLIB=y |
783 | # CONFIG_JFFS2_LZO is not set | ||
915 | CONFIG_JFFS2_RTIME=y | 784 | CONFIG_JFFS2_RTIME=y |
916 | # CONFIG_JFFS2_RUBIN is not set | 785 | # CONFIG_JFFS2_RUBIN is not set |
917 | # CONFIG_CRAMFS is not set | 786 | # CONFIG_CRAMFS is not set |
918 | # CONFIG_VXFS_FS is not set | 787 | # CONFIG_VXFS_FS is not set |
788 | # CONFIG_MINIX_FS is not set | ||
789 | # CONFIG_OMFS_FS is not set | ||
919 | # CONFIG_HPFS_FS is not set | 790 | # CONFIG_HPFS_FS is not set |
920 | # CONFIG_QNX4FS_FS is not set | 791 | # CONFIG_QNX4FS_FS is not set |
792 | # CONFIG_ROMFS_FS is not set | ||
921 | # CONFIG_SYSV_FS is not set | 793 | # CONFIG_SYSV_FS is not set |
922 | # CONFIG_UFS_FS is not set | 794 | # CONFIG_UFS_FS is not set |
923 | 795 | CONFIG_NETWORK_FILESYSTEMS=y | |
924 | # | ||
925 | # Network File Systems | ||
926 | # | ||
927 | CONFIG_NFS_FS=y | 796 | CONFIG_NFS_FS=y |
928 | # CONFIG_NFS_V3 is not set | 797 | # CONFIG_NFS_V3 is not set |
929 | # CONFIG_NFS_V4 is not set | 798 | # CONFIG_NFS_V4 is not set |
930 | # CONFIG_NFS_DIRECTIO is not set | ||
931 | # CONFIG_NFSD is not set | ||
932 | CONFIG_ROOT_NFS=y | 799 | CONFIG_ROOT_NFS=y |
800 | # CONFIG_NFSD is not set | ||
933 | CONFIG_LOCKD=y | 801 | CONFIG_LOCKD=y |
934 | CONFIG_NFS_COMMON=y | 802 | CONFIG_NFS_COMMON=y |
935 | CONFIG_SUNRPC=y | 803 | CONFIG_SUNRPC=y |
804 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
936 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 805 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
937 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 806 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
938 | # CONFIG_SMB_FS is not set | 807 | # CONFIG_SMB_FS is not set |
@@ -940,7 +809,6 @@ CONFIG_SUNRPC=y | |||
940 | # CONFIG_NCP_FS is not set | 809 | # CONFIG_NCP_FS is not set |
941 | # CONFIG_CODA_FS is not set | 810 | # CONFIG_CODA_FS is not set |
942 | # CONFIG_AFS_FS is not set | 811 | # CONFIG_AFS_FS is not set |
943 | # CONFIG_9P_FS is not set | ||
944 | 812 | ||
945 | # | 813 | # |
946 | # Partition Types | 814 | # Partition Types |
@@ -958,49 +826,126 @@ CONFIG_PARTITION_ADVANCED=y | |||
958 | # CONFIG_SUN_PARTITION is not set | 826 | # CONFIG_SUN_PARTITION is not set |
959 | # CONFIG_KARMA_PARTITION is not set | 827 | # CONFIG_KARMA_PARTITION is not set |
960 | # CONFIG_EFI_PARTITION is not set | 828 | # CONFIG_EFI_PARTITION is not set |
961 | 829 | # CONFIG_SYSV68_PARTITION is not set | |
962 | # | ||
963 | # Native Language Support | ||
964 | # | ||
965 | # CONFIG_NLS is not set | 830 | # CONFIG_NLS is not set |
966 | |||
967 | # | ||
968 | # Distributed Lock Manager | ||
969 | # | ||
970 | # CONFIG_DLM is not set | 831 | # CONFIG_DLM is not set |
971 | 832 | ||
972 | # | 833 | # |
973 | # Profiling support | ||
974 | # | ||
975 | # CONFIG_PROFILING is not set | ||
976 | |||
977 | # | ||
978 | # Kernel hacking | 834 | # Kernel hacking |
979 | # | 835 | # |
980 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 836 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
981 | # CONFIG_PRINTK_TIME is not set | 837 | # CONFIG_PRINTK_TIME is not set |
838 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
982 | # CONFIG_ENABLE_MUST_CHECK is not set | 839 | # CONFIG_ENABLE_MUST_CHECK is not set |
840 | CONFIG_FRAME_WARN=1024 | ||
983 | # CONFIG_MAGIC_SYSRQ is not set | 841 | # CONFIG_MAGIC_SYSRQ is not set |
984 | # CONFIG_UNUSED_SYMBOLS is not set | 842 | # CONFIG_UNUSED_SYMBOLS is not set |
985 | # CONFIG_DEBUG_FS is not set | 843 | # CONFIG_DEBUG_FS is not set |
986 | # CONFIG_HEADERS_CHECK is not set | 844 | # CONFIG_HEADERS_CHECK is not set |
987 | # CONFIG_DEBUG_KERNEL is not set | 845 | # CONFIG_DEBUG_KERNEL is not set |
988 | CONFIG_LOG_BUF_SHIFT=14 | ||
989 | # CONFIG_DEBUG_BUGVERBOSE is not set | 846 | # CONFIG_DEBUG_BUGVERBOSE is not set |
847 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
848 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
849 | # CONFIG_LATENCYTOP is not set | ||
850 | CONFIG_NOP_TRACER=y | ||
851 | CONFIG_HAVE_FTRACE=y | ||
852 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
853 | # CONFIG_SAMPLES is not set | ||
990 | # CONFIG_SH_STANDARD_BIOS is not set | 854 | # CONFIG_SH_STANDARD_BIOS is not set |
991 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 855 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
992 | # CONFIG_KGDB is not set | 856 | # CONFIG_SH_KGDB is not set |
993 | 857 | ||
994 | # | 858 | # |
995 | # Security options | 859 | # Security options |
996 | # | 860 | # |
997 | # CONFIG_KEYS is not set | 861 | # CONFIG_KEYS is not set |
998 | # CONFIG_SECURITY is not set | 862 | # CONFIG_SECURITY is not set |
863 | # CONFIG_SECURITYFS is not set | ||
864 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
865 | CONFIG_CRYPTO=y | ||
866 | |||
867 | # | ||
868 | # Crypto core or helper | ||
869 | # | ||
870 | # CONFIG_CRYPTO_FIPS is not set | ||
871 | # CONFIG_CRYPTO_MANAGER is not set | ||
872 | # CONFIG_CRYPTO_GF128MUL is not set | ||
873 | # CONFIG_CRYPTO_NULL is not set | ||
874 | # CONFIG_CRYPTO_CRYPTD is not set | ||
875 | # CONFIG_CRYPTO_AUTHENC is not set | ||
876 | # CONFIG_CRYPTO_TEST is not set | ||
877 | |||
878 | # | ||
879 | # Authenticated Encryption with Associated Data | ||
880 | # | ||
881 | # CONFIG_CRYPTO_CCM is not set | ||
882 | # CONFIG_CRYPTO_GCM is not set | ||
883 | # CONFIG_CRYPTO_SEQIV is not set | ||
884 | |||
885 | # | ||
886 | # Block modes | ||
887 | # | ||
888 | # CONFIG_CRYPTO_CBC is not set | ||
889 | # CONFIG_CRYPTO_CTR is not set | ||
890 | # CONFIG_CRYPTO_CTS is not set | ||
891 | # CONFIG_CRYPTO_ECB is not set | ||
892 | # CONFIG_CRYPTO_LRW is not set | ||
893 | # CONFIG_CRYPTO_PCBC is not set | ||
894 | # CONFIG_CRYPTO_XTS is not set | ||
895 | |||
896 | # | ||
897 | # Hash modes | ||
898 | # | ||
899 | # CONFIG_CRYPTO_HMAC is not set | ||
900 | # CONFIG_CRYPTO_XCBC is not set | ||
901 | |||
902 | # | ||
903 | # Digest | ||
904 | # | ||
905 | # CONFIG_CRYPTO_CRC32C is not set | ||
906 | # CONFIG_CRYPTO_MD4 is not set | ||
907 | # CONFIG_CRYPTO_MD5 is not set | ||
908 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
909 | # CONFIG_CRYPTO_RMD128 is not set | ||
910 | # CONFIG_CRYPTO_RMD160 is not set | ||
911 | # CONFIG_CRYPTO_RMD256 is not set | ||
912 | # CONFIG_CRYPTO_RMD320 is not set | ||
913 | # CONFIG_CRYPTO_SHA1 is not set | ||
914 | # CONFIG_CRYPTO_SHA256 is not set | ||
915 | # CONFIG_CRYPTO_SHA512 is not set | ||
916 | # CONFIG_CRYPTO_TGR192 is not set | ||
917 | # CONFIG_CRYPTO_WP512 is not set | ||
918 | |||
919 | # | ||
920 | # Ciphers | ||
921 | # | ||
922 | # CONFIG_CRYPTO_AES is not set | ||
923 | # CONFIG_CRYPTO_ANUBIS is not set | ||
924 | # CONFIG_CRYPTO_ARC4 is not set | ||
925 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
926 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
927 | # CONFIG_CRYPTO_CAST5 is not set | ||
928 | # CONFIG_CRYPTO_CAST6 is not set | ||
929 | # CONFIG_CRYPTO_DES is not set | ||
930 | # CONFIG_CRYPTO_FCRYPT is not set | ||
931 | # CONFIG_CRYPTO_KHAZAD is not set | ||
932 | # CONFIG_CRYPTO_SALSA20 is not set | ||
933 | # CONFIG_CRYPTO_SEED is not set | ||
934 | # CONFIG_CRYPTO_SERPENT is not set | ||
935 | # CONFIG_CRYPTO_TEA is not set | ||
936 | # CONFIG_CRYPTO_TWOFISH is not set | ||
937 | |||
938 | # | ||
939 | # Compression | ||
940 | # | ||
941 | # CONFIG_CRYPTO_DEFLATE is not set | ||
942 | # CONFIG_CRYPTO_LZO is not set | ||
999 | 943 | ||
1000 | # | 944 | # |
1001 | # Cryptographic options | 945 | # Random Number Generation |
1002 | # | 946 | # |
1003 | # CONFIG_CRYPTO is not set | 947 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
948 | CONFIG_CRYPTO_HW=y | ||
1004 | 949 | ||
1005 | # | 950 | # |
1006 | # Library routines | 951 | # Library routines |
@@ -1008,9 +953,14 @@ CONFIG_LOG_BUF_SHIFT=14 | |||
1008 | CONFIG_BITREVERSE=y | 953 | CONFIG_BITREVERSE=y |
1009 | # CONFIG_CRC_CCITT is not set | 954 | # CONFIG_CRC_CCITT is not set |
1010 | # CONFIG_CRC16 is not set | 955 | # CONFIG_CRC16 is not set |
956 | # CONFIG_CRC_T10DIF is not set | ||
957 | # CONFIG_CRC_ITU_T is not set | ||
1011 | CONFIG_CRC32=y | 958 | CONFIG_CRC32=y |
959 | # CONFIG_CRC7 is not set | ||
1012 | # CONFIG_LIBCRC32C is not set | 960 | # CONFIG_LIBCRC32C is not set |
1013 | CONFIG_ZLIB_INFLATE=y | 961 | CONFIG_ZLIB_INFLATE=y |
1014 | CONFIG_ZLIB_DEFLATE=y | 962 | CONFIG_ZLIB_DEFLATE=y |
1015 | CONFIG_PLIST=y | 963 | CONFIG_PLIST=y |
1016 | CONFIG_IOMAP_COPY=y | 964 | CONFIG_HAS_IOMEM=y |
965 | CONFIG_HAS_IOPORT=y | ||
966 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/sh/configs/se7751_defconfig b/arch/sh/configs/se7751_defconfig index a9095593f8f3..d99a6bdf410f 100644 --- a/arch/sh/configs/se7751_defconfig +++ b/arch/sh/configs/se7751_defconfig | |||
@@ -1,40 +1,54 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.18 | 3 | # Linux kernel version: 2.6.27 |
4 | # Tue Oct 3 12:10:12 2006 | 4 | # Wed Oct 22 19:21:12 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | ||
8 | CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig" | ||
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
10 | CONFIG_GENERIC_BUG=y | ||
8 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
9 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
10 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
11 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
12 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
17 | CONFIG_GENERIC_TIME=y | ||
18 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
19 | CONFIG_STACKTRACE_SUPPORT=y | ||
20 | CONFIG_LOCKDEP_SUPPORT=y | ||
21 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
22 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
23 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
24 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | ||
13 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 25 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
14 | 26 | ||
15 | # | 27 | # |
16 | # Code maturity level options | 28 | # General setup |
17 | # | 29 | # |
18 | CONFIG_EXPERIMENTAL=y | 30 | CONFIG_EXPERIMENTAL=y |
19 | CONFIG_BROKEN_ON_SMP=y | 31 | CONFIG_BROKEN_ON_SMP=y |
20 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 32 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
21 | |||
22 | # | ||
23 | # General setup | ||
24 | # | ||
25 | CONFIG_LOCALVERSION="" | 33 | CONFIG_LOCALVERSION="" |
26 | CONFIG_LOCALVERSION_AUTO=y | 34 | CONFIG_LOCALVERSION_AUTO=y |
27 | CONFIG_SWAP=y | 35 | CONFIG_SWAP=y |
28 | CONFIG_SYSVIPC=y | 36 | CONFIG_SYSVIPC=y |
29 | # CONFIG_IPC_NS is not set | 37 | CONFIG_SYSVIPC_SYSCTL=y |
30 | # CONFIG_POSIX_MQUEUE is not set | 38 | # CONFIG_POSIX_MQUEUE is not set |
31 | CONFIG_BSD_PROCESS_ACCT=y | 39 | CONFIG_BSD_PROCESS_ACCT=y |
32 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | 40 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set |
33 | # CONFIG_TASKSTATS is not set | 41 | # CONFIG_TASKSTATS is not set |
34 | # CONFIG_UTS_NS is not set | ||
35 | # CONFIG_AUDIT is not set | 42 | # CONFIG_AUDIT is not set |
36 | # CONFIG_IKCONFIG is not set | 43 | # CONFIG_IKCONFIG is not set |
44 | CONFIG_LOG_BUF_SHIFT=14 | ||
45 | # CONFIG_CGROUPS is not set | ||
46 | # CONFIG_GROUP_SCHED is not set | ||
47 | CONFIG_SYSFS_DEPRECATED=y | ||
48 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
37 | # CONFIG_RELAY is not set | 49 | # CONFIG_RELAY is not set |
50 | # CONFIG_NAMESPACES is not set | ||
51 | CONFIG_BLK_DEV_INITRD=y | ||
38 | CONFIG_INITRAMFS_SOURCE="" | 52 | CONFIG_INITRAMFS_SOURCE="" |
39 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 53 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
40 | CONFIG_SYSCTL=y | 54 | CONFIG_SYSCTL=y |
@@ -47,33 +61,47 @@ CONFIG_KALLSYMS=y | |||
47 | CONFIG_PRINTK=y | 61 | CONFIG_PRINTK=y |
48 | CONFIG_BUG=y | 62 | CONFIG_BUG=y |
49 | CONFIG_ELF_CORE=y | 63 | CONFIG_ELF_CORE=y |
64 | CONFIG_COMPAT_BRK=y | ||
50 | CONFIG_BASE_FULL=y | 65 | CONFIG_BASE_FULL=y |
51 | CONFIG_FUTEX=y | 66 | CONFIG_FUTEX=y |
67 | CONFIG_ANON_INODES=y | ||
52 | CONFIG_EPOLL=y | 68 | CONFIG_EPOLL=y |
69 | CONFIG_SIGNALFD=y | ||
70 | CONFIG_TIMERFD=y | ||
71 | CONFIG_EVENTFD=y | ||
53 | CONFIG_SHMEM=y | 72 | CONFIG_SHMEM=y |
54 | CONFIG_SLAB=y | 73 | CONFIG_AIO=y |
55 | CONFIG_VM_EVENT_COUNTERS=y | 74 | CONFIG_VM_EVENT_COUNTERS=y |
75 | CONFIG_PCI_QUIRKS=y | ||
76 | CONFIG_SLAB=y | ||
77 | # CONFIG_SLUB is not set | ||
78 | # CONFIG_SLOB is not set | ||
79 | # CONFIG_PROFILING is not set | ||
80 | # CONFIG_MARKERS is not set | ||
81 | CONFIG_HAVE_OPROFILE=y | ||
82 | # CONFIG_KPROBES is not set | ||
83 | CONFIG_HAVE_IOREMAP_PROT=y | ||
84 | CONFIG_HAVE_KPROBES=y | ||
85 | CONFIG_HAVE_KRETPROBES=y | ||
86 | CONFIG_HAVE_ARCH_TRACEHOOK=y | ||
87 | CONFIG_HAVE_CLK=y | ||
88 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
89 | CONFIG_SLABINFO=y | ||
56 | CONFIG_RT_MUTEXES=y | 90 | CONFIG_RT_MUTEXES=y |
57 | # CONFIG_TINY_SHMEM is not set | 91 | # CONFIG_TINY_SHMEM is not set |
58 | CONFIG_BASE_SMALL=0 | 92 | CONFIG_BASE_SMALL=0 |
59 | # CONFIG_SLOB is not set | ||
60 | |||
61 | # | ||
62 | # Loadable module support | ||
63 | # | ||
64 | CONFIG_MODULES=y | 93 | CONFIG_MODULES=y |
94 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
65 | # CONFIG_MODULE_UNLOAD is not set | 95 | # CONFIG_MODULE_UNLOAD is not set |
66 | # CONFIG_MODVERSIONS is not set | 96 | # CONFIG_MODVERSIONS is not set |
67 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 97 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
68 | # CONFIG_KMOD is not set | 98 | CONFIG_KMOD=y |
69 | |||
70 | # | ||
71 | # Block layer | ||
72 | # | ||
73 | CONFIG_BLOCK=y | 99 | CONFIG_BLOCK=y |
74 | # CONFIG_LBD is not set | 100 | # CONFIG_LBD is not set |
75 | # CONFIG_BLK_DEV_IO_TRACE is not set | 101 | # CONFIG_BLK_DEV_IO_TRACE is not set |
76 | # CONFIG_LSF is not set | 102 | # CONFIG_LSF is not set |
103 | # CONFIG_BLK_DEV_BSG is not set | ||
104 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
77 | 105 | ||
78 | # | 106 | # |
79 | # IO Schedulers | 107 | # IO Schedulers |
@@ -87,60 +115,27 @@ CONFIG_DEFAULT_AS=y | |||
87 | # CONFIG_DEFAULT_CFQ is not set | 115 | # CONFIG_DEFAULT_CFQ is not set |
88 | # CONFIG_DEFAULT_NOOP is not set | 116 | # CONFIG_DEFAULT_NOOP is not set |
89 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 117 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
118 | CONFIG_CLASSIC_RCU=y | ||
119 | # CONFIG_FREEZER is not set | ||
90 | 120 | ||
91 | # | 121 | # |
92 | # System type | 122 | # System type |
93 | # | 123 | # |
94 | CONFIG_SOLUTION_ENGINE=y | ||
95 | # CONFIG_SH_SOLUTION_ENGINE is not set | ||
96 | CONFIG_SH_7751_SOLUTION_ENGINE=y | ||
97 | # CONFIG_SH_7300_SOLUTION_ENGINE is not set | ||
98 | # CONFIG_SH_7343_SOLUTION_ENGINE is not set | ||
99 | # CONFIG_SH_73180_SOLUTION_ENGINE is not set | ||
100 | # CONFIG_SH_7751_SYSTEMH is not set | ||
101 | # CONFIG_SH_HP6XX is not set | ||
102 | # CONFIG_SH_EC3104 is not set | ||
103 | # CONFIG_SH_SATURN is not set | ||
104 | # CONFIG_SH_DREAMCAST is not set | ||
105 | # CONFIG_SH_BIGSUR is not set | ||
106 | # CONFIG_SH_MPC1211 is not set | ||
107 | # CONFIG_SH_SH03 is not set | ||
108 | # CONFIG_SH_SECUREEDGE5410 is not set | ||
109 | # CONFIG_SH_HS7751RVOIP is not set | ||
110 | # CONFIG_SH_7710VOIPGW is not set | ||
111 | # CONFIG_SH_RTS7751R2D is not set | ||
112 | # CONFIG_SH_R7780RP is not set | ||
113 | # CONFIG_SH_EDOSK7705 is not set | ||
114 | # CONFIG_SH_SH4202_MICRODEV is not set | ||
115 | # CONFIG_SH_LANDISK is not set | ||
116 | # CONFIG_SH_TITAN is not set | ||
117 | # CONFIG_SH_SHMIN is not set | ||
118 | # CONFIG_SH_UNKNOWN is not set | ||
119 | |||
120 | # | ||
121 | # Processor selection | ||
122 | # | ||
123 | CONFIG_CPU_SH4=y | 124 | CONFIG_CPU_SH4=y |
124 | 125 | # CONFIG_CPU_SUBTYPE_SH7619 is not set | |
125 | # | 126 | # CONFIG_CPU_SUBTYPE_SH7203 is not set |
126 | # SH-2 Processor Support | 127 | # CONFIG_CPU_SUBTYPE_SH7206 is not set |
127 | # | 128 | # CONFIG_CPU_SUBTYPE_SH7263 is not set |
128 | # CONFIG_CPU_SUBTYPE_SH7604 is not set | 129 | # CONFIG_CPU_SUBTYPE_MXG is not set |
129 | |||
130 | # | ||
131 | # SH-3 Processor Support | ||
132 | # | ||
133 | # CONFIG_CPU_SUBTYPE_SH7300 is not set | ||
134 | # CONFIG_CPU_SUBTYPE_SH7705 is not set | 130 | # CONFIG_CPU_SUBTYPE_SH7705 is not set |
135 | # CONFIG_CPU_SUBTYPE_SH7706 is not set | 131 | # CONFIG_CPU_SUBTYPE_SH7706 is not set |
136 | # CONFIG_CPU_SUBTYPE_SH7707 is not set | 132 | # CONFIG_CPU_SUBTYPE_SH7707 is not set |
137 | # CONFIG_CPU_SUBTYPE_SH7708 is not set | 133 | # CONFIG_CPU_SUBTYPE_SH7708 is not set |
138 | # CONFIG_CPU_SUBTYPE_SH7709 is not set | 134 | # CONFIG_CPU_SUBTYPE_SH7709 is not set |
139 | # CONFIG_CPU_SUBTYPE_SH7710 is not set | 135 | # CONFIG_CPU_SUBTYPE_SH7710 is not set |
140 | 136 | # CONFIG_CPU_SUBTYPE_SH7712 is not set | |
141 | # | 137 | # CONFIG_CPU_SUBTYPE_SH7720 is not set |
142 | # SH-4 Processor Support | 138 | # CONFIG_CPU_SUBTYPE_SH7721 is not set |
143 | # | ||
144 | # CONFIG_CPU_SUBTYPE_SH7750 is not set | 139 | # CONFIG_CPU_SUBTYPE_SH7750 is not set |
145 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | 140 | # CONFIG_CPU_SUBTYPE_SH7091 is not set |
146 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | 141 | # CONFIG_CPU_SUBTYPE_SH7750R is not set |
@@ -149,65 +144,91 @@ CONFIG_CPU_SUBTYPE_SH7751=y | |||
149 | # CONFIG_CPU_SUBTYPE_SH7751R is not set | 144 | # CONFIG_CPU_SUBTYPE_SH7751R is not set |
150 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | 145 | # CONFIG_CPU_SUBTYPE_SH7760 is not set |
151 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | 146 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set |
152 | 147 | # CONFIG_CPU_SUBTYPE_SH7723 is not set | |
153 | # | 148 | # CONFIG_CPU_SUBTYPE_SH7763 is not set |
154 | # ST40 Processor Support | ||
155 | # | ||
156 | # CONFIG_CPU_SUBTYPE_ST40STB1 is not set | ||
157 | # CONFIG_CPU_SUBTYPE_ST40GX1 is not set | ||
158 | |||
159 | # | ||
160 | # SH-4A Processor Support | ||
161 | # | ||
162 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | 149 | # CONFIG_CPU_SUBTYPE_SH7770 is not set |
163 | # CONFIG_CPU_SUBTYPE_SH7780 is not set | 150 | # CONFIG_CPU_SUBTYPE_SH7780 is not set |
164 | 151 | # CONFIG_CPU_SUBTYPE_SH7785 is not set | |
165 | # | 152 | # CONFIG_CPU_SUBTYPE_SHX3 is not set |
166 | # SH4AL-DSP Processor Support | ||
167 | # | ||
168 | # CONFIG_CPU_SUBTYPE_SH73180 is not set | ||
169 | # CONFIG_CPU_SUBTYPE_SH7343 is not set | 153 | # CONFIG_CPU_SUBTYPE_SH7343 is not set |
154 | # CONFIG_CPU_SUBTYPE_SH7722 is not set | ||
155 | # CONFIG_CPU_SUBTYPE_SH7366 is not set | ||
156 | # CONFIG_CPU_SUBTYPE_SH5_101 is not set | ||
157 | # CONFIG_CPU_SUBTYPE_SH5_103 is not set | ||
170 | 158 | ||
171 | # | 159 | # |
172 | # Memory management options | 160 | # Memory management options |
173 | # | 161 | # |
162 | CONFIG_QUICKLIST=y | ||
174 | CONFIG_MMU=y | 163 | CONFIG_MMU=y |
175 | CONFIG_PAGE_OFFSET=0x80000000 | 164 | CONFIG_PAGE_OFFSET=0x80000000 |
176 | CONFIG_MEMORY_START=0x0c000000 | 165 | CONFIG_MEMORY_START=0x0c000000 |
177 | CONFIG_MEMORY_SIZE=0x04000000 | 166 | CONFIG_MEMORY_SIZE=0x04000000 |
167 | CONFIG_29BIT=y | ||
178 | CONFIG_VSYSCALL=y | 168 | CONFIG_VSYSCALL=y |
169 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
170 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | ||
171 | CONFIG_ARCH_SPARSEMEM_DEFAULT=y | ||
172 | CONFIG_MAX_ACTIVE_REGIONS=1 | ||
173 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
174 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | ||
175 | CONFIG_PAGE_SIZE_4KB=y | ||
176 | # CONFIG_PAGE_SIZE_8KB is not set | ||
177 | # CONFIG_PAGE_SIZE_16KB is not set | ||
178 | # CONFIG_PAGE_SIZE_64KB is not set | ||
179 | CONFIG_ENTRY_OFFSET=0x00001000 | ||
179 | CONFIG_SELECT_MEMORY_MODEL=y | 180 | CONFIG_SELECT_MEMORY_MODEL=y |
180 | CONFIG_FLATMEM_MANUAL=y | 181 | CONFIG_FLATMEM_MANUAL=y |
181 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 182 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
182 | # CONFIG_SPARSEMEM_MANUAL is not set | 183 | # CONFIG_SPARSEMEM_MANUAL is not set |
183 | CONFIG_FLATMEM=y | 184 | CONFIG_FLATMEM=y |
184 | CONFIG_FLAT_NODE_MEM_MAP=y | 185 | CONFIG_FLAT_NODE_MEM_MAP=y |
185 | # CONFIG_SPARSEMEM_STATIC is not set | 186 | CONFIG_SPARSEMEM_STATIC=y |
187 | CONFIG_PAGEFLAGS_EXTENDED=y | ||
186 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 188 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
187 | # CONFIG_RESOURCES_64BIT is not set | 189 | # CONFIG_RESOURCES_64BIT is not set |
190 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
191 | CONFIG_ZONE_DMA_FLAG=0 | ||
192 | CONFIG_NR_QUICK=2 | ||
193 | CONFIG_UNEVICTABLE_LRU=y | ||
188 | 194 | ||
189 | # | 195 | # |
190 | # Cache configuration | 196 | # Cache configuration |
191 | # | 197 | # |
192 | # CONFIG_SH_DIRECT_MAPPED is not set | 198 | # CONFIG_SH_DIRECT_MAPPED is not set |
193 | # CONFIG_SH_WRITETHROUGH is not set | 199 | CONFIG_CACHE_WRITEBACK=y |
194 | # CONFIG_SH_OCRAM is not set | 200 | # CONFIG_CACHE_WRITETHROUGH is not set |
201 | # CONFIG_CACHE_OFF is not set | ||
195 | 202 | ||
196 | # | 203 | # |
197 | # Processor features | 204 | # Processor features |
198 | # | 205 | # |
199 | CONFIG_CPU_LITTLE_ENDIAN=y | 206 | CONFIG_CPU_LITTLE_ENDIAN=y |
207 | # CONFIG_CPU_BIG_ENDIAN is not set | ||
200 | CONFIG_SH_FPU=y | 208 | CONFIG_SH_FPU=y |
201 | # CONFIG_SH_DSP is not set | ||
202 | # CONFIG_SH_STORE_QUEUES is not set | 209 | # CONFIG_SH_STORE_QUEUES is not set |
203 | CONFIG_CPU_HAS_INTEVT=y | 210 | CONFIG_CPU_HAS_INTEVT=y |
211 | CONFIG_CPU_HAS_IPR_IRQ=y | ||
204 | CONFIG_CPU_HAS_SR_RB=y | 212 | CONFIG_CPU_HAS_SR_RB=y |
213 | CONFIG_CPU_HAS_PTEA=y | ||
214 | CONFIG_CPU_HAS_FPU=y | ||
205 | 215 | ||
206 | # | 216 | # |
207 | # Timer support | 217 | # Board support |
218 | # | ||
219 | CONFIG_SOLUTION_ENGINE=y | ||
220 | CONFIG_SH_7751_SOLUTION_ENGINE=y | ||
221 | # CONFIG_SH_SH03 is not set | ||
222 | |||
223 | # | ||
224 | # Timer and clock configuration | ||
208 | # | 225 | # |
209 | CONFIG_SH_TMU=y | 226 | CONFIG_SH_TMU=y |
227 | CONFIG_SH_TIMER_IRQ=16 | ||
210 | CONFIG_SH_PCLK_FREQ=60000000 | 228 | CONFIG_SH_PCLK_FREQ=60000000 |
229 | # CONFIG_NO_HZ is not set | ||
230 | # CONFIG_HIGH_RES_TIMERS is not set | ||
231 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
211 | 232 | ||
212 | # | 233 | # |
213 | # CPU Frequency scaling | 234 | # CPU Frequency scaling |
@@ -222,21 +243,30 @@ CONFIG_SH_PCLK_FREQ=60000000 | |||
222 | # | 243 | # |
223 | # Companion Chips | 244 | # Companion Chips |
224 | # | 245 | # |
225 | # CONFIG_HD6446X_SERIES is not set | 246 | |
247 | # | ||
248 | # Additional SuperH Device Drivers | ||
249 | # | ||
226 | CONFIG_HEARTBEAT=y | 250 | CONFIG_HEARTBEAT=y |
251 | # CONFIG_PUSH_SWITCH is not set | ||
227 | 252 | ||
228 | # | 253 | # |
229 | # Kernel features | 254 | # Kernel features |
230 | # | 255 | # |
231 | # CONFIG_HZ_100 is not set | 256 | # CONFIG_HZ_100 is not set |
232 | CONFIG_HZ_250=y | 257 | CONFIG_HZ_250=y |
258 | # CONFIG_HZ_300 is not set | ||
233 | # CONFIG_HZ_1000 is not set | 259 | # CONFIG_HZ_1000 is not set |
234 | CONFIG_HZ=250 | 260 | CONFIG_HZ=250 |
261 | # CONFIG_SCHED_HRTICK is not set | ||
235 | # CONFIG_KEXEC is not set | 262 | # CONFIG_KEXEC is not set |
236 | # CONFIG_SMP is not set | 263 | # CONFIG_CRASH_DUMP is not set |
264 | # CONFIG_SECCOMP is not set | ||
237 | CONFIG_PREEMPT_NONE=y | 265 | CONFIG_PREEMPT_NONE=y |
238 | # CONFIG_PREEMPT_VOLUNTARY is not set | 266 | # CONFIG_PREEMPT_VOLUNTARY is not set |
239 | # CONFIG_PREEMPT is not set | 267 | # CONFIG_PREEMPT is not set |
268 | CONFIG_GUSA=y | ||
269 | # CONFIG_GUSA_RB is not set | ||
240 | 270 | ||
241 | # | 271 | # |
242 | # Boot options | 272 | # Boot options |
@@ -250,43 +280,29 @@ CONFIG_CMDLINE="console=ttySC1,38400" | |||
250 | # | 280 | # |
251 | # Bus options | 281 | # Bus options |
252 | # | 282 | # |
253 | # CONFIG_PCI is not set | 283 | # CONFIG_CF_ENABLER is not set |
254 | 284 | # CONFIG_ARCH_SUPPORTS_MSI is not set | |
255 | # | ||
256 | # PCCARD (PCMCIA/CardBus) support | ||
257 | # | ||
258 | |||
259 | # | ||
260 | # PCI Hotplug Support | ||
261 | # | ||
262 | 285 | ||
263 | # | 286 | # |
264 | # Executable file formats | 287 | # Executable file formats |
265 | # | 288 | # |
266 | CONFIG_BINFMT_ELF=y | 289 | CONFIG_BINFMT_ELF=y |
267 | # CONFIG_BINFMT_FLAT is not set | 290 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set |
291 | # CONFIG_HAVE_AOUT is not set | ||
268 | # CONFIG_BINFMT_MISC is not set | 292 | # CONFIG_BINFMT_MISC is not set |
269 | |||
270 | # | ||
271 | # Power management options (EXPERIMENTAL) | ||
272 | # | ||
273 | # CONFIG_PM is not set | ||
274 | |||
275 | # | ||
276 | # Networking | ||
277 | # | ||
278 | CONFIG_NET=y | 293 | CONFIG_NET=y |
279 | 294 | ||
280 | # | 295 | # |
281 | # Networking options | 296 | # Networking options |
282 | # | 297 | # |
283 | # CONFIG_NETDEBUG is not set | ||
284 | CONFIG_PACKET=y | 298 | CONFIG_PACKET=y |
285 | # CONFIG_PACKET_MMAP is not set | 299 | # CONFIG_PACKET_MMAP is not set |
286 | CONFIG_UNIX=y | 300 | CONFIG_UNIX=y |
287 | CONFIG_XFRM=y | 301 | CONFIG_XFRM=y |
288 | # CONFIG_XFRM_USER is not set | 302 | # CONFIG_XFRM_USER is not set |
289 | # CONFIG_XFRM_SUB_POLICY is not set | 303 | # CONFIG_XFRM_SUB_POLICY is not set |
304 | # CONFIG_XFRM_MIGRATE is not set | ||
305 | # CONFIG_XFRM_STATISTICS is not set | ||
290 | # CONFIG_NET_KEY is not set | 306 | # CONFIG_NET_KEY is not set |
291 | CONFIG_INET=y | 307 | CONFIG_INET=y |
292 | CONFIG_IP_MULTICAST=y | 308 | CONFIG_IP_MULTICAST=y |
@@ -308,52 +324,42 @@ CONFIG_IP_PNP_RARP=y | |||
308 | # CONFIG_INET_TUNNEL is not set | 324 | # CONFIG_INET_TUNNEL is not set |
309 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | 325 | CONFIG_INET_XFRM_MODE_TRANSPORT=y |
310 | CONFIG_INET_XFRM_MODE_TUNNEL=y | 326 | CONFIG_INET_XFRM_MODE_TUNNEL=y |
327 | CONFIG_INET_XFRM_MODE_BEET=y | ||
328 | # CONFIG_INET_LRO is not set | ||
311 | CONFIG_INET_DIAG=y | 329 | CONFIG_INET_DIAG=y |
312 | CONFIG_INET_TCP_DIAG=y | 330 | CONFIG_INET_TCP_DIAG=y |
313 | # CONFIG_TCP_CONG_ADVANCED is not set | 331 | # CONFIG_TCP_CONG_ADVANCED is not set |
314 | CONFIG_TCP_CONG_CUBIC=y | 332 | CONFIG_TCP_CONG_CUBIC=y |
315 | CONFIG_DEFAULT_TCP_CONG="cubic" | 333 | CONFIG_DEFAULT_TCP_CONG="cubic" |
316 | 334 | # CONFIG_TCP_MD5SIG is not set | |
317 | # | ||
318 | # IP: Virtual Server Configuration | ||
319 | # | ||
320 | # CONFIG_IP_VS is not set | ||
321 | # CONFIG_IPV6 is not set | 335 | # CONFIG_IPV6 is not set |
322 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
323 | # CONFIG_INET6_TUNNEL is not set | ||
324 | # CONFIG_NETWORK_SECMARK is not set | 336 | # CONFIG_NETWORK_SECMARK is not set |
325 | CONFIG_NETFILTER=y | 337 | CONFIG_NETFILTER=y |
326 | CONFIG_NETFILTER_DEBUG=y | 338 | CONFIG_NETFILTER_DEBUG=y |
339 | CONFIG_NETFILTER_ADVANCED=y | ||
327 | 340 | ||
328 | # | 341 | # |
329 | # Core Netfilter Configuration | 342 | # Core Netfilter Configuration |
330 | # | 343 | # |
331 | # CONFIG_NETFILTER_NETLINK is not set | 344 | # CONFIG_NETFILTER_NETLINK_QUEUE is not set |
345 | # CONFIG_NETFILTER_NETLINK_LOG is not set | ||
332 | # CONFIG_NF_CONNTRACK is not set | 346 | # CONFIG_NF_CONNTRACK is not set |
333 | # CONFIG_NETFILTER_XTABLES is not set | 347 | # CONFIG_NETFILTER_XTABLES is not set |
348 | # CONFIG_IP_VS is not set | ||
334 | 349 | ||
335 | # | 350 | # |
336 | # IP: Netfilter Configuration | 351 | # IP: Netfilter Configuration |
337 | # | 352 | # |
338 | # CONFIG_IP_NF_CONNTRACK is not set | 353 | # CONFIG_NF_DEFRAG_IPV4 is not set |
339 | CONFIG_IP_NF_QUEUE=y | 354 | CONFIG_IP_NF_QUEUE=y |
340 | 355 | # CONFIG_IP_NF_IPTABLES is not set | |
341 | # | 356 | # CONFIG_IP_NF_ARPTABLES is not set |
342 | # DCCP Configuration (EXPERIMENTAL) | ||
343 | # | ||
344 | # CONFIG_IP_DCCP is not set | 357 | # CONFIG_IP_DCCP is not set |
345 | |||
346 | # | ||
347 | # SCTP Configuration (EXPERIMENTAL) | ||
348 | # | ||
349 | # CONFIG_IP_SCTP is not set | 358 | # CONFIG_IP_SCTP is not set |
350 | |||
351 | # | ||
352 | # TIPC Configuration (EXPERIMENTAL) | ||
353 | # | ||
354 | # CONFIG_TIPC is not set | 359 | # CONFIG_TIPC is not set |
355 | # CONFIG_ATM is not set | 360 | # CONFIG_ATM is not set |
356 | # CONFIG_BRIDGE is not set | 361 | # CONFIG_BRIDGE is not set |
362 | # CONFIG_NET_DSA is not set | ||
357 | # CONFIG_VLAN_8021Q is not set | 363 | # CONFIG_VLAN_8021Q is not set |
358 | # CONFIG_DECNET is not set | 364 | # CONFIG_DECNET is not set |
359 | # CONFIG_LLC2 is not set | 365 | # CONFIG_LLC2 is not set |
@@ -363,10 +369,6 @@ CONFIG_IP_NF_QUEUE=y | |||
363 | # CONFIG_LAPB is not set | 369 | # CONFIG_LAPB is not set |
364 | # CONFIG_ECONET is not set | 370 | # CONFIG_ECONET is not set |
365 | # CONFIG_WAN_ROUTER is not set | 371 | # CONFIG_WAN_ROUTER is not set |
366 | |||
367 | # | ||
368 | # QoS and/or fair queueing | ||
369 | # | ||
370 | # CONFIG_NET_SCHED is not set | 372 | # CONFIG_NET_SCHED is not set |
371 | 373 | ||
372 | # | 374 | # |
@@ -374,9 +376,19 @@ CONFIG_IP_NF_QUEUE=y | |||
374 | # | 376 | # |
375 | # CONFIG_NET_PKTGEN is not set | 377 | # CONFIG_NET_PKTGEN is not set |
376 | # CONFIG_HAMRADIO is not set | 378 | # CONFIG_HAMRADIO is not set |
379 | # CONFIG_CAN is not set | ||
377 | # CONFIG_IRDA is not set | 380 | # CONFIG_IRDA is not set |
378 | # CONFIG_BT is not set | 381 | # CONFIG_BT is not set |
382 | # CONFIG_AF_RXRPC is not set | ||
383 | # CONFIG_PHONET is not set | ||
384 | CONFIG_WIRELESS=y | ||
385 | # CONFIG_CFG80211 is not set | ||
386 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
387 | # CONFIG_WIRELESS_EXT is not set | ||
388 | # CONFIG_MAC80211 is not set | ||
379 | # CONFIG_IEEE80211 is not set | 389 | # CONFIG_IEEE80211 is not set |
390 | # CONFIG_RFKILL is not set | ||
391 | # CONFIG_NET_9P is not set | ||
380 | 392 | ||
381 | # | 393 | # |
382 | # Device Drivers | 394 | # Device Drivers |
@@ -388,32 +400,27 @@ CONFIG_IP_NF_QUEUE=y | |||
388 | CONFIG_STANDALONE=y | 400 | CONFIG_STANDALONE=y |
389 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 401 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
390 | # CONFIG_SYS_HYPERVISOR is not set | 402 | # CONFIG_SYS_HYPERVISOR is not set |
391 | |||
392 | # | ||
393 | # Connector - unified userspace <-> kernelspace linker | ||
394 | # | ||
395 | # CONFIG_CONNECTOR is not set | 403 | # CONFIG_CONNECTOR is not set |
396 | |||
397 | # | ||
398 | # Memory Technology Devices (MTD) | ||
399 | # | ||
400 | CONFIG_MTD=y | 404 | CONFIG_MTD=y |
401 | # CONFIG_MTD_DEBUG is not set | 405 | # CONFIG_MTD_DEBUG is not set |
402 | # CONFIG_MTD_CONCAT is not set | 406 | # CONFIG_MTD_CONCAT is not set |
403 | CONFIG_MTD_PARTITIONS=y | 407 | CONFIG_MTD_PARTITIONS=y |
404 | # CONFIG_MTD_REDBOOT_PARTS is not set | 408 | # CONFIG_MTD_REDBOOT_PARTS is not set |
405 | # CONFIG_MTD_CMDLINE_PARTS is not set | 409 | # CONFIG_MTD_CMDLINE_PARTS is not set |
410 | # CONFIG_MTD_AR7_PARTS is not set | ||
406 | 411 | ||
407 | # | 412 | # |
408 | # User Modules And Translation Layers | 413 | # User Modules And Translation Layers |
409 | # | 414 | # |
410 | # CONFIG_MTD_CHAR is not set | 415 | # CONFIG_MTD_CHAR is not set |
416 | CONFIG_MTD_BLKDEVS=y | ||
411 | CONFIG_MTD_BLOCK=y | 417 | CONFIG_MTD_BLOCK=y |
412 | # CONFIG_FTL is not set | 418 | # CONFIG_FTL is not set |
413 | # CONFIG_NFTL is not set | 419 | # CONFIG_NFTL is not set |
414 | # CONFIG_INFTL is not set | 420 | # CONFIG_INFTL is not set |
415 | # CONFIG_RFD_FTL is not set | 421 | # CONFIG_RFD_FTL is not set |
416 | # CONFIG_SSFDC is not set | 422 | # CONFIG_SSFDC is not set |
423 | # CONFIG_MTD_OOPS is not set | ||
417 | 424 | ||
418 | # | 425 | # |
419 | # RAM/ROM/Flash chip drivers | 426 | # RAM/ROM/Flash chip drivers |
@@ -439,7 +446,6 @@ CONFIG_MTD_CFI_UTIL=y | |||
439 | CONFIG_MTD_RAM=y | 446 | CONFIG_MTD_RAM=y |
440 | # CONFIG_MTD_ROM is not set | 447 | # CONFIG_MTD_ROM is not set |
441 | # CONFIG_MTD_ABSENT is not set | 448 | # CONFIG_MTD_ABSENT is not set |
442 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
443 | 449 | ||
444 | # | 450 | # |
445 | # Mapping drivers for chip access | 451 | # Mapping drivers for chip access |
@@ -462,43 +468,29 @@ CONFIG_MTD_RAM=y | |||
462 | # CONFIG_MTD_DOC2000 is not set | 468 | # CONFIG_MTD_DOC2000 is not set |
463 | # CONFIG_MTD_DOC2001 is not set | 469 | # CONFIG_MTD_DOC2001 is not set |
464 | # CONFIG_MTD_DOC2001PLUS is not set | 470 | # CONFIG_MTD_DOC2001PLUS is not set |
465 | |||
466 | # | ||
467 | # NAND Flash Device Drivers | ||
468 | # | ||
469 | # CONFIG_MTD_NAND is not set | 471 | # CONFIG_MTD_NAND is not set |
470 | |||
471 | # | ||
472 | # OneNAND Flash Device Drivers | ||
473 | # | ||
474 | # CONFIG_MTD_ONENAND is not set | 472 | # CONFIG_MTD_ONENAND is not set |
475 | 473 | ||
476 | # | 474 | # |
477 | # Parallel port support | 475 | # UBI - Unsorted block images |
478 | # | 476 | # |
477 | # CONFIG_MTD_UBI is not set | ||
479 | # CONFIG_PARPORT is not set | 478 | # CONFIG_PARPORT is not set |
480 | 479 | CONFIG_BLK_DEV=y | |
481 | # | ||
482 | # Plug and Play support | ||
483 | # | ||
484 | |||
485 | # | ||
486 | # Block devices | ||
487 | # | ||
488 | # CONFIG_BLK_DEV_COW_COMMON is not set | 480 | # CONFIG_BLK_DEV_COW_COMMON is not set |
489 | # CONFIG_BLK_DEV_LOOP is not set | 481 | # CONFIG_BLK_DEV_LOOP is not set |
490 | # CONFIG_BLK_DEV_NBD is not set | 482 | # CONFIG_BLK_DEV_NBD is not set |
491 | CONFIG_BLK_DEV_RAM=y | 483 | CONFIG_BLK_DEV_RAM=y |
492 | CONFIG_BLK_DEV_RAM_COUNT=16 | 484 | CONFIG_BLK_DEV_RAM_COUNT=16 |
493 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 485 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
494 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 486 | # CONFIG_BLK_DEV_XIP is not set |
495 | CONFIG_BLK_DEV_INITRD=y | ||
496 | # CONFIG_CDROM_PKTCDVD is not set | 487 | # CONFIG_CDROM_PKTCDVD is not set |
497 | # CONFIG_ATA_OVER_ETH is not set | 488 | # CONFIG_ATA_OVER_ETH is not set |
498 | 489 | # CONFIG_BLK_DEV_HD is not set | |
499 | # | 490 | CONFIG_MISC_DEVICES=y |
500 | # ATA/ATAPI/MFM/RLL support | 491 | # CONFIG_EEPROM_93CX6 is not set |
501 | # | 492 | # CONFIG_ENCLOSURE_SERVICES is not set |
493 | CONFIG_HAVE_IDE=y | ||
502 | # CONFIG_IDE is not set | 494 | # CONFIG_IDE is not set |
503 | 495 | ||
504 | # | 496 | # |
@@ -506,89 +498,48 @@ CONFIG_BLK_DEV_INITRD=y | |||
506 | # | 498 | # |
507 | # CONFIG_RAID_ATTRS is not set | 499 | # CONFIG_RAID_ATTRS is not set |
508 | # CONFIG_SCSI is not set | 500 | # CONFIG_SCSI is not set |
501 | # CONFIG_SCSI_DMA is not set | ||
509 | # CONFIG_SCSI_NETLINK is not set | 502 | # CONFIG_SCSI_NETLINK is not set |
510 | |||
511 | # | ||
512 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
513 | # | ||
514 | # CONFIG_ATA is not set | 503 | # CONFIG_ATA is not set |
515 | |||
516 | # | ||
517 | # Multi-device support (RAID and LVM) | ||
518 | # | ||
519 | # CONFIG_MD is not set | 504 | # CONFIG_MD is not set |
520 | |||
521 | # | ||
522 | # Fusion MPT device support | ||
523 | # | ||
524 | # CONFIG_FUSION is not set | ||
525 | |||
526 | # | ||
527 | # IEEE 1394 (FireWire) support | ||
528 | # | ||
529 | |||
530 | # | ||
531 | # I2O device support | ||
532 | # | ||
533 | |||
534 | # | ||
535 | # Network device support | ||
536 | # | ||
537 | CONFIG_NETDEVICES=y | 505 | CONFIG_NETDEVICES=y |
538 | # CONFIG_DUMMY is not set | 506 | # CONFIG_DUMMY is not set |
539 | # CONFIG_BONDING is not set | 507 | # CONFIG_BONDING is not set |
508 | # CONFIG_MACVLAN is not set | ||
540 | # CONFIG_EQUALIZER is not set | 509 | # CONFIG_EQUALIZER is not set |
541 | # CONFIG_TUN is not set | 510 | # CONFIG_TUN is not set |
542 | 511 | # CONFIG_VETH is not set | |
543 | # | ||
544 | # PHY device support | ||
545 | # | ||
546 | # CONFIG_PHYLIB is not set | 512 | # CONFIG_PHYLIB is not set |
547 | |||
548 | # | ||
549 | # Ethernet (10 or 100Mbit) | ||
550 | # | ||
551 | CONFIG_NET_ETHERNET=y | 513 | CONFIG_NET_ETHERNET=y |
552 | CONFIG_MII=y | 514 | CONFIG_MII=y |
515 | # CONFIG_AX88796 is not set | ||
553 | # CONFIG_STNIC is not set | 516 | # CONFIG_STNIC is not set |
554 | # CONFIG_SMC91X is not set | 517 | # CONFIG_SMC91X is not set |
555 | 518 | # CONFIG_SMC911X is not set | |
556 | # | 519 | # CONFIG_IBM_NEW_EMAC_ZMII is not set |
557 | # Ethernet (1000 Mbit) | 520 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
558 | # | 521 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
559 | 522 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | |
560 | # | 523 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set |
561 | # Ethernet (10000 Mbit) | 524 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set |
562 | # | 525 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
563 | 526 | # CONFIG_B44 is not set | |
564 | # | 527 | CONFIG_NETDEV_1000=y |
565 | # Token Ring devices | 528 | CONFIG_NETDEV_10000=y |
566 | # | 529 | |
567 | 530 | # | |
568 | # | 531 | # Wireless LAN |
569 | # Wireless LAN (non-hamradio) | 532 | # |
570 | # | 533 | # CONFIG_WLAN_PRE80211 is not set |
571 | # CONFIG_NET_RADIO is not set | 534 | # CONFIG_WLAN_80211 is not set |
572 | 535 | # CONFIG_IWLWIFI_LEDS is not set | |
573 | # | ||
574 | # Wan interfaces | ||
575 | # | ||
576 | # CONFIG_WAN is not set | 536 | # CONFIG_WAN is not set |
577 | # CONFIG_PPP is not set | 537 | # CONFIG_PPP is not set |
578 | # CONFIG_SLIP is not set | 538 | # CONFIG_SLIP is not set |
579 | # CONFIG_SHAPER is not set | ||
580 | # CONFIG_NETCONSOLE is not set | 539 | # CONFIG_NETCONSOLE is not set |
581 | # CONFIG_NETPOLL is not set | 540 | # CONFIG_NETPOLL is not set |
582 | # CONFIG_NET_POLL_CONTROLLER is not set | 541 | # CONFIG_NET_POLL_CONTROLLER is not set |
583 | |||
584 | # | ||
585 | # ISDN subsystem | ||
586 | # | ||
587 | # CONFIG_ISDN is not set | 542 | # CONFIG_ISDN is not set |
588 | |||
589 | # | ||
590 | # Telephony Support | ||
591 | # | ||
592 | # CONFIG_PHONE is not set | 543 | # CONFIG_PHONE is not set |
593 | 544 | ||
594 | # | 545 | # |
@@ -606,6 +557,7 @@ CONFIG_MII=y | |||
606 | # Character devices | 557 | # Character devices |
607 | # | 558 | # |
608 | # CONFIG_VT is not set | 559 | # CONFIG_VT is not set |
560 | CONFIG_DEVKMEM=y | ||
609 | # CONFIG_SERIAL_NONSTANDARD is not set | 561 | # CONFIG_SERIAL_NONSTANDARD is not set |
610 | 562 | ||
611 | # | 563 | # |
@@ -620,150 +572,107 @@ CONFIG_MII=y | |||
620 | CONFIG_UNIX98_PTYS=y | 572 | CONFIG_UNIX98_PTYS=y |
621 | CONFIG_LEGACY_PTYS=y | 573 | CONFIG_LEGACY_PTYS=y |
622 | CONFIG_LEGACY_PTY_COUNT=256 | 574 | CONFIG_LEGACY_PTY_COUNT=256 |
623 | |||
624 | # | ||
625 | # IPMI | ||
626 | # | ||
627 | # CONFIG_IPMI_HANDLER is not set | 575 | # CONFIG_IPMI_HANDLER is not set |
628 | |||
629 | # | ||
630 | # Watchdog Cards | ||
631 | # | ||
632 | CONFIG_WATCHDOG=y | ||
633 | # CONFIG_WATCHDOG_NOWAYOUT is not set | ||
634 | |||
635 | # | ||
636 | # Watchdog Device Drivers | ||
637 | # | ||
638 | # CONFIG_SOFT_WATCHDOG is not set | ||
639 | # CONFIG_SH_WDT is not set | ||
640 | CONFIG_HW_RANDOM=y | 576 | CONFIG_HW_RANDOM=y |
641 | # CONFIG_GEN_RTC is not set | ||
642 | # CONFIG_DTLK is not set | ||
643 | # CONFIG_R3964 is not set | 577 | # CONFIG_R3964 is not set |
644 | |||
645 | # | ||
646 | # Ftape, the floppy tape device driver | ||
647 | # | ||
648 | # CONFIG_RAW_DRIVER is not set | 578 | # CONFIG_RAW_DRIVER is not set |
649 | |||
650 | # | ||
651 | # TPM devices | ||
652 | # | ||
653 | # CONFIG_TCG_TPM is not set | 579 | # CONFIG_TCG_TPM is not set |
654 | # CONFIG_TELCLOCK is not set | ||
655 | |||
656 | # | ||
657 | # I2C support | ||
658 | # | ||
659 | # CONFIG_I2C is not set | 580 | # CONFIG_I2C is not set |
581 | # CONFIG_SPI is not set | ||
582 | # CONFIG_W1 is not set | ||
583 | # CONFIG_POWER_SUPPLY is not set | ||
584 | CONFIG_HWMON=y | ||
585 | # CONFIG_HWMON_VID is not set | ||
586 | # CONFIG_SENSORS_F71805F is not set | ||
587 | # CONFIG_SENSORS_F71882FG is not set | ||
588 | # CONFIG_SENSORS_IT87 is not set | ||
589 | # CONFIG_SENSORS_PC87360 is not set | ||
590 | # CONFIG_SENSORS_PC87427 is not set | ||
591 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
592 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
593 | # CONFIG_SENSORS_VT1211 is not set | ||
594 | # CONFIG_SENSORS_W83627HF is not set | ||
595 | # CONFIG_SENSORS_W83627EHF is not set | ||
596 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
597 | # CONFIG_THERMAL is not set | ||
598 | # CONFIG_THERMAL_HWMON is not set | ||
599 | CONFIG_WATCHDOG=y | ||
600 | # CONFIG_WATCHDOG_NOWAYOUT is not set | ||
660 | 601 | ||
661 | # | 602 | # |
662 | # SPI support | 603 | # Watchdog Device Drivers |
663 | # | 604 | # |
664 | # CONFIG_SPI is not set | 605 | # CONFIG_SOFT_WATCHDOG is not set |
665 | # CONFIG_SPI_MASTER is not set | 606 | # CONFIG_SH_WDT is not set |
666 | 607 | ||
667 | # | 608 | # |
668 | # Dallas's 1-wire bus | 609 | # Sonics Silicon Backplane |
669 | # | 610 | # |
611 | CONFIG_SSB_POSSIBLE=y | ||
612 | # CONFIG_SSB is not set | ||
670 | 613 | ||
671 | # | 614 | # |
672 | # Hardware Monitoring support | 615 | # Multifunction device drivers |
673 | # | 616 | # |
674 | CONFIG_HWMON=y | 617 | # CONFIG_MFD_CORE is not set |
675 | # CONFIG_HWMON_VID is not set | 618 | # CONFIG_MFD_SM501 is not set |
676 | # CONFIG_SENSORS_ABITUGURU is not set | 619 | # CONFIG_HTC_PASIC3 is not set |
677 | # CONFIG_SENSORS_F71805F is not set | 620 | # CONFIG_MFD_TMIO is not set |
678 | # CONFIG_SENSORS_VT1211 is not set | 621 | # CONFIG_MFD_WM8400 is not set |
679 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
680 | 622 | ||
681 | # | 623 | # |
682 | # Misc devices | 624 | # Multimedia devices |
683 | # | 625 | # |
684 | 626 | ||
685 | # | 627 | # |
686 | # Multimedia devices | 628 | # Multimedia core support |
687 | # | 629 | # |
688 | # CONFIG_VIDEO_DEV is not set | 630 | # CONFIG_VIDEO_DEV is not set |
689 | CONFIG_VIDEO_V4L2=y | 631 | # CONFIG_DVB_CORE is not set |
632 | # CONFIG_VIDEO_MEDIA is not set | ||
690 | 633 | ||
691 | # | 634 | # |
692 | # Digital Video Broadcasting Devices | 635 | # Multimedia drivers |
693 | # | 636 | # |
694 | # CONFIG_DVB is not set | 637 | # CONFIG_DAB is not set |
695 | 638 | ||
696 | # | 639 | # |
697 | # Graphics support | 640 | # Graphics support |
698 | # | 641 | # |
699 | CONFIG_FIRMWARE_EDID=y | 642 | # CONFIG_VGASTATE is not set |
643 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
700 | # CONFIG_FB is not set | 644 | # CONFIG_FB is not set |
701 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 645 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
702 | 646 | ||
703 | # | 647 | # |
704 | # Sound | 648 | # Display device support |
705 | # | 649 | # |
650 | # CONFIG_DISPLAY_SUPPORT is not set | ||
706 | # CONFIG_SOUND is not set | 651 | # CONFIG_SOUND is not set |
707 | 652 | CONFIG_USB_SUPPORT=y | |
708 | # | 653 | CONFIG_USB_ARCH_HAS_HCD=y |
709 | # USB support | ||
710 | # | ||
711 | # CONFIG_USB_ARCH_HAS_HCD is not set | ||
712 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 654 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
713 | # CONFIG_USB_ARCH_HAS_EHCI is not set | 655 | # CONFIG_USB_ARCH_HAS_EHCI is not set |
656 | # CONFIG_USB is not set | ||
657 | # CONFIG_USB_OTG_WHITELIST is not set | ||
658 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | ||
714 | 659 | ||
715 | # | 660 | # |
716 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 661 | # Enable Host or Gadget support to see Inventra options |
717 | # | 662 | # |
718 | 663 | ||
719 | # | 664 | # |
720 | # USB Gadget Support | 665 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
721 | # | 666 | # |
722 | # CONFIG_USB_GADGET is not set | 667 | # CONFIG_USB_GADGET is not set |
723 | |||
724 | # | ||
725 | # MMC/SD Card support | ||
726 | # | ||
727 | # CONFIG_MMC is not set | 668 | # CONFIG_MMC is not set |
728 | 669 | # CONFIG_MEMSTICK is not set | |
729 | # | ||
730 | # LED devices | ||
731 | # | ||
732 | # CONFIG_NEW_LEDS is not set | 670 | # CONFIG_NEW_LEDS is not set |
733 | 671 | # CONFIG_ACCESSIBILITY is not set | |
734 | # | ||
735 | # LED drivers | ||
736 | # | ||
737 | |||
738 | # | ||
739 | # LED Triggers | ||
740 | # | ||
741 | |||
742 | # | ||
743 | # InfiniBand support | ||
744 | # | ||
745 | |||
746 | # | ||
747 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
748 | # | ||
749 | |||
750 | # | ||
751 | # Real Time Clock | ||
752 | # | ||
753 | # CONFIG_RTC_CLASS is not set | 672 | # CONFIG_RTC_CLASS is not set |
754 | 673 | # CONFIG_DMADEVICES is not set | |
755 | # | 674 | # CONFIG_UIO is not set |
756 | # DMA Engine support | 675 | # CONFIG_STAGING is not set |
757 | # | ||
758 | # CONFIG_DMA_ENGINE is not set | ||
759 | |||
760 | # | ||
761 | # DMA Clients | ||
762 | # | ||
763 | |||
764 | # | ||
765 | # DMA Devices | ||
766 | # | ||
767 | 676 | ||
768 | # | 677 | # |
769 | # File systems | 678 | # File systems |
@@ -772,17 +681,17 @@ CONFIG_EXT2_FS=y | |||
772 | # CONFIG_EXT2_FS_XATTR is not set | 681 | # CONFIG_EXT2_FS_XATTR is not set |
773 | # CONFIG_EXT2_FS_XIP is not set | 682 | # CONFIG_EXT2_FS_XIP is not set |
774 | # CONFIG_EXT3_FS is not set | 683 | # CONFIG_EXT3_FS is not set |
684 | # CONFIG_EXT4_FS is not set | ||
775 | # CONFIG_REISERFS_FS is not set | 685 | # CONFIG_REISERFS_FS is not set |
776 | # CONFIG_JFS_FS is not set | 686 | # CONFIG_JFS_FS is not set |
777 | # CONFIG_FS_POSIX_ACL is not set | 687 | # CONFIG_FS_POSIX_ACL is not set |
688 | CONFIG_FILE_LOCKING=y | ||
778 | # CONFIG_XFS_FS is not set | 689 | # CONFIG_XFS_FS is not set |
779 | # CONFIG_OCFS2_FS is not set | 690 | # CONFIG_OCFS2_FS is not set |
780 | # CONFIG_MINIX_FS is not set | 691 | CONFIG_DNOTIFY=y |
781 | # CONFIG_ROMFS_FS is not set | ||
782 | CONFIG_INOTIFY=y | 692 | CONFIG_INOTIFY=y |
783 | CONFIG_INOTIFY_USER=y | 693 | CONFIG_INOTIFY_USER=y |
784 | # CONFIG_QUOTA is not set | 694 | # CONFIG_QUOTA is not set |
785 | CONFIG_DNOTIFY=y | ||
786 | # CONFIG_AUTOFS_FS is not set | 695 | # CONFIG_AUTOFS_FS is not set |
787 | # CONFIG_AUTOFS4_FS is not set | 696 | # CONFIG_AUTOFS4_FS is not set |
788 | # CONFIG_FUSE_FS is not set | 697 | # CONFIG_FUSE_FS is not set |
@@ -806,12 +715,12 @@ CONFIG_DNOTIFY=y | |||
806 | CONFIG_PROC_FS=y | 715 | CONFIG_PROC_FS=y |
807 | CONFIG_PROC_KCORE=y | 716 | CONFIG_PROC_KCORE=y |
808 | CONFIG_PROC_SYSCTL=y | 717 | CONFIG_PROC_SYSCTL=y |
718 | CONFIG_PROC_PAGE_MONITOR=y | ||
809 | CONFIG_SYSFS=y | 719 | CONFIG_SYSFS=y |
810 | CONFIG_TMPFS=y | 720 | CONFIG_TMPFS=y |
811 | # CONFIG_TMPFS_POSIX_ACL is not set | 721 | # CONFIG_TMPFS_POSIX_ACL is not set |
812 | # CONFIG_HUGETLBFS is not set | 722 | # CONFIG_HUGETLBFS is not set |
813 | # CONFIG_HUGETLB_PAGE is not set | 723 | # CONFIG_HUGETLB_PAGE is not set |
814 | CONFIG_RAMFS=y | ||
815 | # CONFIG_CONFIGFS_FS is not set | 724 | # CONFIG_CONFIGFS_FS is not set |
816 | 725 | ||
817 | # | 726 | # |
@@ -824,26 +733,27 @@ CONFIG_RAMFS=y | |||
824 | # CONFIG_BEFS_FS is not set | 733 | # CONFIG_BEFS_FS is not set |
825 | # CONFIG_BFS_FS is not set | 734 | # CONFIG_BFS_FS is not set |
826 | # CONFIG_EFS_FS is not set | 735 | # CONFIG_EFS_FS is not set |
827 | # CONFIG_JFFS_FS is not set | ||
828 | CONFIG_JFFS2_FS=y | 736 | CONFIG_JFFS2_FS=y |
829 | CONFIG_JFFS2_FS_DEBUG=0 | 737 | CONFIG_JFFS2_FS_DEBUG=0 |
830 | CONFIG_JFFS2_FS_WRITEBUFFER=y | 738 | CONFIG_JFFS2_FS_WRITEBUFFER=y |
739 | # CONFIG_JFFS2_FS_WBUF_VERIFY is not set | ||
831 | # CONFIG_JFFS2_SUMMARY is not set | 740 | # CONFIG_JFFS2_SUMMARY is not set |
832 | # CONFIG_JFFS2_FS_XATTR is not set | 741 | # CONFIG_JFFS2_FS_XATTR is not set |
833 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | 742 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set |
834 | CONFIG_JFFS2_ZLIB=y | 743 | CONFIG_JFFS2_ZLIB=y |
744 | # CONFIG_JFFS2_LZO is not set | ||
835 | CONFIG_JFFS2_RTIME=y | 745 | CONFIG_JFFS2_RTIME=y |
836 | # CONFIG_JFFS2_RUBIN is not set | 746 | # CONFIG_JFFS2_RUBIN is not set |
837 | # CONFIG_CRAMFS is not set | 747 | # CONFIG_CRAMFS is not set |
838 | # CONFIG_VXFS_FS is not set | 748 | # CONFIG_VXFS_FS is not set |
749 | # CONFIG_MINIX_FS is not set | ||
750 | # CONFIG_OMFS_FS is not set | ||
839 | # CONFIG_HPFS_FS is not set | 751 | # CONFIG_HPFS_FS is not set |
840 | # CONFIG_QNX4FS_FS is not set | 752 | # CONFIG_QNX4FS_FS is not set |
753 | # CONFIG_ROMFS_FS is not set | ||
841 | # CONFIG_SYSV_FS is not set | 754 | # CONFIG_SYSV_FS is not set |
842 | # CONFIG_UFS_FS is not set | 755 | # CONFIG_UFS_FS is not set |
843 | 756 | CONFIG_NETWORK_FILESYSTEMS=y | |
844 | # | ||
845 | # Network File Systems | ||
846 | # | ||
847 | # CONFIG_NFS_FS is not set | 757 | # CONFIG_NFS_FS is not set |
848 | # CONFIG_NFSD is not set | 758 | # CONFIG_NFSD is not set |
849 | # CONFIG_SMB_FS is not set | 759 | # CONFIG_SMB_FS is not set |
@@ -851,57 +761,146 @@ CONFIG_JFFS2_RTIME=y | |||
851 | # CONFIG_NCP_FS is not set | 761 | # CONFIG_NCP_FS is not set |
852 | # CONFIG_CODA_FS is not set | 762 | # CONFIG_CODA_FS is not set |
853 | # CONFIG_AFS_FS is not set | 763 | # CONFIG_AFS_FS is not set |
854 | # CONFIG_9P_FS is not set | ||
855 | 764 | ||
856 | # | 765 | # |
857 | # Partition Types | 766 | # Partition Types |
858 | # | 767 | # |
859 | # CONFIG_PARTITION_ADVANCED is not set | 768 | # CONFIG_PARTITION_ADVANCED is not set |
860 | CONFIG_MSDOS_PARTITION=y | 769 | CONFIG_MSDOS_PARTITION=y |
861 | |||
862 | # | ||
863 | # Native Language Support | ||
864 | # | ||
865 | # CONFIG_NLS is not set | 770 | # CONFIG_NLS is not set |
866 | 771 | # CONFIG_DLM is not set | |
867 | # | ||
868 | # Profiling support | ||
869 | # | ||
870 | # CONFIG_PROFILING is not set | ||
871 | 772 | ||
872 | # | 773 | # |
873 | # Kernel hacking | 774 | # Kernel hacking |
874 | # | 775 | # |
776 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
875 | # CONFIG_PRINTK_TIME is not set | 777 | # CONFIG_PRINTK_TIME is not set |
778 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
876 | CONFIG_ENABLE_MUST_CHECK=y | 779 | CONFIG_ENABLE_MUST_CHECK=y |
780 | CONFIG_FRAME_WARN=1024 | ||
877 | # CONFIG_MAGIC_SYSRQ is not set | 781 | # CONFIG_MAGIC_SYSRQ is not set |
878 | # CONFIG_UNUSED_SYMBOLS is not set | 782 | # CONFIG_UNUSED_SYMBOLS is not set |
783 | # CONFIG_DEBUG_FS is not set | ||
784 | # CONFIG_HEADERS_CHECK is not set | ||
879 | # CONFIG_DEBUG_KERNEL is not set | 785 | # CONFIG_DEBUG_KERNEL is not set |
880 | CONFIG_LOG_BUF_SHIFT=14 | ||
881 | # CONFIG_DEBUG_BUGVERBOSE is not set | 786 | # CONFIG_DEBUG_BUGVERBOSE is not set |
882 | # CONFIG_DEBUG_FS is not set | 787 | # CONFIG_DEBUG_MEMORY_INIT is not set |
788 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
789 | # CONFIG_LATENCYTOP is not set | ||
790 | CONFIG_NOP_TRACER=y | ||
791 | CONFIG_HAVE_FTRACE=y | ||
792 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
793 | # CONFIG_SAMPLES is not set | ||
883 | # CONFIG_SH_STANDARD_BIOS is not set | 794 | # CONFIG_SH_STANDARD_BIOS is not set |
884 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 795 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
885 | # CONFIG_KGDB is not set | 796 | # CONFIG_SH_KGDB is not set |
886 | 797 | ||
887 | # | 798 | # |
888 | # Security options | 799 | # Security options |
889 | # | 800 | # |
890 | # CONFIG_KEYS is not set | 801 | # CONFIG_KEYS is not set |
891 | # CONFIG_SECURITY is not set | 802 | # CONFIG_SECURITY is not set |
803 | # CONFIG_SECURITYFS is not set | ||
804 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
805 | CONFIG_CRYPTO=y | ||
806 | |||
807 | # | ||
808 | # Crypto core or helper | ||
809 | # | ||
810 | # CONFIG_CRYPTO_FIPS is not set | ||
811 | # CONFIG_CRYPTO_MANAGER is not set | ||
812 | # CONFIG_CRYPTO_GF128MUL is not set | ||
813 | # CONFIG_CRYPTO_NULL is not set | ||
814 | # CONFIG_CRYPTO_CRYPTD is not set | ||
815 | # CONFIG_CRYPTO_AUTHENC is not set | ||
816 | # CONFIG_CRYPTO_TEST is not set | ||
817 | |||
818 | # | ||
819 | # Authenticated Encryption with Associated Data | ||
820 | # | ||
821 | # CONFIG_CRYPTO_CCM is not set | ||
822 | # CONFIG_CRYPTO_GCM is not set | ||
823 | # CONFIG_CRYPTO_SEQIV is not set | ||
824 | |||
825 | # | ||
826 | # Block modes | ||
827 | # | ||
828 | # CONFIG_CRYPTO_CBC is not set | ||
829 | # CONFIG_CRYPTO_CTR is not set | ||
830 | # CONFIG_CRYPTO_CTS is not set | ||
831 | # CONFIG_CRYPTO_ECB is not set | ||
832 | # CONFIG_CRYPTO_LRW is not set | ||
833 | # CONFIG_CRYPTO_PCBC is not set | ||
834 | # CONFIG_CRYPTO_XTS is not set | ||
835 | |||
836 | # | ||
837 | # Hash modes | ||
838 | # | ||
839 | # CONFIG_CRYPTO_HMAC is not set | ||
840 | # CONFIG_CRYPTO_XCBC is not set | ||
841 | |||
842 | # | ||
843 | # Digest | ||
844 | # | ||
845 | # CONFIG_CRYPTO_CRC32C is not set | ||
846 | # CONFIG_CRYPTO_MD4 is not set | ||
847 | # CONFIG_CRYPTO_MD5 is not set | ||
848 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
849 | # CONFIG_CRYPTO_RMD128 is not set | ||
850 | # CONFIG_CRYPTO_RMD160 is not set | ||
851 | # CONFIG_CRYPTO_RMD256 is not set | ||
852 | # CONFIG_CRYPTO_RMD320 is not set | ||
853 | # CONFIG_CRYPTO_SHA1 is not set | ||
854 | # CONFIG_CRYPTO_SHA256 is not set | ||
855 | # CONFIG_CRYPTO_SHA512 is not set | ||
856 | # CONFIG_CRYPTO_TGR192 is not set | ||
857 | # CONFIG_CRYPTO_WP512 is not set | ||
858 | |||
859 | # | ||
860 | # Ciphers | ||
861 | # | ||
862 | # CONFIG_CRYPTO_AES is not set | ||
863 | # CONFIG_CRYPTO_ANUBIS is not set | ||
864 | # CONFIG_CRYPTO_ARC4 is not set | ||
865 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
866 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
867 | # CONFIG_CRYPTO_CAST5 is not set | ||
868 | # CONFIG_CRYPTO_CAST6 is not set | ||
869 | # CONFIG_CRYPTO_DES is not set | ||
870 | # CONFIG_CRYPTO_FCRYPT is not set | ||
871 | # CONFIG_CRYPTO_KHAZAD is not set | ||
872 | # CONFIG_CRYPTO_SALSA20 is not set | ||
873 | # CONFIG_CRYPTO_SEED is not set | ||
874 | # CONFIG_CRYPTO_SERPENT is not set | ||
875 | # CONFIG_CRYPTO_TEA is not set | ||
876 | # CONFIG_CRYPTO_TWOFISH is not set | ||
877 | |||
878 | # | ||
879 | # Compression | ||
880 | # | ||
881 | # CONFIG_CRYPTO_DEFLATE is not set | ||
882 | # CONFIG_CRYPTO_LZO is not set | ||
892 | 883 | ||
893 | # | 884 | # |
894 | # Cryptographic options | 885 | # Random Number Generation |
895 | # | 886 | # |
896 | # CONFIG_CRYPTO is not set | 887 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
888 | CONFIG_CRYPTO_HW=y | ||
897 | 889 | ||
898 | # | 890 | # |
899 | # Library routines | 891 | # Library routines |
900 | # | 892 | # |
893 | CONFIG_BITREVERSE=y | ||
901 | # CONFIG_CRC_CCITT is not set | 894 | # CONFIG_CRC_CCITT is not set |
902 | # CONFIG_CRC16 is not set | 895 | # CONFIG_CRC16 is not set |
896 | # CONFIG_CRC_T10DIF is not set | ||
897 | # CONFIG_CRC_ITU_T is not set | ||
903 | CONFIG_CRC32=y | 898 | CONFIG_CRC32=y |
899 | # CONFIG_CRC7 is not set | ||
904 | # CONFIG_LIBCRC32C is not set | 900 | # CONFIG_LIBCRC32C is not set |
905 | CONFIG_ZLIB_INFLATE=y | 901 | CONFIG_ZLIB_INFLATE=y |
906 | CONFIG_ZLIB_DEFLATE=y | 902 | CONFIG_ZLIB_DEFLATE=y |
907 | CONFIG_PLIST=y | 903 | CONFIG_PLIST=y |
904 | CONFIG_HAS_IOMEM=y | ||
905 | CONFIG_HAS_IOPORT=y | ||
906 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/sh/configs/se7780_defconfig b/arch/sh/configs/se7780_defconfig index 30f5ee40c312..ad95b80bb198 100644 --- a/arch/sh/configs/se7780_defconfig +++ b/arch/sh/configs/se7780_defconfig | |||
@@ -1,26 +1,28 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.25-rc3 | 3 | # Linux kernel version: 2.6.27 |
4 | # Thu Feb 28 10:18:04 2008 | 4 | # Wed Oct 22 19:27:30 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
8 | CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig" | ||
8 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
9 | CONFIG_GENERIC_BUG=y | 10 | CONFIG_GENERIC_BUG=y |
10 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
11 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
12 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
13 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
14 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
15 | CONFIG_GENERIC_TIME=y | 17 | CONFIG_GENERIC_TIME=y |
16 | CONFIG_GENERIC_CLOCKEVENTS=y | 18 | CONFIG_GENERIC_CLOCKEVENTS=y |
17 | CONFIG_SYS_SUPPORTS_PCI=y | 19 | CONFIG_SYS_SUPPORTS_PCI=y |
18 | CONFIG_STACKTRACE_SUPPORT=y | 20 | CONFIG_STACKTRACE_SUPPORT=y |
19 | CONFIG_LOCKDEP_SUPPORT=y | 21 | CONFIG_LOCKDEP_SUPPORT=y |
22 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
20 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 23 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
21 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 24 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
22 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 25 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
23 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
24 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 26 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
25 | 27 | ||
26 | # | 28 | # |
@@ -41,11 +43,8 @@ CONFIG_IKCONFIG=y | |||
41 | CONFIG_IKCONFIG_PROC=y | 43 | CONFIG_IKCONFIG_PROC=y |
42 | CONFIG_LOG_BUF_SHIFT=14 | 44 | CONFIG_LOG_BUF_SHIFT=14 |
43 | # CONFIG_CGROUPS is not set | 45 | # CONFIG_CGROUPS is not set |
44 | CONFIG_GROUP_SCHED=y | ||
45 | CONFIG_FAIR_GROUP_SCHED=y | ||
46 | CONFIG_USER_SCHED=y | ||
47 | # CONFIG_CGROUP_SCHED is not set | ||
48 | CONFIG_SYSFS_DEPRECATED=y | 46 | CONFIG_SYSFS_DEPRECATED=y |
47 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
49 | # CONFIG_RELAY is not set | 48 | # CONFIG_RELAY is not set |
50 | # CONFIG_NAMESPACES is not set | 49 | # CONFIG_NAMESPACES is not set |
51 | # CONFIG_BLK_DEV_INITRD is not set | 50 | # CONFIG_BLK_DEV_INITRD is not set |
@@ -68,20 +67,27 @@ CONFIG_SIGNALFD=y | |||
68 | CONFIG_TIMERFD=y | 67 | CONFIG_TIMERFD=y |
69 | CONFIG_EVENTFD=y | 68 | CONFIG_EVENTFD=y |
70 | CONFIG_SHMEM=y | 69 | CONFIG_SHMEM=y |
70 | CONFIG_AIO=y | ||
71 | CONFIG_VM_EVENT_COUNTERS=y | 71 | CONFIG_VM_EVENT_COUNTERS=y |
72 | CONFIG_PCI_QUIRKS=y | ||
72 | CONFIG_SLAB=y | 73 | CONFIG_SLAB=y |
73 | # CONFIG_SLUB is not set | 74 | # CONFIG_SLUB is not set |
74 | # CONFIG_SLOB is not set | 75 | # CONFIG_SLOB is not set |
75 | # CONFIG_PROFILING is not set | 76 | # CONFIG_PROFILING is not set |
76 | # CONFIG_MARKERS is not set | 77 | # CONFIG_MARKERS is not set |
77 | CONFIG_HAVE_OPROFILE=y | 78 | CONFIG_HAVE_OPROFILE=y |
78 | # CONFIG_HAVE_KPROBES is not set | 79 | CONFIG_HAVE_IOREMAP_PROT=y |
79 | CONFIG_PROC_PAGE_MONITOR=y | 80 | CONFIG_HAVE_KPROBES=y |
81 | CONFIG_HAVE_KRETPROBES=y | ||
82 | CONFIG_HAVE_ARCH_TRACEHOOK=y | ||
83 | CONFIG_HAVE_CLK=y | ||
84 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
80 | CONFIG_SLABINFO=y | 85 | CONFIG_SLABINFO=y |
81 | CONFIG_RT_MUTEXES=y | 86 | CONFIG_RT_MUTEXES=y |
82 | # CONFIG_TINY_SHMEM is not set | 87 | # CONFIG_TINY_SHMEM is not set |
83 | CONFIG_BASE_SMALL=0 | 88 | CONFIG_BASE_SMALL=0 |
84 | CONFIG_MODULES=y | 89 | CONFIG_MODULES=y |
90 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
85 | CONFIG_MODULE_UNLOAD=y | 91 | CONFIG_MODULE_UNLOAD=y |
86 | # CONFIG_MODVERSIONS is not set | 92 | # CONFIG_MODVERSIONS is not set |
87 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 93 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
@@ -90,6 +96,7 @@ CONFIG_BLOCK=y | |||
90 | # CONFIG_LBD is not set | 96 | # CONFIG_LBD is not set |
91 | # CONFIG_BLK_DEV_IO_TRACE is not set | 97 | # CONFIG_BLK_DEV_IO_TRACE is not set |
92 | # CONFIG_LSF is not set | 98 | # CONFIG_LSF is not set |
99 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
93 | 100 | ||
94 | # | 101 | # |
95 | # IO Schedulers | 102 | # IO Schedulers |
@@ -104,7 +111,7 @@ CONFIG_DEFAULT_DEADLINE=y | |||
104 | # CONFIG_DEFAULT_NOOP is not set | 111 | # CONFIG_DEFAULT_NOOP is not set |
105 | CONFIG_DEFAULT_IOSCHED="deadline" | 112 | CONFIG_DEFAULT_IOSCHED="deadline" |
106 | CONFIG_CLASSIC_RCU=y | 113 | CONFIG_CLASSIC_RCU=y |
107 | # CONFIG_PREEMPT_RCU is not set | 114 | # CONFIG_FREEZER is not set |
108 | 115 | ||
109 | # | 116 | # |
110 | # System type | 117 | # System type |
@@ -115,6 +122,7 @@ CONFIG_CPU_SH4A=y | |||
115 | # CONFIG_CPU_SUBTYPE_SH7203 is not set | 122 | # CONFIG_CPU_SUBTYPE_SH7203 is not set |
116 | # CONFIG_CPU_SUBTYPE_SH7206 is not set | 123 | # CONFIG_CPU_SUBTYPE_SH7206 is not set |
117 | # CONFIG_CPU_SUBTYPE_SH7263 is not set | 124 | # CONFIG_CPU_SUBTYPE_SH7263 is not set |
125 | # CONFIG_CPU_SUBTYPE_MXG is not set | ||
118 | # CONFIG_CPU_SUBTYPE_SH7705 is not set | 126 | # CONFIG_CPU_SUBTYPE_SH7705 is not set |
119 | # CONFIG_CPU_SUBTYPE_SH7706 is not set | 127 | # CONFIG_CPU_SUBTYPE_SH7706 is not set |
120 | # CONFIG_CPU_SUBTYPE_SH7707 is not set | 128 | # CONFIG_CPU_SUBTYPE_SH7707 is not set |
@@ -132,6 +140,7 @@ CONFIG_CPU_SH4A=y | |||
132 | # CONFIG_CPU_SUBTYPE_SH7751R is not set | 140 | # CONFIG_CPU_SUBTYPE_SH7751R is not set |
133 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | 141 | # CONFIG_CPU_SUBTYPE_SH7760 is not set |
134 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | 142 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set |
143 | # CONFIG_CPU_SUBTYPE_SH7723 is not set | ||
135 | # CONFIG_CPU_SUBTYPE_SH7763 is not set | 144 | # CONFIG_CPU_SUBTYPE_SH7763 is not set |
136 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | 145 | # CONFIG_CPU_SUBTYPE_SH7770 is not set |
137 | CONFIG_CPU_SUBTYPE_SH7780=y | 146 | CONFIG_CPU_SUBTYPE_SH7780=y |
@@ -152,7 +161,6 @@ CONFIG_PAGE_OFFSET=0x80000000 | |||
152 | CONFIG_MEMORY_START=0x08000000 | 161 | CONFIG_MEMORY_START=0x08000000 |
153 | CONFIG_MEMORY_SIZE=0x08000000 | 162 | CONFIG_MEMORY_SIZE=0x08000000 |
154 | CONFIG_29BIT=y | 163 | CONFIG_29BIT=y |
155 | # CONFIG_PMB is not set | ||
156 | CONFIG_VSYSCALL=y | 164 | CONFIG_VSYSCALL=y |
157 | CONFIG_ARCH_FLATMEM_ENABLE=y | 165 | CONFIG_ARCH_FLATMEM_ENABLE=y |
158 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | 166 | CONFIG_ARCH_SPARSEMEM_ENABLE=y |
@@ -161,9 +169,12 @@ CONFIG_MAX_ACTIVE_REGIONS=1 | |||
161 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 169 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
162 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | 170 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y |
163 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 171 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
172 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | ||
164 | CONFIG_PAGE_SIZE_4KB=y | 173 | CONFIG_PAGE_SIZE_4KB=y |
165 | # CONFIG_PAGE_SIZE_8KB is not set | 174 | # CONFIG_PAGE_SIZE_8KB is not set |
175 | # CONFIG_PAGE_SIZE_16KB is not set | ||
166 | # CONFIG_PAGE_SIZE_64KB is not set | 176 | # CONFIG_PAGE_SIZE_64KB is not set |
177 | CONFIG_ENTRY_OFFSET=0x00001000 | ||
167 | CONFIG_SELECT_MEMORY_MODEL=y | 178 | CONFIG_SELECT_MEMORY_MODEL=y |
168 | # CONFIG_FLATMEM_MANUAL is not set | 179 | # CONFIG_FLATMEM_MANUAL is not set |
169 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 180 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
@@ -171,11 +182,14 @@ CONFIG_SPARSEMEM_MANUAL=y | |||
171 | CONFIG_SPARSEMEM=y | 182 | CONFIG_SPARSEMEM=y |
172 | CONFIG_HAVE_MEMORY_PRESENT=y | 183 | CONFIG_HAVE_MEMORY_PRESENT=y |
173 | CONFIG_SPARSEMEM_STATIC=y | 184 | CONFIG_SPARSEMEM_STATIC=y |
174 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | 185 | CONFIG_PAGEFLAGS_EXTENDED=y |
175 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 186 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
187 | CONFIG_MIGRATION=y | ||
176 | # CONFIG_RESOURCES_64BIT is not set | 188 | # CONFIG_RESOURCES_64BIT is not set |
189 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
177 | CONFIG_ZONE_DMA_FLAG=0 | 190 | CONFIG_ZONE_DMA_FLAG=0 |
178 | CONFIG_NR_QUICK=2 | 191 | CONFIG_NR_QUICK=2 |
192 | CONFIG_UNEVICTABLE_LRU=y | ||
179 | 193 | ||
180 | # | 194 | # |
181 | # Cache configuration | 195 | # Cache configuration |
@@ -210,7 +224,6 @@ CONFIG_SH_7780_SOLUTION_ENGINE=y | |||
210 | CONFIG_SH_TMU=y | 224 | CONFIG_SH_TMU=y |
211 | CONFIG_SH_TIMER_IRQ=28 | 225 | CONFIG_SH_TIMER_IRQ=28 |
212 | CONFIG_SH_PCLK_FREQ=33333333 | 226 | CONFIG_SH_PCLK_FREQ=33333333 |
213 | # CONFIG_TICK_ONESHOT is not set | ||
214 | # CONFIG_NO_HZ is not set | 227 | # CONFIG_NO_HZ is not set |
215 | # CONFIG_HIGH_RES_TIMERS is not set | 228 | # CONFIG_HIGH_RES_TIMERS is not set |
216 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | 229 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y |
@@ -244,10 +257,10 @@ CONFIG_HZ_250=y | |||
244 | # CONFIG_HZ_1000 is not set | 257 | # CONFIG_HZ_1000 is not set |
245 | CONFIG_HZ=250 | 258 | CONFIG_HZ=250 |
246 | # CONFIG_SCHED_HRTICK is not set | 259 | # CONFIG_SCHED_HRTICK is not set |
260 | # CONFIG_SECCOMP is not set | ||
247 | CONFIG_PREEMPT_NONE=y | 261 | CONFIG_PREEMPT_NONE=y |
248 | # CONFIG_PREEMPT_VOLUNTARY is not set | 262 | # CONFIG_PREEMPT_VOLUNTARY is not set |
249 | # CONFIG_PREEMPT is not set | 263 | # CONFIG_PREEMPT is not set |
250 | CONFIG_RCU_TRACE=y | ||
251 | CONFIG_GUSA=y | 264 | CONFIG_GUSA=y |
252 | 265 | ||
253 | # | 266 | # |
@@ -273,11 +286,9 @@ CONFIG_PCI_LEGACY=y | |||
273 | # Executable file formats | 286 | # Executable file formats |
274 | # | 287 | # |
275 | CONFIG_BINFMT_ELF=y | 288 | CONFIG_BINFMT_ELF=y |
289 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
290 | # CONFIG_HAVE_AOUT is not set | ||
276 | # CONFIG_BINFMT_MISC is not set | 291 | # CONFIG_BINFMT_MISC is not set |
277 | |||
278 | # | ||
279 | # Networking | ||
280 | # | ||
281 | CONFIG_NET=y | 292 | CONFIG_NET=y |
282 | 293 | ||
283 | # | 294 | # |
@@ -347,11 +358,10 @@ CONFIG_IPV6=y | |||
347 | # CONFIG_CAN is not set | 358 | # CONFIG_CAN is not set |
348 | # CONFIG_IRDA is not set | 359 | # CONFIG_IRDA is not set |
349 | # CONFIG_BT is not set | 360 | # CONFIG_BT is not set |
350 | 361 | # CONFIG_PHONET is not set | |
351 | # | 362 | CONFIG_WIRELESS=y |
352 | # Wireless | ||
353 | # | ||
354 | # CONFIG_CFG80211 is not set | 363 | # CONFIG_CFG80211 is not set |
364 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
355 | # CONFIG_WIRELESS_EXT is not set | 365 | # CONFIG_WIRELESS_EXT is not set |
356 | # CONFIG_MAC80211 is not set | 366 | # CONFIG_MAC80211 is not set |
357 | # CONFIG_IEEE80211 is not set | 367 | # CONFIG_IEEE80211 is not set |
@@ -374,6 +384,7 @@ CONFIG_MTD=y | |||
374 | CONFIG_MTD_PARTITIONS=y | 384 | CONFIG_MTD_PARTITIONS=y |
375 | # CONFIG_MTD_REDBOOT_PARTS is not set | 385 | # CONFIG_MTD_REDBOOT_PARTS is not set |
376 | # CONFIG_MTD_CMDLINE_PARTS is not set | 386 | # CONFIG_MTD_CMDLINE_PARTS is not set |
387 | # CONFIG_MTD_AR7_PARTS is not set | ||
377 | 388 | ||
378 | # | 389 | # |
379 | # User Modules And Translation Layers | 390 | # User Modules And Translation Layers |
@@ -461,11 +472,13 @@ CONFIG_BLK_DEV_LOOP=y | |||
461 | # CONFIG_BLK_DEV_RAM is not set | 472 | # CONFIG_BLK_DEV_RAM is not set |
462 | # CONFIG_CDROM_PKTCDVD is not set | 473 | # CONFIG_CDROM_PKTCDVD is not set |
463 | # CONFIG_ATA_OVER_ETH is not set | 474 | # CONFIG_ATA_OVER_ETH is not set |
475 | # CONFIG_BLK_DEV_HD is not set | ||
464 | CONFIG_MISC_DEVICES=y | 476 | CONFIG_MISC_DEVICES=y |
465 | # CONFIG_PHANTOM is not set | 477 | # CONFIG_PHANTOM is not set |
466 | # CONFIG_EEPROM_93CX6 is not set | 478 | # CONFIG_EEPROM_93CX6 is not set |
467 | # CONFIG_SGI_IOC4 is not set | 479 | # CONFIG_SGI_IOC4 is not set |
468 | # CONFIG_ENCLOSURE_SERVICES is not set | 480 | # CONFIG_ENCLOSURE_SERVICES is not set |
481 | # CONFIG_HP_ILO is not set | ||
469 | CONFIG_HAVE_IDE=y | 482 | CONFIG_HAVE_IDE=y |
470 | # CONFIG_IDE is not set | 483 | # CONFIG_IDE is not set |
471 | 484 | ||
@@ -537,9 +550,13 @@ CONFIG_SCSI_LOWLEVEL=y | |||
537 | # CONFIG_SCSI_NSP32 is not set | 550 | # CONFIG_SCSI_NSP32 is not set |
538 | # CONFIG_SCSI_DEBUG is not set | 551 | # CONFIG_SCSI_DEBUG is not set |
539 | # CONFIG_SCSI_SRP is not set | 552 | # CONFIG_SCSI_SRP is not set |
553 | # CONFIG_SCSI_DH is not set | ||
540 | CONFIG_ATA=y | 554 | CONFIG_ATA=y |
541 | # CONFIG_ATA_NONSTANDARD is not set | 555 | # CONFIG_ATA_NONSTANDARD is not set |
556 | CONFIG_SATA_PMP=y | ||
542 | # CONFIG_SATA_AHCI is not set | 557 | # CONFIG_SATA_AHCI is not set |
558 | # CONFIG_SATA_SIL24 is not set | ||
559 | CONFIG_ATA_SFF=y | ||
543 | # CONFIG_SATA_SVW is not set | 560 | # CONFIG_SATA_SVW is not set |
544 | # CONFIG_ATA_PIIX is not set | 561 | # CONFIG_ATA_PIIX is not set |
545 | # CONFIG_SATA_NV is not set | 562 | # CONFIG_SATA_NV is not set |
@@ -547,11 +564,11 @@ CONFIG_ATA=y | |||
547 | # CONFIG_SATA_QSTOR is not set | 564 | # CONFIG_SATA_QSTOR is not set |
548 | # CONFIG_SATA_PROMISE is not set | 565 | # CONFIG_SATA_PROMISE is not set |
549 | CONFIG_SATA_SIL=y | 566 | CONFIG_SATA_SIL=y |
550 | # CONFIG_SATA_SIL24 is not set | ||
551 | # CONFIG_SATA_SIS is not set | 567 | # CONFIG_SATA_SIS is not set |
552 | # CONFIG_SATA_ULI is not set | 568 | # CONFIG_SATA_ULI is not set |
553 | # CONFIG_SATA_VIA is not set | 569 | # CONFIG_SATA_VIA is not set |
554 | # CONFIG_SATA_VITESSE is not set | 570 | # CONFIG_SATA_VITESSE is not set |
571 | # CONFIG_SATA_INIC162X is not set | ||
555 | # CONFIG_PATA_AMD is not set | 572 | # CONFIG_PATA_AMD is not set |
556 | # CONFIG_PATA_ARTOP is not set | 573 | # CONFIG_PATA_ARTOP is not set |
557 | # CONFIG_PATA_ATIIXP is not set | 574 | # CONFIG_PATA_ATIIXP is not set |
@@ -575,6 +592,7 @@ CONFIG_SATA_SIL=y | |||
575 | # CONFIG_PATA_VIA is not set | 592 | # CONFIG_PATA_VIA is not set |
576 | # CONFIG_PATA_WINBOND is not set | 593 | # CONFIG_PATA_WINBOND is not set |
577 | # CONFIG_PATA_PLATFORM is not set | 594 | # CONFIG_PATA_PLATFORM is not set |
595 | # CONFIG_PATA_SCH is not set | ||
578 | # CONFIG_MD is not set | 596 | # CONFIG_MD is not set |
579 | # CONFIG_FUSION is not set | 597 | # CONFIG_FUSION is not set |
580 | 598 | ||
@@ -583,12 +601,11 @@ CONFIG_SATA_SIL=y | |||
583 | # | 601 | # |
584 | 602 | ||
585 | # | 603 | # |
586 | # An alternative FireWire stack is available with EXPERIMENTAL=y | 604 | # A new alternative FireWire stack is available with EXPERIMENTAL=y |
587 | # | 605 | # |
588 | # CONFIG_IEEE1394 is not set | 606 | # CONFIG_IEEE1394 is not set |
589 | # CONFIG_I2O is not set | 607 | # CONFIG_I2O is not set |
590 | CONFIG_NETDEVICES=y | 608 | CONFIG_NETDEVICES=y |
591 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
592 | # CONFIG_DUMMY is not set | 609 | # CONFIG_DUMMY is not set |
593 | # CONFIG_BONDING is not set | 610 | # CONFIG_BONDING is not set |
594 | # CONFIG_EQUALIZER is not set | 611 | # CONFIG_EQUALIZER is not set |
@@ -621,12 +638,16 @@ CONFIG_MII=y | |||
621 | # CONFIG_CASSINI is not set | 638 | # CONFIG_CASSINI is not set |
622 | # CONFIG_NET_VENDOR_3COM is not set | 639 | # CONFIG_NET_VENDOR_3COM is not set |
623 | CONFIG_SMC91X=y | 640 | CONFIG_SMC91X=y |
641 | # CONFIG_SMC911X is not set | ||
624 | # CONFIG_NET_TULIP is not set | 642 | # CONFIG_NET_TULIP is not set |
625 | # CONFIG_HP100 is not set | 643 | # CONFIG_HP100 is not set |
626 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | 644 | # CONFIG_IBM_NEW_EMAC_ZMII is not set |
627 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 645 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
628 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 646 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
629 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 647 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
648 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
649 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
650 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
630 | CONFIG_NET_PCI=y | 651 | CONFIG_NET_PCI=y |
631 | # CONFIG_PCNET32 is not set | 652 | # CONFIG_PCNET32 is not set |
632 | # CONFIG_AMD8111_ETH is not set | 653 | # CONFIG_AMD8111_ETH is not set |
@@ -645,6 +666,7 @@ CONFIG_NET_PCI=y | |||
645 | # CONFIG_SUNDANCE is not set | 666 | # CONFIG_SUNDANCE is not set |
646 | # CONFIG_TLAN is not set | 667 | # CONFIG_TLAN is not set |
647 | # CONFIG_VIA_RHINE is not set | 668 | # CONFIG_VIA_RHINE is not set |
669 | # CONFIG_ATL2 is not set | ||
648 | # CONFIG_NETDEV_1000 is not set | 670 | # CONFIG_NETDEV_1000 is not set |
649 | # CONFIG_NETDEV_10000 is not set | 671 | # CONFIG_NETDEV_10000 is not set |
650 | # CONFIG_TR is not set | 672 | # CONFIG_TR is not set |
@@ -654,6 +676,7 @@ CONFIG_NET_PCI=y | |||
654 | # | 676 | # |
655 | # CONFIG_WLAN_PRE80211 is not set | 677 | # CONFIG_WLAN_PRE80211 is not set |
656 | # CONFIG_WLAN_80211 is not set | 678 | # CONFIG_WLAN_80211 is not set |
679 | # CONFIG_IWLWIFI_LEDS is not set | ||
657 | 680 | ||
658 | # | 681 | # |
659 | # USB Network Adapters | 682 | # USB Network Adapters |
@@ -675,7 +698,7 @@ CONFIG_NET_PCI=y | |||
675 | # Input device support | 698 | # Input device support |
676 | # | 699 | # |
677 | CONFIG_INPUT=y | 700 | CONFIG_INPUT=y |
678 | # CONFIG_INPUT_FF_MEMLESS is not set | 701 | CONFIG_INPUT_FF_MEMLESS=m |
679 | # CONFIG_INPUT_POLLDEV is not set | 702 | # CONFIG_INPUT_POLLDEV is not set |
680 | 703 | ||
681 | # | 704 | # |
@@ -709,9 +732,11 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | |||
709 | # Character devices | 732 | # Character devices |
710 | # | 733 | # |
711 | CONFIG_VT=y | 734 | CONFIG_VT=y |
735 | CONFIG_CONSOLE_TRANSLATIONS=y | ||
712 | CONFIG_VT_CONSOLE=y | 736 | CONFIG_VT_CONSOLE=y |
713 | CONFIG_HW_CONSOLE=y | 737 | CONFIG_HW_CONSOLE=y |
714 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | 738 | # CONFIG_VT_HW_CONSOLE_BINDING is not set |
739 | CONFIG_DEVKMEM=y | ||
715 | # CONFIG_SERIAL_NONSTANDARD is not set | 740 | # CONFIG_SERIAL_NONSTANDARD is not set |
716 | 741 | ||
717 | # | 742 | # |
@@ -737,12 +762,7 @@ CONFIG_UNIX98_PTYS=y | |||
737 | # CONFIG_RAW_DRIVER is not set | 762 | # CONFIG_RAW_DRIVER is not set |
738 | CONFIG_DEVPORT=y | 763 | CONFIG_DEVPORT=y |
739 | # CONFIG_I2C is not set | 764 | # CONFIG_I2C is not set |
740 | |||
741 | # | ||
742 | # SPI support | ||
743 | # | ||
744 | # CONFIG_SPI is not set | 765 | # CONFIG_SPI is not set |
745 | # CONFIG_SPI_MASTER is not set | ||
746 | # CONFIG_W1 is not set | 766 | # CONFIG_W1 is not set |
747 | # CONFIG_POWER_SUPPLY is not set | 767 | # CONFIG_POWER_SUPPLY is not set |
748 | CONFIG_HWMON=y | 768 | CONFIG_HWMON=y |
@@ -757,6 +777,7 @@ CONFIG_HWMON=y | |||
757 | # CONFIG_SENSORS_W83627EHF is not set | 777 | # CONFIG_SENSORS_W83627EHF is not set |
758 | # CONFIG_HWMON_DEBUG_CHIP is not set | 778 | # CONFIG_HWMON_DEBUG_CHIP is not set |
759 | CONFIG_THERMAL=y | 779 | CONFIG_THERMAL=y |
780 | # CONFIG_THERMAL_HWMON is not set | ||
760 | # CONFIG_WATCHDOG is not set | 781 | # CONFIG_WATCHDOG is not set |
761 | 782 | ||
762 | # | 783 | # |
@@ -768,13 +789,26 @@ CONFIG_SSB_POSSIBLE=y | |||
768 | # | 789 | # |
769 | # Multifunction device drivers | 790 | # Multifunction device drivers |
770 | # | 791 | # |
792 | # CONFIG_MFD_CORE is not set | ||
771 | # CONFIG_MFD_SM501 is not set | 793 | # CONFIG_MFD_SM501 is not set |
794 | # CONFIG_HTC_PASIC3 is not set | ||
795 | # CONFIG_MFD_TMIO is not set | ||
796 | # CONFIG_MFD_WM8400 is not set | ||
772 | 797 | ||
773 | # | 798 | # |
774 | # Multimedia devices | 799 | # Multimedia devices |
775 | # | 800 | # |
801 | |||
802 | # | ||
803 | # Multimedia core support | ||
804 | # | ||
776 | # CONFIG_VIDEO_DEV is not set | 805 | # CONFIG_VIDEO_DEV is not set |
777 | # CONFIG_DVB_CORE is not set | 806 | # CONFIG_DVB_CORE is not set |
807 | # CONFIG_VIDEO_MEDIA is not set | ||
808 | |||
809 | # | ||
810 | # Multimedia drivers | ||
811 | # | ||
778 | # CONFIG_DAB is not set | 812 | # CONFIG_DAB is not set |
779 | 813 | ||
780 | # | 814 | # |
@@ -786,15 +820,16 @@ CONFIG_SSB_POSSIBLE=y | |||
786 | CONFIG_FB=y | 820 | CONFIG_FB=y |
787 | CONFIG_FIRMWARE_EDID=y | 821 | CONFIG_FIRMWARE_EDID=y |
788 | # CONFIG_FB_DDC is not set | 822 | # CONFIG_FB_DDC is not set |
789 | # CONFIG_FB_CFB_FILLRECT is not set | 823 | # CONFIG_FB_BOOT_VESA_SUPPORT is not set |
790 | # CONFIG_FB_CFB_COPYAREA is not set | 824 | CONFIG_FB_CFB_FILLRECT=m |
791 | # CONFIG_FB_CFB_IMAGEBLIT is not set | 825 | CONFIG_FB_CFB_COPYAREA=m |
826 | CONFIG_FB_CFB_IMAGEBLIT=m | ||
792 | # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set | 827 | # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set |
793 | # CONFIG_FB_SYS_FILLRECT is not set | 828 | # CONFIG_FB_SYS_FILLRECT is not set |
794 | # CONFIG_FB_SYS_COPYAREA is not set | 829 | # CONFIG_FB_SYS_COPYAREA is not set |
795 | # CONFIG_FB_SYS_IMAGEBLIT is not set | 830 | # CONFIG_FB_SYS_IMAGEBLIT is not set |
831 | # CONFIG_FB_FOREIGN_ENDIAN is not set | ||
796 | # CONFIG_FB_SYS_FOPS is not set | 832 | # CONFIG_FB_SYS_FOPS is not set |
797 | CONFIG_FB_DEFERRED_IO=y | ||
798 | # CONFIG_FB_SVGALIB is not set | 833 | # CONFIG_FB_SVGALIB is not set |
799 | # CONFIG_FB_MACMODES is not set | 834 | # CONFIG_FB_MACMODES is not set |
800 | # CONFIG_FB_BACKLIGHT is not set | 835 | # CONFIG_FB_BACKLIGHT is not set |
@@ -818,6 +853,7 @@ CONFIG_FB_DEFERRED_IO=y | |||
818 | # CONFIG_FB_ATY is not set | 853 | # CONFIG_FB_ATY is not set |
819 | # CONFIG_FB_S3 is not set | 854 | # CONFIG_FB_S3 is not set |
820 | # CONFIG_FB_SIS is not set | 855 | # CONFIG_FB_SIS is not set |
856 | # CONFIG_FB_VIA is not set | ||
821 | # CONFIG_FB_NEOMAGIC is not set | 857 | # CONFIG_FB_NEOMAGIC is not set |
822 | # CONFIG_FB_KYRO is not set | 858 | # CONFIG_FB_KYRO is not set |
823 | # CONFIG_FB_3DFX is not set | 859 | # CONFIG_FB_3DFX is not set |
@@ -825,7 +861,10 @@ CONFIG_FB_DEFERRED_IO=y | |||
825 | # CONFIG_FB_VT8623 is not set | 861 | # CONFIG_FB_VT8623 is not set |
826 | # CONFIG_FB_TRIDENT is not set | 862 | # CONFIG_FB_TRIDENT is not set |
827 | # CONFIG_FB_ARK is not set | 863 | # CONFIG_FB_ARK is not set |
864 | # CONFIG_FB_CARMINE is not set | ||
865 | CONFIG_FB_SH_MOBILE_LCDC=m | ||
828 | # CONFIG_FB_VIRTUAL is not set | 866 | # CONFIG_FB_VIRTUAL is not set |
867 | # CONFIG_FB_METRONOME is not set | ||
829 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 868 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
830 | 869 | ||
831 | # | 870 | # |
@@ -850,24 +889,10 @@ CONFIG_LOGO_LINUX_CLUT224=y | |||
850 | # CONFIG_LOGO_SUPERH_MONO is not set | 889 | # CONFIG_LOGO_SUPERH_MONO is not set |
851 | # CONFIG_LOGO_SUPERH_VGA16 is not set | 890 | # CONFIG_LOGO_SUPERH_VGA16 is not set |
852 | CONFIG_LOGO_SUPERH_CLUT224=y | 891 | CONFIG_LOGO_SUPERH_CLUT224=y |
853 | |||
854 | # | ||
855 | # Sound | ||
856 | # | ||
857 | CONFIG_SOUND=y | 892 | CONFIG_SOUND=y |
858 | 893 | CONFIG_SOUND_OSS_CORE=y | |
859 | # | ||
860 | # Advanced Linux Sound Architecture | ||
861 | # | ||
862 | # CONFIG_SND is not set | 894 | # CONFIG_SND is not set |
863 | |||
864 | # | ||
865 | # Open Sound System | ||
866 | # | ||
867 | CONFIG_SOUND_PRIME=y | 895 | CONFIG_SOUND_PRIME=y |
868 | # CONFIG_SOUND_TRIDENT is not set | ||
869 | # CONFIG_SOUND_MSNDCLAS is not set | ||
870 | # CONFIG_SOUND_MSNDPIN is not set | ||
871 | CONFIG_HID_SUPPORT=y | 896 | CONFIG_HID_SUPPORT=y |
872 | CONFIG_HID=y | 897 | CONFIG_HID=y |
873 | # CONFIG_HID_DEBUG is not set | 898 | # CONFIG_HID_DEBUG is not set |
@@ -877,8 +902,36 @@ CONFIG_HID=y | |||
877 | # USB Input Devices | 902 | # USB Input Devices |
878 | # | 903 | # |
879 | CONFIG_USB_HID=y | 904 | CONFIG_USB_HID=y |
880 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | 905 | # CONFIG_HID_PID is not set |
881 | # CONFIG_USB_HIDDEV is not set | 906 | # CONFIG_USB_HIDDEV is not set |
907 | |||
908 | # | ||
909 | # Special HID drivers | ||
910 | # | ||
911 | CONFIG_HID_COMPAT=y | ||
912 | CONFIG_HID_A4TECH=y | ||
913 | CONFIG_HID_APPLE=y | ||
914 | CONFIG_HID_BELKIN=y | ||
915 | CONFIG_HID_BRIGHT=y | ||
916 | CONFIG_HID_CHERRY=y | ||
917 | CONFIG_HID_CHICONY=y | ||
918 | CONFIG_HID_CYPRESS=y | ||
919 | CONFIG_HID_DELL=y | ||
920 | CONFIG_HID_EZKEY=y | ||
921 | CONFIG_HID_GYRATION=y | ||
922 | CONFIG_HID_LOGITECH=y | ||
923 | # CONFIG_LOGITECH_FF is not set | ||
924 | # CONFIG_LOGIRUMBLEPAD2_FF is not set | ||
925 | CONFIG_HID_MICROSOFT=y | ||
926 | CONFIG_HID_MONTEREY=y | ||
927 | CONFIG_HID_PANTHERLORD=y | ||
928 | # CONFIG_PANTHERLORD_FF is not set | ||
929 | CONFIG_HID_PETALYNX=y | ||
930 | CONFIG_HID_SAMSUNG=y | ||
931 | CONFIG_HID_SONY=y | ||
932 | CONFIG_HID_SUNPLUS=y | ||
933 | CONFIG_THRUSTMASTER_FF=m | ||
934 | CONFIG_ZEROPLUS_FF=m | ||
882 | CONFIG_USB_SUPPORT=y | 935 | CONFIG_USB_SUPPORT=y |
883 | CONFIG_USB_ARCH_HAS_HCD=y | 936 | CONFIG_USB_ARCH_HAS_HCD=y |
884 | CONFIG_USB_ARCH_HAS_OHCI=y | 937 | CONFIG_USB_ARCH_HAS_OHCI=y |
@@ -892,11 +945,17 @@ CONFIG_USB=y | |||
892 | # | 945 | # |
893 | CONFIG_USB_DEVICEFS=y | 946 | CONFIG_USB_DEVICEFS=y |
894 | # CONFIG_USB_DEVICE_CLASS is not set | 947 | # CONFIG_USB_DEVICE_CLASS is not set |
948 | # CONFIG_USB_DYNAMIC_MINORS is not set | ||
949 | # CONFIG_USB_OTG_WHITELIST is not set | ||
950 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | ||
951 | CONFIG_USB_MON=y | ||
895 | 952 | ||
896 | # | 953 | # |
897 | # USB Host Controller Drivers | 954 | # USB Host Controller Drivers |
898 | # | 955 | # |
956 | # CONFIG_USB_C67X00_HCD is not set | ||
899 | CONFIG_USB_EHCI_HCD=y | 957 | CONFIG_USB_EHCI_HCD=y |
958 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | ||
900 | # CONFIG_USB_ISP116X_HCD is not set | 959 | # CONFIG_USB_ISP116X_HCD is not set |
901 | CONFIG_USB_OHCI_HCD=y | 960 | CONFIG_USB_OHCI_HCD=y |
902 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set | 961 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set |
@@ -911,6 +970,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
911 | # | 970 | # |
912 | # CONFIG_USB_ACM is not set | 971 | # CONFIG_USB_ACM is not set |
913 | # CONFIG_USB_PRINTER is not set | 972 | # CONFIG_USB_PRINTER is not set |
973 | # CONFIG_USB_WDM is not set | ||
974 | # CONFIG_USB_TMC is not set | ||
914 | 975 | ||
915 | # | 976 | # |
916 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 977 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -921,17 +982,25 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
921 | # | 982 | # |
922 | CONFIG_USB_STORAGE=y | 983 | CONFIG_USB_STORAGE=y |
923 | # CONFIG_USB_STORAGE_DEBUG is not set | 984 | # CONFIG_USB_STORAGE_DEBUG is not set |
985 | # CONFIG_USB_STORAGE_DATAFAB is not set | ||
924 | # CONFIG_USB_STORAGE_FREECOM is not set | 986 | # CONFIG_USB_STORAGE_FREECOM is not set |
925 | # CONFIG_USB_STORAGE_ISD200 is not set | 987 | # CONFIG_USB_STORAGE_ISD200 is not set |
926 | # CONFIG_USB_STORAGE_DPCM is not set | 988 | # CONFIG_USB_STORAGE_DPCM is not set |
989 | # CONFIG_USB_STORAGE_USBAT is not set | ||
990 | # CONFIG_USB_STORAGE_SDDR09 is not set | ||
991 | # CONFIG_USB_STORAGE_SDDR55 is not set | ||
992 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | ||
993 | # CONFIG_USB_STORAGE_ALAUDA is not set | ||
994 | # CONFIG_USB_STORAGE_ONETOUCH is not set | ||
927 | # CONFIG_USB_STORAGE_KARMA is not set | 995 | # CONFIG_USB_STORAGE_KARMA is not set |
996 | # CONFIG_USB_STORAGE_CYPRESS_ATACB is not set | ||
928 | # CONFIG_USB_LIBUSUAL is not set | 997 | # CONFIG_USB_LIBUSUAL is not set |
929 | 998 | ||
930 | # | 999 | # |
931 | # USB Imaging devices | 1000 | # USB Imaging devices |
932 | # | 1001 | # |
1002 | # CONFIG_USB_MDC800 is not set | ||
933 | # CONFIG_USB_MICROTEK is not set | 1003 | # CONFIG_USB_MICROTEK is not set |
934 | CONFIG_USB_MON=y | ||
935 | 1004 | ||
936 | # | 1005 | # |
937 | # USB port drivers | 1006 | # USB port drivers |
@@ -943,6 +1012,10 @@ CONFIG_USB_MON=y | |||
943 | # | 1012 | # |
944 | # CONFIG_USB_EMI62 is not set | 1013 | # CONFIG_USB_EMI62 is not set |
945 | # CONFIG_USB_EMI26 is not set | 1014 | # CONFIG_USB_EMI26 is not set |
1015 | # CONFIG_USB_ADUTUX is not set | ||
1016 | # CONFIG_USB_SEVSEG is not set | ||
1017 | # CONFIG_USB_RIO500 is not set | ||
1018 | # CONFIG_USB_LEGOTOWER is not set | ||
946 | # CONFIG_USB_LCD is not set | 1019 | # CONFIG_USB_LCD is not set |
947 | # CONFIG_USB_BERRY_CHARGE is not set | 1020 | # CONFIG_USB_BERRY_CHARGE is not set |
948 | # CONFIG_USB_LED is not set | 1021 | # CONFIG_USB_LED is not set |
@@ -956,17 +1029,19 @@ CONFIG_USB_MON=y | |||
956 | # CONFIG_USB_LD is not set | 1029 | # CONFIG_USB_LD is not set |
957 | # CONFIG_USB_TRANCEVIBRATOR is not set | 1030 | # CONFIG_USB_TRANCEVIBRATOR is not set |
958 | # CONFIG_USB_IOWARRIOR is not set | 1031 | # CONFIG_USB_IOWARRIOR is not set |
1032 | # CONFIG_USB_TEST is not set | ||
1033 | # CONFIG_USB_ISIGHTFW is not set | ||
1034 | # CONFIG_USB_VST is not set | ||
959 | # CONFIG_USB_GADGET is not set | 1035 | # CONFIG_USB_GADGET is not set |
960 | # CONFIG_MMC is not set | 1036 | # CONFIG_MMC is not set |
961 | # CONFIG_MEMSTICK is not set | 1037 | # CONFIG_MEMSTICK is not set |
962 | # CONFIG_NEW_LEDS is not set | 1038 | # CONFIG_NEW_LEDS is not set |
1039 | # CONFIG_ACCESSIBILITY is not set | ||
963 | # CONFIG_INFINIBAND is not set | 1040 | # CONFIG_INFINIBAND is not set |
964 | # CONFIG_RTC_CLASS is not set | 1041 | # CONFIG_RTC_CLASS is not set |
965 | 1042 | # CONFIG_DMADEVICES is not set | |
966 | # | ||
967 | # Userspace I/O | ||
968 | # | ||
969 | # CONFIG_UIO is not set | 1043 | # CONFIG_UIO is not set |
1044 | # CONFIG_STAGING is not set | ||
970 | 1045 | ||
971 | # | 1046 | # |
972 | # File systems | 1047 | # File systems |
@@ -975,9 +1050,11 @@ CONFIG_EXT2_FS=y | |||
975 | # CONFIG_EXT2_FS_XATTR is not set | 1050 | # CONFIG_EXT2_FS_XATTR is not set |
976 | # CONFIG_EXT2_FS_XIP is not set | 1051 | # CONFIG_EXT2_FS_XIP is not set |
977 | # CONFIG_EXT3_FS is not set | 1052 | # CONFIG_EXT3_FS is not set |
1053 | # CONFIG_EXT4_FS is not set | ||
978 | # CONFIG_REISERFS_FS is not set | 1054 | # CONFIG_REISERFS_FS is not set |
979 | # CONFIG_JFS_FS is not set | 1055 | # CONFIG_JFS_FS is not set |
980 | # CONFIG_FS_POSIX_ACL is not set | 1056 | # CONFIG_FS_POSIX_ACL is not set |
1057 | CONFIG_FILE_LOCKING=y | ||
981 | # CONFIG_XFS_FS is not set | 1058 | # CONFIG_XFS_FS is not set |
982 | # CONFIG_OCFS2_FS is not set | 1059 | # CONFIG_OCFS2_FS is not set |
983 | # CONFIG_DNOTIFY is not set | 1060 | # CONFIG_DNOTIFY is not set |
@@ -1010,6 +1087,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
1010 | CONFIG_PROC_FS=y | 1087 | CONFIG_PROC_FS=y |
1011 | CONFIG_PROC_KCORE=y | 1088 | CONFIG_PROC_KCORE=y |
1012 | CONFIG_PROC_SYSCTL=y | 1089 | CONFIG_PROC_SYSCTL=y |
1090 | CONFIG_PROC_PAGE_MONITOR=y | ||
1013 | CONFIG_SYSFS=y | 1091 | CONFIG_SYSFS=y |
1014 | CONFIG_TMPFS=y | 1092 | CONFIG_TMPFS=y |
1015 | # CONFIG_TMPFS_POSIX_ACL is not set | 1093 | # CONFIG_TMPFS_POSIX_ACL is not set |
@@ -1025,6 +1103,7 @@ CONFIG_TMPFS=y | |||
1025 | CONFIG_CRAMFS=y | 1103 | CONFIG_CRAMFS=y |
1026 | # CONFIG_VXFS_FS is not set | 1104 | # CONFIG_VXFS_FS is not set |
1027 | # CONFIG_MINIX_FS is not set | 1105 | # CONFIG_MINIX_FS is not set |
1106 | # CONFIG_OMFS_FS is not set | ||
1028 | # CONFIG_HPFS_FS is not set | 1107 | # CONFIG_HPFS_FS is not set |
1029 | # CONFIG_QNX4FS_FS is not set | 1108 | # CONFIG_QNX4FS_FS is not set |
1030 | # CONFIG_ROMFS_FS is not set | 1109 | # CONFIG_ROMFS_FS is not set |
@@ -1034,9 +1113,8 @@ CONFIG_NETWORK_FILESYSTEMS=y | |||
1034 | CONFIG_NFS_FS=y | 1113 | CONFIG_NFS_FS=y |
1035 | CONFIG_NFS_V3=y | 1114 | CONFIG_NFS_V3=y |
1036 | # CONFIG_NFS_V3_ACL is not set | 1115 | # CONFIG_NFS_V3_ACL is not set |
1037 | # CONFIG_NFS_DIRECTIO is not set | ||
1038 | # CONFIG_NFSD is not set | ||
1039 | CONFIG_ROOT_NFS=y | 1116 | CONFIG_ROOT_NFS=y |
1117 | # CONFIG_NFSD is not set | ||
1040 | CONFIG_LOCKD=y | 1118 | CONFIG_LOCKD=y |
1041 | CONFIG_LOCKD_V4=y | 1119 | CONFIG_LOCKD_V4=y |
1042 | CONFIG_NFS_COMMON=y | 1120 | CONFIG_NFS_COMMON=y |
@@ -1099,12 +1177,20 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y | |||
1099 | # CONFIG_PRINTK_TIME is not set | 1177 | # CONFIG_PRINTK_TIME is not set |
1100 | CONFIG_ENABLE_WARN_DEPRECATED=y | 1178 | CONFIG_ENABLE_WARN_DEPRECATED=y |
1101 | CONFIG_ENABLE_MUST_CHECK=y | 1179 | CONFIG_ENABLE_MUST_CHECK=y |
1180 | CONFIG_FRAME_WARN=1024 | ||
1102 | # CONFIG_MAGIC_SYSRQ is not set | 1181 | # CONFIG_MAGIC_SYSRQ is not set |
1103 | # CONFIG_UNUSED_SYMBOLS is not set | 1182 | # CONFIG_UNUSED_SYMBOLS is not set |
1104 | CONFIG_DEBUG_FS=y | 1183 | CONFIG_DEBUG_FS=y |
1105 | # CONFIG_HEADERS_CHECK is not set | 1184 | # CONFIG_HEADERS_CHECK is not set |
1106 | # CONFIG_DEBUG_KERNEL is not set | 1185 | # CONFIG_DEBUG_KERNEL is not set |
1107 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1186 | # CONFIG_DEBUG_BUGVERBOSE is not set |
1187 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
1188 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
1189 | # CONFIG_LATENCYTOP is not set | ||
1190 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
1191 | CONFIG_NOP_TRACER=y | ||
1192 | CONFIG_HAVE_FTRACE=y | ||
1193 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
1108 | # CONFIG_SAMPLES is not set | 1194 | # CONFIG_SAMPLES is not set |
1109 | # CONFIG_SH_STANDARD_BIOS is not set | 1195 | # CONFIG_SH_STANDARD_BIOS is not set |
1110 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 1196 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
@@ -1115,45 +1201,86 @@ CONFIG_DEBUG_FS=y | |||
1115 | # | 1201 | # |
1116 | # CONFIG_KEYS is not set | 1202 | # CONFIG_KEYS is not set |
1117 | # CONFIG_SECURITY is not set | 1203 | # CONFIG_SECURITY is not set |
1204 | # CONFIG_SECURITYFS is not set | ||
1205 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
1118 | CONFIG_CRYPTO=y | 1206 | CONFIG_CRYPTO=y |
1119 | # CONFIG_CRYPTO_SEQIV is not set | 1207 | |
1208 | # | ||
1209 | # Crypto core or helper | ||
1210 | # | ||
1211 | # CONFIG_CRYPTO_FIPS is not set | ||
1120 | # CONFIG_CRYPTO_MANAGER is not set | 1212 | # CONFIG_CRYPTO_MANAGER is not set |
1121 | # CONFIG_CRYPTO_HMAC is not set | ||
1122 | # CONFIG_CRYPTO_NULL is not set | 1213 | # CONFIG_CRYPTO_NULL is not set |
1214 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1215 | # CONFIG_CRYPTO_AUTHENC is not set | ||
1216 | # CONFIG_CRYPTO_TEST is not set | ||
1217 | |||
1218 | # | ||
1219 | # Authenticated Encryption with Associated Data | ||
1220 | # | ||
1221 | # CONFIG_CRYPTO_CCM is not set | ||
1222 | # CONFIG_CRYPTO_GCM is not set | ||
1223 | # CONFIG_CRYPTO_SEQIV is not set | ||
1224 | |||
1225 | # | ||
1226 | # Block modes | ||
1227 | # | ||
1228 | # CONFIG_CRYPTO_CBC is not set | ||
1229 | # CONFIG_CRYPTO_CTR is not set | ||
1230 | # CONFIG_CRYPTO_CTS is not set | ||
1231 | # CONFIG_CRYPTO_ECB is not set | ||
1232 | # CONFIG_CRYPTO_PCBC is not set | ||
1233 | |||
1234 | # | ||
1235 | # Hash modes | ||
1236 | # | ||
1237 | # CONFIG_CRYPTO_HMAC is not set | ||
1238 | |||
1239 | # | ||
1240 | # Digest | ||
1241 | # | ||
1242 | # CONFIG_CRYPTO_CRC32C is not set | ||
1123 | # CONFIG_CRYPTO_MD4 is not set | 1243 | # CONFIG_CRYPTO_MD4 is not set |
1124 | # CONFIG_CRYPTO_MD5 is not set | 1244 | # CONFIG_CRYPTO_MD5 is not set |
1245 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
1246 | # CONFIG_CRYPTO_RMD128 is not set | ||
1247 | # CONFIG_CRYPTO_RMD160 is not set | ||
1248 | # CONFIG_CRYPTO_RMD256 is not set | ||
1249 | # CONFIG_CRYPTO_RMD320 is not set | ||
1125 | # CONFIG_CRYPTO_SHA1 is not set | 1250 | # CONFIG_CRYPTO_SHA1 is not set |
1126 | # CONFIG_CRYPTO_SHA256 is not set | 1251 | # CONFIG_CRYPTO_SHA256 is not set |
1127 | # CONFIG_CRYPTO_SHA512 is not set | 1252 | # CONFIG_CRYPTO_SHA512 is not set |
1128 | # CONFIG_CRYPTO_WP512 is not set | ||
1129 | # CONFIG_CRYPTO_TGR192 is not set | 1253 | # CONFIG_CRYPTO_TGR192 is not set |
1130 | # CONFIG_CRYPTO_ECB is not set | 1254 | # CONFIG_CRYPTO_WP512 is not set |
1131 | # CONFIG_CRYPTO_CBC is not set | 1255 | |
1132 | # CONFIG_CRYPTO_PCBC is not set | 1256 | # |
1133 | # CONFIG_CRYPTO_CTR is not set | 1257 | # Ciphers |
1134 | # CONFIG_CRYPTO_GCM is not set | 1258 | # |
1135 | # CONFIG_CRYPTO_CCM is not set | ||
1136 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1137 | # CONFIG_CRYPTO_DES is not set | ||
1138 | # CONFIG_CRYPTO_FCRYPT is not set | ||
1139 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
1140 | # CONFIG_CRYPTO_TWOFISH is not set | ||
1141 | # CONFIG_CRYPTO_SERPENT is not set | ||
1142 | # CONFIG_CRYPTO_AES is not set | 1259 | # CONFIG_CRYPTO_AES is not set |
1260 | # CONFIG_CRYPTO_ANUBIS is not set | ||
1261 | # CONFIG_CRYPTO_ARC4 is not set | ||
1262 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
1263 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1143 | # CONFIG_CRYPTO_CAST5 is not set | 1264 | # CONFIG_CRYPTO_CAST5 is not set |
1144 | # CONFIG_CRYPTO_CAST6 is not set | 1265 | # CONFIG_CRYPTO_CAST6 is not set |
1145 | # CONFIG_CRYPTO_TEA is not set | 1266 | # CONFIG_CRYPTO_DES is not set |
1146 | # CONFIG_CRYPTO_ARC4 is not set | 1267 | # CONFIG_CRYPTO_FCRYPT is not set |
1147 | # CONFIG_CRYPTO_KHAZAD is not set | 1268 | # CONFIG_CRYPTO_KHAZAD is not set |
1148 | # CONFIG_CRYPTO_ANUBIS is not set | ||
1149 | # CONFIG_CRYPTO_SEED is not set | 1269 | # CONFIG_CRYPTO_SEED is not set |
1270 | # CONFIG_CRYPTO_SERPENT is not set | ||
1271 | # CONFIG_CRYPTO_TEA is not set | ||
1272 | # CONFIG_CRYPTO_TWOFISH is not set | ||
1273 | |||
1274 | # | ||
1275 | # Compression | ||
1276 | # | ||
1150 | # CONFIG_CRYPTO_DEFLATE is not set | 1277 | # CONFIG_CRYPTO_DEFLATE is not set |
1151 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
1152 | # CONFIG_CRYPTO_CRC32C is not set | ||
1153 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1154 | # CONFIG_CRYPTO_TEST is not set | ||
1155 | # CONFIG_CRYPTO_AUTHENC is not set | ||
1156 | # CONFIG_CRYPTO_LZO is not set | 1278 | # CONFIG_CRYPTO_LZO is not set |
1279 | |||
1280 | # | ||
1281 | # Random Number Generation | ||
1282 | # | ||
1283 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
1157 | CONFIG_CRYPTO_HW=y | 1284 | CONFIG_CRYPTO_HW=y |
1158 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 1285 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
1159 | 1286 | ||
@@ -1163,6 +1290,7 @@ CONFIG_CRYPTO_HW=y | |||
1163 | CONFIG_BITREVERSE=y | 1290 | CONFIG_BITREVERSE=y |
1164 | # CONFIG_CRC_CCITT is not set | 1291 | # CONFIG_CRC_CCITT is not set |
1165 | # CONFIG_CRC16 is not set | 1292 | # CONFIG_CRC16 is not set |
1293 | # CONFIG_CRC_T10DIF is not set | ||
1166 | # CONFIG_CRC_ITU_T is not set | 1294 | # CONFIG_CRC_ITU_T is not set |
1167 | CONFIG_CRC32=y | 1295 | CONFIG_CRC32=y |
1168 | # CONFIG_CRC7 is not set | 1296 | # CONFIG_CRC7 is not set |
diff --git a/arch/sh/configs/sh03_defconfig b/arch/sh/configs/sh03_defconfig index 9fd5ea7304e5..95f0f5d5b631 100644 --- a/arch/sh/configs/sh03_defconfig +++ b/arch/sh/configs/sh03_defconfig | |||
@@ -1,41 +1,56 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.18 | 3 | # Linux kernel version: 2.6.27 |
4 | # Tue Oct 3 12:13:26 2006 | 4 | # Wed Oct 22 19:31:54 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | ||
8 | CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig" | ||
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
10 | CONFIG_GENERIC_BUG=y | ||
8 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
9 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
10 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
11 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
12 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
17 | CONFIG_GENERIC_TIME=y | ||
18 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
19 | CONFIG_SYS_SUPPORTS_PCI=y | ||
20 | CONFIG_STACKTRACE_SUPPORT=y | ||
21 | CONFIG_LOCKDEP_SUPPORT=y | ||
22 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
23 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
24 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
25 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | ||
13 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 26 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
14 | 27 | ||
15 | # | 28 | # |
16 | # Code maturity level options | 29 | # General setup |
17 | # | 30 | # |
18 | CONFIG_EXPERIMENTAL=y | 31 | CONFIG_EXPERIMENTAL=y |
19 | CONFIG_BROKEN_ON_SMP=y | 32 | CONFIG_BROKEN_ON_SMP=y |
20 | CONFIG_LOCK_KERNEL=y | 33 | CONFIG_LOCK_KERNEL=y |
21 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 34 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
22 | |||
23 | # | ||
24 | # General setup | ||
25 | # | ||
26 | CONFIG_LOCALVERSION="" | 35 | CONFIG_LOCALVERSION="" |
27 | CONFIG_LOCALVERSION_AUTO=y | 36 | CONFIG_LOCALVERSION_AUTO=y |
28 | CONFIG_SWAP=y | 37 | CONFIG_SWAP=y |
29 | CONFIG_SYSVIPC=y | 38 | CONFIG_SYSVIPC=y |
30 | # CONFIG_IPC_NS is not set | 39 | CONFIG_SYSVIPC_SYSCTL=y |
31 | CONFIG_POSIX_MQUEUE=y | 40 | CONFIG_POSIX_MQUEUE=y |
32 | CONFIG_BSD_PROCESS_ACCT=y | 41 | CONFIG_BSD_PROCESS_ACCT=y |
33 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | 42 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set |
34 | # CONFIG_TASKSTATS is not set | 43 | # CONFIG_TASKSTATS is not set |
35 | # CONFIG_UTS_NS is not set | ||
36 | # CONFIG_AUDIT is not set | 44 | # CONFIG_AUDIT is not set |
37 | # CONFIG_IKCONFIG is not set | 45 | # CONFIG_IKCONFIG is not set |
46 | CONFIG_LOG_BUF_SHIFT=14 | ||
47 | # CONFIG_CGROUPS is not set | ||
48 | # CONFIG_GROUP_SCHED is not set | ||
49 | CONFIG_SYSFS_DEPRECATED=y | ||
50 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
38 | # CONFIG_RELAY is not set | 51 | # CONFIG_RELAY is not set |
52 | # CONFIG_NAMESPACES is not set | ||
53 | CONFIG_BLK_DEV_INITRD=y | ||
39 | CONFIG_INITRAMFS_SOURCE="" | 54 | CONFIG_INITRAMFS_SOURCE="" |
40 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 55 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
41 | CONFIG_SYSCTL=y | 56 | CONFIG_SYSCTL=y |
@@ -48,34 +63,49 @@ CONFIG_HOTPLUG=y | |||
48 | CONFIG_PRINTK=y | 63 | CONFIG_PRINTK=y |
49 | CONFIG_BUG=y | 64 | CONFIG_BUG=y |
50 | CONFIG_ELF_CORE=y | 65 | CONFIG_ELF_CORE=y |
66 | CONFIG_COMPAT_BRK=y | ||
51 | CONFIG_BASE_FULL=y | 67 | CONFIG_BASE_FULL=y |
52 | CONFIG_FUTEX=y | 68 | CONFIG_FUTEX=y |
69 | CONFIG_ANON_INODES=y | ||
53 | CONFIG_EPOLL=y | 70 | CONFIG_EPOLL=y |
71 | CONFIG_SIGNALFD=y | ||
72 | CONFIG_TIMERFD=y | ||
73 | CONFIG_EVENTFD=y | ||
54 | CONFIG_SHMEM=y | 74 | CONFIG_SHMEM=y |
55 | CONFIG_SLAB=y | 75 | CONFIG_AIO=y |
56 | CONFIG_VM_EVENT_COUNTERS=y | 76 | CONFIG_VM_EVENT_COUNTERS=y |
77 | CONFIG_PCI_QUIRKS=y | ||
78 | CONFIG_SLAB=y | ||
79 | # CONFIG_SLUB is not set | ||
80 | # CONFIG_SLOB is not set | ||
81 | CONFIG_PROFILING=y | ||
82 | # CONFIG_MARKERS is not set | ||
83 | CONFIG_OPROFILE=m | ||
84 | CONFIG_HAVE_OPROFILE=y | ||
85 | # CONFIG_KPROBES is not set | ||
86 | CONFIG_HAVE_IOREMAP_PROT=y | ||
87 | CONFIG_HAVE_KPROBES=y | ||
88 | CONFIG_HAVE_KRETPROBES=y | ||
89 | CONFIG_HAVE_ARCH_TRACEHOOK=y | ||
90 | CONFIG_HAVE_CLK=y | ||
91 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
92 | CONFIG_SLABINFO=y | ||
57 | CONFIG_RT_MUTEXES=y | 93 | CONFIG_RT_MUTEXES=y |
58 | # CONFIG_TINY_SHMEM is not set | 94 | # CONFIG_TINY_SHMEM is not set |
59 | CONFIG_BASE_SMALL=0 | 95 | CONFIG_BASE_SMALL=0 |
60 | # CONFIG_SLOB is not set | ||
61 | |||
62 | # | ||
63 | # Loadable module support | ||
64 | # | ||
65 | CONFIG_MODULES=y | 96 | CONFIG_MODULES=y |
97 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
66 | CONFIG_MODULE_UNLOAD=y | 98 | CONFIG_MODULE_UNLOAD=y |
67 | CONFIG_MODULE_FORCE_UNLOAD=y | 99 | CONFIG_MODULE_FORCE_UNLOAD=y |
68 | CONFIG_MODVERSIONS=y | 100 | CONFIG_MODVERSIONS=y |
69 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 101 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
70 | CONFIG_KMOD=y | 102 | CONFIG_KMOD=y |
71 | |||
72 | # | ||
73 | # Block layer | ||
74 | # | ||
75 | CONFIG_BLOCK=y | 103 | CONFIG_BLOCK=y |
76 | # CONFIG_LBD is not set | 104 | # CONFIG_LBD is not set |
77 | # CONFIG_BLK_DEV_IO_TRACE is not set | 105 | # CONFIG_BLK_DEV_IO_TRACE is not set |
78 | # CONFIG_LSF is not set | 106 | # CONFIG_LSF is not set |
107 | # CONFIG_BLK_DEV_BSG is not set | ||
108 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
79 | 109 | ||
80 | # | 110 | # |
81 | # IO Schedulers | 111 | # IO Schedulers |
@@ -89,59 +119,27 @@ CONFIG_DEFAULT_AS=y | |||
89 | # CONFIG_DEFAULT_CFQ is not set | 119 | # CONFIG_DEFAULT_CFQ is not set |
90 | # CONFIG_DEFAULT_NOOP is not set | 120 | # CONFIG_DEFAULT_NOOP is not set |
91 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 121 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
122 | CONFIG_CLASSIC_RCU=y | ||
123 | # CONFIG_FREEZER is not set | ||
92 | 124 | ||
93 | # | 125 | # |
94 | # System type | 126 | # System type |
95 | # | 127 | # |
96 | # CONFIG_SH_SOLUTION_ENGINE is not set | ||
97 | # CONFIG_SH_7751_SOLUTION_ENGINE is not set | ||
98 | # CONFIG_SH_7300_SOLUTION_ENGINE is not set | ||
99 | # CONFIG_SH_7343_SOLUTION_ENGINE is not set | ||
100 | # CONFIG_SH_73180_SOLUTION_ENGINE is not set | ||
101 | # CONFIG_SH_7751_SYSTEMH is not set | ||
102 | # CONFIG_SH_HP6XX is not set | ||
103 | # CONFIG_SH_EC3104 is not set | ||
104 | # CONFIG_SH_SATURN is not set | ||
105 | # CONFIG_SH_DREAMCAST is not set | ||
106 | # CONFIG_SH_BIGSUR is not set | ||
107 | # CONFIG_SH_MPC1211 is not set | ||
108 | CONFIG_SH_SH03=y | ||
109 | # CONFIG_SH_SECUREEDGE5410 is not set | ||
110 | # CONFIG_SH_HS7751RVOIP is not set | ||
111 | # CONFIG_SH_7710VOIPGW is not set | ||
112 | # CONFIG_SH_RTS7751R2D is not set | ||
113 | # CONFIG_SH_R7780RP is not set | ||
114 | # CONFIG_SH_EDOSK7705 is not set | ||
115 | # CONFIG_SH_SH4202_MICRODEV is not set | ||
116 | # CONFIG_SH_LANDISK is not set | ||
117 | # CONFIG_SH_TITAN is not set | ||
118 | # CONFIG_SH_SHMIN is not set | ||
119 | # CONFIG_SH_UNKNOWN is not set | ||
120 | |||
121 | # | ||
122 | # Processor selection | ||
123 | # | ||
124 | CONFIG_CPU_SH4=y | 128 | CONFIG_CPU_SH4=y |
125 | 129 | # CONFIG_CPU_SUBTYPE_SH7619 is not set | |
126 | # | 130 | # CONFIG_CPU_SUBTYPE_SH7203 is not set |
127 | # SH-2 Processor Support | 131 | # CONFIG_CPU_SUBTYPE_SH7206 is not set |
128 | # | 132 | # CONFIG_CPU_SUBTYPE_SH7263 is not set |
129 | # CONFIG_CPU_SUBTYPE_SH7604 is not set | 133 | # CONFIG_CPU_SUBTYPE_MXG is not set |
130 | |||
131 | # | ||
132 | # SH-3 Processor Support | ||
133 | # | ||
134 | # CONFIG_CPU_SUBTYPE_SH7300 is not set | ||
135 | # CONFIG_CPU_SUBTYPE_SH7705 is not set | 134 | # CONFIG_CPU_SUBTYPE_SH7705 is not set |
136 | # CONFIG_CPU_SUBTYPE_SH7706 is not set | 135 | # CONFIG_CPU_SUBTYPE_SH7706 is not set |
137 | # CONFIG_CPU_SUBTYPE_SH7707 is not set | 136 | # CONFIG_CPU_SUBTYPE_SH7707 is not set |
138 | # CONFIG_CPU_SUBTYPE_SH7708 is not set | 137 | # CONFIG_CPU_SUBTYPE_SH7708 is not set |
139 | # CONFIG_CPU_SUBTYPE_SH7709 is not set | 138 | # CONFIG_CPU_SUBTYPE_SH7709 is not set |
140 | # CONFIG_CPU_SUBTYPE_SH7710 is not set | 139 | # CONFIG_CPU_SUBTYPE_SH7710 is not set |
141 | 140 | # CONFIG_CPU_SUBTYPE_SH7712 is not set | |
142 | # | 141 | # CONFIG_CPU_SUBTYPE_SH7720 is not set |
143 | # SH-4 Processor Support | 142 | # CONFIG_CPU_SUBTYPE_SH7721 is not set |
144 | # | ||
145 | # CONFIG_CPU_SUBTYPE_SH7750 is not set | 143 | # CONFIG_CPU_SUBTYPE_SH7750 is not set |
146 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | 144 | # CONFIG_CPU_SUBTYPE_SH7091 is not set |
147 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | 145 | # CONFIG_CPU_SUBTYPE_SH7750R is not set |
@@ -150,69 +148,90 @@ CONFIG_CPU_SUBTYPE_SH7751=y | |||
150 | # CONFIG_CPU_SUBTYPE_SH7751R is not set | 148 | # CONFIG_CPU_SUBTYPE_SH7751R is not set |
151 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | 149 | # CONFIG_CPU_SUBTYPE_SH7760 is not set |
152 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | 150 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set |
153 | 151 | # CONFIG_CPU_SUBTYPE_SH7723 is not set | |
154 | # | 152 | # CONFIG_CPU_SUBTYPE_SH7763 is not set |
155 | # ST40 Processor Support | ||
156 | # | ||
157 | # CONFIG_CPU_SUBTYPE_ST40STB1 is not set | ||
158 | # CONFIG_CPU_SUBTYPE_ST40GX1 is not set | ||
159 | |||
160 | # | ||
161 | # SH-4A Processor Support | ||
162 | # | ||
163 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | 153 | # CONFIG_CPU_SUBTYPE_SH7770 is not set |
164 | # CONFIG_CPU_SUBTYPE_SH7780 is not set | 154 | # CONFIG_CPU_SUBTYPE_SH7780 is not set |
165 | 155 | # CONFIG_CPU_SUBTYPE_SH7785 is not set | |
166 | # | 156 | # CONFIG_CPU_SUBTYPE_SHX3 is not set |
167 | # SH4AL-DSP Processor Support | ||
168 | # | ||
169 | # CONFIG_CPU_SUBTYPE_SH73180 is not set | ||
170 | # CONFIG_CPU_SUBTYPE_SH7343 is not set | 157 | # CONFIG_CPU_SUBTYPE_SH7343 is not set |
158 | # CONFIG_CPU_SUBTYPE_SH7722 is not set | ||
159 | # CONFIG_CPU_SUBTYPE_SH7366 is not set | ||
160 | # CONFIG_CPU_SUBTYPE_SH5_101 is not set | ||
161 | # CONFIG_CPU_SUBTYPE_SH5_103 is not set | ||
171 | 162 | ||
172 | # | 163 | # |
173 | # Memory management options | 164 | # Memory management options |
174 | # | 165 | # |
166 | CONFIG_QUICKLIST=y | ||
175 | CONFIG_MMU=y | 167 | CONFIG_MMU=y |
176 | CONFIG_PAGE_OFFSET=0x80000000 | 168 | CONFIG_PAGE_OFFSET=0x80000000 |
177 | CONFIG_MEMORY_START=0x08000000 | 169 | CONFIG_MEMORY_START=0x08000000 |
178 | CONFIG_MEMORY_SIZE=0x08000000 | 170 | CONFIG_MEMORY_SIZE=0x08000000 |
171 | CONFIG_29BIT=y | ||
179 | CONFIG_VSYSCALL=y | 172 | CONFIG_VSYSCALL=y |
173 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
174 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | ||
175 | CONFIG_ARCH_SPARSEMEM_DEFAULT=y | ||
176 | CONFIG_MAX_ACTIVE_REGIONS=1 | ||
177 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
178 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | ||
179 | CONFIG_PAGE_SIZE_4KB=y | ||
180 | # CONFIG_PAGE_SIZE_8KB is not set | ||
181 | # CONFIG_PAGE_SIZE_16KB is not set | ||
182 | # CONFIG_PAGE_SIZE_64KB is not set | ||
183 | CONFIG_ENTRY_OFFSET=0x00001000 | ||
180 | CONFIG_SELECT_MEMORY_MODEL=y | 184 | CONFIG_SELECT_MEMORY_MODEL=y |
181 | CONFIG_FLATMEM_MANUAL=y | 185 | CONFIG_FLATMEM_MANUAL=y |
182 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 186 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
183 | # CONFIG_SPARSEMEM_MANUAL is not set | 187 | # CONFIG_SPARSEMEM_MANUAL is not set |
184 | CONFIG_FLATMEM=y | 188 | CONFIG_FLATMEM=y |
185 | CONFIG_FLAT_NODE_MEM_MAP=y | 189 | CONFIG_FLAT_NODE_MEM_MAP=y |
186 | # CONFIG_SPARSEMEM_STATIC is not set | 190 | CONFIG_SPARSEMEM_STATIC=y |
191 | CONFIG_PAGEFLAGS_EXTENDED=y | ||
187 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 192 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
188 | # CONFIG_RESOURCES_64BIT is not set | 193 | # CONFIG_RESOURCES_64BIT is not set |
194 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
195 | CONFIG_ZONE_DMA_FLAG=0 | ||
196 | CONFIG_NR_QUICK=2 | ||
197 | CONFIG_UNEVICTABLE_LRU=y | ||
189 | 198 | ||
190 | # | 199 | # |
191 | # Cache configuration | 200 | # Cache configuration |
192 | # | 201 | # |
193 | # CONFIG_SH_DIRECT_MAPPED is not set | 202 | # CONFIG_SH_DIRECT_MAPPED is not set |
194 | # CONFIG_SH_WRITETHROUGH is not set | 203 | CONFIG_CACHE_WRITEBACK=y |
195 | # CONFIG_SH_OCRAM is not set | 204 | # CONFIG_CACHE_WRITETHROUGH is not set |
196 | CONFIG_CF_ENABLER=y | 205 | # CONFIG_CACHE_OFF is not set |
197 | CONFIG_CF_AREA5=y | ||
198 | # CONFIG_CF_AREA6 is not set | ||
199 | CONFIG_CF_BASE_ADDR=0xb4000000 | ||
200 | 206 | ||
201 | # | 207 | # |
202 | # Processor features | 208 | # Processor features |
203 | # | 209 | # |
204 | CONFIG_CPU_LITTLE_ENDIAN=y | 210 | CONFIG_CPU_LITTLE_ENDIAN=y |
211 | # CONFIG_CPU_BIG_ENDIAN is not set | ||
205 | CONFIG_SH_FPU=y | 212 | CONFIG_SH_FPU=y |
206 | # CONFIG_SH_DSP is not set | ||
207 | # CONFIG_SH_STORE_QUEUES is not set | 213 | # CONFIG_SH_STORE_QUEUES is not set |
208 | CONFIG_CPU_HAS_INTEVT=y | 214 | CONFIG_CPU_HAS_INTEVT=y |
215 | CONFIG_CPU_HAS_IPR_IRQ=y | ||
209 | CONFIG_CPU_HAS_SR_RB=y | 216 | CONFIG_CPU_HAS_SR_RB=y |
217 | CONFIG_CPU_HAS_PTEA=y | ||
218 | CONFIG_CPU_HAS_FPU=y | ||
210 | 219 | ||
211 | # | 220 | # |
212 | # Timer support | 221 | # Board support |
222 | # | ||
223 | # CONFIG_SH_7751_SOLUTION_ENGINE is not set | ||
224 | CONFIG_SH_SH03=y | ||
225 | |||
226 | # | ||
227 | # Timer and clock configuration | ||
213 | # | 228 | # |
214 | CONFIG_SH_TMU=y | 229 | CONFIG_SH_TMU=y |
230 | CONFIG_SH_TIMER_IRQ=16 | ||
215 | CONFIG_SH_PCLK_FREQ=60000000 | 231 | CONFIG_SH_PCLK_FREQ=60000000 |
232 | # CONFIG_NO_HZ is not set | ||
233 | # CONFIG_HIGH_RES_TIMERS is not set | ||
234 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
216 | 235 | ||
217 | # | 236 | # |
218 | # CPU Frequency scaling | 237 | # CPU Frequency scaling |
@@ -227,22 +246,31 @@ CONFIG_SH_PCLK_FREQ=60000000 | |||
227 | # | 246 | # |
228 | # Companion Chips | 247 | # Companion Chips |
229 | # | 248 | # |
230 | # CONFIG_HD6446X_SERIES is not set | 249 | |
250 | # | ||
251 | # Additional SuperH Device Drivers | ||
252 | # | ||
231 | CONFIG_HEARTBEAT=y | 253 | CONFIG_HEARTBEAT=y |
254 | # CONFIG_PUSH_SWITCH is not set | ||
232 | 255 | ||
233 | # | 256 | # |
234 | # Kernel features | 257 | # Kernel features |
235 | # | 258 | # |
236 | # CONFIG_HZ_100 is not set | 259 | # CONFIG_HZ_100 is not set |
237 | CONFIG_HZ_250=y | 260 | CONFIG_HZ_250=y |
261 | # CONFIG_HZ_300 is not set | ||
238 | # CONFIG_HZ_1000 is not set | 262 | # CONFIG_HZ_1000 is not set |
239 | CONFIG_HZ=250 | 263 | CONFIG_HZ=250 |
264 | # CONFIG_SCHED_HRTICK is not set | ||
240 | # CONFIG_KEXEC is not set | 265 | # CONFIG_KEXEC is not set |
241 | # CONFIG_SMP is not set | 266 | # CONFIG_CRASH_DUMP is not set |
267 | # CONFIG_SECCOMP is not set | ||
242 | # CONFIG_PREEMPT_NONE is not set | 268 | # CONFIG_PREEMPT_NONE is not set |
243 | # CONFIG_PREEMPT_VOLUNTARY is not set | 269 | # CONFIG_PREEMPT_VOLUNTARY is not set |
244 | CONFIG_PREEMPT=y | 270 | CONFIG_PREEMPT=y |
245 | CONFIG_PREEMPT_BKL=y | 271 | # CONFIG_PREEMPT_RCU is not set |
272 | CONFIG_GUSA=y | ||
273 | # CONFIG_GUSA_RB is not set | ||
246 | 274 | ||
247 | # | 275 | # |
248 | # Boot options | 276 | # Boot options |
@@ -256,20 +284,17 @@ CONFIG_CMDLINE="console=ttySC1,115200 mem=64M root=/dev/nfs" | |||
256 | # | 284 | # |
257 | # Bus options | 285 | # Bus options |
258 | # | 286 | # |
287 | CONFIG_CF_ENABLER=y | ||
288 | CONFIG_CF_AREA5=y | ||
289 | # CONFIG_CF_AREA6 is not set | ||
290 | CONFIG_CF_BASE_ADDR=0xb4000000 | ||
259 | CONFIG_PCI=y | 291 | CONFIG_PCI=y |
260 | CONFIG_SH_PCIDMA_NONCOHERENT=y | 292 | CONFIG_SH_PCIDMA_NONCOHERENT=y |
261 | CONFIG_PCI_AUTO=y | 293 | CONFIG_PCI_AUTO=y |
262 | CONFIG_PCI_AUTO_UPDATE_RESOURCES=y | 294 | CONFIG_PCI_AUTO_UPDATE_RESOURCES=y |
263 | # CONFIG_PCI_MULTITHREAD_PROBE is not set | 295 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
264 | 296 | CONFIG_PCI_LEGACY=y | |
265 | # | ||
266 | # PCCARD (PCMCIA/CardBus) support | ||
267 | # | ||
268 | # CONFIG_PCCARD is not set | 297 | # CONFIG_PCCARD is not set |
269 | |||
270 | # | ||
271 | # PCI Hotplug Support | ||
272 | # | ||
273 | CONFIG_HOTPLUG_PCI=m | 298 | CONFIG_HOTPLUG_PCI=m |
274 | # CONFIG_HOTPLUG_PCI_FAKE is not set | 299 | # CONFIG_HOTPLUG_PCI_FAKE is not set |
275 | # CONFIG_HOTPLUG_PCI_CPCI is not set | 300 | # CONFIG_HOTPLUG_PCI_CPCI is not set |
@@ -279,30 +304,24 @@ CONFIG_HOTPLUG_PCI=m | |||
279 | # Executable file formats | 304 | # Executable file formats |
280 | # | 305 | # |
281 | CONFIG_BINFMT_ELF=y | 306 | CONFIG_BINFMT_ELF=y |
282 | # CONFIG_BINFMT_FLAT is not set | 307 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set |
308 | # CONFIG_HAVE_AOUT is not set | ||
283 | CONFIG_BINFMT_MISC=y | 309 | CONFIG_BINFMT_MISC=y |
284 | |||
285 | # | ||
286 | # Power management options (EXPERIMENTAL) | ||
287 | # | ||
288 | # CONFIG_PM is not set | ||
289 | |||
290 | # | ||
291 | # Networking | ||
292 | # | ||
293 | CONFIG_NET=y | 310 | CONFIG_NET=y |
294 | 311 | ||
295 | # | 312 | # |
296 | # Networking options | 313 | # Networking options |
297 | # | 314 | # |
298 | # CONFIG_NETDEBUG is not set | ||
299 | CONFIG_PACKET=y | 315 | CONFIG_PACKET=y |
300 | # CONFIG_PACKET_MMAP is not set | 316 | # CONFIG_PACKET_MMAP is not set |
301 | CONFIG_UNIX=y | 317 | CONFIG_UNIX=y |
302 | CONFIG_XFRM=y | 318 | CONFIG_XFRM=y |
303 | # CONFIG_XFRM_USER is not set | 319 | # CONFIG_XFRM_USER is not set |
304 | # CONFIG_XFRM_SUB_POLICY is not set | 320 | # CONFIG_XFRM_SUB_POLICY is not set |
321 | # CONFIG_XFRM_MIGRATE is not set | ||
322 | # CONFIG_XFRM_STATISTICS is not set | ||
305 | CONFIG_NET_KEY=y | 323 | CONFIG_NET_KEY=y |
324 | # CONFIG_NET_KEY_MIGRATE is not set | ||
306 | CONFIG_INET=y | 325 | CONFIG_INET=y |
307 | CONFIG_IP_MULTICAST=y | 326 | CONFIG_IP_MULTICAST=y |
308 | # CONFIG_IP_ADVANCED_ROUTER is not set | 327 | # CONFIG_IP_ADVANCED_ROUTER is not set |
@@ -323,33 +342,23 @@ CONFIG_IP_PNP_RARP=y | |||
323 | # CONFIG_INET_TUNNEL is not set | 342 | # CONFIG_INET_TUNNEL is not set |
324 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | 343 | CONFIG_INET_XFRM_MODE_TRANSPORT=y |
325 | CONFIG_INET_XFRM_MODE_TUNNEL=y | 344 | CONFIG_INET_XFRM_MODE_TUNNEL=y |
345 | CONFIG_INET_XFRM_MODE_BEET=y | ||
346 | # CONFIG_INET_LRO is not set | ||
326 | CONFIG_INET_DIAG=y | 347 | CONFIG_INET_DIAG=y |
327 | CONFIG_INET_TCP_DIAG=y | 348 | CONFIG_INET_TCP_DIAG=y |
328 | # CONFIG_TCP_CONG_ADVANCED is not set | 349 | # CONFIG_TCP_CONG_ADVANCED is not set |
329 | CONFIG_TCP_CONG_CUBIC=y | 350 | CONFIG_TCP_CONG_CUBIC=y |
330 | CONFIG_DEFAULT_TCP_CONG="cubic" | 351 | CONFIG_DEFAULT_TCP_CONG="cubic" |
352 | # CONFIG_TCP_MD5SIG is not set | ||
331 | # CONFIG_IPV6 is not set | 353 | # CONFIG_IPV6 is not set |
332 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
333 | # CONFIG_INET6_TUNNEL is not set | ||
334 | # CONFIG_NETWORK_SECMARK is not set | 354 | # CONFIG_NETWORK_SECMARK is not set |
335 | # CONFIG_NETFILTER is not set | 355 | # CONFIG_NETFILTER is not set |
336 | |||
337 | # | ||
338 | # DCCP Configuration (EXPERIMENTAL) | ||
339 | # | ||
340 | # CONFIG_IP_DCCP is not set | 356 | # CONFIG_IP_DCCP is not set |
341 | |||
342 | # | ||
343 | # SCTP Configuration (EXPERIMENTAL) | ||
344 | # | ||
345 | # CONFIG_IP_SCTP is not set | 357 | # CONFIG_IP_SCTP is not set |
346 | |||
347 | # | ||
348 | # TIPC Configuration (EXPERIMENTAL) | ||
349 | # | ||
350 | # CONFIG_TIPC is not set | 358 | # CONFIG_TIPC is not set |
351 | # CONFIG_ATM is not set | 359 | # CONFIG_ATM is not set |
352 | # CONFIG_BRIDGE is not set | 360 | # CONFIG_BRIDGE is not set |
361 | # CONFIG_NET_DSA is not set | ||
353 | # CONFIG_VLAN_8021Q is not set | 362 | # CONFIG_VLAN_8021Q is not set |
354 | # CONFIG_DECNET is not set | 363 | # CONFIG_DECNET is not set |
355 | # CONFIG_LLC2 is not set | 364 | # CONFIG_LLC2 is not set |
@@ -359,10 +368,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
359 | # CONFIG_LAPB is not set | 368 | # CONFIG_LAPB is not set |
360 | # CONFIG_ECONET is not set | 369 | # CONFIG_ECONET is not set |
361 | # CONFIG_WAN_ROUTER is not set | 370 | # CONFIG_WAN_ROUTER is not set |
362 | |||
363 | # | ||
364 | # QoS and/or fair queueing | ||
365 | # | ||
366 | # CONFIG_NET_SCHED is not set | 371 | # CONFIG_NET_SCHED is not set |
367 | 372 | ||
368 | # | 373 | # |
@@ -370,9 +375,19 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
370 | # | 375 | # |
371 | # CONFIG_NET_PKTGEN is not set | 376 | # CONFIG_NET_PKTGEN is not set |
372 | # CONFIG_HAMRADIO is not set | 377 | # CONFIG_HAMRADIO is not set |
378 | # CONFIG_CAN is not set | ||
373 | # CONFIG_IRDA is not set | 379 | # CONFIG_IRDA is not set |
374 | # CONFIG_BT is not set | 380 | # CONFIG_BT is not set |
381 | # CONFIG_AF_RXRPC is not set | ||
382 | # CONFIG_PHONET is not set | ||
383 | CONFIG_WIRELESS=y | ||
384 | # CONFIG_CFG80211 is not set | ||
385 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
386 | # CONFIG_WIRELESS_EXT is not set | ||
387 | # CONFIG_MAC80211 is not set | ||
375 | # CONFIG_IEEE80211 is not set | 388 | # CONFIG_IEEE80211 is not set |
389 | # CONFIG_RFKILL is not set | ||
390 | # CONFIG_NET_9P is not set | ||
376 | 391 | ||
377 | # | 392 | # |
378 | # Device Drivers | 393 | # Device Drivers |
@@ -381,34 +396,15 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
381 | # | 396 | # |
382 | # Generic Driver Options | 397 | # Generic Driver Options |
383 | # | 398 | # |
399 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
384 | # CONFIG_STANDALONE is not set | 400 | # CONFIG_STANDALONE is not set |
385 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | 401 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set |
386 | # CONFIG_FW_LOADER is not set | 402 | # CONFIG_FW_LOADER is not set |
387 | # CONFIG_SYS_HYPERVISOR is not set | 403 | # CONFIG_SYS_HYPERVISOR is not set |
388 | |||
389 | # | ||
390 | # Connector - unified userspace <-> kernelspace linker | ||
391 | # | ||
392 | # CONFIG_CONNECTOR is not set | 404 | # CONFIG_CONNECTOR is not set |
393 | |||
394 | # | ||
395 | # Memory Technology Devices (MTD) | ||
396 | # | ||
397 | # CONFIG_MTD is not set | 405 | # CONFIG_MTD is not set |
398 | |||
399 | # | ||
400 | # Parallel port support | ||
401 | # | ||
402 | # CONFIG_PARPORT is not set | 406 | # CONFIG_PARPORT is not set |
403 | 407 | CONFIG_BLK_DEV=y | |
404 | # | ||
405 | # Plug and Play support | ||
406 | # | ||
407 | |||
408 | # | ||
409 | # Block devices | ||
410 | # | ||
411 | # CONFIG_BLK_CPQ_DA is not set | ||
412 | # CONFIG_BLK_CPQ_CISS_DA is not set | 408 | # CONFIG_BLK_CPQ_CISS_DA is not set |
413 | # CONFIG_BLK_DEV_DAC960 is not set | 409 | # CONFIG_BLK_DEV_DAC960 is not set |
414 | # CONFIG_BLK_DEV_UMEM is not set | 410 | # CONFIG_BLK_DEV_UMEM is not set |
@@ -420,45 +416,76 @@ CONFIG_BLK_DEV_NBD=y | |||
420 | CONFIG_BLK_DEV_RAM=y | 416 | CONFIG_BLK_DEV_RAM=y |
421 | CONFIG_BLK_DEV_RAM_COUNT=16 | 417 | CONFIG_BLK_DEV_RAM_COUNT=16 |
422 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 418 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
423 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 419 | # CONFIG_BLK_DEV_XIP is not set |
424 | CONFIG_BLK_DEV_INITRD=y | ||
425 | # CONFIG_CDROM_PKTCDVD is not set | 420 | # CONFIG_CDROM_PKTCDVD is not set |
426 | # CONFIG_ATA_OVER_ETH is not set | 421 | # CONFIG_ATA_OVER_ETH is not set |
427 | 422 | # CONFIG_BLK_DEV_HD is not set | |
428 | # | 423 | CONFIG_MISC_DEVICES=y |
429 | # ATA/ATAPI/MFM/RLL support | 424 | # CONFIG_PHANTOM is not set |
430 | # | 425 | # CONFIG_EEPROM_93CX6 is not set |
426 | # CONFIG_SGI_IOC4 is not set | ||
427 | # CONFIG_TIFM_CORE is not set | ||
428 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
429 | # CONFIG_HP_ILO is not set | ||
430 | CONFIG_HAVE_IDE=y | ||
431 | CONFIG_IDE=y | 431 | CONFIG_IDE=y |
432 | CONFIG_IDE_MAX_HWIFS=4 | ||
433 | CONFIG_BLK_DEV_IDE=y | ||
434 | 432 | ||
435 | # | 433 | # |
436 | # Please see Documentation/ide.txt for help/info on IDE drives | 434 | # Please see Documentation/ide/ide.txt for help/info on IDE drives |
437 | # | 435 | # |
436 | CONFIG_IDE_ATAPI=y | ||
438 | # CONFIG_BLK_DEV_IDE_SATA is not set | 437 | # CONFIG_BLK_DEV_IDE_SATA is not set |
439 | CONFIG_BLK_DEV_IDEDISK=y | 438 | CONFIG_IDE_GD=y |
440 | CONFIG_IDEDISK_MULTI_MODE=y | 439 | CONFIG_IDE_GD_ATA=y |
440 | # CONFIG_IDE_GD_ATAPI is not set | ||
441 | CONFIG_BLK_DEV_IDECD=m | 441 | CONFIG_BLK_DEV_IDECD=m |
442 | CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y | ||
442 | CONFIG_BLK_DEV_IDETAPE=m | 443 | CONFIG_BLK_DEV_IDETAPE=m |
443 | CONFIG_BLK_DEV_IDEFLOPPY=m | ||
444 | # CONFIG_BLK_DEV_IDESCSI is not set | 444 | # CONFIG_BLK_DEV_IDESCSI is not set |
445 | # CONFIG_IDE_TASK_IOCTL is not set | 445 | # CONFIG_IDE_TASK_IOCTL is not set |
446 | CONFIG_IDE_PROC_FS=y | ||
446 | 447 | ||
447 | # | 448 | # |
448 | # IDE chipset support/bugfixes | 449 | # IDE chipset support/bugfixes |
449 | # | 450 | # |
450 | CONFIG_IDE_GENERIC=y | 451 | # CONFIG_BLK_DEV_PLATFORM is not set |
451 | # CONFIG_BLK_DEV_IDEPCI is not set | 452 | |
452 | # CONFIG_IDE_ARM is not set | 453 | # |
454 | # PCI IDE chipsets support | ||
455 | # | ||
456 | # CONFIG_BLK_DEV_GENERIC is not set | ||
457 | # CONFIG_BLK_DEV_OPTI621 is not set | ||
458 | # CONFIG_BLK_DEV_AEC62XX is not set | ||
459 | # CONFIG_BLK_DEV_ALI15X3 is not set | ||
460 | # CONFIG_BLK_DEV_AMD74XX is not set | ||
461 | # CONFIG_BLK_DEV_CMD64X is not set | ||
462 | # CONFIG_BLK_DEV_TRIFLEX is not set | ||
463 | # CONFIG_BLK_DEV_CS5520 is not set | ||
464 | # CONFIG_BLK_DEV_CS5530 is not set | ||
465 | # CONFIG_BLK_DEV_HPT366 is not set | ||
466 | # CONFIG_BLK_DEV_JMICRON is not set | ||
467 | # CONFIG_BLK_DEV_SC1200 is not set | ||
468 | # CONFIG_BLK_DEV_PIIX is not set | ||
469 | # CONFIG_BLK_DEV_IT8213 is not set | ||
470 | # CONFIG_BLK_DEV_IT821X is not set | ||
471 | # CONFIG_BLK_DEV_NS87415 is not set | ||
472 | # CONFIG_BLK_DEV_PDC202XX_OLD is not set | ||
473 | # CONFIG_BLK_DEV_PDC202XX_NEW is not set | ||
474 | # CONFIG_BLK_DEV_SVWKS is not set | ||
475 | # CONFIG_BLK_DEV_SIIMAGE is not set | ||
476 | # CONFIG_BLK_DEV_SLC90E66 is not set | ||
477 | # CONFIG_BLK_DEV_TRM290 is not set | ||
478 | # CONFIG_BLK_DEV_VIA82CXXX is not set | ||
479 | # CONFIG_BLK_DEV_TC86C001 is not set | ||
453 | # CONFIG_BLK_DEV_IDEDMA is not set | 480 | # CONFIG_BLK_DEV_IDEDMA is not set |
454 | # CONFIG_IDEDMA_AUTO is not set | ||
455 | # CONFIG_BLK_DEV_HD is not set | ||
456 | 481 | ||
457 | # | 482 | # |
458 | # SCSI device support | 483 | # SCSI device support |
459 | # | 484 | # |
460 | # CONFIG_RAID_ATTRS is not set | 485 | # CONFIG_RAID_ATTRS is not set |
461 | CONFIG_SCSI=m | 486 | CONFIG_SCSI=m |
487 | CONFIG_SCSI_DMA=y | ||
488 | # CONFIG_SCSI_TGT is not set | ||
462 | # CONFIG_SCSI_NETLINK is not set | 489 | # CONFIG_SCSI_NETLINK is not set |
463 | CONFIG_SCSI_PROC_FS=y | 490 | CONFIG_SCSI_PROC_FS=y |
464 | 491 | ||
@@ -479,6 +506,8 @@ CONFIG_CHR_DEV_SG=m | |||
479 | # CONFIG_SCSI_MULTI_LUN is not set | 506 | # CONFIG_SCSI_MULTI_LUN is not set |
480 | # CONFIG_SCSI_CONSTANTS is not set | 507 | # CONFIG_SCSI_CONSTANTS is not set |
481 | # CONFIG_SCSI_LOGGING is not set | 508 | # CONFIG_SCSI_LOGGING is not set |
509 | # CONFIG_SCSI_SCAN_ASYNC is not set | ||
510 | CONFIG_SCSI_WAIT_SCAN=m | ||
482 | 511 | ||
483 | # | 512 | # |
484 | # SCSI Transports | 513 | # SCSI Transports |
@@ -486,12 +515,9 @@ CONFIG_CHR_DEV_SG=m | |||
486 | # CONFIG_SCSI_SPI_ATTRS is not set | 515 | # CONFIG_SCSI_SPI_ATTRS is not set |
487 | # CONFIG_SCSI_FC_ATTRS is not set | 516 | # CONFIG_SCSI_FC_ATTRS is not set |
488 | # CONFIG_SCSI_ISCSI_ATTRS is not set | 517 | # CONFIG_SCSI_ISCSI_ATTRS is not set |
489 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
490 | # CONFIG_SCSI_SAS_LIBSAS is not set | 518 | # CONFIG_SCSI_SAS_LIBSAS is not set |
491 | 519 | # CONFIG_SCSI_SRP_ATTRS is not set | |
492 | # | 520 | CONFIG_SCSI_LOWLEVEL=y |
493 | # SCSI low-level drivers | ||
494 | # | ||
495 | # CONFIG_ISCSI_TCP is not set | 521 | # CONFIG_ISCSI_TCP is not set |
496 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 522 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
497 | # CONFIG_SCSI_3W_9XXX is not set | 523 | # CONFIG_SCSI_3W_9XXX is not set |
@@ -501,7 +527,6 @@ CONFIG_CHR_DEV_SG=m | |||
501 | # CONFIG_SCSI_AIC7XXX_OLD is not set | 527 | # CONFIG_SCSI_AIC7XXX_OLD is not set |
502 | # CONFIG_SCSI_AIC79XX is not set | 528 | # CONFIG_SCSI_AIC79XX is not set |
503 | # CONFIG_SCSI_AIC94XX is not set | 529 | # CONFIG_SCSI_AIC94XX is not set |
504 | # CONFIG_SCSI_DPT_I2O is not set | ||
505 | # CONFIG_SCSI_ARCMSR is not set | 530 | # CONFIG_SCSI_ARCMSR is not set |
506 | # CONFIG_MEGARAID_NEWGEN is not set | 531 | # CONFIG_MEGARAID_NEWGEN is not set |
507 | # CONFIG_MEGARAID_LEGACY is not set | 532 | # CONFIG_MEGARAID_LEGACY is not set |
@@ -512,88 +537,67 @@ CONFIG_CHR_DEV_SG=m | |||
512 | # CONFIG_SCSI_IPS is not set | 537 | # CONFIG_SCSI_IPS is not set |
513 | # CONFIG_SCSI_INITIO is not set | 538 | # CONFIG_SCSI_INITIO is not set |
514 | # CONFIG_SCSI_INIA100 is not set | 539 | # CONFIG_SCSI_INIA100 is not set |
540 | # CONFIG_SCSI_MVSAS is not set | ||
515 | # CONFIG_SCSI_STEX is not set | 541 | # CONFIG_SCSI_STEX is not set |
516 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 542 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
517 | # CONFIG_SCSI_IPR is not set | ||
518 | # CONFIG_SCSI_QLOGIC_1280 is not set | 543 | # CONFIG_SCSI_QLOGIC_1280 is not set |
519 | # CONFIG_SCSI_QLA_FC is not set | 544 | # CONFIG_SCSI_QLA_FC is not set |
545 | # CONFIG_SCSI_QLA_ISCSI is not set | ||
520 | # CONFIG_SCSI_LPFC is not set | 546 | # CONFIG_SCSI_LPFC is not set |
521 | # CONFIG_SCSI_DC395x is not set | 547 | # CONFIG_SCSI_DC395x is not set |
522 | # CONFIG_SCSI_DC390T is not set | 548 | # CONFIG_SCSI_DC390T is not set |
523 | # CONFIG_SCSI_NSP32 is not set | 549 | # CONFIG_SCSI_NSP32 is not set |
524 | # CONFIG_SCSI_DEBUG is not set | 550 | # CONFIG_SCSI_DEBUG is not set |
525 | 551 | # CONFIG_SCSI_SRP is not set | |
526 | # | 552 | # CONFIG_SCSI_DH is not set |
527 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
528 | # | ||
529 | # CONFIG_ATA is not set | 553 | # CONFIG_ATA is not set |
530 | |||
531 | # | ||
532 | # Multi-device support (RAID and LVM) | ||
533 | # | ||
534 | # CONFIG_MD is not set | 554 | # CONFIG_MD is not set |
535 | |||
536 | # | ||
537 | # Fusion MPT device support | ||
538 | # | ||
539 | # CONFIG_FUSION is not set | 555 | # CONFIG_FUSION is not set |
540 | # CONFIG_FUSION_SPI is not set | ||
541 | # CONFIG_FUSION_FC is not set | ||
542 | # CONFIG_FUSION_SAS is not set | ||
543 | 556 | ||
544 | # | 557 | # |
545 | # IEEE 1394 (FireWire) support | 558 | # IEEE 1394 (FireWire) support |
546 | # | 559 | # |
547 | # CONFIG_IEEE1394 is not set | ||
548 | 560 | ||
549 | # | 561 | # |
550 | # I2O device support | 562 | # Enable only one of the two stacks, unless you know what you are doing |
551 | # | 563 | # |
564 | # CONFIG_FIREWIRE is not set | ||
565 | # CONFIG_IEEE1394 is not set | ||
552 | # CONFIG_I2O is not set | 566 | # CONFIG_I2O is not set |
553 | |||
554 | # | ||
555 | # Network device support | ||
556 | # | ||
557 | CONFIG_NETDEVICES=y | 567 | CONFIG_NETDEVICES=y |
558 | # CONFIG_DUMMY is not set | 568 | # CONFIG_DUMMY is not set |
559 | # CONFIG_BONDING is not set | 569 | # CONFIG_BONDING is not set |
570 | # CONFIG_MACVLAN is not set | ||
560 | # CONFIG_EQUALIZER is not set | 571 | # CONFIG_EQUALIZER is not set |
561 | # CONFIG_TUN is not set | 572 | # CONFIG_TUN is not set |
562 | 573 | # CONFIG_VETH is not set | |
563 | # | ||
564 | # ARCnet devices | ||
565 | # | ||
566 | # CONFIG_ARCNET is not set | 574 | # CONFIG_ARCNET is not set |
567 | |||
568 | # | ||
569 | # PHY device support | ||
570 | # | ||
571 | # CONFIG_PHYLIB is not set | 575 | # CONFIG_PHYLIB is not set |
572 | |||
573 | # | ||
574 | # Ethernet (10 or 100Mbit) | ||
575 | # | ||
576 | CONFIG_NET_ETHERNET=y | 576 | CONFIG_NET_ETHERNET=y |
577 | CONFIG_MII=y | 577 | CONFIG_MII=y |
578 | # CONFIG_AX88796 is not set | ||
578 | # CONFIG_STNIC is not set | 579 | # CONFIG_STNIC is not set |
579 | # CONFIG_HAPPYMEAL is not set | 580 | # CONFIG_HAPPYMEAL is not set |
580 | # CONFIG_SUNGEM is not set | 581 | # CONFIG_SUNGEM is not set |
581 | # CONFIG_CASSINI is not set | 582 | # CONFIG_CASSINI is not set |
582 | # CONFIG_NET_VENDOR_3COM is not set | 583 | # CONFIG_NET_VENDOR_3COM is not set |
583 | # CONFIG_SMC91X is not set | 584 | # CONFIG_SMC91X is not set |
584 | 585 | # CONFIG_SMC911X is not set | |
585 | # | ||
586 | # Tulip family network device support | ||
587 | # | ||
588 | # CONFIG_NET_TULIP is not set | 586 | # CONFIG_NET_TULIP is not set |
589 | # CONFIG_HP100 is not set | 587 | # CONFIG_HP100 is not set |
588 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
589 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
590 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
591 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
592 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
593 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
594 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
590 | CONFIG_NET_PCI=y | 595 | CONFIG_NET_PCI=y |
591 | # CONFIG_PCNET32 is not set | 596 | # CONFIG_PCNET32 is not set |
592 | # CONFIG_AMD8111_ETH is not set | 597 | # CONFIG_AMD8111_ETH is not set |
593 | # CONFIG_ADAPTEC_STARFIRE is not set | 598 | # CONFIG_ADAPTEC_STARFIRE is not set |
594 | # CONFIG_B44 is not set | 599 | # CONFIG_B44 is not set |
595 | # CONFIG_FORCEDETH is not set | 600 | # CONFIG_FORCEDETH is not set |
596 | # CONFIG_DGRS is not set | ||
597 | # CONFIG_EEPRO100 is not set | 601 | # CONFIG_EEPRO100 is not set |
598 | # CONFIG_E100 is not set | 602 | # CONFIG_E100 is not set |
599 | # CONFIG_FEALNX is not set | 603 | # CONFIG_FEALNX is not set |
@@ -601,18 +605,21 @@ CONFIG_NET_PCI=y | |||
601 | # CONFIG_NE2K_PCI is not set | 605 | # CONFIG_NE2K_PCI is not set |
602 | CONFIG_8139CP=y | 606 | CONFIG_8139CP=y |
603 | # CONFIG_8139TOO is not set | 607 | # CONFIG_8139TOO is not set |
608 | # CONFIG_R6040 is not set | ||
604 | # CONFIG_SIS900 is not set | 609 | # CONFIG_SIS900 is not set |
605 | # CONFIG_EPIC100 is not set | 610 | # CONFIG_EPIC100 is not set |
606 | # CONFIG_SUNDANCE is not set | 611 | # CONFIG_SUNDANCE is not set |
607 | # CONFIG_TLAN is not set | 612 | # CONFIG_TLAN is not set |
608 | # CONFIG_VIA_RHINE is not set | 613 | # CONFIG_VIA_RHINE is not set |
609 | 614 | # CONFIG_SC92031 is not set | |
610 | # | 615 | # CONFIG_ATL2 is not set |
611 | # Ethernet (1000 Mbit) | 616 | CONFIG_NETDEV_1000=y |
612 | # | ||
613 | # CONFIG_ACENIC is not set | 617 | # CONFIG_ACENIC is not set |
614 | # CONFIG_DL2K is not set | 618 | # CONFIG_DL2K is not set |
615 | # CONFIG_E1000 is not set | 619 | # CONFIG_E1000 is not set |
620 | # CONFIG_E1000E is not set | ||
621 | # CONFIG_IP1000 is not set | ||
622 | # CONFIG_IGB is not set | ||
616 | # CONFIG_NS83820 is not set | 623 | # CONFIG_NS83820 is not set |
617 | # CONFIG_HAMACHI is not set | 624 | # CONFIG_HAMACHI is not set |
618 | # CONFIG_YELLOWFIN is not set | 625 | # CONFIG_YELLOWFIN is not set |
@@ -620,52 +627,46 @@ CONFIG_8139CP=y | |||
620 | # CONFIG_SIS190 is not set | 627 | # CONFIG_SIS190 is not set |
621 | # CONFIG_SKGE is not set | 628 | # CONFIG_SKGE is not set |
622 | # CONFIG_SKY2 is not set | 629 | # CONFIG_SKY2 is not set |
623 | # CONFIG_SK98LIN is not set | ||
624 | # CONFIG_VIA_VELOCITY is not set | 630 | # CONFIG_VIA_VELOCITY is not set |
625 | # CONFIG_TIGON3 is not set | 631 | # CONFIG_TIGON3 is not set |
626 | # CONFIG_BNX2 is not set | 632 | # CONFIG_BNX2 is not set |
627 | # CONFIG_QLA3XXX is not set | 633 | # CONFIG_QLA3XXX is not set |
628 | 634 | # CONFIG_ATL1 is not set | |
629 | # | 635 | # CONFIG_ATL1E is not set |
630 | # Ethernet (10000 Mbit) | 636 | # CONFIG_JME is not set |
631 | # | 637 | CONFIG_NETDEV_10000=y |
632 | # CONFIG_CHELSIO_T1 is not set | 638 | # CONFIG_CHELSIO_T1 is not set |
639 | # CONFIG_CHELSIO_T3 is not set | ||
640 | # CONFIG_ENIC is not set | ||
641 | # CONFIG_IXGBE is not set | ||
633 | # CONFIG_IXGB is not set | 642 | # CONFIG_IXGB is not set |
634 | # CONFIG_S2IO is not set | 643 | # CONFIG_S2IO is not set |
635 | # CONFIG_MYRI10GE is not set | 644 | # CONFIG_MYRI10GE is not set |
636 | 645 | # CONFIG_NETXEN_NIC is not set | |
637 | # | 646 | # CONFIG_NIU is not set |
638 | # Token Ring devices | 647 | # CONFIG_MLX4_CORE is not set |
639 | # | 648 | # CONFIG_TEHUTI is not set |
649 | # CONFIG_BNX2X is not set | ||
650 | # CONFIG_QLGE is not set | ||
651 | # CONFIG_SFC is not set | ||
640 | # CONFIG_TR is not set | 652 | # CONFIG_TR is not set |
641 | 653 | ||
642 | # | 654 | # |
643 | # Wireless LAN (non-hamradio) | 655 | # Wireless LAN |
644 | # | ||
645 | # CONFIG_NET_RADIO is not set | ||
646 | |||
647 | # | ||
648 | # Wan interfaces | ||
649 | # | 656 | # |
657 | # CONFIG_WLAN_PRE80211 is not set | ||
658 | # CONFIG_WLAN_80211 is not set | ||
659 | # CONFIG_IWLWIFI_LEDS is not set | ||
650 | # CONFIG_WAN is not set | 660 | # CONFIG_WAN is not set |
651 | # CONFIG_FDDI is not set | 661 | # CONFIG_FDDI is not set |
652 | # CONFIG_HIPPI is not set | 662 | # CONFIG_HIPPI is not set |
653 | # CONFIG_PPP is not set | 663 | # CONFIG_PPP is not set |
654 | # CONFIG_SLIP is not set | 664 | # CONFIG_SLIP is not set |
655 | # CONFIG_NET_FC is not set | 665 | # CONFIG_NET_FC is not set |
656 | # CONFIG_SHAPER is not set | ||
657 | # CONFIG_NETCONSOLE is not set | 666 | # CONFIG_NETCONSOLE is not set |
658 | # CONFIG_NETPOLL is not set | 667 | # CONFIG_NETPOLL is not set |
659 | # CONFIG_NET_POLL_CONTROLLER is not set | 668 | # CONFIG_NET_POLL_CONTROLLER is not set |
660 | |||
661 | # | ||
662 | # ISDN subsystem | ||
663 | # | ||
664 | # CONFIG_ISDN is not set | 669 | # CONFIG_ISDN is not set |
665 | |||
666 | # | ||
667 | # Telephony Support | ||
668 | # | ||
669 | # CONFIG_PHONE is not set | 670 | # CONFIG_PHONE is not set |
670 | 671 | ||
671 | # | 672 | # |
@@ -673,6 +674,7 @@ CONFIG_8139CP=y | |||
673 | # | 674 | # |
674 | CONFIG_INPUT=y | 675 | CONFIG_INPUT=y |
675 | # CONFIG_INPUT_FF_MEMLESS is not set | 676 | # CONFIG_INPUT_FF_MEMLESS is not set |
677 | # CONFIG_INPUT_POLLDEV is not set | ||
676 | 678 | ||
677 | # | 679 | # |
678 | # Userland interfaces | 680 | # Userland interfaces |
@@ -682,7 +684,6 @@ CONFIG_INPUT_MOUSEDEV=y | |||
682 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | 684 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 |
683 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | 685 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 |
684 | # CONFIG_INPUT_JOYDEV is not set | 686 | # CONFIG_INPUT_JOYDEV is not set |
685 | # CONFIG_INPUT_TSDEV is not set | ||
686 | # CONFIG_INPUT_EVDEV is not set | 687 | # CONFIG_INPUT_EVDEV is not set |
687 | # CONFIG_INPUT_EVBUG is not set | 688 | # CONFIG_INPUT_EVBUG is not set |
688 | 689 | ||
@@ -692,6 +693,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | |||
692 | # CONFIG_INPUT_KEYBOARD is not set | 693 | # CONFIG_INPUT_KEYBOARD is not set |
693 | # CONFIG_INPUT_MOUSE is not set | 694 | # CONFIG_INPUT_MOUSE is not set |
694 | # CONFIG_INPUT_JOYSTICK is not set | 695 | # CONFIG_INPUT_JOYSTICK is not set |
696 | # CONFIG_INPUT_TABLET is not set | ||
695 | # CONFIG_INPUT_TOUCHSCREEN is not set | 697 | # CONFIG_INPUT_TOUCHSCREEN is not set |
696 | # CONFIG_INPUT_MISC is not set | 698 | # CONFIG_INPUT_MISC is not set |
697 | 699 | ||
@@ -705,10 +707,13 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | |||
705 | # Character devices | 707 | # Character devices |
706 | # | 708 | # |
707 | CONFIG_VT=y | 709 | CONFIG_VT=y |
710 | CONFIG_CONSOLE_TRANSLATIONS=y | ||
708 | CONFIG_VT_CONSOLE=y | 711 | CONFIG_VT_CONSOLE=y |
709 | CONFIG_HW_CONSOLE=y | 712 | CONFIG_HW_CONSOLE=y |
710 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | 713 | # CONFIG_VT_HW_CONSOLE_BINDING is not set |
714 | CONFIG_DEVKMEM=y | ||
711 | # CONFIG_SERIAL_NONSTANDARD is not set | 715 | # CONFIG_SERIAL_NONSTANDARD is not set |
716 | # CONFIG_NOZOMI is not set | ||
712 | 717 | ||
713 | # | 718 | # |
714 | # Serial drivers | 719 | # Serial drivers |
@@ -731,15 +736,36 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
731 | CONFIG_UNIX98_PTYS=y | 736 | CONFIG_UNIX98_PTYS=y |
732 | CONFIG_LEGACY_PTYS=y | 737 | CONFIG_LEGACY_PTYS=y |
733 | CONFIG_LEGACY_PTY_COUNT=256 | 738 | CONFIG_LEGACY_PTY_COUNT=256 |
734 | |||
735 | # | ||
736 | # IPMI | ||
737 | # | ||
738 | # CONFIG_IPMI_HANDLER is not set | 739 | # CONFIG_IPMI_HANDLER is not set |
739 | 740 | CONFIG_HW_RANDOM=y | |
740 | # | 741 | # CONFIG_R3964 is not set |
741 | # Watchdog Cards | 742 | # CONFIG_APPLICOM is not set |
742 | # | 743 | # CONFIG_RAW_DRIVER is not set |
744 | # CONFIG_TCG_TPM is not set | ||
745 | CONFIG_DEVPORT=y | ||
746 | # CONFIG_I2C is not set | ||
747 | # CONFIG_SPI is not set | ||
748 | # CONFIG_W1 is not set | ||
749 | # CONFIG_POWER_SUPPLY is not set | ||
750 | CONFIG_HWMON=y | ||
751 | # CONFIG_HWMON_VID is not set | ||
752 | # CONFIG_SENSORS_I5K_AMB is not set | ||
753 | # CONFIG_SENSORS_F71805F is not set | ||
754 | # CONFIG_SENSORS_F71882FG is not set | ||
755 | # CONFIG_SENSORS_IT87 is not set | ||
756 | # CONFIG_SENSORS_PC87360 is not set | ||
757 | # CONFIG_SENSORS_PC87427 is not set | ||
758 | # CONFIG_SENSORS_SIS5595 is not set | ||
759 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
760 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
761 | # CONFIG_SENSORS_VIA686A is not set | ||
762 | # CONFIG_SENSORS_VT1211 is not set | ||
763 | # CONFIG_SENSORS_VT8231 is not set | ||
764 | # CONFIG_SENSORS_W83627HF is not set | ||
765 | # CONFIG_SENSORS_W83627EHF is not set | ||
766 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
767 | # CONFIG_THERMAL is not set | ||
768 | # CONFIG_THERMAL_HWMON is not set | ||
743 | CONFIG_WATCHDOG=y | 769 | CONFIG_WATCHDOG=y |
744 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 770 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
745 | 771 | ||
@@ -747,6 +773,7 @@ CONFIG_WATCHDOG=y | |||
747 | # Watchdog Device Drivers | 773 | # Watchdog Device Drivers |
748 | # | 774 | # |
749 | # CONFIG_SOFT_WATCHDOG is not set | 775 | # CONFIG_SOFT_WATCHDOG is not set |
776 | # CONFIG_ALIM7101_WDT is not set | ||
750 | CONFIG_SH_WDT=m | 777 | CONFIG_SH_WDT=m |
751 | # CONFIG_SH_WDT_MMAP is not set | 778 | # CONFIG_SH_WDT_MMAP is not set |
752 | 779 | ||
@@ -755,142 +782,92 @@ CONFIG_SH_WDT=m | |||
755 | # | 782 | # |
756 | # CONFIG_PCIPCWATCHDOG is not set | 783 | # CONFIG_PCIPCWATCHDOG is not set |
757 | # CONFIG_WDTPCI is not set | 784 | # CONFIG_WDTPCI is not set |
758 | CONFIG_HW_RANDOM=y | ||
759 | # CONFIG_GEN_RTC is not set | ||
760 | # CONFIG_DTLK is not set | ||
761 | # CONFIG_R3964 is not set | ||
762 | # CONFIG_APPLICOM is not set | ||
763 | |||
764 | # | ||
765 | # Ftape, the floppy tape device driver | ||
766 | # | ||
767 | # CONFIG_DRM is not set | ||
768 | # CONFIG_RAW_DRIVER is not set | ||
769 | 785 | ||
770 | # | 786 | # |
771 | # TPM devices | 787 | # Sonics Silicon Backplane |
772 | # | 788 | # |
773 | # CONFIG_TCG_TPM is not set | 789 | CONFIG_SSB_POSSIBLE=y |
774 | # CONFIG_TELCLOCK is not set | 790 | # CONFIG_SSB is not set |
775 | 791 | ||
776 | # | 792 | # |
777 | # I2C support | 793 | # Multifunction device drivers |
778 | # | ||
779 | # CONFIG_I2C is not set | ||
780 | |||
781 | # | 794 | # |
782 | # SPI support | 795 | # CONFIG_MFD_CORE is not set |
783 | # | 796 | # CONFIG_MFD_SM501 is not set |
784 | # CONFIG_SPI is not set | 797 | # CONFIG_HTC_PASIC3 is not set |
785 | # CONFIG_SPI_MASTER is not set | 798 | # CONFIG_MFD_TMIO is not set |
786 | 799 | # CONFIG_MFD_WM8400 is not set | |
787 | # | ||
788 | # Dallas's 1-wire bus | ||
789 | # | ||
790 | |||
791 | # | ||
792 | # Hardware Monitoring support | ||
793 | # | ||
794 | CONFIG_HWMON=y | ||
795 | # CONFIG_HWMON_VID is not set | ||
796 | # CONFIG_SENSORS_ABITUGURU is not set | ||
797 | # CONFIG_SENSORS_F71805F is not set | ||
798 | # CONFIG_SENSORS_VT1211 is not set | ||
799 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
800 | 800 | ||
801 | # | 801 | # |
802 | # Misc devices | 802 | # Multimedia devices |
803 | # | 803 | # |
804 | 804 | ||
805 | # | 805 | # |
806 | # Multimedia devices | 806 | # Multimedia core support |
807 | # | 807 | # |
808 | # CONFIG_VIDEO_DEV is not set | 808 | # CONFIG_VIDEO_DEV is not set |
809 | CONFIG_VIDEO_V4L2=y | 809 | # CONFIG_DVB_CORE is not set |
810 | # CONFIG_VIDEO_MEDIA is not set | ||
810 | 811 | ||
811 | # | 812 | # |
812 | # Digital Video Broadcasting Devices | 813 | # Multimedia drivers |
813 | # | 814 | # |
814 | # CONFIG_DVB is not set | 815 | # CONFIG_DAB is not set |
815 | 816 | ||
816 | # | 817 | # |
817 | # Graphics support | 818 | # Graphics support |
818 | # | 819 | # |
819 | CONFIG_FIRMWARE_EDID=y | 820 | # CONFIG_DRM is not set |
821 | # CONFIG_VGASTATE is not set | ||
822 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
820 | # CONFIG_FB is not set | 823 | # CONFIG_FB is not set |
824 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
821 | 825 | ||
822 | # | 826 | # |
823 | # Console display driver support | 827 | # Display device support |
824 | # | 828 | # |
825 | CONFIG_DUMMY_CONSOLE=y | 829 | # CONFIG_DISPLAY_SUPPORT is not set |
826 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
827 | 830 | ||
828 | # | 831 | # |
829 | # Sound | 832 | # Console display driver support |
830 | # | 833 | # |
834 | CONFIG_DUMMY_CONSOLE=y | ||
831 | # CONFIG_SOUND is not set | 835 | # CONFIG_SOUND is not set |
836 | CONFIG_HID_SUPPORT=y | ||
837 | CONFIG_HID=y | ||
838 | # CONFIG_HID_DEBUG is not set | ||
839 | # CONFIG_HIDRAW is not set | ||
840 | # CONFIG_HID_PID is not set | ||
832 | 841 | ||
833 | # | 842 | # |
834 | # USB support | 843 | # Special HID drivers |
835 | # | 844 | # |
845 | CONFIG_HID_COMPAT=y | ||
846 | CONFIG_USB_SUPPORT=y | ||
836 | CONFIG_USB_ARCH_HAS_HCD=y | 847 | CONFIG_USB_ARCH_HAS_HCD=y |
837 | CONFIG_USB_ARCH_HAS_OHCI=y | 848 | CONFIG_USB_ARCH_HAS_OHCI=y |
838 | CONFIG_USB_ARCH_HAS_EHCI=y | 849 | CONFIG_USB_ARCH_HAS_EHCI=y |
839 | # CONFIG_USB is not set | 850 | # CONFIG_USB is not set |
851 | # CONFIG_USB_OTG_WHITELIST is not set | ||
852 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | ||
840 | 853 | ||
841 | # | 854 | # |
842 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 855 | # Enable Host or Gadget support to see Inventra options |
843 | # | 856 | # |
844 | 857 | ||
845 | # | 858 | # |
846 | # USB Gadget Support | 859 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
847 | # | 860 | # |
848 | # CONFIG_USB_GADGET is not set | 861 | # CONFIG_USB_GADGET is not set |
849 | |||
850 | # | ||
851 | # MMC/SD Card support | ||
852 | # | ||
853 | # CONFIG_MMC is not set | 862 | # CONFIG_MMC is not set |
854 | 863 | # CONFIG_MEMSTICK is not set | |
855 | # | ||
856 | # LED devices | ||
857 | # | ||
858 | # CONFIG_NEW_LEDS is not set | 864 | # CONFIG_NEW_LEDS is not set |
859 | 865 | # CONFIG_ACCESSIBILITY is not set | |
860 | # | ||
861 | # LED drivers | ||
862 | # | ||
863 | |||
864 | # | ||
865 | # LED Triggers | ||
866 | # | ||
867 | |||
868 | # | ||
869 | # InfiniBand support | ||
870 | # | ||
871 | # CONFIG_INFINIBAND is not set | 866 | # CONFIG_INFINIBAND is not set |
872 | |||
873 | # | ||
874 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
875 | # | ||
876 | |||
877 | # | ||
878 | # Real Time Clock | ||
879 | # | ||
880 | # CONFIG_RTC_CLASS is not set | 867 | # CONFIG_RTC_CLASS is not set |
881 | 868 | # CONFIG_DMADEVICES is not set | |
882 | # | 869 | # CONFIG_UIO is not set |
883 | # DMA Engine support | 870 | # CONFIG_STAGING is not set |
884 | # | ||
885 | # CONFIG_DMA_ENGINE is not set | ||
886 | |||
887 | # | ||
888 | # DMA Clients | ||
889 | # | ||
890 | |||
891 | # | ||
892 | # DMA Devices | ||
893 | # | ||
894 | 871 | ||
895 | # | 872 | # |
896 | # File systems | 873 | # File systems |
@@ -904,20 +881,19 @@ CONFIG_EXT3_FS=y | |||
904 | CONFIG_EXT3_FS_XATTR=y | 881 | CONFIG_EXT3_FS_XATTR=y |
905 | CONFIG_EXT3_FS_POSIX_ACL=y | 882 | CONFIG_EXT3_FS_POSIX_ACL=y |
906 | # CONFIG_EXT3_FS_SECURITY is not set | 883 | # CONFIG_EXT3_FS_SECURITY is not set |
884 | # CONFIG_EXT4_FS is not set | ||
907 | CONFIG_JBD=y | 885 | CONFIG_JBD=y |
908 | # CONFIG_JBD_DEBUG is not set | ||
909 | CONFIG_FS_MBCACHE=y | 886 | CONFIG_FS_MBCACHE=y |
910 | # CONFIG_REISERFS_FS is not set | 887 | # CONFIG_REISERFS_FS is not set |
911 | # CONFIG_JFS_FS is not set | 888 | # CONFIG_JFS_FS is not set |
912 | CONFIG_FS_POSIX_ACL=y | 889 | CONFIG_FS_POSIX_ACL=y |
890 | CONFIG_FILE_LOCKING=y | ||
913 | # CONFIG_XFS_FS is not set | 891 | # CONFIG_XFS_FS is not set |
914 | # CONFIG_OCFS2_FS is not set | 892 | # CONFIG_OCFS2_FS is not set |
915 | # CONFIG_MINIX_FS is not set | 893 | CONFIG_DNOTIFY=y |
916 | # CONFIG_ROMFS_FS is not set | ||
917 | CONFIG_INOTIFY=y | 894 | CONFIG_INOTIFY=y |
918 | CONFIG_INOTIFY_USER=y | 895 | CONFIG_INOTIFY_USER=y |
919 | # CONFIG_QUOTA is not set | 896 | # CONFIG_QUOTA is not set |
920 | CONFIG_DNOTIFY=y | ||
921 | CONFIG_AUTOFS_FS=y | 897 | CONFIG_AUTOFS_FS=y |
922 | CONFIG_AUTOFS4_FS=y | 898 | CONFIG_AUTOFS4_FS=y |
923 | # CONFIG_FUSE_FS is not set | 899 | # CONFIG_FUSE_FS is not set |
@@ -928,7 +904,6 @@ CONFIG_AUTOFS4_FS=y | |||
928 | CONFIG_ISO9660_FS=m | 904 | CONFIG_ISO9660_FS=m |
929 | CONFIG_JOLIET=y | 905 | CONFIG_JOLIET=y |
930 | CONFIG_ZISOFS=y | 906 | CONFIG_ZISOFS=y |
931 | CONFIG_ZISOFS_FS=m | ||
932 | CONFIG_UDF_FS=m | 907 | CONFIG_UDF_FS=m |
933 | CONFIG_UDF_NLS=y | 908 | CONFIG_UDF_NLS=y |
934 | 909 | ||
@@ -948,12 +923,12 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
948 | CONFIG_PROC_FS=y | 923 | CONFIG_PROC_FS=y |
949 | CONFIG_PROC_KCORE=y | 924 | CONFIG_PROC_KCORE=y |
950 | CONFIG_PROC_SYSCTL=y | 925 | CONFIG_PROC_SYSCTL=y |
926 | CONFIG_PROC_PAGE_MONITOR=y | ||
951 | CONFIG_SYSFS=y | 927 | CONFIG_SYSFS=y |
952 | CONFIG_TMPFS=y | 928 | CONFIG_TMPFS=y |
953 | # CONFIG_TMPFS_POSIX_ACL is not set | 929 | # CONFIG_TMPFS_POSIX_ACL is not set |
954 | # CONFIG_HUGETLBFS is not set | 930 | # CONFIG_HUGETLBFS is not set |
955 | # CONFIG_HUGETLB_PAGE is not set | 931 | # CONFIG_HUGETLB_PAGE is not set |
956 | CONFIG_RAMFS=y | ||
957 | # CONFIG_CONFIGFS_FS is not set | 932 | # CONFIG_CONFIGFS_FS is not set |
958 | 933 | ||
959 | # | 934 | # |
@@ -968,31 +943,30 @@ CONFIG_RAMFS=y | |||
968 | # CONFIG_EFS_FS is not set | 943 | # CONFIG_EFS_FS is not set |
969 | # CONFIG_CRAMFS is not set | 944 | # CONFIG_CRAMFS is not set |
970 | # CONFIG_VXFS_FS is not set | 945 | # CONFIG_VXFS_FS is not set |
946 | # CONFIG_MINIX_FS is not set | ||
947 | # CONFIG_OMFS_FS is not set | ||
971 | # CONFIG_HPFS_FS is not set | 948 | # CONFIG_HPFS_FS is not set |
972 | # CONFIG_QNX4FS_FS is not set | 949 | # CONFIG_QNX4FS_FS is not set |
950 | # CONFIG_ROMFS_FS is not set | ||
973 | # CONFIG_SYSV_FS is not set | 951 | # CONFIG_SYSV_FS is not set |
974 | # CONFIG_UFS_FS is not set | 952 | # CONFIG_UFS_FS is not set |
975 | 953 | CONFIG_NETWORK_FILESYSTEMS=y | |
976 | # | ||
977 | # Network File Systems | ||
978 | # | ||
979 | CONFIG_NFS_FS=y | 954 | CONFIG_NFS_FS=y |
980 | CONFIG_NFS_V3=y | 955 | CONFIG_NFS_V3=y |
981 | # CONFIG_NFS_V3_ACL is not set | 956 | # CONFIG_NFS_V3_ACL is not set |
982 | CONFIG_NFS_V4=y | 957 | CONFIG_NFS_V4=y |
983 | # CONFIG_NFS_DIRECTIO is not set | 958 | CONFIG_ROOT_NFS=y |
984 | CONFIG_NFSD=y | 959 | CONFIG_NFSD=y |
985 | CONFIG_NFSD_V3=y | 960 | CONFIG_NFSD_V3=y |
986 | # CONFIG_NFSD_V3_ACL is not set | 961 | # CONFIG_NFSD_V3_ACL is not set |
987 | # CONFIG_NFSD_V4 is not set | 962 | # CONFIG_NFSD_V4 is not set |
988 | CONFIG_NFSD_TCP=y | ||
989 | CONFIG_ROOT_NFS=y | ||
990 | CONFIG_LOCKD=y | 963 | CONFIG_LOCKD=y |
991 | CONFIG_LOCKD_V4=y | 964 | CONFIG_LOCKD_V4=y |
992 | CONFIG_EXPORTFS=y | 965 | CONFIG_EXPORTFS=y |
993 | CONFIG_NFS_COMMON=y | 966 | CONFIG_NFS_COMMON=y |
994 | CONFIG_SUNRPC=y | 967 | CONFIG_SUNRPC=y |
995 | CONFIG_SUNRPC_GSS=y | 968 | CONFIG_SUNRPC_GSS=y |
969 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
996 | CONFIG_RPCSEC_GSS_KRB5=y | 970 | CONFIG_RPCSEC_GSS_KRB5=y |
997 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 971 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
998 | # CONFIG_SMB_FS is not set | 972 | # CONFIG_SMB_FS is not set |
@@ -1000,7 +974,6 @@ CONFIG_RPCSEC_GSS_KRB5=y | |||
1000 | # CONFIG_NCP_FS is not set | 974 | # CONFIG_NCP_FS is not set |
1001 | # CONFIG_CODA_FS is not set | 975 | # CONFIG_CODA_FS is not set |
1002 | # CONFIG_AFS_FS is not set | 976 | # CONFIG_AFS_FS is not set |
1003 | # CONFIG_9P_FS is not set | ||
1004 | 977 | ||
1005 | # | 978 | # |
1006 | # Partition Types | 979 | # Partition Types |
@@ -1022,10 +995,7 @@ CONFIG_MSDOS_PARTITION=y | |||
1022 | # CONFIG_SUN_PARTITION is not set | 995 | # CONFIG_SUN_PARTITION is not set |
1023 | # CONFIG_KARMA_PARTITION is not set | 996 | # CONFIG_KARMA_PARTITION is not set |
1024 | # CONFIG_EFI_PARTITION is not set | 997 | # CONFIG_EFI_PARTITION is not set |
1025 | 998 | # CONFIG_SYSV68_PARTITION is not set | |
1026 | # | ||
1027 | # Native Language Support | ||
1028 | # | ||
1029 | CONFIG_NLS=m | 999 | CONFIG_NLS=m |
1030 | CONFIG_NLS_DEFAULT="iso8859-1" | 1000 | CONFIG_NLS_DEFAULT="iso8859-1" |
1031 | CONFIG_NLS_CODEPAGE_437=m | 1001 | CONFIG_NLS_CODEPAGE_437=m |
@@ -1066,81 +1036,146 @@ CONFIG_NLS_ISO8859_15=m | |||
1066 | CONFIG_NLS_KOI8_R=m | 1036 | CONFIG_NLS_KOI8_R=m |
1067 | CONFIG_NLS_KOI8_U=m | 1037 | CONFIG_NLS_KOI8_U=m |
1068 | CONFIG_NLS_UTF8=m | 1038 | CONFIG_NLS_UTF8=m |
1069 | 1039 | # CONFIG_DLM is not set | |
1070 | # | ||
1071 | # Profiling support | ||
1072 | # | ||
1073 | CONFIG_PROFILING=y | ||
1074 | CONFIG_OPROFILE=m | ||
1075 | 1040 | ||
1076 | # | 1041 | # |
1077 | # Kernel hacking | 1042 | # Kernel hacking |
1078 | # | 1043 | # |
1044 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
1079 | # CONFIG_PRINTK_TIME is not set | 1045 | # CONFIG_PRINTK_TIME is not set |
1046 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
1080 | CONFIG_ENABLE_MUST_CHECK=y | 1047 | CONFIG_ENABLE_MUST_CHECK=y |
1048 | CONFIG_FRAME_WARN=1024 | ||
1081 | # CONFIG_MAGIC_SYSRQ is not set | 1049 | # CONFIG_MAGIC_SYSRQ is not set |
1082 | # CONFIG_UNUSED_SYMBOLS is not set | 1050 | # CONFIG_UNUSED_SYMBOLS is not set |
1051 | # CONFIG_DEBUG_FS is not set | ||
1052 | # CONFIG_HEADERS_CHECK is not set | ||
1083 | # CONFIG_DEBUG_KERNEL is not set | 1053 | # CONFIG_DEBUG_KERNEL is not set |
1084 | CONFIG_LOG_BUF_SHIFT=14 | ||
1085 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1054 | # CONFIG_DEBUG_BUGVERBOSE is not set |
1086 | # CONFIG_DEBUG_FS is not set | 1055 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1056 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
1057 | # CONFIG_LATENCYTOP is not set | ||
1058 | CONFIG_NOP_TRACER=y | ||
1059 | CONFIG_HAVE_FTRACE=y | ||
1060 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
1061 | # CONFIG_SAMPLES is not set | ||
1087 | CONFIG_SH_STANDARD_BIOS=y | 1062 | CONFIG_SH_STANDARD_BIOS=y |
1088 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 1063 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
1089 | # CONFIG_EARLY_PRINTK is not set | 1064 | # CONFIG_EARLY_PRINTK is not set |
1090 | # CONFIG_KGDB is not set | 1065 | # CONFIG_SH_KGDB is not set |
1091 | 1066 | ||
1092 | # | 1067 | # |
1093 | # Security options | 1068 | # Security options |
1094 | # | 1069 | # |
1095 | # CONFIG_KEYS is not set | 1070 | # CONFIG_KEYS is not set |
1096 | # CONFIG_SECURITY is not set | 1071 | # CONFIG_SECURITY is not set |
1072 | # CONFIG_SECURITYFS is not set | ||
1073 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
1074 | CONFIG_CRYPTO=y | ||
1097 | 1075 | ||
1098 | # | 1076 | # |
1099 | # Cryptographic options | 1077 | # Crypto core or helper |
1100 | # | 1078 | # |
1101 | CONFIG_CRYPTO=y | 1079 | # CONFIG_CRYPTO_FIPS is not set |
1102 | CONFIG_CRYPTO_ALGAPI=y | 1080 | CONFIG_CRYPTO_ALGAPI=y |
1103 | CONFIG_CRYPTO_BLKCIPHER=m | 1081 | CONFIG_CRYPTO_AEAD=y |
1082 | CONFIG_CRYPTO_BLKCIPHER=y | ||
1104 | CONFIG_CRYPTO_HASH=y | 1083 | CONFIG_CRYPTO_HASH=y |
1105 | CONFIG_CRYPTO_MANAGER=m | 1084 | CONFIG_CRYPTO_RNG=y |
1106 | CONFIG_CRYPTO_HMAC=y | 1085 | CONFIG_CRYPTO_MANAGER=y |
1086 | # CONFIG_CRYPTO_GF128MUL is not set | ||
1107 | # CONFIG_CRYPTO_NULL is not set | 1087 | # CONFIG_CRYPTO_NULL is not set |
1088 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1089 | # CONFIG_CRYPTO_AUTHENC is not set | ||
1090 | # CONFIG_CRYPTO_TEST is not set | ||
1091 | |||
1092 | # | ||
1093 | # Authenticated Encryption with Associated Data | ||
1094 | # | ||
1095 | # CONFIG_CRYPTO_CCM is not set | ||
1096 | # CONFIG_CRYPTO_GCM is not set | ||
1097 | # CONFIG_CRYPTO_SEQIV is not set | ||
1098 | |||
1099 | # | ||
1100 | # Block modes | ||
1101 | # | ||
1102 | CONFIG_CRYPTO_CBC=y | ||
1103 | # CONFIG_CRYPTO_CTR is not set | ||
1104 | # CONFIG_CRYPTO_CTS is not set | ||
1105 | CONFIG_CRYPTO_ECB=m | ||
1106 | # CONFIG_CRYPTO_LRW is not set | ||
1107 | # CONFIG_CRYPTO_PCBC is not set | ||
1108 | # CONFIG_CRYPTO_XTS is not set | ||
1109 | |||
1110 | # | ||
1111 | # Hash modes | ||
1112 | # | ||
1113 | CONFIG_CRYPTO_HMAC=y | ||
1114 | # CONFIG_CRYPTO_XCBC is not set | ||
1115 | |||
1116 | # | ||
1117 | # Digest | ||
1118 | # | ||
1119 | # CONFIG_CRYPTO_CRC32C is not set | ||
1108 | # CONFIG_CRYPTO_MD4 is not set | 1120 | # CONFIG_CRYPTO_MD4 is not set |
1109 | CONFIG_CRYPTO_MD5=y | 1121 | CONFIG_CRYPTO_MD5=y |
1122 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
1123 | # CONFIG_CRYPTO_RMD128 is not set | ||
1124 | # CONFIG_CRYPTO_RMD160 is not set | ||
1125 | # CONFIG_CRYPTO_RMD256 is not set | ||
1126 | # CONFIG_CRYPTO_RMD320 is not set | ||
1110 | CONFIG_CRYPTO_SHA1=y | 1127 | CONFIG_CRYPTO_SHA1=y |
1111 | # CONFIG_CRYPTO_SHA256 is not set | 1128 | # CONFIG_CRYPTO_SHA256 is not set |
1112 | # CONFIG_CRYPTO_SHA512 is not set | 1129 | # CONFIG_CRYPTO_SHA512 is not set |
1113 | # CONFIG_CRYPTO_WP512 is not set | ||
1114 | # CONFIG_CRYPTO_TGR192 is not set | 1130 | # CONFIG_CRYPTO_TGR192 is not set |
1115 | CONFIG_CRYPTO_ECB=m | 1131 | # CONFIG_CRYPTO_WP512 is not set |
1116 | CONFIG_CRYPTO_CBC=m | 1132 | |
1117 | CONFIG_CRYPTO_DES=y | 1133 | # |
1118 | # CONFIG_CRYPTO_BLOWFISH is not set | 1134 | # Ciphers |
1119 | # CONFIG_CRYPTO_TWOFISH is not set | 1135 | # |
1120 | # CONFIG_CRYPTO_SERPENT is not set | ||
1121 | # CONFIG_CRYPTO_AES is not set | 1136 | # CONFIG_CRYPTO_AES is not set |
1137 | # CONFIG_CRYPTO_ANUBIS is not set | ||
1138 | # CONFIG_CRYPTO_ARC4 is not set | ||
1139 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
1140 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1122 | # CONFIG_CRYPTO_CAST5 is not set | 1141 | # CONFIG_CRYPTO_CAST5 is not set |
1123 | # CONFIG_CRYPTO_CAST6 is not set | 1142 | # CONFIG_CRYPTO_CAST6 is not set |
1124 | # CONFIG_CRYPTO_TEA is not set | 1143 | CONFIG_CRYPTO_DES=y |
1125 | # CONFIG_CRYPTO_ARC4 is not set | 1144 | # CONFIG_CRYPTO_FCRYPT is not set |
1126 | # CONFIG_CRYPTO_KHAZAD is not set | 1145 | # CONFIG_CRYPTO_KHAZAD is not set |
1127 | # CONFIG_CRYPTO_ANUBIS is not set | 1146 | # CONFIG_CRYPTO_SALSA20 is not set |
1147 | # CONFIG_CRYPTO_SEED is not set | ||
1148 | # CONFIG_CRYPTO_SERPENT is not set | ||
1149 | # CONFIG_CRYPTO_TEA is not set | ||
1150 | # CONFIG_CRYPTO_TWOFISH is not set | ||
1151 | |||
1152 | # | ||
1153 | # Compression | ||
1154 | # | ||
1128 | CONFIG_CRYPTO_DEFLATE=y | 1155 | CONFIG_CRYPTO_DEFLATE=y |
1129 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1156 | # CONFIG_CRYPTO_LZO is not set |
1130 | # CONFIG_CRYPTO_CRC32C is not set | ||
1131 | # CONFIG_CRYPTO_TEST is not set | ||
1132 | 1157 | ||
1133 | # | 1158 | # |
1134 | # Hardware crypto devices | 1159 | # Random Number Generation |
1135 | # | 1160 | # |
1161 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
1162 | CONFIG_CRYPTO_HW=y | ||
1163 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | ||
1136 | 1164 | ||
1137 | # | 1165 | # |
1138 | # Library routines | 1166 | # Library routines |
1139 | # | 1167 | # |
1168 | CONFIG_BITREVERSE=y | ||
1140 | CONFIG_CRC_CCITT=y | 1169 | CONFIG_CRC_CCITT=y |
1141 | # CONFIG_CRC16 is not set | 1170 | # CONFIG_CRC16 is not set |
1171 | # CONFIG_CRC_T10DIF is not set | ||
1172 | CONFIG_CRC_ITU_T=m | ||
1142 | CONFIG_CRC32=y | 1173 | CONFIG_CRC32=y |
1174 | # CONFIG_CRC7 is not set | ||
1143 | # CONFIG_LIBCRC32C is not set | 1175 | # CONFIG_LIBCRC32C is not set |
1144 | CONFIG_ZLIB_INFLATE=y | 1176 | CONFIG_ZLIB_INFLATE=y |
1145 | CONFIG_ZLIB_DEFLATE=y | 1177 | CONFIG_ZLIB_DEFLATE=y |
1146 | CONFIG_PLIST=y | 1178 | CONFIG_PLIST=y |
1179 | CONFIG_HAS_IOMEM=y | ||
1180 | CONFIG_HAS_IOPORT=y | ||
1181 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/sh/configs/sh7710voipgw_defconfig b/arch/sh/configs/sh7710voipgw_defconfig index 37e49a589207..9a768b28adcb 100644 --- a/arch/sh/configs/sh7710voipgw_defconfig +++ b/arch/sh/configs/sh7710voipgw_defconfig | |||
@@ -1,25 +1,27 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.25-rc4 | 3 | # Linux kernel version: 2.6.27 |
4 | # Thu Mar 6 16:02:29 2008 | 4 | # Wed Oct 22 19:35:18 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
8 | CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig" | ||
8 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
9 | CONFIG_GENERIC_BUG=y | 10 | CONFIG_GENERIC_BUG=y |
10 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
11 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
12 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
13 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
14 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
15 | CONFIG_GENERIC_TIME=y | 17 | CONFIG_GENERIC_TIME=y |
16 | CONFIG_GENERIC_CLOCKEVENTS=y | 18 | CONFIG_GENERIC_CLOCKEVENTS=y |
17 | CONFIG_STACKTRACE_SUPPORT=y | 19 | CONFIG_STACKTRACE_SUPPORT=y |
18 | CONFIG_LOCKDEP_SUPPORT=y | 20 | CONFIG_LOCKDEP_SUPPORT=y |
21 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
19 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 22 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
20 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 23 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
21 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 24 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
22 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
23 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 25 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
24 | 26 | ||
25 | # | 27 | # |
@@ -70,30 +72,38 @@ CONFIG_SIGNALFD=y | |||
70 | CONFIG_TIMERFD=y | 72 | CONFIG_TIMERFD=y |
71 | CONFIG_EVENTFD=y | 73 | CONFIG_EVENTFD=y |
72 | # CONFIG_SHMEM is not set | 74 | # CONFIG_SHMEM is not set |
75 | CONFIG_AIO=y | ||
73 | CONFIG_VM_EVENT_COUNTERS=y | 76 | CONFIG_VM_EVENT_COUNTERS=y |
77 | CONFIG_PCI_QUIRKS=y | ||
74 | CONFIG_SLAB=y | 78 | CONFIG_SLAB=y |
75 | # CONFIG_SLUB is not set | 79 | # CONFIG_SLUB is not set |
76 | # CONFIG_SLOB is not set | 80 | # CONFIG_SLOB is not set |
77 | # CONFIG_PROFILING is not set | 81 | # CONFIG_PROFILING is not set |
78 | # CONFIG_MARKERS is not set | 82 | # CONFIG_MARKERS is not set |
79 | CONFIG_HAVE_OPROFILE=y | 83 | CONFIG_HAVE_OPROFILE=y |
80 | # CONFIG_HAVE_KPROBES is not set | 84 | # CONFIG_KPROBES is not set |
81 | # CONFIG_HAVE_KRETPROBES is not set | 85 | CONFIG_HAVE_IOREMAP_PROT=y |
82 | CONFIG_PROC_PAGE_MONITOR=y | 86 | CONFIG_HAVE_KPROBES=y |
87 | CONFIG_HAVE_KRETPROBES=y | ||
88 | CONFIG_HAVE_ARCH_TRACEHOOK=y | ||
89 | CONFIG_HAVE_CLK=y | ||
90 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
83 | CONFIG_SLABINFO=y | 91 | CONFIG_SLABINFO=y |
84 | CONFIG_TINY_SHMEM=y | 92 | CONFIG_TINY_SHMEM=y |
85 | CONFIG_BASE_SMALL=0 | 93 | CONFIG_BASE_SMALL=0 |
86 | CONFIG_MODULES=y | 94 | CONFIG_MODULES=y |
95 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
87 | CONFIG_MODULE_UNLOAD=y | 96 | CONFIG_MODULE_UNLOAD=y |
88 | CONFIG_MODULE_FORCE_UNLOAD=y | 97 | CONFIG_MODULE_FORCE_UNLOAD=y |
89 | # CONFIG_MODVERSIONS is not set | 98 | # CONFIG_MODVERSIONS is not set |
90 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 99 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
91 | # CONFIG_KMOD is not set | 100 | CONFIG_KMOD=y |
92 | CONFIG_BLOCK=y | 101 | CONFIG_BLOCK=y |
93 | # CONFIG_LBD is not set | 102 | # CONFIG_LBD is not set |
94 | # CONFIG_BLK_DEV_IO_TRACE is not set | 103 | # CONFIG_BLK_DEV_IO_TRACE is not set |
95 | # CONFIG_LSF is not set | 104 | # CONFIG_LSF is not set |
96 | # CONFIG_BLK_DEV_BSG is not set | 105 | # CONFIG_BLK_DEV_BSG is not set |
106 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
97 | 107 | ||
98 | # | 108 | # |
99 | # IO Schedulers | 109 | # IO Schedulers |
@@ -108,7 +118,7 @@ CONFIG_DEFAULT_DEADLINE=y | |||
108 | # CONFIG_DEFAULT_NOOP is not set | 118 | # CONFIG_DEFAULT_NOOP is not set |
109 | CONFIG_DEFAULT_IOSCHED="deadline" | 119 | CONFIG_DEFAULT_IOSCHED="deadline" |
110 | CONFIG_CLASSIC_RCU=y | 120 | CONFIG_CLASSIC_RCU=y |
111 | # CONFIG_PREEMPT_RCU is not set | 121 | # CONFIG_FREEZER is not set |
112 | 122 | ||
113 | # | 123 | # |
114 | # System type | 124 | # System type |
@@ -118,6 +128,7 @@ CONFIG_CPU_SH3=y | |||
118 | # CONFIG_CPU_SUBTYPE_SH7203 is not set | 128 | # CONFIG_CPU_SUBTYPE_SH7203 is not set |
119 | # CONFIG_CPU_SUBTYPE_SH7206 is not set | 129 | # CONFIG_CPU_SUBTYPE_SH7206 is not set |
120 | # CONFIG_CPU_SUBTYPE_SH7263 is not set | 130 | # CONFIG_CPU_SUBTYPE_SH7263 is not set |
131 | # CONFIG_CPU_SUBTYPE_MXG is not set | ||
121 | # CONFIG_CPU_SUBTYPE_SH7705 is not set | 132 | # CONFIG_CPU_SUBTYPE_SH7705 is not set |
122 | # CONFIG_CPU_SUBTYPE_SH7706 is not set | 133 | # CONFIG_CPU_SUBTYPE_SH7706 is not set |
123 | # CONFIG_CPU_SUBTYPE_SH7707 is not set | 134 | # CONFIG_CPU_SUBTYPE_SH7707 is not set |
@@ -135,6 +146,7 @@ CONFIG_CPU_SUBTYPE_SH7710=y | |||
135 | # CONFIG_CPU_SUBTYPE_SH7751R is not set | 146 | # CONFIG_CPU_SUBTYPE_SH7751R is not set |
136 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | 147 | # CONFIG_CPU_SUBTYPE_SH7760 is not set |
137 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | 148 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set |
149 | # CONFIG_CPU_SUBTYPE_SH7723 is not set | ||
138 | # CONFIG_CPU_SUBTYPE_SH7763 is not set | 150 | # CONFIG_CPU_SUBTYPE_SH7763 is not set |
139 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | 151 | # CONFIG_CPU_SUBTYPE_SH7770 is not set |
140 | # CONFIG_CPU_SUBTYPE_SH7780 is not set | 152 | # CONFIG_CPU_SUBTYPE_SH7780 is not set |
@@ -164,7 +176,9 @@ CONFIG_ARCH_POPULATES_NODE_MAP=y | |||
164 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | 176 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y |
165 | CONFIG_PAGE_SIZE_4KB=y | 177 | CONFIG_PAGE_SIZE_4KB=y |
166 | # CONFIG_PAGE_SIZE_8KB is not set | 178 | # CONFIG_PAGE_SIZE_8KB is not set |
179 | # CONFIG_PAGE_SIZE_16KB is not set | ||
167 | # CONFIG_PAGE_SIZE_64KB is not set | 180 | # CONFIG_PAGE_SIZE_64KB is not set |
181 | CONFIG_ENTRY_OFFSET=0x00001000 | ||
168 | CONFIG_SELECT_MEMORY_MODEL=y | 182 | CONFIG_SELECT_MEMORY_MODEL=y |
169 | CONFIG_FLATMEM_MANUAL=y | 183 | CONFIG_FLATMEM_MANUAL=y |
170 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 184 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
@@ -172,11 +186,13 @@ CONFIG_FLATMEM_MANUAL=y | |||
172 | CONFIG_FLATMEM=y | 186 | CONFIG_FLATMEM=y |
173 | CONFIG_FLAT_NODE_MEM_MAP=y | 187 | CONFIG_FLAT_NODE_MEM_MAP=y |
174 | CONFIG_SPARSEMEM_STATIC=y | 188 | CONFIG_SPARSEMEM_STATIC=y |
175 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | 189 | CONFIG_PAGEFLAGS_EXTENDED=y |
176 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 190 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
177 | # CONFIG_RESOURCES_64BIT is not set | 191 | # CONFIG_RESOURCES_64BIT is not set |
192 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
178 | CONFIG_ZONE_DMA_FLAG=0 | 193 | CONFIG_ZONE_DMA_FLAG=0 |
179 | CONFIG_NR_QUICK=2 | 194 | CONFIG_NR_QUICK=2 |
195 | CONFIG_UNEVICTABLE_LRU=y | ||
180 | 196 | ||
181 | # | 197 | # |
182 | # Cache configuration | 198 | # Cache configuration |
@@ -209,7 +225,6 @@ CONFIG_CPU_HAS_DSP=y | |||
209 | CONFIG_SH_TMU=y | 225 | CONFIG_SH_TMU=y |
210 | CONFIG_SH_TIMER_IRQ=16 | 226 | CONFIG_SH_TIMER_IRQ=16 |
211 | CONFIG_SH_PCLK_FREQ=32768000 | 227 | CONFIG_SH_PCLK_FREQ=32768000 |
212 | # CONFIG_TICK_ONESHOT is not set | ||
213 | # CONFIG_NO_HZ is not set | 228 | # CONFIG_NO_HZ is not set |
214 | # CONFIG_HIGH_RES_TIMERS is not set | 229 | # CONFIG_HIGH_RES_TIMERS is not set |
215 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | 230 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y |
@@ -245,10 +260,10 @@ CONFIG_HZ=250 | |||
245 | # CONFIG_SCHED_HRTICK is not set | 260 | # CONFIG_SCHED_HRTICK is not set |
246 | # CONFIG_KEXEC is not set | 261 | # CONFIG_KEXEC is not set |
247 | # CONFIG_CRASH_DUMP is not set | 262 | # CONFIG_CRASH_DUMP is not set |
263 | # CONFIG_SECCOMP is not set | ||
248 | CONFIG_PREEMPT_NONE=y | 264 | CONFIG_PREEMPT_NONE=y |
249 | # CONFIG_PREEMPT_VOLUNTARY is not set | 265 | # CONFIG_PREEMPT_VOLUNTARY is not set |
250 | # CONFIG_PREEMPT is not set | 266 | # CONFIG_PREEMPT is not set |
251 | CONFIG_RCU_TRACE=y | ||
252 | CONFIG_GUSA=y | 267 | CONFIG_GUSA=y |
253 | # CONFIG_GUSA_RB is not set | 268 | # CONFIG_GUSA_RB is not set |
254 | 269 | ||
@@ -269,11 +284,9 @@ CONFIG_BOOT_LINK_OFFSET=0x00800000 | |||
269 | # Executable file formats | 284 | # Executable file formats |
270 | # | 285 | # |
271 | CONFIG_BINFMT_ELF=y | 286 | CONFIG_BINFMT_ELF=y |
287 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
288 | # CONFIG_HAVE_AOUT is not set | ||
272 | # CONFIG_BINFMT_MISC is not set | 289 | # CONFIG_BINFMT_MISC is not set |
273 | |||
274 | # | ||
275 | # Networking | ||
276 | # | ||
277 | CONFIG_NET=y | 290 | CONFIG_NET=y |
278 | 291 | ||
279 | # | 292 | # |
@@ -311,10 +324,7 @@ CONFIG_INET_XFRM_MODE_BEET=y | |||
311 | CONFIG_TCP_CONG_CUBIC=y | 324 | CONFIG_TCP_CONG_CUBIC=y |
312 | CONFIG_DEFAULT_TCP_CONG="cubic" | 325 | CONFIG_DEFAULT_TCP_CONG="cubic" |
313 | # CONFIG_TCP_MD5SIG is not set | 326 | # CONFIG_TCP_MD5SIG is not set |
314 | # CONFIG_IP_VS is not set | ||
315 | # CONFIG_IPV6 is not set | 327 | # CONFIG_IPV6 is not set |
316 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
317 | # CONFIG_INET6_TUNNEL is not set | ||
318 | # CONFIG_NETWORK_SECMARK is not set | 328 | # CONFIG_NETWORK_SECMARK is not set |
319 | CONFIG_NETFILTER=y | 329 | CONFIG_NETFILTER=y |
320 | # CONFIG_NETFILTER_DEBUG is not set | 330 | # CONFIG_NETFILTER_DEBUG is not set |
@@ -327,10 +337,12 @@ CONFIG_NETFILTER_ADVANCED=y | |||
327 | # CONFIG_NETFILTER_NETLINK_LOG is not set | 337 | # CONFIG_NETFILTER_NETLINK_LOG is not set |
328 | # CONFIG_NF_CONNTRACK is not set | 338 | # CONFIG_NF_CONNTRACK is not set |
329 | # CONFIG_NETFILTER_XTABLES is not set | 339 | # CONFIG_NETFILTER_XTABLES is not set |
340 | # CONFIG_IP_VS is not set | ||
330 | 341 | ||
331 | # | 342 | # |
332 | # IP: Netfilter Configuration | 343 | # IP: Netfilter Configuration |
333 | # | 344 | # |
345 | # CONFIG_NF_DEFRAG_IPV4 is not set | ||
334 | # CONFIG_IP_NF_QUEUE is not set | 346 | # CONFIG_IP_NF_QUEUE is not set |
335 | # CONFIG_IP_NF_IPTABLES is not set | 347 | # CONFIG_IP_NF_IPTABLES is not set |
336 | # CONFIG_IP_NF_ARPTABLES is not set | 348 | # CONFIG_IP_NF_ARPTABLES is not set |
@@ -339,6 +351,7 @@ CONFIG_NETFILTER_ADVANCED=y | |||
339 | # CONFIG_TIPC is not set | 351 | # CONFIG_TIPC is not set |
340 | # CONFIG_ATM is not set | 352 | # CONFIG_ATM is not set |
341 | # CONFIG_BRIDGE is not set | 353 | # CONFIG_BRIDGE is not set |
354 | # CONFIG_NET_DSA is not set | ||
342 | # CONFIG_VLAN_8021Q is not set | 355 | # CONFIG_VLAN_8021Q is not set |
343 | # CONFIG_DECNET is not set | 356 | # CONFIG_DECNET is not set |
344 | # CONFIG_LLC2 is not set | 357 | # CONFIG_LLC2 is not set |
@@ -357,7 +370,7 @@ CONFIG_NET_SCH_CBQ=y | |||
357 | # CONFIG_NET_SCH_HTB is not set | 370 | # CONFIG_NET_SCH_HTB is not set |
358 | # CONFIG_NET_SCH_HFSC is not set | 371 | # CONFIG_NET_SCH_HFSC is not set |
359 | # CONFIG_NET_SCH_PRIO is not set | 372 | # CONFIG_NET_SCH_PRIO is not set |
360 | # CONFIG_NET_SCH_RR is not set | 373 | # CONFIG_NET_SCH_MULTIQ is not set |
361 | # CONFIG_NET_SCH_RED is not set | 374 | # CONFIG_NET_SCH_RED is not set |
362 | # CONFIG_NET_SCH_SFQ is not set | 375 | # CONFIG_NET_SCH_SFQ is not set |
363 | # CONFIG_NET_SCH_TEQL is not set | 376 | # CONFIG_NET_SCH_TEQL is not set |
@@ -395,11 +408,10 @@ CONFIG_NET_SCH_FIFO=y | |||
395 | # CONFIG_IRDA is not set | 408 | # CONFIG_IRDA is not set |
396 | # CONFIG_BT is not set | 409 | # CONFIG_BT is not set |
397 | # CONFIG_AF_RXRPC is not set | 410 | # CONFIG_AF_RXRPC is not set |
398 | 411 | # CONFIG_PHONET is not set | |
399 | # | 412 | CONFIG_WIRELESS=y |
400 | # Wireless | ||
401 | # | ||
402 | # CONFIG_CFG80211 is not set | 413 | # CONFIG_CFG80211 is not set |
414 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
403 | # CONFIG_WIRELESS_EXT is not set | 415 | # CONFIG_WIRELESS_EXT is not set |
404 | # CONFIG_MAC80211 is not set | 416 | # CONFIG_MAC80211 is not set |
405 | # CONFIG_IEEE80211 is not set | 417 | # CONFIG_IEEE80211 is not set |
@@ -417,6 +429,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | |||
417 | CONFIG_STANDALONE=y | 429 | CONFIG_STANDALONE=y |
418 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 430 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
419 | CONFIG_FW_LOADER=y | 431 | CONFIG_FW_LOADER=y |
432 | CONFIG_FIRMWARE_IN_KERNEL=y | ||
433 | CONFIG_EXTRA_FIRMWARE="" | ||
420 | # CONFIG_SYS_HYPERVISOR is not set | 434 | # CONFIG_SYS_HYPERVISOR is not set |
421 | # CONFIG_CONNECTOR is not set | 435 | # CONFIG_CONNECTOR is not set |
422 | CONFIG_MTD=y | 436 | CONFIG_MTD=y |
@@ -425,6 +439,7 @@ CONFIG_MTD=y | |||
425 | CONFIG_MTD_PARTITIONS=y | 439 | CONFIG_MTD_PARTITIONS=y |
426 | # CONFIG_MTD_REDBOOT_PARTS is not set | 440 | # CONFIG_MTD_REDBOOT_PARTS is not set |
427 | # CONFIG_MTD_CMDLINE_PARTS is not set | 441 | # CONFIG_MTD_CMDLINE_PARTS is not set |
442 | # CONFIG_MTD_AR7_PARTS is not set | ||
428 | 443 | ||
429 | # | 444 | # |
430 | # User Modules And Translation Layers | 445 | # User Modules And Translation Layers |
@@ -500,6 +515,7 @@ CONFIG_BLK_DEV=y | |||
500 | # CONFIG_BLK_DEV_RAM is not set | 515 | # CONFIG_BLK_DEV_RAM is not set |
501 | # CONFIG_CDROM_PKTCDVD is not set | 516 | # CONFIG_CDROM_PKTCDVD is not set |
502 | # CONFIG_ATA_OVER_ETH is not set | 517 | # CONFIG_ATA_OVER_ETH is not set |
518 | # CONFIG_BLK_DEV_HD is not set | ||
503 | CONFIG_MISC_DEVICES=y | 519 | CONFIG_MISC_DEVICES=y |
504 | # CONFIG_EEPROM_93CX6 is not set | 520 | # CONFIG_EEPROM_93CX6 is not set |
505 | # CONFIG_ENCLOSURE_SERVICES is not set | 521 | # CONFIG_ENCLOSURE_SERVICES is not set |
@@ -516,7 +532,6 @@ CONFIG_HAVE_IDE=y | |||
516 | # CONFIG_ATA is not set | 532 | # CONFIG_ATA is not set |
517 | # CONFIG_MD is not set | 533 | # CONFIG_MD is not set |
518 | CONFIG_NETDEVICES=y | 534 | CONFIG_NETDEVICES=y |
519 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
520 | # CONFIG_DUMMY is not set | 535 | # CONFIG_DUMMY is not set |
521 | # CONFIG_BONDING is not set | 536 | # CONFIG_BONDING is not set |
522 | # CONFIG_MACVLAN is not set | 537 | # CONFIG_MACVLAN is not set |
@@ -528,14 +543,18 @@ CONFIG_NET_ETHERNET=y | |||
528 | # CONFIG_MII is not set | 543 | # CONFIG_MII is not set |
529 | # CONFIG_AX88796 is not set | 544 | # CONFIG_AX88796 is not set |
530 | # CONFIG_STNIC is not set | 545 | # CONFIG_STNIC is not set |
546 | # CONFIG_SH_ETH is not set | ||
531 | # CONFIG_SMC91X is not set | 547 | # CONFIG_SMC91X is not set |
548 | # CONFIG_SMC911X is not set | ||
532 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | 549 | # CONFIG_IBM_NEW_EMAC_ZMII is not set |
533 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 550 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
534 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 551 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
535 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 552 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
553 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
554 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
555 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
536 | # CONFIG_B44 is not set | 556 | # CONFIG_B44 is not set |
537 | CONFIG_NETDEV_1000=y | 557 | CONFIG_NETDEV_1000=y |
538 | # CONFIG_E1000E_ENABLED is not set | ||
539 | CONFIG_NETDEV_10000=y | 558 | CONFIG_NETDEV_10000=y |
540 | 559 | ||
541 | # | 560 | # |
@@ -543,6 +562,7 @@ CONFIG_NETDEV_10000=y | |||
543 | # | 562 | # |
544 | # CONFIG_WLAN_PRE80211 is not set | 563 | # CONFIG_WLAN_PRE80211 is not set |
545 | # CONFIG_WLAN_80211 is not set | 564 | # CONFIG_WLAN_80211 is not set |
565 | # CONFIG_IWLWIFI_LEDS is not set | ||
546 | # CONFIG_WAN is not set | 566 | # CONFIG_WAN is not set |
547 | # CONFIG_PPP is not set | 567 | # CONFIG_PPP is not set |
548 | # CONFIG_SLIP is not set | 568 | # CONFIG_SLIP is not set |
@@ -587,6 +607,7 @@ CONFIG_INPUT=y | |||
587 | # Character devices | 607 | # Character devices |
588 | # | 608 | # |
589 | # CONFIG_VT is not set | 609 | # CONFIG_VT is not set |
610 | CONFIG_DEVKMEM=y | ||
590 | # CONFIG_SERIAL_NONSTANDARD is not set | 611 | # CONFIG_SERIAL_NONSTANDARD is not set |
591 | 612 | ||
592 | # | 613 | # |
@@ -611,12 +632,7 @@ CONFIG_HW_RANDOM=y | |||
611 | # CONFIG_RAW_DRIVER is not set | 632 | # CONFIG_RAW_DRIVER is not set |
612 | # CONFIG_TCG_TPM is not set | 633 | # CONFIG_TCG_TPM is not set |
613 | # CONFIG_I2C is not set | 634 | # CONFIG_I2C is not set |
614 | |||
615 | # | ||
616 | # SPI support | ||
617 | # | ||
618 | # CONFIG_SPI is not set | 635 | # CONFIG_SPI is not set |
619 | # CONFIG_SPI_MASTER is not set | ||
620 | # CONFIG_W1 is not set | 636 | # CONFIG_W1 is not set |
621 | # CONFIG_POWER_SUPPLY is not set | 637 | # CONFIG_POWER_SUPPLY is not set |
622 | # CONFIG_HWMON is not set | 638 | # CONFIG_HWMON is not set |
@@ -632,13 +648,26 @@ CONFIG_SSB_POSSIBLE=y | |||
632 | # | 648 | # |
633 | # Multifunction device drivers | 649 | # Multifunction device drivers |
634 | # | 650 | # |
651 | # CONFIG_MFD_CORE is not set | ||
635 | # CONFIG_MFD_SM501 is not set | 652 | # CONFIG_MFD_SM501 is not set |
653 | # CONFIG_HTC_PASIC3 is not set | ||
654 | # CONFIG_MFD_TMIO is not set | ||
655 | # CONFIG_MFD_WM8400 is not set | ||
636 | 656 | ||
637 | # | 657 | # |
638 | # Multimedia devices | 658 | # Multimedia devices |
639 | # | 659 | # |
660 | |||
661 | # | ||
662 | # Multimedia core support | ||
663 | # | ||
640 | # CONFIG_VIDEO_DEV is not set | 664 | # CONFIG_VIDEO_DEV is not set |
641 | # CONFIG_DVB_CORE is not set | 665 | # CONFIG_DVB_CORE is not set |
666 | # CONFIG_VIDEO_MEDIA is not set | ||
667 | |||
668 | # | ||
669 | # Multimedia drivers | ||
670 | # | ||
642 | # CONFIG_DAB is not set | 671 | # CONFIG_DAB is not set |
643 | 672 | ||
644 | # | 673 | # |
@@ -653,20 +682,28 @@ CONFIG_SSB_POSSIBLE=y | |||
653 | # Display device support | 682 | # Display device support |
654 | # | 683 | # |
655 | # CONFIG_DISPLAY_SUPPORT is not set | 684 | # CONFIG_DISPLAY_SUPPORT is not set |
656 | |||
657 | # | ||
658 | # Sound | ||
659 | # | ||
660 | # CONFIG_SOUND is not set | 685 | # CONFIG_SOUND is not set |
661 | CONFIG_HID_SUPPORT=y | 686 | CONFIG_HID_SUPPORT=y |
662 | CONFIG_HID=y | 687 | CONFIG_HID=y |
663 | # CONFIG_HID_DEBUG is not set | 688 | # CONFIG_HID_DEBUG is not set |
664 | # CONFIG_HIDRAW is not set | 689 | # CONFIG_HIDRAW is not set |
690 | # CONFIG_HID_PID is not set | ||
691 | |||
692 | # | ||
693 | # Special HID drivers | ||
694 | # | ||
695 | CONFIG_HID_COMPAT=y | ||
665 | CONFIG_USB_SUPPORT=y | 696 | CONFIG_USB_SUPPORT=y |
666 | CONFIG_USB_ARCH_HAS_HCD=y | 697 | CONFIG_USB_ARCH_HAS_HCD=y |
667 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 698 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
668 | # CONFIG_USB_ARCH_HAS_EHCI is not set | 699 | # CONFIG_USB_ARCH_HAS_EHCI is not set |
669 | # CONFIG_USB is not set | 700 | # CONFIG_USB is not set |
701 | # CONFIG_USB_OTG_WHITELIST is not set | ||
702 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | ||
703 | |||
704 | # | ||
705 | # Enable Host or Gadget support to see Inventra options | ||
706 | # | ||
670 | 707 | ||
671 | # | 708 | # |
672 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 709 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -675,24 +712,23 @@ CONFIG_USB_ARCH_HAS_HCD=y | |||
675 | # CONFIG_MMC is not set | 712 | # CONFIG_MMC is not set |
676 | # CONFIG_MEMSTICK is not set | 713 | # CONFIG_MEMSTICK is not set |
677 | # CONFIG_NEW_LEDS is not set | 714 | # CONFIG_NEW_LEDS is not set |
715 | # CONFIG_ACCESSIBILITY is not set | ||
678 | # CONFIG_RTC_CLASS is not set | 716 | # CONFIG_RTC_CLASS is not set |
679 | 717 | # CONFIG_DMADEVICES is not set | |
680 | # | ||
681 | # Userspace I/O | ||
682 | # | ||
683 | # CONFIG_UIO is not set | 718 | # CONFIG_UIO is not set |
719 | # CONFIG_STAGING is not set | ||
684 | 720 | ||
685 | # | 721 | # |
686 | # File systems | 722 | # File systems |
687 | # | 723 | # |
688 | # CONFIG_EXT2_FS is not set | 724 | # CONFIG_EXT2_FS is not set |
689 | # CONFIG_EXT3_FS is not set | 725 | # CONFIG_EXT3_FS is not set |
690 | # CONFIG_EXT4DEV_FS is not set | 726 | # CONFIG_EXT4_FS is not set |
691 | # CONFIG_REISERFS_FS is not set | 727 | # CONFIG_REISERFS_FS is not set |
692 | # CONFIG_JFS_FS is not set | 728 | # CONFIG_JFS_FS is not set |
693 | # CONFIG_FS_POSIX_ACL is not set | 729 | # CONFIG_FS_POSIX_ACL is not set |
730 | CONFIG_FILE_LOCKING=y | ||
694 | # CONFIG_XFS_FS is not set | 731 | # CONFIG_XFS_FS is not set |
695 | # CONFIG_GFS2_FS is not set | ||
696 | # CONFIG_OCFS2_FS is not set | 732 | # CONFIG_OCFS2_FS is not set |
697 | # CONFIG_DNOTIFY is not set | 733 | # CONFIG_DNOTIFY is not set |
698 | # CONFIG_INOTIFY is not set | 734 | # CONFIG_INOTIFY is not set |
@@ -720,6 +756,7 @@ CONFIG_USB_ARCH_HAS_HCD=y | |||
720 | CONFIG_PROC_FS=y | 756 | CONFIG_PROC_FS=y |
721 | # CONFIG_PROC_KCORE is not set | 757 | # CONFIG_PROC_KCORE is not set |
722 | CONFIG_PROC_SYSCTL=y | 758 | CONFIG_PROC_SYSCTL=y |
759 | CONFIG_PROC_PAGE_MONITOR=y | ||
723 | CONFIG_SYSFS=y | 760 | CONFIG_SYSFS=y |
724 | CONFIG_TMPFS=y | 761 | CONFIG_TMPFS=y |
725 | # CONFIG_TMPFS_POSIX_ACL is not set | 762 | # CONFIG_TMPFS_POSIX_ACL is not set |
@@ -751,6 +788,7 @@ CONFIG_JFFS2_RTIME=y | |||
751 | # CONFIG_CRAMFS is not set | 788 | # CONFIG_CRAMFS is not set |
752 | # CONFIG_VXFS_FS is not set | 789 | # CONFIG_VXFS_FS is not set |
753 | # CONFIG_MINIX_FS is not set | 790 | # CONFIG_MINIX_FS is not set |
791 | # CONFIG_OMFS_FS is not set | ||
754 | # CONFIG_HPFS_FS is not set | 792 | # CONFIG_HPFS_FS is not set |
755 | # CONFIG_QNX4FS_FS is not set | 793 | # CONFIG_QNX4FS_FS is not set |
756 | # CONFIG_ROMFS_FS is not set | 794 | # CONFIG_ROMFS_FS is not set |
@@ -780,12 +818,19 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y | |||
780 | # CONFIG_PRINTK_TIME is not set | 818 | # CONFIG_PRINTK_TIME is not set |
781 | CONFIG_ENABLE_WARN_DEPRECATED=y | 819 | CONFIG_ENABLE_WARN_DEPRECATED=y |
782 | CONFIG_ENABLE_MUST_CHECK=y | 820 | CONFIG_ENABLE_MUST_CHECK=y |
821 | CONFIG_FRAME_WARN=1024 | ||
783 | # CONFIG_MAGIC_SYSRQ is not set | 822 | # CONFIG_MAGIC_SYSRQ is not set |
784 | # CONFIG_UNUSED_SYMBOLS is not set | 823 | # CONFIG_UNUSED_SYMBOLS is not set |
785 | CONFIG_DEBUG_FS=y | 824 | CONFIG_DEBUG_FS=y |
786 | # CONFIG_HEADERS_CHECK is not set | 825 | # CONFIG_HEADERS_CHECK is not set |
787 | # CONFIG_DEBUG_KERNEL is not set | 826 | # CONFIG_DEBUG_KERNEL is not set |
788 | # CONFIG_DEBUG_BUGVERBOSE is not set | 827 | # CONFIG_DEBUG_BUGVERBOSE is not set |
828 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
829 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
830 | # CONFIG_LATENCYTOP is not set | ||
831 | CONFIG_NOP_TRACER=y | ||
832 | CONFIG_HAVE_FTRACE=y | ||
833 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
789 | # CONFIG_SAMPLES is not set | 834 | # CONFIG_SAMPLES is not set |
790 | # CONFIG_SH_STANDARD_BIOS is not set | 835 | # CONFIG_SH_STANDARD_BIOS is not set |
791 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 836 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
@@ -796,51 +841,91 @@ CONFIG_DEBUG_FS=y | |||
796 | # | 841 | # |
797 | # CONFIG_KEYS is not set | 842 | # CONFIG_KEYS is not set |
798 | # CONFIG_SECURITY is not set | 843 | # CONFIG_SECURITY is not set |
844 | # CONFIG_SECURITYFS is not set | ||
799 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 845 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
800 | CONFIG_CRYPTO=y | 846 | CONFIG_CRYPTO=y |
801 | # CONFIG_CRYPTO_SEQIV is not set | 847 | |
848 | # | ||
849 | # Crypto core or helper | ||
850 | # | ||
851 | # CONFIG_CRYPTO_FIPS is not set | ||
802 | # CONFIG_CRYPTO_MANAGER is not set | 852 | # CONFIG_CRYPTO_MANAGER is not set |
853 | # CONFIG_CRYPTO_GF128MUL is not set | ||
854 | # CONFIG_CRYPTO_NULL is not set | ||
855 | # CONFIG_CRYPTO_CRYPTD is not set | ||
856 | # CONFIG_CRYPTO_AUTHENC is not set | ||
857 | # CONFIG_CRYPTO_TEST is not set | ||
858 | |||
859 | # | ||
860 | # Authenticated Encryption with Associated Data | ||
861 | # | ||
862 | # CONFIG_CRYPTO_CCM is not set | ||
863 | # CONFIG_CRYPTO_GCM is not set | ||
864 | # CONFIG_CRYPTO_SEQIV is not set | ||
865 | |||
866 | # | ||
867 | # Block modes | ||
868 | # | ||
869 | # CONFIG_CRYPTO_CBC is not set | ||
870 | # CONFIG_CRYPTO_CTR is not set | ||
871 | # CONFIG_CRYPTO_CTS is not set | ||
872 | # CONFIG_CRYPTO_ECB is not set | ||
873 | # CONFIG_CRYPTO_LRW is not set | ||
874 | # CONFIG_CRYPTO_PCBC is not set | ||
875 | # CONFIG_CRYPTO_XTS is not set | ||
876 | |||
877 | # | ||
878 | # Hash modes | ||
879 | # | ||
803 | # CONFIG_CRYPTO_HMAC is not set | 880 | # CONFIG_CRYPTO_HMAC is not set |
804 | # CONFIG_CRYPTO_XCBC is not set | 881 | # CONFIG_CRYPTO_XCBC is not set |
805 | # CONFIG_CRYPTO_NULL is not set | 882 | |
883 | # | ||
884 | # Digest | ||
885 | # | ||
886 | # CONFIG_CRYPTO_CRC32C is not set | ||
806 | # CONFIG_CRYPTO_MD4 is not set | 887 | # CONFIG_CRYPTO_MD4 is not set |
807 | # CONFIG_CRYPTO_MD5 is not set | 888 | # CONFIG_CRYPTO_MD5 is not set |
889 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
890 | # CONFIG_CRYPTO_RMD128 is not set | ||
891 | # CONFIG_CRYPTO_RMD160 is not set | ||
892 | # CONFIG_CRYPTO_RMD256 is not set | ||
893 | # CONFIG_CRYPTO_RMD320 is not set | ||
808 | # CONFIG_CRYPTO_SHA1 is not set | 894 | # CONFIG_CRYPTO_SHA1 is not set |
809 | # CONFIG_CRYPTO_SHA256 is not set | 895 | # CONFIG_CRYPTO_SHA256 is not set |
810 | # CONFIG_CRYPTO_SHA512 is not set | 896 | # CONFIG_CRYPTO_SHA512 is not set |
811 | # CONFIG_CRYPTO_WP512 is not set | ||
812 | # CONFIG_CRYPTO_TGR192 is not set | 897 | # CONFIG_CRYPTO_TGR192 is not set |
813 | # CONFIG_CRYPTO_GF128MUL is not set | 898 | # CONFIG_CRYPTO_WP512 is not set |
814 | # CONFIG_CRYPTO_ECB is not set | 899 | |
815 | # CONFIG_CRYPTO_CBC is not set | 900 | # |
816 | # CONFIG_CRYPTO_PCBC is not set | 901 | # Ciphers |
817 | # CONFIG_CRYPTO_LRW is not set | 902 | # |
818 | # CONFIG_CRYPTO_XTS is not set | ||
819 | # CONFIG_CRYPTO_CTR is not set | ||
820 | # CONFIG_CRYPTO_GCM is not set | ||
821 | # CONFIG_CRYPTO_CCM is not set | ||
822 | # CONFIG_CRYPTO_CRYPTD is not set | ||
823 | # CONFIG_CRYPTO_DES is not set | ||
824 | # CONFIG_CRYPTO_FCRYPT is not set | ||
825 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
826 | # CONFIG_CRYPTO_TWOFISH is not set | ||
827 | # CONFIG_CRYPTO_SERPENT is not set | ||
828 | # CONFIG_CRYPTO_AES is not set | 903 | # CONFIG_CRYPTO_AES is not set |
904 | # CONFIG_CRYPTO_ANUBIS is not set | ||
905 | # CONFIG_CRYPTO_ARC4 is not set | ||
906 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
907 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
829 | # CONFIG_CRYPTO_CAST5 is not set | 908 | # CONFIG_CRYPTO_CAST5 is not set |
830 | # CONFIG_CRYPTO_CAST6 is not set | 909 | # CONFIG_CRYPTO_CAST6 is not set |
831 | # CONFIG_CRYPTO_TEA is not set | 910 | # CONFIG_CRYPTO_DES is not set |
832 | # CONFIG_CRYPTO_ARC4 is not set | 911 | # CONFIG_CRYPTO_FCRYPT is not set |
833 | # CONFIG_CRYPTO_KHAZAD is not set | 912 | # CONFIG_CRYPTO_KHAZAD is not set |
834 | # CONFIG_CRYPTO_ANUBIS is not set | ||
835 | # CONFIG_CRYPTO_SEED is not set | ||
836 | # CONFIG_CRYPTO_SALSA20 is not set | 913 | # CONFIG_CRYPTO_SALSA20 is not set |
914 | # CONFIG_CRYPTO_SEED is not set | ||
915 | # CONFIG_CRYPTO_SERPENT is not set | ||
916 | # CONFIG_CRYPTO_TEA is not set | ||
917 | # CONFIG_CRYPTO_TWOFISH is not set | ||
918 | |||
919 | # | ||
920 | # Compression | ||
921 | # | ||
837 | # CONFIG_CRYPTO_DEFLATE is not set | 922 | # CONFIG_CRYPTO_DEFLATE is not set |
838 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
839 | # CONFIG_CRYPTO_CRC32C is not set | ||
840 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
841 | # CONFIG_CRYPTO_TEST is not set | ||
842 | # CONFIG_CRYPTO_AUTHENC is not set | ||
843 | # CONFIG_CRYPTO_LZO is not set | 923 | # CONFIG_CRYPTO_LZO is not set |
924 | |||
925 | # | ||
926 | # Random Number Generation | ||
927 | # | ||
928 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
844 | CONFIG_CRYPTO_HW=y | 929 | CONFIG_CRYPTO_HW=y |
845 | 930 | ||
846 | # | 931 | # |
@@ -849,6 +934,7 @@ CONFIG_CRYPTO_HW=y | |||
849 | CONFIG_BITREVERSE=y | 934 | CONFIG_BITREVERSE=y |
850 | # CONFIG_CRC_CCITT is not set | 935 | # CONFIG_CRC_CCITT is not set |
851 | # CONFIG_CRC16 is not set | 936 | # CONFIG_CRC16 is not set |
937 | # CONFIG_CRC_T10DIF is not set | ||
852 | # CONFIG_CRC_ITU_T is not set | 938 | # CONFIG_CRC_ITU_T is not set |
853 | CONFIG_CRC32=y | 939 | CONFIG_CRC32=y |
854 | # CONFIG_CRC7 is not set | 940 | # CONFIG_CRC7 is not set |
diff --git a/arch/sh/configs/sh7763rdp_defconfig b/arch/sh/configs/sh7763rdp_defconfig index baf830c4a7e4..6a77f691fb87 100644 --- a/arch/sh/configs/sh7763rdp_defconfig +++ b/arch/sh/configs/sh7763rdp_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.27-rc2 | 3 | # Linux kernel version: 2.6.27 |
4 | # Fri Aug 8 13:44:20 2008 | 4 | # Wed Oct 22 19:37:12 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -13,11 +13,12 @@ CONFIG_GENERIC_HWEIGHT=y | |||
13 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
15 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
16 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
17 | CONFIG_GENERIC_TIME=y | 17 | CONFIG_GENERIC_TIME=y |
18 | CONFIG_GENERIC_CLOCKEVENTS=y | 18 | CONFIG_GENERIC_CLOCKEVENTS=y |
19 | CONFIG_STACKTRACE_SUPPORT=y | 19 | CONFIG_STACKTRACE_SUPPORT=y |
20 | CONFIG_LOCKDEP_SUPPORT=y | 20 | CONFIG_LOCKDEP_SUPPORT=y |
21 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
21 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 22 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
22 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 23 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
23 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 24 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
@@ -76,7 +77,9 @@ CONFIG_SIGNALFD=y | |||
76 | CONFIG_TIMERFD=y | 77 | CONFIG_TIMERFD=y |
77 | CONFIG_EVENTFD=y | 78 | CONFIG_EVENTFD=y |
78 | CONFIG_SHMEM=y | 79 | CONFIG_SHMEM=y |
80 | CONFIG_AIO=y | ||
79 | CONFIG_VM_EVENT_COUNTERS=y | 81 | CONFIG_VM_EVENT_COUNTERS=y |
82 | CONFIG_PCI_QUIRKS=y | ||
80 | CONFIG_SLAB=y | 83 | CONFIG_SLAB=y |
81 | # CONFIG_SLUB is not set | 84 | # CONFIG_SLUB is not set |
82 | # CONFIG_SLOB is not set | 85 | # CONFIG_SLOB is not set |
@@ -84,15 +87,12 @@ CONFIG_PROFILING=y | |||
84 | # CONFIG_MARKERS is not set | 87 | # CONFIG_MARKERS is not set |
85 | CONFIG_OPROFILE=y | 88 | CONFIG_OPROFILE=y |
86 | CONFIG_HAVE_OPROFILE=y | 89 | CONFIG_HAVE_OPROFILE=y |
87 | # CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set | 90 | # CONFIG_KPROBES is not set |
88 | # CONFIG_HAVE_IOREMAP_PROT is not set | 91 | CONFIG_HAVE_IOREMAP_PROT=y |
89 | # CONFIG_HAVE_KPROBES is not set | 92 | CONFIG_HAVE_KPROBES=y |
90 | # CONFIG_HAVE_KRETPROBES is not set | 93 | CONFIG_HAVE_KRETPROBES=y |
91 | # CONFIG_HAVE_ARCH_TRACEHOOK is not set | 94 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
92 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
93 | # CONFIG_USE_GENERIC_SMP_HELPERS is not set | ||
94 | CONFIG_HAVE_CLK=y | 95 | CONFIG_HAVE_CLK=y |
95 | CONFIG_PROC_PAGE_MONITOR=y | ||
96 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | 96 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
97 | CONFIG_SLABINFO=y | 97 | CONFIG_SLABINFO=y |
98 | CONFIG_RT_MUTEXES=y | 98 | CONFIG_RT_MUTEXES=y |
@@ -124,6 +124,7 @@ CONFIG_DEFAULT_AS=y | |||
124 | # CONFIG_DEFAULT_NOOP is not set | 124 | # CONFIG_DEFAULT_NOOP is not set |
125 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 125 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
126 | CONFIG_CLASSIC_RCU=y | 126 | CONFIG_CLASSIC_RCU=y |
127 | # CONFIG_FREEZER is not set | ||
127 | 128 | ||
128 | # | 129 | # |
129 | # System type | 130 | # System type |
@@ -181,6 +182,7 @@ CONFIG_MAX_ACTIVE_REGIONS=1 | |||
181 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 182 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
182 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | 183 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y |
183 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 184 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
185 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | ||
184 | CONFIG_PAGE_SIZE_4KB=y | 186 | CONFIG_PAGE_SIZE_4KB=y |
185 | # CONFIG_PAGE_SIZE_8KB is not set | 187 | # CONFIG_PAGE_SIZE_8KB is not set |
186 | # CONFIG_PAGE_SIZE_16KB is not set | 188 | # CONFIG_PAGE_SIZE_16KB is not set |
@@ -193,13 +195,15 @@ CONFIG_SPARSEMEM_MANUAL=y | |||
193 | CONFIG_SPARSEMEM=y | 195 | CONFIG_SPARSEMEM=y |
194 | CONFIG_HAVE_MEMORY_PRESENT=y | 196 | CONFIG_HAVE_MEMORY_PRESENT=y |
195 | CONFIG_SPARSEMEM_STATIC=y | 197 | CONFIG_SPARSEMEM_STATIC=y |
196 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
197 | # CONFIG_MEMORY_HOTPLUG is not set | 198 | # CONFIG_MEMORY_HOTPLUG is not set |
198 | CONFIG_PAGEFLAGS_EXTENDED=y | 199 | CONFIG_PAGEFLAGS_EXTENDED=y |
199 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 200 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
201 | CONFIG_MIGRATION=y | ||
200 | # CONFIG_RESOURCES_64BIT is not set | 202 | # CONFIG_RESOURCES_64BIT is not set |
203 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
201 | CONFIG_ZONE_DMA_FLAG=0 | 204 | CONFIG_ZONE_DMA_FLAG=0 |
202 | CONFIG_NR_QUICK=2 | 205 | CONFIG_NR_QUICK=2 |
206 | CONFIG_UNEVICTABLE_LRU=y | ||
203 | 207 | ||
204 | # | 208 | # |
205 | # Cache configuration | 209 | # Cache configuration |
@@ -231,7 +235,6 @@ CONFIG_SH_SH7763RDP=y | |||
231 | CONFIG_SH_TMU=y | 235 | CONFIG_SH_TMU=y |
232 | CONFIG_SH_TIMER_IRQ=28 | 236 | CONFIG_SH_TIMER_IRQ=28 |
233 | CONFIG_SH_PCLK_FREQ=66666666 | 237 | CONFIG_SH_PCLK_FREQ=66666666 |
234 | # CONFIG_TICK_ONESHOT is not set | ||
235 | # CONFIG_NO_HZ is not set | 238 | # CONFIG_NO_HZ is not set |
236 | # CONFIG_HIGH_RES_TIMERS is not set | 239 | # CONFIG_HIGH_RES_TIMERS is not set |
237 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | 240 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y |
@@ -291,6 +294,8 @@ CONFIG_CMDLINE="console=ttySC2,115200 root=/dev/sda1 rootdelay=10" | |||
291 | # Executable file formats | 294 | # Executable file formats |
292 | # | 295 | # |
293 | CONFIG_BINFMT_ELF=y | 296 | CONFIG_BINFMT_ELF=y |
297 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
298 | # CONFIG_HAVE_AOUT is not set | ||
294 | # CONFIG_BINFMT_MISC is not set | 299 | # CONFIG_BINFMT_MISC is not set |
295 | CONFIG_NET=y | 300 | CONFIG_NET=y |
296 | 301 | ||
@@ -341,6 +346,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
341 | # CONFIG_TIPC is not set | 346 | # CONFIG_TIPC is not set |
342 | # CONFIG_ATM is not set | 347 | # CONFIG_ATM is not set |
343 | # CONFIG_BRIDGE is not set | 348 | # CONFIG_BRIDGE is not set |
349 | # CONFIG_NET_DSA is not set | ||
344 | # CONFIG_VLAN_8021Q is not set | 350 | # CONFIG_VLAN_8021Q is not set |
345 | # CONFIG_DECNET is not set | 351 | # CONFIG_DECNET is not set |
346 | # CONFIG_LLC2 is not set | 352 | # CONFIG_LLC2 is not set |
@@ -361,11 +367,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
361 | # CONFIG_IRDA is not set | 367 | # CONFIG_IRDA is not set |
362 | # CONFIG_BT is not set | 368 | # CONFIG_BT is not set |
363 | # CONFIG_AF_RXRPC is not set | 369 | # CONFIG_AF_RXRPC is not set |
364 | 370 | # CONFIG_PHONET is not set | |
365 | # | 371 | CONFIG_WIRELESS=y |
366 | # Wireless | ||
367 | # | ||
368 | # CONFIG_CFG80211 is not set | 372 | # CONFIG_CFG80211 is not set |
373 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
369 | CONFIG_WIRELESS_EXT=y | 374 | CONFIG_WIRELESS_EXT=y |
370 | CONFIG_WIRELESS_EXT_SYSFS=y | 375 | CONFIG_WIRELESS_EXT_SYSFS=y |
371 | # CONFIG_MAC80211 is not set | 376 | # CONFIG_MAC80211 is not set |
@@ -563,6 +568,9 @@ CONFIG_SH_ETH=y | |||
563 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 568 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
564 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 569 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
565 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 570 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
571 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
572 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
573 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
566 | # CONFIG_B44 is not set | 574 | # CONFIG_B44 is not set |
567 | # CONFIG_NETDEV_1000 is not set | 575 | # CONFIG_NETDEV_1000 is not set |
568 | # CONFIG_NETDEV_10000 is not set | 576 | # CONFIG_NETDEV_10000 is not set |
@@ -675,6 +683,8 @@ CONFIG_SSB_POSSIBLE=y | |||
675 | # CONFIG_MFD_CORE is not set | 683 | # CONFIG_MFD_CORE is not set |
676 | # CONFIG_MFD_SM501 is not set | 684 | # CONFIG_MFD_SM501 is not set |
677 | # CONFIG_HTC_PASIC3 is not set | 685 | # CONFIG_HTC_PASIC3 is not set |
686 | # CONFIG_MFD_TMIO is not set | ||
687 | # CONFIG_MFD_WM8400 is not set | ||
678 | 688 | ||
679 | # | 689 | # |
680 | # Multimedia devices | 690 | # Multimedia devices |
@@ -700,6 +710,7 @@ CONFIG_SSB_POSSIBLE=y | |||
700 | CONFIG_FB=y | 710 | CONFIG_FB=y |
701 | # CONFIG_FIRMWARE_EDID is not set | 711 | # CONFIG_FIRMWARE_EDID is not set |
702 | # CONFIG_FB_DDC is not set | 712 | # CONFIG_FB_DDC is not set |
713 | # CONFIG_FB_BOOT_VESA_SUPPORT is not set | ||
703 | CONFIG_FB_CFB_FILLRECT=y | 714 | CONFIG_FB_CFB_FILLRECT=y |
704 | CONFIG_FB_CFB_COPYAREA=y | 715 | CONFIG_FB_CFB_COPYAREA=y |
705 | CONFIG_FB_CFB_IMAGEBLIT=y | 716 | CONFIG_FB_CFB_IMAGEBLIT=y |
@@ -725,6 +736,7 @@ CONFIG_FB_BOTH_ENDIAN=y | |||
725 | # CONFIG_FB_SH_MOBILE_LCDC is not set | 736 | # CONFIG_FB_SH_MOBILE_LCDC is not set |
726 | CONFIG_FB_SH7760=y | 737 | CONFIG_FB_SH7760=y |
727 | # CONFIG_FB_VIRTUAL is not set | 738 | # CONFIG_FB_VIRTUAL is not set |
739 | # CONFIG_FB_METRONOME is not set | ||
728 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 740 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
729 | 741 | ||
730 | # | 742 | # |
@@ -768,6 +780,7 @@ CONFIG_USB_DEVICE_CLASS=y | |||
768 | # CONFIG_USB_OTG is not set | 780 | # CONFIG_USB_OTG is not set |
769 | # CONFIG_USB_OTG_WHITELIST is not set | 781 | # CONFIG_USB_OTG_WHITELIST is not set |
770 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | 782 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set |
783 | CONFIG_USB_MON=y | ||
771 | 784 | ||
772 | # | 785 | # |
773 | # USB Host Controller Drivers | 786 | # USB Host Controller Drivers |
@@ -788,6 +801,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
788 | # CONFIG_USB_ACM is not set | 801 | # CONFIG_USB_ACM is not set |
789 | # CONFIG_USB_PRINTER is not set | 802 | # CONFIG_USB_PRINTER is not set |
790 | # CONFIG_USB_WDM is not set | 803 | # CONFIG_USB_WDM is not set |
804 | # CONFIG_USB_TMC is not set | ||
791 | 805 | ||
792 | # | 806 | # |
793 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 807 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -817,7 +831,6 @@ CONFIG_USB_STORAGE=y | |||
817 | # | 831 | # |
818 | # CONFIG_USB_MDC800 is not set | 832 | # CONFIG_USB_MDC800 is not set |
819 | # CONFIG_USB_MICROTEK is not set | 833 | # CONFIG_USB_MICROTEK is not set |
820 | CONFIG_USB_MON=y | ||
821 | 834 | ||
822 | # | 835 | # |
823 | # USB port drivers | 836 | # USB port drivers |
@@ -830,7 +843,7 @@ CONFIG_USB_MON=y | |||
830 | # CONFIG_USB_EMI62 is not set | 843 | # CONFIG_USB_EMI62 is not set |
831 | # CONFIG_USB_EMI26 is not set | 844 | # CONFIG_USB_EMI26 is not set |
832 | # CONFIG_USB_ADUTUX is not set | 845 | # CONFIG_USB_ADUTUX is not set |
833 | # CONFIG_USB_AUERSWALD is not set | 846 | # CONFIG_USB_SEVSEG is not set |
834 | # CONFIG_USB_RIO500 is not set | 847 | # CONFIG_USB_RIO500 is not set |
835 | # CONFIG_USB_LEGOTOWER is not set | 848 | # CONFIG_USB_LEGOTOWER is not set |
836 | # CONFIG_USB_LCD is not set | 849 | # CONFIG_USB_LCD is not set |
@@ -846,13 +859,14 @@ CONFIG_USB_MON=y | |||
846 | # CONFIG_USB_TRANCEVIBRATOR is not set | 859 | # CONFIG_USB_TRANCEVIBRATOR is not set |
847 | # CONFIG_USB_IOWARRIOR is not set | 860 | # CONFIG_USB_IOWARRIOR is not set |
848 | # CONFIG_USB_ISIGHTFW is not set | 861 | # CONFIG_USB_ISIGHTFW is not set |
862 | # CONFIG_USB_VST is not set | ||
849 | # CONFIG_USB_GADGET is not set | 863 | # CONFIG_USB_GADGET is not set |
850 | CONFIG_MMC=y | 864 | CONFIG_MMC=y |
851 | # CONFIG_MMC_DEBUG is not set | 865 | # CONFIG_MMC_DEBUG is not set |
852 | # CONFIG_MMC_UNSAFE_RESUME is not set | 866 | # CONFIG_MMC_UNSAFE_RESUME is not set |
853 | 867 | ||
854 | # | 868 | # |
855 | # MMC/SD Card Drivers | 869 | # MMC/SD/SDIO Card Drivers |
856 | # | 870 | # |
857 | CONFIG_MMC_BLOCK=y | 871 | CONFIG_MMC_BLOCK=y |
858 | CONFIG_MMC_BLOCK_BOUNCE=y | 872 | CONFIG_MMC_BLOCK_BOUNCE=y |
@@ -860,7 +874,7 @@ CONFIG_MMC_BLOCK_BOUNCE=y | |||
860 | # CONFIG_MMC_TEST is not set | 874 | # CONFIG_MMC_TEST is not set |
861 | 875 | ||
862 | # | 876 | # |
863 | # MMC/SD Host Controller Drivers | 877 | # MMC/SD/SDIO Host Controller Drivers |
864 | # | 878 | # |
865 | # CONFIG_MMC_SDHCI is not set | 879 | # CONFIG_MMC_SDHCI is not set |
866 | # CONFIG_MEMSTICK is not set | 880 | # CONFIG_MEMSTICK is not set |
@@ -869,6 +883,7 @@ CONFIG_MMC_BLOCK_BOUNCE=y | |||
869 | # CONFIG_RTC_CLASS is not set | 883 | # CONFIG_RTC_CLASS is not set |
870 | # CONFIG_DMADEVICES is not set | 884 | # CONFIG_DMADEVICES is not set |
871 | # CONFIG_UIO is not set | 885 | # CONFIG_UIO is not set |
886 | # CONFIG_STAGING is not set | ||
872 | 887 | ||
873 | # | 888 | # |
874 | # File systems | 889 | # File systems |
@@ -880,12 +895,13 @@ CONFIG_EXT3_FS=y | |||
880 | CONFIG_EXT3_FS_XATTR=y | 895 | CONFIG_EXT3_FS_XATTR=y |
881 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 896 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
882 | # CONFIG_EXT3_FS_SECURITY is not set | 897 | # CONFIG_EXT3_FS_SECURITY is not set |
883 | # CONFIG_EXT4DEV_FS is not set | 898 | # CONFIG_EXT4_FS is not set |
884 | CONFIG_JBD=y | 899 | CONFIG_JBD=y |
885 | CONFIG_FS_MBCACHE=y | 900 | CONFIG_FS_MBCACHE=y |
886 | # CONFIG_REISERFS_FS is not set | 901 | # CONFIG_REISERFS_FS is not set |
887 | # CONFIG_JFS_FS is not set | 902 | # CONFIG_JFS_FS is not set |
888 | CONFIG_FS_POSIX_ACL=y | 903 | CONFIG_FS_POSIX_ACL=y |
904 | CONFIG_FILE_LOCKING=y | ||
889 | # CONFIG_XFS_FS is not set | 905 | # CONFIG_XFS_FS is not set |
890 | # CONFIG_OCFS2_FS is not set | 906 | # CONFIG_OCFS2_FS is not set |
891 | CONFIG_DNOTIFY=y | 907 | CONFIG_DNOTIFY=y |
@@ -919,6 +935,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
919 | CONFIG_PROC_FS=y | 935 | CONFIG_PROC_FS=y |
920 | CONFIG_PROC_KCORE=y | 936 | CONFIG_PROC_KCORE=y |
921 | CONFIG_PROC_SYSCTL=y | 937 | CONFIG_PROC_SYSCTL=y |
938 | CONFIG_PROC_PAGE_MONITOR=y | ||
922 | CONFIG_SYSFS=y | 939 | CONFIG_SYSFS=y |
923 | CONFIG_TMPFS=y | 940 | CONFIG_TMPFS=y |
924 | CONFIG_TMPFS_POSIX_ACL=y | 941 | CONFIG_TMPFS_POSIX_ACL=y |
@@ -955,6 +972,7 @@ CONFIG_ROOT_NFS=y | |||
955 | CONFIG_LOCKD=y | 972 | CONFIG_LOCKD=y |
956 | CONFIG_NFS_COMMON=y | 973 | CONFIG_NFS_COMMON=y |
957 | CONFIG_SUNRPC=y | 974 | CONFIG_SUNRPC=y |
975 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
958 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 976 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
959 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 977 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
960 | # CONFIG_SMB_FS is not set | 978 | # CONFIG_SMB_FS is not set |
@@ -1025,6 +1043,11 @@ CONFIG_FRAME_WARN=1024 | |||
1025 | # CONFIG_DEBUG_KERNEL is not set | 1043 | # CONFIG_DEBUG_KERNEL is not set |
1026 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1044 | # CONFIG_DEBUG_BUGVERBOSE is not set |
1027 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1045 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1046 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
1047 | # CONFIG_LATENCYTOP is not set | ||
1048 | CONFIG_NOP_TRACER=y | ||
1049 | CONFIG_HAVE_FTRACE=y | ||
1050 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
1028 | # CONFIG_SAMPLES is not set | 1051 | # CONFIG_SAMPLES is not set |
1029 | # CONFIG_SH_STANDARD_BIOS is not set | 1052 | # CONFIG_SH_STANDARD_BIOS is not set |
1030 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 1053 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
@@ -1035,12 +1058,14 @@ CONFIG_FRAME_WARN=1024 | |||
1035 | # | 1058 | # |
1036 | # CONFIG_KEYS is not set | 1059 | # CONFIG_KEYS is not set |
1037 | # CONFIG_SECURITY is not set | 1060 | # CONFIG_SECURITY is not set |
1061 | # CONFIG_SECURITYFS is not set | ||
1038 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1062 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
1039 | CONFIG_CRYPTO=y | 1063 | CONFIG_CRYPTO=y |
1040 | 1064 | ||
1041 | # | 1065 | # |
1042 | # Crypto core or helper | 1066 | # Crypto core or helper |
1043 | # | 1067 | # |
1068 | # CONFIG_CRYPTO_FIPS is not set | ||
1044 | # CONFIG_CRYPTO_MANAGER is not set | 1069 | # CONFIG_CRYPTO_MANAGER is not set |
1045 | # CONFIG_CRYPTO_GF128MUL is not set | 1070 | # CONFIG_CRYPTO_GF128MUL is not set |
1046 | # CONFIG_CRYPTO_NULL is not set | 1071 | # CONFIG_CRYPTO_NULL is not set |
@@ -1113,13 +1138,17 @@ CONFIG_CRYPTO=y | |||
1113 | # | 1138 | # |
1114 | # CONFIG_CRYPTO_DEFLATE is not set | 1139 | # CONFIG_CRYPTO_DEFLATE is not set |
1115 | # CONFIG_CRYPTO_LZO is not set | 1140 | # CONFIG_CRYPTO_LZO is not set |
1141 | |||
1142 | # | ||
1143 | # Random Number Generation | ||
1144 | # | ||
1145 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
1116 | CONFIG_CRYPTO_HW=y | 1146 | CONFIG_CRYPTO_HW=y |
1117 | 1147 | ||
1118 | # | 1148 | # |
1119 | # Library routines | 1149 | # Library routines |
1120 | # | 1150 | # |
1121 | CONFIG_BITREVERSE=y | 1151 | CONFIG_BITREVERSE=y |
1122 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
1123 | # CONFIG_CRC_CCITT is not set | 1152 | # CONFIG_CRC_CCITT is not set |
1124 | # CONFIG_CRC16 is not set | 1153 | # CONFIG_CRC16 is not set |
1125 | CONFIG_CRC_T10DIF=y | 1154 | CONFIG_CRC_T10DIF=y |
diff --git a/arch/sh/configs/sh7785lcr_defconfig b/arch/sh/configs/sh7785lcr_defconfig index ff72697365d1..07e33c285b93 100644 --- a/arch/sh/configs/sh7785lcr_defconfig +++ b/arch/sh/configs/sh7785lcr_defconfig | |||
@@ -1,27 +1,29 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.26-rc8 | 3 | # Linux kernel version: 2.6.27 |
4 | # Tue Jul 15 21:37:59 2008 | 4 | # Wed Oct 22 19:49:23 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
8 | CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig" | ||
8 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
9 | CONFIG_GENERIC_BUG=y | 10 | CONFIG_GENERIC_BUG=y |
10 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
11 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
12 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
13 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
14 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
15 | CONFIG_GENERIC_TIME=y | 17 | CONFIG_GENERIC_TIME=y |
16 | CONFIG_GENERIC_CLOCKEVENTS=y | 18 | CONFIG_GENERIC_CLOCKEVENTS=y |
17 | CONFIG_SYS_SUPPORTS_NUMA=y | 19 | CONFIG_SYS_SUPPORTS_NUMA=y |
18 | CONFIG_SYS_SUPPORTS_PCI=y | 20 | CONFIG_SYS_SUPPORTS_PCI=y |
19 | CONFIG_STACKTRACE_SUPPORT=y | 21 | CONFIG_STACKTRACE_SUPPORT=y |
20 | CONFIG_LOCKDEP_SUPPORT=y | 22 | CONFIG_LOCKDEP_SUPPORT=y |
23 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
21 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 24 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
22 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 25 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
23 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 26 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
24 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
25 | CONFIG_IO_TRAPPED=y | 27 | CONFIG_IO_TRAPPED=y |
26 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 28 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
27 | 29 | ||
@@ -61,7 +63,6 @@ CONFIG_SYSCTL=y | |||
61 | CONFIG_EMBEDDED=y | 63 | CONFIG_EMBEDDED=y |
62 | CONFIG_UID16=y | 64 | CONFIG_UID16=y |
63 | CONFIG_SYSCTL_SYSCALL=y | 65 | CONFIG_SYSCTL_SYSCALL=y |
64 | CONFIG_SYSCTL_SYSCALL_CHECK=y | ||
65 | CONFIG_KALLSYMS=y | 66 | CONFIG_KALLSYMS=y |
66 | # CONFIG_KALLSYMS_ALL is not set | 67 | # CONFIG_KALLSYMS_ALL is not set |
67 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 68 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
@@ -78,7 +79,9 @@ CONFIG_SIGNALFD=y | |||
78 | CONFIG_TIMERFD=y | 79 | CONFIG_TIMERFD=y |
79 | CONFIG_EVENTFD=y | 80 | CONFIG_EVENTFD=y |
80 | CONFIG_SHMEM=y | 81 | CONFIG_SHMEM=y |
82 | CONFIG_AIO=y | ||
81 | CONFIG_VM_EVENT_COUNTERS=y | 83 | CONFIG_VM_EVENT_COUNTERS=y |
84 | CONFIG_PCI_QUIRKS=y | ||
82 | CONFIG_SLAB=y | 85 | CONFIG_SLAB=y |
83 | # CONFIG_SLUB is not set | 86 | # CONFIG_SLUB is not set |
84 | # CONFIG_SLOB is not set | 87 | # CONFIG_SLOB is not set |
@@ -86,10 +89,13 @@ CONFIG_PROFILING=y | |||
86 | # CONFIG_MARKERS is not set | 89 | # CONFIG_MARKERS is not set |
87 | # CONFIG_OPROFILE is not set | 90 | # CONFIG_OPROFILE is not set |
88 | CONFIG_HAVE_OPROFILE=y | 91 | CONFIG_HAVE_OPROFILE=y |
89 | # CONFIG_HAVE_KPROBES is not set | 92 | # CONFIG_KPROBES is not set |
90 | # CONFIG_HAVE_KRETPROBES is not set | 93 | CONFIG_HAVE_IOREMAP_PROT=y |
91 | # CONFIG_HAVE_DMA_ATTRS is not set | 94 | CONFIG_HAVE_KPROBES=y |
92 | CONFIG_PROC_PAGE_MONITOR=y | 95 | CONFIG_HAVE_KRETPROBES=y |
96 | CONFIG_HAVE_ARCH_TRACEHOOK=y | ||
97 | CONFIG_HAVE_CLK=y | ||
98 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
93 | CONFIG_SLABINFO=y | 99 | CONFIG_SLABINFO=y |
94 | CONFIG_RT_MUTEXES=y | 100 | CONFIG_RT_MUTEXES=y |
95 | # CONFIG_TINY_SHMEM is not set | 101 | # CONFIG_TINY_SHMEM is not set |
@@ -106,6 +112,7 @@ CONFIG_BLOCK=y | |||
106 | # CONFIG_BLK_DEV_IO_TRACE is not set | 112 | # CONFIG_BLK_DEV_IO_TRACE is not set |
107 | # CONFIG_LSF is not set | 113 | # CONFIG_LSF is not set |
108 | # CONFIG_BLK_DEV_BSG is not set | 114 | # CONFIG_BLK_DEV_BSG is not set |
115 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
109 | 116 | ||
110 | # | 117 | # |
111 | # IO Schedulers | 118 | # IO Schedulers |
@@ -120,6 +127,7 @@ CONFIG_DEFAULT_CFQ=y | |||
120 | # CONFIG_DEFAULT_NOOP is not set | 127 | # CONFIG_DEFAULT_NOOP is not set |
121 | CONFIG_DEFAULT_IOSCHED="cfq" | 128 | CONFIG_DEFAULT_IOSCHED="cfq" |
122 | CONFIG_CLASSIC_RCU=y | 129 | CONFIG_CLASSIC_RCU=y |
130 | # CONFIG_FREEZER is not set | ||
123 | 131 | ||
124 | # | 132 | # |
125 | # System type | 133 | # System type |
@@ -181,10 +189,12 @@ CONFIG_MAX_ACTIVE_REGIONS=2 | |||
181 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 189 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
182 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | 190 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y |
183 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 191 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
192 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | ||
184 | CONFIG_PAGE_SIZE_4KB=y | 193 | CONFIG_PAGE_SIZE_4KB=y |
185 | # CONFIG_PAGE_SIZE_8KB is not set | 194 | # CONFIG_PAGE_SIZE_8KB is not set |
186 | # CONFIG_PAGE_SIZE_16KB is not set | 195 | # CONFIG_PAGE_SIZE_16KB is not set |
187 | # CONFIG_PAGE_SIZE_64KB is not set | 196 | # CONFIG_PAGE_SIZE_64KB is not set |
197 | CONFIG_ENTRY_OFFSET=0x00001000 | ||
188 | CONFIG_SELECT_MEMORY_MODEL=y | 198 | CONFIG_SELECT_MEMORY_MODEL=y |
189 | # CONFIG_FLATMEM_MANUAL is not set | 199 | # CONFIG_FLATMEM_MANUAL is not set |
190 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 200 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
@@ -192,13 +202,15 @@ CONFIG_SPARSEMEM_MANUAL=y | |||
192 | CONFIG_SPARSEMEM=y | 202 | CONFIG_SPARSEMEM=y |
193 | CONFIG_HAVE_MEMORY_PRESENT=y | 203 | CONFIG_HAVE_MEMORY_PRESENT=y |
194 | CONFIG_SPARSEMEM_STATIC=y | 204 | CONFIG_SPARSEMEM_STATIC=y |
195 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
196 | # CONFIG_MEMORY_HOTPLUG is not set | 205 | # CONFIG_MEMORY_HOTPLUG is not set |
197 | CONFIG_PAGEFLAGS_EXTENDED=y | 206 | CONFIG_PAGEFLAGS_EXTENDED=y |
198 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 207 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
208 | CONFIG_MIGRATION=y | ||
199 | # CONFIG_RESOURCES_64BIT is not set | 209 | # CONFIG_RESOURCES_64BIT is not set |
210 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
200 | CONFIG_ZONE_DMA_FLAG=0 | 211 | CONFIG_ZONE_DMA_FLAG=0 |
201 | CONFIG_NR_QUICK=2 | 212 | CONFIG_NR_QUICK=2 |
213 | CONFIG_UNEVICTABLE_LRU=y | ||
202 | 214 | ||
203 | # | 215 | # |
204 | # Cache configuration | 216 | # Cache configuration |
@@ -266,9 +278,10 @@ CONFIG_HZ_250=y | |||
266 | # CONFIG_HZ_300 is not set | 278 | # CONFIG_HZ_300 is not set |
267 | # CONFIG_HZ_1000 is not set | 279 | # CONFIG_HZ_1000 is not set |
268 | CONFIG_HZ=250 | 280 | CONFIG_HZ=250 |
269 | # CONFIG_SCHED_HRTICK is not set | 281 | CONFIG_SCHED_HRTICK=y |
270 | CONFIG_KEXEC=y | 282 | CONFIG_KEXEC=y |
271 | # CONFIG_CRASH_DUMP is not set | 283 | # CONFIG_CRASH_DUMP is not set |
284 | # CONFIG_SECCOMP is not set | ||
272 | # CONFIG_PREEMPT_NONE is not set | 285 | # CONFIG_PREEMPT_NONE is not set |
273 | # CONFIG_PREEMPT_VOLUNTARY is not set | 286 | # CONFIG_PREEMPT_VOLUNTARY is not set |
274 | CONFIG_PREEMPT=y | 287 | CONFIG_PREEMPT=y |
@@ -299,11 +312,9 @@ CONFIG_PCI_LEGACY=y | |||
299 | # Executable file formats | 312 | # Executable file formats |
300 | # | 313 | # |
301 | CONFIG_BINFMT_ELF=y | 314 | CONFIG_BINFMT_ELF=y |
315 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
316 | # CONFIG_HAVE_AOUT is not set | ||
302 | # CONFIG_BINFMT_MISC is not set | 317 | # CONFIG_BINFMT_MISC is not set |
303 | |||
304 | # | ||
305 | # Networking | ||
306 | # | ||
307 | CONFIG_NET=y | 318 | CONFIG_NET=y |
308 | 319 | ||
309 | # | 320 | # |
@@ -358,6 +369,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
358 | # CONFIG_TIPC is not set | 369 | # CONFIG_TIPC is not set |
359 | # CONFIG_ATM is not set | 370 | # CONFIG_ATM is not set |
360 | # CONFIG_BRIDGE is not set | 371 | # CONFIG_BRIDGE is not set |
372 | # CONFIG_NET_DSA is not set | ||
361 | # CONFIG_VLAN_8021Q is not set | 373 | # CONFIG_VLAN_8021Q is not set |
362 | # CONFIG_DECNET is not set | 374 | # CONFIG_DECNET is not set |
363 | # CONFIG_LLC2 is not set | 375 | # CONFIG_LLC2 is not set |
@@ -378,12 +390,12 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
378 | # CONFIG_IRDA is not set | 390 | # CONFIG_IRDA is not set |
379 | # CONFIG_BT is not set | 391 | # CONFIG_BT is not set |
380 | # CONFIG_AF_RXRPC is not set | 392 | # CONFIG_AF_RXRPC is not set |
381 | 393 | # CONFIG_PHONET is not set | |
382 | # | 394 | CONFIG_WIRELESS=y |
383 | # Wireless | ||
384 | # | ||
385 | # CONFIG_CFG80211 is not set | 395 | # CONFIG_CFG80211 is not set |
396 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
386 | CONFIG_WIRELESS_EXT=y | 397 | CONFIG_WIRELESS_EXT=y |
398 | CONFIG_WIRELESS_EXT_SYSFS=y | ||
387 | # CONFIG_MAC80211 is not set | 399 | # CONFIG_MAC80211 is not set |
388 | # CONFIG_IEEE80211 is not set | 400 | # CONFIG_IEEE80211 is not set |
389 | # CONFIG_RFKILL is not set | 401 | # CONFIG_RFKILL is not set |
@@ -499,6 +511,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096 | |||
499 | # CONFIG_BLK_DEV_XIP is not set | 511 | # CONFIG_BLK_DEV_XIP is not set |
500 | # CONFIG_CDROM_PKTCDVD is not set | 512 | # CONFIG_CDROM_PKTCDVD is not set |
501 | # CONFIG_ATA_OVER_ETH is not set | 513 | # CONFIG_ATA_OVER_ETH is not set |
514 | # CONFIG_BLK_DEV_HD is not set | ||
502 | # CONFIG_MISC_DEVICES is not set | 515 | # CONFIG_MISC_DEVICES is not set |
503 | CONFIG_HAVE_IDE=y | 516 | CONFIG_HAVE_IDE=y |
504 | # CONFIG_IDE is not set | 517 | # CONFIG_IDE is not set |
@@ -541,6 +554,7 @@ CONFIG_SCSI_WAIT_SCAN=m | |||
541 | # CONFIG_SCSI_SAS_LIBSAS is not set | 554 | # CONFIG_SCSI_SAS_LIBSAS is not set |
542 | # CONFIG_SCSI_SRP_ATTRS is not set | 555 | # CONFIG_SCSI_SRP_ATTRS is not set |
543 | # CONFIG_SCSI_LOWLEVEL is not set | 556 | # CONFIG_SCSI_LOWLEVEL is not set |
557 | # CONFIG_SCSI_DH is not set | ||
544 | CONFIG_ATA=y | 558 | CONFIG_ATA=y |
545 | # CONFIG_ATA_NONSTANDARD is not set | 559 | # CONFIG_ATA_NONSTANDARD is not set |
546 | CONFIG_SATA_PMP=y | 560 | CONFIG_SATA_PMP=y |
@@ -615,7 +629,6 @@ CONFIG_SATA_SIL=y | |||
615 | # CONFIG_IEEE1394 is not set | 629 | # CONFIG_IEEE1394 is not set |
616 | # CONFIG_I2O is not set | 630 | # CONFIG_I2O is not set |
617 | CONFIG_NETDEVICES=y | 631 | CONFIG_NETDEVICES=y |
618 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
619 | # CONFIG_DUMMY is not set | 632 | # CONFIG_DUMMY is not set |
620 | # CONFIG_BONDING is not set | 633 | # CONFIG_BONDING is not set |
621 | # CONFIG_MACVLAN is not set | 634 | # CONFIG_MACVLAN is not set |
@@ -624,19 +637,18 @@ CONFIG_NETDEVICES=y | |||
624 | # CONFIG_VETH is not set | 637 | # CONFIG_VETH is not set |
625 | # CONFIG_ARCNET is not set | 638 | # CONFIG_ARCNET is not set |
626 | # CONFIG_NET_ETHERNET is not set | 639 | # CONFIG_NET_ETHERNET is not set |
640 | CONFIG_MII=y | ||
627 | CONFIG_NETDEV_1000=y | 641 | CONFIG_NETDEV_1000=y |
628 | # CONFIG_ACENIC is not set | 642 | # CONFIG_ACENIC is not set |
629 | # CONFIG_DL2K is not set | 643 | # CONFIG_DL2K is not set |
630 | # CONFIG_E1000 is not set | 644 | # CONFIG_E1000 is not set |
631 | # CONFIG_E1000E is not set | 645 | # CONFIG_E1000E is not set |
632 | # CONFIG_E1000E_ENABLED is not set | ||
633 | # CONFIG_IP1000 is not set | 646 | # CONFIG_IP1000 is not set |
634 | # CONFIG_IGB is not set | 647 | # CONFIG_IGB is not set |
635 | # CONFIG_NS83820 is not set | 648 | # CONFIG_NS83820 is not set |
636 | # CONFIG_HAMACHI is not set | 649 | # CONFIG_HAMACHI is not set |
637 | # CONFIG_YELLOWFIN is not set | 650 | # CONFIG_YELLOWFIN is not set |
638 | CONFIG_R8169=y | 651 | CONFIG_R8169=y |
639 | # CONFIG_R8169_NAPI is not set | ||
640 | # CONFIG_SIS190 is not set | 652 | # CONFIG_SIS190 is not set |
641 | # CONFIG_SKGE is not set | 653 | # CONFIG_SKGE is not set |
642 | # CONFIG_SKY2 is not set | 654 | # CONFIG_SKY2 is not set |
@@ -645,6 +657,8 @@ CONFIG_R8169=y | |||
645 | # CONFIG_BNX2 is not set | 657 | # CONFIG_BNX2 is not set |
646 | # CONFIG_QLA3XXX is not set | 658 | # CONFIG_QLA3XXX is not set |
647 | # CONFIG_ATL1 is not set | 659 | # CONFIG_ATL1 is not set |
660 | # CONFIG_ATL1E is not set | ||
661 | # CONFIG_JME is not set | ||
648 | # CONFIG_NETDEV_10000 is not set | 662 | # CONFIG_NETDEV_10000 is not set |
649 | # CONFIG_TR is not set | 663 | # CONFIG_TR is not set |
650 | 664 | ||
@@ -679,7 +693,7 @@ CONFIG_R8169=y | |||
679 | # Input device support | 693 | # Input device support |
680 | # | 694 | # |
681 | CONFIG_INPUT=y | 695 | CONFIG_INPUT=y |
682 | # CONFIG_INPUT_FF_MEMLESS is not set | 696 | CONFIG_INPUT_FF_MEMLESS=m |
683 | # CONFIG_INPUT_POLLDEV is not set | 697 | # CONFIG_INPUT_POLLDEV is not set |
684 | 698 | ||
685 | # | 699 | # |
@@ -720,6 +734,7 @@ CONFIG_INPUT_KEYBOARD=y | |||
720 | # Character devices | 734 | # Character devices |
721 | # | 735 | # |
722 | CONFIG_VT=y | 736 | CONFIG_VT=y |
737 | CONFIG_CONSOLE_TRANSLATIONS=y | ||
723 | CONFIG_VT_CONSOLE=y | 738 | CONFIG_VT_CONSOLE=y |
724 | CONFIG_HW_CONSOLE=y | 739 | CONFIG_HW_CONSOLE=y |
725 | CONFIG_VT_HW_CONSOLE_BINDING=y | 740 | CONFIG_VT_HW_CONSOLE_BINDING=y |
@@ -754,44 +769,65 @@ CONFIG_DEVPORT=y | |||
754 | CONFIG_I2C=y | 769 | CONFIG_I2C=y |
755 | CONFIG_I2C_BOARDINFO=y | 770 | CONFIG_I2C_BOARDINFO=y |
756 | # CONFIG_I2C_CHARDEV is not set | 771 | # CONFIG_I2C_CHARDEV is not set |
772 | CONFIG_I2C_HELPER_AUTO=y | ||
757 | CONFIG_I2C_ALGOPCA=y | 773 | CONFIG_I2C_ALGOPCA=y |
758 | 774 | ||
759 | # | 775 | # |
760 | # I2C Hardware Bus support | 776 | # I2C Hardware Bus support |
761 | # | 777 | # |
778 | |||
779 | # | ||
780 | # PC SMBus host controller drivers | ||
781 | # | ||
762 | # CONFIG_I2C_ALI1535 is not set | 782 | # CONFIG_I2C_ALI1535 is not set |
763 | # CONFIG_I2C_ALI1563 is not set | 783 | # CONFIG_I2C_ALI1563 is not set |
764 | # CONFIG_I2C_ALI15X3 is not set | 784 | # CONFIG_I2C_ALI15X3 is not set |
765 | # CONFIG_I2C_AMD756 is not set | 785 | # CONFIG_I2C_AMD756 is not set |
766 | # CONFIG_I2C_AMD8111 is not set | 786 | # CONFIG_I2C_AMD8111 is not set |
767 | # CONFIG_I2C_I801 is not set | 787 | # CONFIG_I2C_I801 is not set |
768 | # CONFIG_I2C_I810 is not set | 788 | # CONFIG_I2C_ISCH is not set |
769 | # CONFIG_I2C_PIIX4 is not set | 789 | # CONFIG_I2C_PIIX4 is not set |
770 | # CONFIG_I2C_NFORCE2 is not set | 790 | # CONFIG_I2C_NFORCE2 is not set |
771 | # CONFIG_I2C_OCORES is not set | ||
772 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
773 | # CONFIG_I2C_PROSAVAGE is not set | ||
774 | # CONFIG_I2C_SAVAGE4 is not set | ||
775 | # CONFIG_I2C_SIMTEC is not set | ||
776 | # CONFIG_I2C_SIS5595 is not set | 791 | # CONFIG_I2C_SIS5595 is not set |
777 | # CONFIG_I2C_SIS630 is not set | 792 | # CONFIG_I2C_SIS630 is not set |
778 | # CONFIG_I2C_SIS96X is not set | 793 | # CONFIG_I2C_SIS96X is not set |
779 | # CONFIG_I2C_TAOS_EVM is not set | ||
780 | # CONFIG_I2C_STUB is not set | ||
781 | # CONFIG_I2C_TINY_USB is not set | ||
782 | # CONFIG_I2C_VIA is not set | 794 | # CONFIG_I2C_VIA is not set |
783 | # CONFIG_I2C_VIAPRO is not set | 795 | # CONFIG_I2C_VIAPRO is not set |
796 | |||
797 | # | ||
798 | # I2C system bus drivers (mostly embedded / system-on-chip) | ||
799 | # | ||
800 | # CONFIG_I2C_OCORES is not set | ||
801 | # CONFIG_I2C_SH_MOBILE is not set | ||
802 | # CONFIG_I2C_SIMTEC is not set | ||
803 | |||
804 | # | ||
805 | # External I2C/SMBus adapter drivers | ||
806 | # | ||
807 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
808 | # CONFIG_I2C_TAOS_EVM is not set | ||
809 | # CONFIG_I2C_TINY_USB is not set | ||
810 | |||
811 | # | ||
812 | # Graphics adapter I2C/DDC channel drivers | ||
813 | # | ||
784 | # CONFIG_I2C_VOODOO3 is not set | 814 | # CONFIG_I2C_VOODOO3 is not set |
815 | |||
816 | # | ||
817 | # Other I2C/SMBus bus drivers | ||
818 | # | ||
785 | CONFIG_I2C_PCA_PLATFORM=y | 819 | CONFIG_I2C_PCA_PLATFORM=y |
786 | # CONFIG_I2C_SH_MOBILE is not set | 820 | # CONFIG_I2C_STUB is not set |
787 | 821 | ||
788 | # | 822 | # |
789 | # Miscellaneous I2C Chip support | 823 | # Miscellaneous I2C Chip support |
790 | # | 824 | # |
791 | # CONFIG_DS1682 is not set | 825 | # CONFIG_DS1682 is not set |
826 | # CONFIG_AT24 is not set | ||
792 | # CONFIG_SENSORS_EEPROM is not set | 827 | # CONFIG_SENSORS_EEPROM is not set |
793 | # CONFIG_SENSORS_PCF8574 is not set | 828 | # CONFIG_SENSORS_PCF8574 is not set |
794 | # CONFIG_PCF8575 is not set | 829 | # CONFIG_PCF8575 is not set |
830 | # CONFIG_SENSORS_PCA9539 is not set | ||
795 | # CONFIG_SENSORS_PCF8591 is not set | 831 | # CONFIG_SENSORS_PCF8591 is not set |
796 | # CONFIG_SENSORS_MAX6875 is not set | 832 | # CONFIG_SENSORS_MAX6875 is not set |
797 | # CONFIG_SENSORS_TSL2550 is not set | 833 | # CONFIG_SENSORS_TSL2550 is not set |
@@ -816,8 +852,12 @@ CONFIG_SSB_POSSIBLE=y | |||
816 | # | 852 | # |
817 | # Multifunction device drivers | 853 | # Multifunction device drivers |
818 | # | 854 | # |
855 | # CONFIG_MFD_CORE is not set | ||
819 | CONFIG_MFD_SM501=y | 856 | CONFIG_MFD_SM501=y |
820 | # CONFIG_HTC_PASIC3 is not set | 857 | # CONFIG_HTC_PASIC3 is not set |
858 | # CONFIG_MFD_TMIO is not set | ||
859 | # CONFIG_MFD_WM8400 is not set | ||
860 | # CONFIG_MFD_WM8350_I2C is not set | ||
821 | 861 | ||
822 | # | 862 | # |
823 | # Multimedia devices | 863 | # Multimedia devices |
@@ -844,6 +884,7 @@ CONFIG_MFD_SM501=y | |||
844 | CONFIG_FB=y | 884 | CONFIG_FB=y |
845 | # CONFIG_FIRMWARE_EDID is not set | 885 | # CONFIG_FIRMWARE_EDID is not set |
846 | # CONFIG_FB_DDC is not set | 886 | # CONFIG_FB_DDC is not set |
887 | # CONFIG_FB_BOOT_VESA_SUPPORT is not set | ||
847 | CONFIG_FB_CFB_FILLRECT=y | 888 | CONFIG_FB_CFB_FILLRECT=y |
848 | CONFIG_FB_CFB_COPYAREA=y | 889 | CONFIG_FB_CFB_COPYAREA=y |
849 | CONFIG_FB_CFB_IMAGEBLIT=y | 890 | CONFIG_FB_CFB_IMAGEBLIT=y |
@@ -877,6 +918,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y | |||
877 | # CONFIG_FB_S3 is not set | 918 | # CONFIG_FB_S3 is not set |
878 | # CONFIG_FB_SAVAGE is not set | 919 | # CONFIG_FB_SAVAGE is not set |
879 | # CONFIG_FB_SIS is not set | 920 | # CONFIG_FB_SIS is not set |
921 | # CONFIG_FB_VIA is not set | ||
880 | # CONFIG_FB_NEOMAGIC is not set | 922 | # CONFIG_FB_NEOMAGIC is not set |
881 | # CONFIG_FB_KYRO is not set | 923 | # CONFIG_FB_KYRO is not set |
882 | # CONFIG_FB_3DFX is not set | 924 | # CONFIG_FB_3DFX is not set |
@@ -885,8 +927,11 @@ CONFIG_FB_CFB_IMAGEBLIT=y | |||
885 | # CONFIG_FB_TRIDENT is not set | 927 | # CONFIG_FB_TRIDENT is not set |
886 | # CONFIG_FB_ARK is not set | 928 | # CONFIG_FB_ARK is not set |
887 | # CONFIG_FB_PM3 is not set | 929 | # CONFIG_FB_PM3 is not set |
930 | # CONFIG_FB_CARMINE is not set | ||
931 | CONFIG_FB_SH_MOBILE_LCDC=m | ||
888 | CONFIG_FB_SM501=y | 932 | CONFIG_FB_SM501=y |
889 | # CONFIG_FB_VIRTUAL is not set | 933 | # CONFIG_FB_VIRTUAL is not set |
934 | # CONFIG_FB_METRONOME is not set | ||
890 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 935 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
891 | 936 | ||
892 | # | 937 | # |
@@ -911,10 +956,6 @@ CONFIG_LOGO_LINUX_CLUT224=y | |||
911 | # CONFIG_LOGO_SUPERH_MONO is not set | 956 | # CONFIG_LOGO_SUPERH_MONO is not set |
912 | # CONFIG_LOGO_SUPERH_VGA16 is not set | 957 | # CONFIG_LOGO_SUPERH_VGA16 is not set |
913 | # CONFIG_LOGO_SUPERH_CLUT224 is not set | 958 | # CONFIG_LOGO_SUPERH_CLUT224 is not set |
914 | |||
915 | # | ||
916 | # Sound | ||
917 | # | ||
918 | # CONFIG_SOUND is not set | 959 | # CONFIG_SOUND is not set |
919 | CONFIG_HID_SUPPORT=y | 960 | CONFIG_HID_SUPPORT=y |
920 | CONFIG_HID=y | 961 | CONFIG_HID=y |
@@ -925,9 +966,36 @@ CONFIG_HID=y | |||
925 | # USB Input Devices | 966 | # USB Input Devices |
926 | # | 967 | # |
927 | CONFIG_USB_HID=y | 968 | CONFIG_USB_HID=y |
928 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | 969 | # CONFIG_HID_PID is not set |
929 | # CONFIG_HID_FF is not set | ||
930 | # CONFIG_USB_HIDDEV is not set | 970 | # CONFIG_USB_HIDDEV is not set |
971 | |||
972 | # | ||
973 | # Special HID drivers | ||
974 | # | ||
975 | CONFIG_HID_COMPAT=y | ||
976 | CONFIG_HID_A4TECH=y | ||
977 | CONFIG_HID_APPLE=y | ||
978 | CONFIG_HID_BELKIN=y | ||
979 | CONFIG_HID_BRIGHT=y | ||
980 | CONFIG_HID_CHERRY=y | ||
981 | CONFIG_HID_CHICONY=y | ||
982 | CONFIG_HID_CYPRESS=y | ||
983 | CONFIG_HID_DELL=y | ||
984 | CONFIG_HID_EZKEY=y | ||
985 | CONFIG_HID_GYRATION=y | ||
986 | CONFIG_HID_LOGITECH=y | ||
987 | # CONFIG_LOGITECH_FF is not set | ||
988 | # CONFIG_LOGIRUMBLEPAD2_FF is not set | ||
989 | CONFIG_HID_MICROSOFT=y | ||
990 | CONFIG_HID_MONTEREY=y | ||
991 | CONFIG_HID_PANTHERLORD=y | ||
992 | # CONFIG_PANTHERLORD_FF is not set | ||
993 | CONFIG_HID_PETALYNX=y | ||
994 | CONFIG_HID_SAMSUNG=y | ||
995 | CONFIG_HID_SONY=y | ||
996 | CONFIG_HID_SUNPLUS=y | ||
997 | CONFIG_THRUSTMASTER_FF=m | ||
998 | CONFIG_ZEROPLUS_FF=m | ||
931 | CONFIG_USB_SUPPORT=y | 999 | CONFIG_USB_SUPPORT=y |
932 | CONFIG_USB_ARCH_HAS_HCD=y | 1000 | CONFIG_USB_ARCH_HAS_HCD=y |
933 | CONFIG_USB_ARCH_HAS_OHCI=y | 1001 | CONFIG_USB_ARCH_HAS_OHCI=y |
@@ -945,6 +1013,7 @@ CONFIG_USB_DEVICE_CLASS=y | |||
945 | # CONFIG_USB_OTG is not set | 1013 | # CONFIG_USB_OTG is not set |
946 | # CONFIG_USB_OTG_WHITELIST is not set | 1014 | # CONFIG_USB_OTG_WHITELIST is not set |
947 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | 1015 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set |
1016 | CONFIG_USB_MON=y | ||
948 | 1017 | ||
949 | # | 1018 | # |
950 | # USB Host Controller Drivers | 1019 | # USB Host Controller Drivers |
@@ -969,6 +1038,7 @@ CONFIG_USB_R8A66597_HCD=y | |||
969 | # CONFIG_USB_ACM is not set | 1038 | # CONFIG_USB_ACM is not set |
970 | # CONFIG_USB_PRINTER is not set | 1039 | # CONFIG_USB_PRINTER is not set |
971 | # CONFIG_USB_WDM is not set | 1040 | # CONFIG_USB_WDM is not set |
1041 | # CONFIG_USB_TMC is not set | ||
972 | 1042 | ||
973 | # | 1043 | # |
974 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 1044 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -998,7 +1068,6 @@ CONFIG_USB_STORAGE=y | |||
998 | # | 1068 | # |
999 | # CONFIG_USB_MDC800 is not set | 1069 | # CONFIG_USB_MDC800 is not set |
1000 | # CONFIG_USB_MICROTEK is not set | 1070 | # CONFIG_USB_MICROTEK is not set |
1001 | CONFIG_USB_MON=y | ||
1002 | 1071 | ||
1003 | # | 1072 | # |
1004 | # USB port drivers | 1073 | # USB port drivers |
@@ -1011,7 +1080,7 @@ CONFIG_USB_MON=y | |||
1011 | # CONFIG_USB_EMI62 is not set | 1080 | # CONFIG_USB_EMI62 is not set |
1012 | # CONFIG_USB_EMI26 is not set | 1081 | # CONFIG_USB_EMI26 is not set |
1013 | # CONFIG_USB_ADUTUX is not set | 1082 | # CONFIG_USB_ADUTUX is not set |
1014 | # CONFIG_USB_AUERSWALD is not set | 1083 | # CONFIG_USB_SEVSEG is not set |
1015 | # CONFIG_USB_RIO500 is not set | 1084 | # CONFIG_USB_RIO500 is not set |
1016 | # CONFIG_USB_LEGOTOWER is not set | 1085 | # CONFIG_USB_LEGOTOWER is not set |
1017 | # CONFIG_USB_LCD is not set | 1086 | # CONFIG_USB_LCD is not set |
@@ -1029,6 +1098,7 @@ CONFIG_USB_MON=y | |||
1029 | # CONFIG_USB_IOWARRIOR is not set | 1098 | # CONFIG_USB_IOWARRIOR is not set |
1030 | CONFIG_USB_TEST=m | 1099 | CONFIG_USB_TEST=m |
1031 | # CONFIG_USB_ISIGHTFW is not set | 1100 | # CONFIG_USB_ISIGHTFW is not set |
1101 | # CONFIG_USB_VST is not set | ||
1032 | # CONFIG_USB_GADGET is not set | 1102 | # CONFIG_USB_GADGET is not set |
1033 | # CONFIG_MMC is not set | 1103 | # CONFIG_MMC is not set |
1034 | # CONFIG_MEMSTICK is not set | 1104 | # CONFIG_MEMSTICK is not set |
@@ -1073,19 +1143,24 @@ CONFIG_RTC_DRV_RS5C372=y | |||
1073 | # | 1143 | # |
1074 | # Platform RTC drivers | 1144 | # Platform RTC drivers |
1075 | # | 1145 | # |
1146 | # CONFIG_RTC_DRV_DS1286 is not set | ||
1076 | # CONFIG_RTC_DRV_DS1511 is not set | 1147 | # CONFIG_RTC_DRV_DS1511 is not set |
1077 | # CONFIG_RTC_DRV_DS1553 is not set | 1148 | # CONFIG_RTC_DRV_DS1553 is not set |
1078 | # CONFIG_RTC_DRV_DS1742 is not set | 1149 | # CONFIG_RTC_DRV_DS1742 is not set |
1079 | # CONFIG_RTC_DRV_STK17TA8 is not set | 1150 | # CONFIG_RTC_DRV_STK17TA8 is not set |
1080 | # CONFIG_RTC_DRV_M48T86 is not set | 1151 | # CONFIG_RTC_DRV_M48T86 is not set |
1152 | # CONFIG_RTC_DRV_M48T35 is not set | ||
1081 | # CONFIG_RTC_DRV_M48T59 is not set | 1153 | # CONFIG_RTC_DRV_M48T59 is not set |
1154 | # CONFIG_RTC_DRV_BQ4802 is not set | ||
1082 | # CONFIG_RTC_DRV_V3020 is not set | 1155 | # CONFIG_RTC_DRV_V3020 is not set |
1083 | 1156 | ||
1084 | # | 1157 | # |
1085 | # on-CPU RTC drivers | 1158 | # on-CPU RTC drivers |
1086 | # | 1159 | # |
1087 | # CONFIG_RTC_DRV_SH is not set | 1160 | # CONFIG_RTC_DRV_SH is not set |
1161 | # CONFIG_DMADEVICES is not set | ||
1088 | # CONFIG_UIO is not set | 1162 | # CONFIG_UIO is not set |
1163 | # CONFIG_STAGING is not set | ||
1089 | 1164 | ||
1090 | # | 1165 | # |
1091 | # File systems | 1166 | # File systems |
@@ -1097,12 +1172,13 @@ CONFIG_EXT3_FS=y | |||
1097 | CONFIG_EXT3_FS_XATTR=y | 1172 | CONFIG_EXT3_FS_XATTR=y |
1098 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 1173 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
1099 | # CONFIG_EXT3_FS_SECURITY is not set | 1174 | # CONFIG_EXT3_FS_SECURITY is not set |
1100 | # CONFIG_EXT4DEV_FS is not set | 1175 | # CONFIG_EXT4_FS is not set |
1101 | CONFIG_JBD=y | 1176 | CONFIG_JBD=y |
1102 | CONFIG_FS_MBCACHE=y | 1177 | CONFIG_FS_MBCACHE=y |
1103 | # CONFIG_REISERFS_FS is not set | 1178 | # CONFIG_REISERFS_FS is not set |
1104 | # CONFIG_JFS_FS is not set | 1179 | # CONFIG_JFS_FS is not set |
1105 | CONFIG_FS_POSIX_ACL=y | 1180 | CONFIG_FS_POSIX_ACL=y |
1181 | CONFIG_FILE_LOCKING=y | ||
1106 | # CONFIG_XFS_FS is not set | 1182 | # CONFIG_XFS_FS is not set |
1107 | # CONFIG_OCFS2_FS is not set | 1183 | # CONFIG_OCFS2_FS is not set |
1108 | CONFIG_DNOTIFY=y | 1184 | CONFIG_DNOTIFY=y |
@@ -1137,6 +1213,7 @@ CONFIG_NTFS_RW=y | |||
1137 | CONFIG_PROC_FS=y | 1213 | CONFIG_PROC_FS=y |
1138 | CONFIG_PROC_KCORE=y | 1214 | CONFIG_PROC_KCORE=y |
1139 | CONFIG_PROC_SYSCTL=y | 1215 | CONFIG_PROC_SYSCTL=y |
1216 | CONFIG_PROC_PAGE_MONITOR=y | ||
1140 | CONFIG_SYSFS=y | 1217 | CONFIG_SYSFS=y |
1141 | CONFIG_TMPFS=y | 1218 | CONFIG_TMPFS=y |
1142 | # CONFIG_TMPFS_POSIX_ACL is not set | 1219 | # CONFIG_TMPFS_POSIX_ACL is not set |
@@ -1158,6 +1235,7 @@ CONFIG_TMPFS=y | |||
1158 | # CONFIG_CRAMFS is not set | 1235 | # CONFIG_CRAMFS is not set |
1159 | # CONFIG_VXFS_FS is not set | 1236 | # CONFIG_VXFS_FS is not set |
1160 | CONFIG_MINIX_FS=y | 1237 | CONFIG_MINIX_FS=y |
1238 | # CONFIG_OMFS_FS is not set | ||
1161 | # CONFIG_HPFS_FS is not set | 1239 | # CONFIG_HPFS_FS is not set |
1162 | # CONFIG_QNX4FS_FS is not set | 1240 | # CONFIG_QNX4FS_FS is not set |
1163 | # CONFIG_ROMFS_FS is not set | 1241 | # CONFIG_ROMFS_FS is not set |
@@ -1168,18 +1246,18 @@ CONFIG_NFS_FS=y | |||
1168 | CONFIG_NFS_V3=y | 1246 | CONFIG_NFS_V3=y |
1169 | # CONFIG_NFS_V3_ACL is not set | 1247 | # CONFIG_NFS_V3_ACL is not set |
1170 | CONFIG_NFS_V4=y | 1248 | CONFIG_NFS_V4=y |
1249 | CONFIG_ROOT_NFS=y | ||
1171 | CONFIG_NFSD=y | 1250 | CONFIG_NFSD=y |
1172 | CONFIG_NFSD_V3=y | 1251 | CONFIG_NFSD_V3=y |
1173 | # CONFIG_NFSD_V3_ACL is not set | 1252 | # CONFIG_NFSD_V3_ACL is not set |
1174 | CONFIG_NFSD_V4=y | 1253 | CONFIG_NFSD_V4=y |
1175 | CONFIG_ROOT_NFS=y | ||
1176 | CONFIG_LOCKD=y | 1254 | CONFIG_LOCKD=y |
1177 | CONFIG_LOCKD_V4=y | 1255 | CONFIG_LOCKD_V4=y |
1178 | CONFIG_EXPORTFS=y | 1256 | CONFIG_EXPORTFS=y |
1179 | CONFIG_NFS_COMMON=y | 1257 | CONFIG_NFS_COMMON=y |
1180 | CONFIG_SUNRPC=y | 1258 | CONFIG_SUNRPC=y |
1181 | CONFIG_SUNRPC_GSS=y | 1259 | CONFIG_SUNRPC_GSS=y |
1182 | # CONFIG_SUNRPC_BIND34 is not set | 1260 | # CONFIG_SUNRPC_REGISTER_V4 is not set |
1183 | CONFIG_RPCSEC_GSS_KRB5=y | 1261 | CONFIG_RPCSEC_GSS_KRB5=y |
1184 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1262 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1185 | # CONFIG_SMB_FS is not set | 1263 | # CONFIG_SMB_FS is not set |
@@ -1250,6 +1328,8 @@ CONFIG_FRAME_WARN=1024 | |||
1250 | CONFIG_DEBUG_KERNEL=y | 1328 | CONFIG_DEBUG_KERNEL=y |
1251 | # CONFIG_DEBUG_SHIRQ is not set | 1329 | # CONFIG_DEBUG_SHIRQ is not set |
1252 | CONFIG_DETECT_SOFTLOCKUP=y | 1330 | CONFIG_DETECT_SOFTLOCKUP=y |
1331 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | ||
1332 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | ||
1253 | CONFIG_SCHED_DEBUG=y | 1333 | CONFIG_SCHED_DEBUG=y |
1254 | # CONFIG_SCHEDSTATS is not set | 1334 | # CONFIG_SCHEDSTATS is not set |
1255 | # CONFIG_TIMER_STATS is not set | 1335 | # CONFIG_TIMER_STATS is not set |
@@ -1270,13 +1350,27 @@ CONFIG_DEBUG_PREEMPT=y | |||
1270 | # CONFIG_DEBUG_INFO is not set | 1350 | # CONFIG_DEBUG_INFO is not set |
1271 | # CONFIG_DEBUG_VM is not set | 1351 | # CONFIG_DEBUG_VM is not set |
1272 | # CONFIG_DEBUG_WRITECOUNT is not set | 1352 | # CONFIG_DEBUG_WRITECOUNT is not set |
1353 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
1273 | # CONFIG_DEBUG_LIST is not set | 1354 | # CONFIG_DEBUG_LIST is not set |
1274 | # CONFIG_DEBUG_SG is not set | 1355 | # CONFIG_DEBUG_SG is not set |
1275 | # CONFIG_FRAME_POINTER is not set | 1356 | # CONFIG_FRAME_POINTER is not set |
1276 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
1277 | # CONFIG_RCU_TORTURE_TEST is not set | 1357 | # CONFIG_RCU_TORTURE_TEST is not set |
1358 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
1278 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1359 | # CONFIG_BACKTRACE_SELF_TEST is not set |
1360 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
1279 | # CONFIG_FAULT_INJECTION is not set | 1361 | # CONFIG_FAULT_INJECTION is not set |
1362 | # CONFIG_LATENCYTOP is not set | ||
1363 | CONFIG_SYSCTL_SYSCALL_CHECK=y | ||
1364 | CONFIG_NOP_TRACER=y | ||
1365 | CONFIG_HAVE_FTRACE=y | ||
1366 | # CONFIG_FTRACE is not set | ||
1367 | # CONFIG_IRQSOFF_TRACER is not set | ||
1368 | # CONFIG_PREEMPT_TRACER is not set | ||
1369 | # CONFIG_SCHED_TRACER is not set | ||
1370 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
1371 | # CONFIG_BOOT_TRACER is not set | ||
1372 | # CONFIG_STACK_TRACER is not set | ||
1373 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
1280 | # CONFIG_SAMPLES is not set | 1374 | # CONFIG_SAMPLES is not set |
1281 | # CONFIG_SH_STANDARD_BIOS is not set | 1375 | # CONFIG_SH_STANDARD_BIOS is not set |
1282 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 1376 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
@@ -1292,15 +1386,19 @@ CONFIG_DEBUG_PREEMPT=y | |||
1292 | # | 1386 | # |
1293 | # CONFIG_KEYS is not set | 1387 | # CONFIG_KEYS is not set |
1294 | # CONFIG_SECURITY is not set | 1388 | # CONFIG_SECURITY is not set |
1389 | # CONFIG_SECURITYFS is not set | ||
1295 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1390 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
1296 | CONFIG_CRYPTO=y | 1391 | CONFIG_CRYPTO=y |
1297 | 1392 | ||
1298 | # | 1393 | # |
1299 | # Crypto core or helper | 1394 | # Crypto core or helper |
1300 | # | 1395 | # |
1396 | # CONFIG_CRYPTO_FIPS is not set | ||
1301 | CONFIG_CRYPTO_ALGAPI=y | 1397 | CONFIG_CRYPTO_ALGAPI=y |
1398 | CONFIG_CRYPTO_AEAD=y | ||
1302 | CONFIG_CRYPTO_BLKCIPHER=y | 1399 | CONFIG_CRYPTO_BLKCIPHER=y |
1303 | CONFIG_CRYPTO_HASH=y | 1400 | CONFIG_CRYPTO_HASH=y |
1401 | CONFIG_CRYPTO_RNG=y | ||
1304 | CONFIG_CRYPTO_MANAGER=y | 1402 | CONFIG_CRYPTO_MANAGER=y |
1305 | # CONFIG_CRYPTO_GF128MUL is not set | 1403 | # CONFIG_CRYPTO_GF128MUL is not set |
1306 | # CONFIG_CRYPTO_NULL is not set | 1404 | # CONFIG_CRYPTO_NULL is not set |
@@ -1339,6 +1437,10 @@ CONFIG_CRYPTO_HMAC=y | |||
1339 | # CONFIG_CRYPTO_MD4 is not set | 1437 | # CONFIG_CRYPTO_MD4 is not set |
1340 | CONFIG_CRYPTO_MD5=y | 1438 | CONFIG_CRYPTO_MD5=y |
1341 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1439 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
1440 | # CONFIG_CRYPTO_RMD128 is not set | ||
1441 | # CONFIG_CRYPTO_RMD160 is not set | ||
1442 | # CONFIG_CRYPTO_RMD256 is not set | ||
1443 | # CONFIG_CRYPTO_RMD320 is not set | ||
1342 | # CONFIG_CRYPTO_SHA1 is not set | 1444 | # CONFIG_CRYPTO_SHA1 is not set |
1343 | # CONFIG_CRYPTO_SHA256 is not set | 1445 | # CONFIG_CRYPTO_SHA256 is not set |
1344 | # CONFIG_CRYPTO_SHA512 is not set | 1446 | # CONFIG_CRYPTO_SHA512 is not set |
@@ -1369,15 +1471,20 @@ CONFIG_CRYPTO_DES=y | |||
1369 | # | 1471 | # |
1370 | # CONFIG_CRYPTO_DEFLATE is not set | 1472 | # CONFIG_CRYPTO_DEFLATE is not set |
1371 | # CONFIG_CRYPTO_LZO is not set | 1473 | # CONFIG_CRYPTO_LZO is not set |
1474 | |||
1475 | # | ||
1476 | # Random Number Generation | ||
1477 | # | ||
1478 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
1372 | # CONFIG_CRYPTO_HW is not set | 1479 | # CONFIG_CRYPTO_HW is not set |
1373 | 1480 | ||
1374 | # | 1481 | # |
1375 | # Library routines | 1482 | # Library routines |
1376 | # | 1483 | # |
1377 | CONFIG_BITREVERSE=y | 1484 | CONFIG_BITREVERSE=y |
1378 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
1379 | # CONFIG_CRC_CCITT is not set | 1485 | # CONFIG_CRC_CCITT is not set |
1380 | # CONFIG_CRC16 is not set | 1486 | # CONFIG_CRC16 is not set |
1487 | # CONFIG_CRC_T10DIF is not set | ||
1381 | # CONFIG_CRC_ITU_T is not set | 1488 | # CONFIG_CRC_ITU_T is not set |
1382 | CONFIG_CRC32=y | 1489 | CONFIG_CRC32=y |
1383 | # CONFIG_CRC7 is not set | 1490 | # CONFIG_CRC7 is not set |
diff --git a/arch/sh/configs/shmin_defconfig b/arch/sh/configs/shmin_defconfig index 8800fefcbaf0..e2b38a334976 100644 --- a/arch/sh/configs/shmin_defconfig +++ b/arch/sh/configs/shmin_defconfig | |||
@@ -1,27 +1,34 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.18 | 3 | # Linux kernel version: 2.6.27 |
4 | # Tue Oct 3 12:52:49 2006 | 4 | # Wed Oct 22 19:52:59 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | ||
8 | CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig" | ||
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
8 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 10 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
9 | CONFIG_GENERIC_HWEIGHT=y | 11 | CONFIG_GENERIC_HWEIGHT=y |
10 | CONFIG_GENERIC_HARDIRQS=y | 12 | CONFIG_GENERIC_HARDIRQS=y |
13 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
11 | CONFIG_GENERIC_IRQ_PROBE=y | 14 | CONFIG_GENERIC_IRQ_PROBE=y |
12 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 15 | # CONFIG_GENERIC_GPIO is not set |
16 | CONFIG_GENERIC_TIME=y | ||
17 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
18 | CONFIG_STACKTRACE_SUPPORT=y | ||
19 | CONFIG_LOCKDEP_SUPPORT=y | ||
20 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
21 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
22 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
23 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | ||
13 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 24 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
14 | 25 | ||
15 | # | 26 | # |
16 | # Code maturity level options | 27 | # General setup |
17 | # | 28 | # |
18 | CONFIG_EXPERIMENTAL=y | 29 | CONFIG_EXPERIMENTAL=y |
19 | CONFIG_BROKEN_ON_SMP=y | 30 | CONFIG_BROKEN_ON_SMP=y |
20 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 31 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
21 | |||
22 | # | ||
23 | # General setup | ||
24 | # | ||
25 | CONFIG_LOCALVERSION="" | 32 | CONFIG_LOCALVERSION="" |
26 | CONFIG_LOCALVERSION_AUTO=y | 33 | CONFIG_LOCALVERSION_AUTO=y |
27 | # CONFIG_SWAP is not set | 34 | # CONFIG_SWAP is not set |
@@ -29,11 +36,14 @@ CONFIG_LOCALVERSION_AUTO=y | |||
29 | # CONFIG_POSIX_MQUEUE is not set | 36 | # CONFIG_POSIX_MQUEUE is not set |
30 | # CONFIG_BSD_PROCESS_ACCT is not set | 37 | # CONFIG_BSD_PROCESS_ACCT is not set |
31 | # CONFIG_TASKSTATS is not set | 38 | # CONFIG_TASKSTATS is not set |
32 | # CONFIG_UTS_NS is not set | ||
33 | # CONFIG_AUDIT is not set | 39 | # CONFIG_AUDIT is not set |
34 | # CONFIG_IKCONFIG is not set | 40 | # CONFIG_IKCONFIG is not set |
41 | CONFIG_LOG_BUF_SHIFT=14 | ||
42 | # CONFIG_CGROUPS is not set | ||
43 | # CONFIG_GROUP_SCHED is not set | ||
35 | # CONFIG_RELAY is not set | 44 | # CONFIG_RELAY is not set |
36 | CONFIG_INITRAMFS_SOURCE="" | 45 | # CONFIG_NAMESPACES is not set |
46 | # CONFIG_BLK_DEV_INITRD is not set | ||
37 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 47 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
38 | CONFIG_SYSCTL=y | 48 | CONFIG_SYSCTL=y |
39 | CONFIG_EMBEDDED=y | 49 | CONFIG_EMBEDDED=y |
@@ -44,27 +54,38 @@ CONFIG_EMBEDDED=y | |||
44 | CONFIG_PRINTK=y | 54 | CONFIG_PRINTK=y |
45 | # CONFIG_BUG is not set | 55 | # CONFIG_BUG is not set |
46 | # CONFIG_ELF_CORE is not set | 56 | # CONFIG_ELF_CORE is not set |
57 | CONFIG_COMPAT_BRK=y | ||
47 | # CONFIG_BASE_FULL is not set | 58 | # CONFIG_BASE_FULL is not set |
48 | # CONFIG_FUTEX is not set | 59 | # CONFIG_FUTEX is not set |
60 | CONFIG_ANON_INODES=y | ||
49 | # CONFIG_EPOLL is not set | 61 | # CONFIG_EPOLL is not set |
62 | CONFIG_SIGNALFD=y | ||
63 | CONFIG_TIMERFD=y | ||
64 | CONFIG_EVENTFD=y | ||
50 | # CONFIG_SHMEM is not set | 65 | # CONFIG_SHMEM is not set |
51 | # CONFIG_SLAB is not set | 66 | CONFIG_AIO=y |
52 | CONFIG_VM_EVENT_COUNTERS=y | 67 | CONFIG_VM_EVENT_COUNTERS=y |
68 | CONFIG_PCI_QUIRKS=y | ||
69 | # CONFIG_SLAB is not set | ||
70 | # CONFIG_SLUB is not set | ||
71 | CONFIG_SLOB=y | ||
72 | # CONFIG_PROFILING is not set | ||
73 | # CONFIG_MARKERS is not set | ||
74 | CONFIG_HAVE_OPROFILE=y | ||
75 | CONFIG_HAVE_IOREMAP_PROT=y | ||
76 | CONFIG_HAVE_KPROBES=y | ||
77 | CONFIG_HAVE_KRETPROBES=y | ||
78 | CONFIG_HAVE_ARCH_TRACEHOOK=y | ||
79 | CONFIG_HAVE_CLK=y | ||
80 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
53 | CONFIG_TINY_SHMEM=y | 81 | CONFIG_TINY_SHMEM=y |
54 | CONFIG_BASE_SMALL=1 | 82 | CONFIG_BASE_SMALL=1 |
55 | CONFIG_SLOB=y | ||
56 | |||
57 | # | ||
58 | # Loadable module support | ||
59 | # | ||
60 | # CONFIG_MODULES is not set | 83 | # CONFIG_MODULES is not set |
61 | |||
62 | # | ||
63 | # Block layer | ||
64 | # | ||
65 | CONFIG_BLOCK=y | 84 | CONFIG_BLOCK=y |
66 | # CONFIG_LBD is not set | 85 | # CONFIG_LBD is not set |
67 | # CONFIG_LSF is not set | 86 | # CONFIG_LSF is not set |
87 | # CONFIG_BLK_DEV_BSG is not set | ||
88 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
68 | 89 | ||
69 | # | 90 | # |
70 | # IO Schedulers | 91 | # IO Schedulers |
@@ -78,59 +99,27 @@ CONFIG_IOSCHED_NOOP=y | |||
78 | # CONFIG_DEFAULT_CFQ is not set | 99 | # CONFIG_DEFAULT_CFQ is not set |
79 | CONFIG_DEFAULT_NOOP=y | 100 | CONFIG_DEFAULT_NOOP=y |
80 | CONFIG_DEFAULT_IOSCHED="noop" | 101 | CONFIG_DEFAULT_IOSCHED="noop" |
102 | CONFIG_CLASSIC_RCU=y | ||
103 | # CONFIG_FREEZER is not set | ||
81 | 104 | ||
82 | # | 105 | # |
83 | # System type | 106 | # System type |
84 | # | 107 | # |
85 | # CONFIG_SH_SOLUTION_ENGINE is not set | ||
86 | # CONFIG_SH_7751_SOLUTION_ENGINE is not set | ||
87 | # CONFIG_SH_7300_SOLUTION_ENGINE is not set | ||
88 | # CONFIG_SH_7343_SOLUTION_ENGINE is not set | ||
89 | # CONFIG_SH_73180_SOLUTION_ENGINE is not set | ||
90 | # CONFIG_SH_7751_SYSTEMH is not set | ||
91 | # CONFIG_SH_HP6XX is not set | ||
92 | # CONFIG_SH_EC3104 is not set | ||
93 | # CONFIG_SH_SATURN is not set | ||
94 | # CONFIG_SH_DREAMCAST is not set | ||
95 | # CONFIG_SH_BIGSUR is not set | ||
96 | # CONFIG_SH_MPC1211 is not set | ||
97 | # CONFIG_SH_SH03 is not set | ||
98 | # CONFIG_SH_SECUREEDGE5410 is not set | ||
99 | # CONFIG_SH_HS7751RVOIP is not set | ||
100 | # CONFIG_SH_7710VOIPGW is not set | ||
101 | # CONFIG_SH_RTS7751R2D is not set | ||
102 | # CONFIG_SH_R7780RP is not set | ||
103 | # CONFIG_SH_EDOSK7705 is not set | ||
104 | # CONFIG_SH_SH4202_MICRODEV is not set | ||
105 | # CONFIG_SH_LANDISK is not set | ||
106 | # CONFIG_SH_TITAN is not set | ||
107 | CONFIG_SH_SHMIN=y | ||
108 | # CONFIG_SH_UNKNOWN is not set | ||
109 | |||
110 | # | ||
111 | # Processor selection | ||
112 | # | ||
113 | CONFIG_CPU_SH3=y | 108 | CONFIG_CPU_SH3=y |
114 | 109 | # CONFIG_CPU_SUBTYPE_SH7619 is not set | |
115 | # | 110 | # CONFIG_CPU_SUBTYPE_SH7203 is not set |
116 | # SH-2 Processor Support | 111 | # CONFIG_CPU_SUBTYPE_SH7206 is not set |
117 | # | 112 | # CONFIG_CPU_SUBTYPE_SH7263 is not set |
118 | # CONFIG_CPU_SUBTYPE_SH7604 is not set | 113 | # CONFIG_CPU_SUBTYPE_MXG is not set |
119 | |||
120 | # | ||
121 | # SH-3 Processor Support | ||
122 | # | ||
123 | # CONFIG_CPU_SUBTYPE_SH7300 is not set | ||
124 | # CONFIG_CPU_SUBTYPE_SH7705 is not set | 114 | # CONFIG_CPU_SUBTYPE_SH7705 is not set |
125 | CONFIG_CPU_SUBTYPE_SH7706=y | 115 | CONFIG_CPU_SUBTYPE_SH7706=y |
126 | # CONFIG_CPU_SUBTYPE_SH7707 is not set | 116 | # CONFIG_CPU_SUBTYPE_SH7707 is not set |
127 | # CONFIG_CPU_SUBTYPE_SH7708 is not set | 117 | # CONFIG_CPU_SUBTYPE_SH7708 is not set |
128 | # CONFIG_CPU_SUBTYPE_SH7709 is not set | 118 | # CONFIG_CPU_SUBTYPE_SH7709 is not set |
129 | # CONFIG_CPU_SUBTYPE_SH7710 is not set | 119 | # CONFIG_CPU_SUBTYPE_SH7710 is not set |
130 | 120 | # CONFIG_CPU_SUBTYPE_SH7712 is not set | |
131 | # | 121 | # CONFIG_CPU_SUBTYPE_SH7720 is not set |
132 | # SH-4 Processor Support | 122 | # CONFIG_CPU_SUBTYPE_SH7721 is not set |
133 | # | ||
134 | # CONFIG_CPU_SUBTYPE_SH7750 is not set | 123 | # CONFIG_CPU_SUBTYPE_SH7750 is not set |
135 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | 124 | # CONFIG_CPU_SUBTYPE_SH7091 is not set |
136 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | 125 | # CONFIG_CPU_SUBTYPE_SH7750R is not set |
@@ -139,65 +128,87 @@ CONFIG_CPU_SUBTYPE_SH7706=y | |||
139 | # CONFIG_CPU_SUBTYPE_SH7751R is not set | 128 | # CONFIG_CPU_SUBTYPE_SH7751R is not set |
140 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | 129 | # CONFIG_CPU_SUBTYPE_SH7760 is not set |
141 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | 130 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set |
142 | 131 | # CONFIG_CPU_SUBTYPE_SH7723 is not set | |
143 | # | 132 | # CONFIG_CPU_SUBTYPE_SH7763 is not set |
144 | # ST40 Processor Support | ||
145 | # | ||
146 | # CONFIG_CPU_SUBTYPE_ST40STB1 is not set | ||
147 | # CONFIG_CPU_SUBTYPE_ST40GX1 is not set | ||
148 | |||
149 | # | ||
150 | # SH-4A Processor Support | ||
151 | # | ||
152 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | 133 | # CONFIG_CPU_SUBTYPE_SH7770 is not set |
153 | # CONFIG_CPU_SUBTYPE_SH7780 is not set | 134 | # CONFIG_CPU_SUBTYPE_SH7780 is not set |
154 | 135 | # CONFIG_CPU_SUBTYPE_SH7785 is not set | |
155 | # | 136 | # CONFIG_CPU_SUBTYPE_SHX3 is not set |
156 | # SH4AL-DSP Processor Support | ||
157 | # | ||
158 | # CONFIG_CPU_SUBTYPE_SH73180 is not set | ||
159 | # CONFIG_CPU_SUBTYPE_SH7343 is not set | 137 | # CONFIG_CPU_SUBTYPE_SH7343 is not set |
138 | # CONFIG_CPU_SUBTYPE_SH7722 is not set | ||
139 | # CONFIG_CPU_SUBTYPE_SH7366 is not set | ||
140 | # CONFIG_CPU_SUBTYPE_SH5_101 is not set | ||
141 | # CONFIG_CPU_SUBTYPE_SH5_103 is not set | ||
160 | 142 | ||
161 | # | 143 | # |
162 | # Memory management options | 144 | # Memory management options |
163 | # | 145 | # |
146 | CONFIG_QUICKLIST=y | ||
164 | CONFIG_MMU=y | 147 | CONFIG_MMU=y |
165 | CONFIG_PAGE_OFFSET=0x80000000 | 148 | CONFIG_PAGE_OFFSET=0x80000000 |
166 | CONFIG_MEMORY_START=0x0c000000 | 149 | CONFIG_MEMORY_START=0x0c000000 |
167 | CONFIG_MEMORY_SIZE=0x00800000 | 150 | CONFIG_MEMORY_SIZE=0x00800000 |
151 | CONFIG_29BIT=y | ||
168 | CONFIG_VSYSCALL=y | 152 | CONFIG_VSYSCALL=y |
153 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
154 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | ||
155 | CONFIG_ARCH_SPARSEMEM_DEFAULT=y | ||
156 | CONFIG_MAX_ACTIVE_REGIONS=1 | ||
157 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
158 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | ||
159 | CONFIG_PAGE_SIZE_4KB=y | ||
160 | # CONFIG_PAGE_SIZE_8KB is not set | ||
161 | # CONFIG_PAGE_SIZE_16KB is not set | ||
162 | # CONFIG_PAGE_SIZE_64KB is not set | ||
163 | CONFIG_ENTRY_OFFSET=0x00001000 | ||
169 | CONFIG_SELECT_MEMORY_MODEL=y | 164 | CONFIG_SELECT_MEMORY_MODEL=y |
170 | CONFIG_FLATMEM_MANUAL=y | 165 | CONFIG_FLATMEM_MANUAL=y |
171 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 166 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
172 | # CONFIG_SPARSEMEM_MANUAL is not set | 167 | # CONFIG_SPARSEMEM_MANUAL is not set |
173 | CONFIG_FLATMEM=y | 168 | CONFIG_FLATMEM=y |
174 | CONFIG_FLAT_NODE_MEM_MAP=y | 169 | CONFIG_FLAT_NODE_MEM_MAP=y |
175 | # CONFIG_SPARSEMEM_STATIC is not set | 170 | CONFIG_SPARSEMEM_STATIC=y |
171 | CONFIG_PAGEFLAGS_EXTENDED=y | ||
176 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 172 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
177 | # CONFIG_RESOURCES_64BIT is not set | 173 | # CONFIG_RESOURCES_64BIT is not set |
174 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
175 | CONFIG_ZONE_DMA_FLAG=0 | ||
176 | CONFIG_NR_QUICK=2 | ||
177 | CONFIG_UNEVICTABLE_LRU=y | ||
178 | 178 | ||
179 | # | 179 | # |
180 | # Cache configuration | 180 | # Cache configuration |
181 | # | 181 | # |
182 | # CONFIG_SH_DIRECT_MAPPED is not set | 182 | # CONFIG_SH_DIRECT_MAPPED is not set |
183 | # CONFIG_SH_WRITETHROUGH is not set | 183 | CONFIG_CACHE_WRITEBACK=y |
184 | # CONFIG_SH_OCRAM is not set | 184 | # CONFIG_CACHE_WRITETHROUGH is not set |
185 | # CONFIG_CACHE_OFF is not set | ||
185 | 186 | ||
186 | # | 187 | # |
187 | # Processor features | 188 | # Processor features |
188 | # | 189 | # |
189 | CONFIG_CPU_LITTLE_ENDIAN=y | 190 | CONFIG_CPU_LITTLE_ENDIAN=y |
191 | # CONFIG_CPU_BIG_ENDIAN is not set | ||
190 | # CONFIG_SH_FPU_EMU is not set | 192 | # CONFIG_SH_FPU_EMU is not set |
191 | # CONFIG_SH_DSP is not set | ||
192 | # CONFIG_SH_ADC is not set | 193 | # CONFIG_SH_ADC is not set |
193 | CONFIG_CPU_HAS_INTEVT=y | 194 | CONFIG_CPU_HAS_INTEVT=y |
195 | CONFIG_CPU_HAS_IPR_IRQ=y | ||
194 | CONFIG_CPU_HAS_SR_RB=y | 196 | CONFIG_CPU_HAS_SR_RB=y |
195 | 197 | ||
196 | # | 198 | # |
197 | # Timer support | 199 | # Board support |
200 | # | ||
201 | CONFIG_SH_SHMIN=y | ||
202 | |||
203 | # | ||
204 | # Timer and clock configuration | ||
198 | # | 205 | # |
199 | CONFIG_SH_TMU=y | 206 | CONFIG_SH_TMU=y |
207 | CONFIG_SH_TIMER_IRQ=16 | ||
200 | CONFIG_SH_PCLK_FREQ=32000000 | 208 | CONFIG_SH_PCLK_FREQ=32000000 |
209 | # CONFIG_NO_HZ is not set | ||
210 | # CONFIG_HIGH_RES_TIMERS is not set | ||
211 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
201 | 212 | ||
202 | # | 213 | # |
203 | # CPU Frequency scaling | 214 | # CPU Frequency scaling |
@@ -212,69 +223,63 @@ CONFIG_SH_PCLK_FREQ=32000000 | |||
212 | # | 223 | # |
213 | # Companion Chips | 224 | # Companion Chips |
214 | # | 225 | # |
215 | # CONFIG_HD6446X_SERIES is not set | 226 | |
227 | # | ||
228 | # Additional SuperH Device Drivers | ||
229 | # | ||
230 | # CONFIG_HEARTBEAT is not set | ||
231 | # CONFIG_PUSH_SWITCH is not set | ||
216 | 232 | ||
217 | # | 233 | # |
218 | # Kernel features | 234 | # Kernel features |
219 | # | 235 | # |
220 | # CONFIG_HZ_100 is not set | 236 | # CONFIG_HZ_100 is not set |
221 | CONFIG_HZ_250=y | 237 | CONFIG_HZ_250=y |
238 | # CONFIG_HZ_300 is not set | ||
222 | # CONFIG_HZ_1000 is not set | 239 | # CONFIG_HZ_1000 is not set |
223 | CONFIG_HZ=250 | 240 | CONFIG_HZ=250 |
241 | # CONFIG_SCHED_HRTICK is not set | ||
224 | # CONFIG_KEXEC is not set | 242 | # CONFIG_KEXEC is not set |
225 | # CONFIG_SMP is not set | 243 | # CONFIG_CRASH_DUMP is not set |
244 | # CONFIG_SECCOMP is not set | ||
226 | CONFIG_PREEMPT_NONE=y | 245 | CONFIG_PREEMPT_NONE=y |
227 | # CONFIG_PREEMPT_VOLUNTARY is not set | 246 | # CONFIG_PREEMPT_VOLUNTARY is not set |
228 | # CONFIG_PREEMPT is not set | 247 | # CONFIG_PREEMPT is not set |
248 | CONFIG_GUSA=y | ||
249 | # CONFIG_GUSA_RB is not set | ||
229 | 250 | ||
230 | # | 251 | # |
231 | # Boot options | 252 | # Boot options |
232 | # | 253 | # |
233 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 | 254 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 |
234 | CONFIG_BOOT_LINK_OFFSET=0x00210000 | 255 | CONFIG_BOOT_LINK_OFFSET=0x00210000 |
235 | # CONFIG_UBC_WAKEUP is not set | ||
236 | CONFIG_CMDLINE_BOOL=y | 256 | CONFIG_CMDLINE_BOOL=y |
237 | CONFIG_CMDLINE="console=ttySC1,115200 root=1f01 mtdparts=phys_mapped_flash:64k(firm)ro,-(sys) netdev=34,0x300,eth0 " | 257 | CONFIG_CMDLINE="console=ttySC1,115200 root=1f01 mtdparts=phys_mapped_flash:64k(firm)ro,-(sys) netdev=34,0x300,eth0 " |
238 | 258 | ||
239 | # | 259 | # |
240 | # Bus options | 260 | # Bus options |
241 | # | 261 | # |
242 | # CONFIG_PCI is not set | 262 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
243 | |||
244 | # | ||
245 | # PCCARD (PCMCIA/CardBus) support | ||
246 | # | ||
247 | |||
248 | # | ||
249 | # PCI Hotplug Support | ||
250 | # | ||
251 | 263 | ||
252 | # | 264 | # |
253 | # Executable file formats | 265 | # Executable file formats |
254 | # | 266 | # |
255 | CONFIG_BINFMT_ELF=y | 267 | CONFIG_BINFMT_ELF=y |
256 | # CONFIG_BINFMT_FLAT is not set | 268 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set |
269 | # CONFIG_HAVE_AOUT is not set | ||
257 | # CONFIG_BINFMT_MISC is not set | 270 | # CONFIG_BINFMT_MISC is not set |
258 | |||
259 | # | ||
260 | # Power management options (EXPERIMENTAL) | ||
261 | # | ||
262 | # CONFIG_PM is not set | ||
263 | |||
264 | # | ||
265 | # Networking | ||
266 | # | ||
267 | CONFIG_NET=y | 271 | CONFIG_NET=y |
268 | 272 | ||
269 | # | 273 | # |
270 | # Networking options | 274 | # Networking options |
271 | # | 275 | # |
272 | # CONFIG_NETDEBUG is not set | ||
273 | # CONFIG_PACKET is not set | 276 | # CONFIG_PACKET is not set |
274 | CONFIG_UNIX=y | 277 | CONFIG_UNIX=y |
275 | CONFIG_XFRM=y | 278 | CONFIG_XFRM=y |
276 | # CONFIG_XFRM_USER is not set | 279 | # CONFIG_XFRM_USER is not set |
277 | # CONFIG_XFRM_SUB_POLICY is not set | 280 | # CONFIG_XFRM_SUB_POLICY is not set |
281 | # CONFIG_XFRM_MIGRATE is not set | ||
282 | # CONFIG_XFRM_STATISTICS is not set | ||
278 | # CONFIG_NET_KEY is not set | 283 | # CONFIG_NET_KEY is not set |
279 | CONFIG_INET=y | 284 | CONFIG_INET=y |
280 | # CONFIG_IP_MULTICAST is not set | 285 | # CONFIG_IP_MULTICAST is not set |
@@ -295,33 +300,23 @@ CONFIG_IP_PNP=y | |||
295 | # CONFIG_INET_TUNNEL is not set | 300 | # CONFIG_INET_TUNNEL is not set |
296 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | 301 | CONFIG_INET_XFRM_MODE_TRANSPORT=y |
297 | CONFIG_INET_XFRM_MODE_TUNNEL=y | 302 | CONFIG_INET_XFRM_MODE_TUNNEL=y |
303 | CONFIG_INET_XFRM_MODE_BEET=y | ||
304 | # CONFIG_INET_LRO is not set | ||
298 | CONFIG_INET_DIAG=y | 305 | CONFIG_INET_DIAG=y |
299 | CONFIG_INET_TCP_DIAG=y | 306 | CONFIG_INET_TCP_DIAG=y |
300 | # CONFIG_TCP_CONG_ADVANCED is not set | 307 | # CONFIG_TCP_CONG_ADVANCED is not set |
301 | CONFIG_TCP_CONG_CUBIC=y | 308 | CONFIG_TCP_CONG_CUBIC=y |
302 | CONFIG_DEFAULT_TCP_CONG="cubic" | 309 | CONFIG_DEFAULT_TCP_CONG="cubic" |
310 | # CONFIG_TCP_MD5SIG is not set | ||
303 | # CONFIG_IPV6 is not set | 311 | # CONFIG_IPV6 is not set |
304 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
305 | # CONFIG_INET6_TUNNEL is not set | ||
306 | # CONFIG_NETWORK_SECMARK is not set | 312 | # CONFIG_NETWORK_SECMARK is not set |
307 | # CONFIG_NETFILTER is not set | 313 | # CONFIG_NETFILTER is not set |
308 | |||
309 | # | ||
310 | # DCCP Configuration (EXPERIMENTAL) | ||
311 | # | ||
312 | # CONFIG_IP_DCCP is not set | 314 | # CONFIG_IP_DCCP is not set |
313 | |||
314 | # | ||
315 | # SCTP Configuration (EXPERIMENTAL) | ||
316 | # | ||
317 | # CONFIG_IP_SCTP is not set | 315 | # CONFIG_IP_SCTP is not set |
318 | |||
319 | # | ||
320 | # TIPC Configuration (EXPERIMENTAL) | ||
321 | # | ||
322 | # CONFIG_TIPC is not set | 316 | # CONFIG_TIPC is not set |
323 | # CONFIG_ATM is not set | 317 | # CONFIG_ATM is not set |
324 | # CONFIG_BRIDGE is not set | 318 | # CONFIG_BRIDGE is not set |
319 | # CONFIG_NET_DSA is not set | ||
325 | # CONFIG_VLAN_8021Q is not set | 320 | # CONFIG_VLAN_8021Q is not set |
326 | # CONFIG_DECNET is not set | 321 | # CONFIG_DECNET is not set |
327 | # CONFIG_LLC2 is not set | 322 | # CONFIG_LLC2 is not set |
@@ -331,10 +326,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
331 | # CONFIG_LAPB is not set | 326 | # CONFIG_LAPB is not set |
332 | # CONFIG_ECONET is not set | 327 | # CONFIG_ECONET is not set |
333 | # CONFIG_WAN_ROUTER is not set | 328 | # CONFIG_WAN_ROUTER is not set |
334 | |||
335 | # | ||
336 | # QoS and/or fair queueing | ||
337 | # | ||
338 | # CONFIG_NET_SCHED is not set | 329 | # CONFIG_NET_SCHED is not set |
339 | 330 | ||
340 | # | 331 | # |
@@ -342,9 +333,19 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
342 | # | 333 | # |
343 | # CONFIG_NET_PKTGEN is not set | 334 | # CONFIG_NET_PKTGEN is not set |
344 | # CONFIG_HAMRADIO is not set | 335 | # CONFIG_HAMRADIO is not set |
336 | # CONFIG_CAN is not set | ||
345 | # CONFIG_IRDA is not set | 337 | # CONFIG_IRDA is not set |
346 | # CONFIG_BT is not set | 338 | # CONFIG_BT is not set |
339 | # CONFIG_AF_RXRPC is not set | ||
340 | # CONFIG_PHONET is not set | ||
341 | CONFIG_WIRELESS=y | ||
342 | # CONFIG_CFG80211 is not set | ||
343 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
344 | # CONFIG_WIRELESS_EXT is not set | ||
345 | # CONFIG_MAC80211 is not set | ||
347 | # CONFIG_IEEE80211 is not set | 346 | # CONFIG_IEEE80211 is not set |
347 | # CONFIG_RFKILL is not set | ||
348 | # CONFIG_NET_9P is not set | ||
348 | 349 | ||
349 | # | 350 | # |
350 | # Device Drivers | 351 | # Device Drivers |
@@ -356,32 +357,27 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
356 | CONFIG_STANDALONE=y | 357 | CONFIG_STANDALONE=y |
357 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 358 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
358 | # CONFIG_SYS_HYPERVISOR is not set | 359 | # CONFIG_SYS_HYPERVISOR is not set |
359 | |||
360 | # | ||
361 | # Connector - unified userspace <-> kernelspace linker | ||
362 | # | ||
363 | # CONFIG_CONNECTOR is not set | 360 | # CONFIG_CONNECTOR is not set |
364 | |||
365 | # | ||
366 | # Memory Technology Devices (MTD) | ||
367 | # | ||
368 | CONFIG_MTD=y | 361 | CONFIG_MTD=y |
369 | # CONFIG_MTD_DEBUG is not set | 362 | # CONFIG_MTD_DEBUG is not set |
370 | # CONFIG_MTD_CONCAT is not set | 363 | # CONFIG_MTD_CONCAT is not set |
371 | CONFIG_MTD_PARTITIONS=y | 364 | CONFIG_MTD_PARTITIONS=y |
372 | # CONFIG_MTD_REDBOOT_PARTS is not set | 365 | # CONFIG_MTD_REDBOOT_PARTS is not set |
373 | CONFIG_MTD_CMDLINE_PARTS=y | 366 | CONFIG_MTD_CMDLINE_PARTS=y |
367 | # CONFIG_MTD_AR7_PARTS is not set | ||
374 | 368 | ||
375 | # | 369 | # |
376 | # User Modules And Translation Layers | 370 | # User Modules And Translation Layers |
377 | # | 371 | # |
378 | # CONFIG_MTD_CHAR is not set | 372 | # CONFIG_MTD_CHAR is not set |
373 | CONFIG_MTD_BLKDEVS=y | ||
379 | CONFIG_MTD_BLOCK=y | 374 | CONFIG_MTD_BLOCK=y |
380 | # CONFIG_FTL is not set | 375 | # CONFIG_FTL is not set |
381 | # CONFIG_NFTL is not set | 376 | # CONFIG_NFTL is not set |
382 | # CONFIG_INFTL is not set | 377 | # CONFIG_INFTL is not set |
383 | # CONFIG_RFD_FTL is not set | 378 | # CONFIG_RFD_FTL is not set |
384 | # CONFIG_SSFDC is not set | 379 | # CONFIG_SSFDC is not set |
380 | # CONFIG_MTD_OOPS is not set | ||
385 | 381 | ||
386 | # | 382 | # |
387 | # RAM/ROM/Flash chip drivers | 383 | # RAM/ROM/Flash chip drivers |
@@ -407,7 +403,6 @@ CONFIG_MTD_CFI_UTIL=y | |||
407 | # CONFIG_MTD_RAM is not set | 403 | # CONFIG_MTD_RAM is not set |
408 | # CONFIG_MTD_ROM is not set | 404 | # CONFIG_MTD_ROM is not set |
409 | # CONFIG_MTD_ABSENT is not set | 405 | # CONFIG_MTD_ABSENT is not set |
410 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
411 | 406 | ||
412 | # | 407 | # |
413 | # Mapping drivers for chip access | 408 | # Mapping drivers for chip access |
@@ -433,41 +428,27 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=1 | |||
433 | # CONFIG_MTD_DOC2000 is not set | 428 | # CONFIG_MTD_DOC2000 is not set |
434 | # CONFIG_MTD_DOC2001 is not set | 429 | # CONFIG_MTD_DOC2001 is not set |
435 | # CONFIG_MTD_DOC2001PLUS is not set | 430 | # CONFIG_MTD_DOC2001PLUS is not set |
436 | |||
437 | # | ||
438 | # NAND Flash Device Drivers | ||
439 | # | ||
440 | # CONFIG_MTD_NAND is not set | 431 | # CONFIG_MTD_NAND is not set |
441 | |||
442 | # | ||
443 | # OneNAND Flash Device Drivers | ||
444 | # | ||
445 | # CONFIG_MTD_ONENAND is not set | 432 | # CONFIG_MTD_ONENAND is not set |
446 | 433 | ||
447 | # | 434 | # |
448 | # Parallel port support | 435 | # UBI - Unsorted block images |
449 | # | 436 | # |
437 | # CONFIG_MTD_UBI is not set | ||
450 | # CONFIG_PARPORT is not set | 438 | # CONFIG_PARPORT is not set |
451 | 439 | CONFIG_BLK_DEV=y | |
452 | # | ||
453 | # Plug and Play support | ||
454 | # | ||
455 | |||
456 | # | ||
457 | # Block devices | ||
458 | # | ||
459 | # CONFIG_BLK_DEV_COW_COMMON is not set | 440 | # CONFIG_BLK_DEV_COW_COMMON is not set |
460 | CONFIG_BLK_DEV_LOOP=y | 441 | CONFIG_BLK_DEV_LOOP=y |
461 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 442 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
462 | # CONFIG_BLK_DEV_NBD is not set | 443 | # CONFIG_BLK_DEV_NBD is not set |
463 | # CONFIG_BLK_DEV_RAM is not set | 444 | # CONFIG_BLK_DEV_RAM is not set |
464 | # CONFIG_BLK_DEV_INITRD is not set | ||
465 | # CONFIG_CDROM_PKTCDVD is not set | 445 | # CONFIG_CDROM_PKTCDVD is not set |
466 | # CONFIG_ATA_OVER_ETH is not set | 446 | # CONFIG_ATA_OVER_ETH is not set |
467 | 447 | # CONFIG_BLK_DEV_HD is not set | |
468 | # | 448 | CONFIG_MISC_DEVICES=y |
469 | # ATA/ATAPI/MFM/RLL support | 449 | # CONFIG_EEPROM_93CX6 is not set |
470 | # | 450 | # CONFIG_ENCLOSURE_SERVICES is not set |
451 | CONFIG_HAVE_IDE=y | ||
471 | # CONFIG_IDE is not set | 452 | # CONFIG_IDE is not set |
472 | 453 | ||
473 | # | 454 | # |
@@ -475,89 +456,48 @@ CONFIG_BLK_DEV_LOOP=y | |||
475 | # | 456 | # |
476 | # CONFIG_RAID_ATTRS is not set | 457 | # CONFIG_RAID_ATTRS is not set |
477 | # CONFIG_SCSI is not set | 458 | # CONFIG_SCSI is not set |
459 | # CONFIG_SCSI_DMA is not set | ||
478 | # CONFIG_SCSI_NETLINK is not set | 460 | # CONFIG_SCSI_NETLINK is not set |
479 | |||
480 | # | ||
481 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
482 | # | ||
483 | # CONFIG_ATA is not set | 461 | # CONFIG_ATA is not set |
484 | |||
485 | # | ||
486 | # Multi-device support (RAID and LVM) | ||
487 | # | ||
488 | # CONFIG_MD is not set | 462 | # CONFIG_MD is not set |
489 | |||
490 | # | ||
491 | # Fusion MPT device support | ||
492 | # | ||
493 | # CONFIG_FUSION is not set | ||
494 | |||
495 | # | ||
496 | # IEEE 1394 (FireWire) support | ||
497 | # | ||
498 | |||
499 | # | ||
500 | # I2O device support | ||
501 | # | ||
502 | |||
503 | # | ||
504 | # Network device support | ||
505 | # | ||
506 | CONFIG_NETDEVICES=y | 463 | CONFIG_NETDEVICES=y |
507 | # CONFIG_DUMMY is not set | 464 | # CONFIG_DUMMY is not set |
508 | # CONFIG_BONDING is not set | 465 | # CONFIG_BONDING is not set |
466 | # CONFIG_MACVLAN is not set | ||
509 | # CONFIG_EQUALIZER is not set | 467 | # CONFIG_EQUALIZER is not set |
510 | # CONFIG_TUN is not set | 468 | # CONFIG_TUN is not set |
511 | 469 | # CONFIG_VETH is not set | |
512 | # | ||
513 | # PHY device support | ||
514 | # | ||
515 | # CONFIG_PHYLIB is not set | 470 | # CONFIG_PHYLIB is not set |
516 | |||
517 | # | ||
518 | # Ethernet (10 or 100Mbit) | ||
519 | # | ||
520 | CONFIG_NET_ETHERNET=y | 471 | CONFIG_NET_ETHERNET=y |
521 | # CONFIG_MII is not set | 472 | # CONFIG_MII is not set |
473 | # CONFIG_AX88796 is not set | ||
522 | # CONFIG_STNIC is not set | 474 | # CONFIG_STNIC is not set |
523 | # CONFIG_SMC91X is not set | 475 | # CONFIG_SMC91X is not set |
524 | 476 | # CONFIG_SMC911X is not set | |
525 | # | 477 | # CONFIG_IBM_NEW_EMAC_ZMII is not set |
526 | # Ethernet (1000 Mbit) | 478 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
527 | # | 479 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
528 | 480 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | |
529 | # | 481 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set |
530 | # Ethernet (10000 Mbit) | 482 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set |
531 | # | 483 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
532 | 484 | # CONFIG_B44 is not set | |
533 | # | 485 | CONFIG_NETDEV_1000=y |
534 | # Token Ring devices | 486 | CONFIG_NETDEV_10000=y |
535 | # | 487 | |
536 | 488 | # | |
537 | # | 489 | # Wireless LAN |
538 | # Wireless LAN (non-hamradio) | 490 | # |
539 | # | 491 | # CONFIG_WLAN_PRE80211 is not set |
540 | # CONFIG_NET_RADIO is not set | 492 | # CONFIG_WLAN_80211 is not set |
541 | 493 | # CONFIG_IWLWIFI_LEDS is not set | |
542 | # | ||
543 | # Wan interfaces | ||
544 | # | ||
545 | # CONFIG_WAN is not set | 494 | # CONFIG_WAN is not set |
546 | # CONFIG_PPP is not set | 495 | # CONFIG_PPP is not set |
547 | # CONFIG_SLIP is not set | 496 | # CONFIG_SLIP is not set |
548 | # CONFIG_SHAPER is not set | ||
549 | # CONFIG_NETCONSOLE is not set | 497 | # CONFIG_NETCONSOLE is not set |
550 | # CONFIG_NETPOLL is not set | 498 | # CONFIG_NETPOLL is not set |
551 | # CONFIG_NET_POLL_CONTROLLER is not set | 499 | # CONFIG_NET_POLL_CONTROLLER is not set |
552 | |||
553 | # | ||
554 | # ISDN subsystem | ||
555 | # | ||
556 | # CONFIG_ISDN is not set | 500 | # CONFIG_ISDN is not set |
557 | |||
558 | # | ||
559 | # Telephony Support | ||
560 | # | ||
561 | # CONFIG_PHONE is not set | 501 | # CONFIG_PHONE is not set |
562 | 502 | ||
563 | # | 503 | # |
@@ -575,6 +515,7 @@ CONFIG_NET_ETHERNET=y | |||
575 | # Character devices | 515 | # Character devices |
576 | # | 516 | # |
577 | # CONFIG_VT is not set | 517 | # CONFIG_VT is not set |
518 | CONFIG_DEVKMEM=y | ||
578 | # CONFIG_SERIAL_NONSTANDARD is not set | 519 | # CONFIG_SERIAL_NONSTANDARD is not set |
579 | 520 | ||
580 | # | 521 | # |
@@ -593,153 +534,103 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
593 | CONFIG_UNIX98_PTYS=y | 534 | CONFIG_UNIX98_PTYS=y |
594 | CONFIG_LEGACY_PTYS=y | 535 | CONFIG_LEGACY_PTYS=y |
595 | CONFIG_LEGACY_PTY_COUNT=256 | 536 | CONFIG_LEGACY_PTY_COUNT=256 |
596 | |||
597 | # | ||
598 | # IPMI | ||
599 | # | ||
600 | # CONFIG_IPMI_HANDLER is not set | 537 | # CONFIG_IPMI_HANDLER is not set |
601 | |||
602 | # | ||
603 | # Watchdog Cards | ||
604 | # | ||
605 | # CONFIG_WATCHDOG is not set | ||
606 | CONFIG_HW_RANDOM=y | 538 | CONFIG_HW_RANDOM=y |
607 | # CONFIG_GEN_RTC is not set | ||
608 | # CONFIG_DTLK is not set | ||
609 | # CONFIG_R3964 is not set | 539 | # CONFIG_R3964 is not set |
610 | |||
611 | # | ||
612 | # Ftape, the floppy tape device driver | ||
613 | # | ||
614 | # CONFIG_RAW_DRIVER is not set | 540 | # CONFIG_RAW_DRIVER is not set |
615 | |||
616 | # | ||
617 | # TPM devices | ||
618 | # | ||
619 | # CONFIG_TCG_TPM is not set | 541 | # CONFIG_TCG_TPM is not set |
620 | # CONFIG_TELCLOCK is not set | ||
621 | |||
622 | # | ||
623 | # I2C support | ||
624 | # | ||
625 | # CONFIG_I2C is not set | 542 | # CONFIG_I2C is not set |
626 | |||
627 | # | ||
628 | # SPI support | ||
629 | # | ||
630 | # CONFIG_SPI is not set | 543 | # CONFIG_SPI is not set |
631 | # CONFIG_SPI_MASTER is not set | 544 | # CONFIG_W1 is not set |
545 | # CONFIG_POWER_SUPPLY is not set | ||
546 | # CONFIG_HWMON is not set | ||
547 | # CONFIG_THERMAL is not set | ||
548 | # CONFIG_THERMAL_HWMON is not set | ||
549 | # CONFIG_WATCHDOG is not set | ||
632 | 550 | ||
633 | # | 551 | # |
634 | # Dallas's 1-wire bus | 552 | # Sonics Silicon Backplane |
635 | # | 553 | # |
554 | CONFIG_SSB_POSSIBLE=y | ||
555 | # CONFIG_SSB is not set | ||
636 | 556 | ||
637 | # | 557 | # |
638 | # Hardware Monitoring support | 558 | # Multifunction device drivers |
639 | # | 559 | # |
640 | # CONFIG_HWMON is not set | 560 | # CONFIG_MFD_CORE is not set |
641 | # CONFIG_HWMON_VID is not set | 561 | # CONFIG_MFD_SM501 is not set |
562 | # CONFIG_HTC_PASIC3 is not set | ||
563 | # CONFIG_MFD_TMIO is not set | ||
564 | # CONFIG_MFD_WM8400 is not set | ||
642 | 565 | ||
643 | # | 566 | # |
644 | # Misc devices | 567 | # Multimedia devices |
645 | # | 568 | # |
646 | 569 | ||
647 | # | 570 | # |
648 | # Multimedia devices | 571 | # Multimedia core support |
649 | # | 572 | # |
650 | # CONFIG_VIDEO_DEV is not set | 573 | # CONFIG_VIDEO_DEV is not set |
651 | CONFIG_VIDEO_V4L2=y | 574 | # CONFIG_DVB_CORE is not set |
575 | # CONFIG_VIDEO_MEDIA is not set | ||
652 | 576 | ||
653 | # | 577 | # |
654 | # Digital Video Broadcasting Devices | 578 | # Multimedia drivers |
655 | # | 579 | # |
656 | # CONFIG_DVB is not set | 580 | # CONFIG_DAB is not set |
657 | 581 | ||
658 | # | 582 | # |
659 | # Graphics support | 583 | # Graphics support |
660 | # | 584 | # |
661 | CONFIG_FIRMWARE_EDID=y | 585 | # CONFIG_VGASTATE is not set |
586 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
662 | # CONFIG_FB is not set | 587 | # CONFIG_FB is not set |
588 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
663 | 589 | ||
664 | # | 590 | # |
665 | # Sound | 591 | # Display device support |
666 | # | 592 | # |
593 | # CONFIG_DISPLAY_SUPPORT is not set | ||
667 | # CONFIG_SOUND is not set | 594 | # CONFIG_SOUND is not set |
668 | 595 | CONFIG_USB_SUPPORT=y | |
669 | # | 596 | CONFIG_USB_ARCH_HAS_HCD=y |
670 | # USB support | ||
671 | # | ||
672 | # CONFIG_USB_ARCH_HAS_HCD is not set | ||
673 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 597 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
674 | # CONFIG_USB_ARCH_HAS_EHCI is not set | 598 | # CONFIG_USB_ARCH_HAS_EHCI is not set |
599 | # CONFIG_USB is not set | ||
600 | # CONFIG_USB_OTG_WHITELIST is not set | ||
601 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | ||
675 | 602 | ||
676 | # | 603 | # |
677 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 604 | # Enable Host or Gadget support to see Inventra options |
678 | # | 605 | # |
679 | 606 | ||
680 | # | 607 | # |
681 | # USB Gadget Support | 608 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
682 | # | 609 | # |
683 | # CONFIG_USB_GADGET is not set | 610 | # CONFIG_USB_GADGET is not set |
684 | |||
685 | # | ||
686 | # MMC/SD Card support | ||
687 | # | ||
688 | # CONFIG_MMC is not set | 611 | # CONFIG_MMC is not set |
689 | 612 | # CONFIG_MEMSTICK is not set | |
690 | # | ||
691 | # LED devices | ||
692 | # | ||
693 | # CONFIG_NEW_LEDS is not set | 613 | # CONFIG_NEW_LEDS is not set |
694 | 614 | # CONFIG_ACCESSIBILITY is not set | |
695 | # | ||
696 | # LED drivers | ||
697 | # | ||
698 | |||
699 | # | ||
700 | # LED Triggers | ||
701 | # | ||
702 | |||
703 | # | ||
704 | # InfiniBand support | ||
705 | # | ||
706 | |||
707 | # | ||
708 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
709 | # | ||
710 | |||
711 | # | ||
712 | # Real Time Clock | ||
713 | # | ||
714 | # CONFIG_RTC_CLASS is not set | 615 | # CONFIG_RTC_CLASS is not set |
715 | 616 | # CONFIG_DMADEVICES is not set | |
716 | # | 617 | # CONFIG_UIO is not set |
717 | # DMA Engine support | 618 | # CONFIG_STAGING is not set |
718 | # | ||
719 | # CONFIG_DMA_ENGINE is not set | ||
720 | |||
721 | # | ||
722 | # DMA Clients | ||
723 | # | ||
724 | |||
725 | # | ||
726 | # DMA Devices | ||
727 | # | ||
728 | 619 | ||
729 | # | 620 | # |
730 | # File systems | 621 | # File systems |
731 | # | 622 | # |
732 | # CONFIG_EXT2_FS is not set | 623 | # CONFIG_EXT2_FS is not set |
733 | # CONFIG_EXT3_FS is not set | 624 | # CONFIG_EXT3_FS is not set |
625 | # CONFIG_EXT4_FS is not set | ||
734 | # CONFIG_REISERFS_FS is not set | 626 | # CONFIG_REISERFS_FS is not set |
735 | # CONFIG_JFS_FS is not set | 627 | # CONFIG_JFS_FS is not set |
736 | # CONFIG_FS_POSIX_ACL is not set | 628 | # CONFIG_FS_POSIX_ACL is not set |
629 | CONFIG_FILE_LOCKING=y | ||
737 | # CONFIG_XFS_FS is not set | 630 | # CONFIG_XFS_FS is not set |
738 | # CONFIG_MINIX_FS is not set | 631 | # CONFIG_DNOTIFY is not set |
739 | # CONFIG_ROMFS_FS is not set | ||
740 | # CONFIG_INOTIFY is not set | 632 | # CONFIG_INOTIFY is not set |
741 | # CONFIG_QUOTA is not set | 633 | # CONFIG_QUOTA is not set |
742 | # CONFIG_DNOTIFY is not set | ||
743 | # CONFIG_AUTOFS_FS is not set | 634 | # CONFIG_AUTOFS_FS is not set |
744 | # CONFIG_AUTOFS4_FS is not set | 635 | # CONFIG_AUTOFS4_FS is not set |
745 | # CONFIG_FUSE_FS is not set | 636 | # CONFIG_FUSE_FS is not set |
@@ -763,12 +654,12 @@ CONFIG_FIRMWARE_EDID=y | |||
763 | CONFIG_PROC_FS=y | 654 | CONFIG_PROC_FS=y |
764 | # CONFIG_PROC_KCORE is not set | 655 | # CONFIG_PROC_KCORE is not set |
765 | CONFIG_PROC_SYSCTL=y | 656 | CONFIG_PROC_SYSCTL=y |
657 | CONFIG_PROC_PAGE_MONITOR=y | ||
766 | # CONFIG_SYSFS is not set | 658 | # CONFIG_SYSFS is not set |
767 | CONFIG_TMPFS=y | 659 | CONFIG_TMPFS=y |
768 | # CONFIG_TMPFS_POSIX_ACL is not set | 660 | # CONFIG_TMPFS_POSIX_ACL is not set |
769 | # CONFIG_HUGETLBFS is not set | 661 | # CONFIG_HUGETLBFS is not set |
770 | # CONFIG_HUGETLB_PAGE is not set | 662 | # CONFIG_HUGETLB_PAGE is not set |
771 | CONFIG_RAMFS=y | ||
772 | 663 | ||
773 | # | 664 | # |
774 | # Miscellaneous filesystems | 665 | # Miscellaneous filesystems |
@@ -780,29 +671,28 @@ CONFIG_RAMFS=y | |||
780 | # CONFIG_BEFS_FS is not set | 671 | # CONFIG_BEFS_FS is not set |
781 | # CONFIG_BFS_FS is not set | 672 | # CONFIG_BFS_FS is not set |
782 | # CONFIG_EFS_FS is not set | 673 | # CONFIG_EFS_FS is not set |
783 | # CONFIG_JFFS_FS is not set | ||
784 | # CONFIG_JFFS2_FS is not set | 674 | # CONFIG_JFFS2_FS is not set |
785 | CONFIG_CRAMFS=y | 675 | CONFIG_CRAMFS=y |
786 | # CONFIG_VXFS_FS is not set | 676 | # CONFIG_VXFS_FS is not set |
677 | # CONFIG_MINIX_FS is not set | ||
678 | # CONFIG_OMFS_FS is not set | ||
787 | # CONFIG_HPFS_FS is not set | 679 | # CONFIG_HPFS_FS is not set |
788 | # CONFIG_QNX4FS_FS is not set | 680 | # CONFIG_QNX4FS_FS is not set |
681 | # CONFIG_ROMFS_FS is not set | ||
789 | # CONFIG_SYSV_FS is not set | 682 | # CONFIG_SYSV_FS is not set |
790 | # CONFIG_UFS_FS is not set | 683 | # CONFIG_UFS_FS is not set |
791 | 684 | CONFIG_NETWORK_FILESYSTEMS=y | |
792 | # | ||
793 | # Network File Systems | ||
794 | # | ||
795 | CONFIG_NFS_FS=y | 685 | CONFIG_NFS_FS=y |
796 | CONFIG_NFS_V3=y | 686 | CONFIG_NFS_V3=y |
797 | # CONFIG_NFS_V3_ACL is not set | 687 | # CONFIG_NFS_V3_ACL is not set |
798 | # CONFIG_NFS_V4 is not set | 688 | # CONFIG_NFS_V4 is not set |
799 | # CONFIG_NFS_DIRECTIO is not set | ||
800 | # CONFIG_NFSD is not set | ||
801 | CONFIG_ROOT_NFS=y | 689 | CONFIG_ROOT_NFS=y |
690 | # CONFIG_NFSD is not set | ||
802 | CONFIG_LOCKD=y | 691 | CONFIG_LOCKD=y |
803 | CONFIG_LOCKD_V4=y | 692 | CONFIG_LOCKD_V4=y |
804 | CONFIG_NFS_COMMON=y | 693 | CONFIG_NFS_COMMON=y |
805 | CONFIG_SUNRPC=y | 694 | CONFIG_SUNRPC=y |
695 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
806 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 696 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
807 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 697 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
808 | # CONFIG_SMB_FS is not set | 698 | # CONFIG_SMB_FS is not set |
@@ -810,53 +700,140 @@ CONFIG_SUNRPC=y | |||
810 | # CONFIG_NCP_FS is not set | 700 | # CONFIG_NCP_FS is not set |
811 | # CONFIG_CODA_FS is not set | 701 | # CONFIG_CODA_FS is not set |
812 | # CONFIG_AFS_FS is not set | 702 | # CONFIG_AFS_FS is not set |
813 | # CONFIG_9P_FS is not set | ||
814 | 703 | ||
815 | # | 704 | # |
816 | # Partition Types | 705 | # Partition Types |
817 | # | 706 | # |
818 | # CONFIG_PARTITION_ADVANCED is not set | 707 | # CONFIG_PARTITION_ADVANCED is not set |
819 | CONFIG_MSDOS_PARTITION=y | 708 | CONFIG_MSDOS_PARTITION=y |
820 | |||
821 | # | ||
822 | # Native Language Support | ||
823 | # | ||
824 | # CONFIG_NLS is not set | 709 | # CONFIG_NLS is not set |
825 | 710 | ||
826 | # | 711 | # |
827 | # Profiling support | ||
828 | # | ||
829 | # CONFIG_PROFILING is not set | ||
830 | |||
831 | # | ||
832 | # Kernel hacking | 712 | # Kernel hacking |
833 | # | 713 | # |
714 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
834 | # CONFIG_PRINTK_TIME is not set | 715 | # CONFIG_PRINTK_TIME is not set |
716 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
835 | CONFIG_ENABLE_MUST_CHECK=y | 717 | CONFIG_ENABLE_MUST_CHECK=y |
718 | CONFIG_FRAME_WARN=1024 | ||
836 | # CONFIG_MAGIC_SYSRQ is not set | 719 | # CONFIG_MAGIC_SYSRQ is not set |
837 | # CONFIG_UNUSED_SYMBOLS is not set | 720 | # CONFIG_UNUSED_SYMBOLS is not set |
721 | # CONFIG_HEADERS_CHECK is not set | ||
838 | # CONFIG_DEBUG_KERNEL is not set | 722 | # CONFIG_DEBUG_KERNEL is not set |
839 | CONFIG_LOG_BUF_SHIFT=14 | 723 | # CONFIG_DEBUG_MEMORY_INIT is not set |
840 | # CONFIG_UNWIND_INFO is not set | 724 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
725 | # CONFIG_LATENCYTOP is not set | ||
726 | CONFIG_NOP_TRACER=y | ||
727 | CONFIG_HAVE_FTRACE=y | ||
728 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
729 | # CONFIG_SAMPLES is not set | ||
841 | CONFIG_SH_STANDARD_BIOS=y | 730 | CONFIG_SH_STANDARD_BIOS=y |
731 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
842 | CONFIG_EARLY_PRINTK=y | 732 | CONFIG_EARLY_PRINTK=y |
843 | # CONFIG_KGDB is not set | 733 | # CONFIG_SH_KGDB is not set |
844 | 734 | ||
845 | # | 735 | # |
846 | # Security options | 736 | # Security options |
847 | # | 737 | # |
848 | # CONFIG_KEYS is not set | 738 | # CONFIG_KEYS is not set |
739 | # CONFIG_SECURITYFS is not set | ||
740 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
741 | CONFIG_CRYPTO=y | ||
742 | |||
743 | # | ||
744 | # Crypto core or helper | ||
745 | # | ||
746 | # CONFIG_CRYPTO_FIPS is not set | ||
747 | # CONFIG_CRYPTO_MANAGER is not set | ||
748 | # CONFIG_CRYPTO_GF128MUL is not set | ||
749 | # CONFIG_CRYPTO_NULL is not set | ||
750 | # CONFIG_CRYPTO_CRYPTD is not set | ||
751 | # CONFIG_CRYPTO_AUTHENC is not set | ||
752 | |||
753 | # | ||
754 | # Authenticated Encryption with Associated Data | ||
755 | # | ||
756 | # CONFIG_CRYPTO_CCM is not set | ||
757 | # CONFIG_CRYPTO_GCM is not set | ||
758 | # CONFIG_CRYPTO_SEQIV is not set | ||
759 | |||
760 | # | ||
761 | # Block modes | ||
762 | # | ||
763 | # CONFIG_CRYPTO_CBC is not set | ||
764 | # CONFIG_CRYPTO_CTR is not set | ||
765 | # CONFIG_CRYPTO_CTS is not set | ||
766 | # CONFIG_CRYPTO_ECB is not set | ||
767 | # CONFIG_CRYPTO_LRW is not set | ||
768 | # CONFIG_CRYPTO_PCBC is not set | ||
769 | # CONFIG_CRYPTO_XTS is not set | ||
770 | |||
771 | # | ||
772 | # Hash modes | ||
773 | # | ||
774 | # CONFIG_CRYPTO_HMAC is not set | ||
775 | # CONFIG_CRYPTO_XCBC is not set | ||
776 | |||
777 | # | ||
778 | # Digest | ||
779 | # | ||
780 | # CONFIG_CRYPTO_CRC32C is not set | ||
781 | # CONFIG_CRYPTO_MD4 is not set | ||
782 | # CONFIG_CRYPTO_MD5 is not set | ||
783 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
784 | # CONFIG_CRYPTO_RMD128 is not set | ||
785 | # CONFIG_CRYPTO_RMD160 is not set | ||
786 | # CONFIG_CRYPTO_RMD256 is not set | ||
787 | # CONFIG_CRYPTO_RMD320 is not set | ||
788 | # CONFIG_CRYPTO_SHA1 is not set | ||
789 | # CONFIG_CRYPTO_SHA256 is not set | ||
790 | # CONFIG_CRYPTO_SHA512 is not set | ||
791 | # CONFIG_CRYPTO_TGR192 is not set | ||
792 | # CONFIG_CRYPTO_WP512 is not set | ||
793 | |||
794 | # | ||
795 | # Ciphers | ||
796 | # | ||
797 | # CONFIG_CRYPTO_AES is not set | ||
798 | # CONFIG_CRYPTO_ANUBIS is not set | ||
799 | # CONFIG_CRYPTO_ARC4 is not set | ||
800 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
801 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
802 | # CONFIG_CRYPTO_CAST5 is not set | ||
803 | # CONFIG_CRYPTO_CAST6 is not set | ||
804 | # CONFIG_CRYPTO_DES is not set | ||
805 | # CONFIG_CRYPTO_FCRYPT is not set | ||
806 | # CONFIG_CRYPTO_KHAZAD is not set | ||
807 | # CONFIG_CRYPTO_SALSA20 is not set | ||
808 | # CONFIG_CRYPTO_SEED is not set | ||
809 | # CONFIG_CRYPTO_SERPENT is not set | ||
810 | # CONFIG_CRYPTO_TEA is not set | ||
811 | # CONFIG_CRYPTO_TWOFISH is not set | ||
812 | |||
813 | # | ||
814 | # Compression | ||
815 | # | ||
816 | # CONFIG_CRYPTO_DEFLATE is not set | ||
817 | # CONFIG_CRYPTO_LZO is not set | ||
849 | 818 | ||
850 | # | 819 | # |
851 | # Cryptographic options | 820 | # Random Number Generation |
852 | # | 821 | # |
853 | # CONFIG_CRYPTO is not set | 822 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
823 | CONFIG_CRYPTO_HW=y | ||
854 | 824 | ||
855 | # | 825 | # |
856 | # Library routines | 826 | # Library routines |
857 | # | 827 | # |
828 | CONFIG_BITREVERSE=y | ||
858 | # CONFIG_CRC_CCITT is not set | 829 | # CONFIG_CRC_CCITT is not set |
859 | # CONFIG_CRC16 is not set | 830 | # CONFIG_CRC16 is not set |
831 | # CONFIG_CRC_T10DIF is not set | ||
832 | # CONFIG_CRC_ITU_T is not set | ||
860 | CONFIG_CRC32=y | 833 | CONFIG_CRC32=y |
834 | # CONFIG_CRC7 is not set | ||
861 | # CONFIG_LIBCRC32C is not set | 835 | # CONFIG_LIBCRC32C is not set |
862 | CONFIG_ZLIB_INFLATE=y | 836 | CONFIG_ZLIB_INFLATE=y |
837 | CONFIG_HAS_IOMEM=y | ||
838 | CONFIG_HAS_IOPORT=y | ||
839 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/sh/configs/shx3_defconfig b/arch/sh/configs/shx3_defconfig index a794c082709b..ae5cbe237fff 100644 --- a/arch/sh/configs/shx3_defconfig +++ b/arch/sh/configs/shx3_defconfig | |||
@@ -1,18 +1,23 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.23-rc7 | 3 | # Linux kernel version: 2.6.27 |
4 | # Fri Sep 21 19:07:30 2007 | 4 | # Tue Oct 21 12:16:25 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | ||
8 | CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig" | ||
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
8 | CONFIG_GENERIC_BUG=y | 10 | CONFIG_GENERIC_BUG=y |
9 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
10 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
11 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
12 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
13 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
14 | CONFIG_GENERIC_TIME=y | 17 | CONFIG_GENERIC_TIME=y |
15 | CONFIG_GENERIC_CLOCKEVENTS=y | 18 | CONFIG_GENERIC_CLOCKEVENTS=y |
19 | CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y | ||
20 | CONFIG_GENERIC_LOCKBREAK=y | ||
16 | CONFIG_SYS_SUPPORTS_SMP=y | 21 | CONFIG_SYS_SUPPORTS_SMP=y |
17 | CONFIG_SYS_SUPPORTS_NUMA=y | 22 | CONFIG_SYS_SUPPORTS_NUMA=y |
18 | CONFIG_STACKTRACE_SUPPORT=y | 23 | CONFIG_STACKTRACE_SUPPORT=y |
@@ -26,7 +31,6 @@ CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | |||
26 | # General setup | 31 | # General setup |
27 | # | 32 | # |
28 | CONFIG_EXPERIMENTAL=y | 33 | CONFIG_EXPERIMENTAL=y |
29 | CONFIG_BROKEN_ON_SMP=y | ||
30 | CONFIG_LOCK_KERNEL=y | 34 | CONFIG_LOCK_KERNEL=y |
31 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 35 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
32 | CONFIG_LOCALVERSION="" | 36 | CONFIG_LOCALVERSION="" |
@@ -34,20 +38,41 @@ CONFIG_LOCALVERSION_AUTO=y | |||
34 | CONFIG_SWAP=y | 38 | CONFIG_SWAP=y |
35 | CONFIG_SYSVIPC=y | 39 | CONFIG_SYSVIPC=y |
36 | CONFIG_SYSVIPC_SYSCTL=y | 40 | CONFIG_SYSVIPC_SYSCTL=y |
37 | # CONFIG_POSIX_MQUEUE is not set | 41 | CONFIG_POSIX_MQUEUE=y |
38 | CONFIG_BSD_PROCESS_ACCT=y | 42 | CONFIG_BSD_PROCESS_ACCT=y |
39 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | 43 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set |
40 | # CONFIG_TASKSTATS is not set | 44 | # CONFIG_TASKSTATS is not set |
41 | # CONFIG_USER_NS is not set | 45 | CONFIG_AUDIT=y |
42 | # CONFIG_AUDIT is not set | 46 | CONFIG_AUDITSYSCALL=y |
47 | CONFIG_AUDIT_TREE=y | ||
43 | CONFIG_IKCONFIG=y | 48 | CONFIG_IKCONFIG=y |
44 | CONFIG_IKCONFIG_PROC=y | 49 | CONFIG_IKCONFIG_PROC=y |
45 | CONFIG_LOG_BUF_SHIFT=14 | 50 | CONFIG_LOG_BUF_SHIFT=14 |
46 | # CONFIG_SYSFS_DEPRECATED is not set | 51 | CONFIG_CGROUPS=y |
47 | # CONFIG_RELAY is not set | 52 | # CONFIG_CGROUP_DEBUG is not set |
48 | CONFIG_BLK_DEV_INITRD=y | 53 | CONFIG_CGROUP_NS=y |
49 | CONFIG_INITRAMFS_SOURCE="" | 54 | CONFIG_CGROUP_FREEZER=y |
50 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 55 | CONFIG_CGROUP_DEVICE=y |
56 | # CONFIG_CPUSETS is not set | ||
57 | CONFIG_GROUP_SCHED=y | ||
58 | CONFIG_FAIR_GROUP_SCHED=y | ||
59 | CONFIG_RT_GROUP_SCHED=y | ||
60 | CONFIG_USER_SCHED=y | ||
61 | # CONFIG_CGROUP_SCHED is not set | ||
62 | CONFIG_CGROUP_CPUACCT=y | ||
63 | CONFIG_RESOURCE_COUNTERS=y | ||
64 | CONFIG_MM_OWNER=y | ||
65 | CONFIG_CGROUP_MEM_RES_CTLR=y | ||
66 | CONFIG_SYSFS_DEPRECATED=y | ||
67 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
68 | CONFIG_RELAY=y | ||
69 | CONFIG_NAMESPACES=y | ||
70 | CONFIG_UTS_NS=y | ||
71 | CONFIG_IPC_NS=y | ||
72 | CONFIG_USER_NS=y | ||
73 | CONFIG_PID_NS=y | ||
74 | # CONFIG_BLK_DEV_INITRD is not set | ||
75 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
51 | CONFIG_SYSCTL=y | 76 | CONFIG_SYSCTL=y |
52 | CONFIG_EMBEDDED=y | 77 | CONFIG_EMBEDDED=y |
53 | CONFIG_UID16=y | 78 | CONFIG_UID16=y |
@@ -59,44 +84,66 @@ CONFIG_HOTPLUG=y | |||
59 | CONFIG_PRINTK=y | 84 | CONFIG_PRINTK=y |
60 | CONFIG_BUG=y | 85 | CONFIG_BUG=y |
61 | CONFIG_ELF_CORE=y | 86 | CONFIG_ELF_CORE=y |
87 | CONFIG_COMPAT_BRK=y | ||
62 | CONFIG_BASE_FULL=y | 88 | CONFIG_BASE_FULL=y |
63 | CONFIG_FUTEX=y | 89 | CONFIG_FUTEX=y |
64 | CONFIG_ANON_INODES=y | 90 | CONFIG_ANON_INODES=y |
65 | CONFIG_EPOLL=y | 91 | CONFIG_EPOLL=y |
66 | CONFIG_SIGNALFD=y | 92 | CONFIG_SIGNALFD=y |
93 | CONFIG_TIMERFD=y | ||
67 | CONFIG_EVENTFD=y | 94 | CONFIG_EVENTFD=y |
68 | CONFIG_SHMEM=y | 95 | CONFIG_SHMEM=y |
96 | CONFIG_AIO=y | ||
69 | CONFIG_VM_EVENT_COUNTERS=y | 97 | CONFIG_VM_EVENT_COUNTERS=y |
98 | CONFIG_PCI_QUIRKS=y | ||
70 | # CONFIG_SLAB is not set | 99 | # CONFIG_SLAB is not set |
71 | # CONFIG_SLUB is not set | 100 | # CONFIG_SLUB is not set |
72 | CONFIG_SLOB=y | 101 | CONFIG_SLOB=y |
102 | CONFIG_PROFILING=y | ||
103 | # CONFIG_MARKERS is not set | ||
104 | CONFIG_OPROFILE=y | ||
105 | CONFIG_HAVE_OPROFILE=y | ||
106 | CONFIG_KPROBES=y | ||
107 | CONFIG_KRETPROBES=y | ||
108 | CONFIG_HAVE_IOREMAP_PROT=y | ||
109 | CONFIG_HAVE_KPROBES=y | ||
110 | CONFIG_HAVE_KRETPROBES=y | ||
111 | CONFIG_HAVE_ARCH_TRACEHOOK=y | ||
112 | CONFIG_USE_GENERIC_SMP_HELPERS=y | ||
113 | CONFIG_HAVE_CLK=y | ||
114 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
73 | CONFIG_RT_MUTEXES=y | 115 | CONFIG_RT_MUTEXES=y |
74 | # CONFIG_TINY_SHMEM is not set | 116 | # CONFIG_TINY_SHMEM is not set |
75 | CONFIG_BASE_SMALL=0 | 117 | CONFIG_BASE_SMALL=0 |
76 | CONFIG_MODULES=y | 118 | CONFIG_MODULES=y |
119 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
77 | CONFIG_MODULE_UNLOAD=y | 120 | CONFIG_MODULE_UNLOAD=y |
78 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 121 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
79 | # CONFIG_MODVERSIONS is not set | 122 | # CONFIG_MODVERSIONS is not set |
80 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 123 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
81 | CONFIG_KMOD=y | 124 | CONFIG_KMOD=y |
125 | CONFIG_STOP_MACHINE=y | ||
82 | CONFIG_BLOCK=y | 126 | CONFIG_BLOCK=y |
83 | # CONFIG_LBD is not set | 127 | # CONFIG_LBD is not set |
84 | # CONFIG_BLK_DEV_IO_TRACE is not set | 128 | # CONFIG_BLK_DEV_IO_TRACE is not set |
85 | # CONFIG_LSF is not set | 129 | # CONFIG_LSF is not set |
86 | # CONFIG_BLK_DEV_BSG is not set | 130 | # CONFIG_BLK_DEV_BSG is not set |
131 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
87 | 132 | ||
88 | # | 133 | # |
89 | # IO Schedulers | 134 | # IO Schedulers |
90 | # | 135 | # |
91 | CONFIG_IOSCHED_NOOP=y | 136 | CONFIG_IOSCHED_NOOP=y |
92 | # CONFIG_IOSCHED_AS is not set | 137 | CONFIG_IOSCHED_AS=y |
93 | # CONFIG_IOSCHED_DEADLINE is not set | 138 | CONFIG_IOSCHED_DEADLINE=y |
94 | # CONFIG_IOSCHED_CFQ is not set | 139 | CONFIG_IOSCHED_CFQ=y |
95 | # CONFIG_DEFAULT_AS is not set | 140 | CONFIG_DEFAULT_AS=y |
96 | # CONFIG_DEFAULT_DEADLINE is not set | 141 | # CONFIG_DEFAULT_DEADLINE is not set |
97 | # CONFIG_DEFAULT_CFQ is not set | 142 | # CONFIG_DEFAULT_CFQ is not set |
98 | CONFIG_DEFAULT_NOOP=y | 143 | # CONFIG_DEFAULT_NOOP is not set |
99 | CONFIG_DEFAULT_IOSCHED="noop" | 144 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
145 | # CONFIG_CLASSIC_RCU is not set | ||
146 | CONFIG_FREEZER=y | ||
100 | 147 | ||
101 | # | 148 | # |
102 | # System type | 149 | # System type |
@@ -105,7 +152,10 @@ CONFIG_CPU_SH4=y | |||
105 | CONFIG_CPU_SH4A=y | 152 | CONFIG_CPU_SH4A=y |
106 | CONFIG_CPU_SHX3=y | 153 | CONFIG_CPU_SHX3=y |
107 | # CONFIG_CPU_SUBTYPE_SH7619 is not set | 154 | # CONFIG_CPU_SUBTYPE_SH7619 is not set |
155 | # CONFIG_CPU_SUBTYPE_SH7203 is not set | ||
108 | # CONFIG_CPU_SUBTYPE_SH7206 is not set | 156 | # CONFIG_CPU_SUBTYPE_SH7206 is not set |
157 | # CONFIG_CPU_SUBTYPE_SH7263 is not set | ||
158 | # CONFIG_CPU_SUBTYPE_MXG is not set | ||
109 | # CONFIG_CPU_SUBTYPE_SH7705 is not set | 159 | # CONFIG_CPU_SUBTYPE_SH7705 is not set |
110 | # CONFIG_CPU_SUBTYPE_SH7706 is not set | 160 | # CONFIG_CPU_SUBTYPE_SH7706 is not set |
111 | # CONFIG_CPU_SUBTYPE_SH7707 is not set | 161 | # CONFIG_CPU_SUBTYPE_SH7707 is not set |
@@ -114,6 +164,7 @@ CONFIG_CPU_SHX3=y | |||
114 | # CONFIG_CPU_SUBTYPE_SH7710 is not set | 164 | # CONFIG_CPU_SUBTYPE_SH7710 is not set |
115 | # CONFIG_CPU_SUBTYPE_SH7712 is not set | 165 | # CONFIG_CPU_SUBTYPE_SH7712 is not set |
116 | # CONFIG_CPU_SUBTYPE_SH7720 is not set | 166 | # CONFIG_CPU_SUBTYPE_SH7720 is not set |
167 | # CONFIG_CPU_SUBTYPE_SH7721 is not set | ||
117 | # CONFIG_CPU_SUBTYPE_SH7750 is not set | 168 | # CONFIG_CPU_SUBTYPE_SH7750 is not set |
118 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | 169 | # CONFIG_CPU_SUBTYPE_SH7091 is not set |
119 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | 170 | # CONFIG_CPU_SUBTYPE_SH7750R is not set |
@@ -122,14 +173,17 @@ CONFIG_CPU_SHX3=y | |||
122 | # CONFIG_CPU_SUBTYPE_SH7751R is not set | 173 | # CONFIG_CPU_SUBTYPE_SH7751R is not set |
123 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | 174 | # CONFIG_CPU_SUBTYPE_SH7760 is not set |
124 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | 175 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set |
125 | # CONFIG_CPU_SUBTYPE_ST40STB1 is not set | 176 | # CONFIG_CPU_SUBTYPE_SH7723 is not set |
126 | # CONFIG_CPU_SUBTYPE_ST40GX1 is not set | 177 | # CONFIG_CPU_SUBTYPE_SH7763 is not set |
127 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | 178 | # CONFIG_CPU_SUBTYPE_SH7770 is not set |
128 | # CONFIG_CPU_SUBTYPE_SH7780 is not set | 179 | # CONFIG_CPU_SUBTYPE_SH7780 is not set |
129 | # CONFIG_CPU_SUBTYPE_SH7785 is not set | 180 | # CONFIG_CPU_SUBTYPE_SH7785 is not set |
130 | CONFIG_CPU_SUBTYPE_SHX3=y | 181 | CONFIG_CPU_SUBTYPE_SHX3=y |
131 | # CONFIG_CPU_SUBTYPE_SH7343 is not set | 182 | # CONFIG_CPU_SUBTYPE_SH7343 is not set |
132 | # CONFIG_CPU_SUBTYPE_SH7722 is not set | 183 | # CONFIG_CPU_SUBTYPE_SH7722 is not set |
184 | # CONFIG_CPU_SUBTYPE_SH7366 is not set | ||
185 | # CONFIG_CPU_SUBTYPE_SH5_101 is not set | ||
186 | # CONFIG_CPU_SUBTYPE_SH5_103 is not set | ||
133 | 187 | ||
134 | # | 188 | # |
135 | # Memory management options | 189 | # Memory management options |
@@ -139,45 +193,56 @@ CONFIG_MMU=y | |||
139 | CONFIG_PAGE_OFFSET=0x80000000 | 193 | CONFIG_PAGE_OFFSET=0x80000000 |
140 | CONFIG_MEMORY_START=0x0c000000 | 194 | CONFIG_MEMORY_START=0x0c000000 |
141 | CONFIG_MEMORY_SIZE=0x04000000 | 195 | CONFIG_MEMORY_SIZE=0x04000000 |
196 | CONFIG_29BIT=y | ||
197 | # CONFIG_X2TLB is not set | ||
142 | CONFIG_VSYSCALL=y | 198 | CONFIG_VSYSCALL=y |
143 | # CONFIG_NUMA is not set | 199 | CONFIG_NUMA=y |
144 | CONFIG_ARCH_FLATMEM_ENABLE=y | 200 | CONFIG_NODES_SHIFT=3 |
145 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | 201 | CONFIG_ARCH_SPARSEMEM_ENABLE=y |
146 | CONFIG_ARCH_SPARSEMEM_DEFAULT=y | 202 | CONFIG_ARCH_SPARSEMEM_DEFAULT=y |
147 | CONFIG_MAX_ACTIVE_REGIONS=6 | 203 | CONFIG_MAX_ACTIVE_REGIONS=6 |
148 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 204 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
149 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | 205 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y |
150 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 206 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
207 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | ||
151 | CONFIG_ARCH_MEMORY_PROBE=y | 208 | CONFIG_ARCH_MEMORY_PROBE=y |
152 | CONFIG_PAGE_SIZE_4KB=y | 209 | # CONFIG_PAGE_SIZE_4KB is not set |
153 | # CONFIG_PAGE_SIZE_8KB is not set | 210 | # CONFIG_PAGE_SIZE_8KB is not set |
154 | # CONFIG_PAGE_SIZE_64KB is not set | 211 | # CONFIG_PAGE_SIZE_16KB is not set |
155 | CONFIG_HUGETLB_PAGE_SIZE_64K=y | 212 | CONFIG_PAGE_SIZE_64KB=y |
213 | CONFIG_ENTRY_OFFSET=0x00010000 | ||
214 | # CONFIG_HUGETLB_PAGE_SIZE_64K is not set | ||
156 | # CONFIG_HUGETLB_PAGE_SIZE_256K is not set | 215 | # CONFIG_HUGETLB_PAGE_SIZE_256K is not set |
157 | # CONFIG_HUGETLB_PAGE_SIZE_1MB is not set | 216 | CONFIG_HUGETLB_PAGE_SIZE_1MB=y |
158 | # CONFIG_HUGETLB_PAGE_SIZE_4MB is not set | 217 | # CONFIG_HUGETLB_PAGE_SIZE_4MB is not set |
159 | # CONFIG_HUGETLB_PAGE_SIZE_64MB is not set | 218 | # CONFIG_HUGETLB_PAGE_SIZE_64MB is not set |
219 | # CONFIG_HUGETLB_PAGE_SIZE_512MB is not set | ||
160 | CONFIG_SELECT_MEMORY_MODEL=y | 220 | CONFIG_SELECT_MEMORY_MODEL=y |
161 | # CONFIG_FLATMEM_MANUAL is not set | 221 | # CONFIG_FLATMEM_MANUAL is not set |
162 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 222 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
163 | CONFIG_SPARSEMEM_MANUAL=y | 223 | CONFIG_SPARSEMEM_MANUAL=y |
164 | CONFIG_SPARSEMEM=y | 224 | CONFIG_SPARSEMEM=y |
225 | CONFIG_NEED_MULTIPLE_NODES=y | ||
165 | CONFIG_HAVE_MEMORY_PRESENT=y | 226 | CONFIG_HAVE_MEMORY_PRESENT=y |
166 | CONFIG_SPARSEMEM_STATIC=y | 227 | CONFIG_SPARSEMEM_STATIC=y |
167 | CONFIG_MEMORY_HOTPLUG=y | 228 | CONFIG_MEMORY_HOTPLUG=y |
168 | CONFIG_MEMORY_HOTPLUG_SPARSE=y | 229 | CONFIG_MEMORY_HOTPLUG_SPARSE=y |
230 | CONFIG_MEMORY_HOTREMOVE=y | ||
169 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 231 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
232 | CONFIG_MIGRATION=y | ||
170 | # CONFIG_RESOURCES_64BIT is not set | 233 | # CONFIG_RESOURCES_64BIT is not set |
234 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
171 | CONFIG_ZONE_DMA_FLAG=0 | 235 | CONFIG_ZONE_DMA_FLAG=0 |
172 | CONFIG_NR_QUICK=2 | 236 | CONFIG_NR_QUICK=2 |
237 | CONFIG_UNEVICTABLE_LRU=y | ||
173 | 238 | ||
174 | # | 239 | # |
175 | # Cache configuration | 240 | # Cache configuration |
176 | # | 241 | # |
177 | # CONFIG_SH_DIRECT_MAPPED is not set | 242 | # CONFIG_SH_DIRECT_MAPPED is not set |
178 | # CONFIG_CACHE_WRITEBACK is not set | 243 | CONFIG_CACHE_WRITEBACK=y |
179 | # CONFIG_CACHE_WRITETHROUGH is not set | 244 | # CONFIG_CACHE_WRITETHROUGH is not set |
180 | CONFIG_CACHE_OFF=y | 245 | # CONFIG_CACHE_OFF is not set |
181 | 246 | ||
182 | # | 247 | # |
183 | # Processor features | 248 | # Processor features |
@@ -202,8 +267,9 @@ CONFIG_SH_TMU=y | |||
202 | CONFIG_SH_TIMER_IRQ=16 | 267 | CONFIG_SH_TIMER_IRQ=16 |
203 | CONFIG_SH_PCLK_FREQ=50000000 | 268 | CONFIG_SH_PCLK_FREQ=50000000 |
204 | CONFIG_TICK_ONESHOT=y | 269 | CONFIG_TICK_ONESHOT=y |
205 | # CONFIG_NO_HZ is not set | 270 | CONFIG_NO_HZ=y |
206 | CONFIG_HIGH_RES_TIMERS=y | 271 | CONFIG_HIGH_RES_TIMERS=y |
272 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
207 | 273 | ||
208 | # | 274 | # |
209 | # CPU Frequency scaling | 275 | # CPU Frequency scaling |
@@ -214,7 +280,10 @@ CONFIG_CPU_FREQ_TABLE=y | |||
214 | CONFIG_CPU_FREQ_STAT=y | 280 | CONFIG_CPU_FREQ_STAT=y |
215 | # CONFIG_CPU_FREQ_STAT_DETAILS is not set | 281 | # CONFIG_CPU_FREQ_STAT_DETAILS is not set |
216 | CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y | 282 | CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y |
283 | # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set | ||
217 | # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set | 284 | # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set |
285 | # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set | ||
286 | # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set | ||
218 | CONFIG_CPU_FREQ_GOV_PERFORMANCE=y | 287 | CONFIG_CPU_FREQ_GOV_PERFORMANCE=y |
219 | CONFIG_CPU_FREQ_GOV_POWERSAVE=m | 288 | CONFIG_CPU_FREQ_GOV_POWERSAVE=m |
220 | CONFIG_CPU_FREQ_GOV_USERSPACE=m | 289 | CONFIG_CPU_FREQ_GOV_USERSPACE=m |
@@ -245,20 +314,23 @@ CONFIG_HZ_250=y | |||
245 | # CONFIG_HZ_300 is not set | 314 | # CONFIG_HZ_300 is not set |
246 | # CONFIG_HZ_1000 is not set | 315 | # CONFIG_HZ_1000 is not set |
247 | CONFIG_HZ=250 | 316 | CONFIG_HZ=250 |
317 | CONFIG_SCHED_HRTICK=y | ||
248 | CONFIG_KEXEC=y | 318 | CONFIG_KEXEC=y |
249 | # CONFIG_CRASH_DUMP is not set | 319 | # CONFIG_CRASH_DUMP is not set |
250 | # CONFIG_SMP is not set | 320 | CONFIG_SECCOMP=y |
321 | CONFIG_SMP=y | ||
322 | CONFIG_NR_CPUS=4 | ||
251 | # CONFIG_PREEMPT_NONE is not set | 323 | # CONFIG_PREEMPT_NONE is not set |
252 | # CONFIG_PREEMPT_VOLUNTARY is not set | 324 | # CONFIG_PREEMPT_VOLUNTARY is not set |
253 | CONFIG_PREEMPT=y | 325 | CONFIG_PREEMPT=y |
254 | CONFIG_PREEMPT_BKL=y | 326 | CONFIG_PREEMPT_RCU=y |
327 | CONFIG_RCU_TRACE=y | ||
255 | 328 | ||
256 | # | 329 | # |
257 | # Boot options | 330 | # Boot options |
258 | # | 331 | # |
259 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 | 332 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 |
260 | CONFIG_BOOT_LINK_OFFSET=0x00800000 | 333 | CONFIG_BOOT_LINK_OFFSET=0x00800000 |
261 | # CONFIG_UBC_WAKEUP is not set | ||
262 | CONFIG_CMDLINE_BOOL=y | 334 | CONFIG_CMDLINE_BOOL=y |
263 | CONFIG_CMDLINE="console=ttySC0,115200 earlyprintk=bios ignore_loglevel" | 335 | CONFIG_CMDLINE="console=ttySC0,115200 earlyprintk=bios ignore_loglevel" |
264 | 336 | ||
@@ -266,21 +338,15 @@ CONFIG_CMDLINE="console=ttySC0,115200 earlyprintk=bios ignore_loglevel" | |||
266 | # Bus options | 338 | # Bus options |
267 | # | 339 | # |
268 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 340 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
269 | |||
270 | # | ||
271 | # PCCARD (PCMCIA/CardBus) support | ||
272 | # | ||
273 | # CONFIG_PCCARD is not set | 341 | # CONFIG_PCCARD is not set |
274 | 342 | ||
275 | # | 343 | # |
276 | # Executable file formats | 344 | # Executable file formats |
277 | # | 345 | # |
278 | CONFIG_BINFMT_ELF=y | 346 | CONFIG_BINFMT_ELF=y |
347 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
348 | # CONFIG_HAVE_AOUT is not set | ||
279 | CONFIG_BINFMT_MISC=y | 349 | CONFIG_BINFMT_MISC=y |
280 | |||
281 | # | ||
282 | # Networking | ||
283 | # | ||
284 | CONFIG_NET=y | 350 | CONFIG_NET=y |
285 | 351 | ||
286 | # | 352 | # |
@@ -292,6 +358,7 @@ CONFIG_XFRM=y | |||
292 | # CONFIG_XFRM_USER is not set | 358 | # CONFIG_XFRM_USER is not set |
293 | # CONFIG_XFRM_SUB_POLICY is not set | 359 | # CONFIG_XFRM_SUB_POLICY is not set |
294 | # CONFIG_XFRM_MIGRATE is not set | 360 | # CONFIG_XFRM_MIGRATE is not set |
361 | # CONFIG_XFRM_STATISTICS is not set | ||
295 | # CONFIG_NET_KEY is not set | 362 | # CONFIG_NET_KEY is not set |
296 | CONFIG_INET=y | 363 | CONFIG_INET=y |
297 | # CONFIG_IP_MULTICAST is not set | 364 | # CONFIG_IP_MULTICAST is not set |
@@ -313,6 +380,7 @@ CONFIG_INET_TUNNEL=m | |||
313 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | 380 | CONFIG_INET_XFRM_MODE_TRANSPORT=y |
314 | CONFIG_INET_XFRM_MODE_TUNNEL=y | 381 | CONFIG_INET_XFRM_MODE_TUNNEL=y |
315 | CONFIG_INET_XFRM_MODE_BEET=y | 382 | CONFIG_INET_XFRM_MODE_BEET=y |
383 | # CONFIG_INET_LRO is not set | ||
316 | CONFIG_INET_DIAG=y | 384 | CONFIG_INET_DIAG=y |
317 | CONFIG_INET_TCP_DIAG=y | 385 | CONFIG_INET_TCP_DIAG=y |
318 | # CONFIG_TCP_CONG_ADVANCED is not set | 386 | # CONFIG_TCP_CONG_ADVANCED is not set |
@@ -334,8 +402,10 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m | |||
334 | CONFIG_INET6_XFRM_MODE_BEET=m | 402 | CONFIG_INET6_XFRM_MODE_BEET=m |
335 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 403 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
336 | CONFIG_IPV6_SIT=m | 404 | CONFIG_IPV6_SIT=m |
405 | CONFIG_IPV6_NDISC_NODETYPE=y | ||
337 | # CONFIG_IPV6_TUNNEL is not set | 406 | # CONFIG_IPV6_TUNNEL is not set |
338 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 407 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
408 | # CONFIG_IPV6_MROUTE is not set | ||
339 | # CONFIG_NETWORK_SECMARK is not set | 409 | # CONFIG_NETWORK_SECMARK is not set |
340 | # CONFIG_NETFILTER is not set | 410 | # CONFIG_NETFILTER is not set |
341 | # CONFIG_IP_DCCP is not set | 411 | # CONFIG_IP_DCCP is not set |
@@ -343,6 +413,7 @@ CONFIG_IPV6_SIT=m | |||
343 | # CONFIG_TIPC is not set | 413 | # CONFIG_TIPC is not set |
344 | # CONFIG_ATM is not set | 414 | # CONFIG_ATM is not set |
345 | # CONFIG_BRIDGE is not set | 415 | # CONFIG_BRIDGE is not set |
416 | # CONFIG_NET_DSA is not set | ||
346 | # CONFIG_VLAN_8021Q is not set | 417 | # CONFIG_VLAN_8021Q is not set |
347 | # CONFIG_DECNET is not set | 418 | # CONFIG_DECNET is not set |
348 | # CONFIG_LLC2 is not set | 419 | # CONFIG_LLC2 is not set |
@@ -352,28 +423,28 @@ CONFIG_IPV6_SIT=m | |||
352 | # CONFIG_LAPB is not set | 423 | # CONFIG_LAPB is not set |
353 | # CONFIG_ECONET is not set | 424 | # CONFIG_ECONET is not set |
354 | # CONFIG_WAN_ROUTER is not set | 425 | # CONFIG_WAN_ROUTER is not set |
355 | |||
356 | # | ||
357 | # QoS and/or fair queueing | ||
358 | # | ||
359 | # CONFIG_NET_SCHED is not set | 426 | # CONFIG_NET_SCHED is not set |
360 | 427 | ||
361 | # | 428 | # |
362 | # Network testing | 429 | # Network testing |
363 | # | 430 | # |
364 | # CONFIG_NET_PKTGEN is not set | 431 | # CONFIG_NET_PKTGEN is not set |
432 | # CONFIG_NET_TCPPROBE is not set | ||
365 | # CONFIG_HAMRADIO is not set | 433 | # CONFIG_HAMRADIO is not set |
366 | # CONFIG_IRDA is not set | 434 | CONFIG_CAN=m |
367 | # CONFIG_BT is not set | 435 | CONFIG_CAN_RAW=m |
368 | # CONFIG_AF_RXRPC is not set | 436 | CONFIG_CAN_BCM=m |
369 | 437 | ||
370 | # | 438 | # |
371 | # Wireless | 439 | # CAN Device Drivers |
372 | # | 440 | # |
373 | # CONFIG_CFG80211 is not set | 441 | CONFIG_CAN_VCAN=m |
374 | # CONFIG_WIRELESS_EXT is not set | 442 | # CONFIG_CAN_DEBUG_DEVICES is not set |
375 | # CONFIG_MAC80211 is not set | 443 | # CONFIG_IRDA is not set |
376 | # CONFIG_IEEE80211 is not set | 444 | # CONFIG_BT is not set |
445 | # CONFIG_AF_RXRPC is not set | ||
446 | # CONFIG_PHONET is not set | ||
447 | # CONFIG_WIRELESS is not set | ||
377 | # CONFIG_RFKILL is not set | 448 | # CONFIG_RFKILL is not set |
378 | # CONFIG_NET_9P is not set | 449 | # CONFIG_NET_9P is not set |
379 | 450 | ||
@@ -384,6 +455,7 @@ CONFIG_IPV6_SIT=m | |||
384 | # | 455 | # |
385 | # Generic Driver Options | 456 | # Generic Driver Options |
386 | # | 457 | # |
458 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
387 | CONFIG_STANDALONE=y | 459 | CONFIG_STANDALONE=y |
388 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 460 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
389 | # CONFIG_FW_LOADER is not set | 461 | # CONFIG_FW_LOADER is not set |
@@ -397,14 +469,18 @@ CONFIG_BLK_DEV=y | |||
397 | # CONFIG_BLK_DEV_COW_COMMON is not set | 469 | # CONFIG_BLK_DEV_COW_COMMON is not set |
398 | # CONFIG_BLK_DEV_LOOP is not set | 470 | # CONFIG_BLK_DEV_LOOP is not set |
399 | # CONFIG_BLK_DEV_NBD is not set | 471 | # CONFIG_BLK_DEV_NBD is not set |
472 | # CONFIG_BLK_DEV_UB is not set | ||
400 | CONFIG_BLK_DEV_RAM=y | 473 | CONFIG_BLK_DEV_RAM=y |
401 | CONFIG_BLK_DEV_RAM_COUNT=16 | 474 | CONFIG_BLK_DEV_RAM_COUNT=16 |
402 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 475 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
403 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 476 | # CONFIG_BLK_DEV_XIP is not set |
404 | # CONFIG_CDROM_PKTCDVD is not set | 477 | # CONFIG_CDROM_PKTCDVD is not set |
405 | # CONFIG_ATA_OVER_ETH is not set | 478 | # CONFIG_ATA_OVER_ETH is not set |
479 | # CONFIG_BLK_DEV_HD is not set | ||
406 | CONFIG_MISC_DEVICES=y | 480 | CONFIG_MISC_DEVICES=y |
407 | # CONFIG_EEPROM_93CX6 is not set | 481 | # CONFIG_EEPROM_93CX6 is not set |
482 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
483 | CONFIG_HAVE_IDE=y | ||
408 | # CONFIG_IDE is not set | 484 | # CONFIG_IDE is not set |
409 | 485 | ||
410 | # | 486 | # |
@@ -443,25 +519,41 @@ CONFIG_SCSI_WAIT_SCAN=m | |||
443 | # CONFIG_SCSI_FC_ATTRS is not set | 519 | # CONFIG_SCSI_FC_ATTRS is not set |
444 | # CONFIG_SCSI_ISCSI_ATTRS is not set | 520 | # CONFIG_SCSI_ISCSI_ATTRS is not set |
445 | # CONFIG_SCSI_SAS_LIBSAS is not set | 521 | # CONFIG_SCSI_SAS_LIBSAS is not set |
522 | # CONFIG_SCSI_SRP_ATTRS is not set | ||
446 | CONFIG_SCSI_LOWLEVEL=y | 523 | CONFIG_SCSI_LOWLEVEL=y |
447 | # CONFIG_ISCSI_TCP is not set | 524 | # CONFIG_ISCSI_TCP is not set |
448 | # CONFIG_SCSI_DEBUG is not set | 525 | # CONFIG_SCSI_DEBUG is not set |
526 | # CONFIG_SCSI_DH is not set | ||
449 | CONFIG_ATA=y | 527 | CONFIG_ATA=y |
450 | # CONFIG_ATA_NONSTANDARD is not set | 528 | # CONFIG_ATA_NONSTANDARD is not set |
529 | CONFIG_SATA_PMP=y | ||
530 | CONFIG_ATA_SFF=y | ||
531 | # CONFIG_SATA_MV is not set | ||
451 | CONFIG_PATA_PLATFORM=y | 532 | CONFIG_PATA_PLATFORM=y |
452 | # CONFIG_MD is not set | 533 | # CONFIG_MD is not set |
453 | CONFIG_NETDEVICES=y | 534 | CONFIG_NETDEVICES=y |
454 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
455 | # CONFIG_DUMMY is not set | 535 | # CONFIG_DUMMY is not set |
456 | # CONFIG_BONDING is not set | 536 | # CONFIG_BONDING is not set |
457 | # CONFIG_MACVLAN is not set | 537 | # CONFIG_MACVLAN is not set |
458 | # CONFIG_EQUALIZER is not set | 538 | # CONFIG_EQUALIZER is not set |
459 | # CONFIG_TUN is not set | 539 | # CONFIG_TUN is not set |
540 | # CONFIG_VETH is not set | ||
460 | # CONFIG_PHYLIB is not set | 541 | # CONFIG_PHYLIB is not set |
461 | CONFIG_NET_ETHERNET=y | 542 | CONFIG_NET_ETHERNET=y |
462 | CONFIG_MII=y | 543 | CONFIG_MII=y |
544 | # CONFIG_AX88796 is not set | ||
463 | # CONFIG_STNIC is not set | 545 | # CONFIG_STNIC is not set |
464 | CONFIG_SMC91X=y | 546 | CONFIG_SMC91X=y |
547 | # CONFIG_ENC28J60 is not set | ||
548 | # CONFIG_SMC911X is not set | ||
549 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
550 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
551 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
552 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
553 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
554 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
555 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
556 | # CONFIG_B44 is not set | ||
465 | # CONFIG_NETDEV_1000 is not set | 557 | # CONFIG_NETDEV_1000 is not set |
466 | # CONFIG_NETDEV_10000 is not set | 558 | # CONFIG_NETDEV_10000 is not set |
467 | 559 | ||
@@ -470,10 +562,19 @@ CONFIG_SMC91X=y | |||
470 | # | 562 | # |
471 | # CONFIG_WLAN_PRE80211 is not set | 563 | # CONFIG_WLAN_PRE80211 is not set |
472 | # CONFIG_WLAN_80211 is not set | 564 | # CONFIG_WLAN_80211 is not set |
565 | # CONFIG_IWLWIFI_LEDS is not set | ||
566 | |||
567 | # | ||
568 | # USB Network Adapters | ||
569 | # | ||
570 | # CONFIG_USB_CATC is not set | ||
571 | # CONFIG_USB_KAWETH is not set | ||
572 | # CONFIG_USB_PEGASUS is not set | ||
573 | # CONFIG_USB_RTL8150 is not set | ||
574 | # CONFIG_USB_USBNET is not set | ||
473 | # CONFIG_WAN is not set | 575 | # CONFIG_WAN is not set |
474 | # CONFIG_PPP is not set | 576 | # CONFIG_PPP is not set |
475 | # CONFIG_SLIP is not set | 577 | # CONFIG_SLIP is not set |
476 | # CONFIG_SHAPER is not set | ||
477 | # CONFIG_NETCONSOLE is not set | 578 | # CONFIG_NETCONSOLE is not set |
478 | # CONFIG_NETPOLL is not set | 579 | # CONFIG_NETPOLL is not set |
479 | # CONFIG_NET_POLL_CONTROLLER is not set | 580 | # CONFIG_NET_POLL_CONTROLLER is not set |
@@ -495,6 +596,7 @@ CONFIG_SMC91X=y | |||
495 | # Character devices | 596 | # Character devices |
496 | # | 597 | # |
497 | # CONFIG_VT is not set | 598 | # CONFIG_VT is not set |
599 | CONFIG_DEVKMEM=y | ||
498 | # CONFIG_SERIAL_NONSTANDARD is not set | 600 | # CONFIG_SERIAL_NONSTANDARD is not set |
499 | 601 | ||
500 | # | 602 | # |
@@ -514,6 +616,76 @@ CONFIG_UNIX98_PTYS=y | |||
514 | CONFIG_LEGACY_PTYS=y | 616 | CONFIG_LEGACY_PTYS=y |
515 | CONFIG_LEGACY_PTY_COUNT=256 | 617 | CONFIG_LEGACY_PTY_COUNT=256 |
516 | # CONFIG_IPMI_HANDLER is not set | 618 | # CONFIG_IPMI_HANDLER is not set |
619 | # CONFIG_HW_RANDOM is not set | ||
620 | # CONFIG_R3964 is not set | ||
621 | # CONFIG_RAW_DRIVER is not set | ||
622 | # CONFIG_TCG_TPM is not set | ||
623 | CONFIG_I2C=m | ||
624 | CONFIG_I2C_BOARDINFO=y | ||
625 | # CONFIG_I2C_CHARDEV is not set | ||
626 | CONFIG_I2C_HELPER_AUTO=y | ||
627 | |||
628 | # | ||
629 | # I2C Hardware Bus support | ||
630 | # | ||
631 | |||
632 | # | ||
633 | # I2C system bus drivers (mostly embedded / system-on-chip) | ||
634 | # | ||
635 | # CONFIG_I2C_OCORES is not set | ||
636 | # CONFIG_I2C_SH_MOBILE is not set | ||
637 | # CONFIG_I2C_SIMTEC is not set | ||
638 | |||
639 | # | ||
640 | # External I2C/SMBus adapter drivers | ||
641 | # | ||
642 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
643 | # CONFIG_I2C_TAOS_EVM is not set | ||
644 | # CONFIG_I2C_TINY_USB is not set | ||
645 | |||
646 | # | ||
647 | # Other I2C/SMBus bus drivers | ||
648 | # | ||
649 | # CONFIG_I2C_PCA_PLATFORM is not set | ||
650 | # CONFIG_I2C_STUB is not set | ||
651 | |||
652 | # | ||
653 | # Miscellaneous I2C Chip support | ||
654 | # | ||
655 | # CONFIG_DS1682 is not set | ||
656 | # CONFIG_AT24 is not set | ||
657 | # CONFIG_SENSORS_EEPROM is not set | ||
658 | # CONFIG_SENSORS_PCF8574 is not set | ||
659 | # CONFIG_PCF8575 is not set | ||
660 | # CONFIG_SENSORS_PCA9539 is not set | ||
661 | # CONFIG_SENSORS_PCF8591 is not set | ||
662 | # CONFIG_SENSORS_MAX6875 is not set | ||
663 | # CONFIG_SENSORS_TSL2550 is not set | ||
664 | # CONFIG_I2C_DEBUG_CORE is not set | ||
665 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
666 | # CONFIG_I2C_DEBUG_BUS is not set | ||
667 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
668 | CONFIG_SPI=y | ||
669 | # CONFIG_SPI_DEBUG is not set | ||
670 | CONFIG_SPI_MASTER=y | ||
671 | |||
672 | # | ||
673 | # SPI Master Controller Drivers | ||
674 | # | ||
675 | # CONFIG_SPI_BITBANG is not set | ||
676 | # CONFIG_SPI_SH_SCI is not set | ||
677 | |||
678 | # | ||
679 | # SPI Protocol Masters | ||
680 | # | ||
681 | # CONFIG_SPI_AT25 is not set | ||
682 | # CONFIG_SPI_SPIDEV is not set | ||
683 | # CONFIG_SPI_TLE62X0 is not set | ||
684 | # CONFIG_W1 is not set | ||
685 | # CONFIG_POWER_SUPPLY is not set | ||
686 | # CONFIG_HWMON is not set | ||
687 | # CONFIG_THERMAL is not set | ||
688 | # CONFIG_THERMAL_HWMON is not set | ||
517 | CONFIG_WATCHDOG=y | 689 | CONFIG_WATCHDOG=y |
518 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 690 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
519 | 691 | ||
@@ -522,78 +694,158 @@ CONFIG_WATCHDOG=y | |||
522 | # | 694 | # |
523 | # CONFIG_SOFT_WATCHDOG is not set | 695 | # CONFIG_SOFT_WATCHDOG is not set |
524 | # CONFIG_SH_WDT is not set | 696 | # CONFIG_SH_WDT is not set |
525 | # CONFIG_HW_RANDOM is not set | ||
526 | # CONFIG_R3964 is not set | ||
527 | # CONFIG_RAW_DRIVER is not set | ||
528 | # CONFIG_TCG_TPM is not set | ||
529 | # CONFIG_I2C is not set | ||
530 | 697 | ||
531 | # | 698 | # |
532 | # SPI support | 699 | # USB-based Watchdog Cards |
533 | # | 700 | # |
534 | # CONFIG_SPI is not set | 701 | # CONFIG_USBPCWATCHDOG is not set |
535 | # CONFIG_SPI_MASTER is not set | 702 | |
536 | # CONFIG_W1 is not set | 703 | # |
537 | # CONFIG_POWER_SUPPLY is not set | 704 | # Sonics Silicon Backplane |
538 | # CONFIG_HWMON is not set | 705 | # |
706 | CONFIG_SSB_POSSIBLE=y | ||
707 | # CONFIG_SSB is not set | ||
539 | 708 | ||
540 | # | 709 | # |
541 | # Multifunction device drivers | 710 | # Multifunction device drivers |
542 | # | 711 | # |
712 | # CONFIG_MFD_CORE is not set | ||
543 | # CONFIG_MFD_SM501 is not set | 713 | # CONFIG_MFD_SM501 is not set |
714 | # CONFIG_HTC_PASIC3 is not set | ||
715 | # CONFIG_MFD_TMIO is not set | ||
716 | # CONFIG_MFD_WM8400 is not set | ||
717 | # CONFIG_MFD_WM8350_I2C is not set | ||
544 | 718 | ||
545 | # | 719 | # |
546 | # Multimedia devices | 720 | # Multimedia devices |
547 | # | 721 | # |
722 | |||
723 | # | ||
724 | # Multimedia core support | ||
725 | # | ||
548 | # CONFIG_VIDEO_DEV is not set | 726 | # CONFIG_VIDEO_DEV is not set |
549 | # CONFIG_DVB_CORE is not set | 727 | # CONFIG_DVB_CORE is not set |
550 | # CONFIG_DAB is not set | 728 | # CONFIG_VIDEO_MEDIA is not set |
551 | 729 | ||
552 | # | 730 | # |
553 | # Graphics support | 731 | # Multimedia drivers |
554 | # | 732 | # |
555 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 733 | # CONFIG_DAB is not set |
556 | 734 | ||
557 | # | 735 | # |
558 | # Display device support | 736 | # Graphics support |
559 | # | 737 | # |
560 | # CONFIG_DISPLAY_SUPPORT is not set | ||
561 | # CONFIG_VGASTATE is not set | 738 | # CONFIG_VGASTATE is not set |
562 | CONFIG_VIDEO_OUTPUT_CONTROL=m | 739 | CONFIG_VIDEO_OUTPUT_CONTROL=m |
563 | # CONFIG_FB is not set | 740 | # CONFIG_FB is not set |
741 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
564 | 742 | ||
565 | # | 743 | # |
566 | # Sound | 744 | # Display device support |
567 | # | 745 | # |
746 | # CONFIG_DISPLAY_SUPPORT is not set | ||
568 | # CONFIG_SOUND is not set | 747 | # CONFIG_SOUND is not set |
569 | CONFIG_USB_SUPPORT=y | 748 | CONFIG_USB_SUPPORT=y |
570 | CONFIG_USB_ARCH_HAS_HCD=y | 749 | CONFIG_USB_ARCH_HAS_HCD=y |
571 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 750 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
572 | # CONFIG_USB_ARCH_HAS_EHCI is not set | 751 | # CONFIG_USB_ARCH_HAS_EHCI is not set |
573 | # CONFIG_USB is not set | 752 | CONFIG_USB=y |
753 | # CONFIG_USB_DEBUG is not set | ||
754 | # CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set | ||
755 | |||
756 | # | ||
757 | # Miscellaneous USB options | ||
758 | # | ||
759 | # CONFIG_USB_DEVICEFS is not set | ||
760 | CONFIG_USB_DEVICE_CLASS=y | ||
761 | # CONFIG_USB_DYNAMIC_MINORS is not set | ||
762 | # CONFIG_USB_OTG is not set | ||
763 | # CONFIG_USB_OTG_WHITELIST is not set | ||
764 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | ||
765 | CONFIG_USB_MON=y | ||
766 | |||
767 | # | ||
768 | # USB Host Controller Drivers | ||
769 | # | ||
770 | # CONFIG_USB_C67X00_HCD is not set | ||
771 | # CONFIG_USB_ISP116X_HCD is not set | ||
772 | # CONFIG_USB_ISP1760_HCD is not set | ||
773 | # CONFIG_USB_SL811_HCD is not set | ||
774 | CONFIG_USB_R8A66597_HCD=m | ||
775 | # CONFIG_USB_GADGET_MUSB_HDRC is not set | ||
776 | |||
777 | # | ||
778 | # USB Device Class drivers | ||
779 | # | ||
780 | # CONFIG_USB_ACM is not set | ||
781 | # CONFIG_USB_PRINTER is not set | ||
782 | # CONFIG_USB_WDM is not set | ||
783 | # CONFIG_USB_TMC is not set | ||
574 | 784 | ||
575 | # | 785 | # |
576 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 786 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
577 | # | 787 | # |
578 | 788 | ||
579 | # | 789 | # |
580 | # USB Gadget Support | 790 | # may also be needed; see USB_STORAGE Help for more information |
791 | # | ||
792 | # CONFIG_USB_STORAGE is not set | ||
793 | # CONFIG_USB_LIBUSUAL is not set | ||
794 | |||
795 | # | ||
796 | # USB Imaging devices | ||
797 | # | ||
798 | # CONFIG_USB_MDC800 is not set | ||
799 | # CONFIG_USB_MICROTEK is not set | ||
800 | |||
581 | # | 801 | # |
802 | # USB port drivers | ||
803 | # | ||
804 | # CONFIG_USB_SERIAL is not set | ||
805 | |||
806 | # | ||
807 | # USB Miscellaneous drivers | ||
808 | # | ||
809 | # CONFIG_USB_EMI62 is not set | ||
810 | # CONFIG_USB_EMI26 is not set | ||
811 | # CONFIG_USB_ADUTUX is not set | ||
812 | # CONFIG_USB_SEVSEG is not set | ||
813 | # CONFIG_USB_RIO500 is not set | ||
814 | # CONFIG_USB_LEGOTOWER is not set | ||
815 | # CONFIG_USB_LCD is not set | ||
816 | # CONFIG_USB_BERRY_CHARGE is not set | ||
817 | # CONFIG_USB_LED is not set | ||
818 | # CONFIG_USB_CYPRESS_CY7C63 is not set | ||
819 | # CONFIG_USB_CYTHERM is not set | ||
820 | # CONFIG_USB_PHIDGET is not set | ||
821 | # CONFIG_USB_IDMOUSE is not set | ||
822 | # CONFIG_USB_FTDI_ELAN is not set | ||
823 | # CONFIG_USB_APPLEDISPLAY is not set | ||
824 | # CONFIG_USB_LD is not set | ||
825 | # CONFIG_USB_TRANCEVIBRATOR is not set | ||
826 | # CONFIG_USB_IOWARRIOR is not set | ||
827 | # CONFIG_USB_ISIGHTFW is not set | ||
828 | # CONFIG_USB_VST is not set | ||
582 | CONFIG_USB_GADGET=y | 829 | CONFIG_USB_GADGET=y |
583 | # CONFIG_USB_GADGET_DEBUG is not set | 830 | # CONFIG_USB_GADGET_DEBUG is not set |
584 | # CONFIG_USB_GADGET_DEBUG_FILES is not set | 831 | # CONFIG_USB_GADGET_DEBUG_FILES is not set |
832 | # CONFIG_USB_GADGET_DEBUG_FS is not set | ||
833 | CONFIG_USB_GADGET_VBUS_DRAW=2 | ||
585 | CONFIG_USB_GADGET_SELECTED=y | 834 | CONFIG_USB_GADGET_SELECTED=y |
586 | # CONFIG_USB_GADGET_AMD5536UDC is not set | 835 | # CONFIG_USB_GADGET_AT91 is not set |
836 | # CONFIG_USB_GADGET_ATMEL_USBA is not set | ||
587 | # CONFIG_USB_GADGET_FSL_USB2 is not set | 837 | # CONFIG_USB_GADGET_FSL_USB2 is not set |
588 | # CONFIG_USB_GADGET_NET2280 is not set | ||
589 | # CONFIG_USB_GADGET_PXA2XX is not set | ||
590 | CONFIG_USB_GADGET_M66592=y | ||
591 | CONFIG_USB_M66592=y | ||
592 | # CONFIG_USB_GADGET_GOKU is not set | ||
593 | # CONFIG_USB_GADGET_LH7A40X is not set | 838 | # CONFIG_USB_GADGET_LH7A40X is not set |
594 | # CONFIG_USB_GADGET_OMAP is not set | 839 | # CONFIG_USB_GADGET_OMAP is not set |
840 | # CONFIG_USB_GADGET_PXA25X is not set | ||
841 | # CONFIG_USB_GADGET_PXA27X is not set | ||
595 | # CONFIG_USB_GADGET_S3C2410 is not set | 842 | # CONFIG_USB_GADGET_S3C2410 is not set |
596 | # CONFIG_USB_GADGET_AT91 is not set | 843 | CONFIG_USB_GADGET_M66592=y |
844 | CONFIG_USB_M66592=y | ||
845 | # CONFIG_USB_GADGET_AMD5536UDC is not set | ||
846 | # CONFIG_USB_GADGET_FSL_QE is not set | ||
847 | # CONFIG_USB_GADGET_NET2280 is not set | ||
848 | # CONFIG_USB_GADGET_GOKU is not set | ||
597 | # CONFIG_USB_GADGET_DUMMY_HCD is not set | 849 | # CONFIG_USB_GADGET_DUMMY_HCD is not set |
598 | CONFIG_USB_GADGET_DUALSPEED=y | 850 | CONFIG_USB_GADGET_DUALSPEED=y |
599 | # CONFIG_USB_ZERO is not set | 851 | # CONFIG_USB_ZERO is not set |
@@ -602,27 +854,78 @@ CONFIG_USB_GADGET_DUALSPEED=y | |||
602 | # CONFIG_USB_FILE_STORAGE is not set | 854 | # CONFIG_USB_FILE_STORAGE is not set |
603 | # CONFIG_USB_G_SERIAL is not set | 855 | # CONFIG_USB_G_SERIAL is not set |
604 | # CONFIG_USB_MIDI_GADGET is not set | 856 | # CONFIG_USB_MIDI_GADGET is not set |
857 | # CONFIG_USB_G_PRINTER is not set | ||
858 | # CONFIG_USB_CDC_COMPOSITE is not set | ||
605 | # CONFIG_MMC is not set | 859 | # CONFIG_MMC is not set |
860 | # CONFIG_MEMSTICK is not set | ||
606 | # CONFIG_NEW_LEDS is not set | 861 | # CONFIG_NEW_LEDS is not set |
607 | # CONFIG_RTC_CLASS is not set | 862 | # CONFIG_ACCESSIBILITY is not set |
863 | CONFIG_RTC_LIB=y | ||
864 | CONFIG_RTC_CLASS=y | ||
865 | CONFIG_RTC_HCTOSYS=y | ||
866 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
867 | # CONFIG_RTC_DEBUG is not set | ||
608 | 868 | ||
609 | # | 869 | # |
610 | # DMA Engine support | 870 | # RTC interfaces |
611 | # | 871 | # |
612 | # CONFIG_DMA_ENGINE is not set | 872 | CONFIG_RTC_INTF_SYSFS=y |
873 | CONFIG_RTC_INTF_PROC=y | ||
874 | CONFIG_RTC_INTF_DEV=y | ||
875 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
876 | # CONFIG_RTC_DRV_TEST is not set | ||
613 | 877 | ||
614 | # | 878 | # |
615 | # DMA Clients | 879 | # I2C RTC drivers |
616 | # | 880 | # |
881 | # CONFIG_RTC_DRV_DS1307 is not set | ||
882 | # CONFIG_RTC_DRV_DS1374 is not set | ||
883 | # CONFIG_RTC_DRV_DS1672 is not set | ||
884 | # CONFIG_RTC_DRV_MAX6900 is not set | ||
885 | # CONFIG_RTC_DRV_RS5C372 is not set | ||
886 | # CONFIG_RTC_DRV_ISL1208 is not set | ||
887 | # CONFIG_RTC_DRV_X1205 is not set | ||
888 | # CONFIG_RTC_DRV_PCF8563 is not set | ||
889 | # CONFIG_RTC_DRV_PCF8583 is not set | ||
890 | # CONFIG_RTC_DRV_M41T80 is not set | ||
891 | # CONFIG_RTC_DRV_S35390A is not set | ||
892 | # CONFIG_RTC_DRV_FM3130 is not set | ||
617 | 893 | ||
618 | # | 894 | # |
619 | # DMA Devices | 895 | # SPI RTC drivers |
896 | # | ||
897 | # CONFIG_RTC_DRV_M41T94 is not set | ||
898 | # CONFIG_RTC_DRV_DS1305 is not set | ||
899 | # CONFIG_RTC_DRV_MAX6902 is not set | ||
900 | # CONFIG_RTC_DRV_R9701 is not set | ||
901 | # CONFIG_RTC_DRV_RS5C348 is not set | ||
902 | # CONFIG_RTC_DRV_DS3234 is not set | ||
903 | |||
620 | # | 904 | # |
905 | # Platform RTC drivers | ||
906 | # | ||
907 | # CONFIG_RTC_DRV_DS1286 is not set | ||
908 | # CONFIG_RTC_DRV_DS1511 is not set | ||
909 | # CONFIG_RTC_DRV_DS1553 is not set | ||
910 | # CONFIG_RTC_DRV_DS1742 is not set | ||
911 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
912 | # CONFIG_RTC_DRV_M48T86 is not set | ||
913 | # CONFIG_RTC_DRV_M48T35 is not set | ||
914 | # CONFIG_RTC_DRV_M48T59 is not set | ||
915 | # CONFIG_RTC_DRV_BQ4802 is not set | ||
916 | # CONFIG_RTC_DRV_V3020 is not set | ||
621 | 917 | ||
622 | # | 918 | # |
623 | # Userspace I/O | 919 | # on-CPU RTC drivers |
624 | # | 920 | # |
921 | CONFIG_RTC_DRV_SH=y | ||
922 | # CONFIG_DMADEVICES is not set | ||
625 | CONFIG_UIO=m | 923 | CONFIG_UIO=m |
924 | # CONFIG_UIO_PDRV is not set | ||
925 | # CONFIG_UIO_PDRV_GENIRQ is not set | ||
926 | # CONFIG_UIO_SMX is not set | ||
927 | # CONFIG_UIO_SERCOS3 is not set | ||
928 | # CONFIG_STAGING is not set | ||
626 | 929 | ||
627 | # | 930 | # |
628 | # File systems | 931 | # File systems |
@@ -634,22 +937,20 @@ CONFIG_EXT3_FS=y | |||
634 | CONFIG_EXT3_FS_XATTR=y | 937 | CONFIG_EXT3_FS_XATTR=y |
635 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 938 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
636 | # CONFIG_EXT3_FS_SECURITY is not set | 939 | # CONFIG_EXT3_FS_SECURITY is not set |
637 | # CONFIG_EXT4DEV_FS is not set | 940 | # CONFIG_EXT4_FS is not set |
638 | CONFIG_JBD=y | 941 | CONFIG_JBD=y |
639 | # CONFIG_JBD_DEBUG is not set | 942 | # CONFIG_JBD_DEBUG is not set |
640 | CONFIG_FS_MBCACHE=y | 943 | CONFIG_FS_MBCACHE=y |
641 | # CONFIG_REISERFS_FS is not set | 944 | # CONFIG_REISERFS_FS is not set |
642 | # CONFIG_JFS_FS is not set | 945 | # CONFIG_JFS_FS is not set |
643 | # CONFIG_FS_POSIX_ACL is not set | 946 | # CONFIG_FS_POSIX_ACL is not set |
947 | CONFIG_FILE_LOCKING=y | ||
644 | # CONFIG_XFS_FS is not set | 948 | # CONFIG_XFS_FS is not set |
645 | # CONFIG_GFS2_FS is not set | ||
646 | # CONFIG_OCFS2_FS is not set | 949 | # CONFIG_OCFS2_FS is not set |
647 | # CONFIG_MINIX_FS is not set | 950 | CONFIG_DNOTIFY=y |
648 | # CONFIG_ROMFS_FS is not set | ||
649 | CONFIG_INOTIFY=y | 951 | CONFIG_INOTIFY=y |
650 | CONFIG_INOTIFY_USER=y | 952 | CONFIG_INOTIFY_USER=y |
651 | # CONFIG_QUOTA is not set | 953 | # CONFIG_QUOTA is not set |
652 | CONFIG_DNOTIFY=y | ||
653 | # CONFIG_AUTOFS_FS is not set | 954 | # CONFIG_AUTOFS_FS is not set |
654 | # CONFIG_AUTOFS4_FS is not set | 955 | # CONFIG_AUTOFS4_FS is not set |
655 | # CONFIG_FUSE_FS is not set | 956 | # CONFIG_FUSE_FS is not set |
@@ -673,12 +974,12 @@ CONFIG_DNOTIFY=y | |||
673 | CONFIG_PROC_FS=y | 974 | CONFIG_PROC_FS=y |
674 | CONFIG_PROC_KCORE=y | 975 | CONFIG_PROC_KCORE=y |
675 | CONFIG_PROC_SYSCTL=y | 976 | CONFIG_PROC_SYSCTL=y |
977 | CONFIG_PROC_PAGE_MONITOR=y | ||
676 | CONFIG_SYSFS=y | 978 | CONFIG_SYSFS=y |
677 | CONFIG_TMPFS=y | 979 | CONFIG_TMPFS=y |
678 | # CONFIG_TMPFS_POSIX_ACL is not set | 980 | # CONFIG_TMPFS_POSIX_ACL is not set |
679 | CONFIG_HUGETLBFS=y | 981 | CONFIG_HUGETLBFS=y |
680 | CONFIG_HUGETLB_PAGE=y | 982 | CONFIG_HUGETLB_PAGE=y |
681 | CONFIG_RAMFS=y | ||
682 | # CONFIG_CONFIGFS_FS is not set | 983 | # CONFIG_CONFIGFS_FS is not set |
683 | 984 | ||
684 | # | 985 | # |
@@ -693,14 +994,14 @@ CONFIG_RAMFS=y | |||
693 | # CONFIG_EFS_FS is not set | 994 | # CONFIG_EFS_FS is not set |
694 | # CONFIG_CRAMFS is not set | 995 | # CONFIG_CRAMFS is not set |
695 | # CONFIG_VXFS_FS is not set | 996 | # CONFIG_VXFS_FS is not set |
997 | # CONFIG_MINIX_FS is not set | ||
998 | # CONFIG_OMFS_FS is not set | ||
696 | # CONFIG_HPFS_FS is not set | 999 | # CONFIG_HPFS_FS is not set |
697 | # CONFIG_QNX4FS_FS is not set | 1000 | # CONFIG_QNX4FS_FS is not set |
1001 | # CONFIG_ROMFS_FS is not set | ||
698 | # CONFIG_SYSV_FS is not set | 1002 | # CONFIG_SYSV_FS is not set |
699 | # CONFIG_UFS_FS is not set | 1003 | # CONFIG_UFS_FS is not set |
700 | 1004 | CONFIG_NETWORK_FILESYSTEMS=y | |
701 | # | ||
702 | # Network File Systems | ||
703 | # | ||
704 | # CONFIG_NFS_FS is not set | 1005 | # CONFIG_NFS_FS is not set |
705 | # CONFIG_NFSD is not set | 1006 | # CONFIG_NFSD is not set |
706 | # CONFIG_SMB_FS is not set | 1007 | # CONFIG_SMB_FS is not set |
@@ -714,29 +1015,17 @@ CONFIG_RAMFS=y | |||
714 | # | 1015 | # |
715 | # CONFIG_PARTITION_ADVANCED is not set | 1016 | # CONFIG_PARTITION_ADVANCED is not set |
716 | CONFIG_MSDOS_PARTITION=y | 1017 | CONFIG_MSDOS_PARTITION=y |
717 | |||
718 | # | ||
719 | # Native Language Support | ||
720 | # | ||
721 | # CONFIG_NLS is not set | 1018 | # CONFIG_NLS is not set |
722 | |||
723 | # | ||
724 | # Distributed Lock Manager | ||
725 | # | ||
726 | # CONFIG_DLM is not set | 1019 | # CONFIG_DLM is not set |
727 | 1020 | ||
728 | # | 1021 | # |
729 | # Profiling support | ||
730 | # | ||
731 | CONFIG_PROFILING=y | ||
732 | # CONFIG_OPROFILE is not set | ||
733 | |||
734 | # | ||
735 | # Kernel hacking | 1022 | # Kernel hacking |
736 | # | 1023 | # |
737 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 1024 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
738 | # CONFIG_PRINTK_TIME is not set | 1025 | # CONFIG_PRINTK_TIME is not set |
1026 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
739 | # CONFIG_ENABLE_MUST_CHECK is not set | 1027 | # CONFIG_ENABLE_MUST_CHECK is not set |
1028 | CONFIG_FRAME_WARN=1024 | ||
740 | CONFIG_MAGIC_SYSRQ=y | 1029 | CONFIG_MAGIC_SYSRQ=y |
741 | # CONFIG_UNUSED_SYMBOLS is not set | 1030 | # CONFIG_UNUSED_SYMBOLS is not set |
742 | CONFIG_DEBUG_FS=y | 1031 | CONFIG_DEBUG_FS=y |
@@ -744,9 +1033,12 @@ CONFIG_DEBUG_FS=y | |||
744 | CONFIG_DEBUG_KERNEL=y | 1033 | CONFIG_DEBUG_KERNEL=y |
745 | CONFIG_DEBUG_SHIRQ=y | 1034 | CONFIG_DEBUG_SHIRQ=y |
746 | CONFIG_DETECT_SOFTLOCKUP=y | 1035 | CONFIG_DETECT_SOFTLOCKUP=y |
1036 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | ||
1037 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | ||
747 | CONFIG_SCHED_DEBUG=y | 1038 | CONFIG_SCHED_DEBUG=y |
748 | # CONFIG_SCHEDSTATS is not set | 1039 | # CONFIG_SCHEDSTATS is not set |
749 | # CONFIG_TIMER_STATS is not set | 1040 | # CONFIG_TIMER_STATS is not set |
1041 | # CONFIG_DEBUG_OBJECTS is not set | ||
750 | CONFIG_DEBUG_PREEMPT=y | 1042 | CONFIG_DEBUG_PREEMPT=y |
751 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1043 | # CONFIG_DEBUG_RT_MUTEXES is not set |
752 | # CONFIG_RT_MUTEX_TESTER is not set | 1044 | # CONFIG_RT_MUTEX_TESTER is not set |
@@ -761,18 +1053,36 @@ CONFIG_DEBUG_PREEMPT=y | |||
761 | CONFIG_DEBUG_BUGVERBOSE=y | 1053 | CONFIG_DEBUG_BUGVERBOSE=y |
762 | # CONFIG_DEBUG_INFO is not set | 1054 | # CONFIG_DEBUG_INFO is not set |
763 | CONFIG_DEBUG_VM=y | 1055 | CONFIG_DEBUG_VM=y |
1056 | # CONFIG_DEBUG_WRITECOUNT is not set | ||
1057 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
764 | # CONFIG_DEBUG_LIST is not set | 1058 | # CONFIG_DEBUG_LIST is not set |
1059 | # CONFIG_DEBUG_SG is not set | ||
765 | CONFIG_FRAME_POINTER=y | 1060 | CONFIG_FRAME_POINTER=y |
766 | CONFIG_FORCED_INLINING=y | ||
767 | # CONFIG_RCU_TORTURE_TEST is not set | 1061 | # CONFIG_RCU_TORTURE_TEST is not set |
1062 | # CONFIG_KPROBES_SANITY_TEST is not set | ||
1063 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
1064 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
1065 | # CONFIG_LKDTM is not set | ||
768 | # CONFIG_FAULT_INJECTION is not set | 1066 | # CONFIG_FAULT_INJECTION is not set |
1067 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
1068 | CONFIG_NOP_TRACER=y | ||
1069 | CONFIG_HAVE_FTRACE=y | ||
1070 | # CONFIG_FTRACE is not set | ||
1071 | # CONFIG_IRQSOFF_TRACER is not set | ||
1072 | # CONFIG_PREEMPT_TRACER is not set | ||
1073 | # CONFIG_SCHED_TRACER is not set | ||
1074 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
1075 | # CONFIG_BOOT_TRACER is not set | ||
1076 | # CONFIG_STACK_TRACER is not set | ||
1077 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
1078 | # CONFIG_SAMPLES is not set | ||
769 | CONFIG_SH_STANDARD_BIOS=y | 1079 | CONFIG_SH_STANDARD_BIOS=y |
770 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 1080 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
771 | CONFIG_EARLY_PRINTK=y | 1081 | CONFIG_EARLY_PRINTK=y |
772 | # CONFIG_DEBUG_BOOTMEM is not set | 1082 | # CONFIG_DEBUG_BOOTMEM is not set |
773 | CONFIG_DEBUG_STACKOVERFLOW=y | 1083 | CONFIG_DEBUG_STACKOVERFLOW=y |
774 | CONFIG_DEBUG_STACK_USAGE=y | 1084 | CONFIG_DEBUG_STACK_USAGE=y |
775 | # CONFIG_4KSTACKS is not set | 1085 | # CONFIG_IRQSTACKS is not set |
776 | # CONFIG_SH_KGDB is not set | 1086 | # CONFIG_SH_KGDB is not set |
777 | 1087 | ||
778 | # | 1088 | # |
@@ -780,7 +1090,92 @@ CONFIG_DEBUG_STACK_USAGE=y | |||
780 | # | 1090 | # |
781 | # CONFIG_KEYS is not set | 1091 | # CONFIG_KEYS is not set |
782 | # CONFIG_SECURITY is not set | 1092 | # CONFIG_SECURITY is not set |
783 | # CONFIG_CRYPTO is not set | 1093 | # CONFIG_SECURITYFS is not set |
1094 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
1095 | CONFIG_CRYPTO=y | ||
1096 | |||
1097 | # | ||
1098 | # Crypto core or helper | ||
1099 | # | ||
1100 | # CONFIG_CRYPTO_FIPS is not set | ||
1101 | # CONFIG_CRYPTO_MANAGER is not set | ||
1102 | # CONFIG_CRYPTO_GF128MUL is not set | ||
1103 | # CONFIG_CRYPTO_NULL is not set | ||
1104 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1105 | # CONFIG_CRYPTO_AUTHENC is not set | ||
1106 | # CONFIG_CRYPTO_TEST is not set | ||
1107 | |||
1108 | # | ||
1109 | # Authenticated Encryption with Associated Data | ||
1110 | # | ||
1111 | # CONFIG_CRYPTO_CCM is not set | ||
1112 | # CONFIG_CRYPTO_GCM is not set | ||
1113 | # CONFIG_CRYPTO_SEQIV is not set | ||
1114 | |||
1115 | # | ||
1116 | # Block modes | ||
1117 | # | ||
1118 | # CONFIG_CRYPTO_CBC is not set | ||
1119 | # CONFIG_CRYPTO_CTR is not set | ||
1120 | # CONFIG_CRYPTO_CTS is not set | ||
1121 | # CONFIG_CRYPTO_ECB is not set | ||
1122 | # CONFIG_CRYPTO_LRW is not set | ||
1123 | # CONFIG_CRYPTO_PCBC is not set | ||
1124 | # CONFIG_CRYPTO_XTS is not set | ||
1125 | |||
1126 | # | ||
1127 | # Hash modes | ||
1128 | # | ||
1129 | # CONFIG_CRYPTO_HMAC is not set | ||
1130 | # CONFIG_CRYPTO_XCBC is not set | ||
1131 | |||
1132 | # | ||
1133 | # Digest | ||
1134 | # | ||
1135 | # CONFIG_CRYPTO_CRC32C is not set | ||
1136 | # CONFIG_CRYPTO_MD4 is not set | ||
1137 | # CONFIG_CRYPTO_MD5 is not set | ||
1138 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
1139 | # CONFIG_CRYPTO_RMD128 is not set | ||
1140 | # CONFIG_CRYPTO_RMD160 is not set | ||
1141 | # CONFIG_CRYPTO_RMD256 is not set | ||
1142 | # CONFIG_CRYPTO_RMD320 is not set | ||
1143 | # CONFIG_CRYPTO_SHA1 is not set | ||
1144 | # CONFIG_CRYPTO_SHA256 is not set | ||
1145 | # CONFIG_CRYPTO_SHA512 is not set | ||
1146 | # CONFIG_CRYPTO_TGR192 is not set | ||
1147 | # CONFIG_CRYPTO_WP512 is not set | ||
1148 | |||
1149 | # | ||
1150 | # Ciphers | ||
1151 | # | ||
1152 | # CONFIG_CRYPTO_AES is not set | ||
1153 | # CONFIG_CRYPTO_ANUBIS is not set | ||
1154 | # CONFIG_CRYPTO_ARC4 is not set | ||
1155 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
1156 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1157 | # CONFIG_CRYPTO_CAST5 is not set | ||
1158 | # CONFIG_CRYPTO_CAST6 is not set | ||
1159 | # CONFIG_CRYPTO_DES is not set | ||
1160 | # CONFIG_CRYPTO_FCRYPT is not set | ||
1161 | # CONFIG_CRYPTO_KHAZAD is not set | ||
1162 | # CONFIG_CRYPTO_SALSA20 is not set | ||
1163 | # CONFIG_CRYPTO_SEED is not set | ||
1164 | # CONFIG_CRYPTO_SERPENT is not set | ||
1165 | # CONFIG_CRYPTO_TEA is not set | ||
1166 | # CONFIG_CRYPTO_TWOFISH is not set | ||
1167 | |||
1168 | # | ||
1169 | # Compression | ||
1170 | # | ||
1171 | # CONFIG_CRYPTO_DEFLATE is not set | ||
1172 | # CONFIG_CRYPTO_LZO is not set | ||
1173 | |||
1174 | # | ||
1175 | # Random Number Generation | ||
1176 | # | ||
1177 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
1178 | CONFIG_CRYPTO_HW=y | ||
784 | 1179 | ||
785 | # | 1180 | # |
786 | # Library routines | 1181 | # Library routines |
@@ -788,10 +1183,12 @@ CONFIG_DEBUG_STACK_USAGE=y | |||
788 | CONFIG_BITREVERSE=y | 1183 | CONFIG_BITREVERSE=y |
789 | # CONFIG_CRC_CCITT is not set | 1184 | # CONFIG_CRC_CCITT is not set |
790 | # CONFIG_CRC16 is not set | 1185 | # CONFIG_CRC16 is not set |
1186 | # CONFIG_CRC_T10DIF is not set | ||
791 | # CONFIG_CRC_ITU_T is not set | 1187 | # CONFIG_CRC_ITU_T is not set |
792 | CONFIG_CRC32=y | 1188 | CONFIG_CRC32=y |
793 | # CONFIG_CRC7 is not set | 1189 | # CONFIG_CRC7 is not set |
794 | # CONFIG_LIBCRC32C is not set | 1190 | # CONFIG_LIBCRC32C is not set |
1191 | CONFIG_AUDIT_GENERIC=y | ||
795 | CONFIG_PLIST=y | 1192 | CONFIG_PLIST=y |
796 | CONFIG_HAS_IOMEM=y | 1193 | CONFIG_HAS_IOMEM=y |
797 | CONFIG_HAS_IOPORT=y | 1194 | CONFIG_HAS_IOPORT=y |
diff --git a/arch/sh/configs/snapgear_defconfig b/arch/sh/configs/snapgear_defconfig index e4e5d2178131..b4ca5110958f 100644 --- a/arch/sh/configs/snapgear_defconfig +++ b/arch/sh/configs/snapgear_defconfig | |||
@@ -1,36 +1,36 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.23-rc1 | 3 | # Linux kernel version: 2.6.27 |
4 | # Thu Jul 26 11:49:11 2007 | 4 | # Wed Oct 22 19:55:03 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | ||
8 | CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig" | ||
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
8 | CONFIG_GENERIC_BUG=y | 10 | CONFIG_GENERIC_BUG=y |
9 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
10 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
11 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
12 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
13 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
14 | CONFIG_GENERIC_TIME=y | 17 | CONFIG_GENERIC_TIME=y |
15 | CONFIG_GENERIC_CLOCKEVENTS=y | 18 | CONFIG_GENERIC_CLOCKEVENTS=y |
16 | CONFIG_SYS_SUPPORTS_PCI=y | 19 | CONFIG_SYS_SUPPORTS_PCI=y |
17 | CONFIG_STACKTRACE_SUPPORT=y | 20 | CONFIG_STACKTRACE_SUPPORT=y |
18 | CONFIG_LOCKDEP_SUPPORT=y | 21 | CONFIG_LOCKDEP_SUPPORT=y |
22 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
19 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 23 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
20 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 24 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
21 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 25 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
22 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 26 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
23 | 27 | ||
24 | # | 28 | # |
25 | # Code maturity level options | 29 | # General setup |
26 | # | 30 | # |
27 | CONFIG_EXPERIMENTAL=y | 31 | CONFIG_EXPERIMENTAL=y |
28 | CONFIG_BROKEN_ON_SMP=y | 32 | CONFIG_BROKEN_ON_SMP=y |
29 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 33 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
30 | |||
31 | # | ||
32 | # General setup | ||
33 | # | ||
34 | CONFIG_LOCALVERSION="" | 34 | CONFIG_LOCALVERSION="" |
35 | CONFIG_LOCALVERSION_AUTO=y | 35 | CONFIG_LOCALVERSION_AUTO=y |
36 | # CONFIG_SWAP is not set | 36 | # CONFIG_SWAP is not set |
@@ -38,12 +38,15 @@ CONFIG_LOCALVERSION_AUTO=y | |||
38 | # CONFIG_POSIX_MQUEUE is not set | 38 | # CONFIG_POSIX_MQUEUE is not set |
39 | # CONFIG_BSD_PROCESS_ACCT is not set | 39 | # CONFIG_BSD_PROCESS_ACCT is not set |
40 | # CONFIG_TASKSTATS is not set | 40 | # CONFIG_TASKSTATS is not set |
41 | # CONFIG_USER_NS is not set | ||
42 | # CONFIG_AUDIT is not set | 41 | # CONFIG_AUDIT is not set |
43 | # CONFIG_IKCONFIG is not set | 42 | # CONFIG_IKCONFIG is not set |
44 | CONFIG_LOG_BUF_SHIFT=14 | 43 | CONFIG_LOG_BUF_SHIFT=14 |
45 | # CONFIG_SYSFS_DEPRECATED is not set | 44 | # CONFIG_CGROUPS is not set |
45 | # CONFIG_GROUP_SCHED is not set | ||
46 | CONFIG_SYSFS_DEPRECATED=y | ||
47 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
46 | # CONFIG_RELAY is not set | 48 | # CONFIG_RELAY is not set |
49 | # CONFIG_NAMESPACES is not set | ||
47 | CONFIG_BLK_DEV_INITRD=y | 50 | CONFIG_BLK_DEV_INITRD=y |
48 | CONFIG_INITRAMFS_SOURCE="" | 51 | CONFIG_INITRAMFS_SOURCE="" |
49 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 52 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
@@ -57,6 +60,7 @@ CONFIG_KALLSYMS=y | |||
57 | CONFIG_PRINTK=y | 60 | CONFIG_PRINTK=y |
58 | CONFIG_BUG=y | 61 | CONFIG_BUG=y |
59 | CONFIG_ELF_CORE=y | 62 | CONFIG_ELF_CORE=y |
63 | CONFIG_COMPAT_BRK=y | ||
60 | CONFIG_BASE_FULL=y | 64 | CONFIG_BASE_FULL=y |
61 | CONFIG_FUTEX=y | 65 | CONFIG_FUTEX=y |
62 | CONFIG_ANON_INODES=y | 66 | CONFIG_ANON_INODES=y |
@@ -65,10 +69,22 @@ CONFIG_SIGNALFD=y | |||
65 | CONFIG_TIMERFD=y | 69 | CONFIG_TIMERFD=y |
66 | CONFIG_EVENTFD=y | 70 | CONFIG_EVENTFD=y |
67 | CONFIG_SHMEM=y | 71 | CONFIG_SHMEM=y |
72 | CONFIG_AIO=y | ||
68 | CONFIG_VM_EVENT_COUNTERS=y | 73 | CONFIG_VM_EVENT_COUNTERS=y |
74 | CONFIG_PCI_QUIRKS=y | ||
69 | CONFIG_SLAB=y | 75 | CONFIG_SLAB=y |
70 | # CONFIG_SLUB is not set | 76 | # CONFIG_SLUB is not set |
71 | # CONFIG_SLOB is not set | 77 | # CONFIG_SLOB is not set |
78 | # CONFIG_PROFILING is not set | ||
79 | # CONFIG_MARKERS is not set | ||
80 | CONFIG_HAVE_OPROFILE=y | ||
81 | CONFIG_HAVE_IOREMAP_PROT=y | ||
82 | CONFIG_HAVE_KPROBES=y | ||
83 | CONFIG_HAVE_KRETPROBES=y | ||
84 | CONFIG_HAVE_ARCH_TRACEHOOK=y | ||
85 | CONFIG_HAVE_CLK=y | ||
86 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
87 | CONFIG_SLABINFO=y | ||
72 | CONFIG_RT_MUTEXES=y | 88 | CONFIG_RT_MUTEXES=y |
73 | # CONFIG_TINY_SHMEM is not set | 89 | # CONFIG_TINY_SHMEM is not set |
74 | CONFIG_BASE_SMALL=0 | 90 | CONFIG_BASE_SMALL=0 |
@@ -78,6 +94,7 @@ CONFIG_BLOCK=y | |||
78 | # CONFIG_BLK_DEV_IO_TRACE is not set | 94 | # CONFIG_BLK_DEV_IO_TRACE is not set |
79 | # CONFIG_LSF is not set | 95 | # CONFIG_LSF is not set |
80 | # CONFIG_BLK_DEV_BSG is not set | 96 | # CONFIG_BLK_DEV_BSG is not set |
97 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
81 | 98 | ||
82 | # | 99 | # |
83 | # IO Schedulers | 100 | # IO Schedulers |
@@ -91,13 +108,18 @@ CONFIG_DEFAULT_AS=y | |||
91 | # CONFIG_DEFAULT_CFQ is not set | 108 | # CONFIG_DEFAULT_CFQ is not set |
92 | # CONFIG_DEFAULT_NOOP is not set | 109 | # CONFIG_DEFAULT_NOOP is not set |
93 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 110 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
111 | CONFIG_CLASSIC_RCU=y | ||
112 | # CONFIG_FREEZER is not set | ||
94 | 113 | ||
95 | # | 114 | # |
96 | # System type | 115 | # System type |
97 | # | 116 | # |
98 | CONFIG_CPU_SH4=y | 117 | CONFIG_CPU_SH4=y |
99 | # CONFIG_CPU_SUBTYPE_SH7619 is not set | 118 | # CONFIG_CPU_SUBTYPE_SH7619 is not set |
119 | # CONFIG_CPU_SUBTYPE_SH7203 is not set | ||
100 | # CONFIG_CPU_SUBTYPE_SH7206 is not set | 120 | # CONFIG_CPU_SUBTYPE_SH7206 is not set |
121 | # CONFIG_CPU_SUBTYPE_SH7263 is not set | ||
122 | # CONFIG_CPU_SUBTYPE_MXG is not set | ||
101 | # CONFIG_CPU_SUBTYPE_SH7705 is not set | 123 | # CONFIG_CPU_SUBTYPE_SH7705 is not set |
102 | # CONFIG_CPU_SUBTYPE_SH7706 is not set | 124 | # CONFIG_CPU_SUBTYPE_SH7706 is not set |
103 | # CONFIG_CPU_SUBTYPE_SH7707 is not set | 125 | # CONFIG_CPU_SUBTYPE_SH7707 is not set |
@@ -105,6 +127,8 @@ CONFIG_CPU_SH4=y | |||
105 | # CONFIG_CPU_SUBTYPE_SH7709 is not set | 127 | # CONFIG_CPU_SUBTYPE_SH7709 is not set |
106 | # CONFIG_CPU_SUBTYPE_SH7710 is not set | 128 | # CONFIG_CPU_SUBTYPE_SH7710 is not set |
107 | # CONFIG_CPU_SUBTYPE_SH7712 is not set | 129 | # CONFIG_CPU_SUBTYPE_SH7712 is not set |
130 | # CONFIG_CPU_SUBTYPE_SH7720 is not set | ||
131 | # CONFIG_CPU_SUBTYPE_SH7721 is not set | ||
108 | # CONFIG_CPU_SUBTYPE_SH7750 is not set | 132 | # CONFIG_CPU_SUBTYPE_SH7750 is not set |
109 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | 133 | # CONFIG_CPU_SUBTYPE_SH7091 is not set |
110 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | 134 | # CONFIG_CPU_SUBTYPE_SH7750R is not set |
@@ -113,14 +137,17 @@ CONFIG_CPU_SH4=y | |||
113 | CONFIG_CPU_SUBTYPE_SH7751R=y | 137 | CONFIG_CPU_SUBTYPE_SH7751R=y |
114 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | 138 | # CONFIG_CPU_SUBTYPE_SH7760 is not set |
115 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | 139 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set |
116 | # CONFIG_CPU_SUBTYPE_ST40STB1 is not set | 140 | # CONFIG_CPU_SUBTYPE_SH7723 is not set |
117 | # CONFIG_CPU_SUBTYPE_ST40GX1 is not set | 141 | # CONFIG_CPU_SUBTYPE_SH7763 is not set |
118 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | 142 | # CONFIG_CPU_SUBTYPE_SH7770 is not set |
119 | # CONFIG_CPU_SUBTYPE_SH7780 is not set | 143 | # CONFIG_CPU_SUBTYPE_SH7780 is not set |
120 | # CONFIG_CPU_SUBTYPE_SH7785 is not set | 144 | # CONFIG_CPU_SUBTYPE_SH7785 is not set |
121 | # CONFIG_CPU_SUBTYPE_SHX3 is not set | 145 | # CONFIG_CPU_SUBTYPE_SHX3 is not set |
122 | # CONFIG_CPU_SUBTYPE_SH7343 is not set | 146 | # CONFIG_CPU_SUBTYPE_SH7343 is not set |
123 | # CONFIG_CPU_SUBTYPE_SH7722 is not set | 147 | # CONFIG_CPU_SUBTYPE_SH7722 is not set |
148 | # CONFIG_CPU_SUBTYPE_SH7366 is not set | ||
149 | # CONFIG_CPU_SUBTYPE_SH5_101 is not set | ||
150 | # CONFIG_CPU_SUBTYPE_SH5_103 is not set | ||
124 | 151 | ||
125 | # | 152 | # |
126 | # Memory management options | 153 | # Memory management options |
@@ -130,6 +157,7 @@ CONFIG_MMU=y | |||
130 | CONFIG_PAGE_OFFSET=0x80000000 | 157 | CONFIG_PAGE_OFFSET=0x80000000 |
131 | CONFIG_MEMORY_START=0x08000000 | 158 | CONFIG_MEMORY_START=0x08000000 |
132 | CONFIG_MEMORY_SIZE=0x01000000 | 159 | CONFIG_MEMORY_SIZE=0x01000000 |
160 | CONFIG_29BIT=y | ||
133 | CONFIG_VSYSCALL=y | 161 | CONFIG_VSYSCALL=y |
134 | CONFIG_ARCH_FLATMEM_ENABLE=y | 162 | CONFIG_ARCH_FLATMEM_ENABLE=y |
135 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | 163 | CONFIG_ARCH_SPARSEMEM_ENABLE=y |
@@ -139,7 +167,9 @@ CONFIG_ARCH_POPULATES_NODE_MAP=y | |||
139 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | 167 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y |
140 | CONFIG_PAGE_SIZE_4KB=y | 168 | CONFIG_PAGE_SIZE_4KB=y |
141 | # CONFIG_PAGE_SIZE_8KB is not set | 169 | # CONFIG_PAGE_SIZE_8KB is not set |
170 | # CONFIG_PAGE_SIZE_16KB is not set | ||
142 | # CONFIG_PAGE_SIZE_64KB is not set | 171 | # CONFIG_PAGE_SIZE_64KB is not set |
172 | CONFIG_ENTRY_OFFSET=0x00001000 | ||
143 | CONFIG_SELECT_MEMORY_MODEL=y | 173 | CONFIG_SELECT_MEMORY_MODEL=y |
144 | CONFIG_FLATMEM_MANUAL=y | 174 | CONFIG_FLATMEM_MANUAL=y |
145 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 175 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
@@ -147,16 +177,21 @@ CONFIG_FLATMEM_MANUAL=y | |||
147 | CONFIG_FLATMEM=y | 177 | CONFIG_FLATMEM=y |
148 | CONFIG_FLAT_NODE_MEM_MAP=y | 178 | CONFIG_FLAT_NODE_MEM_MAP=y |
149 | CONFIG_SPARSEMEM_STATIC=y | 179 | CONFIG_SPARSEMEM_STATIC=y |
180 | CONFIG_PAGEFLAGS_EXTENDED=y | ||
150 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 181 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
151 | # CONFIG_RESOURCES_64BIT is not set | 182 | # CONFIG_RESOURCES_64BIT is not set |
183 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
152 | CONFIG_ZONE_DMA_FLAG=0 | 184 | CONFIG_ZONE_DMA_FLAG=0 |
153 | CONFIG_NR_QUICK=2 | 185 | CONFIG_NR_QUICK=2 |
186 | CONFIG_UNEVICTABLE_LRU=y | ||
154 | 187 | ||
155 | # | 188 | # |
156 | # Cache configuration | 189 | # Cache configuration |
157 | # | 190 | # |
158 | # CONFIG_SH_DIRECT_MAPPED is not set | 191 | # CONFIG_SH_DIRECT_MAPPED is not set |
159 | # CONFIG_SH_WRITETHROUGH is not set | 192 | CONFIG_CACHE_WRITEBACK=y |
193 | # CONFIG_CACHE_WRITETHROUGH is not set | ||
194 | # CONFIG_CACHE_OFF is not set | ||
160 | 195 | ||
161 | # | 196 | # |
162 | # Processor features | 197 | # Processor features |
@@ -164,20 +199,18 @@ CONFIG_NR_QUICK=2 | |||
164 | CONFIG_CPU_LITTLE_ENDIAN=y | 199 | CONFIG_CPU_LITTLE_ENDIAN=y |
165 | # CONFIG_CPU_BIG_ENDIAN is not set | 200 | # CONFIG_CPU_BIG_ENDIAN is not set |
166 | CONFIG_SH_FPU=y | 201 | CONFIG_SH_FPU=y |
167 | # CONFIG_SH_DSP is not set | ||
168 | # CONFIG_SH_STORE_QUEUES is not set | 202 | # CONFIG_SH_STORE_QUEUES is not set |
169 | CONFIG_CPU_HAS_INTEVT=y | 203 | CONFIG_CPU_HAS_INTEVT=y |
170 | CONFIG_CPU_HAS_INTC_IRQ=y | ||
171 | CONFIG_CPU_HAS_IPR_IRQ=y | 204 | CONFIG_CPU_HAS_IPR_IRQ=y |
172 | CONFIG_CPU_HAS_SR_RB=y | 205 | CONFIG_CPU_HAS_SR_RB=y |
173 | CONFIG_CPU_HAS_PTEA=y | 206 | CONFIG_CPU_HAS_PTEA=y |
207 | CONFIG_CPU_HAS_FPU=y | ||
174 | 208 | ||
175 | # | 209 | # |
176 | # Board support | 210 | # Board support |
177 | # | 211 | # |
178 | # CONFIG_SH_7751_SYSTEMH is not set | 212 | # CONFIG_SH_7751_SYSTEMH is not set |
179 | CONFIG_SH_SECUREEDGE5410=y | 213 | CONFIG_SH_SECUREEDGE5410=y |
180 | # CONFIG_SH_HS7751RVOIP is not set | ||
181 | # CONFIG_SH_RTS7751R2D is not set | 214 | # CONFIG_SH_RTS7751R2D is not set |
182 | # CONFIG_SH_LANDISK is not set | 215 | # CONFIG_SH_LANDISK is not set |
183 | # CONFIG_SH_TITAN is not set | 216 | # CONFIG_SH_TITAN is not set |
@@ -189,9 +222,9 @@ CONFIG_SH_SECUREEDGE5410=y | |||
189 | CONFIG_SH_TMU=y | 222 | CONFIG_SH_TMU=y |
190 | CONFIG_SH_TIMER_IRQ=16 | 223 | CONFIG_SH_TIMER_IRQ=16 |
191 | CONFIG_SH_PCLK_FREQ=60000000 | 224 | CONFIG_SH_PCLK_FREQ=60000000 |
192 | # CONFIG_TICK_ONESHOT is not set | ||
193 | # CONFIG_NO_HZ is not set | 225 | # CONFIG_NO_HZ is not set |
194 | # CONFIG_HIGH_RES_TIMERS is not set | 226 | # CONFIG_HIGH_RES_TIMERS is not set |
227 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
195 | 228 | ||
196 | # | 229 | # |
197 | # CPU Frequency scaling | 230 | # CPU Frequency scaling |
@@ -224,11 +257,15 @@ CONFIG_HZ_250=y | |||
224 | # CONFIG_HZ_300 is not set | 257 | # CONFIG_HZ_300 is not set |
225 | # CONFIG_HZ_1000 is not set | 258 | # CONFIG_HZ_1000 is not set |
226 | CONFIG_HZ=250 | 259 | CONFIG_HZ=250 |
260 | # CONFIG_SCHED_HRTICK is not set | ||
227 | # CONFIG_KEXEC is not set | 261 | # CONFIG_KEXEC is not set |
228 | # CONFIG_CRASH_DUMP is not set | 262 | # CONFIG_CRASH_DUMP is not set |
263 | # CONFIG_SECCOMP is not set | ||
229 | CONFIG_PREEMPT_NONE=y | 264 | CONFIG_PREEMPT_NONE=y |
230 | # CONFIG_PREEMPT_VOLUNTARY is not set | 265 | # CONFIG_PREEMPT_VOLUNTARY is not set |
231 | # CONFIG_PREEMPT is not set | 266 | # CONFIG_PREEMPT is not set |
267 | CONFIG_GUSA=y | ||
268 | # CONFIG_GUSA_RB is not set | ||
232 | 269 | ||
233 | # | 270 | # |
234 | # Boot options | 271 | # Boot options |
@@ -241,26 +278,20 @@ CONFIG_BOOT_LINK_OFFSET=0x00800000 | |||
241 | # | 278 | # |
242 | # Bus options | 279 | # Bus options |
243 | # | 280 | # |
244 | CONFIG_SH_CONCAT_FS=y | ||
245 | CONFIG_PCI=y | 281 | CONFIG_PCI=y |
246 | CONFIG_SH_PCIDMA_NONCOHERENT=y | 282 | CONFIG_SH_PCIDMA_NONCOHERENT=y |
247 | CONFIG_PCI_AUTO=y | 283 | CONFIG_PCI_AUTO=y |
248 | CONFIG_PCI_AUTO_UPDATE_RESOURCES=y | 284 | CONFIG_PCI_AUTO_UPDATE_RESOURCES=y |
249 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 285 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
250 | 286 | CONFIG_PCI_LEGACY=y | |
251 | # | ||
252 | # PCCARD (PCMCIA/CardBus) support | ||
253 | # | ||
254 | 287 | ||
255 | # | 288 | # |
256 | # Executable file formats | 289 | # Executable file formats |
257 | # | 290 | # |
258 | CONFIG_BINFMT_ELF=y | 291 | CONFIG_BINFMT_ELF=y |
292 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
293 | # CONFIG_HAVE_AOUT is not set | ||
259 | # CONFIG_BINFMT_MISC is not set | 294 | # CONFIG_BINFMT_MISC is not set |
260 | |||
261 | # | ||
262 | # Networking | ||
263 | # | ||
264 | CONFIG_NET=y | 295 | CONFIG_NET=y |
265 | 296 | ||
266 | # | 297 | # |
@@ -286,14 +317,13 @@ CONFIG_IP_FIB_HASH=y | |||
286 | # CONFIG_INET_XFRM_MODE_TRANSPORT is not set | 317 | # CONFIG_INET_XFRM_MODE_TRANSPORT is not set |
287 | # CONFIG_INET_XFRM_MODE_TUNNEL is not set | 318 | # CONFIG_INET_XFRM_MODE_TUNNEL is not set |
288 | # CONFIG_INET_XFRM_MODE_BEET is not set | 319 | # CONFIG_INET_XFRM_MODE_BEET is not set |
320 | # CONFIG_INET_LRO is not set | ||
289 | # CONFIG_INET_DIAG is not set | 321 | # CONFIG_INET_DIAG is not set |
290 | # CONFIG_TCP_CONG_ADVANCED is not set | 322 | # CONFIG_TCP_CONG_ADVANCED is not set |
291 | CONFIG_TCP_CONG_CUBIC=y | 323 | CONFIG_TCP_CONG_CUBIC=y |
292 | CONFIG_DEFAULT_TCP_CONG="cubic" | 324 | CONFIG_DEFAULT_TCP_CONG="cubic" |
293 | # CONFIG_TCP_MD5SIG is not set | 325 | # CONFIG_TCP_MD5SIG is not set |
294 | # CONFIG_IPV6 is not set | 326 | # CONFIG_IPV6 is not set |
295 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
296 | # CONFIG_INET6_TUNNEL is not set | ||
297 | # CONFIG_NETWORK_SECMARK is not set | 327 | # CONFIG_NETWORK_SECMARK is not set |
298 | # CONFIG_NETFILTER is not set | 328 | # CONFIG_NETFILTER is not set |
299 | # CONFIG_IP_DCCP is not set | 329 | # CONFIG_IP_DCCP is not set |
@@ -301,6 +331,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
301 | # CONFIG_TIPC is not set | 331 | # CONFIG_TIPC is not set |
302 | # CONFIG_ATM is not set | 332 | # CONFIG_ATM is not set |
303 | # CONFIG_BRIDGE is not set | 333 | # CONFIG_BRIDGE is not set |
334 | # CONFIG_NET_DSA is not set | ||
304 | # CONFIG_VLAN_8021Q is not set | 335 | # CONFIG_VLAN_8021Q is not set |
305 | # CONFIG_DECNET is not set | 336 | # CONFIG_DECNET is not set |
306 | # CONFIG_LLC2 is not set | 337 | # CONFIG_LLC2 is not set |
@@ -310,10 +341,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
310 | # CONFIG_LAPB is not set | 341 | # CONFIG_LAPB is not set |
311 | # CONFIG_ECONET is not set | 342 | # CONFIG_ECONET is not set |
312 | # CONFIG_WAN_ROUTER is not set | 343 | # CONFIG_WAN_ROUTER is not set |
313 | |||
314 | # | ||
315 | # QoS and/or fair queueing | ||
316 | # | ||
317 | # CONFIG_NET_SCHED is not set | 344 | # CONFIG_NET_SCHED is not set |
318 | 345 | ||
319 | # | 346 | # |
@@ -321,14 +348,14 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
321 | # | 348 | # |
322 | # CONFIG_NET_PKTGEN is not set | 349 | # CONFIG_NET_PKTGEN is not set |
323 | # CONFIG_HAMRADIO is not set | 350 | # CONFIG_HAMRADIO is not set |
351 | # CONFIG_CAN is not set | ||
324 | # CONFIG_IRDA is not set | 352 | # CONFIG_IRDA is not set |
325 | # CONFIG_BT is not set | 353 | # CONFIG_BT is not set |
326 | # CONFIG_AF_RXRPC is not set | 354 | # CONFIG_AF_RXRPC is not set |
327 | 355 | # CONFIG_PHONET is not set | |
328 | # | 356 | CONFIG_WIRELESS=y |
329 | # Wireless | ||
330 | # | ||
331 | # CONFIG_CFG80211 is not set | 357 | # CONFIG_CFG80211 is not set |
358 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
332 | # CONFIG_WIRELESS_EXT is not set | 359 | # CONFIG_WIRELESS_EXT is not set |
333 | # CONFIG_MAC80211 is not set | 360 | # CONFIG_MAC80211 is not set |
334 | # CONFIG_IEEE80211 is not set | 361 | # CONFIG_IEEE80211 is not set |
@@ -352,6 +379,7 @@ CONFIG_MTD=y | |||
352 | CONFIG_MTD_PARTITIONS=y | 379 | CONFIG_MTD_PARTITIONS=y |
353 | # CONFIG_MTD_REDBOOT_PARTS is not set | 380 | # CONFIG_MTD_REDBOOT_PARTS is not set |
354 | # CONFIG_MTD_CMDLINE_PARTS is not set | 381 | # CONFIG_MTD_CMDLINE_PARTS is not set |
382 | # CONFIG_MTD_AR7_PARTS is not set | ||
355 | 383 | ||
356 | # | 384 | # |
357 | # User Modules And Translation Layers | 385 | # User Modules And Translation Layers |
@@ -365,6 +393,7 @@ CONFIG_MTD_BLOCK_RO=y | |||
365 | # CONFIG_INFTL is not set | 393 | # CONFIG_INFTL is not set |
366 | # CONFIG_RFD_FTL is not set | 394 | # CONFIG_RFD_FTL is not set |
367 | # CONFIG_SSFDC is not set | 395 | # CONFIG_SSFDC is not set |
396 | # CONFIG_MTD_OOPS is not set | ||
368 | 397 | ||
369 | # | 398 | # |
370 | # RAM/ROM/Flash chip drivers | 399 | # RAM/ROM/Flash chip drivers |
@@ -401,6 +430,7 @@ CONFIG_MTD_RAM=y | |||
401 | # | 430 | # |
402 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | 431 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set |
403 | # CONFIG_MTD_PHYSMAP is not set | 432 | # CONFIG_MTD_PHYSMAP is not set |
433 | # CONFIG_MTD_INTEL_VR_NOR is not set | ||
404 | CONFIG_MTD_PLATRAM=y | 434 | CONFIG_MTD_PLATRAM=y |
405 | 435 | ||
406 | # | 436 | # |
@@ -437,10 +467,12 @@ CONFIG_BLK_DEV=y | |||
437 | CONFIG_BLK_DEV_RAM=y | 467 | CONFIG_BLK_DEV_RAM=y |
438 | CONFIG_BLK_DEV_RAM_COUNT=16 | 468 | CONFIG_BLK_DEV_RAM_COUNT=16 |
439 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 469 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
440 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 470 | # CONFIG_BLK_DEV_XIP is not set |
441 | # CONFIG_CDROM_PKTCDVD is not set | 471 | # CONFIG_CDROM_PKTCDVD is not set |
442 | # CONFIG_ATA_OVER_ETH is not set | 472 | # CONFIG_ATA_OVER_ETH is not set |
473 | # CONFIG_BLK_DEV_HD is not set | ||
443 | # CONFIG_MISC_DEVICES is not set | 474 | # CONFIG_MISC_DEVICES is not set |
475 | CONFIG_HAVE_IDE=y | ||
444 | # CONFIG_IDE is not set | 476 | # CONFIG_IDE is not set |
445 | 477 | ||
446 | # | 478 | # |
@@ -452,44 +484,52 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | |||
452 | # CONFIG_SCSI_NETLINK is not set | 484 | # CONFIG_SCSI_NETLINK is not set |
453 | # CONFIG_ATA is not set | 485 | # CONFIG_ATA is not set |
454 | # CONFIG_MD is not set | 486 | # CONFIG_MD is not set |
487 | # CONFIG_FUSION is not set | ||
455 | 488 | ||
456 | # | 489 | # |
457 | # Fusion MPT device support | 490 | # IEEE 1394 (FireWire) support |
458 | # | 491 | # |
459 | # CONFIG_FUSION is not set | ||
460 | 492 | ||
461 | # | 493 | # |
462 | # IEEE 1394 (FireWire) support | 494 | # Enable only one of the two stacks, unless you know what you are doing |
463 | # | 495 | # |
464 | # CONFIG_FIREWIRE is not set | 496 | # CONFIG_FIREWIRE is not set |
465 | # CONFIG_IEEE1394 is not set | 497 | # CONFIG_IEEE1394 is not set |
466 | # CONFIG_I2O is not set | 498 | # CONFIG_I2O is not set |
467 | CONFIG_NETDEVICES=y | 499 | CONFIG_NETDEVICES=y |
468 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
469 | # CONFIG_DUMMY is not set | 500 | # CONFIG_DUMMY is not set |
470 | # CONFIG_BONDING is not set | 501 | # CONFIG_BONDING is not set |
471 | # CONFIG_MACVLAN is not set | 502 | # CONFIG_MACVLAN is not set |
472 | # CONFIG_EQUALIZER is not set | 503 | # CONFIG_EQUALIZER is not set |
473 | # CONFIG_TUN is not set | 504 | # CONFIG_TUN is not set |
505 | # CONFIG_VETH is not set | ||
474 | # CONFIG_ARCNET is not set | 506 | # CONFIG_ARCNET is not set |
475 | # CONFIG_PHYLIB is not set | 507 | # CONFIG_PHYLIB is not set |
476 | CONFIG_NET_ETHERNET=y | 508 | CONFIG_NET_ETHERNET=y |
477 | CONFIG_MII=y | 509 | CONFIG_MII=y |
510 | # CONFIG_AX88796 is not set | ||
478 | # CONFIG_STNIC is not set | 511 | # CONFIG_STNIC is not set |
479 | # CONFIG_HAPPYMEAL is not set | 512 | # CONFIG_HAPPYMEAL is not set |
480 | # CONFIG_SUNGEM is not set | 513 | # CONFIG_SUNGEM is not set |
481 | # CONFIG_CASSINI is not set | 514 | # CONFIG_CASSINI is not set |
482 | # CONFIG_NET_VENDOR_3COM is not set | 515 | # CONFIG_NET_VENDOR_3COM is not set |
483 | # CONFIG_SMC91X is not set | 516 | # CONFIG_SMC91X is not set |
517 | # CONFIG_SMC911X is not set | ||
484 | # CONFIG_NET_TULIP is not set | 518 | # CONFIG_NET_TULIP is not set |
485 | # CONFIG_HP100 is not set | 519 | # CONFIG_HP100 is not set |
520 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
521 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
522 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
523 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
524 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
525 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
526 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
486 | CONFIG_NET_PCI=y | 527 | CONFIG_NET_PCI=y |
487 | # CONFIG_PCNET32 is not set | 528 | # CONFIG_PCNET32 is not set |
488 | # CONFIG_AMD8111_ETH is not set | 529 | # CONFIG_AMD8111_ETH is not set |
489 | # CONFIG_ADAPTEC_STARFIRE is not set | 530 | # CONFIG_ADAPTEC_STARFIRE is not set |
490 | # CONFIG_B44 is not set | 531 | # CONFIG_B44 is not set |
491 | # CONFIG_FORCEDETH is not set | 532 | # CONFIG_FORCEDETH is not set |
492 | # CONFIG_DGRS is not set | ||
493 | # CONFIG_EEPRO100 is not set | 533 | # CONFIG_EEPRO100 is not set |
494 | # CONFIG_E100 is not set | 534 | # CONFIG_E100 is not set |
495 | # CONFIG_FEALNX is not set | 535 | # CONFIG_FEALNX is not set |
@@ -501,12 +541,14 @@ CONFIG_8139TOO_PIO=y | |||
501 | # CONFIG_8139TOO_TUNE_TWISTER is not set | 541 | # CONFIG_8139TOO_TUNE_TWISTER is not set |
502 | # CONFIG_8139TOO_8129 is not set | 542 | # CONFIG_8139TOO_8129 is not set |
503 | # CONFIG_8139_OLD_RX_RESET is not set | 543 | # CONFIG_8139_OLD_RX_RESET is not set |
544 | # CONFIG_R6040 is not set | ||
504 | # CONFIG_SIS900 is not set | 545 | # CONFIG_SIS900 is not set |
505 | # CONFIG_EPIC100 is not set | 546 | # CONFIG_EPIC100 is not set |
506 | # CONFIG_SUNDANCE is not set | 547 | # CONFIG_SUNDANCE is not set |
507 | # CONFIG_TLAN is not set | 548 | # CONFIG_TLAN is not set |
508 | # CONFIG_VIA_RHINE is not set | 549 | # CONFIG_VIA_RHINE is not set |
509 | # CONFIG_SC92031 is not set | 550 | # CONFIG_SC92031 is not set |
551 | # CONFIG_ATL2 is not set | ||
510 | # CONFIG_NETDEV_1000 is not set | 552 | # CONFIG_NETDEV_1000 is not set |
511 | # CONFIG_NETDEV_10000 is not set | 553 | # CONFIG_NETDEV_10000 is not set |
512 | # CONFIG_TR is not set | 554 | # CONFIG_TR is not set |
@@ -516,12 +558,12 @@ CONFIG_8139TOO_PIO=y | |||
516 | # | 558 | # |
517 | # CONFIG_WLAN_PRE80211 is not set | 559 | # CONFIG_WLAN_PRE80211 is not set |
518 | # CONFIG_WLAN_80211 is not set | 560 | # CONFIG_WLAN_80211 is not set |
561 | # CONFIG_IWLWIFI_LEDS is not set | ||
519 | # CONFIG_WAN is not set | 562 | # CONFIG_WAN is not set |
520 | # CONFIG_FDDI is not set | 563 | # CONFIG_FDDI is not set |
521 | # CONFIG_HIPPI is not set | 564 | # CONFIG_HIPPI is not set |
522 | # CONFIG_PPP is not set | 565 | # CONFIG_PPP is not set |
523 | # CONFIG_SLIP is not set | 566 | # CONFIG_SLIP is not set |
524 | # CONFIG_SHAPER is not set | ||
525 | # CONFIG_NETCONSOLE is not set | 567 | # CONFIG_NETCONSOLE is not set |
526 | # CONFIG_NETPOLL is not set | 568 | # CONFIG_NETPOLL is not set |
527 | # CONFIG_NET_POLL_CONTROLLER is not set | 569 | # CONFIG_NET_POLL_CONTROLLER is not set |
@@ -540,7 +582,6 @@ CONFIG_INPUT=y | |||
540 | # | 582 | # |
541 | # CONFIG_INPUT_MOUSEDEV is not set | 583 | # CONFIG_INPUT_MOUSEDEV is not set |
542 | # CONFIG_INPUT_JOYDEV is not set | 584 | # CONFIG_INPUT_JOYDEV is not set |
543 | # CONFIG_INPUT_TSDEV is not set | ||
544 | # CONFIG_INPUT_EVDEV is not set | 585 | # CONFIG_INPUT_EVDEV is not set |
545 | # CONFIG_INPUT_EVBUG is not set | 586 | # CONFIG_INPUT_EVBUG is not set |
546 | 587 | ||
@@ -564,7 +605,9 @@ CONFIG_INPUT=y | |||
564 | # Character devices | 605 | # Character devices |
565 | # | 606 | # |
566 | # CONFIG_VT is not set | 607 | # CONFIG_VT is not set |
608 | CONFIG_DEVKMEM=y | ||
567 | # CONFIG_SERIAL_NONSTANDARD is not set | 609 | # CONFIG_SERIAL_NONSTANDARD is not set |
610 | # CONFIG_NOZOMI is not set | ||
568 | 611 | ||
569 | # | 612 | # |
570 | # Serial drivers | 613 | # Serial drivers |
@@ -584,82 +627,77 @@ CONFIG_UNIX98_PTYS=y | |||
584 | CONFIG_LEGACY_PTYS=y | 627 | CONFIG_LEGACY_PTYS=y |
585 | CONFIG_LEGACY_PTY_COUNT=256 | 628 | CONFIG_LEGACY_PTY_COUNT=256 |
586 | # CONFIG_IPMI_HANDLER is not set | 629 | # CONFIG_IPMI_HANDLER is not set |
587 | # CONFIG_WATCHDOG is not set | ||
588 | # CONFIG_HW_RANDOM is not set | 630 | # CONFIG_HW_RANDOM is not set |
589 | # CONFIG_R3964 is not set | 631 | # CONFIG_R3964 is not set |
590 | # CONFIG_APPLICOM is not set | 632 | # CONFIG_APPLICOM is not set |
591 | # CONFIG_DRM is not set | ||
592 | # CONFIG_RAW_DRIVER is not set | 633 | # CONFIG_RAW_DRIVER is not set |
593 | # CONFIG_TCG_TPM is not set | 634 | # CONFIG_TCG_TPM is not set |
594 | CONFIG_DEVPORT=y | 635 | CONFIG_DEVPORT=y |
595 | # CONFIG_I2C is not set | 636 | # CONFIG_I2C is not set |
596 | |||
597 | # | ||
598 | # SPI support | ||
599 | # | ||
600 | # CONFIG_SPI is not set | 637 | # CONFIG_SPI is not set |
601 | # CONFIG_SPI_MASTER is not set | ||
602 | # CONFIG_W1 is not set | 638 | # CONFIG_W1 is not set |
603 | # CONFIG_POWER_SUPPLY is not set | 639 | # CONFIG_POWER_SUPPLY is not set |
604 | # CONFIG_HWMON is not set | 640 | # CONFIG_HWMON is not set |
641 | # CONFIG_THERMAL is not set | ||
642 | # CONFIG_THERMAL_HWMON is not set | ||
643 | # CONFIG_WATCHDOG is not set | ||
644 | |||
645 | # | ||
646 | # Sonics Silicon Backplane | ||
647 | # | ||
648 | CONFIG_SSB_POSSIBLE=y | ||
649 | # CONFIG_SSB is not set | ||
605 | 650 | ||
606 | # | 651 | # |
607 | # Multifunction device drivers | 652 | # Multifunction device drivers |
608 | # | 653 | # |
654 | # CONFIG_MFD_CORE is not set | ||
609 | # CONFIG_MFD_SM501 is not set | 655 | # CONFIG_MFD_SM501 is not set |
656 | # CONFIG_HTC_PASIC3 is not set | ||
657 | # CONFIG_MFD_TMIO is not set | ||
658 | # CONFIG_MFD_WM8400 is not set | ||
610 | 659 | ||
611 | # | 660 | # |
612 | # Multimedia devices | 661 | # Multimedia devices |
613 | # | 662 | # |
663 | |||
664 | # | ||
665 | # Multimedia core support | ||
666 | # | ||
614 | # CONFIG_VIDEO_DEV is not set | 667 | # CONFIG_VIDEO_DEV is not set |
615 | # CONFIG_DVB_CORE is not set | 668 | # CONFIG_DVB_CORE is not set |
616 | # CONFIG_DAB is not set | 669 | # CONFIG_VIDEO_MEDIA is not set |
617 | 670 | ||
618 | # | 671 | # |
619 | # Graphics support | 672 | # Multimedia drivers |
620 | # | 673 | # |
621 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 674 | # CONFIG_DAB is not set |
622 | 675 | ||
623 | # | 676 | # |
624 | # Display device support | 677 | # Graphics support |
625 | # | 678 | # |
626 | # CONFIG_DISPLAY_SUPPORT is not set | 679 | # CONFIG_DRM is not set |
627 | # CONFIG_VGASTATE is not set | 680 | # CONFIG_VGASTATE is not set |
628 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | 681 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set |
629 | # CONFIG_FB is not set | 682 | # CONFIG_FB is not set |
683 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
630 | 684 | ||
631 | # | 685 | # |
632 | # Sound | 686 | # Display device support |
633 | # | 687 | # |
688 | # CONFIG_DISPLAY_SUPPORT is not set | ||
634 | # CONFIG_SOUND is not set | 689 | # CONFIG_SOUND is not set |
635 | # CONFIG_HID_SUPPORT is not set | 690 | # CONFIG_HID_SUPPORT is not set |
636 | # CONFIG_USB_SUPPORT is not set | 691 | # CONFIG_USB_SUPPORT is not set |
637 | # CONFIG_MMC is not set | 692 | # CONFIG_MMC is not set |
693 | # CONFIG_MEMSTICK is not set | ||
638 | # CONFIG_NEW_LEDS is not set | 694 | # CONFIG_NEW_LEDS is not set |
695 | # CONFIG_ACCESSIBILITY is not set | ||
639 | # CONFIG_INFINIBAND is not set | 696 | # CONFIG_INFINIBAND is not set |
640 | |||
641 | # | ||
642 | # Real Time Clock | ||
643 | # | ||
644 | # CONFIG_RTC_CLASS is not set | 697 | # CONFIG_RTC_CLASS is not set |
645 | 698 | # CONFIG_DMADEVICES is not set | |
646 | # | ||
647 | # DMA Engine support | ||
648 | # | ||
649 | # CONFIG_DMA_ENGINE is not set | ||
650 | |||
651 | # | ||
652 | # DMA Clients | ||
653 | # | ||
654 | |||
655 | # | ||
656 | # DMA Devices | ||
657 | # | ||
658 | |||
659 | # | ||
660 | # Userspace I/O | ||
661 | # | ||
662 | # CONFIG_UIO is not set | 699 | # CONFIG_UIO is not set |
700 | # CONFIG_STAGING is not set | ||
663 | 701 | ||
664 | # | 702 | # |
665 | # File systems | 703 | # File systems |
@@ -668,18 +706,16 @@ CONFIG_EXT2_FS=y | |||
668 | # CONFIG_EXT2_FS_XATTR is not set | 706 | # CONFIG_EXT2_FS_XATTR is not set |
669 | # CONFIG_EXT2_FS_XIP is not set | 707 | # CONFIG_EXT2_FS_XIP is not set |
670 | # CONFIG_EXT3_FS is not set | 708 | # CONFIG_EXT3_FS is not set |
671 | # CONFIG_EXT4DEV_FS is not set | 709 | # CONFIG_EXT4_FS is not set |
672 | # CONFIG_REISERFS_FS is not set | 710 | # CONFIG_REISERFS_FS is not set |
673 | # CONFIG_JFS_FS is not set | 711 | # CONFIG_JFS_FS is not set |
674 | # CONFIG_FS_POSIX_ACL is not set | 712 | # CONFIG_FS_POSIX_ACL is not set |
713 | CONFIG_FILE_LOCKING=y | ||
675 | # CONFIG_XFS_FS is not set | 714 | # CONFIG_XFS_FS is not set |
676 | # CONFIG_GFS2_FS is not set | ||
677 | # CONFIG_OCFS2_FS is not set | 715 | # CONFIG_OCFS2_FS is not set |
678 | # CONFIG_MINIX_FS is not set | 716 | # CONFIG_DNOTIFY is not set |
679 | CONFIG_ROMFS_FS=y | ||
680 | # CONFIG_INOTIFY is not set | 717 | # CONFIG_INOTIFY is not set |
681 | # CONFIG_QUOTA is not set | 718 | # CONFIG_QUOTA is not set |
682 | # CONFIG_DNOTIFY is not set | ||
683 | # CONFIG_AUTOFS_FS is not set | 719 | # CONFIG_AUTOFS_FS is not set |
684 | # CONFIG_AUTOFS4_FS is not set | 720 | # CONFIG_AUTOFS4_FS is not set |
685 | # CONFIG_FUSE_FS is not set | 721 | # CONFIG_FUSE_FS is not set |
@@ -703,12 +739,12 @@ CONFIG_ROMFS_FS=y | |||
703 | CONFIG_PROC_FS=y | 739 | CONFIG_PROC_FS=y |
704 | # CONFIG_PROC_KCORE is not set | 740 | # CONFIG_PROC_KCORE is not set |
705 | CONFIG_PROC_SYSCTL=y | 741 | CONFIG_PROC_SYSCTL=y |
742 | CONFIG_PROC_PAGE_MONITOR=y | ||
706 | CONFIG_SYSFS=y | 743 | CONFIG_SYSFS=y |
707 | CONFIG_TMPFS=y | 744 | CONFIG_TMPFS=y |
708 | # CONFIG_TMPFS_POSIX_ACL is not set | 745 | # CONFIG_TMPFS_POSIX_ACL is not set |
709 | # CONFIG_HUGETLBFS is not set | 746 | # CONFIG_HUGETLBFS is not set |
710 | # CONFIG_HUGETLB_PAGE is not set | 747 | # CONFIG_HUGETLB_PAGE is not set |
711 | CONFIG_RAMFS=y | ||
712 | # CONFIG_CONFIGFS_FS is not set | 748 | # CONFIG_CONFIGFS_FS is not set |
713 | 749 | ||
714 | # | 750 | # |
@@ -724,14 +760,14 @@ CONFIG_RAMFS=y | |||
724 | # CONFIG_JFFS2_FS is not set | 760 | # CONFIG_JFFS2_FS is not set |
725 | CONFIG_CRAMFS=y | 761 | CONFIG_CRAMFS=y |
726 | # CONFIG_VXFS_FS is not set | 762 | # CONFIG_VXFS_FS is not set |
763 | # CONFIG_MINIX_FS is not set | ||
764 | # CONFIG_OMFS_FS is not set | ||
727 | # CONFIG_HPFS_FS is not set | 765 | # CONFIG_HPFS_FS is not set |
728 | # CONFIG_QNX4FS_FS is not set | 766 | # CONFIG_QNX4FS_FS is not set |
767 | CONFIG_ROMFS_FS=y | ||
729 | # CONFIG_SYSV_FS is not set | 768 | # CONFIG_SYSV_FS is not set |
730 | # CONFIG_UFS_FS is not set | 769 | # CONFIG_UFS_FS is not set |
731 | 770 | CONFIG_NETWORK_FILESYSTEMS=y | |
732 | # | ||
733 | # Network File Systems | ||
734 | # | ||
735 | # CONFIG_NFS_FS is not set | 771 | # CONFIG_NFS_FS is not set |
736 | # CONFIG_NFSD is not set | 772 | # CONFIG_NFSD is not set |
737 | # CONFIG_SMB_FS is not set | 773 | # CONFIG_SMB_FS is not set |
@@ -745,34 +781,30 @@ CONFIG_CRAMFS=y | |||
745 | # | 781 | # |
746 | # CONFIG_PARTITION_ADVANCED is not set | 782 | # CONFIG_PARTITION_ADVANCED is not set |
747 | CONFIG_MSDOS_PARTITION=y | 783 | CONFIG_MSDOS_PARTITION=y |
748 | |||
749 | # | ||
750 | # Native Language Support | ||
751 | # | ||
752 | # CONFIG_NLS is not set | 784 | # CONFIG_NLS is not set |
753 | |||
754 | # | ||
755 | # Distributed Lock Manager | ||
756 | # | ||
757 | # CONFIG_DLM is not set | 785 | # CONFIG_DLM is not set |
758 | 786 | ||
759 | # | 787 | # |
760 | # Profiling support | ||
761 | # | ||
762 | # CONFIG_PROFILING is not set | ||
763 | |||
764 | # | ||
765 | # Kernel hacking | 788 | # Kernel hacking |
766 | # | 789 | # |
767 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 790 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
768 | # CONFIG_PRINTK_TIME is not set | 791 | # CONFIG_PRINTK_TIME is not set |
792 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
769 | CONFIG_ENABLE_MUST_CHECK=y | 793 | CONFIG_ENABLE_MUST_CHECK=y |
794 | CONFIG_FRAME_WARN=1024 | ||
770 | # CONFIG_MAGIC_SYSRQ is not set | 795 | # CONFIG_MAGIC_SYSRQ is not set |
771 | # CONFIG_UNUSED_SYMBOLS is not set | 796 | # CONFIG_UNUSED_SYMBOLS is not set |
772 | # CONFIG_DEBUG_FS is not set | 797 | # CONFIG_DEBUG_FS is not set |
773 | # CONFIG_HEADERS_CHECK is not set | 798 | # CONFIG_HEADERS_CHECK is not set |
774 | # CONFIG_DEBUG_KERNEL is not set | 799 | # CONFIG_DEBUG_KERNEL is not set |
775 | # CONFIG_DEBUG_BUGVERBOSE is not set | 800 | # CONFIG_DEBUG_BUGVERBOSE is not set |
801 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
802 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
803 | # CONFIG_LATENCYTOP is not set | ||
804 | CONFIG_NOP_TRACER=y | ||
805 | CONFIG_HAVE_FTRACE=y | ||
806 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
807 | # CONFIG_SAMPLES is not set | ||
776 | # CONFIG_SH_STANDARD_BIOS is not set | 808 | # CONFIG_SH_STANDARD_BIOS is not set |
777 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 809 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
778 | # CONFIG_SH_KGDB is not set | 810 | # CONFIG_SH_KGDB is not set |
@@ -782,6 +814,8 @@ CONFIG_ENABLE_MUST_CHECK=y | |||
782 | # | 814 | # |
783 | # CONFIG_KEYS is not set | 815 | # CONFIG_KEYS is not set |
784 | # CONFIG_SECURITY is not set | 816 | # CONFIG_SECURITY is not set |
817 | # CONFIG_SECURITYFS is not set | ||
818 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
785 | # CONFIG_CRYPTO is not set | 819 | # CONFIG_CRYPTO is not set |
786 | 820 | ||
787 | # | 821 | # |
@@ -790,6 +824,7 @@ CONFIG_ENABLE_MUST_CHECK=y | |||
790 | CONFIG_BITREVERSE=y | 824 | CONFIG_BITREVERSE=y |
791 | # CONFIG_CRC_CCITT is not set | 825 | # CONFIG_CRC_CCITT is not set |
792 | # CONFIG_CRC16 is not set | 826 | # CONFIG_CRC16 is not set |
827 | # CONFIG_CRC_T10DIF is not set | ||
793 | # CONFIG_CRC_ITU_T is not set | 828 | # CONFIG_CRC_ITU_T is not set |
794 | CONFIG_CRC32=y | 829 | CONFIG_CRC32=y |
795 | # CONFIG_CRC7 is not set | 830 | # CONFIG_CRC7 is not set |
diff --git a/arch/sh/configs/systemh_defconfig b/arch/sh/configs/systemh_defconfig index af921b5a9d46..1711f0f70d72 100644 --- a/arch/sh/configs/systemh_defconfig +++ b/arch/sh/configs/systemh_defconfig | |||
@@ -1,36 +1,50 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.18 | 3 | # Linux kernel version: 2.6.27 |
4 | # Tue Oct 3 12:57:29 2006 | 4 | # Wed Oct 22 19:56:48 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | ||
8 | CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig" | ||
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
10 | CONFIG_GENERIC_BUG=y | ||
8 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
9 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
10 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
11 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
12 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
17 | CONFIG_GENERIC_TIME=y | ||
18 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
19 | CONFIG_STACKTRACE_SUPPORT=y | ||
20 | CONFIG_LOCKDEP_SUPPORT=y | ||
21 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
22 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
23 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
24 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | ||
13 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 25 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
14 | 26 | ||
15 | # | 27 | # |
16 | # Code maturity level options | 28 | # General setup |
17 | # | 29 | # |
18 | CONFIG_EXPERIMENTAL=y | 30 | CONFIG_EXPERIMENTAL=y |
19 | CONFIG_BROKEN_ON_SMP=y | 31 | CONFIG_BROKEN_ON_SMP=y |
20 | CONFIG_LOCK_KERNEL=y | 32 | CONFIG_LOCK_KERNEL=y |
21 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 33 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
22 | |||
23 | # | ||
24 | # General setup | ||
25 | # | ||
26 | CONFIG_LOCALVERSION="" | 34 | CONFIG_LOCALVERSION="" |
27 | CONFIG_LOCALVERSION_AUTO=y | 35 | CONFIG_LOCALVERSION_AUTO=y |
28 | CONFIG_SWAP=y | 36 | CONFIG_SWAP=y |
29 | # CONFIG_SYSVIPC is not set | 37 | # CONFIG_SYSVIPC is not set |
30 | # CONFIG_BSD_PROCESS_ACCT is not set | 38 | # CONFIG_BSD_PROCESS_ACCT is not set |
31 | # CONFIG_UTS_NS is not set | ||
32 | # CONFIG_IKCONFIG is not set | 39 | # CONFIG_IKCONFIG is not set |
40 | CONFIG_LOG_BUF_SHIFT=14 | ||
41 | # CONFIG_CGROUPS is not set | ||
42 | # CONFIG_GROUP_SCHED is not set | ||
43 | CONFIG_SYSFS_DEPRECATED=y | ||
44 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
33 | # CONFIG_RELAY is not set | 45 | # CONFIG_RELAY is not set |
46 | # CONFIG_NAMESPACES is not set | ||
47 | CONFIG_BLK_DEV_INITRD=y | ||
34 | CONFIG_INITRAMFS_SOURCE="" | 48 | CONFIG_INITRAMFS_SOURCE="" |
35 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 49 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
36 | CONFIG_SYSCTL=y | 50 | CONFIG_SYSCTL=y |
@@ -43,34 +57,48 @@ CONFIG_KALLSYMS=y | |||
43 | CONFIG_PRINTK=y | 57 | CONFIG_PRINTK=y |
44 | CONFIG_BUG=y | 58 | CONFIG_BUG=y |
45 | CONFIG_ELF_CORE=y | 59 | CONFIG_ELF_CORE=y |
60 | CONFIG_COMPAT_BRK=y | ||
46 | CONFIG_BASE_FULL=y | 61 | CONFIG_BASE_FULL=y |
47 | CONFIG_FUTEX=y | 62 | CONFIG_FUTEX=y |
63 | CONFIG_ANON_INODES=y | ||
48 | CONFIG_EPOLL=y | 64 | CONFIG_EPOLL=y |
65 | CONFIG_SIGNALFD=y | ||
66 | CONFIG_TIMERFD=y | ||
67 | CONFIG_EVENTFD=y | ||
49 | CONFIG_SHMEM=y | 68 | CONFIG_SHMEM=y |
50 | CONFIG_SLAB=y | 69 | CONFIG_AIO=y |
51 | CONFIG_VM_EVENT_COUNTERS=y | 70 | CONFIG_VM_EVENT_COUNTERS=y |
71 | CONFIG_PCI_QUIRKS=y | ||
72 | CONFIG_SLAB=y | ||
73 | # CONFIG_SLUB is not set | ||
74 | # CONFIG_SLOB is not set | ||
75 | # CONFIG_PROFILING is not set | ||
76 | # CONFIG_MARKERS is not set | ||
77 | CONFIG_HAVE_OPROFILE=y | ||
78 | # CONFIG_KPROBES is not set | ||
79 | CONFIG_HAVE_IOREMAP_PROT=y | ||
80 | CONFIG_HAVE_KPROBES=y | ||
81 | CONFIG_HAVE_KRETPROBES=y | ||
82 | CONFIG_HAVE_ARCH_TRACEHOOK=y | ||
83 | CONFIG_HAVE_CLK=y | ||
84 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
85 | CONFIG_SLABINFO=y | ||
52 | CONFIG_RT_MUTEXES=y | 86 | CONFIG_RT_MUTEXES=y |
53 | # CONFIG_TINY_SHMEM is not set | 87 | # CONFIG_TINY_SHMEM is not set |
54 | CONFIG_BASE_SMALL=0 | 88 | CONFIG_BASE_SMALL=0 |
55 | # CONFIG_SLOB is not set | ||
56 | |||
57 | # | ||
58 | # Loadable module support | ||
59 | # | ||
60 | CONFIG_MODULES=y | 89 | CONFIG_MODULES=y |
90 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
61 | CONFIG_MODULE_UNLOAD=y | 91 | CONFIG_MODULE_UNLOAD=y |
62 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 92 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
63 | # CONFIG_MODVERSIONS is not set | 93 | # CONFIG_MODVERSIONS is not set |
64 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 94 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
65 | # CONFIG_KMOD is not set | 95 | CONFIG_KMOD=y |
66 | |||
67 | # | ||
68 | # Block layer | ||
69 | # | ||
70 | CONFIG_BLOCK=y | 96 | CONFIG_BLOCK=y |
71 | # CONFIG_LBD is not set | 97 | # CONFIG_LBD is not set |
72 | # CONFIG_BLK_DEV_IO_TRACE is not set | 98 | # CONFIG_BLK_DEV_IO_TRACE is not set |
73 | # CONFIG_LSF is not set | 99 | # CONFIG_LSF is not set |
100 | # CONFIG_BLK_DEV_BSG is not set | ||
101 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
74 | 102 | ||
75 | # | 103 | # |
76 | # IO Schedulers | 104 | # IO Schedulers |
@@ -84,59 +112,27 @@ CONFIG_DEFAULT_AS=y | |||
84 | # CONFIG_DEFAULT_CFQ is not set | 112 | # CONFIG_DEFAULT_CFQ is not set |
85 | # CONFIG_DEFAULT_NOOP is not set | 113 | # CONFIG_DEFAULT_NOOP is not set |
86 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 114 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
115 | CONFIG_CLASSIC_RCU=y | ||
116 | # CONFIG_FREEZER is not set | ||
87 | 117 | ||
88 | # | 118 | # |
89 | # System type | 119 | # System type |
90 | # | 120 | # |
91 | # CONFIG_SH_SOLUTION_ENGINE is not set | ||
92 | # CONFIG_SH_7751_SOLUTION_ENGINE is not set | ||
93 | # CONFIG_SH_7300_SOLUTION_ENGINE is not set | ||
94 | # CONFIG_SH_7343_SOLUTION_ENGINE is not set | ||
95 | # CONFIG_SH_73180_SOLUTION_ENGINE is not set | ||
96 | CONFIG_SH_7751_SYSTEMH=y | ||
97 | # CONFIG_SH_HP6XX is not set | ||
98 | # CONFIG_SH_EC3104 is not set | ||
99 | # CONFIG_SH_SATURN is not set | ||
100 | # CONFIG_SH_DREAMCAST is not set | ||
101 | # CONFIG_SH_BIGSUR is not set | ||
102 | # CONFIG_SH_MPC1211 is not set | ||
103 | # CONFIG_SH_SH03 is not set | ||
104 | # CONFIG_SH_SECUREEDGE5410 is not set | ||
105 | # CONFIG_SH_HS7751RVOIP is not set | ||
106 | # CONFIG_SH_7710VOIPGW is not set | ||
107 | # CONFIG_SH_RTS7751R2D is not set | ||
108 | # CONFIG_SH_R7780RP is not set | ||
109 | # CONFIG_SH_EDOSK7705 is not set | ||
110 | # CONFIG_SH_SH4202_MICRODEV is not set | ||
111 | # CONFIG_SH_LANDISK is not set | ||
112 | # CONFIG_SH_TITAN is not set | ||
113 | # CONFIG_SH_SHMIN is not set | ||
114 | # CONFIG_SH_UNKNOWN is not set | ||
115 | |||
116 | # | ||
117 | # Processor selection | ||
118 | # | ||
119 | CONFIG_CPU_SH4=y | 121 | CONFIG_CPU_SH4=y |
120 | 122 | # CONFIG_CPU_SUBTYPE_SH7619 is not set | |
121 | # | 123 | # CONFIG_CPU_SUBTYPE_SH7203 is not set |
122 | # SH-2 Processor Support | 124 | # CONFIG_CPU_SUBTYPE_SH7206 is not set |
123 | # | 125 | # CONFIG_CPU_SUBTYPE_SH7263 is not set |
124 | # CONFIG_CPU_SUBTYPE_SH7604 is not set | 126 | # CONFIG_CPU_SUBTYPE_MXG is not set |
125 | |||
126 | # | ||
127 | # SH-3 Processor Support | ||
128 | # | ||
129 | # CONFIG_CPU_SUBTYPE_SH7300 is not set | ||
130 | # CONFIG_CPU_SUBTYPE_SH7705 is not set | 127 | # CONFIG_CPU_SUBTYPE_SH7705 is not set |
131 | # CONFIG_CPU_SUBTYPE_SH7706 is not set | 128 | # CONFIG_CPU_SUBTYPE_SH7706 is not set |
132 | # CONFIG_CPU_SUBTYPE_SH7707 is not set | 129 | # CONFIG_CPU_SUBTYPE_SH7707 is not set |
133 | # CONFIG_CPU_SUBTYPE_SH7708 is not set | 130 | # CONFIG_CPU_SUBTYPE_SH7708 is not set |
134 | # CONFIG_CPU_SUBTYPE_SH7709 is not set | 131 | # CONFIG_CPU_SUBTYPE_SH7709 is not set |
135 | # CONFIG_CPU_SUBTYPE_SH7710 is not set | 132 | # CONFIG_CPU_SUBTYPE_SH7710 is not set |
136 | 133 | # CONFIG_CPU_SUBTYPE_SH7712 is not set | |
137 | # | 134 | # CONFIG_CPU_SUBTYPE_SH7720 is not set |
138 | # SH-4 Processor Support | 135 | # CONFIG_CPU_SUBTYPE_SH7721 is not set |
139 | # | ||
140 | # CONFIG_CPU_SUBTYPE_SH7750 is not set | 136 | # CONFIG_CPU_SUBTYPE_SH7750 is not set |
141 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | 137 | # CONFIG_CPU_SUBTYPE_SH7091 is not set |
142 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | 138 | # CONFIG_CPU_SUBTYPE_SH7750R is not set |
@@ -145,65 +141,93 @@ CONFIG_CPU_SH4=y | |||
145 | CONFIG_CPU_SUBTYPE_SH7751R=y | 141 | CONFIG_CPU_SUBTYPE_SH7751R=y |
146 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | 142 | # CONFIG_CPU_SUBTYPE_SH7760 is not set |
147 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | 143 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set |
148 | 144 | # CONFIG_CPU_SUBTYPE_SH7723 is not set | |
149 | # | 145 | # CONFIG_CPU_SUBTYPE_SH7763 is not set |
150 | # ST40 Processor Support | ||
151 | # | ||
152 | # CONFIG_CPU_SUBTYPE_ST40STB1 is not set | ||
153 | # CONFIG_CPU_SUBTYPE_ST40GX1 is not set | ||
154 | |||
155 | # | ||
156 | # SH-4A Processor Support | ||
157 | # | ||
158 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | 146 | # CONFIG_CPU_SUBTYPE_SH7770 is not set |
159 | # CONFIG_CPU_SUBTYPE_SH7780 is not set | 147 | # CONFIG_CPU_SUBTYPE_SH7780 is not set |
160 | 148 | # CONFIG_CPU_SUBTYPE_SH7785 is not set | |
161 | # | 149 | # CONFIG_CPU_SUBTYPE_SHX3 is not set |
162 | # SH4AL-DSP Processor Support | ||
163 | # | ||
164 | # CONFIG_CPU_SUBTYPE_SH73180 is not set | ||
165 | # CONFIG_CPU_SUBTYPE_SH7343 is not set | 150 | # CONFIG_CPU_SUBTYPE_SH7343 is not set |
151 | # CONFIG_CPU_SUBTYPE_SH7722 is not set | ||
152 | # CONFIG_CPU_SUBTYPE_SH7366 is not set | ||
153 | # CONFIG_CPU_SUBTYPE_SH5_101 is not set | ||
154 | # CONFIG_CPU_SUBTYPE_SH5_103 is not set | ||
166 | 155 | ||
167 | # | 156 | # |
168 | # Memory management options | 157 | # Memory management options |
169 | # | 158 | # |
159 | CONFIG_QUICKLIST=y | ||
170 | CONFIG_MMU=y | 160 | CONFIG_MMU=y |
171 | CONFIG_PAGE_OFFSET=0x80000000 | 161 | CONFIG_PAGE_OFFSET=0x80000000 |
172 | CONFIG_MEMORY_START=0x0c000000 | 162 | CONFIG_MEMORY_START=0x0c000000 |
173 | CONFIG_MEMORY_SIZE=0x00400000 | 163 | CONFIG_MEMORY_SIZE=0x00400000 |
164 | CONFIG_29BIT=y | ||
174 | CONFIG_VSYSCALL=y | 165 | CONFIG_VSYSCALL=y |
166 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
167 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | ||
168 | CONFIG_ARCH_SPARSEMEM_DEFAULT=y | ||
169 | CONFIG_MAX_ACTIVE_REGIONS=1 | ||
170 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
171 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | ||
172 | CONFIG_PAGE_SIZE_4KB=y | ||
173 | # CONFIG_PAGE_SIZE_8KB is not set | ||
174 | # CONFIG_PAGE_SIZE_16KB is not set | ||
175 | # CONFIG_PAGE_SIZE_64KB is not set | ||
176 | CONFIG_ENTRY_OFFSET=0x00001000 | ||
175 | CONFIG_SELECT_MEMORY_MODEL=y | 177 | CONFIG_SELECT_MEMORY_MODEL=y |
176 | CONFIG_FLATMEM_MANUAL=y | 178 | CONFIG_FLATMEM_MANUAL=y |
177 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 179 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
178 | # CONFIG_SPARSEMEM_MANUAL is not set | 180 | # CONFIG_SPARSEMEM_MANUAL is not set |
179 | CONFIG_FLATMEM=y | 181 | CONFIG_FLATMEM=y |
180 | CONFIG_FLAT_NODE_MEM_MAP=y | 182 | CONFIG_FLAT_NODE_MEM_MAP=y |
181 | # CONFIG_SPARSEMEM_STATIC is not set | 183 | CONFIG_SPARSEMEM_STATIC=y |
184 | CONFIG_PAGEFLAGS_EXTENDED=y | ||
182 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 185 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
183 | # CONFIG_RESOURCES_64BIT is not set | 186 | # CONFIG_RESOURCES_64BIT is not set |
187 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
188 | CONFIG_ZONE_DMA_FLAG=0 | ||
189 | CONFIG_NR_QUICK=2 | ||
190 | CONFIG_UNEVICTABLE_LRU=y | ||
184 | 191 | ||
185 | # | 192 | # |
186 | # Cache configuration | 193 | # Cache configuration |
187 | # | 194 | # |
188 | # CONFIG_SH_DIRECT_MAPPED is not set | 195 | # CONFIG_SH_DIRECT_MAPPED is not set |
189 | # CONFIG_SH_WRITETHROUGH is not set | 196 | CONFIG_CACHE_WRITEBACK=y |
190 | # CONFIG_SH_OCRAM is not set | 197 | # CONFIG_CACHE_WRITETHROUGH is not set |
198 | # CONFIG_CACHE_OFF is not set | ||
191 | 199 | ||
192 | # | 200 | # |
193 | # Processor features | 201 | # Processor features |
194 | # | 202 | # |
195 | CONFIG_CPU_LITTLE_ENDIAN=y | 203 | CONFIG_CPU_LITTLE_ENDIAN=y |
204 | # CONFIG_CPU_BIG_ENDIAN is not set | ||
196 | CONFIG_SH_FPU=y | 205 | CONFIG_SH_FPU=y |
197 | # CONFIG_SH_DSP is not set | ||
198 | # CONFIG_SH_STORE_QUEUES is not set | 206 | # CONFIG_SH_STORE_QUEUES is not set |
199 | CONFIG_CPU_HAS_INTEVT=y | 207 | CONFIG_CPU_HAS_INTEVT=y |
200 | CONFIG_CPU_HAS_SR_RB=y | 208 | CONFIG_CPU_HAS_SR_RB=y |
209 | CONFIG_CPU_HAS_PTEA=y | ||
210 | CONFIG_CPU_HAS_FPU=y | ||
201 | 211 | ||
202 | # | 212 | # |
203 | # Timer support | 213 | # Board support |
214 | # | ||
215 | CONFIG_SH_7751_SYSTEMH=y | ||
216 | # CONFIG_SH_SECUREEDGE5410 is not set | ||
217 | # CONFIG_SH_RTS7751R2D is not set | ||
218 | # CONFIG_SH_LANDISK is not set | ||
219 | # CONFIG_SH_TITAN is not set | ||
220 | # CONFIG_SH_LBOX_RE2 is not set | ||
221 | |||
222 | # | ||
223 | # Timer and clock configuration | ||
204 | # | 224 | # |
205 | CONFIG_SH_TMU=y | 225 | CONFIG_SH_TMU=y |
226 | CONFIG_SH_TIMER_IRQ=16 | ||
206 | CONFIG_SH_PCLK_FREQ=60000000 | 227 | CONFIG_SH_PCLK_FREQ=60000000 |
228 | # CONFIG_NO_HZ is not set | ||
229 | # CONFIG_HIGH_RES_TIMERS is not set | ||
230 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
207 | 231 | ||
208 | # | 232 | # |
209 | # CPU Frequency scaling | 233 | # CPU Frequency scaling |
@@ -218,21 +242,31 @@ CONFIG_SH_PCLK_FREQ=60000000 | |||
218 | # | 242 | # |
219 | # Companion Chips | 243 | # Companion Chips |
220 | # | 244 | # |
221 | # CONFIG_HD6446X_SERIES is not set | 245 | |
246 | # | ||
247 | # Additional SuperH Device Drivers | ||
248 | # | ||
249 | # CONFIG_HEARTBEAT is not set | ||
250 | # CONFIG_PUSH_SWITCH is not set | ||
222 | 251 | ||
223 | # | 252 | # |
224 | # Kernel features | 253 | # Kernel features |
225 | # | 254 | # |
226 | # CONFIG_HZ_100 is not set | 255 | # CONFIG_HZ_100 is not set |
227 | CONFIG_HZ_250=y | 256 | CONFIG_HZ_250=y |
257 | # CONFIG_HZ_300 is not set | ||
228 | # CONFIG_HZ_1000 is not set | 258 | # CONFIG_HZ_1000 is not set |
229 | CONFIG_HZ=250 | 259 | CONFIG_HZ=250 |
260 | # CONFIG_SCHED_HRTICK is not set | ||
230 | # CONFIG_KEXEC is not set | 261 | # CONFIG_KEXEC is not set |
231 | # CONFIG_SMP is not set | 262 | # CONFIG_CRASH_DUMP is not set |
263 | # CONFIG_SECCOMP is not set | ||
232 | # CONFIG_PREEMPT_NONE is not set | 264 | # CONFIG_PREEMPT_NONE is not set |
233 | # CONFIG_PREEMPT_VOLUNTARY is not set | 265 | # CONFIG_PREEMPT_VOLUNTARY is not set |
234 | CONFIG_PREEMPT=y | 266 | CONFIG_PREEMPT=y |
235 | CONFIG_PREEMPT_BKL=y | 267 | # CONFIG_PREEMPT_RCU is not set |
268 | CONFIG_GUSA=y | ||
269 | # CONFIG_GUSA_RB is not set | ||
236 | 270 | ||
237 | # | 271 | # |
238 | # Boot options | 272 | # Boot options |
@@ -245,31 +279,15 @@ CONFIG_BOOT_LINK_OFFSET=0x00800000 | |||
245 | # | 279 | # |
246 | # Bus options | 280 | # Bus options |
247 | # | 281 | # |
248 | # CONFIG_PCI is not set | 282 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
249 | |||
250 | # | ||
251 | # PCCARD (PCMCIA/CardBus) support | ||
252 | # | ||
253 | |||
254 | # | ||
255 | # PCI Hotplug Support | ||
256 | # | ||
257 | 283 | ||
258 | # | 284 | # |
259 | # Executable file formats | 285 | # Executable file formats |
260 | # | 286 | # |
261 | CONFIG_BINFMT_ELF=y | 287 | CONFIG_BINFMT_ELF=y |
262 | # CONFIG_BINFMT_FLAT is not set | 288 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set |
289 | # CONFIG_HAVE_AOUT is not set | ||
263 | # CONFIG_BINFMT_MISC is not set | 290 | # CONFIG_BINFMT_MISC is not set |
264 | |||
265 | # | ||
266 | # Power management options (EXPERIMENTAL) | ||
267 | # | ||
268 | # CONFIG_PM is not set | ||
269 | |||
270 | # | ||
271 | # Networking | ||
272 | # | ||
273 | # CONFIG_NET is not set | 291 | # CONFIG_NET is not set |
274 | 292 | ||
275 | # | 293 | # |
@@ -282,40 +300,21 @@ CONFIG_BINFMT_ELF=y | |||
282 | # CONFIG_STANDALONE is not set | 300 | # CONFIG_STANDALONE is not set |
283 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 301 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
284 | # CONFIG_SYS_HYPERVISOR is not set | 302 | # CONFIG_SYS_HYPERVISOR is not set |
285 | |||
286 | # | ||
287 | # Connector - unified userspace <-> kernelspace linker | ||
288 | # | ||
289 | |||
290 | # | ||
291 | # Memory Technology Devices (MTD) | ||
292 | # | ||
293 | # CONFIG_MTD is not set | 303 | # CONFIG_MTD is not set |
294 | |||
295 | # | ||
296 | # Parallel port support | ||
297 | # | ||
298 | # CONFIG_PARPORT is not set | 304 | # CONFIG_PARPORT is not set |
299 | 305 | CONFIG_BLK_DEV=y | |
300 | # | ||
301 | # Plug and Play support | ||
302 | # | ||
303 | |||
304 | # | ||
305 | # Block devices | ||
306 | # | ||
307 | # CONFIG_BLK_DEV_COW_COMMON is not set | 306 | # CONFIG_BLK_DEV_COW_COMMON is not set |
308 | # CONFIG_BLK_DEV_LOOP is not set | 307 | # CONFIG_BLK_DEV_LOOP is not set |
309 | CONFIG_BLK_DEV_RAM=y | 308 | CONFIG_BLK_DEV_RAM=y |
310 | CONFIG_BLK_DEV_RAM_COUNT=16 | 309 | CONFIG_BLK_DEV_RAM_COUNT=16 |
311 | CONFIG_BLK_DEV_RAM_SIZE=1024 | 310 | CONFIG_BLK_DEV_RAM_SIZE=1024 |
312 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 311 | # CONFIG_BLK_DEV_XIP is not set |
313 | CONFIG_BLK_DEV_INITRD=y | ||
314 | # CONFIG_CDROM_PKTCDVD is not set | 312 | # CONFIG_CDROM_PKTCDVD is not set |
315 | 313 | # CONFIG_BLK_DEV_HD is not set | |
316 | # | 314 | CONFIG_MISC_DEVICES=y |
317 | # ATA/ATAPI/MFM/RLL support | 315 | # CONFIG_EEPROM_93CX6 is not set |
318 | # | 316 | # CONFIG_ENCLOSURE_SERVICES is not set |
317 | CONFIG_HAVE_IDE=y | ||
319 | # CONFIG_IDE is not set | 318 | # CONFIG_IDE is not set |
320 | 319 | ||
321 | # | 320 | # |
@@ -323,38 +322,10 @@ CONFIG_BLK_DEV_INITRD=y | |||
323 | # | 322 | # |
324 | # CONFIG_RAID_ATTRS is not set | 323 | # CONFIG_RAID_ATTRS is not set |
325 | # CONFIG_SCSI is not set | 324 | # CONFIG_SCSI is not set |
325 | # CONFIG_SCSI_DMA is not set | ||
326 | # CONFIG_SCSI_NETLINK is not set | 326 | # CONFIG_SCSI_NETLINK is not set |
327 | |||
328 | # | ||
329 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
330 | # | ||
331 | # CONFIG_ATA is not set | 327 | # CONFIG_ATA is not set |
332 | |||
333 | # | ||
334 | # Multi-device support (RAID and LVM) | ||
335 | # | ||
336 | # CONFIG_MD is not set | 328 | # CONFIG_MD is not set |
337 | |||
338 | # | ||
339 | # Fusion MPT device support | ||
340 | # | ||
341 | # CONFIG_FUSION is not set | ||
342 | |||
343 | # | ||
344 | # IEEE 1394 (FireWire) support | ||
345 | # | ||
346 | |||
347 | # | ||
348 | # I2O device support | ||
349 | # | ||
350 | |||
351 | # | ||
352 | # ISDN subsystem | ||
353 | # | ||
354 | |||
355 | # | ||
356 | # Telephony Support | ||
357 | # | ||
358 | # CONFIG_PHONE is not set | 329 | # CONFIG_PHONE is not set |
359 | 330 | ||
360 | # | 331 | # |
@@ -376,6 +347,7 @@ CONFIG_SERIO=y | |||
376 | # Character devices | 347 | # Character devices |
377 | # | 348 | # |
378 | # CONFIG_VT is not set | 349 | # CONFIG_VT is not set |
350 | CONFIG_DEVKMEM=y | ||
379 | # CONFIG_SERIAL_NONSTANDARD is not set | 351 | # CONFIG_SERIAL_NONSTANDARD is not set |
380 | 352 | ||
381 | # | 353 | # |
@@ -390,158 +362,115 @@ CONFIG_SERIO=y | |||
390 | CONFIG_UNIX98_PTYS=y | 362 | CONFIG_UNIX98_PTYS=y |
391 | CONFIG_LEGACY_PTYS=y | 363 | CONFIG_LEGACY_PTYS=y |
392 | CONFIG_LEGACY_PTY_COUNT=256 | 364 | CONFIG_LEGACY_PTY_COUNT=256 |
393 | |||
394 | # | ||
395 | # IPMI | ||
396 | # | ||
397 | # CONFIG_IPMI_HANDLER is not set | 365 | # CONFIG_IPMI_HANDLER is not set |
398 | |||
399 | # | ||
400 | # Watchdog Cards | ||
401 | # | ||
402 | # CONFIG_WATCHDOG is not set | ||
403 | CONFIG_HW_RANDOM=y | 366 | CONFIG_HW_RANDOM=y |
404 | # CONFIG_GEN_RTC is not set | ||
405 | # CONFIG_DTLK is not set | ||
406 | # CONFIG_R3964 is not set | 367 | # CONFIG_R3964 is not set |
407 | |||
408 | # | ||
409 | # Ftape, the floppy tape device driver | ||
410 | # | ||
411 | # CONFIG_RAW_DRIVER is not set | 368 | # CONFIG_RAW_DRIVER is not set |
412 | |||
413 | # | ||
414 | # TPM devices | ||
415 | # | ||
416 | # CONFIG_TCG_TPM is not set | 369 | # CONFIG_TCG_TPM is not set |
417 | # CONFIG_TELCLOCK is not set | ||
418 | |||
419 | # | ||
420 | # I2C support | ||
421 | # | ||
422 | # CONFIG_I2C is not set | 370 | # CONFIG_I2C is not set |
423 | |||
424 | # | ||
425 | # SPI support | ||
426 | # | ||
427 | # CONFIG_SPI is not set | 371 | # CONFIG_SPI is not set |
428 | # CONFIG_SPI_MASTER is not set | 372 | # CONFIG_W1 is not set |
429 | 373 | # CONFIG_POWER_SUPPLY is not set | |
430 | # | ||
431 | # Dallas's 1-wire bus | ||
432 | # | ||
433 | |||
434 | # | ||
435 | # Hardware Monitoring support | ||
436 | # | ||
437 | CONFIG_HWMON=y | 374 | CONFIG_HWMON=y |
438 | # CONFIG_HWMON_VID is not set | 375 | # CONFIG_HWMON_VID is not set |
439 | # CONFIG_SENSORS_ABITUGURU is not set | ||
440 | # CONFIG_SENSORS_F71805F is not set | 376 | # CONFIG_SENSORS_F71805F is not set |
377 | # CONFIG_SENSORS_F71882FG is not set | ||
378 | # CONFIG_SENSORS_IT87 is not set | ||
379 | # CONFIG_SENSORS_PC87360 is not set | ||
380 | # CONFIG_SENSORS_PC87427 is not set | ||
381 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
382 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
441 | # CONFIG_SENSORS_VT1211 is not set | 383 | # CONFIG_SENSORS_VT1211 is not set |
384 | # CONFIG_SENSORS_W83627HF is not set | ||
385 | # CONFIG_SENSORS_W83627EHF is not set | ||
442 | # CONFIG_HWMON_DEBUG_CHIP is not set | 386 | # CONFIG_HWMON_DEBUG_CHIP is not set |
387 | # CONFIG_THERMAL is not set | ||
388 | # CONFIG_THERMAL_HWMON is not set | ||
389 | # CONFIG_WATCHDOG is not set | ||
443 | 390 | ||
444 | # | 391 | # |
445 | # Misc devices | 392 | # Sonics Silicon Backplane |
446 | # | 393 | # |
394 | CONFIG_SSB_POSSIBLE=y | ||
395 | # CONFIG_SSB is not set | ||
396 | |||
397 | # | ||
398 | # Multifunction device drivers | ||
399 | # | ||
400 | # CONFIG_MFD_CORE is not set | ||
401 | # CONFIG_MFD_SM501 is not set | ||
402 | # CONFIG_HTC_PASIC3 is not set | ||
403 | # CONFIG_MFD_TMIO is not set | ||
404 | # CONFIG_MFD_WM8400 is not set | ||
447 | 405 | ||
448 | # | 406 | # |
449 | # Multimedia devices | 407 | # Multimedia devices |
450 | # | 408 | # |
409 | |||
410 | # | ||
411 | # Multimedia core support | ||
412 | # | ||
451 | # CONFIG_VIDEO_DEV is not set | 413 | # CONFIG_VIDEO_DEV is not set |
452 | CONFIG_VIDEO_V4L2=y | 414 | # CONFIG_VIDEO_MEDIA is not set |
453 | 415 | ||
454 | # | 416 | # |
455 | # Digital Video Broadcasting Devices | 417 | # Multimedia drivers |
456 | # | 418 | # |
419 | # CONFIG_DAB is not set | ||
457 | 420 | ||
458 | # | 421 | # |
459 | # Graphics support | 422 | # Graphics support |
460 | # | 423 | # |
461 | CONFIG_FIRMWARE_EDID=y | 424 | # CONFIG_VGASTATE is not set |
425 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
462 | # CONFIG_FB is not set | 426 | # CONFIG_FB is not set |
463 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 427 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
464 | 428 | ||
465 | # | 429 | # |
466 | # Sound | 430 | # Display device support |
467 | # | 431 | # |
432 | # CONFIG_DISPLAY_SUPPORT is not set | ||
468 | # CONFIG_SOUND is not set | 433 | # CONFIG_SOUND is not set |
469 | 434 | CONFIG_USB_SUPPORT=y | |
470 | # | 435 | CONFIG_USB_ARCH_HAS_HCD=y |
471 | # USB support | ||
472 | # | ||
473 | # CONFIG_USB_ARCH_HAS_HCD is not set | ||
474 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 436 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
475 | # CONFIG_USB_ARCH_HAS_EHCI is not set | 437 | # CONFIG_USB_ARCH_HAS_EHCI is not set |
438 | # CONFIG_USB is not set | ||
439 | # CONFIG_USB_OTG_WHITELIST is not set | ||
440 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | ||
476 | 441 | ||
477 | # | 442 | # |
478 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 443 | # Enable Host or Gadget support to see Inventra options |
479 | # | 444 | # |
480 | 445 | ||
481 | # | 446 | # |
482 | # USB Gadget Support | 447 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
483 | # | 448 | # |
484 | # CONFIG_USB_GADGET is not set | 449 | # CONFIG_USB_GADGET is not set |
485 | |||
486 | # | ||
487 | # MMC/SD Card support | ||
488 | # | ||
489 | # CONFIG_MMC is not set | 450 | # CONFIG_MMC is not set |
490 | 451 | # CONFIG_MEMSTICK is not set | |
491 | # | ||
492 | # LED devices | ||
493 | # | ||
494 | # CONFIG_NEW_LEDS is not set | 452 | # CONFIG_NEW_LEDS is not set |
495 | 453 | # CONFIG_ACCESSIBILITY is not set | |
496 | # | ||
497 | # LED drivers | ||
498 | # | ||
499 | |||
500 | # | ||
501 | # LED Triggers | ||
502 | # | ||
503 | |||
504 | # | ||
505 | # InfiniBand support | ||
506 | # | ||
507 | |||
508 | # | ||
509 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
510 | # | ||
511 | |||
512 | # | ||
513 | # Real Time Clock | ||
514 | # | ||
515 | # CONFIG_RTC_CLASS is not set | 454 | # CONFIG_RTC_CLASS is not set |
516 | 455 | # CONFIG_DMADEVICES is not set | |
517 | # | 456 | # CONFIG_UIO is not set |
518 | # DMA Engine support | 457 | # CONFIG_STAGING is not set |
519 | # | ||
520 | # CONFIG_DMA_ENGINE is not set | ||
521 | |||
522 | # | ||
523 | # DMA Clients | ||
524 | # | ||
525 | |||
526 | # | ||
527 | # DMA Devices | ||
528 | # | ||
529 | 458 | ||
530 | # | 459 | # |
531 | # File systems | 460 | # File systems |
532 | # | 461 | # |
533 | # CONFIG_EXT2_FS is not set | 462 | # CONFIG_EXT2_FS is not set |
534 | # CONFIG_EXT3_FS is not set | 463 | # CONFIG_EXT3_FS is not set |
464 | # CONFIG_EXT4_FS is not set | ||
535 | # CONFIG_REISERFS_FS is not set | 465 | # CONFIG_REISERFS_FS is not set |
536 | # CONFIG_JFS_FS is not set | 466 | # CONFIG_JFS_FS is not set |
537 | # CONFIG_FS_POSIX_ACL is not set | 467 | # CONFIG_FS_POSIX_ACL is not set |
468 | CONFIG_FILE_LOCKING=y | ||
538 | # CONFIG_XFS_FS is not set | 469 | # CONFIG_XFS_FS is not set |
539 | # CONFIG_MINIX_FS is not set | 470 | CONFIG_DNOTIFY=y |
540 | CONFIG_ROMFS_FS=y | ||
541 | CONFIG_INOTIFY=y | 471 | CONFIG_INOTIFY=y |
542 | CONFIG_INOTIFY_USER=y | 472 | CONFIG_INOTIFY_USER=y |
543 | # CONFIG_QUOTA is not set | 473 | # CONFIG_QUOTA is not set |
544 | CONFIG_DNOTIFY=y | ||
545 | # CONFIG_AUTOFS_FS is not set | 474 | # CONFIG_AUTOFS_FS is not set |
546 | # CONFIG_AUTOFS4_FS is not set | 475 | # CONFIG_AUTOFS4_FS is not set |
547 | # CONFIG_FUSE_FS is not set | 476 | # CONFIG_FUSE_FS is not set |
@@ -565,12 +494,12 @@ CONFIG_DNOTIFY=y | |||
565 | CONFIG_PROC_FS=y | 494 | CONFIG_PROC_FS=y |
566 | CONFIG_PROC_KCORE=y | 495 | CONFIG_PROC_KCORE=y |
567 | CONFIG_PROC_SYSCTL=y | 496 | CONFIG_PROC_SYSCTL=y |
497 | CONFIG_PROC_PAGE_MONITOR=y | ||
568 | CONFIG_SYSFS=y | 498 | CONFIG_SYSFS=y |
569 | CONFIG_TMPFS=y | 499 | CONFIG_TMPFS=y |
570 | # CONFIG_TMPFS_POSIX_ACL is not set | 500 | # CONFIG_TMPFS_POSIX_ACL is not set |
571 | # CONFIG_HUGETLBFS is not set | 501 | # CONFIG_HUGETLBFS is not set |
572 | # CONFIG_HUGETLB_PAGE is not set | 502 | # CONFIG_HUGETLB_PAGE is not set |
573 | CONFIG_RAMFS=y | ||
574 | # CONFIG_CONFIGFS_FS is not set | 503 | # CONFIG_CONFIGFS_FS is not set |
575 | 504 | ||
576 | # | 505 | # |
@@ -585,8 +514,11 @@ CONFIG_RAMFS=y | |||
585 | # CONFIG_EFS_FS is not set | 514 | # CONFIG_EFS_FS is not set |
586 | CONFIG_CRAMFS=y | 515 | CONFIG_CRAMFS=y |
587 | # CONFIG_VXFS_FS is not set | 516 | # CONFIG_VXFS_FS is not set |
517 | # CONFIG_MINIX_FS is not set | ||
518 | # CONFIG_OMFS_FS is not set | ||
588 | # CONFIG_HPFS_FS is not set | 519 | # CONFIG_HPFS_FS is not set |
589 | # CONFIG_QNX4FS_FS is not set | 520 | # CONFIG_QNX4FS_FS is not set |
521 | CONFIG_ROMFS_FS=y | ||
590 | # CONFIG_SYSV_FS is not set | 522 | # CONFIG_SYSV_FS is not set |
591 | # CONFIG_UFS_FS is not set | 523 | # CONFIG_UFS_FS is not set |
592 | 524 | ||
@@ -595,49 +527,55 @@ CONFIG_CRAMFS=y | |||
595 | # | 527 | # |
596 | # CONFIG_PARTITION_ADVANCED is not set | 528 | # CONFIG_PARTITION_ADVANCED is not set |
597 | CONFIG_MSDOS_PARTITION=y | 529 | CONFIG_MSDOS_PARTITION=y |
598 | |||
599 | # | ||
600 | # Native Language Support | ||
601 | # | ||
602 | # CONFIG_NLS is not set | 530 | # CONFIG_NLS is not set |
603 | 531 | ||
604 | # | 532 | # |
605 | # Profiling support | ||
606 | # | ||
607 | # CONFIG_PROFILING is not set | ||
608 | |||
609 | # | ||
610 | # Kernel hacking | 533 | # Kernel hacking |
611 | # | 534 | # |
535 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
612 | # CONFIG_PRINTK_TIME is not set | 536 | # CONFIG_PRINTK_TIME is not set |
537 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
613 | CONFIG_ENABLE_MUST_CHECK=y | 538 | CONFIG_ENABLE_MUST_CHECK=y |
539 | CONFIG_FRAME_WARN=1024 | ||
614 | # CONFIG_MAGIC_SYSRQ is not set | 540 | # CONFIG_MAGIC_SYSRQ is not set |
615 | # CONFIG_UNUSED_SYMBOLS is not set | 541 | # CONFIG_UNUSED_SYMBOLS is not set |
542 | # CONFIG_DEBUG_FS is not set | ||
543 | # CONFIG_HEADERS_CHECK is not set | ||
616 | # CONFIG_DEBUG_KERNEL is not set | 544 | # CONFIG_DEBUG_KERNEL is not set |
617 | CONFIG_LOG_BUF_SHIFT=14 | ||
618 | # CONFIG_DEBUG_BUGVERBOSE is not set | 545 | # CONFIG_DEBUG_BUGVERBOSE is not set |
619 | # CONFIG_DEBUG_FS is not set | 546 | # CONFIG_DEBUG_MEMORY_INIT is not set |
547 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
548 | # CONFIG_LATENCYTOP is not set | ||
549 | CONFIG_NOP_TRACER=y | ||
550 | CONFIG_HAVE_FTRACE=y | ||
551 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
552 | # CONFIG_SAMPLES is not set | ||
620 | # CONFIG_SH_STANDARD_BIOS is not set | 553 | # CONFIG_SH_STANDARD_BIOS is not set |
621 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 554 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
622 | # CONFIG_KGDB is not set | 555 | # CONFIG_SH_KGDB is not set |
623 | 556 | ||
624 | # | 557 | # |
625 | # Security options | 558 | # Security options |
626 | # | 559 | # |
627 | # CONFIG_KEYS is not set | 560 | # CONFIG_KEYS is not set |
628 | # CONFIG_SECURITY is not set | 561 | # CONFIG_SECURITY is not set |
629 | 562 | # CONFIG_SECURITYFS is not set | |
630 | # | 563 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
631 | # Cryptographic options | ||
632 | # | ||
633 | # CONFIG_CRYPTO is not set | 564 | # CONFIG_CRYPTO is not set |
634 | 565 | ||
635 | # | 566 | # |
636 | # Library routines | 567 | # Library routines |
637 | # | 568 | # |
569 | CONFIG_BITREVERSE=y | ||
638 | # CONFIG_CRC_CCITT is not set | 570 | # CONFIG_CRC_CCITT is not set |
639 | # CONFIG_CRC16 is not set | 571 | # CONFIG_CRC16 is not set |
572 | # CONFIG_CRC_T10DIF is not set | ||
573 | # CONFIG_CRC_ITU_T is not set | ||
640 | CONFIG_CRC32=y | 574 | CONFIG_CRC32=y |
575 | # CONFIG_CRC7 is not set | ||
641 | # CONFIG_LIBCRC32C is not set | 576 | # CONFIG_LIBCRC32C is not set |
642 | CONFIG_ZLIB_INFLATE=y | 577 | CONFIG_ZLIB_INFLATE=y |
643 | CONFIG_PLIST=y | 578 | CONFIG_PLIST=y |
579 | CONFIG_HAS_IOMEM=y | ||
580 | CONFIG_HAS_IOPORT=y | ||
581 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/sh/configs/titan_defconfig b/arch/sh/configs/titan_defconfig index 0686ed6fe17a..ea3c5e838fc3 100644 --- a/arch/sh/configs/titan_defconfig +++ b/arch/sh/configs/titan_defconfig | |||
@@ -1,41 +1,55 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.19-rc3 | 3 | # Linux kernel version: 2.6.27 |
4 | # Mon Oct 30 18:04:49 2006 | 4 | # Wed Oct 22 19:58:12 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | ||
8 | CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig" | ||
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
10 | CONFIG_GENERIC_BUG=y | ||
8 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 11 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
9 | CONFIG_GENERIC_HWEIGHT=y | 12 | CONFIG_GENERIC_HWEIGHT=y |
10 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
11 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
12 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 16 | # CONFIG_GENERIC_GPIO is not set |
13 | # CONFIG_GENERIC_TIME is not set | 17 | CONFIG_GENERIC_TIME=y |
18 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
19 | CONFIG_SYS_SUPPORTS_PCI=y | ||
20 | CONFIG_STACKTRACE_SUPPORT=y | ||
21 | CONFIG_LOCKDEP_SUPPORT=y | ||
22 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
23 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
24 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
25 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | ||
14 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 26 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
15 | 27 | ||
16 | # | 28 | # |
17 | # Code maturity level options | 29 | # General setup |
18 | # | 30 | # |
19 | CONFIG_EXPERIMENTAL=y | 31 | CONFIG_EXPERIMENTAL=y |
20 | CONFIG_BROKEN_ON_SMP=y | 32 | CONFIG_BROKEN_ON_SMP=y |
21 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 33 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
22 | |||
23 | # | ||
24 | # General setup | ||
25 | # | ||
26 | CONFIG_LOCALVERSION="" | 34 | CONFIG_LOCALVERSION="" |
27 | # CONFIG_LOCALVERSION_AUTO is not set | 35 | # CONFIG_LOCALVERSION_AUTO is not set |
28 | CONFIG_SWAP=y | 36 | CONFIG_SWAP=y |
29 | CONFIG_SYSVIPC=y | 37 | CONFIG_SYSVIPC=y |
30 | # CONFIG_IPC_NS is not set | 38 | CONFIG_SYSVIPC_SYSCTL=y |
31 | CONFIG_POSIX_MQUEUE=y | 39 | CONFIG_POSIX_MQUEUE=y |
32 | # CONFIG_BSD_PROCESS_ACCT is not set | 40 | # CONFIG_BSD_PROCESS_ACCT is not set |
33 | # CONFIG_TASKSTATS is not set | 41 | # CONFIG_TASKSTATS is not set |
34 | # CONFIG_UTS_NS is not set | ||
35 | # CONFIG_AUDIT is not set | 42 | # CONFIG_AUDIT is not set |
36 | CONFIG_IKCONFIG=y | 43 | CONFIG_IKCONFIG=y |
37 | CONFIG_IKCONFIG_PROC=y | 44 | CONFIG_IKCONFIG_PROC=y |
45 | CONFIG_LOG_BUF_SHIFT=16 | ||
46 | # CONFIG_CGROUPS is not set | ||
47 | # CONFIG_GROUP_SCHED is not set | ||
48 | CONFIG_SYSFS_DEPRECATED=y | ||
49 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
38 | # CONFIG_RELAY is not set | 50 | # CONFIG_RELAY is not set |
51 | # CONFIG_NAMESPACES is not set | ||
52 | CONFIG_BLK_DEV_INITRD=y | ||
39 | CONFIG_INITRAMFS_SOURCE="" | 53 | CONFIG_INITRAMFS_SOURCE="" |
40 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 54 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
41 | CONFIG_SYSCTL=y | 55 | CONFIG_SYSCTL=y |
@@ -49,34 +63,48 @@ CONFIG_HOTPLUG=y | |||
49 | CONFIG_PRINTK=y | 63 | CONFIG_PRINTK=y |
50 | CONFIG_BUG=y | 64 | CONFIG_BUG=y |
51 | CONFIG_ELF_CORE=y | 65 | CONFIG_ELF_CORE=y |
66 | CONFIG_COMPAT_BRK=y | ||
52 | CONFIG_BASE_FULL=y | 67 | CONFIG_BASE_FULL=y |
53 | CONFIG_FUTEX=y | 68 | CONFIG_FUTEX=y |
69 | CONFIG_ANON_INODES=y | ||
54 | CONFIG_EPOLL=y | 70 | CONFIG_EPOLL=y |
71 | CONFIG_SIGNALFD=y | ||
72 | CONFIG_TIMERFD=y | ||
73 | CONFIG_EVENTFD=y | ||
55 | CONFIG_SHMEM=y | 74 | CONFIG_SHMEM=y |
56 | CONFIG_SLAB=y | 75 | CONFIG_AIO=y |
57 | CONFIG_VM_EVENT_COUNTERS=y | 76 | CONFIG_VM_EVENT_COUNTERS=y |
77 | CONFIG_PCI_QUIRKS=y | ||
78 | CONFIG_SLAB=y | ||
79 | # CONFIG_SLUB is not set | ||
80 | # CONFIG_SLOB is not set | ||
81 | # CONFIG_PROFILING is not set | ||
82 | # CONFIG_MARKERS is not set | ||
83 | CONFIG_HAVE_OPROFILE=y | ||
84 | # CONFIG_KPROBES is not set | ||
85 | CONFIG_HAVE_IOREMAP_PROT=y | ||
86 | CONFIG_HAVE_KPROBES=y | ||
87 | CONFIG_HAVE_KRETPROBES=y | ||
88 | CONFIG_HAVE_ARCH_TRACEHOOK=y | ||
89 | CONFIG_HAVE_CLK=y | ||
90 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
91 | CONFIG_SLABINFO=y | ||
58 | CONFIG_RT_MUTEXES=y | 92 | CONFIG_RT_MUTEXES=y |
59 | # CONFIG_TINY_SHMEM is not set | 93 | # CONFIG_TINY_SHMEM is not set |
60 | CONFIG_BASE_SMALL=0 | 94 | CONFIG_BASE_SMALL=0 |
61 | # CONFIG_SLOB is not set | ||
62 | |||
63 | # | ||
64 | # Loadable module support | ||
65 | # | ||
66 | CONFIG_MODULES=y | 95 | CONFIG_MODULES=y |
96 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
67 | CONFIG_MODULE_UNLOAD=y | 97 | CONFIG_MODULE_UNLOAD=y |
68 | CONFIG_MODULE_FORCE_UNLOAD=y | 98 | CONFIG_MODULE_FORCE_UNLOAD=y |
69 | # CONFIG_MODVERSIONS is not set | 99 | # CONFIG_MODVERSIONS is not set |
70 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 100 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
71 | CONFIG_KMOD=y | 101 | CONFIG_KMOD=y |
72 | |||
73 | # | ||
74 | # Block layer | ||
75 | # | ||
76 | CONFIG_BLOCK=y | 102 | CONFIG_BLOCK=y |
77 | # CONFIG_LBD is not set | 103 | # CONFIG_LBD is not set |
78 | # CONFIG_BLK_DEV_IO_TRACE is not set | 104 | # CONFIG_BLK_DEV_IO_TRACE is not set |
79 | # CONFIG_LSF is not set | 105 | # CONFIG_LSF is not set |
106 | # CONFIG_BLK_DEV_BSG is not set | ||
107 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
80 | 108 | ||
81 | # | 109 | # |
82 | # IO Schedulers | 110 | # IO Schedulers |
@@ -90,59 +118,27 @@ CONFIG_DEFAULT_AS=y | |||
90 | # CONFIG_DEFAULT_CFQ is not set | 118 | # CONFIG_DEFAULT_CFQ is not set |
91 | # CONFIG_DEFAULT_NOOP is not set | 119 | # CONFIG_DEFAULT_NOOP is not set |
92 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 120 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
121 | CONFIG_CLASSIC_RCU=y | ||
122 | # CONFIG_FREEZER is not set | ||
93 | 123 | ||
94 | # | 124 | # |
95 | # System type | 125 | # System type |
96 | # | 126 | # |
97 | # CONFIG_SH_SOLUTION_ENGINE is not set | ||
98 | # CONFIG_SH_7751_SOLUTION_ENGINE is not set | ||
99 | # CONFIG_SH_7300_SOLUTION_ENGINE is not set | ||
100 | # CONFIG_SH_7343_SOLUTION_ENGINE is not set | ||
101 | # CONFIG_SH_73180_SOLUTION_ENGINE is not set | ||
102 | # CONFIG_SH_7751_SYSTEMH is not set | ||
103 | # CONFIG_SH_HP6XX is not set | ||
104 | # CONFIG_SH_EC3104 is not set | ||
105 | # CONFIG_SH_SATURN is not set | ||
106 | # CONFIG_SH_DREAMCAST is not set | ||
107 | # CONFIG_SH_BIGSUR is not set | ||
108 | # CONFIG_SH_MPC1211 is not set | ||
109 | # CONFIG_SH_SH03 is not set | ||
110 | # CONFIG_SH_SECUREEDGE5410 is not set | ||
111 | # CONFIG_SH_HS7751RVOIP is not set | ||
112 | # CONFIG_SH_7710VOIPGW is not set | ||
113 | # CONFIG_SH_RTS7751R2D is not set | ||
114 | # CONFIG_SH_R7780RP is not set | ||
115 | # CONFIG_SH_EDOSK7705 is not set | ||
116 | # CONFIG_SH_SH4202_MICRODEV is not set | ||
117 | # CONFIG_SH_LANDISK is not set | ||
118 | CONFIG_SH_TITAN=y | ||
119 | # CONFIG_SH_SHMIN is not set | ||
120 | # CONFIG_SH_UNKNOWN is not set | ||
121 | |||
122 | # | ||
123 | # Processor selection | ||
124 | # | ||
125 | CONFIG_CPU_SH4=y | 127 | CONFIG_CPU_SH4=y |
126 | 128 | # CONFIG_CPU_SUBTYPE_SH7619 is not set | |
127 | # | 129 | # CONFIG_CPU_SUBTYPE_SH7203 is not set |
128 | # SH-2 Processor Support | 130 | # CONFIG_CPU_SUBTYPE_SH7206 is not set |
129 | # | 131 | # CONFIG_CPU_SUBTYPE_SH7263 is not set |
130 | # CONFIG_CPU_SUBTYPE_SH7604 is not set | 132 | # CONFIG_CPU_SUBTYPE_MXG is not set |
131 | |||
132 | # | ||
133 | # SH-3 Processor Support | ||
134 | # | ||
135 | # CONFIG_CPU_SUBTYPE_SH7300 is not set | ||
136 | # CONFIG_CPU_SUBTYPE_SH7705 is not set | 133 | # CONFIG_CPU_SUBTYPE_SH7705 is not set |
137 | # CONFIG_CPU_SUBTYPE_SH7706 is not set | 134 | # CONFIG_CPU_SUBTYPE_SH7706 is not set |
138 | # CONFIG_CPU_SUBTYPE_SH7707 is not set | 135 | # CONFIG_CPU_SUBTYPE_SH7707 is not set |
139 | # CONFIG_CPU_SUBTYPE_SH7708 is not set | 136 | # CONFIG_CPU_SUBTYPE_SH7708 is not set |
140 | # CONFIG_CPU_SUBTYPE_SH7709 is not set | 137 | # CONFIG_CPU_SUBTYPE_SH7709 is not set |
141 | # CONFIG_CPU_SUBTYPE_SH7710 is not set | 138 | # CONFIG_CPU_SUBTYPE_SH7710 is not set |
142 | 139 | # CONFIG_CPU_SUBTYPE_SH7712 is not set | |
143 | # | 140 | # CONFIG_CPU_SUBTYPE_SH7720 is not set |
144 | # SH-4 Processor Support | 141 | # CONFIG_CPU_SUBTYPE_SH7721 is not set |
145 | # | ||
146 | # CONFIG_CPU_SUBTYPE_SH7750 is not set | 142 | # CONFIG_CPU_SUBTYPE_SH7750 is not set |
147 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | 143 | # CONFIG_CPU_SUBTYPE_SH7091 is not set |
148 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | 144 | # CONFIG_CPU_SUBTYPE_SH7750R is not set |
@@ -151,65 +147,94 @@ CONFIG_CPU_SH4=y | |||
151 | CONFIG_CPU_SUBTYPE_SH7751R=y | 147 | CONFIG_CPU_SUBTYPE_SH7751R=y |
152 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | 148 | # CONFIG_CPU_SUBTYPE_SH7760 is not set |
153 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | 149 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set |
154 | 150 | # CONFIG_CPU_SUBTYPE_SH7723 is not set | |
155 | # | 151 | # CONFIG_CPU_SUBTYPE_SH7763 is not set |
156 | # ST40 Processor Support | ||
157 | # | ||
158 | # CONFIG_CPU_SUBTYPE_ST40STB1 is not set | ||
159 | # CONFIG_CPU_SUBTYPE_ST40GX1 is not set | ||
160 | |||
161 | # | ||
162 | # SH-4A Processor Support | ||
163 | # | ||
164 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | 152 | # CONFIG_CPU_SUBTYPE_SH7770 is not set |
165 | # CONFIG_CPU_SUBTYPE_SH7780 is not set | 153 | # CONFIG_CPU_SUBTYPE_SH7780 is not set |
166 | 154 | # CONFIG_CPU_SUBTYPE_SH7785 is not set | |
167 | # | 155 | # CONFIG_CPU_SUBTYPE_SHX3 is not set |
168 | # SH4AL-DSP Processor Support | ||
169 | # | ||
170 | # CONFIG_CPU_SUBTYPE_SH73180 is not set | ||
171 | # CONFIG_CPU_SUBTYPE_SH7343 is not set | 156 | # CONFIG_CPU_SUBTYPE_SH7343 is not set |
157 | # CONFIG_CPU_SUBTYPE_SH7722 is not set | ||
158 | # CONFIG_CPU_SUBTYPE_SH7366 is not set | ||
159 | # CONFIG_CPU_SUBTYPE_SH5_101 is not set | ||
160 | # CONFIG_CPU_SUBTYPE_SH5_103 is not set | ||
172 | 161 | ||
173 | # | 162 | # |
174 | # Memory management options | 163 | # Memory management options |
175 | # | 164 | # |
165 | CONFIG_QUICKLIST=y | ||
176 | CONFIG_MMU=y | 166 | CONFIG_MMU=y |
177 | CONFIG_PAGE_OFFSET=0x80000000 | 167 | CONFIG_PAGE_OFFSET=0x80000000 |
178 | CONFIG_MEMORY_START=0x08030000 | 168 | CONFIG_MEMORY_START=0x08030000 |
179 | CONFIG_MEMORY_SIZE=0x7fd0000 | 169 | CONFIG_MEMORY_SIZE=0x7fd0000 |
170 | CONFIG_29BIT=y | ||
180 | CONFIG_VSYSCALL=y | 171 | CONFIG_VSYSCALL=y |
172 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
173 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | ||
174 | CONFIG_ARCH_SPARSEMEM_DEFAULT=y | ||
175 | CONFIG_MAX_ACTIVE_REGIONS=1 | ||
176 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
177 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | ||
178 | CONFIG_PAGE_SIZE_4KB=y | ||
179 | # CONFIG_PAGE_SIZE_8KB is not set | ||
180 | # CONFIG_PAGE_SIZE_16KB is not set | ||
181 | # CONFIG_PAGE_SIZE_64KB is not set | ||
182 | CONFIG_ENTRY_OFFSET=0x00001000 | ||
181 | CONFIG_SELECT_MEMORY_MODEL=y | 183 | CONFIG_SELECT_MEMORY_MODEL=y |
182 | CONFIG_FLATMEM_MANUAL=y | 184 | CONFIG_FLATMEM_MANUAL=y |
183 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 185 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
184 | # CONFIG_SPARSEMEM_MANUAL is not set | 186 | # CONFIG_SPARSEMEM_MANUAL is not set |
185 | CONFIG_FLATMEM=y | 187 | CONFIG_FLATMEM=y |
186 | CONFIG_FLAT_NODE_MEM_MAP=y | 188 | CONFIG_FLAT_NODE_MEM_MAP=y |
187 | # CONFIG_SPARSEMEM_STATIC is not set | 189 | CONFIG_SPARSEMEM_STATIC=y |
190 | CONFIG_PAGEFLAGS_EXTENDED=y | ||
188 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 191 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
189 | # CONFIG_RESOURCES_64BIT is not set | 192 | # CONFIG_RESOURCES_64BIT is not set |
193 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
194 | CONFIG_ZONE_DMA_FLAG=0 | ||
195 | CONFIG_NR_QUICK=2 | ||
196 | CONFIG_UNEVICTABLE_LRU=y | ||
190 | 197 | ||
191 | # | 198 | # |
192 | # Cache configuration | 199 | # Cache configuration |
193 | # | 200 | # |
194 | # CONFIG_SH_DIRECT_MAPPED is not set | 201 | # CONFIG_SH_DIRECT_MAPPED is not set |
195 | # CONFIG_SH_WRITETHROUGH is not set | 202 | CONFIG_CACHE_WRITEBACK=y |
196 | # CONFIG_SH_OCRAM is not set | 203 | # CONFIG_CACHE_WRITETHROUGH is not set |
204 | # CONFIG_CACHE_OFF is not set | ||
197 | 205 | ||
198 | # | 206 | # |
199 | # Processor features | 207 | # Processor features |
200 | # | 208 | # |
201 | CONFIG_CPU_LITTLE_ENDIAN=y | 209 | CONFIG_CPU_LITTLE_ENDIAN=y |
210 | # CONFIG_CPU_BIG_ENDIAN is not set | ||
202 | CONFIG_SH_FPU=y | 211 | CONFIG_SH_FPU=y |
203 | # CONFIG_SH_DSP is not set | ||
204 | # CONFIG_SH_STORE_QUEUES is not set | 212 | # CONFIG_SH_STORE_QUEUES is not set |
205 | CONFIG_CPU_HAS_INTEVT=y | 213 | CONFIG_CPU_HAS_INTEVT=y |
214 | CONFIG_CPU_HAS_IPR_IRQ=y | ||
206 | CONFIG_CPU_HAS_SR_RB=y | 215 | CONFIG_CPU_HAS_SR_RB=y |
216 | CONFIG_CPU_HAS_PTEA=y | ||
217 | CONFIG_CPU_HAS_FPU=y | ||
218 | |||
219 | # | ||
220 | # Board support | ||
221 | # | ||
222 | # CONFIG_SH_7751_SYSTEMH is not set | ||
223 | # CONFIG_SH_SECUREEDGE5410 is not set | ||
224 | # CONFIG_SH_RTS7751R2D is not set | ||
225 | # CONFIG_SH_LANDISK is not set | ||
226 | CONFIG_SH_TITAN=y | ||
227 | # CONFIG_SH_LBOX_RE2 is not set | ||
207 | 228 | ||
208 | # | 229 | # |
209 | # Timer support | 230 | # Timer and clock configuration |
210 | # | 231 | # |
211 | CONFIG_SH_TMU=y | 232 | CONFIG_SH_TMU=y |
233 | CONFIG_SH_TIMER_IRQ=16 | ||
212 | CONFIG_SH_PCLK_FREQ=30000000 | 234 | CONFIG_SH_PCLK_FREQ=30000000 |
235 | # CONFIG_NO_HZ is not set | ||
236 | # CONFIG_HIGH_RES_TIMERS is not set | ||
237 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
213 | 238 | ||
214 | # | 239 | # |
215 | # CPU Frequency scaling | 240 | # CPU Frequency scaling |
@@ -219,6 +244,7 @@ CONFIG_SH_PCLK_FREQ=30000000 | |||
219 | # | 244 | # |
220 | # DMA support | 245 | # DMA support |
221 | # | 246 | # |
247 | CONFIG_SH_DMA_API=y | ||
222 | CONFIG_SH_DMA=y | 248 | CONFIG_SH_DMA=y |
223 | CONFIG_NR_ONCHIP_DMA_CHANNELS=8 | 249 | CONFIG_NR_ONCHIP_DMA_CHANNELS=8 |
224 | # CONFIG_NR_DMA_CHANNELS_BOOL is not set | 250 | # CONFIG_NR_DMA_CHANNELS_BOOL is not set |
@@ -226,20 +252,30 @@ CONFIG_NR_ONCHIP_DMA_CHANNELS=8 | |||
226 | # | 252 | # |
227 | # Companion Chips | 253 | # Companion Chips |
228 | # | 254 | # |
229 | # CONFIG_HD6446X_SERIES is not set | 255 | |
256 | # | ||
257 | # Additional SuperH Device Drivers | ||
258 | # | ||
259 | # CONFIG_HEARTBEAT is not set | ||
260 | # CONFIG_PUSH_SWITCH is not set | ||
230 | 261 | ||
231 | # | 262 | # |
232 | # Kernel features | 263 | # Kernel features |
233 | # | 264 | # |
234 | # CONFIG_HZ_100 is not set | 265 | # CONFIG_HZ_100 is not set |
235 | CONFIG_HZ_250=y | 266 | CONFIG_HZ_250=y |
267 | # CONFIG_HZ_300 is not set | ||
236 | # CONFIG_HZ_1000 is not set | 268 | # CONFIG_HZ_1000 is not set |
237 | CONFIG_HZ=250 | 269 | CONFIG_HZ=250 |
270 | # CONFIG_SCHED_HRTICK is not set | ||
238 | # CONFIG_KEXEC is not set | 271 | # CONFIG_KEXEC is not set |
239 | # CONFIG_SMP is not set | 272 | # CONFIG_CRASH_DUMP is not set |
273 | # CONFIG_SECCOMP is not set | ||
240 | # CONFIG_PREEMPT_NONE is not set | 274 | # CONFIG_PREEMPT_NONE is not set |
241 | CONFIG_PREEMPT_VOLUNTARY=y | 275 | CONFIG_PREEMPT_VOLUNTARY=y |
242 | # CONFIG_PREEMPT is not set | 276 | # CONFIG_PREEMPT is not set |
277 | CONFIG_GUSA=y | ||
278 | # CONFIG_GUSA_RB is not set | ||
243 | 279 | ||
244 | # | 280 | # |
245 | # Boot options | 281 | # Boot options |
@@ -257,17 +293,10 @@ CONFIG_PCI=y | |||
257 | CONFIG_SH_PCIDMA_NONCOHERENT=y | 293 | CONFIG_SH_PCIDMA_NONCOHERENT=y |
258 | CONFIG_PCI_AUTO=y | 294 | CONFIG_PCI_AUTO=y |
259 | CONFIG_PCI_AUTO_UPDATE_RESOURCES=y | 295 | CONFIG_PCI_AUTO_UPDATE_RESOURCES=y |
260 | # CONFIG_PCI_MULTITHREAD_PROBE is not set | 296 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
297 | CONFIG_PCI_LEGACY=y | ||
261 | # CONFIG_PCI_DEBUG is not set | 298 | # CONFIG_PCI_DEBUG is not set |
262 | |||
263 | # | ||
264 | # PCCARD (PCMCIA/CardBus) support | ||
265 | # | ||
266 | # CONFIG_PCCARD is not set | 299 | # CONFIG_PCCARD is not set |
267 | |||
268 | # | ||
269 | # PCI Hotplug Support | ||
270 | # | ||
271 | CONFIG_HOTPLUG_PCI=y | 300 | CONFIG_HOTPLUG_PCI=y |
272 | # CONFIG_HOTPLUG_PCI_FAKE is not set | 301 | # CONFIG_HOTPLUG_PCI_FAKE is not set |
273 | # CONFIG_HOTPLUG_PCI_CPCI is not set | 302 | # CONFIG_HOTPLUG_PCI_CPCI is not set |
@@ -277,30 +306,25 @@ CONFIG_HOTPLUG_PCI=y | |||
277 | # Executable file formats | 306 | # Executable file formats |
278 | # | 307 | # |
279 | CONFIG_BINFMT_ELF=y | 308 | CONFIG_BINFMT_ELF=y |
280 | # CONFIG_BINFMT_FLAT is not set | 309 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set |
310 | # CONFIG_HAVE_AOUT is not set | ||
281 | # CONFIG_BINFMT_MISC is not set | 311 | # CONFIG_BINFMT_MISC is not set |
282 | |||
283 | # | ||
284 | # Power management options (EXPERIMENTAL) | ||
285 | # | ||
286 | # CONFIG_PM is not set | ||
287 | |||
288 | # | ||
289 | # Networking | ||
290 | # | ||
291 | CONFIG_NET=y | 312 | CONFIG_NET=y |
292 | 313 | ||
293 | # | 314 | # |
294 | # Networking options | 315 | # Networking options |
295 | # | 316 | # |
296 | # CONFIG_NETDEBUG is not set | ||
297 | CONFIG_PACKET=y | 317 | CONFIG_PACKET=y |
298 | CONFIG_PACKET_MMAP=y | 318 | CONFIG_PACKET_MMAP=y |
299 | CONFIG_UNIX=y | 319 | CONFIG_UNIX=y |
300 | CONFIG_XFRM=y | 320 | CONFIG_XFRM=y |
301 | # CONFIG_XFRM_USER is not set | 321 | # CONFIG_XFRM_USER is not set |
302 | # CONFIG_XFRM_SUB_POLICY is not set | 322 | # CONFIG_XFRM_SUB_POLICY is not set |
323 | # CONFIG_XFRM_MIGRATE is not set | ||
324 | # CONFIG_XFRM_STATISTICS is not set | ||
325 | CONFIG_XFRM_IPCOMP=y | ||
303 | CONFIG_NET_KEY=y | 326 | CONFIG_NET_KEY=y |
327 | # CONFIG_NET_KEY_MIGRATE is not set | ||
304 | CONFIG_INET=y | 328 | CONFIG_INET=y |
305 | CONFIG_IP_MULTICAST=y | 329 | CONFIG_IP_MULTICAST=y |
306 | CONFIG_IP_ADVANCED_ROUTER=y | 330 | CONFIG_IP_ADVANCED_ROUTER=y |
@@ -308,13 +332,7 @@ CONFIG_ASK_IP_FIB_HASH=y | |||
308 | # CONFIG_IP_FIB_TRIE is not set | 332 | # CONFIG_IP_FIB_TRIE is not set |
309 | CONFIG_IP_FIB_HASH=y | 333 | CONFIG_IP_FIB_HASH=y |
310 | CONFIG_IP_MULTIPLE_TABLES=y | 334 | CONFIG_IP_MULTIPLE_TABLES=y |
311 | # CONFIG_IP_ROUTE_FWMARK is not set | ||
312 | CONFIG_IP_ROUTE_MULTIPATH=y | 335 | CONFIG_IP_ROUTE_MULTIPATH=y |
313 | CONFIG_IP_ROUTE_MULTIPATH_CACHED=y | ||
314 | CONFIG_IP_ROUTE_MULTIPATH_RR=m | ||
315 | CONFIG_IP_ROUTE_MULTIPATH_RANDOM=m | ||
316 | CONFIG_IP_ROUTE_MULTIPATH_WRANDOM=m | ||
317 | CONFIG_IP_ROUTE_MULTIPATH_DRR=m | ||
318 | # CONFIG_IP_ROUTE_VERBOSE is not set | 336 | # CONFIG_IP_ROUTE_VERBOSE is not set |
319 | CONFIG_IP_PNP=y | 337 | CONFIG_IP_PNP=y |
320 | CONFIG_IP_PNP_DHCP=y | 338 | CONFIG_IP_PNP_DHCP=y |
@@ -336,19 +354,17 @@ CONFIG_INET_TUNNEL=y | |||
336 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | 354 | CONFIG_INET_XFRM_MODE_TRANSPORT=y |
337 | CONFIG_INET_XFRM_MODE_TUNNEL=y | 355 | CONFIG_INET_XFRM_MODE_TUNNEL=y |
338 | CONFIG_INET_XFRM_MODE_BEET=y | 356 | CONFIG_INET_XFRM_MODE_BEET=y |
357 | # CONFIG_INET_LRO is not set | ||
339 | CONFIG_INET_DIAG=m | 358 | CONFIG_INET_DIAG=m |
340 | CONFIG_INET_TCP_DIAG=m | 359 | CONFIG_INET_TCP_DIAG=m |
341 | # CONFIG_TCP_CONG_ADVANCED is not set | 360 | # CONFIG_TCP_CONG_ADVANCED is not set |
342 | CONFIG_TCP_CONG_CUBIC=y | 361 | CONFIG_TCP_CONG_CUBIC=y |
343 | CONFIG_DEFAULT_TCP_CONG="cubic" | 362 | CONFIG_DEFAULT_TCP_CONG="cubic" |
344 | 363 | # CONFIG_TCP_MD5SIG is not set | |
345 | # | ||
346 | # IP: Virtual Server Configuration | ||
347 | # | ||
348 | # CONFIG_IP_VS is not set | ||
349 | CONFIG_IPV6=y | 364 | CONFIG_IPV6=y |
350 | CONFIG_IPV6_PRIVACY=y | 365 | CONFIG_IPV6_PRIVACY=y |
351 | # CONFIG_IPV6_ROUTER_PREF is not set | 366 | # CONFIG_IPV6_ROUTER_PREF is not set |
367 | # CONFIG_IPV6_OPTIMISTIC_DAD is not set | ||
352 | CONFIG_INET6_AH=y | 368 | CONFIG_INET6_AH=y |
353 | CONFIG_INET6_ESP=y | 369 | CONFIG_INET6_ESP=y |
354 | CONFIG_INET6_IPCOMP=y | 370 | CONFIG_INET6_IPCOMP=y |
@@ -360,11 +376,14 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y | |||
360 | CONFIG_INET6_XFRM_MODE_BEET=y | 376 | CONFIG_INET6_XFRM_MODE_BEET=y |
361 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 377 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
362 | CONFIG_IPV6_SIT=m | 378 | CONFIG_IPV6_SIT=m |
379 | CONFIG_IPV6_NDISC_NODETYPE=y | ||
363 | CONFIG_IPV6_TUNNEL=y | 380 | CONFIG_IPV6_TUNNEL=y |
364 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 381 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
382 | # CONFIG_IPV6_MROUTE is not set | ||
365 | # CONFIG_NETWORK_SECMARK is not set | 383 | # CONFIG_NETWORK_SECMARK is not set |
366 | CONFIG_NETFILTER=y | 384 | CONFIG_NETFILTER=y |
367 | # CONFIG_NETFILTER_DEBUG is not set | 385 | # CONFIG_NETFILTER_DEBUG is not set |
386 | CONFIG_NETFILTER_ADVANCED=y | ||
368 | CONFIG_BRIDGE_NETFILTER=y | 387 | CONFIG_BRIDGE_NETFILTER=y |
369 | 388 | ||
370 | # | 389 | # |
@@ -373,134 +392,95 @@ CONFIG_BRIDGE_NETFILTER=y | |||
373 | CONFIG_NETFILTER_NETLINK=m | 392 | CONFIG_NETFILTER_NETLINK=m |
374 | CONFIG_NETFILTER_NETLINK_QUEUE=m | 393 | CONFIG_NETFILTER_NETLINK_QUEUE=m |
375 | CONFIG_NETFILTER_NETLINK_LOG=m | 394 | CONFIG_NETFILTER_NETLINK_LOG=m |
395 | # CONFIG_NF_CONNTRACK is not set | ||
376 | CONFIG_NETFILTER_XTABLES=m | 396 | CONFIG_NETFILTER_XTABLES=m |
377 | CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m | 397 | CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m |
378 | CONFIG_NETFILTER_XT_TARGET_CONNMARK=m | ||
379 | # CONFIG_NETFILTER_XT_TARGET_DSCP is not set | 398 | # CONFIG_NETFILTER_XT_TARGET_DSCP is not set |
380 | CONFIG_NETFILTER_XT_TARGET_MARK=m | 399 | CONFIG_NETFILTER_XT_TARGET_MARK=m |
400 | # CONFIG_NETFILTER_XT_TARGET_NFLOG is not set | ||
381 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | 401 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m |
382 | CONFIG_NETFILTER_XT_TARGET_NOTRACK=m | 402 | # CONFIG_NETFILTER_XT_TARGET_RATEEST is not set |
403 | # CONFIG_NETFILTER_XT_TARGET_TRACE is not set | ||
404 | # CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set | ||
405 | # CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set | ||
383 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | 406 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m |
384 | CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m | ||
385 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m | ||
386 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m | ||
387 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | 407 | CONFIG_NETFILTER_XT_MATCH_DCCP=m |
388 | # CONFIG_NETFILTER_XT_MATCH_DSCP is not set | 408 | # CONFIG_NETFILTER_XT_MATCH_DSCP is not set |
389 | CONFIG_NETFILTER_XT_MATCH_ESP=m | 409 | CONFIG_NETFILTER_XT_MATCH_ESP=m |
390 | CONFIG_NETFILTER_XT_MATCH_HELPER=m | 410 | # CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set |
411 | # CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set | ||
391 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | 412 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m |
392 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | 413 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m |
393 | CONFIG_NETFILTER_XT_MATCH_MAC=m | 414 | CONFIG_NETFILTER_XT_MATCH_MAC=m |
394 | CONFIG_NETFILTER_XT_MATCH_MARK=m | 415 | CONFIG_NETFILTER_XT_MATCH_MARK=m |
395 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | ||
396 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m | 416 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m |
417 | # CONFIG_NETFILTER_XT_MATCH_OWNER is not set | ||
418 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | ||
397 | CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m | 419 | CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m |
398 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 420 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
399 | # CONFIG_NETFILTER_XT_MATCH_QUOTA is not set | 421 | # CONFIG_NETFILTER_XT_MATCH_QUOTA is not set |
422 | # CONFIG_NETFILTER_XT_MATCH_RATEEST is not set | ||
400 | CONFIG_NETFILTER_XT_MATCH_REALM=m | 423 | CONFIG_NETFILTER_XT_MATCH_REALM=m |
424 | # CONFIG_NETFILTER_XT_MATCH_RECENT is not set | ||
401 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | 425 | CONFIG_NETFILTER_XT_MATCH_SCTP=m |
402 | CONFIG_NETFILTER_XT_MATCH_STATE=m | ||
403 | # CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set | 426 | # CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set |
404 | CONFIG_NETFILTER_XT_MATCH_STRING=m | 427 | CONFIG_NETFILTER_XT_MATCH_STRING=m |
405 | CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | 428 | CONFIG_NETFILTER_XT_MATCH_TCPMSS=m |
429 | # CONFIG_NETFILTER_XT_MATCH_TIME is not set | ||
430 | # CONFIG_NETFILTER_XT_MATCH_U32 is not set | ||
431 | # CONFIG_IP_VS is not set | ||
406 | 432 | ||
407 | # | 433 | # |
408 | # IP: Netfilter Configuration | 434 | # IP: Netfilter Configuration |
409 | # | 435 | # |
410 | CONFIG_IP_NF_CONNTRACK=m | 436 | # CONFIG_NF_DEFRAG_IPV4 is not set |
411 | CONFIG_IP_NF_CT_ACCT=y | ||
412 | CONFIG_IP_NF_CONNTRACK_MARK=y | ||
413 | CONFIG_IP_NF_CONNTRACK_EVENTS=y | ||
414 | CONFIG_IP_NF_CONNTRACK_NETLINK=m | ||
415 | # CONFIG_IP_NF_CT_PROTO_SCTP is not set | ||
416 | CONFIG_IP_NF_FTP=m | ||
417 | CONFIG_IP_NF_IRC=m | ||
418 | CONFIG_IP_NF_NETBIOS_NS=m | ||
419 | CONFIG_IP_NF_TFTP=m | ||
420 | # CONFIG_IP_NF_AMANDA is not set | ||
421 | CONFIG_IP_NF_PPTP=m | ||
422 | CONFIG_IP_NF_H323=m | ||
423 | # CONFIG_IP_NF_SIP is not set | ||
424 | CONFIG_IP_NF_QUEUE=m | 437 | CONFIG_IP_NF_QUEUE=m |
425 | CONFIG_IP_NF_IPTABLES=m | 438 | CONFIG_IP_NF_IPTABLES=m |
426 | CONFIG_IP_NF_MATCH_IPRANGE=m | 439 | CONFIG_IP_NF_MATCH_ADDRTYPE=m |
427 | CONFIG_IP_NF_MATCH_TOS=m | ||
428 | CONFIG_IP_NF_MATCH_RECENT=m | ||
429 | CONFIG_IP_NF_MATCH_ECN=m | ||
430 | CONFIG_IP_NF_MATCH_AH=m | 440 | CONFIG_IP_NF_MATCH_AH=m |
441 | CONFIG_IP_NF_MATCH_ECN=m | ||
431 | CONFIG_IP_NF_MATCH_TTL=m | 442 | CONFIG_IP_NF_MATCH_TTL=m |
432 | CONFIG_IP_NF_MATCH_OWNER=m | ||
433 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | ||
434 | CONFIG_IP_NF_MATCH_HASHLIMIT=m | ||
435 | CONFIG_IP_NF_FILTER=m | 443 | CONFIG_IP_NF_FILTER=m |
436 | CONFIG_IP_NF_TARGET_REJECT=m | 444 | CONFIG_IP_NF_TARGET_REJECT=m |
437 | CONFIG_IP_NF_TARGET_LOG=m | 445 | CONFIG_IP_NF_TARGET_LOG=m |
438 | CONFIG_IP_NF_TARGET_ULOG=m | 446 | CONFIG_IP_NF_TARGET_ULOG=m |
439 | CONFIG_IP_NF_TARGET_TCPMSS=m | ||
440 | CONFIG_IP_NF_NAT=m | ||
441 | CONFIG_IP_NF_NAT_NEEDED=y | ||
442 | CONFIG_IP_NF_TARGET_MASQUERADE=m | ||
443 | CONFIG_IP_NF_TARGET_REDIRECT=m | ||
444 | CONFIG_IP_NF_TARGET_NETMAP=m | ||
445 | CONFIG_IP_NF_TARGET_SAME=m | ||
446 | CONFIG_IP_NF_NAT_SNMP_BASIC=m | ||
447 | CONFIG_IP_NF_NAT_IRC=m | ||
448 | CONFIG_IP_NF_NAT_FTP=m | ||
449 | CONFIG_IP_NF_NAT_TFTP=m | ||
450 | CONFIG_IP_NF_NAT_PPTP=m | ||
451 | CONFIG_IP_NF_NAT_H323=m | ||
452 | CONFIG_IP_NF_MANGLE=m | 447 | CONFIG_IP_NF_MANGLE=m |
453 | CONFIG_IP_NF_TARGET_TOS=m | ||
454 | CONFIG_IP_NF_TARGET_ECN=m | 448 | CONFIG_IP_NF_TARGET_ECN=m |
455 | CONFIG_IP_NF_TARGET_TTL=m | 449 | CONFIG_IP_NF_TARGET_TTL=m |
456 | CONFIG_IP_NF_TARGET_CLUSTERIP=m | ||
457 | CONFIG_IP_NF_RAW=m | 450 | CONFIG_IP_NF_RAW=m |
458 | CONFIG_IP_NF_ARPTABLES=m | 451 | CONFIG_IP_NF_ARPTABLES=m |
459 | CONFIG_IP_NF_ARPFILTER=m | 452 | CONFIG_IP_NF_ARPFILTER=m |
460 | CONFIG_IP_NF_ARP_MANGLE=m | 453 | CONFIG_IP_NF_ARP_MANGLE=m |
461 | 454 | ||
462 | # | 455 | # |
463 | # IPv6: Netfilter Configuration (EXPERIMENTAL) | 456 | # IPv6: Netfilter Configuration |
464 | # | 457 | # |
465 | CONFIG_IP6_NF_QUEUE=m | 458 | CONFIG_IP6_NF_QUEUE=m |
466 | CONFIG_IP6_NF_IPTABLES=m | 459 | CONFIG_IP6_NF_IPTABLES=m |
467 | CONFIG_IP6_NF_MATCH_RT=m | 460 | CONFIG_IP6_NF_MATCH_AH=m |
468 | CONFIG_IP6_NF_MATCH_OPTS=m | 461 | CONFIG_IP6_NF_MATCH_EUI64=m |
469 | CONFIG_IP6_NF_MATCH_FRAG=m | 462 | CONFIG_IP6_NF_MATCH_FRAG=m |
463 | CONFIG_IP6_NF_MATCH_OPTS=m | ||
470 | CONFIG_IP6_NF_MATCH_HL=m | 464 | CONFIG_IP6_NF_MATCH_HL=m |
471 | CONFIG_IP6_NF_MATCH_OWNER=m | ||
472 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m | 465 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m |
473 | CONFIG_IP6_NF_MATCH_AH=m | 466 | # CONFIG_IP6_NF_MATCH_MH is not set |
474 | CONFIG_IP6_NF_MATCH_EUI64=m | 467 | CONFIG_IP6_NF_MATCH_RT=m |
475 | CONFIG_IP6_NF_FILTER=m | ||
476 | CONFIG_IP6_NF_TARGET_LOG=m | 468 | CONFIG_IP6_NF_TARGET_LOG=m |
469 | CONFIG_IP6_NF_FILTER=m | ||
477 | CONFIG_IP6_NF_TARGET_REJECT=m | 470 | CONFIG_IP6_NF_TARGET_REJECT=m |
478 | CONFIG_IP6_NF_MANGLE=m | 471 | CONFIG_IP6_NF_MANGLE=m |
479 | CONFIG_IP6_NF_TARGET_HL=m | 472 | CONFIG_IP6_NF_TARGET_HL=m |
480 | CONFIG_IP6_NF_RAW=m | 473 | CONFIG_IP6_NF_RAW=m |
481 | |||
482 | # | ||
483 | # Bridge: Netfilter Configuration | ||
484 | # | ||
485 | # CONFIG_BRIDGE_NF_EBTABLES is not set | 474 | # CONFIG_BRIDGE_NF_EBTABLES is not set |
486 | |||
487 | # | ||
488 | # DCCP Configuration (EXPERIMENTAL) | ||
489 | # | ||
490 | # CONFIG_IP_DCCP is not set | 475 | # CONFIG_IP_DCCP is not set |
491 | |||
492 | # | ||
493 | # SCTP Configuration (EXPERIMENTAL) | ||
494 | # | ||
495 | # CONFIG_IP_SCTP is not set | 476 | # CONFIG_IP_SCTP is not set |
496 | |||
497 | # | ||
498 | # TIPC Configuration (EXPERIMENTAL) | ||
499 | # | ||
500 | # CONFIG_TIPC is not set | 477 | # CONFIG_TIPC is not set |
501 | # CONFIG_ATM is not set | 478 | # CONFIG_ATM is not set |
479 | CONFIG_STP=y | ||
502 | CONFIG_BRIDGE=y | 480 | CONFIG_BRIDGE=y |
481 | # CONFIG_NET_DSA is not set | ||
503 | CONFIG_VLAN_8021Q=y | 482 | CONFIG_VLAN_8021Q=y |
483 | # CONFIG_VLAN_8021Q_GVRP is not set | ||
504 | # CONFIG_DECNET is not set | 484 | # CONFIG_DECNET is not set |
505 | CONFIG_LLC=y | 485 | CONFIG_LLC=y |
506 | # CONFIG_LLC2 is not set | 486 | # CONFIG_LLC2 is not set |
@@ -510,14 +490,7 @@ CONFIG_LLC=y | |||
510 | # CONFIG_LAPB is not set | 490 | # CONFIG_LAPB is not set |
511 | # CONFIG_ECONET is not set | 491 | # CONFIG_ECONET is not set |
512 | # CONFIG_WAN_ROUTER is not set | 492 | # CONFIG_WAN_ROUTER is not set |
513 | |||
514 | # | ||
515 | # QoS and/or fair queueing | ||
516 | # | ||
517 | CONFIG_NET_SCHED=y | 493 | CONFIG_NET_SCHED=y |
518 | CONFIG_NET_SCH_CLK_JIFFIES=y | ||
519 | # CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set | ||
520 | # CONFIG_NET_SCH_CLK_CPU is not set | ||
521 | 494 | ||
522 | # | 495 | # |
523 | # Queueing/Scheduling | 496 | # Queueing/Scheduling |
@@ -526,6 +499,7 @@ CONFIG_NET_SCH_CBQ=m | |||
526 | CONFIG_NET_SCH_HTB=m | 499 | CONFIG_NET_SCH_HTB=m |
527 | CONFIG_NET_SCH_HFSC=m | 500 | CONFIG_NET_SCH_HFSC=m |
528 | CONFIG_NET_SCH_PRIO=m | 501 | CONFIG_NET_SCH_PRIO=m |
502 | # CONFIG_NET_SCH_MULTIQ is not set | ||
529 | CONFIG_NET_SCH_RED=m | 503 | CONFIG_NET_SCH_RED=m |
530 | CONFIG_NET_SCH_SFQ=m | 504 | CONFIG_NET_SCH_SFQ=m |
531 | CONFIG_NET_SCH_TEQL=m | 505 | CONFIG_NET_SCH_TEQL=m |
@@ -549,6 +523,7 @@ CONFIG_CLS_U32_PERF=y | |||
549 | CONFIG_CLS_U32_MARK=y | 523 | CONFIG_CLS_U32_MARK=y |
550 | CONFIG_NET_CLS_RSVP=m | 524 | CONFIG_NET_CLS_RSVP=m |
551 | CONFIG_NET_CLS_RSVP6=m | 525 | CONFIG_NET_CLS_RSVP6=m |
526 | # CONFIG_NET_CLS_FLOW is not set | ||
552 | CONFIG_NET_EMATCH=y | 527 | CONFIG_NET_EMATCH=y |
553 | CONFIG_NET_EMATCH_STACK=32 | 528 | CONFIG_NET_EMATCH_STACK=32 |
554 | CONFIG_NET_EMATCH_CMP=m | 529 | CONFIG_NET_EMATCH_CMP=m |
@@ -562,27 +537,37 @@ CONFIG_NET_ACT_GACT=m | |||
562 | CONFIG_GACT_PROB=y | 537 | CONFIG_GACT_PROB=y |
563 | CONFIG_NET_ACT_MIRRED=m | 538 | CONFIG_NET_ACT_MIRRED=m |
564 | CONFIG_NET_ACT_IPT=m | 539 | CONFIG_NET_ACT_IPT=m |
540 | # CONFIG_NET_ACT_NAT is not set | ||
565 | CONFIG_NET_ACT_PEDIT=m | 541 | CONFIG_NET_ACT_PEDIT=m |
566 | # CONFIG_NET_ACT_SIMP is not set | 542 | # CONFIG_NET_ACT_SIMP is not set |
543 | # CONFIG_NET_ACT_SKBEDIT is not set | ||
567 | CONFIG_NET_CLS_IND=y | 544 | CONFIG_NET_CLS_IND=y |
568 | CONFIG_NET_ESTIMATOR=y | 545 | CONFIG_NET_SCH_FIFO=y |
569 | 546 | ||
570 | # | 547 | # |
571 | # Network testing | 548 | # Network testing |
572 | # | 549 | # |
573 | # CONFIG_NET_PKTGEN is not set | 550 | # CONFIG_NET_PKTGEN is not set |
574 | # CONFIG_HAMRADIO is not set | 551 | # CONFIG_HAMRADIO is not set |
552 | # CONFIG_CAN is not set | ||
575 | # CONFIG_IRDA is not set | 553 | # CONFIG_IRDA is not set |
576 | # CONFIG_BT is not set | 554 | # CONFIG_BT is not set |
555 | # CONFIG_AF_RXRPC is not set | ||
556 | # CONFIG_PHONET is not set | ||
557 | CONFIG_FIB_RULES=y | ||
558 | CONFIG_WIRELESS=y | ||
559 | # CONFIG_CFG80211 is not set | ||
560 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
561 | CONFIG_WIRELESS_EXT=y | ||
562 | CONFIG_WIRELESS_EXT_SYSFS=y | ||
563 | # CONFIG_MAC80211 is not set | ||
577 | CONFIG_IEEE80211=y | 564 | CONFIG_IEEE80211=y |
578 | # CONFIG_IEEE80211_DEBUG is not set | 565 | # CONFIG_IEEE80211_DEBUG is not set |
579 | CONFIG_IEEE80211_CRYPT_WEP=y | 566 | CONFIG_IEEE80211_CRYPT_WEP=y |
580 | CONFIG_IEEE80211_CRYPT_CCMP=y | 567 | CONFIG_IEEE80211_CRYPT_CCMP=y |
581 | CONFIG_IEEE80211_CRYPT_TKIP=y | 568 | CONFIG_IEEE80211_CRYPT_TKIP=y |
582 | CONFIG_IEEE80211_SOFTMAC=m | 569 | # CONFIG_RFKILL is not set |
583 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | 570 | # CONFIG_NET_9P is not set |
584 | CONFIG_WIRELESS_EXT=y | ||
585 | CONFIG_FIB_RULES=y | ||
586 | 571 | ||
587 | # | 572 | # |
588 | # Device Drivers | 573 | # Device Drivers |
@@ -591,20 +576,16 @@ CONFIG_FIB_RULES=y | |||
591 | # | 576 | # |
592 | # Generic Driver Options | 577 | # Generic Driver Options |
593 | # | 578 | # |
579 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
594 | CONFIG_STANDALONE=y | 580 | CONFIG_STANDALONE=y |
595 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 581 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
596 | CONFIG_FW_LOADER=m | 582 | CONFIG_FW_LOADER=m |
583 | CONFIG_FIRMWARE_IN_KERNEL=y | ||
584 | CONFIG_EXTRA_FIRMWARE="" | ||
597 | # CONFIG_DEBUG_DRIVER is not set | 585 | # CONFIG_DEBUG_DRIVER is not set |
586 | # CONFIG_DEBUG_DEVRES is not set | ||
598 | # CONFIG_SYS_HYPERVISOR is not set | 587 | # CONFIG_SYS_HYPERVISOR is not set |
599 | |||
600 | # | ||
601 | # Connector - unified userspace <-> kernelspace linker | ||
602 | # | ||
603 | CONFIG_CONNECTOR=m | 588 | CONFIG_CONNECTOR=m |
604 | |||
605 | # | ||
606 | # Memory Technology Devices (MTD) | ||
607 | # | ||
608 | CONFIG_MTD=m | 589 | CONFIG_MTD=m |
609 | CONFIG_MTD_DEBUG=y | 590 | CONFIG_MTD_DEBUG=y |
610 | CONFIG_MTD_DEBUG_VERBOSE=0 | 591 | CONFIG_MTD_DEBUG_VERBOSE=0 |
@@ -615,6 +596,7 @@ CONFIG_MTD_DEBUG_VERBOSE=0 | |||
615 | # User Modules And Translation Layers | 596 | # User Modules And Translation Layers |
616 | # | 597 | # |
617 | CONFIG_MTD_CHAR=m | 598 | CONFIG_MTD_CHAR=m |
599 | CONFIG_MTD_BLKDEVS=m | ||
618 | CONFIG_MTD_BLOCK=m | 600 | CONFIG_MTD_BLOCK=m |
619 | # CONFIG_MTD_BLOCK_RO is not set | 601 | # CONFIG_MTD_BLOCK_RO is not set |
620 | CONFIG_FTL=m | 602 | CONFIG_FTL=m |
@@ -623,6 +605,7 @@ CONFIG_NFTL=m | |||
623 | CONFIG_INFTL=m | 605 | CONFIG_INFTL=m |
624 | CONFIG_RFD_FTL=m | 606 | CONFIG_RFD_FTL=m |
625 | # CONFIG_SSFDC is not set | 607 | # CONFIG_SSFDC is not set |
608 | # CONFIG_MTD_OOPS is not set | ||
626 | 609 | ||
627 | # | 610 | # |
628 | # RAM/ROM/Flash chip drivers | 611 | # RAM/ROM/Flash chip drivers |
@@ -644,16 +627,17 @@ CONFIG_MTD_CFI_I2=y | |||
644 | # CONFIG_MTD_CFI_INTELEXT is not set | 627 | # CONFIG_MTD_CFI_INTELEXT is not set |
645 | # CONFIG_MTD_CFI_AMDSTD is not set | 628 | # CONFIG_MTD_CFI_AMDSTD is not set |
646 | # CONFIG_MTD_CFI_STAA is not set | 629 | # CONFIG_MTD_CFI_STAA is not set |
630 | CONFIG_MTD_CFI_UTIL=m | ||
647 | # CONFIG_MTD_RAM is not set | 631 | # CONFIG_MTD_RAM is not set |
648 | # CONFIG_MTD_ROM is not set | 632 | # CONFIG_MTD_ROM is not set |
649 | # CONFIG_MTD_ABSENT is not set | 633 | # CONFIG_MTD_ABSENT is not set |
650 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
651 | 634 | ||
652 | # | 635 | # |
653 | # Mapping drivers for chip access | 636 | # Mapping drivers for chip access |
654 | # | 637 | # |
655 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | 638 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set |
656 | # CONFIG_MTD_PHYSMAP is not set | 639 | # CONFIG_MTD_PHYSMAP is not set |
640 | # CONFIG_MTD_INTEL_VR_NOR is not set | ||
657 | # CONFIG_MTD_PLATRAM is not set | 641 | # CONFIG_MTD_PLATRAM is not set |
658 | 642 | ||
659 | # | 643 | # |
@@ -671,34 +655,23 @@ CONFIG_MTD_CFI_I2=y | |||
671 | # CONFIG_MTD_DOC2000 is not set | 655 | # CONFIG_MTD_DOC2000 is not set |
672 | # CONFIG_MTD_DOC2001 is not set | 656 | # CONFIG_MTD_DOC2001 is not set |
673 | # CONFIG_MTD_DOC2001PLUS is not set | 657 | # CONFIG_MTD_DOC2001PLUS is not set |
674 | |||
675 | # | ||
676 | # NAND Flash Device Drivers | ||
677 | # | ||
678 | CONFIG_MTD_NAND=m | 658 | CONFIG_MTD_NAND=m |
679 | # CONFIG_MTD_NAND_VERIFY_WRITE is not set | 659 | # CONFIG_MTD_NAND_VERIFY_WRITE is not set |
680 | # CONFIG_MTD_NAND_ECC_SMC is not set | 660 | # CONFIG_MTD_NAND_ECC_SMC is not set |
661 | # CONFIG_MTD_NAND_MUSEUM_IDS is not set | ||
681 | CONFIG_MTD_NAND_IDS=m | 662 | CONFIG_MTD_NAND_IDS=m |
682 | # CONFIG_MTD_NAND_DISKONCHIP is not set | 663 | # CONFIG_MTD_NAND_DISKONCHIP is not set |
683 | 664 | # CONFIG_MTD_NAND_CAFE is not set | |
684 | # | 665 | # CONFIG_MTD_NAND_PLATFORM is not set |
685 | # OneNAND Flash Device Drivers | 666 | # CONFIG_MTD_ALAUDA is not set |
686 | # | ||
687 | # CONFIG_MTD_ONENAND is not set | 667 | # CONFIG_MTD_ONENAND is not set |
688 | 668 | ||
689 | # | 669 | # |
690 | # Parallel port support | 670 | # UBI - Unsorted block images |
691 | # | 671 | # |
672 | # CONFIG_MTD_UBI is not set | ||
692 | # CONFIG_PARPORT is not set | 673 | # CONFIG_PARPORT is not set |
693 | 674 | CONFIG_BLK_DEV=y | |
694 | # | ||
695 | # Plug and Play support | ||
696 | # | ||
697 | |||
698 | # | ||
699 | # Block devices | ||
700 | # | ||
701 | # CONFIG_BLK_CPQ_DA is not set | ||
702 | # CONFIG_BLK_CPQ_CISS_DA is not set | 675 | # CONFIG_BLK_CPQ_CISS_DA is not set |
703 | # CONFIG_BLK_DEV_DAC960 is not set | 676 | # CONFIG_BLK_DEV_DAC960 is not set |
704 | # CONFIG_BLK_DEV_UMEM is not set | 677 | # CONFIG_BLK_DEV_UMEM is not set |
@@ -711,20 +684,18 @@ CONFIG_BLK_DEV_CRYPTOLOOP=m | |||
711 | CONFIG_BLK_DEV_RAM=y | 684 | CONFIG_BLK_DEV_RAM=y |
712 | CONFIG_BLK_DEV_RAM_COUNT=16 | 685 | CONFIG_BLK_DEV_RAM_COUNT=16 |
713 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 686 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
714 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 687 | # CONFIG_BLK_DEV_XIP is not set |
715 | CONFIG_BLK_DEV_INITRD=y | ||
716 | # CONFIG_CDROM_PKTCDVD is not set | 688 | # CONFIG_CDROM_PKTCDVD is not set |
717 | CONFIG_ATA_OVER_ETH=m | 689 | CONFIG_ATA_OVER_ETH=m |
718 | 690 | # CONFIG_BLK_DEV_HD is not set | |
719 | # | 691 | CONFIG_MISC_DEVICES=y |
720 | # Misc devices | 692 | # CONFIG_PHANTOM is not set |
721 | # | 693 | # CONFIG_EEPROM_93CX6 is not set |
722 | # CONFIG_SGI_IOC4 is not set | 694 | # CONFIG_SGI_IOC4 is not set |
723 | # CONFIG_TIFM_CORE is not set | 695 | # CONFIG_TIFM_CORE is not set |
724 | 696 | # CONFIG_ENCLOSURE_SERVICES is not set | |
725 | # | 697 | # CONFIG_HP_ILO is not set |
726 | # ATA/ATAPI/MFM/RLL support | 698 | CONFIG_HAVE_IDE=y |
727 | # | ||
728 | # CONFIG_IDE is not set | 699 | # CONFIG_IDE is not set |
729 | 700 | ||
730 | # | 701 | # |
@@ -732,6 +703,8 @@ CONFIG_ATA_OVER_ETH=m | |||
732 | # | 703 | # |
733 | # CONFIG_RAID_ATTRS is not set | 704 | # CONFIG_RAID_ATTRS is not set |
734 | CONFIG_SCSI=y | 705 | CONFIG_SCSI=y |
706 | CONFIG_SCSI_DMA=y | ||
707 | # CONFIG_SCSI_TGT is not set | ||
735 | # CONFIG_SCSI_NETLINK is not set | 708 | # CONFIG_SCSI_NETLINK is not set |
736 | CONFIG_SCSI_PROC_FS=y | 709 | CONFIG_SCSI_PROC_FS=y |
737 | 710 | ||
@@ -752,6 +725,8 @@ CONFIG_CHR_DEV_SG=m | |||
752 | # CONFIG_SCSI_MULTI_LUN is not set | 725 | # CONFIG_SCSI_MULTI_LUN is not set |
753 | # CONFIG_SCSI_CONSTANTS is not set | 726 | # CONFIG_SCSI_CONSTANTS is not set |
754 | # CONFIG_SCSI_LOGGING is not set | 727 | # CONFIG_SCSI_LOGGING is not set |
728 | # CONFIG_SCSI_SCAN_ASYNC is not set | ||
729 | CONFIG_SCSI_WAIT_SCAN=m | ||
755 | 730 | ||
756 | # | 731 | # |
757 | # SCSI Transports | 732 | # SCSI Transports |
@@ -759,12 +734,9 @@ CONFIG_CHR_DEV_SG=m | |||
759 | # CONFIG_SCSI_SPI_ATTRS is not set | 734 | # CONFIG_SCSI_SPI_ATTRS is not set |
760 | # CONFIG_SCSI_FC_ATTRS is not set | 735 | # CONFIG_SCSI_FC_ATTRS is not set |
761 | # CONFIG_SCSI_ISCSI_ATTRS is not set | 736 | # CONFIG_SCSI_ISCSI_ATTRS is not set |
762 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
763 | # CONFIG_SCSI_SAS_LIBSAS is not set | 737 | # CONFIG_SCSI_SAS_LIBSAS is not set |
764 | 738 | # CONFIG_SCSI_SRP_ATTRS is not set | |
765 | # | 739 | CONFIG_SCSI_LOWLEVEL=y |
766 | # SCSI low-level drivers | ||
767 | # | ||
768 | # CONFIG_ISCSI_TCP is not set | 740 | # CONFIG_ISCSI_TCP is not set |
769 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 741 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
770 | # CONFIG_SCSI_3W_9XXX is not set | 742 | # CONFIG_SCSI_3W_9XXX is not set |
@@ -774,7 +746,6 @@ CONFIG_CHR_DEV_SG=m | |||
774 | # CONFIG_SCSI_AIC7XXX_OLD is not set | 746 | # CONFIG_SCSI_AIC7XXX_OLD is not set |
775 | # CONFIG_SCSI_AIC79XX is not set | 747 | # CONFIG_SCSI_AIC79XX is not set |
776 | # CONFIG_SCSI_AIC94XX is not set | 748 | # CONFIG_SCSI_AIC94XX is not set |
777 | # CONFIG_SCSI_DPT_I2O is not set | ||
778 | # CONFIG_SCSI_ARCMSR is not set | 749 | # CONFIG_SCSI_ARCMSR is not set |
779 | # CONFIG_MEGARAID_NEWGEN is not set | 750 | # CONFIG_MEGARAID_NEWGEN is not set |
780 | # CONFIG_MEGARAID_LEGACY is not set | 751 | # CONFIG_MEGARAID_LEGACY is not set |
@@ -785,6 +756,7 @@ CONFIG_CHR_DEV_SG=m | |||
785 | # CONFIG_SCSI_IPS is not set | 756 | # CONFIG_SCSI_IPS is not set |
786 | # CONFIG_SCSI_INITIO is not set | 757 | # CONFIG_SCSI_INITIO is not set |
787 | # CONFIG_SCSI_INIA100 is not set | 758 | # CONFIG_SCSI_INIA100 is not set |
759 | # CONFIG_SCSI_MVSAS is not set | ||
788 | # CONFIG_SCSI_STEX is not set | 760 | # CONFIG_SCSI_STEX is not set |
789 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 761 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
790 | # CONFIG_SCSI_QLOGIC_1280 is not set | 762 | # CONFIG_SCSI_QLOGIC_1280 is not set |
@@ -795,53 +767,31 @@ CONFIG_CHR_DEV_SG=m | |||
795 | # CONFIG_SCSI_DC390T is not set | 767 | # CONFIG_SCSI_DC390T is not set |
796 | # CONFIG_SCSI_NSP32 is not set | 768 | # CONFIG_SCSI_NSP32 is not set |
797 | # CONFIG_SCSI_DEBUG is not set | 769 | # CONFIG_SCSI_DEBUG is not set |
798 | 770 | # CONFIG_SCSI_SRP is not set | |
799 | # | 771 | # CONFIG_SCSI_DH is not set |
800 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
801 | # | ||
802 | # CONFIG_ATA is not set | 772 | # CONFIG_ATA is not set |
803 | |||
804 | # | ||
805 | # Multi-device support (RAID and LVM) | ||
806 | # | ||
807 | # CONFIG_MD is not set | 773 | # CONFIG_MD is not set |
808 | |||
809 | # | ||
810 | # Fusion MPT device support | ||
811 | # | ||
812 | # CONFIG_FUSION is not set | 774 | # CONFIG_FUSION is not set |
813 | # CONFIG_FUSION_SPI is not set | ||
814 | # CONFIG_FUSION_FC is not set | ||
815 | # CONFIG_FUSION_SAS is not set | ||
816 | 775 | ||
817 | # | 776 | # |
818 | # IEEE 1394 (FireWire) support | 777 | # IEEE 1394 (FireWire) support |
819 | # | 778 | # |
820 | # CONFIG_IEEE1394 is not set | ||
821 | 779 | ||
822 | # | 780 | # |
823 | # I2O device support | 781 | # Enable only one of the two stacks, unless you know what you are doing |
824 | # | 782 | # |
783 | # CONFIG_FIREWIRE is not set | ||
784 | # CONFIG_IEEE1394 is not set | ||
825 | # CONFIG_I2O is not set | 785 | # CONFIG_I2O is not set |
826 | |||
827 | # | ||
828 | # Network device support | ||
829 | # | ||
830 | CONFIG_NETDEVICES=y | 786 | CONFIG_NETDEVICES=y |
831 | # CONFIG_IFB is not set | 787 | # CONFIG_IFB is not set |
832 | # CONFIG_DUMMY is not set | 788 | # CONFIG_DUMMY is not set |
833 | # CONFIG_BONDING is not set | 789 | # CONFIG_BONDING is not set |
790 | # CONFIG_MACVLAN is not set | ||
834 | # CONFIG_EQUALIZER is not set | 791 | # CONFIG_EQUALIZER is not set |
835 | CONFIG_TUN=m | 792 | CONFIG_TUN=m |
836 | 793 | # CONFIG_VETH is not set | |
837 | # | ||
838 | # ARCnet devices | ||
839 | # | ||
840 | # CONFIG_ARCNET is not set | 794 | # CONFIG_ARCNET is not set |
841 | |||
842 | # | ||
843 | # PHY device support | ||
844 | # | ||
845 | CONFIG_PHYLIB=m | 795 | CONFIG_PHYLIB=m |
846 | 796 | ||
847 | # | 797 | # |
@@ -854,32 +804,35 @@ CONFIG_LXT_PHY=m | |||
854 | CONFIG_CICADA_PHY=m | 804 | CONFIG_CICADA_PHY=m |
855 | # CONFIG_VITESSE_PHY is not set | 805 | # CONFIG_VITESSE_PHY is not set |
856 | # CONFIG_SMSC_PHY is not set | 806 | # CONFIG_SMSC_PHY is not set |
857 | # CONFIG_FIXED_PHY is not set | 807 | # CONFIG_BROADCOM_PHY is not set |
858 | 808 | # CONFIG_ICPLUS_PHY is not set | |
859 | # | 809 | # CONFIG_REALTEK_PHY is not set |
860 | # Ethernet (10 or 100Mbit) | 810 | # CONFIG_MDIO_BITBANG is not set |
861 | # | ||
862 | CONFIG_NET_ETHERNET=y | 811 | CONFIG_NET_ETHERNET=y |
863 | CONFIG_MII=y | 812 | CONFIG_MII=y |
813 | # CONFIG_AX88796 is not set | ||
864 | # CONFIG_STNIC is not set | 814 | # CONFIG_STNIC is not set |
865 | # CONFIG_HAPPYMEAL is not set | 815 | # CONFIG_HAPPYMEAL is not set |
866 | # CONFIG_SUNGEM is not set | 816 | # CONFIG_SUNGEM is not set |
867 | # CONFIG_CASSINI is not set | 817 | # CONFIG_CASSINI is not set |
868 | # CONFIG_NET_VENDOR_3COM is not set | 818 | # CONFIG_NET_VENDOR_3COM is not set |
869 | # CONFIG_SMC91X is not set | 819 | # CONFIG_SMC91X is not set |
870 | 820 | # CONFIG_SMC911X is not set | |
871 | # | ||
872 | # Tulip family network device support | ||
873 | # | ||
874 | # CONFIG_NET_TULIP is not set | 821 | # CONFIG_NET_TULIP is not set |
875 | # CONFIG_HP100 is not set | 822 | # CONFIG_HP100 is not set |
823 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
824 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
825 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
826 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
827 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
828 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
829 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
876 | CONFIG_NET_PCI=y | 830 | CONFIG_NET_PCI=y |
877 | # CONFIG_PCNET32 is not set | 831 | # CONFIG_PCNET32 is not set |
878 | # CONFIG_AMD8111_ETH is not set | 832 | # CONFIG_AMD8111_ETH is not set |
879 | # CONFIG_ADAPTEC_STARFIRE is not set | 833 | # CONFIG_ADAPTEC_STARFIRE is not set |
880 | # CONFIG_B44 is not set | 834 | # CONFIG_B44 is not set |
881 | # CONFIG_FORCEDETH is not set | 835 | # CONFIG_FORCEDETH is not set |
882 | # CONFIG_DGRS is not set | ||
883 | # CONFIG_EEPRO100 is not set | 836 | # CONFIG_EEPRO100 is not set |
884 | # CONFIG_E100 is not set | 837 | # CONFIG_E100 is not set |
885 | # CONFIG_FEALNX is not set | 838 | # CONFIG_FEALNX is not set |
@@ -891,18 +844,21 @@ CONFIG_8139TOO=y | |||
891 | CONFIG_8139TOO_TUNE_TWISTER=y | 844 | CONFIG_8139TOO_TUNE_TWISTER=y |
892 | # CONFIG_8139TOO_8129 is not set | 845 | # CONFIG_8139TOO_8129 is not set |
893 | CONFIG_8139_OLD_RX_RESET=y | 846 | CONFIG_8139_OLD_RX_RESET=y |
847 | # CONFIG_R6040 is not set | ||
894 | # CONFIG_SIS900 is not set | 848 | # CONFIG_SIS900 is not set |
895 | # CONFIG_EPIC100 is not set | 849 | # CONFIG_EPIC100 is not set |
896 | # CONFIG_SUNDANCE is not set | 850 | # CONFIG_SUNDANCE is not set |
897 | # CONFIG_TLAN is not set | 851 | # CONFIG_TLAN is not set |
898 | # CONFIG_VIA_RHINE is not set | 852 | # CONFIG_VIA_RHINE is not set |
899 | 853 | # CONFIG_SC92031 is not set | |
900 | # | 854 | # CONFIG_ATL2 is not set |
901 | # Ethernet (1000 Mbit) | 855 | CONFIG_NETDEV_1000=y |
902 | # | ||
903 | # CONFIG_ACENIC is not set | 856 | # CONFIG_ACENIC is not set |
904 | # CONFIG_DL2K is not set | 857 | # CONFIG_DL2K is not set |
905 | # CONFIG_E1000 is not set | 858 | # CONFIG_E1000 is not set |
859 | # CONFIG_E1000E is not set | ||
860 | # CONFIG_IP1000 is not set | ||
861 | # CONFIG_IGB is not set | ||
906 | # CONFIG_NS83820 is not set | 862 | # CONFIG_NS83820 is not set |
907 | # CONFIG_HAMACHI is not set | 863 | # CONFIG_HAMACHI is not set |
908 | # CONFIG_YELLOWFIN is not set | 864 | # CONFIG_YELLOWFIN is not set |
@@ -910,63 +866,56 @@ CONFIG_8139_OLD_RX_RESET=y | |||
910 | # CONFIG_SIS190 is not set | 866 | # CONFIG_SIS190 is not set |
911 | # CONFIG_SKGE is not set | 867 | # CONFIG_SKGE is not set |
912 | # CONFIG_SKY2 is not set | 868 | # CONFIG_SKY2 is not set |
913 | # CONFIG_SK98LIN is not set | ||
914 | # CONFIG_VIA_VELOCITY is not set | 869 | # CONFIG_VIA_VELOCITY is not set |
915 | # CONFIG_TIGON3 is not set | 870 | # CONFIG_TIGON3 is not set |
916 | # CONFIG_BNX2 is not set | 871 | # CONFIG_BNX2 is not set |
917 | # CONFIG_QLA3XXX is not set | 872 | # CONFIG_QLA3XXX is not set |
918 | 873 | # CONFIG_ATL1 is not set | |
919 | # | 874 | # CONFIG_ATL1E is not set |
920 | # Ethernet (10000 Mbit) | 875 | # CONFIG_JME is not set |
921 | # | 876 | CONFIG_NETDEV_10000=y |
922 | # CONFIG_CHELSIO_T1 is not set | 877 | # CONFIG_CHELSIO_T1 is not set |
878 | # CONFIG_CHELSIO_T3 is not set | ||
879 | # CONFIG_ENIC is not set | ||
880 | # CONFIG_IXGBE is not set | ||
923 | # CONFIG_IXGB is not set | 881 | # CONFIG_IXGB is not set |
924 | # CONFIG_S2IO is not set | 882 | # CONFIG_S2IO is not set |
925 | # CONFIG_MYRI10GE is not set | 883 | # CONFIG_MYRI10GE is not set |
926 | 884 | # CONFIG_NETXEN_NIC is not set | |
927 | # | 885 | # CONFIG_NIU is not set |
928 | # Token Ring devices | 886 | # CONFIG_MLX4_CORE is not set |
929 | # | 887 | # CONFIG_TEHUTI is not set |
888 | # CONFIG_BNX2X is not set | ||
889 | # CONFIG_QLGE is not set | ||
890 | # CONFIG_SFC is not set | ||
930 | # CONFIG_TR is not set | 891 | # CONFIG_TR is not set |
931 | 892 | ||
932 | # | 893 | # |
933 | # Wireless LAN (non-hamradio) | 894 | # Wireless LAN |
934 | # | ||
935 | CONFIG_NET_RADIO=y | ||
936 | CONFIG_NET_WIRELESS_RTNETLINK=y | ||
937 | |||
938 | # | ||
939 | # Obsolete Wireless cards support (pre-802.11) | ||
940 | # | ||
941 | # CONFIG_STRIP is not set | ||
942 | |||
943 | # | ||
944 | # Wireless 802.11b ISA/PCI cards support | ||
945 | # | ||
946 | # CONFIG_IPW2100 is not set | ||
947 | # CONFIG_IPW2200 is not set | ||
948 | # CONFIG_HERMES is not set | ||
949 | # CONFIG_ATMEL is not set | ||
950 | |||
951 | # | ||
952 | # Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support | ||
953 | # | 895 | # |
954 | CONFIG_PRISM54=m | 896 | # CONFIG_WLAN_PRE80211 is not set |
955 | # CONFIG_USB_ZD1201 is not set | 897 | # CONFIG_WLAN_80211 is not set |
956 | # CONFIG_HOSTAP is not set | 898 | # CONFIG_IWLWIFI_LEDS is not set |
957 | CONFIG_BCM43XX=m | ||
958 | CONFIG_BCM43XX_DEBUG=y | ||
959 | CONFIG_BCM43XX_DMA=y | ||
960 | CONFIG_BCM43XX_PIO=y | ||
961 | CONFIG_BCM43XX_DMA_AND_PIO_MODE=y | ||
962 | # CONFIG_BCM43XX_DMA_MODE is not set | ||
963 | # CONFIG_BCM43XX_PIO_MODE is not set | ||
964 | # CONFIG_ZD1211RW is not set | ||
965 | CONFIG_NET_WIRELESS=y | ||
966 | 899 | ||
967 | # | 900 | # |
968 | # Wan interfaces | 901 | # USB Network Adapters |
969 | # | 902 | # |
903 | CONFIG_USB_CATC=m | ||
904 | CONFIG_USB_KAWETH=m | ||
905 | CONFIG_USB_PEGASUS=m | ||
906 | CONFIG_USB_RTL8150=m | ||
907 | CONFIG_USB_USBNET=m | ||
908 | CONFIG_USB_NET_AX8817X=m | ||
909 | CONFIG_USB_NET_CDCETHER=m | ||
910 | # CONFIG_USB_NET_DM9601 is not set | ||
911 | # CONFIG_USB_NET_SMSC95XX is not set | ||
912 | # CONFIG_USB_NET_GL620A is not set | ||
913 | CONFIG_USB_NET_NET1080=m | ||
914 | CONFIG_USB_NET_PLUSB=m | ||
915 | # CONFIG_USB_NET_MCS7830 is not set | ||
916 | # CONFIG_USB_NET_RNDIS_HOST is not set | ||
917 | # CONFIG_USB_NET_CDC_SUBSET is not set | ||
918 | CONFIG_USB_NET_ZAURUS=m | ||
970 | # CONFIG_WAN is not set | 919 | # CONFIG_WAN is not set |
971 | # CONFIG_FDDI is not set | 920 | # CONFIG_FDDI is not set |
972 | # CONFIG_HIPPI is not set | 921 | # CONFIG_HIPPI is not set |
@@ -979,25 +928,17 @@ CONFIG_PPP_DEFLATE=m | |||
979 | CONFIG_PPP_BSDCOMP=m | 928 | CONFIG_PPP_BSDCOMP=m |
980 | CONFIG_PPP_MPPE=m | 929 | CONFIG_PPP_MPPE=m |
981 | CONFIG_PPPOE=m | 930 | CONFIG_PPPOE=m |
931 | # CONFIG_PPPOL2TP is not set | ||
982 | CONFIG_SLIP=m | 932 | CONFIG_SLIP=m |
983 | CONFIG_SLIP_COMPRESSED=y | 933 | CONFIG_SLIP_COMPRESSED=y |
984 | CONFIG_SLHC=m | 934 | CONFIG_SLHC=m |
985 | CONFIG_SLIP_SMART=y | 935 | CONFIG_SLIP_SMART=y |
986 | # CONFIG_SLIP_MODE_SLIP6 is not set | 936 | # CONFIG_SLIP_MODE_SLIP6 is not set |
987 | # CONFIG_NET_FC is not set | 937 | # CONFIG_NET_FC is not set |
988 | # CONFIG_SHAPER is not set | ||
989 | # CONFIG_NETCONSOLE is not set | 938 | # CONFIG_NETCONSOLE is not set |
990 | # CONFIG_NETPOLL is not set | 939 | # CONFIG_NETPOLL is not set |
991 | # CONFIG_NET_POLL_CONTROLLER is not set | 940 | # CONFIG_NET_POLL_CONTROLLER is not set |
992 | |||
993 | # | ||
994 | # ISDN subsystem | ||
995 | # | ||
996 | # CONFIG_ISDN is not set | 941 | # CONFIG_ISDN is not set |
997 | |||
998 | # | ||
999 | # Telephony Support | ||
1000 | # | ||
1001 | # CONFIG_PHONE is not set | 942 | # CONFIG_PHONE is not set |
1002 | 943 | ||
1003 | # | 944 | # |
@@ -1005,6 +946,7 @@ CONFIG_SLIP_SMART=y | |||
1005 | # | 946 | # |
1006 | CONFIG_INPUT=y | 947 | CONFIG_INPUT=y |
1007 | # CONFIG_INPUT_FF_MEMLESS is not set | 948 | # CONFIG_INPUT_FF_MEMLESS is not set |
949 | # CONFIG_INPUT_POLLDEV is not set | ||
1008 | 950 | ||
1009 | # | 951 | # |
1010 | # Userland interfaces | 952 | # Userland interfaces |
@@ -1014,7 +956,6 @@ CONFIG_INPUT_MOUSEDEV=y | |||
1014 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | 956 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 |
1015 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | 957 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 |
1016 | # CONFIG_INPUT_JOYDEV is not set | 958 | # CONFIG_INPUT_JOYDEV is not set |
1017 | # CONFIG_INPUT_TSDEV is not set | ||
1018 | # CONFIG_INPUT_EVDEV is not set | 959 | # CONFIG_INPUT_EVDEV is not set |
1019 | # CONFIG_INPUT_EVBUG is not set | 960 | # CONFIG_INPUT_EVBUG is not set |
1020 | 961 | ||
@@ -1024,6 +965,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | |||
1024 | # CONFIG_INPUT_KEYBOARD is not set | 965 | # CONFIG_INPUT_KEYBOARD is not set |
1025 | # CONFIG_INPUT_MOUSE is not set | 966 | # CONFIG_INPUT_MOUSE is not set |
1026 | # CONFIG_INPUT_JOYSTICK is not set | 967 | # CONFIG_INPUT_JOYSTICK is not set |
968 | # CONFIG_INPUT_TABLET is not set | ||
1027 | # CONFIG_INPUT_TOUCHSCREEN is not set | 969 | # CONFIG_INPUT_TOUCHSCREEN is not set |
1028 | # CONFIG_INPUT_MISC is not set | 970 | # CONFIG_INPUT_MISC is not set |
1029 | 971 | ||
@@ -1037,10 +979,13 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | |||
1037 | # Character devices | 979 | # Character devices |
1038 | # | 980 | # |
1039 | CONFIG_VT=y | 981 | CONFIG_VT=y |
982 | CONFIG_CONSOLE_TRANSLATIONS=y | ||
1040 | CONFIG_VT_CONSOLE=y | 983 | CONFIG_VT_CONSOLE=y |
1041 | CONFIG_HW_CONSOLE=y | 984 | CONFIG_HW_CONSOLE=y |
1042 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | 985 | # CONFIG_VT_HW_CONSOLE_BINDING is not set |
986 | CONFIG_DEVKMEM=y | ||
1043 | # CONFIG_SERIAL_NONSTANDARD is not set | 987 | # CONFIG_SERIAL_NONSTANDARD is not set |
988 | # CONFIG_NOZOMI is not set | ||
1044 | 989 | ||
1045 | # | 990 | # |
1046 | # Serial drivers | 991 | # Serial drivers |
@@ -1059,15 +1004,36 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
1059 | CONFIG_UNIX98_PTYS=y | 1004 | CONFIG_UNIX98_PTYS=y |
1060 | CONFIG_LEGACY_PTYS=y | 1005 | CONFIG_LEGACY_PTYS=y |
1061 | CONFIG_LEGACY_PTY_COUNT=256 | 1006 | CONFIG_LEGACY_PTY_COUNT=256 |
1062 | |||
1063 | # | ||
1064 | # IPMI | ||
1065 | # | ||
1066 | # CONFIG_IPMI_HANDLER is not set | 1007 | # CONFIG_IPMI_HANDLER is not set |
1067 | 1008 | CONFIG_HW_RANDOM=y | |
1068 | # | 1009 | # CONFIG_R3964 is not set |
1069 | # Watchdog Cards | 1010 | # CONFIG_APPLICOM is not set |
1070 | # | 1011 | # CONFIG_RAW_DRIVER is not set |
1012 | # CONFIG_TCG_TPM is not set | ||
1013 | CONFIG_DEVPORT=y | ||
1014 | # CONFIG_I2C is not set | ||
1015 | # CONFIG_SPI is not set | ||
1016 | # CONFIG_W1 is not set | ||
1017 | # CONFIG_POWER_SUPPLY is not set | ||
1018 | CONFIG_HWMON=y | ||
1019 | # CONFIG_HWMON_VID is not set | ||
1020 | # CONFIG_SENSORS_I5K_AMB is not set | ||
1021 | # CONFIG_SENSORS_F71805F is not set | ||
1022 | # CONFIG_SENSORS_F71882FG is not set | ||
1023 | # CONFIG_SENSORS_IT87 is not set | ||
1024 | # CONFIG_SENSORS_PC87360 is not set | ||
1025 | # CONFIG_SENSORS_PC87427 is not set | ||
1026 | # CONFIG_SENSORS_SIS5595 is not set | ||
1027 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
1028 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
1029 | # CONFIG_SENSORS_VIA686A is not set | ||
1030 | # CONFIG_SENSORS_VT1211 is not set | ||
1031 | # CONFIG_SENSORS_VT8231 is not set | ||
1032 | # CONFIG_SENSORS_W83627HF is not set | ||
1033 | # CONFIG_SENSORS_W83627EHF is not set | ||
1034 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
1035 | # CONFIG_THERMAL is not set | ||
1036 | # CONFIG_THERMAL_HWMON is not set | ||
1071 | CONFIG_WATCHDOG=y | 1037 | CONFIG_WATCHDOG=y |
1072 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 1038 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
1073 | 1039 | ||
@@ -1075,6 +1041,7 @@ CONFIG_WATCHDOG=y | |||
1075 | # Watchdog Device Drivers | 1041 | # Watchdog Device Drivers |
1076 | # | 1042 | # |
1077 | # CONFIG_SOFT_WATCHDOG is not set | 1043 | # CONFIG_SOFT_WATCHDOG is not set |
1044 | # CONFIG_ALIM7101_WDT is not set | ||
1078 | CONFIG_SH_WDT=m | 1045 | CONFIG_SH_WDT=m |
1079 | # CONFIG_SH_WDT_MMAP is not set | 1046 | # CONFIG_SH_WDT_MMAP is not set |
1080 | 1047 | ||
@@ -1088,113 +1055,121 @@ CONFIG_SH_WDT=m | |||
1088 | # USB-based Watchdog Cards | 1055 | # USB-based Watchdog Cards |
1089 | # | 1056 | # |
1090 | # CONFIG_USBPCWATCHDOG is not set | 1057 | # CONFIG_USBPCWATCHDOG is not set |
1091 | CONFIG_HW_RANDOM=y | ||
1092 | # CONFIG_GEN_RTC is not set | ||
1093 | # CONFIG_DTLK is not set | ||
1094 | # CONFIG_R3964 is not set | ||
1095 | # CONFIG_APPLICOM is not set | ||
1096 | 1058 | ||
1097 | # | 1059 | # |
1098 | # Ftape, the floppy tape device driver | 1060 | # Sonics Silicon Backplane |
1099 | # | 1061 | # |
1100 | # CONFIG_DRM is not set | 1062 | CONFIG_SSB_POSSIBLE=y |
1101 | # CONFIG_RAW_DRIVER is not set | 1063 | # CONFIG_SSB is not set |
1102 | |||
1103 | # | ||
1104 | # TPM devices | ||
1105 | # | ||
1106 | # CONFIG_TCG_TPM is not set | ||
1107 | 1064 | ||
1108 | # | 1065 | # |
1109 | # I2C support | 1066 | # Multifunction device drivers |
1110 | # | 1067 | # |
1111 | # CONFIG_I2C is not set | 1068 | # CONFIG_MFD_CORE is not set |
1069 | # CONFIG_MFD_SM501 is not set | ||
1070 | # CONFIG_HTC_PASIC3 is not set | ||
1071 | # CONFIG_MFD_TMIO is not set | ||
1072 | # CONFIG_MFD_WM8400 is not set | ||
1112 | 1073 | ||
1113 | # | 1074 | # |
1114 | # SPI support | 1075 | # Multimedia devices |
1115 | # | 1076 | # |
1116 | # CONFIG_SPI is not set | ||
1117 | # CONFIG_SPI_MASTER is not set | ||
1118 | 1077 | ||
1119 | # | 1078 | # |
1120 | # Dallas's 1-wire bus | 1079 | # Multimedia core support |
1121 | # | 1080 | # |
1122 | # CONFIG_W1 is not set | 1081 | # CONFIG_VIDEO_DEV is not set |
1082 | # CONFIG_DVB_CORE is not set | ||
1083 | # CONFIG_VIDEO_MEDIA is not set | ||
1123 | 1084 | ||
1124 | # | 1085 | # |
1125 | # Hardware Monitoring support | 1086 | # Multimedia drivers |
1126 | # | 1087 | # |
1127 | CONFIG_HWMON=y | 1088 | # CONFIG_DAB is not set |
1128 | # CONFIG_HWMON_VID is not set | ||
1129 | # CONFIG_SENSORS_ABITUGURU is not set | ||
1130 | # CONFIG_SENSORS_F71805F is not set | ||
1131 | # CONFIG_SENSORS_VT1211 is not set | ||
1132 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
1133 | 1089 | ||
1134 | # | 1090 | # |
1135 | # Multimedia devices | 1091 | # Graphics support |
1136 | # | 1092 | # |
1137 | # CONFIG_VIDEO_DEV is not set | 1093 | # CONFIG_DRM is not set |
1094 | # CONFIG_VGASTATE is not set | ||
1095 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
1096 | # CONFIG_FB is not set | ||
1097 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
1138 | 1098 | ||
1139 | # | 1099 | # |
1140 | # Digital Video Broadcasting Devices | 1100 | # Display device support |
1141 | # | 1101 | # |
1142 | # CONFIG_DVB is not set | 1102 | # CONFIG_DISPLAY_SUPPORT is not set |
1143 | # CONFIG_USB_DABUSB is not set | ||
1144 | 1103 | ||
1145 | # | 1104 | # |
1146 | # Graphics support | 1105 | # Console display driver support |
1147 | # | 1106 | # |
1148 | CONFIG_FIRMWARE_EDID=y | 1107 | CONFIG_DUMMY_CONSOLE=y |
1149 | # CONFIG_FB is not set | 1108 | # CONFIG_SOUND is not set |
1109 | CONFIG_HID_SUPPORT=y | ||
1110 | CONFIG_HID=y | ||
1111 | # CONFIG_HID_DEBUG is not set | ||
1112 | # CONFIG_HIDRAW is not set | ||
1150 | 1113 | ||
1151 | # | 1114 | # |
1152 | # Console display driver support | 1115 | # USB Input Devices |
1153 | # | 1116 | # |
1154 | CONFIG_DUMMY_CONSOLE=y | 1117 | # CONFIG_USB_HID is not set |
1155 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 1118 | # CONFIG_HID_PID is not set |
1156 | 1119 | ||
1157 | # | 1120 | # |
1158 | # Sound | 1121 | # USB HID Boot Protocol drivers |
1159 | # | 1122 | # |
1160 | # CONFIG_SOUND is not set | 1123 | # CONFIG_USB_KBD is not set |
1124 | # CONFIG_USB_MOUSE is not set | ||
1161 | 1125 | ||
1162 | # | 1126 | # |
1163 | # USB support | 1127 | # Special HID drivers |
1164 | # | 1128 | # |
1129 | CONFIG_HID_COMPAT=y | ||
1130 | CONFIG_USB_SUPPORT=y | ||
1165 | CONFIG_USB_ARCH_HAS_HCD=y | 1131 | CONFIG_USB_ARCH_HAS_HCD=y |
1166 | CONFIG_USB_ARCH_HAS_OHCI=y | 1132 | CONFIG_USB_ARCH_HAS_OHCI=y |
1167 | CONFIG_USB_ARCH_HAS_EHCI=y | 1133 | CONFIG_USB_ARCH_HAS_EHCI=y |
1168 | CONFIG_USB=y | 1134 | CONFIG_USB=y |
1169 | # CONFIG_USB_DEBUG is not set | 1135 | # CONFIG_USB_DEBUG is not set |
1136 | # CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set | ||
1170 | 1137 | ||
1171 | # | 1138 | # |
1172 | # Miscellaneous USB options | 1139 | # Miscellaneous USB options |
1173 | # | 1140 | # |
1174 | CONFIG_USB_DEVICEFS=y | 1141 | CONFIG_USB_DEVICEFS=y |
1175 | # CONFIG_USB_BANDWIDTH is not set | 1142 | CONFIG_USB_DEVICE_CLASS=y |
1176 | # CONFIG_USB_DYNAMIC_MINORS is not set | 1143 | # CONFIG_USB_DYNAMIC_MINORS is not set |
1177 | # CONFIG_USB_OTG is not set | 1144 | # CONFIG_USB_OTG is not set |
1145 | # CONFIG_USB_OTG_WHITELIST is not set | ||
1146 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | ||
1147 | CONFIG_USB_MON=y | ||
1178 | 1148 | ||
1179 | # | 1149 | # |
1180 | # USB Host Controller Drivers | 1150 | # USB Host Controller Drivers |
1181 | # | 1151 | # |
1152 | # CONFIG_USB_C67X00_HCD is not set | ||
1182 | CONFIG_USB_EHCI_HCD=y | 1153 | CONFIG_USB_EHCI_HCD=y |
1183 | CONFIG_USB_EHCI_SPLIT_ISO=y | ||
1184 | CONFIG_USB_EHCI_ROOT_HUB_TT=y | 1154 | CONFIG_USB_EHCI_ROOT_HUB_TT=y |
1185 | CONFIG_USB_EHCI_TT_NEWSCHED=y | 1155 | CONFIG_USB_EHCI_TT_NEWSCHED=y |
1186 | # CONFIG_USB_ISP116X_HCD is not set | 1156 | # CONFIG_USB_ISP116X_HCD is not set |
1157 | # CONFIG_USB_ISP1760_HCD is not set | ||
1187 | CONFIG_USB_OHCI_HCD=y | 1158 | CONFIG_USB_OHCI_HCD=y |
1188 | # CONFIG_USB_OHCI_BIG_ENDIAN is not set | 1159 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set |
1160 | # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set | ||
1189 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y | 1161 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y |
1190 | # CONFIG_USB_UHCI_HCD is not set | 1162 | # CONFIG_USB_UHCI_HCD is not set |
1191 | # CONFIG_USB_SL811_HCD is not set | 1163 | # CONFIG_USB_SL811_HCD is not set |
1164 | # CONFIG_USB_R8A66597_HCD is not set | ||
1192 | 1165 | ||
1193 | # | 1166 | # |
1194 | # USB Device Class drivers | 1167 | # USB Device Class drivers |
1195 | # | 1168 | # |
1196 | CONFIG_USB_ACM=m | 1169 | CONFIG_USB_ACM=m |
1197 | CONFIG_USB_PRINTER=m | 1170 | CONFIG_USB_PRINTER=m |
1171 | # CONFIG_USB_WDM is not set | ||
1172 | # CONFIG_USB_TMC is not set | ||
1198 | 1173 | ||
1199 | # | 1174 | # |
1200 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 1175 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -1207,76 +1182,34 @@ CONFIG_USB_STORAGE=y | |||
1207 | # CONFIG_USB_STORAGE_DEBUG is not set | 1182 | # CONFIG_USB_STORAGE_DEBUG is not set |
1208 | # CONFIG_USB_STORAGE_DATAFAB is not set | 1183 | # CONFIG_USB_STORAGE_DATAFAB is not set |
1209 | # CONFIG_USB_STORAGE_FREECOM is not set | 1184 | # CONFIG_USB_STORAGE_FREECOM is not set |
1185 | # CONFIG_USB_STORAGE_ISD200 is not set | ||
1210 | # CONFIG_USB_STORAGE_DPCM is not set | 1186 | # CONFIG_USB_STORAGE_DPCM is not set |
1211 | # CONFIG_USB_STORAGE_USBAT is not set | 1187 | # CONFIG_USB_STORAGE_USBAT is not set |
1212 | # CONFIG_USB_STORAGE_SDDR09 is not set | 1188 | # CONFIG_USB_STORAGE_SDDR09 is not set |
1213 | # CONFIG_USB_STORAGE_SDDR55 is not set | 1189 | # CONFIG_USB_STORAGE_SDDR55 is not set |
1214 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | 1190 | # CONFIG_USB_STORAGE_JUMPSHOT is not set |
1215 | # CONFIG_USB_STORAGE_ALAUDA is not set | 1191 | # CONFIG_USB_STORAGE_ALAUDA is not set |
1192 | # CONFIG_USB_STORAGE_ONETOUCH is not set | ||
1216 | # CONFIG_USB_STORAGE_KARMA is not set | 1193 | # CONFIG_USB_STORAGE_KARMA is not set |
1194 | # CONFIG_USB_STORAGE_CYPRESS_ATACB is not set | ||
1217 | # CONFIG_USB_LIBUSUAL is not set | 1195 | # CONFIG_USB_LIBUSUAL is not set |
1218 | 1196 | ||
1219 | # | 1197 | # |
1220 | # USB Input Devices | ||
1221 | # | ||
1222 | # CONFIG_USB_HID is not set | ||
1223 | |||
1224 | # | ||
1225 | # USB HID Boot Protocol drivers | ||
1226 | # | ||
1227 | # CONFIG_USB_KBD is not set | ||
1228 | # CONFIG_USB_MOUSE is not set | ||
1229 | # CONFIG_USB_AIPTEK is not set | ||
1230 | # CONFIG_USB_WACOM is not set | ||
1231 | # CONFIG_USB_ACECAD is not set | ||
1232 | # CONFIG_USB_KBTAB is not set | ||
1233 | # CONFIG_USB_POWERMATE is not set | ||
1234 | # CONFIG_USB_TOUCHSCREEN is not set | ||
1235 | # CONFIG_USB_YEALINK is not set | ||
1236 | # CONFIG_USB_XPAD is not set | ||
1237 | # CONFIG_USB_ATI_REMOTE is not set | ||
1238 | # CONFIG_USB_ATI_REMOTE2 is not set | ||
1239 | # CONFIG_USB_KEYSPAN_REMOTE is not set | ||
1240 | # CONFIG_USB_APPLETOUCH is not set | ||
1241 | |||
1242 | # | ||
1243 | # USB Imaging devices | 1198 | # USB Imaging devices |
1244 | # | 1199 | # |
1245 | # CONFIG_USB_MDC800 is not set | 1200 | # CONFIG_USB_MDC800 is not set |
1246 | # CONFIG_USB_MICROTEK is not set | 1201 | # CONFIG_USB_MICROTEK is not set |
1247 | 1202 | ||
1248 | # | 1203 | # |
1249 | # USB Network Adapters | ||
1250 | # | ||
1251 | CONFIG_USB_CATC=m | ||
1252 | CONFIG_USB_KAWETH=m | ||
1253 | CONFIG_USB_PEGASUS=m | ||
1254 | CONFIG_USB_RTL8150=m | ||
1255 | CONFIG_USB_USBNET=m | ||
1256 | CONFIG_USB_NET_AX8817X=m | ||
1257 | CONFIG_USB_NET_CDCETHER=m | ||
1258 | # CONFIG_USB_NET_GL620A is not set | ||
1259 | CONFIG_USB_NET_NET1080=m | ||
1260 | CONFIG_USB_NET_PLUSB=m | ||
1261 | # CONFIG_USB_NET_MCS7830 is not set | ||
1262 | # CONFIG_USB_NET_RNDIS_HOST is not set | ||
1263 | # CONFIG_USB_NET_CDC_SUBSET is not set | ||
1264 | CONFIG_USB_NET_ZAURUS=m | ||
1265 | CONFIG_USB_MON=y | ||
1266 | |||
1267 | # | ||
1268 | # USB port drivers | 1204 | # USB port drivers |
1269 | # | 1205 | # |
1270 | |||
1271 | # | ||
1272 | # USB Serial Converter support | ||
1273 | # | ||
1274 | CONFIG_USB_SERIAL=m | 1206 | CONFIG_USB_SERIAL=m |
1207 | # CONFIG_USB_EZUSB is not set | ||
1275 | CONFIG_USB_SERIAL_GENERIC=y | 1208 | CONFIG_USB_SERIAL_GENERIC=y |
1276 | # CONFIG_USB_SERIAL_AIRCABLE is not set | 1209 | # CONFIG_USB_SERIAL_AIRCABLE is not set |
1277 | # CONFIG_USB_SERIAL_AIRPRIME is not set | ||
1278 | CONFIG_USB_SERIAL_ARK3116=m | 1210 | CONFIG_USB_SERIAL_ARK3116=m |
1279 | # CONFIG_USB_SERIAL_BELKIN is not set | 1211 | # CONFIG_USB_SERIAL_BELKIN is not set |
1212 | # CONFIG_USB_SERIAL_CH341 is not set | ||
1280 | # CONFIG_USB_SERIAL_WHITEHEAT is not set | 1213 | # CONFIG_USB_SERIAL_WHITEHEAT is not set |
1281 | # CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set | 1214 | # CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set |
1282 | # CONFIG_USB_SERIAL_CP2101 is not set | 1215 | # CONFIG_USB_SERIAL_CP2101 is not set |
@@ -1291,6 +1224,7 @@ CONFIG_USB_SERIAL_ARK3116=m | |||
1291 | # CONFIG_USB_SERIAL_EDGEPORT_TI is not set | 1224 | # CONFIG_USB_SERIAL_EDGEPORT_TI is not set |
1292 | # CONFIG_USB_SERIAL_GARMIN is not set | 1225 | # CONFIG_USB_SERIAL_GARMIN is not set |
1293 | # CONFIG_USB_SERIAL_IPW is not set | 1226 | # CONFIG_USB_SERIAL_IPW is not set |
1227 | # CONFIG_USB_SERIAL_IUU is not set | ||
1294 | # CONFIG_USB_SERIAL_KEYSPAN_PDA is not set | 1228 | # CONFIG_USB_SERIAL_KEYSPAN_PDA is not set |
1295 | # CONFIG_USB_SERIAL_KEYSPAN is not set | 1229 | # CONFIG_USB_SERIAL_KEYSPAN is not set |
1296 | # CONFIG_USB_SERIAL_KLSI is not set | 1230 | # CONFIG_USB_SERIAL_KLSI is not set |
@@ -1298,8 +1232,11 @@ CONFIG_USB_SERIAL_ARK3116=m | |||
1298 | # CONFIG_USB_SERIAL_MCT_U232 is not set | 1232 | # CONFIG_USB_SERIAL_MCT_U232 is not set |
1299 | # CONFIG_USB_SERIAL_MOS7720 is not set | 1233 | # CONFIG_USB_SERIAL_MOS7720 is not set |
1300 | # CONFIG_USB_SERIAL_MOS7840 is not set | 1234 | # CONFIG_USB_SERIAL_MOS7840 is not set |
1235 | # CONFIG_USB_SERIAL_MOTOROLA is not set | ||
1301 | # CONFIG_USB_SERIAL_NAVMAN is not set | 1236 | # CONFIG_USB_SERIAL_NAVMAN is not set |
1302 | CONFIG_USB_SERIAL_PL2303=m | 1237 | CONFIG_USB_SERIAL_PL2303=m |
1238 | # CONFIG_USB_SERIAL_OTI6858 is not set | ||
1239 | # CONFIG_USB_SERIAL_SPCP8X5 is not set | ||
1303 | # CONFIG_USB_SERIAL_HP4X is not set | 1240 | # CONFIG_USB_SERIAL_HP4X is not set |
1304 | # CONFIG_USB_SERIAL_SAFE is not set | 1241 | # CONFIG_USB_SERIAL_SAFE is not set |
1305 | # CONFIG_USB_SERIAL_SIERRAWIRELESS is not set | 1242 | # CONFIG_USB_SERIAL_SIERRAWIRELESS is not set |
@@ -1308,6 +1245,7 @@ CONFIG_USB_SERIAL_PL2303=m | |||
1308 | # CONFIG_USB_SERIAL_XIRCOM is not set | 1245 | # CONFIG_USB_SERIAL_XIRCOM is not set |
1309 | # CONFIG_USB_SERIAL_OPTION is not set | 1246 | # CONFIG_USB_SERIAL_OPTION is not set |
1310 | # CONFIG_USB_SERIAL_OMNINET is not set | 1247 | # CONFIG_USB_SERIAL_OMNINET is not set |
1248 | # CONFIG_USB_SERIAL_DEBUG is not set | ||
1311 | 1249 | ||
1312 | # | 1250 | # |
1313 | # USB Miscellaneous drivers | 1251 | # USB Miscellaneous drivers |
@@ -1315,10 +1253,11 @@ CONFIG_USB_SERIAL_PL2303=m | |||
1315 | # CONFIG_USB_EMI62 is not set | 1253 | # CONFIG_USB_EMI62 is not set |
1316 | # CONFIG_USB_EMI26 is not set | 1254 | # CONFIG_USB_EMI26 is not set |
1317 | # CONFIG_USB_ADUTUX is not set | 1255 | # CONFIG_USB_ADUTUX is not set |
1318 | # CONFIG_USB_AUERSWALD is not set | 1256 | # CONFIG_USB_SEVSEG is not set |
1319 | # CONFIG_USB_RIO500 is not set | 1257 | # CONFIG_USB_RIO500 is not set |
1320 | # CONFIG_USB_LEGOTOWER is not set | 1258 | # CONFIG_USB_LEGOTOWER is not set |
1321 | # CONFIG_USB_LCD is not set | 1259 | # CONFIG_USB_LCD is not set |
1260 | # CONFIG_USB_BERRY_CHARGE is not set | ||
1322 | # CONFIG_USB_LED is not set | 1261 | # CONFIG_USB_LED is not set |
1323 | # CONFIG_USB_CYPRESS_CY7C63 is not set | 1262 | # CONFIG_USB_CYPRESS_CY7C63 is not set |
1324 | # CONFIG_USB_CYTHERM is not set | 1263 | # CONFIG_USB_CYTHERM is not set |
@@ -1329,80 +1268,53 @@ CONFIG_USB_SERIAL_PL2303=m | |||
1329 | # CONFIG_USB_SISUSBVGA is not set | 1268 | # CONFIG_USB_SISUSBVGA is not set |
1330 | # CONFIG_USB_LD is not set | 1269 | # CONFIG_USB_LD is not set |
1331 | # CONFIG_USB_TRANCEVIBRATOR is not set | 1270 | # CONFIG_USB_TRANCEVIBRATOR is not set |
1271 | # CONFIG_USB_IOWARRIOR is not set | ||
1332 | # CONFIG_USB_TEST is not set | 1272 | # CONFIG_USB_TEST is not set |
1333 | 1273 | # CONFIG_USB_ISIGHTFW is not set | |
1334 | # | 1274 | # CONFIG_USB_VST is not set |
1335 | # USB DSL modem support | ||
1336 | # | ||
1337 | |||
1338 | # | ||
1339 | # USB Gadget Support | ||
1340 | # | ||
1341 | # CONFIG_USB_GADGET is not set | 1275 | # CONFIG_USB_GADGET is not set |
1342 | |||
1343 | # | ||
1344 | # MMC/SD Card support | ||
1345 | # | ||
1346 | # CONFIG_MMC is not set | 1276 | # CONFIG_MMC is not set |
1347 | 1277 | # CONFIG_MEMSTICK is not set | |
1348 | # | ||
1349 | # LED devices | ||
1350 | # | ||
1351 | # CONFIG_NEW_LEDS is not set | 1278 | # CONFIG_NEW_LEDS is not set |
1352 | 1279 | # CONFIG_ACCESSIBILITY is not set | |
1353 | # | ||
1354 | # LED drivers | ||
1355 | # | ||
1356 | |||
1357 | # | ||
1358 | # LED Triggers | ||
1359 | # | ||
1360 | |||
1361 | # | ||
1362 | # InfiniBand support | ||
1363 | # | ||
1364 | # CONFIG_INFINIBAND is not set | 1280 | # CONFIG_INFINIBAND is not set |
1365 | |||
1366 | # | ||
1367 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
1368 | # | ||
1369 | |||
1370 | # | ||
1371 | # Real Time Clock | ||
1372 | # | ||
1373 | CONFIG_RTC_LIB=m | 1281 | CONFIG_RTC_LIB=m |
1374 | CONFIG_RTC_CLASS=m | 1282 | CONFIG_RTC_CLASS=m |
1375 | 1283 | ||
1376 | # | 1284 | # |
1377 | # RTC interfaces | 1285 | # RTC interfaces |
1378 | # | 1286 | # |
1379 | CONFIG_RTC_INTF_SYSFS=m | 1287 | CONFIG_RTC_INTF_SYSFS=y |
1380 | CONFIG_RTC_INTF_PROC=m | 1288 | CONFIG_RTC_INTF_PROC=y |
1381 | CONFIG_RTC_INTF_DEV=m | 1289 | CONFIG_RTC_INTF_DEV=y |
1382 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | 1290 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set |
1383 | |||
1384 | # | ||
1385 | # RTC drivers | ||
1386 | # | ||
1387 | # CONFIG_RTC_DRV_DS1553 is not set | ||
1388 | # CONFIG_RTC_DRV_DS1742 is not set | ||
1389 | # CONFIG_RTC_DRV_M48T86 is not set | ||
1390 | CONFIG_RTC_DRV_SH=m | ||
1391 | # CONFIG_RTC_DRV_TEST is not set | 1291 | # CONFIG_RTC_DRV_TEST is not set |
1392 | # CONFIG_RTC_DRV_V3020 is not set | ||
1393 | 1292 | ||
1394 | # | 1293 | # |
1395 | # DMA Engine support | 1294 | # SPI RTC drivers |
1396 | # | 1295 | # |
1397 | # CONFIG_DMA_ENGINE is not set | ||
1398 | 1296 | ||
1399 | # | 1297 | # |
1400 | # DMA Clients | 1298 | # Platform RTC drivers |
1401 | # | 1299 | # |
1300 | # CONFIG_RTC_DRV_DS1286 is not set | ||
1301 | # CONFIG_RTC_DRV_DS1511 is not set | ||
1302 | # CONFIG_RTC_DRV_DS1553 is not set | ||
1303 | # CONFIG_RTC_DRV_DS1742 is not set | ||
1304 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
1305 | # CONFIG_RTC_DRV_M48T86 is not set | ||
1306 | # CONFIG_RTC_DRV_M48T35 is not set | ||
1307 | # CONFIG_RTC_DRV_M48T59 is not set | ||
1308 | # CONFIG_RTC_DRV_BQ4802 is not set | ||
1309 | # CONFIG_RTC_DRV_V3020 is not set | ||
1402 | 1310 | ||
1403 | # | 1311 | # |
1404 | # DMA Devices | 1312 | # on-CPU RTC drivers |
1405 | # | 1313 | # |
1314 | CONFIG_RTC_DRV_SH=m | ||
1315 | # CONFIG_DMADEVICES is not set | ||
1316 | # CONFIG_UIO is not set | ||
1317 | # CONFIG_STAGING is not set | ||
1406 | 1318 | ||
1407 | # | 1319 | # |
1408 | # File systems | 1320 | # File systems |
@@ -1412,31 +1324,25 @@ CONFIG_EXT2_FS=y | |||
1412 | # CONFIG_EXT2_FS_XIP is not set | 1324 | # CONFIG_EXT2_FS_XIP is not set |
1413 | CONFIG_EXT3_FS=y | 1325 | CONFIG_EXT3_FS=y |
1414 | # CONFIG_EXT3_FS_XATTR is not set | 1326 | # CONFIG_EXT3_FS_XATTR is not set |
1415 | CONFIG_EXT4DEV_FS=m | 1327 | # CONFIG_EXT4_FS is not set |
1416 | # CONFIG_EXT4DEV_FS_XATTR is not set | ||
1417 | CONFIG_JBD=y | 1328 | CONFIG_JBD=y |
1418 | # CONFIG_JBD_DEBUG is not set | ||
1419 | CONFIG_JBD2=m | ||
1420 | # CONFIG_JBD2_DEBUG is not set | ||
1421 | CONFIG_REISERFS_FS=m | 1329 | CONFIG_REISERFS_FS=m |
1422 | # CONFIG_REISERFS_CHECK is not set | 1330 | # CONFIG_REISERFS_CHECK is not set |
1423 | # CONFIG_REISERFS_PROC_INFO is not set | 1331 | # CONFIG_REISERFS_PROC_INFO is not set |
1424 | # CONFIG_REISERFS_FS_XATTR is not set | 1332 | # CONFIG_REISERFS_FS_XATTR is not set |
1425 | # CONFIG_JFS_FS is not set | 1333 | # CONFIG_JFS_FS is not set |
1426 | # CONFIG_FS_POSIX_ACL is not set | 1334 | # CONFIG_FS_POSIX_ACL is not set |
1335 | CONFIG_FILE_LOCKING=y | ||
1427 | CONFIG_XFS_FS=m | 1336 | CONFIG_XFS_FS=m |
1428 | # CONFIG_XFS_QUOTA is not set | 1337 | # CONFIG_XFS_QUOTA is not set |
1429 | # CONFIG_XFS_SECURITY is not set | ||
1430 | # CONFIG_XFS_POSIX_ACL is not set | 1338 | # CONFIG_XFS_POSIX_ACL is not set |
1431 | # CONFIG_XFS_RT is not set | 1339 | # CONFIG_XFS_RT is not set |
1432 | # CONFIG_GFS2_FS is not set | 1340 | # CONFIG_XFS_DEBUG is not set |
1433 | # CONFIG_OCFS2_FS is not set | 1341 | # CONFIG_OCFS2_FS is not set |
1434 | # CONFIG_MINIX_FS is not set | 1342 | CONFIG_DNOTIFY=y |
1435 | CONFIG_ROMFS_FS=y | ||
1436 | CONFIG_INOTIFY=y | 1343 | CONFIG_INOTIFY=y |
1437 | CONFIG_INOTIFY_USER=y | 1344 | CONFIG_INOTIFY_USER=y |
1438 | # CONFIG_QUOTA is not set | 1345 | # CONFIG_QUOTA is not set |
1439 | CONFIG_DNOTIFY=y | ||
1440 | # CONFIG_AUTOFS_FS is not set | 1346 | # CONFIG_AUTOFS_FS is not set |
1441 | # CONFIG_AUTOFS4_FS is not set | 1347 | # CONFIG_AUTOFS4_FS is not set |
1442 | CONFIG_FUSE_FS=m | 1348 | CONFIG_FUSE_FS=m |
@@ -1447,7 +1353,6 @@ CONFIG_FUSE_FS=m | |||
1447 | CONFIG_ISO9660_FS=m | 1353 | CONFIG_ISO9660_FS=m |
1448 | CONFIG_JOLIET=y | 1354 | CONFIG_JOLIET=y |
1449 | CONFIG_ZISOFS=y | 1355 | CONFIG_ZISOFS=y |
1450 | CONFIG_ZISOFS_FS=m | ||
1451 | CONFIG_UDF_FS=m | 1356 | CONFIG_UDF_FS=m |
1452 | CONFIG_UDF_NLS=y | 1357 | CONFIG_UDF_NLS=y |
1453 | 1358 | ||
@@ -1467,12 +1372,12 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
1467 | CONFIG_PROC_FS=y | 1372 | CONFIG_PROC_FS=y |
1468 | CONFIG_PROC_KCORE=y | 1373 | CONFIG_PROC_KCORE=y |
1469 | CONFIG_PROC_SYSCTL=y | 1374 | CONFIG_PROC_SYSCTL=y |
1375 | CONFIG_PROC_PAGE_MONITOR=y | ||
1470 | CONFIG_SYSFS=y | 1376 | CONFIG_SYSFS=y |
1471 | CONFIG_TMPFS=y | 1377 | CONFIG_TMPFS=y |
1472 | # CONFIG_TMPFS_POSIX_ACL is not set | 1378 | # CONFIG_TMPFS_POSIX_ACL is not set |
1473 | # CONFIG_HUGETLBFS is not set | 1379 | # CONFIG_HUGETLBFS is not set |
1474 | # CONFIG_HUGETLB_PAGE is not set | 1380 | # CONFIG_HUGETLB_PAGE is not set |
1475 | CONFIG_RAMFS=y | ||
1476 | CONFIG_CONFIGFS_FS=m | 1381 | CONFIG_CONFIGFS_FS=m |
1477 | 1382 | ||
1478 | # | 1383 | # |
@@ -1485,34 +1390,32 @@ CONFIG_CONFIGFS_FS=m | |||
1485 | # CONFIG_BEFS_FS is not set | 1390 | # CONFIG_BEFS_FS is not set |
1486 | # CONFIG_BFS_FS is not set | 1391 | # CONFIG_BFS_FS is not set |
1487 | # CONFIG_EFS_FS is not set | 1392 | # CONFIG_EFS_FS is not set |
1488 | # CONFIG_JFFS_FS is not set | ||
1489 | # CONFIG_JFFS2_FS is not set | 1393 | # CONFIG_JFFS2_FS is not set |
1490 | # CONFIG_CRAMFS is not set | 1394 | # CONFIG_CRAMFS is not set |
1491 | # CONFIG_VXFS_FS is not set | 1395 | # CONFIG_VXFS_FS is not set |
1396 | # CONFIG_MINIX_FS is not set | ||
1397 | # CONFIG_OMFS_FS is not set | ||
1492 | # CONFIG_HPFS_FS is not set | 1398 | # CONFIG_HPFS_FS is not set |
1493 | # CONFIG_QNX4FS_FS is not set | 1399 | # CONFIG_QNX4FS_FS is not set |
1400 | CONFIG_ROMFS_FS=y | ||
1494 | # CONFIG_SYSV_FS is not set | 1401 | # CONFIG_SYSV_FS is not set |
1495 | # CONFIG_UFS_FS is not set | 1402 | # CONFIG_UFS_FS is not set |
1496 | 1403 | CONFIG_NETWORK_FILESYSTEMS=y | |
1497 | # | ||
1498 | # Network File Systems | ||
1499 | # | ||
1500 | CONFIG_NFS_FS=y | 1404 | CONFIG_NFS_FS=y |
1501 | CONFIG_NFS_V3=y | 1405 | CONFIG_NFS_V3=y |
1502 | # CONFIG_NFS_V3_ACL is not set | 1406 | # CONFIG_NFS_V3_ACL is not set |
1503 | # CONFIG_NFS_V4 is not set | 1407 | # CONFIG_NFS_V4 is not set |
1504 | # CONFIG_NFS_DIRECTIO is not set | 1408 | CONFIG_ROOT_NFS=y |
1505 | CONFIG_NFSD=y | 1409 | CONFIG_NFSD=y |
1506 | CONFIG_NFSD_V3=y | 1410 | CONFIG_NFSD_V3=y |
1507 | # CONFIG_NFSD_V3_ACL is not set | 1411 | # CONFIG_NFSD_V3_ACL is not set |
1508 | # CONFIG_NFSD_V4 is not set | 1412 | # CONFIG_NFSD_V4 is not set |
1509 | CONFIG_NFSD_TCP=y | ||
1510 | CONFIG_ROOT_NFS=y | ||
1511 | CONFIG_LOCKD=y | 1413 | CONFIG_LOCKD=y |
1512 | CONFIG_LOCKD_V4=y | 1414 | CONFIG_LOCKD_V4=y |
1513 | CONFIG_EXPORTFS=y | 1415 | CONFIG_EXPORTFS=y |
1514 | CONFIG_NFS_COMMON=y | 1416 | CONFIG_NFS_COMMON=y |
1515 | CONFIG_SUNRPC=y | 1417 | CONFIG_SUNRPC=y |
1418 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
1516 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 1419 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
1517 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1420 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1518 | CONFIG_SMB_FS=m | 1421 | CONFIG_SMB_FS=m |
@@ -1526,7 +1429,6 @@ CONFIG_CIFS_WEAK_PW_HASH=y | |||
1526 | # CONFIG_NCP_FS is not set | 1429 | # CONFIG_NCP_FS is not set |
1527 | # CONFIG_CODA_FS is not set | 1430 | # CONFIG_CODA_FS is not set |
1528 | # CONFIG_AFS_FS is not set | 1431 | # CONFIG_AFS_FS is not set |
1529 | CONFIG_9P_FS=m | ||
1530 | 1432 | ||
1531 | # | 1433 | # |
1532 | # Partition Types | 1434 | # Partition Types |
@@ -1548,10 +1450,7 @@ CONFIG_MSDOS_PARTITION=y | |||
1548 | # CONFIG_SUN_PARTITION is not set | 1450 | # CONFIG_SUN_PARTITION is not set |
1549 | # CONFIG_KARMA_PARTITION is not set | 1451 | # CONFIG_KARMA_PARTITION is not set |
1550 | # CONFIG_EFI_PARTITION is not set | 1452 | # CONFIG_EFI_PARTITION is not set |
1551 | 1453 | # CONFIG_SYSV68_PARTITION is not set | |
1552 | # | ||
1553 | # Native Language Support | ||
1554 | # | ||
1555 | CONFIG_NLS=m | 1454 | CONFIG_NLS=m |
1556 | CONFIG_NLS_DEFAULT="iso8859-1" | 1455 | CONFIG_NLS_DEFAULT="iso8859-1" |
1557 | CONFIG_NLS_CODEPAGE_437=m | 1456 | CONFIG_NLS_CODEPAGE_437=m |
@@ -1592,101 +1491,180 @@ CONFIG_NLS_ISO8859_1=m | |||
1592 | # CONFIG_NLS_KOI8_R is not set | 1491 | # CONFIG_NLS_KOI8_R is not set |
1593 | # CONFIG_NLS_KOI8_U is not set | 1492 | # CONFIG_NLS_KOI8_U is not set |
1594 | CONFIG_NLS_UTF8=m | 1493 | CONFIG_NLS_UTF8=m |
1595 | 1494 | # CONFIG_DLM is not set | |
1596 | # | ||
1597 | # Profiling support | ||
1598 | # | ||
1599 | # CONFIG_PROFILING is not set | ||
1600 | 1495 | ||
1601 | # | 1496 | # |
1602 | # Kernel hacking | 1497 | # Kernel hacking |
1603 | # | 1498 | # |
1499 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
1604 | # CONFIG_PRINTK_TIME is not set | 1500 | # CONFIG_PRINTK_TIME is not set |
1501 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
1605 | CONFIG_ENABLE_MUST_CHECK=y | 1502 | CONFIG_ENABLE_MUST_CHECK=y |
1503 | CONFIG_FRAME_WARN=1024 | ||
1606 | CONFIG_MAGIC_SYSRQ=y | 1504 | CONFIG_MAGIC_SYSRQ=y |
1607 | # CONFIG_UNUSED_SYMBOLS is not set | 1505 | # CONFIG_UNUSED_SYMBOLS is not set |
1506 | # CONFIG_DEBUG_FS is not set | ||
1507 | # CONFIG_HEADERS_CHECK is not set | ||
1608 | CONFIG_DEBUG_KERNEL=y | 1508 | CONFIG_DEBUG_KERNEL=y |
1609 | CONFIG_LOG_BUF_SHIFT=16 | 1509 | # CONFIG_DEBUG_SHIRQ is not set |
1610 | # CONFIG_DETECT_SOFTLOCKUP is not set | 1510 | # CONFIG_DETECT_SOFTLOCKUP is not set |
1511 | CONFIG_SCHED_DEBUG=y | ||
1611 | # CONFIG_SCHEDSTATS is not set | 1512 | # CONFIG_SCHEDSTATS is not set |
1513 | # CONFIG_TIMER_STATS is not set | ||
1514 | # CONFIG_DEBUG_OBJECTS is not set | ||
1612 | # CONFIG_DEBUG_SLAB is not set | 1515 | # CONFIG_DEBUG_SLAB is not set |
1613 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1516 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1614 | # CONFIG_RT_MUTEX_TESTER is not set | 1517 | # CONFIG_RT_MUTEX_TESTER is not set |
1615 | # CONFIG_DEBUG_SPINLOCK is not set | 1518 | # CONFIG_DEBUG_SPINLOCK is not set |
1616 | # CONFIG_DEBUG_MUTEXES is not set | 1519 | # CONFIG_DEBUG_MUTEXES is not set |
1617 | # CONFIG_DEBUG_RWSEMS is not set | 1520 | # CONFIG_DEBUG_LOCK_ALLOC is not set |
1521 | # CONFIG_PROVE_LOCKING is not set | ||
1522 | # CONFIG_LOCK_STAT is not set | ||
1618 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1523 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1619 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 1524 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
1620 | # CONFIG_DEBUG_KOBJECT is not set | 1525 | # CONFIG_DEBUG_KOBJECT is not set |
1621 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1526 | # CONFIG_DEBUG_BUGVERBOSE is not set |
1622 | # CONFIG_DEBUG_INFO is not set | 1527 | # CONFIG_DEBUG_INFO is not set |
1623 | # CONFIG_DEBUG_FS is not set | ||
1624 | # CONFIG_DEBUG_VM is not set | 1528 | # CONFIG_DEBUG_VM is not set |
1529 | # CONFIG_DEBUG_WRITECOUNT is not set | ||
1530 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
1625 | # CONFIG_DEBUG_LIST is not set | 1531 | # CONFIG_DEBUG_LIST is not set |
1532 | # CONFIG_DEBUG_SG is not set | ||
1626 | # CONFIG_FRAME_POINTER is not set | 1533 | # CONFIG_FRAME_POINTER is not set |
1627 | # CONFIG_FORCED_INLINING is not set | ||
1628 | # CONFIG_HEADERS_CHECK is not set | ||
1629 | # CONFIG_RCU_TORTURE_TEST is not set | 1534 | # CONFIG_RCU_TORTURE_TEST is not set |
1535 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
1536 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
1537 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
1538 | # CONFIG_FAULT_INJECTION is not set | ||
1539 | # CONFIG_LATENCYTOP is not set | ||
1540 | CONFIG_NOP_TRACER=y | ||
1541 | CONFIG_HAVE_FTRACE=y | ||
1542 | # CONFIG_FTRACE is not set | ||
1543 | # CONFIG_IRQSOFF_TRACER is not set | ||
1544 | # CONFIG_SCHED_TRACER is not set | ||
1545 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
1546 | # CONFIG_BOOT_TRACER is not set | ||
1547 | # CONFIG_STACK_TRACER is not set | ||
1548 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
1549 | # CONFIG_SAMPLES is not set | ||
1630 | # CONFIG_SH_STANDARD_BIOS is not set | 1550 | # CONFIG_SH_STANDARD_BIOS is not set |
1631 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 1551 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
1632 | # CONFIG_EARLY_PRINTK is not set | 1552 | # CONFIG_DEBUG_BOOTMEM is not set |
1633 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1553 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
1634 | # CONFIG_DEBUG_STACK_USAGE is not set | 1554 | # CONFIG_DEBUG_STACK_USAGE is not set |
1635 | # CONFIG_4KSTACKS is not set | 1555 | # CONFIG_4KSTACKS is not set |
1636 | # CONFIG_KGDB is not set | 1556 | # CONFIG_IRQSTACKS is not set |
1557 | # CONFIG_SH_KGDB is not set | ||
1637 | 1558 | ||
1638 | # | 1559 | # |
1639 | # Security options | 1560 | # Security options |
1640 | # | 1561 | # |
1641 | # CONFIG_KEYS is not set | 1562 | # CONFIG_KEYS is not set |
1642 | # CONFIG_SECURITY is not set | 1563 | # CONFIG_SECURITY is not set |
1564 | # CONFIG_SECURITYFS is not set | ||
1565 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
1566 | CONFIG_CRYPTO=y | ||
1643 | 1567 | ||
1644 | # | 1568 | # |
1645 | # Cryptographic options | 1569 | # Crypto core or helper |
1646 | # | 1570 | # |
1647 | CONFIG_CRYPTO=y | 1571 | # CONFIG_CRYPTO_FIPS is not set |
1648 | CONFIG_CRYPTO_ALGAPI=y | 1572 | CONFIG_CRYPTO_ALGAPI=y |
1573 | CONFIG_CRYPTO_AEAD=y | ||
1649 | CONFIG_CRYPTO_BLKCIPHER=y | 1574 | CONFIG_CRYPTO_BLKCIPHER=y |
1650 | CONFIG_CRYPTO_HASH=y | 1575 | CONFIG_CRYPTO_HASH=y |
1576 | CONFIG_CRYPTO_RNG=y | ||
1651 | CONFIG_CRYPTO_MANAGER=y | 1577 | CONFIG_CRYPTO_MANAGER=y |
1652 | CONFIG_CRYPTO_HMAC=y | 1578 | # CONFIG_CRYPTO_GF128MUL is not set |
1653 | CONFIG_CRYPTO_NULL=m | 1579 | CONFIG_CRYPTO_NULL=m |
1580 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1581 | CONFIG_CRYPTO_AUTHENC=y | ||
1582 | # CONFIG_CRYPTO_TEST is not set | ||
1583 | |||
1584 | # | ||
1585 | # Authenticated Encryption with Associated Data | ||
1586 | # | ||
1587 | # CONFIG_CRYPTO_CCM is not set | ||
1588 | # CONFIG_CRYPTO_GCM is not set | ||
1589 | # CONFIG_CRYPTO_SEQIV is not set | ||
1590 | |||
1591 | # | ||
1592 | # Block modes | ||
1593 | # | ||
1594 | CONFIG_CRYPTO_CBC=y | ||
1595 | # CONFIG_CRYPTO_CTR is not set | ||
1596 | # CONFIG_CRYPTO_CTS is not set | ||
1597 | CONFIG_CRYPTO_ECB=y | ||
1598 | # CONFIG_CRYPTO_LRW is not set | ||
1599 | # CONFIG_CRYPTO_PCBC is not set | ||
1600 | # CONFIG_CRYPTO_XTS is not set | ||
1601 | |||
1602 | # | ||
1603 | # Hash modes | ||
1604 | # | ||
1605 | CONFIG_CRYPTO_HMAC=y | ||
1606 | # CONFIG_CRYPTO_XCBC is not set | ||
1607 | |||
1608 | # | ||
1609 | # Digest | ||
1610 | # | ||
1611 | CONFIG_CRYPTO_CRC32C=m | ||
1654 | CONFIG_CRYPTO_MD4=m | 1612 | CONFIG_CRYPTO_MD4=m |
1655 | CONFIG_CRYPTO_MD5=y | 1613 | CONFIG_CRYPTO_MD5=y |
1614 | CONFIG_CRYPTO_MICHAEL_MIC=y | ||
1615 | # CONFIG_CRYPTO_RMD128 is not set | ||
1616 | # CONFIG_CRYPTO_RMD160 is not set | ||
1617 | # CONFIG_CRYPTO_RMD256 is not set | ||
1618 | # CONFIG_CRYPTO_RMD320 is not set | ||
1656 | CONFIG_CRYPTO_SHA1=y | 1619 | CONFIG_CRYPTO_SHA1=y |
1657 | CONFIG_CRYPTO_SHA256=m | 1620 | CONFIG_CRYPTO_SHA256=m |
1658 | CONFIG_CRYPTO_SHA512=m | 1621 | CONFIG_CRYPTO_SHA512=m |
1659 | CONFIG_CRYPTO_WP512=m | ||
1660 | CONFIG_CRYPTO_TGR192=m | 1622 | CONFIG_CRYPTO_TGR192=m |
1661 | CONFIG_CRYPTO_ECB=y | 1623 | CONFIG_CRYPTO_WP512=m |
1662 | CONFIG_CRYPTO_CBC=y | 1624 | |
1663 | CONFIG_CRYPTO_DES=y | 1625 | # |
1664 | CONFIG_CRYPTO_BLOWFISH=m | 1626 | # Ciphers |
1665 | CONFIG_CRYPTO_TWOFISH=m | 1627 | # |
1666 | CONFIG_CRYPTO_TWOFISH_COMMON=m | ||
1667 | CONFIG_CRYPTO_SERPENT=m | ||
1668 | CONFIG_CRYPTO_AES=y | 1628 | CONFIG_CRYPTO_AES=y |
1629 | CONFIG_CRYPTO_ANUBIS=m | ||
1630 | CONFIG_CRYPTO_ARC4=y | ||
1631 | CONFIG_CRYPTO_BLOWFISH=m | ||
1632 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1669 | CONFIG_CRYPTO_CAST5=m | 1633 | CONFIG_CRYPTO_CAST5=m |
1670 | CONFIG_CRYPTO_CAST6=m | 1634 | CONFIG_CRYPTO_CAST6=m |
1671 | CONFIG_CRYPTO_TEA=m | 1635 | CONFIG_CRYPTO_DES=y |
1672 | CONFIG_CRYPTO_ARC4=y | 1636 | # CONFIG_CRYPTO_FCRYPT is not set |
1673 | CONFIG_CRYPTO_KHAZAD=m | 1637 | CONFIG_CRYPTO_KHAZAD=m |
1674 | CONFIG_CRYPTO_ANUBIS=m | 1638 | # CONFIG_CRYPTO_SALSA20 is not set |
1639 | # CONFIG_CRYPTO_SEED is not set | ||
1640 | CONFIG_CRYPTO_SERPENT=m | ||
1641 | CONFIG_CRYPTO_TEA=m | ||
1642 | CONFIG_CRYPTO_TWOFISH=m | ||
1643 | CONFIG_CRYPTO_TWOFISH_COMMON=m | ||
1644 | |||
1645 | # | ||
1646 | # Compression | ||
1647 | # | ||
1675 | CONFIG_CRYPTO_DEFLATE=y | 1648 | CONFIG_CRYPTO_DEFLATE=y |
1676 | CONFIG_CRYPTO_MICHAEL_MIC=y | 1649 | # CONFIG_CRYPTO_LZO is not set |
1677 | CONFIG_CRYPTO_CRC32C=m | ||
1678 | # CONFIG_CRYPTO_TEST is not set | ||
1679 | 1650 | ||
1680 | # | 1651 | # |
1681 | # Hardware crypto devices | 1652 | # Random Number Generation |
1682 | # | 1653 | # |
1654 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
1655 | CONFIG_CRYPTO_HW=y | ||
1656 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | ||
1683 | 1657 | ||
1684 | # | 1658 | # |
1685 | # Library routines | 1659 | # Library routines |
1686 | # | 1660 | # |
1661 | CONFIG_BITREVERSE=y | ||
1687 | CONFIG_CRC_CCITT=m | 1662 | CONFIG_CRC_CCITT=m |
1688 | CONFIG_CRC16=m | 1663 | CONFIG_CRC16=m |
1664 | # CONFIG_CRC_T10DIF is not set | ||
1665 | CONFIG_CRC_ITU_T=m | ||
1689 | CONFIG_CRC32=y | 1666 | CONFIG_CRC32=y |
1667 | # CONFIG_CRC7 is not set | ||
1690 | CONFIG_LIBCRC32C=m | 1668 | CONFIG_LIBCRC32C=m |
1691 | CONFIG_ZLIB_INFLATE=y | 1669 | CONFIG_ZLIB_INFLATE=y |
1692 | CONFIG_ZLIB_DEFLATE=y | 1670 | CONFIG_ZLIB_DEFLATE=y |
@@ -1695,3 +1673,6 @@ CONFIG_TEXTSEARCH_KMP=m | |||
1695 | CONFIG_TEXTSEARCH_BM=m | 1673 | CONFIG_TEXTSEARCH_BM=m |
1696 | CONFIG_TEXTSEARCH_FSM=m | 1674 | CONFIG_TEXTSEARCH_FSM=m |
1697 | CONFIG_PLIST=y | 1675 | CONFIG_PLIST=y |
1676 | CONFIG_HAS_IOMEM=y | ||
1677 | CONFIG_HAS_IOPORT=y | ||
1678 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/sh/include/asm/gpio.h b/arch/sh/include/asm/gpio.h index 9650e7c9c39e..90673658eb14 100644 --- a/arch/sh/include/asm/gpio.h +++ b/arch/sh/include/asm/gpio.h | |||
@@ -12,6 +12,9 @@ | |||
12 | #ifndef __ASM_SH_GPIO_H | 12 | #ifndef __ASM_SH_GPIO_H |
13 | #define __ASM_SH_GPIO_H | 13 | #define __ASM_SH_GPIO_H |
14 | 14 | ||
15 | #include <linux/kernel.h> | ||
16 | #include <linux/errno.h> | ||
17 | |||
15 | #if defined(CONFIG_CPU_SH3) | 18 | #if defined(CONFIG_CPU_SH3) |
16 | #include <cpu/gpio.h> | 19 | #include <cpu/gpio.h> |
17 | #endif | 20 | #endif |
@@ -62,6 +65,7 @@ struct pinmux_data_reg { | |||
62 | struct pinmux_range { | 65 | struct pinmux_range { |
63 | pinmux_enum_t begin; | 66 | pinmux_enum_t begin; |
64 | pinmux_enum_t end; | 67 | pinmux_enum_t end; |
68 | pinmux_enum_t force; | ||
65 | }; | 69 | }; |
66 | 70 | ||
67 | struct pinmux_info { | 71 | struct pinmux_info { |
@@ -99,9 +103,20 @@ int gpio_direction_input(unsigned gpio); | |||
99 | int gpio_direction_output(unsigned gpio, int value); | 103 | int gpio_direction_output(unsigned gpio, int value); |
100 | int gpio_get_value(unsigned gpio); | 104 | int gpio_get_value(unsigned gpio); |
101 | void gpio_set_value(unsigned gpio, int value); | 105 | void gpio_set_value(unsigned gpio, int value); |
102 | static inline int gpio_export(unsigned gpio, bool direction_may_change) | 106 | |
107 | /* IRQ modes are unspported */ | ||
108 | static inline int gpio_to_irq(unsigned gpio) | ||
109 | { | ||
110 | WARN_ON(1); | ||
111 | return -EINVAL; | ||
112 | } | ||
113 | |||
114 | static inline int irq_to_gpio(unsigned irq) | ||
103 | { | 115 | { |
104 | return 0; | 116 | WARN_ON(1); |
117 | return -EINVAL; | ||
105 | } | 118 | } |
106 | 119 | ||
120 | #include <asm-generic/gpio.h> | ||
121 | |||
107 | #endif /* __ASM_SH_GPIO_H */ | 122 | #endif /* __ASM_SH_GPIO_H */ |
diff --git a/arch/sh/include/asm/kdebug.h b/arch/sh/include/asm/kdebug.h index 49cd69051a88..0b9f896f203c 100644 --- a/arch/sh/include/asm/kdebug.h +++ b/arch/sh/include/asm/kdebug.h | |||
@@ -4,6 +4,7 @@ | |||
4 | /* Grossly misnamed. */ | 4 | /* Grossly misnamed. */ |
5 | enum die_val { | 5 | enum die_val { |
6 | DIE_TRAP, | 6 | DIE_TRAP, |
7 | DIE_OOPS, | ||
7 | }; | 8 | }; |
8 | 9 | ||
9 | #endif /* __ASM_SH_KDEBUG_H */ | 10 | #endif /* __ASM_SH_KDEBUG_H */ |
diff --git a/arch/sh/include/cpu-sh4/cpu/sh7785.h b/arch/sh/include/cpu-sh4/cpu/sh7785.h new file mode 100644 index 000000000000..e4006afb735e --- /dev/null +++ b/arch/sh/include/cpu-sh4/cpu/sh7785.h | |||
@@ -0,0 +1,234 @@ | |||
1 | #ifndef __ASM_SH7785_H__ | ||
2 | #define __ASM_SH7785_H__ | ||
3 | |||
4 | enum { | ||
5 | /* PA */ | ||
6 | GPIO_PA7, GPIO_PA6, GPIO_PA5, GPIO_PA4, | ||
7 | GPIO_PA3, GPIO_PA2, GPIO_PA1, GPIO_PA0, | ||
8 | |||
9 | /* PB */ | ||
10 | GPIO_PB7, GPIO_PB6, GPIO_PB5, GPIO_PB4, | ||
11 | GPIO_PB3, GPIO_PB2, GPIO_PB1, GPIO_PB0, | ||
12 | |||
13 | /* PC */ | ||
14 | GPIO_PC7, GPIO_PC6, GPIO_PC5, GPIO_PC4, | ||
15 | GPIO_PC3, GPIO_PC2, GPIO_PC1, GPIO_PC0, | ||
16 | |||
17 | /* PD */ | ||
18 | GPIO_PD7, GPIO_PD6, GPIO_PD5, GPIO_PD4, | ||
19 | GPIO_PD3, GPIO_PD2, GPIO_PD1, GPIO_PD0, | ||
20 | |||
21 | /* PE */ | ||
22 | GPIO_PE5, GPIO_PE4, GPIO_PE3, GPIO_PE2, | ||
23 | GPIO_PE1, GPIO_PE0, | ||
24 | |||
25 | /* PF */ | ||
26 | GPIO_PF7, GPIO_PF6, GPIO_PF5, GPIO_PF4, | ||
27 | GPIO_PF3, GPIO_PF2, GPIO_PF1, GPIO_PF0, | ||
28 | |||
29 | /* PG */ | ||
30 | GPIO_PG7, GPIO_PG6, GPIO_PG5, GPIO_PG4, | ||
31 | GPIO_PG3, GPIO_PG2, GPIO_PG1, GPIO_PG0, | ||
32 | |||
33 | /* PH */ | ||
34 | GPIO_PH7, GPIO_PH6, GPIO_PH5, GPIO_PH4, | ||
35 | GPIO_PH3, GPIO_PH2, GPIO_PH1, GPIO_PH0, | ||
36 | |||
37 | /* PJ */ | ||
38 | GPIO_PJ7, GPIO_PJ6, GPIO_PJ5, GPIO_PJ4, | ||
39 | GPIO_PJ3, GPIO_PJ2, GPIO_PJ1, GPIO_PJ0, | ||
40 | |||
41 | /* PK */ | ||
42 | GPIO_PK7, GPIO_PK6, GPIO_PK5, GPIO_PK4, | ||
43 | GPIO_PK3, GPIO_PK2, GPIO_PK1, GPIO_PK0, | ||
44 | |||
45 | /* PL */ | ||
46 | GPIO_PL7, GPIO_PL6, GPIO_PL5, GPIO_PL4, | ||
47 | GPIO_PL3, GPIO_PL2, GPIO_PL1, GPIO_PL0, | ||
48 | |||
49 | /* PM */ | ||
50 | GPIO_PM1, GPIO_PM0, | ||
51 | |||
52 | /* PN */ | ||
53 | GPIO_PN7, GPIO_PN6, GPIO_PN5, GPIO_PN4, | ||
54 | GPIO_PN3, GPIO_PN2, GPIO_PN1, GPIO_PN0, | ||
55 | |||
56 | /* PP */ | ||
57 | GPIO_PP5, GPIO_PP4, | ||
58 | GPIO_PP3, GPIO_PP2, GPIO_PP1, GPIO_PP0, | ||
59 | |||
60 | /* PQ */ | ||
61 | GPIO_PQ4, | ||
62 | GPIO_PQ3, GPIO_PQ2, GPIO_PQ1, GPIO_PQ0, | ||
63 | |||
64 | /* PR */ | ||
65 | GPIO_PR3, GPIO_PR2, GPIO_PR1, GPIO_PR0, | ||
66 | |||
67 | GPIO_FN_D63_AD31, | ||
68 | GPIO_FN_D62_AD30, | ||
69 | GPIO_FN_D61_AD29, | ||
70 | GPIO_FN_D60_AD28, | ||
71 | GPIO_FN_D59_AD27, | ||
72 | GPIO_FN_D58_AD26, | ||
73 | GPIO_FN_D57_AD25, | ||
74 | GPIO_FN_D56_AD24, | ||
75 | GPIO_FN_D55_AD23, | ||
76 | GPIO_FN_D54_AD22, | ||
77 | GPIO_FN_D53_AD21, | ||
78 | GPIO_FN_D52_AD20, | ||
79 | GPIO_FN_D51_AD19, | ||
80 | GPIO_FN_D50_AD18, | ||
81 | GPIO_FN_D49_AD17_DB5, | ||
82 | GPIO_FN_D48_AD16_DB4, | ||
83 | GPIO_FN_D47_AD15_DB3, | ||
84 | GPIO_FN_D46_AD14_DB2, | ||
85 | GPIO_FN_D45_AD13_DB1, | ||
86 | GPIO_FN_D44_AD12_DB0, | ||
87 | GPIO_FN_D43_AD11_DG5, | ||
88 | GPIO_FN_D42_AD10_DG4, | ||
89 | GPIO_FN_D41_AD9_DG3, | ||
90 | GPIO_FN_D40_AD8_DG2, | ||
91 | GPIO_FN_D39_AD7_DG1, | ||
92 | GPIO_FN_D38_AD6_DG0, | ||
93 | GPIO_FN_D37_AD5_DR5, | ||
94 | GPIO_FN_D36_AD4_DR4, | ||
95 | GPIO_FN_D35_AD3_DR3, | ||
96 | GPIO_FN_D34_AD2_DR2, | ||
97 | GPIO_FN_D33_AD1_DR1, | ||
98 | GPIO_FN_D32_AD0_DR0, | ||
99 | GPIO_FN_REQ1, | ||
100 | GPIO_FN_REQ2, | ||
101 | GPIO_FN_REQ3, | ||
102 | GPIO_FN_GNT1, | ||
103 | GPIO_FN_GNT2, | ||
104 | GPIO_FN_GNT3, | ||
105 | GPIO_FN_MMCCLK, | ||
106 | GPIO_FN_D31, | ||
107 | GPIO_FN_D30, | ||
108 | GPIO_FN_D29, | ||
109 | GPIO_FN_D28, | ||
110 | GPIO_FN_D27, | ||
111 | GPIO_FN_D26, | ||
112 | GPIO_FN_D25, | ||
113 | GPIO_FN_D24, | ||
114 | GPIO_FN_D23, | ||
115 | GPIO_FN_D22, | ||
116 | GPIO_FN_D21, | ||
117 | GPIO_FN_D20, | ||
118 | GPIO_FN_D19, | ||
119 | GPIO_FN_D18, | ||
120 | GPIO_FN_D17, | ||
121 | GPIO_FN_D16, | ||
122 | GPIO_FN_SCIF1_SCK, | ||
123 | GPIO_FN_SCIF1_RXD, | ||
124 | GPIO_FN_SCIF1_TXD, | ||
125 | GPIO_FN_SCIF0_CTS, | ||
126 | GPIO_FN_INTD, | ||
127 | GPIO_FN_FCE, | ||
128 | GPIO_FN_SCIF0_RTS, | ||
129 | GPIO_FN_HSPI_CS, | ||
130 | GPIO_FN_FSE, | ||
131 | GPIO_FN_SCIF0_SCK, | ||
132 | GPIO_FN_HSPI_CLK, | ||
133 | GPIO_FN_FRE, | ||
134 | GPIO_FN_SCIF0_RXD, | ||
135 | GPIO_FN_HSPI_RX, | ||
136 | GPIO_FN_FRB, | ||
137 | GPIO_FN_SCIF0_TXD, | ||
138 | GPIO_FN_HSPI_TX, | ||
139 | GPIO_FN_FWE, | ||
140 | GPIO_FN_SCIF5_TXD, | ||
141 | GPIO_FN_HAC1_SYNC, | ||
142 | GPIO_FN_SSI1_WS, | ||
143 | GPIO_FN_SIOF_TXD_PJ, | ||
144 | GPIO_FN_HAC0_SDOUT, | ||
145 | GPIO_FN_SSI0_SDATA, | ||
146 | GPIO_FN_SIOF_RXD_PJ, | ||
147 | GPIO_FN_HAC0_SDIN, | ||
148 | GPIO_FN_SSI0_SCK, | ||
149 | GPIO_FN_SIOF_SYNC_PJ, | ||
150 | GPIO_FN_HAC0_SYNC, | ||
151 | GPIO_FN_SSI0_WS, | ||
152 | GPIO_FN_SIOF_MCLK_PJ, | ||
153 | GPIO_FN_HAC_RES, | ||
154 | GPIO_FN_SIOF_SCK_PJ, | ||
155 | GPIO_FN_HAC0_BITCLK, | ||
156 | GPIO_FN_SSI0_CLK, | ||
157 | GPIO_FN_HAC1_BITCLK, | ||
158 | GPIO_FN_SSI1_CLK, | ||
159 | GPIO_FN_TCLK, | ||
160 | GPIO_FN_IOIS16, | ||
161 | GPIO_FN_STATUS0, | ||
162 | GPIO_FN_DRAK0_PK3, | ||
163 | GPIO_FN_STATUS1, | ||
164 | GPIO_FN_DRAK1_PK2, | ||
165 | GPIO_FN_DACK2, | ||
166 | GPIO_FN_SCIF2_TXD, | ||
167 | GPIO_FN_MMCCMD, | ||
168 | GPIO_FN_SIOF_TXD_PK, | ||
169 | GPIO_FN_DACK3, | ||
170 | GPIO_FN_SCIF2_SCK, | ||
171 | GPIO_FN_MMCDAT, | ||
172 | GPIO_FN_SIOF_SCK_PK, | ||
173 | GPIO_FN_DREQ0, | ||
174 | GPIO_FN_DREQ1, | ||
175 | GPIO_FN_DRAK0_PK1, | ||
176 | GPIO_FN_DRAK1_PK0, | ||
177 | GPIO_FN_DREQ2, | ||
178 | GPIO_FN_INTB, | ||
179 | GPIO_FN_DREQ3, | ||
180 | GPIO_FN_INTC, | ||
181 | GPIO_FN_DRAK2, | ||
182 | GPIO_FN_CE2A, | ||
183 | GPIO_FN_IRL4, | ||
184 | GPIO_FN_FD4, | ||
185 | GPIO_FN_IRL5, | ||
186 | GPIO_FN_FD5, | ||
187 | GPIO_FN_IRL6, | ||
188 | GPIO_FN_FD6, | ||
189 | GPIO_FN_IRL7, | ||
190 | GPIO_FN_FD7, | ||
191 | GPIO_FN_DRAK3, | ||
192 | GPIO_FN_CE2B, | ||
193 | GPIO_FN_BREQ_BSACK, | ||
194 | GPIO_FN_BACK_BSREQ, | ||
195 | GPIO_FN_SCIF5_RXD, | ||
196 | GPIO_FN_HAC1_SDIN, | ||
197 | GPIO_FN_SSI1_SCK, | ||
198 | GPIO_FN_SCIF5_SCK, | ||
199 | GPIO_FN_HAC1_SDOUT, | ||
200 | GPIO_FN_SSI1_SDATA, | ||
201 | GPIO_FN_SCIF3_TXD, | ||
202 | GPIO_FN_FCLE, | ||
203 | GPIO_FN_SCIF3_RXD, | ||
204 | GPIO_FN_FALE, | ||
205 | GPIO_FN_SCIF3_SCK, | ||
206 | GPIO_FN_FD0, | ||
207 | GPIO_FN_SCIF4_TXD, | ||
208 | GPIO_FN_FD1, | ||
209 | GPIO_FN_SCIF4_RXD, | ||
210 | GPIO_FN_FD2, | ||
211 | GPIO_FN_SCIF4_SCK, | ||
212 | GPIO_FN_FD3, | ||
213 | GPIO_FN_DEVSEL_DCLKOUT, | ||
214 | GPIO_FN_STOP_CDE, | ||
215 | GPIO_FN_LOCK_ODDF, | ||
216 | GPIO_FN_TRDY_DISPL, | ||
217 | GPIO_FN_IRDY_HSYNC, | ||
218 | GPIO_FN_PCIFRAME_VSYNC, | ||
219 | GPIO_FN_INTA, | ||
220 | GPIO_FN_GNT0_GNTIN, | ||
221 | GPIO_FN_REQ0_REQOUT, | ||
222 | GPIO_FN_PERR, | ||
223 | GPIO_FN_SERR, | ||
224 | GPIO_FN_WE7_CBE3, | ||
225 | GPIO_FN_WE6_CBE2, | ||
226 | GPIO_FN_WE5_CBE1, | ||
227 | GPIO_FN_WE4_CBE0, | ||
228 | GPIO_FN_SCIF2_RXD, | ||
229 | GPIO_FN_SIOF_RXD, | ||
230 | GPIO_FN_MRESETOUT, | ||
231 | GPIO_FN_IRQOUT, | ||
232 | }; | ||
233 | |||
234 | #endif /* __ASM_SH7785_H__ */ | ||
diff --git a/arch/sh/include/mach-common/mach/highlander.h b/arch/sh/include/mach-common/mach/highlander.h index 306f7359f7d4..bd26a848cb0b 100644 --- a/arch/sh/include/mach-common/mach/highlander.h +++ b/arch/sh/include/mach-common/mach/highlander.h | |||
@@ -195,4 +195,10 @@ | |||
195 | 195 | ||
196 | unsigned char *highlander_plat_irq_setup(void); | 196 | unsigned char *highlander_plat_irq_setup(void); |
197 | 197 | ||
198 | #ifdef CONFIG_SH_R7785RP | ||
199 | void highlander_plat_pinmux_setup(void); | ||
200 | #else | ||
201 | #define highlander_plat_pinmux_setup() do { } while (0) | ||
202 | #endif | ||
203 | |||
198 | #endif /* __ASM_SH_RENESAS_R7780RP */ | 204 | #endif /* __ASM_SH_RENESAS_R7780RP */ |
diff --git a/arch/sh/kernel/cpu/sh2a/pinmux-sh7203.c b/arch/sh/kernel/cpu/sh2a/pinmux-sh7203.c index 39a5b880418f..c465af7283fc 100644 --- a/arch/sh/kernel/cpu/sh2a/pinmux-sh7203.c +++ b/arch/sh/kernel/cpu/sh2a/pinmux-sh7203.c | |||
@@ -11,7 +11,7 @@ | |||
11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
12 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
13 | #include <linux/gpio.h> | 13 | #include <linux/gpio.h> |
14 | #include <asm/sh7203.h> | 14 | #include <cpu/sh7203.h> |
15 | 15 | ||
16 | enum { | 16 | enum { |
17 | PINMUX_RESERVED = 0, | 17 | PINMUX_RESERVED = 0, |
@@ -46,11 +46,10 @@ enum { | |||
46 | PINMUX_DATA_END, | 46 | PINMUX_DATA_END, |
47 | 47 | ||
48 | PINMUX_INPUT_BEGIN, | 48 | PINMUX_INPUT_BEGIN, |
49 | FORCE_IN, | ||
49 | PA7_IN, PA6_IN, PA5_IN, PA4_IN, | 50 | PA7_IN, PA6_IN, PA5_IN, PA4_IN, |
50 | PA3_IN, PA2_IN, PA1_IN, PA0_IN, | 51 | PA3_IN, PA2_IN, PA1_IN, PA0_IN, |
51 | PB11_IN, PB10_IN, PB9_IN, PB8_IN, | 52 | PB11_IN, PB10_IN, PB9_IN, PB8_IN, |
52 | PB7_IN, PB6_IN, PB5_IN, PB4_IN, | ||
53 | PB3_IN, PB2_IN, PB1_IN, PB0_IN, | ||
54 | PC14_IN, PC13_IN, PC12_IN, | 53 | PC14_IN, PC13_IN, PC12_IN, |
55 | PC11_IN, PC10_IN, PC9_IN, PC8_IN, | 54 | PC11_IN, PC10_IN, PC9_IN, PC8_IN, |
56 | PC7_IN, PC6_IN, PC5_IN, PC4_IN, | 55 | PC7_IN, PC6_IN, PC5_IN, PC4_IN, |
@@ -74,7 +73,7 @@ enum { | |||
74 | PINMUX_INPUT_END, | 73 | PINMUX_INPUT_END, |
75 | 74 | ||
76 | PINMUX_OUTPUT_BEGIN, | 75 | PINMUX_OUTPUT_BEGIN, |
77 | PB12_OUT, | 76 | FORCE_OUT, |
78 | PB11_OUT, PB10_OUT, PB9_OUT, PB8_OUT, | 77 | PB11_OUT, PB10_OUT, PB9_OUT, PB8_OUT, |
79 | PC14_OUT, PC13_OUT, PC12_OUT, | 78 | PC14_OUT, PC13_OUT, PC12_OUT, |
80 | PC11_OUT, PC10_OUT, PC9_OUT, PC8_OUT, | 79 | PC11_OUT, PC10_OUT, PC9_OUT, PC8_OUT, |
@@ -285,7 +284,7 @@ static pinmux_enum_t pinmux_data[] = { | |||
285 | PINMUX_DATA(PA0_DATA, PA0_IN), | 284 | PINMUX_DATA(PA0_DATA, PA0_IN), |
286 | 285 | ||
287 | /* PB */ | 286 | /* PB */ |
288 | PINMUX_DATA(PB12_DATA, PB12MD_00, PB12_OUT), | 287 | PINMUX_DATA(PB12_DATA, PB12MD_00, FORCE_OUT), |
289 | PINMUX_DATA(WDTOVF_MARK, PB12MD_01), | 288 | PINMUX_DATA(WDTOVF_MARK, PB12MD_01), |
290 | PINMUX_DATA(IRQOUT_MARK, PB12MD_10, PB12IRQ_00), | 289 | PINMUX_DATA(IRQOUT_MARK, PB12MD_10, PB12IRQ_00), |
291 | PINMUX_DATA(REFOUT_MARK, PB12MD_10, PB12IRQ_01), | 290 | PINMUX_DATA(REFOUT_MARK, PB12MD_10, PB12IRQ_01), |
@@ -306,42 +305,42 @@ static pinmux_enum_t pinmux_data[] = { | |||
306 | PINMUX_DATA(CRX0_MARK, PB8MD_01), | 305 | PINMUX_DATA(CRX0_MARK, PB8MD_01), |
307 | PINMUX_DATA(CRX0_CRX1_MARK, PB8MD_10), | 306 | PINMUX_DATA(CRX0_CRX1_MARK, PB8MD_10), |
308 | 307 | ||
309 | PINMUX_DATA(PB7_DATA, PB7MD_00, PB7_IN), | 308 | PINMUX_DATA(PB7_DATA, PB7MD_00, FORCE_IN), |
310 | PINMUX_DATA(SDA3_MARK, PB7MD_01), | 309 | PINMUX_DATA(SDA3_MARK, PB7MD_01), |
311 | PINMUX_DATA(PINT7_PB_MARK, PB7MD_10), | 310 | PINMUX_DATA(PINT7_PB_MARK, PB7MD_10), |
312 | PINMUX_DATA(IRQ7_PB_MARK, PB7MD_11), | 311 | PINMUX_DATA(IRQ7_PB_MARK, PB7MD_11), |
313 | 312 | ||
314 | PINMUX_DATA(PB6_DATA, PB6MD_00, PB6_IN), | 313 | PINMUX_DATA(PB6_DATA, PB6MD_00, FORCE_IN), |
315 | PINMUX_DATA(SCL3_MARK, PB6MD_01), | 314 | PINMUX_DATA(SCL3_MARK, PB6MD_01), |
316 | PINMUX_DATA(PINT6_PB_MARK, PB6MD_10), | 315 | PINMUX_DATA(PINT6_PB_MARK, PB6MD_10), |
317 | PINMUX_DATA(IRQ6_PB_MARK, PB6MD_11), | 316 | PINMUX_DATA(IRQ6_PB_MARK, PB6MD_11), |
318 | 317 | ||
319 | PINMUX_DATA(PB5_DATA, PB5MD_00, PB5_IN), | 318 | PINMUX_DATA(PB5_DATA, PB5MD_00, FORCE_IN), |
320 | PINMUX_DATA(SDA2_MARK, PB6MD_01), | 319 | PINMUX_DATA(SDA2_MARK, PB6MD_01), |
321 | PINMUX_DATA(PINT5_PB_MARK, PB6MD_10), | 320 | PINMUX_DATA(PINT5_PB_MARK, PB6MD_10), |
322 | PINMUX_DATA(IRQ5_PB_MARK, PB6MD_11), | 321 | PINMUX_DATA(IRQ5_PB_MARK, PB6MD_11), |
323 | 322 | ||
324 | PINMUX_DATA(PB4_DATA, PB4MD_00, PB4_IN), | 323 | PINMUX_DATA(PB4_DATA, PB4MD_00, FORCE_IN), |
325 | PINMUX_DATA(SCL2_MARK, PB4MD_01), | 324 | PINMUX_DATA(SCL2_MARK, PB4MD_01), |
326 | PINMUX_DATA(PINT4_PB_MARK, PB4MD_10), | 325 | PINMUX_DATA(PINT4_PB_MARK, PB4MD_10), |
327 | PINMUX_DATA(IRQ4_PB_MARK, PB4MD_11), | 326 | PINMUX_DATA(IRQ4_PB_MARK, PB4MD_11), |
328 | 327 | ||
329 | PINMUX_DATA(PB3_DATA, PB3MD_00, PB3_IN), | 328 | PINMUX_DATA(PB3_DATA, PB3MD_00, FORCE_IN), |
330 | PINMUX_DATA(SDA1_MARK, PB3MD_01), | 329 | PINMUX_DATA(SDA1_MARK, PB3MD_01), |
331 | PINMUX_DATA(PINT3_PB_MARK, PB3MD_10), | 330 | PINMUX_DATA(PINT3_PB_MARK, PB3MD_10), |
332 | PINMUX_DATA(IRQ3_PB_MARK, PB3MD_11), | 331 | PINMUX_DATA(IRQ3_PB_MARK, PB3MD_11), |
333 | 332 | ||
334 | PINMUX_DATA(PB2_DATA, PB2MD_00, PB2_IN), | 333 | PINMUX_DATA(PB2_DATA, PB2MD_00, FORCE_IN), |
335 | PINMUX_DATA(SCL1_MARK, PB2MD_01), | 334 | PINMUX_DATA(SCL1_MARK, PB2MD_01), |
336 | PINMUX_DATA(PINT2_PB_MARK, PB2MD_10), | 335 | PINMUX_DATA(PINT2_PB_MARK, PB2MD_10), |
337 | PINMUX_DATA(IRQ2_PB_MARK, PB2MD_11), | 336 | PINMUX_DATA(IRQ2_PB_MARK, PB2MD_11), |
338 | 337 | ||
339 | PINMUX_DATA(PB1_DATA, PB1MD_00, PB1_IN), | 338 | PINMUX_DATA(PB1_DATA, PB1MD_00, FORCE_IN), |
340 | PINMUX_DATA(SDA0_MARK, PB1MD_01), | 339 | PINMUX_DATA(SDA0_MARK, PB1MD_01), |
341 | PINMUX_DATA(PINT1_PB_MARK, PB1MD_10), | 340 | PINMUX_DATA(PINT1_PB_MARK, PB1MD_10), |
342 | PINMUX_DATA(IRQ1_PB_MARK, PB1MD_11), | 341 | PINMUX_DATA(IRQ1_PB_MARK, PB1MD_11), |
343 | 342 | ||
344 | PINMUX_DATA(PB0_DATA, PB0MD_00, PB0_IN), | 343 | PINMUX_DATA(PB0_DATA, PB0MD_00, FORCE_IN), |
345 | PINMUX_DATA(SCL0_MARK, PB0MD_01), | 344 | PINMUX_DATA(SCL0_MARK, PB0MD_01), |
346 | PINMUX_DATA(PINT0_PB_MARK, PB0MD_10), | 345 | PINMUX_DATA(PINT0_PB_MARK, PB0MD_10), |
347 | PINMUX_DATA(IRQ0_PB_MARK, PB0MD_11), | 346 | PINMUX_DATA(IRQ0_PB_MARK, PB0MD_11), |
@@ -1575,8 +1574,8 @@ static struct pinmux_info sh7203_pinmux_info = { | |||
1575 | .name = "sh7203_pfc", | 1574 | .name = "sh7203_pfc", |
1576 | .reserved_id = PINMUX_RESERVED, | 1575 | .reserved_id = PINMUX_RESERVED, |
1577 | .data = { PINMUX_DATA_BEGIN, PINMUX_DATA_END }, | 1576 | .data = { PINMUX_DATA_BEGIN, PINMUX_DATA_END }, |
1578 | .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END }, | 1577 | .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END, FORCE_IN }, |
1579 | .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END }, | 1578 | .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END, FORCE_OUT }, |
1580 | .mark = { PINMUX_MARK_BEGIN, PINMUX_MARK_END }, | 1579 | .mark = { PINMUX_MARK_BEGIN, PINMUX_MARK_END }, |
1581 | .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, | 1580 | .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, |
1582 | 1581 | ||
@@ -1595,5 +1594,4 @@ static int __init plat_pinmux_setup(void) | |||
1595 | { | 1594 | { |
1596 | return register_pinmux(&sh7203_pinmux_info); | 1595 | return register_pinmux(&sh7203_pinmux_info); |
1597 | } | 1596 | } |
1598 | |||
1599 | arch_initcall(plat_pinmux_setup); | 1597 | arch_initcall(plat_pinmux_setup); |
diff --git a/arch/sh/kernel/cpu/sh4a/Makefile b/arch/sh/kernel/cpu/sh4a/Makefile index be9a0c185958..8e344ec5847e 100644 --- a/arch/sh/kernel/cpu/sh4a/Makefile +++ b/arch/sh/kernel/cpu/sh4a/Makefile | |||
@@ -30,6 +30,7 @@ clock-$(CONFIG_CPU_SUBTYPE_SHX3) := clock-shx3.o | |||
30 | # Pinmux setup | 30 | # Pinmux setup |
31 | pinmux-$(CONFIG_CPU_SUBTYPE_SH7722) := pinmux-sh7722.o | 31 | pinmux-$(CONFIG_CPU_SUBTYPE_SH7722) := pinmux-sh7722.o |
32 | pinmux-$(CONFIG_CPU_SUBTYPE_SH7723) := pinmux-sh7723.o | 32 | pinmux-$(CONFIG_CPU_SUBTYPE_SH7723) := pinmux-sh7723.o |
33 | pinmux-$(CONFIG_CPU_SUBTYPE_SH7785) := pinmux-sh7785.o | ||
33 | 34 | ||
34 | obj-y += $(clock-y) | 35 | obj-y += $(clock-y) |
35 | obj-$(CONFIG_SMP) += $(smp-y) | 36 | obj-$(CONFIG_SMP) += $(smp-y) |
diff --git a/arch/sh/kernel/cpu/sh4a/clock-sh7763.c b/arch/sh/kernel/cpu/sh4a/clock-sh7763.c index 45889d412c80..3177d0d1e06d 100644 --- a/arch/sh/kernel/cpu/sh4a/clock-sh7763.c +++ b/arch/sh/kernel/cpu/sh4a/clock-sh7763.c | |||
@@ -18,7 +18,6 @@ | |||
18 | 18 | ||
19 | static int bfc_divisors[] = { 1, 1, 1, 8, 1, 1, 1, 1 }; | 19 | static int bfc_divisors[] = { 1, 1, 1, 8, 1, 1, 1, 1 }; |
20 | static int p0fc_divisors[] = { 1, 1, 1, 8, 1, 1, 1, 1 }; | 20 | static int p0fc_divisors[] = { 1, 1, 1, 8, 1, 1, 1, 1 }; |
21 | static int p1fc_divisors[] = { 1, 1, 1, 16, 1, 1, 1, 1 }; | ||
22 | static int cfc_divisors[] = { 1, 1, 4, 1, 1, 1, 1, 1 }; | 21 | static int cfc_divisors[] = { 1, 1, 4, 1, 1, 1, 1, 1 }; |
23 | 22 | ||
24 | static void master_clk_init(struct clk *clk) | 23 | static void master_clk_init(struct clk *clk) |
diff --git a/arch/sh/kernel/cpu/sh4a/pinmux-sh7785.c b/arch/sh/kernel/cpu/sh4a/pinmux-sh7785.c new file mode 100644 index 000000000000..5ebc25fd9b2a --- /dev/null +++ b/arch/sh/kernel/cpu/sh4a/pinmux-sh7785.c | |||
@@ -0,0 +1,1310 @@ | |||
1 | /* | ||
2 | * SH7785 Pinmux | ||
3 | * | ||
4 | * Copyright (C) 2008 Magnus Damm | ||
5 | * | ||
6 | * This file is subject to the terms and conditions of the GNU General Public | ||
7 | * License. See the file "COPYING" in the main directory of this archive | ||
8 | * for more details. | ||
9 | */ | ||
10 | |||
11 | #include <linux/init.h> | ||
12 | #include <linux/kernel.h> | ||
13 | #include <linux/gpio.h> | ||
14 | #include <cpu/sh7785.h> | ||
15 | |||
16 | enum { | ||
17 | PINMUX_RESERVED = 0, | ||
18 | |||
19 | PINMUX_DATA_BEGIN, | ||
20 | PA7_DATA, PA6_DATA, PA5_DATA, PA4_DATA, | ||
21 | PA3_DATA, PA2_DATA, PA1_DATA, PA0_DATA, | ||
22 | PB7_DATA, PB6_DATA, PB5_DATA, PB4_DATA, | ||
23 | PB3_DATA, PB2_DATA, PB1_DATA, PB0_DATA, | ||
24 | PC7_DATA, PC6_DATA, PC5_DATA, PC4_DATA, | ||
25 | PC3_DATA, PC2_DATA, PC1_DATA, PC0_DATA, | ||
26 | PD7_DATA, PD6_DATA, PD5_DATA, PD4_DATA, | ||
27 | PD3_DATA, PD2_DATA, PD1_DATA, PD0_DATA, | ||
28 | PE5_DATA, PE4_DATA, PE3_DATA, PE2_DATA, PE1_DATA, PE0_DATA, | ||
29 | PF7_DATA, PF6_DATA, PF5_DATA, PF4_DATA, | ||
30 | PF3_DATA, PF2_DATA, PF1_DATA, PF0_DATA, | ||
31 | PG7_DATA, PG6_DATA, PG5_DATA, PG4_DATA, | ||
32 | PG3_DATA, PG2_DATA, PG1_DATA, PG0_DATA, | ||
33 | PH7_DATA, PH6_DATA, PH5_DATA, PH4_DATA, | ||
34 | PH3_DATA, PH2_DATA, PH1_DATA, PH0_DATA, | ||
35 | PJ7_DATA, PJ6_DATA, PJ5_DATA, PJ4_DATA, | ||
36 | PJ3_DATA, PJ2_DATA, PJ1_DATA, PJ0_DATA, | ||
37 | PK7_DATA, PK6_DATA, PK5_DATA, PK4_DATA, | ||
38 | PK3_DATA, PK2_DATA, PK1_DATA, PK0_DATA, | ||
39 | PL7_DATA, PL6_DATA, PL5_DATA, PL4_DATA, | ||
40 | PL3_DATA, PL2_DATA, PL1_DATA, PL0_DATA, | ||
41 | PM1_DATA, PM0_DATA, | ||
42 | PN7_DATA, PN6_DATA, PN5_DATA, PN4_DATA, | ||
43 | PN3_DATA, PN2_DATA, PN1_DATA, PN0_DATA, | ||
44 | PP5_DATA, PP4_DATA, PP3_DATA, PP2_DATA, PP1_DATA, PP0_DATA, | ||
45 | PQ4_DATA, PQ3_DATA, PQ2_DATA, PQ1_DATA, PQ0_DATA, | ||
46 | PR3_DATA, PR2_DATA, PR1_DATA, PR0_DATA, | ||
47 | PINMUX_DATA_END, | ||
48 | |||
49 | PINMUX_INPUT_BEGIN, | ||
50 | PA7_IN, PA6_IN, PA5_IN, PA4_IN, | ||
51 | PA3_IN, PA2_IN, PA1_IN, PA0_IN, | ||
52 | PB7_IN, PB6_IN, PB5_IN, PB4_IN, | ||
53 | PB3_IN, PB2_IN, PB1_IN, PB0_IN, | ||
54 | PC7_IN, PC6_IN, PC5_IN, PC4_IN, | ||
55 | PC3_IN, PC2_IN, PC1_IN, PC0_IN, | ||
56 | PD7_IN, PD6_IN, PD5_IN, PD4_IN, | ||
57 | PD3_IN, PD2_IN, PD1_IN, PD0_IN, | ||
58 | PE5_IN, PE4_IN, PE3_IN, PE2_IN, PE1_IN, PE0_IN, | ||
59 | PF7_IN, PF6_IN, PF5_IN, PF4_IN, | ||
60 | PF3_IN, PF2_IN, PF1_IN, PF0_IN, | ||
61 | PG7_IN, PG6_IN, PG5_IN, PG4_IN, | ||
62 | PG3_IN, PG2_IN, PG1_IN, PG0_IN, | ||
63 | PH7_IN, PH6_IN, PH5_IN, PH4_IN, | ||
64 | PH3_IN, PH2_IN, PH1_IN, PH0_IN, | ||
65 | PJ7_IN, PJ6_IN, PJ5_IN, PJ4_IN, | ||
66 | PJ3_IN, PJ2_IN, PJ1_IN, PJ0_IN, | ||
67 | PK7_IN, PK6_IN, PK5_IN, PK4_IN, | ||
68 | PK3_IN, PK2_IN, PK1_IN, PK0_IN, | ||
69 | PL7_IN, PL6_IN, PL5_IN, PL4_IN, | ||
70 | PL3_IN, PL2_IN, PL1_IN, PL0_IN, | ||
71 | PM1_IN, PM0_IN, | ||
72 | PN7_IN, PN6_IN, PN5_IN, PN4_IN, | ||
73 | PN3_IN, PN2_IN, PN1_IN, PN0_IN, | ||
74 | PP5_IN, PP4_IN, PP3_IN, PP2_IN, PP1_IN, PP0_IN, | ||
75 | PQ4_IN, PQ3_IN, PQ2_IN, PQ1_IN, PQ0_IN, | ||
76 | PR3_IN, PR2_IN, PR1_IN, PR0_IN, | ||
77 | PINMUX_INPUT_END, | ||
78 | |||
79 | PINMUX_INPUT_PULLUP_BEGIN, | ||
80 | PA7_IN_PU, PA6_IN_PU, PA5_IN_PU, PA4_IN_PU, | ||
81 | PA3_IN_PU, PA2_IN_PU, PA1_IN_PU, PA0_IN_PU, | ||
82 | PB7_IN_PU, PB6_IN_PU, PB5_IN_PU, PB4_IN_PU, | ||
83 | PB3_IN_PU, PB2_IN_PU, PB1_IN_PU, PB0_IN_PU, | ||
84 | PC7_IN_PU, PC6_IN_PU, PC5_IN_PU, PC4_IN_PU, | ||
85 | PC3_IN_PU, PC2_IN_PU, PC1_IN_PU, PC0_IN_PU, | ||
86 | PD7_IN_PU, PD6_IN_PU, PD5_IN_PU, PD4_IN_PU, | ||
87 | PD3_IN_PU, PD2_IN_PU, PD1_IN_PU, PD0_IN_PU, | ||
88 | PE5_IN_PU, PE4_IN_PU, PE3_IN_PU, PE2_IN_PU, PE1_IN_PU, PE0_IN_PU, | ||
89 | PF7_IN_PU, PF6_IN_PU, PF5_IN_PU, PF4_IN_PU, | ||
90 | PF3_IN_PU, PF2_IN_PU, PF1_IN_PU, PF0_IN_PU, | ||
91 | PG7_IN_PU, PG6_IN_PU, PG5_IN_PU, PG4_IN_PU, | ||
92 | PG3_IN_PU, PG2_IN_PU, PG1_IN_PU, PG0_IN_PU, | ||
93 | PH7_IN_PU, PH6_IN_PU, PH5_IN_PU, PH4_IN_PU, | ||
94 | PH3_IN_PU, PH2_IN_PU, PH1_IN_PU, PH0_IN_PU, | ||
95 | PJ7_IN_PU, PJ6_IN_PU, PJ5_IN_PU, PJ4_IN_PU, | ||
96 | PJ3_IN_PU, PJ2_IN_PU, PJ1_IN_PU, PJ0_IN_PU, | ||
97 | PK7_IN_PU, PK6_IN_PU, PK5_IN_PU, PK4_IN_PU, | ||
98 | PK3_IN_PU, PK2_IN_PU, PK1_IN_PU, PK0_IN_PU, | ||
99 | PL7_IN_PU, PL6_IN_PU, PL5_IN_PU, PL4_IN_PU, | ||
100 | PL3_IN_PU, PL2_IN_PU, PL1_IN_PU, PL0_IN_PU, | ||
101 | PM1_IN_PU, PM0_IN_PU, | ||
102 | PN7_IN_PU, PN6_IN_PU, PN5_IN_PU, PN4_IN_PU, | ||
103 | PN3_IN_PU, PN2_IN_PU, PN1_IN_PU, PN0_IN_PU, | ||
104 | PP5_IN_PU, PP4_IN_PU, PP3_IN_PU, PP2_IN_PU, PP1_IN_PU, PP0_IN_PU, | ||
105 | PQ4_IN_PU, PQ3_IN_PU, PQ2_IN_PU, PQ1_IN_PU, PQ0_IN_PU, | ||
106 | PR3_IN_PU, PR2_IN_PU, PR1_IN_PU, PR0_IN_PU, | ||
107 | PINMUX_INPUT_PULLUP_END, | ||
108 | |||
109 | PINMUX_OUTPUT_BEGIN, | ||
110 | PA7_OUT, PA6_OUT, PA5_OUT, PA4_OUT, | ||
111 | PA3_OUT, PA2_OUT, PA1_OUT, PA0_OUT, | ||
112 | PB7_OUT, PB6_OUT, PB5_OUT, PB4_OUT, | ||
113 | PB3_OUT, PB2_OUT, PB1_OUT, PB0_OUT, | ||
114 | PC7_OUT, PC6_OUT, PC5_OUT, PC4_OUT, | ||
115 | PC3_OUT, PC2_OUT, PC1_OUT, PC0_OUT, | ||
116 | PD7_OUT, PD6_OUT, PD5_OUT, PD4_OUT, | ||
117 | PD3_OUT, PD2_OUT, PD1_OUT, PD0_OUT, | ||
118 | PE5_OUT, PE4_OUT, PE3_OUT, PE2_OUT, PE1_OUT, PE0_OUT, | ||
119 | PF7_OUT, PF6_OUT, PF5_OUT, PF4_OUT, | ||
120 | PF3_OUT, PF2_OUT, PF1_OUT, PF0_OUT, | ||
121 | PG7_OUT, PG6_OUT, PG5_OUT, PG4_OUT, | ||
122 | PG3_OUT, PG2_OUT, PG1_OUT, PG0_OUT, | ||
123 | PH7_OUT, PH6_OUT, PH5_OUT, PH4_OUT, | ||
124 | PH3_OUT, PH2_OUT, PH1_OUT, PH0_OUT, | ||
125 | PJ7_OUT, PJ6_OUT, PJ5_OUT, PJ4_OUT, | ||
126 | PJ3_OUT, PJ2_OUT, PJ1_OUT, PJ0_OUT, | ||
127 | PK7_OUT, PK6_OUT, PK5_OUT, PK4_OUT, | ||
128 | PK3_OUT, PK2_OUT, PK1_OUT, PK0_OUT, | ||
129 | PL7_OUT, PL6_OUT, PL5_OUT, PL4_OUT, | ||
130 | PL3_OUT, PL2_OUT, PL1_OUT, PL0_OUT, | ||
131 | PM1_OUT, PM0_OUT, | ||
132 | PN7_OUT, PN6_OUT, PN5_OUT, PN4_OUT, | ||
133 | PN3_OUT, PN2_OUT, PN1_OUT, PN0_OUT, | ||
134 | PP5_OUT, PP4_OUT, PP3_OUT, PP2_OUT, PP1_OUT, PP0_OUT, | ||
135 | PQ4_OUT, PQ3_OUT, PQ2_OUT, PQ1_OUT, PQ0_OUT, | ||
136 | PR3_OUT, PR2_OUT, PR1_OUT, PR0_OUT, | ||
137 | PINMUX_OUTPUT_END, | ||
138 | |||
139 | PINMUX_FUNCTION_BEGIN, | ||
140 | PA7_FN, PA6_FN, PA5_FN, PA4_FN, | ||
141 | PA3_FN, PA2_FN, PA1_FN, PA0_FN, | ||
142 | PB7_FN, PB6_FN, PB5_FN, PB4_FN, | ||
143 | PB3_FN, PB2_FN, PB1_FN, PB0_FN, | ||
144 | PC7_FN, PC6_FN, PC5_FN, PC4_FN, | ||
145 | PC3_FN, PC2_FN, PC1_FN, PC0_FN, | ||
146 | PD7_FN, PD6_FN, PD5_FN, PD4_FN, | ||
147 | PD3_FN, PD2_FN, PD1_FN, PD0_FN, | ||
148 | PE5_FN, PE4_FN, PE3_FN, PE2_FN, PE1_FN, PE0_FN, | ||
149 | PF7_FN, PF6_FN, PF5_FN, PF4_FN, | ||
150 | PF3_FN, PF2_FN, PF1_FN, PF0_FN, | ||
151 | PG7_FN, PG6_FN, PG5_FN, PG4_FN, | ||
152 | PG3_FN, PG2_FN, PG1_FN, PG0_FN, | ||
153 | PH7_FN, PH6_FN, PH5_FN, PH4_FN, | ||
154 | PH3_FN, PH2_FN, PH1_FN, PH0_FN, | ||
155 | PJ7_FN, PJ6_FN, PJ5_FN, PJ4_FN, | ||
156 | PJ3_FN, PJ2_FN, PJ1_FN, PJ0_FN, | ||
157 | PK7_FN, PK6_FN, PK5_FN, PK4_FN, | ||
158 | PK3_FN, PK2_FN, PK1_FN, PK0_FN, | ||
159 | PL7_FN, PL6_FN, PL5_FN, PL4_FN, | ||
160 | PL3_FN, PL2_FN, PL1_FN, PL0_FN, | ||
161 | PM1_FN, PM0_FN, | ||
162 | PN7_FN, PN6_FN, PN5_FN, PN4_FN, | ||
163 | PN3_FN, PN2_FN, PN1_FN, PN0_FN, | ||
164 | PP5_FN, PP4_FN, PP3_FN, PP2_FN, PP1_FN, PP0_FN, | ||
165 | PQ4_FN, PQ3_FN, PQ2_FN, PQ1_FN, PQ0_FN, | ||
166 | PR3_FN, PR2_FN, PR1_FN, PR0_FN, | ||
167 | P1MSEL15_0, P1MSEL15_1, | ||
168 | P1MSEL14_0, P1MSEL14_1, | ||
169 | P1MSEL13_0, P1MSEL13_1, | ||
170 | P1MSEL12_0, P1MSEL12_1, | ||
171 | P1MSEL11_0, P1MSEL11_1, | ||
172 | P1MSEL10_0, P1MSEL10_1, | ||
173 | P1MSEL9_0, P1MSEL9_1, | ||
174 | P1MSEL8_0, P1MSEL8_1, | ||
175 | P1MSEL7_0, P1MSEL7_1, | ||
176 | P1MSEL6_0, P1MSEL6_1, | ||
177 | P1MSEL5_0, | ||
178 | P1MSEL4_0, P1MSEL4_1, | ||
179 | P1MSEL3_0, P1MSEL3_1, | ||
180 | P1MSEL2_0, P1MSEL2_1, | ||
181 | P1MSEL1_0, P1MSEL1_1, | ||
182 | P1MSEL0_0, P1MSEL0_1, | ||
183 | P2MSEL2_0, P2MSEL2_1, | ||
184 | P2MSEL1_0, P2MSEL1_1, | ||
185 | P2MSEL0_0, P2MSEL0_1, | ||
186 | PINMUX_FUNCTION_END, | ||
187 | |||
188 | PINMUX_MARK_BEGIN, | ||
189 | D63_AD31_MARK, | ||
190 | D62_AD30_MARK, | ||
191 | D61_AD29_MARK, | ||
192 | D60_AD28_MARK, | ||
193 | D59_AD27_MARK, | ||
194 | D58_AD26_MARK, | ||
195 | D57_AD25_MARK, | ||
196 | D56_AD24_MARK, | ||
197 | D55_AD23_MARK, | ||
198 | D54_AD22_MARK, | ||
199 | D53_AD21_MARK, | ||
200 | D52_AD20_MARK, | ||
201 | D51_AD19_MARK, | ||
202 | D50_AD18_MARK, | ||
203 | D49_AD17_DB5_MARK, | ||
204 | D48_AD16_DB4_MARK, | ||
205 | D47_AD15_DB3_MARK, | ||
206 | D46_AD14_DB2_MARK, | ||
207 | D45_AD13_DB1_MARK, | ||
208 | D44_AD12_DB0_MARK, | ||
209 | D43_AD11_DG5_MARK, | ||
210 | D42_AD10_DG4_MARK, | ||
211 | D41_AD9_DG3_MARK, | ||
212 | D40_AD8_DG2_MARK, | ||
213 | D39_AD7_DG1_MARK, | ||
214 | D38_AD6_DG0_MARK, | ||
215 | D37_AD5_DR5_MARK, | ||
216 | D36_AD4_DR4_MARK, | ||
217 | D35_AD3_DR3_MARK, | ||
218 | D34_AD2_DR2_MARK, | ||
219 | D33_AD1_DR1_MARK, | ||
220 | D32_AD0_DR0_MARK, | ||
221 | REQ1_MARK, | ||
222 | REQ2_MARK, | ||
223 | REQ3_MARK, | ||
224 | GNT1_MARK, | ||
225 | GNT2_MARK, | ||
226 | GNT3_MARK, | ||
227 | MMCCLK_MARK, | ||
228 | D31_MARK, | ||
229 | D30_MARK, | ||
230 | D29_MARK, | ||
231 | D28_MARK, | ||
232 | D27_MARK, | ||
233 | D26_MARK, | ||
234 | D25_MARK, | ||
235 | D24_MARK, | ||
236 | D23_MARK, | ||
237 | D22_MARK, | ||
238 | D21_MARK, | ||
239 | D20_MARK, | ||
240 | D19_MARK, | ||
241 | D18_MARK, | ||
242 | D17_MARK, | ||
243 | D16_MARK, | ||
244 | SCIF1_SCK_MARK, | ||
245 | SCIF1_RXD_MARK, | ||
246 | SCIF1_TXD_MARK, | ||
247 | SCIF0_CTS_MARK, | ||
248 | INTD_MARK, | ||
249 | FCE_MARK, | ||
250 | SCIF0_RTS_MARK, | ||
251 | HSPI_CS_MARK, | ||
252 | FSE_MARK, | ||
253 | SCIF0_SCK_MARK, | ||
254 | HSPI_CLK_MARK, | ||
255 | FRE_MARK, | ||
256 | SCIF0_RXD_MARK, | ||
257 | HSPI_RX_MARK, | ||
258 | FRB_MARK, | ||
259 | SCIF0_TXD_MARK, | ||
260 | HSPI_TX_MARK, | ||
261 | FWE_MARK, | ||
262 | SCIF5_TXD_MARK, | ||
263 | HAC1_SYNC_MARK, | ||
264 | SSI1_WS_MARK, | ||
265 | SIOF_TXD_PJ_MARK, | ||
266 | HAC0_SDOUT_MARK, | ||
267 | SSI0_SDATA_MARK, | ||
268 | SIOF_RXD_PJ_MARK, | ||
269 | HAC0_SDIN_MARK, | ||
270 | SSI0_SCK_MARK, | ||
271 | SIOF_SYNC_PJ_MARK, | ||
272 | HAC0_SYNC_MARK, | ||
273 | SSI0_WS_MARK, | ||
274 | SIOF_MCLK_PJ_MARK, | ||
275 | HAC_RES_MARK, | ||
276 | SIOF_SCK_PJ_MARK, | ||
277 | HAC0_BITCLK_MARK, | ||
278 | SSI0_CLK_MARK, | ||
279 | HAC1_BITCLK_MARK, | ||
280 | SSI1_CLK_MARK, | ||
281 | TCLK_MARK, | ||
282 | IOIS16_MARK, | ||
283 | STATUS0_MARK, | ||
284 | DRAK0_PK3_MARK, | ||
285 | STATUS1_MARK, | ||
286 | DRAK1_PK2_MARK, | ||
287 | DACK2_MARK, | ||
288 | SCIF2_TXD_MARK, | ||
289 | MMCCMD_MARK, | ||
290 | SIOF_TXD_PK_MARK, | ||
291 | DACK3_MARK, | ||
292 | SCIF2_SCK_MARK, | ||
293 | MMCDAT_MARK, | ||
294 | SIOF_SCK_PK_MARK, | ||
295 | DREQ0_MARK, | ||
296 | DREQ1_MARK, | ||
297 | DRAK0_PK1_MARK, | ||
298 | DRAK1_PK0_MARK, | ||
299 | DREQ2_MARK, | ||
300 | INTB_MARK, | ||
301 | DREQ3_MARK, | ||
302 | INTC_MARK, | ||
303 | DRAK2_MARK, | ||
304 | CE2A_MARK, | ||
305 | IRL4_MARK, | ||
306 | FD4_MARK, | ||
307 | IRL5_MARK, | ||
308 | FD5_MARK, | ||
309 | IRL6_MARK, | ||
310 | FD6_MARK, | ||
311 | IRL7_MARK, | ||
312 | FD7_MARK, | ||
313 | DRAK3_MARK, | ||
314 | CE2B_MARK, | ||
315 | BREQ_BSACK_MARK, | ||
316 | BACK_BSREQ_MARK, | ||
317 | SCIF5_RXD_MARK, | ||
318 | HAC1_SDIN_MARK, | ||
319 | SSI1_SCK_MARK, | ||
320 | SCIF5_SCK_MARK, | ||
321 | HAC1_SDOUT_MARK, | ||
322 | SSI1_SDATA_MARK, | ||
323 | SCIF3_TXD_MARK, | ||
324 | FCLE_MARK, | ||
325 | SCIF3_RXD_MARK, | ||
326 | FALE_MARK, | ||
327 | SCIF3_SCK_MARK, | ||
328 | FD0_MARK, | ||
329 | SCIF4_TXD_MARK, | ||
330 | FD1_MARK, | ||
331 | SCIF4_RXD_MARK, | ||
332 | FD2_MARK, | ||
333 | SCIF4_SCK_MARK, | ||
334 | FD3_MARK, | ||
335 | DEVSEL_DCLKOUT_MARK, | ||
336 | STOP_CDE_MARK, | ||
337 | LOCK_ODDF_MARK, | ||
338 | TRDY_DISPL_MARK, | ||
339 | IRDY_HSYNC_MARK, | ||
340 | PCIFRAME_VSYNC_MARK, | ||
341 | INTA_MARK, | ||
342 | GNT0_GNTIN_MARK, | ||
343 | REQ0_REQOUT_MARK, | ||
344 | PERR_MARK, | ||
345 | SERR_MARK, | ||
346 | WE7_CBE3_MARK, | ||
347 | WE6_CBE2_MARK, | ||
348 | WE5_CBE1_MARK, | ||
349 | WE4_CBE0_MARK, | ||
350 | SCIF2_RXD_MARK, | ||
351 | SIOF_RXD_MARK, | ||
352 | MRESETOUT_MARK, | ||
353 | IRQOUT_MARK, | ||
354 | PINMUX_MARK_END, | ||
355 | }; | ||
356 | |||
357 | static pinmux_enum_t pinmux_data[] = { | ||
358 | |||
359 | /* PA GPIO */ | ||
360 | PINMUX_DATA(PA7_DATA, PA7_IN, PA7_OUT, PA7_IN_PU), | ||
361 | PINMUX_DATA(PA6_DATA, PA6_IN, PA6_OUT, PA6_IN_PU), | ||
362 | PINMUX_DATA(PA5_DATA, PA5_IN, PA5_OUT, PA5_IN_PU), | ||
363 | PINMUX_DATA(PA4_DATA, PA4_IN, PA4_OUT, PA4_IN_PU), | ||
364 | PINMUX_DATA(PA3_DATA, PA3_IN, PA3_OUT, PA3_IN_PU), | ||
365 | PINMUX_DATA(PA2_DATA, PA2_IN, PA2_OUT, PA2_IN_PU), | ||
366 | PINMUX_DATA(PA1_DATA, PA1_IN, PA1_OUT, PA1_IN_PU), | ||
367 | PINMUX_DATA(PA0_DATA, PA0_IN, PA0_OUT, PA0_IN_PU), | ||
368 | |||
369 | /* PB GPIO */ | ||
370 | PINMUX_DATA(PB7_DATA, PB7_IN, PB7_OUT, PB7_IN_PU), | ||
371 | PINMUX_DATA(PB6_DATA, PB6_IN, PB6_OUT, PB6_IN_PU), | ||
372 | PINMUX_DATA(PB5_DATA, PB5_IN, PB5_OUT, PB5_IN_PU), | ||
373 | PINMUX_DATA(PB4_DATA, PB4_IN, PB4_OUT, PB4_IN_PU), | ||
374 | PINMUX_DATA(PB3_DATA, PB3_IN, PB3_OUT, PB3_IN_PU), | ||
375 | PINMUX_DATA(PB2_DATA, PB2_IN, PB2_OUT, PB2_IN_PU), | ||
376 | PINMUX_DATA(PB1_DATA, PB1_IN, PB1_OUT, PB1_IN_PU), | ||
377 | PINMUX_DATA(PB0_DATA, PB0_IN, PB0_OUT, PB0_IN_PU), | ||
378 | |||
379 | /* PC GPIO */ | ||
380 | PINMUX_DATA(PC7_DATA, PC7_IN, PC7_OUT, PC7_IN_PU), | ||
381 | PINMUX_DATA(PC6_DATA, PC6_IN, PC6_OUT, PC6_IN_PU), | ||
382 | PINMUX_DATA(PC5_DATA, PC5_IN, PC5_OUT, PC5_IN_PU), | ||
383 | PINMUX_DATA(PC4_DATA, PC4_IN, PC4_OUT, PC4_IN_PU), | ||
384 | PINMUX_DATA(PC3_DATA, PC3_IN, PC3_OUT, PC3_IN_PU), | ||
385 | PINMUX_DATA(PC2_DATA, PC2_IN, PC2_OUT, PC2_IN_PU), | ||
386 | PINMUX_DATA(PC1_DATA, PC1_IN, PC1_OUT, PC1_IN_PU), | ||
387 | PINMUX_DATA(PC0_DATA, PC0_IN, PC0_OUT, PC0_IN_PU), | ||
388 | |||
389 | /* PD GPIO */ | ||
390 | PINMUX_DATA(PD7_DATA, PD7_IN, PD7_OUT, PD7_IN_PU), | ||
391 | PINMUX_DATA(PD6_DATA, PD6_IN, PD6_OUT, PD6_IN_PU), | ||
392 | PINMUX_DATA(PD5_DATA, PD5_IN, PD5_OUT, PD5_IN_PU), | ||
393 | PINMUX_DATA(PD4_DATA, PD4_IN, PD4_OUT, PD4_IN_PU), | ||
394 | PINMUX_DATA(PD3_DATA, PD3_IN, PD3_OUT, PD3_IN_PU), | ||
395 | PINMUX_DATA(PD2_DATA, PD2_IN, PD2_OUT, PD2_IN_PU), | ||
396 | PINMUX_DATA(PD1_DATA, PD1_IN, PD1_OUT, PD1_IN_PU), | ||
397 | PINMUX_DATA(PD0_DATA, PD0_IN, PD0_OUT, PD0_IN_PU), | ||
398 | |||
399 | /* PE GPIO */ | ||
400 | PINMUX_DATA(PE5_DATA, PE5_IN, PE5_OUT, PE5_IN_PU), | ||
401 | PINMUX_DATA(PE4_DATA, PE4_IN, PE4_OUT, PE4_IN_PU), | ||
402 | PINMUX_DATA(PE3_DATA, PE3_IN, PE3_OUT, PE3_IN_PU), | ||
403 | PINMUX_DATA(PE2_DATA, PE2_IN, PE2_OUT, PE2_IN_PU), | ||
404 | PINMUX_DATA(PE1_DATA, PE1_IN, PE1_OUT, PE1_IN_PU), | ||
405 | PINMUX_DATA(PE0_DATA, PE0_IN, PE0_OUT, PE0_IN_PU), | ||
406 | |||
407 | /* PF GPIO */ | ||
408 | PINMUX_DATA(PF7_DATA, PF7_IN, PF7_OUT, PF7_IN_PU), | ||
409 | PINMUX_DATA(PF6_DATA, PF6_IN, PF6_OUT, PF6_IN_PU), | ||
410 | PINMUX_DATA(PF5_DATA, PF5_IN, PF5_OUT, PF5_IN_PU), | ||
411 | PINMUX_DATA(PF4_DATA, PF4_IN, PF4_OUT, PF4_IN_PU), | ||
412 | PINMUX_DATA(PF3_DATA, PF3_IN, PF3_OUT, PF3_IN_PU), | ||
413 | PINMUX_DATA(PF2_DATA, PF2_IN, PF2_OUT, PF2_IN_PU), | ||
414 | PINMUX_DATA(PF1_DATA, PF1_IN, PF1_OUT, PF1_IN_PU), | ||
415 | PINMUX_DATA(PF0_DATA, PF0_IN, PF0_OUT, PF0_IN_PU), | ||
416 | |||
417 | /* PG GPIO */ | ||
418 | PINMUX_DATA(PG7_DATA, PG7_IN, PG7_OUT, PG7_IN_PU), | ||
419 | PINMUX_DATA(PG6_DATA, PG6_IN, PG6_OUT, PG6_IN_PU), | ||
420 | PINMUX_DATA(PG5_DATA, PG5_IN, PG5_OUT, PG5_IN_PU), | ||
421 | PINMUX_DATA(PG4_DATA, PG4_IN, PG4_OUT, PG4_IN_PU), | ||
422 | PINMUX_DATA(PG3_DATA, PG3_IN, PG3_OUT, PG3_IN_PU), | ||
423 | PINMUX_DATA(PG2_DATA, PG2_IN, PG2_OUT, PG2_IN_PU), | ||
424 | PINMUX_DATA(PG1_DATA, PG1_IN, PG1_OUT, PG1_IN_PU), | ||
425 | PINMUX_DATA(PG0_DATA, PG0_IN, PG0_OUT, PG0_IN_PU), | ||
426 | |||
427 | /* PH GPIO */ | ||
428 | PINMUX_DATA(PH7_DATA, PH7_IN, PH7_OUT, PH7_IN_PU), | ||
429 | PINMUX_DATA(PH6_DATA, PH6_IN, PH6_OUT, PH6_IN_PU), | ||
430 | PINMUX_DATA(PH5_DATA, PH5_IN, PH5_OUT, PH5_IN_PU), | ||
431 | PINMUX_DATA(PH4_DATA, PH4_IN, PH4_OUT, PH4_IN_PU), | ||
432 | PINMUX_DATA(PH3_DATA, PH3_IN, PH3_OUT, PH3_IN_PU), | ||
433 | PINMUX_DATA(PH2_DATA, PH2_IN, PH2_OUT, PH2_IN_PU), | ||
434 | PINMUX_DATA(PH1_DATA, PH1_IN, PH1_OUT, PH1_IN_PU), | ||
435 | PINMUX_DATA(PH0_DATA, PH0_IN, PH0_OUT, PH0_IN_PU), | ||
436 | |||
437 | /* PJ GPIO */ | ||
438 | PINMUX_DATA(PJ7_DATA, PJ7_IN, PJ7_OUT, PJ7_IN_PU), | ||
439 | PINMUX_DATA(PJ6_DATA, PJ6_IN, PJ6_OUT, PJ6_IN_PU), | ||
440 | PINMUX_DATA(PJ5_DATA, PJ5_IN, PJ5_OUT, PJ5_IN_PU), | ||
441 | PINMUX_DATA(PJ4_DATA, PJ4_IN, PJ4_OUT, PJ4_IN_PU), | ||
442 | PINMUX_DATA(PJ3_DATA, PJ3_IN, PJ3_OUT, PJ3_IN_PU), | ||
443 | PINMUX_DATA(PJ2_DATA, PJ2_IN, PJ2_OUT, PJ2_IN_PU), | ||
444 | PINMUX_DATA(PJ1_DATA, PJ1_IN, PJ1_OUT, PJ1_IN_PU), | ||
445 | PINMUX_DATA(PJ0_DATA, PJ0_IN, PJ0_OUT, PJ0_IN_PU), | ||
446 | |||
447 | /* PK GPIO */ | ||
448 | PINMUX_DATA(PK7_DATA, PK7_IN, PK7_OUT, PK7_IN_PU), | ||
449 | PINMUX_DATA(PK6_DATA, PK6_IN, PK6_OUT, PK6_IN_PU), | ||
450 | PINMUX_DATA(PK5_DATA, PK5_IN, PK5_OUT, PK5_IN_PU), | ||
451 | PINMUX_DATA(PK4_DATA, PK4_IN, PK4_OUT, PK4_IN_PU), | ||
452 | PINMUX_DATA(PK3_DATA, PK3_IN, PK3_OUT, PK3_IN_PU), | ||
453 | PINMUX_DATA(PK2_DATA, PK2_IN, PK2_OUT, PK2_IN_PU), | ||
454 | PINMUX_DATA(PK1_DATA, PK1_IN, PK1_OUT, PK1_IN_PU), | ||
455 | PINMUX_DATA(PK0_DATA, PK0_IN, PK0_OUT, PK0_IN_PU), | ||
456 | |||
457 | /* PL GPIO */ | ||
458 | PINMUX_DATA(PL7_DATA, PL7_IN, PL7_OUT, PL7_IN_PU), | ||
459 | PINMUX_DATA(PL6_DATA, PL6_IN, PL6_OUT, PL6_IN_PU), | ||
460 | PINMUX_DATA(PL5_DATA, PL5_IN, PL5_OUT, PL5_IN_PU), | ||
461 | PINMUX_DATA(PL4_DATA, PL4_IN, PL4_OUT, PL4_IN_PU), | ||
462 | PINMUX_DATA(PL3_DATA, PL3_IN, PL3_OUT, PL3_IN_PU), | ||
463 | PINMUX_DATA(PL2_DATA, PL2_IN, PL2_OUT, PL2_IN_PU), | ||
464 | PINMUX_DATA(PL1_DATA, PL1_IN, PL1_OUT, PL1_IN_PU), | ||
465 | PINMUX_DATA(PL0_DATA, PL0_IN, PL0_OUT, PL0_IN_PU), | ||
466 | |||
467 | /* PM GPIO */ | ||
468 | PINMUX_DATA(PM1_DATA, PM1_IN, PM1_OUT, PM1_IN_PU), | ||
469 | PINMUX_DATA(PM0_DATA, PM0_IN, PM0_OUT, PM0_IN_PU), | ||
470 | |||
471 | /* PN GPIO */ | ||
472 | PINMUX_DATA(PN7_DATA, PN7_IN, PN7_OUT, PN7_IN_PU), | ||
473 | PINMUX_DATA(PN6_DATA, PN6_IN, PN6_OUT, PN6_IN_PU), | ||
474 | PINMUX_DATA(PN5_DATA, PN5_IN, PN5_OUT, PN5_IN_PU), | ||
475 | PINMUX_DATA(PN4_DATA, PN4_IN, PN4_OUT, PN4_IN_PU), | ||
476 | PINMUX_DATA(PN3_DATA, PN3_IN, PN3_OUT, PN3_IN_PU), | ||
477 | PINMUX_DATA(PN2_DATA, PN2_IN, PN2_OUT, PN2_IN_PU), | ||
478 | PINMUX_DATA(PN1_DATA, PN1_IN, PN1_OUT, PN1_IN_PU), | ||
479 | PINMUX_DATA(PN0_DATA, PN0_IN, PN0_OUT, PN0_IN_PU), | ||
480 | |||
481 | /* PP GPIO */ | ||
482 | PINMUX_DATA(PP5_DATA, PP5_IN, PP5_OUT, PP5_IN_PU), | ||
483 | PINMUX_DATA(PP4_DATA, PP4_IN, PP4_OUT, PP4_IN_PU), | ||
484 | PINMUX_DATA(PP3_DATA, PP3_IN, PP3_OUT, PP3_IN_PU), | ||
485 | PINMUX_DATA(PP2_DATA, PP2_IN, PP2_OUT, PP2_IN_PU), | ||
486 | PINMUX_DATA(PP1_DATA, PP1_IN, PP1_OUT, PP1_IN_PU), | ||
487 | PINMUX_DATA(PP0_DATA, PP0_IN, PP0_OUT, PP0_IN_PU), | ||
488 | |||
489 | /* PQ GPIO */ | ||
490 | PINMUX_DATA(PQ4_DATA, PQ4_IN, PQ4_OUT, PQ4_IN_PU), | ||
491 | PINMUX_DATA(PQ3_DATA, PQ3_IN, PQ3_OUT, PQ3_IN_PU), | ||
492 | PINMUX_DATA(PQ2_DATA, PQ2_IN, PQ2_OUT, PQ2_IN_PU), | ||
493 | PINMUX_DATA(PQ1_DATA, PQ1_IN, PQ1_OUT, PQ1_IN_PU), | ||
494 | PINMUX_DATA(PQ0_DATA, PQ0_IN, PQ0_OUT, PQ0_IN_PU), | ||
495 | |||
496 | /* PR GPIO */ | ||
497 | PINMUX_DATA(PR3_DATA, PR3_IN, PR3_OUT, PR3_IN_PU), | ||
498 | PINMUX_DATA(PR2_DATA, PR2_IN, PR2_OUT, PR2_IN_PU), | ||
499 | PINMUX_DATA(PR1_DATA, PR1_IN, PR1_OUT, PR1_IN_PU), | ||
500 | PINMUX_DATA(PR0_DATA, PR0_IN, PR0_OUT, PR0_IN_PU), | ||
501 | |||
502 | /* PA FN */ | ||
503 | PINMUX_DATA(D63_AD31_MARK, PA7_FN), | ||
504 | PINMUX_DATA(D62_AD30_MARK, PA6_FN), | ||
505 | PINMUX_DATA(D61_AD29_MARK, PA5_FN), | ||
506 | PINMUX_DATA(D60_AD28_MARK, PA4_FN), | ||
507 | PINMUX_DATA(D59_AD27_MARK, PA3_FN), | ||
508 | PINMUX_DATA(D58_AD26_MARK, PA2_FN), | ||
509 | PINMUX_DATA(D57_AD25_MARK, PA1_FN), | ||
510 | PINMUX_DATA(D56_AD24_MARK, PA0_FN), | ||
511 | |||
512 | /* PB FN */ | ||
513 | PINMUX_DATA(D55_AD23_MARK, PB7_FN), | ||
514 | PINMUX_DATA(D54_AD22_MARK, PB6_FN), | ||
515 | PINMUX_DATA(D53_AD21_MARK, PB5_FN), | ||
516 | PINMUX_DATA(D52_AD20_MARK, PB4_FN), | ||
517 | PINMUX_DATA(D51_AD19_MARK, PB3_FN), | ||
518 | PINMUX_DATA(D50_AD18_MARK, PB2_FN), | ||
519 | PINMUX_DATA(D49_AD17_DB5_MARK, PB1_FN), | ||
520 | PINMUX_DATA(D48_AD16_DB4_MARK, PB0_FN), | ||
521 | |||
522 | /* PC FN */ | ||
523 | PINMUX_DATA(D47_AD15_DB3_MARK, PC7_FN), | ||
524 | PINMUX_DATA(D46_AD14_DB2_MARK, PC6_FN), | ||
525 | PINMUX_DATA(D45_AD13_DB1_MARK, PC5_FN), | ||
526 | PINMUX_DATA(D44_AD12_DB0_MARK, PC4_FN), | ||
527 | PINMUX_DATA(D43_AD11_DG5_MARK, PC3_FN), | ||
528 | PINMUX_DATA(D42_AD10_DG4_MARK, PC2_FN), | ||
529 | PINMUX_DATA(D41_AD9_DG3_MARK, PC1_FN), | ||
530 | PINMUX_DATA(D40_AD8_DG2_MARK, PC0_FN), | ||
531 | |||
532 | /* PD FN */ | ||
533 | PINMUX_DATA(D39_AD7_DG1_MARK, PD7_FN), | ||
534 | PINMUX_DATA(D38_AD6_DG0_MARK, PD6_FN), | ||
535 | PINMUX_DATA(D37_AD5_DR5_MARK, PD5_FN), | ||
536 | PINMUX_DATA(D36_AD4_DR4_MARK, PD4_FN), | ||
537 | PINMUX_DATA(D35_AD3_DR3_MARK, PD3_FN), | ||
538 | PINMUX_DATA(D34_AD2_DR2_MARK, PD2_FN), | ||
539 | PINMUX_DATA(D33_AD1_DR1_MARK, PD1_FN), | ||
540 | PINMUX_DATA(D32_AD0_DR0_MARK, PD0_FN), | ||
541 | |||
542 | /* PE FN */ | ||
543 | PINMUX_DATA(REQ1_MARK, PE5_FN), | ||
544 | PINMUX_DATA(REQ2_MARK, PE4_FN), | ||
545 | PINMUX_DATA(REQ3_MARK, P2MSEL0_0, PE3_FN), | ||
546 | PINMUX_DATA(GNT1_MARK, PE2_FN), | ||
547 | PINMUX_DATA(GNT2_MARK, PE1_FN), | ||
548 | PINMUX_DATA(GNT3_MARK, P2MSEL0_0, PE0_FN), | ||
549 | PINMUX_DATA(MMCCLK_MARK, P2MSEL0_1, PE0_FN), | ||
550 | |||
551 | /* PF FN */ | ||
552 | PINMUX_DATA(D31_MARK, PF7_FN), | ||
553 | PINMUX_DATA(D30_MARK, PF6_FN), | ||
554 | PINMUX_DATA(D29_MARK, PF5_FN), | ||
555 | PINMUX_DATA(D28_MARK, PF4_FN), | ||
556 | PINMUX_DATA(D27_MARK, PF3_FN), | ||
557 | PINMUX_DATA(D26_MARK, PF2_FN), | ||
558 | PINMUX_DATA(D25_MARK, PF1_FN), | ||
559 | PINMUX_DATA(D24_MARK, PF0_FN), | ||
560 | |||
561 | /* PF FN */ | ||
562 | PINMUX_DATA(D23_MARK, PG7_FN), | ||
563 | PINMUX_DATA(D22_MARK, PG6_FN), | ||
564 | PINMUX_DATA(D21_MARK, PG5_FN), | ||
565 | PINMUX_DATA(D20_MARK, PG4_FN), | ||
566 | PINMUX_DATA(D19_MARK, PG3_FN), | ||
567 | PINMUX_DATA(D18_MARK, PG2_FN), | ||
568 | PINMUX_DATA(D17_MARK, PG1_FN), | ||
569 | PINMUX_DATA(D16_MARK, PG0_FN), | ||
570 | |||
571 | /* PH FN */ | ||
572 | PINMUX_DATA(SCIF1_SCK_MARK, PH7_FN), | ||
573 | PINMUX_DATA(SCIF1_RXD_MARK, PH6_FN), | ||
574 | PINMUX_DATA(SCIF1_TXD_MARK, PH5_FN), | ||
575 | PINMUX_DATA(SCIF0_CTS_MARK, PH4_FN), | ||
576 | PINMUX_DATA(INTD_MARK, P1MSEL7_1, PH4_FN), | ||
577 | PINMUX_DATA(FCE_MARK, P1MSEL8_1, P1MSEL7_0, PH4_FN), | ||
578 | PINMUX_DATA(SCIF0_RTS_MARK, P1MSEL8_0, P1MSEL7_0, PH3_FN), | ||
579 | PINMUX_DATA(HSPI_CS_MARK, P1MSEL8_0, P1MSEL7_1, PH3_FN), | ||
580 | PINMUX_DATA(FSE_MARK, P1MSEL8_1, P1MSEL7_0, PH3_FN), | ||
581 | PINMUX_DATA(SCIF0_SCK_MARK, P1MSEL8_0, P1MSEL7_0, PH2_FN), | ||
582 | PINMUX_DATA(HSPI_CLK_MARK, P1MSEL8_0, P1MSEL7_1, PH2_FN), | ||
583 | PINMUX_DATA(FRE_MARK, P1MSEL8_1, P1MSEL7_0, PH2_FN), | ||
584 | PINMUX_DATA(SCIF0_RXD_MARK, P1MSEL8_0, P1MSEL7_0, PH1_FN), | ||
585 | PINMUX_DATA(HSPI_RX_MARK, P1MSEL8_0, P1MSEL7_1, PH1_FN), | ||
586 | PINMUX_DATA(FRB_MARK, P1MSEL8_1, P1MSEL7_0, PH1_FN), | ||
587 | PINMUX_DATA(SCIF0_TXD_MARK, P1MSEL8_0, P1MSEL7_0, PH0_FN), | ||
588 | PINMUX_DATA(HSPI_TX_MARK, P1MSEL8_0, P1MSEL7_1, PH0_FN), | ||
589 | PINMUX_DATA(FWE_MARK, P1MSEL8_1, P1MSEL7_0, PH0_FN), | ||
590 | |||
591 | /* PJ FN */ | ||
592 | PINMUX_DATA(SCIF5_TXD_MARK, P1MSEL2_0, P1MSEL1_0, PJ7_FN), | ||
593 | PINMUX_DATA(HAC1_SYNC_MARK, P1MSEL2_0, P1MSEL1_1, PJ7_FN), | ||
594 | PINMUX_DATA(SSI1_WS_MARK, P1MSEL2_1, P1MSEL1_0, PJ7_FN), | ||
595 | PINMUX_DATA(SIOF_TXD_PJ_MARK, P2MSEL1_0, P1MSEL4_0, P1MSEL3_0, PJ6_FN), | ||
596 | PINMUX_DATA(HAC0_SDOUT_MARK, P1MSEL4_0, P1MSEL3_1, PJ6_FN), | ||
597 | PINMUX_DATA(SSI0_SDATA_MARK, P1MSEL4_1, P1MSEL3_0, PJ6_FN), | ||
598 | PINMUX_DATA(SIOF_RXD_PJ_MARK, P2MSEL1_0, P1MSEL4_0, P1MSEL3_0, PJ5_FN), | ||
599 | PINMUX_DATA(HAC0_SDIN_MARK, P1MSEL4_0, P1MSEL3_1, PJ5_FN), | ||
600 | PINMUX_DATA(SSI0_SCK_MARK, P1MSEL4_1, P1MSEL3_0, PJ5_FN), | ||
601 | PINMUX_DATA(SIOF_SYNC_PJ_MARK, P2MSEL1_0, P1MSEL4_0, P1MSEL3_0, PJ4_FN), | ||
602 | PINMUX_DATA(HAC0_SYNC_MARK, P1MSEL4_0, P1MSEL3_1, PJ4_FN), | ||
603 | PINMUX_DATA(SSI0_WS_MARK, P1MSEL4_1, P1MSEL3_0, PJ4_FN), | ||
604 | PINMUX_DATA(SIOF_MCLK_PJ_MARK, P2MSEL1_0, P1MSEL4_0, P1MSEL3_0, PJ3_FN), | ||
605 | PINMUX_DATA(HAC_RES_MARK, P1MSEL4_0, P1MSEL3_1, PJ3_FN), | ||
606 | PINMUX_DATA(SIOF_SCK_PJ_MARK, P2MSEL1_0, P1MSEL4_0, P1MSEL3_0, PJ2_FN), | ||
607 | PINMUX_DATA(HAC0_BITCLK_MARK, P1MSEL4_0, P1MSEL3_1, PJ2_FN), | ||
608 | PINMUX_DATA(SSI0_CLK_MARK, P1MSEL4_1, P1MSEL3_0, PJ2_FN), | ||
609 | PINMUX_DATA(HAC1_BITCLK_MARK, P1MSEL2_0, PJ1_FN), | ||
610 | PINMUX_DATA(SSI1_CLK_MARK, P1MSEL2_1, P1MSEL1_0, PJ1_FN), | ||
611 | PINMUX_DATA(TCLK_MARK, P1MSEL9_0, PJ0_FN), | ||
612 | PINMUX_DATA(IOIS16_MARK, P1MSEL9_1, PJ0_FN), | ||
613 | |||
614 | /* PK FN */ | ||
615 | PINMUX_DATA(STATUS0_MARK, P1MSEL15_0, PK7_FN), | ||
616 | PINMUX_DATA(DRAK0_PK3_MARK, P1MSEL15_1, PK7_FN), | ||
617 | PINMUX_DATA(STATUS1_MARK, P1MSEL15_0, PK6_FN), | ||
618 | PINMUX_DATA(DRAK1_PK2_MARK, P1MSEL15_1, PK6_FN), | ||
619 | PINMUX_DATA(DACK2_MARK, P1MSEL12_0, P1MSEL11_0, PK5_FN), | ||
620 | PINMUX_DATA(SCIF2_TXD_MARK, P1MSEL12_1, P1MSEL11_0, PK5_FN), | ||
621 | PINMUX_DATA(MMCCMD_MARK, P1MSEL12_1, P1MSEL11_1, PK5_FN), | ||
622 | PINMUX_DATA(SIOF_TXD_PK_MARK, P2MSEL1_1, | ||
623 | P1MSEL12_0, P1MSEL11_1, PK5_FN), | ||
624 | PINMUX_DATA(DACK3_MARK, P1MSEL12_0, P1MSEL11_0, PK4_FN), | ||
625 | PINMUX_DATA(SCIF2_SCK_MARK, P1MSEL12_1, P1MSEL11_0, PK4_FN), | ||
626 | PINMUX_DATA(MMCDAT_MARK, P1MSEL12_1, P1MSEL11_1, PK4_FN), | ||
627 | PINMUX_DATA(SIOF_SCK_PK_MARK, P2MSEL1_1, | ||
628 | P1MSEL12_0, P1MSEL11_1, PK4_FN), | ||
629 | PINMUX_DATA(DREQ0_MARK, PK3_FN), | ||
630 | PINMUX_DATA(DREQ1_MARK, PK2_FN), | ||
631 | PINMUX_DATA(DRAK0_PK1_MARK, PK1_FN), | ||
632 | PINMUX_DATA(DRAK1_PK0_MARK, PK0_FN), | ||
633 | |||
634 | /* PL FN */ | ||
635 | PINMUX_DATA(DREQ2_MARK, P1MSEL13_0, PL7_FN), | ||
636 | PINMUX_DATA(INTB_MARK, P1MSEL13_1, PL7_FN), | ||
637 | PINMUX_DATA(DREQ3_MARK, P1MSEL13_0, PL6_FN), | ||
638 | PINMUX_DATA(INTC_MARK, P1MSEL13_1, PL6_FN), | ||
639 | PINMUX_DATA(DRAK2_MARK, P1MSEL10_0, PL5_FN), | ||
640 | PINMUX_DATA(CE2A_MARK, P1MSEL10_1, PL5_FN), | ||
641 | PINMUX_DATA(IRL4_MARK, P1MSEL14_0, PL4_FN), | ||
642 | PINMUX_DATA(FD4_MARK, P1MSEL14_1, PL4_FN), | ||
643 | PINMUX_DATA(IRL5_MARK, P1MSEL14_0, PL3_FN), | ||
644 | PINMUX_DATA(FD5_MARK, P1MSEL14_1, PL3_FN), | ||
645 | PINMUX_DATA(IRL6_MARK, P1MSEL14_0, PL2_FN), | ||
646 | PINMUX_DATA(FD6_MARK, P1MSEL14_1, PL2_FN), | ||
647 | PINMUX_DATA(IRL7_MARK, P1MSEL14_0, PL1_FN), | ||
648 | PINMUX_DATA(FD7_MARK, P1MSEL14_1, PL1_FN), | ||
649 | PINMUX_DATA(DRAK3_MARK, P1MSEL10_0, PL0_FN), | ||
650 | PINMUX_DATA(CE2B_MARK, P1MSEL10_1, PL0_FN), | ||
651 | |||
652 | /* PM FN */ | ||
653 | PINMUX_DATA(BREQ_BSACK_MARK, PM1_FN), | ||
654 | PINMUX_DATA(BACK_BSREQ_MARK, PM0_FN), | ||
655 | |||
656 | /* PN FN */ | ||
657 | PINMUX_DATA(SCIF5_RXD_MARK, P1MSEL2_0, P1MSEL1_0, PN7_FN), | ||
658 | PINMUX_DATA(HAC1_SDIN_MARK, P1MSEL2_0, P1MSEL1_1, PN7_FN), | ||
659 | PINMUX_DATA(SSI1_SCK_MARK, P1MSEL2_1, P1MSEL1_0, PN7_FN), | ||
660 | PINMUX_DATA(SCIF5_SCK_MARK, P1MSEL2_0, P1MSEL1_0, PN6_FN), | ||
661 | PINMUX_DATA(HAC1_SDOUT_MARK, P1MSEL2_0, P1MSEL1_1, PN6_FN), | ||
662 | PINMUX_DATA(SSI1_SDATA_MARK, P1MSEL2_1, P1MSEL1_0, PN6_FN), | ||
663 | PINMUX_DATA(SCIF3_TXD_MARK, P1MSEL0_0, PN5_FN), | ||
664 | PINMUX_DATA(FCLE_MARK, P1MSEL0_1, PN5_FN), | ||
665 | PINMUX_DATA(SCIF3_RXD_MARK, P1MSEL0_0, PN4_FN), | ||
666 | PINMUX_DATA(FALE_MARK, P1MSEL0_1, PN4_FN), | ||
667 | PINMUX_DATA(SCIF3_SCK_MARK, P1MSEL0_0, PN3_FN), | ||
668 | PINMUX_DATA(FD0_MARK, P1MSEL0_1, PN3_FN), | ||
669 | PINMUX_DATA(SCIF4_TXD_MARK, P1MSEL0_0, PN2_FN), | ||
670 | PINMUX_DATA(FD1_MARK, P1MSEL0_1, PN2_FN), | ||
671 | PINMUX_DATA(SCIF4_RXD_MARK, P1MSEL0_0, PN1_FN), | ||
672 | PINMUX_DATA(FD2_MARK, P1MSEL0_1, PN1_FN), | ||
673 | PINMUX_DATA(SCIF4_SCK_MARK, P1MSEL0_0, PN0_FN), | ||
674 | PINMUX_DATA(FD3_MARK, P1MSEL0_1, PN0_FN), | ||
675 | |||
676 | /* PP FN */ | ||
677 | PINMUX_DATA(DEVSEL_DCLKOUT_MARK, PP5_FN), | ||
678 | PINMUX_DATA(STOP_CDE_MARK, PP4_FN), | ||
679 | PINMUX_DATA(LOCK_ODDF_MARK, PP3_FN), | ||
680 | PINMUX_DATA(TRDY_DISPL_MARK, PP2_FN), | ||
681 | PINMUX_DATA(IRDY_HSYNC_MARK, PP1_FN), | ||
682 | PINMUX_DATA(PCIFRAME_VSYNC_MARK, PP0_FN), | ||
683 | |||
684 | /* PQ FN */ | ||
685 | PINMUX_DATA(INTA_MARK, PQ4_FN), | ||
686 | PINMUX_DATA(GNT0_GNTIN_MARK, PQ3_FN), | ||
687 | PINMUX_DATA(REQ0_REQOUT_MARK, PQ2_FN), | ||
688 | PINMUX_DATA(PERR_MARK, PQ1_FN), | ||
689 | PINMUX_DATA(SERR_MARK, PQ0_FN), | ||
690 | |||
691 | /* PR FN */ | ||
692 | PINMUX_DATA(WE7_CBE3_MARK, PR3_FN), | ||
693 | PINMUX_DATA(WE6_CBE2_MARK, PR2_FN), | ||
694 | PINMUX_DATA(WE5_CBE1_MARK, PR1_FN), | ||
695 | PINMUX_DATA(WE4_CBE0_MARK, PR0_FN), | ||
696 | |||
697 | /* MISC FN */ | ||
698 | PINMUX_DATA(SCIF2_RXD_MARK, P1MSEL6_0, P1MSEL5_0), | ||
699 | PINMUX_DATA(SIOF_RXD_MARK, P2MSEL1_1, P1MSEL6_1, P1MSEL5_0), | ||
700 | PINMUX_DATA(MRESETOUT_MARK, P2MSEL2_0), | ||
701 | PINMUX_DATA(IRQOUT_MARK, P2MSEL2_1), | ||
702 | }; | ||
703 | |||
704 | static struct pinmux_gpio pinmux_gpios[] = { | ||
705 | /* PA */ | ||
706 | PINMUX_GPIO(GPIO_PA7, PA7_DATA), | ||
707 | PINMUX_GPIO(GPIO_PA6, PA6_DATA), | ||
708 | PINMUX_GPIO(GPIO_PA5, PA5_DATA), | ||
709 | PINMUX_GPIO(GPIO_PA4, PA4_DATA), | ||
710 | PINMUX_GPIO(GPIO_PA3, PA3_DATA), | ||
711 | PINMUX_GPIO(GPIO_PA2, PA2_DATA), | ||
712 | PINMUX_GPIO(GPIO_PA1, PA1_DATA), | ||
713 | PINMUX_GPIO(GPIO_PA0, PA0_DATA), | ||
714 | |||
715 | /* PB */ | ||
716 | PINMUX_GPIO(GPIO_PB7, PB7_DATA), | ||
717 | PINMUX_GPIO(GPIO_PB6, PB6_DATA), | ||
718 | PINMUX_GPIO(GPIO_PB5, PB5_DATA), | ||
719 | PINMUX_GPIO(GPIO_PB4, PB4_DATA), | ||
720 | PINMUX_GPIO(GPIO_PB3, PB3_DATA), | ||
721 | PINMUX_GPIO(GPIO_PB2, PB2_DATA), | ||
722 | PINMUX_GPIO(GPIO_PB1, PB1_DATA), | ||
723 | PINMUX_GPIO(GPIO_PB0, PB0_DATA), | ||
724 | |||
725 | /* PC */ | ||
726 | PINMUX_GPIO(GPIO_PC7, PC7_DATA), | ||
727 | PINMUX_GPIO(GPIO_PC6, PC6_DATA), | ||
728 | PINMUX_GPIO(GPIO_PC5, PC5_DATA), | ||
729 | PINMUX_GPIO(GPIO_PC4, PC4_DATA), | ||
730 | PINMUX_GPIO(GPIO_PC3, PC3_DATA), | ||
731 | PINMUX_GPIO(GPIO_PC2, PC2_DATA), | ||
732 | PINMUX_GPIO(GPIO_PC1, PC1_DATA), | ||
733 | PINMUX_GPIO(GPIO_PC0, PC0_DATA), | ||
734 | |||
735 | /* PD */ | ||
736 | PINMUX_GPIO(GPIO_PD7, PD7_DATA), | ||
737 | PINMUX_GPIO(GPIO_PD6, PD6_DATA), | ||
738 | PINMUX_GPIO(GPIO_PD5, PD5_DATA), | ||
739 | PINMUX_GPIO(GPIO_PD4, PD4_DATA), | ||
740 | PINMUX_GPIO(GPIO_PD3, PD3_DATA), | ||
741 | PINMUX_GPIO(GPIO_PD2, PD2_DATA), | ||
742 | PINMUX_GPIO(GPIO_PD1, PD1_DATA), | ||
743 | PINMUX_GPIO(GPIO_PD0, PD0_DATA), | ||
744 | |||
745 | /* PE */ | ||
746 | PINMUX_GPIO(GPIO_PE5, PE5_DATA), | ||
747 | PINMUX_GPIO(GPIO_PE4, PE4_DATA), | ||
748 | PINMUX_GPIO(GPIO_PE3, PE3_DATA), | ||
749 | PINMUX_GPIO(GPIO_PE2, PE2_DATA), | ||
750 | PINMUX_GPIO(GPIO_PE1, PE1_DATA), | ||
751 | PINMUX_GPIO(GPIO_PE0, PE0_DATA), | ||
752 | |||
753 | /* PF */ | ||
754 | PINMUX_GPIO(GPIO_PF7, PF7_DATA), | ||
755 | PINMUX_GPIO(GPIO_PF6, PF6_DATA), | ||
756 | PINMUX_GPIO(GPIO_PF5, PF5_DATA), | ||
757 | PINMUX_GPIO(GPIO_PF4, PF4_DATA), | ||
758 | PINMUX_GPIO(GPIO_PF3, PF3_DATA), | ||
759 | PINMUX_GPIO(GPIO_PF2, PF2_DATA), | ||
760 | PINMUX_GPIO(GPIO_PF1, PF1_DATA), | ||
761 | PINMUX_GPIO(GPIO_PF0, PF0_DATA), | ||
762 | |||
763 | /* PG */ | ||
764 | PINMUX_GPIO(GPIO_PG7, PG7_DATA), | ||
765 | PINMUX_GPIO(GPIO_PG6, PG6_DATA), | ||
766 | PINMUX_GPIO(GPIO_PG5, PG5_DATA), | ||
767 | PINMUX_GPIO(GPIO_PG4, PG4_DATA), | ||
768 | PINMUX_GPIO(GPIO_PG3, PG3_DATA), | ||
769 | PINMUX_GPIO(GPIO_PG2, PG2_DATA), | ||
770 | PINMUX_GPIO(GPIO_PG1, PG1_DATA), | ||
771 | PINMUX_GPIO(GPIO_PG0, PG0_DATA), | ||
772 | |||
773 | /* PH */ | ||
774 | PINMUX_GPIO(GPIO_PH7, PH7_DATA), | ||
775 | PINMUX_GPIO(GPIO_PH6, PH6_DATA), | ||
776 | PINMUX_GPIO(GPIO_PH5, PH5_DATA), | ||
777 | PINMUX_GPIO(GPIO_PH4, PH4_DATA), | ||
778 | PINMUX_GPIO(GPIO_PH3, PH3_DATA), | ||
779 | PINMUX_GPIO(GPIO_PH2, PH2_DATA), | ||
780 | PINMUX_GPIO(GPIO_PH1, PH1_DATA), | ||
781 | PINMUX_GPIO(GPIO_PH0, PH0_DATA), | ||
782 | |||
783 | /* PJ */ | ||
784 | PINMUX_GPIO(GPIO_PJ7, PJ7_DATA), | ||
785 | PINMUX_GPIO(GPIO_PJ6, PJ6_DATA), | ||
786 | PINMUX_GPIO(GPIO_PJ5, PJ5_DATA), | ||
787 | PINMUX_GPIO(GPIO_PJ4, PJ4_DATA), | ||
788 | PINMUX_GPIO(GPIO_PJ3, PJ3_DATA), | ||
789 | PINMUX_GPIO(GPIO_PJ2, PJ2_DATA), | ||
790 | PINMUX_GPIO(GPIO_PJ1, PJ1_DATA), | ||
791 | PINMUX_GPIO(GPIO_PJ0, PJ0_DATA), | ||
792 | |||
793 | /* PK */ | ||
794 | PINMUX_GPIO(GPIO_PK7, PK7_DATA), | ||
795 | PINMUX_GPIO(GPIO_PK6, PK6_DATA), | ||
796 | PINMUX_GPIO(GPIO_PK5, PK5_DATA), | ||
797 | PINMUX_GPIO(GPIO_PK4, PK4_DATA), | ||
798 | PINMUX_GPIO(GPIO_PK3, PK3_DATA), | ||
799 | PINMUX_GPIO(GPIO_PK2, PK2_DATA), | ||
800 | PINMUX_GPIO(GPIO_PK1, PK1_DATA), | ||
801 | PINMUX_GPIO(GPIO_PK0, PK0_DATA), | ||
802 | |||
803 | /* PL */ | ||
804 | PINMUX_GPIO(GPIO_PL7, PL7_DATA), | ||
805 | PINMUX_GPIO(GPIO_PL6, PL6_DATA), | ||
806 | PINMUX_GPIO(GPIO_PL5, PL5_DATA), | ||
807 | PINMUX_GPIO(GPIO_PL4, PL4_DATA), | ||
808 | PINMUX_GPIO(GPIO_PL3, PL3_DATA), | ||
809 | PINMUX_GPIO(GPIO_PL2, PL2_DATA), | ||
810 | PINMUX_GPIO(GPIO_PL1, PL1_DATA), | ||
811 | PINMUX_GPIO(GPIO_PL0, PL0_DATA), | ||
812 | |||
813 | /* PM */ | ||
814 | PINMUX_GPIO(GPIO_PM1, PM1_DATA), | ||
815 | PINMUX_GPIO(GPIO_PM0, PM0_DATA), | ||
816 | |||
817 | /* PN */ | ||
818 | PINMUX_GPIO(GPIO_PN7, PN7_DATA), | ||
819 | PINMUX_GPIO(GPIO_PN6, PN6_DATA), | ||
820 | PINMUX_GPIO(GPIO_PN5, PN5_DATA), | ||
821 | PINMUX_GPIO(GPIO_PN4, PN4_DATA), | ||
822 | PINMUX_GPIO(GPIO_PN3, PN3_DATA), | ||
823 | PINMUX_GPIO(GPIO_PN2, PN2_DATA), | ||
824 | PINMUX_GPIO(GPIO_PN1, PN1_DATA), | ||
825 | PINMUX_GPIO(GPIO_PN0, PN0_DATA), | ||
826 | |||
827 | /* PP */ | ||
828 | PINMUX_GPIO(GPIO_PP5, PP5_DATA), | ||
829 | PINMUX_GPIO(GPIO_PP4, PP4_DATA), | ||
830 | PINMUX_GPIO(GPIO_PP3, PP3_DATA), | ||
831 | PINMUX_GPIO(GPIO_PP2, PP2_DATA), | ||
832 | PINMUX_GPIO(GPIO_PP1, PP1_DATA), | ||
833 | PINMUX_GPIO(GPIO_PP0, PP0_DATA), | ||
834 | |||
835 | /* PQ */ | ||
836 | PINMUX_GPIO(GPIO_PQ4, PQ4_DATA), | ||
837 | PINMUX_GPIO(GPIO_PQ3, PQ3_DATA), | ||
838 | PINMUX_GPIO(GPIO_PQ2, PQ2_DATA), | ||
839 | PINMUX_GPIO(GPIO_PQ1, PQ1_DATA), | ||
840 | PINMUX_GPIO(GPIO_PQ0, PQ0_DATA), | ||
841 | |||
842 | /* PR */ | ||
843 | PINMUX_GPIO(GPIO_PR3, PR3_DATA), | ||
844 | PINMUX_GPIO(GPIO_PR2, PR2_DATA), | ||
845 | PINMUX_GPIO(GPIO_PR1, PR1_DATA), | ||
846 | PINMUX_GPIO(GPIO_PR0, PR0_DATA), | ||
847 | |||
848 | /* FN */ | ||
849 | PINMUX_GPIO(GPIO_FN_D63_AD31, D63_AD31_MARK), | ||
850 | PINMUX_GPIO(GPIO_FN_D62_AD30, D62_AD30_MARK), | ||
851 | PINMUX_GPIO(GPIO_FN_D61_AD29, D61_AD29_MARK), | ||
852 | PINMUX_GPIO(GPIO_FN_D60_AD28, D60_AD28_MARK), | ||
853 | PINMUX_GPIO(GPIO_FN_D59_AD27, D59_AD27_MARK), | ||
854 | PINMUX_GPIO(GPIO_FN_D58_AD26, D58_AD26_MARK), | ||
855 | PINMUX_GPIO(GPIO_FN_D57_AD25, D57_AD25_MARK), | ||
856 | PINMUX_GPIO(GPIO_FN_D56_AD24, D56_AD24_MARK), | ||
857 | PINMUX_GPIO(GPIO_FN_D55_AD23, D55_AD23_MARK), | ||
858 | PINMUX_GPIO(GPIO_FN_D54_AD22, D54_AD22_MARK), | ||
859 | PINMUX_GPIO(GPIO_FN_D53_AD21, D53_AD21_MARK), | ||
860 | PINMUX_GPIO(GPIO_FN_D52_AD20, D52_AD20_MARK), | ||
861 | PINMUX_GPIO(GPIO_FN_D51_AD19, D51_AD19_MARK), | ||
862 | PINMUX_GPIO(GPIO_FN_D50_AD18, D50_AD18_MARK), | ||
863 | PINMUX_GPIO(GPIO_FN_D49_AD17_DB5, D49_AD17_DB5_MARK), | ||
864 | PINMUX_GPIO(GPIO_FN_D48_AD16_DB4, D48_AD16_DB4_MARK), | ||
865 | PINMUX_GPIO(GPIO_FN_D47_AD15_DB3, D47_AD15_DB3_MARK), | ||
866 | PINMUX_GPIO(GPIO_FN_D46_AD14_DB2, D46_AD14_DB2_MARK), | ||
867 | PINMUX_GPIO(GPIO_FN_D45_AD13_DB1, D45_AD13_DB1_MARK), | ||
868 | PINMUX_GPIO(GPIO_FN_D44_AD12_DB0, D44_AD12_DB0_MARK), | ||
869 | PINMUX_GPIO(GPIO_FN_D43_AD11_DG5, D43_AD11_DG5_MARK), | ||
870 | PINMUX_GPIO(GPIO_FN_D42_AD10_DG4, D42_AD10_DG4_MARK), | ||
871 | PINMUX_GPIO(GPIO_FN_D41_AD9_DG3, D41_AD9_DG3_MARK), | ||
872 | PINMUX_GPIO(GPIO_FN_D40_AD8_DG2, D40_AD8_DG2_MARK), | ||
873 | PINMUX_GPIO(GPIO_FN_D39_AD7_DG1, D39_AD7_DG1_MARK), | ||
874 | PINMUX_GPIO(GPIO_FN_D38_AD6_DG0, D38_AD6_DG0_MARK), | ||
875 | PINMUX_GPIO(GPIO_FN_D37_AD5_DR5, D37_AD5_DR5_MARK), | ||
876 | PINMUX_GPIO(GPIO_FN_D36_AD4_DR4, D36_AD4_DR4_MARK), | ||
877 | PINMUX_GPIO(GPIO_FN_D35_AD3_DR3, D35_AD3_DR3_MARK), | ||
878 | PINMUX_GPIO(GPIO_FN_D34_AD2_DR2, D34_AD2_DR2_MARK), | ||
879 | PINMUX_GPIO(GPIO_FN_D33_AD1_DR1, D33_AD1_DR1_MARK), | ||
880 | PINMUX_GPIO(GPIO_FN_D32_AD0_DR0, D32_AD0_DR0_MARK), | ||
881 | PINMUX_GPIO(GPIO_FN_REQ1, REQ1_MARK), | ||
882 | PINMUX_GPIO(GPIO_FN_REQ2, REQ2_MARK), | ||
883 | PINMUX_GPIO(GPIO_FN_REQ3, REQ3_MARK), | ||
884 | PINMUX_GPIO(GPIO_FN_GNT1, GNT1_MARK), | ||
885 | PINMUX_GPIO(GPIO_FN_GNT2, GNT2_MARK), | ||
886 | PINMUX_GPIO(GPIO_FN_GNT3, GNT3_MARK), | ||
887 | PINMUX_GPIO(GPIO_FN_MMCCLK, MMCCLK_MARK), | ||
888 | PINMUX_GPIO(GPIO_FN_D31, D31_MARK), | ||
889 | PINMUX_GPIO(GPIO_FN_D30, D30_MARK), | ||
890 | PINMUX_GPIO(GPIO_FN_D29, D29_MARK), | ||
891 | PINMUX_GPIO(GPIO_FN_D28, D28_MARK), | ||
892 | PINMUX_GPIO(GPIO_FN_D27, D27_MARK), | ||
893 | PINMUX_GPIO(GPIO_FN_D26, D26_MARK), | ||
894 | PINMUX_GPIO(GPIO_FN_D25, D25_MARK), | ||
895 | PINMUX_GPIO(GPIO_FN_D24, D24_MARK), | ||
896 | PINMUX_GPIO(GPIO_FN_D23, D23_MARK), | ||
897 | PINMUX_GPIO(GPIO_FN_D22, D22_MARK), | ||
898 | PINMUX_GPIO(GPIO_FN_D21, D21_MARK), | ||
899 | PINMUX_GPIO(GPIO_FN_D20, D20_MARK), | ||
900 | PINMUX_GPIO(GPIO_FN_D19, D19_MARK), | ||
901 | PINMUX_GPIO(GPIO_FN_D18, D18_MARK), | ||
902 | PINMUX_GPIO(GPIO_FN_D17, D17_MARK), | ||
903 | PINMUX_GPIO(GPIO_FN_D16, D16_MARK), | ||
904 | PINMUX_GPIO(GPIO_FN_SCIF1_SCK, SCIF1_SCK_MARK), | ||
905 | PINMUX_GPIO(GPIO_FN_SCIF1_RXD, SCIF1_RXD_MARK), | ||
906 | PINMUX_GPIO(GPIO_FN_SCIF1_TXD, SCIF1_TXD_MARK), | ||
907 | PINMUX_GPIO(GPIO_FN_SCIF0_CTS, SCIF0_CTS_MARK), | ||
908 | PINMUX_GPIO(GPIO_FN_INTD, INTD_MARK), | ||
909 | PINMUX_GPIO(GPIO_FN_FCE, FCE_MARK), | ||
910 | PINMUX_GPIO(GPIO_FN_SCIF0_RTS, SCIF0_RTS_MARK), | ||
911 | PINMUX_GPIO(GPIO_FN_HSPI_CS, HSPI_CS_MARK), | ||
912 | PINMUX_GPIO(GPIO_FN_FSE, FSE_MARK), | ||
913 | PINMUX_GPIO(GPIO_FN_SCIF0_SCK, SCIF0_SCK_MARK), | ||
914 | PINMUX_GPIO(GPIO_FN_HSPI_CLK, HSPI_CLK_MARK), | ||
915 | PINMUX_GPIO(GPIO_FN_FRE, FRE_MARK), | ||
916 | PINMUX_GPIO(GPIO_FN_SCIF0_RXD, SCIF0_RXD_MARK), | ||
917 | PINMUX_GPIO(GPIO_FN_HSPI_RX, HSPI_RX_MARK), | ||
918 | PINMUX_GPIO(GPIO_FN_FRB, FRB_MARK), | ||
919 | PINMUX_GPIO(GPIO_FN_SCIF0_TXD, SCIF0_TXD_MARK), | ||
920 | PINMUX_GPIO(GPIO_FN_HSPI_TX, HSPI_TX_MARK), | ||
921 | PINMUX_GPIO(GPIO_FN_FWE, FWE_MARK), | ||
922 | PINMUX_GPIO(GPIO_FN_SCIF5_TXD, SCIF5_TXD_MARK), | ||
923 | PINMUX_GPIO(GPIO_FN_HAC1_SYNC, HAC1_SYNC_MARK), | ||
924 | PINMUX_GPIO(GPIO_FN_SSI1_WS, SSI1_WS_MARK), | ||
925 | PINMUX_GPIO(GPIO_FN_SIOF_TXD_PJ, SIOF_TXD_PJ_MARK), | ||
926 | PINMUX_GPIO(GPIO_FN_HAC0_SDOUT, HAC0_SDOUT_MARK), | ||
927 | PINMUX_GPIO(GPIO_FN_SSI0_SDATA, SSI0_SDATA_MARK), | ||
928 | PINMUX_GPIO(GPIO_FN_SIOF_RXD_PJ, SIOF_RXD_PJ_MARK), | ||
929 | PINMUX_GPIO(GPIO_FN_HAC0_SDIN, HAC0_SDIN_MARK), | ||
930 | PINMUX_GPIO(GPIO_FN_SSI0_SCK, SSI0_SCK_MARK), | ||
931 | PINMUX_GPIO(GPIO_FN_SIOF_SYNC_PJ, SIOF_SYNC_PJ_MARK), | ||
932 | PINMUX_GPIO(GPIO_FN_HAC0_SYNC, HAC0_SYNC_MARK), | ||
933 | PINMUX_GPIO(GPIO_FN_SSI0_WS, SSI0_WS_MARK), | ||
934 | PINMUX_GPIO(GPIO_FN_SIOF_MCLK_PJ, SIOF_MCLK_PJ_MARK), | ||
935 | PINMUX_GPIO(GPIO_FN_HAC_RES, HAC_RES_MARK), | ||
936 | PINMUX_GPIO(GPIO_FN_SIOF_SCK_PJ, SIOF_SCK_PJ_MARK), | ||
937 | PINMUX_GPIO(GPIO_FN_HAC0_BITCLK, HAC0_BITCLK_MARK), | ||
938 | PINMUX_GPIO(GPIO_FN_SSI0_CLK, SSI0_CLK_MARK), | ||
939 | PINMUX_GPIO(GPIO_FN_HAC1_BITCLK, HAC1_BITCLK_MARK), | ||
940 | PINMUX_GPIO(GPIO_FN_SSI1_CLK, SSI1_CLK_MARK), | ||
941 | PINMUX_GPIO(GPIO_FN_TCLK, TCLK_MARK), | ||
942 | PINMUX_GPIO(GPIO_FN_IOIS16, IOIS16_MARK), | ||
943 | PINMUX_GPIO(GPIO_FN_STATUS0, STATUS0_MARK), | ||
944 | PINMUX_GPIO(GPIO_FN_DRAK0_PK3, DRAK0_PK3_MARK), | ||
945 | PINMUX_GPIO(GPIO_FN_STATUS1, STATUS1_MARK), | ||
946 | PINMUX_GPIO(GPIO_FN_DRAK1_PK2, DRAK1_PK2_MARK), | ||
947 | PINMUX_GPIO(GPIO_FN_DACK2, DACK2_MARK), | ||
948 | PINMUX_GPIO(GPIO_FN_SCIF2_TXD, SCIF2_TXD_MARK), | ||
949 | PINMUX_GPIO(GPIO_FN_MMCCMD, MMCCMD_MARK), | ||
950 | PINMUX_GPIO(GPIO_FN_SIOF_TXD_PK, SIOF_TXD_PK_MARK), | ||
951 | PINMUX_GPIO(GPIO_FN_DACK3, DACK3_MARK), | ||
952 | PINMUX_GPIO(GPIO_FN_SCIF2_SCK, SCIF2_SCK_MARK), | ||
953 | PINMUX_GPIO(GPIO_FN_MMCDAT, MMCDAT_MARK), | ||
954 | PINMUX_GPIO(GPIO_FN_SIOF_SCK_PK, SIOF_SCK_PK_MARK), | ||
955 | PINMUX_GPIO(GPIO_FN_DREQ0, DREQ0_MARK), | ||
956 | PINMUX_GPIO(GPIO_FN_DREQ1, DREQ1_MARK), | ||
957 | PINMUX_GPIO(GPIO_FN_DRAK0_PK1, DRAK0_PK1_MARK), | ||
958 | PINMUX_GPIO(GPIO_FN_DRAK1_PK0, DRAK1_PK0_MARK), | ||
959 | PINMUX_GPIO(GPIO_FN_DREQ2, DREQ2_MARK), | ||
960 | PINMUX_GPIO(GPIO_FN_INTB, INTB_MARK), | ||
961 | PINMUX_GPIO(GPIO_FN_DREQ3, DREQ3_MARK), | ||
962 | PINMUX_GPIO(GPIO_FN_INTC, INTC_MARK), | ||
963 | PINMUX_GPIO(GPIO_FN_DRAK2, DRAK2_MARK), | ||
964 | PINMUX_GPIO(GPIO_FN_CE2A, CE2A_MARK), | ||
965 | PINMUX_GPIO(GPIO_FN_IRL4, IRL4_MARK), | ||
966 | PINMUX_GPIO(GPIO_FN_FD4, FD4_MARK), | ||
967 | PINMUX_GPIO(GPIO_FN_IRL5, IRL5_MARK), | ||
968 | PINMUX_GPIO(GPIO_FN_FD5, FD5_MARK), | ||
969 | PINMUX_GPIO(GPIO_FN_IRL6, IRL6_MARK), | ||
970 | PINMUX_GPIO(GPIO_FN_FD6, FD6_MARK), | ||
971 | PINMUX_GPIO(GPIO_FN_IRL7, IRL7_MARK), | ||
972 | PINMUX_GPIO(GPIO_FN_FD7, FD7_MARK), | ||
973 | PINMUX_GPIO(GPIO_FN_DRAK3, DRAK3_MARK), | ||
974 | PINMUX_GPIO(GPIO_FN_CE2B, CE2B_MARK), | ||
975 | PINMUX_GPIO(GPIO_FN_BREQ_BSACK, BREQ_BSACK_MARK), | ||
976 | PINMUX_GPIO(GPIO_FN_BACK_BSREQ, BACK_BSREQ_MARK), | ||
977 | PINMUX_GPIO(GPIO_FN_SCIF5_RXD, SCIF5_RXD_MARK), | ||
978 | PINMUX_GPIO(GPIO_FN_HAC1_SDIN, HAC1_SDIN_MARK), | ||
979 | PINMUX_GPIO(GPIO_FN_SSI1_SCK, SSI1_SCK_MARK), | ||
980 | PINMUX_GPIO(GPIO_FN_SCIF5_SCK, SCIF5_SCK_MARK), | ||
981 | PINMUX_GPIO(GPIO_FN_HAC1_SDOUT, HAC1_SDOUT_MARK), | ||
982 | PINMUX_GPIO(GPIO_FN_SSI1_SDATA, SSI1_SDATA_MARK), | ||
983 | PINMUX_GPIO(GPIO_FN_SCIF3_TXD, SCIF3_TXD_MARK), | ||
984 | PINMUX_GPIO(GPIO_FN_FCLE, FCLE_MARK), | ||
985 | PINMUX_GPIO(GPIO_FN_SCIF3_RXD, SCIF3_RXD_MARK), | ||
986 | PINMUX_GPIO(GPIO_FN_FALE, FALE_MARK), | ||
987 | PINMUX_GPIO(GPIO_FN_SCIF3_SCK, SCIF3_SCK_MARK), | ||
988 | PINMUX_GPIO(GPIO_FN_FD0, FD0_MARK), | ||
989 | PINMUX_GPIO(GPIO_FN_SCIF4_TXD, SCIF4_TXD_MARK), | ||
990 | PINMUX_GPIO(GPIO_FN_FD1, FD1_MARK), | ||
991 | PINMUX_GPIO(GPIO_FN_SCIF4_RXD, SCIF4_RXD_MARK), | ||
992 | PINMUX_GPIO(GPIO_FN_FD2, FD2_MARK), | ||
993 | PINMUX_GPIO(GPIO_FN_SCIF4_SCK, SCIF4_SCK_MARK), | ||
994 | PINMUX_GPIO(GPIO_FN_FD3, FD3_MARK), | ||
995 | PINMUX_GPIO(GPIO_FN_DEVSEL_DCLKOUT, DEVSEL_DCLKOUT_MARK), | ||
996 | PINMUX_GPIO(GPIO_FN_STOP_CDE, STOP_CDE_MARK), | ||
997 | PINMUX_GPIO(GPIO_FN_LOCK_ODDF, LOCK_ODDF_MARK), | ||
998 | PINMUX_GPIO(GPIO_FN_TRDY_DISPL, TRDY_DISPL_MARK), | ||
999 | PINMUX_GPIO(GPIO_FN_IRDY_HSYNC, IRDY_HSYNC_MARK), | ||
1000 | PINMUX_GPIO(GPIO_FN_PCIFRAME_VSYNC, PCIFRAME_VSYNC_MARK), | ||
1001 | PINMUX_GPIO(GPIO_FN_INTA, INTA_MARK), | ||
1002 | PINMUX_GPIO(GPIO_FN_GNT0_GNTIN, GNT0_GNTIN_MARK), | ||
1003 | PINMUX_GPIO(GPIO_FN_REQ0_REQOUT, REQ0_REQOUT_MARK), | ||
1004 | PINMUX_GPIO(GPIO_FN_PERR, PERR_MARK), | ||
1005 | PINMUX_GPIO(GPIO_FN_SERR, SERR_MARK), | ||
1006 | PINMUX_GPIO(GPIO_FN_WE7_CBE3, WE7_CBE3_MARK), | ||
1007 | PINMUX_GPIO(GPIO_FN_WE6_CBE2, WE6_CBE2_MARK), | ||
1008 | PINMUX_GPIO(GPIO_FN_WE5_CBE1, WE5_CBE1_MARK), | ||
1009 | PINMUX_GPIO(GPIO_FN_WE4_CBE0, WE4_CBE0_MARK), | ||
1010 | PINMUX_GPIO(GPIO_FN_SCIF2_RXD, SCIF2_RXD_MARK), | ||
1011 | PINMUX_GPIO(GPIO_FN_SIOF_RXD, SIOF_RXD_MARK), | ||
1012 | PINMUX_GPIO(GPIO_FN_MRESETOUT, MRESETOUT_MARK), | ||
1013 | PINMUX_GPIO(GPIO_FN_IRQOUT, IRQOUT_MARK), | ||
1014 | }; | ||
1015 | |||
1016 | static struct pinmux_cfg_reg pinmux_config_regs[] = { | ||
1017 | { PINMUX_CFG_REG("PACR", 0xffe70000, 16, 2) { | ||
1018 | PA7_FN, PA7_OUT, PA7_IN, PA7_IN_PU, | ||
1019 | PA6_FN, PA6_OUT, PA6_IN, PA6_IN_PU, | ||
1020 | PA5_FN, PA5_OUT, PA5_IN, PA5_IN_PU, | ||
1021 | PA4_FN, PA4_OUT, PA4_IN, PA4_IN_PU, | ||
1022 | PA3_FN, PA3_OUT, PA3_IN, PA3_IN_PU, | ||
1023 | PA2_FN, PA2_OUT, PA2_IN, PA2_IN_PU, | ||
1024 | PA1_FN, PA1_OUT, PA1_IN, PA1_IN_PU, | ||
1025 | PA0_FN, PA0_OUT, PA0_IN, PA0_IN_PU } | ||
1026 | }, | ||
1027 | { PINMUX_CFG_REG("PBCR", 0xffe70002, 16, 2) { | ||
1028 | PB7_FN, PB7_OUT, PB7_IN, PB7_IN_PU, | ||
1029 | PB6_FN, PB6_OUT, PB6_IN, PB6_IN_PU, | ||
1030 | PB5_FN, PB5_OUT, PB5_IN, PB5_IN_PU, | ||
1031 | PB4_FN, PB4_OUT, PB4_IN, PB4_IN_PU, | ||
1032 | PB3_FN, PB3_OUT, PB3_IN, PB3_IN_PU, | ||
1033 | PB2_FN, PB2_OUT, PB2_IN, PB2_IN_PU, | ||
1034 | PB1_FN, PB1_OUT, PB1_IN, PB1_IN_PU, | ||
1035 | PB0_FN, PB0_OUT, PB0_IN, PB0_IN_PU } | ||
1036 | }, | ||
1037 | { PINMUX_CFG_REG("PCCR", 0xffe70004, 16, 2) { | ||
1038 | PC7_FN, PC7_OUT, PC7_IN, PC7_IN_PU, | ||
1039 | PC6_FN, PC6_OUT, PC6_IN, PC6_IN_PU, | ||
1040 | PC5_FN, PC5_OUT, PC5_IN, PC5_IN_PU, | ||
1041 | PC4_FN, PC4_OUT, PC4_IN, PC4_IN_PU, | ||
1042 | PC3_FN, PC3_OUT, PC3_IN, PC3_IN_PU, | ||
1043 | PC2_FN, PC2_OUT, PC2_IN, PC2_IN_PU, | ||
1044 | PC1_FN, PC1_OUT, PC1_IN, PC1_IN_PU, | ||
1045 | PC0_FN, PC0_OUT, PC0_IN, PC0_IN_PU } | ||
1046 | }, | ||
1047 | { PINMUX_CFG_REG("PDCR", 0xffe70006, 16, 2) { | ||
1048 | PD7_FN, PD7_OUT, PD7_IN, PD7_IN_PU, | ||
1049 | PD6_FN, PD6_OUT, PD6_IN, PD6_IN_PU, | ||
1050 | PD5_FN, PD5_OUT, PD5_IN, PD5_IN_PU, | ||
1051 | PD4_FN, PD4_OUT, PD4_IN, PD4_IN_PU, | ||
1052 | PD3_FN, PD3_OUT, PD3_IN, PD3_IN_PU, | ||
1053 | PD2_FN, PD2_OUT, PD2_IN, PD2_IN_PU, | ||
1054 | PD1_FN, PD1_OUT, PD1_IN, PD1_IN_PU, | ||
1055 | PD0_FN, PD0_OUT, PD0_IN, PD0_IN_PU } | ||
1056 | }, | ||
1057 | { PINMUX_CFG_REG("PECR", 0xffe70008, 16, 2) { | ||
1058 | 0, 0, 0, 0, | ||
1059 | 0, 0, 0, 0, | ||
1060 | PE5_FN, PE5_OUT, PE5_IN, PE5_IN_PU, | ||
1061 | PE4_FN, PE4_OUT, PE4_IN, PE4_IN_PU, | ||
1062 | PE3_FN, PE3_OUT, PE3_IN, PE3_IN_PU, | ||
1063 | PE2_FN, PE2_OUT, PE2_IN, PE2_IN_PU, | ||
1064 | PE1_FN, PE1_OUT, PE1_IN, PE1_IN_PU, | ||
1065 | PE0_FN, PE0_OUT, PE0_IN, PE0_IN_PU } | ||
1066 | }, | ||
1067 | { PINMUX_CFG_REG("PFCR", 0xffe7000a, 16, 2) { | ||
1068 | PF7_FN, PF7_OUT, PF7_IN, PF7_IN_PU, | ||
1069 | PF6_FN, PF6_OUT, PF6_IN, PF6_IN_PU, | ||
1070 | PF5_FN, PF5_OUT, PF5_IN, PF5_IN_PU, | ||
1071 | PF4_FN, PF4_OUT, PF4_IN, PF4_IN_PU, | ||
1072 | PF3_FN, PF3_OUT, PF3_IN, PF3_IN_PU, | ||
1073 | PF2_FN, PF2_OUT, PF2_IN, PF2_IN_PU, | ||
1074 | PF1_FN, PF1_OUT, PF1_IN, PF1_IN_PU, | ||
1075 | PF0_FN, PF0_OUT, PF0_IN, PF0_IN_PU } | ||
1076 | }, | ||
1077 | { PINMUX_CFG_REG("PGCR", 0xffe7000c, 16, 2) { | ||
1078 | PG7_FN, PG7_OUT, PG7_IN, PG7_IN_PU, | ||
1079 | PG6_FN, PG6_OUT, PG6_IN, PG6_IN_PU, | ||
1080 | PG5_FN, PG5_OUT, PG5_IN, PG5_IN_PU, | ||
1081 | PG4_FN, PG4_OUT, PG4_IN, PG4_IN_PU, | ||
1082 | PG3_FN, PG3_OUT, PG3_IN, PG3_IN_PU, | ||
1083 | PG2_FN, PG2_OUT, PG2_IN, PG2_IN_PU, | ||
1084 | PG1_FN, PG1_OUT, PG1_IN, PG1_IN_PU, | ||
1085 | PG0_FN, PG0_OUT, PG0_IN, PG0_IN_PU } | ||
1086 | }, | ||
1087 | { PINMUX_CFG_REG("PHCR", 0xffe7000e, 16, 2) { | ||
1088 | PH7_FN, PH7_OUT, PH7_IN, PH7_IN_PU, | ||
1089 | PH6_FN, PH6_OUT, PH6_IN, PH6_IN_PU, | ||
1090 | PH5_FN, PH5_OUT, PH5_IN, PH5_IN_PU, | ||
1091 | PH4_FN, PH4_OUT, PH4_IN, PH4_IN_PU, | ||
1092 | PH3_FN, PH3_OUT, PH3_IN, PH3_IN_PU, | ||
1093 | PH2_FN, PH2_OUT, PH2_IN, PH2_IN_PU, | ||
1094 | PH1_FN, PH1_OUT, PH1_IN, PH1_IN_PU, | ||
1095 | PH0_FN, PH0_OUT, PH0_IN, PH0_IN_PU } | ||
1096 | }, | ||
1097 | { PINMUX_CFG_REG("PJCR", 0xffe70010, 16, 2) { | ||
1098 | PJ7_FN, PJ7_OUT, PJ7_IN, PJ7_IN_PU, | ||
1099 | PJ6_FN, PJ6_OUT, PJ6_IN, PJ6_IN_PU, | ||
1100 | PJ5_FN, PJ5_OUT, PJ5_IN, PJ5_IN_PU, | ||
1101 | PJ4_FN, PJ4_OUT, PJ4_IN, PJ4_IN_PU, | ||
1102 | PJ3_FN, PJ3_OUT, PJ3_IN, PJ3_IN_PU, | ||
1103 | PJ2_FN, PJ2_OUT, PJ2_IN, PJ2_IN_PU, | ||
1104 | PJ1_FN, PJ1_OUT, PJ1_IN, PJ1_IN_PU, | ||
1105 | PJ0_FN, PJ0_OUT, PJ0_IN, PJ0_IN_PU } | ||
1106 | }, | ||
1107 | { PINMUX_CFG_REG("PKCR", 0xffe70012, 16, 2) { | ||
1108 | PK7_FN, PK7_OUT, PK7_IN, PK7_IN_PU, | ||
1109 | PK6_FN, PK6_OUT, PK6_IN, PK6_IN_PU, | ||
1110 | PK5_FN, PK5_OUT, PK5_IN, PK5_IN_PU, | ||
1111 | PK4_FN, PK4_OUT, PK4_IN, PK4_IN_PU, | ||
1112 | PK3_FN, PK3_OUT, PK3_IN, PK3_IN_PU, | ||
1113 | PK2_FN, PK2_OUT, PK2_IN, PK2_IN_PU, | ||
1114 | PK1_FN, PK1_OUT, PK1_IN, PK1_IN_PU, | ||
1115 | PK0_FN, PK0_OUT, PK0_IN, PK0_IN_PU } | ||
1116 | }, | ||
1117 | { PINMUX_CFG_REG("PLCR", 0xffe70014, 16, 2) { | ||
1118 | PL7_FN, PL7_OUT, PL7_IN, PL7_IN_PU, | ||
1119 | PL6_FN, PL6_OUT, PL6_IN, PL6_IN_PU, | ||
1120 | PL5_FN, PL5_OUT, PL5_IN, PL5_IN_PU, | ||
1121 | PL4_FN, PL4_OUT, PL4_IN, PL4_IN_PU, | ||
1122 | PL3_FN, PL3_OUT, PL3_IN, PL3_IN_PU, | ||
1123 | PL2_FN, PL2_OUT, PL2_IN, PL2_IN_PU, | ||
1124 | PL1_FN, PL1_OUT, PL1_IN, PL1_IN_PU, | ||
1125 | PL0_FN, PL0_OUT, PL0_IN, PL0_IN_PU } | ||
1126 | }, | ||
1127 | { PINMUX_CFG_REG("PMCR", 0xffe70016, 16, 2) { | ||
1128 | 0, 0, 0, 0, | ||
1129 | 0, 0, 0, 0, | ||
1130 | 0, 0, 0, 0, | ||
1131 | 0, 0, 0, 0, | ||
1132 | 0, 0, 0, 0, | ||
1133 | 0, 0, 0, 0, | ||
1134 | PM1_FN, PM1_OUT, PM1_IN, PM1_IN_PU, | ||
1135 | PM0_FN, PM0_OUT, PM0_IN, PM0_IN_PU } | ||
1136 | }, | ||
1137 | { PINMUX_CFG_REG("PNCR", 0xffe70018, 16, 2) { | ||
1138 | PN7_FN, PN7_OUT, PN7_IN, PN7_IN_PU, | ||
1139 | PN6_FN, PN6_OUT, PN6_IN, PN6_IN_PU, | ||
1140 | PN5_FN, PN5_OUT, PN5_IN, PN5_IN_PU, | ||
1141 | PN4_FN, PN4_OUT, PN4_IN, PN4_IN_PU, | ||
1142 | PN3_FN, PN3_OUT, PN3_IN, PN3_IN_PU, | ||
1143 | PN2_FN, PN2_OUT, PN2_IN, PN2_IN_PU, | ||
1144 | PN1_FN, PN1_OUT, PN1_IN, PN1_IN_PU, | ||
1145 | PN0_FN, PN0_OUT, PN0_IN, PN0_IN_PU } | ||
1146 | }, | ||
1147 | { PINMUX_CFG_REG("PPCR", 0xffe7001a, 16, 2) { | ||
1148 | 0, 0, 0, 0, | ||
1149 | 0, 0, 0, 0, | ||
1150 | PP5_FN, PP5_OUT, PP5_IN, PP5_IN_PU, | ||
1151 | PP4_FN, PP4_OUT, PP4_IN, PP4_IN_PU, | ||
1152 | PP3_FN, PP3_OUT, PP3_IN, PP3_IN_PU, | ||
1153 | PP2_FN, PP2_OUT, PP2_IN, PP2_IN_PU, | ||
1154 | PP1_FN, PP1_OUT, PP1_IN, PP1_IN_PU, | ||
1155 | PP0_FN, PP0_OUT, PP0_IN, PP0_IN_PU } | ||
1156 | }, | ||
1157 | { PINMUX_CFG_REG("PQCR", 0xffe7001c, 16, 2) { | ||
1158 | 0, 0, 0, 0, | ||
1159 | 0, 0, 0, 0, | ||
1160 | 0, 0, 0, 0, | ||
1161 | PQ4_FN, PQ4_OUT, PQ4_IN, PQ4_IN_PU, | ||
1162 | PQ3_FN, PQ3_OUT, PQ3_IN, PQ3_IN_PU, | ||
1163 | PQ2_FN, PQ2_OUT, PQ2_IN, PQ2_IN_PU, | ||
1164 | PQ1_FN, PQ1_OUT, PQ1_IN, PQ1_IN_PU, | ||
1165 | PQ0_FN, PQ0_OUT, PQ0_IN, PQ0_IN_PU } | ||
1166 | }, | ||
1167 | { PINMUX_CFG_REG("PRCR", 0xffe7001e, 16, 2) { | ||
1168 | 0, 0, 0, 0, | ||
1169 | 0, 0, 0, 0, | ||
1170 | 0, 0, 0, 0, | ||
1171 | 0, 0, 0, 0, | ||
1172 | PR3_FN, PR3_OUT, PR3_IN, PR3_IN_PU, | ||
1173 | PR2_FN, PR2_OUT, PR2_IN, PR2_IN_PU, | ||
1174 | PR1_FN, PR1_OUT, PR1_IN, PR1_IN_PU, | ||
1175 | PR0_FN, PR0_OUT, PR0_IN, PR0_IN_PU } | ||
1176 | }, | ||
1177 | { PINMUX_CFG_REG("P1MSELR", 0xffe70080, 16, 1) { | ||
1178 | P1MSEL15_0, P1MSEL15_1, | ||
1179 | P1MSEL14_0, P1MSEL14_1, | ||
1180 | P1MSEL13_0, P1MSEL13_1, | ||
1181 | P1MSEL12_0, P1MSEL12_1, | ||
1182 | P1MSEL11_0, P1MSEL11_1, | ||
1183 | P1MSEL10_0, P1MSEL10_1, | ||
1184 | P1MSEL9_0, P1MSEL9_1, | ||
1185 | P1MSEL8_0, P1MSEL8_1, | ||
1186 | P1MSEL7_0, P1MSEL7_1, | ||
1187 | P1MSEL6_0, P1MSEL6_1, | ||
1188 | P1MSEL5_0, 0, | ||
1189 | P1MSEL4_0, P1MSEL4_1, | ||
1190 | P1MSEL3_0, P1MSEL3_1, | ||
1191 | P1MSEL2_0, P1MSEL2_1, | ||
1192 | P1MSEL1_0, P1MSEL1_1, | ||
1193 | P1MSEL0_0, P1MSEL0_1 } | ||
1194 | }, | ||
1195 | { PINMUX_CFG_REG("P2MSELR", 0xffe70082, 16, 1) { | ||
1196 | 0, 0, | ||
1197 | 0, 0, | ||
1198 | 0, 0, | ||
1199 | 0, 0, | ||
1200 | 0, 0, | ||
1201 | 0, 0, | ||
1202 | 0, 0, | ||
1203 | 0, 0, | ||
1204 | 0, 0, | ||
1205 | 0, 0, | ||
1206 | 0, 0, | ||
1207 | 0, 0, | ||
1208 | 0, 0, | ||
1209 | P2MSEL2_0, P2MSEL2_1, | ||
1210 | P2MSEL1_0, P2MSEL1_1, | ||
1211 | P2MSEL0_0, P2MSEL0_1 } | ||
1212 | }, | ||
1213 | {} | ||
1214 | }; | ||
1215 | |||
1216 | static struct pinmux_data_reg pinmux_data_regs[] = { | ||
1217 | { PINMUX_DATA_REG("PADR", 0xffe70020, 8) { | ||
1218 | PA7_DATA, PA6_DATA, PA5_DATA, PA4_DATA, | ||
1219 | PA3_DATA, PA2_DATA, PA1_DATA, PA0_DATA } | ||
1220 | }, | ||
1221 | { PINMUX_DATA_REG("PBDR", 0xffe70022, 8) { | ||
1222 | PB7_DATA, PB6_DATA, PB5_DATA, PB4_DATA, | ||
1223 | PB3_DATA, PB2_DATA, PB1_DATA, PB0_DATA } | ||
1224 | }, | ||
1225 | { PINMUX_DATA_REG("PCDR", 0xffe70024, 8) { | ||
1226 | PC7_DATA, PC6_DATA, PC5_DATA, PC4_DATA, | ||
1227 | PC3_DATA, PC2_DATA, PC1_DATA, PC0_DATA } | ||
1228 | }, | ||
1229 | { PINMUX_DATA_REG("PDDR", 0xffe70026, 8) { | ||
1230 | PD7_DATA, PD6_DATA, PD5_DATA, PD4_DATA, | ||
1231 | PD3_DATA, PD2_DATA, PD1_DATA, PD0_DATA } | ||
1232 | }, | ||
1233 | { PINMUX_DATA_REG("PEDR", 0xffe70028, 8) { | ||
1234 | 0, 0, PE5_DATA, PE4_DATA, | ||
1235 | PE3_DATA, PE2_DATA, PE1_DATA, PE0_DATA } | ||
1236 | }, | ||
1237 | { PINMUX_DATA_REG("PFDR", 0xffe7002a, 8) { | ||
1238 | PF7_DATA, PF6_DATA, PF5_DATA, PF4_DATA, | ||
1239 | PF3_DATA, PF2_DATA, PF1_DATA, PF0_DATA } | ||
1240 | }, | ||
1241 | { PINMUX_DATA_REG("PGDR", 0xffe7002c, 8) { | ||
1242 | PG7_DATA, PG6_DATA, PG5_DATA, PG4_DATA, | ||
1243 | PG3_DATA, PG2_DATA, PG1_DATA, PG0_DATA } | ||
1244 | }, | ||
1245 | { PINMUX_DATA_REG("PHDR", 0xffe7002e, 8) { | ||
1246 | PH7_DATA, PH6_DATA, PH5_DATA, PH4_DATA, | ||
1247 | PH3_DATA, PH2_DATA, PH1_DATA, PH0_DATA } | ||
1248 | }, | ||
1249 | { PINMUX_DATA_REG("PJDR", 0xffe70030, 8) { | ||
1250 | PJ7_DATA, PJ6_DATA, PJ5_DATA, PJ4_DATA, | ||
1251 | PJ3_DATA, PJ2_DATA, PJ1_DATA, PJ0_DATA } | ||
1252 | }, | ||
1253 | { PINMUX_DATA_REG("PKDR", 0xffe70032, 8) { | ||
1254 | PK7_DATA, PK6_DATA, PK5_DATA, PK4_DATA, | ||
1255 | PK3_DATA, PK2_DATA, PK1_DATA, PK0_DATA } | ||
1256 | }, | ||
1257 | { PINMUX_DATA_REG("PLDR", 0xffe70034, 8) { | ||
1258 | PL7_DATA, PL6_DATA, PL5_DATA, PL4_DATA, | ||
1259 | PL3_DATA, PL2_DATA, PL1_DATA, PL0_DATA } | ||
1260 | }, | ||
1261 | { PINMUX_DATA_REG("PMDR", 0xffe70036, 8) { | ||
1262 | 0, 0, 0, 0, | ||
1263 | 0, 0, PM1_DATA, PM0_DATA } | ||
1264 | }, | ||
1265 | { PINMUX_DATA_REG("PNDR", 0xffe70038, 8) { | ||
1266 | PN7_DATA, PN6_DATA, PN5_DATA, PN4_DATA, | ||
1267 | PN3_DATA, PN2_DATA, PN1_DATA, PN0_DATA } | ||
1268 | }, | ||
1269 | { PINMUX_DATA_REG("PPDR", 0xffe7003a, 8) { | ||
1270 | 0, 0, PP5_DATA, PP4_DATA, | ||
1271 | PP3_DATA, PP2_DATA, PP1_DATA, PP0_DATA } | ||
1272 | }, | ||
1273 | { PINMUX_DATA_REG("PQDR", 0xffe7003c, 8) { | ||
1274 | 0, 0, 0, PQ4_DATA, | ||
1275 | PQ3_DATA, PQ2_DATA, PQ1_DATA, PQ0_DATA } | ||
1276 | }, | ||
1277 | { PINMUX_DATA_REG("PRDR", 0xffe7003e, 8) { | ||
1278 | 0, 0, 0, 0, | ||
1279 | PR3_DATA, PR2_DATA, PR1_DATA, PR0_DATA } | ||
1280 | }, | ||
1281 | { }, | ||
1282 | }; | ||
1283 | |||
1284 | static struct pinmux_info sh7785_pinmux_info = { | ||
1285 | .name = "sh7785_pfc", | ||
1286 | .reserved_id = PINMUX_RESERVED, | ||
1287 | .data = { PINMUX_DATA_BEGIN, PINMUX_DATA_END }, | ||
1288 | .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END }, | ||
1289 | .input_pu = { PINMUX_INPUT_PULLUP_BEGIN, PINMUX_INPUT_PULLUP_END }, | ||
1290 | .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END }, | ||
1291 | .mark = { PINMUX_MARK_BEGIN, PINMUX_MARK_END }, | ||
1292 | .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, | ||
1293 | |||
1294 | .first_gpio = GPIO_PA7, | ||
1295 | .last_gpio = GPIO_FN_IRQOUT, | ||
1296 | |||
1297 | .gpios = pinmux_gpios, | ||
1298 | .cfg_regs = pinmux_config_regs, | ||
1299 | .data_regs = pinmux_data_regs, | ||
1300 | |||
1301 | .gpio_data = pinmux_data, | ||
1302 | .gpio_data_size = ARRAY_SIZE(pinmux_data), | ||
1303 | }; | ||
1304 | |||
1305 | static int __init plat_pinmux_setup(void) | ||
1306 | { | ||
1307 | return register_pinmux(&sh7785_pinmux_info); | ||
1308 | } | ||
1309 | |||
1310 | arch_initcall(plat_pinmux_setup); | ||
diff --git a/arch/sh/kernel/gpio.c b/arch/sh/kernel/gpio.c index bb8b812c6895..d37165361034 100644 --- a/arch/sh/kernel/gpio.c +++ b/arch/sh/kernel/gpio.c | |||
@@ -267,9 +267,13 @@ int pinmux_config_gpio(struct pinmux_info *gpioc, unsigned gpio, | |||
267 | break; | 267 | break; |
268 | 268 | ||
269 | in_range = enum_in_range(enum_id, &gpioc->function); | 269 | in_range = enum_in_range(enum_id, &gpioc->function); |
270 | if (!in_range && range) | 270 | if (!in_range && range) { |
271 | in_range = enum_in_range(enum_id, range); | 271 | in_range = enum_in_range(enum_id, range); |
272 | 272 | ||
273 | if (in_range && enum_id == range->force) | ||
274 | continue; | ||
275 | } | ||
276 | |||
273 | if (!in_range) | 277 | if (!in_range) |
274 | continue; | 278 | continue; |
275 | 279 | ||
@@ -432,7 +436,7 @@ static int __gpio_get_set_value(struct pinmux_info *gpioc, | |||
432 | BUG(); | 436 | BUG(); |
433 | else | 437 | else |
434 | value = read_write_reg(dr->reg, dr->reg_width, | 438 | value = read_write_reg(dr->reg, dr->reg_width, |
435 | 1, bit, value, do_write); | 439 | 1, bit, !!value, do_write); |
436 | 440 | ||
437 | return value; | 441 | return value; |
438 | } | 442 | } |
diff --git a/arch/sh/kernel/sh_ksyms_32.c b/arch/sh/kernel/sh_ksyms_32.c index d917b7b4042b..d366a7443720 100644 --- a/arch/sh/kernel/sh_ksyms_32.c +++ b/arch/sh/kernel/sh_ksyms_32.c | |||
@@ -126,7 +126,6 @@ DECLARE_EXPORT(__movstrSI12_i4); | |||
126 | EXPORT_SYMBOL(flush_cache_all); | 126 | EXPORT_SYMBOL(flush_cache_all); |
127 | EXPORT_SYMBOL(flush_cache_range); | 127 | EXPORT_SYMBOL(flush_cache_range); |
128 | EXPORT_SYMBOL(flush_dcache_page); | 128 | EXPORT_SYMBOL(flush_dcache_page); |
129 | EXPORT_SYMBOL(__flush_purge_region); | ||
130 | #endif | 129 | #endif |
131 | 130 | ||
132 | #if !defined(CONFIG_CACHE_OFF) && defined(CONFIG_MMU) && \ | 131 | #if !defined(CONFIG_CACHE_OFF) && defined(CONFIG_MMU) && \ |
@@ -147,3 +146,9 @@ EXPORT_SYMBOL(copy_page); | |||
147 | EXPORT_SYMBOL(__clear_user); | 146 | EXPORT_SYMBOL(__clear_user); |
148 | EXPORT_SYMBOL(_ebss); | 147 | EXPORT_SYMBOL(_ebss); |
149 | EXPORT_SYMBOL(empty_zero_page); | 148 | EXPORT_SYMBOL(empty_zero_page); |
149 | |||
150 | #ifndef CONFIG_CACHE_OFF | ||
151 | EXPORT_SYMBOL(__flush_purge_region); | ||
152 | EXPORT_SYMBOL(__flush_wback_region); | ||
153 | EXPORT_SYMBOL(__flush_invalidate_region); | ||
154 | #endif | ||
diff --git a/arch/sh/kernel/smp.c b/arch/sh/kernel/smp.c index 508dfb023628..3c5ad1660bbc 100644 --- a/arch/sh/kernel/smp.c +++ b/arch/sh/kernel/smp.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/spinlock.h> | 18 | #include <linux/spinlock.h> |
19 | #include <linux/mm.h> | 19 | #include <linux/mm.h> |
20 | #include <linux/module.h> | 20 | #include <linux/module.h> |
21 | #include <linux/cpu.h> | ||
21 | #include <linux/interrupt.h> | 22 | #include <linux/interrupt.h> |
22 | #include <asm/atomic.h> | 23 | #include <asm/atomic.h> |
23 | #include <asm/processor.h> | 24 | #include <asm/processor.h> |
diff --git a/arch/sh/kernel/traps_32.c b/arch/sh/kernel/traps_32.c index b359b08a8e33..1e5c74efbacc 100644 --- a/arch/sh/kernel/traps_32.c +++ b/arch/sh/kernel/traps_32.c | |||
@@ -105,6 +105,8 @@ void die(const char * str, struct pt_regs * regs, long err) | |||
105 | dump_mem("Stack: ", regs->regs[15], THREAD_SIZE + | 105 | dump_mem("Stack: ", regs->regs[15], THREAD_SIZE + |
106 | (unsigned long)task_stack_page(current)); | 106 | (unsigned long)task_stack_page(current)); |
107 | 107 | ||
108 | notify_die(DIE_OOPS, str, regs, err, 255, SIGSEGV); | ||
109 | |||
108 | bust_spinlocks(0); | 110 | bust_spinlocks(0); |
109 | add_taint(TAINT_DIE); | 111 | add_taint(TAINT_DIE); |
110 | spin_unlock_irq(&die_lock); | 112 | spin_unlock_irq(&die_lock); |
diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c index 2a53943924b2..4abf00031dae 100644 --- a/arch/sh/mm/init.c +++ b/arch/sh/mm/init.c | |||
@@ -321,21 +321,4 @@ int memory_add_physaddr_to_nid(u64 addr) | |||
321 | } | 321 | } |
322 | EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid); | 322 | EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid); |
323 | #endif | 323 | #endif |
324 | |||
325 | #ifdef CONFIG_MEMORY_HOTREMOVE | ||
326 | int remove_memory(u64 start, u64 size) | ||
327 | { | ||
328 | unsigned long start_pfn = start >> PAGE_SHIFT; | ||
329 | unsigned long end_pfn = start_pfn + (size >> PAGE_SHIFT); | ||
330 | int ret; | ||
331 | |||
332 | ret = offline_pages(start_pfn, end_pfn, 120 * HZ); | ||
333 | if (unlikely(ret)) | ||
334 | printk("%s: Failed, offline_pages() == %d\n", __func__, ret); | ||
335 | |||
336 | return ret; | ||
337 | } | ||
338 | EXPORT_SYMBOL_GPL(remove_memory); | ||
339 | #endif | ||
340 | |||
341 | #endif /* CONFIG_MEMORY_HOTPLUG */ | 324 | #endif /* CONFIG_MEMORY_HOTPLUG */ |
diff --git a/arch/sparc/kernel/apc.c b/arch/sparc/kernel/apc.c index 4dd1ba752ce6..9c115823c4b5 100644 --- a/arch/sparc/kernel/apc.c +++ b/arch/sparc/kernel/apc.c | |||
@@ -31,7 +31,7 @@ | |||
31 | #define APC_DEVNAME "apc" | 31 | #define APC_DEVNAME "apc" |
32 | 32 | ||
33 | static u8 __iomem *regs; | 33 | static u8 __iomem *regs; |
34 | static int apc_no_idle __initdata = 0; | 34 | static int apc_no_idle __devinitdata = 0; |
35 | 35 | ||
36 | #define apc_readb(offs) (sbus_readb(regs+offs)) | 36 | #define apc_readb(offs) (sbus_readb(regs+offs)) |
37 | #define apc_writeb(val, offs) (sbus_writeb(val, regs+offs)) | 37 | #define apc_writeb(val, offs) (sbus_writeb(val, regs+offs)) |
diff --git a/arch/sparc/kernel/head.S b/arch/sparc/kernel/head.S index 2d325fd84579..2fe2c117e772 100644 --- a/arch/sparc/kernel/head.S +++ b/arch/sparc/kernel/head.S | |||
@@ -465,6 +465,7 @@ gokernel: | |||
465 | mov %o7, %g4 ! Save %o7 | 465 | mov %o7, %g4 ! Save %o7 |
466 | 466 | ||
467 | /* Jump to it, and pray... */ | 467 | /* Jump to it, and pray... */ |
468 | __INIT | ||
468 | current_pc: | 469 | current_pc: |
469 | call 1f | 470 | call 1f |
470 | nop | 471 | nop |
diff --git a/arch/sparc/oprofile/init.c b/arch/sparc/oprofile/init.c index 9ab815b95b5a..17bb6035069b 100644 --- a/arch/sparc/oprofile/init.c +++ b/arch/sparc/oprofile/init.c | |||
@@ -12,7 +12,7 @@ | |||
12 | #include <linux/errno.h> | 12 | #include <linux/errno.h> |
13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
14 | 14 | ||
15 | int __init oprofile_arch_init(struct oprofile_operations * ops) | 15 | int __init oprofile_arch_init(struct oprofile_operations *ops) |
16 | { | 16 | { |
17 | return -ENODEV; | 17 | return -ENODEV; |
18 | } | 18 | } |
diff --git a/arch/sparc64/kernel/trampoline.S b/arch/sparc64/kernel/trampoline.S index 704a3afcfd06..83abd5ae88a4 100644 --- a/arch/sparc64/kernel/trampoline.S +++ b/arch/sparc64/kernel/trampoline.S | |||
@@ -328,6 +328,12 @@ after_lock_tlb: | |||
328 | 328 | ||
329 | wrpr %g0, 0, %wstate | 329 | wrpr %g0, 0, %wstate |
330 | 330 | ||
331 | sethi %hi(prom_entry_lock), %g2 | ||
332 | 1: ldstub [%g2 + %lo(prom_entry_lock)], %g1 | ||
333 | membar #StoreLoad | #StoreStore | ||
334 | brnz,pn %g1, 1b | ||
335 | nop | ||
336 | |||
331 | /* As a hack, put &init_thread_union into %g6. | 337 | /* As a hack, put &init_thread_union into %g6. |
332 | * prom_world() loads from here to restore the %asi | 338 | * prom_world() loads from here to restore the %asi |
333 | * register. | 339 | * register. |
@@ -337,7 +343,7 @@ after_lock_tlb: | |||
337 | 343 | ||
338 | sethi %hi(is_sun4v), %o0 | 344 | sethi %hi(is_sun4v), %o0 |
339 | lduw [%o0 + %lo(is_sun4v)], %o0 | 345 | lduw [%o0 + %lo(is_sun4v)], %o0 |
340 | brz,pt %o0, 1f | 346 | brz,pt %o0, 2f |
341 | nop | 347 | nop |
342 | 348 | ||
343 | TRAP_LOAD_TRAP_BLOCK(%g2, %g3) | 349 | TRAP_LOAD_TRAP_BLOCK(%g2, %g3) |
@@ -369,10 +375,10 @@ after_lock_tlb: | |||
369 | call %o1 | 375 | call %o1 |
370 | add %sp, (2047 + 128), %o0 | 376 | add %sp, (2047 + 128), %o0 |
371 | 377 | ||
372 | ba,pt %xcc, 2f | 378 | ba,pt %xcc, 3f |
373 | nop | 379 | nop |
374 | 380 | ||
375 | 1: sethi %hi(sparc64_ttable_tl0), %o0 | 381 | 2: sethi %hi(sparc64_ttable_tl0), %o0 |
376 | set prom_set_trap_table_name, %g2 | 382 | set prom_set_trap_table_name, %g2 |
377 | stx %g2, [%sp + 2047 + 128 + 0x00] | 383 | stx %g2, [%sp + 2047 + 128 + 0x00] |
378 | mov 1, %g2 | 384 | mov 1, %g2 |
@@ -386,7 +392,11 @@ after_lock_tlb: | |||
386 | call %o1 | 392 | call %o1 |
387 | add %sp, (2047 + 128), %o0 | 393 | add %sp, (2047 + 128), %o0 |
388 | 394 | ||
389 | 2: ldx [%l0], %g6 | 395 | 3: sethi %hi(prom_entry_lock), %g2 |
396 | stb %g0, [%g2 + %lo(prom_entry_lock)] | ||
397 | membar #StoreStore | #StoreLoad | ||
398 | |||
399 | ldx [%l0], %g6 | ||
390 | ldx [%g6 + TI_TASK], %g4 | 400 | ldx [%g6 + TI_TASK], %g4 |
391 | 401 | ||
392 | mov 1, %g5 | 402 | mov 1, %g5 |
diff --git a/arch/sparc64/oprofile/init.c b/arch/sparc64/oprofile/init.c index 9ab815b95b5a..17bb6035069b 100644 --- a/arch/sparc64/oprofile/init.c +++ b/arch/sparc64/oprofile/init.c | |||
@@ -12,7 +12,7 @@ | |||
12 | #include <linux/errno.h> | 12 | #include <linux/errno.h> |
13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
14 | 14 | ||
15 | int __init oprofile_arch_init(struct oprofile_operations * ops) | 15 | int __init oprofile_arch_init(struct oprofile_operations *ops) |
16 | { | 16 | { |
17 | return -ENODEV; | 17 | return -ENODEV; |
18 | } | 18 | } |
diff --git a/arch/um/Kconfig.common b/arch/um/Kconfig.common new file mode 100644 index 000000000000..0d207e73a758 --- /dev/null +++ b/arch/um/Kconfig.common | |||
@@ -0,0 +1,77 @@ | |||
1 | config DEFCONFIG_LIST | ||
2 | string | ||
3 | option defconfig_list | ||
4 | default "arch/$ARCH/defconfig" | ||
5 | |||
6 | # UML uses the generic IRQ subsystem | ||
7 | config GENERIC_HARDIRQS | ||
8 | bool | ||
9 | default y | ||
10 | |||
11 | config UML | ||
12 | bool | ||
13 | default y | ||
14 | |||
15 | config MMU | ||
16 | bool | ||
17 | default y | ||
18 | |||
19 | config NO_IOMEM | ||
20 | def_bool y | ||
21 | |||
22 | mainmenu "Linux/Usermode Kernel Configuration" | ||
23 | |||
24 | config ISA | ||
25 | bool | ||
26 | |||
27 | config SBUS | ||
28 | bool | ||
29 | |||
30 | config PCI | ||
31 | bool | ||
32 | |||
33 | config PCMCIA | ||
34 | bool | ||
35 | |||
36 | # Yet to do! | ||
37 | config TRACE_IRQFLAGS_SUPPORT | ||
38 | bool | ||
39 | default n | ||
40 | |||
41 | config LOCKDEP_SUPPORT | ||
42 | bool | ||
43 | default y | ||
44 | |||
45 | config STACKTRACE_SUPPORT | ||
46 | bool | ||
47 | default n | ||
48 | |||
49 | config GENERIC_CALIBRATE_DELAY | ||
50 | bool | ||
51 | default y | ||
52 | |||
53 | config GENERIC_BUG | ||
54 | bool | ||
55 | default y | ||
56 | depends on BUG | ||
57 | |||
58 | config GENERIC_TIME | ||
59 | bool | ||
60 | default y | ||
61 | |||
62 | config GENERIC_CLOCKEVENTS | ||
63 | bool | ||
64 | default y | ||
65 | |||
66 | # Used in kernel/irq/manage.c and include/linux/irq.h | ||
67 | config IRQ_RELEASE_METHOD | ||
68 | bool | ||
69 | default y | ||
70 | |||
71 | config HZ | ||
72 | int | ||
73 | default 100 | ||
74 | |||
75 | config SUBARCH | ||
76 | string | ||
77 | option env="SUBARCH" | ||
diff --git a/arch/um/Kconfig.rest b/arch/um/Kconfig.rest new file mode 100644 index 000000000000..7b5cea75a6c4 --- /dev/null +++ b/arch/um/Kconfig.rest | |||
@@ -0,0 +1,42 @@ | |||
1 | source "init/Kconfig" | ||
2 | |||
3 | source "kernel/Kconfig.freezer" | ||
4 | |||
5 | source "drivers/block/Kconfig" | ||
6 | |||
7 | source "arch/um/Kconfig.char" | ||
8 | |||
9 | source "drivers/base/Kconfig" | ||
10 | |||
11 | source "net/Kconfig" | ||
12 | |||
13 | source "arch/um/Kconfig.net" | ||
14 | |||
15 | source "drivers/net/Kconfig" | ||
16 | |||
17 | source "drivers/connector/Kconfig" | ||
18 | |||
19 | source "fs/Kconfig" | ||
20 | |||
21 | source "security/Kconfig" | ||
22 | |||
23 | source "crypto/Kconfig" | ||
24 | |||
25 | source "lib/Kconfig" | ||
26 | |||
27 | source "drivers/scsi/Kconfig" | ||
28 | |||
29 | source "drivers/md/Kconfig" | ||
30 | |||
31 | if BROKEN | ||
32 | source "drivers/mtd/Kconfig" | ||
33 | endif | ||
34 | |||
35 | source "drivers/leds/Kconfig" | ||
36 | |||
37 | #This is just to shut up some Kconfig warnings, so no prompt. | ||
38 | config INPUT | ||
39 | bool | ||
40 | default n | ||
41 | |||
42 | source "arch/um/Kconfig.debug" | ||
diff --git a/arch/um/Kconfig b/arch/um/Kconfig.um index 393bccfe1785..ec2b8da1aba4 100644 --- a/arch/um/Kconfig +++ b/arch/um/Kconfig.um | |||
@@ -1,79 +1,3 @@ | |||
1 | config DEFCONFIG_LIST | ||
2 | string | ||
3 | option defconfig_list | ||
4 | default "arch/$ARCH/defconfig" | ||
5 | |||
6 | # UML uses the generic IRQ subsystem | ||
7 | config GENERIC_HARDIRQS | ||
8 | bool | ||
9 | default y | ||
10 | |||
11 | config UML | ||
12 | bool | ||
13 | default y | ||
14 | |||
15 | config MMU | ||
16 | bool | ||
17 | default y | ||
18 | |||
19 | config NO_IOMEM | ||
20 | def_bool y | ||
21 | |||
22 | mainmenu "Linux/Usermode Kernel Configuration" | ||
23 | |||
24 | config ISA | ||
25 | bool | ||
26 | |||
27 | config SBUS | ||
28 | bool | ||
29 | |||
30 | config PCI | ||
31 | bool | ||
32 | |||
33 | config PCMCIA | ||
34 | bool | ||
35 | |||
36 | # Yet to do! | ||
37 | config TRACE_IRQFLAGS_SUPPORT | ||
38 | bool | ||
39 | default n | ||
40 | |||
41 | config LOCKDEP_SUPPORT | ||
42 | bool | ||
43 | default y | ||
44 | |||
45 | config STACKTRACE_SUPPORT | ||
46 | bool | ||
47 | default n | ||
48 | |||
49 | config GENERIC_CALIBRATE_DELAY | ||
50 | bool | ||
51 | default y | ||
52 | |||
53 | config GENERIC_BUG | ||
54 | bool | ||
55 | default y | ||
56 | depends on BUG | ||
57 | |||
58 | config GENERIC_TIME | ||
59 | bool | ||
60 | default y | ||
61 | |||
62 | config GENERIC_CLOCKEVENTS | ||
63 | bool | ||
64 | default y | ||
65 | |||
66 | # Used in kernel/irq/manage.c and include/linux/irq.h | ||
67 | config IRQ_RELEASE_METHOD | ||
68 | bool | ||
69 | default y | ||
70 | |||
71 | config HZ | ||
72 | int | ||
73 | default 100 | ||
74 | |||
75 | menu "UML-specific options" | ||
76 | |||
77 | config STATIC_LINK | 1 | config STATIC_LINK |
78 | bool "Force a static link" | 2 | bool "Force a static link" |
79 | default n | 3 | default n |
@@ -85,7 +9,6 @@ config STATIC_LINK | |||
85 | Additionally, this option enables using higher memory spaces (up to | 9 | Additionally, this option enables using higher memory spaces (up to |
86 | 2.75G) for UML. | 10 | 2.75G) for UML. |
87 | 11 | ||
88 | source "arch/um/Kconfig.arch" | ||
89 | source "mm/Kconfig" | 12 | source "mm/Kconfig" |
90 | source "kernel/time/Kconfig" | 13 | source "kernel/time/Kconfig" |
91 | 14 | ||
@@ -224,48 +147,3 @@ config KERNEL_STACK_ORDER | |||
224 | This option determines the size of UML kernel stacks. They will | 147 | This option determines the size of UML kernel stacks. They will |
225 | be 1 << order pages. The default is OK unless you're running Valgrind | 148 | be 1 << order pages. The default is OK unless you're running Valgrind |
226 | on UML, in which case, set this to 3. | 149 | on UML, in which case, set this to 3. |
227 | |||
228 | endmenu | ||
229 | |||
230 | source "init/Kconfig" | ||
231 | |||
232 | source "kernel/Kconfig.freezer" | ||
233 | |||
234 | source "drivers/block/Kconfig" | ||
235 | |||
236 | source "arch/um/Kconfig.char" | ||
237 | |||
238 | source "drivers/base/Kconfig" | ||
239 | |||
240 | source "net/Kconfig" | ||
241 | |||
242 | source "arch/um/Kconfig.net" | ||
243 | |||
244 | source "drivers/net/Kconfig" | ||
245 | |||
246 | source "drivers/connector/Kconfig" | ||
247 | |||
248 | source "fs/Kconfig" | ||
249 | |||
250 | source "security/Kconfig" | ||
251 | |||
252 | source "crypto/Kconfig" | ||
253 | |||
254 | source "lib/Kconfig" | ||
255 | |||
256 | source "drivers/scsi/Kconfig" | ||
257 | |||
258 | source "drivers/md/Kconfig" | ||
259 | |||
260 | if BROKEN | ||
261 | source "drivers/mtd/Kconfig" | ||
262 | endif | ||
263 | |||
264 | source "drivers/leds/Kconfig" | ||
265 | |||
266 | #This is just to shut up some Kconfig warnings, so no prompt. | ||
267 | config INPUT | ||
268 | bool | ||
269 | default n | ||
270 | |||
271 | source "arch/um/Kconfig.debug" | ||
diff --git a/arch/um/Kconfig.i386 b/arch/um/Kconfig.x86 index 1f57c113df6d..5ee328099c63 100644 --- a/arch/um/Kconfig.i386 +++ b/arch/um/Kconfig.x86 | |||
@@ -1,3 +1,7 @@ | |||
1 | source "arch/um/Kconfig.common" | ||
2 | |||
3 | menu "UML-specific options" | ||
4 | |||
1 | menu "Host processor type and features" | 5 | menu "Host processor type and features" |
2 | 6 | ||
3 | source "arch/x86/Kconfig.cpu" | 7 | source "arch/x86/Kconfig.cpu" |
@@ -5,24 +9,25 @@ source "arch/x86/Kconfig.cpu" | |||
5 | endmenu | 9 | endmenu |
6 | 10 | ||
7 | config UML_X86 | 11 | config UML_X86 |
12 | def_bool y | ||
13 | |||
14 | config 64BIT | ||
8 | bool | 15 | bool |
9 | default y | 16 | default SUBARCH = "x86_64" |
10 | 17 | ||
11 | config X86_32 | 18 | config X86_32 |
12 | bool | 19 | def_bool !64BIT |
13 | default y | 20 | select HAVE_AOUT |
14 | select HAVE_AOUT | ||
15 | 21 | ||
16 | config RWSEM_XCHGADD_ALGORITHM | 22 | config RWSEM_XCHGADD_ALGORITHM |
17 | def_bool y | 23 | def_bool X86_XADD |
18 | 24 | ||
19 | config 64BIT | 25 | config RWSEM_GENERIC_SPINLOCK |
20 | bool | 26 | def_bool !X86_XADD |
21 | default n | ||
22 | 27 | ||
23 | config 3_LEVEL_PGTABLES | 28 | config 3_LEVEL_PGTABLES |
24 | bool "Three-level pagetables (EXPERIMENTAL)" | 29 | bool "Three-level pagetables (EXPERIMENTAL)" if !64BIT |
25 | default n | 30 | default 64BIT |
26 | depends on EXPERIMENTAL | 31 | depends on EXPERIMENTAL |
27 | help | 32 | help |
28 | Three-level pagetables will let UML have more than 4G of physical | 33 | Three-level pagetables will let UML have more than 4G of physical |
@@ -33,13 +38,19 @@ config 3_LEVEL_PGTABLES | |||
33 | N (on x86-64 it's automatically enabled, instead, as it's safe there). | 38 | N (on x86-64 it's automatically enabled, instead, as it's safe there). |
34 | 39 | ||
35 | config ARCH_HAS_SC_SIGNALS | 40 | config ARCH_HAS_SC_SIGNALS |
36 | bool | 41 | def_bool !64BIT |
37 | default y | ||
38 | 42 | ||
39 | config ARCH_REUSE_HOST_VSYSCALL_AREA | 43 | config ARCH_REUSE_HOST_VSYSCALL_AREA |
40 | bool | 44 | def_bool !64BIT |
41 | default y | 45 | |
46 | config SMP_BROKEN | ||
47 | def_bool 64BIT | ||
42 | 48 | ||
43 | config GENERIC_HWEIGHT | 49 | config GENERIC_HWEIGHT |
44 | bool | 50 | def_bool y |
45 | default y | 51 | |
52 | source "arch/um/Kconfig.um" | ||
53 | |||
54 | endmenu | ||
55 | |||
56 | source "arch/um/Kconfig.rest" | ||
diff --git a/arch/um/Kconfig.x86_64 b/arch/um/Kconfig.x86_64 deleted file mode 100644 index 40b3407cfe16..000000000000 --- a/arch/um/Kconfig.x86_64 +++ /dev/null | |||
@@ -1,39 +0,0 @@ | |||
1 | |||
2 | menu "Host processor type and features" | ||
3 | |||
4 | source "arch/x86/Kconfig.cpu" | ||
5 | |||
6 | endmenu | ||
7 | |||
8 | config UML_X86 | ||
9 | bool | ||
10 | default y | ||
11 | |||
12 | config 64BIT | ||
13 | bool | ||
14 | default y | ||
15 | |||
16 | #XXX: this is so in the underlying arch, but it's wrong!!! | ||
17 | config RWSEM_GENERIC_SPINLOCK | ||
18 | bool | ||
19 | default y | ||
20 | |||
21 | config 3_LEVEL_PGTABLES | ||
22 | bool | ||
23 | default y | ||
24 | |||
25 | config ARCH_HAS_SC_SIGNALS | ||
26 | bool | ||
27 | default n | ||
28 | |||
29 | config ARCH_REUSE_HOST_VSYSCALL_AREA | ||
30 | bool | ||
31 | default n | ||
32 | |||
33 | config SMP_BROKEN | ||
34 | bool | ||
35 | default y | ||
36 | |||
37 | config GENERIC_HWEIGHT | ||
38 | bool | ||
39 | default y | ||
diff --git a/arch/um/Makefile b/arch/um/Makefile index ca40397017b9..d944c343acdb 100644 --- a/arch/um/Makefile +++ b/arch/um/Makefile | |||
@@ -18,28 +18,16 @@ core-y += $(ARCH_DIR)/kernel/ \ | |||
18 | $(ARCH_DIR)/drivers/ \ | 18 | $(ARCH_DIR)/drivers/ \ |
19 | $(ARCH_DIR)/os-$(OS)/ | 19 | $(ARCH_DIR)/os-$(OS)/ |
20 | 20 | ||
21 | # Have to precede the include because the included Makefiles reference them. | 21 | MODE_INCLUDE += -I$(srctree)/$(ARCH_DIR)/include/shared/skas |
22 | SYMLINK_HEADERS := archparam.h system.h sigcontext.h processor.h ptrace.h \ | ||
23 | module.h vm-flags.h elf.h host_ldt.h | ||
24 | SYMLINK_HEADERS := $(foreach header,$(SYMLINK_HEADERS),include/asm-um/$(header)) | ||
25 | |||
26 | # XXX: The "os" symlink is only used by arch/um/include/os.h, which includes | ||
27 | # ../os/include/file.h | ||
28 | # | ||
29 | # These are cleaned up during mrproper. Please DO NOT fix it again, this is | ||
30 | # the Correct Thing(tm) to do! | ||
31 | ARCH_SYMLINKS = include/asm-um/arch $(ARCH_DIR)/include/sysdep $(ARCH_DIR)/os \ | ||
32 | $(SYMLINK_HEADERS) $(ARCH_DIR)/include/uml-config.h | ||
33 | |||
34 | MODE_INCLUDE += -I$(srctree)/$(ARCH_DIR)/include/skas | ||
35 | 22 | ||
36 | include $(srctree)/$(ARCH_DIR)/Makefile-skas | 23 | include $(srctree)/$(ARCH_DIR)/Makefile-skas |
37 | 24 | ||
38 | ARCH_INCLUDE := -I$(ARCH_DIR)/include | 25 | ARCH_INCLUDE := -I$(srctree)/$(ARCH_DIR)/include/shared |
26 | ARCH_INCLUDE += -I$(srctree)/$(ARCH_DIR)/sys-$(SUBARCH)/shared | ||
39 | ifneq ($(KBUILD_SRC),) | 27 | ifneq ($(KBUILD_SRC),) |
40 | ARCH_INCLUDE += -I$(srctree)/$(ARCH_DIR)/include | 28 | ARCH_INCLUDE += -I$(ARCH_DIR)/include/shared # for two generated files |
41 | endif | 29 | endif |
42 | SYS_DIR := $(ARCH_DIR)/include/sysdep-$(SUBARCH) | 30 | KBUILD_CPPFLAGS += -I$(srctree)/$(ARCH_DIR)/sys-$(SUBARCH) |
43 | 31 | ||
44 | # -Dvmap=kernel_vmap prevents anything from referencing the libpcap.o symbol so | 32 | # -Dvmap=kernel_vmap prevents anything from referencing the libpcap.o symbol so |
45 | # named - it's a common symbol in libpcap, so we get a binary which crashes. | 33 | # named - it's a common symbol in libpcap, so we get a binary which crashes. |
@@ -65,6 +53,8 @@ include $(srctree)/$(ARCH_DIR)/Makefile-$(SUBARCH) | |||
65 | #This will adjust *FLAGS accordingly to the platform. | 53 | #This will adjust *FLAGS accordingly to the platform. |
66 | include $(srctree)/$(ARCH_DIR)/Makefile-os-$(OS) | 54 | include $(srctree)/$(ARCH_DIR)/Makefile-os-$(OS) |
67 | 55 | ||
56 | KBUILD_CPPFLAGS += -I$(srctree)/arch/$(HEADER_ARCH)/include | ||
57 | |||
68 | # -Derrno=kernel_errno - This turns all kernel references to errno into | 58 | # -Derrno=kernel_errno - This turns all kernel references to errno into |
69 | # kernel_errno to separate them from the libc errno. This allows -fno-common | 59 | # kernel_errno to separate them from the libc errno. This allows -fno-common |
70 | # in KBUILD_CFLAGS. Otherwise, it would cause ld to complain about the two different | 60 | # in KBUILD_CFLAGS. Otherwise, it would cause ld to complain about the two different |
@@ -93,14 +83,10 @@ define archhelp | |||
93 | echo ' find in the kernel root.' | 83 | echo ' find in the kernel root.' |
94 | endef | 84 | endef |
95 | 85 | ||
96 | ifneq ($(KBUILD_SRC),) | 86 | KBUILD_KCONFIG := arch/um/Kconfig.$(HEADER_ARCH) |
97 | $(shell mkdir -p $(ARCH_DIR) && ln -fsn $(srctree)/$(ARCH_DIR)/Kconfig.$(SUBARCH) $(ARCH_DIR)/Kconfig.arch) | ||
98 | else | ||
99 | $(shell cd $(ARCH_DIR) && ln -sf Kconfig.$(SUBARCH) Kconfig.arch) | ||
100 | endif | ||
101 | 87 | ||
102 | archprepare: $(ARCH_SYMLINKS) $(ARCH_DIR)/include/user_constants.h | 88 | archprepare: $(ARCH_DIR)/include/shared/user_constants.h |
103 | prepare: $(ARCH_DIR)/include/kern_constants.h | 89 | prepare: $(ARCH_DIR)/include/shared/kern_constants.h |
104 | 90 | ||
105 | LINK-$(CONFIG_LD_SCRIPT_STATIC) += -static | 91 | LINK-$(CONFIG_LD_SCRIPT_STATIC) += -static |
106 | LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib | 92 | LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib |
@@ -132,62 +118,19 @@ endef | |||
132 | 118 | ||
133 | # When cleaning we don't include .config, so we don't include | 119 | # When cleaning we don't include .config, so we don't include |
134 | # TT or skas makefiles and don't clean skas_ptregs.h. | 120 | # TT or skas makefiles and don't clean skas_ptregs.h. |
135 | CLEAN_FILES += linux x.i gmon.out $(ARCH_DIR)/include/uml-config.h \ | 121 | CLEAN_FILES += linux x.i gmon.out \ |
136 | $(ARCH_DIR)/include/user_constants.h \ | 122 | $(ARCH_DIR)/include/shared/user_constants.h \ |
137 | $(ARCH_DIR)/include/kern_constants.h $(ARCH_DIR)/Kconfig.arch | 123 | $(ARCH_DIR)/include/shared/kern_constants.h |
138 | |||
139 | MRPROPER_FILES += $(ARCH_SYMLINKS) | ||
140 | 124 | ||
141 | archclean: | 125 | archclean: |
142 | @find . \( -name '*.bb' -o -name '*.bbg' -o -name '*.da' \ | 126 | @find . \( -name '*.bb' -o -name '*.bbg' -o -name '*.da' \ |
143 | -o -name '*.gcov' \) -type f -print | xargs rm -f | 127 | -o -name '*.gcov' \) -type f -print | xargs rm -f |
144 | 128 | ||
145 | $(SYMLINK_HEADERS): | 129 | $(objtree)/$(ARCH_DIR)/include/shared: |
146 | @echo ' SYMLINK $@' | ||
147 | ifneq ($(KBUILD_SRC),) | ||
148 | $(Q)mkdir -p $(objtree)/include/asm-um | ||
149 | $(Q)ln -fsn $(srctree)/include/asm-um/$(basename $(notdir $@))-$(SUBARCH)$(suffix $@) $@ | ||
150 | else | ||
151 | $(Q)cd $(srctree)/$(dir $@) ; \ | ||
152 | ln -sf $(basename $(notdir $@))-$(SUBARCH)$(suffix $@) $(notdir $@) | ||
153 | endif | ||
154 | |||
155 | include/asm-um/arch: | ||
156 | @echo ' SYMLINK $@' | ||
157 | ifneq ($(KBUILD_SRC),) | ||
158 | $(Q)mkdir -p $(objtree)/include/asm-um | ||
159 | $(Q)ln -fsn $(srctree)/include/asm-$(HEADER_ARCH) include/asm-um/arch | ||
160 | else | ||
161 | $(Q)cd $(srctree)/include/asm-um && ln -fsn ../asm-$(HEADER_ARCH) arch | ||
162 | endif | ||
163 | |||
164 | $(objtree)/$(ARCH_DIR)/include: | ||
165 | @echo ' MKDIR $@' | 130 | @echo ' MKDIR $@' |
166 | $(Q)mkdir -p $@ | 131 | $(Q)mkdir -p $@ |
167 | 132 | ||
168 | $(ARCH_DIR)/include/sysdep: $(objtree)/$(ARCH_DIR)/include | ||
169 | @echo ' SYMLINK $@' | ||
170 | ifneq ($(KBUILD_SRC),) | ||
171 | $(Q)ln -fsn $(srctree)/$(ARCH_DIR)/include/sysdep-$(SUBARCH) $(ARCH_DIR)/include/sysdep | ||
172 | else | ||
173 | $(Q)cd $(ARCH_DIR)/include && ln -fsn sysdep-$(SUBARCH) sysdep | ||
174 | endif | ||
175 | |||
176 | $(ARCH_DIR)/os: | ||
177 | @echo ' SYMLINK $@' | ||
178 | ifneq ($(KBUILD_SRC),) | ||
179 | $(Q)ln -fsn $(srctree)/$(ARCH_DIR)/os-$(OS) $(ARCH_DIR)/os | ||
180 | else | ||
181 | $(Q)cd $(ARCH_DIR) && ln -fsn os-$(OS) os | ||
182 | endif | ||
183 | |||
184 | # Generated files | 133 | # Generated files |
185 | define filechk_umlconfig | ||
186 | sed 's/ CONFIG/ UML_CONFIG/' | ||
187 | endef | ||
188 | |||
189 | $(ARCH_DIR)/include/uml-config.h : include/linux/autoconf.h | ||
190 | $(call filechk,umlconfig) | ||
191 | 134 | ||
192 | $(ARCH_DIR)/sys-$(SUBARCH)/user-offsets.s: FORCE | 135 | $(ARCH_DIR)/sys-$(SUBARCH)/user-offsets.s: FORCE |
193 | $(Q)$(MAKE) $(build)=$(ARCH_DIR)/sys-$(SUBARCH) $@ | 136 | $(Q)$(MAKE) $(build)=$(ARCH_DIR)/sys-$(SUBARCH) $@ |
@@ -205,11 +148,11 @@ define filechk_gen-asm-offsets | |||
205 | echo ""; ) | 148 | echo ""; ) |
206 | endef | 149 | endef |
207 | 150 | ||
208 | $(ARCH_DIR)/include/user_constants.h: $(ARCH_DIR)/sys-$(SUBARCH)/user-offsets.s | 151 | $(ARCH_DIR)/include/shared/user_constants.h: $(ARCH_DIR)/sys-$(SUBARCH)/user-offsets.s |
209 | $(call filechk,gen-asm-offsets) | 152 | $(call filechk,gen-asm-offsets) |
210 | 153 | ||
211 | $(ARCH_DIR)/include/kern_constants.h: $(objtree)/$(ARCH_DIR)/include | 154 | $(ARCH_DIR)/include/shared/kern_constants.h: $(objtree)/$(ARCH_DIR)/include/shared |
212 | @echo ' SYMLINK $@' | 155 | @echo ' SYMLINK $@' |
213 | $(Q)ln -sf ../../../include/asm-um/asm-offsets.h $@ | 156 | $(Q)ln -sf ../../../../include/asm/asm-offsets.h $@ |
214 | 157 | ||
215 | export SUBARCH USER_CFLAGS CFLAGS_NO_HARDENING OS HEADER_ARCH | 158 | export SUBARCH USER_CFLAGS CFLAGS_NO_HARDENING OS HEADER_ARCH DEV_NULL_PATH |
diff --git a/arch/um/Makefile-os-Linux b/arch/um/Makefile-os-Linux index 52859487c95d..2c8a598ec14b 100644 --- a/arch/um/Makefile-os-Linux +++ b/arch/um/Makefile-os-Linux | |||
@@ -6,3 +6,4 @@ | |||
6 | # To get a definition of F_SETSIG | 6 | # To get a definition of F_SETSIG |
7 | USER_CFLAGS += -D_GNU_SOURCE -D_LARGEFILE64_SOURCE | 7 | USER_CFLAGS += -D_GNU_SOURCE -D_LARGEFILE64_SOURCE |
8 | KBUILD_CFLAGS += -D_LARGEFILE64_SOURCE | 8 | KBUILD_CFLAGS += -D_LARGEFILE64_SOURCE |
9 | DEV_NULL_PATH = \"/dev/null\" | ||
diff --git a/arch/um/drivers/Makefile b/arch/um/drivers/Makefile index d283e7b022a0..1d9b6ae967b0 100644 --- a/arch/um/drivers/Makefile +++ b/arch/um/drivers/Makefile | |||
@@ -62,5 +62,6 @@ obj-$(CONFIG_UML_RANDOM) += random.o | |||
62 | 62 | ||
63 | # pcap_user.o must be added explicitly. | 63 | # pcap_user.o must be added explicitly. |
64 | USER_OBJS := fd.o null.o pty.o tty.o xterm.o slip_common.o pcap_user.o vde_user.o | 64 | USER_OBJS := fd.o null.o pty.o tty.o xterm.o slip_common.o pcap_user.o vde_user.o |
65 | CFLAGS_null.o = -DDEV_NULL=$(DEV_NULL_PATH) | ||
65 | 66 | ||
66 | include arch/um/scripts/Makefile.rules | 67 | include arch/um/scripts/Makefile.rules |
diff --git a/arch/um/drivers/ubd_kern.c b/arch/um/drivers/ubd_kern.c index b58fb8941d8d..0a868118cf06 100644 --- a/arch/um/drivers/ubd_kern.c +++ b/arch/um/drivers/ubd_kern.c | |||
@@ -98,9 +98,9 @@ static inline void ubd_set_bit(__u64 bit, unsigned char *data) | |||
98 | 98 | ||
99 | static DEFINE_MUTEX(ubd_lock); | 99 | static DEFINE_MUTEX(ubd_lock); |
100 | 100 | ||
101 | static int ubd_open(struct inode * inode, struct file * filp); | 101 | static int ubd_open(struct block_device *bdev, fmode_t mode); |
102 | static int ubd_release(struct inode * inode, struct file * file); | 102 | static int ubd_release(struct gendisk *disk, fmode_t mode); |
103 | static int ubd_ioctl(struct inode * inode, struct file * file, | 103 | static int ubd_ioctl(struct block_device *bdev, fmode_t mode, |
104 | unsigned int cmd, unsigned long arg); | 104 | unsigned int cmd, unsigned long arg); |
105 | static int ubd_getgeo(struct block_device *bdev, struct hd_geometry *geo); | 105 | static int ubd_getgeo(struct block_device *bdev, struct hd_geometry *geo); |
106 | 106 | ||
@@ -1112,9 +1112,9 @@ static int __init ubd_driver_init(void){ | |||
1112 | 1112 | ||
1113 | device_initcall(ubd_driver_init); | 1113 | device_initcall(ubd_driver_init); |
1114 | 1114 | ||
1115 | static int ubd_open(struct inode *inode, struct file *filp) | 1115 | static int ubd_open(struct block_device *bdev, fmode_t mode) |
1116 | { | 1116 | { |
1117 | struct gendisk *disk = inode->i_bdev->bd_disk; | 1117 | struct gendisk *disk = bdev->bd_disk; |
1118 | struct ubd *ubd_dev = disk->private_data; | 1118 | struct ubd *ubd_dev = disk->private_data; |
1119 | int err = 0; | 1119 | int err = 0; |
1120 | 1120 | ||
@@ -1131,7 +1131,7 @@ static int ubd_open(struct inode *inode, struct file *filp) | |||
1131 | 1131 | ||
1132 | /* This should no more be needed. And it didn't work anyway to exclude | 1132 | /* This should no more be needed. And it didn't work anyway to exclude |
1133 | * read-write remounting of filesystems.*/ | 1133 | * read-write remounting of filesystems.*/ |
1134 | /*if((filp->f_mode & FMODE_WRITE) && !ubd_dev->openflags.w){ | 1134 | /*if((mode & FMODE_WRITE) && !ubd_dev->openflags.w){ |
1135 | if(--ubd_dev->count == 0) ubd_close_dev(ubd_dev); | 1135 | if(--ubd_dev->count == 0) ubd_close_dev(ubd_dev); |
1136 | err = -EROFS; | 1136 | err = -EROFS; |
1137 | }*/ | 1137 | }*/ |
@@ -1139,9 +1139,8 @@ static int ubd_open(struct inode *inode, struct file *filp) | |||
1139 | return err; | 1139 | return err; |
1140 | } | 1140 | } |
1141 | 1141 | ||
1142 | static int ubd_release(struct inode * inode, struct file * file) | 1142 | static int ubd_release(struct gendisk *disk, fmode_t mode) |
1143 | { | 1143 | { |
1144 | struct gendisk *disk = inode->i_bdev->bd_disk; | ||
1145 | struct ubd *ubd_dev = disk->private_data; | 1144 | struct ubd *ubd_dev = disk->private_data; |
1146 | 1145 | ||
1147 | if(--ubd_dev->count == 0) | 1146 | if(--ubd_dev->count == 0) |
@@ -1306,10 +1305,10 @@ static int ubd_getgeo(struct block_device *bdev, struct hd_geometry *geo) | |||
1306 | return 0; | 1305 | return 0; |
1307 | } | 1306 | } |
1308 | 1307 | ||
1309 | static int ubd_ioctl(struct inode * inode, struct file * file, | 1308 | static int ubd_ioctl(struct block_device *bdev, fmode_t mode, |
1310 | unsigned int cmd, unsigned long arg) | 1309 | unsigned int cmd, unsigned long arg) |
1311 | { | 1310 | { |
1312 | struct ubd *ubd_dev = inode->i_bdev->bd_disk->private_data; | 1311 | struct ubd *ubd_dev = bdev->bd_disk->private_data; |
1313 | struct hd_driveid ubd_id = { | 1312 | struct hd_driveid ubd_id = { |
1314 | .cyls = 0, | 1313 | .cyls = 0, |
1315 | .heads = 128, | 1314 | .heads = 128, |
diff --git a/arch/um/include/asm/a.out-core.h b/arch/um/include/asm/a.out-core.h new file mode 100644 index 000000000000..995643b18309 --- /dev/null +++ b/arch/um/include/asm/a.out-core.h | |||
@@ -0,0 +1,27 @@ | |||
1 | /* a.out coredump register dumper | ||
2 | * | ||
3 | * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. | ||
4 | * Written by David Howells (dhowells@redhat.com) | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or | ||
7 | * modify it under the terms of the GNU General Public Licence | ||
8 | * as published by the Free Software Foundation; either version | ||
9 | * 2 of the Licence, or (at your option) any later version. | ||
10 | */ | ||
11 | |||
12 | #ifndef __UM_A_OUT_CORE_H | ||
13 | #define __UM_A_OUT_CORE_H | ||
14 | |||
15 | #ifdef __KERNEL__ | ||
16 | |||
17 | #include <linux/user.h> | ||
18 | |||
19 | /* | ||
20 | * fill in the user structure for an a.out core dump | ||
21 | */ | ||
22 | static inline void aout_dump_thread(struct pt_regs *regs, struct user *u) | ||
23 | { | ||
24 | } | ||
25 | |||
26 | #endif /* __KERNEL__ */ | ||
27 | #endif /* __UM_A_OUT_CORE_H */ | ||
diff --git a/arch/um/include/asm/apic.h b/arch/um/include/asm/apic.h new file mode 100644 index 000000000000..876dee84ab11 --- /dev/null +++ b/arch/um/include/asm/apic.h | |||
@@ -0,0 +1,4 @@ | |||
1 | #ifndef __UM_APIC_H | ||
2 | #define __UM_APIC_H | ||
3 | |||
4 | #endif | ||
diff --git a/arch/um/include/asm/auxvec.h b/arch/um/include/asm/auxvec.h new file mode 100644 index 000000000000..1e5e1c2fc9b1 --- /dev/null +++ b/arch/um/include/asm/auxvec.h | |||
@@ -0,0 +1,4 @@ | |||
1 | #ifndef __UM_AUXVEC_H | ||
2 | #define __UM_AUXVEC_H | ||
3 | |||
4 | #endif | ||
diff --git a/arch/um/include/asm/bugs.h b/arch/um/include/asm/bugs.h new file mode 100644 index 000000000000..6a72e240d5fc --- /dev/null +++ b/arch/um/include/asm/bugs.h | |||
@@ -0,0 +1,6 @@ | |||
1 | #ifndef __UM_BUGS_H | ||
2 | #define __UM_BUGS_H | ||
3 | |||
4 | void check_bugs(void); | ||
5 | |||
6 | #endif | ||
diff --git a/arch/um/include/asm/cache.h b/arch/um/include/asm/cache.h new file mode 100644 index 000000000000..19e1bdd67416 --- /dev/null +++ b/arch/um/include/asm/cache.h | |||
@@ -0,0 +1,17 @@ | |||
1 | #ifndef __UM_CACHE_H | ||
2 | #define __UM_CACHE_H | ||
3 | |||
4 | |||
5 | #if defined(CONFIG_UML_X86) && !defined(CONFIG_64BIT) | ||
6 | # define L1_CACHE_SHIFT (CONFIG_X86_L1_CACHE_SHIFT) | ||
7 | #elif defined(CONFIG_UML_X86) /* 64-bit */ | ||
8 | # define L1_CACHE_SHIFT 6 /* Should be 7 on Intel */ | ||
9 | #else | ||
10 | /* XXX: this was taken from x86, now it's completely random. Luckily only | ||
11 | * affects SMP padding. */ | ||
12 | # define L1_CACHE_SHIFT 5 | ||
13 | #endif | ||
14 | |||
15 | #define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT) | ||
16 | |||
17 | #endif | ||
diff --git a/arch/um/include/asm/checksum.h b/arch/um/include/asm/checksum.h new file mode 100644 index 000000000000..5b501361e361 --- /dev/null +++ b/arch/um/include/asm/checksum.h | |||
@@ -0,0 +1,6 @@ | |||
1 | #ifndef __UM_CHECKSUM_H | ||
2 | #define __UM_CHECKSUM_H | ||
3 | |||
4 | #include "sysdep/checksum.h" | ||
5 | |||
6 | #endif | ||
diff --git a/arch/um/include/asm/common.lds.S b/arch/um/include/asm/common.lds.S new file mode 100644 index 000000000000..cb0248616d49 --- /dev/null +++ b/arch/um/include/asm/common.lds.S | |||
@@ -0,0 +1,130 @@ | |||
1 | #include <asm-generic/vmlinux.lds.h> | ||
2 | |||
3 | .fini : { *(.fini) } =0x9090 | ||
4 | _etext = .; | ||
5 | PROVIDE (etext = .); | ||
6 | |||
7 | . = ALIGN(4096); | ||
8 | _sdata = .; | ||
9 | PROVIDE (sdata = .); | ||
10 | |||
11 | RODATA | ||
12 | |||
13 | .unprotected : { *(.unprotected) } | ||
14 | . = ALIGN(4096); | ||
15 | PROVIDE (_unprotected_end = .); | ||
16 | |||
17 | . = ALIGN(4096); | ||
18 | .note : { *(.note.*) } | ||
19 | __ex_table : { | ||
20 | __start___ex_table = .; | ||
21 | *(__ex_table) | ||
22 | __stop___ex_table = .; | ||
23 | } | ||
24 | |||
25 | BUG_TABLE | ||
26 | |||
27 | .uml.setup.init : { | ||
28 | __uml_setup_start = .; | ||
29 | *(.uml.setup.init) | ||
30 | __uml_setup_end = .; | ||
31 | } | ||
32 | |||
33 | .uml.help.init : { | ||
34 | __uml_help_start = .; | ||
35 | *(.uml.help.init) | ||
36 | __uml_help_end = .; | ||
37 | } | ||
38 | |||
39 | .uml.postsetup.init : { | ||
40 | __uml_postsetup_start = .; | ||
41 | *(.uml.postsetup.init) | ||
42 | __uml_postsetup_end = .; | ||
43 | } | ||
44 | |||
45 | .init.setup : { | ||
46 | __setup_start = .; | ||
47 | *(.init.setup) | ||
48 | __setup_end = .; | ||
49 | } | ||
50 | |||
51 | . = ALIGN(32); | ||
52 | .data.percpu : { | ||
53 | __per_cpu_start = . ; | ||
54 | *(.data.percpu) | ||
55 | __per_cpu_end = . ; | ||
56 | } | ||
57 | |||
58 | .initcall.init : { | ||
59 | __initcall_start = .; | ||
60 | INITCALLS | ||
61 | __initcall_end = .; | ||
62 | } | ||
63 | |||
64 | .con_initcall.init : { | ||
65 | __con_initcall_start = .; | ||
66 | *(.con_initcall.init) | ||
67 | __con_initcall_end = .; | ||
68 | } | ||
69 | |||
70 | .uml.initcall.init : { | ||
71 | __uml_initcall_start = .; | ||
72 | *(.uml.initcall.init) | ||
73 | __uml_initcall_end = .; | ||
74 | } | ||
75 | __init_end = .; | ||
76 | |||
77 | SECURITY_INIT | ||
78 | |||
79 | .exitcall : { | ||
80 | __exitcall_begin = .; | ||
81 | *(.exitcall.exit) | ||
82 | __exitcall_end = .; | ||
83 | } | ||
84 | |||
85 | .uml.exitcall : { | ||
86 | __uml_exitcall_begin = .; | ||
87 | *(.uml.exitcall.exit) | ||
88 | __uml_exitcall_end = .; | ||
89 | } | ||
90 | |||
91 | . = ALIGN(4); | ||
92 | .altinstructions : { | ||
93 | __alt_instructions = .; | ||
94 | *(.altinstructions) | ||
95 | __alt_instructions_end = .; | ||
96 | } | ||
97 | .altinstr_replacement : { *(.altinstr_replacement) } | ||
98 | /* .exit.text is discard at runtime, not link time, to deal with references | ||
99 | from .altinstructions and .eh_frame */ | ||
100 | .exit.text : { *(.exit.text) } | ||
101 | .exit.data : { *(.exit.data) } | ||
102 | |||
103 | .preinit_array : { | ||
104 | __preinit_array_start = .; | ||
105 | *(.preinit_array) | ||
106 | __preinit_array_end = .; | ||
107 | } | ||
108 | .init_array : { | ||
109 | __init_array_start = .; | ||
110 | *(.init_array) | ||
111 | __init_array_end = .; | ||
112 | } | ||
113 | .fini_array : { | ||
114 | __fini_array_start = .; | ||
115 | *(.fini_array) | ||
116 | __fini_array_end = .; | ||
117 | } | ||
118 | |||
119 | . = ALIGN(4096); | ||
120 | .init.ramfs : { | ||
121 | __initramfs_start = .; | ||
122 | *(.init.ramfs) | ||
123 | __initramfs_end = .; | ||
124 | } | ||
125 | |||
126 | /* Sections to be discarded */ | ||
127 | /DISCARD/ : { | ||
128 | *(.exitcall.exit) | ||
129 | } | ||
130 | |||
diff --git a/arch/um/include/asm/cputime.h b/arch/um/include/asm/cputime.h new file mode 100644 index 000000000000..c84acbadfa2f --- /dev/null +++ b/arch/um/include/asm/cputime.h | |||
@@ -0,0 +1,6 @@ | |||
1 | #ifndef __UM_CPUTIME_H | ||
2 | #define __UM_CPUTIME_H | ||
3 | |||
4 | #include <asm-generic/cputime.h> | ||
5 | |||
6 | #endif /* __UM_CPUTIME_H */ | ||
diff --git a/arch/um/include/asm/current.h b/arch/um/include/asm/current.h new file mode 100644 index 000000000000..c2191d9aa03d --- /dev/null +++ b/arch/um/include/asm/current.h | |||
@@ -0,0 +1,13 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) | ||
3 | * Licensed under the GPL | ||
4 | */ | ||
5 | |||
6 | #ifndef __UM_CURRENT_H | ||
7 | #define __UM_CURRENT_H | ||
8 | |||
9 | #include "linux/thread_info.h" | ||
10 | |||
11 | #define current (current_thread_info()->task) | ||
12 | |||
13 | #endif | ||
diff --git a/arch/um/include/asm/delay.h b/arch/um/include/asm/delay.h new file mode 100644 index 000000000000..c71e32b6741e --- /dev/null +++ b/arch/um/include/asm/delay.h | |||
@@ -0,0 +1,20 @@ | |||
1 | #ifndef __UM_DELAY_H | ||
2 | #define __UM_DELAY_H | ||
3 | |||
4 | #define MILLION 1000000 | ||
5 | |||
6 | /* Undefined on purpose */ | ||
7 | extern void __bad_udelay(void); | ||
8 | |||
9 | extern void __udelay(unsigned long usecs); | ||
10 | extern void __delay(unsigned long loops); | ||
11 | |||
12 | #define udelay(n) ((__builtin_constant_p(n) && (n) > 20000) ? \ | ||
13 | __bad_udelay() : __udelay(n)) | ||
14 | |||
15 | /* It appears that ndelay is not used at all for UML, and has never been | ||
16 | * implemented. */ | ||
17 | extern void __unimplemented_ndelay(void); | ||
18 | #define ndelay(n) __unimplemented_ndelay() | ||
19 | |||
20 | #endif | ||
diff --git a/arch/um/include/asm/desc.h b/arch/um/include/asm/desc.h new file mode 100644 index 000000000000..4ec34a51b62c --- /dev/null +++ b/arch/um/include/asm/desc.h | |||
@@ -0,0 +1,16 @@ | |||
1 | #ifndef __UM_DESC_H | ||
2 | #define __UM_DESC_H | ||
3 | |||
4 | /* Taken from asm-i386/desc.h, it's the only thing we need. The rest wouldn't | ||
5 | * compile, and has never been used. */ | ||
6 | #define LDT_empty(info) (\ | ||
7 | (info)->base_addr == 0 && \ | ||
8 | (info)->limit == 0 && \ | ||
9 | (info)->contents == 0 && \ | ||
10 | (info)->read_exec_only == 1 && \ | ||
11 | (info)->seg_32bit == 0 && \ | ||
12 | (info)->limit_in_pages == 0 && \ | ||
13 | (info)->seg_not_present == 1 && \ | ||
14 | (info)->useable == 0 ) | ||
15 | |||
16 | #endif | ||
diff --git a/arch/um/include/asm/device.h b/arch/um/include/asm/device.h new file mode 100644 index 000000000000..d8f9872b0e2d --- /dev/null +++ b/arch/um/include/asm/device.h | |||
@@ -0,0 +1,7 @@ | |||
1 | /* | ||
2 | * Arch specific extensions to struct device | ||
3 | * | ||
4 | * This file is released under the GPLv2 | ||
5 | */ | ||
6 | #include <asm-generic/device.h> | ||
7 | |||
diff --git a/arch/um/include/asm/dma-mapping.h b/arch/um/include/asm/dma-mapping.h new file mode 100644 index 000000000000..90fc708b320e --- /dev/null +++ b/arch/um/include/asm/dma-mapping.h | |||
@@ -0,0 +1,128 @@ | |||
1 | #ifndef _ASM_DMA_MAPPING_H | ||
2 | #define _ASM_DMA_MAPPING_H | ||
3 | |||
4 | #include <asm/scatterlist.h> | ||
5 | |||
6 | static inline int | ||
7 | dma_supported(struct device *dev, u64 mask) | ||
8 | { | ||
9 | BUG(); | ||
10 | return(0); | ||
11 | } | ||
12 | |||
13 | static inline int | ||
14 | dma_set_mask(struct device *dev, u64 dma_mask) | ||
15 | { | ||
16 | BUG(); | ||
17 | return(0); | ||
18 | } | ||
19 | |||
20 | static inline void * | ||
21 | dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle, | ||
22 | gfp_t flag) | ||
23 | { | ||
24 | BUG(); | ||
25 | return((void *) 0); | ||
26 | } | ||
27 | |||
28 | static inline void | ||
29 | dma_free_coherent(struct device *dev, size_t size, void *cpu_addr, | ||
30 | dma_addr_t dma_handle) | ||
31 | { | ||
32 | BUG(); | ||
33 | } | ||
34 | |||
35 | static inline dma_addr_t | ||
36 | dma_map_single(struct device *dev, void *cpu_addr, size_t size, | ||
37 | enum dma_data_direction direction) | ||
38 | { | ||
39 | BUG(); | ||
40 | return(0); | ||
41 | } | ||
42 | |||
43 | static inline void | ||
44 | dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size, | ||
45 | enum dma_data_direction direction) | ||
46 | { | ||
47 | BUG(); | ||
48 | } | ||
49 | |||
50 | static inline dma_addr_t | ||
51 | dma_map_page(struct device *dev, struct page *page, | ||
52 | unsigned long offset, size_t size, | ||
53 | enum dma_data_direction direction) | ||
54 | { | ||
55 | BUG(); | ||
56 | return(0); | ||
57 | } | ||
58 | |||
59 | static inline void | ||
60 | dma_unmap_page(struct device *dev, dma_addr_t dma_address, size_t size, | ||
61 | enum dma_data_direction direction) | ||
62 | { | ||
63 | BUG(); | ||
64 | } | ||
65 | |||
66 | static inline int | ||
67 | dma_map_sg(struct device *dev, struct scatterlist *sg, int nents, | ||
68 | enum dma_data_direction direction) | ||
69 | { | ||
70 | BUG(); | ||
71 | return(0); | ||
72 | } | ||
73 | |||
74 | static inline void | ||
75 | dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries, | ||
76 | enum dma_data_direction direction) | ||
77 | { | ||
78 | BUG(); | ||
79 | } | ||
80 | |||
81 | static inline void | ||
82 | dma_sync_single(struct device *dev, dma_addr_t dma_handle, size_t size, | ||
83 | enum dma_data_direction direction) | ||
84 | { | ||
85 | BUG(); | ||
86 | } | ||
87 | |||
88 | static inline void | ||
89 | dma_sync_sg(struct device *dev, struct scatterlist *sg, int nelems, | ||
90 | enum dma_data_direction direction) | ||
91 | { | ||
92 | BUG(); | ||
93 | } | ||
94 | |||
95 | #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) | ||
96 | #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h) | ||
97 | #define dma_is_consistent(d, h) (1) | ||
98 | |||
99 | static inline int | ||
100 | dma_get_cache_alignment(void) | ||
101 | { | ||
102 | BUG(); | ||
103 | return(0); | ||
104 | } | ||
105 | |||
106 | static inline void | ||
107 | dma_sync_single_range(struct device *dev, dma_addr_t dma_handle, | ||
108 | unsigned long offset, size_t size, | ||
109 | enum dma_data_direction direction) | ||
110 | { | ||
111 | BUG(); | ||
112 | } | ||
113 | |||
114 | static inline void | ||
115 | dma_cache_sync(struct device *dev, void *vaddr, size_t size, | ||
116 | enum dma_data_direction direction) | ||
117 | { | ||
118 | BUG(); | ||
119 | } | ||
120 | |||
121 | static inline int | ||
122 | dma_mapping_error(struct device *dev, dma_addr_t dma_handle) | ||
123 | { | ||
124 | BUG(); | ||
125 | return 0; | ||
126 | } | ||
127 | |||
128 | #endif | ||
diff --git a/arch/um/include/asm/dma.h b/arch/um/include/asm/dma.h new file mode 100644 index 000000000000..9f6139a8a525 --- /dev/null +++ b/arch/um/include/asm/dma.h | |||
@@ -0,0 +1,10 @@ | |||
1 | #ifndef __UM_DMA_H | ||
2 | #define __UM_DMA_H | ||
3 | |||
4 | #include "asm/io.h" | ||
5 | |||
6 | extern unsigned long uml_physmem; | ||
7 | |||
8 | #define MAX_DMA_ADDRESS (uml_physmem) | ||
9 | |||
10 | #endif | ||
diff --git a/arch/um/include/asm/emergency-restart.h b/arch/um/include/asm/emergency-restart.h new file mode 100644 index 000000000000..108d8c48e42e --- /dev/null +++ b/arch/um/include/asm/emergency-restart.h | |||
@@ -0,0 +1,6 @@ | |||
1 | #ifndef _ASM_EMERGENCY_RESTART_H | ||
2 | #define _ASM_EMERGENCY_RESTART_H | ||
3 | |||
4 | #include <asm-generic/emergency-restart.h> | ||
5 | |||
6 | #endif /* _ASM_EMERGENCY_RESTART_H */ | ||
diff --git a/arch/um/include/asm/fixmap.h b/arch/um/include/asm/fixmap.h new file mode 100644 index 000000000000..69c0252345f1 --- /dev/null +++ b/arch/um/include/asm/fixmap.h | |||
@@ -0,0 +1,99 @@ | |||
1 | #ifndef __UM_FIXMAP_H | ||
2 | #define __UM_FIXMAP_H | ||
3 | |||
4 | #include <asm/processor.h> | ||
5 | #include <asm/system.h> | ||
6 | #include <asm/kmap_types.h> | ||
7 | #include <asm/archparam.h> | ||
8 | #include <asm/page.h> | ||
9 | #include <linux/threads.h> | ||
10 | |||
11 | /* | ||
12 | * Here we define all the compile-time 'special' virtual | ||
13 | * addresses. The point is to have a constant address at | ||
14 | * compile time, but to set the physical address only | ||
15 | * in the boot process. We allocate these special addresses | ||
16 | * from the end of virtual memory (0xfffff000) backwards. | ||
17 | * Also this lets us do fail-safe vmalloc(), we | ||
18 | * can guarantee that these special addresses and | ||
19 | * vmalloc()-ed addresses never overlap. | ||
20 | * | ||
21 | * these 'compile-time allocated' memory buffers are | ||
22 | * fixed-size 4k pages. (or larger if used with an increment | ||
23 | * highger than 1) use fixmap_set(idx,phys) to associate | ||
24 | * physical memory with fixmap indices. | ||
25 | * | ||
26 | * TLB entries of such buffers will not be flushed across | ||
27 | * task switches. | ||
28 | */ | ||
29 | |||
30 | /* | ||
31 | * on UP currently we will have no trace of the fixmap mechanizm, | ||
32 | * no page table allocations, etc. This might change in the | ||
33 | * future, say framebuffers for the console driver(s) could be | ||
34 | * fix-mapped? | ||
35 | */ | ||
36 | enum fixed_addresses { | ||
37 | #ifdef CONFIG_HIGHMEM | ||
38 | FIX_KMAP_BEGIN, /* reserved pte's for temporary kernel mappings */ | ||
39 | FIX_KMAP_END = FIX_KMAP_BEGIN+(KM_TYPE_NR*NR_CPUS)-1, | ||
40 | #endif | ||
41 | __end_of_fixed_addresses | ||
42 | }; | ||
43 | |||
44 | extern void __set_fixmap (enum fixed_addresses idx, | ||
45 | unsigned long phys, pgprot_t flags); | ||
46 | |||
47 | #define set_fixmap(idx, phys) \ | ||
48 | __set_fixmap(idx, phys, PAGE_KERNEL) | ||
49 | /* | ||
50 | * Some hardware wants to get fixmapped without caching. | ||
51 | */ | ||
52 | #define set_fixmap_nocache(idx, phys) \ | ||
53 | __set_fixmap(idx, phys, PAGE_KERNEL_NOCACHE) | ||
54 | /* | ||
55 | * used by vmalloc.c. | ||
56 | * | ||
57 | * Leave one empty page between vmalloc'ed areas and | ||
58 | * the start of the fixmap, and leave one page empty | ||
59 | * at the top of mem.. | ||
60 | */ | ||
61 | |||
62 | #define FIXADDR_TOP (TASK_SIZE - 2 * PAGE_SIZE) | ||
63 | #define FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT) | ||
64 | #define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE) | ||
65 | |||
66 | #define __fix_to_virt(x) (FIXADDR_TOP - ((x) << PAGE_SHIFT)) | ||
67 | #define __virt_to_fix(x) ((FIXADDR_TOP - ((x)&PAGE_MASK)) >> PAGE_SHIFT) | ||
68 | |||
69 | extern void __this_fixmap_does_not_exist(void); | ||
70 | |||
71 | /* | ||
72 | * 'index to address' translation. If anyone tries to use the idx | ||
73 | * directly without tranlation, we catch the bug with a NULL-deference | ||
74 | * kernel oops. Illegal ranges of incoming indices are caught too. | ||
75 | */ | ||
76 | static inline unsigned long fix_to_virt(const unsigned int idx) | ||
77 | { | ||
78 | /* | ||
79 | * this branch gets completely eliminated after inlining, | ||
80 | * except when someone tries to use fixaddr indices in an | ||
81 | * illegal way. (such as mixing up address types or using | ||
82 | * out-of-range indices). | ||
83 | * | ||
84 | * If it doesn't get removed, the linker will complain | ||
85 | * loudly with a reasonably clear error message.. | ||
86 | */ | ||
87 | if (idx >= __end_of_fixed_addresses) | ||
88 | __this_fixmap_does_not_exist(); | ||
89 | |||
90 | return __fix_to_virt(idx); | ||
91 | } | ||
92 | |||
93 | static inline unsigned long virt_to_fix(const unsigned long vaddr) | ||
94 | { | ||
95 | BUG_ON(vaddr >= FIXADDR_TOP || vaddr < FIXADDR_START); | ||
96 | return __virt_to_fix(vaddr); | ||
97 | } | ||
98 | |||
99 | #endif | ||
diff --git a/arch/um/include/asm/futex.h b/arch/um/include/asm/futex.h new file mode 100644 index 000000000000..6a332a9f099c --- /dev/null +++ b/arch/um/include/asm/futex.h | |||
@@ -0,0 +1,6 @@ | |||
1 | #ifndef _ASM_FUTEX_H | ||
2 | #define _ASM_FUTEX_H | ||
3 | |||
4 | #include <asm-generic/futex.h> | ||
5 | |||
6 | #endif | ||
diff --git a/arch/um/include/asm/hardirq.h b/arch/um/include/asm/hardirq.h new file mode 100644 index 000000000000..313ebb8a2566 --- /dev/null +++ b/arch/um/include/asm/hardirq.h | |||
@@ -0,0 +1,25 @@ | |||
1 | /* (c) 2004 cw@f00f.org, GPLv2 blah blah */ | ||
2 | |||
3 | #ifndef __ASM_UM_HARDIRQ_H | ||
4 | #define __ASM_UM_HARDIRQ_H | ||
5 | |||
6 | #include <linux/threads.h> | ||
7 | #include <linux/irq.h> | ||
8 | |||
9 | /* NOTE: When SMP works again we might want to make this | ||
10 | * ____cacheline_aligned or maybe use per_cpu state? --cw */ | ||
11 | typedef struct { | ||
12 | unsigned int __softirq_pending; | ||
13 | } irq_cpustat_t; | ||
14 | |||
15 | #include <linux/irq_cpustat.h> | ||
16 | |||
17 | /* As this would be very strange for UML to get we BUG() after the | ||
18 | * printk. */ | ||
19 | static inline void ack_bad_irq(unsigned int irq) | ||
20 | { | ||
21 | printk(KERN_ERR "unexpected IRQ %02x\n", irq); | ||
22 | BUG(); | ||
23 | } | ||
24 | |||
25 | #endif /* __ASM_UM_HARDIRQ_H */ | ||
diff --git a/arch/um/include/asm/hw_irq.h b/arch/um/include/asm/hw_irq.h new file mode 100644 index 000000000000..1cf84cf5f21a --- /dev/null +++ b/arch/um/include/asm/hw_irq.h | |||
@@ -0,0 +1,7 @@ | |||
1 | #ifndef _ASM_UM_HW_IRQ_H | ||
2 | #define _ASM_UM_HW_IRQ_H | ||
3 | |||
4 | #include "asm/irq.h" | ||
5 | #include "asm/archparam.h" | ||
6 | |||
7 | #endif | ||
diff --git a/arch/um/include/asm/io.h b/arch/um/include/asm/io.h new file mode 100644 index 000000000000..44e8b8c772ae --- /dev/null +++ b/arch/um/include/asm/io.h | |||
@@ -0,0 +1,57 @@ | |||
1 | #ifndef __UM_IO_H | ||
2 | #define __UM_IO_H | ||
3 | |||
4 | #include "asm/page.h" | ||
5 | |||
6 | #define IO_SPACE_LIMIT 0xdeadbeef /* Sure hope nothing uses this */ | ||
7 | |||
8 | static inline int inb(unsigned long i) { return(0); } | ||
9 | static inline void outb(char c, unsigned long i) { } | ||
10 | |||
11 | /* | ||
12 | * Change virtual addresses to physical addresses and vv. | ||
13 | * These are pretty trivial | ||
14 | */ | ||
15 | static inline unsigned long virt_to_phys(volatile void * address) | ||
16 | { | ||
17 | return __pa((void *) address); | ||
18 | } | ||
19 | |||
20 | static inline void * phys_to_virt(unsigned long address) | ||
21 | { | ||
22 | return __va(address); | ||
23 | } | ||
24 | |||
25 | /* | ||
26 | * Convert a physical pointer to a virtual kernel pointer for /dev/mem | ||
27 | * access | ||
28 | */ | ||
29 | #define xlate_dev_mem_ptr(p) __va(p) | ||
30 | |||
31 | /* | ||
32 | * Convert a virtual cached pointer to an uncached pointer | ||
33 | */ | ||
34 | #define xlate_dev_kmem_ptr(p) p | ||
35 | |||
36 | static inline void writeb(unsigned char b, volatile void __iomem *addr) | ||
37 | { | ||
38 | *(volatile unsigned char __force *) addr = b; | ||
39 | } | ||
40 | static inline void writew(unsigned short b, volatile void __iomem *addr) | ||
41 | { | ||
42 | *(volatile unsigned short __force *) addr = b; | ||
43 | } | ||
44 | static inline void writel(unsigned int b, volatile void __iomem *addr) | ||
45 | { | ||
46 | *(volatile unsigned int __force *) addr = b; | ||
47 | } | ||
48 | static inline void writeq(unsigned int b, volatile void __iomem *addr) | ||
49 | { | ||
50 | *(volatile unsigned long long __force *) addr = b; | ||
51 | } | ||
52 | #define __raw_writeb writeb | ||
53 | #define __raw_writew writew | ||
54 | #define __raw_writel writel | ||
55 | #define __raw_writeq writeq | ||
56 | |||
57 | #endif | ||
diff --git a/arch/um/include/asm/irq.h b/arch/um/include/asm/irq.h new file mode 100644 index 000000000000..4a2037f8204b --- /dev/null +++ b/arch/um/include/asm/irq.h | |||
@@ -0,0 +1,23 @@ | |||
1 | #ifndef __UM_IRQ_H | ||
2 | #define __UM_IRQ_H | ||
3 | |||
4 | #define TIMER_IRQ 0 | ||
5 | #define UMN_IRQ 1 | ||
6 | #define CONSOLE_IRQ 2 | ||
7 | #define CONSOLE_WRITE_IRQ 3 | ||
8 | #define UBD_IRQ 4 | ||
9 | #define UM_ETH_IRQ 5 | ||
10 | #define SSL_IRQ 6 | ||
11 | #define SSL_WRITE_IRQ 7 | ||
12 | #define ACCEPT_IRQ 8 | ||
13 | #define MCONSOLE_IRQ 9 | ||
14 | #define WINCH_IRQ 10 | ||
15 | #define SIGIO_WRITE_IRQ 11 | ||
16 | #define TELNETD_IRQ 12 | ||
17 | #define XTERM_IRQ 13 | ||
18 | #define RANDOM_IRQ 14 | ||
19 | |||
20 | #define LAST_IRQ RANDOM_IRQ | ||
21 | #define NR_IRQS (LAST_IRQ + 1) | ||
22 | |||
23 | #endif | ||
diff --git a/arch/um/include/asm/irq_regs.h b/arch/um/include/asm/irq_regs.h new file mode 100644 index 000000000000..3dd9c0b70270 --- /dev/null +++ b/arch/um/include/asm/irq_regs.h | |||
@@ -0,0 +1 @@ | |||
#include <asm-generic/irq_regs.h> | |||
diff --git a/arch/um/include/asm/irq_vectors.h b/arch/um/include/asm/irq_vectors.h new file mode 100644 index 000000000000..62ddba6fc733 --- /dev/null +++ b/arch/um/include/asm/irq_vectors.h | |||
@@ -0,0 +1,20 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2002 Jeff Dike (jdike@karaya.com) | ||
3 | * Licensed under the GPL | ||
4 | */ | ||
5 | |||
6 | #ifndef __UM_IRQ_VECTORS_H | ||
7 | #define __UM_IRQ_VECTORS_H | ||
8 | |||
9 | #endif | ||
10 | |||
11 | /* | ||
12 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
13 | * Emacs will notice this stuff at the end of the file and automatically | ||
14 | * adjust the settings for this buffer only. This must remain at the end | ||
15 | * of the file. | ||
16 | * --------------------------------------------------------------------------- | ||
17 | * Local variables: | ||
18 | * c-file-style: "linux" | ||
19 | * End: | ||
20 | */ | ||
diff --git a/arch/um/include/asm/irqflags.h b/arch/um/include/asm/irqflags.h new file mode 100644 index 000000000000..659b9abdfdba --- /dev/null +++ b/arch/um/include/asm/irqflags.h | |||
@@ -0,0 +1,6 @@ | |||
1 | #ifndef __UM_IRQFLAGS_H | ||
2 | #define __UM_IRQFLAGS_H | ||
3 | |||
4 | /* Empty for now */ | ||
5 | |||
6 | #endif | ||
diff --git a/arch/um/include/asm/kdebug.h b/arch/um/include/asm/kdebug.h new file mode 100644 index 000000000000..6ece1b037665 --- /dev/null +++ b/arch/um/include/asm/kdebug.h | |||
@@ -0,0 +1 @@ | |||
#include <asm-generic/kdebug.h> | |||
diff --git a/arch/um/include/asm/kmap_types.h b/arch/um/include/asm/kmap_types.h new file mode 100644 index 000000000000..6c03acdb4405 --- /dev/null +++ b/arch/um/include/asm/kmap_types.h | |||
@@ -0,0 +1,29 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2002 Jeff Dike (jdike@karaya.com) | ||
3 | * Licensed under the GPL | ||
4 | */ | ||
5 | |||
6 | #ifndef __UM_KMAP_TYPES_H | ||
7 | #define __UM_KMAP_TYPES_H | ||
8 | |||
9 | /* No more #include "asm/arch/kmap_types.h" ! */ | ||
10 | |||
11 | enum km_type { | ||
12 | KM_BOUNCE_READ, | ||
13 | KM_SKB_SUNRPC_DATA, | ||
14 | KM_SKB_DATA_SOFTIRQ, | ||
15 | KM_USER0, | ||
16 | KM_USER1, | ||
17 | KM_UML_USERCOPY, /* UML specific, for copy_*_user - used in do_op_one_page */ | ||
18 | KM_BIO_SRC_IRQ, | ||
19 | KM_BIO_DST_IRQ, | ||
20 | KM_PTE0, | ||
21 | KM_PTE1, | ||
22 | KM_IRQ0, | ||
23 | KM_IRQ1, | ||
24 | KM_SOFTIRQ0, | ||
25 | KM_SOFTIRQ1, | ||
26 | KM_TYPE_NR | ||
27 | }; | ||
28 | |||
29 | #endif | ||
diff --git a/arch/um/include/asm/mmu.h b/arch/um/include/asm/mmu.h new file mode 100644 index 000000000000..2cf35c21d694 --- /dev/null +++ b/arch/um/include/asm/mmu.h | |||
@@ -0,0 +1,22 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2002 Jeff Dike (jdike@karaya.com) | ||
3 | * Licensed under the GPL | ||
4 | */ | ||
5 | |||
6 | #ifndef __MMU_H | ||
7 | #define __MMU_H | ||
8 | |||
9 | #include "um_mmu.h" | ||
10 | |||
11 | #endif | ||
12 | |||
13 | /* | ||
14 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
15 | * Emacs will notice this stuff at the end of the file and automatically | ||
16 | * adjust the settings for this buffer only. This must remain at the end | ||
17 | * of the file. | ||
18 | * --------------------------------------------------------------------------- | ||
19 | * Local variables: | ||
20 | * c-file-style: "linux" | ||
21 | * End: | ||
22 | */ | ||
diff --git a/arch/um/include/asm/mmu_context.h b/arch/um/include/asm/mmu_context.h new file mode 100644 index 000000000000..54f42e8b0105 --- /dev/null +++ b/arch/um/include/asm/mmu_context.h | |||
@@ -0,0 +1,54 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) | ||
3 | * Licensed under the GPL | ||
4 | */ | ||
5 | |||
6 | #ifndef __UM_MMU_CONTEXT_H | ||
7 | #define __UM_MMU_CONTEXT_H | ||
8 | |||
9 | #include "linux/sched.h" | ||
10 | #include "um_mmu.h" | ||
11 | |||
12 | extern void arch_dup_mmap(struct mm_struct *oldmm, struct mm_struct *mm); | ||
13 | extern void arch_exit_mmap(struct mm_struct *mm); | ||
14 | |||
15 | #define get_mmu_context(task) do ; while(0) | ||
16 | #define activate_context(tsk) do ; while(0) | ||
17 | |||
18 | #define deactivate_mm(tsk,mm) do { } while (0) | ||
19 | |||
20 | extern void force_flush_all(void); | ||
21 | |||
22 | static inline void activate_mm(struct mm_struct *old, struct mm_struct *new) | ||
23 | { | ||
24 | /* | ||
25 | * This is called by fs/exec.c and sys_unshare() | ||
26 | * when the new ->mm is used for the first time. | ||
27 | */ | ||
28 | __switch_mm(&new->context.id); | ||
29 | arch_dup_mmap(old, new); | ||
30 | } | ||
31 | |||
32 | static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, | ||
33 | struct task_struct *tsk) | ||
34 | { | ||
35 | unsigned cpu = smp_processor_id(); | ||
36 | |||
37 | if(prev != next){ | ||
38 | cpu_clear(cpu, prev->cpu_vm_mask); | ||
39 | cpu_set(cpu, next->cpu_vm_mask); | ||
40 | if(next != &init_mm) | ||
41 | __switch_mm(&next->context.id); | ||
42 | } | ||
43 | } | ||
44 | |||
45 | static inline void enter_lazy_tlb(struct mm_struct *mm, | ||
46 | struct task_struct *tsk) | ||
47 | { | ||
48 | } | ||
49 | |||
50 | extern int init_new_context(struct task_struct *task, struct mm_struct *mm); | ||
51 | |||
52 | extern void destroy_context(struct mm_struct *mm); | ||
53 | |||
54 | #endif | ||
diff --git a/arch/um/include/asm/mutex.h b/arch/um/include/asm/mutex.h new file mode 100644 index 000000000000..458c1f7fbc18 --- /dev/null +++ b/arch/um/include/asm/mutex.h | |||
@@ -0,0 +1,9 @@ | |||
1 | /* | ||
2 | * Pull in the generic implementation for the mutex fastpath. | ||
3 | * | ||
4 | * TODO: implement optimized primitives instead, or leave the generic | ||
5 | * implementation in place, or pick the atomic_xchg() based generic | ||
6 | * implementation. (see asm-generic/mutex-xchg.h for details) | ||
7 | */ | ||
8 | |||
9 | #include <asm-generic/mutex-dec.h> | ||
diff --git a/arch/um/include/asm/page.h b/arch/um/include/asm/page.h new file mode 100644 index 000000000000..55f28a0bae6d --- /dev/null +++ b/arch/um/include/asm/page.h | |||
@@ -0,0 +1,122 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com) | ||
3 | * Copyright 2003 PathScale, Inc. | ||
4 | * Licensed under the GPL | ||
5 | */ | ||
6 | |||
7 | #ifndef __UM_PAGE_H | ||
8 | #define __UM_PAGE_H | ||
9 | |||
10 | #include <linux/const.h> | ||
11 | |||
12 | /* PAGE_SHIFT determines the page size */ | ||
13 | #define PAGE_SHIFT 12 | ||
14 | #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) | ||
15 | #define PAGE_MASK (~(PAGE_SIZE-1)) | ||
16 | |||
17 | #ifndef __ASSEMBLY__ | ||
18 | |||
19 | struct page; | ||
20 | |||
21 | #include <linux/types.h> | ||
22 | #include <sysdep/vm-flags.h> | ||
23 | |||
24 | /* | ||
25 | * These are used to make use of C type-checking.. | ||
26 | */ | ||
27 | |||
28 | #define clear_page(page) memset((void *)(page), 0, PAGE_SIZE) | ||
29 | #define copy_page(to,from) memcpy((void *)(to), (void *)(from), PAGE_SIZE) | ||
30 | |||
31 | #define clear_user_page(page, vaddr, pg) clear_page(page) | ||
32 | #define copy_user_page(to, from, vaddr, pg) copy_page(to, from) | ||
33 | |||
34 | #if defined(CONFIG_3_LEVEL_PGTABLES) && !defined(CONFIG_64BIT) | ||
35 | |||
36 | typedef struct { unsigned long pte_low, pte_high; } pte_t; | ||
37 | typedef struct { unsigned long pmd; } pmd_t; | ||
38 | typedef struct { unsigned long pgd; } pgd_t; | ||
39 | #define pte_val(x) ((x).pte_low | ((unsigned long long) (x).pte_high << 32)) | ||
40 | |||
41 | #define pte_get_bits(pte, bits) ((pte).pte_low & (bits)) | ||
42 | #define pte_set_bits(pte, bits) ((pte).pte_low |= (bits)) | ||
43 | #define pte_clear_bits(pte, bits) ((pte).pte_low &= ~(bits)) | ||
44 | #define pte_copy(to, from) ({ (to).pte_high = (from).pte_high; \ | ||
45 | smp_wmb(); \ | ||
46 | (to).pte_low = (from).pte_low; }) | ||
47 | #define pte_is_zero(pte) (!((pte).pte_low & ~_PAGE_NEWPAGE) && !(pte).pte_high) | ||
48 | #define pte_set_val(pte, phys, prot) \ | ||
49 | ({ (pte).pte_high = (phys) >> 32; \ | ||
50 | (pte).pte_low = (phys) | pgprot_val(prot); }) | ||
51 | |||
52 | #define pmd_val(x) ((x).pmd) | ||
53 | #define __pmd(x) ((pmd_t) { (x) } ) | ||
54 | |||
55 | typedef unsigned long long pfn_t; | ||
56 | typedef unsigned long long phys_t; | ||
57 | |||
58 | #else | ||
59 | |||
60 | typedef struct { unsigned long pte; } pte_t; | ||
61 | typedef struct { unsigned long pgd; } pgd_t; | ||
62 | |||
63 | #ifdef CONFIG_3_LEVEL_PGTABLES | ||
64 | typedef struct { unsigned long pmd; } pmd_t; | ||
65 | #define pmd_val(x) ((x).pmd) | ||
66 | #define __pmd(x) ((pmd_t) { (x) } ) | ||
67 | #endif | ||
68 | |||
69 | #define pte_val(x) ((x).pte) | ||
70 | |||
71 | |||
72 | #define pte_get_bits(p, bits) ((p).pte & (bits)) | ||
73 | #define pte_set_bits(p, bits) ((p).pte |= (bits)) | ||
74 | #define pte_clear_bits(p, bits) ((p).pte &= ~(bits)) | ||
75 | #define pte_copy(to, from) ((to).pte = (from).pte) | ||
76 | #define pte_is_zero(p) (!((p).pte & ~_PAGE_NEWPAGE)) | ||
77 | #define pte_set_val(p, phys, prot) (p).pte = (phys | pgprot_val(prot)) | ||
78 | |||
79 | typedef unsigned long pfn_t; | ||
80 | typedef unsigned long phys_t; | ||
81 | |||
82 | #endif | ||
83 | |||
84 | typedef struct { unsigned long pgprot; } pgprot_t; | ||
85 | |||
86 | typedef struct page *pgtable_t; | ||
87 | |||
88 | #define pgd_val(x) ((x).pgd) | ||
89 | #define pgprot_val(x) ((x).pgprot) | ||
90 | |||
91 | #define __pte(x) ((pte_t) { (x) } ) | ||
92 | #define __pgd(x) ((pgd_t) { (x) } ) | ||
93 | #define __pgprot(x) ((pgprot_t) { (x) } ) | ||
94 | |||
95 | extern unsigned long uml_physmem; | ||
96 | |||
97 | #define PAGE_OFFSET (uml_physmem) | ||
98 | #define KERNELBASE PAGE_OFFSET | ||
99 | |||
100 | #define __va_space (8*1024*1024) | ||
101 | |||
102 | #include "mem.h" | ||
103 | |||
104 | /* Cast to unsigned long before casting to void * to avoid a warning from | ||
105 | * mmap_kmem about cutting a long long down to a void *. Not sure that | ||
106 | * casting is the right thing, but 32-bit UML can't have 64-bit virtual | ||
107 | * addresses | ||
108 | */ | ||
109 | #define __pa(virt) to_phys((void *) (unsigned long) (virt)) | ||
110 | #define __va(phys) to_virt((unsigned long) (phys)) | ||
111 | |||
112 | #define phys_to_pfn(p) ((pfn_t) ((p) >> PAGE_SHIFT)) | ||
113 | #define pfn_to_phys(pfn) ((phys_t) ((pfn) << PAGE_SHIFT)) | ||
114 | |||
115 | #define pfn_valid(pfn) ((pfn) < max_mapnr) | ||
116 | #define virt_addr_valid(v) pfn_valid(phys_to_pfn(__pa(v))) | ||
117 | |||
118 | #include <asm-generic/memory_model.h> | ||
119 | #include <asm-generic/page.h> | ||
120 | |||
121 | #endif /* __ASSEMBLY__ */ | ||
122 | #endif /* __UM_PAGE_H */ | ||
diff --git a/arch/um/include/asm/page_offset.h b/arch/um/include/asm/page_offset.h new file mode 100644 index 000000000000..1c168dfbf359 --- /dev/null +++ b/arch/um/include/asm/page_offset.h | |||
@@ -0,0 +1 @@ | |||
#define PAGE_OFFSET_RAW (uml_physmem) | |||
diff --git a/arch/um/include/asm/param.h b/arch/um/include/asm/param.h new file mode 100644 index 000000000000..e44f4e60d16d --- /dev/null +++ b/arch/um/include/asm/param.h | |||
@@ -0,0 +1,20 @@ | |||
1 | #ifndef _UM_PARAM_H | ||
2 | #define _UM_PARAM_H | ||
3 | |||
4 | #define EXEC_PAGESIZE 4096 | ||
5 | |||
6 | #ifndef NOGROUP | ||
7 | #define NOGROUP (-1) | ||
8 | #endif | ||
9 | |||
10 | #define MAXHOSTNAMELEN 64 /* max length of hostname */ | ||
11 | |||
12 | #ifdef __KERNEL__ | ||
13 | #define HZ CONFIG_HZ | ||
14 | #define USER_HZ 100 /* .. some user interfaces are in "ticks" */ | ||
15 | #define CLOCKS_PER_SEC (USER_HZ) /* frequency at which times() counts */ | ||
16 | #else | ||
17 | #define HZ 100 | ||
18 | #endif | ||
19 | |||
20 | #endif | ||
diff --git a/arch/um/include/asm/pci.h b/arch/um/include/asm/pci.h new file mode 100644 index 000000000000..59923199cdc3 --- /dev/null +++ b/arch/um/include/asm/pci.h | |||
@@ -0,0 +1,7 @@ | |||
1 | #ifndef __UM_PCI_H | ||
2 | #define __UM_PCI_H | ||
3 | |||
4 | #define PCI_DMA_BUS_IS_PHYS (1) | ||
5 | #define pcibios_scan_all_fns(a, b) 0 | ||
6 | |||
7 | #endif | ||
diff --git a/arch/um/include/asm/pda.h b/arch/um/include/asm/pda.h new file mode 100644 index 000000000000..0d8bf33ffd42 --- /dev/null +++ b/arch/um/include/asm/pda.h | |||
@@ -0,0 +1,31 @@ | |||
1 | /* | ||
2 | * Copyright 2003 PathScale, Inc. | ||
3 | * | ||
4 | * Licensed under the GPL | ||
5 | */ | ||
6 | |||
7 | #ifndef __UM_PDA_X86_64_H | ||
8 | #define __UM_PDA_X86_64_H | ||
9 | |||
10 | /* XXX */ | ||
11 | struct foo { | ||
12 | unsigned int __softirq_pending; | ||
13 | unsigned int __nmi_count; | ||
14 | }; | ||
15 | |||
16 | extern struct foo me; | ||
17 | |||
18 | #define read_pda(me) (&me) | ||
19 | |||
20 | #endif | ||
21 | |||
22 | /* | ||
23 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
24 | * Emacs will notice this stuff at the end of the file and automatically | ||
25 | * adjust the settings for this buffer only. This must remain at the end | ||
26 | * of the file. | ||
27 | * --------------------------------------------------------------------------- | ||
28 | * Local variables: | ||
29 | * c-file-style: "linux" | ||
30 | * End: | ||
31 | */ | ||
diff --git a/arch/um/include/asm/pgalloc.h b/arch/um/include/asm/pgalloc.h new file mode 100644 index 000000000000..9062a6e72241 --- /dev/null +++ b/arch/um/include/asm/pgalloc.h | |||
@@ -0,0 +1,72 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com) | ||
3 | * Copyright 2003 PathScale, Inc. | ||
4 | * Derived from include/asm-i386/pgalloc.h and include/asm-i386/pgtable.h | ||
5 | * Licensed under the GPL | ||
6 | */ | ||
7 | |||
8 | #ifndef __UM_PGALLOC_H | ||
9 | #define __UM_PGALLOC_H | ||
10 | |||
11 | #include "linux/mm.h" | ||
12 | #include "asm/fixmap.h" | ||
13 | |||
14 | #define pmd_populate_kernel(mm, pmd, pte) \ | ||
15 | set_pmd(pmd, __pmd(_PAGE_TABLE + (unsigned long) __pa(pte))) | ||
16 | |||
17 | #define pmd_populate(mm, pmd, pte) \ | ||
18 | set_pmd(pmd, __pmd(_PAGE_TABLE + \ | ||
19 | ((unsigned long long)page_to_pfn(pte) << \ | ||
20 | (unsigned long long) PAGE_SHIFT))) | ||
21 | #define pmd_pgtable(pmd) pmd_page(pmd) | ||
22 | |||
23 | /* | ||
24 | * Allocate and free page tables. | ||
25 | */ | ||
26 | extern pgd_t *pgd_alloc(struct mm_struct *); | ||
27 | extern void pgd_free(struct mm_struct *mm, pgd_t *pgd); | ||
28 | |||
29 | extern pte_t *pte_alloc_one_kernel(struct mm_struct *, unsigned long); | ||
30 | extern pgtable_t pte_alloc_one(struct mm_struct *, unsigned long); | ||
31 | |||
32 | static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte) | ||
33 | { | ||
34 | free_page((unsigned long) pte); | ||
35 | } | ||
36 | |||
37 | static inline void pte_free(struct mm_struct *mm, pgtable_t pte) | ||
38 | { | ||
39 | pgtable_page_dtor(pte); | ||
40 | __free_page(pte); | ||
41 | } | ||
42 | |||
43 | #define __pte_free_tlb(tlb,pte) \ | ||
44 | do { \ | ||
45 | pgtable_page_dtor(pte); \ | ||
46 | tlb_remove_page((tlb),(pte)); \ | ||
47 | } while (0) | ||
48 | |||
49 | #ifdef CONFIG_3_LEVEL_PGTABLES | ||
50 | |||
51 | static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd) | ||
52 | { | ||
53 | free_page((unsigned long)pmd); | ||
54 | } | ||
55 | |||
56 | #define __pmd_free_tlb(tlb,x) tlb_remove_page((tlb),virt_to_page(x)) | ||
57 | #endif | ||
58 | |||
59 | #define check_pgt_cache() do { } while (0) | ||
60 | |||
61 | #endif | ||
62 | |||
63 | /* | ||
64 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
65 | * Emacs will notice this stuff at the end of the file and automatically | ||
66 | * adjust the settings for this buffer only. This must remain at the end | ||
67 | * of the file. | ||
68 | * --------------------------------------------------------------------------- | ||
69 | * Local variables: | ||
70 | * c-file-style: "linux" | ||
71 | * End: | ||
72 | */ | ||
diff --git a/arch/um/include/asm/pgtable-2level.h b/arch/um/include/asm/pgtable-2level.h new file mode 100644 index 000000000000..f534b73e753e --- /dev/null +++ b/arch/um/include/asm/pgtable-2level.h | |||
@@ -0,0 +1,53 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com) | ||
3 | * Copyright 2003 PathScale, Inc. | ||
4 | * Derived from include/asm-i386/pgtable.h | ||
5 | * Licensed under the GPL | ||
6 | */ | ||
7 | |||
8 | #ifndef __UM_PGTABLE_2LEVEL_H | ||
9 | #define __UM_PGTABLE_2LEVEL_H | ||
10 | |||
11 | #include <asm-generic/pgtable-nopmd.h> | ||
12 | |||
13 | /* PGDIR_SHIFT determines what a third-level page table entry can map */ | ||
14 | |||
15 | #define PGDIR_SHIFT 22 | ||
16 | #define PGDIR_SIZE (1UL << PGDIR_SHIFT) | ||
17 | #define PGDIR_MASK (~(PGDIR_SIZE-1)) | ||
18 | |||
19 | /* | ||
20 | * entries per page directory level: the i386 is two-level, so | ||
21 | * we don't really have any PMD directory physically. | ||
22 | */ | ||
23 | #define PTRS_PER_PTE 1024 | ||
24 | #define USER_PTRS_PER_PGD ((TASK_SIZE + (PGDIR_SIZE - 1)) / PGDIR_SIZE) | ||
25 | #define PTRS_PER_PGD 1024 | ||
26 | #define FIRST_USER_ADDRESS 0 | ||
27 | |||
28 | #define pte_ERROR(e) \ | ||
29 | printk("%s:%d: bad pte %p(%08lx).\n", __FILE__, __LINE__, &(e), \ | ||
30 | pte_val(e)) | ||
31 | #define pgd_ERROR(e) \ | ||
32 | printk("%s:%d: bad pgd %p(%08lx).\n", __FILE__, __LINE__, &(e), \ | ||
33 | pgd_val(e)) | ||
34 | |||
35 | static inline int pgd_newpage(pgd_t pgd) { return 0; } | ||
36 | static inline void pgd_mkuptodate(pgd_t pgd) { } | ||
37 | |||
38 | #define set_pmd(pmdptr, pmdval) (*(pmdptr) = (pmdval)) | ||
39 | |||
40 | #define pte_pfn(x) phys_to_pfn(pte_val(x)) | ||
41 | #define pfn_pte(pfn, prot) __pte(pfn_to_phys(pfn) | pgprot_val(prot)) | ||
42 | #define pfn_pmd(pfn, prot) __pmd(pfn_to_phys(pfn) | pgprot_val(prot)) | ||
43 | |||
44 | /* | ||
45 | * Bits 0 through 4 are taken | ||
46 | */ | ||
47 | #define PTE_FILE_MAX_BITS 27 | ||
48 | |||
49 | #define pte_to_pgoff(pte) (pte_val(pte) >> 5) | ||
50 | |||
51 | #define pgoff_to_pte(off) ((pte_t) { ((off) << 5) + _PAGE_FILE }) | ||
52 | |||
53 | #endif | ||
diff --git a/arch/um/include/asm/pgtable-3level.h b/arch/um/include/asm/pgtable-3level.h new file mode 100644 index 000000000000..0446f456b428 --- /dev/null +++ b/arch/um/include/asm/pgtable-3level.h | |||
@@ -0,0 +1,146 @@ | |||
1 | /* | ||
2 | * Copyright 2003 PathScale Inc | ||
3 | * Derived from include/asm-i386/pgtable.h | ||
4 | * Licensed under the GPL | ||
5 | */ | ||
6 | |||
7 | #ifndef __UM_PGTABLE_3LEVEL_H | ||
8 | #define __UM_PGTABLE_3LEVEL_H | ||
9 | |||
10 | #include <asm-generic/pgtable-nopud.h> | ||
11 | |||
12 | /* PGDIR_SHIFT determines what a third-level page table entry can map */ | ||
13 | |||
14 | #ifdef CONFIG_64BIT | ||
15 | #define PGDIR_SHIFT 30 | ||
16 | #else | ||
17 | #define PGDIR_SHIFT 31 | ||
18 | #endif | ||
19 | #define PGDIR_SIZE (1UL << PGDIR_SHIFT) | ||
20 | #define PGDIR_MASK (~(PGDIR_SIZE-1)) | ||
21 | |||
22 | /* PMD_SHIFT determines the size of the area a second-level page table can | ||
23 | * map | ||
24 | */ | ||
25 | |||
26 | #define PMD_SHIFT 21 | ||
27 | #define PMD_SIZE (1UL << PMD_SHIFT) | ||
28 | #define PMD_MASK (~(PMD_SIZE-1)) | ||
29 | |||
30 | /* | ||
31 | * entries per page directory level | ||
32 | */ | ||
33 | |||
34 | #define PTRS_PER_PTE 512 | ||
35 | #ifdef CONFIG_64BIT | ||
36 | #define PTRS_PER_PMD 512 | ||
37 | #define PTRS_PER_PGD 512 | ||
38 | #else | ||
39 | #define PTRS_PER_PMD 1024 | ||
40 | #define PTRS_PER_PGD 1024 | ||
41 | #endif | ||
42 | |||
43 | #define USER_PTRS_PER_PGD ((TASK_SIZE + (PGDIR_SIZE - 1)) / PGDIR_SIZE) | ||
44 | #define FIRST_USER_ADDRESS 0 | ||
45 | |||
46 | #define pte_ERROR(e) \ | ||
47 | printk("%s:%d: bad pte %p(%016lx).\n", __FILE__, __LINE__, &(e), \ | ||
48 | pte_val(e)) | ||
49 | #define pmd_ERROR(e) \ | ||
50 | printk("%s:%d: bad pmd %p(%016lx).\n", __FILE__, __LINE__, &(e), \ | ||
51 | pmd_val(e)) | ||
52 | #define pgd_ERROR(e) \ | ||
53 | printk("%s:%d: bad pgd %p(%016lx).\n", __FILE__, __LINE__, &(e), \ | ||
54 | pgd_val(e)) | ||
55 | |||
56 | #define pud_none(x) (!(pud_val(x) & ~_PAGE_NEWPAGE)) | ||
57 | #define pud_bad(x) ((pud_val(x) & (~PAGE_MASK & ~_PAGE_USER)) != _KERNPG_TABLE) | ||
58 | #define pud_present(x) (pud_val(x) & _PAGE_PRESENT) | ||
59 | #define pud_populate(mm, pud, pmd) \ | ||
60 | set_pud(pud, __pud(_PAGE_TABLE + __pa(pmd))) | ||
61 | |||
62 | #ifdef CONFIG_64BIT | ||
63 | #define set_pud(pudptr, pudval) set_64bit((phys_t *) (pudptr), pud_val(pudval)) | ||
64 | #else | ||
65 | #define set_pud(pudptr, pudval) (*(pudptr) = (pudval)) | ||
66 | #endif | ||
67 | |||
68 | static inline int pgd_newpage(pgd_t pgd) | ||
69 | { | ||
70 | return(pgd_val(pgd) & _PAGE_NEWPAGE); | ||
71 | } | ||
72 | |||
73 | static inline void pgd_mkuptodate(pgd_t pgd) { pgd_val(pgd) &= ~_PAGE_NEWPAGE; } | ||
74 | |||
75 | #ifdef CONFIG_64BIT | ||
76 | #define set_pmd(pmdptr, pmdval) set_64bit((phys_t *) (pmdptr), pmd_val(pmdval)) | ||
77 | #else | ||
78 | #define set_pmd(pmdptr, pmdval) (*(pmdptr) = (pmdval)) | ||
79 | #endif | ||
80 | |||
81 | struct mm_struct; | ||
82 | extern pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address); | ||
83 | |||
84 | static inline void pud_clear (pud_t *pud) | ||
85 | { | ||
86 | set_pud(pud, __pud(_PAGE_NEWPAGE)); | ||
87 | } | ||
88 | |||
89 | #define pud_page(pud) phys_to_page(pud_val(pud) & PAGE_MASK) | ||
90 | #define pud_page_vaddr(pud) ((unsigned long) __va(pud_val(pud) & PAGE_MASK)) | ||
91 | |||
92 | /* Find an entry in the second-level page table.. */ | ||
93 | #define pmd_offset(pud, address) ((pmd_t *) pud_page_vaddr(*(pud)) + \ | ||
94 | pmd_index(address)) | ||
95 | |||
96 | static inline unsigned long pte_pfn(pte_t pte) | ||
97 | { | ||
98 | return phys_to_pfn(pte_val(pte)); | ||
99 | } | ||
100 | |||
101 | static inline pte_t pfn_pte(pfn_t page_nr, pgprot_t pgprot) | ||
102 | { | ||
103 | pte_t pte; | ||
104 | phys_t phys = pfn_to_phys(page_nr); | ||
105 | |||
106 | pte_set_val(pte, phys, pgprot); | ||
107 | return pte; | ||
108 | } | ||
109 | |||
110 | static inline pmd_t pfn_pmd(pfn_t page_nr, pgprot_t pgprot) | ||
111 | { | ||
112 | return __pmd((page_nr << PAGE_SHIFT) | pgprot_val(pgprot)); | ||
113 | } | ||
114 | |||
115 | /* | ||
116 | * Bits 0 through 3 are taken in the low part of the pte, | ||
117 | * put the 32 bits of offset into the high part. | ||
118 | */ | ||
119 | #define PTE_FILE_MAX_BITS 32 | ||
120 | |||
121 | #ifdef CONFIG_64BIT | ||
122 | |||
123 | #define pte_to_pgoff(p) ((p).pte >> 32) | ||
124 | |||
125 | #define pgoff_to_pte(off) ((pte_t) { ((off) << 32) | _PAGE_FILE }) | ||
126 | |||
127 | #else | ||
128 | |||
129 | #define pte_to_pgoff(pte) ((pte).pte_high) | ||
130 | |||
131 | #define pgoff_to_pte(off) ((pte_t) { _PAGE_FILE, (off) }) | ||
132 | |||
133 | #endif | ||
134 | |||
135 | #endif | ||
136 | |||
137 | /* | ||
138 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
139 | * Emacs will notice this stuff at the end of the file and automatically | ||
140 | * adjust the settings for this buffer only. This must remain at the end | ||
141 | * of the file. | ||
142 | * --------------------------------------------------------------------------- | ||
143 | * Local variables: | ||
144 | * c-file-style: "linux" | ||
145 | * End: | ||
146 | */ | ||
diff --git a/arch/um/include/asm/pgtable.h b/arch/um/include/asm/pgtable.h new file mode 100644 index 000000000000..58da2480a7f4 --- /dev/null +++ b/arch/um/include/asm/pgtable.h | |||
@@ -0,0 +1,366 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) | ||
3 | * Copyright 2003 PathScale, Inc. | ||
4 | * Derived from include/asm-i386/pgtable.h | ||
5 | * Licensed under the GPL | ||
6 | */ | ||
7 | |||
8 | #ifndef __UM_PGTABLE_H | ||
9 | #define __UM_PGTABLE_H | ||
10 | |||
11 | #include <asm/fixmap.h> | ||
12 | |||
13 | #define _PAGE_PRESENT 0x001 | ||
14 | #define _PAGE_NEWPAGE 0x002 | ||
15 | #define _PAGE_NEWPROT 0x004 | ||
16 | #define _PAGE_RW 0x020 | ||
17 | #define _PAGE_USER 0x040 | ||
18 | #define _PAGE_ACCESSED 0x080 | ||
19 | #define _PAGE_DIRTY 0x100 | ||
20 | /* If _PAGE_PRESENT is clear, we use these: */ | ||
21 | #define _PAGE_FILE 0x008 /* nonlinear file mapping, saved PTE; unset:swap */ | ||
22 | #define _PAGE_PROTNONE 0x010 /* if the user mapped it with PROT_NONE; | ||
23 | pte_present gives true */ | ||
24 | |||
25 | #ifdef CONFIG_3_LEVEL_PGTABLES | ||
26 | #include "asm/pgtable-3level.h" | ||
27 | #else | ||
28 | #include "asm/pgtable-2level.h" | ||
29 | #endif | ||
30 | |||
31 | extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; | ||
32 | |||
33 | /* zero page used for uninitialized stuff */ | ||
34 | extern unsigned long *empty_zero_page; | ||
35 | |||
36 | #define pgtable_cache_init() do ; while (0) | ||
37 | |||
38 | /* Just any arbitrary offset to the start of the vmalloc VM area: the | ||
39 | * current 8MB value just means that there will be a 8MB "hole" after the | ||
40 | * physical memory until the kernel virtual memory starts. That means that | ||
41 | * any out-of-bounds memory accesses will hopefully be caught. | ||
42 | * The vmalloc() routines leaves a hole of 4kB between each vmalloced | ||
43 | * area for the same reason. ;) | ||
44 | */ | ||
45 | |||
46 | extern unsigned long end_iomem; | ||
47 | |||
48 | #define VMALLOC_OFFSET (__va_space) | ||
49 | #define VMALLOC_START ((end_iomem + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1)) | ||
50 | #define PKMAP_BASE ((FIXADDR_START - LAST_PKMAP * PAGE_SIZE) & PMD_MASK) | ||
51 | #ifdef CONFIG_HIGHMEM | ||
52 | # define VMALLOC_END (PKMAP_BASE-2*PAGE_SIZE) | ||
53 | #else | ||
54 | # define VMALLOC_END (FIXADDR_START-2*PAGE_SIZE) | ||
55 | #endif | ||
56 | |||
57 | #define _PAGE_TABLE (_PAGE_PRESENT | _PAGE_RW | _PAGE_USER | _PAGE_ACCESSED | _PAGE_DIRTY) | ||
58 | #define _KERNPG_TABLE (_PAGE_PRESENT | _PAGE_RW | _PAGE_ACCESSED | _PAGE_DIRTY) | ||
59 | #define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY) | ||
60 | |||
61 | #define PAGE_NONE __pgprot(_PAGE_PROTNONE | _PAGE_ACCESSED) | ||
62 | #define PAGE_SHARED __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_USER | _PAGE_ACCESSED) | ||
63 | #define PAGE_COPY __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_ACCESSED) | ||
64 | #define PAGE_READONLY __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_ACCESSED) | ||
65 | #define PAGE_KERNEL __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED) | ||
66 | |||
67 | /* | ||
68 | * The i386 can't do page protection for execute, and considers that the same | ||
69 | * are read. | ||
70 | * Also, write permissions imply read permissions. This is the closest we can | ||
71 | * get.. | ||
72 | */ | ||
73 | #define __P000 PAGE_NONE | ||
74 | #define __P001 PAGE_READONLY | ||
75 | #define __P010 PAGE_COPY | ||
76 | #define __P011 PAGE_COPY | ||
77 | #define __P100 PAGE_READONLY | ||
78 | #define __P101 PAGE_READONLY | ||
79 | #define __P110 PAGE_COPY | ||
80 | #define __P111 PAGE_COPY | ||
81 | |||
82 | #define __S000 PAGE_NONE | ||
83 | #define __S001 PAGE_READONLY | ||
84 | #define __S010 PAGE_SHARED | ||
85 | #define __S011 PAGE_SHARED | ||
86 | #define __S100 PAGE_READONLY | ||
87 | #define __S101 PAGE_READONLY | ||
88 | #define __S110 PAGE_SHARED | ||
89 | #define __S111 PAGE_SHARED | ||
90 | |||
91 | /* | ||
92 | * ZERO_PAGE is a global shared page that is always zero: used | ||
93 | * for zero-mapped memory areas etc.. | ||
94 | */ | ||
95 | #define ZERO_PAGE(vaddr) virt_to_page(empty_zero_page) | ||
96 | |||
97 | #define pte_clear(mm,addr,xp) pte_set_val(*(xp), (phys_t) 0, __pgprot(_PAGE_NEWPAGE)) | ||
98 | |||
99 | #define pmd_none(x) (!((unsigned long)pmd_val(x) & ~_PAGE_NEWPAGE)) | ||
100 | #define pmd_bad(x) ((pmd_val(x) & (~PAGE_MASK & ~_PAGE_USER)) != _KERNPG_TABLE) | ||
101 | |||
102 | #define pmd_present(x) (pmd_val(x) & _PAGE_PRESENT) | ||
103 | #define pmd_clear(xp) do { pmd_val(*(xp)) = _PAGE_NEWPAGE; } while (0) | ||
104 | |||
105 | #define pmd_newpage(x) (pmd_val(x) & _PAGE_NEWPAGE) | ||
106 | #define pmd_mkuptodate(x) (pmd_val(x) &= ~_PAGE_NEWPAGE) | ||
107 | |||
108 | #define pud_newpage(x) (pud_val(x) & _PAGE_NEWPAGE) | ||
109 | #define pud_mkuptodate(x) (pud_val(x) &= ~_PAGE_NEWPAGE) | ||
110 | |||
111 | #define pmd_page(pmd) phys_to_page(pmd_val(pmd) & PAGE_MASK) | ||
112 | |||
113 | #define pte_page(x) pfn_to_page(pte_pfn(x)) | ||
114 | |||
115 | #define pte_present(x) pte_get_bits(x, (_PAGE_PRESENT | _PAGE_PROTNONE)) | ||
116 | |||
117 | /* | ||
118 | * ================================= | ||
119 | * Flags checking section. | ||
120 | * ================================= | ||
121 | */ | ||
122 | |||
123 | static inline int pte_none(pte_t pte) | ||
124 | { | ||
125 | return pte_is_zero(pte); | ||
126 | } | ||
127 | |||
128 | /* | ||
129 | * The following only work if pte_present() is true. | ||
130 | * Undefined behaviour if not.. | ||
131 | */ | ||
132 | static inline int pte_read(pte_t pte) | ||
133 | { | ||
134 | return((pte_get_bits(pte, _PAGE_USER)) && | ||
135 | !(pte_get_bits(pte, _PAGE_PROTNONE))); | ||
136 | } | ||
137 | |||
138 | static inline int pte_exec(pte_t pte){ | ||
139 | return((pte_get_bits(pte, _PAGE_USER)) && | ||
140 | !(pte_get_bits(pte, _PAGE_PROTNONE))); | ||
141 | } | ||
142 | |||
143 | static inline int pte_write(pte_t pte) | ||
144 | { | ||
145 | return((pte_get_bits(pte, _PAGE_RW)) && | ||
146 | !(pte_get_bits(pte, _PAGE_PROTNONE))); | ||
147 | } | ||
148 | |||
149 | /* | ||
150 | * The following only works if pte_present() is not true. | ||
151 | */ | ||
152 | static inline int pte_file(pte_t pte) | ||
153 | { | ||
154 | return pte_get_bits(pte, _PAGE_FILE); | ||
155 | } | ||
156 | |||
157 | static inline int pte_dirty(pte_t pte) | ||
158 | { | ||
159 | return pte_get_bits(pte, _PAGE_DIRTY); | ||
160 | } | ||
161 | |||
162 | static inline int pte_young(pte_t pte) | ||
163 | { | ||
164 | return pte_get_bits(pte, _PAGE_ACCESSED); | ||
165 | } | ||
166 | |||
167 | static inline int pte_newpage(pte_t pte) | ||
168 | { | ||
169 | return pte_get_bits(pte, _PAGE_NEWPAGE); | ||
170 | } | ||
171 | |||
172 | static inline int pte_newprot(pte_t pte) | ||
173 | { | ||
174 | return(pte_present(pte) && (pte_get_bits(pte, _PAGE_NEWPROT))); | ||
175 | } | ||
176 | |||
177 | static inline int pte_special(pte_t pte) | ||
178 | { | ||
179 | return 0; | ||
180 | } | ||
181 | |||
182 | /* | ||
183 | * ================================= | ||
184 | * Flags setting section. | ||
185 | * ================================= | ||
186 | */ | ||
187 | |||
188 | static inline pte_t pte_mknewprot(pte_t pte) | ||
189 | { | ||
190 | pte_set_bits(pte, _PAGE_NEWPROT); | ||
191 | return(pte); | ||
192 | } | ||
193 | |||
194 | static inline pte_t pte_mkclean(pte_t pte) | ||
195 | { | ||
196 | pte_clear_bits(pte, _PAGE_DIRTY); | ||
197 | return(pte); | ||
198 | } | ||
199 | |||
200 | static inline pte_t pte_mkold(pte_t pte) | ||
201 | { | ||
202 | pte_clear_bits(pte, _PAGE_ACCESSED); | ||
203 | return(pte); | ||
204 | } | ||
205 | |||
206 | static inline pte_t pte_wrprotect(pte_t pte) | ||
207 | { | ||
208 | pte_clear_bits(pte, _PAGE_RW); | ||
209 | return(pte_mknewprot(pte)); | ||
210 | } | ||
211 | |||
212 | static inline pte_t pte_mkread(pte_t pte) | ||
213 | { | ||
214 | pte_set_bits(pte, _PAGE_USER); | ||
215 | return(pte_mknewprot(pte)); | ||
216 | } | ||
217 | |||
218 | static inline pte_t pte_mkdirty(pte_t pte) | ||
219 | { | ||
220 | pte_set_bits(pte, _PAGE_DIRTY); | ||
221 | return(pte); | ||
222 | } | ||
223 | |||
224 | static inline pte_t pte_mkyoung(pte_t pte) | ||
225 | { | ||
226 | pte_set_bits(pte, _PAGE_ACCESSED); | ||
227 | return(pte); | ||
228 | } | ||
229 | |||
230 | static inline pte_t pte_mkwrite(pte_t pte) | ||
231 | { | ||
232 | pte_set_bits(pte, _PAGE_RW); | ||
233 | return(pte_mknewprot(pte)); | ||
234 | } | ||
235 | |||
236 | static inline pte_t pte_mkuptodate(pte_t pte) | ||
237 | { | ||
238 | pte_clear_bits(pte, _PAGE_NEWPAGE); | ||
239 | if(pte_present(pte)) | ||
240 | pte_clear_bits(pte, _PAGE_NEWPROT); | ||
241 | return(pte); | ||
242 | } | ||
243 | |||
244 | static inline pte_t pte_mknewpage(pte_t pte) | ||
245 | { | ||
246 | pte_set_bits(pte, _PAGE_NEWPAGE); | ||
247 | return(pte); | ||
248 | } | ||
249 | |||
250 | static inline pte_t pte_mkspecial(pte_t pte) | ||
251 | { | ||
252 | return(pte); | ||
253 | } | ||
254 | |||
255 | static inline void set_pte(pte_t *pteptr, pte_t pteval) | ||
256 | { | ||
257 | pte_copy(*pteptr, pteval); | ||
258 | |||
259 | /* If it's a swap entry, it needs to be marked _PAGE_NEWPAGE so | ||
260 | * fix_range knows to unmap it. _PAGE_NEWPROT is specific to | ||
261 | * mapped pages. | ||
262 | */ | ||
263 | |||
264 | *pteptr = pte_mknewpage(*pteptr); | ||
265 | if(pte_present(*pteptr)) *pteptr = pte_mknewprot(*pteptr); | ||
266 | } | ||
267 | #define set_pte_at(mm,addr,ptep,pteval) set_pte(ptep,pteval) | ||
268 | |||
269 | /* | ||
270 | * Conversion functions: convert a page and protection to a page entry, | ||
271 | * and a page entry and page directory to the page they refer to. | ||
272 | */ | ||
273 | |||
274 | #define phys_to_page(phys) pfn_to_page(phys_to_pfn(phys)) | ||
275 | #define __virt_to_page(virt) phys_to_page(__pa(virt)) | ||
276 | #define page_to_phys(page) pfn_to_phys((pfn_t) page_to_pfn(page)) | ||
277 | #define virt_to_page(addr) __virt_to_page((const unsigned long) addr) | ||
278 | |||
279 | #define mk_pte(page, pgprot) \ | ||
280 | ({ pte_t pte; \ | ||
281 | \ | ||
282 | pte_set_val(pte, page_to_phys(page), (pgprot)); \ | ||
283 | if (pte_present(pte)) \ | ||
284 | pte_mknewprot(pte_mknewpage(pte)); \ | ||
285 | pte;}) | ||
286 | |||
287 | static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) | ||
288 | { | ||
289 | pte_set_val(pte, (pte_val(pte) & _PAGE_CHG_MASK), newprot); | ||
290 | return pte; | ||
291 | } | ||
292 | |||
293 | /* | ||
294 | * the pgd page can be thought of an array like this: pgd_t[PTRS_PER_PGD] | ||
295 | * | ||
296 | * this macro returns the index of the entry in the pgd page which would | ||
297 | * control the given virtual address | ||
298 | */ | ||
299 | #define pgd_index(address) (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD-1)) | ||
300 | |||
301 | /* | ||
302 | * pgd_offset() returns a (pgd_t *) | ||
303 | * pgd_index() is used get the offset into the pgd page's array of pgd_t's; | ||
304 | */ | ||
305 | #define pgd_offset(mm, address) ((mm)->pgd+pgd_index(address)) | ||
306 | |||
307 | /* | ||
308 | * a shortcut which implies the use of the kernel's pgd, instead | ||
309 | * of a process's | ||
310 | */ | ||
311 | #define pgd_offset_k(address) pgd_offset(&init_mm, address) | ||
312 | |||
313 | /* | ||
314 | * the pmd page can be thought of an array like this: pmd_t[PTRS_PER_PMD] | ||
315 | * | ||
316 | * this macro returns the index of the entry in the pmd page which would | ||
317 | * control the given virtual address | ||
318 | */ | ||
319 | #define pmd_page_vaddr(pmd) ((unsigned long) __va(pmd_val(pmd) & PAGE_MASK)) | ||
320 | #define pmd_index(address) (((address) >> PMD_SHIFT) & (PTRS_PER_PMD-1)) | ||
321 | |||
322 | #define pmd_page_vaddr(pmd) \ | ||
323 | ((unsigned long) __va(pmd_val(pmd) & PAGE_MASK)) | ||
324 | |||
325 | /* | ||
326 | * the pte page can be thought of an array like this: pte_t[PTRS_PER_PTE] | ||
327 | * | ||
328 | * this macro returns the index of the entry in the pte page which would | ||
329 | * control the given virtual address | ||
330 | */ | ||
331 | #define pte_index(address) (((address) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1)) | ||
332 | #define pte_offset_kernel(dir, address) \ | ||
333 | ((pte_t *) pmd_page_vaddr(*(dir)) + pte_index(address)) | ||
334 | #define pte_offset_map(dir, address) \ | ||
335 | ((pte_t *)page_address(pmd_page(*(dir))) + pte_index(address)) | ||
336 | #define pte_offset_map_nested(dir, address) pte_offset_map(dir, address) | ||
337 | #define pte_unmap(pte) do { } while (0) | ||
338 | #define pte_unmap_nested(pte) do { } while (0) | ||
339 | |||
340 | struct mm_struct; | ||
341 | extern pte_t *virt_to_pte(struct mm_struct *mm, unsigned long addr); | ||
342 | |||
343 | #define update_mmu_cache(vma,address,pte) do ; while (0) | ||
344 | |||
345 | /* Encode and de-code a swap entry */ | ||
346 | #define __swp_type(x) (((x).val >> 4) & 0x3f) | ||
347 | #define __swp_offset(x) ((x).val >> 11) | ||
348 | |||
349 | #define __swp_entry(type, offset) \ | ||
350 | ((swp_entry_t) { ((type) << 4) | ((offset) << 11) }) | ||
351 | #define __pte_to_swp_entry(pte) \ | ||
352 | ((swp_entry_t) { pte_val(pte_mkuptodate(pte)) }) | ||
353 | #define __swp_entry_to_pte(x) ((pte_t) { (x).val }) | ||
354 | |||
355 | #define kern_addr_valid(addr) (1) | ||
356 | |||
357 | #include <asm-generic/pgtable.h> | ||
358 | |||
359 | /* Clear a kernel PTE and flush it from the TLB */ | ||
360 | #define kpte_clear_flush(ptep, vaddr) \ | ||
361 | do { \ | ||
362 | pte_clear(&init_mm, (vaddr), (ptep)); \ | ||
363 | __flush_tlb_one((vaddr)); \ | ||
364 | } while (0) | ||
365 | |||
366 | #endif | ||
diff --git a/arch/um/include/asm/processor-generic.h b/arch/um/include/asm/processor-generic.h new file mode 100644 index 000000000000..bed668824b5f --- /dev/null +++ b/arch/um/include/asm/processor-generic.h | |||
@@ -0,0 +1,136 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) | ||
3 | * Licensed under the GPL | ||
4 | */ | ||
5 | |||
6 | #ifndef __UM_PROCESSOR_GENERIC_H | ||
7 | #define __UM_PROCESSOR_GENERIC_H | ||
8 | |||
9 | struct pt_regs; | ||
10 | |||
11 | struct task_struct; | ||
12 | |||
13 | #include "asm/ptrace.h" | ||
14 | #include "registers.h" | ||
15 | #include "sysdep/archsetjmp.h" | ||
16 | |||
17 | struct mm_struct; | ||
18 | |||
19 | struct thread_struct { | ||
20 | struct task_struct *saved_task; | ||
21 | /* | ||
22 | * This flag is set to 1 before calling do_fork (and analyzed in | ||
23 | * copy_thread) to mark that we are begin called from userspace (fork / | ||
24 | * vfork / clone), and reset to 0 after. It is left to 0 when called | ||
25 | * from kernelspace (i.e. kernel_thread() or fork_idle(), | ||
26 | * as of 2.6.11). | ||
27 | */ | ||
28 | int forking; | ||
29 | struct pt_regs regs; | ||
30 | int singlestep_syscall; | ||
31 | void *fault_addr; | ||
32 | jmp_buf *fault_catcher; | ||
33 | struct task_struct *prev_sched; | ||
34 | unsigned long temp_stack; | ||
35 | jmp_buf *exec_buf; | ||
36 | struct arch_thread arch; | ||
37 | jmp_buf switch_buf; | ||
38 | int mm_count; | ||
39 | struct { | ||
40 | int op; | ||
41 | union { | ||
42 | struct { | ||
43 | int pid; | ||
44 | } fork, exec; | ||
45 | struct { | ||
46 | int (*proc)(void *); | ||
47 | void *arg; | ||
48 | } thread; | ||
49 | struct { | ||
50 | void (*proc)(void *); | ||
51 | void *arg; | ||
52 | } cb; | ||
53 | } u; | ||
54 | } request; | ||
55 | }; | ||
56 | |||
57 | #define INIT_THREAD \ | ||
58 | { \ | ||
59 | .forking = 0, \ | ||
60 | .regs = EMPTY_REGS, \ | ||
61 | .fault_addr = NULL, \ | ||
62 | .prev_sched = NULL, \ | ||
63 | .temp_stack = 0, \ | ||
64 | .exec_buf = NULL, \ | ||
65 | .arch = INIT_ARCH_THREAD, \ | ||
66 | .request = { 0 } \ | ||
67 | } | ||
68 | |||
69 | extern struct task_struct *alloc_task_struct(void); | ||
70 | |||
71 | static inline void release_thread(struct task_struct *task) | ||
72 | { | ||
73 | } | ||
74 | |||
75 | extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); | ||
76 | |||
77 | static inline void prepare_to_copy(struct task_struct *tsk) | ||
78 | { | ||
79 | } | ||
80 | |||
81 | |||
82 | extern unsigned long thread_saved_pc(struct task_struct *t); | ||
83 | |||
84 | static inline void mm_copy_segments(struct mm_struct *from_mm, | ||
85 | struct mm_struct *new_mm) | ||
86 | { | ||
87 | } | ||
88 | |||
89 | #define init_stack (init_thread_union.stack) | ||
90 | |||
91 | /* | ||
92 | * User space process size: 3GB (default). | ||
93 | */ | ||
94 | extern unsigned long task_size; | ||
95 | |||
96 | #define TASK_SIZE (task_size) | ||
97 | |||
98 | #undef STACK_TOP | ||
99 | #undef STACK_TOP_MAX | ||
100 | |||
101 | extern unsigned long stacksizelim; | ||
102 | |||
103 | #define STACK_ROOM (stacksizelim) | ||
104 | #define STACK_TOP (TASK_SIZE - 2 * PAGE_SIZE) | ||
105 | #define STACK_TOP_MAX STACK_TOP | ||
106 | |||
107 | /* This decides where the kernel will search for a free chunk of vm | ||
108 | * space during mmap's. | ||
109 | */ | ||
110 | #define TASK_UNMAPPED_BASE (0x40000000) | ||
111 | |||
112 | extern void start_thread(struct pt_regs *regs, unsigned long entry, | ||
113 | unsigned long stack); | ||
114 | |||
115 | struct cpuinfo_um { | ||
116 | unsigned long loops_per_jiffy; | ||
117 | int ipi_pipe[2]; | ||
118 | }; | ||
119 | |||
120 | extern struct cpuinfo_um boot_cpu_data; | ||
121 | |||
122 | #define my_cpu_data cpu_data[smp_processor_id()] | ||
123 | |||
124 | #ifdef CONFIG_SMP | ||
125 | extern struct cpuinfo_um cpu_data[]; | ||
126 | #define current_cpu_data cpu_data[smp_processor_id()] | ||
127 | #else | ||
128 | #define cpu_data (&boot_cpu_data) | ||
129 | #define current_cpu_data boot_cpu_data | ||
130 | #endif | ||
131 | |||
132 | |||
133 | #define KSTK_REG(tsk, reg) get_thread_reg(reg, &tsk->thread.switch_buf) | ||
134 | extern unsigned long get_wchan(struct task_struct *p); | ||
135 | |||
136 | #endif | ||
diff --git a/arch/um/include/asm/ptrace-generic.h b/arch/um/include/asm/ptrace-generic.h new file mode 100644 index 000000000000..6c8899013c92 --- /dev/null +++ b/arch/um/include/asm/ptrace-generic.h | |||
@@ -0,0 +1,55 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) | ||
3 | * Licensed under the GPL | ||
4 | */ | ||
5 | |||
6 | #ifndef __UM_PTRACE_GENERIC_H | ||
7 | #define __UM_PTRACE_GENERIC_H | ||
8 | |||
9 | #ifndef __ASSEMBLY__ | ||
10 | |||
11 | #include <asm/ptrace-abi.h> | ||
12 | #include <asm/user.h> | ||
13 | #include "sysdep/ptrace.h" | ||
14 | |||
15 | struct pt_regs { | ||
16 | struct uml_pt_regs regs; | ||
17 | }; | ||
18 | |||
19 | #define EMPTY_REGS { .regs = EMPTY_UML_PT_REGS } | ||
20 | |||
21 | #define PT_REGS_IP(r) UPT_IP(&(r)->regs) | ||
22 | #define PT_REGS_SP(r) UPT_SP(&(r)->regs) | ||
23 | |||
24 | #define PT_REG(r, reg) UPT_REG(&(r)->regs, reg) | ||
25 | #define PT_REGS_SET(r, reg, val) UPT_SET(&(r)->regs, reg, val) | ||
26 | |||
27 | #define PT_REGS_SET_SYSCALL_RETURN(r, res) \ | ||
28 | UPT_SET_SYSCALL_RETURN(&(r)->regs, res) | ||
29 | #define PT_REGS_RESTART_SYSCALL(r) UPT_RESTART_SYSCALL(&(r)->regs) | ||
30 | |||
31 | #define PT_REGS_SYSCALL_NR(r) UPT_SYSCALL_NR(&(r)->regs) | ||
32 | |||
33 | #define PT_REGS_SC(r) UPT_SC(&(r)->regs) | ||
34 | |||
35 | #define instruction_pointer(regs) PT_REGS_IP(regs) | ||
36 | |||
37 | struct task_struct; | ||
38 | |||
39 | extern long subarch_ptrace(struct task_struct *child, long request, long addr, | ||
40 | long data); | ||
41 | extern unsigned long getreg(struct task_struct *child, int regno); | ||
42 | extern int putreg(struct task_struct *child, int regno, unsigned long value); | ||
43 | extern int get_fpregs(struct user_i387_struct __user *buf, | ||
44 | struct task_struct *child); | ||
45 | extern int set_fpregs(struct user_i387_struct __user *buf, | ||
46 | struct task_struct *child); | ||
47 | |||
48 | extern void show_regs(struct pt_regs *regs); | ||
49 | |||
50 | extern int arch_copy_tls(struct task_struct *new); | ||
51 | extern void clear_flushed_tls(struct task_struct *task); | ||
52 | |||
53 | #endif | ||
54 | |||
55 | #endif | ||
diff --git a/arch/um/include/asm/required-features.h b/arch/um/include/asm/required-features.h new file mode 100644 index 000000000000..dfb967b2d2f3 --- /dev/null +++ b/arch/um/include/asm/required-features.h | |||
@@ -0,0 +1,9 @@ | |||
1 | #ifndef __UM_REQUIRED_FEATURES_H | ||
2 | #define __UM_REQUIRED_FEATURES_H | ||
3 | |||
4 | /* | ||
5 | * Nothing to see, just need something for the i386 and x86_64 asm | ||
6 | * headers to include. | ||
7 | */ | ||
8 | |||
9 | #endif | ||
diff --git a/arch/um/include/asm/sections.h b/arch/um/include/asm/sections.h new file mode 100644 index 000000000000..6b0231eefea8 --- /dev/null +++ b/arch/um/include/asm/sections.h | |||
@@ -0,0 +1,7 @@ | |||
1 | #ifndef _UM_SECTIONS_H | ||
2 | #define _UM_SECTIONS_H | ||
3 | |||
4 | /* nothing to see, move along */ | ||
5 | #include <asm-generic/sections.h> | ||
6 | |||
7 | #endif | ||
diff --git a/arch/um/include/asm/segment.h b/arch/um/include/asm/segment.h new file mode 100644 index 000000000000..45183fcd10b6 --- /dev/null +++ b/arch/um/include/asm/segment.h | |||
@@ -0,0 +1,10 @@ | |||
1 | #ifndef __UM_SEGMENT_H | ||
2 | #define __UM_SEGMENT_H | ||
3 | |||
4 | extern int host_gdt_entry_tls_min; | ||
5 | |||
6 | #define GDT_ENTRY_TLS_ENTRIES 3 | ||
7 | #define GDT_ENTRY_TLS_MIN host_gdt_entry_tls_min | ||
8 | #define GDT_ENTRY_TLS_MAX (GDT_ENTRY_TLS_MIN + GDT_ENTRY_TLS_ENTRIES - 1) | ||
9 | |||
10 | #endif | ||
diff --git a/arch/um/include/asm/setup.h b/arch/um/include/asm/setup.h new file mode 100644 index 000000000000..99f086301f4c --- /dev/null +++ b/arch/um/include/asm/setup.h | |||
@@ -0,0 +1,10 @@ | |||
1 | #ifndef SETUP_H_INCLUDED | ||
2 | #define SETUP_H_INCLUDED | ||
3 | |||
4 | /* POSIX mandated with _POSIX_ARG_MAX that we can rely on 4096 chars in the | ||
5 | * command line, so this choice is ok. | ||
6 | */ | ||
7 | |||
8 | #define COMMAND_LINE_SIZE 4096 | ||
9 | |||
10 | #endif /* SETUP_H_INCLUDED */ | ||
diff --git a/arch/um/include/asm/smp.h b/arch/um/include/asm/smp.h new file mode 100644 index 000000000000..f27a96313174 --- /dev/null +++ b/arch/um/include/asm/smp.h | |||
@@ -0,0 +1,33 @@ | |||
1 | #ifndef __UM_SMP_H | ||
2 | #define __UM_SMP_H | ||
3 | |||
4 | #ifdef CONFIG_SMP | ||
5 | |||
6 | #include "linux/bitops.h" | ||
7 | #include "asm/current.h" | ||
8 | #include "linux/cpumask.h" | ||
9 | |||
10 | #define raw_smp_processor_id() (current_thread->cpu) | ||
11 | |||
12 | #define cpu_logical_map(n) (n) | ||
13 | #define cpu_number_map(n) (n) | ||
14 | #define PROC_CHANGE_PENALTY 15 /* Pick a number, any number */ | ||
15 | extern int hard_smp_processor_id(void); | ||
16 | #define NO_PROC_ID -1 | ||
17 | |||
18 | extern int ncpus; | ||
19 | |||
20 | |||
21 | static inline void smp_cpus_done(unsigned int maxcpus) | ||
22 | { | ||
23 | } | ||
24 | |||
25 | extern struct task_struct *idle_threads[NR_CPUS]; | ||
26 | |||
27 | #else | ||
28 | |||
29 | #define hard_smp_processor_id() 0 | ||
30 | |||
31 | #endif | ||
32 | |||
33 | #endif | ||
diff --git a/arch/um/include/asm/suspend.h b/arch/um/include/asm/suspend.h new file mode 100644 index 000000000000..f4e8e007f468 --- /dev/null +++ b/arch/um/include/asm/suspend.h | |||
@@ -0,0 +1,4 @@ | |||
1 | #ifndef __UM_SUSPEND_H | ||
2 | #define __UM_SUSPEND_H | ||
3 | |||
4 | #endif | ||
diff --git a/arch/um/include/asm/system.h b/arch/um/include/asm/system.h new file mode 100644 index 000000000000..753346e2cdfd --- /dev/null +++ b/arch/um/include/asm/system.h | |||
@@ -0,0 +1,35 @@ | |||
1 | #ifndef __UM_SYSTEM_GENERIC_H | ||
2 | #define __UM_SYSTEM_GENERIC_H | ||
3 | |||
4 | #include "sysdep/system.h" | ||
5 | |||
6 | extern void *switch_to(void *prev, void *next, void *last); | ||
7 | |||
8 | extern int get_signals(void); | ||
9 | extern int set_signals(int enable); | ||
10 | extern int get_signals(void); | ||
11 | extern void block_signals(void); | ||
12 | extern void unblock_signals(void); | ||
13 | |||
14 | #define local_save_flags(flags) do { typecheck(unsigned long, flags); \ | ||
15 | (flags) = get_signals(); } while(0) | ||
16 | #define local_irq_restore(flags) do { typecheck(unsigned long, flags); \ | ||
17 | set_signals(flags); } while(0) | ||
18 | |||
19 | #define local_irq_save(flags) do { local_save_flags(flags); \ | ||
20 | local_irq_disable(); } while(0) | ||
21 | |||
22 | #define local_irq_enable() unblock_signals() | ||
23 | #define local_irq_disable() block_signals() | ||
24 | |||
25 | #define irqs_disabled() \ | ||
26 | ({ \ | ||
27 | unsigned long flags; \ | ||
28 | local_save_flags(flags); \ | ||
29 | (flags == 0); \ | ||
30 | }) | ||
31 | |||
32 | extern void *_switch_to(void *prev, void *next, void *last); | ||
33 | #define switch_to(prev, next, last) prev = _switch_to(prev, next, last) | ||
34 | |||
35 | #endif | ||
diff --git a/arch/um/include/asm/thread_info.h b/arch/um/include/asm/thread_info.h new file mode 100644 index 000000000000..62274ab9471f --- /dev/null +++ b/arch/um/include/asm/thread_info.h | |||
@@ -0,0 +1,83 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) | ||
3 | * Licensed under the GPL | ||
4 | */ | ||
5 | |||
6 | #ifndef __UM_THREAD_INFO_H | ||
7 | #define __UM_THREAD_INFO_H | ||
8 | |||
9 | #ifndef __ASSEMBLY__ | ||
10 | |||
11 | #include <asm/types.h> | ||
12 | #include <asm/page.h> | ||
13 | #include <asm/uaccess.h> | ||
14 | |||
15 | struct thread_info { | ||
16 | struct task_struct *task; /* main task structure */ | ||
17 | struct exec_domain *exec_domain; /* execution domain */ | ||
18 | unsigned long flags; /* low level flags */ | ||
19 | __u32 cpu; /* current CPU */ | ||
20 | int preempt_count; /* 0 => preemptable, | ||
21 | <0 => BUG */ | ||
22 | mm_segment_t addr_limit; /* thread address space: | ||
23 | 0-0xBFFFFFFF for user | ||
24 | 0-0xFFFFFFFF for kernel */ | ||
25 | struct restart_block restart_block; | ||
26 | struct thread_info *real_thread; /* Points to non-IRQ stack */ | ||
27 | }; | ||
28 | |||
29 | #define INIT_THREAD_INFO(tsk) \ | ||
30 | { \ | ||
31 | .task = &tsk, \ | ||
32 | .exec_domain = &default_exec_domain, \ | ||
33 | .flags = 0, \ | ||
34 | .cpu = 0, \ | ||
35 | .preempt_count = 1, \ | ||
36 | .addr_limit = KERNEL_DS, \ | ||
37 | .restart_block = { \ | ||
38 | .fn = do_no_restart_syscall, \ | ||
39 | }, \ | ||
40 | .real_thread = NULL, \ | ||
41 | } | ||
42 | |||
43 | #define init_thread_info (init_thread_union.thread_info) | ||
44 | #define init_stack (init_thread_union.stack) | ||
45 | |||
46 | #define THREAD_SIZE ((1 << CONFIG_KERNEL_STACK_ORDER) * PAGE_SIZE) | ||
47 | /* how to get the thread information struct from C */ | ||
48 | static inline struct thread_info *current_thread_info(void) | ||
49 | { | ||
50 | struct thread_info *ti; | ||
51 | unsigned long mask = THREAD_SIZE - 1; | ||
52 | ti = (struct thread_info *) (((unsigned long) &ti) & ~mask); | ||
53 | return ti; | ||
54 | } | ||
55 | |||
56 | #define THREAD_SIZE_ORDER CONFIG_KERNEL_STACK_ORDER | ||
57 | |||
58 | #endif | ||
59 | |||
60 | #define PREEMPT_ACTIVE 0x10000000 | ||
61 | |||
62 | #define TIF_SYSCALL_TRACE 0 /* syscall trace active */ | ||
63 | #define TIF_SIGPENDING 1 /* signal pending */ | ||
64 | #define TIF_NEED_RESCHED 2 /* rescheduling necessary */ | ||
65 | #define TIF_POLLING_NRFLAG 3 /* true if poll_idle() is polling | ||
66 | * TIF_NEED_RESCHED | ||
67 | */ | ||
68 | #define TIF_RESTART_BLOCK 4 | ||
69 | #define TIF_MEMDIE 5 | ||
70 | #define TIF_SYSCALL_AUDIT 6 | ||
71 | #define TIF_RESTORE_SIGMASK 7 | ||
72 | #define TIF_FREEZE 16 /* is freezing for suspend */ | ||
73 | |||
74 | #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE) | ||
75 | #define _TIF_SIGPENDING (1 << TIF_SIGPENDING) | ||
76 | #define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED) | ||
77 | #define _TIF_POLLING_NRFLAG (1 << TIF_POLLING_NRFLAG) | ||
78 | #define _TIF_MEMDIE (1 << TIF_MEMDIE) | ||
79 | #define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT) | ||
80 | #define _TIF_RESTORE_SIGMASK (1 << TIF_RESTORE_SIGMASK) | ||
81 | #define _TIF_FREEZE (1 << TIF_FREEZE) | ||
82 | |||
83 | #endif | ||
diff --git a/arch/um/include/asm/timex.h b/arch/um/include/asm/timex.h new file mode 100644 index 000000000000..0f4ada08f748 --- /dev/null +++ b/arch/um/include/asm/timex.h | |||
@@ -0,0 +1,13 @@ | |||
1 | #ifndef __UM_TIMEX_H | ||
2 | #define __UM_TIMEX_H | ||
3 | |||
4 | typedef unsigned long cycles_t; | ||
5 | |||
6 | static inline cycles_t get_cycles (void) | ||
7 | { | ||
8 | return 0; | ||
9 | } | ||
10 | |||
11 | #define CLOCK_TICK_RATE (HZ) | ||
12 | |||
13 | #endif | ||
diff --git a/arch/um/include/asm/tlb.h b/arch/um/include/asm/tlb.h new file mode 100644 index 000000000000..5240fa1c5e08 --- /dev/null +++ b/arch/um/include/asm/tlb.h | |||
@@ -0,0 +1,127 @@ | |||
1 | #ifndef __UM_TLB_H | ||
2 | #define __UM_TLB_H | ||
3 | |||
4 | #include <linux/pagemap.h> | ||
5 | #include <linux/swap.h> | ||
6 | #include <asm/percpu.h> | ||
7 | #include <asm/pgalloc.h> | ||
8 | #include <asm/tlbflush.h> | ||
9 | |||
10 | #define tlb_start_vma(tlb, vma) do { } while (0) | ||
11 | #define tlb_end_vma(tlb, vma) do { } while (0) | ||
12 | #define tlb_flush(tlb) flush_tlb_mm((tlb)->mm) | ||
13 | |||
14 | /* struct mmu_gather is an opaque type used by the mm code for passing around | ||
15 | * any data needed by arch specific code for tlb_remove_page. | ||
16 | */ | ||
17 | struct mmu_gather { | ||
18 | struct mm_struct *mm; | ||
19 | unsigned int need_flush; /* Really unmapped some ptes? */ | ||
20 | unsigned long start; | ||
21 | unsigned long end; | ||
22 | unsigned int fullmm; /* non-zero means full mm flush */ | ||
23 | }; | ||
24 | |||
25 | /* Users of the generic TLB shootdown code must declare this storage space. */ | ||
26 | DECLARE_PER_CPU(struct mmu_gather, mmu_gathers); | ||
27 | |||
28 | static inline void __tlb_remove_tlb_entry(struct mmu_gather *tlb, pte_t *ptep, | ||
29 | unsigned long address) | ||
30 | { | ||
31 | if (tlb->start > address) | ||
32 | tlb->start = address; | ||
33 | if (tlb->end < address + PAGE_SIZE) | ||
34 | tlb->end = address + PAGE_SIZE; | ||
35 | } | ||
36 | |||
37 | static inline void init_tlb_gather(struct mmu_gather *tlb) | ||
38 | { | ||
39 | tlb->need_flush = 0; | ||
40 | |||
41 | tlb->start = TASK_SIZE; | ||
42 | tlb->end = 0; | ||
43 | |||
44 | if (tlb->fullmm) { | ||
45 | tlb->start = 0; | ||
46 | tlb->end = TASK_SIZE; | ||
47 | } | ||
48 | } | ||
49 | |||
50 | /* tlb_gather_mmu | ||
51 | * Return a pointer to an initialized struct mmu_gather. | ||
52 | */ | ||
53 | static inline struct mmu_gather * | ||
54 | tlb_gather_mmu(struct mm_struct *mm, unsigned int full_mm_flush) | ||
55 | { | ||
56 | struct mmu_gather *tlb = &get_cpu_var(mmu_gathers); | ||
57 | |||
58 | tlb->mm = mm; | ||
59 | tlb->fullmm = full_mm_flush; | ||
60 | |||
61 | init_tlb_gather(tlb); | ||
62 | |||
63 | return tlb; | ||
64 | } | ||
65 | |||
66 | extern void flush_tlb_mm_range(struct mm_struct *mm, unsigned long start, | ||
67 | unsigned long end); | ||
68 | |||
69 | static inline void | ||
70 | tlb_flush_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end) | ||
71 | { | ||
72 | if (!tlb->need_flush) | ||
73 | return; | ||
74 | |||
75 | flush_tlb_mm_range(tlb->mm, tlb->start, tlb->end); | ||
76 | init_tlb_gather(tlb); | ||
77 | } | ||
78 | |||
79 | /* tlb_finish_mmu | ||
80 | * Called at the end of the shootdown operation to free up any resources | ||
81 | * that were required. | ||
82 | */ | ||
83 | static inline void | ||
84 | tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end) | ||
85 | { | ||
86 | tlb_flush_mmu(tlb, start, end); | ||
87 | |||
88 | /* keep the page table cache within bounds */ | ||
89 | check_pgt_cache(); | ||
90 | |||
91 | put_cpu_var(mmu_gathers); | ||
92 | } | ||
93 | |||
94 | /* tlb_remove_page | ||
95 | * Must perform the equivalent to __free_pte(pte_get_and_clear(ptep)), | ||
96 | * while handling the additional races in SMP caused by other CPUs | ||
97 | * caching valid mappings in their TLBs. | ||
98 | */ | ||
99 | static inline void tlb_remove_page(struct mmu_gather *tlb, struct page *page) | ||
100 | { | ||
101 | tlb->need_flush = 1; | ||
102 | free_page_and_swap_cache(page); | ||
103 | return; | ||
104 | } | ||
105 | |||
106 | /** | ||
107 | * tlb_remove_tlb_entry - remember a pte unmapping for later tlb invalidation. | ||
108 | * | ||
109 | * Record the fact that pte's were really umapped in ->need_flush, so we can | ||
110 | * later optimise away the tlb invalidate. This helps when userspace is | ||
111 | * unmapping already-unmapped pages, which happens quite a lot. | ||
112 | */ | ||
113 | #define tlb_remove_tlb_entry(tlb, ptep, address) \ | ||
114 | do { \ | ||
115 | tlb->need_flush = 1; \ | ||
116 | __tlb_remove_tlb_entry(tlb, ptep, address); \ | ||
117 | } while (0) | ||
118 | |||
119 | #define pte_free_tlb(tlb, ptep) __pte_free_tlb(tlb, ptep) | ||
120 | |||
121 | #define pud_free_tlb(tlb, pudp) __pud_free_tlb(tlb, pudp) | ||
122 | |||
123 | #define pmd_free_tlb(tlb, pmdp) __pmd_free_tlb(tlb, pmdp) | ||
124 | |||
125 | #define tlb_migrate_finish(mm) do {} while (0) | ||
126 | |||
127 | #endif | ||
diff --git a/arch/um/include/asm/tlbflush.h b/arch/um/include/asm/tlbflush.h new file mode 100644 index 000000000000..614f2c091178 --- /dev/null +++ b/arch/um/include/asm/tlbflush.h | |||
@@ -0,0 +1,31 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) | ||
3 | * Licensed under the GPL | ||
4 | */ | ||
5 | |||
6 | #ifndef __UM_TLBFLUSH_H | ||
7 | #define __UM_TLBFLUSH_H | ||
8 | |||
9 | #include <linux/mm.h> | ||
10 | |||
11 | /* | ||
12 | * TLB flushing: | ||
13 | * | ||
14 | * - flush_tlb() flushes the current mm struct TLBs | ||
15 | * - flush_tlb_all() flushes all processes TLBs | ||
16 | * - flush_tlb_mm(mm) flushes the specified mm context TLB's | ||
17 | * - flush_tlb_page(vma, vmaddr) flushes one page | ||
18 | * - flush_tlb_kernel_vm() flushes the kernel vm area | ||
19 | * - flush_tlb_range(vma, start, end) flushes a range of pages | ||
20 | */ | ||
21 | |||
22 | extern void flush_tlb_all(void); | ||
23 | extern void flush_tlb_mm(struct mm_struct *mm); | ||
24 | extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, | ||
25 | unsigned long end); | ||
26 | extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long address); | ||
27 | extern void flush_tlb_kernel_vm(void); | ||
28 | extern void flush_tlb_kernel_range(unsigned long start, unsigned long end); | ||
29 | extern void __flush_tlb_one(unsigned long addr); | ||
30 | |||
31 | #endif | ||
diff --git a/arch/um/include/asm/topology.h b/arch/um/include/asm/topology.h new file mode 100644 index 000000000000..0905e4f21d42 --- /dev/null +++ b/arch/um/include/asm/topology.h | |||
@@ -0,0 +1,6 @@ | |||
1 | #ifndef _ASM_UM_TOPOLOGY_H | ||
2 | #define _ASM_UM_TOPOLOGY_H | ||
3 | |||
4 | #include <asm-generic/topology.h> | ||
5 | |||
6 | #endif | ||
diff --git a/arch/um/include/asm/uaccess.h b/arch/um/include/asm/uaccess.h new file mode 100644 index 000000000000..b9a895d6fa1d --- /dev/null +++ b/arch/um/include/asm/uaccess.h | |||
@@ -0,0 +1,99 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2002 Jeff Dike (jdike@karaya.com) | ||
3 | * Licensed under the GPL | ||
4 | */ | ||
5 | |||
6 | #ifndef __UM_UACCESS_H | ||
7 | #define __UM_UACCESS_H | ||
8 | |||
9 | #include <asm/errno.h> | ||
10 | #include <asm/processor.h> | ||
11 | |||
12 | /* thread_info has a mm_segment_t in it, so put the definition up here */ | ||
13 | typedef struct { | ||
14 | unsigned long seg; | ||
15 | } mm_segment_t; | ||
16 | |||
17 | #include "linux/thread_info.h" | ||
18 | |||
19 | #define VERIFY_READ 0 | ||
20 | #define VERIFY_WRITE 1 | ||
21 | |||
22 | /* | ||
23 | * The fs value determines whether argument validity checking should be | ||
24 | * performed or not. If get_fs() == USER_DS, checking is performed, with | ||
25 | * get_fs() == KERNEL_DS, checking is bypassed. | ||
26 | * | ||
27 | * For historical reasons, these macros are grossly misnamed. | ||
28 | */ | ||
29 | |||
30 | #define MAKE_MM_SEG(s) ((mm_segment_t) { (s) }) | ||
31 | |||
32 | #define KERNEL_DS MAKE_MM_SEG(0xFFFFFFFF) | ||
33 | #define USER_DS MAKE_MM_SEG(TASK_SIZE) | ||
34 | |||
35 | #define get_ds() (KERNEL_DS) | ||
36 | #define get_fs() (current_thread_info()->addr_limit) | ||
37 | #define set_fs(x) (current_thread_info()->addr_limit = (x)) | ||
38 | |||
39 | #define segment_eq(a, b) ((a).seg == (b).seg) | ||
40 | |||
41 | #include "um_uaccess.h" | ||
42 | |||
43 | #define __copy_from_user(to, from, n) copy_from_user(to, from, n) | ||
44 | |||
45 | #define __copy_to_user(to, from, n) copy_to_user(to, from, n) | ||
46 | |||
47 | #define __copy_to_user_inatomic __copy_to_user | ||
48 | #define __copy_from_user_inatomic __copy_from_user | ||
49 | |||
50 | #define __get_user(x, ptr) \ | ||
51 | ({ \ | ||
52 | const __typeof__(*(ptr)) __user *__private_ptr = (ptr); \ | ||
53 | __typeof__(x) __private_val; \ | ||
54 | int __private_ret = -EFAULT; \ | ||
55 | (x) = (__typeof__(*(__private_ptr)))0; \ | ||
56 | if (__copy_from_user((__force void *)&__private_val, (__private_ptr),\ | ||
57 | sizeof(*(__private_ptr))) == 0) { \ | ||
58 | (x) = (__typeof__(*(__private_ptr))) __private_val; \ | ||
59 | __private_ret = 0; \ | ||
60 | } \ | ||
61 | __private_ret; \ | ||
62 | }) | ||
63 | |||
64 | #define get_user(x, ptr) \ | ||
65 | ({ \ | ||
66 | const __typeof__((*(ptr))) __user *private_ptr = (ptr); \ | ||
67 | (access_ok(VERIFY_READ, private_ptr, sizeof(*private_ptr)) ? \ | ||
68 | __get_user(x, private_ptr) : ((x) = (__typeof__(*ptr))0, -EFAULT)); \ | ||
69 | }) | ||
70 | |||
71 | #define __put_user(x, ptr) \ | ||
72 | ({ \ | ||
73 | __typeof__(*(ptr)) __user *__private_ptr = ptr; \ | ||
74 | __typeof__(*(__private_ptr)) __private_val; \ | ||
75 | int __private_ret = -EFAULT; \ | ||
76 | __private_val = (__typeof__(*(__private_ptr))) (x); \ | ||
77 | if (__copy_to_user((__private_ptr), &__private_val, \ | ||
78 | sizeof(*(__private_ptr))) == 0) { \ | ||
79 | __private_ret = 0; \ | ||
80 | } \ | ||
81 | __private_ret; \ | ||
82 | }) | ||
83 | |||
84 | #define put_user(x, ptr) \ | ||
85 | ({ \ | ||
86 | __typeof__(*(ptr)) __user *private_ptr = (ptr); \ | ||
87 | (access_ok(VERIFY_WRITE, private_ptr, sizeof(*private_ptr)) ? \ | ||
88 | __put_user(x, private_ptr) : -EFAULT); \ | ||
89 | }) | ||
90 | |||
91 | #define strlen_user(str) strnlen_user(str, ~0U >> 1) | ||
92 | |||
93 | struct exception_table_entry | ||
94 | { | ||
95 | unsigned long insn; | ||
96 | unsigned long fixup; | ||
97 | }; | ||
98 | |||
99 | #endif | ||
diff --git a/arch/um/include/asm/xor.h b/arch/um/include/asm/xor.h new file mode 100644 index 000000000000..a19db3e17241 --- /dev/null +++ b/arch/um/include/asm/xor.h | |||
@@ -0,0 +1,6 @@ | |||
1 | #ifndef __UM_XOR_H | ||
2 | #define __UM_XOR_H | ||
3 | |||
4 | #include "asm-generic/xor.h" | ||
5 | |||
6 | #endif | ||
diff --git a/arch/um/include/aio.h b/arch/um/include/shared/aio.h index 423bae9153f8..423bae9153f8 100644 --- a/arch/um/include/aio.h +++ b/arch/um/include/shared/aio.h | |||
diff --git a/arch/um/include/arch.h b/arch/um/include/shared/arch.h index 2de92a08a76b..2de92a08a76b 100644 --- a/arch/um/include/arch.h +++ b/arch/um/include/shared/arch.h | |||
diff --git a/arch/um/include/as-layout.h b/arch/um/include/shared/as-layout.h index 58e852dfb0ce..a92b678503cf 100644 --- a/arch/um/include/as-layout.h +++ b/arch/um/include/shared/as-layout.h | |||
@@ -6,7 +6,6 @@ | |||
6 | #ifndef __START_H__ | 6 | #ifndef __START_H__ |
7 | #define __START_H__ | 7 | #define __START_H__ |
8 | 8 | ||
9 | #include "uml-config.h" | ||
10 | #include "kern_constants.h" | 9 | #include "kern_constants.h" |
11 | 10 | ||
12 | /* | 11 | /* |
diff --git a/arch/um/include/chan_kern.h b/arch/um/include/shared/chan_kern.h index 1e651457e049..1e651457e049 100644 --- a/arch/um/include/chan_kern.h +++ b/arch/um/include/shared/chan_kern.h | |||
diff --git a/arch/um/include/chan_user.h b/arch/um/include/shared/chan_user.h index 9b9ced85b703..9b9ced85b703 100644 --- a/arch/um/include/chan_user.h +++ b/arch/um/include/shared/chan_user.h | |||
diff --git a/arch/um/include/common-offsets.h b/arch/um/include/shared/common-offsets.h index b54bd35585c2..72009c7e3210 100644 --- a/arch/um/include/common-offsets.h +++ b/arch/um/include/shared/common-offsets.h | |||
@@ -39,3 +39,16 @@ DEFINE(UM_HZ, HZ); | |||
39 | DEFINE(UM_USEC_PER_SEC, USEC_PER_SEC); | 39 | DEFINE(UM_USEC_PER_SEC, USEC_PER_SEC); |
40 | DEFINE(UM_NSEC_PER_SEC, NSEC_PER_SEC); | 40 | DEFINE(UM_NSEC_PER_SEC, NSEC_PER_SEC); |
41 | DEFINE(UM_NSEC_PER_USEC, NSEC_PER_USEC); | 41 | DEFINE(UM_NSEC_PER_USEC, NSEC_PER_USEC); |
42 | |||
43 | #ifdef CONFIG_PRINTK | ||
44 | DEFINE(UML_CONFIG_PRINTK, CONFIG_PRINTK); | ||
45 | #endif | ||
46 | #ifdef CONFIG_NO_HZ | ||
47 | DEFINE(UML_CONFIG_NO_HZ, CONFIG_NO_HZ); | ||
48 | #endif | ||
49 | #ifdef CONFIG_UML_X86 | ||
50 | DEFINE(UML_CONFIG_UML_X86, CONFIG_UML_X86); | ||
51 | #endif | ||
52 | #ifdef CONFIG_64BIT | ||
53 | DEFINE(UML_CONFIG_64BIT, CONFIG_64BIT); | ||
54 | #endif | ||
diff --git a/arch/um/include/elf_user.h b/arch/um/include/shared/elf_user.h index 53516b637272..53516b637272 100644 --- a/arch/um/include/elf_user.h +++ b/arch/um/include/shared/elf_user.h | |||
diff --git a/arch/um/include/frame_kern.h b/arch/um/include/shared/frame_kern.h index ce9514f57211..ce9514f57211 100644 --- a/arch/um/include/frame_kern.h +++ b/arch/um/include/shared/frame_kern.h | |||
diff --git a/arch/um/include/init.h b/arch/um/include/shared/init.h index 37dd097c16c0..37dd097c16c0 100644 --- a/arch/um/include/init.h +++ b/arch/um/include/shared/init.h | |||
diff --git a/arch/um/include/initrd.h b/arch/um/include/shared/initrd.h index 439b9a814985..439b9a814985 100644 --- a/arch/um/include/initrd.h +++ b/arch/um/include/shared/initrd.h | |||
diff --git a/arch/um/include/irq_kern.h b/arch/um/include/shared/irq_kern.h index fba3895274f9..fba3895274f9 100644 --- a/arch/um/include/irq_kern.h +++ b/arch/um/include/shared/irq_kern.h | |||
diff --git a/arch/um/include/irq_user.h b/arch/um/include/shared/irq_user.h index c6c784df2673..c6c784df2673 100644 --- a/arch/um/include/irq_user.h +++ b/arch/um/include/shared/irq_user.h | |||
diff --git a/arch/um/include/kern.h b/arch/um/include/shared/kern.h index 4ce3fc650e57..4ce3fc650e57 100644 --- a/arch/um/include/kern.h +++ b/arch/um/include/shared/kern.h | |||
diff --git a/arch/um/include/kern_util.h b/arch/um/include/shared/kern_util.h index 3c341222d252..3c341222d252 100644 --- a/arch/um/include/kern_util.h +++ b/arch/um/include/shared/kern_util.h | |||
diff --git a/arch/um/include/shared/ldt.h b/arch/um/include/shared/ldt.h new file mode 100644 index 000000000000..a7f999a58774 --- /dev/null +++ b/arch/um/include/shared/ldt.h | |||
@@ -0,0 +1,37 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2004 Fujitsu Siemens Computers GmbH | ||
3 | * Licensed under the GPL | ||
4 | * | ||
5 | * Author: Bodo Stroesser <bstroesser@fujitsu-siemens.com> | ||
6 | */ | ||
7 | |||
8 | #ifndef __ASM_LDT_H | ||
9 | #define __ASM_LDT_H | ||
10 | |||
11 | #include <linux/mutex.h> | ||
12 | #include <sysdep/host_ldt.h> | ||
13 | |||
14 | extern void ldt_host_info(void); | ||
15 | |||
16 | #define LDT_PAGES_MAX \ | ||
17 | ((LDT_ENTRIES * LDT_ENTRY_SIZE)/PAGE_SIZE) | ||
18 | #define LDT_ENTRIES_PER_PAGE \ | ||
19 | (PAGE_SIZE/LDT_ENTRY_SIZE) | ||
20 | #define LDT_DIRECT_ENTRIES \ | ||
21 | ((LDT_PAGES_MAX*sizeof(void *))/LDT_ENTRY_SIZE) | ||
22 | |||
23 | struct ldt_entry { | ||
24 | __u32 a; | ||
25 | __u32 b; | ||
26 | }; | ||
27 | |||
28 | typedef struct uml_ldt { | ||
29 | int entry_count; | ||
30 | struct mutex lock; | ||
31 | union { | ||
32 | struct ldt_entry * pages[LDT_PAGES_MAX]; | ||
33 | struct ldt_entry entries[LDT_DIRECT_ENTRIES]; | ||
34 | } u; | ||
35 | } uml_ldt_t; | ||
36 | |||
37 | #endif | ||
diff --git a/arch/um/include/line.h b/arch/um/include/shared/line.h index 311a0d3d93af..311a0d3d93af 100644 --- a/arch/um/include/line.h +++ b/arch/um/include/shared/line.h | |||
diff --git a/arch/um/include/longjmp.h b/arch/um/include/shared/longjmp.h index e860bc5848e0..e860bc5848e0 100644 --- a/arch/um/include/longjmp.h +++ b/arch/um/include/shared/longjmp.h | |||
diff --git a/arch/um/include/mconsole.h b/arch/um/include/shared/mconsole.h index c139ae1d6826..c139ae1d6826 100644 --- a/arch/um/include/mconsole.h +++ b/arch/um/include/shared/mconsole.h | |||
diff --git a/arch/um/include/mconsole_kern.h b/arch/um/include/shared/mconsole_kern.h index d2fe07e78958..d2fe07e78958 100644 --- a/arch/um/include/mconsole_kern.h +++ b/arch/um/include/shared/mconsole_kern.h | |||
diff --git a/arch/um/include/mem.h b/arch/um/include/shared/mem.h index 5cd40e99e8d5..5cd40e99e8d5 100644 --- a/arch/um/include/mem.h +++ b/arch/um/include/shared/mem.h | |||
diff --git a/arch/um/include/mem_kern.h b/arch/um/include/shared/mem_kern.h index cb7e196d366b..cb7e196d366b 100644 --- a/arch/um/include/mem_kern.h +++ b/arch/um/include/shared/mem_kern.h | |||
diff --git a/arch/um/include/mem_user.h b/arch/um/include/shared/mem_user.h index 46384acd547b..46384acd547b 100644 --- a/arch/um/include/mem_user.h +++ b/arch/um/include/shared/mem_user.h | |||
diff --git a/arch/um/include/net_kern.h b/arch/um/include/shared/net_kern.h index d843c7924a7c..d843c7924a7c 100644 --- a/arch/um/include/net_kern.h +++ b/arch/um/include/shared/net_kern.h | |||
diff --git a/arch/um/include/net_user.h b/arch/um/include/shared/net_user.h index 63bee158cd8e..63bee158cd8e 100644 --- a/arch/um/include/net_user.h +++ b/arch/um/include/shared/net_user.h | |||
diff --git a/arch/um/include/os.h b/arch/um/include/shared/os.h index db5be46e3e18..cd40fddcf99d 100644 --- a/arch/um/include/os.h +++ b/arch/um/include/shared/os.h | |||
@@ -11,7 +11,6 @@ | |||
11 | #include "longjmp.h" | 11 | #include "longjmp.h" |
12 | #include "mm_id.h" | 12 | #include "mm_id.h" |
13 | #include "sysdep/tls.h" | 13 | #include "sysdep/tls.h" |
14 | #include "../os/include/file.h" | ||
15 | 14 | ||
16 | #define CATCH_EINTR(expr) while ((errno = 0, ((expr) < 0)) && (errno == EINTR)) | 15 | #define CATCH_EINTR(expr) while ((errno = 0, ((expr) < 0)) && (errno == EINTR)) |
17 | 16 | ||
diff --git a/arch/um/include/process.h b/arch/um/include/shared/process.h index bb873a51262e..bb873a51262e 100644 --- a/arch/um/include/process.h +++ b/arch/um/include/shared/process.h | |||
diff --git a/arch/um/include/ptrace_user.h b/arch/um/include/shared/ptrace_user.h index 4bce6e012889..4bce6e012889 100644 --- a/arch/um/include/ptrace_user.h +++ b/arch/um/include/shared/ptrace_user.h | |||
diff --git a/arch/um/include/registers.h b/arch/um/include/shared/registers.h index b0b4589e0ebc..b0b4589e0ebc 100644 --- a/arch/um/include/registers.h +++ b/arch/um/include/shared/registers.h | |||
diff --git a/arch/um/include/sigio.h b/arch/um/include/shared/sigio.h index 434f1a9ae4b3..434f1a9ae4b3 100644 --- a/arch/um/include/sigio.h +++ b/arch/um/include/shared/sigio.h | |||
diff --git a/arch/um/include/skas/mm_id.h b/arch/um/include/shared/skas/mm_id.h index 48dd0989ddaa..48dd0989ddaa 100644 --- a/arch/um/include/skas/mm_id.h +++ b/arch/um/include/shared/skas/mm_id.h | |||
diff --git a/arch/um/include/skas/proc_mm.h b/arch/um/include/shared/skas/proc_mm.h index 902809209603..902809209603 100644 --- a/arch/um/include/skas/proc_mm.h +++ b/arch/um/include/shared/skas/proc_mm.h | |||
diff --git a/arch/um/include/skas/skas.h b/arch/um/include/shared/skas/skas.h index 64d2c7443306..64d2c7443306 100644 --- a/arch/um/include/skas/skas.h +++ b/arch/um/include/shared/skas/skas.h | |||
diff --git a/arch/um/include/skas/stub-data.h b/arch/um/include/shared/skas/stub-data.h index f6ed92c3727d..f6ed92c3727d 100644 --- a/arch/um/include/skas/stub-data.h +++ b/arch/um/include/shared/skas/stub-data.h | |||
diff --git a/arch/um/include/skas_ptrace.h b/arch/um/include/shared/skas_ptrace.h index 3d31bbacd016..3d31bbacd016 100644 --- a/arch/um/include/skas_ptrace.h +++ b/arch/um/include/shared/skas_ptrace.h | |||
diff --git a/arch/um/include/skas_ptregs.h b/arch/um/include/shared/skas_ptregs.h index 73db19e9c077..73db19e9c077 100644 --- a/arch/um/include/skas_ptregs.h +++ b/arch/um/include/shared/skas_ptregs.h | |||
diff --git a/arch/um/include/syscall.h b/arch/um/include/shared/syscall.h index dda1df901a08..dda1df901a08 100644 --- a/arch/um/include/syscall.h +++ b/arch/um/include/shared/syscall.h | |||
diff --git a/arch/um/include/sysrq.h b/arch/um/include/shared/sysrq.h index c8d332b56b98..c8d332b56b98 100644 --- a/arch/um/include/sysrq.h +++ b/arch/um/include/shared/sysrq.h | |||
diff --git a/arch/um/include/task.h b/arch/um/include/shared/task.h index 3fe726b3cf48..3fe726b3cf48 100644 --- a/arch/um/include/task.h +++ b/arch/um/include/shared/task.h | |||
diff --git a/arch/um/include/tlb.h b/arch/um/include/shared/tlb.h index ecd2265b301b..ecd2265b301b 100644 --- a/arch/um/include/tlb.h +++ b/arch/um/include/shared/tlb.h | |||
diff --git a/arch/um/include/ubd_user.h b/arch/um/include/shared/ubd_user.h index bb66517f0739..bb66517f0739 100644 --- a/arch/um/include/ubd_user.h +++ b/arch/um/include/shared/ubd_user.h | |||
diff --git a/arch/um/include/um_malloc.h b/arch/um/include/shared/um_malloc.h index c554d706d106..c554d706d106 100644 --- a/arch/um/include/um_malloc.h +++ b/arch/um/include/shared/um_malloc.h | |||
diff --git a/arch/um/include/um_mmu.h b/arch/um/include/shared/um_mmu.h index f575ff91f2a0..b1a7e47d1027 100644 --- a/arch/um/include/um_mmu.h +++ b/arch/um/include/shared/um_mmu.h | |||
@@ -6,9 +6,8 @@ | |||
6 | #ifndef __ARCH_UM_MMU_H | 6 | #ifndef __ARCH_UM_MMU_H |
7 | #define __ARCH_UM_MMU_H | 7 | #define __ARCH_UM_MMU_H |
8 | 8 | ||
9 | #include "uml-config.h" | ||
10 | #include "mm_id.h" | 9 | #include "mm_id.h" |
11 | #include "asm/ldt.h" | 10 | #include "ldt.h" |
12 | 11 | ||
13 | typedef struct mm_context { | 12 | typedef struct mm_context { |
14 | struct mm_id id; | 13 | struct mm_id id; |
diff --git a/arch/um/include/um_uaccess.h b/arch/um/include/shared/um_uaccess.h index 45c04999d670..45c04999d670 100644 --- a/arch/um/include/um_uaccess.h +++ b/arch/um/include/shared/um_uaccess.h | |||
diff --git a/arch/um/include/user.h b/arch/um/include/shared/user.h index 1723fac6f40d..293f7c794faa 100644 --- a/arch/um/include/user.h +++ b/arch/um/include/shared/user.h | |||
@@ -6,7 +6,7 @@ | |||
6 | #ifndef __USER_H__ | 6 | #ifndef __USER_H__ |
7 | #define __USER_H__ | 7 | #define __USER_H__ |
8 | 8 | ||
9 | #include "uml-config.h" | 9 | #include "kern_constants.h" |
10 | 10 | ||
11 | /* | 11 | /* |
12 | * The usual definition - copied here because the kernel provides its own, | 12 | * The usual definition - copied here because the kernel provides its own, |
diff --git a/arch/um/include/sigcontext.h b/arch/um/include/sigcontext.h deleted file mode 100644 index 59816ca7a8df..000000000000 --- a/arch/um/include/sigcontext.h +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com) | ||
3 | * Licensed under the GPL | ||
4 | */ | ||
5 | |||
6 | #ifndef __UML_SIGCONTEXT_H__ | ||
7 | #define __UML_SIGCONTEXT_H__ | ||
8 | |||
9 | #include "sysdep/sigcontext.h" | ||
10 | |||
11 | extern int sc_size(void *data); | ||
12 | extern void sc_to_sc(void *to_ptr, void *from_ptr); | ||
13 | |||
14 | #endif | ||
15 | |||
16 | /* | ||
17 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
18 | * Emacs will notice this stuff at the end of the file and automatically | ||
19 | * adjust the settings for this buffer only. This must remain at the end | ||
20 | * of the file. | ||
21 | * --------------------------------------------------------------------------- | ||
22 | * Local variables: | ||
23 | * c-file-style: "linux" | ||
24 | * End: | ||
25 | */ | ||
diff --git a/arch/um/kernel/exec.c b/arch/um/kernel/exec.c index 598711c62c82..fda30d21fb90 100644 --- a/arch/um/kernel/exec.c +++ b/arch/um/kernel/exec.c | |||
@@ -15,6 +15,7 @@ | |||
15 | #include "mem_user.h" | 15 | #include "mem_user.h" |
16 | #include "skas.h" | 16 | #include "skas.h" |
17 | #include "os.h" | 17 | #include "os.h" |
18 | #include "internal.h" | ||
18 | 19 | ||
19 | void flush_thread(void) | 20 | void flush_thread(void) |
20 | { | 21 | { |
diff --git a/arch/um/kernel/internal.h b/arch/um/kernel/internal.h new file mode 100644 index 000000000000..3bda43c7a786 --- /dev/null +++ b/arch/um/kernel/internal.h | |||
@@ -0,0 +1 @@ | |||
extern long um_execve(char *file, char __user *__user *argv, char __user *__user *env); | |||
diff --git a/arch/um/kernel/signal.c b/arch/um/kernel/signal.c index b0fce720c4d0..b5c094c4ade4 100644 --- a/arch/um/kernel/signal.c +++ b/arch/um/kernel/signal.c | |||
@@ -11,7 +11,7 @@ | |||
11 | #include <asm/unistd.h> | 11 | #include <asm/unistd.h> |
12 | #include "frame_kern.h" | 12 | #include "frame_kern.h" |
13 | #include "kern_util.h" | 13 | #include "kern_util.h" |
14 | #include "sigcontext.h" | 14 | #include <sysdep/sigcontext.h> |
15 | 15 | ||
16 | EXPORT_SYMBOL(block_signals); | 16 | EXPORT_SYMBOL(block_signals); |
17 | EXPORT_SYMBOL(unblock_signals); | 17 | EXPORT_SYMBOL(unblock_signals); |
diff --git a/arch/um/kernel/syscall.c b/arch/um/kernel/syscall.c index 128ee85bc8d9..c4df705b8359 100644 --- a/arch/um/kernel/syscall.c +++ b/arch/um/kernel/syscall.c | |||
@@ -12,6 +12,7 @@ | |||
12 | #include "asm/mman.h" | 12 | #include "asm/mman.h" |
13 | #include "asm/uaccess.h" | 13 | #include "asm/uaccess.h" |
14 | #include "asm/unistd.h" | 14 | #include "asm/unistd.h" |
15 | #include "internal.h" | ||
15 | 16 | ||
16 | long sys_fork(void) | 17 | long sys_fork(void) |
17 | { | 18 | { |
diff --git a/arch/um/os-Linux/include/file.h b/arch/um/os-Linux/include/file.h deleted file mode 100644 index fe71be24bd59..000000000000 --- a/arch/um/os-Linux/include/file.h +++ /dev/null | |||
@@ -1,11 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) | ||
3 | * Licensed under the GPL | ||
4 | */ | ||
5 | |||
6 | #ifndef __OS_FILE_H__ | ||
7 | #define __OS_FILE_H__ | ||
8 | |||
9 | #define DEV_NULL "/dev/null" | ||
10 | |||
11 | #endif | ||
diff --git a/arch/um/os-Linux/skas/mem.c b/arch/um/os-Linux/skas/mem.c index 484e68f9f7ae..d261f170d120 100644 --- a/arch/um/os-Linux/skas/mem.c +++ b/arch/um/os-Linux/skas/mem.c | |||
@@ -20,7 +20,6 @@ | |||
20 | #include "user.h" | 20 | #include "user.h" |
21 | #include "sysdep/ptrace.h" | 21 | #include "sysdep/ptrace.h" |
22 | #include "sysdep/stub.h" | 22 | #include "sysdep/stub.h" |
23 | #include "uml-config.h" | ||
24 | 23 | ||
25 | extern unsigned long batch_syscall_stub, __syscall_stub_start; | 24 | extern unsigned long batch_syscall_stub, __syscall_stub_start; |
26 | 25 | ||
diff --git a/arch/um/sys-i386/asm/archparam.h b/arch/um/sys-i386/asm/archparam.h new file mode 100644 index 000000000000..93fd723344e5 --- /dev/null +++ b/arch/um/sys-i386/asm/archparam.h | |||
@@ -0,0 +1,26 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com) | ||
3 | * Licensed under the GPL | ||
4 | */ | ||
5 | |||
6 | #ifndef __UM_ARCHPARAM_I386_H | ||
7 | #define __UM_ARCHPARAM_I386_H | ||
8 | |||
9 | #ifdef CONFIG_X86_PAE | ||
10 | #define LAST_PKMAP 512 | ||
11 | #else | ||
12 | #define LAST_PKMAP 1024 | ||
13 | #endif | ||
14 | |||
15 | #endif | ||
16 | |||
17 | /* | ||
18 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
19 | * Emacs will notice this stuff at the end of the file and automatically | ||
20 | * adjust the settings for this buffer only. This must remain at the end | ||
21 | * of the file. | ||
22 | * --------------------------------------------------------------------------- | ||
23 | * Local variables: | ||
24 | * c-file-style: "linux" | ||
25 | * End: | ||
26 | */ | ||
diff --git a/arch/um/sys-i386/asm/elf.h b/arch/um/sys-i386/asm/elf.h new file mode 100644 index 000000000000..d0da9d7c5371 --- /dev/null +++ b/arch/um/sys-i386/asm/elf.h | |||
@@ -0,0 +1,163 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) | ||
3 | * Licensed under the GPL | ||
4 | */ | ||
5 | #ifndef __UM_ELF_I386_H | ||
6 | #define __UM_ELF_I386_H | ||
7 | |||
8 | #include <asm/user.h> | ||
9 | #include "skas.h" | ||
10 | |||
11 | #define R_386_NONE 0 | ||
12 | #define R_386_32 1 | ||
13 | #define R_386_PC32 2 | ||
14 | #define R_386_GOT32 3 | ||
15 | #define R_386_PLT32 4 | ||
16 | #define R_386_COPY 5 | ||
17 | #define R_386_GLOB_DAT 6 | ||
18 | #define R_386_JMP_SLOT 7 | ||
19 | #define R_386_RELATIVE 8 | ||
20 | #define R_386_GOTOFF 9 | ||
21 | #define R_386_GOTPC 10 | ||
22 | #define R_386_NUM 11 | ||
23 | |||
24 | typedef unsigned long elf_greg_t; | ||
25 | |||
26 | #define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof(elf_greg_t)) | ||
27 | typedef elf_greg_t elf_gregset_t[ELF_NGREG]; | ||
28 | |||
29 | typedef struct user_i387_struct elf_fpregset_t; | ||
30 | |||
31 | /* | ||
32 | * This is used to ensure we don't load something for the wrong architecture. | ||
33 | */ | ||
34 | #define elf_check_arch(x) \ | ||
35 | (((x)->e_machine == EM_386) || ((x)->e_machine == EM_486)) | ||
36 | |||
37 | #define ELF_CLASS ELFCLASS32 | ||
38 | #define ELF_DATA ELFDATA2LSB | ||
39 | #define ELF_ARCH EM_386 | ||
40 | |||
41 | #define ELF_PLAT_INIT(regs, load_addr) do { \ | ||
42 | PT_REGS_EBX(regs) = 0; \ | ||
43 | PT_REGS_ECX(regs) = 0; \ | ||
44 | PT_REGS_EDX(regs) = 0; \ | ||
45 | PT_REGS_ESI(regs) = 0; \ | ||
46 | PT_REGS_EDI(regs) = 0; \ | ||
47 | PT_REGS_EBP(regs) = 0; \ | ||
48 | PT_REGS_EAX(regs) = 0; \ | ||
49 | } while (0) | ||
50 | |||
51 | #define USE_ELF_CORE_DUMP | ||
52 | #define ELF_EXEC_PAGESIZE 4096 | ||
53 | |||
54 | #define ELF_ET_DYN_BASE (2 * TASK_SIZE / 3) | ||
55 | |||
56 | /* Shamelessly stolen from include/asm-i386/elf.h */ | ||
57 | |||
58 | #define ELF_CORE_COPY_REGS(pr_reg, regs) do { \ | ||
59 | pr_reg[0] = PT_REGS_EBX(regs); \ | ||
60 | pr_reg[1] = PT_REGS_ECX(regs); \ | ||
61 | pr_reg[2] = PT_REGS_EDX(regs); \ | ||
62 | pr_reg[3] = PT_REGS_ESI(regs); \ | ||
63 | pr_reg[4] = PT_REGS_EDI(regs); \ | ||
64 | pr_reg[5] = PT_REGS_EBP(regs); \ | ||
65 | pr_reg[6] = PT_REGS_EAX(regs); \ | ||
66 | pr_reg[7] = PT_REGS_DS(regs); \ | ||
67 | pr_reg[8] = PT_REGS_ES(regs); \ | ||
68 | /* fake once used fs and gs selectors? */ \ | ||
69 | pr_reg[9] = PT_REGS_DS(regs); \ | ||
70 | pr_reg[10] = PT_REGS_DS(regs); \ | ||
71 | pr_reg[11] = PT_REGS_SYSCALL_NR(regs); \ | ||
72 | pr_reg[12] = PT_REGS_IP(regs); \ | ||
73 | pr_reg[13] = PT_REGS_CS(regs); \ | ||
74 | pr_reg[14] = PT_REGS_EFLAGS(regs); \ | ||
75 | pr_reg[15] = PT_REGS_SP(regs); \ | ||
76 | pr_reg[16] = PT_REGS_SS(regs); \ | ||
77 | } while (0); | ||
78 | |||
79 | extern int elf_core_copy_fpregs(struct task_struct *t, elf_fpregset_t *fpu); | ||
80 | |||
81 | #define ELF_CORE_COPY_FPREGS(t, fpu) elf_core_copy_fpregs(t, fpu) | ||
82 | |||
83 | extern long elf_aux_hwcap; | ||
84 | #define ELF_HWCAP (elf_aux_hwcap) | ||
85 | |||
86 | extern char * elf_aux_platform; | ||
87 | #define ELF_PLATFORM (elf_aux_platform) | ||
88 | |||
89 | #define SET_PERSONALITY(ex) do { } while (0) | ||
90 | |||
91 | extern unsigned long vsyscall_ehdr; | ||
92 | extern unsigned long vsyscall_end; | ||
93 | extern unsigned long __kernel_vsyscall; | ||
94 | |||
95 | #define VSYSCALL_BASE vsyscall_ehdr | ||
96 | #define VSYSCALL_END vsyscall_end | ||
97 | |||
98 | /* | ||
99 | * This is the range that is readable by user mode, and things | ||
100 | * acting like user mode such as get_user_pages. | ||
101 | */ | ||
102 | #define FIXADDR_USER_START VSYSCALL_BASE | ||
103 | #define FIXADDR_USER_END VSYSCALL_END | ||
104 | |||
105 | /* | ||
106 | * Architecture-neutral AT_ values in 0-17, leave some room | ||
107 | * for more of them, start the x86-specific ones at 32. | ||
108 | */ | ||
109 | #define AT_SYSINFO 32 | ||
110 | #define AT_SYSINFO_EHDR 33 | ||
111 | |||
112 | #define ARCH_DLINFO \ | ||
113 | do { \ | ||
114 | if ( vsyscall_ehdr ) { \ | ||
115 | NEW_AUX_ENT(AT_SYSINFO, __kernel_vsyscall); \ | ||
116 | NEW_AUX_ENT(AT_SYSINFO_EHDR, vsyscall_ehdr); \ | ||
117 | } \ | ||
118 | } while (0) | ||
119 | |||
120 | /* | ||
121 | * These macros parameterize elf_core_dump in fs/binfmt_elf.c to write out | ||
122 | * extra segments containing the vsyscall DSO contents. Dumping its | ||
123 | * contents makes post-mortem fully interpretable later without matching up | ||
124 | * the same kernel and hardware config to see what PC values meant. | ||
125 | * Dumping its extra ELF program headers includes all the other information | ||
126 | * a debugger needs to easily find how the vsyscall DSO was being used. | ||
127 | */ | ||
128 | #define ELF_CORE_EXTRA_PHDRS \ | ||
129 | (vsyscall_ehdr ? (((struct elfhdr *)vsyscall_ehdr)->e_phnum) : 0 ) | ||
130 | |||
131 | #define ELF_CORE_WRITE_EXTRA_PHDRS \ | ||
132 | if ( vsyscall_ehdr ) { \ | ||
133 | const struct elfhdr *const ehdrp = (struct elfhdr *)vsyscall_ehdr; \ | ||
134 | const struct elf_phdr *const phdrp = \ | ||
135 | (const struct elf_phdr *) (vsyscall_ehdr + ehdrp->e_phoff); \ | ||
136 | int i; \ | ||
137 | Elf32_Off ofs = 0; \ | ||
138 | for (i = 0; i < ehdrp->e_phnum; ++i) { \ | ||
139 | struct elf_phdr phdr = phdrp[i]; \ | ||
140 | if (phdr.p_type == PT_LOAD) { \ | ||
141 | ofs = phdr.p_offset = offset; \ | ||
142 | offset += phdr.p_filesz; \ | ||
143 | } \ | ||
144 | else \ | ||
145 | phdr.p_offset += ofs; \ | ||
146 | phdr.p_paddr = 0; /* match other core phdrs */ \ | ||
147 | DUMP_WRITE(&phdr, sizeof(phdr)); \ | ||
148 | } \ | ||
149 | } | ||
150 | #define ELF_CORE_WRITE_EXTRA_DATA \ | ||
151 | if ( vsyscall_ehdr ) { \ | ||
152 | const struct elfhdr *const ehdrp = (struct elfhdr *)vsyscall_ehdr; \ | ||
153 | const struct elf_phdr *const phdrp = \ | ||
154 | (const struct elf_phdr *) (vsyscall_ehdr + ehdrp->e_phoff); \ | ||
155 | int i; \ | ||
156 | for (i = 0; i < ehdrp->e_phnum; ++i) { \ | ||
157 | if (phdrp[i].p_type == PT_LOAD) \ | ||
158 | DUMP_WRITE((void *) phdrp[i].p_vaddr, \ | ||
159 | phdrp[i].p_filesz); \ | ||
160 | } \ | ||
161 | } | ||
162 | |||
163 | #endif | ||
diff --git a/arch/um/sys-i386/asm/module.h b/arch/um/sys-i386/asm/module.h new file mode 100644 index 000000000000..5ead4a0b2e35 --- /dev/null +++ b/arch/um/sys-i386/asm/module.h | |||
@@ -0,0 +1,13 @@ | |||
1 | #ifndef __UM_MODULE_I386_H | ||
2 | #define __UM_MODULE_I386_H | ||
3 | |||
4 | /* UML is simple */ | ||
5 | struct mod_arch_specific | ||
6 | { | ||
7 | }; | ||
8 | |||
9 | #define Elf_Shdr Elf32_Shdr | ||
10 | #define Elf_Sym Elf32_Sym | ||
11 | #define Elf_Ehdr Elf32_Ehdr | ||
12 | |||
13 | #endif | ||
diff --git a/arch/um/sys-i386/asm/processor.h b/arch/um/sys-i386/asm/processor.h new file mode 100644 index 000000000000..82a9061ab5be --- /dev/null +++ b/arch/um/sys-i386/asm/processor.h | |||
@@ -0,0 +1,78 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2002 Jeff Dike (jdike@karaya.com) | ||
3 | * Licensed under the GPL | ||
4 | */ | ||
5 | |||
6 | #ifndef __UM_PROCESSOR_I386_H | ||
7 | #define __UM_PROCESSOR_I386_H | ||
8 | |||
9 | #include "linux/string.h" | ||
10 | #include <sysdep/host_ldt.h> | ||
11 | #include "asm/segment.h" | ||
12 | |||
13 | extern int host_has_cmov; | ||
14 | |||
15 | /* include faultinfo structure */ | ||
16 | #include "sysdep/faultinfo.h" | ||
17 | |||
18 | struct uml_tls_struct { | ||
19 | struct user_desc tls; | ||
20 | unsigned flushed:1; | ||
21 | unsigned present:1; | ||
22 | }; | ||
23 | |||
24 | struct arch_thread { | ||
25 | struct uml_tls_struct tls_array[GDT_ENTRY_TLS_ENTRIES]; | ||
26 | unsigned long debugregs[8]; | ||
27 | int debugregs_seq; | ||
28 | struct faultinfo faultinfo; | ||
29 | }; | ||
30 | |||
31 | #define INIT_ARCH_THREAD { \ | ||
32 | .tls_array = { [ 0 ... GDT_ENTRY_TLS_ENTRIES - 1 ] = \ | ||
33 | { .present = 0, .flushed = 0 } }, \ | ||
34 | .debugregs = { [ 0 ... 7 ] = 0 }, \ | ||
35 | .debugregs_seq = 0, \ | ||
36 | .faultinfo = { 0, 0, 0 } \ | ||
37 | } | ||
38 | |||
39 | static inline void arch_flush_thread(struct arch_thread *thread) | ||
40 | { | ||
41 | /* Clear any TLS still hanging */ | ||
42 | memset(&thread->tls_array, 0, sizeof(thread->tls_array)); | ||
43 | } | ||
44 | |||
45 | static inline void arch_copy_thread(struct arch_thread *from, | ||
46 | struct arch_thread *to) | ||
47 | { | ||
48 | memcpy(&to->tls_array, &from->tls_array, sizeof(from->tls_array)); | ||
49 | } | ||
50 | |||
51 | #include <asm/user.h> | ||
52 | |||
53 | /* REP NOP (PAUSE) is a good thing to insert into busy-wait loops. */ | ||
54 | static inline void rep_nop(void) | ||
55 | { | ||
56 | __asm__ __volatile__("rep;nop": : :"memory"); | ||
57 | } | ||
58 | |||
59 | #define cpu_relax() rep_nop() | ||
60 | |||
61 | /* | ||
62 | * Default implementation of macro that returns current | ||
63 | * instruction pointer ("program counter"). Stolen | ||
64 | * from asm-i386/processor.h | ||
65 | */ | ||
66 | #define current_text_addr() \ | ||
67 | ({ void *pc; __asm__("movl $1f,%0\n1:":"=g" (pc)); pc; }) | ||
68 | |||
69 | #define ARCH_IS_STACKGROW(address) \ | ||
70 | (address + 32 >= UPT_SP(¤t->thread.regs.regs)) | ||
71 | |||
72 | #define KSTK_EIP(tsk) KSTK_REG(tsk, EIP) | ||
73 | #define KSTK_ESP(tsk) KSTK_REG(tsk, UESP) | ||
74 | #define KSTK_EBP(tsk) KSTK_REG(tsk, EBP) | ||
75 | |||
76 | #include "asm/processor-generic.h" | ||
77 | |||
78 | #endif | ||
diff --git a/arch/um/sys-i386/asm/ptrace.h b/arch/um/sys-i386/asm/ptrace.h new file mode 100644 index 000000000000..0273e4d09af7 --- /dev/null +++ b/arch/um/sys-i386/asm/ptrace.h | |||
@@ -0,0 +1,56 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) | ||
3 | * Licensed under the GPL | ||
4 | */ | ||
5 | |||
6 | #ifndef __UM_PTRACE_I386_H | ||
7 | #define __UM_PTRACE_I386_H | ||
8 | |||
9 | #define HOST_AUDIT_ARCH AUDIT_ARCH_I386 | ||
10 | |||
11 | #include "linux/compiler.h" | ||
12 | #include "asm/ptrace-generic.h" | ||
13 | |||
14 | #define PT_REGS_EAX(r) UPT_EAX(&(r)->regs) | ||
15 | #define PT_REGS_EBX(r) UPT_EBX(&(r)->regs) | ||
16 | #define PT_REGS_ECX(r) UPT_ECX(&(r)->regs) | ||
17 | #define PT_REGS_EDX(r) UPT_EDX(&(r)->regs) | ||
18 | #define PT_REGS_ESI(r) UPT_ESI(&(r)->regs) | ||
19 | #define PT_REGS_EDI(r) UPT_EDI(&(r)->regs) | ||
20 | #define PT_REGS_EBP(r) UPT_EBP(&(r)->regs) | ||
21 | |||
22 | #define PT_REGS_CS(r) UPT_CS(&(r)->regs) | ||
23 | #define PT_REGS_SS(r) UPT_SS(&(r)->regs) | ||
24 | #define PT_REGS_DS(r) UPT_DS(&(r)->regs) | ||
25 | #define PT_REGS_ES(r) UPT_ES(&(r)->regs) | ||
26 | #define PT_REGS_FS(r) UPT_FS(&(r)->regs) | ||
27 | #define PT_REGS_GS(r) UPT_GS(&(r)->regs) | ||
28 | |||
29 | #define PT_REGS_EFLAGS(r) UPT_EFLAGS(&(r)->regs) | ||
30 | |||
31 | #define PT_REGS_ORIG_SYSCALL(r) PT_REGS_EAX(r) | ||
32 | #define PT_REGS_SYSCALL_RET(r) PT_REGS_EAX(r) | ||
33 | #define PT_FIX_EXEC_STACK(sp) do ; while(0) | ||
34 | |||
35 | #define profile_pc(regs) PT_REGS_IP(regs) | ||
36 | |||
37 | #define user_mode(r) UPT_IS_USER(&(r)->regs) | ||
38 | |||
39 | /* | ||
40 | * Forward declaration to avoid including sysdep/tls.h, which causes a | ||
41 | * circular include, and compilation failures. | ||
42 | */ | ||
43 | struct user_desc; | ||
44 | |||
45 | extern int get_fpxregs(struct user_fxsr_struct __user *buf, | ||
46 | struct task_struct *child); | ||
47 | extern int set_fpxregs(struct user_fxsr_struct __user *buf, | ||
48 | struct task_struct *tsk); | ||
49 | |||
50 | extern int ptrace_get_thread_area(struct task_struct *child, int idx, | ||
51 | struct user_desc __user *user_desc); | ||
52 | |||
53 | extern int ptrace_set_thread_area(struct task_struct *child, int idx, | ||
54 | struct user_desc __user *user_desc); | ||
55 | |||
56 | #endif | ||
diff --git a/arch/um/include/sysdep-i386/archsetjmp.h b/arch/um/sys-i386/shared/sysdep/archsetjmp.h index 0f312085ce1d..0f312085ce1d 100644 --- a/arch/um/include/sysdep-i386/archsetjmp.h +++ b/arch/um/sys-i386/shared/sysdep/archsetjmp.h | |||
diff --git a/arch/um/include/sysdep-i386/barrier.h b/arch/um/sys-i386/shared/sysdep/barrier.h index b58d52c5b2f4..b58d52c5b2f4 100644 --- a/arch/um/include/sysdep-i386/barrier.h +++ b/arch/um/sys-i386/shared/sysdep/barrier.h | |||
diff --git a/arch/um/include/sysdep-i386/checksum.h b/arch/um/sys-i386/shared/sysdep/checksum.h index 0cb4645cbeb8..0cb4645cbeb8 100644 --- a/arch/um/include/sysdep-i386/checksum.h +++ b/arch/um/sys-i386/shared/sysdep/checksum.h | |||
diff --git a/arch/um/include/sysdep-i386/faultinfo.h b/arch/um/sys-i386/shared/sysdep/faultinfo.h index db437cc373bc..db437cc373bc 100644 --- a/arch/um/include/sysdep-i386/faultinfo.h +++ b/arch/um/sys-i386/shared/sysdep/faultinfo.h | |||
diff --git a/arch/um/sys-i386/shared/sysdep/host_ldt.h b/arch/um/sys-i386/shared/sysdep/host_ldt.h new file mode 100644 index 000000000000..0953cc4df652 --- /dev/null +++ b/arch/um/sys-i386/shared/sysdep/host_ldt.h | |||
@@ -0,0 +1,34 @@ | |||
1 | #ifndef __ASM_HOST_LDT_I386_H | ||
2 | #define __ASM_HOST_LDT_I386_H | ||
3 | |||
4 | #include <asm/ldt.h> | ||
5 | |||
6 | /* | ||
7 | * macros stolen from include/asm-i386/desc.h | ||
8 | */ | ||
9 | #define LDT_entry_a(info) \ | ||
10 | ((((info)->base_addr & 0x0000ffff) << 16) | ((info)->limit & 0x0ffff)) | ||
11 | |||
12 | #define LDT_entry_b(info) \ | ||
13 | (((info)->base_addr & 0xff000000) | \ | ||
14 | (((info)->base_addr & 0x00ff0000) >> 16) | \ | ||
15 | ((info)->limit & 0xf0000) | \ | ||
16 | (((info)->read_exec_only ^ 1) << 9) | \ | ||
17 | ((info)->contents << 10) | \ | ||
18 | (((info)->seg_not_present ^ 1) << 15) | \ | ||
19 | ((info)->seg_32bit << 22) | \ | ||
20 | ((info)->limit_in_pages << 23) | \ | ||
21 | ((info)->useable << 20) | \ | ||
22 | 0x7000) | ||
23 | |||
24 | #define LDT_empty(info) (\ | ||
25 | (info)->base_addr == 0 && \ | ||
26 | (info)->limit == 0 && \ | ||
27 | (info)->contents == 0 && \ | ||
28 | (info)->read_exec_only == 1 && \ | ||
29 | (info)->seg_32bit == 0 && \ | ||
30 | (info)->limit_in_pages == 0 && \ | ||
31 | (info)->seg_not_present == 1 && \ | ||
32 | (info)->useable == 0 ) | ||
33 | |||
34 | #endif | ||
diff --git a/arch/um/include/sysdep-i386/kernel-offsets.h b/arch/um/sys-i386/shared/sysdep/kernel-offsets.h index 5868526b5eef..5868526b5eef 100644 --- a/arch/um/include/sysdep-i386/kernel-offsets.h +++ b/arch/um/sys-i386/shared/sysdep/kernel-offsets.h | |||
diff --git a/arch/um/include/sysdep-i386/ptrace.h b/arch/um/sys-i386/shared/sysdep/ptrace.h index 11c08969d134..d50e62e07070 100644 --- a/arch/um/include/sysdep-i386/ptrace.h +++ b/arch/um/sys-i386/shared/sysdep/ptrace.h | |||
@@ -6,7 +6,6 @@ | |||
6 | #ifndef __SYSDEP_I386_PTRACE_H | 6 | #ifndef __SYSDEP_I386_PTRACE_H |
7 | #define __SYSDEP_I386_PTRACE_H | 7 | #define __SYSDEP_I386_PTRACE_H |
8 | 8 | ||
9 | #include "uml-config.h" | ||
10 | #include "user_constants.h" | 9 | #include "user_constants.h" |
11 | #include "sysdep/faultinfo.h" | 10 | #include "sysdep/faultinfo.h" |
12 | 11 | ||
diff --git a/arch/um/include/sysdep-i386/ptrace_user.h b/arch/um/sys-i386/shared/sysdep/ptrace_user.h index ef56247e4143..ef56247e4143 100644 --- a/arch/um/include/sysdep-i386/ptrace_user.h +++ b/arch/um/sys-i386/shared/sysdep/ptrace_user.h | |||
diff --git a/arch/um/include/sysdep-i386/sc.h b/arch/um/sys-i386/shared/sysdep/sc.h index c57d1780ad37..c57d1780ad37 100644 --- a/arch/um/include/sysdep-i386/sc.h +++ b/arch/um/sys-i386/shared/sysdep/sc.h | |||
diff --git a/arch/um/include/sysdep-i386/sigcontext.h b/arch/um/sys-i386/shared/sysdep/sigcontext.h index f583c87111a0..f583c87111a0 100644 --- a/arch/um/include/sysdep-i386/sigcontext.h +++ b/arch/um/sys-i386/shared/sysdep/sigcontext.h | |||
diff --git a/arch/um/include/sysdep-i386/skas_ptrace.h b/arch/um/sys-i386/shared/sysdep/skas_ptrace.h index e27b8a791773..e27b8a791773 100644 --- a/arch/um/include/sysdep-i386/skas_ptrace.h +++ b/arch/um/sys-i386/shared/sysdep/skas_ptrace.h | |||
diff --git a/arch/um/include/sysdep-i386/stub.h b/arch/um/sys-i386/shared/sysdep/stub.h index 8c097b87fca7..977dedd9221b 100644 --- a/arch/um/include/sysdep-i386/stub.h +++ b/arch/um/sys-i386/shared/sysdep/stub.h | |||
@@ -12,7 +12,6 @@ | |||
12 | #include "as-layout.h" | 12 | #include "as-layout.h" |
13 | #include "stub-data.h" | 13 | #include "stub-data.h" |
14 | #include "kern_constants.h" | 14 | #include "kern_constants.h" |
15 | #include "uml-config.h" | ||
16 | 15 | ||
17 | extern void stub_segv_handler(int sig); | 16 | extern void stub_segv_handler(int sig); |
18 | extern void stub_clone_handler(void); | 17 | extern void stub_clone_handler(void); |
diff --git a/arch/um/include/sysdep-i386/syscalls.h b/arch/um/sys-i386/shared/sysdep/syscalls.h index 905698197e35..905698197e35 100644 --- a/arch/um/include/sysdep-i386/syscalls.h +++ b/arch/um/sys-i386/shared/sysdep/syscalls.h | |||
diff --git a/arch/um/sys-i386/shared/sysdep/system.h b/arch/um/sys-i386/shared/sysdep/system.h new file mode 100644 index 000000000000..d1b93c436200 --- /dev/null +++ b/arch/um/sys-i386/shared/sysdep/system.h | |||
@@ -0,0 +1,132 @@ | |||
1 | #ifndef _ASM_X86_SYSTEM_H_ | ||
2 | #define _ASM_X86_SYSTEM_H_ | ||
3 | |||
4 | #include <asm/asm.h> | ||
5 | #include <asm/segment.h> | ||
6 | #include <asm/cpufeature.h> | ||
7 | #include <asm/cmpxchg.h> | ||
8 | #include <asm/nops.h> | ||
9 | |||
10 | #include <linux/kernel.h> | ||
11 | #include <linux/irqflags.h> | ||
12 | |||
13 | /* entries in ARCH_DLINFO: */ | ||
14 | #ifdef CONFIG_IA32_EMULATION | ||
15 | # define AT_VECTOR_SIZE_ARCH 2 | ||
16 | #else | ||
17 | # define AT_VECTOR_SIZE_ARCH 1 | ||
18 | #endif | ||
19 | |||
20 | extern unsigned long arch_align_stack(unsigned long sp); | ||
21 | |||
22 | void default_idle(void); | ||
23 | |||
24 | /* | ||
25 | * Force strict CPU ordering. | ||
26 | * And yes, this is required on UP too when we're talking | ||
27 | * to devices. | ||
28 | */ | ||
29 | #ifdef CONFIG_X86_32 | ||
30 | /* | ||
31 | * Some non-Intel clones support out of order store. wmb() ceases to be a | ||
32 | * nop for these. | ||
33 | */ | ||
34 | #define mb() alternative("lock; addl $0,0(%%esp)", "mfence", X86_FEATURE_XMM2) | ||
35 | #define rmb() alternative("lock; addl $0,0(%%esp)", "lfence", X86_FEATURE_XMM2) | ||
36 | #define wmb() alternative("lock; addl $0,0(%%esp)", "sfence", X86_FEATURE_XMM) | ||
37 | #else | ||
38 | #define mb() asm volatile("mfence":::"memory") | ||
39 | #define rmb() asm volatile("lfence":::"memory") | ||
40 | #define wmb() asm volatile("sfence" ::: "memory") | ||
41 | #endif | ||
42 | |||
43 | /** | ||
44 | * read_barrier_depends - Flush all pending reads that subsequents reads | ||
45 | * depend on. | ||
46 | * | ||
47 | * No data-dependent reads from memory-like regions are ever reordered | ||
48 | * over this barrier. All reads preceding this primitive are guaranteed | ||
49 | * to access memory (but not necessarily other CPUs' caches) before any | ||
50 | * reads following this primitive that depend on the data return by | ||
51 | * any of the preceding reads. This primitive is much lighter weight than | ||
52 | * rmb() on most CPUs, and is never heavier weight than is | ||
53 | * rmb(). | ||
54 | * | ||
55 | * These ordering constraints are respected by both the local CPU | ||
56 | * and the compiler. | ||
57 | * | ||
58 | * Ordering is not guaranteed by anything other than these primitives, | ||
59 | * not even by data dependencies. See the documentation for | ||
60 | * memory_barrier() for examples and URLs to more information. | ||
61 | * | ||
62 | * For example, the following code would force ordering (the initial | ||
63 | * value of "a" is zero, "b" is one, and "p" is "&a"): | ||
64 | * | ||
65 | * <programlisting> | ||
66 | * CPU 0 CPU 1 | ||
67 | * | ||
68 | * b = 2; | ||
69 | * memory_barrier(); | ||
70 | * p = &b; q = p; | ||
71 | * read_barrier_depends(); | ||
72 | * d = *q; | ||
73 | * </programlisting> | ||
74 | * | ||
75 | * because the read of "*q" depends on the read of "p" and these | ||
76 | * two reads are separated by a read_barrier_depends(). However, | ||
77 | * the following code, with the same initial values for "a" and "b": | ||
78 | * | ||
79 | * <programlisting> | ||
80 | * CPU 0 CPU 1 | ||
81 | * | ||
82 | * a = 2; | ||
83 | * memory_barrier(); | ||
84 | * b = 3; y = b; | ||
85 | * read_barrier_depends(); | ||
86 | * x = a; | ||
87 | * </programlisting> | ||
88 | * | ||
89 | * does not enforce ordering, since there is no data dependency between | ||
90 | * the read of "a" and the read of "b". Therefore, on some CPUs, such | ||
91 | * as Alpha, "y" could be set to 3 and "x" to 0. Use rmb() | ||
92 | * in cases like this where there are no data dependencies. | ||
93 | **/ | ||
94 | |||
95 | #define read_barrier_depends() do { } while (0) | ||
96 | |||
97 | #ifdef CONFIG_SMP | ||
98 | #define smp_mb() mb() | ||
99 | #ifdef CONFIG_X86_PPRO_FENCE | ||
100 | # define smp_rmb() rmb() | ||
101 | #else | ||
102 | # define smp_rmb() barrier() | ||
103 | #endif | ||
104 | #ifdef CONFIG_X86_OOSTORE | ||
105 | # define smp_wmb() wmb() | ||
106 | #else | ||
107 | # define smp_wmb() barrier() | ||
108 | #endif | ||
109 | #define smp_read_barrier_depends() read_barrier_depends() | ||
110 | #define set_mb(var, value) do { (void)xchg(&var, value); } while (0) | ||
111 | #else | ||
112 | #define smp_mb() barrier() | ||
113 | #define smp_rmb() barrier() | ||
114 | #define smp_wmb() barrier() | ||
115 | #define smp_read_barrier_depends() do { } while (0) | ||
116 | #define set_mb(var, value) do { var = value; barrier(); } while (0) | ||
117 | #endif | ||
118 | |||
119 | /* | ||
120 | * Stop RDTSC speculation. This is needed when you need to use RDTSC | ||
121 | * (or get_cycles or vread that possibly accesses the TSC) in a defined | ||
122 | * code region. | ||
123 | * | ||
124 | * (Could use an alternative three way for this if there was one.) | ||
125 | */ | ||
126 | static inline void rdtsc_barrier(void) | ||
127 | { | ||
128 | alternative(ASM_NOP3, "mfence", X86_FEATURE_MFENCE_RDTSC); | ||
129 | alternative(ASM_NOP3, "lfence", X86_FEATURE_LFENCE_RDTSC); | ||
130 | } | ||
131 | |||
132 | #endif | ||
diff --git a/arch/um/include/sysdep-i386/tls.h b/arch/um/sys-i386/shared/sysdep/tls.h index 918fd3c5ff9c..34550755b2a1 100644 --- a/arch/um/include/sysdep-i386/tls.h +++ b/arch/um/sys-i386/shared/sysdep/tls.h | |||
@@ -21,7 +21,7 @@ typedef struct um_dup_user_desc { | |||
21 | 21 | ||
22 | # else /* __KERNEL__ */ | 22 | # else /* __KERNEL__ */ |
23 | 23 | ||
24 | # include <asm/ldt.h> | 24 | # include <ldt.h> |
25 | typedef struct user_desc user_desc_t; | 25 | typedef struct user_desc user_desc_t; |
26 | 26 | ||
27 | # endif /* __KERNEL__ */ | 27 | # endif /* __KERNEL__ */ |
diff --git a/arch/um/sys-i386/shared/sysdep/vm-flags.h b/arch/um/sys-i386/shared/sysdep/vm-flags.h new file mode 100644 index 000000000000..e0d24c568dbc --- /dev/null +++ b/arch/um/sys-i386/shared/sysdep/vm-flags.h | |||
@@ -0,0 +1,14 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2004 Jeff Dike (jdike@addtoit.com) | ||
3 | * Licensed under the GPL | ||
4 | */ | ||
5 | |||
6 | #ifndef __VM_FLAGS_I386_H | ||
7 | #define __VM_FLAGS_I386_H | ||
8 | |||
9 | #define VM_DATA_DEFAULT_FLAGS \ | ||
10 | (VM_READ | VM_WRITE | \ | ||
11 | ((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0 ) | \ | ||
12 | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) | ||
13 | |||
14 | #endif | ||
diff --git a/arch/um/sys-i386/stub.S b/arch/um/sys-i386/stub.S index 7699e89f660f..c41b04bf5fa0 100644 --- a/arch/um/sys-i386/stub.S +++ b/arch/um/sys-i386/stub.S | |||
@@ -1,4 +1,3 @@ | |||
1 | #include "uml-config.h" | ||
2 | #include "as-layout.h" | 1 | #include "as-layout.h" |
3 | 2 | ||
4 | .globl syscall_stub | 3 | .globl syscall_stub |
diff --git a/arch/um/sys-i386/syscalls.c b/arch/um/sys-i386/syscalls.c index e2d142684412..857ca0b3bdef 100644 --- a/arch/um/sys-i386/syscalls.c +++ b/arch/um/sys-i386/syscalls.c | |||
@@ -6,6 +6,7 @@ | |||
6 | #include "linux/sched.h" | 6 | #include "linux/sched.h" |
7 | #include "linux/shm.h" | 7 | #include "linux/shm.h" |
8 | #include "linux/ipc.h" | 8 | #include "linux/ipc.h" |
9 | #include "linux/syscalls.h" | ||
9 | #include "asm/mman.h" | 10 | #include "asm/mman.h" |
10 | #include "asm/uaccess.h" | 11 | #include "asm/uaccess.h" |
11 | #include "asm/unistd.h" | 12 | #include "asm/unistd.h" |
diff --git a/arch/um/include/sysdep-ia64/ptrace.h b/arch/um/sys-ia64/sysdep/ptrace.h index 42dd8fb6f2f9..42dd8fb6f2f9 100644 --- a/arch/um/include/sysdep-ia64/ptrace.h +++ b/arch/um/sys-ia64/sysdep/ptrace.h | |||
diff --git a/arch/um/include/sysdep-ia64/sigcontext.h b/arch/um/sys-ia64/sysdep/sigcontext.h index f15fb25260ba..f15fb25260ba 100644 --- a/arch/um/include/sysdep-ia64/sigcontext.h +++ b/arch/um/sys-ia64/sysdep/sigcontext.h | |||
diff --git a/arch/um/include/sysdep-ia64/skas_ptrace.h b/arch/um/sys-ia64/sysdep/skas_ptrace.h index 25a38e715702..25a38e715702 100644 --- a/arch/um/include/sysdep-ia64/skas_ptrace.h +++ b/arch/um/sys-ia64/sysdep/skas_ptrace.h | |||
diff --git a/arch/um/include/sysdep-ia64/syscalls.h b/arch/um/sys-ia64/sysdep/syscalls.h index 4a1f46ef1ebc..4a1f46ef1ebc 100644 --- a/arch/um/include/sysdep-ia64/syscalls.h +++ b/arch/um/sys-ia64/sysdep/syscalls.h | |||
diff --git a/arch/um/sys-ppc/asm/archparam.h b/arch/um/sys-ppc/asm/archparam.h new file mode 100644 index 000000000000..4269d8a37b4f --- /dev/null +++ b/arch/um/sys-ppc/asm/archparam.h | |||
@@ -0,0 +1,8 @@ | |||
1 | #ifndef __UM_ARCHPARAM_PPC_H | ||
2 | #define __UM_ARCHPARAM_PPC_H | ||
3 | |||
4 | /********* Bits for asm-um/string.h **********/ | ||
5 | |||
6 | #define __HAVE_ARCH_STRRCHR | ||
7 | |||
8 | #endif | ||
diff --git a/arch/um/sys-ppc/asm/elf.h b/arch/um/sys-ppc/asm/elf.h new file mode 100644 index 000000000000..af9463cd8ce5 --- /dev/null +++ b/arch/um/sys-ppc/asm/elf.h | |||
@@ -0,0 +1,53 @@ | |||
1 | #ifndef __UM_ELF_PPC_H | ||
2 | #define __UM_ELF_PPC_H | ||
3 | |||
4 | |||
5 | extern long elf_aux_hwcap; | ||
6 | #define ELF_HWCAP (elf_aux_hwcap) | ||
7 | |||
8 | #define SET_PERSONALITY(ex) do ; while(0) | ||
9 | |||
10 | #define ELF_EXEC_PAGESIZE 4096 | ||
11 | |||
12 | #define elf_check_arch(x) (1) | ||
13 | |||
14 | #ifdef CONFIG_64BIT | ||
15 | #define ELF_CLASS ELFCLASS64 | ||
16 | #else | ||
17 | #define ELF_CLASS ELFCLASS32 | ||
18 | #endif | ||
19 | |||
20 | #define USE_ELF_CORE_DUMP | ||
21 | |||
22 | #define R_386_NONE 0 | ||
23 | #define R_386_32 1 | ||
24 | #define R_386_PC32 2 | ||
25 | #define R_386_GOT32 3 | ||
26 | #define R_386_PLT32 4 | ||
27 | #define R_386_COPY 5 | ||
28 | #define R_386_GLOB_DAT 6 | ||
29 | #define R_386_JMP_SLOT 7 | ||
30 | #define R_386_RELATIVE 8 | ||
31 | #define R_386_GOTOFF 9 | ||
32 | #define R_386_GOTPC 10 | ||
33 | #define R_386_NUM 11 | ||
34 | |||
35 | #define ELF_PLATFORM (0) | ||
36 | |||
37 | #define ELF_ET_DYN_BASE (0x08000000) | ||
38 | |||
39 | /* the following stolen from asm-ppc/elf.h */ | ||
40 | #define ELF_NGREG 48 /* includes nip, msr, lr, etc. */ | ||
41 | #define ELF_NFPREG 33 /* includes fpscr */ | ||
42 | /* General registers */ | ||
43 | typedef unsigned long elf_greg_t; | ||
44 | typedef elf_greg_t elf_gregset_t[ELF_NGREG]; | ||
45 | |||
46 | /* Floating point registers */ | ||
47 | typedef double elf_fpreg_t; | ||
48 | typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; | ||
49 | |||
50 | #define ELF_DATA ELFDATA2MSB | ||
51 | #define ELF_ARCH EM_PPC | ||
52 | |||
53 | #endif | ||
diff --git a/arch/um/sys-ppc/asm/processor.h b/arch/um/sys-ppc/asm/processor.h new file mode 100644 index 000000000000..959323151229 --- /dev/null +++ b/arch/um/sys-ppc/asm/processor.h | |||
@@ -0,0 +1,15 @@ | |||
1 | #ifndef __UM_PROCESSOR_PPC_H | ||
2 | #define __UM_PROCESSOR_PPC_H | ||
3 | |||
4 | #if defined(__ASSEMBLY__) | ||
5 | |||
6 | #define CONFIG_PPC_MULTIPLATFORM | ||
7 | #include "arch/processor.h" | ||
8 | |||
9 | #else | ||
10 | |||
11 | #include "asm/processor-generic.h" | ||
12 | |||
13 | #endif | ||
14 | |||
15 | #endif | ||
diff --git a/arch/um/include/sysdep-ppc/ptrace.h b/arch/um/sys-ppc/shared/sysdep/ptrace.h index df2397dba3e5..df2397dba3e5 100644 --- a/arch/um/include/sysdep-ppc/ptrace.h +++ b/arch/um/sys-ppc/shared/sysdep/ptrace.h | |||
diff --git a/arch/um/include/sysdep-ppc/sigcontext.h b/arch/um/sys-ppc/shared/sysdep/sigcontext.h index f20d965de9c7..f20d965de9c7 100644 --- a/arch/um/include/sysdep-ppc/sigcontext.h +++ b/arch/um/sys-ppc/shared/sysdep/sigcontext.h | |||
diff --git a/arch/um/include/sysdep-ppc/skas_ptrace.h b/arch/um/sys-ppc/shared/sysdep/skas_ptrace.h index d9fbbac10de0..d9fbbac10de0 100644 --- a/arch/um/include/sysdep-ppc/skas_ptrace.h +++ b/arch/um/sys-ppc/shared/sysdep/skas_ptrace.h | |||
diff --git a/arch/um/include/sysdep-ppc/syscalls.h b/arch/um/sys-ppc/shared/sysdep/syscalls.h index 679df351e19b..679df351e19b 100644 --- a/arch/um/include/sysdep-ppc/syscalls.h +++ b/arch/um/sys-ppc/shared/sysdep/syscalls.h | |||
diff --git a/arch/um/sys-x86_64/asm/archparam.h b/arch/um/sys-x86_64/asm/archparam.h new file mode 100644 index 000000000000..270ed9586b68 --- /dev/null +++ b/arch/um/sys-x86_64/asm/archparam.h | |||
@@ -0,0 +1,26 @@ | |||
1 | /* | ||
2 | * Copyright 2003 PathScale, Inc. | ||
3 | * | ||
4 | * Licensed under the GPL | ||
5 | */ | ||
6 | |||
7 | #ifndef __UM_ARCHPARAM_X86_64_H | ||
8 | #define __UM_ARCHPARAM_X86_64_H | ||
9 | |||
10 | |||
11 | /* No user-accessible fixmap addresses, i.e. vsyscall */ | ||
12 | #define FIXADDR_USER_START 0 | ||
13 | #define FIXADDR_USER_END 0 | ||
14 | |||
15 | #endif | ||
16 | |||
17 | /* | ||
18 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
19 | * Emacs will notice this stuff at the end of the file and automatically | ||
20 | * adjust the settings for this buffer only. This must remain at the end | ||
21 | * of the file. | ||
22 | * --------------------------------------------------------------------------- | ||
23 | * Local variables: | ||
24 | * c-file-style: "linux" | ||
25 | * End: | ||
26 | */ | ||
diff --git a/arch/um/sys-x86_64/asm/elf.h b/arch/um/sys-x86_64/asm/elf.h new file mode 100644 index 000000000000..6e8a9195e952 --- /dev/null +++ b/arch/um/sys-x86_64/asm/elf.h | |||
@@ -0,0 +1,119 @@ | |||
1 | /* | ||
2 | * Copyright 2003 PathScale, Inc. | ||
3 | * Copyright (C) 2003 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) | ||
4 | * | ||
5 | * Licensed under the GPL | ||
6 | */ | ||
7 | #ifndef __UM_ELF_X86_64_H | ||
8 | #define __UM_ELF_X86_64_H | ||
9 | |||
10 | #include <asm/user.h> | ||
11 | #include "skas.h" | ||
12 | |||
13 | /* x86-64 relocation types, taken from asm-x86_64/elf.h */ | ||
14 | #define R_X86_64_NONE 0 /* No reloc */ | ||
15 | #define R_X86_64_64 1 /* Direct 64 bit */ | ||
16 | #define R_X86_64_PC32 2 /* PC relative 32 bit signed */ | ||
17 | #define R_X86_64_GOT32 3 /* 32 bit GOT entry */ | ||
18 | #define R_X86_64_PLT32 4 /* 32 bit PLT address */ | ||
19 | #define R_X86_64_COPY 5 /* Copy symbol at runtime */ | ||
20 | #define R_X86_64_GLOB_DAT 6 /* Create GOT entry */ | ||
21 | #define R_X86_64_JUMP_SLOT 7 /* Create PLT entry */ | ||
22 | #define R_X86_64_RELATIVE 8 /* Adjust by program base */ | ||
23 | #define R_X86_64_GOTPCREL 9 /* 32 bit signed pc relative | ||
24 | offset to GOT */ | ||
25 | #define R_X86_64_32 10 /* Direct 32 bit zero extended */ | ||
26 | #define R_X86_64_32S 11 /* Direct 32 bit sign extended */ | ||
27 | #define R_X86_64_16 12 /* Direct 16 bit zero extended */ | ||
28 | #define R_X86_64_PC16 13 /* 16 bit sign extended pc relative */ | ||
29 | #define R_X86_64_8 14 /* Direct 8 bit sign extended */ | ||
30 | #define R_X86_64_PC8 15 /* 8 bit sign extended pc relative */ | ||
31 | |||
32 | #define R_X86_64_NUM 16 | ||
33 | |||
34 | typedef unsigned long elf_greg_t; | ||
35 | |||
36 | #define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof(elf_greg_t)) | ||
37 | typedef elf_greg_t elf_gregset_t[ELF_NGREG]; | ||
38 | |||
39 | typedef struct user_i387_struct elf_fpregset_t; | ||
40 | |||
41 | /* | ||
42 | * This is used to ensure we don't load something for the wrong architecture. | ||
43 | */ | ||
44 | #define elf_check_arch(x) \ | ||
45 | ((x)->e_machine == EM_X86_64) | ||
46 | |||
47 | #define ELF_CLASS ELFCLASS64 | ||
48 | #define ELF_DATA ELFDATA2LSB | ||
49 | #define ELF_ARCH EM_X86_64 | ||
50 | |||
51 | #define ELF_PLAT_INIT(regs, load_addr) do { \ | ||
52 | PT_REGS_RBX(regs) = 0; \ | ||
53 | PT_REGS_RCX(regs) = 0; \ | ||
54 | PT_REGS_RDX(regs) = 0; \ | ||
55 | PT_REGS_RSI(regs) = 0; \ | ||
56 | PT_REGS_RDI(regs) = 0; \ | ||
57 | PT_REGS_RBP(regs) = 0; \ | ||
58 | PT_REGS_RAX(regs) = 0; \ | ||
59 | PT_REGS_R8(regs) = 0; \ | ||
60 | PT_REGS_R9(regs) = 0; \ | ||
61 | PT_REGS_R10(regs) = 0; \ | ||
62 | PT_REGS_R11(regs) = 0; \ | ||
63 | PT_REGS_R12(regs) = 0; \ | ||
64 | PT_REGS_R13(regs) = 0; \ | ||
65 | PT_REGS_R14(regs) = 0; \ | ||
66 | PT_REGS_R15(regs) = 0; \ | ||
67 | } while (0) | ||
68 | |||
69 | #define ELF_CORE_COPY_REGS(pr_reg, regs) \ | ||
70 | (pr_reg)[0] = (regs)->regs.gp[0]; \ | ||
71 | (pr_reg)[1] = (regs)->regs.gp[1]; \ | ||
72 | (pr_reg)[2] = (regs)->regs.gp[2]; \ | ||
73 | (pr_reg)[3] = (regs)->regs.gp[3]; \ | ||
74 | (pr_reg)[4] = (regs)->regs.gp[4]; \ | ||
75 | (pr_reg)[5] = (regs)->regs.gp[5]; \ | ||
76 | (pr_reg)[6] = (regs)->regs.gp[6]; \ | ||
77 | (pr_reg)[7] = (regs)->regs.gp[7]; \ | ||
78 | (pr_reg)[8] = (regs)->regs.gp[8]; \ | ||
79 | (pr_reg)[9] = (regs)->regs.gp[9]; \ | ||
80 | (pr_reg)[10] = (regs)->regs.gp[10]; \ | ||
81 | (pr_reg)[11] = (regs)->regs.gp[11]; \ | ||
82 | (pr_reg)[12] = (regs)->regs.gp[12]; \ | ||
83 | (pr_reg)[13] = (regs)->regs.gp[13]; \ | ||
84 | (pr_reg)[14] = (regs)->regs.gp[14]; \ | ||
85 | (pr_reg)[15] = (regs)->regs.gp[15]; \ | ||
86 | (pr_reg)[16] = (regs)->regs.gp[16]; \ | ||
87 | (pr_reg)[17] = (regs)->regs.gp[17]; \ | ||
88 | (pr_reg)[18] = (regs)->regs.gp[18]; \ | ||
89 | (pr_reg)[19] = (regs)->regs.gp[19]; \ | ||
90 | (pr_reg)[20] = (regs)->regs.gp[20]; \ | ||
91 | (pr_reg)[21] = current->thread.arch.fs; \ | ||
92 | (pr_reg)[22] = 0; \ | ||
93 | (pr_reg)[23] = 0; \ | ||
94 | (pr_reg)[24] = 0; \ | ||
95 | (pr_reg)[25] = 0; \ | ||
96 | (pr_reg)[26] = 0; | ||
97 | |||
98 | extern int elf_core_copy_fpregs(struct task_struct *t, elf_fpregset_t *fpu); | ||
99 | |||
100 | #define ELF_CORE_COPY_FPREGS(t, fpu) elf_core_copy_fpregs(t, fpu) | ||
101 | |||
102 | #ifdef TIF_IA32 /* XXX */ | ||
103 | #error XXX, indeed | ||
104 | clear_thread_flag(TIF_IA32); | ||
105 | #endif | ||
106 | |||
107 | #define USE_ELF_CORE_DUMP | ||
108 | #define ELF_EXEC_PAGESIZE 4096 | ||
109 | |||
110 | #define ELF_ET_DYN_BASE (2 * TASK_SIZE / 3) | ||
111 | |||
112 | extern long elf_aux_hwcap; | ||
113 | #define ELF_HWCAP (elf_aux_hwcap) | ||
114 | |||
115 | #define ELF_PLATFORM "x86_64" | ||
116 | |||
117 | #define SET_PERSONALITY(ex) do ; while(0) | ||
118 | |||
119 | #endif | ||
diff --git a/arch/um/sys-x86_64/asm/module.h b/arch/um/sys-x86_64/asm/module.h new file mode 100644 index 000000000000..35b5491d3e96 --- /dev/null +++ b/arch/um/sys-x86_64/asm/module.h | |||
@@ -0,0 +1,30 @@ | |||
1 | /* | ||
2 | * Copyright 2003 PathScale, Inc. | ||
3 | * | ||
4 | * Licensed under the GPL | ||
5 | */ | ||
6 | |||
7 | #ifndef __UM_MODULE_X86_64_H | ||
8 | #define __UM_MODULE_X86_64_H | ||
9 | |||
10 | /* UML is simple */ | ||
11 | struct mod_arch_specific | ||
12 | { | ||
13 | }; | ||
14 | |||
15 | #define Elf_Shdr Elf64_Shdr | ||
16 | #define Elf_Sym Elf64_Sym | ||
17 | #define Elf_Ehdr Elf64_Ehdr | ||
18 | |||
19 | #endif | ||
20 | |||
21 | /* | ||
22 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
23 | * Emacs will notice this stuff at the end of the file and automatically | ||
24 | * adjust the settings for this buffer only. This must remain at the end | ||
25 | * of the file. | ||
26 | * --------------------------------------------------------------------------- | ||
27 | * Local variables: | ||
28 | * c-file-style: "linux" | ||
29 | * End: | ||
30 | */ | ||
diff --git a/arch/um/sys-x86_64/asm/processor.h b/arch/um/sys-x86_64/asm/processor.h new file mode 100644 index 000000000000..875a26a62614 --- /dev/null +++ b/arch/um/sys-x86_64/asm/processor.h | |||
@@ -0,0 +1,56 @@ | |||
1 | /* | ||
2 | * Copyright 2003 PathScale, Inc. | ||
3 | * | ||
4 | * Licensed under the GPL | ||
5 | */ | ||
6 | |||
7 | #ifndef __UM_PROCESSOR_X86_64_H | ||
8 | #define __UM_PROCESSOR_X86_64_H | ||
9 | |||
10 | /* include faultinfo structure */ | ||
11 | #include "sysdep/faultinfo.h" | ||
12 | |||
13 | struct arch_thread { | ||
14 | unsigned long debugregs[8]; | ||
15 | int debugregs_seq; | ||
16 | unsigned long fs; | ||
17 | struct faultinfo faultinfo; | ||
18 | }; | ||
19 | |||
20 | /* REP NOP (PAUSE) is a good thing to insert into busy-wait loops. */ | ||
21 | static inline void rep_nop(void) | ||
22 | { | ||
23 | __asm__ __volatile__("rep;nop": : :"memory"); | ||
24 | } | ||
25 | |||
26 | #define cpu_relax() rep_nop() | ||
27 | |||
28 | #define INIT_ARCH_THREAD { .debugregs = { [ 0 ... 7 ] = 0 }, \ | ||
29 | .debugregs_seq = 0, \ | ||
30 | .fs = 0, \ | ||
31 | .faultinfo = { 0, 0, 0 } } | ||
32 | |||
33 | static inline void arch_flush_thread(struct arch_thread *thread) | ||
34 | { | ||
35 | } | ||
36 | |||
37 | static inline void arch_copy_thread(struct arch_thread *from, | ||
38 | struct arch_thread *to) | ||
39 | { | ||
40 | to->fs = from->fs; | ||
41 | } | ||
42 | |||
43 | #include <asm/user.h> | ||
44 | |||
45 | #define current_text_addr() \ | ||
46 | ({ void *pc; __asm__("movq $1f,%0\n1:":"=g" (pc)); pc; }) | ||
47 | |||
48 | #define ARCH_IS_STACKGROW(address) \ | ||
49 | (address + 128 >= UPT_SP(¤t->thread.regs.regs)) | ||
50 | |||
51 | #define KSTK_EIP(tsk) KSTK_REG(tsk, RIP) | ||
52 | #define KSTK_ESP(tsk) KSTK_REG(tsk, RSP) | ||
53 | |||
54 | #include "asm/processor-generic.h" | ||
55 | |||
56 | #endif | ||
diff --git a/arch/um/sys-x86_64/asm/ptrace.h b/arch/um/sys-x86_64/asm/ptrace.h new file mode 100644 index 000000000000..83d8c473b905 --- /dev/null +++ b/arch/um/sys-x86_64/asm/ptrace.h | |||
@@ -0,0 +1,72 @@ | |||
1 | /* | ||
2 | * Copyright 2003 PathScale, Inc. | ||
3 | * | ||
4 | * Licensed under the GPL | ||
5 | */ | ||
6 | |||
7 | #ifndef __UM_PTRACE_X86_64_H | ||
8 | #define __UM_PTRACE_X86_64_H | ||
9 | |||
10 | #include "linux/compiler.h" | ||
11 | #include "asm/errno.h" | ||
12 | |||
13 | #define __FRAME_OFFSETS /* Needed to get the R* macros */ | ||
14 | #include "asm/ptrace-generic.h" | ||
15 | |||
16 | #define HOST_AUDIT_ARCH AUDIT_ARCH_X86_64 | ||
17 | |||
18 | #define PT_REGS_RBX(r) UPT_RBX(&(r)->regs) | ||
19 | #define PT_REGS_RCX(r) UPT_RCX(&(r)->regs) | ||
20 | #define PT_REGS_RDX(r) UPT_RDX(&(r)->regs) | ||
21 | #define PT_REGS_RSI(r) UPT_RSI(&(r)->regs) | ||
22 | #define PT_REGS_RDI(r) UPT_RDI(&(r)->regs) | ||
23 | #define PT_REGS_RBP(r) UPT_RBP(&(r)->regs) | ||
24 | #define PT_REGS_RAX(r) UPT_RAX(&(r)->regs) | ||
25 | #define PT_REGS_R8(r) UPT_R8(&(r)->regs) | ||
26 | #define PT_REGS_R9(r) UPT_R9(&(r)->regs) | ||
27 | #define PT_REGS_R10(r) UPT_R10(&(r)->regs) | ||
28 | #define PT_REGS_R11(r) UPT_R11(&(r)->regs) | ||
29 | #define PT_REGS_R12(r) UPT_R12(&(r)->regs) | ||
30 | #define PT_REGS_R13(r) UPT_R13(&(r)->regs) | ||
31 | #define PT_REGS_R14(r) UPT_R14(&(r)->regs) | ||
32 | #define PT_REGS_R15(r) UPT_R15(&(r)->regs) | ||
33 | |||
34 | #define PT_REGS_FS(r) UPT_FS(&(r)->regs) | ||
35 | #define PT_REGS_GS(r) UPT_GS(&(r)->regs) | ||
36 | #define PT_REGS_DS(r) UPT_DS(&(r)->regs) | ||
37 | #define PT_REGS_ES(r) UPT_ES(&(r)->regs) | ||
38 | #define PT_REGS_SS(r) UPT_SS(&(r)->regs) | ||
39 | #define PT_REGS_CS(r) UPT_CS(&(r)->regs) | ||
40 | |||
41 | #define PT_REGS_ORIG_RAX(r) UPT_ORIG_RAX(&(r)->regs) | ||
42 | #define PT_REGS_RIP(r) UPT_IP(&(r)->regs) | ||
43 | #define PT_REGS_RSP(r) UPT_SP(&(r)->regs) | ||
44 | |||
45 | #define PT_REGS_EFLAGS(r) UPT_EFLAGS(&(r)->regs) | ||
46 | |||
47 | /* XXX */ | ||
48 | #define user_mode(r) UPT_IS_USER(&(r)->regs) | ||
49 | #define PT_REGS_ORIG_SYSCALL(r) PT_REGS_RAX(r) | ||
50 | #define PT_REGS_SYSCALL_RET(r) PT_REGS_RAX(r) | ||
51 | |||
52 | #define PT_FIX_EXEC_STACK(sp) do ; while(0) | ||
53 | |||
54 | #define profile_pc(regs) PT_REGS_IP(regs) | ||
55 | |||
56 | struct user_desc; | ||
57 | |||
58 | static inline int ptrace_get_thread_area(struct task_struct *child, int idx, | ||
59 | struct user_desc __user *user_desc) | ||
60 | { | ||
61 | return -ENOSYS; | ||
62 | } | ||
63 | |||
64 | static inline int ptrace_set_thread_area(struct task_struct *child, int idx, | ||
65 | struct user_desc __user *user_desc) | ||
66 | { | ||
67 | return -ENOSYS; | ||
68 | } | ||
69 | |||
70 | extern long arch_prctl(struct task_struct *task, int code, | ||
71 | unsigned long __user *addr); | ||
72 | #endif | ||
diff --git a/arch/um/include/sysdep-x86_64/archsetjmp.h b/arch/um/sys-x86_64/shared/sysdep/archsetjmp.h index 2af8f12ca161..2af8f12ca161 100644 --- a/arch/um/include/sysdep-x86_64/archsetjmp.h +++ b/arch/um/sys-x86_64/shared/sysdep/archsetjmp.h | |||
diff --git a/arch/um/include/sysdep-x86_64/barrier.h b/arch/um/sys-x86_64/shared/sysdep/barrier.h index 7b610befdc8f..7b610befdc8f 100644 --- a/arch/um/include/sysdep-x86_64/barrier.h +++ b/arch/um/sys-x86_64/shared/sysdep/barrier.h | |||
diff --git a/arch/um/include/sysdep-x86_64/checksum.h b/arch/um/sys-x86_64/shared/sysdep/checksum.h index a5be9031ea85..a5be9031ea85 100644 --- a/arch/um/include/sysdep-x86_64/checksum.h +++ b/arch/um/sys-x86_64/shared/sysdep/checksum.h | |||
diff --git a/arch/um/include/sysdep-x86_64/faultinfo.h b/arch/um/sys-x86_64/shared/sysdep/faultinfo.h index cb917b0d5660..cb917b0d5660 100644 --- a/arch/um/include/sysdep-x86_64/faultinfo.h +++ b/arch/um/sys-x86_64/shared/sysdep/faultinfo.h | |||
diff --git a/arch/um/sys-x86_64/shared/sysdep/host_ldt.h b/arch/um/sys-x86_64/shared/sysdep/host_ldt.h new file mode 100644 index 000000000000..e8b1be1e154f --- /dev/null +++ b/arch/um/sys-x86_64/shared/sysdep/host_ldt.h | |||
@@ -0,0 +1,38 @@ | |||
1 | #ifndef __ASM_HOST_LDT_X86_64_H | ||
2 | #define __ASM_HOST_LDT_X86_64_H | ||
3 | |||
4 | #include <asm/ldt.h> | ||
5 | |||
6 | /* | ||
7 | * macros stolen from include/asm-x86_64/desc.h | ||
8 | */ | ||
9 | #define LDT_entry_a(info) \ | ||
10 | ((((info)->base_addr & 0x0000ffff) << 16) | ((info)->limit & 0x0ffff)) | ||
11 | |||
12 | /* Don't allow setting of the lm bit. It is useless anyways because | ||
13 | * 64bit system calls require __USER_CS. */ | ||
14 | #define LDT_entry_b(info) \ | ||
15 | (((info)->base_addr & 0xff000000) | \ | ||
16 | (((info)->base_addr & 0x00ff0000) >> 16) | \ | ||
17 | ((info)->limit & 0xf0000) | \ | ||
18 | (((info)->read_exec_only ^ 1) << 9) | \ | ||
19 | ((info)->contents << 10) | \ | ||
20 | (((info)->seg_not_present ^ 1) << 15) | \ | ||
21 | ((info)->seg_32bit << 22) | \ | ||
22 | ((info)->limit_in_pages << 23) | \ | ||
23 | ((info)->useable << 20) | \ | ||
24 | /* ((info)->lm << 21) | */ \ | ||
25 | 0x7000) | ||
26 | |||
27 | #define LDT_empty(info) (\ | ||
28 | (info)->base_addr == 0 && \ | ||
29 | (info)->limit == 0 && \ | ||
30 | (info)->contents == 0 && \ | ||
31 | (info)->read_exec_only == 1 && \ | ||
32 | (info)->seg_32bit == 0 && \ | ||
33 | (info)->limit_in_pages == 0 && \ | ||
34 | (info)->seg_not_present == 1 && \ | ||
35 | (info)->useable == 0 && \ | ||
36 | (info)->lm == 0) | ||
37 | |||
38 | #endif | ||
diff --git a/arch/um/include/sysdep-x86_64/kernel-offsets.h b/arch/um/sys-x86_64/shared/sysdep/kernel-offsets.h index a307237b7964..a307237b7964 100644 --- a/arch/um/include/sysdep-x86_64/kernel-offsets.h +++ b/arch/um/sys-x86_64/shared/sysdep/kernel-offsets.h | |||
diff --git a/arch/um/include/sysdep-x86_64/ptrace.h b/arch/um/sys-x86_64/shared/sysdep/ptrace.h index 9ea44d111f33..fdba5457947a 100644 --- a/arch/um/include/sysdep-x86_64/ptrace.h +++ b/arch/um/sys-x86_64/shared/sysdep/ptrace.h | |||
@@ -8,7 +8,6 @@ | |||
8 | #ifndef __SYSDEP_X86_64_PTRACE_H | 8 | #ifndef __SYSDEP_X86_64_PTRACE_H |
9 | #define __SYSDEP_X86_64_PTRACE_H | 9 | #define __SYSDEP_X86_64_PTRACE_H |
10 | 10 | ||
11 | #include "uml-config.h" | ||
12 | #include "user_constants.h" | 11 | #include "user_constants.h" |
13 | #include "sysdep/faultinfo.h" | 12 | #include "sysdep/faultinfo.h" |
14 | 13 | ||
diff --git a/arch/um/include/sysdep-x86_64/ptrace_user.h b/arch/um/sys-x86_64/shared/sysdep/ptrace_user.h index 4dbccdb58f48..4dbccdb58f48 100644 --- a/arch/um/include/sysdep-x86_64/ptrace_user.h +++ b/arch/um/sys-x86_64/shared/sysdep/ptrace_user.h | |||
diff --git a/arch/um/include/sysdep-x86_64/sc.h b/arch/um/sys-x86_64/shared/sysdep/sc.h index 8aee45b07434..8aee45b07434 100644 --- a/arch/um/include/sysdep-x86_64/sc.h +++ b/arch/um/sys-x86_64/shared/sysdep/sc.h | |||
diff --git a/arch/um/include/sysdep-x86_64/sigcontext.h b/arch/um/sys-x86_64/shared/sysdep/sigcontext.h index 0155133b1458..0155133b1458 100644 --- a/arch/um/include/sysdep-x86_64/sigcontext.h +++ b/arch/um/sys-x86_64/shared/sysdep/sigcontext.h | |||
diff --git a/arch/um/include/sysdep-x86_64/skas_ptrace.h b/arch/um/sys-x86_64/shared/sysdep/skas_ptrace.h index 95db4be786e4..95db4be786e4 100644 --- a/arch/um/include/sysdep-x86_64/skas_ptrace.h +++ b/arch/um/sys-x86_64/shared/sysdep/skas_ptrace.h | |||
diff --git a/arch/um/include/sysdep-x86_64/stub.h b/arch/um/sys-x86_64/shared/sysdep/stub.h index 655f9c2de3ac..3432aa249970 100644 --- a/arch/um/include/sysdep-x86_64/stub.h +++ b/arch/um/sys-x86_64/shared/sysdep/stub.h | |||
@@ -12,7 +12,6 @@ | |||
12 | #include "as-layout.h" | 12 | #include "as-layout.h" |
13 | #include "stub-data.h" | 13 | #include "stub-data.h" |
14 | #include "kern_constants.h" | 14 | #include "kern_constants.h" |
15 | #include "uml-config.h" | ||
16 | 15 | ||
17 | extern void stub_segv_handler(int sig); | 16 | extern void stub_segv_handler(int sig); |
18 | extern void stub_clone_handler(void); | 17 | extern void stub_clone_handler(void); |
diff --git a/arch/um/include/sysdep-x86_64/syscalls.h b/arch/um/sys-x86_64/shared/sysdep/syscalls.h index 7cfb0b085655..7cfb0b085655 100644 --- a/arch/um/include/sysdep-x86_64/syscalls.h +++ b/arch/um/sys-x86_64/shared/sysdep/syscalls.h | |||
diff --git a/arch/um/sys-x86_64/shared/sysdep/system.h b/arch/um/sys-x86_64/shared/sysdep/system.h new file mode 100644 index 000000000000..d1b93c436200 --- /dev/null +++ b/arch/um/sys-x86_64/shared/sysdep/system.h | |||
@@ -0,0 +1,132 @@ | |||
1 | #ifndef _ASM_X86_SYSTEM_H_ | ||
2 | #define _ASM_X86_SYSTEM_H_ | ||
3 | |||
4 | #include <asm/asm.h> | ||
5 | #include <asm/segment.h> | ||
6 | #include <asm/cpufeature.h> | ||
7 | #include <asm/cmpxchg.h> | ||
8 | #include <asm/nops.h> | ||
9 | |||
10 | #include <linux/kernel.h> | ||
11 | #include <linux/irqflags.h> | ||
12 | |||
13 | /* entries in ARCH_DLINFO: */ | ||
14 | #ifdef CONFIG_IA32_EMULATION | ||
15 | # define AT_VECTOR_SIZE_ARCH 2 | ||
16 | #else | ||
17 | # define AT_VECTOR_SIZE_ARCH 1 | ||
18 | #endif | ||
19 | |||
20 | extern unsigned long arch_align_stack(unsigned long sp); | ||
21 | |||
22 | void default_idle(void); | ||
23 | |||
24 | /* | ||
25 | * Force strict CPU ordering. | ||
26 | * And yes, this is required on UP too when we're talking | ||
27 | * to devices. | ||
28 | */ | ||
29 | #ifdef CONFIG_X86_32 | ||
30 | /* | ||
31 | * Some non-Intel clones support out of order store. wmb() ceases to be a | ||
32 | * nop for these. | ||
33 | */ | ||
34 | #define mb() alternative("lock; addl $0,0(%%esp)", "mfence", X86_FEATURE_XMM2) | ||
35 | #define rmb() alternative("lock; addl $0,0(%%esp)", "lfence", X86_FEATURE_XMM2) | ||
36 | #define wmb() alternative("lock; addl $0,0(%%esp)", "sfence", X86_FEATURE_XMM) | ||
37 | #else | ||
38 | #define mb() asm volatile("mfence":::"memory") | ||
39 | #define rmb() asm volatile("lfence":::"memory") | ||
40 | #define wmb() asm volatile("sfence" ::: "memory") | ||
41 | #endif | ||
42 | |||
43 | /** | ||
44 | * read_barrier_depends - Flush all pending reads that subsequents reads | ||
45 | * depend on. | ||
46 | * | ||
47 | * No data-dependent reads from memory-like regions are ever reordered | ||
48 | * over this barrier. All reads preceding this primitive are guaranteed | ||
49 | * to access memory (but not necessarily other CPUs' caches) before any | ||
50 | * reads following this primitive that depend on the data return by | ||
51 | * any of the preceding reads. This primitive is much lighter weight than | ||
52 | * rmb() on most CPUs, and is never heavier weight than is | ||
53 | * rmb(). | ||
54 | * | ||
55 | * These ordering constraints are respected by both the local CPU | ||
56 | * and the compiler. | ||
57 | * | ||
58 | * Ordering is not guaranteed by anything other than these primitives, | ||
59 | * not even by data dependencies. See the documentation for | ||
60 | * memory_barrier() for examples and URLs to more information. | ||
61 | * | ||
62 | * For example, the following code would force ordering (the initial | ||
63 | * value of "a" is zero, "b" is one, and "p" is "&a"): | ||
64 | * | ||
65 | * <programlisting> | ||
66 | * CPU 0 CPU 1 | ||
67 | * | ||
68 | * b = 2; | ||
69 | * memory_barrier(); | ||
70 | * p = &b; q = p; | ||
71 | * read_barrier_depends(); | ||
72 | * d = *q; | ||
73 | * </programlisting> | ||
74 | * | ||
75 | * because the read of "*q" depends on the read of "p" and these | ||
76 | * two reads are separated by a read_barrier_depends(). However, | ||
77 | * the following code, with the same initial values for "a" and "b": | ||
78 | * | ||
79 | * <programlisting> | ||
80 | * CPU 0 CPU 1 | ||
81 | * | ||
82 | * a = 2; | ||
83 | * memory_barrier(); | ||
84 | * b = 3; y = b; | ||
85 | * read_barrier_depends(); | ||
86 | * x = a; | ||
87 | * </programlisting> | ||
88 | * | ||
89 | * does not enforce ordering, since there is no data dependency between | ||
90 | * the read of "a" and the read of "b". Therefore, on some CPUs, such | ||
91 | * as Alpha, "y" could be set to 3 and "x" to 0. Use rmb() | ||
92 | * in cases like this where there are no data dependencies. | ||
93 | **/ | ||
94 | |||
95 | #define read_barrier_depends() do { } while (0) | ||
96 | |||
97 | #ifdef CONFIG_SMP | ||
98 | #define smp_mb() mb() | ||
99 | #ifdef CONFIG_X86_PPRO_FENCE | ||
100 | # define smp_rmb() rmb() | ||
101 | #else | ||
102 | # define smp_rmb() barrier() | ||
103 | #endif | ||
104 | #ifdef CONFIG_X86_OOSTORE | ||
105 | # define smp_wmb() wmb() | ||
106 | #else | ||
107 | # define smp_wmb() barrier() | ||
108 | #endif | ||
109 | #define smp_read_barrier_depends() read_barrier_depends() | ||
110 | #define set_mb(var, value) do { (void)xchg(&var, value); } while (0) | ||
111 | #else | ||
112 | #define smp_mb() barrier() | ||
113 | #define smp_rmb() barrier() | ||
114 | #define smp_wmb() barrier() | ||
115 | #define smp_read_barrier_depends() do { } while (0) | ||
116 | #define set_mb(var, value) do { var = value; barrier(); } while (0) | ||
117 | #endif | ||
118 | |||
119 | /* | ||
120 | * Stop RDTSC speculation. This is needed when you need to use RDTSC | ||
121 | * (or get_cycles or vread that possibly accesses the TSC) in a defined | ||
122 | * code region. | ||
123 | * | ||
124 | * (Could use an alternative three way for this if there was one.) | ||
125 | */ | ||
126 | static inline void rdtsc_barrier(void) | ||
127 | { | ||
128 | alternative(ASM_NOP3, "mfence", X86_FEATURE_MFENCE_RDTSC); | ||
129 | alternative(ASM_NOP3, "lfence", X86_FEATURE_LFENCE_RDTSC); | ||
130 | } | ||
131 | |||
132 | #endif | ||
diff --git a/arch/um/include/sysdep-x86_64/tls.h b/arch/um/sys-x86_64/shared/sysdep/tls.h index 35f19f25bd3b..18c000d0357a 100644 --- a/arch/um/include/sysdep-x86_64/tls.h +++ b/arch/um/sys-x86_64/shared/sysdep/tls.h | |||
@@ -22,7 +22,7 @@ typedef struct um_dup_user_desc { | |||
22 | 22 | ||
23 | # else /* __KERNEL__ */ | 23 | # else /* __KERNEL__ */ |
24 | 24 | ||
25 | # include <asm/ldt.h> | 25 | # include <ldt.h> |
26 | typedef struct user_desc user_desc_t; | 26 | typedef struct user_desc user_desc_t; |
27 | 27 | ||
28 | # endif /* __KERNEL__ */ | 28 | # endif /* __KERNEL__ */ |
diff --git a/arch/um/sys-x86_64/shared/sysdep/vm-flags.h b/arch/um/sys-x86_64/shared/sysdep/vm-flags.h new file mode 100644 index 000000000000..3213edfa7888 --- /dev/null +++ b/arch/um/sys-x86_64/shared/sysdep/vm-flags.h | |||
@@ -0,0 +1,33 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2004 Jeff Dike (jdike@addtoit.com) | ||
3 | * Copyright 2003 PathScale, Inc. | ||
4 | * Licensed under the GPL | ||
5 | */ | ||
6 | |||
7 | #ifndef __VM_FLAGS_X86_64_H | ||
8 | #define __VM_FLAGS_X86_64_H | ||
9 | |||
10 | #define __VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \ | ||
11 | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) | ||
12 | #define __VM_STACK_FLAGS (VM_GROWSDOWN | VM_READ | VM_WRITE | \ | ||
13 | VM_EXEC | VM_MAYREAD | VM_MAYWRITE | \ | ||
14 | VM_MAYEXEC) | ||
15 | |||
16 | extern unsigned long vm_stack_flags, vm_stack_flags32; | ||
17 | extern unsigned long vm_data_default_flags, vm_data_default_flags32; | ||
18 | extern unsigned long vm_force_exec32; | ||
19 | |||
20 | #ifdef TIF_IA32 | ||
21 | #define VM_DATA_DEFAULT_FLAGS \ | ||
22 | (test_thread_flag(TIF_IA32) ? vm_data_default_flags32 : \ | ||
23 | vm_data_default_flags) | ||
24 | |||
25 | #define VM_STACK_DEFAULT_FLAGS \ | ||
26 | (test_thread_flag(TIF_IA32) ? vm_stack_flags32 : vm_stack_flags) | ||
27 | #endif | ||
28 | |||
29 | #define VM_DATA_DEFAULT_FLAGS vm_data_default_flags | ||
30 | |||
31 | #define VM_STACK_DEFAULT_FLAGS vm_stack_flags | ||
32 | |||
33 | #endif | ||
diff --git a/arch/um/sys-x86_64/stub.S b/arch/um/sys-x86_64/stub.S index 568768763155..6d9edf9fabce 100644 --- a/arch/um/sys-x86_64/stub.S +++ b/arch/um/sys-x86_64/stub.S | |||
@@ -1,4 +1,3 @@ | |||
1 | #include "uml-config.h" | ||
2 | #include "as-layout.h" | 1 | #include "as-layout.h" |
3 | 2 | ||
4 | .globl syscall_stub | 3 | .globl syscall_stub |
diff --git a/arch/um/sys-x86_64/syscall_table.c b/arch/um/sys-x86_64/syscall_table.c index 32f5fbe2d0d2..dd21d69715e6 100644 --- a/arch/um/sys-x86_64/syscall_table.c +++ b/arch/um/sys-x86_64/syscall_table.c | |||
@@ -41,12 +41,12 @@ | |||
41 | #define stub_rt_sigreturn sys_rt_sigreturn | 41 | #define stub_rt_sigreturn sys_rt_sigreturn |
42 | 42 | ||
43 | #define __SYSCALL(nr, sym) extern asmlinkage void sym(void) ; | 43 | #define __SYSCALL(nr, sym) extern asmlinkage void sym(void) ; |
44 | #undef ASM_X86__UNISTD_64_H | 44 | #undef _ASM_X86_UNISTD_64_H |
45 | #include <asm-x86/unistd_64.h> | 45 | #include "../../x86/include/asm/unistd_64.h" |
46 | 46 | ||
47 | #undef __SYSCALL | 47 | #undef __SYSCALL |
48 | #define __SYSCALL(nr, sym) [ nr ] = sym, | 48 | #define __SYSCALL(nr, sym) [ nr ] = sym, |
49 | #undef ASM_X86__UNISTD_64_H | 49 | #undef _ASM_X86_UNISTD_64_H |
50 | 50 | ||
51 | typedef void (*sys_call_ptr_t)(void); | 51 | typedef void (*sys_call_ptr_t)(void); |
52 | 52 | ||
@@ -64,7 +64,7 @@ extern void sys_ni_syscall(void); | |||
64 | */ | 64 | */ |
65 | 65 | ||
66 | sys_call_ptr_t sys_call_table[] __cacheline_aligned = { | 66 | sys_call_ptr_t sys_call_table[] __cacheline_aligned = { |
67 | #include <asm-x86/unistd_64.h> | 67 | #include "../../x86/include/asm/unistd_64.h" |
68 | }; | 68 | }; |
69 | 69 | ||
70 | int syscall_table_size = sizeof(sys_call_table); | 70 | int syscall_table_size = sizeof(sys_call_table); |
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 5b9b12321ad1..350bee1d54dc 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
@@ -116,6 +116,9 @@ config GENERIC_TIME_VSYSCALL | |||
116 | config ARCH_HAS_CPU_RELAX | 116 | config ARCH_HAS_CPU_RELAX |
117 | def_bool y | 117 | def_bool y |
118 | 118 | ||
119 | config ARCH_HAS_DEFAULT_IDLE | ||
120 | def_bool y | ||
121 | |||
119 | config ARCH_HAS_CACHE_LINE_SIZE | 122 | config ARCH_HAS_CACHE_LINE_SIZE |
120 | def_bool y | 123 | def_bool y |
121 | 124 | ||
@@ -1635,6 +1638,8 @@ source "arch/x86/kernel/cpu/cpufreq/Kconfig" | |||
1635 | 1638 | ||
1636 | source "drivers/cpuidle/Kconfig" | 1639 | source "drivers/cpuidle/Kconfig" |
1637 | 1640 | ||
1641 | source "drivers/idle/Kconfig" | ||
1642 | |||
1638 | endmenu | 1643 | endmenu |
1639 | 1644 | ||
1640 | 1645 | ||
diff --git a/arch/x86/Makefile b/arch/x86/Makefile index f5631da585b6..d1a47adb5aec 100644 --- a/arch/x86/Makefile +++ b/arch/x86/Makefile | |||
@@ -110,16 +110,16 @@ KBUILD_CFLAGS += $(call cc-option,-mno-sse -mno-mmx -mno-sse2 -mno-3dnow,) | |||
110 | mcore-y := arch/x86/mach-default/ | 110 | mcore-y := arch/x86/mach-default/ |
111 | 111 | ||
112 | # Voyager subarch support | 112 | # Voyager subarch support |
113 | mflags-$(CONFIG_X86_VOYAGER) := -Iinclude/asm-x86/mach-voyager | 113 | mflags-$(CONFIG_X86_VOYAGER) := -Iarch/x86/include/asm/mach-voyager |
114 | mcore-$(CONFIG_X86_VOYAGER) := arch/x86/mach-voyager/ | 114 | mcore-$(CONFIG_X86_VOYAGER) := arch/x86/mach-voyager/ |
115 | 115 | ||
116 | # generic subarchitecture | 116 | # generic subarchitecture |
117 | mflags-$(CONFIG_X86_GENERICARCH):= -Iinclude/asm-x86/mach-generic | 117 | mflags-$(CONFIG_X86_GENERICARCH):= -Iarch/x86/include/asm/mach-generic |
118 | fcore-$(CONFIG_X86_GENERICARCH) += arch/x86/mach-generic/ | 118 | fcore-$(CONFIG_X86_GENERICARCH) += arch/x86/mach-generic/ |
119 | mcore-$(CONFIG_X86_GENERICARCH) := arch/x86/mach-default/ | 119 | mcore-$(CONFIG_X86_GENERICARCH) := arch/x86/mach-default/ |
120 | 120 | ||
121 | # default subarch .h files | 121 | # default subarch .h files |
122 | mflags-y += -Iinclude/asm-x86/mach-default | 122 | mflags-y += -Iarch/x86/include/asm/mach-default |
123 | 123 | ||
124 | # 64 bit does not support subarch support - clear sub arch variables | 124 | # 64 bit does not support subarch support - clear sub arch variables |
125 | fcore-$(CONFIG_X86_64) := | 125 | fcore-$(CONFIG_X86_64) := |
diff --git a/arch/x86/boot/compressed/misc.c b/arch/x86/boot/compressed/misc.c index 5780d361105b..da062216948a 100644 --- a/arch/x86/boot/compressed/misc.c +++ b/arch/x86/boot/compressed/misc.c | |||
@@ -16,7 +16,7 @@ | |||
16 | */ | 16 | */ |
17 | #undef CONFIG_PARAVIRT | 17 | #undef CONFIG_PARAVIRT |
18 | #ifdef CONFIG_X86_32 | 18 | #ifdef CONFIG_X86_32 |
19 | #define ASM_X86__DESC_H 1 | 19 | #define _ASM_X86_DESC_H 1 |
20 | #endif | 20 | #endif |
21 | 21 | ||
22 | #ifdef CONFIG_X86_64 | 22 | #ifdef CONFIG_X86_64 |
diff --git a/arch/x86/boot/video-bios.c b/arch/x86/boot/video-bios.c index 49f26aaaebc8..3fa979c9c363 100644 --- a/arch/x86/boot/video-bios.c +++ b/arch/x86/boot/video-bios.c | |||
@@ -17,7 +17,7 @@ | |||
17 | #include "boot.h" | 17 | #include "boot.h" |
18 | #include "video.h" | 18 | #include "video.h" |
19 | 19 | ||
20 | __videocard video_bios; | 20 | static __videocard video_bios; |
21 | 21 | ||
22 | /* Set a conventional BIOS mode */ | 22 | /* Set a conventional BIOS mode */ |
23 | static int set_bios_mode(u8 mode); | 23 | static int set_bios_mode(u8 mode); |
@@ -119,7 +119,7 @@ static int bios_probe(void) | |||
119 | return nmodes; | 119 | return nmodes; |
120 | } | 120 | } |
121 | 121 | ||
122 | __videocard video_bios = | 122 | static __videocard video_bios = |
123 | { | 123 | { |
124 | .card_name = "BIOS", | 124 | .card_name = "BIOS", |
125 | .probe = bios_probe, | 125 | .probe = bios_probe, |
diff --git a/arch/x86/boot/video-vesa.c b/arch/x86/boot/video-vesa.c index 99b3079dc6ab..75115849af33 100644 --- a/arch/x86/boot/video-vesa.c +++ b/arch/x86/boot/video-vesa.c | |||
@@ -20,7 +20,7 @@ | |||
20 | static struct vesa_general_info vginfo; | 20 | static struct vesa_general_info vginfo; |
21 | static struct vesa_mode_info vminfo; | 21 | static struct vesa_mode_info vminfo; |
22 | 22 | ||
23 | __videocard video_vesa; | 23 | static __videocard video_vesa; |
24 | 24 | ||
25 | #ifndef _WAKEUP | 25 | #ifndef _WAKEUP |
26 | static void vesa_store_mode_params_graphics(void); | 26 | static void vesa_store_mode_params_graphics(void); |
@@ -293,7 +293,7 @@ void vesa_store_edid(void) | |||
293 | 293 | ||
294 | #endif /* not _WAKEUP */ | 294 | #endif /* not _WAKEUP */ |
295 | 295 | ||
296 | __videocard video_vesa = | 296 | static __videocard video_vesa = |
297 | { | 297 | { |
298 | .card_name = "VESA", | 298 | .card_name = "VESA", |
299 | .probe = vesa_probe, | 299 | .probe = vesa_probe, |
diff --git a/arch/x86/include/asm/Kbuild b/arch/x86/include/asm/Kbuild new file mode 100644 index 000000000000..4a8e80cdcfa5 --- /dev/null +++ b/arch/x86/include/asm/Kbuild | |||
@@ -0,0 +1,24 @@ | |||
1 | include include/asm-generic/Kbuild.asm | ||
2 | |||
3 | header-y += boot.h | ||
4 | header-y += bootparam.h | ||
5 | header-y += debugreg.h | ||
6 | header-y += ldt.h | ||
7 | header-y += msr-index.h | ||
8 | header-y += prctl.h | ||
9 | header-y += ptrace-abi.h | ||
10 | header-y += sigcontext32.h | ||
11 | header-y += ucontext.h | ||
12 | header-y += processor-flags.h | ||
13 | |||
14 | unifdef-y += e820.h | ||
15 | unifdef-y += ist.h | ||
16 | unifdef-y += mce.h | ||
17 | unifdef-y += msr.h | ||
18 | unifdef-y += mtrr.h | ||
19 | unifdef-y += posix_types_32.h | ||
20 | unifdef-y += posix_types_64.h | ||
21 | unifdef-y += unistd_32.h | ||
22 | unifdef-y += unistd_64.h | ||
23 | unifdef-y += vm86.h | ||
24 | unifdef-y += vsyscall.h | ||
diff --git a/arch/x86/include/asm/a.out-core.h b/arch/x86/include/asm/a.out-core.h new file mode 100644 index 000000000000..37822206083e --- /dev/null +++ b/arch/x86/include/asm/a.out-core.h | |||
@@ -0,0 +1,73 @@ | |||
1 | /* a.out coredump register dumper | ||
2 | * | ||
3 | * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. | ||
4 | * Written by David Howells (dhowells@redhat.com) | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or | ||
7 | * modify it under the terms of the GNU General Public Licence | ||
8 | * as published by the Free Software Foundation; either version | ||
9 | * 2 of the Licence, or (at your option) any later version. | ||
10 | */ | ||
11 | |||
12 | #ifndef _ASM_X86_A_OUT_CORE_H | ||
13 | #define _ASM_X86_A_OUT_CORE_H | ||
14 | |||
15 | #ifdef __KERNEL__ | ||
16 | #ifdef CONFIG_X86_32 | ||
17 | |||
18 | #include <linux/user.h> | ||
19 | #include <linux/elfcore.h> | ||
20 | |||
21 | /* | ||
22 | * fill in the user structure for an a.out core dump | ||
23 | */ | ||
24 | static inline void aout_dump_thread(struct pt_regs *regs, struct user *dump) | ||
25 | { | ||
26 | u16 gs; | ||
27 | |||
28 | /* changed the size calculations - should hopefully work better. lbt */ | ||
29 | dump->magic = CMAGIC; | ||
30 | dump->start_code = 0; | ||
31 | dump->start_stack = regs->sp & ~(PAGE_SIZE - 1); | ||
32 | dump->u_tsize = ((unsigned long)current->mm->end_code) >> PAGE_SHIFT; | ||
33 | dump->u_dsize = ((unsigned long)(current->mm->brk + (PAGE_SIZE - 1))) | ||
34 | >> PAGE_SHIFT; | ||
35 | dump->u_dsize -= dump->u_tsize; | ||
36 | dump->u_ssize = 0; | ||
37 | dump->u_debugreg[0] = current->thread.debugreg0; | ||
38 | dump->u_debugreg[1] = current->thread.debugreg1; | ||
39 | dump->u_debugreg[2] = current->thread.debugreg2; | ||
40 | dump->u_debugreg[3] = current->thread.debugreg3; | ||
41 | dump->u_debugreg[4] = 0; | ||
42 | dump->u_debugreg[5] = 0; | ||
43 | dump->u_debugreg[6] = current->thread.debugreg6; | ||
44 | dump->u_debugreg[7] = current->thread.debugreg7; | ||
45 | |||
46 | if (dump->start_stack < TASK_SIZE) | ||
47 | dump->u_ssize = ((unsigned long)(TASK_SIZE - dump->start_stack)) | ||
48 | >> PAGE_SHIFT; | ||
49 | |||
50 | dump->regs.bx = regs->bx; | ||
51 | dump->regs.cx = regs->cx; | ||
52 | dump->regs.dx = regs->dx; | ||
53 | dump->regs.si = regs->si; | ||
54 | dump->regs.di = regs->di; | ||
55 | dump->regs.bp = regs->bp; | ||
56 | dump->regs.ax = regs->ax; | ||
57 | dump->regs.ds = (u16)regs->ds; | ||
58 | dump->regs.es = (u16)regs->es; | ||
59 | dump->regs.fs = (u16)regs->fs; | ||
60 | savesegment(gs, gs); | ||
61 | dump->regs.orig_ax = regs->orig_ax; | ||
62 | dump->regs.ip = regs->ip; | ||
63 | dump->regs.cs = (u16)regs->cs; | ||
64 | dump->regs.flags = regs->flags; | ||
65 | dump->regs.sp = regs->sp; | ||
66 | dump->regs.ss = (u16)regs->ss; | ||
67 | |||
68 | dump->u_fpvalid = dump_fpu(regs, &dump->i387); | ||
69 | } | ||
70 | |||
71 | #endif /* CONFIG_X86_32 */ | ||
72 | #endif /* __KERNEL__ */ | ||
73 | #endif /* _ASM_X86_A_OUT_CORE_H */ | ||
diff --git a/arch/x86/include/asm/a.out.h b/arch/x86/include/asm/a.out.h new file mode 100644 index 000000000000..4684f97a5bbd --- /dev/null +++ b/arch/x86/include/asm/a.out.h | |||
@@ -0,0 +1,20 @@ | |||
1 | #ifndef _ASM_X86_A_OUT_H | ||
2 | #define _ASM_X86_A_OUT_H | ||
3 | |||
4 | struct exec | ||
5 | { | ||
6 | unsigned int a_info; /* Use macros N_MAGIC, etc for access */ | ||
7 | unsigned a_text; /* length of text, in bytes */ | ||
8 | unsigned a_data; /* length of data, in bytes */ | ||
9 | unsigned a_bss; /* length of uninitialized data area for file, in bytes */ | ||
10 | unsigned a_syms; /* length of symbol table data in file, in bytes */ | ||
11 | unsigned a_entry; /* start address */ | ||
12 | unsigned a_trsize; /* length of relocation info for text, in bytes */ | ||
13 | unsigned a_drsize; /* length of relocation info for data, in bytes */ | ||
14 | }; | ||
15 | |||
16 | #define N_TRSIZE(a) ((a).a_trsize) | ||
17 | #define N_DRSIZE(a) ((a).a_drsize) | ||
18 | #define N_SYMSIZE(a) ((a).a_syms) | ||
19 | |||
20 | #endif /* _ASM_X86_A_OUT_H */ | ||
diff --git a/arch/x86/include/asm/acpi.h b/arch/x86/include/asm/acpi.h new file mode 100644 index 000000000000..8d676d8ecde9 --- /dev/null +++ b/arch/x86/include/asm/acpi.h | |||
@@ -0,0 +1,178 @@ | |||
1 | #ifndef _ASM_X86_ACPI_H | ||
2 | #define _ASM_X86_ACPI_H | ||
3 | |||
4 | /* | ||
5 | * Copyright (C) 2001 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com> | ||
6 | * Copyright (C) 2001 Patrick Mochel <mochel@osdl.org> | ||
7 | * | ||
8 | * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify | ||
11 | * it under the terms of the GNU General Public License as published by | ||
12 | * the Free Software Foundation; either version 2 of the License, or | ||
13 | * (at your option) any later version. | ||
14 | * | ||
15 | * This program is distributed in the hope that it will be useful, | ||
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
18 | * GNU General Public License for more details. | ||
19 | * | ||
20 | * You should have received a copy of the GNU General Public License | ||
21 | * along with this program; if not, write to the Free Software | ||
22 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
23 | * | ||
24 | * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
25 | */ | ||
26 | #include <acpi/pdc_intel.h> | ||
27 | |||
28 | #include <asm/numa.h> | ||
29 | #include <asm/processor.h> | ||
30 | #include <asm/mmu.h> | ||
31 | #include <asm/mpspec.h> | ||
32 | |||
33 | #define COMPILER_DEPENDENT_INT64 long long | ||
34 | #define COMPILER_DEPENDENT_UINT64 unsigned long long | ||
35 | |||
36 | /* | ||
37 | * Calling conventions: | ||
38 | * | ||
39 | * ACPI_SYSTEM_XFACE - Interfaces to host OS (handlers, threads) | ||
40 | * ACPI_EXTERNAL_XFACE - External ACPI interfaces | ||
41 | * ACPI_INTERNAL_XFACE - Internal ACPI interfaces | ||
42 | * ACPI_INTERNAL_VAR_XFACE - Internal variable-parameter list interfaces | ||
43 | */ | ||
44 | #define ACPI_SYSTEM_XFACE | ||
45 | #define ACPI_EXTERNAL_XFACE | ||
46 | #define ACPI_INTERNAL_XFACE | ||
47 | #define ACPI_INTERNAL_VAR_XFACE | ||
48 | |||
49 | /* Asm macros */ | ||
50 | |||
51 | #define ACPI_ASM_MACROS | ||
52 | #define BREAKPOINT3 | ||
53 | #define ACPI_DISABLE_IRQS() local_irq_disable() | ||
54 | #define ACPI_ENABLE_IRQS() local_irq_enable() | ||
55 | #define ACPI_FLUSH_CPU_CACHE() wbinvd() | ||
56 | |||
57 | int __acpi_acquire_global_lock(unsigned int *lock); | ||
58 | int __acpi_release_global_lock(unsigned int *lock); | ||
59 | |||
60 | #define ACPI_ACQUIRE_GLOBAL_LOCK(facs, Acq) \ | ||
61 | ((Acq) = __acpi_acquire_global_lock(&facs->global_lock)) | ||
62 | |||
63 | #define ACPI_RELEASE_GLOBAL_LOCK(facs, Acq) \ | ||
64 | ((Acq) = __acpi_release_global_lock(&facs->global_lock)) | ||
65 | |||
66 | /* | ||
67 | * Math helper asm macros | ||
68 | */ | ||
69 | #define ACPI_DIV_64_BY_32(n_hi, n_lo, d32, q32, r32) \ | ||
70 | asm("divl %2;" \ | ||
71 | : "=a"(q32), "=d"(r32) \ | ||
72 | : "r"(d32), \ | ||
73 | "0"(n_lo), "1"(n_hi)) | ||
74 | |||
75 | |||
76 | #define ACPI_SHIFT_RIGHT_64(n_hi, n_lo) \ | ||
77 | asm("shrl $1,%2 ;" \ | ||
78 | "rcrl $1,%3;" \ | ||
79 | : "=r"(n_hi), "=r"(n_lo) \ | ||
80 | : "0"(n_hi), "1"(n_lo)) | ||
81 | |||
82 | #ifdef CONFIG_ACPI | ||
83 | extern int acpi_lapic; | ||
84 | extern int acpi_ioapic; | ||
85 | extern int acpi_noirq; | ||
86 | extern int acpi_strict; | ||
87 | extern int acpi_disabled; | ||
88 | extern int acpi_ht; | ||
89 | extern int acpi_pci_disabled; | ||
90 | extern int acpi_skip_timer_override; | ||
91 | extern int acpi_use_timer_override; | ||
92 | |||
93 | extern u8 acpi_sci_flags; | ||
94 | extern int acpi_sci_override_gsi; | ||
95 | void acpi_pic_sci_set_trigger(unsigned int, u16); | ||
96 | |||
97 | static inline void disable_acpi(void) | ||
98 | { | ||
99 | acpi_disabled = 1; | ||
100 | acpi_ht = 0; | ||
101 | acpi_pci_disabled = 1; | ||
102 | acpi_noirq = 1; | ||
103 | } | ||
104 | |||
105 | /* Fixmap pages to reserve for ACPI boot-time tables (see fixmap.h) */ | ||
106 | #define FIX_ACPI_PAGES 4 | ||
107 | |||
108 | extern int acpi_gsi_to_irq(u32 gsi, unsigned int *irq); | ||
109 | |||
110 | static inline void acpi_noirq_set(void) { acpi_noirq = 1; } | ||
111 | static inline void acpi_disable_pci(void) | ||
112 | { | ||
113 | acpi_pci_disabled = 1; | ||
114 | acpi_noirq_set(); | ||
115 | } | ||
116 | extern int acpi_irq_balance_set(char *str); | ||
117 | |||
118 | /* routines for saving/restoring kernel state */ | ||
119 | extern int acpi_save_state_mem(void); | ||
120 | extern void acpi_restore_state_mem(void); | ||
121 | |||
122 | extern unsigned long acpi_wakeup_address; | ||
123 | |||
124 | /* early initialization routine */ | ||
125 | extern void acpi_reserve_bootmem(void); | ||
126 | |||
127 | /* | ||
128 | * Check if the CPU can handle C2 and deeper | ||
129 | */ | ||
130 | static inline unsigned int acpi_processor_cstate_check(unsigned int max_cstate) | ||
131 | { | ||
132 | /* | ||
133 | * Early models (<=5) of AMD Opterons are not supposed to go into | ||
134 | * C2 state. | ||
135 | * | ||
136 | * Steppings 0x0A and later are good | ||
137 | */ | ||
138 | if (boot_cpu_data.x86 == 0x0F && | ||
139 | boot_cpu_data.x86_vendor == X86_VENDOR_AMD && | ||
140 | boot_cpu_data.x86_model <= 0x05 && | ||
141 | boot_cpu_data.x86_mask < 0x0A) | ||
142 | return 1; | ||
143 | else if (boot_cpu_has(X86_FEATURE_AMDC1E)) | ||
144 | return 1; | ||
145 | else | ||
146 | return max_cstate; | ||
147 | } | ||
148 | |||
149 | #else /* !CONFIG_ACPI */ | ||
150 | |||
151 | #define acpi_lapic 0 | ||
152 | #define acpi_ioapic 0 | ||
153 | static inline void acpi_noirq_set(void) { } | ||
154 | static inline void acpi_disable_pci(void) { } | ||
155 | static inline void disable_acpi(void) { } | ||
156 | |||
157 | #endif /* !CONFIG_ACPI */ | ||
158 | |||
159 | #define ARCH_HAS_POWER_INIT 1 | ||
160 | |||
161 | struct bootnode; | ||
162 | |||
163 | #ifdef CONFIG_ACPI_NUMA | ||
164 | extern int acpi_numa; | ||
165 | extern int acpi_scan_nodes(unsigned long start, unsigned long end); | ||
166 | #define NR_NODE_MEMBLKS (MAX_NUMNODES*2) | ||
167 | extern void acpi_fake_nodes(const struct bootnode *fake_nodes, | ||
168 | int num_nodes); | ||
169 | #else | ||
170 | static inline void acpi_fake_nodes(const struct bootnode *fake_nodes, | ||
171 | int num_nodes) | ||
172 | { | ||
173 | } | ||
174 | #endif | ||
175 | |||
176 | #define acpi_unlazy_tlb(x) leave_mm(x) | ||
177 | |||
178 | #endif /* _ASM_X86_ACPI_H */ | ||
diff --git a/arch/x86/include/asm/agp.h b/arch/x86/include/asm/agp.h new file mode 100644 index 000000000000..9825cd64c9b6 --- /dev/null +++ b/arch/x86/include/asm/agp.h | |||
@@ -0,0 +1,35 @@ | |||
1 | #ifndef _ASM_X86_AGP_H | ||
2 | #define _ASM_X86_AGP_H | ||
3 | |||
4 | #include <asm/pgtable.h> | ||
5 | #include <asm/cacheflush.h> | ||
6 | |||
7 | /* | ||
8 | * Functions to keep the agpgart mappings coherent with the MMU. The | ||
9 | * GART gives the CPU a physical alias of pages in memory. The alias | ||
10 | * region is mapped uncacheable. Make sure there are no conflicting | ||
11 | * mappings with different cachability attributes for the same | ||
12 | * page. This avoids data corruption on some CPUs. | ||
13 | */ | ||
14 | |||
15 | #define map_page_into_agp(page) set_pages_uc(page, 1) | ||
16 | #define unmap_page_from_agp(page) set_pages_wb(page, 1) | ||
17 | |||
18 | /* | ||
19 | * Could use CLFLUSH here if the cpu supports it. But then it would | ||
20 | * need to be called for each cacheline of the whole page so it may | ||
21 | * not be worth it. Would need a page for it. | ||
22 | */ | ||
23 | #define flush_agp_cache() wbinvd() | ||
24 | |||
25 | /* Convert a physical address to an address suitable for the GART. */ | ||
26 | #define phys_to_gart(x) (x) | ||
27 | #define gart_to_phys(x) (x) | ||
28 | |||
29 | /* GATT allocation. Returns/accepts GATT kernel virtual address. */ | ||
30 | #define alloc_gatt_pages(order) \ | ||
31 | ((char *)__get_free_pages(GFP_KERNEL, (order))) | ||
32 | #define free_gatt_pages(table, order) \ | ||
33 | free_pages((unsigned long)(table), (order)) | ||
34 | |||
35 | #endif /* _ASM_X86_AGP_H */ | ||
diff --git a/arch/x86/include/asm/alternative-asm.h b/arch/x86/include/asm/alternative-asm.h new file mode 100644 index 000000000000..e2077d343c33 --- /dev/null +++ b/arch/x86/include/asm/alternative-asm.h | |||
@@ -0,0 +1,22 @@ | |||
1 | #ifdef __ASSEMBLY__ | ||
2 | |||
3 | #ifdef CONFIG_X86_32 | ||
4 | # define X86_ALIGN .long | ||
5 | #else | ||
6 | # define X86_ALIGN .quad | ||
7 | #endif | ||
8 | |||
9 | #ifdef CONFIG_SMP | ||
10 | .macro LOCK_PREFIX | ||
11 | 1: lock | ||
12 | .section .smp_locks,"a" | ||
13 | .align 4 | ||
14 | X86_ALIGN 1b | ||
15 | .previous | ||
16 | .endm | ||
17 | #else | ||
18 | .macro LOCK_PREFIX | ||
19 | .endm | ||
20 | #endif | ||
21 | |||
22 | #endif /* __ASSEMBLY__ */ | ||
diff --git a/arch/x86/include/asm/alternative.h b/arch/x86/include/asm/alternative.h new file mode 100644 index 000000000000..f6aa18eadf71 --- /dev/null +++ b/arch/x86/include/asm/alternative.h | |||
@@ -0,0 +1,183 @@ | |||
1 | #ifndef _ASM_X86_ALTERNATIVE_H | ||
2 | #define _ASM_X86_ALTERNATIVE_H | ||
3 | |||
4 | #include <linux/types.h> | ||
5 | #include <linux/stddef.h> | ||
6 | #include <asm/asm.h> | ||
7 | |||
8 | /* | ||
9 | * Alternative inline assembly for SMP. | ||
10 | * | ||
11 | * The LOCK_PREFIX macro defined here replaces the LOCK and | ||
12 | * LOCK_PREFIX macros used everywhere in the source tree. | ||
13 | * | ||
14 | * SMP alternatives use the same data structures as the other | ||
15 | * alternatives and the X86_FEATURE_UP flag to indicate the case of a | ||
16 | * UP system running a SMP kernel. The existing apply_alternatives() | ||
17 | * works fine for patching a SMP kernel for UP. | ||
18 | * | ||
19 | * The SMP alternative tables can be kept after boot and contain both | ||
20 | * UP and SMP versions of the instructions to allow switching back to | ||
21 | * SMP at runtime, when hotplugging in a new CPU, which is especially | ||
22 | * useful in virtualized environments. | ||
23 | * | ||
24 | * The very common lock prefix is handled as special case in a | ||
25 | * separate table which is a pure address list without replacement ptr | ||
26 | * and size information. That keeps the table sizes small. | ||
27 | */ | ||
28 | |||
29 | #ifdef CONFIG_SMP | ||
30 | #define LOCK_PREFIX \ | ||
31 | ".section .smp_locks,\"a\"\n" \ | ||
32 | _ASM_ALIGN "\n" \ | ||
33 | _ASM_PTR "661f\n" /* address */ \ | ||
34 | ".previous\n" \ | ||
35 | "661:\n\tlock; " | ||
36 | |||
37 | #else /* ! CONFIG_SMP */ | ||
38 | #define LOCK_PREFIX "" | ||
39 | #endif | ||
40 | |||
41 | /* This must be included *after* the definition of LOCK_PREFIX */ | ||
42 | #include <asm/cpufeature.h> | ||
43 | |||
44 | struct alt_instr { | ||
45 | u8 *instr; /* original instruction */ | ||
46 | u8 *replacement; | ||
47 | u8 cpuid; /* cpuid bit set for replacement */ | ||
48 | u8 instrlen; /* length of original instruction */ | ||
49 | u8 replacementlen; /* length of new instruction, <= instrlen */ | ||
50 | u8 pad1; | ||
51 | #ifdef CONFIG_X86_64 | ||
52 | u32 pad2; | ||
53 | #endif | ||
54 | }; | ||
55 | |||
56 | extern void alternative_instructions(void); | ||
57 | extern void apply_alternatives(struct alt_instr *start, struct alt_instr *end); | ||
58 | |||
59 | struct module; | ||
60 | |||
61 | #ifdef CONFIG_SMP | ||
62 | extern void alternatives_smp_module_add(struct module *mod, char *name, | ||
63 | void *locks, void *locks_end, | ||
64 | void *text, void *text_end); | ||
65 | extern void alternatives_smp_module_del(struct module *mod); | ||
66 | extern void alternatives_smp_switch(int smp); | ||
67 | #else | ||
68 | static inline void alternatives_smp_module_add(struct module *mod, char *name, | ||
69 | void *locks, void *locks_end, | ||
70 | void *text, void *text_end) {} | ||
71 | static inline void alternatives_smp_module_del(struct module *mod) {} | ||
72 | static inline void alternatives_smp_switch(int smp) {} | ||
73 | #endif /* CONFIG_SMP */ | ||
74 | |||
75 | const unsigned char *const *find_nop_table(void); | ||
76 | |||
77 | /* | ||
78 | * Alternative instructions for different CPU types or capabilities. | ||
79 | * | ||
80 | * This allows to use optimized instructions even on generic binary | ||
81 | * kernels. | ||
82 | * | ||
83 | * length of oldinstr must be longer or equal the length of newinstr | ||
84 | * It can be padded with nops as needed. | ||
85 | * | ||
86 | * For non barrier like inlines please define new variants | ||
87 | * without volatile and memory clobber. | ||
88 | */ | ||
89 | #define alternative(oldinstr, newinstr, feature) \ | ||
90 | asm volatile ("661:\n\t" oldinstr "\n662:\n" \ | ||
91 | ".section .altinstructions,\"a\"\n" \ | ||
92 | _ASM_ALIGN "\n" \ | ||
93 | _ASM_PTR "661b\n" /* label */ \ | ||
94 | _ASM_PTR "663f\n" /* new instruction */ \ | ||
95 | " .byte %c0\n" /* feature bit */ \ | ||
96 | " .byte 662b-661b\n" /* sourcelen */ \ | ||
97 | " .byte 664f-663f\n" /* replacementlen */ \ | ||
98 | ".previous\n" \ | ||
99 | ".section .altinstr_replacement,\"ax\"\n" \ | ||
100 | "663:\n\t" newinstr "\n664:\n" /* replacement */ \ | ||
101 | ".previous" :: "i" (feature) : "memory") | ||
102 | |||
103 | /* | ||
104 | * Alternative inline assembly with input. | ||
105 | * | ||
106 | * Pecularities: | ||
107 | * No memory clobber here. | ||
108 | * Argument numbers start with 1. | ||
109 | * Best is to use constraints that are fixed size (like (%1) ... "r") | ||
110 | * If you use variable sized constraints like "m" or "g" in the | ||
111 | * replacement make sure to pad to the worst case length. | ||
112 | */ | ||
113 | #define alternative_input(oldinstr, newinstr, feature, input...) \ | ||
114 | asm volatile ("661:\n\t" oldinstr "\n662:\n" \ | ||
115 | ".section .altinstructions,\"a\"\n" \ | ||
116 | _ASM_ALIGN "\n" \ | ||
117 | _ASM_PTR "661b\n" /* label */ \ | ||
118 | _ASM_PTR "663f\n" /* new instruction */ \ | ||
119 | " .byte %c0\n" /* feature bit */ \ | ||
120 | " .byte 662b-661b\n" /* sourcelen */ \ | ||
121 | " .byte 664f-663f\n" /* replacementlen */ \ | ||
122 | ".previous\n" \ | ||
123 | ".section .altinstr_replacement,\"ax\"\n" \ | ||
124 | "663:\n\t" newinstr "\n664:\n" /* replacement */ \ | ||
125 | ".previous" :: "i" (feature), ##input) | ||
126 | |||
127 | /* Like alternative_input, but with a single output argument */ | ||
128 | #define alternative_io(oldinstr, newinstr, feature, output, input...) \ | ||
129 | asm volatile ("661:\n\t" oldinstr "\n662:\n" \ | ||
130 | ".section .altinstructions,\"a\"\n" \ | ||
131 | _ASM_ALIGN "\n" \ | ||
132 | _ASM_PTR "661b\n" /* label */ \ | ||
133 | _ASM_PTR "663f\n" /* new instruction */ \ | ||
134 | " .byte %c[feat]\n" /* feature bit */ \ | ||
135 | " .byte 662b-661b\n" /* sourcelen */ \ | ||
136 | " .byte 664f-663f\n" /* replacementlen */ \ | ||
137 | ".previous\n" \ | ||
138 | ".section .altinstr_replacement,\"ax\"\n" \ | ||
139 | "663:\n\t" newinstr "\n664:\n" /* replacement */ \ | ||
140 | ".previous" : output : [feat] "i" (feature), ##input) | ||
141 | |||
142 | /* | ||
143 | * use this macro(s) if you need more than one output parameter | ||
144 | * in alternative_io | ||
145 | */ | ||
146 | #define ASM_OUTPUT2(a, b) a, b | ||
147 | |||
148 | struct paravirt_patch_site; | ||
149 | #ifdef CONFIG_PARAVIRT | ||
150 | void apply_paravirt(struct paravirt_patch_site *start, | ||
151 | struct paravirt_patch_site *end); | ||
152 | #else | ||
153 | static inline void apply_paravirt(struct paravirt_patch_site *start, | ||
154 | struct paravirt_patch_site *end) | ||
155 | {} | ||
156 | #define __parainstructions NULL | ||
157 | #define __parainstructions_end NULL | ||
158 | #endif | ||
159 | |||
160 | extern void add_nops(void *insns, unsigned int len); | ||
161 | |||
162 | /* | ||
163 | * Clear and restore the kernel write-protection flag on the local CPU. | ||
164 | * Allows the kernel to edit read-only pages. | ||
165 | * Side-effect: any interrupt handler running between save and restore will have | ||
166 | * the ability to write to read-only pages. | ||
167 | * | ||
168 | * Warning: | ||
169 | * Code patching in the UP case is safe if NMIs and MCE handlers are stopped and | ||
170 | * no thread can be preempted in the instructions being modified (no iret to an | ||
171 | * invalid instruction possible) or if the instructions are changed from a | ||
172 | * consistent state to another consistent state atomically. | ||
173 | * More care must be taken when modifying code in the SMP case because of | ||
174 | * Intel's errata. | ||
175 | * On the local CPU you need to be protected again NMI or MCE handlers seeing an | ||
176 | * inconsistent instruction while you patch. | ||
177 | * The _early version expects the memory to already be RW. | ||
178 | */ | ||
179 | |||
180 | extern void *text_poke(void *addr, const void *opcode, size_t len); | ||
181 | extern void *text_poke_early(void *addr, const void *opcode, size_t len); | ||
182 | |||
183 | #endif /* _ASM_X86_ALTERNATIVE_H */ | ||
diff --git a/arch/x86/include/asm/amd_iommu.h b/arch/x86/include/asm/amd_iommu.h new file mode 100644 index 000000000000..f712344329bc --- /dev/null +++ b/arch/x86/include/asm/amd_iommu.h | |||
@@ -0,0 +1,35 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2007-2008 Advanced Micro Devices, Inc. | ||
3 | * Author: Joerg Roedel <joerg.roedel@amd.com> | ||
4 | * Leo Duran <leo.duran@amd.com> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify it | ||
7 | * under the terms of the GNU General Public License version 2 as published | ||
8 | * by the Free Software Foundation. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU General Public License | ||
16 | * along with this program; if not, write to the Free Software | ||
17 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
18 | */ | ||
19 | |||
20 | #ifndef _ASM_X86_AMD_IOMMU_H | ||
21 | #define _ASM_X86_AMD_IOMMU_H | ||
22 | |||
23 | #include <linux/irqreturn.h> | ||
24 | |||
25 | #ifdef CONFIG_AMD_IOMMU | ||
26 | extern int amd_iommu_init(void); | ||
27 | extern int amd_iommu_init_dma_ops(void); | ||
28 | extern void amd_iommu_detect(void); | ||
29 | extern irqreturn_t amd_iommu_int_handler(int irq, void *data); | ||
30 | #else | ||
31 | static inline int amd_iommu_init(void) { return -ENODEV; } | ||
32 | static inline void amd_iommu_detect(void) { } | ||
33 | #endif | ||
34 | |||
35 | #endif /* _ASM_X86_AMD_IOMMU_H */ | ||
diff --git a/arch/x86/include/asm/amd_iommu_types.h b/arch/x86/include/asm/amd_iommu_types.h new file mode 100644 index 000000000000..1a30c0440c6b --- /dev/null +++ b/arch/x86/include/asm/amd_iommu_types.h | |||
@@ -0,0 +1,404 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2007-2008 Advanced Micro Devices, Inc. | ||
3 | * Author: Joerg Roedel <joerg.roedel@amd.com> | ||
4 | * Leo Duran <leo.duran@amd.com> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify it | ||
7 | * under the terms of the GNU General Public License version 2 as published | ||
8 | * by the Free Software Foundation. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU General Public License | ||
16 | * along with this program; if not, write to the Free Software | ||
17 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
18 | */ | ||
19 | |||
20 | #ifndef _ASM_X86_AMD_IOMMU_TYPES_H | ||
21 | #define _ASM_X86_AMD_IOMMU_TYPES_H | ||
22 | |||
23 | #include <linux/types.h> | ||
24 | #include <linux/list.h> | ||
25 | #include <linux/spinlock.h> | ||
26 | |||
27 | /* | ||
28 | * some size calculation constants | ||
29 | */ | ||
30 | #define DEV_TABLE_ENTRY_SIZE 32 | ||
31 | #define ALIAS_TABLE_ENTRY_SIZE 2 | ||
32 | #define RLOOKUP_TABLE_ENTRY_SIZE (sizeof(void *)) | ||
33 | |||
34 | /* Length of the MMIO region for the AMD IOMMU */ | ||
35 | #define MMIO_REGION_LENGTH 0x4000 | ||
36 | |||
37 | /* Capability offsets used by the driver */ | ||
38 | #define MMIO_CAP_HDR_OFFSET 0x00 | ||
39 | #define MMIO_RANGE_OFFSET 0x0c | ||
40 | #define MMIO_MISC_OFFSET 0x10 | ||
41 | |||
42 | /* Masks, shifts and macros to parse the device range capability */ | ||
43 | #define MMIO_RANGE_LD_MASK 0xff000000 | ||
44 | #define MMIO_RANGE_FD_MASK 0x00ff0000 | ||
45 | #define MMIO_RANGE_BUS_MASK 0x0000ff00 | ||
46 | #define MMIO_RANGE_LD_SHIFT 24 | ||
47 | #define MMIO_RANGE_FD_SHIFT 16 | ||
48 | #define MMIO_RANGE_BUS_SHIFT 8 | ||
49 | #define MMIO_GET_LD(x) (((x) & MMIO_RANGE_LD_MASK) >> MMIO_RANGE_LD_SHIFT) | ||
50 | #define MMIO_GET_FD(x) (((x) & MMIO_RANGE_FD_MASK) >> MMIO_RANGE_FD_SHIFT) | ||
51 | #define MMIO_GET_BUS(x) (((x) & MMIO_RANGE_BUS_MASK) >> MMIO_RANGE_BUS_SHIFT) | ||
52 | #define MMIO_MSI_NUM(x) ((x) & 0x1f) | ||
53 | |||
54 | /* Flag masks for the AMD IOMMU exclusion range */ | ||
55 | #define MMIO_EXCL_ENABLE_MASK 0x01ULL | ||
56 | #define MMIO_EXCL_ALLOW_MASK 0x02ULL | ||
57 | |||
58 | /* Used offsets into the MMIO space */ | ||
59 | #define MMIO_DEV_TABLE_OFFSET 0x0000 | ||
60 | #define MMIO_CMD_BUF_OFFSET 0x0008 | ||
61 | #define MMIO_EVT_BUF_OFFSET 0x0010 | ||
62 | #define MMIO_CONTROL_OFFSET 0x0018 | ||
63 | #define MMIO_EXCL_BASE_OFFSET 0x0020 | ||
64 | #define MMIO_EXCL_LIMIT_OFFSET 0x0028 | ||
65 | #define MMIO_CMD_HEAD_OFFSET 0x2000 | ||
66 | #define MMIO_CMD_TAIL_OFFSET 0x2008 | ||
67 | #define MMIO_EVT_HEAD_OFFSET 0x2010 | ||
68 | #define MMIO_EVT_TAIL_OFFSET 0x2018 | ||
69 | #define MMIO_STATUS_OFFSET 0x2020 | ||
70 | |||
71 | /* MMIO status bits */ | ||
72 | #define MMIO_STATUS_COM_WAIT_INT_MASK 0x04 | ||
73 | |||
74 | /* event logging constants */ | ||
75 | #define EVENT_ENTRY_SIZE 0x10 | ||
76 | #define EVENT_TYPE_SHIFT 28 | ||
77 | #define EVENT_TYPE_MASK 0xf | ||
78 | #define EVENT_TYPE_ILL_DEV 0x1 | ||
79 | #define EVENT_TYPE_IO_FAULT 0x2 | ||
80 | #define EVENT_TYPE_DEV_TAB_ERR 0x3 | ||
81 | #define EVENT_TYPE_PAGE_TAB_ERR 0x4 | ||
82 | #define EVENT_TYPE_ILL_CMD 0x5 | ||
83 | #define EVENT_TYPE_CMD_HARD_ERR 0x6 | ||
84 | #define EVENT_TYPE_IOTLB_INV_TO 0x7 | ||
85 | #define EVENT_TYPE_INV_DEV_REQ 0x8 | ||
86 | #define EVENT_DEVID_MASK 0xffff | ||
87 | #define EVENT_DEVID_SHIFT 0 | ||
88 | #define EVENT_DOMID_MASK 0xffff | ||
89 | #define EVENT_DOMID_SHIFT 0 | ||
90 | #define EVENT_FLAGS_MASK 0xfff | ||
91 | #define EVENT_FLAGS_SHIFT 0x10 | ||
92 | |||
93 | /* feature control bits */ | ||
94 | #define CONTROL_IOMMU_EN 0x00ULL | ||
95 | #define CONTROL_HT_TUN_EN 0x01ULL | ||
96 | #define CONTROL_EVT_LOG_EN 0x02ULL | ||
97 | #define CONTROL_EVT_INT_EN 0x03ULL | ||
98 | #define CONTROL_COMWAIT_EN 0x04ULL | ||
99 | #define CONTROL_PASSPW_EN 0x08ULL | ||
100 | #define CONTROL_RESPASSPW_EN 0x09ULL | ||
101 | #define CONTROL_COHERENT_EN 0x0aULL | ||
102 | #define CONTROL_ISOC_EN 0x0bULL | ||
103 | #define CONTROL_CMDBUF_EN 0x0cULL | ||
104 | #define CONTROL_PPFLOG_EN 0x0dULL | ||
105 | #define CONTROL_PPFINT_EN 0x0eULL | ||
106 | |||
107 | /* command specific defines */ | ||
108 | #define CMD_COMPL_WAIT 0x01 | ||
109 | #define CMD_INV_DEV_ENTRY 0x02 | ||
110 | #define CMD_INV_IOMMU_PAGES 0x03 | ||
111 | |||
112 | #define CMD_COMPL_WAIT_STORE_MASK 0x01 | ||
113 | #define CMD_COMPL_WAIT_INT_MASK 0x02 | ||
114 | #define CMD_INV_IOMMU_PAGES_SIZE_MASK 0x01 | ||
115 | #define CMD_INV_IOMMU_PAGES_PDE_MASK 0x02 | ||
116 | |||
117 | #define CMD_INV_IOMMU_ALL_PAGES_ADDRESS 0x7fffffffffffffffULL | ||
118 | |||
119 | /* macros and definitions for device table entries */ | ||
120 | #define DEV_ENTRY_VALID 0x00 | ||
121 | #define DEV_ENTRY_TRANSLATION 0x01 | ||
122 | #define DEV_ENTRY_IR 0x3d | ||
123 | #define DEV_ENTRY_IW 0x3e | ||
124 | #define DEV_ENTRY_NO_PAGE_FAULT 0x62 | ||
125 | #define DEV_ENTRY_EX 0x67 | ||
126 | #define DEV_ENTRY_SYSMGT1 0x68 | ||
127 | #define DEV_ENTRY_SYSMGT2 0x69 | ||
128 | #define DEV_ENTRY_INIT_PASS 0xb8 | ||
129 | #define DEV_ENTRY_EINT_PASS 0xb9 | ||
130 | #define DEV_ENTRY_NMI_PASS 0xba | ||
131 | #define DEV_ENTRY_LINT0_PASS 0xbe | ||
132 | #define DEV_ENTRY_LINT1_PASS 0xbf | ||
133 | #define DEV_ENTRY_MODE_MASK 0x07 | ||
134 | #define DEV_ENTRY_MODE_SHIFT 0x09 | ||
135 | |||
136 | /* constants to configure the command buffer */ | ||
137 | #define CMD_BUFFER_SIZE 8192 | ||
138 | #define CMD_BUFFER_ENTRIES 512 | ||
139 | #define MMIO_CMD_SIZE_SHIFT 56 | ||
140 | #define MMIO_CMD_SIZE_512 (0x9ULL << MMIO_CMD_SIZE_SHIFT) | ||
141 | |||
142 | /* constants for event buffer handling */ | ||
143 | #define EVT_BUFFER_SIZE 8192 /* 512 entries */ | ||
144 | #define EVT_LEN_MASK (0x9ULL << 56) | ||
145 | |||
146 | #define PAGE_MODE_1_LEVEL 0x01 | ||
147 | #define PAGE_MODE_2_LEVEL 0x02 | ||
148 | #define PAGE_MODE_3_LEVEL 0x03 | ||
149 | |||
150 | #define IOMMU_PDE_NL_0 0x000ULL | ||
151 | #define IOMMU_PDE_NL_1 0x200ULL | ||
152 | #define IOMMU_PDE_NL_2 0x400ULL | ||
153 | #define IOMMU_PDE_NL_3 0x600ULL | ||
154 | |||
155 | #define IOMMU_PTE_L2_INDEX(address) (((address) >> 30) & 0x1ffULL) | ||
156 | #define IOMMU_PTE_L1_INDEX(address) (((address) >> 21) & 0x1ffULL) | ||
157 | #define IOMMU_PTE_L0_INDEX(address) (((address) >> 12) & 0x1ffULL) | ||
158 | |||
159 | #define IOMMU_MAP_SIZE_L1 (1ULL << 21) | ||
160 | #define IOMMU_MAP_SIZE_L2 (1ULL << 30) | ||
161 | #define IOMMU_MAP_SIZE_L3 (1ULL << 39) | ||
162 | |||
163 | #define IOMMU_PTE_P (1ULL << 0) | ||
164 | #define IOMMU_PTE_TV (1ULL << 1) | ||
165 | #define IOMMU_PTE_U (1ULL << 59) | ||
166 | #define IOMMU_PTE_FC (1ULL << 60) | ||
167 | #define IOMMU_PTE_IR (1ULL << 61) | ||
168 | #define IOMMU_PTE_IW (1ULL << 62) | ||
169 | |||
170 | #define IOMMU_L1_PDE(address) \ | ||
171 | ((address) | IOMMU_PDE_NL_1 | IOMMU_PTE_P | IOMMU_PTE_IR | IOMMU_PTE_IW) | ||
172 | #define IOMMU_L2_PDE(address) \ | ||
173 | ((address) | IOMMU_PDE_NL_2 | IOMMU_PTE_P | IOMMU_PTE_IR | IOMMU_PTE_IW) | ||
174 | |||
175 | #define IOMMU_PAGE_MASK (((1ULL << 52) - 1) & ~0xfffULL) | ||
176 | #define IOMMU_PTE_PRESENT(pte) ((pte) & IOMMU_PTE_P) | ||
177 | #define IOMMU_PTE_PAGE(pte) (phys_to_virt((pte) & IOMMU_PAGE_MASK)) | ||
178 | #define IOMMU_PTE_MODE(pte) (((pte) >> 9) & 0x07) | ||
179 | |||
180 | #define IOMMU_PROT_MASK 0x03 | ||
181 | #define IOMMU_PROT_IR 0x01 | ||
182 | #define IOMMU_PROT_IW 0x02 | ||
183 | |||
184 | /* IOMMU capabilities */ | ||
185 | #define IOMMU_CAP_IOTLB 24 | ||
186 | #define IOMMU_CAP_NPCACHE 26 | ||
187 | |||
188 | #define MAX_DOMAIN_ID 65536 | ||
189 | |||
190 | /* FIXME: move this macro to <linux/pci.h> */ | ||
191 | #define PCI_BUS(x) (((x) >> 8) & 0xff) | ||
192 | |||
193 | /* | ||
194 | * This structure contains generic data for IOMMU protection domains | ||
195 | * independent of their use. | ||
196 | */ | ||
197 | struct protection_domain { | ||
198 | spinlock_t lock; /* mostly used to lock the page table*/ | ||
199 | u16 id; /* the domain id written to the device table */ | ||
200 | int mode; /* paging mode (0-6 levels) */ | ||
201 | u64 *pt_root; /* page table root pointer */ | ||
202 | void *priv; /* private data */ | ||
203 | }; | ||
204 | |||
205 | /* | ||
206 | * Data container for a dma_ops specific protection domain | ||
207 | */ | ||
208 | struct dma_ops_domain { | ||
209 | struct list_head list; | ||
210 | |||
211 | /* generic protection domain information */ | ||
212 | struct protection_domain domain; | ||
213 | |||
214 | /* size of the aperture for the mappings */ | ||
215 | unsigned long aperture_size; | ||
216 | |||
217 | /* address we start to search for free addresses */ | ||
218 | unsigned long next_bit; | ||
219 | |||
220 | /* address allocation bitmap */ | ||
221 | unsigned long *bitmap; | ||
222 | |||
223 | /* | ||
224 | * Array of PTE pages for the aperture. In this array we save all the | ||
225 | * leaf pages of the domain page table used for the aperture. This way | ||
226 | * we don't need to walk the page table to find a specific PTE. We can | ||
227 | * just calculate its address in constant time. | ||
228 | */ | ||
229 | u64 **pte_pages; | ||
230 | |||
231 | /* This will be set to true when TLB needs to be flushed */ | ||
232 | bool need_flush; | ||
233 | |||
234 | /* | ||
235 | * if this is a preallocated domain, keep the device for which it was | ||
236 | * preallocated in this variable | ||
237 | */ | ||
238 | u16 target_dev; | ||
239 | }; | ||
240 | |||
241 | /* | ||
242 | * Structure where we save information about one hardware AMD IOMMU in the | ||
243 | * system. | ||
244 | */ | ||
245 | struct amd_iommu { | ||
246 | struct list_head list; | ||
247 | |||
248 | /* locks the accesses to the hardware */ | ||
249 | spinlock_t lock; | ||
250 | |||
251 | /* Pointer to PCI device of this IOMMU */ | ||
252 | struct pci_dev *dev; | ||
253 | |||
254 | /* | ||
255 | * Capability pointer. There could be more than one IOMMU per PCI | ||
256 | * device function if there are more than one AMD IOMMU capability | ||
257 | * pointers. | ||
258 | */ | ||
259 | u16 cap_ptr; | ||
260 | |||
261 | /* physical address of MMIO space */ | ||
262 | u64 mmio_phys; | ||
263 | /* virtual address of MMIO space */ | ||
264 | u8 *mmio_base; | ||
265 | |||
266 | /* capabilities of that IOMMU read from ACPI */ | ||
267 | u32 cap; | ||
268 | |||
269 | /* pci domain of this IOMMU */ | ||
270 | u16 pci_seg; | ||
271 | |||
272 | /* first device this IOMMU handles. read from PCI */ | ||
273 | u16 first_device; | ||
274 | /* last device this IOMMU handles. read from PCI */ | ||
275 | u16 last_device; | ||
276 | |||
277 | /* start of exclusion range of that IOMMU */ | ||
278 | u64 exclusion_start; | ||
279 | /* length of exclusion range of that IOMMU */ | ||
280 | u64 exclusion_length; | ||
281 | |||
282 | /* command buffer virtual address */ | ||
283 | u8 *cmd_buf; | ||
284 | /* size of command buffer */ | ||
285 | u32 cmd_buf_size; | ||
286 | |||
287 | /* event buffer virtual address */ | ||
288 | u8 *evt_buf; | ||
289 | /* size of event buffer */ | ||
290 | u32 evt_buf_size; | ||
291 | /* MSI number for event interrupt */ | ||
292 | u16 evt_msi_num; | ||
293 | |||
294 | /* if one, we need to send a completion wait command */ | ||
295 | int need_sync; | ||
296 | |||
297 | /* true if interrupts for this IOMMU are already enabled */ | ||
298 | bool int_enabled; | ||
299 | |||
300 | /* default dma_ops domain for that IOMMU */ | ||
301 | struct dma_ops_domain *default_dom; | ||
302 | }; | ||
303 | |||
304 | /* | ||
305 | * List with all IOMMUs in the system. This list is not locked because it is | ||
306 | * only written and read at driver initialization or suspend time | ||
307 | */ | ||
308 | extern struct list_head amd_iommu_list; | ||
309 | |||
310 | /* | ||
311 | * Structure defining one entry in the device table | ||
312 | */ | ||
313 | struct dev_table_entry { | ||
314 | u32 data[8]; | ||
315 | }; | ||
316 | |||
317 | /* | ||
318 | * One entry for unity mappings parsed out of the ACPI table. | ||
319 | */ | ||
320 | struct unity_map_entry { | ||
321 | struct list_head list; | ||
322 | |||
323 | /* starting device id this entry is used for (including) */ | ||
324 | u16 devid_start; | ||
325 | /* end device id this entry is used for (including) */ | ||
326 | u16 devid_end; | ||
327 | |||
328 | /* start address to unity map (including) */ | ||
329 | u64 address_start; | ||
330 | /* end address to unity map (including) */ | ||
331 | u64 address_end; | ||
332 | |||
333 | /* required protection */ | ||
334 | int prot; | ||
335 | }; | ||
336 | |||
337 | /* | ||
338 | * List of all unity mappings. It is not locked because as runtime it is only | ||
339 | * read. It is created at ACPI table parsing time. | ||
340 | */ | ||
341 | extern struct list_head amd_iommu_unity_map; | ||
342 | |||
343 | /* | ||
344 | * Data structures for device handling | ||
345 | */ | ||
346 | |||
347 | /* | ||
348 | * Device table used by hardware. Read and write accesses by software are | ||
349 | * locked with the amd_iommu_pd_table lock. | ||
350 | */ | ||
351 | extern struct dev_table_entry *amd_iommu_dev_table; | ||
352 | |||
353 | /* | ||
354 | * Alias table to find requestor ids to device ids. Not locked because only | ||
355 | * read on runtime. | ||
356 | */ | ||
357 | extern u16 *amd_iommu_alias_table; | ||
358 | |||
359 | /* | ||
360 | * Reverse lookup table to find the IOMMU which translates a specific device. | ||
361 | */ | ||
362 | extern struct amd_iommu **amd_iommu_rlookup_table; | ||
363 | |||
364 | /* size of the dma_ops aperture as power of 2 */ | ||
365 | extern unsigned amd_iommu_aperture_order; | ||
366 | |||
367 | /* largest PCI device id we expect translation requests for */ | ||
368 | extern u16 amd_iommu_last_bdf; | ||
369 | |||
370 | /* data structures for protection domain handling */ | ||
371 | extern struct protection_domain **amd_iommu_pd_table; | ||
372 | |||
373 | /* allocation bitmap for domain ids */ | ||
374 | extern unsigned long *amd_iommu_pd_alloc_bitmap; | ||
375 | |||
376 | /* will be 1 if device isolation is enabled */ | ||
377 | extern int amd_iommu_isolate; | ||
378 | |||
379 | /* | ||
380 | * If true, the addresses will be flushed on unmap time, not when | ||
381 | * they are reused | ||
382 | */ | ||
383 | extern bool amd_iommu_unmap_flush; | ||
384 | |||
385 | /* takes a PCI device id and prints it out in a readable form */ | ||
386 | static inline void print_devid(u16 devid, int nl) | ||
387 | { | ||
388 | int bus = devid >> 8; | ||
389 | int dev = devid >> 3 & 0x1f; | ||
390 | int fn = devid & 0x07; | ||
391 | |||
392 | printk("%02x:%02x.%x", bus, dev, fn); | ||
393 | if (nl) | ||
394 | printk("\n"); | ||
395 | } | ||
396 | |||
397 | /* takes bus and device/function and returns the device id | ||
398 | * FIXME: should that be in generic PCI code? */ | ||
399 | static inline u16 calc_devid(u8 bus, u8 devfn) | ||
400 | { | ||
401 | return (((u16)bus) << 8) | devfn; | ||
402 | } | ||
403 | |||
404 | #endif /* _ASM_X86_AMD_IOMMU_TYPES_H */ | ||
diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h new file mode 100644 index 000000000000..3b1510b4fc57 --- /dev/null +++ b/arch/x86/include/asm/apic.h | |||
@@ -0,0 +1,199 @@ | |||
1 | #ifndef _ASM_X86_APIC_H | ||
2 | #define _ASM_X86_APIC_H | ||
3 | |||
4 | #include <linux/pm.h> | ||
5 | #include <linux/delay.h> | ||
6 | |||
7 | #include <asm/alternative.h> | ||
8 | #include <asm/fixmap.h> | ||
9 | #include <asm/apicdef.h> | ||
10 | #include <asm/processor.h> | ||
11 | #include <asm/system.h> | ||
12 | #include <asm/cpufeature.h> | ||
13 | #include <asm/msr.h> | ||
14 | |||
15 | #define ARCH_APICTIMER_STOPS_ON_C3 1 | ||
16 | |||
17 | /* | ||
18 | * Debugging macros | ||
19 | */ | ||
20 | #define APIC_QUIET 0 | ||
21 | #define APIC_VERBOSE 1 | ||
22 | #define APIC_DEBUG 2 | ||
23 | |||
24 | /* | ||
25 | * Define the default level of output to be very little | ||
26 | * This can be turned up by using apic=verbose for more | ||
27 | * information and apic=debug for _lots_ of information. | ||
28 | * apic_verbosity is defined in apic.c | ||
29 | */ | ||
30 | #define apic_printk(v, s, a...) do { \ | ||
31 | if ((v) <= apic_verbosity) \ | ||
32 | printk(s, ##a); \ | ||
33 | } while (0) | ||
34 | |||
35 | |||
36 | extern void generic_apic_probe(void); | ||
37 | |||
38 | #ifdef CONFIG_X86_LOCAL_APIC | ||
39 | |||
40 | extern unsigned int apic_verbosity; | ||
41 | extern int local_apic_timer_c2_ok; | ||
42 | |||
43 | extern int disable_apic; | ||
44 | /* | ||
45 | * Basic functions accessing APICs. | ||
46 | */ | ||
47 | #ifdef CONFIG_PARAVIRT | ||
48 | #include <asm/paravirt.h> | ||
49 | #else | ||
50 | #define setup_boot_clock setup_boot_APIC_clock | ||
51 | #define setup_secondary_clock setup_secondary_APIC_clock | ||
52 | #endif | ||
53 | |||
54 | extern int is_vsmp_box(void); | ||
55 | extern void xapic_wait_icr_idle(void); | ||
56 | extern u32 safe_xapic_wait_icr_idle(void); | ||
57 | extern u64 xapic_icr_read(void); | ||
58 | extern void xapic_icr_write(u32, u32); | ||
59 | extern int setup_profiling_timer(unsigned int); | ||
60 | |||
61 | static inline void native_apic_mem_write(u32 reg, u32 v) | ||
62 | { | ||
63 | volatile u32 *addr = (volatile u32 *)(APIC_BASE + reg); | ||
64 | |||
65 | alternative_io("movl %0, %1", "xchgl %0, %1", X86_FEATURE_11AP, | ||
66 | ASM_OUTPUT2("=r" (v), "=m" (*addr)), | ||
67 | ASM_OUTPUT2("0" (v), "m" (*addr))); | ||
68 | } | ||
69 | |||
70 | static inline u32 native_apic_mem_read(u32 reg) | ||
71 | { | ||
72 | return *((volatile u32 *)(APIC_BASE + reg)); | ||
73 | } | ||
74 | |||
75 | static inline void native_apic_msr_write(u32 reg, u32 v) | ||
76 | { | ||
77 | if (reg == APIC_DFR || reg == APIC_ID || reg == APIC_LDR || | ||
78 | reg == APIC_LVR) | ||
79 | return; | ||
80 | |||
81 | wrmsr(APIC_BASE_MSR + (reg >> 4), v, 0); | ||
82 | } | ||
83 | |||
84 | static inline u32 native_apic_msr_read(u32 reg) | ||
85 | { | ||
86 | u32 low, high; | ||
87 | |||
88 | if (reg == APIC_DFR) | ||
89 | return -1; | ||
90 | |||
91 | rdmsr(APIC_BASE_MSR + (reg >> 4), low, high); | ||
92 | return low; | ||
93 | } | ||
94 | |||
95 | #ifndef CONFIG_X86_32 | ||
96 | extern int x2apic, x2apic_preenabled; | ||
97 | extern void check_x2apic(void); | ||
98 | extern void enable_x2apic(void); | ||
99 | extern void enable_IR_x2apic(void); | ||
100 | extern void x2apic_icr_write(u32 low, u32 id); | ||
101 | static inline int x2apic_enabled(void) | ||
102 | { | ||
103 | int msr, msr2; | ||
104 | |||
105 | if (!cpu_has_x2apic) | ||
106 | return 0; | ||
107 | |||
108 | rdmsr(MSR_IA32_APICBASE, msr, msr2); | ||
109 | if (msr & X2APIC_ENABLE) | ||
110 | return 1; | ||
111 | return 0; | ||
112 | } | ||
113 | #else | ||
114 | #define x2apic_enabled() 0 | ||
115 | #endif | ||
116 | |||
117 | struct apic_ops { | ||
118 | u32 (*read)(u32 reg); | ||
119 | void (*write)(u32 reg, u32 v); | ||
120 | u64 (*icr_read)(void); | ||
121 | void (*icr_write)(u32 low, u32 high); | ||
122 | void (*wait_icr_idle)(void); | ||
123 | u32 (*safe_wait_icr_idle)(void); | ||
124 | }; | ||
125 | |||
126 | extern struct apic_ops *apic_ops; | ||
127 | |||
128 | #define apic_read (apic_ops->read) | ||
129 | #define apic_write (apic_ops->write) | ||
130 | #define apic_icr_read (apic_ops->icr_read) | ||
131 | #define apic_icr_write (apic_ops->icr_write) | ||
132 | #define apic_wait_icr_idle (apic_ops->wait_icr_idle) | ||
133 | #define safe_apic_wait_icr_idle (apic_ops->safe_wait_icr_idle) | ||
134 | |||
135 | extern int get_physical_broadcast(void); | ||
136 | |||
137 | #ifdef CONFIG_X86_64 | ||
138 | static inline void ack_x2APIC_irq(void) | ||
139 | { | ||
140 | /* Docs say use 0 for future compatibility */ | ||
141 | native_apic_msr_write(APIC_EOI, 0); | ||
142 | } | ||
143 | #endif | ||
144 | |||
145 | |||
146 | static inline void ack_APIC_irq(void) | ||
147 | { | ||
148 | /* | ||
149 | * ack_APIC_irq() actually gets compiled as a single instruction | ||
150 | * ... yummie. | ||
151 | */ | ||
152 | |||
153 | /* Docs say use 0 for future compatibility */ | ||
154 | apic_write(APIC_EOI, 0); | ||
155 | } | ||
156 | |||
157 | extern int lapic_get_maxlvt(void); | ||
158 | extern void clear_local_APIC(void); | ||
159 | extern void connect_bsp_APIC(void); | ||
160 | extern void disconnect_bsp_APIC(int virt_wire_setup); | ||
161 | extern void disable_local_APIC(void); | ||
162 | extern void lapic_shutdown(void); | ||
163 | extern int verify_local_APIC(void); | ||
164 | extern void cache_APIC_registers(void); | ||
165 | extern void sync_Arb_IDs(void); | ||
166 | extern void init_bsp_APIC(void); | ||
167 | extern void setup_local_APIC(void); | ||
168 | extern void end_local_APIC_setup(void); | ||
169 | extern void init_apic_mappings(void); | ||
170 | extern void setup_boot_APIC_clock(void); | ||
171 | extern void setup_secondary_APIC_clock(void); | ||
172 | extern int APIC_init_uniprocessor(void); | ||
173 | extern void enable_NMI_through_LVT0(void); | ||
174 | |||
175 | /* | ||
176 | * On 32bit this is mach-xxx local | ||
177 | */ | ||
178 | #ifdef CONFIG_X86_64 | ||
179 | extern void early_init_lapic_mapping(void); | ||
180 | extern int apic_is_clustered_box(void); | ||
181 | #else | ||
182 | static inline int apic_is_clustered_box(void) | ||
183 | { | ||
184 | return 0; | ||
185 | } | ||
186 | #endif | ||
187 | |||
188 | extern u8 setup_APIC_eilvt_mce(u8 vector, u8 msg_type, u8 mask); | ||
189 | extern u8 setup_APIC_eilvt_ibs(u8 vector, u8 msg_type, u8 mask); | ||
190 | |||
191 | |||
192 | #else /* !CONFIG_X86_LOCAL_APIC */ | ||
193 | static inline void lapic_shutdown(void) { } | ||
194 | #define local_apic_timer_c2_ok 1 | ||
195 | static inline void init_apic_mappings(void) { } | ||
196 | |||
197 | #endif /* !CONFIG_X86_LOCAL_APIC */ | ||
198 | |||
199 | #endif /* _ASM_X86_APIC_H */ | ||
diff --git a/arch/x86/include/asm/apicdef.h b/arch/x86/include/asm/apicdef.h new file mode 100644 index 000000000000..63134e31e8b9 --- /dev/null +++ b/arch/x86/include/asm/apicdef.h | |||
@@ -0,0 +1,417 @@ | |||
1 | #ifndef _ASM_X86_APICDEF_H | ||
2 | #define _ASM_X86_APICDEF_H | ||
3 | |||
4 | /* | ||
5 | * Constants for various Intel APICs. (local APIC, IOAPIC, etc.) | ||
6 | * | ||
7 | * Alan Cox <Alan.Cox@linux.org>, 1995. | ||
8 | * Ingo Molnar <mingo@redhat.com>, 1999, 2000 | ||
9 | */ | ||
10 | |||
11 | #define APIC_DEFAULT_PHYS_BASE 0xfee00000 | ||
12 | |||
13 | #define APIC_ID 0x20 | ||
14 | |||
15 | #define APIC_LVR 0x30 | ||
16 | #define APIC_LVR_MASK 0xFF00FF | ||
17 | #define GET_APIC_VERSION(x) ((x) & 0xFFu) | ||
18 | #define GET_APIC_MAXLVT(x) (((x) >> 16) & 0xFFu) | ||
19 | #ifdef CONFIG_X86_32 | ||
20 | # define APIC_INTEGRATED(x) ((x) & 0xF0u) | ||
21 | #else | ||
22 | # define APIC_INTEGRATED(x) (1) | ||
23 | #endif | ||
24 | #define APIC_XAPIC(x) ((x) >= 0x14) | ||
25 | #define APIC_TASKPRI 0x80 | ||
26 | #define APIC_TPRI_MASK 0xFFu | ||
27 | #define APIC_ARBPRI 0x90 | ||
28 | #define APIC_ARBPRI_MASK 0xFFu | ||
29 | #define APIC_PROCPRI 0xA0 | ||
30 | #define APIC_EOI 0xB0 | ||
31 | #define APIC_EIO_ACK 0x0 | ||
32 | #define APIC_RRR 0xC0 | ||
33 | #define APIC_LDR 0xD0 | ||
34 | #define APIC_LDR_MASK (0xFFu << 24) | ||
35 | #define GET_APIC_LOGICAL_ID(x) (((x) >> 24) & 0xFFu) | ||
36 | #define SET_APIC_LOGICAL_ID(x) (((x) << 24)) | ||
37 | #define APIC_ALL_CPUS 0xFFu | ||
38 | #define APIC_DFR 0xE0 | ||
39 | #define APIC_DFR_CLUSTER 0x0FFFFFFFul | ||
40 | #define APIC_DFR_FLAT 0xFFFFFFFFul | ||
41 | #define APIC_SPIV 0xF0 | ||
42 | #define APIC_SPIV_FOCUS_DISABLED (1 << 9) | ||
43 | #define APIC_SPIV_APIC_ENABLED (1 << 8) | ||
44 | #define APIC_ISR 0x100 | ||
45 | #define APIC_ISR_NR 0x8 /* Number of 32 bit ISR registers. */ | ||
46 | #define APIC_TMR 0x180 | ||
47 | #define APIC_IRR 0x200 | ||
48 | #define APIC_ESR 0x280 | ||
49 | #define APIC_ESR_SEND_CS 0x00001 | ||
50 | #define APIC_ESR_RECV_CS 0x00002 | ||
51 | #define APIC_ESR_SEND_ACC 0x00004 | ||
52 | #define APIC_ESR_RECV_ACC 0x00008 | ||
53 | #define APIC_ESR_SENDILL 0x00020 | ||
54 | #define APIC_ESR_RECVILL 0x00040 | ||
55 | #define APIC_ESR_ILLREGA 0x00080 | ||
56 | #define APIC_ICR 0x300 | ||
57 | #define APIC_DEST_SELF 0x40000 | ||
58 | #define APIC_DEST_ALLINC 0x80000 | ||
59 | #define APIC_DEST_ALLBUT 0xC0000 | ||
60 | #define APIC_ICR_RR_MASK 0x30000 | ||
61 | #define APIC_ICR_RR_INVALID 0x00000 | ||
62 | #define APIC_ICR_RR_INPROG 0x10000 | ||
63 | #define APIC_ICR_RR_VALID 0x20000 | ||
64 | #define APIC_INT_LEVELTRIG 0x08000 | ||
65 | #define APIC_INT_ASSERT 0x04000 | ||
66 | #define APIC_ICR_BUSY 0x01000 | ||
67 | #define APIC_DEST_LOGICAL 0x00800 | ||
68 | #define APIC_DEST_PHYSICAL 0x00000 | ||
69 | #define APIC_DM_FIXED 0x00000 | ||
70 | #define APIC_DM_LOWEST 0x00100 | ||
71 | #define APIC_DM_SMI 0x00200 | ||
72 | #define APIC_DM_REMRD 0x00300 | ||
73 | #define APIC_DM_NMI 0x00400 | ||
74 | #define APIC_DM_INIT 0x00500 | ||
75 | #define APIC_DM_STARTUP 0x00600 | ||
76 | #define APIC_DM_EXTINT 0x00700 | ||
77 | #define APIC_VECTOR_MASK 0x000FF | ||
78 | #define APIC_ICR2 0x310 | ||
79 | #define GET_APIC_DEST_FIELD(x) (((x) >> 24) & 0xFF) | ||
80 | #define SET_APIC_DEST_FIELD(x) ((x) << 24) | ||
81 | #define APIC_LVTT 0x320 | ||
82 | #define APIC_LVTTHMR 0x330 | ||
83 | #define APIC_LVTPC 0x340 | ||
84 | #define APIC_LVT0 0x350 | ||
85 | #define APIC_LVT_TIMER_BASE_MASK (0x3 << 18) | ||
86 | #define GET_APIC_TIMER_BASE(x) (((x) >> 18) & 0x3) | ||
87 | #define SET_APIC_TIMER_BASE(x) (((x) << 18)) | ||
88 | #define APIC_TIMER_BASE_CLKIN 0x0 | ||
89 | #define APIC_TIMER_BASE_TMBASE 0x1 | ||
90 | #define APIC_TIMER_BASE_DIV 0x2 | ||
91 | #define APIC_LVT_TIMER_PERIODIC (1 << 17) | ||
92 | #define APIC_LVT_MASKED (1 << 16) | ||
93 | #define APIC_LVT_LEVEL_TRIGGER (1 << 15) | ||
94 | #define APIC_LVT_REMOTE_IRR (1 << 14) | ||
95 | #define APIC_INPUT_POLARITY (1 << 13) | ||
96 | #define APIC_SEND_PENDING (1 << 12) | ||
97 | #define APIC_MODE_MASK 0x700 | ||
98 | #define GET_APIC_DELIVERY_MODE(x) (((x) >> 8) & 0x7) | ||
99 | #define SET_APIC_DELIVERY_MODE(x, y) (((x) & ~0x700) | ((y) << 8)) | ||
100 | #define APIC_MODE_FIXED 0x0 | ||
101 | #define APIC_MODE_NMI 0x4 | ||
102 | #define APIC_MODE_EXTINT 0x7 | ||
103 | #define APIC_LVT1 0x360 | ||
104 | #define APIC_LVTERR 0x370 | ||
105 | #define APIC_TMICT 0x380 | ||
106 | #define APIC_TMCCT 0x390 | ||
107 | #define APIC_TDCR 0x3E0 | ||
108 | #define APIC_SELF_IPI 0x3F0 | ||
109 | #define APIC_TDR_DIV_TMBASE (1 << 2) | ||
110 | #define APIC_TDR_DIV_1 0xB | ||
111 | #define APIC_TDR_DIV_2 0x0 | ||
112 | #define APIC_TDR_DIV_4 0x1 | ||
113 | #define APIC_TDR_DIV_8 0x2 | ||
114 | #define APIC_TDR_DIV_16 0x3 | ||
115 | #define APIC_TDR_DIV_32 0x8 | ||
116 | #define APIC_TDR_DIV_64 0x9 | ||
117 | #define APIC_TDR_DIV_128 0xA | ||
118 | #define APIC_EILVT0 0x500 | ||
119 | #define APIC_EILVT_NR_AMD_K8 1 /* # of extended interrupts */ | ||
120 | #define APIC_EILVT_NR_AMD_10H 4 | ||
121 | #define APIC_EILVT_LVTOFF(x) (((x) >> 4) & 0xF) | ||
122 | #define APIC_EILVT_MSG_FIX 0x0 | ||
123 | #define APIC_EILVT_MSG_SMI 0x2 | ||
124 | #define APIC_EILVT_MSG_NMI 0x4 | ||
125 | #define APIC_EILVT_MSG_EXT 0x7 | ||
126 | #define APIC_EILVT_MASKED (1 << 16) | ||
127 | #define APIC_EILVT1 0x510 | ||
128 | #define APIC_EILVT2 0x520 | ||
129 | #define APIC_EILVT3 0x530 | ||
130 | |||
131 | #define APIC_BASE (fix_to_virt(FIX_APIC_BASE)) | ||
132 | #define APIC_BASE_MSR 0x800 | ||
133 | #define X2APIC_ENABLE (1UL << 10) | ||
134 | |||
135 | #ifdef CONFIG_X86_32 | ||
136 | # define MAX_IO_APICS 64 | ||
137 | #else | ||
138 | # define MAX_IO_APICS 128 | ||
139 | # define MAX_LOCAL_APIC 32768 | ||
140 | #endif | ||
141 | |||
142 | /* | ||
143 | * All x86-64 systems are xAPIC compatible. | ||
144 | * In the following, "apicid" is a physical APIC ID. | ||
145 | */ | ||
146 | #define XAPIC_DEST_CPUS_SHIFT 4 | ||
147 | #define XAPIC_DEST_CPUS_MASK ((1u << XAPIC_DEST_CPUS_SHIFT) - 1) | ||
148 | #define XAPIC_DEST_CLUSTER_MASK (XAPIC_DEST_CPUS_MASK << XAPIC_DEST_CPUS_SHIFT) | ||
149 | #define APIC_CLUSTER(apicid) ((apicid) & XAPIC_DEST_CLUSTER_MASK) | ||
150 | #define APIC_CLUSTERID(apicid) (APIC_CLUSTER(apicid) >> XAPIC_DEST_CPUS_SHIFT) | ||
151 | #define APIC_CPUID(apicid) ((apicid) & XAPIC_DEST_CPUS_MASK) | ||
152 | #define NUM_APIC_CLUSTERS ((BAD_APICID + 1) >> XAPIC_DEST_CPUS_SHIFT) | ||
153 | |||
154 | /* | ||
155 | * the local APIC register structure, memory mapped. Not terribly well | ||
156 | * tested, but we might eventually use this one in the future - the | ||
157 | * problem why we cannot use it right now is the P5 APIC, it has an | ||
158 | * errata which cannot take 8-bit reads and writes, only 32-bit ones ... | ||
159 | */ | ||
160 | #define u32 unsigned int | ||
161 | |||
162 | struct local_apic { | ||
163 | |||
164 | /*000*/ struct { u32 __reserved[4]; } __reserved_01; | ||
165 | |||
166 | /*010*/ struct { u32 __reserved[4]; } __reserved_02; | ||
167 | |||
168 | /*020*/ struct { /* APIC ID Register */ | ||
169 | u32 __reserved_1 : 24, | ||
170 | phys_apic_id : 4, | ||
171 | __reserved_2 : 4; | ||
172 | u32 __reserved[3]; | ||
173 | } id; | ||
174 | |||
175 | /*030*/ const | ||
176 | struct { /* APIC Version Register */ | ||
177 | u32 version : 8, | ||
178 | __reserved_1 : 8, | ||
179 | max_lvt : 8, | ||
180 | __reserved_2 : 8; | ||
181 | u32 __reserved[3]; | ||
182 | } version; | ||
183 | |||
184 | /*040*/ struct { u32 __reserved[4]; } __reserved_03; | ||
185 | |||
186 | /*050*/ struct { u32 __reserved[4]; } __reserved_04; | ||
187 | |||
188 | /*060*/ struct { u32 __reserved[4]; } __reserved_05; | ||
189 | |||
190 | /*070*/ struct { u32 __reserved[4]; } __reserved_06; | ||
191 | |||
192 | /*080*/ struct { /* Task Priority Register */ | ||
193 | u32 priority : 8, | ||
194 | __reserved_1 : 24; | ||
195 | u32 __reserved_2[3]; | ||
196 | } tpr; | ||
197 | |||
198 | /*090*/ const | ||
199 | struct { /* Arbitration Priority Register */ | ||
200 | u32 priority : 8, | ||
201 | __reserved_1 : 24; | ||
202 | u32 __reserved_2[3]; | ||
203 | } apr; | ||
204 | |||
205 | /*0A0*/ const | ||
206 | struct { /* Processor Priority Register */ | ||
207 | u32 priority : 8, | ||
208 | __reserved_1 : 24; | ||
209 | u32 __reserved_2[3]; | ||
210 | } ppr; | ||
211 | |||
212 | /*0B0*/ struct { /* End Of Interrupt Register */ | ||
213 | u32 eoi; | ||
214 | u32 __reserved[3]; | ||
215 | } eoi; | ||
216 | |||
217 | /*0C0*/ struct { u32 __reserved[4]; } __reserved_07; | ||
218 | |||
219 | /*0D0*/ struct { /* Logical Destination Register */ | ||
220 | u32 __reserved_1 : 24, | ||
221 | logical_dest : 8; | ||
222 | u32 __reserved_2[3]; | ||
223 | } ldr; | ||
224 | |||
225 | /*0E0*/ struct { /* Destination Format Register */ | ||
226 | u32 __reserved_1 : 28, | ||
227 | model : 4; | ||
228 | u32 __reserved_2[3]; | ||
229 | } dfr; | ||
230 | |||
231 | /*0F0*/ struct { /* Spurious Interrupt Vector Register */ | ||
232 | u32 spurious_vector : 8, | ||
233 | apic_enabled : 1, | ||
234 | focus_cpu : 1, | ||
235 | __reserved_2 : 22; | ||
236 | u32 __reserved_3[3]; | ||
237 | } svr; | ||
238 | |||
239 | /*100*/ struct { /* In Service Register */ | ||
240 | /*170*/ u32 bitfield; | ||
241 | u32 __reserved[3]; | ||
242 | } isr [8]; | ||
243 | |||
244 | /*180*/ struct { /* Trigger Mode Register */ | ||
245 | /*1F0*/ u32 bitfield; | ||
246 | u32 __reserved[3]; | ||
247 | } tmr [8]; | ||
248 | |||
249 | /*200*/ struct { /* Interrupt Request Register */ | ||
250 | /*270*/ u32 bitfield; | ||
251 | u32 __reserved[3]; | ||
252 | } irr [8]; | ||
253 | |||
254 | /*280*/ union { /* Error Status Register */ | ||
255 | struct { | ||
256 | u32 send_cs_error : 1, | ||
257 | receive_cs_error : 1, | ||
258 | send_accept_error : 1, | ||
259 | receive_accept_error : 1, | ||
260 | __reserved_1 : 1, | ||
261 | send_illegal_vector : 1, | ||
262 | receive_illegal_vector : 1, | ||
263 | illegal_register_address : 1, | ||
264 | __reserved_2 : 24; | ||
265 | u32 __reserved_3[3]; | ||
266 | } error_bits; | ||
267 | struct { | ||
268 | u32 errors; | ||
269 | u32 __reserved_3[3]; | ||
270 | } all_errors; | ||
271 | } esr; | ||
272 | |||
273 | /*290*/ struct { u32 __reserved[4]; } __reserved_08; | ||
274 | |||
275 | /*2A0*/ struct { u32 __reserved[4]; } __reserved_09; | ||
276 | |||
277 | /*2B0*/ struct { u32 __reserved[4]; } __reserved_10; | ||
278 | |||
279 | /*2C0*/ struct { u32 __reserved[4]; } __reserved_11; | ||
280 | |||
281 | /*2D0*/ struct { u32 __reserved[4]; } __reserved_12; | ||
282 | |||
283 | /*2E0*/ struct { u32 __reserved[4]; } __reserved_13; | ||
284 | |||
285 | /*2F0*/ struct { u32 __reserved[4]; } __reserved_14; | ||
286 | |||
287 | /*300*/ struct { /* Interrupt Command Register 1 */ | ||
288 | u32 vector : 8, | ||
289 | delivery_mode : 3, | ||
290 | destination_mode : 1, | ||
291 | delivery_status : 1, | ||
292 | __reserved_1 : 1, | ||
293 | level : 1, | ||
294 | trigger : 1, | ||
295 | __reserved_2 : 2, | ||
296 | shorthand : 2, | ||
297 | __reserved_3 : 12; | ||
298 | u32 __reserved_4[3]; | ||
299 | } icr1; | ||
300 | |||
301 | /*310*/ struct { /* Interrupt Command Register 2 */ | ||
302 | union { | ||
303 | u32 __reserved_1 : 24, | ||
304 | phys_dest : 4, | ||
305 | __reserved_2 : 4; | ||
306 | u32 __reserved_3 : 24, | ||
307 | logical_dest : 8; | ||
308 | } dest; | ||
309 | u32 __reserved_4[3]; | ||
310 | } icr2; | ||
311 | |||
312 | /*320*/ struct { /* LVT - Timer */ | ||
313 | u32 vector : 8, | ||
314 | __reserved_1 : 4, | ||
315 | delivery_status : 1, | ||
316 | __reserved_2 : 3, | ||
317 | mask : 1, | ||
318 | timer_mode : 1, | ||
319 | __reserved_3 : 14; | ||
320 | u32 __reserved_4[3]; | ||
321 | } lvt_timer; | ||
322 | |||
323 | /*330*/ struct { /* LVT - Thermal Sensor */ | ||
324 | u32 vector : 8, | ||
325 | delivery_mode : 3, | ||
326 | __reserved_1 : 1, | ||
327 | delivery_status : 1, | ||
328 | __reserved_2 : 3, | ||
329 | mask : 1, | ||
330 | __reserved_3 : 15; | ||
331 | u32 __reserved_4[3]; | ||
332 | } lvt_thermal; | ||
333 | |||
334 | /*340*/ struct { /* LVT - Performance Counter */ | ||
335 | u32 vector : 8, | ||
336 | delivery_mode : 3, | ||
337 | __reserved_1 : 1, | ||
338 | delivery_status : 1, | ||
339 | __reserved_2 : 3, | ||
340 | mask : 1, | ||
341 | __reserved_3 : 15; | ||
342 | u32 __reserved_4[3]; | ||
343 | } lvt_pc; | ||
344 | |||
345 | /*350*/ struct { /* LVT - LINT0 */ | ||
346 | u32 vector : 8, | ||
347 | delivery_mode : 3, | ||
348 | __reserved_1 : 1, | ||
349 | delivery_status : 1, | ||
350 | polarity : 1, | ||
351 | remote_irr : 1, | ||
352 | trigger : 1, | ||
353 | mask : 1, | ||
354 | __reserved_2 : 15; | ||
355 | u32 __reserved_3[3]; | ||
356 | } lvt_lint0; | ||
357 | |||
358 | /*360*/ struct { /* LVT - LINT1 */ | ||
359 | u32 vector : 8, | ||
360 | delivery_mode : 3, | ||
361 | __reserved_1 : 1, | ||
362 | delivery_status : 1, | ||
363 | polarity : 1, | ||
364 | remote_irr : 1, | ||
365 | trigger : 1, | ||
366 | mask : 1, | ||
367 | __reserved_2 : 15; | ||
368 | u32 __reserved_3[3]; | ||
369 | } lvt_lint1; | ||
370 | |||
371 | /*370*/ struct { /* LVT - Error */ | ||
372 | u32 vector : 8, | ||
373 | __reserved_1 : 4, | ||
374 | delivery_status : 1, | ||
375 | __reserved_2 : 3, | ||
376 | mask : 1, | ||
377 | __reserved_3 : 15; | ||
378 | u32 __reserved_4[3]; | ||
379 | } lvt_error; | ||
380 | |||
381 | /*380*/ struct { /* Timer Initial Count Register */ | ||
382 | u32 initial_count; | ||
383 | u32 __reserved_2[3]; | ||
384 | } timer_icr; | ||
385 | |||
386 | /*390*/ const | ||
387 | struct { /* Timer Current Count Register */ | ||
388 | u32 curr_count; | ||
389 | u32 __reserved_2[3]; | ||
390 | } timer_ccr; | ||
391 | |||
392 | /*3A0*/ struct { u32 __reserved[4]; } __reserved_16; | ||
393 | |||
394 | /*3B0*/ struct { u32 __reserved[4]; } __reserved_17; | ||
395 | |||
396 | /*3C0*/ struct { u32 __reserved[4]; } __reserved_18; | ||
397 | |||
398 | /*3D0*/ struct { u32 __reserved[4]; } __reserved_19; | ||
399 | |||
400 | /*3E0*/ struct { /* Timer Divide Configuration Register */ | ||
401 | u32 divisor : 4, | ||
402 | __reserved_1 : 28; | ||
403 | u32 __reserved_2[3]; | ||
404 | } timer_dcr; | ||
405 | |||
406 | /*3F0*/ struct { u32 __reserved[4]; } __reserved_20; | ||
407 | |||
408 | } __attribute__ ((packed)); | ||
409 | |||
410 | #undef u32 | ||
411 | |||
412 | #ifdef CONFIG_X86_32 | ||
413 | #define BAD_APICID 0xFFu | ||
414 | #else | ||
415 | #define BAD_APICID 0xFFFFu | ||
416 | #endif | ||
417 | #endif /* _ASM_X86_APICDEF_H */ | ||
diff --git a/arch/x86/include/asm/arch_hooks.h b/arch/x86/include/asm/arch_hooks.h new file mode 100644 index 000000000000..cbd4957838a6 --- /dev/null +++ b/arch/x86/include/asm/arch_hooks.h | |||
@@ -0,0 +1,26 @@ | |||
1 | #ifndef _ASM_X86_ARCH_HOOKS_H | ||
2 | #define _ASM_X86_ARCH_HOOKS_H | ||
3 | |||
4 | #include <linux/interrupt.h> | ||
5 | |||
6 | /* | ||
7 | * linux/include/asm/arch_hooks.h | ||
8 | * | ||
9 | * define the architecture specific hooks | ||
10 | */ | ||
11 | |||
12 | /* these aren't arch hooks, they are generic routines | ||
13 | * that can be used by the hooks */ | ||
14 | extern void init_ISA_irqs(void); | ||
15 | extern irqreturn_t timer_interrupt(int irq, void *dev_id); | ||
16 | |||
17 | /* these are the defined hooks */ | ||
18 | extern void intr_init_hook(void); | ||
19 | extern void pre_intr_init_hook(void); | ||
20 | extern void pre_setup_arch_hook(void); | ||
21 | extern void trap_init_hook(void); | ||
22 | extern void pre_time_init_hook(void); | ||
23 | extern void time_init_hook(void); | ||
24 | extern void mca_nmi_hook(void); | ||
25 | |||
26 | #endif /* _ASM_X86_ARCH_HOOKS_H */ | ||
diff --git a/arch/x86/include/asm/asm.h b/arch/x86/include/asm/asm.h new file mode 100644 index 000000000000..56be78f582f0 --- /dev/null +++ b/arch/x86/include/asm/asm.h | |||
@@ -0,0 +1,47 @@ | |||
1 | #ifndef _ASM_X86_ASM_H | ||
2 | #define _ASM_X86_ASM_H | ||
3 | |||
4 | #ifdef __ASSEMBLY__ | ||
5 | # define __ASM_FORM(x) x | ||
6 | # define __ASM_EX_SEC .section __ex_table | ||
7 | #else | ||
8 | # define __ASM_FORM(x) " " #x " " | ||
9 | # define __ASM_EX_SEC " .section __ex_table,\"a\"\n" | ||
10 | #endif | ||
11 | |||
12 | #ifdef CONFIG_X86_32 | ||
13 | # define __ASM_SEL(a,b) __ASM_FORM(a) | ||
14 | #else | ||
15 | # define __ASM_SEL(a,b) __ASM_FORM(b) | ||
16 | #endif | ||
17 | |||
18 | #define __ASM_SIZE(inst) __ASM_SEL(inst##l, inst##q) | ||
19 | #define __ASM_REG(reg) __ASM_SEL(e##reg, r##reg) | ||
20 | |||
21 | #define _ASM_PTR __ASM_SEL(.long, .quad) | ||
22 | #define _ASM_ALIGN __ASM_SEL(.balign 4, .balign 8) | ||
23 | |||
24 | #define _ASM_MOV __ASM_SIZE(mov) | ||
25 | #define _ASM_INC __ASM_SIZE(inc) | ||
26 | #define _ASM_DEC __ASM_SIZE(dec) | ||
27 | #define _ASM_ADD __ASM_SIZE(add) | ||
28 | #define _ASM_SUB __ASM_SIZE(sub) | ||
29 | #define _ASM_XADD __ASM_SIZE(xadd) | ||
30 | |||
31 | #define _ASM_AX __ASM_REG(ax) | ||
32 | #define _ASM_BX __ASM_REG(bx) | ||
33 | #define _ASM_CX __ASM_REG(cx) | ||
34 | #define _ASM_DX __ASM_REG(dx) | ||
35 | #define _ASM_SP __ASM_REG(sp) | ||
36 | #define _ASM_BP __ASM_REG(bp) | ||
37 | #define _ASM_SI __ASM_REG(si) | ||
38 | #define _ASM_DI __ASM_REG(di) | ||
39 | |||
40 | /* Exception table entry */ | ||
41 | # define _ASM_EXTABLE(from,to) \ | ||
42 | __ASM_EX_SEC \ | ||
43 | _ASM_ALIGN "\n" \ | ||
44 | _ASM_PTR #from "," #to "\n" \ | ||
45 | " .previous\n" | ||
46 | |||
47 | #endif /* _ASM_X86_ASM_H */ | ||
diff --git a/arch/x86/include/asm/atomic.h b/arch/x86/include/asm/atomic.h new file mode 100644 index 000000000000..4e1b8873c474 --- /dev/null +++ b/arch/x86/include/asm/atomic.h | |||
@@ -0,0 +1,5 @@ | |||
1 | #ifdef CONFIG_X86_32 | ||
2 | # include "atomic_32.h" | ||
3 | #else | ||
4 | # include "atomic_64.h" | ||
5 | #endif | ||
diff --git a/arch/x86/include/asm/atomic_32.h b/arch/x86/include/asm/atomic_32.h new file mode 100644 index 000000000000..ad5b9f6ecddf --- /dev/null +++ b/arch/x86/include/asm/atomic_32.h | |||
@@ -0,0 +1,259 @@ | |||
1 | #ifndef _ASM_X86_ATOMIC_32_H | ||
2 | #define _ASM_X86_ATOMIC_32_H | ||
3 | |||
4 | #include <linux/compiler.h> | ||
5 | #include <asm/processor.h> | ||
6 | #include <asm/cmpxchg.h> | ||
7 | |||
8 | /* | ||
9 | * Atomic operations that C can't guarantee us. Useful for | ||
10 | * resource counting etc.. | ||
11 | */ | ||
12 | |||
13 | /* | ||
14 | * Make sure gcc doesn't try to be clever and move things around | ||
15 | * on us. We need to use _exactly_ the address the user gave us, | ||
16 | * not some alias that contains the same information. | ||
17 | */ | ||
18 | typedef struct { | ||
19 | int counter; | ||
20 | } atomic_t; | ||
21 | |||
22 | #define ATOMIC_INIT(i) { (i) } | ||
23 | |||
24 | /** | ||
25 | * atomic_read - read atomic variable | ||
26 | * @v: pointer of type atomic_t | ||
27 | * | ||
28 | * Atomically reads the value of @v. | ||
29 | */ | ||
30 | #define atomic_read(v) ((v)->counter) | ||
31 | |||
32 | /** | ||
33 | * atomic_set - set atomic variable | ||
34 | * @v: pointer of type atomic_t | ||
35 | * @i: required value | ||
36 | * | ||
37 | * Atomically sets the value of @v to @i. | ||
38 | */ | ||
39 | #define atomic_set(v, i) (((v)->counter) = (i)) | ||
40 | |||
41 | /** | ||
42 | * atomic_add - add integer to atomic variable | ||
43 | * @i: integer value to add | ||
44 | * @v: pointer of type atomic_t | ||
45 | * | ||
46 | * Atomically adds @i to @v. | ||
47 | */ | ||
48 | static inline void atomic_add(int i, atomic_t *v) | ||
49 | { | ||
50 | asm volatile(LOCK_PREFIX "addl %1,%0" | ||
51 | : "+m" (v->counter) | ||
52 | : "ir" (i)); | ||
53 | } | ||
54 | |||
55 | /** | ||
56 | * atomic_sub - subtract integer from atomic variable | ||
57 | * @i: integer value to subtract | ||
58 | * @v: pointer of type atomic_t | ||
59 | * | ||
60 | * Atomically subtracts @i from @v. | ||
61 | */ | ||
62 | static inline void atomic_sub(int i, atomic_t *v) | ||
63 | { | ||
64 | asm volatile(LOCK_PREFIX "subl %1,%0" | ||
65 | : "+m" (v->counter) | ||
66 | : "ir" (i)); | ||
67 | } | ||
68 | |||
69 | /** | ||
70 | * atomic_sub_and_test - subtract value from variable and test result | ||
71 | * @i: integer value to subtract | ||
72 | * @v: pointer of type atomic_t | ||
73 | * | ||
74 | * Atomically subtracts @i from @v and returns | ||
75 | * true if the result is zero, or false for all | ||
76 | * other cases. | ||
77 | */ | ||
78 | static inline int atomic_sub_and_test(int i, atomic_t *v) | ||
79 | { | ||
80 | unsigned char c; | ||
81 | |||
82 | asm volatile(LOCK_PREFIX "subl %2,%0; sete %1" | ||
83 | : "+m" (v->counter), "=qm" (c) | ||
84 | : "ir" (i) : "memory"); | ||
85 | return c; | ||
86 | } | ||
87 | |||
88 | /** | ||
89 | * atomic_inc - increment atomic variable | ||
90 | * @v: pointer of type atomic_t | ||
91 | * | ||
92 | * Atomically increments @v by 1. | ||
93 | */ | ||
94 | static inline void atomic_inc(atomic_t *v) | ||
95 | { | ||
96 | asm volatile(LOCK_PREFIX "incl %0" | ||
97 | : "+m" (v->counter)); | ||
98 | } | ||
99 | |||
100 | /** | ||
101 | * atomic_dec - decrement atomic variable | ||
102 | * @v: pointer of type atomic_t | ||
103 | * | ||
104 | * Atomically decrements @v by 1. | ||
105 | */ | ||
106 | static inline void atomic_dec(atomic_t *v) | ||
107 | { | ||
108 | asm volatile(LOCK_PREFIX "decl %0" | ||
109 | : "+m" (v->counter)); | ||
110 | } | ||
111 | |||
112 | /** | ||
113 | * atomic_dec_and_test - decrement and test | ||
114 | * @v: pointer of type atomic_t | ||
115 | * | ||
116 | * Atomically decrements @v by 1 and | ||
117 | * returns true if the result is 0, or false for all other | ||
118 | * cases. | ||
119 | */ | ||
120 | static inline int atomic_dec_and_test(atomic_t *v) | ||
121 | { | ||
122 | unsigned char c; | ||
123 | |||
124 | asm volatile(LOCK_PREFIX "decl %0; sete %1" | ||
125 | : "+m" (v->counter), "=qm" (c) | ||
126 | : : "memory"); | ||
127 | return c != 0; | ||
128 | } | ||
129 | |||
130 | /** | ||
131 | * atomic_inc_and_test - increment and test | ||
132 | * @v: pointer of type atomic_t | ||
133 | * | ||
134 | * Atomically increments @v by 1 | ||
135 | * and returns true if the result is zero, or false for all | ||
136 | * other cases. | ||
137 | */ | ||
138 | static inline int atomic_inc_and_test(atomic_t *v) | ||
139 | { | ||
140 | unsigned char c; | ||
141 | |||
142 | asm volatile(LOCK_PREFIX "incl %0; sete %1" | ||
143 | : "+m" (v->counter), "=qm" (c) | ||
144 | : : "memory"); | ||
145 | return c != 0; | ||
146 | } | ||
147 | |||
148 | /** | ||
149 | * atomic_add_negative - add and test if negative | ||
150 | * @v: pointer of type atomic_t | ||
151 | * @i: integer value to add | ||
152 | * | ||
153 | * Atomically adds @i to @v and returns true | ||
154 | * if the result is negative, or false when | ||
155 | * result is greater than or equal to zero. | ||
156 | */ | ||
157 | static inline int atomic_add_negative(int i, atomic_t *v) | ||
158 | { | ||
159 | unsigned char c; | ||
160 | |||
161 | asm volatile(LOCK_PREFIX "addl %2,%0; sets %1" | ||
162 | : "+m" (v->counter), "=qm" (c) | ||
163 | : "ir" (i) : "memory"); | ||
164 | return c; | ||
165 | } | ||
166 | |||
167 | /** | ||
168 | * atomic_add_return - add integer and return | ||
169 | * @v: pointer of type atomic_t | ||
170 | * @i: integer value to add | ||
171 | * | ||
172 | * Atomically adds @i to @v and returns @i + @v | ||
173 | */ | ||
174 | static inline int atomic_add_return(int i, atomic_t *v) | ||
175 | { | ||
176 | int __i; | ||
177 | #ifdef CONFIG_M386 | ||
178 | unsigned long flags; | ||
179 | if (unlikely(boot_cpu_data.x86 <= 3)) | ||
180 | goto no_xadd; | ||
181 | #endif | ||
182 | /* Modern 486+ processor */ | ||
183 | __i = i; | ||
184 | asm volatile(LOCK_PREFIX "xaddl %0, %1" | ||
185 | : "+r" (i), "+m" (v->counter) | ||
186 | : : "memory"); | ||
187 | return i + __i; | ||
188 | |||
189 | #ifdef CONFIG_M386 | ||
190 | no_xadd: /* Legacy 386 processor */ | ||
191 | local_irq_save(flags); | ||
192 | __i = atomic_read(v); | ||
193 | atomic_set(v, i + __i); | ||
194 | local_irq_restore(flags); | ||
195 | return i + __i; | ||
196 | #endif | ||
197 | } | ||
198 | |||
199 | /** | ||
200 | * atomic_sub_return - subtract integer and return | ||
201 | * @v: pointer of type atomic_t | ||
202 | * @i: integer value to subtract | ||
203 | * | ||
204 | * Atomically subtracts @i from @v and returns @v - @i | ||
205 | */ | ||
206 | static inline int atomic_sub_return(int i, atomic_t *v) | ||
207 | { | ||
208 | return atomic_add_return(-i, v); | ||
209 | } | ||
210 | |||
211 | #define atomic_cmpxchg(v, old, new) (cmpxchg(&((v)->counter), (old), (new))) | ||
212 | #define atomic_xchg(v, new) (xchg(&((v)->counter), (new))) | ||
213 | |||
214 | /** | ||
215 | * atomic_add_unless - add unless the number is already a given value | ||
216 | * @v: pointer of type atomic_t | ||
217 | * @a: the amount to add to v... | ||
218 | * @u: ...unless v is equal to u. | ||
219 | * | ||
220 | * Atomically adds @a to @v, so long as @v was not already @u. | ||
221 | * Returns non-zero if @v was not @u, and zero otherwise. | ||
222 | */ | ||
223 | static inline int atomic_add_unless(atomic_t *v, int a, int u) | ||
224 | { | ||
225 | int c, old; | ||
226 | c = atomic_read(v); | ||
227 | for (;;) { | ||
228 | if (unlikely(c == (u))) | ||
229 | break; | ||
230 | old = atomic_cmpxchg((v), c, c + (a)); | ||
231 | if (likely(old == c)) | ||
232 | break; | ||
233 | c = old; | ||
234 | } | ||
235 | return c != (u); | ||
236 | } | ||
237 | |||
238 | #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0) | ||
239 | |||
240 | #define atomic_inc_return(v) (atomic_add_return(1, v)) | ||
241 | #define atomic_dec_return(v) (atomic_sub_return(1, v)) | ||
242 | |||
243 | /* These are x86-specific, used by some header files */ | ||
244 | #define atomic_clear_mask(mask, addr) \ | ||
245 | asm volatile(LOCK_PREFIX "andl %0,%1" \ | ||
246 | : : "r" (~(mask)), "m" (*(addr)) : "memory") | ||
247 | |||
248 | #define atomic_set_mask(mask, addr) \ | ||
249 | asm volatile(LOCK_PREFIX "orl %0,%1" \ | ||
250 | : : "r" (mask), "m" (*(addr)) : "memory") | ||
251 | |||
252 | /* Atomic operations are already serializing on x86 */ | ||
253 | #define smp_mb__before_atomic_dec() barrier() | ||
254 | #define smp_mb__after_atomic_dec() barrier() | ||
255 | #define smp_mb__before_atomic_inc() barrier() | ||
256 | #define smp_mb__after_atomic_inc() barrier() | ||
257 | |||
258 | #include <asm-generic/atomic.h> | ||
259 | #endif /* _ASM_X86_ATOMIC_32_H */ | ||
diff --git a/arch/x86/include/asm/atomic_64.h b/arch/x86/include/asm/atomic_64.h new file mode 100644 index 000000000000..279d2a731f3f --- /dev/null +++ b/arch/x86/include/asm/atomic_64.h | |||
@@ -0,0 +1,473 @@ | |||
1 | #ifndef _ASM_X86_ATOMIC_64_H | ||
2 | #define _ASM_X86_ATOMIC_64_H | ||
3 | |||
4 | #include <asm/alternative.h> | ||
5 | #include <asm/cmpxchg.h> | ||
6 | |||
7 | /* atomic_t should be 32 bit signed type */ | ||
8 | |||
9 | /* | ||
10 | * Atomic operations that C can't guarantee us. Useful for | ||
11 | * resource counting etc.. | ||
12 | */ | ||
13 | |||
14 | /* | ||
15 | * Make sure gcc doesn't try to be clever and move things around | ||
16 | * on us. We need to use _exactly_ the address the user gave us, | ||
17 | * not some alias that contains the same information. | ||
18 | */ | ||
19 | typedef struct { | ||
20 | int counter; | ||
21 | } atomic_t; | ||
22 | |||
23 | #define ATOMIC_INIT(i) { (i) } | ||
24 | |||
25 | /** | ||
26 | * atomic_read - read atomic variable | ||
27 | * @v: pointer of type atomic_t | ||
28 | * | ||
29 | * Atomically reads the value of @v. | ||
30 | */ | ||
31 | #define atomic_read(v) ((v)->counter) | ||
32 | |||
33 | /** | ||
34 | * atomic_set - set atomic variable | ||
35 | * @v: pointer of type atomic_t | ||
36 | * @i: required value | ||
37 | * | ||
38 | * Atomically sets the value of @v to @i. | ||
39 | */ | ||
40 | #define atomic_set(v, i) (((v)->counter) = (i)) | ||
41 | |||
42 | /** | ||
43 | * atomic_add - add integer to atomic variable | ||
44 | * @i: integer value to add | ||
45 | * @v: pointer of type atomic_t | ||
46 | * | ||
47 | * Atomically adds @i to @v. | ||
48 | */ | ||
49 | static inline void atomic_add(int i, atomic_t *v) | ||
50 | { | ||
51 | asm volatile(LOCK_PREFIX "addl %1,%0" | ||
52 | : "=m" (v->counter) | ||
53 | : "ir" (i), "m" (v->counter)); | ||
54 | } | ||
55 | |||
56 | /** | ||
57 | * atomic_sub - subtract the atomic variable | ||
58 | * @i: integer value to subtract | ||
59 | * @v: pointer of type atomic_t | ||
60 | * | ||
61 | * Atomically subtracts @i from @v. | ||
62 | */ | ||
63 | static inline void atomic_sub(int i, atomic_t *v) | ||
64 | { | ||
65 | asm volatile(LOCK_PREFIX "subl %1,%0" | ||
66 | : "=m" (v->counter) | ||
67 | : "ir" (i), "m" (v->counter)); | ||
68 | } | ||
69 | |||
70 | /** | ||
71 | * atomic_sub_and_test - subtract value from variable and test result | ||
72 | * @i: integer value to subtract | ||
73 | * @v: pointer of type atomic_t | ||
74 | * | ||
75 | * Atomically subtracts @i from @v and returns | ||
76 | * true if the result is zero, or false for all | ||
77 | * other cases. | ||
78 | */ | ||
79 | static inline int atomic_sub_and_test(int i, atomic_t *v) | ||
80 | { | ||
81 | unsigned char c; | ||
82 | |||
83 | asm volatile(LOCK_PREFIX "subl %2,%0; sete %1" | ||
84 | : "=m" (v->counter), "=qm" (c) | ||
85 | : "ir" (i), "m" (v->counter) : "memory"); | ||
86 | return c; | ||
87 | } | ||
88 | |||
89 | /** | ||
90 | * atomic_inc - increment atomic variable | ||
91 | * @v: pointer of type atomic_t | ||
92 | * | ||
93 | * Atomically increments @v by 1. | ||
94 | */ | ||
95 | static inline void atomic_inc(atomic_t *v) | ||
96 | { | ||
97 | asm volatile(LOCK_PREFIX "incl %0" | ||
98 | : "=m" (v->counter) | ||
99 | : "m" (v->counter)); | ||
100 | } | ||
101 | |||
102 | /** | ||
103 | * atomic_dec - decrement atomic variable | ||
104 | * @v: pointer of type atomic_t | ||
105 | * | ||
106 | * Atomically decrements @v by 1. | ||
107 | */ | ||
108 | static inline void atomic_dec(atomic_t *v) | ||
109 | { | ||
110 | asm volatile(LOCK_PREFIX "decl %0" | ||
111 | : "=m" (v->counter) | ||
112 | : "m" (v->counter)); | ||
113 | } | ||
114 | |||
115 | /** | ||
116 | * atomic_dec_and_test - decrement and test | ||
117 | * @v: pointer of type atomic_t | ||
118 | * | ||
119 | * Atomically decrements @v by 1 and | ||
120 | * returns true if the result is 0, or false for all other | ||
121 | * cases. | ||
122 | */ | ||
123 | static inline int atomic_dec_and_test(atomic_t *v) | ||
124 | { | ||
125 | unsigned char c; | ||
126 | |||
127 | asm volatile(LOCK_PREFIX "decl %0; sete %1" | ||
128 | : "=m" (v->counter), "=qm" (c) | ||
129 | : "m" (v->counter) : "memory"); | ||
130 | return c != 0; | ||
131 | } | ||
132 | |||
133 | /** | ||
134 | * atomic_inc_and_test - increment and test | ||
135 | * @v: pointer of type atomic_t | ||
136 | * | ||
137 | * Atomically increments @v by 1 | ||
138 | * and returns true if the result is zero, or false for all | ||
139 | * other cases. | ||
140 | */ | ||
141 | static inline int atomic_inc_and_test(atomic_t *v) | ||
142 | { | ||
143 | unsigned char c; | ||
144 | |||
145 | asm volatile(LOCK_PREFIX "incl %0; sete %1" | ||
146 | : "=m" (v->counter), "=qm" (c) | ||
147 | : "m" (v->counter) : "memory"); | ||
148 | return c != 0; | ||
149 | } | ||
150 | |||
151 | /** | ||
152 | * atomic_add_negative - add and test if negative | ||
153 | * @i: integer value to add | ||
154 | * @v: pointer of type atomic_t | ||
155 | * | ||
156 | * Atomically adds @i to @v and returns true | ||
157 | * if the result is negative, or false when | ||
158 | * result is greater than or equal to zero. | ||
159 | */ | ||
160 | static inline int atomic_add_negative(int i, atomic_t *v) | ||
161 | { | ||
162 | unsigned char c; | ||
163 | |||
164 | asm volatile(LOCK_PREFIX "addl %2,%0; sets %1" | ||
165 | : "=m" (v->counter), "=qm" (c) | ||
166 | : "ir" (i), "m" (v->counter) : "memory"); | ||
167 | return c; | ||
168 | } | ||
169 | |||
170 | /** | ||
171 | * atomic_add_return - add and return | ||
172 | * @i: integer value to add | ||
173 | * @v: pointer of type atomic_t | ||
174 | * | ||
175 | * Atomically adds @i to @v and returns @i + @v | ||
176 | */ | ||
177 | static inline int atomic_add_return(int i, atomic_t *v) | ||
178 | { | ||
179 | int __i = i; | ||
180 | asm volatile(LOCK_PREFIX "xaddl %0, %1" | ||
181 | : "+r" (i), "+m" (v->counter) | ||
182 | : : "memory"); | ||
183 | return i + __i; | ||
184 | } | ||
185 | |||
186 | static inline int atomic_sub_return(int i, atomic_t *v) | ||
187 | { | ||
188 | return atomic_add_return(-i, v); | ||
189 | } | ||
190 | |||
191 | #define atomic_inc_return(v) (atomic_add_return(1, v)) | ||
192 | #define atomic_dec_return(v) (atomic_sub_return(1, v)) | ||
193 | |||
194 | /* An 64bit atomic type */ | ||
195 | |||
196 | typedef struct { | ||
197 | long counter; | ||
198 | } atomic64_t; | ||
199 | |||
200 | #define ATOMIC64_INIT(i) { (i) } | ||
201 | |||
202 | /** | ||
203 | * atomic64_read - read atomic64 variable | ||
204 | * @v: pointer of type atomic64_t | ||
205 | * | ||
206 | * Atomically reads the value of @v. | ||
207 | * Doesn't imply a read memory barrier. | ||
208 | */ | ||
209 | #define atomic64_read(v) ((v)->counter) | ||
210 | |||
211 | /** | ||
212 | * atomic64_set - set atomic64 variable | ||
213 | * @v: pointer to type atomic64_t | ||
214 | * @i: required value | ||
215 | * | ||
216 | * Atomically sets the value of @v to @i. | ||
217 | */ | ||
218 | #define atomic64_set(v, i) (((v)->counter) = (i)) | ||
219 | |||
220 | /** | ||
221 | * atomic64_add - add integer to atomic64 variable | ||
222 | * @i: integer value to add | ||
223 | * @v: pointer to type atomic64_t | ||
224 | * | ||
225 | * Atomically adds @i to @v. | ||
226 | */ | ||
227 | static inline void atomic64_add(long i, atomic64_t *v) | ||
228 | { | ||
229 | asm volatile(LOCK_PREFIX "addq %1,%0" | ||
230 | : "=m" (v->counter) | ||
231 | : "er" (i), "m" (v->counter)); | ||
232 | } | ||
233 | |||
234 | /** | ||
235 | * atomic64_sub - subtract the atomic64 variable | ||
236 | * @i: integer value to subtract | ||
237 | * @v: pointer to type atomic64_t | ||
238 | * | ||
239 | * Atomically subtracts @i from @v. | ||
240 | */ | ||
241 | static inline void atomic64_sub(long i, atomic64_t *v) | ||
242 | { | ||
243 | asm volatile(LOCK_PREFIX "subq %1,%0" | ||
244 | : "=m" (v->counter) | ||
245 | : "er" (i), "m" (v->counter)); | ||
246 | } | ||
247 | |||
248 | /** | ||
249 | * atomic64_sub_and_test - subtract value from variable and test result | ||
250 | * @i: integer value to subtract | ||
251 | * @v: pointer to type atomic64_t | ||
252 | * | ||
253 | * Atomically subtracts @i from @v and returns | ||
254 | * true if the result is zero, or false for all | ||
255 | * other cases. | ||
256 | */ | ||
257 | static inline int atomic64_sub_and_test(long i, atomic64_t *v) | ||
258 | { | ||
259 | unsigned char c; | ||
260 | |||
261 | asm volatile(LOCK_PREFIX "subq %2,%0; sete %1" | ||
262 | : "=m" (v->counter), "=qm" (c) | ||
263 | : "er" (i), "m" (v->counter) : "memory"); | ||
264 | return c; | ||
265 | } | ||
266 | |||
267 | /** | ||
268 | * atomic64_inc - increment atomic64 variable | ||
269 | * @v: pointer to type atomic64_t | ||
270 | * | ||
271 | * Atomically increments @v by 1. | ||
272 | */ | ||
273 | static inline void atomic64_inc(atomic64_t *v) | ||
274 | { | ||
275 | asm volatile(LOCK_PREFIX "incq %0" | ||
276 | : "=m" (v->counter) | ||
277 | : "m" (v->counter)); | ||
278 | } | ||
279 | |||
280 | /** | ||
281 | * atomic64_dec - decrement atomic64 variable | ||
282 | * @v: pointer to type atomic64_t | ||
283 | * | ||
284 | * Atomically decrements @v by 1. | ||
285 | */ | ||
286 | static inline void atomic64_dec(atomic64_t *v) | ||
287 | { | ||
288 | asm volatile(LOCK_PREFIX "decq %0" | ||
289 | : "=m" (v->counter) | ||
290 | : "m" (v->counter)); | ||
291 | } | ||
292 | |||
293 | /** | ||
294 | * atomic64_dec_and_test - decrement and test | ||
295 | * @v: pointer to type atomic64_t | ||
296 | * | ||
297 | * Atomically decrements @v by 1 and | ||
298 | * returns true if the result is 0, or false for all other | ||
299 | * cases. | ||
300 | */ | ||
301 | static inline int atomic64_dec_and_test(atomic64_t *v) | ||
302 | { | ||
303 | unsigned char c; | ||
304 | |||
305 | asm volatile(LOCK_PREFIX "decq %0; sete %1" | ||
306 | : "=m" (v->counter), "=qm" (c) | ||
307 | : "m" (v->counter) : "memory"); | ||
308 | return c != 0; | ||
309 | } | ||
310 | |||
311 | /** | ||
312 | * atomic64_inc_and_test - increment and test | ||
313 | * @v: pointer to type atomic64_t | ||
314 | * | ||
315 | * Atomically increments @v by 1 | ||
316 | * and returns true if the result is zero, or false for all | ||
317 | * other cases. | ||
318 | */ | ||
319 | static inline int atomic64_inc_and_test(atomic64_t *v) | ||
320 | { | ||
321 | unsigned char c; | ||
322 | |||
323 | asm volatile(LOCK_PREFIX "incq %0; sete %1" | ||
324 | : "=m" (v->counter), "=qm" (c) | ||
325 | : "m" (v->counter) : "memory"); | ||
326 | return c != 0; | ||
327 | } | ||
328 | |||
329 | /** | ||
330 | * atomic64_add_negative - add and test if negative | ||
331 | * @i: integer value to add | ||
332 | * @v: pointer to type atomic64_t | ||
333 | * | ||
334 | * Atomically adds @i to @v and returns true | ||
335 | * if the result is negative, or false when | ||
336 | * result is greater than or equal to zero. | ||
337 | */ | ||
338 | static inline int atomic64_add_negative(long i, atomic64_t *v) | ||
339 | { | ||
340 | unsigned char c; | ||
341 | |||
342 | asm volatile(LOCK_PREFIX "addq %2,%0; sets %1" | ||
343 | : "=m" (v->counter), "=qm" (c) | ||
344 | : "er" (i), "m" (v->counter) : "memory"); | ||
345 | return c; | ||
346 | } | ||
347 | |||
348 | /** | ||
349 | * atomic64_add_return - add and return | ||
350 | * @i: integer value to add | ||
351 | * @v: pointer to type atomic64_t | ||
352 | * | ||
353 | * Atomically adds @i to @v and returns @i + @v | ||
354 | */ | ||
355 | static inline long atomic64_add_return(long i, atomic64_t *v) | ||
356 | { | ||
357 | long __i = i; | ||
358 | asm volatile(LOCK_PREFIX "xaddq %0, %1;" | ||
359 | : "+r" (i), "+m" (v->counter) | ||
360 | : : "memory"); | ||
361 | return i + __i; | ||
362 | } | ||
363 | |||
364 | static inline long atomic64_sub_return(long i, atomic64_t *v) | ||
365 | { | ||
366 | return atomic64_add_return(-i, v); | ||
367 | } | ||
368 | |||
369 | #define atomic64_inc_return(v) (atomic64_add_return(1, (v))) | ||
370 | #define atomic64_dec_return(v) (atomic64_sub_return(1, (v))) | ||
371 | |||
372 | #define atomic64_cmpxchg(v, old, new) (cmpxchg(&((v)->counter), (old), (new))) | ||
373 | #define atomic64_xchg(v, new) (xchg(&((v)->counter), new)) | ||
374 | |||
375 | #define atomic_cmpxchg(v, old, new) (cmpxchg(&((v)->counter), (old), (new))) | ||
376 | #define atomic_xchg(v, new) (xchg(&((v)->counter), (new))) | ||
377 | |||
378 | /** | ||
379 | * atomic_add_unless - add unless the number is a given value | ||
380 | * @v: pointer of type atomic_t | ||
381 | * @a: the amount to add to v... | ||
382 | * @u: ...unless v is equal to u. | ||
383 | * | ||
384 | * Atomically adds @a to @v, so long as it was not @u. | ||
385 | * Returns non-zero if @v was not @u, and zero otherwise. | ||
386 | */ | ||
387 | static inline int atomic_add_unless(atomic_t *v, int a, int u) | ||
388 | { | ||
389 | int c, old; | ||
390 | c = atomic_read(v); | ||
391 | for (;;) { | ||
392 | if (unlikely(c == (u))) | ||
393 | break; | ||
394 | old = atomic_cmpxchg((v), c, c + (a)); | ||
395 | if (likely(old == c)) | ||
396 | break; | ||
397 | c = old; | ||
398 | } | ||
399 | return c != (u); | ||
400 | } | ||
401 | |||
402 | #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0) | ||
403 | |||
404 | /** | ||
405 | * atomic64_add_unless - add unless the number is a given value | ||
406 | * @v: pointer of type atomic64_t | ||
407 | * @a: the amount to add to v... | ||
408 | * @u: ...unless v is equal to u. | ||
409 | * | ||
410 | * Atomically adds @a to @v, so long as it was not @u. | ||
411 | * Returns non-zero if @v was not @u, and zero otherwise. | ||
412 | */ | ||
413 | static inline int atomic64_add_unless(atomic64_t *v, long a, long u) | ||
414 | { | ||
415 | long c, old; | ||
416 | c = atomic64_read(v); | ||
417 | for (;;) { | ||
418 | if (unlikely(c == (u))) | ||
419 | break; | ||
420 | old = atomic64_cmpxchg((v), c, c + (a)); | ||
421 | if (likely(old == c)) | ||
422 | break; | ||
423 | c = old; | ||
424 | } | ||
425 | return c != (u); | ||
426 | } | ||
427 | |||
428 | /** | ||
429 | * atomic_inc_short - increment of a short integer | ||
430 | * @v: pointer to type int | ||
431 | * | ||
432 | * Atomically adds 1 to @v | ||
433 | * Returns the new value of @u | ||
434 | */ | ||
435 | static inline short int atomic_inc_short(short int *v) | ||
436 | { | ||
437 | asm(LOCK_PREFIX "addw $1, %0" : "+m" (*v)); | ||
438 | return *v; | ||
439 | } | ||
440 | |||
441 | /** | ||
442 | * atomic_or_long - OR of two long integers | ||
443 | * @v1: pointer to type unsigned long | ||
444 | * @v2: pointer to type unsigned long | ||
445 | * | ||
446 | * Atomically ORs @v1 and @v2 | ||
447 | * Returns the result of the OR | ||
448 | */ | ||
449 | static inline void atomic_or_long(unsigned long *v1, unsigned long v2) | ||
450 | { | ||
451 | asm(LOCK_PREFIX "orq %1, %0" : "+m" (*v1) : "r" (v2)); | ||
452 | } | ||
453 | |||
454 | #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0) | ||
455 | |||
456 | /* These are x86-specific, used by some header files */ | ||
457 | #define atomic_clear_mask(mask, addr) \ | ||
458 | asm volatile(LOCK_PREFIX "andl %0,%1" \ | ||
459 | : : "r" (~(mask)), "m" (*(addr)) : "memory") | ||
460 | |||
461 | #define atomic_set_mask(mask, addr) \ | ||
462 | asm volatile(LOCK_PREFIX "orl %0,%1" \ | ||
463 | : : "r" ((unsigned)(mask)), "m" (*(addr)) \ | ||
464 | : "memory") | ||
465 | |||
466 | /* Atomic operations are already serializing on x86 */ | ||
467 | #define smp_mb__before_atomic_dec() barrier() | ||
468 | #define smp_mb__after_atomic_dec() barrier() | ||
469 | #define smp_mb__before_atomic_inc() barrier() | ||
470 | #define smp_mb__after_atomic_inc() barrier() | ||
471 | |||
472 | #include <asm-generic/atomic.h> | ||
473 | #endif /* _ASM_X86_ATOMIC_64_H */ | ||
diff --git a/arch/x86/include/asm/auxvec.h b/arch/x86/include/asm/auxvec.h new file mode 100644 index 000000000000..1316b4c35425 --- /dev/null +++ b/arch/x86/include/asm/auxvec.h | |||
@@ -0,0 +1,12 @@ | |||
1 | #ifndef _ASM_X86_AUXVEC_H | ||
2 | #define _ASM_X86_AUXVEC_H | ||
3 | /* | ||
4 | * Architecture-neutral AT_ values in 0-17, leave some room | ||
5 | * for more of them, start the x86-specific ones at 32. | ||
6 | */ | ||
7 | #ifdef __i386__ | ||
8 | #define AT_SYSINFO 32 | ||
9 | #endif | ||
10 | #define AT_SYSINFO_EHDR 33 | ||
11 | |||
12 | #endif /* _ASM_X86_AUXVEC_H */ | ||
diff --git a/arch/x86/include/asm/bigsmp/apic.h b/arch/x86/include/asm/bigsmp/apic.h new file mode 100644 index 000000000000..1d9543b9d358 --- /dev/null +++ b/arch/x86/include/asm/bigsmp/apic.h | |||
@@ -0,0 +1,139 @@ | |||
1 | #ifndef __ASM_MACH_APIC_H | ||
2 | #define __ASM_MACH_APIC_H | ||
3 | |||
4 | #define xapic_phys_to_log_apicid(cpu) (per_cpu(x86_bios_cpu_apicid, cpu)) | ||
5 | #define esr_disable (1) | ||
6 | |||
7 | static inline int apic_id_registered(void) | ||
8 | { | ||
9 | return (1); | ||
10 | } | ||
11 | |||
12 | static inline cpumask_t target_cpus(void) | ||
13 | { | ||
14 | #ifdef CONFIG_SMP | ||
15 | return cpu_online_map; | ||
16 | #else | ||
17 | return cpumask_of_cpu(0); | ||
18 | #endif | ||
19 | } | ||
20 | |||
21 | #undef APIC_DEST_LOGICAL | ||
22 | #define APIC_DEST_LOGICAL 0 | ||
23 | #define APIC_DFR_VALUE (APIC_DFR_FLAT) | ||
24 | #define INT_DELIVERY_MODE (dest_Fixed) | ||
25 | #define INT_DEST_MODE (0) /* phys delivery to target proc */ | ||
26 | #define NO_BALANCE_IRQ (0) | ||
27 | #define WAKE_SECONDARY_VIA_INIT | ||
28 | |||
29 | |||
30 | static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid) | ||
31 | { | ||
32 | return (0); | ||
33 | } | ||
34 | |||
35 | static inline unsigned long check_apicid_present(int bit) | ||
36 | { | ||
37 | return (1); | ||
38 | } | ||
39 | |||
40 | static inline unsigned long calculate_ldr(int cpu) | ||
41 | { | ||
42 | unsigned long val, id; | ||
43 | val = apic_read(APIC_LDR) & ~APIC_LDR_MASK; | ||
44 | id = xapic_phys_to_log_apicid(cpu); | ||
45 | val |= SET_APIC_LOGICAL_ID(id); | ||
46 | return val; | ||
47 | } | ||
48 | |||
49 | /* | ||
50 | * Set up the logical destination ID. | ||
51 | * | ||
52 | * Intel recommends to set DFR, LDR and TPR before enabling | ||
53 | * an APIC. See e.g. "AP-388 82489DX User's Manual" (Intel | ||
54 | * document number 292116). So here it goes... | ||
55 | */ | ||
56 | static inline void init_apic_ldr(void) | ||
57 | { | ||
58 | unsigned long val; | ||
59 | int cpu = smp_processor_id(); | ||
60 | |||
61 | apic_write(APIC_DFR, APIC_DFR_VALUE); | ||
62 | val = calculate_ldr(cpu); | ||
63 | apic_write(APIC_LDR, val); | ||
64 | } | ||
65 | |||
66 | static inline void setup_apic_routing(void) | ||
67 | { | ||
68 | printk("Enabling APIC mode: %s. Using %d I/O APICs\n", | ||
69 | "Physflat", nr_ioapics); | ||
70 | } | ||
71 | |||
72 | static inline int multi_timer_check(int apic, int irq) | ||
73 | { | ||
74 | return (0); | ||
75 | } | ||
76 | |||
77 | static inline int apicid_to_node(int logical_apicid) | ||
78 | { | ||
79 | return apicid_2_node[hard_smp_processor_id()]; | ||
80 | } | ||
81 | |||
82 | static inline int cpu_present_to_apicid(int mps_cpu) | ||
83 | { | ||
84 | if (mps_cpu < NR_CPUS) | ||
85 | return (int) per_cpu(x86_bios_cpu_apicid, mps_cpu); | ||
86 | |||
87 | return BAD_APICID; | ||
88 | } | ||
89 | |||
90 | static inline physid_mask_t apicid_to_cpu_present(int phys_apicid) | ||
91 | { | ||
92 | return physid_mask_of_physid(phys_apicid); | ||
93 | } | ||
94 | |||
95 | extern u8 cpu_2_logical_apicid[]; | ||
96 | /* Mapping from cpu number to logical apicid */ | ||
97 | static inline int cpu_to_logical_apicid(int cpu) | ||
98 | { | ||
99 | if (cpu >= NR_CPUS) | ||
100 | return BAD_APICID; | ||
101 | return cpu_physical_id(cpu); | ||
102 | } | ||
103 | |||
104 | static inline physid_mask_t ioapic_phys_id_map(physid_mask_t phys_map) | ||
105 | { | ||
106 | /* For clustered we don't have a good way to do this yet - hack */ | ||
107 | return physids_promote(0xFFL); | ||
108 | } | ||
109 | |||
110 | static inline void setup_portio_remap(void) | ||
111 | { | ||
112 | } | ||
113 | |||
114 | static inline void enable_apic_mode(void) | ||
115 | { | ||
116 | } | ||
117 | |||
118 | static inline int check_phys_apicid_present(int boot_cpu_physical_apicid) | ||
119 | { | ||
120 | return (1); | ||
121 | } | ||
122 | |||
123 | /* As we are using single CPU as destination, pick only one CPU here */ | ||
124 | static inline unsigned int cpu_mask_to_apicid(cpumask_t cpumask) | ||
125 | { | ||
126 | int cpu; | ||
127 | int apicid; | ||
128 | |||
129 | cpu = first_cpu(cpumask); | ||
130 | apicid = cpu_to_logical_apicid(cpu); | ||
131 | return apicid; | ||
132 | } | ||
133 | |||
134 | static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb) | ||
135 | { | ||
136 | return cpuid_apic >> index_msb; | ||
137 | } | ||
138 | |||
139 | #endif /* __ASM_MACH_APIC_H */ | ||
diff --git a/arch/x86/include/asm/bigsmp/apicdef.h b/arch/x86/include/asm/bigsmp/apicdef.h new file mode 100644 index 000000000000..392c3f5ef2fe --- /dev/null +++ b/arch/x86/include/asm/bigsmp/apicdef.h | |||
@@ -0,0 +1,13 @@ | |||
1 | #ifndef __ASM_MACH_APICDEF_H | ||
2 | #define __ASM_MACH_APICDEF_H | ||
3 | |||
4 | #define APIC_ID_MASK (0xFF<<24) | ||
5 | |||
6 | static inline unsigned get_apic_id(unsigned long x) | ||
7 | { | ||
8 | return (((x)>>24)&0xFF); | ||
9 | } | ||
10 | |||
11 | #define GET_APIC_ID(x) get_apic_id(x) | ||
12 | |||
13 | #endif | ||
diff --git a/arch/x86/include/asm/bigsmp/ipi.h b/arch/x86/include/asm/bigsmp/ipi.h new file mode 100644 index 000000000000..9404c535b7ec --- /dev/null +++ b/arch/x86/include/asm/bigsmp/ipi.h | |||
@@ -0,0 +1,25 @@ | |||
1 | #ifndef __ASM_MACH_IPI_H | ||
2 | #define __ASM_MACH_IPI_H | ||
3 | |||
4 | void send_IPI_mask_sequence(cpumask_t mask, int vector); | ||
5 | |||
6 | static inline void send_IPI_mask(cpumask_t mask, int vector) | ||
7 | { | ||
8 | send_IPI_mask_sequence(mask, vector); | ||
9 | } | ||
10 | |||
11 | static inline void send_IPI_allbutself(int vector) | ||
12 | { | ||
13 | cpumask_t mask = cpu_online_map; | ||
14 | cpu_clear(smp_processor_id(), mask); | ||
15 | |||
16 | if (!cpus_empty(mask)) | ||
17 | send_IPI_mask(mask, vector); | ||
18 | } | ||
19 | |||
20 | static inline void send_IPI_all(int vector) | ||
21 | { | ||
22 | send_IPI_mask(cpu_online_map, vector); | ||
23 | } | ||
24 | |||
25 | #endif /* __ASM_MACH_IPI_H */ | ||
diff --git a/arch/x86/include/asm/bios_ebda.h b/arch/x86/include/asm/bios_ebda.h new file mode 100644 index 000000000000..3c7521063d3f --- /dev/null +++ b/arch/x86/include/asm/bios_ebda.h | |||
@@ -0,0 +1,36 @@ | |||
1 | #ifndef _ASM_X86_BIOS_EBDA_H | ||
2 | #define _ASM_X86_BIOS_EBDA_H | ||
3 | |||
4 | #include <asm/io.h> | ||
5 | |||
6 | /* | ||
7 | * there is a real-mode segmented pointer pointing to the | ||
8 | * 4K EBDA area at 0x40E. | ||
9 | */ | ||
10 | static inline unsigned int get_bios_ebda(void) | ||
11 | { | ||
12 | unsigned int address = *(unsigned short *)phys_to_virt(0x40E); | ||
13 | address <<= 4; | ||
14 | return address; /* 0 means none */ | ||
15 | } | ||
16 | |||
17 | void reserve_ebda_region(void); | ||
18 | |||
19 | #ifdef CONFIG_X86_CHECK_BIOS_CORRUPTION | ||
20 | /* | ||
21 | * This is obviously not a great place for this, but we want to be | ||
22 | * able to scatter it around anywhere in the kernel. | ||
23 | */ | ||
24 | void check_for_bios_corruption(void); | ||
25 | void start_periodic_check_for_corruption(void); | ||
26 | #else | ||
27 | static inline void check_for_bios_corruption(void) | ||
28 | { | ||
29 | } | ||
30 | |||
31 | static inline void start_periodic_check_for_corruption(void) | ||
32 | { | ||
33 | } | ||
34 | #endif | ||
35 | |||
36 | #endif /* _ASM_X86_BIOS_EBDA_H */ | ||
diff --git a/arch/x86/include/asm/bitops.h b/arch/x86/include/asm/bitops.h new file mode 100644 index 000000000000..360010322711 --- /dev/null +++ b/arch/x86/include/asm/bitops.h | |||
@@ -0,0 +1,451 @@ | |||
1 | #ifndef _ASM_X86_BITOPS_H | ||
2 | #define _ASM_X86_BITOPS_H | ||
3 | |||
4 | /* | ||
5 | * Copyright 1992, Linus Torvalds. | ||
6 | */ | ||
7 | |||
8 | #ifndef _LINUX_BITOPS_H | ||
9 | #error only <linux/bitops.h> can be included directly | ||
10 | #endif | ||
11 | |||
12 | #include <linux/compiler.h> | ||
13 | #include <asm/alternative.h> | ||
14 | |||
15 | /* | ||
16 | * These have to be done with inline assembly: that way the bit-setting | ||
17 | * is guaranteed to be atomic. All bit operations return 0 if the bit | ||
18 | * was cleared before the operation and != 0 if it was not. | ||
19 | * | ||
20 | * bit 0 is the LSB of addr; bit 32 is the LSB of (addr+1). | ||
21 | */ | ||
22 | |||
23 | #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 1) | ||
24 | /* Technically wrong, but this avoids compilation errors on some gcc | ||
25 | versions. */ | ||
26 | #define BITOP_ADDR(x) "=m" (*(volatile long *) (x)) | ||
27 | #else | ||
28 | #define BITOP_ADDR(x) "+m" (*(volatile long *) (x)) | ||
29 | #endif | ||
30 | |||
31 | #define ADDR BITOP_ADDR(addr) | ||
32 | |||
33 | /* | ||
34 | * We do the locked ops that don't return the old value as | ||
35 | * a mask operation on a byte. | ||
36 | */ | ||
37 | #define IS_IMMEDIATE(nr) (__builtin_constant_p(nr)) | ||
38 | #define CONST_MASK_ADDR(nr, addr) BITOP_ADDR((void *)(addr) + ((nr)>>3)) | ||
39 | #define CONST_MASK(nr) (1 << ((nr) & 7)) | ||
40 | |||
41 | /** | ||
42 | * set_bit - Atomically set a bit in memory | ||
43 | * @nr: the bit to set | ||
44 | * @addr: the address to start counting from | ||
45 | * | ||
46 | * This function is atomic and may not be reordered. See __set_bit() | ||
47 | * if you do not require the atomic guarantees. | ||
48 | * | ||
49 | * Note: there are no guarantees that this function will not be reordered | ||
50 | * on non x86 architectures, so if you are writing portable code, | ||
51 | * make sure not to rely on its reordering guarantees. | ||
52 | * | ||
53 | * Note that @nr may be almost arbitrarily large; this function is not | ||
54 | * restricted to acting on a single-word quantity. | ||
55 | */ | ||
56 | static inline void set_bit(unsigned int nr, volatile unsigned long *addr) | ||
57 | { | ||
58 | if (IS_IMMEDIATE(nr)) { | ||
59 | asm volatile(LOCK_PREFIX "orb %1,%0" | ||
60 | : CONST_MASK_ADDR(nr, addr) | ||
61 | : "iq" ((u8)CONST_MASK(nr)) | ||
62 | : "memory"); | ||
63 | } else { | ||
64 | asm volatile(LOCK_PREFIX "bts %1,%0" | ||
65 | : BITOP_ADDR(addr) : "Ir" (nr) : "memory"); | ||
66 | } | ||
67 | } | ||
68 | |||
69 | /** | ||
70 | * __set_bit - Set a bit in memory | ||
71 | * @nr: the bit to set | ||
72 | * @addr: the address to start counting from | ||
73 | * | ||
74 | * Unlike set_bit(), this function is non-atomic and may be reordered. | ||
75 | * If it's called on the same region of memory simultaneously, the effect | ||
76 | * may be that only one operation succeeds. | ||
77 | */ | ||
78 | static inline void __set_bit(int nr, volatile unsigned long *addr) | ||
79 | { | ||
80 | asm volatile("bts %1,%0" : ADDR : "Ir" (nr) : "memory"); | ||
81 | } | ||
82 | |||
83 | /** | ||
84 | * clear_bit - Clears a bit in memory | ||
85 | * @nr: Bit to clear | ||
86 | * @addr: Address to start counting from | ||
87 | * | ||
88 | * clear_bit() is atomic and may not be reordered. However, it does | ||
89 | * not contain a memory barrier, so if it is used for locking purposes, | ||
90 | * you should call smp_mb__before_clear_bit() and/or smp_mb__after_clear_bit() | ||
91 | * in order to ensure changes are visible on other processors. | ||
92 | */ | ||
93 | static inline void clear_bit(int nr, volatile unsigned long *addr) | ||
94 | { | ||
95 | if (IS_IMMEDIATE(nr)) { | ||
96 | asm volatile(LOCK_PREFIX "andb %1,%0" | ||
97 | : CONST_MASK_ADDR(nr, addr) | ||
98 | : "iq" ((u8)~CONST_MASK(nr))); | ||
99 | } else { | ||
100 | asm volatile(LOCK_PREFIX "btr %1,%0" | ||
101 | : BITOP_ADDR(addr) | ||
102 | : "Ir" (nr)); | ||
103 | } | ||
104 | } | ||
105 | |||
106 | /* | ||
107 | * clear_bit_unlock - Clears a bit in memory | ||
108 | * @nr: Bit to clear | ||
109 | * @addr: Address to start counting from | ||
110 | * | ||
111 | * clear_bit() is atomic and implies release semantics before the memory | ||
112 | * operation. It can be used for an unlock. | ||
113 | */ | ||
114 | static inline void clear_bit_unlock(unsigned nr, volatile unsigned long *addr) | ||
115 | { | ||
116 | barrier(); | ||
117 | clear_bit(nr, addr); | ||
118 | } | ||
119 | |||
120 | static inline void __clear_bit(int nr, volatile unsigned long *addr) | ||
121 | { | ||
122 | asm volatile("btr %1,%0" : ADDR : "Ir" (nr)); | ||
123 | } | ||
124 | |||
125 | /* | ||
126 | * __clear_bit_unlock - Clears a bit in memory | ||
127 | * @nr: Bit to clear | ||
128 | * @addr: Address to start counting from | ||
129 | * | ||
130 | * __clear_bit() is non-atomic and implies release semantics before the memory | ||
131 | * operation. It can be used for an unlock if no other CPUs can concurrently | ||
132 | * modify other bits in the word. | ||
133 | * | ||
134 | * No memory barrier is required here, because x86 cannot reorder stores past | ||
135 | * older loads. Same principle as spin_unlock. | ||
136 | */ | ||
137 | static inline void __clear_bit_unlock(unsigned nr, volatile unsigned long *addr) | ||
138 | { | ||
139 | barrier(); | ||
140 | __clear_bit(nr, addr); | ||
141 | } | ||
142 | |||
143 | #define smp_mb__before_clear_bit() barrier() | ||
144 | #define smp_mb__after_clear_bit() barrier() | ||
145 | |||
146 | /** | ||
147 | * __change_bit - Toggle a bit in memory | ||
148 | * @nr: the bit to change | ||
149 | * @addr: the address to start counting from | ||
150 | * | ||
151 | * Unlike change_bit(), this function is non-atomic and may be reordered. | ||
152 | * If it's called on the same region of memory simultaneously, the effect | ||
153 | * may be that only one operation succeeds. | ||
154 | */ | ||
155 | static inline void __change_bit(int nr, volatile unsigned long *addr) | ||
156 | { | ||
157 | asm volatile("btc %1,%0" : ADDR : "Ir" (nr)); | ||
158 | } | ||
159 | |||
160 | /** | ||
161 | * change_bit - Toggle a bit in memory | ||
162 | * @nr: Bit to change | ||
163 | * @addr: Address to start counting from | ||
164 | * | ||
165 | * change_bit() is atomic and may not be reordered. | ||
166 | * Note that @nr may be almost arbitrarily large; this function is not | ||
167 | * restricted to acting on a single-word quantity. | ||
168 | */ | ||
169 | static inline void change_bit(int nr, volatile unsigned long *addr) | ||
170 | { | ||
171 | asm volatile(LOCK_PREFIX "btc %1,%0" : ADDR : "Ir" (nr)); | ||
172 | } | ||
173 | |||
174 | /** | ||
175 | * test_and_set_bit - Set a bit and return its old value | ||
176 | * @nr: Bit to set | ||
177 | * @addr: Address to count from | ||
178 | * | ||
179 | * This operation is atomic and cannot be reordered. | ||
180 | * It also implies a memory barrier. | ||
181 | */ | ||
182 | static inline int test_and_set_bit(int nr, volatile unsigned long *addr) | ||
183 | { | ||
184 | int oldbit; | ||
185 | |||
186 | asm volatile(LOCK_PREFIX "bts %2,%1\n\t" | ||
187 | "sbb %0,%0" : "=r" (oldbit), ADDR : "Ir" (nr) : "memory"); | ||
188 | |||
189 | return oldbit; | ||
190 | } | ||
191 | |||
192 | /** | ||
193 | * test_and_set_bit_lock - Set a bit and return its old value for lock | ||
194 | * @nr: Bit to set | ||
195 | * @addr: Address to count from | ||
196 | * | ||
197 | * This is the same as test_and_set_bit on x86. | ||
198 | */ | ||
199 | static inline int test_and_set_bit_lock(int nr, volatile unsigned long *addr) | ||
200 | { | ||
201 | return test_and_set_bit(nr, addr); | ||
202 | } | ||
203 | |||
204 | /** | ||
205 | * __test_and_set_bit - Set a bit and return its old value | ||
206 | * @nr: Bit to set | ||
207 | * @addr: Address to count from | ||
208 | * | ||
209 | * This operation is non-atomic and can be reordered. | ||
210 | * If two examples of this operation race, one can appear to succeed | ||
211 | * but actually fail. You must protect multiple accesses with a lock. | ||
212 | */ | ||
213 | static inline int __test_and_set_bit(int nr, volatile unsigned long *addr) | ||
214 | { | ||
215 | int oldbit; | ||
216 | |||
217 | asm("bts %2,%1\n\t" | ||
218 | "sbb %0,%0" | ||
219 | : "=r" (oldbit), ADDR | ||
220 | : "Ir" (nr)); | ||
221 | return oldbit; | ||
222 | } | ||
223 | |||
224 | /** | ||
225 | * test_and_clear_bit - Clear a bit and return its old value | ||
226 | * @nr: Bit to clear | ||
227 | * @addr: Address to count from | ||
228 | * | ||
229 | * This operation is atomic and cannot be reordered. | ||
230 | * It also implies a memory barrier. | ||
231 | */ | ||
232 | static inline int test_and_clear_bit(int nr, volatile unsigned long *addr) | ||
233 | { | ||
234 | int oldbit; | ||
235 | |||
236 | asm volatile(LOCK_PREFIX "btr %2,%1\n\t" | ||
237 | "sbb %0,%0" | ||
238 | : "=r" (oldbit), ADDR : "Ir" (nr) : "memory"); | ||
239 | |||
240 | return oldbit; | ||
241 | } | ||
242 | |||
243 | /** | ||
244 | * __test_and_clear_bit - Clear a bit and return its old value | ||
245 | * @nr: Bit to clear | ||
246 | * @addr: Address to count from | ||
247 | * | ||
248 | * This operation is non-atomic and can be reordered. | ||
249 | * If two examples of this operation race, one can appear to succeed | ||
250 | * but actually fail. You must protect multiple accesses with a lock. | ||
251 | */ | ||
252 | static inline int __test_and_clear_bit(int nr, volatile unsigned long *addr) | ||
253 | { | ||
254 | int oldbit; | ||
255 | |||
256 | asm volatile("btr %2,%1\n\t" | ||
257 | "sbb %0,%0" | ||
258 | : "=r" (oldbit), ADDR | ||
259 | : "Ir" (nr)); | ||
260 | return oldbit; | ||
261 | } | ||
262 | |||
263 | /* WARNING: non atomic and it can be reordered! */ | ||
264 | static inline int __test_and_change_bit(int nr, volatile unsigned long *addr) | ||
265 | { | ||
266 | int oldbit; | ||
267 | |||
268 | asm volatile("btc %2,%1\n\t" | ||
269 | "sbb %0,%0" | ||
270 | : "=r" (oldbit), ADDR | ||
271 | : "Ir" (nr) : "memory"); | ||
272 | |||
273 | return oldbit; | ||
274 | } | ||
275 | |||
276 | /** | ||
277 | * test_and_change_bit - Change a bit and return its old value | ||
278 | * @nr: Bit to change | ||
279 | * @addr: Address to count from | ||
280 | * | ||
281 | * This operation is atomic and cannot be reordered. | ||
282 | * It also implies a memory barrier. | ||
283 | */ | ||
284 | static inline int test_and_change_bit(int nr, volatile unsigned long *addr) | ||
285 | { | ||
286 | int oldbit; | ||
287 | |||
288 | asm volatile(LOCK_PREFIX "btc %2,%1\n\t" | ||
289 | "sbb %0,%0" | ||
290 | : "=r" (oldbit), ADDR : "Ir" (nr) : "memory"); | ||
291 | |||
292 | return oldbit; | ||
293 | } | ||
294 | |||
295 | static inline int constant_test_bit(int nr, const volatile unsigned long *addr) | ||
296 | { | ||
297 | return ((1UL << (nr % BITS_PER_LONG)) & | ||
298 | (((unsigned long *)addr)[nr / BITS_PER_LONG])) != 0; | ||
299 | } | ||
300 | |||
301 | static inline int variable_test_bit(int nr, volatile const unsigned long *addr) | ||
302 | { | ||
303 | int oldbit; | ||
304 | |||
305 | asm volatile("bt %2,%1\n\t" | ||
306 | "sbb %0,%0" | ||
307 | : "=r" (oldbit) | ||
308 | : "m" (*(unsigned long *)addr), "Ir" (nr)); | ||
309 | |||
310 | return oldbit; | ||
311 | } | ||
312 | |||
313 | #if 0 /* Fool kernel-doc since it doesn't do macros yet */ | ||
314 | /** | ||
315 | * test_bit - Determine whether a bit is set | ||
316 | * @nr: bit number to test | ||
317 | * @addr: Address to start counting from | ||
318 | */ | ||
319 | static int test_bit(int nr, const volatile unsigned long *addr); | ||
320 | #endif | ||
321 | |||
322 | #define test_bit(nr, addr) \ | ||
323 | (__builtin_constant_p((nr)) \ | ||
324 | ? constant_test_bit((nr), (addr)) \ | ||
325 | : variable_test_bit((nr), (addr))) | ||
326 | |||
327 | /** | ||
328 | * __ffs - find first set bit in word | ||
329 | * @word: The word to search | ||
330 | * | ||
331 | * Undefined if no bit exists, so code should check against 0 first. | ||
332 | */ | ||
333 | static inline unsigned long __ffs(unsigned long word) | ||
334 | { | ||
335 | asm("bsf %1,%0" | ||
336 | : "=r" (word) | ||
337 | : "rm" (word)); | ||
338 | return word; | ||
339 | } | ||
340 | |||
341 | /** | ||
342 | * ffz - find first zero bit in word | ||
343 | * @word: The word to search | ||
344 | * | ||
345 | * Undefined if no zero exists, so code should check against ~0UL first. | ||
346 | */ | ||
347 | static inline unsigned long ffz(unsigned long word) | ||
348 | { | ||
349 | asm("bsf %1,%0" | ||
350 | : "=r" (word) | ||
351 | : "r" (~word)); | ||
352 | return word; | ||
353 | } | ||
354 | |||
355 | /* | ||
356 | * __fls: find last set bit in word | ||
357 | * @word: The word to search | ||
358 | * | ||
359 | * Undefined if no set bit exists, so code should check against 0 first. | ||
360 | */ | ||
361 | static inline unsigned long __fls(unsigned long word) | ||
362 | { | ||
363 | asm("bsr %1,%0" | ||
364 | : "=r" (word) | ||
365 | : "rm" (word)); | ||
366 | return word; | ||
367 | } | ||
368 | |||
369 | #ifdef __KERNEL__ | ||
370 | /** | ||
371 | * ffs - find first set bit in word | ||
372 | * @x: the word to search | ||
373 | * | ||
374 | * This is defined the same way as the libc and compiler builtin ffs | ||
375 | * routines, therefore differs in spirit from the other bitops. | ||
376 | * | ||
377 | * ffs(value) returns 0 if value is 0 or the position of the first | ||
378 | * set bit if value is nonzero. The first (least significant) bit | ||
379 | * is at position 1. | ||
380 | */ | ||
381 | static inline int ffs(int x) | ||
382 | { | ||
383 | int r; | ||
384 | #ifdef CONFIG_X86_CMOV | ||
385 | asm("bsfl %1,%0\n\t" | ||
386 | "cmovzl %2,%0" | ||
387 | : "=r" (r) : "rm" (x), "r" (-1)); | ||
388 | #else | ||
389 | asm("bsfl %1,%0\n\t" | ||
390 | "jnz 1f\n\t" | ||
391 | "movl $-1,%0\n" | ||
392 | "1:" : "=r" (r) : "rm" (x)); | ||
393 | #endif | ||
394 | return r + 1; | ||
395 | } | ||
396 | |||
397 | /** | ||
398 | * fls - find last set bit in word | ||
399 | * @x: the word to search | ||
400 | * | ||
401 | * This is defined in a similar way as the libc and compiler builtin | ||
402 | * ffs, but returns the position of the most significant set bit. | ||
403 | * | ||
404 | * fls(value) returns 0 if value is 0 or the position of the last | ||
405 | * set bit if value is nonzero. The last (most significant) bit is | ||
406 | * at position 32. | ||
407 | */ | ||
408 | static inline int fls(int x) | ||
409 | { | ||
410 | int r; | ||
411 | #ifdef CONFIG_X86_CMOV | ||
412 | asm("bsrl %1,%0\n\t" | ||
413 | "cmovzl %2,%0" | ||
414 | : "=&r" (r) : "rm" (x), "rm" (-1)); | ||
415 | #else | ||
416 | asm("bsrl %1,%0\n\t" | ||
417 | "jnz 1f\n\t" | ||
418 | "movl $-1,%0\n" | ||
419 | "1:" : "=r" (r) : "rm" (x)); | ||
420 | #endif | ||
421 | return r + 1; | ||
422 | } | ||
423 | #endif /* __KERNEL__ */ | ||
424 | |||
425 | #undef ADDR | ||
426 | |||
427 | #ifdef __KERNEL__ | ||
428 | |||
429 | #include <asm-generic/bitops/sched.h> | ||
430 | |||
431 | #define ARCH_HAS_FAST_MULTIPLIER 1 | ||
432 | |||
433 | #include <asm-generic/bitops/hweight.h> | ||
434 | |||
435 | #endif /* __KERNEL__ */ | ||
436 | |||
437 | #include <asm-generic/bitops/fls64.h> | ||
438 | |||
439 | #ifdef __KERNEL__ | ||
440 | |||
441 | #include <asm-generic/bitops/ext2-non-atomic.h> | ||
442 | |||
443 | #define ext2_set_bit_atomic(lock, nr, addr) \ | ||
444 | test_and_set_bit((nr), (unsigned long *)(addr)) | ||
445 | #define ext2_clear_bit_atomic(lock, nr, addr) \ | ||
446 | test_and_clear_bit((nr), (unsigned long *)(addr)) | ||
447 | |||
448 | #include <asm-generic/bitops/minix.h> | ||
449 | |||
450 | #endif /* __KERNEL__ */ | ||
451 | #endif /* _ASM_X86_BITOPS_H */ | ||
diff --git a/arch/x86/include/asm/boot.h b/arch/x86/include/asm/boot.h new file mode 100644 index 000000000000..dd61616cb73d --- /dev/null +++ b/arch/x86/include/asm/boot.h | |||
@@ -0,0 +1,26 @@ | |||
1 | #ifndef _ASM_X86_BOOT_H | ||
2 | #define _ASM_X86_BOOT_H | ||
3 | |||
4 | /* Don't touch these, unless you really know what you're doing. */ | ||
5 | #define DEF_SYSSEG 0x1000 | ||
6 | #define DEF_SYSSIZE 0x7F00 | ||
7 | |||
8 | /* Internal svga startup constants */ | ||
9 | #define NORMAL_VGA 0xffff /* 80x25 mode */ | ||
10 | #define EXTENDED_VGA 0xfffe /* 80x50 mode */ | ||
11 | #define ASK_VGA 0xfffd /* ask for it at bootup */ | ||
12 | |||
13 | /* Physical address where kernel should be loaded. */ | ||
14 | #define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \ | ||
15 | + (CONFIG_PHYSICAL_ALIGN - 1)) \ | ||
16 | & ~(CONFIG_PHYSICAL_ALIGN - 1)) | ||
17 | |||
18 | #ifdef CONFIG_X86_64 | ||
19 | #define BOOT_HEAP_SIZE 0x7000 | ||
20 | #define BOOT_STACK_SIZE 0x4000 | ||
21 | #else | ||
22 | #define BOOT_HEAP_SIZE 0x4000 | ||
23 | #define BOOT_STACK_SIZE 0x1000 | ||
24 | #endif | ||
25 | |||
26 | #endif /* _ASM_X86_BOOT_H */ | ||
diff --git a/arch/x86/include/asm/bootparam.h b/arch/x86/include/asm/bootparam.h new file mode 100644 index 000000000000..433adaebf9b6 --- /dev/null +++ b/arch/x86/include/asm/bootparam.h | |||
@@ -0,0 +1,111 @@ | |||
1 | #ifndef _ASM_X86_BOOTPARAM_H | ||
2 | #define _ASM_X86_BOOTPARAM_H | ||
3 | |||
4 | #include <linux/types.h> | ||
5 | #include <linux/screen_info.h> | ||
6 | #include <linux/apm_bios.h> | ||
7 | #include <linux/edd.h> | ||
8 | #include <asm/e820.h> | ||
9 | #include <asm/ist.h> | ||
10 | #include <video/edid.h> | ||
11 | |||
12 | /* setup data types */ | ||
13 | #define SETUP_NONE 0 | ||
14 | #define SETUP_E820_EXT 1 | ||
15 | |||
16 | /* extensible setup data list node */ | ||
17 | struct setup_data { | ||
18 | __u64 next; | ||
19 | __u32 type; | ||
20 | __u32 len; | ||
21 | __u8 data[0]; | ||
22 | }; | ||
23 | |||
24 | struct setup_header { | ||
25 | __u8 setup_sects; | ||
26 | __u16 root_flags; | ||
27 | __u32 syssize; | ||
28 | __u16 ram_size; | ||
29 | #define RAMDISK_IMAGE_START_MASK 0x07FF | ||
30 | #define RAMDISK_PROMPT_FLAG 0x8000 | ||
31 | #define RAMDISK_LOAD_FLAG 0x4000 | ||
32 | __u16 vid_mode; | ||
33 | __u16 root_dev; | ||
34 | __u16 boot_flag; | ||
35 | __u16 jump; | ||
36 | __u32 header; | ||
37 | __u16 version; | ||
38 | __u32 realmode_swtch; | ||
39 | __u16 start_sys; | ||
40 | __u16 kernel_version; | ||
41 | __u8 type_of_loader; | ||
42 | __u8 loadflags; | ||
43 | #define LOADED_HIGH (1<<0) | ||
44 | #define QUIET_FLAG (1<<5) | ||
45 | #define KEEP_SEGMENTS (1<<6) | ||
46 | #define CAN_USE_HEAP (1<<7) | ||
47 | __u16 setup_move_size; | ||
48 | __u32 code32_start; | ||
49 | __u32 ramdisk_image; | ||
50 | __u32 ramdisk_size; | ||
51 | __u32 bootsect_kludge; | ||
52 | __u16 heap_end_ptr; | ||
53 | __u16 _pad1; | ||
54 | __u32 cmd_line_ptr; | ||
55 | __u32 initrd_addr_max; | ||
56 | __u32 kernel_alignment; | ||
57 | __u8 relocatable_kernel; | ||
58 | __u8 _pad2[3]; | ||
59 | __u32 cmdline_size; | ||
60 | __u32 hardware_subarch; | ||
61 | __u64 hardware_subarch_data; | ||
62 | __u32 payload_offset; | ||
63 | __u32 payload_length; | ||
64 | __u64 setup_data; | ||
65 | } __attribute__((packed)); | ||
66 | |||
67 | struct sys_desc_table { | ||
68 | __u16 length; | ||
69 | __u8 table[14]; | ||
70 | }; | ||
71 | |||
72 | struct efi_info { | ||
73 | __u32 efi_loader_signature; | ||
74 | __u32 efi_systab; | ||
75 | __u32 efi_memdesc_size; | ||
76 | __u32 efi_memdesc_version; | ||
77 | __u32 efi_memmap; | ||
78 | __u32 efi_memmap_size; | ||
79 | __u32 efi_systab_hi; | ||
80 | __u32 efi_memmap_hi; | ||
81 | }; | ||
82 | |||
83 | /* The so-called "zeropage" */ | ||
84 | struct boot_params { | ||
85 | struct screen_info screen_info; /* 0x000 */ | ||
86 | struct apm_bios_info apm_bios_info; /* 0x040 */ | ||
87 | __u8 _pad2[12]; /* 0x054 */ | ||
88 | struct ist_info ist_info; /* 0x060 */ | ||
89 | __u8 _pad3[16]; /* 0x070 */ | ||
90 | __u8 hd0_info[16]; /* obsolete! */ /* 0x080 */ | ||
91 | __u8 hd1_info[16]; /* obsolete! */ /* 0x090 */ | ||
92 | struct sys_desc_table sys_desc_table; /* 0x0a0 */ | ||
93 | __u8 _pad4[144]; /* 0x0b0 */ | ||
94 | struct edid_info edid_info; /* 0x140 */ | ||
95 | struct efi_info efi_info; /* 0x1c0 */ | ||
96 | __u32 alt_mem_k; /* 0x1e0 */ | ||
97 | __u32 scratch; /* Scratch field! */ /* 0x1e4 */ | ||
98 | __u8 e820_entries; /* 0x1e8 */ | ||
99 | __u8 eddbuf_entries; /* 0x1e9 */ | ||
100 | __u8 edd_mbr_sig_buf_entries; /* 0x1ea */ | ||
101 | __u8 _pad6[6]; /* 0x1eb */ | ||
102 | struct setup_header hdr; /* setup header */ /* 0x1f1 */ | ||
103 | __u8 _pad7[0x290-0x1f1-sizeof(struct setup_header)]; | ||
104 | __u32 edd_mbr_sig_buffer[EDD_MBR_SIG_MAX]; /* 0x290 */ | ||
105 | struct e820entry e820_map[E820MAX]; /* 0x2d0 */ | ||
106 | __u8 _pad8[48]; /* 0xcd0 */ | ||
107 | struct edd_info eddbuf[EDDMAXNR]; /* 0xd00 */ | ||
108 | __u8 _pad9[276]; /* 0xeec */ | ||
109 | } __attribute__((packed)); | ||
110 | |||
111 | #endif /* _ASM_X86_BOOTPARAM_H */ | ||
diff --git a/arch/x86/include/asm/bug.h b/arch/x86/include/asm/bug.h new file mode 100644 index 000000000000..3def2065fcea --- /dev/null +++ b/arch/x86/include/asm/bug.h | |||
@@ -0,0 +1,39 @@ | |||
1 | #ifndef _ASM_X86_BUG_H | ||
2 | #define _ASM_X86_BUG_H | ||
3 | |||
4 | #ifdef CONFIG_BUG | ||
5 | #define HAVE_ARCH_BUG | ||
6 | |||
7 | #ifdef CONFIG_DEBUG_BUGVERBOSE | ||
8 | |||
9 | #ifdef CONFIG_X86_32 | ||
10 | # define __BUG_C0 "2:\t.long 1b, %c0\n" | ||
11 | #else | ||
12 | # define __BUG_C0 "2:\t.quad 1b, %c0\n" | ||
13 | #endif | ||
14 | |||
15 | #define BUG() \ | ||
16 | do { \ | ||
17 | asm volatile("1:\tud2\n" \ | ||
18 | ".pushsection __bug_table,\"a\"\n" \ | ||
19 | __BUG_C0 \ | ||
20 | "\t.word %c1, 0\n" \ | ||
21 | "\t.org 2b+%c2\n" \ | ||
22 | ".popsection" \ | ||
23 | : : "i" (__FILE__), "i" (__LINE__), \ | ||
24 | "i" (sizeof(struct bug_entry))); \ | ||
25 | for (;;) ; \ | ||
26 | } while (0) | ||
27 | |||
28 | #else | ||
29 | #define BUG() \ | ||
30 | do { \ | ||
31 | asm volatile("ud2"); \ | ||
32 | for (;;) ; \ | ||
33 | } while (0) | ||
34 | #endif | ||
35 | |||
36 | #endif /* !CONFIG_BUG */ | ||
37 | |||
38 | #include <asm-generic/bug.h> | ||
39 | #endif /* _ASM_X86_BUG_H */ | ||
diff --git a/arch/x86/include/asm/bugs.h b/arch/x86/include/asm/bugs.h new file mode 100644 index 000000000000..08abf639075f --- /dev/null +++ b/arch/x86/include/asm/bugs.h | |||
@@ -0,0 +1,12 @@ | |||
1 | #ifndef _ASM_X86_BUGS_H | ||
2 | #define _ASM_X86_BUGS_H | ||
3 | |||
4 | extern void check_bugs(void); | ||
5 | |||
6 | #if defined(CONFIG_CPU_SUP_INTEL) && defined(CONFIG_X86_32) | ||
7 | int ppro_with_ram_bug(void); | ||
8 | #else | ||
9 | static inline int ppro_with_ram_bug(void) { return 0; } | ||
10 | #endif | ||
11 | |||
12 | #endif /* _ASM_X86_BUGS_H */ | ||
diff --git a/arch/x86/include/asm/byteorder.h b/arch/x86/include/asm/byteorder.h new file mode 100644 index 000000000000..e02ae2d89acf --- /dev/null +++ b/arch/x86/include/asm/byteorder.h | |||
@@ -0,0 +1,81 @@ | |||
1 | #ifndef _ASM_X86_BYTEORDER_H | ||
2 | #define _ASM_X86_BYTEORDER_H | ||
3 | |||
4 | #include <asm/types.h> | ||
5 | #include <linux/compiler.h> | ||
6 | |||
7 | #ifdef __GNUC__ | ||
8 | |||
9 | #ifdef __i386__ | ||
10 | |||
11 | static inline __attribute_const__ __u32 ___arch__swab32(__u32 x) | ||
12 | { | ||
13 | #ifdef CONFIG_X86_BSWAP | ||
14 | asm("bswap %0" : "=r" (x) : "0" (x)); | ||
15 | #else | ||
16 | asm("xchgb %b0,%h0\n\t" /* swap lower bytes */ | ||
17 | "rorl $16,%0\n\t" /* swap words */ | ||
18 | "xchgb %b0,%h0" /* swap higher bytes */ | ||
19 | : "=q" (x) | ||
20 | : "0" (x)); | ||
21 | #endif | ||
22 | return x; | ||
23 | } | ||
24 | |||
25 | static inline __attribute_const__ __u64 ___arch__swab64(__u64 val) | ||
26 | { | ||
27 | union { | ||
28 | struct { | ||
29 | __u32 a; | ||
30 | __u32 b; | ||
31 | } s; | ||
32 | __u64 u; | ||
33 | } v; | ||
34 | v.u = val; | ||
35 | #ifdef CONFIG_X86_BSWAP | ||
36 | asm("bswapl %0 ; bswapl %1 ; xchgl %0,%1" | ||
37 | : "=r" (v.s.a), "=r" (v.s.b) | ||
38 | : "0" (v.s.a), "1" (v.s.b)); | ||
39 | #else | ||
40 | v.s.a = ___arch__swab32(v.s.a); | ||
41 | v.s.b = ___arch__swab32(v.s.b); | ||
42 | asm("xchgl %0,%1" | ||
43 | : "=r" (v.s.a), "=r" (v.s.b) | ||
44 | : "0" (v.s.a), "1" (v.s.b)); | ||
45 | #endif | ||
46 | return v.u; | ||
47 | } | ||
48 | |||
49 | #else /* __i386__ */ | ||
50 | |||
51 | static inline __attribute_const__ __u64 ___arch__swab64(__u64 x) | ||
52 | { | ||
53 | asm("bswapq %0" | ||
54 | : "=r" (x) | ||
55 | : "0" (x)); | ||
56 | return x; | ||
57 | } | ||
58 | |||
59 | static inline __attribute_const__ __u32 ___arch__swab32(__u32 x) | ||
60 | { | ||
61 | asm("bswapl %0" | ||
62 | : "=r" (x) | ||
63 | : "0" (x)); | ||
64 | return x; | ||
65 | } | ||
66 | |||
67 | #endif | ||
68 | |||
69 | /* Do not define swab16. Gcc is smart enough to recognize "C" version and | ||
70 | convert it into rotation or exhange. */ | ||
71 | |||
72 | #define __arch__swab64(x) ___arch__swab64(x) | ||
73 | #define __arch__swab32(x) ___arch__swab32(x) | ||
74 | |||
75 | #define __BYTEORDER_HAS_U64__ | ||
76 | |||
77 | #endif /* __GNUC__ */ | ||
78 | |||
79 | #include <linux/byteorder/little_endian.h> | ||
80 | |||
81 | #endif /* _ASM_X86_BYTEORDER_H */ | ||
diff --git a/arch/x86/include/asm/cache.h b/arch/x86/include/asm/cache.h new file mode 100644 index 000000000000..5d367caa0e36 --- /dev/null +++ b/arch/x86/include/asm/cache.h | |||
@@ -0,0 +1,20 @@ | |||
1 | #ifndef _ASM_X86_CACHE_H | ||
2 | #define _ASM_X86_CACHE_H | ||
3 | |||
4 | /* L1 cache line size */ | ||
5 | #define L1_CACHE_SHIFT (CONFIG_X86_L1_CACHE_SHIFT) | ||
6 | #define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT) | ||
7 | |||
8 | #define __read_mostly __attribute__((__section__(".data.read_mostly"))) | ||
9 | |||
10 | #ifdef CONFIG_X86_VSMP | ||
11 | /* vSMP Internode cacheline shift */ | ||
12 | #define INTERNODE_CACHE_SHIFT (12) | ||
13 | #ifdef CONFIG_SMP | ||
14 | #define __cacheline_aligned_in_smp \ | ||
15 | __attribute__((__aligned__(1 << (INTERNODE_CACHE_SHIFT)))) \ | ||
16 | __attribute__((__section__(".data.page_aligned"))) | ||
17 | #endif | ||
18 | #endif | ||
19 | |||
20 | #endif /* _ASM_X86_CACHE_H */ | ||
diff --git a/arch/x86/include/asm/cacheflush.h b/arch/x86/include/asm/cacheflush.h new file mode 100644 index 000000000000..2f8466540fb5 --- /dev/null +++ b/arch/x86/include/asm/cacheflush.h | |||
@@ -0,0 +1,118 @@ | |||
1 | #ifndef _ASM_X86_CACHEFLUSH_H | ||
2 | #define _ASM_X86_CACHEFLUSH_H | ||
3 | |||
4 | /* Keep includes the same across arches. */ | ||
5 | #include <linux/mm.h> | ||
6 | |||
7 | /* Caches aren't brain-dead on the intel. */ | ||
8 | #define flush_cache_all() do { } while (0) | ||
9 | #define flush_cache_mm(mm) do { } while (0) | ||
10 | #define flush_cache_dup_mm(mm) do { } while (0) | ||
11 | #define flush_cache_range(vma, start, end) do { } while (0) | ||
12 | #define flush_cache_page(vma, vmaddr, pfn) do { } while (0) | ||
13 | #define flush_dcache_page(page) do { } while (0) | ||
14 | #define flush_dcache_mmap_lock(mapping) do { } while (0) | ||
15 | #define flush_dcache_mmap_unlock(mapping) do { } while (0) | ||
16 | #define flush_icache_range(start, end) do { } while (0) | ||
17 | #define flush_icache_page(vma, pg) do { } while (0) | ||
18 | #define flush_icache_user_range(vma, pg, adr, len) do { } while (0) | ||
19 | #define flush_cache_vmap(start, end) do { } while (0) | ||
20 | #define flush_cache_vunmap(start, end) do { } while (0) | ||
21 | |||
22 | #define copy_to_user_page(vma, page, vaddr, dst, src, len) \ | ||
23 | memcpy((dst), (src), (len)) | ||
24 | #define copy_from_user_page(vma, page, vaddr, dst, src, len) \ | ||
25 | memcpy((dst), (src), (len)) | ||
26 | |||
27 | #define PG_non_WB PG_arch_1 | ||
28 | PAGEFLAG(NonWB, non_WB) | ||
29 | |||
30 | /* | ||
31 | * The set_memory_* API can be used to change various attributes of a virtual | ||
32 | * address range. The attributes include: | ||
33 | * Cachability : UnCached, WriteCombining, WriteBack | ||
34 | * Executability : eXeutable, NoteXecutable | ||
35 | * Read/Write : ReadOnly, ReadWrite | ||
36 | * Presence : NotPresent | ||
37 | * | ||
38 | * Within a catagory, the attributes are mutually exclusive. | ||
39 | * | ||
40 | * The implementation of this API will take care of various aspects that | ||
41 | * are associated with changing such attributes, such as: | ||
42 | * - Flushing TLBs | ||
43 | * - Flushing CPU caches | ||
44 | * - Making sure aliases of the memory behind the mapping don't violate | ||
45 | * coherency rules as defined by the CPU in the system. | ||
46 | * | ||
47 | * What this API does not do: | ||
48 | * - Provide exclusion between various callers - including callers that | ||
49 | * operation on other mappings of the same physical page | ||
50 | * - Restore default attributes when a page is freed | ||
51 | * - Guarantee that mappings other than the requested one are | ||
52 | * in any state, other than that these do not violate rules for | ||
53 | * the CPU you have. Do not depend on any effects on other mappings, | ||
54 | * CPUs other than the one you have may have more relaxed rules. | ||
55 | * The caller is required to take care of these. | ||
56 | */ | ||
57 | |||
58 | int _set_memory_uc(unsigned long addr, int numpages); | ||
59 | int _set_memory_wc(unsigned long addr, int numpages); | ||
60 | int _set_memory_wb(unsigned long addr, int numpages); | ||
61 | int set_memory_uc(unsigned long addr, int numpages); | ||
62 | int set_memory_wc(unsigned long addr, int numpages); | ||
63 | int set_memory_wb(unsigned long addr, int numpages); | ||
64 | int set_memory_x(unsigned long addr, int numpages); | ||
65 | int set_memory_nx(unsigned long addr, int numpages); | ||
66 | int set_memory_ro(unsigned long addr, int numpages); | ||
67 | int set_memory_rw(unsigned long addr, int numpages); | ||
68 | int set_memory_np(unsigned long addr, int numpages); | ||
69 | int set_memory_4k(unsigned long addr, int numpages); | ||
70 | |||
71 | int set_memory_array_uc(unsigned long *addr, int addrinarray); | ||
72 | int set_memory_array_wb(unsigned long *addr, int addrinarray); | ||
73 | |||
74 | /* | ||
75 | * For legacy compatibility with the old APIs, a few functions | ||
76 | * are provided that work on a "struct page". | ||
77 | * These functions operate ONLY on the 1:1 kernel mapping of the | ||
78 | * memory that the struct page represents, and internally just | ||
79 | * call the set_memory_* function. See the description of the | ||
80 | * set_memory_* function for more details on conventions. | ||
81 | * | ||
82 | * These APIs should be considered *deprecated* and are likely going to | ||
83 | * be removed in the future. | ||
84 | * The reason for this is the implicit operation on the 1:1 mapping only, | ||
85 | * making this not a generally useful API. | ||
86 | * | ||
87 | * Specifically, many users of the old APIs had a virtual address, | ||
88 | * called virt_to_page() or vmalloc_to_page() on that address to | ||
89 | * get a struct page* that the old API required. | ||
90 | * To convert these cases, use set_memory_*() on the original | ||
91 | * virtual address, do not use these functions. | ||
92 | */ | ||
93 | |||
94 | int set_pages_uc(struct page *page, int numpages); | ||
95 | int set_pages_wb(struct page *page, int numpages); | ||
96 | int set_pages_x(struct page *page, int numpages); | ||
97 | int set_pages_nx(struct page *page, int numpages); | ||
98 | int set_pages_ro(struct page *page, int numpages); | ||
99 | int set_pages_rw(struct page *page, int numpages); | ||
100 | |||
101 | |||
102 | void clflush_cache_range(void *addr, unsigned int size); | ||
103 | |||
104 | #ifdef CONFIG_DEBUG_RODATA | ||
105 | void mark_rodata_ro(void); | ||
106 | extern const int rodata_test_data; | ||
107 | #endif | ||
108 | |||
109 | #ifdef CONFIG_DEBUG_RODATA_TEST | ||
110 | int rodata_test(void); | ||
111 | #else | ||
112 | static inline int rodata_test(void) | ||
113 | { | ||
114 | return 0; | ||
115 | } | ||
116 | #endif | ||
117 | |||
118 | #endif /* _ASM_X86_CACHEFLUSH_H */ | ||
diff --git a/arch/x86/include/asm/calgary.h b/arch/x86/include/asm/calgary.h new file mode 100644 index 000000000000..b03bedb62aa7 --- /dev/null +++ b/arch/x86/include/asm/calgary.h | |||
@@ -0,0 +1,72 @@ | |||
1 | /* | ||
2 | * Derived from include/asm-powerpc/iommu.h | ||
3 | * | ||
4 | * Copyright IBM Corporation, 2006-2007 | ||
5 | * | ||
6 | * Author: Jon Mason <jdmason@us.ibm.com> | ||
7 | * Author: Muli Ben-Yehuda <muli@il.ibm.com> | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify | ||
10 | * it under the terms of the GNU General Public License as published by | ||
11 | * the Free Software Foundation; either version 2 of the License, or | ||
12 | * (at your option) any later version. | ||
13 | * | ||
14 | * This program is distributed in the hope that it will be useful, | ||
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
17 | * GNU General Public License for more details. | ||
18 | * | ||
19 | * You should have received a copy of the GNU General Public License | ||
20 | * along with this program; if not, write to the Free Software | ||
21 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
22 | */ | ||
23 | |||
24 | #ifndef _ASM_X86_CALGARY_H | ||
25 | #define _ASM_X86_CALGARY_H | ||
26 | |||
27 | #include <linux/spinlock.h> | ||
28 | #include <linux/device.h> | ||
29 | #include <linux/dma-mapping.h> | ||
30 | #include <linux/timer.h> | ||
31 | #include <asm/types.h> | ||
32 | |||
33 | struct iommu_table { | ||
34 | struct cal_chipset_ops *chip_ops; /* chipset specific funcs */ | ||
35 | unsigned long it_base; /* mapped address of tce table */ | ||
36 | unsigned long it_hint; /* Hint for next alloc */ | ||
37 | unsigned long *it_map; /* A simple allocation bitmap for now */ | ||
38 | void __iomem *bbar; /* Bridge BAR */ | ||
39 | u64 tar_val; /* Table Address Register */ | ||
40 | struct timer_list watchdog_timer; | ||
41 | spinlock_t it_lock; /* Protects it_map */ | ||
42 | unsigned int it_size; /* Size of iommu table in entries */ | ||
43 | unsigned char it_busno; /* Bus number this table belongs to */ | ||
44 | }; | ||
45 | |||
46 | struct cal_chipset_ops { | ||
47 | void (*handle_quirks)(struct iommu_table *tbl, struct pci_dev *dev); | ||
48 | void (*tce_cache_blast)(struct iommu_table *tbl); | ||
49 | void (*dump_error_regs)(struct iommu_table *tbl); | ||
50 | }; | ||
51 | |||
52 | #define TCE_TABLE_SIZE_UNSPECIFIED ~0 | ||
53 | #define TCE_TABLE_SIZE_64K 0 | ||
54 | #define TCE_TABLE_SIZE_128K 1 | ||
55 | #define TCE_TABLE_SIZE_256K 2 | ||
56 | #define TCE_TABLE_SIZE_512K 3 | ||
57 | #define TCE_TABLE_SIZE_1M 4 | ||
58 | #define TCE_TABLE_SIZE_2M 5 | ||
59 | #define TCE_TABLE_SIZE_4M 6 | ||
60 | #define TCE_TABLE_SIZE_8M 7 | ||
61 | |||
62 | extern int use_calgary; | ||
63 | |||
64 | #ifdef CONFIG_CALGARY_IOMMU | ||
65 | extern int calgary_iommu_init(void); | ||
66 | extern void detect_calgary(void); | ||
67 | #else | ||
68 | static inline int calgary_iommu_init(void) { return 1; } | ||
69 | static inline void detect_calgary(void) { return; } | ||
70 | #endif | ||
71 | |||
72 | #endif /* _ASM_X86_CALGARY_H */ | ||
diff --git a/arch/x86/include/asm/calling.h b/arch/x86/include/asm/calling.h new file mode 100644 index 000000000000..2bc162e0ec6e --- /dev/null +++ b/arch/x86/include/asm/calling.h | |||
@@ -0,0 +1,170 @@ | |||
1 | /* | ||
2 | * Some macros to handle stack frames in assembly. | ||
3 | */ | ||
4 | |||
5 | #define R15 0 | ||
6 | #define R14 8 | ||
7 | #define R13 16 | ||
8 | #define R12 24 | ||
9 | #define RBP 32 | ||
10 | #define RBX 40 | ||
11 | |||
12 | /* arguments: interrupts/non tracing syscalls only save upto here*/ | ||
13 | #define R11 48 | ||
14 | #define R10 56 | ||
15 | #define R9 64 | ||
16 | #define R8 72 | ||
17 | #define RAX 80 | ||
18 | #define RCX 88 | ||
19 | #define RDX 96 | ||
20 | #define RSI 104 | ||
21 | #define RDI 112 | ||
22 | #define ORIG_RAX 120 /* + error_code */ | ||
23 | /* end of arguments */ | ||
24 | |||
25 | /* cpu exception frame or undefined in case of fast syscall. */ | ||
26 | #define RIP 128 | ||
27 | #define CS 136 | ||
28 | #define EFLAGS 144 | ||
29 | #define RSP 152 | ||
30 | #define SS 160 | ||
31 | |||
32 | #define ARGOFFSET R11 | ||
33 | #define SWFRAME ORIG_RAX | ||
34 | |||
35 | .macro SAVE_ARGS addskip=0, norcx=0, nor891011=0 | ||
36 | subq $9*8+\addskip, %rsp | ||
37 | CFI_ADJUST_CFA_OFFSET 9*8+\addskip | ||
38 | movq %rdi, 8*8(%rsp) | ||
39 | CFI_REL_OFFSET rdi, 8*8 | ||
40 | movq %rsi, 7*8(%rsp) | ||
41 | CFI_REL_OFFSET rsi, 7*8 | ||
42 | movq %rdx, 6*8(%rsp) | ||
43 | CFI_REL_OFFSET rdx, 6*8 | ||
44 | .if \norcx | ||
45 | .else | ||
46 | movq %rcx, 5*8(%rsp) | ||
47 | CFI_REL_OFFSET rcx, 5*8 | ||
48 | .endif | ||
49 | movq %rax, 4*8(%rsp) | ||
50 | CFI_REL_OFFSET rax, 4*8 | ||
51 | .if \nor891011 | ||
52 | .else | ||
53 | movq %r8, 3*8(%rsp) | ||
54 | CFI_REL_OFFSET r8, 3*8 | ||
55 | movq %r9, 2*8(%rsp) | ||
56 | CFI_REL_OFFSET r9, 2*8 | ||
57 | movq %r10, 1*8(%rsp) | ||
58 | CFI_REL_OFFSET r10, 1*8 | ||
59 | movq %r11, (%rsp) | ||
60 | CFI_REL_OFFSET r11, 0*8 | ||
61 | .endif | ||
62 | .endm | ||
63 | |||
64 | #define ARG_SKIP 9*8 | ||
65 | |||
66 | .macro RESTORE_ARGS skiprax=0, addskip=0, skiprcx=0, skipr11=0, \ | ||
67 | skipr8910=0, skiprdx=0 | ||
68 | .if \skipr11 | ||
69 | .else | ||
70 | movq (%rsp), %r11 | ||
71 | CFI_RESTORE r11 | ||
72 | .endif | ||
73 | .if \skipr8910 | ||
74 | .else | ||
75 | movq 1*8(%rsp), %r10 | ||
76 | CFI_RESTORE r10 | ||
77 | movq 2*8(%rsp), %r9 | ||
78 | CFI_RESTORE r9 | ||
79 | movq 3*8(%rsp), %r8 | ||
80 | CFI_RESTORE r8 | ||
81 | .endif | ||
82 | .if \skiprax | ||
83 | .else | ||
84 | movq 4*8(%rsp), %rax | ||
85 | CFI_RESTORE rax | ||
86 | .endif | ||
87 | .if \skiprcx | ||
88 | .else | ||
89 | movq 5*8(%rsp), %rcx | ||
90 | CFI_RESTORE rcx | ||
91 | .endif | ||
92 | .if \skiprdx | ||
93 | .else | ||
94 | movq 6*8(%rsp), %rdx | ||
95 | CFI_RESTORE rdx | ||
96 | .endif | ||
97 | movq 7*8(%rsp), %rsi | ||
98 | CFI_RESTORE rsi | ||
99 | movq 8*8(%rsp), %rdi | ||
100 | CFI_RESTORE rdi | ||
101 | .if ARG_SKIP+\addskip > 0 | ||
102 | addq $ARG_SKIP+\addskip, %rsp | ||
103 | CFI_ADJUST_CFA_OFFSET -(ARG_SKIP+\addskip) | ||
104 | .endif | ||
105 | .endm | ||
106 | |||
107 | .macro LOAD_ARGS offset, skiprax=0 | ||
108 | movq \offset(%rsp), %r11 | ||
109 | movq \offset+8(%rsp), %r10 | ||
110 | movq \offset+16(%rsp), %r9 | ||
111 | movq \offset+24(%rsp), %r8 | ||
112 | movq \offset+40(%rsp), %rcx | ||
113 | movq \offset+48(%rsp), %rdx | ||
114 | movq \offset+56(%rsp), %rsi | ||
115 | movq \offset+64(%rsp), %rdi | ||
116 | .if \skiprax | ||
117 | .else | ||
118 | movq \offset+72(%rsp), %rax | ||
119 | .endif | ||
120 | .endm | ||
121 | |||
122 | #define REST_SKIP 6*8 | ||
123 | |||
124 | .macro SAVE_REST | ||
125 | subq $REST_SKIP, %rsp | ||
126 | CFI_ADJUST_CFA_OFFSET REST_SKIP | ||
127 | movq %rbx, 5*8(%rsp) | ||
128 | CFI_REL_OFFSET rbx, 5*8 | ||
129 | movq %rbp, 4*8(%rsp) | ||
130 | CFI_REL_OFFSET rbp, 4*8 | ||
131 | movq %r12, 3*8(%rsp) | ||
132 | CFI_REL_OFFSET r12, 3*8 | ||
133 | movq %r13, 2*8(%rsp) | ||
134 | CFI_REL_OFFSET r13, 2*8 | ||
135 | movq %r14, 1*8(%rsp) | ||
136 | CFI_REL_OFFSET r14, 1*8 | ||
137 | movq %r15, (%rsp) | ||
138 | CFI_REL_OFFSET r15, 0*8 | ||
139 | .endm | ||
140 | |||
141 | .macro RESTORE_REST | ||
142 | movq (%rsp), %r15 | ||
143 | CFI_RESTORE r15 | ||
144 | movq 1*8(%rsp), %r14 | ||
145 | CFI_RESTORE r14 | ||
146 | movq 2*8(%rsp), %r13 | ||
147 | CFI_RESTORE r13 | ||
148 | movq 3*8(%rsp), %r12 | ||
149 | CFI_RESTORE r12 | ||
150 | movq 4*8(%rsp), %rbp | ||
151 | CFI_RESTORE rbp | ||
152 | movq 5*8(%rsp), %rbx | ||
153 | CFI_RESTORE rbx | ||
154 | addq $REST_SKIP, %rsp | ||
155 | CFI_ADJUST_CFA_OFFSET -(REST_SKIP) | ||
156 | .endm | ||
157 | |||
158 | .macro SAVE_ALL | ||
159 | SAVE_ARGS | ||
160 | SAVE_REST | ||
161 | .endm | ||
162 | |||
163 | .macro RESTORE_ALL addskip=0 | ||
164 | RESTORE_REST | ||
165 | RESTORE_ARGS 0, \addskip | ||
166 | .endm | ||
167 | |||
168 | .macro icebp | ||
169 | .byte 0xf1 | ||
170 | .endm | ||
diff --git a/arch/x86/include/asm/checksum.h b/arch/x86/include/asm/checksum.h new file mode 100644 index 000000000000..848850fd7d62 --- /dev/null +++ b/arch/x86/include/asm/checksum.h | |||
@@ -0,0 +1,5 @@ | |||
1 | #ifdef CONFIG_X86_32 | ||
2 | # include "checksum_32.h" | ||
3 | #else | ||
4 | # include "checksum_64.h" | ||
5 | #endif | ||
diff --git a/arch/x86/include/asm/checksum_32.h b/arch/x86/include/asm/checksum_32.h new file mode 100644 index 000000000000..7c5ef8b14d92 --- /dev/null +++ b/arch/x86/include/asm/checksum_32.h | |||
@@ -0,0 +1,189 @@ | |||
1 | #ifndef _ASM_X86_CHECKSUM_32_H | ||
2 | #define _ASM_X86_CHECKSUM_32_H | ||
3 | |||
4 | #include <linux/in6.h> | ||
5 | |||
6 | #include <asm/uaccess.h> | ||
7 | |||
8 | /* | ||
9 | * computes the checksum of a memory block at buff, length len, | ||
10 | * and adds in "sum" (32-bit) | ||
11 | * | ||
12 | * returns a 32-bit number suitable for feeding into itself | ||
13 | * or csum_tcpudp_magic | ||
14 | * | ||
15 | * this function must be called with even lengths, except | ||
16 | * for the last fragment, which may be odd | ||
17 | * | ||
18 | * it's best to have buff aligned on a 32-bit boundary | ||
19 | */ | ||
20 | asmlinkage __wsum csum_partial(const void *buff, int len, __wsum sum); | ||
21 | |||
22 | /* | ||
23 | * the same as csum_partial, but copies from src while it | ||
24 | * checksums, and handles user-space pointer exceptions correctly, when needed. | ||
25 | * | ||
26 | * here even more important to align src and dst on a 32-bit (or even | ||
27 | * better 64-bit) boundary | ||
28 | */ | ||
29 | |||
30 | asmlinkage __wsum csum_partial_copy_generic(const void *src, void *dst, | ||
31 | int len, __wsum sum, | ||
32 | int *src_err_ptr, int *dst_err_ptr); | ||
33 | |||
34 | /* | ||
35 | * Note: when you get a NULL pointer exception here this means someone | ||
36 | * passed in an incorrect kernel address to one of these functions. | ||
37 | * | ||
38 | * If you use these functions directly please don't forget the | ||
39 | * access_ok(). | ||
40 | */ | ||
41 | static inline __wsum csum_partial_copy_nocheck(const void *src, void *dst, | ||
42 | int len, __wsum sum) | ||
43 | { | ||
44 | return csum_partial_copy_generic(src, dst, len, sum, NULL, NULL); | ||
45 | } | ||
46 | |||
47 | static inline __wsum csum_partial_copy_from_user(const void __user *src, | ||
48 | void *dst, | ||
49 | int len, __wsum sum, | ||
50 | int *err_ptr) | ||
51 | { | ||
52 | might_sleep(); | ||
53 | return csum_partial_copy_generic((__force void *)src, dst, | ||
54 | len, sum, err_ptr, NULL); | ||
55 | } | ||
56 | |||
57 | /* | ||
58 | * This is a version of ip_compute_csum() optimized for IP headers, | ||
59 | * which always checksum on 4 octet boundaries. | ||
60 | * | ||
61 | * By Jorge Cwik <jorge@laser.satlink.net>, adapted for linux by | ||
62 | * Arnt Gulbrandsen. | ||
63 | */ | ||
64 | static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl) | ||
65 | { | ||
66 | unsigned int sum; | ||
67 | |||
68 | asm volatile("movl (%1), %0 ;\n" | ||
69 | "subl $4, %2 ;\n" | ||
70 | "jbe 2f ;\n" | ||
71 | "addl 4(%1), %0 ;\n" | ||
72 | "adcl 8(%1), %0 ;\n" | ||
73 | "adcl 12(%1), %0;\n" | ||
74 | "1: adcl 16(%1), %0 ;\n" | ||
75 | "lea 4(%1), %1 ;\n" | ||
76 | "decl %2 ;\n" | ||
77 | "jne 1b ;\n" | ||
78 | "adcl $0, %0 ;\n" | ||
79 | "movl %0, %2 ;\n" | ||
80 | "shrl $16, %0 ;\n" | ||
81 | "addw %w2, %w0 ;\n" | ||
82 | "adcl $0, %0 ;\n" | ||
83 | "notl %0 ;\n" | ||
84 | "2: ;\n" | ||
85 | /* Since the input registers which are loaded with iph and ihl | ||
86 | are modified, we must also specify them as outputs, or gcc | ||
87 | will assume they contain their original values. */ | ||
88 | : "=r" (sum), "=r" (iph), "=r" (ihl) | ||
89 | : "1" (iph), "2" (ihl) | ||
90 | : "memory"); | ||
91 | return (__force __sum16)sum; | ||
92 | } | ||
93 | |||
94 | /* | ||
95 | * Fold a partial checksum | ||
96 | */ | ||
97 | |||
98 | static inline __sum16 csum_fold(__wsum sum) | ||
99 | { | ||
100 | asm("addl %1, %0 ;\n" | ||
101 | "adcl $0xffff, %0 ;\n" | ||
102 | : "=r" (sum) | ||
103 | : "r" ((__force u32)sum << 16), | ||
104 | "0" ((__force u32)sum & 0xffff0000)); | ||
105 | return (__force __sum16)(~(__force u32)sum >> 16); | ||
106 | } | ||
107 | |||
108 | static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr, | ||
109 | unsigned short len, | ||
110 | unsigned short proto, | ||
111 | __wsum sum) | ||
112 | { | ||
113 | asm("addl %1, %0 ;\n" | ||
114 | "adcl %2, %0 ;\n" | ||
115 | "adcl %3, %0 ;\n" | ||
116 | "adcl $0, %0 ;\n" | ||
117 | : "=r" (sum) | ||
118 | : "g" (daddr), "g"(saddr), | ||
119 | "g" ((len + proto) << 8), "0" (sum)); | ||
120 | return sum; | ||
121 | } | ||
122 | |||
123 | /* | ||
124 | * computes the checksum of the TCP/UDP pseudo-header | ||
125 | * returns a 16-bit checksum, already complemented | ||
126 | */ | ||
127 | static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr, | ||
128 | unsigned short len, | ||
129 | unsigned short proto, | ||
130 | __wsum sum) | ||
131 | { | ||
132 | return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum)); | ||
133 | } | ||
134 | |||
135 | /* | ||
136 | * this routine is used for miscellaneous IP-like checksums, mainly | ||
137 | * in icmp.c | ||
138 | */ | ||
139 | |||
140 | static inline __sum16 ip_compute_csum(const void *buff, int len) | ||
141 | { | ||
142 | return csum_fold(csum_partial(buff, len, 0)); | ||
143 | } | ||
144 | |||
145 | #define _HAVE_ARCH_IPV6_CSUM | ||
146 | static inline __sum16 csum_ipv6_magic(const struct in6_addr *saddr, | ||
147 | const struct in6_addr *daddr, | ||
148 | __u32 len, unsigned short proto, | ||
149 | __wsum sum) | ||
150 | { | ||
151 | asm("addl 0(%1), %0 ;\n" | ||
152 | "adcl 4(%1), %0 ;\n" | ||
153 | "adcl 8(%1), %0 ;\n" | ||
154 | "adcl 12(%1), %0 ;\n" | ||
155 | "adcl 0(%2), %0 ;\n" | ||
156 | "adcl 4(%2), %0 ;\n" | ||
157 | "adcl 8(%2), %0 ;\n" | ||
158 | "adcl 12(%2), %0 ;\n" | ||
159 | "adcl %3, %0 ;\n" | ||
160 | "adcl %4, %0 ;\n" | ||
161 | "adcl $0, %0 ;\n" | ||
162 | : "=&r" (sum) | ||
163 | : "r" (saddr), "r" (daddr), | ||
164 | "r" (htonl(len)), "r" (htonl(proto)), "0" (sum)); | ||
165 | |||
166 | return csum_fold(sum); | ||
167 | } | ||
168 | |||
169 | /* | ||
170 | * Copy and checksum to user | ||
171 | */ | ||
172 | #define HAVE_CSUM_COPY_USER | ||
173 | static inline __wsum csum_and_copy_to_user(const void *src, | ||
174 | void __user *dst, | ||
175 | int len, __wsum sum, | ||
176 | int *err_ptr) | ||
177 | { | ||
178 | might_sleep(); | ||
179 | if (access_ok(VERIFY_WRITE, dst, len)) | ||
180 | return csum_partial_copy_generic(src, (__force void *)dst, | ||
181 | len, sum, NULL, err_ptr); | ||
182 | |||
183 | if (len) | ||
184 | *err_ptr = -EFAULT; | ||
185 | |||
186 | return (__force __wsum)-1; /* invalid checksum */ | ||
187 | } | ||
188 | |||
189 | #endif /* _ASM_X86_CHECKSUM_32_H */ | ||
diff --git a/arch/x86/include/asm/checksum_64.h b/arch/x86/include/asm/checksum_64.h new file mode 100644 index 000000000000..9bfdc41629ec --- /dev/null +++ b/arch/x86/include/asm/checksum_64.h | |||
@@ -0,0 +1,191 @@ | |||
1 | #ifndef _ASM_X86_CHECKSUM_64_H | ||
2 | #define _ASM_X86_CHECKSUM_64_H | ||
3 | |||
4 | /* | ||
5 | * Checksums for x86-64 | ||
6 | * Copyright 2002 by Andi Kleen, SuSE Labs | ||
7 | * with some code from asm-x86/checksum.h | ||
8 | */ | ||
9 | |||
10 | #include <linux/compiler.h> | ||
11 | #include <asm/uaccess.h> | ||
12 | #include <asm/byteorder.h> | ||
13 | |||
14 | /** | ||
15 | * csum_fold - Fold and invert a 32bit checksum. | ||
16 | * sum: 32bit unfolded sum | ||
17 | * | ||
18 | * Fold a 32bit running checksum to 16bit and invert it. This is usually | ||
19 | * the last step before putting a checksum into a packet. | ||
20 | * Make sure not to mix with 64bit checksums. | ||
21 | */ | ||
22 | static inline __sum16 csum_fold(__wsum sum) | ||
23 | { | ||
24 | asm(" addl %1,%0\n" | ||
25 | " adcl $0xffff,%0" | ||
26 | : "=r" (sum) | ||
27 | : "r" ((__force u32)sum << 16), | ||
28 | "0" ((__force u32)sum & 0xffff0000)); | ||
29 | return (__force __sum16)(~(__force u32)sum >> 16); | ||
30 | } | ||
31 | |||
32 | /* | ||
33 | * This is a version of ip_compute_csum() optimized for IP headers, | ||
34 | * which always checksum on 4 octet boundaries. | ||
35 | * | ||
36 | * By Jorge Cwik <jorge@laser.satlink.net>, adapted for linux by | ||
37 | * Arnt Gulbrandsen. | ||
38 | */ | ||
39 | |||
40 | /** | ||
41 | * ip_fast_csum - Compute the IPv4 header checksum efficiently. | ||
42 | * iph: ipv4 header | ||
43 | * ihl: length of header / 4 | ||
44 | */ | ||
45 | static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl) | ||
46 | { | ||
47 | unsigned int sum; | ||
48 | |||
49 | asm(" movl (%1), %0\n" | ||
50 | " subl $4, %2\n" | ||
51 | " jbe 2f\n" | ||
52 | " addl 4(%1), %0\n" | ||
53 | " adcl 8(%1), %0\n" | ||
54 | " adcl 12(%1), %0\n" | ||
55 | "1: adcl 16(%1), %0\n" | ||
56 | " lea 4(%1), %1\n" | ||
57 | " decl %2\n" | ||
58 | " jne 1b\n" | ||
59 | " adcl $0, %0\n" | ||
60 | " movl %0, %2\n" | ||
61 | " shrl $16, %0\n" | ||
62 | " addw %w2, %w0\n" | ||
63 | " adcl $0, %0\n" | ||
64 | " notl %0\n" | ||
65 | "2:" | ||
66 | /* Since the input registers which are loaded with iph and ihl | ||
67 | are modified, we must also specify them as outputs, or gcc | ||
68 | will assume they contain their original values. */ | ||
69 | : "=r" (sum), "=r" (iph), "=r" (ihl) | ||
70 | : "1" (iph), "2" (ihl) | ||
71 | : "memory"); | ||
72 | return (__force __sum16)sum; | ||
73 | } | ||
74 | |||
75 | /** | ||
76 | * csum_tcpup_nofold - Compute an IPv4 pseudo header checksum. | ||
77 | * @saddr: source address | ||
78 | * @daddr: destination address | ||
79 | * @len: length of packet | ||
80 | * @proto: ip protocol of packet | ||
81 | * @sum: initial sum to be added in (32bit unfolded) | ||
82 | * | ||
83 | * Returns the pseudo header checksum the input data. Result is | ||
84 | * 32bit unfolded. | ||
85 | */ | ||
86 | static inline __wsum | ||
87 | csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len, | ||
88 | unsigned short proto, __wsum sum) | ||
89 | { | ||
90 | asm(" addl %1, %0\n" | ||
91 | " adcl %2, %0\n" | ||
92 | " adcl %3, %0\n" | ||
93 | " adcl $0, %0\n" | ||
94 | : "=r" (sum) | ||
95 | : "g" (daddr), "g" (saddr), | ||
96 | "g" ((len + proto)<<8), "0" (sum)); | ||
97 | return sum; | ||
98 | } | ||
99 | |||
100 | |||
101 | /** | ||
102 | * csum_tcpup_magic - Compute an IPv4 pseudo header checksum. | ||
103 | * @saddr: source address | ||
104 | * @daddr: destination address | ||
105 | * @len: length of packet | ||
106 | * @proto: ip protocol of packet | ||
107 | * @sum: initial sum to be added in (32bit unfolded) | ||
108 | * | ||
109 | * Returns the 16bit pseudo header checksum the input data already | ||
110 | * complemented and ready to be filled in. | ||
111 | */ | ||
112 | static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr, | ||
113 | unsigned short len, | ||
114 | unsigned short proto, __wsum sum) | ||
115 | { | ||
116 | return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum)); | ||
117 | } | ||
118 | |||
119 | /** | ||
120 | * csum_partial - Compute an internet checksum. | ||
121 | * @buff: buffer to be checksummed | ||
122 | * @len: length of buffer. | ||
123 | * @sum: initial sum to be added in (32bit unfolded) | ||
124 | * | ||
125 | * Returns the 32bit unfolded internet checksum of the buffer. | ||
126 | * Before filling it in it needs to be csum_fold()'ed. | ||
127 | * buff should be aligned to a 64bit boundary if possible. | ||
128 | */ | ||
129 | extern __wsum csum_partial(const void *buff, int len, __wsum sum); | ||
130 | |||
131 | #define _HAVE_ARCH_COPY_AND_CSUM_FROM_USER 1 | ||
132 | #define HAVE_CSUM_COPY_USER 1 | ||
133 | |||
134 | |||
135 | /* Do not call this directly. Use the wrappers below */ | ||
136 | extern __wsum csum_partial_copy_generic(const void *src, const void *dst, | ||
137 | int len, __wsum sum, | ||
138 | int *src_err_ptr, int *dst_err_ptr); | ||
139 | |||
140 | |||
141 | extern __wsum csum_partial_copy_from_user(const void __user *src, void *dst, | ||
142 | int len, __wsum isum, int *errp); | ||
143 | extern __wsum csum_partial_copy_to_user(const void *src, void __user *dst, | ||
144 | int len, __wsum isum, int *errp); | ||
145 | extern __wsum csum_partial_copy_nocheck(const void *src, void *dst, | ||
146 | int len, __wsum sum); | ||
147 | |||
148 | /* Old names. To be removed. */ | ||
149 | #define csum_and_copy_to_user csum_partial_copy_to_user | ||
150 | #define csum_and_copy_from_user csum_partial_copy_from_user | ||
151 | |||
152 | /** | ||
153 | * ip_compute_csum - Compute an 16bit IP checksum. | ||
154 | * @buff: buffer address. | ||
155 | * @len: length of buffer. | ||
156 | * | ||
157 | * Returns the 16bit folded/inverted checksum of the passed buffer. | ||
158 | * Ready to fill in. | ||
159 | */ | ||
160 | extern __sum16 ip_compute_csum(const void *buff, int len); | ||
161 | |||
162 | /** | ||
163 | * csum_ipv6_magic - Compute checksum of an IPv6 pseudo header. | ||
164 | * @saddr: source address | ||
165 | * @daddr: destination address | ||
166 | * @len: length of packet | ||
167 | * @proto: protocol of packet | ||
168 | * @sum: initial sum (32bit unfolded) to be added in | ||
169 | * | ||
170 | * Computes an IPv6 pseudo header checksum. This sum is added the checksum | ||
171 | * into UDP/TCP packets and contains some link layer information. | ||
172 | * Returns the unfolded 32bit checksum. | ||
173 | */ | ||
174 | |||
175 | struct in6_addr; | ||
176 | |||
177 | #define _HAVE_ARCH_IPV6_CSUM 1 | ||
178 | extern __sum16 | ||
179 | csum_ipv6_magic(const struct in6_addr *saddr, const struct in6_addr *daddr, | ||
180 | __u32 len, unsigned short proto, __wsum sum); | ||
181 | |||
182 | static inline unsigned add32_with_carry(unsigned a, unsigned b) | ||
183 | { | ||
184 | asm("addl %2,%0\n\t" | ||
185 | "adcl $0,%0" | ||
186 | : "=r" (a) | ||
187 | : "0" (a), "r" (b)); | ||
188 | return a; | ||
189 | } | ||
190 | |||
191 | #endif /* _ASM_X86_CHECKSUM_64_H */ | ||
diff --git a/arch/x86/include/asm/cmpxchg.h b/arch/x86/include/asm/cmpxchg.h new file mode 100644 index 000000000000..a460fa088d4c --- /dev/null +++ b/arch/x86/include/asm/cmpxchg.h | |||
@@ -0,0 +1,5 @@ | |||
1 | #ifdef CONFIG_X86_32 | ||
2 | # include "cmpxchg_32.h" | ||
3 | #else | ||
4 | # include "cmpxchg_64.h" | ||
5 | #endif | ||
diff --git a/arch/x86/include/asm/cmpxchg_32.h b/arch/x86/include/asm/cmpxchg_32.h new file mode 100644 index 000000000000..82ceb788a981 --- /dev/null +++ b/arch/x86/include/asm/cmpxchg_32.h | |||
@@ -0,0 +1,344 @@ | |||
1 | #ifndef _ASM_X86_CMPXCHG_32_H | ||
2 | #define _ASM_X86_CMPXCHG_32_H | ||
3 | |||
4 | #include <linux/bitops.h> /* for LOCK_PREFIX */ | ||
5 | |||
6 | /* | ||
7 | * Note: if you use set64_bit(), __cmpxchg64(), or their variants, you | ||
8 | * you need to test for the feature in boot_cpu_data. | ||
9 | */ | ||
10 | |||
11 | #define xchg(ptr, v) \ | ||
12 | ((__typeof__(*(ptr)))__xchg((unsigned long)(v), (ptr), sizeof(*(ptr)))) | ||
13 | |||
14 | struct __xchg_dummy { | ||
15 | unsigned long a[100]; | ||
16 | }; | ||
17 | #define __xg(x) ((struct __xchg_dummy *)(x)) | ||
18 | |||
19 | /* | ||
20 | * The semantics of XCHGCMP8B are a bit strange, this is why | ||
21 | * there is a loop and the loading of %%eax and %%edx has to | ||
22 | * be inside. This inlines well in most cases, the cached | ||
23 | * cost is around ~38 cycles. (in the future we might want | ||
24 | * to do an SIMD/3DNOW!/MMX/FPU 64-bit store here, but that | ||
25 | * might have an implicit FPU-save as a cost, so it's not | ||
26 | * clear which path to go.) | ||
27 | * | ||
28 | * cmpxchg8b must be used with the lock prefix here to allow | ||
29 | * the instruction to be executed atomically, see page 3-102 | ||
30 | * of the instruction set reference 24319102.pdf. We need | ||
31 | * the reader side to see the coherent 64bit value. | ||
32 | */ | ||
33 | static inline void __set_64bit(unsigned long long *ptr, | ||
34 | unsigned int low, unsigned int high) | ||
35 | { | ||
36 | asm volatile("\n1:\t" | ||
37 | "movl (%0), %%eax\n\t" | ||
38 | "movl 4(%0), %%edx\n\t" | ||
39 | LOCK_PREFIX "cmpxchg8b (%0)\n\t" | ||
40 | "jnz 1b" | ||
41 | : /* no outputs */ | ||
42 | : "D"(ptr), | ||
43 | "b"(low), | ||
44 | "c"(high) | ||
45 | : "ax", "dx", "memory"); | ||
46 | } | ||
47 | |||
48 | static inline void __set_64bit_constant(unsigned long long *ptr, | ||
49 | unsigned long long value) | ||
50 | { | ||
51 | __set_64bit(ptr, (unsigned int)value, (unsigned int)(value >> 32)); | ||
52 | } | ||
53 | |||
54 | #define ll_low(x) *(((unsigned int *)&(x)) + 0) | ||
55 | #define ll_high(x) *(((unsigned int *)&(x)) + 1) | ||
56 | |||
57 | static inline void __set_64bit_var(unsigned long long *ptr, | ||
58 | unsigned long long value) | ||
59 | { | ||
60 | __set_64bit(ptr, ll_low(value), ll_high(value)); | ||
61 | } | ||
62 | |||
63 | #define set_64bit(ptr, value) \ | ||
64 | (__builtin_constant_p((value)) \ | ||
65 | ? __set_64bit_constant((ptr), (value)) \ | ||
66 | : __set_64bit_var((ptr), (value))) | ||
67 | |||
68 | #define _set_64bit(ptr, value) \ | ||
69 | (__builtin_constant_p(value) \ | ||
70 | ? __set_64bit(ptr, (unsigned int)(value), \ | ||
71 | (unsigned int)((value) >> 32)) \ | ||
72 | : __set_64bit(ptr, ll_low((value)), ll_high((value)))) | ||
73 | |||
74 | /* | ||
75 | * Note: no "lock" prefix even on SMP: xchg always implies lock anyway | ||
76 | * Note 2: xchg has side effect, so that attribute volatile is necessary, | ||
77 | * but generally the primitive is invalid, *ptr is output argument. --ANK | ||
78 | */ | ||
79 | static inline unsigned long __xchg(unsigned long x, volatile void *ptr, | ||
80 | int size) | ||
81 | { | ||
82 | switch (size) { | ||
83 | case 1: | ||
84 | asm volatile("xchgb %b0,%1" | ||
85 | : "=q" (x) | ||
86 | : "m" (*__xg(ptr)), "0" (x) | ||
87 | : "memory"); | ||
88 | break; | ||
89 | case 2: | ||
90 | asm volatile("xchgw %w0,%1" | ||
91 | : "=r" (x) | ||
92 | : "m" (*__xg(ptr)), "0" (x) | ||
93 | : "memory"); | ||
94 | break; | ||
95 | case 4: | ||
96 | asm volatile("xchgl %0,%1" | ||
97 | : "=r" (x) | ||
98 | : "m" (*__xg(ptr)), "0" (x) | ||
99 | : "memory"); | ||
100 | break; | ||
101 | } | ||
102 | return x; | ||
103 | } | ||
104 | |||
105 | /* | ||
106 | * Atomic compare and exchange. Compare OLD with MEM, if identical, | ||
107 | * store NEW in MEM. Return the initial value in MEM. Success is | ||
108 | * indicated by comparing RETURN with OLD. | ||
109 | */ | ||
110 | |||
111 | #ifdef CONFIG_X86_CMPXCHG | ||
112 | #define __HAVE_ARCH_CMPXCHG 1 | ||
113 | #define cmpxchg(ptr, o, n) \ | ||
114 | ((__typeof__(*(ptr)))__cmpxchg((ptr), (unsigned long)(o), \ | ||
115 | (unsigned long)(n), \ | ||
116 | sizeof(*(ptr)))) | ||
117 | #define sync_cmpxchg(ptr, o, n) \ | ||
118 | ((__typeof__(*(ptr)))__sync_cmpxchg((ptr), (unsigned long)(o), \ | ||
119 | (unsigned long)(n), \ | ||
120 | sizeof(*(ptr)))) | ||
121 | #define cmpxchg_local(ptr, o, n) \ | ||
122 | ((__typeof__(*(ptr)))__cmpxchg_local((ptr), (unsigned long)(o), \ | ||
123 | (unsigned long)(n), \ | ||
124 | sizeof(*(ptr)))) | ||
125 | #endif | ||
126 | |||
127 | #ifdef CONFIG_X86_CMPXCHG64 | ||
128 | #define cmpxchg64(ptr, o, n) \ | ||
129 | ((__typeof__(*(ptr)))__cmpxchg64((ptr), (unsigned long long)(o), \ | ||
130 | (unsigned long long)(n))) | ||
131 | #define cmpxchg64_local(ptr, o, n) \ | ||
132 | ((__typeof__(*(ptr)))__cmpxchg64_local((ptr), (unsigned long long)(o), \ | ||
133 | (unsigned long long)(n))) | ||
134 | #endif | ||
135 | |||
136 | static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old, | ||
137 | unsigned long new, int size) | ||
138 | { | ||
139 | unsigned long prev; | ||
140 | switch (size) { | ||
141 | case 1: | ||
142 | asm volatile(LOCK_PREFIX "cmpxchgb %b1,%2" | ||
143 | : "=a"(prev) | ||
144 | : "q"(new), "m"(*__xg(ptr)), "0"(old) | ||
145 | : "memory"); | ||
146 | return prev; | ||
147 | case 2: | ||
148 | asm volatile(LOCK_PREFIX "cmpxchgw %w1,%2" | ||
149 | : "=a"(prev) | ||
150 | : "r"(new), "m"(*__xg(ptr)), "0"(old) | ||
151 | : "memory"); | ||
152 | return prev; | ||
153 | case 4: | ||
154 | asm volatile(LOCK_PREFIX "cmpxchgl %1,%2" | ||
155 | : "=a"(prev) | ||
156 | : "r"(new), "m"(*__xg(ptr)), "0"(old) | ||
157 | : "memory"); | ||
158 | return prev; | ||
159 | } | ||
160 | return old; | ||
161 | } | ||
162 | |||
163 | /* | ||
164 | * Always use locked operations when touching memory shared with a | ||
165 | * hypervisor, since the system may be SMP even if the guest kernel | ||
166 | * isn't. | ||
167 | */ | ||
168 | static inline unsigned long __sync_cmpxchg(volatile void *ptr, | ||
169 | unsigned long old, | ||
170 | unsigned long new, int size) | ||
171 | { | ||
172 | unsigned long prev; | ||
173 | switch (size) { | ||
174 | case 1: | ||
175 | asm volatile("lock; cmpxchgb %b1,%2" | ||
176 | : "=a"(prev) | ||
177 | : "q"(new), "m"(*__xg(ptr)), "0"(old) | ||
178 | : "memory"); | ||
179 | return prev; | ||
180 | case 2: | ||
181 | asm volatile("lock; cmpxchgw %w1,%2" | ||
182 | : "=a"(prev) | ||
183 | : "r"(new), "m"(*__xg(ptr)), "0"(old) | ||
184 | : "memory"); | ||
185 | return prev; | ||
186 | case 4: | ||
187 | asm volatile("lock; cmpxchgl %1,%2" | ||
188 | : "=a"(prev) | ||
189 | : "r"(new), "m"(*__xg(ptr)), "0"(old) | ||
190 | : "memory"); | ||
191 | return prev; | ||
192 | } | ||
193 | return old; | ||
194 | } | ||
195 | |||
196 | static inline unsigned long __cmpxchg_local(volatile void *ptr, | ||
197 | unsigned long old, | ||
198 | unsigned long new, int size) | ||
199 | { | ||
200 | unsigned long prev; | ||
201 | switch (size) { | ||
202 | case 1: | ||
203 | asm volatile("cmpxchgb %b1,%2" | ||
204 | : "=a"(prev) | ||
205 | : "q"(new), "m"(*__xg(ptr)), "0"(old) | ||
206 | : "memory"); | ||
207 | return prev; | ||
208 | case 2: | ||
209 | asm volatile("cmpxchgw %w1,%2" | ||
210 | : "=a"(prev) | ||
211 | : "r"(new), "m"(*__xg(ptr)), "0"(old) | ||
212 | : "memory"); | ||
213 | return prev; | ||
214 | case 4: | ||
215 | asm volatile("cmpxchgl %1,%2" | ||
216 | : "=a"(prev) | ||
217 | : "r"(new), "m"(*__xg(ptr)), "0"(old) | ||
218 | : "memory"); | ||
219 | return prev; | ||
220 | } | ||
221 | return old; | ||
222 | } | ||
223 | |||
224 | static inline unsigned long long __cmpxchg64(volatile void *ptr, | ||
225 | unsigned long long old, | ||
226 | unsigned long long new) | ||
227 | { | ||
228 | unsigned long long prev; | ||
229 | asm volatile(LOCK_PREFIX "cmpxchg8b %3" | ||
230 | : "=A"(prev) | ||
231 | : "b"((unsigned long)new), | ||
232 | "c"((unsigned long)(new >> 32)), | ||
233 | "m"(*__xg(ptr)), | ||
234 | "0"(old) | ||
235 | : "memory"); | ||
236 | return prev; | ||
237 | } | ||
238 | |||
239 | static inline unsigned long long __cmpxchg64_local(volatile void *ptr, | ||
240 | unsigned long long old, | ||
241 | unsigned long long new) | ||
242 | { | ||
243 | unsigned long long prev; | ||
244 | asm volatile("cmpxchg8b %3" | ||
245 | : "=A"(prev) | ||
246 | : "b"((unsigned long)new), | ||
247 | "c"((unsigned long)(new >> 32)), | ||
248 | "m"(*__xg(ptr)), | ||
249 | "0"(old) | ||
250 | : "memory"); | ||
251 | return prev; | ||
252 | } | ||
253 | |||
254 | #ifndef CONFIG_X86_CMPXCHG | ||
255 | /* | ||
256 | * Building a kernel capable running on 80386. It may be necessary to | ||
257 | * simulate the cmpxchg on the 80386 CPU. For that purpose we define | ||
258 | * a function for each of the sizes we support. | ||
259 | */ | ||
260 | |||
261 | extern unsigned long cmpxchg_386_u8(volatile void *, u8, u8); | ||
262 | extern unsigned long cmpxchg_386_u16(volatile void *, u16, u16); | ||
263 | extern unsigned long cmpxchg_386_u32(volatile void *, u32, u32); | ||
264 | |||
265 | static inline unsigned long cmpxchg_386(volatile void *ptr, unsigned long old, | ||
266 | unsigned long new, int size) | ||
267 | { | ||
268 | switch (size) { | ||
269 | case 1: | ||
270 | return cmpxchg_386_u8(ptr, old, new); | ||
271 | case 2: | ||
272 | return cmpxchg_386_u16(ptr, old, new); | ||
273 | case 4: | ||
274 | return cmpxchg_386_u32(ptr, old, new); | ||
275 | } | ||
276 | return old; | ||
277 | } | ||
278 | |||
279 | #define cmpxchg(ptr, o, n) \ | ||
280 | ({ \ | ||
281 | __typeof__(*(ptr)) __ret; \ | ||
282 | if (likely(boot_cpu_data.x86 > 3)) \ | ||
283 | __ret = (__typeof__(*(ptr)))__cmpxchg((ptr), \ | ||
284 | (unsigned long)(o), (unsigned long)(n), \ | ||
285 | sizeof(*(ptr))); \ | ||
286 | else \ | ||
287 | __ret = (__typeof__(*(ptr)))cmpxchg_386((ptr), \ | ||
288 | (unsigned long)(o), (unsigned long)(n), \ | ||
289 | sizeof(*(ptr))); \ | ||
290 | __ret; \ | ||
291 | }) | ||
292 | #define cmpxchg_local(ptr, o, n) \ | ||
293 | ({ \ | ||
294 | __typeof__(*(ptr)) __ret; \ | ||
295 | if (likely(boot_cpu_data.x86 > 3)) \ | ||
296 | __ret = (__typeof__(*(ptr)))__cmpxchg_local((ptr), \ | ||
297 | (unsigned long)(o), (unsigned long)(n), \ | ||
298 | sizeof(*(ptr))); \ | ||
299 | else \ | ||
300 | __ret = (__typeof__(*(ptr)))cmpxchg_386((ptr), \ | ||
301 | (unsigned long)(o), (unsigned long)(n), \ | ||
302 | sizeof(*(ptr))); \ | ||
303 | __ret; \ | ||
304 | }) | ||
305 | #endif | ||
306 | |||
307 | #ifndef CONFIG_X86_CMPXCHG64 | ||
308 | /* | ||
309 | * Building a kernel capable running on 80386 and 80486. It may be necessary | ||
310 | * to simulate the cmpxchg8b on the 80386 and 80486 CPU. | ||
311 | */ | ||
312 | |||
313 | extern unsigned long long cmpxchg_486_u64(volatile void *, u64, u64); | ||
314 | |||
315 | #define cmpxchg64(ptr, o, n) \ | ||
316 | ({ \ | ||
317 | __typeof__(*(ptr)) __ret; \ | ||
318 | if (likely(boot_cpu_data.x86 > 4)) \ | ||
319 | __ret = (__typeof__(*(ptr)))__cmpxchg64((ptr), \ | ||
320 | (unsigned long long)(o), \ | ||
321 | (unsigned long long)(n)); \ | ||
322 | else \ | ||
323 | __ret = (__typeof__(*(ptr)))cmpxchg_486_u64((ptr), \ | ||
324 | (unsigned long long)(o), \ | ||
325 | (unsigned long long)(n)); \ | ||
326 | __ret; \ | ||
327 | }) | ||
328 | #define cmpxchg64_local(ptr, o, n) \ | ||
329 | ({ \ | ||
330 | __typeof__(*(ptr)) __ret; \ | ||
331 | if (likely(boot_cpu_data.x86 > 4)) \ | ||
332 | __ret = (__typeof__(*(ptr)))__cmpxchg64_local((ptr), \ | ||
333 | (unsigned long long)(o), \ | ||
334 | (unsigned long long)(n)); \ | ||
335 | else \ | ||
336 | __ret = (__typeof__(*(ptr)))cmpxchg_486_u64((ptr), \ | ||
337 | (unsigned long long)(o), \ | ||
338 | (unsigned long long)(n)); \ | ||
339 | __ret; \ | ||
340 | }) | ||
341 | |||
342 | #endif | ||
343 | |||
344 | #endif /* _ASM_X86_CMPXCHG_32_H */ | ||
diff --git a/arch/x86/include/asm/cmpxchg_64.h b/arch/x86/include/asm/cmpxchg_64.h new file mode 100644 index 000000000000..52de72e0de8c --- /dev/null +++ b/arch/x86/include/asm/cmpxchg_64.h | |||
@@ -0,0 +1,185 @@ | |||
1 | #ifndef _ASM_X86_CMPXCHG_64_H | ||
2 | #define _ASM_X86_CMPXCHG_64_H | ||
3 | |||
4 | #include <asm/alternative.h> /* Provides LOCK_PREFIX */ | ||
5 | |||
6 | #define xchg(ptr, v) ((__typeof__(*(ptr)))__xchg((unsigned long)(v), \ | ||
7 | (ptr), sizeof(*(ptr)))) | ||
8 | |||
9 | #define __xg(x) ((volatile long *)(x)) | ||
10 | |||
11 | static inline void set_64bit(volatile unsigned long *ptr, unsigned long val) | ||
12 | { | ||
13 | *ptr = val; | ||
14 | } | ||
15 | |||
16 | #define _set_64bit set_64bit | ||
17 | |||
18 | /* | ||
19 | * Note: no "lock" prefix even on SMP: xchg always implies lock anyway | ||
20 | * Note 2: xchg has side effect, so that attribute volatile is necessary, | ||
21 | * but generally the primitive is invalid, *ptr is output argument. --ANK | ||
22 | */ | ||
23 | static inline unsigned long __xchg(unsigned long x, volatile void *ptr, | ||
24 | int size) | ||
25 | { | ||
26 | switch (size) { | ||
27 | case 1: | ||
28 | asm volatile("xchgb %b0,%1" | ||
29 | : "=q" (x) | ||
30 | : "m" (*__xg(ptr)), "0" (x) | ||
31 | : "memory"); | ||
32 | break; | ||
33 | case 2: | ||
34 | asm volatile("xchgw %w0,%1" | ||
35 | : "=r" (x) | ||
36 | : "m" (*__xg(ptr)), "0" (x) | ||
37 | : "memory"); | ||
38 | break; | ||
39 | case 4: | ||
40 | asm volatile("xchgl %k0,%1" | ||
41 | : "=r" (x) | ||
42 | : "m" (*__xg(ptr)), "0" (x) | ||
43 | : "memory"); | ||
44 | break; | ||
45 | case 8: | ||
46 | asm volatile("xchgq %0,%1" | ||
47 | : "=r" (x) | ||
48 | : "m" (*__xg(ptr)), "0" (x) | ||
49 | : "memory"); | ||
50 | break; | ||
51 | } | ||
52 | return x; | ||
53 | } | ||
54 | |||
55 | /* | ||
56 | * Atomic compare and exchange. Compare OLD with MEM, if identical, | ||
57 | * store NEW in MEM. Return the initial value in MEM. Success is | ||
58 | * indicated by comparing RETURN with OLD. | ||
59 | */ | ||
60 | |||
61 | #define __HAVE_ARCH_CMPXCHG 1 | ||
62 | |||
63 | static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old, | ||
64 | unsigned long new, int size) | ||
65 | { | ||
66 | unsigned long prev; | ||
67 | switch (size) { | ||
68 | case 1: | ||
69 | asm volatile(LOCK_PREFIX "cmpxchgb %b1,%2" | ||
70 | : "=a"(prev) | ||
71 | : "q"(new), "m"(*__xg(ptr)), "0"(old) | ||
72 | : "memory"); | ||
73 | return prev; | ||
74 | case 2: | ||
75 | asm volatile(LOCK_PREFIX "cmpxchgw %w1,%2" | ||
76 | : "=a"(prev) | ||
77 | : "r"(new), "m"(*__xg(ptr)), "0"(old) | ||
78 | : "memory"); | ||
79 | return prev; | ||
80 | case 4: | ||
81 | asm volatile(LOCK_PREFIX "cmpxchgl %k1,%2" | ||
82 | : "=a"(prev) | ||
83 | : "r"(new), "m"(*__xg(ptr)), "0"(old) | ||
84 | : "memory"); | ||
85 | return prev; | ||
86 | case 8: | ||
87 | asm volatile(LOCK_PREFIX "cmpxchgq %1,%2" | ||
88 | : "=a"(prev) | ||
89 | : "r"(new), "m"(*__xg(ptr)), "0"(old) | ||
90 | : "memory"); | ||
91 | return prev; | ||
92 | } | ||
93 | return old; | ||
94 | } | ||
95 | |||
96 | /* | ||
97 | * Always use locked operations when touching memory shared with a | ||
98 | * hypervisor, since the system may be SMP even if the guest kernel | ||
99 | * isn't. | ||
100 | */ | ||
101 | static inline unsigned long __sync_cmpxchg(volatile void *ptr, | ||
102 | unsigned long old, | ||
103 | unsigned long new, int size) | ||
104 | { | ||
105 | unsigned long prev; | ||
106 | switch (size) { | ||
107 | case 1: | ||
108 | asm volatile("lock; cmpxchgb %b1,%2" | ||
109 | : "=a"(prev) | ||
110 | : "q"(new), "m"(*__xg(ptr)), "0"(old) | ||
111 | : "memory"); | ||
112 | return prev; | ||
113 | case 2: | ||
114 | asm volatile("lock; cmpxchgw %w1,%2" | ||
115 | : "=a"(prev) | ||
116 | : "r"(new), "m"(*__xg(ptr)), "0"(old) | ||
117 | : "memory"); | ||
118 | return prev; | ||
119 | case 4: | ||
120 | asm volatile("lock; cmpxchgl %1,%2" | ||
121 | : "=a"(prev) | ||
122 | : "r"(new), "m"(*__xg(ptr)), "0"(old) | ||
123 | : "memory"); | ||
124 | return prev; | ||
125 | } | ||
126 | return old; | ||
127 | } | ||
128 | |||
129 | static inline unsigned long __cmpxchg_local(volatile void *ptr, | ||
130 | unsigned long old, | ||
131 | unsigned long new, int size) | ||
132 | { | ||
133 | unsigned long prev; | ||
134 | switch (size) { | ||
135 | case 1: | ||
136 | asm volatile("cmpxchgb %b1,%2" | ||
137 | : "=a"(prev) | ||
138 | : "q"(new), "m"(*__xg(ptr)), "0"(old) | ||
139 | : "memory"); | ||
140 | return prev; | ||
141 | case 2: | ||
142 | asm volatile("cmpxchgw %w1,%2" | ||
143 | : "=a"(prev) | ||
144 | : "r"(new), "m"(*__xg(ptr)), "0"(old) | ||
145 | : "memory"); | ||
146 | return prev; | ||
147 | case 4: | ||
148 | asm volatile("cmpxchgl %k1,%2" | ||
149 | : "=a"(prev) | ||
150 | : "r"(new), "m"(*__xg(ptr)), "0"(old) | ||
151 | : "memory"); | ||
152 | return prev; | ||
153 | case 8: | ||
154 | asm volatile("cmpxchgq %1,%2" | ||
155 | : "=a"(prev) | ||
156 | : "r"(new), "m"(*__xg(ptr)), "0"(old) | ||
157 | : "memory"); | ||
158 | return prev; | ||
159 | } | ||
160 | return old; | ||
161 | } | ||
162 | |||
163 | #define cmpxchg(ptr, o, n) \ | ||
164 | ((__typeof__(*(ptr)))__cmpxchg((ptr), (unsigned long)(o), \ | ||
165 | (unsigned long)(n), sizeof(*(ptr)))) | ||
166 | #define cmpxchg64(ptr, o, n) \ | ||
167 | ({ \ | ||
168 | BUILD_BUG_ON(sizeof(*(ptr)) != 8); \ | ||
169 | cmpxchg((ptr), (o), (n)); \ | ||
170 | }) | ||
171 | #define cmpxchg_local(ptr, o, n) \ | ||
172 | ((__typeof__(*(ptr)))__cmpxchg_local((ptr), (unsigned long)(o), \ | ||
173 | (unsigned long)(n), \ | ||
174 | sizeof(*(ptr)))) | ||
175 | #define sync_cmpxchg(ptr, o, n) \ | ||
176 | ((__typeof__(*(ptr)))__sync_cmpxchg((ptr), (unsigned long)(o), \ | ||
177 | (unsigned long)(n), \ | ||
178 | sizeof(*(ptr)))) | ||
179 | #define cmpxchg64_local(ptr, o, n) \ | ||
180 | ({ \ | ||
181 | BUILD_BUG_ON(sizeof(*(ptr)) != 8); \ | ||
182 | cmpxchg_local((ptr), (o), (n)); \ | ||
183 | }) | ||
184 | |||
185 | #endif /* _ASM_X86_CMPXCHG_64_H */ | ||
diff --git a/arch/x86/include/asm/compat.h b/arch/x86/include/asm/compat.h new file mode 100644 index 000000000000..9a9c7bdc923d --- /dev/null +++ b/arch/x86/include/asm/compat.h | |||
@@ -0,0 +1,218 @@ | |||
1 | #ifndef _ASM_X86_COMPAT_H | ||
2 | #define _ASM_X86_COMPAT_H | ||
3 | |||
4 | /* | ||
5 | * Architecture specific compatibility types | ||
6 | */ | ||
7 | #include <linux/types.h> | ||
8 | #include <linux/sched.h> | ||
9 | #include <asm/user32.h> | ||
10 | |||
11 | #define COMPAT_USER_HZ 100 | ||
12 | |||
13 | typedef u32 compat_size_t; | ||
14 | typedef s32 compat_ssize_t; | ||
15 | typedef s32 compat_time_t; | ||
16 | typedef s32 compat_clock_t; | ||
17 | typedef s32 compat_pid_t; | ||
18 | typedef u16 __compat_uid_t; | ||
19 | typedef u16 __compat_gid_t; | ||
20 | typedef u32 __compat_uid32_t; | ||
21 | typedef u32 __compat_gid32_t; | ||
22 | typedef u16 compat_mode_t; | ||
23 | typedef u32 compat_ino_t; | ||
24 | typedef u16 compat_dev_t; | ||
25 | typedef s32 compat_off_t; | ||
26 | typedef s64 compat_loff_t; | ||
27 | typedef u16 compat_nlink_t; | ||
28 | typedef u16 compat_ipc_pid_t; | ||
29 | typedef s32 compat_daddr_t; | ||
30 | typedef u32 compat_caddr_t; | ||
31 | typedef __kernel_fsid_t compat_fsid_t; | ||
32 | typedef s32 compat_timer_t; | ||
33 | typedef s32 compat_key_t; | ||
34 | |||
35 | typedef s32 compat_int_t; | ||
36 | typedef s32 compat_long_t; | ||
37 | typedef s64 __attribute__((aligned(4))) compat_s64; | ||
38 | typedef u32 compat_uint_t; | ||
39 | typedef u32 compat_ulong_t; | ||
40 | typedef u64 __attribute__((aligned(4))) compat_u64; | ||
41 | |||
42 | struct compat_timespec { | ||
43 | compat_time_t tv_sec; | ||
44 | s32 tv_nsec; | ||
45 | }; | ||
46 | |||
47 | struct compat_timeval { | ||
48 | compat_time_t tv_sec; | ||
49 | s32 tv_usec; | ||
50 | }; | ||
51 | |||
52 | struct compat_stat { | ||
53 | compat_dev_t st_dev; | ||
54 | u16 __pad1; | ||
55 | compat_ino_t st_ino; | ||
56 | compat_mode_t st_mode; | ||
57 | compat_nlink_t st_nlink; | ||
58 | __compat_uid_t st_uid; | ||
59 | __compat_gid_t st_gid; | ||
60 | compat_dev_t st_rdev; | ||
61 | u16 __pad2; | ||
62 | u32 st_size; | ||
63 | u32 st_blksize; | ||
64 | u32 st_blocks; | ||
65 | u32 st_atime; | ||
66 | u32 st_atime_nsec; | ||
67 | u32 st_mtime; | ||
68 | u32 st_mtime_nsec; | ||
69 | u32 st_ctime; | ||
70 | u32 st_ctime_nsec; | ||
71 | u32 __unused4; | ||
72 | u32 __unused5; | ||
73 | }; | ||
74 | |||
75 | struct compat_flock { | ||
76 | short l_type; | ||
77 | short l_whence; | ||
78 | compat_off_t l_start; | ||
79 | compat_off_t l_len; | ||
80 | compat_pid_t l_pid; | ||
81 | }; | ||
82 | |||
83 | #define F_GETLK64 12 /* using 'struct flock64' */ | ||
84 | #define F_SETLK64 13 | ||
85 | #define F_SETLKW64 14 | ||
86 | |||
87 | /* | ||
88 | * IA32 uses 4 byte alignment for 64 bit quantities, | ||
89 | * so we need to pack this structure. | ||
90 | */ | ||
91 | struct compat_flock64 { | ||
92 | short l_type; | ||
93 | short l_whence; | ||
94 | compat_loff_t l_start; | ||
95 | compat_loff_t l_len; | ||
96 | compat_pid_t l_pid; | ||
97 | } __attribute__((packed)); | ||
98 | |||
99 | struct compat_statfs { | ||
100 | int f_type; | ||
101 | int f_bsize; | ||
102 | int f_blocks; | ||
103 | int f_bfree; | ||
104 | int f_bavail; | ||
105 | int f_files; | ||
106 | int f_ffree; | ||
107 | compat_fsid_t f_fsid; | ||
108 | int f_namelen; /* SunOS ignores this field. */ | ||
109 | int f_frsize; | ||
110 | int f_spare[5]; | ||
111 | }; | ||
112 | |||
113 | #define COMPAT_RLIM_OLD_INFINITY 0x7fffffff | ||
114 | #define COMPAT_RLIM_INFINITY 0xffffffff | ||
115 | |||
116 | typedef u32 compat_old_sigset_t; /* at least 32 bits */ | ||
117 | |||
118 | #define _COMPAT_NSIG 64 | ||
119 | #define _COMPAT_NSIG_BPW 32 | ||
120 | |||
121 | typedef u32 compat_sigset_word; | ||
122 | |||
123 | #define COMPAT_OFF_T_MAX 0x7fffffff | ||
124 | #define COMPAT_LOFF_T_MAX 0x7fffffffffffffffL | ||
125 | |||
126 | struct compat_ipc64_perm { | ||
127 | compat_key_t key; | ||
128 | __compat_uid32_t uid; | ||
129 | __compat_gid32_t gid; | ||
130 | __compat_uid32_t cuid; | ||
131 | __compat_gid32_t cgid; | ||
132 | unsigned short mode; | ||
133 | unsigned short __pad1; | ||
134 | unsigned short seq; | ||
135 | unsigned short __pad2; | ||
136 | compat_ulong_t unused1; | ||
137 | compat_ulong_t unused2; | ||
138 | }; | ||
139 | |||
140 | struct compat_semid64_ds { | ||
141 | struct compat_ipc64_perm sem_perm; | ||
142 | compat_time_t sem_otime; | ||
143 | compat_ulong_t __unused1; | ||
144 | compat_time_t sem_ctime; | ||
145 | compat_ulong_t __unused2; | ||
146 | compat_ulong_t sem_nsems; | ||
147 | compat_ulong_t __unused3; | ||
148 | compat_ulong_t __unused4; | ||
149 | }; | ||
150 | |||
151 | struct compat_msqid64_ds { | ||
152 | struct compat_ipc64_perm msg_perm; | ||
153 | compat_time_t msg_stime; | ||
154 | compat_ulong_t __unused1; | ||
155 | compat_time_t msg_rtime; | ||
156 | compat_ulong_t __unused2; | ||
157 | compat_time_t msg_ctime; | ||
158 | compat_ulong_t __unused3; | ||
159 | compat_ulong_t msg_cbytes; | ||
160 | compat_ulong_t msg_qnum; | ||
161 | compat_ulong_t msg_qbytes; | ||
162 | compat_pid_t msg_lspid; | ||
163 | compat_pid_t msg_lrpid; | ||
164 | compat_ulong_t __unused4; | ||
165 | compat_ulong_t __unused5; | ||
166 | }; | ||
167 | |||
168 | struct compat_shmid64_ds { | ||
169 | struct compat_ipc64_perm shm_perm; | ||
170 | compat_size_t shm_segsz; | ||
171 | compat_time_t shm_atime; | ||
172 | compat_ulong_t __unused1; | ||
173 | compat_time_t shm_dtime; | ||
174 | compat_ulong_t __unused2; | ||
175 | compat_time_t shm_ctime; | ||
176 | compat_ulong_t __unused3; | ||
177 | compat_pid_t shm_cpid; | ||
178 | compat_pid_t shm_lpid; | ||
179 | compat_ulong_t shm_nattch; | ||
180 | compat_ulong_t __unused4; | ||
181 | compat_ulong_t __unused5; | ||
182 | }; | ||
183 | |||
184 | /* | ||
185 | * The type of struct elf_prstatus.pr_reg in compatible core dumps. | ||
186 | */ | ||
187 | typedef struct user_regs_struct32 compat_elf_gregset_t; | ||
188 | |||
189 | /* | ||
190 | * A pointer passed in from user mode. This should not | ||
191 | * be used for syscall parameters, just declare them | ||
192 | * as pointers because the syscall entry code will have | ||
193 | * appropriately converted them already. | ||
194 | */ | ||
195 | typedef u32 compat_uptr_t; | ||
196 | |||
197 | static inline void __user *compat_ptr(compat_uptr_t uptr) | ||
198 | { | ||
199 | return (void __user *)(unsigned long)uptr; | ||
200 | } | ||
201 | |||
202 | static inline compat_uptr_t ptr_to_compat(void __user *uptr) | ||
203 | { | ||
204 | return (u32)(unsigned long)uptr; | ||
205 | } | ||
206 | |||
207 | static inline void __user *compat_alloc_user_space(long len) | ||
208 | { | ||
209 | struct pt_regs *regs = task_pt_regs(current); | ||
210 | return (void __user *)regs->sp - len; | ||
211 | } | ||
212 | |||
213 | static inline int is_compat_task(void) | ||
214 | { | ||
215 | return current_thread_info()->status & TS_COMPAT; | ||
216 | } | ||
217 | |||
218 | #endif /* _ASM_X86_COMPAT_H */ | ||
diff --git a/arch/x86/include/asm/cpu.h b/arch/x86/include/asm/cpu.h new file mode 100644 index 000000000000..bae482df6039 --- /dev/null +++ b/arch/x86/include/asm/cpu.h | |||
@@ -0,0 +1,20 @@ | |||
1 | #ifndef _ASM_X86_CPU_H | ||
2 | #define _ASM_X86_CPU_H | ||
3 | |||
4 | #include <linux/device.h> | ||
5 | #include <linux/cpu.h> | ||
6 | #include <linux/topology.h> | ||
7 | #include <linux/nodemask.h> | ||
8 | #include <linux/percpu.h> | ||
9 | |||
10 | struct x86_cpu { | ||
11 | struct cpu cpu; | ||
12 | }; | ||
13 | |||
14 | #ifdef CONFIG_HOTPLUG_CPU | ||
15 | extern int arch_register_cpu(int num); | ||
16 | extern void arch_unregister_cpu(int); | ||
17 | #endif | ||
18 | |||
19 | DECLARE_PER_CPU(int, cpu_state); | ||
20 | #endif /* _ASM_X86_CPU_H */ | ||
diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h new file mode 100644 index 000000000000..f73e95d75b45 --- /dev/null +++ b/arch/x86/include/asm/cpufeature.h | |||
@@ -0,0 +1,271 @@ | |||
1 | /* | ||
2 | * Defines x86 CPU feature bits | ||
3 | */ | ||
4 | #ifndef _ASM_X86_CPUFEATURE_H | ||
5 | #define _ASM_X86_CPUFEATURE_H | ||
6 | |||
7 | #include <asm/required-features.h> | ||
8 | |||
9 | #define NCAPINTS 9 /* N 32-bit words worth of info */ | ||
10 | |||
11 | /* | ||
12 | * Note: If the comment begins with a quoted string, that string is used | ||
13 | * in /proc/cpuinfo instead of the macro name. If the string is "", | ||
14 | * this feature bit is not displayed in /proc/cpuinfo at all. | ||
15 | */ | ||
16 | |||
17 | /* Intel-defined CPU features, CPUID level 0x00000001 (edx), word 0 */ | ||
18 | #define X86_FEATURE_FPU (0*32+ 0) /* Onboard FPU */ | ||
19 | #define X86_FEATURE_VME (0*32+ 1) /* Virtual Mode Extensions */ | ||
20 | #define X86_FEATURE_DE (0*32+ 2) /* Debugging Extensions */ | ||
21 | #define X86_FEATURE_PSE (0*32+ 3) /* Page Size Extensions */ | ||
22 | #define X86_FEATURE_TSC (0*32+ 4) /* Time Stamp Counter */ | ||
23 | #define X86_FEATURE_MSR (0*32+ 5) /* Model-Specific Registers */ | ||
24 | #define X86_FEATURE_PAE (0*32+ 6) /* Physical Address Extensions */ | ||
25 | #define X86_FEATURE_MCE (0*32+ 7) /* Machine Check Architecture */ | ||
26 | #define X86_FEATURE_CX8 (0*32+ 8) /* CMPXCHG8 instruction */ | ||
27 | #define X86_FEATURE_APIC (0*32+ 9) /* Onboard APIC */ | ||
28 | #define X86_FEATURE_SEP (0*32+11) /* SYSENTER/SYSEXIT */ | ||
29 | #define X86_FEATURE_MTRR (0*32+12) /* Memory Type Range Registers */ | ||
30 | #define X86_FEATURE_PGE (0*32+13) /* Page Global Enable */ | ||
31 | #define X86_FEATURE_MCA (0*32+14) /* Machine Check Architecture */ | ||
32 | #define X86_FEATURE_CMOV (0*32+15) /* CMOV instructions */ | ||
33 | /* (plus FCMOVcc, FCOMI with FPU) */ | ||
34 | #define X86_FEATURE_PAT (0*32+16) /* Page Attribute Table */ | ||
35 | #define X86_FEATURE_PSE36 (0*32+17) /* 36-bit PSEs */ | ||
36 | #define X86_FEATURE_PN (0*32+18) /* Processor serial number */ | ||
37 | #define X86_FEATURE_CLFLSH (0*32+19) /* "clflush" CLFLUSH instruction */ | ||
38 | #define X86_FEATURE_DS (0*32+21) /* "dts" Debug Store */ | ||
39 | #define X86_FEATURE_ACPI (0*32+22) /* ACPI via MSR */ | ||
40 | #define X86_FEATURE_MMX (0*32+23) /* Multimedia Extensions */ | ||
41 | #define X86_FEATURE_FXSR (0*32+24) /* FXSAVE/FXRSTOR, CR4.OSFXSR */ | ||
42 | #define X86_FEATURE_XMM (0*32+25) /* "sse" */ | ||
43 | #define X86_FEATURE_XMM2 (0*32+26) /* "sse2" */ | ||
44 | #define X86_FEATURE_SELFSNOOP (0*32+27) /* "ss" CPU self snoop */ | ||
45 | #define X86_FEATURE_HT (0*32+28) /* Hyper-Threading */ | ||
46 | #define X86_FEATURE_ACC (0*32+29) /* "tm" Automatic clock control */ | ||
47 | #define X86_FEATURE_IA64 (0*32+30) /* IA-64 processor */ | ||
48 | #define X86_FEATURE_PBE (0*32+31) /* Pending Break Enable */ | ||
49 | |||
50 | /* AMD-defined CPU features, CPUID level 0x80000001, word 1 */ | ||
51 | /* Don't duplicate feature flags which are redundant with Intel! */ | ||
52 | #define X86_FEATURE_SYSCALL (1*32+11) /* SYSCALL/SYSRET */ | ||
53 | #define X86_FEATURE_MP (1*32+19) /* MP Capable. */ | ||
54 | #define X86_FEATURE_NX (1*32+20) /* Execute Disable */ | ||
55 | #define X86_FEATURE_MMXEXT (1*32+22) /* AMD MMX extensions */ | ||
56 | #define X86_FEATURE_FXSR_OPT (1*32+25) /* FXSAVE/FXRSTOR optimizations */ | ||
57 | #define X86_FEATURE_GBPAGES (1*32+26) /* "pdpe1gb" GB pages */ | ||
58 | #define X86_FEATURE_RDTSCP (1*32+27) /* RDTSCP */ | ||
59 | #define X86_FEATURE_LM (1*32+29) /* Long Mode (x86-64) */ | ||
60 | #define X86_FEATURE_3DNOWEXT (1*32+30) /* AMD 3DNow! extensions */ | ||
61 | #define X86_FEATURE_3DNOW (1*32+31) /* 3DNow! */ | ||
62 | |||
63 | /* Transmeta-defined CPU features, CPUID level 0x80860001, word 2 */ | ||
64 | #define X86_FEATURE_RECOVERY (2*32+ 0) /* CPU in recovery mode */ | ||
65 | #define X86_FEATURE_LONGRUN (2*32+ 1) /* Longrun power control */ | ||
66 | #define X86_FEATURE_LRTI (2*32+ 3) /* LongRun table interface */ | ||
67 | |||
68 | /* Other features, Linux-defined mapping, word 3 */ | ||
69 | /* This range is used for feature bits which conflict or are synthesized */ | ||
70 | #define X86_FEATURE_CXMMX (3*32+ 0) /* Cyrix MMX extensions */ | ||
71 | #define X86_FEATURE_K6_MTRR (3*32+ 1) /* AMD K6 nonstandard MTRRs */ | ||
72 | #define X86_FEATURE_CYRIX_ARR (3*32+ 2) /* Cyrix ARRs (= MTRRs) */ | ||
73 | #define X86_FEATURE_CENTAUR_MCR (3*32+ 3) /* Centaur MCRs (= MTRRs) */ | ||
74 | /* cpu types for specific tunings: */ | ||
75 | #define X86_FEATURE_K8 (3*32+ 4) /* "" Opteron, Athlon64 */ | ||
76 | #define X86_FEATURE_K7 (3*32+ 5) /* "" Athlon */ | ||
77 | #define X86_FEATURE_P3 (3*32+ 6) /* "" P3 */ | ||
78 | #define X86_FEATURE_P4 (3*32+ 7) /* "" P4 */ | ||
79 | #define X86_FEATURE_CONSTANT_TSC (3*32+ 8) /* TSC ticks at a constant rate */ | ||
80 | #define X86_FEATURE_UP (3*32+ 9) /* smp kernel running on up */ | ||
81 | #define X86_FEATURE_FXSAVE_LEAK (3*32+10) /* "" FXSAVE leaks FOP/FIP/FOP */ | ||
82 | #define X86_FEATURE_ARCH_PERFMON (3*32+11) /* Intel Architectural PerfMon */ | ||
83 | #define X86_FEATURE_NOPL (3*32+20) /* The NOPL (0F 1F) instructions */ | ||
84 | #define X86_FEATURE_PEBS (3*32+12) /* Precise-Event Based Sampling */ | ||
85 | #define X86_FEATURE_BTS (3*32+13) /* Branch Trace Store */ | ||
86 | #define X86_FEATURE_SYSCALL32 (3*32+14) /* "" syscall in ia32 userspace */ | ||
87 | #define X86_FEATURE_SYSENTER32 (3*32+15) /* "" sysenter in ia32 userspace */ | ||
88 | #define X86_FEATURE_REP_GOOD (3*32+16) /* rep microcode works well */ | ||
89 | #define X86_FEATURE_MFENCE_RDTSC (3*32+17) /* "" Mfence synchronizes RDTSC */ | ||
90 | #define X86_FEATURE_LFENCE_RDTSC (3*32+18) /* "" Lfence synchronizes RDTSC */ | ||
91 | #define X86_FEATURE_11AP (3*32+19) /* "" Bad local APIC aka 11AP */ | ||
92 | #define X86_FEATURE_NOPL (3*32+20) /* The NOPL (0F 1F) instructions */ | ||
93 | #define X86_FEATURE_AMDC1E (3*32+21) /* AMD C1E detected */ | ||
94 | #define X86_FEATURE_XTOPOLOGY (3*32+21) /* cpu topology enum extensions */ | ||
95 | |||
96 | /* Intel-defined CPU features, CPUID level 0x00000001 (ecx), word 4 */ | ||
97 | #define X86_FEATURE_XMM3 (4*32+ 0) /* "pni" SSE-3 */ | ||
98 | #define X86_FEATURE_PCLMULQDQ (4*32+ 1) /* PCLMULQDQ instruction */ | ||
99 | #define X86_FEATURE_DTES64 (4*32+ 2) /* 64-bit Debug Store */ | ||
100 | #define X86_FEATURE_MWAIT (4*32+ 3) /* "monitor" Monitor/Mwait support */ | ||
101 | #define X86_FEATURE_DSCPL (4*32+ 4) /* "ds_cpl" CPL Qual. Debug Store */ | ||
102 | #define X86_FEATURE_VMX (4*32+ 5) /* Hardware virtualization */ | ||
103 | #define X86_FEATURE_SMX (4*32+ 6) /* Safer mode */ | ||
104 | #define X86_FEATURE_EST (4*32+ 7) /* Enhanced SpeedStep */ | ||
105 | #define X86_FEATURE_TM2 (4*32+ 8) /* Thermal Monitor 2 */ | ||
106 | #define X86_FEATURE_SSSE3 (4*32+ 9) /* Supplemental SSE-3 */ | ||
107 | #define X86_FEATURE_CID (4*32+10) /* Context ID */ | ||
108 | #define X86_FEATURE_FMA (4*32+12) /* Fused multiply-add */ | ||
109 | #define X86_FEATURE_CX16 (4*32+13) /* CMPXCHG16B */ | ||
110 | #define X86_FEATURE_XTPR (4*32+14) /* Send Task Priority Messages */ | ||
111 | #define X86_FEATURE_PDCM (4*32+15) /* Performance Capabilities */ | ||
112 | #define X86_FEATURE_DCA (4*32+18) /* Direct Cache Access */ | ||
113 | #define X86_FEATURE_XMM4_1 (4*32+19) /* "sse4_1" SSE-4.1 */ | ||
114 | #define X86_FEATURE_XMM4_2 (4*32+20) /* "sse4_2" SSE-4.2 */ | ||
115 | #define X86_FEATURE_X2APIC (4*32+21) /* x2APIC */ | ||
116 | #define X86_FEATURE_AES (4*32+25) /* AES instructions */ | ||
117 | #define X86_FEATURE_XSAVE (4*32+26) /* XSAVE/XRSTOR/XSETBV/XGETBV */ | ||
118 | #define X86_FEATURE_OSXSAVE (4*32+27) /* "" XSAVE enabled in the OS */ | ||
119 | #define X86_FEATURE_AVX (4*32+28) /* Advanced Vector Extensions */ | ||
120 | |||
121 | /* VIA/Cyrix/Centaur-defined CPU features, CPUID level 0xC0000001, word 5 */ | ||
122 | #define X86_FEATURE_XSTORE (5*32+ 2) /* "rng" RNG present (xstore) */ | ||
123 | #define X86_FEATURE_XSTORE_EN (5*32+ 3) /* "rng_en" RNG enabled */ | ||
124 | #define X86_FEATURE_XCRYPT (5*32+ 6) /* "ace" on-CPU crypto (xcrypt) */ | ||
125 | #define X86_FEATURE_XCRYPT_EN (5*32+ 7) /* "ace_en" on-CPU crypto enabled */ | ||
126 | #define X86_FEATURE_ACE2 (5*32+ 8) /* Advanced Cryptography Engine v2 */ | ||
127 | #define X86_FEATURE_ACE2_EN (5*32+ 9) /* ACE v2 enabled */ | ||
128 | #define X86_FEATURE_PHE (5*32+10) /* PadLock Hash Engine */ | ||
129 | #define X86_FEATURE_PHE_EN (5*32+11) /* PHE enabled */ | ||
130 | #define X86_FEATURE_PMM (5*32+12) /* PadLock Montgomery Multiplier */ | ||
131 | #define X86_FEATURE_PMM_EN (5*32+13) /* PMM enabled */ | ||
132 | |||
133 | /* More extended AMD flags: CPUID level 0x80000001, ecx, word 6 */ | ||
134 | #define X86_FEATURE_LAHF_LM (6*32+ 0) /* LAHF/SAHF in long mode */ | ||
135 | #define X86_FEATURE_CMP_LEGACY (6*32+ 1) /* If yes HyperThreading not valid */ | ||
136 | #define X86_FEATURE_SVM (6*32+ 2) /* Secure virtual machine */ | ||
137 | #define X86_FEATURE_EXTAPIC (6*32+ 3) /* Extended APIC space */ | ||
138 | #define X86_FEATURE_CR8_LEGACY (6*32+ 4) /* CR8 in 32-bit mode */ | ||
139 | #define X86_FEATURE_ABM (6*32+ 5) /* Advanced bit manipulation */ | ||
140 | #define X86_FEATURE_SSE4A (6*32+ 6) /* SSE-4A */ | ||
141 | #define X86_FEATURE_MISALIGNSSE (6*32+ 7) /* Misaligned SSE mode */ | ||
142 | #define X86_FEATURE_3DNOWPREFETCH (6*32+ 8) /* 3DNow prefetch instructions */ | ||
143 | #define X86_FEATURE_OSVW (6*32+ 9) /* OS Visible Workaround */ | ||
144 | #define X86_FEATURE_IBS (6*32+10) /* Instruction Based Sampling */ | ||
145 | #define X86_FEATURE_SSE5 (6*32+11) /* SSE-5 */ | ||
146 | #define X86_FEATURE_SKINIT (6*32+12) /* SKINIT/STGI instructions */ | ||
147 | #define X86_FEATURE_WDT (6*32+13) /* Watchdog timer */ | ||
148 | |||
149 | /* | ||
150 | * Auxiliary flags: Linux defined - For features scattered in various | ||
151 | * CPUID levels like 0x6, 0xA etc | ||
152 | */ | ||
153 | #define X86_FEATURE_IDA (7*32+ 0) /* Intel Dynamic Acceleration */ | ||
154 | |||
155 | /* Virtualization flags: Linux defined */ | ||
156 | #define X86_FEATURE_TPR_SHADOW (8*32+ 0) /* Intel TPR Shadow */ | ||
157 | #define X86_FEATURE_VNMI (8*32+ 1) /* Intel Virtual NMI */ | ||
158 | #define X86_FEATURE_FLEXPRIORITY (8*32+ 2) /* Intel FlexPriority */ | ||
159 | #define X86_FEATURE_EPT (8*32+ 3) /* Intel Extended Page Table */ | ||
160 | #define X86_FEATURE_VPID (8*32+ 4) /* Intel Virtual Processor ID */ | ||
161 | |||
162 | #if defined(__KERNEL__) && !defined(__ASSEMBLY__) | ||
163 | |||
164 | #include <linux/bitops.h> | ||
165 | |||
166 | extern const char * const x86_cap_flags[NCAPINTS*32]; | ||
167 | extern const char * const x86_power_flags[32]; | ||
168 | |||
169 | #define test_cpu_cap(c, bit) \ | ||
170 | test_bit(bit, (unsigned long *)((c)->x86_capability)) | ||
171 | |||
172 | #define cpu_has(c, bit) \ | ||
173 | (__builtin_constant_p(bit) && \ | ||
174 | ( (((bit)>>5)==0 && (1UL<<((bit)&31) & REQUIRED_MASK0)) || \ | ||
175 | (((bit)>>5)==1 && (1UL<<((bit)&31) & REQUIRED_MASK1)) || \ | ||
176 | (((bit)>>5)==2 && (1UL<<((bit)&31) & REQUIRED_MASK2)) || \ | ||
177 | (((bit)>>5)==3 && (1UL<<((bit)&31) & REQUIRED_MASK3)) || \ | ||
178 | (((bit)>>5)==4 && (1UL<<((bit)&31) & REQUIRED_MASK4)) || \ | ||
179 | (((bit)>>5)==5 && (1UL<<((bit)&31) & REQUIRED_MASK5)) || \ | ||
180 | (((bit)>>5)==6 && (1UL<<((bit)&31) & REQUIRED_MASK6)) || \ | ||
181 | (((bit)>>5)==7 && (1UL<<((bit)&31) & REQUIRED_MASK7)) ) \ | ||
182 | ? 1 : \ | ||
183 | test_cpu_cap(c, bit)) | ||
184 | |||
185 | #define boot_cpu_has(bit) cpu_has(&boot_cpu_data, bit) | ||
186 | |||
187 | #define set_cpu_cap(c, bit) set_bit(bit, (unsigned long *)((c)->x86_capability)) | ||
188 | #define clear_cpu_cap(c, bit) clear_bit(bit, (unsigned long *)((c)->x86_capability)) | ||
189 | #define setup_clear_cpu_cap(bit) do { \ | ||
190 | clear_cpu_cap(&boot_cpu_data, bit); \ | ||
191 | set_bit(bit, (unsigned long *)cleared_cpu_caps); \ | ||
192 | } while (0) | ||
193 | #define setup_force_cpu_cap(bit) do { \ | ||
194 | set_cpu_cap(&boot_cpu_data, bit); \ | ||
195 | clear_bit(bit, (unsigned long *)cleared_cpu_caps); \ | ||
196 | } while (0) | ||
197 | |||
198 | #define cpu_has_fpu boot_cpu_has(X86_FEATURE_FPU) | ||
199 | #define cpu_has_vme boot_cpu_has(X86_FEATURE_VME) | ||
200 | #define cpu_has_de boot_cpu_has(X86_FEATURE_DE) | ||
201 | #define cpu_has_pse boot_cpu_has(X86_FEATURE_PSE) | ||
202 | #define cpu_has_tsc boot_cpu_has(X86_FEATURE_TSC) | ||
203 | #define cpu_has_pae boot_cpu_has(X86_FEATURE_PAE) | ||
204 | #define cpu_has_pge boot_cpu_has(X86_FEATURE_PGE) | ||
205 | #define cpu_has_apic boot_cpu_has(X86_FEATURE_APIC) | ||
206 | #define cpu_has_sep boot_cpu_has(X86_FEATURE_SEP) | ||
207 | #define cpu_has_mtrr boot_cpu_has(X86_FEATURE_MTRR) | ||
208 | #define cpu_has_mmx boot_cpu_has(X86_FEATURE_MMX) | ||
209 | #define cpu_has_fxsr boot_cpu_has(X86_FEATURE_FXSR) | ||
210 | #define cpu_has_xmm boot_cpu_has(X86_FEATURE_XMM) | ||
211 | #define cpu_has_xmm2 boot_cpu_has(X86_FEATURE_XMM2) | ||
212 | #define cpu_has_xmm3 boot_cpu_has(X86_FEATURE_XMM3) | ||
213 | #define cpu_has_ht boot_cpu_has(X86_FEATURE_HT) | ||
214 | #define cpu_has_mp boot_cpu_has(X86_FEATURE_MP) | ||
215 | #define cpu_has_nx boot_cpu_has(X86_FEATURE_NX) | ||
216 | #define cpu_has_k6_mtrr boot_cpu_has(X86_FEATURE_K6_MTRR) | ||
217 | #define cpu_has_cyrix_arr boot_cpu_has(X86_FEATURE_CYRIX_ARR) | ||
218 | #define cpu_has_centaur_mcr boot_cpu_has(X86_FEATURE_CENTAUR_MCR) | ||
219 | #define cpu_has_xstore boot_cpu_has(X86_FEATURE_XSTORE) | ||
220 | #define cpu_has_xstore_enabled boot_cpu_has(X86_FEATURE_XSTORE_EN) | ||
221 | #define cpu_has_xcrypt boot_cpu_has(X86_FEATURE_XCRYPT) | ||
222 | #define cpu_has_xcrypt_enabled boot_cpu_has(X86_FEATURE_XCRYPT_EN) | ||
223 | #define cpu_has_ace2 boot_cpu_has(X86_FEATURE_ACE2) | ||
224 | #define cpu_has_ace2_enabled boot_cpu_has(X86_FEATURE_ACE2_EN) | ||
225 | #define cpu_has_phe boot_cpu_has(X86_FEATURE_PHE) | ||
226 | #define cpu_has_phe_enabled boot_cpu_has(X86_FEATURE_PHE_EN) | ||
227 | #define cpu_has_pmm boot_cpu_has(X86_FEATURE_PMM) | ||
228 | #define cpu_has_pmm_enabled boot_cpu_has(X86_FEATURE_PMM_EN) | ||
229 | #define cpu_has_ds boot_cpu_has(X86_FEATURE_DS) | ||
230 | #define cpu_has_pebs boot_cpu_has(X86_FEATURE_PEBS) | ||
231 | #define cpu_has_clflush boot_cpu_has(X86_FEATURE_CLFLSH) | ||
232 | #define cpu_has_bts boot_cpu_has(X86_FEATURE_BTS) | ||
233 | #define cpu_has_gbpages boot_cpu_has(X86_FEATURE_GBPAGES) | ||
234 | #define cpu_has_arch_perfmon boot_cpu_has(X86_FEATURE_ARCH_PERFMON) | ||
235 | #define cpu_has_pat boot_cpu_has(X86_FEATURE_PAT) | ||
236 | #define cpu_has_xmm4_1 boot_cpu_has(X86_FEATURE_XMM4_1) | ||
237 | #define cpu_has_xmm4_2 boot_cpu_has(X86_FEATURE_XMM4_2) | ||
238 | #define cpu_has_x2apic boot_cpu_has(X86_FEATURE_X2APIC) | ||
239 | #define cpu_has_xsave boot_cpu_has(X86_FEATURE_XSAVE) | ||
240 | |||
241 | #if defined(CONFIG_X86_INVLPG) || defined(CONFIG_X86_64) | ||
242 | # define cpu_has_invlpg 1 | ||
243 | #else | ||
244 | # define cpu_has_invlpg (boot_cpu_data.x86 > 3) | ||
245 | #endif | ||
246 | |||
247 | #ifdef CONFIG_X86_64 | ||
248 | |||
249 | #undef cpu_has_vme | ||
250 | #define cpu_has_vme 0 | ||
251 | |||
252 | #undef cpu_has_pae | ||
253 | #define cpu_has_pae ___BUG___ | ||
254 | |||
255 | #undef cpu_has_mp | ||
256 | #define cpu_has_mp 1 | ||
257 | |||
258 | #undef cpu_has_k6_mtrr | ||
259 | #define cpu_has_k6_mtrr 0 | ||
260 | |||
261 | #undef cpu_has_cyrix_arr | ||
262 | #define cpu_has_cyrix_arr 0 | ||
263 | |||
264 | #undef cpu_has_centaur_mcr | ||
265 | #define cpu_has_centaur_mcr 0 | ||
266 | |||
267 | #endif /* CONFIG_X86_64 */ | ||
268 | |||
269 | #endif /* defined(__KERNEL__) && !defined(__ASSEMBLY__) */ | ||
270 | |||
271 | #endif /* _ASM_X86_CPUFEATURE_H */ | ||
diff --git a/arch/x86/include/asm/cputime.h b/arch/x86/include/asm/cputime.h new file mode 100644 index 000000000000..6d68ad7e0ea3 --- /dev/null +++ b/arch/x86/include/asm/cputime.h | |||
@@ -0,0 +1 @@ | |||
#include <asm-generic/cputime.h> | |||
diff --git a/arch/x86/include/asm/current.h b/arch/x86/include/asm/current.h new file mode 100644 index 000000000000..0930b4f8d672 --- /dev/null +++ b/arch/x86/include/asm/current.h | |||
@@ -0,0 +1,39 @@ | |||
1 | #ifndef _ASM_X86_CURRENT_H | ||
2 | #define _ASM_X86_CURRENT_H | ||
3 | |||
4 | #ifdef CONFIG_X86_32 | ||
5 | #include <linux/compiler.h> | ||
6 | #include <asm/percpu.h> | ||
7 | |||
8 | struct task_struct; | ||
9 | |||
10 | DECLARE_PER_CPU(struct task_struct *, current_task); | ||
11 | static __always_inline struct task_struct *get_current(void) | ||
12 | { | ||
13 | return x86_read_percpu(current_task); | ||
14 | } | ||
15 | |||
16 | #else /* X86_32 */ | ||
17 | |||
18 | #ifndef __ASSEMBLY__ | ||
19 | #include <asm/pda.h> | ||
20 | |||
21 | struct task_struct; | ||
22 | |||
23 | static __always_inline struct task_struct *get_current(void) | ||
24 | { | ||
25 | return read_pda(pcurrent); | ||
26 | } | ||
27 | |||
28 | #else /* __ASSEMBLY__ */ | ||
29 | |||
30 | #include <asm/asm-offsets.h> | ||
31 | #define GET_CURRENT(reg) movq %gs:(pda_pcurrent),reg | ||
32 | |||
33 | #endif /* __ASSEMBLY__ */ | ||
34 | |||
35 | #endif /* X86_32 */ | ||
36 | |||
37 | #define current get_current() | ||
38 | |||
39 | #endif /* _ASM_X86_CURRENT_H */ | ||
diff --git a/arch/x86/include/asm/debugreg.h b/arch/x86/include/asm/debugreg.h new file mode 100644 index 000000000000..3ea6f37be9e2 --- /dev/null +++ b/arch/x86/include/asm/debugreg.h | |||
@@ -0,0 +1,70 @@ | |||
1 | #ifndef _ASM_X86_DEBUGREG_H | ||
2 | #define _ASM_X86_DEBUGREG_H | ||
3 | |||
4 | |||
5 | /* Indicate the register numbers for a number of the specific | ||
6 | debug registers. Registers 0-3 contain the addresses we wish to trap on */ | ||
7 | #define DR_FIRSTADDR 0 /* u_debugreg[DR_FIRSTADDR] */ | ||
8 | #define DR_LASTADDR 3 /* u_debugreg[DR_LASTADDR] */ | ||
9 | |||
10 | #define DR_STATUS 6 /* u_debugreg[DR_STATUS] */ | ||
11 | #define DR_CONTROL 7 /* u_debugreg[DR_CONTROL] */ | ||
12 | |||
13 | /* Define a few things for the status register. We can use this to determine | ||
14 | which debugging register was responsible for the trap. The other bits | ||
15 | are either reserved or not of interest to us. */ | ||
16 | |||
17 | #define DR_TRAP0 (0x1) /* db0 */ | ||
18 | #define DR_TRAP1 (0x2) /* db1 */ | ||
19 | #define DR_TRAP2 (0x4) /* db2 */ | ||
20 | #define DR_TRAP3 (0x8) /* db3 */ | ||
21 | |||
22 | #define DR_STEP (0x4000) /* single-step */ | ||
23 | #define DR_SWITCH (0x8000) /* task switch */ | ||
24 | |||
25 | /* Now define a bunch of things for manipulating the control register. | ||
26 | The top two bytes of the control register consist of 4 fields of 4 | ||
27 | bits - each field corresponds to one of the four debug registers, | ||
28 | and indicates what types of access we trap on, and how large the data | ||
29 | field is that we are looking at */ | ||
30 | |||
31 | #define DR_CONTROL_SHIFT 16 /* Skip this many bits in ctl register */ | ||
32 | #define DR_CONTROL_SIZE 4 /* 4 control bits per register */ | ||
33 | |||
34 | #define DR_RW_EXECUTE (0x0) /* Settings for the access types to trap on */ | ||
35 | #define DR_RW_WRITE (0x1) | ||
36 | #define DR_RW_READ (0x3) | ||
37 | |||
38 | #define DR_LEN_1 (0x0) /* Settings for data length to trap on */ | ||
39 | #define DR_LEN_2 (0x4) | ||
40 | #define DR_LEN_4 (0xC) | ||
41 | #define DR_LEN_8 (0x8) | ||
42 | |||
43 | /* The low byte to the control register determine which registers are | ||
44 | enabled. There are 4 fields of two bits. One bit is "local", meaning | ||
45 | that the processor will reset the bit after a task switch and the other | ||
46 | is global meaning that we have to explicitly reset the bit. With linux, | ||
47 | you can use either one, since we explicitly zero the register when we enter | ||
48 | kernel mode. */ | ||
49 | |||
50 | #define DR_LOCAL_ENABLE_SHIFT 0 /* Extra shift to the local enable bit */ | ||
51 | #define DR_GLOBAL_ENABLE_SHIFT 1 /* Extra shift to the global enable bit */ | ||
52 | #define DR_ENABLE_SIZE 2 /* 2 enable bits per register */ | ||
53 | |||
54 | #define DR_LOCAL_ENABLE_MASK (0x55) /* Set local bits for all 4 regs */ | ||
55 | #define DR_GLOBAL_ENABLE_MASK (0xAA) /* Set global bits for all 4 regs */ | ||
56 | |||
57 | /* The second byte to the control register has a few special things. | ||
58 | We can slow the instruction pipeline for instructions coming via the | ||
59 | gdt or the ldt if we want to. I am not sure why this is an advantage */ | ||
60 | |||
61 | #ifdef __i386__ | ||
62 | #define DR_CONTROL_RESERVED (0xFC00) /* Reserved by Intel */ | ||
63 | #else | ||
64 | #define DR_CONTROL_RESERVED (0xFFFFFFFF0000FC00UL) /* Reserved */ | ||
65 | #endif | ||
66 | |||
67 | #define DR_LOCAL_SLOWDOWN (0x100) /* Local slow the pipeline */ | ||
68 | #define DR_GLOBAL_SLOWDOWN (0x200) /* Global slow the pipeline */ | ||
69 | |||
70 | #endif /* _ASM_X86_DEBUGREG_H */ | ||
diff --git a/arch/x86/include/asm/delay.h b/arch/x86/include/asm/delay.h new file mode 100644 index 000000000000..409a649204aa --- /dev/null +++ b/arch/x86/include/asm/delay.h | |||
@@ -0,0 +1,31 @@ | |||
1 | #ifndef _ASM_X86_DELAY_H | ||
2 | #define _ASM_X86_DELAY_H | ||
3 | |||
4 | /* | ||
5 | * Copyright (C) 1993 Linus Torvalds | ||
6 | * | ||
7 | * Delay routines calling functions in arch/x86/lib/delay.c | ||
8 | */ | ||
9 | |||
10 | /* Undefined functions to get compile-time errors */ | ||
11 | extern void __bad_udelay(void); | ||
12 | extern void __bad_ndelay(void); | ||
13 | |||
14 | extern void __udelay(unsigned long usecs); | ||
15 | extern void __ndelay(unsigned long nsecs); | ||
16 | extern void __const_udelay(unsigned long xloops); | ||
17 | extern void __delay(unsigned long loops); | ||
18 | |||
19 | /* 0x10c7 is 2**32 / 1000000 (rounded up) */ | ||
20 | #define udelay(n) (__builtin_constant_p(n) ? \ | ||
21 | ((n) > 20000 ? __bad_udelay() : __const_udelay((n) * 0x10c7ul)) : \ | ||
22 | __udelay(n)) | ||
23 | |||
24 | /* 0x5 is 2**32 / 1000000000 (rounded up) */ | ||
25 | #define ndelay(n) (__builtin_constant_p(n) ? \ | ||
26 | ((n) > 20000 ? __bad_ndelay() : __const_udelay((n) * 5ul)) : \ | ||
27 | __ndelay(n)) | ||
28 | |||
29 | void use_tsc_delay(void); | ||
30 | |||
31 | #endif /* _ASM_X86_DELAY_H */ | ||
diff --git a/arch/x86/include/asm/desc.h b/arch/x86/include/asm/desc.h new file mode 100644 index 000000000000..e6b82b17b072 --- /dev/null +++ b/arch/x86/include/asm/desc.h | |||
@@ -0,0 +1,409 @@ | |||
1 | #ifndef _ASM_X86_DESC_H | ||
2 | #define _ASM_X86_DESC_H | ||
3 | |||
4 | #ifndef __ASSEMBLY__ | ||
5 | #include <asm/desc_defs.h> | ||
6 | #include <asm/ldt.h> | ||
7 | #include <asm/mmu.h> | ||
8 | #include <linux/smp.h> | ||
9 | |||
10 | static inline void fill_ldt(struct desc_struct *desc, | ||
11 | const struct user_desc *info) | ||
12 | { | ||
13 | desc->limit0 = info->limit & 0x0ffff; | ||
14 | desc->base0 = info->base_addr & 0x0000ffff; | ||
15 | |||
16 | desc->base1 = (info->base_addr & 0x00ff0000) >> 16; | ||
17 | desc->type = (info->read_exec_only ^ 1) << 1; | ||
18 | desc->type |= info->contents << 2; | ||
19 | desc->s = 1; | ||
20 | desc->dpl = 0x3; | ||
21 | desc->p = info->seg_not_present ^ 1; | ||
22 | desc->limit = (info->limit & 0xf0000) >> 16; | ||
23 | desc->avl = info->useable; | ||
24 | desc->d = info->seg_32bit; | ||
25 | desc->g = info->limit_in_pages; | ||
26 | desc->base2 = (info->base_addr & 0xff000000) >> 24; | ||
27 | /* | ||
28 | * Don't allow setting of the lm bit. It is useless anyway | ||
29 | * because 64bit system calls require __USER_CS: | ||
30 | */ | ||
31 | desc->l = 0; | ||
32 | } | ||
33 | |||
34 | extern struct desc_ptr idt_descr; | ||
35 | extern gate_desc idt_table[]; | ||
36 | |||
37 | struct gdt_page { | ||
38 | struct desc_struct gdt[GDT_ENTRIES]; | ||
39 | } __attribute__((aligned(PAGE_SIZE))); | ||
40 | DECLARE_PER_CPU(struct gdt_page, gdt_page); | ||
41 | |||
42 | static inline struct desc_struct *get_cpu_gdt_table(unsigned int cpu) | ||
43 | { | ||
44 | return per_cpu(gdt_page, cpu).gdt; | ||
45 | } | ||
46 | |||
47 | #ifdef CONFIG_X86_64 | ||
48 | |||
49 | static inline void pack_gate(gate_desc *gate, unsigned type, unsigned long func, | ||
50 | unsigned dpl, unsigned ist, unsigned seg) | ||
51 | { | ||
52 | gate->offset_low = PTR_LOW(func); | ||
53 | gate->segment = __KERNEL_CS; | ||
54 | gate->ist = ist; | ||
55 | gate->p = 1; | ||
56 | gate->dpl = dpl; | ||
57 | gate->zero0 = 0; | ||
58 | gate->zero1 = 0; | ||
59 | gate->type = type; | ||
60 | gate->offset_middle = PTR_MIDDLE(func); | ||
61 | gate->offset_high = PTR_HIGH(func); | ||
62 | } | ||
63 | |||
64 | #else | ||
65 | static inline void pack_gate(gate_desc *gate, unsigned char type, | ||
66 | unsigned long base, unsigned dpl, unsigned flags, | ||
67 | unsigned short seg) | ||
68 | { | ||
69 | gate->a = (seg << 16) | (base & 0xffff); | ||
70 | gate->b = (base & 0xffff0000) | | ||
71 | (((0x80 | type | (dpl << 5)) & 0xff) << 8); | ||
72 | } | ||
73 | |||
74 | #endif | ||
75 | |||
76 | static inline int desc_empty(const void *ptr) | ||
77 | { | ||
78 | const u32 *desc = ptr; | ||
79 | return !(desc[0] | desc[1]); | ||
80 | } | ||
81 | |||
82 | #ifdef CONFIG_PARAVIRT | ||
83 | #include <asm/paravirt.h> | ||
84 | #else | ||
85 | #define load_TR_desc() native_load_tr_desc() | ||
86 | #define load_gdt(dtr) native_load_gdt(dtr) | ||
87 | #define load_idt(dtr) native_load_idt(dtr) | ||
88 | #define load_tr(tr) asm volatile("ltr %0"::"m" (tr)) | ||
89 | #define load_ldt(ldt) asm volatile("lldt %0"::"m" (ldt)) | ||
90 | |||
91 | #define store_gdt(dtr) native_store_gdt(dtr) | ||
92 | #define store_idt(dtr) native_store_idt(dtr) | ||
93 | #define store_tr(tr) (tr = native_store_tr()) | ||
94 | #define store_ldt(ldt) asm("sldt %0":"=m" (ldt)) | ||
95 | |||
96 | #define load_TLS(t, cpu) native_load_tls(t, cpu) | ||
97 | #define set_ldt native_set_ldt | ||
98 | |||
99 | #define write_ldt_entry(dt, entry, desc) \ | ||
100 | native_write_ldt_entry(dt, entry, desc) | ||
101 | #define write_gdt_entry(dt, entry, desc, type) \ | ||
102 | native_write_gdt_entry(dt, entry, desc, type) | ||
103 | #define write_idt_entry(dt, entry, g) \ | ||
104 | native_write_idt_entry(dt, entry, g) | ||
105 | |||
106 | static inline void paravirt_alloc_ldt(struct desc_struct *ldt, unsigned entries) | ||
107 | { | ||
108 | } | ||
109 | |||
110 | static inline void paravirt_free_ldt(struct desc_struct *ldt, unsigned entries) | ||
111 | { | ||
112 | } | ||
113 | #endif /* CONFIG_PARAVIRT */ | ||
114 | |||
115 | static inline void native_write_idt_entry(gate_desc *idt, int entry, | ||
116 | const gate_desc *gate) | ||
117 | { | ||
118 | memcpy(&idt[entry], gate, sizeof(*gate)); | ||
119 | } | ||
120 | |||
121 | static inline void native_write_ldt_entry(struct desc_struct *ldt, int entry, | ||
122 | const void *desc) | ||
123 | { | ||
124 | memcpy(&ldt[entry], desc, 8); | ||
125 | } | ||
126 | |||
127 | static inline void native_write_gdt_entry(struct desc_struct *gdt, int entry, | ||
128 | const void *desc, int type) | ||
129 | { | ||
130 | unsigned int size; | ||
131 | switch (type) { | ||
132 | case DESC_TSS: | ||
133 | size = sizeof(tss_desc); | ||
134 | break; | ||
135 | case DESC_LDT: | ||
136 | size = sizeof(ldt_desc); | ||
137 | break; | ||
138 | default: | ||
139 | size = sizeof(struct desc_struct); | ||
140 | break; | ||
141 | } | ||
142 | memcpy(&gdt[entry], desc, size); | ||
143 | } | ||
144 | |||
145 | static inline void pack_descriptor(struct desc_struct *desc, unsigned long base, | ||
146 | unsigned long limit, unsigned char type, | ||
147 | unsigned char flags) | ||
148 | { | ||
149 | desc->a = ((base & 0xffff) << 16) | (limit & 0xffff); | ||
150 | desc->b = (base & 0xff000000) | ((base & 0xff0000) >> 16) | | ||
151 | (limit & 0x000f0000) | ((type & 0xff) << 8) | | ||
152 | ((flags & 0xf) << 20); | ||
153 | desc->p = 1; | ||
154 | } | ||
155 | |||
156 | |||
157 | static inline void set_tssldt_descriptor(void *d, unsigned long addr, | ||
158 | unsigned type, unsigned size) | ||
159 | { | ||
160 | #ifdef CONFIG_X86_64 | ||
161 | struct ldttss_desc64 *desc = d; | ||
162 | memset(desc, 0, sizeof(*desc)); | ||
163 | desc->limit0 = size & 0xFFFF; | ||
164 | desc->base0 = PTR_LOW(addr); | ||
165 | desc->base1 = PTR_MIDDLE(addr) & 0xFF; | ||
166 | desc->type = type; | ||
167 | desc->p = 1; | ||
168 | desc->limit1 = (size >> 16) & 0xF; | ||
169 | desc->base2 = (PTR_MIDDLE(addr) >> 8) & 0xFF; | ||
170 | desc->base3 = PTR_HIGH(addr); | ||
171 | #else | ||
172 | pack_descriptor((struct desc_struct *)d, addr, size, 0x80 | type, 0); | ||
173 | #endif | ||
174 | } | ||
175 | |||
176 | static inline void __set_tss_desc(unsigned cpu, unsigned int entry, void *addr) | ||
177 | { | ||
178 | struct desc_struct *d = get_cpu_gdt_table(cpu); | ||
179 | tss_desc tss; | ||
180 | |||
181 | /* | ||
182 | * sizeof(unsigned long) coming from an extra "long" at the end | ||
183 | * of the iobitmap. See tss_struct definition in processor.h | ||
184 | * | ||
185 | * -1? seg base+limit should be pointing to the address of the | ||
186 | * last valid byte | ||
187 | */ | ||
188 | set_tssldt_descriptor(&tss, (unsigned long)addr, DESC_TSS, | ||
189 | IO_BITMAP_OFFSET + IO_BITMAP_BYTES + | ||
190 | sizeof(unsigned long) - 1); | ||
191 | write_gdt_entry(d, entry, &tss, DESC_TSS); | ||
192 | } | ||
193 | |||
194 | #define set_tss_desc(cpu, addr) __set_tss_desc(cpu, GDT_ENTRY_TSS, addr) | ||
195 | |||
196 | static inline void native_set_ldt(const void *addr, unsigned int entries) | ||
197 | { | ||
198 | if (likely(entries == 0)) | ||
199 | asm volatile("lldt %w0"::"q" (0)); | ||
200 | else { | ||
201 | unsigned cpu = smp_processor_id(); | ||
202 | ldt_desc ldt; | ||
203 | |||
204 | set_tssldt_descriptor(&ldt, (unsigned long)addr, DESC_LDT, | ||
205 | entries * LDT_ENTRY_SIZE - 1); | ||
206 | write_gdt_entry(get_cpu_gdt_table(cpu), GDT_ENTRY_LDT, | ||
207 | &ldt, DESC_LDT); | ||
208 | asm volatile("lldt %w0"::"q" (GDT_ENTRY_LDT*8)); | ||
209 | } | ||
210 | } | ||
211 | |||
212 | static inline void native_load_tr_desc(void) | ||
213 | { | ||
214 | asm volatile("ltr %w0"::"q" (GDT_ENTRY_TSS*8)); | ||
215 | } | ||
216 | |||
217 | static inline void native_load_gdt(const struct desc_ptr *dtr) | ||
218 | { | ||
219 | asm volatile("lgdt %0"::"m" (*dtr)); | ||
220 | } | ||
221 | |||
222 | static inline void native_load_idt(const struct desc_ptr *dtr) | ||
223 | { | ||
224 | asm volatile("lidt %0"::"m" (*dtr)); | ||
225 | } | ||
226 | |||
227 | static inline void native_store_gdt(struct desc_ptr *dtr) | ||
228 | { | ||
229 | asm volatile("sgdt %0":"=m" (*dtr)); | ||
230 | } | ||
231 | |||
232 | static inline void native_store_idt(struct desc_ptr *dtr) | ||
233 | { | ||
234 | asm volatile("sidt %0":"=m" (*dtr)); | ||
235 | } | ||
236 | |||
237 | static inline unsigned long native_store_tr(void) | ||
238 | { | ||
239 | unsigned long tr; | ||
240 | asm volatile("str %0":"=r" (tr)); | ||
241 | return tr; | ||
242 | } | ||
243 | |||
244 | static inline void native_load_tls(struct thread_struct *t, unsigned int cpu) | ||
245 | { | ||
246 | unsigned int i; | ||
247 | struct desc_struct *gdt = get_cpu_gdt_table(cpu); | ||
248 | |||
249 | for (i = 0; i < GDT_ENTRY_TLS_ENTRIES; i++) | ||
250 | gdt[GDT_ENTRY_TLS_MIN + i] = t->tls_array[i]; | ||
251 | } | ||
252 | |||
253 | #define _LDT_empty(info) \ | ||
254 | ((info)->base_addr == 0 && \ | ||
255 | (info)->limit == 0 && \ | ||
256 | (info)->contents == 0 && \ | ||
257 | (info)->read_exec_only == 1 && \ | ||
258 | (info)->seg_32bit == 0 && \ | ||
259 | (info)->limit_in_pages == 0 && \ | ||
260 | (info)->seg_not_present == 1 && \ | ||
261 | (info)->useable == 0) | ||
262 | |||
263 | #ifdef CONFIG_X86_64 | ||
264 | #define LDT_empty(info) (_LDT_empty(info) && ((info)->lm == 0)) | ||
265 | #else | ||
266 | #define LDT_empty(info) (_LDT_empty(info)) | ||
267 | #endif | ||
268 | |||
269 | static inline void clear_LDT(void) | ||
270 | { | ||
271 | set_ldt(NULL, 0); | ||
272 | } | ||
273 | |||
274 | /* | ||
275 | * load one particular LDT into the current CPU | ||
276 | */ | ||
277 | static inline void load_LDT_nolock(mm_context_t *pc) | ||
278 | { | ||
279 | set_ldt(pc->ldt, pc->size); | ||
280 | } | ||
281 | |||
282 | static inline void load_LDT(mm_context_t *pc) | ||
283 | { | ||
284 | preempt_disable(); | ||
285 | load_LDT_nolock(pc); | ||
286 | preempt_enable(); | ||
287 | } | ||
288 | |||
289 | static inline unsigned long get_desc_base(const struct desc_struct *desc) | ||
290 | { | ||
291 | return desc->base0 | ((desc->base1) << 16) | ((desc->base2) << 24); | ||
292 | } | ||
293 | |||
294 | static inline unsigned long get_desc_limit(const struct desc_struct *desc) | ||
295 | { | ||
296 | return desc->limit0 | (desc->limit << 16); | ||
297 | } | ||
298 | |||
299 | static inline void _set_gate(int gate, unsigned type, void *addr, | ||
300 | unsigned dpl, unsigned ist, unsigned seg) | ||
301 | { | ||
302 | gate_desc s; | ||
303 | pack_gate(&s, type, (unsigned long)addr, dpl, ist, seg); | ||
304 | /* | ||
305 | * does not need to be atomic because it is only done once at | ||
306 | * setup time | ||
307 | */ | ||
308 | write_idt_entry(idt_table, gate, &s); | ||
309 | } | ||
310 | |||
311 | /* | ||
312 | * This needs to use 'idt_table' rather than 'idt', and | ||
313 | * thus use the _nonmapped_ version of the IDT, as the | ||
314 | * Pentium F0 0F bugfix can have resulted in the mapped | ||
315 | * IDT being write-protected. | ||
316 | */ | ||
317 | static inline void set_intr_gate(unsigned int n, void *addr) | ||
318 | { | ||
319 | BUG_ON((unsigned)n > 0xFF); | ||
320 | _set_gate(n, GATE_INTERRUPT, addr, 0, 0, __KERNEL_CS); | ||
321 | } | ||
322 | |||
323 | #define SYS_VECTOR_FREE 0 | ||
324 | #define SYS_VECTOR_ALLOCED 1 | ||
325 | |||
326 | extern int first_system_vector; | ||
327 | extern char system_vectors[]; | ||
328 | |||
329 | static inline void alloc_system_vector(int vector) | ||
330 | { | ||
331 | if (system_vectors[vector] == SYS_VECTOR_FREE) { | ||
332 | system_vectors[vector] = SYS_VECTOR_ALLOCED; | ||
333 | if (first_system_vector > vector) | ||
334 | first_system_vector = vector; | ||
335 | } else | ||
336 | BUG(); | ||
337 | } | ||
338 | |||
339 | static inline void alloc_intr_gate(unsigned int n, void *addr) | ||
340 | { | ||
341 | alloc_system_vector(n); | ||
342 | set_intr_gate(n, addr); | ||
343 | } | ||
344 | |||
345 | /* | ||
346 | * This routine sets up an interrupt gate at directory privilege level 3. | ||
347 | */ | ||
348 | static inline void set_system_intr_gate(unsigned int n, void *addr) | ||
349 | { | ||
350 | BUG_ON((unsigned)n > 0xFF); | ||
351 | _set_gate(n, GATE_INTERRUPT, addr, 0x3, 0, __KERNEL_CS); | ||
352 | } | ||
353 | |||
354 | static inline void set_system_trap_gate(unsigned int n, void *addr) | ||
355 | { | ||
356 | BUG_ON((unsigned)n > 0xFF); | ||
357 | _set_gate(n, GATE_TRAP, addr, 0x3, 0, __KERNEL_CS); | ||
358 | } | ||
359 | |||
360 | static inline void set_trap_gate(unsigned int n, void *addr) | ||
361 | { | ||
362 | BUG_ON((unsigned)n > 0xFF); | ||
363 | _set_gate(n, GATE_TRAP, addr, 0, 0, __KERNEL_CS); | ||
364 | } | ||
365 | |||
366 | static inline void set_task_gate(unsigned int n, unsigned int gdt_entry) | ||
367 | { | ||
368 | BUG_ON((unsigned)n > 0xFF); | ||
369 | _set_gate(n, GATE_TASK, (void *)0, 0, 0, (gdt_entry<<3)); | ||
370 | } | ||
371 | |||
372 | static inline void set_intr_gate_ist(int n, void *addr, unsigned ist) | ||
373 | { | ||
374 | BUG_ON((unsigned)n > 0xFF); | ||
375 | _set_gate(n, GATE_INTERRUPT, addr, 0, ist, __KERNEL_CS); | ||
376 | } | ||
377 | |||
378 | static inline void set_system_intr_gate_ist(int n, void *addr, unsigned ist) | ||
379 | { | ||
380 | BUG_ON((unsigned)n > 0xFF); | ||
381 | _set_gate(n, GATE_INTERRUPT, addr, 0x3, ist, __KERNEL_CS); | ||
382 | } | ||
383 | |||
384 | #else | ||
385 | /* | ||
386 | * GET_DESC_BASE reads the descriptor base of the specified segment. | ||
387 | * | ||
388 | * Args: | ||
389 | * idx - descriptor index | ||
390 | * gdt - GDT pointer | ||
391 | * base - 32bit register to which the base will be written | ||
392 | * lo_w - lo word of the "base" register | ||
393 | * lo_b - lo byte of the "base" register | ||
394 | * hi_b - hi byte of the low word of the "base" register | ||
395 | * | ||
396 | * Example: | ||
397 | * GET_DESC_BASE(GDT_ENTRY_ESPFIX_SS, %ebx, %eax, %ax, %al, %ah) | ||
398 | * Will read the base address of GDT_ENTRY_ESPFIX_SS and put it into %eax. | ||
399 | */ | ||
400 | #define GET_DESC_BASE(idx, gdt, base, lo_w, lo_b, hi_b) \ | ||
401 | movb idx * 8 + 4(gdt), lo_b; \ | ||
402 | movb idx * 8 + 7(gdt), hi_b; \ | ||
403 | shll $16, base; \ | ||
404 | movw idx * 8 + 2(gdt), lo_w; | ||
405 | |||
406 | |||
407 | #endif /* __ASSEMBLY__ */ | ||
408 | |||
409 | #endif /* _ASM_X86_DESC_H */ | ||
diff --git a/arch/x86/include/asm/desc_defs.h b/arch/x86/include/asm/desc_defs.h new file mode 100644 index 000000000000..a6adefa28b94 --- /dev/null +++ b/arch/x86/include/asm/desc_defs.h | |||
@@ -0,0 +1,95 @@ | |||
1 | /* Written 2000 by Andi Kleen */ | ||
2 | #ifndef _ASM_X86_DESC_DEFS_H | ||
3 | #define _ASM_X86_DESC_DEFS_H | ||
4 | |||
5 | /* | ||
6 | * Segment descriptor structure definitions, usable from both x86_64 and i386 | ||
7 | * archs. | ||
8 | */ | ||
9 | |||
10 | #ifndef __ASSEMBLY__ | ||
11 | |||
12 | #include <linux/types.h> | ||
13 | |||
14 | /* | ||
15 | * FIXME: Acessing the desc_struct through its fields is more elegant, | ||
16 | * and should be the one valid thing to do. However, a lot of open code | ||
17 | * still touches the a and b acessors, and doing this allow us to do it | ||
18 | * incrementally. We keep the signature as a struct, rather than an union, | ||
19 | * so we can get rid of it transparently in the future -- glommer | ||
20 | */ | ||
21 | /* 8 byte segment descriptor */ | ||
22 | struct desc_struct { | ||
23 | union { | ||
24 | struct { | ||
25 | unsigned int a; | ||
26 | unsigned int b; | ||
27 | }; | ||
28 | struct { | ||
29 | u16 limit0; | ||
30 | u16 base0; | ||
31 | unsigned base1: 8, type: 4, s: 1, dpl: 2, p: 1; | ||
32 | unsigned limit: 4, avl: 1, l: 1, d: 1, g: 1, base2: 8; | ||
33 | }; | ||
34 | }; | ||
35 | } __attribute__((packed)); | ||
36 | |||
37 | enum { | ||
38 | GATE_INTERRUPT = 0xE, | ||
39 | GATE_TRAP = 0xF, | ||
40 | GATE_CALL = 0xC, | ||
41 | GATE_TASK = 0x5, | ||
42 | }; | ||
43 | |||
44 | /* 16byte gate */ | ||
45 | struct gate_struct64 { | ||
46 | u16 offset_low; | ||
47 | u16 segment; | ||
48 | unsigned ist : 3, zero0 : 5, type : 5, dpl : 2, p : 1; | ||
49 | u16 offset_middle; | ||
50 | u32 offset_high; | ||
51 | u32 zero1; | ||
52 | } __attribute__((packed)); | ||
53 | |||
54 | #define PTR_LOW(x) ((unsigned long long)(x) & 0xFFFF) | ||
55 | #define PTR_MIDDLE(x) (((unsigned long long)(x) >> 16) & 0xFFFF) | ||
56 | #define PTR_HIGH(x) ((unsigned long long)(x) >> 32) | ||
57 | |||
58 | enum { | ||
59 | DESC_TSS = 0x9, | ||
60 | DESC_LDT = 0x2, | ||
61 | DESCTYPE_S = 0x10, /* !system */ | ||
62 | }; | ||
63 | |||
64 | /* LDT or TSS descriptor in the GDT. 16 bytes. */ | ||
65 | struct ldttss_desc64 { | ||
66 | u16 limit0; | ||
67 | u16 base0; | ||
68 | unsigned base1 : 8, type : 5, dpl : 2, p : 1; | ||
69 | unsigned limit1 : 4, zero0 : 3, g : 1, base2 : 8; | ||
70 | u32 base3; | ||
71 | u32 zero1; | ||
72 | } __attribute__((packed)); | ||
73 | |||
74 | #ifdef CONFIG_X86_64 | ||
75 | typedef struct gate_struct64 gate_desc; | ||
76 | typedef struct ldttss_desc64 ldt_desc; | ||
77 | typedef struct ldttss_desc64 tss_desc; | ||
78 | #define gate_offset(g) ((g).offset_low | ((unsigned long)(g).offset_middle << 16) | ((unsigned long)(g).offset_high << 32)) | ||
79 | #define gate_segment(g) ((g).segment) | ||
80 | #else | ||
81 | typedef struct desc_struct gate_desc; | ||
82 | typedef struct desc_struct ldt_desc; | ||
83 | typedef struct desc_struct tss_desc; | ||
84 | #define gate_offset(g) (((g).b & 0xffff0000) | ((g).a & 0x0000ffff)) | ||
85 | #define gate_segment(g) ((g).a >> 16) | ||
86 | #endif | ||
87 | |||
88 | struct desc_ptr { | ||
89 | unsigned short size; | ||
90 | unsigned long address; | ||
91 | } __attribute__((packed)) ; | ||
92 | |||
93 | #endif /* !__ASSEMBLY__ */ | ||
94 | |||
95 | #endif /* _ASM_X86_DESC_DEFS_H */ | ||
diff --git a/arch/x86/include/asm/device.h b/arch/x86/include/asm/device.h new file mode 100644 index 000000000000..3c034f48fdb0 --- /dev/null +++ b/arch/x86/include/asm/device.h | |||
@@ -0,0 +1,16 @@ | |||
1 | #ifndef _ASM_X86_DEVICE_H | ||
2 | #define _ASM_X86_DEVICE_H | ||
3 | |||
4 | struct dev_archdata { | ||
5 | #ifdef CONFIG_ACPI | ||
6 | void *acpi_handle; | ||
7 | #endif | ||
8 | #ifdef CONFIG_X86_64 | ||
9 | struct dma_mapping_ops *dma_ops; | ||
10 | #endif | ||
11 | #ifdef CONFIG_DMAR | ||
12 | void *iommu; /* hook for IOMMU specific extension */ | ||
13 | #endif | ||
14 | }; | ||
15 | |||
16 | #endif /* _ASM_X86_DEVICE_H */ | ||
diff --git a/arch/x86/include/asm/div64.h b/arch/x86/include/asm/div64.h new file mode 100644 index 000000000000..9a2d644c08ef --- /dev/null +++ b/arch/x86/include/asm/div64.h | |||
@@ -0,0 +1,60 @@ | |||
1 | #ifndef _ASM_X86_DIV64_H | ||
2 | #define _ASM_X86_DIV64_H | ||
3 | |||
4 | #ifdef CONFIG_X86_32 | ||
5 | |||
6 | #include <linux/types.h> | ||
7 | |||
8 | /* | ||
9 | * do_div() is NOT a C function. It wants to return | ||
10 | * two values (the quotient and the remainder), but | ||
11 | * since that doesn't work very well in C, what it | ||
12 | * does is: | ||
13 | * | ||
14 | * - modifies the 64-bit dividend _in_place_ | ||
15 | * - returns the 32-bit remainder | ||
16 | * | ||
17 | * This ends up being the most efficient "calling | ||
18 | * convention" on x86. | ||
19 | */ | ||
20 | #define do_div(n, base) \ | ||
21 | ({ \ | ||
22 | unsigned long __upper, __low, __high, __mod, __base; \ | ||
23 | __base = (base); \ | ||
24 | asm("":"=a" (__low), "=d" (__high) : "A" (n)); \ | ||
25 | __upper = __high; \ | ||
26 | if (__high) { \ | ||
27 | __upper = __high % (__base); \ | ||
28 | __high = __high / (__base); \ | ||
29 | } \ | ||
30 | asm("divl %2":"=a" (__low), "=d" (__mod) \ | ||
31 | : "rm" (__base), "0" (__low), "1" (__upper)); \ | ||
32 | asm("":"=A" (n) : "a" (__low), "d" (__high)); \ | ||
33 | __mod; \ | ||
34 | }) | ||
35 | |||
36 | static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder) | ||
37 | { | ||
38 | union { | ||
39 | u64 v64; | ||
40 | u32 v32[2]; | ||
41 | } d = { dividend }; | ||
42 | u32 upper; | ||
43 | |||
44 | upper = d.v32[1]; | ||
45 | d.v32[1] = 0; | ||
46 | if (upper >= divisor) { | ||
47 | d.v32[1] = upper / divisor; | ||
48 | upper %= divisor; | ||
49 | } | ||
50 | asm ("divl %2" : "=a" (d.v32[0]), "=d" (*remainder) : | ||
51 | "rm" (divisor), "0" (d.v32[0]), "1" (upper)); | ||
52 | return d.v64; | ||
53 | } | ||
54 | #define div_u64_rem div_u64_rem | ||
55 | |||
56 | #else | ||
57 | # include <asm-generic/div64.h> | ||
58 | #endif /* CONFIG_X86_32 */ | ||
59 | |||
60 | #endif /* _ASM_X86_DIV64_H */ | ||
diff --git a/arch/x86/include/asm/dma-mapping.h b/arch/x86/include/asm/dma-mapping.h new file mode 100644 index 000000000000..4a5397bfce27 --- /dev/null +++ b/arch/x86/include/asm/dma-mapping.h | |||
@@ -0,0 +1,308 @@ | |||
1 | #ifndef _ASM_X86_DMA_MAPPING_H | ||
2 | #define _ASM_X86_DMA_MAPPING_H | ||
3 | |||
4 | /* | ||
5 | * IOMMU interface. See Documentation/DMA-mapping.txt and DMA-API.txt for | ||
6 | * documentation. | ||
7 | */ | ||
8 | |||
9 | #include <linux/scatterlist.h> | ||
10 | #include <asm/io.h> | ||
11 | #include <asm/swiotlb.h> | ||
12 | #include <asm-generic/dma-coherent.h> | ||
13 | |||
14 | extern dma_addr_t bad_dma_address; | ||
15 | extern int iommu_merge; | ||
16 | extern struct device x86_dma_fallback_dev; | ||
17 | extern int panic_on_overflow; | ||
18 | |||
19 | struct dma_mapping_ops { | ||
20 | int (*mapping_error)(struct device *dev, | ||
21 | dma_addr_t dma_addr); | ||
22 | void* (*alloc_coherent)(struct device *dev, size_t size, | ||
23 | dma_addr_t *dma_handle, gfp_t gfp); | ||
24 | void (*free_coherent)(struct device *dev, size_t size, | ||
25 | void *vaddr, dma_addr_t dma_handle); | ||
26 | dma_addr_t (*map_single)(struct device *hwdev, phys_addr_t ptr, | ||
27 | size_t size, int direction); | ||
28 | void (*unmap_single)(struct device *dev, dma_addr_t addr, | ||
29 | size_t size, int direction); | ||
30 | void (*sync_single_for_cpu)(struct device *hwdev, | ||
31 | dma_addr_t dma_handle, size_t size, | ||
32 | int direction); | ||
33 | void (*sync_single_for_device)(struct device *hwdev, | ||
34 | dma_addr_t dma_handle, size_t size, | ||
35 | int direction); | ||
36 | void (*sync_single_range_for_cpu)(struct device *hwdev, | ||
37 | dma_addr_t dma_handle, unsigned long offset, | ||
38 | size_t size, int direction); | ||
39 | void (*sync_single_range_for_device)(struct device *hwdev, | ||
40 | dma_addr_t dma_handle, unsigned long offset, | ||
41 | size_t size, int direction); | ||
42 | void (*sync_sg_for_cpu)(struct device *hwdev, | ||
43 | struct scatterlist *sg, int nelems, | ||
44 | int direction); | ||
45 | void (*sync_sg_for_device)(struct device *hwdev, | ||
46 | struct scatterlist *sg, int nelems, | ||
47 | int direction); | ||
48 | int (*map_sg)(struct device *hwdev, struct scatterlist *sg, | ||
49 | int nents, int direction); | ||
50 | void (*unmap_sg)(struct device *hwdev, | ||
51 | struct scatterlist *sg, int nents, | ||
52 | int direction); | ||
53 | int (*dma_supported)(struct device *hwdev, u64 mask); | ||
54 | int is_phys; | ||
55 | }; | ||
56 | |||
57 | extern struct dma_mapping_ops *dma_ops; | ||
58 | |||
59 | static inline struct dma_mapping_ops *get_dma_ops(struct device *dev) | ||
60 | { | ||
61 | #ifdef CONFIG_X86_32 | ||
62 | return dma_ops; | ||
63 | #else | ||
64 | if (unlikely(!dev) || !dev->archdata.dma_ops) | ||
65 | return dma_ops; | ||
66 | else | ||
67 | return dev->archdata.dma_ops; | ||
68 | #endif /* _ASM_X86_DMA_MAPPING_H */ | ||
69 | } | ||
70 | |||
71 | /* Make sure we keep the same behaviour */ | ||
72 | static inline int dma_mapping_error(struct device *dev, dma_addr_t dma_addr) | ||
73 | { | ||
74 | #ifdef CONFIG_X86_32 | ||
75 | return 0; | ||
76 | #else | ||
77 | struct dma_mapping_ops *ops = get_dma_ops(dev); | ||
78 | if (ops->mapping_error) | ||
79 | return ops->mapping_error(dev, dma_addr); | ||
80 | |||
81 | return (dma_addr == bad_dma_address); | ||
82 | #endif | ||
83 | } | ||
84 | |||
85 | #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) | ||
86 | #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h) | ||
87 | #define dma_is_consistent(d, h) (1) | ||
88 | |||
89 | extern int dma_supported(struct device *hwdev, u64 mask); | ||
90 | extern int dma_set_mask(struct device *dev, u64 mask); | ||
91 | |||
92 | extern void *dma_generic_alloc_coherent(struct device *dev, size_t size, | ||
93 | dma_addr_t *dma_addr, gfp_t flag); | ||
94 | |||
95 | static inline dma_addr_t | ||
96 | dma_map_single(struct device *hwdev, void *ptr, size_t size, | ||
97 | int direction) | ||
98 | { | ||
99 | struct dma_mapping_ops *ops = get_dma_ops(hwdev); | ||
100 | |||
101 | BUG_ON(!valid_dma_direction(direction)); | ||
102 | return ops->map_single(hwdev, virt_to_phys(ptr), size, direction); | ||
103 | } | ||
104 | |||
105 | static inline void | ||
106 | dma_unmap_single(struct device *dev, dma_addr_t addr, size_t size, | ||
107 | int direction) | ||
108 | { | ||
109 | struct dma_mapping_ops *ops = get_dma_ops(dev); | ||
110 | |||
111 | BUG_ON(!valid_dma_direction(direction)); | ||
112 | if (ops->unmap_single) | ||
113 | ops->unmap_single(dev, addr, size, direction); | ||
114 | } | ||
115 | |||
116 | static inline int | ||
117 | dma_map_sg(struct device *hwdev, struct scatterlist *sg, | ||
118 | int nents, int direction) | ||
119 | { | ||
120 | struct dma_mapping_ops *ops = get_dma_ops(hwdev); | ||
121 | |||
122 | BUG_ON(!valid_dma_direction(direction)); | ||
123 | return ops->map_sg(hwdev, sg, nents, direction); | ||
124 | } | ||
125 | |||
126 | static inline void | ||
127 | dma_unmap_sg(struct device *hwdev, struct scatterlist *sg, int nents, | ||
128 | int direction) | ||
129 | { | ||
130 | struct dma_mapping_ops *ops = get_dma_ops(hwdev); | ||
131 | |||
132 | BUG_ON(!valid_dma_direction(direction)); | ||
133 | if (ops->unmap_sg) | ||
134 | ops->unmap_sg(hwdev, sg, nents, direction); | ||
135 | } | ||
136 | |||
137 | static inline void | ||
138 | dma_sync_single_for_cpu(struct device *hwdev, dma_addr_t dma_handle, | ||
139 | size_t size, int direction) | ||
140 | { | ||
141 | struct dma_mapping_ops *ops = get_dma_ops(hwdev); | ||
142 | |||
143 | BUG_ON(!valid_dma_direction(direction)); | ||
144 | if (ops->sync_single_for_cpu) | ||
145 | ops->sync_single_for_cpu(hwdev, dma_handle, size, direction); | ||
146 | flush_write_buffers(); | ||
147 | } | ||
148 | |||
149 | static inline void | ||
150 | dma_sync_single_for_device(struct device *hwdev, dma_addr_t dma_handle, | ||
151 | size_t size, int direction) | ||
152 | { | ||
153 | struct dma_mapping_ops *ops = get_dma_ops(hwdev); | ||
154 | |||
155 | BUG_ON(!valid_dma_direction(direction)); | ||
156 | if (ops->sync_single_for_device) | ||
157 | ops->sync_single_for_device(hwdev, dma_handle, size, direction); | ||
158 | flush_write_buffers(); | ||
159 | } | ||
160 | |||
161 | static inline void | ||
162 | dma_sync_single_range_for_cpu(struct device *hwdev, dma_addr_t dma_handle, | ||
163 | unsigned long offset, size_t size, int direction) | ||
164 | { | ||
165 | struct dma_mapping_ops *ops = get_dma_ops(hwdev); | ||
166 | |||
167 | BUG_ON(!valid_dma_direction(direction)); | ||
168 | if (ops->sync_single_range_for_cpu) | ||
169 | ops->sync_single_range_for_cpu(hwdev, dma_handle, offset, | ||
170 | size, direction); | ||
171 | flush_write_buffers(); | ||
172 | } | ||
173 | |||
174 | static inline void | ||
175 | dma_sync_single_range_for_device(struct device *hwdev, dma_addr_t dma_handle, | ||
176 | unsigned long offset, size_t size, | ||
177 | int direction) | ||
178 | { | ||
179 | struct dma_mapping_ops *ops = get_dma_ops(hwdev); | ||
180 | |||
181 | BUG_ON(!valid_dma_direction(direction)); | ||
182 | if (ops->sync_single_range_for_device) | ||
183 | ops->sync_single_range_for_device(hwdev, dma_handle, | ||
184 | offset, size, direction); | ||
185 | flush_write_buffers(); | ||
186 | } | ||
187 | |||
188 | static inline void | ||
189 | dma_sync_sg_for_cpu(struct device *hwdev, struct scatterlist *sg, | ||
190 | int nelems, int direction) | ||
191 | { | ||
192 | struct dma_mapping_ops *ops = get_dma_ops(hwdev); | ||
193 | |||
194 | BUG_ON(!valid_dma_direction(direction)); | ||
195 | if (ops->sync_sg_for_cpu) | ||
196 | ops->sync_sg_for_cpu(hwdev, sg, nelems, direction); | ||
197 | flush_write_buffers(); | ||
198 | } | ||
199 | |||
200 | static inline void | ||
201 | dma_sync_sg_for_device(struct device *hwdev, struct scatterlist *sg, | ||
202 | int nelems, int direction) | ||
203 | { | ||
204 | struct dma_mapping_ops *ops = get_dma_ops(hwdev); | ||
205 | |||
206 | BUG_ON(!valid_dma_direction(direction)); | ||
207 | if (ops->sync_sg_for_device) | ||
208 | ops->sync_sg_for_device(hwdev, sg, nelems, direction); | ||
209 | |||
210 | flush_write_buffers(); | ||
211 | } | ||
212 | |||
213 | static inline dma_addr_t dma_map_page(struct device *dev, struct page *page, | ||
214 | size_t offset, size_t size, | ||
215 | int direction) | ||
216 | { | ||
217 | struct dma_mapping_ops *ops = get_dma_ops(dev); | ||
218 | |||
219 | BUG_ON(!valid_dma_direction(direction)); | ||
220 | return ops->map_single(dev, page_to_phys(page) + offset, | ||
221 | size, direction); | ||
222 | } | ||
223 | |||
224 | static inline void dma_unmap_page(struct device *dev, dma_addr_t addr, | ||
225 | size_t size, int direction) | ||
226 | { | ||
227 | dma_unmap_single(dev, addr, size, direction); | ||
228 | } | ||
229 | |||
230 | static inline void | ||
231 | dma_cache_sync(struct device *dev, void *vaddr, size_t size, | ||
232 | enum dma_data_direction dir) | ||
233 | { | ||
234 | flush_write_buffers(); | ||
235 | } | ||
236 | |||
237 | static inline int dma_get_cache_alignment(void) | ||
238 | { | ||
239 | /* no easy way to get cache size on all x86, so return the | ||
240 | * maximum possible, to be safe */ | ||
241 | return boot_cpu_data.x86_clflush_size; | ||
242 | } | ||
243 | |||
244 | static inline unsigned long dma_alloc_coherent_mask(struct device *dev, | ||
245 | gfp_t gfp) | ||
246 | { | ||
247 | unsigned long dma_mask = 0; | ||
248 | |||
249 | dma_mask = dev->coherent_dma_mask; | ||
250 | if (!dma_mask) | ||
251 | dma_mask = (gfp & GFP_DMA) ? DMA_24BIT_MASK : DMA_32BIT_MASK; | ||
252 | |||
253 | return dma_mask; | ||
254 | } | ||
255 | |||
256 | static inline gfp_t dma_alloc_coherent_gfp_flags(struct device *dev, gfp_t gfp) | ||
257 | { | ||
258 | #ifdef CONFIG_X86_64 | ||
259 | unsigned long dma_mask = dma_alloc_coherent_mask(dev, gfp); | ||
260 | |||
261 | if (dma_mask <= DMA_32BIT_MASK && !(gfp & GFP_DMA)) | ||
262 | gfp |= GFP_DMA32; | ||
263 | #endif | ||
264 | return gfp; | ||
265 | } | ||
266 | |||
267 | static inline void * | ||
268 | dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle, | ||
269 | gfp_t gfp) | ||
270 | { | ||
271 | struct dma_mapping_ops *ops = get_dma_ops(dev); | ||
272 | void *memory; | ||
273 | |||
274 | gfp &= ~(__GFP_DMA | __GFP_HIGHMEM | __GFP_DMA32); | ||
275 | |||
276 | if (dma_alloc_from_coherent(dev, size, dma_handle, &memory)) | ||
277 | return memory; | ||
278 | |||
279 | if (!dev) { | ||
280 | dev = &x86_dma_fallback_dev; | ||
281 | gfp |= GFP_DMA; | ||
282 | } | ||
283 | |||
284 | if (!is_device_dma_capable(dev)) | ||
285 | return NULL; | ||
286 | |||
287 | if (!ops->alloc_coherent) | ||
288 | return NULL; | ||
289 | |||
290 | return ops->alloc_coherent(dev, size, dma_handle, | ||
291 | dma_alloc_coherent_gfp_flags(dev, gfp)); | ||
292 | } | ||
293 | |||
294 | static inline void dma_free_coherent(struct device *dev, size_t size, | ||
295 | void *vaddr, dma_addr_t bus) | ||
296 | { | ||
297 | struct dma_mapping_ops *ops = get_dma_ops(dev); | ||
298 | |||
299 | WARN_ON(irqs_disabled()); /* for portability */ | ||
300 | |||
301 | if (dma_release_from_coherent(dev, get_order(size), vaddr)) | ||
302 | return; | ||
303 | |||
304 | if (ops->free_coherent) | ||
305 | ops->free_coherent(dev, size, vaddr, bus); | ||
306 | } | ||
307 | |||
308 | #endif | ||
diff --git a/arch/x86/include/asm/dma.h b/arch/x86/include/asm/dma.h new file mode 100644 index 000000000000..ca1098a7e580 --- /dev/null +++ b/arch/x86/include/asm/dma.h | |||
@@ -0,0 +1,318 @@ | |||
1 | /* | ||
2 | * linux/include/asm/dma.h: Defines for using and allocating dma channels. | ||
3 | * Written by Hennus Bergman, 1992. | ||
4 | * High DMA channel support & info by Hannu Savolainen | ||
5 | * and John Boyd, Nov. 1992. | ||
6 | */ | ||
7 | |||
8 | #ifndef _ASM_X86_DMA_H | ||
9 | #define _ASM_X86_DMA_H | ||
10 | |||
11 | #include <linux/spinlock.h> /* And spinlocks */ | ||
12 | #include <asm/io.h> /* need byte IO */ | ||
13 | #include <linux/delay.h> | ||
14 | |||
15 | #ifdef HAVE_REALLY_SLOW_DMA_CONTROLLER | ||
16 | #define dma_outb outb_p | ||
17 | #else | ||
18 | #define dma_outb outb | ||
19 | #endif | ||
20 | |||
21 | #define dma_inb inb | ||
22 | |||
23 | /* | ||
24 | * NOTES about DMA transfers: | ||
25 | * | ||
26 | * controller 1: channels 0-3, byte operations, ports 00-1F | ||
27 | * controller 2: channels 4-7, word operations, ports C0-DF | ||
28 | * | ||
29 | * - ALL registers are 8 bits only, regardless of transfer size | ||
30 | * - channel 4 is not used - cascades 1 into 2. | ||
31 | * - channels 0-3 are byte - addresses/counts are for physical bytes | ||
32 | * - channels 5-7 are word - addresses/counts are for physical words | ||
33 | * - transfers must not cross physical 64K (0-3) or 128K (5-7) boundaries | ||
34 | * - transfer count loaded to registers is 1 less than actual count | ||
35 | * - controller 2 offsets are all even (2x offsets for controller 1) | ||
36 | * - page registers for 5-7 don't use data bit 0, represent 128K pages | ||
37 | * - page registers for 0-3 use bit 0, represent 64K pages | ||
38 | * | ||
39 | * DMA transfers are limited to the lower 16MB of _physical_ memory. | ||
40 | * Note that addresses loaded into registers must be _physical_ addresses, | ||
41 | * not logical addresses (which may differ if paging is active). | ||
42 | * | ||
43 | * Address mapping for channels 0-3: | ||
44 | * | ||
45 | * A23 ... A16 A15 ... A8 A7 ... A0 (Physical addresses) | ||
46 | * | ... | | ... | | ... | | ||
47 | * | ... | | ... | | ... | | ||
48 | * | ... | | ... | | ... | | ||
49 | * P7 ... P0 A7 ... A0 A7 ... A0 | ||
50 | * | Page | Addr MSB | Addr LSB | (DMA registers) | ||
51 | * | ||
52 | * Address mapping for channels 5-7: | ||
53 | * | ||
54 | * A23 ... A17 A16 A15 ... A9 A8 A7 ... A1 A0 (Physical addresses) | ||
55 | * | ... | \ \ ... \ \ \ ... \ \ | ||
56 | * | ... | \ \ ... \ \ \ ... \ (not used) | ||
57 | * | ... | \ \ ... \ \ \ ... \ | ||
58 | * P7 ... P1 (0) A7 A6 ... A0 A7 A6 ... A0 | ||
59 | * | Page | Addr MSB | Addr LSB | (DMA registers) | ||
60 | * | ||
61 | * Again, channels 5-7 transfer _physical_ words (16 bits), so addresses | ||
62 | * and counts _must_ be word-aligned (the lowest address bit is _ignored_ at | ||
63 | * the hardware level, so odd-byte transfers aren't possible). | ||
64 | * | ||
65 | * Transfer count (_not # bytes_) is limited to 64K, represented as actual | ||
66 | * count - 1 : 64K => 0xFFFF, 1 => 0x0000. Thus, count is always 1 or more, | ||
67 | * and up to 128K bytes may be transferred on channels 5-7 in one operation. | ||
68 | * | ||
69 | */ | ||
70 | |||
71 | #define MAX_DMA_CHANNELS 8 | ||
72 | |||
73 | #ifdef CONFIG_X86_32 | ||
74 | |||
75 | /* The maximum address that we can perform a DMA transfer to on this platform */ | ||
76 | #define MAX_DMA_ADDRESS (PAGE_OFFSET + 0x1000000) | ||
77 | |||
78 | #else | ||
79 | |||
80 | /* 16MB ISA DMA zone */ | ||
81 | #define MAX_DMA_PFN ((16 * 1024 * 1024) >> PAGE_SHIFT) | ||
82 | |||
83 | /* 4GB broken PCI/AGP hardware bus master zone */ | ||
84 | #define MAX_DMA32_PFN ((4UL * 1024 * 1024 * 1024) >> PAGE_SHIFT) | ||
85 | |||
86 | /* Compat define for old dma zone */ | ||
87 | #define MAX_DMA_ADDRESS ((unsigned long)__va(MAX_DMA_PFN << PAGE_SHIFT)) | ||
88 | |||
89 | #endif | ||
90 | |||
91 | /* 8237 DMA controllers */ | ||
92 | #define IO_DMA1_BASE 0x00 /* 8 bit slave DMA, channels 0..3 */ | ||
93 | #define IO_DMA2_BASE 0xC0 /* 16 bit master DMA, ch 4(=slave input)..7 */ | ||
94 | |||
95 | /* DMA controller registers */ | ||
96 | #define DMA1_CMD_REG 0x08 /* command register (w) */ | ||
97 | #define DMA1_STAT_REG 0x08 /* status register (r) */ | ||
98 | #define DMA1_REQ_REG 0x09 /* request register (w) */ | ||
99 | #define DMA1_MASK_REG 0x0A /* single-channel mask (w) */ | ||
100 | #define DMA1_MODE_REG 0x0B /* mode register (w) */ | ||
101 | #define DMA1_CLEAR_FF_REG 0x0C /* clear pointer flip-flop (w) */ | ||
102 | #define DMA1_TEMP_REG 0x0D /* Temporary Register (r) */ | ||
103 | #define DMA1_RESET_REG 0x0D /* Master Clear (w) */ | ||
104 | #define DMA1_CLR_MASK_REG 0x0E /* Clear Mask */ | ||
105 | #define DMA1_MASK_ALL_REG 0x0F /* all-channels mask (w) */ | ||
106 | |||
107 | #define DMA2_CMD_REG 0xD0 /* command register (w) */ | ||
108 | #define DMA2_STAT_REG 0xD0 /* status register (r) */ | ||
109 | #define DMA2_REQ_REG 0xD2 /* request register (w) */ | ||
110 | #define DMA2_MASK_REG 0xD4 /* single-channel mask (w) */ | ||
111 | #define DMA2_MODE_REG 0xD6 /* mode register (w) */ | ||
112 | #define DMA2_CLEAR_FF_REG 0xD8 /* clear pointer flip-flop (w) */ | ||
113 | #define DMA2_TEMP_REG 0xDA /* Temporary Register (r) */ | ||
114 | #define DMA2_RESET_REG 0xDA /* Master Clear (w) */ | ||
115 | #define DMA2_CLR_MASK_REG 0xDC /* Clear Mask */ | ||
116 | #define DMA2_MASK_ALL_REG 0xDE /* all-channels mask (w) */ | ||
117 | |||
118 | #define DMA_ADDR_0 0x00 /* DMA address registers */ | ||
119 | #define DMA_ADDR_1 0x02 | ||
120 | #define DMA_ADDR_2 0x04 | ||
121 | #define DMA_ADDR_3 0x06 | ||
122 | #define DMA_ADDR_4 0xC0 | ||
123 | #define DMA_ADDR_5 0xC4 | ||
124 | #define DMA_ADDR_6 0xC8 | ||
125 | #define DMA_ADDR_7 0xCC | ||
126 | |||
127 | #define DMA_CNT_0 0x01 /* DMA count registers */ | ||
128 | #define DMA_CNT_1 0x03 | ||
129 | #define DMA_CNT_2 0x05 | ||
130 | #define DMA_CNT_3 0x07 | ||
131 | #define DMA_CNT_4 0xC2 | ||
132 | #define DMA_CNT_5 0xC6 | ||
133 | #define DMA_CNT_6 0xCA | ||
134 | #define DMA_CNT_7 0xCE | ||
135 | |||
136 | #define DMA_PAGE_0 0x87 /* DMA page registers */ | ||
137 | #define DMA_PAGE_1 0x83 | ||
138 | #define DMA_PAGE_2 0x81 | ||
139 | #define DMA_PAGE_3 0x82 | ||
140 | #define DMA_PAGE_5 0x8B | ||
141 | #define DMA_PAGE_6 0x89 | ||
142 | #define DMA_PAGE_7 0x8A | ||
143 | |||
144 | /* I/O to memory, no autoinit, increment, single mode */ | ||
145 | #define DMA_MODE_READ 0x44 | ||
146 | /* memory to I/O, no autoinit, increment, single mode */ | ||
147 | #define DMA_MODE_WRITE 0x48 | ||
148 | /* pass thru DREQ->HRQ, DACK<-HLDA only */ | ||
149 | #define DMA_MODE_CASCADE 0xC0 | ||
150 | |||
151 | #define DMA_AUTOINIT 0x10 | ||
152 | |||
153 | |||
154 | extern spinlock_t dma_spin_lock; | ||
155 | |||
156 | static inline unsigned long claim_dma_lock(void) | ||
157 | { | ||
158 | unsigned long flags; | ||
159 | spin_lock_irqsave(&dma_spin_lock, flags); | ||
160 | return flags; | ||
161 | } | ||
162 | |||
163 | static inline void release_dma_lock(unsigned long flags) | ||
164 | { | ||
165 | spin_unlock_irqrestore(&dma_spin_lock, flags); | ||
166 | } | ||
167 | |||
168 | /* enable/disable a specific DMA channel */ | ||
169 | static inline void enable_dma(unsigned int dmanr) | ||
170 | { | ||
171 | if (dmanr <= 3) | ||
172 | dma_outb(dmanr, DMA1_MASK_REG); | ||
173 | else | ||
174 | dma_outb(dmanr & 3, DMA2_MASK_REG); | ||
175 | } | ||
176 | |||
177 | static inline void disable_dma(unsigned int dmanr) | ||
178 | { | ||
179 | if (dmanr <= 3) | ||
180 | dma_outb(dmanr | 4, DMA1_MASK_REG); | ||
181 | else | ||
182 | dma_outb((dmanr & 3) | 4, DMA2_MASK_REG); | ||
183 | } | ||
184 | |||
185 | /* Clear the 'DMA Pointer Flip Flop'. | ||
186 | * Write 0 for LSB/MSB, 1 for MSB/LSB access. | ||
187 | * Use this once to initialize the FF to a known state. | ||
188 | * After that, keep track of it. :-) | ||
189 | * --- In order to do that, the DMA routines below should --- | ||
190 | * --- only be used while holding the DMA lock ! --- | ||
191 | */ | ||
192 | static inline void clear_dma_ff(unsigned int dmanr) | ||
193 | { | ||
194 | if (dmanr <= 3) | ||
195 | dma_outb(0, DMA1_CLEAR_FF_REG); | ||
196 | else | ||
197 | dma_outb(0, DMA2_CLEAR_FF_REG); | ||
198 | } | ||
199 | |||
200 | /* set mode (above) for a specific DMA channel */ | ||
201 | static inline void set_dma_mode(unsigned int dmanr, char mode) | ||
202 | { | ||
203 | if (dmanr <= 3) | ||
204 | dma_outb(mode | dmanr, DMA1_MODE_REG); | ||
205 | else | ||
206 | dma_outb(mode | (dmanr & 3), DMA2_MODE_REG); | ||
207 | } | ||
208 | |||
209 | /* Set only the page register bits of the transfer address. | ||
210 | * This is used for successive transfers when we know the contents of | ||
211 | * the lower 16 bits of the DMA current address register, but a 64k boundary | ||
212 | * may have been crossed. | ||
213 | */ | ||
214 | static inline void set_dma_page(unsigned int dmanr, char pagenr) | ||
215 | { | ||
216 | switch (dmanr) { | ||
217 | case 0: | ||
218 | dma_outb(pagenr, DMA_PAGE_0); | ||
219 | break; | ||
220 | case 1: | ||
221 | dma_outb(pagenr, DMA_PAGE_1); | ||
222 | break; | ||
223 | case 2: | ||
224 | dma_outb(pagenr, DMA_PAGE_2); | ||
225 | break; | ||
226 | case 3: | ||
227 | dma_outb(pagenr, DMA_PAGE_3); | ||
228 | break; | ||
229 | case 5: | ||
230 | dma_outb(pagenr & 0xfe, DMA_PAGE_5); | ||
231 | break; | ||
232 | case 6: | ||
233 | dma_outb(pagenr & 0xfe, DMA_PAGE_6); | ||
234 | break; | ||
235 | case 7: | ||
236 | dma_outb(pagenr & 0xfe, DMA_PAGE_7); | ||
237 | break; | ||
238 | } | ||
239 | } | ||
240 | |||
241 | |||
242 | /* Set transfer address & page bits for specific DMA channel. | ||
243 | * Assumes dma flipflop is clear. | ||
244 | */ | ||
245 | static inline void set_dma_addr(unsigned int dmanr, unsigned int a) | ||
246 | { | ||
247 | set_dma_page(dmanr, a>>16); | ||
248 | if (dmanr <= 3) { | ||
249 | dma_outb(a & 0xff, ((dmanr & 3) << 1) + IO_DMA1_BASE); | ||
250 | dma_outb((a >> 8) & 0xff, ((dmanr & 3) << 1) + IO_DMA1_BASE); | ||
251 | } else { | ||
252 | dma_outb((a >> 1) & 0xff, ((dmanr & 3) << 2) + IO_DMA2_BASE); | ||
253 | dma_outb((a >> 9) & 0xff, ((dmanr & 3) << 2) + IO_DMA2_BASE); | ||
254 | } | ||
255 | } | ||
256 | |||
257 | |||
258 | /* Set transfer size (max 64k for DMA0..3, 128k for DMA5..7) for | ||
259 | * a specific DMA channel. | ||
260 | * You must ensure the parameters are valid. | ||
261 | * NOTE: from a manual: "the number of transfers is one more | ||
262 | * than the initial word count"! This is taken into account. | ||
263 | * Assumes dma flip-flop is clear. | ||
264 | * NOTE 2: "count" represents _bytes_ and must be even for channels 5-7. | ||
265 | */ | ||
266 | static inline void set_dma_count(unsigned int dmanr, unsigned int count) | ||
267 | { | ||
268 | count--; | ||
269 | if (dmanr <= 3) { | ||
270 | dma_outb(count & 0xff, ((dmanr & 3) << 1) + 1 + IO_DMA1_BASE); | ||
271 | dma_outb((count >> 8) & 0xff, | ||
272 | ((dmanr & 3) << 1) + 1 + IO_DMA1_BASE); | ||
273 | } else { | ||
274 | dma_outb((count >> 1) & 0xff, | ||
275 | ((dmanr & 3) << 2) + 2 + IO_DMA2_BASE); | ||
276 | dma_outb((count >> 9) & 0xff, | ||
277 | ((dmanr & 3) << 2) + 2 + IO_DMA2_BASE); | ||
278 | } | ||
279 | } | ||
280 | |||
281 | |||
282 | /* Get DMA residue count. After a DMA transfer, this | ||
283 | * should return zero. Reading this while a DMA transfer is | ||
284 | * still in progress will return unpredictable results. | ||
285 | * If called before the channel has been used, it may return 1. | ||
286 | * Otherwise, it returns the number of _bytes_ left to transfer. | ||
287 | * | ||
288 | * Assumes DMA flip-flop is clear. | ||
289 | */ | ||
290 | static inline int get_dma_residue(unsigned int dmanr) | ||
291 | { | ||
292 | unsigned int io_port; | ||
293 | /* using short to get 16-bit wrap around */ | ||
294 | unsigned short count; | ||
295 | |||
296 | io_port = (dmanr <= 3) ? ((dmanr & 3) << 1) + 1 + IO_DMA1_BASE | ||
297 | : ((dmanr & 3) << 2) + 2 + IO_DMA2_BASE; | ||
298 | |||
299 | count = 1 + dma_inb(io_port); | ||
300 | count += dma_inb(io_port) << 8; | ||
301 | |||
302 | return (dmanr <= 3) ? count : (count << 1); | ||
303 | } | ||
304 | |||
305 | |||
306 | /* These are in kernel/dma.c: */ | ||
307 | extern int request_dma(unsigned int dmanr, const char *device_id); | ||
308 | extern void free_dma(unsigned int dmanr); | ||
309 | |||
310 | /* From PCI */ | ||
311 | |||
312 | #ifdef CONFIG_PCI | ||
313 | extern int isa_dma_bridge_buggy; | ||
314 | #else | ||
315 | #define isa_dma_bridge_buggy (0) | ||
316 | #endif | ||
317 | |||
318 | #endif /* _ASM_X86_DMA_H */ | ||
diff --git a/arch/x86/include/asm/dmi.h b/arch/x86/include/asm/dmi.h new file mode 100644 index 000000000000..bc68212c6bc0 --- /dev/null +++ b/arch/x86/include/asm/dmi.h | |||
@@ -0,0 +1,26 @@ | |||
1 | #ifndef _ASM_X86_DMI_H | ||
2 | #define _ASM_X86_DMI_H | ||
3 | |||
4 | #include <asm/io.h> | ||
5 | |||
6 | #define DMI_MAX_DATA 2048 | ||
7 | |||
8 | extern int dmi_alloc_index; | ||
9 | extern char dmi_alloc_data[DMI_MAX_DATA]; | ||
10 | |||
11 | /* This is so early that there is no good way to allocate dynamic memory. | ||
12 | Allocate data in an BSS array. */ | ||
13 | static inline void *dmi_alloc(unsigned len) | ||
14 | { | ||
15 | int idx = dmi_alloc_index; | ||
16 | if ((dmi_alloc_index + len) > DMI_MAX_DATA) | ||
17 | return NULL; | ||
18 | dmi_alloc_index += len; | ||
19 | return dmi_alloc_data + idx; | ||
20 | } | ||
21 | |||
22 | /* Use early IO mappings for DMI because it's initialized early */ | ||
23 | #define dmi_ioremap early_ioremap | ||
24 | #define dmi_iounmap early_iounmap | ||
25 | |||
26 | #endif /* _ASM_X86_DMI_H */ | ||
diff --git a/arch/x86/include/asm/ds.h b/arch/x86/include/asm/ds.h new file mode 100644 index 000000000000..72c5a190bf48 --- /dev/null +++ b/arch/x86/include/asm/ds.h | |||
@@ -0,0 +1,238 @@ | |||
1 | /* | ||
2 | * Debug Store (DS) support | ||
3 | * | ||
4 | * This provides a low-level interface to the hardware's Debug Store | ||
5 | * feature that is used for branch trace store (BTS) and | ||
6 | * precise-event based sampling (PEBS). | ||
7 | * | ||
8 | * It manages: | ||
9 | * - per-thread and per-cpu allocation of BTS and PEBS | ||
10 | * - buffer memory allocation (optional) | ||
11 | * - buffer overflow handling | ||
12 | * - buffer access | ||
13 | * | ||
14 | * It assumes: | ||
15 | * - get_task_struct on all parameter tasks | ||
16 | * - current is allowed to trace parameter tasks | ||
17 | * | ||
18 | * | ||
19 | * Copyright (C) 2007-2008 Intel Corporation. | ||
20 | * Markus Metzger <markus.t.metzger@intel.com>, 2007-2008 | ||
21 | */ | ||
22 | |||
23 | #ifndef _ASM_X86_DS_H | ||
24 | #define _ASM_X86_DS_H | ||
25 | |||
26 | #ifdef CONFIG_X86_DS | ||
27 | |||
28 | #include <linux/types.h> | ||
29 | #include <linux/init.h> | ||
30 | |||
31 | |||
32 | struct task_struct; | ||
33 | |||
34 | /* | ||
35 | * Request BTS or PEBS | ||
36 | * | ||
37 | * Due to alignement constraints, the actual buffer may be slightly | ||
38 | * smaller than the requested or provided buffer. | ||
39 | * | ||
40 | * Returns 0 on success; -Eerrno otherwise | ||
41 | * | ||
42 | * task: the task to request recording for; | ||
43 | * NULL for per-cpu recording on the current cpu | ||
44 | * base: the base pointer for the (non-pageable) buffer; | ||
45 | * NULL if buffer allocation requested | ||
46 | * size: the size of the requested or provided buffer | ||
47 | * ovfl: pointer to a function to be called on buffer overflow; | ||
48 | * NULL if cyclic buffer requested | ||
49 | */ | ||
50 | typedef void (*ds_ovfl_callback_t)(struct task_struct *); | ||
51 | extern int ds_request_bts(struct task_struct *task, void *base, size_t size, | ||
52 | ds_ovfl_callback_t ovfl); | ||
53 | extern int ds_request_pebs(struct task_struct *task, void *base, size_t size, | ||
54 | ds_ovfl_callback_t ovfl); | ||
55 | |||
56 | /* | ||
57 | * Release BTS or PEBS resources | ||
58 | * | ||
59 | * Frees buffers allocated on ds_request. | ||
60 | * | ||
61 | * Returns 0 on success; -Eerrno otherwise | ||
62 | * | ||
63 | * task: the task to release resources for; | ||
64 | * NULL to release resources for the current cpu | ||
65 | */ | ||
66 | extern int ds_release_bts(struct task_struct *task); | ||
67 | extern int ds_release_pebs(struct task_struct *task); | ||
68 | |||
69 | /* | ||
70 | * Return the (array) index of the write pointer. | ||
71 | * (assuming an array of BTS/PEBS records) | ||
72 | * | ||
73 | * Returns -Eerrno on error | ||
74 | * | ||
75 | * task: the task to access; | ||
76 | * NULL to access the current cpu | ||
77 | * pos (out): if not NULL, will hold the result | ||
78 | */ | ||
79 | extern int ds_get_bts_index(struct task_struct *task, size_t *pos); | ||
80 | extern int ds_get_pebs_index(struct task_struct *task, size_t *pos); | ||
81 | |||
82 | /* | ||
83 | * Return the (array) index one record beyond the end of the array. | ||
84 | * (assuming an array of BTS/PEBS records) | ||
85 | * | ||
86 | * Returns -Eerrno on error | ||
87 | * | ||
88 | * task: the task to access; | ||
89 | * NULL to access the current cpu | ||
90 | * pos (out): if not NULL, will hold the result | ||
91 | */ | ||
92 | extern int ds_get_bts_end(struct task_struct *task, size_t *pos); | ||
93 | extern int ds_get_pebs_end(struct task_struct *task, size_t *pos); | ||
94 | |||
95 | /* | ||
96 | * Provide a pointer to the BTS/PEBS record at parameter index. | ||
97 | * (assuming an array of BTS/PEBS records) | ||
98 | * | ||
99 | * The pointer points directly into the buffer. The user is | ||
100 | * responsible for copying the record. | ||
101 | * | ||
102 | * Returns the size of a single record on success; -Eerrno on error | ||
103 | * | ||
104 | * task: the task to access; | ||
105 | * NULL to access the current cpu | ||
106 | * index: the index of the requested record | ||
107 | * record (out): pointer to the requested record | ||
108 | */ | ||
109 | extern int ds_access_bts(struct task_struct *task, | ||
110 | size_t index, const void **record); | ||
111 | extern int ds_access_pebs(struct task_struct *task, | ||
112 | size_t index, const void **record); | ||
113 | |||
114 | /* | ||
115 | * Write one or more BTS/PEBS records at the write pointer index and | ||
116 | * advance the write pointer. | ||
117 | * | ||
118 | * If size is not a multiple of the record size, trailing bytes are | ||
119 | * zeroed out. | ||
120 | * | ||
121 | * May result in one or more overflow notifications. | ||
122 | * | ||
123 | * If called during overflow handling, that is, with index >= | ||
124 | * interrupt threshold, the write will wrap around. | ||
125 | * | ||
126 | * An overflow notification is given if and when the interrupt | ||
127 | * threshold is reached during or after the write. | ||
128 | * | ||
129 | * Returns the number of bytes written or -Eerrno. | ||
130 | * | ||
131 | * task: the task to access; | ||
132 | * NULL to access the current cpu | ||
133 | * buffer: the buffer to write | ||
134 | * size: the size of the buffer | ||
135 | */ | ||
136 | extern int ds_write_bts(struct task_struct *task, | ||
137 | const void *buffer, size_t size); | ||
138 | extern int ds_write_pebs(struct task_struct *task, | ||
139 | const void *buffer, size_t size); | ||
140 | |||
141 | /* | ||
142 | * Same as ds_write_bts/pebs, but omit ownership checks. | ||
143 | * | ||
144 | * This is needed to have some other task than the owner of the | ||
145 | * BTS/PEBS buffer or the parameter task itself write into the | ||
146 | * respective buffer. | ||
147 | */ | ||
148 | extern int ds_unchecked_write_bts(struct task_struct *task, | ||
149 | const void *buffer, size_t size); | ||
150 | extern int ds_unchecked_write_pebs(struct task_struct *task, | ||
151 | const void *buffer, size_t size); | ||
152 | |||
153 | /* | ||
154 | * Reset the write pointer of the BTS/PEBS buffer. | ||
155 | * | ||
156 | * Returns 0 on success; -Eerrno on error | ||
157 | * | ||
158 | * task: the task to access; | ||
159 | * NULL to access the current cpu | ||
160 | */ | ||
161 | extern int ds_reset_bts(struct task_struct *task); | ||
162 | extern int ds_reset_pebs(struct task_struct *task); | ||
163 | |||
164 | /* | ||
165 | * Clear the BTS/PEBS buffer and reset the write pointer. | ||
166 | * The entire buffer will be zeroed out. | ||
167 | * | ||
168 | * Returns 0 on success; -Eerrno on error | ||
169 | * | ||
170 | * task: the task to access; | ||
171 | * NULL to access the current cpu | ||
172 | */ | ||
173 | extern int ds_clear_bts(struct task_struct *task); | ||
174 | extern int ds_clear_pebs(struct task_struct *task); | ||
175 | |||
176 | /* | ||
177 | * Provide the PEBS counter reset value. | ||
178 | * | ||
179 | * Returns 0 on success; -Eerrno on error | ||
180 | * | ||
181 | * task: the task to access; | ||
182 | * NULL to access the current cpu | ||
183 | * value (out): the counter reset value | ||
184 | */ | ||
185 | extern int ds_get_pebs_reset(struct task_struct *task, u64 *value); | ||
186 | |||
187 | /* | ||
188 | * Set the PEBS counter reset value. | ||
189 | * | ||
190 | * Returns 0 on success; -Eerrno on error | ||
191 | * | ||
192 | * task: the task to access; | ||
193 | * NULL to access the current cpu | ||
194 | * value: the new counter reset value | ||
195 | */ | ||
196 | extern int ds_set_pebs_reset(struct task_struct *task, u64 value); | ||
197 | |||
198 | /* | ||
199 | * Initialization | ||
200 | */ | ||
201 | struct cpuinfo_x86; | ||
202 | extern void __cpuinit ds_init_intel(struct cpuinfo_x86 *); | ||
203 | |||
204 | |||
205 | |||
206 | /* | ||
207 | * The DS context - part of struct thread_struct. | ||
208 | */ | ||
209 | struct ds_context { | ||
210 | /* pointer to the DS configuration; goes into MSR_IA32_DS_AREA */ | ||
211 | unsigned char *ds; | ||
212 | /* the owner of the BTS and PEBS configuration, respectively */ | ||
213 | struct task_struct *owner[2]; | ||
214 | /* buffer overflow notification function for BTS and PEBS */ | ||
215 | ds_ovfl_callback_t callback[2]; | ||
216 | /* the original buffer address */ | ||
217 | void *buffer[2]; | ||
218 | /* the number of allocated pages for on-request allocated buffers */ | ||
219 | unsigned int pages[2]; | ||
220 | /* use count */ | ||
221 | unsigned long count; | ||
222 | /* a pointer to the context location inside the thread_struct | ||
223 | * or the per_cpu context array */ | ||
224 | struct ds_context **this; | ||
225 | /* a pointer to the task owning this context, or NULL, if the | ||
226 | * context is owned by a cpu */ | ||
227 | struct task_struct *task; | ||
228 | }; | ||
229 | |||
230 | /* called by exit_thread() to free leftover contexts */ | ||
231 | extern void ds_free(struct ds_context *context); | ||
232 | |||
233 | #else /* CONFIG_X86_DS */ | ||
234 | |||
235 | #define ds_init_intel(config) do {} while (0) | ||
236 | |||
237 | #endif /* CONFIG_X86_DS */ | ||
238 | #endif /* _ASM_X86_DS_H */ | ||
diff --git a/arch/x86/include/asm/dwarf2.h b/arch/x86/include/asm/dwarf2.h new file mode 100644 index 000000000000..804b6e6be929 --- /dev/null +++ b/arch/x86/include/asm/dwarf2.h | |||
@@ -0,0 +1,61 @@ | |||
1 | #ifndef _ASM_X86_DWARF2_H | ||
2 | #define _ASM_X86_DWARF2_H | ||
3 | |||
4 | #ifndef __ASSEMBLY__ | ||
5 | #warning "asm/dwarf2.h should be only included in pure assembly files" | ||
6 | #endif | ||
7 | |||
8 | /* | ||
9 | Macros for dwarf2 CFI unwind table entries. | ||
10 | See "as.info" for details on these pseudo ops. Unfortunately | ||
11 | they are only supported in very new binutils, so define them | ||
12 | away for older version. | ||
13 | */ | ||
14 | |||
15 | #ifdef CONFIG_AS_CFI | ||
16 | |||
17 | #define CFI_STARTPROC .cfi_startproc | ||
18 | #define CFI_ENDPROC .cfi_endproc | ||
19 | #define CFI_DEF_CFA .cfi_def_cfa | ||
20 | #define CFI_DEF_CFA_REGISTER .cfi_def_cfa_register | ||
21 | #define CFI_DEF_CFA_OFFSET .cfi_def_cfa_offset | ||
22 | #define CFI_ADJUST_CFA_OFFSET .cfi_adjust_cfa_offset | ||
23 | #define CFI_OFFSET .cfi_offset | ||
24 | #define CFI_REL_OFFSET .cfi_rel_offset | ||
25 | #define CFI_REGISTER .cfi_register | ||
26 | #define CFI_RESTORE .cfi_restore | ||
27 | #define CFI_REMEMBER_STATE .cfi_remember_state | ||
28 | #define CFI_RESTORE_STATE .cfi_restore_state | ||
29 | #define CFI_UNDEFINED .cfi_undefined | ||
30 | |||
31 | #ifdef CONFIG_AS_CFI_SIGNAL_FRAME | ||
32 | #define CFI_SIGNAL_FRAME .cfi_signal_frame | ||
33 | #else | ||
34 | #define CFI_SIGNAL_FRAME | ||
35 | #endif | ||
36 | |||
37 | #else | ||
38 | |||
39 | /* Due to the structure of pre-exisiting code, don't use assembler line | ||
40 | comment character # to ignore the arguments. Instead, use a dummy macro. */ | ||
41 | .macro cfi_ignore a=0, b=0, c=0, d=0 | ||
42 | .endm | ||
43 | |||
44 | #define CFI_STARTPROC cfi_ignore | ||
45 | #define CFI_ENDPROC cfi_ignore | ||
46 | #define CFI_DEF_CFA cfi_ignore | ||
47 | #define CFI_DEF_CFA_REGISTER cfi_ignore | ||
48 | #define CFI_DEF_CFA_OFFSET cfi_ignore | ||
49 | #define CFI_ADJUST_CFA_OFFSET cfi_ignore | ||
50 | #define CFI_OFFSET cfi_ignore | ||
51 | #define CFI_REL_OFFSET cfi_ignore | ||
52 | #define CFI_REGISTER cfi_ignore | ||
53 | #define CFI_RESTORE cfi_ignore | ||
54 | #define CFI_REMEMBER_STATE cfi_ignore | ||
55 | #define CFI_RESTORE_STATE cfi_ignore | ||
56 | #define CFI_UNDEFINED cfi_ignore | ||
57 | #define CFI_SIGNAL_FRAME cfi_ignore | ||
58 | |||
59 | #endif | ||
60 | |||
61 | #endif /* _ASM_X86_DWARF2_H */ | ||
diff --git a/arch/x86/include/asm/e820.h b/arch/x86/include/asm/e820.h new file mode 100644 index 000000000000..3d8ceddbd407 --- /dev/null +++ b/arch/x86/include/asm/e820.h | |||
@@ -0,0 +1,146 @@ | |||
1 | #ifndef _ASM_X86_E820_H | ||
2 | #define _ASM_X86_E820_H | ||
3 | #define E820MAP 0x2d0 /* our map */ | ||
4 | #define E820MAX 128 /* number of entries in E820MAP */ | ||
5 | |||
6 | /* | ||
7 | * Legacy E820 BIOS limits us to 128 (E820MAX) nodes due to the | ||
8 | * constrained space in the zeropage. If we have more nodes than | ||
9 | * that, and if we've booted off EFI firmware, then the EFI tables | ||
10 | * passed us from the EFI firmware can list more nodes. Size our | ||
11 | * internal memory map tables to have room for these additional | ||
12 | * nodes, based on up to three entries per node for which the | ||
13 | * kernel was built: MAX_NUMNODES == (1 << CONFIG_NODES_SHIFT), | ||
14 | * plus E820MAX, allowing space for the possible duplicate E820 | ||
15 | * entries that might need room in the same arrays, prior to the | ||
16 | * call to sanitize_e820_map() to remove duplicates. The allowance | ||
17 | * of three memory map entries per node is "enough" entries for | ||
18 | * the initial hardware platform motivating this mechanism to make | ||
19 | * use of additional EFI map entries. Future platforms may want | ||
20 | * to allow more than three entries per node or otherwise refine | ||
21 | * this size. | ||
22 | */ | ||
23 | |||
24 | /* | ||
25 | * Odd: 'make headers_check' complains about numa.h if I try | ||
26 | * to collapse the next two #ifdef lines to a single line: | ||
27 | * #if defined(__KERNEL__) && defined(CONFIG_EFI) | ||
28 | */ | ||
29 | #ifdef __KERNEL__ | ||
30 | #ifdef CONFIG_EFI | ||
31 | #include <linux/numa.h> | ||
32 | #define E820_X_MAX (E820MAX + 3 * MAX_NUMNODES) | ||
33 | #else /* ! CONFIG_EFI */ | ||
34 | #define E820_X_MAX E820MAX | ||
35 | #endif | ||
36 | #else /* ! __KERNEL__ */ | ||
37 | #define E820_X_MAX E820MAX | ||
38 | #endif | ||
39 | |||
40 | #define E820NR 0x1e8 /* # entries in E820MAP */ | ||
41 | |||
42 | #define E820_RAM 1 | ||
43 | #define E820_RESERVED 2 | ||
44 | #define E820_ACPI 3 | ||
45 | #define E820_NVS 4 | ||
46 | #define E820_UNUSABLE 5 | ||
47 | |||
48 | /* reserved RAM used by kernel itself */ | ||
49 | #define E820_RESERVED_KERN 128 | ||
50 | |||
51 | #ifndef __ASSEMBLY__ | ||
52 | struct e820entry { | ||
53 | __u64 addr; /* start of memory segment */ | ||
54 | __u64 size; /* size of memory segment */ | ||
55 | __u32 type; /* type of memory segment */ | ||
56 | } __attribute__((packed)); | ||
57 | |||
58 | struct e820map { | ||
59 | __u32 nr_map; | ||
60 | struct e820entry map[E820_X_MAX]; | ||
61 | }; | ||
62 | |||
63 | #ifdef __KERNEL__ | ||
64 | /* see comment in arch/x86/kernel/e820.c */ | ||
65 | extern struct e820map e820; | ||
66 | extern struct e820map e820_saved; | ||
67 | |||
68 | extern unsigned long pci_mem_start; | ||
69 | extern int e820_any_mapped(u64 start, u64 end, unsigned type); | ||
70 | extern int e820_all_mapped(u64 start, u64 end, unsigned type); | ||
71 | extern void e820_add_region(u64 start, u64 size, int type); | ||
72 | extern void e820_print_map(char *who); | ||
73 | extern int | ||
74 | sanitize_e820_map(struct e820entry *biosmap, int max_nr_map, int *pnr_map); | ||
75 | extern u64 e820_update_range(u64 start, u64 size, unsigned old_type, | ||
76 | unsigned new_type); | ||
77 | extern u64 e820_remove_range(u64 start, u64 size, unsigned old_type, | ||
78 | int checktype); | ||
79 | extern void update_e820(void); | ||
80 | extern void e820_setup_gap(void); | ||
81 | extern int e820_search_gap(unsigned long *gapstart, unsigned long *gapsize, | ||
82 | unsigned long start_addr, unsigned long long end_addr); | ||
83 | struct setup_data; | ||
84 | extern void parse_e820_ext(struct setup_data *data, unsigned long pa_data); | ||
85 | |||
86 | #if defined(CONFIG_X86_64) || \ | ||
87 | (defined(CONFIG_X86_32) && defined(CONFIG_HIBERNATION)) | ||
88 | extern void e820_mark_nosave_regions(unsigned long limit_pfn); | ||
89 | #else | ||
90 | static inline void e820_mark_nosave_regions(unsigned long limit_pfn) | ||
91 | { | ||
92 | } | ||
93 | #endif | ||
94 | |||
95 | #ifdef CONFIG_MEMTEST | ||
96 | extern void early_memtest(unsigned long start, unsigned long end); | ||
97 | #else | ||
98 | static inline void early_memtest(unsigned long start, unsigned long end) | ||
99 | { | ||
100 | } | ||
101 | #endif | ||
102 | |||
103 | extern unsigned long end_user_pfn; | ||
104 | |||
105 | extern u64 find_e820_area(u64 start, u64 end, u64 size, u64 align); | ||
106 | extern u64 find_e820_area_size(u64 start, u64 *sizep, u64 align); | ||
107 | extern void reserve_early(u64 start, u64 end, char *name); | ||
108 | extern void reserve_early_overlap_ok(u64 start, u64 end, char *name); | ||
109 | extern void free_early(u64 start, u64 end); | ||
110 | extern void early_res_to_bootmem(u64 start, u64 end); | ||
111 | extern u64 early_reserve_e820(u64 startt, u64 sizet, u64 align); | ||
112 | |||
113 | extern unsigned long e820_end_of_ram_pfn(void); | ||
114 | extern unsigned long e820_end_of_low_ram_pfn(void); | ||
115 | extern int e820_find_active_region(const struct e820entry *ei, | ||
116 | unsigned long start_pfn, | ||
117 | unsigned long last_pfn, | ||
118 | unsigned long *ei_startpfn, | ||
119 | unsigned long *ei_endpfn); | ||
120 | extern void e820_register_active_regions(int nid, unsigned long start_pfn, | ||
121 | unsigned long end_pfn); | ||
122 | extern u64 e820_hole_size(u64 start, u64 end); | ||
123 | extern void finish_e820_parsing(void); | ||
124 | extern void e820_reserve_resources(void); | ||
125 | extern void e820_reserve_resources_late(void); | ||
126 | extern void setup_memory_map(void); | ||
127 | extern char *default_machine_specific_memory_setup(void); | ||
128 | extern char *machine_specific_memory_setup(void); | ||
129 | extern char *memory_setup(void); | ||
130 | #endif /* __KERNEL__ */ | ||
131 | #endif /* __ASSEMBLY__ */ | ||
132 | |||
133 | #define ISA_START_ADDRESS 0xa0000 | ||
134 | #define ISA_END_ADDRESS 0x100000 | ||
135 | #define is_ISA_range(s, e) ((s) >= ISA_START_ADDRESS && (e) < ISA_END_ADDRESS) | ||
136 | |||
137 | #define BIOS_BEGIN 0x000a0000 | ||
138 | #define BIOS_END 0x00100000 | ||
139 | |||
140 | #ifdef __KERNEL__ | ||
141 | #include <linux/ioport.h> | ||
142 | |||
143 | #define HIGH_MEMORY (1024*1024) | ||
144 | #endif /* __KERNEL__ */ | ||
145 | |||
146 | #endif /* _ASM_X86_E820_H */ | ||
diff --git a/arch/x86/include/asm/edac.h b/arch/x86/include/asm/edac.h new file mode 100644 index 000000000000..e9b57ecc70c5 --- /dev/null +++ b/arch/x86/include/asm/edac.h | |||
@@ -0,0 +1,18 @@ | |||
1 | #ifndef _ASM_X86_EDAC_H | ||
2 | #define _ASM_X86_EDAC_H | ||
3 | |||
4 | /* ECC atomic, DMA, SMP and interrupt safe scrub function */ | ||
5 | |||
6 | static inline void atomic_scrub(void *va, u32 size) | ||
7 | { | ||
8 | u32 i, *virt_addr = va; | ||
9 | |||
10 | /* | ||
11 | * Very carefully read and write to memory atomically so we | ||
12 | * are interrupt, DMA and SMP safe. | ||
13 | */ | ||
14 | for (i = 0; i < size / 4; i++, virt_addr++) | ||
15 | asm volatile("lock; addl $0, %0"::"m" (*virt_addr)); | ||
16 | } | ||
17 | |||
18 | #endif /* _ASM_X86_EDAC_H */ | ||
diff --git a/arch/x86/include/asm/efi.h b/arch/x86/include/asm/efi.h new file mode 100644 index 000000000000..a2e545c91c35 --- /dev/null +++ b/arch/x86/include/asm/efi.h | |||
@@ -0,0 +1,110 @@ | |||
1 | #ifndef _ASM_X86_EFI_H | ||
2 | #define _ASM_X86_EFI_H | ||
3 | |||
4 | #ifdef CONFIG_X86_32 | ||
5 | |||
6 | extern unsigned long asmlinkage efi_call_phys(void *, ...); | ||
7 | |||
8 | #define efi_call_phys0(f) efi_call_phys(f) | ||
9 | #define efi_call_phys1(f, a1) efi_call_phys(f, a1) | ||
10 | #define efi_call_phys2(f, a1, a2) efi_call_phys(f, a1, a2) | ||
11 | #define efi_call_phys3(f, a1, a2, a3) efi_call_phys(f, a1, a2, a3) | ||
12 | #define efi_call_phys4(f, a1, a2, a3, a4) \ | ||
13 | efi_call_phys(f, a1, a2, a3, a4) | ||
14 | #define efi_call_phys5(f, a1, a2, a3, a4, a5) \ | ||
15 | efi_call_phys(f, a1, a2, a3, a4, a5) | ||
16 | #define efi_call_phys6(f, a1, a2, a3, a4, a5, a6) \ | ||
17 | efi_call_phys(f, a1, a2, a3, a4, a5, a6) | ||
18 | /* | ||
19 | * Wrap all the virtual calls in a way that forces the parameters on the stack. | ||
20 | */ | ||
21 | |||
22 | #define efi_call_virt(f, args...) \ | ||
23 | ((efi_##f##_t __attribute__((regparm(0)))*)efi.systab->runtime->f)(args) | ||
24 | |||
25 | #define efi_call_virt0(f) efi_call_virt(f) | ||
26 | #define efi_call_virt1(f, a1) efi_call_virt(f, a1) | ||
27 | #define efi_call_virt2(f, a1, a2) efi_call_virt(f, a1, a2) | ||
28 | #define efi_call_virt3(f, a1, a2, a3) efi_call_virt(f, a1, a2, a3) | ||
29 | #define efi_call_virt4(f, a1, a2, a3, a4) \ | ||
30 | efi_call_virt(f, a1, a2, a3, a4) | ||
31 | #define efi_call_virt5(f, a1, a2, a3, a4, a5) \ | ||
32 | efi_call_virt(f, a1, a2, a3, a4, a5) | ||
33 | #define efi_call_virt6(f, a1, a2, a3, a4, a5, a6) \ | ||
34 | efi_call_virt(f, a1, a2, a3, a4, a5, a6) | ||
35 | |||
36 | #define efi_ioremap(addr, size) ioremap_cache(addr, size) | ||
37 | |||
38 | #else /* !CONFIG_X86_32 */ | ||
39 | |||
40 | #define MAX_EFI_IO_PAGES 100 | ||
41 | |||
42 | extern u64 efi_call0(void *fp); | ||
43 | extern u64 efi_call1(void *fp, u64 arg1); | ||
44 | extern u64 efi_call2(void *fp, u64 arg1, u64 arg2); | ||
45 | extern u64 efi_call3(void *fp, u64 arg1, u64 arg2, u64 arg3); | ||
46 | extern u64 efi_call4(void *fp, u64 arg1, u64 arg2, u64 arg3, u64 arg4); | ||
47 | extern u64 efi_call5(void *fp, u64 arg1, u64 arg2, u64 arg3, | ||
48 | u64 arg4, u64 arg5); | ||
49 | extern u64 efi_call6(void *fp, u64 arg1, u64 arg2, u64 arg3, | ||
50 | u64 arg4, u64 arg5, u64 arg6); | ||
51 | |||
52 | #define efi_call_phys0(f) \ | ||
53 | efi_call0((void *)(f)) | ||
54 | #define efi_call_phys1(f, a1) \ | ||
55 | efi_call1((void *)(f), (u64)(a1)) | ||
56 | #define efi_call_phys2(f, a1, a2) \ | ||
57 | efi_call2((void *)(f), (u64)(a1), (u64)(a2)) | ||
58 | #define efi_call_phys3(f, a1, a2, a3) \ | ||
59 | efi_call3((void *)(f), (u64)(a1), (u64)(a2), (u64)(a3)) | ||
60 | #define efi_call_phys4(f, a1, a2, a3, a4) \ | ||
61 | efi_call4((void *)(f), (u64)(a1), (u64)(a2), (u64)(a3), \ | ||
62 | (u64)(a4)) | ||
63 | #define efi_call_phys5(f, a1, a2, a3, a4, a5) \ | ||
64 | efi_call5((void *)(f), (u64)(a1), (u64)(a2), (u64)(a3), \ | ||
65 | (u64)(a4), (u64)(a5)) | ||
66 | #define efi_call_phys6(f, a1, a2, a3, a4, a5, a6) \ | ||
67 | efi_call6((void *)(f), (u64)(a1), (u64)(a2), (u64)(a3), \ | ||
68 | (u64)(a4), (u64)(a5), (u64)(a6)) | ||
69 | |||
70 | #define efi_call_virt0(f) \ | ||
71 | efi_call0((void *)(efi.systab->runtime->f)) | ||
72 | #define efi_call_virt1(f, a1) \ | ||
73 | efi_call1((void *)(efi.systab->runtime->f), (u64)(a1)) | ||
74 | #define efi_call_virt2(f, a1, a2) \ | ||
75 | efi_call2((void *)(efi.systab->runtime->f), (u64)(a1), (u64)(a2)) | ||
76 | #define efi_call_virt3(f, a1, a2, a3) \ | ||
77 | efi_call3((void *)(efi.systab->runtime->f), (u64)(a1), (u64)(a2), \ | ||
78 | (u64)(a3)) | ||
79 | #define efi_call_virt4(f, a1, a2, a3, a4) \ | ||
80 | efi_call4((void *)(efi.systab->runtime->f), (u64)(a1), (u64)(a2), \ | ||
81 | (u64)(a3), (u64)(a4)) | ||
82 | #define efi_call_virt5(f, a1, a2, a3, a4, a5) \ | ||
83 | efi_call5((void *)(efi.systab->runtime->f), (u64)(a1), (u64)(a2), \ | ||
84 | (u64)(a3), (u64)(a4), (u64)(a5)) | ||
85 | #define efi_call_virt6(f, a1, a2, a3, a4, a5, a6) \ | ||
86 | efi_call6((void *)(efi.systab->runtime->f), (u64)(a1), (u64)(a2), \ | ||
87 | (u64)(a3), (u64)(a4), (u64)(a5), (u64)(a6)) | ||
88 | |||
89 | extern void __iomem *efi_ioremap(unsigned long addr, unsigned long size); | ||
90 | |||
91 | #endif /* CONFIG_X86_32 */ | ||
92 | |||
93 | extern void efi_reserve_early(void); | ||
94 | extern void efi_call_phys_prelog(void); | ||
95 | extern void efi_call_phys_epilog(void); | ||
96 | |||
97 | #ifndef CONFIG_EFI | ||
98 | /* | ||
99 | * IF EFI is not configured, have the EFI calls return -ENOSYS. | ||
100 | */ | ||
101 | #define efi_call0(_f) (-ENOSYS) | ||
102 | #define efi_call1(_f, _a1) (-ENOSYS) | ||
103 | #define efi_call2(_f, _a1, _a2) (-ENOSYS) | ||
104 | #define efi_call3(_f, _a1, _a2, _a3) (-ENOSYS) | ||
105 | #define efi_call4(_f, _a1, _a2, _a3, _a4) (-ENOSYS) | ||
106 | #define efi_call5(_f, _a1, _a2, _a3, _a4, _a5) (-ENOSYS) | ||
107 | #define efi_call6(_f, _a1, _a2, _a3, _a4, _a5, _a6) (-ENOSYS) | ||
108 | #endif /* CONFIG_EFI */ | ||
109 | |||
110 | #endif /* _ASM_X86_EFI_H */ | ||
diff --git a/arch/x86/include/asm/elf.h b/arch/x86/include/asm/elf.h new file mode 100644 index 000000000000..40ca1bea7916 --- /dev/null +++ b/arch/x86/include/asm/elf.h | |||
@@ -0,0 +1,336 @@ | |||
1 | #ifndef _ASM_X86_ELF_H | ||
2 | #define _ASM_X86_ELF_H | ||
3 | |||
4 | /* | ||
5 | * ELF register definitions.. | ||
6 | */ | ||
7 | |||
8 | #include <asm/ptrace.h> | ||
9 | #include <asm/user.h> | ||
10 | #include <asm/auxvec.h> | ||
11 | |||
12 | typedef unsigned long elf_greg_t; | ||
13 | |||
14 | #define ELF_NGREG (sizeof(struct user_regs_struct) / sizeof(elf_greg_t)) | ||
15 | typedef elf_greg_t elf_gregset_t[ELF_NGREG]; | ||
16 | |||
17 | typedef struct user_i387_struct elf_fpregset_t; | ||
18 | |||
19 | #ifdef __i386__ | ||
20 | |||
21 | typedef struct user_fxsr_struct elf_fpxregset_t; | ||
22 | |||
23 | #define R_386_NONE 0 | ||
24 | #define R_386_32 1 | ||
25 | #define R_386_PC32 2 | ||
26 | #define R_386_GOT32 3 | ||
27 | #define R_386_PLT32 4 | ||
28 | #define R_386_COPY 5 | ||
29 | #define R_386_GLOB_DAT 6 | ||
30 | #define R_386_JMP_SLOT 7 | ||
31 | #define R_386_RELATIVE 8 | ||
32 | #define R_386_GOTOFF 9 | ||
33 | #define R_386_GOTPC 10 | ||
34 | #define R_386_NUM 11 | ||
35 | |||
36 | /* | ||
37 | * These are used to set parameters in the core dumps. | ||
38 | */ | ||
39 | #define ELF_CLASS ELFCLASS32 | ||
40 | #define ELF_DATA ELFDATA2LSB | ||
41 | #define ELF_ARCH EM_386 | ||
42 | |||
43 | #else | ||
44 | |||
45 | /* x86-64 relocation types */ | ||
46 | #define R_X86_64_NONE 0 /* No reloc */ | ||
47 | #define R_X86_64_64 1 /* Direct 64 bit */ | ||
48 | #define R_X86_64_PC32 2 /* PC relative 32 bit signed */ | ||
49 | #define R_X86_64_GOT32 3 /* 32 bit GOT entry */ | ||
50 | #define R_X86_64_PLT32 4 /* 32 bit PLT address */ | ||
51 | #define R_X86_64_COPY 5 /* Copy symbol at runtime */ | ||
52 | #define R_X86_64_GLOB_DAT 6 /* Create GOT entry */ | ||
53 | #define R_X86_64_JUMP_SLOT 7 /* Create PLT entry */ | ||
54 | #define R_X86_64_RELATIVE 8 /* Adjust by program base */ | ||
55 | #define R_X86_64_GOTPCREL 9 /* 32 bit signed pc relative | ||
56 | offset to GOT */ | ||
57 | #define R_X86_64_32 10 /* Direct 32 bit zero extended */ | ||
58 | #define R_X86_64_32S 11 /* Direct 32 bit sign extended */ | ||
59 | #define R_X86_64_16 12 /* Direct 16 bit zero extended */ | ||
60 | #define R_X86_64_PC16 13 /* 16 bit sign extended pc relative */ | ||
61 | #define R_X86_64_8 14 /* Direct 8 bit sign extended */ | ||
62 | #define R_X86_64_PC8 15 /* 8 bit sign extended pc relative */ | ||
63 | |||
64 | #define R_X86_64_NUM 16 | ||
65 | |||
66 | /* | ||
67 | * These are used to set parameters in the core dumps. | ||
68 | */ | ||
69 | #define ELF_CLASS ELFCLASS64 | ||
70 | #define ELF_DATA ELFDATA2LSB | ||
71 | #define ELF_ARCH EM_X86_64 | ||
72 | |||
73 | #endif | ||
74 | |||
75 | #include <asm/vdso.h> | ||
76 | |||
77 | extern unsigned int vdso_enabled; | ||
78 | |||
79 | /* | ||
80 | * This is used to ensure we don't load something for the wrong architecture. | ||
81 | */ | ||
82 | #define elf_check_arch_ia32(x) \ | ||
83 | (((x)->e_machine == EM_386) || ((x)->e_machine == EM_486)) | ||
84 | |||
85 | #include <asm/processor.h> | ||
86 | #include <asm/system.h> | ||
87 | |||
88 | #ifdef CONFIG_X86_32 | ||
89 | #include <asm/desc.h> | ||
90 | |||
91 | #define elf_check_arch(x) elf_check_arch_ia32(x) | ||
92 | |||
93 | /* SVR4/i386 ABI (pages 3-31, 3-32) says that when the program starts %edx | ||
94 | contains a pointer to a function which might be registered using `atexit'. | ||
95 | This provides a mean for the dynamic linker to call DT_FINI functions for | ||
96 | shared libraries that have been loaded before the code runs. | ||
97 | |||
98 | A value of 0 tells we have no such handler. | ||
99 | |||
100 | We might as well make sure everything else is cleared too (except for %esp), | ||
101 | just to make things more deterministic. | ||
102 | */ | ||
103 | #define ELF_PLAT_INIT(_r, load_addr) \ | ||
104 | do { \ | ||
105 | _r->bx = 0; _r->cx = 0; _r->dx = 0; \ | ||
106 | _r->si = 0; _r->di = 0; _r->bp = 0; \ | ||
107 | _r->ax = 0; \ | ||
108 | } while (0) | ||
109 | |||
110 | /* | ||
111 | * regs is struct pt_regs, pr_reg is elf_gregset_t (which is | ||
112 | * now struct_user_regs, they are different) | ||
113 | */ | ||
114 | |||
115 | #define ELF_CORE_COPY_REGS(pr_reg, regs) \ | ||
116 | do { \ | ||
117 | pr_reg[0] = regs->bx; \ | ||
118 | pr_reg[1] = regs->cx; \ | ||
119 | pr_reg[2] = regs->dx; \ | ||
120 | pr_reg[3] = regs->si; \ | ||
121 | pr_reg[4] = regs->di; \ | ||
122 | pr_reg[5] = regs->bp; \ | ||
123 | pr_reg[6] = regs->ax; \ | ||
124 | pr_reg[7] = regs->ds & 0xffff; \ | ||
125 | pr_reg[8] = regs->es & 0xffff; \ | ||
126 | pr_reg[9] = regs->fs & 0xffff; \ | ||
127 | savesegment(gs, pr_reg[10]); \ | ||
128 | pr_reg[11] = regs->orig_ax; \ | ||
129 | pr_reg[12] = regs->ip; \ | ||
130 | pr_reg[13] = regs->cs & 0xffff; \ | ||
131 | pr_reg[14] = regs->flags; \ | ||
132 | pr_reg[15] = regs->sp; \ | ||
133 | pr_reg[16] = regs->ss & 0xffff; \ | ||
134 | } while (0); | ||
135 | |||
136 | #define ELF_PLATFORM (utsname()->machine) | ||
137 | #define set_personality_64bit() do { } while (0) | ||
138 | |||
139 | #else /* CONFIG_X86_32 */ | ||
140 | |||
141 | /* | ||
142 | * This is used to ensure we don't load something for the wrong architecture. | ||
143 | */ | ||
144 | #define elf_check_arch(x) \ | ||
145 | ((x)->e_machine == EM_X86_64) | ||
146 | |||
147 | #define compat_elf_check_arch(x) elf_check_arch_ia32(x) | ||
148 | |||
149 | static inline void start_ia32_thread(struct pt_regs *regs, u32 ip, u32 sp) | ||
150 | { | ||
151 | loadsegment(fs, 0); | ||
152 | loadsegment(ds, __USER32_DS); | ||
153 | loadsegment(es, __USER32_DS); | ||
154 | load_gs_index(0); | ||
155 | regs->ip = ip; | ||
156 | regs->sp = sp; | ||
157 | regs->flags = X86_EFLAGS_IF; | ||
158 | regs->cs = __USER32_CS; | ||
159 | regs->ss = __USER32_DS; | ||
160 | } | ||
161 | |||
162 | static inline void elf_common_init(struct thread_struct *t, | ||
163 | struct pt_regs *regs, const u16 ds) | ||
164 | { | ||
165 | regs->ax = regs->bx = regs->cx = regs->dx = 0; | ||
166 | regs->si = regs->di = regs->bp = 0; | ||
167 | regs->r8 = regs->r9 = regs->r10 = regs->r11 = 0; | ||
168 | regs->r12 = regs->r13 = regs->r14 = regs->r15 = 0; | ||
169 | t->fs = t->gs = 0; | ||
170 | t->fsindex = t->gsindex = 0; | ||
171 | t->ds = t->es = ds; | ||
172 | } | ||
173 | |||
174 | #define ELF_PLAT_INIT(_r, load_addr) \ | ||
175 | do { \ | ||
176 | elf_common_init(¤t->thread, _r, 0); \ | ||
177 | clear_thread_flag(TIF_IA32); \ | ||
178 | } while (0) | ||
179 | |||
180 | #define COMPAT_ELF_PLAT_INIT(regs, load_addr) \ | ||
181 | elf_common_init(¤t->thread, regs, __USER_DS) | ||
182 | |||
183 | #define compat_start_thread(regs, ip, sp) \ | ||
184 | do { \ | ||
185 | start_ia32_thread(regs, ip, sp); \ | ||
186 | set_fs(USER_DS); \ | ||
187 | } while (0) | ||
188 | |||
189 | #define COMPAT_SET_PERSONALITY(ex) \ | ||
190 | do { \ | ||
191 | if (test_thread_flag(TIF_IA32)) \ | ||
192 | clear_thread_flag(TIF_ABI_PENDING); \ | ||
193 | else \ | ||
194 | set_thread_flag(TIF_ABI_PENDING); \ | ||
195 | current->personality |= force_personality32; \ | ||
196 | } while (0) | ||
197 | |||
198 | #define COMPAT_ELF_PLATFORM ("i686") | ||
199 | |||
200 | /* | ||
201 | * regs is struct pt_regs, pr_reg is elf_gregset_t (which is | ||
202 | * now struct_user_regs, they are different). Assumes current is the process | ||
203 | * getting dumped. | ||
204 | */ | ||
205 | |||
206 | #define ELF_CORE_COPY_REGS(pr_reg, regs) \ | ||
207 | do { \ | ||
208 | unsigned v; \ | ||
209 | (pr_reg)[0] = (regs)->r15; \ | ||
210 | (pr_reg)[1] = (regs)->r14; \ | ||
211 | (pr_reg)[2] = (regs)->r13; \ | ||
212 | (pr_reg)[3] = (regs)->r12; \ | ||
213 | (pr_reg)[4] = (regs)->bp; \ | ||
214 | (pr_reg)[5] = (regs)->bx; \ | ||
215 | (pr_reg)[6] = (regs)->r11; \ | ||
216 | (pr_reg)[7] = (regs)->r10; \ | ||
217 | (pr_reg)[8] = (regs)->r9; \ | ||
218 | (pr_reg)[9] = (regs)->r8; \ | ||
219 | (pr_reg)[10] = (regs)->ax; \ | ||
220 | (pr_reg)[11] = (regs)->cx; \ | ||
221 | (pr_reg)[12] = (regs)->dx; \ | ||
222 | (pr_reg)[13] = (regs)->si; \ | ||
223 | (pr_reg)[14] = (regs)->di; \ | ||
224 | (pr_reg)[15] = (regs)->orig_ax; \ | ||
225 | (pr_reg)[16] = (regs)->ip; \ | ||
226 | (pr_reg)[17] = (regs)->cs; \ | ||
227 | (pr_reg)[18] = (regs)->flags; \ | ||
228 | (pr_reg)[19] = (regs)->sp; \ | ||
229 | (pr_reg)[20] = (regs)->ss; \ | ||
230 | (pr_reg)[21] = current->thread.fs; \ | ||
231 | (pr_reg)[22] = current->thread.gs; \ | ||
232 | asm("movl %%ds,%0" : "=r" (v)); (pr_reg)[23] = v; \ | ||
233 | asm("movl %%es,%0" : "=r" (v)); (pr_reg)[24] = v; \ | ||
234 | asm("movl %%fs,%0" : "=r" (v)); (pr_reg)[25] = v; \ | ||
235 | asm("movl %%gs,%0" : "=r" (v)); (pr_reg)[26] = v; \ | ||
236 | } while (0); | ||
237 | |||
238 | /* I'm not sure if we can use '-' here */ | ||
239 | #define ELF_PLATFORM ("x86_64") | ||
240 | extern void set_personality_64bit(void); | ||
241 | extern unsigned int sysctl_vsyscall32; | ||
242 | extern int force_personality32; | ||
243 | |||
244 | #endif /* !CONFIG_X86_32 */ | ||
245 | |||
246 | #define CORE_DUMP_USE_REGSET | ||
247 | #define USE_ELF_CORE_DUMP | ||
248 | #define ELF_EXEC_PAGESIZE 4096 | ||
249 | |||
250 | /* This is the location that an ET_DYN program is loaded if exec'ed. Typical | ||
251 | use of this is to invoke "./ld.so someprog" to test out a new version of | ||
252 | the loader. We need to make sure that it is out of the way of the program | ||
253 | that it will "exec", and that there is sufficient room for the brk. */ | ||
254 | |||
255 | #define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2) | ||
256 | |||
257 | /* This yields a mask that user programs can use to figure out what | ||
258 | instruction set this CPU supports. This could be done in user space, | ||
259 | but it's not easy, and we've already done it here. */ | ||
260 | |||
261 | #define ELF_HWCAP (boot_cpu_data.x86_capability[0]) | ||
262 | |||
263 | /* This yields a string that ld.so will use to load implementation | ||
264 | specific libraries for optimization. This is more specific in | ||
265 | intent than poking at uname or /proc/cpuinfo. | ||
266 | |||
267 | For the moment, we have only optimizations for the Intel generations, | ||
268 | but that could change... */ | ||
269 | |||
270 | #define SET_PERSONALITY(ex) set_personality_64bit() | ||
271 | |||
272 | /* | ||
273 | * An executable for which elf_read_implies_exec() returns TRUE will | ||
274 | * have the READ_IMPLIES_EXEC personality flag set automatically. | ||
275 | */ | ||
276 | #define elf_read_implies_exec(ex, executable_stack) \ | ||
277 | (executable_stack != EXSTACK_DISABLE_X) | ||
278 | |||
279 | struct task_struct; | ||
280 | |||
281 | #define ARCH_DLINFO_IA32(vdso_enabled) \ | ||
282 | do { \ | ||
283 | if (vdso_enabled) { \ | ||
284 | NEW_AUX_ENT(AT_SYSINFO, VDSO_ENTRY); \ | ||
285 | NEW_AUX_ENT(AT_SYSINFO_EHDR, VDSO_CURRENT_BASE); \ | ||
286 | } \ | ||
287 | } while (0) | ||
288 | |||
289 | #ifdef CONFIG_X86_32 | ||
290 | |||
291 | #define VDSO_HIGH_BASE (__fix_to_virt(FIX_VDSO)) | ||
292 | |||
293 | #define ARCH_DLINFO ARCH_DLINFO_IA32(vdso_enabled) | ||
294 | |||
295 | /* update AT_VECTOR_SIZE_ARCH if the number of NEW_AUX_ENT entries changes */ | ||
296 | |||
297 | #else /* CONFIG_X86_32 */ | ||
298 | |||
299 | #define VDSO_HIGH_BASE 0xffffe000U /* CONFIG_COMPAT_VDSO address */ | ||
300 | |||
301 | /* 1GB for 64bit, 8MB for 32bit */ | ||
302 | #define STACK_RND_MASK (test_thread_flag(TIF_IA32) ? 0x7ff : 0x3fffff) | ||
303 | |||
304 | #define ARCH_DLINFO \ | ||
305 | do { \ | ||
306 | if (vdso_enabled) \ | ||
307 | NEW_AUX_ENT(AT_SYSINFO_EHDR, \ | ||
308 | (unsigned long)current->mm->context.vdso); \ | ||
309 | } while (0) | ||
310 | |||
311 | #define AT_SYSINFO 32 | ||
312 | |||
313 | #define COMPAT_ARCH_DLINFO ARCH_DLINFO_IA32(sysctl_vsyscall32) | ||
314 | |||
315 | #define COMPAT_ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x1000000) | ||
316 | |||
317 | #endif /* !CONFIG_X86_32 */ | ||
318 | |||
319 | #define VDSO_CURRENT_BASE ((unsigned long)current->mm->context.vdso) | ||
320 | |||
321 | #define VDSO_ENTRY \ | ||
322 | ((unsigned long)VDSO32_SYMBOL(VDSO_CURRENT_BASE, vsyscall)) | ||
323 | |||
324 | struct linux_binprm; | ||
325 | |||
326 | #define ARCH_HAS_SETUP_ADDITIONAL_PAGES 1 | ||
327 | extern int arch_setup_additional_pages(struct linux_binprm *bprm, | ||
328 | int executable_stack); | ||
329 | |||
330 | extern int syscall32_setup_pages(struct linux_binprm *, int exstack); | ||
331 | #define compat_arch_setup_additional_pages syscall32_setup_pages | ||
332 | |||
333 | extern unsigned long arch_randomize_brk(struct mm_struct *mm); | ||
334 | #define arch_randomize_brk arch_randomize_brk | ||
335 | |||
336 | #endif /* _ASM_X86_ELF_H */ | ||
diff --git a/arch/x86/include/asm/emergency-restart.h b/arch/x86/include/asm/emergency-restart.h new file mode 100644 index 000000000000..94826cf87455 --- /dev/null +++ b/arch/x86/include/asm/emergency-restart.h | |||
@@ -0,0 +1,18 @@ | |||
1 | #ifndef _ASM_X86_EMERGENCY_RESTART_H | ||
2 | #define _ASM_X86_EMERGENCY_RESTART_H | ||
3 | |||
4 | enum reboot_type { | ||
5 | BOOT_TRIPLE = 't', | ||
6 | BOOT_KBD = 'k', | ||
7 | #ifdef CONFIG_X86_32 | ||
8 | BOOT_BIOS = 'b', | ||
9 | #endif | ||
10 | BOOT_ACPI = 'a', | ||
11 | BOOT_EFI = 'e' | ||
12 | }; | ||
13 | |||
14 | extern enum reboot_type reboot_type; | ||
15 | |||
16 | extern void machine_emergency_restart(void); | ||
17 | |||
18 | #endif /* _ASM_X86_EMERGENCY_RESTART_H */ | ||
diff --git a/arch/x86/include/asm/errno.h b/arch/x86/include/asm/errno.h new file mode 100644 index 000000000000..4c82b503d92f --- /dev/null +++ b/arch/x86/include/asm/errno.h | |||
@@ -0,0 +1 @@ | |||
#include <asm-generic/errno.h> | |||
diff --git a/arch/x86/include/asm/es7000/apic.h b/arch/x86/include/asm/es7000/apic.h new file mode 100644 index 000000000000..380f0b4f17ed --- /dev/null +++ b/arch/x86/include/asm/es7000/apic.h | |||
@@ -0,0 +1,193 @@ | |||
1 | #ifndef __ASM_ES7000_APIC_H | ||
2 | #define __ASM_ES7000_APIC_H | ||
3 | |||
4 | #define xapic_phys_to_log_apicid(cpu) per_cpu(x86_bios_cpu_apicid, cpu) | ||
5 | #define esr_disable (1) | ||
6 | |||
7 | static inline int apic_id_registered(void) | ||
8 | { | ||
9 | return (1); | ||
10 | } | ||
11 | |||
12 | static inline cpumask_t target_cpus(void) | ||
13 | { | ||
14 | #if defined CONFIG_ES7000_CLUSTERED_APIC | ||
15 | return CPU_MASK_ALL; | ||
16 | #else | ||
17 | return cpumask_of_cpu(smp_processor_id()); | ||
18 | #endif | ||
19 | } | ||
20 | |||
21 | #if defined CONFIG_ES7000_CLUSTERED_APIC | ||
22 | #define APIC_DFR_VALUE (APIC_DFR_CLUSTER) | ||
23 | #define INT_DELIVERY_MODE (dest_LowestPrio) | ||
24 | #define INT_DEST_MODE (1) /* logical delivery broadcast to all procs */ | ||
25 | #define NO_BALANCE_IRQ (1) | ||
26 | #undef WAKE_SECONDARY_VIA_INIT | ||
27 | #define WAKE_SECONDARY_VIA_MIP | ||
28 | #else | ||
29 | #define APIC_DFR_VALUE (APIC_DFR_FLAT) | ||
30 | #define INT_DELIVERY_MODE (dest_Fixed) | ||
31 | #define INT_DEST_MODE (0) /* phys delivery to target procs */ | ||
32 | #define NO_BALANCE_IRQ (0) | ||
33 | #undef APIC_DEST_LOGICAL | ||
34 | #define APIC_DEST_LOGICAL 0x0 | ||
35 | #define WAKE_SECONDARY_VIA_INIT | ||
36 | #endif | ||
37 | |||
38 | static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid) | ||
39 | { | ||
40 | return 0; | ||
41 | } | ||
42 | static inline unsigned long check_apicid_present(int bit) | ||
43 | { | ||
44 | return physid_isset(bit, phys_cpu_present_map); | ||
45 | } | ||
46 | |||
47 | #define apicid_cluster(apicid) (apicid & 0xF0) | ||
48 | |||
49 | static inline unsigned long calculate_ldr(int cpu) | ||
50 | { | ||
51 | unsigned long id; | ||
52 | id = xapic_phys_to_log_apicid(cpu); | ||
53 | return (SET_APIC_LOGICAL_ID(id)); | ||
54 | } | ||
55 | |||
56 | /* | ||
57 | * Set up the logical destination ID. | ||
58 | * | ||
59 | * Intel recommends to set DFR, LdR and TPR before enabling | ||
60 | * an APIC. See e.g. "AP-388 82489DX User's Manual" (Intel | ||
61 | * document number 292116). So here it goes... | ||
62 | */ | ||
63 | static inline void init_apic_ldr(void) | ||
64 | { | ||
65 | unsigned long val; | ||
66 | int cpu = smp_processor_id(); | ||
67 | |||
68 | apic_write(APIC_DFR, APIC_DFR_VALUE); | ||
69 | val = calculate_ldr(cpu); | ||
70 | apic_write(APIC_LDR, val); | ||
71 | } | ||
72 | |||
73 | #ifndef CONFIG_X86_GENERICARCH | ||
74 | extern void enable_apic_mode(void); | ||
75 | #endif | ||
76 | |||
77 | extern int apic_version [MAX_APICS]; | ||
78 | static inline void setup_apic_routing(void) | ||
79 | { | ||
80 | int apic = per_cpu(x86_bios_cpu_apicid, smp_processor_id()); | ||
81 | printk("Enabling APIC mode: %s. Using %d I/O APICs, target cpus %lx\n", | ||
82 | (apic_version[apic] == 0x14) ? | ||
83 | "Physical Cluster" : "Logical Cluster", nr_ioapics, cpus_addr(target_cpus())[0]); | ||
84 | } | ||
85 | |||
86 | static inline int multi_timer_check(int apic, int irq) | ||
87 | { | ||
88 | return 0; | ||
89 | } | ||
90 | |||
91 | static inline int apicid_to_node(int logical_apicid) | ||
92 | { | ||
93 | return 0; | ||
94 | } | ||
95 | |||
96 | |||
97 | static inline int cpu_present_to_apicid(int mps_cpu) | ||
98 | { | ||
99 | if (!mps_cpu) | ||
100 | return boot_cpu_physical_apicid; | ||
101 | else if (mps_cpu < NR_CPUS) | ||
102 | return (int) per_cpu(x86_bios_cpu_apicid, mps_cpu); | ||
103 | else | ||
104 | return BAD_APICID; | ||
105 | } | ||
106 | |||
107 | static inline physid_mask_t apicid_to_cpu_present(int phys_apicid) | ||
108 | { | ||
109 | static int id = 0; | ||
110 | physid_mask_t mask; | ||
111 | mask = physid_mask_of_physid(id); | ||
112 | ++id; | ||
113 | return mask; | ||
114 | } | ||
115 | |||
116 | extern u8 cpu_2_logical_apicid[]; | ||
117 | /* Mapping from cpu number to logical apicid */ | ||
118 | static inline int cpu_to_logical_apicid(int cpu) | ||
119 | { | ||
120 | #ifdef CONFIG_SMP | ||
121 | if (cpu >= NR_CPUS) | ||
122 | return BAD_APICID; | ||
123 | return (int)cpu_2_logical_apicid[cpu]; | ||
124 | #else | ||
125 | return logical_smp_processor_id(); | ||
126 | #endif | ||
127 | } | ||
128 | |||
129 | static inline physid_mask_t ioapic_phys_id_map(physid_mask_t phys_map) | ||
130 | { | ||
131 | /* For clustered we don't have a good way to do this yet - hack */ | ||
132 | return physids_promote(0xff); | ||
133 | } | ||
134 | |||
135 | |||
136 | static inline void setup_portio_remap(void) | ||
137 | { | ||
138 | } | ||
139 | |||
140 | extern unsigned int boot_cpu_physical_apicid; | ||
141 | static inline int check_phys_apicid_present(int cpu_physical_apicid) | ||
142 | { | ||
143 | boot_cpu_physical_apicid = read_apic_id(); | ||
144 | return (1); | ||
145 | } | ||
146 | |||
147 | static inline unsigned int cpu_mask_to_apicid(cpumask_t cpumask) | ||
148 | { | ||
149 | int num_bits_set; | ||
150 | int cpus_found = 0; | ||
151 | int cpu; | ||
152 | int apicid; | ||
153 | |||
154 | num_bits_set = cpus_weight(cpumask); | ||
155 | /* Return id to all */ | ||
156 | if (num_bits_set == NR_CPUS) | ||
157 | #if defined CONFIG_ES7000_CLUSTERED_APIC | ||
158 | return 0xFF; | ||
159 | #else | ||
160 | return cpu_to_logical_apicid(0); | ||
161 | #endif | ||
162 | /* | ||
163 | * The cpus in the mask must all be on the apic cluster. If are not | ||
164 | * on the same apicid cluster return default value of TARGET_CPUS. | ||
165 | */ | ||
166 | cpu = first_cpu(cpumask); | ||
167 | apicid = cpu_to_logical_apicid(cpu); | ||
168 | while (cpus_found < num_bits_set) { | ||
169 | if (cpu_isset(cpu, cpumask)) { | ||
170 | int new_apicid = cpu_to_logical_apicid(cpu); | ||
171 | if (apicid_cluster(apicid) != | ||
172 | apicid_cluster(new_apicid)){ | ||
173 | printk ("%s: Not a valid mask!\n", __func__); | ||
174 | #if defined CONFIG_ES7000_CLUSTERED_APIC | ||
175 | return 0xFF; | ||
176 | #else | ||
177 | return cpu_to_logical_apicid(0); | ||
178 | #endif | ||
179 | } | ||
180 | apicid = new_apicid; | ||
181 | cpus_found++; | ||
182 | } | ||
183 | cpu++; | ||
184 | } | ||
185 | return apicid; | ||
186 | } | ||
187 | |||
188 | static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb) | ||
189 | { | ||
190 | return cpuid_apic >> index_msb; | ||
191 | } | ||
192 | |||
193 | #endif /* __ASM_ES7000_APIC_H */ | ||
diff --git a/arch/x86/include/asm/es7000/apicdef.h b/arch/x86/include/asm/es7000/apicdef.h new file mode 100644 index 000000000000..8b234a3cb851 --- /dev/null +++ b/arch/x86/include/asm/es7000/apicdef.h | |||
@@ -0,0 +1,13 @@ | |||
1 | #ifndef __ASM_ES7000_APICDEF_H | ||
2 | #define __ASM_ES7000_APICDEF_H | ||
3 | |||
4 | #define APIC_ID_MASK (0xFF<<24) | ||
5 | |||
6 | static inline unsigned get_apic_id(unsigned long x) | ||
7 | { | ||
8 | return (((x)>>24)&0xFF); | ||
9 | } | ||
10 | |||
11 | #define GET_APIC_ID(x) get_apic_id(x) | ||
12 | |||
13 | #endif | ||
diff --git a/arch/x86/include/asm/es7000/ipi.h b/arch/x86/include/asm/es7000/ipi.h new file mode 100644 index 000000000000..632a955fcc0a --- /dev/null +++ b/arch/x86/include/asm/es7000/ipi.h | |||
@@ -0,0 +1,24 @@ | |||
1 | #ifndef __ASM_ES7000_IPI_H | ||
2 | #define __ASM_ES7000_IPI_H | ||
3 | |||
4 | void send_IPI_mask_sequence(cpumask_t mask, int vector); | ||
5 | |||
6 | static inline void send_IPI_mask(cpumask_t mask, int vector) | ||
7 | { | ||
8 | send_IPI_mask_sequence(mask, vector); | ||
9 | } | ||
10 | |||
11 | static inline void send_IPI_allbutself(int vector) | ||
12 | { | ||
13 | cpumask_t mask = cpu_online_map; | ||
14 | cpu_clear(smp_processor_id(), mask); | ||
15 | if (!cpus_empty(mask)) | ||
16 | send_IPI_mask(mask, vector); | ||
17 | } | ||
18 | |||
19 | static inline void send_IPI_all(int vector) | ||
20 | { | ||
21 | send_IPI_mask(cpu_online_map, vector); | ||
22 | } | ||
23 | |||
24 | #endif /* __ASM_ES7000_IPI_H */ | ||
diff --git a/arch/x86/include/asm/es7000/mpparse.h b/arch/x86/include/asm/es7000/mpparse.h new file mode 100644 index 000000000000..ed5a3caae141 --- /dev/null +++ b/arch/x86/include/asm/es7000/mpparse.h | |||
@@ -0,0 +1,30 @@ | |||
1 | #ifndef __ASM_ES7000_MPPARSE_H | ||
2 | #define __ASM_ES7000_MPPARSE_H | ||
3 | |||
4 | #include <linux/acpi.h> | ||
5 | |||
6 | extern int parse_unisys_oem (char *oemptr); | ||
7 | extern int find_unisys_acpi_oem_table(unsigned long *oem_addr); | ||
8 | extern void unmap_unisys_acpi_oem_table(unsigned long oem_addr); | ||
9 | extern void setup_unisys(void); | ||
10 | |||
11 | #ifndef CONFIG_X86_GENERICARCH | ||
12 | extern int acpi_madt_oem_check(char *oem_id, char *oem_table_id); | ||
13 | extern int mps_oem_check(struct mp_config_table *mpc, char *oem, | ||
14 | char *productid); | ||
15 | #endif | ||
16 | |||
17 | #ifdef CONFIG_ACPI | ||
18 | |||
19 | static inline int es7000_check_dsdt(void) | ||
20 | { | ||
21 | struct acpi_table_header header; | ||
22 | |||
23 | if (ACPI_SUCCESS(acpi_get_table_header(ACPI_SIG_DSDT, 0, &header)) && | ||
24 | !strncmp(header.oem_id, "UNISYS", 6)) | ||
25 | return 1; | ||
26 | return 0; | ||
27 | } | ||
28 | #endif | ||
29 | |||
30 | #endif /* __ASM_MACH_MPPARSE_H */ | ||
diff --git a/arch/x86/include/asm/es7000/wakecpu.h b/arch/x86/include/asm/es7000/wakecpu.h new file mode 100644 index 000000000000..3ffc5a7bf667 --- /dev/null +++ b/arch/x86/include/asm/es7000/wakecpu.h | |||
@@ -0,0 +1,59 @@ | |||
1 | #ifndef __ASM_ES7000_WAKECPU_H | ||
2 | #define __ASM_ES7000_WAKECPU_H | ||
3 | |||
4 | /* | ||
5 | * This file copes with machines that wakeup secondary CPUs by the | ||
6 | * INIT, INIT, STARTUP sequence. | ||
7 | */ | ||
8 | |||
9 | #ifdef CONFIG_ES7000_CLUSTERED_APIC | ||
10 | #define WAKE_SECONDARY_VIA_MIP | ||
11 | #else | ||
12 | #define WAKE_SECONDARY_VIA_INIT | ||
13 | #endif | ||
14 | |||
15 | #ifdef WAKE_SECONDARY_VIA_MIP | ||
16 | extern int es7000_start_cpu(int cpu, unsigned long eip); | ||
17 | static inline int | ||
18 | wakeup_secondary_cpu(int phys_apicid, unsigned long start_eip) | ||
19 | { | ||
20 | int boot_error = 0; | ||
21 | boot_error = es7000_start_cpu(phys_apicid, start_eip); | ||
22 | return boot_error; | ||
23 | } | ||
24 | #endif | ||
25 | |||
26 | #define TRAMPOLINE_LOW phys_to_virt(0x467) | ||
27 | #define TRAMPOLINE_HIGH phys_to_virt(0x469) | ||
28 | |||
29 | #define boot_cpu_apicid boot_cpu_physical_apicid | ||
30 | |||
31 | static inline void wait_for_init_deassert(atomic_t *deassert) | ||
32 | { | ||
33 | #ifdef WAKE_SECONDARY_VIA_INIT | ||
34 | while (!atomic_read(deassert)) | ||
35 | cpu_relax(); | ||
36 | #endif | ||
37 | return; | ||
38 | } | ||
39 | |||
40 | /* Nothing to do for most platforms, since cleared by the INIT cycle */ | ||
41 | static inline void smp_callin_clear_local_apic(void) | ||
42 | { | ||
43 | } | ||
44 | |||
45 | static inline void store_NMI_vector(unsigned short *high, unsigned short *low) | ||
46 | { | ||
47 | } | ||
48 | |||
49 | static inline void restore_NMI_vector(unsigned short *high, unsigned short *low) | ||
50 | { | ||
51 | } | ||
52 | |||
53 | #if APIC_DEBUG | ||
54 | #define inquire_remote_apic(apicid) __inquire_remote_apic(apicid) | ||
55 | #else | ||
56 | #define inquire_remote_apic(apicid) {} | ||
57 | #endif | ||
58 | |||
59 | #endif /* __ASM_MACH_WAKECPU_H */ | ||
diff --git a/arch/x86/include/asm/fb.h b/arch/x86/include/asm/fb.h new file mode 100644 index 000000000000..53018464aea6 --- /dev/null +++ b/arch/x86/include/asm/fb.h | |||
@@ -0,0 +1,21 @@ | |||
1 | #ifndef _ASM_X86_FB_H | ||
2 | #define _ASM_X86_FB_H | ||
3 | |||
4 | #include <linux/fb.h> | ||
5 | #include <linux/fs.h> | ||
6 | #include <asm/page.h> | ||
7 | |||
8 | static inline void fb_pgprotect(struct file *file, struct vm_area_struct *vma, | ||
9 | unsigned long off) | ||
10 | { | ||
11 | if (boot_cpu_data.x86 > 3) | ||
12 | pgprot_val(vma->vm_page_prot) |= _PAGE_PCD; | ||
13 | } | ||
14 | |||
15 | #ifdef CONFIG_X86_32 | ||
16 | extern int fb_is_primary_device(struct fb_info *info); | ||
17 | #else | ||
18 | static inline int fb_is_primary_device(struct fb_info *info) { return 0; } | ||
19 | #endif | ||
20 | |||
21 | #endif /* _ASM_X86_FB_H */ | ||
diff --git a/arch/x86/include/asm/fcntl.h b/arch/x86/include/asm/fcntl.h new file mode 100644 index 000000000000..46ab12db5739 --- /dev/null +++ b/arch/x86/include/asm/fcntl.h | |||
@@ -0,0 +1 @@ | |||
#include <asm-generic/fcntl.h> | |||
diff --git a/arch/x86/include/asm/fixmap.h b/arch/x86/include/asm/fixmap.h new file mode 100644 index 000000000000..8668a94f850e --- /dev/null +++ b/arch/x86/include/asm/fixmap.h | |||
@@ -0,0 +1,68 @@ | |||
1 | #ifndef _ASM_X86_FIXMAP_H | ||
2 | #define _ASM_X86_FIXMAP_H | ||
3 | |||
4 | #ifdef CONFIG_X86_32 | ||
5 | # include "fixmap_32.h" | ||
6 | #else | ||
7 | # include "fixmap_64.h" | ||
8 | #endif | ||
9 | |||
10 | extern int fixmaps_set; | ||
11 | |||
12 | void __native_set_fixmap(enum fixed_addresses idx, pte_t pte); | ||
13 | void native_set_fixmap(enum fixed_addresses idx, | ||
14 | unsigned long phys, pgprot_t flags); | ||
15 | |||
16 | #ifndef CONFIG_PARAVIRT | ||
17 | static inline void __set_fixmap(enum fixed_addresses idx, | ||
18 | unsigned long phys, pgprot_t flags) | ||
19 | { | ||
20 | native_set_fixmap(idx, phys, flags); | ||
21 | } | ||
22 | #endif | ||
23 | |||
24 | #define set_fixmap(idx, phys) \ | ||
25 | __set_fixmap(idx, phys, PAGE_KERNEL) | ||
26 | |||
27 | /* | ||
28 | * Some hardware wants to get fixmapped without caching. | ||
29 | */ | ||
30 | #define set_fixmap_nocache(idx, phys) \ | ||
31 | __set_fixmap(idx, phys, PAGE_KERNEL_NOCACHE) | ||
32 | |||
33 | #define clear_fixmap(idx) \ | ||
34 | __set_fixmap(idx, 0, __pgprot(0)) | ||
35 | |||
36 | #define __fix_to_virt(x) (FIXADDR_TOP - ((x) << PAGE_SHIFT)) | ||
37 | #define __virt_to_fix(x) ((FIXADDR_TOP - ((x)&PAGE_MASK)) >> PAGE_SHIFT) | ||
38 | |||
39 | extern void __this_fixmap_does_not_exist(void); | ||
40 | |||
41 | /* | ||
42 | * 'index to address' translation. If anyone tries to use the idx | ||
43 | * directly without translation, we catch the bug with a NULL-deference | ||
44 | * kernel oops. Illegal ranges of incoming indices are caught too. | ||
45 | */ | ||
46 | static __always_inline unsigned long fix_to_virt(const unsigned int idx) | ||
47 | { | ||
48 | /* | ||
49 | * this branch gets completely eliminated after inlining, | ||
50 | * except when someone tries to use fixaddr indices in an | ||
51 | * illegal way. (such as mixing up address types or using | ||
52 | * out-of-range indices). | ||
53 | * | ||
54 | * If it doesn't get removed, the linker will complain | ||
55 | * loudly with a reasonably clear error message.. | ||
56 | */ | ||
57 | if (idx >= __end_of_fixed_addresses) | ||
58 | __this_fixmap_does_not_exist(); | ||
59 | |||
60 | return __fix_to_virt(idx); | ||
61 | } | ||
62 | |||
63 | static inline unsigned long virt_to_fix(const unsigned long vaddr) | ||
64 | { | ||
65 | BUG_ON(vaddr >= FIXADDR_TOP || vaddr < FIXADDR_START); | ||
66 | return __virt_to_fix(vaddr); | ||
67 | } | ||
68 | #endif /* _ASM_X86_FIXMAP_H */ | ||
diff --git a/arch/x86/include/asm/fixmap_32.h b/arch/x86/include/asm/fixmap_32.h new file mode 100644 index 000000000000..09f29ab5c139 --- /dev/null +++ b/arch/x86/include/asm/fixmap_32.h | |||
@@ -0,0 +1,123 @@ | |||
1 | /* | ||
2 | * fixmap.h: compile-time virtual memory allocation | ||
3 | * | ||
4 | * This file is subject to the terms and conditions of the GNU General Public | ||
5 | * License. See the file "COPYING" in the main directory of this archive | ||
6 | * for more details. | ||
7 | * | ||
8 | * Copyright (C) 1998 Ingo Molnar | ||
9 | * | ||
10 | * Support of BIGMEM added by Gerhard Wichert, Siemens AG, July 1999 | ||
11 | */ | ||
12 | |||
13 | #ifndef _ASM_X86_FIXMAP_32_H | ||
14 | #define _ASM_X86_FIXMAP_32_H | ||
15 | |||
16 | |||
17 | /* used by vmalloc.c, vsyscall.lds.S. | ||
18 | * | ||
19 | * Leave one empty page between vmalloc'ed areas and | ||
20 | * the start of the fixmap. | ||
21 | */ | ||
22 | extern unsigned long __FIXADDR_TOP; | ||
23 | #define FIXADDR_USER_START __fix_to_virt(FIX_VDSO) | ||
24 | #define FIXADDR_USER_END __fix_to_virt(FIX_VDSO - 1) | ||
25 | |||
26 | #ifndef __ASSEMBLY__ | ||
27 | #include <linux/kernel.h> | ||
28 | #include <asm/acpi.h> | ||
29 | #include <asm/apicdef.h> | ||
30 | #include <asm/page.h> | ||
31 | #ifdef CONFIG_HIGHMEM | ||
32 | #include <linux/threads.h> | ||
33 | #include <asm/kmap_types.h> | ||
34 | #endif | ||
35 | |||
36 | /* | ||
37 | * Here we define all the compile-time 'special' virtual | ||
38 | * addresses. The point is to have a constant address at | ||
39 | * compile time, but to set the physical address only | ||
40 | * in the boot process. We allocate these special addresses | ||
41 | * from the end of virtual memory (0xfffff000) backwards. | ||
42 | * Also this lets us do fail-safe vmalloc(), we | ||
43 | * can guarantee that these special addresses and | ||
44 | * vmalloc()-ed addresses never overlap. | ||
45 | * | ||
46 | * these 'compile-time allocated' memory buffers are | ||
47 | * fixed-size 4k pages. (or larger if used with an increment | ||
48 | * highger than 1) use fixmap_set(idx,phys) to associate | ||
49 | * physical memory with fixmap indices. | ||
50 | * | ||
51 | * TLB entries of such buffers will not be flushed across | ||
52 | * task switches. | ||
53 | */ | ||
54 | enum fixed_addresses { | ||
55 | FIX_HOLE, | ||
56 | FIX_VDSO, | ||
57 | FIX_DBGP_BASE, | ||
58 | FIX_EARLYCON_MEM_BASE, | ||
59 | #ifdef CONFIG_X86_LOCAL_APIC | ||
60 | FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */ | ||
61 | #endif | ||
62 | #ifdef CONFIG_X86_IO_APIC | ||
63 | FIX_IO_APIC_BASE_0, | ||
64 | FIX_IO_APIC_BASE_END = FIX_IO_APIC_BASE_0 + MAX_IO_APICS-1, | ||
65 | #endif | ||
66 | #ifdef CONFIG_X86_VISWS_APIC | ||
67 | FIX_CO_CPU, /* Cobalt timer */ | ||
68 | FIX_CO_APIC, /* Cobalt APIC Redirection Table */ | ||
69 | FIX_LI_PCIA, /* Lithium PCI Bridge A */ | ||
70 | FIX_LI_PCIB, /* Lithium PCI Bridge B */ | ||
71 | #endif | ||
72 | #ifdef CONFIG_X86_F00F_BUG | ||
73 | FIX_F00F_IDT, /* Virtual mapping for IDT */ | ||
74 | #endif | ||
75 | #ifdef CONFIG_X86_CYCLONE_TIMER | ||
76 | FIX_CYCLONE_TIMER, /*cyclone timer register*/ | ||
77 | #endif | ||
78 | #ifdef CONFIG_HIGHMEM | ||
79 | FIX_KMAP_BEGIN, /* reserved pte's for temporary kernel mappings */ | ||
80 | FIX_KMAP_END = FIX_KMAP_BEGIN+(KM_TYPE_NR*NR_CPUS)-1, | ||
81 | #endif | ||
82 | #ifdef CONFIG_PCI_MMCONFIG | ||
83 | FIX_PCIE_MCFG, | ||
84 | #endif | ||
85 | #ifdef CONFIG_PARAVIRT | ||
86 | FIX_PARAVIRT_BOOTMAP, | ||
87 | #endif | ||
88 | __end_of_permanent_fixed_addresses, | ||
89 | /* | ||
90 | * 256 temporary boot-time mappings, used by early_ioremap(), | ||
91 | * before ioremap() is functional. | ||
92 | * | ||
93 | * We round it up to the next 256 pages boundary so that we | ||
94 | * can have a single pgd entry and a single pte table: | ||
95 | */ | ||
96 | #define NR_FIX_BTMAPS 64 | ||
97 | #define FIX_BTMAPS_SLOTS 4 | ||
98 | FIX_BTMAP_END = __end_of_permanent_fixed_addresses + 256 - | ||
99 | (__end_of_permanent_fixed_addresses & 255), | ||
100 | FIX_BTMAP_BEGIN = FIX_BTMAP_END + NR_FIX_BTMAPS*FIX_BTMAPS_SLOTS - 1, | ||
101 | FIX_WP_TEST, | ||
102 | #ifdef CONFIG_ACPI | ||
103 | FIX_ACPI_BEGIN, | ||
104 | FIX_ACPI_END = FIX_ACPI_BEGIN + FIX_ACPI_PAGES - 1, | ||
105 | #endif | ||
106 | #ifdef CONFIG_PROVIDE_OHCI1394_DMA_INIT | ||
107 | FIX_OHCI1394_BASE, | ||
108 | #endif | ||
109 | __end_of_fixed_addresses | ||
110 | }; | ||
111 | |||
112 | extern void reserve_top_address(unsigned long reserve); | ||
113 | |||
114 | |||
115 | #define FIXADDR_TOP ((unsigned long)__FIXADDR_TOP) | ||
116 | |||
117 | #define __FIXADDR_SIZE (__end_of_permanent_fixed_addresses << PAGE_SHIFT) | ||
118 | #define __FIXADDR_BOOT_SIZE (__end_of_fixed_addresses << PAGE_SHIFT) | ||
119 | #define FIXADDR_START (FIXADDR_TOP - __FIXADDR_SIZE) | ||
120 | #define FIXADDR_BOOT_START (FIXADDR_TOP - __FIXADDR_BOOT_SIZE) | ||
121 | |||
122 | #endif /* !__ASSEMBLY__ */ | ||
123 | #endif /* _ASM_X86_FIXMAP_32_H */ | ||
diff --git a/arch/x86/include/asm/fixmap_64.h b/arch/x86/include/asm/fixmap_64.h new file mode 100644 index 000000000000..00a30ab9b1a5 --- /dev/null +++ b/arch/x86/include/asm/fixmap_64.h | |||
@@ -0,0 +1,83 @@ | |||
1 | /* | ||
2 | * fixmap.h: compile-time virtual memory allocation | ||
3 | * | ||
4 | * This file is subject to the terms and conditions of the GNU General Public | ||
5 | * License. See the file "COPYING" in the main directory of this archive | ||
6 | * for more details. | ||
7 | * | ||
8 | * Copyright (C) 1998 Ingo Molnar | ||
9 | */ | ||
10 | |||
11 | #ifndef _ASM_X86_FIXMAP_64_H | ||
12 | #define _ASM_X86_FIXMAP_64_H | ||
13 | |||
14 | #include <linux/kernel.h> | ||
15 | #include <asm/acpi.h> | ||
16 | #include <asm/apicdef.h> | ||
17 | #include <asm/page.h> | ||
18 | #include <asm/vsyscall.h> | ||
19 | #include <asm/efi.h> | ||
20 | |||
21 | /* | ||
22 | * Here we define all the compile-time 'special' virtual | ||
23 | * addresses. The point is to have a constant address at | ||
24 | * compile time, but to set the physical address only | ||
25 | * in the boot process. | ||
26 | * | ||
27 | * These 'compile-time allocated' memory buffers are | ||
28 | * fixed-size 4k pages (or larger if used with an increment | ||
29 | * higher than 1). Use set_fixmap(idx,phys) to associate | ||
30 | * physical memory with fixmap indices. | ||
31 | * | ||
32 | * TLB entries of such buffers will not be flushed across | ||
33 | * task switches. | ||
34 | */ | ||
35 | |||
36 | enum fixed_addresses { | ||
37 | VSYSCALL_LAST_PAGE, | ||
38 | VSYSCALL_FIRST_PAGE = VSYSCALL_LAST_PAGE | ||
39 | + ((VSYSCALL_END-VSYSCALL_START) >> PAGE_SHIFT) - 1, | ||
40 | VSYSCALL_HPET, | ||
41 | FIX_DBGP_BASE, | ||
42 | FIX_EARLYCON_MEM_BASE, | ||
43 | FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */ | ||
44 | FIX_IO_APIC_BASE_0, | ||
45 | FIX_IO_APIC_BASE_END = FIX_IO_APIC_BASE_0 + MAX_IO_APICS - 1, | ||
46 | FIX_EFI_IO_MAP_LAST_PAGE, | ||
47 | FIX_EFI_IO_MAP_FIRST_PAGE = FIX_EFI_IO_MAP_LAST_PAGE | ||
48 | + MAX_EFI_IO_PAGES - 1, | ||
49 | #ifdef CONFIG_PARAVIRT | ||
50 | FIX_PARAVIRT_BOOTMAP, | ||
51 | #endif | ||
52 | __end_of_permanent_fixed_addresses, | ||
53 | #ifdef CONFIG_ACPI | ||
54 | FIX_ACPI_BEGIN, | ||
55 | FIX_ACPI_END = FIX_ACPI_BEGIN + FIX_ACPI_PAGES - 1, | ||
56 | #endif | ||
57 | #ifdef CONFIG_PROVIDE_OHCI1394_DMA_INIT | ||
58 | FIX_OHCI1394_BASE, | ||
59 | #endif | ||
60 | /* | ||
61 | * 256 temporary boot-time mappings, used by early_ioremap(), | ||
62 | * before ioremap() is functional. | ||
63 | * | ||
64 | * We round it up to the next 256 pages boundary so that we | ||
65 | * can have a single pgd entry and a single pte table: | ||
66 | */ | ||
67 | #define NR_FIX_BTMAPS 64 | ||
68 | #define FIX_BTMAPS_SLOTS 4 | ||
69 | FIX_BTMAP_END = __end_of_permanent_fixed_addresses + 256 - | ||
70 | (__end_of_permanent_fixed_addresses & 255), | ||
71 | FIX_BTMAP_BEGIN = FIX_BTMAP_END + NR_FIX_BTMAPS*FIX_BTMAPS_SLOTS - 1, | ||
72 | __end_of_fixed_addresses | ||
73 | }; | ||
74 | |||
75 | #define FIXADDR_TOP (VSYSCALL_END-PAGE_SIZE) | ||
76 | #define FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT) | ||
77 | #define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE) | ||
78 | |||
79 | /* Only covers 32bit vsyscalls currently. Need another set for 64bit. */ | ||
80 | #define FIXADDR_USER_START ((unsigned long)VSYSCALL32_VSYSCALL) | ||
81 | #define FIXADDR_USER_END (FIXADDR_USER_START + PAGE_SIZE) | ||
82 | |||
83 | #endif /* _ASM_X86_FIXMAP_64_H */ | ||
diff --git a/arch/x86/include/asm/floppy.h b/arch/x86/include/asm/floppy.h new file mode 100644 index 000000000000..dbe82a5c5eac --- /dev/null +++ b/arch/x86/include/asm/floppy.h | |||
@@ -0,0 +1,281 @@ | |||
1 | /* | ||
2 | * Architecture specific parts of the Floppy driver | ||
3 | * | ||
4 | * This file is subject to the terms and conditions of the GNU General Public | ||
5 | * License. See the file "COPYING" in the main directory of this archive | ||
6 | * for more details. | ||
7 | * | ||
8 | * Copyright (C) 1995 | ||
9 | */ | ||
10 | #ifndef _ASM_X86_FLOPPY_H | ||
11 | #define _ASM_X86_FLOPPY_H | ||
12 | |||
13 | #include <linux/vmalloc.h> | ||
14 | |||
15 | /* | ||
16 | * The DMA channel used by the floppy controller cannot access data at | ||
17 | * addresses >= 16MB | ||
18 | * | ||
19 | * Went back to the 1MB limit, as some people had problems with the floppy | ||
20 | * driver otherwise. It doesn't matter much for performance anyway, as most | ||
21 | * floppy accesses go through the track buffer. | ||
22 | */ | ||
23 | #define _CROSS_64KB(a, s, vdma) \ | ||
24 | (!(vdma) && \ | ||
25 | ((unsigned long)(a)/K_64 != ((unsigned long)(a) + (s) - 1) / K_64)) | ||
26 | |||
27 | #define CROSS_64KB(a, s) _CROSS_64KB(a, s, use_virtual_dma & 1) | ||
28 | |||
29 | |||
30 | #define SW fd_routine[use_virtual_dma & 1] | ||
31 | #define CSW fd_routine[can_use_virtual_dma & 1] | ||
32 | |||
33 | |||
34 | #define fd_inb(port) inb_p(port) | ||
35 | #define fd_outb(value, port) outb_p(value, port) | ||
36 | |||
37 | #define fd_request_dma() CSW._request_dma(FLOPPY_DMA, "floppy") | ||
38 | #define fd_free_dma() CSW._free_dma(FLOPPY_DMA) | ||
39 | #define fd_enable_irq() enable_irq(FLOPPY_IRQ) | ||
40 | #define fd_disable_irq() disable_irq(FLOPPY_IRQ) | ||
41 | #define fd_free_irq() free_irq(FLOPPY_IRQ, NULL) | ||
42 | #define fd_get_dma_residue() SW._get_dma_residue(FLOPPY_DMA) | ||
43 | #define fd_dma_mem_alloc(size) SW._dma_mem_alloc(size) | ||
44 | #define fd_dma_setup(addr, size, mode, io) SW._dma_setup(addr, size, mode, io) | ||
45 | |||
46 | #define FLOPPY_CAN_FALLBACK_ON_NODMA | ||
47 | |||
48 | static int virtual_dma_count; | ||
49 | static int virtual_dma_residue; | ||
50 | static char *virtual_dma_addr; | ||
51 | static int virtual_dma_mode; | ||
52 | static int doing_pdma; | ||
53 | |||
54 | static irqreturn_t floppy_hardint(int irq, void *dev_id) | ||
55 | { | ||
56 | unsigned char st; | ||
57 | |||
58 | #undef TRACE_FLPY_INT | ||
59 | |||
60 | #ifdef TRACE_FLPY_INT | ||
61 | static int calls; | ||
62 | static int bytes; | ||
63 | static int dma_wait; | ||
64 | #endif | ||
65 | if (!doing_pdma) | ||
66 | return floppy_interrupt(irq, dev_id); | ||
67 | |||
68 | #ifdef TRACE_FLPY_INT | ||
69 | if (!calls) | ||
70 | bytes = virtual_dma_count; | ||
71 | #endif | ||
72 | |||
73 | { | ||
74 | int lcount; | ||
75 | char *lptr; | ||
76 | |||
77 | st = 1; | ||
78 | for (lcount = virtual_dma_count, lptr = virtual_dma_addr; | ||
79 | lcount; lcount--, lptr++) { | ||
80 | st = inb(virtual_dma_port + 4) & 0xa0; | ||
81 | if (st != 0xa0) | ||
82 | break; | ||
83 | if (virtual_dma_mode) | ||
84 | outb_p(*lptr, virtual_dma_port + 5); | ||
85 | else | ||
86 | *lptr = inb_p(virtual_dma_port + 5); | ||
87 | } | ||
88 | virtual_dma_count = lcount; | ||
89 | virtual_dma_addr = lptr; | ||
90 | st = inb(virtual_dma_port + 4); | ||
91 | } | ||
92 | |||
93 | #ifdef TRACE_FLPY_INT | ||
94 | calls++; | ||
95 | #endif | ||
96 | if (st == 0x20) | ||
97 | return IRQ_HANDLED; | ||
98 | if (!(st & 0x20)) { | ||
99 | virtual_dma_residue += virtual_dma_count; | ||
100 | virtual_dma_count = 0; | ||
101 | #ifdef TRACE_FLPY_INT | ||
102 | printk("count=%x, residue=%x calls=%d bytes=%d dma_wait=%d\n", | ||
103 | virtual_dma_count, virtual_dma_residue, calls, bytes, | ||
104 | dma_wait); | ||
105 | calls = 0; | ||
106 | dma_wait = 0; | ||
107 | #endif | ||
108 | doing_pdma = 0; | ||
109 | floppy_interrupt(irq, dev_id); | ||
110 | return IRQ_HANDLED; | ||
111 | } | ||
112 | #ifdef TRACE_FLPY_INT | ||
113 | if (!virtual_dma_count) | ||
114 | dma_wait++; | ||
115 | #endif | ||
116 | return IRQ_HANDLED; | ||
117 | } | ||
118 | |||
119 | static void fd_disable_dma(void) | ||
120 | { | ||
121 | if (!(can_use_virtual_dma & 1)) | ||
122 | disable_dma(FLOPPY_DMA); | ||
123 | doing_pdma = 0; | ||
124 | virtual_dma_residue += virtual_dma_count; | ||
125 | virtual_dma_count = 0; | ||
126 | } | ||
127 | |||
128 | static int vdma_request_dma(unsigned int dmanr, const char *device_id) | ||
129 | { | ||
130 | return 0; | ||
131 | } | ||
132 | |||
133 | static void vdma_nop(unsigned int dummy) | ||
134 | { | ||
135 | } | ||
136 | |||
137 | |||
138 | static int vdma_get_dma_residue(unsigned int dummy) | ||
139 | { | ||
140 | return virtual_dma_count + virtual_dma_residue; | ||
141 | } | ||
142 | |||
143 | |||
144 | static int fd_request_irq(void) | ||
145 | { | ||
146 | if (can_use_virtual_dma) | ||
147 | return request_irq(FLOPPY_IRQ, floppy_hardint, | ||
148 | IRQF_DISABLED, "floppy", NULL); | ||
149 | else | ||
150 | return request_irq(FLOPPY_IRQ, floppy_interrupt, | ||
151 | IRQF_DISABLED, "floppy", NULL); | ||
152 | } | ||
153 | |||
154 | static unsigned long dma_mem_alloc(unsigned long size) | ||
155 | { | ||
156 | return __get_dma_pages(GFP_KERNEL|__GFP_NORETRY, get_order(size)); | ||
157 | } | ||
158 | |||
159 | |||
160 | static unsigned long vdma_mem_alloc(unsigned long size) | ||
161 | { | ||
162 | return (unsigned long)vmalloc(size); | ||
163 | |||
164 | } | ||
165 | |||
166 | #define nodma_mem_alloc(size) vdma_mem_alloc(size) | ||
167 | |||
168 | static void _fd_dma_mem_free(unsigned long addr, unsigned long size) | ||
169 | { | ||
170 | if ((unsigned long)addr >= (unsigned long)high_memory) | ||
171 | vfree((void *)addr); | ||
172 | else | ||
173 | free_pages(addr, get_order(size)); | ||
174 | } | ||
175 | |||
176 | #define fd_dma_mem_free(addr, size) _fd_dma_mem_free(addr, size) | ||
177 | |||
178 | static void _fd_chose_dma_mode(char *addr, unsigned long size) | ||
179 | { | ||
180 | if (can_use_virtual_dma == 2) { | ||
181 | if ((unsigned long)addr >= (unsigned long)high_memory || | ||
182 | isa_virt_to_bus(addr) >= 0x1000000 || | ||
183 | _CROSS_64KB(addr, size, 0)) | ||
184 | use_virtual_dma = 1; | ||
185 | else | ||
186 | use_virtual_dma = 0; | ||
187 | } else { | ||
188 | use_virtual_dma = can_use_virtual_dma & 1; | ||
189 | } | ||
190 | } | ||
191 | |||
192 | #define fd_chose_dma_mode(addr, size) _fd_chose_dma_mode(addr, size) | ||
193 | |||
194 | |||
195 | static int vdma_dma_setup(char *addr, unsigned long size, int mode, int io) | ||
196 | { | ||
197 | doing_pdma = 1; | ||
198 | virtual_dma_port = io; | ||
199 | virtual_dma_mode = (mode == DMA_MODE_WRITE); | ||
200 | virtual_dma_addr = addr; | ||
201 | virtual_dma_count = size; | ||
202 | virtual_dma_residue = 0; | ||
203 | return 0; | ||
204 | } | ||
205 | |||
206 | static int hard_dma_setup(char *addr, unsigned long size, int mode, int io) | ||
207 | { | ||
208 | #ifdef FLOPPY_SANITY_CHECK | ||
209 | if (CROSS_64KB(addr, size)) { | ||
210 | printk("DMA crossing 64-K boundary %p-%p\n", addr, addr+size); | ||
211 | return -1; | ||
212 | } | ||
213 | #endif | ||
214 | /* actual, physical DMA */ | ||
215 | doing_pdma = 0; | ||
216 | clear_dma_ff(FLOPPY_DMA); | ||
217 | set_dma_mode(FLOPPY_DMA, mode); | ||
218 | set_dma_addr(FLOPPY_DMA, isa_virt_to_bus(addr)); | ||
219 | set_dma_count(FLOPPY_DMA, size); | ||
220 | enable_dma(FLOPPY_DMA); | ||
221 | return 0; | ||
222 | } | ||
223 | |||
224 | static struct fd_routine_l { | ||
225 | int (*_request_dma)(unsigned int dmanr, const char *device_id); | ||
226 | void (*_free_dma)(unsigned int dmanr); | ||
227 | int (*_get_dma_residue)(unsigned int dummy); | ||
228 | unsigned long (*_dma_mem_alloc)(unsigned long size); | ||
229 | int (*_dma_setup)(char *addr, unsigned long size, int mode, int io); | ||
230 | } fd_routine[] = { | ||
231 | { | ||
232 | request_dma, | ||
233 | free_dma, | ||
234 | get_dma_residue, | ||
235 | dma_mem_alloc, | ||
236 | hard_dma_setup | ||
237 | }, | ||
238 | { | ||
239 | vdma_request_dma, | ||
240 | vdma_nop, | ||
241 | vdma_get_dma_residue, | ||
242 | vdma_mem_alloc, | ||
243 | vdma_dma_setup | ||
244 | } | ||
245 | }; | ||
246 | |||
247 | |||
248 | static int FDC1 = 0x3f0; | ||
249 | static int FDC2 = -1; | ||
250 | |||
251 | /* | ||
252 | * Floppy types are stored in the rtc's CMOS RAM and so rtc_lock | ||
253 | * is needed to prevent corrupted CMOS RAM in case "insmod floppy" | ||
254 | * coincides with another rtc CMOS user. Paul G. | ||
255 | */ | ||
256 | #define FLOPPY0_TYPE \ | ||
257 | ({ \ | ||
258 | unsigned long flags; \ | ||
259 | unsigned char val; \ | ||
260 | spin_lock_irqsave(&rtc_lock, flags); \ | ||
261 | val = (CMOS_READ(0x10) >> 4) & 15; \ | ||
262 | spin_unlock_irqrestore(&rtc_lock, flags); \ | ||
263 | val; \ | ||
264 | }) | ||
265 | |||
266 | #define FLOPPY1_TYPE \ | ||
267 | ({ \ | ||
268 | unsigned long flags; \ | ||
269 | unsigned char val; \ | ||
270 | spin_lock_irqsave(&rtc_lock, flags); \ | ||
271 | val = CMOS_READ(0x10) & 15; \ | ||
272 | spin_unlock_irqrestore(&rtc_lock, flags); \ | ||
273 | val; \ | ||
274 | }) | ||
275 | |||
276 | #define N_FDC 2 | ||
277 | #define N_DRIVE 8 | ||
278 | |||
279 | #define EXTRA_FLOPPY_PARAMS | ||
280 | |||
281 | #endif /* _ASM_X86_FLOPPY_H */ | ||
diff --git a/arch/x86/include/asm/frame.h b/arch/x86/include/asm/frame.h new file mode 100644 index 000000000000..06850a7194e1 --- /dev/null +++ b/arch/x86/include/asm/frame.h | |||
@@ -0,0 +1,27 @@ | |||
1 | #ifdef __ASSEMBLY__ | ||
2 | |||
3 | #include <asm/dwarf2.h> | ||
4 | |||
5 | /* The annotation hides the frame from the unwinder and makes it look | ||
6 | like a ordinary ebp save/restore. This avoids some special cases for | ||
7 | frame pointer later */ | ||
8 | #ifdef CONFIG_FRAME_POINTER | ||
9 | .macro FRAME | ||
10 | pushl %ebp | ||
11 | CFI_ADJUST_CFA_OFFSET 4 | ||
12 | CFI_REL_OFFSET ebp,0 | ||
13 | movl %esp,%ebp | ||
14 | .endm | ||
15 | .macro ENDFRAME | ||
16 | popl %ebp | ||
17 | CFI_ADJUST_CFA_OFFSET -4 | ||
18 | CFI_RESTORE ebp | ||
19 | .endm | ||
20 | #else | ||
21 | .macro FRAME | ||
22 | .endm | ||
23 | .macro ENDFRAME | ||
24 | .endm | ||
25 | #endif | ||
26 | |||
27 | #endif /* __ASSEMBLY__ */ | ||
diff --git a/arch/x86/include/asm/ftrace.h b/arch/x86/include/asm/ftrace.h new file mode 100644 index 000000000000..47f7e65e6c1d --- /dev/null +++ b/arch/x86/include/asm/ftrace.h | |||
@@ -0,0 +1,24 @@ | |||
1 | #ifndef _ASM_X86_FTRACE_H | ||
2 | #define _ASM_X86_FTRACE_H | ||
3 | |||
4 | #ifdef CONFIG_FTRACE | ||
5 | #define MCOUNT_ADDR ((long)(mcount)) | ||
6 | #define MCOUNT_INSN_SIZE 5 /* sizeof mcount call */ | ||
7 | |||
8 | #ifndef __ASSEMBLY__ | ||
9 | extern void mcount(void); | ||
10 | |||
11 | static inline unsigned long ftrace_call_adjust(unsigned long addr) | ||
12 | { | ||
13 | /* | ||
14 | * call mcount is "e8 <4 byte offset>" | ||
15 | * The addr points to the 4 byte offset and the caller of this | ||
16 | * function wants the pointer to e8. Simply subtract one. | ||
17 | */ | ||
18 | return addr - 1; | ||
19 | } | ||
20 | #endif | ||
21 | |||
22 | #endif /* CONFIG_FTRACE */ | ||
23 | |||
24 | #endif /* _ASM_X86_FTRACE_H */ | ||
diff --git a/arch/x86/include/asm/futex.h b/arch/x86/include/asm/futex.h new file mode 100644 index 000000000000..1f11ce44e956 --- /dev/null +++ b/arch/x86/include/asm/futex.h | |||
@@ -0,0 +1,140 @@ | |||
1 | #ifndef _ASM_X86_FUTEX_H | ||
2 | #define _ASM_X86_FUTEX_H | ||
3 | |||
4 | #ifdef __KERNEL__ | ||
5 | |||
6 | #include <linux/futex.h> | ||
7 | #include <linux/uaccess.h> | ||
8 | |||
9 | #include <asm/asm.h> | ||
10 | #include <asm/errno.h> | ||
11 | #include <asm/processor.h> | ||
12 | #include <asm/system.h> | ||
13 | |||
14 | #define __futex_atomic_op1(insn, ret, oldval, uaddr, oparg) \ | ||
15 | asm volatile("1:\t" insn "\n" \ | ||
16 | "2:\t.section .fixup,\"ax\"\n" \ | ||
17 | "3:\tmov\t%3, %1\n" \ | ||
18 | "\tjmp\t2b\n" \ | ||
19 | "\t.previous\n" \ | ||
20 | _ASM_EXTABLE(1b, 3b) \ | ||
21 | : "=r" (oldval), "=r" (ret), "+m" (*uaddr) \ | ||
22 | : "i" (-EFAULT), "0" (oparg), "1" (0)) | ||
23 | |||
24 | #define __futex_atomic_op2(insn, ret, oldval, uaddr, oparg) \ | ||
25 | asm volatile("1:\tmovl %2, %0\n" \ | ||
26 | "\tmovl\t%0, %3\n" \ | ||
27 | "\t" insn "\n" \ | ||
28 | "2:\t" LOCK_PREFIX "cmpxchgl %3, %2\n" \ | ||
29 | "\tjnz\t1b\n" \ | ||
30 | "3:\t.section .fixup,\"ax\"\n" \ | ||
31 | "4:\tmov\t%5, %1\n" \ | ||
32 | "\tjmp\t3b\n" \ | ||
33 | "\t.previous\n" \ | ||
34 | _ASM_EXTABLE(1b, 4b) \ | ||
35 | _ASM_EXTABLE(2b, 4b) \ | ||
36 | : "=&a" (oldval), "=&r" (ret), \ | ||
37 | "+m" (*uaddr), "=&r" (tem) \ | ||
38 | : "r" (oparg), "i" (-EFAULT), "1" (0)) | ||
39 | |||
40 | static inline int futex_atomic_op_inuser(int encoded_op, int __user *uaddr) | ||
41 | { | ||
42 | int op = (encoded_op >> 28) & 7; | ||
43 | int cmp = (encoded_op >> 24) & 15; | ||
44 | int oparg = (encoded_op << 8) >> 20; | ||
45 | int cmparg = (encoded_op << 20) >> 20; | ||
46 | int oldval = 0, ret, tem; | ||
47 | |||
48 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) | ||
49 | oparg = 1 << oparg; | ||
50 | |||
51 | if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int))) | ||
52 | return -EFAULT; | ||
53 | |||
54 | #if defined(CONFIG_X86_32) && !defined(CONFIG_X86_BSWAP) | ||
55 | /* Real i386 machines can only support FUTEX_OP_SET */ | ||
56 | if (op != FUTEX_OP_SET && boot_cpu_data.x86 == 3) | ||
57 | return -ENOSYS; | ||
58 | #endif | ||
59 | |||
60 | pagefault_disable(); | ||
61 | |||
62 | switch (op) { | ||
63 | case FUTEX_OP_SET: | ||
64 | __futex_atomic_op1("xchgl %0, %2", ret, oldval, uaddr, oparg); | ||
65 | break; | ||
66 | case FUTEX_OP_ADD: | ||
67 | __futex_atomic_op1(LOCK_PREFIX "xaddl %0, %2", ret, oldval, | ||
68 | uaddr, oparg); | ||
69 | break; | ||
70 | case FUTEX_OP_OR: | ||
71 | __futex_atomic_op2("orl %4, %3", ret, oldval, uaddr, oparg); | ||
72 | break; | ||
73 | case FUTEX_OP_ANDN: | ||
74 | __futex_atomic_op2("andl %4, %3", ret, oldval, uaddr, ~oparg); | ||
75 | break; | ||
76 | case FUTEX_OP_XOR: | ||
77 | __futex_atomic_op2("xorl %4, %3", ret, oldval, uaddr, oparg); | ||
78 | break; | ||
79 | default: | ||
80 | ret = -ENOSYS; | ||
81 | } | ||
82 | |||
83 | pagefault_enable(); | ||
84 | |||
85 | if (!ret) { | ||
86 | switch (cmp) { | ||
87 | case FUTEX_OP_CMP_EQ: | ||
88 | ret = (oldval == cmparg); | ||
89 | break; | ||
90 | case FUTEX_OP_CMP_NE: | ||
91 | ret = (oldval != cmparg); | ||
92 | break; | ||
93 | case FUTEX_OP_CMP_LT: | ||
94 | ret = (oldval < cmparg); | ||
95 | break; | ||
96 | case FUTEX_OP_CMP_GE: | ||
97 | ret = (oldval >= cmparg); | ||
98 | break; | ||
99 | case FUTEX_OP_CMP_LE: | ||
100 | ret = (oldval <= cmparg); | ||
101 | break; | ||
102 | case FUTEX_OP_CMP_GT: | ||
103 | ret = (oldval > cmparg); | ||
104 | break; | ||
105 | default: | ||
106 | ret = -ENOSYS; | ||
107 | } | ||
108 | } | ||
109 | return ret; | ||
110 | } | ||
111 | |||
112 | static inline int futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, | ||
113 | int newval) | ||
114 | { | ||
115 | |||
116 | #if defined(CONFIG_X86_32) && !defined(CONFIG_X86_BSWAP) | ||
117 | /* Real i386 machines have no cmpxchg instruction */ | ||
118 | if (boot_cpu_data.x86 == 3) | ||
119 | return -ENOSYS; | ||
120 | #endif | ||
121 | |||
122 | if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int))) | ||
123 | return -EFAULT; | ||
124 | |||
125 | asm volatile("1:\t" LOCK_PREFIX "cmpxchgl %3, %1\n" | ||
126 | "2:\t.section .fixup, \"ax\"\n" | ||
127 | "3:\tmov %2, %0\n" | ||
128 | "\tjmp 2b\n" | ||
129 | "\t.previous\n" | ||
130 | _ASM_EXTABLE(1b, 3b) | ||
131 | : "=a" (oldval), "+m" (*uaddr) | ||
132 | : "i" (-EFAULT), "r" (newval), "0" (oldval) | ||
133 | : "memory" | ||
134 | ); | ||
135 | |||
136 | return oldval; | ||
137 | } | ||
138 | |||
139 | #endif | ||
140 | #endif /* _ASM_X86_FUTEX_H */ | ||
diff --git a/arch/x86/include/asm/gart.h b/arch/x86/include/asm/gart.h new file mode 100644 index 000000000000..74252264433d --- /dev/null +++ b/arch/x86/include/asm/gart.h | |||
@@ -0,0 +1,73 @@ | |||
1 | #ifndef _ASM_X86_GART_H | ||
2 | #define _ASM_X86_GART_H | ||
3 | |||
4 | #include <asm/e820.h> | ||
5 | |||
6 | extern void set_up_gart_resume(u32, u32); | ||
7 | |||
8 | extern int fallback_aper_order; | ||
9 | extern int fallback_aper_force; | ||
10 | extern int fix_aperture; | ||
11 | |||
12 | /* PTE bits. */ | ||
13 | #define GPTE_VALID 1 | ||
14 | #define GPTE_COHERENT 2 | ||
15 | |||
16 | /* Aperture control register bits. */ | ||
17 | #define GARTEN (1<<0) | ||
18 | #define DISGARTCPU (1<<4) | ||
19 | #define DISGARTIO (1<<5) | ||
20 | |||
21 | /* GART cache control register bits. */ | ||
22 | #define INVGART (1<<0) | ||
23 | #define GARTPTEERR (1<<1) | ||
24 | |||
25 | /* K8 On-cpu GART registers */ | ||
26 | #define AMD64_GARTAPERTURECTL 0x90 | ||
27 | #define AMD64_GARTAPERTUREBASE 0x94 | ||
28 | #define AMD64_GARTTABLEBASE 0x98 | ||
29 | #define AMD64_GARTCACHECTL 0x9c | ||
30 | #define AMD64_GARTEN (1<<0) | ||
31 | |||
32 | extern int agp_amd64_init(void); | ||
33 | |||
34 | static inline void enable_gart_translation(struct pci_dev *dev, u64 addr) | ||
35 | { | ||
36 | u32 tmp, ctl; | ||
37 | |||
38 | /* address of the mappings table */ | ||
39 | addr >>= 12; | ||
40 | tmp = (u32) addr<<4; | ||
41 | tmp &= ~0xf; | ||
42 | pci_write_config_dword(dev, AMD64_GARTTABLEBASE, tmp); | ||
43 | |||
44 | /* Enable GART translation for this hammer. */ | ||
45 | pci_read_config_dword(dev, AMD64_GARTAPERTURECTL, &ctl); | ||
46 | ctl |= GARTEN; | ||
47 | ctl &= ~(DISGARTCPU | DISGARTIO); | ||
48 | pci_write_config_dword(dev, AMD64_GARTAPERTURECTL, ctl); | ||
49 | } | ||
50 | |||
51 | static inline int aperture_valid(u64 aper_base, u32 aper_size, u32 min_size) | ||
52 | { | ||
53 | if (!aper_base) | ||
54 | return 0; | ||
55 | |||
56 | if (aper_base + aper_size > 0x100000000ULL) { | ||
57 | printk(KERN_INFO "Aperture beyond 4GB. Ignoring.\n"); | ||
58 | return 0; | ||
59 | } | ||
60 | if (e820_any_mapped(aper_base, aper_base + aper_size, E820_RAM)) { | ||
61 | printk(KERN_INFO "Aperture pointing to e820 RAM. Ignoring.\n"); | ||
62 | return 0; | ||
63 | } | ||
64 | if (aper_size < min_size) { | ||
65 | printk(KERN_INFO "Aperture too small (%d MB) than (%d MB)\n", | ||
66 | aper_size>>20, min_size>>20); | ||
67 | return 0; | ||
68 | } | ||
69 | |||
70 | return 1; | ||
71 | } | ||
72 | |||
73 | #endif /* _ASM_X86_GART_H */ | ||
diff --git a/arch/x86/include/asm/genapic.h b/arch/x86/include/asm/genapic.h new file mode 100644 index 000000000000..d48bee663a6f --- /dev/null +++ b/arch/x86/include/asm/genapic.h | |||
@@ -0,0 +1,5 @@ | |||
1 | #ifdef CONFIG_X86_32 | ||
2 | # include "genapic_32.h" | ||
3 | #else | ||
4 | # include "genapic_64.h" | ||
5 | #endif | ||
diff --git a/arch/x86/include/asm/genapic_32.h b/arch/x86/include/asm/genapic_32.h new file mode 100644 index 000000000000..5cbd4fcc06fd --- /dev/null +++ b/arch/x86/include/asm/genapic_32.h | |||
@@ -0,0 +1,126 @@ | |||
1 | #ifndef _ASM_X86_GENAPIC_32_H | ||
2 | #define _ASM_X86_GENAPIC_32_H | ||
3 | |||
4 | #include <asm/mpspec.h> | ||
5 | |||
6 | /* | ||
7 | * Generic APIC driver interface. | ||
8 | * | ||
9 | * An straight forward mapping of the APIC related parts of the | ||
10 | * x86 subarchitecture interface to a dynamic object. | ||
11 | * | ||
12 | * This is used by the "generic" x86 subarchitecture. | ||
13 | * | ||
14 | * Copyright 2003 Andi Kleen, SuSE Labs. | ||
15 | */ | ||
16 | |||
17 | struct mpc_config_bus; | ||
18 | struct mp_config_table; | ||
19 | struct mpc_config_processor; | ||
20 | |||
21 | struct genapic { | ||
22 | char *name; | ||
23 | int (*probe)(void); | ||
24 | |||
25 | int (*apic_id_registered)(void); | ||
26 | cpumask_t (*target_cpus)(void); | ||
27 | int int_delivery_mode; | ||
28 | int int_dest_mode; | ||
29 | int ESR_DISABLE; | ||
30 | int apic_destination_logical; | ||
31 | unsigned long (*check_apicid_used)(physid_mask_t bitmap, int apicid); | ||
32 | unsigned long (*check_apicid_present)(int apicid); | ||
33 | int no_balance_irq; | ||
34 | int no_ioapic_check; | ||
35 | void (*init_apic_ldr)(void); | ||
36 | physid_mask_t (*ioapic_phys_id_map)(physid_mask_t map); | ||
37 | |||
38 | void (*setup_apic_routing)(void); | ||
39 | int (*multi_timer_check)(int apic, int irq); | ||
40 | int (*apicid_to_node)(int logical_apicid); | ||
41 | int (*cpu_to_logical_apicid)(int cpu); | ||
42 | int (*cpu_present_to_apicid)(int mps_cpu); | ||
43 | physid_mask_t (*apicid_to_cpu_present)(int phys_apicid); | ||
44 | void (*setup_portio_remap)(void); | ||
45 | int (*check_phys_apicid_present)(int boot_cpu_physical_apicid); | ||
46 | void (*enable_apic_mode)(void); | ||
47 | u32 (*phys_pkg_id)(u32 cpuid_apic, int index_msb); | ||
48 | |||
49 | /* mpparse */ | ||
50 | /* When one of the next two hooks returns 1 the genapic | ||
51 | is switched to this. Essentially they are additional probe | ||
52 | functions. */ | ||
53 | int (*mps_oem_check)(struct mp_config_table *mpc, char *oem, | ||
54 | char *productid); | ||
55 | int (*acpi_madt_oem_check)(char *oem_id, char *oem_table_id); | ||
56 | |||
57 | unsigned (*get_apic_id)(unsigned long x); | ||
58 | unsigned long apic_id_mask; | ||
59 | unsigned int (*cpu_mask_to_apicid)(cpumask_t cpumask); | ||
60 | cpumask_t (*vector_allocation_domain)(int cpu); | ||
61 | |||
62 | #ifdef CONFIG_SMP | ||
63 | /* ipi */ | ||
64 | void (*send_IPI_mask)(cpumask_t mask, int vector); | ||
65 | void (*send_IPI_allbutself)(int vector); | ||
66 | void (*send_IPI_all)(int vector); | ||
67 | #endif | ||
68 | }; | ||
69 | |||
70 | #define APICFUNC(x) .x = x, | ||
71 | |||
72 | /* More functions could be probably marked IPIFUNC and save some space | ||
73 | in UP GENERICARCH kernels, but I don't have the nerve right now | ||
74 | to untangle this mess. -AK */ | ||
75 | #ifdef CONFIG_SMP | ||
76 | #define IPIFUNC(x) APICFUNC(x) | ||
77 | #else | ||
78 | #define IPIFUNC(x) | ||
79 | #endif | ||
80 | |||
81 | #define APIC_INIT(aname, aprobe) \ | ||
82 | { \ | ||
83 | .name = aname, \ | ||
84 | .probe = aprobe, \ | ||
85 | .int_delivery_mode = INT_DELIVERY_MODE, \ | ||
86 | .int_dest_mode = INT_DEST_MODE, \ | ||
87 | .no_balance_irq = NO_BALANCE_IRQ, \ | ||
88 | .ESR_DISABLE = esr_disable, \ | ||
89 | .apic_destination_logical = APIC_DEST_LOGICAL, \ | ||
90 | APICFUNC(apic_id_registered) \ | ||
91 | APICFUNC(target_cpus) \ | ||
92 | APICFUNC(check_apicid_used) \ | ||
93 | APICFUNC(check_apicid_present) \ | ||
94 | APICFUNC(init_apic_ldr) \ | ||
95 | APICFUNC(ioapic_phys_id_map) \ | ||
96 | APICFUNC(setup_apic_routing) \ | ||
97 | APICFUNC(multi_timer_check) \ | ||
98 | APICFUNC(apicid_to_node) \ | ||
99 | APICFUNC(cpu_to_logical_apicid) \ | ||
100 | APICFUNC(cpu_present_to_apicid) \ | ||
101 | APICFUNC(apicid_to_cpu_present) \ | ||
102 | APICFUNC(setup_portio_remap) \ | ||
103 | APICFUNC(check_phys_apicid_present) \ | ||
104 | APICFUNC(mps_oem_check) \ | ||
105 | APICFUNC(get_apic_id) \ | ||
106 | .apic_id_mask = APIC_ID_MASK, \ | ||
107 | APICFUNC(cpu_mask_to_apicid) \ | ||
108 | APICFUNC(vector_allocation_domain) \ | ||
109 | APICFUNC(acpi_madt_oem_check) \ | ||
110 | IPIFUNC(send_IPI_mask) \ | ||
111 | IPIFUNC(send_IPI_allbutself) \ | ||
112 | IPIFUNC(send_IPI_all) \ | ||
113 | APICFUNC(enable_apic_mode) \ | ||
114 | APICFUNC(phys_pkg_id) \ | ||
115 | } | ||
116 | |||
117 | extern struct genapic *genapic; | ||
118 | |||
119 | enum uv_system_type {UV_NONE, UV_LEGACY_APIC, UV_X2APIC, UV_NON_UNIQUE_APIC}; | ||
120 | #define get_uv_system_type() UV_NONE | ||
121 | #define is_uv_system() 0 | ||
122 | #define uv_wakeup_secondary(a, b) 1 | ||
123 | #define uv_system_init() do {} while (0) | ||
124 | |||
125 | |||
126 | #endif /* _ASM_X86_GENAPIC_32_H */ | ||
diff --git a/arch/x86/include/asm/genapic_64.h b/arch/x86/include/asm/genapic_64.h new file mode 100644 index 000000000000..13c4e96199ea --- /dev/null +++ b/arch/x86/include/asm/genapic_64.h | |||
@@ -0,0 +1,58 @@ | |||
1 | #ifndef _ASM_X86_GENAPIC_64_H | ||
2 | #define _ASM_X86_GENAPIC_64_H | ||
3 | |||
4 | /* | ||
5 | * Copyright 2004 James Cleverdon, IBM. | ||
6 | * Subject to the GNU Public License, v.2 | ||
7 | * | ||
8 | * Generic APIC sub-arch data struct. | ||
9 | * | ||
10 | * Hacked for x86-64 by James Cleverdon from i386 architecture code by | ||
11 | * Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and | ||
12 | * James Cleverdon. | ||
13 | */ | ||
14 | |||
15 | struct genapic { | ||
16 | char *name; | ||
17 | int (*acpi_madt_oem_check)(char *oem_id, char *oem_table_id); | ||
18 | u32 int_delivery_mode; | ||
19 | u32 int_dest_mode; | ||
20 | int (*apic_id_registered)(void); | ||
21 | cpumask_t (*target_cpus)(void); | ||
22 | cpumask_t (*vector_allocation_domain)(int cpu); | ||
23 | void (*init_apic_ldr)(void); | ||
24 | /* ipi */ | ||
25 | void (*send_IPI_mask)(cpumask_t mask, int vector); | ||
26 | void (*send_IPI_allbutself)(int vector); | ||
27 | void (*send_IPI_all)(int vector); | ||
28 | void (*send_IPI_self)(int vector); | ||
29 | /* */ | ||
30 | unsigned int (*cpu_mask_to_apicid)(cpumask_t cpumask); | ||
31 | unsigned int (*phys_pkg_id)(int index_msb); | ||
32 | unsigned int (*get_apic_id)(unsigned long x); | ||
33 | unsigned long (*set_apic_id)(unsigned int id); | ||
34 | unsigned long apic_id_mask; | ||
35 | }; | ||
36 | |||
37 | extern struct genapic *genapic; | ||
38 | |||
39 | extern struct genapic apic_flat; | ||
40 | extern struct genapic apic_physflat; | ||
41 | extern struct genapic apic_x2apic_cluster; | ||
42 | extern struct genapic apic_x2apic_phys; | ||
43 | extern int acpi_madt_oem_check(char *, char *); | ||
44 | |||
45 | extern void apic_send_IPI_self(int vector); | ||
46 | enum uv_system_type {UV_NONE, UV_LEGACY_APIC, UV_X2APIC, UV_NON_UNIQUE_APIC}; | ||
47 | extern enum uv_system_type get_uv_system_type(void); | ||
48 | extern int is_uv_system(void); | ||
49 | |||
50 | extern struct genapic apic_x2apic_uv_x; | ||
51 | DECLARE_PER_CPU(int, x2apic_extra_bits); | ||
52 | extern void uv_cpu_init(void); | ||
53 | extern void uv_system_init(void); | ||
54 | extern int uv_wakeup_secondary(int phys_apicid, unsigned int start_rip); | ||
55 | |||
56 | extern void setup_apic_routing(void); | ||
57 | |||
58 | #endif /* _ASM_X86_GENAPIC_64_H */ | ||
diff --git a/arch/x86/include/asm/geode.h b/arch/x86/include/asm/geode.h new file mode 100644 index 000000000000..ad3c2ed75481 --- /dev/null +++ b/arch/x86/include/asm/geode.h | |||
@@ -0,0 +1,253 @@ | |||
1 | /* | ||
2 | * AMD Geode definitions | ||
3 | * Copyright (C) 2006, Advanced Micro Devices, Inc. | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or | ||
6 | * modify it under the terms of version 2 of the GNU General Public License | ||
7 | * as published by the Free Software Foundation. | ||
8 | */ | ||
9 | |||
10 | #ifndef _ASM_X86_GEODE_H | ||
11 | #define _ASM_X86_GEODE_H | ||
12 | |||
13 | #include <asm/processor.h> | ||
14 | #include <linux/io.h> | ||
15 | |||
16 | /* Generic southbridge functions */ | ||
17 | |||
18 | #define GEODE_DEV_PMS 0 | ||
19 | #define GEODE_DEV_ACPI 1 | ||
20 | #define GEODE_DEV_GPIO 2 | ||
21 | #define GEODE_DEV_MFGPT 3 | ||
22 | |||
23 | extern int geode_get_dev_base(unsigned int dev); | ||
24 | |||
25 | /* Useful macros */ | ||
26 | #define geode_pms_base() geode_get_dev_base(GEODE_DEV_PMS) | ||
27 | #define geode_acpi_base() geode_get_dev_base(GEODE_DEV_ACPI) | ||
28 | #define geode_gpio_base() geode_get_dev_base(GEODE_DEV_GPIO) | ||
29 | #define geode_mfgpt_base() geode_get_dev_base(GEODE_DEV_MFGPT) | ||
30 | |||
31 | /* MSRS */ | ||
32 | |||
33 | #define MSR_GLIU_P2D_RO0 0x10000029 | ||
34 | |||
35 | #define MSR_LX_GLD_MSR_CONFIG 0x48002001 | ||
36 | #define MSR_LX_MSR_PADSEL 0x48002011 /* NOT 0x48000011; the data | ||
37 | * sheet has the wrong value */ | ||
38 | #define MSR_GLCP_SYS_RSTPLL 0x4C000014 | ||
39 | #define MSR_GLCP_DOTPLL 0x4C000015 | ||
40 | |||
41 | #define MSR_LBAR_SMB 0x5140000B | ||
42 | #define MSR_LBAR_GPIO 0x5140000C | ||
43 | #define MSR_LBAR_MFGPT 0x5140000D | ||
44 | #define MSR_LBAR_ACPI 0x5140000E | ||
45 | #define MSR_LBAR_PMS 0x5140000F | ||
46 | |||
47 | #define MSR_DIVIL_SOFT_RESET 0x51400017 | ||
48 | |||
49 | #define MSR_PIC_YSEL_LOW 0x51400020 | ||
50 | #define MSR_PIC_YSEL_HIGH 0x51400021 | ||
51 | #define MSR_PIC_ZSEL_LOW 0x51400022 | ||
52 | #define MSR_PIC_ZSEL_HIGH 0x51400023 | ||
53 | #define MSR_PIC_IRQM_LPC 0x51400025 | ||
54 | |||
55 | #define MSR_MFGPT_IRQ 0x51400028 | ||
56 | #define MSR_MFGPT_NR 0x51400029 | ||
57 | #define MSR_MFGPT_SETUP 0x5140002B | ||
58 | |||
59 | #define MSR_LX_SPARE_MSR 0x80000011 /* DC-specific */ | ||
60 | |||
61 | #define MSR_GX_GLD_MSR_CONFIG 0xC0002001 | ||
62 | #define MSR_GX_MSR_PADSEL 0xC0002011 | ||
63 | |||
64 | /* Resource Sizes */ | ||
65 | |||
66 | #define LBAR_GPIO_SIZE 0xFF | ||
67 | #define LBAR_MFGPT_SIZE 0x40 | ||
68 | #define LBAR_ACPI_SIZE 0x40 | ||
69 | #define LBAR_PMS_SIZE 0x80 | ||
70 | |||
71 | /* ACPI registers (PMS block) */ | ||
72 | |||
73 | /* | ||
74 | * PM1_EN is only valid when VSA is enabled for 16 bit reads. | ||
75 | * When VSA is not enabled, *always* read both PM1_STS and PM1_EN | ||
76 | * with a 32 bit read at offset 0x0 | ||
77 | */ | ||
78 | |||
79 | #define PM1_STS 0x00 | ||
80 | #define PM1_EN 0x02 | ||
81 | #define PM1_CNT 0x08 | ||
82 | #define PM2_CNT 0x0C | ||
83 | #define PM_TMR 0x10 | ||
84 | #define PM_GPE0_STS 0x18 | ||
85 | #define PM_GPE0_EN 0x1C | ||
86 | |||
87 | /* PMC registers (PMS block) */ | ||
88 | |||
89 | #define PM_SSD 0x00 | ||
90 | #define PM_SCXA 0x04 | ||
91 | #define PM_SCYA 0x08 | ||
92 | #define PM_OUT_SLPCTL 0x0C | ||
93 | #define PM_SCLK 0x10 | ||
94 | #define PM_SED 0x1 | ||
95 | #define PM_SCXD 0x18 | ||
96 | #define PM_SCYD 0x1C | ||
97 | #define PM_IN_SLPCTL 0x20 | ||
98 | #define PM_WKD 0x30 | ||
99 | #define PM_WKXD 0x34 | ||
100 | #define PM_RD 0x38 | ||
101 | #define PM_WKXA 0x3C | ||
102 | #define PM_FSD 0x40 | ||
103 | #define PM_TSD 0x44 | ||
104 | #define PM_PSD 0x48 | ||
105 | #define PM_NWKD 0x4C | ||
106 | #define PM_AWKD 0x50 | ||
107 | #define PM_SSC 0x54 | ||
108 | |||
109 | /* VSA2 magic values */ | ||
110 | |||
111 | #define VSA_VRC_INDEX 0xAC1C | ||
112 | #define VSA_VRC_DATA 0xAC1E | ||
113 | #define VSA_VR_UNLOCK 0xFC53 /* unlock virtual register */ | ||
114 | #define VSA_VR_SIGNATURE 0x0003 | ||
115 | #define VSA_VR_MEM_SIZE 0x0200 | ||
116 | #define AMD_VSA_SIG 0x4132 /* signature is ascii 'VSA2' */ | ||
117 | #define GSW_VSA_SIG 0x534d /* General Software signature */ | ||
118 | /* GPIO */ | ||
119 | |||
120 | #define GPIO_OUTPUT_VAL 0x00 | ||
121 | #define GPIO_OUTPUT_ENABLE 0x04 | ||
122 | #define GPIO_OUTPUT_OPEN_DRAIN 0x08 | ||
123 | #define GPIO_OUTPUT_INVERT 0x0C | ||
124 | #define GPIO_OUTPUT_AUX1 0x10 | ||
125 | #define GPIO_OUTPUT_AUX2 0x14 | ||
126 | #define GPIO_PULL_UP 0x18 | ||
127 | #define GPIO_PULL_DOWN 0x1C | ||
128 | #define GPIO_INPUT_ENABLE 0x20 | ||
129 | #define GPIO_INPUT_INVERT 0x24 | ||
130 | #define GPIO_INPUT_FILTER 0x28 | ||
131 | #define GPIO_INPUT_EVENT_COUNT 0x2C | ||
132 | #define GPIO_READ_BACK 0x30 | ||
133 | #define GPIO_INPUT_AUX1 0x34 | ||
134 | #define GPIO_EVENTS_ENABLE 0x38 | ||
135 | #define GPIO_LOCK_ENABLE 0x3C | ||
136 | #define GPIO_POSITIVE_EDGE_EN 0x40 | ||
137 | #define GPIO_NEGATIVE_EDGE_EN 0x44 | ||
138 | #define GPIO_POSITIVE_EDGE_STS 0x48 | ||
139 | #define GPIO_NEGATIVE_EDGE_STS 0x4C | ||
140 | |||
141 | #define GPIO_MAP_X 0xE0 | ||
142 | #define GPIO_MAP_Y 0xE4 | ||
143 | #define GPIO_MAP_Z 0xE8 | ||
144 | #define GPIO_MAP_W 0xEC | ||
145 | |||
146 | static inline u32 geode_gpio(unsigned int nr) | ||
147 | { | ||
148 | BUG_ON(nr > 28); | ||
149 | return 1 << nr; | ||
150 | } | ||
151 | |||
152 | extern void geode_gpio_set(u32, unsigned int); | ||
153 | extern void geode_gpio_clear(u32, unsigned int); | ||
154 | extern int geode_gpio_isset(u32, unsigned int); | ||
155 | extern void geode_gpio_setup_event(unsigned int, int, int); | ||
156 | extern void geode_gpio_set_irq(unsigned int, unsigned int); | ||
157 | |||
158 | static inline void geode_gpio_event_irq(unsigned int gpio, int pair) | ||
159 | { | ||
160 | geode_gpio_setup_event(gpio, pair, 0); | ||
161 | } | ||
162 | |||
163 | static inline void geode_gpio_event_pme(unsigned int gpio, int pair) | ||
164 | { | ||
165 | geode_gpio_setup_event(gpio, pair, 1); | ||
166 | } | ||
167 | |||
168 | /* Specific geode tests */ | ||
169 | |||
170 | static inline int is_geode_gx(void) | ||
171 | { | ||
172 | return ((boot_cpu_data.x86_vendor == X86_VENDOR_NSC) && | ||
173 | (boot_cpu_data.x86 == 5) && | ||
174 | (boot_cpu_data.x86_model == 5)); | ||
175 | } | ||
176 | |||
177 | static inline int is_geode_lx(void) | ||
178 | { | ||
179 | return ((boot_cpu_data.x86_vendor == X86_VENDOR_AMD) && | ||
180 | (boot_cpu_data.x86 == 5) && | ||
181 | (boot_cpu_data.x86_model == 10)); | ||
182 | } | ||
183 | |||
184 | static inline int is_geode(void) | ||
185 | { | ||
186 | return (is_geode_gx() || is_geode_lx()); | ||
187 | } | ||
188 | |||
189 | #ifdef CONFIG_MGEODE_LX | ||
190 | extern int geode_has_vsa2(void); | ||
191 | #else | ||
192 | static inline int geode_has_vsa2(void) | ||
193 | { | ||
194 | return 0; | ||
195 | } | ||
196 | #endif | ||
197 | |||
198 | /* MFGPTs */ | ||
199 | |||
200 | #define MFGPT_MAX_TIMERS 8 | ||
201 | #define MFGPT_TIMER_ANY (-1) | ||
202 | |||
203 | #define MFGPT_DOMAIN_WORKING 1 | ||
204 | #define MFGPT_DOMAIN_STANDBY 2 | ||
205 | #define MFGPT_DOMAIN_ANY (MFGPT_DOMAIN_WORKING | MFGPT_DOMAIN_STANDBY) | ||
206 | |||
207 | #define MFGPT_CMP1 0 | ||
208 | #define MFGPT_CMP2 1 | ||
209 | |||
210 | #define MFGPT_EVENT_IRQ 0 | ||
211 | #define MFGPT_EVENT_NMI 1 | ||
212 | #define MFGPT_EVENT_RESET 3 | ||
213 | |||
214 | #define MFGPT_REG_CMP1 0 | ||
215 | #define MFGPT_REG_CMP2 2 | ||
216 | #define MFGPT_REG_COUNTER 4 | ||
217 | #define MFGPT_REG_SETUP 6 | ||
218 | |||
219 | #define MFGPT_SETUP_CNTEN (1 << 15) | ||
220 | #define MFGPT_SETUP_CMP2 (1 << 14) | ||
221 | #define MFGPT_SETUP_CMP1 (1 << 13) | ||
222 | #define MFGPT_SETUP_SETUP (1 << 12) | ||
223 | #define MFGPT_SETUP_STOPEN (1 << 11) | ||
224 | #define MFGPT_SETUP_EXTEN (1 << 10) | ||
225 | #define MFGPT_SETUP_REVEN (1 << 5) | ||
226 | #define MFGPT_SETUP_CLKSEL (1 << 4) | ||
227 | |||
228 | static inline void geode_mfgpt_write(int timer, u16 reg, u16 value) | ||
229 | { | ||
230 | u32 base = geode_get_dev_base(GEODE_DEV_MFGPT); | ||
231 | outw(value, base + reg + (timer * 8)); | ||
232 | } | ||
233 | |||
234 | static inline u16 geode_mfgpt_read(int timer, u16 reg) | ||
235 | { | ||
236 | u32 base = geode_get_dev_base(GEODE_DEV_MFGPT); | ||
237 | return inw(base + reg + (timer * 8)); | ||
238 | } | ||
239 | |||
240 | extern int geode_mfgpt_toggle_event(int timer, int cmp, int event, int enable); | ||
241 | extern int geode_mfgpt_set_irq(int timer, int cmp, int *irq, int enable); | ||
242 | extern int geode_mfgpt_alloc_timer(int timer, int domain); | ||
243 | |||
244 | #define geode_mfgpt_setup_irq(t, c, i) geode_mfgpt_set_irq((t), (c), (i), 1) | ||
245 | #define geode_mfgpt_release_irq(t, c, i) geode_mfgpt_set_irq((t), (c), (i), 0) | ||
246 | |||
247 | #ifdef CONFIG_GEODE_MFGPT_TIMER | ||
248 | extern int __init mfgpt_timer_setup(void); | ||
249 | #else | ||
250 | static inline int mfgpt_timer_setup(void) { return 0; } | ||
251 | #endif | ||
252 | |||
253 | #endif /* _ASM_X86_GEODE_H */ | ||
diff --git a/arch/x86/include/asm/gpio.h b/arch/x86/include/asm/gpio.h new file mode 100644 index 000000000000..49dbfdfa50f9 --- /dev/null +++ b/arch/x86/include/asm/gpio.h | |||
@@ -0,0 +1,56 @@ | |||
1 | /* | ||
2 | * Generic GPIO API implementation for x86. | ||
3 | * | ||
4 | * Derived from the generic GPIO API for powerpc: | ||
5 | * | ||
6 | * Copyright (c) 2007-2008 MontaVista Software, Inc. | ||
7 | * | ||
8 | * Author: Anton Vorontsov <avorontsov@ru.mvista.com> | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify | ||
11 | * it under the terms of the GNU General Public License as published by | ||
12 | * the Free Software Foundation; either version 2 of the License, or | ||
13 | * (at your option) any later version. | ||
14 | */ | ||
15 | |||
16 | #ifndef _ASM_X86_GPIO_H | ||
17 | #define _ASM_X86_GPIO_H | ||
18 | |||
19 | #include <asm-generic/gpio.h> | ||
20 | |||
21 | #ifdef CONFIG_GPIOLIB | ||
22 | |||
23 | /* | ||
24 | * Just call gpiolib. | ||
25 | */ | ||
26 | static inline int gpio_get_value(unsigned int gpio) | ||
27 | { | ||
28 | return __gpio_get_value(gpio); | ||
29 | } | ||
30 | |||
31 | static inline void gpio_set_value(unsigned int gpio, int value) | ||
32 | { | ||
33 | __gpio_set_value(gpio, value); | ||
34 | } | ||
35 | |||
36 | static inline int gpio_cansleep(unsigned int gpio) | ||
37 | { | ||
38 | return __gpio_cansleep(gpio); | ||
39 | } | ||
40 | |||
41 | /* | ||
42 | * Not implemented, yet. | ||
43 | */ | ||
44 | static inline int gpio_to_irq(unsigned int gpio) | ||
45 | { | ||
46 | return -ENOSYS; | ||
47 | } | ||
48 | |||
49 | static inline int irq_to_gpio(unsigned int irq) | ||
50 | { | ||
51 | return -EINVAL; | ||
52 | } | ||
53 | |||
54 | #endif /* CONFIG_GPIOLIB */ | ||
55 | |||
56 | #endif /* _ASM_X86_GPIO_H */ | ||
diff --git a/arch/x86/include/asm/hardirq.h b/arch/x86/include/asm/hardirq.h new file mode 100644 index 000000000000..000787df66e6 --- /dev/null +++ b/arch/x86/include/asm/hardirq.h | |||
@@ -0,0 +1,11 @@ | |||
1 | #ifdef CONFIG_X86_32 | ||
2 | # include "hardirq_32.h" | ||
3 | #else | ||
4 | # include "hardirq_64.h" | ||
5 | #endif | ||
6 | |||
7 | extern u64 arch_irq_stat_cpu(unsigned int cpu); | ||
8 | #define arch_irq_stat_cpu arch_irq_stat_cpu | ||
9 | |||
10 | extern u64 arch_irq_stat(void); | ||
11 | #define arch_irq_stat arch_irq_stat | ||
diff --git a/arch/x86/include/asm/hardirq_32.h b/arch/x86/include/asm/hardirq_32.h new file mode 100644 index 000000000000..5ca135e72f2b --- /dev/null +++ b/arch/x86/include/asm/hardirq_32.h | |||
@@ -0,0 +1,28 @@ | |||
1 | #ifndef _ASM_X86_HARDIRQ_32_H | ||
2 | #define _ASM_X86_HARDIRQ_32_H | ||
3 | |||
4 | #include <linux/threads.h> | ||
5 | #include <linux/irq.h> | ||
6 | |||
7 | typedef struct { | ||
8 | unsigned int __softirq_pending; | ||
9 | unsigned long idle_timestamp; | ||
10 | unsigned int __nmi_count; /* arch dependent */ | ||
11 | unsigned int apic_timer_irqs; /* arch dependent */ | ||
12 | unsigned int irq0_irqs; | ||
13 | unsigned int irq_resched_count; | ||
14 | unsigned int irq_call_count; | ||
15 | unsigned int irq_tlb_count; | ||
16 | unsigned int irq_thermal_count; | ||
17 | unsigned int irq_spurious_count; | ||
18 | } ____cacheline_aligned irq_cpustat_t; | ||
19 | |||
20 | DECLARE_PER_CPU(irq_cpustat_t, irq_stat); | ||
21 | |||
22 | #define __ARCH_IRQ_STAT | ||
23 | #define __IRQ_STAT(cpu, member) (per_cpu(irq_stat, cpu).member) | ||
24 | |||
25 | void ack_bad_irq(unsigned int irq); | ||
26 | #include <linux/irq_cpustat.h> | ||
27 | |||
28 | #endif /* _ASM_X86_HARDIRQ_32_H */ | ||
diff --git a/arch/x86/include/asm/hardirq_64.h b/arch/x86/include/asm/hardirq_64.h new file mode 100644 index 000000000000..1ba381fc51d3 --- /dev/null +++ b/arch/x86/include/asm/hardirq_64.h | |||
@@ -0,0 +1,23 @@ | |||
1 | #ifndef _ASM_X86_HARDIRQ_64_H | ||
2 | #define _ASM_X86_HARDIRQ_64_H | ||
3 | |||
4 | #include <linux/threads.h> | ||
5 | #include <linux/irq.h> | ||
6 | #include <asm/pda.h> | ||
7 | #include <asm/apic.h> | ||
8 | |||
9 | /* We can have at most NR_VECTORS irqs routed to a cpu at a time */ | ||
10 | #define MAX_HARDIRQS_PER_CPU NR_VECTORS | ||
11 | |||
12 | #define __ARCH_IRQ_STAT 1 | ||
13 | |||
14 | #define local_softirq_pending() read_pda(__softirq_pending) | ||
15 | |||
16 | #define __ARCH_SET_SOFTIRQ_PENDING 1 | ||
17 | |||
18 | #define set_softirq_pending(x) write_pda(__softirq_pending, (x)) | ||
19 | #define or_softirq_pending(x) or_pda(__softirq_pending, (x)) | ||
20 | |||
21 | extern void ack_bad_irq(unsigned int irq); | ||
22 | |||
23 | #endif /* _ASM_X86_HARDIRQ_64_H */ | ||
diff --git a/arch/x86/include/asm/highmem.h b/arch/x86/include/asm/highmem.h new file mode 100644 index 000000000000..a3b3b7c3027b --- /dev/null +++ b/arch/x86/include/asm/highmem.h | |||
@@ -0,0 +1,82 @@ | |||
1 | /* | ||
2 | * highmem.h: virtual kernel memory mappings for high memory | ||
3 | * | ||
4 | * Used in CONFIG_HIGHMEM systems for memory pages which | ||
5 | * are not addressable by direct kernel virtual addresses. | ||
6 | * | ||
7 | * Copyright (C) 1999 Gerhard Wichert, Siemens AG | ||
8 | * Gerhard.Wichert@pdb.siemens.de | ||
9 | * | ||
10 | * | ||
11 | * Redesigned the x86 32-bit VM architecture to deal with | ||
12 | * up to 16 Terabyte physical memory. With current x86 CPUs | ||
13 | * we now support up to 64 Gigabytes physical RAM. | ||
14 | * | ||
15 | * Copyright (C) 1999 Ingo Molnar <mingo@redhat.com> | ||
16 | */ | ||
17 | |||
18 | #ifndef _ASM_X86_HIGHMEM_H | ||
19 | #define _ASM_X86_HIGHMEM_H | ||
20 | |||
21 | #ifdef __KERNEL__ | ||
22 | |||
23 | #include <linux/interrupt.h> | ||
24 | #include <linux/threads.h> | ||
25 | #include <asm/kmap_types.h> | ||
26 | #include <asm/tlbflush.h> | ||
27 | #include <asm/paravirt.h> | ||
28 | |||
29 | /* declarations for highmem.c */ | ||
30 | extern unsigned long highstart_pfn, highend_pfn; | ||
31 | |||
32 | extern pte_t *kmap_pte; | ||
33 | extern pgprot_t kmap_prot; | ||
34 | extern pte_t *pkmap_page_table; | ||
35 | |||
36 | /* | ||
37 | * Right now we initialize only a single pte table. It can be extended | ||
38 | * easily, subsequent pte tables have to be allocated in one physical | ||
39 | * chunk of RAM. | ||
40 | */ | ||
41 | /* | ||
42 | * Ordering is: | ||
43 | * | ||
44 | * FIXADDR_TOP | ||
45 | * fixed_addresses | ||
46 | * FIXADDR_START | ||
47 | * temp fixed addresses | ||
48 | * FIXADDR_BOOT_START | ||
49 | * Persistent kmap area | ||
50 | * PKMAP_BASE | ||
51 | * VMALLOC_END | ||
52 | * Vmalloc area | ||
53 | * VMALLOC_START | ||
54 | * high_memory | ||
55 | */ | ||
56 | #define LAST_PKMAP_MASK (LAST_PKMAP-1) | ||
57 | #define PKMAP_NR(virt) ((virt-PKMAP_BASE) >> PAGE_SHIFT) | ||
58 | #define PKMAP_ADDR(nr) (PKMAP_BASE + ((nr) << PAGE_SHIFT)) | ||
59 | |||
60 | extern void *kmap_high(struct page *page); | ||
61 | extern void kunmap_high(struct page *page); | ||
62 | |||
63 | void *kmap(struct page *page); | ||
64 | void kunmap(struct page *page); | ||
65 | void *kmap_atomic_prot(struct page *page, enum km_type type, pgprot_t prot); | ||
66 | void *kmap_atomic(struct page *page, enum km_type type); | ||
67 | void kunmap_atomic(void *kvaddr, enum km_type type); | ||
68 | void *kmap_atomic_pfn(unsigned long pfn, enum km_type type); | ||
69 | struct page *kmap_atomic_to_page(void *ptr); | ||
70 | |||
71 | #ifndef CONFIG_PARAVIRT | ||
72 | #define kmap_atomic_pte(page, type) kmap_atomic(page, type) | ||
73 | #endif | ||
74 | |||
75 | #define flush_cache_kmaps() do { } while (0) | ||
76 | |||
77 | extern void add_highpages_with_active_regions(int nid, unsigned long start_pfn, | ||
78 | unsigned long end_pfn); | ||
79 | |||
80 | #endif /* __KERNEL__ */ | ||
81 | |||
82 | #endif /* _ASM_X86_HIGHMEM_H */ | ||
diff --git a/arch/x86/include/asm/hpet.h b/arch/x86/include/asm/hpet.h new file mode 100644 index 000000000000..1c22cb05ad6a --- /dev/null +++ b/arch/x86/include/asm/hpet.h | |||
@@ -0,0 +1,114 @@ | |||
1 | #ifndef _ASM_X86_HPET_H | ||
2 | #define _ASM_X86_HPET_H | ||
3 | |||
4 | #include <linux/msi.h> | ||
5 | |||
6 | #ifdef CONFIG_HPET_TIMER | ||
7 | |||
8 | #define HPET_MMAP_SIZE 1024 | ||
9 | |||
10 | #define HPET_ID 0x000 | ||
11 | #define HPET_PERIOD 0x004 | ||
12 | #define HPET_CFG 0x010 | ||
13 | #define HPET_STATUS 0x020 | ||
14 | #define HPET_COUNTER 0x0f0 | ||
15 | |||
16 | #define HPET_Tn_CFG(n) (0x100 + 0x20 * n) | ||
17 | #define HPET_Tn_CMP(n) (0x108 + 0x20 * n) | ||
18 | #define HPET_Tn_ROUTE(n) (0x110 + 0x20 * n) | ||
19 | |||
20 | #define HPET_T0_CFG 0x100 | ||
21 | #define HPET_T0_CMP 0x108 | ||
22 | #define HPET_T0_ROUTE 0x110 | ||
23 | #define HPET_T1_CFG 0x120 | ||
24 | #define HPET_T1_CMP 0x128 | ||
25 | #define HPET_T1_ROUTE 0x130 | ||
26 | #define HPET_T2_CFG 0x140 | ||
27 | #define HPET_T2_CMP 0x148 | ||
28 | #define HPET_T2_ROUTE 0x150 | ||
29 | |||
30 | #define HPET_ID_REV 0x000000ff | ||
31 | #define HPET_ID_NUMBER 0x00001f00 | ||
32 | #define HPET_ID_64BIT 0x00002000 | ||
33 | #define HPET_ID_LEGSUP 0x00008000 | ||
34 | #define HPET_ID_VENDOR 0xffff0000 | ||
35 | #define HPET_ID_NUMBER_SHIFT 8 | ||
36 | #define HPET_ID_VENDOR_SHIFT 16 | ||
37 | |||
38 | #define HPET_ID_VENDOR_8086 0x8086 | ||
39 | |||
40 | #define HPET_CFG_ENABLE 0x001 | ||
41 | #define HPET_CFG_LEGACY 0x002 | ||
42 | #define HPET_LEGACY_8254 2 | ||
43 | #define HPET_LEGACY_RTC 8 | ||
44 | |||
45 | #define HPET_TN_LEVEL 0x0002 | ||
46 | #define HPET_TN_ENABLE 0x0004 | ||
47 | #define HPET_TN_PERIODIC 0x0008 | ||
48 | #define HPET_TN_PERIODIC_CAP 0x0010 | ||
49 | #define HPET_TN_64BIT_CAP 0x0020 | ||
50 | #define HPET_TN_SETVAL 0x0040 | ||
51 | #define HPET_TN_32BIT 0x0100 | ||
52 | #define HPET_TN_ROUTE 0x3e00 | ||
53 | #define HPET_TN_FSB 0x4000 | ||
54 | #define HPET_TN_FSB_CAP 0x8000 | ||
55 | #define HPET_TN_ROUTE_SHIFT 9 | ||
56 | |||
57 | /* Max HPET Period is 10^8 femto sec as in HPET spec */ | ||
58 | #define HPET_MAX_PERIOD 100000000UL | ||
59 | /* | ||
60 | * Min HPET period is 10^5 femto sec just for safety. If it is less than this, | ||
61 | * then 32 bit HPET counter wrapsaround in less than 0.5 sec. | ||
62 | */ | ||
63 | #define HPET_MIN_PERIOD 100000UL | ||
64 | |||
65 | /* hpet memory map physical address */ | ||
66 | extern unsigned long hpet_address; | ||
67 | extern unsigned long force_hpet_address; | ||
68 | extern int hpet_force_user; | ||
69 | extern int is_hpet_enabled(void); | ||
70 | extern int hpet_enable(void); | ||
71 | extern void hpet_disable(void); | ||
72 | extern unsigned long hpet_readl(unsigned long a); | ||
73 | extern void force_hpet_resume(void); | ||
74 | |||
75 | extern void hpet_msi_unmask(unsigned int irq); | ||
76 | extern void hpet_msi_mask(unsigned int irq); | ||
77 | extern void hpet_msi_write(unsigned int irq, struct msi_msg *msg); | ||
78 | extern void hpet_msi_read(unsigned int irq, struct msi_msg *msg); | ||
79 | |||
80 | #ifdef CONFIG_PCI_MSI | ||
81 | extern int arch_setup_hpet_msi(unsigned int irq); | ||
82 | #else | ||
83 | static inline int arch_setup_hpet_msi(unsigned int irq) | ||
84 | { | ||
85 | return -EINVAL; | ||
86 | } | ||
87 | #endif | ||
88 | |||
89 | #ifdef CONFIG_HPET_EMULATE_RTC | ||
90 | |||
91 | #include <linux/interrupt.h> | ||
92 | |||
93 | typedef irqreturn_t (*rtc_irq_handler)(int interrupt, void *cookie); | ||
94 | extern int hpet_mask_rtc_irq_bit(unsigned long bit_mask); | ||
95 | extern int hpet_set_rtc_irq_bit(unsigned long bit_mask); | ||
96 | extern int hpet_set_alarm_time(unsigned char hrs, unsigned char min, | ||
97 | unsigned char sec); | ||
98 | extern int hpet_set_periodic_freq(unsigned long freq); | ||
99 | extern int hpet_rtc_dropped_irq(void); | ||
100 | extern int hpet_rtc_timer_init(void); | ||
101 | extern irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id); | ||
102 | extern int hpet_register_irq_handler(rtc_irq_handler handler); | ||
103 | extern void hpet_unregister_irq_handler(rtc_irq_handler handler); | ||
104 | |||
105 | #endif /* CONFIG_HPET_EMULATE_RTC */ | ||
106 | |||
107 | #else /* CONFIG_HPET_TIMER */ | ||
108 | |||
109 | static inline int hpet_enable(void) { return 0; } | ||
110 | static inline int is_hpet_enabled(void) { return 0; } | ||
111 | #define hpet_readl(a) 0 | ||
112 | |||
113 | #endif | ||
114 | #endif /* _ASM_X86_HPET_H */ | ||
diff --git a/arch/x86/include/asm/hugetlb.h b/arch/x86/include/asm/hugetlb.h new file mode 100644 index 000000000000..439a9acc132d --- /dev/null +++ b/arch/x86/include/asm/hugetlb.h | |||
@@ -0,0 +1,93 @@ | |||
1 | #ifndef _ASM_X86_HUGETLB_H | ||
2 | #define _ASM_X86_HUGETLB_H | ||
3 | |||
4 | #include <asm/page.h> | ||
5 | |||
6 | |||
7 | static inline int is_hugepage_only_range(struct mm_struct *mm, | ||
8 | unsigned long addr, | ||
9 | unsigned long len) { | ||
10 | return 0; | ||
11 | } | ||
12 | |||
13 | /* | ||
14 | * If the arch doesn't supply something else, assume that hugepage | ||
15 | * size aligned regions are ok without further preparation. | ||
16 | */ | ||
17 | static inline int prepare_hugepage_range(struct file *file, | ||
18 | unsigned long addr, unsigned long len) | ||
19 | { | ||
20 | struct hstate *h = hstate_file(file); | ||
21 | if (len & ~huge_page_mask(h)) | ||
22 | return -EINVAL; | ||
23 | if (addr & ~huge_page_mask(h)) | ||
24 | return -EINVAL; | ||
25 | return 0; | ||
26 | } | ||
27 | |||
28 | static inline void hugetlb_prefault_arch_hook(struct mm_struct *mm) { | ||
29 | } | ||
30 | |||
31 | static inline void hugetlb_free_pgd_range(struct mmu_gather *tlb, | ||
32 | unsigned long addr, unsigned long end, | ||
33 | unsigned long floor, | ||
34 | unsigned long ceiling) | ||
35 | { | ||
36 | free_pgd_range(tlb, addr, end, floor, ceiling); | ||
37 | } | ||
38 | |||
39 | static inline void set_huge_pte_at(struct mm_struct *mm, unsigned long addr, | ||
40 | pte_t *ptep, pte_t pte) | ||
41 | { | ||
42 | set_pte_at(mm, addr, ptep, pte); | ||
43 | } | ||
44 | |||
45 | static inline pte_t huge_ptep_get_and_clear(struct mm_struct *mm, | ||
46 | unsigned long addr, pte_t *ptep) | ||
47 | { | ||
48 | return ptep_get_and_clear(mm, addr, ptep); | ||
49 | } | ||
50 | |||
51 | static inline void huge_ptep_clear_flush(struct vm_area_struct *vma, | ||
52 | unsigned long addr, pte_t *ptep) | ||
53 | { | ||
54 | } | ||
55 | |||
56 | static inline int huge_pte_none(pte_t pte) | ||
57 | { | ||
58 | return pte_none(pte); | ||
59 | } | ||
60 | |||
61 | static inline pte_t huge_pte_wrprotect(pte_t pte) | ||
62 | { | ||
63 | return pte_wrprotect(pte); | ||
64 | } | ||
65 | |||
66 | static inline void huge_ptep_set_wrprotect(struct mm_struct *mm, | ||
67 | unsigned long addr, pte_t *ptep) | ||
68 | { | ||
69 | ptep_set_wrprotect(mm, addr, ptep); | ||
70 | } | ||
71 | |||
72 | static inline int huge_ptep_set_access_flags(struct vm_area_struct *vma, | ||
73 | unsigned long addr, pte_t *ptep, | ||
74 | pte_t pte, int dirty) | ||
75 | { | ||
76 | return ptep_set_access_flags(vma, addr, ptep, pte, dirty); | ||
77 | } | ||
78 | |||
79 | static inline pte_t huge_ptep_get(pte_t *ptep) | ||
80 | { | ||
81 | return *ptep; | ||
82 | } | ||
83 | |||
84 | static inline int arch_prepare_hugepage(struct page *page) | ||
85 | { | ||
86 | return 0; | ||
87 | } | ||
88 | |||
89 | static inline void arch_release_hugepage(struct page *page) | ||
90 | { | ||
91 | } | ||
92 | |||
93 | #endif /* _ASM_X86_HUGETLB_H */ | ||
diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h new file mode 100644 index 000000000000..b97aecb0b61d --- /dev/null +++ b/arch/x86/include/asm/hw_irq.h | |||
@@ -0,0 +1,131 @@ | |||
1 | #ifndef _ASM_X86_HW_IRQ_H | ||
2 | #define _ASM_X86_HW_IRQ_H | ||
3 | |||
4 | /* | ||
5 | * (C) 1992, 1993 Linus Torvalds, (C) 1997 Ingo Molnar | ||
6 | * | ||
7 | * moved some of the old arch/i386/kernel/irq.h to here. VY | ||
8 | * | ||
9 | * IRQ/IPI changes taken from work by Thomas Radke | ||
10 | * <tomsoft@informatik.tu-chemnitz.de> | ||
11 | * | ||
12 | * hacked by Andi Kleen for x86-64. | ||
13 | * unified by tglx | ||
14 | */ | ||
15 | |||
16 | #include <asm/irq_vectors.h> | ||
17 | |||
18 | #ifndef __ASSEMBLY__ | ||
19 | |||
20 | #include <linux/percpu.h> | ||
21 | #include <linux/profile.h> | ||
22 | #include <linux/smp.h> | ||
23 | |||
24 | #include <asm/atomic.h> | ||
25 | #include <asm/irq.h> | ||
26 | #include <asm/sections.h> | ||
27 | |||
28 | #define platform_legacy_irq(irq) ((irq) < 16) | ||
29 | |||
30 | /* Interrupt handlers registered during init_IRQ */ | ||
31 | extern void apic_timer_interrupt(void); | ||
32 | extern void error_interrupt(void); | ||
33 | extern void spurious_interrupt(void); | ||
34 | extern void thermal_interrupt(void); | ||
35 | extern void reschedule_interrupt(void); | ||
36 | |||
37 | extern void invalidate_interrupt(void); | ||
38 | extern void invalidate_interrupt0(void); | ||
39 | extern void invalidate_interrupt1(void); | ||
40 | extern void invalidate_interrupt2(void); | ||
41 | extern void invalidate_interrupt3(void); | ||
42 | extern void invalidate_interrupt4(void); | ||
43 | extern void invalidate_interrupt5(void); | ||
44 | extern void invalidate_interrupt6(void); | ||
45 | extern void invalidate_interrupt7(void); | ||
46 | |||
47 | extern void irq_move_cleanup_interrupt(void); | ||
48 | extern void threshold_interrupt(void); | ||
49 | |||
50 | extern void call_function_interrupt(void); | ||
51 | extern void call_function_single_interrupt(void); | ||
52 | |||
53 | /* PIC specific functions */ | ||
54 | extern void disable_8259A_irq(unsigned int irq); | ||
55 | extern void enable_8259A_irq(unsigned int irq); | ||
56 | extern int i8259A_irq_pending(unsigned int irq); | ||
57 | extern void make_8259A_irq(unsigned int irq); | ||
58 | extern void init_8259A(int aeoi); | ||
59 | |||
60 | /* IOAPIC */ | ||
61 | #define IO_APIC_IRQ(x) (((x) >= 16) || ((1<<(x)) & io_apic_irqs)) | ||
62 | extern unsigned long io_apic_irqs; | ||
63 | |||
64 | extern void init_VISWS_APIC_irqs(void); | ||
65 | extern void setup_IO_APIC(void); | ||
66 | extern void disable_IO_APIC(void); | ||
67 | extern int IO_APIC_get_PCI_irq_vector(int bus, int slot, int fn); | ||
68 | extern void setup_ioapic_dest(void); | ||
69 | |||
70 | #ifdef CONFIG_X86_64 | ||
71 | extern void enable_IO_APIC(void); | ||
72 | #endif | ||
73 | |||
74 | /* IPI functions */ | ||
75 | #ifdef CONFIG_X86_32 | ||
76 | extern void send_IPI_self(int vector); | ||
77 | #endif | ||
78 | extern void send_IPI(int dest, int vector); | ||
79 | |||
80 | /* Statistics */ | ||
81 | extern atomic_t irq_err_count; | ||
82 | extern atomic_t irq_mis_count; | ||
83 | |||
84 | /* EISA */ | ||
85 | extern void eisa_set_level_irq(unsigned int irq); | ||
86 | |||
87 | /* Voyager functions */ | ||
88 | extern asmlinkage void vic_cpi_interrupt(void); | ||
89 | extern asmlinkage void vic_sys_interrupt(void); | ||
90 | extern asmlinkage void vic_cmn_interrupt(void); | ||
91 | extern asmlinkage void qic_timer_interrupt(void); | ||
92 | extern asmlinkage void qic_invalidate_interrupt(void); | ||
93 | extern asmlinkage void qic_reschedule_interrupt(void); | ||
94 | extern asmlinkage void qic_enable_irq_interrupt(void); | ||
95 | extern asmlinkage void qic_call_function_interrupt(void); | ||
96 | |||
97 | /* SMP */ | ||
98 | extern void smp_apic_timer_interrupt(struct pt_regs *); | ||
99 | extern void smp_spurious_interrupt(struct pt_regs *); | ||
100 | extern void smp_error_interrupt(struct pt_regs *); | ||
101 | #ifdef CONFIG_X86_SMP | ||
102 | extern void smp_reschedule_interrupt(struct pt_regs *); | ||
103 | extern void smp_call_function_interrupt(struct pt_regs *); | ||
104 | extern void smp_call_function_single_interrupt(struct pt_regs *); | ||
105 | #ifdef CONFIG_X86_32 | ||
106 | extern void smp_invalidate_interrupt(struct pt_regs *); | ||
107 | #else | ||
108 | extern asmlinkage void smp_invalidate_interrupt(struct pt_regs *); | ||
109 | #endif | ||
110 | #endif | ||
111 | |||
112 | #ifdef CONFIG_X86_32 | ||
113 | extern void (*const interrupt[NR_VECTORS])(void); | ||
114 | #endif | ||
115 | |||
116 | typedef int vector_irq_t[NR_VECTORS]; | ||
117 | DECLARE_PER_CPU(vector_irq_t, vector_irq); | ||
118 | |||
119 | #ifdef CONFIG_X86_IO_APIC | ||
120 | extern void lock_vector_lock(void); | ||
121 | extern void unlock_vector_lock(void); | ||
122 | extern void __setup_vector_irq(int cpu); | ||
123 | #else | ||
124 | static inline void lock_vector_lock(void) {} | ||
125 | static inline void unlock_vector_lock(void) {} | ||
126 | static inline void __setup_vector_irq(int cpu) {} | ||
127 | #endif | ||
128 | |||
129 | #endif /* !ASSEMBLY_ */ | ||
130 | |||
131 | #endif /* _ASM_X86_HW_IRQ_H */ | ||
diff --git a/arch/x86/include/asm/hypertransport.h b/arch/x86/include/asm/hypertransport.h new file mode 100644 index 000000000000..334b1a885d9c --- /dev/null +++ b/arch/x86/include/asm/hypertransport.h | |||
@@ -0,0 +1,45 @@ | |||
1 | #ifndef _ASM_X86_HYPERTRANSPORT_H | ||
2 | #define _ASM_X86_HYPERTRANSPORT_H | ||
3 | |||
4 | /* | ||
5 | * Constants for x86 Hypertransport Interrupts. | ||
6 | */ | ||
7 | |||
8 | #define HT_IRQ_LOW_BASE 0xf8000000 | ||
9 | |||
10 | #define HT_IRQ_LOW_VECTOR_SHIFT 16 | ||
11 | #define HT_IRQ_LOW_VECTOR_MASK 0x00ff0000 | ||
12 | #define HT_IRQ_LOW_VECTOR(v) \ | ||
13 | (((v) << HT_IRQ_LOW_VECTOR_SHIFT) & HT_IRQ_LOW_VECTOR_MASK) | ||
14 | |||
15 | #define HT_IRQ_LOW_DEST_ID_SHIFT 8 | ||
16 | #define HT_IRQ_LOW_DEST_ID_MASK 0x0000ff00 | ||
17 | #define HT_IRQ_LOW_DEST_ID(v) \ | ||
18 | (((v) << HT_IRQ_LOW_DEST_ID_SHIFT) & HT_IRQ_LOW_DEST_ID_MASK) | ||
19 | |||
20 | #define HT_IRQ_LOW_DM_PHYSICAL 0x0000000 | ||
21 | #define HT_IRQ_LOW_DM_LOGICAL 0x0000040 | ||
22 | |||
23 | #define HT_IRQ_LOW_RQEOI_EDGE 0x0000000 | ||
24 | #define HT_IRQ_LOW_RQEOI_LEVEL 0x0000020 | ||
25 | |||
26 | |||
27 | #define HT_IRQ_LOW_MT_FIXED 0x0000000 | ||
28 | #define HT_IRQ_LOW_MT_ARBITRATED 0x0000004 | ||
29 | #define HT_IRQ_LOW_MT_SMI 0x0000008 | ||
30 | #define HT_IRQ_LOW_MT_NMI 0x000000c | ||
31 | #define HT_IRQ_LOW_MT_INIT 0x0000010 | ||
32 | #define HT_IRQ_LOW_MT_STARTUP 0x0000014 | ||
33 | #define HT_IRQ_LOW_MT_EXTINT 0x0000018 | ||
34 | #define HT_IRQ_LOW_MT_LINT1 0x000008c | ||
35 | #define HT_IRQ_LOW_MT_LINT0 0x0000098 | ||
36 | |||
37 | #define HT_IRQ_LOW_IRQ_MASKED 0x0000001 | ||
38 | |||
39 | |||
40 | #define HT_IRQ_HIGH_DEST_ID_SHIFT 0 | ||
41 | #define HT_IRQ_HIGH_DEST_ID_MASK 0x00ffffff | ||
42 | #define HT_IRQ_HIGH_DEST_ID(v) \ | ||
43 | ((((v) >> 8) << HT_IRQ_HIGH_DEST_ID_SHIFT) & HT_IRQ_HIGH_DEST_ID_MASK) | ||
44 | |||
45 | #endif /* _ASM_X86_HYPERTRANSPORT_H */ | ||
diff --git a/arch/x86/include/asm/i387.h b/arch/x86/include/asm/i387.h new file mode 100644 index 000000000000..48f0004db8c9 --- /dev/null +++ b/arch/x86/include/asm/i387.h | |||
@@ -0,0 +1,400 @@ | |||
1 | /* | ||
2 | * Copyright (C) 1994 Linus Torvalds | ||
3 | * | ||
4 | * Pentium III FXSR, SSE support | ||
5 | * General FPU state handling cleanups | ||
6 | * Gareth Hughes <gareth@valinux.com>, May 2000 | ||
7 | * x86-64 work by Andi Kleen 2002 | ||
8 | */ | ||
9 | |||
10 | #ifndef _ASM_X86_I387_H | ||
11 | #define _ASM_X86_I387_H | ||
12 | |||
13 | #include <linux/sched.h> | ||
14 | #include <linux/kernel_stat.h> | ||
15 | #include <linux/regset.h> | ||
16 | #include <linux/hardirq.h> | ||
17 | #include <asm/asm.h> | ||
18 | #include <asm/processor.h> | ||
19 | #include <asm/sigcontext.h> | ||
20 | #include <asm/user.h> | ||
21 | #include <asm/uaccess.h> | ||
22 | #include <asm/xsave.h> | ||
23 | |||
24 | extern unsigned int sig_xstate_size; | ||
25 | extern void fpu_init(void); | ||
26 | extern void mxcsr_feature_mask_init(void); | ||
27 | extern int init_fpu(struct task_struct *child); | ||
28 | extern asmlinkage void math_state_restore(void); | ||
29 | extern void init_thread_xstate(void); | ||
30 | extern int dump_fpu(struct pt_regs *, struct user_i387_struct *); | ||
31 | |||
32 | extern user_regset_active_fn fpregs_active, xfpregs_active; | ||
33 | extern user_regset_get_fn fpregs_get, xfpregs_get, fpregs_soft_get; | ||
34 | extern user_regset_set_fn fpregs_set, xfpregs_set, fpregs_soft_set; | ||
35 | |||
36 | extern struct _fpx_sw_bytes fx_sw_reserved; | ||
37 | #ifdef CONFIG_IA32_EMULATION | ||
38 | extern unsigned int sig_xstate_ia32_size; | ||
39 | extern struct _fpx_sw_bytes fx_sw_reserved_ia32; | ||
40 | struct _fpstate_ia32; | ||
41 | struct _xstate_ia32; | ||
42 | extern int save_i387_xstate_ia32(void __user *buf); | ||
43 | extern int restore_i387_xstate_ia32(void __user *buf); | ||
44 | #endif | ||
45 | |||
46 | #define X87_FSW_ES (1 << 7) /* Exception Summary */ | ||
47 | |||
48 | #ifdef CONFIG_X86_64 | ||
49 | |||
50 | /* Ignore delayed exceptions from user space */ | ||
51 | static inline void tolerant_fwait(void) | ||
52 | { | ||
53 | asm volatile("1: fwait\n" | ||
54 | "2:\n" | ||
55 | _ASM_EXTABLE(1b, 2b)); | ||
56 | } | ||
57 | |||
58 | static inline int fxrstor_checking(struct i387_fxsave_struct *fx) | ||
59 | { | ||
60 | int err; | ||
61 | |||
62 | asm volatile("1: rex64/fxrstor (%[fx])\n\t" | ||
63 | "2:\n" | ||
64 | ".section .fixup,\"ax\"\n" | ||
65 | "3: movl $-1,%[err]\n" | ||
66 | " jmp 2b\n" | ||
67 | ".previous\n" | ||
68 | _ASM_EXTABLE(1b, 3b) | ||
69 | : [err] "=r" (err) | ||
70 | #if 0 /* See comment in __save_init_fpu() below. */ | ||
71 | : [fx] "r" (fx), "m" (*fx), "0" (0)); | ||
72 | #else | ||
73 | : [fx] "cdaSDb" (fx), "m" (*fx), "0" (0)); | ||
74 | #endif | ||
75 | return err; | ||
76 | } | ||
77 | |||
78 | static inline int restore_fpu_checking(struct task_struct *tsk) | ||
79 | { | ||
80 | if (task_thread_info(tsk)->status & TS_XSAVE) | ||
81 | return xrstor_checking(&tsk->thread.xstate->xsave); | ||
82 | else | ||
83 | return fxrstor_checking(&tsk->thread.xstate->fxsave); | ||
84 | } | ||
85 | |||
86 | /* AMD CPUs don't save/restore FDP/FIP/FOP unless an exception | ||
87 | is pending. Clear the x87 state here by setting it to fixed | ||
88 | values. The kernel data segment can be sometimes 0 and sometimes | ||
89 | new user value. Both should be ok. | ||
90 | Use the PDA as safe address because it should be already in L1. */ | ||
91 | static inline void clear_fpu_state(struct task_struct *tsk) | ||
92 | { | ||
93 | struct xsave_struct *xstate = &tsk->thread.xstate->xsave; | ||
94 | struct i387_fxsave_struct *fx = &tsk->thread.xstate->fxsave; | ||
95 | |||
96 | /* | ||
97 | * xsave header may indicate the init state of the FP. | ||
98 | */ | ||
99 | if ((task_thread_info(tsk)->status & TS_XSAVE) && | ||
100 | !(xstate->xsave_hdr.xstate_bv & XSTATE_FP)) | ||
101 | return; | ||
102 | |||
103 | if (unlikely(fx->swd & X87_FSW_ES)) | ||
104 | asm volatile("fnclex"); | ||
105 | alternative_input(ASM_NOP8 ASM_NOP2, | ||
106 | " emms\n" /* clear stack tags */ | ||
107 | " fildl %%gs:0", /* load to clear state */ | ||
108 | X86_FEATURE_FXSAVE_LEAK); | ||
109 | } | ||
110 | |||
111 | static inline int fxsave_user(struct i387_fxsave_struct __user *fx) | ||
112 | { | ||
113 | int err; | ||
114 | |||
115 | asm volatile("1: rex64/fxsave (%[fx])\n\t" | ||
116 | "2:\n" | ||
117 | ".section .fixup,\"ax\"\n" | ||
118 | "3: movl $-1,%[err]\n" | ||
119 | " jmp 2b\n" | ||
120 | ".previous\n" | ||
121 | _ASM_EXTABLE(1b, 3b) | ||
122 | : [err] "=r" (err), "=m" (*fx) | ||
123 | #if 0 /* See comment in __fxsave_clear() below. */ | ||
124 | : [fx] "r" (fx), "0" (0)); | ||
125 | #else | ||
126 | : [fx] "cdaSDb" (fx), "0" (0)); | ||
127 | #endif | ||
128 | if (unlikely(err) && | ||
129 | __clear_user(fx, sizeof(struct i387_fxsave_struct))) | ||
130 | err = -EFAULT; | ||
131 | /* No need to clear here because the caller clears USED_MATH */ | ||
132 | return err; | ||
133 | } | ||
134 | |||
135 | static inline void fxsave(struct task_struct *tsk) | ||
136 | { | ||
137 | /* Using "rex64; fxsave %0" is broken because, if the memory operand | ||
138 | uses any extended registers for addressing, a second REX prefix | ||
139 | will be generated (to the assembler, rex64 followed by semicolon | ||
140 | is a separate instruction), and hence the 64-bitness is lost. */ | ||
141 | #if 0 | ||
142 | /* Using "fxsaveq %0" would be the ideal choice, but is only supported | ||
143 | starting with gas 2.16. */ | ||
144 | __asm__ __volatile__("fxsaveq %0" | ||
145 | : "=m" (tsk->thread.xstate->fxsave)); | ||
146 | #elif 0 | ||
147 | /* Using, as a workaround, the properly prefixed form below isn't | ||
148 | accepted by any binutils version so far released, complaining that | ||
149 | the same type of prefix is used twice if an extended register is | ||
150 | needed for addressing (fix submitted to mainline 2005-11-21). */ | ||
151 | __asm__ __volatile__("rex64/fxsave %0" | ||
152 | : "=m" (tsk->thread.xstate->fxsave)); | ||
153 | #else | ||
154 | /* This, however, we can work around by forcing the compiler to select | ||
155 | an addressing mode that doesn't require extended registers. */ | ||
156 | __asm__ __volatile__("rex64/fxsave (%1)" | ||
157 | : "=m" (tsk->thread.xstate->fxsave) | ||
158 | : "cdaSDb" (&tsk->thread.xstate->fxsave)); | ||
159 | #endif | ||
160 | } | ||
161 | |||
162 | static inline void __save_init_fpu(struct task_struct *tsk) | ||
163 | { | ||
164 | if (task_thread_info(tsk)->status & TS_XSAVE) | ||
165 | xsave(tsk); | ||
166 | else | ||
167 | fxsave(tsk); | ||
168 | |||
169 | clear_fpu_state(tsk); | ||
170 | task_thread_info(tsk)->status &= ~TS_USEDFPU; | ||
171 | } | ||
172 | |||
173 | #else /* CONFIG_X86_32 */ | ||
174 | |||
175 | extern void finit(void); | ||
176 | |||
177 | static inline void tolerant_fwait(void) | ||
178 | { | ||
179 | asm volatile("fnclex ; fwait"); | ||
180 | } | ||
181 | |||
182 | static inline void restore_fpu(struct task_struct *tsk) | ||
183 | { | ||
184 | if (task_thread_info(tsk)->status & TS_XSAVE) { | ||
185 | xrstor_checking(&tsk->thread.xstate->xsave); | ||
186 | return; | ||
187 | } | ||
188 | /* | ||
189 | * The "nop" is needed to make the instructions the same | ||
190 | * length. | ||
191 | */ | ||
192 | alternative_input( | ||
193 | "nop ; frstor %1", | ||
194 | "fxrstor %1", | ||
195 | X86_FEATURE_FXSR, | ||
196 | "m" (tsk->thread.xstate->fxsave)); | ||
197 | } | ||
198 | |||
199 | /* We need a safe address that is cheap to find and that is already | ||
200 | in L1 during context switch. The best choices are unfortunately | ||
201 | different for UP and SMP */ | ||
202 | #ifdef CONFIG_SMP | ||
203 | #define safe_address (__per_cpu_offset[0]) | ||
204 | #else | ||
205 | #define safe_address (kstat_cpu(0).cpustat.user) | ||
206 | #endif | ||
207 | |||
208 | /* | ||
209 | * These must be called with preempt disabled | ||
210 | */ | ||
211 | static inline void __save_init_fpu(struct task_struct *tsk) | ||
212 | { | ||
213 | if (task_thread_info(tsk)->status & TS_XSAVE) { | ||
214 | struct xsave_struct *xstate = &tsk->thread.xstate->xsave; | ||
215 | struct i387_fxsave_struct *fx = &tsk->thread.xstate->fxsave; | ||
216 | |||
217 | xsave(tsk); | ||
218 | |||
219 | /* | ||
220 | * xsave header may indicate the init state of the FP. | ||
221 | */ | ||
222 | if (!(xstate->xsave_hdr.xstate_bv & XSTATE_FP)) | ||
223 | goto end; | ||
224 | |||
225 | if (unlikely(fx->swd & X87_FSW_ES)) | ||
226 | asm volatile("fnclex"); | ||
227 | |||
228 | /* | ||
229 | * we can do a simple return here or be paranoid :) | ||
230 | */ | ||
231 | goto clear_state; | ||
232 | } | ||
233 | |||
234 | /* Use more nops than strictly needed in case the compiler | ||
235 | varies code */ | ||
236 | alternative_input( | ||
237 | "fnsave %[fx] ;fwait;" GENERIC_NOP8 GENERIC_NOP4, | ||
238 | "fxsave %[fx]\n" | ||
239 | "bt $7,%[fsw] ; jnc 1f ; fnclex\n1:", | ||
240 | X86_FEATURE_FXSR, | ||
241 | [fx] "m" (tsk->thread.xstate->fxsave), | ||
242 | [fsw] "m" (tsk->thread.xstate->fxsave.swd) : "memory"); | ||
243 | clear_state: | ||
244 | /* AMD K7/K8 CPUs don't save/restore FDP/FIP/FOP unless an exception | ||
245 | is pending. Clear the x87 state here by setting it to fixed | ||
246 | values. safe_address is a random variable that should be in L1 */ | ||
247 | alternative_input( | ||
248 | GENERIC_NOP8 GENERIC_NOP2, | ||
249 | "emms\n\t" /* clear stack tags */ | ||
250 | "fildl %[addr]", /* set F?P to defined value */ | ||
251 | X86_FEATURE_FXSAVE_LEAK, | ||
252 | [addr] "m" (safe_address)); | ||
253 | end: | ||
254 | task_thread_info(tsk)->status &= ~TS_USEDFPU; | ||
255 | } | ||
256 | |||
257 | #endif /* CONFIG_X86_64 */ | ||
258 | |||
259 | /* | ||
260 | * Signal frame handlers... | ||
261 | */ | ||
262 | extern int save_i387_xstate(void __user *buf); | ||
263 | extern int restore_i387_xstate(void __user *buf); | ||
264 | |||
265 | static inline void __unlazy_fpu(struct task_struct *tsk) | ||
266 | { | ||
267 | if (task_thread_info(tsk)->status & TS_USEDFPU) { | ||
268 | __save_init_fpu(tsk); | ||
269 | stts(); | ||
270 | } else | ||
271 | tsk->fpu_counter = 0; | ||
272 | } | ||
273 | |||
274 | static inline void __clear_fpu(struct task_struct *tsk) | ||
275 | { | ||
276 | if (task_thread_info(tsk)->status & TS_USEDFPU) { | ||
277 | tolerant_fwait(); | ||
278 | task_thread_info(tsk)->status &= ~TS_USEDFPU; | ||
279 | stts(); | ||
280 | } | ||
281 | } | ||
282 | |||
283 | static inline void kernel_fpu_begin(void) | ||
284 | { | ||
285 | struct thread_info *me = current_thread_info(); | ||
286 | preempt_disable(); | ||
287 | if (me->status & TS_USEDFPU) | ||
288 | __save_init_fpu(me->task); | ||
289 | else | ||
290 | clts(); | ||
291 | } | ||
292 | |||
293 | static inline void kernel_fpu_end(void) | ||
294 | { | ||
295 | stts(); | ||
296 | preempt_enable(); | ||
297 | } | ||
298 | |||
299 | /* | ||
300 | * Some instructions like VIA's padlock instructions generate a spurious | ||
301 | * DNA fault but don't modify SSE registers. And these instructions | ||
302 | * get used from interrupt context aswell. To prevent these kernel instructions | ||
303 | * in interrupt context interact wrongly with other user/kernel fpu usage, we | ||
304 | * should use them only in the context of irq_ts_save/restore() | ||
305 | */ | ||
306 | static inline int irq_ts_save(void) | ||
307 | { | ||
308 | /* | ||
309 | * If we are in process context, we are ok to take a spurious DNA fault. | ||
310 | * Otherwise, doing clts() in process context require pre-emption to | ||
311 | * be disabled or some heavy lifting like kernel_fpu_begin() | ||
312 | */ | ||
313 | if (!in_interrupt()) | ||
314 | return 0; | ||
315 | |||
316 | if (read_cr0() & X86_CR0_TS) { | ||
317 | clts(); | ||
318 | return 1; | ||
319 | } | ||
320 | |||
321 | return 0; | ||
322 | } | ||
323 | |||
324 | static inline void irq_ts_restore(int TS_state) | ||
325 | { | ||
326 | if (TS_state) | ||
327 | stts(); | ||
328 | } | ||
329 | |||
330 | #ifdef CONFIG_X86_64 | ||
331 | |||
332 | static inline void save_init_fpu(struct task_struct *tsk) | ||
333 | { | ||
334 | __save_init_fpu(tsk); | ||
335 | stts(); | ||
336 | } | ||
337 | |||
338 | #define unlazy_fpu __unlazy_fpu | ||
339 | #define clear_fpu __clear_fpu | ||
340 | |||
341 | #else /* CONFIG_X86_32 */ | ||
342 | |||
343 | /* | ||
344 | * These disable preemption on their own and are safe | ||
345 | */ | ||
346 | static inline void save_init_fpu(struct task_struct *tsk) | ||
347 | { | ||
348 | preempt_disable(); | ||
349 | __save_init_fpu(tsk); | ||
350 | stts(); | ||
351 | preempt_enable(); | ||
352 | } | ||
353 | |||
354 | static inline void unlazy_fpu(struct task_struct *tsk) | ||
355 | { | ||
356 | preempt_disable(); | ||
357 | __unlazy_fpu(tsk); | ||
358 | preempt_enable(); | ||
359 | } | ||
360 | |||
361 | static inline void clear_fpu(struct task_struct *tsk) | ||
362 | { | ||
363 | preempt_disable(); | ||
364 | __clear_fpu(tsk); | ||
365 | preempt_enable(); | ||
366 | } | ||
367 | |||
368 | #endif /* CONFIG_X86_64 */ | ||
369 | |||
370 | /* | ||
371 | * i387 state interaction | ||
372 | */ | ||
373 | static inline unsigned short get_fpu_cwd(struct task_struct *tsk) | ||
374 | { | ||
375 | if (cpu_has_fxsr) { | ||
376 | return tsk->thread.xstate->fxsave.cwd; | ||
377 | } else { | ||
378 | return (unsigned short)tsk->thread.xstate->fsave.cwd; | ||
379 | } | ||
380 | } | ||
381 | |||
382 | static inline unsigned short get_fpu_swd(struct task_struct *tsk) | ||
383 | { | ||
384 | if (cpu_has_fxsr) { | ||
385 | return tsk->thread.xstate->fxsave.swd; | ||
386 | } else { | ||
387 | return (unsigned short)tsk->thread.xstate->fsave.swd; | ||
388 | } | ||
389 | } | ||
390 | |||
391 | static inline unsigned short get_fpu_mxcsr(struct task_struct *tsk) | ||
392 | { | ||
393 | if (cpu_has_xmm) { | ||
394 | return tsk->thread.xstate->fxsave.mxcsr; | ||
395 | } else { | ||
396 | return MXCSR_DEFAULT; | ||
397 | } | ||
398 | } | ||
399 | |||
400 | #endif /* _ASM_X86_I387_H */ | ||
diff --git a/arch/x86/include/asm/i8253.h b/arch/x86/include/asm/i8253.h new file mode 100644 index 000000000000..1edbf89680fd --- /dev/null +++ b/arch/x86/include/asm/i8253.h | |||
@@ -0,0 +1,18 @@ | |||
1 | #ifndef _ASM_X86_I8253_H | ||
2 | #define _ASM_X86_I8253_H | ||
3 | |||
4 | /* i8253A PIT registers */ | ||
5 | #define PIT_MODE 0x43 | ||
6 | #define PIT_CH0 0x40 | ||
7 | #define PIT_CH2 0x42 | ||
8 | |||
9 | extern spinlock_t i8253_lock; | ||
10 | |||
11 | extern struct clock_event_device *global_clock_event; | ||
12 | |||
13 | extern void setup_pit_timer(void); | ||
14 | |||
15 | #define inb_pit inb_p | ||
16 | #define outb_pit outb_p | ||
17 | |||
18 | #endif /* _ASM_X86_I8253_H */ | ||
diff --git a/arch/x86/include/asm/i8259.h b/arch/x86/include/asm/i8259.h new file mode 100644 index 000000000000..58d7091eeb1f --- /dev/null +++ b/arch/x86/include/asm/i8259.h | |||
@@ -0,0 +1,63 @@ | |||
1 | #ifndef _ASM_X86_I8259_H | ||
2 | #define _ASM_X86_I8259_H | ||
3 | |||
4 | #include <linux/delay.h> | ||
5 | |||
6 | extern unsigned int cached_irq_mask; | ||
7 | |||
8 | #define __byte(x, y) (((unsigned char *)&(y))[x]) | ||
9 | #define cached_master_mask (__byte(0, cached_irq_mask)) | ||
10 | #define cached_slave_mask (__byte(1, cached_irq_mask)) | ||
11 | |||
12 | /* i8259A PIC registers */ | ||
13 | #define PIC_MASTER_CMD 0x20 | ||
14 | #define PIC_MASTER_IMR 0x21 | ||
15 | #define PIC_MASTER_ISR PIC_MASTER_CMD | ||
16 | #define PIC_MASTER_POLL PIC_MASTER_ISR | ||
17 | #define PIC_MASTER_OCW3 PIC_MASTER_ISR | ||
18 | #define PIC_SLAVE_CMD 0xa0 | ||
19 | #define PIC_SLAVE_IMR 0xa1 | ||
20 | |||
21 | /* i8259A PIC related value */ | ||
22 | #define PIC_CASCADE_IR 2 | ||
23 | #define MASTER_ICW4_DEFAULT 0x01 | ||
24 | #define SLAVE_ICW4_DEFAULT 0x01 | ||
25 | #define PIC_ICW4_AEOI 2 | ||
26 | |||
27 | extern spinlock_t i8259A_lock; | ||
28 | |||
29 | extern void init_8259A(int auto_eoi); | ||
30 | extern void enable_8259A_irq(unsigned int irq); | ||
31 | extern void disable_8259A_irq(unsigned int irq); | ||
32 | extern unsigned int startup_8259A_irq(unsigned int irq); | ||
33 | |||
34 | /* the PIC may need a careful delay on some platforms, hence specific calls */ | ||
35 | static inline unsigned char inb_pic(unsigned int port) | ||
36 | { | ||
37 | unsigned char value = inb(port); | ||
38 | |||
39 | /* | ||
40 | * delay for some accesses to PIC on motherboard or in chipset | ||
41 | * must be at least one microsecond, so be safe here: | ||
42 | */ | ||
43 | udelay(2); | ||
44 | |||
45 | return value; | ||
46 | } | ||
47 | |||
48 | static inline void outb_pic(unsigned char value, unsigned int port) | ||
49 | { | ||
50 | outb(value, port); | ||
51 | /* | ||
52 | * delay for some accesses to PIC on motherboard or in chipset | ||
53 | * must be at least one microsecond, so be safe here: | ||
54 | */ | ||
55 | udelay(2); | ||
56 | } | ||
57 | |||
58 | extern struct irq_chip i8259A_chip; | ||
59 | |||
60 | extern void mask_8259A(void); | ||
61 | extern void unmask_8259A(void); | ||
62 | |||
63 | #endif /* _ASM_X86_I8259_H */ | ||
diff --git a/arch/x86/include/asm/ia32.h b/arch/x86/include/asm/ia32.h new file mode 100644 index 000000000000..97989c0e534c --- /dev/null +++ b/arch/x86/include/asm/ia32.h | |||
@@ -0,0 +1,170 @@ | |||
1 | #ifndef _ASM_X86_IA32_H | ||
2 | #define _ASM_X86_IA32_H | ||
3 | |||
4 | |||
5 | #ifdef CONFIG_IA32_EMULATION | ||
6 | |||
7 | #include <linux/compat.h> | ||
8 | |||
9 | /* | ||
10 | * 32 bit structures for IA32 support. | ||
11 | */ | ||
12 | |||
13 | #include <asm/sigcontext32.h> | ||
14 | |||
15 | /* signal.h */ | ||
16 | struct sigaction32 { | ||
17 | unsigned int sa_handler; /* Really a pointer, but need to deal | ||
18 | with 32 bits */ | ||
19 | unsigned int sa_flags; | ||
20 | unsigned int sa_restorer; /* Another 32 bit pointer */ | ||
21 | compat_sigset_t sa_mask; /* A 32 bit mask */ | ||
22 | }; | ||
23 | |||
24 | struct old_sigaction32 { | ||
25 | unsigned int sa_handler; /* Really a pointer, but need to deal | ||
26 | with 32 bits */ | ||
27 | compat_old_sigset_t sa_mask; /* A 32 bit mask */ | ||
28 | unsigned int sa_flags; | ||
29 | unsigned int sa_restorer; /* Another 32 bit pointer */ | ||
30 | }; | ||
31 | |||
32 | typedef struct sigaltstack_ia32 { | ||
33 | unsigned int ss_sp; | ||
34 | int ss_flags; | ||
35 | unsigned int ss_size; | ||
36 | } stack_ia32_t; | ||
37 | |||
38 | struct ucontext_ia32 { | ||
39 | unsigned int uc_flags; | ||
40 | unsigned int uc_link; | ||
41 | stack_ia32_t uc_stack; | ||
42 | struct sigcontext_ia32 uc_mcontext; | ||
43 | compat_sigset_t uc_sigmask; /* mask last for extensibility */ | ||
44 | }; | ||
45 | |||
46 | /* This matches struct stat64 in glibc2.2, hence the absolutely | ||
47 | * insane amounts of padding around dev_t's. | ||
48 | */ | ||
49 | struct stat64 { | ||
50 | unsigned long long st_dev; | ||
51 | unsigned char __pad0[4]; | ||
52 | |||
53 | #define STAT64_HAS_BROKEN_ST_INO 1 | ||
54 | unsigned int __st_ino; | ||
55 | |||
56 | unsigned int st_mode; | ||
57 | unsigned int st_nlink; | ||
58 | |||
59 | unsigned int st_uid; | ||
60 | unsigned int st_gid; | ||
61 | |||
62 | unsigned long long st_rdev; | ||
63 | unsigned char __pad3[4]; | ||
64 | |||
65 | long long st_size; | ||
66 | unsigned int st_blksize; | ||
67 | |||
68 | long long st_blocks;/* Number 512-byte blocks allocated */ | ||
69 | |||
70 | unsigned st_atime; | ||
71 | unsigned st_atime_nsec; | ||
72 | unsigned st_mtime; | ||
73 | unsigned st_mtime_nsec; | ||
74 | unsigned st_ctime; | ||
75 | unsigned st_ctime_nsec; | ||
76 | |||
77 | unsigned long long st_ino; | ||
78 | } __attribute__((packed)); | ||
79 | |||
80 | typedef struct compat_siginfo { | ||
81 | int si_signo; | ||
82 | int si_errno; | ||
83 | int si_code; | ||
84 | |||
85 | union { | ||
86 | int _pad[((128 / sizeof(int)) - 3)]; | ||
87 | |||
88 | /* kill() */ | ||
89 | struct { | ||
90 | unsigned int _pid; /* sender's pid */ | ||
91 | unsigned int _uid; /* sender's uid */ | ||
92 | } _kill; | ||
93 | |||
94 | /* POSIX.1b timers */ | ||
95 | struct { | ||
96 | compat_timer_t _tid; /* timer id */ | ||
97 | int _overrun; /* overrun count */ | ||
98 | compat_sigval_t _sigval; /* same as below */ | ||
99 | int _sys_private; /* not to be passed to user */ | ||
100 | int _overrun_incr; /* amount to add to overrun */ | ||
101 | } _timer; | ||
102 | |||
103 | /* POSIX.1b signals */ | ||
104 | struct { | ||
105 | unsigned int _pid; /* sender's pid */ | ||
106 | unsigned int _uid; /* sender's uid */ | ||
107 | compat_sigval_t _sigval; | ||
108 | } _rt; | ||
109 | |||
110 | /* SIGCHLD */ | ||
111 | struct { | ||
112 | unsigned int _pid; /* which child */ | ||
113 | unsigned int _uid; /* sender's uid */ | ||
114 | int _status; /* exit code */ | ||
115 | compat_clock_t _utime; | ||
116 | compat_clock_t _stime; | ||
117 | } _sigchld; | ||
118 | |||
119 | /* SIGILL, SIGFPE, SIGSEGV, SIGBUS */ | ||
120 | struct { | ||
121 | unsigned int _addr; /* faulting insn/memory ref. */ | ||
122 | } _sigfault; | ||
123 | |||
124 | /* SIGPOLL */ | ||
125 | struct { | ||
126 | int _band; /* POLL_IN, POLL_OUT, POLL_MSG */ | ||
127 | int _fd; | ||
128 | } _sigpoll; | ||
129 | } _sifields; | ||
130 | } compat_siginfo_t; | ||
131 | |||
132 | struct sigframe32 { | ||
133 | u32 pretcode; | ||
134 | int sig; | ||
135 | struct sigcontext_ia32 sc; | ||
136 | struct _fpstate_ia32 fpstate; | ||
137 | unsigned int extramask[_COMPAT_NSIG_WORDS-1]; | ||
138 | }; | ||
139 | |||
140 | struct rt_sigframe32 { | ||
141 | u32 pretcode; | ||
142 | int sig; | ||
143 | u32 pinfo; | ||
144 | u32 puc; | ||
145 | compat_siginfo_t info; | ||
146 | struct ucontext_ia32 uc; | ||
147 | struct _fpstate_ia32 fpstate; | ||
148 | }; | ||
149 | |||
150 | struct ustat32 { | ||
151 | __u32 f_tfree; | ||
152 | compat_ino_t f_tinode; | ||
153 | char f_fname[6]; | ||
154 | char f_fpack[6]; | ||
155 | }; | ||
156 | |||
157 | #define IA32_STACK_TOP IA32_PAGE_OFFSET | ||
158 | |||
159 | #ifdef __KERNEL__ | ||
160 | struct linux_binprm; | ||
161 | extern int ia32_setup_arg_pages(struct linux_binprm *bprm, | ||
162 | unsigned long stack_top, int exec_stack); | ||
163 | struct mm_struct; | ||
164 | extern void ia32_pick_mmap_layout(struct mm_struct *mm); | ||
165 | |||
166 | #endif | ||
167 | |||
168 | #endif /* !CONFIG_IA32_SUPPORT */ | ||
169 | |||
170 | #endif /* _ASM_X86_IA32_H */ | ||
diff --git a/arch/x86/include/asm/ia32_unistd.h b/arch/x86/include/asm/ia32_unistd.h new file mode 100644 index 000000000000..976f6ecd2ce6 --- /dev/null +++ b/arch/x86/include/asm/ia32_unistd.h | |||
@@ -0,0 +1,18 @@ | |||
1 | #ifndef _ASM_X86_IA32_UNISTD_H | ||
2 | #define _ASM_X86_IA32_UNISTD_H | ||
3 | |||
4 | /* | ||
5 | * This file contains the system call numbers of the ia32 port, | ||
6 | * this is for the kernel only. | ||
7 | * Only add syscalls here where some part of the kernel needs to know | ||
8 | * the number. This should be otherwise in sync with asm-x86/unistd_32.h. -AK | ||
9 | */ | ||
10 | |||
11 | #define __NR_ia32_restart_syscall 0 | ||
12 | #define __NR_ia32_exit 1 | ||
13 | #define __NR_ia32_read 3 | ||
14 | #define __NR_ia32_write 4 | ||
15 | #define __NR_ia32_sigreturn 119 | ||
16 | #define __NR_ia32_rt_sigreturn 173 | ||
17 | |||
18 | #endif /* _ASM_X86_IA32_UNISTD_H */ | ||
diff --git a/arch/x86/include/asm/idle.h b/arch/x86/include/asm/idle.h new file mode 100644 index 000000000000..44c89c3a23e9 --- /dev/null +++ b/arch/x86/include/asm/idle.h | |||
@@ -0,0 +1,16 @@ | |||
1 | #ifndef _ASM_X86_IDLE_H | ||
2 | #define _ASM_X86_IDLE_H | ||
3 | |||
4 | #define IDLE_START 1 | ||
5 | #define IDLE_END 2 | ||
6 | |||
7 | struct notifier_block; | ||
8 | void idle_notifier_register(struct notifier_block *n); | ||
9 | void idle_notifier_unregister(struct notifier_block *n); | ||
10 | |||
11 | void enter_idle(void); | ||
12 | void exit_idle(void); | ||
13 | |||
14 | void c1e_remove_cpu(int cpu); | ||
15 | |||
16 | #endif /* _ASM_X86_IDLE_H */ | ||
diff --git a/arch/x86/include/asm/intel_arch_perfmon.h b/arch/x86/include/asm/intel_arch_perfmon.h new file mode 100644 index 000000000000..fa0fd068bc2e --- /dev/null +++ b/arch/x86/include/asm/intel_arch_perfmon.h | |||
@@ -0,0 +1,31 @@ | |||
1 | #ifndef _ASM_X86_INTEL_ARCH_PERFMON_H | ||
2 | #define _ASM_X86_INTEL_ARCH_PERFMON_H | ||
3 | |||
4 | #define MSR_ARCH_PERFMON_PERFCTR0 0xc1 | ||
5 | #define MSR_ARCH_PERFMON_PERFCTR1 0xc2 | ||
6 | |||
7 | #define MSR_ARCH_PERFMON_EVENTSEL0 0x186 | ||
8 | #define MSR_ARCH_PERFMON_EVENTSEL1 0x187 | ||
9 | |||
10 | #define ARCH_PERFMON_EVENTSEL0_ENABLE (1 << 22) | ||
11 | #define ARCH_PERFMON_EVENTSEL_INT (1 << 20) | ||
12 | #define ARCH_PERFMON_EVENTSEL_OS (1 << 17) | ||
13 | #define ARCH_PERFMON_EVENTSEL_USR (1 << 16) | ||
14 | |||
15 | #define ARCH_PERFMON_UNHALTED_CORE_CYCLES_SEL (0x3c) | ||
16 | #define ARCH_PERFMON_UNHALTED_CORE_CYCLES_UMASK (0x00 << 8) | ||
17 | #define ARCH_PERFMON_UNHALTED_CORE_CYCLES_INDEX (0) | ||
18 | #define ARCH_PERFMON_UNHALTED_CORE_CYCLES_PRESENT \ | ||
19 | (1 << (ARCH_PERFMON_UNHALTED_CORE_CYCLES_INDEX)) | ||
20 | |||
21 | union cpuid10_eax { | ||
22 | struct { | ||
23 | unsigned int version_id:8; | ||
24 | unsigned int num_counters:8; | ||
25 | unsigned int bit_width:8; | ||
26 | unsigned int mask_length:8; | ||
27 | } split; | ||
28 | unsigned int full; | ||
29 | }; | ||
30 | |||
31 | #endif /* _ASM_X86_INTEL_ARCH_PERFMON_H */ | ||
diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h new file mode 100644 index 000000000000..5618a103f395 --- /dev/null +++ b/arch/x86/include/asm/io.h | |||
@@ -0,0 +1,91 @@ | |||
1 | #ifndef _ASM_X86_IO_H | ||
2 | #define _ASM_X86_IO_H | ||
3 | |||
4 | #define ARCH_HAS_IOREMAP_WC | ||
5 | |||
6 | #include <linux/compiler.h> | ||
7 | |||
8 | #define build_mmio_read(name, size, type, reg, barrier) \ | ||
9 | static inline type name(const volatile void __iomem *addr) \ | ||
10 | { type ret; asm volatile("mov" size " %1,%0":reg (ret) \ | ||
11 | :"m" (*(volatile type __force *)addr) barrier); return ret; } | ||
12 | |||
13 | #define build_mmio_write(name, size, type, reg, barrier) \ | ||
14 | static inline void name(type val, volatile void __iomem *addr) \ | ||
15 | { asm volatile("mov" size " %0,%1": :reg (val), \ | ||
16 | "m" (*(volatile type __force *)addr) barrier); } | ||
17 | |||
18 | build_mmio_read(readb, "b", unsigned char, "=q", :"memory") | ||
19 | build_mmio_read(readw, "w", unsigned short, "=r", :"memory") | ||
20 | build_mmio_read(readl, "l", unsigned int, "=r", :"memory") | ||
21 | |||
22 | build_mmio_read(__readb, "b", unsigned char, "=q", ) | ||
23 | build_mmio_read(__readw, "w", unsigned short, "=r", ) | ||
24 | build_mmio_read(__readl, "l", unsigned int, "=r", ) | ||
25 | |||
26 | build_mmio_write(writeb, "b", unsigned char, "q", :"memory") | ||
27 | build_mmio_write(writew, "w", unsigned short, "r", :"memory") | ||
28 | build_mmio_write(writel, "l", unsigned int, "r", :"memory") | ||
29 | |||
30 | build_mmio_write(__writeb, "b", unsigned char, "q", ) | ||
31 | build_mmio_write(__writew, "w", unsigned short, "r", ) | ||
32 | build_mmio_write(__writel, "l", unsigned int, "r", ) | ||
33 | |||
34 | #define readb_relaxed(a) __readb(a) | ||
35 | #define readw_relaxed(a) __readw(a) | ||
36 | #define readl_relaxed(a) __readl(a) | ||
37 | #define __raw_readb __readb | ||
38 | #define __raw_readw __readw | ||
39 | #define __raw_readl __readl | ||
40 | |||
41 | #define __raw_writeb __writeb | ||
42 | #define __raw_writew __writew | ||
43 | #define __raw_writel __writel | ||
44 | |||
45 | #define mmiowb() barrier() | ||
46 | |||
47 | #ifdef CONFIG_X86_64 | ||
48 | build_mmio_read(readq, "q", unsigned long, "=r", :"memory") | ||
49 | build_mmio_read(__readq, "q", unsigned long, "=r", ) | ||
50 | build_mmio_write(writeq, "q", unsigned long, "r", :"memory") | ||
51 | build_mmio_write(__writeq, "q", unsigned long, "r", ) | ||
52 | |||
53 | #define readq_relaxed(a) __readq(a) | ||
54 | #define __raw_readq __readq | ||
55 | #define __raw_writeq writeq | ||
56 | |||
57 | /* Let people know we have them */ | ||
58 | #define readq readq | ||
59 | #define writeq writeq | ||
60 | #endif | ||
61 | |||
62 | extern int iommu_bio_merge; | ||
63 | |||
64 | #ifdef CONFIG_X86_32 | ||
65 | # include "io_32.h" | ||
66 | #else | ||
67 | # include "io_64.h" | ||
68 | #endif | ||
69 | |||
70 | extern void *xlate_dev_mem_ptr(unsigned long phys); | ||
71 | extern void unxlate_dev_mem_ptr(unsigned long phys, void *addr); | ||
72 | |||
73 | extern int ioremap_change_attr(unsigned long vaddr, unsigned long size, | ||
74 | unsigned long prot_val); | ||
75 | extern void __iomem *ioremap_wc(unsigned long offset, unsigned long size); | ||
76 | |||
77 | /* | ||
78 | * early_ioremap() and early_iounmap() are for temporary early boot-time | ||
79 | * mappings, before the real ioremap() is functional. | ||
80 | * A boot-time mapping is currently limited to at most 16 pages. | ||
81 | */ | ||
82 | extern void early_ioremap_init(void); | ||
83 | extern void early_ioremap_clear(void); | ||
84 | extern void early_ioremap_reset(void); | ||
85 | extern void *early_ioremap(unsigned long offset, unsigned long size); | ||
86 | extern void *early_memremap(unsigned long offset, unsigned long size); | ||
87 | extern void early_iounmap(void *addr, unsigned long size); | ||
88 | extern void __iomem *fix_ioremap(unsigned idx, unsigned long phys); | ||
89 | |||
90 | |||
91 | #endif /* _ASM_X86_IO_H */ | ||
diff --git a/arch/x86/include/asm/io_32.h b/arch/x86/include/asm/io_32.h new file mode 100644 index 000000000000..d8e242e1b396 --- /dev/null +++ b/arch/x86/include/asm/io_32.h | |||
@@ -0,0 +1,284 @@ | |||
1 | #ifndef _ASM_X86_IO_32_H | ||
2 | #define _ASM_X86_IO_32_H | ||
3 | |||
4 | #include <linux/string.h> | ||
5 | #include <linux/compiler.h> | ||
6 | |||
7 | /* | ||
8 | * This file contains the definitions for the x86 IO instructions | ||
9 | * inb/inw/inl/outb/outw/outl and the "string versions" of the same | ||
10 | * (insb/insw/insl/outsb/outsw/outsl). You can also use "pausing" | ||
11 | * versions of the single-IO instructions (inb_p/inw_p/..). | ||
12 | * | ||
13 | * This file is not meant to be obfuscating: it's just complicated | ||
14 | * to (a) handle it all in a way that makes gcc able to optimize it | ||
15 | * as well as possible and (b) trying to avoid writing the same thing | ||
16 | * over and over again with slight variations and possibly making a | ||
17 | * mistake somewhere. | ||
18 | */ | ||
19 | |||
20 | /* | ||
21 | * Thanks to James van Artsdalen for a better timing-fix than | ||
22 | * the two short jumps: using outb's to a nonexistent port seems | ||
23 | * to guarantee better timings even on fast machines. | ||
24 | * | ||
25 | * On the other hand, I'd like to be sure of a non-existent port: | ||
26 | * I feel a bit unsafe about using 0x80 (should be safe, though) | ||
27 | * | ||
28 | * Linus | ||
29 | */ | ||
30 | |||
31 | /* | ||
32 | * Bit simplified and optimized by Jan Hubicka | ||
33 | * Support of BIGMEM added by Gerhard Wichert, Siemens AG, July 1999. | ||
34 | * | ||
35 | * isa_memset_io, isa_memcpy_fromio, isa_memcpy_toio added, | ||
36 | * isa_read[wl] and isa_write[wl] fixed | ||
37 | * - Arnaldo Carvalho de Melo <acme@conectiva.com.br> | ||
38 | */ | ||
39 | |||
40 | #define IO_SPACE_LIMIT 0xffff | ||
41 | |||
42 | #define XQUAD_PORTIO_BASE 0xfe400000 | ||
43 | #define XQUAD_PORTIO_QUAD 0x40000 /* 256k per quad. */ | ||
44 | |||
45 | #ifdef __KERNEL__ | ||
46 | |||
47 | #include <asm-generic/iomap.h> | ||
48 | |||
49 | #include <linux/vmalloc.h> | ||
50 | |||
51 | /* | ||
52 | * Convert a virtual cached pointer to an uncached pointer | ||
53 | */ | ||
54 | #define xlate_dev_kmem_ptr(p) p | ||
55 | |||
56 | /** | ||
57 | * virt_to_phys - map virtual addresses to physical | ||
58 | * @address: address to remap | ||
59 | * | ||
60 | * The returned physical address is the physical (CPU) mapping for | ||
61 | * the memory address given. It is only valid to use this function on | ||
62 | * addresses directly mapped or allocated via kmalloc. | ||
63 | * | ||
64 | * This function does not give bus mappings for DMA transfers. In | ||
65 | * almost all conceivable cases a device driver should not be using | ||
66 | * this function | ||
67 | */ | ||
68 | |||
69 | static inline unsigned long virt_to_phys(volatile void *address) | ||
70 | { | ||
71 | return __pa(address); | ||
72 | } | ||
73 | |||
74 | /** | ||
75 | * phys_to_virt - map physical address to virtual | ||
76 | * @address: address to remap | ||
77 | * | ||
78 | * The returned virtual address is a current CPU mapping for | ||
79 | * the memory address given. It is only valid to use this function on | ||
80 | * addresses that have a kernel mapping | ||
81 | * | ||
82 | * This function does not handle bus mappings for DMA transfers. In | ||
83 | * almost all conceivable cases a device driver should not be using | ||
84 | * this function | ||
85 | */ | ||
86 | |||
87 | static inline void *phys_to_virt(unsigned long address) | ||
88 | { | ||
89 | return __va(address); | ||
90 | } | ||
91 | |||
92 | /* | ||
93 | * Change "struct page" to physical address. | ||
94 | */ | ||
95 | #define page_to_phys(page) ((dma_addr_t)page_to_pfn(page) << PAGE_SHIFT) | ||
96 | |||
97 | /** | ||
98 | * ioremap - map bus memory into CPU space | ||
99 | * @offset: bus address of the memory | ||
100 | * @size: size of the resource to map | ||
101 | * | ||
102 | * ioremap performs a platform specific sequence of operations to | ||
103 | * make bus memory CPU accessible via the readb/readw/readl/writeb/ | ||
104 | * writew/writel functions and the other mmio helpers. The returned | ||
105 | * address is not guaranteed to be usable directly as a virtual | ||
106 | * address. | ||
107 | * | ||
108 | * If the area you are trying to map is a PCI BAR you should have a | ||
109 | * look at pci_iomap(). | ||
110 | */ | ||
111 | extern void __iomem *ioremap_nocache(resource_size_t offset, unsigned long size); | ||
112 | extern void __iomem *ioremap_cache(resource_size_t offset, unsigned long size); | ||
113 | extern void __iomem *ioremap_prot(resource_size_t offset, unsigned long size, | ||
114 | unsigned long prot_val); | ||
115 | |||
116 | /* | ||
117 | * The default ioremap() behavior is non-cached: | ||
118 | */ | ||
119 | static inline void __iomem *ioremap(resource_size_t offset, unsigned long size) | ||
120 | { | ||
121 | return ioremap_nocache(offset, size); | ||
122 | } | ||
123 | |||
124 | extern void iounmap(volatile void __iomem *addr); | ||
125 | |||
126 | /* | ||
127 | * ISA I/O bus memory addresses are 1:1 with the physical address. | ||
128 | */ | ||
129 | #define isa_virt_to_bus virt_to_phys | ||
130 | #define isa_page_to_bus page_to_phys | ||
131 | #define isa_bus_to_virt phys_to_virt | ||
132 | |||
133 | /* | ||
134 | * However PCI ones are not necessarily 1:1 and therefore these interfaces | ||
135 | * are forbidden in portable PCI drivers. | ||
136 | * | ||
137 | * Allow them on x86 for legacy drivers, though. | ||
138 | */ | ||
139 | #define virt_to_bus virt_to_phys | ||
140 | #define bus_to_virt phys_to_virt | ||
141 | |||
142 | static inline void | ||
143 | memset_io(volatile void __iomem *addr, unsigned char val, int count) | ||
144 | { | ||
145 | memset((void __force *)addr, val, count); | ||
146 | } | ||
147 | |||
148 | static inline void | ||
149 | memcpy_fromio(void *dst, const volatile void __iomem *src, int count) | ||
150 | { | ||
151 | __memcpy(dst, (const void __force *)src, count); | ||
152 | } | ||
153 | |||
154 | static inline void | ||
155 | memcpy_toio(volatile void __iomem *dst, const void *src, int count) | ||
156 | { | ||
157 | __memcpy((void __force *)dst, src, count); | ||
158 | } | ||
159 | |||
160 | /* | ||
161 | * ISA space is 'always mapped' on a typical x86 system, no need to | ||
162 | * explicitly ioremap() it. The fact that the ISA IO space is mapped | ||
163 | * to PAGE_OFFSET is pure coincidence - it does not mean ISA values | ||
164 | * are physical addresses. The following constant pointer can be | ||
165 | * used as the IO-area pointer (it can be iounmapped as well, so the | ||
166 | * analogy with PCI is quite large): | ||
167 | */ | ||
168 | #define __ISA_IO_base ((char __iomem *)(PAGE_OFFSET)) | ||
169 | |||
170 | /* | ||
171 | * Cache management | ||
172 | * | ||
173 | * This needed for two cases | ||
174 | * 1. Out of order aware processors | ||
175 | * 2. Accidentally out of order processors (PPro errata #51) | ||
176 | */ | ||
177 | |||
178 | #if defined(CONFIG_X86_OOSTORE) || defined(CONFIG_X86_PPRO_FENCE) | ||
179 | |||
180 | static inline void flush_write_buffers(void) | ||
181 | { | ||
182 | asm volatile("lock; addl $0,0(%%esp)": : :"memory"); | ||
183 | } | ||
184 | |||
185 | #else | ||
186 | |||
187 | #define flush_write_buffers() do { } while (0) | ||
188 | |||
189 | #endif | ||
190 | |||
191 | #endif /* __KERNEL__ */ | ||
192 | |||
193 | extern void native_io_delay(void); | ||
194 | |||
195 | extern int io_delay_type; | ||
196 | extern void io_delay_init(void); | ||
197 | |||
198 | #if defined(CONFIG_PARAVIRT) | ||
199 | #include <asm/paravirt.h> | ||
200 | #else | ||
201 | |||
202 | static inline void slow_down_io(void) | ||
203 | { | ||
204 | native_io_delay(); | ||
205 | #ifdef REALLY_SLOW_IO | ||
206 | native_io_delay(); | ||
207 | native_io_delay(); | ||
208 | native_io_delay(); | ||
209 | #endif | ||
210 | } | ||
211 | |||
212 | #endif | ||
213 | |||
214 | #define __BUILDIO(bwl, bw, type) \ | ||
215 | static inline void out##bwl(unsigned type value, int port) \ | ||
216 | { \ | ||
217 | out##bwl##_local(value, port); \ | ||
218 | } \ | ||
219 | \ | ||
220 | static inline unsigned type in##bwl(int port) \ | ||
221 | { \ | ||
222 | return in##bwl##_local(port); \ | ||
223 | } | ||
224 | |||
225 | #define BUILDIO(bwl, bw, type) \ | ||
226 | static inline void out##bwl##_local(unsigned type value, int port) \ | ||
227 | { \ | ||
228 | asm volatile("out" #bwl " %" #bw "0, %w1" \ | ||
229 | : : "a"(value), "Nd"(port)); \ | ||
230 | } \ | ||
231 | \ | ||
232 | static inline unsigned type in##bwl##_local(int port) \ | ||
233 | { \ | ||
234 | unsigned type value; \ | ||
235 | asm volatile("in" #bwl " %w1, %" #bw "0" \ | ||
236 | : "=a"(value) : "Nd"(port)); \ | ||
237 | return value; \ | ||
238 | } \ | ||
239 | \ | ||
240 | static inline void out##bwl##_local_p(unsigned type value, int port) \ | ||
241 | { \ | ||
242 | out##bwl##_local(value, port); \ | ||
243 | slow_down_io(); \ | ||
244 | } \ | ||
245 | \ | ||
246 | static inline unsigned type in##bwl##_local_p(int port) \ | ||
247 | { \ | ||
248 | unsigned type value = in##bwl##_local(port); \ | ||
249 | slow_down_io(); \ | ||
250 | return value; \ | ||
251 | } \ | ||
252 | \ | ||
253 | __BUILDIO(bwl, bw, type) \ | ||
254 | \ | ||
255 | static inline void out##bwl##_p(unsigned type value, int port) \ | ||
256 | { \ | ||
257 | out##bwl(value, port); \ | ||
258 | slow_down_io(); \ | ||
259 | } \ | ||
260 | \ | ||
261 | static inline unsigned type in##bwl##_p(int port) \ | ||
262 | { \ | ||
263 | unsigned type value = in##bwl(port); \ | ||
264 | slow_down_io(); \ | ||
265 | return value; \ | ||
266 | } \ | ||
267 | \ | ||
268 | static inline void outs##bwl(int port, const void *addr, unsigned long count) \ | ||
269 | { \ | ||
270 | asm volatile("rep; outs" #bwl \ | ||
271 | : "+S"(addr), "+c"(count) : "d"(port)); \ | ||
272 | } \ | ||
273 | \ | ||
274 | static inline void ins##bwl(int port, void *addr, unsigned long count) \ | ||
275 | { \ | ||
276 | asm volatile("rep; ins" #bwl \ | ||
277 | : "+D"(addr), "+c"(count) : "d"(port)); \ | ||
278 | } | ||
279 | |||
280 | BUILDIO(b, b, char) | ||
281 | BUILDIO(w, w, short) | ||
282 | BUILDIO(l, , int) | ||
283 | |||
284 | #endif /* _ASM_X86_IO_32_H */ | ||
diff --git a/arch/x86/include/asm/io_64.h b/arch/x86/include/asm/io_64.h new file mode 100644 index 000000000000..fea325a1122f --- /dev/null +++ b/arch/x86/include/asm/io_64.h | |||
@@ -0,0 +1,244 @@ | |||
1 | #ifndef _ASM_X86_IO_64_H | ||
2 | #define _ASM_X86_IO_64_H | ||
3 | |||
4 | |||
5 | /* | ||
6 | * This file contains the definitions for the x86 IO instructions | ||
7 | * inb/inw/inl/outb/outw/outl and the "string versions" of the same | ||
8 | * (insb/insw/insl/outsb/outsw/outsl). You can also use "pausing" | ||
9 | * versions of the single-IO instructions (inb_p/inw_p/..). | ||
10 | * | ||
11 | * This file is not meant to be obfuscating: it's just complicated | ||
12 | * to (a) handle it all in a way that makes gcc able to optimize it | ||
13 | * as well as possible and (b) trying to avoid writing the same thing | ||
14 | * over and over again with slight variations and possibly making a | ||
15 | * mistake somewhere. | ||
16 | */ | ||
17 | |||
18 | /* | ||
19 | * Thanks to James van Artsdalen for a better timing-fix than | ||
20 | * the two short jumps: using outb's to a nonexistent port seems | ||
21 | * to guarantee better timings even on fast machines. | ||
22 | * | ||
23 | * On the other hand, I'd like to be sure of a non-existent port: | ||
24 | * I feel a bit unsafe about using 0x80 (should be safe, though) | ||
25 | * | ||
26 | * Linus | ||
27 | */ | ||
28 | |||
29 | /* | ||
30 | * Bit simplified and optimized by Jan Hubicka | ||
31 | * Support of BIGMEM added by Gerhard Wichert, Siemens AG, July 1999. | ||
32 | * | ||
33 | * isa_memset_io, isa_memcpy_fromio, isa_memcpy_toio added, | ||
34 | * isa_read[wl] and isa_write[wl] fixed | ||
35 | * - Arnaldo Carvalho de Melo <acme@conectiva.com.br> | ||
36 | */ | ||
37 | |||
38 | extern void native_io_delay(void); | ||
39 | |||
40 | extern int io_delay_type; | ||
41 | extern void io_delay_init(void); | ||
42 | |||
43 | #if defined(CONFIG_PARAVIRT) | ||
44 | #include <asm/paravirt.h> | ||
45 | #else | ||
46 | |||
47 | static inline void slow_down_io(void) | ||
48 | { | ||
49 | native_io_delay(); | ||
50 | #ifdef REALLY_SLOW_IO | ||
51 | native_io_delay(); | ||
52 | native_io_delay(); | ||
53 | native_io_delay(); | ||
54 | #endif | ||
55 | } | ||
56 | #endif | ||
57 | |||
58 | /* | ||
59 | * Talk about misusing macros.. | ||
60 | */ | ||
61 | #define __OUT1(s, x) \ | ||
62 | static inline void out##s(unsigned x value, unsigned short port) { | ||
63 | |||
64 | #define __OUT2(s, s1, s2) \ | ||
65 | asm volatile ("out" #s " %" s1 "0,%" s2 "1" | ||
66 | |||
67 | #ifndef REALLY_SLOW_IO | ||
68 | #define REALLY_SLOW_IO | ||
69 | #define UNSET_REALLY_SLOW_IO | ||
70 | #endif | ||
71 | |||
72 | #define __OUT(s, s1, x) \ | ||
73 | __OUT1(s, x) __OUT2(s, s1, "w") : : "a" (value), "Nd" (port)); \ | ||
74 | } \ | ||
75 | __OUT1(s##_p, x) __OUT2(s, s1, "w") : : "a" (value), "Nd" (port)); \ | ||
76 | slow_down_io(); \ | ||
77 | } | ||
78 | |||
79 | #define __IN1(s) \ | ||
80 | static inline RETURN_TYPE in##s(unsigned short port) \ | ||
81 | { \ | ||
82 | RETURN_TYPE _v; | ||
83 | |||
84 | #define __IN2(s, s1, s2) \ | ||
85 | asm volatile ("in" #s " %" s2 "1,%" s1 "0" | ||
86 | |||
87 | #define __IN(s, s1, i...) \ | ||
88 | __IN1(s) __IN2(s, s1, "w") : "=a" (_v) : "Nd" (port), ##i); \ | ||
89 | return _v; \ | ||
90 | } \ | ||
91 | __IN1(s##_p) __IN2(s, s1, "w") : "=a" (_v) : "Nd" (port), ##i); \ | ||
92 | slow_down_io(); \ | ||
93 | return _v; } | ||
94 | |||
95 | #ifdef UNSET_REALLY_SLOW_IO | ||
96 | #undef REALLY_SLOW_IO | ||
97 | #endif | ||
98 | |||
99 | #define __INS(s) \ | ||
100 | static inline void ins##s(unsigned short port, void *addr, \ | ||
101 | unsigned long count) \ | ||
102 | { \ | ||
103 | asm volatile ("rep ; ins" #s \ | ||
104 | : "=D" (addr), "=c" (count) \ | ||
105 | : "d" (port), "0" (addr), "1" (count)); \ | ||
106 | } | ||
107 | |||
108 | #define __OUTS(s) \ | ||
109 | static inline void outs##s(unsigned short port, const void *addr, \ | ||
110 | unsigned long count) \ | ||
111 | { \ | ||
112 | asm volatile ("rep ; outs" #s \ | ||
113 | : "=S" (addr), "=c" (count) \ | ||
114 | : "d" (port), "0" (addr), "1" (count)); \ | ||
115 | } | ||
116 | |||
117 | #define RETURN_TYPE unsigned char | ||
118 | __IN(b, "") | ||
119 | #undef RETURN_TYPE | ||
120 | #define RETURN_TYPE unsigned short | ||
121 | __IN(w, "") | ||
122 | #undef RETURN_TYPE | ||
123 | #define RETURN_TYPE unsigned int | ||
124 | __IN(l, "") | ||
125 | #undef RETURN_TYPE | ||
126 | |||
127 | __OUT(b, "b", char) | ||
128 | __OUT(w, "w", short) | ||
129 | __OUT(l, , int) | ||
130 | |||
131 | __INS(b) | ||
132 | __INS(w) | ||
133 | __INS(l) | ||
134 | |||
135 | __OUTS(b) | ||
136 | __OUTS(w) | ||
137 | __OUTS(l) | ||
138 | |||
139 | #define IO_SPACE_LIMIT 0xffff | ||
140 | |||
141 | #if defined(__KERNEL__) && defined(__x86_64__) | ||
142 | |||
143 | #include <linux/vmalloc.h> | ||
144 | |||
145 | #ifndef __i386__ | ||
146 | /* | ||
147 | * Change virtual addresses to physical addresses and vv. | ||
148 | * These are pretty trivial | ||
149 | */ | ||
150 | static inline unsigned long virt_to_phys(volatile void *address) | ||
151 | { | ||
152 | return __pa(address); | ||
153 | } | ||
154 | |||
155 | static inline void *phys_to_virt(unsigned long address) | ||
156 | { | ||
157 | return __va(address); | ||
158 | } | ||
159 | #endif | ||
160 | |||
161 | /* | ||
162 | * Change "struct page" to physical address. | ||
163 | */ | ||
164 | #define page_to_phys(page) ((dma_addr_t)page_to_pfn(page) << PAGE_SHIFT) | ||
165 | |||
166 | #include <asm-generic/iomap.h> | ||
167 | |||
168 | /* | ||
169 | * This one maps high address device memory and turns off caching for that area. | ||
170 | * it's useful if some control registers are in such an area and write combining | ||
171 | * or read caching is not desirable: | ||
172 | */ | ||
173 | extern void __iomem *ioremap_nocache(resource_size_t offset, unsigned long size); | ||
174 | extern void __iomem *ioremap_cache(resource_size_t offset, unsigned long size); | ||
175 | extern void __iomem *ioremap_prot(resource_size_t offset, unsigned long size, | ||
176 | unsigned long prot_val); | ||
177 | |||
178 | /* | ||
179 | * The default ioremap() behavior is non-cached: | ||
180 | */ | ||
181 | static inline void __iomem *ioremap(resource_size_t offset, unsigned long size) | ||
182 | { | ||
183 | return ioremap_nocache(offset, size); | ||
184 | } | ||
185 | |||
186 | extern void iounmap(volatile void __iomem *addr); | ||
187 | |||
188 | extern void __iomem *fix_ioremap(unsigned idx, unsigned long phys); | ||
189 | |||
190 | /* | ||
191 | * ISA I/O bus memory addresses are 1:1 with the physical address. | ||
192 | */ | ||
193 | #define isa_virt_to_bus virt_to_phys | ||
194 | #define isa_page_to_bus page_to_phys | ||
195 | #define isa_bus_to_virt phys_to_virt | ||
196 | |||
197 | /* | ||
198 | * However PCI ones are not necessarily 1:1 and therefore these interfaces | ||
199 | * are forbidden in portable PCI drivers. | ||
200 | * | ||
201 | * Allow them on x86 for legacy drivers, though. | ||
202 | */ | ||
203 | #define virt_to_bus virt_to_phys | ||
204 | #define bus_to_virt phys_to_virt | ||
205 | |||
206 | void __memcpy_fromio(void *, unsigned long, unsigned); | ||
207 | void __memcpy_toio(unsigned long, const void *, unsigned); | ||
208 | |||
209 | static inline void memcpy_fromio(void *to, const volatile void __iomem *from, | ||
210 | unsigned len) | ||
211 | { | ||
212 | __memcpy_fromio(to, (unsigned long)from, len); | ||
213 | } | ||
214 | |||
215 | static inline void memcpy_toio(volatile void __iomem *to, const void *from, | ||
216 | unsigned len) | ||
217 | { | ||
218 | __memcpy_toio((unsigned long)to, from, len); | ||
219 | } | ||
220 | |||
221 | void memset_io(volatile void __iomem *a, int b, size_t c); | ||
222 | |||
223 | /* | ||
224 | * ISA space is 'always mapped' on a typical x86 system, no need to | ||
225 | * explicitly ioremap() it. The fact that the ISA IO space is mapped | ||
226 | * to PAGE_OFFSET is pure coincidence - it does not mean ISA values | ||
227 | * are physical addresses. The following constant pointer can be | ||
228 | * used as the IO-area pointer (it can be iounmapped as well, so the | ||
229 | * analogy with PCI is quite large): | ||
230 | */ | ||
231 | #define __ISA_IO_base ((char __iomem *)(PAGE_OFFSET)) | ||
232 | |||
233 | #define flush_write_buffers() | ||
234 | |||
235 | #define BIO_VMERGE_BOUNDARY iommu_bio_merge | ||
236 | |||
237 | /* | ||
238 | * Convert a virtual cached pointer to an uncached pointer | ||
239 | */ | ||
240 | #define xlate_dev_kmem_ptr(p) p | ||
241 | |||
242 | #endif /* __KERNEL__ */ | ||
243 | |||
244 | #endif /* _ASM_X86_IO_64_H */ | ||
diff --git a/arch/x86/include/asm/io_apic.h b/arch/x86/include/asm/io_apic.h new file mode 100644 index 000000000000..6afd9933a7dd --- /dev/null +++ b/arch/x86/include/asm/io_apic.h | |||
@@ -0,0 +1,204 @@ | |||
1 | #ifndef _ASM_X86_IO_APIC_H | ||
2 | #define _ASM_X86_IO_APIC_H | ||
3 | |||
4 | #include <linux/types.h> | ||
5 | #include <asm/mpspec.h> | ||
6 | #include <asm/apicdef.h> | ||
7 | #include <asm/irq_vectors.h> | ||
8 | |||
9 | /* | ||
10 | * Intel IO-APIC support for SMP and UP systems. | ||
11 | * | ||
12 | * Copyright (C) 1997, 1998, 1999, 2000 Ingo Molnar | ||
13 | */ | ||
14 | |||
15 | /* I/O Unit Redirection Table */ | ||
16 | #define IO_APIC_REDIR_VECTOR_MASK 0x000FF | ||
17 | #define IO_APIC_REDIR_DEST_LOGICAL 0x00800 | ||
18 | #define IO_APIC_REDIR_DEST_PHYSICAL 0x00000 | ||
19 | #define IO_APIC_REDIR_SEND_PENDING (1 << 12) | ||
20 | #define IO_APIC_REDIR_REMOTE_IRR (1 << 14) | ||
21 | #define IO_APIC_REDIR_LEVEL_TRIGGER (1 << 15) | ||
22 | #define IO_APIC_REDIR_MASKED (1 << 16) | ||
23 | |||
24 | /* | ||
25 | * The structure of the IO-APIC: | ||
26 | */ | ||
27 | union IO_APIC_reg_00 { | ||
28 | u32 raw; | ||
29 | struct { | ||
30 | u32 __reserved_2 : 14, | ||
31 | LTS : 1, | ||
32 | delivery_type : 1, | ||
33 | __reserved_1 : 8, | ||
34 | ID : 8; | ||
35 | } __attribute__ ((packed)) bits; | ||
36 | }; | ||
37 | |||
38 | union IO_APIC_reg_01 { | ||
39 | u32 raw; | ||
40 | struct { | ||
41 | u32 version : 8, | ||
42 | __reserved_2 : 7, | ||
43 | PRQ : 1, | ||
44 | entries : 8, | ||
45 | __reserved_1 : 8; | ||
46 | } __attribute__ ((packed)) bits; | ||
47 | }; | ||
48 | |||
49 | union IO_APIC_reg_02 { | ||
50 | u32 raw; | ||
51 | struct { | ||
52 | u32 __reserved_2 : 24, | ||
53 | arbitration : 4, | ||
54 | __reserved_1 : 4; | ||
55 | } __attribute__ ((packed)) bits; | ||
56 | }; | ||
57 | |||
58 | union IO_APIC_reg_03 { | ||
59 | u32 raw; | ||
60 | struct { | ||
61 | u32 boot_DT : 1, | ||
62 | __reserved_1 : 31; | ||
63 | } __attribute__ ((packed)) bits; | ||
64 | }; | ||
65 | |||
66 | enum ioapic_irq_destination_types { | ||
67 | dest_Fixed = 0, | ||
68 | dest_LowestPrio = 1, | ||
69 | dest_SMI = 2, | ||
70 | dest__reserved_1 = 3, | ||
71 | dest_NMI = 4, | ||
72 | dest_INIT = 5, | ||
73 | dest__reserved_2 = 6, | ||
74 | dest_ExtINT = 7 | ||
75 | }; | ||
76 | |||
77 | struct IO_APIC_route_entry { | ||
78 | __u32 vector : 8, | ||
79 | delivery_mode : 3, /* 000: FIXED | ||
80 | * 001: lowest prio | ||
81 | * 111: ExtINT | ||
82 | */ | ||
83 | dest_mode : 1, /* 0: physical, 1: logical */ | ||
84 | delivery_status : 1, | ||
85 | polarity : 1, | ||
86 | irr : 1, | ||
87 | trigger : 1, /* 0: edge, 1: level */ | ||
88 | mask : 1, /* 0: enabled, 1: disabled */ | ||
89 | __reserved_2 : 15; | ||
90 | |||
91 | __u32 __reserved_3 : 24, | ||
92 | dest : 8; | ||
93 | } __attribute__ ((packed)); | ||
94 | |||
95 | struct IR_IO_APIC_route_entry { | ||
96 | __u64 vector : 8, | ||
97 | zero : 3, | ||
98 | index2 : 1, | ||
99 | delivery_status : 1, | ||
100 | polarity : 1, | ||
101 | irr : 1, | ||
102 | trigger : 1, | ||
103 | mask : 1, | ||
104 | reserved : 31, | ||
105 | format : 1, | ||
106 | index : 15; | ||
107 | } __attribute__ ((packed)); | ||
108 | |||
109 | #ifdef CONFIG_X86_IO_APIC | ||
110 | |||
111 | /* | ||
112 | * # of IO-APICs and # of IRQ routing registers | ||
113 | */ | ||
114 | extern int nr_ioapics; | ||
115 | extern int nr_ioapic_registers[MAX_IO_APICS]; | ||
116 | |||
117 | /* | ||
118 | * MP-BIOS irq configuration table structures: | ||
119 | */ | ||
120 | |||
121 | #define MP_MAX_IOAPIC_PIN 127 | ||
122 | |||
123 | struct mp_config_ioapic { | ||
124 | unsigned long mp_apicaddr; | ||
125 | unsigned int mp_apicid; | ||
126 | unsigned char mp_type; | ||
127 | unsigned char mp_apicver; | ||
128 | unsigned char mp_flags; | ||
129 | }; | ||
130 | |||
131 | struct mp_config_intsrc { | ||
132 | unsigned int mp_dstapic; | ||
133 | unsigned char mp_type; | ||
134 | unsigned char mp_irqtype; | ||
135 | unsigned short mp_irqflag; | ||
136 | unsigned char mp_srcbus; | ||
137 | unsigned char mp_srcbusirq; | ||
138 | unsigned char mp_dstirq; | ||
139 | }; | ||
140 | |||
141 | /* I/O APIC entries */ | ||
142 | extern struct mp_config_ioapic mp_ioapics[MAX_IO_APICS]; | ||
143 | |||
144 | /* # of MP IRQ source entries */ | ||
145 | extern int mp_irq_entries; | ||
146 | |||
147 | /* MP IRQ source entries */ | ||
148 | extern struct mp_config_intsrc mp_irqs[MAX_IRQ_SOURCES]; | ||
149 | |||
150 | /* non-0 if default (table-less) MP configuration */ | ||
151 | extern int mpc_default_type; | ||
152 | |||
153 | /* Older SiS APIC requires we rewrite the index register */ | ||
154 | extern int sis_apic_bug; | ||
155 | |||
156 | /* 1 if "noapic" boot option passed */ | ||
157 | extern int skip_ioapic_setup; | ||
158 | |||
159 | /* 1 if the timer IRQ uses the '8259A Virtual Wire' mode */ | ||
160 | extern int timer_through_8259; | ||
161 | |||
162 | static inline void disable_ioapic_setup(void) | ||
163 | { | ||
164 | skip_ioapic_setup = 1; | ||
165 | } | ||
166 | |||
167 | /* | ||
168 | * If we use the IO-APIC for IRQ routing, disable automatic | ||
169 | * assignment of PCI IRQ's. | ||
170 | */ | ||
171 | #define io_apic_assign_pci_irqs \ | ||
172 | (mp_irq_entries && !skip_ioapic_setup && io_apic_irqs) | ||
173 | |||
174 | #ifdef CONFIG_ACPI | ||
175 | extern int io_apic_get_unique_id(int ioapic, int apic_id); | ||
176 | extern int io_apic_get_version(int ioapic); | ||
177 | extern int io_apic_get_redir_entries(int ioapic); | ||
178 | extern int io_apic_set_pci_routing(int ioapic, int pin, int irq, | ||
179 | int edge_level, int active_high_low); | ||
180 | #endif /* CONFIG_ACPI */ | ||
181 | |||
182 | extern int (*ioapic_renumber_irq)(int ioapic, int irq); | ||
183 | extern void ioapic_init_mappings(void); | ||
184 | |||
185 | #ifdef CONFIG_X86_64 | ||
186 | extern int save_mask_IO_APIC_setup(void); | ||
187 | extern void restore_IO_APIC_setup(void); | ||
188 | extern void reinit_intr_remapped_IO_APIC(int); | ||
189 | #endif | ||
190 | |||
191 | extern int probe_nr_irqs(void); | ||
192 | |||
193 | #else /* !CONFIG_X86_IO_APIC */ | ||
194 | #define io_apic_assign_pci_irqs 0 | ||
195 | static const int timer_through_8259 = 0; | ||
196 | static inline void ioapic_init_mappings(void) { } | ||
197 | |||
198 | static inline int probe_nr_irqs(void) | ||
199 | { | ||
200 | return NR_IRQS; | ||
201 | } | ||
202 | #endif | ||
203 | |||
204 | #endif /* _ASM_X86_IO_APIC_H */ | ||
diff --git a/arch/x86/include/asm/ioctl.h b/arch/x86/include/asm/ioctl.h new file mode 100644 index 000000000000..b279fe06dfe5 --- /dev/null +++ b/arch/x86/include/asm/ioctl.h | |||
@@ -0,0 +1 @@ | |||
#include <asm-generic/ioctl.h> | |||
diff --git a/arch/x86/include/asm/ioctls.h b/arch/x86/include/asm/ioctls.h new file mode 100644 index 000000000000..0d5b23b7b06e --- /dev/null +++ b/arch/x86/include/asm/ioctls.h | |||
@@ -0,0 +1,94 @@ | |||
1 | #ifndef _ASM_X86_IOCTLS_H | ||
2 | #define _ASM_X86_IOCTLS_H | ||
3 | |||
4 | #include <asm/ioctl.h> | ||
5 | |||
6 | /* 0x54 is just a magic number to make these relatively unique ('T') */ | ||
7 | |||
8 | #define TCGETS 0x5401 | ||
9 | #define TCSETS 0x5402 /* Clashes with SNDCTL_TMR_START sound ioctl */ | ||
10 | #define TCSETSW 0x5403 | ||
11 | #define TCSETSF 0x5404 | ||
12 | #define TCGETA 0x5405 | ||
13 | #define TCSETA 0x5406 | ||
14 | #define TCSETAW 0x5407 | ||
15 | #define TCSETAF 0x5408 | ||
16 | #define TCSBRK 0x5409 | ||
17 | #define TCXONC 0x540A | ||
18 | #define TCFLSH 0x540B | ||
19 | #define TIOCEXCL 0x540C | ||
20 | #define TIOCNXCL 0x540D | ||
21 | #define TIOCSCTTY 0x540E | ||
22 | #define TIOCGPGRP 0x540F | ||
23 | #define TIOCSPGRP 0x5410 | ||
24 | #define TIOCOUTQ 0x5411 | ||
25 | #define TIOCSTI 0x5412 | ||
26 | #define TIOCGWINSZ 0x5413 | ||
27 | #define TIOCSWINSZ 0x5414 | ||
28 | #define TIOCMGET 0x5415 | ||
29 | #define TIOCMBIS 0x5416 | ||
30 | #define TIOCMBIC 0x5417 | ||
31 | #define TIOCMSET 0x5418 | ||
32 | #define TIOCGSOFTCAR 0x5419 | ||
33 | #define TIOCSSOFTCAR 0x541A | ||
34 | #define FIONREAD 0x541B | ||
35 | #define TIOCINQ FIONREAD | ||
36 | #define TIOCLINUX 0x541C | ||
37 | #define TIOCCONS 0x541D | ||
38 | #define TIOCGSERIAL 0x541E | ||
39 | #define TIOCSSERIAL 0x541F | ||
40 | #define TIOCPKT 0x5420 | ||
41 | #define FIONBIO 0x5421 | ||
42 | #define TIOCNOTTY 0x5422 | ||
43 | #define TIOCSETD 0x5423 | ||
44 | #define TIOCGETD 0x5424 | ||
45 | #define TCSBRKP 0x5425 /* Needed for POSIX tcsendbreak() */ | ||
46 | /* #define TIOCTTYGSTRUCT 0x5426 - Former debugging-only ioctl */ | ||
47 | #define TIOCSBRK 0x5427 /* BSD compatibility */ | ||
48 | #define TIOCCBRK 0x5428 /* BSD compatibility */ | ||
49 | #define TIOCGSID 0x5429 /* Return the session ID of FD */ | ||
50 | #define TCGETS2 _IOR('T', 0x2A, struct termios2) | ||
51 | #define TCSETS2 _IOW('T', 0x2B, struct termios2) | ||
52 | #define TCSETSW2 _IOW('T', 0x2C, struct termios2) | ||
53 | #define TCSETSF2 _IOW('T', 0x2D, struct termios2) | ||
54 | #define TIOCGRS485 0x542E | ||
55 | #define TIOCSRS485 0x542F | ||
56 | #define TIOCGPTN _IOR('T', 0x30, unsigned int) | ||
57 | /* Get Pty Number (of pty-mux device) */ | ||
58 | #define TIOCSPTLCK _IOW('T', 0x31, int) /* Lock/unlock Pty */ | ||
59 | #define TCGETX 0x5432 /* SYS5 TCGETX compatibility */ | ||
60 | #define TCSETX 0x5433 | ||
61 | #define TCSETXF 0x5434 | ||
62 | #define TCSETXW 0x5435 | ||
63 | |||
64 | #define FIONCLEX 0x5450 | ||
65 | #define FIOCLEX 0x5451 | ||
66 | #define FIOASYNC 0x5452 | ||
67 | #define TIOCSERCONFIG 0x5453 | ||
68 | #define TIOCSERGWILD 0x5454 | ||
69 | #define TIOCSERSWILD 0x5455 | ||
70 | #define TIOCGLCKTRMIOS 0x5456 | ||
71 | #define TIOCSLCKTRMIOS 0x5457 | ||
72 | #define TIOCSERGSTRUCT 0x5458 /* For debugging only */ | ||
73 | #define TIOCSERGETLSR 0x5459 /* Get line status register */ | ||
74 | #define TIOCSERGETMULTI 0x545A /* Get multiport config */ | ||
75 | #define TIOCSERSETMULTI 0x545B /* Set multiport config */ | ||
76 | |||
77 | #define TIOCMIWAIT 0x545C /* wait for a change on serial input line(s) */ | ||
78 | #define TIOCGICOUNT 0x545D /* read serial port inline interrupt counts */ | ||
79 | #define TIOCGHAYESESP 0x545E /* Get Hayes ESP configuration */ | ||
80 | #define TIOCSHAYESESP 0x545F /* Set Hayes ESP configuration */ | ||
81 | #define FIOQSIZE 0x5460 | ||
82 | |||
83 | /* Used for packet mode */ | ||
84 | #define TIOCPKT_DATA 0 | ||
85 | #define TIOCPKT_FLUSHREAD 1 | ||
86 | #define TIOCPKT_FLUSHWRITE 2 | ||
87 | #define TIOCPKT_STOP 4 | ||
88 | #define TIOCPKT_START 8 | ||
89 | #define TIOCPKT_NOSTOP 16 | ||
90 | #define TIOCPKT_DOSTOP 32 | ||
91 | |||
92 | #define TIOCSER_TEMT 0x01 /* Transmitter physically empty */ | ||
93 | |||
94 | #endif /* _ASM_X86_IOCTLS_H */ | ||
diff --git a/arch/x86/include/asm/iommu.h b/arch/x86/include/asm/iommu.h new file mode 100644 index 000000000000..98e28ea8cd16 --- /dev/null +++ b/arch/x86/include/asm/iommu.h | |||
@@ -0,0 +1,50 @@ | |||
1 | #ifndef _ASM_X86_IOMMU_H | ||
2 | #define _ASM_X86_IOMMU_H | ||
3 | |||
4 | extern void pci_iommu_shutdown(void); | ||
5 | extern void no_iommu_init(void); | ||
6 | extern struct dma_mapping_ops nommu_dma_ops; | ||
7 | extern int force_iommu, no_iommu; | ||
8 | extern int iommu_detected; | ||
9 | extern int dmar_disabled; | ||
10 | extern int forbid_dac; | ||
11 | |||
12 | extern unsigned long iommu_nr_pages(unsigned long addr, unsigned long len); | ||
13 | |||
14 | /* 10 seconds */ | ||
15 | #define DMAR_OPERATION_TIMEOUT ((cycles_t) tsc_khz*10*1000) | ||
16 | |||
17 | #ifdef CONFIG_GART_IOMMU | ||
18 | extern int gart_iommu_aperture; | ||
19 | extern int gart_iommu_aperture_allowed; | ||
20 | extern int gart_iommu_aperture_disabled; | ||
21 | |||
22 | extern void early_gart_iommu_check(void); | ||
23 | extern void gart_iommu_init(void); | ||
24 | extern void gart_iommu_shutdown(void); | ||
25 | extern void __init gart_parse_options(char *); | ||
26 | extern void gart_iommu_hole_init(void); | ||
27 | |||
28 | #else | ||
29 | #define gart_iommu_aperture 0 | ||
30 | #define gart_iommu_aperture_allowed 0 | ||
31 | #define gart_iommu_aperture_disabled 1 | ||
32 | |||
33 | static inline void early_gart_iommu_check(void) | ||
34 | { | ||
35 | } | ||
36 | static inline void gart_iommu_init(void) | ||
37 | { | ||
38 | } | ||
39 | static inline void gart_iommu_shutdown(void) | ||
40 | { | ||
41 | } | ||
42 | static inline void gart_parse_options(char *options) | ||
43 | { | ||
44 | } | ||
45 | static inline void gart_iommu_hole_init(void) | ||
46 | { | ||
47 | } | ||
48 | #endif | ||
49 | |||
50 | #endif /* _ASM_X86_IOMMU_H */ | ||
diff --git a/arch/x86/include/asm/ipcbuf.h b/arch/x86/include/asm/ipcbuf.h new file mode 100644 index 000000000000..ee678fd51594 --- /dev/null +++ b/arch/x86/include/asm/ipcbuf.h | |||
@@ -0,0 +1,28 @@ | |||
1 | #ifndef _ASM_X86_IPCBUF_H | ||
2 | #define _ASM_X86_IPCBUF_H | ||
3 | |||
4 | /* | ||
5 | * The ipc64_perm structure for x86 architecture. | ||
6 | * Note extra padding because this structure is passed back and forth | ||
7 | * between kernel and user space. | ||
8 | * | ||
9 | * Pad space is left for: | ||
10 | * - 32-bit mode_t and seq | ||
11 | * - 2 miscellaneous 32-bit values | ||
12 | */ | ||
13 | |||
14 | struct ipc64_perm { | ||
15 | __kernel_key_t key; | ||
16 | __kernel_uid32_t uid; | ||
17 | __kernel_gid32_t gid; | ||
18 | __kernel_uid32_t cuid; | ||
19 | __kernel_gid32_t cgid; | ||
20 | __kernel_mode_t mode; | ||
21 | unsigned short __pad1; | ||
22 | unsigned short seq; | ||
23 | unsigned short __pad2; | ||
24 | unsigned long __unused1; | ||
25 | unsigned long __unused2; | ||
26 | }; | ||
27 | |||
28 | #endif /* _ASM_X86_IPCBUF_H */ | ||
diff --git a/arch/x86/include/asm/ipi.h b/arch/x86/include/asm/ipi.h new file mode 100644 index 000000000000..f89dffb28aa9 --- /dev/null +++ b/arch/x86/include/asm/ipi.h | |||
@@ -0,0 +1,138 @@ | |||
1 | #ifndef _ASM_X86_IPI_H | ||
2 | #define _ASM_X86_IPI_H | ||
3 | |||
4 | /* | ||
5 | * Copyright 2004 James Cleverdon, IBM. | ||
6 | * Subject to the GNU Public License, v.2 | ||
7 | * | ||
8 | * Generic APIC InterProcessor Interrupt code. | ||
9 | * | ||
10 | * Moved to include file by James Cleverdon from | ||
11 | * arch/x86-64/kernel/smp.c | ||
12 | * | ||
13 | * Copyrights from kernel/smp.c: | ||
14 | * | ||
15 | * (c) 1995 Alan Cox, Building #3 <alan@redhat.com> | ||
16 | * (c) 1998-99, 2000 Ingo Molnar <mingo@redhat.com> | ||
17 | * (c) 2002,2003 Andi Kleen, SuSE Labs. | ||
18 | * Subject to the GNU Public License, v.2 | ||
19 | */ | ||
20 | |||
21 | #include <asm/hw_irq.h> | ||
22 | #include <asm/apic.h> | ||
23 | #include <asm/smp.h> | ||
24 | |||
25 | /* | ||
26 | * the following functions deal with sending IPIs between CPUs. | ||
27 | * | ||
28 | * We use 'broadcast', CPU->CPU IPIs and self-IPIs too. | ||
29 | */ | ||
30 | |||
31 | static inline unsigned int __prepare_ICR(unsigned int shortcut, int vector, | ||
32 | unsigned int dest) | ||
33 | { | ||
34 | unsigned int icr = shortcut | dest; | ||
35 | |||
36 | switch (vector) { | ||
37 | default: | ||
38 | icr |= APIC_DM_FIXED | vector; | ||
39 | break; | ||
40 | case NMI_VECTOR: | ||
41 | icr |= APIC_DM_NMI; | ||
42 | break; | ||
43 | } | ||
44 | return icr; | ||
45 | } | ||
46 | |||
47 | static inline int __prepare_ICR2(unsigned int mask) | ||
48 | { | ||
49 | return SET_APIC_DEST_FIELD(mask); | ||
50 | } | ||
51 | |||
52 | static inline void __xapic_wait_icr_idle(void) | ||
53 | { | ||
54 | while (native_apic_mem_read(APIC_ICR) & APIC_ICR_BUSY) | ||
55 | cpu_relax(); | ||
56 | } | ||
57 | |||
58 | static inline void __send_IPI_shortcut(unsigned int shortcut, int vector, | ||
59 | unsigned int dest) | ||
60 | { | ||
61 | /* | ||
62 | * Subtle. In the case of the 'never do double writes' workaround | ||
63 | * we have to lock out interrupts to be safe. As we don't care | ||
64 | * of the value read we use an atomic rmw access to avoid costly | ||
65 | * cli/sti. Otherwise we use an even cheaper single atomic write | ||
66 | * to the APIC. | ||
67 | */ | ||
68 | unsigned int cfg; | ||
69 | |||
70 | /* | ||
71 | * Wait for idle. | ||
72 | */ | ||
73 | __xapic_wait_icr_idle(); | ||
74 | |||
75 | /* | ||
76 | * No need to touch the target chip field | ||
77 | */ | ||
78 | cfg = __prepare_ICR(shortcut, vector, dest); | ||
79 | |||
80 | /* | ||
81 | * Send the IPI. The write to APIC_ICR fires this off. | ||
82 | */ | ||
83 | native_apic_mem_write(APIC_ICR, cfg); | ||
84 | } | ||
85 | |||
86 | /* | ||
87 | * This is used to send an IPI with no shorthand notation (the destination is | ||
88 | * specified in bits 56 to 63 of the ICR). | ||
89 | */ | ||
90 | static inline void __send_IPI_dest_field(unsigned int mask, int vector, | ||
91 | unsigned int dest) | ||
92 | { | ||
93 | unsigned long cfg; | ||
94 | |||
95 | /* | ||
96 | * Wait for idle. | ||
97 | */ | ||
98 | if (unlikely(vector == NMI_VECTOR)) | ||
99 | safe_apic_wait_icr_idle(); | ||
100 | else | ||
101 | __xapic_wait_icr_idle(); | ||
102 | |||
103 | /* | ||
104 | * prepare target chip field | ||
105 | */ | ||
106 | cfg = __prepare_ICR2(mask); | ||
107 | native_apic_mem_write(APIC_ICR2, cfg); | ||
108 | |||
109 | /* | ||
110 | * program the ICR | ||
111 | */ | ||
112 | cfg = __prepare_ICR(0, vector, dest); | ||
113 | |||
114 | /* | ||
115 | * Send the IPI. The write to APIC_ICR fires this off. | ||
116 | */ | ||
117 | native_apic_mem_write(APIC_ICR, cfg); | ||
118 | } | ||
119 | |||
120 | static inline void send_IPI_mask_sequence(cpumask_t mask, int vector) | ||
121 | { | ||
122 | unsigned long flags; | ||
123 | unsigned long query_cpu; | ||
124 | |||
125 | /* | ||
126 | * Hack. The clustered APIC addressing mode doesn't allow us to send | ||
127 | * to an arbitrary mask, so I do a unicast to each CPU instead. | ||
128 | * - mbligh | ||
129 | */ | ||
130 | local_irq_save(flags); | ||
131 | for_each_cpu_mask_nr(query_cpu, mask) { | ||
132 | __send_IPI_dest_field(per_cpu(x86_cpu_to_apicid, query_cpu), | ||
133 | vector, APIC_DEST_PHYSICAL); | ||
134 | } | ||
135 | local_irq_restore(flags); | ||
136 | } | ||
137 | |||
138 | #endif /* _ASM_X86_IPI_H */ | ||
diff --git a/arch/x86/include/asm/irq.h b/arch/x86/include/asm/irq.h new file mode 100644 index 000000000000..bae0eda95486 --- /dev/null +++ b/arch/x86/include/asm/irq.h | |||
@@ -0,0 +1,50 @@ | |||
1 | #ifndef _ASM_X86_IRQ_H | ||
2 | #define _ASM_X86_IRQ_H | ||
3 | /* | ||
4 | * (C) 1992, 1993 Linus Torvalds, (C) 1997 Ingo Molnar | ||
5 | * | ||
6 | * IRQ/IPI changes taken from work by Thomas Radke | ||
7 | * <tomsoft@informatik.tu-chemnitz.de> | ||
8 | */ | ||
9 | |||
10 | #include <asm/apicdef.h> | ||
11 | #include <asm/irq_vectors.h> | ||
12 | |||
13 | static inline int irq_canonicalize(int irq) | ||
14 | { | ||
15 | return ((irq == 2) ? 9 : irq); | ||
16 | } | ||
17 | |||
18 | #ifdef CONFIG_X86_LOCAL_APIC | ||
19 | # define ARCH_HAS_NMI_WATCHDOG | ||
20 | #endif | ||
21 | |||
22 | #ifdef CONFIG_4KSTACKS | ||
23 | extern void irq_ctx_init(int cpu); | ||
24 | extern void irq_ctx_exit(int cpu); | ||
25 | # define __ARCH_HAS_DO_SOFTIRQ | ||
26 | #else | ||
27 | # define irq_ctx_init(cpu) do { } while (0) | ||
28 | # define irq_ctx_exit(cpu) do { } while (0) | ||
29 | # ifdef CONFIG_X86_64 | ||
30 | # define __ARCH_HAS_DO_SOFTIRQ | ||
31 | # endif | ||
32 | #endif | ||
33 | |||
34 | #ifdef CONFIG_IRQBALANCE | ||
35 | extern int irqbalance_disable(char *str); | ||
36 | #endif | ||
37 | |||
38 | #ifdef CONFIG_HOTPLUG_CPU | ||
39 | #include <linux/cpumask.h> | ||
40 | extern void fixup_irqs(cpumask_t map); | ||
41 | #endif | ||
42 | |||
43 | extern unsigned int do_IRQ(struct pt_regs *regs); | ||
44 | extern void init_IRQ(void); | ||
45 | extern void native_init_IRQ(void); | ||
46 | |||
47 | /* Interrupt vector management */ | ||
48 | extern DECLARE_BITMAP(used_vectors, NR_VECTORS); | ||
49 | |||
50 | #endif /* _ASM_X86_IRQ_H */ | ||
diff --git a/arch/x86/include/asm/irq_regs.h b/arch/x86/include/asm/irq_regs.h new file mode 100644 index 000000000000..89c898ab298b --- /dev/null +++ b/arch/x86/include/asm/irq_regs.h | |||
@@ -0,0 +1,5 @@ | |||
1 | #ifdef CONFIG_X86_32 | ||
2 | # include "irq_regs_32.h" | ||
3 | #else | ||
4 | # include "irq_regs_64.h" | ||
5 | #endif | ||
diff --git a/arch/x86/include/asm/irq_regs_32.h b/arch/x86/include/asm/irq_regs_32.h new file mode 100644 index 000000000000..af2f02d27fc7 --- /dev/null +++ b/arch/x86/include/asm/irq_regs_32.h | |||
@@ -0,0 +1,29 @@ | |||
1 | /* | ||
2 | * Per-cpu current frame pointer - the location of the last exception frame on | ||
3 | * the stack, stored in the per-cpu area. | ||
4 | * | ||
5 | * Jeremy Fitzhardinge <jeremy@goop.org> | ||
6 | */ | ||
7 | #ifndef _ASM_X86_IRQ_REGS_32_H | ||
8 | #define _ASM_X86_IRQ_REGS_32_H | ||
9 | |||
10 | #include <asm/percpu.h> | ||
11 | |||
12 | DECLARE_PER_CPU(struct pt_regs *, irq_regs); | ||
13 | |||
14 | static inline struct pt_regs *get_irq_regs(void) | ||
15 | { | ||
16 | return x86_read_percpu(irq_regs); | ||
17 | } | ||
18 | |||
19 | static inline struct pt_regs *set_irq_regs(struct pt_regs *new_regs) | ||
20 | { | ||
21 | struct pt_regs *old_regs; | ||
22 | |||
23 | old_regs = get_irq_regs(); | ||
24 | x86_write_percpu(irq_regs, new_regs); | ||
25 | |||
26 | return old_regs; | ||
27 | } | ||
28 | |||
29 | #endif /* _ASM_X86_IRQ_REGS_32_H */ | ||
diff --git a/arch/x86/include/asm/irq_regs_64.h b/arch/x86/include/asm/irq_regs_64.h new file mode 100644 index 000000000000..3dd9c0b70270 --- /dev/null +++ b/arch/x86/include/asm/irq_regs_64.h | |||
@@ -0,0 +1 @@ | |||
#include <asm-generic/irq_regs.h> | |||
diff --git a/arch/x86/include/asm/irq_remapping.h b/arch/x86/include/asm/irq_remapping.h new file mode 100644 index 000000000000..20e1fd588dbf --- /dev/null +++ b/arch/x86/include/asm/irq_remapping.h | |||
@@ -0,0 +1,8 @@ | |||
1 | #ifndef _ASM_X86_IRQ_REMAPPING_H | ||
2 | #define _ASM_X86_IRQ_REMAPPING_H | ||
3 | |||
4 | extern int x2apic; | ||
5 | |||
6 | #define IRTE_DEST(dest) ((x2apic) ? dest : dest << 8) | ||
7 | |||
8 | #endif /* _ASM_X86_IRQ_REMAPPING_H */ | ||
diff --git a/arch/x86/include/asm/irq_vectors.h b/arch/x86/include/asm/irq_vectors.h new file mode 100644 index 000000000000..d843ed0e9b2e --- /dev/null +++ b/arch/x86/include/asm/irq_vectors.h | |||
@@ -0,0 +1,164 @@ | |||
1 | #ifndef _ASM_X86_IRQ_VECTORS_H | ||
2 | #define _ASM_X86_IRQ_VECTORS_H | ||
3 | |||
4 | #include <linux/threads.h> | ||
5 | |||
6 | #define NMI_VECTOR 0x02 | ||
7 | |||
8 | /* | ||
9 | * IDT vectors usable for external interrupt sources start | ||
10 | * at 0x20: | ||
11 | */ | ||
12 | #define FIRST_EXTERNAL_VECTOR 0x20 | ||
13 | |||
14 | #ifdef CONFIG_X86_32 | ||
15 | # define SYSCALL_VECTOR 0x80 | ||
16 | #else | ||
17 | # define IA32_SYSCALL_VECTOR 0x80 | ||
18 | #endif | ||
19 | |||
20 | /* | ||
21 | * Reserve the lowest usable priority level 0x20 - 0x2f for triggering | ||
22 | * cleanup after irq migration. | ||
23 | */ | ||
24 | #define IRQ_MOVE_CLEANUP_VECTOR FIRST_EXTERNAL_VECTOR | ||
25 | |||
26 | /* | ||
27 | * Vectors 0x30-0x3f are used for ISA interrupts. | ||
28 | */ | ||
29 | #define IRQ0_VECTOR (FIRST_EXTERNAL_VECTOR + 0x10) | ||
30 | #define IRQ1_VECTOR (IRQ0_VECTOR + 1) | ||
31 | #define IRQ2_VECTOR (IRQ0_VECTOR + 2) | ||
32 | #define IRQ3_VECTOR (IRQ0_VECTOR + 3) | ||
33 | #define IRQ4_VECTOR (IRQ0_VECTOR + 4) | ||
34 | #define IRQ5_VECTOR (IRQ0_VECTOR + 5) | ||
35 | #define IRQ6_VECTOR (IRQ0_VECTOR + 6) | ||
36 | #define IRQ7_VECTOR (IRQ0_VECTOR + 7) | ||
37 | #define IRQ8_VECTOR (IRQ0_VECTOR + 8) | ||
38 | #define IRQ9_VECTOR (IRQ0_VECTOR + 9) | ||
39 | #define IRQ10_VECTOR (IRQ0_VECTOR + 10) | ||
40 | #define IRQ11_VECTOR (IRQ0_VECTOR + 11) | ||
41 | #define IRQ12_VECTOR (IRQ0_VECTOR + 12) | ||
42 | #define IRQ13_VECTOR (IRQ0_VECTOR + 13) | ||
43 | #define IRQ14_VECTOR (IRQ0_VECTOR + 14) | ||
44 | #define IRQ15_VECTOR (IRQ0_VECTOR + 15) | ||
45 | |||
46 | /* | ||
47 | * Special IRQ vectors used by the SMP architecture, 0xf0-0xff | ||
48 | * | ||
49 | * some of the following vectors are 'rare', they are merged | ||
50 | * into a single vector (CALL_FUNCTION_VECTOR) to save vector space. | ||
51 | * TLB, reschedule and local APIC vectors are performance-critical. | ||
52 | * | ||
53 | * Vectors 0xf0-0xfa are free (reserved for future Linux use). | ||
54 | */ | ||
55 | #ifdef CONFIG_X86_32 | ||
56 | |||
57 | # define SPURIOUS_APIC_VECTOR 0xff | ||
58 | # define ERROR_APIC_VECTOR 0xfe | ||
59 | # define INVALIDATE_TLB_VECTOR 0xfd | ||
60 | # define RESCHEDULE_VECTOR 0xfc | ||
61 | # define CALL_FUNCTION_VECTOR 0xfb | ||
62 | # define CALL_FUNCTION_SINGLE_VECTOR 0xfa | ||
63 | # define THERMAL_APIC_VECTOR 0xf0 | ||
64 | |||
65 | #else | ||
66 | |||
67 | #define SPURIOUS_APIC_VECTOR 0xff | ||
68 | #define ERROR_APIC_VECTOR 0xfe | ||
69 | #define RESCHEDULE_VECTOR 0xfd | ||
70 | #define CALL_FUNCTION_VECTOR 0xfc | ||
71 | #define CALL_FUNCTION_SINGLE_VECTOR 0xfb | ||
72 | #define THERMAL_APIC_VECTOR 0xfa | ||
73 | #define THRESHOLD_APIC_VECTOR 0xf9 | ||
74 | #define UV_BAU_MESSAGE 0xf8 | ||
75 | #define INVALIDATE_TLB_VECTOR_END 0xf7 | ||
76 | #define INVALIDATE_TLB_VECTOR_START 0xf0 /* f0-f7 used for TLB flush */ | ||
77 | |||
78 | #define NUM_INVALIDATE_TLB_VECTORS 8 | ||
79 | |||
80 | #endif | ||
81 | |||
82 | /* | ||
83 | * Local APIC timer IRQ vector is on a different priority level, | ||
84 | * to work around the 'lost local interrupt if more than 2 IRQ | ||
85 | * sources per level' errata. | ||
86 | */ | ||
87 | #define LOCAL_TIMER_VECTOR 0xef | ||
88 | |||
89 | /* | ||
90 | * First APIC vector available to drivers: (vectors 0x30-0xee) we | ||
91 | * start at 0x31(0x41) to spread out vectors evenly between priority | ||
92 | * levels. (0x80 is the syscall vector) | ||
93 | */ | ||
94 | #define FIRST_DEVICE_VECTOR (IRQ15_VECTOR + 2) | ||
95 | |||
96 | #define NR_VECTORS 256 | ||
97 | |||
98 | #define FPU_IRQ 13 | ||
99 | |||
100 | #define FIRST_VM86_IRQ 3 | ||
101 | #define LAST_VM86_IRQ 15 | ||
102 | #define invalid_vm86_irq(irq) ((irq) < 3 || (irq) > 15) | ||
103 | |||
104 | #ifdef CONFIG_X86_64 | ||
105 | # if NR_CPUS < MAX_IO_APICS | ||
106 | # define NR_IRQS (NR_VECTORS + (32 * NR_CPUS)) | ||
107 | # else | ||
108 | # define NR_IRQS (NR_VECTORS + (32 * MAX_IO_APICS)) | ||
109 | # endif | ||
110 | |||
111 | #elif !defined(CONFIG_X86_VOYAGER) | ||
112 | |||
113 | # if defined(CONFIG_X86_IO_APIC) || defined(CONFIG_PARAVIRT) || defined(CONFIG_X86_VISWS) | ||
114 | |||
115 | # define NR_IRQS 224 | ||
116 | |||
117 | # else /* IO_APIC || PARAVIRT */ | ||
118 | |||
119 | # define NR_IRQS 16 | ||
120 | |||
121 | # endif | ||
122 | |||
123 | #else /* !VISWS && !VOYAGER */ | ||
124 | |||
125 | # define NR_IRQS 224 | ||
126 | |||
127 | #endif /* VISWS */ | ||
128 | |||
129 | /* Voyager specific defines */ | ||
130 | /* These define the CPIs we use in linux */ | ||
131 | #define VIC_CPI_LEVEL0 0 | ||
132 | #define VIC_CPI_LEVEL1 1 | ||
133 | /* now the fake CPIs */ | ||
134 | #define VIC_TIMER_CPI 2 | ||
135 | #define VIC_INVALIDATE_CPI 3 | ||
136 | #define VIC_RESCHEDULE_CPI 4 | ||
137 | #define VIC_ENABLE_IRQ_CPI 5 | ||
138 | #define VIC_CALL_FUNCTION_CPI 6 | ||
139 | #define VIC_CALL_FUNCTION_SINGLE_CPI 7 | ||
140 | |||
141 | /* Now the QIC CPIs: Since we don't need the two initial levels, | ||
142 | * these are 2 less than the VIC CPIs */ | ||
143 | #define QIC_CPI_OFFSET 1 | ||
144 | #define QIC_TIMER_CPI (VIC_TIMER_CPI - QIC_CPI_OFFSET) | ||
145 | #define QIC_INVALIDATE_CPI (VIC_INVALIDATE_CPI - QIC_CPI_OFFSET) | ||
146 | #define QIC_RESCHEDULE_CPI (VIC_RESCHEDULE_CPI - QIC_CPI_OFFSET) | ||
147 | #define QIC_ENABLE_IRQ_CPI (VIC_ENABLE_IRQ_CPI - QIC_CPI_OFFSET) | ||
148 | #define QIC_CALL_FUNCTION_CPI (VIC_CALL_FUNCTION_CPI - QIC_CPI_OFFSET) | ||
149 | #define QIC_CALL_FUNCTION_SINGLE_CPI (VIC_CALL_FUNCTION_SINGLE_CPI - QIC_CPI_OFFSET) | ||
150 | |||
151 | #define VIC_START_FAKE_CPI VIC_TIMER_CPI | ||
152 | #define VIC_END_FAKE_CPI VIC_CALL_FUNCTION_SINGLE_CPI | ||
153 | |||
154 | /* this is the SYS_INT CPI. */ | ||
155 | #define VIC_SYS_INT 8 | ||
156 | #define VIC_CMN_INT 15 | ||
157 | |||
158 | /* This is the boot CPI for alternate processors. It gets overwritten | ||
159 | * by the above once the system has activated all available processors */ | ||
160 | #define VIC_CPU_BOOT_CPI VIC_CPI_LEVEL0 | ||
161 | #define VIC_CPU_BOOT_ERRATA_CPI (VIC_CPI_LEVEL0 + 8) | ||
162 | |||
163 | |||
164 | #endif /* _ASM_X86_IRQ_VECTORS_H */ | ||
diff --git a/arch/x86/include/asm/irqflags.h b/arch/x86/include/asm/irqflags.h new file mode 100644 index 000000000000..2bdab21f0898 --- /dev/null +++ b/arch/x86/include/asm/irqflags.h | |||
@@ -0,0 +1,211 @@ | |||
1 | #ifndef _X86_IRQFLAGS_H_ | ||
2 | #define _X86_IRQFLAGS_H_ | ||
3 | |||
4 | #include <asm/processor-flags.h> | ||
5 | |||
6 | #ifndef __ASSEMBLY__ | ||
7 | /* | ||
8 | * Interrupt control: | ||
9 | */ | ||
10 | |||
11 | static inline unsigned long native_save_fl(void) | ||
12 | { | ||
13 | unsigned long flags; | ||
14 | |||
15 | asm volatile("# __raw_save_flags\n\t" | ||
16 | "pushf ; pop %0" | ||
17 | : "=g" (flags) | ||
18 | : /* no input */ | ||
19 | : "memory"); | ||
20 | |||
21 | return flags; | ||
22 | } | ||
23 | |||
24 | static inline void native_restore_fl(unsigned long flags) | ||
25 | { | ||
26 | asm volatile("push %0 ; popf" | ||
27 | : /* no output */ | ||
28 | :"g" (flags) | ||
29 | :"memory", "cc"); | ||
30 | } | ||
31 | |||
32 | static inline void native_irq_disable(void) | ||
33 | { | ||
34 | asm volatile("cli": : :"memory"); | ||
35 | } | ||
36 | |||
37 | static inline void native_irq_enable(void) | ||
38 | { | ||
39 | asm volatile("sti": : :"memory"); | ||
40 | } | ||
41 | |||
42 | static inline void native_safe_halt(void) | ||
43 | { | ||
44 | asm volatile("sti; hlt": : :"memory"); | ||
45 | } | ||
46 | |||
47 | static inline void native_halt(void) | ||
48 | { | ||
49 | asm volatile("hlt": : :"memory"); | ||
50 | } | ||
51 | |||
52 | #endif | ||
53 | |||
54 | #ifdef CONFIG_PARAVIRT | ||
55 | #include <asm/paravirt.h> | ||
56 | #else | ||
57 | #ifndef __ASSEMBLY__ | ||
58 | |||
59 | static inline unsigned long __raw_local_save_flags(void) | ||
60 | { | ||
61 | return native_save_fl(); | ||
62 | } | ||
63 | |||
64 | static inline void raw_local_irq_restore(unsigned long flags) | ||
65 | { | ||
66 | native_restore_fl(flags); | ||
67 | } | ||
68 | |||
69 | static inline void raw_local_irq_disable(void) | ||
70 | { | ||
71 | native_irq_disable(); | ||
72 | } | ||
73 | |||
74 | static inline void raw_local_irq_enable(void) | ||
75 | { | ||
76 | native_irq_enable(); | ||
77 | } | ||
78 | |||
79 | /* | ||
80 | * Used in the idle loop; sti takes one instruction cycle | ||
81 | * to complete: | ||
82 | */ | ||
83 | static inline void raw_safe_halt(void) | ||
84 | { | ||
85 | native_safe_halt(); | ||
86 | } | ||
87 | |||
88 | /* | ||
89 | * Used when interrupts are already enabled or to | ||
90 | * shutdown the processor: | ||
91 | */ | ||
92 | static inline void halt(void) | ||
93 | { | ||
94 | native_halt(); | ||
95 | } | ||
96 | |||
97 | /* | ||
98 | * For spinlocks, etc: | ||
99 | */ | ||
100 | static inline unsigned long __raw_local_irq_save(void) | ||
101 | { | ||
102 | unsigned long flags = __raw_local_save_flags(); | ||
103 | |||
104 | raw_local_irq_disable(); | ||
105 | |||
106 | return flags; | ||
107 | } | ||
108 | #else | ||
109 | |||
110 | #define ENABLE_INTERRUPTS(x) sti | ||
111 | #define DISABLE_INTERRUPTS(x) cli | ||
112 | |||
113 | #ifdef CONFIG_X86_64 | ||
114 | #define SWAPGS swapgs | ||
115 | /* | ||
116 | * Currently paravirt can't handle swapgs nicely when we | ||
117 | * don't have a stack we can rely on (such as a user space | ||
118 | * stack). So we either find a way around these or just fault | ||
119 | * and emulate if a guest tries to call swapgs directly. | ||
120 | * | ||
121 | * Either way, this is a good way to document that we don't | ||
122 | * have a reliable stack. x86_64 only. | ||
123 | */ | ||
124 | #define SWAPGS_UNSAFE_STACK swapgs | ||
125 | |||
126 | #define PARAVIRT_ADJUST_EXCEPTION_FRAME /* */ | ||
127 | |||
128 | #define INTERRUPT_RETURN iretq | ||
129 | #define USERGS_SYSRET64 \ | ||
130 | swapgs; \ | ||
131 | sysretq; | ||
132 | #define USERGS_SYSRET32 \ | ||
133 | swapgs; \ | ||
134 | sysretl | ||
135 | #define ENABLE_INTERRUPTS_SYSEXIT32 \ | ||
136 | swapgs; \ | ||
137 | sti; \ | ||
138 | sysexit | ||
139 | |||
140 | #else | ||
141 | #define INTERRUPT_RETURN iret | ||
142 | #define ENABLE_INTERRUPTS_SYSEXIT sti; sysexit | ||
143 | #define GET_CR0_INTO_EAX movl %cr0, %eax | ||
144 | #endif | ||
145 | |||
146 | |||
147 | #endif /* __ASSEMBLY__ */ | ||
148 | #endif /* CONFIG_PARAVIRT */ | ||
149 | |||
150 | #ifndef __ASSEMBLY__ | ||
151 | #define raw_local_save_flags(flags) \ | ||
152 | do { (flags) = __raw_local_save_flags(); } while (0) | ||
153 | |||
154 | #define raw_local_irq_save(flags) \ | ||
155 | do { (flags) = __raw_local_irq_save(); } while (0) | ||
156 | |||
157 | static inline int raw_irqs_disabled_flags(unsigned long flags) | ||
158 | { | ||
159 | return !(flags & X86_EFLAGS_IF); | ||
160 | } | ||
161 | |||
162 | static inline int raw_irqs_disabled(void) | ||
163 | { | ||
164 | unsigned long flags = __raw_local_save_flags(); | ||
165 | |||
166 | return raw_irqs_disabled_flags(flags); | ||
167 | } | ||
168 | |||
169 | #else | ||
170 | |||
171 | #ifdef CONFIG_X86_64 | ||
172 | #define ARCH_LOCKDEP_SYS_EXIT call lockdep_sys_exit_thunk | ||
173 | #define ARCH_LOCKDEP_SYS_EXIT_IRQ \ | ||
174 | TRACE_IRQS_ON; \ | ||
175 | sti; \ | ||
176 | SAVE_REST; \ | ||
177 | LOCKDEP_SYS_EXIT; \ | ||
178 | RESTORE_REST; \ | ||
179 | cli; \ | ||
180 | TRACE_IRQS_OFF; | ||
181 | |||
182 | #else | ||
183 | #define ARCH_LOCKDEP_SYS_EXIT \ | ||
184 | pushl %eax; \ | ||
185 | pushl %ecx; \ | ||
186 | pushl %edx; \ | ||
187 | call lockdep_sys_exit; \ | ||
188 | popl %edx; \ | ||
189 | popl %ecx; \ | ||
190 | popl %eax; | ||
191 | |||
192 | #define ARCH_LOCKDEP_SYS_EXIT_IRQ | ||
193 | #endif | ||
194 | |||
195 | #ifdef CONFIG_TRACE_IRQFLAGS | ||
196 | # define TRACE_IRQS_ON call trace_hardirqs_on_thunk; | ||
197 | # define TRACE_IRQS_OFF call trace_hardirqs_off_thunk; | ||
198 | #else | ||
199 | # define TRACE_IRQS_ON | ||
200 | # define TRACE_IRQS_OFF | ||
201 | #endif | ||
202 | #ifdef CONFIG_DEBUG_LOCK_ALLOC | ||
203 | # define LOCKDEP_SYS_EXIT ARCH_LOCKDEP_SYS_EXIT | ||
204 | # define LOCKDEP_SYS_EXIT_IRQ ARCH_LOCKDEP_SYS_EXIT_IRQ | ||
205 | # else | ||
206 | # define LOCKDEP_SYS_EXIT | ||
207 | # define LOCKDEP_SYS_EXIT_IRQ | ||
208 | # endif | ||
209 | |||
210 | #endif /* __ASSEMBLY__ */ | ||
211 | #endif | ||
diff --git a/arch/x86/include/asm/ist.h b/arch/x86/include/asm/ist.h new file mode 100644 index 000000000000..7e5dff1de0e9 --- /dev/null +++ b/arch/x86/include/asm/ist.h | |||
@@ -0,0 +1,34 @@ | |||
1 | #ifndef _ASM_X86_IST_H | ||
2 | #define _ASM_X86_IST_H | ||
3 | |||
4 | /* | ||
5 | * Include file for the interface to IST BIOS | ||
6 | * Copyright 2002 Andy Grover <andrew.grover@intel.com> | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify it | ||
9 | * under the terms of the GNU General Public License as published by the | ||
10 | * Free Software Foundation; either version 2, or (at your option) any | ||
11 | * later version. | ||
12 | * | ||
13 | * This program is distributed in the hope that it will be useful, but | ||
14 | * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
16 | * General Public License for more details. | ||
17 | */ | ||
18 | |||
19 | |||
20 | #include <linux/types.h> | ||
21 | |||
22 | struct ist_info { | ||
23 | __u32 signature; | ||
24 | __u32 command; | ||
25 | __u32 event; | ||
26 | __u32 perf_level; | ||
27 | }; | ||
28 | |||
29 | #ifdef __KERNEL__ | ||
30 | |||
31 | extern struct ist_info ist_info; | ||
32 | |||
33 | #endif /* __KERNEL__ */ | ||
34 | #endif /* _ASM_X86_IST_H */ | ||
diff --git a/arch/x86/include/asm/k8.h b/arch/x86/include/asm/k8.h new file mode 100644 index 000000000000..54c8cc53b24d --- /dev/null +++ b/arch/x86/include/asm/k8.h | |||
@@ -0,0 +1,15 @@ | |||
1 | #ifndef _ASM_X86_K8_H | ||
2 | #define _ASM_X86_K8_H | ||
3 | |||
4 | #include <linux/pci.h> | ||
5 | |||
6 | extern struct pci_device_id k8_nb_ids[]; | ||
7 | |||
8 | extern int early_is_k8_nb(u32 value); | ||
9 | extern struct pci_dev **k8_northbridges; | ||
10 | extern int num_k8_northbridges; | ||
11 | extern int cache_k8_northbridges(void); | ||
12 | extern void k8_flush_garts(void); | ||
13 | extern int k8_scan_nodes(unsigned long start, unsigned long end); | ||
14 | |||
15 | #endif /* _ASM_X86_K8_H */ | ||
diff --git a/arch/x86/include/asm/kdebug.h b/arch/x86/include/asm/kdebug.h new file mode 100644 index 000000000000..fa7c0b974761 --- /dev/null +++ b/arch/x86/include/asm/kdebug.h | |||
@@ -0,0 +1,37 @@ | |||
1 | #ifndef _ASM_X86_KDEBUG_H | ||
2 | #define _ASM_X86_KDEBUG_H | ||
3 | |||
4 | #include <linux/notifier.h> | ||
5 | |||
6 | struct pt_regs; | ||
7 | |||
8 | /* Grossly misnamed. */ | ||
9 | enum die_val { | ||
10 | DIE_OOPS = 1, | ||
11 | DIE_INT3, | ||
12 | DIE_DEBUG, | ||
13 | DIE_PANIC, | ||
14 | DIE_NMI, | ||
15 | DIE_DIE, | ||
16 | DIE_NMIWATCHDOG, | ||
17 | DIE_KERNELDEBUG, | ||
18 | DIE_TRAP, | ||
19 | DIE_GPF, | ||
20 | DIE_CALL, | ||
21 | DIE_NMI_IPI, | ||
22 | DIE_PAGE_FAULT, | ||
23 | DIE_NMIUNKNOWN, | ||
24 | }; | ||
25 | |||
26 | extern void printk_address(unsigned long address, int reliable); | ||
27 | extern void die(const char *, struct pt_regs *,long); | ||
28 | extern int __must_check __die(const char *, struct pt_regs *, long); | ||
29 | extern void show_registers(struct pt_regs *regs); | ||
30 | extern void show_trace(struct task_struct *t, struct pt_regs *regs, | ||
31 | unsigned long *sp, unsigned long bp); | ||
32 | extern void __show_regs(struct pt_regs *regs, int all); | ||
33 | extern void show_regs(struct pt_regs *regs); | ||
34 | extern unsigned long oops_begin(void); | ||
35 | extern void oops_end(unsigned long, struct pt_regs *, int signr); | ||
36 | |||
37 | #endif /* _ASM_X86_KDEBUG_H */ | ||
diff --git a/arch/x86/include/asm/kexec.h b/arch/x86/include/asm/kexec.h new file mode 100644 index 000000000000..a1f22771a15a --- /dev/null +++ b/arch/x86/include/asm/kexec.h | |||
@@ -0,0 +1,175 @@ | |||
1 | #ifndef _ASM_X86_KEXEC_H | ||
2 | #define _ASM_X86_KEXEC_H | ||
3 | |||
4 | #ifdef CONFIG_X86_32 | ||
5 | # define PA_CONTROL_PAGE 0 | ||
6 | # define VA_CONTROL_PAGE 1 | ||
7 | # define PA_PGD 2 | ||
8 | # define VA_PGD 3 | ||
9 | # define PA_PTE_0 4 | ||
10 | # define VA_PTE_0 5 | ||
11 | # define PA_PTE_1 6 | ||
12 | # define VA_PTE_1 7 | ||
13 | # define PA_SWAP_PAGE 8 | ||
14 | # ifdef CONFIG_X86_PAE | ||
15 | # define PA_PMD_0 9 | ||
16 | # define VA_PMD_0 10 | ||
17 | # define PA_PMD_1 11 | ||
18 | # define VA_PMD_1 12 | ||
19 | # define PAGES_NR 13 | ||
20 | # else | ||
21 | # define PAGES_NR 9 | ||
22 | # endif | ||
23 | #else | ||
24 | # define PA_CONTROL_PAGE 0 | ||
25 | # define VA_CONTROL_PAGE 1 | ||
26 | # define PA_PGD 2 | ||
27 | # define VA_PGD 3 | ||
28 | # define PA_PUD_0 4 | ||
29 | # define VA_PUD_0 5 | ||
30 | # define PA_PMD_0 6 | ||
31 | # define VA_PMD_0 7 | ||
32 | # define PA_PTE_0 8 | ||
33 | # define VA_PTE_0 9 | ||
34 | # define PA_PUD_1 10 | ||
35 | # define VA_PUD_1 11 | ||
36 | # define PA_PMD_1 12 | ||
37 | # define VA_PMD_1 13 | ||
38 | # define PA_PTE_1 14 | ||
39 | # define VA_PTE_1 15 | ||
40 | # define PA_TABLE_PAGE 16 | ||
41 | # define PAGES_NR 17 | ||
42 | #endif | ||
43 | |||
44 | #ifdef CONFIG_X86_32 | ||
45 | # define KEXEC_CONTROL_CODE_MAX_SIZE 2048 | ||
46 | #endif | ||
47 | |||
48 | #ifndef __ASSEMBLY__ | ||
49 | |||
50 | #include <linux/string.h> | ||
51 | |||
52 | #include <asm/page.h> | ||
53 | #include <asm/ptrace.h> | ||
54 | |||
55 | /* | ||
56 | * KEXEC_SOURCE_MEMORY_LIMIT maximum page get_free_page can return. | ||
57 | * I.e. Maximum page that is mapped directly into kernel memory, | ||
58 | * and kmap is not required. | ||
59 | * | ||
60 | * So far x86_64 is limited to 40 physical address bits. | ||
61 | */ | ||
62 | #ifdef CONFIG_X86_32 | ||
63 | /* Maximum physical address we can use pages from */ | ||
64 | # define KEXEC_SOURCE_MEMORY_LIMIT (-1UL) | ||
65 | /* Maximum address we can reach in physical address mode */ | ||
66 | # define KEXEC_DESTINATION_MEMORY_LIMIT (-1UL) | ||
67 | /* Maximum address we can use for the control code buffer */ | ||
68 | # define KEXEC_CONTROL_MEMORY_LIMIT TASK_SIZE | ||
69 | |||
70 | # define KEXEC_CONTROL_PAGE_SIZE 4096 | ||
71 | |||
72 | /* The native architecture */ | ||
73 | # define KEXEC_ARCH KEXEC_ARCH_386 | ||
74 | |||
75 | /* We can also handle crash dumps from 64 bit kernel. */ | ||
76 | # define vmcore_elf_check_arch_cross(x) ((x)->e_machine == EM_X86_64) | ||
77 | #else | ||
78 | /* Maximum physical address we can use pages from */ | ||
79 | # define KEXEC_SOURCE_MEMORY_LIMIT (0xFFFFFFFFFFUL) | ||
80 | /* Maximum address we can reach in physical address mode */ | ||
81 | # define KEXEC_DESTINATION_MEMORY_LIMIT (0xFFFFFFFFFFUL) | ||
82 | /* Maximum address we can use for the control pages */ | ||
83 | # define KEXEC_CONTROL_MEMORY_LIMIT (0xFFFFFFFFFFUL) | ||
84 | |||
85 | /* Allocate one page for the pdp and the second for the code */ | ||
86 | # define KEXEC_CONTROL_PAGE_SIZE (4096UL + 4096UL) | ||
87 | |||
88 | /* The native architecture */ | ||
89 | # define KEXEC_ARCH KEXEC_ARCH_X86_64 | ||
90 | #endif | ||
91 | |||
92 | /* | ||
93 | * CPU does not save ss and sp on stack if execution is already | ||
94 | * running in kernel mode at the time of NMI occurrence. This code | ||
95 | * fixes it. | ||
96 | */ | ||
97 | static inline void crash_fixup_ss_esp(struct pt_regs *newregs, | ||
98 | struct pt_regs *oldregs) | ||
99 | { | ||
100 | #ifdef CONFIG_X86_32 | ||
101 | newregs->sp = (unsigned long)&(oldregs->sp); | ||
102 | asm volatile("xorl %%eax, %%eax\n\t" | ||
103 | "movw %%ss, %%ax\n\t" | ||
104 | :"=a"(newregs->ss)); | ||
105 | #endif | ||
106 | } | ||
107 | |||
108 | /* | ||
109 | * This function is responsible for capturing register states if coming | ||
110 | * via panic otherwise just fix up the ss and sp if coming via kernel | ||
111 | * mode exception. | ||
112 | */ | ||
113 | static inline void crash_setup_regs(struct pt_regs *newregs, | ||
114 | struct pt_regs *oldregs) | ||
115 | { | ||
116 | if (oldregs) { | ||
117 | memcpy(newregs, oldregs, sizeof(*newregs)); | ||
118 | crash_fixup_ss_esp(newregs, oldregs); | ||
119 | } else { | ||
120 | #ifdef CONFIG_X86_32 | ||
121 | asm volatile("movl %%ebx,%0" : "=m"(newregs->bx)); | ||
122 | asm volatile("movl %%ecx,%0" : "=m"(newregs->cx)); | ||
123 | asm volatile("movl %%edx,%0" : "=m"(newregs->dx)); | ||
124 | asm volatile("movl %%esi,%0" : "=m"(newregs->si)); | ||
125 | asm volatile("movl %%edi,%0" : "=m"(newregs->di)); | ||
126 | asm volatile("movl %%ebp,%0" : "=m"(newregs->bp)); | ||
127 | asm volatile("movl %%eax,%0" : "=m"(newregs->ax)); | ||
128 | asm volatile("movl %%esp,%0" : "=m"(newregs->sp)); | ||
129 | asm volatile("movl %%ss, %%eax;" :"=a"(newregs->ss)); | ||
130 | asm volatile("movl %%cs, %%eax;" :"=a"(newregs->cs)); | ||
131 | asm volatile("movl %%ds, %%eax;" :"=a"(newregs->ds)); | ||
132 | asm volatile("movl %%es, %%eax;" :"=a"(newregs->es)); | ||
133 | asm volatile("pushfl; popl %0" :"=m"(newregs->flags)); | ||
134 | #else | ||
135 | asm volatile("movq %%rbx,%0" : "=m"(newregs->bx)); | ||
136 | asm volatile("movq %%rcx,%0" : "=m"(newregs->cx)); | ||
137 | asm volatile("movq %%rdx,%0" : "=m"(newregs->dx)); | ||
138 | asm volatile("movq %%rsi,%0" : "=m"(newregs->si)); | ||
139 | asm volatile("movq %%rdi,%0" : "=m"(newregs->di)); | ||
140 | asm volatile("movq %%rbp,%0" : "=m"(newregs->bp)); | ||
141 | asm volatile("movq %%rax,%0" : "=m"(newregs->ax)); | ||
142 | asm volatile("movq %%rsp,%0" : "=m"(newregs->sp)); | ||
143 | asm volatile("movq %%r8,%0" : "=m"(newregs->r8)); | ||
144 | asm volatile("movq %%r9,%0" : "=m"(newregs->r9)); | ||
145 | asm volatile("movq %%r10,%0" : "=m"(newregs->r10)); | ||
146 | asm volatile("movq %%r11,%0" : "=m"(newregs->r11)); | ||
147 | asm volatile("movq %%r12,%0" : "=m"(newregs->r12)); | ||
148 | asm volatile("movq %%r13,%0" : "=m"(newregs->r13)); | ||
149 | asm volatile("movq %%r14,%0" : "=m"(newregs->r14)); | ||
150 | asm volatile("movq %%r15,%0" : "=m"(newregs->r15)); | ||
151 | asm volatile("movl %%ss, %%eax;" :"=a"(newregs->ss)); | ||
152 | asm volatile("movl %%cs, %%eax;" :"=a"(newregs->cs)); | ||
153 | asm volatile("pushfq; popq %0" :"=m"(newregs->flags)); | ||
154 | #endif | ||
155 | newregs->ip = (unsigned long)current_text_addr(); | ||
156 | } | ||
157 | } | ||
158 | |||
159 | #ifdef CONFIG_X86_32 | ||
160 | asmlinkage unsigned long | ||
161 | relocate_kernel(unsigned long indirection_page, | ||
162 | unsigned long control_page, | ||
163 | unsigned long start_address, | ||
164 | unsigned int has_pae, | ||
165 | unsigned int preserve_context); | ||
166 | #else | ||
167 | NORET_TYPE void | ||
168 | relocate_kernel(unsigned long indirection_page, | ||
169 | unsigned long page_list, | ||
170 | unsigned long start_address) ATTRIB_NORET; | ||
171 | #endif | ||
172 | |||
173 | #endif /* __ASSEMBLY__ */ | ||
174 | |||
175 | #endif /* _ASM_X86_KEXEC_H */ | ||
diff --git a/arch/x86/include/asm/kgdb.h b/arch/x86/include/asm/kgdb.h new file mode 100644 index 000000000000..e6c6c808489f --- /dev/null +++ b/arch/x86/include/asm/kgdb.h | |||
@@ -0,0 +1,79 @@ | |||
1 | #ifndef _ASM_X86_KGDB_H | ||
2 | #define _ASM_X86_KGDB_H | ||
3 | |||
4 | /* | ||
5 | * Copyright (C) 2001-2004 Amit S. Kale | ||
6 | * Copyright (C) 2008 Wind River Systems, Inc. | ||
7 | */ | ||
8 | |||
9 | /* | ||
10 | * BUFMAX defines the maximum number of characters in inbound/outbound | ||
11 | * buffers at least NUMREGBYTES*2 are needed for register packets | ||
12 | * Longer buffer is needed to list all threads | ||
13 | */ | ||
14 | #define BUFMAX 1024 | ||
15 | |||
16 | /* | ||
17 | * Note that this register image is in a different order than | ||
18 | * the register image that Linux produces at interrupt time. | ||
19 | * | ||
20 | * Linux's register image is defined by struct pt_regs in ptrace.h. | ||
21 | * Just why GDB uses a different order is a historical mystery. | ||
22 | */ | ||
23 | #ifdef CONFIG_X86_32 | ||
24 | enum regnames { | ||
25 | GDB_AX, /* 0 */ | ||
26 | GDB_CX, /* 1 */ | ||
27 | GDB_DX, /* 2 */ | ||
28 | GDB_BX, /* 3 */ | ||
29 | GDB_SP, /* 4 */ | ||
30 | GDB_BP, /* 5 */ | ||
31 | GDB_SI, /* 6 */ | ||
32 | GDB_DI, /* 7 */ | ||
33 | GDB_PC, /* 8 also known as eip */ | ||
34 | GDB_PS, /* 9 also known as eflags */ | ||
35 | GDB_CS, /* 10 */ | ||
36 | GDB_SS, /* 11 */ | ||
37 | GDB_DS, /* 12 */ | ||
38 | GDB_ES, /* 13 */ | ||
39 | GDB_FS, /* 14 */ | ||
40 | GDB_GS, /* 15 */ | ||
41 | }; | ||
42 | #define NUMREGBYTES ((GDB_GS+1)*4) | ||
43 | #else /* ! CONFIG_X86_32 */ | ||
44 | enum regnames64 { | ||
45 | GDB_AX, /* 0 */ | ||
46 | GDB_BX, /* 1 */ | ||
47 | GDB_CX, /* 2 */ | ||
48 | GDB_DX, /* 3 */ | ||
49 | GDB_SI, /* 4 */ | ||
50 | GDB_DI, /* 5 */ | ||
51 | GDB_BP, /* 6 */ | ||
52 | GDB_SP, /* 7 */ | ||
53 | GDB_R8, /* 8 */ | ||
54 | GDB_R9, /* 9 */ | ||
55 | GDB_R10, /* 10 */ | ||
56 | GDB_R11, /* 11 */ | ||
57 | GDB_R12, /* 12 */ | ||
58 | GDB_R13, /* 13 */ | ||
59 | GDB_R14, /* 14 */ | ||
60 | GDB_R15, /* 15 */ | ||
61 | GDB_PC, /* 16 */ | ||
62 | }; | ||
63 | |||
64 | enum regnames32 { | ||
65 | GDB_PS = 34, | ||
66 | GDB_CS, | ||
67 | GDB_SS, | ||
68 | }; | ||
69 | #define NUMREGBYTES ((GDB_SS+1)*4) | ||
70 | #endif /* CONFIG_X86_32 */ | ||
71 | |||
72 | static inline void arch_kgdb_breakpoint(void) | ||
73 | { | ||
74 | asm(" int $3"); | ||
75 | } | ||
76 | #define BREAK_INSTR_SIZE 1 | ||
77 | #define CACHE_FLUSH_IS_SAFE 1 | ||
78 | |||
79 | #endif /* _ASM_X86_KGDB_H */ | ||
diff --git a/arch/x86/include/asm/kmap_types.h b/arch/x86/include/asm/kmap_types.h new file mode 100644 index 000000000000..5759c165a5cf --- /dev/null +++ b/arch/x86/include/asm/kmap_types.h | |||
@@ -0,0 +1,29 @@ | |||
1 | #ifndef _ASM_X86_KMAP_TYPES_H | ||
2 | #define _ASM_X86_KMAP_TYPES_H | ||
3 | |||
4 | #if defined(CONFIG_X86_32) && defined(CONFIG_DEBUG_HIGHMEM) | ||
5 | # define D(n) __KM_FENCE_##n , | ||
6 | #else | ||
7 | # define D(n) | ||
8 | #endif | ||
9 | |||
10 | enum km_type { | ||
11 | D(0) KM_BOUNCE_READ, | ||
12 | D(1) KM_SKB_SUNRPC_DATA, | ||
13 | D(2) KM_SKB_DATA_SOFTIRQ, | ||
14 | D(3) KM_USER0, | ||
15 | D(4) KM_USER1, | ||
16 | D(5) KM_BIO_SRC_IRQ, | ||
17 | D(6) KM_BIO_DST_IRQ, | ||
18 | D(7) KM_PTE0, | ||
19 | D(8) KM_PTE1, | ||
20 | D(9) KM_IRQ0, | ||
21 | D(10) KM_IRQ1, | ||
22 | D(11) KM_SOFTIRQ0, | ||
23 | D(12) KM_SOFTIRQ1, | ||
24 | D(13) KM_TYPE_NR | ||
25 | }; | ||
26 | |||
27 | #undef D | ||
28 | |||
29 | #endif /* _ASM_X86_KMAP_TYPES_H */ | ||
diff --git a/arch/x86/include/asm/kprobes.h b/arch/x86/include/asm/kprobes.h new file mode 100644 index 000000000000..4fe681de1e76 --- /dev/null +++ b/arch/x86/include/asm/kprobes.h | |||
@@ -0,0 +1,88 @@ | |||
1 | #ifndef _ASM_X86_KPROBES_H | ||
2 | #define _ASM_X86_KPROBES_H | ||
3 | /* | ||
4 | * Kernel Probes (KProbes) | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
19 | * | ||
20 | * Copyright (C) IBM Corporation, 2002, 2004 | ||
21 | * | ||
22 | * See arch/x86/kernel/kprobes.c for x86 kprobes history. | ||
23 | */ | ||
24 | #include <linux/types.h> | ||
25 | #include <linux/ptrace.h> | ||
26 | #include <linux/percpu.h> | ||
27 | |||
28 | #define __ARCH_WANT_KPROBES_INSN_SLOT | ||
29 | |||
30 | struct pt_regs; | ||
31 | struct kprobe; | ||
32 | |||
33 | typedef u8 kprobe_opcode_t; | ||
34 | #define BREAKPOINT_INSTRUCTION 0xcc | ||
35 | #define RELATIVEJUMP_INSTRUCTION 0xe9 | ||
36 | #define MAX_INSN_SIZE 16 | ||
37 | #define MAX_STACK_SIZE 64 | ||
38 | #define MIN_STACK_SIZE(ADDR) \ | ||
39 | (((MAX_STACK_SIZE) < (((unsigned long)current_thread_info()) + \ | ||
40 | THREAD_SIZE - (unsigned long)(ADDR))) \ | ||
41 | ? (MAX_STACK_SIZE) \ | ||
42 | : (((unsigned long)current_thread_info()) + \ | ||
43 | THREAD_SIZE - (unsigned long)(ADDR))) | ||
44 | |||
45 | #define flush_insn_slot(p) do { } while (0) | ||
46 | |||
47 | extern const int kretprobe_blacklist_size; | ||
48 | |||
49 | void arch_remove_kprobe(struct kprobe *p); | ||
50 | void kretprobe_trampoline(void); | ||
51 | |||
52 | /* Architecture specific copy of original instruction*/ | ||
53 | struct arch_specific_insn { | ||
54 | /* copy of the original instruction */ | ||
55 | kprobe_opcode_t *insn; | ||
56 | /* | ||
57 | * boostable = -1: This instruction type is not boostable. | ||
58 | * boostable = 0: This instruction type is boostable. | ||
59 | * boostable = 1: This instruction has been boosted: we have | ||
60 | * added a relative jump after the instruction copy in insn, | ||
61 | * so no single-step and fixup are needed (unless there's | ||
62 | * a post_handler or break_handler). | ||
63 | */ | ||
64 | int boostable; | ||
65 | }; | ||
66 | |||
67 | struct prev_kprobe { | ||
68 | struct kprobe *kp; | ||
69 | unsigned long status; | ||
70 | unsigned long old_flags; | ||
71 | unsigned long saved_flags; | ||
72 | }; | ||
73 | |||
74 | /* per-cpu kprobe control block */ | ||
75 | struct kprobe_ctlblk { | ||
76 | unsigned long kprobe_status; | ||
77 | unsigned long kprobe_old_flags; | ||
78 | unsigned long kprobe_saved_flags; | ||
79 | unsigned long *jprobe_saved_sp; | ||
80 | struct pt_regs jprobe_saved_regs; | ||
81 | kprobe_opcode_t jprobes_stack[MAX_STACK_SIZE]; | ||
82 | struct prev_kprobe prev_kprobe; | ||
83 | }; | ||
84 | |||
85 | extern int kprobe_fault_handler(struct pt_regs *regs, int trapnr); | ||
86 | extern int kprobe_exceptions_notify(struct notifier_block *self, | ||
87 | unsigned long val, void *data); | ||
88 | #endif /* _ASM_X86_KPROBES_H */ | ||
diff --git a/arch/x86/include/asm/kvm.h b/arch/x86/include/asm/kvm.h new file mode 100644 index 000000000000..b95162af0bf6 --- /dev/null +++ b/arch/x86/include/asm/kvm.h | |||
@@ -0,0 +1,211 @@ | |||
1 | #ifndef _ASM_X86_KVM_H | ||
2 | #define _ASM_X86_KVM_H | ||
3 | |||
4 | /* | ||
5 | * KVM x86 specific structures and definitions | ||
6 | * | ||
7 | */ | ||
8 | |||
9 | #include <asm/types.h> | ||
10 | #include <linux/ioctl.h> | ||
11 | |||
12 | /* Architectural interrupt line count. */ | ||
13 | #define KVM_NR_INTERRUPTS 256 | ||
14 | |||
15 | struct kvm_memory_alias { | ||
16 | __u32 slot; /* this has a different namespace than memory slots */ | ||
17 | __u32 flags; | ||
18 | __u64 guest_phys_addr; | ||
19 | __u64 memory_size; | ||
20 | __u64 target_phys_addr; | ||
21 | }; | ||
22 | |||
23 | /* for KVM_GET_IRQCHIP and KVM_SET_IRQCHIP */ | ||
24 | struct kvm_pic_state { | ||
25 | __u8 last_irr; /* edge detection */ | ||
26 | __u8 irr; /* interrupt request register */ | ||
27 | __u8 imr; /* interrupt mask register */ | ||
28 | __u8 isr; /* interrupt service register */ | ||
29 | __u8 priority_add; /* highest irq priority */ | ||
30 | __u8 irq_base; | ||
31 | __u8 read_reg_select; | ||
32 | __u8 poll; | ||
33 | __u8 special_mask; | ||
34 | __u8 init_state; | ||
35 | __u8 auto_eoi; | ||
36 | __u8 rotate_on_auto_eoi; | ||
37 | __u8 special_fully_nested_mode; | ||
38 | __u8 init4; /* true if 4 byte init */ | ||
39 | __u8 elcr; /* PIIX edge/trigger selection */ | ||
40 | __u8 elcr_mask; | ||
41 | }; | ||
42 | |||
43 | #define KVM_IOAPIC_NUM_PINS 24 | ||
44 | struct kvm_ioapic_state { | ||
45 | __u64 base_address; | ||
46 | __u32 ioregsel; | ||
47 | __u32 id; | ||
48 | __u32 irr; | ||
49 | __u32 pad; | ||
50 | union { | ||
51 | __u64 bits; | ||
52 | struct { | ||
53 | __u8 vector; | ||
54 | __u8 delivery_mode:3; | ||
55 | __u8 dest_mode:1; | ||
56 | __u8 delivery_status:1; | ||
57 | __u8 polarity:1; | ||
58 | __u8 remote_irr:1; | ||
59 | __u8 trig_mode:1; | ||
60 | __u8 mask:1; | ||
61 | __u8 reserve:7; | ||
62 | __u8 reserved[4]; | ||
63 | __u8 dest_id; | ||
64 | } fields; | ||
65 | } redirtbl[KVM_IOAPIC_NUM_PINS]; | ||
66 | }; | ||
67 | |||
68 | #define KVM_IRQCHIP_PIC_MASTER 0 | ||
69 | #define KVM_IRQCHIP_PIC_SLAVE 1 | ||
70 | #define KVM_IRQCHIP_IOAPIC 2 | ||
71 | |||
72 | /* for KVM_GET_REGS and KVM_SET_REGS */ | ||
73 | struct kvm_regs { | ||
74 | /* out (KVM_GET_REGS) / in (KVM_SET_REGS) */ | ||
75 | __u64 rax, rbx, rcx, rdx; | ||
76 | __u64 rsi, rdi, rsp, rbp; | ||
77 | __u64 r8, r9, r10, r11; | ||
78 | __u64 r12, r13, r14, r15; | ||
79 | __u64 rip, rflags; | ||
80 | }; | ||
81 | |||
82 | /* for KVM_GET_LAPIC and KVM_SET_LAPIC */ | ||
83 | #define KVM_APIC_REG_SIZE 0x400 | ||
84 | struct kvm_lapic_state { | ||
85 | char regs[KVM_APIC_REG_SIZE]; | ||
86 | }; | ||
87 | |||
88 | struct kvm_segment { | ||
89 | __u64 base; | ||
90 | __u32 limit; | ||
91 | __u16 selector; | ||
92 | __u8 type; | ||
93 | __u8 present, dpl, db, s, l, g, avl; | ||
94 | __u8 unusable; | ||
95 | __u8 padding; | ||
96 | }; | ||
97 | |||
98 | struct kvm_dtable { | ||
99 | __u64 base; | ||
100 | __u16 limit; | ||
101 | __u16 padding[3]; | ||
102 | }; | ||
103 | |||
104 | |||
105 | /* for KVM_GET_SREGS and KVM_SET_SREGS */ | ||
106 | struct kvm_sregs { | ||
107 | /* out (KVM_GET_SREGS) / in (KVM_SET_SREGS) */ | ||
108 | struct kvm_segment cs, ds, es, fs, gs, ss; | ||
109 | struct kvm_segment tr, ldt; | ||
110 | struct kvm_dtable gdt, idt; | ||
111 | __u64 cr0, cr2, cr3, cr4, cr8; | ||
112 | __u64 efer; | ||
113 | __u64 apic_base; | ||
114 | __u64 interrupt_bitmap[(KVM_NR_INTERRUPTS + 63) / 64]; | ||
115 | }; | ||
116 | |||
117 | /* for KVM_GET_FPU and KVM_SET_FPU */ | ||
118 | struct kvm_fpu { | ||
119 | __u8 fpr[8][16]; | ||
120 | __u16 fcw; | ||
121 | __u16 fsw; | ||
122 | __u8 ftwx; /* in fxsave format */ | ||
123 | __u8 pad1; | ||
124 | __u16 last_opcode; | ||
125 | __u64 last_ip; | ||
126 | __u64 last_dp; | ||
127 | __u8 xmm[16][16]; | ||
128 | __u32 mxcsr; | ||
129 | __u32 pad2; | ||
130 | }; | ||
131 | |||
132 | struct kvm_msr_entry { | ||
133 | __u32 index; | ||
134 | __u32 reserved; | ||
135 | __u64 data; | ||
136 | }; | ||
137 | |||
138 | /* for KVM_GET_MSRS and KVM_SET_MSRS */ | ||
139 | struct kvm_msrs { | ||
140 | __u32 nmsrs; /* number of msrs in entries */ | ||
141 | __u32 pad; | ||
142 | |||
143 | struct kvm_msr_entry entries[0]; | ||
144 | }; | ||
145 | |||
146 | /* for KVM_GET_MSR_INDEX_LIST */ | ||
147 | struct kvm_msr_list { | ||
148 | __u32 nmsrs; /* number of msrs in entries */ | ||
149 | __u32 indices[0]; | ||
150 | }; | ||
151 | |||
152 | |||
153 | struct kvm_cpuid_entry { | ||
154 | __u32 function; | ||
155 | __u32 eax; | ||
156 | __u32 ebx; | ||
157 | __u32 ecx; | ||
158 | __u32 edx; | ||
159 | __u32 padding; | ||
160 | }; | ||
161 | |||
162 | /* for KVM_SET_CPUID */ | ||
163 | struct kvm_cpuid { | ||
164 | __u32 nent; | ||
165 | __u32 padding; | ||
166 | struct kvm_cpuid_entry entries[0]; | ||
167 | }; | ||
168 | |||
169 | struct kvm_cpuid_entry2 { | ||
170 | __u32 function; | ||
171 | __u32 index; | ||
172 | __u32 flags; | ||
173 | __u32 eax; | ||
174 | __u32 ebx; | ||
175 | __u32 ecx; | ||
176 | __u32 edx; | ||
177 | __u32 padding[3]; | ||
178 | }; | ||
179 | |||
180 | #define KVM_CPUID_FLAG_SIGNIFCANT_INDEX 1 | ||
181 | #define KVM_CPUID_FLAG_STATEFUL_FUNC 2 | ||
182 | #define KVM_CPUID_FLAG_STATE_READ_NEXT 4 | ||
183 | |||
184 | /* for KVM_SET_CPUID2 */ | ||
185 | struct kvm_cpuid2 { | ||
186 | __u32 nent; | ||
187 | __u32 padding; | ||
188 | struct kvm_cpuid_entry2 entries[0]; | ||
189 | }; | ||
190 | |||
191 | /* for KVM_GET_PIT and KVM_SET_PIT */ | ||
192 | struct kvm_pit_channel_state { | ||
193 | __u32 count; /* can be 65536 */ | ||
194 | __u16 latched_count; | ||
195 | __u8 count_latched; | ||
196 | __u8 status_latched; | ||
197 | __u8 status; | ||
198 | __u8 read_state; | ||
199 | __u8 write_state; | ||
200 | __u8 write_latch; | ||
201 | __u8 rw_mode; | ||
202 | __u8 mode; | ||
203 | __u8 bcd; | ||
204 | __u8 gate; | ||
205 | __s64 count_load_time; | ||
206 | }; | ||
207 | |||
208 | struct kvm_pit_state { | ||
209 | struct kvm_pit_channel_state channels[3]; | ||
210 | }; | ||
211 | #endif /* _ASM_X86_KVM_H */ | ||
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h new file mode 100644 index 000000000000..65679d006337 --- /dev/null +++ b/arch/x86/include/asm/kvm_host.h | |||
@@ -0,0 +1,752 @@ | |||
1 | /* | ||
2 | * Kernel-based Virtual Machine driver for Linux | ||
3 | * | ||
4 | * This header defines architecture specific interfaces, x86 version | ||
5 | * | ||
6 | * This work is licensed under the terms of the GNU GPL, version 2. See | ||
7 | * the COPYING file in the top-level directory. | ||
8 | * | ||
9 | */ | ||
10 | |||
11 | #ifndef _ASM_X86_KVM_HOST_H | ||
12 | #define _ASM_X86_KVM_HOST_H | ||
13 | |||
14 | #include <linux/types.h> | ||
15 | #include <linux/mm.h> | ||
16 | #include <linux/mmu_notifier.h> | ||
17 | |||
18 | #include <linux/kvm.h> | ||
19 | #include <linux/kvm_para.h> | ||
20 | #include <linux/kvm_types.h> | ||
21 | |||
22 | #include <asm/pvclock-abi.h> | ||
23 | #include <asm/desc.h> | ||
24 | |||
25 | #define KVM_MAX_VCPUS 16 | ||
26 | #define KVM_MEMORY_SLOTS 32 | ||
27 | /* memory slots that does not exposed to userspace */ | ||
28 | #define KVM_PRIVATE_MEM_SLOTS 4 | ||
29 | |||
30 | #define KVM_PIO_PAGE_OFFSET 1 | ||
31 | #define KVM_COALESCED_MMIO_PAGE_OFFSET 2 | ||
32 | |||
33 | #define CR3_PAE_RESERVED_BITS ((X86_CR3_PWT | X86_CR3_PCD) - 1) | ||
34 | #define CR3_NONPAE_RESERVED_BITS ((PAGE_SIZE-1) & ~(X86_CR3_PWT | X86_CR3_PCD)) | ||
35 | #define CR3_L_MODE_RESERVED_BITS (CR3_NONPAE_RESERVED_BITS | \ | ||
36 | 0xFFFFFF0000000000ULL) | ||
37 | |||
38 | #define KVM_GUEST_CR0_MASK \ | ||
39 | (X86_CR0_PG | X86_CR0_PE | X86_CR0_WP | X86_CR0_NE \ | ||
40 | | X86_CR0_NW | X86_CR0_CD) | ||
41 | #define KVM_VM_CR0_ALWAYS_ON \ | ||
42 | (X86_CR0_PG | X86_CR0_PE | X86_CR0_WP | X86_CR0_NE | X86_CR0_TS \ | ||
43 | | X86_CR0_MP) | ||
44 | #define KVM_GUEST_CR4_MASK \ | ||
45 | (X86_CR4_VME | X86_CR4_PSE | X86_CR4_PAE | X86_CR4_PGE | X86_CR4_VMXE) | ||
46 | #define KVM_PMODE_VM_CR4_ALWAYS_ON (X86_CR4_PAE | X86_CR4_VMXE) | ||
47 | #define KVM_RMODE_VM_CR4_ALWAYS_ON (X86_CR4_VME | X86_CR4_PAE | X86_CR4_VMXE) | ||
48 | |||
49 | #define INVALID_PAGE (~(hpa_t)0) | ||
50 | #define UNMAPPED_GVA (~(gpa_t)0) | ||
51 | |||
52 | /* shadow tables are PAE even on non-PAE hosts */ | ||
53 | #define KVM_HPAGE_SHIFT 21 | ||
54 | #define KVM_HPAGE_SIZE (1UL << KVM_HPAGE_SHIFT) | ||
55 | #define KVM_HPAGE_MASK (~(KVM_HPAGE_SIZE - 1)) | ||
56 | |||
57 | #define KVM_PAGES_PER_HPAGE (KVM_HPAGE_SIZE / PAGE_SIZE) | ||
58 | |||
59 | #define DE_VECTOR 0 | ||
60 | #define DB_VECTOR 1 | ||
61 | #define BP_VECTOR 3 | ||
62 | #define OF_VECTOR 4 | ||
63 | #define BR_VECTOR 5 | ||
64 | #define UD_VECTOR 6 | ||
65 | #define NM_VECTOR 7 | ||
66 | #define DF_VECTOR 8 | ||
67 | #define TS_VECTOR 10 | ||
68 | #define NP_VECTOR 11 | ||
69 | #define SS_VECTOR 12 | ||
70 | #define GP_VECTOR 13 | ||
71 | #define PF_VECTOR 14 | ||
72 | #define MF_VECTOR 16 | ||
73 | #define MC_VECTOR 18 | ||
74 | |||
75 | #define SELECTOR_TI_MASK (1 << 2) | ||
76 | #define SELECTOR_RPL_MASK 0x03 | ||
77 | |||
78 | #define IOPL_SHIFT 12 | ||
79 | |||
80 | #define KVM_ALIAS_SLOTS 4 | ||
81 | |||
82 | #define KVM_PERMILLE_MMU_PAGES 20 | ||
83 | #define KVM_MIN_ALLOC_MMU_PAGES 64 | ||
84 | #define KVM_MMU_HASH_SHIFT 10 | ||
85 | #define KVM_NUM_MMU_PAGES (1 << KVM_MMU_HASH_SHIFT) | ||
86 | #define KVM_MIN_FREE_MMU_PAGES 5 | ||
87 | #define KVM_REFILL_PAGES 25 | ||
88 | #define KVM_MAX_CPUID_ENTRIES 40 | ||
89 | #define KVM_NR_VAR_MTRR 8 | ||
90 | |||
91 | extern spinlock_t kvm_lock; | ||
92 | extern struct list_head vm_list; | ||
93 | |||
94 | struct kvm_vcpu; | ||
95 | struct kvm; | ||
96 | |||
97 | enum kvm_reg { | ||
98 | VCPU_REGS_RAX = 0, | ||
99 | VCPU_REGS_RCX = 1, | ||
100 | VCPU_REGS_RDX = 2, | ||
101 | VCPU_REGS_RBX = 3, | ||
102 | VCPU_REGS_RSP = 4, | ||
103 | VCPU_REGS_RBP = 5, | ||
104 | VCPU_REGS_RSI = 6, | ||
105 | VCPU_REGS_RDI = 7, | ||
106 | #ifdef CONFIG_X86_64 | ||
107 | VCPU_REGS_R8 = 8, | ||
108 | VCPU_REGS_R9 = 9, | ||
109 | VCPU_REGS_R10 = 10, | ||
110 | VCPU_REGS_R11 = 11, | ||
111 | VCPU_REGS_R12 = 12, | ||
112 | VCPU_REGS_R13 = 13, | ||
113 | VCPU_REGS_R14 = 14, | ||
114 | VCPU_REGS_R15 = 15, | ||
115 | #endif | ||
116 | VCPU_REGS_RIP, | ||
117 | NR_VCPU_REGS | ||
118 | }; | ||
119 | |||
120 | enum { | ||
121 | VCPU_SREG_ES, | ||
122 | VCPU_SREG_CS, | ||
123 | VCPU_SREG_SS, | ||
124 | VCPU_SREG_DS, | ||
125 | VCPU_SREG_FS, | ||
126 | VCPU_SREG_GS, | ||
127 | VCPU_SREG_TR, | ||
128 | VCPU_SREG_LDTR, | ||
129 | }; | ||
130 | |||
131 | #include <asm/kvm_x86_emulate.h> | ||
132 | |||
133 | #define KVM_NR_MEM_OBJS 40 | ||
134 | |||
135 | struct kvm_guest_debug { | ||
136 | int enabled; | ||
137 | unsigned long bp[4]; | ||
138 | int singlestep; | ||
139 | }; | ||
140 | |||
141 | /* | ||
142 | * We don't want allocation failures within the mmu code, so we preallocate | ||
143 | * enough memory for a single page fault in a cache. | ||
144 | */ | ||
145 | struct kvm_mmu_memory_cache { | ||
146 | int nobjs; | ||
147 | void *objects[KVM_NR_MEM_OBJS]; | ||
148 | }; | ||
149 | |||
150 | #define NR_PTE_CHAIN_ENTRIES 5 | ||
151 | |||
152 | struct kvm_pte_chain { | ||
153 | u64 *parent_ptes[NR_PTE_CHAIN_ENTRIES]; | ||
154 | struct hlist_node link; | ||
155 | }; | ||
156 | |||
157 | /* | ||
158 | * kvm_mmu_page_role, below, is defined as: | ||
159 | * | ||
160 | * bits 0:3 - total guest paging levels (2-4, or zero for real mode) | ||
161 | * bits 4:7 - page table level for this shadow (1-4) | ||
162 | * bits 8:9 - page table quadrant for 2-level guests | ||
163 | * bit 16 - "metaphysical" - gfn is not a real page (huge page/real mode) | ||
164 | * bits 17:19 - common access permissions for all ptes in this shadow page | ||
165 | */ | ||
166 | union kvm_mmu_page_role { | ||
167 | unsigned word; | ||
168 | struct { | ||
169 | unsigned glevels:4; | ||
170 | unsigned level:4; | ||
171 | unsigned quadrant:2; | ||
172 | unsigned pad_for_nice_hex_output:6; | ||
173 | unsigned metaphysical:1; | ||
174 | unsigned access:3; | ||
175 | unsigned invalid:1; | ||
176 | }; | ||
177 | }; | ||
178 | |||
179 | struct kvm_mmu_page { | ||
180 | struct list_head link; | ||
181 | struct hlist_node hash_link; | ||
182 | |||
183 | /* | ||
184 | * The following two entries are used to key the shadow page in the | ||
185 | * hash table. | ||
186 | */ | ||
187 | gfn_t gfn; | ||
188 | union kvm_mmu_page_role role; | ||
189 | |||
190 | u64 *spt; | ||
191 | /* hold the gfn of each spte inside spt */ | ||
192 | gfn_t *gfns; | ||
193 | unsigned long slot_bitmap; /* One bit set per slot which has memory | ||
194 | * in this shadow page. | ||
195 | */ | ||
196 | int multimapped; /* More than one parent_pte? */ | ||
197 | int root_count; /* Currently serving as active root */ | ||
198 | bool unsync; | ||
199 | bool unsync_children; | ||
200 | union { | ||
201 | u64 *parent_pte; /* !multimapped */ | ||
202 | struct hlist_head parent_ptes; /* multimapped, kvm_pte_chain */ | ||
203 | }; | ||
204 | DECLARE_BITMAP(unsync_child_bitmap, 512); | ||
205 | }; | ||
206 | |||
207 | struct kvm_pv_mmu_op_buffer { | ||
208 | void *ptr; | ||
209 | unsigned len; | ||
210 | unsigned processed; | ||
211 | char buf[512] __aligned(sizeof(long)); | ||
212 | }; | ||
213 | |||
214 | /* | ||
215 | * x86 supports 3 paging modes (4-level 64-bit, 3-level 64-bit, and 2-level | ||
216 | * 32-bit). The kvm_mmu structure abstracts the details of the current mmu | ||
217 | * mode. | ||
218 | */ | ||
219 | struct kvm_mmu { | ||
220 | void (*new_cr3)(struct kvm_vcpu *vcpu); | ||
221 | int (*page_fault)(struct kvm_vcpu *vcpu, gva_t gva, u32 err); | ||
222 | void (*free)(struct kvm_vcpu *vcpu); | ||
223 | gpa_t (*gva_to_gpa)(struct kvm_vcpu *vcpu, gva_t gva); | ||
224 | void (*prefetch_page)(struct kvm_vcpu *vcpu, | ||
225 | struct kvm_mmu_page *page); | ||
226 | int (*sync_page)(struct kvm_vcpu *vcpu, | ||
227 | struct kvm_mmu_page *sp); | ||
228 | void (*invlpg)(struct kvm_vcpu *vcpu, gva_t gva); | ||
229 | hpa_t root_hpa; | ||
230 | int root_level; | ||
231 | int shadow_root_level; | ||
232 | |||
233 | u64 *pae_root; | ||
234 | }; | ||
235 | |||
236 | struct kvm_vcpu_arch { | ||
237 | u64 host_tsc; | ||
238 | int interrupt_window_open; | ||
239 | unsigned long irq_summary; /* bit vector: 1 per word in irq_pending */ | ||
240 | DECLARE_BITMAP(irq_pending, KVM_NR_INTERRUPTS); | ||
241 | /* | ||
242 | * rip and regs accesses must go through | ||
243 | * kvm_{register,rip}_{read,write} functions. | ||
244 | */ | ||
245 | unsigned long regs[NR_VCPU_REGS]; | ||
246 | u32 regs_avail; | ||
247 | u32 regs_dirty; | ||
248 | |||
249 | unsigned long cr0; | ||
250 | unsigned long cr2; | ||
251 | unsigned long cr3; | ||
252 | unsigned long cr4; | ||
253 | unsigned long cr8; | ||
254 | u64 pdptrs[4]; /* pae */ | ||
255 | u64 shadow_efer; | ||
256 | u64 apic_base; | ||
257 | struct kvm_lapic *apic; /* kernel irqchip context */ | ||
258 | int mp_state; | ||
259 | int sipi_vector; | ||
260 | u64 ia32_misc_enable_msr; | ||
261 | bool tpr_access_reporting; | ||
262 | |||
263 | struct kvm_mmu mmu; | ||
264 | /* only needed in kvm_pv_mmu_op() path, but it's hot so | ||
265 | * put it here to avoid allocation */ | ||
266 | struct kvm_pv_mmu_op_buffer mmu_op_buffer; | ||
267 | |||
268 | struct kvm_mmu_memory_cache mmu_pte_chain_cache; | ||
269 | struct kvm_mmu_memory_cache mmu_rmap_desc_cache; | ||
270 | struct kvm_mmu_memory_cache mmu_page_cache; | ||
271 | struct kvm_mmu_memory_cache mmu_page_header_cache; | ||
272 | |||
273 | gfn_t last_pt_write_gfn; | ||
274 | int last_pt_write_count; | ||
275 | u64 *last_pte_updated; | ||
276 | gfn_t last_pte_gfn; | ||
277 | |||
278 | struct { | ||
279 | gfn_t gfn; /* presumed gfn during guest pte update */ | ||
280 | pfn_t pfn; /* pfn corresponding to that gfn */ | ||
281 | int largepage; | ||
282 | unsigned long mmu_seq; | ||
283 | } update_pte; | ||
284 | |||
285 | struct i387_fxsave_struct host_fx_image; | ||
286 | struct i387_fxsave_struct guest_fx_image; | ||
287 | |||
288 | gva_t mmio_fault_cr2; | ||
289 | struct kvm_pio_request pio; | ||
290 | void *pio_data; | ||
291 | |||
292 | struct kvm_queued_exception { | ||
293 | bool pending; | ||
294 | bool has_error_code; | ||
295 | u8 nr; | ||
296 | u32 error_code; | ||
297 | } exception; | ||
298 | |||
299 | struct kvm_queued_interrupt { | ||
300 | bool pending; | ||
301 | u8 nr; | ||
302 | } interrupt; | ||
303 | |||
304 | struct { | ||
305 | int active; | ||
306 | u8 save_iopl; | ||
307 | struct kvm_save_segment { | ||
308 | u16 selector; | ||
309 | unsigned long base; | ||
310 | u32 limit; | ||
311 | u32 ar; | ||
312 | } tr, es, ds, fs, gs; | ||
313 | } rmode; | ||
314 | int halt_request; /* real mode on Intel only */ | ||
315 | |||
316 | int cpuid_nent; | ||
317 | struct kvm_cpuid_entry2 cpuid_entries[KVM_MAX_CPUID_ENTRIES]; | ||
318 | /* emulate context */ | ||
319 | |||
320 | struct x86_emulate_ctxt emulate_ctxt; | ||
321 | |||
322 | gpa_t time; | ||
323 | struct pvclock_vcpu_time_info hv_clock; | ||
324 | unsigned int hv_clock_tsc_khz; | ||
325 | unsigned int time_offset; | ||
326 | struct page *time_page; | ||
327 | |||
328 | bool nmi_pending; | ||
329 | bool nmi_injected; | ||
330 | |||
331 | u64 mtrr[0x100]; | ||
332 | }; | ||
333 | |||
334 | struct kvm_mem_alias { | ||
335 | gfn_t base_gfn; | ||
336 | unsigned long npages; | ||
337 | gfn_t target_gfn; | ||
338 | }; | ||
339 | |||
340 | struct kvm_arch{ | ||
341 | int naliases; | ||
342 | struct kvm_mem_alias aliases[KVM_ALIAS_SLOTS]; | ||
343 | |||
344 | unsigned int n_free_mmu_pages; | ||
345 | unsigned int n_requested_mmu_pages; | ||
346 | unsigned int n_alloc_mmu_pages; | ||
347 | struct hlist_head mmu_page_hash[KVM_NUM_MMU_PAGES]; | ||
348 | /* | ||
349 | * Hash table of struct kvm_mmu_page. | ||
350 | */ | ||
351 | struct list_head active_mmu_pages; | ||
352 | struct list_head assigned_dev_head; | ||
353 | struct dmar_domain *intel_iommu_domain; | ||
354 | struct kvm_pic *vpic; | ||
355 | struct kvm_ioapic *vioapic; | ||
356 | struct kvm_pit *vpit; | ||
357 | struct hlist_head irq_ack_notifier_list; | ||
358 | |||
359 | int round_robin_prev_vcpu; | ||
360 | unsigned int tss_addr; | ||
361 | struct page *apic_access_page; | ||
362 | |||
363 | gpa_t wall_clock; | ||
364 | |||
365 | struct page *ept_identity_pagetable; | ||
366 | bool ept_identity_pagetable_done; | ||
367 | }; | ||
368 | |||
369 | struct kvm_vm_stat { | ||
370 | u32 mmu_shadow_zapped; | ||
371 | u32 mmu_pte_write; | ||
372 | u32 mmu_pte_updated; | ||
373 | u32 mmu_pde_zapped; | ||
374 | u32 mmu_flooded; | ||
375 | u32 mmu_recycled; | ||
376 | u32 mmu_cache_miss; | ||
377 | u32 mmu_unsync; | ||
378 | u32 remote_tlb_flush; | ||
379 | u32 lpages; | ||
380 | }; | ||
381 | |||
382 | struct kvm_vcpu_stat { | ||
383 | u32 pf_fixed; | ||
384 | u32 pf_guest; | ||
385 | u32 tlb_flush; | ||
386 | u32 invlpg; | ||
387 | |||
388 | u32 exits; | ||
389 | u32 io_exits; | ||
390 | u32 mmio_exits; | ||
391 | u32 signal_exits; | ||
392 | u32 irq_window_exits; | ||
393 | u32 nmi_window_exits; | ||
394 | u32 halt_exits; | ||
395 | u32 halt_wakeup; | ||
396 | u32 request_irq_exits; | ||
397 | u32 irq_exits; | ||
398 | u32 host_state_reload; | ||
399 | u32 efer_reload; | ||
400 | u32 fpu_reload; | ||
401 | u32 insn_emulation; | ||
402 | u32 insn_emulation_fail; | ||
403 | u32 hypercalls; | ||
404 | u32 irq_injections; | ||
405 | }; | ||
406 | |||
407 | struct descriptor_table { | ||
408 | u16 limit; | ||
409 | unsigned long base; | ||
410 | } __attribute__((packed)); | ||
411 | |||
412 | struct kvm_x86_ops { | ||
413 | int (*cpu_has_kvm_support)(void); /* __init */ | ||
414 | int (*disabled_by_bios)(void); /* __init */ | ||
415 | void (*hardware_enable)(void *dummy); /* __init */ | ||
416 | void (*hardware_disable)(void *dummy); | ||
417 | void (*check_processor_compatibility)(void *rtn); | ||
418 | int (*hardware_setup)(void); /* __init */ | ||
419 | void (*hardware_unsetup)(void); /* __exit */ | ||
420 | bool (*cpu_has_accelerated_tpr)(void); | ||
421 | |||
422 | /* Create, but do not attach this VCPU */ | ||
423 | struct kvm_vcpu *(*vcpu_create)(struct kvm *kvm, unsigned id); | ||
424 | void (*vcpu_free)(struct kvm_vcpu *vcpu); | ||
425 | int (*vcpu_reset)(struct kvm_vcpu *vcpu); | ||
426 | |||
427 | void (*prepare_guest_switch)(struct kvm_vcpu *vcpu); | ||
428 | void (*vcpu_load)(struct kvm_vcpu *vcpu, int cpu); | ||
429 | void (*vcpu_put)(struct kvm_vcpu *vcpu); | ||
430 | |||
431 | int (*set_guest_debug)(struct kvm_vcpu *vcpu, | ||
432 | struct kvm_debug_guest *dbg); | ||
433 | void (*guest_debug_pre)(struct kvm_vcpu *vcpu); | ||
434 | int (*get_msr)(struct kvm_vcpu *vcpu, u32 msr_index, u64 *pdata); | ||
435 | int (*set_msr)(struct kvm_vcpu *vcpu, u32 msr_index, u64 data); | ||
436 | u64 (*get_segment_base)(struct kvm_vcpu *vcpu, int seg); | ||
437 | void (*get_segment)(struct kvm_vcpu *vcpu, | ||
438 | struct kvm_segment *var, int seg); | ||
439 | int (*get_cpl)(struct kvm_vcpu *vcpu); | ||
440 | void (*set_segment)(struct kvm_vcpu *vcpu, | ||
441 | struct kvm_segment *var, int seg); | ||
442 | void (*get_cs_db_l_bits)(struct kvm_vcpu *vcpu, int *db, int *l); | ||
443 | void (*decache_cr4_guest_bits)(struct kvm_vcpu *vcpu); | ||
444 | void (*set_cr0)(struct kvm_vcpu *vcpu, unsigned long cr0); | ||
445 | void (*set_cr3)(struct kvm_vcpu *vcpu, unsigned long cr3); | ||
446 | void (*set_cr4)(struct kvm_vcpu *vcpu, unsigned long cr4); | ||
447 | void (*set_efer)(struct kvm_vcpu *vcpu, u64 efer); | ||
448 | void (*get_idt)(struct kvm_vcpu *vcpu, struct descriptor_table *dt); | ||
449 | void (*set_idt)(struct kvm_vcpu *vcpu, struct descriptor_table *dt); | ||
450 | void (*get_gdt)(struct kvm_vcpu *vcpu, struct descriptor_table *dt); | ||
451 | void (*set_gdt)(struct kvm_vcpu *vcpu, struct descriptor_table *dt); | ||
452 | unsigned long (*get_dr)(struct kvm_vcpu *vcpu, int dr); | ||
453 | void (*set_dr)(struct kvm_vcpu *vcpu, int dr, unsigned long value, | ||
454 | int *exception); | ||
455 | void (*cache_reg)(struct kvm_vcpu *vcpu, enum kvm_reg reg); | ||
456 | unsigned long (*get_rflags)(struct kvm_vcpu *vcpu); | ||
457 | void (*set_rflags)(struct kvm_vcpu *vcpu, unsigned long rflags); | ||
458 | |||
459 | void (*tlb_flush)(struct kvm_vcpu *vcpu); | ||
460 | |||
461 | void (*run)(struct kvm_vcpu *vcpu, struct kvm_run *run); | ||
462 | int (*handle_exit)(struct kvm_run *run, struct kvm_vcpu *vcpu); | ||
463 | void (*skip_emulated_instruction)(struct kvm_vcpu *vcpu); | ||
464 | void (*patch_hypercall)(struct kvm_vcpu *vcpu, | ||
465 | unsigned char *hypercall_addr); | ||
466 | int (*get_irq)(struct kvm_vcpu *vcpu); | ||
467 | void (*set_irq)(struct kvm_vcpu *vcpu, int vec); | ||
468 | void (*queue_exception)(struct kvm_vcpu *vcpu, unsigned nr, | ||
469 | bool has_error_code, u32 error_code); | ||
470 | bool (*exception_injected)(struct kvm_vcpu *vcpu); | ||
471 | void (*inject_pending_irq)(struct kvm_vcpu *vcpu); | ||
472 | void (*inject_pending_vectors)(struct kvm_vcpu *vcpu, | ||
473 | struct kvm_run *run); | ||
474 | |||
475 | int (*set_tss_addr)(struct kvm *kvm, unsigned int addr); | ||
476 | int (*get_tdp_level)(void); | ||
477 | }; | ||
478 | |||
479 | extern struct kvm_x86_ops *kvm_x86_ops; | ||
480 | |||
481 | int kvm_mmu_module_init(void); | ||
482 | void kvm_mmu_module_exit(void); | ||
483 | |||
484 | void kvm_mmu_destroy(struct kvm_vcpu *vcpu); | ||
485 | int kvm_mmu_create(struct kvm_vcpu *vcpu); | ||
486 | int kvm_mmu_setup(struct kvm_vcpu *vcpu); | ||
487 | void kvm_mmu_set_nonpresent_ptes(u64 trap_pte, u64 notrap_pte); | ||
488 | void kvm_mmu_set_base_ptes(u64 base_pte); | ||
489 | void kvm_mmu_set_mask_ptes(u64 user_mask, u64 accessed_mask, | ||
490 | u64 dirty_mask, u64 nx_mask, u64 x_mask); | ||
491 | |||
492 | int kvm_mmu_reset_context(struct kvm_vcpu *vcpu); | ||
493 | void kvm_mmu_slot_remove_write_access(struct kvm *kvm, int slot); | ||
494 | void kvm_mmu_zap_all(struct kvm *kvm); | ||
495 | unsigned int kvm_mmu_calculate_mmu_pages(struct kvm *kvm); | ||
496 | void kvm_mmu_change_mmu_pages(struct kvm *kvm, unsigned int kvm_nr_mmu_pages); | ||
497 | |||
498 | int load_pdptrs(struct kvm_vcpu *vcpu, unsigned long cr3); | ||
499 | |||
500 | int emulator_write_phys(struct kvm_vcpu *vcpu, gpa_t gpa, | ||
501 | const void *val, int bytes); | ||
502 | int kvm_pv_mmu_op(struct kvm_vcpu *vcpu, unsigned long bytes, | ||
503 | gpa_t addr, unsigned long *ret); | ||
504 | |||
505 | extern bool tdp_enabled; | ||
506 | |||
507 | enum emulation_result { | ||
508 | EMULATE_DONE, /* no further processing */ | ||
509 | EMULATE_DO_MMIO, /* kvm_run filled with mmio request */ | ||
510 | EMULATE_FAIL, /* can't emulate this instruction */ | ||
511 | }; | ||
512 | |||
513 | #define EMULTYPE_NO_DECODE (1 << 0) | ||
514 | #define EMULTYPE_TRAP_UD (1 << 1) | ||
515 | int emulate_instruction(struct kvm_vcpu *vcpu, struct kvm_run *run, | ||
516 | unsigned long cr2, u16 error_code, int emulation_type); | ||
517 | void kvm_report_emulation_failure(struct kvm_vcpu *cvpu, const char *context); | ||
518 | void realmode_lgdt(struct kvm_vcpu *vcpu, u16 size, unsigned long address); | ||
519 | void realmode_lidt(struct kvm_vcpu *vcpu, u16 size, unsigned long address); | ||
520 | void realmode_lmsw(struct kvm_vcpu *vcpu, unsigned long msw, | ||
521 | unsigned long *rflags); | ||
522 | |||
523 | unsigned long realmode_get_cr(struct kvm_vcpu *vcpu, int cr); | ||
524 | void realmode_set_cr(struct kvm_vcpu *vcpu, int cr, unsigned long value, | ||
525 | unsigned long *rflags); | ||
526 | void kvm_enable_efer_bits(u64); | ||
527 | int kvm_get_msr(struct kvm_vcpu *vcpu, u32 msr_index, u64 *data); | ||
528 | int kvm_set_msr(struct kvm_vcpu *vcpu, u32 msr_index, u64 data); | ||
529 | |||
530 | struct x86_emulate_ctxt; | ||
531 | |||
532 | int kvm_emulate_pio(struct kvm_vcpu *vcpu, struct kvm_run *run, int in, | ||
533 | int size, unsigned port); | ||
534 | int kvm_emulate_pio_string(struct kvm_vcpu *vcpu, struct kvm_run *run, int in, | ||
535 | int size, unsigned long count, int down, | ||
536 | gva_t address, int rep, unsigned port); | ||
537 | void kvm_emulate_cpuid(struct kvm_vcpu *vcpu); | ||
538 | int kvm_emulate_halt(struct kvm_vcpu *vcpu); | ||
539 | int emulate_invlpg(struct kvm_vcpu *vcpu, gva_t address); | ||
540 | int emulate_clts(struct kvm_vcpu *vcpu); | ||
541 | int emulator_get_dr(struct x86_emulate_ctxt *ctxt, int dr, | ||
542 | unsigned long *dest); | ||
543 | int emulator_set_dr(struct x86_emulate_ctxt *ctxt, int dr, | ||
544 | unsigned long value); | ||
545 | |||
546 | void kvm_get_segment(struct kvm_vcpu *vcpu, struct kvm_segment *var, int seg); | ||
547 | int kvm_load_segment_descriptor(struct kvm_vcpu *vcpu, u16 selector, | ||
548 | int type_bits, int seg); | ||
549 | |||
550 | int kvm_task_switch(struct kvm_vcpu *vcpu, u16 tss_selector, int reason); | ||
551 | |||
552 | void kvm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0); | ||
553 | void kvm_set_cr3(struct kvm_vcpu *vcpu, unsigned long cr3); | ||
554 | void kvm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4); | ||
555 | void kvm_set_cr8(struct kvm_vcpu *vcpu, unsigned long cr8); | ||
556 | unsigned long kvm_get_cr8(struct kvm_vcpu *vcpu); | ||
557 | void kvm_lmsw(struct kvm_vcpu *vcpu, unsigned long msw); | ||
558 | void kvm_get_cs_db_l_bits(struct kvm_vcpu *vcpu, int *db, int *l); | ||
559 | |||
560 | int kvm_get_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata); | ||
561 | int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data); | ||
562 | |||
563 | void kvm_queue_exception(struct kvm_vcpu *vcpu, unsigned nr); | ||
564 | void kvm_queue_exception_e(struct kvm_vcpu *vcpu, unsigned nr, u32 error_code); | ||
565 | void kvm_inject_page_fault(struct kvm_vcpu *vcpu, unsigned long cr2, | ||
566 | u32 error_code); | ||
567 | |||
568 | void kvm_pic_set_irq(void *opaque, int irq, int level); | ||
569 | |||
570 | void kvm_inject_nmi(struct kvm_vcpu *vcpu); | ||
571 | |||
572 | void fx_init(struct kvm_vcpu *vcpu); | ||
573 | |||
574 | int emulator_read_std(unsigned long addr, | ||
575 | void *val, | ||
576 | unsigned int bytes, | ||
577 | struct kvm_vcpu *vcpu); | ||
578 | int emulator_write_emulated(unsigned long addr, | ||
579 | const void *val, | ||
580 | unsigned int bytes, | ||
581 | struct kvm_vcpu *vcpu); | ||
582 | |||
583 | unsigned long segment_base(u16 selector); | ||
584 | |||
585 | void kvm_mmu_flush_tlb(struct kvm_vcpu *vcpu); | ||
586 | void kvm_mmu_pte_write(struct kvm_vcpu *vcpu, gpa_t gpa, | ||
587 | const u8 *new, int bytes); | ||
588 | int kvm_mmu_unprotect_page_virt(struct kvm_vcpu *vcpu, gva_t gva); | ||
589 | void __kvm_mmu_free_some_pages(struct kvm_vcpu *vcpu); | ||
590 | int kvm_mmu_load(struct kvm_vcpu *vcpu); | ||
591 | void kvm_mmu_unload(struct kvm_vcpu *vcpu); | ||
592 | void kvm_mmu_sync_roots(struct kvm_vcpu *vcpu); | ||
593 | |||
594 | int kvm_emulate_hypercall(struct kvm_vcpu *vcpu); | ||
595 | |||
596 | int kvm_fix_hypercall(struct kvm_vcpu *vcpu); | ||
597 | |||
598 | int kvm_mmu_page_fault(struct kvm_vcpu *vcpu, gva_t gva, u32 error_code); | ||
599 | void kvm_mmu_invlpg(struct kvm_vcpu *vcpu, gva_t gva); | ||
600 | |||
601 | void kvm_enable_tdp(void); | ||
602 | void kvm_disable_tdp(void); | ||
603 | |||
604 | int load_pdptrs(struct kvm_vcpu *vcpu, unsigned long cr3); | ||
605 | int complete_pio(struct kvm_vcpu *vcpu); | ||
606 | |||
607 | static inline struct kvm_mmu_page *page_header(hpa_t shadow_page) | ||
608 | { | ||
609 | struct page *page = pfn_to_page(shadow_page >> PAGE_SHIFT); | ||
610 | |||
611 | return (struct kvm_mmu_page *)page_private(page); | ||
612 | } | ||
613 | |||
614 | static inline u16 kvm_read_fs(void) | ||
615 | { | ||
616 | u16 seg; | ||
617 | asm("mov %%fs, %0" : "=g"(seg)); | ||
618 | return seg; | ||
619 | } | ||
620 | |||
621 | static inline u16 kvm_read_gs(void) | ||
622 | { | ||
623 | u16 seg; | ||
624 | asm("mov %%gs, %0" : "=g"(seg)); | ||
625 | return seg; | ||
626 | } | ||
627 | |||
628 | static inline u16 kvm_read_ldt(void) | ||
629 | { | ||
630 | u16 ldt; | ||
631 | asm("sldt %0" : "=g"(ldt)); | ||
632 | return ldt; | ||
633 | } | ||
634 | |||
635 | static inline void kvm_load_fs(u16 sel) | ||
636 | { | ||
637 | asm("mov %0, %%fs" : : "rm"(sel)); | ||
638 | } | ||
639 | |||
640 | static inline void kvm_load_gs(u16 sel) | ||
641 | { | ||
642 | asm("mov %0, %%gs" : : "rm"(sel)); | ||
643 | } | ||
644 | |||
645 | static inline void kvm_load_ldt(u16 sel) | ||
646 | { | ||
647 | asm("lldt %0" : : "rm"(sel)); | ||
648 | } | ||
649 | |||
650 | static inline void kvm_get_idt(struct descriptor_table *table) | ||
651 | { | ||
652 | asm("sidt %0" : "=m"(*table)); | ||
653 | } | ||
654 | |||
655 | static inline void kvm_get_gdt(struct descriptor_table *table) | ||
656 | { | ||
657 | asm("sgdt %0" : "=m"(*table)); | ||
658 | } | ||
659 | |||
660 | static inline unsigned long kvm_read_tr_base(void) | ||
661 | { | ||
662 | u16 tr; | ||
663 | asm("str %0" : "=g"(tr)); | ||
664 | return segment_base(tr); | ||
665 | } | ||
666 | |||
667 | #ifdef CONFIG_X86_64 | ||
668 | static inline unsigned long read_msr(unsigned long msr) | ||
669 | { | ||
670 | u64 value; | ||
671 | |||
672 | rdmsrl(msr, value); | ||
673 | return value; | ||
674 | } | ||
675 | #endif | ||
676 | |||
677 | static inline void kvm_fx_save(struct i387_fxsave_struct *image) | ||
678 | { | ||
679 | asm("fxsave (%0)":: "r" (image)); | ||
680 | } | ||
681 | |||
682 | static inline void kvm_fx_restore(struct i387_fxsave_struct *image) | ||
683 | { | ||
684 | asm("fxrstor (%0)":: "r" (image)); | ||
685 | } | ||
686 | |||
687 | static inline void kvm_fx_finit(void) | ||
688 | { | ||
689 | asm("finit"); | ||
690 | } | ||
691 | |||
692 | static inline u32 get_rdx_init_val(void) | ||
693 | { | ||
694 | return 0x600; /* P6 family */ | ||
695 | } | ||
696 | |||
697 | static inline void kvm_inject_gp(struct kvm_vcpu *vcpu, u32 error_code) | ||
698 | { | ||
699 | kvm_queue_exception_e(vcpu, GP_VECTOR, error_code); | ||
700 | } | ||
701 | |||
702 | #define ASM_VMX_VMCLEAR_RAX ".byte 0x66, 0x0f, 0xc7, 0x30" | ||
703 | #define ASM_VMX_VMLAUNCH ".byte 0x0f, 0x01, 0xc2" | ||
704 | #define ASM_VMX_VMRESUME ".byte 0x0f, 0x01, 0xc3" | ||
705 | #define ASM_VMX_VMPTRLD_RAX ".byte 0x0f, 0xc7, 0x30" | ||
706 | #define ASM_VMX_VMREAD_RDX_RAX ".byte 0x0f, 0x78, 0xd0" | ||
707 | #define ASM_VMX_VMWRITE_RAX_RDX ".byte 0x0f, 0x79, 0xd0" | ||
708 | #define ASM_VMX_VMWRITE_RSP_RDX ".byte 0x0f, 0x79, 0xd4" | ||
709 | #define ASM_VMX_VMXOFF ".byte 0x0f, 0x01, 0xc4" | ||
710 | #define ASM_VMX_VMXON_RAX ".byte 0xf3, 0x0f, 0xc7, 0x30" | ||
711 | #define ASM_VMX_INVEPT ".byte 0x66, 0x0f, 0x38, 0x80, 0x08" | ||
712 | #define ASM_VMX_INVVPID ".byte 0x66, 0x0f, 0x38, 0x81, 0x08" | ||
713 | |||
714 | #define MSR_IA32_TIME_STAMP_COUNTER 0x010 | ||
715 | |||
716 | #define TSS_IOPB_BASE_OFFSET 0x66 | ||
717 | #define TSS_BASE_SIZE 0x68 | ||
718 | #define TSS_IOPB_SIZE (65536 / 8) | ||
719 | #define TSS_REDIRECTION_SIZE (256 / 8) | ||
720 | #define RMODE_TSS_SIZE \ | ||
721 | (TSS_BASE_SIZE + TSS_REDIRECTION_SIZE + TSS_IOPB_SIZE + 1) | ||
722 | |||
723 | enum { | ||
724 | TASK_SWITCH_CALL = 0, | ||
725 | TASK_SWITCH_IRET = 1, | ||
726 | TASK_SWITCH_JMP = 2, | ||
727 | TASK_SWITCH_GATE = 3, | ||
728 | }; | ||
729 | |||
730 | /* | ||
731 | * Hardware virtualization extension instructions may fault if a | ||
732 | * reboot turns off virtualization while processes are running. | ||
733 | * Trap the fault and ignore the instruction if that happens. | ||
734 | */ | ||
735 | asmlinkage void kvm_handle_fault_on_reboot(void); | ||
736 | |||
737 | #define __kvm_handle_fault_on_reboot(insn) \ | ||
738 | "666: " insn "\n\t" \ | ||
739 | ".pushsection .fixup, \"ax\" \n" \ | ||
740 | "667: \n\t" \ | ||
741 | __ASM_SIZE(push) " $666b \n\t" \ | ||
742 | "jmp kvm_handle_fault_on_reboot \n\t" \ | ||
743 | ".popsection \n\t" \ | ||
744 | ".pushsection __ex_table, \"a\" \n\t" \ | ||
745 | _ASM_PTR " 666b, 667b \n\t" \ | ||
746 | ".popsection" | ||
747 | |||
748 | #define KVM_ARCH_WANT_MMU_NOTIFIER | ||
749 | int kvm_unmap_hva(struct kvm *kvm, unsigned long hva); | ||
750 | int kvm_age_hva(struct kvm *kvm, unsigned long hva); | ||
751 | |||
752 | #endif /* _ASM_X86_KVM_HOST_H */ | ||
diff --git a/arch/x86/include/asm/kvm_para.h b/arch/x86/include/asm/kvm_para.h new file mode 100644 index 000000000000..b8a3305ae093 --- /dev/null +++ b/arch/x86/include/asm/kvm_para.h | |||
@@ -0,0 +1,147 @@ | |||
1 | #ifndef _ASM_X86_KVM_PARA_H | ||
2 | #define _ASM_X86_KVM_PARA_H | ||
3 | |||
4 | /* This CPUID returns the signature 'KVMKVMKVM' in ebx, ecx, and edx. It | ||
5 | * should be used to determine that a VM is running under KVM. | ||
6 | */ | ||
7 | #define KVM_CPUID_SIGNATURE 0x40000000 | ||
8 | |||
9 | /* This CPUID returns a feature bitmap in eax. Before enabling a particular | ||
10 | * paravirtualization, the appropriate feature bit should be checked. | ||
11 | */ | ||
12 | #define KVM_CPUID_FEATURES 0x40000001 | ||
13 | #define KVM_FEATURE_CLOCKSOURCE 0 | ||
14 | #define KVM_FEATURE_NOP_IO_DELAY 1 | ||
15 | #define KVM_FEATURE_MMU_OP 2 | ||
16 | |||
17 | #define MSR_KVM_WALL_CLOCK 0x11 | ||
18 | #define MSR_KVM_SYSTEM_TIME 0x12 | ||
19 | |||
20 | #define KVM_MAX_MMU_OP_BATCH 32 | ||
21 | |||
22 | /* Operations for KVM_HC_MMU_OP */ | ||
23 | #define KVM_MMU_OP_WRITE_PTE 1 | ||
24 | #define KVM_MMU_OP_FLUSH_TLB 2 | ||
25 | #define KVM_MMU_OP_RELEASE_PT 3 | ||
26 | |||
27 | /* Payload for KVM_HC_MMU_OP */ | ||
28 | struct kvm_mmu_op_header { | ||
29 | __u32 op; | ||
30 | __u32 pad; | ||
31 | }; | ||
32 | |||
33 | struct kvm_mmu_op_write_pte { | ||
34 | struct kvm_mmu_op_header header; | ||
35 | __u64 pte_phys; | ||
36 | __u64 pte_val; | ||
37 | }; | ||
38 | |||
39 | struct kvm_mmu_op_flush_tlb { | ||
40 | struct kvm_mmu_op_header header; | ||
41 | }; | ||
42 | |||
43 | struct kvm_mmu_op_release_pt { | ||
44 | struct kvm_mmu_op_header header; | ||
45 | __u64 pt_phys; | ||
46 | }; | ||
47 | |||
48 | #ifdef __KERNEL__ | ||
49 | #include <asm/processor.h> | ||
50 | |||
51 | extern void kvmclock_init(void); | ||
52 | |||
53 | |||
54 | /* This instruction is vmcall. On non-VT architectures, it will generate a | ||
55 | * trap that we will then rewrite to the appropriate instruction. | ||
56 | */ | ||
57 | #define KVM_HYPERCALL ".byte 0x0f,0x01,0xc1" | ||
58 | |||
59 | /* For KVM hypercalls, a three-byte sequence of either the vmrun or the vmmrun | ||
60 | * instruction. The hypervisor may replace it with something else but only the | ||
61 | * instructions are guaranteed to be supported. | ||
62 | * | ||
63 | * Up to four arguments may be passed in rbx, rcx, rdx, and rsi respectively. | ||
64 | * The hypercall number should be placed in rax and the return value will be | ||
65 | * placed in rax. No other registers will be clobbered unless explicited | ||
66 | * noted by the particular hypercall. | ||
67 | */ | ||
68 | |||
69 | static inline long kvm_hypercall0(unsigned int nr) | ||
70 | { | ||
71 | long ret; | ||
72 | asm volatile(KVM_HYPERCALL | ||
73 | : "=a"(ret) | ||
74 | : "a"(nr) | ||
75 | : "memory"); | ||
76 | return ret; | ||
77 | } | ||
78 | |||
79 | static inline long kvm_hypercall1(unsigned int nr, unsigned long p1) | ||
80 | { | ||
81 | long ret; | ||
82 | asm volatile(KVM_HYPERCALL | ||
83 | : "=a"(ret) | ||
84 | : "a"(nr), "b"(p1) | ||
85 | : "memory"); | ||
86 | return ret; | ||
87 | } | ||
88 | |||
89 | static inline long kvm_hypercall2(unsigned int nr, unsigned long p1, | ||
90 | unsigned long p2) | ||
91 | { | ||
92 | long ret; | ||
93 | asm volatile(KVM_HYPERCALL | ||
94 | : "=a"(ret) | ||
95 | : "a"(nr), "b"(p1), "c"(p2) | ||
96 | : "memory"); | ||
97 | return ret; | ||
98 | } | ||
99 | |||
100 | static inline long kvm_hypercall3(unsigned int nr, unsigned long p1, | ||
101 | unsigned long p2, unsigned long p3) | ||
102 | { | ||
103 | long ret; | ||
104 | asm volatile(KVM_HYPERCALL | ||
105 | : "=a"(ret) | ||
106 | : "a"(nr), "b"(p1), "c"(p2), "d"(p3) | ||
107 | : "memory"); | ||
108 | return ret; | ||
109 | } | ||
110 | |||
111 | static inline long kvm_hypercall4(unsigned int nr, unsigned long p1, | ||
112 | unsigned long p2, unsigned long p3, | ||
113 | unsigned long p4) | ||
114 | { | ||
115 | long ret; | ||
116 | asm volatile(KVM_HYPERCALL | ||
117 | : "=a"(ret) | ||
118 | : "a"(nr), "b"(p1), "c"(p2), "d"(p3), "S"(p4) | ||
119 | : "memory"); | ||
120 | return ret; | ||
121 | } | ||
122 | |||
123 | static inline int kvm_para_available(void) | ||
124 | { | ||
125 | unsigned int eax, ebx, ecx, edx; | ||
126 | char signature[13]; | ||
127 | |||
128 | cpuid(KVM_CPUID_SIGNATURE, &eax, &ebx, &ecx, &edx); | ||
129 | memcpy(signature + 0, &ebx, 4); | ||
130 | memcpy(signature + 4, &ecx, 4); | ||
131 | memcpy(signature + 8, &edx, 4); | ||
132 | signature[12] = 0; | ||
133 | |||
134 | if (strcmp(signature, "KVMKVMKVM") == 0) | ||
135 | return 1; | ||
136 | |||
137 | return 0; | ||
138 | } | ||
139 | |||
140 | static inline unsigned int kvm_arch_para_features(void) | ||
141 | { | ||
142 | return cpuid_eax(KVM_CPUID_FEATURES); | ||
143 | } | ||
144 | |||
145 | #endif | ||
146 | |||
147 | #endif /* _ASM_X86_KVM_PARA_H */ | ||
diff --git a/arch/x86/include/asm/kvm_x86_emulate.h b/arch/x86/include/asm/kvm_x86_emulate.h new file mode 100644 index 000000000000..25179a29f208 --- /dev/null +++ b/arch/x86/include/asm/kvm_x86_emulate.h | |||
@@ -0,0 +1,184 @@ | |||
1 | /****************************************************************************** | ||
2 | * x86_emulate.h | ||
3 | * | ||
4 | * Generic x86 (32-bit and 64-bit) instruction decoder and emulator. | ||
5 | * | ||
6 | * Copyright (c) 2005 Keir Fraser | ||
7 | * | ||
8 | * From: xen-unstable 10676:af9809f51f81a3c43f276f00c81a52ef558afda4 | ||
9 | */ | ||
10 | |||
11 | #ifndef _ASM_X86_KVM_X86_EMULATE_H | ||
12 | #define _ASM_X86_KVM_X86_EMULATE_H | ||
13 | |||
14 | struct x86_emulate_ctxt; | ||
15 | |||
16 | /* | ||
17 | * x86_emulate_ops: | ||
18 | * | ||
19 | * These operations represent the instruction emulator's interface to memory. | ||
20 | * There are two categories of operation: those that act on ordinary memory | ||
21 | * regions (*_std), and those that act on memory regions known to require | ||
22 | * special treatment or emulation (*_emulated). | ||
23 | * | ||
24 | * The emulator assumes that an instruction accesses only one 'emulated memory' | ||
25 | * location, that this location is the given linear faulting address (cr2), and | ||
26 | * that this is one of the instruction's data operands. Instruction fetches and | ||
27 | * stack operations are assumed never to access emulated memory. The emulator | ||
28 | * automatically deduces which operand of a string-move operation is accessing | ||
29 | * emulated memory, and assumes that the other operand accesses normal memory. | ||
30 | * | ||
31 | * NOTES: | ||
32 | * 1. The emulator isn't very smart about emulated vs. standard memory. | ||
33 | * 'Emulated memory' access addresses should be checked for sanity. | ||
34 | * 'Normal memory' accesses may fault, and the caller must arrange to | ||
35 | * detect and handle reentrancy into the emulator via recursive faults. | ||
36 | * Accesses may be unaligned and may cross page boundaries. | ||
37 | * 2. If the access fails (cannot emulate, or a standard access faults) then | ||
38 | * it is up to the memop to propagate the fault to the guest VM via | ||
39 | * some out-of-band mechanism, unknown to the emulator. The memop signals | ||
40 | * failure by returning X86EMUL_PROPAGATE_FAULT to the emulator, which will | ||
41 | * then immediately bail. | ||
42 | * 3. Valid access sizes are 1, 2, 4 and 8 bytes. On x86/32 systems only | ||
43 | * cmpxchg8b_emulated need support 8-byte accesses. | ||
44 | * 4. The emulator cannot handle 64-bit mode emulation on an x86/32 system. | ||
45 | */ | ||
46 | /* Access completed successfully: continue emulation as normal. */ | ||
47 | #define X86EMUL_CONTINUE 0 | ||
48 | /* Access is unhandleable: bail from emulation and return error to caller. */ | ||
49 | #define X86EMUL_UNHANDLEABLE 1 | ||
50 | /* Terminate emulation but return success to the caller. */ | ||
51 | #define X86EMUL_PROPAGATE_FAULT 2 /* propagate a generated fault to guest */ | ||
52 | #define X86EMUL_RETRY_INSTR 2 /* retry the instruction for some reason */ | ||
53 | #define X86EMUL_CMPXCHG_FAILED 2 /* cmpxchg did not see expected value */ | ||
54 | struct x86_emulate_ops { | ||
55 | /* | ||
56 | * read_std: Read bytes of standard (non-emulated/special) memory. | ||
57 | * Used for instruction fetch, stack operations, and others. | ||
58 | * @addr: [IN ] Linear address from which to read. | ||
59 | * @val: [OUT] Value read from memory, zero-extended to 'u_long'. | ||
60 | * @bytes: [IN ] Number of bytes to read from memory. | ||
61 | */ | ||
62 | int (*read_std)(unsigned long addr, void *val, | ||
63 | unsigned int bytes, struct kvm_vcpu *vcpu); | ||
64 | |||
65 | /* | ||
66 | * read_emulated: Read bytes from emulated/special memory area. | ||
67 | * @addr: [IN ] Linear address from which to read. | ||
68 | * @val: [OUT] Value read from memory, zero-extended to 'u_long'. | ||
69 | * @bytes: [IN ] Number of bytes to read from memory. | ||
70 | */ | ||
71 | int (*read_emulated)(unsigned long addr, | ||
72 | void *val, | ||
73 | unsigned int bytes, | ||
74 | struct kvm_vcpu *vcpu); | ||
75 | |||
76 | /* | ||
77 | * write_emulated: Read bytes from emulated/special memory area. | ||
78 | * @addr: [IN ] Linear address to which to write. | ||
79 | * @val: [IN ] Value to write to memory (low-order bytes used as | ||
80 | * required). | ||
81 | * @bytes: [IN ] Number of bytes to write to memory. | ||
82 | */ | ||
83 | int (*write_emulated)(unsigned long addr, | ||
84 | const void *val, | ||
85 | unsigned int bytes, | ||
86 | struct kvm_vcpu *vcpu); | ||
87 | |||
88 | /* | ||
89 | * cmpxchg_emulated: Emulate an atomic (LOCKed) CMPXCHG operation on an | ||
90 | * emulated/special memory area. | ||
91 | * @addr: [IN ] Linear address to access. | ||
92 | * @old: [IN ] Value expected to be current at @addr. | ||
93 | * @new: [IN ] Value to write to @addr. | ||
94 | * @bytes: [IN ] Number of bytes to access using CMPXCHG. | ||
95 | */ | ||
96 | int (*cmpxchg_emulated)(unsigned long addr, | ||
97 | const void *old, | ||
98 | const void *new, | ||
99 | unsigned int bytes, | ||
100 | struct kvm_vcpu *vcpu); | ||
101 | |||
102 | }; | ||
103 | |||
104 | /* Type, address-of, and value of an instruction's operand. */ | ||
105 | struct operand { | ||
106 | enum { OP_REG, OP_MEM, OP_IMM, OP_NONE } type; | ||
107 | unsigned int bytes; | ||
108 | unsigned long val, orig_val, *ptr; | ||
109 | }; | ||
110 | |||
111 | struct fetch_cache { | ||
112 | u8 data[15]; | ||
113 | unsigned long start; | ||
114 | unsigned long end; | ||
115 | }; | ||
116 | |||
117 | struct decode_cache { | ||
118 | u8 twobyte; | ||
119 | u8 b; | ||
120 | u8 lock_prefix; | ||
121 | u8 rep_prefix; | ||
122 | u8 op_bytes; | ||
123 | u8 ad_bytes; | ||
124 | u8 rex_prefix; | ||
125 | struct operand src; | ||
126 | struct operand dst; | ||
127 | bool has_seg_override; | ||
128 | u8 seg_override; | ||
129 | unsigned int d; | ||
130 | unsigned long regs[NR_VCPU_REGS]; | ||
131 | unsigned long eip; | ||
132 | /* modrm */ | ||
133 | u8 modrm; | ||
134 | u8 modrm_mod; | ||
135 | u8 modrm_reg; | ||
136 | u8 modrm_rm; | ||
137 | u8 use_modrm_ea; | ||
138 | bool rip_relative; | ||
139 | unsigned long modrm_ea; | ||
140 | void *modrm_ptr; | ||
141 | unsigned long modrm_val; | ||
142 | struct fetch_cache fetch; | ||
143 | }; | ||
144 | |||
145 | struct x86_emulate_ctxt { | ||
146 | /* Register state before/after emulation. */ | ||
147 | struct kvm_vcpu *vcpu; | ||
148 | |||
149 | /* Linear faulting address (if emulating a page-faulting instruction) */ | ||
150 | unsigned long eflags; | ||
151 | |||
152 | /* Emulated execution mode, represented by an X86EMUL_MODE value. */ | ||
153 | int mode; | ||
154 | |||
155 | u32 cs_base; | ||
156 | |||
157 | /* decode cache */ | ||
158 | |||
159 | struct decode_cache decode; | ||
160 | }; | ||
161 | |||
162 | /* Repeat String Operation Prefix */ | ||
163 | #define REPE_PREFIX 1 | ||
164 | #define REPNE_PREFIX 2 | ||
165 | |||
166 | /* Execution mode, passed to the emulator. */ | ||
167 | #define X86EMUL_MODE_REAL 0 /* Real mode. */ | ||
168 | #define X86EMUL_MODE_PROT16 2 /* 16-bit protected mode. */ | ||
169 | #define X86EMUL_MODE_PROT32 4 /* 32-bit protected mode. */ | ||
170 | #define X86EMUL_MODE_PROT64 8 /* 64-bit (long) mode. */ | ||
171 | |||
172 | /* Host execution mode. */ | ||
173 | #if defined(__i386__) | ||
174 | #define X86EMUL_MODE_HOST X86EMUL_MODE_PROT32 | ||
175 | #elif defined(CONFIG_X86_64) | ||
176 | #define X86EMUL_MODE_HOST X86EMUL_MODE_PROT64 | ||
177 | #endif | ||
178 | |||
179 | int x86_decode_insn(struct x86_emulate_ctxt *ctxt, | ||
180 | struct x86_emulate_ops *ops); | ||
181 | int x86_emulate_insn(struct x86_emulate_ctxt *ctxt, | ||
182 | struct x86_emulate_ops *ops); | ||
183 | |||
184 | #endif /* _ASM_X86_KVM_X86_EMULATE_H */ | ||
diff --git a/arch/x86/include/asm/ldt.h b/arch/x86/include/asm/ldt.h new file mode 100644 index 000000000000..46727eb37bfe --- /dev/null +++ b/arch/x86/include/asm/ldt.h | |||
@@ -0,0 +1,40 @@ | |||
1 | /* | ||
2 | * ldt.h | ||
3 | * | ||
4 | * Definitions of structures used with the modify_ldt system call. | ||
5 | */ | ||
6 | #ifndef _ASM_X86_LDT_H | ||
7 | #define _ASM_X86_LDT_H | ||
8 | |||
9 | /* Maximum number of LDT entries supported. */ | ||
10 | #define LDT_ENTRIES 8192 | ||
11 | /* The size of each LDT entry. */ | ||
12 | #define LDT_ENTRY_SIZE 8 | ||
13 | |||
14 | #ifndef __ASSEMBLY__ | ||
15 | /* | ||
16 | * Note on 64bit base and limit is ignored and you cannot set DS/ES/CS | ||
17 | * not to the default values if you still want to do syscalls. This | ||
18 | * call is more for 32bit mode therefore. | ||
19 | */ | ||
20 | struct user_desc { | ||
21 | unsigned int entry_number; | ||
22 | unsigned int base_addr; | ||
23 | unsigned int limit; | ||
24 | unsigned int seg_32bit:1; | ||
25 | unsigned int contents:2; | ||
26 | unsigned int read_exec_only:1; | ||
27 | unsigned int limit_in_pages:1; | ||
28 | unsigned int seg_not_present:1; | ||
29 | unsigned int useable:1; | ||
30 | #ifdef __x86_64__ | ||
31 | unsigned int lm:1; | ||
32 | #endif | ||
33 | }; | ||
34 | |||
35 | #define MODIFY_LDT_CONTENTS_DATA 0 | ||
36 | #define MODIFY_LDT_CONTENTS_STACK 1 | ||
37 | #define MODIFY_LDT_CONTENTS_CODE 2 | ||
38 | |||
39 | #endif /* !__ASSEMBLY__ */ | ||
40 | #endif /* _ASM_X86_LDT_H */ | ||
diff --git a/arch/x86/include/asm/lguest.h b/arch/x86/include/asm/lguest.h new file mode 100644 index 000000000000..d28a507cef39 --- /dev/null +++ b/arch/x86/include/asm/lguest.h | |||
@@ -0,0 +1,94 @@ | |||
1 | #ifndef _ASM_X86_LGUEST_H | ||
2 | #define _ASM_X86_LGUEST_H | ||
3 | |||
4 | #define GDT_ENTRY_LGUEST_CS 10 | ||
5 | #define GDT_ENTRY_LGUEST_DS 11 | ||
6 | #define LGUEST_CS (GDT_ENTRY_LGUEST_CS * 8) | ||
7 | #define LGUEST_DS (GDT_ENTRY_LGUEST_DS * 8) | ||
8 | |||
9 | #ifndef __ASSEMBLY__ | ||
10 | #include <asm/desc.h> | ||
11 | |||
12 | #define GUEST_PL 1 | ||
13 | |||
14 | /* Every guest maps the core switcher code. */ | ||
15 | #define SHARED_SWITCHER_PAGES \ | ||
16 | DIV_ROUND_UP(end_switcher_text - start_switcher_text, PAGE_SIZE) | ||
17 | /* Pages for switcher itself, then two pages per cpu */ | ||
18 | #define TOTAL_SWITCHER_PAGES (SHARED_SWITCHER_PAGES + 2 * NR_CPUS) | ||
19 | |||
20 | /* We map at -4M for ease of mapping into the guest (one PTE page). */ | ||
21 | #define SWITCHER_ADDR 0xFFC00000 | ||
22 | |||
23 | /* Found in switcher.S */ | ||
24 | extern unsigned long default_idt_entries[]; | ||
25 | |||
26 | /* Declarations for definitions in lguest_guest.S */ | ||
27 | extern char lguest_noirq_start[], lguest_noirq_end[]; | ||
28 | extern const char lgstart_cli[], lgend_cli[]; | ||
29 | extern const char lgstart_sti[], lgend_sti[]; | ||
30 | extern const char lgstart_popf[], lgend_popf[]; | ||
31 | extern const char lgstart_pushf[], lgend_pushf[]; | ||
32 | extern const char lgstart_iret[], lgend_iret[]; | ||
33 | |||
34 | extern void lguest_iret(void); | ||
35 | extern void lguest_init(void); | ||
36 | |||
37 | struct lguest_regs { | ||
38 | /* Manually saved part. */ | ||
39 | unsigned long eax, ebx, ecx, edx; | ||
40 | unsigned long esi, edi, ebp; | ||
41 | unsigned long gs; | ||
42 | unsigned long fs, ds, es; | ||
43 | unsigned long trapnum, errcode; | ||
44 | /* Trap pushed part */ | ||
45 | unsigned long eip; | ||
46 | unsigned long cs; | ||
47 | unsigned long eflags; | ||
48 | unsigned long esp; | ||
49 | unsigned long ss; | ||
50 | }; | ||
51 | |||
52 | /* This is a guest-specific page (mapped ro) into the guest. */ | ||
53 | struct lguest_ro_state { | ||
54 | /* Host information we need to restore when we switch back. */ | ||
55 | u32 host_cr3; | ||
56 | struct desc_ptr host_idt_desc; | ||
57 | struct desc_ptr host_gdt_desc; | ||
58 | u32 host_sp; | ||
59 | |||
60 | /* Fields which are used when guest is running. */ | ||
61 | struct desc_ptr guest_idt_desc; | ||
62 | struct desc_ptr guest_gdt_desc; | ||
63 | struct x86_hw_tss guest_tss; | ||
64 | struct desc_struct guest_idt[IDT_ENTRIES]; | ||
65 | struct desc_struct guest_gdt[GDT_ENTRIES]; | ||
66 | }; | ||
67 | |||
68 | struct lg_cpu_arch { | ||
69 | /* The GDT entries copied into lguest_ro_state when running. */ | ||
70 | struct desc_struct gdt[GDT_ENTRIES]; | ||
71 | |||
72 | /* The IDT entries: some copied into lguest_ro_state when running. */ | ||
73 | struct desc_struct idt[IDT_ENTRIES]; | ||
74 | |||
75 | /* The address of the last guest-visible pagefault (ie. cr2). */ | ||
76 | unsigned long last_pagefault; | ||
77 | }; | ||
78 | |||
79 | static inline void lguest_set_ts(void) | ||
80 | { | ||
81 | u32 cr0; | ||
82 | |||
83 | cr0 = read_cr0(); | ||
84 | if (!(cr0 & 8)) | ||
85 | write_cr0(cr0 | 8); | ||
86 | } | ||
87 | |||
88 | /* Full 4G segment descriptors, suitable for CS and DS. */ | ||
89 | #define FULL_EXEC_SEGMENT ((struct desc_struct){ { {0x0000ffff, 0x00cf9b00} } }) | ||
90 | #define FULL_SEGMENT ((struct desc_struct){ { {0x0000ffff, 0x00cf9300} } }) | ||
91 | |||
92 | #endif /* __ASSEMBLY__ */ | ||
93 | |||
94 | #endif /* _ASM_X86_LGUEST_H */ | ||
diff --git a/arch/x86/include/asm/lguest_hcall.h b/arch/x86/include/asm/lguest_hcall.h new file mode 100644 index 000000000000..43894428c3c2 --- /dev/null +++ b/arch/x86/include/asm/lguest_hcall.h | |||
@@ -0,0 +1,71 @@ | |||
1 | /* Architecture specific portion of the lguest hypercalls */ | ||
2 | #ifndef _ASM_X86_LGUEST_HCALL_H | ||
3 | #define _ASM_X86_LGUEST_HCALL_H | ||
4 | |||
5 | #define LHCALL_FLUSH_ASYNC 0 | ||
6 | #define LHCALL_LGUEST_INIT 1 | ||
7 | #define LHCALL_SHUTDOWN 2 | ||
8 | #define LHCALL_LOAD_GDT 3 | ||
9 | #define LHCALL_NEW_PGTABLE 4 | ||
10 | #define LHCALL_FLUSH_TLB 5 | ||
11 | #define LHCALL_LOAD_IDT_ENTRY 6 | ||
12 | #define LHCALL_SET_STACK 7 | ||
13 | #define LHCALL_TS 8 | ||
14 | #define LHCALL_SET_CLOCKEVENT 9 | ||
15 | #define LHCALL_HALT 10 | ||
16 | #define LHCALL_SET_PTE 14 | ||
17 | #define LHCALL_SET_PMD 15 | ||
18 | #define LHCALL_LOAD_TLS 16 | ||
19 | #define LHCALL_NOTIFY 17 | ||
20 | |||
21 | #define LGUEST_TRAP_ENTRY 0x1F | ||
22 | |||
23 | /* Argument number 3 to LHCALL_LGUEST_SHUTDOWN */ | ||
24 | #define LGUEST_SHUTDOWN_POWEROFF 1 | ||
25 | #define LGUEST_SHUTDOWN_RESTART 2 | ||
26 | |||
27 | #ifndef __ASSEMBLY__ | ||
28 | #include <asm/hw_irq.h> | ||
29 | |||
30 | /*G:031 But first, how does our Guest contact the Host to ask for privileged | ||
31 | * operations? There are two ways: the direct way is to make a "hypercall", | ||
32 | * to make requests of the Host Itself. | ||
33 | * | ||
34 | * Our hypercall mechanism uses the highest unused trap code (traps 32 and | ||
35 | * above are used by real hardware interrupts). Fifteen hypercalls are | ||
36 | * available: the hypercall number is put in the %eax register, and the | ||
37 | * arguments (when required) are placed in %edx, %ebx and %ecx. If a return | ||
38 | * value makes sense, it's returned in %eax. | ||
39 | * | ||
40 | * Grossly invalid calls result in Sudden Death at the hands of the vengeful | ||
41 | * Host, rather than returning failure. This reflects Winston Churchill's | ||
42 | * definition of a gentleman: "someone who is only rude intentionally". */ | ||
43 | static inline unsigned long | ||
44 | hcall(unsigned long call, | ||
45 | unsigned long arg1, unsigned long arg2, unsigned long arg3) | ||
46 | { | ||
47 | /* "int" is the Intel instruction to trigger a trap. */ | ||
48 | asm volatile("int $" __stringify(LGUEST_TRAP_ENTRY) | ||
49 | /* The call in %eax (aka "a") might be overwritten */ | ||
50 | : "=a"(call) | ||
51 | /* The arguments are in %eax, %edx, %ebx & %ecx */ | ||
52 | : "a"(call), "d"(arg1), "b"(arg2), "c"(arg3) | ||
53 | /* "memory" means this might write somewhere in memory. | ||
54 | * This isn't true for all calls, but it's safe to tell | ||
55 | * gcc that it might happen so it doesn't get clever. */ | ||
56 | : "memory"); | ||
57 | return call; | ||
58 | } | ||
59 | /*:*/ | ||
60 | |||
61 | /* Can't use our min() macro here: needs to be a constant */ | ||
62 | #define LGUEST_IRQS (NR_IRQS < 32 ? NR_IRQS: 32) | ||
63 | |||
64 | #define LHCALL_RING_SIZE 64 | ||
65 | struct hcall_args { | ||
66 | /* These map directly onto eax, ebx, ecx, edx in struct lguest_regs */ | ||
67 | unsigned long arg0, arg2, arg3, arg1; | ||
68 | }; | ||
69 | |||
70 | #endif /* !__ASSEMBLY__ */ | ||
71 | #endif /* _ASM_X86_LGUEST_HCALL_H */ | ||
diff --git a/arch/x86/include/asm/linkage.h b/arch/x86/include/asm/linkage.h new file mode 100644 index 000000000000..f61ee8f937e4 --- /dev/null +++ b/arch/x86/include/asm/linkage.h | |||
@@ -0,0 +1,61 @@ | |||
1 | #ifndef _ASM_X86_LINKAGE_H | ||
2 | #define _ASM_X86_LINKAGE_H | ||
3 | |||
4 | #undef notrace | ||
5 | #define notrace __attribute__((no_instrument_function)) | ||
6 | |||
7 | #ifdef CONFIG_X86_64 | ||
8 | #define __ALIGN .p2align 4,,15 | ||
9 | #define __ALIGN_STR ".p2align 4,,15" | ||
10 | #endif | ||
11 | |||
12 | #ifdef CONFIG_X86_32 | ||
13 | #define asmlinkage CPP_ASMLINKAGE __attribute__((regparm(0))) | ||
14 | /* | ||
15 | * For 32-bit UML - mark functions implemented in assembly that use | ||
16 | * regparm input parameters: | ||
17 | */ | ||
18 | #define asmregparm __attribute__((regparm(3))) | ||
19 | |||
20 | /* | ||
21 | * Make sure the compiler doesn't do anything stupid with the | ||
22 | * arguments on the stack - they are owned by the *caller*, not | ||
23 | * the callee. This just fools gcc into not spilling into them, | ||
24 | * and keeps it from doing tailcall recursion and/or using the | ||
25 | * stack slots for temporaries, since they are live and "used" | ||
26 | * all the way to the end of the function. | ||
27 | * | ||
28 | * NOTE! On x86-64, all the arguments are in registers, so this | ||
29 | * only matters on a 32-bit kernel. | ||
30 | */ | ||
31 | #define asmlinkage_protect(n, ret, args...) \ | ||
32 | __asmlinkage_protect##n(ret, ##args) | ||
33 | #define __asmlinkage_protect_n(ret, args...) \ | ||
34 | __asm__ __volatile__ ("" : "=r" (ret) : "0" (ret), ##args) | ||
35 | #define __asmlinkage_protect0(ret) \ | ||
36 | __asmlinkage_protect_n(ret) | ||
37 | #define __asmlinkage_protect1(ret, arg1) \ | ||
38 | __asmlinkage_protect_n(ret, "g" (arg1)) | ||
39 | #define __asmlinkage_protect2(ret, arg1, arg2) \ | ||
40 | __asmlinkage_protect_n(ret, "g" (arg1), "g" (arg2)) | ||
41 | #define __asmlinkage_protect3(ret, arg1, arg2, arg3) \ | ||
42 | __asmlinkage_protect_n(ret, "g" (arg1), "g" (arg2), "g" (arg3)) | ||
43 | #define __asmlinkage_protect4(ret, arg1, arg2, arg3, arg4) \ | ||
44 | __asmlinkage_protect_n(ret, "g" (arg1), "g" (arg2), "g" (arg3), \ | ||
45 | "g" (arg4)) | ||
46 | #define __asmlinkage_protect5(ret, arg1, arg2, arg3, arg4, arg5) \ | ||
47 | __asmlinkage_protect_n(ret, "g" (arg1), "g" (arg2), "g" (arg3), \ | ||
48 | "g" (arg4), "g" (arg5)) | ||
49 | #define __asmlinkage_protect6(ret, arg1, arg2, arg3, arg4, arg5, arg6) \ | ||
50 | __asmlinkage_protect_n(ret, "g" (arg1), "g" (arg2), "g" (arg3), \ | ||
51 | "g" (arg4), "g" (arg5), "g" (arg6)) | ||
52 | |||
53 | #endif | ||
54 | |||
55 | #ifdef CONFIG_X86_ALIGNMENT_16 | ||
56 | #define __ALIGN .align 16,0x90 | ||
57 | #define __ALIGN_STR ".align 16,0x90" | ||
58 | #endif | ||
59 | |||
60 | #endif /* _ASM_X86_LINKAGE_H */ | ||
61 | |||
diff --git a/arch/x86/include/asm/local.h b/arch/x86/include/asm/local.h new file mode 100644 index 000000000000..47b9b6f19057 --- /dev/null +++ b/arch/x86/include/asm/local.h | |||
@@ -0,0 +1,235 @@ | |||
1 | #ifndef _ASM_X86_LOCAL_H | ||
2 | #define _ASM_X86_LOCAL_H | ||
3 | |||
4 | #include <linux/percpu.h> | ||
5 | |||
6 | #include <asm/system.h> | ||
7 | #include <asm/atomic.h> | ||
8 | #include <asm/asm.h> | ||
9 | |||
10 | typedef struct { | ||
11 | atomic_long_t a; | ||
12 | } local_t; | ||
13 | |||
14 | #define LOCAL_INIT(i) { ATOMIC_LONG_INIT(i) } | ||
15 | |||
16 | #define local_read(l) atomic_long_read(&(l)->a) | ||
17 | #define local_set(l, i) atomic_long_set(&(l)->a, (i)) | ||
18 | |||
19 | static inline void local_inc(local_t *l) | ||
20 | { | ||
21 | asm volatile(_ASM_INC "%0" | ||
22 | : "+m" (l->a.counter)); | ||
23 | } | ||
24 | |||
25 | static inline void local_dec(local_t *l) | ||
26 | { | ||
27 | asm volatile(_ASM_DEC "%0" | ||
28 | : "+m" (l->a.counter)); | ||
29 | } | ||
30 | |||
31 | static inline void local_add(long i, local_t *l) | ||
32 | { | ||
33 | asm volatile(_ASM_ADD "%1,%0" | ||
34 | : "+m" (l->a.counter) | ||
35 | : "ir" (i)); | ||
36 | } | ||
37 | |||
38 | static inline void local_sub(long i, local_t *l) | ||
39 | { | ||
40 | asm volatile(_ASM_SUB "%1,%0" | ||
41 | : "+m" (l->a.counter) | ||
42 | : "ir" (i)); | ||
43 | } | ||
44 | |||
45 | /** | ||
46 | * local_sub_and_test - subtract value from variable and test result | ||
47 | * @i: integer value to subtract | ||
48 | * @l: pointer to type local_t | ||
49 | * | ||
50 | * Atomically subtracts @i from @l and returns | ||
51 | * true if the result is zero, or false for all | ||
52 | * other cases. | ||
53 | */ | ||
54 | static inline int local_sub_and_test(long i, local_t *l) | ||
55 | { | ||
56 | unsigned char c; | ||
57 | |||
58 | asm volatile(_ASM_SUB "%2,%0; sete %1" | ||
59 | : "+m" (l->a.counter), "=qm" (c) | ||
60 | : "ir" (i) : "memory"); | ||
61 | return c; | ||
62 | } | ||
63 | |||
64 | /** | ||
65 | * local_dec_and_test - decrement and test | ||
66 | * @l: pointer to type local_t | ||
67 | * | ||
68 | * Atomically decrements @l by 1 and | ||
69 | * returns true if the result is 0, or false for all other | ||
70 | * cases. | ||
71 | */ | ||
72 | static inline int local_dec_and_test(local_t *l) | ||
73 | { | ||
74 | unsigned char c; | ||
75 | |||
76 | asm volatile(_ASM_DEC "%0; sete %1" | ||
77 | : "+m" (l->a.counter), "=qm" (c) | ||
78 | : : "memory"); | ||
79 | return c != 0; | ||
80 | } | ||
81 | |||
82 | /** | ||
83 | * local_inc_and_test - increment and test | ||
84 | * @l: pointer to type local_t | ||
85 | * | ||
86 | * Atomically increments @l by 1 | ||
87 | * and returns true if the result is zero, or false for all | ||
88 | * other cases. | ||
89 | */ | ||
90 | static inline int local_inc_and_test(local_t *l) | ||
91 | { | ||
92 | unsigned char c; | ||
93 | |||
94 | asm volatile(_ASM_INC "%0; sete %1" | ||
95 | : "+m" (l->a.counter), "=qm" (c) | ||
96 | : : "memory"); | ||
97 | return c != 0; | ||
98 | } | ||
99 | |||
100 | /** | ||
101 | * local_add_negative - add and test if negative | ||
102 | * @i: integer value to add | ||
103 | * @l: pointer to type local_t | ||
104 | * | ||
105 | * Atomically adds @i to @l and returns true | ||
106 | * if the result is negative, or false when | ||
107 | * result is greater than or equal to zero. | ||
108 | */ | ||
109 | static inline int local_add_negative(long i, local_t *l) | ||
110 | { | ||
111 | unsigned char c; | ||
112 | |||
113 | asm volatile(_ASM_ADD "%2,%0; sets %1" | ||
114 | : "+m" (l->a.counter), "=qm" (c) | ||
115 | : "ir" (i) : "memory"); | ||
116 | return c; | ||
117 | } | ||
118 | |||
119 | /** | ||
120 | * local_add_return - add and return | ||
121 | * @i: integer value to add | ||
122 | * @l: pointer to type local_t | ||
123 | * | ||
124 | * Atomically adds @i to @l and returns @i + @l | ||
125 | */ | ||
126 | static inline long local_add_return(long i, local_t *l) | ||
127 | { | ||
128 | long __i; | ||
129 | #ifdef CONFIG_M386 | ||
130 | unsigned long flags; | ||
131 | if (unlikely(boot_cpu_data.x86 <= 3)) | ||
132 | goto no_xadd; | ||
133 | #endif | ||
134 | /* Modern 486+ processor */ | ||
135 | __i = i; | ||
136 | asm volatile(_ASM_XADD "%0, %1;" | ||
137 | : "+r" (i), "+m" (l->a.counter) | ||
138 | : : "memory"); | ||
139 | return i + __i; | ||
140 | |||
141 | #ifdef CONFIG_M386 | ||
142 | no_xadd: /* Legacy 386 processor */ | ||
143 | local_irq_save(flags); | ||
144 | __i = local_read(l); | ||
145 | local_set(l, i + __i); | ||
146 | local_irq_restore(flags); | ||
147 | return i + __i; | ||
148 | #endif | ||
149 | } | ||
150 | |||
151 | static inline long local_sub_return(long i, local_t *l) | ||
152 | { | ||
153 | return local_add_return(-i, l); | ||
154 | } | ||
155 | |||
156 | #define local_inc_return(l) (local_add_return(1, l)) | ||
157 | #define local_dec_return(l) (local_sub_return(1, l)) | ||
158 | |||
159 | #define local_cmpxchg(l, o, n) \ | ||
160 | (cmpxchg_local(&((l)->a.counter), (o), (n))) | ||
161 | /* Always has a lock prefix */ | ||
162 | #define local_xchg(l, n) (xchg(&((l)->a.counter), (n))) | ||
163 | |||
164 | /** | ||
165 | * local_add_unless - add unless the number is a given value | ||
166 | * @l: pointer of type local_t | ||
167 | * @a: the amount to add to l... | ||
168 | * @u: ...unless l is equal to u. | ||
169 | * | ||
170 | * Atomically adds @a to @l, so long as it was not @u. | ||
171 | * Returns non-zero if @l was not @u, and zero otherwise. | ||
172 | */ | ||
173 | #define local_add_unless(l, a, u) \ | ||
174 | ({ \ | ||
175 | long c, old; \ | ||
176 | c = local_read((l)); \ | ||
177 | for (;;) { \ | ||
178 | if (unlikely(c == (u))) \ | ||
179 | break; \ | ||
180 | old = local_cmpxchg((l), c, c + (a)); \ | ||
181 | if (likely(old == c)) \ | ||
182 | break; \ | ||
183 | c = old; \ | ||
184 | } \ | ||
185 | c != (u); \ | ||
186 | }) | ||
187 | #define local_inc_not_zero(l) local_add_unless((l), 1, 0) | ||
188 | |||
189 | /* On x86_32, these are no better than the atomic variants. | ||
190 | * On x86-64 these are better than the atomic variants on SMP kernels | ||
191 | * because they dont use a lock prefix. | ||
192 | */ | ||
193 | #define __local_inc(l) local_inc(l) | ||
194 | #define __local_dec(l) local_dec(l) | ||
195 | #define __local_add(i, l) local_add((i), (l)) | ||
196 | #define __local_sub(i, l) local_sub((i), (l)) | ||
197 | |||
198 | /* Use these for per-cpu local_t variables: on some archs they are | ||
199 | * much more efficient than these naive implementations. Note they take | ||
200 | * a variable, not an address. | ||
201 | * | ||
202 | * X86_64: This could be done better if we moved the per cpu data directly | ||
203 | * after GS. | ||
204 | */ | ||
205 | |||
206 | /* Need to disable preemption for the cpu local counters otherwise we could | ||
207 | still access a variable of a previous CPU in a non atomic way. */ | ||
208 | #define cpu_local_wrap_v(l) \ | ||
209 | ({ \ | ||
210 | local_t res__; \ | ||
211 | preempt_disable(); \ | ||
212 | res__ = (l); \ | ||
213 | preempt_enable(); \ | ||
214 | res__; \ | ||
215 | }) | ||
216 | #define cpu_local_wrap(l) \ | ||
217 | ({ \ | ||
218 | preempt_disable(); \ | ||
219 | (l); \ | ||
220 | preempt_enable(); \ | ||
221 | }) \ | ||
222 | |||
223 | #define cpu_local_read(l) cpu_local_wrap_v(local_read(&__get_cpu_var((l)))) | ||
224 | #define cpu_local_set(l, i) cpu_local_wrap(local_set(&__get_cpu_var((l)), (i))) | ||
225 | #define cpu_local_inc(l) cpu_local_wrap(local_inc(&__get_cpu_var((l)))) | ||
226 | #define cpu_local_dec(l) cpu_local_wrap(local_dec(&__get_cpu_var((l)))) | ||
227 | #define cpu_local_add(i, l) cpu_local_wrap(local_add((i), &__get_cpu_var((l)))) | ||
228 | #define cpu_local_sub(i, l) cpu_local_wrap(local_sub((i), &__get_cpu_var((l)))) | ||
229 | |||
230 | #define __cpu_local_inc(l) cpu_local_inc((l)) | ||
231 | #define __cpu_local_dec(l) cpu_local_dec((l)) | ||
232 | #define __cpu_local_add(i, l) cpu_local_add((i), (l)) | ||
233 | #define __cpu_local_sub(i, l) cpu_local_sub((i), (l)) | ||
234 | |||
235 | #endif /* _ASM_X86_LOCAL_H */ | ||
diff --git a/arch/x86/include/asm/mach-default/apm.h b/arch/x86/include/asm/mach-default/apm.h new file mode 100644 index 000000000000..20370c6db74b --- /dev/null +++ b/arch/x86/include/asm/mach-default/apm.h | |||
@@ -0,0 +1,73 @@ | |||
1 | /* | ||
2 | * Machine specific APM BIOS functions for generic. | ||
3 | * Split out from apm.c by Osamu Tomita <tomita@cinet.co.jp> | ||
4 | */ | ||
5 | |||
6 | #ifndef _ASM_X86_MACH_DEFAULT_APM_H | ||
7 | #define _ASM_X86_MACH_DEFAULT_APM_H | ||
8 | |||
9 | #ifdef APM_ZERO_SEGS | ||
10 | # define APM_DO_ZERO_SEGS \ | ||
11 | "pushl %%ds\n\t" \ | ||
12 | "pushl %%es\n\t" \ | ||
13 | "xorl %%edx, %%edx\n\t" \ | ||
14 | "mov %%dx, %%ds\n\t" \ | ||
15 | "mov %%dx, %%es\n\t" \ | ||
16 | "mov %%dx, %%fs\n\t" \ | ||
17 | "mov %%dx, %%gs\n\t" | ||
18 | # define APM_DO_POP_SEGS \ | ||
19 | "popl %%es\n\t" \ | ||
20 | "popl %%ds\n\t" | ||
21 | #else | ||
22 | # define APM_DO_ZERO_SEGS | ||
23 | # define APM_DO_POP_SEGS | ||
24 | #endif | ||
25 | |||
26 | static inline void apm_bios_call_asm(u32 func, u32 ebx_in, u32 ecx_in, | ||
27 | u32 *eax, u32 *ebx, u32 *ecx, | ||
28 | u32 *edx, u32 *esi) | ||
29 | { | ||
30 | /* | ||
31 | * N.B. We do NOT need a cld after the BIOS call | ||
32 | * because we always save and restore the flags. | ||
33 | */ | ||
34 | __asm__ __volatile__(APM_DO_ZERO_SEGS | ||
35 | "pushl %%edi\n\t" | ||
36 | "pushl %%ebp\n\t" | ||
37 | "lcall *%%cs:apm_bios_entry\n\t" | ||
38 | "setc %%al\n\t" | ||
39 | "popl %%ebp\n\t" | ||
40 | "popl %%edi\n\t" | ||
41 | APM_DO_POP_SEGS | ||
42 | : "=a" (*eax), "=b" (*ebx), "=c" (*ecx), "=d" (*edx), | ||
43 | "=S" (*esi) | ||
44 | : "a" (func), "b" (ebx_in), "c" (ecx_in) | ||
45 | : "memory", "cc"); | ||
46 | } | ||
47 | |||
48 | static inline u8 apm_bios_call_simple_asm(u32 func, u32 ebx_in, | ||
49 | u32 ecx_in, u32 *eax) | ||
50 | { | ||
51 | int cx, dx, si; | ||
52 | u8 error; | ||
53 | |||
54 | /* | ||
55 | * N.B. We do NOT need a cld after the BIOS call | ||
56 | * because we always save and restore the flags. | ||
57 | */ | ||
58 | __asm__ __volatile__(APM_DO_ZERO_SEGS | ||
59 | "pushl %%edi\n\t" | ||
60 | "pushl %%ebp\n\t" | ||
61 | "lcall *%%cs:apm_bios_entry\n\t" | ||
62 | "setc %%bl\n\t" | ||
63 | "popl %%ebp\n\t" | ||
64 | "popl %%edi\n\t" | ||
65 | APM_DO_POP_SEGS | ||
66 | : "=a" (*eax), "=b" (error), "=c" (cx), "=d" (dx), | ||
67 | "=S" (si) | ||
68 | : "a" (func), "b" (ebx_in), "c" (ecx_in) | ||
69 | : "memory", "cc"); | ||
70 | return error; | ||
71 | } | ||
72 | |||
73 | #endif /* _ASM_X86_MACH_DEFAULT_APM_H */ | ||
diff --git a/arch/x86/include/asm/mach-default/do_timer.h b/arch/x86/include/asm/mach-default/do_timer.h new file mode 100644 index 000000000000..23ecda0b28a0 --- /dev/null +++ b/arch/x86/include/asm/mach-default/do_timer.h | |||
@@ -0,0 +1,16 @@ | |||
1 | /* defines for inline arch setup functions */ | ||
2 | #include <linux/clockchips.h> | ||
3 | |||
4 | #include <asm/i8259.h> | ||
5 | #include <asm/i8253.h> | ||
6 | |||
7 | /** | ||
8 | * do_timer_interrupt_hook - hook into timer tick | ||
9 | * | ||
10 | * Call the pit clock event handler. see asm/i8253.h | ||
11 | **/ | ||
12 | |||
13 | static inline void do_timer_interrupt_hook(void) | ||
14 | { | ||
15 | global_clock_event->event_handler(global_clock_event); | ||
16 | } | ||
diff --git a/arch/x86/include/asm/mach-default/entry_arch.h b/arch/x86/include/asm/mach-default/entry_arch.h new file mode 100644 index 000000000000..6b1add8e31dd --- /dev/null +++ b/arch/x86/include/asm/mach-default/entry_arch.h | |||
@@ -0,0 +1,36 @@ | |||
1 | /* | ||
2 | * This file is designed to contain the BUILD_INTERRUPT specifications for | ||
3 | * all of the extra named interrupt vectors used by the architecture. | ||
4 | * Usually this is the Inter Process Interrupts (IPIs) | ||
5 | */ | ||
6 | |||
7 | /* | ||
8 | * The following vectors are part of the Linux architecture, there | ||
9 | * is no hardware IRQ pin equivalent for them, they are triggered | ||
10 | * through the ICC by us (IPIs) | ||
11 | */ | ||
12 | #ifdef CONFIG_X86_SMP | ||
13 | BUILD_INTERRUPT(reschedule_interrupt,RESCHEDULE_VECTOR) | ||
14 | BUILD_INTERRUPT(invalidate_interrupt,INVALIDATE_TLB_VECTOR) | ||
15 | BUILD_INTERRUPT(call_function_interrupt,CALL_FUNCTION_VECTOR) | ||
16 | BUILD_INTERRUPT(call_function_single_interrupt,CALL_FUNCTION_SINGLE_VECTOR) | ||
17 | BUILD_INTERRUPT(irq_move_cleanup_interrupt,IRQ_MOVE_CLEANUP_VECTOR) | ||
18 | #endif | ||
19 | |||
20 | /* | ||
21 | * every pentium local APIC has two 'local interrupts', with a | ||
22 | * soft-definable vector attached to both interrupts, one of | ||
23 | * which is a timer interrupt, the other one is error counter | ||
24 | * overflow. Linux uses the local APIC timer interrupt to get | ||
25 | * a much simpler SMP time architecture: | ||
26 | */ | ||
27 | #ifdef CONFIG_X86_LOCAL_APIC | ||
28 | BUILD_INTERRUPT(apic_timer_interrupt,LOCAL_TIMER_VECTOR) | ||
29 | BUILD_INTERRUPT(error_interrupt,ERROR_APIC_VECTOR) | ||
30 | BUILD_INTERRUPT(spurious_interrupt,SPURIOUS_APIC_VECTOR) | ||
31 | |||
32 | #ifdef CONFIG_X86_MCE_P4THERMAL | ||
33 | BUILD_INTERRUPT(thermal_interrupt,THERMAL_APIC_VECTOR) | ||
34 | #endif | ||
35 | |||
36 | #endif | ||
diff --git a/arch/x86/include/asm/mach-default/mach_apic.h b/arch/x86/include/asm/mach-default/mach_apic.h new file mode 100644 index 000000000000..ff3a6c236c00 --- /dev/null +++ b/arch/x86/include/asm/mach-default/mach_apic.h | |||
@@ -0,0 +1,156 @@ | |||
1 | #ifndef _ASM_X86_MACH_DEFAULT_MACH_APIC_H | ||
2 | #define _ASM_X86_MACH_DEFAULT_MACH_APIC_H | ||
3 | |||
4 | #ifdef CONFIG_X86_LOCAL_APIC | ||
5 | |||
6 | #include <mach_apicdef.h> | ||
7 | #include <asm/smp.h> | ||
8 | |||
9 | #define APIC_DFR_VALUE (APIC_DFR_FLAT) | ||
10 | |||
11 | static inline cpumask_t target_cpus(void) | ||
12 | { | ||
13 | #ifdef CONFIG_SMP | ||
14 | return cpu_online_map; | ||
15 | #else | ||
16 | return cpumask_of_cpu(0); | ||
17 | #endif | ||
18 | } | ||
19 | |||
20 | #define NO_BALANCE_IRQ (0) | ||
21 | #define esr_disable (0) | ||
22 | |||
23 | #ifdef CONFIG_X86_64 | ||
24 | #include <asm/genapic.h> | ||
25 | #define INT_DELIVERY_MODE (genapic->int_delivery_mode) | ||
26 | #define INT_DEST_MODE (genapic->int_dest_mode) | ||
27 | #define TARGET_CPUS (genapic->target_cpus()) | ||
28 | #define apic_id_registered (genapic->apic_id_registered) | ||
29 | #define init_apic_ldr (genapic->init_apic_ldr) | ||
30 | #define cpu_mask_to_apicid (genapic->cpu_mask_to_apicid) | ||
31 | #define phys_pkg_id (genapic->phys_pkg_id) | ||
32 | #define vector_allocation_domain (genapic->vector_allocation_domain) | ||
33 | #define read_apic_id() (GET_APIC_ID(apic_read(APIC_ID))) | ||
34 | #define send_IPI_self (genapic->send_IPI_self) | ||
35 | extern void setup_apic_routing(void); | ||
36 | #else | ||
37 | #define INT_DELIVERY_MODE dest_LowestPrio | ||
38 | #define INT_DEST_MODE 1 /* logical delivery broadcast to all procs */ | ||
39 | #define TARGET_CPUS (target_cpus()) | ||
40 | /* | ||
41 | * Set up the logical destination ID. | ||
42 | * | ||
43 | * Intel recommends to set DFR, LDR and TPR before enabling | ||
44 | * an APIC. See e.g. "AP-388 82489DX User's Manual" (Intel | ||
45 | * document number 292116). So here it goes... | ||
46 | */ | ||
47 | static inline void init_apic_ldr(void) | ||
48 | { | ||
49 | unsigned long val; | ||
50 | |||
51 | apic_write(APIC_DFR, APIC_DFR_VALUE); | ||
52 | val = apic_read(APIC_LDR) & ~APIC_LDR_MASK; | ||
53 | val |= SET_APIC_LOGICAL_ID(1UL << smp_processor_id()); | ||
54 | apic_write(APIC_LDR, val); | ||
55 | } | ||
56 | |||
57 | static inline int apic_id_registered(void) | ||
58 | { | ||
59 | return physid_isset(read_apic_id(), phys_cpu_present_map); | ||
60 | } | ||
61 | |||
62 | static inline unsigned int cpu_mask_to_apicid(cpumask_t cpumask) | ||
63 | { | ||
64 | return cpus_addr(cpumask)[0]; | ||
65 | } | ||
66 | |||
67 | static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb) | ||
68 | { | ||
69 | return cpuid_apic >> index_msb; | ||
70 | } | ||
71 | |||
72 | static inline void setup_apic_routing(void) | ||
73 | { | ||
74 | #ifdef CONFIG_X86_IO_APIC | ||
75 | printk("Enabling APIC mode: %s. Using %d I/O APICs\n", | ||
76 | "Flat", nr_ioapics); | ||
77 | #endif | ||
78 | } | ||
79 | |||
80 | static inline int apicid_to_node(int logical_apicid) | ||
81 | { | ||
82 | #ifdef CONFIG_SMP | ||
83 | return apicid_2_node[hard_smp_processor_id()]; | ||
84 | #else | ||
85 | return 0; | ||
86 | #endif | ||
87 | } | ||
88 | |||
89 | static inline cpumask_t vector_allocation_domain(int cpu) | ||
90 | { | ||
91 | /* Careful. Some cpus do not strictly honor the set of cpus | ||
92 | * specified in the interrupt destination when using lowest | ||
93 | * priority interrupt delivery mode. | ||
94 | * | ||
95 | * In particular there was a hyperthreading cpu observed to | ||
96 | * deliver interrupts to the wrong hyperthread when only one | ||
97 | * hyperthread was specified in the interrupt desitination. | ||
98 | */ | ||
99 | cpumask_t domain = { { [0] = APIC_ALL_CPUS, } }; | ||
100 | return domain; | ||
101 | } | ||
102 | #endif | ||
103 | |||
104 | static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid) | ||
105 | { | ||
106 | return physid_isset(apicid, bitmap); | ||
107 | } | ||
108 | |||
109 | static inline unsigned long check_apicid_present(int bit) | ||
110 | { | ||
111 | return physid_isset(bit, phys_cpu_present_map); | ||
112 | } | ||
113 | |||
114 | static inline physid_mask_t ioapic_phys_id_map(physid_mask_t phys_map) | ||
115 | { | ||
116 | return phys_map; | ||
117 | } | ||
118 | |||
119 | static inline int multi_timer_check(int apic, int irq) | ||
120 | { | ||
121 | return 0; | ||
122 | } | ||
123 | |||
124 | /* Mapping from cpu number to logical apicid */ | ||
125 | static inline int cpu_to_logical_apicid(int cpu) | ||
126 | { | ||
127 | return 1 << cpu; | ||
128 | } | ||
129 | |||
130 | static inline int cpu_present_to_apicid(int mps_cpu) | ||
131 | { | ||
132 | if (mps_cpu < NR_CPUS && cpu_present(mps_cpu)) | ||
133 | return (int)per_cpu(x86_bios_cpu_apicid, mps_cpu); | ||
134 | else | ||
135 | return BAD_APICID; | ||
136 | } | ||
137 | |||
138 | static inline physid_mask_t apicid_to_cpu_present(int phys_apicid) | ||
139 | { | ||
140 | return physid_mask_of_physid(phys_apicid); | ||
141 | } | ||
142 | |||
143 | static inline void setup_portio_remap(void) | ||
144 | { | ||
145 | } | ||
146 | |||
147 | static inline int check_phys_apicid_present(int boot_cpu_physical_apicid) | ||
148 | { | ||
149 | return physid_isset(boot_cpu_physical_apicid, phys_cpu_present_map); | ||
150 | } | ||
151 | |||
152 | static inline void enable_apic_mode(void) | ||
153 | { | ||
154 | } | ||
155 | #endif /* CONFIG_X86_LOCAL_APIC */ | ||
156 | #endif /* _ASM_X86_MACH_DEFAULT_MACH_APIC_H */ | ||
diff --git a/arch/x86/include/asm/mach-default/mach_apicdef.h b/arch/x86/include/asm/mach-default/mach_apicdef.h new file mode 100644 index 000000000000..53179936d6c6 --- /dev/null +++ b/arch/x86/include/asm/mach-default/mach_apicdef.h | |||
@@ -0,0 +1,24 @@ | |||
1 | #ifndef _ASM_X86_MACH_DEFAULT_MACH_APICDEF_H | ||
2 | #define _ASM_X86_MACH_DEFAULT_MACH_APICDEF_H | ||
3 | |||
4 | #include <asm/apic.h> | ||
5 | |||
6 | #ifdef CONFIG_X86_64 | ||
7 | #define APIC_ID_MASK (genapic->apic_id_mask) | ||
8 | #define GET_APIC_ID(x) (genapic->get_apic_id(x)) | ||
9 | #define SET_APIC_ID(x) (genapic->set_apic_id(x)) | ||
10 | #else | ||
11 | #define APIC_ID_MASK (0xF<<24) | ||
12 | static inline unsigned get_apic_id(unsigned long x) | ||
13 | { | ||
14 | unsigned int ver = GET_APIC_VERSION(apic_read(APIC_LVR)); | ||
15 | if (APIC_XAPIC(ver)) | ||
16 | return (((x)>>24)&0xFF); | ||
17 | else | ||
18 | return (((x)>>24)&0xF); | ||
19 | } | ||
20 | |||
21 | #define GET_APIC_ID(x) get_apic_id(x) | ||
22 | #endif | ||
23 | |||
24 | #endif /* _ASM_X86_MACH_DEFAULT_MACH_APICDEF_H */ | ||
diff --git a/arch/x86/include/asm/mach-default/mach_ipi.h b/arch/x86/include/asm/mach-default/mach_ipi.h new file mode 100644 index 000000000000..fabca01ebacf --- /dev/null +++ b/arch/x86/include/asm/mach-default/mach_ipi.h | |||
@@ -0,0 +1,64 @@ | |||
1 | #ifndef _ASM_X86_MACH_DEFAULT_MACH_IPI_H | ||
2 | #define _ASM_X86_MACH_DEFAULT_MACH_IPI_H | ||
3 | |||
4 | /* Avoid include hell */ | ||
5 | #define NMI_VECTOR 0x02 | ||
6 | |||
7 | void send_IPI_mask_bitmask(cpumask_t mask, int vector); | ||
8 | void __send_IPI_shortcut(unsigned int shortcut, int vector); | ||
9 | |||
10 | extern int no_broadcast; | ||
11 | |||
12 | #ifdef CONFIG_X86_64 | ||
13 | #include <asm/genapic.h> | ||
14 | #define send_IPI_mask (genapic->send_IPI_mask) | ||
15 | #else | ||
16 | static inline void send_IPI_mask(cpumask_t mask, int vector) | ||
17 | { | ||
18 | send_IPI_mask_bitmask(mask, vector); | ||
19 | } | ||
20 | #endif | ||
21 | |||
22 | static inline void __local_send_IPI_allbutself(int vector) | ||
23 | { | ||
24 | if (no_broadcast || vector == NMI_VECTOR) { | ||
25 | cpumask_t mask = cpu_online_map; | ||
26 | |||
27 | cpu_clear(smp_processor_id(), mask); | ||
28 | send_IPI_mask(mask, vector); | ||
29 | } else | ||
30 | __send_IPI_shortcut(APIC_DEST_ALLBUT, vector); | ||
31 | } | ||
32 | |||
33 | static inline void __local_send_IPI_all(int vector) | ||
34 | { | ||
35 | if (no_broadcast || vector == NMI_VECTOR) | ||
36 | send_IPI_mask(cpu_online_map, vector); | ||
37 | else | ||
38 | __send_IPI_shortcut(APIC_DEST_ALLINC, vector); | ||
39 | } | ||
40 | |||
41 | #ifdef CONFIG_X86_64 | ||
42 | #define send_IPI_allbutself (genapic->send_IPI_allbutself) | ||
43 | #define send_IPI_all (genapic->send_IPI_all) | ||
44 | #else | ||
45 | static inline void send_IPI_allbutself(int vector) | ||
46 | { | ||
47 | /* | ||
48 | * if there are no other CPUs in the system then we get an APIC send | ||
49 | * error if we try to broadcast, thus avoid sending IPIs in this case. | ||
50 | */ | ||
51 | if (!(num_online_cpus() > 1)) | ||
52 | return; | ||
53 | |||
54 | __local_send_IPI_allbutself(vector); | ||
55 | return; | ||
56 | } | ||
57 | |||
58 | static inline void send_IPI_all(int vector) | ||
59 | { | ||
60 | __local_send_IPI_all(vector); | ||
61 | } | ||
62 | #endif | ||
63 | |||
64 | #endif /* _ASM_X86_MACH_DEFAULT_MACH_IPI_H */ | ||
diff --git a/arch/x86/include/asm/mach-default/mach_mpparse.h b/arch/x86/include/asm/mach-default/mach_mpparse.h new file mode 100644 index 000000000000..8c1ea21238a7 --- /dev/null +++ b/arch/x86/include/asm/mach-default/mach_mpparse.h | |||
@@ -0,0 +1,17 @@ | |||
1 | #ifndef _ASM_X86_MACH_DEFAULT_MACH_MPPARSE_H | ||
2 | #define _ASM_X86_MACH_DEFAULT_MACH_MPPARSE_H | ||
3 | |||
4 | static inline int mps_oem_check(struct mp_config_table *mpc, char *oem, | ||
5 | char *productid) | ||
6 | { | ||
7 | return 0; | ||
8 | } | ||
9 | |||
10 | /* Hook from generic ACPI tables.c */ | ||
11 | static inline int acpi_madt_oem_check(char *oem_id, char *oem_table_id) | ||
12 | { | ||
13 | return 0; | ||
14 | } | ||
15 | |||
16 | |||
17 | #endif /* _ASM_X86_MACH_DEFAULT_MACH_MPPARSE_H */ | ||
diff --git a/arch/x86/include/asm/mach-default/mach_mpspec.h b/arch/x86/include/asm/mach-default/mach_mpspec.h new file mode 100644 index 000000000000..e85ede686be8 --- /dev/null +++ b/arch/x86/include/asm/mach-default/mach_mpspec.h | |||
@@ -0,0 +1,12 @@ | |||
1 | #ifndef _ASM_X86_MACH_DEFAULT_MACH_MPSPEC_H | ||
2 | #define _ASM_X86_MACH_DEFAULT_MACH_MPSPEC_H | ||
3 | |||
4 | #define MAX_IRQ_SOURCES 256 | ||
5 | |||
6 | #if CONFIG_BASE_SMALL == 0 | ||
7 | #define MAX_MP_BUSSES 256 | ||
8 | #else | ||
9 | #define MAX_MP_BUSSES 32 | ||
10 | #endif | ||
11 | |||
12 | #endif /* _ASM_X86_MACH_DEFAULT_MACH_MPSPEC_H */ | ||
diff --git a/arch/x86/include/asm/mach-default/mach_timer.h b/arch/x86/include/asm/mach-default/mach_timer.h new file mode 100644 index 000000000000..853728519ae9 --- /dev/null +++ b/arch/x86/include/asm/mach-default/mach_timer.h | |||
@@ -0,0 +1,48 @@ | |||
1 | /* | ||
2 | * Machine specific calibrate_tsc() for generic. | ||
3 | * Split out from timer_tsc.c by Osamu Tomita <tomita@cinet.co.jp> | ||
4 | */ | ||
5 | /* ------ Calibrate the TSC ------- | ||
6 | * Return 2^32 * (1 / (TSC clocks per usec)) for do_fast_gettimeoffset(). | ||
7 | * Too much 64-bit arithmetic here to do this cleanly in C, and for | ||
8 | * accuracy's sake we want to keep the overhead on the CTC speaker (channel 2) | ||
9 | * output busy loop as low as possible. We avoid reading the CTC registers | ||
10 | * directly because of the awkward 8-bit access mechanism of the 82C54 | ||
11 | * device. | ||
12 | */ | ||
13 | #ifndef _ASM_X86_MACH_DEFAULT_MACH_TIMER_H | ||
14 | #define _ASM_X86_MACH_DEFAULT_MACH_TIMER_H | ||
15 | |||
16 | #define CALIBRATE_TIME_MSEC 30 /* 30 msecs */ | ||
17 | #define CALIBRATE_LATCH \ | ||
18 | ((CLOCK_TICK_RATE * CALIBRATE_TIME_MSEC + 1000/2)/1000) | ||
19 | |||
20 | static inline void mach_prepare_counter(void) | ||
21 | { | ||
22 | /* Set the Gate high, disable speaker */ | ||
23 | outb((inb(0x61) & ~0x02) | 0x01, 0x61); | ||
24 | |||
25 | /* | ||
26 | * Now let's take care of CTC channel 2 | ||
27 | * | ||
28 | * Set the Gate high, program CTC channel 2 for mode 0, | ||
29 | * (interrupt on terminal count mode), binary count, | ||
30 | * load 5 * LATCH count, (LSB and MSB) to begin countdown. | ||
31 | * | ||
32 | * Some devices need a delay here. | ||
33 | */ | ||
34 | outb(0xb0, 0x43); /* binary, mode 0, LSB/MSB, Ch 2 */ | ||
35 | outb_p(CALIBRATE_LATCH & 0xff, 0x42); /* LSB of count */ | ||
36 | outb_p(CALIBRATE_LATCH >> 8, 0x42); /* MSB of count */ | ||
37 | } | ||
38 | |||
39 | static inline void mach_countup(unsigned long *count_p) | ||
40 | { | ||
41 | unsigned long count = 0; | ||
42 | do { | ||
43 | count++; | ||
44 | } while ((inb_p(0x61) & 0x20) == 0); | ||
45 | *count_p = count; | ||
46 | } | ||
47 | |||
48 | #endif /* _ASM_X86_MACH_DEFAULT_MACH_TIMER_H */ | ||
diff --git a/arch/x86/include/asm/mach-default/mach_traps.h b/arch/x86/include/asm/mach-default/mach_traps.h new file mode 100644 index 000000000000..f7920601e472 --- /dev/null +++ b/arch/x86/include/asm/mach-default/mach_traps.h | |||
@@ -0,0 +1,33 @@ | |||
1 | /* | ||
2 | * Machine specific NMI handling for generic. | ||
3 | * Split out from traps.c by Osamu Tomita <tomita@cinet.co.jp> | ||
4 | */ | ||
5 | #ifndef _ASM_X86_MACH_DEFAULT_MACH_TRAPS_H | ||
6 | #define _ASM_X86_MACH_DEFAULT_MACH_TRAPS_H | ||
7 | |||
8 | #include <asm/mc146818rtc.h> | ||
9 | |||
10 | static inline unsigned char get_nmi_reason(void) | ||
11 | { | ||
12 | return inb(0x61); | ||
13 | } | ||
14 | |||
15 | static inline void reassert_nmi(void) | ||
16 | { | ||
17 | int old_reg = -1; | ||
18 | |||
19 | if (do_i_have_lock_cmos()) | ||
20 | old_reg = current_lock_cmos_reg(); | ||
21 | else | ||
22 | lock_cmos(0); /* register doesn't matter here */ | ||
23 | outb(0x8f, 0x70); | ||
24 | inb(0x71); /* dummy */ | ||
25 | outb(0x0f, 0x70); | ||
26 | inb(0x71); /* dummy */ | ||
27 | if (old_reg >= 0) | ||
28 | outb(old_reg, 0x70); | ||
29 | else | ||
30 | unlock_cmos(); | ||
31 | } | ||
32 | |||
33 | #endif /* _ASM_X86_MACH_DEFAULT_MACH_TRAPS_H */ | ||
diff --git a/arch/x86/include/asm/mach-default/mach_wakecpu.h b/arch/x86/include/asm/mach-default/mach_wakecpu.h new file mode 100644 index 000000000000..d5c0b826a4ff --- /dev/null +++ b/arch/x86/include/asm/mach-default/mach_wakecpu.h | |||
@@ -0,0 +1,42 @@ | |||
1 | #ifndef _ASM_X86_MACH_DEFAULT_MACH_WAKECPU_H | ||
2 | #define _ASM_X86_MACH_DEFAULT_MACH_WAKECPU_H | ||
3 | |||
4 | /* | ||
5 | * This file copes with machines that wakeup secondary CPUs by the | ||
6 | * INIT, INIT, STARTUP sequence. | ||
7 | */ | ||
8 | |||
9 | #define WAKE_SECONDARY_VIA_INIT | ||
10 | |||
11 | #define TRAMPOLINE_LOW phys_to_virt(0x467) | ||
12 | #define TRAMPOLINE_HIGH phys_to_virt(0x469) | ||
13 | |||
14 | #define boot_cpu_apicid boot_cpu_physical_apicid | ||
15 | |||
16 | static inline void wait_for_init_deassert(atomic_t *deassert) | ||
17 | { | ||
18 | while (!atomic_read(deassert)) | ||
19 | cpu_relax(); | ||
20 | return; | ||
21 | } | ||
22 | |||
23 | /* Nothing to do for most platforms, since cleared by the INIT cycle */ | ||
24 | static inline void smp_callin_clear_local_apic(void) | ||
25 | { | ||
26 | } | ||
27 | |||
28 | static inline void store_NMI_vector(unsigned short *high, unsigned short *low) | ||
29 | { | ||
30 | } | ||
31 | |||
32 | static inline void restore_NMI_vector(unsigned short *high, unsigned short *low) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | #if APIC_DEBUG | ||
37 | #define inquire_remote_apic(apicid) __inquire_remote_apic(apicid) | ||
38 | #else | ||
39 | #define inquire_remote_apic(apicid) {} | ||
40 | #endif | ||
41 | |||
42 | #endif /* _ASM_X86_MACH_DEFAULT_MACH_WAKECPU_H */ | ||
diff --git a/arch/x86/include/asm/mach-default/pci-functions.h b/arch/x86/include/asm/mach-default/pci-functions.h new file mode 100644 index 000000000000..ed0bab427354 --- /dev/null +++ b/arch/x86/include/asm/mach-default/pci-functions.h | |||
@@ -0,0 +1,19 @@ | |||
1 | /* | ||
2 | * PCI BIOS function numbering for conventional PCI BIOS | ||
3 | * systems | ||
4 | */ | ||
5 | |||
6 | #define PCIBIOS_PCI_FUNCTION_ID 0xb1XX | ||
7 | #define PCIBIOS_PCI_BIOS_PRESENT 0xb101 | ||
8 | #define PCIBIOS_FIND_PCI_DEVICE 0xb102 | ||
9 | #define PCIBIOS_FIND_PCI_CLASS_CODE 0xb103 | ||
10 | #define PCIBIOS_GENERATE_SPECIAL_CYCLE 0xb106 | ||
11 | #define PCIBIOS_READ_CONFIG_BYTE 0xb108 | ||
12 | #define PCIBIOS_READ_CONFIG_WORD 0xb109 | ||
13 | #define PCIBIOS_READ_CONFIG_DWORD 0xb10a | ||
14 | #define PCIBIOS_WRITE_CONFIG_BYTE 0xb10b | ||
15 | #define PCIBIOS_WRITE_CONFIG_WORD 0xb10c | ||
16 | #define PCIBIOS_WRITE_CONFIG_DWORD 0xb10d | ||
17 | #define PCIBIOS_GET_ROUTING_OPTIONS 0xb10e | ||
18 | #define PCIBIOS_SET_PCI_HW_INT 0xb10f | ||
19 | |||
diff --git a/arch/x86/include/asm/mach-default/setup_arch.h b/arch/x86/include/asm/mach-default/setup_arch.h new file mode 100644 index 000000000000..38846208b548 --- /dev/null +++ b/arch/x86/include/asm/mach-default/setup_arch.h | |||
@@ -0,0 +1,3 @@ | |||
1 | /* Hook to call BIOS initialisation function */ | ||
2 | |||
3 | /* no action for generic */ | ||
diff --git a/arch/x86/include/asm/mach-default/smpboot_hooks.h b/arch/x86/include/asm/mach-default/smpboot_hooks.h new file mode 100644 index 000000000000..dbab36d64d48 --- /dev/null +++ b/arch/x86/include/asm/mach-default/smpboot_hooks.h | |||
@@ -0,0 +1,59 @@ | |||
1 | /* two abstractions specific to kernel/smpboot.c, mainly to cater to visws | ||
2 | * which needs to alter them. */ | ||
3 | |||
4 | static inline void smpboot_clear_io_apic_irqs(void) | ||
5 | { | ||
6 | #ifdef CONFIG_X86_IO_APIC | ||
7 | io_apic_irqs = 0; | ||
8 | #endif | ||
9 | } | ||
10 | |||
11 | static inline void smpboot_setup_warm_reset_vector(unsigned long start_eip) | ||
12 | { | ||
13 | CMOS_WRITE(0xa, 0xf); | ||
14 | local_flush_tlb(); | ||
15 | pr_debug("1.\n"); | ||
16 | *((volatile unsigned short *) TRAMPOLINE_HIGH) = start_eip >> 4; | ||
17 | pr_debug("2.\n"); | ||
18 | *((volatile unsigned short *) TRAMPOLINE_LOW) = start_eip & 0xf; | ||
19 | pr_debug("3.\n"); | ||
20 | } | ||
21 | |||
22 | static inline void smpboot_restore_warm_reset_vector(void) | ||
23 | { | ||
24 | /* | ||
25 | * Install writable page 0 entry to set BIOS data area. | ||
26 | */ | ||
27 | local_flush_tlb(); | ||
28 | |||
29 | /* | ||
30 | * Paranoid: Set warm reset code and vector here back | ||
31 | * to default values. | ||
32 | */ | ||
33 | CMOS_WRITE(0, 0xf); | ||
34 | |||
35 | *((volatile long *) phys_to_virt(0x467)) = 0; | ||
36 | } | ||
37 | |||
38 | static inline void __init smpboot_setup_io_apic(void) | ||
39 | { | ||
40 | #ifdef CONFIG_X86_IO_APIC | ||
41 | /* | ||
42 | * Here we can be sure that there is an IO-APIC in the system. Let's | ||
43 | * go and set it up: | ||
44 | */ | ||
45 | if (!skip_ioapic_setup && nr_ioapics) | ||
46 | setup_IO_APIC(); | ||
47 | else { | ||
48 | nr_ioapics = 0; | ||
49 | localise_nmi_watchdog(); | ||
50 | } | ||
51 | #endif | ||
52 | } | ||
53 | |||
54 | static inline void smpboot_clear_io_apic(void) | ||
55 | { | ||
56 | #ifdef CONFIG_X86_IO_APIC | ||
57 | nr_ioapics = 0; | ||
58 | #endif | ||
59 | } | ||
diff --git a/arch/x86/include/asm/mach-generic/gpio.h b/arch/x86/include/asm/mach-generic/gpio.h new file mode 100644 index 000000000000..995c45efdb33 --- /dev/null +++ b/arch/x86/include/asm/mach-generic/gpio.h | |||
@@ -0,0 +1,15 @@ | |||
1 | #ifndef _ASM_X86_MACH_GENERIC_GPIO_H | ||
2 | #define _ASM_X86_MACH_GENERIC_GPIO_H | ||
3 | |||
4 | int gpio_request(unsigned gpio, const char *label); | ||
5 | void gpio_free(unsigned gpio); | ||
6 | int gpio_direction_input(unsigned gpio); | ||
7 | int gpio_direction_output(unsigned gpio, int value); | ||
8 | int gpio_get_value(unsigned gpio); | ||
9 | void gpio_set_value(unsigned gpio, int value); | ||
10 | int gpio_to_irq(unsigned gpio); | ||
11 | int irq_to_gpio(unsigned irq); | ||
12 | |||
13 | #include <asm-generic/gpio.h> /* cansleep wrappers */ | ||
14 | |||
15 | #endif /* _ASM_X86_MACH_GENERIC_GPIO_H */ | ||
diff --git a/arch/x86/include/asm/mach-generic/mach_apic.h b/arch/x86/include/asm/mach-generic/mach_apic.h new file mode 100644 index 000000000000..5180bd7478fb --- /dev/null +++ b/arch/x86/include/asm/mach-generic/mach_apic.h | |||
@@ -0,0 +1,33 @@ | |||
1 | #ifndef _ASM_X86_MACH_GENERIC_MACH_APIC_H | ||
2 | #define _ASM_X86_MACH_GENERIC_MACH_APIC_H | ||
3 | |||
4 | #include <asm/genapic.h> | ||
5 | |||
6 | #define esr_disable (genapic->ESR_DISABLE) | ||
7 | #define NO_BALANCE_IRQ (genapic->no_balance_irq) | ||
8 | #define INT_DELIVERY_MODE (genapic->int_delivery_mode) | ||
9 | #define INT_DEST_MODE (genapic->int_dest_mode) | ||
10 | #undef APIC_DEST_LOGICAL | ||
11 | #define APIC_DEST_LOGICAL (genapic->apic_destination_logical) | ||
12 | #define TARGET_CPUS (genapic->target_cpus()) | ||
13 | #define apic_id_registered (genapic->apic_id_registered) | ||
14 | #define init_apic_ldr (genapic->init_apic_ldr) | ||
15 | #define ioapic_phys_id_map (genapic->ioapic_phys_id_map) | ||
16 | #define setup_apic_routing (genapic->setup_apic_routing) | ||
17 | #define multi_timer_check (genapic->multi_timer_check) | ||
18 | #define apicid_to_node (genapic->apicid_to_node) | ||
19 | #define cpu_to_logical_apicid (genapic->cpu_to_logical_apicid) | ||
20 | #define cpu_present_to_apicid (genapic->cpu_present_to_apicid) | ||
21 | #define apicid_to_cpu_present (genapic->apicid_to_cpu_present) | ||
22 | #define setup_portio_remap (genapic->setup_portio_remap) | ||
23 | #define check_apicid_present (genapic->check_apicid_present) | ||
24 | #define check_phys_apicid_present (genapic->check_phys_apicid_present) | ||
25 | #define check_apicid_used (genapic->check_apicid_used) | ||
26 | #define cpu_mask_to_apicid (genapic->cpu_mask_to_apicid) | ||
27 | #define vector_allocation_domain (genapic->vector_allocation_domain) | ||
28 | #define enable_apic_mode (genapic->enable_apic_mode) | ||
29 | #define phys_pkg_id (genapic->phys_pkg_id) | ||
30 | |||
31 | extern void generic_bigsmp_probe(void); | ||
32 | |||
33 | #endif /* _ASM_X86_MACH_GENERIC_MACH_APIC_H */ | ||
diff --git a/arch/x86/include/asm/mach-generic/mach_apicdef.h b/arch/x86/include/asm/mach-generic/mach_apicdef.h new file mode 100644 index 000000000000..68041f3802f4 --- /dev/null +++ b/arch/x86/include/asm/mach-generic/mach_apicdef.h | |||
@@ -0,0 +1,11 @@ | |||
1 | #ifndef _ASM_X86_MACH_GENERIC_MACH_APICDEF_H | ||
2 | #define _ASM_X86_MACH_GENERIC_MACH_APICDEF_H | ||
3 | |||
4 | #ifndef APIC_DEFINITION | ||
5 | #include <asm/genapic.h> | ||
6 | |||
7 | #define GET_APIC_ID (genapic->get_apic_id) | ||
8 | #define APIC_ID_MASK (genapic->apic_id_mask) | ||
9 | #endif | ||
10 | |||
11 | #endif /* _ASM_X86_MACH_GENERIC_MACH_APICDEF_H */ | ||
diff --git a/arch/x86/include/asm/mach-generic/mach_ipi.h b/arch/x86/include/asm/mach-generic/mach_ipi.h new file mode 100644 index 000000000000..ffd637e3c3d9 --- /dev/null +++ b/arch/x86/include/asm/mach-generic/mach_ipi.h | |||
@@ -0,0 +1,10 @@ | |||
1 | #ifndef _ASM_X86_MACH_GENERIC_MACH_IPI_H | ||
2 | #define _ASM_X86_MACH_GENERIC_MACH_IPI_H | ||
3 | |||
4 | #include <asm/genapic.h> | ||
5 | |||
6 | #define send_IPI_mask (genapic->send_IPI_mask) | ||
7 | #define send_IPI_allbutself (genapic->send_IPI_allbutself) | ||
8 | #define send_IPI_all (genapic->send_IPI_all) | ||
9 | |||
10 | #endif /* _ASM_X86_MACH_GENERIC_MACH_IPI_H */ | ||
diff --git a/arch/x86/include/asm/mach-generic/mach_mpparse.h b/arch/x86/include/asm/mach-generic/mach_mpparse.h new file mode 100644 index 000000000000..048f1d468535 --- /dev/null +++ b/arch/x86/include/asm/mach-generic/mach_mpparse.h | |||
@@ -0,0 +1,10 @@ | |||
1 | #ifndef _ASM_X86_MACH_GENERIC_MACH_MPPARSE_H | ||
2 | #define _ASM_X86_MACH_GENERIC_MACH_MPPARSE_H | ||
3 | |||
4 | |||
5 | extern int mps_oem_check(struct mp_config_table *mpc, char *oem, | ||
6 | char *productid); | ||
7 | |||
8 | extern int acpi_madt_oem_check(char *oem_id, char *oem_table_id); | ||
9 | |||
10 | #endif /* _ASM_X86_MACH_GENERIC_MACH_MPPARSE_H */ | ||
diff --git a/arch/x86/include/asm/mach-generic/mach_mpspec.h b/arch/x86/include/asm/mach-generic/mach_mpspec.h new file mode 100644 index 000000000000..bbab5ccfd4fe --- /dev/null +++ b/arch/x86/include/asm/mach-generic/mach_mpspec.h | |||
@@ -0,0 +1,12 @@ | |||
1 | #ifndef _ASM_X86_MACH_GENERIC_MACH_MPSPEC_H | ||
2 | #define _ASM_X86_MACH_GENERIC_MACH_MPSPEC_H | ||
3 | |||
4 | #define MAX_IRQ_SOURCES 256 | ||
5 | |||
6 | /* Summit or generic (i.e. installer) kernels need lots of bus entries. */ | ||
7 | /* Maximum 256 PCI busses, plus 1 ISA bus in each of 4 cabinets. */ | ||
8 | #define MAX_MP_BUSSES 260 | ||
9 | |||
10 | extern void numaq_mps_oem_check(struct mp_config_table *mpc, char *oem, | ||
11 | char *productid); | ||
12 | #endif /* _ASM_X86_MACH_GENERIC_MACH_MPSPEC_H */ | ||
diff --git a/arch/x86/include/asm/mach-rdc321x/gpio.h b/arch/x86/include/asm/mach-rdc321x/gpio.h new file mode 100644 index 000000000000..c210ab5788b0 --- /dev/null +++ b/arch/x86/include/asm/mach-rdc321x/gpio.h | |||
@@ -0,0 +1,60 @@ | |||
1 | #ifndef _ASM_X86_MACH_RDC321X_GPIO_H | ||
2 | #define _ASM_X86_MACH_RDC321X_GPIO_H | ||
3 | |||
4 | #include <linux/kernel.h> | ||
5 | |||
6 | extern int rdc_gpio_get_value(unsigned gpio); | ||
7 | extern void rdc_gpio_set_value(unsigned gpio, int value); | ||
8 | extern int rdc_gpio_direction_input(unsigned gpio); | ||
9 | extern int rdc_gpio_direction_output(unsigned gpio, int value); | ||
10 | extern int rdc_gpio_request(unsigned gpio, const char *label); | ||
11 | extern void rdc_gpio_free(unsigned gpio); | ||
12 | extern void __init rdc321x_gpio_setup(void); | ||
13 | |||
14 | /* Wrappers for the arch-neutral GPIO API */ | ||
15 | |||
16 | static inline int gpio_request(unsigned gpio, const char *label) | ||
17 | { | ||
18 | return rdc_gpio_request(gpio, label); | ||
19 | } | ||
20 | |||
21 | static inline void gpio_free(unsigned gpio) | ||
22 | { | ||
23 | might_sleep(); | ||
24 | rdc_gpio_free(gpio); | ||
25 | } | ||
26 | |||
27 | static inline int gpio_direction_input(unsigned gpio) | ||
28 | { | ||
29 | return rdc_gpio_direction_input(gpio); | ||
30 | } | ||
31 | |||
32 | static inline int gpio_direction_output(unsigned gpio, int value) | ||
33 | { | ||
34 | return rdc_gpio_direction_output(gpio, value); | ||
35 | } | ||
36 | |||
37 | static inline int gpio_get_value(unsigned gpio) | ||
38 | { | ||
39 | return rdc_gpio_get_value(gpio); | ||
40 | } | ||
41 | |||
42 | static inline void gpio_set_value(unsigned gpio, int value) | ||
43 | { | ||
44 | rdc_gpio_set_value(gpio, value); | ||
45 | } | ||
46 | |||
47 | static inline int gpio_to_irq(unsigned gpio) | ||
48 | { | ||
49 | return gpio; | ||
50 | } | ||
51 | |||
52 | static inline int irq_to_gpio(unsigned irq) | ||
53 | { | ||
54 | return irq; | ||
55 | } | ||
56 | |||
57 | /* For cansleep */ | ||
58 | #include <asm-generic/gpio.h> | ||
59 | |||
60 | #endif /* _ASM_X86_MACH_RDC321X_GPIO_H */ | ||
diff --git a/arch/x86/include/asm/mach-rdc321x/rdc321x_defs.h b/arch/x86/include/asm/mach-rdc321x/rdc321x_defs.h new file mode 100644 index 000000000000..c8e9c8bed3d0 --- /dev/null +++ b/arch/x86/include/asm/mach-rdc321x/rdc321x_defs.h | |||
@@ -0,0 +1,12 @@ | |||
1 | #define PFX "rdc321x: " | ||
2 | |||
3 | /* General purpose configuration and data registers */ | ||
4 | #define RDC3210_CFGREG_ADDR 0x0CF8 | ||
5 | #define RDC3210_CFGREG_DATA 0x0CFC | ||
6 | |||
7 | #define RDC321X_GPIO_CTRL_REG1 0x48 | ||
8 | #define RDC321X_GPIO_CTRL_REG2 0x84 | ||
9 | #define RDC321X_GPIO_DATA_REG1 0x4c | ||
10 | #define RDC321X_GPIO_DATA_REG2 0x88 | ||
11 | |||
12 | #define RDC321X_MAX_GPIO 58 | ||
diff --git a/arch/x86/include/asm/mach-voyager/do_timer.h b/arch/x86/include/asm/mach-voyager/do_timer.h new file mode 100644 index 000000000000..9e5a459fd15b --- /dev/null +++ b/arch/x86/include/asm/mach-voyager/do_timer.h | |||
@@ -0,0 +1,17 @@ | |||
1 | /* defines for inline arch setup functions */ | ||
2 | #include <linux/clockchips.h> | ||
3 | |||
4 | #include <asm/voyager.h> | ||
5 | #include <asm/i8253.h> | ||
6 | |||
7 | /** | ||
8 | * do_timer_interrupt_hook - hook into timer tick | ||
9 | * | ||
10 | * Call the pit clock event handler. see asm/i8253.h | ||
11 | **/ | ||
12 | static inline void do_timer_interrupt_hook(void) | ||
13 | { | ||
14 | global_clock_event->event_handler(global_clock_event); | ||
15 | voyager_timer_interrupt(); | ||
16 | } | ||
17 | |||
diff --git a/arch/x86/include/asm/mach-voyager/entry_arch.h b/arch/x86/include/asm/mach-voyager/entry_arch.h new file mode 100644 index 000000000000..ae52624b5937 --- /dev/null +++ b/arch/x86/include/asm/mach-voyager/entry_arch.h | |||
@@ -0,0 +1,26 @@ | |||
1 | /* -*- mode: c; c-basic-offset: 8 -*- */ | ||
2 | |||
3 | /* Copyright (C) 2002 | ||
4 | * | ||
5 | * Author: James.Bottomley@HansenPartnership.com | ||
6 | * | ||
7 | * linux/arch/i386/voyager/entry_arch.h | ||
8 | * | ||
9 | * This file builds the VIC and QIC CPI gates | ||
10 | */ | ||
11 | |||
12 | /* initialise the voyager interrupt gates | ||
13 | * | ||
14 | * This uses the macros in irq.h to set up assembly jump gates. The | ||
15 | * calls are then redirected to the same routine with smp_ prefixed */ | ||
16 | BUILD_INTERRUPT(vic_sys_interrupt, VIC_SYS_INT) | ||
17 | BUILD_INTERRUPT(vic_cmn_interrupt, VIC_CMN_INT) | ||
18 | BUILD_INTERRUPT(vic_cpi_interrupt, VIC_CPI_LEVEL0); | ||
19 | |||
20 | /* do all the QIC interrupts */ | ||
21 | BUILD_INTERRUPT(qic_timer_interrupt, QIC_TIMER_CPI); | ||
22 | BUILD_INTERRUPT(qic_invalidate_interrupt, QIC_INVALIDATE_CPI); | ||
23 | BUILD_INTERRUPT(qic_reschedule_interrupt, QIC_RESCHEDULE_CPI); | ||
24 | BUILD_INTERRUPT(qic_enable_irq_interrupt, QIC_ENABLE_IRQ_CPI); | ||
25 | BUILD_INTERRUPT(qic_call_function_interrupt, QIC_CALL_FUNCTION_CPI); | ||
26 | BUILD_INTERRUPT(qic_call_function_single_interrupt, QIC_CALL_FUNCTION_SINGLE_CPI); | ||
diff --git a/arch/x86/include/asm/mach-voyager/setup_arch.h b/arch/x86/include/asm/mach-voyager/setup_arch.h new file mode 100644 index 000000000000..71729ca05cd7 --- /dev/null +++ b/arch/x86/include/asm/mach-voyager/setup_arch.h | |||
@@ -0,0 +1,12 @@ | |||
1 | #include <asm/voyager.h> | ||
2 | #include <asm/setup.h> | ||
3 | #define VOYAGER_BIOS_INFO ((struct voyager_bios_info *) \ | ||
4 | (&boot_params.apm_bios_info)) | ||
5 | |||
6 | /* Hook to call BIOS initialisation function */ | ||
7 | |||
8 | /* for voyager, pass the voyager BIOS/SUS info area to the detection | ||
9 | * routines */ | ||
10 | |||
11 | #define ARCH_SETUP voyager_detect(VOYAGER_BIOS_INFO); | ||
12 | |||
diff --git a/arch/x86/include/asm/math_emu.h b/arch/x86/include/asm/math_emu.h new file mode 100644 index 000000000000..5a65b107ad58 --- /dev/null +++ b/arch/x86/include/asm/math_emu.h | |||
@@ -0,0 +1,31 @@ | |||
1 | #ifndef _ASM_X86_MATH_EMU_H | ||
2 | #define _ASM_X86_MATH_EMU_H | ||
3 | |||
4 | /* This structure matches the layout of the data saved to the stack | ||
5 | following a device-not-present interrupt, part of it saved | ||
6 | automatically by the 80386/80486. | ||
7 | */ | ||
8 | struct info { | ||
9 | long ___orig_eip; | ||
10 | long ___ebx; | ||
11 | long ___ecx; | ||
12 | long ___edx; | ||
13 | long ___esi; | ||
14 | long ___edi; | ||
15 | long ___ebp; | ||
16 | long ___eax; | ||
17 | long ___ds; | ||
18 | long ___es; | ||
19 | long ___fs; | ||
20 | long ___orig_eax; | ||
21 | long ___eip; | ||
22 | long ___cs; | ||
23 | long ___eflags; | ||
24 | long ___esp; | ||
25 | long ___ss; | ||
26 | long ___vm86_es; /* This and the following only in vm86 mode */ | ||
27 | long ___vm86_ds; | ||
28 | long ___vm86_fs; | ||
29 | long ___vm86_gs; | ||
30 | }; | ||
31 | #endif /* _ASM_X86_MATH_EMU_H */ | ||
diff --git a/arch/x86/include/asm/mc146818rtc.h b/arch/x86/include/asm/mc146818rtc.h new file mode 100644 index 000000000000..01fdf5674e24 --- /dev/null +++ b/arch/x86/include/asm/mc146818rtc.h | |||
@@ -0,0 +1,104 @@ | |||
1 | /* | ||
2 | * Machine dependent access functions for RTC registers. | ||
3 | */ | ||
4 | #ifndef _ASM_X86_MC146818RTC_H | ||
5 | #define _ASM_X86_MC146818RTC_H | ||
6 | |||
7 | #include <asm/io.h> | ||
8 | #include <asm/system.h> | ||
9 | #include <asm/processor.h> | ||
10 | #include <linux/mc146818rtc.h> | ||
11 | |||
12 | #ifndef RTC_PORT | ||
13 | #define RTC_PORT(x) (0x70 + (x)) | ||
14 | #define RTC_ALWAYS_BCD 1 /* RTC operates in binary mode */ | ||
15 | #endif | ||
16 | |||
17 | #if defined(CONFIG_X86_32) && defined(__HAVE_ARCH_CMPXCHG) | ||
18 | /* | ||
19 | * This lock provides nmi access to the CMOS/RTC registers. It has some | ||
20 | * special properties. It is owned by a CPU and stores the index register | ||
21 | * currently being accessed (if owned). The idea here is that it works | ||
22 | * like a normal lock (normally). However, in an NMI, the NMI code will | ||
23 | * first check to see if its CPU owns the lock, meaning that the NMI | ||
24 | * interrupted during the read/write of the device. If it does, it goes ahead | ||
25 | * and performs the access and then restores the index register. If it does | ||
26 | * not, it locks normally. | ||
27 | * | ||
28 | * Note that since we are working with NMIs, we need this lock even in | ||
29 | * a non-SMP machine just to mark that the lock is owned. | ||
30 | * | ||
31 | * This only works with compare-and-swap. There is no other way to | ||
32 | * atomically claim the lock and set the owner. | ||
33 | */ | ||
34 | #include <linux/smp.h> | ||
35 | extern volatile unsigned long cmos_lock; | ||
36 | |||
37 | /* | ||
38 | * All of these below must be called with interrupts off, preempt | ||
39 | * disabled, etc. | ||
40 | */ | ||
41 | |||
42 | static inline void lock_cmos(unsigned char reg) | ||
43 | { | ||
44 | unsigned long new; | ||
45 | new = ((smp_processor_id() + 1) << 8) | reg; | ||
46 | for (;;) { | ||
47 | if (cmos_lock) { | ||
48 | cpu_relax(); | ||
49 | continue; | ||
50 | } | ||
51 | if (__cmpxchg(&cmos_lock, 0, new, sizeof(cmos_lock)) == 0) | ||
52 | return; | ||
53 | } | ||
54 | } | ||
55 | |||
56 | static inline void unlock_cmos(void) | ||
57 | { | ||
58 | cmos_lock = 0; | ||
59 | } | ||
60 | |||
61 | static inline int do_i_have_lock_cmos(void) | ||
62 | { | ||
63 | return (cmos_lock >> 8) == (smp_processor_id() + 1); | ||
64 | } | ||
65 | |||
66 | static inline unsigned char current_lock_cmos_reg(void) | ||
67 | { | ||
68 | return cmos_lock & 0xff; | ||
69 | } | ||
70 | |||
71 | #define lock_cmos_prefix(reg) \ | ||
72 | do { \ | ||
73 | unsigned long cmos_flags; \ | ||
74 | local_irq_save(cmos_flags); \ | ||
75 | lock_cmos(reg) | ||
76 | |||
77 | #define lock_cmos_suffix(reg) \ | ||
78 | unlock_cmos(); \ | ||
79 | local_irq_restore(cmos_flags); \ | ||
80 | } while (0) | ||
81 | #else | ||
82 | #define lock_cmos_prefix(reg) do {} while (0) | ||
83 | #define lock_cmos_suffix(reg) do {} while (0) | ||
84 | #define lock_cmos(reg) | ||
85 | #define unlock_cmos() | ||
86 | #define do_i_have_lock_cmos() 0 | ||
87 | #define current_lock_cmos_reg() 0 | ||
88 | #endif | ||
89 | |||
90 | /* | ||
91 | * The yet supported machines all access the RTC index register via | ||
92 | * an ISA port access but the way to access the date register differs ... | ||
93 | */ | ||
94 | #define CMOS_READ(addr) rtc_cmos_read(addr) | ||
95 | #define CMOS_WRITE(val, addr) rtc_cmos_write(val, addr) | ||
96 | unsigned char rtc_cmos_read(unsigned char addr); | ||
97 | void rtc_cmos_write(unsigned char val, unsigned char addr); | ||
98 | |||
99 | extern int mach_set_rtc_mmss(unsigned long nowtime); | ||
100 | extern unsigned long mach_get_cmos_time(void); | ||
101 | |||
102 | #define RTC_IRQ 8 | ||
103 | |||
104 | #endif /* _ASM_X86_MC146818RTC_H */ | ||
diff --git a/arch/x86/include/asm/mca.h b/arch/x86/include/asm/mca.h new file mode 100644 index 000000000000..eedbb6cc1efb --- /dev/null +++ b/arch/x86/include/asm/mca.h | |||
@@ -0,0 +1,43 @@ | |||
1 | /* -*- mode: c; c-basic-offset: 8 -*- */ | ||
2 | |||
3 | /* Platform specific MCA defines */ | ||
4 | #ifndef _ASM_X86_MCA_H | ||
5 | #define _ASM_X86_MCA_H | ||
6 | |||
7 | /* Maximal number of MCA slots - actually, some machines have less, but | ||
8 | * they all have sufficient number of POS registers to cover 8. | ||
9 | */ | ||
10 | #define MCA_MAX_SLOT_NR 8 | ||
11 | |||
12 | /* Most machines have only one MCA bus. The only multiple bus machines | ||
13 | * I know have at most two */ | ||
14 | #define MAX_MCA_BUSSES 2 | ||
15 | |||
16 | #define MCA_PRIMARY_BUS 0 | ||
17 | #define MCA_SECONDARY_BUS 1 | ||
18 | |||
19 | /* Dummy slot numbers on primary MCA for integrated functions */ | ||
20 | #define MCA_INTEGSCSI (MCA_MAX_SLOT_NR) | ||
21 | #define MCA_INTEGVIDEO (MCA_MAX_SLOT_NR+1) | ||
22 | #define MCA_MOTHERBOARD (MCA_MAX_SLOT_NR+2) | ||
23 | |||
24 | /* Dummy POS values for integrated functions */ | ||
25 | #define MCA_DUMMY_POS_START 0x10000 | ||
26 | #define MCA_INTEGSCSI_POS (MCA_DUMMY_POS_START+1) | ||
27 | #define MCA_INTEGVIDEO_POS (MCA_DUMMY_POS_START+2) | ||
28 | #define MCA_MOTHERBOARD_POS (MCA_DUMMY_POS_START+3) | ||
29 | |||
30 | /* MCA registers */ | ||
31 | |||
32 | #define MCA_MOTHERBOARD_SETUP_REG 0x94 | ||
33 | #define MCA_ADAPTER_SETUP_REG 0x96 | ||
34 | #define MCA_POS_REG(n) (0x100+(n)) | ||
35 | |||
36 | #define MCA_ENABLED 0x01 /* POS 2, set if adapter enabled */ | ||
37 | |||
38 | /* Max number of adapters, including both slots and various integrated | ||
39 | * things. | ||
40 | */ | ||
41 | #define MCA_NUMADAPTERS (MCA_MAX_SLOT_NR+3) | ||
42 | |||
43 | #endif /* _ASM_X86_MCA_H */ | ||
diff --git a/arch/x86/include/asm/mca_dma.h b/arch/x86/include/asm/mca_dma.h new file mode 100644 index 000000000000..45271aef82dd --- /dev/null +++ b/arch/x86/include/asm/mca_dma.h | |||
@@ -0,0 +1,201 @@ | |||
1 | #ifndef _ASM_X86_MCA_DMA_H | ||
2 | #define _ASM_X86_MCA_DMA_H | ||
3 | |||
4 | #include <asm/io.h> | ||
5 | #include <linux/ioport.h> | ||
6 | |||
7 | /* | ||
8 | * Microchannel specific DMA stuff. DMA on an MCA machine is fairly similar to | ||
9 | * standard PC dma, but it certainly has its quirks. DMA register addresses | ||
10 | * are in a different place and there are some added functions. Most of this | ||
11 | * should be pretty obvious on inspection. Note that the user must divide | ||
12 | * count by 2 when using 16-bit dma; that is not handled by these functions. | ||
13 | * | ||
14 | * Ramen Noodles are yummy. | ||
15 | * | ||
16 | * 1998 Tymm Twillman <tymm@computer.org> | ||
17 | */ | ||
18 | |||
19 | /* | ||
20 | * Registers that are used by the DMA controller; FN is the function register | ||
21 | * (tell the controller what to do) and EXE is the execution register (how | ||
22 | * to do it) | ||
23 | */ | ||
24 | |||
25 | #define MCA_DMA_REG_FN 0x18 | ||
26 | #define MCA_DMA_REG_EXE 0x1A | ||
27 | |||
28 | /* | ||
29 | * Functions that the DMA controller can do | ||
30 | */ | ||
31 | |||
32 | #define MCA_DMA_FN_SET_IO 0x00 | ||
33 | #define MCA_DMA_FN_SET_ADDR 0x20 | ||
34 | #define MCA_DMA_FN_GET_ADDR 0x30 | ||
35 | #define MCA_DMA_FN_SET_COUNT 0x40 | ||
36 | #define MCA_DMA_FN_GET_COUNT 0x50 | ||
37 | #define MCA_DMA_FN_GET_STATUS 0x60 | ||
38 | #define MCA_DMA_FN_SET_MODE 0x70 | ||
39 | #define MCA_DMA_FN_SET_ARBUS 0x80 | ||
40 | #define MCA_DMA_FN_MASK 0x90 | ||
41 | #define MCA_DMA_FN_RESET_MASK 0xA0 | ||
42 | #define MCA_DMA_FN_MASTER_CLEAR 0xD0 | ||
43 | |||
44 | /* | ||
45 | * Modes (used by setting MCA_DMA_FN_MODE in the function register) | ||
46 | * | ||
47 | * Note that the MODE_READ is read from memory (write to device), and | ||
48 | * MODE_WRITE is vice-versa. | ||
49 | */ | ||
50 | |||
51 | #define MCA_DMA_MODE_XFER 0x04 /* read by default */ | ||
52 | #define MCA_DMA_MODE_READ 0x04 /* same as XFER */ | ||
53 | #define MCA_DMA_MODE_WRITE 0x08 /* OR with MODE_XFER to use */ | ||
54 | #define MCA_DMA_MODE_IO 0x01 /* DMA from IO register */ | ||
55 | #define MCA_DMA_MODE_16 0x40 /* 16 bit xfers */ | ||
56 | |||
57 | |||
58 | /** | ||
59 | * mca_enable_dma - channel to enable DMA on | ||
60 | * @dmanr: DMA channel | ||
61 | * | ||
62 | * Enable the MCA bus DMA on a channel. This can be called from | ||
63 | * IRQ context. | ||
64 | */ | ||
65 | |||
66 | static inline void mca_enable_dma(unsigned int dmanr) | ||
67 | { | ||
68 | outb(MCA_DMA_FN_RESET_MASK | dmanr, MCA_DMA_REG_FN); | ||
69 | } | ||
70 | |||
71 | /** | ||
72 | * mca_disble_dma - channel to disable DMA on | ||
73 | * @dmanr: DMA channel | ||
74 | * | ||
75 | * Enable the MCA bus DMA on a channel. This can be called from | ||
76 | * IRQ context. | ||
77 | */ | ||
78 | |||
79 | static inline void mca_disable_dma(unsigned int dmanr) | ||
80 | { | ||
81 | outb(MCA_DMA_FN_MASK | dmanr, MCA_DMA_REG_FN); | ||
82 | } | ||
83 | |||
84 | /** | ||
85 | * mca_set_dma_addr - load a 24bit DMA address | ||
86 | * @dmanr: DMA channel | ||
87 | * @a: 24bit bus address | ||
88 | * | ||
89 | * Load the address register in the DMA controller. This has a 24bit | ||
90 | * limitation (16Mb). | ||
91 | */ | ||
92 | |||
93 | static inline void mca_set_dma_addr(unsigned int dmanr, unsigned int a) | ||
94 | { | ||
95 | outb(MCA_DMA_FN_SET_ADDR | dmanr, MCA_DMA_REG_FN); | ||
96 | outb(a & 0xff, MCA_DMA_REG_EXE); | ||
97 | outb((a >> 8) & 0xff, MCA_DMA_REG_EXE); | ||
98 | outb((a >> 16) & 0xff, MCA_DMA_REG_EXE); | ||
99 | } | ||
100 | |||
101 | /** | ||
102 | * mca_get_dma_addr - load a 24bit DMA address | ||
103 | * @dmanr: DMA channel | ||
104 | * | ||
105 | * Read the address register in the DMA controller. This has a 24bit | ||
106 | * limitation (16Mb). The return is a bus address. | ||
107 | */ | ||
108 | |||
109 | static inline unsigned int mca_get_dma_addr(unsigned int dmanr) | ||
110 | { | ||
111 | unsigned int addr; | ||
112 | |||
113 | outb(MCA_DMA_FN_GET_ADDR | dmanr, MCA_DMA_REG_FN); | ||
114 | addr = inb(MCA_DMA_REG_EXE); | ||
115 | addr |= inb(MCA_DMA_REG_EXE) << 8; | ||
116 | addr |= inb(MCA_DMA_REG_EXE) << 16; | ||
117 | |||
118 | return addr; | ||
119 | } | ||
120 | |||
121 | /** | ||
122 | * mca_set_dma_count - load a 16bit transfer count | ||
123 | * @dmanr: DMA channel | ||
124 | * @count: count | ||
125 | * | ||
126 | * Set the DMA count for this channel. This can be up to 64Kbytes. | ||
127 | * Setting a count of zero will not do what you expect. | ||
128 | */ | ||
129 | |||
130 | static inline void mca_set_dma_count(unsigned int dmanr, unsigned int count) | ||
131 | { | ||
132 | count--; /* transfers one more than count -- correct for this */ | ||
133 | |||
134 | outb(MCA_DMA_FN_SET_COUNT | dmanr, MCA_DMA_REG_FN); | ||
135 | outb(count & 0xff, MCA_DMA_REG_EXE); | ||
136 | outb((count >> 8) & 0xff, MCA_DMA_REG_EXE); | ||
137 | } | ||
138 | |||
139 | /** | ||
140 | * mca_get_dma_residue - get the remaining bytes to transfer | ||
141 | * @dmanr: DMA channel | ||
142 | * | ||
143 | * This function returns the number of bytes left to transfer | ||
144 | * on this DMA channel. | ||
145 | */ | ||
146 | |||
147 | static inline unsigned int mca_get_dma_residue(unsigned int dmanr) | ||
148 | { | ||
149 | unsigned short count; | ||
150 | |||
151 | outb(MCA_DMA_FN_GET_COUNT | dmanr, MCA_DMA_REG_FN); | ||
152 | count = 1 + inb(MCA_DMA_REG_EXE); | ||
153 | count += inb(MCA_DMA_REG_EXE) << 8; | ||
154 | |||
155 | return count; | ||
156 | } | ||
157 | |||
158 | /** | ||
159 | * mca_set_dma_io - set the port for an I/O transfer | ||
160 | * @dmanr: DMA channel | ||
161 | * @io_addr: an I/O port number | ||
162 | * | ||
163 | * Unlike the ISA bus DMA controllers the DMA on MCA bus can transfer | ||
164 | * with an I/O port target. | ||
165 | */ | ||
166 | |||
167 | static inline void mca_set_dma_io(unsigned int dmanr, unsigned int io_addr) | ||
168 | { | ||
169 | /* | ||
170 | * DMA from a port address -- set the io address | ||
171 | */ | ||
172 | |||
173 | outb(MCA_DMA_FN_SET_IO | dmanr, MCA_DMA_REG_FN); | ||
174 | outb(io_addr & 0xff, MCA_DMA_REG_EXE); | ||
175 | outb((io_addr >> 8) & 0xff, MCA_DMA_REG_EXE); | ||
176 | } | ||
177 | |||
178 | /** | ||
179 | * mca_set_dma_mode - set the DMA mode | ||
180 | * @dmanr: DMA channel | ||
181 | * @mode: mode to set | ||
182 | * | ||
183 | * The DMA controller supports several modes. The mode values you can | ||
184 | * set are- | ||
185 | * | ||
186 | * %MCA_DMA_MODE_READ when reading from the DMA device. | ||
187 | * | ||
188 | * %MCA_DMA_MODE_WRITE to writing to the DMA device. | ||
189 | * | ||
190 | * %MCA_DMA_MODE_IO to do DMA to or from an I/O port. | ||
191 | * | ||
192 | * %MCA_DMA_MODE_16 to do 16bit transfers. | ||
193 | */ | ||
194 | |||
195 | static inline void mca_set_dma_mode(unsigned int dmanr, unsigned int mode) | ||
196 | { | ||
197 | outb(MCA_DMA_FN_SET_MODE | dmanr, MCA_DMA_REG_FN); | ||
198 | outb(mode, MCA_DMA_REG_EXE); | ||
199 | } | ||
200 | |||
201 | #endif /* _ASM_X86_MCA_DMA_H */ | ||
diff --git a/arch/x86/include/asm/mce.h b/arch/x86/include/asm/mce.h new file mode 100644 index 000000000000..1d6e17c2f23a --- /dev/null +++ b/arch/x86/include/asm/mce.h | |||
@@ -0,0 +1,130 @@ | |||
1 | #ifndef _ASM_X86_MCE_H | ||
2 | #define _ASM_X86_MCE_H | ||
3 | |||
4 | #ifdef __x86_64__ | ||
5 | |||
6 | #include <asm/ioctls.h> | ||
7 | #include <asm/types.h> | ||
8 | |||
9 | /* | ||
10 | * Machine Check support for x86 | ||
11 | */ | ||
12 | |||
13 | #define MCG_CTL_P (1UL<<8) /* MCG_CAP register available */ | ||
14 | |||
15 | #define MCG_STATUS_RIPV (1UL<<0) /* restart ip valid */ | ||
16 | #define MCG_STATUS_EIPV (1UL<<1) /* ip points to correct instruction */ | ||
17 | #define MCG_STATUS_MCIP (1UL<<2) /* machine check in progress */ | ||
18 | |||
19 | #define MCI_STATUS_VAL (1UL<<63) /* valid error */ | ||
20 | #define MCI_STATUS_OVER (1UL<<62) /* previous errors lost */ | ||
21 | #define MCI_STATUS_UC (1UL<<61) /* uncorrected error */ | ||
22 | #define MCI_STATUS_EN (1UL<<60) /* error enabled */ | ||
23 | #define MCI_STATUS_MISCV (1UL<<59) /* misc error reg. valid */ | ||
24 | #define MCI_STATUS_ADDRV (1UL<<58) /* addr reg. valid */ | ||
25 | #define MCI_STATUS_PCC (1UL<<57) /* processor context corrupt */ | ||
26 | |||
27 | /* Fields are zero when not available */ | ||
28 | struct mce { | ||
29 | __u64 status; | ||
30 | __u64 misc; | ||
31 | __u64 addr; | ||
32 | __u64 mcgstatus; | ||
33 | __u64 ip; | ||
34 | __u64 tsc; /* cpu time stamp counter */ | ||
35 | __u64 res1; /* for future extension */ | ||
36 | __u64 res2; /* dito. */ | ||
37 | __u8 cs; /* code segment */ | ||
38 | __u8 bank; /* machine check bank */ | ||
39 | __u8 cpu; /* cpu that raised the error */ | ||
40 | __u8 finished; /* entry is valid */ | ||
41 | __u32 pad; | ||
42 | }; | ||
43 | |||
44 | /* | ||
45 | * This structure contains all data related to the MCE log. Also | ||
46 | * carries a signature to make it easier to find from external | ||
47 | * debugging tools. Each entry is only valid when its finished flag | ||
48 | * is set. | ||
49 | */ | ||
50 | |||
51 | #define MCE_LOG_LEN 32 | ||
52 | |||
53 | struct mce_log { | ||
54 | char signature[12]; /* "MACHINECHECK" */ | ||
55 | unsigned len; /* = MCE_LOG_LEN */ | ||
56 | unsigned next; | ||
57 | unsigned flags; | ||
58 | unsigned pad0; | ||
59 | struct mce entry[MCE_LOG_LEN]; | ||
60 | }; | ||
61 | |||
62 | #define MCE_OVERFLOW 0 /* bit 0 in flags means overflow */ | ||
63 | |||
64 | #define MCE_LOG_SIGNATURE "MACHINECHECK" | ||
65 | |||
66 | #define MCE_GET_RECORD_LEN _IOR('M', 1, int) | ||
67 | #define MCE_GET_LOG_LEN _IOR('M', 2, int) | ||
68 | #define MCE_GETCLEAR_FLAGS _IOR('M', 3, int) | ||
69 | |||
70 | /* Software defined banks */ | ||
71 | #define MCE_EXTENDED_BANK 128 | ||
72 | #define MCE_THERMAL_BANK MCE_EXTENDED_BANK + 0 | ||
73 | |||
74 | #define K8_MCE_THRESHOLD_BASE (MCE_EXTENDED_BANK + 1) /* MCE_AMD */ | ||
75 | #define K8_MCE_THRESHOLD_BANK_0 (MCE_THRESHOLD_BASE + 0 * 9) | ||
76 | #define K8_MCE_THRESHOLD_BANK_1 (MCE_THRESHOLD_BASE + 1 * 9) | ||
77 | #define K8_MCE_THRESHOLD_BANK_2 (MCE_THRESHOLD_BASE + 2 * 9) | ||
78 | #define K8_MCE_THRESHOLD_BANK_3 (MCE_THRESHOLD_BASE + 3 * 9) | ||
79 | #define K8_MCE_THRESHOLD_BANK_4 (MCE_THRESHOLD_BASE + 4 * 9) | ||
80 | #define K8_MCE_THRESHOLD_BANK_5 (MCE_THRESHOLD_BASE + 5 * 9) | ||
81 | #define K8_MCE_THRESHOLD_DRAM_ECC (MCE_THRESHOLD_BANK_4 + 0) | ||
82 | |||
83 | #endif /* __x86_64__ */ | ||
84 | |||
85 | #ifdef __KERNEL__ | ||
86 | |||
87 | #ifdef CONFIG_X86_32 | ||
88 | extern int mce_disabled; | ||
89 | #else /* CONFIG_X86_32 */ | ||
90 | |||
91 | #include <asm/atomic.h> | ||
92 | |||
93 | void mce_log(struct mce *m); | ||
94 | DECLARE_PER_CPU(struct sys_device, device_mce); | ||
95 | extern void (*threshold_cpu_callback)(unsigned long action, unsigned int cpu); | ||
96 | |||
97 | #ifdef CONFIG_X86_MCE_INTEL | ||
98 | void mce_intel_feature_init(struct cpuinfo_x86 *c); | ||
99 | #else | ||
100 | static inline void mce_intel_feature_init(struct cpuinfo_x86 *c) { } | ||
101 | #endif | ||
102 | |||
103 | #ifdef CONFIG_X86_MCE_AMD | ||
104 | void mce_amd_feature_init(struct cpuinfo_x86 *c); | ||
105 | #else | ||
106 | static inline void mce_amd_feature_init(struct cpuinfo_x86 *c) { } | ||
107 | #endif | ||
108 | |||
109 | void mce_log_therm_throt_event(unsigned int cpu, __u64 status); | ||
110 | |||
111 | extern atomic_t mce_entry; | ||
112 | |||
113 | extern void do_machine_check(struct pt_regs *, long); | ||
114 | extern int mce_notify_user(void); | ||
115 | |||
116 | #endif /* !CONFIG_X86_32 */ | ||
117 | |||
118 | |||
119 | |||
120 | #ifdef CONFIG_X86_MCE | ||
121 | extern void mcheck_init(struct cpuinfo_x86 *c); | ||
122 | #else | ||
123 | #define mcheck_init(c) do { } while (0) | ||
124 | #endif | ||
125 | extern void stop_mce(void); | ||
126 | extern void restart_mce(void); | ||
127 | |||
128 | #endif /* __KERNEL__ */ | ||
129 | |||
130 | #endif /* _ASM_X86_MCE_H */ | ||
diff --git a/arch/x86/include/asm/microcode.h b/arch/x86/include/asm/microcode.h new file mode 100644 index 000000000000..c882664716c1 --- /dev/null +++ b/arch/x86/include/asm/microcode.h | |||
@@ -0,0 +1,47 @@ | |||
1 | #ifndef _ASM_X86_MICROCODE_H | ||
2 | #define _ASM_X86_MICROCODE_H | ||
3 | |||
4 | struct cpu_signature { | ||
5 | unsigned int sig; | ||
6 | unsigned int pf; | ||
7 | unsigned int rev; | ||
8 | }; | ||
9 | |||
10 | struct device; | ||
11 | |||
12 | struct microcode_ops { | ||
13 | int (*request_microcode_user) (int cpu, const void __user *buf, size_t size); | ||
14 | int (*request_microcode_fw) (int cpu, struct device *device); | ||
15 | |||
16 | void (*apply_microcode) (int cpu); | ||
17 | |||
18 | int (*collect_cpu_info) (int cpu, struct cpu_signature *csig); | ||
19 | void (*microcode_fini_cpu) (int cpu); | ||
20 | }; | ||
21 | |||
22 | struct ucode_cpu_info { | ||
23 | struct cpu_signature cpu_sig; | ||
24 | int valid; | ||
25 | void *mc; | ||
26 | }; | ||
27 | extern struct ucode_cpu_info ucode_cpu_info[]; | ||
28 | |||
29 | #ifdef CONFIG_MICROCODE_INTEL | ||
30 | extern struct microcode_ops * __init init_intel_microcode(void); | ||
31 | #else | ||
32 | static inline struct microcode_ops * __init init_intel_microcode(void) | ||
33 | { | ||
34 | return NULL; | ||
35 | } | ||
36 | #endif /* CONFIG_MICROCODE_INTEL */ | ||
37 | |||
38 | #ifdef CONFIG_MICROCODE_AMD | ||
39 | extern struct microcode_ops * __init init_amd_microcode(void); | ||
40 | #else | ||
41 | static inline struct microcode_ops * __init init_amd_microcode(void) | ||
42 | { | ||
43 | return NULL; | ||
44 | } | ||
45 | #endif | ||
46 | |||
47 | #endif /* _ASM_X86_MICROCODE_H */ | ||
diff --git a/arch/x86/include/asm/mman.h b/arch/x86/include/asm/mman.h new file mode 100644 index 000000000000..90bc4108a4fd --- /dev/null +++ b/arch/x86/include/asm/mman.h | |||
@@ -0,0 +1,20 @@ | |||
1 | #ifndef _ASM_X86_MMAN_H | ||
2 | #define _ASM_X86_MMAN_H | ||
3 | |||
4 | #include <asm-generic/mman.h> | ||
5 | |||
6 | #define MAP_32BIT 0x40 /* only give out 32bit addresses */ | ||
7 | |||
8 | #define MAP_GROWSDOWN 0x0100 /* stack-like segment */ | ||
9 | #define MAP_DENYWRITE 0x0800 /* ETXTBSY */ | ||
10 | #define MAP_EXECUTABLE 0x1000 /* mark it as an executable */ | ||
11 | #define MAP_LOCKED 0x2000 /* pages are locked */ | ||
12 | #define MAP_NORESERVE 0x4000 /* don't check for reservations */ | ||
13 | #define MAP_POPULATE 0x8000 /* populate (prefault) pagetables */ | ||
14 | #define MAP_NONBLOCK 0x10000 /* do not block on IO */ | ||
15 | #define MAP_STACK 0x20000 /* give out an address that is best suited for process/thread stacks */ | ||
16 | |||
17 | #define MCL_CURRENT 1 /* lock all current mappings */ | ||
18 | #define MCL_FUTURE 2 /* lock all future mappings */ | ||
19 | |||
20 | #endif /* _ASM_X86_MMAN_H */ | ||
diff --git a/arch/x86/include/asm/mmconfig.h b/arch/x86/include/asm/mmconfig.h new file mode 100644 index 000000000000..9b119da1d105 --- /dev/null +++ b/arch/x86/include/asm/mmconfig.h | |||
@@ -0,0 +1,12 @@ | |||
1 | #ifndef _ASM_X86_MMCONFIG_H | ||
2 | #define _ASM_X86_MMCONFIG_H | ||
3 | |||
4 | #ifdef CONFIG_PCI_MMCONFIG | ||
5 | extern void __cpuinit fam10h_check_enable_mmcfg(void); | ||
6 | extern void __cpuinit check_enable_amd_mmconf_dmi(void); | ||
7 | #else | ||
8 | static inline void fam10h_check_enable_mmcfg(void) { } | ||
9 | static inline void check_enable_amd_mmconf_dmi(void) { } | ||
10 | #endif | ||
11 | |||
12 | #endif /* _ASM_X86_MMCONFIG_H */ | ||
diff --git a/arch/x86/include/asm/mmu.h b/arch/x86/include/asm/mmu.h new file mode 100644 index 000000000000..80a1dee5bea5 --- /dev/null +++ b/arch/x86/include/asm/mmu.h | |||
@@ -0,0 +1,26 @@ | |||
1 | #ifndef _ASM_X86_MMU_H | ||
2 | #define _ASM_X86_MMU_H | ||
3 | |||
4 | #include <linux/spinlock.h> | ||
5 | #include <linux/mutex.h> | ||
6 | |||
7 | /* | ||
8 | * The x86 doesn't have a mmu context, but | ||
9 | * we put the segment information here. | ||
10 | */ | ||
11 | typedef struct { | ||
12 | void *ldt; | ||
13 | int size; | ||
14 | struct mutex lock; | ||
15 | void *vdso; | ||
16 | } mm_context_t; | ||
17 | |||
18 | #ifdef CONFIG_SMP | ||
19 | void leave_mm(int cpu); | ||
20 | #else | ||
21 | static inline void leave_mm(int cpu) | ||
22 | { | ||
23 | } | ||
24 | #endif | ||
25 | |||
26 | #endif /* _ASM_X86_MMU_H */ | ||
diff --git a/arch/x86/include/asm/mmu_context.h b/arch/x86/include/asm/mmu_context.h new file mode 100644 index 000000000000..8aeeb3fd73db --- /dev/null +++ b/arch/x86/include/asm/mmu_context.h | |||
@@ -0,0 +1,37 @@ | |||
1 | #ifndef _ASM_X86_MMU_CONTEXT_H | ||
2 | #define _ASM_X86_MMU_CONTEXT_H | ||
3 | |||
4 | #include <asm/desc.h> | ||
5 | #include <asm/atomic.h> | ||
6 | #include <asm/pgalloc.h> | ||
7 | #include <asm/tlbflush.h> | ||
8 | #include <asm/paravirt.h> | ||
9 | #ifndef CONFIG_PARAVIRT | ||
10 | #include <asm-generic/mm_hooks.h> | ||
11 | |||
12 | static inline void paravirt_activate_mm(struct mm_struct *prev, | ||
13 | struct mm_struct *next) | ||
14 | { | ||
15 | } | ||
16 | #endif /* !CONFIG_PARAVIRT */ | ||
17 | |||
18 | /* | ||
19 | * Used for LDT copy/destruction. | ||
20 | */ | ||
21 | int init_new_context(struct task_struct *tsk, struct mm_struct *mm); | ||
22 | void destroy_context(struct mm_struct *mm); | ||
23 | |||
24 | #ifdef CONFIG_X86_32 | ||
25 | # include "mmu_context_32.h" | ||
26 | #else | ||
27 | # include "mmu_context_64.h" | ||
28 | #endif | ||
29 | |||
30 | #define activate_mm(prev, next) \ | ||
31 | do { \ | ||
32 | paravirt_activate_mm((prev), (next)); \ | ||
33 | switch_mm((prev), (next), NULL); \ | ||
34 | } while (0); | ||
35 | |||
36 | |||
37 | #endif /* _ASM_X86_MMU_CONTEXT_H */ | ||
diff --git a/arch/x86/include/asm/mmu_context_32.h b/arch/x86/include/asm/mmu_context_32.h new file mode 100644 index 000000000000..8e10015781fb --- /dev/null +++ b/arch/x86/include/asm/mmu_context_32.h | |||
@@ -0,0 +1,56 @@ | |||
1 | #ifndef _ASM_X86_MMU_CONTEXT_32_H | ||
2 | #define _ASM_X86_MMU_CONTEXT_32_H | ||
3 | |||
4 | static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) | ||
5 | { | ||
6 | #ifdef CONFIG_SMP | ||
7 | unsigned cpu = smp_processor_id(); | ||
8 | if (per_cpu(cpu_tlbstate, cpu).state == TLBSTATE_OK) | ||
9 | per_cpu(cpu_tlbstate, cpu).state = TLBSTATE_LAZY; | ||
10 | #endif | ||
11 | } | ||
12 | |||
13 | static inline void switch_mm(struct mm_struct *prev, | ||
14 | struct mm_struct *next, | ||
15 | struct task_struct *tsk) | ||
16 | { | ||
17 | int cpu = smp_processor_id(); | ||
18 | |||
19 | if (likely(prev != next)) { | ||
20 | /* stop flush ipis for the previous mm */ | ||
21 | cpu_clear(cpu, prev->cpu_vm_mask); | ||
22 | #ifdef CONFIG_SMP | ||
23 | per_cpu(cpu_tlbstate, cpu).state = TLBSTATE_OK; | ||
24 | per_cpu(cpu_tlbstate, cpu).active_mm = next; | ||
25 | #endif | ||
26 | cpu_set(cpu, next->cpu_vm_mask); | ||
27 | |||
28 | /* Re-load page tables */ | ||
29 | load_cr3(next->pgd); | ||
30 | |||
31 | /* | ||
32 | * load the LDT, if the LDT is different: | ||
33 | */ | ||
34 | if (unlikely(prev->context.ldt != next->context.ldt)) | ||
35 | load_LDT_nolock(&next->context); | ||
36 | } | ||
37 | #ifdef CONFIG_SMP | ||
38 | else { | ||
39 | per_cpu(cpu_tlbstate, cpu).state = TLBSTATE_OK; | ||
40 | BUG_ON(per_cpu(cpu_tlbstate, cpu).active_mm != next); | ||
41 | |||
42 | if (!cpu_test_and_set(cpu, next->cpu_vm_mask)) { | ||
43 | /* We were in lazy tlb mode and leave_mm disabled | ||
44 | * tlb flush IPI delivery. We must reload %cr3. | ||
45 | */ | ||
46 | load_cr3(next->pgd); | ||
47 | load_LDT_nolock(&next->context); | ||
48 | } | ||
49 | } | ||
50 | #endif | ||
51 | } | ||
52 | |||
53 | #define deactivate_mm(tsk, mm) \ | ||
54 | asm("movl %0,%%gs": :"r" (0)); | ||
55 | |||
56 | #endif /* _ASM_X86_MMU_CONTEXT_32_H */ | ||
diff --git a/arch/x86/include/asm/mmu_context_64.h b/arch/x86/include/asm/mmu_context_64.h new file mode 100644 index 000000000000..677d36e9540a --- /dev/null +++ b/arch/x86/include/asm/mmu_context_64.h | |||
@@ -0,0 +1,54 @@ | |||
1 | #ifndef _ASM_X86_MMU_CONTEXT_64_H | ||
2 | #define _ASM_X86_MMU_CONTEXT_64_H | ||
3 | |||
4 | #include <asm/pda.h> | ||
5 | |||
6 | static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) | ||
7 | { | ||
8 | #ifdef CONFIG_SMP | ||
9 | if (read_pda(mmu_state) == TLBSTATE_OK) | ||
10 | write_pda(mmu_state, TLBSTATE_LAZY); | ||
11 | #endif | ||
12 | } | ||
13 | |||
14 | static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, | ||
15 | struct task_struct *tsk) | ||
16 | { | ||
17 | unsigned cpu = smp_processor_id(); | ||
18 | if (likely(prev != next)) { | ||
19 | /* stop flush ipis for the previous mm */ | ||
20 | cpu_clear(cpu, prev->cpu_vm_mask); | ||
21 | #ifdef CONFIG_SMP | ||
22 | write_pda(mmu_state, TLBSTATE_OK); | ||
23 | write_pda(active_mm, next); | ||
24 | #endif | ||
25 | cpu_set(cpu, next->cpu_vm_mask); | ||
26 | load_cr3(next->pgd); | ||
27 | |||
28 | if (unlikely(next->context.ldt != prev->context.ldt)) | ||
29 | load_LDT_nolock(&next->context); | ||
30 | } | ||
31 | #ifdef CONFIG_SMP | ||
32 | else { | ||
33 | write_pda(mmu_state, TLBSTATE_OK); | ||
34 | if (read_pda(active_mm) != next) | ||
35 | BUG(); | ||
36 | if (!cpu_test_and_set(cpu, next->cpu_vm_mask)) { | ||
37 | /* We were in lazy tlb mode and leave_mm disabled | ||
38 | * tlb flush IPI delivery. We must reload CR3 | ||
39 | * to make sure to use no freed page tables. | ||
40 | */ | ||
41 | load_cr3(next->pgd); | ||
42 | load_LDT_nolock(&next->context); | ||
43 | } | ||
44 | } | ||
45 | #endif | ||
46 | } | ||
47 | |||
48 | #define deactivate_mm(tsk, mm) \ | ||
49 | do { \ | ||
50 | load_gs_index(0); \ | ||
51 | asm volatile("movl %0,%%fs"::"r"(0)); \ | ||
52 | } while (0) | ||
53 | |||
54 | #endif /* _ASM_X86_MMU_CONTEXT_64_H */ | ||
diff --git a/arch/x86/include/asm/mmx.h b/arch/x86/include/asm/mmx.h new file mode 100644 index 000000000000..5cbf3135b971 --- /dev/null +++ b/arch/x86/include/asm/mmx.h | |||
@@ -0,0 +1,14 @@ | |||
1 | #ifndef _ASM_X86_MMX_H | ||
2 | #define _ASM_X86_MMX_H | ||
3 | |||
4 | /* | ||
5 | * MMX 3Dnow! helper operations | ||
6 | */ | ||
7 | |||
8 | #include <linux/types.h> | ||
9 | |||
10 | extern void *_mmx_memcpy(void *to, const void *from, size_t size); | ||
11 | extern void mmx_clear_page(void *page); | ||
12 | extern void mmx_copy_page(void *to, void *from); | ||
13 | |||
14 | #endif /* _ASM_X86_MMX_H */ | ||
diff --git a/arch/x86/include/asm/mmzone.h b/arch/x86/include/asm/mmzone.h new file mode 100644 index 000000000000..64217ea16a36 --- /dev/null +++ b/arch/x86/include/asm/mmzone.h | |||
@@ -0,0 +1,5 @@ | |||
1 | #ifdef CONFIG_X86_32 | ||
2 | # include "mmzone_32.h" | ||
3 | #else | ||
4 | # include "mmzone_64.h" | ||
5 | #endif | ||
diff --git a/arch/x86/include/asm/mmzone_32.h b/arch/x86/include/asm/mmzone_32.h new file mode 100644 index 000000000000..485bdf059ffb --- /dev/null +++ b/arch/x86/include/asm/mmzone_32.h | |||
@@ -0,0 +1,134 @@ | |||
1 | /* | ||
2 | * Written by Pat Gaughen (gone@us.ibm.com) Mar 2002 | ||
3 | * | ||
4 | */ | ||
5 | |||
6 | #ifndef _ASM_X86_MMZONE_32_H | ||
7 | #define _ASM_X86_MMZONE_32_H | ||
8 | |||
9 | #include <asm/smp.h> | ||
10 | |||
11 | #ifdef CONFIG_NUMA | ||
12 | extern struct pglist_data *node_data[]; | ||
13 | #define NODE_DATA(nid) (node_data[nid]) | ||
14 | |||
15 | #include <asm/numaq.h> | ||
16 | /* summit or generic arch */ | ||
17 | #include <asm/srat.h> | ||
18 | |||
19 | extern int get_memcfg_numa_flat(void); | ||
20 | /* | ||
21 | * This allows any one NUMA architecture to be compiled | ||
22 | * for, and still fall back to the flat function if it | ||
23 | * fails. | ||
24 | */ | ||
25 | static inline void get_memcfg_numa(void) | ||
26 | { | ||
27 | |||
28 | if (get_memcfg_numaq()) | ||
29 | return; | ||
30 | if (get_memcfg_from_srat()) | ||
31 | return; | ||
32 | get_memcfg_numa_flat(); | ||
33 | } | ||
34 | |||
35 | extern int early_pfn_to_nid(unsigned long pfn); | ||
36 | |||
37 | #else /* !CONFIG_NUMA */ | ||
38 | |||
39 | #define get_memcfg_numa get_memcfg_numa_flat | ||
40 | |||
41 | #endif /* CONFIG_NUMA */ | ||
42 | |||
43 | #ifdef CONFIG_DISCONTIGMEM | ||
44 | |||
45 | /* | ||
46 | * generic node memory support, the following assumptions apply: | ||
47 | * | ||
48 | * 1) memory comes in 64Mb contigious chunks which are either present or not | ||
49 | * 2) we will not have more than 64Gb in total | ||
50 | * | ||
51 | * for now assume that 64Gb is max amount of RAM for whole system | ||
52 | * 64Gb / 4096bytes/page = 16777216 pages | ||
53 | */ | ||
54 | #define MAX_NR_PAGES 16777216 | ||
55 | #define MAX_ELEMENTS 1024 | ||
56 | #define PAGES_PER_ELEMENT (MAX_NR_PAGES/MAX_ELEMENTS) | ||
57 | |||
58 | extern s8 physnode_map[]; | ||
59 | |||
60 | static inline int pfn_to_nid(unsigned long pfn) | ||
61 | { | ||
62 | #ifdef CONFIG_NUMA | ||
63 | return((int) physnode_map[(pfn) / PAGES_PER_ELEMENT]); | ||
64 | #else | ||
65 | return 0; | ||
66 | #endif | ||
67 | } | ||
68 | |||
69 | /* | ||
70 | * Following are macros that each numa implmentation must define. | ||
71 | */ | ||
72 | |||
73 | #define node_start_pfn(nid) (NODE_DATA(nid)->node_start_pfn) | ||
74 | #define node_end_pfn(nid) \ | ||
75 | ({ \ | ||
76 | pg_data_t *__pgdat = NODE_DATA(nid); \ | ||
77 | __pgdat->node_start_pfn + __pgdat->node_spanned_pages; \ | ||
78 | }) | ||
79 | |||
80 | static inline int pfn_valid(int pfn) | ||
81 | { | ||
82 | int nid = pfn_to_nid(pfn); | ||
83 | |||
84 | if (nid >= 0) | ||
85 | return (pfn < node_end_pfn(nid)); | ||
86 | return 0; | ||
87 | } | ||
88 | |||
89 | #endif /* CONFIG_DISCONTIGMEM */ | ||
90 | |||
91 | #ifdef CONFIG_NEED_MULTIPLE_NODES | ||
92 | |||
93 | /* | ||
94 | * Following are macros that are specific to this numa platform. | ||
95 | */ | ||
96 | #define reserve_bootmem(addr, size, flags) \ | ||
97 | reserve_bootmem_node(NODE_DATA(0), (addr), (size), (flags)) | ||
98 | #define alloc_bootmem(x) \ | ||
99 | __alloc_bootmem_node(NODE_DATA(0), (x), SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS)) | ||
100 | #define alloc_bootmem_nopanic(x) \ | ||
101 | __alloc_bootmem_node_nopanic(NODE_DATA(0), (x), SMP_CACHE_BYTES, \ | ||
102 | __pa(MAX_DMA_ADDRESS)) | ||
103 | #define alloc_bootmem_low(x) \ | ||
104 | __alloc_bootmem_node(NODE_DATA(0), (x), SMP_CACHE_BYTES, 0) | ||
105 | #define alloc_bootmem_pages(x) \ | ||
106 | __alloc_bootmem_node(NODE_DATA(0), (x), PAGE_SIZE, __pa(MAX_DMA_ADDRESS)) | ||
107 | #define alloc_bootmem_pages_nopanic(x) \ | ||
108 | __alloc_bootmem_node_nopanic(NODE_DATA(0), (x), PAGE_SIZE, \ | ||
109 | __pa(MAX_DMA_ADDRESS)) | ||
110 | #define alloc_bootmem_low_pages(x) \ | ||
111 | __alloc_bootmem_node(NODE_DATA(0), (x), PAGE_SIZE, 0) | ||
112 | #define alloc_bootmem_node(pgdat, x) \ | ||
113 | ({ \ | ||
114 | struct pglist_data __maybe_unused \ | ||
115 | *__alloc_bootmem_node__pgdat = (pgdat); \ | ||
116 | __alloc_bootmem_node(NODE_DATA(0), (x), SMP_CACHE_BYTES, \ | ||
117 | __pa(MAX_DMA_ADDRESS)); \ | ||
118 | }) | ||
119 | #define alloc_bootmem_pages_node(pgdat, x) \ | ||
120 | ({ \ | ||
121 | struct pglist_data __maybe_unused \ | ||
122 | *__alloc_bootmem_node__pgdat = (pgdat); \ | ||
123 | __alloc_bootmem_node(NODE_DATA(0), (x), PAGE_SIZE, \ | ||
124 | __pa(MAX_DMA_ADDRESS)); \ | ||
125 | }) | ||
126 | #define alloc_bootmem_low_pages_node(pgdat, x) \ | ||
127 | ({ \ | ||
128 | struct pglist_data __maybe_unused \ | ||
129 | *__alloc_bootmem_node__pgdat = (pgdat); \ | ||
130 | __alloc_bootmem_node(NODE_DATA(0), (x), PAGE_SIZE, 0); \ | ||
131 | }) | ||
132 | #endif /* CONFIG_NEED_MULTIPLE_NODES */ | ||
133 | |||
134 | #endif /* _ASM_X86_MMZONE_32_H */ | ||
diff --git a/arch/x86/include/asm/mmzone_64.h b/arch/x86/include/asm/mmzone_64.h new file mode 100644 index 000000000000..a5b3817d4b9e --- /dev/null +++ b/arch/x86/include/asm/mmzone_64.h | |||
@@ -0,0 +1,51 @@ | |||
1 | /* K8 NUMA support */ | ||
2 | /* Copyright 2002,2003 by Andi Kleen, SuSE Labs */ | ||
3 | /* 2.5 Version loosely based on the NUMAQ Code by Pat Gaughen. */ | ||
4 | #ifndef _ASM_X86_MMZONE_64_H | ||
5 | #define _ASM_X86_MMZONE_64_H | ||
6 | |||
7 | |||
8 | #ifdef CONFIG_NUMA | ||
9 | |||
10 | #include <linux/mmdebug.h> | ||
11 | |||
12 | #include <asm/smp.h> | ||
13 | |||
14 | /* Simple perfect hash to map physical addresses to node numbers */ | ||
15 | struct memnode { | ||
16 | int shift; | ||
17 | unsigned int mapsize; | ||
18 | s16 *map; | ||
19 | s16 embedded_map[64 - 8]; | ||
20 | } ____cacheline_aligned; /* total size = 128 bytes */ | ||
21 | extern struct memnode memnode; | ||
22 | #define memnode_shift memnode.shift | ||
23 | #define memnodemap memnode.map | ||
24 | #define memnodemapsize memnode.mapsize | ||
25 | |||
26 | extern struct pglist_data *node_data[]; | ||
27 | |||
28 | static inline __attribute__((pure)) int phys_to_nid(unsigned long addr) | ||
29 | { | ||
30 | unsigned nid; | ||
31 | VIRTUAL_BUG_ON(!memnodemap); | ||
32 | nid = memnodemap[addr >> memnode_shift]; | ||
33 | VIRTUAL_BUG_ON(nid >= MAX_NUMNODES || !node_data[nid]); | ||
34 | return nid; | ||
35 | } | ||
36 | |||
37 | #define NODE_DATA(nid) (node_data[nid]) | ||
38 | |||
39 | #define node_start_pfn(nid) (NODE_DATA(nid)->node_start_pfn) | ||
40 | #define node_end_pfn(nid) (NODE_DATA(nid)->node_start_pfn + \ | ||
41 | NODE_DATA(nid)->node_spanned_pages) | ||
42 | |||
43 | extern int early_pfn_to_nid(unsigned long pfn); | ||
44 | |||
45 | #ifdef CONFIG_NUMA_EMU | ||
46 | #define FAKE_NODE_MIN_SIZE (64 * 1024 * 1024) | ||
47 | #define FAKE_NODE_MIN_HASH_MASK (~(FAKE_NODE_MIN_SIZE - 1UL)) | ||
48 | #endif | ||
49 | |||
50 | #endif | ||
51 | #endif /* _ASM_X86_MMZONE_64_H */ | ||
diff --git a/arch/x86/include/asm/module.h b/arch/x86/include/asm/module.h new file mode 100644 index 000000000000..47d62743c4d5 --- /dev/null +++ b/arch/x86/include/asm/module.h | |||
@@ -0,0 +1,80 @@ | |||
1 | #ifndef _ASM_X86_MODULE_H | ||
2 | #define _ASM_X86_MODULE_H | ||
3 | |||
4 | /* x86_32/64 are simple */ | ||
5 | struct mod_arch_specific {}; | ||
6 | |||
7 | #ifdef CONFIG_X86_32 | ||
8 | # define Elf_Shdr Elf32_Shdr | ||
9 | # define Elf_Sym Elf32_Sym | ||
10 | # define Elf_Ehdr Elf32_Ehdr | ||
11 | #else | ||
12 | # define Elf_Shdr Elf64_Shdr | ||
13 | # define Elf_Sym Elf64_Sym | ||
14 | # define Elf_Ehdr Elf64_Ehdr | ||
15 | #endif | ||
16 | |||
17 | #ifdef CONFIG_X86_64 | ||
18 | /* X86_64 does not define MODULE_PROC_FAMILY */ | ||
19 | #elif defined CONFIG_M386 | ||
20 | #define MODULE_PROC_FAMILY "386 " | ||
21 | #elif defined CONFIG_M486 | ||
22 | #define MODULE_PROC_FAMILY "486 " | ||
23 | #elif defined CONFIG_M586 | ||
24 | #define MODULE_PROC_FAMILY "586 " | ||
25 | #elif defined CONFIG_M586TSC | ||
26 | #define MODULE_PROC_FAMILY "586TSC " | ||
27 | #elif defined CONFIG_M586MMX | ||
28 | #define MODULE_PROC_FAMILY "586MMX " | ||
29 | #elif defined CONFIG_MCORE2 | ||
30 | #define MODULE_PROC_FAMILY "CORE2 " | ||
31 | #elif defined CONFIG_M686 | ||
32 | #define MODULE_PROC_FAMILY "686 " | ||
33 | #elif defined CONFIG_MPENTIUMII | ||
34 | #define MODULE_PROC_FAMILY "PENTIUMII " | ||
35 | #elif defined CONFIG_MPENTIUMIII | ||
36 | #define MODULE_PROC_FAMILY "PENTIUMIII " | ||
37 | #elif defined CONFIG_MPENTIUMM | ||
38 | #define MODULE_PROC_FAMILY "PENTIUMM " | ||
39 | #elif defined CONFIG_MPENTIUM4 | ||
40 | #define MODULE_PROC_FAMILY "PENTIUM4 " | ||
41 | #elif defined CONFIG_MK6 | ||
42 | #define MODULE_PROC_FAMILY "K6 " | ||
43 | #elif defined CONFIG_MK7 | ||
44 | #define MODULE_PROC_FAMILY "K7 " | ||
45 | #elif defined CONFIG_MK8 | ||
46 | #define MODULE_PROC_FAMILY "K8 " | ||
47 | #elif defined CONFIG_X86_ELAN | ||
48 | #define MODULE_PROC_FAMILY "ELAN " | ||
49 | #elif defined CONFIG_MCRUSOE | ||
50 | #define MODULE_PROC_FAMILY "CRUSOE " | ||
51 | #elif defined CONFIG_MEFFICEON | ||
52 | #define MODULE_PROC_FAMILY "EFFICEON " | ||
53 | #elif defined CONFIG_MWINCHIPC6 | ||
54 | #define MODULE_PROC_FAMILY "WINCHIPC6 " | ||
55 | #elif defined CONFIG_MWINCHIP3D | ||
56 | #define MODULE_PROC_FAMILY "WINCHIP3D " | ||
57 | #elif defined CONFIG_MCYRIXIII | ||
58 | #define MODULE_PROC_FAMILY "CYRIXIII " | ||
59 | #elif defined CONFIG_MVIAC3_2 | ||
60 | #define MODULE_PROC_FAMILY "VIAC3-2 " | ||
61 | #elif defined CONFIG_MVIAC7 | ||
62 | #define MODULE_PROC_FAMILY "VIAC7 " | ||
63 | #elif defined CONFIG_MGEODEGX1 | ||
64 | #define MODULE_PROC_FAMILY "GEODEGX1 " | ||
65 | #elif defined CONFIG_MGEODE_LX | ||
66 | #define MODULE_PROC_FAMILY "GEODE " | ||
67 | #else | ||
68 | #error unknown processor family | ||
69 | #endif | ||
70 | |||
71 | #ifdef CONFIG_X86_32 | ||
72 | # ifdef CONFIG_4KSTACKS | ||
73 | # define MODULE_STACKSIZE "4KSTACKS " | ||
74 | # else | ||
75 | # define MODULE_STACKSIZE "" | ||
76 | # endif | ||
77 | # define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY MODULE_STACKSIZE | ||
78 | #endif | ||
79 | |||
80 | #endif /* _ASM_X86_MODULE_H */ | ||
diff --git a/arch/x86/include/asm/mpspec.h b/arch/x86/include/asm/mpspec.h new file mode 100644 index 000000000000..91885c28f66b --- /dev/null +++ b/arch/x86/include/asm/mpspec.h | |||
@@ -0,0 +1,145 @@ | |||
1 | #ifndef _ASM_X86_MPSPEC_H | ||
2 | #define _ASM_X86_MPSPEC_H | ||
3 | |||
4 | #include <linux/init.h> | ||
5 | |||
6 | #include <asm/mpspec_def.h> | ||
7 | |||
8 | extern int apic_version[MAX_APICS]; | ||
9 | |||
10 | #ifdef CONFIG_X86_32 | ||
11 | #include <mach_mpspec.h> | ||
12 | |||
13 | extern unsigned int def_to_bigsmp; | ||
14 | extern u8 apicid_2_node[]; | ||
15 | extern int pic_mode; | ||
16 | |||
17 | #ifdef CONFIG_X86_NUMAQ | ||
18 | extern int mp_bus_id_to_node[MAX_MP_BUSSES]; | ||
19 | extern int mp_bus_id_to_local[MAX_MP_BUSSES]; | ||
20 | extern int quad_local_to_mp_bus_id [NR_CPUS/4][4]; | ||
21 | #endif | ||
22 | |||
23 | #define MAX_APICID 256 | ||
24 | |||
25 | #else | ||
26 | |||
27 | #define MAX_MP_BUSSES 256 | ||
28 | /* Each PCI slot may be a combo card with its own bus. 4 IRQ pins per slot. */ | ||
29 | #define MAX_IRQ_SOURCES (MAX_MP_BUSSES * 4) | ||
30 | |||
31 | #endif | ||
32 | |||
33 | extern void early_find_smp_config(void); | ||
34 | extern void early_get_smp_config(void); | ||
35 | |||
36 | #if defined(CONFIG_MCA) || defined(CONFIG_EISA) | ||
37 | extern int mp_bus_id_to_type[MAX_MP_BUSSES]; | ||
38 | #endif | ||
39 | |||
40 | extern DECLARE_BITMAP(mp_bus_not_pci, MAX_MP_BUSSES); | ||
41 | |||
42 | extern unsigned int boot_cpu_physical_apicid; | ||
43 | extern unsigned int max_physical_apicid; | ||
44 | extern int smp_found_config; | ||
45 | extern int mpc_default_type; | ||
46 | extern unsigned long mp_lapic_addr; | ||
47 | |||
48 | extern void find_smp_config(void); | ||
49 | extern void get_smp_config(void); | ||
50 | #ifdef CONFIG_X86_MPPARSE | ||
51 | extern void early_reserve_e820_mpc_new(void); | ||
52 | #else | ||
53 | static inline void early_reserve_e820_mpc_new(void) { } | ||
54 | #endif | ||
55 | |||
56 | void __cpuinit generic_processor_info(int apicid, int version); | ||
57 | #ifdef CONFIG_ACPI | ||
58 | extern void mp_register_ioapic(int id, u32 address, u32 gsi_base); | ||
59 | extern void mp_override_legacy_irq(u8 bus_irq, u8 polarity, u8 trigger, | ||
60 | u32 gsi); | ||
61 | extern void mp_config_acpi_legacy_irqs(void); | ||
62 | extern int mp_register_gsi(u32 gsi, int edge_level, int active_high_low); | ||
63 | #ifdef CONFIG_X86_IO_APIC | ||
64 | extern int mp_config_acpi_gsi(unsigned char number, unsigned int devfn, u8 pin, | ||
65 | u32 gsi, int triggering, int polarity); | ||
66 | #else | ||
67 | static inline int | ||
68 | mp_config_acpi_gsi(unsigned char number, unsigned int devfn, u8 pin, | ||
69 | u32 gsi, int triggering, int polarity) | ||
70 | { | ||
71 | return 0; | ||
72 | } | ||
73 | #endif | ||
74 | #endif /* CONFIG_ACPI */ | ||
75 | |||
76 | #define PHYSID_ARRAY_SIZE BITS_TO_LONGS(MAX_APICS) | ||
77 | |||
78 | struct physid_mask { | ||
79 | unsigned long mask[PHYSID_ARRAY_SIZE]; | ||
80 | }; | ||
81 | |||
82 | typedef struct physid_mask physid_mask_t; | ||
83 | |||
84 | #define physid_set(physid, map) set_bit(physid, (map).mask) | ||
85 | #define physid_clear(physid, map) clear_bit(physid, (map).mask) | ||
86 | #define physid_isset(physid, map) test_bit(physid, (map).mask) | ||
87 | #define physid_test_and_set(physid, map) \ | ||
88 | test_and_set_bit(physid, (map).mask) | ||
89 | |||
90 | #define physids_and(dst, src1, src2) \ | ||
91 | bitmap_and((dst).mask, (src1).mask, (src2).mask, MAX_APICS) | ||
92 | |||
93 | #define physids_or(dst, src1, src2) \ | ||
94 | bitmap_or((dst).mask, (src1).mask, (src2).mask, MAX_APICS) | ||
95 | |||
96 | #define physids_clear(map) \ | ||
97 | bitmap_zero((map).mask, MAX_APICS) | ||
98 | |||
99 | #define physids_complement(dst, src) \ | ||
100 | bitmap_complement((dst).mask, (src).mask, MAX_APICS) | ||
101 | |||
102 | #define physids_empty(map) \ | ||
103 | bitmap_empty((map).mask, MAX_APICS) | ||
104 | |||
105 | #define physids_equal(map1, map2) \ | ||
106 | bitmap_equal((map1).mask, (map2).mask, MAX_APICS) | ||
107 | |||
108 | #define physids_weight(map) \ | ||
109 | bitmap_weight((map).mask, MAX_APICS) | ||
110 | |||
111 | #define physids_shift_right(d, s, n) \ | ||
112 | bitmap_shift_right((d).mask, (s).mask, n, MAX_APICS) | ||
113 | |||
114 | #define physids_shift_left(d, s, n) \ | ||
115 | bitmap_shift_left((d).mask, (s).mask, n, MAX_APICS) | ||
116 | |||
117 | #define physids_coerce(map) ((map).mask[0]) | ||
118 | |||
119 | #define physids_promote(physids) \ | ||
120 | ({ \ | ||
121 | physid_mask_t __physid_mask = PHYSID_MASK_NONE; \ | ||
122 | __physid_mask.mask[0] = physids; \ | ||
123 | __physid_mask; \ | ||
124 | }) | ||
125 | |||
126 | /* Note: will create very large stack frames if physid_mask_t is big */ | ||
127 | #define physid_mask_of_physid(physid) \ | ||
128 | ({ \ | ||
129 | physid_mask_t __physid_mask = PHYSID_MASK_NONE; \ | ||
130 | physid_set(physid, __physid_mask); \ | ||
131 | __physid_mask; \ | ||
132 | }) | ||
133 | |||
134 | static inline void physid_set_mask_of_physid(int physid, physid_mask_t *map) | ||
135 | { | ||
136 | physids_clear(*map); | ||
137 | physid_set(physid, *map); | ||
138 | } | ||
139 | |||
140 | #define PHYSID_MASK_ALL { {[0 ... PHYSID_ARRAY_SIZE-1] = ~0UL} } | ||
141 | #define PHYSID_MASK_NONE { {[0 ... PHYSID_ARRAY_SIZE-1] = 0UL} } | ||
142 | |||
143 | extern physid_mask_t phys_cpu_present_map; | ||
144 | |||
145 | #endif /* _ASM_X86_MPSPEC_H */ | ||
diff --git a/arch/x86/include/asm/mpspec_def.h b/arch/x86/include/asm/mpspec_def.h new file mode 100644 index 000000000000..e3ace7d1d35d --- /dev/null +++ b/arch/x86/include/asm/mpspec_def.h | |||
@@ -0,0 +1,180 @@ | |||
1 | #ifndef _ASM_X86_MPSPEC_DEF_H | ||
2 | #define _ASM_X86_MPSPEC_DEF_H | ||
3 | |||
4 | /* | ||
5 | * Structure definitions for SMP machines following the | ||
6 | * Intel Multiprocessing Specification 1.1 and 1.4. | ||
7 | */ | ||
8 | |||
9 | /* | ||
10 | * This tag identifies where the SMP configuration | ||
11 | * information is. | ||
12 | */ | ||
13 | |||
14 | #define SMP_MAGIC_IDENT (('_'<<24) | ('P'<<16) | ('M'<<8) | '_') | ||
15 | |||
16 | #ifdef CONFIG_X86_32 | ||
17 | # define MAX_MPC_ENTRY 1024 | ||
18 | # define MAX_APICS 256 | ||
19 | #else | ||
20 | # if NR_CPUS <= 255 | ||
21 | # define MAX_APICS 255 | ||
22 | # else | ||
23 | # define MAX_APICS 32768 | ||
24 | # endif | ||
25 | #endif | ||
26 | |||
27 | struct intel_mp_floating { | ||
28 | char mpf_signature[4]; /* "_MP_" */ | ||
29 | unsigned int mpf_physptr; /* Configuration table address */ | ||
30 | unsigned char mpf_length; /* Our length (paragraphs) */ | ||
31 | unsigned char mpf_specification;/* Specification version */ | ||
32 | unsigned char mpf_checksum; /* Checksum (makes sum 0) */ | ||
33 | unsigned char mpf_feature1; /* Standard or configuration ? */ | ||
34 | unsigned char mpf_feature2; /* Bit7 set for IMCR|PIC */ | ||
35 | unsigned char mpf_feature3; /* Unused (0) */ | ||
36 | unsigned char mpf_feature4; /* Unused (0) */ | ||
37 | unsigned char mpf_feature5; /* Unused (0) */ | ||
38 | }; | ||
39 | |||
40 | #define MPC_SIGNATURE "PCMP" | ||
41 | |||
42 | struct mp_config_table { | ||
43 | char mpc_signature[4]; | ||
44 | unsigned short mpc_length; /* Size of table */ | ||
45 | char mpc_spec; /* 0x01 */ | ||
46 | char mpc_checksum; | ||
47 | char mpc_oem[8]; | ||
48 | char mpc_productid[12]; | ||
49 | unsigned int mpc_oemptr; /* 0 if not present */ | ||
50 | unsigned short mpc_oemsize; /* 0 if not present */ | ||
51 | unsigned short mpc_oemcount; | ||
52 | unsigned int mpc_lapic; /* APIC address */ | ||
53 | unsigned int reserved; | ||
54 | }; | ||
55 | |||
56 | /* Followed by entries */ | ||
57 | |||
58 | #define MP_PROCESSOR 0 | ||
59 | #define MP_BUS 1 | ||
60 | #define MP_IOAPIC 2 | ||
61 | #define MP_INTSRC 3 | ||
62 | #define MP_LINTSRC 4 | ||
63 | /* Used by IBM NUMA-Q to describe node locality */ | ||
64 | #define MP_TRANSLATION 192 | ||
65 | |||
66 | #define CPU_ENABLED 1 /* Processor is available */ | ||
67 | #define CPU_BOOTPROCESSOR 2 /* Processor is the BP */ | ||
68 | |||
69 | #define CPU_STEPPING_MASK 0x000F | ||
70 | #define CPU_MODEL_MASK 0x00F0 | ||
71 | #define CPU_FAMILY_MASK 0x0F00 | ||
72 | |||
73 | struct mpc_config_processor { | ||
74 | unsigned char mpc_type; | ||
75 | unsigned char mpc_apicid; /* Local APIC number */ | ||
76 | unsigned char mpc_apicver; /* Its versions */ | ||
77 | unsigned char mpc_cpuflag; | ||
78 | unsigned int mpc_cpufeature; | ||
79 | unsigned int mpc_featureflag; /* CPUID feature value */ | ||
80 | unsigned int mpc_reserved[2]; | ||
81 | }; | ||
82 | |||
83 | struct mpc_config_bus { | ||
84 | unsigned char mpc_type; | ||
85 | unsigned char mpc_busid; | ||
86 | unsigned char mpc_bustype[6]; | ||
87 | }; | ||
88 | |||
89 | /* List of Bus Type string values, Intel MP Spec. */ | ||
90 | #define BUSTYPE_EISA "EISA" | ||
91 | #define BUSTYPE_ISA "ISA" | ||
92 | #define BUSTYPE_INTERN "INTERN" /* Internal BUS */ | ||
93 | #define BUSTYPE_MCA "MCA" | ||
94 | #define BUSTYPE_VL "VL" /* Local bus */ | ||
95 | #define BUSTYPE_PCI "PCI" | ||
96 | #define BUSTYPE_PCMCIA "PCMCIA" | ||
97 | #define BUSTYPE_CBUS "CBUS" | ||
98 | #define BUSTYPE_CBUSII "CBUSII" | ||
99 | #define BUSTYPE_FUTURE "FUTURE" | ||
100 | #define BUSTYPE_MBI "MBI" | ||
101 | #define BUSTYPE_MBII "MBII" | ||
102 | #define BUSTYPE_MPI "MPI" | ||
103 | #define BUSTYPE_MPSA "MPSA" | ||
104 | #define BUSTYPE_NUBUS "NUBUS" | ||
105 | #define BUSTYPE_TC "TC" | ||
106 | #define BUSTYPE_VME "VME" | ||
107 | #define BUSTYPE_XPRESS "XPRESS" | ||
108 | |||
109 | #define MPC_APIC_USABLE 0x01 | ||
110 | |||
111 | struct mpc_config_ioapic { | ||
112 | unsigned char mpc_type; | ||
113 | unsigned char mpc_apicid; | ||
114 | unsigned char mpc_apicver; | ||
115 | unsigned char mpc_flags; | ||
116 | unsigned int mpc_apicaddr; | ||
117 | }; | ||
118 | |||
119 | struct mpc_config_intsrc { | ||
120 | unsigned char mpc_type; | ||
121 | unsigned char mpc_irqtype; | ||
122 | unsigned short mpc_irqflag; | ||
123 | unsigned char mpc_srcbus; | ||
124 | unsigned char mpc_srcbusirq; | ||
125 | unsigned char mpc_dstapic; | ||
126 | unsigned char mpc_dstirq; | ||
127 | }; | ||
128 | |||
129 | enum mp_irq_source_types { | ||
130 | mp_INT = 0, | ||
131 | mp_NMI = 1, | ||
132 | mp_SMI = 2, | ||
133 | mp_ExtINT = 3 | ||
134 | }; | ||
135 | |||
136 | #define MP_IRQDIR_DEFAULT 0 | ||
137 | #define MP_IRQDIR_HIGH 1 | ||
138 | #define MP_IRQDIR_LOW 3 | ||
139 | |||
140 | #define MP_APIC_ALL 0xFF | ||
141 | |||
142 | struct mpc_config_lintsrc { | ||
143 | unsigned char mpc_type; | ||
144 | unsigned char mpc_irqtype; | ||
145 | unsigned short mpc_irqflag; | ||
146 | unsigned char mpc_srcbusid; | ||
147 | unsigned char mpc_srcbusirq; | ||
148 | unsigned char mpc_destapic; | ||
149 | unsigned char mpc_destapiclint; | ||
150 | }; | ||
151 | |||
152 | #define MPC_OEM_SIGNATURE "_OEM" | ||
153 | |||
154 | struct mp_config_oemtable { | ||
155 | char oem_signature[4]; | ||
156 | unsigned short oem_length; /* Size of table */ | ||
157 | char oem_rev; /* 0x01 */ | ||
158 | char oem_checksum; | ||
159 | char mpc_oem[8]; | ||
160 | }; | ||
161 | |||
162 | /* | ||
163 | * Default configurations | ||
164 | * | ||
165 | * 1 2 CPU ISA 82489DX | ||
166 | * 2 2 CPU EISA 82489DX neither IRQ 0 timer nor IRQ 13 DMA chaining | ||
167 | * 3 2 CPU EISA 82489DX | ||
168 | * 4 2 CPU MCA 82489DX | ||
169 | * 5 2 CPU ISA+PCI | ||
170 | * 6 2 CPU EISA+PCI | ||
171 | * 7 2 CPU MCA+PCI | ||
172 | */ | ||
173 | |||
174 | enum mp_bustype { | ||
175 | MP_BUS_ISA = 1, | ||
176 | MP_BUS_EISA, | ||
177 | MP_BUS_PCI, | ||
178 | MP_BUS_MCA, | ||
179 | }; | ||
180 | #endif /* _ASM_X86_MPSPEC_DEF_H */ | ||
diff --git a/arch/x86/include/asm/msgbuf.h b/arch/x86/include/asm/msgbuf.h new file mode 100644 index 000000000000..7e4e9481f51c --- /dev/null +++ b/arch/x86/include/asm/msgbuf.h | |||
@@ -0,0 +1,39 @@ | |||
1 | #ifndef _ASM_X86_MSGBUF_H | ||
2 | #define _ASM_X86_MSGBUF_H | ||
3 | |||
4 | /* | ||
5 | * The msqid64_ds structure for i386 architecture. | ||
6 | * Note extra padding because this structure is passed back and forth | ||
7 | * between kernel and user space. | ||
8 | * | ||
9 | * Pad space on i386 is left for: | ||
10 | * - 64-bit time_t to solve y2038 problem | ||
11 | * - 2 miscellaneous 32-bit values | ||
12 | * | ||
13 | * Pad space on x8664 is left for: | ||
14 | * - 2 miscellaneous 64-bit values | ||
15 | */ | ||
16 | struct msqid64_ds { | ||
17 | struct ipc64_perm msg_perm; | ||
18 | __kernel_time_t msg_stime; /* last msgsnd time */ | ||
19 | #ifdef __i386__ | ||
20 | unsigned long __unused1; | ||
21 | #endif | ||
22 | __kernel_time_t msg_rtime; /* last msgrcv time */ | ||
23 | #ifdef __i386__ | ||
24 | unsigned long __unused2; | ||
25 | #endif | ||
26 | __kernel_time_t msg_ctime; /* last change time */ | ||
27 | #ifdef __i386__ | ||
28 | unsigned long __unused3; | ||
29 | #endif | ||
30 | unsigned long msg_cbytes; /* current number of bytes on queue */ | ||
31 | unsigned long msg_qnum; /* number of messages in queue */ | ||
32 | unsigned long msg_qbytes; /* max number of bytes on queue */ | ||
33 | __kernel_pid_t msg_lspid; /* pid of last msgsnd */ | ||
34 | __kernel_pid_t msg_lrpid; /* last receive pid */ | ||
35 | unsigned long __unused4; | ||
36 | unsigned long __unused5; | ||
37 | }; | ||
38 | |||
39 | #endif /* _ASM_X86_MSGBUF_H */ | ||
diff --git a/arch/x86/include/asm/msidef.h b/arch/x86/include/asm/msidef.h new file mode 100644 index 000000000000..6706b3006f13 --- /dev/null +++ b/arch/x86/include/asm/msidef.h | |||
@@ -0,0 +1,55 @@ | |||
1 | #ifndef _ASM_X86_MSIDEF_H | ||
2 | #define _ASM_X86_MSIDEF_H | ||
3 | |||
4 | /* | ||
5 | * Constants for Intel APIC based MSI messages. | ||
6 | */ | ||
7 | |||
8 | /* | ||
9 | * Shifts for MSI data | ||
10 | */ | ||
11 | |||
12 | #define MSI_DATA_VECTOR_SHIFT 0 | ||
13 | #define MSI_DATA_VECTOR_MASK 0x000000ff | ||
14 | #define MSI_DATA_VECTOR(v) (((v) << MSI_DATA_VECTOR_SHIFT) & \ | ||
15 | MSI_DATA_VECTOR_MASK) | ||
16 | |||
17 | #define MSI_DATA_DELIVERY_MODE_SHIFT 8 | ||
18 | #define MSI_DATA_DELIVERY_FIXED (0 << MSI_DATA_DELIVERY_MODE_SHIFT) | ||
19 | #define MSI_DATA_DELIVERY_LOWPRI (1 << MSI_DATA_DELIVERY_MODE_SHIFT) | ||
20 | |||
21 | #define MSI_DATA_LEVEL_SHIFT 14 | ||
22 | #define MSI_DATA_LEVEL_DEASSERT (0 << MSI_DATA_LEVEL_SHIFT) | ||
23 | #define MSI_DATA_LEVEL_ASSERT (1 << MSI_DATA_LEVEL_SHIFT) | ||
24 | |||
25 | #define MSI_DATA_TRIGGER_SHIFT 15 | ||
26 | #define MSI_DATA_TRIGGER_EDGE (0 << MSI_DATA_TRIGGER_SHIFT) | ||
27 | #define MSI_DATA_TRIGGER_LEVEL (1 << MSI_DATA_TRIGGER_SHIFT) | ||
28 | |||
29 | /* | ||
30 | * Shift/mask fields for msi address | ||
31 | */ | ||
32 | |||
33 | #define MSI_ADDR_BASE_HI 0 | ||
34 | #define MSI_ADDR_BASE_LO 0xfee00000 | ||
35 | |||
36 | #define MSI_ADDR_DEST_MODE_SHIFT 2 | ||
37 | #define MSI_ADDR_DEST_MODE_PHYSICAL (0 << MSI_ADDR_DEST_MODE_SHIFT) | ||
38 | #define MSI_ADDR_DEST_MODE_LOGICAL (1 << MSI_ADDR_DEST_MODE_SHIFT) | ||
39 | |||
40 | #define MSI_ADDR_REDIRECTION_SHIFT 3 | ||
41 | #define MSI_ADDR_REDIRECTION_CPU (0 << MSI_ADDR_REDIRECTION_SHIFT) | ||
42 | /* dedicated cpu */ | ||
43 | #define MSI_ADDR_REDIRECTION_LOWPRI (1 << MSI_ADDR_REDIRECTION_SHIFT) | ||
44 | /* lowest priority */ | ||
45 | |||
46 | #define MSI_ADDR_DEST_ID_SHIFT 12 | ||
47 | #define MSI_ADDR_DEST_ID_MASK 0x00ffff0 | ||
48 | #define MSI_ADDR_DEST_ID(dest) (((dest) << MSI_ADDR_DEST_ID_SHIFT) & \ | ||
49 | MSI_ADDR_DEST_ID_MASK) | ||
50 | |||
51 | #define MSI_ADDR_IR_EXT_INT (1 << 4) | ||
52 | #define MSI_ADDR_IR_SHV (1 << 3) | ||
53 | #define MSI_ADDR_IR_INDEX1(index) ((index & 0x8000) >> 13) | ||
54 | #define MSI_ADDR_IR_INDEX2(index) ((index & 0x7fff) << 5) | ||
55 | #endif /* _ASM_X86_MSIDEF_H */ | ||
diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h new file mode 100644 index 000000000000..e38859d577a1 --- /dev/null +++ b/arch/x86/include/asm/msr-index.h | |||
@@ -0,0 +1,332 @@ | |||
1 | #ifndef _ASM_X86_MSR_INDEX_H | ||
2 | #define _ASM_X86_MSR_INDEX_H | ||
3 | |||
4 | /* CPU model specific register (MSR) numbers */ | ||
5 | |||
6 | /* x86-64 specific MSRs */ | ||
7 | #define MSR_EFER 0xc0000080 /* extended feature register */ | ||
8 | #define MSR_STAR 0xc0000081 /* legacy mode SYSCALL target */ | ||
9 | #define MSR_LSTAR 0xc0000082 /* long mode SYSCALL target */ | ||
10 | #define MSR_CSTAR 0xc0000083 /* compat mode SYSCALL target */ | ||
11 | #define MSR_SYSCALL_MASK 0xc0000084 /* EFLAGS mask for syscall */ | ||
12 | #define MSR_FS_BASE 0xc0000100 /* 64bit FS base */ | ||
13 | #define MSR_GS_BASE 0xc0000101 /* 64bit GS base */ | ||
14 | #define MSR_KERNEL_GS_BASE 0xc0000102 /* SwapGS GS shadow */ | ||
15 | |||
16 | /* EFER bits: */ | ||
17 | #define _EFER_SCE 0 /* SYSCALL/SYSRET */ | ||
18 | #define _EFER_LME 8 /* Long mode enable */ | ||
19 | #define _EFER_LMA 10 /* Long mode active (read-only) */ | ||
20 | #define _EFER_NX 11 /* No execute enable */ | ||
21 | |||
22 | #define EFER_SCE (1<<_EFER_SCE) | ||
23 | #define EFER_LME (1<<_EFER_LME) | ||
24 | #define EFER_LMA (1<<_EFER_LMA) | ||
25 | #define EFER_NX (1<<_EFER_NX) | ||
26 | |||
27 | /* Intel MSRs. Some also available on other CPUs */ | ||
28 | #define MSR_IA32_PERFCTR0 0x000000c1 | ||
29 | #define MSR_IA32_PERFCTR1 0x000000c2 | ||
30 | #define MSR_FSB_FREQ 0x000000cd | ||
31 | |||
32 | #define MSR_MTRRcap 0x000000fe | ||
33 | #define MSR_IA32_BBL_CR_CTL 0x00000119 | ||
34 | |||
35 | #define MSR_IA32_SYSENTER_CS 0x00000174 | ||
36 | #define MSR_IA32_SYSENTER_ESP 0x00000175 | ||
37 | #define MSR_IA32_SYSENTER_EIP 0x00000176 | ||
38 | |||
39 | #define MSR_IA32_MCG_CAP 0x00000179 | ||
40 | #define MSR_IA32_MCG_STATUS 0x0000017a | ||
41 | #define MSR_IA32_MCG_CTL 0x0000017b | ||
42 | |||
43 | #define MSR_IA32_PEBS_ENABLE 0x000003f1 | ||
44 | #define MSR_IA32_DS_AREA 0x00000600 | ||
45 | #define MSR_IA32_PERF_CAPABILITIES 0x00000345 | ||
46 | |||
47 | #define MSR_MTRRfix64K_00000 0x00000250 | ||
48 | #define MSR_MTRRfix16K_80000 0x00000258 | ||
49 | #define MSR_MTRRfix16K_A0000 0x00000259 | ||
50 | #define MSR_MTRRfix4K_C0000 0x00000268 | ||
51 | #define MSR_MTRRfix4K_C8000 0x00000269 | ||
52 | #define MSR_MTRRfix4K_D0000 0x0000026a | ||
53 | #define MSR_MTRRfix4K_D8000 0x0000026b | ||
54 | #define MSR_MTRRfix4K_E0000 0x0000026c | ||
55 | #define MSR_MTRRfix4K_E8000 0x0000026d | ||
56 | #define MSR_MTRRfix4K_F0000 0x0000026e | ||
57 | #define MSR_MTRRfix4K_F8000 0x0000026f | ||
58 | #define MSR_MTRRdefType 0x000002ff | ||
59 | |||
60 | #define MSR_IA32_CR_PAT 0x00000277 | ||
61 | |||
62 | #define MSR_IA32_DEBUGCTLMSR 0x000001d9 | ||
63 | #define MSR_IA32_LASTBRANCHFROMIP 0x000001db | ||
64 | #define MSR_IA32_LASTBRANCHTOIP 0x000001dc | ||
65 | #define MSR_IA32_LASTINTFROMIP 0x000001dd | ||
66 | #define MSR_IA32_LASTINTTOIP 0x000001de | ||
67 | |||
68 | /* DEBUGCTLMSR bits (others vary by model): */ | ||
69 | #define _DEBUGCTLMSR_LBR 0 /* last branch recording */ | ||
70 | #define _DEBUGCTLMSR_BTF 1 /* single-step on branches */ | ||
71 | |||
72 | #define DEBUGCTLMSR_LBR (1UL << _DEBUGCTLMSR_LBR) | ||
73 | #define DEBUGCTLMSR_BTF (1UL << _DEBUGCTLMSR_BTF) | ||
74 | |||
75 | #define MSR_IA32_MC0_CTL 0x00000400 | ||
76 | #define MSR_IA32_MC0_STATUS 0x00000401 | ||
77 | #define MSR_IA32_MC0_ADDR 0x00000402 | ||
78 | #define MSR_IA32_MC0_MISC 0x00000403 | ||
79 | |||
80 | #define MSR_P6_PERFCTR0 0x000000c1 | ||
81 | #define MSR_P6_PERFCTR1 0x000000c2 | ||
82 | #define MSR_P6_EVNTSEL0 0x00000186 | ||
83 | #define MSR_P6_EVNTSEL1 0x00000187 | ||
84 | |||
85 | /* AMD64 MSRs. Not complete. See the architecture manual for a more | ||
86 | complete list. */ | ||
87 | |||
88 | #define MSR_AMD64_NB_CFG 0xc001001f | ||
89 | #define MSR_AMD64_IBSFETCHCTL 0xc0011030 | ||
90 | #define MSR_AMD64_IBSFETCHLINAD 0xc0011031 | ||
91 | #define MSR_AMD64_IBSFETCHPHYSAD 0xc0011032 | ||
92 | #define MSR_AMD64_IBSOPCTL 0xc0011033 | ||
93 | #define MSR_AMD64_IBSOPRIP 0xc0011034 | ||
94 | #define MSR_AMD64_IBSOPDATA 0xc0011035 | ||
95 | #define MSR_AMD64_IBSOPDATA2 0xc0011036 | ||
96 | #define MSR_AMD64_IBSOPDATA3 0xc0011037 | ||
97 | #define MSR_AMD64_IBSDCLINAD 0xc0011038 | ||
98 | #define MSR_AMD64_IBSDCPHYSAD 0xc0011039 | ||
99 | #define MSR_AMD64_IBSCTL 0xc001103a | ||
100 | |||
101 | /* Fam 10h MSRs */ | ||
102 | #define MSR_FAM10H_MMIO_CONF_BASE 0xc0010058 | ||
103 | #define FAM10H_MMIO_CONF_ENABLE (1<<0) | ||
104 | #define FAM10H_MMIO_CONF_BUSRANGE_MASK 0xf | ||
105 | #define FAM10H_MMIO_CONF_BUSRANGE_SHIFT 2 | ||
106 | #define FAM10H_MMIO_CONF_BASE_MASK 0xfffffff | ||
107 | #define FAM10H_MMIO_CONF_BASE_SHIFT 20 | ||
108 | |||
109 | /* K8 MSRs */ | ||
110 | #define MSR_K8_TOP_MEM1 0xc001001a | ||
111 | #define MSR_K8_TOP_MEM2 0xc001001d | ||
112 | #define MSR_K8_SYSCFG 0xc0010010 | ||
113 | #define MSR_K8_HWCR 0xc0010015 | ||
114 | #define MSR_K8_INT_PENDING_MSG 0xc0010055 | ||
115 | /* C1E active bits in int pending message */ | ||
116 | #define K8_INTP_C1E_ACTIVE_MASK 0x18000000 | ||
117 | #define MSR_K8_TSEG_ADDR 0xc0010112 | ||
118 | #define K8_MTRRFIXRANGE_DRAM_ENABLE 0x00040000 /* MtrrFixDramEn bit */ | ||
119 | #define K8_MTRRFIXRANGE_DRAM_MODIFY 0x00080000 /* MtrrFixDramModEn bit */ | ||
120 | #define K8_MTRR_RDMEM_WRMEM_MASK 0x18181818 /* Mask: RdMem|WrMem */ | ||
121 | |||
122 | /* K7 MSRs */ | ||
123 | #define MSR_K7_EVNTSEL0 0xc0010000 | ||
124 | #define MSR_K7_PERFCTR0 0xc0010004 | ||
125 | #define MSR_K7_EVNTSEL1 0xc0010001 | ||
126 | #define MSR_K7_PERFCTR1 0xc0010005 | ||
127 | #define MSR_K7_EVNTSEL2 0xc0010002 | ||
128 | #define MSR_K7_PERFCTR2 0xc0010006 | ||
129 | #define MSR_K7_EVNTSEL3 0xc0010003 | ||
130 | #define MSR_K7_PERFCTR3 0xc0010007 | ||
131 | #define MSR_K7_CLK_CTL 0xc001001b | ||
132 | #define MSR_K7_HWCR 0xc0010015 | ||
133 | #define MSR_K7_FID_VID_CTL 0xc0010041 | ||
134 | #define MSR_K7_FID_VID_STATUS 0xc0010042 | ||
135 | |||
136 | /* K6 MSRs */ | ||
137 | #define MSR_K6_EFER 0xc0000080 | ||
138 | #define MSR_K6_STAR 0xc0000081 | ||
139 | #define MSR_K6_WHCR 0xc0000082 | ||
140 | #define MSR_K6_UWCCR 0xc0000085 | ||
141 | #define MSR_K6_EPMR 0xc0000086 | ||
142 | #define MSR_K6_PSOR 0xc0000087 | ||
143 | #define MSR_K6_PFIR 0xc0000088 | ||
144 | |||
145 | /* Centaur-Hauls/IDT defined MSRs. */ | ||
146 | #define MSR_IDT_FCR1 0x00000107 | ||
147 | #define MSR_IDT_FCR2 0x00000108 | ||
148 | #define MSR_IDT_FCR3 0x00000109 | ||
149 | #define MSR_IDT_FCR4 0x0000010a | ||
150 | |||
151 | #define MSR_IDT_MCR0 0x00000110 | ||
152 | #define MSR_IDT_MCR1 0x00000111 | ||
153 | #define MSR_IDT_MCR2 0x00000112 | ||
154 | #define MSR_IDT_MCR3 0x00000113 | ||
155 | #define MSR_IDT_MCR4 0x00000114 | ||
156 | #define MSR_IDT_MCR5 0x00000115 | ||
157 | #define MSR_IDT_MCR6 0x00000116 | ||
158 | #define MSR_IDT_MCR7 0x00000117 | ||
159 | #define MSR_IDT_MCR_CTRL 0x00000120 | ||
160 | |||
161 | /* VIA Cyrix defined MSRs*/ | ||
162 | #define MSR_VIA_FCR 0x00001107 | ||
163 | #define MSR_VIA_LONGHAUL 0x0000110a | ||
164 | #define MSR_VIA_RNG 0x0000110b | ||
165 | #define MSR_VIA_BCR2 0x00001147 | ||
166 | |||
167 | /* Transmeta defined MSRs */ | ||
168 | #define MSR_TMTA_LONGRUN_CTRL 0x80868010 | ||
169 | #define MSR_TMTA_LONGRUN_FLAGS 0x80868011 | ||
170 | #define MSR_TMTA_LRTI_READOUT 0x80868018 | ||
171 | #define MSR_TMTA_LRTI_VOLT_MHZ 0x8086801a | ||
172 | |||
173 | /* Intel defined MSRs. */ | ||
174 | #define MSR_IA32_P5_MC_ADDR 0x00000000 | ||
175 | #define MSR_IA32_P5_MC_TYPE 0x00000001 | ||
176 | #define MSR_IA32_TSC 0x00000010 | ||
177 | #define MSR_IA32_PLATFORM_ID 0x00000017 | ||
178 | #define MSR_IA32_EBL_CR_POWERON 0x0000002a | ||
179 | #define MSR_IA32_FEATURE_CONTROL 0x0000003a | ||
180 | |||
181 | #define FEATURE_CONTROL_LOCKED (1<<0) | ||
182 | #define FEATURE_CONTROL_VMXON_ENABLED (1<<2) | ||
183 | |||
184 | #define MSR_IA32_APICBASE 0x0000001b | ||
185 | #define MSR_IA32_APICBASE_BSP (1<<8) | ||
186 | #define MSR_IA32_APICBASE_ENABLE (1<<11) | ||
187 | #define MSR_IA32_APICBASE_BASE (0xfffff<<12) | ||
188 | |||
189 | #define MSR_IA32_UCODE_WRITE 0x00000079 | ||
190 | #define MSR_IA32_UCODE_REV 0x0000008b | ||
191 | |||
192 | #define MSR_IA32_PERF_STATUS 0x00000198 | ||
193 | #define MSR_IA32_PERF_CTL 0x00000199 | ||
194 | |||
195 | #define MSR_IA32_MPERF 0x000000e7 | ||
196 | #define MSR_IA32_APERF 0x000000e8 | ||
197 | |||
198 | #define MSR_IA32_THERM_CONTROL 0x0000019a | ||
199 | #define MSR_IA32_THERM_INTERRUPT 0x0000019b | ||
200 | #define MSR_IA32_THERM_STATUS 0x0000019c | ||
201 | #define MSR_IA32_MISC_ENABLE 0x000001a0 | ||
202 | |||
203 | /* Intel Model 6 */ | ||
204 | #define MSR_P6_EVNTSEL0 0x00000186 | ||
205 | #define MSR_P6_EVNTSEL1 0x00000187 | ||
206 | |||
207 | /* P4/Xeon+ specific */ | ||
208 | #define MSR_IA32_MCG_EAX 0x00000180 | ||
209 | #define MSR_IA32_MCG_EBX 0x00000181 | ||
210 | #define MSR_IA32_MCG_ECX 0x00000182 | ||
211 | #define MSR_IA32_MCG_EDX 0x00000183 | ||
212 | #define MSR_IA32_MCG_ESI 0x00000184 | ||
213 | #define MSR_IA32_MCG_EDI 0x00000185 | ||
214 | #define MSR_IA32_MCG_EBP 0x00000186 | ||
215 | #define MSR_IA32_MCG_ESP 0x00000187 | ||
216 | #define MSR_IA32_MCG_EFLAGS 0x00000188 | ||
217 | #define MSR_IA32_MCG_EIP 0x00000189 | ||
218 | #define MSR_IA32_MCG_RESERVED 0x0000018a | ||
219 | |||
220 | /* Pentium IV performance counter MSRs */ | ||
221 | #define MSR_P4_BPU_PERFCTR0 0x00000300 | ||
222 | #define MSR_P4_BPU_PERFCTR1 0x00000301 | ||
223 | #define MSR_P4_BPU_PERFCTR2 0x00000302 | ||
224 | #define MSR_P4_BPU_PERFCTR3 0x00000303 | ||
225 | #define MSR_P4_MS_PERFCTR0 0x00000304 | ||
226 | #define MSR_P4_MS_PERFCTR1 0x00000305 | ||
227 | #define MSR_P4_MS_PERFCTR2 0x00000306 | ||
228 | #define MSR_P4_MS_PERFCTR3 0x00000307 | ||
229 | #define MSR_P4_FLAME_PERFCTR0 0x00000308 | ||
230 | #define MSR_P4_FLAME_PERFCTR1 0x00000309 | ||
231 | #define MSR_P4_FLAME_PERFCTR2 0x0000030a | ||
232 | #define MSR_P4_FLAME_PERFCTR3 0x0000030b | ||
233 | #define MSR_P4_IQ_PERFCTR0 0x0000030c | ||
234 | #define MSR_P4_IQ_PERFCTR1 0x0000030d | ||
235 | #define MSR_P4_IQ_PERFCTR2 0x0000030e | ||
236 | #define MSR_P4_IQ_PERFCTR3 0x0000030f | ||
237 | #define MSR_P4_IQ_PERFCTR4 0x00000310 | ||
238 | #define MSR_P4_IQ_PERFCTR5 0x00000311 | ||
239 | #define MSR_P4_BPU_CCCR0 0x00000360 | ||
240 | #define MSR_P4_BPU_CCCR1 0x00000361 | ||
241 | #define MSR_P4_BPU_CCCR2 0x00000362 | ||
242 | #define MSR_P4_BPU_CCCR3 0x00000363 | ||
243 | #define MSR_P4_MS_CCCR0 0x00000364 | ||
244 | #define MSR_P4_MS_CCCR1 0x00000365 | ||
245 | #define MSR_P4_MS_CCCR2 0x00000366 | ||
246 | #define MSR_P4_MS_CCCR3 0x00000367 | ||
247 | #define MSR_P4_FLAME_CCCR0 0x00000368 | ||
248 | #define MSR_P4_FLAME_CCCR1 0x00000369 | ||
249 | #define MSR_P4_FLAME_CCCR2 0x0000036a | ||
250 | #define MSR_P4_FLAME_CCCR3 0x0000036b | ||
251 | #define MSR_P4_IQ_CCCR0 0x0000036c | ||
252 | #define MSR_P4_IQ_CCCR1 0x0000036d | ||
253 | #define MSR_P4_IQ_CCCR2 0x0000036e | ||
254 | #define MSR_P4_IQ_CCCR3 0x0000036f | ||
255 | #define MSR_P4_IQ_CCCR4 0x00000370 | ||
256 | #define MSR_P4_IQ_CCCR5 0x00000371 | ||
257 | #define MSR_P4_ALF_ESCR0 0x000003ca | ||
258 | #define MSR_P4_ALF_ESCR1 0x000003cb | ||
259 | #define MSR_P4_BPU_ESCR0 0x000003b2 | ||
260 | #define MSR_P4_BPU_ESCR1 0x000003b3 | ||
261 | #define MSR_P4_BSU_ESCR0 0x000003a0 | ||
262 | #define MSR_P4_BSU_ESCR1 0x000003a1 | ||
263 | #define MSR_P4_CRU_ESCR0 0x000003b8 | ||
264 | #define MSR_P4_CRU_ESCR1 0x000003b9 | ||
265 | #define MSR_P4_CRU_ESCR2 0x000003cc | ||
266 | #define MSR_P4_CRU_ESCR3 0x000003cd | ||
267 | #define MSR_P4_CRU_ESCR4 0x000003e0 | ||
268 | #define MSR_P4_CRU_ESCR5 0x000003e1 | ||
269 | #define MSR_P4_DAC_ESCR0 0x000003a8 | ||
270 | #define MSR_P4_DAC_ESCR1 0x000003a9 | ||
271 | #define MSR_P4_FIRM_ESCR0 0x000003a4 | ||
272 | #define MSR_P4_FIRM_ESCR1 0x000003a5 | ||
273 | #define MSR_P4_FLAME_ESCR0 0x000003a6 | ||
274 | #define MSR_P4_FLAME_ESCR1 0x000003a7 | ||
275 | #define MSR_P4_FSB_ESCR0 0x000003a2 | ||
276 | #define MSR_P4_FSB_ESCR1 0x000003a3 | ||
277 | #define MSR_P4_IQ_ESCR0 0x000003ba | ||
278 | #define MSR_P4_IQ_ESCR1 0x000003bb | ||
279 | #define MSR_P4_IS_ESCR0 0x000003b4 | ||
280 | #define MSR_P4_IS_ESCR1 0x000003b5 | ||
281 | #define MSR_P4_ITLB_ESCR0 0x000003b6 | ||
282 | #define MSR_P4_ITLB_ESCR1 0x000003b7 | ||
283 | #define MSR_P4_IX_ESCR0 0x000003c8 | ||
284 | #define MSR_P4_IX_ESCR1 0x000003c9 | ||
285 | #define MSR_P4_MOB_ESCR0 0x000003aa | ||
286 | #define MSR_P4_MOB_ESCR1 0x000003ab | ||
287 | #define MSR_P4_MS_ESCR0 0x000003c0 | ||
288 | #define MSR_P4_MS_ESCR1 0x000003c1 | ||
289 | #define MSR_P4_PMH_ESCR0 0x000003ac | ||
290 | #define MSR_P4_PMH_ESCR1 0x000003ad | ||
291 | #define MSR_P4_RAT_ESCR0 0x000003bc | ||
292 | #define MSR_P4_RAT_ESCR1 0x000003bd | ||
293 | #define MSR_P4_SAAT_ESCR0 0x000003ae | ||
294 | #define MSR_P4_SAAT_ESCR1 0x000003af | ||
295 | #define MSR_P4_SSU_ESCR0 0x000003be | ||
296 | #define MSR_P4_SSU_ESCR1 0x000003bf /* guess: not in manual */ | ||
297 | |||
298 | #define MSR_P4_TBPU_ESCR0 0x000003c2 | ||
299 | #define MSR_P4_TBPU_ESCR1 0x000003c3 | ||
300 | #define MSR_P4_TC_ESCR0 0x000003c4 | ||
301 | #define MSR_P4_TC_ESCR1 0x000003c5 | ||
302 | #define MSR_P4_U2L_ESCR0 0x000003b0 | ||
303 | #define MSR_P4_U2L_ESCR1 0x000003b1 | ||
304 | |||
305 | /* Intel Core-based CPU performance counters */ | ||
306 | #define MSR_CORE_PERF_FIXED_CTR0 0x00000309 | ||
307 | #define MSR_CORE_PERF_FIXED_CTR1 0x0000030a | ||
308 | #define MSR_CORE_PERF_FIXED_CTR2 0x0000030b | ||
309 | #define MSR_CORE_PERF_FIXED_CTR_CTRL 0x0000038d | ||
310 | #define MSR_CORE_PERF_GLOBAL_STATUS 0x0000038e | ||
311 | #define MSR_CORE_PERF_GLOBAL_CTRL 0x0000038f | ||
312 | #define MSR_CORE_PERF_GLOBAL_OVF_CTRL 0x00000390 | ||
313 | |||
314 | /* Geode defined MSRs */ | ||
315 | #define MSR_GEODE_BUSCONT_CONF0 0x00001900 | ||
316 | |||
317 | /* Intel VT MSRs */ | ||
318 | #define MSR_IA32_VMX_BASIC 0x00000480 | ||
319 | #define MSR_IA32_VMX_PINBASED_CTLS 0x00000481 | ||
320 | #define MSR_IA32_VMX_PROCBASED_CTLS 0x00000482 | ||
321 | #define MSR_IA32_VMX_EXIT_CTLS 0x00000483 | ||
322 | #define MSR_IA32_VMX_ENTRY_CTLS 0x00000484 | ||
323 | #define MSR_IA32_VMX_MISC 0x00000485 | ||
324 | #define MSR_IA32_VMX_CR0_FIXED0 0x00000486 | ||
325 | #define MSR_IA32_VMX_CR0_FIXED1 0x00000487 | ||
326 | #define MSR_IA32_VMX_CR4_FIXED0 0x00000488 | ||
327 | #define MSR_IA32_VMX_CR4_FIXED1 0x00000489 | ||
328 | #define MSR_IA32_VMX_VMCS_ENUM 0x0000048a | ||
329 | #define MSR_IA32_VMX_PROCBASED_CTLS2 0x0000048b | ||
330 | #define MSR_IA32_VMX_EPT_VPID_CAP 0x0000048c | ||
331 | |||
332 | #endif /* _ASM_X86_MSR_INDEX_H */ | ||
diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h new file mode 100644 index 000000000000..46be2fa7ac26 --- /dev/null +++ b/arch/x86/include/asm/msr.h | |||
@@ -0,0 +1,247 @@ | |||
1 | #ifndef _ASM_X86_MSR_H | ||
2 | #define _ASM_X86_MSR_H | ||
3 | |||
4 | #include <asm/msr-index.h> | ||
5 | |||
6 | #ifndef __ASSEMBLY__ | ||
7 | # include <linux/types.h> | ||
8 | #endif | ||
9 | |||
10 | #ifdef __KERNEL__ | ||
11 | #ifndef __ASSEMBLY__ | ||
12 | |||
13 | #include <asm/asm.h> | ||
14 | #include <asm/errno.h> | ||
15 | |||
16 | static inline unsigned long long native_read_tscp(unsigned int *aux) | ||
17 | { | ||
18 | unsigned long low, high; | ||
19 | asm volatile(".byte 0x0f,0x01,0xf9" | ||
20 | : "=a" (low), "=d" (high), "=c" (*aux)); | ||
21 | return low | ((u64)high << 32); | ||
22 | } | ||
23 | |||
24 | /* | ||
25 | * i386 calling convention returns 64-bit value in edx:eax, while | ||
26 | * x86_64 returns at rax. Also, the "A" constraint does not really | ||
27 | * mean rdx:rax in x86_64, so we need specialized behaviour for each | ||
28 | * architecture | ||
29 | */ | ||
30 | #ifdef CONFIG_X86_64 | ||
31 | #define DECLARE_ARGS(val, low, high) unsigned low, high | ||
32 | #define EAX_EDX_VAL(val, low, high) ((low) | ((u64)(high) << 32)) | ||
33 | #define EAX_EDX_ARGS(val, low, high) "a" (low), "d" (high) | ||
34 | #define EAX_EDX_RET(val, low, high) "=a" (low), "=d" (high) | ||
35 | #else | ||
36 | #define DECLARE_ARGS(val, low, high) unsigned long long val | ||
37 | #define EAX_EDX_VAL(val, low, high) (val) | ||
38 | #define EAX_EDX_ARGS(val, low, high) "A" (val) | ||
39 | #define EAX_EDX_RET(val, low, high) "=A" (val) | ||
40 | #endif | ||
41 | |||
42 | static inline unsigned long long native_read_msr(unsigned int msr) | ||
43 | { | ||
44 | DECLARE_ARGS(val, low, high); | ||
45 | |||
46 | asm volatile("rdmsr" : EAX_EDX_RET(val, low, high) : "c" (msr)); | ||
47 | return EAX_EDX_VAL(val, low, high); | ||
48 | } | ||
49 | |||
50 | static inline unsigned long long native_read_msr_safe(unsigned int msr, | ||
51 | int *err) | ||
52 | { | ||
53 | DECLARE_ARGS(val, low, high); | ||
54 | |||
55 | asm volatile("2: rdmsr ; xor %[err],%[err]\n" | ||
56 | "1:\n\t" | ||
57 | ".section .fixup,\"ax\"\n\t" | ||
58 | "3: mov %[fault],%[err] ; jmp 1b\n\t" | ||
59 | ".previous\n\t" | ||
60 | _ASM_EXTABLE(2b, 3b) | ||
61 | : [err] "=r" (*err), EAX_EDX_RET(val, low, high) | ||
62 | : "c" (msr), [fault] "i" (-EFAULT)); | ||
63 | return EAX_EDX_VAL(val, low, high); | ||
64 | } | ||
65 | |||
66 | static inline unsigned long long native_read_msr_amd_safe(unsigned int msr, | ||
67 | int *err) | ||
68 | { | ||
69 | DECLARE_ARGS(val, low, high); | ||
70 | |||
71 | asm volatile("2: rdmsr ; xor %0,%0\n" | ||
72 | "1:\n\t" | ||
73 | ".section .fixup,\"ax\"\n\t" | ||
74 | "3: mov %3,%0 ; jmp 1b\n\t" | ||
75 | ".previous\n\t" | ||
76 | _ASM_EXTABLE(2b, 3b) | ||
77 | : "=r" (*err), EAX_EDX_RET(val, low, high) | ||
78 | : "c" (msr), "D" (0x9c5a203a), "i" (-EFAULT)); | ||
79 | return EAX_EDX_VAL(val, low, high); | ||
80 | } | ||
81 | |||
82 | static inline void native_write_msr(unsigned int msr, | ||
83 | unsigned low, unsigned high) | ||
84 | { | ||
85 | asm volatile("wrmsr" : : "c" (msr), "a"(low), "d" (high) : "memory"); | ||
86 | } | ||
87 | |||
88 | static inline int native_write_msr_safe(unsigned int msr, | ||
89 | unsigned low, unsigned high) | ||
90 | { | ||
91 | int err; | ||
92 | asm volatile("2: wrmsr ; xor %[err],%[err]\n" | ||
93 | "1:\n\t" | ||
94 | ".section .fixup,\"ax\"\n\t" | ||
95 | "3: mov %[fault],%[err] ; jmp 1b\n\t" | ||
96 | ".previous\n\t" | ||
97 | _ASM_EXTABLE(2b, 3b) | ||
98 | : [err] "=a" (err) | ||
99 | : "c" (msr), "0" (low), "d" (high), | ||
100 | [fault] "i" (-EFAULT) | ||
101 | : "memory"); | ||
102 | return err; | ||
103 | } | ||
104 | |||
105 | extern unsigned long long native_read_tsc(void); | ||
106 | |||
107 | static __always_inline unsigned long long __native_read_tsc(void) | ||
108 | { | ||
109 | DECLARE_ARGS(val, low, high); | ||
110 | |||
111 | rdtsc_barrier(); | ||
112 | asm volatile("rdtsc" : EAX_EDX_RET(val, low, high)); | ||
113 | rdtsc_barrier(); | ||
114 | |||
115 | return EAX_EDX_VAL(val, low, high); | ||
116 | } | ||
117 | |||
118 | static inline unsigned long long native_read_pmc(int counter) | ||
119 | { | ||
120 | DECLARE_ARGS(val, low, high); | ||
121 | |||
122 | asm volatile("rdpmc" : EAX_EDX_RET(val, low, high) : "c" (counter)); | ||
123 | return EAX_EDX_VAL(val, low, high); | ||
124 | } | ||
125 | |||
126 | #ifdef CONFIG_PARAVIRT | ||
127 | #include <asm/paravirt.h> | ||
128 | #else | ||
129 | #include <linux/errno.h> | ||
130 | /* | ||
131 | * Access to machine-specific registers (available on 586 and better only) | ||
132 | * Note: the rd* operations modify the parameters directly (without using | ||
133 | * pointer indirection), this allows gcc to optimize better | ||
134 | */ | ||
135 | |||
136 | #define rdmsr(msr, val1, val2) \ | ||
137 | do { \ | ||
138 | u64 __val = native_read_msr((msr)); \ | ||
139 | (val1) = (u32)__val; \ | ||
140 | (val2) = (u32)(__val >> 32); \ | ||
141 | } while (0) | ||
142 | |||
143 | static inline void wrmsr(unsigned msr, unsigned low, unsigned high) | ||
144 | { | ||
145 | native_write_msr(msr, low, high); | ||
146 | } | ||
147 | |||
148 | #define rdmsrl(msr, val) \ | ||
149 | ((val) = native_read_msr((msr))) | ||
150 | |||
151 | #define wrmsrl(msr, val) \ | ||
152 | native_write_msr((msr), (u32)((u64)(val)), (u32)((u64)(val) >> 32)) | ||
153 | |||
154 | /* wrmsr with exception handling */ | ||
155 | static inline int wrmsr_safe(unsigned msr, unsigned low, unsigned high) | ||
156 | { | ||
157 | return native_write_msr_safe(msr, low, high); | ||
158 | } | ||
159 | |||
160 | /* rdmsr with exception handling */ | ||
161 | #define rdmsr_safe(msr, p1, p2) \ | ||
162 | ({ \ | ||
163 | int __err; \ | ||
164 | u64 __val = native_read_msr_safe((msr), &__err); \ | ||
165 | (*p1) = (u32)__val; \ | ||
166 | (*p2) = (u32)(__val >> 32); \ | ||
167 | __err; \ | ||
168 | }) | ||
169 | |||
170 | static inline int rdmsrl_safe(unsigned msr, unsigned long long *p) | ||
171 | { | ||
172 | int err; | ||
173 | |||
174 | *p = native_read_msr_safe(msr, &err); | ||
175 | return err; | ||
176 | } | ||
177 | static inline int rdmsrl_amd_safe(unsigned msr, unsigned long long *p) | ||
178 | { | ||
179 | int err; | ||
180 | |||
181 | *p = native_read_msr_amd_safe(msr, &err); | ||
182 | return err; | ||
183 | } | ||
184 | |||
185 | #define rdtscl(low) \ | ||
186 | ((low) = (u32)native_read_tsc()) | ||
187 | |||
188 | #define rdtscll(val) \ | ||
189 | ((val) = native_read_tsc()) | ||
190 | |||
191 | #define rdpmc(counter, low, high) \ | ||
192 | do { \ | ||
193 | u64 _l = native_read_pmc((counter)); \ | ||
194 | (low) = (u32)_l; \ | ||
195 | (high) = (u32)(_l >> 32); \ | ||
196 | } while (0) | ||
197 | |||
198 | #define rdtscp(low, high, aux) \ | ||
199 | do { \ | ||
200 | unsigned long long _val = native_read_tscp(&(aux)); \ | ||
201 | (low) = (u32)_val; \ | ||
202 | (high) = (u32)(_val >> 32); \ | ||
203 | } while (0) | ||
204 | |||
205 | #define rdtscpll(val, aux) (val) = native_read_tscp(&(aux)) | ||
206 | |||
207 | #endif /* !CONFIG_PARAVIRT */ | ||
208 | |||
209 | |||
210 | #define checking_wrmsrl(msr, val) wrmsr_safe((msr), (u32)(val), \ | ||
211 | (u32)((val) >> 32)) | ||
212 | |||
213 | #define write_tsc(val1, val2) wrmsr(0x10, (val1), (val2)) | ||
214 | |||
215 | #define write_rdtscp_aux(val) wrmsr(0xc0000103, (val), 0) | ||
216 | |||
217 | #ifdef CONFIG_SMP | ||
218 | int rdmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h); | ||
219 | int wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h); | ||
220 | int rdmsr_safe_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h); | ||
221 | int wrmsr_safe_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h); | ||
222 | #else /* CONFIG_SMP */ | ||
223 | static inline int rdmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h) | ||
224 | { | ||
225 | rdmsr(msr_no, *l, *h); | ||
226 | return 0; | ||
227 | } | ||
228 | static inline int wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h) | ||
229 | { | ||
230 | wrmsr(msr_no, l, h); | ||
231 | return 0; | ||
232 | } | ||
233 | static inline int rdmsr_safe_on_cpu(unsigned int cpu, u32 msr_no, | ||
234 | u32 *l, u32 *h) | ||
235 | { | ||
236 | return rdmsr_safe(msr_no, l, h); | ||
237 | } | ||
238 | static inline int wrmsr_safe_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h) | ||
239 | { | ||
240 | return wrmsr_safe(msr_no, l, h); | ||
241 | } | ||
242 | #endif /* CONFIG_SMP */ | ||
243 | #endif /* __ASSEMBLY__ */ | ||
244 | #endif /* __KERNEL__ */ | ||
245 | |||
246 | |||
247 | #endif /* _ASM_X86_MSR_H */ | ||
diff --git a/arch/x86/include/asm/mtrr.h b/arch/x86/include/asm/mtrr.h new file mode 100644 index 000000000000..7c1e4258b31e --- /dev/null +++ b/arch/x86/include/asm/mtrr.h | |||
@@ -0,0 +1,173 @@ | |||
1 | /* Generic MTRR (Memory Type Range Register) ioctls. | ||
2 | |||
3 | Copyright (C) 1997-1999 Richard Gooch | ||
4 | |||
5 | This library is free software; you can redistribute it and/or | ||
6 | modify it under the terms of the GNU Library General Public | ||
7 | License as published by the Free Software Foundation; either | ||
8 | version 2 of the License, or (at your option) any later version. | ||
9 | |||
10 | This library is distributed in the hope that it will be useful, | ||
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
13 | Library General Public License for more details. | ||
14 | |||
15 | You should have received a copy of the GNU Library General Public | ||
16 | License along with this library; if not, write to the Free | ||
17 | Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
18 | |||
19 | Richard Gooch may be reached by email at rgooch@atnf.csiro.au | ||
20 | The postal address is: | ||
21 | Richard Gooch, c/o ATNF, P. O. Box 76, Epping, N.S.W., 2121, Australia. | ||
22 | */ | ||
23 | #ifndef _ASM_X86_MTRR_H | ||
24 | #define _ASM_X86_MTRR_H | ||
25 | |||
26 | #include <linux/ioctl.h> | ||
27 | #include <linux/errno.h> | ||
28 | |||
29 | #define MTRR_IOCTL_BASE 'M' | ||
30 | |||
31 | struct mtrr_sentry { | ||
32 | unsigned long base; /* Base address */ | ||
33 | unsigned int size; /* Size of region */ | ||
34 | unsigned int type; /* Type of region */ | ||
35 | }; | ||
36 | |||
37 | /* Warning: this structure has a different order from i386 | ||
38 | on x86-64. The 32bit emulation code takes care of that. | ||
39 | But you need to use this for 64bit, otherwise your X server | ||
40 | will break. */ | ||
41 | |||
42 | #ifdef __i386__ | ||
43 | struct mtrr_gentry { | ||
44 | unsigned int regnum; /* Register number */ | ||
45 | unsigned long base; /* Base address */ | ||
46 | unsigned int size; /* Size of region */ | ||
47 | unsigned int type; /* Type of region */ | ||
48 | }; | ||
49 | |||
50 | #else /* __i386__ */ | ||
51 | |||
52 | struct mtrr_gentry { | ||
53 | unsigned long base; /* Base address */ | ||
54 | unsigned int size; /* Size of region */ | ||
55 | unsigned int regnum; /* Register number */ | ||
56 | unsigned int type; /* Type of region */ | ||
57 | }; | ||
58 | #endif /* !__i386__ */ | ||
59 | |||
60 | /* These are the various ioctls */ | ||
61 | #define MTRRIOC_ADD_ENTRY _IOW(MTRR_IOCTL_BASE, 0, struct mtrr_sentry) | ||
62 | #define MTRRIOC_SET_ENTRY _IOW(MTRR_IOCTL_BASE, 1, struct mtrr_sentry) | ||
63 | #define MTRRIOC_DEL_ENTRY _IOW(MTRR_IOCTL_BASE, 2, struct mtrr_sentry) | ||
64 | #define MTRRIOC_GET_ENTRY _IOWR(MTRR_IOCTL_BASE, 3, struct mtrr_gentry) | ||
65 | #define MTRRIOC_KILL_ENTRY _IOW(MTRR_IOCTL_BASE, 4, struct mtrr_sentry) | ||
66 | #define MTRRIOC_ADD_PAGE_ENTRY _IOW(MTRR_IOCTL_BASE, 5, struct mtrr_sentry) | ||
67 | #define MTRRIOC_SET_PAGE_ENTRY _IOW(MTRR_IOCTL_BASE, 6, struct mtrr_sentry) | ||
68 | #define MTRRIOC_DEL_PAGE_ENTRY _IOW(MTRR_IOCTL_BASE, 7, struct mtrr_sentry) | ||
69 | #define MTRRIOC_GET_PAGE_ENTRY _IOWR(MTRR_IOCTL_BASE, 8, struct mtrr_gentry) | ||
70 | #define MTRRIOC_KILL_PAGE_ENTRY _IOW(MTRR_IOCTL_BASE, 9, struct mtrr_sentry) | ||
71 | |||
72 | /* These are the region types */ | ||
73 | #define MTRR_TYPE_UNCACHABLE 0 | ||
74 | #define MTRR_TYPE_WRCOMB 1 | ||
75 | /*#define MTRR_TYPE_ 2*/ | ||
76 | /*#define MTRR_TYPE_ 3*/ | ||
77 | #define MTRR_TYPE_WRTHROUGH 4 | ||
78 | #define MTRR_TYPE_WRPROT 5 | ||
79 | #define MTRR_TYPE_WRBACK 6 | ||
80 | #define MTRR_NUM_TYPES 7 | ||
81 | |||
82 | #ifdef __KERNEL__ | ||
83 | |||
84 | /* The following functions are for use by other drivers */ | ||
85 | # ifdef CONFIG_MTRR | ||
86 | extern u8 mtrr_type_lookup(u64 addr, u64 end); | ||
87 | extern void mtrr_save_fixed_ranges(void *); | ||
88 | extern void mtrr_save_state(void); | ||
89 | extern int mtrr_add(unsigned long base, unsigned long size, | ||
90 | unsigned int type, bool increment); | ||
91 | extern int mtrr_add_page(unsigned long base, unsigned long size, | ||
92 | unsigned int type, bool increment); | ||
93 | extern int mtrr_del(int reg, unsigned long base, unsigned long size); | ||
94 | extern int mtrr_del_page(int reg, unsigned long base, unsigned long size); | ||
95 | extern void mtrr_centaur_report_mcr(int mcr, u32 lo, u32 hi); | ||
96 | extern void mtrr_ap_init(void); | ||
97 | extern void mtrr_bp_init(void); | ||
98 | extern int mtrr_trim_uncached_memory(unsigned long end_pfn); | ||
99 | extern int amd_special_default_mtrr(void); | ||
100 | # else | ||
101 | static inline u8 mtrr_type_lookup(u64 addr, u64 end) | ||
102 | { | ||
103 | /* | ||
104 | * Return no-MTRRs: | ||
105 | */ | ||
106 | return 0xff; | ||
107 | } | ||
108 | #define mtrr_save_fixed_ranges(arg) do {} while (0) | ||
109 | #define mtrr_save_state() do {} while (0) | ||
110 | static inline int mtrr_add(unsigned long base, unsigned long size, | ||
111 | unsigned int type, bool increment) | ||
112 | { | ||
113 | return -ENODEV; | ||
114 | } | ||
115 | static inline int mtrr_add_page(unsigned long base, unsigned long size, | ||
116 | unsigned int type, bool increment) | ||
117 | { | ||
118 | return -ENODEV; | ||
119 | } | ||
120 | static inline int mtrr_del(int reg, unsigned long base, unsigned long size) | ||
121 | { | ||
122 | return -ENODEV; | ||
123 | } | ||
124 | static inline int mtrr_del_page(int reg, unsigned long base, unsigned long size) | ||
125 | { | ||
126 | return -ENODEV; | ||
127 | } | ||
128 | static inline int mtrr_trim_uncached_memory(unsigned long end_pfn) | ||
129 | { | ||
130 | return 0; | ||
131 | } | ||
132 | static inline void mtrr_centaur_report_mcr(int mcr, u32 lo, u32 hi) | ||
133 | { | ||
134 | } | ||
135 | |||
136 | #define mtrr_ap_init() do {} while (0) | ||
137 | #define mtrr_bp_init() do {} while (0) | ||
138 | # endif | ||
139 | |||
140 | #ifdef CONFIG_COMPAT | ||
141 | #include <linux/compat.h> | ||
142 | |||
143 | struct mtrr_sentry32 { | ||
144 | compat_ulong_t base; /* Base address */ | ||
145 | compat_uint_t size; /* Size of region */ | ||
146 | compat_uint_t type; /* Type of region */ | ||
147 | }; | ||
148 | |||
149 | struct mtrr_gentry32 { | ||
150 | compat_ulong_t regnum; /* Register number */ | ||
151 | compat_uint_t base; /* Base address */ | ||
152 | compat_uint_t size; /* Size of region */ | ||
153 | compat_uint_t type; /* Type of region */ | ||
154 | }; | ||
155 | |||
156 | #define MTRR_IOCTL_BASE 'M' | ||
157 | |||
158 | #define MTRRIOC32_ADD_ENTRY _IOW(MTRR_IOCTL_BASE, 0, struct mtrr_sentry32) | ||
159 | #define MTRRIOC32_SET_ENTRY _IOW(MTRR_IOCTL_BASE, 1, struct mtrr_sentry32) | ||
160 | #define MTRRIOC32_DEL_ENTRY _IOW(MTRR_IOCTL_BASE, 2, struct mtrr_sentry32) | ||
161 | #define MTRRIOC32_GET_ENTRY _IOWR(MTRR_IOCTL_BASE, 3, struct mtrr_gentry32) | ||
162 | #define MTRRIOC32_KILL_ENTRY _IOW(MTRR_IOCTL_BASE, 4, struct mtrr_sentry32) | ||
163 | #define MTRRIOC32_ADD_PAGE_ENTRY _IOW(MTRR_IOCTL_BASE, 5, struct mtrr_sentry32) | ||
164 | #define MTRRIOC32_SET_PAGE_ENTRY _IOW(MTRR_IOCTL_BASE, 6, struct mtrr_sentry32) | ||
165 | #define MTRRIOC32_DEL_PAGE_ENTRY _IOW(MTRR_IOCTL_BASE, 7, struct mtrr_sentry32) | ||
166 | #define MTRRIOC32_GET_PAGE_ENTRY _IOWR(MTRR_IOCTL_BASE, 8, struct mtrr_gentry32) | ||
167 | #define MTRRIOC32_KILL_PAGE_ENTRY \ | ||
168 | _IOW(MTRR_IOCTL_BASE, 9, struct mtrr_sentry32) | ||
169 | #endif /* CONFIG_COMPAT */ | ||
170 | |||
171 | #endif /* __KERNEL__ */ | ||
172 | |||
173 | #endif /* _ASM_X86_MTRR_H */ | ||
diff --git a/arch/x86/include/asm/mutex.h b/arch/x86/include/asm/mutex.h new file mode 100644 index 000000000000..a731b9c573a6 --- /dev/null +++ b/arch/x86/include/asm/mutex.h | |||
@@ -0,0 +1,5 @@ | |||
1 | #ifdef CONFIG_X86_32 | ||
2 | # include "mutex_32.h" | ||
3 | #else | ||
4 | # include "mutex_64.h" | ||
5 | #endif | ||
diff --git a/arch/x86/include/asm/mutex_32.h b/arch/x86/include/asm/mutex_32.h new file mode 100644 index 000000000000..03f90c8a5a7c --- /dev/null +++ b/arch/x86/include/asm/mutex_32.h | |||
@@ -0,0 +1,125 @@ | |||
1 | /* | ||
2 | * Assembly implementation of the mutex fastpath, based on atomic | ||
3 | * decrement/increment. | ||
4 | * | ||
5 | * started by Ingo Molnar: | ||
6 | * | ||
7 | * Copyright (C) 2004, 2005, 2006 Red Hat, Inc., Ingo Molnar <mingo@redhat.com> | ||
8 | */ | ||
9 | #ifndef _ASM_X86_MUTEX_32_H | ||
10 | #define _ASM_X86_MUTEX_32_H | ||
11 | |||
12 | #include <asm/alternative.h> | ||
13 | |||
14 | /** | ||
15 | * __mutex_fastpath_lock - try to take the lock by moving the count | ||
16 | * from 1 to a 0 value | ||
17 | * @count: pointer of type atomic_t | ||
18 | * @fn: function to call if the original value was not 1 | ||
19 | * | ||
20 | * Change the count from 1 to a value lower than 1, and call <fn> if it | ||
21 | * wasn't 1 originally. This function MUST leave the value lower than 1 | ||
22 | * even when the "1" assertion wasn't true. | ||
23 | */ | ||
24 | #define __mutex_fastpath_lock(count, fail_fn) \ | ||
25 | do { \ | ||
26 | unsigned int dummy; \ | ||
27 | \ | ||
28 | typecheck(atomic_t *, count); \ | ||
29 | typecheck_fn(void (*)(atomic_t *), fail_fn); \ | ||
30 | \ | ||
31 | asm volatile(LOCK_PREFIX " decl (%%eax)\n" \ | ||
32 | " jns 1f \n" \ | ||
33 | " call " #fail_fn "\n" \ | ||
34 | "1:\n" \ | ||
35 | : "=a" (dummy) \ | ||
36 | : "a" (count) \ | ||
37 | : "memory", "ecx", "edx"); \ | ||
38 | } while (0) | ||
39 | |||
40 | |||
41 | /** | ||
42 | * __mutex_fastpath_lock_retval - try to take the lock by moving the count | ||
43 | * from 1 to a 0 value | ||
44 | * @count: pointer of type atomic_t | ||
45 | * @fail_fn: function to call if the original value was not 1 | ||
46 | * | ||
47 | * Change the count from 1 to a value lower than 1, and call <fail_fn> if it | ||
48 | * wasn't 1 originally. This function returns 0 if the fastpath succeeds, | ||
49 | * or anything the slow path function returns | ||
50 | */ | ||
51 | static inline int __mutex_fastpath_lock_retval(atomic_t *count, | ||
52 | int (*fail_fn)(atomic_t *)) | ||
53 | { | ||
54 | if (unlikely(atomic_dec_return(count) < 0)) | ||
55 | return fail_fn(count); | ||
56 | else | ||
57 | return 0; | ||
58 | } | ||
59 | |||
60 | /** | ||
61 | * __mutex_fastpath_unlock - try to promote the mutex from 0 to 1 | ||
62 | * @count: pointer of type atomic_t | ||
63 | * @fail_fn: function to call if the original value was not 0 | ||
64 | * | ||
65 | * try to promote the mutex from 0 to 1. if it wasn't 0, call <fail_fn>. | ||
66 | * In the failure case, this function is allowed to either set the value | ||
67 | * to 1, or to set it to a value lower than 1. | ||
68 | * | ||
69 | * If the implementation sets it to a value of lower than 1, the | ||
70 | * __mutex_slowpath_needs_to_unlock() macro needs to return 1, it needs | ||
71 | * to return 0 otherwise. | ||
72 | */ | ||
73 | #define __mutex_fastpath_unlock(count, fail_fn) \ | ||
74 | do { \ | ||
75 | unsigned int dummy; \ | ||
76 | \ | ||
77 | typecheck(atomic_t *, count); \ | ||
78 | typecheck_fn(void (*)(atomic_t *), fail_fn); \ | ||
79 | \ | ||
80 | asm volatile(LOCK_PREFIX " incl (%%eax)\n" \ | ||
81 | " jg 1f\n" \ | ||
82 | " call " #fail_fn "\n" \ | ||
83 | "1:\n" \ | ||
84 | : "=a" (dummy) \ | ||
85 | : "a" (count) \ | ||
86 | : "memory", "ecx", "edx"); \ | ||
87 | } while (0) | ||
88 | |||
89 | #define __mutex_slowpath_needs_to_unlock() 1 | ||
90 | |||
91 | /** | ||
92 | * __mutex_fastpath_trylock - try to acquire the mutex, without waiting | ||
93 | * | ||
94 | * @count: pointer of type atomic_t | ||
95 | * @fail_fn: fallback function | ||
96 | * | ||
97 | * Change the count from 1 to a value lower than 1, and return 0 (failure) | ||
98 | * if it wasn't 1 originally, or return 1 (success) otherwise. This function | ||
99 | * MUST leave the value lower than 1 even when the "1" assertion wasn't true. | ||
100 | * Additionally, if the value was < 0 originally, this function must not leave | ||
101 | * it to 0 on failure. | ||
102 | */ | ||
103 | static inline int __mutex_fastpath_trylock(atomic_t *count, | ||
104 | int (*fail_fn)(atomic_t *)) | ||
105 | { | ||
106 | /* | ||
107 | * We have two variants here. The cmpxchg based one is the best one | ||
108 | * because it never induce a false contention state. It is included | ||
109 | * here because architectures using the inc/dec algorithms over the | ||
110 | * xchg ones are much more likely to support cmpxchg natively. | ||
111 | * | ||
112 | * If not we fall back to the spinlock based variant - that is | ||
113 | * just as efficient (and simpler) as a 'destructive' probing of | ||
114 | * the mutex state would be. | ||
115 | */ | ||
116 | #ifdef __HAVE_ARCH_CMPXCHG | ||
117 | if (likely(atomic_cmpxchg(count, 1, 0) == 1)) | ||
118 | return 1; | ||
119 | return 0; | ||
120 | #else | ||
121 | return fail_fn(count); | ||
122 | #endif | ||
123 | } | ||
124 | |||
125 | #endif /* _ASM_X86_MUTEX_32_H */ | ||
diff --git a/arch/x86/include/asm/mutex_64.h b/arch/x86/include/asm/mutex_64.h new file mode 100644 index 000000000000..68a87b0f8e29 --- /dev/null +++ b/arch/x86/include/asm/mutex_64.h | |||
@@ -0,0 +1,100 @@ | |||
1 | /* | ||
2 | * Assembly implementation of the mutex fastpath, based on atomic | ||
3 | * decrement/increment. | ||
4 | * | ||
5 | * started by Ingo Molnar: | ||
6 | * | ||
7 | * Copyright (C) 2004, 2005, 2006 Red Hat, Inc., Ingo Molnar <mingo@redhat.com> | ||
8 | */ | ||
9 | #ifndef _ASM_X86_MUTEX_64_H | ||
10 | #define _ASM_X86_MUTEX_64_H | ||
11 | |||
12 | /** | ||
13 | * __mutex_fastpath_lock - decrement and call function if negative | ||
14 | * @v: pointer of type atomic_t | ||
15 | * @fail_fn: function to call if the result is negative | ||
16 | * | ||
17 | * Atomically decrements @v and calls <fail_fn> if the result is negative. | ||
18 | */ | ||
19 | #define __mutex_fastpath_lock(v, fail_fn) \ | ||
20 | do { \ | ||
21 | unsigned long dummy; \ | ||
22 | \ | ||
23 | typecheck(atomic_t *, v); \ | ||
24 | typecheck_fn(void (*)(atomic_t *), fail_fn); \ | ||
25 | \ | ||
26 | asm volatile(LOCK_PREFIX " decl (%%rdi)\n" \ | ||
27 | " jns 1f \n" \ | ||
28 | " call " #fail_fn "\n" \ | ||
29 | "1:" \ | ||
30 | : "=D" (dummy) \ | ||
31 | : "D" (v) \ | ||
32 | : "rax", "rsi", "rdx", "rcx", \ | ||
33 | "r8", "r9", "r10", "r11", "memory"); \ | ||
34 | } while (0) | ||
35 | |||
36 | /** | ||
37 | * __mutex_fastpath_lock_retval - try to take the lock by moving the count | ||
38 | * from 1 to a 0 value | ||
39 | * @count: pointer of type atomic_t | ||
40 | * @fail_fn: function to call if the original value was not 1 | ||
41 | * | ||
42 | * Change the count from 1 to a value lower than 1, and call <fail_fn> if | ||
43 | * it wasn't 1 originally. This function returns 0 if the fastpath succeeds, | ||
44 | * or anything the slow path function returns | ||
45 | */ | ||
46 | static inline int __mutex_fastpath_lock_retval(atomic_t *count, | ||
47 | int (*fail_fn)(atomic_t *)) | ||
48 | { | ||
49 | if (unlikely(atomic_dec_return(count) < 0)) | ||
50 | return fail_fn(count); | ||
51 | else | ||
52 | return 0; | ||
53 | } | ||
54 | |||
55 | /** | ||
56 | * __mutex_fastpath_unlock - increment and call function if nonpositive | ||
57 | * @v: pointer of type atomic_t | ||
58 | * @fail_fn: function to call if the result is nonpositive | ||
59 | * | ||
60 | * Atomically increments @v and calls <fail_fn> if the result is nonpositive. | ||
61 | */ | ||
62 | #define __mutex_fastpath_unlock(v, fail_fn) \ | ||
63 | do { \ | ||
64 | unsigned long dummy; \ | ||
65 | \ | ||
66 | typecheck(atomic_t *, v); \ | ||
67 | typecheck_fn(void (*)(atomic_t *), fail_fn); \ | ||
68 | \ | ||
69 | asm volatile(LOCK_PREFIX " incl (%%rdi)\n" \ | ||
70 | " jg 1f\n" \ | ||
71 | " call " #fail_fn "\n" \ | ||
72 | "1:" \ | ||
73 | : "=D" (dummy) \ | ||
74 | : "D" (v) \ | ||
75 | : "rax", "rsi", "rdx", "rcx", \ | ||
76 | "r8", "r9", "r10", "r11", "memory"); \ | ||
77 | } while (0) | ||
78 | |||
79 | #define __mutex_slowpath_needs_to_unlock() 1 | ||
80 | |||
81 | /** | ||
82 | * __mutex_fastpath_trylock - try to acquire the mutex, without waiting | ||
83 | * | ||
84 | * @count: pointer of type atomic_t | ||
85 | * @fail_fn: fallback function | ||
86 | * | ||
87 | * Change the count from 1 to 0 and return 1 (success), or return 0 (failure) | ||
88 | * if it wasn't 1 originally. [the fallback function is never used on | ||
89 | * x86_64, because all x86_64 CPUs have a CMPXCHG instruction.] | ||
90 | */ | ||
91 | static inline int __mutex_fastpath_trylock(atomic_t *count, | ||
92 | int (*fail_fn)(atomic_t *)) | ||
93 | { | ||
94 | if (likely(atomic_cmpxchg(count, 1, 0) == 1)) | ||
95 | return 1; | ||
96 | else | ||
97 | return 0; | ||
98 | } | ||
99 | |||
100 | #endif /* _ASM_X86_MUTEX_64_H */ | ||
diff --git a/arch/x86/include/asm/nmi.h b/arch/x86/include/asm/nmi.h new file mode 100644 index 000000000000..c45a0a568dff --- /dev/null +++ b/arch/x86/include/asm/nmi.h | |||
@@ -0,0 +1,81 @@ | |||
1 | #ifndef _ASM_X86_NMI_H | ||
2 | #define _ASM_X86_NMI_H | ||
3 | |||
4 | #include <linux/pm.h> | ||
5 | #include <asm/irq.h> | ||
6 | #include <asm/io.h> | ||
7 | |||
8 | #ifdef ARCH_HAS_NMI_WATCHDOG | ||
9 | |||
10 | /** | ||
11 | * do_nmi_callback | ||
12 | * | ||
13 | * Check to see if a callback exists and execute it. Return 1 | ||
14 | * if the handler exists and was handled successfully. | ||
15 | */ | ||
16 | int do_nmi_callback(struct pt_regs *regs, int cpu); | ||
17 | |||
18 | extern void die_nmi(char *str, struct pt_regs *regs, int do_panic); | ||
19 | extern int check_nmi_watchdog(void); | ||
20 | extern int nmi_watchdog_enabled; | ||
21 | extern int avail_to_resrv_perfctr_nmi_bit(unsigned int); | ||
22 | extern int avail_to_resrv_perfctr_nmi(unsigned int); | ||
23 | extern int reserve_perfctr_nmi(unsigned int); | ||
24 | extern void release_perfctr_nmi(unsigned int); | ||
25 | extern int reserve_evntsel_nmi(unsigned int); | ||
26 | extern void release_evntsel_nmi(unsigned int); | ||
27 | |||
28 | extern void setup_apic_nmi_watchdog(void *); | ||
29 | extern void stop_apic_nmi_watchdog(void *); | ||
30 | extern void disable_timer_nmi_watchdog(void); | ||
31 | extern void enable_timer_nmi_watchdog(void); | ||
32 | extern int nmi_watchdog_tick(struct pt_regs *regs, unsigned reason); | ||
33 | extern void cpu_nmi_set_wd_enabled(void); | ||
34 | |||
35 | extern atomic_t nmi_active; | ||
36 | extern unsigned int nmi_watchdog; | ||
37 | #define NMI_NONE 0 | ||
38 | #define NMI_IO_APIC 1 | ||
39 | #define NMI_LOCAL_APIC 2 | ||
40 | #define NMI_INVALID 3 | ||
41 | |||
42 | struct ctl_table; | ||
43 | struct file; | ||
44 | extern int proc_nmi_enabled(struct ctl_table *, int , struct file *, | ||
45 | void __user *, size_t *, loff_t *); | ||
46 | extern int unknown_nmi_panic; | ||
47 | |||
48 | void __trigger_all_cpu_backtrace(void); | ||
49 | #define trigger_all_cpu_backtrace() __trigger_all_cpu_backtrace() | ||
50 | |||
51 | static inline void localise_nmi_watchdog(void) | ||
52 | { | ||
53 | if (nmi_watchdog == NMI_IO_APIC) | ||
54 | nmi_watchdog = NMI_LOCAL_APIC; | ||
55 | } | ||
56 | |||
57 | /* check if nmi_watchdog is active (ie was specified at boot) */ | ||
58 | static inline int nmi_watchdog_active(void) | ||
59 | { | ||
60 | /* | ||
61 | * actually it should be: | ||
62 | * return (nmi_watchdog == NMI_LOCAL_APIC || | ||
63 | * nmi_watchdog == NMI_IO_APIC) | ||
64 | * but since they are power of two we could use a | ||
65 | * cheaper way --cvg | ||
66 | */ | ||
67 | return nmi_watchdog & 0x3; | ||
68 | } | ||
69 | #endif | ||
70 | |||
71 | void lapic_watchdog_stop(void); | ||
72 | int lapic_watchdog_init(unsigned nmi_hz); | ||
73 | int lapic_wd_event(unsigned nmi_hz); | ||
74 | unsigned lapic_adjust_nmi_hz(unsigned hz); | ||
75 | int lapic_watchdog_ok(void); | ||
76 | void disable_lapic_nmi_watchdog(void); | ||
77 | void enable_lapic_nmi_watchdog(void); | ||
78 | void stop_nmi(void); | ||
79 | void restart_nmi(void); | ||
80 | |||
81 | #endif /* _ASM_X86_NMI_H */ | ||
diff --git a/arch/x86/include/asm/nops.h b/arch/x86/include/asm/nops.h new file mode 100644 index 000000000000..ad2668ee1aa7 --- /dev/null +++ b/arch/x86/include/asm/nops.h | |||
@@ -0,0 +1,118 @@ | |||
1 | #ifndef _ASM_X86_NOPS_H | ||
2 | #define _ASM_X86_NOPS_H | ||
3 | |||
4 | /* Define nops for use with alternative() */ | ||
5 | |||
6 | /* generic versions from gas | ||
7 | 1: nop | ||
8 | the following instructions are NOT nops in 64-bit mode, | ||
9 | for 64-bit mode use K8 or P6 nops instead | ||
10 | 2: movl %esi,%esi | ||
11 | 3: leal 0x00(%esi),%esi | ||
12 | 4: leal 0x00(,%esi,1),%esi | ||
13 | 6: leal 0x00000000(%esi),%esi | ||
14 | 7: leal 0x00000000(,%esi,1),%esi | ||
15 | */ | ||
16 | #define GENERIC_NOP1 ".byte 0x90\n" | ||
17 | #define GENERIC_NOP2 ".byte 0x89,0xf6\n" | ||
18 | #define GENERIC_NOP3 ".byte 0x8d,0x76,0x00\n" | ||
19 | #define GENERIC_NOP4 ".byte 0x8d,0x74,0x26,0x00\n" | ||
20 | #define GENERIC_NOP5 GENERIC_NOP1 GENERIC_NOP4 | ||
21 | #define GENERIC_NOP6 ".byte 0x8d,0xb6,0x00,0x00,0x00,0x00\n" | ||
22 | #define GENERIC_NOP7 ".byte 0x8d,0xb4,0x26,0x00,0x00,0x00,0x00\n" | ||
23 | #define GENERIC_NOP8 GENERIC_NOP1 GENERIC_NOP7 | ||
24 | |||
25 | /* Opteron 64bit nops | ||
26 | 1: nop | ||
27 | 2: osp nop | ||
28 | 3: osp osp nop | ||
29 | 4: osp osp osp nop | ||
30 | */ | ||
31 | #define K8_NOP1 GENERIC_NOP1 | ||
32 | #define K8_NOP2 ".byte 0x66,0x90\n" | ||
33 | #define K8_NOP3 ".byte 0x66,0x66,0x90\n" | ||
34 | #define K8_NOP4 ".byte 0x66,0x66,0x66,0x90\n" | ||
35 | #define K8_NOP5 K8_NOP3 K8_NOP2 | ||
36 | #define K8_NOP6 K8_NOP3 K8_NOP3 | ||
37 | #define K8_NOP7 K8_NOP4 K8_NOP3 | ||
38 | #define K8_NOP8 K8_NOP4 K8_NOP4 | ||
39 | |||
40 | /* K7 nops | ||
41 | uses eax dependencies (arbitary choice) | ||
42 | 1: nop | ||
43 | 2: movl %eax,%eax | ||
44 | 3: leal (,%eax,1),%eax | ||
45 | 4: leal 0x00(,%eax,1),%eax | ||
46 | 6: leal 0x00000000(%eax),%eax | ||
47 | 7: leal 0x00000000(,%eax,1),%eax | ||
48 | */ | ||
49 | #define K7_NOP1 GENERIC_NOP1 | ||
50 | #define K7_NOP2 ".byte 0x8b,0xc0\n" | ||
51 | #define K7_NOP3 ".byte 0x8d,0x04,0x20\n" | ||
52 | #define K7_NOP4 ".byte 0x8d,0x44,0x20,0x00\n" | ||
53 | #define K7_NOP5 K7_NOP4 ASM_NOP1 | ||
54 | #define K7_NOP6 ".byte 0x8d,0x80,0,0,0,0\n" | ||
55 | #define K7_NOP7 ".byte 0x8D,0x04,0x05,0,0,0,0\n" | ||
56 | #define K7_NOP8 K7_NOP7 ASM_NOP1 | ||
57 | |||
58 | /* P6 nops | ||
59 | uses eax dependencies (Intel-recommended choice) | ||
60 | 1: nop | ||
61 | 2: osp nop | ||
62 | 3: nopl (%eax) | ||
63 | 4: nopl 0x00(%eax) | ||
64 | 5: nopl 0x00(%eax,%eax,1) | ||
65 | 6: osp nopl 0x00(%eax,%eax,1) | ||
66 | 7: nopl 0x00000000(%eax) | ||
67 | 8: nopl 0x00000000(%eax,%eax,1) | ||
68 | */ | ||
69 | #define P6_NOP1 GENERIC_NOP1 | ||
70 | #define P6_NOP2 ".byte 0x66,0x90\n" | ||
71 | #define P6_NOP3 ".byte 0x0f,0x1f,0x00\n" | ||
72 | #define P6_NOP4 ".byte 0x0f,0x1f,0x40,0\n" | ||
73 | #define P6_NOP5 ".byte 0x0f,0x1f,0x44,0x00,0\n" | ||
74 | #define P6_NOP6 ".byte 0x66,0x0f,0x1f,0x44,0x00,0\n" | ||
75 | #define P6_NOP7 ".byte 0x0f,0x1f,0x80,0,0,0,0\n" | ||
76 | #define P6_NOP8 ".byte 0x0f,0x1f,0x84,0x00,0,0,0,0\n" | ||
77 | |||
78 | #if defined(CONFIG_MK7) | ||
79 | #define ASM_NOP1 K7_NOP1 | ||
80 | #define ASM_NOP2 K7_NOP2 | ||
81 | #define ASM_NOP3 K7_NOP3 | ||
82 | #define ASM_NOP4 K7_NOP4 | ||
83 | #define ASM_NOP5 K7_NOP5 | ||
84 | #define ASM_NOP6 K7_NOP6 | ||
85 | #define ASM_NOP7 K7_NOP7 | ||
86 | #define ASM_NOP8 K7_NOP8 | ||
87 | #elif defined(CONFIG_X86_P6_NOP) | ||
88 | #define ASM_NOP1 P6_NOP1 | ||
89 | #define ASM_NOP2 P6_NOP2 | ||
90 | #define ASM_NOP3 P6_NOP3 | ||
91 | #define ASM_NOP4 P6_NOP4 | ||
92 | #define ASM_NOP5 P6_NOP5 | ||
93 | #define ASM_NOP6 P6_NOP6 | ||
94 | #define ASM_NOP7 P6_NOP7 | ||
95 | #define ASM_NOP8 P6_NOP8 | ||
96 | #elif defined(CONFIG_X86_64) | ||
97 | #define ASM_NOP1 K8_NOP1 | ||
98 | #define ASM_NOP2 K8_NOP2 | ||
99 | #define ASM_NOP3 K8_NOP3 | ||
100 | #define ASM_NOP4 K8_NOP4 | ||
101 | #define ASM_NOP5 K8_NOP5 | ||
102 | #define ASM_NOP6 K8_NOP6 | ||
103 | #define ASM_NOP7 K8_NOP7 | ||
104 | #define ASM_NOP8 K8_NOP8 | ||
105 | #else | ||
106 | #define ASM_NOP1 GENERIC_NOP1 | ||
107 | #define ASM_NOP2 GENERIC_NOP2 | ||
108 | #define ASM_NOP3 GENERIC_NOP3 | ||
109 | #define ASM_NOP4 GENERIC_NOP4 | ||
110 | #define ASM_NOP5 GENERIC_NOP5 | ||
111 | #define ASM_NOP6 GENERIC_NOP6 | ||
112 | #define ASM_NOP7 GENERIC_NOP7 | ||
113 | #define ASM_NOP8 GENERIC_NOP8 | ||
114 | #endif | ||
115 | |||
116 | #define ASM_NOP_MAX 8 | ||
117 | |||
118 | #endif /* _ASM_X86_NOPS_H */ | ||
diff --git a/arch/x86/include/asm/numa.h b/arch/x86/include/asm/numa.h new file mode 100644 index 000000000000..27da400d3138 --- /dev/null +++ b/arch/x86/include/asm/numa.h | |||
@@ -0,0 +1,5 @@ | |||
1 | #ifdef CONFIG_X86_32 | ||
2 | # include "numa_32.h" | ||
3 | #else | ||
4 | # include "numa_64.h" | ||
5 | #endif | ||
diff --git a/arch/x86/include/asm/numa_32.h b/arch/x86/include/asm/numa_32.h new file mode 100644 index 000000000000..e9f5db796244 --- /dev/null +++ b/arch/x86/include/asm/numa_32.h | |||
@@ -0,0 +1,11 @@ | |||
1 | #ifndef _ASM_X86_NUMA_32_H | ||
2 | #define _ASM_X86_NUMA_32_H | ||
3 | |||
4 | extern int pxm_to_nid(int pxm); | ||
5 | extern void numa_remove_cpu(int cpu); | ||
6 | |||
7 | #ifdef CONFIG_NUMA | ||
8 | extern void set_highmem_pages_init(void); | ||
9 | #endif | ||
10 | |||
11 | #endif /* _ASM_X86_NUMA_32_H */ | ||
diff --git a/arch/x86/include/asm/numa_64.h b/arch/x86/include/asm/numa_64.h new file mode 100644 index 000000000000..064ed6df4cbe --- /dev/null +++ b/arch/x86/include/asm/numa_64.h | |||
@@ -0,0 +1,43 @@ | |||
1 | #ifndef _ASM_X86_NUMA_64_H | ||
2 | #define _ASM_X86_NUMA_64_H | ||
3 | |||
4 | #include <linux/nodemask.h> | ||
5 | #include <asm/apicdef.h> | ||
6 | |||
7 | struct bootnode { | ||
8 | u64 start; | ||
9 | u64 end; | ||
10 | }; | ||
11 | |||
12 | extern int compute_hash_shift(struct bootnode *nodes, int numblks, | ||
13 | int *nodeids); | ||
14 | |||
15 | #define ZONE_ALIGN (1UL << (MAX_ORDER+PAGE_SHIFT)) | ||
16 | |||
17 | extern void numa_init_array(void); | ||
18 | extern int numa_off; | ||
19 | |||
20 | extern void srat_reserve_add_area(int nodeid); | ||
21 | extern int hotadd_percent; | ||
22 | |||
23 | extern s16 apicid_to_node[MAX_LOCAL_APIC]; | ||
24 | |||
25 | extern unsigned long numa_free_all_bootmem(void); | ||
26 | extern void setup_node_bootmem(int nodeid, unsigned long start, | ||
27 | unsigned long end); | ||
28 | |||
29 | #ifdef CONFIG_NUMA | ||
30 | extern void __init init_cpu_to_node(void); | ||
31 | extern void __cpuinit numa_set_node(int cpu, int node); | ||
32 | extern void __cpuinit numa_clear_node(int cpu); | ||
33 | extern void __cpuinit numa_add_cpu(int cpu); | ||
34 | extern void __cpuinit numa_remove_cpu(int cpu); | ||
35 | #else | ||
36 | static inline void init_cpu_to_node(void) { } | ||
37 | static inline void numa_set_node(int cpu, int node) { } | ||
38 | static inline void numa_clear_node(int cpu) { } | ||
39 | static inline void numa_add_cpu(int cpu, int node) { } | ||
40 | static inline void numa_remove_cpu(int cpu) { } | ||
41 | #endif | ||
42 | |||
43 | #endif /* _ASM_X86_NUMA_64_H */ | ||
diff --git a/arch/x86/include/asm/numaq.h b/arch/x86/include/asm/numaq.h new file mode 100644 index 000000000000..1e8bd30b4c16 --- /dev/null +++ b/arch/x86/include/asm/numaq.h | |||
@@ -0,0 +1,169 @@ | |||
1 | /* | ||
2 | * Written by: Patricia Gaughen, IBM Corporation | ||
3 | * | ||
4 | * Copyright (C) 2002, IBM Corp. | ||
5 | * | ||
6 | * All rights reserved. | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License as published by | ||
10 | * the Free Software Foundation; either version 2 of the License, or | ||
11 | * (at your option) any later version. | ||
12 | * | ||
13 | * This program is distributed in the hope that it will be useful, but | ||
14 | * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or | ||
16 | * NON INFRINGEMENT. See the GNU General Public License for more | ||
17 | * details. | ||
18 | * | ||
19 | * You should have received a copy of the GNU General Public License | ||
20 | * along with this program; if not, write to the Free Software | ||
21 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
22 | * | ||
23 | * Send feedback to <gone@us.ibm.com> | ||
24 | */ | ||
25 | |||
26 | #ifndef _ASM_X86_NUMAQ_H | ||
27 | #define _ASM_X86_NUMAQ_H | ||
28 | |||
29 | #ifdef CONFIG_X86_NUMAQ | ||
30 | |||
31 | extern int found_numaq; | ||
32 | extern int get_memcfg_numaq(void); | ||
33 | |||
34 | /* | ||
35 | * SYS_CFG_DATA_PRIV_ADDR, struct eachquadmem, and struct sys_cfg_data are the | ||
36 | */ | ||
37 | #define SYS_CFG_DATA_PRIV_ADDR 0x0009d000 /* place for scd in private | ||
38 | quad space */ | ||
39 | |||
40 | /* | ||
41 | * Communication area for each processor on lynxer-processor tests. | ||
42 | * | ||
43 | * NOTE: If you change the size of this eachproc structure you need | ||
44 | * to change the definition for EACH_QUAD_SIZE. | ||
45 | */ | ||
46 | struct eachquadmem { | ||
47 | unsigned int priv_mem_start; /* Starting address of this */ | ||
48 | /* quad's private memory. */ | ||
49 | /* This is always 0. */ | ||
50 | /* In MB. */ | ||
51 | unsigned int priv_mem_size; /* Size of this quad's */ | ||
52 | /* private memory. */ | ||
53 | /* In MB. */ | ||
54 | unsigned int low_shrd_mem_strp_start;/* Starting address of this */ | ||
55 | /* quad's low shared block */ | ||
56 | /* (untranslated). */ | ||
57 | /* In MB. */ | ||
58 | unsigned int low_shrd_mem_start; /* Starting address of this */ | ||
59 | /* quad's low shared memory */ | ||
60 | /* (untranslated). */ | ||
61 | /* In MB. */ | ||
62 | unsigned int low_shrd_mem_size; /* Size of this quad's low */ | ||
63 | /* shared memory. */ | ||
64 | /* In MB. */ | ||
65 | unsigned int lmmio_copb_start; /* Starting address of this */ | ||
66 | /* quad's local memory */ | ||
67 | /* mapped I/O in the */ | ||
68 | /* compatibility OPB. */ | ||
69 | /* In MB. */ | ||
70 | unsigned int lmmio_copb_size; /* Size of this quad's local */ | ||
71 | /* memory mapped I/O in the */ | ||
72 | /* compatibility OPB. */ | ||
73 | /* In MB. */ | ||
74 | unsigned int lmmio_nopb_start; /* Starting address of this */ | ||
75 | /* quad's local memory */ | ||
76 | /* mapped I/O in the */ | ||
77 | /* non-compatibility OPB. */ | ||
78 | /* In MB. */ | ||
79 | unsigned int lmmio_nopb_size; /* Size of this quad's local */ | ||
80 | /* memory mapped I/O in the */ | ||
81 | /* non-compatibility OPB. */ | ||
82 | /* In MB. */ | ||
83 | unsigned int io_apic_0_start; /* Starting address of I/O */ | ||
84 | /* APIC 0. */ | ||
85 | unsigned int io_apic_0_sz; /* Size I/O APIC 0. */ | ||
86 | unsigned int io_apic_1_start; /* Starting address of I/O */ | ||
87 | /* APIC 1. */ | ||
88 | unsigned int io_apic_1_sz; /* Size I/O APIC 1. */ | ||
89 | unsigned int hi_shrd_mem_start; /* Starting address of this */ | ||
90 | /* quad's high shared memory.*/ | ||
91 | /* In MB. */ | ||
92 | unsigned int hi_shrd_mem_size; /* Size of this quad's high */ | ||
93 | /* shared memory. */ | ||
94 | /* In MB. */ | ||
95 | unsigned int mps_table_addr; /* Address of this quad's */ | ||
96 | /* MPS tables from BIOS, */ | ||
97 | /* in system space.*/ | ||
98 | unsigned int lcl_MDC_pio_addr; /* Port-I/O address for */ | ||
99 | /* local access of MDC. */ | ||
100 | unsigned int rmt_MDC_mmpio_addr; /* MM-Port-I/O address for */ | ||
101 | /* remote access of MDC. */ | ||
102 | unsigned int mm_port_io_start; /* Starting address of this */ | ||
103 | /* quad's memory mapped Port */ | ||
104 | /* I/O space. */ | ||
105 | unsigned int mm_port_io_size; /* Size of this quad's memory*/ | ||
106 | /* mapped Port I/O space. */ | ||
107 | unsigned int mm_rmt_io_apic_start; /* Starting address of this */ | ||
108 | /* quad's memory mapped */ | ||
109 | /* remote I/O APIC space. */ | ||
110 | unsigned int mm_rmt_io_apic_size; /* Size of this quad's memory*/ | ||
111 | /* mapped remote I/O APIC */ | ||
112 | /* space. */ | ||
113 | unsigned int mm_isa_start; /* Starting address of this */ | ||
114 | /* quad's memory mapped ISA */ | ||
115 | /* space (contains MDC */ | ||
116 | /* memory space). */ | ||
117 | unsigned int mm_isa_size; /* Size of this quad's memory*/ | ||
118 | /* mapped ISA space (contains*/ | ||
119 | /* MDC memory space). */ | ||
120 | unsigned int rmt_qmi_addr; /* Remote addr to access QMI.*/ | ||
121 | unsigned int lcl_qmi_addr; /* Local addr to access QMI. */ | ||
122 | }; | ||
123 | |||
124 | /* | ||
125 | * Note: This structure must be NOT be changed unless the multiproc and | ||
126 | * OS are changed to reflect the new structure. | ||
127 | */ | ||
128 | struct sys_cfg_data { | ||
129 | unsigned int quad_id; | ||
130 | unsigned int bsp_proc_id; /* Boot Strap Processor in this quad. */ | ||
131 | unsigned int scd_version; /* Version number of this table. */ | ||
132 | unsigned int first_quad_id; | ||
133 | unsigned int quads_present31_0; /* 1 bit for each quad */ | ||
134 | unsigned int quads_present63_32; /* 1 bit for each quad */ | ||
135 | unsigned int config_flags; | ||
136 | unsigned int boot_flags; | ||
137 | unsigned int csr_start_addr; /* Absolute value (not in MB) */ | ||
138 | unsigned int csr_size; /* Absolute value (not in MB) */ | ||
139 | unsigned int lcl_apic_start_addr; /* Absolute value (not in MB) */ | ||
140 | unsigned int lcl_apic_size; /* Absolute value (not in MB) */ | ||
141 | unsigned int low_shrd_mem_base; /* 0 or 512MB or 1GB */ | ||
142 | unsigned int low_shrd_mem_quad_offset; /* 0,128M,256M,512M,1G */ | ||
143 | /* may not be totally populated */ | ||
144 | unsigned int split_mem_enbl; /* 0 for no low shared memory */ | ||
145 | unsigned int mmio_sz; /* Size of total system memory mapped I/O */ | ||
146 | /* (in MB). */ | ||
147 | unsigned int quad_spin_lock; /* Spare location used for quad */ | ||
148 | /* bringup. */ | ||
149 | unsigned int nonzero55; /* For checksumming. */ | ||
150 | unsigned int nonzeroaa; /* For checksumming. */ | ||
151 | unsigned int scd_magic_number; | ||
152 | unsigned int system_type; | ||
153 | unsigned int checksum; | ||
154 | /* | ||
155 | * memory configuration area for each quad | ||
156 | */ | ||
157 | struct eachquadmem eq[MAX_NUMNODES]; /* indexed by quad id */ | ||
158 | }; | ||
159 | |||
160 | void numaq_tsc_disable(void); | ||
161 | |||
162 | #else | ||
163 | static inline int get_memcfg_numaq(void) | ||
164 | { | ||
165 | return 0; | ||
166 | } | ||
167 | #endif /* CONFIG_X86_NUMAQ */ | ||
168 | #endif /* _ASM_X86_NUMAQ_H */ | ||
169 | |||
diff --git a/arch/x86/include/asm/numaq/apic.h b/arch/x86/include/asm/numaq/apic.h new file mode 100644 index 000000000000..0bf2a06b7a4e --- /dev/null +++ b/arch/x86/include/asm/numaq/apic.h | |||
@@ -0,0 +1,136 @@ | |||
1 | #ifndef __ASM_NUMAQ_APIC_H | ||
2 | #define __ASM_NUMAQ_APIC_H | ||
3 | |||
4 | #include <asm/io.h> | ||
5 | #include <linux/mmzone.h> | ||
6 | #include <linux/nodemask.h> | ||
7 | |||
8 | #define APIC_DFR_VALUE (APIC_DFR_CLUSTER) | ||
9 | |||
10 | static inline cpumask_t target_cpus(void) | ||
11 | { | ||
12 | return CPU_MASK_ALL; | ||
13 | } | ||
14 | |||
15 | #define NO_BALANCE_IRQ (1) | ||
16 | #define esr_disable (1) | ||
17 | |||
18 | #define INT_DELIVERY_MODE dest_LowestPrio | ||
19 | #define INT_DEST_MODE 0 /* physical delivery on LOCAL quad */ | ||
20 | |||
21 | static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid) | ||
22 | { | ||
23 | return physid_isset(apicid, bitmap); | ||
24 | } | ||
25 | static inline unsigned long check_apicid_present(int bit) | ||
26 | { | ||
27 | return physid_isset(bit, phys_cpu_present_map); | ||
28 | } | ||
29 | #define apicid_cluster(apicid) (apicid & 0xF0) | ||
30 | |||
31 | static inline int apic_id_registered(void) | ||
32 | { | ||
33 | return 1; | ||
34 | } | ||
35 | |||
36 | static inline void init_apic_ldr(void) | ||
37 | { | ||
38 | /* Already done in NUMA-Q firmware */ | ||
39 | } | ||
40 | |||
41 | static inline void setup_apic_routing(void) | ||
42 | { | ||
43 | printk("Enabling APIC mode: %s. Using %d I/O APICs\n", | ||
44 | "NUMA-Q", nr_ioapics); | ||
45 | } | ||
46 | |||
47 | /* | ||
48 | * Skip adding the timer int on secondary nodes, which causes | ||
49 | * a small but painful rift in the time-space continuum. | ||
50 | */ | ||
51 | static inline int multi_timer_check(int apic, int irq) | ||
52 | { | ||
53 | return apic != 0 && irq == 0; | ||
54 | } | ||
55 | |||
56 | static inline physid_mask_t ioapic_phys_id_map(physid_mask_t phys_map) | ||
57 | { | ||
58 | /* We don't have a good way to do this yet - hack */ | ||
59 | return physids_promote(0xFUL); | ||
60 | } | ||
61 | |||
62 | /* Mapping from cpu number to logical apicid */ | ||
63 | extern u8 cpu_2_logical_apicid[]; | ||
64 | static inline int cpu_to_logical_apicid(int cpu) | ||
65 | { | ||
66 | if (cpu >= NR_CPUS) | ||
67 | return BAD_APICID; | ||
68 | return (int)cpu_2_logical_apicid[cpu]; | ||
69 | } | ||
70 | |||
71 | /* | ||
72 | * Supporting over 60 cpus on NUMA-Q requires a locality-dependent | ||
73 | * cpu to APIC ID relation to properly interact with the intelligent | ||
74 | * mode of the cluster controller. | ||
75 | */ | ||
76 | static inline int cpu_present_to_apicid(int mps_cpu) | ||
77 | { | ||
78 | if (mps_cpu < 60) | ||
79 | return ((mps_cpu >> 2) << 4) | (1 << (mps_cpu & 0x3)); | ||
80 | else | ||
81 | return BAD_APICID; | ||
82 | } | ||
83 | |||
84 | static inline int apicid_to_node(int logical_apicid) | ||
85 | { | ||
86 | return logical_apicid >> 4; | ||
87 | } | ||
88 | |||
89 | static inline physid_mask_t apicid_to_cpu_present(int logical_apicid) | ||
90 | { | ||
91 | int node = apicid_to_node(logical_apicid); | ||
92 | int cpu = __ffs(logical_apicid & 0xf); | ||
93 | |||
94 | return physid_mask_of_physid(cpu + 4*node); | ||
95 | } | ||
96 | |||
97 | extern void *xquad_portio; | ||
98 | |||
99 | static inline void setup_portio_remap(void) | ||
100 | { | ||
101 | int num_quads = num_online_nodes(); | ||
102 | |||
103 | if (num_quads <= 1) | ||
104 | return; | ||
105 | |||
106 | printk("Remapping cross-quad port I/O for %d quads\n", num_quads); | ||
107 | xquad_portio = ioremap(XQUAD_PORTIO_BASE, num_quads*XQUAD_PORTIO_QUAD); | ||
108 | printk("xquad_portio vaddr 0x%08lx, len %08lx\n", | ||
109 | (u_long) xquad_portio, (u_long) num_quads*XQUAD_PORTIO_QUAD); | ||
110 | } | ||
111 | |||
112 | static inline int check_phys_apicid_present(int boot_cpu_physical_apicid) | ||
113 | { | ||
114 | return (1); | ||
115 | } | ||
116 | |||
117 | static inline void enable_apic_mode(void) | ||
118 | { | ||
119 | } | ||
120 | |||
121 | /* | ||
122 | * We use physical apicids here, not logical, so just return the default | ||
123 | * physical broadcast to stop people from breaking us | ||
124 | */ | ||
125 | static inline unsigned int cpu_mask_to_apicid(cpumask_t cpumask) | ||
126 | { | ||
127 | return (int) 0xF; | ||
128 | } | ||
129 | |||
130 | /* No NUMA-Q box has a HT CPU, but it can't hurt to use the default code. */ | ||
131 | static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb) | ||
132 | { | ||
133 | return cpuid_apic >> index_msb; | ||
134 | } | ||
135 | |||
136 | #endif /* __ASM_NUMAQ_APIC_H */ | ||
diff --git a/arch/x86/include/asm/numaq/apicdef.h b/arch/x86/include/asm/numaq/apicdef.h new file mode 100644 index 000000000000..e012a46cc22a --- /dev/null +++ b/arch/x86/include/asm/numaq/apicdef.h | |||
@@ -0,0 +1,14 @@ | |||
1 | #ifndef __ASM_NUMAQ_APICDEF_H | ||
2 | #define __ASM_NUMAQ_APICDEF_H | ||
3 | |||
4 | |||
5 | #define APIC_ID_MASK (0xF<<24) | ||
6 | |||
7 | static inline unsigned get_apic_id(unsigned long x) | ||
8 | { | ||
9 | return (((x)>>24)&0x0F); | ||
10 | } | ||
11 | |||
12 | #define GET_APIC_ID(x) get_apic_id(x) | ||
13 | |||
14 | #endif | ||
diff --git a/arch/x86/include/asm/numaq/ipi.h b/arch/x86/include/asm/numaq/ipi.h new file mode 100644 index 000000000000..935588d286cf --- /dev/null +++ b/arch/x86/include/asm/numaq/ipi.h | |||
@@ -0,0 +1,25 @@ | |||
1 | #ifndef __ASM_NUMAQ_IPI_H | ||
2 | #define __ASM_NUMAQ_IPI_H | ||
3 | |||
4 | void send_IPI_mask_sequence(cpumask_t, int vector); | ||
5 | |||
6 | static inline void send_IPI_mask(cpumask_t mask, int vector) | ||
7 | { | ||
8 | send_IPI_mask_sequence(mask, vector); | ||
9 | } | ||
10 | |||
11 | static inline void send_IPI_allbutself(int vector) | ||
12 | { | ||
13 | cpumask_t mask = cpu_online_map; | ||
14 | cpu_clear(smp_processor_id(), mask); | ||
15 | |||
16 | if (!cpus_empty(mask)) | ||
17 | send_IPI_mask(mask, vector); | ||
18 | } | ||
19 | |||
20 | static inline void send_IPI_all(int vector) | ||
21 | { | ||
22 | send_IPI_mask(cpu_online_map, vector); | ||
23 | } | ||
24 | |||
25 | #endif /* __ASM_NUMAQ_IPI_H */ | ||
diff --git a/arch/x86/include/asm/numaq/mpparse.h b/arch/x86/include/asm/numaq/mpparse.h new file mode 100644 index 000000000000..252292e077b6 --- /dev/null +++ b/arch/x86/include/asm/numaq/mpparse.h | |||
@@ -0,0 +1,7 @@ | |||
1 | #ifndef __ASM_NUMAQ_MPPARSE_H | ||
2 | #define __ASM_NUMAQ_MPPARSE_H | ||
3 | |||
4 | extern void numaq_mps_oem_check(struct mp_config_table *mpc, char *oem, | ||
5 | char *productid); | ||
6 | |||
7 | #endif /* __ASM_NUMAQ_MPPARSE_H */ | ||
diff --git a/arch/x86/include/asm/numaq/wakecpu.h b/arch/x86/include/asm/numaq/wakecpu.h new file mode 100644 index 000000000000..c577bda5b1c5 --- /dev/null +++ b/arch/x86/include/asm/numaq/wakecpu.h | |||
@@ -0,0 +1,43 @@ | |||
1 | #ifndef __ASM_NUMAQ_WAKECPU_H | ||
2 | #define __ASM_NUMAQ_WAKECPU_H | ||
3 | |||
4 | /* This file copes with machines that wakeup secondary CPUs by NMIs */ | ||
5 | |||
6 | #define WAKE_SECONDARY_VIA_NMI | ||
7 | |||
8 | #define TRAMPOLINE_LOW phys_to_virt(0x8) | ||
9 | #define TRAMPOLINE_HIGH phys_to_virt(0xa) | ||
10 | |||
11 | #define boot_cpu_apicid boot_cpu_logical_apicid | ||
12 | |||
13 | /* We don't do anything here because we use NMI's to boot instead */ | ||
14 | static inline void wait_for_init_deassert(atomic_t *deassert) | ||
15 | { | ||
16 | } | ||
17 | |||
18 | /* | ||
19 | * Because we use NMIs rather than the INIT-STARTUP sequence to | ||
20 | * bootstrap the CPUs, the APIC may be in a weird state. Kick it. | ||
21 | */ | ||
22 | static inline void smp_callin_clear_local_apic(void) | ||
23 | { | ||
24 | clear_local_APIC(); | ||
25 | } | ||
26 | |||
27 | static inline void store_NMI_vector(unsigned short *high, unsigned short *low) | ||
28 | { | ||
29 | printk("Storing NMI vector\n"); | ||
30 | *high = *((volatile unsigned short *) TRAMPOLINE_HIGH); | ||
31 | *low = *((volatile unsigned short *) TRAMPOLINE_LOW); | ||
32 | } | ||
33 | |||
34 | static inline void restore_NMI_vector(unsigned short *high, unsigned short *low) | ||
35 | { | ||
36 | printk("Restoring NMI vector\n"); | ||
37 | *((volatile unsigned short *) TRAMPOLINE_HIGH) = *high; | ||
38 | *((volatile unsigned short *) TRAMPOLINE_LOW) = *low; | ||
39 | } | ||
40 | |||
41 | #define inquire_remote_apic(apicid) {} | ||
42 | |||
43 | #endif /* __ASM_NUMAQ_WAKECPU_H */ | ||
diff --git a/arch/x86/include/asm/olpc.h b/arch/x86/include/asm/olpc.h new file mode 100644 index 000000000000..834a30295fab --- /dev/null +++ b/arch/x86/include/asm/olpc.h | |||
@@ -0,0 +1,132 @@ | |||
1 | /* OLPC machine specific definitions */ | ||
2 | |||
3 | #ifndef _ASM_X86_OLPC_H | ||
4 | #define _ASM_X86_OLPC_H | ||
5 | |||
6 | #include <asm/geode.h> | ||
7 | |||
8 | struct olpc_platform_t { | ||
9 | int flags; | ||
10 | uint32_t boardrev; | ||
11 | int ecver; | ||
12 | }; | ||
13 | |||
14 | #define OLPC_F_PRESENT 0x01 | ||
15 | #define OLPC_F_DCON 0x02 | ||
16 | #define OLPC_F_VSA 0x04 | ||
17 | |||
18 | #ifdef CONFIG_OLPC | ||
19 | |||
20 | extern struct olpc_platform_t olpc_platform_info; | ||
21 | |||
22 | /* | ||
23 | * OLPC board IDs contain the major build number within the mask 0x0ff0, | ||
24 | * and the minor build number withing 0x000f. Pre-builds have a minor | ||
25 | * number less than 8, and normal builds start at 8. For example, 0x0B10 | ||
26 | * is a PreB1, and 0x0C18 is a C1. | ||
27 | */ | ||
28 | |||
29 | static inline uint32_t olpc_board(uint8_t id) | ||
30 | { | ||
31 | return (id << 4) | 0x8; | ||
32 | } | ||
33 | |||
34 | static inline uint32_t olpc_board_pre(uint8_t id) | ||
35 | { | ||
36 | return id << 4; | ||
37 | } | ||
38 | |||
39 | static inline int machine_is_olpc(void) | ||
40 | { | ||
41 | return (olpc_platform_info.flags & OLPC_F_PRESENT) ? 1 : 0; | ||
42 | } | ||
43 | |||
44 | /* | ||
45 | * The DCON is OLPC's Display Controller. It has a number of unique | ||
46 | * features that we might want to take advantage of.. | ||
47 | */ | ||
48 | static inline int olpc_has_dcon(void) | ||
49 | { | ||
50 | return (olpc_platform_info.flags & OLPC_F_DCON) ? 1 : 0; | ||
51 | } | ||
52 | |||
53 | /* | ||
54 | * The VSA is software from AMD that typical Geode bioses will include. | ||
55 | * It is used to emulate the PCI bus, VGA, etc. OLPC's Open Firmware does | ||
56 | * not include the VSA; instead, PCI is emulated by the kernel. | ||
57 | * | ||
58 | * The VSA is described further in arch/x86/pci/olpc.c. | ||
59 | */ | ||
60 | static inline int olpc_has_vsa(void) | ||
61 | { | ||
62 | return (olpc_platform_info.flags & OLPC_F_VSA) ? 1 : 0; | ||
63 | } | ||
64 | |||
65 | /* | ||
66 | * The "Mass Production" version of OLPC's XO is identified as being model | ||
67 | * C2. During the prototype phase, the following models (in chronological | ||
68 | * order) were created: A1, B1, B2, B3, B4, C1. The A1 through B2 models | ||
69 | * were based on Geode GX CPUs, and models after that were based upon | ||
70 | * Geode LX CPUs. There were also some hand-assembled models floating | ||
71 | * around, referred to as PreB1, PreB2, etc. | ||
72 | */ | ||
73 | static inline int olpc_board_at_least(uint32_t rev) | ||
74 | { | ||
75 | return olpc_platform_info.boardrev >= rev; | ||
76 | } | ||
77 | |||
78 | #else | ||
79 | |||
80 | static inline int machine_is_olpc(void) | ||
81 | { | ||
82 | return 0; | ||
83 | } | ||
84 | |||
85 | static inline int olpc_has_dcon(void) | ||
86 | { | ||
87 | return 0; | ||
88 | } | ||
89 | |||
90 | static inline int olpc_has_vsa(void) | ||
91 | { | ||
92 | return 0; | ||
93 | } | ||
94 | |||
95 | #endif | ||
96 | |||
97 | /* EC related functions */ | ||
98 | |||
99 | extern int olpc_ec_cmd(unsigned char cmd, unsigned char *inbuf, size_t inlen, | ||
100 | unsigned char *outbuf, size_t outlen); | ||
101 | |||
102 | extern int olpc_ec_mask_set(uint8_t bits); | ||
103 | extern int olpc_ec_mask_unset(uint8_t bits); | ||
104 | |||
105 | /* EC commands */ | ||
106 | |||
107 | #define EC_FIRMWARE_REV 0x08 | ||
108 | |||
109 | /* SCI source values */ | ||
110 | |||
111 | #define EC_SCI_SRC_EMPTY 0x00 | ||
112 | #define EC_SCI_SRC_GAME 0x01 | ||
113 | #define EC_SCI_SRC_BATTERY 0x02 | ||
114 | #define EC_SCI_SRC_BATSOC 0x04 | ||
115 | #define EC_SCI_SRC_BATERR 0x08 | ||
116 | #define EC_SCI_SRC_EBOOK 0x10 | ||
117 | #define EC_SCI_SRC_WLAN 0x20 | ||
118 | #define EC_SCI_SRC_ACPWR 0x40 | ||
119 | #define EC_SCI_SRC_ALL 0x7F | ||
120 | |||
121 | /* GPIO assignments */ | ||
122 | |||
123 | #define OLPC_GPIO_MIC_AC geode_gpio(1) | ||
124 | #define OLPC_GPIO_DCON_IRQ geode_gpio(7) | ||
125 | #define OLPC_GPIO_THRM_ALRM geode_gpio(10) | ||
126 | #define OLPC_GPIO_SMB_CLK geode_gpio(14) | ||
127 | #define OLPC_GPIO_SMB_DATA geode_gpio(15) | ||
128 | #define OLPC_GPIO_WORKAUX geode_gpio(24) | ||
129 | #define OLPC_GPIO_LID geode_gpio(26) | ||
130 | #define OLPC_GPIO_ECSCI geode_gpio(27) | ||
131 | |||
132 | #endif /* _ASM_X86_OLPC_H */ | ||
diff --git a/arch/x86/include/asm/page.h b/arch/x86/include/asm/page.h new file mode 100644 index 000000000000..e9873a2e8695 --- /dev/null +++ b/arch/x86/include/asm/page.h | |||
@@ -0,0 +1,209 @@ | |||
1 | #ifndef _ASM_X86_PAGE_H | ||
2 | #define _ASM_X86_PAGE_H | ||
3 | |||
4 | #include <linux/const.h> | ||
5 | |||
6 | /* PAGE_SHIFT determines the page size */ | ||
7 | #define PAGE_SHIFT 12 | ||
8 | #define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT) | ||
9 | #define PAGE_MASK (~(PAGE_SIZE-1)) | ||
10 | |||
11 | #ifdef __KERNEL__ | ||
12 | |||
13 | #define __PHYSICAL_MASK ((phys_addr_t)(1ULL << __PHYSICAL_MASK_SHIFT) - 1) | ||
14 | #define __VIRTUAL_MASK ((1UL << __VIRTUAL_MASK_SHIFT) - 1) | ||
15 | |||
16 | /* Cast PAGE_MASK to a signed type so that it is sign-extended if | ||
17 | virtual addresses are 32-bits but physical addresses are larger | ||
18 | (ie, 32-bit PAE). */ | ||
19 | #define PHYSICAL_PAGE_MASK (((signed long)PAGE_MASK) & __PHYSICAL_MASK) | ||
20 | |||
21 | /* PTE_PFN_MASK extracts the PFN from a (pte|pmd|pud|pgd)val_t */ | ||
22 | #define PTE_PFN_MASK ((pteval_t)PHYSICAL_PAGE_MASK) | ||
23 | |||
24 | /* PTE_FLAGS_MASK extracts the flags from a (pte|pmd|pud|pgd)val_t */ | ||
25 | #define PTE_FLAGS_MASK (~PTE_PFN_MASK) | ||
26 | |||
27 | #define PMD_PAGE_SIZE (_AC(1, UL) << PMD_SHIFT) | ||
28 | #define PMD_PAGE_MASK (~(PMD_PAGE_SIZE-1)) | ||
29 | |||
30 | #define HPAGE_SHIFT PMD_SHIFT | ||
31 | #define HPAGE_SIZE (_AC(1,UL) << HPAGE_SHIFT) | ||
32 | #define HPAGE_MASK (~(HPAGE_SIZE - 1)) | ||
33 | #define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT) | ||
34 | |||
35 | #define HUGE_MAX_HSTATE 2 | ||
36 | |||
37 | #ifndef __ASSEMBLY__ | ||
38 | #include <linux/types.h> | ||
39 | #endif | ||
40 | |||
41 | #ifdef CONFIG_X86_64 | ||
42 | #include <asm/page_64.h> | ||
43 | #else | ||
44 | #include <asm/page_32.h> | ||
45 | #endif /* CONFIG_X86_64 */ | ||
46 | |||
47 | #define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET) | ||
48 | |||
49 | #define VM_DATA_DEFAULT_FLAGS \ | ||
50 | (((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0 ) | \ | ||
51 | VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) | ||
52 | |||
53 | |||
54 | #ifndef __ASSEMBLY__ | ||
55 | |||
56 | typedef struct { pgdval_t pgd; } pgd_t; | ||
57 | typedef struct { pgprotval_t pgprot; } pgprot_t; | ||
58 | |||
59 | extern int page_is_ram(unsigned long pagenr); | ||
60 | extern int pagerange_is_ram(unsigned long start, unsigned long end); | ||
61 | extern int devmem_is_allowed(unsigned long pagenr); | ||
62 | extern void map_devmem(unsigned long pfn, unsigned long size, | ||
63 | pgprot_t vma_prot); | ||
64 | extern void unmap_devmem(unsigned long pfn, unsigned long size, | ||
65 | pgprot_t vma_prot); | ||
66 | |||
67 | extern unsigned long max_low_pfn_mapped; | ||
68 | extern unsigned long max_pfn_mapped; | ||
69 | |||
70 | struct page; | ||
71 | |||
72 | static inline void clear_user_page(void *page, unsigned long vaddr, | ||
73 | struct page *pg) | ||
74 | { | ||
75 | clear_page(page); | ||
76 | } | ||
77 | |||
78 | static inline void copy_user_page(void *to, void *from, unsigned long vaddr, | ||
79 | struct page *topage) | ||
80 | { | ||
81 | copy_page(to, from); | ||
82 | } | ||
83 | |||
84 | #define __alloc_zeroed_user_highpage(movableflags, vma, vaddr) \ | ||
85 | alloc_page_vma(GFP_HIGHUSER | __GFP_ZERO | movableflags, vma, vaddr) | ||
86 | #define __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE | ||
87 | |||
88 | static inline pgd_t native_make_pgd(pgdval_t val) | ||
89 | { | ||
90 | return (pgd_t) { val }; | ||
91 | } | ||
92 | |||
93 | static inline pgdval_t native_pgd_val(pgd_t pgd) | ||
94 | { | ||
95 | return pgd.pgd; | ||
96 | } | ||
97 | |||
98 | #if PAGETABLE_LEVELS >= 3 | ||
99 | #if PAGETABLE_LEVELS == 4 | ||
100 | typedef struct { pudval_t pud; } pud_t; | ||
101 | |||
102 | static inline pud_t native_make_pud(pmdval_t val) | ||
103 | { | ||
104 | return (pud_t) { val }; | ||
105 | } | ||
106 | |||
107 | static inline pudval_t native_pud_val(pud_t pud) | ||
108 | { | ||
109 | return pud.pud; | ||
110 | } | ||
111 | #else /* PAGETABLE_LEVELS == 3 */ | ||
112 | #include <asm-generic/pgtable-nopud.h> | ||
113 | |||
114 | static inline pudval_t native_pud_val(pud_t pud) | ||
115 | { | ||
116 | return native_pgd_val(pud.pgd); | ||
117 | } | ||
118 | #endif /* PAGETABLE_LEVELS == 4 */ | ||
119 | |||
120 | typedef struct { pmdval_t pmd; } pmd_t; | ||
121 | |||
122 | static inline pmd_t native_make_pmd(pmdval_t val) | ||
123 | { | ||
124 | return (pmd_t) { val }; | ||
125 | } | ||
126 | |||
127 | static inline pmdval_t native_pmd_val(pmd_t pmd) | ||
128 | { | ||
129 | return pmd.pmd; | ||
130 | } | ||
131 | #else /* PAGETABLE_LEVELS == 2 */ | ||
132 | #include <asm-generic/pgtable-nopmd.h> | ||
133 | |||
134 | static inline pmdval_t native_pmd_val(pmd_t pmd) | ||
135 | { | ||
136 | return native_pgd_val(pmd.pud.pgd); | ||
137 | } | ||
138 | #endif /* PAGETABLE_LEVELS >= 3 */ | ||
139 | |||
140 | static inline pte_t native_make_pte(pteval_t val) | ||
141 | { | ||
142 | return (pte_t) { .pte = val }; | ||
143 | } | ||
144 | |||
145 | static inline pteval_t native_pte_val(pte_t pte) | ||
146 | { | ||
147 | return pte.pte; | ||
148 | } | ||
149 | |||
150 | static inline pteval_t native_pte_flags(pte_t pte) | ||
151 | { | ||
152 | return native_pte_val(pte) & PTE_FLAGS_MASK; | ||
153 | } | ||
154 | |||
155 | #define pgprot_val(x) ((x).pgprot) | ||
156 | #define __pgprot(x) ((pgprot_t) { (x) } ) | ||
157 | |||
158 | #ifdef CONFIG_PARAVIRT | ||
159 | #include <asm/paravirt.h> | ||
160 | #else /* !CONFIG_PARAVIRT */ | ||
161 | |||
162 | #define pgd_val(x) native_pgd_val(x) | ||
163 | #define __pgd(x) native_make_pgd(x) | ||
164 | |||
165 | #ifndef __PAGETABLE_PUD_FOLDED | ||
166 | #define pud_val(x) native_pud_val(x) | ||
167 | #define __pud(x) native_make_pud(x) | ||
168 | #endif | ||
169 | |||
170 | #ifndef __PAGETABLE_PMD_FOLDED | ||
171 | #define pmd_val(x) native_pmd_val(x) | ||
172 | #define __pmd(x) native_make_pmd(x) | ||
173 | #endif | ||
174 | |||
175 | #define pte_val(x) native_pte_val(x) | ||
176 | #define pte_flags(x) native_pte_flags(x) | ||
177 | #define __pte(x) native_make_pte(x) | ||
178 | |||
179 | #endif /* CONFIG_PARAVIRT */ | ||
180 | |||
181 | #define __pa(x) __phys_addr((unsigned long)(x)) | ||
182 | #define __pa_nodebug(x) __phys_addr_nodebug((unsigned long)(x)) | ||
183 | /* __pa_symbol should be used for C visible symbols. | ||
184 | This seems to be the official gcc blessed way to do such arithmetic. */ | ||
185 | #define __pa_symbol(x) __pa(__phys_reloc_hide((unsigned long)(x))) | ||
186 | |||
187 | #define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET)) | ||
188 | |||
189 | #define __boot_va(x) __va(x) | ||
190 | #define __boot_pa(x) __pa(x) | ||
191 | |||
192 | /* | ||
193 | * virt_to_page(kaddr) returns a valid pointer if and only if | ||
194 | * virt_addr_valid(kaddr) returns true. | ||
195 | */ | ||
196 | #define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) | ||
197 | #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) | ||
198 | extern bool __virt_addr_valid(unsigned long kaddr); | ||
199 | #define virt_addr_valid(kaddr) __virt_addr_valid((unsigned long) (kaddr)) | ||
200 | |||
201 | #endif /* __ASSEMBLY__ */ | ||
202 | |||
203 | #include <asm-generic/memory_model.h> | ||
204 | #include <asm-generic/page.h> | ||
205 | |||
206 | #define __HAVE_ARCH_GATE_AREA 1 | ||
207 | |||
208 | #endif /* __KERNEL__ */ | ||
209 | #endif /* _ASM_X86_PAGE_H */ | ||
diff --git a/arch/x86/include/asm/page_32.h b/arch/x86/include/asm/page_32.h new file mode 100644 index 000000000000..bcde0d7b4325 --- /dev/null +++ b/arch/x86/include/asm/page_32.h | |||
@@ -0,0 +1,136 @@ | |||
1 | #ifndef _ASM_X86_PAGE_32_H | ||
2 | #define _ASM_X86_PAGE_32_H | ||
3 | |||
4 | /* | ||
5 | * This handles the memory map. | ||
6 | * | ||
7 | * A __PAGE_OFFSET of 0xC0000000 means that the kernel has | ||
8 | * a virtual address space of one gigabyte, which limits the | ||
9 | * amount of physical memory you can use to about 950MB. | ||
10 | * | ||
11 | * If you want more physical memory than this then see the CONFIG_HIGHMEM4G | ||
12 | * and CONFIG_HIGHMEM64G options in the kernel configuration. | ||
13 | */ | ||
14 | #define __PAGE_OFFSET _AC(CONFIG_PAGE_OFFSET, UL) | ||
15 | |||
16 | #ifdef CONFIG_4KSTACKS | ||
17 | #define THREAD_ORDER 0 | ||
18 | #else | ||
19 | #define THREAD_ORDER 1 | ||
20 | #endif | ||
21 | #define THREAD_SIZE (PAGE_SIZE << THREAD_ORDER) | ||
22 | |||
23 | #define STACKFAULT_STACK 0 | ||
24 | #define DOUBLEFAULT_STACK 1 | ||
25 | #define NMI_STACK 0 | ||
26 | #define DEBUG_STACK 0 | ||
27 | #define MCE_STACK 0 | ||
28 | #define N_EXCEPTION_STACKS 1 | ||
29 | |||
30 | #ifdef CONFIG_X86_PAE | ||
31 | /* 44=32+12, the limit we can fit into an unsigned long pfn */ | ||
32 | #define __PHYSICAL_MASK_SHIFT 44 | ||
33 | #define __VIRTUAL_MASK_SHIFT 32 | ||
34 | #define PAGETABLE_LEVELS 3 | ||
35 | |||
36 | #ifndef __ASSEMBLY__ | ||
37 | typedef u64 pteval_t; | ||
38 | typedef u64 pmdval_t; | ||
39 | typedef u64 pudval_t; | ||
40 | typedef u64 pgdval_t; | ||
41 | typedef u64 pgprotval_t; | ||
42 | |||
43 | typedef union { | ||
44 | struct { | ||
45 | unsigned long pte_low, pte_high; | ||
46 | }; | ||
47 | pteval_t pte; | ||
48 | } pte_t; | ||
49 | #endif /* __ASSEMBLY__ | ||
50 | */ | ||
51 | #else /* !CONFIG_X86_PAE */ | ||
52 | #define __PHYSICAL_MASK_SHIFT 32 | ||
53 | #define __VIRTUAL_MASK_SHIFT 32 | ||
54 | #define PAGETABLE_LEVELS 2 | ||
55 | |||
56 | #ifndef __ASSEMBLY__ | ||
57 | typedef unsigned long pteval_t; | ||
58 | typedef unsigned long pmdval_t; | ||
59 | typedef unsigned long pudval_t; | ||
60 | typedef unsigned long pgdval_t; | ||
61 | typedef unsigned long pgprotval_t; | ||
62 | |||
63 | typedef union { | ||
64 | pteval_t pte; | ||
65 | pteval_t pte_low; | ||
66 | } pte_t; | ||
67 | |||
68 | #endif /* __ASSEMBLY__ */ | ||
69 | #endif /* CONFIG_X86_PAE */ | ||
70 | |||
71 | #ifndef __ASSEMBLY__ | ||
72 | typedef struct page *pgtable_t; | ||
73 | #endif | ||
74 | |||
75 | #ifdef CONFIG_HUGETLB_PAGE | ||
76 | #define HAVE_ARCH_HUGETLB_UNMAPPED_AREA | ||
77 | #endif | ||
78 | |||
79 | #ifndef __ASSEMBLY__ | ||
80 | #define __phys_addr_nodebug(x) ((x) - PAGE_OFFSET) | ||
81 | #ifdef CONFIG_DEBUG_VIRTUAL | ||
82 | extern unsigned long __phys_addr(unsigned long); | ||
83 | #else | ||
84 | #define __phys_addr(x) __phys_addr_nodebug(x) | ||
85 | #endif | ||
86 | #define __phys_reloc_hide(x) RELOC_HIDE((x), 0) | ||
87 | |||
88 | #ifdef CONFIG_FLATMEM | ||
89 | #define pfn_valid(pfn) ((pfn) < max_mapnr) | ||
90 | #endif /* CONFIG_FLATMEM */ | ||
91 | |||
92 | extern int nx_enabled; | ||
93 | |||
94 | /* | ||
95 | * This much address space is reserved for vmalloc() and iomap() | ||
96 | * as well as fixmap mappings. | ||
97 | */ | ||
98 | extern unsigned int __VMALLOC_RESERVE; | ||
99 | extern int sysctl_legacy_va_layout; | ||
100 | |||
101 | extern void find_low_pfn_range(void); | ||
102 | extern unsigned long init_memory_mapping(unsigned long start, | ||
103 | unsigned long end); | ||
104 | extern void initmem_init(unsigned long, unsigned long); | ||
105 | extern void free_initmem(void); | ||
106 | extern void setup_bootmem_allocator(void); | ||
107 | |||
108 | |||
109 | #ifdef CONFIG_X86_USE_3DNOW | ||
110 | #include <asm/mmx.h> | ||
111 | |||
112 | static inline void clear_page(void *page) | ||
113 | { | ||
114 | mmx_clear_page(page); | ||
115 | } | ||
116 | |||
117 | static inline void copy_page(void *to, void *from) | ||
118 | { | ||
119 | mmx_copy_page(to, from); | ||
120 | } | ||
121 | #else /* !CONFIG_X86_USE_3DNOW */ | ||
122 | #include <linux/string.h> | ||
123 | |||
124 | static inline void clear_page(void *page) | ||
125 | { | ||
126 | memset(page, 0, PAGE_SIZE); | ||
127 | } | ||
128 | |||
129 | static inline void copy_page(void *to, void *from) | ||
130 | { | ||
131 | memcpy(to, from, PAGE_SIZE); | ||
132 | } | ||
133 | #endif /* CONFIG_X86_3DNOW */ | ||
134 | #endif /* !__ASSEMBLY__ */ | ||
135 | |||
136 | #endif /* _ASM_X86_PAGE_32_H */ | ||
diff --git a/arch/x86/include/asm/page_64.h b/arch/x86/include/asm/page_64.h new file mode 100644 index 000000000000..5ebca29f44f0 --- /dev/null +++ b/arch/x86/include/asm/page_64.h | |||
@@ -0,0 +1,105 @@ | |||
1 | #ifndef _ASM_X86_PAGE_64_H | ||
2 | #define _ASM_X86_PAGE_64_H | ||
3 | |||
4 | #define PAGETABLE_LEVELS 4 | ||
5 | |||
6 | #define THREAD_ORDER 1 | ||
7 | #define THREAD_SIZE (PAGE_SIZE << THREAD_ORDER) | ||
8 | #define CURRENT_MASK (~(THREAD_SIZE - 1)) | ||
9 | |||
10 | #define EXCEPTION_STACK_ORDER 0 | ||
11 | #define EXCEPTION_STKSZ (PAGE_SIZE << EXCEPTION_STACK_ORDER) | ||
12 | |||
13 | #define DEBUG_STACK_ORDER (EXCEPTION_STACK_ORDER + 1) | ||
14 | #define DEBUG_STKSZ (PAGE_SIZE << DEBUG_STACK_ORDER) | ||
15 | |||
16 | #define IRQSTACK_ORDER 2 | ||
17 | #define IRQSTACKSIZE (PAGE_SIZE << IRQSTACK_ORDER) | ||
18 | |||
19 | #define STACKFAULT_STACK 1 | ||
20 | #define DOUBLEFAULT_STACK 2 | ||
21 | #define NMI_STACK 3 | ||
22 | #define DEBUG_STACK 4 | ||
23 | #define MCE_STACK 5 | ||
24 | #define N_EXCEPTION_STACKS 5 /* hw limit: 7 */ | ||
25 | |||
26 | #define PUD_PAGE_SIZE (_AC(1, UL) << PUD_SHIFT) | ||
27 | #define PUD_PAGE_MASK (~(PUD_PAGE_SIZE-1)) | ||
28 | |||
29 | /* | ||
30 | * Set __PAGE_OFFSET to the most negative possible address + | ||
31 | * PGDIR_SIZE*16 (pgd slot 272). The gap is to allow a space for a | ||
32 | * hypervisor to fit. Choosing 16 slots here is arbitrary, but it's | ||
33 | * what Xen requires. | ||
34 | */ | ||
35 | #define __PAGE_OFFSET _AC(0xffff880000000000, UL) | ||
36 | |||
37 | #define __PHYSICAL_START CONFIG_PHYSICAL_START | ||
38 | #define __KERNEL_ALIGN 0x200000 | ||
39 | |||
40 | /* | ||
41 | * Make sure kernel is aligned to 2MB address. Catching it at compile | ||
42 | * time is better. Change your config file and compile the kernel | ||
43 | * for a 2MB aligned address (CONFIG_PHYSICAL_START) | ||
44 | */ | ||
45 | #if (CONFIG_PHYSICAL_START % __KERNEL_ALIGN) != 0 | ||
46 | #error "CONFIG_PHYSICAL_START must be a multiple of 2MB" | ||
47 | #endif | ||
48 | |||
49 | #define __START_KERNEL (__START_KERNEL_map + __PHYSICAL_START) | ||
50 | #define __START_KERNEL_map _AC(0xffffffff80000000, UL) | ||
51 | |||
52 | /* See Documentation/x86_64/mm.txt for a description of the memory map. */ | ||
53 | #define __PHYSICAL_MASK_SHIFT 46 | ||
54 | #define __VIRTUAL_MASK_SHIFT 48 | ||
55 | |||
56 | /* | ||
57 | * Kernel image size is limited to 512 MB (see level2_kernel_pgt in | ||
58 | * arch/x86/kernel/head_64.S), and it is mapped here: | ||
59 | */ | ||
60 | #define KERNEL_IMAGE_SIZE (512 * 1024 * 1024) | ||
61 | #define KERNEL_IMAGE_START _AC(0xffffffff80000000, UL) | ||
62 | |||
63 | #ifndef __ASSEMBLY__ | ||
64 | void clear_page(void *page); | ||
65 | void copy_page(void *to, void *from); | ||
66 | |||
67 | /* duplicated to the one in bootmem.h */ | ||
68 | extern unsigned long max_pfn; | ||
69 | extern unsigned long phys_base; | ||
70 | |||
71 | extern unsigned long __phys_addr(unsigned long); | ||
72 | #define __phys_reloc_hide(x) (x) | ||
73 | |||
74 | /* | ||
75 | * These are used to make use of C type-checking.. | ||
76 | */ | ||
77 | typedef unsigned long pteval_t; | ||
78 | typedef unsigned long pmdval_t; | ||
79 | typedef unsigned long pudval_t; | ||
80 | typedef unsigned long pgdval_t; | ||
81 | typedef unsigned long pgprotval_t; | ||
82 | |||
83 | typedef struct page *pgtable_t; | ||
84 | |||
85 | typedef struct { pteval_t pte; } pte_t; | ||
86 | |||
87 | #define vmemmap ((struct page *)VMEMMAP_START) | ||
88 | |||
89 | extern unsigned long init_memory_mapping(unsigned long start, | ||
90 | unsigned long end); | ||
91 | |||
92 | extern void initmem_init(unsigned long start_pfn, unsigned long end_pfn); | ||
93 | extern void free_initmem(void); | ||
94 | |||
95 | extern void init_extra_mapping_uc(unsigned long phys, unsigned long size); | ||
96 | extern void init_extra_mapping_wb(unsigned long phys, unsigned long size); | ||
97 | |||
98 | #endif /* !__ASSEMBLY__ */ | ||
99 | |||
100 | #ifdef CONFIG_FLATMEM | ||
101 | #define pfn_valid(pfn) ((pfn) < max_pfn) | ||
102 | #endif | ||
103 | |||
104 | |||
105 | #endif /* _ASM_X86_PAGE_64_H */ | ||
diff --git a/arch/x86/include/asm/param.h b/arch/x86/include/asm/param.h new file mode 100644 index 000000000000..6f0d0422f4ca --- /dev/null +++ b/arch/x86/include/asm/param.h | |||
@@ -0,0 +1,22 @@ | |||
1 | #ifndef _ASM_X86_PARAM_H | ||
2 | #define _ASM_X86_PARAM_H | ||
3 | |||
4 | #ifdef __KERNEL__ | ||
5 | # define HZ CONFIG_HZ /* Internal kernel timer frequency */ | ||
6 | # define USER_HZ 100 /* some user interfaces are */ | ||
7 | # define CLOCKS_PER_SEC (USER_HZ) /* in "ticks" like times() */ | ||
8 | #endif | ||
9 | |||
10 | #ifndef HZ | ||
11 | #define HZ 100 | ||
12 | #endif | ||
13 | |||
14 | #define EXEC_PAGESIZE 4096 | ||
15 | |||
16 | #ifndef NOGROUP | ||
17 | #define NOGROUP (-1) | ||
18 | #endif | ||
19 | |||
20 | #define MAXHOSTNAMELEN 64 /* max length of hostname */ | ||
21 | |||
22 | #endif /* _ASM_X86_PARAM_H */ | ||
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h new file mode 100644 index 000000000000..ba3e2ff6aedc --- /dev/null +++ b/arch/x86/include/asm/paravirt.h | |||
@@ -0,0 +1,1650 @@ | |||
1 | #ifndef _ASM_X86_PARAVIRT_H | ||
2 | #define _ASM_X86_PARAVIRT_H | ||
3 | /* Various instructions on x86 need to be replaced for | ||
4 | * para-virtualization: those hooks are defined here. */ | ||
5 | |||
6 | #ifdef CONFIG_PARAVIRT | ||
7 | #include <asm/page.h> | ||
8 | #include <asm/asm.h> | ||
9 | |||
10 | /* Bitmask of what can be clobbered: usually at least eax. */ | ||
11 | #define CLBR_NONE 0 | ||
12 | #define CLBR_EAX (1 << 0) | ||
13 | #define CLBR_ECX (1 << 1) | ||
14 | #define CLBR_EDX (1 << 2) | ||
15 | |||
16 | #ifdef CONFIG_X86_64 | ||
17 | #define CLBR_RSI (1 << 3) | ||
18 | #define CLBR_RDI (1 << 4) | ||
19 | #define CLBR_R8 (1 << 5) | ||
20 | #define CLBR_R9 (1 << 6) | ||
21 | #define CLBR_R10 (1 << 7) | ||
22 | #define CLBR_R11 (1 << 8) | ||
23 | #define CLBR_ANY ((1 << 9) - 1) | ||
24 | #include <asm/desc_defs.h> | ||
25 | #else | ||
26 | /* CLBR_ANY should match all regs platform has. For i386, that's just it */ | ||
27 | #define CLBR_ANY ((1 << 3) - 1) | ||
28 | #endif /* X86_64 */ | ||
29 | |||
30 | #ifndef __ASSEMBLY__ | ||
31 | #include <linux/types.h> | ||
32 | #include <linux/cpumask.h> | ||
33 | #include <asm/kmap_types.h> | ||
34 | #include <asm/desc_defs.h> | ||
35 | |||
36 | struct page; | ||
37 | struct thread_struct; | ||
38 | struct desc_ptr; | ||
39 | struct tss_struct; | ||
40 | struct mm_struct; | ||
41 | struct desc_struct; | ||
42 | |||
43 | /* general info */ | ||
44 | struct pv_info { | ||
45 | unsigned int kernel_rpl; | ||
46 | int shared_kernel_pmd; | ||
47 | int paravirt_enabled; | ||
48 | const char *name; | ||
49 | }; | ||
50 | |||
51 | struct pv_init_ops { | ||
52 | /* | ||
53 | * Patch may replace one of the defined code sequences with | ||
54 | * arbitrary code, subject to the same register constraints. | ||
55 | * This generally means the code is not free to clobber any | ||
56 | * registers other than EAX. The patch function should return | ||
57 | * the number of bytes of code generated, as we nop pad the | ||
58 | * rest in generic code. | ||
59 | */ | ||
60 | unsigned (*patch)(u8 type, u16 clobber, void *insnbuf, | ||
61 | unsigned long addr, unsigned len); | ||
62 | |||
63 | /* Basic arch-specific setup */ | ||
64 | void (*arch_setup)(void); | ||
65 | char *(*memory_setup)(void); | ||
66 | void (*post_allocator_init)(void); | ||
67 | |||
68 | /* Print a banner to identify the environment */ | ||
69 | void (*banner)(void); | ||
70 | }; | ||
71 | |||
72 | |||
73 | struct pv_lazy_ops { | ||
74 | /* Set deferred update mode, used for batching operations. */ | ||
75 | void (*enter)(void); | ||
76 | void (*leave)(void); | ||
77 | }; | ||
78 | |||
79 | struct pv_time_ops { | ||
80 | void (*time_init)(void); | ||
81 | |||
82 | /* Set and set time of day */ | ||
83 | unsigned long (*get_wallclock)(void); | ||
84 | int (*set_wallclock)(unsigned long); | ||
85 | |||
86 | unsigned long long (*sched_clock)(void); | ||
87 | unsigned long (*get_tsc_khz)(void); | ||
88 | }; | ||
89 | |||
90 | struct pv_cpu_ops { | ||
91 | /* hooks for various privileged instructions */ | ||
92 | unsigned long (*get_debugreg)(int regno); | ||
93 | void (*set_debugreg)(int regno, unsigned long value); | ||
94 | |||
95 | void (*clts)(void); | ||
96 | |||
97 | unsigned long (*read_cr0)(void); | ||
98 | void (*write_cr0)(unsigned long); | ||
99 | |||
100 | unsigned long (*read_cr4_safe)(void); | ||
101 | unsigned long (*read_cr4)(void); | ||
102 | void (*write_cr4)(unsigned long); | ||
103 | |||
104 | #ifdef CONFIG_X86_64 | ||
105 | unsigned long (*read_cr8)(void); | ||
106 | void (*write_cr8)(unsigned long); | ||
107 | #endif | ||
108 | |||
109 | /* Segment descriptor handling */ | ||
110 | void (*load_tr_desc)(void); | ||
111 | void (*load_gdt)(const struct desc_ptr *); | ||
112 | void (*load_idt)(const struct desc_ptr *); | ||
113 | void (*store_gdt)(struct desc_ptr *); | ||
114 | void (*store_idt)(struct desc_ptr *); | ||
115 | void (*set_ldt)(const void *desc, unsigned entries); | ||
116 | unsigned long (*store_tr)(void); | ||
117 | void (*load_tls)(struct thread_struct *t, unsigned int cpu); | ||
118 | #ifdef CONFIG_X86_64 | ||
119 | void (*load_gs_index)(unsigned int idx); | ||
120 | #endif | ||
121 | void (*write_ldt_entry)(struct desc_struct *ldt, int entrynum, | ||
122 | const void *desc); | ||
123 | void (*write_gdt_entry)(struct desc_struct *, | ||
124 | int entrynum, const void *desc, int size); | ||
125 | void (*write_idt_entry)(gate_desc *, | ||
126 | int entrynum, const gate_desc *gate); | ||
127 | void (*alloc_ldt)(struct desc_struct *ldt, unsigned entries); | ||
128 | void (*free_ldt)(struct desc_struct *ldt, unsigned entries); | ||
129 | |||
130 | void (*load_sp0)(struct tss_struct *tss, struct thread_struct *t); | ||
131 | |||
132 | void (*set_iopl_mask)(unsigned mask); | ||
133 | |||
134 | void (*wbinvd)(void); | ||
135 | void (*io_delay)(void); | ||
136 | |||
137 | /* cpuid emulation, mostly so that caps bits can be disabled */ | ||
138 | void (*cpuid)(unsigned int *eax, unsigned int *ebx, | ||
139 | unsigned int *ecx, unsigned int *edx); | ||
140 | |||
141 | /* MSR, PMC and TSR operations. | ||
142 | err = 0/-EFAULT. wrmsr returns 0/-EFAULT. */ | ||
143 | u64 (*read_msr_amd)(unsigned int msr, int *err); | ||
144 | u64 (*read_msr)(unsigned int msr, int *err); | ||
145 | int (*write_msr)(unsigned int msr, unsigned low, unsigned high); | ||
146 | |||
147 | u64 (*read_tsc)(void); | ||
148 | u64 (*read_pmc)(int counter); | ||
149 | unsigned long long (*read_tscp)(unsigned int *aux); | ||
150 | |||
151 | /* | ||
152 | * Atomically enable interrupts and return to userspace. This | ||
153 | * is only ever used to return to 32-bit processes; in a | ||
154 | * 64-bit kernel, it's used for 32-on-64 compat processes, but | ||
155 | * never native 64-bit processes. (Jump, not call.) | ||
156 | */ | ||
157 | void (*irq_enable_sysexit)(void); | ||
158 | |||
159 | /* | ||
160 | * Switch to usermode gs and return to 64-bit usermode using | ||
161 | * sysret. Only used in 64-bit kernels to return to 64-bit | ||
162 | * processes. Usermode register state, including %rsp, must | ||
163 | * already be restored. | ||
164 | */ | ||
165 | void (*usergs_sysret64)(void); | ||
166 | |||
167 | /* | ||
168 | * Switch to usermode gs and return to 32-bit usermode using | ||
169 | * sysret. Used to return to 32-on-64 compat processes. | ||
170 | * Other usermode register state, including %esp, must already | ||
171 | * be restored. | ||
172 | */ | ||
173 | void (*usergs_sysret32)(void); | ||
174 | |||
175 | /* Normal iret. Jump to this with the standard iret stack | ||
176 | frame set up. */ | ||
177 | void (*iret)(void); | ||
178 | |||
179 | void (*swapgs)(void); | ||
180 | |||
181 | struct pv_lazy_ops lazy_mode; | ||
182 | }; | ||
183 | |||
184 | struct pv_irq_ops { | ||
185 | void (*init_IRQ)(void); | ||
186 | |||
187 | /* | ||
188 | * Get/set interrupt state. save_fl and restore_fl are only | ||
189 | * expected to use X86_EFLAGS_IF; all other bits | ||
190 | * returned from save_fl are undefined, and may be ignored by | ||
191 | * restore_fl. | ||
192 | */ | ||
193 | unsigned long (*save_fl)(void); | ||
194 | void (*restore_fl)(unsigned long); | ||
195 | void (*irq_disable)(void); | ||
196 | void (*irq_enable)(void); | ||
197 | void (*safe_halt)(void); | ||
198 | void (*halt)(void); | ||
199 | |||
200 | #ifdef CONFIG_X86_64 | ||
201 | void (*adjust_exception_frame)(void); | ||
202 | #endif | ||
203 | }; | ||
204 | |||
205 | struct pv_apic_ops { | ||
206 | #ifdef CONFIG_X86_LOCAL_APIC | ||
207 | void (*setup_boot_clock)(void); | ||
208 | void (*setup_secondary_clock)(void); | ||
209 | |||
210 | void (*startup_ipi_hook)(int phys_apicid, | ||
211 | unsigned long start_eip, | ||
212 | unsigned long start_esp); | ||
213 | #endif | ||
214 | }; | ||
215 | |||
216 | struct pv_mmu_ops { | ||
217 | /* | ||
218 | * Called before/after init_mm pagetable setup. setup_start | ||
219 | * may reset %cr3, and may pre-install parts of the pagetable; | ||
220 | * pagetable setup is expected to preserve any existing | ||
221 | * mapping. | ||
222 | */ | ||
223 | void (*pagetable_setup_start)(pgd_t *pgd_base); | ||
224 | void (*pagetable_setup_done)(pgd_t *pgd_base); | ||
225 | |||
226 | unsigned long (*read_cr2)(void); | ||
227 | void (*write_cr2)(unsigned long); | ||
228 | |||
229 | unsigned long (*read_cr3)(void); | ||
230 | void (*write_cr3)(unsigned long); | ||
231 | |||
232 | /* | ||
233 | * Hooks for intercepting the creation/use/destruction of an | ||
234 | * mm_struct. | ||
235 | */ | ||
236 | void (*activate_mm)(struct mm_struct *prev, | ||
237 | struct mm_struct *next); | ||
238 | void (*dup_mmap)(struct mm_struct *oldmm, | ||
239 | struct mm_struct *mm); | ||
240 | void (*exit_mmap)(struct mm_struct *mm); | ||
241 | |||
242 | |||
243 | /* TLB operations */ | ||
244 | void (*flush_tlb_user)(void); | ||
245 | void (*flush_tlb_kernel)(void); | ||
246 | void (*flush_tlb_single)(unsigned long addr); | ||
247 | void (*flush_tlb_others)(const cpumask_t *cpus, struct mm_struct *mm, | ||
248 | unsigned long va); | ||
249 | |||
250 | /* Hooks for allocating and freeing a pagetable top-level */ | ||
251 | int (*pgd_alloc)(struct mm_struct *mm); | ||
252 | void (*pgd_free)(struct mm_struct *mm, pgd_t *pgd); | ||
253 | |||
254 | /* | ||
255 | * Hooks for allocating/releasing pagetable pages when they're | ||
256 | * attached to a pagetable | ||
257 | */ | ||
258 | void (*alloc_pte)(struct mm_struct *mm, unsigned long pfn); | ||
259 | void (*alloc_pmd)(struct mm_struct *mm, unsigned long pfn); | ||
260 | void (*alloc_pmd_clone)(unsigned long pfn, unsigned long clonepfn, unsigned long start, unsigned long count); | ||
261 | void (*alloc_pud)(struct mm_struct *mm, unsigned long pfn); | ||
262 | void (*release_pte)(unsigned long pfn); | ||
263 | void (*release_pmd)(unsigned long pfn); | ||
264 | void (*release_pud)(unsigned long pfn); | ||
265 | |||
266 | /* Pagetable manipulation functions */ | ||
267 | void (*set_pte)(pte_t *ptep, pte_t pteval); | ||
268 | void (*set_pte_at)(struct mm_struct *mm, unsigned long addr, | ||
269 | pte_t *ptep, pte_t pteval); | ||
270 | void (*set_pmd)(pmd_t *pmdp, pmd_t pmdval); | ||
271 | void (*pte_update)(struct mm_struct *mm, unsigned long addr, | ||
272 | pte_t *ptep); | ||
273 | void (*pte_update_defer)(struct mm_struct *mm, | ||
274 | unsigned long addr, pte_t *ptep); | ||
275 | |||
276 | pte_t (*ptep_modify_prot_start)(struct mm_struct *mm, unsigned long addr, | ||
277 | pte_t *ptep); | ||
278 | void (*ptep_modify_prot_commit)(struct mm_struct *mm, unsigned long addr, | ||
279 | pte_t *ptep, pte_t pte); | ||
280 | |||
281 | pteval_t (*pte_val)(pte_t); | ||
282 | pteval_t (*pte_flags)(pte_t); | ||
283 | pte_t (*make_pte)(pteval_t pte); | ||
284 | |||
285 | pgdval_t (*pgd_val)(pgd_t); | ||
286 | pgd_t (*make_pgd)(pgdval_t pgd); | ||
287 | |||
288 | #if PAGETABLE_LEVELS >= 3 | ||
289 | #ifdef CONFIG_X86_PAE | ||
290 | void (*set_pte_atomic)(pte_t *ptep, pte_t pteval); | ||
291 | void (*set_pte_present)(struct mm_struct *mm, unsigned long addr, | ||
292 | pte_t *ptep, pte_t pte); | ||
293 | void (*pte_clear)(struct mm_struct *mm, unsigned long addr, | ||
294 | pte_t *ptep); | ||
295 | void (*pmd_clear)(pmd_t *pmdp); | ||
296 | |||
297 | #endif /* CONFIG_X86_PAE */ | ||
298 | |||
299 | void (*set_pud)(pud_t *pudp, pud_t pudval); | ||
300 | |||
301 | pmdval_t (*pmd_val)(pmd_t); | ||
302 | pmd_t (*make_pmd)(pmdval_t pmd); | ||
303 | |||
304 | #if PAGETABLE_LEVELS == 4 | ||
305 | pudval_t (*pud_val)(pud_t); | ||
306 | pud_t (*make_pud)(pudval_t pud); | ||
307 | |||
308 | void (*set_pgd)(pgd_t *pudp, pgd_t pgdval); | ||
309 | #endif /* PAGETABLE_LEVELS == 4 */ | ||
310 | #endif /* PAGETABLE_LEVELS >= 3 */ | ||
311 | |||
312 | #ifdef CONFIG_HIGHPTE | ||
313 | void *(*kmap_atomic_pte)(struct page *page, enum km_type type); | ||
314 | #endif | ||
315 | |||
316 | struct pv_lazy_ops lazy_mode; | ||
317 | |||
318 | /* dom0 ops */ | ||
319 | |||
320 | /* Sometimes the physical address is a pfn, and sometimes its | ||
321 | an mfn. We can tell which is which from the index. */ | ||
322 | void (*set_fixmap)(unsigned /* enum fixed_addresses */ idx, | ||
323 | unsigned long phys, pgprot_t flags); | ||
324 | }; | ||
325 | |||
326 | struct raw_spinlock; | ||
327 | struct pv_lock_ops { | ||
328 | int (*spin_is_locked)(struct raw_spinlock *lock); | ||
329 | int (*spin_is_contended)(struct raw_spinlock *lock); | ||
330 | void (*spin_lock)(struct raw_spinlock *lock); | ||
331 | void (*spin_lock_flags)(struct raw_spinlock *lock, unsigned long flags); | ||
332 | int (*spin_trylock)(struct raw_spinlock *lock); | ||
333 | void (*spin_unlock)(struct raw_spinlock *lock); | ||
334 | }; | ||
335 | |||
336 | /* This contains all the paravirt structures: we get a convenient | ||
337 | * number for each function using the offset which we use to indicate | ||
338 | * what to patch. */ | ||
339 | struct paravirt_patch_template { | ||
340 | struct pv_init_ops pv_init_ops; | ||
341 | struct pv_time_ops pv_time_ops; | ||
342 | struct pv_cpu_ops pv_cpu_ops; | ||
343 | struct pv_irq_ops pv_irq_ops; | ||
344 | struct pv_apic_ops pv_apic_ops; | ||
345 | struct pv_mmu_ops pv_mmu_ops; | ||
346 | struct pv_lock_ops pv_lock_ops; | ||
347 | }; | ||
348 | |||
349 | extern struct pv_info pv_info; | ||
350 | extern struct pv_init_ops pv_init_ops; | ||
351 | extern struct pv_time_ops pv_time_ops; | ||
352 | extern struct pv_cpu_ops pv_cpu_ops; | ||
353 | extern struct pv_irq_ops pv_irq_ops; | ||
354 | extern struct pv_apic_ops pv_apic_ops; | ||
355 | extern struct pv_mmu_ops pv_mmu_ops; | ||
356 | extern struct pv_lock_ops pv_lock_ops; | ||
357 | |||
358 | #define PARAVIRT_PATCH(x) \ | ||
359 | (offsetof(struct paravirt_patch_template, x) / sizeof(void *)) | ||
360 | |||
361 | #define paravirt_type(op) \ | ||
362 | [paravirt_typenum] "i" (PARAVIRT_PATCH(op)), \ | ||
363 | [paravirt_opptr] "m" (op) | ||
364 | #define paravirt_clobber(clobber) \ | ||
365 | [paravirt_clobber] "i" (clobber) | ||
366 | |||
367 | /* | ||
368 | * Generate some code, and mark it as patchable by the | ||
369 | * apply_paravirt() alternate instruction patcher. | ||
370 | */ | ||
371 | #define _paravirt_alt(insn_string, type, clobber) \ | ||
372 | "771:\n\t" insn_string "\n" "772:\n" \ | ||
373 | ".pushsection .parainstructions,\"a\"\n" \ | ||
374 | _ASM_ALIGN "\n" \ | ||
375 | _ASM_PTR " 771b\n" \ | ||
376 | " .byte " type "\n" \ | ||
377 | " .byte 772b-771b\n" \ | ||
378 | " .short " clobber "\n" \ | ||
379 | ".popsection\n" | ||
380 | |||
381 | /* Generate patchable code, with the default asm parameters. */ | ||
382 | #define paravirt_alt(insn_string) \ | ||
383 | _paravirt_alt(insn_string, "%c[paravirt_typenum]", "%c[paravirt_clobber]") | ||
384 | |||
385 | /* Simple instruction patching code. */ | ||
386 | #define DEF_NATIVE(ops, name, code) \ | ||
387 | extern const char start_##ops##_##name[], end_##ops##_##name[]; \ | ||
388 | asm("start_" #ops "_" #name ": " code "; end_" #ops "_" #name ":") | ||
389 | |||
390 | unsigned paravirt_patch_nop(void); | ||
391 | unsigned paravirt_patch_ignore(unsigned len); | ||
392 | unsigned paravirt_patch_call(void *insnbuf, | ||
393 | const void *target, u16 tgt_clobbers, | ||
394 | unsigned long addr, u16 site_clobbers, | ||
395 | unsigned len); | ||
396 | unsigned paravirt_patch_jmp(void *insnbuf, const void *target, | ||
397 | unsigned long addr, unsigned len); | ||
398 | unsigned paravirt_patch_default(u8 type, u16 clobbers, void *insnbuf, | ||
399 | unsigned long addr, unsigned len); | ||
400 | |||
401 | unsigned paravirt_patch_insns(void *insnbuf, unsigned len, | ||
402 | const char *start, const char *end); | ||
403 | |||
404 | unsigned native_patch(u8 type, u16 clobbers, void *ibuf, | ||
405 | unsigned long addr, unsigned len); | ||
406 | |||
407 | int paravirt_disable_iospace(void); | ||
408 | |||
409 | /* | ||
410 | * This generates an indirect call based on the operation type number. | ||
411 | * The type number, computed in PARAVIRT_PATCH, is derived from the | ||
412 | * offset into the paravirt_patch_template structure, and can therefore be | ||
413 | * freely converted back into a structure offset. | ||
414 | */ | ||
415 | #define PARAVIRT_CALL "call *%[paravirt_opptr];" | ||
416 | |||
417 | /* | ||
418 | * These macros are intended to wrap calls through one of the paravirt | ||
419 | * ops structs, so that they can be later identified and patched at | ||
420 | * runtime. | ||
421 | * | ||
422 | * Normally, a call to a pv_op function is a simple indirect call: | ||
423 | * (pv_op_struct.operations)(args...). | ||
424 | * | ||
425 | * Unfortunately, this is a relatively slow operation for modern CPUs, | ||
426 | * because it cannot necessarily determine what the destination | ||
427 | * address is. In this case, the address is a runtime constant, so at | ||
428 | * the very least we can patch the call to e a simple direct call, or | ||
429 | * ideally, patch an inline implementation into the callsite. (Direct | ||
430 | * calls are essentially free, because the call and return addresses | ||
431 | * are completely predictable.) | ||
432 | * | ||
433 | * For i386, these macros rely on the standard gcc "regparm(3)" calling | ||
434 | * convention, in which the first three arguments are placed in %eax, | ||
435 | * %edx, %ecx (in that order), and the remaining arguments are placed | ||
436 | * on the stack. All caller-save registers (eax,edx,ecx) are expected | ||
437 | * to be modified (either clobbered or used for return values). | ||
438 | * X86_64, on the other hand, already specifies a register-based calling | ||
439 | * conventions, returning at %rax, with parameteres going on %rdi, %rsi, | ||
440 | * %rdx, and %rcx. Note that for this reason, x86_64 does not need any | ||
441 | * special handling for dealing with 4 arguments, unlike i386. | ||
442 | * However, x86_64 also have to clobber all caller saved registers, which | ||
443 | * unfortunately, are quite a bit (r8 - r11) | ||
444 | * | ||
445 | * The call instruction itself is marked by placing its start address | ||
446 | * and size into the .parainstructions section, so that | ||
447 | * apply_paravirt() in arch/i386/kernel/alternative.c can do the | ||
448 | * appropriate patching under the control of the backend pv_init_ops | ||
449 | * implementation. | ||
450 | * | ||
451 | * Unfortunately there's no way to get gcc to generate the args setup | ||
452 | * for the call, and then allow the call itself to be generated by an | ||
453 | * inline asm. Because of this, we must do the complete arg setup and | ||
454 | * return value handling from within these macros. This is fairly | ||
455 | * cumbersome. | ||
456 | * | ||
457 | * There are 5 sets of PVOP_* macros for dealing with 0-4 arguments. | ||
458 | * It could be extended to more arguments, but there would be little | ||
459 | * to be gained from that. For each number of arguments, there are | ||
460 | * the two VCALL and CALL variants for void and non-void functions. | ||
461 | * | ||
462 | * When there is a return value, the invoker of the macro must specify | ||
463 | * the return type. The macro then uses sizeof() on that type to | ||
464 | * determine whether its a 32 or 64 bit value, and places the return | ||
465 | * in the right register(s) (just %eax for 32-bit, and %edx:%eax for | ||
466 | * 64-bit). For x86_64 machines, it just returns at %rax regardless of | ||
467 | * the return value size. | ||
468 | * | ||
469 | * 64-bit arguments are passed as a pair of adjacent 32-bit arguments | ||
470 | * i386 also passes 64-bit arguments as a pair of adjacent 32-bit arguments | ||
471 | * in low,high order | ||
472 | * | ||
473 | * Small structures are passed and returned in registers. The macro | ||
474 | * calling convention can't directly deal with this, so the wrapper | ||
475 | * functions must do this. | ||
476 | * | ||
477 | * These PVOP_* macros are only defined within this header. This | ||
478 | * means that all uses must be wrapped in inline functions. This also | ||
479 | * makes sure the incoming and outgoing types are always correct. | ||
480 | */ | ||
481 | #ifdef CONFIG_X86_32 | ||
482 | #define PVOP_VCALL_ARGS unsigned long __eax, __edx, __ecx | ||
483 | #define PVOP_CALL_ARGS PVOP_VCALL_ARGS | ||
484 | #define PVOP_VCALL_CLOBBERS "=a" (__eax), "=d" (__edx), \ | ||
485 | "=c" (__ecx) | ||
486 | #define PVOP_CALL_CLOBBERS PVOP_VCALL_CLOBBERS | ||
487 | #define EXTRA_CLOBBERS | ||
488 | #define VEXTRA_CLOBBERS | ||
489 | #else | ||
490 | #define PVOP_VCALL_ARGS unsigned long __edi, __esi, __edx, __ecx | ||
491 | #define PVOP_CALL_ARGS PVOP_VCALL_ARGS, __eax | ||
492 | #define PVOP_VCALL_CLOBBERS "=D" (__edi), \ | ||
493 | "=S" (__esi), "=d" (__edx), \ | ||
494 | "=c" (__ecx) | ||
495 | |||
496 | #define PVOP_CALL_CLOBBERS PVOP_VCALL_CLOBBERS, "=a" (__eax) | ||
497 | |||
498 | #define EXTRA_CLOBBERS , "r8", "r9", "r10", "r11" | ||
499 | #define VEXTRA_CLOBBERS , "rax", "r8", "r9", "r10", "r11" | ||
500 | #endif | ||
501 | |||
502 | #ifdef CONFIG_PARAVIRT_DEBUG | ||
503 | #define PVOP_TEST_NULL(op) BUG_ON(op == NULL) | ||
504 | #else | ||
505 | #define PVOP_TEST_NULL(op) ((void)op) | ||
506 | #endif | ||
507 | |||
508 | #define __PVOP_CALL(rettype, op, pre, post, ...) \ | ||
509 | ({ \ | ||
510 | rettype __ret; \ | ||
511 | PVOP_CALL_ARGS; \ | ||
512 | PVOP_TEST_NULL(op); \ | ||
513 | /* This is 32-bit specific, but is okay in 64-bit */ \ | ||
514 | /* since this condition will never hold */ \ | ||
515 | if (sizeof(rettype) > sizeof(unsigned long)) { \ | ||
516 | asm volatile(pre \ | ||
517 | paravirt_alt(PARAVIRT_CALL) \ | ||
518 | post \ | ||
519 | : PVOP_CALL_CLOBBERS \ | ||
520 | : paravirt_type(op), \ | ||
521 | paravirt_clobber(CLBR_ANY), \ | ||
522 | ##__VA_ARGS__ \ | ||
523 | : "memory", "cc" EXTRA_CLOBBERS); \ | ||
524 | __ret = (rettype)((((u64)__edx) << 32) | __eax); \ | ||
525 | } else { \ | ||
526 | asm volatile(pre \ | ||
527 | paravirt_alt(PARAVIRT_CALL) \ | ||
528 | post \ | ||
529 | : PVOP_CALL_CLOBBERS \ | ||
530 | : paravirt_type(op), \ | ||
531 | paravirt_clobber(CLBR_ANY), \ | ||
532 | ##__VA_ARGS__ \ | ||
533 | : "memory", "cc" EXTRA_CLOBBERS); \ | ||
534 | __ret = (rettype)__eax; \ | ||
535 | } \ | ||
536 | __ret; \ | ||
537 | }) | ||
538 | #define __PVOP_VCALL(op, pre, post, ...) \ | ||
539 | ({ \ | ||
540 | PVOP_VCALL_ARGS; \ | ||
541 | PVOP_TEST_NULL(op); \ | ||
542 | asm volatile(pre \ | ||
543 | paravirt_alt(PARAVIRT_CALL) \ | ||
544 | post \ | ||
545 | : PVOP_VCALL_CLOBBERS \ | ||
546 | : paravirt_type(op), \ | ||
547 | paravirt_clobber(CLBR_ANY), \ | ||
548 | ##__VA_ARGS__ \ | ||
549 | : "memory", "cc" VEXTRA_CLOBBERS); \ | ||
550 | }) | ||
551 | |||
552 | #define PVOP_CALL0(rettype, op) \ | ||
553 | __PVOP_CALL(rettype, op, "", "") | ||
554 | #define PVOP_VCALL0(op) \ | ||
555 | __PVOP_VCALL(op, "", "") | ||
556 | |||
557 | #define PVOP_CALL1(rettype, op, arg1) \ | ||
558 | __PVOP_CALL(rettype, op, "", "", "0" ((unsigned long)(arg1))) | ||
559 | #define PVOP_VCALL1(op, arg1) \ | ||
560 | __PVOP_VCALL(op, "", "", "0" ((unsigned long)(arg1))) | ||
561 | |||
562 | #define PVOP_CALL2(rettype, op, arg1, arg2) \ | ||
563 | __PVOP_CALL(rettype, op, "", "", "0" ((unsigned long)(arg1)), \ | ||
564 | "1" ((unsigned long)(arg2))) | ||
565 | #define PVOP_VCALL2(op, arg1, arg2) \ | ||
566 | __PVOP_VCALL(op, "", "", "0" ((unsigned long)(arg1)), \ | ||
567 | "1" ((unsigned long)(arg2))) | ||
568 | |||
569 | #define PVOP_CALL3(rettype, op, arg1, arg2, arg3) \ | ||
570 | __PVOP_CALL(rettype, op, "", "", "0" ((unsigned long)(arg1)), \ | ||
571 | "1"((unsigned long)(arg2)), "2"((unsigned long)(arg3))) | ||
572 | #define PVOP_VCALL3(op, arg1, arg2, arg3) \ | ||
573 | __PVOP_VCALL(op, "", "", "0" ((unsigned long)(arg1)), \ | ||
574 | "1"((unsigned long)(arg2)), "2"((unsigned long)(arg3))) | ||
575 | |||
576 | /* This is the only difference in x86_64. We can make it much simpler */ | ||
577 | #ifdef CONFIG_X86_32 | ||
578 | #define PVOP_CALL4(rettype, op, arg1, arg2, arg3, arg4) \ | ||
579 | __PVOP_CALL(rettype, op, \ | ||
580 | "push %[_arg4];", "lea 4(%%esp),%%esp;", \ | ||
581 | "0" ((u32)(arg1)), "1" ((u32)(arg2)), \ | ||
582 | "2" ((u32)(arg3)), [_arg4] "mr" ((u32)(arg4))) | ||
583 | #define PVOP_VCALL4(op, arg1, arg2, arg3, arg4) \ | ||
584 | __PVOP_VCALL(op, \ | ||
585 | "push %[_arg4];", "lea 4(%%esp),%%esp;", \ | ||
586 | "0" ((u32)(arg1)), "1" ((u32)(arg2)), \ | ||
587 | "2" ((u32)(arg3)), [_arg4] "mr" ((u32)(arg4))) | ||
588 | #else | ||
589 | #define PVOP_CALL4(rettype, op, arg1, arg2, arg3, arg4) \ | ||
590 | __PVOP_CALL(rettype, op, "", "", "0" ((unsigned long)(arg1)), \ | ||
591 | "1"((unsigned long)(arg2)), "2"((unsigned long)(arg3)), \ | ||
592 | "3"((unsigned long)(arg4))) | ||
593 | #define PVOP_VCALL4(op, arg1, arg2, arg3, arg4) \ | ||
594 | __PVOP_VCALL(op, "", "", "0" ((unsigned long)(arg1)), \ | ||
595 | "1"((unsigned long)(arg2)), "2"((unsigned long)(arg3)), \ | ||
596 | "3"((unsigned long)(arg4))) | ||
597 | #endif | ||
598 | |||
599 | static inline int paravirt_enabled(void) | ||
600 | { | ||
601 | return pv_info.paravirt_enabled; | ||
602 | } | ||
603 | |||
604 | static inline void load_sp0(struct tss_struct *tss, | ||
605 | struct thread_struct *thread) | ||
606 | { | ||
607 | PVOP_VCALL2(pv_cpu_ops.load_sp0, tss, thread); | ||
608 | } | ||
609 | |||
610 | #define ARCH_SETUP pv_init_ops.arch_setup(); | ||
611 | static inline unsigned long get_wallclock(void) | ||
612 | { | ||
613 | return PVOP_CALL0(unsigned long, pv_time_ops.get_wallclock); | ||
614 | } | ||
615 | |||
616 | static inline int set_wallclock(unsigned long nowtime) | ||
617 | { | ||
618 | return PVOP_CALL1(int, pv_time_ops.set_wallclock, nowtime); | ||
619 | } | ||
620 | |||
621 | static inline void (*choose_time_init(void))(void) | ||
622 | { | ||
623 | return pv_time_ops.time_init; | ||
624 | } | ||
625 | |||
626 | /* The paravirtualized CPUID instruction. */ | ||
627 | static inline void __cpuid(unsigned int *eax, unsigned int *ebx, | ||
628 | unsigned int *ecx, unsigned int *edx) | ||
629 | { | ||
630 | PVOP_VCALL4(pv_cpu_ops.cpuid, eax, ebx, ecx, edx); | ||
631 | } | ||
632 | |||
633 | /* | ||
634 | * These special macros can be used to get or set a debugging register | ||
635 | */ | ||
636 | static inline unsigned long paravirt_get_debugreg(int reg) | ||
637 | { | ||
638 | return PVOP_CALL1(unsigned long, pv_cpu_ops.get_debugreg, reg); | ||
639 | } | ||
640 | #define get_debugreg(var, reg) var = paravirt_get_debugreg(reg) | ||
641 | static inline void set_debugreg(unsigned long val, int reg) | ||
642 | { | ||
643 | PVOP_VCALL2(pv_cpu_ops.set_debugreg, reg, val); | ||
644 | } | ||
645 | |||
646 | static inline void clts(void) | ||
647 | { | ||
648 | PVOP_VCALL0(pv_cpu_ops.clts); | ||
649 | } | ||
650 | |||
651 | static inline unsigned long read_cr0(void) | ||
652 | { | ||
653 | return PVOP_CALL0(unsigned long, pv_cpu_ops.read_cr0); | ||
654 | } | ||
655 | |||
656 | static inline void write_cr0(unsigned long x) | ||
657 | { | ||
658 | PVOP_VCALL1(pv_cpu_ops.write_cr0, x); | ||
659 | } | ||
660 | |||
661 | static inline unsigned long read_cr2(void) | ||
662 | { | ||
663 | return PVOP_CALL0(unsigned long, pv_mmu_ops.read_cr2); | ||
664 | } | ||
665 | |||
666 | static inline void write_cr2(unsigned long x) | ||
667 | { | ||
668 | PVOP_VCALL1(pv_mmu_ops.write_cr2, x); | ||
669 | } | ||
670 | |||
671 | static inline unsigned long read_cr3(void) | ||
672 | { | ||
673 | return PVOP_CALL0(unsigned long, pv_mmu_ops.read_cr3); | ||
674 | } | ||
675 | |||
676 | static inline void write_cr3(unsigned long x) | ||
677 | { | ||
678 | PVOP_VCALL1(pv_mmu_ops.write_cr3, x); | ||
679 | } | ||
680 | |||
681 | static inline unsigned long read_cr4(void) | ||
682 | { | ||
683 | return PVOP_CALL0(unsigned long, pv_cpu_ops.read_cr4); | ||
684 | } | ||
685 | static inline unsigned long read_cr4_safe(void) | ||
686 | { | ||
687 | return PVOP_CALL0(unsigned long, pv_cpu_ops.read_cr4_safe); | ||
688 | } | ||
689 | |||
690 | static inline void write_cr4(unsigned long x) | ||
691 | { | ||
692 | PVOP_VCALL1(pv_cpu_ops.write_cr4, x); | ||
693 | } | ||
694 | |||
695 | #ifdef CONFIG_X86_64 | ||
696 | static inline unsigned long read_cr8(void) | ||
697 | { | ||
698 | return PVOP_CALL0(unsigned long, pv_cpu_ops.read_cr8); | ||
699 | } | ||
700 | |||
701 | static inline void write_cr8(unsigned long x) | ||
702 | { | ||
703 | PVOP_VCALL1(pv_cpu_ops.write_cr8, x); | ||
704 | } | ||
705 | #endif | ||
706 | |||
707 | static inline void raw_safe_halt(void) | ||
708 | { | ||
709 | PVOP_VCALL0(pv_irq_ops.safe_halt); | ||
710 | } | ||
711 | |||
712 | static inline void halt(void) | ||
713 | { | ||
714 | PVOP_VCALL0(pv_irq_ops.safe_halt); | ||
715 | } | ||
716 | |||
717 | static inline void wbinvd(void) | ||
718 | { | ||
719 | PVOP_VCALL0(pv_cpu_ops.wbinvd); | ||
720 | } | ||
721 | |||
722 | #define get_kernel_rpl() (pv_info.kernel_rpl) | ||
723 | |||
724 | static inline u64 paravirt_read_msr(unsigned msr, int *err) | ||
725 | { | ||
726 | return PVOP_CALL2(u64, pv_cpu_ops.read_msr, msr, err); | ||
727 | } | ||
728 | static inline u64 paravirt_read_msr_amd(unsigned msr, int *err) | ||
729 | { | ||
730 | return PVOP_CALL2(u64, pv_cpu_ops.read_msr_amd, msr, err); | ||
731 | } | ||
732 | static inline int paravirt_write_msr(unsigned msr, unsigned low, unsigned high) | ||
733 | { | ||
734 | return PVOP_CALL3(int, pv_cpu_ops.write_msr, msr, low, high); | ||
735 | } | ||
736 | |||
737 | /* These should all do BUG_ON(_err), but our headers are too tangled. */ | ||
738 | #define rdmsr(msr, val1, val2) \ | ||
739 | do { \ | ||
740 | int _err; \ | ||
741 | u64 _l = paravirt_read_msr(msr, &_err); \ | ||
742 | val1 = (u32)_l; \ | ||
743 | val2 = _l >> 32; \ | ||
744 | } while (0) | ||
745 | |||
746 | #define wrmsr(msr, val1, val2) \ | ||
747 | do { \ | ||
748 | paravirt_write_msr(msr, val1, val2); \ | ||
749 | } while (0) | ||
750 | |||
751 | #define rdmsrl(msr, val) \ | ||
752 | do { \ | ||
753 | int _err; \ | ||
754 | val = paravirt_read_msr(msr, &_err); \ | ||
755 | } while (0) | ||
756 | |||
757 | #define wrmsrl(msr, val) wrmsr(msr, (u32)((u64)(val)), ((u64)(val))>>32) | ||
758 | #define wrmsr_safe(msr, a, b) paravirt_write_msr(msr, a, b) | ||
759 | |||
760 | /* rdmsr with exception handling */ | ||
761 | #define rdmsr_safe(msr, a, b) \ | ||
762 | ({ \ | ||
763 | int _err; \ | ||
764 | u64 _l = paravirt_read_msr(msr, &_err); \ | ||
765 | (*a) = (u32)_l; \ | ||
766 | (*b) = _l >> 32; \ | ||
767 | _err; \ | ||
768 | }) | ||
769 | |||
770 | static inline int rdmsrl_safe(unsigned msr, unsigned long long *p) | ||
771 | { | ||
772 | int err; | ||
773 | |||
774 | *p = paravirt_read_msr(msr, &err); | ||
775 | return err; | ||
776 | } | ||
777 | static inline int rdmsrl_amd_safe(unsigned msr, unsigned long long *p) | ||
778 | { | ||
779 | int err; | ||
780 | |||
781 | *p = paravirt_read_msr_amd(msr, &err); | ||
782 | return err; | ||
783 | } | ||
784 | |||
785 | static inline u64 paravirt_read_tsc(void) | ||
786 | { | ||
787 | return PVOP_CALL0(u64, pv_cpu_ops.read_tsc); | ||
788 | } | ||
789 | |||
790 | #define rdtscl(low) \ | ||
791 | do { \ | ||
792 | u64 _l = paravirt_read_tsc(); \ | ||
793 | low = (int)_l; \ | ||
794 | } while (0) | ||
795 | |||
796 | #define rdtscll(val) (val = paravirt_read_tsc()) | ||
797 | |||
798 | static inline unsigned long long paravirt_sched_clock(void) | ||
799 | { | ||
800 | return PVOP_CALL0(unsigned long long, pv_time_ops.sched_clock); | ||
801 | } | ||
802 | #define calibrate_tsc() (pv_time_ops.get_tsc_khz()) | ||
803 | |||
804 | static inline unsigned long long paravirt_read_pmc(int counter) | ||
805 | { | ||
806 | return PVOP_CALL1(u64, pv_cpu_ops.read_pmc, counter); | ||
807 | } | ||
808 | |||
809 | #define rdpmc(counter, low, high) \ | ||
810 | do { \ | ||
811 | u64 _l = paravirt_read_pmc(counter); \ | ||
812 | low = (u32)_l; \ | ||
813 | high = _l >> 32; \ | ||
814 | } while (0) | ||
815 | |||
816 | static inline unsigned long long paravirt_rdtscp(unsigned int *aux) | ||
817 | { | ||
818 | return PVOP_CALL1(u64, pv_cpu_ops.read_tscp, aux); | ||
819 | } | ||
820 | |||
821 | #define rdtscp(low, high, aux) \ | ||
822 | do { \ | ||
823 | int __aux; \ | ||
824 | unsigned long __val = paravirt_rdtscp(&__aux); \ | ||
825 | (low) = (u32)__val; \ | ||
826 | (high) = (u32)(__val >> 32); \ | ||
827 | (aux) = __aux; \ | ||
828 | } while (0) | ||
829 | |||
830 | #define rdtscpll(val, aux) \ | ||
831 | do { \ | ||
832 | unsigned long __aux; \ | ||
833 | val = paravirt_rdtscp(&__aux); \ | ||
834 | (aux) = __aux; \ | ||
835 | } while (0) | ||
836 | |||
837 | static inline void paravirt_alloc_ldt(struct desc_struct *ldt, unsigned entries) | ||
838 | { | ||
839 | PVOP_VCALL2(pv_cpu_ops.alloc_ldt, ldt, entries); | ||
840 | } | ||
841 | |||
842 | static inline void paravirt_free_ldt(struct desc_struct *ldt, unsigned entries) | ||
843 | { | ||
844 | PVOP_VCALL2(pv_cpu_ops.free_ldt, ldt, entries); | ||
845 | } | ||
846 | |||
847 | static inline void load_TR_desc(void) | ||
848 | { | ||
849 | PVOP_VCALL0(pv_cpu_ops.load_tr_desc); | ||
850 | } | ||
851 | static inline void load_gdt(const struct desc_ptr *dtr) | ||
852 | { | ||
853 | PVOP_VCALL1(pv_cpu_ops.load_gdt, dtr); | ||
854 | } | ||
855 | static inline void load_idt(const struct desc_ptr *dtr) | ||
856 | { | ||
857 | PVOP_VCALL1(pv_cpu_ops.load_idt, dtr); | ||
858 | } | ||
859 | static inline void set_ldt(const void *addr, unsigned entries) | ||
860 | { | ||
861 | PVOP_VCALL2(pv_cpu_ops.set_ldt, addr, entries); | ||
862 | } | ||
863 | static inline void store_gdt(struct desc_ptr *dtr) | ||
864 | { | ||
865 | PVOP_VCALL1(pv_cpu_ops.store_gdt, dtr); | ||
866 | } | ||
867 | static inline void store_idt(struct desc_ptr *dtr) | ||
868 | { | ||
869 | PVOP_VCALL1(pv_cpu_ops.store_idt, dtr); | ||
870 | } | ||
871 | static inline unsigned long paravirt_store_tr(void) | ||
872 | { | ||
873 | return PVOP_CALL0(unsigned long, pv_cpu_ops.store_tr); | ||
874 | } | ||
875 | #define store_tr(tr) ((tr) = paravirt_store_tr()) | ||
876 | static inline void load_TLS(struct thread_struct *t, unsigned cpu) | ||
877 | { | ||
878 | PVOP_VCALL2(pv_cpu_ops.load_tls, t, cpu); | ||
879 | } | ||
880 | |||
881 | #ifdef CONFIG_X86_64 | ||
882 | static inline void load_gs_index(unsigned int gs) | ||
883 | { | ||
884 | PVOP_VCALL1(pv_cpu_ops.load_gs_index, gs); | ||
885 | } | ||
886 | #endif | ||
887 | |||
888 | static inline void write_ldt_entry(struct desc_struct *dt, int entry, | ||
889 | const void *desc) | ||
890 | { | ||
891 | PVOP_VCALL3(pv_cpu_ops.write_ldt_entry, dt, entry, desc); | ||
892 | } | ||
893 | |||
894 | static inline void write_gdt_entry(struct desc_struct *dt, int entry, | ||
895 | void *desc, int type) | ||
896 | { | ||
897 | PVOP_VCALL4(pv_cpu_ops.write_gdt_entry, dt, entry, desc, type); | ||
898 | } | ||
899 | |||
900 | static inline void write_idt_entry(gate_desc *dt, int entry, const gate_desc *g) | ||
901 | { | ||
902 | PVOP_VCALL3(pv_cpu_ops.write_idt_entry, dt, entry, g); | ||
903 | } | ||
904 | static inline void set_iopl_mask(unsigned mask) | ||
905 | { | ||
906 | PVOP_VCALL1(pv_cpu_ops.set_iopl_mask, mask); | ||
907 | } | ||
908 | |||
909 | /* The paravirtualized I/O functions */ | ||
910 | static inline void slow_down_io(void) | ||
911 | { | ||
912 | pv_cpu_ops.io_delay(); | ||
913 | #ifdef REALLY_SLOW_IO | ||
914 | pv_cpu_ops.io_delay(); | ||
915 | pv_cpu_ops.io_delay(); | ||
916 | pv_cpu_ops.io_delay(); | ||
917 | #endif | ||
918 | } | ||
919 | |||
920 | #ifdef CONFIG_X86_LOCAL_APIC | ||
921 | static inline void setup_boot_clock(void) | ||
922 | { | ||
923 | PVOP_VCALL0(pv_apic_ops.setup_boot_clock); | ||
924 | } | ||
925 | |||
926 | static inline void setup_secondary_clock(void) | ||
927 | { | ||
928 | PVOP_VCALL0(pv_apic_ops.setup_secondary_clock); | ||
929 | } | ||
930 | #endif | ||
931 | |||
932 | static inline void paravirt_post_allocator_init(void) | ||
933 | { | ||
934 | if (pv_init_ops.post_allocator_init) | ||
935 | (*pv_init_ops.post_allocator_init)(); | ||
936 | } | ||
937 | |||
938 | static inline void paravirt_pagetable_setup_start(pgd_t *base) | ||
939 | { | ||
940 | (*pv_mmu_ops.pagetable_setup_start)(base); | ||
941 | } | ||
942 | |||
943 | static inline void paravirt_pagetable_setup_done(pgd_t *base) | ||
944 | { | ||
945 | (*pv_mmu_ops.pagetable_setup_done)(base); | ||
946 | } | ||
947 | |||
948 | #ifdef CONFIG_SMP | ||
949 | static inline void startup_ipi_hook(int phys_apicid, unsigned long start_eip, | ||
950 | unsigned long start_esp) | ||
951 | { | ||
952 | PVOP_VCALL3(pv_apic_ops.startup_ipi_hook, | ||
953 | phys_apicid, start_eip, start_esp); | ||
954 | } | ||
955 | #endif | ||
956 | |||
957 | static inline void paravirt_activate_mm(struct mm_struct *prev, | ||
958 | struct mm_struct *next) | ||
959 | { | ||
960 | PVOP_VCALL2(pv_mmu_ops.activate_mm, prev, next); | ||
961 | } | ||
962 | |||
963 | static inline void arch_dup_mmap(struct mm_struct *oldmm, | ||
964 | struct mm_struct *mm) | ||
965 | { | ||
966 | PVOP_VCALL2(pv_mmu_ops.dup_mmap, oldmm, mm); | ||
967 | } | ||
968 | |||
969 | static inline void arch_exit_mmap(struct mm_struct *mm) | ||
970 | { | ||
971 | PVOP_VCALL1(pv_mmu_ops.exit_mmap, mm); | ||
972 | } | ||
973 | |||
974 | static inline void __flush_tlb(void) | ||
975 | { | ||
976 | PVOP_VCALL0(pv_mmu_ops.flush_tlb_user); | ||
977 | } | ||
978 | static inline void __flush_tlb_global(void) | ||
979 | { | ||
980 | PVOP_VCALL0(pv_mmu_ops.flush_tlb_kernel); | ||
981 | } | ||
982 | static inline void __flush_tlb_single(unsigned long addr) | ||
983 | { | ||
984 | PVOP_VCALL1(pv_mmu_ops.flush_tlb_single, addr); | ||
985 | } | ||
986 | |||
987 | static inline void flush_tlb_others(cpumask_t cpumask, struct mm_struct *mm, | ||
988 | unsigned long va) | ||
989 | { | ||
990 | PVOP_VCALL3(pv_mmu_ops.flush_tlb_others, &cpumask, mm, va); | ||
991 | } | ||
992 | |||
993 | static inline int paravirt_pgd_alloc(struct mm_struct *mm) | ||
994 | { | ||
995 | return PVOP_CALL1(int, pv_mmu_ops.pgd_alloc, mm); | ||
996 | } | ||
997 | |||
998 | static inline void paravirt_pgd_free(struct mm_struct *mm, pgd_t *pgd) | ||
999 | { | ||
1000 | PVOP_VCALL2(pv_mmu_ops.pgd_free, mm, pgd); | ||
1001 | } | ||
1002 | |||
1003 | static inline void paravirt_alloc_pte(struct mm_struct *mm, unsigned long pfn) | ||
1004 | { | ||
1005 | PVOP_VCALL2(pv_mmu_ops.alloc_pte, mm, pfn); | ||
1006 | } | ||
1007 | static inline void paravirt_release_pte(unsigned long pfn) | ||
1008 | { | ||
1009 | PVOP_VCALL1(pv_mmu_ops.release_pte, pfn); | ||
1010 | } | ||
1011 | |||
1012 | static inline void paravirt_alloc_pmd(struct mm_struct *mm, unsigned long pfn) | ||
1013 | { | ||
1014 | PVOP_VCALL2(pv_mmu_ops.alloc_pmd, mm, pfn); | ||
1015 | } | ||
1016 | |||
1017 | static inline void paravirt_alloc_pmd_clone(unsigned long pfn, unsigned long clonepfn, | ||
1018 | unsigned long start, unsigned long count) | ||
1019 | { | ||
1020 | PVOP_VCALL4(pv_mmu_ops.alloc_pmd_clone, pfn, clonepfn, start, count); | ||
1021 | } | ||
1022 | static inline void paravirt_release_pmd(unsigned long pfn) | ||
1023 | { | ||
1024 | PVOP_VCALL1(pv_mmu_ops.release_pmd, pfn); | ||
1025 | } | ||
1026 | |||
1027 | static inline void paravirt_alloc_pud(struct mm_struct *mm, unsigned long pfn) | ||
1028 | { | ||
1029 | PVOP_VCALL2(pv_mmu_ops.alloc_pud, mm, pfn); | ||
1030 | } | ||
1031 | static inline void paravirt_release_pud(unsigned long pfn) | ||
1032 | { | ||
1033 | PVOP_VCALL1(pv_mmu_ops.release_pud, pfn); | ||
1034 | } | ||
1035 | |||
1036 | #ifdef CONFIG_HIGHPTE | ||
1037 | static inline void *kmap_atomic_pte(struct page *page, enum km_type type) | ||
1038 | { | ||
1039 | unsigned long ret; | ||
1040 | ret = PVOP_CALL2(unsigned long, pv_mmu_ops.kmap_atomic_pte, page, type); | ||
1041 | return (void *)ret; | ||
1042 | } | ||
1043 | #endif | ||
1044 | |||
1045 | static inline void pte_update(struct mm_struct *mm, unsigned long addr, | ||
1046 | pte_t *ptep) | ||
1047 | { | ||
1048 | PVOP_VCALL3(pv_mmu_ops.pte_update, mm, addr, ptep); | ||
1049 | } | ||
1050 | |||
1051 | static inline void pte_update_defer(struct mm_struct *mm, unsigned long addr, | ||
1052 | pte_t *ptep) | ||
1053 | { | ||
1054 | PVOP_VCALL3(pv_mmu_ops.pte_update_defer, mm, addr, ptep); | ||
1055 | } | ||
1056 | |||
1057 | static inline pte_t __pte(pteval_t val) | ||
1058 | { | ||
1059 | pteval_t ret; | ||
1060 | |||
1061 | if (sizeof(pteval_t) > sizeof(long)) | ||
1062 | ret = PVOP_CALL2(pteval_t, | ||
1063 | pv_mmu_ops.make_pte, | ||
1064 | val, (u64)val >> 32); | ||
1065 | else | ||
1066 | ret = PVOP_CALL1(pteval_t, | ||
1067 | pv_mmu_ops.make_pte, | ||
1068 | val); | ||
1069 | |||
1070 | return (pte_t) { .pte = ret }; | ||
1071 | } | ||
1072 | |||
1073 | static inline pteval_t pte_val(pte_t pte) | ||
1074 | { | ||
1075 | pteval_t ret; | ||
1076 | |||
1077 | if (sizeof(pteval_t) > sizeof(long)) | ||
1078 | ret = PVOP_CALL2(pteval_t, pv_mmu_ops.pte_val, | ||
1079 | pte.pte, (u64)pte.pte >> 32); | ||
1080 | else | ||
1081 | ret = PVOP_CALL1(pteval_t, pv_mmu_ops.pte_val, | ||
1082 | pte.pte); | ||
1083 | |||
1084 | return ret; | ||
1085 | } | ||
1086 | |||
1087 | static inline pteval_t pte_flags(pte_t pte) | ||
1088 | { | ||
1089 | pteval_t ret; | ||
1090 | |||
1091 | if (sizeof(pteval_t) > sizeof(long)) | ||
1092 | ret = PVOP_CALL2(pteval_t, pv_mmu_ops.pte_flags, | ||
1093 | pte.pte, (u64)pte.pte >> 32); | ||
1094 | else | ||
1095 | ret = PVOP_CALL1(pteval_t, pv_mmu_ops.pte_flags, | ||
1096 | pte.pte); | ||
1097 | |||
1098 | #ifdef CONFIG_PARAVIRT_DEBUG | ||
1099 | BUG_ON(ret & PTE_PFN_MASK); | ||
1100 | #endif | ||
1101 | return ret; | ||
1102 | } | ||
1103 | |||
1104 | static inline pgd_t __pgd(pgdval_t val) | ||
1105 | { | ||
1106 | pgdval_t ret; | ||
1107 | |||
1108 | if (sizeof(pgdval_t) > sizeof(long)) | ||
1109 | ret = PVOP_CALL2(pgdval_t, pv_mmu_ops.make_pgd, | ||
1110 | val, (u64)val >> 32); | ||
1111 | else | ||
1112 | ret = PVOP_CALL1(pgdval_t, pv_mmu_ops.make_pgd, | ||
1113 | val); | ||
1114 | |||
1115 | return (pgd_t) { ret }; | ||
1116 | } | ||
1117 | |||
1118 | static inline pgdval_t pgd_val(pgd_t pgd) | ||
1119 | { | ||
1120 | pgdval_t ret; | ||
1121 | |||
1122 | if (sizeof(pgdval_t) > sizeof(long)) | ||
1123 | ret = PVOP_CALL2(pgdval_t, pv_mmu_ops.pgd_val, | ||
1124 | pgd.pgd, (u64)pgd.pgd >> 32); | ||
1125 | else | ||
1126 | ret = PVOP_CALL1(pgdval_t, pv_mmu_ops.pgd_val, | ||
1127 | pgd.pgd); | ||
1128 | |||
1129 | return ret; | ||
1130 | } | ||
1131 | |||
1132 | #define __HAVE_ARCH_PTEP_MODIFY_PROT_TRANSACTION | ||
1133 | static inline pte_t ptep_modify_prot_start(struct mm_struct *mm, unsigned long addr, | ||
1134 | pte_t *ptep) | ||
1135 | { | ||
1136 | pteval_t ret; | ||
1137 | |||
1138 | ret = PVOP_CALL3(pteval_t, pv_mmu_ops.ptep_modify_prot_start, | ||
1139 | mm, addr, ptep); | ||
1140 | |||
1141 | return (pte_t) { .pte = ret }; | ||
1142 | } | ||
1143 | |||
1144 | static inline void ptep_modify_prot_commit(struct mm_struct *mm, unsigned long addr, | ||
1145 | pte_t *ptep, pte_t pte) | ||
1146 | { | ||
1147 | if (sizeof(pteval_t) > sizeof(long)) | ||
1148 | /* 5 arg words */ | ||
1149 | pv_mmu_ops.ptep_modify_prot_commit(mm, addr, ptep, pte); | ||
1150 | else | ||
1151 | PVOP_VCALL4(pv_mmu_ops.ptep_modify_prot_commit, | ||
1152 | mm, addr, ptep, pte.pte); | ||
1153 | } | ||
1154 | |||
1155 | static inline void set_pte(pte_t *ptep, pte_t pte) | ||
1156 | { | ||
1157 | if (sizeof(pteval_t) > sizeof(long)) | ||
1158 | PVOP_VCALL3(pv_mmu_ops.set_pte, ptep, | ||
1159 | pte.pte, (u64)pte.pte >> 32); | ||
1160 | else | ||
1161 | PVOP_VCALL2(pv_mmu_ops.set_pte, ptep, | ||
1162 | pte.pte); | ||
1163 | } | ||
1164 | |||
1165 | static inline void set_pte_at(struct mm_struct *mm, unsigned long addr, | ||
1166 | pte_t *ptep, pte_t pte) | ||
1167 | { | ||
1168 | if (sizeof(pteval_t) > sizeof(long)) | ||
1169 | /* 5 arg words */ | ||
1170 | pv_mmu_ops.set_pte_at(mm, addr, ptep, pte); | ||
1171 | else | ||
1172 | PVOP_VCALL4(pv_mmu_ops.set_pte_at, mm, addr, ptep, pte.pte); | ||
1173 | } | ||
1174 | |||
1175 | static inline void set_pmd(pmd_t *pmdp, pmd_t pmd) | ||
1176 | { | ||
1177 | pmdval_t val = native_pmd_val(pmd); | ||
1178 | |||
1179 | if (sizeof(pmdval_t) > sizeof(long)) | ||
1180 | PVOP_VCALL3(pv_mmu_ops.set_pmd, pmdp, val, (u64)val >> 32); | ||
1181 | else | ||
1182 | PVOP_VCALL2(pv_mmu_ops.set_pmd, pmdp, val); | ||
1183 | } | ||
1184 | |||
1185 | #if PAGETABLE_LEVELS >= 3 | ||
1186 | static inline pmd_t __pmd(pmdval_t val) | ||
1187 | { | ||
1188 | pmdval_t ret; | ||
1189 | |||
1190 | if (sizeof(pmdval_t) > sizeof(long)) | ||
1191 | ret = PVOP_CALL2(pmdval_t, pv_mmu_ops.make_pmd, | ||
1192 | val, (u64)val >> 32); | ||
1193 | else | ||
1194 | ret = PVOP_CALL1(pmdval_t, pv_mmu_ops.make_pmd, | ||
1195 | val); | ||
1196 | |||
1197 | return (pmd_t) { ret }; | ||
1198 | } | ||
1199 | |||
1200 | static inline pmdval_t pmd_val(pmd_t pmd) | ||
1201 | { | ||
1202 | pmdval_t ret; | ||
1203 | |||
1204 | if (sizeof(pmdval_t) > sizeof(long)) | ||
1205 | ret = PVOP_CALL2(pmdval_t, pv_mmu_ops.pmd_val, | ||
1206 | pmd.pmd, (u64)pmd.pmd >> 32); | ||
1207 | else | ||
1208 | ret = PVOP_CALL1(pmdval_t, pv_mmu_ops.pmd_val, | ||
1209 | pmd.pmd); | ||
1210 | |||
1211 | return ret; | ||
1212 | } | ||
1213 | |||
1214 | static inline void set_pud(pud_t *pudp, pud_t pud) | ||
1215 | { | ||
1216 | pudval_t val = native_pud_val(pud); | ||
1217 | |||
1218 | if (sizeof(pudval_t) > sizeof(long)) | ||
1219 | PVOP_VCALL3(pv_mmu_ops.set_pud, pudp, | ||
1220 | val, (u64)val >> 32); | ||
1221 | else | ||
1222 | PVOP_VCALL2(pv_mmu_ops.set_pud, pudp, | ||
1223 | val); | ||
1224 | } | ||
1225 | #if PAGETABLE_LEVELS == 4 | ||
1226 | static inline pud_t __pud(pudval_t val) | ||
1227 | { | ||
1228 | pudval_t ret; | ||
1229 | |||
1230 | if (sizeof(pudval_t) > sizeof(long)) | ||
1231 | ret = PVOP_CALL2(pudval_t, pv_mmu_ops.make_pud, | ||
1232 | val, (u64)val >> 32); | ||
1233 | else | ||
1234 | ret = PVOP_CALL1(pudval_t, pv_mmu_ops.make_pud, | ||
1235 | val); | ||
1236 | |||
1237 | return (pud_t) { ret }; | ||
1238 | } | ||
1239 | |||
1240 | static inline pudval_t pud_val(pud_t pud) | ||
1241 | { | ||
1242 | pudval_t ret; | ||
1243 | |||
1244 | if (sizeof(pudval_t) > sizeof(long)) | ||
1245 | ret = PVOP_CALL2(pudval_t, pv_mmu_ops.pud_val, | ||
1246 | pud.pud, (u64)pud.pud >> 32); | ||
1247 | else | ||
1248 | ret = PVOP_CALL1(pudval_t, pv_mmu_ops.pud_val, | ||
1249 | pud.pud); | ||
1250 | |||
1251 | return ret; | ||
1252 | } | ||
1253 | |||
1254 | static inline void set_pgd(pgd_t *pgdp, pgd_t pgd) | ||
1255 | { | ||
1256 | pgdval_t val = native_pgd_val(pgd); | ||
1257 | |||
1258 | if (sizeof(pgdval_t) > sizeof(long)) | ||
1259 | PVOP_VCALL3(pv_mmu_ops.set_pgd, pgdp, | ||
1260 | val, (u64)val >> 32); | ||
1261 | else | ||
1262 | PVOP_VCALL2(pv_mmu_ops.set_pgd, pgdp, | ||
1263 | val); | ||
1264 | } | ||
1265 | |||
1266 | static inline void pgd_clear(pgd_t *pgdp) | ||
1267 | { | ||
1268 | set_pgd(pgdp, __pgd(0)); | ||
1269 | } | ||
1270 | |||
1271 | static inline void pud_clear(pud_t *pudp) | ||
1272 | { | ||
1273 | set_pud(pudp, __pud(0)); | ||
1274 | } | ||
1275 | |||
1276 | #endif /* PAGETABLE_LEVELS == 4 */ | ||
1277 | |||
1278 | #endif /* PAGETABLE_LEVELS >= 3 */ | ||
1279 | |||
1280 | #ifdef CONFIG_X86_PAE | ||
1281 | /* Special-case pte-setting operations for PAE, which can't update a | ||
1282 | 64-bit pte atomically */ | ||
1283 | static inline void set_pte_atomic(pte_t *ptep, pte_t pte) | ||
1284 | { | ||
1285 | PVOP_VCALL3(pv_mmu_ops.set_pte_atomic, ptep, | ||
1286 | pte.pte, pte.pte >> 32); | ||
1287 | } | ||
1288 | |||
1289 | static inline void set_pte_present(struct mm_struct *mm, unsigned long addr, | ||
1290 | pte_t *ptep, pte_t pte) | ||
1291 | { | ||
1292 | /* 5 arg words */ | ||
1293 | pv_mmu_ops.set_pte_present(mm, addr, ptep, pte); | ||
1294 | } | ||
1295 | |||
1296 | static inline void pte_clear(struct mm_struct *mm, unsigned long addr, | ||
1297 | pte_t *ptep) | ||
1298 | { | ||
1299 | PVOP_VCALL3(pv_mmu_ops.pte_clear, mm, addr, ptep); | ||
1300 | } | ||
1301 | |||
1302 | static inline void pmd_clear(pmd_t *pmdp) | ||
1303 | { | ||
1304 | PVOP_VCALL1(pv_mmu_ops.pmd_clear, pmdp); | ||
1305 | } | ||
1306 | #else /* !CONFIG_X86_PAE */ | ||
1307 | static inline void set_pte_atomic(pte_t *ptep, pte_t pte) | ||
1308 | { | ||
1309 | set_pte(ptep, pte); | ||
1310 | } | ||
1311 | |||
1312 | static inline void set_pte_present(struct mm_struct *mm, unsigned long addr, | ||
1313 | pte_t *ptep, pte_t pte) | ||
1314 | { | ||
1315 | set_pte(ptep, pte); | ||
1316 | } | ||
1317 | |||
1318 | static inline void pte_clear(struct mm_struct *mm, unsigned long addr, | ||
1319 | pte_t *ptep) | ||
1320 | { | ||
1321 | set_pte_at(mm, addr, ptep, __pte(0)); | ||
1322 | } | ||
1323 | |||
1324 | static inline void pmd_clear(pmd_t *pmdp) | ||
1325 | { | ||
1326 | set_pmd(pmdp, __pmd(0)); | ||
1327 | } | ||
1328 | #endif /* CONFIG_X86_PAE */ | ||
1329 | |||
1330 | /* Lazy mode for batching updates / context switch */ | ||
1331 | enum paravirt_lazy_mode { | ||
1332 | PARAVIRT_LAZY_NONE, | ||
1333 | PARAVIRT_LAZY_MMU, | ||
1334 | PARAVIRT_LAZY_CPU, | ||
1335 | }; | ||
1336 | |||
1337 | enum paravirt_lazy_mode paravirt_get_lazy_mode(void); | ||
1338 | void paravirt_enter_lazy_cpu(void); | ||
1339 | void paravirt_leave_lazy_cpu(void); | ||
1340 | void paravirt_enter_lazy_mmu(void); | ||
1341 | void paravirt_leave_lazy_mmu(void); | ||
1342 | void paravirt_leave_lazy(enum paravirt_lazy_mode mode); | ||
1343 | |||
1344 | #define __HAVE_ARCH_ENTER_LAZY_CPU_MODE | ||
1345 | static inline void arch_enter_lazy_cpu_mode(void) | ||
1346 | { | ||
1347 | PVOP_VCALL0(pv_cpu_ops.lazy_mode.enter); | ||
1348 | } | ||
1349 | |||
1350 | static inline void arch_leave_lazy_cpu_mode(void) | ||
1351 | { | ||
1352 | PVOP_VCALL0(pv_cpu_ops.lazy_mode.leave); | ||
1353 | } | ||
1354 | |||
1355 | static inline void arch_flush_lazy_cpu_mode(void) | ||
1356 | { | ||
1357 | if (unlikely(paravirt_get_lazy_mode() == PARAVIRT_LAZY_CPU)) { | ||
1358 | arch_leave_lazy_cpu_mode(); | ||
1359 | arch_enter_lazy_cpu_mode(); | ||
1360 | } | ||
1361 | } | ||
1362 | |||
1363 | |||
1364 | #define __HAVE_ARCH_ENTER_LAZY_MMU_MODE | ||
1365 | static inline void arch_enter_lazy_mmu_mode(void) | ||
1366 | { | ||
1367 | PVOP_VCALL0(pv_mmu_ops.lazy_mode.enter); | ||
1368 | } | ||
1369 | |||
1370 | static inline void arch_leave_lazy_mmu_mode(void) | ||
1371 | { | ||
1372 | PVOP_VCALL0(pv_mmu_ops.lazy_mode.leave); | ||
1373 | } | ||
1374 | |||
1375 | static inline void arch_flush_lazy_mmu_mode(void) | ||
1376 | { | ||
1377 | if (unlikely(paravirt_get_lazy_mode() == PARAVIRT_LAZY_MMU)) { | ||
1378 | arch_leave_lazy_mmu_mode(); | ||
1379 | arch_enter_lazy_mmu_mode(); | ||
1380 | } | ||
1381 | } | ||
1382 | |||
1383 | static inline void __set_fixmap(unsigned /* enum fixed_addresses */ idx, | ||
1384 | unsigned long phys, pgprot_t flags) | ||
1385 | { | ||
1386 | pv_mmu_ops.set_fixmap(idx, phys, flags); | ||
1387 | } | ||
1388 | |||
1389 | void _paravirt_nop(void); | ||
1390 | #define paravirt_nop ((void *)_paravirt_nop) | ||
1391 | |||
1392 | void paravirt_use_bytelocks(void); | ||
1393 | |||
1394 | #ifdef CONFIG_SMP | ||
1395 | |||
1396 | static inline int __raw_spin_is_locked(struct raw_spinlock *lock) | ||
1397 | { | ||
1398 | return PVOP_CALL1(int, pv_lock_ops.spin_is_locked, lock); | ||
1399 | } | ||
1400 | |||
1401 | static inline int __raw_spin_is_contended(struct raw_spinlock *lock) | ||
1402 | { | ||
1403 | return PVOP_CALL1(int, pv_lock_ops.spin_is_contended, lock); | ||
1404 | } | ||
1405 | |||
1406 | static __always_inline void __raw_spin_lock(struct raw_spinlock *lock) | ||
1407 | { | ||
1408 | PVOP_VCALL1(pv_lock_ops.spin_lock, lock); | ||
1409 | } | ||
1410 | |||
1411 | static __always_inline void __raw_spin_lock_flags(struct raw_spinlock *lock, | ||
1412 | unsigned long flags) | ||
1413 | { | ||
1414 | PVOP_VCALL2(pv_lock_ops.spin_lock_flags, lock, flags); | ||
1415 | } | ||
1416 | |||
1417 | static __always_inline int __raw_spin_trylock(struct raw_spinlock *lock) | ||
1418 | { | ||
1419 | return PVOP_CALL1(int, pv_lock_ops.spin_trylock, lock); | ||
1420 | } | ||
1421 | |||
1422 | static __always_inline void __raw_spin_unlock(struct raw_spinlock *lock) | ||
1423 | { | ||
1424 | PVOP_VCALL1(pv_lock_ops.spin_unlock, lock); | ||
1425 | } | ||
1426 | |||
1427 | #endif | ||
1428 | |||
1429 | /* These all sit in the .parainstructions section to tell us what to patch. */ | ||
1430 | struct paravirt_patch_site { | ||
1431 | u8 *instr; /* original instructions */ | ||
1432 | u8 instrtype; /* type of this instruction */ | ||
1433 | u8 len; /* length of original instruction */ | ||
1434 | u16 clobbers; /* what registers you may clobber */ | ||
1435 | }; | ||
1436 | |||
1437 | extern struct paravirt_patch_site __parainstructions[], | ||
1438 | __parainstructions_end[]; | ||
1439 | |||
1440 | #ifdef CONFIG_X86_32 | ||
1441 | #define PV_SAVE_REGS "pushl %%ecx; pushl %%edx;" | ||
1442 | #define PV_RESTORE_REGS "popl %%edx; popl %%ecx" | ||
1443 | #define PV_FLAGS_ARG "0" | ||
1444 | #define PV_EXTRA_CLOBBERS | ||
1445 | #define PV_VEXTRA_CLOBBERS | ||
1446 | #else | ||
1447 | /* We save some registers, but all of them, that's too much. We clobber all | ||
1448 | * caller saved registers but the argument parameter */ | ||
1449 | #define PV_SAVE_REGS "pushq %%rdi;" | ||
1450 | #define PV_RESTORE_REGS "popq %%rdi;" | ||
1451 | #define PV_EXTRA_CLOBBERS EXTRA_CLOBBERS, "rcx" , "rdx", "rsi" | ||
1452 | #define PV_VEXTRA_CLOBBERS EXTRA_CLOBBERS, "rdi", "rcx" , "rdx", "rsi" | ||
1453 | #define PV_FLAGS_ARG "D" | ||
1454 | #endif | ||
1455 | |||
1456 | static inline unsigned long __raw_local_save_flags(void) | ||
1457 | { | ||
1458 | unsigned long f; | ||
1459 | |||
1460 | asm volatile(paravirt_alt(PV_SAVE_REGS | ||
1461 | PARAVIRT_CALL | ||
1462 | PV_RESTORE_REGS) | ||
1463 | : "=a"(f) | ||
1464 | : paravirt_type(pv_irq_ops.save_fl), | ||
1465 | paravirt_clobber(CLBR_EAX) | ||
1466 | : "memory", "cc" PV_VEXTRA_CLOBBERS); | ||
1467 | return f; | ||
1468 | } | ||
1469 | |||
1470 | static inline void raw_local_irq_restore(unsigned long f) | ||
1471 | { | ||
1472 | asm volatile(paravirt_alt(PV_SAVE_REGS | ||
1473 | PARAVIRT_CALL | ||
1474 | PV_RESTORE_REGS) | ||
1475 | : "=a"(f) | ||
1476 | : PV_FLAGS_ARG(f), | ||
1477 | paravirt_type(pv_irq_ops.restore_fl), | ||
1478 | paravirt_clobber(CLBR_EAX) | ||
1479 | : "memory", "cc" PV_EXTRA_CLOBBERS); | ||
1480 | } | ||
1481 | |||
1482 | static inline void raw_local_irq_disable(void) | ||
1483 | { | ||
1484 | asm volatile(paravirt_alt(PV_SAVE_REGS | ||
1485 | PARAVIRT_CALL | ||
1486 | PV_RESTORE_REGS) | ||
1487 | : | ||
1488 | : paravirt_type(pv_irq_ops.irq_disable), | ||
1489 | paravirt_clobber(CLBR_EAX) | ||
1490 | : "memory", "eax", "cc" PV_EXTRA_CLOBBERS); | ||
1491 | } | ||
1492 | |||
1493 | static inline void raw_local_irq_enable(void) | ||
1494 | { | ||
1495 | asm volatile(paravirt_alt(PV_SAVE_REGS | ||
1496 | PARAVIRT_CALL | ||
1497 | PV_RESTORE_REGS) | ||
1498 | : | ||
1499 | : paravirt_type(pv_irq_ops.irq_enable), | ||
1500 | paravirt_clobber(CLBR_EAX) | ||
1501 | : "memory", "eax", "cc" PV_EXTRA_CLOBBERS); | ||
1502 | } | ||
1503 | |||
1504 | static inline unsigned long __raw_local_irq_save(void) | ||
1505 | { | ||
1506 | unsigned long f; | ||
1507 | |||
1508 | f = __raw_local_save_flags(); | ||
1509 | raw_local_irq_disable(); | ||
1510 | return f; | ||
1511 | } | ||
1512 | |||
1513 | |||
1514 | /* Make sure as little as possible of this mess escapes. */ | ||
1515 | #undef PARAVIRT_CALL | ||
1516 | #undef __PVOP_CALL | ||
1517 | #undef __PVOP_VCALL | ||
1518 | #undef PVOP_VCALL0 | ||
1519 | #undef PVOP_CALL0 | ||
1520 | #undef PVOP_VCALL1 | ||
1521 | #undef PVOP_CALL1 | ||
1522 | #undef PVOP_VCALL2 | ||
1523 | #undef PVOP_CALL2 | ||
1524 | #undef PVOP_VCALL3 | ||
1525 | #undef PVOP_CALL3 | ||
1526 | #undef PVOP_VCALL4 | ||
1527 | #undef PVOP_CALL4 | ||
1528 | |||
1529 | #else /* __ASSEMBLY__ */ | ||
1530 | |||
1531 | #define _PVSITE(ptype, clobbers, ops, word, algn) \ | ||
1532 | 771:; \ | ||
1533 | ops; \ | ||
1534 | 772:; \ | ||
1535 | .pushsection .parainstructions,"a"; \ | ||
1536 | .align algn; \ | ||
1537 | word 771b; \ | ||
1538 | .byte ptype; \ | ||
1539 | .byte 772b-771b; \ | ||
1540 | .short clobbers; \ | ||
1541 | .popsection | ||
1542 | |||
1543 | |||
1544 | #ifdef CONFIG_X86_64 | ||
1545 | #define PV_SAVE_REGS \ | ||
1546 | push %rax; \ | ||
1547 | push %rcx; \ | ||
1548 | push %rdx; \ | ||
1549 | push %rsi; \ | ||
1550 | push %rdi; \ | ||
1551 | push %r8; \ | ||
1552 | push %r9; \ | ||
1553 | push %r10; \ | ||
1554 | push %r11 | ||
1555 | #define PV_RESTORE_REGS \ | ||
1556 | pop %r11; \ | ||
1557 | pop %r10; \ | ||
1558 | pop %r9; \ | ||
1559 | pop %r8; \ | ||
1560 | pop %rdi; \ | ||
1561 | pop %rsi; \ | ||
1562 | pop %rdx; \ | ||
1563 | pop %rcx; \ | ||
1564 | pop %rax | ||
1565 | #define PARA_PATCH(struct, off) ((PARAVIRT_PATCH_##struct + (off)) / 8) | ||
1566 | #define PARA_SITE(ptype, clobbers, ops) _PVSITE(ptype, clobbers, ops, .quad, 8) | ||
1567 | #define PARA_INDIRECT(addr) *addr(%rip) | ||
1568 | #else | ||
1569 | #define PV_SAVE_REGS pushl %eax; pushl %edi; pushl %ecx; pushl %edx | ||
1570 | #define PV_RESTORE_REGS popl %edx; popl %ecx; popl %edi; popl %eax | ||
1571 | #define PARA_PATCH(struct, off) ((PARAVIRT_PATCH_##struct + (off)) / 4) | ||
1572 | #define PARA_SITE(ptype, clobbers, ops) _PVSITE(ptype, clobbers, ops, .long, 4) | ||
1573 | #define PARA_INDIRECT(addr) *%cs:addr | ||
1574 | #endif | ||
1575 | |||
1576 | #define INTERRUPT_RETURN \ | ||
1577 | PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_iret), CLBR_NONE, \ | ||
1578 | jmp PARA_INDIRECT(pv_cpu_ops+PV_CPU_iret)) | ||
1579 | |||
1580 | #define DISABLE_INTERRUPTS(clobbers) \ | ||
1581 | PARA_SITE(PARA_PATCH(pv_irq_ops, PV_IRQ_irq_disable), clobbers, \ | ||
1582 | PV_SAVE_REGS; \ | ||
1583 | call PARA_INDIRECT(pv_irq_ops+PV_IRQ_irq_disable); \ | ||
1584 | PV_RESTORE_REGS;) \ | ||
1585 | |||
1586 | #define ENABLE_INTERRUPTS(clobbers) \ | ||
1587 | PARA_SITE(PARA_PATCH(pv_irq_ops, PV_IRQ_irq_enable), clobbers, \ | ||
1588 | PV_SAVE_REGS; \ | ||
1589 | call PARA_INDIRECT(pv_irq_ops+PV_IRQ_irq_enable); \ | ||
1590 | PV_RESTORE_REGS;) | ||
1591 | |||
1592 | #define USERGS_SYSRET32 \ | ||
1593 | PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_usergs_sysret32), \ | ||
1594 | CLBR_NONE, \ | ||
1595 | jmp PARA_INDIRECT(pv_cpu_ops+PV_CPU_usergs_sysret32)) | ||
1596 | |||
1597 | #ifdef CONFIG_X86_32 | ||
1598 | #define GET_CR0_INTO_EAX \ | ||
1599 | push %ecx; push %edx; \ | ||
1600 | call PARA_INDIRECT(pv_cpu_ops+PV_CPU_read_cr0); \ | ||
1601 | pop %edx; pop %ecx | ||
1602 | |||
1603 | #define ENABLE_INTERRUPTS_SYSEXIT \ | ||
1604 | PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_irq_enable_sysexit), \ | ||
1605 | CLBR_NONE, \ | ||
1606 | jmp PARA_INDIRECT(pv_cpu_ops+PV_CPU_irq_enable_sysexit)) | ||
1607 | |||
1608 | |||
1609 | #else /* !CONFIG_X86_32 */ | ||
1610 | |||
1611 | /* | ||
1612 | * If swapgs is used while the userspace stack is still current, | ||
1613 | * there's no way to call a pvop. The PV replacement *must* be | ||
1614 | * inlined, or the swapgs instruction must be trapped and emulated. | ||
1615 | */ | ||
1616 | #define SWAPGS_UNSAFE_STACK \ | ||
1617 | PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_swapgs), CLBR_NONE, \ | ||
1618 | swapgs) | ||
1619 | |||
1620 | #define SWAPGS \ | ||
1621 | PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_swapgs), CLBR_NONE, \ | ||
1622 | PV_SAVE_REGS; \ | ||
1623 | call PARA_INDIRECT(pv_cpu_ops+PV_CPU_swapgs); \ | ||
1624 | PV_RESTORE_REGS \ | ||
1625 | ) | ||
1626 | |||
1627 | #define GET_CR2_INTO_RCX \ | ||
1628 | call PARA_INDIRECT(pv_mmu_ops+PV_MMU_read_cr2); \ | ||
1629 | movq %rax, %rcx; \ | ||
1630 | xorq %rax, %rax; | ||
1631 | |||
1632 | #define PARAVIRT_ADJUST_EXCEPTION_FRAME \ | ||
1633 | PARA_SITE(PARA_PATCH(pv_irq_ops, PV_IRQ_adjust_exception_frame), \ | ||
1634 | CLBR_NONE, \ | ||
1635 | call PARA_INDIRECT(pv_irq_ops+PV_IRQ_adjust_exception_frame)) | ||
1636 | |||
1637 | #define USERGS_SYSRET64 \ | ||
1638 | PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_usergs_sysret64), \ | ||
1639 | CLBR_NONE, \ | ||
1640 | jmp PARA_INDIRECT(pv_cpu_ops+PV_CPU_usergs_sysret64)) | ||
1641 | |||
1642 | #define ENABLE_INTERRUPTS_SYSEXIT32 \ | ||
1643 | PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_irq_enable_sysexit), \ | ||
1644 | CLBR_NONE, \ | ||
1645 | jmp PARA_INDIRECT(pv_cpu_ops+PV_CPU_irq_enable_sysexit)) | ||
1646 | #endif /* CONFIG_X86_32 */ | ||
1647 | |||
1648 | #endif /* __ASSEMBLY__ */ | ||
1649 | #endif /* CONFIG_PARAVIRT */ | ||
1650 | #endif /* _ASM_X86_PARAVIRT_H */ | ||
diff --git a/arch/x86/include/asm/parport.h b/arch/x86/include/asm/parport.h new file mode 100644 index 000000000000..3c4ffeb467e9 --- /dev/null +++ b/arch/x86/include/asm/parport.h | |||
@@ -0,0 +1,10 @@ | |||
1 | #ifndef _ASM_X86_PARPORT_H | ||
2 | #define _ASM_X86_PARPORT_H | ||
3 | |||
4 | static int __devinit parport_pc_find_isa_ports(int autoirq, int autodma); | ||
5 | static int __devinit parport_pc_find_nonpci_ports(int autoirq, int autodma) | ||
6 | { | ||
7 | return parport_pc_find_isa_ports(autoirq, autodma); | ||
8 | } | ||
9 | |||
10 | #endif /* _ASM_X86_PARPORT_H */ | ||
diff --git a/arch/x86/include/asm/pat.h b/arch/x86/include/asm/pat.h new file mode 100644 index 000000000000..b8493b3b9890 --- /dev/null +++ b/arch/x86/include/asm/pat.h | |||
@@ -0,0 +1,22 @@ | |||
1 | #ifndef _ASM_X86_PAT_H | ||
2 | #define _ASM_X86_PAT_H | ||
3 | |||
4 | #include <linux/types.h> | ||
5 | |||
6 | #ifdef CONFIG_X86_PAT | ||
7 | extern int pat_enabled; | ||
8 | extern void validate_pat_support(struct cpuinfo_x86 *c); | ||
9 | #else | ||
10 | static const int pat_enabled; | ||
11 | static inline void validate_pat_support(struct cpuinfo_x86 *c) { } | ||
12 | #endif | ||
13 | |||
14 | extern void pat_init(void); | ||
15 | |||
16 | extern int reserve_memtype(u64 start, u64 end, | ||
17 | unsigned long req_type, unsigned long *ret_type); | ||
18 | extern int free_memtype(u64 start, u64 end); | ||
19 | |||
20 | extern void pat_disable(char *reason); | ||
21 | |||
22 | #endif /* _ASM_X86_PAT_H */ | ||
diff --git a/arch/x86/include/asm/pci-direct.h b/arch/x86/include/asm/pci-direct.h new file mode 100644 index 000000000000..b1e7a45d868a --- /dev/null +++ b/arch/x86/include/asm/pci-direct.h | |||
@@ -0,0 +1,21 @@ | |||
1 | #ifndef _ASM_X86_PCI_DIRECT_H | ||
2 | #define _ASM_X86_PCI_DIRECT_H | ||
3 | |||
4 | #include <linux/types.h> | ||
5 | |||
6 | /* Direct PCI access. This is used for PCI accesses in early boot before | ||
7 | the PCI subsystem works. */ | ||
8 | |||
9 | extern u32 read_pci_config(u8 bus, u8 slot, u8 func, u8 offset); | ||
10 | extern u8 read_pci_config_byte(u8 bus, u8 slot, u8 func, u8 offset); | ||
11 | extern u16 read_pci_config_16(u8 bus, u8 slot, u8 func, u8 offset); | ||
12 | extern void write_pci_config(u8 bus, u8 slot, u8 func, u8 offset, u32 val); | ||
13 | extern void write_pci_config_byte(u8 bus, u8 slot, u8 func, u8 offset, u8 val); | ||
14 | extern void write_pci_config_16(u8 bus, u8 slot, u8 func, u8 offset, u16 val); | ||
15 | |||
16 | extern int early_pci_allowed(void); | ||
17 | |||
18 | extern unsigned int pci_early_dump_regs; | ||
19 | extern void early_dump_pci_device(u8 bus, u8 slot, u8 func); | ||
20 | extern void early_dump_pci_devices(void); | ||
21 | #endif /* _ASM_X86_PCI_DIRECT_H */ | ||
diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h new file mode 100644 index 000000000000..875b38edf193 --- /dev/null +++ b/arch/x86/include/asm/pci.h | |||
@@ -0,0 +1,114 @@ | |||
1 | #ifndef _ASM_X86_PCI_H | ||
2 | #define _ASM_X86_PCI_H | ||
3 | |||
4 | #include <linux/mm.h> /* for struct page */ | ||
5 | #include <linux/types.h> | ||
6 | #include <linux/slab.h> | ||
7 | #include <linux/string.h> | ||
8 | #include <asm/scatterlist.h> | ||
9 | #include <asm/io.h> | ||
10 | |||
11 | #ifdef __KERNEL__ | ||
12 | |||
13 | struct pci_sysdata { | ||
14 | int domain; /* PCI domain */ | ||
15 | int node; /* NUMA node */ | ||
16 | #ifdef CONFIG_X86_64 | ||
17 | void *iommu; /* IOMMU private data */ | ||
18 | #endif | ||
19 | }; | ||
20 | |||
21 | extern int pci_routeirq; | ||
22 | |||
23 | /* scan a bus after allocating a pci_sysdata for it */ | ||
24 | extern struct pci_bus *pci_scan_bus_on_node(int busno, struct pci_ops *ops, | ||
25 | int node); | ||
26 | extern struct pci_bus *pci_scan_bus_with_sysdata(int busno); | ||
27 | |||
28 | static inline int pci_domain_nr(struct pci_bus *bus) | ||
29 | { | ||
30 | struct pci_sysdata *sd = bus->sysdata; | ||
31 | return sd->domain; | ||
32 | } | ||
33 | |||
34 | static inline int pci_proc_domain(struct pci_bus *bus) | ||
35 | { | ||
36 | return pci_domain_nr(bus); | ||
37 | } | ||
38 | |||
39 | |||
40 | /* Can be used to override the logic in pci_scan_bus for skipping | ||
41 | already-configured bus numbers - to be used for buggy BIOSes | ||
42 | or architectures with incomplete PCI setup by the loader */ | ||
43 | |||
44 | #ifdef CONFIG_PCI | ||
45 | extern unsigned int pcibios_assign_all_busses(void); | ||
46 | #else | ||
47 | #define pcibios_assign_all_busses() 0 | ||
48 | #endif | ||
49 | #define pcibios_scan_all_fns(a, b) 0 | ||
50 | |||
51 | extern unsigned long pci_mem_start; | ||
52 | #define PCIBIOS_MIN_IO 0x1000 | ||
53 | #define PCIBIOS_MIN_MEM (pci_mem_start) | ||
54 | |||
55 | #define PCIBIOS_MIN_CARDBUS_IO 0x4000 | ||
56 | |||
57 | void pcibios_config_init(void); | ||
58 | struct pci_bus *pcibios_scan_root(int bus); | ||
59 | |||
60 | void pcibios_set_master(struct pci_dev *dev); | ||
61 | void pcibios_penalize_isa_irq(int irq, int active); | ||
62 | struct irq_routing_table *pcibios_get_irq_routing_table(void); | ||
63 | int pcibios_set_irq_routing(struct pci_dev *dev, int pin, int irq); | ||
64 | |||
65 | |||
66 | #define HAVE_PCI_MMAP | ||
67 | extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | ||
68 | enum pci_mmap_state mmap_state, | ||
69 | int write_combine); | ||
70 | |||
71 | |||
72 | #ifdef CONFIG_PCI | ||
73 | extern void early_quirks(void); | ||
74 | static inline void pci_dma_burst_advice(struct pci_dev *pdev, | ||
75 | enum pci_dma_burst_strategy *strat, | ||
76 | unsigned long *strategy_parameter) | ||
77 | { | ||
78 | *strat = PCI_DMA_BURST_INFINITY; | ||
79 | *strategy_parameter = ~0UL; | ||
80 | } | ||
81 | #else | ||
82 | static inline void early_quirks(void) { } | ||
83 | #endif | ||
84 | |||
85 | #endif /* __KERNEL__ */ | ||
86 | |||
87 | #ifdef CONFIG_X86_32 | ||
88 | # include "pci_32.h" | ||
89 | #else | ||
90 | # include "pci_64.h" | ||
91 | #endif | ||
92 | |||
93 | /* implement the pci_ DMA API in terms of the generic device dma_ one */ | ||
94 | #include <asm-generic/pci-dma-compat.h> | ||
95 | |||
96 | /* generic pci stuff */ | ||
97 | #include <asm-generic/pci.h> | ||
98 | |||
99 | #ifdef CONFIG_NUMA | ||
100 | /* Returns the node based on pci bus */ | ||
101 | static inline int __pcibus_to_node(struct pci_bus *bus) | ||
102 | { | ||
103 | struct pci_sysdata *sd = bus->sysdata; | ||
104 | |||
105 | return sd->node; | ||
106 | } | ||
107 | |||
108 | static inline cpumask_t __pcibus_to_cpumask(struct pci_bus *bus) | ||
109 | { | ||
110 | return node_to_cpumask(__pcibus_to_node(bus)); | ||
111 | } | ||
112 | #endif | ||
113 | |||
114 | #endif /* _ASM_X86_PCI_H */ | ||
diff --git a/arch/x86/include/asm/pci_32.h b/arch/x86/include/asm/pci_32.h new file mode 100644 index 000000000000..6f1213a6ef4f --- /dev/null +++ b/arch/x86/include/asm/pci_32.h | |||
@@ -0,0 +1,34 @@ | |||
1 | #ifndef _ASM_X86_PCI_32_H | ||
2 | #define _ASM_X86_PCI_32_H | ||
3 | |||
4 | |||
5 | #ifdef __KERNEL__ | ||
6 | |||
7 | |||
8 | /* Dynamic DMA mapping stuff. | ||
9 | * i386 has everything mapped statically. | ||
10 | */ | ||
11 | |||
12 | struct pci_dev; | ||
13 | |||
14 | /* The PCI address space does equal the physical memory | ||
15 | * address space. The networking and block device layers use | ||
16 | * this boolean for bounce buffer decisions. | ||
17 | */ | ||
18 | #define PCI_DMA_BUS_IS_PHYS (1) | ||
19 | |||
20 | /* pci_unmap_{page,single} is a nop so... */ | ||
21 | #define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) dma_addr_t ADDR_NAME[0]; | ||
22 | #define DECLARE_PCI_UNMAP_LEN(LEN_NAME) unsigned LEN_NAME[0]; | ||
23 | #define pci_unmap_addr(PTR, ADDR_NAME) sizeof((PTR)->ADDR_NAME) | ||
24 | #define pci_unmap_addr_set(PTR, ADDR_NAME, VAL) \ | ||
25 | do { break; } while (pci_unmap_addr(PTR, ADDR_NAME)) | ||
26 | #define pci_unmap_len(PTR, LEN_NAME) sizeof((PTR)->LEN_NAME) | ||
27 | #define pci_unmap_len_set(PTR, LEN_NAME, VAL) \ | ||
28 | do { break; } while (pci_unmap_len(PTR, LEN_NAME)) | ||
29 | |||
30 | |||
31 | #endif /* __KERNEL__ */ | ||
32 | |||
33 | |||
34 | #endif /* _ASM_X86_PCI_32_H */ | ||
diff --git a/arch/x86/include/asm/pci_64.h b/arch/x86/include/asm/pci_64.h new file mode 100644 index 000000000000..5b28995d664e --- /dev/null +++ b/arch/x86/include/asm/pci_64.h | |||
@@ -0,0 +1,66 @@ | |||
1 | #ifndef _ASM_X86_PCI_64_H | ||
2 | #define _ASM_X86_PCI_64_H | ||
3 | |||
4 | #ifdef __KERNEL__ | ||
5 | |||
6 | #ifdef CONFIG_CALGARY_IOMMU | ||
7 | static inline void *pci_iommu(struct pci_bus *bus) | ||
8 | { | ||
9 | struct pci_sysdata *sd = bus->sysdata; | ||
10 | return sd->iommu; | ||
11 | } | ||
12 | |||
13 | static inline void set_pci_iommu(struct pci_bus *bus, void *val) | ||
14 | { | ||
15 | struct pci_sysdata *sd = bus->sysdata; | ||
16 | sd->iommu = val; | ||
17 | } | ||
18 | #endif /* CONFIG_CALGARY_IOMMU */ | ||
19 | |||
20 | extern int (*pci_config_read)(int seg, int bus, int dev, int fn, | ||
21 | int reg, int len, u32 *value); | ||
22 | extern int (*pci_config_write)(int seg, int bus, int dev, int fn, | ||
23 | int reg, int len, u32 value); | ||
24 | |||
25 | extern void dma32_reserve_bootmem(void); | ||
26 | extern void pci_iommu_alloc(void); | ||
27 | |||
28 | /* The PCI address space does equal the physical memory | ||
29 | * address space. The networking and block device layers use | ||
30 | * this boolean for bounce buffer decisions | ||
31 | * | ||
32 | * On AMD64 it mostly equals, but we set it to zero if a hardware | ||
33 | * IOMMU (gart) of sotware IOMMU (swiotlb) is available. | ||
34 | */ | ||
35 | #define PCI_DMA_BUS_IS_PHYS (dma_ops->is_phys) | ||
36 | |||
37 | #if defined(CONFIG_GART_IOMMU) || defined(CONFIG_CALGARY_IOMMU) | ||
38 | |||
39 | #define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) \ | ||
40 | dma_addr_t ADDR_NAME; | ||
41 | #define DECLARE_PCI_UNMAP_LEN(LEN_NAME) \ | ||
42 | __u32 LEN_NAME; | ||
43 | #define pci_unmap_addr(PTR, ADDR_NAME) \ | ||
44 | ((PTR)->ADDR_NAME) | ||
45 | #define pci_unmap_addr_set(PTR, ADDR_NAME, VAL) \ | ||
46 | (((PTR)->ADDR_NAME) = (VAL)) | ||
47 | #define pci_unmap_len(PTR, LEN_NAME) \ | ||
48 | ((PTR)->LEN_NAME) | ||
49 | #define pci_unmap_len_set(PTR, LEN_NAME, VAL) \ | ||
50 | (((PTR)->LEN_NAME) = (VAL)) | ||
51 | |||
52 | #else | ||
53 | /* No IOMMU */ | ||
54 | |||
55 | #define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) | ||
56 | #define DECLARE_PCI_UNMAP_LEN(LEN_NAME) | ||
57 | #define pci_unmap_addr(PTR, ADDR_NAME) (0) | ||
58 | #define pci_unmap_addr_set(PTR, ADDR_NAME, VAL) do { } while (0) | ||
59 | #define pci_unmap_len(PTR, LEN_NAME) (0) | ||
60 | #define pci_unmap_len_set(PTR, LEN_NAME, VAL) do { } while (0) | ||
61 | |||
62 | #endif | ||
63 | |||
64 | #endif /* __KERNEL__ */ | ||
65 | |||
66 | #endif /* _ASM_X86_PCI_64_H */ | ||
diff --git a/arch/x86/include/asm/pda.h b/arch/x86/include/asm/pda.h new file mode 100644 index 000000000000..2fbfff88df37 --- /dev/null +++ b/arch/x86/include/asm/pda.h | |||
@@ -0,0 +1,137 @@ | |||
1 | #ifndef _ASM_X86_PDA_H | ||
2 | #define _ASM_X86_PDA_H | ||
3 | |||
4 | #ifndef __ASSEMBLY__ | ||
5 | #include <linux/stddef.h> | ||
6 | #include <linux/types.h> | ||
7 | #include <linux/cache.h> | ||
8 | #include <asm/page.h> | ||
9 | |||
10 | /* Per processor datastructure. %gs points to it while the kernel runs */ | ||
11 | struct x8664_pda { | ||
12 | struct task_struct *pcurrent; /* 0 Current process */ | ||
13 | unsigned long data_offset; /* 8 Per cpu data offset from linker | ||
14 | address */ | ||
15 | unsigned long kernelstack; /* 16 top of kernel stack for current */ | ||
16 | unsigned long oldrsp; /* 24 user rsp for system call */ | ||
17 | int irqcount; /* 32 Irq nesting counter. Starts -1 */ | ||
18 | unsigned int cpunumber; /* 36 Logical CPU number */ | ||
19 | #ifdef CONFIG_CC_STACKPROTECTOR | ||
20 | unsigned long stack_canary; /* 40 stack canary value */ | ||
21 | /* gcc-ABI: this canary MUST be at | ||
22 | offset 40!!! */ | ||
23 | #endif | ||
24 | char *irqstackptr; | ||
25 | short nodenumber; /* number of current node (32k max) */ | ||
26 | short in_bootmem; /* pda lives in bootmem */ | ||
27 | unsigned int __softirq_pending; | ||
28 | unsigned int __nmi_count; /* number of NMI on this CPUs */ | ||
29 | short mmu_state; | ||
30 | short isidle; | ||
31 | struct mm_struct *active_mm; | ||
32 | unsigned apic_timer_irqs; | ||
33 | unsigned irq0_irqs; | ||
34 | unsigned irq_resched_count; | ||
35 | unsigned irq_call_count; | ||
36 | unsigned irq_tlb_count; | ||
37 | unsigned irq_thermal_count; | ||
38 | unsigned irq_threshold_count; | ||
39 | unsigned irq_spurious_count; | ||
40 | } ____cacheline_aligned_in_smp; | ||
41 | |||
42 | extern struct x8664_pda **_cpu_pda; | ||
43 | extern void pda_init(int); | ||
44 | |||
45 | #define cpu_pda(i) (_cpu_pda[i]) | ||
46 | |||
47 | /* | ||
48 | * There is no fast way to get the base address of the PDA, all the accesses | ||
49 | * have to mention %fs/%gs. So it needs to be done this Torvaldian way. | ||
50 | */ | ||
51 | extern void __bad_pda_field(void) __attribute__((noreturn)); | ||
52 | |||
53 | /* | ||
54 | * proxy_pda doesn't actually exist, but tell gcc it is accessed for | ||
55 | * all PDA accesses so it gets read/write dependencies right. | ||
56 | */ | ||
57 | extern struct x8664_pda _proxy_pda; | ||
58 | |||
59 | #define pda_offset(field) offsetof(struct x8664_pda, field) | ||
60 | |||
61 | #define pda_to_op(op, field, val) \ | ||
62 | do { \ | ||
63 | typedef typeof(_proxy_pda.field) T__; \ | ||
64 | if (0) { T__ tmp__; tmp__ = (val); } /* type checking */ \ | ||
65 | switch (sizeof(_proxy_pda.field)) { \ | ||
66 | case 2: \ | ||
67 | asm(op "w %1,%%gs:%c2" : \ | ||
68 | "+m" (_proxy_pda.field) : \ | ||
69 | "ri" ((T__)val), \ | ||
70 | "i"(pda_offset(field))); \ | ||
71 | break; \ | ||
72 | case 4: \ | ||
73 | asm(op "l %1,%%gs:%c2" : \ | ||
74 | "+m" (_proxy_pda.field) : \ | ||
75 | "ri" ((T__)val), \ | ||
76 | "i" (pda_offset(field))); \ | ||
77 | break; \ | ||
78 | case 8: \ | ||
79 | asm(op "q %1,%%gs:%c2": \ | ||
80 | "+m" (_proxy_pda.field) : \ | ||
81 | "ri" ((T__)val), \ | ||
82 | "i"(pda_offset(field))); \ | ||
83 | break; \ | ||
84 | default: \ | ||
85 | __bad_pda_field(); \ | ||
86 | } \ | ||
87 | } while (0) | ||
88 | |||
89 | #define pda_from_op(op, field) \ | ||
90 | ({ \ | ||
91 | typeof(_proxy_pda.field) ret__; \ | ||
92 | switch (sizeof(_proxy_pda.field)) { \ | ||
93 | case 2: \ | ||
94 | asm(op "w %%gs:%c1,%0" : \ | ||
95 | "=r" (ret__) : \ | ||
96 | "i" (pda_offset(field)), \ | ||
97 | "m" (_proxy_pda.field)); \ | ||
98 | break; \ | ||
99 | case 4: \ | ||
100 | asm(op "l %%gs:%c1,%0": \ | ||
101 | "=r" (ret__): \ | ||
102 | "i" (pda_offset(field)), \ | ||
103 | "m" (_proxy_pda.field)); \ | ||
104 | break; \ | ||
105 | case 8: \ | ||
106 | asm(op "q %%gs:%c1,%0": \ | ||
107 | "=r" (ret__) : \ | ||
108 | "i" (pda_offset(field)), \ | ||
109 | "m" (_proxy_pda.field)); \ | ||
110 | break; \ | ||
111 | default: \ | ||
112 | __bad_pda_field(); \ | ||
113 | } \ | ||
114 | ret__; \ | ||
115 | }) | ||
116 | |||
117 | #define read_pda(field) pda_from_op("mov", field) | ||
118 | #define write_pda(field, val) pda_to_op("mov", field, val) | ||
119 | #define add_pda(field, val) pda_to_op("add", field, val) | ||
120 | #define sub_pda(field, val) pda_to_op("sub", field, val) | ||
121 | #define or_pda(field, val) pda_to_op("or", field, val) | ||
122 | |||
123 | /* This is not atomic against other CPUs -- CPU preemption needs to be off */ | ||
124 | #define test_and_clear_bit_pda(bit, field) \ | ||
125 | ({ \ | ||
126 | int old__; \ | ||
127 | asm volatile("btr %2,%%gs:%c3\n\tsbbl %0,%0" \ | ||
128 | : "=r" (old__), "+m" (_proxy_pda.field) \ | ||
129 | : "dIr" (bit), "i" (pda_offset(field)) : "memory");\ | ||
130 | old__; \ | ||
131 | }) | ||
132 | |||
133 | #endif | ||
134 | |||
135 | #define PDA_STACKOFFSET (5*8) | ||
136 | |||
137 | #endif /* _ASM_X86_PDA_H */ | ||
diff --git a/arch/x86/include/asm/percpu.h b/arch/x86/include/asm/percpu.h new file mode 100644 index 000000000000..ece72053ba63 --- /dev/null +++ b/arch/x86/include/asm/percpu.h | |||
@@ -0,0 +1,218 @@ | |||
1 | #ifndef _ASM_X86_PERCPU_H | ||
2 | #define _ASM_X86_PERCPU_H | ||
3 | |||
4 | #ifdef CONFIG_X86_64 | ||
5 | #include <linux/compiler.h> | ||
6 | |||
7 | /* Same as asm-generic/percpu.h, except that we store the per cpu offset | ||
8 | in the PDA. Longer term the PDA and every per cpu variable | ||
9 | should be just put into a single section and referenced directly | ||
10 | from %gs */ | ||
11 | |||
12 | #ifdef CONFIG_SMP | ||
13 | #include <asm/pda.h> | ||
14 | |||
15 | #define __per_cpu_offset(cpu) (cpu_pda(cpu)->data_offset) | ||
16 | #define __my_cpu_offset read_pda(data_offset) | ||
17 | |||
18 | #define per_cpu_offset(x) (__per_cpu_offset(x)) | ||
19 | |||
20 | #endif | ||
21 | #include <asm-generic/percpu.h> | ||
22 | |||
23 | DECLARE_PER_CPU(struct x8664_pda, pda); | ||
24 | |||
25 | /* | ||
26 | * These are supposed to be implemented as a single instruction which | ||
27 | * operates on the per-cpu data base segment. x86-64 doesn't have | ||
28 | * that yet, so this is a fairly inefficient workaround for the | ||
29 | * meantime. The single instruction is atomic with respect to | ||
30 | * preemption and interrupts, so we need to explicitly disable | ||
31 | * interrupts here to achieve the same effect. However, because it | ||
32 | * can be used from within interrupt-disable/enable, we can't actually | ||
33 | * disable interrupts; disabling preemption is enough. | ||
34 | */ | ||
35 | #define x86_read_percpu(var) \ | ||
36 | ({ \ | ||
37 | typeof(per_cpu_var(var)) __tmp; \ | ||
38 | preempt_disable(); \ | ||
39 | __tmp = __get_cpu_var(var); \ | ||
40 | preempt_enable(); \ | ||
41 | __tmp; \ | ||
42 | }) | ||
43 | |||
44 | #define x86_write_percpu(var, val) \ | ||
45 | do { \ | ||
46 | preempt_disable(); \ | ||
47 | __get_cpu_var(var) = (val); \ | ||
48 | preempt_enable(); \ | ||
49 | } while(0) | ||
50 | |||
51 | #else /* CONFIG_X86_64 */ | ||
52 | |||
53 | #ifdef __ASSEMBLY__ | ||
54 | |||
55 | /* | ||
56 | * PER_CPU finds an address of a per-cpu variable. | ||
57 | * | ||
58 | * Args: | ||
59 | * var - variable name | ||
60 | * reg - 32bit register | ||
61 | * | ||
62 | * The resulting address is stored in the "reg" argument. | ||
63 | * | ||
64 | * Example: | ||
65 | * PER_CPU(cpu_gdt_descr, %ebx) | ||
66 | */ | ||
67 | #ifdef CONFIG_SMP | ||
68 | #define PER_CPU(var, reg) \ | ||
69 | movl %fs:per_cpu__##this_cpu_off, reg; \ | ||
70 | lea per_cpu__##var(reg), reg | ||
71 | #define PER_CPU_VAR(var) %fs:per_cpu__##var | ||
72 | #else /* ! SMP */ | ||
73 | #define PER_CPU(var, reg) \ | ||
74 | movl $per_cpu__##var, reg | ||
75 | #define PER_CPU_VAR(var) per_cpu__##var | ||
76 | #endif /* SMP */ | ||
77 | |||
78 | #else /* ...!ASSEMBLY */ | ||
79 | |||
80 | /* | ||
81 | * PER_CPU finds an address of a per-cpu variable. | ||
82 | * | ||
83 | * Args: | ||
84 | * var - variable name | ||
85 | * cpu - 32bit register containing the current CPU number | ||
86 | * | ||
87 | * The resulting address is stored in the "cpu" argument. | ||
88 | * | ||
89 | * Example: | ||
90 | * PER_CPU(cpu_gdt_descr, %ebx) | ||
91 | */ | ||
92 | #ifdef CONFIG_SMP | ||
93 | |||
94 | #define __my_cpu_offset x86_read_percpu(this_cpu_off) | ||
95 | |||
96 | /* fs segment starts at (positive) offset == __per_cpu_offset[cpu] */ | ||
97 | #define __percpu_seg "%%fs:" | ||
98 | |||
99 | #else /* !SMP */ | ||
100 | |||
101 | #define __percpu_seg "" | ||
102 | |||
103 | #endif /* SMP */ | ||
104 | |||
105 | #include <asm-generic/percpu.h> | ||
106 | |||
107 | /* We can use this directly for local CPU (faster). */ | ||
108 | DECLARE_PER_CPU(unsigned long, this_cpu_off); | ||
109 | |||
110 | /* For arch-specific code, we can use direct single-insn ops (they | ||
111 | * don't give an lvalue though). */ | ||
112 | extern void __bad_percpu_size(void); | ||
113 | |||
114 | #define percpu_to_op(op, var, val) \ | ||
115 | do { \ | ||
116 | typedef typeof(var) T__; \ | ||
117 | if (0) { \ | ||
118 | T__ tmp__; \ | ||
119 | tmp__ = (val); \ | ||
120 | } \ | ||
121 | switch (sizeof(var)) { \ | ||
122 | case 1: \ | ||
123 | asm(op "b %1,"__percpu_seg"%0" \ | ||
124 | : "+m" (var) \ | ||
125 | : "ri" ((T__)val)); \ | ||
126 | break; \ | ||
127 | case 2: \ | ||
128 | asm(op "w %1,"__percpu_seg"%0" \ | ||
129 | : "+m" (var) \ | ||
130 | : "ri" ((T__)val)); \ | ||
131 | break; \ | ||
132 | case 4: \ | ||
133 | asm(op "l %1,"__percpu_seg"%0" \ | ||
134 | : "+m" (var) \ | ||
135 | : "ri" ((T__)val)); \ | ||
136 | break; \ | ||
137 | default: __bad_percpu_size(); \ | ||
138 | } \ | ||
139 | } while (0) | ||
140 | |||
141 | #define percpu_from_op(op, var) \ | ||
142 | ({ \ | ||
143 | typeof(var) ret__; \ | ||
144 | switch (sizeof(var)) { \ | ||
145 | case 1: \ | ||
146 | asm(op "b "__percpu_seg"%1,%0" \ | ||
147 | : "=r" (ret__) \ | ||
148 | : "m" (var)); \ | ||
149 | break; \ | ||
150 | case 2: \ | ||
151 | asm(op "w "__percpu_seg"%1,%0" \ | ||
152 | : "=r" (ret__) \ | ||
153 | : "m" (var)); \ | ||
154 | break; \ | ||
155 | case 4: \ | ||
156 | asm(op "l "__percpu_seg"%1,%0" \ | ||
157 | : "=r" (ret__) \ | ||
158 | : "m" (var)); \ | ||
159 | break; \ | ||
160 | default: __bad_percpu_size(); \ | ||
161 | } \ | ||
162 | ret__; \ | ||
163 | }) | ||
164 | |||
165 | #define x86_read_percpu(var) percpu_from_op("mov", per_cpu__##var) | ||
166 | #define x86_write_percpu(var, val) percpu_to_op("mov", per_cpu__##var, val) | ||
167 | #define x86_add_percpu(var, val) percpu_to_op("add", per_cpu__##var, val) | ||
168 | #define x86_sub_percpu(var, val) percpu_to_op("sub", per_cpu__##var, val) | ||
169 | #define x86_or_percpu(var, val) percpu_to_op("or", per_cpu__##var, val) | ||
170 | #endif /* !__ASSEMBLY__ */ | ||
171 | #endif /* !CONFIG_X86_64 */ | ||
172 | |||
173 | #ifdef CONFIG_SMP | ||
174 | |||
175 | /* | ||
176 | * Define the "EARLY_PER_CPU" macros. These are used for some per_cpu | ||
177 | * variables that are initialized and accessed before there are per_cpu | ||
178 | * areas allocated. | ||
179 | */ | ||
180 | |||
181 | #define DEFINE_EARLY_PER_CPU(_type, _name, _initvalue) \ | ||
182 | DEFINE_PER_CPU(_type, _name) = _initvalue; \ | ||
183 | __typeof__(_type) _name##_early_map[NR_CPUS] __initdata = \ | ||
184 | { [0 ... NR_CPUS-1] = _initvalue }; \ | ||
185 | __typeof__(_type) *_name##_early_ptr __refdata = _name##_early_map | ||
186 | |||
187 | #define EXPORT_EARLY_PER_CPU_SYMBOL(_name) \ | ||
188 | EXPORT_PER_CPU_SYMBOL(_name) | ||
189 | |||
190 | #define DECLARE_EARLY_PER_CPU(_type, _name) \ | ||
191 | DECLARE_PER_CPU(_type, _name); \ | ||
192 | extern __typeof__(_type) *_name##_early_ptr; \ | ||
193 | extern __typeof__(_type) _name##_early_map[] | ||
194 | |||
195 | #define early_per_cpu_ptr(_name) (_name##_early_ptr) | ||
196 | #define early_per_cpu_map(_name, _idx) (_name##_early_map[_idx]) | ||
197 | #define early_per_cpu(_name, _cpu) \ | ||
198 | (early_per_cpu_ptr(_name) ? \ | ||
199 | early_per_cpu_ptr(_name)[_cpu] : \ | ||
200 | per_cpu(_name, _cpu)) | ||
201 | |||
202 | #else /* !CONFIG_SMP */ | ||
203 | #define DEFINE_EARLY_PER_CPU(_type, _name, _initvalue) \ | ||
204 | DEFINE_PER_CPU(_type, _name) = _initvalue | ||
205 | |||
206 | #define EXPORT_EARLY_PER_CPU_SYMBOL(_name) \ | ||
207 | EXPORT_PER_CPU_SYMBOL(_name) | ||
208 | |||
209 | #define DECLARE_EARLY_PER_CPU(_type, _name) \ | ||
210 | DECLARE_PER_CPU(_type, _name) | ||
211 | |||
212 | #define early_per_cpu(_name, _cpu) per_cpu(_name, _cpu) | ||
213 | #define early_per_cpu_ptr(_name) NULL | ||
214 | /* no early_per_cpu_map() */ | ||
215 | |||
216 | #endif /* !CONFIG_SMP */ | ||
217 | |||
218 | #endif /* _ASM_X86_PERCPU_H */ | ||
diff --git a/arch/x86/include/asm/pgalloc.h b/arch/x86/include/asm/pgalloc.h new file mode 100644 index 000000000000..cb7c151a8bff --- /dev/null +++ b/arch/x86/include/asm/pgalloc.h | |||
@@ -0,0 +1,114 @@ | |||
1 | #ifndef _ASM_X86_PGALLOC_H | ||
2 | #define _ASM_X86_PGALLOC_H | ||
3 | |||
4 | #include <linux/threads.h> | ||
5 | #include <linux/mm.h> /* for struct page */ | ||
6 | #include <linux/pagemap.h> | ||
7 | |||
8 | static inline int __paravirt_pgd_alloc(struct mm_struct *mm) { return 0; } | ||
9 | |||
10 | #ifdef CONFIG_PARAVIRT | ||
11 | #include <asm/paravirt.h> | ||
12 | #else | ||
13 | #define paravirt_pgd_alloc(mm) __paravirt_pgd_alloc(mm) | ||
14 | static inline void paravirt_pgd_free(struct mm_struct *mm, pgd_t *pgd) {} | ||
15 | static inline void paravirt_alloc_pte(struct mm_struct *mm, unsigned long pfn) {} | ||
16 | static inline void paravirt_alloc_pmd(struct mm_struct *mm, unsigned long pfn) {} | ||
17 | static inline void paravirt_alloc_pmd_clone(unsigned long pfn, unsigned long clonepfn, | ||
18 | unsigned long start, unsigned long count) {} | ||
19 | static inline void paravirt_alloc_pud(struct mm_struct *mm, unsigned long pfn) {} | ||
20 | static inline void paravirt_release_pte(unsigned long pfn) {} | ||
21 | static inline void paravirt_release_pmd(unsigned long pfn) {} | ||
22 | static inline void paravirt_release_pud(unsigned long pfn) {} | ||
23 | #endif | ||
24 | |||
25 | /* | ||
26 | * Allocate and free page tables. | ||
27 | */ | ||
28 | extern pgd_t *pgd_alloc(struct mm_struct *); | ||
29 | extern void pgd_free(struct mm_struct *mm, pgd_t *pgd); | ||
30 | |||
31 | extern pte_t *pte_alloc_one_kernel(struct mm_struct *, unsigned long); | ||
32 | extern pgtable_t pte_alloc_one(struct mm_struct *, unsigned long); | ||
33 | |||
34 | /* Should really implement gc for free page table pages. This could be | ||
35 | done with a reference count in struct page. */ | ||
36 | |||
37 | static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte) | ||
38 | { | ||
39 | BUG_ON((unsigned long)pte & (PAGE_SIZE-1)); | ||
40 | free_page((unsigned long)pte); | ||
41 | } | ||
42 | |||
43 | static inline void pte_free(struct mm_struct *mm, struct page *pte) | ||
44 | { | ||
45 | __free_page(pte); | ||
46 | } | ||
47 | |||
48 | extern void __pte_free_tlb(struct mmu_gather *tlb, struct page *pte); | ||
49 | |||
50 | static inline void pmd_populate_kernel(struct mm_struct *mm, | ||
51 | pmd_t *pmd, pte_t *pte) | ||
52 | { | ||
53 | paravirt_alloc_pte(mm, __pa(pte) >> PAGE_SHIFT); | ||
54 | set_pmd(pmd, __pmd(__pa(pte) | _PAGE_TABLE)); | ||
55 | } | ||
56 | |||
57 | static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, | ||
58 | struct page *pte) | ||
59 | { | ||
60 | unsigned long pfn = page_to_pfn(pte); | ||
61 | |||
62 | paravirt_alloc_pte(mm, pfn); | ||
63 | set_pmd(pmd, __pmd(((pteval_t)pfn << PAGE_SHIFT) | _PAGE_TABLE)); | ||
64 | } | ||
65 | |||
66 | #define pmd_pgtable(pmd) pmd_page(pmd) | ||
67 | |||
68 | #if PAGETABLE_LEVELS > 2 | ||
69 | static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long addr) | ||
70 | { | ||
71 | return (pmd_t *)get_zeroed_page(GFP_KERNEL|__GFP_REPEAT); | ||
72 | } | ||
73 | |||
74 | static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd) | ||
75 | { | ||
76 | BUG_ON((unsigned long)pmd & (PAGE_SIZE-1)); | ||
77 | free_page((unsigned long)pmd); | ||
78 | } | ||
79 | |||
80 | extern void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd); | ||
81 | |||
82 | #ifdef CONFIG_X86_PAE | ||
83 | extern void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd); | ||
84 | #else /* !CONFIG_X86_PAE */ | ||
85 | static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) | ||
86 | { | ||
87 | paravirt_alloc_pmd(mm, __pa(pmd) >> PAGE_SHIFT); | ||
88 | set_pud(pud, __pud(_PAGE_TABLE | __pa(pmd))); | ||
89 | } | ||
90 | #endif /* CONFIG_X86_PAE */ | ||
91 | |||
92 | #if PAGETABLE_LEVELS > 3 | ||
93 | static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pud_t *pud) | ||
94 | { | ||
95 | paravirt_alloc_pud(mm, __pa(pud) >> PAGE_SHIFT); | ||
96 | set_pgd(pgd, __pgd(_PAGE_TABLE | __pa(pud))); | ||
97 | } | ||
98 | |||
99 | static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr) | ||
100 | { | ||
101 | return (pud_t *)get_zeroed_page(GFP_KERNEL|__GFP_REPEAT); | ||
102 | } | ||
103 | |||
104 | static inline void pud_free(struct mm_struct *mm, pud_t *pud) | ||
105 | { | ||
106 | BUG_ON((unsigned long)pud & (PAGE_SIZE-1)); | ||
107 | free_page((unsigned long)pud); | ||
108 | } | ||
109 | |||
110 | extern void __pud_free_tlb(struct mmu_gather *tlb, pud_t *pud); | ||
111 | #endif /* PAGETABLE_LEVELS > 3 */ | ||
112 | #endif /* PAGETABLE_LEVELS > 2 */ | ||
113 | |||
114 | #endif /* _ASM_X86_PGALLOC_H */ | ||
diff --git a/arch/x86/include/asm/pgtable-2level-defs.h b/arch/x86/include/asm/pgtable-2level-defs.h new file mode 100644 index 000000000000..d77db8990eaa --- /dev/null +++ b/arch/x86/include/asm/pgtable-2level-defs.h | |||
@@ -0,0 +1,20 @@ | |||
1 | #ifndef _ASM_X86_PGTABLE_2LEVEL_DEFS_H | ||
2 | #define _ASM_X86_PGTABLE_2LEVEL_DEFS_H | ||
3 | |||
4 | #define SHARED_KERNEL_PMD 0 | ||
5 | |||
6 | /* | ||
7 | * traditional i386 two-level paging structure: | ||
8 | */ | ||
9 | |||
10 | #define PGDIR_SHIFT 22 | ||
11 | #define PTRS_PER_PGD 1024 | ||
12 | |||
13 | /* | ||
14 | * the i386 is two-level, so we don't really have any | ||
15 | * PMD directory physically. | ||
16 | */ | ||
17 | |||
18 | #define PTRS_PER_PTE 1024 | ||
19 | |||
20 | #endif /* _ASM_X86_PGTABLE_2LEVEL_DEFS_H */ | ||
diff --git a/arch/x86/include/asm/pgtable-2level.h b/arch/x86/include/asm/pgtable-2level.h new file mode 100644 index 000000000000..b17edfd23628 --- /dev/null +++ b/arch/x86/include/asm/pgtable-2level.h | |||
@@ -0,0 +1,79 @@ | |||
1 | #ifndef _ASM_X86_PGTABLE_2LEVEL_H | ||
2 | #define _ASM_X86_PGTABLE_2LEVEL_H | ||
3 | |||
4 | #define pte_ERROR(e) \ | ||
5 | printk("%s:%d: bad pte %08lx.\n", __FILE__, __LINE__, (e).pte_low) | ||
6 | #define pgd_ERROR(e) \ | ||
7 | printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, pgd_val(e)) | ||
8 | |||
9 | /* | ||
10 | * Certain architectures need to do special things when PTEs | ||
11 | * within a page table are directly modified. Thus, the following | ||
12 | * hook is made available. | ||
13 | */ | ||
14 | static inline void native_set_pte(pte_t *ptep , pte_t pte) | ||
15 | { | ||
16 | *ptep = pte; | ||
17 | } | ||
18 | |||
19 | static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd) | ||
20 | { | ||
21 | *pmdp = pmd; | ||
22 | } | ||
23 | |||
24 | static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte) | ||
25 | { | ||
26 | native_set_pte(ptep, pte); | ||
27 | } | ||
28 | |||
29 | static inline void native_set_pte_present(struct mm_struct *mm, | ||
30 | unsigned long addr, | ||
31 | pte_t *ptep, pte_t pte) | ||
32 | { | ||
33 | native_set_pte(ptep, pte); | ||
34 | } | ||
35 | |||
36 | static inline void native_pmd_clear(pmd_t *pmdp) | ||
37 | { | ||
38 | native_set_pmd(pmdp, __pmd(0)); | ||
39 | } | ||
40 | |||
41 | static inline void native_pte_clear(struct mm_struct *mm, | ||
42 | unsigned long addr, pte_t *xp) | ||
43 | { | ||
44 | *xp = native_make_pte(0); | ||
45 | } | ||
46 | |||
47 | #ifdef CONFIG_SMP | ||
48 | static inline pte_t native_ptep_get_and_clear(pte_t *xp) | ||
49 | { | ||
50 | return __pte(xchg(&xp->pte_low, 0)); | ||
51 | } | ||
52 | #else | ||
53 | #define native_ptep_get_and_clear(xp) native_local_ptep_get_and_clear(xp) | ||
54 | #endif | ||
55 | |||
56 | #define pte_none(x) (!(x).pte_low) | ||
57 | |||
58 | /* | ||
59 | * Bits 0, 6 and 7 are taken, split up the 29 bits of offset | ||
60 | * into this range: | ||
61 | */ | ||
62 | #define PTE_FILE_MAX_BITS 29 | ||
63 | |||
64 | #define pte_to_pgoff(pte) \ | ||
65 | ((((pte).pte_low >> 1) & 0x1f) + (((pte).pte_low >> 8) << 5)) | ||
66 | |||
67 | #define pgoff_to_pte(off) \ | ||
68 | ((pte_t) { .pte_low = (((off) & 0x1f) << 1) + \ | ||
69 | (((off) >> 5) << 8) + _PAGE_FILE }) | ||
70 | |||
71 | /* Encode and de-code a swap entry */ | ||
72 | #define __swp_type(x) (((x).val >> 1) & 0x1f) | ||
73 | #define __swp_offset(x) ((x).val >> 8) | ||
74 | #define __swp_entry(type, offset) \ | ||
75 | ((swp_entry_t) { ((type) << 1) | ((offset) << 8) }) | ||
76 | #define __pte_to_swp_entry(pte) ((swp_entry_t) { (pte).pte_low }) | ||
77 | #define __swp_entry_to_pte(x) ((pte_t) { .pte = (x).val }) | ||
78 | |||
79 | #endif /* _ASM_X86_PGTABLE_2LEVEL_H */ | ||
diff --git a/arch/x86/include/asm/pgtable-3level-defs.h b/arch/x86/include/asm/pgtable-3level-defs.h new file mode 100644 index 000000000000..62561367653c --- /dev/null +++ b/arch/x86/include/asm/pgtable-3level-defs.h | |||
@@ -0,0 +1,28 @@ | |||
1 | #ifndef _ASM_X86_PGTABLE_3LEVEL_DEFS_H | ||
2 | #define _ASM_X86_PGTABLE_3LEVEL_DEFS_H | ||
3 | |||
4 | #ifdef CONFIG_PARAVIRT | ||
5 | #define SHARED_KERNEL_PMD (pv_info.shared_kernel_pmd) | ||
6 | #else | ||
7 | #define SHARED_KERNEL_PMD 1 | ||
8 | #endif | ||
9 | |||
10 | /* | ||
11 | * PGDIR_SHIFT determines what a top-level page table entry can map | ||
12 | */ | ||
13 | #define PGDIR_SHIFT 30 | ||
14 | #define PTRS_PER_PGD 4 | ||
15 | |||
16 | /* | ||
17 | * PMD_SHIFT determines the size of the area a middle-level | ||
18 | * page table can map | ||
19 | */ | ||
20 | #define PMD_SHIFT 21 | ||
21 | #define PTRS_PER_PMD 512 | ||
22 | |||
23 | /* | ||
24 | * entries per page directory level | ||
25 | */ | ||
26 | #define PTRS_PER_PTE 512 | ||
27 | |||
28 | #endif /* _ASM_X86_PGTABLE_3LEVEL_DEFS_H */ | ||
diff --git a/arch/x86/include/asm/pgtable-3level.h b/arch/x86/include/asm/pgtable-3level.h new file mode 100644 index 000000000000..fb16cec702e4 --- /dev/null +++ b/arch/x86/include/asm/pgtable-3level.h | |||
@@ -0,0 +1,175 @@ | |||
1 | #ifndef _ASM_X86_PGTABLE_3LEVEL_H | ||
2 | #define _ASM_X86_PGTABLE_3LEVEL_H | ||
3 | |||
4 | /* | ||
5 | * Intel Physical Address Extension (PAE) Mode - three-level page | ||
6 | * tables on PPro+ CPUs. | ||
7 | * | ||
8 | * Copyright (C) 1999 Ingo Molnar <mingo@redhat.com> | ||
9 | */ | ||
10 | |||
11 | #define pte_ERROR(e) \ | ||
12 | printk("%s:%d: bad pte %p(%08lx%08lx).\n", \ | ||
13 | __FILE__, __LINE__, &(e), (e).pte_high, (e).pte_low) | ||
14 | #define pmd_ERROR(e) \ | ||
15 | printk("%s:%d: bad pmd %p(%016Lx).\n", \ | ||
16 | __FILE__, __LINE__, &(e), pmd_val(e)) | ||
17 | #define pgd_ERROR(e) \ | ||
18 | printk("%s:%d: bad pgd %p(%016Lx).\n", \ | ||
19 | __FILE__, __LINE__, &(e), pgd_val(e)) | ||
20 | |||
21 | static inline int pud_none(pud_t pud) | ||
22 | { | ||
23 | return pud_val(pud) == 0; | ||
24 | } | ||
25 | |||
26 | static inline int pud_bad(pud_t pud) | ||
27 | { | ||
28 | return (pud_val(pud) & ~(PTE_PFN_MASK | _KERNPG_TABLE | _PAGE_USER)) != 0; | ||
29 | } | ||
30 | |||
31 | static inline int pud_present(pud_t pud) | ||
32 | { | ||
33 | return pud_val(pud) & _PAGE_PRESENT; | ||
34 | } | ||
35 | |||
36 | /* Rules for using set_pte: the pte being assigned *must* be | ||
37 | * either not present or in a state where the hardware will | ||
38 | * not attempt to update the pte. In places where this is | ||
39 | * not possible, use pte_get_and_clear to obtain the old pte | ||
40 | * value and then use set_pte to update it. -ben | ||
41 | */ | ||
42 | static inline void native_set_pte(pte_t *ptep, pte_t pte) | ||
43 | { | ||
44 | ptep->pte_high = pte.pte_high; | ||
45 | smp_wmb(); | ||
46 | ptep->pte_low = pte.pte_low; | ||
47 | } | ||
48 | |||
49 | /* | ||
50 | * Since this is only called on user PTEs, and the page fault handler | ||
51 | * must handle the already racy situation of simultaneous page faults, | ||
52 | * we are justified in merely clearing the PTE present bit, followed | ||
53 | * by a set. The ordering here is important. | ||
54 | */ | ||
55 | static inline void native_set_pte_present(struct mm_struct *mm, | ||
56 | unsigned long addr, | ||
57 | pte_t *ptep, pte_t pte) | ||
58 | { | ||
59 | ptep->pte_low = 0; | ||
60 | smp_wmb(); | ||
61 | ptep->pte_high = pte.pte_high; | ||
62 | smp_wmb(); | ||
63 | ptep->pte_low = pte.pte_low; | ||
64 | } | ||
65 | |||
66 | static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte) | ||
67 | { | ||
68 | set_64bit((unsigned long long *)(ptep), native_pte_val(pte)); | ||
69 | } | ||
70 | |||
71 | static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd) | ||
72 | { | ||
73 | set_64bit((unsigned long long *)(pmdp), native_pmd_val(pmd)); | ||
74 | } | ||
75 | |||
76 | static inline void native_set_pud(pud_t *pudp, pud_t pud) | ||
77 | { | ||
78 | set_64bit((unsigned long long *)(pudp), native_pud_val(pud)); | ||
79 | } | ||
80 | |||
81 | /* | ||
82 | * For PTEs and PDEs, we must clear the P-bit first when clearing a page table | ||
83 | * entry, so clear the bottom half first and enforce ordering with a compiler | ||
84 | * barrier. | ||
85 | */ | ||
86 | static inline void native_pte_clear(struct mm_struct *mm, unsigned long addr, | ||
87 | pte_t *ptep) | ||
88 | { | ||
89 | ptep->pte_low = 0; | ||
90 | smp_wmb(); | ||
91 | ptep->pte_high = 0; | ||
92 | } | ||
93 | |||
94 | static inline void native_pmd_clear(pmd_t *pmd) | ||
95 | { | ||
96 | u32 *tmp = (u32 *)pmd; | ||
97 | *tmp = 0; | ||
98 | smp_wmb(); | ||
99 | *(tmp + 1) = 0; | ||
100 | } | ||
101 | |||
102 | static inline void pud_clear(pud_t *pudp) | ||
103 | { | ||
104 | unsigned long pgd; | ||
105 | |||
106 | set_pud(pudp, __pud(0)); | ||
107 | |||
108 | /* | ||
109 | * According to Intel App note "TLBs, Paging-Structure Caches, | ||
110 | * and Their Invalidation", April 2007, document 317080-001, | ||
111 | * section 8.1: in PAE mode we explicitly have to flush the | ||
112 | * TLB via cr3 if the top-level pgd is changed... | ||
113 | * | ||
114 | * Make sure the pud entry we're updating is within the | ||
115 | * current pgd to avoid unnecessary TLB flushes. | ||
116 | */ | ||
117 | pgd = read_cr3(); | ||
118 | if (__pa(pudp) >= pgd && __pa(pudp) < | ||
119 | (pgd + sizeof(pgd_t)*PTRS_PER_PGD)) | ||
120 | write_cr3(pgd); | ||
121 | } | ||
122 | |||
123 | #define pud_page(pud) ((struct page *) __va(pud_val(pud) & PTE_PFN_MASK)) | ||
124 | |||
125 | #define pud_page_vaddr(pud) ((unsigned long) __va(pud_val(pud) & PTE_PFN_MASK)) | ||
126 | |||
127 | |||
128 | /* Find an entry in the second-level page table.. */ | ||
129 | #define pmd_offset(pud, address) ((pmd_t *)pud_page(*(pud)) + \ | ||
130 | pmd_index(address)) | ||
131 | |||
132 | #ifdef CONFIG_SMP | ||
133 | static inline pte_t native_ptep_get_and_clear(pte_t *ptep) | ||
134 | { | ||
135 | pte_t res; | ||
136 | |||
137 | /* xchg acts as a barrier before the setting of the high bits */ | ||
138 | res.pte_low = xchg(&ptep->pte_low, 0); | ||
139 | res.pte_high = ptep->pte_high; | ||
140 | ptep->pte_high = 0; | ||
141 | |||
142 | return res; | ||
143 | } | ||
144 | #else | ||
145 | #define native_ptep_get_and_clear(xp) native_local_ptep_get_and_clear(xp) | ||
146 | #endif | ||
147 | |||
148 | #define __HAVE_ARCH_PTE_SAME | ||
149 | static inline int pte_same(pte_t a, pte_t b) | ||
150 | { | ||
151 | return a.pte_low == b.pte_low && a.pte_high == b.pte_high; | ||
152 | } | ||
153 | |||
154 | static inline int pte_none(pte_t pte) | ||
155 | { | ||
156 | return !pte.pte_low && !pte.pte_high; | ||
157 | } | ||
158 | |||
159 | /* | ||
160 | * Bits 0, 6 and 7 are taken in the low part of the pte, | ||
161 | * put the 32 bits of offset into the high part. | ||
162 | */ | ||
163 | #define pte_to_pgoff(pte) ((pte).pte_high) | ||
164 | #define pgoff_to_pte(off) \ | ||
165 | ((pte_t) { { .pte_low = _PAGE_FILE, .pte_high = (off) } }) | ||
166 | #define PTE_FILE_MAX_BITS 32 | ||
167 | |||
168 | /* Encode and de-code a swap entry */ | ||
169 | #define __swp_type(x) (((x).val) & 0x1f) | ||
170 | #define __swp_offset(x) ((x).val >> 5) | ||
171 | #define __swp_entry(type, offset) ((swp_entry_t){(type) | (offset) << 5}) | ||
172 | #define __pte_to_swp_entry(pte) ((swp_entry_t){ (pte).pte_high }) | ||
173 | #define __swp_entry_to_pte(x) ((pte_t){ { .pte_high = (x).val } }) | ||
174 | |||
175 | #endif /* _ASM_X86_PGTABLE_3LEVEL_H */ | ||
diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h new file mode 100644 index 000000000000..c012f3b11671 --- /dev/null +++ b/arch/x86/include/asm/pgtable.h | |||
@@ -0,0 +1,562 @@ | |||
1 | #ifndef _ASM_X86_PGTABLE_H | ||
2 | #define _ASM_X86_PGTABLE_H | ||
3 | |||
4 | #define FIRST_USER_ADDRESS 0 | ||
5 | |||
6 | #define _PAGE_BIT_PRESENT 0 /* is present */ | ||
7 | #define _PAGE_BIT_RW 1 /* writeable */ | ||
8 | #define _PAGE_BIT_USER 2 /* userspace addressable */ | ||
9 | #define _PAGE_BIT_PWT 3 /* page write through */ | ||
10 | #define _PAGE_BIT_PCD 4 /* page cache disabled */ | ||
11 | #define _PAGE_BIT_ACCESSED 5 /* was accessed (raised by CPU) */ | ||
12 | #define _PAGE_BIT_DIRTY 6 /* was written to (raised by CPU) */ | ||
13 | #define _PAGE_BIT_FILE 6 | ||
14 | #define _PAGE_BIT_PSE 7 /* 4 MB (or 2MB) page */ | ||
15 | #define _PAGE_BIT_PAT 7 /* on 4KB pages */ | ||
16 | #define _PAGE_BIT_GLOBAL 8 /* Global TLB entry PPro+ */ | ||
17 | #define _PAGE_BIT_UNUSED1 9 /* available for programmer */ | ||
18 | #define _PAGE_BIT_IOMAP 10 /* flag used to indicate IO mapping */ | ||
19 | #define _PAGE_BIT_UNUSED3 11 | ||
20 | #define _PAGE_BIT_PAT_LARGE 12 /* On 2MB or 1GB pages */ | ||
21 | #define _PAGE_BIT_SPECIAL _PAGE_BIT_UNUSED1 | ||
22 | #define _PAGE_BIT_CPA_TEST _PAGE_BIT_UNUSED1 | ||
23 | #define _PAGE_BIT_NX 63 /* No execute: only valid after cpuid check */ | ||
24 | |||
25 | #define _PAGE_PRESENT (_AT(pteval_t, 1) << _PAGE_BIT_PRESENT) | ||
26 | #define _PAGE_RW (_AT(pteval_t, 1) << _PAGE_BIT_RW) | ||
27 | #define _PAGE_USER (_AT(pteval_t, 1) << _PAGE_BIT_USER) | ||
28 | #define _PAGE_PWT (_AT(pteval_t, 1) << _PAGE_BIT_PWT) | ||
29 | #define _PAGE_PCD (_AT(pteval_t, 1) << _PAGE_BIT_PCD) | ||
30 | #define _PAGE_ACCESSED (_AT(pteval_t, 1) << _PAGE_BIT_ACCESSED) | ||
31 | #define _PAGE_DIRTY (_AT(pteval_t, 1) << _PAGE_BIT_DIRTY) | ||
32 | #define _PAGE_PSE (_AT(pteval_t, 1) << _PAGE_BIT_PSE) | ||
33 | #define _PAGE_GLOBAL (_AT(pteval_t, 1) << _PAGE_BIT_GLOBAL) | ||
34 | #define _PAGE_UNUSED1 (_AT(pteval_t, 1) << _PAGE_BIT_UNUSED1) | ||
35 | #define _PAGE_IOMAP (_AT(pteval_t, 1) << _PAGE_BIT_IOMAP) | ||
36 | #define _PAGE_UNUSED3 (_AT(pteval_t, 1) << _PAGE_BIT_UNUSED3) | ||
37 | #define _PAGE_PAT (_AT(pteval_t, 1) << _PAGE_BIT_PAT) | ||
38 | #define _PAGE_PAT_LARGE (_AT(pteval_t, 1) << _PAGE_BIT_PAT_LARGE) | ||
39 | #define _PAGE_SPECIAL (_AT(pteval_t, 1) << _PAGE_BIT_SPECIAL) | ||
40 | #define _PAGE_CPA_TEST (_AT(pteval_t, 1) << _PAGE_BIT_CPA_TEST) | ||
41 | #define __HAVE_ARCH_PTE_SPECIAL | ||
42 | |||
43 | #if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE) | ||
44 | #define _PAGE_NX (_AT(pteval_t, 1) << _PAGE_BIT_NX) | ||
45 | #else | ||
46 | #define _PAGE_NX (_AT(pteval_t, 0)) | ||
47 | #endif | ||
48 | |||
49 | /* If _PAGE_PRESENT is clear, we use these: */ | ||
50 | #define _PAGE_FILE _PAGE_DIRTY /* nonlinear file mapping, | ||
51 | * saved PTE; unset:swap */ | ||
52 | #define _PAGE_PROTNONE _PAGE_PSE /* if the user mapped it with PROT_NONE; | ||
53 | pte_present gives true */ | ||
54 | |||
55 | #define _PAGE_TABLE (_PAGE_PRESENT | _PAGE_RW | _PAGE_USER | \ | ||
56 | _PAGE_ACCESSED | _PAGE_DIRTY) | ||
57 | #define _KERNPG_TABLE (_PAGE_PRESENT | _PAGE_RW | _PAGE_ACCESSED | \ | ||
58 | _PAGE_DIRTY) | ||
59 | |||
60 | /* Set of bits not changed in pte_modify */ | ||
61 | #define _PAGE_CHG_MASK (PTE_PFN_MASK | _PAGE_PCD | _PAGE_PWT | \ | ||
62 | _PAGE_SPECIAL | _PAGE_ACCESSED | _PAGE_DIRTY) | ||
63 | |||
64 | #define _PAGE_CACHE_MASK (_PAGE_PCD | _PAGE_PWT) | ||
65 | #define _PAGE_CACHE_WB (0) | ||
66 | #define _PAGE_CACHE_WC (_PAGE_PWT) | ||
67 | #define _PAGE_CACHE_UC_MINUS (_PAGE_PCD) | ||
68 | #define _PAGE_CACHE_UC (_PAGE_PCD | _PAGE_PWT) | ||
69 | |||
70 | #define PAGE_NONE __pgprot(_PAGE_PROTNONE | _PAGE_ACCESSED) | ||
71 | #define PAGE_SHARED __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_USER | \ | ||
72 | _PAGE_ACCESSED | _PAGE_NX) | ||
73 | |||
74 | #define PAGE_SHARED_EXEC __pgprot(_PAGE_PRESENT | _PAGE_RW | \ | ||
75 | _PAGE_USER | _PAGE_ACCESSED) | ||
76 | #define PAGE_COPY_NOEXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | \ | ||
77 | _PAGE_ACCESSED | _PAGE_NX) | ||
78 | #define PAGE_COPY_EXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | \ | ||
79 | _PAGE_ACCESSED) | ||
80 | #define PAGE_COPY PAGE_COPY_NOEXEC | ||
81 | #define PAGE_READONLY __pgprot(_PAGE_PRESENT | _PAGE_USER | \ | ||
82 | _PAGE_ACCESSED | _PAGE_NX) | ||
83 | #define PAGE_READONLY_EXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | \ | ||
84 | _PAGE_ACCESSED) | ||
85 | |||
86 | #define __PAGE_KERNEL_EXEC \ | ||
87 | (_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED | _PAGE_GLOBAL) | ||
88 | #define __PAGE_KERNEL (__PAGE_KERNEL_EXEC | _PAGE_NX) | ||
89 | |||
90 | #define __PAGE_KERNEL_RO (__PAGE_KERNEL & ~_PAGE_RW) | ||
91 | #define __PAGE_KERNEL_RX (__PAGE_KERNEL_EXEC & ~_PAGE_RW) | ||
92 | #define __PAGE_KERNEL_EXEC_NOCACHE (__PAGE_KERNEL_EXEC | _PAGE_PCD | _PAGE_PWT) | ||
93 | #define __PAGE_KERNEL_WC (__PAGE_KERNEL | _PAGE_CACHE_WC) | ||
94 | #define __PAGE_KERNEL_NOCACHE (__PAGE_KERNEL | _PAGE_PCD | _PAGE_PWT) | ||
95 | #define __PAGE_KERNEL_UC_MINUS (__PAGE_KERNEL | _PAGE_PCD) | ||
96 | #define __PAGE_KERNEL_VSYSCALL (__PAGE_KERNEL_RX | _PAGE_USER) | ||
97 | #define __PAGE_KERNEL_VSYSCALL_NOCACHE (__PAGE_KERNEL_VSYSCALL | _PAGE_PCD | _PAGE_PWT) | ||
98 | #define __PAGE_KERNEL_LARGE (__PAGE_KERNEL | _PAGE_PSE) | ||
99 | #define __PAGE_KERNEL_LARGE_NOCACHE (__PAGE_KERNEL | _PAGE_CACHE_UC | _PAGE_PSE) | ||
100 | #define __PAGE_KERNEL_LARGE_EXEC (__PAGE_KERNEL_EXEC | _PAGE_PSE) | ||
101 | |||
102 | #define __PAGE_KERNEL_IO (__PAGE_KERNEL | _PAGE_IOMAP) | ||
103 | #define __PAGE_KERNEL_IO_NOCACHE (__PAGE_KERNEL_NOCACHE | _PAGE_IOMAP) | ||
104 | #define __PAGE_KERNEL_IO_UC_MINUS (__PAGE_KERNEL_UC_MINUS | _PAGE_IOMAP) | ||
105 | #define __PAGE_KERNEL_IO_WC (__PAGE_KERNEL_WC | _PAGE_IOMAP) | ||
106 | |||
107 | #define PAGE_KERNEL __pgprot(__PAGE_KERNEL) | ||
108 | #define PAGE_KERNEL_RO __pgprot(__PAGE_KERNEL_RO) | ||
109 | #define PAGE_KERNEL_EXEC __pgprot(__PAGE_KERNEL_EXEC) | ||
110 | #define PAGE_KERNEL_RX __pgprot(__PAGE_KERNEL_RX) | ||
111 | #define PAGE_KERNEL_WC __pgprot(__PAGE_KERNEL_WC) | ||
112 | #define PAGE_KERNEL_NOCACHE __pgprot(__PAGE_KERNEL_NOCACHE) | ||
113 | #define PAGE_KERNEL_UC_MINUS __pgprot(__PAGE_KERNEL_UC_MINUS) | ||
114 | #define PAGE_KERNEL_EXEC_NOCACHE __pgprot(__PAGE_KERNEL_EXEC_NOCACHE) | ||
115 | #define PAGE_KERNEL_LARGE __pgprot(__PAGE_KERNEL_LARGE) | ||
116 | #define PAGE_KERNEL_LARGE_NOCACHE __pgprot(__PAGE_KERNEL_LARGE_NOCACHE) | ||
117 | #define PAGE_KERNEL_LARGE_EXEC __pgprot(__PAGE_KERNEL_LARGE_EXEC) | ||
118 | #define PAGE_KERNEL_VSYSCALL __pgprot(__PAGE_KERNEL_VSYSCALL) | ||
119 | #define PAGE_KERNEL_VSYSCALL_NOCACHE __pgprot(__PAGE_KERNEL_VSYSCALL_NOCACHE) | ||
120 | |||
121 | #define PAGE_KERNEL_IO __pgprot(__PAGE_KERNEL_IO) | ||
122 | #define PAGE_KERNEL_IO_NOCACHE __pgprot(__PAGE_KERNEL_IO_NOCACHE) | ||
123 | #define PAGE_KERNEL_IO_UC_MINUS __pgprot(__PAGE_KERNEL_IO_UC_MINUS) | ||
124 | #define PAGE_KERNEL_IO_WC __pgprot(__PAGE_KERNEL_IO_WC) | ||
125 | |||
126 | /* xwr */ | ||
127 | #define __P000 PAGE_NONE | ||
128 | #define __P001 PAGE_READONLY | ||
129 | #define __P010 PAGE_COPY | ||
130 | #define __P011 PAGE_COPY | ||
131 | #define __P100 PAGE_READONLY_EXEC | ||
132 | #define __P101 PAGE_READONLY_EXEC | ||
133 | #define __P110 PAGE_COPY_EXEC | ||
134 | #define __P111 PAGE_COPY_EXEC | ||
135 | |||
136 | #define __S000 PAGE_NONE | ||
137 | #define __S001 PAGE_READONLY | ||
138 | #define __S010 PAGE_SHARED | ||
139 | #define __S011 PAGE_SHARED | ||
140 | #define __S100 PAGE_READONLY_EXEC | ||
141 | #define __S101 PAGE_READONLY_EXEC | ||
142 | #define __S110 PAGE_SHARED_EXEC | ||
143 | #define __S111 PAGE_SHARED_EXEC | ||
144 | |||
145 | /* | ||
146 | * early identity mapping pte attrib macros. | ||
147 | */ | ||
148 | #ifdef CONFIG_X86_64 | ||
149 | #define __PAGE_KERNEL_IDENT_LARGE_EXEC __PAGE_KERNEL_LARGE_EXEC | ||
150 | #else | ||
151 | /* | ||
152 | * For PDE_IDENT_ATTR include USER bit. As the PDE and PTE protection | ||
153 | * bits are combined, this will alow user to access the high address mapped | ||
154 | * VDSO in the presence of CONFIG_COMPAT_VDSO | ||
155 | */ | ||
156 | #define PTE_IDENT_ATTR 0x003 /* PRESENT+RW */ | ||
157 | #define PDE_IDENT_ATTR 0x067 /* PRESENT+RW+USER+DIRTY+ACCESSED */ | ||
158 | #define PGD_IDENT_ATTR 0x001 /* PRESENT (no other attributes) */ | ||
159 | #endif | ||
160 | |||
161 | #ifndef __ASSEMBLY__ | ||
162 | |||
163 | /* | ||
164 | * ZERO_PAGE is a global shared page that is always zero: used | ||
165 | * for zero-mapped memory areas etc.. | ||
166 | */ | ||
167 | extern unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)]; | ||
168 | #define ZERO_PAGE(vaddr) (virt_to_page(empty_zero_page)) | ||
169 | |||
170 | extern spinlock_t pgd_lock; | ||
171 | extern struct list_head pgd_list; | ||
172 | |||
173 | /* | ||
174 | * The following only work if pte_present() is true. | ||
175 | * Undefined behaviour if not.. | ||
176 | */ | ||
177 | static inline int pte_dirty(pte_t pte) | ||
178 | { | ||
179 | return pte_flags(pte) & _PAGE_DIRTY; | ||
180 | } | ||
181 | |||
182 | static inline int pte_young(pte_t pte) | ||
183 | { | ||
184 | return pte_flags(pte) & _PAGE_ACCESSED; | ||
185 | } | ||
186 | |||
187 | static inline int pte_write(pte_t pte) | ||
188 | { | ||
189 | return pte_flags(pte) & _PAGE_RW; | ||
190 | } | ||
191 | |||
192 | static inline int pte_file(pte_t pte) | ||
193 | { | ||
194 | return pte_flags(pte) & _PAGE_FILE; | ||
195 | } | ||
196 | |||
197 | static inline int pte_huge(pte_t pte) | ||
198 | { | ||
199 | return pte_flags(pte) & _PAGE_PSE; | ||
200 | } | ||
201 | |||
202 | static inline int pte_global(pte_t pte) | ||
203 | { | ||
204 | return pte_flags(pte) & _PAGE_GLOBAL; | ||
205 | } | ||
206 | |||
207 | static inline int pte_exec(pte_t pte) | ||
208 | { | ||
209 | return !(pte_flags(pte) & _PAGE_NX); | ||
210 | } | ||
211 | |||
212 | static inline int pte_special(pte_t pte) | ||
213 | { | ||
214 | return pte_flags(pte) & _PAGE_SPECIAL; | ||
215 | } | ||
216 | |||
217 | static inline unsigned long pte_pfn(pte_t pte) | ||
218 | { | ||
219 | return (pte_val(pte) & PTE_PFN_MASK) >> PAGE_SHIFT; | ||
220 | } | ||
221 | |||
222 | #define pte_page(pte) pfn_to_page(pte_pfn(pte)) | ||
223 | |||
224 | static inline int pmd_large(pmd_t pte) | ||
225 | { | ||
226 | return (pmd_val(pte) & (_PAGE_PSE | _PAGE_PRESENT)) == | ||
227 | (_PAGE_PSE | _PAGE_PRESENT); | ||
228 | } | ||
229 | |||
230 | static inline pte_t pte_mkclean(pte_t pte) | ||
231 | { | ||
232 | return __pte(pte_val(pte) & ~_PAGE_DIRTY); | ||
233 | } | ||
234 | |||
235 | static inline pte_t pte_mkold(pte_t pte) | ||
236 | { | ||
237 | return __pte(pte_val(pte) & ~_PAGE_ACCESSED); | ||
238 | } | ||
239 | |||
240 | static inline pte_t pte_wrprotect(pte_t pte) | ||
241 | { | ||
242 | return __pte(pte_val(pte) & ~_PAGE_RW); | ||
243 | } | ||
244 | |||
245 | static inline pte_t pte_mkexec(pte_t pte) | ||
246 | { | ||
247 | return __pte(pte_val(pte) & ~_PAGE_NX); | ||
248 | } | ||
249 | |||
250 | static inline pte_t pte_mkdirty(pte_t pte) | ||
251 | { | ||
252 | return __pte(pte_val(pte) | _PAGE_DIRTY); | ||
253 | } | ||
254 | |||
255 | static inline pte_t pte_mkyoung(pte_t pte) | ||
256 | { | ||
257 | return __pte(pte_val(pte) | _PAGE_ACCESSED); | ||
258 | } | ||
259 | |||
260 | static inline pte_t pte_mkwrite(pte_t pte) | ||
261 | { | ||
262 | return __pte(pte_val(pte) | _PAGE_RW); | ||
263 | } | ||
264 | |||
265 | static inline pte_t pte_mkhuge(pte_t pte) | ||
266 | { | ||
267 | return __pte(pte_val(pte) | _PAGE_PSE); | ||
268 | } | ||
269 | |||
270 | static inline pte_t pte_clrhuge(pte_t pte) | ||
271 | { | ||
272 | return __pte(pte_val(pte) & ~_PAGE_PSE); | ||
273 | } | ||
274 | |||
275 | static inline pte_t pte_mkglobal(pte_t pte) | ||
276 | { | ||
277 | return __pte(pte_val(pte) | _PAGE_GLOBAL); | ||
278 | } | ||
279 | |||
280 | static inline pte_t pte_clrglobal(pte_t pte) | ||
281 | { | ||
282 | return __pte(pte_val(pte) & ~_PAGE_GLOBAL); | ||
283 | } | ||
284 | |||
285 | static inline pte_t pte_mkspecial(pte_t pte) | ||
286 | { | ||
287 | return __pte(pte_val(pte) | _PAGE_SPECIAL); | ||
288 | } | ||
289 | |||
290 | extern pteval_t __supported_pte_mask; | ||
291 | |||
292 | static inline pte_t pfn_pte(unsigned long page_nr, pgprot_t pgprot) | ||
293 | { | ||
294 | return __pte((((phys_addr_t)page_nr << PAGE_SHIFT) | | ||
295 | pgprot_val(pgprot)) & __supported_pte_mask); | ||
296 | } | ||
297 | |||
298 | static inline pmd_t pfn_pmd(unsigned long page_nr, pgprot_t pgprot) | ||
299 | { | ||
300 | return __pmd((((phys_addr_t)page_nr << PAGE_SHIFT) | | ||
301 | pgprot_val(pgprot)) & __supported_pte_mask); | ||
302 | } | ||
303 | |||
304 | static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) | ||
305 | { | ||
306 | pteval_t val = pte_val(pte); | ||
307 | |||
308 | /* | ||
309 | * Chop off the NX bit (if present), and add the NX portion of | ||
310 | * the newprot (if present): | ||
311 | */ | ||
312 | val &= _PAGE_CHG_MASK; | ||
313 | val |= pgprot_val(newprot) & (~_PAGE_CHG_MASK) & __supported_pte_mask; | ||
314 | |||
315 | return __pte(val); | ||
316 | } | ||
317 | |||
318 | /* mprotect needs to preserve PAT bits when updating vm_page_prot */ | ||
319 | #define pgprot_modify pgprot_modify | ||
320 | static inline pgprot_t pgprot_modify(pgprot_t oldprot, pgprot_t newprot) | ||
321 | { | ||
322 | pgprotval_t preservebits = pgprot_val(oldprot) & _PAGE_CHG_MASK; | ||
323 | pgprotval_t addbits = pgprot_val(newprot); | ||
324 | return __pgprot(preservebits | addbits); | ||
325 | } | ||
326 | |||
327 | #define pte_pgprot(x) __pgprot(pte_flags(x) & PTE_FLAGS_MASK) | ||
328 | |||
329 | #define canon_pgprot(p) __pgprot(pgprot_val(p) & __supported_pte_mask) | ||
330 | |||
331 | #ifndef __ASSEMBLY__ | ||
332 | #define __HAVE_PHYS_MEM_ACCESS_PROT | ||
333 | struct file; | ||
334 | pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn, | ||
335 | unsigned long size, pgprot_t vma_prot); | ||
336 | int phys_mem_access_prot_allowed(struct file *file, unsigned long pfn, | ||
337 | unsigned long size, pgprot_t *vma_prot); | ||
338 | #endif | ||
339 | |||
340 | /* Install a pte for a particular vaddr in kernel space. */ | ||
341 | void set_pte_vaddr(unsigned long vaddr, pte_t pte); | ||
342 | |||
343 | #ifdef CONFIG_X86_32 | ||
344 | extern void native_pagetable_setup_start(pgd_t *base); | ||
345 | extern void native_pagetable_setup_done(pgd_t *base); | ||
346 | #else | ||
347 | static inline void native_pagetable_setup_start(pgd_t *base) {} | ||
348 | static inline void native_pagetable_setup_done(pgd_t *base) {} | ||
349 | #endif | ||
350 | |||
351 | struct seq_file; | ||
352 | extern void arch_report_meminfo(struct seq_file *m); | ||
353 | |||
354 | #ifdef CONFIG_PARAVIRT | ||
355 | #include <asm/paravirt.h> | ||
356 | #else /* !CONFIG_PARAVIRT */ | ||
357 | #define set_pte(ptep, pte) native_set_pte(ptep, pte) | ||
358 | #define set_pte_at(mm, addr, ptep, pte) native_set_pte_at(mm, addr, ptep, pte) | ||
359 | |||
360 | #define set_pte_present(mm, addr, ptep, pte) \ | ||
361 | native_set_pte_present(mm, addr, ptep, pte) | ||
362 | #define set_pte_atomic(ptep, pte) \ | ||
363 | native_set_pte_atomic(ptep, pte) | ||
364 | |||
365 | #define set_pmd(pmdp, pmd) native_set_pmd(pmdp, pmd) | ||
366 | |||
367 | #ifndef __PAGETABLE_PUD_FOLDED | ||
368 | #define set_pgd(pgdp, pgd) native_set_pgd(pgdp, pgd) | ||
369 | #define pgd_clear(pgd) native_pgd_clear(pgd) | ||
370 | #endif | ||
371 | |||
372 | #ifndef set_pud | ||
373 | # define set_pud(pudp, pud) native_set_pud(pudp, pud) | ||
374 | #endif | ||
375 | |||
376 | #ifndef __PAGETABLE_PMD_FOLDED | ||
377 | #define pud_clear(pud) native_pud_clear(pud) | ||
378 | #endif | ||
379 | |||
380 | #define pte_clear(mm, addr, ptep) native_pte_clear(mm, addr, ptep) | ||
381 | #define pmd_clear(pmd) native_pmd_clear(pmd) | ||
382 | |||
383 | #define pte_update(mm, addr, ptep) do { } while (0) | ||
384 | #define pte_update_defer(mm, addr, ptep) do { } while (0) | ||
385 | |||
386 | static inline void __init paravirt_pagetable_setup_start(pgd_t *base) | ||
387 | { | ||
388 | native_pagetable_setup_start(base); | ||
389 | } | ||
390 | |||
391 | static inline void __init paravirt_pagetable_setup_done(pgd_t *base) | ||
392 | { | ||
393 | native_pagetable_setup_done(base); | ||
394 | } | ||
395 | #endif /* CONFIG_PARAVIRT */ | ||
396 | |||
397 | #endif /* __ASSEMBLY__ */ | ||
398 | |||
399 | #ifdef CONFIG_X86_32 | ||
400 | # include "pgtable_32.h" | ||
401 | #else | ||
402 | # include "pgtable_64.h" | ||
403 | #endif | ||
404 | |||
405 | /* | ||
406 | * the pgd page can be thought of an array like this: pgd_t[PTRS_PER_PGD] | ||
407 | * | ||
408 | * this macro returns the index of the entry in the pgd page which would | ||
409 | * control the given virtual address | ||
410 | */ | ||
411 | #define pgd_index(address) (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD - 1)) | ||
412 | |||
413 | /* | ||
414 | * pgd_offset() returns a (pgd_t *) | ||
415 | * pgd_index() is used get the offset into the pgd page's array of pgd_t's; | ||
416 | */ | ||
417 | #define pgd_offset(mm, address) ((mm)->pgd + pgd_index((address))) | ||
418 | /* | ||
419 | * a shortcut which implies the use of the kernel's pgd, instead | ||
420 | * of a process's | ||
421 | */ | ||
422 | #define pgd_offset_k(address) pgd_offset(&init_mm, (address)) | ||
423 | |||
424 | |||
425 | #define KERNEL_PGD_BOUNDARY pgd_index(PAGE_OFFSET) | ||
426 | #define KERNEL_PGD_PTRS (PTRS_PER_PGD - KERNEL_PGD_BOUNDARY) | ||
427 | |||
428 | #ifndef __ASSEMBLY__ | ||
429 | |||
430 | enum { | ||
431 | PG_LEVEL_NONE, | ||
432 | PG_LEVEL_4K, | ||
433 | PG_LEVEL_2M, | ||
434 | PG_LEVEL_1G, | ||
435 | PG_LEVEL_NUM | ||
436 | }; | ||
437 | |||
438 | #ifdef CONFIG_PROC_FS | ||
439 | extern void update_page_count(int level, unsigned long pages); | ||
440 | #else | ||
441 | static inline void update_page_count(int level, unsigned long pages) { } | ||
442 | #endif | ||
443 | |||
444 | /* | ||
445 | * Helper function that returns the kernel pagetable entry controlling | ||
446 | * the virtual address 'address'. NULL means no pagetable entry present. | ||
447 | * NOTE: the return type is pte_t but if the pmd is PSE then we return it | ||
448 | * as a pte too. | ||
449 | */ | ||
450 | extern pte_t *lookup_address(unsigned long address, unsigned int *level); | ||
451 | |||
452 | /* local pte updates need not use xchg for locking */ | ||
453 | static inline pte_t native_local_ptep_get_and_clear(pte_t *ptep) | ||
454 | { | ||
455 | pte_t res = *ptep; | ||
456 | |||
457 | /* Pure native function needs no input for mm, addr */ | ||
458 | native_pte_clear(NULL, 0, ptep); | ||
459 | return res; | ||
460 | } | ||
461 | |||
462 | static inline void native_set_pte_at(struct mm_struct *mm, unsigned long addr, | ||
463 | pte_t *ptep , pte_t pte) | ||
464 | { | ||
465 | native_set_pte(ptep, pte); | ||
466 | } | ||
467 | |||
468 | #ifndef CONFIG_PARAVIRT | ||
469 | /* | ||
470 | * Rules for using pte_update - it must be called after any PTE update which | ||
471 | * has not been done using the set_pte / clear_pte interfaces. It is used by | ||
472 | * shadow mode hypervisors to resynchronize the shadow page tables. Kernel PTE | ||
473 | * updates should either be sets, clears, or set_pte_atomic for P->P | ||
474 | * transitions, which means this hook should only be called for user PTEs. | ||
475 | * This hook implies a P->P protection or access change has taken place, which | ||
476 | * requires a subsequent TLB flush. The notification can optionally be delayed | ||
477 | * until the TLB flush event by using the pte_update_defer form of the | ||
478 | * interface, but care must be taken to assure that the flush happens while | ||
479 | * still holding the same page table lock so that the shadow and primary pages | ||
480 | * do not become out of sync on SMP. | ||
481 | */ | ||
482 | #define pte_update(mm, addr, ptep) do { } while (0) | ||
483 | #define pte_update_defer(mm, addr, ptep) do { } while (0) | ||
484 | #endif | ||
485 | |||
486 | /* | ||
487 | * We only update the dirty/accessed state if we set | ||
488 | * the dirty bit by hand in the kernel, since the hardware | ||
489 | * will do the accessed bit for us, and we don't want to | ||
490 | * race with other CPU's that might be updating the dirty | ||
491 | * bit at the same time. | ||
492 | */ | ||
493 | struct vm_area_struct; | ||
494 | |||
495 | #define __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS | ||
496 | extern int ptep_set_access_flags(struct vm_area_struct *vma, | ||
497 | unsigned long address, pte_t *ptep, | ||
498 | pte_t entry, int dirty); | ||
499 | |||
500 | #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG | ||
501 | extern int ptep_test_and_clear_young(struct vm_area_struct *vma, | ||
502 | unsigned long addr, pte_t *ptep); | ||
503 | |||
504 | #define __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH | ||
505 | extern int ptep_clear_flush_young(struct vm_area_struct *vma, | ||
506 | unsigned long address, pte_t *ptep); | ||
507 | |||
508 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR | ||
509 | static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, | ||
510 | pte_t *ptep) | ||
511 | { | ||
512 | pte_t pte = native_ptep_get_and_clear(ptep); | ||
513 | pte_update(mm, addr, ptep); | ||
514 | return pte; | ||
515 | } | ||
516 | |||
517 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR_FULL | ||
518 | static inline pte_t ptep_get_and_clear_full(struct mm_struct *mm, | ||
519 | unsigned long addr, pte_t *ptep, | ||
520 | int full) | ||
521 | { | ||
522 | pte_t pte; | ||
523 | if (full) { | ||
524 | /* | ||
525 | * Full address destruction in progress; paravirt does not | ||
526 | * care about updates and native needs no locking | ||
527 | */ | ||
528 | pte = native_local_ptep_get_and_clear(ptep); | ||
529 | } else { | ||
530 | pte = ptep_get_and_clear(mm, addr, ptep); | ||
531 | } | ||
532 | return pte; | ||
533 | } | ||
534 | |||
535 | #define __HAVE_ARCH_PTEP_SET_WRPROTECT | ||
536 | static inline void ptep_set_wrprotect(struct mm_struct *mm, | ||
537 | unsigned long addr, pte_t *ptep) | ||
538 | { | ||
539 | clear_bit(_PAGE_BIT_RW, (unsigned long *)&ptep->pte); | ||
540 | pte_update(mm, addr, ptep); | ||
541 | } | ||
542 | |||
543 | /* | ||
544 | * clone_pgd_range(pgd_t *dst, pgd_t *src, int count); | ||
545 | * | ||
546 | * dst - pointer to pgd range anwhere on a pgd page | ||
547 | * src - "" | ||
548 | * count - the number of pgds to copy. | ||
549 | * | ||
550 | * dst and src can be on the same page, but the range must not overlap, | ||
551 | * and must not cross a page boundary. | ||
552 | */ | ||
553 | static inline void clone_pgd_range(pgd_t *dst, pgd_t *src, int count) | ||
554 | { | ||
555 | memcpy(dst, src, count * sizeof(pgd_t)); | ||
556 | } | ||
557 | |||
558 | |||
559 | #include <asm-generic/pgtable.h> | ||
560 | #endif /* __ASSEMBLY__ */ | ||
561 | |||
562 | #endif /* _ASM_X86_PGTABLE_H */ | ||
diff --git a/arch/x86/include/asm/pgtable_32.h b/arch/x86/include/asm/pgtable_32.h new file mode 100644 index 000000000000..f9d5889b336b --- /dev/null +++ b/arch/x86/include/asm/pgtable_32.h | |||
@@ -0,0 +1,191 @@ | |||
1 | #ifndef _ASM_X86_PGTABLE_32_H | ||
2 | #define _ASM_X86_PGTABLE_32_H | ||
3 | |||
4 | |||
5 | /* | ||
6 | * The Linux memory management assumes a three-level page table setup. On | ||
7 | * the i386, we use that, but "fold" the mid level into the top-level page | ||
8 | * table, so that we physically have the same two-level page table as the | ||
9 | * i386 mmu expects. | ||
10 | * | ||
11 | * This file contains the functions and defines necessary to modify and use | ||
12 | * the i386 page table tree. | ||
13 | */ | ||
14 | #ifndef __ASSEMBLY__ | ||
15 | #include <asm/processor.h> | ||
16 | #include <asm/fixmap.h> | ||
17 | #include <linux/threads.h> | ||
18 | #include <asm/paravirt.h> | ||
19 | |||
20 | #include <linux/bitops.h> | ||
21 | #include <linux/slab.h> | ||
22 | #include <linux/list.h> | ||
23 | #include <linux/spinlock.h> | ||
24 | |||
25 | struct mm_struct; | ||
26 | struct vm_area_struct; | ||
27 | |||
28 | extern pgd_t swapper_pg_dir[1024]; | ||
29 | |||
30 | static inline void pgtable_cache_init(void) { } | ||
31 | static inline void check_pgt_cache(void) { } | ||
32 | void paging_init(void); | ||
33 | |||
34 | extern void set_pmd_pfn(unsigned long, unsigned long, pgprot_t); | ||
35 | |||
36 | /* | ||
37 | * The Linux x86 paging architecture is 'compile-time dual-mode', it | ||
38 | * implements both the traditional 2-level x86 page tables and the | ||
39 | * newer 3-level PAE-mode page tables. | ||
40 | */ | ||
41 | #ifdef CONFIG_X86_PAE | ||
42 | # include <asm/pgtable-3level-defs.h> | ||
43 | # define PMD_SIZE (1UL << PMD_SHIFT) | ||
44 | # define PMD_MASK (~(PMD_SIZE - 1)) | ||
45 | #else | ||
46 | # include <asm/pgtable-2level-defs.h> | ||
47 | #endif | ||
48 | |||
49 | #define PGDIR_SIZE (1UL << PGDIR_SHIFT) | ||
50 | #define PGDIR_MASK (~(PGDIR_SIZE - 1)) | ||
51 | |||
52 | /* Just any arbitrary offset to the start of the vmalloc VM area: the | ||
53 | * current 8MB value just means that there will be a 8MB "hole" after the | ||
54 | * physical memory until the kernel virtual memory starts. That means that | ||
55 | * any out-of-bounds memory accesses will hopefully be caught. | ||
56 | * The vmalloc() routines leaves a hole of 4kB between each vmalloced | ||
57 | * area for the same reason. ;) | ||
58 | */ | ||
59 | #define VMALLOC_OFFSET (8 * 1024 * 1024) | ||
60 | #define VMALLOC_START ((unsigned long)high_memory + VMALLOC_OFFSET) | ||
61 | #ifdef CONFIG_X86_PAE | ||
62 | #define LAST_PKMAP 512 | ||
63 | #else | ||
64 | #define LAST_PKMAP 1024 | ||
65 | #endif | ||
66 | |||
67 | #define PKMAP_BASE ((FIXADDR_BOOT_START - PAGE_SIZE * (LAST_PKMAP + 1)) \ | ||
68 | & PMD_MASK) | ||
69 | |||
70 | #ifdef CONFIG_HIGHMEM | ||
71 | # define VMALLOC_END (PKMAP_BASE - 2 * PAGE_SIZE) | ||
72 | #else | ||
73 | # define VMALLOC_END (FIXADDR_START - 2 * PAGE_SIZE) | ||
74 | #endif | ||
75 | |||
76 | #define MAXMEM (VMALLOC_END - PAGE_OFFSET - __VMALLOC_RESERVE) | ||
77 | |||
78 | /* | ||
79 | * Define this if things work differently on an i386 and an i486: | ||
80 | * it will (on an i486) warn about kernel memory accesses that are | ||
81 | * done without a 'access_ok(VERIFY_WRITE,..)' | ||
82 | */ | ||
83 | #undef TEST_ACCESS_OK | ||
84 | |||
85 | /* The boot page tables (all created as a single array) */ | ||
86 | extern unsigned long pg0[]; | ||
87 | |||
88 | #define pte_present(x) ((x).pte_low & (_PAGE_PRESENT | _PAGE_PROTNONE)) | ||
89 | |||
90 | /* To avoid harmful races, pmd_none(x) should check only the lower when PAE */ | ||
91 | #define pmd_none(x) (!(unsigned long)pmd_val((x))) | ||
92 | #define pmd_present(x) (pmd_val((x)) & _PAGE_PRESENT) | ||
93 | #define pmd_bad(x) ((pmd_val(x) & (PTE_FLAGS_MASK & ~_PAGE_USER)) != _KERNPG_TABLE) | ||
94 | |||
95 | #define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT)) | ||
96 | |||
97 | #ifdef CONFIG_X86_PAE | ||
98 | # include <asm/pgtable-3level.h> | ||
99 | #else | ||
100 | # include <asm/pgtable-2level.h> | ||
101 | #endif | ||
102 | |||
103 | /* | ||
104 | * Macro to mark a page protection value as "uncacheable". | ||
105 | * On processors which do not support it, this is a no-op. | ||
106 | */ | ||
107 | #define pgprot_noncached(prot) \ | ||
108 | ((boot_cpu_data.x86 > 3) \ | ||
109 | ? (__pgprot(pgprot_val(prot) | _PAGE_PCD | _PAGE_PWT)) \ | ||
110 | : (prot)) | ||
111 | |||
112 | /* | ||
113 | * Conversion functions: convert a page and protection to a page entry, | ||
114 | * and a page entry and page directory to the page they refer to. | ||
115 | */ | ||
116 | #define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot)) | ||
117 | |||
118 | |||
119 | static inline int pud_large(pud_t pud) { return 0; } | ||
120 | |||
121 | /* | ||
122 | * the pmd page can be thought of an array like this: pmd_t[PTRS_PER_PMD] | ||
123 | * | ||
124 | * this macro returns the index of the entry in the pmd page which would | ||
125 | * control the given virtual address | ||
126 | */ | ||
127 | #define pmd_index(address) \ | ||
128 | (((address) >> PMD_SHIFT) & (PTRS_PER_PMD - 1)) | ||
129 | |||
130 | /* | ||
131 | * the pte page can be thought of an array like this: pte_t[PTRS_PER_PTE] | ||
132 | * | ||
133 | * this macro returns the index of the entry in the pte page which would | ||
134 | * control the given virtual address | ||
135 | */ | ||
136 | #define pte_index(address) \ | ||
137 | (((address) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1)) | ||
138 | #define pte_offset_kernel(dir, address) \ | ||
139 | ((pte_t *)pmd_page_vaddr(*(dir)) + pte_index((address))) | ||
140 | |||
141 | #define pmd_page(pmd) (pfn_to_page(pmd_val((pmd)) >> PAGE_SHIFT)) | ||
142 | |||
143 | #define pmd_page_vaddr(pmd) \ | ||
144 | ((unsigned long)__va(pmd_val((pmd)) & PTE_PFN_MASK)) | ||
145 | |||
146 | #if defined(CONFIG_HIGHPTE) | ||
147 | #define pte_offset_map(dir, address) \ | ||
148 | ((pte_t *)kmap_atomic_pte(pmd_page(*(dir)), KM_PTE0) + \ | ||
149 | pte_index((address))) | ||
150 | #define pte_offset_map_nested(dir, address) \ | ||
151 | ((pte_t *)kmap_atomic_pte(pmd_page(*(dir)), KM_PTE1) + \ | ||
152 | pte_index((address))) | ||
153 | #define pte_unmap(pte) kunmap_atomic((pte), KM_PTE0) | ||
154 | #define pte_unmap_nested(pte) kunmap_atomic((pte), KM_PTE1) | ||
155 | #else | ||
156 | #define pte_offset_map(dir, address) \ | ||
157 | ((pte_t *)page_address(pmd_page(*(dir))) + pte_index((address))) | ||
158 | #define pte_offset_map_nested(dir, address) pte_offset_map((dir), (address)) | ||
159 | #define pte_unmap(pte) do { } while (0) | ||
160 | #define pte_unmap_nested(pte) do { } while (0) | ||
161 | #endif | ||
162 | |||
163 | /* Clear a kernel PTE and flush it from the TLB */ | ||
164 | #define kpte_clear_flush(ptep, vaddr) \ | ||
165 | do { \ | ||
166 | pte_clear(&init_mm, (vaddr), (ptep)); \ | ||
167 | __flush_tlb_one((vaddr)); \ | ||
168 | } while (0) | ||
169 | |||
170 | /* | ||
171 | * The i386 doesn't have any external MMU info: the kernel page | ||
172 | * tables contain all the necessary information. | ||
173 | */ | ||
174 | #define update_mmu_cache(vma, address, pte) do { } while (0) | ||
175 | |||
176 | #endif /* !__ASSEMBLY__ */ | ||
177 | |||
178 | /* | ||
179 | * kern_addr_valid() is (1) for FLATMEM and (0) for | ||
180 | * SPARSEMEM and DISCONTIGMEM | ||
181 | */ | ||
182 | #ifdef CONFIG_FLATMEM | ||
183 | #define kern_addr_valid(addr) (1) | ||
184 | #else | ||
185 | #define kern_addr_valid(kaddr) (0) | ||
186 | #endif | ||
187 | |||
188 | #define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \ | ||
189 | remap_pfn_range(vma, vaddr, pfn, size, prot) | ||
190 | |||
191 | #endif /* _ASM_X86_PGTABLE_32_H */ | ||
diff --git a/arch/x86/include/asm/pgtable_64.h b/arch/x86/include/asm/pgtable_64.h new file mode 100644 index 000000000000..545a0e042bb2 --- /dev/null +++ b/arch/x86/include/asm/pgtable_64.h | |||
@@ -0,0 +1,285 @@ | |||
1 | #ifndef _ASM_X86_PGTABLE_64_H | ||
2 | #define _ASM_X86_PGTABLE_64_H | ||
3 | |||
4 | #include <linux/const.h> | ||
5 | #ifndef __ASSEMBLY__ | ||
6 | |||
7 | /* | ||
8 | * This file contains the functions and defines necessary to modify and use | ||
9 | * the x86-64 page table tree. | ||
10 | */ | ||
11 | #include <asm/processor.h> | ||
12 | #include <linux/bitops.h> | ||
13 | #include <linux/threads.h> | ||
14 | #include <asm/pda.h> | ||
15 | |||
16 | extern pud_t level3_kernel_pgt[512]; | ||
17 | extern pud_t level3_ident_pgt[512]; | ||
18 | extern pmd_t level2_kernel_pgt[512]; | ||
19 | extern pmd_t level2_fixmap_pgt[512]; | ||
20 | extern pmd_t level2_ident_pgt[512]; | ||
21 | extern pgd_t init_level4_pgt[]; | ||
22 | |||
23 | #define swapper_pg_dir init_level4_pgt | ||
24 | |||
25 | extern void paging_init(void); | ||
26 | |||
27 | #endif /* !__ASSEMBLY__ */ | ||
28 | |||
29 | #define SHARED_KERNEL_PMD 0 | ||
30 | |||
31 | /* | ||
32 | * PGDIR_SHIFT determines what a top-level page table entry can map | ||
33 | */ | ||
34 | #define PGDIR_SHIFT 39 | ||
35 | #define PTRS_PER_PGD 512 | ||
36 | |||
37 | /* | ||
38 | * 3rd level page | ||
39 | */ | ||
40 | #define PUD_SHIFT 30 | ||
41 | #define PTRS_PER_PUD 512 | ||
42 | |||
43 | /* | ||
44 | * PMD_SHIFT determines the size of the area a middle-level | ||
45 | * page table can map | ||
46 | */ | ||
47 | #define PMD_SHIFT 21 | ||
48 | #define PTRS_PER_PMD 512 | ||
49 | |||
50 | /* | ||
51 | * entries per page directory level | ||
52 | */ | ||
53 | #define PTRS_PER_PTE 512 | ||
54 | |||
55 | #ifndef __ASSEMBLY__ | ||
56 | |||
57 | #define pte_ERROR(e) \ | ||
58 | printk("%s:%d: bad pte %p(%016lx).\n", \ | ||
59 | __FILE__, __LINE__, &(e), pte_val(e)) | ||
60 | #define pmd_ERROR(e) \ | ||
61 | printk("%s:%d: bad pmd %p(%016lx).\n", \ | ||
62 | __FILE__, __LINE__, &(e), pmd_val(e)) | ||
63 | #define pud_ERROR(e) \ | ||
64 | printk("%s:%d: bad pud %p(%016lx).\n", \ | ||
65 | __FILE__, __LINE__, &(e), pud_val(e)) | ||
66 | #define pgd_ERROR(e) \ | ||
67 | printk("%s:%d: bad pgd %p(%016lx).\n", \ | ||
68 | __FILE__, __LINE__, &(e), pgd_val(e)) | ||
69 | |||
70 | #define pgd_none(x) (!pgd_val(x)) | ||
71 | #define pud_none(x) (!pud_val(x)) | ||
72 | |||
73 | struct mm_struct; | ||
74 | |||
75 | void set_pte_vaddr_pud(pud_t *pud_page, unsigned long vaddr, pte_t new_pte); | ||
76 | |||
77 | |||
78 | static inline void native_pte_clear(struct mm_struct *mm, unsigned long addr, | ||
79 | pte_t *ptep) | ||
80 | { | ||
81 | *ptep = native_make_pte(0); | ||
82 | } | ||
83 | |||
84 | static inline void native_set_pte(pte_t *ptep, pte_t pte) | ||
85 | { | ||
86 | *ptep = pte; | ||
87 | } | ||
88 | |||
89 | static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte) | ||
90 | { | ||
91 | native_set_pte(ptep, pte); | ||
92 | } | ||
93 | |||
94 | static inline pte_t native_ptep_get_and_clear(pte_t *xp) | ||
95 | { | ||
96 | #ifdef CONFIG_SMP | ||
97 | return native_make_pte(xchg(&xp->pte, 0)); | ||
98 | #else | ||
99 | /* native_local_ptep_get_and_clear, | ||
100 | but duplicated because of cyclic dependency */ | ||
101 | pte_t ret = *xp; | ||
102 | native_pte_clear(NULL, 0, xp); | ||
103 | return ret; | ||
104 | #endif | ||
105 | } | ||
106 | |||
107 | static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd) | ||
108 | { | ||
109 | *pmdp = pmd; | ||
110 | } | ||
111 | |||
112 | static inline void native_pmd_clear(pmd_t *pmd) | ||
113 | { | ||
114 | native_set_pmd(pmd, native_make_pmd(0)); | ||
115 | } | ||
116 | |||
117 | static inline void native_set_pud(pud_t *pudp, pud_t pud) | ||
118 | { | ||
119 | *pudp = pud; | ||
120 | } | ||
121 | |||
122 | static inline void native_pud_clear(pud_t *pud) | ||
123 | { | ||
124 | native_set_pud(pud, native_make_pud(0)); | ||
125 | } | ||
126 | |||
127 | static inline void native_set_pgd(pgd_t *pgdp, pgd_t pgd) | ||
128 | { | ||
129 | *pgdp = pgd; | ||
130 | } | ||
131 | |||
132 | static inline void native_pgd_clear(pgd_t *pgd) | ||
133 | { | ||
134 | native_set_pgd(pgd, native_make_pgd(0)); | ||
135 | } | ||
136 | |||
137 | #define pte_same(a, b) ((a).pte == (b).pte) | ||
138 | |||
139 | #endif /* !__ASSEMBLY__ */ | ||
140 | |||
141 | #define PMD_SIZE (_AC(1, UL) << PMD_SHIFT) | ||
142 | #define PMD_MASK (~(PMD_SIZE - 1)) | ||
143 | #define PUD_SIZE (_AC(1, UL) << PUD_SHIFT) | ||
144 | #define PUD_MASK (~(PUD_SIZE - 1)) | ||
145 | #define PGDIR_SIZE (_AC(1, UL) << PGDIR_SHIFT) | ||
146 | #define PGDIR_MASK (~(PGDIR_SIZE - 1)) | ||
147 | |||
148 | |||
149 | #define MAXMEM _AC(0x00003fffffffffff, UL) | ||
150 | #define VMALLOC_START _AC(0xffffc20000000000, UL) | ||
151 | #define VMALLOC_END _AC(0xffffe1ffffffffff, UL) | ||
152 | #define VMEMMAP_START _AC(0xffffe20000000000, UL) | ||
153 | #define MODULES_VADDR _AC(0xffffffffa0000000, UL) | ||
154 | #define MODULES_END _AC(0xffffffffff000000, UL) | ||
155 | #define MODULES_LEN (MODULES_END - MODULES_VADDR) | ||
156 | |||
157 | #ifndef __ASSEMBLY__ | ||
158 | |||
159 | static inline int pgd_bad(pgd_t pgd) | ||
160 | { | ||
161 | return (pgd_val(pgd) & ~(PTE_PFN_MASK | _PAGE_USER)) != _KERNPG_TABLE; | ||
162 | } | ||
163 | |||
164 | static inline int pud_bad(pud_t pud) | ||
165 | { | ||
166 | return (pud_val(pud) & ~(PTE_PFN_MASK | _PAGE_USER)) != _KERNPG_TABLE; | ||
167 | } | ||
168 | |||
169 | static inline int pmd_bad(pmd_t pmd) | ||
170 | { | ||
171 | return (pmd_val(pmd) & ~(PTE_PFN_MASK | _PAGE_USER)) != _KERNPG_TABLE; | ||
172 | } | ||
173 | |||
174 | #define pte_none(x) (!pte_val((x))) | ||
175 | #define pte_present(x) (pte_val((x)) & (_PAGE_PRESENT | _PAGE_PROTNONE)) | ||
176 | |||
177 | #define pages_to_mb(x) ((x) >> (20 - PAGE_SHIFT)) /* FIXME: is this right? */ | ||
178 | |||
179 | /* | ||
180 | * Macro to mark a page protection value as "uncacheable". | ||
181 | */ | ||
182 | #define pgprot_noncached(prot) \ | ||
183 | (__pgprot(pgprot_val((prot)) | _PAGE_PCD | _PAGE_PWT)) | ||
184 | |||
185 | /* | ||
186 | * Conversion functions: convert a page and protection to a page entry, | ||
187 | * and a page entry and page directory to the page they refer to. | ||
188 | */ | ||
189 | |||
190 | /* | ||
191 | * Level 4 access. | ||
192 | */ | ||
193 | #define pgd_page_vaddr(pgd) \ | ||
194 | ((unsigned long)__va((unsigned long)pgd_val((pgd)) & PTE_PFN_MASK)) | ||
195 | #define pgd_page(pgd) (pfn_to_page(pgd_val((pgd)) >> PAGE_SHIFT)) | ||
196 | #define pgd_present(pgd) (pgd_val(pgd) & _PAGE_PRESENT) | ||
197 | static inline int pgd_large(pgd_t pgd) { return 0; } | ||
198 | #define mk_kernel_pgd(address) __pgd((address) | _KERNPG_TABLE) | ||
199 | |||
200 | /* PUD - Level3 access */ | ||
201 | /* to find an entry in a page-table-directory. */ | ||
202 | #define pud_page_vaddr(pud) \ | ||
203 | ((unsigned long)__va(pud_val((pud)) & PHYSICAL_PAGE_MASK)) | ||
204 | #define pud_page(pud) (pfn_to_page(pud_val((pud)) >> PAGE_SHIFT)) | ||
205 | #define pud_index(address) (((address) >> PUD_SHIFT) & (PTRS_PER_PUD - 1)) | ||
206 | #define pud_offset(pgd, address) \ | ||
207 | ((pud_t *)pgd_page_vaddr(*(pgd)) + pud_index((address))) | ||
208 | #define pud_present(pud) (pud_val((pud)) & _PAGE_PRESENT) | ||
209 | |||
210 | static inline int pud_large(pud_t pte) | ||
211 | { | ||
212 | return (pud_val(pte) & (_PAGE_PSE | _PAGE_PRESENT)) == | ||
213 | (_PAGE_PSE | _PAGE_PRESENT); | ||
214 | } | ||
215 | |||
216 | /* PMD - Level 2 access */ | ||
217 | #define pmd_page_vaddr(pmd) ((unsigned long) __va(pmd_val((pmd)) & PTE_PFN_MASK)) | ||
218 | #define pmd_page(pmd) (pfn_to_page(pmd_val((pmd)) >> PAGE_SHIFT)) | ||
219 | |||
220 | #define pmd_index(address) (((address) >> PMD_SHIFT) & (PTRS_PER_PMD - 1)) | ||
221 | #define pmd_offset(dir, address) ((pmd_t *)pud_page_vaddr(*(dir)) + \ | ||
222 | pmd_index(address)) | ||
223 | #define pmd_none(x) (!pmd_val((x))) | ||
224 | #define pmd_present(x) (pmd_val((x)) & _PAGE_PRESENT) | ||
225 | #define pfn_pmd(nr, prot) (__pmd(((nr) << PAGE_SHIFT) | pgprot_val((prot)))) | ||
226 | #define pmd_pfn(x) ((pmd_val((x)) & __PHYSICAL_MASK) >> PAGE_SHIFT) | ||
227 | |||
228 | #define pte_to_pgoff(pte) ((pte_val((pte)) & PHYSICAL_PAGE_MASK) >> PAGE_SHIFT) | ||
229 | #define pgoff_to_pte(off) ((pte_t) { .pte = ((off) << PAGE_SHIFT) | \ | ||
230 | _PAGE_FILE }) | ||
231 | #define PTE_FILE_MAX_BITS __PHYSICAL_MASK_SHIFT | ||
232 | |||
233 | /* PTE - Level 1 access. */ | ||
234 | |||
235 | /* page, protection -> pte */ | ||
236 | #define mk_pte(page, pgprot) pfn_pte(page_to_pfn((page)), (pgprot)) | ||
237 | |||
238 | #define pte_index(address) (((address) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1)) | ||
239 | #define pte_offset_kernel(dir, address) ((pte_t *) pmd_page_vaddr(*(dir)) + \ | ||
240 | pte_index((address))) | ||
241 | |||
242 | /* x86-64 always has all page tables mapped. */ | ||
243 | #define pte_offset_map(dir, address) pte_offset_kernel((dir), (address)) | ||
244 | #define pte_offset_map_nested(dir, address) pte_offset_kernel((dir), (address)) | ||
245 | #define pte_unmap(pte) /* NOP */ | ||
246 | #define pte_unmap_nested(pte) /* NOP */ | ||
247 | |||
248 | #define update_mmu_cache(vma, address, pte) do { } while (0) | ||
249 | |||
250 | extern int direct_gbpages; | ||
251 | |||
252 | /* Encode and de-code a swap entry */ | ||
253 | #define __swp_type(x) (((x).val >> 1) & 0x3f) | ||
254 | #define __swp_offset(x) ((x).val >> 8) | ||
255 | #define __swp_entry(type, offset) ((swp_entry_t) { ((type) << 1) | \ | ||
256 | ((offset) << 8) }) | ||
257 | #define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val((pte)) }) | ||
258 | #define __swp_entry_to_pte(x) ((pte_t) { .pte = (x).val }) | ||
259 | |||
260 | extern int kern_addr_valid(unsigned long addr); | ||
261 | extern void cleanup_highmap(void); | ||
262 | |||
263 | #define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \ | ||
264 | remap_pfn_range(vma, vaddr, pfn, size, prot) | ||
265 | |||
266 | #define HAVE_ARCH_UNMAPPED_AREA | ||
267 | #define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN | ||
268 | |||
269 | #define pgtable_cache_init() do { } while (0) | ||
270 | #define check_pgt_cache() do { } while (0) | ||
271 | |||
272 | #define PAGE_AGP PAGE_KERNEL_NOCACHE | ||
273 | #define HAVE_PAGE_AGP 1 | ||
274 | |||
275 | /* fs/proc/kcore.c */ | ||
276 | #define kc_vaddr_to_offset(v) ((v) & __VIRTUAL_MASK) | ||
277 | #define kc_offset_to_vaddr(o) \ | ||
278 | (((o) & (1UL << (__VIRTUAL_MASK_SHIFT - 1))) \ | ||
279 | ? ((o) | ~__VIRTUAL_MASK) \ | ||
280 | : (o)) | ||
281 | |||
282 | #define __HAVE_ARCH_PTE_SAME | ||
283 | #endif /* !__ASSEMBLY__ */ | ||
284 | |||
285 | #endif /* _ASM_X86_PGTABLE_64_H */ | ||
diff --git a/arch/x86/include/asm/poll.h b/arch/x86/include/asm/poll.h new file mode 100644 index 000000000000..c98509d3149e --- /dev/null +++ b/arch/x86/include/asm/poll.h | |||
@@ -0,0 +1 @@ | |||
#include <asm-generic/poll.h> | |||
diff --git a/arch/x86/include/asm/posix_types.h b/arch/x86/include/asm/posix_types.h new file mode 100644 index 000000000000..bb7133dc155d --- /dev/null +++ b/arch/x86/include/asm/posix_types.h | |||
@@ -0,0 +1,13 @@ | |||
1 | #ifdef __KERNEL__ | ||
2 | # ifdef CONFIG_X86_32 | ||
3 | # include "posix_types_32.h" | ||
4 | # else | ||
5 | # include "posix_types_64.h" | ||
6 | # endif | ||
7 | #else | ||
8 | # ifdef __i386__ | ||
9 | # include "posix_types_32.h" | ||
10 | # else | ||
11 | # include "posix_types_64.h" | ||
12 | # endif | ||
13 | #endif | ||
diff --git a/arch/x86/include/asm/posix_types_32.h b/arch/x86/include/asm/posix_types_32.h new file mode 100644 index 000000000000..f7d9adf82e53 --- /dev/null +++ b/arch/x86/include/asm/posix_types_32.h | |||
@@ -0,0 +1,85 @@ | |||
1 | #ifndef _ASM_X86_POSIX_TYPES_32_H | ||
2 | #define _ASM_X86_POSIX_TYPES_32_H | ||
3 | |||
4 | /* | ||
5 | * This file is generally used by user-level software, so you need to | ||
6 | * be a little careful about namespace pollution etc. Also, we cannot | ||
7 | * assume GCC is being used. | ||
8 | */ | ||
9 | |||
10 | typedef unsigned long __kernel_ino_t; | ||
11 | typedef unsigned short __kernel_mode_t; | ||
12 | typedef unsigned short __kernel_nlink_t; | ||
13 | typedef long __kernel_off_t; | ||
14 | typedef int __kernel_pid_t; | ||
15 | typedef unsigned short __kernel_ipc_pid_t; | ||
16 | typedef unsigned short __kernel_uid_t; | ||
17 | typedef unsigned short __kernel_gid_t; | ||
18 | typedef unsigned int __kernel_size_t; | ||
19 | typedef int __kernel_ssize_t; | ||
20 | typedef int __kernel_ptrdiff_t; | ||
21 | typedef long __kernel_time_t; | ||
22 | typedef long __kernel_suseconds_t; | ||
23 | typedef long __kernel_clock_t; | ||
24 | typedef int __kernel_timer_t; | ||
25 | typedef int __kernel_clockid_t; | ||
26 | typedef int __kernel_daddr_t; | ||
27 | typedef char * __kernel_caddr_t; | ||
28 | typedef unsigned short __kernel_uid16_t; | ||
29 | typedef unsigned short __kernel_gid16_t; | ||
30 | typedef unsigned int __kernel_uid32_t; | ||
31 | typedef unsigned int __kernel_gid32_t; | ||
32 | |||
33 | typedef unsigned short __kernel_old_uid_t; | ||
34 | typedef unsigned short __kernel_old_gid_t; | ||
35 | typedef unsigned short __kernel_old_dev_t; | ||
36 | |||
37 | #ifdef __GNUC__ | ||
38 | typedef long long __kernel_loff_t; | ||
39 | #endif | ||
40 | |||
41 | typedef struct { | ||
42 | int val[2]; | ||
43 | } __kernel_fsid_t; | ||
44 | |||
45 | #if defined(__KERNEL__) | ||
46 | |||
47 | #undef __FD_SET | ||
48 | #define __FD_SET(fd,fdsetp) \ | ||
49 | asm volatile("btsl %1,%0": \ | ||
50 | "+m" (*(__kernel_fd_set *)(fdsetp)) \ | ||
51 | : "r" ((int)(fd))) | ||
52 | |||
53 | #undef __FD_CLR | ||
54 | #define __FD_CLR(fd,fdsetp) \ | ||
55 | asm volatile("btrl %1,%0": \ | ||
56 | "+m" (*(__kernel_fd_set *)(fdsetp)) \ | ||
57 | : "r" ((int) (fd))) | ||
58 | |||
59 | #undef __FD_ISSET | ||
60 | #define __FD_ISSET(fd,fdsetp) \ | ||
61 | (__extension__ \ | ||
62 | ({ \ | ||
63 | unsigned char __result; \ | ||
64 | asm volatile("btl %1,%2 ; setb %0" \ | ||
65 | : "=q" (__result) \ | ||
66 | : "r" ((int)(fd)), \ | ||
67 | "m" (*(__kernel_fd_set *)(fdsetp))); \ | ||
68 | __result; \ | ||
69 | })) | ||
70 | |||
71 | #undef __FD_ZERO | ||
72 | #define __FD_ZERO(fdsetp) \ | ||
73 | do { \ | ||
74 | int __d0, __d1; \ | ||
75 | asm volatile("cld ; rep ; stosl" \ | ||
76 | : "=m" (*(__kernel_fd_set *)(fdsetp)), \ | ||
77 | "=&c" (__d0), "=&D" (__d1) \ | ||
78 | : "a" (0), "1" (__FDSET_LONGS), \ | ||
79 | "2" ((__kernel_fd_set *)(fdsetp)) \ | ||
80 | : "memory"); \ | ||
81 | } while (0) | ||
82 | |||
83 | #endif /* defined(__KERNEL__) */ | ||
84 | |||
85 | #endif /* _ASM_X86_POSIX_TYPES_32_H */ | ||
diff --git a/arch/x86/include/asm/posix_types_64.h b/arch/x86/include/asm/posix_types_64.h new file mode 100644 index 000000000000..eb8d2d92b63e --- /dev/null +++ b/arch/x86/include/asm/posix_types_64.h | |||
@@ -0,0 +1,119 @@ | |||
1 | #ifndef _ASM_X86_POSIX_TYPES_64_H | ||
2 | #define _ASM_X86_POSIX_TYPES_64_H | ||
3 | |||
4 | /* | ||
5 | * This file is generally used by user-level software, so you need to | ||
6 | * be a little careful about namespace pollution etc. Also, we cannot | ||
7 | * assume GCC is being used. | ||
8 | */ | ||
9 | |||
10 | typedef unsigned long __kernel_ino_t; | ||
11 | typedef unsigned int __kernel_mode_t; | ||
12 | typedef unsigned long __kernel_nlink_t; | ||
13 | typedef long __kernel_off_t; | ||
14 | typedef int __kernel_pid_t; | ||
15 | typedef int __kernel_ipc_pid_t; | ||
16 | typedef unsigned int __kernel_uid_t; | ||
17 | typedef unsigned int __kernel_gid_t; | ||
18 | typedef unsigned long __kernel_size_t; | ||
19 | typedef long __kernel_ssize_t; | ||
20 | typedef long __kernel_ptrdiff_t; | ||
21 | typedef long __kernel_time_t; | ||
22 | typedef long __kernel_suseconds_t; | ||
23 | typedef long __kernel_clock_t; | ||
24 | typedef int __kernel_timer_t; | ||
25 | typedef int __kernel_clockid_t; | ||
26 | typedef int __kernel_daddr_t; | ||
27 | typedef char * __kernel_caddr_t; | ||
28 | typedef unsigned short __kernel_uid16_t; | ||
29 | typedef unsigned short __kernel_gid16_t; | ||
30 | |||
31 | #ifdef __GNUC__ | ||
32 | typedef long long __kernel_loff_t; | ||
33 | #endif | ||
34 | |||
35 | typedef struct { | ||
36 | int val[2]; | ||
37 | } __kernel_fsid_t; | ||
38 | |||
39 | typedef unsigned short __kernel_old_uid_t; | ||
40 | typedef unsigned short __kernel_old_gid_t; | ||
41 | typedef __kernel_uid_t __kernel_uid32_t; | ||
42 | typedef __kernel_gid_t __kernel_gid32_t; | ||
43 | |||
44 | typedef unsigned long __kernel_old_dev_t; | ||
45 | |||
46 | #ifdef __KERNEL__ | ||
47 | |||
48 | #undef __FD_SET | ||
49 | static inline void __FD_SET(unsigned long fd, __kernel_fd_set *fdsetp) | ||
50 | { | ||
51 | unsigned long _tmp = fd / __NFDBITS; | ||
52 | unsigned long _rem = fd % __NFDBITS; | ||
53 | fdsetp->fds_bits[_tmp] |= (1UL<<_rem); | ||
54 | } | ||
55 | |||
56 | #undef __FD_CLR | ||
57 | static inline void __FD_CLR(unsigned long fd, __kernel_fd_set *fdsetp) | ||
58 | { | ||
59 | unsigned long _tmp = fd / __NFDBITS; | ||
60 | unsigned long _rem = fd % __NFDBITS; | ||
61 | fdsetp->fds_bits[_tmp] &= ~(1UL<<_rem); | ||
62 | } | ||
63 | |||
64 | #undef __FD_ISSET | ||
65 | static inline int __FD_ISSET(unsigned long fd, __const__ __kernel_fd_set *p) | ||
66 | { | ||
67 | unsigned long _tmp = fd / __NFDBITS; | ||
68 | unsigned long _rem = fd % __NFDBITS; | ||
69 | return (p->fds_bits[_tmp] & (1UL<<_rem)) != 0; | ||
70 | } | ||
71 | |||
72 | /* | ||
73 | * This will unroll the loop for the normal constant cases (8 or 32 longs, | ||
74 | * for 256 and 1024-bit fd_sets respectively) | ||
75 | */ | ||
76 | #undef __FD_ZERO | ||
77 | static inline void __FD_ZERO(__kernel_fd_set *p) | ||
78 | { | ||
79 | unsigned long *tmp = p->fds_bits; | ||
80 | int i; | ||
81 | |||
82 | if (__builtin_constant_p(__FDSET_LONGS)) { | ||
83 | switch (__FDSET_LONGS) { | ||
84 | case 32: | ||
85 | tmp[ 0] = 0; tmp[ 1] = 0; tmp[ 2] = 0; tmp[ 3] = 0; | ||
86 | tmp[ 4] = 0; tmp[ 5] = 0; tmp[ 6] = 0; tmp[ 7] = 0; | ||
87 | tmp[ 8] = 0; tmp[ 9] = 0; tmp[10] = 0; tmp[11] = 0; | ||
88 | tmp[12] = 0; tmp[13] = 0; tmp[14] = 0; tmp[15] = 0; | ||
89 | tmp[16] = 0; tmp[17] = 0; tmp[18] = 0; tmp[19] = 0; | ||
90 | tmp[20] = 0; tmp[21] = 0; tmp[22] = 0; tmp[23] = 0; | ||
91 | tmp[24] = 0; tmp[25] = 0; tmp[26] = 0; tmp[27] = 0; | ||
92 | tmp[28] = 0; tmp[29] = 0; tmp[30] = 0; tmp[31] = 0; | ||
93 | return; | ||
94 | case 16: | ||
95 | tmp[ 0] = 0; tmp[ 1] = 0; tmp[ 2] = 0; tmp[ 3] = 0; | ||
96 | tmp[ 4] = 0; tmp[ 5] = 0; tmp[ 6] = 0; tmp[ 7] = 0; | ||
97 | tmp[ 8] = 0; tmp[ 9] = 0; tmp[10] = 0; tmp[11] = 0; | ||
98 | tmp[12] = 0; tmp[13] = 0; tmp[14] = 0; tmp[15] = 0; | ||
99 | return; | ||
100 | case 8: | ||
101 | tmp[ 0] = 0; tmp[ 1] = 0; tmp[ 2] = 0; tmp[ 3] = 0; | ||
102 | tmp[ 4] = 0; tmp[ 5] = 0; tmp[ 6] = 0; tmp[ 7] = 0; | ||
103 | return; | ||
104 | case 4: | ||
105 | tmp[ 0] = 0; tmp[ 1] = 0; tmp[ 2] = 0; tmp[ 3] = 0; | ||
106 | return; | ||
107 | } | ||
108 | } | ||
109 | i = __FDSET_LONGS; | ||
110 | while (i) { | ||
111 | i--; | ||
112 | *tmp = 0; | ||
113 | tmp++; | ||
114 | } | ||
115 | } | ||
116 | |||
117 | #endif /* defined(__KERNEL__) */ | ||
118 | |||
119 | #endif /* _ASM_X86_POSIX_TYPES_64_H */ | ||
diff --git a/arch/x86/include/asm/prctl.h b/arch/x86/include/asm/prctl.h new file mode 100644 index 000000000000..fe681147a4f7 --- /dev/null +++ b/arch/x86/include/asm/prctl.h | |||
@@ -0,0 +1,10 @@ | |||
1 | #ifndef _ASM_X86_PRCTL_H | ||
2 | #define _ASM_X86_PRCTL_H | ||
3 | |||
4 | #define ARCH_SET_GS 0x1001 | ||
5 | #define ARCH_SET_FS 0x1002 | ||
6 | #define ARCH_GET_FS 0x1003 | ||
7 | #define ARCH_GET_GS 0x1004 | ||
8 | |||
9 | |||
10 | #endif /* _ASM_X86_PRCTL_H */ | ||
diff --git a/arch/x86/include/asm/processor-cyrix.h b/arch/x86/include/asm/processor-cyrix.h new file mode 100644 index 000000000000..1198f2a0e42c --- /dev/null +++ b/arch/x86/include/asm/processor-cyrix.h | |||
@@ -0,0 +1,38 @@ | |||
1 | /* | ||
2 | * NSC/Cyrix CPU indexed register access. Must be inlined instead of | ||
3 | * macros to ensure correct access ordering | ||
4 | * Access order is always 0x22 (=offset), 0x23 (=value) | ||
5 | * | ||
6 | * When using the old macros a line like | ||
7 | * setCx86(CX86_CCR2, getCx86(CX86_CCR2) | 0x88); | ||
8 | * gets expanded to: | ||
9 | * do { | ||
10 | * outb((CX86_CCR2), 0x22); | ||
11 | * outb((({ | ||
12 | * outb((CX86_CCR2), 0x22); | ||
13 | * inb(0x23); | ||
14 | * }) | 0x88), 0x23); | ||
15 | * } while (0); | ||
16 | * | ||
17 | * which in fact violates the access order (= 0x22, 0x22, 0x23, 0x23). | ||
18 | */ | ||
19 | |||
20 | static inline u8 getCx86(u8 reg) | ||
21 | { | ||
22 | outb(reg, 0x22); | ||
23 | return inb(0x23); | ||
24 | } | ||
25 | |||
26 | static inline void setCx86(u8 reg, u8 data) | ||
27 | { | ||
28 | outb(reg, 0x22); | ||
29 | outb(data, 0x23); | ||
30 | } | ||
31 | |||
32 | #define getCx86_old(reg) ({ outb((reg), 0x22); inb(0x23); }) | ||
33 | |||
34 | #define setCx86_old(reg, data) do { \ | ||
35 | outb((reg), 0x22); \ | ||
36 | outb((data), 0x23); \ | ||
37 | } while (0) | ||
38 | |||
diff --git a/arch/x86/include/asm/processor-flags.h b/arch/x86/include/asm/processor-flags.h new file mode 100644 index 000000000000..7a3e836eb2a9 --- /dev/null +++ b/arch/x86/include/asm/processor-flags.h | |||
@@ -0,0 +1,100 @@ | |||
1 | #ifndef _ASM_X86_PROCESSOR_FLAGS_H | ||
2 | #define _ASM_X86_PROCESSOR_FLAGS_H | ||
3 | /* Various flags defined: can be included from assembler. */ | ||
4 | |||
5 | /* | ||
6 | * EFLAGS bits | ||
7 | */ | ||
8 | #define X86_EFLAGS_CF 0x00000001 /* Carry Flag */ | ||
9 | #define X86_EFLAGS_PF 0x00000004 /* Parity Flag */ | ||
10 | #define X86_EFLAGS_AF 0x00000010 /* Auxillary carry Flag */ | ||
11 | #define X86_EFLAGS_ZF 0x00000040 /* Zero Flag */ | ||
12 | #define X86_EFLAGS_SF 0x00000080 /* Sign Flag */ | ||
13 | #define X86_EFLAGS_TF 0x00000100 /* Trap Flag */ | ||
14 | #define X86_EFLAGS_IF 0x00000200 /* Interrupt Flag */ | ||
15 | #define X86_EFLAGS_DF 0x00000400 /* Direction Flag */ | ||
16 | #define X86_EFLAGS_OF 0x00000800 /* Overflow Flag */ | ||
17 | #define X86_EFLAGS_IOPL 0x00003000 /* IOPL mask */ | ||
18 | #define X86_EFLAGS_NT 0x00004000 /* Nested Task */ | ||
19 | #define X86_EFLAGS_RF 0x00010000 /* Resume Flag */ | ||
20 | #define X86_EFLAGS_VM 0x00020000 /* Virtual Mode */ | ||
21 | #define X86_EFLAGS_AC 0x00040000 /* Alignment Check */ | ||
22 | #define X86_EFLAGS_VIF 0x00080000 /* Virtual Interrupt Flag */ | ||
23 | #define X86_EFLAGS_VIP 0x00100000 /* Virtual Interrupt Pending */ | ||
24 | #define X86_EFLAGS_ID 0x00200000 /* CPUID detection flag */ | ||
25 | |||
26 | /* | ||
27 | * Basic CPU control in CR0 | ||
28 | */ | ||
29 | #define X86_CR0_PE 0x00000001 /* Protection Enable */ | ||
30 | #define X86_CR0_MP 0x00000002 /* Monitor Coprocessor */ | ||
31 | #define X86_CR0_EM 0x00000004 /* Emulation */ | ||
32 | #define X86_CR0_TS 0x00000008 /* Task Switched */ | ||
33 | #define X86_CR0_ET 0x00000010 /* Extension Type */ | ||
34 | #define X86_CR0_NE 0x00000020 /* Numeric Error */ | ||
35 | #define X86_CR0_WP 0x00010000 /* Write Protect */ | ||
36 | #define X86_CR0_AM 0x00040000 /* Alignment Mask */ | ||
37 | #define X86_CR0_NW 0x20000000 /* Not Write-through */ | ||
38 | #define X86_CR0_CD 0x40000000 /* Cache Disable */ | ||
39 | #define X86_CR0_PG 0x80000000 /* Paging */ | ||
40 | |||
41 | /* | ||
42 | * Paging options in CR3 | ||
43 | */ | ||
44 | #define X86_CR3_PWT 0x00000008 /* Page Write Through */ | ||
45 | #define X86_CR3_PCD 0x00000010 /* Page Cache Disable */ | ||
46 | |||
47 | /* | ||
48 | * Intel CPU features in CR4 | ||
49 | */ | ||
50 | #define X86_CR4_VME 0x00000001 /* enable vm86 extensions */ | ||
51 | #define X86_CR4_PVI 0x00000002 /* virtual interrupts flag enable */ | ||
52 | #define X86_CR4_TSD 0x00000004 /* disable time stamp at ipl 3 */ | ||
53 | #define X86_CR4_DE 0x00000008 /* enable debugging extensions */ | ||
54 | #define X86_CR4_PSE 0x00000010 /* enable page size extensions */ | ||
55 | #define X86_CR4_PAE 0x00000020 /* enable physical address extensions */ | ||
56 | #define X86_CR4_MCE 0x00000040 /* Machine check enable */ | ||
57 | #define X86_CR4_PGE 0x00000080 /* enable global pages */ | ||
58 | #define X86_CR4_PCE 0x00000100 /* enable performance counters at ipl 3 */ | ||
59 | #define X86_CR4_OSFXSR 0x00000200 /* enable fast FPU save and restore */ | ||
60 | #define X86_CR4_OSXMMEXCPT 0x00000400 /* enable unmasked SSE exceptions */ | ||
61 | #define X86_CR4_VMXE 0x00002000 /* enable VMX virtualization */ | ||
62 | #define X86_CR4_OSXSAVE 0x00040000 /* enable xsave and xrestore */ | ||
63 | |||
64 | /* | ||
65 | * x86-64 Task Priority Register, CR8 | ||
66 | */ | ||
67 | #define X86_CR8_TPR 0x0000000F /* task priority register */ | ||
68 | |||
69 | /* | ||
70 | * AMD and Transmeta use MSRs for configuration; see <asm/msr-index.h> | ||
71 | */ | ||
72 | |||
73 | /* | ||
74 | * NSC/Cyrix CPU configuration register indexes | ||
75 | */ | ||
76 | #define CX86_PCR0 0x20 | ||
77 | #define CX86_GCR 0xb8 | ||
78 | #define CX86_CCR0 0xc0 | ||
79 | #define CX86_CCR1 0xc1 | ||
80 | #define CX86_CCR2 0xc2 | ||
81 | #define CX86_CCR3 0xc3 | ||
82 | #define CX86_CCR4 0xe8 | ||
83 | #define CX86_CCR5 0xe9 | ||
84 | #define CX86_CCR6 0xea | ||
85 | #define CX86_CCR7 0xeb | ||
86 | #define CX86_PCR1 0xf0 | ||
87 | #define CX86_DIR0 0xfe | ||
88 | #define CX86_DIR1 0xff | ||
89 | #define CX86_ARR_BASE 0xc4 | ||
90 | #define CX86_RCR_BASE 0xdc | ||
91 | |||
92 | #ifdef __KERNEL__ | ||
93 | #ifdef CONFIG_VM86 | ||
94 | #define X86_VM_MASK X86_EFLAGS_VM | ||
95 | #else | ||
96 | #define X86_VM_MASK 0 /* No VM86 support */ | ||
97 | #endif | ||
98 | #endif | ||
99 | |||
100 | #endif /* _ASM_X86_PROCESSOR_FLAGS_H */ | ||
diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h new file mode 100644 index 000000000000..5ca01e383269 --- /dev/null +++ b/arch/x86/include/asm/processor.h | |||
@@ -0,0 +1,936 @@ | |||
1 | #ifndef _ASM_X86_PROCESSOR_H | ||
2 | #define _ASM_X86_PROCESSOR_H | ||
3 | |||
4 | #include <asm/processor-flags.h> | ||
5 | |||
6 | /* Forward declaration, a strange C thing */ | ||
7 | struct task_struct; | ||
8 | struct mm_struct; | ||
9 | |||
10 | #include <asm/vm86.h> | ||
11 | #include <asm/math_emu.h> | ||
12 | #include <asm/segment.h> | ||
13 | #include <asm/types.h> | ||
14 | #include <asm/sigcontext.h> | ||
15 | #include <asm/current.h> | ||
16 | #include <asm/cpufeature.h> | ||
17 | #include <asm/system.h> | ||
18 | #include <asm/page.h> | ||
19 | #include <asm/percpu.h> | ||
20 | #include <asm/msr.h> | ||
21 | #include <asm/desc_defs.h> | ||
22 | #include <asm/nops.h> | ||
23 | #include <asm/ds.h> | ||
24 | |||
25 | #include <linux/personality.h> | ||
26 | #include <linux/cpumask.h> | ||
27 | #include <linux/cache.h> | ||
28 | #include <linux/threads.h> | ||
29 | #include <linux/init.h> | ||
30 | |||
31 | /* | ||
32 | * Default implementation of macro that returns current | ||
33 | * instruction pointer ("program counter"). | ||
34 | */ | ||
35 | static inline void *current_text_addr(void) | ||
36 | { | ||
37 | void *pc; | ||
38 | |||
39 | asm volatile("mov $1f, %0; 1:":"=r" (pc)); | ||
40 | |||
41 | return pc; | ||
42 | } | ||
43 | |||
44 | #ifdef CONFIG_X86_VSMP | ||
45 | # define ARCH_MIN_TASKALIGN (1 << INTERNODE_CACHE_SHIFT) | ||
46 | # define ARCH_MIN_MMSTRUCT_ALIGN (1 << INTERNODE_CACHE_SHIFT) | ||
47 | #else | ||
48 | # define ARCH_MIN_TASKALIGN 16 | ||
49 | # define ARCH_MIN_MMSTRUCT_ALIGN 0 | ||
50 | #endif | ||
51 | |||
52 | /* | ||
53 | * CPU type and hardware bug flags. Kept separately for each CPU. | ||
54 | * Members of this structure are referenced in head.S, so think twice | ||
55 | * before touching them. [mj] | ||
56 | */ | ||
57 | |||
58 | struct cpuinfo_x86 { | ||
59 | __u8 x86; /* CPU family */ | ||
60 | __u8 x86_vendor; /* CPU vendor */ | ||
61 | __u8 x86_model; | ||
62 | __u8 x86_mask; | ||
63 | #ifdef CONFIG_X86_32 | ||
64 | char wp_works_ok; /* It doesn't on 386's */ | ||
65 | |||
66 | /* Problems on some 486Dx4's and old 386's: */ | ||
67 | char hlt_works_ok; | ||
68 | char hard_math; | ||
69 | char rfu; | ||
70 | char fdiv_bug; | ||
71 | char f00f_bug; | ||
72 | char coma_bug; | ||
73 | char pad0; | ||
74 | #else | ||
75 | /* Number of 4K pages in DTLB/ITLB combined(in pages): */ | ||
76 | int x86_tlbsize; | ||
77 | __u8 x86_virt_bits; | ||
78 | __u8 x86_phys_bits; | ||
79 | #endif | ||
80 | /* CPUID returned core id bits: */ | ||
81 | __u8 x86_coreid_bits; | ||
82 | /* Max extended CPUID function supported: */ | ||
83 | __u32 extended_cpuid_level; | ||
84 | /* Maximum supported CPUID level, -1=no CPUID: */ | ||
85 | int cpuid_level; | ||
86 | __u32 x86_capability[NCAPINTS]; | ||
87 | char x86_vendor_id[16]; | ||
88 | char x86_model_id[64]; | ||
89 | /* in KB - valid for CPUS which support this call: */ | ||
90 | int x86_cache_size; | ||
91 | int x86_cache_alignment; /* In bytes */ | ||
92 | int x86_power; | ||
93 | unsigned long loops_per_jiffy; | ||
94 | #ifdef CONFIG_SMP | ||
95 | /* cpus sharing the last level cache: */ | ||
96 | cpumask_t llc_shared_map; | ||
97 | #endif | ||
98 | /* cpuid returned max cores value: */ | ||
99 | u16 x86_max_cores; | ||
100 | u16 apicid; | ||
101 | u16 initial_apicid; | ||
102 | u16 x86_clflush_size; | ||
103 | #ifdef CONFIG_SMP | ||
104 | /* number of cores as seen by the OS: */ | ||
105 | u16 booted_cores; | ||
106 | /* Physical processor id: */ | ||
107 | u16 phys_proc_id; | ||
108 | /* Core id: */ | ||
109 | u16 cpu_core_id; | ||
110 | /* Index into per_cpu list: */ | ||
111 | u16 cpu_index; | ||
112 | #endif | ||
113 | } __attribute__((__aligned__(SMP_CACHE_BYTES))); | ||
114 | |||
115 | #define X86_VENDOR_INTEL 0 | ||
116 | #define X86_VENDOR_CYRIX 1 | ||
117 | #define X86_VENDOR_AMD 2 | ||
118 | #define X86_VENDOR_UMC 3 | ||
119 | #define X86_VENDOR_CENTAUR 5 | ||
120 | #define X86_VENDOR_TRANSMETA 7 | ||
121 | #define X86_VENDOR_NSC 8 | ||
122 | #define X86_VENDOR_NUM 9 | ||
123 | |||
124 | #define X86_VENDOR_UNKNOWN 0xff | ||
125 | |||
126 | /* | ||
127 | * capabilities of CPUs | ||
128 | */ | ||
129 | extern struct cpuinfo_x86 boot_cpu_data; | ||
130 | extern struct cpuinfo_x86 new_cpu_data; | ||
131 | |||
132 | extern struct tss_struct doublefault_tss; | ||
133 | extern __u32 cleared_cpu_caps[NCAPINTS]; | ||
134 | |||
135 | #ifdef CONFIG_SMP | ||
136 | DECLARE_PER_CPU(struct cpuinfo_x86, cpu_info); | ||
137 | #define cpu_data(cpu) per_cpu(cpu_info, cpu) | ||
138 | #define current_cpu_data __get_cpu_var(cpu_info) | ||
139 | #else | ||
140 | #define cpu_data(cpu) boot_cpu_data | ||
141 | #define current_cpu_data boot_cpu_data | ||
142 | #endif | ||
143 | |||
144 | extern const struct seq_operations cpuinfo_op; | ||
145 | |||
146 | static inline int hlt_works(int cpu) | ||
147 | { | ||
148 | #ifdef CONFIG_X86_32 | ||
149 | return cpu_data(cpu).hlt_works_ok; | ||
150 | #else | ||
151 | return 1; | ||
152 | #endif | ||
153 | } | ||
154 | |||
155 | #define cache_line_size() (boot_cpu_data.x86_cache_alignment) | ||
156 | |||
157 | extern void cpu_detect(struct cpuinfo_x86 *c); | ||
158 | |||
159 | extern struct pt_regs *idle_regs(struct pt_regs *); | ||
160 | |||
161 | extern void early_cpu_init(void); | ||
162 | extern void identify_boot_cpu(void); | ||
163 | extern void identify_secondary_cpu(struct cpuinfo_x86 *); | ||
164 | extern void print_cpu_info(struct cpuinfo_x86 *); | ||
165 | extern void init_scattered_cpuid_features(struct cpuinfo_x86 *c); | ||
166 | extern unsigned int init_intel_cacheinfo(struct cpuinfo_x86 *c); | ||
167 | extern unsigned short num_cache_leaves; | ||
168 | |||
169 | extern void detect_extended_topology(struct cpuinfo_x86 *c); | ||
170 | extern void detect_ht(struct cpuinfo_x86 *c); | ||
171 | |||
172 | static inline void native_cpuid(unsigned int *eax, unsigned int *ebx, | ||
173 | unsigned int *ecx, unsigned int *edx) | ||
174 | { | ||
175 | /* ecx is often an input as well as an output. */ | ||
176 | asm("cpuid" | ||
177 | : "=a" (*eax), | ||
178 | "=b" (*ebx), | ||
179 | "=c" (*ecx), | ||
180 | "=d" (*edx) | ||
181 | : "0" (*eax), "2" (*ecx)); | ||
182 | } | ||
183 | |||
184 | static inline void load_cr3(pgd_t *pgdir) | ||
185 | { | ||
186 | write_cr3(__pa(pgdir)); | ||
187 | } | ||
188 | |||
189 | #ifdef CONFIG_X86_32 | ||
190 | /* This is the TSS defined by the hardware. */ | ||
191 | struct x86_hw_tss { | ||
192 | unsigned short back_link, __blh; | ||
193 | unsigned long sp0; | ||
194 | unsigned short ss0, __ss0h; | ||
195 | unsigned long sp1; | ||
196 | /* ss1 caches MSR_IA32_SYSENTER_CS: */ | ||
197 | unsigned short ss1, __ss1h; | ||
198 | unsigned long sp2; | ||
199 | unsigned short ss2, __ss2h; | ||
200 | unsigned long __cr3; | ||
201 | unsigned long ip; | ||
202 | unsigned long flags; | ||
203 | unsigned long ax; | ||
204 | unsigned long cx; | ||
205 | unsigned long dx; | ||
206 | unsigned long bx; | ||
207 | unsigned long sp; | ||
208 | unsigned long bp; | ||
209 | unsigned long si; | ||
210 | unsigned long di; | ||
211 | unsigned short es, __esh; | ||
212 | unsigned short cs, __csh; | ||
213 | unsigned short ss, __ssh; | ||
214 | unsigned short ds, __dsh; | ||
215 | unsigned short fs, __fsh; | ||
216 | unsigned short gs, __gsh; | ||
217 | unsigned short ldt, __ldth; | ||
218 | unsigned short trace; | ||
219 | unsigned short io_bitmap_base; | ||
220 | |||
221 | } __attribute__((packed)); | ||
222 | #else | ||
223 | struct x86_hw_tss { | ||
224 | u32 reserved1; | ||
225 | u64 sp0; | ||
226 | u64 sp1; | ||
227 | u64 sp2; | ||
228 | u64 reserved2; | ||
229 | u64 ist[7]; | ||
230 | u32 reserved3; | ||
231 | u32 reserved4; | ||
232 | u16 reserved5; | ||
233 | u16 io_bitmap_base; | ||
234 | |||
235 | } __attribute__((packed)) ____cacheline_aligned; | ||
236 | #endif | ||
237 | |||
238 | /* | ||
239 | * IO-bitmap sizes: | ||
240 | */ | ||
241 | #define IO_BITMAP_BITS 65536 | ||
242 | #define IO_BITMAP_BYTES (IO_BITMAP_BITS/8) | ||
243 | #define IO_BITMAP_LONGS (IO_BITMAP_BYTES/sizeof(long)) | ||
244 | #define IO_BITMAP_OFFSET offsetof(struct tss_struct, io_bitmap) | ||
245 | #define INVALID_IO_BITMAP_OFFSET 0x8000 | ||
246 | #define INVALID_IO_BITMAP_OFFSET_LAZY 0x9000 | ||
247 | |||
248 | struct tss_struct { | ||
249 | /* | ||
250 | * The hardware state: | ||
251 | */ | ||
252 | struct x86_hw_tss x86_tss; | ||
253 | |||
254 | /* | ||
255 | * The extra 1 is there because the CPU will access an | ||
256 | * additional byte beyond the end of the IO permission | ||
257 | * bitmap. The extra byte must be all 1 bits, and must | ||
258 | * be within the limit. | ||
259 | */ | ||
260 | unsigned long io_bitmap[IO_BITMAP_LONGS + 1]; | ||
261 | /* | ||
262 | * Cache the current maximum and the last task that used the bitmap: | ||
263 | */ | ||
264 | unsigned long io_bitmap_max; | ||
265 | struct thread_struct *io_bitmap_owner; | ||
266 | |||
267 | /* | ||
268 | * .. and then another 0x100 bytes for the emergency kernel stack: | ||
269 | */ | ||
270 | unsigned long stack[64]; | ||
271 | |||
272 | } ____cacheline_aligned; | ||
273 | |||
274 | DECLARE_PER_CPU(struct tss_struct, init_tss); | ||
275 | |||
276 | /* | ||
277 | * Save the original ist values for checking stack pointers during debugging | ||
278 | */ | ||
279 | struct orig_ist { | ||
280 | unsigned long ist[7]; | ||
281 | }; | ||
282 | |||
283 | #define MXCSR_DEFAULT 0x1f80 | ||
284 | |||
285 | struct i387_fsave_struct { | ||
286 | u32 cwd; /* FPU Control Word */ | ||
287 | u32 swd; /* FPU Status Word */ | ||
288 | u32 twd; /* FPU Tag Word */ | ||
289 | u32 fip; /* FPU IP Offset */ | ||
290 | u32 fcs; /* FPU IP Selector */ | ||
291 | u32 foo; /* FPU Operand Pointer Offset */ | ||
292 | u32 fos; /* FPU Operand Pointer Selector */ | ||
293 | |||
294 | /* 8*10 bytes for each FP-reg = 80 bytes: */ | ||
295 | u32 st_space[20]; | ||
296 | |||
297 | /* Software status information [not touched by FSAVE ]: */ | ||
298 | u32 status; | ||
299 | }; | ||
300 | |||
301 | struct i387_fxsave_struct { | ||
302 | u16 cwd; /* Control Word */ | ||
303 | u16 swd; /* Status Word */ | ||
304 | u16 twd; /* Tag Word */ | ||
305 | u16 fop; /* Last Instruction Opcode */ | ||
306 | union { | ||
307 | struct { | ||
308 | u64 rip; /* Instruction Pointer */ | ||
309 | u64 rdp; /* Data Pointer */ | ||
310 | }; | ||
311 | struct { | ||
312 | u32 fip; /* FPU IP Offset */ | ||
313 | u32 fcs; /* FPU IP Selector */ | ||
314 | u32 foo; /* FPU Operand Offset */ | ||
315 | u32 fos; /* FPU Operand Selector */ | ||
316 | }; | ||
317 | }; | ||
318 | u32 mxcsr; /* MXCSR Register State */ | ||
319 | u32 mxcsr_mask; /* MXCSR Mask */ | ||
320 | |||
321 | /* 8*16 bytes for each FP-reg = 128 bytes: */ | ||
322 | u32 st_space[32]; | ||
323 | |||
324 | /* 16*16 bytes for each XMM-reg = 256 bytes: */ | ||
325 | u32 xmm_space[64]; | ||
326 | |||
327 | u32 padding[12]; | ||
328 | |||
329 | union { | ||
330 | u32 padding1[12]; | ||
331 | u32 sw_reserved[12]; | ||
332 | }; | ||
333 | |||
334 | } __attribute__((aligned(16))); | ||
335 | |||
336 | struct i387_soft_struct { | ||
337 | u32 cwd; | ||
338 | u32 swd; | ||
339 | u32 twd; | ||
340 | u32 fip; | ||
341 | u32 fcs; | ||
342 | u32 foo; | ||
343 | u32 fos; | ||
344 | /* 8*10 bytes for each FP-reg = 80 bytes: */ | ||
345 | u32 st_space[20]; | ||
346 | u8 ftop; | ||
347 | u8 changed; | ||
348 | u8 lookahead; | ||
349 | u8 no_update; | ||
350 | u8 rm; | ||
351 | u8 alimit; | ||
352 | struct info *info; | ||
353 | u32 entry_eip; | ||
354 | }; | ||
355 | |||
356 | struct xsave_hdr_struct { | ||
357 | u64 xstate_bv; | ||
358 | u64 reserved1[2]; | ||
359 | u64 reserved2[5]; | ||
360 | } __attribute__((packed)); | ||
361 | |||
362 | struct xsave_struct { | ||
363 | struct i387_fxsave_struct i387; | ||
364 | struct xsave_hdr_struct xsave_hdr; | ||
365 | /* new processor state extensions will go here */ | ||
366 | } __attribute__ ((packed, aligned (64))); | ||
367 | |||
368 | union thread_xstate { | ||
369 | struct i387_fsave_struct fsave; | ||
370 | struct i387_fxsave_struct fxsave; | ||
371 | struct i387_soft_struct soft; | ||
372 | struct xsave_struct xsave; | ||
373 | }; | ||
374 | |||
375 | #ifdef CONFIG_X86_64 | ||
376 | DECLARE_PER_CPU(struct orig_ist, orig_ist); | ||
377 | #endif | ||
378 | |||
379 | extern void print_cpu_info(struct cpuinfo_x86 *); | ||
380 | extern unsigned int xstate_size; | ||
381 | extern void free_thread_xstate(struct task_struct *); | ||
382 | extern struct kmem_cache *task_xstate_cachep; | ||
383 | extern void init_scattered_cpuid_features(struct cpuinfo_x86 *c); | ||
384 | extern unsigned int init_intel_cacheinfo(struct cpuinfo_x86 *c); | ||
385 | extern unsigned short num_cache_leaves; | ||
386 | |||
387 | struct thread_struct { | ||
388 | /* Cached TLS descriptors: */ | ||
389 | struct desc_struct tls_array[GDT_ENTRY_TLS_ENTRIES]; | ||
390 | unsigned long sp0; | ||
391 | unsigned long sp; | ||
392 | #ifdef CONFIG_X86_32 | ||
393 | unsigned long sysenter_cs; | ||
394 | #else | ||
395 | unsigned long usersp; /* Copy from PDA */ | ||
396 | unsigned short es; | ||
397 | unsigned short ds; | ||
398 | unsigned short fsindex; | ||
399 | unsigned short gsindex; | ||
400 | #endif | ||
401 | unsigned long ip; | ||
402 | unsigned long fs; | ||
403 | unsigned long gs; | ||
404 | /* Hardware debugging registers: */ | ||
405 | unsigned long debugreg0; | ||
406 | unsigned long debugreg1; | ||
407 | unsigned long debugreg2; | ||
408 | unsigned long debugreg3; | ||
409 | unsigned long debugreg6; | ||
410 | unsigned long debugreg7; | ||
411 | /* Fault info: */ | ||
412 | unsigned long cr2; | ||
413 | unsigned long trap_no; | ||
414 | unsigned long error_code; | ||
415 | /* floating point and extended processor state */ | ||
416 | union thread_xstate *xstate; | ||
417 | #ifdef CONFIG_X86_32 | ||
418 | /* Virtual 86 mode info */ | ||
419 | struct vm86_struct __user *vm86_info; | ||
420 | unsigned long screen_bitmap; | ||
421 | unsigned long v86flags; | ||
422 | unsigned long v86mask; | ||
423 | unsigned long saved_sp0; | ||
424 | unsigned int saved_fs; | ||
425 | unsigned int saved_gs; | ||
426 | #endif | ||
427 | /* IO permissions: */ | ||
428 | unsigned long *io_bitmap_ptr; | ||
429 | unsigned long iopl; | ||
430 | /* Max allowed port in the bitmap, in bytes: */ | ||
431 | unsigned io_bitmap_max; | ||
432 | /* MSR_IA32_DEBUGCTLMSR value to switch in if TIF_DEBUGCTLMSR is set. */ | ||
433 | unsigned long debugctlmsr; | ||
434 | #ifdef CONFIG_X86_DS | ||
435 | /* Debug Store context; see include/asm-x86/ds.h; goes into MSR_IA32_DS_AREA */ | ||
436 | struct ds_context *ds_ctx; | ||
437 | #endif /* CONFIG_X86_DS */ | ||
438 | #ifdef CONFIG_X86_PTRACE_BTS | ||
439 | /* the signal to send on a bts buffer overflow */ | ||
440 | unsigned int bts_ovfl_signal; | ||
441 | #endif /* CONFIG_X86_PTRACE_BTS */ | ||
442 | }; | ||
443 | |||
444 | static inline unsigned long native_get_debugreg(int regno) | ||
445 | { | ||
446 | unsigned long val = 0; /* Damn you, gcc! */ | ||
447 | |||
448 | switch (regno) { | ||
449 | case 0: | ||
450 | asm("mov %%db0, %0" :"=r" (val)); | ||
451 | break; | ||
452 | case 1: | ||
453 | asm("mov %%db1, %0" :"=r" (val)); | ||
454 | break; | ||
455 | case 2: | ||
456 | asm("mov %%db2, %0" :"=r" (val)); | ||
457 | break; | ||
458 | case 3: | ||
459 | asm("mov %%db3, %0" :"=r" (val)); | ||
460 | break; | ||
461 | case 6: | ||
462 | asm("mov %%db6, %0" :"=r" (val)); | ||
463 | break; | ||
464 | case 7: | ||
465 | asm("mov %%db7, %0" :"=r" (val)); | ||
466 | break; | ||
467 | default: | ||
468 | BUG(); | ||
469 | } | ||
470 | return val; | ||
471 | } | ||
472 | |||
473 | static inline void native_set_debugreg(int regno, unsigned long value) | ||
474 | { | ||
475 | switch (regno) { | ||
476 | case 0: | ||
477 | asm("mov %0, %%db0" ::"r" (value)); | ||
478 | break; | ||
479 | case 1: | ||
480 | asm("mov %0, %%db1" ::"r" (value)); | ||
481 | break; | ||
482 | case 2: | ||
483 | asm("mov %0, %%db2" ::"r" (value)); | ||
484 | break; | ||
485 | case 3: | ||
486 | asm("mov %0, %%db3" ::"r" (value)); | ||
487 | break; | ||
488 | case 6: | ||
489 | asm("mov %0, %%db6" ::"r" (value)); | ||
490 | break; | ||
491 | case 7: | ||
492 | asm("mov %0, %%db7" ::"r" (value)); | ||
493 | break; | ||
494 | default: | ||
495 | BUG(); | ||
496 | } | ||
497 | } | ||
498 | |||
499 | /* | ||
500 | * Set IOPL bits in EFLAGS from given mask | ||
501 | */ | ||
502 | static inline void native_set_iopl_mask(unsigned mask) | ||
503 | { | ||
504 | #ifdef CONFIG_X86_32 | ||
505 | unsigned int reg; | ||
506 | |||
507 | asm volatile ("pushfl;" | ||
508 | "popl %0;" | ||
509 | "andl %1, %0;" | ||
510 | "orl %2, %0;" | ||
511 | "pushl %0;" | ||
512 | "popfl" | ||
513 | : "=&r" (reg) | ||
514 | : "i" (~X86_EFLAGS_IOPL), "r" (mask)); | ||
515 | #endif | ||
516 | } | ||
517 | |||
518 | static inline void | ||
519 | native_load_sp0(struct tss_struct *tss, struct thread_struct *thread) | ||
520 | { | ||
521 | tss->x86_tss.sp0 = thread->sp0; | ||
522 | #ifdef CONFIG_X86_32 | ||
523 | /* Only happens when SEP is enabled, no need to test "SEP"arately: */ | ||
524 | if (unlikely(tss->x86_tss.ss1 != thread->sysenter_cs)) { | ||
525 | tss->x86_tss.ss1 = thread->sysenter_cs; | ||
526 | wrmsr(MSR_IA32_SYSENTER_CS, thread->sysenter_cs, 0); | ||
527 | } | ||
528 | #endif | ||
529 | } | ||
530 | |||
531 | static inline void native_swapgs(void) | ||
532 | { | ||
533 | #ifdef CONFIG_X86_64 | ||
534 | asm volatile("swapgs" ::: "memory"); | ||
535 | #endif | ||
536 | } | ||
537 | |||
538 | #ifdef CONFIG_PARAVIRT | ||
539 | #include <asm/paravirt.h> | ||
540 | #else | ||
541 | #define __cpuid native_cpuid | ||
542 | #define paravirt_enabled() 0 | ||
543 | |||
544 | /* | ||
545 | * These special macros can be used to get or set a debugging register | ||
546 | */ | ||
547 | #define get_debugreg(var, register) \ | ||
548 | (var) = native_get_debugreg(register) | ||
549 | #define set_debugreg(value, register) \ | ||
550 | native_set_debugreg(register, value) | ||
551 | |||
552 | static inline void load_sp0(struct tss_struct *tss, | ||
553 | struct thread_struct *thread) | ||
554 | { | ||
555 | native_load_sp0(tss, thread); | ||
556 | } | ||
557 | |||
558 | #define set_iopl_mask native_set_iopl_mask | ||
559 | #endif /* CONFIG_PARAVIRT */ | ||
560 | |||
561 | /* | ||
562 | * Save the cr4 feature set we're using (ie | ||
563 | * Pentium 4MB enable and PPro Global page | ||
564 | * enable), so that any CPU's that boot up | ||
565 | * after us can get the correct flags. | ||
566 | */ | ||
567 | extern unsigned long mmu_cr4_features; | ||
568 | |||
569 | static inline void set_in_cr4(unsigned long mask) | ||
570 | { | ||
571 | unsigned cr4; | ||
572 | |||
573 | mmu_cr4_features |= mask; | ||
574 | cr4 = read_cr4(); | ||
575 | cr4 |= mask; | ||
576 | write_cr4(cr4); | ||
577 | } | ||
578 | |||
579 | static inline void clear_in_cr4(unsigned long mask) | ||
580 | { | ||
581 | unsigned cr4; | ||
582 | |||
583 | mmu_cr4_features &= ~mask; | ||
584 | cr4 = read_cr4(); | ||
585 | cr4 &= ~mask; | ||
586 | write_cr4(cr4); | ||
587 | } | ||
588 | |||
589 | typedef struct { | ||
590 | unsigned long seg; | ||
591 | } mm_segment_t; | ||
592 | |||
593 | |||
594 | /* | ||
595 | * create a kernel thread without removing it from tasklists | ||
596 | */ | ||
597 | extern int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags); | ||
598 | |||
599 | /* Free all resources held by a thread. */ | ||
600 | extern void release_thread(struct task_struct *); | ||
601 | |||
602 | /* Prepare to copy thread state - unlazy all lazy state */ | ||
603 | extern void prepare_to_copy(struct task_struct *tsk); | ||
604 | |||
605 | unsigned long get_wchan(struct task_struct *p); | ||
606 | |||
607 | /* | ||
608 | * Generic CPUID function | ||
609 | * clear %ecx since some cpus (Cyrix MII) do not set or clear %ecx | ||
610 | * resulting in stale register contents being returned. | ||
611 | */ | ||
612 | static inline void cpuid(unsigned int op, | ||
613 | unsigned int *eax, unsigned int *ebx, | ||
614 | unsigned int *ecx, unsigned int *edx) | ||
615 | { | ||
616 | *eax = op; | ||
617 | *ecx = 0; | ||
618 | __cpuid(eax, ebx, ecx, edx); | ||
619 | } | ||
620 | |||
621 | /* Some CPUID calls want 'count' to be placed in ecx */ | ||
622 | static inline void cpuid_count(unsigned int op, int count, | ||
623 | unsigned int *eax, unsigned int *ebx, | ||
624 | unsigned int *ecx, unsigned int *edx) | ||
625 | { | ||
626 | *eax = op; | ||
627 | *ecx = count; | ||
628 | __cpuid(eax, ebx, ecx, edx); | ||
629 | } | ||
630 | |||
631 | /* | ||
632 | * CPUID functions returning a single datum | ||
633 | */ | ||
634 | static inline unsigned int cpuid_eax(unsigned int op) | ||
635 | { | ||
636 | unsigned int eax, ebx, ecx, edx; | ||
637 | |||
638 | cpuid(op, &eax, &ebx, &ecx, &edx); | ||
639 | |||
640 | return eax; | ||
641 | } | ||
642 | |||
643 | static inline unsigned int cpuid_ebx(unsigned int op) | ||
644 | { | ||
645 | unsigned int eax, ebx, ecx, edx; | ||
646 | |||
647 | cpuid(op, &eax, &ebx, &ecx, &edx); | ||
648 | |||
649 | return ebx; | ||
650 | } | ||
651 | |||
652 | static inline unsigned int cpuid_ecx(unsigned int op) | ||
653 | { | ||
654 | unsigned int eax, ebx, ecx, edx; | ||
655 | |||
656 | cpuid(op, &eax, &ebx, &ecx, &edx); | ||
657 | |||
658 | return ecx; | ||
659 | } | ||
660 | |||
661 | static inline unsigned int cpuid_edx(unsigned int op) | ||
662 | { | ||
663 | unsigned int eax, ebx, ecx, edx; | ||
664 | |||
665 | cpuid(op, &eax, &ebx, &ecx, &edx); | ||
666 | |||
667 | return edx; | ||
668 | } | ||
669 | |||
670 | /* REP NOP (PAUSE) is a good thing to insert into busy-wait loops. */ | ||
671 | static inline void rep_nop(void) | ||
672 | { | ||
673 | asm volatile("rep; nop" ::: "memory"); | ||
674 | } | ||
675 | |||
676 | static inline void cpu_relax(void) | ||
677 | { | ||
678 | rep_nop(); | ||
679 | } | ||
680 | |||
681 | /* Stop speculative execution: */ | ||
682 | static inline void sync_core(void) | ||
683 | { | ||
684 | int tmp; | ||
685 | |||
686 | asm volatile("cpuid" : "=a" (tmp) : "0" (1) | ||
687 | : "ebx", "ecx", "edx", "memory"); | ||
688 | } | ||
689 | |||
690 | static inline void __monitor(const void *eax, unsigned long ecx, | ||
691 | unsigned long edx) | ||
692 | { | ||
693 | /* "monitor %eax, %ecx, %edx;" */ | ||
694 | asm volatile(".byte 0x0f, 0x01, 0xc8;" | ||
695 | :: "a" (eax), "c" (ecx), "d"(edx)); | ||
696 | } | ||
697 | |||
698 | static inline void __mwait(unsigned long eax, unsigned long ecx) | ||
699 | { | ||
700 | /* "mwait %eax, %ecx;" */ | ||
701 | asm volatile(".byte 0x0f, 0x01, 0xc9;" | ||
702 | :: "a" (eax), "c" (ecx)); | ||
703 | } | ||
704 | |||
705 | static inline void __sti_mwait(unsigned long eax, unsigned long ecx) | ||
706 | { | ||
707 | trace_hardirqs_on(); | ||
708 | /* "mwait %eax, %ecx;" */ | ||
709 | asm volatile("sti; .byte 0x0f, 0x01, 0xc9;" | ||
710 | :: "a" (eax), "c" (ecx)); | ||
711 | } | ||
712 | |||
713 | extern void mwait_idle_with_hints(unsigned long eax, unsigned long ecx); | ||
714 | |||
715 | extern void select_idle_routine(const struct cpuinfo_x86 *c); | ||
716 | |||
717 | extern unsigned long boot_option_idle_override; | ||
718 | extern unsigned long idle_halt; | ||
719 | extern unsigned long idle_nomwait; | ||
720 | |||
721 | /* | ||
722 | * on systems with caches, caches must be flashed as the absolute | ||
723 | * last instruction before going into a suspended halt. Otherwise, | ||
724 | * dirty data can linger in the cache and become stale on resume, | ||
725 | * leading to strange errors. | ||
726 | * | ||
727 | * perform a variety of operations to guarantee that the compiler | ||
728 | * will not reorder instructions. wbinvd itself is serializing | ||
729 | * so the processor will not reorder. | ||
730 | * | ||
731 | * Systems without cache can just go into halt. | ||
732 | */ | ||
733 | static inline void wbinvd_halt(void) | ||
734 | { | ||
735 | mb(); | ||
736 | /* check for clflush to determine if wbinvd is legal */ | ||
737 | if (cpu_has_clflush) | ||
738 | asm volatile("cli; wbinvd; 1: hlt; jmp 1b" : : : "memory"); | ||
739 | else | ||
740 | while (1) | ||
741 | halt(); | ||
742 | } | ||
743 | |||
744 | extern void enable_sep_cpu(void); | ||
745 | extern int sysenter_setup(void); | ||
746 | |||
747 | /* Defined in head.S */ | ||
748 | extern struct desc_ptr early_gdt_descr; | ||
749 | |||
750 | extern void cpu_set_gdt(int); | ||
751 | extern void switch_to_new_gdt(void); | ||
752 | extern void cpu_init(void); | ||
753 | extern void init_gdt(int cpu); | ||
754 | |||
755 | static inline void update_debugctlmsr(unsigned long debugctlmsr) | ||
756 | { | ||
757 | #ifndef CONFIG_X86_DEBUGCTLMSR | ||
758 | if (boot_cpu_data.x86 < 6) | ||
759 | return; | ||
760 | #endif | ||
761 | wrmsrl(MSR_IA32_DEBUGCTLMSR, debugctlmsr); | ||
762 | } | ||
763 | |||
764 | /* | ||
765 | * from system description table in BIOS. Mostly for MCA use, but | ||
766 | * others may find it useful: | ||
767 | */ | ||
768 | extern unsigned int machine_id; | ||
769 | extern unsigned int machine_submodel_id; | ||
770 | extern unsigned int BIOS_revision; | ||
771 | |||
772 | /* Boot loader type from the setup header: */ | ||
773 | extern int bootloader_type; | ||
774 | |||
775 | extern char ignore_fpu_irq; | ||
776 | |||
777 | #define HAVE_ARCH_PICK_MMAP_LAYOUT 1 | ||
778 | #define ARCH_HAS_PREFETCHW | ||
779 | #define ARCH_HAS_SPINLOCK_PREFETCH | ||
780 | |||
781 | #ifdef CONFIG_X86_32 | ||
782 | # define BASE_PREFETCH ASM_NOP4 | ||
783 | # define ARCH_HAS_PREFETCH | ||
784 | #else | ||
785 | # define BASE_PREFETCH "prefetcht0 (%1)" | ||
786 | #endif | ||
787 | |||
788 | /* | ||
789 | * Prefetch instructions for Pentium III (+) and AMD Athlon (+) | ||
790 | * | ||
791 | * It's not worth to care about 3dnow prefetches for the K6 | ||
792 | * because they are microcoded there and very slow. | ||
793 | */ | ||
794 | static inline void prefetch(const void *x) | ||
795 | { | ||
796 | alternative_input(BASE_PREFETCH, | ||
797 | "prefetchnta (%1)", | ||
798 | X86_FEATURE_XMM, | ||
799 | "r" (x)); | ||
800 | } | ||
801 | |||
802 | /* | ||
803 | * 3dnow prefetch to get an exclusive cache line. | ||
804 | * Useful for spinlocks to avoid one state transition in the | ||
805 | * cache coherency protocol: | ||
806 | */ | ||
807 | static inline void prefetchw(const void *x) | ||
808 | { | ||
809 | alternative_input(BASE_PREFETCH, | ||
810 | "prefetchw (%1)", | ||
811 | X86_FEATURE_3DNOW, | ||
812 | "r" (x)); | ||
813 | } | ||
814 | |||
815 | static inline void spin_lock_prefetch(const void *x) | ||
816 | { | ||
817 | prefetchw(x); | ||
818 | } | ||
819 | |||
820 | #ifdef CONFIG_X86_32 | ||
821 | /* | ||
822 | * User space process size: 3GB (default). | ||
823 | */ | ||
824 | #define TASK_SIZE PAGE_OFFSET | ||
825 | #define STACK_TOP TASK_SIZE | ||
826 | #define STACK_TOP_MAX STACK_TOP | ||
827 | |||
828 | #define INIT_THREAD { \ | ||
829 | .sp0 = sizeof(init_stack) + (long)&init_stack, \ | ||
830 | .vm86_info = NULL, \ | ||
831 | .sysenter_cs = __KERNEL_CS, \ | ||
832 | .io_bitmap_ptr = NULL, \ | ||
833 | .fs = __KERNEL_PERCPU, \ | ||
834 | } | ||
835 | |||
836 | /* | ||
837 | * Note that the .io_bitmap member must be extra-big. This is because | ||
838 | * the CPU will access an additional byte beyond the end of the IO | ||
839 | * permission bitmap. The extra byte must be all 1 bits, and must | ||
840 | * be within the limit. | ||
841 | */ | ||
842 | #define INIT_TSS { \ | ||
843 | .x86_tss = { \ | ||
844 | .sp0 = sizeof(init_stack) + (long)&init_stack, \ | ||
845 | .ss0 = __KERNEL_DS, \ | ||
846 | .ss1 = __KERNEL_CS, \ | ||
847 | .io_bitmap_base = INVALID_IO_BITMAP_OFFSET, \ | ||
848 | }, \ | ||
849 | .io_bitmap = { [0 ... IO_BITMAP_LONGS] = ~0 }, \ | ||
850 | } | ||
851 | |||
852 | extern unsigned long thread_saved_pc(struct task_struct *tsk); | ||
853 | |||
854 | #define THREAD_SIZE_LONGS (THREAD_SIZE/sizeof(unsigned long)) | ||
855 | #define KSTK_TOP(info) \ | ||
856 | ({ \ | ||
857 | unsigned long *__ptr = (unsigned long *)(info); \ | ||
858 | (unsigned long)(&__ptr[THREAD_SIZE_LONGS]); \ | ||
859 | }) | ||
860 | |||
861 | /* | ||
862 | * The below -8 is to reserve 8 bytes on top of the ring0 stack. | ||
863 | * This is necessary to guarantee that the entire "struct pt_regs" | ||
864 | * is accessable even if the CPU haven't stored the SS/ESP registers | ||
865 | * on the stack (interrupt gate does not save these registers | ||
866 | * when switching to the same priv ring). | ||
867 | * Therefore beware: accessing the ss/esp fields of the | ||
868 | * "struct pt_regs" is possible, but they may contain the | ||
869 | * completely wrong values. | ||
870 | */ | ||
871 | #define task_pt_regs(task) \ | ||
872 | ({ \ | ||
873 | struct pt_regs *__regs__; \ | ||
874 | __regs__ = (struct pt_regs *)(KSTK_TOP(task_stack_page(task))-8); \ | ||
875 | __regs__ - 1; \ | ||
876 | }) | ||
877 | |||
878 | #define KSTK_ESP(task) (task_pt_regs(task)->sp) | ||
879 | |||
880 | #else | ||
881 | /* | ||
882 | * User space process size. 47bits minus one guard page. | ||
883 | */ | ||
884 | #define TASK_SIZE64 ((1UL << 47) - PAGE_SIZE) | ||
885 | |||
886 | /* This decides where the kernel will search for a free chunk of vm | ||
887 | * space during mmap's. | ||
888 | */ | ||
889 | #define IA32_PAGE_OFFSET ((current->personality & ADDR_LIMIT_3GB) ? \ | ||
890 | 0xc0000000 : 0xFFFFe000) | ||
891 | |||
892 | #define TASK_SIZE (test_thread_flag(TIF_IA32) ? \ | ||
893 | IA32_PAGE_OFFSET : TASK_SIZE64) | ||
894 | #define TASK_SIZE_OF(child) ((test_tsk_thread_flag(child, TIF_IA32)) ? \ | ||
895 | IA32_PAGE_OFFSET : TASK_SIZE64) | ||
896 | |||
897 | #define STACK_TOP TASK_SIZE | ||
898 | #define STACK_TOP_MAX TASK_SIZE64 | ||
899 | |||
900 | #define INIT_THREAD { \ | ||
901 | .sp0 = (unsigned long)&init_stack + sizeof(init_stack) \ | ||
902 | } | ||
903 | |||
904 | #define INIT_TSS { \ | ||
905 | .x86_tss.sp0 = (unsigned long)&init_stack + sizeof(init_stack) \ | ||
906 | } | ||
907 | |||
908 | /* | ||
909 | * Return saved PC of a blocked thread. | ||
910 | * What is this good for? it will be always the scheduler or ret_from_fork. | ||
911 | */ | ||
912 | #define thread_saved_pc(t) (*(unsigned long *)((t)->thread.sp - 8)) | ||
913 | |||
914 | #define task_pt_regs(tsk) ((struct pt_regs *)(tsk)->thread.sp0 - 1) | ||
915 | #define KSTK_ESP(tsk) -1 /* sorry. doesn't work for syscall. */ | ||
916 | #endif /* CONFIG_X86_64 */ | ||
917 | |||
918 | extern void start_thread(struct pt_regs *regs, unsigned long new_ip, | ||
919 | unsigned long new_sp); | ||
920 | |||
921 | /* | ||
922 | * This decides where the kernel will search for a free chunk of vm | ||
923 | * space during mmap's. | ||
924 | */ | ||
925 | #define TASK_UNMAPPED_BASE (PAGE_ALIGN(TASK_SIZE / 3)) | ||
926 | |||
927 | #define KSTK_EIP(task) (task_pt_regs(task)->ip) | ||
928 | |||
929 | /* Get/set a process' ability to use the timestamp counter instruction */ | ||
930 | #define GET_TSC_CTL(adr) get_tsc_mode((adr)) | ||
931 | #define SET_TSC_CTL(val) set_tsc_mode((val)) | ||
932 | |||
933 | extern int get_tsc_mode(unsigned long adr); | ||
934 | extern int set_tsc_mode(unsigned int val); | ||
935 | |||
936 | #endif /* _ASM_X86_PROCESSOR_H */ | ||
diff --git a/arch/x86/include/asm/proto.h b/arch/x86/include/asm/proto.h new file mode 100644 index 000000000000..d6a22f92ba77 --- /dev/null +++ b/arch/x86/include/asm/proto.h | |||
@@ -0,0 +1,32 @@ | |||
1 | #ifndef _ASM_X86_PROTO_H | ||
2 | #define _ASM_X86_PROTO_H | ||
3 | |||
4 | #include <asm/ldt.h> | ||
5 | |||
6 | /* misc architecture specific prototypes */ | ||
7 | |||
8 | extern void early_idt_handler(void); | ||
9 | |||
10 | extern void system_call(void); | ||
11 | extern void syscall_init(void); | ||
12 | |||
13 | extern void ia32_syscall(void); | ||
14 | extern void ia32_cstar_target(void); | ||
15 | extern void ia32_sysenter_target(void); | ||
16 | |||
17 | extern void syscall32_cpu_init(void); | ||
18 | |||
19 | extern void check_efer(void); | ||
20 | |||
21 | #ifdef CONFIG_X86_BIOS_REBOOT | ||
22 | extern int reboot_force; | ||
23 | #else | ||
24 | static const int reboot_force = 0; | ||
25 | #endif | ||
26 | |||
27 | long do_arch_prctl(struct task_struct *task, int code, unsigned long addr); | ||
28 | |||
29 | #define round_up(x, y) (((x) + (y) - 1) & ~((y) - 1)) | ||
30 | #define round_down(x, y) ((x) & ~((y) - 1)) | ||
31 | |||
32 | #endif /* _ASM_X86_PROTO_H */ | ||
diff --git a/arch/x86/include/asm/ptrace-abi.h b/arch/x86/include/asm/ptrace-abi.h new file mode 100644 index 000000000000..25f1bb8fc626 --- /dev/null +++ b/arch/x86/include/asm/ptrace-abi.h | |||
@@ -0,0 +1,145 @@ | |||
1 | #ifndef _ASM_X86_PTRACE_ABI_H | ||
2 | #define _ASM_X86_PTRACE_ABI_H | ||
3 | |||
4 | #ifdef __i386__ | ||
5 | |||
6 | #define EBX 0 | ||
7 | #define ECX 1 | ||
8 | #define EDX 2 | ||
9 | #define ESI 3 | ||
10 | #define EDI 4 | ||
11 | #define EBP 5 | ||
12 | #define EAX 6 | ||
13 | #define DS 7 | ||
14 | #define ES 8 | ||
15 | #define FS 9 | ||
16 | #define GS 10 | ||
17 | #define ORIG_EAX 11 | ||
18 | #define EIP 12 | ||
19 | #define CS 13 | ||
20 | #define EFL 14 | ||
21 | #define UESP 15 | ||
22 | #define SS 16 | ||
23 | #define FRAME_SIZE 17 | ||
24 | |||
25 | #else /* __i386__ */ | ||
26 | |||
27 | #if defined(__ASSEMBLY__) || defined(__FRAME_OFFSETS) | ||
28 | #define R15 0 | ||
29 | #define R14 8 | ||
30 | #define R13 16 | ||
31 | #define R12 24 | ||
32 | #define RBP 32 | ||
33 | #define RBX 40 | ||
34 | /* arguments: interrupts/non tracing syscalls only save upto here*/ | ||
35 | #define R11 48 | ||
36 | #define R10 56 | ||
37 | #define R9 64 | ||
38 | #define R8 72 | ||
39 | #define RAX 80 | ||
40 | #define RCX 88 | ||
41 | #define RDX 96 | ||
42 | #define RSI 104 | ||
43 | #define RDI 112 | ||
44 | #define ORIG_RAX 120 /* = ERROR */ | ||
45 | /* end of arguments */ | ||
46 | /* cpu exception frame or undefined in case of fast syscall. */ | ||
47 | #define RIP 128 | ||
48 | #define CS 136 | ||
49 | #define EFLAGS 144 | ||
50 | #define RSP 152 | ||
51 | #define SS 160 | ||
52 | #define ARGOFFSET R11 | ||
53 | #endif /* __ASSEMBLY__ */ | ||
54 | |||
55 | /* top of stack page */ | ||
56 | #define FRAME_SIZE 168 | ||
57 | |||
58 | #endif /* !__i386__ */ | ||
59 | |||
60 | /* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */ | ||
61 | #define PTRACE_GETREGS 12 | ||
62 | #define PTRACE_SETREGS 13 | ||
63 | #define PTRACE_GETFPREGS 14 | ||
64 | #define PTRACE_SETFPREGS 15 | ||
65 | #define PTRACE_GETFPXREGS 18 | ||
66 | #define PTRACE_SETFPXREGS 19 | ||
67 | |||
68 | #define PTRACE_OLDSETOPTIONS 21 | ||
69 | |||
70 | /* only useful for access 32bit programs / kernels */ | ||
71 | #define PTRACE_GET_THREAD_AREA 25 | ||
72 | #define PTRACE_SET_THREAD_AREA 26 | ||
73 | |||
74 | #ifdef __x86_64__ | ||
75 | # define PTRACE_ARCH_PRCTL 30 | ||
76 | #endif | ||
77 | |||
78 | #define PTRACE_SYSEMU 31 | ||
79 | #define PTRACE_SYSEMU_SINGLESTEP 32 | ||
80 | |||
81 | #define PTRACE_SINGLEBLOCK 33 /* resume execution until next branch */ | ||
82 | |||
83 | #ifdef CONFIG_X86_PTRACE_BTS | ||
84 | |||
85 | #ifndef __ASSEMBLY__ | ||
86 | #include <asm/types.h> | ||
87 | |||
88 | /* configuration/status structure used in PTRACE_BTS_CONFIG and | ||
89 | PTRACE_BTS_STATUS commands. | ||
90 | */ | ||
91 | struct ptrace_bts_config { | ||
92 | /* requested or actual size of BTS buffer in bytes */ | ||
93 | __u32 size; | ||
94 | /* bitmask of below flags */ | ||
95 | __u32 flags; | ||
96 | /* buffer overflow signal */ | ||
97 | __u32 signal; | ||
98 | /* actual size of bts_struct in bytes */ | ||
99 | __u32 bts_size; | ||
100 | }; | ||
101 | #endif /* __ASSEMBLY__ */ | ||
102 | |||
103 | #define PTRACE_BTS_O_TRACE 0x1 /* branch trace */ | ||
104 | #define PTRACE_BTS_O_SCHED 0x2 /* scheduling events w/ jiffies */ | ||
105 | #define PTRACE_BTS_O_SIGNAL 0x4 /* send SIG<signal> on buffer overflow | ||
106 | instead of wrapping around */ | ||
107 | #define PTRACE_BTS_O_ALLOC 0x8 /* (re)allocate buffer */ | ||
108 | |||
109 | #define PTRACE_BTS_CONFIG 40 | ||
110 | /* Configure branch trace recording. | ||
111 | ADDR points to a struct ptrace_bts_config. | ||
112 | DATA gives the size of that buffer. | ||
113 | A new buffer is allocated, if requested in the flags. | ||
114 | An overflow signal may only be requested for new buffers. | ||
115 | Returns the number of bytes read. | ||
116 | */ | ||
117 | #define PTRACE_BTS_STATUS 41 | ||
118 | /* Return the current configuration in a struct ptrace_bts_config | ||
119 | pointed to by ADDR; DATA gives the size of that buffer. | ||
120 | Returns the number of bytes written. | ||
121 | */ | ||
122 | #define PTRACE_BTS_SIZE 42 | ||
123 | /* Return the number of available BTS records for draining. | ||
124 | DATA and ADDR are ignored. | ||
125 | */ | ||
126 | #define PTRACE_BTS_GET 43 | ||
127 | /* Get a single BTS record. | ||
128 | DATA defines the index into the BTS array, where 0 is the newest | ||
129 | entry, and higher indices refer to older entries. | ||
130 | ADDR is pointing to struct bts_struct (see asm/ds.h). | ||
131 | */ | ||
132 | #define PTRACE_BTS_CLEAR 44 | ||
133 | /* Clear the BTS buffer. | ||
134 | DATA and ADDR are ignored. | ||
135 | */ | ||
136 | #define PTRACE_BTS_DRAIN 45 | ||
137 | /* Read all available BTS records and clear the buffer. | ||
138 | ADDR points to an array of struct bts_struct. | ||
139 | DATA gives the size of that buffer. | ||
140 | BTS records are read from oldest to newest. | ||
141 | Returns number of BTS records drained. | ||
142 | */ | ||
143 | #endif /* CONFIG_X86_PTRACE_BTS */ | ||
144 | |||
145 | #endif /* _ASM_X86_PTRACE_ABI_H */ | ||
diff --git a/arch/x86/include/asm/ptrace.h b/arch/x86/include/asm/ptrace.h new file mode 100644 index 000000000000..d1531c8480b7 --- /dev/null +++ b/arch/x86/include/asm/ptrace.h | |||
@@ -0,0 +1,280 @@ | |||
1 | #ifndef _ASM_X86_PTRACE_H | ||
2 | #define _ASM_X86_PTRACE_H | ||
3 | |||
4 | #include <linux/compiler.h> /* For __user */ | ||
5 | #include <asm/ptrace-abi.h> | ||
6 | #include <asm/processor-flags.h> | ||
7 | |||
8 | #ifdef __KERNEL__ | ||
9 | #include <asm/ds.h> /* the DS BTS struct is used for ptrace too */ | ||
10 | #include <asm/segment.h> | ||
11 | #endif | ||
12 | |||
13 | #ifndef __ASSEMBLY__ | ||
14 | |||
15 | #ifdef __i386__ | ||
16 | /* this struct defines the way the registers are stored on the | ||
17 | stack during a system call. */ | ||
18 | |||
19 | #ifndef __KERNEL__ | ||
20 | |||
21 | struct pt_regs { | ||
22 | long ebx; | ||
23 | long ecx; | ||
24 | long edx; | ||
25 | long esi; | ||
26 | long edi; | ||
27 | long ebp; | ||
28 | long eax; | ||
29 | int xds; | ||
30 | int xes; | ||
31 | int xfs; | ||
32 | /* int gs; */ | ||
33 | long orig_eax; | ||
34 | long eip; | ||
35 | int xcs; | ||
36 | long eflags; | ||
37 | long esp; | ||
38 | int xss; | ||
39 | }; | ||
40 | |||
41 | #else /* __KERNEL__ */ | ||
42 | |||
43 | struct pt_regs { | ||
44 | unsigned long bx; | ||
45 | unsigned long cx; | ||
46 | unsigned long dx; | ||
47 | unsigned long si; | ||
48 | unsigned long di; | ||
49 | unsigned long bp; | ||
50 | unsigned long ax; | ||
51 | unsigned long ds; | ||
52 | unsigned long es; | ||
53 | unsigned long fs; | ||
54 | /* int gs; */ | ||
55 | unsigned long orig_ax; | ||
56 | unsigned long ip; | ||
57 | unsigned long cs; | ||
58 | unsigned long flags; | ||
59 | unsigned long sp; | ||
60 | unsigned long ss; | ||
61 | }; | ||
62 | |||
63 | #endif /* __KERNEL__ */ | ||
64 | |||
65 | #else /* __i386__ */ | ||
66 | |||
67 | #ifndef __KERNEL__ | ||
68 | |||
69 | struct pt_regs { | ||
70 | unsigned long r15; | ||
71 | unsigned long r14; | ||
72 | unsigned long r13; | ||
73 | unsigned long r12; | ||
74 | unsigned long rbp; | ||
75 | unsigned long rbx; | ||
76 | /* arguments: non interrupts/non tracing syscalls only save upto here*/ | ||
77 | unsigned long r11; | ||
78 | unsigned long r10; | ||
79 | unsigned long r9; | ||
80 | unsigned long r8; | ||
81 | unsigned long rax; | ||
82 | unsigned long rcx; | ||
83 | unsigned long rdx; | ||
84 | unsigned long rsi; | ||
85 | unsigned long rdi; | ||
86 | unsigned long orig_rax; | ||
87 | /* end of arguments */ | ||
88 | /* cpu exception frame or undefined */ | ||
89 | unsigned long rip; | ||
90 | unsigned long cs; | ||
91 | unsigned long eflags; | ||
92 | unsigned long rsp; | ||
93 | unsigned long ss; | ||
94 | /* top of stack page */ | ||
95 | }; | ||
96 | |||
97 | #else /* __KERNEL__ */ | ||
98 | |||
99 | struct pt_regs { | ||
100 | unsigned long r15; | ||
101 | unsigned long r14; | ||
102 | unsigned long r13; | ||
103 | unsigned long r12; | ||
104 | unsigned long bp; | ||
105 | unsigned long bx; | ||
106 | /* arguments: non interrupts/non tracing syscalls only save upto here*/ | ||
107 | unsigned long r11; | ||
108 | unsigned long r10; | ||
109 | unsigned long r9; | ||
110 | unsigned long r8; | ||
111 | unsigned long ax; | ||
112 | unsigned long cx; | ||
113 | unsigned long dx; | ||
114 | unsigned long si; | ||
115 | unsigned long di; | ||
116 | unsigned long orig_ax; | ||
117 | /* end of arguments */ | ||
118 | /* cpu exception frame or undefined */ | ||
119 | unsigned long ip; | ||
120 | unsigned long cs; | ||
121 | unsigned long flags; | ||
122 | unsigned long sp; | ||
123 | unsigned long ss; | ||
124 | /* top of stack page */ | ||
125 | }; | ||
126 | |||
127 | #endif /* __KERNEL__ */ | ||
128 | #endif /* !__i386__ */ | ||
129 | |||
130 | |||
131 | #ifdef CONFIG_X86_PTRACE_BTS | ||
132 | /* a branch trace record entry | ||
133 | * | ||
134 | * In order to unify the interface between various processor versions, | ||
135 | * we use the below data structure for all processors. | ||
136 | */ | ||
137 | enum bts_qualifier { | ||
138 | BTS_INVALID = 0, | ||
139 | BTS_BRANCH, | ||
140 | BTS_TASK_ARRIVES, | ||
141 | BTS_TASK_DEPARTS | ||
142 | }; | ||
143 | |||
144 | struct bts_struct { | ||
145 | __u64 qualifier; | ||
146 | union { | ||
147 | /* BTS_BRANCH */ | ||
148 | struct { | ||
149 | __u64 from_ip; | ||
150 | __u64 to_ip; | ||
151 | } lbr; | ||
152 | /* BTS_TASK_ARRIVES or | ||
153 | BTS_TASK_DEPARTS */ | ||
154 | __u64 jiffies; | ||
155 | } variant; | ||
156 | }; | ||
157 | #endif /* CONFIG_X86_PTRACE_BTS */ | ||
158 | |||
159 | #ifdef __KERNEL__ | ||
160 | |||
161 | #include <linux/init.h> | ||
162 | |||
163 | struct cpuinfo_x86; | ||
164 | struct task_struct; | ||
165 | |||
166 | #ifdef CONFIG_X86_PTRACE_BTS | ||
167 | extern void __cpuinit ptrace_bts_init_intel(struct cpuinfo_x86 *); | ||
168 | extern void ptrace_bts_take_timestamp(struct task_struct *, enum bts_qualifier); | ||
169 | #else | ||
170 | #define ptrace_bts_init_intel(config) do {} while (0) | ||
171 | #endif /* CONFIG_X86_PTRACE_BTS */ | ||
172 | |||
173 | extern unsigned long profile_pc(struct pt_regs *regs); | ||
174 | |||
175 | extern unsigned long | ||
176 | convert_ip_to_linear(struct task_struct *child, struct pt_regs *regs); | ||
177 | extern void send_sigtrap(struct task_struct *tsk, struct pt_regs *regs, | ||
178 | int error_code, int si_code); | ||
179 | void signal_fault(struct pt_regs *regs, void __user *frame, char *where); | ||
180 | |||
181 | extern long syscall_trace_enter(struct pt_regs *); | ||
182 | extern void syscall_trace_leave(struct pt_regs *); | ||
183 | |||
184 | static inline unsigned long regs_return_value(struct pt_regs *regs) | ||
185 | { | ||
186 | return regs->ax; | ||
187 | } | ||
188 | |||
189 | /* | ||
190 | * user_mode_vm(regs) determines whether a register set came from user mode. | ||
191 | * This is true if V8086 mode was enabled OR if the register set was from | ||
192 | * protected mode with RPL-3 CS value. This tricky test checks that with | ||
193 | * one comparison. Many places in the kernel can bypass this full check | ||
194 | * if they have already ruled out V8086 mode, so user_mode(regs) can be used. | ||
195 | */ | ||
196 | static inline int user_mode(struct pt_regs *regs) | ||
197 | { | ||
198 | #ifdef CONFIG_X86_32 | ||
199 | return (regs->cs & SEGMENT_RPL_MASK) == USER_RPL; | ||
200 | #else | ||
201 | return !!(regs->cs & 3); | ||
202 | #endif | ||
203 | } | ||
204 | |||
205 | static inline int user_mode_vm(struct pt_regs *regs) | ||
206 | { | ||
207 | #ifdef CONFIG_X86_32 | ||
208 | return ((regs->cs & SEGMENT_RPL_MASK) | (regs->flags & X86_VM_MASK)) >= | ||
209 | USER_RPL; | ||
210 | #else | ||
211 | return user_mode(regs); | ||
212 | #endif | ||
213 | } | ||
214 | |||
215 | static inline int v8086_mode(struct pt_regs *regs) | ||
216 | { | ||
217 | #ifdef CONFIG_X86_32 | ||
218 | return (regs->flags & X86_VM_MASK); | ||
219 | #else | ||
220 | return 0; /* No V86 mode support in long mode */ | ||
221 | #endif | ||
222 | } | ||
223 | |||
224 | /* | ||
225 | * X86_32 CPUs don't save ss and esp if the CPU is already in kernel mode | ||
226 | * when it traps. So regs will be the current sp. | ||
227 | * | ||
228 | * This is valid only for kernel mode traps. | ||
229 | */ | ||
230 | static inline unsigned long kernel_trap_sp(struct pt_regs *regs) | ||
231 | { | ||
232 | #ifdef CONFIG_X86_32 | ||
233 | return (unsigned long)regs; | ||
234 | #else | ||
235 | return regs->sp; | ||
236 | #endif | ||
237 | } | ||
238 | |||
239 | static inline unsigned long instruction_pointer(struct pt_regs *regs) | ||
240 | { | ||
241 | return regs->ip; | ||
242 | } | ||
243 | |||
244 | static inline unsigned long frame_pointer(struct pt_regs *regs) | ||
245 | { | ||
246 | return regs->bp; | ||
247 | } | ||
248 | |||
249 | static inline unsigned long user_stack_pointer(struct pt_regs *regs) | ||
250 | { | ||
251 | return regs->sp; | ||
252 | } | ||
253 | |||
254 | /* | ||
255 | * These are defined as per linux/ptrace.h, which see. | ||
256 | */ | ||
257 | #define arch_has_single_step() (1) | ||
258 | extern void user_enable_single_step(struct task_struct *); | ||
259 | extern void user_disable_single_step(struct task_struct *); | ||
260 | |||
261 | extern void user_enable_block_step(struct task_struct *); | ||
262 | #ifdef CONFIG_X86_DEBUGCTLMSR | ||
263 | #define arch_has_block_step() (1) | ||
264 | #else | ||
265 | #define arch_has_block_step() (boot_cpu_data.x86 >= 6) | ||
266 | #endif | ||
267 | |||
268 | struct user_desc; | ||
269 | extern int do_get_thread_area(struct task_struct *p, int idx, | ||
270 | struct user_desc __user *info); | ||
271 | extern int do_set_thread_area(struct task_struct *p, int idx, | ||
272 | struct user_desc __user *info, int can_allocate); | ||
273 | |||
274 | #define __ARCH_WANT_COMPAT_SYS_PTRACE | ||
275 | |||
276 | #endif /* __KERNEL__ */ | ||
277 | |||
278 | #endif /* !__ASSEMBLY__ */ | ||
279 | |||
280 | #endif /* _ASM_X86_PTRACE_H */ | ||
diff --git a/arch/x86/include/asm/pvclock-abi.h b/arch/x86/include/asm/pvclock-abi.h new file mode 100644 index 000000000000..6d93508f2626 --- /dev/null +++ b/arch/x86/include/asm/pvclock-abi.h | |||
@@ -0,0 +1,42 @@ | |||
1 | #ifndef _ASM_X86_PVCLOCK_ABI_H | ||
2 | #define _ASM_X86_PVCLOCK_ABI_H | ||
3 | #ifndef __ASSEMBLY__ | ||
4 | |||
5 | /* | ||
6 | * These structs MUST NOT be changed. | ||
7 | * They are the ABI between hypervisor and guest OS. | ||
8 | * Both Xen and KVM are using this. | ||
9 | * | ||
10 | * pvclock_vcpu_time_info holds the system time and the tsc timestamp | ||
11 | * of the last update. So the guest can use the tsc delta to get a | ||
12 | * more precise system time. There is one per virtual cpu. | ||
13 | * | ||
14 | * pvclock_wall_clock references the point in time when the system | ||
15 | * time was zero (usually boot time), thus the guest calculates the | ||
16 | * current wall clock by adding the system time. | ||
17 | * | ||
18 | * Protocol for the "version" fields is: hypervisor raises it (making | ||
19 | * it uneven) before it starts updating the fields and raises it again | ||
20 | * (making it even) when it is done. Thus the guest can make sure the | ||
21 | * time values it got are consistent by checking the version before | ||
22 | * and after reading them. | ||
23 | */ | ||
24 | |||
25 | struct pvclock_vcpu_time_info { | ||
26 | u32 version; | ||
27 | u32 pad0; | ||
28 | u64 tsc_timestamp; | ||
29 | u64 system_time; | ||
30 | u32 tsc_to_system_mul; | ||
31 | s8 tsc_shift; | ||
32 | u8 pad[3]; | ||
33 | } __attribute__((__packed__)); /* 32 bytes */ | ||
34 | |||
35 | struct pvclock_wall_clock { | ||
36 | u32 version; | ||
37 | u32 sec; | ||
38 | u32 nsec; | ||
39 | } __attribute__((__packed__)); | ||
40 | |||
41 | #endif /* __ASSEMBLY__ */ | ||
42 | #endif /* _ASM_X86_PVCLOCK_ABI_H */ | ||
diff --git a/arch/x86/include/asm/pvclock.h b/arch/x86/include/asm/pvclock.h new file mode 100644 index 000000000000..53235fd5f8ce --- /dev/null +++ b/arch/x86/include/asm/pvclock.h | |||
@@ -0,0 +1,14 @@ | |||
1 | #ifndef _ASM_X86_PVCLOCK_H | ||
2 | #define _ASM_X86_PVCLOCK_H | ||
3 | |||
4 | #include <linux/clocksource.h> | ||
5 | #include <asm/pvclock-abi.h> | ||
6 | |||
7 | /* some helper functions for xen and kvm pv clock sources */ | ||
8 | cycle_t pvclock_clocksource_read(struct pvclock_vcpu_time_info *src); | ||
9 | unsigned long pvclock_tsc_khz(struct pvclock_vcpu_time_info *src); | ||
10 | void pvclock_read_wallclock(struct pvclock_wall_clock *wall, | ||
11 | struct pvclock_vcpu_time_info *vcpu, | ||
12 | struct timespec *ts); | ||
13 | |||
14 | #endif /* _ASM_X86_PVCLOCK_H */ | ||
diff --git a/arch/x86/include/asm/reboot.h b/arch/x86/include/asm/reboot.h new file mode 100644 index 000000000000..df7710354f85 --- /dev/null +++ b/arch/x86/include/asm/reboot.h | |||
@@ -0,0 +1,21 @@ | |||
1 | #ifndef _ASM_X86_REBOOT_H | ||
2 | #define _ASM_X86_REBOOT_H | ||
3 | |||
4 | struct pt_regs; | ||
5 | |||
6 | struct machine_ops { | ||
7 | void (*restart)(char *cmd); | ||
8 | void (*halt)(void); | ||
9 | void (*power_off)(void); | ||
10 | void (*shutdown)(void); | ||
11 | void (*crash_shutdown)(struct pt_regs *); | ||
12 | void (*emergency_restart)(void); | ||
13 | }; | ||
14 | |||
15 | extern struct machine_ops machine_ops; | ||
16 | |||
17 | void native_machine_crash_shutdown(struct pt_regs *regs); | ||
18 | void native_machine_shutdown(void); | ||
19 | void machine_real_restart(const unsigned char *code, int length); | ||
20 | |||
21 | #endif /* _ASM_X86_REBOOT_H */ | ||
diff --git a/arch/x86/include/asm/reboot_fixups.h b/arch/x86/include/asm/reboot_fixups.h new file mode 100644 index 000000000000..765debe4c54c --- /dev/null +++ b/arch/x86/include/asm/reboot_fixups.h | |||
@@ -0,0 +1,6 @@ | |||
1 | #ifndef _ASM_X86_REBOOT_FIXUPS_H | ||
2 | #define _ASM_X86_REBOOT_FIXUPS_H | ||
3 | |||
4 | extern void mach_reboot_fixups(void); | ||
5 | |||
6 | #endif /* _ASM_X86_REBOOT_FIXUPS_H */ | ||
diff --git a/arch/x86/include/asm/required-features.h b/arch/x86/include/asm/required-features.h new file mode 100644 index 000000000000..d5cd6c586881 --- /dev/null +++ b/arch/x86/include/asm/required-features.h | |||
@@ -0,0 +1,82 @@ | |||
1 | #ifndef _ASM_X86_REQUIRED_FEATURES_H | ||
2 | #define _ASM_X86_REQUIRED_FEATURES_H | ||
3 | |||
4 | /* Define minimum CPUID feature set for kernel These bits are checked | ||
5 | really early to actually display a visible error message before the | ||
6 | kernel dies. Make sure to assign features to the proper mask! | ||
7 | |||
8 | Some requirements that are not in CPUID yet are also in the | ||
9 | CONFIG_X86_MINIMUM_CPU_FAMILY which is checked too. | ||
10 | |||
11 | The real information is in arch/x86/Kconfig.cpu, this just converts | ||
12 | the CONFIGs into a bitmask */ | ||
13 | |||
14 | #ifndef CONFIG_MATH_EMULATION | ||
15 | # define NEED_FPU (1<<(X86_FEATURE_FPU & 31)) | ||
16 | #else | ||
17 | # define NEED_FPU 0 | ||
18 | #endif | ||
19 | |||
20 | #if defined(CONFIG_X86_PAE) || defined(CONFIG_X86_64) | ||
21 | # define NEED_PAE (1<<(X86_FEATURE_PAE & 31)) | ||
22 | #else | ||
23 | # define NEED_PAE 0 | ||
24 | #endif | ||
25 | |||
26 | #ifdef CONFIG_X86_CMPXCHG64 | ||
27 | # define NEED_CX8 (1<<(X86_FEATURE_CX8 & 31)) | ||
28 | #else | ||
29 | # define NEED_CX8 0 | ||
30 | #endif | ||
31 | |||
32 | #if defined(CONFIG_X86_CMOV) || defined(CONFIG_X86_64) | ||
33 | # define NEED_CMOV (1<<(X86_FEATURE_CMOV & 31)) | ||
34 | #else | ||
35 | # define NEED_CMOV 0 | ||
36 | #endif | ||
37 | |||
38 | #ifdef CONFIG_X86_USE_3DNOW | ||
39 | # define NEED_3DNOW (1<<(X86_FEATURE_3DNOW & 31)) | ||
40 | #else | ||
41 | # define NEED_3DNOW 0 | ||
42 | #endif | ||
43 | |||
44 | #if defined(CONFIG_X86_P6_NOP) || defined(CONFIG_X86_64) | ||
45 | # define NEED_NOPL (1<<(X86_FEATURE_NOPL & 31)) | ||
46 | #else | ||
47 | # define NEED_NOPL 0 | ||
48 | #endif | ||
49 | |||
50 | #ifdef CONFIG_X86_64 | ||
51 | #define NEED_PSE 0 | ||
52 | #define NEED_MSR (1<<(X86_FEATURE_MSR & 31)) | ||
53 | #define NEED_PGE (1<<(X86_FEATURE_PGE & 31)) | ||
54 | #define NEED_FXSR (1<<(X86_FEATURE_FXSR & 31)) | ||
55 | #define NEED_XMM (1<<(X86_FEATURE_XMM & 31)) | ||
56 | #define NEED_XMM2 (1<<(X86_FEATURE_XMM2 & 31)) | ||
57 | #define NEED_LM (1<<(X86_FEATURE_LM & 31)) | ||
58 | #else | ||
59 | #define NEED_PSE 0 | ||
60 | #define NEED_MSR 0 | ||
61 | #define NEED_PGE 0 | ||
62 | #define NEED_FXSR 0 | ||
63 | #define NEED_XMM 0 | ||
64 | #define NEED_XMM2 0 | ||
65 | #define NEED_LM 0 | ||
66 | #endif | ||
67 | |||
68 | #define REQUIRED_MASK0 (NEED_FPU|NEED_PSE|NEED_MSR|NEED_PAE|\ | ||
69 | NEED_CX8|NEED_PGE|NEED_FXSR|NEED_CMOV|\ | ||
70 | NEED_XMM|NEED_XMM2) | ||
71 | #define SSE_MASK (NEED_XMM|NEED_XMM2) | ||
72 | |||
73 | #define REQUIRED_MASK1 (NEED_LM|NEED_3DNOW) | ||
74 | |||
75 | #define REQUIRED_MASK2 0 | ||
76 | #define REQUIRED_MASK3 (NEED_NOPL) | ||
77 | #define REQUIRED_MASK4 0 | ||
78 | #define REQUIRED_MASK5 0 | ||
79 | #define REQUIRED_MASK6 0 | ||
80 | #define REQUIRED_MASK7 0 | ||
81 | |||
82 | #endif /* _ASM_X86_REQUIRED_FEATURES_H */ | ||
diff --git a/arch/x86/include/asm/resource.h b/arch/x86/include/asm/resource.h new file mode 100644 index 000000000000..04bc4db8921b --- /dev/null +++ b/arch/x86/include/asm/resource.h | |||
@@ -0,0 +1 @@ | |||
#include <asm-generic/resource.h> | |||
diff --git a/arch/x86/include/asm/resume-trace.h b/arch/x86/include/asm/resume-trace.h new file mode 100644 index 000000000000..3ff1c2cb1da5 --- /dev/null +++ b/arch/x86/include/asm/resume-trace.h | |||
@@ -0,0 +1,21 @@ | |||
1 | #ifndef _ASM_X86_RESUME_TRACE_H | ||
2 | #define _ASM_X86_RESUME_TRACE_H | ||
3 | |||
4 | #include <asm/asm.h> | ||
5 | |||
6 | #define TRACE_RESUME(user) \ | ||
7 | do { \ | ||
8 | if (pm_trace_enabled) { \ | ||
9 | const void *tracedata; \ | ||
10 | asm volatile(_ASM_MOV " $1f,%0\n" \ | ||
11 | ".section .tracedata,\"a\"\n" \ | ||
12 | "1:\t.word %c1\n\t" \ | ||
13 | _ASM_PTR " %c2\n" \ | ||
14 | ".previous" \ | ||
15 | :"=r" (tracedata) \ | ||
16 | : "i" (__LINE__), "i" (__FILE__)); \ | ||
17 | generate_resume_trace(tracedata, user); \ | ||
18 | } \ | ||
19 | } while (0) | ||
20 | |||
21 | #endif /* _ASM_X86_RESUME_TRACE_H */ | ||
diff --git a/arch/x86/include/asm/rio.h b/arch/x86/include/asm/rio.h new file mode 100644 index 000000000000..97bab6388a92 --- /dev/null +++ b/arch/x86/include/asm/rio.h | |||
@@ -0,0 +1,63 @@ | |||
1 | /* | ||
2 | * Derived from include/asm-x86/mach-summit/mach_mpparse.h | ||
3 | * and include/asm-x86/mach-default/bios_ebda.h | ||
4 | * | ||
5 | * Author: Laurent Vivier <Laurent.Vivier@bull.net> | ||
6 | */ | ||
7 | |||
8 | #ifndef _ASM_X86_RIO_H | ||
9 | #define _ASM_X86_RIO_H | ||
10 | |||
11 | #define RIO_TABLE_VERSION 3 | ||
12 | |||
13 | struct rio_table_hdr { | ||
14 | u8 version; /* Version number of this data structure */ | ||
15 | u8 num_scal_dev; /* # of Scalability devices */ | ||
16 | u8 num_rio_dev; /* # of RIO I/O devices */ | ||
17 | } __attribute__((packed)); | ||
18 | |||
19 | struct scal_detail { | ||
20 | u8 node_id; /* Scalability Node ID */ | ||
21 | u32 CBAR; /* Address of 1MB register space */ | ||
22 | u8 port0node; /* Node ID port connected to: 0xFF=None */ | ||
23 | u8 port0port; /* Port num port connected to: 0,1,2, or */ | ||
24 | /* 0xFF=None */ | ||
25 | u8 port1node; /* Node ID port connected to: 0xFF = None */ | ||
26 | u8 port1port; /* Port num port connected to: 0,1,2, or */ | ||
27 | /* 0xFF=None */ | ||
28 | u8 port2node; /* Node ID port connected to: 0xFF = None */ | ||
29 | u8 port2port; /* Port num port connected to: 0,1,2, or */ | ||
30 | /* 0xFF=None */ | ||
31 | u8 chassis_num; /* 1 based Chassis number (1 = boot node) */ | ||
32 | } __attribute__((packed)); | ||
33 | |||
34 | struct rio_detail { | ||
35 | u8 node_id; /* RIO Node ID */ | ||
36 | u32 BBAR; /* Address of 1MB register space */ | ||
37 | u8 type; /* Type of device */ | ||
38 | u8 owner_id; /* Node ID of Hurricane that owns this */ | ||
39 | /* node */ | ||
40 | u8 port0node; /* Node ID port connected to: 0xFF=None */ | ||
41 | u8 port0port; /* Port num port connected to: 0,1,2, or */ | ||
42 | /* 0xFF=None */ | ||
43 | u8 port1node; /* Node ID port connected to: 0xFF=None */ | ||
44 | u8 port1port; /* Port num port connected to: 0,1,2, or */ | ||
45 | /* 0xFF=None */ | ||
46 | u8 first_slot; /* Lowest slot number below this Calgary */ | ||
47 | u8 status; /* Bit 0 = 1 : the XAPIC is used */ | ||
48 | /* = 0 : the XAPIC is not used, ie: */ | ||
49 | /* ints fwded to another XAPIC */ | ||
50 | /* Bits1:7 Reserved */ | ||
51 | u8 WP_index; /* instance index - lower ones have */ | ||
52 | /* lower slot numbers/PCI bus numbers */ | ||
53 | u8 chassis_num; /* 1 based Chassis number */ | ||
54 | } __attribute__((packed)); | ||
55 | |||
56 | enum { | ||
57 | HURR_SCALABILTY = 0, /* Hurricane Scalability info */ | ||
58 | HURR_RIOIB = 2, /* Hurricane RIOIB info */ | ||
59 | COMPAT_CALGARY = 4, /* Compatibility Calgary */ | ||
60 | ALT_CALGARY = 5, /* Second Planar Calgary */ | ||
61 | }; | ||
62 | |||
63 | #endif /* _ASM_X86_RIO_H */ | ||
diff --git a/arch/x86/include/asm/rtc.h b/arch/x86/include/asm/rtc.h new file mode 100644 index 000000000000..f71c3b0ed360 --- /dev/null +++ b/arch/x86/include/asm/rtc.h | |||
@@ -0,0 +1 @@ | |||
#include <asm-generic/rtc.h> | |||
diff --git a/arch/x86/include/asm/rwlock.h b/arch/x86/include/asm/rwlock.h new file mode 100644 index 000000000000..6a8c0d645108 --- /dev/null +++ b/arch/x86/include/asm/rwlock.h | |||
@@ -0,0 +1,8 @@ | |||
1 | #ifndef _ASM_X86_RWLOCK_H | ||
2 | #define _ASM_X86_RWLOCK_H | ||
3 | |||
4 | #define RW_LOCK_BIAS 0x01000000 | ||
5 | |||
6 | /* Actual code is in asm/spinlock.h or in arch/x86/lib/rwlock.S */ | ||
7 | |||
8 | #endif /* _ASM_X86_RWLOCK_H */ | ||
diff --git a/arch/x86/include/asm/rwsem.h b/arch/x86/include/asm/rwsem.h new file mode 100644 index 000000000000..ca7517d33776 --- /dev/null +++ b/arch/x86/include/asm/rwsem.h | |||
@@ -0,0 +1,265 @@ | |||
1 | /* rwsem.h: R/W semaphores implemented using XADD/CMPXCHG for i486+ | ||
2 | * | ||
3 | * Written by David Howells (dhowells@redhat.com). | ||
4 | * | ||
5 | * Derived from asm-x86/semaphore.h | ||
6 | * | ||
7 | * | ||
8 | * The MSW of the count is the negated number of active writers and waiting | ||
9 | * lockers, and the LSW is the total number of active locks | ||
10 | * | ||
11 | * The lock count is initialized to 0 (no active and no waiting lockers). | ||
12 | * | ||
13 | * When a writer subtracts WRITE_BIAS, it'll get 0xffff0001 for the case of an | ||
14 | * uncontended lock. This can be determined because XADD returns the old value. | ||
15 | * Readers increment by 1 and see a positive value when uncontended, negative | ||
16 | * if there are writers (and maybe) readers waiting (in which case it goes to | ||
17 | * sleep). | ||
18 | * | ||
19 | * The value of WAITING_BIAS supports up to 32766 waiting processes. This can | ||
20 | * be extended to 65534 by manually checking the whole MSW rather than relying | ||
21 | * on the S flag. | ||
22 | * | ||
23 | * The value of ACTIVE_BIAS supports up to 65535 active processes. | ||
24 | * | ||
25 | * This should be totally fair - if anything is waiting, a process that wants a | ||
26 | * lock will go to the back of the queue. When the currently active lock is | ||
27 | * released, if there's a writer at the front of the queue, then that and only | ||
28 | * that will be woken up; if there's a bunch of consequtive readers at the | ||
29 | * front, then they'll all be woken up, but no other readers will be. | ||
30 | */ | ||
31 | |||
32 | #ifndef _ASM_X86_RWSEM_H | ||
33 | #define _ASM_X86_RWSEM_H | ||
34 | |||
35 | #ifndef _LINUX_RWSEM_H | ||
36 | #error "please don't include asm/rwsem.h directly, use linux/rwsem.h instead" | ||
37 | #endif | ||
38 | |||
39 | #ifdef __KERNEL__ | ||
40 | |||
41 | #include <linux/list.h> | ||
42 | #include <linux/spinlock.h> | ||
43 | #include <linux/lockdep.h> | ||
44 | |||
45 | struct rwsem_waiter; | ||
46 | |||
47 | extern asmregparm struct rw_semaphore * | ||
48 | rwsem_down_read_failed(struct rw_semaphore *sem); | ||
49 | extern asmregparm struct rw_semaphore * | ||
50 | rwsem_down_write_failed(struct rw_semaphore *sem); | ||
51 | extern asmregparm struct rw_semaphore * | ||
52 | rwsem_wake(struct rw_semaphore *); | ||
53 | extern asmregparm struct rw_semaphore * | ||
54 | rwsem_downgrade_wake(struct rw_semaphore *sem); | ||
55 | |||
56 | /* | ||
57 | * the semaphore definition | ||
58 | */ | ||
59 | |||
60 | #define RWSEM_UNLOCKED_VALUE 0x00000000 | ||
61 | #define RWSEM_ACTIVE_BIAS 0x00000001 | ||
62 | #define RWSEM_ACTIVE_MASK 0x0000ffff | ||
63 | #define RWSEM_WAITING_BIAS (-0x00010000) | ||
64 | #define RWSEM_ACTIVE_READ_BIAS RWSEM_ACTIVE_BIAS | ||
65 | #define RWSEM_ACTIVE_WRITE_BIAS (RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS) | ||
66 | |||
67 | struct rw_semaphore { | ||
68 | signed long count; | ||
69 | spinlock_t wait_lock; | ||
70 | struct list_head wait_list; | ||
71 | #ifdef CONFIG_DEBUG_LOCK_ALLOC | ||
72 | struct lockdep_map dep_map; | ||
73 | #endif | ||
74 | }; | ||
75 | |||
76 | #ifdef CONFIG_DEBUG_LOCK_ALLOC | ||
77 | # define __RWSEM_DEP_MAP_INIT(lockname) , .dep_map = { .name = #lockname } | ||
78 | #else | ||
79 | # define __RWSEM_DEP_MAP_INIT(lockname) | ||
80 | #endif | ||
81 | |||
82 | |||
83 | #define __RWSEM_INITIALIZER(name) \ | ||
84 | { \ | ||
85 | RWSEM_UNLOCKED_VALUE, __SPIN_LOCK_UNLOCKED((name).wait_lock), \ | ||
86 | LIST_HEAD_INIT((name).wait_list) __RWSEM_DEP_MAP_INIT(name) \ | ||
87 | } | ||
88 | |||
89 | #define DECLARE_RWSEM(name) \ | ||
90 | struct rw_semaphore name = __RWSEM_INITIALIZER(name) | ||
91 | |||
92 | extern void __init_rwsem(struct rw_semaphore *sem, const char *name, | ||
93 | struct lock_class_key *key); | ||
94 | |||
95 | #define init_rwsem(sem) \ | ||
96 | do { \ | ||
97 | static struct lock_class_key __key; \ | ||
98 | \ | ||
99 | __init_rwsem((sem), #sem, &__key); \ | ||
100 | } while (0) | ||
101 | |||
102 | /* | ||
103 | * lock for reading | ||
104 | */ | ||
105 | static inline void __down_read(struct rw_semaphore *sem) | ||
106 | { | ||
107 | asm volatile("# beginning down_read\n\t" | ||
108 | LOCK_PREFIX " incl (%%eax)\n\t" | ||
109 | /* adds 0x00000001, returns the old value */ | ||
110 | " jns 1f\n" | ||
111 | " call call_rwsem_down_read_failed\n" | ||
112 | "1:\n\t" | ||
113 | "# ending down_read\n\t" | ||
114 | : "+m" (sem->count) | ||
115 | : "a" (sem) | ||
116 | : "memory", "cc"); | ||
117 | } | ||
118 | |||
119 | /* | ||
120 | * trylock for reading -- returns 1 if successful, 0 if contention | ||
121 | */ | ||
122 | static inline int __down_read_trylock(struct rw_semaphore *sem) | ||
123 | { | ||
124 | __s32 result, tmp; | ||
125 | asm volatile("# beginning __down_read_trylock\n\t" | ||
126 | " movl %0,%1\n\t" | ||
127 | "1:\n\t" | ||
128 | " movl %1,%2\n\t" | ||
129 | " addl %3,%2\n\t" | ||
130 | " jle 2f\n\t" | ||
131 | LOCK_PREFIX " cmpxchgl %2,%0\n\t" | ||
132 | " jnz 1b\n\t" | ||
133 | "2:\n\t" | ||
134 | "# ending __down_read_trylock\n\t" | ||
135 | : "+m" (sem->count), "=&a" (result), "=&r" (tmp) | ||
136 | : "i" (RWSEM_ACTIVE_READ_BIAS) | ||
137 | : "memory", "cc"); | ||
138 | return result >= 0 ? 1 : 0; | ||
139 | } | ||
140 | |||
141 | /* | ||
142 | * lock for writing | ||
143 | */ | ||
144 | static inline void __down_write_nested(struct rw_semaphore *sem, int subclass) | ||
145 | { | ||
146 | int tmp; | ||
147 | |||
148 | tmp = RWSEM_ACTIVE_WRITE_BIAS; | ||
149 | asm volatile("# beginning down_write\n\t" | ||
150 | LOCK_PREFIX " xadd %%edx,(%%eax)\n\t" | ||
151 | /* subtract 0x0000ffff, returns the old value */ | ||
152 | " testl %%edx,%%edx\n\t" | ||
153 | /* was the count 0 before? */ | ||
154 | " jz 1f\n" | ||
155 | " call call_rwsem_down_write_failed\n" | ||
156 | "1:\n" | ||
157 | "# ending down_write" | ||
158 | : "+m" (sem->count), "=d" (tmp) | ||
159 | : "a" (sem), "1" (tmp) | ||
160 | : "memory", "cc"); | ||
161 | } | ||
162 | |||
163 | static inline void __down_write(struct rw_semaphore *sem) | ||
164 | { | ||
165 | __down_write_nested(sem, 0); | ||
166 | } | ||
167 | |||
168 | /* | ||
169 | * trylock for writing -- returns 1 if successful, 0 if contention | ||
170 | */ | ||
171 | static inline int __down_write_trylock(struct rw_semaphore *sem) | ||
172 | { | ||
173 | signed long ret = cmpxchg(&sem->count, | ||
174 | RWSEM_UNLOCKED_VALUE, | ||
175 | RWSEM_ACTIVE_WRITE_BIAS); | ||
176 | if (ret == RWSEM_UNLOCKED_VALUE) | ||
177 | return 1; | ||
178 | return 0; | ||
179 | } | ||
180 | |||
181 | /* | ||
182 | * unlock after reading | ||
183 | */ | ||
184 | static inline void __up_read(struct rw_semaphore *sem) | ||
185 | { | ||
186 | __s32 tmp = -RWSEM_ACTIVE_READ_BIAS; | ||
187 | asm volatile("# beginning __up_read\n\t" | ||
188 | LOCK_PREFIX " xadd %%edx,(%%eax)\n\t" | ||
189 | /* subtracts 1, returns the old value */ | ||
190 | " jns 1f\n\t" | ||
191 | " call call_rwsem_wake\n" | ||
192 | "1:\n" | ||
193 | "# ending __up_read\n" | ||
194 | : "+m" (sem->count), "=d" (tmp) | ||
195 | : "a" (sem), "1" (tmp) | ||
196 | : "memory", "cc"); | ||
197 | } | ||
198 | |||
199 | /* | ||
200 | * unlock after writing | ||
201 | */ | ||
202 | static inline void __up_write(struct rw_semaphore *sem) | ||
203 | { | ||
204 | asm volatile("# beginning __up_write\n\t" | ||
205 | " movl %2,%%edx\n\t" | ||
206 | LOCK_PREFIX " xaddl %%edx,(%%eax)\n\t" | ||
207 | /* tries to transition | ||
208 | 0xffff0001 -> 0x00000000 */ | ||
209 | " jz 1f\n" | ||
210 | " call call_rwsem_wake\n" | ||
211 | "1:\n\t" | ||
212 | "# ending __up_write\n" | ||
213 | : "+m" (sem->count) | ||
214 | : "a" (sem), "i" (-RWSEM_ACTIVE_WRITE_BIAS) | ||
215 | : "memory", "cc", "edx"); | ||
216 | } | ||
217 | |||
218 | /* | ||
219 | * downgrade write lock to read lock | ||
220 | */ | ||
221 | static inline void __downgrade_write(struct rw_semaphore *sem) | ||
222 | { | ||
223 | asm volatile("# beginning __downgrade_write\n\t" | ||
224 | LOCK_PREFIX " addl %2,(%%eax)\n\t" | ||
225 | /* transitions 0xZZZZ0001 -> 0xYYYY0001 */ | ||
226 | " jns 1f\n\t" | ||
227 | " call call_rwsem_downgrade_wake\n" | ||
228 | "1:\n\t" | ||
229 | "# ending __downgrade_write\n" | ||
230 | : "+m" (sem->count) | ||
231 | : "a" (sem), "i" (-RWSEM_WAITING_BIAS) | ||
232 | : "memory", "cc"); | ||
233 | } | ||
234 | |||
235 | /* | ||
236 | * implement atomic add functionality | ||
237 | */ | ||
238 | static inline void rwsem_atomic_add(int delta, struct rw_semaphore *sem) | ||
239 | { | ||
240 | asm volatile(LOCK_PREFIX "addl %1,%0" | ||
241 | : "+m" (sem->count) | ||
242 | : "ir" (delta)); | ||
243 | } | ||
244 | |||
245 | /* | ||
246 | * implement exchange and add functionality | ||
247 | */ | ||
248 | static inline int rwsem_atomic_update(int delta, struct rw_semaphore *sem) | ||
249 | { | ||
250 | int tmp = delta; | ||
251 | |||
252 | asm volatile(LOCK_PREFIX "xadd %0,%1" | ||
253 | : "+r" (tmp), "+m" (sem->count) | ||
254 | : : "memory"); | ||
255 | |||
256 | return tmp + delta; | ||
257 | } | ||
258 | |||
259 | static inline int rwsem_is_locked(struct rw_semaphore *sem) | ||
260 | { | ||
261 | return (sem->count != 0); | ||
262 | } | ||
263 | |||
264 | #endif /* __KERNEL__ */ | ||
265 | #endif /* _ASM_X86_RWSEM_H */ | ||
diff --git a/arch/x86/include/asm/scatterlist.h b/arch/x86/include/asm/scatterlist.h new file mode 100644 index 000000000000..263d397d2eef --- /dev/null +++ b/arch/x86/include/asm/scatterlist.h | |||
@@ -0,0 +1,33 @@ | |||
1 | #ifndef _ASM_X86_SCATTERLIST_H | ||
2 | #define _ASM_X86_SCATTERLIST_H | ||
3 | |||
4 | #include <asm/types.h> | ||
5 | |||
6 | struct scatterlist { | ||
7 | #ifdef CONFIG_DEBUG_SG | ||
8 | unsigned long sg_magic; | ||
9 | #endif | ||
10 | unsigned long page_link; | ||
11 | unsigned int offset; | ||
12 | unsigned int length; | ||
13 | dma_addr_t dma_address; | ||
14 | unsigned int dma_length; | ||
15 | }; | ||
16 | |||
17 | #define ARCH_HAS_SG_CHAIN | ||
18 | #define ISA_DMA_THRESHOLD (0x00ffffff) | ||
19 | |||
20 | /* | ||
21 | * These macros should be used after a pci_map_sg call has been done | ||
22 | * to get bus addresses of each of the SG entries and their lengths. | ||
23 | * You should only work with the number of sg entries pci_map_sg | ||
24 | * returns. | ||
25 | */ | ||
26 | #define sg_dma_address(sg) ((sg)->dma_address) | ||
27 | #ifdef CONFIG_X86_32 | ||
28 | # define sg_dma_len(sg) ((sg)->length) | ||
29 | #else | ||
30 | # define sg_dma_len(sg) ((sg)->dma_length) | ||
31 | #endif | ||
32 | |||
33 | #endif /* _ASM_X86_SCATTERLIST_H */ | ||
diff --git a/arch/x86/include/asm/seccomp.h b/arch/x86/include/asm/seccomp.h new file mode 100644 index 000000000000..c62e58a5a90d --- /dev/null +++ b/arch/x86/include/asm/seccomp.h | |||
@@ -0,0 +1,5 @@ | |||
1 | #ifdef CONFIG_X86_32 | ||
2 | # include "seccomp_32.h" | ||
3 | #else | ||
4 | # include "seccomp_64.h" | ||
5 | #endif | ||
diff --git a/arch/x86/include/asm/seccomp_32.h b/arch/x86/include/asm/seccomp_32.h new file mode 100644 index 000000000000..a6ad87b352c4 --- /dev/null +++ b/arch/x86/include/asm/seccomp_32.h | |||
@@ -0,0 +1,17 @@ | |||
1 | #ifndef _ASM_X86_SECCOMP_32_H | ||
2 | #define _ASM_X86_SECCOMP_32_H | ||
3 | |||
4 | #include <linux/thread_info.h> | ||
5 | |||
6 | #ifdef TIF_32BIT | ||
7 | #error "unexpected TIF_32BIT on i386" | ||
8 | #endif | ||
9 | |||
10 | #include <linux/unistd.h> | ||
11 | |||
12 | #define __NR_seccomp_read __NR_read | ||
13 | #define __NR_seccomp_write __NR_write | ||
14 | #define __NR_seccomp_exit __NR_exit | ||
15 | #define __NR_seccomp_sigreturn __NR_sigreturn | ||
16 | |||
17 | #endif /* _ASM_X86_SECCOMP_32_H */ | ||
diff --git a/arch/x86/include/asm/seccomp_64.h b/arch/x86/include/asm/seccomp_64.h new file mode 100644 index 000000000000..4171bb794e9e --- /dev/null +++ b/arch/x86/include/asm/seccomp_64.h | |||
@@ -0,0 +1,25 @@ | |||
1 | #ifndef _ASM_X86_SECCOMP_64_H | ||
2 | #define _ASM_X86_SECCOMP_64_H | ||
3 | |||
4 | #include <linux/thread_info.h> | ||
5 | |||
6 | #ifdef TIF_32BIT | ||
7 | #error "unexpected TIF_32BIT on x86_64" | ||
8 | #else | ||
9 | #define TIF_32BIT TIF_IA32 | ||
10 | #endif | ||
11 | |||
12 | #include <linux/unistd.h> | ||
13 | #include <asm/ia32_unistd.h> | ||
14 | |||
15 | #define __NR_seccomp_read __NR_read | ||
16 | #define __NR_seccomp_write __NR_write | ||
17 | #define __NR_seccomp_exit __NR_exit | ||
18 | #define __NR_seccomp_sigreturn __NR_rt_sigreturn | ||
19 | |||
20 | #define __NR_seccomp_read_32 __NR_ia32_read | ||
21 | #define __NR_seccomp_write_32 __NR_ia32_write | ||
22 | #define __NR_seccomp_exit_32 __NR_ia32_exit | ||
23 | #define __NR_seccomp_sigreturn_32 __NR_ia32_sigreturn | ||
24 | |||
25 | #endif /* _ASM_X86_SECCOMP_64_H */ | ||
diff --git a/arch/x86/include/asm/sections.h b/arch/x86/include/asm/sections.h new file mode 100644 index 000000000000..2b8c5160388f --- /dev/null +++ b/arch/x86/include/asm/sections.h | |||
@@ -0,0 +1 @@ | |||
#include <asm-generic/sections.h> | |||
diff --git a/arch/x86/include/asm/segment.h b/arch/x86/include/asm/segment.h new file mode 100644 index 000000000000..1dc1b51ac623 --- /dev/null +++ b/arch/x86/include/asm/segment.h | |||
@@ -0,0 +1,209 @@ | |||
1 | #ifndef _ASM_X86_SEGMENT_H | ||
2 | #define _ASM_X86_SEGMENT_H | ||
3 | |||
4 | /* Constructor for a conventional segment GDT (or LDT) entry */ | ||
5 | /* This is a macro so it can be used in initializers */ | ||
6 | #define GDT_ENTRY(flags, base, limit) \ | ||
7 | ((((base) & 0xff000000ULL) << (56-24)) | \ | ||
8 | (((flags) & 0x0000f0ffULL) << 40) | \ | ||
9 | (((limit) & 0x000f0000ULL) << (48-16)) | \ | ||
10 | (((base) & 0x00ffffffULL) << 16) | \ | ||
11 | (((limit) & 0x0000ffffULL))) | ||
12 | |||
13 | /* Simple and small GDT entries for booting only */ | ||
14 | |||
15 | #define GDT_ENTRY_BOOT_CS 2 | ||
16 | #define __BOOT_CS (GDT_ENTRY_BOOT_CS * 8) | ||
17 | |||
18 | #define GDT_ENTRY_BOOT_DS (GDT_ENTRY_BOOT_CS + 1) | ||
19 | #define __BOOT_DS (GDT_ENTRY_BOOT_DS * 8) | ||
20 | |||
21 | #define GDT_ENTRY_BOOT_TSS (GDT_ENTRY_BOOT_CS + 2) | ||
22 | #define __BOOT_TSS (GDT_ENTRY_BOOT_TSS * 8) | ||
23 | |||
24 | #ifdef CONFIG_X86_32 | ||
25 | /* | ||
26 | * The layout of the per-CPU GDT under Linux: | ||
27 | * | ||
28 | * 0 - null | ||
29 | * 1 - reserved | ||
30 | * 2 - reserved | ||
31 | * 3 - reserved | ||
32 | * | ||
33 | * 4 - unused <==== new cacheline | ||
34 | * 5 - unused | ||
35 | * | ||
36 | * ------- start of TLS (Thread-Local Storage) segments: | ||
37 | * | ||
38 | * 6 - TLS segment #1 [ glibc's TLS segment ] | ||
39 | * 7 - TLS segment #2 [ Wine's %fs Win32 segment ] | ||
40 | * 8 - TLS segment #3 | ||
41 | * 9 - reserved | ||
42 | * 10 - reserved | ||
43 | * 11 - reserved | ||
44 | * | ||
45 | * ------- start of kernel segments: | ||
46 | * | ||
47 | * 12 - kernel code segment <==== new cacheline | ||
48 | * 13 - kernel data segment | ||
49 | * 14 - default user CS | ||
50 | * 15 - default user DS | ||
51 | * 16 - TSS | ||
52 | * 17 - LDT | ||
53 | * 18 - PNPBIOS support (16->32 gate) | ||
54 | * 19 - PNPBIOS support | ||
55 | * 20 - PNPBIOS support | ||
56 | * 21 - PNPBIOS support | ||
57 | * 22 - PNPBIOS support | ||
58 | * 23 - APM BIOS support | ||
59 | * 24 - APM BIOS support | ||
60 | * 25 - APM BIOS support | ||
61 | * | ||
62 | * 26 - ESPFIX small SS | ||
63 | * 27 - per-cpu [ offset to per-cpu data area ] | ||
64 | * 28 - unused | ||
65 | * 29 - unused | ||
66 | * 30 - unused | ||
67 | * 31 - TSS for double fault handler | ||
68 | */ | ||
69 | #define GDT_ENTRY_TLS_MIN 6 | ||
70 | #define GDT_ENTRY_TLS_MAX (GDT_ENTRY_TLS_MIN + GDT_ENTRY_TLS_ENTRIES - 1) | ||
71 | |||
72 | #define GDT_ENTRY_DEFAULT_USER_CS 14 | ||
73 | |||
74 | #define GDT_ENTRY_DEFAULT_USER_DS 15 | ||
75 | |||
76 | #define GDT_ENTRY_KERNEL_BASE 12 | ||
77 | |||
78 | #define GDT_ENTRY_KERNEL_CS (GDT_ENTRY_KERNEL_BASE + 0) | ||
79 | |||
80 | #define GDT_ENTRY_KERNEL_DS (GDT_ENTRY_KERNEL_BASE + 1) | ||
81 | |||
82 | #define GDT_ENTRY_TSS (GDT_ENTRY_KERNEL_BASE + 4) | ||
83 | #define GDT_ENTRY_LDT (GDT_ENTRY_KERNEL_BASE + 5) | ||
84 | |||
85 | #define GDT_ENTRY_PNPBIOS_BASE (GDT_ENTRY_KERNEL_BASE + 6) | ||
86 | #define GDT_ENTRY_APMBIOS_BASE (GDT_ENTRY_KERNEL_BASE + 11) | ||
87 | |||
88 | #define GDT_ENTRY_ESPFIX_SS (GDT_ENTRY_KERNEL_BASE + 14) | ||
89 | #define __ESPFIX_SS (GDT_ENTRY_ESPFIX_SS * 8) | ||
90 | |||
91 | #define GDT_ENTRY_PERCPU (GDT_ENTRY_KERNEL_BASE + 15) | ||
92 | #ifdef CONFIG_SMP | ||
93 | #define __KERNEL_PERCPU (GDT_ENTRY_PERCPU * 8) | ||
94 | #else | ||
95 | #define __KERNEL_PERCPU 0 | ||
96 | #endif | ||
97 | |||
98 | #define GDT_ENTRY_DOUBLEFAULT_TSS 31 | ||
99 | |||
100 | /* | ||
101 | * The GDT has 32 entries | ||
102 | */ | ||
103 | #define GDT_ENTRIES 32 | ||
104 | |||
105 | /* The PnP BIOS entries in the GDT */ | ||
106 | #define GDT_ENTRY_PNPBIOS_CS32 (GDT_ENTRY_PNPBIOS_BASE + 0) | ||
107 | #define GDT_ENTRY_PNPBIOS_CS16 (GDT_ENTRY_PNPBIOS_BASE + 1) | ||
108 | #define GDT_ENTRY_PNPBIOS_DS (GDT_ENTRY_PNPBIOS_BASE + 2) | ||
109 | #define GDT_ENTRY_PNPBIOS_TS1 (GDT_ENTRY_PNPBIOS_BASE + 3) | ||
110 | #define GDT_ENTRY_PNPBIOS_TS2 (GDT_ENTRY_PNPBIOS_BASE + 4) | ||
111 | |||
112 | /* The PnP BIOS selectors */ | ||
113 | #define PNP_CS32 (GDT_ENTRY_PNPBIOS_CS32 * 8) /* segment for calling fn */ | ||
114 | #define PNP_CS16 (GDT_ENTRY_PNPBIOS_CS16 * 8) /* code segment for BIOS */ | ||
115 | #define PNP_DS (GDT_ENTRY_PNPBIOS_DS * 8) /* data segment for BIOS */ | ||
116 | #define PNP_TS1 (GDT_ENTRY_PNPBIOS_TS1 * 8) /* transfer data segment */ | ||
117 | #define PNP_TS2 (GDT_ENTRY_PNPBIOS_TS2 * 8) /* another data segment */ | ||
118 | |||
119 | /* Bottom two bits of selector give the ring privilege level */ | ||
120 | #define SEGMENT_RPL_MASK 0x3 | ||
121 | /* Bit 2 is table indicator (LDT/GDT) */ | ||
122 | #define SEGMENT_TI_MASK 0x4 | ||
123 | |||
124 | /* User mode is privilege level 3 */ | ||
125 | #define USER_RPL 0x3 | ||
126 | /* LDT segment has TI set, GDT has it cleared */ | ||
127 | #define SEGMENT_LDT 0x4 | ||
128 | #define SEGMENT_GDT 0x0 | ||
129 | |||
130 | /* | ||
131 | * Matching rules for certain types of segments. | ||
132 | */ | ||
133 | |||
134 | /* Matches PNP_CS32 and PNP_CS16 (they must be consecutive) */ | ||
135 | #define SEGMENT_IS_PNP_CODE(x) (((x) & 0xf4) == GDT_ENTRY_PNPBIOS_BASE * 8) | ||
136 | |||
137 | |||
138 | #else | ||
139 | #include <asm/cache.h> | ||
140 | |||
141 | #define GDT_ENTRY_KERNEL32_CS 1 | ||
142 | #define GDT_ENTRY_KERNEL_CS 2 | ||
143 | #define GDT_ENTRY_KERNEL_DS 3 | ||
144 | |||
145 | #define __KERNEL32_CS (GDT_ENTRY_KERNEL32_CS * 8) | ||
146 | |||
147 | /* | ||
148 | * we cannot use the same code segment descriptor for user and kernel | ||
149 | * -- not even in the long flat mode, because of different DPL /kkeil | ||
150 | * The segment offset needs to contain a RPL. Grr. -AK | ||
151 | * GDT layout to get 64bit syscall right (sysret hardcodes gdt offsets) | ||
152 | */ | ||
153 | #define GDT_ENTRY_DEFAULT_USER32_CS 4 | ||
154 | #define GDT_ENTRY_DEFAULT_USER_DS 5 | ||
155 | #define GDT_ENTRY_DEFAULT_USER_CS 6 | ||
156 | #define __USER32_CS (GDT_ENTRY_DEFAULT_USER32_CS * 8 + 3) | ||
157 | #define __USER32_DS __USER_DS | ||
158 | |||
159 | #define GDT_ENTRY_TSS 8 /* needs two entries */ | ||
160 | #define GDT_ENTRY_LDT 10 /* needs two entries */ | ||
161 | #define GDT_ENTRY_TLS_MIN 12 | ||
162 | #define GDT_ENTRY_TLS_MAX 14 | ||
163 | |||
164 | #define GDT_ENTRY_PER_CPU 15 /* Abused to load per CPU data from limit */ | ||
165 | #define __PER_CPU_SEG (GDT_ENTRY_PER_CPU * 8 + 3) | ||
166 | |||
167 | /* TLS indexes for 64bit - hardcoded in arch_prctl */ | ||
168 | #define FS_TLS 0 | ||
169 | #define GS_TLS 1 | ||
170 | |||
171 | #define GS_TLS_SEL ((GDT_ENTRY_TLS_MIN+GS_TLS)*8 + 3) | ||
172 | #define FS_TLS_SEL ((GDT_ENTRY_TLS_MIN+FS_TLS)*8 + 3) | ||
173 | |||
174 | #define GDT_ENTRIES 16 | ||
175 | |||
176 | #endif | ||
177 | |||
178 | #define __KERNEL_CS (GDT_ENTRY_KERNEL_CS * 8) | ||
179 | #define __KERNEL_DS (GDT_ENTRY_KERNEL_DS * 8) | ||
180 | #define __USER_DS (GDT_ENTRY_DEFAULT_USER_DS* 8 + 3) | ||
181 | #define __USER_CS (GDT_ENTRY_DEFAULT_USER_CS* 8 + 3) | ||
182 | #ifndef CONFIG_PARAVIRT | ||
183 | #define get_kernel_rpl() 0 | ||
184 | #endif | ||
185 | |||
186 | /* User mode is privilege level 3 */ | ||
187 | #define USER_RPL 0x3 | ||
188 | /* LDT segment has TI set, GDT has it cleared */ | ||
189 | #define SEGMENT_LDT 0x4 | ||
190 | #define SEGMENT_GDT 0x0 | ||
191 | |||
192 | /* Bottom two bits of selector give the ring privilege level */ | ||
193 | #define SEGMENT_RPL_MASK 0x3 | ||
194 | /* Bit 2 is table indicator (LDT/GDT) */ | ||
195 | #define SEGMENT_TI_MASK 0x4 | ||
196 | |||
197 | #define IDT_ENTRIES 256 | ||
198 | #define NUM_EXCEPTION_VECTORS 32 | ||
199 | #define GDT_SIZE (GDT_ENTRIES * 8) | ||
200 | #define GDT_ENTRY_TLS_ENTRIES 3 | ||
201 | #define TLS_SIZE (GDT_ENTRY_TLS_ENTRIES * 8) | ||
202 | |||
203 | #ifdef __KERNEL__ | ||
204 | #ifndef __ASSEMBLY__ | ||
205 | extern const char early_idt_handlers[NUM_EXCEPTION_VECTORS][10]; | ||
206 | #endif | ||
207 | #endif | ||
208 | |||
209 | #endif /* _ASM_X86_SEGMENT_H */ | ||
diff --git a/arch/x86/include/asm/sembuf.h b/arch/x86/include/asm/sembuf.h new file mode 100644 index 000000000000..ee50c801f7b7 --- /dev/null +++ b/arch/x86/include/asm/sembuf.h | |||
@@ -0,0 +1,24 @@ | |||
1 | #ifndef _ASM_X86_SEMBUF_H | ||
2 | #define _ASM_X86_SEMBUF_H | ||
3 | |||
4 | /* | ||
5 | * The semid64_ds structure for x86 architecture. | ||
6 | * Note extra padding because this structure is passed back and forth | ||
7 | * between kernel and user space. | ||
8 | * | ||
9 | * Pad space is left for: | ||
10 | * - 64-bit time_t to solve y2038 problem | ||
11 | * - 2 miscellaneous 32-bit values | ||
12 | */ | ||
13 | struct semid64_ds { | ||
14 | struct ipc64_perm sem_perm; /* permissions .. see ipc.h */ | ||
15 | __kernel_time_t sem_otime; /* last semop time */ | ||
16 | unsigned long __unused1; | ||
17 | __kernel_time_t sem_ctime; /* last change time */ | ||
18 | unsigned long __unused2; | ||
19 | unsigned long sem_nsems; /* no. of semaphores in array */ | ||
20 | unsigned long __unused3; | ||
21 | unsigned long __unused4; | ||
22 | }; | ||
23 | |||
24 | #endif /* _ASM_X86_SEMBUF_H */ | ||
diff --git a/arch/x86/include/asm/serial.h b/arch/x86/include/asm/serial.h new file mode 100644 index 000000000000..628c801535ea --- /dev/null +++ b/arch/x86/include/asm/serial.h | |||
@@ -0,0 +1,29 @@ | |||
1 | #ifndef _ASM_X86_SERIAL_H | ||
2 | #define _ASM_X86_SERIAL_H | ||
3 | |||
4 | /* | ||
5 | * This assumes you have a 1.8432 MHz clock for your UART. | ||
6 | * | ||
7 | * It'd be nice if someone built a serial card with a 24.576 MHz | ||
8 | * clock, since the 16550A is capable of handling a top speed of 1.5 | ||
9 | * megabits/second; but this requires the faster clock. | ||
10 | */ | ||
11 | #define BASE_BAUD ( 1843200 / 16 ) | ||
12 | |||
13 | /* Standard COM flags (except for COM4, because of the 8514 problem) */ | ||
14 | #ifdef CONFIG_SERIAL_DETECT_IRQ | ||
15 | #define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST | ASYNC_AUTO_IRQ) | ||
16 | #define STD_COM4_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_AUTO_IRQ) | ||
17 | #else | ||
18 | #define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST) | ||
19 | #define STD_COM4_FLAGS ASYNC_BOOT_AUTOCONF | ||
20 | #endif | ||
21 | |||
22 | #define SERIAL_PORT_DFNS \ | ||
23 | /* UART CLK PORT IRQ FLAGS */ \ | ||
24 | { 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS }, /* ttyS0 */ \ | ||
25 | { 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS }, /* ttyS1 */ \ | ||
26 | { 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS }, /* ttyS2 */ \ | ||
27 | { 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS }, /* ttyS3 */ | ||
28 | |||
29 | #endif /* _ASM_X86_SERIAL_H */ | ||
diff --git a/arch/x86/include/asm/setup.h b/arch/x86/include/asm/setup.h new file mode 100644 index 000000000000..f12d37237465 --- /dev/null +++ b/arch/x86/include/asm/setup.h | |||
@@ -0,0 +1,105 @@ | |||
1 | #ifndef _ASM_X86_SETUP_H | ||
2 | #define _ASM_X86_SETUP_H | ||
3 | |||
4 | #define COMMAND_LINE_SIZE 2048 | ||
5 | |||
6 | #ifndef __ASSEMBLY__ | ||
7 | |||
8 | /* Interrupt control for vSMPowered x86_64 systems */ | ||
9 | void vsmp_init(void); | ||
10 | |||
11 | #ifdef CONFIG_X86_VISWS | ||
12 | extern void visws_early_detect(void); | ||
13 | extern int is_visws_box(void); | ||
14 | #else | ||
15 | static inline void visws_early_detect(void) { } | ||
16 | static inline int is_visws_box(void) { return 0; } | ||
17 | #endif | ||
18 | |||
19 | /* | ||
20 | * Any setup quirks to be performed? | ||
21 | */ | ||
22 | struct mpc_config_processor; | ||
23 | struct mpc_config_bus; | ||
24 | struct mp_config_oemtable; | ||
25 | struct x86_quirks { | ||
26 | int (*arch_pre_time_init)(void); | ||
27 | int (*arch_time_init)(void); | ||
28 | int (*arch_pre_intr_init)(void); | ||
29 | int (*arch_intr_init)(void); | ||
30 | int (*arch_trap_init)(void); | ||
31 | char * (*arch_memory_setup)(void); | ||
32 | int (*mach_get_smp_config)(unsigned int early); | ||
33 | int (*mach_find_smp_config)(unsigned int reserve); | ||
34 | |||
35 | int *mpc_record; | ||
36 | int (*mpc_apic_id)(struct mpc_config_processor *m); | ||
37 | void (*mpc_oem_bus_info)(struct mpc_config_bus *m, char *name); | ||
38 | void (*mpc_oem_pci_bus)(struct mpc_config_bus *m); | ||
39 | void (*smp_read_mpc_oem)(struct mp_config_oemtable *oemtable, | ||
40 | unsigned short oemsize); | ||
41 | int (*setup_ioapic_ids)(void); | ||
42 | }; | ||
43 | |||
44 | extern struct x86_quirks *x86_quirks; | ||
45 | extern unsigned long saved_video_mode; | ||
46 | |||
47 | #ifndef CONFIG_PARAVIRT | ||
48 | #define paravirt_post_allocator_init() do {} while (0) | ||
49 | #endif | ||
50 | #endif /* __ASSEMBLY__ */ | ||
51 | |||
52 | #ifdef __KERNEL__ | ||
53 | |||
54 | #ifdef __i386__ | ||
55 | |||
56 | #include <linux/pfn.h> | ||
57 | /* | ||
58 | * Reserved space for vmalloc and iomap - defined in asm/page.h | ||
59 | */ | ||
60 | #define MAXMEM_PFN PFN_DOWN(MAXMEM) | ||
61 | #define MAX_NONPAE_PFN (1 << 20) | ||
62 | |||
63 | #endif /* __i386__ */ | ||
64 | |||
65 | #define PARAM_SIZE 4096 /* sizeof(struct boot_params) */ | ||
66 | |||
67 | #define OLD_CL_MAGIC 0xA33F | ||
68 | #define OLD_CL_ADDRESS 0x020 /* Relative to real mode data */ | ||
69 | #define NEW_CL_POINTER 0x228 /* Relative to real mode data */ | ||
70 | |||
71 | #ifndef __ASSEMBLY__ | ||
72 | #include <asm/bootparam.h> | ||
73 | |||
74 | #ifndef _SETUP | ||
75 | |||
76 | /* | ||
77 | * This is set up by the setup-routine at boot-time | ||
78 | */ | ||
79 | extern struct boot_params boot_params; | ||
80 | |||
81 | /* | ||
82 | * Do NOT EVER look at the BIOS memory size location. | ||
83 | * It does not work on many machines. | ||
84 | */ | ||
85 | #define LOWMEMSIZE() (0x9f000) | ||
86 | |||
87 | #ifdef __i386__ | ||
88 | |||
89 | void __init i386_start_kernel(void); | ||
90 | extern void probe_roms(void); | ||
91 | |||
92 | extern unsigned long init_pg_tables_start; | ||
93 | extern unsigned long init_pg_tables_end; | ||
94 | |||
95 | #else | ||
96 | void __init x86_64_init_pda(void); | ||
97 | void __init x86_64_start_kernel(char *real_mode); | ||
98 | void __init x86_64_start_reservations(char *real_mode_data); | ||
99 | |||
100 | #endif /* __i386__ */ | ||
101 | #endif /* _SETUP */ | ||
102 | #endif /* __ASSEMBLY__ */ | ||
103 | #endif /* __KERNEL__ */ | ||
104 | |||
105 | #endif /* _ASM_X86_SETUP_H */ | ||
diff --git a/arch/x86/include/asm/shmbuf.h b/arch/x86/include/asm/shmbuf.h new file mode 100644 index 000000000000..b51413b74971 --- /dev/null +++ b/arch/x86/include/asm/shmbuf.h | |||
@@ -0,0 +1,51 @@ | |||
1 | #ifndef _ASM_X86_SHMBUF_H | ||
2 | #define _ASM_X86_SHMBUF_H | ||
3 | |||
4 | /* | ||
5 | * The shmid64_ds structure for x86 architecture. | ||
6 | * Note extra padding because this structure is passed back and forth | ||
7 | * between kernel and user space. | ||
8 | * | ||
9 | * Pad space on 32 bit is left for: | ||
10 | * - 64-bit time_t to solve y2038 problem | ||
11 | * - 2 miscellaneous 32-bit values | ||
12 | * | ||
13 | * Pad space on 64 bit is left for: | ||
14 | * - 2 miscellaneous 64-bit values | ||
15 | */ | ||
16 | |||
17 | struct shmid64_ds { | ||
18 | struct ipc64_perm shm_perm; /* operation perms */ | ||
19 | size_t shm_segsz; /* size of segment (bytes) */ | ||
20 | __kernel_time_t shm_atime; /* last attach time */ | ||
21 | #ifdef __i386__ | ||
22 | unsigned long __unused1; | ||
23 | #endif | ||
24 | __kernel_time_t shm_dtime; /* last detach time */ | ||
25 | #ifdef __i386__ | ||
26 | unsigned long __unused2; | ||
27 | #endif | ||
28 | __kernel_time_t shm_ctime; /* last change time */ | ||
29 | #ifdef __i386__ | ||
30 | unsigned long __unused3; | ||
31 | #endif | ||
32 | __kernel_pid_t shm_cpid; /* pid of creator */ | ||
33 | __kernel_pid_t shm_lpid; /* pid of last operator */ | ||
34 | unsigned long shm_nattch; /* no. of current attaches */ | ||
35 | unsigned long __unused4; | ||
36 | unsigned long __unused5; | ||
37 | }; | ||
38 | |||
39 | struct shminfo64 { | ||
40 | unsigned long shmmax; | ||
41 | unsigned long shmmin; | ||
42 | unsigned long shmmni; | ||
43 | unsigned long shmseg; | ||
44 | unsigned long shmall; | ||
45 | unsigned long __unused1; | ||
46 | unsigned long __unused2; | ||
47 | unsigned long __unused3; | ||
48 | unsigned long __unused4; | ||
49 | }; | ||
50 | |||
51 | #endif /* _ASM_X86_SHMBUF_H */ | ||
diff --git a/arch/x86/include/asm/shmparam.h b/arch/x86/include/asm/shmparam.h new file mode 100644 index 000000000000..0880cf0917b9 --- /dev/null +++ b/arch/x86/include/asm/shmparam.h | |||
@@ -0,0 +1,6 @@ | |||
1 | #ifndef _ASM_X86_SHMPARAM_H | ||
2 | #define _ASM_X86_SHMPARAM_H | ||
3 | |||
4 | #define SHMLBA PAGE_SIZE /* attach addr a multiple of this */ | ||
5 | |||
6 | #endif /* _ASM_X86_SHMPARAM_H */ | ||
diff --git a/arch/x86/include/asm/sigcontext.h b/arch/x86/include/asm/sigcontext.h new file mode 100644 index 000000000000..0afcb5e58acc --- /dev/null +++ b/arch/x86/include/asm/sigcontext.h | |||
@@ -0,0 +1,284 @@ | |||
1 | #ifndef _ASM_X86_SIGCONTEXT_H | ||
2 | #define _ASM_X86_SIGCONTEXT_H | ||
3 | |||
4 | #include <linux/compiler.h> | ||
5 | #include <asm/types.h> | ||
6 | |||
7 | #define FP_XSTATE_MAGIC1 0x46505853U | ||
8 | #define FP_XSTATE_MAGIC2 0x46505845U | ||
9 | #define FP_XSTATE_MAGIC2_SIZE sizeof(FP_XSTATE_MAGIC2) | ||
10 | |||
11 | /* | ||
12 | * bytes 464..511 in the current 512byte layout of fxsave/fxrstor frame | ||
13 | * are reserved for SW usage. On cpu's supporting xsave/xrstor, these bytes | ||
14 | * are used to extended the fpstate pointer in the sigcontext, which now | ||
15 | * includes the extended state information along with fpstate information. | ||
16 | * | ||
17 | * Presence of FP_XSTATE_MAGIC1 at the beginning of this SW reserved | ||
18 | * area and FP_XSTATE_MAGIC2 at the end of memory layout | ||
19 | * (extended_size - FP_XSTATE_MAGIC2_SIZE) indicates the presence of the | ||
20 | * extended state information in the memory layout pointed by the fpstate | ||
21 | * pointer in sigcontext. | ||
22 | */ | ||
23 | struct _fpx_sw_bytes { | ||
24 | __u32 magic1; /* FP_XSTATE_MAGIC1 */ | ||
25 | __u32 extended_size; /* total size of the layout referred by | ||
26 | * fpstate pointer in the sigcontext. | ||
27 | */ | ||
28 | __u64 xstate_bv; | ||
29 | /* feature bit mask (including fp/sse/extended | ||
30 | * state) that is present in the memory | ||
31 | * layout. | ||
32 | */ | ||
33 | __u32 xstate_size; /* actual xsave state size, based on the | ||
34 | * features saved in the layout. | ||
35 | * 'extended_size' will be greater than | ||
36 | * 'xstate_size'. | ||
37 | */ | ||
38 | __u32 padding[7]; /* for future use. */ | ||
39 | }; | ||
40 | |||
41 | #ifdef __i386__ | ||
42 | /* | ||
43 | * As documented in the iBCS2 standard.. | ||
44 | * | ||
45 | * The first part of "struct _fpstate" is just the normal i387 | ||
46 | * hardware setup, the extra "status" word is used to save the | ||
47 | * coprocessor status word before entering the handler. | ||
48 | * | ||
49 | * Pentium III FXSR, SSE support | ||
50 | * Gareth Hughes <gareth@valinux.com>, May 2000 | ||
51 | * | ||
52 | * The FPU state data structure has had to grow to accommodate the | ||
53 | * extended FPU state required by the Streaming SIMD Extensions. | ||
54 | * There is no documented standard to accomplish this at the moment. | ||
55 | */ | ||
56 | struct _fpreg { | ||
57 | unsigned short significand[4]; | ||
58 | unsigned short exponent; | ||
59 | }; | ||
60 | |||
61 | struct _fpxreg { | ||
62 | unsigned short significand[4]; | ||
63 | unsigned short exponent; | ||
64 | unsigned short padding[3]; | ||
65 | }; | ||
66 | |||
67 | struct _xmmreg { | ||
68 | unsigned long element[4]; | ||
69 | }; | ||
70 | |||
71 | struct _fpstate { | ||
72 | /* Regular FPU environment */ | ||
73 | unsigned long cw; | ||
74 | unsigned long sw; | ||
75 | unsigned long tag; | ||
76 | unsigned long ipoff; | ||
77 | unsigned long cssel; | ||
78 | unsigned long dataoff; | ||
79 | unsigned long datasel; | ||
80 | struct _fpreg _st[8]; | ||
81 | unsigned short status; | ||
82 | unsigned short magic; /* 0xffff = regular FPU data only */ | ||
83 | |||
84 | /* FXSR FPU environment */ | ||
85 | unsigned long _fxsr_env[6]; /* FXSR FPU env is ignored */ | ||
86 | unsigned long mxcsr; | ||
87 | unsigned long reserved; | ||
88 | struct _fpxreg _fxsr_st[8]; /* FXSR FPU reg data is ignored */ | ||
89 | struct _xmmreg _xmm[8]; | ||
90 | unsigned long padding1[44]; | ||
91 | |||
92 | union { | ||
93 | unsigned long padding2[12]; | ||
94 | struct _fpx_sw_bytes sw_reserved; /* represents the extended | ||
95 | * state info */ | ||
96 | }; | ||
97 | }; | ||
98 | |||
99 | #define X86_FXSR_MAGIC 0x0000 | ||
100 | |||
101 | #ifdef __KERNEL__ | ||
102 | struct sigcontext { | ||
103 | unsigned short gs, __gsh; | ||
104 | unsigned short fs, __fsh; | ||
105 | unsigned short es, __esh; | ||
106 | unsigned short ds, __dsh; | ||
107 | unsigned long di; | ||
108 | unsigned long si; | ||
109 | unsigned long bp; | ||
110 | unsigned long sp; | ||
111 | unsigned long bx; | ||
112 | unsigned long dx; | ||
113 | unsigned long cx; | ||
114 | unsigned long ax; | ||
115 | unsigned long trapno; | ||
116 | unsigned long err; | ||
117 | unsigned long ip; | ||
118 | unsigned short cs, __csh; | ||
119 | unsigned long flags; | ||
120 | unsigned long sp_at_signal; | ||
121 | unsigned short ss, __ssh; | ||
122 | |||
123 | /* | ||
124 | * fpstate is really (struct _fpstate *) or (struct _xstate *) | ||
125 | * depending on the FP_XSTATE_MAGIC1 encoded in the SW reserved | ||
126 | * bytes of (struct _fpstate) and FP_XSTATE_MAGIC2 present at the end | ||
127 | * of extended memory layout. See comments at the defintion of | ||
128 | * (struct _fpx_sw_bytes) | ||
129 | */ | ||
130 | void __user *fpstate; /* zero when no FPU/extended context */ | ||
131 | unsigned long oldmask; | ||
132 | unsigned long cr2; | ||
133 | }; | ||
134 | #else /* __KERNEL__ */ | ||
135 | /* | ||
136 | * User-space might still rely on the old definition: | ||
137 | */ | ||
138 | struct sigcontext { | ||
139 | unsigned short gs, __gsh; | ||
140 | unsigned short fs, __fsh; | ||
141 | unsigned short es, __esh; | ||
142 | unsigned short ds, __dsh; | ||
143 | unsigned long edi; | ||
144 | unsigned long esi; | ||
145 | unsigned long ebp; | ||
146 | unsigned long esp; | ||
147 | unsigned long ebx; | ||
148 | unsigned long edx; | ||
149 | unsigned long ecx; | ||
150 | unsigned long eax; | ||
151 | unsigned long trapno; | ||
152 | unsigned long err; | ||
153 | unsigned long eip; | ||
154 | unsigned short cs, __csh; | ||
155 | unsigned long eflags; | ||
156 | unsigned long esp_at_signal; | ||
157 | unsigned short ss, __ssh; | ||
158 | struct _fpstate __user *fpstate; | ||
159 | unsigned long oldmask; | ||
160 | unsigned long cr2; | ||
161 | }; | ||
162 | #endif /* !__KERNEL__ */ | ||
163 | |||
164 | #else /* __i386__ */ | ||
165 | |||
166 | /* FXSAVE frame */ | ||
167 | /* Note: reserved1/2 may someday contain valuable data. Always save/restore | ||
168 | them when you change signal frames. */ | ||
169 | struct _fpstate { | ||
170 | __u16 cwd; | ||
171 | __u16 swd; | ||
172 | __u16 twd; /* Note this is not the same as the | ||
173 | 32bit/x87/FSAVE twd */ | ||
174 | __u16 fop; | ||
175 | __u64 rip; | ||
176 | __u64 rdp; | ||
177 | __u32 mxcsr; | ||
178 | __u32 mxcsr_mask; | ||
179 | __u32 st_space[32]; /* 8*16 bytes for each FP-reg */ | ||
180 | __u32 xmm_space[64]; /* 16*16 bytes for each XMM-reg */ | ||
181 | __u32 reserved2[12]; | ||
182 | union { | ||
183 | __u32 reserved3[12]; | ||
184 | struct _fpx_sw_bytes sw_reserved; /* represents the extended | ||
185 | * state information */ | ||
186 | }; | ||
187 | }; | ||
188 | |||
189 | #ifdef __KERNEL__ | ||
190 | struct sigcontext { | ||
191 | unsigned long r8; | ||
192 | unsigned long r9; | ||
193 | unsigned long r10; | ||
194 | unsigned long r11; | ||
195 | unsigned long r12; | ||
196 | unsigned long r13; | ||
197 | unsigned long r14; | ||
198 | unsigned long r15; | ||
199 | unsigned long di; | ||
200 | unsigned long si; | ||
201 | unsigned long bp; | ||
202 | unsigned long bx; | ||
203 | unsigned long dx; | ||
204 | unsigned long ax; | ||
205 | unsigned long cx; | ||
206 | unsigned long sp; | ||
207 | unsigned long ip; | ||
208 | unsigned long flags; | ||
209 | unsigned short cs; | ||
210 | unsigned short gs; | ||
211 | unsigned short fs; | ||
212 | unsigned short __pad0; | ||
213 | unsigned long err; | ||
214 | unsigned long trapno; | ||
215 | unsigned long oldmask; | ||
216 | unsigned long cr2; | ||
217 | |||
218 | /* | ||
219 | * fpstate is really (struct _fpstate *) or (struct _xstate *) | ||
220 | * depending on the FP_XSTATE_MAGIC1 encoded in the SW reserved | ||
221 | * bytes of (struct _fpstate) and FP_XSTATE_MAGIC2 present at the end | ||
222 | * of extended memory layout. See comments at the defintion of | ||
223 | * (struct _fpx_sw_bytes) | ||
224 | */ | ||
225 | void __user *fpstate; /* zero when no FPU/extended context */ | ||
226 | unsigned long reserved1[8]; | ||
227 | }; | ||
228 | #else /* __KERNEL__ */ | ||
229 | /* | ||
230 | * User-space might still rely on the old definition: | ||
231 | */ | ||
232 | struct sigcontext { | ||
233 | unsigned long r8; | ||
234 | unsigned long r9; | ||
235 | unsigned long r10; | ||
236 | unsigned long r11; | ||
237 | unsigned long r12; | ||
238 | unsigned long r13; | ||
239 | unsigned long r14; | ||
240 | unsigned long r15; | ||
241 | unsigned long rdi; | ||
242 | unsigned long rsi; | ||
243 | unsigned long rbp; | ||
244 | unsigned long rbx; | ||
245 | unsigned long rdx; | ||
246 | unsigned long rax; | ||
247 | unsigned long rcx; | ||
248 | unsigned long rsp; | ||
249 | unsigned long rip; | ||
250 | unsigned long eflags; /* RFLAGS */ | ||
251 | unsigned short cs; | ||
252 | unsigned short gs; | ||
253 | unsigned short fs; | ||
254 | unsigned short __pad0; | ||
255 | unsigned long err; | ||
256 | unsigned long trapno; | ||
257 | unsigned long oldmask; | ||
258 | unsigned long cr2; | ||
259 | struct _fpstate __user *fpstate; /* zero when no FPU context */ | ||
260 | unsigned long reserved1[8]; | ||
261 | }; | ||
262 | #endif /* !__KERNEL__ */ | ||
263 | |||
264 | #endif /* !__i386__ */ | ||
265 | |||
266 | struct _xsave_hdr { | ||
267 | __u64 xstate_bv; | ||
268 | __u64 reserved1[2]; | ||
269 | __u64 reserved2[5]; | ||
270 | }; | ||
271 | |||
272 | /* | ||
273 | * Extended state pointed by the fpstate pointer in the sigcontext. | ||
274 | * In addition to the fpstate, information encoded in the xstate_hdr | ||
275 | * indicates the presence of other extended state information | ||
276 | * supported by the processor and OS. | ||
277 | */ | ||
278 | struct _xstate { | ||
279 | struct _fpstate fpstate; | ||
280 | struct _xsave_hdr xstate_hdr; | ||
281 | /* new processor state extensions go here */ | ||
282 | }; | ||
283 | |||
284 | #endif /* _ASM_X86_SIGCONTEXT_H */ | ||
diff --git a/arch/x86/include/asm/sigcontext32.h b/arch/x86/include/asm/sigcontext32.h new file mode 100644 index 000000000000..6126188cf3a9 --- /dev/null +++ b/arch/x86/include/asm/sigcontext32.h | |||
@@ -0,0 +1,75 @@ | |||
1 | #ifndef _ASM_X86_SIGCONTEXT32_H | ||
2 | #define _ASM_X86_SIGCONTEXT32_H | ||
3 | |||
4 | /* signal context for 32bit programs. */ | ||
5 | |||
6 | #define X86_FXSR_MAGIC 0x0000 | ||
7 | |||
8 | struct _fpreg { | ||
9 | unsigned short significand[4]; | ||
10 | unsigned short exponent; | ||
11 | }; | ||
12 | |||
13 | struct _fpxreg { | ||
14 | unsigned short significand[4]; | ||
15 | unsigned short exponent; | ||
16 | unsigned short padding[3]; | ||
17 | }; | ||
18 | |||
19 | struct _xmmreg { | ||
20 | __u32 element[4]; | ||
21 | }; | ||
22 | |||
23 | /* FSAVE frame with extensions */ | ||
24 | struct _fpstate_ia32 { | ||
25 | /* Regular FPU environment */ | ||
26 | __u32 cw; | ||
27 | __u32 sw; | ||
28 | __u32 tag; /* not compatible to 64bit twd */ | ||
29 | __u32 ipoff; | ||
30 | __u32 cssel; | ||
31 | __u32 dataoff; | ||
32 | __u32 datasel; | ||
33 | struct _fpreg _st[8]; | ||
34 | unsigned short status; | ||
35 | unsigned short magic; /* 0xffff = regular FPU data only */ | ||
36 | |||
37 | /* FXSR FPU environment */ | ||
38 | __u32 _fxsr_env[6]; | ||
39 | __u32 mxcsr; | ||
40 | __u32 reserved; | ||
41 | struct _fpxreg _fxsr_st[8]; | ||
42 | struct _xmmreg _xmm[8]; /* It's actually 16 */ | ||
43 | __u32 padding[44]; | ||
44 | union { | ||
45 | __u32 padding2[12]; | ||
46 | struct _fpx_sw_bytes sw_reserved; | ||
47 | }; | ||
48 | }; | ||
49 | |||
50 | struct sigcontext_ia32 { | ||
51 | unsigned short gs, __gsh; | ||
52 | unsigned short fs, __fsh; | ||
53 | unsigned short es, __esh; | ||
54 | unsigned short ds, __dsh; | ||
55 | unsigned int di; | ||
56 | unsigned int si; | ||
57 | unsigned int bp; | ||
58 | unsigned int sp; | ||
59 | unsigned int bx; | ||
60 | unsigned int dx; | ||
61 | unsigned int cx; | ||
62 | unsigned int ax; | ||
63 | unsigned int trapno; | ||
64 | unsigned int err; | ||
65 | unsigned int ip; | ||
66 | unsigned short cs, __csh; | ||
67 | unsigned int flags; | ||
68 | unsigned int sp_at_signal; | ||
69 | unsigned short ss, __ssh; | ||
70 | unsigned int fpstate; /* really (struct _fpstate_ia32 *) */ | ||
71 | unsigned int oldmask; | ||
72 | unsigned int cr2; | ||
73 | }; | ||
74 | |||
75 | #endif /* _ASM_X86_SIGCONTEXT32_H */ | ||
diff --git a/arch/x86/include/asm/siginfo.h b/arch/x86/include/asm/siginfo.h new file mode 100644 index 000000000000..fc1aa5535646 --- /dev/null +++ b/arch/x86/include/asm/siginfo.h | |||
@@ -0,0 +1,10 @@ | |||
1 | #ifndef _ASM_X86_SIGINFO_H | ||
2 | #define _ASM_X86_SIGINFO_H | ||
3 | |||
4 | #ifdef __x86_64__ | ||
5 | # define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int)) | ||
6 | #endif | ||
7 | |||
8 | #include <asm-generic/siginfo.h> | ||
9 | |||
10 | #endif /* _ASM_X86_SIGINFO_H */ | ||
diff --git a/arch/x86/include/asm/signal.h b/arch/x86/include/asm/signal.h new file mode 100644 index 000000000000..96ac44f275da --- /dev/null +++ b/arch/x86/include/asm/signal.h | |||
@@ -0,0 +1,262 @@ | |||
1 | #ifndef _ASM_X86_SIGNAL_H | ||
2 | #define _ASM_X86_SIGNAL_H | ||
3 | |||
4 | #ifndef __ASSEMBLY__ | ||
5 | #include <linux/types.h> | ||
6 | #include <linux/time.h> | ||
7 | #include <linux/compiler.h> | ||
8 | |||
9 | /* Avoid too many header ordering problems. */ | ||
10 | struct siginfo; | ||
11 | |||
12 | #ifdef __KERNEL__ | ||
13 | #include <linux/linkage.h> | ||
14 | |||
15 | /* Most things should be clean enough to redefine this at will, if care | ||
16 | is taken to make libc match. */ | ||
17 | |||
18 | #define _NSIG 64 | ||
19 | |||
20 | #ifdef __i386__ | ||
21 | # define _NSIG_BPW 32 | ||
22 | #else | ||
23 | # define _NSIG_BPW 64 | ||
24 | #endif | ||
25 | |||
26 | #define _NSIG_WORDS (_NSIG / _NSIG_BPW) | ||
27 | |||
28 | typedef unsigned long old_sigset_t; /* at least 32 bits */ | ||
29 | |||
30 | typedef struct { | ||
31 | unsigned long sig[_NSIG_WORDS]; | ||
32 | } sigset_t; | ||
33 | |||
34 | #else | ||
35 | /* Here we must cater to libcs that poke about in kernel headers. */ | ||
36 | |||
37 | #define NSIG 32 | ||
38 | typedef unsigned long sigset_t; | ||
39 | |||
40 | #endif /* __KERNEL__ */ | ||
41 | #endif /* __ASSEMBLY__ */ | ||
42 | |||
43 | #define SIGHUP 1 | ||
44 | #define SIGINT 2 | ||
45 | #define SIGQUIT 3 | ||
46 | #define SIGILL 4 | ||
47 | #define SIGTRAP 5 | ||
48 | #define SIGABRT 6 | ||
49 | #define SIGIOT 6 | ||
50 | #define SIGBUS 7 | ||
51 | #define SIGFPE 8 | ||
52 | #define SIGKILL 9 | ||
53 | #define SIGUSR1 10 | ||
54 | #define SIGSEGV 11 | ||
55 | #define SIGUSR2 12 | ||
56 | #define SIGPIPE 13 | ||
57 | #define SIGALRM 14 | ||
58 | #define SIGTERM 15 | ||
59 | #define SIGSTKFLT 16 | ||
60 | #define SIGCHLD 17 | ||
61 | #define SIGCONT 18 | ||
62 | #define SIGSTOP 19 | ||
63 | #define SIGTSTP 20 | ||
64 | #define SIGTTIN 21 | ||
65 | #define SIGTTOU 22 | ||
66 | #define SIGURG 23 | ||
67 | #define SIGXCPU 24 | ||
68 | #define SIGXFSZ 25 | ||
69 | #define SIGVTALRM 26 | ||
70 | #define SIGPROF 27 | ||
71 | #define SIGWINCH 28 | ||
72 | #define SIGIO 29 | ||
73 | #define SIGPOLL SIGIO | ||
74 | /* | ||
75 | #define SIGLOST 29 | ||
76 | */ | ||
77 | #define SIGPWR 30 | ||
78 | #define SIGSYS 31 | ||
79 | #define SIGUNUSED 31 | ||
80 | |||
81 | /* These should not be considered constants from userland. */ | ||
82 | #define SIGRTMIN 32 | ||
83 | #define SIGRTMAX _NSIG | ||
84 | |||
85 | /* | ||
86 | * SA_FLAGS values: | ||
87 | * | ||
88 | * SA_ONSTACK indicates that a registered stack_t will be used. | ||
89 | * SA_RESTART flag to get restarting signals (which were the default long ago) | ||
90 | * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. | ||
91 | * SA_RESETHAND clears the handler when the signal is delivered. | ||
92 | * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. | ||
93 | * SA_NODEFER prevents the current signal from being masked in the handler. | ||
94 | * | ||
95 | * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single | ||
96 | * Unix names RESETHAND and NODEFER respectively. | ||
97 | */ | ||
98 | #define SA_NOCLDSTOP 0x00000001u | ||
99 | #define SA_NOCLDWAIT 0x00000002u | ||
100 | #define SA_SIGINFO 0x00000004u | ||
101 | #define SA_ONSTACK 0x08000000u | ||
102 | #define SA_RESTART 0x10000000u | ||
103 | #define SA_NODEFER 0x40000000u | ||
104 | #define SA_RESETHAND 0x80000000u | ||
105 | |||
106 | #define SA_NOMASK SA_NODEFER | ||
107 | #define SA_ONESHOT SA_RESETHAND | ||
108 | |||
109 | #define SA_RESTORER 0x04000000 | ||
110 | |||
111 | /* | ||
112 | * sigaltstack controls | ||
113 | */ | ||
114 | #define SS_ONSTACK 1 | ||
115 | #define SS_DISABLE 2 | ||
116 | |||
117 | #define MINSIGSTKSZ 2048 | ||
118 | #define SIGSTKSZ 8192 | ||
119 | |||
120 | #include <asm-generic/signal.h> | ||
121 | |||
122 | #ifndef __ASSEMBLY__ | ||
123 | |||
124 | #ifdef __i386__ | ||
125 | # ifdef __KERNEL__ | ||
126 | struct old_sigaction { | ||
127 | __sighandler_t sa_handler; | ||
128 | old_sigset_t sa_mask; | ||
129 | unsigned long sa_flags; | ||
130 | __sigrestore_t sa_restorer; | ||
131 | }; | ||
132 | |||
133 | struct sigaction { | ||
134 | __sighandler_t sa_handler; | ||
135 | unsigned long sa_flags; | ||
136 | __sigrestore_t sa_restorer; | ||
137 | sigset_t sa_mask; /* mask last for extensibility */ | ||
138 | }; | ||
139 | |||
140 | struct k_sigaction { | ||
141 | struct sigaction sa; | ||
142 | }; | ||
143 | |||
144 | extern void do_notify_resume(struct pt_regs *, void *, __u32); | ||
145 | |||
146 | # else /* __KERNEL__ */ | ||
147 | /* Here we must cater to libcs that poke about in kernel headers. */ | ||
148 | |||
149 | struct sigaction { | ||
150 | union { | ||
151 | __sighandler_t _sa_handler; | ||
152 | void (*_sa_sigaction)(int, struct siginfo *, void *); | ||
153 | } _u; | ||
154 | sigset_t sa_mask; | ||
155 | unsigned long sa_flags; | ||
156 | void (*sa_restorer)(void); | ||
157 | }; | ||
158 | |||
159 | #define sa_handler _u._sa_handler | ||
160 | #define sa_sigaction _u._sa_sigaction | ||
161 | |||
162 | # endif /* ! __KERNEL__ */ | ||
163 | #else /* __i386__ */ | ||
164 | |||
165 | struct sigaction { | ||
166 | __sighandler_t sa_handler; | ||
167 | unsigned long sa_flags; | ||
168 | __sigrestore_t sa_restorer; | ||
169 | sigset_t sa_mask; /* mask last for extensibility */ | ||
170 | }; | ||
171 | |||
172 | struct k_sigaction { | ||
173 | struct sigaction sa; | ||
174 | }; | ||
175 | |||
176 | #endif /* !__i386__ */ | ||
177 | |||
178 | typedef struct sigaltstack { | ||
179 | void __user *ss_sp; | ||
180 | int ss_flags; | ||
181 | size_t ss_size; | ||
182 | } stack_t; | ||
183 | |||
184 | #ifdef __KERNEL__ | ||
185 | #include <asm/sigcontext.h> | ||
186 | |||
187 | #ifdef __i386__ | ||
188 | |||
189 | #define __HAVE_ARCH_SIG_BITOPS | ||
190 | |||
191 | #define sigaddset(set,sig) \ | ||
192 | (__builtin_constant_p(sig) \ | ||
193 | ? __const_sigaddset((set), (sig)) \ | ||
194 | : __gen_sigaddset((set), (sig))) | ||
195 | |||
196 | static inline void __gen_sigaddset(sigset_t *set, int _sig) | ||
197 | { | ||
198 | asm("btsl %1,%0" : "+m"(*set) : "Ir"(_sig - 1) : "cc"); | ||
199 | } | ||
200 | |||
201 | static inline void __const_sigaddset(sigset_t *set, int _sig) | ||
202 | { | ||
203 | unsigned long sig = _sig - 1; | ||
204 | set->sig[sig / _NSIG_BPW] |= 1 << (sig % _NSIG_BPW); | ||
205 | } | ||
206 | |||
207 | #define sigdelset(set, sig) \ | ||
208 | (__builtin_constant_p(sig) \ | ||
209 | ? __const_sigdelset((set), (sig)) \ | ||
210 | : __gen_sigdelset((set), (sig))) | ||
211 | |||
212 | |||
213 | static inline void __gen_sigdelset(sigset_t *set, int _sig) | ||
214 | { | ||
215 | asm("btrl %1,%0" : "+m"(*set) : "Ir"(_sig - 1) : "cc"); | ||
216 | } | ||
217 | |||
218 | static inline void __const_sigdelset(sigset_t *set, int _sig) | ||
219 | { | ||
220 | unsigned long sig = _sig - 1; | ||
221 | set->sig[sig / _NSIG_BPW] &= ~(1 << (sig % _NSIG_BPW)); | ||
222 | } | ||
223 | |||
224 | static inline int __const_sigismember(sigset_t *set, int _sig) | ||
225 | { | ||
226 | unsigned long sig = _sig - 1; | ||
227 | return 1 & (set->sig[sig / _NSIG_BPW] >> (sig % _NSIG_BPW)); | ||
228 | } | ||
229 | |||
230 | static inline int __gen_sigismember(sigset_t *set, int _sig) | ||
231 | { | ||
232 | int ret; | ||
233 | asm("btl %2,%1\n\tsbbl %0,%0" | ||
234 | : "=r"(ret) : "m"(*set), "Ir"(_sig-1) : "cc"); | ||
235 | return ret; | ||
236 | } | ||
237 | |||
238 | #define sigismember(set, sig) \ | ||
239 | (__builtin_constant_p(sig) \ | ||
240 | ? __const_sigismember((set), (sig)) \ | ||
241 | : __gen_sigismember((set), (sig))) | ||
242 | |||
243 | static inline int sigfindinword(unsigned long word) | ||
244 | { | ||
245 | asm("bsfl %1,%0" : "=r"(word) : "rm"(word) : "cc"); | ||
246 | return word; | ||
247 | } | ||
248 | |||
249 | struct pt_regs; | ||
250 | |||
251 | #else /* __i386__ */ | ||
252 | |||
253 | #undef __HAVE_ARCH_SIG_BITOPS | ||
254 | |||
255 | #endif /* !__i386__ */ | ||
256 | |||
257 | #define ptrace_signal_deliver(regs, cookie) do { } while (0) | ||
258 | |||
259 | #endif /* __KERNEL__ */ | ||
260 | #endif /* __ASSEMBLY__ */ | ||
261 | |||
262 | #endif /* _ASM_X86_SIGNAL_H */ | ||
diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h new file mode 100644 index 000000000000..2766021aef80 --- /dev/null +++ b/arch/x86/include/asm/smp.h | |||
@@ -0,0 +1,229 @@ | |||
1 | #ifndef _ASM_X86_SMP_H | ||
2 | #define _ASM_X86_SMP_H | ||
3 | #ifndef __ASSEMBLY__ | ||
4 | #include <linux/cpumask.h> | ||
5 | #include <linux/init.h> | ||
6 | #include <asm/percpu.h> | ||
7 | |||
8 | /* | ||
9 | * We need the APIC definitions automatically as part of 'smp.h' | ||
10 | */ | ||
11 | #ifdef CONFIG_X86_LOCAL_APIC | ||
12 | # include <asm/mpspec.h> | ||
13 | # include <asm/apic.h> | ||
14 | # ifdef CONFIG_X86_IO_APIC | ||
15 | # include <asm/io_apic.h> | ||
16 | # endif | ||
17 | #endif | ||
18 | #include <asm/pda.h> | ||
19 | #include <asm/thread_info.h> | ||
20 | |||
21 | extern cpumask_t cpu_callout_map; | ||
22 | extern cpumask_t cpu_initialized; | ||
23 | extern cpumask_t cpu_callin_map; | ||
24 | |||
25 | extern void (*mtrr_hook)(void); | ||
26 | extern void zap_low_mappings(void); | ||
27 | |||
28 | extern int __cpuinit get_local_pda(int cpu); | ||
29 | |||
30 | extern int smp_num_siblings; | ||
31 | extern unsigned int num_processors; | ||
32 | extern cpumask_t cpu_initialized; | ||
33 | |||
34 | DECLARE_PER_CPU(cpumask_t, cpu_sibling_map); | ||
35 | DECLARE_PER_CPU(cpumask_t, cpu_core_map); | ||
36 | DECLARE_PER_CPU(u16, cpu_llc_id); | ||
37 | #ifdef CONFIG_X86_32 | ||
38 | DECLARE_PER_CPU(int, cpu_number); | ||
39 | #endif | ||
40 | |||
41 | DECLARE_EARLY_PER_CPU(u16, x86_cpu_to_apicid); | ||
42 | DECLARE_EARLY_PER_CPU(u16, x86_bios_cpu_apicid); | ||
43 | |||
44 | /* Static state in head.S used to set up a CPU */ | ||
45 | extern struct { | ||
46 | void *sp; | ||
47 | unsigned short ss; | ||
48 | } stack_start; | ||
49 | |||
50 | struct smp_ops { | ||
51 | void (*smp_prepare_boot_cpu)(void); | ||
52 | void (*smp_prepare_cpus)(unsigned max_cpus); | ||
53 | void (*smp_cpus_done)(unsigned max_cpus); | ||
54 | |||
55 | void (*smp_send_stop)(void); | ||
56 | void (*smp_send_reschedule)(int cpu); | ||
57 | |||
58 | int (*cpu_up)(unsigned cpu); | ||
59 | int (*cpu_disable)(void); | ||
60 | void (*cpu_die)(unsigned int cpu); | ||
61 | void (*play_dead)(void); | ||
62 | |||
63 | void (*send_call_func_ipi)(cpumask_t mask); | ||
64 | void (*send_call_func_single_ipi)(int cpu); | ||
65 | }; | ||
66 | |||
67 | /* Globals due to paravirt */ | ||
68 | extern void set_cpu_sibling_map(int cpu); | ||
69 | |||
70 | #ifdef CONFIG_SMP | ||
71 | #ifndef CONFIG_PARAVIRT | ||
72 | #define startup_ipi_hook(phys_apicid, start_eip, start_esp) do { } while (0) | ||
73 | #endif | ||
74 | extern struct smp_ops smp_ops; | ||
75 | |||
76 | static inline void smp_send_stop(void) | ||
77 | { | ||
78 | smp_ops.smp_send_stop(); | ||
79 | } | ||
80 | |||
81 | static inline void smp_prepare_boot_cpu(void) | ||
82 | { | ||
83 | smp_ops.smp_prepare_boot_cpu(); | ||
84 | } | ||
85 | |||
86 | static inline void smp_prepare_cpus(unsigned int max_cpus) | ||
87 | { | ||
88 | smp_ops.smp_prepare_cpus(max_cpus); | ||
89 | } | ||
90 | |||
91 | static inline void smp_cpus_done(unsigned int max_cpus) | ||
92 | { | ||
93 | smp_ops.smp_cpus_done(max_cpus); | ||
94 | } | ||
95 | |||
96 | static inline int __cpu_up(unsigned int cpu) | ||
97 | { | ||
98 | return smp_ops.cpu_up(cpu); | ||
99 | } | ||
100 | |||
101 | static inline int __cpu_disable(void) | ||
102 | { | ||
103 | return smp_ops.cpu_disable(); | ||
104 | } | ||
105 | |||
106 | static inline void __cpu_die(unsigned int cpu) | ||
107 | { | ||
108 | smp_ops.cpu_die(cpu); | ||
109 | } | ||
110 | |||
111 | static inline void play_dead(void) | ||
112 | { | ||
113 | smp_ops.play_dead(); | ||
114 | } | ||
115 | |||
116 | static inline void smp_send_reschedule(int cpu) | ||
117 | { | ||
118 | smp_ops.smp_send_reschedule(cpu); | ||
119 | } | ||
120 | |||
121 | static inline void arch_send_call_function_single_ipi(int cpu) | ||
122 | { | ||
123 | smp_ops.send_call_func_single_ipi(cpu); | ||
124 | } | ||
125 | |||
126 | static inline void arch_send_call_function_ipi(cpumask_t mask) | ||
127 | { | ||
128 | smp_ops.send_call_func_ipi(mask); | ||
129 | } | ||
130 | |||
131 | void cpu_disable_common(void); | ||
132 | void native_smp_prepare_boot_cpu(void); | ||
133 | void native_smp_prepare_cpus(unsigned int max_cpus); | ||
134 | void native_smp_cpus_done(unsigned int max_cpus); | ||
135 | int native_cpu_up(unsigned int cpunum); | ||
136 | int native_cpu_disable(void); | ||
137 | void native_cpu_die(unsigned int cpu); | ||
138 | void native_play_dead(void); | ||
139 | void play_dead_common(void); | ||
140 | |||
141 | void native_send_call_func_ipi(cpumask_t mask); | ||
142 | void native_send_call_func_single_ipi(int cpu); | ||
143 | |||
144 | extern void prefill_possible_map(void); | ||
145 | |||
146 | void smp_store_cpu_info(int id); | ||
147 | #define cpu_physical_id(cpu) per_cpu(x86_cpu_to_apicid, cpu) | ||
148 | |||
149 | /* We don't mark CPUs online until __cpu_up(), so we need another measure */ | ||
150 | static inline int num_booting_cpus(void) | ||
151 | { | ||
152 | return cpus_weight(cpu_callout_map); | ||
153 | } | ||
154 | #else | ||
155 | static inline void prefill_possible_map(void) | ||
156 | { | ||
157 | } | ||
158 | #endif /* CONFIG_SMP */ | ||
159 | |||
160 | extern unsigned disabled_cpus __cpuinitdata; | ||
161 | |||
162 | #ifdef CONFIG_X86_32_SMP | ||
163 | /* | ||
164 | * This function is needed by all SMP systems. It must _always_ be valid | ||
165 | * from the initial startup. We map APIC_BASE very early in page_setup(), | ||
166 | * so this is correct in the x86 case. | ||
167 | */ | ||
168 | #define raw_smp_processor_id() (x86_read_percpu(cpu_number)) | ||
169 | extern int safe_smp_processor_id(void); | ||
170 | |||
171 | #elif defined(CONFIG_X86_64_SMP) | ||
172 | #define raw_smp_processor_id() read_pda(cpunumber) | ||
173 | |||
174 | #define stack_smp_processor_id() \ | ||
175 | ({ \ | ||
176 | struct thread_info *ti; \ | ||
177 | __asm__("andq %%rsp,%0; ":"=r" (ti) : "0" (CURRENT_MASK)); \ | ||
178 | ti->cpu; \ | ||
179 | }) | ||
180 | #define safe_smp_processor_id() smp_processor_id() | ||
181 | |||
182 | #else /* !CONFIG_X86_32_SMP && !CONFIG_X86_64_SMP */ | ||
183 | #define cpu_physical_id(cpu) boot_cpu_physical_apicid | ||
184 | #define safe_smp_processor_id() 0 | ||
185 | #define stack_smp_processor_id() 0 | ||
186 | #endif | ||
187 | |||
188 | #ifdef CONFIG_X86_LOCAL_APIC | ||
189 | |||
190 | #ifndef CONFIG_X86_64 | ||
191 | static inline int logical_smp_processor_id(void) | ||
192 | { | ||
193 | /* we don't want to mark this access volatile - bad code generation */ | ||
194 | return GET_APIC_LOGICAL_ID(*(u32 *)(APIC_BASE + APIC_LDR)); | ||
195 | } | ||
196 | |||
197 | #include <mach_apicdef.h> | ||
198 | static inline unsigned int read_apic_id(void) | ||
199 | { | ||
200 | unsigned int reg; | ||
201 | |||
202 | reg = *(u32 *)(APIC_BASE + APIC_ID); | ||
203 | |||
204 | return GET_APIC_ID(reg); | ||
205 | } | ||
206 | #endif | ||
207 | |||
208 | |||
209 | # if defined(APIC_DEFINITION) || defined(CONFIG_X86_64) | ||
210 | extern int hard_smp_processor_id(void); | ||
211 | # else | ||
212 | #include <mach_apicdef.h> | ||
213 | static inline int hard_smp_processor_id(void) | ||
214 | { | ||
215 | /* we don't want to mark this access volatile - bad code generation */ | ||
216 | return read_apic_id(); | ||
217 | } | ||
218 | # endif /* APIC_DEFINITION */ | ||
219 | |||
220 | #else /* CONFIG_X86_LOCAL_APIC */ | ||
221 | |||
222 | # ifndef CONFIG_SMP | ||
223 | # define hard_smp_processor_id() 0 | ||
224 | # endif | ||
225 | |||
226 | #endif /* CONFIG_X86_LOCAL_APIC */ | ||
227 | |||
228 | #endif /* __ASSEMBLY__ */ | ||
229 | #endif /* _ASM_X86_SMP_H */ | ||
diff --git a/arch/x86/include/asm/socket.h b/arch/x86/include/asm/socket.h new file mode 100644 index 000000000000..8ab9cc8b2ecc --- /dev/null +++ b/arch/x86/include/asm/socket.h | |||
@@ -0,0 +1,57 @@ | |||
1 | #ifndef _ASM_X86_SOCKET_H | ||
2 | #define _ASM_X86_SOCKET_H | ||
3 | |||
4 | #include <asm/sockios.h> | ||
5 | |||
6 | /* For setsockopt(2) */ | ||
7 | #define SOL_SOCKET 1 | ||
8 | |||
9 | #define SO_DEBUG 1 | ||
10 | #define SO_REUSEADDR 2 | ||
11 | #define SO_TYPE 3 | ||
12 | #define SO_ERROR 4 | ||
13 | #define SO_DONTROUTE 5 | ||
14 | #define SO_BROADCAST 6 | ||
15 | #define SO_SNDBUF 7 | ||
16 | #define SO_RCVBUF 8 | ||
17 | #define SO_SNDBUFFORCE 32 | ||
18 | #define SO_RCVBUFFORCE 33 | ||
19 | #define SO_KEEPALIVE 9 | ||
20 | #define SO_OOBINLINE 10 | ||
21 | #define SO_NO_CHECK 11 | ||
22 | #define SO_PRIORITY 12 | ||
23 | #define SO_LINGER 13 | ||
24 | #define SO_BSDCOMPAT 14 | ||
25 | /* To add :#define SO_REUSEPORT 15 */ | ||
26 | #define SO_PASSCRED 16 | ||
27 | #define SO_PEERCRED 17 | ||
28 | #define SO_RCVLOWAT 18 | ||
29 | #define SO_SNDLOWAT 19 | ||
30 | #define SO_RCVTIMEO 20 | ||
31 | #define SO_SNDTIMEO 21 | ||
32 | |||
33 | /* Security levels - as per NRL IPv6 - don't actually do anything */ | ||
34 | #define SO_SECURITY_AUTHENTICATION 22 | ||
35 | #define SO_SECURITY_ENCRYPTION_TRANSPORT 23 | ||
36 | #define SO_SECURITY_ENCRYPTION_NETWORK 24 | ||
37 | |||
38 | #define SO_BINDTODEVICE 25 | ||
39 | |||
40 | /* Socket filtering */ | ||
41 | #define SO_ATTACH_FILTER 26 | ||
42 | #define SO_DETACH_FILTER 27 | ||
43 | |||
44 | #define SO_PEERNAME 28 | ||
45 | #define SO_TIMESTAMP 29 | ||
46 | #define SCM_TIMESTAMP SO_TIMESTAMP | ||
47 | |||
48 | #define SO_ACCEPTCONN 30 | ||
49 | |||
50 | #define SO_PEERSEC 31 | ||
51 | #define SO_PASSSEC 34 | ||
52 | #define SO_TIMESTAMPNS 35 | ||
53 | #define SCM_TIMESTAMPNS SO_TIMESTAMPNS | ||
54 | |||
55 | #define SO_MARK 36 | ||
56 | |||
57 | #endif /* _ASM_X86_SOCKET_H */ | ||
diff --git a/arch/x86/include/asm/sockios.h b/arch/x86/include/asm/sockios.h new file mode 100644 index 000000000000..49cc72b5d3c9 --- /dev/null +++ b/arch/x86/include/asm/sockios.h | |||
@@ -0,0 +1,13 @@ | |||
1 | #ifndef _ASM_X86_SOCKIOS_H | ||
2 | #define _ASM_X86_SOCKIOS_H | ||
3 | |||
4 | /* Socket-level I/O control calls. */ | ||
5 | #define FIOSETOWN 0x8901 | ||
6 | #define SIOCSPGRP 0x8902 | ||
7 | #define FIOGETOWN 0x8903 | ||
8 | #define SIOCGPGRP 0x8904 | ||
9 | #define SIOCATMARK 0x8905 | ||
10 | #define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */ | ||
11 | #define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */ | ||
12 | |||
13 | #endif /* _ASM_X86_SOCKIOS_H */ | ||
diff --git a/arch/x86/include/asm/sparsemem.h b/arch/x86/include/asm/sparsemem.h new file mode 100644 index 000000000000..be44f7dab395 --- /dev/null +++ b/arch/x86/include/asm/sparsemem.h | |||
@@ -0,0 +1,34 @@ | |||
1 | #ifndef _ASM_X86_SPARSEMEM_H | ||
2 | #define _ASM_X86_SPARSEMEM_H | ||
3 | |||
4 | #ifdef CONFIG_SPARSEMEM | ||
5 | /* | ||
6 | * generic non-linear memory support: | ||
7 | * | ||
8 | * 1) we will not split memory into more chunks than will fit into the flags | ||
9 | * field of the struct page | ||
10 | * | ||
11 | * SECTION_SIZE_BITS 2^n: size of each section | ||
12 | * MAX_PHYSADDR_BITS 2^n: max size of physical address space | ||
13 | * MAX_PHYSMEM_BITS 2^n: how much memory we can have in that space | ||
14 | * | ||
15 | */ | ||
16 | |||
17 | #ifdef CONFIG_X86_32 | ||
18 | # ifdef CONFIG_X86_PAE | ||
19 | # define SECTION_SIZE_BITS 29 | ||
20 | # define MAX_PHYSADDR_BITS 36 | ||
21 | # define MAX_PHYSMEM_BITS 36 | ||
22 | # else | ||
23 | # define SECTION_SIZE_BITS 26 | ||
24 | # define MAX_PHYSADDR_BITS 32 | ||
25 | # define MAX_PHYSMEM_BITS 32 | ||
26 | # endif | ||
27 | #else /* CONFIG_X86_32 */ | ||
28 | # define SECTION_SIZE_BITS 27 /* matt - 128 is convenient right now */ | ||
29 | # define MAX_PHYSADDR_BITS 44 | ||
30 | # define MAX_PHYSMEM_BITS 44 | ||
31 | #endif | ||
32 | |||
33 | #endif /* CONFIG_SPARSEMEM */ | ||
34 | #endif /* _ASM_X86_SPARSEMEM_H */ | ||
diff --git a/arch/x86/include/asm/spinlock.h b/arch/x86/include/asm/spinlock.h new file mode 100644 index 000000000000..d17c91981da2 --- /dev/null +++ b/arch/x86/include/asm/spinlock.h | |||
@@ -0,0 +1,364 @@ | |||
1 | #ifndef _ASM_X86_SPINLOCK_H | ||
2 | #define _ASM_X86_SPINLOCK_H | ||
3 | |||
4 | #include <asm/atomic.h> | ||
5 | #include <asm/rwlock.h> | ||
6 | #include <asm/page.h> | ||
7 | #include <asm/processor.h> | ||
8 | #include <linux/compiler.h> | ||
9 | #include <asm/paravirt.h> | ||
10 | /* | ||
11 | * Your basic SMP spinlocks, allowing only a single CPU anywhere | ||
12 | * | ||
13 | * Simple spin lock operations. There are two variants, one clears IRQ's | ||
14 | * on the local processor, one does not. | ||
15 | * | ||
16 | * These are fair FIFO ticket locks, which are currently limited to 256 | ||
17 | * CPUs. | ||
18 | * | ||
19 | * (the type definitions are in asm/spinlock_types.h) | ||
20 | */ | ||
21 | |||
22 | #ifdef CONFIG_X86_32 | ||
23 | # define LOCK_PTR_REG "a" | ||
24 | # define REG_PTR_MODE "k" | ||
25 | #else | ||
26 | # define LOCK_PTR_REG "D" | ||
27 | # define REG_PTR_MODE "q" | ||
28 | #endif | ||
29 | |||
30 | #if defined(CONFIG_X86_32) && \ | ||
31 | (defined(CONFIG_X86_OOSTORE) || defined(CONFIG_X86_PPRO_FENCE)) | ||
32 | /* | ||
33 | * On PPro SMP or if we are using OOSTORE, we use a locked operation to unlock | ||
34 | * (PPro errata 66, 92) | ||
35 | */ | ||
36 | # define UNLOCK_LOCK_PREFIX LOCK_PREFIX | ||
37 | #else | ||
38 | # define UNLOCK_LOCK_PREFIX | ||
39 | #endif | ||
40 | |||
41 | /* | ||
42 | * Ticket locks are conceptually two parts, one indicating the current head of | ||
43 | * the queue, and the other indicating the current tail. The lock is acquired | ||
44 | * by atomically noting the tail and incrementing it by one (thus adding | ||
45 | * ourself to the queue and noting our position), then waiting until the head | ||
46 | * becomes equal to the the initial value of the tail. | ||
47 | * | ||
48 | * We use an xadd covering *both* parts of the lock, to increment the tail and | ||
49 | * also load the position of the head, which takes care of memory ordering | ||
50 | * issues and should be optimal for the uncontended case. Note the tail must be | ||
51 | * in the high part, because a wide xadd increment of the low part would carry | ||
52 | * up and contaminate the high part. | ||
53 | * | ||
54 | * With fewer than 2^8 possible CPUs, we can use x86's partial registers to | ||
55 | * save some instructions and make the code more elegant. There really isn't | ||
56 | * much between them in performance though, especially as locks are out of line. | ||
57 | */ | ||
58 | #if (NR_CPUS < 256) | ||
59 | #define TICKET_SHIFT 8 | ||
60 | |||
61 | static __always_inline void __ticket_spin_lock(raw_spinlock_t *lock) | ||
62 | { | ||
63 | short inc = 0x0100; | ||
64 | |||
65 | asm volatile ( | ||
66 | LOCK_PREFIX "xaddw %w0, %1\n" | ||
67 | "1:\t" | ||
68 | "cmpb %h0, %b0\n\t" | ||
69 | "je 2f\n\t" | ||
70 | "rep ; nop\n\t" | ||
71 | "movb %1, %b0\n\t" | ||
72 | /* don't need lfence here, because loads are in-order */ | ||
73 | "jmp 1b\n" | ||
74 | "2:" | ||
75 | : "+Q" (inc), "+m" (lock->slock) | ||
76 | : | ||
77 | : "memory", "cc"); | ||
78 | } | ||
79 | |||
80 | static __always_inline int __ticket_spin_trylock(raw_spinlock_t *lock) | ||
81 | { | ||
82 | int tmp, new; | ||
83 | |||
84 | asm volatile("movzwl %2, %0\n\t" | ||
85 | "cmpb %h0,%b0\n\t" | ||
86 | "leal 0x100(%" REG_PTR_MODE "0), %1\n\t" | ||
87 | "jne 1f\n\t" | ||
88 | LOCK_PREFIX "cmpxchgw %w1,%2\n\t" | ||
89 | "1:" | ||
90 | "sete %b1\n\t" | ||
91 | "movzbl %b1,%0\n\t" | ||
92 | : "=&a" (tmp), "=&q" (new), "+m" (lock->slock) | ||
93 | : | ||
94 | : "memory", "cc"); | ||
95 | |||
96 | return tmp; | ||
97 | } | ||
98 | |||
99 | static __always_inline void __ticket_spin_unlock(raw_spinlock_t *lock) | ||
100 | { | ||
101 | asm volatile(UNLOCK_LOCK_PREFIX "incb %0" | ||
102 | : "+m" (lock->slock) | ||
103 | : | ||
104 | : "memory", "cc"); | ||
105 | } | ||
106 | #else | ||
107 | #define TICKET_SHIFT 16 | ||
108 | |||
109 | static __always_inline void __ticket_spin_lock(raw_spinlock_t *lock) | ||
110 | { | ||
111 | int inc = 0x00010000; | ||
112 | int tmp; | ||
113 | |||
114 | asm volatile(LOCK_PREFIX "xaddl %0, %1\n" | ||
115 | "movzwl %w0, %2\n\t" | ||
116 | "shrl $16, %0\n\t" | ||
117 | "1:\t" | ||
118 | "cmpl %0, %2\n\t" | ||
119 | "je 2f\n\t" | ||
120 | "rep ; nop\n\t" | ||
121 | "movzwl %1, %2\n\t" | ||
122 | /* don't need lfence here, because loads are in-order */ | ||
123 | "jmp 1b\n" | ||
124 | "2:" | ||
125 | : "+r" (inc), "+m" (lock->slock), "=&r" (tmp) | ||
126 | : | ||
127 | : "memory", "cc"); | ||
128 | } | ||
129 | |||
130 | static __always_inline int __ticket_spin_trylock(raw_spinlock_t *lock) | ||
131 | { | ||
132 | int tmp; | ||
133 | int new; | ||
134 | |||
135 | asm volatile("movl %2,%0\n\t" | ||
136 | "movl %0,%1\n\t" | ||
137 | "roll $16, %0\n\t" | ||
138 | "cmpl %0,%1\n\t" | ||
139 | "leal 0x00010000(%" REG_PTR_MODE "0), %1\n\t" | ||
140 | "jne 1f\n\t" | ||
141 | LOCK_PREFIX "cmpxchgl %1,%2\n\t" | ||
142 | "1:" | ||
143 | "sete %b1\n\t" | ||
144 | "movzbl %b1,%0\n\t" | ||
145 | : "=&a" (tmp), "=&q" (new), "+m" (lock->slock) | ||
146 | : | ||
147 | : "memory", "cc"); | ||
148 | |||
149 | return tmp; | ||
150 | } | ||
151 | |||
152 | static __always_inline void __ticket_spin_unlock(raw_spinlock_t *lock) | ||
153 | { | ||
154 | asm volatile(UNLOCK_LOCK_PREFIX "incw %0" | ||
155 | : "+m" (lock->slock) | ||
156 | : | ||
157 | : "memory", "cc"); | ||
158 | } | ||
159 | #endif | ||
160 | |||
161 | static inline int __ticket_spin_is_locked(raw_spinlock_t *lock) | ||
162 | { | ||
163 | int tmp = ACCESS_ONCE(lock->slock); | ||
164 | |||
165 | return !!(((tmp >> TICKET_SHIFT) ^ tmp) & ((1 << TICKET_SHIFT) - 1)); | ||
166 | } | ||
167 | |||
168 | static inline int __ticket_spin_is_contended(raw_spinlock_t *lock) | ||
169 | { | ||
170 | int tmp = ACCESS_ONCE(lock->slock); | ||
171 | |||
172 | return (((tmp >> TICKET_SHIFT) - tmp) & ((1 << TICKET_SHIFT) - 1)) > 1; | ||
173 | } | ||
174 | |||
175 | #ifdef CONFIG_PARAVIRT | ||
176 | /* | ||
177 | * Define virtualization-friendly old-style lock byte lock, for use in | ||
178 | * pv_lock_ops if desired. | ||
179 | * | ||
180 | * This differs from the pre-2.6.24 spinlock by always using xchgb | ||
181 | * rather than decb to take the lock; this allows it to use a | ||
182 | * zero-initialized lock structure. It also maintains a 1-byte | ||
183 | * contention counter, so that we can implement | ||
184 | * __byte_spin_is_contended. | ||
185 | */ | ||
186 | struct __byte_spinlock { | ||
187 | s8 lock; | ||
188 | s8 spinners; | ||
189 | }; | ||
190 | |||
191 | static inline int __byte_spin_is_locked(raw_spinlock_t *lock) | ||
192 | { | ||
193 | struct __byte_spinlock *bl = (struct __byte_spinlock *)lock; | ||
194 | return bl->lock != 0; | ||
195 | } | ||
196 | |||
197 | static inline int __byte_spin_is_contended(raw_spinlock_t *lock) | ||
198 | { | ||
199 | struct __byte_spinlock *bl = (struct __byte_spinlock *)lock; | ||
200 | return bl->spinners != 0; | ||
201 | } | ||
202 | |||
203 | static inline void __byte_spin_lock(raw_spinlock_t *lock) | ||
204 | { | ||
205 | struct __byte_spinlock *bl = (struct __byte_spinlock *)lock; | ||
206 | s8 val = 1; | ||
207 | |||
208 | asm("1: xchgb %1, %0\n" | ||
209 | " test %1,%1\n" | ||
210 | " jz 3f\n" | ||
211 | " " LOCK_PREFIX "incb %2\n" | ||
212 | "2: rep;nop\n" | ||
213 | " cmpb $1, %0\n" | ||
214 | " je 2b\n" | ||
215 | " " LOCK_PREFIX "decb %2\n" | ||
216 | " jmp 1b\n" | ||
217 | "3:" | ||
218 | : "+m" (bl->lock), "+q" (val), "+m" (bl->spinners): : "memory"); | ||
219 | } | ||
220 | |||
221 | static inline int __byte_spin_trylock(raw_spinlock_t *lock) | ||
222 | { | ||
223 | struct __byte_spinlock *bl = (struct __byte_spinlock *)lock; | ||
224 | u8 old = 1; | ||
225 | |||
226 | asm("xchgb %1,%0" | ||
227 | : "+m" (bl->lock), "+q" (old) : : "memory"); | ||
228 | |||
229 | return old == 0; | ||
230 | } | ||
231 | |||
232 | static inline void __byte_spin_unlock(raw_spinlock_t *lock) | ||
233 | { | ||
234 | struct __byte_spinlock *bl = (struct __byte_spinlock *)lock; | ||
235 | smp_wmb(); | ||
236 | bl->lock = 0; | ||
237 | } | ||
238 | #else /* !CONFIG_PARAVIRT */ | ||
239 | static inline int __raw_spin_is_locked(raw_spinlock_t *lock) | ||
240 | { | ||
241 | return __ticket_spin_is_locked(lock); | ||
242 | } | ||
243 | |||
244 | static inline int __raw_spin_is_contended(raw_spinlock_t *lock) | ||
245 | { | ||
246 | return __ticket_spin_is_contended(lock); | ||
247 | } | ||
248 | |||
249 | static __always_inline void __raw_spin_lock(raw_spinlock_t *lock) | ||
250 | { | ||
251 | __ticket_spin_lock(lock); | ||
252 | } | ||
253 | |||
254 | static __always_inline int __raw_spin_trylock(raw_spinlock_t *lock) | ||
255 | { | ||
256 | return __ticket_spin_trylock(lock); | ||
257 | } | ||
258 | |||
259 | static __always_inline void __raw_spin_unlock(raw_spinlock_t *lock) | ||
260 | { | ||
261 | __ticket_spin_unlock(lock); | ||
262 | } | ||
263 | |||
264 | static __always_inline void __raw_spin_lock_flags(raw_spinlock_t *lock, | ||
265 | unsigned long flags) | ||
266 | { | ||
267 | __raw_spin_lock(lock); | ||
268 | } | ||
269 | |||
270 | #endif /* CONFIG_PARAVIRT */ | ||
271 | |||
272 | static inline void __raw_spin_unlock_wait(raw_spinlock_t *lock) | ||
273 | { | ||
274 | while (__raw_spin_is_locked(lock)) | ||
275 | cpu_relax(); | ||
276 | } | ||
277 | |||
278 | /* | ||
279 | * Read-write spinlocks, allowing multiple readers | ||
280 | * but only one writer. | ||
281 | * | ||
282 | * NOTE! it is quite common to have readers in interrupts | ||
283 | * but no interrupt writers. For those circumstances we | ||
284 | * can "mix" irq-safe locks - any writer needs to get a | ||
285 | * irq-safe write-lock, but readers can get non-irqsafe | ||
286 | * read-locks. | ||
287 | * | ||
288 | * On x86, we implement read-write locks as a 32-bit counter | ||
289 | * with the high bit (sign) being the "contended" bit. | ||
290 | */ | ||
291 | |||
292 | /** | ||
293 | * read_can_lock - would read_trylock() succeed? | ||
294 | * @lock: the rwlock in question. | ||
295 | */ | ||
296 | static inline int __raw_read_can_lock(raw_rwlock_t *lock) | ||
297 | { | ||
298 | return (int)(lock)->lock > 0; | ||
299 | } | ||
300 | |||
301 | /** | ||
302 | * write_can_lock - would write_trylock() succeed? | ||
303 | * @lock: the rwlock in question. | ||
304 | */ | ||
305 | static inline int __raw_write_can_lock(raw_rwlock_t *lock) | ||
306 | { | ||
307 | return (lock)->lock == RW_LOCK_BIAS; | ||
308 | } | ||
309 | |||
310 | static inline void __raw_read_lock(raw_rwlock_t *rw) | ||
311 | { | ||
312 | asm volatile(LOCK_PREFIX " subl $1,(%0)\n\t" | ||
313 | "jns 1f\n" | ||
314 | "call __read_lock_failed\n\t" | ||
315 | "1:\n" | ||
316 | ::LOCK_PTR_REG (rw) : "memory"); | ||
317 | } | ||
318 | |||
319 | static inline void __raw_write_lock(raw_rwlock_t *rw) | ||
320 | { | ||
321 | asm volatile(LOCK_PREFIX " subl %1,(%0)\n\t" | ||
322 | "jz 1f\n" | ||
323 | "call __write_lock_failed\n\t" | ||
324 | "1:\n" | ||
325 | ::LOCK_PTR_REG (rw), "i" (RW_LOCK_BIAS) : "memory"); | ||
326 | } | ||
327 | |||
328 | static inline int __raw_read_trylock(raw_rwlock_t *lock) | ||
329 | { | ||
330 | atomic_t *count = (atomic_t *)lock; | ||
331 | |||
332 | atomic_dec(count); | ||
333 | if (atomic_read(count) >= 0) | ||
334 | return 1; | ||
335 | atomic_inc(count); | ||
336 | return 0; | ||
337 | } | ||
338 | |||
339 | static inline int __raw_write_trylock(raw_rwlock_t *lock) | ||
340 | { | ||
341 | atomic_t *count = (atomic_t *)lock; | ||
342 | |||
343 | if (atomic_sub_and_test(RW_LOCK_BIAS, count)) | ||
344 | return 1; | ||
345 | atomic_add(RW_LOCK_BIAS, count); | ||
346 | return 0; | ||
347 | } | ||
348 | |||
349 | static inline void __raw_read_unlock(raw_rwlock_t *rw) | ||
350 | { | ||
351 | asm volatile(LOCK_PREFIX "incl %0" :"+m" (rw->lock) : : "memory"); | ||
352 | } | ||
353 | |||
354 | static inline void __raw_write_unlock(raw_rwlock_t *rw) | ||
355 | { | ||
356 | asm volatile(LOCK_PREFIX "addl %1, %0" | ||
357 | : "+m" (rw->lock) : "i" (RW_LOCK_BIAS) : "memory"); | ||
358 | } | ||
359 | |||
360 | #define _raw_spin_relax(lock) cpu_relax() | ||
361 | #define _raw_read_relax(lock) cpu_relax() | ||
362 | #define _raw_write_relax(lock) cpu_relax() | ||
363 | |||
364 | #endif /* _ASM_X86_SPINLOCK_H */ | ||
diff --git a/arch/x86/include/asm/spinlock_types.h b/arch/x86/include/asm/spinlock_types.h new file mode 100644 index 000000000000..845f81c87091 --- /dev/null +++ b/arch/x86/include/asm/spinlock_types.h | |||
@@ -0,0 +1,20 @@ | |||
1 | #ifndef _ASM_X86_SPINLOCK_TYPES_H | ||
2 | #define _ASM_X86_SPINLOCK_TYPES_H | ||
3 | |||
4 | #ifndef __LINUX_SPINLOCK_TYPES_H | ||
5 | # error "please don't include this file directly" | ||
6 | #endif | ||
7 | |||
8 | typedef struct raw_spinlock { | ||
9 | unsigned int slock; | ||
10 | } raw_spinlock_t; | ||
11 | |||
12 | #define __RAW_SPIN_LOCK_UNLOCKED { 0 } | ||
13 | |||
14 | typedef struct { | ||
15 | unsigned int lock; | ||
16 | } raw_rwlock_t; | ||
17 | |||
18 | #define __RAW_RW_LOCK_UNLOCKED { RW_LOCK_BIAS } | ||
19 | |||
20 | #endif /* _ASM_X86_SPINLOCK_TYPES_H */ | ||
diff --git a/arch/x86/include/asm/srat.h b/arch/x86/include/asm/srat.h new file mode 100644 index 000000000000..b508d639d1a7 --- /dev/null +++ b/arch/x86/include/asm/srat.h | |||
@@ -0,0 +1,39 @@ | |||
1 | /* | ||
2 | * Some of the code in this file has been gleaned from the 64 bit | ||
3 | * discontigmem support code base. | ||
4 | * | ||
5 | * Copyright (C) 2002, IBM Corp. | ||
6 | * | ||
7 | * All rights reserved. | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify | ||
10 | * it under the terms of the GNU General Public License as published by | ||
11 | * the Free Software Foundation; either version 2 of the License, or | ||
12 | * (at your option) any later version. | ||
13 | * | ||
14 | * This program is distributed in the hope that it will be useful, but | ||
15 | * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
16 | * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or | ||
17 | * NON INFRINGEMENT. See the GNU General Public License for more | ||
18 | * details. | ||
19 | * | ||
20 | * You should have received a copy of the GNU General Public License | ||
21 | * along with this program; if not, write to the Free Software | ||
22 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
23 | * | ||
24 | * Send feedback to Pat Gaughen <gone@us.ibm.com> | ||
25 | */ | ||
26 | |||
27 | #ifndef _ASM_X86_SRAT_H | ||
28 | #define _ASM_X86_SRAT_H | ||
29 | |||
30 | #ifdef CONFIG_ACPI_NUMA | ||
31 | extern int get_memcfg_from_srat(void); | ||
32 | #else | ||
33 | static inline int get_memcfg_from_srat(void) | ||
34 | { | ||
35 | return 0; | ||
36 | } | ||
37 | #endif | ||
38 | |||
39 | #endif /* _ASM_X86_SRAT_H */ | ||
diff --git a/arch/x86/include/asm/stacktrace.h b/arch/x86/include/asm/stacktrace.h new file mode 100644 index 000000000000..f517944b2b17 --- /dev/null +++ b/arch/x86/include/asm/stacktrace.h | |||
@@ -0,0 +1,21 @@ | |||
1 | #ifndef _ASM_X86_STACKTRACE_H | ||
2 | #define _ASM_X86_STACKTRACE_H | ||
3 | |||
4 | extern int kstack_depth_to_print; | ||
5 | |||
6 | /* Generic stack tracer with callbacks */ | ||
7 | |||
8 | struct stacktrace_ops { | ||
9 | void (*warning)(void *data, char *msg); | ||
10 | /* msg must contain %s for the symbol */ | ||
11 | void (*warning_symbol)(void *data, char *msg, unsigned long symbol); | ||
12 | void (*address)(void *data, unsigned long address, int reliable); | ||
13 | /* On negative return stop dumping */ | ||
14 | int (*stack)(void *data, char *name); | ||
15 | }; | ||
16 | |||
17 | void dump_trace(struct task_struct *tsk, struct pt_regs *regs, | ||
18 | unsigned long *stack, unsigned long bp, | ||
19 | const struct stacktrace_ops *ops, void *data); | ||
20 | |||
21 | #endif /* _ASM_X86_STACKTRACE_H */ | ||
diff --git a/arch/x86/include/asm/stat.h b/arch/x86/include/asm/stat.h new file mode 100644 index 000000000000..e0b1d9bbcbc6 --- /dev/null +++ b/arch/x86/include/asm/stat.h | |||
@@ -0,0 +1,114 @@ | |||
1 | #ifndef _ASM_X86_STAT_H | ||
2 | #define _ASM_X86_STAT_H | ||
3 | |||
4 | #define STAT_HAVE_NSEC 1 | ||
5 | |||
6 | #ifdef __i386__ | ||
7 | struct stat { | ||
8 | unsigned long st_dev; | ||
9 | unsigned long st_ino; | ||
10 | unsigned short st_mode; | ||
11 | unsigned short st_nlink; | ||
12 | unsigned short st_uid; | ||
13 | unsigned short st_gid; | ||
14 | unsigned long st_rdev; | ||
15 | unsigned long st_size; | ||
16 | unsigned long st_blksize; | ||
17 | unsigned long st_blocks; | ||
18 | unsigned long st_atime; | ||
19 | unsigned long st_atime_nsec; | ||
20 | unsigned long st_mtime; | ||
21 | unsigned long st_mtime_nsec; | ||
22 | unsigned long st_ctime; | ||
23 | unsigned long st_ctime_nsec; | ||
24 | unsigned long __unused4; | ||
25 | unsigned long __unused5; | ||
26 | }; | ||
27 | |||
28 | #define STAT64_HAS_BROKEN_ST_INO 1 | ||
29 | |||
30 | /* This matches struct stat64 in glibc2.1, hence the absolutely | ||
31 | * insane amounts of padding around dev_t's. | ||
32 | */ | ||
33 | struct stat64 { | ||
34 | unsigned long long st_dev; | ||
35 | unsigned char __pad0[4]; | ||
36 | |||
37 | unsigned long __st_ino; | ||
38 | |||
39 | unsigned int st_mode; | ||
40 | unsigned int st_nlink; | ||
41 | |||
42 | unsigned long st_uid; | ||
43 | unsigned long st_gid; | ||
44 | |||
45 | unsigned long long st_rdev; | ||
46 | unsigned char __pad3[4]; | ||
47 | |||
48 | long long st_size; | ||
49 | unsigned long st_blksize; | ||
50 | |||
51 | /* Number 512-byte blocks allocated. */ | ||
52 | unsigned long long st_blocks; | ||
53 | |||
54 | unsigned long st_atime; | ||
55 | unsigned long st_atime_nsec; | ||
56 | |||
57 | unsigned long st_mtime; | ||
58 | unsigned int st_mtime_nsec; | ||
59 | |||
60 | unsigned long st_ctime; | ||
61 | unsigned long st_ctime_nsec; | ||
62 | |||
63 | unsigned long long st_ino; | ||
64 | }; | ||
65 | |||
66 | #else /* __i386__ */ | ||
67 | |||
68 | struct stat { | ||
69 | unsigned long st_dev; | ||
70 | unsigned long st_ino; | ||
71 | unsigned long st_nlink; | ||
72 | |||
73 | unsigned int st_mode; | ||
74 | unsigned int st_uid; | ||
75 | unsigned int st_gid; | ||
76 | unsigned int __pad0; | ||
77 | unsigned long st_rdev; | ||
78 | long st_size; | ||
79 | long st_blksize; | ||
80 | long st_blocks; /* Number 512-byte blocks allocated. */ | ||
81 | |||
82 | unsigned long st_atime; | ||
83 | unsigned long st_atime_nsec; | ||
84 | unsigned long st_mtime; | ||
85 | unsigned long st_mtime_nsec; | ||
86 | unsigned long st_ctime; | ||
87 | unsigned long st_ctime_nsec; | ||
88 | long __unused[3]; | ||
89 | }; | ||
90 | #endif | ||
91 | |||
92 | /* for 32bit emulation and 32 bit kernels */ | ||
93 | struct __old_kernel_stat { | ||
94 | unsigned short st_dev; | ||
95 | unsigned short st_ino; | ||
96 | unsigned short st_mode; | ||
97 | unsigned short st_nlink; | ||
98 | unsigned short st_uid; | ||
99 | unsigned short st_gid; | ||
100 | unsigned short st_rdev; | ||
101 | #ifdef __i386__ | ||
102 | unsigned long st_size; | ||
103 | unsigned long st_atime; | ||
104 | unsigned long st_mtime; | ||
105 | unsigned long st_ctime; | ||
106 | #else | ||
107 | unsigned int st_size; | ||
108 | unsigned int st_atime; | ||
109 | unsigned int st_mtime; | ||
110 | unsigned int st_ctime; | ||
111 | #endif | ||
112 | }; | ||
113 | |||
114 | #endif /* _ASM_X86_STAT_H */ | ||
diff --git a/arch/x86/include/asm/statfs.h b/arch/x86/include/asm/statfs.h new file mode 100644 index 000000000000..2d0adbf99a8e --- /dev/null +++ b/arch/x86/include/asm/statfs.h | |||
@@ -0,0 +1,12 @@ | |||
1 | #ifndef _ASM_X86_STATFS_H | ||
2 | #define _ASM_X86_STATFS_H | ||
3 | |||
4 | /* | ||
5 | * We need compat_statfs64 to be packed, because the i386 ABI won't | ||
6 | * add padding at the end to bring it to a multiple of 8 bytes, but | ||
7 | * the x86_64 ABI will. | ||
8 | */ | ||
9 | #define ARCH_PACK_COMPAT_STATFS64 __attribute__((packed,aligned(4))) | ||
10 | |||
11 | #include <asm-generic/statfs.h> | ||
12 | #endif /* _ASM_X86_STATFS_H */ | ||
diff --git a/arch/x86/include/asm/string.h b/arch/x86/include/asm/string.h new file mode 100644 index 000000000000..6dfd6d9373a0 --- /dev/null +++ b/arch/x86/include/asm/string.h | |||
@@ -0,0 +1,5 @@ | |||
1 | #ifdef CONFIG_X86_32 | ||
2 | # include "string_32.h" | ||
3 | #else | ||
4 | # include "string_64.h" | ||
5 | #endif | ||
diff --git a/arch/x86/include/asm/string_32.h b/arch/x86/include/asm/string_32.h new file mode 100644 index 000000000000..0e0e3ba827f7 --- /dev/null +++ b/arch/x86/include/asm/string_32.h | |||
@@ -0,0 +1,326 @@ | |||
1 | #ifndef _ASM_X86_STRING_32_H | ||
2 | #define _ASM_X86_STRING_32_H | ||
3 | |||
4 | #ifdef __KERNEL__ | ||
5 | |||
6 | /* Let gcc decide whether to inline or use the out of line functions */ | ||
7 | |||
8 | #define __HAVE_ARCH_STRCPY | ||
9 | extern char *strcpy(char *dest, const char *src); | ||
10 | |||
11 | #define __HAVE_ARCH_STRNCPY | ||
12 | extern char *strncpy(char *dest, const char *src, size_t count); | ||
13 | |||
14 | #define __HAVE_ARCH_STRCAT | ||
15 | extern char *strcat(char *dest, const char *src); | ||
16 | |||
17 | #define __HAVE_ARCH_STRNCAT | ||
18 | extern char *strncat(char *dest, const char *src, size_t count); | ||
19 | |||
20 | #define __HAVE_ARCH_STRCMP | ||
21 | extern int strcmp(const char *cs, const char *ct); | ||
22 | |||
23 | #define __HAVE_ARCH_STRNCMP | ||
24 | extern int strncmp(const char *cs, const char *ct, size_t count); | ||
25 | |||
26 | #define __HAVE_ARCH_STRCHR | ||
27 | extern char *strchr(const char *s, int c); | ||
28 | |||
29 | #define __HAVE_ARCH_STRLEN | ||
30 | extern size_t strlen(const char *s); | ||
31 | |||
32 | static __always_inline void *__memcpy(void *to, const void *from, size_t n) | ||
33 | { | ||
34 | int d0, d1, d2; | ||
35 | asm volatile("rep ; movsl\n\t" | ||
36 | "movl %4,%%ecx\n\t" | ||
37 | "andl $3,%%ecx\n\t" | ||
38 | "jz 1f\n\t" | ||
39 | "rep ; movsb\n\t" | ||
40 | "1:" | ||
41 | : "=&c" (d0), "=&D" (d1), "=&S" (d2) | ||
42 | : "0" (n / 4), "g" (n), "1" ((long)to), "2" ((long)from) | ||
43 | : "memory"); | ||
44 | return to; | ||
45 | } | ||
46 | |||
47 | /* | ||
48 | * This looks ugly, but the compiler can optimize it totally, | ||
49 | * as the count is constant. | ||
50 | */ | ||
51 | static __always_inline void *__constant_memcpy(void *to, const void *from, | ||
52 | size_t n) | ||
53 | { | ||
54 | long esi, edi; | ||
55 | if (!n) | ||
56 | return to; | ||
57 | |||
58 | switch (n) { | ||
59 | case 1: | ||
60 | *(char *)to = *(char *)from; | ||
61 | return to; | ||
62 | case 2: | ||
63 | *(short *)to = *(short *)from; | ||
64 | return to; | ||
65 | case 4: | ||
66 | *(int *)to = *(int *)from; | ||
67 | return to; | ||
68 | |||
69 | case 3: | ||
70 | *(short *)to = *(short *)from; | ||
71 | *((char *)to + 2) = *((char *)from + 2); | ||
72 | return to; | ||
73 | case 5: | ||
74 | *(int *)to = *(int *)from; | ||
75 | *((char *)to + 4) = *((char *)from + 4); | ||
76 | return to; | ||
77 | case 6: | ||
78 | *(int *)to = *(int *)from; | ||
79 | *((short *)to + 2) = *((short *)from + 2); | ||
80 | return to; | ||
81 | case 8: | ||
82 | *(int *)to = *(int *)from; | ||
83 | *((int *)to + 1) = *((int *)from + 1); | ||
84 | return to; | ||
85 | } | ||
86 | |||
87 | esi = (long)from; | ||
88 | edi = (long)to; | ||
89 | if (n >= 5 * 4) { | ||
90 | /* large block: use rep prefix */ | ||
91 | int ecx; | ||
92 | asm volatile("rep ; movsl" | ||
93 | : "=&c" (ecx), "=&D" (edi), "=&S" (esi) | ||
94 | : "0" (n / 4), "1" (edi), "2" (esi) | ||
95 | : "memory" | ||
96 | ); | ||
97 | } else { | ||
98 | /* small block: don't clobber ecx + smaller code */ | ||
99 | if (n >= 4 * 4) | ||
100 | asm volatile("movsl" | ||
101 | : "=&D"(edi), "=&S"(esi) | ||
102 | : "0"(edi), "1"(esi) | ||
103 | : "memory"); | ||
104 | if (n >= 3 * 4) | ||
105 | asm volatile("movsl" | ||
106 | : "=&D"(edi), "=&S"(esi) | ||
107 | : "0"(edi), "1"(esi) | ||
108 | : "memory"); | ||
109 | if (n >= 2 * 4) | ||
110 | asm volatile("movsl" | ||
111 | : "=&D"(edi), "=&S"(esi) | ||
112 | : "0"(edi), "1"(esi) | ||
113 | : "memory"); | ||
114 | if (n >= 1 * 4) | ||
115 | asm volatile("movsl" | ||
116 | : "=&D"(edi), "=&S"(esi) | ||
117 | : "0"(edi), "1"(esi) | ||
118 | : "memory"); | ||
119 | } | ||
120 | switch (n % 4) { | ||
121 | /* tail */ | ||
122 | case 0: | ||
123 | return to; | ||
124 | case 1: | ||
125 | asm volatile("movsb" | ||
126 | : "=&D"(edi), "=&S"(esi) | ||
127 | : "0"(edi), "1"(esi) | ||
128 | : "memory"); | ||
129 | return to; | ||
130 | case 2: | ||
131 | asm volatile("movsw" | ||
132 | : "=&D"(edi), "=&S"(esi) | ||
133 | : "0"(edi), "1"(esi) | ||
134 | : "memory"); | ||
135 | return to; | ||
136 | default: | ||
137 | asm volatile("movsw\n\tmovsb" | ||
138 | : "=&D"(edi), "=&S"(esi) | ||
139 | : "0"(edi), "1"(esi) | ||
140 | : "memory"); | ||
141 | return to; | ||
142 | } | ||
143 | } | ||
144 | |||
145 | #define __HAVE_ARCH_MEMCPY | ||
146 | |||
147 | #ifdef CONFIG_X86_USE_3DNOW | ||
148 | |||
149 | #include <asm/mmx.h> | ||
150 | |||
151 | /* | ||
152 | * This CPU favours 3DNow strongly (eg AMD Athlon) | ||
153 | */ | ||
154 | |||
155 | static inline void *__constant_memcpy3d(void *to, const void *from, size_t len) | ||
156 | { | ||
157 | if (len < 512) | ||
158 | return __constant_memcpy(to, from, len); | ||
159 | return _mmx_memcpy(to, from, len); | ||
160 | } | ||
161 | |||
162 | static inline void *__memcpy3d(void *to, const void *from, size_t len) | ||
163 | { | ||
164 | if (len < 512) | ||
165 | return __memcpy(to, from, len); | ||
166 | return _mmx_memcpy(to, from, len); | ||
167 | } | ||
168 | |||
169 | #define memcpy(t, f, n) \ | ||
170 | (__builtin_constant_p((n)) \ | ||
171 | ? __constant_memcpy3d((t), (f), (n)) \ | ||
172 | : __memcpy3d((t), (f), (n))) | ||
173 | |||
174 | #else | ||
175 | |||
176 | /* | ||
177 | * No 3D Now! | ||
178 | */ | ||
179 | |||
180 | #define memcpy(t, f, n) \ | ||
181 | (__builtin_constant_p((n)) \ | ||
182 | ? __constant_memcpy((t), (f), (n)) \ | ||
183 | : __memcpy((t), (f), (n))) | ||
184 | |||
185 | #endif | ||
186 | |||
187 | #define __HAVE_ARCH_MEMMOVE | ||
188 | void *memmove(void *dest, const void *src, size_t n); | ||
189 | |||
190 | #define memcmp __builtin_memcmp | ||
191 | |||
192 | #define __HAVE_ARCH_MEMCHR | ||
193 | extern void *memchr(const void *cs, int c, size_t count); | ||
194 | |||
195 | static inline void *__memset_generic(void *s, char c, size_t count) | ||
196 | { | ||
197 | int d0, d1; | ||
198 | asm volatile("rep\n\t" | ||
199 | "stosb" | ||
200 | : "=&c" (d0), "=&D" (d1) | ||
201 | : "a" (c), "1" (s), "0" (count) | ||
202 | : "memory"); | ||
203 | return s; | ||
204 | } | ||
205 | |||
206 | /* we might want to write optimized versions of these later */ | ||
207 | #define __constant_count_memset(s, c, count) __memset_generic((s), (c), (count)) | ||
208 | |||
209 | /* | ||
210 | * memset(x, 0, y) is a reasonably common thing to do, so we want to fill | ||
211 | * things 32 bits at a time even when we don't know the size of the | ||
212 | * area at compile-time.. | ||
213 | */ | ||
214 | static __always_inline | ||
215 | void *__constant_c_memset(void *s, unsigned long c, size_t count) | ||
216 | { | ||
217 | int d0, d1; | ||
218 | asm volatile("rep ; stosl\n\t" | ||
219 | "testb $2,%b3\n\t" | ||
220 | "je 1f\n\t" | ||
221 | "stosw\n" | ||
222 | "1:\ttestb $1,%b3\n\t" | ||
223 | "je 2f\n\t" | ||
224 | "stosb\n" | ||
225 | "2:" | ||
226 | : "=&c" (d0), "=&D" (d1) | ||
227 | : "a" (c), "q" (count), "0" (count/4), "1" ((long)s) | ||
228 | : "memory"); | ||
229 | return s; | ||
230 | } | ||
231 | |||
232 | /* Added by Gertjan van Wingerde to make minix and sysv module work */ | ||
233 | #define __HAVE_ARCH_STRNLEN | ||
234 | extern size_t strnlen(const char *s, size_t count); | ||
235 | /* end of additional stuff */ | ||
236 | |||
237 | #define __HAVE_ARCH_STRSTR | ||
238 | extern char *strstr(const char *cs, const char *ct); | ||
239 | |||
240 | /* | ||
241 | * This looks horribly ugly, but the compiler can optimize it totally, | ||
242 | * as we by now know that both pattern and count is constant.. | ||
243 | */ | ||
244 | static __always_inline | ||
245 | void *__constant_c_and_count_memset(void *s, unsigned long pattern, | ||
246 | size_t count) | ||
247 | { | ||
248 | switch (count) { | ||
249 | case 0: | ||
250 | return s; | ||
251 | case 1: | ||
252 | *(unsigned char *)s = pattern & 0xff; | ||
253 | return s; | ||
254 | case 2: | ||
255 | *(unsigned short *)s = pattern & 0xffff; | ||
256 | return s; | ||
257 | case 3: | ||
258 | *(unsigned short *)s = pattern & 0xffff; | ||
259 | *((unsigned char *)s + 2) = pattern & 0xff; | ||
260 | return s; | ||
261 | case 4: | ||
262 | *(unsigned long *)s = pattern; | ||
263 | return s; | ||
264 | } | ||
265 | |||
266 | #define COMMON(x) \ | ||
267 | asm volatile("rep ; stosl" \ | ||
268 | x \ | ||
269 | : "=&c" (d0), "=&D" (d1) \ | ||
270 | : "a" (eax), "0" (count/4), "1" ((long)s) \ | ||
271 | : "memory") | ||
272 | |||
273 | { | ||
274 | int d0, d1; | ||
275 | #if __GNUC__ == 4 && __GNUC_MINOR__ == 0 | ||
276 | /* Workaround for broken gcc 4.0 */ | ||
277 | register unsigned long eax asm("%eax") = pattern; | ||
278 | #else | ||
279 | unsigned long eax = pattern; | ||
280 | #endif | ||
281 | |||
282 | switch (count % 4) { | ||
283 | case 0: | ||
284 | COMMON(""); | ||
285 | return s; | ||
286 | case 1: | ||
287 | COMMON("\n\tstosb"); | ||
288 | return s; | ||
289 | case 2: | ||
290 | COMMON("\n\tstosw"); | ||
291 | return s; | ||
292 | default: | ||
293 | COMMON("\n\tstosw\n\tstosb"); | ||
294 | return s; | ||
295 | } | ||
296 | } | ||
297 | |||
298 | #undef COMMON | ||
299 | } | ||
300 | |||
301 | #define __constant_c_x_memset(s, c, count) \ | ||
302 | (__builtin_constant_p(count) \ | ||
303 | ? __constant_c_and_count_memset((s), (c), (count)) \ | ||
304 | : __constant_c_memset((s), (c), (count))) | ||
305 | |||
306 | #define __memset(s, c, count) \ | ||
307 | (__builtin_constant_p(count) \ | ||
308 | ? __constant_count_memset((s), (c), (count)) \ | ||
309 | : __memset_generic((s), (c), (count))) | ||
310 | |||
311 | #define __HAVE_ARCH_MEMSET | ||
312 | #define memset(s, c, count) \ | ||
313 | (__builtin_constant_p(c) \ | ||
314 | ? __constant_c_x_memset((s), (0x01010101UL * (unsigned char)(c)), \ | ||
315 | (count)) \ | ||
316 | : __memset((s), (c), (count))) | ||
317 | |||
318 | /* | ||
319 | * find the first occurrence of byte 'c', or 1 past the area if none | ||
320 | */ | ||
321 | #define __HAVE_ARCH_MEMSCAN | ||
322 | extern void *memscan(void *addr, int c, size_t size); | ||
323 | |||
324 | #endif /* __KERNEL__ */ | ||
325 | |||
326 | #endif /* _ASM_X86_STRING_32_H */ | ||
diff --git a/arch/x86/include/asm/string_64.h b/arch/x86/include/asm/string_64.h new file mode 100644 index 000000000000..2afe164bf1e6 --- /dev/null +++ b/arch/x86/include/asm/string_64.h | |||
@@ -0,0 +1,60 @@ | |||
1 | #ifndef _ASM_X86_STRING_64_H | ||
2 | #define _ASM_X86_STRING_64_H | ||
3 | |||
4 | #ifdef __KERNEL__ | ||
5 | |||
6 | /* Written 2002 by Andi Kleen */ | ||
7 | |||
8 | /* Only used for special circumstances. Stolen from i386/string.h */ | ||
9 | static __always_inline void *__inline_memcpy(void *to, const void *from, size_t n) | ||
10 | { | ||
11 | unsigned long d0, d1, d2; | ||
12 | asm volatile("rep ; movsl\n\t" | ||
13 | "testb $2,%b4\n\t" | ||
14 | "je 1f\n\t" | ||
15 | "movsw\n" | ||
16 | "1:\ttestb $1,%b4\n\t" | ||
17 | "je 2f\n\t" | ||
18 | "movsb\n" | ||
19 | "2:" | ||
20 | : "=&c" (d0), "=&D" (d1), "=&S" (d2) | ||
21 | : "0" (n / 4), "q" (n), "1" ((long)to), "2" ((long)from) | ||
22 | : "memory"); | ||
23 | return to; | ||
24 | } | ||
25 | |||
26 | /* Even with __builtin_ the compiler may decide to use the out of line | ||
27 | function. */ | ||
28 | |||
29 | #define __HAVE_ARCH_MEMCPY 1 | ||
30 | #if (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) || __GNUC__ > 4 | ||
31 | extern void *memcpy(void *to, const void *from, size_t len); | ||
32 | #else | ||
33 | extern void *__memcpy(void *to, const void *from, size_t len); | ||
34 | #define memcpy(dst, src, len) \ | ||
35 | ({ \ | ||
36 | size_t __len = (len); \ | ||
37 | void *__ret; \ | ||
38 | if (__builtin_constant_p(len) && __len >= 64) \ | ||
39 | __ret = __memcpy((dst), (src), __len); \ | ||
40 | else \ | ||
41 | __ret = __builtin_memcpy((dst), (src), __len); \ | ||
42 | __ret; \ | ||
43 | }) | ||
44 | #endif | ||
45 | |||
46 | #define __HAVE_ARCH_MEMSET | ||
47 | void *memset(void *s, int c, size_t n); | ||
48 | |||
49 | #define __HAVE_ARCH_MEMMOVE | ||
50 | void *memmove(void *dest, const void *src, size_t count); | ||
51 | |||
52 | int memcmp(const void *cs, const void *ct, size_t count); | ||
53 | size_t strlen(const char *s); | ||
54 | char *strcpy(char *dest, const char *src); | ||
55 | char *strcat(char *dest, const char *src); | ||
56 | int strcmp(const char *cs, const char *ct); | ||
57 | |||
58 | #endif /* __KERNEL__ */ | ||
59 | |||
60 | #endif /* _ASM_X86_STRING_64_H */ | ||
diff --git a/arch/x86/include/asm/summit/apic.h b/arch/x86/include/asm/summit/apic.h new file mode 100644 index 000000000000..9b3070f1c2ac --- /dev/null +++ b/arch/x86/include/asm/summit/apic.h | |||
@@ -0,0 +1,184 @@ | |||
1 | #ifndef __ASM_SUMMIT_APIC_H | ||
2 | #define __ASM_SUMMIT_APIC_H | ||
3 | |||
4 | #include <asm/smp.h> | ||
5 | |||
6 | #define esr_disable (1) | ||
7 | #define NO_BALANCE_IRQ (0) | ||
8 | |||
9 | /* In clustered mode, the high nibble of APIC ID is a cluster number. | ||
10 | * The low nibble is a 4-bit bitmap. */ | ||
11 | #define XAPIC_DEST_CPUS_SHIFT 4 | ||
12 | #define XAPIC_DEST_CPUS_MASK ((1u << XAPIC_DEST_CPUS_SHIFT) - 1) | ||
13 | #define XAPIC_DEST_CLUSTER_MASK (XAPIC_DEST_CPUS_MASK << XAPIC_DEST_CPUS_SHIFT) | ||
14 | |||
15 | #define APIC_DFR_VALUE (APIC_DFR_CLUSTER) | ||
16 | |||
17 | static inline cpumask_t target_cpus(void) | ||
18 | { | ||
19 | /* CPU_MASK_ALL (0xff) has undefined behaviour with | ||
20 | * dest_LowestPrio mode logical clustered apic interrupt routing | ||
21 | * Just start on cpu 0. IRQ balancing will spread load | ||
22 | */ | ||
23 | return cpumask_of_cpu(0); | ||
24 | } | ||
25 | |||
26 | #define INT_DELIVERY_MODE (dest_LowestPrio) | ||
27 | #define INT_DEST_MODE 1 /* logical delivery broadcast to all procs */ | ||
28 | |||
29 | static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid) | ||
30 | { | ||
31 | return 0; | ||
32 | } | ||
33 | |||
34 | /* we don't use the phys_cpu_present_map to indicate apicid presence */ | ||
35 | static inline unsigned long check_apicid_present(int bit) | ||
36 | { | ||
37 | return 1; | ||
38 | } | ||
39 | |||
40 | #define apicid_cluster(apicid) ((apicid) & XAPIC_DEST_CLUSTER_MASK) | ||
41 | |||
42 | extern u8 cpu_2_logical_apicid[]; | ||
43 | |||
44 | static inline void init_apic_ldr(void) | ||
45 | { | ||
46 | unsigned long val, id; | ||
47 | int count = 0; | ||
48 | u8 my_id = (u8)hard_smp_processor_id(); | ||
49 | u8 my_cluster = (u8)apicid_cluster(my_id); | ||
50 | #ifdef CONFIG_SMP | ||
51 | u8 lid; | ||
52 | int i; | ||
53 | |||
54 | /* Create logical APIC IDs by counting CPUs already in cluster. */ | ||
55 | for (count = 0, i = NR_CPUS; --i >= 0; ) { | ||
56 | lid = cpu_2_logical_apicid[i]; | ||
57 | if (lid != BAD_APICID && apicid_cluster(lid) == my_cluster) | ||
58 | ++count; | ||
59 | } | ||
60 | #endif | ||
61 | /* We only have a 4 wide bitmap in cluster mode. If a deranged | ||
62 | * BIOS puts 5 CPUs in one APIC cluster, we're hosed. */ | ||
63 | BUG_ON(count >= XAPIC_DEST_CPUS_SHIFT); | ||
64 | id = my_cluster | (1UL << count); | ||
65 | apic_write(APIC_DFR, APIC_DFR_VALUE); | ||
66 | val = apic_read(APIC_LDR) & ~APIC_LDR_MASK; | ||
67 | val |= SET_APIC_LOGICAL_ID(id); | ||
68 | apic_write(APIC_LDR, val); | ||
69 | } | ||
70 | |||
71 | static inline int multi_timer_check(int apic, int irq) | ||
72 | { | ||
73 | return 0; | ||
74 | } | ||
75 | |||
76 | static inline int apic_id_registered(void) | ||
77 | { | ||
78 | return 1; | ||
79 | } | ||
80 | |||
81 | static inline void setup_apic_routing(void) | ||
82 | { | ||
83 | printk("Enabling APIC mode: Summit. Using %d I/O APICs\n", | ||
84 | nr_ioapics); | ||
85 | } | ||
86 | |||
87 | static inline int apicid_to_node(int logical_apicid) | ||
88 | { | ||
89 | #ifdef CONFIG_SMP | ||
90 | return apicid_2_node[hard_smp_processor_id()]; | ||
91 | #else | ||
92 | return 0; | ||
93 | #endif | ||
94 | } | ||
95 | |||
96 | /* Mapping from cpu number to logical apicid */ | ||
97 | static inline int cpu_to_logical_apicid(int cpu) | ||
98 | { | ||
99 | #ifdef CONFIG_SMP | ||
100 | if (cpu >= NR_CPUS) | ||
101 | return BAD_APICID; | ||
102 | return (int)cpu_2_logical_apicid[cpu]; | ||
103 | #else | ||
104 | return logical_smp_processor_id(); | ||
105 | #endif | ||
106 | } | ||
107 | |||
108 | static inline int cpu_present_to_apicid(int mps_cpu) | ||
109 | { | ||
110 | if (mps_cpu < NR_CPUS) | ||
111 | return (int)per_cpu(x86_bios_cpu_apicid, mps_cpu); | ||
112 | else | ||
113 | return BAD_APICID; | ||
114 | } | ||
115 | |||
116 | static inline physid_mask_t ioapic_phys_id_map(physid_mask_t phys_id_map) | ||
117 | { | ||
118 | /* For clustered we don't have a good way to do this yet - hack */ | ||
119 | return physids_promote(0x0F); | ||
120 | } | ||
121 | |||
122 | static inline physid_mask_t apicid_to_cpu_present(int apicid) | ||
123 | { | ||
124 | return physid_mask_of_physid(0); | ||
125 | } | ||
126 | |||
127 | static inline void setup_portio_remap(void) | ||
128 | { | ||
129 | } | ||
130 | |||
131 | static inline int check_phys_apicid_present(int boot_cpu_physical_apicid) | ||
132 | { | ||
133 | return 1; | ||
134 | } | ||
135 | |||
136 | static inline void enable_apic_mode(void) | ||
137 | { | ||
138 | } | ||
139 | |||
140 | static inline unsigned int cpu_mask_to_apicid(cpumask_t cpumask) | ||
141 | { | ||
142 | int num_bits_set; | ||
143 | int cpus_found = 0; | ||
144 | int cpu; | ||
145 | int apicid; | ||
146 | |||
147 | num_bits_set = cpus_weight(cpumask); | ||
148 | /* Return id to all */ | ||
149 | if (num_bits_set == NR_CPUS) | ||
150 | return (int) 0xFF; | ||
151 | /* | ||
152 | * The cpus in the mask must all be on the apic cluster. If are not | ||
153 | * on the same apicid cluster return default value of TARGET_CPUS. | ||
154 | */ | ||
155 | cpu = first_cpu(cpumask); | ||
156 | apicid = cpu_to_logical_apicid(cpu); | ||
157 | while (cpus_found < num_bits_set) { | ||
158 | if (cpu_isset(cpu, cpumask)) { | ||
159 | int new_apicid = cpu_to_logical_apicid(cpu); | ||
160 | if (apicid_cluster(apicid) != | ||
161 | apicid_cluster(new_apicid)){ | ||
162 | printk ("%s: Not a valid mask!\n", __func__); | ||
163 | return 0xFF; | ||
164 | } | ||
165 | apicid = apicid | new_apicid; | ||
166 | cpus_found++; | ||
167 | } | ||
168 | cpu++; | ||
169 | } | ||
170 | return apicid; | ||
171 | } | ||
172 | |||
173 | /* cpuid returns the value latched in the HW at reset, not the APIC ID | ||
174 | * register's value. For any box whose BIOS changes APIC IDs, like | ||
175 | * clustered APIC systems, we must use hard_smp_processor_id. | ||
176 | * | ||
177 | * See Intel's IA-32 SW Dev's Manual Vol2 under CPUID. | ||
178 | */ | ||
179 | static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb) | ||
180 | { | ||
181 | return hard_smp_processor_id() >> index_msb; | ||
182 | } | ||
183 | |||
184 | #endif /* __ASM_SUMMIT_APIC_H */ | ||
diff --git a/arch/x86/include/asm/summit/apicdef.h b/arch/x86/include/asm/summit/apicdef.h new file mode 100644 index 000000000000..f3fbca1f61c1 --- /dev/null +++ b/arch/x86/include/asm/summit/apicdef.h | |||
@@ -0,0 +1,13 @@ | |||
1 | #ifndef __ASM_SUMMIT_APICDEF_H | ||
2 | #define __ASM_SUMMIT_APICDEF_H | ||
3 | |||
4 | #define APIC_ID_MASK (0xFF<<24) | ||
5 | |||
6 | static inline unsigned get_apic_id(unsigned long x) | ||
7 | { | ||
8 | return (x>>24)&0xFF; | ||
9 | } | ||
10 | |||
11 | #define GET_APIC_ID(x) get_apic_id(x) | ||
12 | |||
13 | #endif | ||
diff --git a/arch/x86/include/asm/summit/ipi.h b/arch/x86/include/asm/summit/ipi.h new file mode 100644 index 000000000000..53bd1e7bd7b4 --- /dev/null +++ b/arch/x86/include/asm/summit/ipi.h | |||
@@ -0,0 +1,25 @@ | |||
1 | #ifndef __ASM_SUMMIT_IPI_H | ||
2 | #define __ASM_SUMMIT_IPI_H | ||
3 | |||
4 | void send_IPI_mask_sequence(cpumask_t mask, int vector); | ||
5 | |||
6 | static inline void send_IPI_mask(cpumask_t mask, int vector) | ||
7 | { | ||
8 | send_IPI_mask_sequence(mask, vector); | ||
9 | } | ||
10 | |||
11 | static inline void send_IPI_allbutself(int vector) | ||
12 | { | ||
13 | cpumask_t mask = cpu_online_map; | ||
14 | cpu_clear(smp_processor_id(), mask); | ||
15 | |||
16 | if (!cpus_empty(mask)) | ||
17 | send_IPI_mask(mask, vector); | ||
18 | } | ||
19 | |||
20 | static inline void send_IPI_all(int vector) | ||
21 | { | ||
22 | send_IPI_mask(cpu_online_map, vector); | ||
23 | } | ||
24 | |||
25 | #endif /* __ASM_SUMMIT_IPI_H */ | ||
diff --git a/arch/x86/include/asm/summit/mpparse.h b/arch/x86/include/asm/summit/mpparse.h new file mode 100644 index 000000000000..013ce6fab2d5 --- /dev/null +++ b/arch/x86/include/asm/summit/mpparse.h | |||
@@ -0,0 +1,109 @@ | |||
1 | #ifndef __ASM_SUMMIT_MPPARSE_H | ||
2 | #define __ASM_SUMMIT_MPPARSE_H | ||
3 | |||
4 | #include <asm/tsc.h> | ||
5 | |||
6 | extern int use_cyclone; | ||
7 | |||
8 | #ifdef CONFIG_X86_SUMMIT_NUMA | ||
9 | extern void setup_summit(void); | ||
10 | #else | ||
11 | #define setup_summit() {} | ||
12 | #endif | ||
13 | |||
14 | static inline int mps_oem_check(struct mp_config_table *mpc, char *oem, | ||
15 | char *productid) | ||
16 | { | ||
17 | if (!strncmp(oem, "IBM ENSW", 8) && | ||
18 | (!strncmp(productid, "VIGIL SMP", 9) | ||
19 | || !strncmp(productid, "EXA", 3) | ||
20 | || !strncmp(productid, "RUTHLESS SMP", 12))){ | ||
21 | mark_tsc_unstable("Summit based system"); | ||
22 | use_cyclone = 1; /*enable cyclone-timer*/ | ||
23 | setup_summit(); | ||
24 | return 1; | ||
25 | } | ||
26 | return 0; | ||
27 | } | ||
28 | |||
29 | /* Hook from generic ACPI tables.c */ | ||
30 | static inline int acpi_madt_oem_check(char *oem_id, char *oem_table_id) | ||
31 | { | ||
32 | if (!strncmp(oem_id, "IBM", 3) && | ||
33 | (!strncmp(oem_table_id, "SERVIGIL", 8) | ||
34 | || !strncmp(oem_table_id, "EXA", 3))){ | ||
35 | mark_tsc_unstable("Summit based system"); | ||
36 | use_cyclone = 1; /*enable cyclone-timer*/ | ||
37 | setup_summit(); | ||
38 | return 1; | ||
39 | } | ||
40 | return 0; | ||
41 | } | ||
42 | |||
43 | struct rio_table_hdr { | ||
44 | unsigned char version; /* Version number of this data structure */ | ||
45 | /* Version 3 adds chassis_num & WP_index */ | ||
46 | unsigned char num_scal_dev; /* # of Scalability devices (Twisters for Vigil) */ | ||
47 | unsigned char num_rio_dev; /* # of RIO I/O devices (Cyclones and Winnipegs) */ | ||
48 | } __attribute__((packed)); | ||
49 | |||
50 | struct scal_detail { | ||
51 | unsigned char node_id; /* Scalability Node ID */ | ||
52 | unsigned long CBAR; /* Address of 1MB register space */ | ||
53 | unsigned char port0node; /* Node ID port connected to: 0xFF=None */ | ||
54 | unsigned char port0port; /* Port num port connected to: 0,1,2, or 0xFF=None */ | ||
55 | unsigned char port1node; /* Node ID port connected to: 0xFF = None */ | ||
56 | unsigned char port1port; /* Port num port connected to: 0,1,2, or 0xFF=None */ | ||
57 | unsigned char port2node; /* Node ID port connected to: 0xFF = None */ | ||
58 | unsigned char port2port; /* Port num port connected to: 0,1,2, or 0xFF=None */ | ||
59 | unsigned char chassis_num; /* 1 based Chassis number (1 = boot node) */ | ||
60 | } __attribute__((packed)); | ||
61 | |||
62 | struct rio_detail { | ||
63 | unsigned char node_id; /* RIO Node ID */ | ||
64 | unsigned long BBAR; /* Address of 1MB register space */ | ||
65 | unsigned char type; /* Type of device */ | ||
66 | unsigned char owner_id; /* For WPEG: Node ID of Cyclone that owns this WPEG*/ | ||
67 | /* For CYC: Node ID of Twister that owns this CYC */ | ||
68 | unsigned char port0node; /* Node ID port connected to: 0xFF=None */ | ||
69 | unsigned char port0port; /* Port num port connected to: 0,1,2, or 0xFF=None */ | ||
70 | unsigned char port1node; /* Node ID port connected to: 0xFF=None */ | ||
71 | unsigned char port1port; /* Port num port connected to: 0,1,2, or 0xFF=None */ | ||
72 | unsigned char first_slot; /* For WPEG: Lowest slot number below this WPEG */ | ||
73 | /* For CYC: 0 */ | ||
74 | unsigned char status; /* For WPEG: Bit 0 = 1 : the XAPIC is used */ | ||
75 | /* = 0 : the XAPIC is not used, ie:*/ | ||
76 | /* ints fwded to another XAPIC */ | ||
77 | /* Bits1:7 Reserved */ | ||
78 | /* For CYC: Bits0:7 Reserved */ | ||
79 | unsigned char WP_index; /* For WPEG: WPEG instance index - lower ones have */ | ||
80 | /* lower slot numbers/PCI bus numbers */ | ||
81 | /* For CYC: No meaning */ | ||
82 | unsigned char chassis_num; /* 1 based Chassis number */ | ||
83 | /* For LookOut WPEGs this field indicates the */ | ||
84 | /* Expansion Chassis #, enumerated from Boot */ | ||
85 | /* Node WPEG external port, then Boot Node CYC */ | ||
86 | /* external port, then Next Vigil chassis WPEG */ | ||
87 | /* external port, etc. */ | ||
88 | /* Shared Lookouts have only 1 chassis number (the */ | ||
89 | /* first one assigned) */ | ||
90 | } __attribute__((packed)); | ||
91 | |||
92 | |||
93 | typedef enum { | ||
94 | CompatTwister = 0, /* Compatibility Twister */ | ||
95 | AltTwister = 1, /* Alternate Twister of internal 8-way */ | ||
96 | CompatCyclone = 2, /* Compatibility Cyclone */ | ||
97 | AltCyclone = 3, /* Alternate Cyclone of internal 8-way */ | ||
98 | CompatWPEG = 4, /* Compatibility WPEG */ | ||
99 | AltWPEG = 5, /* Second Planar WPEG */ | ||
100 | LookOutAWPEG = 6, /* LookOut WPEG */ | ||
101 | LookOutBWPEG = 7, /* LookOut WPEG */ | ||
102 | } node_type; | ||
103 | |||
104 | static inline int is_WPEG(struct rio_detail *rio){ | ||
105 | return (rio->type == CompatWPEG || rio->type == AltWPEG || | ||
106 | rio->type == LookOutAWPEG || rio->type == LookOutBWPEG); | ||
107 | } | ||
108 | |||
109 | #endif /* __ASM_SUMMIT_MPPARSE_H */ | ||
diff --git a/arch/x86/include/asm/suspend.h b/arch/x86/include/asm/suspend.h new file mode 100644 index 000000000000..9bd521fe4570 --- /dev/null +++ b/arch/x86/include/asm/suspend.h | |||
@@ -0,0 +1,5 @@ | |||
1 | #ifdef CONFIG_X86_32 | ||
2 | # include "suspend_32.h" | ||
3 | #else | ||
4 | # include "suspend_64.h" | ||
5 | #endif | ||
diff --git a/arch/x86/include/asm/suspend_32.h b/arch/x86/include/asm/suspend_32.h new file mode 100644 index 000000000000..a5074bd0f8be --- /dev/null +++ b/arch/x86/include/asm/suspend_32.h | |||
@@ -0,0 +1,51 @@ | |||
1 | /* | ||
2 | * Copyright 2001-2002 Pavel Machek <pavel@suse.cz> | ||
3 | * Based on code | ||
4 | * Copyright 2001 Patrick Mochel <mochel@osdl.org> | ||
5 | */ | ||
6 | #ifndef _ASM_X86_SUSPEND_32_H | ||
7 | #define _ASM_X86_SUSPEND_32_H | ||
8 | |||
9 | #include <asm/desc.h> | ||
10 | #include <asm/i387.h> | ||
11 | |||
12 | static inline int arch_prepare_suspend(void) { return 0; } | ||
13 | |||
14 | /* image of the saved processor state */ | ||
15 | struct saved_context { | ||
16 | u16 es, fs, gs, ss; | ||
17 | unsigned long cr0, cr2, cr3, cr4; | ||
18 | struct desc_ptr gdt; | ||
19 | struct desc_ptr idt; | ||
20 | u16 ldt; | ||
21 | u16 tss; | ||
22 | unsigned long tr; | ||
23 | unsigned long safety; | ||
24 | unsigned long return_address; | ||
25 | } __attribute__((packed)); | ||
26 | |||
27 | #ifdef CONFIG_ACPI | ||
28 | extern unsigned long saved_eip; | ||
29 | extern unsigned long saved_esp; | ||
30 | extern unsigned long saved_ebp; | ||
31 | extern unsigned long saved_ebx; | ||
32 | extern unsigned long saved_esi; | ||
33 | extern unsigned long saved_edi; | ||
34 | |||
35 | static inline void acpi_save_register_state(unsigned long return_point) | ||
36 | { | ||
37 | saved_eip = return_point; | ||
38 | asm volatile("movl %%esp,%0" : "=m" (saved_esp)); | ||
39 | asm volatile("movl %%ebp,%0" : "=m" (saved_ebp)); | ||
40 | asm volatile("movl %%ebx,%0" : "=m" (saved_ebx)); | ||
41 | asm volatile("movl %%edi,%0" : "=m" (saved_edi)); | ||
42 | asm volatile("movl %%esi,%0" : "=m" (saved_esi)); | ||
43 | } | ||
44 | |||
45 | #define acpi_restore_register_state() do {} while (0) | ||
46 | |||
47 | /* routines for saving/restoring kernel state */ | ||
48 | extern int acpi_save_state_mem(void); | ||
49 | #endif | ||
50 | |||
51 | #endif /* _ASM_X86_SUSPEND_32_H */ | ||
diff --git a/arch/x86/include/asm/suspend_64.h b/arch/x86/include/asm/suspend_64.h new file mode 100644 index 000000000000..06284f42b759 --- /dev/null +++ b/arch/x86/include/asm/suspend_64.h | |||
@@ -0,0 +1,52 @@ | |||
1 | /* | ||
2 | * Copyright 2001-2003 Pavel Machek <pavel@suse.cz> | ||
3 | * Based on code | ||
4 | * Copyright 2001 Patrick Mochel <mochel@osdl.org> | ||
5 | */ | ||
6 | #ifndef _ASM_X86_SUSPEND_64_H | ||
7 | #define _ASM_X86_SUSPEND_64_H | ||
8 | |||
9 | #include <asm/desc.h> | ||
10 | #include <asm/i387.h> | ||
11 | |||
12 | static inline int arch_prepare_suspend(void) | ||
13 | { | ||
14 | return 0; | ||
15 | } | ||
16 | |||
17 | /* | ||
18 | * Image of the saved processor state, used by the low level ACPI suspend to | ||
19 | * RAM code and by the low level hibernation code. | ||
20 | * | ||
21 | * If you modify it, fix arch/x86/kernel/acpi/wakeup_64.S and make sure that | ||
22 | * __save/__restore_processor_state(), defined in arch/x86/kernel/suspend_64.c, | ||
23 | * still work as required. | ||
24 | */ | ||
25 | struct saved_context { | ||
26 | struct pt_regs regs; | ||
27 | u16 ds, es, fs, gs, ss; | ||
28 | unsigned long gs_base, gs_kernel_base, fs_base; | ||
29 | unsigned long cr0, cr2, cr3, cr4, cr8; | ||
30 | unsigned long efer; | ||
31 | u16 gdt_pad; | ||
32 | u16 gdt_limit; | ||
33 | unsigned long gdt_base; | ||
34 | u16 idt_pad; | ||
35 | u16 idt_limit; | ||
36 | unsigned long idt_base; | ||
37 | u16 ldt; | ||
38 | u16 tss; | ||
39 | unsigned long tr; | ||
40 | unsigned long safety; | ||
41 | unsigned long return_address; | ||
42 | } __attribute__((packed)); | ||
43 | |||
44 | #define loaddebug(thread,register) \ | ||
45 | set_debugreg((thread)->debugreg##register, register) | ||
46 | |||
47 | /* routines for saving/restoring kernel state */ | ||
48 | extern int acpi_save_state_mem(void); | ||
49 | extern char core_restore_code; | ||
50 | extern char restore_registers; | ||
51 | |||
52 | #endif /* _ASM_X86_SUSPEND_64_H */ | ||
diff --git a/arch/x86/include/asm/swiotlb.h b/arch/x86/include/asm/swiotlb.h new file mode 100644 index 000000000000..51fb2c76ad74 --- /dev/null +++ b/arch/x86/include/asm/swiotlb.h | |||
@@ -0,0 +1,58 @@ | |||
1 | #ifndef _ASM_X86_SWIOTLB_H | ||
2 | #define _ASM_X86_SWIOTLB_H | ||
3 | |||
4 | #include <asm/dma-mapping.h> | ||
5 | |||
6 | /* SWIOTLB interface */ | ||
7 | |||
8 | extern dma_addr_t swiotlb_map_single(struct device *hwdev, void *ptr, | ||
9 | size_t size, int dir); | ||
10 | extern void *swiotlb_alloc_coherent(struct device *hwdev, size_t size, | ||
11 | dma_addr_t *dma_handle, gfp_t flags); | ||
12 | extern void swiotlb_unmap_single(struct device *hwdev, dma_addr_t dev_addr, | ||
13 | size_t size, int dir); | ||
14 | extern void swiotlb_sync_single_for_cpu(struct device *hwdev, | ||
15 | dma_addr_t dev_addr, | ||
16 | size_t size, int dir); | ||
17 | extern void swiotlb_sync_single_for_device(struct device *hwdev, | ||
18 | dma_addr_t dev_addr, | ||
19 | size_t size, int dir); | ||
20 | extern void swiotlb_sync_single_range_for_cpu(struct device *hwdev, | ||
21 | dma_addr_t dev_addr, | ||
22 | unsigned long offset, | ||
23 | size_t size, int dir); | ||
24 | extern void swiotlb_sync_single_range_for_device(struct device *hwdev, | ||
25 | dma_addr_t dev_addr, | ||
26 | unsigned long offset, | ||
27 | size_t size, int dir); | ||
28 | extern void swiotlb_sync_sg_for_cpu(struct device *hwdev, | ||
29 | struct scatterlist *sg, int nelems, | ||
30 | int dir); | ||
31 | extern void swiotlb_sync_sg_for_device(struct device *hwdev, | ||
32 | struct scatterlist *sg, int nelems, | ||
33 | int dir); | ||
34 | extern int swiotlb_map_sg(struct device *hwdev, struct scatterlist *sg, | ||
35 | int nents, int direction); | ||
36 | extern void swiotlb_unmap_sg(struct device *hwdev, struct scatterlist *sg, | ||
37 | int nents, int direction); | ||
38 | extern int swiotlb_dma_mapping_error(struct device *hwdev, dma_addr_t dma_addr); | ||
39 | extern void swiotlb_free_coherent(struct device *hwdev, size_t size, | ||
40 | void *vaddr, dma_addr_t dma_handle); | ||
41 | extern int swiotlb_dma_supported(struct device *hwdev, u64 mask); | ||
42 | extern void swiotlb_init(void); | ||
43 | |||
44 | extern int swiotlb_force; | ||
45 | |||
46 | #ifdef CONFIG_SWIOTLB | ||
47 | extern int swiotlb; | ||
48 | extern void pci_swiotlb_init(void); | ||
49 | #else | ||
50 | #define swiotlb 0 | ||
51 | static inline void pci_swiotlb_init(void) | ||
52 | { | ||
53 | } | ||
54 | #endif | ||
55 | |||
56 | static inline void dma_mark_clean(void *addr, size_t size) {} | ||
57 | |||
58 | #endif /* _ASM_X86_SWIOTLB_H */ | ||
diff --git a/arch/x86/include/asm/sync_bitops.h b/arch/x86/include/asm/sync_bitops.h new file mode 100644 index 000000000000..9d09b4073b60 --- /dev/null +++ b/arch/x86/include/asm/sync_bitops.h | |||
@@ -0,0 +1,130 @@ | |||
1 | #ifndef _ASM_X86_SYNC_BITOPS_H | ||
2 | #define _ASM_X86_SYNC_BITOPS_H | ||
3 | |||
4 | /* | ||
5 | * Copyright 1992, Linus Torvalds. | ||
6 | */ | ||
7 | |||
8 | /* | ||
9 | * These have to be done with inline assembly: that way the bit-setting | ||
10 | * is guaranteed to be atomic. All bit operations return 0 if the bit | ||
11 | * was cleared before the operation and != 0 if it was not. | ||
12 | * | ||
13 | * bit 0 is the LSB of addr; bit 32 is the LSB of (addr+1). | ||
14 | */ | ||
15 | |||
16 | #define ADDR (*(volatile long *)addr) | ||
17 | |||
18 | /** | ||
19 | * sync_set_bit - Atomically set a bit in memory | ||
20 | * @nr: the bit to set | ||
21 | * @addr: the address to start counting from | ||
22 | * | ||
23 | * This function is atomic and may not be reordered. See __set_bit() | ||
24 | * if you do not require the atomic guarantees. | ||
25 | * | ||
26 | * Note that @nr may be almost arbitrarily large; this function is not | ||
27 | * restricted to acting on a single-word quantity. | ||
28 | */ | ||
29 | static inline void sync_set_bit(int nr, volatile unsigned long *addr) | ||
30 | { | ||
31 | asm volatile("lock; btsl %1,%0" | ||
32 | : "+m" (ADDR) | ||
33 | : "Ir" (nr) | ||
34 | : "memory"); | ||
35 | } | ||
36 | |||
37 | /** | ||
38 | * sync_clear_bit - Clears a bit in memory | ||
39 | * @nr: Bit to clear | ||
40 | * @addr: Address to start counting from | ||
41 | * | ||
42 | * sync_clear_bit() is atomic and may not be reordered. However, it does | ||
43 | * not contain a memory barrier, so if it is used for locking purposes, | ||
44 | * you should call smp_mb__before_clear_bit() and/or smp_mb__after_clear_bit() | ||
45 | * in order to ensure changes are visible on other processors. | ||
46 | */ | ||
47 | static inline void sync_clear_bit(int nr, volatile unsigned long *addr) | ||
48 | { | ||
49 | asm volatile("lock; btrl %1,%0" | ||
50 | : "+m" (ADDR) | ||
51 | : "Ir" (nr) | ||
52 | : "memory"); | ||
53 | } | ||
54 | |||
55 | /** | ||
56 | * sync_change_bit - Toggle a bit in memory | ||
57 | * @nr: Bit to change | ||
58 | * @addr: Address to start counting from | ||
59 | * | ||
60 | * sync_change_bit() is atomic and may not be reordered. | ||
61 | * Note that @nr may be almost arbitrarily large; this function is not | ||
62 | * restricted to acting on a single-word quantity. | ||
63 | */ | ||
64 | static inline void sync_change_bit(int nr, volatile unsigned long *addr) | ||
65 | { | ||
66 | asm volatile("lock; btcl %1,%0" | ||
67 | : "+m" (ADDR) | ||
68 | : "Ir" (nr) | ||
69 | : "memory"); | ||
70 | } | ||
71 | |||
72 | /** | ||
73 | * sync_test_and_set_bit - Set a bit and return its old value | ||
74 | * @nr: Bit to set | ||
75 | * @addr: Address to count from | ||
76 | * | ||
77 | * This operation is atomic and cannot be reordered. | ||
78 | * It also implies a memory barrier. | ||
79 | */ | ||
80 | static inline int sync_test_and_set_bit(int nr, volatile unsigned long *addr) | ||
81 | { | ||
82 | int oldbit; | ||
83 | |||
84 | asm volatile("lock; btsl %2,%1\n\tsbbl %0,%0" | ||
85 | : "=r" (oldbit), "+m" (ADDR) | ||
86 | : "Ir" (nr) : "memory"); | ||
87 | return oldbit; | ||
88 | } | ||
89 | |||
90 | /** | ||
91 | * sync_test_and_clear_bit - Clear a bit and return its old value | ||
92 | * @nr: Bit to clear | ||
93 | * @addr: Address to count from | ||
94 | * | ||
95 | * This operation is atomic and cannot be reordered. | ||
96 | * It also implies a memory barrier. | ||
97 | */ | ||
98 | static inline int sync_test_and_clear_bit(int nr, volatile unsigned long *addr) | ||
99 | { | ||
100 | int oldbit; | ||
101 | |||
102 | asm volatile("lock; btrl %2,%1\n\tsbbl %0,%0" | ||
103 | : "=r" (oldbit), "+m" (ADDR) | ||
104 | : "Ir" (nr) : "memory"); | ||
105 | return oldbit; | ||
106 | } | ||
107 | |||
108 | /** | ||
109 | * sync_test_and_change_bit - Change a bit and return its old value | ||
110 | * @nr: Bit to change | ||
111 | * @addr: Address to count from | ||
112 | * | ||
113 | * This operation is atomic and cannot be reordered. | ||
114 | * It also implies a memory barrier. | ||
115 | */ | ||
116 | static inline int sync_test_and_change_bit(int nr, volatile unsigned long *addr) | ||
117 | { | ||
118 | int oldbit; | ||
119 | |||
120 | asm volatile("lock; btcl %2,%1\n\tsbbl %0,%0" | ||
121 | : "=r" (oldbit), "+m" (ADDR) | ||
122 | : "Ir" (nr) : "memory"); | ||
123 | return oldbit; | ||
124 | } | ||
125 | |||
126 | #define sync_test_bit(nr, addr) test_bit(nr, addr) | ||
127 | |||
128 | #undef ADDR | ||
129 | |||
130 | #endif /* _ASM_X86_SYNC_BITOPS_H */ | ||
diff --git a/arch/x86/include/asm/syscall.h b/arch/x86/include/asm/syscall.h new file mode 100644 index 000000000000..d82f39bb7905 --- /dev/null +++ b/arch/x86/include/asm/syscall.h | |||
@@ -0,0 +1,213 @@ | |||
1 | /* | ||
2 | * Access to user system call parameters and results | ||
3 | * | ||
4 | * Copyright (C) 2008 Red Hat, Inc. All rights reserved. | ||
5 | * | ||
6 | * This copyrighted material is made available to anyone wishing to use, | ||
7 | * modify, copy, or redistribute it subject to the terms and conditions | ||
8 | * of the GNU General Public License v.2. | ||
9 | * | ||
10 | * See asm-generic/syscall.h for descriptions of what we must do here. | ||
11 | */ | ||
12 | |||
13 | #ifndef _ASM_X86_SYSCALL_H | ||
14 | #define _ASM_X86_SYSCALL_H | ||
15 | |||
16 | #include <linux/sched.h> | ||
17 | #include <linux/err.h> | ||
18 | |||
19 | static inline long syscall_get_nr(struct task_struct *task, | ||
20 | struct pt_regs *regs) | ||
21 | { | ||
22 | /* | ||
23 | * We always sign-extend a -1 value being set here, | ||
24 | * so this is always either -1L or a syscall number. | ||
25 | */ | ||
26 | return regs->orig_ax; | ||
27 | } | ||
28 | |||
29 | static inline void syscall_rollback(struct task_struct *task, | ||
30 | struct pt_regs *regs) | ||
31 | { | ||
32 | regs->ax = regs->orig_ax; | ||
33 | } | ||
34 | |||
35 | static inline long syscall_get_error(struct task_struct *task, | ||
36 | struct pt_regs *regs) | ||
37 | { | ||
38 | unsigned long error = regs->ax; | ||
39 | #ifdef CONFIG_IA32_EMULATION | ||
40 | /* | ||
41 | * TS_COMPAT is set for 32-bit syscall entries and then | ||
42 | * remains set until we return to user mode. | ||
43 | */ | ||
44 | if (task_thread_info(task)->status & TS_COMPAT) | ||
45 | /* | ||
46 | * Sign-extend the value so (int)-EFOO becomes (long)-EFOO | ||
47 | * and will match correctly in comparisons. | ||
48 | */ | ||
49 | error = (long) (int) error; | ||
50 | #endif | ||
51 | return IS_ERR_VALUE(error) ? error : 0; | ||
52 | } | ||
53 | |||
54 | static inline long syscall_get_return_value(struct task_struct *task, | ||
55 | struct pt_regs *regs) | ||
56 | { | ||
57 | return regs->ax; | ||
58 | } | ||
59 | |||
60 | static inline void syscall_set_return_value(struct task_struct *task, | ||
61 | struct pt_regs *regs, | ||
62 | int error, long val) | ||
63 | { | ||
64 | regs->ax = (long) error ?: val; | ||
65 | } | ||
66 | |||
67 | #ifdef CONFIG_X86_32 | ||
68 | |||
69 | static inline void syscall_get_arguments(struct task_struct *task, | ||
70 | struct pt_regs *regs, | ||
71 | unsigned int i, unsigned int n, | ||
72 | unsigned long *args) | ||
73 | { | ||
74 | BUG_ON(i + n > 6); | ||
75 | memcpy(args, ®s->bx + i, n * sizeof(args[0])); | ||
76 | } | ||
77 | |||
78 | static inline void syscall_set_arguments(struct task_struct *task, | ||
79 | struct pt_regs *regs, | ||
80 | unsigned int i, unsigned int n, | ||
81 | const unsigned long *args) | ||
82 | { | ||
83 | BUG_ON(i + n > 6); | ||
84 | memcpy(®s->bx + i, args, n * sizeof(args[0])); | ||
85 | } | ||
86 | |||
87 | #else /* CONFIG_X86_64 */ | ||
88 | |||
89 | static inline void syscall_get_arguments(struct task_struct *task, | ||
90 | struct pt_regs *regs, | ||
91 | unsigned int i, unsigned int n, | ||
92 | unsigned long *args) | ||
93 | { | ||
94 | # ifdef CONFIG_IA32_EMULATION | ||
95 | if (task_thread_info(task)->status & TS_COMPAT) | ||
96 | switch (i) { | ||
97 | case 0: | ||
98 | if (!n--) break; | ||
99 | *args++ = regs->bx; | ||
100 | case 1: | ||
101 | if (!n--) break; | ||
102 | *args++ = regs->cx; | ||
103 | case 2: | ||
104 | if (!n--) break; | ||
105 | *args++ = regs->dx; | ||
106 | case 3: | ||
107 | if (!n--) break; | ||
108 | *args++ = regs->si; | ||
109 | case 4: | ||
110 | if (!n--) break; | ||
111 | *args++ = regs->di; | ||
112 | case 5: | ||
113 | if (!n--) break; | ||
114 | *args++ = regs->bp; | ||
115 | case 6: | ||
116 | if (!n--) break; | ||
117 | default: | ||
118 | BUG(); | ||
119 | break; | ||
120 | } | ||
121 | else | ||
122 | # endif | ||
123 | switch (i) { | ||
124 | case 0: | ||
125 | if (!n--) break; | ||
126 | *args++ = regs->di; | ||
127 | case 1: | ||
128 | if (!n--) break; | ||
129 | *args++ = regs->si; | ||
130 | case 2: | ||
131 | if (!n--) break; | ||
132 | *args++ = regs->dx; | ||
133 | case 3: | ||
134 | if (!n--) break; | ||
135 | *args++ = regs->r10; | ||
136 | case 4: | ||
137 | if (!n--) break; | ||
138 | *args++ = regs->r8; | ||
139 | case 5: | ||
140 | if (!n--) break; | ||
141 | *args++ = regs->r9; | ||
142 | case 6: | ||
143 | if (!n--) break; | ||
144 | default: | ||
145 | BUG(); | ||
146 | break; | ||
147 | } | ||
148 | } | ||
149 | |||
150 | static inline void syscall_set_arguments(struct task_struct *task, | ||
151 | struct pt_regs *regs, | ||
152 | unsigned int i, unsigned int n, | ||
153 | const unsigned long *args) | ||
154 | { | ||
155 | # ifdef CONFIG_IA32_EMULATION | ||
156 | if (task_thread_info(task)->status & TS_COMPAT) | ||
157 | switch (i) { | ||
158 | case 0: | ||
159 | if (!n--) break; | ||
160 | regs->bx = *args++; | ||
161 | case 1: | ||
162 | if (!n--) break; | ||
163 | regs->cx = *args++; | ||
164 | case 2: | ||
165 | if (!n--) break; | ||
166 | regs->dx = *args++; | ||
167 | case 3: | ||
168 | if (!n--) break; | ||
169 | regs->si = *args++; | ||
170 | case 4: | ||
171 | if (!n--) break; | ||
172 | regs->di = *args++; | ||
173 | case 5: | ||
174 | if (!n--) break; | ||
175 | regs->bp = *args++; | ||
176 | case 6: | ||
177 | if (!n--) break; | ||
178 | default: | ||
179 | BUG(); | ||
180 | break; | ||
181 | } | ||
182 | else | ||
183 | # endif | ||
184 | switch (i) { | ||
185 | case 0: | ||
186 | if (!n--) break; | ||
187 | regs->di = *args++; | ||
188 | case 1: | ||
189 | if (!n--) break; | ||
190 | regs->si = *args++; | ||
191 | case 2: | ||
192 | if (!n--) break; | ||
193 | regs->dx = *args++; | ||
194 | case 3: | ||
195 | if (!n--) break; | ||
196 | regs->r10 = *args++; | ||
197 | case 4: | ||
198 | if (!n--) break; | ||
199 | regs->r8 = *args++; | ||
200 | case 5: | ||
201 | if (!n--) break; | ||
202 | regs->r9 = *args++; | ||
203 | case 6: | ||
204 | if (!n--) break; | ||
205 | default: | ||
206 | BUG(); | ||
207 | break; | ||
208 | } | ||
209 | } | ||
210 | |||
211 | #endif /* CONFIG_X86_32 */ | ||
212 | |||
213 | #endif /* _ASM_X86_SYSCALL_H */ | ||
diff --git a/arch/x86/include/asm/syscalls.h b/arch/x86/include/asm/syscalls.h new file mode 100644 index 000000000000..87803da44010 --- /dev/null +++ b/arch/x86/include/asm/syscalls.h | |||
@@ -0,0 +1,93 @@ | |||
1 | /* | ||
2 | * syscalls.h - Linux syscall interfaces (arch-specific) | ||
3 | * | ||
4 | * Copyright (c) 2008 Jaswinder Singh | ||
5 | * | ||
6 | * This file is released under the GPLv2. | ||
7 | * See the file COPYING for more details. | ||
8 | */ | ||
9 | |||
10 | #ifndef _ASM_X86_SYSCALLS_H | ||
11 | #define _ASM_X86_SYSCALLS_H | ||
12 | |||
13 | #include <linux/compiler.h> | ||
14 | #include <linux/linkage.h> | ||
15 | #include <linux/types.h> | ||
16 | #include <linux/signal.h> | ||
17 | |||
18 | /* Common in X86_32 and X86_64 */ | ||
19 | /* kernel/ioport.c */ | ||
20 | asmlinkage long sys_ioperm(unsigned long, unsigned long, int); | ||
21 | |||
22 | /* X86_32 only */ | ||
23 | #ifdef CONFIG_X86_32 | ||
24 | /* kernel/process_32.c */ | ||
25 | asmlinkage int sys_fork(struct pt_regs); | ||
26 | asmlinkage int sys_clone(struct pt_regs); | ||
27 | asmlinkage int sys_vfork(struct pt_regs); | ||
28 | asmlinkage int sys_execve(struct pt_regs); | ||
29 | |||
30 | /* kernel/signal_32.c */ | ||
31 | asmlinkage int sys_sigsuspend(int, int, old_sigset_t); | ||
32 | asmlinkage int sys_sigaction(int, const struct old_sigaction __user *, | ||
33 | struct old_sigaction __user *); | ||
34 | asmlinkage int sys_sigaltstack(unsigned long); | ||
35 | asmlinkage unsigned long sys_sigreturn(unsigned long); | ||
36 | asmlinkage int sys_rt_sigreturn(unsigned long); | ||
37 | |||
38 | /* kernel/ioport.c */ | ||
39 | asmlinkage long sys_iopl(unsigned long); | ||
40 | |||
41 | /* kernel/ldt.c */ | ||
42 | asmlinkage int sys_modify_ldt(int, void __user *, unsigned long); | ||
43 | |||
44 | /* kernel/sys_i386_32.c */ | ||
45 | asmlinkage long sys_mmap2(unsigned long, unsigned long, unsigned long, | ||
46 | unsigned long, unsigned long, unsigned long); | ||
47 | struct mmap_arg_struct; | ||
48 | asmlinkage int old_mmap(struct mmap_arg_struct __user *); | ||
49 | struct sel_arg_struct; | ||
50 | asmlinkage int old_select(struct sel_arg_struct __user *); | ||
51 | asmlinkage int sys_ipc(uint, int, int, int, void __user *, long); | ||
52 | struct old_utsname; | ||
53 | asmlinkage int sys_uname(struct old_utsname __user *); | ||
54 | struct oldold_utsname; | ||
55 | asmlinkage int sys_olduname(struct oldold_utsname __user *); | ||
56 | |||
57 | /* kernel/tls.c */ | ||
58 | asmlinkage int sys_set_thread_area(struct user_desc __user *); | ||
59 | asmlinkage int sys_get_thread_area(struct user_desc __user *); | ||
60 | |||
61 | /* kernel/vm86_32.c */ | ||
62 | asmlinkage int sys_vm86old(struct pt_regs); | ||
63 | asmlinkage int sys_vm86(struct pt_regs); | ||
64 | |||
65 | #else /* CONFIG_X86_32 */ | ||
66 | |||
67 | /* X86_64 only */ | ||
68 | /* kernel/process_64.c */ | ||
69 | asmlinkage long sys_fork(struct pt_regs *); | ||
70 | asmlinkage long sys_clone(unsigned long, unsigned long, | ||
71 | void __user *, void __user *, | ||
72 | struct pt_regs *); | ||
73 | asmlinkage long sys_vfork(struct pt_regs *); | ||
74 | asmlinkage long sys_execve(char __user *, char __user * __user *, | ||
75 | char __user * __user *, | ||
76 | struct pt_regs *); | ||
77 | |||
78 | /* kernel/ioport.c */ | ||
79 | asmlinkage long sys_iopl(unsigned int, struct pt_regs *); | ||
80 | |||
81 | /* kernel/signal_64.c */ | ||
82 | asmlinkage long sys_sigaltstack(const stack_t __user *, stack_t __user *, | ||
83 | struct pt_regs *); | ||
84 | asmlinkage long sys_rt_sigreturn(struct pt_regs *); | ||
85 | |||
86 | /* kernel/sys_x86_64.c */ | ||
87 | asmlinkage long sys_mmap(unsigned long, unsigned long, unsigned long, | ||
88 | unsigned long, unsigned long, unsigned long); | ||
89 | struct new_utsname; | ||
90 | asmlinkage long sys_uname(struct new_utsname __user *); | ||
91 | |||
92 | #endif /* CONFIG_X86_32 */ | ||
93 | #endif /* _ASM_X86_SYSCALLS_H */ | ||
diff --git a/arch/x86/include/asm/system.h b/arch/x86/include/asm/system.h new file mode 100644 index 000000000000..2ed3f0f44ff7 --- /dev/null +++ b/arch/x86/include/asm/system.h | |||
@@ -0,0 +1,425 @@ | |||
1 | #ifndef _ASM_X86_SYSTEM_H | ||
2 | #define _ASM_X86_SYSTEM_H | ||
3 | |||
4 | #include <asm/asm.h> | ||
5 | #include <asm/segment.h> | ||
6 | #include <asm/cpufeature.h> | ||
7 | #include <asm/cmpxchg.h> | ||
8 | #include <asm/nops.h> | ||
9 | |||
10 | #include <linux/kernel.h> | ||
11 | #include <linux/irqflags.h> | ||
12 | |||
13 | /* entries in ARCH_DLINFO: */ | ||
14 | #ifdef CONFIG_IA32_EMULATION | ||
15 | # define AT_VECTOR_SIZE_ARCH 2 | ||
16 | #else | ||
17 | # define AT_VECTOR_SIZE_ARCH 1 | ||
18 | #endif | ||
19 | |||
20 | #ifdef CONFIG_X86_32 | ||
21 | |||
22 | struct task_struct; /* one of the stranger aspects of C forward declarations */ | ||
23 | struct task_struct *__switch_to(struct task_struct *prev, | ||
24 | struct task_struct *next); | ||
25 | |||
26 | /* | ||
27 | * Saving eflags is important. It switches not only IOPL between tasks, | ||
28 | * it also protects other tasks from NT leaking through sysenter etc. | ||
29 | */ | ||
30 | #define switch_to(prev, next, last) \ | ||
31 | do { \ | ||
32 | /* \ | ||
33 | * Context-switching clobbers all registers, so we clobber \ | ||
34 | * them explicitly, via unused output variables. \ | ||
35 | * (EAX and EBP is not listed because EBP is saved/restored \ | ||
36 | * explicitly for wchan access and EAX is the return value of \ | ||
37 | * __switch_to()) \ | ||
38 | */ \ | ||
39 | unsigned long ebx, ecx, edx, esi, edi; \ | ||
40 | \ | ||
41 | asm volatile("pushfl\n\t" /* save flags */ \ | ||
42 | "pushl %%ebp\n\t" /* save EBP */ \ | ||
43 | "movl %%esp,%[prev_sp]\n\t" /* save ESP */ \ | ||
44 | "movl %[next_sp],%%esp\n\t" /* restore ESP */ \ | ||
45 | "movl $1f,%[prev_ip]\n\t" /* save EIP */ \ | ||
46 | "pushl %[next_ip]\n\t" /* restore EIP */ \ | ||
47 | "jmp __switch_to\n" /* regparm call */ \ | ||
48 | "1:\t" \ | ||
49 | "popl %%ebp\n\t" /* restore EBP */ \ | ||
50 | "popfl\n" /* restore flags */ \ | ||
51 | \ | ||
52 | /* output parameters */ \ | ||
53 | : [prev_sp] "=m" (prev->thread.sp), \ | ||
54 | [prev_ip] "=m" (prev->thread.ip), \ | ||
55 | "=a" (last), \ | ||
56 | \ | ||
57 | /* clobbered output registers: */ \ | ||
58 | "=b" (ebx), "=c" (ecx), "=d" (edx), \ | ||
59 | "=S" (esi), "=D" (edi) \ | ||
60 | \ | ||
61 | /* input parameters: */ \ | ||
62 | : [next_sp] "m" (next->thread.sp), \ | ||
63 | [next_ip] "m" (next->thread.ip), \ | ||
64 | \ | ||
65 | /* regparm parameters for __switch_to(): */ \ | ||
66 | [prev] "a" (prev), \ | ||
67 | [next] "d" (next) \ | ||
68 | \ | ||
69 | : /* reloaded segment registers */ \ | ||
70 | "memory"); \ | ||
71 | } while (0) | ||
72 | |||
73 | /* | ||
74 | * disable hlt during certain critical i/o operations | ||
75 | */ | ||
76 | #define HAVE_DISABLE_HLT | ||
77 | #else | ||
78 | #define __SAVE(reg, offset) "movq %%" #reg ",(14-" #offset ")*8(%%rsp)\n\t" | ||
79 | #define __RESTORE(reg, offset) "movq (14-" #offset ")*8(%%rsp),%%" #reg "\n\t" | ||
80 | |||
81 | /* frame pointer must be last for get_wchan */ | ||
82 | #define SAVE_CONTEXT "pushf ; pushq %%rbp ; movq %%rsi,%%rbp\n\t" | ||
83 | #define RESTORE_CONTEXT "movq %%rbp,%%rsi ; popq %%rbp ; popf\t" | ||
84 | |||
85 | #define __EXTRA_CLOBBER \ | ||
86 | , "rcx", "rbx", "rdx", "r8", "r9", "r10", "r11", \ | ||
87 | "r12", "r13", "r14", "r15" | ||
88 | |||
89 | /* Save restore flags to clear handle leaking NT */ | ||
90 | #define switch_to(prev, next, last) \ | ||
91 | asm volatile(SAVE_CONTEXT \ | ||
92 | "movq %%rsp,%P[threadrsp](%[prev])\n\t" /* save RSP */ \ | ||
93 | "movq %P[threadrsp](%[next]),%%rsp\n\t" /* restore RSP */ \ | ||
94 | "call __switch_to\n\t" \ | ||
95 | ".globl thread_return\n" \ | ||
96 | "thread_return:\n\t" \ | ||
97 | "movq %%gs:%P[pda_pcurrent],%%rsi\n\t" \ | ||
98 | "movq %P[thread_info](%%rsi),%%r8\n\t" \ | ||
99 | LOCK_PREFIX "btr %[tif_fork],%P[ti_flags](%%r8)\n\t" \ | ||
100 | "movq %%rax,%%rdi\n\t" \ | ||
101 | "jc ret_from_fork\n\t" \ | ||
102 | RESTORE_CONTEXT \ | ||
103 | : "=a" (last) \ | ||
104 | : [next] "S" (next), [prev] "D" (prev), \ | ||
105 | [threadrsp] "i" (offsetof(struct task_struct, thread.sp)), \ | ||
106 | [ti_flags] "i" (offsetof(struct thread_info, flags)), \ | ||
107 | [tif_fork] "i" (TIF_FORK), \ | ||
108 | [thread_info] "i" (offsetof(struct task_struct, stack)), \ | ||
109 | [pda_pcurrent] "i" (offsetof(struct x8664_pda, pcurrent)) \ | ||
110 | : "memory", "cc" __EXTRA_CLOBBER) | ||
111 | #endif | ||
112 | |||
113 | #ifdef __KERNEL__ | ||
114 | #define _set_base(addr, base) do { unsigned long __pr; \ | ||
115 | __asm__ __volatile__ ("movw %%dx,%1\n\t" \ | ||
116 | "rorl $16,%%edx\n\t" \ | ||
117 | "movb %%dl,%2\n\t" \ | ||
118 | "movb %%dh,%3" \ | ||
119 | :"=&d" (__pr) \ | ||
120 | :"m" (*((addr)+2)), \ | ||
121 | "m" (*((addr)+4)), \ | ||
122 | "m" (*((addr)+7)), \ | ||
123 | "0" (base) \ | ||
124 | ); } while (0) | ||
125 | |||
126 | #define _set_limit(addr, limit) do { unsigned long __lr; \ | ||
127 | __asm__ __volatile__ ("movw %%dx,%1\n\t" \ | ||
128 | "rorl $16,%%edx\n\t" \ | ||
129 | "movb %2,%%dh\n\t" \ | ||
130 | "andb $0xf0,%%dh\n\t" \ | ||
131 | "orb %%dh,%%dl\n\t" \ | ||
132 | "movb %%dl,%2" \ | ||
133 | :"=&d" (__lr) \ | ||
134 | :"m" (*(addr)), \ | ||
135 | "m" (*((addr)+6)), \ | ||
136 | "0" (limit) \ | ||
137 | ); } while (0) | ||
138 | |||
139 | #define set_base(ldt, base) _set_base(((char *)&(ldt)) , (base)) | ||
140 | #define set_limit(ldt, limit) _set_limit(((char *)&(ldt)) , ((limit)-1)) | ||
141 | |||
142 | extern void native_load_gs_index(unsigned); | ||
143 | |||
144 | /* | ||
145 | * Load a segment. Fall back on loading the zero | ||
146 | * segment if something goes wrong.. | ||
147 | */ | ||
148 | #define loadsegment(seg, value) \ | ||
149 | asm volatile("\n" \ | ||
150 | "1:\t" \ | ||
151 | "movl %k0,%%" #seg "\n" \ | ||
152 | "2:\n" \ | ||
153 | ".section .fixup,\"ax\"\n" \ | ||
154 | "3:\t" \ | ||
155 | "movl %k1, %%" #seg "\n\t" \ | ||
156 | "jmp 2b\n" \ | ||
157 | ".previous\n" \ | ||
158 | _ASM_EXTABLE(1b,3b) \ | ||
159 | : :"r" (value), "r" (0) : "memory") | ||
160 | |||
161 | |||
162 | /* | ||
163 | * Save a segment register away | ||
164 | */ | ||
165 | #define savesegment(seg, value) \ | ||
166 | asm("mov %%" #seg ",%0":"=r" (value) : : "memory") | ||
167 | |||
168 | static inline unsigned long get_limit(unsigned long segment) | ||
169 | { | ||
170 | unsigned long __limit; | ||
171 | asm("lsll %1,%0" : "=r" (__limit) : "r" (segment)); | ||
172 | return __limit + 1; | ||
173 | } | ||
174 | |||
175 | static inline void native_clts(void) | ||
176 | { | ||
177 | asm volatile("clts"); | ||
178 | } | ||
179 | |||
180 | /* | ||
181 | * Volatile isn't enough to prevent the compiler from reordering the | ||
182 | * read/write functions for the control registers and messing everything up. | ||
183 | * A memory clobber would solve the problem, but would prevent reordering of | ||
184 | * all loads stores around it, which can hurt performance. Solution is to | ||
185 | * use a variable and mimic reads and writes to it to enforce serialization | ||
186 | */ | ||
187 | static unsigned long __force_order; | ||
188 | |||
189 | static inline unsigned long native_read_cr0(void) | ||
190 | { | ||
191 | unsigned long val; | ||
192 | asm volatile("mov %%cr0,%0\n\t" : "=r" (val), "=m" (__force_order)); | ||
193 | return val; | ||
194 | } | ||
195 | |||
196 | static inline void native_write_cr0(unsigned long val) | ||
197 | { | ||
198 | asm volatile("mov %0,%%cr0": : "r" (val), "m" (__force_order)); | ||
199 | } | ||
200 | |||
201 | static inline unsigned long native_read_cr2(void) | ||
202 | { | ||
203 | unsigned long val; | ||
204 | asm volatile("mov %%cr2,%0\n\t" : "=r" (val), "=m" (__force_order)); | ||
205 | return val; | ||
206 | } | ||
207 | |||
208 | static inline void native_write_cr2(unsigned long val) | ||
209 | { | ||
210 | asm volatile("mov %0,%%cr2": : "r" (val), "m" (__force_order)); | ||
211 | } | ||
212 | |||
213 | static inline unsigned long native_read_cr3(void) | ||
214 | { | ||
215 | unsigned long val; | ||
216 | asm volatile("mov %%cr3,%0\n\t" : "=r" (val), "=m" (__force_order)); | ||
217 | return val; | ||
218 | } | ||
219 | |||
220 | static inline void native_write_cr3(unsigned long val) | ||
221 | { | ||
222 | asm volatile("mov %0,%%cr3": : "r" (val), "m" (__force_order)); | ||
223 | } | ||
224 | |||
225 | static inline unsigned long native_read_cr4(void) | ||
226 | { | ||
227 | unsigned long val; | ||
228 | asm volatile("mov %%cr4,%0\n\t" : "=r" (val), "=m" (__force_order)); | ||
229 | return val; | ||
230 | } | ||
231 | |||
232 | static inline unsigned long native_read_cr4_safe(void) | ||
233 | { | ||
234 | unsigned long val; | ||
235 | /* This could fault if %cr4 does not exist. In x86_64, a cr4 always | ||
236 | * exists, so it will never fail. */ | ||
237 | #ifdef CONFIG_X86_32 | ||
238 | asm volatile("1: mov %%cr4, %0\n" | ||
239 | "2:\n" | ||
240 | _ASM_EXTABLE(1b, 2b) | ||
241 | : "=r" (val), "=m" (__force_order) : "0" (0)); | ||
242 | #else | ||
243 | val = native_read_cr4(); | ||
244 | #endif | ||
245 | return val; | ||
246 | } | ||
247 | |||
248 | static inline void native_write_cr4(unsigned long val) | ||
249 | { | ||
250 | asm volatile("mov %0,%%cr4": : "r" (val), "m" (__force_order)); | ||
251 | } | ||
252 | |||
253 | #ifdef CONFIG_X86_64 | ||
254 | static inline unsigned long native_read_cr8(void) | ||
255 | { | ||
256 | unsigned long cr8; | ||
257 | asm volatile("movq %%cr8,%0" : "=r" (cr8)); | ||
258 | return cr8; | ||
259 | } | ||
260 | |||
261 | static inline void native_write_cr8(unsigned long val) | ||
262 | { | ||
263 | asm volatile("movq %0,%%cr8" :: "r" (val) : "memory"); | ||
264 | } | ||
265 | #endif | ||
266 | |||
267 | static inline void native_wbinvd(void) | ||
268 | { | ||
269 | asm volatile("wbinvd": : :"memory"); | ||
270 | } | ||
271 | |||
272 | #ifdef CONFIG_PARAVIRT | ||
273 | #include <asm/paravirt.h> | ||
274 | #else | ||
275 | #define read_cr0() (native_read_cr0()) | ||
276 | #define write_cr0(x) (native_write_cr0(x)) | ||
277 | #define read_cr2() (native_read_cr2()) | ||
278 | #define write_cr2(x) (native_write_cr2(x)) | ||
279 | #define read_cr3() (native_read_cr3()) | ||
280 | #define write_cr3(x) (native_write_cr3(x)) | ||
281 | #define read_cr4() (native_read_cr4()) | ||
282 | #define read_cr4_safe() (native_read_cr4_safe()) | ||
283 | #define write_cr4(x) (native_write_cr4(x)) | ||
284 | #define wbinvd() (native_wbinvd()) | ||
285 | #ifdef CONFIG_X86_64 | ||
286 | #define read_cr8() (native_read_cr8()) | ||
287 | #define write_cr8(x) (native_write_cr8(x)) | ||
288 | #define load_gs_index native_load_gs_index | ||
289 | #endif | ||
290 | |||
291 | /* Clear the 'TS' bit */ | ||
292 | #define clts() (native_clts()) | ||
293 | |||
294 | #endif/* CONFIG_PARAVIRT */ | ||
295 | |||
296 | #define stts() write_cr0(read_cr0() | X86_CR0_TS) | ||
297 | |||
298 | #endif /* __KERNEL__ */ | ||
299 | |||
300 | static inline void clflush(volatile void *__p) | ||
301 | { | ||
302 | asm volatile("clflush %0" : "+m" (*(volatile char __force *)__p)); | ||
303 | } | ||
304 | |||
305 | #define nop() asm volatile ("nop") | ||
306 | |||
307 | void disable_hlt(void); | ||
308 | void enable_hlt(void); | ||
309 | |||
310 | void cpu_idle_wait(void); | ||
311 | |||
312 | extern unsigned long arch_align_stack(unsigned long sp); | ||
313 | extern void free_init_pages(char *what, unsigned long begin, unsigned long end); | ||
314 | |||
315 | void default_idle(void); | ||
316 | |||
317 | /* | ||
318 | * Force strict CPU ordering. | ||
319 | * And yes, this is required on UP too when we're talking | ||
320 | * to devices. | ||
321 | */ | ||
322 | #ifdef CONFIG_X86_32 | ||
323 | /* | ||
324 | * Some non-Intel clones support out of order store. wmb() ceases to be a | ||
325 | * nop for these. | ||
326 | */ | ||
327 | #define mb() alternative("lock; addl $0,0(%%esp)", "mfence", X86_FEATURE_XMM2) | ||
328 | #define rmb() alternative("lock; addl $0,0(%%esp)", "lfence", X86_FEATURE_XMM2) | ||
329 | #define wmb() alternative("lock; addl $0,0(%%esp)", "sfence", X86_FEATURE_XMM) | ||
330 | #else | ||
331 | #define mb() asm volatile("mfence":::"memory") | ||
332 | #define rmb() asm volatile("lfence":::"memory") | ||
333 | #define wmb() asm volatile("sfence" ::: "memory") | ||
334 | #endif | ||
335 | |||
336 | /** | ||
337 | * read_barrier_depends - Flush all pending reads that subsequents reads | ||
338 | * depend on. | ||
339 | * | ||
340 | * No data-dependent reads from memory-like regions are ever reordered | ||
341 | * over this barrier. All reads preceding this primitive are guaranteed | ||
342 | * to access memory (but not necessarily other CPUs' caches) before any | ||
343 | * reads following this primitive that depend on the data return by | ||
344 | * any of the preceding reads. This primitive is much lighter weight than | ||
345 | * rmb() on most CPUs, and is never heavier weight than is | ||
346 | * rmb(). | ||
347 | * | ||
348 | * These ordering constraints are respected by both the local CPU | ||
349 | * and the compiler. | ||
350 | * | ||
351 | * Ordering is not guaranteed by anything other than these primitives, | ||
352 | * not even by data dependencies. See the documentation for | ||
353 | * memory_barrier() for examples and URLs to more information. | ||
354 | * | ||
355 | * For example, the following code would force ordering (the initial | ||
356 | * value of "a" is zero, "b" is one, and "p" is "&a"): | ||
357 | * | ||
358 | * <programlisting> | ||
359 | * CPU 0 CPU 1 | ||
360 | * | ||
361 | * b = 2; | ||
362 | * memory_barrier(); | ||
363 | * p = &b; q = p; | ||
364 | * read_barrier_depends(); | ||
365 | * d = *q; | ||
366 | * </programlisting> | ||
367 | * | ||
368 | * because the read of "*q" depends on the read of "p" and these | ||
369 | * two reads are separated by a read_barrier_depends(). However, | ||
370 | * the following code, with the same initial values for "a" and "b": | ||
371 | * | ||
372 | * <programlisting> | ||
373 | * CPU 0 CPU 1 | ||
374 | * | ||
375 | * a = 2; | ||
376 | * memory_barrier(); | ||
377 | * b = 3; y = b; | ||
378 | * read_barrier_depends(); | ||
379 | * x = a; | ||
380 | * </programlisting> | ||
381 | * | ||
382 | * does not enforce ordering, since there is no data dependency between | ||
383 | * the read of "a" and the read of "b". Therefore, on some CPUs, such | ||
384 | * as Alpha, "y" could be set to 3 and "x" to 0. Use rmb() | ||
385 | * in cases like this where there are no data dependencies. | ||
386 | **/ | ||
387 | |||
388 | #define read_barrier_depends() do { } while (0) | ||
389 | |||
390 | #ifdef CONFIG_SMP | ||
391 | #define smp_mb() mb() | ||
392 | #ifdef CONFIG_X86_PPRO_FENCE | ||
393 | # define smp_rmb() rmb() | ||
394 | #else | ||
395 | # define smp_rmb() barrier() | ||
396 | #endif | ||
397 | #ifdef CONFIG_X86_OOSTORE | ||
398 | # define smp_wmb() wmb() | ||
399 | #else | ||
400 | # define smp_wmb() barrier() | ||
401 | #endif | ||
402 | #define smp_read_barrier_depends() read_barrier_depends() | ||
403 | #define set_mb(var, value) do { (void)xchg(&var, value); } while (0) | ||
404 | #else | ||
405 | #define smp_mb() barrier() | ||
406 | #define smp_rmb() barrier() | ||
407 | #define smp_wmb() barrier() | ||
408 | #define smp_read_barrier_depends() do { } while (0) | ||
409 | #define set_mb(var, value) do { var = value; barrier(); } while (0) | ||
410 | #endif | ||
411 | |||
412 | /* | ||
413 | * Stop RDTSC speculation. This is needed when you need to use RDTSC | ||
414 | * (or get_cycles or vread that possibly accesses the TSC) in a defined | ||
415 | * code region. | ||
416 | * | ||
417 | * (Could use an alternative three way for this if there was one.) | ||
418 | */ | ||
419 | static inline void rdtsc_barrier(void) | ||
420 | { | ||
421 | alternative(ASM_NOP3, "mfence", X86_FEATURE_MFENCE_RDTSC); | ||
422 | alternative(ASM_NOP3, "lfence", X86_FEATURE_LFENCE_RDTSC); | ||
423 | } | ||
424 | |||
425 | #endif /* _ASM_X86_SYSTEM_H */ | ||
diff --git a/arch/x86/include/asm/system_64.h b/arch/x86/include/asm/system_64.h new file mode 100644 index 000000000000..1159e091ad09 --- /dev/null +++ b/arch/x86/include/asm/system_64.h | |||
@@ -0,0 +1,22 @@ | |||
1 | #ifndef _ASM_X86_SYSTEM_64_H | ||
2 | #define _ASM_X86_SYSTEM_64_H | ||
3 | |||
4 | #include <asm/segment.h> | ||
5 | #include <asm/cmpxchg.h> | ||
6 | |||
7 | |||
8 | static inline unsigned long read_cr8(void) | ||
9 | { | ||
10 | unsigned long cr8; | ||
11 | asm volatile("movq %%cr8,%0" : "=r" (cr8)); | ||
12 | return cr8; | ||
13 | } | ||
14 | |||
15 | static inline void write_cr8(unsigned long val) | ||
16 | { | ||
17 | asm volatile("movq %0,%%cr8" :: "r" (val) : "memory"); | ||
18 | } | ||
19 | |||
20 | #include <linux/irqflags.h> | ||
21 | |||
22 | #endif /* _ASM_X86_SYSTEM_64_H */ | ||
diff --git a/arch/x86/include/asm/tce.h b/arch/x86/include/asm/tce.h new file mode 100644 index 000000000000..7a6677c1a715 --- /dev/null +++ b/arch/x86/include/asm/tce.h | |||
@@ -0,0 +1,48 @@ | |||
1 | /* | ||
2 | * This file is derived from asm-powerpc/tce.h. | ||
3 | * | ||
4 | * Copyright (C) IBM Corporation, 2006 | ||
5 | * | ||
6 | * Author: Muli Ben-Yehuda <muli@il.ibm.com> | ||
7 | * Author: Jon Mason <jdmason@us.ibm.com> | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify | ||
10 | * it under the terms of the GNU General Public License as published by | ||
11 | * the Free Software Foundation; either version 2 of the License, or | ||
12 | * (at your option) any later version. | ||
13 | * | ||
14 | * This program is distributed in the hope that it will be useful, | ||
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
17 | * GNU General Public License for more details. | ||
18 | * | ||
19 | * You should have received a copy of the GNU General Public License | ||
20 | * along with this program; if not, write to the Free Software | ||
21 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
22 | */ | ||
23 | |||
24 | #ifndef _ASM_X86_TCE_H | ||
25 | #define _ASM_X86_TCE_H | ||
26 | |||
27 | extern unsigned int specified_table_size; | ||
28 | struct iommu_table; | ||
29 | |||
30 | #define TCE_ENTRY_SIZE 8 /* in bytes */ | ||
31 | |||
32 | #define TCE_READ_SHIFT 0 | ||
33 | #define TCE_WRITE_SHIFT 1 | ||
34 | #define TCE_HUBID_SHIFT 2 /* unused */ | ||
35 | #define TCE_RSVD_SHIFT 8 /* unused */ | ||
36 | #define TCE_RPN_SHIFT 12 | ||
37 | #define TCE_UNUSED_SHIFT 48 /* unused */ | ||
38 | |||
39 | #define TCE_RPN_MASK 0x0000fffffffff000ULL | ||
40 | |||
41 | extern void tce_build(struct iommu_table *tbl, unsigned long index, | ||
42 | unsigned int npages, unsigned long uaddr, int direction); | ||
43 | extern void tce_free(struct iommu_table *tbl, long index, unsigned int npages); | ||
44 | extern void * __init alloc_tce_table(void); | ||
45 | extern void __init free_tce_table(void *tbl); | ||
46 | extern int __init build_tce_table(struct pci_dev *dev, void __iomem *bbar); | ||
47 | |||
48 | #endif /* _ASM_X86_TCE_H */ | ||
diff --git a/arch/x86/include/asm/termbits.h b/arch/x86/include/asm/termbits.h new file mode 100644 index 000000000000..af1b70ea440f --- /dev/null +++ b/arch/x86/include/asm/termbits.h | |||
@@ -0,0 +1,198 @@ | |||
1 | #ifndef _ASM_X86_TERMBITS_H | ||
2 | #define _ASM_X86_TERMBITS_H | ||
3 | |||
4 | #include <linux/posix_types.h> | ||
5 | |||
6 | typedef unsigned char cc_t; | ||
7 | typedef unsigned int speed_t; | ||
8 | typedef unsigned int tcflag_t; | ||
9 | |||
10 | #define NCCS 19 | ||
11 | struct termios { | ||
12 | tcflag_t c_iflag; /* input mode flags */ | ||
13 | tcflag_t c_oflag; /* output mode flags */ | ||
14 | tcflag_t c_cflag; /* control mode flags */ | ||
15 | tcflag_t c_lflag; /* local mode flags */ | ||
16 | cc_t c_line; /* line discipline */ | ||
17 | cc_t c_cc[NCCS]; /* control characters */ | ||
18 | }; | ||
19 | |||
20 | struct termios2 { | ||
21 | tcflag_t c_iflag; /* input mode flags */ | ||
22 | tcflag_t c_oflag; /* output mode flags */ | ||
23 | tcflag_t c_cflag; /* control mode flags */ | ||
24 | tcflag_t c_lflag; /* local mode flags */ | ||
25 | cc_t c_line; /* line discipline */ | ||
26 | cc_t c_cc[NCCS]; /* control characters */ | ||
27 | speed_t c_ispeed; /* input speed */ | ||
28 | speed_t c_ospeed; /* output speed */ | ||
29 | }; | ||
30 | |||
31 | struct ktermios { | ||
32 | tcflag_t c_iflag; /* input mode flags */ | ||
33 | tcflag_t c_oflag; /* output mode flags */ | ||
34 | tcflag_t c_cflag; /* control mode flags */ | ||
35 | tcflag_t c_lflag; /* local mode flags */ | ||
36 | cc_t c_line; /* line discipline */ | ||
37 | cc_t c_cc[NCCS]; /* control characters */ | ||
38 | speed_t c_ispeed; /* input speed */ | ||
39 | speed_t c_ospeed; /* output speed */ | ||
40 | }; | ||
41 | |||
42 | /* c_cc characters */ | ||
43 | #define VINTR 0 | ||
44 | #define VQUIT 1 | ||
45 | #define VERASE 2 | ||
46 | #define VKILL 3 | ||
47 | #define VEOF 4 | ||
48 | #define VTIME 5 | ||
49 | #define VMIN 6 | ||
50 | #define VSWTC 7 | ||
51 | #define VSTART 8 | ||
52 | #define VSTOP 9 | ||
53 | #define VSUSP 10 | ||
54 | #define VEOL 11 | ||
55 | #define VREPRINT 12 | ||
56 | #define VDISCARD 13 | ||
57 | #define VWERASE 14 | ||
58 | #define VLNEXT 15 | ||
59 | #define VEOL2 16 | ||
60 | |||
61 | /* c_iflag bits */ | ||
62 | #define IGNBRK 0000001 | ||
63 | #define BRKINT 0000002 | ||
64 | #define IGNPAR 0000004 | ||
65 | #define PARMRK 0000010 | ||
66 | #define INPCK 0000020 | ||
67 | #define ISTRIP 0000040 | ||
68 | #define INLCR 0000100 | ||
69 | #define IGNCR 0000200 | ||
70 | #define ICRNL 0000400 | ||
71 | #define IUCLC 0001000 | ||
72 | #define IXON 0002000 | ||
73 | #define IXANY 0004000 | ||
74 | #define IXOFF 0010000 | ||
75 | #define IMAXBEL 0020000 | ||
76 | #define IUTF8 0040000 | ||
77 | |||
78 | /* c_oflag bits */ | ||
79 | #define OPOST 0000001 | ||
80 | #define OLCUC 0000002 | ||
81 | #define ONLCR 0000004 | ||
82 | #define OCRNL 0000010 | ||
83 | #define ONOCR 0000020 | ||
84 | #define ONLRET 0000040 | ||
85 | #define OFILL 0000100 | ||
86 | #define OFDEL 0000200 | ||
87 | #define NLDLY 0000400 | ||
88 | #define NL0 0000000 | ||
89 | #define NL1 0000400 | ||
90 | #define CRDLY 0003000 | ||
91 | #define CR0 0000000 | ||
92 | #define CR1 0001000 | ||
93 | #define CR2 0002000 | ||
94 | #define CR3 0003000 | ||
95 | #define TABDLY 0014000 | ||
96 | #define TAB0 0000000 | ||
97 | #define TAB1 0004000 | ||
98 | #define TAB2 0010000 | ||
99 | #define TAB3 0014000 | ||
100 | #define XTABS 0014000 | ||
101 | #define BSDLY 0020000 | ||
102 | #define BS0 0000000 | ||
103 | #define BS1 0020000 | ||
104 | #define VTDLY 0040000 | ||
105 | #define VT0 0000000 | ||
106 | #define VT1 0040000 | ||
107 | #define FFDLY 0100000 | ||
108 | #define FF0 0000000 | ||
109 | #define FF1 0100000 | ||
110 | |||
111 | /* c_cflag bit meaning */ | ||
112 | #define CBAUD 0010017 | ||
113 | #define B0 0000000 /* hang up */ | ||
114 | #define B50 0000001 | ||
115 | #define B75 0000002 | ||
116 | #define B110 0000003 | ||
117 | #define B134 0000004 | ||
118 | #define B150 0000005 | ||
119 | #define B200 0000006 | ||
120 | #define B300 0000007 | ||
121 | #define B600 0000010 | ||
122 | #define B1200 0000011 | ||
123 | #define B1800 0000012 | ||
124 | #define B2400 0000013 | ||
125 | #define B4800 0000014 | ||
126 | #define B9600 0000015 | ||
127 | #define B19200 0000016 | ||
128 | #define B38400 0000017 | ||
129 | #define EXTA B19200 | ||
130 | #define EXTB B38400 | ||
131 | #define CSIZE 0000060 | ||
132 | #define CS5 0000000 | ||
133 | #define CS6 0000020 | ||
134 | #define CS7 0000040 | ||
135 | #define CS8 0000060 | ||
136 | #define CSTOPB 0000100 | ||
137 | #define CREAD 0000200 | ||
138 | #define PARENB 0000400 | ||
139 | #define PARODD 0001000 | ||
140 | #define HUPCL 0002000 | ||
141 | #define CLOCAL 0004000 | ||
142 | #define CBAUDEX 0010000 | ||
143 | #define BOTHER 0010000 /* non standard rate */ | ||
144 | #define B57600 0010001 | ||
145 | #define B115200 0010002 | ||
146 | #define B230400 0010003 | ||
147 | #define B460800 0010004 | ||
148 | #define B500000 0010005 | ||
149 | #define B576000 0010006 | ||
150 | #define B921600 0010007 | ||
151 | #define B1000000 0010010 | ||
152 | #define B1152000 0010011 | ||
153 | #define B1500000 0010012 | ||
154 | #define B2000000 0010013 | ||
155 | #define B2500000 0010014 | ||
156 | #define B3000000 0010015 | ||
157 | #define B3500000 0010016 | ||
158 | #define B4000000 0010017 | ||
159 | #define CIBAUD 002003600000 /* input baud rate */ | ||
160 | #define CMSPAR 010000000000 /* mark or space (stick) parity */ | ||
161 | #define CRTSCTS 020000000000 /* flow control */ | ||
162 | |||
163 | #define IBSHIFT 16 /* Shift from CBAUD to CIBAUD */ | ||
164 | |||
165 | /* c_lflag bits */ | ||
166 | #define ISIG 0000001 | ||
167 | #define ICANON 0000002 | ||
168 | #define XCASE 0000004 | ||
169 | #define ECHO 0000010 | ||
170 | #define ECHOE 0000020 | ||
171 | #define ECHOK 0000040 | ||
172 | #define ECHONL 0000100 | ||
173 | #define NOFLSH 0000200 | ||
174 | #define TOSTOP 0000400 | ||
175 | #define ECHOCTL 0001000 | ||
176 | #define ECHOPRT 0002000 | ||
177 | #define ECHOKE 0004000 | ||
178 | #define FLUSHO 0010000 | ||
179 | #define PENDIN 0040000 | ||
180 | #define IEXTEN 0100000 | ||
181 | |||
182 | /* tcflow() and TCXONC use these */ | ||
183 | #define TCOOFF 0 | ||
184 | #define TCOON 1 | ||
185 | #define TCIOFF 2 | ||
186 | #define TCION 3 | ||
187 | |||
188 | /* tcflush() and TCFLSH use these */ | ||
189 | #define TCIFLUSH 0 | ||
190 | #define TCOFLUSH 1 | ||
191 | #define TCIOFLUSH 2 | ||
192 | |||
193 | /* tcsetattr uses these */ | ||
194 | #define TCSANOW 0 | ||
195 | #define TCSADRAIN 1 | ||
196 | #define TCSAFLUSH 2 | ||
197 | |||
198 | #endif /* _ASM_X86_TERMBITS_H */ | ||
diff --git a/arch/x86/include/asm/termios.h b/arch/x86/include/asm/termios.h new file mode 100644 index 000000000000..f72956331c49 --- /dev/null +++ b/arch/x86/include/asm/termios.h | |||
@@ -0,0 +1,113 @@ | |||
1 | #ifndef _ASM_X86_TERMIOS_H | ||
2 | #define _ASM_X86_TERMIOS_H | ||
3 | |||
4 | #include <asm/termbits.h> | ||
5 | #include <asm/ioctls.h> | ||
6 | |||
7 | struct winsize { | ||
8 | unsigned short ws_row; | ||
9 | unsigned short ws_col; | ||
10 | unsigned short ws_xpixel; | ||
11 | unsigned short ws_ypixel; | ||
12 | }; | ||
13 | |||
14 | #define NCC 8 | ||
15 | struct termio { | ||
16 | unsigned short c_iflag; /* input mode flags */ | ||
17 | unsigned short c_oflag; /* output mode flags */ | ||
18 | unsigned short c_cflag; /* control mode flags */ | ||
19 | unsigned short c_lflag; /* local mode flags */ | ||
20 | unsigned char c_line; /* line discipline */ | ||
21 | unsigned char c_cc[NCC]; /* control characters */ | ||
22 | }; | ||
23 | |||
24 | /* modem lines */ | ||
25 | #define TIOCM_LE 0x001 | ||
26 | #define TIOCM_DTR 0x002 | ||
27 | #define TIOCM_RTS 0x004 | ||
28 | #define TIOCM_ST 0x008 | ||
29 | #define TIOCM_SR 0x010 | ||
30 | #define TIOCM_CTS 0x020 | ||
31 | #define TIOCM_CAR 0x040 | ||
32 | #define TIOCM_RNG 0x080 | ||
33 | #define TIOCM_DSR 0x100 | ||
34 | #define TIOCM_CD TIOCM_CAR | ||
35 | #define TIOCM_RI TIOCM_RNG | ||
36 | #define TIOCM_OUT1 0x2000 | ||
37 | #define TIOCM_OUT2 0x4000 | ||
38 | #define TIOCM_LOOP 0x8000 | ||
39 | |||
40 | /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */ | ||
41 | |||
42 | #ifdef __KERNEL__ | ||
43 | |||
44 | #include <asm/uaccess.h> | ||
45 | |||
46 | /* intr=^C quit=^\ erase=del kill=^U | ||
47 | eof=^D vtime=\0 vmin=\1 sxtc=\0 | ||
48 | start=^Q stop=^S susp=^Z eol=\0 | ||
49 | reprint=^R discard=^U werase=^W lnext=^V | ||
50 | eol2=\0 | ||
51 | */ | ||
52 | #define INIT_C_CC "\003\034\177\025\004\0\1\0\021\023\032\0\022\017\027\026\0" | ||
53 | |||
54 | /* | ||
55 | * Translate a "termio" structure into a "termios". Ugh. | ||
56 | */ | ||
57 | #define SET_LOW_TERMIOS_BITS(termios, termio, x) { \ | ||
58 | unsigned short __tmp; \ | ||
59 | get_user(__tmp,&(termio)->x); \ | ||
60 | *(unsigned short *) &(termios)->x = __tmp; \ | ||
61 | } | ||
62 | |||
63 | static inline int user_termio_to_kernel_termios(struct ktermios *termios, | ||
64 | struct termio __user *termio) | ||
65 | { | ||
66 | SET_LOW_TERMIOS_BITS(termios, termio, c_iflag); | ||
67 | SET_LOW_TERMIOS_BITS(termios, termio, c_oflag); | ||
68 | SET_LOW_TERMIOS_BITS(termios, termio, c_cflag); | ||
69 | SET_LOW_TERMIOS_BITS(termios, termio, c_lflag); | ||
70 | return copy_from_user(termios->c_cc, termio->c_cc, NCC); | ||
71 | } | ||
72 | |||
73 | /* | ||
74 | * Translate a "termios" structure into a "termio". Ugh. | ||
75 | */ | ||
76 | static inline int kernel_termios_to_user_termio(struct termio __user *termio, | ||
77 | struct ktermios *termios) | ||
78 | { | ||
79 | put_user((termios)->c_iflag, &(termio)->c_iflag); | ||
80 | put_user((termios)->c_oflag, &(termio)->c_oflag); | ||
81 | put_user((termios)->c_cflag, &(termio)->c_cflag); | ||
82 | put_user((termios)->c_lflag, &(termio)->c_lflag); | ||
83 | put_user((termios)->c_line, &(termio)->c_line); | ||
84 | return copy_to_user((termio)->c_cc, (termios)->c_cc, NCC); | ||
85 | } | ||
86 | |||
87 | static inline int user_termios_to_kernel_termios(struct ktermios *k, | ||
88 | struct termios2 __user *u) | ||
89 | { | ||
90 | return copy_from_user(k, u, sizeof(struct termios2)); | ||
91 | } | ||
92 | |||
93 | static inline int kernel_termios_to_user_termios(struct termios2 __user *u, | ||
94 | struct ktermios *k) | ||
95 | { | ||
96 | return copy_to_user(u, k, sizeof(struct termios2)); | ||
97 | } | ||
98 | |||
99 | static inline int user_termios_to_kernel_termios_1(struct ktermios *k, | ||
100 | struct termios __user *u) | ||
101 | { | ||
102 | return copy_from_user(k, u, sizeof(struct termios)); | ||
103 | } | ||
104 | |||
105 | static inline int kernel_termios_to_user_termios_1(struct termios __user *u, | ||
106 | struct ktermios *k) | ||
107 | { | ||
108 | return copy_to_user(u, k, sizeof(struct termios)); | ||
109 | } | ||
110 | |||
111 | #endif /* __KERNEL__ */ | ||
112 | |||
113 | #endif /* _ASM_X86_TERMIOS_H */ | ||
diff --git a/arch/x86/include/asm/therm_throt.h b/arch/x86/include/asm/therm_throt.h new file mode 100644 index 000000000000..c62349ee7860 --- /dev/null +++ b/arch/x86/include/asm/therm_throt.h | |||
@@ -0,0 +1,9 @@ | |||
1 | #ifndef _ASM_X86_THERM_THROT_H | ||
2 | #define _ASM_X86_THERM_THROT_H | ||
3 | |||
4 | #include <asm/atomic.h> | ||
5 | |||
6 | extern atomic_t therm_throt_en; | ||
7 | int therm_throt_process(int curr); | ||
8 | |||
9 | #endif /* _ASM_X86_THERM_THROT_H */ | ||
diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h new file mode 100644 index 000000000000..e44d379faad2 --- /dev/null +++ b/arch/x86/include/asm/thread_info.h | |||
@@ -0,0 +1,264 @@ | |||
1 | /* thread_info.h: low-level thread information | ||
2 | * | ||
3 | * Copyright (C) 2002 David Howells (dhowells@redhat.com) | ||
4 | * - Incorporating suggestions made by Linus Torvalds and Dave Miller | ||
5 | */ | ||
6 | |||
7 | #ifndef _ASM_X86_THREAD_INFO_H | ||
8 | #define _ASM_X86_THREAD_INFO_H | ||
9 | |||
10 | #include <linux/compiler.h> | ||
11 | #include <asm/page.h> | ||
12 | #include <asm/types.h> | ||
13 | |||
14 | /* | ||
15 | * low level task data that entry.S needs immediate access to | ||
16 | * - this struct should fit entirely inside of one cache line | ||
17 | * - this struct shares the supervisor stack pages | ||
18 | */ | ||
19 | #ifndef __ASSEMBLY__ | ||
20 | struct task_struct; | ||
21 | struct exec_domain; | ||
22 | #include <asm/processor.h> | ||
23 | |||
24 | struct thread_info { | ||
25 | struct task_struct *task; /* main task structure */ | ||
26 | struct exec_domain *exec_domain; /* execution domain */ | ||
27 | unsigned long flags; /* low level flags */ | ||
28 | __u32 status; /* thread synchronous flags */ | ||
29 | __u32 cpu; /* current CPU */ | ||
30 | int preempt_count; /* 0 => preemptable, | ||
31 | <0 => BUG */ | ||
32 | mm_segment_t addr_limit; | ||
33 | struct restart_block restart_block; | ||
34 | void __user *sysenter_return; | ||
35 | #ifdef CONFIG_X86_32 | ||
36 | unsigned long previous_esp; /* ESP of the previous stack in | ||
37 | case of nested (IRQ) stacks | ||
38 | */ | ||
39 | __u8 supervisor_stack[0]; | ||
40 | #endif | ||
41 | }; | ||
42 | |||
43 | #define INIT_THREAD_INFO(tsk) \ | ||
44 | { \ | ||
45 | .task = &tsk, \ | ||
46 | .exec_domain = &default_exec_domain, \ | ||
47 | .flags = 0, \ | ||
48 | .cpu = 0, \ | ||
49 | .preempt_count = 1, \ | ||
50 | .addr_limit = KERNEL_DS, \ | ||
51 | .restart_block = { \ | ||
52 | .fn = do_no_restart_syscall, \ | ||
53 | }, \ | ||
54 | } | ||
55 | |||
56 | #define init_thread_info (init_thread_union.thread_info) | ||
57 | #define init_stack (init_thread_union.stack) | ||
58 | |||
59 | #else /* !__ASSEMBLY__ */ | ||
60 | |||
61 | #include <asm/asm-offsets.h> | ||
62 | |||
63 | #endif | ||
64 | |||
65 | /* | ||
66 | * thread information flags | ||
67 | * - these are process state flags that various assembly files | ||
68 | * may need to access | ||
69 | * - pending work-to-be-done flags are in LSW | ||
70 | * - other flags in MSW | ||
71 | * Warning: layout of LSW is hardcoded in entry.S | ||
72 | */ | ||
73 | #define TIF_SYSCALL_TRACE 0 /* syscall trace active */ | ||
74 | #define TIF_NOTIFY_RESUME 1 /* callback before returning to user */ | ||
75 | #define TIF_SIGPENDING 2 /* signal pending */ | ||
76 | #define TIF_NEED_RESCHED 3 /* rescheduling necessary */ | ||
77 | #define TIF_SINGLESTEP 4 /* reenable singlestep on user return*/ | ||
78 | #define TIF_IRET 5 /* force IRET */ | ||
79 | #define TIF_SYSCALL_EMU 6 /* syscall emulation active */ | ||
80 | #define TIF_SYSCALL_AUDIT 7 /* syscall auditing active */ | ||
81 | #define TIF_SECCOMP 8 /* secure computing */ | ||
82 | #define TIF_MCE_NOTIFY 10 /* notify userspace of an MCE */ | ||
83 | #define TIF_NOTSC 16 /* TSC is not accessible in userland */ | ||
84 | #define TIF_IA32 17 /* 32bit process */ | ||
85 | #define TIF_FORK 18 /* ret_from_fork */ | ||
86 | #define TIF_ABI_PENDING 19 | ||
87 | #define TIF_MEMDIE 20 | ||
88 | #define TIF_DEBUG 21 /* uses debug registers */ | ||
89 | #define TIF_IO_BITMAP 22 /* uses I/O bitmap */ | ||
90 | #define TIF_FREEZE 23 /* is freezing for suspend */ | ||
91 | #define TIF_FORCED_TF 24 /* true if TF in eflags artificially */ | ||
92 | #define TIF_DEBUGCTLMSR 25 /* uses thread_struct.debugctlmsr */ | ||
93 | #define TIF_DS_AREA_MSR 26 /* uses thread_struct.ds_area_msr */ | ||
94 | #define TIF_BTS_TRACE_TS 27 /* record scheduling event timestamps */ | ||
95 | |||
96 | #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE) | ||
97 | #define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME) | ||
98 | #define _TIF_SIGPENDING (1 << TIF_SIGPENDING) | ||
99 | #define _TIF_SINGLESTEP (1 << TIF_SINGLESTEP) | ||
100 | #define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED) | ||
101 | #define _TIF_IRET (1 << TIF_IRET) | ||
102 | #define _TIF_SYSCALL_EMU (1 << TIF_SYSCALL_EMU) | ||
103 | #define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT) | ||
104 | #define _TIF_SECCOMP (1 << TIF_SECCOMP) | ||
105 | #define _TIF_MCE_NOTIFY (1 << TIF_MCE_NOTIFY) | ||
106 | #define _TIF_NOTSC (1 << TIF_NOTSC) | ||
107 | #define _TIF_IA32 (1 << TIF_IA32) | ||
108 | #define _TIF_FORK (1 << TIF_FORK) | ||
109 | #define _TIF_ABI_PENDING (1 << TIF_ABI_PENDING) | ||
110 | #define _TIF_DEBUG (1 << TIF_DEBUG) | ||
111 | #define _TIF_IO_BITMAP (1 << TIF_IO_BITMAP) | ||
112 | #define _TIF_FREEZE (1 << TIF_FREEZE) | ||
113 | #define _TIF_FORCED_TF (1 << TIF_FORCED_TF) | ||
114 | #define _TIF_DEBUGCTLMSR (1 << TIF_DEBUGCTLMSR) | ||
115 | #define _TIF_DS_AREA_MSR (1 << TIF_DS_AREA_MSR) | ||
116 | #define _TIF_BTS_TRACE_TS (1 << TIF_BTS_TRACE_TS) | ||
117 | |||
118 | /* work to do in syscall_trace_enter() */ | ||
119 | #define _TIF_WORK_SYSCALL_ENTRY \ | ||
120 | (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_EMU | \ | ||
121 | _TIF_SYSCALL_AUDIT | _TIF_SECCOMP | _TIF_SINGLESTEP) | ||
122 | |||
123 | /* work to do in syscall_trace_leave() */ | ||
124 | #define _TIF_WORK_SYSCALL_EXIT \ | ||
125 | (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | _TIF_SINGLESTEP) | ||
126 | |||
127 | /* work to do on interrupt/exception return */ | ||
128 | #define _TIF_WORK_MASK \ | ||
129 | (0x0000FFFF & \ | ||
130 | ~(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT| \ | ||
131 | _TIF_SINGLESTEP|_TIF_SECCOMP|_TIF_SYSCALL_EMU)) | ||
132 | |||
133 | /* work to do on any return to user space */ | ||
134 | #define _TIF_ALLWORK_MASK (0x0000FFFF & ~_TIF_SECCOMP) | ||
135 | |||
136 | /* Only used for 64 bit */ | ||
137 | #define _TIF_DO_NOTIFY_MASK \ | ||
138 | (_TIF_SIGPENDING|_TIF_MCE_NOTIFY|_TIF_NOTIFY_RESUME) | ||
139 | |||
140 | /* flags to check in __switch_to() */ | ||
141 | #define _TIF_WORK_CTXSW \ | ||
142 | (_TIF_IO_BITMAP|_TIF_DEBUGCTLMSR|_TIF_DS_AREA_MSR|_TIF_BTS_TRACE_TS| \ | ||
143 | _TIF_NOTSC) | ||
144 | |||
145 | #define _TIF_WORK_CTXSW_PREV _TIF_WORK_CTXSW | ||
146 | #define _TIF_WORK_CTXSW_NEXT (_TIF_WORK_CTXSW|_TIF_DEBUG) | ||
147 | |||
148 | #define PREEMPT_ACTIVE 0x10000000 | ||
149 | |||
150 | /* thread information allocation */ | ||
151 | #ifdef CONFIG_DEBUG_STACK_USAGE | ||
152 | #define THREAD_FLAGS (GFP_KERNEL | __GFP_ZERO) | ||
153 | #else | ||
154 | #define THREAD_FLAGS GFP_KERNEL | ||
155 | #endif | ||
156 | |||
157 | #define __HAVE_ARCH_THREAD_INFO_ALLOCATOR | ||
158 | |||
159 | #define alloc_thread_info(tsk) \ | ||
160 | ((struct thread_info *)__get_free_pages(THREAD_FLAGS, THREAD_ORDER)) | ||
161 | |||
162 | #ifdef CONFIG_X86_32 | ||
163 | |||
164 | #define STACK_WARN (THREAD_SIZE/8) | ||
165 | /* | ||
166 | * macros/functions for gaining access to the thread information structure | ||
167 | * | ||
168 | * preempt_count needs to be 1 initially, until the scheduler is functional. | ||
169 | */ | ||
170 | #ifndef __ASSEMBLY__ | ||
171 | |||
172 | |||
173 | /* how to get the current stack pointer from C */ | ||
174 | register unsigned long current_stack_pointer asm("esp") __used; | ||
175 | |||
176 | /* how to get the thread information struct from C */ | ||
177 | static inline struct thread_info *current_thread_info(void) | ||
178 | { | ||
179 | return (struct thread_info *) | ||
180 | (current_stack_pointer & ~(THREAD_SIZE - 1)); | ||
181 | } | ||
182 | |||
183 | #else /* !__ASSEMBLY__ */ | ||
184 | |||
185 | /* how to get the thread information struct from ASM */ | ||
186 | #define GET_THREAD_INFO(reg) \ | ||
187 | movl $-THREAD_SIZE, reg; \ | ||
188 | andl %esp, reg | ||
189 | |||
190 | /* use this one if reg already contains %esp */ | ||
191 | #define GET_THREAD_INFO_WITH_ESP(reg) \ | ||
192 | andl $-THREAD_SIZE, reg | ||
193 | |||
194 | #endif | ||
195 | |||
196 | #else /* X86_32 */ | ||
197 | |||
198 | #include <asm/pda.h> | ||
199 | |||
200 | /* | ||
201 | * macros/functions for gaining access to the thread information structure | ||
202 | * preempt_count needs to be 1 initially, until the scheduler is functional. | ||
203 | */ | ||
204 | #ifndef __ASSEMBLY__ | ||
205 | static inline struct thread_info *current_thread_info(void) | ||
206 | { | ||
207 | struct thread_info *ti; | ||
208 | ti = (void *)(read_pda(kernelstack) + PDA_STACKOFFSET - THREAD_SIZE); | ||
209 | return ti; | ||
210 | } | ||
211 | |||
212 | /* do not use in interrupt context */ | ||
213 | static inline struct thread_info *stack_thread_info(void) | ||
214 | { | ||
215 | struct thread_info *ti; | ||
216 | asm("andq %%rsp,%0; " : "=r" (ti) : "0" (~(THREAD_SIZE - 1))); | ||
217 | return ti; | ||
218 | } | ||
219 | |||
220 | #else /* !__ASSEMBLY__ */ | ||
221 | |||
222 | /* how to get the thread information struct from ASM */ | ||
223 | #define GET_THREAD_INFO(reg) \ | ||
224 | movq %gs:pda_kernelstack,reg ; \ | ||
225 | subq $(THREAD_SIZE-PDA_STACKOFFSET),reg | ||
226 | |||
227 | #endif | ||
228 | |||
229 | #endif /* !X86_32 */ | ||
230 | |||
231 | /* | ||
232 | * Thread-synchronous status. | ||
233 | * | ||
234 | * This is different from the flags in that nobody else | ||
235 | * ever touches our thread-synchronous status, so we don't | ||
236 | * have to worry about atomic accesses. | ||
237 | */ | ||
238 | #define TS_USEDFPU 0x0001 /* FPU was used by this task | ||
239 | this quantum (SMP) */ | ||
240 | #define TS_COMPAT 0x0002 /* 32bit syscall active (64BIT)*/ | ||
241 | #define TS_POLLING 0x0004 /* true if in idle loop | ||
242 | and not sleeping */ | ||
243 | #define TS_RESTORE_SIGMASK 0x0008 /* restore signal mask in do_signal() */ | ||
244 | #define TS_XSAVE 0x0010 /* Use xsave/xrstor */ | ||
245 | |||
246 | #define tsk_is_polling(t) (task_thread_info(t)->status & TS_POLLING) | ||
247 | |||
248 | #ifndef __ASSEMBLY__ | ||
249 | #define HAVE_SET_RESTORE_SIGMASK 1 | ||
250 | static inline void set_restore_sigmask(void) | ||
251 | { | ||
252 | struct thread_info *ti = current_thread_info(); | ||
253 | ti->status |= TS_RESTORE_SIGMASK; | ||
254 | set_bit(TIF_SIGPENDING, (unsigned long *)&ti->flags); | ||
255 | } | ||
256 | #endif /* !__ASSEMBLY__ */ | ||
257 | |||
258 | #ifndef __ASSEMBLY__ | ||
259 | extern void arch_task_cache_init(void); | ||
260 | extern void free_thread_info(struct thread_info *ti); | ||
261 | extern int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src); | ||
262 | #define arch_task_cache_init arch_task_cache_init | ||
263 | #endif | ||
264 | #endif /* _ASM_X86_THREAD_INFO_H */ | ||
diff --git a/arch/x86/include/asm/time.h b/arch/x86/include/asm/time.h new file mode 100644 index 000000000000..50c733aac421 --- /dev/null +++ b/arch/x86/include/asm/time.h | |||
@@ -0,0 +1,63 @@ | |||
1 | #ifndef _ASM_X86_TIME_H | ||
2 | #define _ASM_X86_TIME_H | ||
3 | |||
4 | extern void hpet_time_init(void); | ||
5 | |||
6 | #include <asm/mc146818rtc.h> | ||
7 | #ifdef CONFIG_X86_32 | ||
8 | #include <linux/efi.h> | ||
9 | |||
10 | static inline unsigned long native_get_wallclock(void) | ||
11 | { | ||
12 | unsigned long retval; | ||
13 | |||
14 | if (efi_enabled) | ||
15 | retval = efi_get_time(); | ||
16 | else | ||
17 | retval = mach_get_cmos_time(); | ||
18 | |||
19 | return retval; | ||
20 | } | ||
21 | |||
22 | static inline int native_set_wallclock(unsigned long nowtime) | ||
23 | { | ||
24 | int retval; | ||
25 | |||
26 | if (efi_enabled) | ||
27 | retval = efi_set_rtc_mmss(nowtime); | ||
28 | else | ||
29 | retval = mach_set_rtc_mmss(nowtime); | ||
30 | |||
31 | return retval; | ||
32 | } | ||
33 | |||
34 | #else | ||
35 | extern void native_time_init_hook(void); | ||
36 | |||
37 | static inline unsigned long native_get_wallclock(void) | ||
38 | { | ||
39 | return mach_get_cmos_time(); | ||
40 | } | ||
41 | |||
42 | static inline int native_set_wallclock(unsigned long nowtime) | ||
43 | { | ||
44 | return mach_set_rtc_mmss(nowtime); | ||
45 | } | ||
46 | |||
47 | #endif | ||
48 | |||
49 | extern void time_init(void); | ||
50 | |||
51 | #ifdef CONFIG_PARAVIRT | ||
52 | #include <asm/paravirt.h> | ||
53 | #else /* !CONFIG_PARAVIRT */ | ||
54 | |||
55 | #define get_wallclock() native_get_wallclock() | ||
56 | #define set_wallclock(x) native_set_wallclock(x) | ||
57 | #define choose_time_init() hpet_time_init | ||
58 | |||
59 | #endif /* CONFIG_PARAVIRT */ | ||
60 | |||
61 | extern unsigned long __init calibrate_cpu(void); | ||
62 | |||
63 | #endif /* _ASM_X86_TIME_H */ | ||
diff --git a/arch/x86/include/asm/timer.h b/arch/x86/include/asm/timer.h new file mode 100644 index 000000000000..2bb6a835c453 --- /dev/null +++ b/arch/x86/include/asm/timer.h | |||
@@ -0,0 +1,66 @@ | |||
1 | #ifndef _ASM_X86_TIMER_H | ||
2 | #define _ASM_X86_TIMER_H | ||
3 | #include <linux/init.h> | ||
4 | #include <linux/pm.h> | ||
5 | #include <linux/percpu.h> | ||
6 | |||
7 | #define TICK_SIZE (tick_nsec / 1000) | ||
8 | |||
9 | unsigned long long native_sched_clock(void); | ||
10 | unsigned long native_calibrate_tsc(void); | ||
11 | |||
12 | #ifdef CONFIG_X86_32 | ||
13 | extern int timer_ack; | ||
14 | extern int recalibrate_cpu_khz(void); | ||
15 | #endif /* CONFIG_X86_32 */ | ||
16 | |||
17 | extern int no_timer_check; | ||
18 | |||
19 | #ifndef CONFIG_PARAVIRT | ||
20 | #define calibrate_tsc() native_calibrate_tsc() | ||
21 | #endif | ||
22 | |||
23 | /* Accelerators for sched_clock() | ||
24 | * convert from cycles(64bits) => nanoseconds (64bits) | ||
25 | * basic equation: | ||
26 | * ns = cycles / (freq / ns_per_sec) | ||
27 | * ns = cycles * (ns_per_sec / freq) | ||
28 | * ns = cycles * (10^9 / (cpu_khz * 10^3)) | ||
29 | * ns = cycles * (10^6 / cpu_khz) | ||
30 | * | ||
31 | * Then we use scaling math (suggested by george@mvista.com) to get: | ||
32 | * ns = cycles * (10^6 * SC / cpu_khz) / SC | ||
33 | * ns = cycles * cyc2ns_scale / SC | ||
34 | * | ||
35 | * And since SC is a constant power of two, we can convert the div | ||
36 | * into a shift. | ||
37 | * | ||
38 | * We can use khz divisor instead of mhz to keep a better precision, since | ||
39 | * cyc2ns_scale is limited to 10^6 * 2^10, which fits in 32 bits. | ||
40 | * (mathieu.desnoyers@polymtl.ca) | ||
41 | * | ||
42 | * -johnstul@us.ibm.com "math is hard, lets go shopping!" | ||
43 | */ | ||
44 | |||
45 | DECLARE_PER_CPU(unsigned long, cyc2ns); | ||
46 | |||
47 | #define CYC2NS_SCALE_FACTOR 10 /* 2^10, carefully chosen */ | ||
48 | |||
49 | static inline unsigned long long __cycles_2_ns(unsigned long long cyc) | ||
50 | { | ||
51 | return cyc * per_cpu(cyc2ns, smp_processor_id()) >> CYC2NS_SCALE_FACTOR; | ||
52 | } | ||
53 | |||
54 | static inline unsigned long long cycles_2_ns(unsigned long long cyc) | ||
55 | { | ||
56 | unsigned long long ns; | ||
57 | unsigned long flags; | ||
58 | |||
59 | local_irq_save(flags); | ||
60 | ns = __cycles_2_ns(cyc); | ||
61 | local_irq_restore(flags); | ||
62 | |||
63 | return ns; | ||
64 | } | ||
65 | |||
66 | #endif /* _ASM_X86_TIMER_H */ | ||
diff --git a/arch/x86/include/asm/timex.h b/arch/x86/include/asm/timex.h new file mode 100644 index 000000000000..1287dc1347d6 --- /dev/null +++ b/arch/x86/include/asm/timex.h | |||
@@ -0,0 +1,19 @@ | |||
1 | /* x86 architecture timex specifications */ | ||
2 | #ifndef _ASM_X86_TIMEX_H | ||
3 | #define _ASM_X86_TIMEX_H | ||
4 | |||
5 | #include <asm/processor.h> | ||
6 | #include <asm/tsc.h> | ||
7 | |||
8 | #ifdef CONFIG_X86_ELAN | ||
9 | # define PIT_TICK_RATE 1189200 /* AMD Elan has different frequency! */ | ||
10 | #elif defined(CONFIG_X86_RDC321X) | ||
11 | # define PIT_TICK_RATE 1041667 /* Underlying HZ for R8610 */ | ||
12 | #else | ||
13 | # define PIT_TICK_RATE 1193182 /* Underlying HZ */ | ||
14 | #endif | ||
15 | #define CLOCK_TICK_RATE PIT_TICK_RATE | ||
16 | |||
17 | #define ARCH_HAS_READ_CURRENT_TIMER | ||
18 | |||
19 | #endif /* _ASM_X86_TIMEX_H */ | ||
diff --git a/arch/x86/include/asm/tlb.h b/arch/x86/include/asm/tlb.h new file mode 100644 index 000000000000..829215fef9ee --- /dev/null +++ b/arch/x86/include/asm/tlb.h | |||
@@ -0,0 +1,11 @@ | |||
1 | #ifndef _ASM_X86_TLB_H | ||
2 | #define _ASM_X86_TLB_H | ||
3 | |||
4 | #define tlb_start_vma(tlb, vma) do { } while (0) | ||
5 | #define tlb_end_vma(tlb, vma) do { } while (0) | ||
6 | #define __tlb_remove_tlb_entry(tlb, ptep, address) do { } while (0) | ||
7 | #define tlb_flush(tlb) flush_tlb_mm((tlb)->mm) | ||
8 | |||
9 | #include <asm-generic/tlb.h> | ||
10 | |||
11 | #endif /* _ASM_X86_TLB_H */ | ||
diff --git a/arch/x86/include/asm/tlbflush.h b/arch/x86/include/asm/tlbflush.h new file mode 100644 index 000000000000..0e7bbb549116 --- /dev/null +++ b/arch/x86/include/asm/tlbflush.h | |||
@@ -0,0 +1,178 @@ | |||
1 | #ifndef _ASM_X86_TLBFLUSH_H | ||
2 | #define _ASM_X86_TLBFLUSH_H | ||
3 | |||
4 | #include <linux/mm.h> | ||
5 | #include <linux/sched.h> | ||
6 | |||
7 | #include <asm/processor.h> | ||
8 | #include <asm/system.h> | ||
9 | |||
10 | #ifdef CONFIG_PARAVIRT | ||
11 | #include <asm/paravirt.h> | ||
12 | #else | ||
13 | #define __flush_tlb() __native_flush_tlb() | ||
14 | #define __flush_tlb_global() __native_flush_tlb_global() | ||
15 | #define __flush_tlb_single(addr) __native_flush_tlb_single(addr) | ||
16 | #endif | ||
17 | |||
18 | static inline void __native_flush_tlb(void) | ||
19 | { | ||
20 | write_cr3(read_cr3()); | ||
21 | } | ||
22 | |||
23 | static inline void __native_flush_tlb_global(void) | ||
24 | { | ||
25 | unsigned long flags; | ||
26 | unsigned long cr4; | ||
27 | |||
28 | /* | ||
29 | * Read-modify-write to CR4 - protect it from preemption and | ||
30 | * from interrupts. (Use the raw variant because this code can | ||
31 | * be called from deep inside debugging code.) | ||
32 | */ | ||
33 | raw_local_irq_save(flags); | ||
34 | |||
35 | cr4 = read_cr4(); | ||
36 | /* clear PGE */ | ||
37 | write_cr4(cr4 & ~X86_CR4_PGE); | ||
38 | /* write old PGE again and flush TLBs */ | ||
39 | write_cr4(cr4); | ||
40 | |||
41 | raw_local_irq_restore(flags); | ||
42 | } | ||
43 | |||
44 | static inline void __native_flush_tlb_single(unsigned long addr) | ||
45 | { | ||
46 | asm volatile("invlpg (%0)" ::"r" (addr) : "memory"); | ||
47 | } | ||
48 | |||
49 | static inline void __flush_tlb_all(void) | ||
50 | { | ||
51 | if (cpu_has_pge) | ||
52 | __flush_tlb_global(); | ||
53 | else | ||
54 | __flush_tlb(); | ||
55 | } | ||
56 | |||
57 | static inline void __flush_tlb_one(unsigned long addr) | ||
58 | { | ||
59 | if (cpu_has_invlpg) | ||
60 | __flush_tlb_single(addr); | ||
61 | else | ||
62 | __flush_tlb(); | ||
63 | } | ||
64 | |||
65 | #ifdef CONFIG_X86_32 | ||
66 | # define TLB_FLUSH_ALL 0xffffffff | ||
67 | #else | ||
68 | # define TLB_FLUSH_ALL -1ULL | ||
69 | #endif | ||
70 | |||
71 | /* | ||
72 | * TLB flushing: | ||
73 | * | ||
74 | * - flush_tlb() flushes the current mm struct TLBs | ||
75 | * - flush_tlb_all() flushes all processes TLBs | ||
76 | * - flush_tlb_mm(mm) flushes the specified mm context TLB's | ||
77 | * - flush_tlb_page(vma, vmaddr) flushes one page | ||
78 | * - flush_tlb_range(vma, start, end) flushes a range of pages | ||
79 | * - flush_tlb_kernel_range(start, end) flushes a range of kernel pages | ||
80 | * - flush_tlb_others(cpumask, mm, va) flushes TLBs on other cpus | ||
81 | * | ||
82 | * ..but the i386 has somewhat limited tlb flushing capabilities, | ||
83 | * and page-granular flushes are available only on i486 and up. | ||
84 | * | ||
85 | * x86-64 can only flush individual pages or full VMs. For a range flush | ||
86 | * we always do the full VM. Might be worth trying if for a small | ||
87 | * range a few INVLPGs in a row are a win. | ||
88 | */ | ||
89 | |||
90 | #ifndef CONFIG_SMP | ||
91 | |||
92 | #define flush_tlb() __flush_tlb() | ||
93 | #define flush_tlb_all() __flush_tlb_all() | ||
94 | #define local_flush_tlb() __flush_tlb() | ||
95 | |||
96 | static inline void flush_tlb_mm(struct mm_struct *mm) | ||
97 | { | ||
98 | if (mm == current->active_mm) | ||
99 | __flush_tlb(); | ||
100 | } | ||
101 | |||
102 | static inline void flush_tlb_page(struct vm_area_struct *vma, | ||
103 | unsigned long addr) | ||
104 | { | ||
105 | if (vma->vm_mm == current->active_mm) | ||
106 | __flush_tlb_one(addr); | ||
107 | } | ||
108 | |||
109 | static inline void flush_tlb_range(struct vm_area_struct *vma, | ||
110 | unsigned long start, unsigned long end) | ||
111 | { | ||
112 | if (vma->vm_mm == current->active_mm) | ||
113 | __flush_tlb(); | ||
114 | } | ||
115 | |||
116 | static inline void native_flush_tlb_others(const cpumask_t *cpumask, | ||
117 | struct mm_struct *mm, | ||
118 | unsigned long va) | ||
119 | { | ||
120 | } | ||
121 | |||
122 | static inline void reset_lazy_tlbstate(void) | ||
123 | { | ||
124 | } | ||
125 | |||
126 | #else /* SMP */ | ||
127 | |||
128 | #include <asm/smp.h> | ||
129 | |||
130 | #define local_flush_tlb() __flush_tlb() | ||
131 | |||
132 | extern void flush_tlb_all(void); | ||
133 | extern void flush_tlb_current_task(void); | ||
134 | extern void flush_tlb_mm(struct mm_struct *); | ||
135 | extern void flush_tlb_page(struct vm_area_struct *, unsigned long); | ||
136 | |||
137 | #define flush_tlb() flush_tlb_current_task() | ||
138 | |||
139 | static inline void flush_tlb_range(struct vm_area_struct *vma, | ||
140 | unsigned long start, unsigned long end) | ||
141 | { | ||
142 | flush_tlb_mm(vma->vm_mm); | ||
143 | } | ||
144 | |||
145 | void native_flush_tlb_others(const cpumask_t *cpumask, struct mm_struct *mm, | ||
146 | unsigned long va); | ||
147 | |||
148 | #define TLBSTATE_OK 1 | ||
149 | #define TLBSTATE_LAZY 2 | ||
150 | |||
151 | #ifdef CONFIG_X86_32 | ||
152 | struct tlb_state { | ||
153 | struct mm_struct *active_mm; | ||
154 | int state; | ||
155 | char __cacheline_padding[L1_CACHE_BYTES-8]; | ||
156 | }; | ||
157 | DECLARE_PER_CPU(struct tlb_state, cpu_tlbstate); | ||
158 | |||
159 | void reset_lazy_tlbstate(void); | ||
160 | #else | ||
161 | static inline void reset_lazy_tlbstate(void) | ||
162 | { | ||
163 | } | ||
164 | #endif | ||
165 | |||
166 | #endif /* SMP */ | ||
167 | |||
168 | #ifndef CONFIG_PARAVIRT | ||
169 | #define flush_tlb_others(mask, mm, va) native_flush_tlb_others(&mask, mm, va) | ||
170 | #endif | ||
171 | |||
172 | static inline void flush_tlb_kernel_range(unsigned long start, | ||
173 | unsigned long end) | ||
174 | { | ||
175 | flush_tlb_all(); | ||
176 | } | ||
177 | |||
178 | #endif /* _ASM_X86_TLBFLUSH_H */ | ||
diff --git a/arch/x86/include/asm/topology.h b/arch/x86/include/asm/topology.h new file mode 100644 index 000000000000..90ac7718469a --- /dev/null +++ b/arch/x86/include/asm/topology.h | |||
@@ -0,0 +1,258 @@ | |||
1 | /* | ||
2 | * Written by: Matthew Dobson, IBM Corporation | ||
3 | * | ||
4 | * Copyright (C) 2002, IBM Corp. | ||
5 | * | ||
6 | * All rights reserved. | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License as published by | ||
10 | * the Free Software Foundation; either version 2 of the License, or | ||
11 | * (at your option) any later version. | ||
12 | * | ||
13 | * This program is distributed in the hope that it will be useful, but | ||
14 | * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or | ||
16 | * NON INFRINGEMENT. See the GNU General Public License for more | ||
17 | * details. | ||
18 | * | ||
19 | * You should have received a copy of the GNU General Public License | ||
20 | * along with this program; if not, write to the Free Software | ||
21 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
22 | * | ||
23 | * Send feedback to <colpatch@us.ibm.com> | ||
24 | */ | ||
25 | #ifndef _ASM_X86_TOPOLOGY_H | ||
26 | #define _ASM_X86_TOPOLOGY_H | ||
27 | |||
28 | #ifdef CONFIG_X86_32 | ||
29 | # ifdef CONFIG_X86_HT | ||
30 | # define ENABLE_TOPO_DEFINES | ||
31 | # endif | ||
32 | #else | ||
33 | # ifdef CONFIG_SMP | ||
34 | # define ENABLE_TOPO_DEFINES | ||
35 | # endif | ||
36 | #endif | ||
37 | |||
38 | /* Node not present */ | ||
39 | #define NUMA_NO_NODE (-1) | ||
40 | |||
41 | #ifdef CONFIG_NUMA | ||
42 | #include <linux/cpumask.h> | ||
43 | #include <asm/mpspec.h> | ||
44 | |||
45 | #ifdef CONFIG_X86_32 | ||
46 | |||
47 | /* Mappings between node number and cpus on that node. */ | ||
48 | extern cpumask_t node_to_cpumask_map[]; | ||
49 | |||
50 | /* Mappings between logical cpu number and node number */ | ||
51 | extern int cpu_to_node_map[]; | ||
52 | |||
53 | /* Returns the number of the node containing CPU 'cpu' */ | ||
54 | static inline int cpu_to_node(int cpu) | ||
55 | { | ||
56 | return cpu_to_node_map[cpu]; | ||
57 | } | ||
58 | #define early_cpu_to_node(cpu) cpu_to_node(cpu) | ||
59 | |||
60 | /* Returns a bitmask of CPUs on Node 'node'. | ||
61 | * | ||
62 | * Side note: this function creates the returned cpumask on the stack | ||
63 | * so with a high NR_CPUS count, excessive stack space is used. The | ||
64 | * node_to_cpumask_ptr function should be used whenever possible. | ||
65 | */ | ||
66 | static inline cpumask_t node_to_cpumask(int node) | ||
67 | { | ||
68 | return node_to_cpumask_map[node]; | ||
69 | } | ||
70 | |||
71 | #else /* CONFIG_X86_64 */ | ||
72 | |||
73 | /* Mappings between node number and cpus on that node. */ | ||
74 | extern cpumask_t *node_to_cpumask_map; | ||
75 | |||
76 | /* Mappings between logical cpu number and node number */ | ||
77 | DECLARE_EARLY_PER_CPU(int, x86_cpu_to_node_map); | ||
78 | |||
79 | /* Returns the number of the current Node. */ | ||
80 | #define numa_node_id() read_pda(nodenumber) | ||
81 | |||
82 | #ifdef CONFIG_DEBUG_PER_CPU_MAPS | ||
83 | extern int cpu_to_node(int cpu); | ||
84 | extern int early_cpu_to_node(int cpu); | ||
85 | extern const cpumask_t *_node_to_cpumask_ptr(int node); | ||
86 | extern cpumask_t node_to_cpumask(int node); | ||
87 | |||
88 | #else /* !CONFIG_DEBUG_PER_CPU_MAPS */ | ||
89 | |||
90 | /* Returns the number of the node containing CPU 'cpu' */ | ||
91 | static inline int cpu_to_node(int cpu) | ||
92 | { | ||
93 | return per_cpu(x86_cpu_to_node_map, cpu); | ||
94 | } | ||
95 | |||
96 | /* Same function but used if called before per_cpu areas are setup */ | ||
97 | static inline int early_cpu_to_node(int cpu) | ||
98 | { | ||
99 | if (early_per_cpu_ptr(x86_cpu_to_node_map)) | ||
100 | return early_per_cpu_ptr(x86_cpu_to_node_map)[cpu]; | ||
101 | |||
102 | return per_cpu(x86_cpu_to_node_map, cpu); | ||
103 | } | ||
104 | |||
105 | /* Returns a pointer to the cpumask of CPUs on Node 'node'. */ | ||
106 | static inline const cpumask_t *_node_to_cpumask_ptr(int node) | ||
107 | { | ||
108 | return &node_to_cpumask_map[node]; | ||
109 | } | ||
110 | |||
111 | /* Returns a bitmask of CPUs on Node 'node'. */ | ||
112 | static inline cpumask_t node_to_cpumask(int node) | ||
113 | { | ||
114 | return node_to_cpumask_map[node]; | ||
115 | } | ||
116 | |||
117 | #endif /* !CONFIG_DEBUG_PER_CPU_MAPS */ | ||
118 | |||
119 | /* Replace default node_to_cpumask_ptr with optimized version */ | ||
120 | #define node_to_cpumask_ptr(v, node) \ | ||
121 | const cpumask_t *v = _node_to_cpumask_ptr(node) | ||
122 | |||
123 | #define node_to_cpumask_ptr_next(v, node) \ | ||
124 | v = _node_to_cpumask_ptr(node) | ||
125 | |||
126 | #endif /* CONFIG_X86_64 */ | ||
127 | |||
128 | /* | ||
129 | * Returns the number of the node containing Node 'node'. This | ||
130 | * architecture is flat, so it is a pretty simple function! | ||
131 | */ | ||
132 | #define parent_node(node) (node) | ||
133 | |||
134 | #define pcibus_to_node(bus) __pcibus_to_node(bus) | ||
135 | #define pcibus_to_cpumask(bus) __pcibus_to_cpumask(bus) | ||
136 | |||
137 | #ifdef CONFIG_X86_32 | ||
138 | extern unsigned long node_start_pfn[]; | ||
139 | extern unsigned long node_end_pfn[]; | ||
140 | extern unsigned long node_remap_size[]; | ||
141 | #define node_has_online_mem(nid) (node_start_pfn[nid] != node_end_pfn[nid]) | ||
142 | |||
143 | # define SD_CACHE_NICE_TRIES 1 | ||
144 | # define SD_IDLE_IDX 1 | ||
145 | # define SD_NEWIDLE_IDX 2 | ||
146 | # define SD_FORKEXEC_IDX 0 | ||
147 | |||
148 | #else | ||
149 | |||
150 | # define SD_CACHE_NICE_TRIES 2 | ||
151 | # define SD_IDLE_IDX 2 | ||
152 | # define SD_NEWIDLE_IDX 2 | ||
153 | # define SD_FORKEXEC_IDX 1 | ||
154 | |||
155 | #endif | ||
156 | |||
157 | /* sched_domains SD_NODE_INIT for NUMAQ machines */ | ||
158 | #define SD_NODE_INIT (struct sched_domain) { \ | ||
159 | .min_interval = 8, \ | ||
160 | .max_interval = 32, \ | ||
161 | .busy_factor = 32, \ | ||
162 | .imbalance_pct = 125, \ | ||
163 | .cache_nice_tries = SD_CACHE_NICE_TRIES, \ | ||
164 | .busy_idx = 3, \ | ||
165 | .idle_idx = SD_IDLE_IDX, \ | ||
166 | .newidle_idx = SD_NEWIDLE_IDX, \ | ||
167 | .wake_idx = 1, \ | ||
168 | .forkexec_idx = SD_FORKEXEC_IDX, \ | ||
169 | .flags = SD_LOAD_BALANCE \ | ||
170 | | SD_BALANCE_EXEC \ | ||
171 | | SD_BALANCE_FORK \ | ||
172 | | SD_SERIALIZE \ | ||
173 | | SD_WAKE_BALANCE, \ | ||
174 | .last_balance = jiffies, \ | ||
175 | .balance_interval = 1, \ | ||
176 | } | ||
177 | |||
178 | #ifdef CONFIG_X86_64_ACPI_NUMA | ||
179 | extern int __node_distance(int, int); | ||
180 | #define node_distance(a, b) __node_distance(a, b) | ||
181 | #endif | ||
182 | |||
183 | #else /* !CONFIG_NUMA */ | ||
184 | |||
185 | #define numa_node_id() 0 | ||
186 | #define cpu_to_node(cpu) 0 | ||
187 | #define early_cpu_to_node(cpu) 0 | ||
188 | |||
189 | static inline const cpumask_t *_node_to_cpumask_ptr(int node) | ||
190 | { | ||
191 | return &cpu_online_map; | ||
192 | } | ||
193 | static inline cpumask_t node_to_cpumask(int node) | ||
194 | { | ||
195 | return cpu_online_map; | ||
196 | } | ||
197 | static inline int node_to_first_cpu(int node) | ||
198 | { | ||
199 | return first_cpu(cpu_online_map); | ||
200 | } | ||
201 | |||
202 | /* Replace default node_to_cpumask_ptr with optimized version */ | ||
203 | #define node_to_cpumask_ptr(v, node) \ | ||
204 | const cpumask_t *v = _node_to_cpumask_ptr(node) | ||
205 | |||
206 | #define node_to_cpumask_ptr_next(v, node) \ | ||
207 | v = _node_to_cpumask_ptr(node) | ||
208 | #endif | ||
209 | |||
210 | #include <asm-generic/topology.h> | ||
211 | |||
212 | #ifdef CONFIG_NUMA | ||
213 | /* Returns the number of the first CPU on Node 'node'. */ | ||
214 | static inline int node_to_first_cpu(int node) | ||
215 | { | ||
216 | node_to_cpumask_ptr(mask, node); | ||
217 | return first_cpu(*mask); | ||
218 | } | ||
219 | #endif | ||
220 | |||
221 | extern cpumask_t cpu_coregroup_map(int cpu); | ||
222 | |||
223 | #ifdef ENABLE_TOPO_DEFINES | ||
224 | #define topology_physical_package_id(cpu) (cpu_data(cpu).phys_proc_id) | ||
225 | #define topology_core_id(cpu) (cpu_data(cpu).cpu_core_id) | ||
226 | #define topology_core_siblings(cpu) (per_cpu(cpu_core_map, cpu)) | ||
227 | #define topology_thread_siblings(cpu) (per_cpu(cpu_sibling_map, cpu)) | ||
228 | |||
229 | /* indicates that pointers to the topology cpumask_t maps are valid */ | ||
230 | #define arch_provides_topology_pointers yes | ||
231 | #endif | ||
232 | |||
233 | static inline void arch_fix_phys_package_id(int num, u32 slot) | ||
234 | { | ||
235 | } | ||
236 | |||
237 | struct pci_bus; | ||
238 | void set_pci_bus_resources_arch_default(struct pci_bus *b); | ||
239 | |||
240 | #ifdef CONFIG_SMP | ||
241 | #define mc_capable() (boot_cpu_data.x86_max_cores > 1) | ||
242 | #define smt_capable() (smp_num_siblings > 1) | ||
243 | #endif | ||
244 | |||
245 | #ifdef CONFIG_NUMA | ||
246 | extern int get_mp_bus_to_node(int busnum); | ||
247 | extern void set_mp_bus_to_node(int busnum, int node); | ||
248 | #else | ||
249 | static inline int get_mp_bus_to_node(int busnum) | ||
250 | { | ||
251 | return 0; | ||
252 | } | ||
253 | static inline void set_mp_bus_to_node(int busnum, int node) | ||
254 | { | ||
255 | } | ||
256 | #endif | ||
257 | |||
258 | #endif /* _ASM_X86_TOPOLOGY_H */ | ||
diff --git a/arch/x86/include/asm/trampoline.h b/arch/x86/include/asm/trampoline.h new file mode 100644 index 000000000000..fa0d79facdbc --- /dev/null +++ b/arch/x86/include/asm/trampoline.h | |||
@@ -0,0 +1,21 @@ | |||
1 | #ifndef _ASM_X86_TRAMPOLINE_H | ||
2 | #define _ASM_X86_TRAMPOLINE_H | ||
3 | |||
4 | #ifndef __ASSEMBLY__ | ||
5 | |||
6 | /* | ||
7 | * Trampoline 80x86 program as an array. | ||
8 | */ | ||
9 | extern const unsigned char trampoline_data []; | ||
10 | extern const unsigned char trampoline_end []; | ||
11 | extern unsigned char *trampoline_base; | ||
12 | |||
13 | extern unsigned long init_rsp; | ||
14 | extern unsigned long initial_code; | ||
15 | |||
16 | #define TRAMPOLINE_BASE 0x6000 | ||
17 | extern unsigned long setup_trampoline(void); | ||
18 | |||
19 | #endif /* __ASSEMBLY__ */ | ||
20 | |||
21 | #endif /* _ASM_X86_TRAMPOLINE_H */ | ||
diff --git a/arch/x86/include/asm/traps.h b/arch/x86/include/asm/traps.h new file mode 100644 index 000000000000..45dee286e45c --- /dev/null +++ b/arch/x86/include/asm/traps.h | |||
@@ -0,0 +1,81 @@ | |||
1 | #ifndef _ASM_X86_TRAPS_H | ||
2 | #define _ASM_X86_TRAPS_H | ||
3 | |||
4 | #include <asm/debugreg.h> | ||
5 | |||
6 | #ifdef CONFIG_X86_32 | ||
7 | #define dotraplinkage | ||
8 | #else | ||
9 | #define dotraplinkage asmlinkage | ||
10 | #endif | ||
11 | |||
12 | asmlinkage void divide_error(void); | ||
13 | asmlinkage void debug(void); | ||
14 | asmlinkage void nmi(void); | ||
15 | asmlinkage void int3(void); | ||
16 | asmlinkage void overflow(void); | ||
17 | asmlinkage void bounds(void); | ||
18 | asmlinkage void invalid_op(void); | ||
19 | asmlinkage void device_not_available(void); | ||
20 | #ifdef CONFIG_X86_64 | ||
21 | asmlinkage void double_fault(void); | ||
22 | #endif | ||
23 | asmlinkage void coprocessor_segment_overrun(void); | ||
24 | asmlinkage void invalid_TSS(void); | ||
25 | asmlinkage void segment_not_present(void); | ||
26 | asmlinkage void stack_segment(void); | ||
27 | asmlinkage void general_protection(void); | ||
28 | asmlinkage void page_fault(void); | ||
29 | asmlinkage void spurious_interrupt_bug(void); | ||
30 | asmlinkage void coprocessor_error(void); | ||
31 | asmlinkage void alignment_check(void); | ||
32 | #ifdef CONFIG_X86_MCE | ||
33 | asmlinkage void machine_check(void); | ||
34 | #endif /* CONFIG_X86_MCE */ | ||
35 | asmlinkage void simd_coprocessor_error(void); | ||
36 | |||
37 | dotraplinkage void do_divide_error(struct pt_regs *, long); | ||
38 | dotraplinkage void do_debug(struct pt_regs *, long); | ||
39 | dotraplinkage void do_nmi(struct pt_regs *, long); | ||
40 | dotraplinkage void do_int3(struct pt_regs *, long); | ||
41 | dotraplinkage void do_overflow(struct pt_regs *, long); | ||
42 | dotraplinkage void do_bounds(struct pt_regs *, long); | ||
43 | dotraplinkage void do_invalid_op(struct pt_regs *, long); | ||
44 | dotraplinkage void do_device_not_available(struct pt_regs *, long); | ||
45 | dotraplinkage void do_coprocessor_segment_overrun(struct pt_regs *, long); | ||
46 | dotraplinkage void do_invalid_TSS(struct pt_regs *, long); | ||
47 | dotraplinkage void do_segment_not_present(struct pt_regs *, long); | ||
48 | dotraplinkage void do_stack_segment(struct pt_regs *, long); | ||
49 | dotraplinkage void do_general_protection(struct pt_regs *, long); | ||
50 | dotraplinkage void do_page_fault(struct pt_regs *, unsigned long); | ||
51 | dotraplinkage void do_spurious_interrupt_bug(struct pt_regs *, long); | ||
52 | dotraplinkage void do_coprocessor_error(struct pt_regs *, long); | ||
53 | dotraplinkage void do_alignment_check(struct pt_regs *, long); | ||
54 | #ifdef CONFIG_X86_MCE | ||
55 | dotraplinkage void do_machine_check(struct pt_regs *, long); | ||
56 | #endif | ||
57 | dotraplinkage void do_simd_coprocessor_error(struct pt_regs *, long); | ||
58 | #ifdef CONFIG_X86_32 | ||
59 | dotraplinkage void do_iret_error(struct pt_regs *, long); | ||
60 | #endif | ||
61 | |||
62 | static inline int get_si_code(unsigned long condition) | ||
63 | { | ||
64 | if (condition & DR_STEP) | ||
65 | return TRAP_TRACE; | ||
66 | else if (condition & (DR_TRAP0|DR_TRAP1|DR_TRAP2|DR_TRAP3)) | ||
67 | return TRAP_HWBKPT; | ||
68 | else | ||
69 | return TRAP_BRKPT; | ||
70 | } | ||
71 | |||
72 | extern int panic_on_unrecovered_nmi; | ||
73 | extern int kstack_depth_to_print; | ||
74 | |||
75 | #ifdef CONFIG_X86_32 | ||
76 | void math_error(void __user *); | ||
77 | unsigned long patch_espfix_desc(unsigned long, unsigned long); | ||
78 | asmlinkage void math_emulate(long); | ||
79 | #endif | ||
80 | |||
81 | #endif /* _ASM_X86_TRAPS_H */ | ||
diff --git a/arch/x86/include/asm/tsc.h b/arch/x86/include/asm/tsc.h new file mode 100644 index 000000000000..38ae163cc91b --- /dev/null +++ b/arch/x86/include/asm/tsc.h | |||
@@ -0,0 +1,62 @@ | |||
1 | /* | ||
2 | * x86 TSC related functions | ||
3 | */ | ||
4 | #ifndef _ASM_X86_TSC_H | ||
5 | #define _ASM_X86_TSC_H | ||
6 | |||
7 | #include <asm/processor.h> | ||
8 | |||
9 | #define NS_SCALE 10 /* 2^10, carefully chosen */ | ||
10 | #define US_SCALE 32 /* 2^32, arbitralrily chosen */ | ||
11 | |||
12 | /* | ||
13 | * Standard way to access the cycle counter. | ||
14 | */ | ||
15 | typedef unsigned long long cycles_t; | ||
16 | |||
17 | extern unsigned int cpu_khz; | ||
18 | extern unsigned int tsc_khz; | ||
19 | |||
20 | extern void disable_TSC(void); | ||
21 | |||
22 | static inline cycles_t get_cycles(void) | ||
23 | { | ||
24 | unsigned long long ret = 0; | ||
25 | |||
26 | #ifndef CONFIG_X86_TSC | ||
27 | if (!cpu_has_tsc) | ||
28 | return 0; | ||
29 | #endif | ||
30 | rdtscll(ret); | ||
31 | |||
32 | return ret; | ||
33 | } | ||
34 | |||
35 | static __always_inline cycles_t vget_cycles(void) | ||
36 | { | ||
37 | /* | ||
38 | * We only do VDSOs on TSC capable CPUs, so this shouldnt | ||
39 | * access boot_cpu_data (which is not VDSO-safe): | ||
40 | */ | ||
41 | #ifndef CONFIG_X86_TSC | ||
42 | if (!cpu_has_tsc) | ||
43 | return 0; | ||
44 | #endif | ||
45 | return (cycles_t)__native_read_tsc(); | ||
46 | } | ||
47 | |||
48 | extern void tsc_init(void); | ||
49 | extern void mark_tsc_unstable(char *reason); | ||
50 | extern int unsynchronized_tsc(void); | ||
51 | int check_tsc_unstable(void); | ||
52 | |||
53 | /* | ||
54 | * Boot-time check whether the TSCs are synchronized across | ||
55 | * all CPUs/cores: | ||
56 | */ | ||
57 | extern void check_tsc_sync_source(int cpu); | ||
58 | extern void check_tsc_sync_target(void); | ||
59 | |||
60 | extern int notsc_setup(char *); | ||
61 | |||
62 | #endif /* _ASM_X86_TSC_H */ | ||
diff --git a/arch/x86/include/asm/types.h b/arch/x86/include/asm/types.h new file mode 100644 index 000000000000..e6f736320077 --- /dev/null +++ b/arch/x86/include/asm/types.h | |||
@@ -0,0 +1,36 @@ | |||
1 | #ifndef _ASM_X86_TYPES_H | ||
2 | #define _ASM_X86_TYPES_H | ||
3 | |||
4 | #include <asm-generic/int-ll64.h> | ||
5 | |||
6 | #ifndef __ASSEMBLY__ | ||
7 | |||
8 | typedef unsigned short umode_t; | ||
9 | |||
10 | #endif /* __ASSEMBLY__ */ | ||
11 | |||
12 | /* | ||
13 | * These aren't exported outside the kernel to avoid name space clashes | ||
14 | */ | ||
15 | #ifdef __KERNEL__ | ||
16 | |||
17 | #ifdef CONFIG_X86_32 | ||
18 | # define BITS_PER_LONG 32 | ||
19 | #else | ||
20 | # define BITS_PER_LONG 64 | ||
21 | #endif | ||
22 | |||
23 | #ifndef __ASSEMBLY__ | ||
24 | |||
25 | typedef u64 dma64_addr_t; | ||
26 | #if defined(CONFIG_X86_64) || defined(CONFIG_HIGHMEM64G) | ||
27 | /* DMA addresses come in 32-bit and 64-bit flavours. */ | ||
28 | typedef u64 dma_addr_t; | ||
29 | #else | ||
30 | typedef u32 dma_addr_t; | ||
31 | #endif | ||
32 | |||
33 | #endif /* __ASSEMBLY__ */ | ||
34 | #endif /* __KERNEL__ */ | ||
35 | |||
36 | #endif /* _ASM_X86_TYPES_H */ | ||
diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h new file mode 100644 index 000000000000..35c54921b2e4 --- /dev/null +++ b/arch/x86/include/asm/uaccess.h | |||
@@ -0,0 +1,454 @@ | |||
1 | #ifndef _ASM_X86_UACCESS_H | ||
2 | #define _ASM_X86_UACCESS_H | ||
3 | /* | ||
4 | * User space memory access functions | ||
5 | */ | ||
6 | #include <linux/errno.h> | ||
7 | #include <linux/compiler.h> | ||
8 | #include <linux/thread_info.h> | ||
9 | #include <linux/prefetch.h> | ||
10 | #include <linux/string.h> | ||
11 | #include <asm/asm.h> | ||
12 | #include <asm/page.h> | ||
13 | |||
14 | #define VERIFY_READ 0 | ||
15 | #define VERIFY_WRITE 1 | ||
16 | |||
17 | /* | ||
18 | * The fs value determines whether argument validity checking should be | ||
19 | * performed or not. If get_fs() == USER_DS, checking is performed, with | ||
20 | * get_fs() == KERNEL_DS, checking is bypassed. | ||
21 | * | ||
22 | * For historical reasons, these macros are grossly misnamed. | ||
23 | */ | ||
24 | |||
25 | #define MAKE_MM_SEG(s) ((mm_segment_t) { (s) }) | ||
26 | |||
27 | #define KERNEL_DS MAKE_MM_SEG(-1UL) | ||
28 | #define USER_DS MAKE_MM_SEG(PAGE_OFFSET) | ||
29 | |||
30 | #define get_ds() (KERNEL_DS) | ||
31 | #define get_fs() (current_thread_info()->addr_limit) | ||
32 | #define set_fs(x) (current_thread_info()->addr_limit = (x)) | ||
33 | |||
34 | #define segment_eq(a, b) ((a).seg == (b).seg) | ||
35 | |||
36 | #define __addr_ok(addr) \ | ||
37 | ((unsigned long __force)(addr) < \ | ||
38 | (current_thread_info()->addr_limit.seg)) | ||
39 | |||
40 | /* | ||
41 | * Test whether a block of memory is a valid user space address. | ||
42 | * Returns 0 if the range is valid, nonzero otherwise. | ||
43 | * | ||
44 | * This is equivalent to the following test: | ||
45 | * (u33)addr + (u33)size >= (u33)current->addr_limit.seg (u65 for x86_64) | ||
46 | * | ||
47 | * This needs 33-bit (65-bit for x86_64) arithmetic. We have a carry... | ||
48 | */ | ||
49 | |||
50 | #define __range_not_ok(addr, size) \ | ||
51 | ({ \ | ||
52 | unsigned long flag, roksum; \ | ||
53 | __chk_user_ptr(addr); \ | ||
54 | asm("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0" \ | ||
55 | : "=&r" (flag), "=r" (roksum) \ | ||
56 | : "1" (addr), "g" ((long)(size)), \ | ||
57 | "rm" (current_thread_info()->addr_limit.seg)); \ | ||
58 | flag; \ | ||
59 | }) | ||
60 | |||
61 | /** | ||
62 | * access_ok: - Checks if a user space pointer is valid | ||
63 | * @type: Type of access: %VERIFY_READ or %VERIFY_WRITE. Note that | ||
64 | * %VERIFY_WRITE is a superset of %VERIFY_READ - if it is safe | ||
65 | * to write to a block, it is always safe to read from it. | ||
66 | * @addr: User space pointer to start of block to check | ||
67 | * @size: Size of block to check | ||
68 | * | ||
69 | * Context: User context only. This function may sleep. | ||
70 | * | ||
71 | * Checks if a pointer to a block of memory in user space is valid. | ||
72 | * | ||
73 | * Returns true (nonzero) if the memory block may be valid, false (zero) | ||
74 | * if it is definitely invalid. | ||
75 | * | ||
76 | * Note that, depending on architecture, this function probably just | ||
77 | * checks that the pointer is in the user space range - after calling | ||
78 | * this function, memory access functions may still return -EFAULT. | ||
79 | */ | ||
80 | #define access_ok(type, addr, size) (likely(__range_not_ok(addr, size) == 0)) | ||
81 | |||
82 | /* | ||
83 | * The exception table consists of pairs of addresses: the first is the | ||
84 | * address of an instruction that is allowed to fault, and the second is | ||
85 | * the address at which the program should continue. No registers are | ||
86 | * modified, so it is entirely up to the continuation code to figure out | ||
87 | * what to do. | ||
88 | * | ||
89 | * All the routines below use bits of fixup code that are out of line | ||
90 | * with the main instruction path. This means when everything is well, | ||
91 | * we don't even have to jump over them. Further, they do not intrude | ||
92 | * on our cache or tlb entries. | ||
93 | */ | ||
94 | |||
95 | struct exception_table_entry { | ||
96 | unsigned long insn, fixup; | ||
97 | }; | ||
98 | |||
99 | extern int fixup_exception(struct pt_regs *regs); | ||
100 | |||
101 | /* | ||
102 | * These are the main single-value transfer routines. They automatically | ||
103 | * use the right size if we just have the right pointer type. | ||
104 | * | ||
105 | * This gets kind of ugly. We want to return _two_ values in "get_user()" | ||
106 | * and yet we don't want to do any pointers, because that is too much | ||
107 | * of a performance impact. Thus we have a few rather ugly macros here, | ||
108 | * and hide all the ugliness from the user. | ||
109 | * | ||
110 | * The "__xxx" versions of the user access functions are versions that | ||
111 | * do not verify the address space, that must have been done previously | ||
112 | * with a separate "access_ok()" call (this is used when we do multiple | ||
113 | * accesses to the same area of user memory). | ||
114 | */ | ||
115 | |||
116 | extern int __get_user_1(void); | ||
117 | extern int __get_user_2(void); | ||
118 | extern int __get_user_4(void); | ||
119 | extern int __get_user_8(void); | ||
120 | extern int __get_user_bad(void); | ||
121 | |||
122 | #define __get_user_x(size, ret, x, ptr) \ | ||
123 | asm volatile("call __get_user_" #size \ | ||
124 | : "=a" (ret),"=d" (x) \ | ||
125 | : "0" (ptr)) \ | ||
126 | |||
127 | /* Careful: we have to cast the result to the type of the pointer | ||
128 | * for sign reasons */ | ||
129 | |||
130 | /** | ||
131 | * get_user: - Get a simple variable from user space. | ||
132 | * @x: Variable to store result. | ||
133 | * @ptr: Source address, in user space. | ||
134 | * | ||
135 | * Context: User context only. This function may sleep. | ||
136 | * | ||
137 | * This macro copies a single simple variable from user space to kernel | ||
138 | * space. It supports simple types like char and int, but not larger | ||
139 | * data types like structures or arrays. | ||
140 | * | ||
141 | * @ptr must have pointer-to-simple-variable type, and the result of | ||
142 | * dereferencing @ptr must be assignable to @x without a cast. | ||
143 | * | ||
144 | * Returns zero on success, or -EFAULT on error. | ||
145 | * On error, the variable @x is set to zero. | ||
146 | */ | ||
147 | #ifdef CONFIG_X86_32 | ||
148 | #define __get_user_8(__ret_gu, __val_gu, ptr) \ | ||
149 | __get_user_x(X, __ret_gu, __val_gu, ptr) | ||
150 | #else | ||
151 | #define __get_user_8(__ret_gu, __val_gu, ptr) \ | ||
152 | __get_user_x(8, __ret_gu, __val_gu, ptr) | ||
153 | #endif | ||
154 | |||
155 | #define get_user(x, ptr) \ | ||
156 | ({ \ | ||
157 | int __ret_gu; \ | ||
158 | unsigned long __val_gu; \ | ||
159 | __chk_user_ptr(ptr); \ | ||
160 | switch (sizeof(*(ptr))) { \ | ||
161 | case 1: \ | ||
162 | __get_user_x(1, __ret_gu, __val_gu, ptr); \ | ||
163 | break; \ | ||
164 | case 2: \ | ||
165 | __get_user_x(2, __ret_gu, __val_gu, ptr); \ | ||
166 | break; \ | ||
167 | case 4: \ | ||
168 | __get_user_x(4, __ret_gu, __val_gu, ptr); \ | ||
169 | break; \ | ||
170 | case 8: \ | ||
171 | __get_user_8(__ret_gu, __val_gu, ptr); \ | ||
172 | break; \ | ||
173 | default: \ | ||
174 | __get_user_x(X, __ret_gu, __val_gu, ptr); \ | ||
175 | break; \ | ||
176 | } \ | ||
177 | (x) = (__typeof__(*(ptr)))__val_gu; \ | ||
178 | __ret_gu; \ | ||
179 | }) | ||
180 | |||
181 | #define __put_user_x(size, x, ptr, __ret_pu) \ | ||
182 | asm volatile("call __put_user_" #size : "=a" (__ret_pu) \ | ||
183 | :"0" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx") | ||
184 | |||
185 | |||
186 | |||
187 | #ifdef CONFIG_X86_32 | ||
188 | #define __put_user_u64(x, addr, err) \ | ||
189 | asm volatile("1: movl %%eax,0(%2)\n" \ | ||
190 | "2: movl %%edx,4(%2)\n" \ | ||
191 | "3:\n" \ | ||
192 | ".section .fixup,\"ax\"\n" \ | ||
193 | "4: movl %3,%0\n" \ | ||
194 | " jmp 3b\n" \ | ||
195 | ".previous\n" \ | ||
196 | _ASM_EXTABLE(1b, 4b) \ | ||
197 | _ASM_EXTABLE(2b, 4b) \ | ||
198 | : "=r" (err) \ | ||
199 | : "A" (x), "r" (addr), "i" (-EFAULT), "0" (err)) | ||
200 | |||
201 | #define __put_user_x8(x, ptr, __ret_pu) \ | ||
202 | asm volatile("call __put_user_8" : "=a" (__ret_pu) \ | ||
203 | : "A" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx") | ||
204 | #else | ||
205 | #define __put_user_u64(x, ptr, retval) \ | ||
206 | __put_user_asm(x, ptr, retval, "q", "", "Zr", -EFAULT) | ||
207 | #define __put_user_x8(x, ptr, __ret_pu) __put_user_x(8, x, ptr, __ret_pu) | ||
208 | #endif | ||
209 | |||
210 | extern void __put_user_bad(void); | ||
211 | |||
212 | /* | ||
213 | * Strange magic calling convention: pointer in %ecx, | ||
214 | * value in %eax(:%edx), return value in %eax. clobbers %rbx | ||
215 | */ | ||
216 | extern void __put_user_1(void); | ||
217 | extern void __put_user_2(void); | ||
218 | extern void __put_user_4(void); | ||
219 | extern void __put_user_8(void); | ||
220 | |||
221 | #ifdef CONFIG_X86_WP_WORKS_OK | ||
222 | |||
223 | /** | ||
224 | * put_user: - Write a simple value into user space. | ||
225 | * @x: Value to copy to user space. | ||
226 | * @ptr: Destination address, in user space. | ||
227 | * | ||
228 | * Context: User context only. This function may sleep. | ||
229 | * | ||
230 | * This macro copies a single simple value from kernel space to user | ||
231 | * space. It supports simple types like char and int, but not larger | ||
232 | * data types like structures or arrays. | ||
233 | * | ||
234 | * @ptr must have pointer-to-simple-variable type, and @x must be assignable | ||
235 | * to the result of dereferencing @ptr. | ||
236 | * | ||
237 | * Returns zero on success, or -EFAULT on error. | ||
238 | */ | ||
239 | #define put_user(x, ptr) \ | ||
240 | ({ \ | ||
241 | int __ret_pu; \ | ||
242 | __typeof__(*(ptr)) __pu_val; \ | ||
243 | __chk_user_ptr(ptr); \ | ||
244 | __pu_val = x; \ | ||
245 | switch (sizeof(*(ptr))) { \ | ||
246 | case 1: \ | ||
247 | __put_user_x(1, __pu_val, ptr, __ret_pu); \ | ||
248 | break; \ | ||
249 | case 2: \ | ||
250 | __put_user_x(2, __pu_val, ptr, __ret_pu); \ | ||
251 | break; \ | ||
252 | case 4: \ | ||
253 | __put_user_x(4, __pu_val, ptr, __ret_pu); \ | ||
254 | break; \ | ||
255 | case 8: \ | ||
256 | __put_user_x8(__pu_val, ptr, __ret_pu); \ | ||
257 | break; \ | ||
258 | default: \ | ||
259 | __put_user_x(X, __pu_val, ptr, __ret_pu); \ | ||
260 | break; \ | ||
261 | } \ | ||
262 | __ret_pu; \ | ||
263 | }) | ||
264 | |||
265 | #define __put_user_size(x, ptr, size, retval, errret) \ | ||
266 | do { \ | ||
267 | retval = 0; \ | ||
268 | __chk_user_ptr(ptr); \ | ||
269 | switch (size) { \ | ||
270 | case 1: \ | ||
271 | __put_user_asm(x, ptr, retval, "b", "b", "iq", errret); \ | ||
272 | break; \ | ||
273 | case 2: \ | ||
274 | __put_user_asm(x, ptr, retval, "w", "w", "ir", errret); \ | ||
275 | break; \ | ||
276 | case 4: \ | ||
277 | __put_user_asm(x, ptr, retval, "l", "k", "ir", errret);\ | ||
278 | break; \ | ||
279 | case 8: \ | ||
280 | __put_user_u64((__typeof__(*ptr))(x), ptr, retval); \ | ||
281 | break; \ | ||
282 | default: \ | ||
283 | __put_user_bad(); \ | ||
284 | } \ | ||
285 | } while (0) | ||
286 | |||
287 | #else | ||
288 | |||
289 | #define __put_user_size(x, ptr, size, retval, errret) \ | ||
290 | do { \ | ||
291 | __typeof__(*(ptr))__pus_tmp = x; \ | ||
292 | retval = 0; \ | ||
293 | \ | ||
294 | if (unlikely(__copy_to_user_ll(ptr, &__pus_tmp, size) != 0)) \ | ||
295 | retval = errret; \ | ||
296 | } while (0) | ||
297 | |||
298 | #define put_user(x, ptr) \ | ||
299 | ({ \ | ||
300 | int __ret_pu; \ | ||
301 | __typeof__(*(ptr))__pus_tmp = x; \ | ||
302 | __ret_pu = 0; \ | ||
303 | if (unlikely(__copy_to_user_ll(ptr, &__pus_tmp, \ | ||
304 | sizeof(*(ptr))) != 0)) \ | ||
305 | __ret_pu = -EFAULT; \ | ||
306 | __ret_pu; \ | ||
307 | }) | ||
308 | #endif | ||
309 | |||
310 | #ifdef CONFIG_X86_32 | ||
311 | #define __get_user_asm_u64(x, ptr, retval, errret) (x) = __get_user_bad() | ||
312 | #else | ||
313 | #define __get_user_asm_u64(x, ptr, retval, errret) \ | ||
314 | __get_user_asm(x, ptr, retval, "q", "", "=r", errret) | ||
315 | #endif | ||
316 | |||
317 | #define __get_user_size(x, ptr, size, retval, errret) \ | ||
318 | do { \ | ||
319 | retval = 0; \ | ||
320 | __chk_user_ptr(ptr); \ | ||
321 | switch (size) { \ | ||
322 | case 1: \ | ||
323 | __get_user_asm(x, ptr, retval, "b", "b", "=q", errret); \ | ||
324 | break; \ | ||
325 | case 2: \ | ||
326 | __get_user_asm(x, ptr, retval, "w", "w", "=r", errret); \ | ||
327 | break; \ | ||
328 | case 4: \ | ||
329 | __get_user_asm(x, ptr, retval, "l", "k", "=r", errret); \ | ||
330 | break; \ | ||
331 | case 8: \ | ||
332 | __get_user_asm_u64(x, ptr, retval, errret); \ | ||
333 | break; \ | ||
334 | default: \ | ||
335 | (x) = __get_user_bad(); \ | ||
336 | } \ | ||
337 | } while (0) | ||
338 | |||
339 | #define __get_user_asm(x, addr, err, itype, rtype, ltype, errret) \ | ||
340 | asm volatile("1: mov"itype" %2,%"rtype"1\n" \ | ||
341 | "2:\n" \ | ||
342 | ".section .fixup,\"ax\"\n" \ | ||
343 | "3: mov %3,%0\n" \ | ||
344 | " xor"itype" %"rtype"1,%"rtype"1\n" \ | ||
345 | " jmp 2b\n" \ | ||
346 | ".previous\n" \ | ||
347 | _ASM_EXTABLE(1b, 3b) \ | ||
348 | : "=r" (err), ltype(x) \ | ||
349 | : "m" (__m(addr)), "i" (errret), "0" (err)) | ||
350 | |||
351 | #define __put_user_nocheck(x, ptr, size) \ | ||
352 | ({ \ | ||
353 | long __pu_err; \ | ||
354 | __put_user_size((x), (ptr), (size), __pu_err, -EFAULT); \ | ||
355 | __pu_err; \ | ||
356 | }) | ||
357 | |||
358 | #define __get_user_nocheck(x, ptr, size) \ | ||
359 | ({ \ | ||
360 | long __gu_err; \ | ||
361 | unsigned long __gu_val; \ | ||
362 | __get_user_size(__gu_val, (ptr), (size), __gu_err, -EFAULT); \ | ||
363 | (x) = (__force __typeof__(*(ptr)))__gu_val; \ | ||
364 | __gu_err; \ | ||
365 | }) | ||
366 | |||
367 | /* FIXME: this hack is definitely wrong -AK */ | ||
368 | struct __large_struct { unsigned long buf[100]; }; | ||
369 | #define __m(x) (*(struct __large_struct __user *)(x)) | ||
370 | |||
371 | /* | ||
372 | * Tell gcc we read from memory instead of writing: this is because | ||
373 | * we do not write to any memory gcc knows about, so there are no | ||
374 | * aliasing issues. | ||
375 | */ | ||
376 | #define __put_user_asm(x, addr, err, itype, rtype, ltype, errret) \ | ||
377 | asm volatile("1: mov"itype" %"rtype"1,%2\n" \ | ||
378 | "2:\n" \ | ||
379 | ".section .fixup,\"ax\"\n" \ | ||
380 | "3: mov %3,%0\n" \ | ||
381 | " jmp 2b\n" \ | ||
382 | ".previous\n" \ | ||
383 | _ASM_EXTABLE(1b, 3b) \ | ||
384 | : "=r"(err) \ | ||
385 | : ltype(x), "m" (__m(addr)), "i" (errret), "0" (err)) | ||
386 | /** | ||
387 | * __get_user: - Get a simple variable from user space, with less checking. | ||
388 | * @x: Variable to store result. | ||
389 | * @ptr: Source address, in user space. | ||
390 | * | ||
391 | * Context: User context only. This function may sleep. | ||
392 | * | ||
393 | * This macro copies a single simple variable from user space to kernel | ||
394 | * space. It supports simple types like char and int, but not larger | ||
395 | * data types like structures or arrays. | ||
396 | * | ||
397 | * @ptr must have pointer-to-simple-variable type, and the result of | ||
398 | * dereferencing @ptr must be assignable to @x without a cast. | ||
399 | * | ||
400 | * Caller must check the pointer with access_ok() before calling this | ||
401 | * function. | ||
402 | * | ||
403 | * Returns zero on success, or -EFAULT on error. | ||
404 | * On error, the variable @x is set to zero. | ||
405 | */ | ||
406 | |||
407 | #define __get_user(x, ptr) \ | ||
408 | __get_user_nocheck((x), (ptr), sizeof(*(ptr))) | ||
409 | /** | ||
410 | * __put_user: - Write a simple value into user space, with less checking. | ||
411 | * @x: Value to copy to user space. | ||
412 | * @ptr: Destination address, in user space. | ||
413 | * | ||
414 | * Context: User context only. This function may sleep. | ||
415 | * | ||
416 | * This macro copies a single simple value from kernel space to user | ||
417 | * space. It supports simple types like char and int, but not larger | ||
418 | * data types like structures or arrays. | ||
419 | * | ||
420 | * @ptr must have pointer-to-simple-variable type, and @x must be assignable | ||
421 | * to the result of dereferencing @ptr. | ||
422 | * | ||
423 | * Caller must check the pointer with access_ok() before calling this | ||
424 | * function. | ||
425 | * | ||
426 | * Returns zero on success, or -EFAULT on error. | ||
427 | */ | ||
428 | |||
429 | #define __put_user(x, ptr) \ | ||
430 | __put_user_nocheck((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr))) | ||
431 | |||
432 | #define __get_user_unaligned __get_user | ||
433 | #define __put_user_unaligned __put_user | ||
434 | |||
435 | /* | ||
436 | * movsl can be slow when source and dest are not both 8-byte aligned | ||
437 | */ | ||
438 | #ifdef CONFIG_X86_INTEL_USERCOPY | ||
439 | extern struct movsl_mask { | ||
440 | int mask; | ||
441 | } ____cacheline_aligned_in_smp movsl_mask; | ||
442 | #endif | ||
443 | |||
444 | #define ARCH_HAS_NOCACHE_UACCESS 1 | ||
445 | |||
446 | #ifdef CONFIG_X86_32 | ||
447 | # include "uaccess_32.h" | ||
448 | #else | ||
449 | # define ARCH_HAS_SEARCH_EXTABLE | ||
450 | # include "uaccess_64.h" | ||
451 | #endif | ||
452 | |||
453 | #endif /* _ASM_X86_UACCESS_H */ | ||
454 | |||
diff --git a/arch/x86/include/asm/uaccess_32.h b/arch/x86/include/asm/uaccess_32.h new file mode 100644 index 000000000000..d095a3aeea1b --- /dev/null +++ b/arch/x86/include/asm/uaccess_32.h | |||
@@ -0,0 +1,218 @@ | |||
1 | #ifndef _ASM_X86_UACCESS_32_H | ||
2 | #define _ASM_X86_UACCESS_32_H | ||
3 | |||
4 | /* | ||
5 | * User space memory access functions | ||
6 | */ | ||
7 | #include <linux/errno.h> | ||
8 | #include <linux/thread_info.h> | ||
9 | #include <linux/prefetch.h> | ||
10 | #include <linux/string.h> | ||
11 | #include <asm/asm.h> | ||
12 | #include <asm/page.h> | ||
13 | |||
14 | unsigned long __must_check __copy_to_user_ll | ||
15 | (void __user *to, const void *from, unsigned long n); | ||
16 | unsigned long __must_check __copy_from_user_ll | ||
17 | (void *to, const void __user *from, unsigned long n); | ||
18 | unsigned long __must_check __copy_from_user_ll_nozero | ||
19 | (void *to, const void __user *from, unsigned long n); | ||
20 | unsigned long __must_check __copy_from_user_ll_nocache | ||
21 | (void *to, const void __user *from, unsigned long n); | ||
22 | unsigned long __must_check __copy_from_user_ll_nocache_nozero | ||
23 | (void *to, const void __user *from, unsigned long n); | ||
24 | |||
25 | /** | ||
26 | * __copy_to_user_inatomic: - Copy a block of data into user space, with less checking. | ||
27 | * @to: Destination address, in user space. | ||
28 | * @from: Source address, in kernel space. | ||
29 | * @n: Number of bytes to copy. | ||
30 | * | ||
31 | * Context: User context only. | ||
32 | * | ||
33 | * Copy data from kernel space to user space. Caller must check | ||
34 | * the specified block with access_ok() before calling this function. | ||
35 | * The caller should also make sure he pins the user space address | ||
36 | * so that the we don't result in page fault and sleep. | ||
37 | * | ||
38 | * Here we special-case 1, 2 and 4-byte copy_*_user invocations. On a fault | ||
39 | * we return the initial request size (1, 2 or 4), as copy_*_user should do. | ||
40 | * If a store crosses a page boundary and gets a fault, the x86 will not write | ||
41 | * anything, so this is accurate. | ||
42 | */ | ||
43 | |||
44 | static __always_inline unsigned long __must_check | ||
45 | __copy_to_user_inatomic(void __user *to, const void *from, unsigned long n) | ||
46 | { | ||
47 | if (__builtin_constant_p(n)) { | ||
48 | unsigned long ret; | ||
49 | |||
50 | switch (n) { | ||
51 | case 1: | ||
52 | __put_user_size(*(u8 *)from, (u8 __user *)to, | ||
53 | 1, ret, 1); | ||
54 | return ret; | ||
55 | case 2: | ||
56 | __put_user_size(*(u16 *)from, (u16 __user *)to, | ||
57 | 2, ret, 2); | ||
58 | return ret; | ||
59 | case 4: | ||
60 | __put_user_size(*(u32 *)from, (u32 __user *)to, | ||
61 | 4, ret, 4); | ||
62 | return ret; | ||
63 | } | ||
64 | } | ||
65 | return __copy_to_user_ll(to, from, n); | ||
66 | } | ||
67 | |||
68 | /** | ||
69 | * __copy_to_user: - Copy a block of data into user space, with less checking. | ||
70 | * @to: Destination address, in user space. | ||
71 | * @from: Source address, in kernel space. | ||
72 | * @n: Number of bytes to copy. | ||
73 | * | ||
74 | * Context: User context only. This function may sleep. | ||
75 | * | ||
76 | * Copy data from kernel space to user space. Caller must check | ||
77 | * the specified block with access_ok() before calling this function. | ||
78 | * | ||
79 | * Returns number of bytes that could not be copied. | ||
80 | * On success, this will be zero. | ||
81 | */ | ||
82 | static __always_inline unsigned long __must_check | ||
83 | __copy_to_user(void __user *to, const void *from, unsigned long n) | ||
84 | { | ||
85 | might_sleep(); | ||
86 | return __copy_to_user_inatomic(to, from, n); | ||
87 | } | ||
88 | |||
89 | static __always_inline unsigned long | ||
90 | __copy_from_user_inatomic(void *to, const void __user *from, unsigned long n) | ||
91 | { | ||
92 | /* Avoid zeroing the tail if the copy fails.. | ||
93 | * If 'n' is constant and 1, 2, or 4, we do still zero on a failure, | ||
94 | * but as the zeroing behaviour is only significant when n is not | ||
95 | * constant, that shouldn't be a problem. | ||
96 | */ | ||
97 | if (__builtin_constant_p(n)) { | ||
98 | unsigned long ret; | ||
99 | |||
100 | switch (n) { | ||
101 | case 1: | ||
102 | __get_user_size(*(u8 *)to, from, 1, ret, 1); | ||
103 | return ret; | ||
104 | case 2: | ||
105 | __get_user_size(*(u16 *)to, from, 2, ret, 2); | ||
106 | return ret; | ||
107 | case 4: | ||
108 | __get_user_size(*(u32 *)to, from, 4, ret, 4); | ||
109 | return ret; | ||
110 | } | ||
111 | } | ||
112 | return __copy_from_user_ll_nozero(to, from, n); | ||
113 | } | ||
114 | |||
115 | /** | ||
116 | * __copy_from_user: - Copy a block of data from user space, with less checking. | ||
117 | * @to: Destination address, in kernel space. | ||
118 | * @from: Source address, in user space. | ||
119 | * @n: Number of bytes to copy. | ||
120 | * | ||
121 | * Context: User context only. This function may sleep. | ||
122 | * | ||
123 | * Copy data from user space to kernel space. Caller must check | ||
124 | * the specified block with access_ok() before calling this function. | ||
125 | * | ||
126 | * Returns number of bytes that could not be copied. | ||
127 | * On success, this will be zero. | ||
128 | * | ||
129 | * If some data could not be copied, this function will pad the copied | ||
130 | * data to the requested size using zero bytes. | ||
131 | * | ||
132 | * An alternate version - __copy_from_user_inatomic() - may be called from | ||
133 | * atomic context and will fail rather than sleep. In this case the | ||
134 | * uncopied bytes will *NOT* be padded with zeros. See fs/filemap.h | ||
135 | * for explanation of why this is needed. | ||
136 | */ | ||
137 | static __always_inline unsigned long | ||
138 | __copy_from_user(void *to, const void __user *from, unsigned long n) | ||
139 | { | ||
140 | might_sleep(); | ||
141 | if (__builtin_constant_p(n)) { | ||
142 | unsigned long ret; | ||
143 | |||
144 | switch (n) { | ||
145 | case 1: | ||
146 | __get_user_size(*(u8 *)to, from, 1, ret, 1); | ||
147 | return ret; | ||
148 | case 2: | ||
149 | __get_user_size(*(u16 *)to, from, 2, ret, 2); | ||
150 | return ret; | ||
151 | case 4: | ||
152 | __get_user_size(*(u32 *)to, from, 4, ret, 4); | ||
153 | return ret; | ||
154 | } | ||
155 | } | ||
156 | return __copy_from_user_ll(to, from, n); | ||
157 | } | ||
158 | |||
159 | static __always_inline unsigned long __copy_from_user_nocache(void *to, | ||
160 | const void __user *from, unsigned long n) | ||
161 | { | ||
162 | might_sleep(); | ||
163 | if (__builtin_constant_p(n)) { | ||
164 | unsigned long ret; | ||
165 | |||
166 | switch (n) { | ||
167 | case 1: | ||
168 | __get_user_size(*(u8 *)to, from, 1, ret, 1); | ||
169 | return ret; | ||
170 | case 2: | ||
171 | __get_user_size(*(u16 *)to, from, 2, ret, 2); | ||
172 | return ret; | ||
173 | case 4: | ||
174 | __get_user_size(*(u32 *)to, from, 4, ret, 4); | ||
175 | return ret; | ||
176 | } | ||
177 | } | ||
178 | return __copy_from_user_ll_nocache(to, from, n); | ||
179 | } | ||
180 | |||
181 | static __always_inline unsigned long | ||
182 | __copy_from_user_inatomic_nocache(void *to, const void __user *from, | ||
183 | unsigned long n) | ||
184 | { | ||
185 | return __copy_from_user_ll_nocache_nozero(to, from, n); | ||
186 | } | ||
187 | |||
188 | unsigned long __must_check copy_to_user(void __user *to, | ||
189 | const void *from, unsigned long n); | ||
190 | unsigned long __must_check copy_from_user(void *to, | ||
191 | const void __user *from, | ||
192 | unsigned long n); | ||
193 | long __must_check strncpy_from_user(char *dst, const char __user *src, | ||
194 | long count); | ||
195 | long __must_check __strncpy_from_user(char *dst, | ||
196 | const char __user *src, long count); | ||
197 | |||
198 | /** | ||
199 | * strlen_user: - Get the size of a string in user space. | ||
200 | * @str: The string to measure. | ||
201 | * | ||
202 | * Context: User context only. This function may sleep. | ||
203 | * | ||
204 | * Get the size of a NUL-terminated string in user space. | ||
205 | * | ||
206 | * Returns the size of the string INCLUDING the terminating NUL. | ||
207 | * On exception, returns 0. | ||
208 | * | ||
209 | * If there is a limit on the length of a valid string, you may wish to | ||
210 | * consider using strnlen_user() instead. | ||
211 | */ | ||
212 | #define strlen_user(str) strnlen_user(str, LONG_MAX) | ||
213 | |||
214 | long strnlen_user(const char __user *str, long n); | ||
215 | unsigned long __must_check clear_user(void __user *mem, unsigned long len); | ||
216 | unsigned long __must_check __clear_user(void __user *mem, unsigned long len); | ||
217 | |||
218 | #endif /* _ASM_X86_UACCESS_32_H */ | ||
diff --git a/arch/x86/include/asm/uaccess_64.h b/arch/x86/include/asm/uaccess_64.h new file mode 100644 index 000000000000..664f15280f14 --- /dev/null +++ b/arch/x86/include/asm/uaccess_64.h | |||
@@ -0,0 +1,202 @@ | |||
1 | #ifndef _ASM_X86_UACCESS_64_H | ||
2 | #define _ASM_X86_UACCESS_64_H | ||
3 | |||
4 | /* | ||
5 | * User space memory access functions | ||
6 | */ | ||
7 | #include <linux/compiler.h> | ||
8 | #include <linux/errno.h> | ||
9 | #include <linux/prefetch.h> | ||
10 | #include <linux/lockdep.h> | ||
11 | #include <asm/page.h> | ||
12 | |||
13 | /* | ||
14 | * Copy To/From Userspace | ||
15 | */ | ||
16 | |||
17 | /* Handles exceptions in both to and from, but doesn't do access_ok */ | ||
18 | __must_check unsigned long | ||
19 | copy_user_generic(void *to, const void *from, unsigned len); | ||
20 | |||
21 | __must_check unsigned long | ||
22 | copy_to_user(void __user *to, const void *from, unsigned len); | ||
23 | __must_check unsigned long | ||
24 | copy_from_user(void *to, const void __user *from, unsigned len); | ||
25 | __must_check unsigned long | ||
26 | copy_in_user(void __user *to, const void __user *from, unsigned len); | ||
27 | |||
28 | static __always_inline __must_check | ||
29 | int __copy_from_user(void *dst, const void __user *src, unsigned size) | ||
30 | { | ||
31 | int ret = 0; | ||
32 | if (!__builtin_constant_p(size)) | ||
33 | return copy_user_generic(dst, (__force void *)src, size); | ||
34 | switch (size) { | ||
35 | case 1:__get_user_asm(*(u8 *)dst, (u8 __user *)src, | ||
36 | ret, "b", "b", "=q", 1); | ||
37 | return ret; | ||
38 | case 2:__get_user_asm(*(u16 *)dst, (u16 __user *)src, | ||
39 | ret, "w", "w", "=r", 2); | ||
40 | return ret; | ||
41 | case 4:__get_user_asm(*(u32 *)dst, (u32 __user *)src, | ||
42 | ret, "l", "k", "=r", 4); | ||
43 | return ret; | ||
44 | case 8:__get_user_asm(*(u64 *)dst, (u64 __user *)src, | ||
45 | ret, "q", "", "=r", 8); | ||
46 | return ret; | ||
47 | case 10: | ||
48 | __get_user_asm(*(u64 *)dst, (u64 __user *)src, | ||
49 | ret, "q", "", "=r", 16); | ||
50 | if (unlikely(ret)) | ||
51 | return ret; | ||
52 | __get_user_asm(*(u16 *)(8 + (char *)dst), | ||
53 | (u16 __user *)(8 + (char __user *)src), | ||
54 | ret, "w", "w", "=r", 2); | ||
55 | return ret; | ||
56 | case 16: | ||
57 | __get_user_asm(*(u64 *)dst, (u64 __user *)src, | ||
58 | ret, "q", "", "=r", 16); | ||
59 | if (unlikely(ret)) | ||
60 | return ret; | ||
61 | __get_user_asm(*(u64 *)(8 + (char *)dst), | ||
62 | (u64 __user *)(8 + (char __user *)src), | ||
63 | ret, "q", "", "=r", 8); | ||
64 | return ret; | ||
65 | default: | ||
66 | return copy_user_generic(dst, (__force void *)src, size); | ||
67 | } | ||
68 | } | ||
69 | |||
70 | static __always_inline __must_check | ||
71 | int __copy_to_user(void __user *dst, const void *src, unsigned size) | ||
72 | { | ||
73 | int ret = 0; | ||
74 | if (!__builtin_constant_p(size)) | ||
75 | return copy_user_generic((__force void *)dst, src, size); | ||
76 | switch (size) { | ||
77 | case 1:__put_user_asm(*(u8 *)src, (u8 __user *)dst, | ||
78 | ret, "b", "b", "iq", 1); | ||
79 | return ret; | ||
80 | case 2:__put_user_asm(*(u16 *)src, (u16 __user *)dst, | ||
81 | ret, "w", "w", "ir", 2); | ||
82 | return ret; | ||
83 | case 4:__put_user_asm(*(u32 *)src, (u32 __user *)dst, | ||
84 | ret, "l", "k", "ir", 4); | ||
85 | return ret; | ||
86 | case 8:__put_user_asm(*(u64 *)src, (u64 __user *)dst, | ||
87 | ret, "q", "", "ir", 8); | ||
88 | return ret; | ||
89 | case 10: | ||
90 | __put_user_asm(*(u64 *)src, (u64 __user *)dst, | ||
91 | ret, "q", "", "ir", 10); | ||
92 | if (unlikely(ret)) | ||
93 | return ret; | ||
94 | asm("":::"memory"); | ||
95 | __put_user_asm(4[(u16 *)src], 4 + (u16 __user *)dst, | ||
96 | ret, "w", "w", "ir", 2); | ||
97 | return ret; | ||
98 | case 16: | ||
99 | __put_user_asm(*(u64 *)src, (u64 __user *)dst, | ||
100 | ret, "q", "", "ir", 16); | ||
101 | if (unlikely(ret)) | ||
102 | return ret; | ||
103 | asm("":::"memory"); | ||
104 | __put_user_asm(1[(u64 *)src], 1 + (u64 __user *)dst, | ||
105 | ret, "q", "", "ir", 8); | ||
106 | return ret; | ||
107 | default: | ||
108 | return copy_user_generic((__force void *)dst, src, size); | ||
109 | } | ||
110 | } | ||
111 | |||
112 | static __always_inline __must_check | ||
113 | int __copy_in_user(void __user *dst, const void __user *src, unsigned size) | ||
114 | { | ||
115 | int ret = 0; | ||
116 | if (!__builtin_constant_p(size)) | ||
117 | return copy_user_generic((__force void *)dst, | ||
118 | (__force void *)src, size); | ||
119 | switch (size) { | ||
120 | case 1: { | ||
121 | u8 tmp; | ||
122 | __get_user_asm(tmp, (u8 __user *)src, | ||
123 | ret, "b", "b", "=q", 1); | ||
124 | if (likely(!ret)) | ||
125 | __put_user_asm(tmp, (u8 __user *)dst, | ||
126 | ret, "b", "b", "iq", 1); | ||
127 | return ret; | ||
128 | } | ||
129 | case 2: { | ||
130 | u16 tmp; | ||
131 | __get_user_asm(tmp, (u16 __user *)src, | ||
132 | ret, "w", "w", "=r", 2); | ||
133 | if (likely(!ret)) | ||
134 | __put_user_asm(tmp, (u16 __user *)dst, | ||
135 | ret, "w", "w", "ir", 2); | ||
136 | return ret; | ||
137 | } | ||
138 | |||
139 | case 4: { | ||
140 | u32 tmp; | ||
141 | __get_user_asm(tmp, (u32 __user *)src, | ||
142 | ret, "l", "k", "=r", 4); | ||
143 | if (likely(!ret)) | ||
144 | __put_user_asm(tmp, (u32 __user *)dst, | ||
145 | ret, "l", "k", "ir", 4); | ||
146 | return ret; | ||
147 | } | ||
148 | case 8: { | ||
149 | u64 tmp; | ||
150 | __get_user_asm(tmp, (u64 __user *)src, | ||
151 | ret, "q", "", "=r", 8); | ||
152 | if (likely(!ret)) | ||
153 | __put_user_asm(tmp, (u64 __user *)dst, | ||
154 | ret, "q", "", "ir", 8); | ||
155 | return ret; | ||
156 | } | ||
157 | default: | ||
158 | return copy_user_generic((__force void *)dst, | ||
159 | (__force void *)src, size); | ||
160 | } | ||
161 | } | ||
162 | |||
163 | __must_check long | ||
164 | strncpy_from_user(char *dst, const char __user *src, long count); | ||
165 | __must_check long | ||
166 | __strncpy_from_user(char *dst, const char __user *src, long count); | ||
167 | __must_check long strnlen_user(const char __user *str, long n); | ||
168 | __must_check long __strnlen_user(const char __user *str, long n); | ||
169 | __must_check long strlen_user(const char __user *str); | ||
170 | __must_check unsigned long clear_user(void __user *mem, unsigned long len); | ||
171 | __must_check unsigned long __clear_user(void __user *mem, unsigned long len); | ||
172 | |||
173 | __must_check long __copy_from_user_inatomic(void *dst, const void __user *src, | ||
174 | unsigned size); | ||
175 | |||
176 | static __must_check __always_inline int | ||
177 | __copy_to_user_inatomic(void __user *dst, const void *src, unsigned size) | ||
178 | { | ||
179 | return copy_user_generic((__force void *)dst, src, size); | ||
180 | } | ||
181 | |||
182 | extern long __copy_user_nocache(void *dst, const void __user *src, | ||
183 | unsigned size, int zerorest); | ||
184 | |||
185 | static inline int __copy_from_user_nocache(void *dst, const void __user *src, | ||
186 | unsigned size) | ||
187 | { | ||
188 | might_sleep(); | ||
189 | return __copy_user_nocache(dst, src, size, 1); | ||
190 | } | ||
191 | |||
192 | static inline int __copy_from_user_inatomic_nocache(void *dst, | ||
193 | const void __user *src, | ||
194 | unsigned size) | ||
195 | { | ||
196 | return __copy_user_nocache(dst, src, size, 0); | ||
197 | } | ||
198 | |||
199 | unsigned long | ||
200 | copy_user_handle_tail(char *to, char *from, unsigned len, unsigned zerorest); | ||
201 | |||
202 | #endif /* _ASM_X86_UACCESS_64_H */ | ||
diff --git a/arch/x86/include/asm/ucontext.h b/arch/x86/include/asm/ucontext.h new file mode 100644 index 000000000000..87324cf439d9 --- /dev/null +++ b/arch/x86/include/asm/ucontext.h | |||
@@ -0,0 +1,18 @@ | |||
1 | #ifndef _ASM_X86_UCONTEXT_H | ||
2 | #define _ASM_X86_UCONTEXT_H | ||
3 | |||
4 | #define UC_FP_XSTATE 0x1 /* indicates the presence of extended state | ||
5 | * information in the memory layout pointed | ||
6 | * by the fpstate pointer in the ucontext's | ||
7 | * sigcontext struct (uc_mcontext). | ||
8 | */ | ||
9 | |||
10 | struct ucontext { | ||
11 | unsigned long uc_flags; | ||
12 | struct ucontext *uc_link; | ||
13 | stack_t uc_stack; | ||
14 | struct sigcontext uc_mcontext; | ||
15 | sigset_t uc_sigmask; /* mask last for extensibility */ | ||
16 | }; | ||
17 | |||
18 | #endif /* _ASM_X86_UCONTEXT_H */ | ||
diff --git a/arch/x86/include/asm/unaligned.h b/arch/x86/include/asm/unaligned.h new file mode 100644 index 000000000000..a7bd416b4763 --- /dev/null +++ b/arch/x86/include/asm/unaligned.h | |||
@@ -0,0 +1,14 @@ | |||
1 | #ifndef _ASM_X86_UNALIGNED_H | ||
2 | #define _ASM_X86_UNALIGNED_H | ||
3 | |||
4 | /* | ||
5 | * The x86 can do unaligned accesses itself. | ||
6 | */ | ||
7 | |||
8 | #include <linux/unaligned/access_ok.h> | ||
9 | #include <linux/unaligned/generic.h> | ||
10 | |||
11 | #define get_unaligned __get_unaligned_le | ||
12 | #define put_unaligned __put_unaligned_le | ||
13 | |||
14 | #endif /* _ASM_X86_UNALIGNED_H */ | ||
diff --git a/arch/x86/include/asm/unistd.h b/arch/x86/include/asm/unistd.h new file mode 100644 index 000000000000..2a58ed3e51d8 --- /dev/null +++ b/arch/x86/include/asm/unistd.h | |||
@@ -0,0 +1,13 @@ | |||
1 | #ifdef __KERNEL__ | ||
2 | # ifdef CONFIG_X86_32 | ||
3 | # include "unistd_32.h" | ||
4 | # else | ||
5 | # include "unistd_64.h" | ||
6 | # endif | ||
7 | #else | ||
8 | # ifdef __i386__ | ||
9 | # include "unistd_32.h" | ||
10 | # else | ||
11 | # include "unistd_64.h" | ||
12 | # endif | ||
13 | #endif | ||
diff --git a/arch/x86/include/asm/unistd_32.h b/arch/x86/include/asm/unistd_32.h new file mode 100644 index 000000000000..f2bba78430a4 --- /dev/null +++ b/arch/x86/include/asm/unistd_32.h | |||
@@ -0,0 +1,379 @@ | |||
1 | #ifndef _ASM_X86_UNISTD_32_H | ||
2 | #define _ASM_X86_UNISTD_32_H | ||
3 | |||
4 | /* | ||
5 | * This file contains the system call numbers. | ||
6 | */ | ||
7 | |||
8 | #define __NR_restart_syscall 0 | ||
9 | #define __NR_exit 1 | ||
10 | #define __NR_fork 2 | ||
11 | #define __NR_read 3 | ||
12 | #define __NR_write 4 | ||
13 | #define __NR_open 5 | ||
14 | #define __NR_close 6 | ||
15 | #define __NR_waitpid 7 | ||
16 | #define __NR_creat 8 | ||
17 | #define __NR_link 9 | ||
18 | #define __NR_unlink 10 | ||
19 | #define __NR_execve 11 | ||
20 | #define __NR_chdir 12 | ||
21 | #define __NR_time 13 | ||
22 | #define __NR_mknod 14 | ||
23 | #define __NR_chmod 15 | ||
24 | #define __NR_lchown 16 | ||
25 | #define __NR_break 17 | ||
26 | #define __NR_oldstat 18 | ||
27 | #define __NR_lseek 19 | ||
28 | #define __NR_getpid 20 | ||
29 | #define __NR_mount 21 | ||
30 | #define __NR_umount 22 | ||
31 | #define __NR_setuid 23 | ||
32 | #define __NR_getuid 24 | ||
33 | #define __NR_stime 25 | ||
34 | #define __NR_ptrace 26 | ||
35 | #define __NR_alarm 27 | ||
36 | #define __NR_oldfstat 28 | ||
37 | #define __NR_pause 29 | ||
38 | #define __NR_utime 30 | ||
39 | #define __NR_stty 31 | ||
40 | #define __NR_gtty 32 | ||
41 | #define __NR_access 33 | ||
42 | #define __NR_nice 34 | ||
43 | #define __NR_ftime 35 | ||
44 | #define __NR_sync 36 | ||
45 | #define __NR_kill 37 | ||
46 | #define __NR_rename 38 | ||
47 | #define __NR_mkdir 39 | ||
48 | #define __NR_rmdir 40 | ||
49 | #define __NR_dup 41 | ||
50 | #define __NR_pipe 42 | ||
51 | #define __NR_times 43 | ||
52 | #define __NR_prof 44 | ||
53 | #define __NR_brk 45 | ||
54 | #define __NR_setgid 46 | ||
55 | #define __NR_getgid 47 | ||
56 | #define __NR_signal 48 | ||
57 | #define __NR_geteuid 49 | ||
58 | #define __NR_getegid 50 | ||
59 | #define __NR_acct 51 | ||
60 | #define __NR_umount2 52 | ||
61 | #define __NR_lock 53 | ||
62 | #define __NR_ioctl 54 | ||
63 | #define __NR_fcntl 55 | ||
64 | #define __NR_mpx 56 | ||
65 | #define __NR_setpgid 57 | ||
66 | #define __NR_ulimit 58 | ||
67 | #define __NR_oldolduname 59 | ||
68 | #define __NR_umask 60 | ||
69 | #define __NR_chroot 61 | ||
70 | #define __NR_ustat 62 | ||
71 | #define __NR_dup2 63 | ||
72 | #define __NR_getppid 64 | ||
73 | #define __NR_getpgrp 65 | ||
74 | #define __NR_setsid 66 | ||
75 | #define __NR_sigaction 67 | ||
76 | #define __NR_sgetmask 68 | ||
77 | #define __NR_ssetmask 69 | ||
78 | #define __NR_setreuid 70 | ||
79 | #define __NR_setregid 71 | ||
80 | #define __NR_sigsuspend 72 | ||
81 | #define __NR_sigpending 73 | ||
82 | #define __NR_sethostname 74 | ||
83 | #define __NR_setrlimit 75 | ||
84 | #define __NR_getrlimit 76 /* Back compatible 2Gig limited rlimit */ | ||
85 | #define __NR_getrusage 77 | ||
86 | #define __NR_gettimeofday 78 | ||
87 | #define __NR_settimeofday 79 | ||
88 | #define __NR_getgroups 80 | ||
89 | #define __NR_setgroups 81 | ||
90 | #define __NR_select 82 | ||
91 | #define __NR_symlink 83 | ||
92 | #define __NR_oldlstat 84 | ||
93 | #define __NR_readlink 85 | ||
94 | #define __NR_uselib 86 | ||
95 | #define __NR_swapon 87 | ||
96 | #define __NR_reboot 88 | ||
97 | #define __NR_readdir 89 | ||
98 | #define __NR_mmap 90 | ||
99 | #define __NR_munmap 91 | ||
100 | #define __NR_truncate 92 | ||
101 | #define __NR_ftruncate 93 | ||
102 | #define __NR_fchmod 94 | ||
103 | #define __NR_fchown 95 | ||
104 | #define __NR_getpriority 96 | ||
105 | #define __NR_setpriority 97 | ||
106 | #define __NR_profil 98 | ||
107 | #define __NR_statfs 99 | ||
108 | #define __NR_fstatfs 100 | ||
109 | #define __NR_ioperm 101 | ||
110 | #define __NR_socketcall 102 | ||
111 | #define __NR_syslog 103 | ||
112 | #define __NR_setitimer 104 | ||
113 | #define __NR_getitimer 105 | ||
114 | #define __NR_stat 106 | ||
115 | #define __NR_lstat 107 | ||
116 | #define __NR_fstat 108 | ||
117 | #define __NR_olduname 109 | ||
118 | #define __NR_iopl 110 | ||
119 | #define __NR_vhangup 111 | ||
120 | #define __NR_idle 112 | ||
121 | #define __NR_vm86old 113 | ||
122 | #define __NR_wait4 114 | ||
123 | #define __NR_swapoff 115 | ||
124 | #define __NR_sysinfo 116 | ||
125 | #define __NR_ipc 117 | ||
126 | #define __NR_fsync 118 | ||
127 | #define __NR_sigreturn 119 | ||
128 | #define __NR_clone 120 | ||
129 | #define __NR_setdomainname 121 | ||
130 | #define __NR_uname 122 | ||
131 | #define __NR_modify_ldt 123 | ||
132 | #define __NR_adjtimex 124 | ||
133 | #define __NR_mprotect 125 | ||
134 | #define __NR_sigprocmask 126 | ||
135 | #define __NR_create_module 127 | ||
136 | #define __NR_init_module 128 | ||
137 | #define __NR_delete_module 129 | ||
138 | #define __NR_get_kernel_syms 130 | ||
139 | #define __NR_quotactl 131 | ||
140 | #define __NR_getpgid 132 | ||
141 | #define __NR_fchdir 133 | ||
142 | #define __NR_bdflush 134 | ||
143 | #define __NR_sysfs 135 | ||
144 | #define __NR_personality 136 | ||
145 | #define __NR_afs_syscall 137 /* Syscall for Andrew File System */ | ||
146 | #define __NR_setfsuid 138 | ||
147 | #define __NR_setfsgid 139 | ||
148 | #define __NR__llseek 140 | ||
149 | #define __NR_getdents 141 | ||
150 | #define __NR__newselect 142 | ||
151 | #define __NR_flock 143 | ||
152 | #define __NR_msync 144 | ||
153 | #define __NR_readv 145 | ||
154 | #define __NR_writev 146 | ||
155 | #define __NR_getsid 147 | ||
156 | #define __NR_fdatasync 148 | ||
157 | #define __NR__sysctl 149 | ||
158 | #define __NR_mlock 150 | ||
159 | #define __NR_munlock 151 | ||
160 | #define __NR_mlockall 152 | ||
161 | #define __NR_munlockall 153 | ||
162 | #define __NR_sched_setparam 154 | ||
163 | #define __NR_sched_getparam 155 | ||
164 | #define __NR_sched_setscheduler 156 | ||
165 | #define __NR_sched_getscheduler 157 | ||
166 | #define __NR_sched_yield 158 | ||
167 | #define __NR_sched_get_priority_max 159 | ||
168 | #define __NR_sched_get_priority_min 160 | ||
169 | #define __NR_sched_rr_get_interval 161 | ||
170 | #define __NR_nanosleep 162 | ||
171 | #define __NR_mremap 163 | ||
172 | #define __NR_setresuid 164 | ||
173 | #define __NR_getresuid 165 | ||
174 | #define __NR_vm86 166 | ||
175 | #define __NR_query_module 167 | ||
176 | #define __NR_poll 168 | ||
177 | #define __NR_nfsservctl 169 | ||
178 | #define __NR_setresgid 170 | ||
179 | #define __NR_getresgid 171 | ||
180 | #define __NR_prctl 172 | ||
181 | #define __NR_rt_sigreturn 173 | ||
182 | #define __NR_rt_sigaction 174 | ||
183 | #define __NR_rt_sigprocmask 175 | ||
184 | #define __NR_rt_sigpending 176 | ||
185 | #define __NR_rt_sigtimedwait 177 | ||
186 | #define __NR_rt_sigqueueinfo 178 | ||
187 | #define __NR_rt_sigsuspend 179 | ||
188 | #define __NR_pread64 180 | ||
189 | #define __NR_pwrite64 181 | ||
190 | #define __NR_chown 182 | ||
191 | #define __NR_getcwd 183 | ||
192 | #define __NR_capget 184 | ||
193 | #define __NR_capset 185 | ||
194 | #define __NR_sigaltstack 186 | ||
195 | #define __NR_sendfile 187 | ||
196 | #define __NR_getpmsg 188 /* some people actually want streams */ | ||
197 | #define __NR_putpmsg 189 /* some people actually want streams */ | ||
198 | #define __NR_vfork 190 | ||
199 | #define __NR_ugetrlimit 191 /* SuS compliant getrlimit */ | ||
200 | #define __NR_mmap2 192 | ||
201 | #define __NR_truncate64 193 | ||
202 | #define __NR_ftruncate64 194 | ||
203 | #define __NR_stat64 195 | ||
204 | #define __NR_lstat64 196 | ||
205 | #define __NR_fstat64 197 | ||
206 | #define __NR_lchown32 198 | ||
207 | #define __NR_getuid32 199 | ||
208 | #define __NR_getgid32 200 | ||
209 | #define __NR_geteuid32 201 | ||
210 | #define __NR_getegid32 202 | ||
211 | #define __NR_setreuid32 203 | ||
212 | #define __NR_setregid32 204 | ||
213 | #define __NR_getgroups32 205 | ||
214 | #define __NR_setgroups32 206 | ||
215 | #define __NR_fchown32 207 | ||
216 | #define __NR_setresuid32 208 | ||
217 | #define __NR_getresuid32 209 | ||
218 | #define __NR_setresgid32 210 | ||
219 | #define __NR_getresgid32 211 | ||
220 | #define __NR_chown32 212 | ||
221 | #define __NR_setuid32 213 | ||
222 | #define __NR_setgid32 214 | ||
223 | #define __NR_setfsuid32 215 | ||
224 | #define __NR_setfsgid32 216 | ||
225 | #define __NR_pivot_root 217 | ||
226 | #define __NR_mincore 218 | ||
227 | #define __NR_madvise 219 | ||
228 | #define __NR_madvise1 219 /* delete when C lib stub is removed */ | ||
229 | #define __NR_getdents64 220 | ||
230 | #define __NR_fcntl64 221 | ||
231 | /* 223 is unused */ | ||
232 | #define __NR_gettid 224 | ||
233 | #define __NR_readahead 225 | ||
234 | #define __NR_setxattr 226 | ||
235 | #define __NR_lsetxattr 227 | ||
236 | #define __NR_fsetxattr 228 | ||
237 | #define __NR_getxattr 229 | ||
238 | #define __NR_lgetxattr 230 | ||
239 | #define __NR_fgetxattr 231 | ||
240 | #define __NR_listxattr 232 | ||
241 | #define __NR_llistxattr 233 | ||
242 | #define __NR_flistxattr 234 | ||
243 | #define __NR_removexattr 235 | ||
244 | #define __NR_lremovexattr 236 | ||
245 | #define __NR_fremovexattr 237 | ||
246 | #define __NR_tkill 238 | ||
247 | #define __NR_sendfile64 239 | ||
248 | #define __NR_futex 240 | ||
249 | #define __NR_sched_setaffinity 241 | ||
250 | #define __NR_sched_getaffinity 242 | ||
251 | #define __NR_set_thread_area 243 | ||
252 | #define __NR_get_thread_area 244 | ||
253 | #define __NR_io_setup 245 | ||
254 | #define __NR_io_destroy 246 | ||
255 | #define __NR_io_getevents 247 | ||
256 | #define __NR_io_submit 248 | ||
257 | #define __NR_io_cancel 249 | ||
258 | #define __NR_fadvise64 250 | ||
259 | /* 251 is available for reuse (was briefly sys_set_zone_reclaim) */ | ||
260 | #define __NR_exit_group 252 | ||
261 | #define __NR_lookup_dcookie 253 | ||
262 | #define __NR_epoll_create 254 | ||
263 | #define __NR_epoll_ctl 255 | ||
264 | #define __NR_epoll_wait 256 | ||
265 | #define __NR_remap_file_pages 257 | ||
266 | #define __NR_set_tid_address 258 | ||
267 | #define __NR_timer_create 259 | ||
268 | #define __NR_timer_settime (__NR_timer_create+1) | ||
269 | #define __NR_timer_gettime (__NR_timer_create+2) | ||
270 | #define __NR_timer_getoverrun (__NR_timer_create+3) | ||
271 | #define __NR_timer_delete (__NR_timer_create+4) | ||
272 | #define __NR_clock_settime (__NR_timer_create+5) | ||
273 | #define __NR_clock_gettime (__NR_timer_create+6) | ||
274 | #define __NR_clock_getres (__NR_timer_create+7) | ||
275 | #define __NR_clock_nanosleep (__NR_timer_create+8) | ||
276 | #define __NR_statfs64 268 | ||
277 | #define __NR_fstatfs64 269 | ||
278 | #define __NR_tgkill 270 | ||
279 | #define __NR_utimes 271 | ||
280 | #define __NR_fadvise64_64 272 | ||
281 | #define __NR_vserver 273 | ||
282 | #define __NR_mbind 274 | ||
283 | #define __NR_get_mempolicy 275 | ||
284 | #define __NR_set_mempolicy 276 | ||
285 | #define __NR_mq_open 277 | ||
286 | #define __NR_mq_unlink (__NR_mq_open+1) | ||
287 | #define __NR_mq_timedsend (__NR_mq_open+2) | ||
288 | #define __NR_mq_timedreceive (__NR_mq_open+3) | ||
289 | #define __NR_mq_notify (__NR_mq_open+4) | ||
290 | #define __NR_mq_getsetattr (__NR_mq_open+5) | ||
291 | #define __NR_kexec_load 283 | ||
292 | #define __NR_waitid 284 | ||
293 | /* #define __NR_sys_setaltroot 285 */ | ||
294 | #define __NR_add_key 286 | ||
295 | #define __NR_request_key 287 | ||
296 | #define __NR_keyctl 288 | ||
297 | #define __NR_ioprio_set 289 | ||
298 | #define __NR_ioprio_get 290 | ||
299 | #define __NR_inotify_init 291 | ||
300 | #define __NR_inotify_add_watch 292 | ||
301 | #define __NR_inotify_rm_watch 293 | ||
302 | #define __NR_migrate_pages 294 | ||
303 | #define __NR_openat 295 | ||
304 | #define __NR_mkdirat 296 | ||
305 | #define __NR_mknodat 297 | ||
306 | #define __NR_fchownat 298 | ||
307 | #define __NR_futimesat 299 | ||
308 | #define __NR_fstatat64 300 | ||
309 | #define __NR_unlinkat 301 | ||
310 | #define __NR_renameat 302 | ||
311 | #define __NR_linkat 303 | ||
312 | #define __NR_symlinkat 304 | ||
313 | #define __NR_readlinkat 305 | ||
314 | #define __NR_fchmodat 306 | ||
315 | #define __NR_faccessat 307 | ||
316 | #define __NR_pselect6 308 | ||
317 | #define __NR_ppoll 309 | ||
318 | #define __NR_unshare 310 | ||
319 | #define __NR_set_robust_list 311 | ||
320 | #define __NR_get_robust_list 312 | ||
321 | #define __NR_splice 313 | ||
322 | #define __NR_sync_file_range 314 | ||
323 | #define __NR_tee 315 | ||
324 | #define __NR_vmsplice 316 | ||
325 | #define __NR_move_pages 317 | ||
326 | #define __NR_getcpu 318 | ||
327 | #define __NR_epoll_pwait 319 | ||
328 | #define __NR_utimensat 320 | ||
329 | #define __NR_signalfd 321 | ||
330 | #define __NR_timerfd_create 322 | ||
331 | #define __NR_eventfd 323 | ||
332 | #define __NR_fallocate 324 | ||
333 | #define __NR_timerfd_settime 325 | ||
334 | #define __NR_timerfd_gettime 326 | ||
335 | #define __NR_signalfd4 327 | ||
336 | #define __NR_eventfd2 328 | ||
337 | #define __NR_epoll_create1 329 | ||
338 | #define __NR_dup3 330 | ||
339 | #define __NR_pipe2 331 | ||
340 | #define __NR_inotify_init1 332 | ||
341 | |||
342 | #ifdef __KERNEL__ | ||
343 | |||
344 | #define __ARCH_WANT_IPC_PARSE_VERSION | ||
345 | #define __ARCH_WANT_OLD_READDIR | ||
346 | #define __ARCH_WANT_OLD_STAT | ||
347 | #define __ARCH_WANT_STAT64 | ||
348 | #define __ARCH_WANT_SYS_ALARM | ||
349 | #define __ARCH_WANT_SYS_GETHOSTNAME | ||
350 | #define __ARCH_WANT_SYS_PAUSE | ||
351 | #define __ARCH_WANT_SYS_SGETMASK | ||
352 | #define __ARCH_WANT_SYS_SIGNAL | ||
353 | #define __ARCH_WANT_SYS_TIME | ||
354 | #define __ARCH_WANT_SYS_UTIME | ||
355 | #define __ARCH_WANT_SYS_WAITPID | ||
356 | #define __ARCH_WANT_SYS_SOCKETCALL | ||
357 | #define __ARCH_WANT_SYS_FADVISE64 | ||
358 | #define __ARCH_WANT_SYS_GETPGRP | ||
359 | #define __ARCH_WANT_SYS_LLSEEK | ||
360 | #define __ARCH_WANT_SYS_NICE | ||
361 | #define __ARCH_WANT_SYS_OLD_GETRLIMIT | ||
362 | #define __ARCH_WANT_SYS_OLDUMOUNT | ||
363 | #define __ARCH_WANT_SYS_SIGPENDING | ||
364 | #define __ARCH_WANT_SYS_SIGPROCMASK | ||
365 | #define __ARCH_WANT_SYS_RT_SIGACTION | ||
366 | #define __ARCH_WANT_SYS_RT_SIGSUSPEND | ||
367 | |||
368 | /* | ||
369 | * "Conditional" syscalls | ||
370 | * | ||
371 | * What we want is __attribute__((weak,alias("sys_ni_syscall"))), | ||
372 | * but it doesn't work on all toolchains, so we just do it by hand | ||
373 | */ | ||
374 | #ifndef cond_syscall | ||
375 | #define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall") | ||
376 | #endif | ||
377 | |||
378 | #endif /* __KERNEL__ */ | ||
379 | #endif /* _ASM_X86_UNISTD_32_H */ | ||
diff --git a/arch/x86/include/asm/unistd_64.h b/arch/x86/include/asm/unistd_64.h new file mode 100644 index 000000000000..834b2c1d89fb --- /dev/null +++ b/arch/x86/include/asm/unistd_64.h | |||
@@ -0,0 +1,693 @@ | |||
1 | #ifndef _ASM_X86_UNISTD_64_H | ||
2 | #define _ASM_X86_UNISTD_64_H | ||
3 | |||
4 | #ifndef __SYSCALL | ||
5 | #define __SYSCALL(a, b) | ||
6 | #endif | ||
7 | |||
8 | /* | ||
9 | * This file contains the system call numbers. | ||
10 | * | ||
11 | * Note: holes are not allowed. | ||
12 | */ | ||
13 | |||
14 | /* at least 8 syscall per cacheline */ | ||
15 | #define __NR_read 0 | ||
16 | __SYSCALL(__NR_read, sys_read) | ||
17 | #define __NR_write 1 | ||
18 | __SYSCALL(__NR_write, sys_write) | ||
19 | #define __NR_open 2 | ||
20 | __SYSCALL(__NR_open, sys_open) | ||
21 | #define __NR_close 3 | ||
22 | __SYSCALL(__NR_close, sys_close) | ||
23 | #define __NR_stat 4 | ||
24 | __SYSCALL(__NR_stat, sys_newstat) | ||
25 | #define __NR_fstat 5 | ||
26 | __SYSCALL(__NR_fstat, sys_newfstat) | ||
27 | #define __NR_lstat 6 | ||
28 | __SYSCALL(__NR_lstat, sys_newlstat) | ||
29 | #define __NR_poll 7 | ||
30 | __SYSCALL(__NR_poll, sys_poll) | ||
31 | |||
32 | #define __NR_lseek 8 | ||
33 | __SYSCALL(__NR_lseek, sys_lseek) | ||
34 | #define __NR_mmap 9 | ||
35 | __SYSCALL(__NR_mmap, sys_mmap) | ||
36 | #define __NR_mprotect 10 | ||
37 | __SYSCALL(__NR_mprotect, sys_mprotect) | ||
38 | #define __NR_munmap 11 | ||
39 | __SYSCALL(__NR_munmap, sys_munmap) | ||
40 | #define __NR_brk 12 | ||
41 | __SYSCALL(__NR_brk, sys_brk) | ||
42 | #define __NR_rt_sigaction 13 | ||
43 | __SYSCALL(__NR_rt_sigaction, sys_rt_sigaction) | ||
44 | #define __NR_rt_sigprocmask 14 | ||
45 | __SYSCALL(__NR_rt_sigprocmask, sys_rt_sigprocmask) | ||
46 | #define __NR_rt_sigreturn 15 | ||
47 | __SYSCALL(__NR_rt_sigreturn, stub_rt_sigreturn) | ||
48 | |||
49 | #define __NR_ioctl 16 | ||
50 | __SYSCALL(__NR_ioctl, sys_ioctl) | ||
51 | #define __NR_pread64 17 | ||
52 | __SYSCALL(__NR_pread64, sys_pread64) | ||
53 | #define __NR_pwrite64 18 | ||
54 | __SYSCALL(__NR_pwrite64, sys_pwrite64) | ||
55 | #define __NR_readv 19 | ||
56 | __SYSCALL(__NR_readv, sys_readv) | ||
57 | #define __NR_writev 20 | ||
58 | __SYSCALL(__NR_writev, sys_writev) | ||
59 | #define __NR_access 21 | ||
60 | __SYSCALL(__NR_access, sys_access) | ||
61 | #define __NR_pipe 22 | ||
62 | __SYSCALL(__NR_pipe, sys_pipe) | ||
63 | #define __NR_select 23 | ||
64 | __SYSCALL(__NR_select, sys_select) | ||
65 | |||
66 | #define __NR_sched_yield 24 | ||
67 | __SYSCALL(__NR_sched_yield, sys_sched_yield) | ||
68 | #define __NR_mremap 25 | ||
69 | __SYSCALL(__NR_mremap, sys_mremap) | ||
70 | #define __NR_msync 26 | ||
71 | __SYSCALL(__NR_msync, sys_msync) | ||
72 | #define __NR_mincore 27 | ||
73 | __SYSCALL(__NR_mincore, sys_mincore) | ||
74 | #define __NR_madvise 28 | ||
75 | __SYSCALL(__NR_madvise, sys_madvise) | ||
76 | #define __NR_shmget 29 | ||
77 | __SYSCALL(__NR_shmget, sys_shmget) | ||
78 | #define __NR_shmat 30 | ||
79 | __SYSCALL(__NR_shmat, sys_shmat) | ||
80 | #define __NR_shmctl 31 | ||
81 | __SYSCALL(__NR_shmctl, sys_shmctl) | ||
82 | |||
83 | #define __NR_dup 32 | ||
84 | __SYSCALL(__NR_dup, sys_dup) | ||
85 | #define __NR_dup2 33 | ||
86 | __SYSCALL(__NR_dup2, sys_dup2) | ||
87 | #define __NR_pause 34 | ||
88 | __SYSCALL(__NR_pause, sys_pause) | ||
89 | #define __NR_nanosleep 35 | ||
90 | __SYSCALL(__NR_nanosleep, sys_nanosleep) | ||
91 | #define __NR_getitimer 36 | ||
92 | __SYSCALL(__NR_getitimer, sys_getitimer) | ||
93 | #define __NR_alarm 37 | ||
94 | __SYSCALL(__NR_alarm, sys_alarm) | ||
95 | #define __NR_setitimer 38 | ||
96 | __SYSCALL(__NR_setitimer, sys_setitimer) | ||
97 | #define __NR_getpid 39 | ||
98 | __SYSCALL(__NR_getpid, sys_getpid) | ||
99 | |||
100 | #define __NR_sendfile 40 | ||
101 | __SYSCALL(__NR_sendfile, sys_sendfile64) | ||
102 | #define __NR_socket 41 | ||
103 | __SYSCALL(__NR_socket, sys_socket) | ||
104 | #define __NR_connect 42 | ||
105 | __SYSCALL(__NR_connect, sys_connect) | ||
106 | #define __NR_accept 43 | ||
107 | __SYSCALL(__NR_accept, sys_accept) | ||
108 | #define __NR_sendto 44 | ||
109 | __SYSCALL(__NR_sendto, sys_sendto) | ||
110 | #define __NR_recvfrom 45 | ||
111 | __SYSCALL(__NR_recvfrom, sys_recvfrom) | ||
112 | #define __NR_sendmsg 46 | ||
113 | __SYSCALL(__NR_sendmsg, sys_sendmsg) | ||
114 | #define __NR_recvmsg 47 | ||
115 | __SYSCALL(__NR_recvmsg, sys_recvmsg) | ||
116 | |||
117 | #define __NR_shutdown 48 | ||
118 | __SYSCALL(__NR_shutdown, sys_shutdown) | ||
119 | #define __NR_bind 49 | ||
120 | __SYSCALL(__NR_bind, sys_bind) | ||
121 | #define __NR_listen 50 | ||
122 | __SYSCALL(__NR_listen, sys_listen) | ||
123 | #define __NR_getsockname 51 | ||
124 | __SYSCALL(__NR_getsockname, sys_getsockname) | ||
125 | #define __NR_getpeername 52 | ||
126 | __SYSCALL(__NR_getpeername, sys_getpeername) | ||
127 | #define __NR_socketpair 53 | ||
128 | __SYSCALL(__NR_socketpair, sys_socketpair) | ||
129 | #define __NR_setsockopt 54 | ||
130 | __SYSCALL(__NR_setsockopt, sys_setsockopt) | ||
131 | #define __NR_getsockopt 55 | ||
132 | __SYSCALL(__NR_getsockopt, sys_getsockopt) | ||
133 | |||
134 | #define __NR_clone 56 | ||
135 | __SYSCALL(__NR_clone, stub_clone) | ||
136 | #define __NR_fork 57 | ||
137 | __SYSCALL(__NR_fork, stub_fork) | ||
138 | #define __NR_vfork 58 | ||
139 | __SYSCALL(__NR_vfork, stub_vfork) | ||
140 | #define __NR_execve 59 | ||
141 | __SYSCALL(__NR_execve, stub_execve) | ||
142 | #define __NR_exit 60 | ||
143 | __SYSCALL(__NR_exit, sys_exit) | ||
144 | #define __NR_wait4 61 | ||
145 | __SYSCALL(__NR_wait4, sys_wait4) | ||
146 | #define __NR_kill 62 | ||
147 | __SYSCALL(__NR_kill, sys_kill) | ||
148 | #define __NR_uname 63 | ||
149 | __SYSCALL(__NR_uname, sys_uname) | ||
150 | |||
151 | #define __NR_semget 64 | ||
152 | __SYSCALL(__NR_semget, sys_semget) | ||
153 | #define __NR_semop 65 | ||
154 | __SYSCALL(__NR_semop, sys_semop) | ||
155 | #define __NR_semctl 66 | ||
156 | __SYSCALL(__NR_semctl, sys_semctl) | ||
157 | #define __NR_shmdt 67 | ||
158 | __SYSCALL(__NR_shmdt, sys_shmdt) | ||
159 | #define __NR_msgget 68 | ||
160 | __SYSCALL(__NR_msgget, sys_msgget) | ||
161 | #define __NR_msgsnd 69 | ||
162 | __SYSCALL(__NR_msgsnd, sys_msgsnd) | ||
163 | #define __NR_msgrcv 70 | ||
164 | __SYSCALL(__NR_msgrcv, sys_msgrcv) | ||
165 | #define __NR_msgctl 71 | ||
166 | __SYSCALL(__NR_msgctl, sys_msgctl) | ||
167 | |||
168 | #define __NR_fcntl 72 | ||
169 | __SYSCALL(__NR_fcntl, sys_fcntl) | ||
170 | #define __NR_flock 73 | ||
171 | __SYSCALL(__NR_flock, sys_flock) | ||
172 | #define __NR_fsync 74 | ||
173 | __SYSCALL(__NR_fsync, sys_fsync) | ||
174 | #define __NR_fdatasync 75 | ||
175 | __SYSCALL(__NR_fdatasync, sys_fdatasync) | ||
176 | #define __NR_truncate 76 | ||
177 | __SYSCALL(__NR_truncate, sys_truncate) | ||
178 | #define __NR_ftruncate 77 | ||
179 | __SYSCALL(__NR_ftruncate, sys_ftruncate) | ||
180 | #define __NR_getdents 78 | ||
181 | __SYSCALL(__NR_getdents, sys_getdents) | ||
182 | #define __NR_getcwd 79 | ||
183 | __SYSCALL(__NR_getcwd, sys_getcwd) | ||
184 | |||
185 | #define __NR_chdir 80 | ||
186 | __SYSCALL(__NR_chdir, sys_chdir) | ||
187 | #define __NR_fchdir 81 | ||
188 | __SYSCALL(__NR_fchdir, sys_fchdir) | ||
189 | #define __NR_rename 82 | ||
190 | __SYSCALL(__NR_rename, sys_rename) | ||
191 | #define __NR_mkdir 83 | ||
192 | __SYSCALL(__NR_mkdir, sys_mkdir) | ||
193 | #define __NR_rmdir 84 | ||
194 | __SYSCALL(__NR_rmdir, sys_rmdir) | ||
195 | #define __NR_creat 85 | ||
196 | __SYSCALL(__NR_creat, sys_creat) | ||
197 | #define __NR_link 86 | ||
198 | __SYSCALL(__NR_link, sys_link) | ||
199 | #define __NR_unlink 87 | ||
200 | __SYSCALL(__NR_unlink, sys_unlink) | ||
201 | |||
202 | #define __NR_symlink 88 | ||
203 | __SYSCALL(__NR_symlink, sys_symlink) | ||
204 | #define __NR_readlink 89 | ||
205 | __SYSCALL(__NR_readlink, sys_readlink) | ||
206 | #define __NR_chmod 90 | ||
207 | __SYSCALL(__NR_chmod, sys_chmod) | ||
208 | #define __NR_fchmod 91 | ||
209 | __SYSCALL(__NR_fchmod, sys_fchmod) | ||
210 | #define __NR_chown 92 | ||
211 | __SYSCALL(__NR_chown, sys_chown) | ||
212 | #define __NR_fchown 93 | ||
213 | __SYSCALL(__NR_fchown, sys_fchown) | ||
214 | #define __NR_lchown 94 | ||
215 | __SYSCALL(__NR_lchown, sys_lchown) | ||
216 | #define __NR_umask 95 | ||
217 | __SYSCALL(__NR_umask, sys_umask) | ||
218 | |||
219 | #define __NR_gettimeofday 96 | ||
220 | __SYSCALL(__NR_gettimeofday, sys_gettimeofday) | ||
221 | #define __NR_getrlimit 97 | ||
222 | __SYSCALL(__NR_getrlimit, sys_getrlimit) | ||
223 | #define __NR_getrusage 98 | ||
224 | __SYSCALL(__NR_getrusage, sys_getrusage) | ||
225 | #define __NR_sysinfo 99 | ||
226 | __SYSCALL(__NR_sysinfo, sys_sysinfo) | ||
227 | #define __NR_times 100 | ||
228 | __SYSCALL(__NR_times, sys_times) | ||
229 | #define __NR_ptrace 101 | ||
230 | __SYSCALL(__NR_ptrace, sys_ptrace) | ||
231 | #define __NR_getuid 102 | ||
232 | __SYSCALL(__NR_getuid, sys_getuid) | ||
233 | #define __NR_syslog 103 | ||
234 | __SYSCALL(__NR_syslog, sys_syslog) | ||
235 | |||
236 | /* at the very end the stuff that never runs during the benchmarks */ | ||
237 | #define __NR_getgid 104 | ||
238 | __SYSCALL(__NR_getgid, sys_getgid) | ||
239 | #define __NR_setuid 105 | ||
240 | __SYSCALL(__NR_setuid, sys_setuid) | ||
241 | #define __NR_setgid 106 | ||
242 | __SYSCALL(__NR_setgid, sys_setgid) | ||
243 | #define __NR_geteuid 107 | ||
244 | __SYSCALL(__NR_geteuid, sys_geteuid) | ||
245 | #define __NR_getegid 108 | ||
246 | __SYSCALL(__NR_getegid, sys_getegid) | ||
247 | #define __NR_setpgid 109 | ||
248 | __SYSCALL(__NR_setpgid, sys_setpgid) | ||
249 | #define __NR_getppid 110 | ||
250 | __SYSCALL(__NR_getppid, sys_getppid) | ||
251 | #define __NR_getpgrp 111 | ||
252 | __SYSCALL(__NR_getpgrp, sys_getpgrp) | ||
253 | |||
254 | #define __NR_setsid 112 | ||
255 | __SYSCALL(__NR_setsid, sys_setsid) | ||
256 | #define __NR_setreuid 113 | ||
257 | __SYSCALL(__NR_setreuid, sys_setreuid) | ||
258 | #define __NR_setregid 114 | ||
259 | __SYSCALL(__NR_setregid, sys_setregid) | ||
260 | #define __NR_getgroups 115 | ||
261 | __SYSCALL(__NR_getgroups, sys_getgroups) | ||
262 | #define __NR_setgroups 116 | ||
263 | __SYSCALL(__NR_setgroups, sys_setgroups) | ||
264 | #define __NR_setresuid 117 | ||
265 | __SYSCALL(__NR_setresuid, sys_setresuid) | ||
266 | #define __NR_getresuid 118 | ||
267 | __SYSCALL(__NR_getresuid, sys_getresuid) | ||
268 | #define __NR_setresgid 119 | ||
269 | __SYSCALL(__NR_setresgid, sys_setresgid) | ||
270 | |||
271 | #define __NR_getresgid 120 | ||
272 | __SYSCALL(__NR_getresgid, sys_getresgid) | ||
273 | #define __NR_getpgid 121 | ||
274 | __SYSCALL(__NR_getpgid, sys_getpgid) | ||
275 | #define __NR_setfsuid 122 | ||
276 | __SYSCALL(__NR_setfsuid, sys_setfsuid) | ||
277 | #define __NR_setfsgid 123 | ||
278 | __SYSCALL(__NR_setfsgid, sys_setfsgid) | ||
279 | #define __NR_getsid 124 | ||
280 | __SYSCALL(__NR_getsid, sys_getsid) | ||
281 | #define __NR_capget 125 | ||
282 | __SYSCALL(__NR_capget, sys_capget) | ||
283 | #define __NR_capset 126 | ||
284 | __SYSCALL(__NR_capset, sys_capset) | ||
285 | |||
286 | #define __NR_rt_sigpending 127 | ||
287 | __SYSCALL(__NR_rt_sigpending, sys_rt_sigpending) | ||
288 | #define __NR_rt_sigtimedwait 128 | ||
289 | __SYSCALL(__NR_rt_sigtimedwait, sys_rt_sigtimedwait) | ||
290 | #define __NR_rt_sigqueueinfo 129 | ||
291 | __SYSCALL(__NR_rt_sigqueueinfo, sys_rt_sigqueueinfo) | ||
292 | #define __NR_rt_sigsuspend 130 | ||
293 | __SYSCALL(__NR_rt_sigsuspend, sys_rt_sigsuspend) | ||
294 | #define __NR_sigaltstack 131 | ||
295 | __SYSCALL(__NR_sigaltstack, stub_sigaltstack) | ||
296 | #define __NR_utime 132 | ||
297 | __SYSCALL(__NR_utime, sys_utime) | ||
298 | #define __NR_mknod 133 | ||
299 | __SYSCALL(__NR_mknod, sys_mknod) | ||
300 | |||
301 | /* Only needed for a.out */ | ||
302 | #define __NR_uselib 134 | ||
303 | __SYSCALL(__NR_uselib, sys_ni_syscall) | ||
304 | #define __NR_personality 135 | ||
305 | __SYSCALL(__NR_personality, sys_personality) | ||
306 | |||
307 | #define __NR_ustat 136 | ||
308 | __SYSCALL(__NR_ustat, sys_ustat) | ||
309 | #define __NR_statfs 137 | ||
310 | __SYSCALL(__NR_statfs, sys_statfs) | ||
311 | #define __NR_fstatfs 138 | ||
312 | __SYSCALL(__NR_fstatfs, sys_fstatfs) | ||
313 | #define __NR_sysfs 139 | ||
314 | __SYSCALL(__NR_sysfs, sys_sysfs) | ||
315 | |||
316 | #define __NR_getpriority 140 | ||
317 | __SYSCALL(__NR_getpriority, sys_getpriority) | ||
318 | #define __NR_setpriority 141 | ||
319 | __SYSCALL(__NR_setpriority, sys_setpriority) | ||
320 | #define __NR_sched_setparam 142 | ||
321 | __SYSCALL(__NR_sched_setparam, sys_sched_setparam) | ||
322 | #define __NR_sched_getparam 143 | ||
323 | __SYSCALL(__NR_sched_getparam, sys_sched_getparam) | ||
324 | #define __NR_sched_setscheduler 144 | ||
325 | __SYSCALL(__NR_sched_setscheduler, sys_sched_setscheduler) | ||
326 | #define __NR_sched_getscheduler 145 | ||
327 | __SYSCALL(__NR_sched_getscheduler, sys_sched_getscheduler) | ||
328 | #define __NR_sched_get_priority_max 146 | ||
329 | __SYSCALL(__NR_sched_get_priority_max, sys_sched_get_priority_max) | ||
330 | #define __NR_sched_get_priority_min 147 | ||
331 | __SYSCALL(__NR_sched_get_priority_min, sys_sched_get_priority_min) | ||
332 | #define __NR_sched_rr_get_interval 148 | ||
333 | __SYSCALL(__NR_sched_rr_get_interval, sys_sched_rr_get_interval) | ||
334 | |||
335 | #define __NR_mlock 149 | ||
336 | __SYSCALL(__NR_mlock, sys_mlock) | ||
337 | #define __NR_munlock 150 | ||
338 | __SYSCALL(__NR_munlock, sys_munlock) | ||
339 | #define __NR_mlockall 151 | ||
340 | __SYSCALL(__NR_mlockall, sys_mlockall) | ||
341 | #define __NR_munlockall 152 | ||
342 | __SYSCALL(__NR_munlockall, sys_munlockall) | ||
343 | |||
344 | #define __NR_vhangup 153 | ||
345 | __SYSCALL(__NR_vhangup, sys_vhangup) | ||
346 | |||
347 | #define __NR_modify_ldt 154 | ||
348 | __SYSCALL(__NR_modify_ldt, sys_modify_ldt) | ||
349 | |||
350 | #define __NR_pivot_root 155 | ||
351 | __SYSCALL(__NR_pivot_root, sys_pivot_root) | ||
352 | |||
353 | #define __NR__sysctl 156 | ||
354 | __SYSCALL(__NR__sysctl, sys_sysctl) | ||
355 | |||
356 | #define __NR_prctl 157 | ||
357 | __SYSCALL(__NR_prctl, sys_prctl) | ||
358 | #define __NR_arch_prctl 158 | ||
359 | __SYSCALL(__NR_arch_prctl, sys_arch_prctl) | ||
360 | |||
361 | #define __NR_adjtimex 159 | ||
362 | __SYSCALL(__NR_adjtimex, sys_adjtimex) | ||
363 | |||
364 | #define __NR_setrlimit 160 | ||
365 | __SYSCALL(__NR_setrlimit, sys_setrlimit) | ||
366 | |||
367 | #define __NR_chroot 161 | ||
368 | __SYSCALL(__NR_chroot, sys_chroot) | ||
369 | |||
370 | #define __NR_sync 162 | ||
371 | __SYSCALL(__NR_sync, sys_sync) | ||
372 | |||
373 | #define __NR_acct 163 | ||
374 | __SYSCALL(__NR_acct, sys_acct) | ||
375 | |||
376 | #define __NR_settimeofday 164 | ||
377 | __SYSCALL(__NR_settimeofday, sys_settimeofday) | ||
378 | |||
379 | #define __NR_mount 165 | ||
380 | __SYSCALL(__NR_mount, sys_mount) | ||
381 | #define __NR_umount2 166 | ||
382 | __SYSCALL(__NR_umount2, sys_umount) | ||
383 | |||
384 | #define __NR_swapon 167 | ||
385 | __SYSCALL(__NR_swapon, sys_swapon) | ||
386 | #define __NR_swapoff 168 | ||
387 | __SYSCALL(__NR_swapoff, sys_swapoff) | ||
388 | |||
389 | #define __NR_reboot 169 | ||
390 | __SYSCALL(__NR_reboot, sys_reboot) | ||
391 | |||
392 | #define __NR_sethostname 170 | ||
393 | __SYSCALL(__NR_sethostname, sys_sethostname) | ||
394 | #define __NR_setdomainname 171 | ||
395 | __SYSCALL(__NR_setdomainname, sys_setdomainname) | ||
396 | |||
397 | #define __NR_iopl 172 | ||
398 | __SYSCALL(__NR_iopl, stub_iopl) | ||
399 | #define __NR_ioperm 173 | ||
400 | __SYSCALL(__NR_ioperm, sys_ioperm) | ||
401 | |||
402 | #define __NR_create_module 174 | ||
403 | __SYSCALL(__NR_create_module, sys_ni_syscall) | ||
404 | #define __NR_init_module 175 | ||
405 | __SYSCALL(__NR_init_module, sys_init_module) | ||
406 | #define __NR_delete_module 176 | ||
407 | __SYSCALL(__NR_delete_module, sys_delete_module) | ||
408 | #define __NR_get_kernel_syms 177 | ||
409 | __SYSCALL(__NR_get_kernel_syms, sys_ni_syscall) | ||
410 | #define __NR_query_module 178 | ||
411 | __SYSCALL(__NR_query_module, sys_ni_syscall) | ||
412 | |||
413 | #define __NR_quotactl 179 | ||
414 | __SYSCALL(__NR_quotactl, sys_quotactl) | ||
415 | |||
416 | #define __NR_nfsservctl 180 | ||
417 | __SYSCALL(__NR_nfsservctl, sys_nfsservctl) | ||
418 | |||
419 | /* reserved for LiS/STREAMS */ | ||
420 | #define __NR_getpmsg 181 | ||
421 | __SYSCALL(__NR_getpmsg, sys_ni_syscall) | ||
422 | #define __NR_putpmsg 182 | ||
423 | __SYSCALL(__NR_putpmsg, sys_ni_syscall) | ||
424 | |||
425 | /* reserved for AFS */ | ||
426 | #define __NR_afs_syscall 183 | ||
427 | __SYSCALL(__NR_afs_syscall, sys_ni_syscall) | ||
428 | |||
429 | /* reserved for tux */ | ||
430 | #define __NR_tuxcall 184 | ||
431 | __SYSCALL(__NR_tuxcall, sys_ni_syscall) | ||
432 | |||
433 | #define __NR_security 185 | ||
434 | __SYSCALL(__NR_security, sys_ni_syscall) | ||
435 | |||
436 | #define __NR_gettid 186 | ||
437 | __SYSCALL(__NR_gettid, sys_gettid) | ||
438 | |||
439 | #define __NR_readahead 187 | ||
440 | __SYSCALL(__NR_readahead, sys_readahead) | ||
441 | #define __NR_setxattr 188 | ||
442 | __SYSCALL(__NR_setxattr, sys_setxattr) | ||
443 | #define __NR_lsetxattr 189 | ||
444 | __SYSCALL(__NR_lsetxattr, sys_lsetxattr) | ||
445 | #define __NR_fsetxattr 190 | ||
446 | __SYSCALL(__NR_fsetxattr, sys_fsetxattr) | ||
447 | #define __NR_getxattr 191 | ||
448 | __SYSCALL(__NR_getxattr, sys_getxattr) | ||
449 | #define __NR_lgetxattr 192 | ||
450 | __SYSCALL(__NR_lgetxattr, sys_lgetxattr) | ||
451 | #define __NR_fgetxattr 193 | ||
452 | __SYSCALL(__NR_fgetxattr, sys_fgetxattr) | ||
453 | #define __NR_listxattr 194 | ||
454 | __SYSCALL(__NR_listxattr, sys_listxattr) | ||
455 | #define __NR_llistxattr 195 | ||
456 | __SYSCALL(__NR_llistxattr, sys_llistxattr) | ||
457 | #define __NR_flistxattr 196 | ||
458 | __SYSCALL(__NR_flistxattr, sys_flistxattr) | ||
459 | #define __NR_removexattr 197 | ||
460 | __SYSCALL(__NR_removexattr, sys_removexattr) | ||
461 | #define __NR_lremovexattr 198 | ||
462 | __SYSCALL(__NR_lremovexattr, sys_lremovexattr) | ||
463 | #define __NR_fremovexattr 199 | ||
464 | __SYSCALL(__NR_fremovexattr, sys_fremovexattr) | ||
465 | #define __NR_tkill 200 | ||
466 | __SYSCALL(__NR_tkill, sys_tkill) | ||
467 | #define __NR_time 201 | ||
468 | __SYSCALL(__NR_time, sys_time) | ||
469 | #define __NR_futex 202 | ||
470 | __SYSCALL(__NR_futex, sys_futex) | ||
471 | #define __NR_sched_setaffinity 203 | ||
472 | __SYSCALL(__NR_sched_setaffinity, sys_sched_setaffinity) | ||
473 | #define __NR_sched_getaffinity 204 | ||
474 | __SYSCALL(__NR_sched_getaffinity, sys_sched_getaffinity) | ||
475 | #define __NR_set_thread_area 205 | ||
476 | __SYSCALL(__NR_set_thread_area, sys_ni_syscall) /* use arch_prctl */ | ||
477 | #define __NR_io_setup 206 | ||
478 | __SYSCALL(__NR_io_setup, sys_io_setup) | ||
479 | #define __NR_io_destroy 207 | ||
480 | __SYSCALL(__NR_io_destroy, sys_io_destroy) | ||
481 | #define __NR_io_getevents 208 | ||
482 | __SYSCALL(__NR_io_getevents, sys_io_getevents) | ||
483 | #define __NR_io_submit 209 | ||
484 | __SYSCALL(__NR_io_submit, sys_io_submit) | ||
485 | #define __NR_io_cancel 210 | ||
486 | __SYSCALL(__NR_io_cancel, sys_io_cancel) | ||
487 | #define __NR_get_thread_area 211 | ||
488 | __SYSCALL(__NR_get_thread_area, sys_ni_syscall) /* use arch_prctl */ | ||
489 | #define __NR_lookup_dcookie 212 | ||
490 | __SYSCALL(__NR_lookup_dcookie, sys_lookup_dcookie) | ||
491 | #define __NR_epoll_create 213 | ||
492 | __SYSCALL(__NR_epoll_create, sys_epoll_create) | ||
493 | #define __NR_epoll_ctl_old 214 | ||
494 | __SYSCALL(__NR_epoll_ctl_old, sys_ni_syscall) | ||
495 | #define __NR_epoll_wait_old 215 | ||
496 | __SYSCALL(__NR_epoll_wait_old, sys_ni_syscall) | ||
497 | #define __NR_remap_file_pages 216 | ||
498 | __SYSCALL(__NR_remap_file_pages, sys_remap_file_pages) | ||
499 | #define __NR_getdents64 217 | ||
500 | __SYSCALL(__NR_getdents64, sys_getdents64) | ||
501 | #define __NR_set_tid_address 218 | ||
502 | __SYSCALL(__NR_set_tid_address, sys_set_tid_address) | ||
503 | #define __NR_restart_syscall 219 | ||
504 | __SYSCALL(__NR_restart_syscall, sys_restart_syscall) | ||
505 | #define __NR_semtimedop 220 | ||
506 | __SYSCALL(__NR_semtimedop, sys_semtimedop) | ||
507 | #define __NR_fadvise64 221 | ||
508 | __SYSCALL(__NR_fadvise64, sys_fadvise64) | ||
509 | #define __NR_timer_create 222 | ||
510 | __SYSCALL(__NR_timer_create, sys_timer_create) | ||
511 | #define __NR_timer_settime 223 | ||
512 | __SYSCALL(__NR_timer_settime, sys_timer_settime) | ||
513 | #define __NR_timer_gettime 224 | ||
514 | __SYSCALL(__NR_timer_gettime, sys_timer_gettime) | ||
515 | #define __NR_timer_getoverrun 225 | ||
516 | __SYSCALL(__NR_timer_getoverrun, sys_timer_getoverrun) | ||
517 | #define __NR_timer_delete 226 | ||
518 | __SYSCALL(__NR_timer_delete, sys_timer_delete) | ||
519 | #define __NR_clock_settime 227 | ||
520 | __SYSCALL(__NR_clock_settime, sys_clock_settime) | ||
521 | #define __NR_clock_gettime 228 | ||
522 | __SYSCALL(__NR_clock_gettime, sys_clock_gettime) | ||
523 | #define __NR_clock_getres 229 | ||
524 | __SYSCALL(__NR_clock_getres, sys_clock_getres) | ||
525 | #define __NR_clock_nanosleep 230 | ||
526 | __SYSCALL(__NR_clock_nanosleep, sys_clock_nanosleep) | ||
527 | #define __NR_exit_group 231 | ||
528 | __SYSCALL(__NR_exit_group, sys_exit_group) | ||
529 | #define __NR_epoll_wait 232 | ||
530 | __SYSCALL(__NR_epoll_wait, sys_epoll_wait) | ||
531 | #define __NR_epoll_ctl 233 | ||
532 | __SYSCALL(__NR_epoll_ctl, sys_epoll_ctl) | ||
533 | #define __NR_tgkill 234 | ||
534 | __SYSCALL(__NR_tgkill, sys_tgkill) | ||
535 | #define __NR_utimes 235 | ||
536 | __SYSCALL(__NR_utimes, sys_utimes) | ||
537 | #define __NR_vserver 236 | ||
538 | __SYSCALL(__NR_vserver, sys_ni_syscall) | ||
539 | #define __NR_mbind 237 | ||
540 | __SYSCALL(__NR_mbind, sys_mbind) | ||
541 | #define __NR_set_mempolicy 238 | ||
542 | __SYSCALL(__NR_set_mempolicy, sys_set_mempolicy) | ||
543 | #define __NR_get_mempolicy 239 | ||
544 | __SYSCALL(__NR_get_mempolicy, sys_get_mempolicy) | ||
545 | #define __NR_mq_open 240 | ||
546 | __SYSCALL(__NR_mq_open, sys_mq_open) | ||
547 | #define __NR_mq_unlink 241 | ||
548 | __SYSCALL(__NR_mq_unlink, sys_mq_unlink) | ||
549 | #define __NR_mq_timedsend 242 | ||
550 | __SYSCALL(__NR_mq_timedsend, sys_mq_timedsend) | ||
551 | #define __NR_mq_timedreceive 243 | ||
552 | __SYSCALL(__NR_mq_timedreceive, sys_mq_timedreceive) | ||
553 | #define __NR_mq_notify 244 | ||
554 | __SYSCALL(__NR_mq_notify, sys_mq_notify) | ||
555 | #define __NR_mq_getsetattr 245 | ||
556 | __SYSCALL(__NR_mq_getsetattr, sys_mq_getsetattr) | ||
557 | #define __NR_kexec_load 246 | ||
558 | __SYSCALL(__NR_kexec_load, sys_kexec_load) | ||
559 | #define __NR_waitid 247 | ||
560 | __SYSCALL(__NR_waitid, sys_waitid) | ||
561 | #define __NR_add_key 248 | ||
562 | __SYSCALL(__NR_add_key, sys_add_key) | ||
563 | #define __NR_request_key 249 | ||
564 | __SYSCALL(__NR_request_key, sys_request_key) | ||
565 | #define __NR_keyctl 250 | ||
566 | __SYSCALL(__NR_keyctl, sys_keyctl) | ||
567 | #define __NR_ioprio_set 251 | ||
568 | __SYSCALL(__NR_ioprio_set, sys_ioprio_set) | ||
569 | #define __NR_ioprio_get 252 | ||
570 | __SYSCALL(__NR_ioprio_get, sys_ioprio_get) | ||
571 | #define __NR_inotify_init 253 | ||
572 | __SYSCALL(__NR_inotify_init, sys_inotify_init) | ||
573 | #define __NR_inotify_add_watch 254 | ||
574 | __SYSCALL(__NR_inotify_add_watch, sys_inotify_add_watch) | ||
575 | #define __NR_inotify_rm_watch 255 | ||
576 | __SYSCALL(__NR_inotify_rm_watch, sys_inotify_rm_watch) | ||
577 | #define __NR_migrate_pages 256 | ||
578 | __SYSCALL(__NR_migrate_pages, sys_migrate_pages) | ||
579 | #define __NR_openat 257 | ||
580 | __SYSCALL(__NR_openat, sys_openat) | ||
581 | #define __NR_mkdirat 258 | ||
582 | __SYSCALL(__NR_mkdirat, sys_mkdirat) | ||
583 | #define __NR_mknodat 259 | ||
584 | __SYSCALL(__NR_mknodat, sys_mknodat) | ||
585 | #define __NR_fchownat 260 | ||
586 | __SYSCALL(__NR_fchownat, sys_fchownat) | ||
587 | #define __NR_futimesat 261 | ||
588 | __SYSCALL(__NR_futimesat, sys_futimesat) | ||
589 | #define __NR_newfstatat 262 | ||
590 | __SYSCALL(__NR_newfstatat, sys_newfstatat) | ||
591 | #define __NR_unlinkat 263 | ||
592 | __SYSCALL(__NR_unlinkat, sys_unlinkat) | ||
593 | #define __NR_renameat 264 | ||
594 | __SYSCALL(__NR_renameat, sys_renameat) | ||
595 | #define __NR_linkat 265 | ||
596 | __SYSCALL(__NR_linkat, sys_linkat) | ||
597 | #define __NR_symlinkat 266 | ||
598 | __SYSCALL(__NR_symlinkat, sys_symlinkat) | ||
599 | #define __NR_readlinkat 267 | ||
600 | __SYSCALL(__NR_readlinkat, sys_readlinkat) | ||
601 | #define __NR_fchmodat 268 | ||
602 | __SYSCALL(__NR_fchmodat, sys_fchmodat) | ||
603 | #define __NR_faccessat 269 | ||
604 | __SYSCALL(__NR_faccessat, sys_faccessat) | ||
605 | #define __NR_pselect6 270 | ||
606 | __SYSCALL(__NR_pselect6, sys_pselect6) | ||
607 | #define __NR_ppoll 271 | ||
608 | __SYSCALL(__NR_ppoll, sys_ppoll) | ||
609 | #define __NR_unshare 272 | ||
610 | __SYSCALL(__NR_unshare, sys_unshare) | ||
611 | #define __NR_set_robust_list 273 | ||
612 | __SYSCALL(__NR_set_robust_list, sys_set_robust_list) | ||
613 | #define __NR_get_robust_list 274 | ||
614 | __SYSCALL(__NR_get_robust_list, sys_get_robust_list) | ||
615 | #define __NR_splice 275 | ||
616 | __SYSCALL(__NR_splice, sys_splice) | ||
617 | #define __NR_tee 276 | ||
618 | __SYSCALL(__NR_tee, sys_tee) | ||
619 | #define __NR_sync_file_range 277 | ||
620 | __SYSCALL(__NR_sync_file_range, sys_sync_file_range) | ||
621 | #define __NR_vmsplice 278 | ||
622 | __SYSCALL(__NR_vmsplice, sys_vmsplice) | ||
623 | #define __NR_move_pages 279 | ||
624 | __SYSCALL(__NR_move_pages, sys_move_pages) | ||
625 | #define __NR_utimensat 280 | ||
626 | __SYSCALL(__NR_utimensat, sys_utimensat) | ||
627 | #define __IGNORE_getcpu /* implemented as a vsyscall */ | ||
628 | #define __NR_epoll_pwait 281 | ||
629 | __SYSCALL(__NR_epoll_pwait, sys_epoll_pwait) | ||
630 | #define __NR_signalfd 282 | ||
631 | __SYSCALL(__NR_signalfd, sys_signalfd) | ||
632 | #define __NR_timerfd_create 283 | ||
633 | __SYSCALL(__NR_timerfd_create, sys_timerfd_create) | ||
634 | #define __NR_eventfd 284 | ||
635 | __SYSCALL(__NR_eventfd, sys_eventfd) | ||
636 | #define __NR_fallocate 285 | ||
637 | __SYSCALL(__NR_fallocate, sys_fallocate) | ||
638 | #define __NR_timerfd_settime 286 | ||
639 | __SYSCALL(__NR_timerfd_settime, sys_timerfd_settime) | ||
640 | #define __NR_timerfd_gettime 287 | ||
641 | __SYSCALL(__NR_timerfd_gettime, sys_timerfd_gettime) | ||
642 | #define __NR_paccept 288 | ||
643 | __SYSCALL(__NR_paccept, sys_paccept) | ||
644 | #define __NR_signalfd4 289 | ||
645 | __SYSCALL(__NR_signalfd4, sys_signalfd4) | ||
646 | #define __NR_eventfd2 290 | ||
647 | __SYSCALL(__NR_eventfd2, sys_eventfd2) | ||
648 | #define __NR_epoll_create1 291 | ||
649 | __SYSCALL(__NR_epoll_create1, sys_epoll_create1) | ||
650 | #define __NR_dup3 292 | ||
651 | __SYSCALL(__NR_dup3, sys_dup3) | ||
652 | #define __NR_pipe2 293 | ||
653 | __SYSCALL(__NR_pipe2, sys_pipe2) | ||
654 | #define __NR_inotify_init1 294 | ||
655 | __SYSCALL(__NR_inotify_init1, sys_inotify_init1) | ||
656 | |||
657 | |||
658 | #ifndef __NO_STUBS | ||
659 | #define __ARCH_WANT_OLD_READDIR | ||
660 | #define __ARCH_WANT_OLD_STAT | ||
661 | #define __ARCH_WANT_SYS_ALARM | ||
662 | #define __ARCH_WANT_SYS_GETHOSTNAME | ||
663 | #define __ARCH_WANT_SYS_PAUSE | ||
664 | #define __ARCH_WANT_SYS_SGETMASK | ||
665 | #define __ARCH_WANT_SYS_SIGNAL | ||
666 | #define __ARCH_WANT_SYS_UTIME | ||
667 | #define __ARCH_WANT_SYS_WAITPID | ||
668 | #define __ARCH_WANT_SYS_SOCKETCALL | ||
669 | #define __ARCH_WANT_SYS_FADVISE64 | ||
670 | #define __ARCH_WANT_SYS_GETPGRP | ||
671 | #define __ARCH_WANT_SYS_LLSEEK | ||
672 | #define __ARCH_WANT_SYS_NICE | ||
673 | #define __ARCH_WANT_SYS_OLD_GETRLIMIT | ||
674 | #define __ARCH_WANT_SYS_OLDUMOUNT | ||
675 | #define __ARCH_WANT_SYS_SIGPENDING | ||
676 | #define __ARCH_WANT_SYS_SIGPROCMASK | ||
677 | #define __ARCH_WANT_SYS_RT_SIGACTION | ||
678 | #define __ARCH_WANT_SYS_RT_SIGSUSPEND | ||
679 | #define __ARCH_WANT_SYS_TIME | ||
680 | #define __ARCH_WANT_COMPAT_SYS_TIME | ||
681 | #endif /* __NO_STUBS */ | ||
682 | |||
683 | #ifdef __KERNEL__ | ||
684 | /* | ||
685 | * "Conditional" syscalls | ||
686 | * | ||
687 | * What we want is __attribute__((weak,alias("sys_ni_syscall"))), | ||
688 | * but it doesn't work on all toolchains, so we just do it by hand | ||
689 | */ | ||
690 | #define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall") | ||
691 | #endif /* __KERNEL__ */ | ||
692 | |||
693 | #endif /* _ASM_X86_UNISTD_64_H */ | ||
diff --git a/arch/x86/include/asm/unwind.h b/arch/x86/include/asm/unwind.h new file mode 100644 index 000000000000..8b064bd9c553 --- /dev/null +++ b/arch/x86/include/asm/unwind.h | |||
@@ -0,0 +1,13 @@ | |||
1 | #ifndef _ASM_X86_UNWIND_H | ||
2 | #define _ASM_X86_UNWIND_H | ||
3 | |||
4 | #define UNW_PC(frame) ((void)(frame), 0UL) | ||
5 | #define UNW_SP(frame) ((void)(frame), 0UL) | ||
6 | #define UNW_FP(frame) ((void)(frame), 0UL) | ||
7 | |||
8 | static inline int arch_unw_user_mode(const void *info) | ||
9 | { | ||
10 | return 0; | ||
11 | } | ||
12 | |||
13 | #endif /* _ASM_X86_UNWIND_H */ | ||
diff --git a/arch/x86/include/asm/user.h b/arch/x86/include/asm/user.h new file mode 100644 index 000000000000..999873b22e7f --- /dev/null +++ b/arch/x86/include/asm/user.h | |||
@@ -0,0 +1,5 @@ | |||
1 | #ifdef CONFIG_X86_32 | ||
2 | # include "user_32.h" | ||
3 | #else | ||
4 | # include "user_64.h" | ||
5 | #endif | ||
diff --git a/arch/x86/include/asm/user32.h b/arch/x86/include/asm/user32.h new file mode 100644 index 000000000000..14cbb73ebcba --- /dev/null +++ b/arch/x86/include/asm/user32.h | |||
@@ -0,0 +1,70 @@ | |||
1 | #ifndef _ASM_X86_USER32_H | ||
2 | #define _ASM_X86_USER32_H | ||
3 | |||
4 | /* IA32 compatible user structures for ptrace. | ||
5 | * These should be used for 32bit coredumps too. */ | ||
6 | |||
7 | struct user_i387_ia32_struct { | ||
8 | u32 cwd; | ||
9 | u32 swd; | ||
10 | u32 twd; | ||
11 | u32 fip; | ||
12 | u32 fcs; | ||
13 | u32 foo; | ||
14 | u32 fos; | ||
15 | u32 st_space[20]; /* 8*10 bytes for each FP-reg = 80 bytes */ | ||
16 | }; | ||
17 | |||
18 | /* FSAVE frame with extensions */ | ||
19 | struct user32_fxsr_struct { | ||
20 | unsigned short cwd; | ||
21 | unsigned short swd; | ||
22 | unsigned short twd; /* not compatible to 64bit twd */ | ||
23 | unsigned short fop; | ||
24 | int fip; | ||
25 | int fcs; | ||
26 | int foo; | ||
27 | int fos; | ||
28 | int mxcsr; | ||
29 | int reserved; | ||
30 | int st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */ | ||
31 | int xmm_space[32]; /* 8*16 bytes for each XMM-reg = 128 bytes */ | ||
32 | int padding[56]; | ||
33 | }; | ||
34 | |||
35 | struct user_regs_struct32 { | ||
36 | __u32 ebx, ecx, edx, esi, edi, ebp, eax; | ||
37 | unsigned short ds, __ds, es, __es; | ||
38 | unsigned short fs, __fs, gs, __gs; | ||
39 | __u32 orig_eax, eip; | ||
40 | unsigned short cs, __cs; | ||
41 | __u32 eflags, esp; | ||
42 | unsigned short ss, __ss; | ||
43 | }; | ||
44 | |||
45 | struct user32 { | ||
46 | struct user_regs_struct32 regs; /* Where the registers are actually stored */ | ||
47 | int u_fpvalid; /* True if math co-processor being used. */ | ||
48 | /* for this mess. Not yet used. */ | ||
49 | struct user_i387_ia32_struct i387; /* Math Co-processor registers. */ | ||
50 | /* The rest of this junk is to help gdb figure out what goes where */ | ||
51 | __u32 u_tsize; /* Text segment size (pages). */ | ||
52 | __u32 u_dsize; /* Data segment size (pages). */ | ||
53 | __u32 u_ssize; /* Stack segment size (pages). */ | ||
54 | __u32 start_code; /* Starting virtual address of text. */ | ||
55 | __u32 start_stack; /* Starting virtual address of stack area. | ||
56 | This is actually the bottom of the stack, | ||
57 | the top of the stack is always found in the | ||
58 | esp register. */ | ||
59 | __u32 signal; /* Signal that caused the core dump. */ | ||
60 | int reserved; /* No __u32er used */ | ||
61 | __u32 u_ar0; /* Used by gdb to help find the values for */ | ||
62 | /* the registers. */ | ||
63 | __u32 u_fpstate; /* Math Co-processor pointer. */ | ||
64 | __u32 magic; /* To uniquely identify a core file */ | ||
65 | char u_comm[32]; /* User command that was responsible */ | ||
66 | int u_debugreg[8]; | ||
67 | }; | ||
68 | |||
69 | |||
70 | #endif /* _ASM_X86_USER32_H */ | ||
diff --git a/arch/x86/include/asm/user_32.h b/arch/x86/include/asm/user_32.h new file mode 100644 index 000000000000..bebfd8644016 --- /dev/null +++ b/arch/x86/include/asm/user_32.h | |||
@@ -0,0 +1,131 @@ | |||
1 | #ifndef _ASM_X86_USER_32_H | ||
2 | #define _ASM_X86_USER_32_H | ||
3 | |||
4 | #include <asm/page.h> | ||
5 | /* Core file format: The core file is written in such a way that gdb | ||
6 | can understand it and provide useful information to the user (under | ||
7 | linux we use the 'trad-core' bfd). There are quite a number of | ||
8 | obstacles to being able to view the contents of the floating point | ||
9 | registers, and until these are solved you will not be able to view the | ||
10 | contents of them. Actually, you can read in the core file and look at | ||
11 | the contents of the user struct to find out what the floating point | ||
12 | registers contain. | ||
13 | The actual file contents are as follows: | ||
14 | UPAGE: 1 page consisting of a user struct that tells gdb what is present | ||
15 | in the file. Directly after this is a copy of the task_struct, which | ||
16 | is currently not used by gdb, but it may come in useful at some point. | ||
17 | All of the registers are stored as part of the upage. The upage should | ||
18 | always be only one page. | ||
19 | DATA: The data area is stored. We use current->end_text to | ||
20 | current->brk to pick up all of the user variables, plus any memory | ||
21 | that may have been malloced. No attempt is made to determine if a page | ||
22 | is demand-zero or if a page is totally unused, we just cover the entire | ||
23 | range. All of the addresses are rounded in such a way that an integral | ||
24 | number of pages is written. | ||
25 | STACK: We need the stack information in order to get a meaningful | ||
26 | backtrace. We need to write the data from (esp) to | ||
27 | current->start_stack, so we round each of these off in order to be able | ||
28 | to write an integer number of pages. | ||
29 | The minimum core file size is 3 pages, or 12288 bytes. | ||
30 | */ | ||
31 | |||
32 | /* | ||
33 | * Pentium III FXSR, SSE support | ||
34 | * Gareth Hughes <gareth@valinux.com>, May 2000 | ||
35 | * | ||
36 | * Provide support for the GDB 5.0+ PTRACE_{GET|SET}FPXREGS requests for | ||
37 | * interacting with the FXSR-format floating point environment. Floating | ||
38 | * point data can be accessed in the regular format in the usual manner, | ||
39 | * and both the standard and SIMD floating point data can be accessed via | ||
40 | * the new ptrace requests. In either case, changes to the FPU environment | ||
41 | * will be reflected in the task's state as expected. | ||
42 | */ | ||
43 | |||
44 | struct user_i387_struct { | ||
45 | long cwd; | ||
46 | long swd; | ||
47 | long twd; | ||
48 | long fip; | ||
49 | long fcs; | ||
50 | long foo; | ||
51 | long fos; | ||
52 | long st_space[20]; /* 8*10 bytes for each FP-reg = 80 bytes */ | ||
53 | }; | ||
54 | |||
55 | struct user_fxsr_struct { | ||
56 | unsigned short cwd; | ||
57 | unsigned short swd; | ||
58 | unsigned short twd; | ||
59 | unsigned short fop; | ||
60 | long fip; | ||
61 | long fcs; | ||
62 | long foo; | ||
63 | long fos; | ||
64 | long mxcsr; | ||
65 | long reserved; | ||
66 | long st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */ | ||
67 | long xmm_space[32]; /* 8*16 bytes for each XMM-reg = 128 bytes */ | ||
68 | long padding[56]; | ||
69 | }; | ||
70 | |||
71 | /* | ||
72 | * This is the old layout of "struct pt_regs", and | ||
73 | * is still the layout used by user mode (the new | ||
74 | * pt_regs doesn't have all registers as the kernel | ||
75 | * doesn't use the extra segment registers) | ||
76 | */ | ||
77 | struct user_regs_struct { | ||
78 | unsigned long bx; | ||
79 | unsigned long cx; | ||
80 | unsigned long dx; | ||
81 | unsigned long si; | ||
82 | unsigned long di; | ||
83 | unsigned long bp; | ||
84 | unsigned long ax; | ||
85 | unsigned long ds; | ||
86 | unsigned long es; | ||
87 | unsigned long fs; | ||
88 | unsigned long gs; | ||
89 | unsigned long orig_ax; | ||
90 | unsigned long ip; | ||
91 | unsigned long cs; | ||
92 | unsigned long flags; | ||
93 | unsigned long sp; | ||
94 | unsigned long ss; | ||
95 | }; | ||
96 | |||
97 | /* When the kernel dumps core, it starts by dumping the user struct - | ||
98 | this will be used by gdb to figure out where the data and stack segments | ||
99 | are within the file, and what virtual addresses to use. */ | ||
100 | struct user{ | ||
101 | /* We start with the registers, to mimic the way that "memory" is returned | ||
102 | from the ptrace(3,...) function. */ | ||
103 | struct user_regs_struct regs; /* Where the registers are actually stored */ | ||
104 | /* ptrace does not yet supply these. Someday.... */ | ||
105 | int u_fpvalid; /* True if math co-processor being used. */ | ||
106 | /* for this mess. Not yet used. */ | ||
107 | struct user_i387_struct i387; /* Math Co-processor registers. */ | ||
108 | /* The rest of this junk is to help gdb figure out what goes where */ | ||
109 | unsigned long int u_tsize; /* Text segment size (pages). */ | ||
110 | unsigned long int u_dsize; /* Data segment size (pages). */ | ||
111 | unsigned long int u_ssize; /* Stack segment size (pages). */ | ||
112 | unsigned long start_code; /* Starting virtual address of text. */ | ||
113 | unsigned long start_stack; /* Starting virtual address of stack area. | ||
114 | This is actually the bottom of the stack, | ||
115 | the top of the stack is always found in the | ||
116 | esp register. */ | ||
117 | long int signal; /* Signal that caused the core dump. */ | ||
118 | int reserved; /* No longer used */ | ||
119 | unsigned long u_ar0; /* Used by gdb to help find the values for */ | ||
120 | /* the registers. */ | ||
121 | struct user_i387_struct *u_fpstate; /* Math Co-processor pointer. */ | ||
122 | unsigned long magic; /* To uniquely identify a core file */ | ||
123 | char u_comm[32]; /* User command that was responsible */ | ||
124 | int u_debugreg[8]; | ||
125 | }; | ||
126 | #define NBPG PAGE_SIZE | ||
127 | #define UPAGES 1 | ||
128 | #define HOST_TEXT_START_ADDR (u.start_code) | ||
129 | #define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG) | ||
130 | |||
131 | #endif /* _ASM_X86_USER_32_H */ | ||
diff --git a/arch/x86/include/asm/user_64.h b/arch/x86/include/asm/user_64.h new file mode 100644 index 000000000000..faf2cd3e0d76 --- /dev/null +++ b/arch/x86/include/asm/user_64.h | |||
@@ -0,0 +1,137 @@ | |||
1 | #ifndef _ASM_X86_USER_64_H | ||
2 | #define _ASM_X86_USER_64_H | ||
3 | |||
4 | #include <asm/types.h> | ||
5 | #include <asm/page.h> | ||
6 | /* Core file format: The core file is written in such a way that gdb | ||
7 | can understand it and provide useful information to the user. | ||
8 | There are quite a number of obstacles to being able to view the | ||
9 | contents of the floating point registers, and until these are | ||
10 | solved you will not be able to view the contents of them. | ||
11 | Actually, you can read in the core file and look at the contents of | ||
12 | the user struct to find out what the floating point registers | ||
13 | contain. | ||
14 | |||
15 | The actual file contents are as follows: | ||
16 | UPAGE: 1 page consisting of a user struct that tells gdb what is present | ||
17 | in the file. Directly after this is a copy of the task_struct, which | ||
18 | is currently not used by gdb, but it may come in useful at some point. | ||
19 | All of the registers are stored as part of the upage. The upage should | ||
20 | always be only one page. | ||
21 | DATA: The data area is stored. We use current->end_text to | ||
22 | current->brk to pick up all of the user variables, plus any memory | ||
23 | that may have been malloced. No attempt is made to determine if a page | ||
24 | is demand-zero or if a page is totally unused, we just cover the entire | ||
25 | range. All of the addresses are rounded in such a way that an integral | ||
26 | number of pages is written. | ||
27 | STACK: We need the stack information in order to get a meaningful | ||
28 | backtrace. We need to write the data from (esp) to | ||
29 | current->start_stack, so we round each of these off in order to be able | ||
30 | to write an integer number of pages. | ||
31 | The minimum core file size is 3 pages, or 12288 bytes. */ | ||
32 | |||
33 | /* | ||
34 | * Pentium III FXSR, SSE support | ||
35 | * Gareth Hughes <gareth@valinux.com>, May 2000 | ||
36 | * | ||
37 | * Provide support for the GDB 5.0+ PTRACE_{GET|SET}FPXREGS requests for | ||
38 | * interacting with the FXSR-format floating point environment. Floating | ||
39 | * point data can be accessed in the regular format in the usual manner, | ||
40 | * and both the standard and SIMD floating point data can be accessed via | ||
41 | * the new ptrace requests. In either case, changes to the FPU environment | ||
42 | * will be reflected in the task's state as expected. | ||
43 | * | ||
44 | * x86-64 support by Andi Kleen. | ||
45 | */ | ||
46 | |||
47 | /* This matches the 64bit FXSAVE format as defined by AMD. It is the same | ||
48 | as the 32bit format defined by Intel, except that the selector:offset pairs | ||
49 | for data and eip are replaced with flat 64bit pointers. */ | ||
50 | struct user_i387_struct { | ||
51 | unsigned short cwd; | ||
52 | unsigned short swd; | ||
53 | unsigned short twd; /* Note this is not the same as | ||
54 | the 32bit/x87/FSAVE twd */ | ||
55 | unsigned short fop; | ||
56 | __u64 rip; | ||
57 | __u64 rdp; | ||
58 | __u32 mxcsr; | ||
59 | __u32 mxcsr_mask; | ||
60 | __u32 st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */ | ||
61 | __u32 xmm_space[64]; /* 16*16 bytes for each XMM-reg = 256 bytes */ | ||
62 | __u32 padding[24]; | ||
63 | }; | ||
64 | |||
65 | /* | ||
66 | * Segment register layout in coredumps. | ||
67 | */ | ||
68 | struct user_regs_struct { | ||
69 | unsigned long r15; | ||
70 | unsigned long r14; | ||
71 | unsigned long r13; | ||
72 | unsigned long r12; | ||
73 | unsigned long bp; | ||
74 | unsigned long bx; | ||
75 | unsigned long r11; | ||
76 | unsigned long r10; | ||
77 | unsigned long r9; | ||
78 | unsigned long r8; | ||
79 | unsigned long ax; | ||
80 | unsigned long cx; | ||
81 | unsigned long dx; | ||
82 | unsigned long si; | ||
83 | unsigned long di; | ||
84 | unsigned long orig_ax; | ||
85 | unsigned long ip; | ||
86 | unsigned long cs; | ||
87 | unsigned long flags; | ||
88 | unsigned long sp; | ||
89 | unsigned long ss; | ||
90 | unsigned long fs_base; | ||
91 | unsigned long gs_base; | ||
92 | unsigned long ds; | ||
93 | unsigned long es; | ||
94 | unsigned long fs; | ||
95 | unsigned long gs; | ||
96 | }; | ||
97 | |||
98 | /* When the kernel dumps core, it starts by dumping the user struct - | ||
99 | this will be used by gdb to figure out where the data and stack segments | ||
100 | are within the file, and what virtual addresses to use. */ | ||
101 | |||
102 | struct user { | ||
103 | /* We start with the registers, to mimic the way that "memory" is returned | ||
104 | from the ptrace(3,...) function. */ | ||
105 | struct user_regs_struct regs; /* Where the registers are actually stored */ | ||
106 | /* ptrace does not yet supply these. Someday.... */ | ||
107 | int u_fpvalid; /* True if math co-processor being used. */ | ||
108 | /* for this mess. Not yet used. */ | ||
109 | int pad0; | ||
110 | struct user_i387_struct i387; /* Math Co-processor registers. */ | ||
111 | /* The rest of this junk is to help gdb figure out what goes where */ | ||
112 | unsigned long int u_tsize; /* Text segment size (pages). */ | ||
113 | unsigned long int u_dsize; /* Data segment size (pages). */ | ||
114 | unsigned long int u_ssize; /* Stack segment size (pages). */ | ||
115 | unsigned long start_code; /* Starting virtual address of text. */ | ||
116 | unsigned long start_stack; /* Starting virtual address of stack area. | ||
117 | This is actually the bottom of the stack, | ||
118 | the top of the stack is always found in the | ||
119 | esp register. */ | ||
120 | long int signal; /* Signal that caused the core dump. */ | ||
121 | int reserved; /* No longer used */ | ||
122 | int pad1; | ||
123 | unsigned long u_ar0; /* Used by gdb to help find the values for */ | ||
124 | /* the registers. */ | ||
125 | struct user_i387_struct *u_fpstate; /* Math Co-processor pointer. */ | ||
126 | unsigned long magic; /* To uniquely identify a core file */ | ||
127 | char u_comm[32]; /* User command that was responsible */ | ||
128 | unsigned long u_debugreg[8]; | ||
129 | unsigned long error_code; /* CPU error code or 0 */ | ||
130 | unsigned long fault_address; /* CR3 or 0 */ | ||
131 | }; | ||
132 | #define NBPG PAGE_SIZE | ||
133 | #define UPAGES 1 | ||
134 | #define HOST_TEXT_START_ADDR (u.start_code) | ||
135 | #define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG) | ||
136 | |||
137 | #endif /* _ASM_X86_USER_64_H */ | ||
diff --git a/arch/x86/include/asm/uv/bios.h b/arch/x86/include/asm/uv/bios.h new file mode 100644 index 000000000000..51cadc645e6f --- /dev/null +++ b/arch/x86/include/asm/uv/bios.h | |||
@@ -0,0 +1,94 @@ | |||
1 | #ifndef _ASM_X86_UV_BIOS_H | ||
2 | #define _ASM_X86_UV_BIOS_H | ||
3 | |||
4 | /* | ||
5 | * UV BIOS layer definitions. | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License as published by | ||
9 | * the Free Software Foundation; either version 2 of the License, or | ||
10 | * (at your option) any later version. | ||
11 | * | ||
12 | * This program is distributed in the hope that it will be useful, | ||
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | * GNU General Public License for more details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program; if not, write to the Free Software | ||
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
20 | * | ||
21 | * Copyright (c) 2008 Silicon Graphics, Inc. All Rights Reserved. | ||
22 | * Copyright (c) Russ Anderson | ||
23 | */ | ||
24 | |||
25 | #include <linux/rtc.h> | ||
26 | |||
27 | /* | ||
28 | * Values for the BIOS calls. It is passed as the first * argument in the | ||
29 | * BIOS call. Passing any other value in the first argument will result | ||
30 | * in a BIOS_STATUS_UNIMPLEMENTED return status. | ||
31 | */ | ||
32 | enum uv_bios_cmd { | ||
33 | UV_BIOS_COMMON, | ||
34 | UV_BIOS_GET_SN_INFO, | ||
35 | UV_BIOS_FREQ_BASE | ||
36 | }; | ||
37 | |||
38 | /* | ||
39 | * Status values returned from a BIOS call. | ||
40 | */ | ||
41 | enum { | ||
42 | BIOS_STATUS_SUCCESS = 0, | ||
43 | BIOS_STATUS_UNIMPLEMENTED = -ENOSYS, | ||
44 | BIOS_STATUS_EINVAL = -EINVAL, | ||
45 | BIOS_STATUS_UNAVAIL = -EBUSY | ||
46 | }; | ||
47 | |||
48 | /* | ||
49 | * The UV system table describes specific firmware | ||
50 | * capabilities available to the Linux kernel at runtime. | ||
51 | */ | ||
52 | struct uv_systab { | ||
53 | char signature[4]; /* must be "UVST" */ | ||
54 | u32 revision; /* distinguish different firmware revs */ | ||
55 | u64 function; /* BIOS runtime callback function ptr */ | ||
56 | }; | ||
57 | |||
58 | enum { | ||
59 | BIOS_FREQ_BASE_PLATFORM = 0, | ||
60 | BIOS_FREQ_BASE_INTERVAL_TIMER = 1, | ||
61 | BIOS_FREQ_BASE_REALTIME_CLOCK = 2 | ||
62 | }; | ||
63 | |||
64 | union partition_info_u { | ||
65 | u64 val; | ||
66 | struct { | ||
67 | u64 hub_version : 8, | ||
68 | partition_id : 16, | ||
69 | coherence_id : 16, | ||
70 | region_size : 24; | ||
71 | }; | ||
72 | }; | ||
73 | |||
74 | /* | ||
75 | * bios calls have 6 parameters | ||
76 | */ | ||
77 | extern s64 uv_bios_call(enum uv_bios_cmd, u64, u64, u64, u64, u64); | ||
78 | extern s64 uv_bios_call_irqsave(enum uv_bios_cmd, u64, u64, u64, u64, u64); | ||
79 | extern s64 uv_bios_call_reentrant(enum uv_bios_cmd, u64, u64, u64, u64, u64); | ||
80 | |||
81 | extern s64 uv_bios_get_sn_info(int, int *, long *, long *, long *); | ||
82 | extern s64 uv_bios_freq_base(u64, u64 *); | ||
83 | |||
84 | extern void uv_bios_init(void); | ||
85 | |||
86 | extern int uv_type; | ||
87 | extern long sn_partition_id; | ||
88 | extern long sn_coherency_id; | ||
89 | extern long sn_region_size; | ||
90 | #define partition_coherence_id() (sn_coherency_id) | ||
91 | |||
92 | extern struct kobject *sgi_uv_kobj; /* /sys/firmware/sgi_uv */ | ||
93 | |||
94 | #endif /* _ASM_X86_UV_BIOS_H */ | ||
diff --git a/arch/x86/include/asm/uv/uv_bau.h b/arch/x86/include/asm/uv/uv_bau.h new file mode 100644 index 000000000000..e2363253bbbf --- /dev/null +++ b/arch/x86/include/asm/uv/uv_bau.h | |||
@@ -0,0 +1,332 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * SGI UV Broadcast Assist Unit definitions | ||
7 | * | ||
8 | * Copyright (C) 2008 Silicon Graphics, Inc. All rights reserved. | ||
9 | */ | ||
10 | |||
11 | #ifndef _ASM_X86_UV_UV_BAU_H | ||
12 | #define _ASM_X86_UV_UV_BAU_H | ||
13 | |||
14 | #include <linux/bitmap.h> | ||
15 | #define BITSPERBYTE 8 | ||
16 | |||
17 | /* | ||
18 | * Broadcast Assist Unit messaging structures | ||
19 | * | ||
20 | * Selective Broadcast activations are induced by software action | ||
21 | * specifying a particular 8-descriptor "set" via a 6-bit index written | ||
22 | * to an MMR. | ||
23 | * Thus there are 64 unique 512-byte sets of SB descriptors - one set for | ||
24 | * each 6-bit index value. These descriptor sets are mapped in sequence | ||
25 | * starting with set 0 located at the address specified in the | ||
26 | * BAU_SB_DESCRIPTOR_BASE register, set 1 is located at BASE + 512, | ||
27 | * set 2 is at BASE + 2*512, set 3 at BASE + 3*512, and so on. | ||
28 | * | ||
29 | * We will use 31 sets, one for sending BAU messages from each of the 32 | ||
30 | * cpu's on the node. | ||
31 | * | ||
32 | * TLB shootdown will use the first of the 8 descriptors of each set. | ||
33 | * Each of the descriptors is 64 bytes in size (8*64 = 512 bytes in a set). | ||
34 | */ | ||
35 | |||
36 | #define UV_ITEMS_PER_DESCRIPTOR 8 | ||
37 | #define UV_CPUS_PER_ACT_STATUS 32 | ||
38 | #define UV_ACT_STATUS_MASK 0x3 | ||
39 | #define UV_ACT_STATUS_SIZE 2 | ||
40 | #define UV_ACTIVATION_DESCRIPTOR_SIZE 32 | ||
41 | #define UV_DISTRIBUTION_SIZE 256 | ||
42 | #define UV_SW_ACK_NPENDING 8 | ||
43 | #define UV_NET_ENDPOINT_INTD 0x38 | ||
44 | #define UV_DESC_BASE_PNODE_SHIFT 49 | ||
45 | #define UV_PAYLOADQ_PNODE_SHIFT 49 | ||
46 | #define UV_PTC_BASENAME "sgi_uv/ptc_statistics" | ||
47 | #define uv_physnodeaddr(x) ((__pa((unsigned long)(x)) & uv_mmask)) | ||
48 | |||
49 | /* | ||
50 | * bits in UVH_LB_BAU_SB_ACTIVATION_STATUS_0/1 | ||
51 | */ | ||
52 | #define DESC_STATUS_IDLE 0 | ||
53 | #define DESC_STATUS_ACTIVE 1 | ||
54 | #define DESC_STATUS_DESTINATION_TIMEOUT 2 | ||
55 | #define DESC_STATUS_SOURCE_TIMEOUT 3 | ||
56 | |||
57 | /* | ||
58 | * source side threshholds at which message retries print a warning | ||
59 | */ | ||
60 | #define SOURCE_TIMEOUT_LIMIT 20 | ||
61 | #define DESTINATION_TIMEOUT_LIMIT 20 | ||
62 | |||
63 | /* | ||
64 | * number of entries in the destination side payload queue | ||
65 | */ | ||
66 | #define DEST_Q_SIZE 17 | ||
67 | /* | ||
68 | * number of destination side software ack resources | ||
69 | */ | ||
70 | #define DEST_NUM_RESOURCES 8 | ||
71 | #define MAX_CPUS_PER_NODE 32 | ||
72 | /* | ||
73 | * completion statuses for sending a TLB flush message | ||
74 | */ | ||
75 | #define FLUSH_RETRY 1 | ||
76 | #define FLUSH_GIVEUP 2 | ||
77 | #define FLUSH_COMPLETE 3 | ||
78 | |||
79 | /* | ||
80 | * Distribution: 32 bytes (256 bits) (bytes 0-0x1f of descriptor) | ||
81 | * If the 'multilevel' flag in the header portion of the descriptor | ||
82 | * has been set to 0, then endpoint multi-unicast mode is selected. | ||
83 | * The distribution specification (32 bytes) is interpreted as a 256-bit | ||
84 | * distribution vector. Adjacent bits correspond to consecutive even numbered | ||
85 | * nodeIDs. The result of adding the index of a given bit to the 15-bit | ||
86 | * 'base_dest_nodeid' field of the header corresponds to the | ||
87 | * destination nodeID associated with that specified bit. | ||
88 | */ | ||
89 | struct bau_target_nodemask { | ||
90 | unsigned long bits[BITS_TO_LONGS(256)]; | ||
91 | }; | ||
92 | |||
93 | /* | ||
94 | * mask of cpu's on a node | ||
95 | * (during initialization we need to check that unsigned long has | ||
96 | * enough bits for max. cpu's per node) | ||
97 | */ | ||
98 | struct bau_local_cpumask { | ||
99 | unsigned long bits; | ||
100 | }; | ||
101 | |||
102 | /* | ||
103 | * Payload: 16 bytes (128 bits) (bytes 0x20-0x2f of descriptor) | ||
104 | * only 12 bytes (96 bits) of the payload area are usable. | ||
105 | * An additional 3 bytes (bits 27:4) of the header address are carried | ||
106 | * to the next bytes of the destination payload queue. | ||
107 | * And an additional 2 bytes of the header Suppl_A field are also | ||
108 | * carried to the destination payload queue. | ||
109 | * But the first byte of the Suppl_A becomes bits 127:120 (the 16th byte) | ||
110 | * of the destination payload queue, which is written by the hardware | ||
111 | * with the s/w ack resource bit vector. | ||
112 | * [ effective message contents (16 bytes (128 bits) maximum), not counting | ||
113 | * the s/w ack bit vector ] | ||
114 | */ | ||
115 | |||
116 | /* | ||
117 | * The payload is software-defined for INTD transactions | ||
118 | */ | ||
119 | struct bau_msg_payload { | ||
120 | unsigned long address; /* signifies a page or all TLB's | ||
121 | of the cpu */ | ||
122 | /* 64 bits */ | ||
123 | unsigned short sending_cpu; /* filled in by sender */ | ||
124 | /* 16 bits */ | ||
125 | unsigned short acknowledge_count;/* filled in by destination */ | ||
126 | /* 16 bits */ | ||
127 | unsigned int reserved1:32; /* not usable */ | ||
128 | }; | ||
129 | |||
130 | |||
131 | /* | ||
132 | * Message header: 16 bytes (128 bits) (bytes 0x30-0x3f of descriptor) | ||
133 | * see table 4.2.3.0.1 in broacast_assist spec. | ||
134 | */ | ||
135 | struct bau_msg_header { | ||
136 | int dest_subnodeid:6; /* must be zero */ | ||
137 | /* bits 5:0 */ | ||
138 | int base_dest_nodeid:15; /* nasid>>1 (pnode) of first bit in node_map */ | ||
139 | /* bits 20:6 */ | ||
140 | int command:8; /* message type */ | ||
141 | /* bits 28:21 */ | ||
142 | /* 0x38: SN3net EndPoint Message */ | ||
143 | int rsvd_1:3; /* must be zero */ | ||
144 | /* bits 31:29 */ | ||
145 | /* int will align on 32 bits */ | ||
146 | int rsvd_2:9; /* must be zero */ | ||
147 | /* bits 40:32 */ | ||
148 | /* Suppl_A is 56-41 */ | ||
149 | int payload_2a:8; /* becomes byte 16 of msg */ | ||
150 | /* bits 48:41 */ /* not currently using */ | ||
151 | int payload_2b:8; /* becomes byte 17 of msg */ | ||
152 | /* bits 56:49 */ /* not currently using */ | ||
153 | /* Address field (96:57) is never used as an | ||
154 | address (these are address bits 42:3) */ | ||
155 | int rsvd_3:1; /* must be zero */ | ||
156 | /* bit 57 */ | ||
157 | /* address bits 27:4 are payload */ | ||
158 | /* these 24 bits become bytes 12-14 of msg */ | ||
159 | int replied_to:1; /* sent as 0 by the source to byte 12 */ | ||
160 | /* bit 58 */ | ||
161 | |||
162 | int payload_1a:5; /* not currently used */ | ||
163 | /* bits 63:59 */ | ||
164 | int payload_1b:8; /* not currently used */ | ||
165 | /* bits 71:64 */ | ||
166 | int payload_1c:8; /* not currently used */ | ||
167 | /* bits 79:72 */ | ||
168 | int payload_1d:2; /* not currently used */ | ||
169 | /* bits 81:80 */ | ||
170 | |||
171 | int rsvd_4:7; /* must be zero */ | ||
172 | /* bits 88:82 */ | ||
173 | int sw_ack_flag:1; /* software acknowledge flag */ | ||
174 | /* bit 89 */ | ||
175 | /* INTD trasactions at destination are to | ||
176 | wait for software acknowledge */ | ||
177 | int rsvd_5:6; /* must be zero */ | ||
178 | /* bits 95:90 */ | ||
179 | int rsvd_6:5; /* must be zero */ | ||
180 | /* bits 100:96 */ | ||
181 | int int_both:1; /* if 1, interrupt both sockets on the blade */ | ||
182 | /* bit 101*/ | ||
183 | int fairness:3; /* usually zero */ | ||
184 | /* bits 104:102 */ | ||
185 | int multilevel:1; /* multi-level multicast format */ | ||
186 | /* bit 105 */ | ||
187 | /* 0 for TLB: endpoint multi-unicast messages */ | ||
188 | int chaining:1; /* next descriptor is part of this activation*/ | ||
189 | /* bit 106 */ | ||
190 | int rsvd_7:21; /* must be zero */ | ||
191 | /* bits 127:107 */ | ||
192 | }; | ||
193 | |||
194 | /* | ||
195 | * The activation descriptor: | ||
196 | * The format of the message to send, plus all accompanying control | ||
197 | * Should be 64 bytes | ||
198 | */ | ||
199 | struct bau_desc { | ||
200 | struct bau_target_nodemask distribution; | ||
201 | /* | ||
202 | * message template, consisting of header and payload: | ||
203 | */ | ||
204 | struct bau_msg_header header; | ||
205 | struct bau_msg_payload payload; | ||
206 | }; | ||
207 | /* | ||
208 | * -payload-- ---------header------ | ||
209 | * bytes 0-11 bits 41-56 bits 58-81 | ||
210 | * A B (2) C (3) | ||
211 | * | ||
212 | * A/B/C are moved to: | ||
213 | * A C B | ||
214 | * bytes 0-11 bytes 12-14 bytes 16-17 (byte 15 filled in by hw as vector) | ||
215 | * ------------payload queue----------- | ||
216 | */ | ||
217 | |||
218 | /* | ||
219 | * The payload queue on the destination side is an array of these. | ||
220 | * With BAU_MISC_CONTROL set for software acknowledge mode, the messages | ||
221 | * are 32 bytes (2 micropackets) (256 bits) in length, but contain only 17 | ||
222 | * bytes of usable data, including the sw ack vector in byte 15 (bits 127:120) | ||
223 | * (12 bytes come from bau_msg_payload, 3 from payload_1, 2 from | ||
224 | * sw_ack_vector and payload_2) | ||
225 | * "Enabling Software Acknowledgment mode (see Section 4.3.3 Software | ||
226 | * Acknowledge Processing) also selects 32 byte (17 bytes usable) payload | ||
227 | * operation." | ||
228 | */ | ||
229 | struct bau_payload_queue_entry { | ||
230 | unsigned long address; /* signifies a page or all TLB's | ||
231 | of the cpu */ | ||
232 | /* 64 bits, bytes 0-7 */ | ||
233 | |||
234 | unsigned short sending_cpu; /* cpu that sent the message */ | ||
235 | /* 16 bits, bytes 8-9 */ | ||
236 | |||
237 | unsigned short acknowledge_count; /* filled in by destination */ | ||
238 | /* 16 bits, bytes 10-11 */ | ||
239 | |||
240 | unsigned short replied_to:1; /* sent as 0 by the source */ | ||
241 | /* 1 bit */ | ||
242 | unsigned short unused1:7; /* not currently using */ | ||
243 | /* 7 bits: byte 12) */ | ||
244 | |||
245 | unsigned char unused2[2]; /* not currently using */ | ||
246 | /* bytes 13-14 */ | ||
247 | |||
248 | unsigned char sw_ack_vector; /* filled in by the hardware */ | ||
249 | /* byte 15 (bits 127:120) */ | ||
250 | |||
251 | unsigned char unused4[3]; /* not currently using bytes 17-19 */ | ||
252 | /* bytes 17-19 */ | ||
253 | |||
254 | int number_of_cpus; /* filled in at destination */ | ||
255 | /* 32 bits, bytes 20-23 (aligned) */ | ||
256 | |||
257 | unsigned char unused5[8]; /* not using */ | ||
258 | /* bytes 24-31 */ | ||
259 | }; | ||
260 | |||
261 | /* | ||
262 | * one for every slot in the destination payload queue | ||
263 | */ | ||
264 | struct bau_msg_status { | ||
265 | struct bau_local_cpumask seen_by; /* map of cpu's */ | ||
266 | }; | ||
267 | |||
268 | /* | ||
269 | * one for every slot in the destination software ack resources | ||
270 | */ | ||
271 | struct bau_sw_ack_status { | ||
272 | struct bau_payload_queue_entry *msg; /* associated message */ | ||
273 | int watcher; /* cpu monitoring, or -1 */ | ||
274 | }; | ||
275 | |||
276 | /* | ||
277 | * one on every node and per-cpu; to locate the software tables | ||
278 | */ | ||
279 | struct bau_control { | ||
280 | struct bau_desc *descriptor_base; | ||
281 | struct bau_payload_queue_entry *bau_msg_head; | ||
282 | struct bau_payload_queue_entry *va_queue_first; | ||
283 | struct bau_payload_queue_entry *va_queue_last; | ||
284 | struct bau_msg_status *msg_statuses; | ||
285 | int *watching; /* pointer to array */ | ||
286 | }; | ||
287 | |||
288 | /* | ||
289 | * This structure is allocated per_cpu for UV TLB shootdown statistics. | ||
290 | */ | ||
291 | struct ptc_stats { | ||
292 | unsigned long ptc_i; /* number of IPI-style flushes */ | ||
293 | unsigned long requestor; /* number of nodes this cpu sent to */ | ||
294 | unsigned long requestee; /* times cpu was remotely requested */ | ||
295 | unsigned long alltlb; /* times all tlb's on this cpu were flushed */ | ||
296 | unsigned long onetlb; /* times just one tlb on this cpu was flushed */ | ||
297 | unsigned long s_retry; /* retries on source side timeouts */ | ||
298 | unsigned long d_retry; /* retries on destination side timeouts */ | ||
299 | unsigned long sflush; /* cycles spent in uv_flush_tlb_others */ | ||
300 | unsigned long dflush; /* cycles spent on destination side */ | ||
301 | unsigned long retriesok; /* successes on retries */ | ||
302 | unsigned long nomsg; /* interrupts with no message */ | ||
303 | unsigned long multmsg; /* interrupts with multiple messages */ | ||
304 | unsigned long ntargeted;/* nodes targeted */ | ||
305 | }; | ||
306 | |||
307 | static inline int bau_node_isset(int node, struct bau_target_nodemask *dstp) | ||
308 | { | ||
309 | return constant_test_bit(node, &dstp->bits[0]); | ||
310 | } | ||
311 | static inline void bau_node_set(int node, struct bau_target_nodemask *dstp) | ||
312 | { | ||
313 | __set_bit(node, &dstp->bits[0]); | ||
314 | } | ||
315 | static inline void bau_nodes_clear(struct bau_target_nodemask *dstp, int nbits) | ||
316 | { | ||
317 | bitmap_zero(&dstp->bits[0], nbits); | ||
318 | } | ||
319 | |||
320 | static inline void bau_cpubits_clear(struct bau_local_cpumask *dstp, int nbits) | ||
321 | { | ||
322 | bitmap_zero(&dstp->bits, nbits); | ||
323 | } | ||
324 | |||
325 | #define cpubit_isset(cpu, bau_local_cpumask) \ | ||
326 | test_bit((cpu), (bau_local_cpumask).bits) | ||
327 | |||
328 | extern int uv_flush_tlb_others(cpumask_t *, struct mm_struct *, unsigned long); | ||
329 | extern void uv_bau_message_intr1(void); | ||
330 | extern void uv_bau_timeout_intr1(void); | ||
331 | |||
332 | #endif /* _ASM_X86_UV_UV_BAU_H */ | ||
diff --git a/arch/x86/include/asm/uv/uv_hub.h b/arch/x86/include/asm/uv/uv_hub.h new file mode 100644 index 000000000000..c6ad93e315c8 --- /dev/null +++ b/arch/x86/include/asm/uv/uv_hub.h | |||
@@ -0,0 +1,354 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * SGI UV architectural definitions | ||
7 | * | ||
8 | * Copyright (C) 2007-2008 Silicon Graphics, Inc. All rights reserved. | ||
9 | */ | ||
10 | |||
11 | #ifndef _ASM_X86_UV_UV_HUB_H | ||
12 | #define _ASM_X86_UV_UV_HUB_H | ||
13 | |||
14 | #include <linux/numa.h> | ||
15 | #include <linux/percpu.h> | ||
16 | #include <asm/types.h> | ||
17 | #include <asm/percpu.h> | ||
18 | |||
19 | |||
20 | /* | ||
21 | * Addressing Terminology | ||
22 | * | ||
23 | * M - The low M bits of a physical address represent the offset | ||
24 | * into the blade local memory. RAM memory on a blade is physically | ||
25 | * contiguous (although various IO spaces may punch holes in | ||
26 | * it).. | ||
27 | * | ||
28 | * N - Number of bits in the node portion of a socket physical | ||
29 | * address. | ||
30 | * | ||
31 | * NASID - network ID of a router, Mbrick or Cbrick. Nasid values of | ||
32 | * routers always have low bit of 1, C/MBricks have low bit | ||
33 | * equal to 0. Most addressing macros that target UV hub chips | ||
34 | * right shift the NASID by 1 to exclude the always-zero bit. | ||
35 | * NASIDs contain up to 15 bits. | ||
36 | * | ||
37 | * GNODE - NASID right shifted by 1 bit. Most mmrs contain gnodes instead | ||
38 | * of nasids. | ||
39 | * | ||
40 | * PNODE - the low N bits of the GNODE. The PNODE is the most useful variant | ||
41 | * of the nasid for socket usage. | ||
42 | * | ||
43 | * | ||
44 | * NumaLink Global Physical Address Format: | ||
45 | * +--------------------------------+---------------------+ | ||
46 | * |00..000| GNODE | NodeOffset | | ||
47 | * +--------------------------------+---------------------+ | ||
48 | * |<-------53 - M bits --->|<--------M bits -----> | ||
49 | * | ||
50 | * M - number of node offset bits (35 .. 40) | ||
51 | * | ||
52 | * | ||
53 | * Memory/UV-HUB Processor Socket Address Format: | ||
54 | * +----------------+---------------+---------------------+ | ||
55 | * |00..000000000000| PNODE | NodeOffset | | ||
56 | * +----------------+---------------+---------------------+ | ||
57 | * <--- N bits --->|<--------M bits -----> | ||
58 | * | ||
59 | * M - number of node offset bits (35 .. 40) | ||
60 | * N - number of PNODE bits (0 .. 10) | ||
61 | * | ||
62 | * Note: M + N cannot currently exceed 44 (x86_64) or 46 (IA64). | ||
63 | * The actual values are configuration dependent and are set at | ||
64 | * boot time. M & N values are set by the hardware/BIOS at boot. | ||
65 | * | ||
66 | * | ||
67 | * APICID format | ||
68 | * NOTE!!!!!! This is the current format of the APICID. However, code | ||
69 | * should assume that this will change in the future. Use functions | ||
70 | * in this file for all APICID bit manipulations and conversion. | ||
71 | * | ||
72 | * 1111110000000000 | ||
73 | * 5432109876543210 | ||
74 | * pppppppppplc0cch | ||
75 | * sssssssssss | ||
76 | * | ||
77 | * p = pnode bits | ||
78 | * l = socket number on board | ||
79 | * c = core | ||
80 | * h = hyperthread | ||
81 | * s = bits that are in the SOCKET_ID CSR | ||
82 | * | ||
83 | * Note: Processor only supports 12 bits in the APICID register. The ACPI | ||
84 | * tables hold all 16 bits. Software needs to be aware of this. | ||
85 | * | ||
86 | * Unless otherwise specified, all references to APICID refer to | ||
87 | * the FULL value contained in ACPI tables, not the subset in the | ||
88 | * processor APICID register. | ||
89 | */ | ||
90 | |||
91 | |||
92 | /* | ||
93 | * Maximum number of bricks in all partitions and in all coherency domains. | ||
94 | * This is the total number of bricks accessible in the numalink fabric. It | ||
95 | * includes all C & M bricks. Routers are NOT included. | ||
96 | * | ||
97 | * This value is also the value of the maximum number of non-router NASIDs | ||
98 | * in the numalink fabric. | ||
99 | * | ||
100 | * NOTE: a brick may contain 1 or 2 OS nodes. Don't get these confused. | ||
101 | */ | ||
102 | #define UV_MAX_NUMALINK_BLADES 16384 | ||
103 | |||
104 | /* | ||
105 | * Maximum number of C/Mbricks within a software SSI (hardware may support | ||
106 | * more). | ||
107 | */ | ||
108 | #define UV_MAX_SSI_BLADES 256 | ||
109 | |||
110 | /* | ||
111 | * The largest possible NASID of a C or M brick (+ 2) | ||
112 | */ | ||
113 | #define UV_MAX_NASID_VALUE (UV_MAX_NUMALINK_NODES * 2) | ||
114 | |||
115 | /* | ||
116 | * The following defines attributes of the HUB chip. These attributes are | ||
117 | * frequently referenced and are kept in the per-cpu data areas of each cpu. | ||
118 | * They are kept together in a struct to minimize cache misses. | ||
119 | */ | ||
120 | struct uv_hub_info_s { | ||
121 | unsigned long global_mmr_base; | ||
122 | unsigned long gpa_mask; | ||
123 | unsigned long gnode_upper; | ||
124 | unsigned long lowmem_remap_top; | ||
125 | unsigned long lowmem_remap_base; | ||
126 | unsigned short pnode; | ||
127 | unsigned short pnode_mask; | ||
128 | unsigned short coherency_domain_number; | ||
129 | unsigned short numa_blade_id; | ||
130 | unsigned char blade_processor_id; | ||
131 | unsigned char m_val; | ||
132 | unsigned char n_val; | ||
133 | }; | ||
134 | DECLARE_PER_CPU(struct uv_hub_info_s, __uv_hub_info); | ||
135 | #define uv_hub_info (&__get_cpu_var(__uv_hub_info)) | ||
136 | #define uv_cpu_hub_info(cpu) (&per_cpu(__uv_hub_info, cpu)) | ||
137 | |||
138 | /* | ||
139 | * Local & Global MMR space macros. | ||
140 | * Note: macros are intended to be used ONLY by inline functions | ||
141 | * in this file - not by other kernel code. | ||
142 | * n - NASID (full 15-bit global nasid) | ||
143 | * g - GNODE (full 15-bit global nasid, right shifted 1) | ||
144 | * p - PNODE (local part of nsids, right shifted 1) | ||
145 | */ | ||
146 | #define UV_NASID_TO_PNODE(n) (((n) >> 1) & uv_hub_info->pnode_mask) | ||
147 | #define UV_PNODE_TO_NASID(p) (((p) << 1) | uv_hub_info->gnode_upper) | ||
148 | |||
149 | #define UV_LOCAL_MMR_BASE 0xf4000000UL | ||
150 | #define UV_GLOBAL_MMR32_BASE 0xf8000000UL | ||
151 | #define UV_GLOBAL_MMR64_BASE (uv_hub_info->global_mmr_base) | ||
152 | #define UV_LOCAL_MMR_SIZE (64UL * 1024 * 1024) | ||
153 | #define UV_GLOBAL_MMR32_SIZE (64UL * 1024 * 1024) | ||
154 | |||
155 | #define UV_GLOBAL_MMR32_PNODE_SHIFT 15 | ||
156 | #define UV_GLOBAL_MMR64_PNODE_SHIFT 26 | ||
157 | |||
158 | #define UV_GLOBAL_MMR32_PNODE_BITS(p) ((p) << (UV_GLOBAL_MMR32_PNODE_SHIFT)) | ||
159 | |||
160 | #define UV_GLOBAL_MMR64_PNODE_BITS(p) \ | ||
161 | ((unsigned long)(p) << UV_GLOBAL_MMR64_PNODE_SHIFT) | ||
162 | |||
163 | #define UV_APIC_PNODE_SHIFT 6 | ||
164 | |||
165 | /* | ||
166 | * Macros for converting between kernel virtual addresses, socket local physical | ||
167 | * addresses, and UV global physical addresses. | ||
168 | * Note: use the standard __pa() & __va() macros for converting | ||
169 | * between socket virtual and socket physical addresses. | ||
170 | */ | ||
171 | |||
172 | /* socket phys RAM --> UV global physical address */ | ||
173 | static inline unsigned long uv_soc_phys_ram_to_gpa(unsigned long paddr) | ||
174 | { | ||
175 | if (paddr < uv_hub_info->lowmem_remap_top) | ||
176 | paddr += uv_hub_info->lowmem_remap_base; | ||
177 | return paddr | uv_hub_info->gnode_upper; | ||
178 | } | ||
179 | |||
180 | |||
181 | /* socket virtual --> UV global physical address */ | ||
182 | static inline unsigned long uv_gpa(void *v) | ||
183 | { | ||
184 | return __pa(v) | uv_hub_info->gnode_upper; | ||
185 | } | ||
186 | |||
187 | /* socket virtual --> UV global physical address */ | ||
188 | static inline void *uv_vgpa(void *v) | ||
189 | { | ||
190 | return (void *)uv_gpa(v); | ||
191 | } | ||
192 | |||
193 | /* UV global physical address --> socket virtual */ | ||
194 | static inline void *uv_va(unsigned long gpa) | ||
195 | { | ||
196 | return __va(gpa & uv_hub_info->gpa_mask); | ||
197 | } | ||
198 | |||
199 | /* pnode, offset --> socket virtual */ | ||
200 | static inline void *uv_pnode_offset_to_vaddr(int pnode, unsigned long offset) | ||
201 | { | ||
202 | return __va(((unsigned long)pnode << uv_hub_info->m_val) | offset); | ||
203 | } | ||
204 | |||
205 | |||
206 | /* | ||
207 | * Extract a PNODE from an APICID (full apicid, not processor subset) | ||
208 | */ | ||
209 | static inline int uv_apicid_to_pnode(int apicid) | ||
210 | { | ||
211 | return (apicid >> UV_APIC_PNODE_SHIFT); | ||
212 | } | ||
213 | |||
214 | /* | ||
215 | * Access global MMRs using the low memory MMR32 space. This region supports | ||
216 | * faster MMR access but not all MMRs are accessible in this space. | ||
217 | */ | ||
218 | static inline unsigned long *uv_global_mmr32_address(int pnode, | ||
219 | unsigned long offset) | ||
220 | { | ||
221 | return __va(UV_GLOBAL_MMR32_BASE | | ||
222 | UV_GLOBAL_MMR32_PNODE_BITS(pnode) | offset); | ||
223 | } | ||
224 | |||
225 | static inline void uv_write_global_mmr32(int pnode, unsigned long offset, | ||
226 | unsigned long val) | ||
227 | { | ||
228 | *uv_global_mmr32_address(pnode, offset) = val; | ||
229 | } | ||
230 | |||
231 | static inline unsigned long uv_read_global_mmr32(int pnode, | ||
232 | unsigned long offset) | ||
233 | { | ||
234 | return *uv_global_mmr32_address(pnode, offset); | ||
235 | } | ||
236 | |||
237 | /* | ||
238 | * Access Global MMR space using the MMR space located at the top of physical | ||
239 | * memory. | ||
240 | */ | ||
241 | static inline unsigned long *uv_global_mmr64_address(int pnode, | ||
242 | unsigned long offset) | ||
243 | { | ||
244 | return __va(UV_GLOBAL_MMR64_BASE | | ||
245 | UV_GLOBAL_MMR64_PNODE_BITS(pnode) | offset); | ||
246 | } | ||
247 | |||
248 | static inline void uv_write_global_mmr64(int pnode, unsigned long offset, | ||
249 | unsigned long val) | ||
250 | { | ||
251 | *uv_global_mmr64_address(pnode, offset) = val; | ||
252 | } | ||
253 | |||
254 | static inline unsigned long uv_read_global_mmr64(int pnode, | ||
255 | unsigned long offset) | ||
256 | { | ||
257 | return *uv_global_mmr64_address(pnode, offset); | ||
258 | } | ||
259 | |||
260 | /* | ||
261 | * Access hub local MMRs. Faster than using global space but only local MMRs | ||
262 | * are accessible. | ||
263 | */ | ||
264 | static inline unsigned long *uv_local_mmr_address(unsigned long offset) | ||
265 | { | ||
266 | return __va(UV_LOCAL_MMR_BASE | offset); | ||
267 | } | ||
268 | |||
269 | static inline unsigned long uv_read_local_mmr(unsigned long offset) | ||
270 | { | ||
271 | return *uv_local_mmr_address(offset); | ||
272 | } | ||
273 | |||
274 | static inline void uv_write_local_mmr(unsigned long offset, unsigned long val) | ||
275 | { | ||
276 | *uv_local_mmr_address(offset) = val; | ||
277 | } | ||
278 | |||
279 | /* | ||
280 | * Structures and definitions for converting between cpu, node, pnode, and blade | ||
281 | * numbers. | ||
282 | */ | ||
283 | struct uv_blade_info { | ||
284 | unsigned short nr_possible_cpus; | ||
285 | unsigned short nr_online_cpus; | ||
286 | unsigned short pnode; | ||
287 | }; | ||
288 | extern struct uv_blade_info *uv_blade_info; | ||
289 | extern short *uv_node_to_blade; | ||
290 | extern short *uv_cpu_to_blade; | ||
291 | extern short uv_possible_blades; | ||
292 | |||
293 | /* Blade-local cpu number of current cpu. Numbered 0 .. <# cpus on the blade> */ | ||
294 | static inline int uv_blade_processor_id(void) | ||
295 | { | ||
296 | return uv_hub_info->blade_processor_id; | ||
297 | } | ||
298 | |||
299 | /* Blade number of current cpu. Numnbered 0 .. <#blades -1> */ | ||
300 | static inline int uv_numa_blade_id(void) | ||
301 | { | ||
302 | return uv_hub_info->numa_blade_id; | ||
303 | } | ||
304 | |||
305 | /* Convert a cpu number to the the UV blade number */ | ||
306 | static inline int uv_cpu_to_blade_id(int cpu) | ||
307 | { | ||
308 | return uv_cpu_to_blade[cpu]; | ||
309 | } | ||
310 | |||
311 | /* Convert linux node number to the UV blade number */ | ||
312 | static inline int uv_node_to_blade_id(int nid) | ||
313 | { | ||
314 | return uv_node_to_blade[nid]; | ||
315 | } | ||
316 | |||
317 | /* Convert a blade id to the PNODE of the blade */ | ||
318 | static inline int uv_blade_to_pnode(int bid) | ||
319 | { | ||
320 | return uv_blade_info[bid].pnode; | ||
321 | } | ||
322 | |||
323 | /* Determine the number of possible cpus on a blade */ | ||
324 | static inline int uv_blade_nr_possible_cpus(int bid) | ||
325 | { | ||
326 | return uv_blade_info[bid].nr_possible_cpus; | ||
327 | } | ||
328 | |||
329 | /* Determine the number of online cpus on a blade */ | ||
330 | static inline int uv_blade_nr_online_cpus(int bid) | ||
331 | { | ||
332 | return uv_blade_info[bid].nr_online_cpus; | ||
333 | } | ||
334 | |||
335 | /* Convert a cpu id to the PNODE of the blade containing the cpu */ | ||
336 | static inline int uv_cpu_to_pnode(int cpu) | ||
337 | { | ||
338 | return uv_blade_info[uv_cpu_to_blade_id(cpu)].pnode; | ||
339 | } | ||
340 | |||
341 | /* Convert a linux node number to the PNODE of the blade */ | ||
342 | static inline int uv_node_to_pnode(int nid) | ||
343 | { | ||
344 | return uv_blade_info[uv_node_to_blade_id(nid)].pnode; | ||
345 | } | ||
346 | |||
347 | /* Maximum possible number of blades */ | ||
348 | static inline int uv_num_possible_blades(void) | ||
349 | { | ||
350 | return uv_possible_blades; | ||
351 | } | ||
352 | |||
353 | #endif /* _ASM_X86_UV_UV_HUB_H */ | ||
354 | |||
diff --git a/arch/x86/include/asm/uv/uv_irq.h b/arch/x86/include/asm/uv/uv_irq.h new file mode 100644 index 000000000000..9613c8c0b647 --- /dev/null +++ b/arch/x86/include/asm/uv/uv_irq.h | |||
@@ -0,0 +1,36 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * SGI UV IRQ definitions | ||
7 | * | ||
8 | * Copyright (C) 2008 Silicon Graphics, Inc. All rights reserved. | ||
9 | */ | ||
10 | |||
11 | #ifndef _ASM_X86_UV_UV_IRQ_H | ||
12 | #define _ASM_X86_UV_UV_IRQ_H | ||
13 | |||
14 | /* If a generic version of this structure gets defined, eliminate this one. */ | ||
15 | struct uv_IO_APIC_route_entry { | ||
16 | __u64 vector : 8, | ||
17 | delivery_mode : 3, | ||
18 | dest_mode : 1, | ||
19 | delivery_status : 1, | ||
20 | polarity : 1, | ||
21 | __reserved_1 : 1, | ||
22 | trigger : 1, | ||
23 | mask : 1, | ||
24 | __reserved_2 : 15, | ||
25 | dest : 32; | ||
26 | }; | ||
27 | |||
28 | extern struct irq_chip uv_irq_chip; | ||
29 | |||
30 | extern int arch_enable_uv_irq(char *, unsigned int, int, int, unsigned long); | ||
31 | extern void arch_disable_uv_irq(int, unsigned long); | ||
32 | |||
33 | extern int uv_setup_irq(char *, int, int, unsigned long); | ||
34 | extern void uv_teardown_irq(unsigned int, int, unsigned long); | ||
35 | |||
36 | #endif /* _ASM_X86_UV_UV_IRQ_H */ | ||
diff --git a/arch/x86/include/asm/uv/uv_mmrs.h b/arch/x86/include/asm/uv/uv_mmrs.h new file mode 100644 index 000000000000..dd627793a234 --- /dev/null +++ b/arch/x86/include/asm/uv/uv_mmrs.h | |||
@@ -0,0 +1,1295 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * SGI UV MMR definitions | ||
7 | * | ||
8 | * Copyright (C) 2007-2008 Silicon Graphics, Inc. All rights reserved. | ||
9 | */ | ||
10 | |||
11 | #ifndef _ASM_X86_UV_UV_MMRS_H | ||
12 | #define _ASM_X86_UV_UV_MMRS_H | ||
13 | |||
14 | #define UV_MMR_ENABLE (1UL << 63) | ||
15 | |||
16 | /* ========================================================================= */ | ||
17 | /* UVH_BAU_DATA_CONFIG */ | ||
18 | /* ========================================================================= */ | ||
19 | #define UVH_BAU_DATA_CONFIG 0x61680UL | ||
20 | #define UVH_BAU_DATA_CONFIG_32 0x0438 | ||
21 | |||
22 | #define UVH_BAU_DATA_CONFIG_VECTOR_SHFT 0 | ||
23 | #define UVH_BAU_DATA_CONFIG_VECTOR_MASK 0x00000000000000ffUL | ||
24 | #define UVH_BAU_DATA_CONFIG_DM_SHFT 8 | ||
25 | #define UVH_BAU_DATA_CONFIG_DM_MASK 0x0000000000000700UL | ||
26 | #define UVH_BAU_DATA_CONFIG_DESTMODE_SHFT 11 | ||
27 | #define UVH_BAU_DATA_CONFIG_DESTMODE_MASK 0x0000000000000800UL | ||
28 | #define UVH_BAU_DATA_CONFIG_STATUS_SHFT 12 | ||
29 | #define UVH_BAU_DATA_CONFIG_STATUS_MASK 0x0000000000001000UL | ||
30 | #define UVH_BAU_DATA_CONFIG_P_SHFT 13 | ||
31 | #define UVH_BAU_DATA_CONFIG_P_MASK 0x0000000000002000UL | ||
32 | #define UVH_BAU_DATA_CONFIG_T_SHFT 15 | ||
33 | #define UVH_BAU_DATA_CONFIG_T_MASK 0x0000000000008000UL | ||
34 | #define UVH_BAU_DATA_CONFIG_M_SHFT 16 | ||
35 | #define UVH_BAU_DATA_CONFIG_M_MASK 0x0000000000010000UL | ||
36 | #define UVH_BAU_DATA_CONFIG_APIC_ID_SHFT 32 | ||
37 | #define UVH_BAU_DATA_CONFIG_APIC_ID_MASK 0xffffffff00000000UL | ||
38 | |||
39 | union uvh_bau_data_config_u { | ||
40 | unsigned long v; | ||
41 | struct uvh_bau_data_config_s { | ||
42 | unsigned long vector_ : 8; /* RW */ | ||
43 | unsigned long dm : 3; /* RW */ | ||
44 | unsigned long destmode : 1; /* RW */ | ||
45 | unsigned long status : 1; /* RO */ | ||
46 | unsigned long p : 1; /* RO */ | ||
47 | unsigned long rsvd_14 : 1; /* */ | ||
48 | unsigned long t : 1; /* RO */ | ||
49 | unsigned long m : 1; /* RW */ | ||
50 | unsigned long rsvd_17_31: 15; /* */ | ||
51 | unsigned long apic_id : 32; /* RW */ | ||
52 | } s; | ||
53 | }; | ||
54 | |||
55 | /* ========================================================================= */ | ||
56 | /* UVH_EVENT_OCCURRED0 */ | ||
57 | /* ========================================================================= */ | ||
58 | #define UVH_EVENT_OCCURRED0 0x70000UL | ||
59 | #define UVH_EVENT_OCCURRED0_32 0x005e8 | ||
60 | |||
61 | #define UVH_EVENT_OCCURRED0_LB_HCERR_SHFT 0 | ||
62 | #define UVH_EVENT_OCCURRED0_LB_HCERR_MASK 0x0000000000000001UL | ||
63 | #define UVH_EVENT_OCCURRED0_GR0_HCERR_SHFT 1 | ||
64 | #define UVH_EVENT_OCCURRED0_GR0_HCERR_MASK 0x0000000000000002UL | ||
65 | #define UVH_EVENT_OCCURRED0_GR1_HCERR_SHFT 2 | ||
66 | #define UVH_EVENT_OCCURRED0_GR1_HCERR_MASK 0x0000000000000004UL | ||
67 | #define UVH_EVENT_OCCURRED0_LH_HCERR_SHFT 3 | ||
68 | #define UVH_EVENT_OCCURRED0_LH_HCERR_MASK 0x0000000000000008UL | ||
69 | #define UVH_EVENT_OCCURRED0_RH_HCERR_SHFT 4 | ||
70 | #define UVH_EVENT_OCCURRED0_RH_HCERR_MASK 0x0000000000000010UL | ||
71 | #define UVH_EVENT_OCCURRED0_XN_HCERR_SHFT 5 | ||
72 | #define UVH_EVENT_OCCURRED0_XN_HCERR_MASK 0x0000000000000020UL | ||
73 | #define UVH_EVENT_OCCURRED0_SI_HCERR_SHFT 6 | ||
74 | #define UVH_EVENT_OCCURRED0_SI_HCERR_MASK 0x0000000000000040UL | ||
75 | #define UVH_EVENT_OCCURRED0_LB_AOERR0_SHFT 7 | ||
76 | #define UVH_EVENT_OCCURRED0_LB_AOERR0_MASK 0x0000000000000080UL | ||
77 | #define UVH_EVENT_OCCURRED0_GR0_AOERR0_SHFT 8 | ||
78 | #define UVH_EVENT_OCCURRED0_GR0_AOERR0_MASK 0x0000000000000100UL | ||
79 | #define UVH_EVENT_OCCURRED0_GR1_AOERR0_SHFT 9 | ||
80 | #define UVH_EVENT_OCCURRED0_GR1_AOERR0_MASK 0x0000000000000200UL | ||
81 | #define UVH_EVENT_OCCURRED0_LH_AOERR0_SHFT 10 | ||
82 | #define UVH_EVENT_OCCURRED0_LH_AOERR0_MASK 0x0000000000000400UL | ||
83 | #define UVH_EVENT_OCCURRED0_RH_AOERR0_SHFT 11 | ||
84 | #define UVH_EVENT_OCCURRED0_RH_AOERR0_MASK 0x0000000000000800UL | ||
85 | #define UVH_EVENT_OCCURRED0_XN_AOERR0_SHFT 12 | ||
86 | #define UVH_EVENT_OCCURRED0_XN_AOERR0_MASK 0x0000000000001000UL | ||
87 | #define UVH_EVENT_OCCURRED0_SI_AOERR0_SHFT 13 | ||
88 | #define UVH_EVENT_OCCURRED0_SI_AOERR0_MASK 0x0000000000002000UL | ||
89 | #define UVH_EVENT_OCCURRED0_LB_AOERR1_SHFT 14 | ||
90 | #define UVH_EVENT_OCCURRED0_LB_AOERR1_MASK 0x0000000000004000UL | ||
91 | #define UVH_EVENT_OCCURRED0_GR0_AOERR1_SHFT 15 | ||
92 | #define UVH_EVENT_OCCURRED0_GR0_AOERR1_MASK 0x0000000000008000UL | ||
93 | #define UVH_EVENT_OCCURRED0_GR1_AOERR1_SHFT 16 | ||
94 | #define UVH_EVENT_OCCURRED0_GR1_AOERR1_MASK 0x0000000000010000UL | ||
95 | #define UVH_EVENT_OCCURRED0_LH_AOERR1_SHFT 17 | ||
96 | #define UVH_EVENT_OCCURRED0_LH_AOERR1_MASK 0x0000000000020000UL | ||
97 | #define UVH_EVENT_OCCURRED0_RH_AOERR1_SHFT 18 | ||
98 | #define UVH_EVENT_OCCURRED0_RH_AOERR1_MASK 0x0000000000040000UL | ||
99 | #define UVH_EVENT_OCCURRED0_XN_AOERR1_SHFT 19 | ||
100 | #define UVH_EVENT_OCCURRED0_XN_AOERR1_MASK 0x0000000000080000UL | ||
101 | #define UVH_EVENT_OCCURRED0_SI_AOERR1_SHFT 20 | ||
102 | #define UVH_EVENT_OCCURRED0_SI_AOERR1_MASK 0x0000000000100000UL | ||
103 | #define UVH_EVENT_OCCURRED0_RH_VPI_INT_SHFT 21 | ||
104 | #define UVH_EVENT_OCCURRED0_RH_VPI_INT_MASK 0x0000000000200000UL | ||
105 | #define UVH_EVENT_OCCURRED0_SYSTEM_SHUTDOWN_INT_SHFT 22 | ||
106 | #define UVH_EVENT_OCCURRED0_SYSTEM_SHUTDOWN_INT_MASK 0x0000000000400000UL | ||
107 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_0_SHFT 23 | ||
108 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_0_MASK 0x0000000000800000UL | ||
109 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_1_SHFT 24 | ||
110 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_1_MASK 0x0000000001000000UL | ||
111 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_2_SHFT 25 | ||
112 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_2_MASK 0x0000000002000000UL | ||
113 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_3_SHFT 26 | ||
114 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_3_MASK 0x0000000004000000UL | ||
115 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_4_SHFT 27 | ||
116 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_4_MASK 0x0000000008000000UL | ||
117 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_5_SHFT 28 | ||
118 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_5_MASK 0x0000000010000000UL | ||
119 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_6_SHFT 29 | ||
120 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_6_MASK 0x0000000020000000UL | ||
121 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_7_SHFT 30 | ||
122 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_7_MASK 0x0000000040000000UL | ||
123 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_8_SHFT 31 | ||
124 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_8_MASK 0x0000000080000000UL | ||
125 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_9_SHFT 32 | ||
126 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_9_MASK 0x0000000100000000UL | ||
127 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_10_SHFT 33 | ||
128 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_10_MASK 0x0000000200000000UL | ||
129 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_11_SHFT 34 | ||
130 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_11_MASK 0x0000000400000000UL | ||
131 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_12_SHFT 35 | ||
132 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_12_MASK 0x0000000800000000UL | ||
133 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_13_SHFT 36 | ||
134 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_13_MASK 0x0000001000000000UL | ||
135 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_14_SHFT 37 | ||
136 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_14_MASK 0x0000002000000000UL | ||
137 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_15_SHFT 38 | ||
138 | #define UVH_EVENT_OCCURRED0_LB_IRQ_INT_15_MASK 0x0000004000000000UL | ||
139 | #define UVH_EVENT_OCCURRED0_L1_NMI_INT_SHFT 39 | ||
140 | #define UVH_EVENT_OCCURRED0_L1_NMI_INT_MASK 0x0000008000000000UL | ||
141 | #define UVH_EVENT_OCCURRED0_STOP_CLOCK_SHFT 40 | ||
142 | #define UVH_EVENT_OCCURRED0_STOP_CLOCK_MASK 0x0000010000000000UL | ||
143 | #define UVH_EVENT_OCCURRED0_ASIC_TO_L1_SHFT 41 | ||
144 | #define UVH_EVENT_OCCURRED0_ASIC_TO_L1_MASK 0x0000020000000000UL | ||
145 | #define UVH_EVENT_OCCURRED0_L1_TO_ASIC_SHFT 42 | ||
146 | #define UVH_EVENT_OCCURRED0_L1_TO_ASIC_MASK 0x0000040000000000UL | ||
147 | #define UVH_EVENT_OCCURRED0_LTC_INT_SHFT 43 | ||
148 | #define UVH_EVENT_OCCURRED0_LTC_INT_MASK 0x0000080000000000UL | ||
149 | #define UVH_EVENT_OCCURRED0_LA_SEQ_TRIGGER_SHFT 44 | ||
150 | #define UVH_EVENT_OCCURRED0_LA_SEQ_TRIGGER_MASK 0x0000100000000000UL | ||
151 | #define UVH_EVENT_OCCURRED0_IPI_INT_SHFT 45 | ||
152 | #define UVH_EVENT_OCCURRED0_IPI_INT_MASK 0x0000200000000000UL | ||
153 | #define UVH_EVENT_OCCURRED0_EXTIO_INT0_SHFT 46 | ||
154 | #define UVH_EVENT_OCCURRED0_EXTIO_INT0_MASK 0x0000400000000000UL | ||
155 | #define UVH_EVENT_OCCURRED0_EXTIO_INT1_SHFT 47 | ||
156 | #define UVH_EVENT_OCCURRED0_EXTIO_INT1_MASK 0x0000800000000000UL | ||
157 | #define UVH_EVENT_OCCURRED0_EXTIO_INT2_SHFT 48 | ||
158 | #define UVH_EVENT_OCCURRED0_EXTIO_INT2_MASK 0x0001000000000000UL | ||
159 | #define UVH_EVENT_OCCURRED0_EXTIO_INT3_SHFT 49 | ||
160 | #define UVH_EVENT_OCCURRED0_EXTIO_INT3_MASK 0x0002000000000000UL | ||
161 | #define UVH_EVENT_OCCURRED0_PROFILE_INT_SHFT 50 | ||
162 | #define UVH_EVENT_OCCURRED0_PROFILE_INT_MASK 0x0004000000000000UL | ||
163 | #define UVH_EVENT_OCCURRED0_RTC0_SHFT 51 | ||
164 | #define UVH_EVENT_OCCURRED0_RTC0_MASK 0x0008000000000000UL | ||
165 | #define UVH_EVENT_OCCURRED0_RTC1_SHFT 52 | ||
166 | #define UVH_EVENT_OCCURRED0_RTC1_MASK 0x0010000000000000UL | ||
167 | #define UVH_EVENT_OCCURRED0_RTC2_SHFT 53 | ||
168 | #define UVH_EVENT_OCCURRED0_RTC2_MASK 0x0020000000000000UL | ||
169 | #define UVH_EVENT_OCCURRED0_RTC3_SHFT 54 | ||
170 | #define UVH_EVENT_OCCURRED0_RTC3_MASK 0x0040000000000000UL | ||
171 | #define UVH_EVENT_OCCURRED0_BAU_DATA_SHFT 55 | ||
172 | #define UVH_EVENT_OCCURRED0_BAU_DATA_MASK 0x0080000000000000UL | ||
173 | #define UVH_EVENT_OCCURRED0_POWER_MANAGEMENT_REQ_SHFT 56 | ||
174 | #define UVH_EVENT_OCCURRED0_POWER_MANAGEMENT_REQ_MASK 0x0100000000000000UL | ||
175 | union uvh_event_occurred0_u { | ||
176 | unsigned long v; | ||
177 | struct uvh_event_occurred0_s { | ||
178 | unsigned long lb_hcerr : 1; /* RW, W1C */ | ||
179 | unsigned long gr0_hcerr : 1; /* RW, W1C */ | ||
180 | unsigned long gr1_hcerr : 1; /* RW, W1C */ | ||
181 | unsigned long lh_hcerr : 1; /* RW, W1C */ | ||
182 | unsigned long rh_hcerr : 1; /* RW, W1C */ | ||
183 | unsigned long xn_hcerr : 1; /* RW, W1C */ | ||
184 | unsigned long si_hcerr : 1; /* RW, W1C */ | ||
185 | unsigned long lb_aoerr0 : 1; /* RW, W1C */ | ||
186 | unsigned long gr0_aoerr0 : 1; /* RW, W1C */ | ||
187 | unsigned long gr1_aoerr0 : 1; /* RW, W1C */ | ||
188 | unsigned long lh_aoerr0 : 1; /* RW, W1C */ | ||
189 | unsigned long rh_aoerr0 : 1; /* RW, W1C */ | ||
190 | unsigned long xn_aoerr0 : 1; /* RW, W1C */ | ||
191 | unsigned long si_aoerr0 : 1; /* RW, W1C */ | ||
192 | unsigned long lb_aoerr1 : 1; /* RW, W1C */ | ||
193 | unsigned long gr0_aoerr1 : 1; /* RW, W1C */ | ||
194 | unsigned long gr1_aoerr1 : 1; /* RW, W1C */ | ||
195 | unsigned long lh_aoerr1 : 1; /* RW, W1C */ | ||
196 | unsigned long rh_aoerr1 : 1; /* RW, W1C */ | ||
197 | unsigned long xn_aoerr1 : 1; /* RW, W1C */ | ||
198 | unsigned long si_aoerr1 : 1; /* RW, W1C */ | ||
199 | unsigned long rh_vpi_int : 1; /* RW, W1C */ | ||
200 | unsigned long system_shutdown_int : 1; /* RW, W1C */ | ||
201 | unsigned long lb_irq_int_0 : 1; /* RW, W1C */ | ||
202 | unsigned long lb_irq_int_1 : 1; /* RW, W1C */ | ||
203 | unsigned long lb_irq_int_2 : 1; /* RW, W1C */ | ||
204 | unsigned long lb_irq_int_3 : 1; /* RW, W1C */ | ||
205 | unsigned long lb_irq_int_4 : 1; /* RW, W1C */ | ||
206 | unsigned long lb_irq_int_5 : 1; /* RW, W1C */ | ||
207 | unsigned long lb_irq_int_6 : 1; /* RW, W1C */ | ||
208 | unsigned long lb_irq_int_7 : 1; /* RW, W1C */ | ||
209 | unsigned long lb_irq_int_8 : 1; /* RW, W1C */ | ||
210 | unsigned long lb_irq_int_9 : 1; /* RW, W1C */ | ||
211 | unsigned long lb_irq_int_10 : 1; /* RW, W1C */ | ||
212 | unsigned long lb_irq_int_11 : 1; /* RW, W1C */ | ||
213 | unsigned long lb_irq_int_12 : 1; /* RW, W1C */ | ||
214 | unsigned long lb_irq_int_13 : 1; /* RW, W1C */ | ||
215 | unsigned long lb_irq_int_14 : 1; /* RW, W1C */ | ||
216 | unsigned long lb_irq_int_15 : 1; /* RW, W1C */ | ||
217 | unsigned long l1_nmi_int : 1; /* RW, W1C */ | ||
218 | unsigned long stop_clock : 1; /* RW, W1C */ | ||
219 | unsigned long asic_to_l1 : 1; /* RW, W1C */ | ||
220 | unsigned long l1_to_asic : 1; /* RW, W1C */ | ||
221 | unsigned long ltc_int : 1; /* RW, W1C */ | ||
222 | unsigned long la_seq_trigger : 1; /* RW, W1C */ | ||
223 | unsigned long ipi_int : 1; /* RW, W1C */ | ||
224 | unsigned long extio_int0 : 1; /* RW, W1C */ | ||
225 | unsigned long extio_int1 : 1; /* RW, W1C */ | ||
226 | unsigned long extio_int2 : 1; /* RW, W1C */ | ||
227 | unsigned long extio_int3 : 1; /* RW, W1C */ | ||
228 | unsigned long profile_int : 1; /* RW, W1C */ | ||
229 | unsigned long rtc0 : 1; /* RW, W1C */ | ||
230 | unsigned long rtc1 : 1; /* RW, W1C */ | ||
231 | unsigned long rtc2 : 1; /* RW, W1C */ | ||
232 | unsigned long rtc3 : 1; /* RW, W1C */ | ||
233 | unsigned long bau_data : 1; /* RW, W1C */ | ||
234 | unsigned long power_management_req : 1; /* RW, W1C */ | ||
235 | unsigned long rsvd_57_63 : 7; /* */ | ||
236 | } s; | ||
237 | }; | ||
238 | |||
239 | /* ========================================================================= */ | ||
240 | /* UVH_EVENT_OCCURRED0_ALIAS */ | ||
241 | /* ========================================================================= */ | ||
242 | #define UVH_EVENT_OCCURRED0_ALIAS 0x0000000000070008UL | ||
243 | #define UVH_EVENT_OCCURRED0_ALIAS_32 0x005f0 | ||
244 | |||
245 | /* ========================================================================= */ | ||
246 | /* UVH_INT_CMPB */ | ||
247 | /* ========================================================================= */ | ||
248 | #define UVH_INT_CMPB 0x22080UL | ||
249 | |||
250 | #define UVH_INT_CMPB_REAL_TIME_CMPB_SHFT 0 | ||
251 | #define UVH_INT_CMPB_REAL_TIME_CMPB_MASK 0x00ffffffffffffffUL | ||
252 | |||
253 | union uvh_int_cmpb_u { | ||
254 | unsigned long v; | ||
255 | struct uvh_int_cmpb_s { | ||
256 | unsigned long real_time_cmpb : 56; /* RW */ | ||
257 | unsigned long rsvd_56_63 : 8; /* */ | ||
258 | } s; | ||
259 | }; | ||
260 | |||
261 | /* ========================================================================= */ | ||
262 | /* UVH_INT_CMPC */ | ||
263 | /* ========================================================================= */ | ||
264 | #define UVH_INT_CMPC 0x22100UL | ||
265 | |||
266 | #define UVH_INT_CMPC_REAL_TIME_CMPC_SHFT 0 | ||
267 | #define UVH_INT_CMPC_REAL_TIME_CMPC_MASK 0x00ffffffffffffffUL | ||
268 | |||
269 | union uvh_int_cmpc_u { | ||
270 | unsigned long v; | ||
271 | struct uvh_int_cmpc_s { | ||
272 | unsigned long real_time_cmpc : 56; /* RW */ | ||
273 | unsigned long rsvd_56_63 : 8; /* */ | ||
274 | } s; | ||
275 | }; | ||
276 | |||
277 | /* ========================================================================= */ | ||
278 | /* UVH_INT_CMPD */ | ||
279 | /* ========================================================================= */ | ||
280 | #define UVH_INT_CMPD 0x22180UL | ||
281 | |||
282 | #define UVH_INT_CMPD_REAL_TIME_CMPD_SHFT 0 | ||
283 | #define UVH_INT_CMPD_REAL_TIME_CMPD_MASK 0x00ffffffffffffffUL | ||
284 | |||
285 | union uvh_int_cmpd_u { | ||
286 | unsigned long v; | ||
287 | struct uvh_int_cmpd_s { | ||
288 | unsigned long real_time_cmpd : 56; /* RW */ | ||
289 | unsigned long rsvd_56_63 : 8; /* */ | ||
290 | } s; | ||
291 | }; | ||
292 | |||
293 | /* ========================================================================= */ | ||
294 | /* UVH_IPI_INT */ | ||
295 | /* ========================================================================= */ | ||
296 | #define UVH_IPI_INT 0x60500UL | ||
297 | #define UVH_IPI_INT_32 0x0348 | ||
298 | |||
299 | #define UVH_IPI_INT_VECTOR_SHFT 0 | ||
300 | #define UVH_IPI_INT_VECTOR_MASK 0x00000000000000ffUL | ||
301 | #define UVH_IPI_INT_DELIVERY_MODE_SHFT 8 | ||
302 | #define UVH_IPI_INT_DELIVERY_MODE_MASK 0x0000000000000700UL | ||
303 | #define UVH_IPI_INT_DESTMODE_SHFT 11 | ||
304 | #define UVH_IPI_INT_DESTMODE_MASK 0x0000000000000800UL | ||
305 | #define UVH_IPI_INT_APIC_ID_SHFT 16 | ||
306 | #define UVH_IPI_INT_APIC_ID_MASK 0x0000ffffffff0000UL | ||
307 | #define UVH_IPI_INT_SEND_SHFT 63 | ||
308 | #define UVH_IPI_INT_SEND_MASK 0x8000000000000000UL | ||
309 | |||
310 | union uvh_ipi_int_u { | ||
311 | unsigned long v; | ||
312 | struct uvh_ipi_int_s { | ||
313 | unsigned long vector_ : 8; /* RW */ | ||
314 | unsigned long delivery_mode : 3; /* RW */ | ||
315 | unsigned long destmode : 1; /* RW */ | ||
316 | unsigned long rsvd_12_15 : 4; /* */ | ||
317 | unsigned long apic_id : 32; /* RW */ | ||
318 | unsigned long rsvd_48_62 : 15; /* */ | ||
319 | unsigned long send : 1; /* WP */ | ||
320 | } s; | ||
321 | }; | ||
322 | |||
323 | /* ========================================================================= */ | ||
324 | /* UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST */ | ||
325 | /* ========================================================================= */ | ||
326 | #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST 0x320050UL | ||
327 | #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_32 0x009c0 | ||
328 | |||
329 | #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_ADDRESS_SHFT 4 | ||
330 | #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_ADDRESS_MASK 0x000007fffffffff0UL | ||
331 | #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_NODE_ID_SHFT 49 | ||
332 | #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST_NODE_ID_MASK 0x7ffe000000000000UL | ||
333 | |||
334 | union uvh_lb_bau_intd_payload_queue_first_u { | ||
335 | unsigned long v; | ||
336 | struct uvh_lb_bau_intd_payload_queue_first_s { | ||
337 | unsigned long rsvd_0_3: 4; /* */ | ||
338 | unsigned long address : 39; /* RW */ | ||
339 | unsigned long rsvd_43_48: 6; /* */ | ||
340 | unsigned long node_id : 14; /* RW */ | ||
341 | unsigned long rsvd_63 : 1; /* */ | ||
342 | } s; | ||
343 | }; | ||
344 | |||
345 | /* ========================================================================= */ | ||
346 | /* UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST */ | ||
347 | /* ========================================================================= */ | ||
348 | #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST 0x320060UL | ||
349 | #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST_32 0x009c8 | ||
350 | |||
351 | #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST_ADDRESS_SHFT 4 | ||
352 | #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_LAST_ADDRESS_MASK 0x000007fffffffff0UL | ||
353 | |||
354 | union uvh_lb_bau_intd_payload_queue_last_u { | ||
355 | unsigned long v; | ||
356 | struct uvh_lb_bau_intd_payload_queue_last_s { | ||
357 | unsigned long rsvd_0_3: 4; /* */ | ||
358 | unsigned long address : 39; /* RW */ | ||
359 | unsigned long rsvd_43_63: 21; /* */ | ||
360 | } s; | ||
361 | }; | ||
362 | |||
363 | /* ========================================================================= */ | ||
364 | /* UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL */ | ||
365 | /* ========================================================================= */ | ||
366 | #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL 0x320070UL | ||
367 | #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL_32 0x009d0 | ||
368 | |||
369 | #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL_ADDRESS_SHFT 4 | ||
370 | #define UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL_ADDRESS_MASK 0x000007fffffffff0UL | ||
371 | |||
372 | union uvh_lb_bau_intd_payload_queue_tail_u { | ||
373 | unsigned long v; | ||
374 | struct uvh_lb_bau_intd_payload_queue_tail_s { | ||
375 | unsigned long rsvd_0_3: 4; /* */ | ||
376 | unsigned long address : 39; /* RW */ | ||
377 | unsigned long rsvd_43_63: 21; /* */ | ||
378 | } s; | ||
379 | }; | ||
380 | |||
381 | /* ========================================================================= */ | ||
382 | /* UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE */ | ||
383 | /* ========================================================================= */ | ||
384 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE 0x320080UL | ||
385 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_32 0x0a68 | ||
386 | |||
387 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_0_SHFT 0 | ||
388 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_0_MASK 0x0000000000000001UL | ||
389 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_1_SHFT 1 | ||
390 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_1_MASK 0x0000000000000002UL | ||
391 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_2_SHFT 2 | ||
392 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_2_MASK 0x0000000000000004UL | ||
393 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_3_SHFT 3 | ||
394 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_3_MASK 0x0000000000000008UL | ||
395 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_4_SHFT 4 | ||
396 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_4_MASK 0x0000000000000010UL | ||
397 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_5_SHFT 5 | ||
398 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_5_MASK 0x0000000000000020UL | ||
399 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_6_SHFT 6 | ||
400 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_6_MASK 0x0000000000000040UL | ||
401 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_7_SHFT 7 | ||
402 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_PENDING_7_MASK 0x0000000000000080UL | ||
403 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_0_SHFT 8 | ||
404 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_0_MASK 0x0000000000000100UL | ||
405 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_1_SHFT 9 | ||
406 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_1_MASK 0x0000000000000200UL | ||
407 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_2_SHFT 10 | ||
408 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_2_MASK 0x0000000000000400UL | ||
409 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_3_SHFT 11 | ||
410 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_3_MASK 0x0000000000000800UL | ||
411 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_4_SHFT 12 | ||
412 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_4_MASK 0x0000000000001000UL | ||
413 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_5_SHFT 13 | ||
414 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_5_MASK 0x0000000000002000UL | ||
415 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_6_SHFT 14 | ||
416 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_6_MASK 0x0000000000004000UL | ||
417 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_7_SHFT 15 | ||
418 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_TIMEOUT_7_MASK 0x0000000000008000UL | ||
419 | union uvh_lb_bau_intd_software_acknowledge_u { | ||
420 | unsigned long v; | ||
421 | struct uvh_lb_bau_intd_software_acknowledge_s { | ||
422 | unsigned long pending_0 : 1; /* RW, W1C */ | ||
423 | unsigned long pending_1 : 1; /* RW, W1C */ | ||
424 | unsigned long pending_2 : 1; /* RW, W1C */ | ||
425 | unsigned long pending_3 : 1; /* RW, W1C */ | ||
426 | unsigned long pending_4 : 1; /* RW, W1C */ | ||
427 | unsigned long pending_5 : 1; /* RW, W1C */ | ||
428 | unsigned long pending_6 : 1; /* RW, W1C */ | ||
429 | unsigned long pending_7 : 1; /* RW, W1C */ | ||
430 | unsigned long timeout_0 : 1; /* RW, W1C */ | ||
431 | unsigned long timeout_1 : 1; /* RW, W1C */ | ||
432 | unsigned long timeout_2 : 1; /* RW, W1C */ | ||
433 | unsigned long timeout_3 : 1; /* RW, W1C */ | ||
434 | unsigned long timeout_4 : 1; /* RW, W1C */ | ||
435 | unsigned long timeout_5 : 1; /* RW, W1C */ | ||
436 | unsigned long timeout_6 : 1; /* RW, W1C */ | ||
437 | unsigned long timeout_7 : 1; /* RW, W1C */ | ||
438 | unsigned long rsvd_16_63: 48; /* */ | ||
439 | } s; | ||
440 | }; | ||
441 | |||
442 | /* ========================================================================= */ | ||
443 | /* UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS */ | ||
444 | /* ========================================================================= */ | ||
445 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS 0x0000000000320088UL | ||
446 | #define UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS_32 0x0a70 | ||
447 | |||
448 | /* ========================================================================= */ | ||
449 | /* UVH_LB_BAU_SB_ACTIVATION_CONTROL */ | ||
450 | /* ========================================================================= */ | ||
451 | #define UVH_LB_BAU_SB_ACTIVATION_CONTROL 0x320020UL | ||
452 | #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_32 0x009a8 | ||
453 | |||
454 | #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_INDEX_SHFT 0 | ||
455 | #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_INDEX_MASK 0x000000000000003fUL | ||
456 | #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_PUSH_SHFT 62 | ||
457 | #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_PUSH_MASK 0x4000000000000000UL | ||
458 | #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_INIT_SHFT 63 | ||
459 | #define UVH_LB_BAU_SB_ACTIVATION_CONTROL_INIT_MASK 0x8000000000000000UL | ||
460 | |||
461 | union uvh_lb_bau_sb_activation_control_u { | ||
462 | unsigned long v; | ||
463 | struct uvh_lb_bau_sb_activation_control_s { | ||
464 | unsigned long index : 6; /* RW */ | ||
465 | unsigned long rsvd_6_61: 56; /* */ | ||
466 | unsigned long push : 1; /* WP */ | ||
467 | unsigned long init : 1; /* WP */ | ||
468 | } s; | ||
469 | }; | ||
470 | |||
471 | /* ========================================================================= */ | ||
472 | /* UVH_LB_BAU_SB_ACTIVATION_STATUS_0 */ | ||
473 | /* ========================================================================= */ | ||
474 | #define UVH_LB_BAU_SB_ACTIVATION_STATUS_0 0x320030UL | ||
475 | #define UVH_LB_BAU_SB_ACTIVATION_STATUS_0_32 0x009b0 | ||
476 | |||
477 | #define UVH_LB_BAU_SB_ACTIVATION_STATUS_0_STATUS_SHFT 0 | ||
478 | #define UVH_LB_BAU_SB_ACTIVATION_STATUS_0_STATUS_MASK 0xffffffffffffffffUL | ||
479 | |||
480 | union uvh_lb_bau_sb_activation_status_0_u { | ||
481 | unsigned long v; | ||
482 | struct uvh_lb_bau_sb_activation_status_0_s { | ||
483 | unsigned long status : 64; /* RW */ | ||
484 | } s; | ||
485 | }; | ||
486 | |||
487 | /* ========================================================================= */ | ||
488 | /* UVH_LB_BAU_SB_ACTIVATION_STATUS_1 */ | ||
489 | /* ========================================================================= */ | ||
490 | #define UVH_LB_BAU_SB_ACTIVATION_STATUS_1 0x320040UL | ||
491 | #define UVH_LB_BAU_SB_ACTIVATION_STATUS_1_32 0x009b8 | ||
492 | |||
493 | #define UVH_LB_BAU_SB_ACTIVATION_STATUS_1_STATUS_SHFT 0 | ||
494 | #define UVH_LB_BAU_SB_ACTIVATION_STATUS_1_STATUS_MASK 0xffffffffffffffffUL | ||
495 | |||
496 | union uvh_lb_bau_sb_activation_status_1_u { | ||
497 | unsigned long v; | ||
498 | struct uvh_lb_bau_sb_activation_status_1_s { | ||
499 | unsigned long status : 64; /* RW */ | ||
500 | } s; | ||
501 | }; | ||
502 | |||
503 | /* ========================================================================= */ | ||
504 | /* UVH_LB_BAU_SB_DESCRIPTOR_BASE */ | ||
505 | /* ========================================================================= */ | ||
506 | #define UVH_LB_BAU_SB_DESCRIPTOR_BASE 0x320010UL | ||
507 | #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_32 0x009a0 | ||
508 | |||
509 | #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_PAGE_ADDRESS_SHFT 12 | ||
510 | #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_PAGE_ADDRESS_MASK 0x000007fffffff000UL | ||
511 | #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_SHFT 49 | ||
512 | #define UVH_LB_BAU_SB_DESCRIPTOR_BASE_NODE_ID_MASK 0x7ffe000000000000UL | ||
513 | |||
514 | union uvh_lb_bau_sb_descriptor_base_u { | ||
515 | unsigned long v; | ||
516 | struct uvh_lb_bau_sb_descriptor_base_s { | ||
517 | unsigned long rsvd_0_11 : 12; /* */ | ||
518 | unsigned long page_address : 31; /* RW */ | ||
519 | unsigned long rsvd_43_48 : 6; /* */ | ||
520 | unsigned long node_id : 14; /* RW */ | ||
521 | unsigned long rsvd_63 : 1; /* */ | ||
522 | } s; | ||
523 | }; | ||
524 | |||
525 | /* ========================================================================= */ | ||
526 | /* UVH_LB_MCAST_AOERR0_RPT_ENABLE */ | ||
527 | /* ========================================================================= */ | ||
528 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE 0x50b20UL | ||
529 | |||
530 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_OBESE_MSG_SHFT 0 | ||
531 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_OBESE_MSG_MASK 0x0000000000000001UL | ||
532 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_DATA_SB_ERR_SHFT 1 | ||
533 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_DATA_SB_ERR_MASK 0x0000000000000002UL | ||
534 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_NACK_BUFF_PARITY_SHFT 2 | ||
535 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_NACK_BUFF_PARITY_MASK 0x0000000000000004UL | ||
536 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_TIMEOUT_SHFT 3 | ||
537 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_TIMEOUT_MASK 0x0000000000000008UL | ||
538 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_INACTIVE_REPLY_SHFT 4 | ||
539 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_INACTIVE_REPLY_MASK 0x0000000000000010UL | ||
540 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_UPGRADE_ERROR_SHFT 5 | ||
541 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_UPGRADE_ERROR_MASK 0x0000000000000020UL | ||
542 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_REG_COUNT_UNDERFLOW_SHFT 6 | ||
543 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_REG_COUNT_UNDERFLOW_MASK 0x0000000000000040UL | ||
544 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_REP_OBESE_MSG_SHFT 7 | ||
545 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MCAST_REP_OBESE_MSG_MASK 0x0000000000000080UL | ||
546 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REQ_RUNT_MSG_SHFT 8 | ||
547 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REQ_RUNT_MSG_MASK 0x0000000000000100UL | ||
548 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REQ_OBESE_MSG_SHFT 9 | ||
549 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REQ_OBESE_MSG_MASK 0x0000000000000200UL | ||
550 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REQ_DATA_SB_ERR_SHFT 10 | ||
551 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REQ_DATA_SB_ERR_MASK 0x0000000000000400UL | ||
552 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REP_RUNT_MSG_SHFT 11 | ||
553 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REP_RUNT_MSG_MASK 0x0000000000000800UL | ||
554 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REP_OBESE_MSG_SHFT 12 | ||
555 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REP_OBESE_MSG_MASK 0x0000000000001000UL | ||
556 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REP_DATA_SB_ERR_SHFT 13 | ||
557 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REP_DATA_SB_ERR_MASK 0x0000000000002000UL | ||
558 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REP_COMMAND_ERR_SHFT 14 | ||
559 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_REP_COMMAND_ERR_MASK 0x0000000000004000UL | ||
560 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_PEND_TIMEOUT_SHFT 15 | ||
561 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_UCACHE_PEND_TIMEOUT_MASK 0x0000000000008000UL | ||
562 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_REQ_RUNT_MSG_SHFT 16 | ||
563 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_REQ_RUNT_MSG_MASK 0x0000000000010000UL | ||
564 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_REQ_OBESE_MSG_SHFT 17 | ||
565 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_REQ_OBESE_MSG_MASK 0x0000000000020000UL | ||
566 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_REQ_DATA_SB_ERR_SHFT 18 | ||
567 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_REQ_DATA_SB_ERR_MASK 0x0000000000040000UL | ||
568 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_REP_RUNT_MSG_SHFT 19 | ||
569 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_REP_RUNT_MSG_MASK 0x0000000000080000UL | ||
570 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_REP_OBESE_MSG_SHFT 20 | ||
571 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_REP_OBESE_MSG_MASK 0x0000000000100000UL | ||
572 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_REP_DATA_SB_ERR_SHFT 21 | ||
573 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_REP_DATA_SB_ERR_MASK 0x0000000000200000UL | ||
574 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_AMO_TIMEOUT_SHFT 22 | ||
575 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_AMO_TIMEOUT_MASK 0x0000000000400000UL | ||
576 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_PUT_TIMEOUT_SHFT 23 | ||
577 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_PUT_TIMEOUT_MASK 0x0000000000800000UL | ||
578 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_SPURIOUS_EVENT_SHFT 24 | ||
579 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_MACC_SPURIOUS_EVENT_MASK 0x0000000001000000UL | ||
580 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_IOH_DESTINATION_TABLE_PARITY_SHFT 25 | ||
581 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_IOH_DESTINATION_TABLE_PARITY_MASK 0x0000000002000000UL | ||
582 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_GET_HAD_ERROR_REPLY_SHFT 26 | ||
583 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_GET_HAD_ERROR_REPLY_MASK 0x0000000004000000UL | ||
584 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_GET_TIMEOUT_SHFT 27 | ||
585 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_GET_TIMEOUT_MASK 0x0000000008000000UL | ||
586 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_LOCK_MANAGER_HAD_ERROR_REPLY_SHFT 28 | ||
587 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_LOCK_MANAGER_HAD_ERROR_REPLY_MASK 0x0000000010000000UL | ||
588 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_PUT_HAD_ERROR_REPLY_SHFT 29 | ||
589 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_PUT_HAD_ERROR_REPLY_MASK 0x0000000020000000UL | ||
590 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_PUT_TIMEOUT_SHFT 30 | ||
591 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_PUT_TIMEOUT_MASK 0x0000000040000000UL | ||
592 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_SB_ACTIVATION_OVERRUN_SHFT 31 | ||
593 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_SB_ACTIVATION_OVERRUN_MASK 0x0000000080000000UL | ||
594 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_COMPLETED_GB_ACTIVATION_HAD_ERROR_REPLY_SHFT 32 | ||
595 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_COMPLETED_GB_ACTIVATION_HAD_ERROR_REPLY_MASK 0x0000000100000000UL | ||
596 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_COMPLETED_GB_ACTIVATION_TIMEOUT_SHFT 33 | ||
597 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_COMPLETED_GB_ACTIVATION_TIMEOUT_MASK 0x0000000200000000UL | ||
598 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_DESCRIPTOR_BUFFER_0_PARITY_SHFT 34 | ||
599 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_DESCRIPTOR_BUFFER_0_PARITY_MASK 0x0000000400000000UL | ||
600 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_DESCRIPTOR_BUFFER_1_PARITY_SHFT 35 | ||
601 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_DESCRIPTOR_BUFFER_1_PARITY_MASK 0x0000000800000000UL | ||
602 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_SOCKET_DESTINATION_TABLE_PARITY_SHFT 36 | ||
603 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_SOCKET_DESTINATION_TABLE_PARITY_MASK 0x0000001000000000UL | ||
604 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_BAU_REPLY_PAYLOAD_CORRUPTION_SHFT 37 | ||
605 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_BAU_REPLY_PAYLOAD_CORRUPTION_MASK 0x0000002000000000UL | ||
606 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_IO_PORT_DESTINATION_TABLE_PARITY_SHFT 38 | ||
607 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_IO_PORT_DESTINATION_TABLE_PARITY_MASK 0x0000004000000000UL | ||
608 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_INTD_SOFT_ACK_TIMEOUT_SHFT 39 | ||
609 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_INTD_SOFT_ACK_TIMEOUT_MASK 0x0000008000000000UL | ||
610 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_INT_REP_OBESE_MSG_SHFT 40 | ||
611 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_INT_REP_OBESE_MSG_MASK 0x0000010000000000UL | ||
612 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_INT_REP_COMMAND_ERR_SHFT 41 | ||
613 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_INT_REP_COMMAND_ERR_MASK 0x0000020000000000UL | ||
614 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_INT_TIMEOUT_SHFT 42 | ||
615 | #define UVH_LB_MCAST_AOERR0_RPT_ENABLE_INT_TIMEOUT_MASK 0x0000040000000000UL | ||
616 | |||
617 | union uvh_lb_mcast_aoerr0_rpt_enable_u { | ||
618 | unsigned long v; | ||
619 | struct uvh_lb_mcast_aoerr0_rpt_enable_s { | ||
620 | unsigned long mcast_obese_msg : 1; /* RW */ | ||
621 | unsigned long mcast_data_sb_err : 1; /* RW */ | ||
622 | unsigned long mcast_nack_buff_parity : 1; /* RW */ | ||
623 | unsigned long mcast_timeout : 1; /* RW */ | ||
624 | unsigned long mcast_inactive_reply : 1; /* RW */ | ||
625 | unsigned long mcast_upgrade_error : 1; /* RW */ | ||
626 | unsigned long mcast_reg_count_underflow : 1; /* RW */ | ||
627 | unsigned long mcast_rep_obese_msg : 1; /* RW */ | ||
628 | unsigned long ucache_req_runt_msg : 1; /* RW */ | ||
629 | unsigned long ucache_req_obese_msg : 1; /* RW */ | ||
630 | unsigned long ucache_req_data_sb_err : 1; /* RW */ | ||
631 | unsigned long ucache_rep_runt_msg : 1; /* RW */ | ||
632 | unsigned long ucache_rep_obese_msg : 1; /* RW */ | ||
633 | unsigned long ucache_rep_data_sb_err : 1; /* RW */ | ||
634 | unsigned long ucache_rep_command_err : 1; /* RW */ | ||
635 | unsigned long ucache_pend_timeout : 1; /* RW */ | ||
636 | unsigned long macc_req_runt_msg : 1; /* RW */ | ||
637 | unsigned long macc_req_obese_msg : 1; /* RW */ | ||
638 | unsigned long macc_req_data_sb_err : 1; /* RW */ | ||
639 | unsigned long macc_rep_runt_msg : 1; /* RW */ | ||
640 | unsigned long macc_rep_obese_msg : 1; /* RW */ | ||
641 | unsigned long macc_rep_data_sb_err : 1; /* RW */ | ||
642 | unsigned long macc_amo_timeout : 1; /* RW */ | ||
643 | unsigned long macc_put_timeout : 1; /* RW */ | ||
644 | unsigned long macc_spurious_event : 1; /* RW */ | ||
645 | unsigned long ioh_destination_table_parity : 1; /* RW */ | ||
646 | unsigned long get_had_error_reply : 1; /* RW */ | ||
647 | unsigned long get_timeout : 1; /* RW */ | ||
648 | unsigned long lock_manager_had_error_reply : 1; /* RW */ | ||
649 | unsigned long put_had_error_reply : 1; /* RW */ | ||
650 | unsigned long put_timeout : 1; /* RW */ | ||
651 | unsigned long sb_activation_overrun : 1; /* RW */ | ||
652 | unsigned long completed_gb_activation_had_error_reply : 1; /* RW */ | ||
653 | unsigned long completed_gb_activation_timeout : 1; /* RW */ | ||
654 | unsigned long descriptor_buffer_0_parity : 1; /* RW */ | ||
655 | unsigned long descriptor_buffer_1_parity : 1; /* RW */ | ||
656 | unsigned long socket_destination_table_parity : 1; /* RW */ | ||
657 | unsigned long bau_reply_payload_corruption : 1; /* RW */ | ||
658 | unsigned long io_port_destination_table_parity : 1; /* RW */ | ||
659 | unsigned long intd_soft_ack_timeout : 1; /* RW */ | ||
660 | unsigned long int_rep_obese_msg : 1; /* RW */ | ||
661 | unsigned long int_rep_command_err : 1; /* RW */ | ||
662 | unsigned long int_timeout : 1; /* RW */ | ||
663 | unsigned long rsvd_43_63 : 21; /* */ | ||
664 | } s; | ||
665 | }; | ||
666 | |||
667 | /* ========================================================================= */ | ||
668 | /* UVH_LOCAL_INT0_CONFIG */ | ||
669 | /* ========================================================================= */ | ||
670 | #define UVH_LOCAL_INT0_CONFIG 0x61000UL | ||
671 | |||
672 | #define UVH_LOCAL_INT0_CONFIG_VECTOR_SHFT 0 | ||
673 | #define UVH_LOCAL_INT0_CONFIG_VECTOR_MASK 0x00000000000000ffUL | ||
674 | #define UVH_LOCAL_INT0_CONFIG_DM_SHFT 8 | ||
675 | #define UVH_LOCAL_INT0_CONFIG_DM_MASK 0x0000000000000700UL | ||
676 | #define UVH_LOCAL_INT0_CONFIG_DESTMODE_SHFT 11 | ||
677 | #define UVH_LOCAL_INT0_CONFIG_DESTMODE_MASK 0x0000000000000800UL | ||
678 | #define UVH_LOCAL_INT0_CONFIG_STATUS_SHFT 12 | ||
679 | #define UVH_LOCAL_INT0_CONFIG_STATUS_MASK 0x0000000000001000UL | ||
680 | #define UVH_LOCAL_INT0_CONFIG_P_SHFT 13 | ||
681 | #define UVH_LOCAL_INT0_CONFIG_P_MASK 0x0000000000002000UL | ||
682 | #define UVH_LOCAL_INT0_CONFIG_T_SHFT 15 | ||
683 | #define UVH_LOCAL_INT0_CONFIG_T_MASK 0x0000000000008000UL | ||
684 | #define UVH_LOCAL_INT0_CONFIG_M_SHFT 16 | ||
685 | #define UVH_LOCAL_INT0_CONFIG_M_MASK 0x0000000000010000UL | ||
686 | #define UVH_LOCAL_INT0_CONFIG_APIC_ID_SHFT 32 | ||
687 | #define UVH_LOCAL_INT0_CONFIG_APIC_ID_MASK 0xffffffff00000000UL | ||
688 | |||
689 | union uvh_local_int0_config_u { | ||
690 | unsigned long v; | ||
691 | struct uvh_local_int0_config_s { | ||
692 | unsigned long vector_ : 8; /* RW */ | ||
693 | unsigned long dm : 3; /* RW */ | ||
694 | unsigned long destmode : 1; /* RW */ | ||
695 | unsigned long status : 1; /* RO */ | ||
696 | unsigned long p : 1; /* RO */ | ||
697 | unsigned long rsvd_14 : 1; /* */ | ||
698 | unsigned long t : 1; /* RO */ | ||
699 | unsigned long m : 1; /* RW */ | ||
700 | unsigned long rsvd_17_31: 15; /* */ | ||
701 | unsigned long apic_id : 32; /* RW */ | ||
702 | } s; | ||
703 | }; | ||
704 | |||
705 | /* ========================================================================= */ | ||
706 | /* UVH_LOCAL_INT0_ENABLE */ | ||
707 | /* ========================================================================= */ | ||
708 | #define UVH_LOCAL_INT0_ENABLE 0x65000UL | ||
709 | |||
710 | #define UVH_LOCAL_INT0_ENABLE_LB_HCERR_SHFT 0 | ||
711 | #define UVH_LOCAL_INT0_ENABLE_LB_HCERR_MASK 0x0000000000000001UL | ||
712 | #define UVH_LOCAL_INT0_ENABLE_GR0_HCERR_SHFT 1 | ||
713 | #define UVH_LOCAL_INT0_ENABLE_GR0_HCERR_MASK 0x0000000000000002UL | ||
714 | #define UVH_LOCAL_INT0_ENABLE_GR1_HCERR_SHFT 2 | ||
715 | #define UVH_LOCAL_INT0_ENABLE_GR1_HCERR_MASK 0x0000000000000004UL | ||
716 | #define UVH_LOCAL_INT0_ENABLE_LH_HCERR_SHFT 3 | ||
717 | #define UVH_LOCAL_INT0_ENABLE_LH_HCERR_MASK 0x0000000000000008UL | ||
718 | #define UVH_LOCAL_INT0_ENABLE_RH_HCERR_SHFT 4 | ||
719 | #define UVH_LOCAL_INT0_ENABLE_RH_HCERR_MASK 0x0000000000000010UL | ||
720 | #define UVH_LOCAL_INT0_ENABLE_XN_HCERR_SHFT 5 | ||
721 | #define UVH_LOCAL_INT0_ENABLE_XN_HCERR_MASK 0x0000000000000020UL | ||
722 | #define UVH_LOCAL_INT0_ENABLE_SI_HCERR_SHFT 6 | ||
723 | #define UVH_LOCAL_INT0_ENABLE_SI_HCERR_MASK 0x0000000000000040UL | ||
724 | #define UVH_LOCAL_INT0_ENABLE_LB_AOERR0_SHFT 7 | ||
725 | #define UVH_LOCAL_INT0_ENABLE_LB_AOERR0_MASK 0x0000000000000080UL | ||
726 | #define UVH_LOCAL_INT0_ENABLE_GR0_AOERR0_SHFT 8 | ||
727 | #define UVH_LOCAL_INT0_ENABLE_GR0_AOERR0_MASK 0x0000000000000100UL | ||
728 | #define UVH_LOCAL_INT0_ENABLE_GR1_AOERR0_SHFT 9 | ||
729 | #define UVH_LOCAL_INT0_ENABLE_GR1_AOERR0_MASK 0x0000000000000200UL | ||
730 | #define UVH_LOCAL_INT0_ENABLE_LH_AOERR0_SHFT 10 | ||
731 | #define UVH_LOCAL_INT0_ENABLE_LH_AOERR0_MASK 0x0000000000000400UL | ||
732 | #define UVH_LOCAL_INT0_ENABLE_RH_AOERR0_SHFT 11 | ||
733 | #define UVH_LOCAL_INT0_ENABLE_RH_AOERR0_MASK 0x0000000000000800UL | ||
734 | #define UVH_LOCAL_INT0_ENABLE_XN_AOERR0_SHFT 12 | ||
735 | #define UVH_LOCAL_INT0_ENABLE_XN_AOERR0_MASK 0x0000000000001000UL | ||
736 | #define UVH_LOCAL_INT0_ENABLE_SI_AOERR0_SHFT 13 | ||
737 | #define UVH_LOCAL_INT0_ENABLE_SI_AOERR0_MASK 0x0000000000002000UL | ||
738 | #define UVH_LOCAL_INT0_ENABLE_LB_AOERR1_SHFT 14 | ||
739 | #define UVH_LOCAL_INT0_ENABLE_LB_AOERR1_MASK 0x0000000000004000UL | ||
740 | #define UVH_LOCAL_INT0_ENABLE_GR0_AOERR1_SHFT 15 | ||
741 | #define UVH_LOCAL_INT0_ENABLE_GR0_AOERR1_MASK 0x0000000000008000UL | ||
742 | #define UVH_LOCAL_INT0_ENABLE_GR1_AOERR1_SHFT 16 | ||
743 | #define UVH_LOCAL_INT0_ENABLE_GR1_AOERR1_MASK 0x0000000000010000UL | ||
744 | #define UVH_LOCAL_INT0_ENABLE_LH_AOERR1_SHFT 17 | ||
745 | #define UVH_LOCAL_INT0_ENABLE_LH_AOERR1_MASK 0x0000000000020000UL | ||
746 | #define UVH_LOCAL_INT0_ENABLE_RH_AOERR1_SHFT 18 | ||
747 | #define UVH_LOCAL_INT0_ENABLE_RH_AOERR1_MASK 0x0000000000040000UL | ||
748 | #define UVH_LOCAL_INT0_ENABLE_XN_AOERR1_SHFT 19 | ||
749 | #define UVH_LOCAL_INT0_ENABLE_XN_AOERR1_MASK 0x0000000000080000UL | ||
750 | #define UVH_LOCAL_INT0_ENABLE_SI_AOERR1_SHFT 20 | ||
751 | #define UVH_LOCAL_INT0_ENABLE_SI_AOERR1_MASK 0x0000000000100000UL | ||
752 | #define UVH_LOCAL_INT0_ENABLE_RH_VPI_INT_SHFT 21 | ||
753 | #define UVH_LOCAL_INT0_ENABLE_RH_VPI_INT_MASK 0x0000000000200000UL | ||
754 | #define UVH_LOCAL_INT0_ENABLE_SYSTEM_SHUTDOWN_INT_SHFT 22 | ||
755 | #define UVH_LOCAL_INT0_ENABLE_SYSTEM_SHUTDOWN_INT_MASK 0x0000000000400000UL | ||
756 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_0_SHFT 23 | ||
757 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_0_MASK 0x0000000000800000UL | ||
758 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_1_SHFT 24 | ||
759 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_1_MASK 0x0000000001000000UL | ||
760 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_2_SHFT 25 | ||
761 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_2_MASK 0x0000000002000000UL | ||
762 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_3_SHFT 26 | ||
763 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_3_MASK 0x0000000004000000UL | ||
764 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_4_SHFT 27 | ||
765 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_4_MASK 0x0000000008000000UL | ||
766 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_5_SHFT 28 | ||
767 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_5_MASK 0x0000000010000000UL | ||
768 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_6_SHFT 29 | ||
769 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_6_MASK 0x0000000020000000UL | ||
770 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_7_SHFT 30 | ||
771 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_7_MASK 0x0000000040000000UL | ||
772 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_8_SHFT 31 | ||
773 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_8_MASK 0x0000000080000000UL | ||
774 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_9_SHFT 32 | ||
775 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_9_MASK 0x0000000100000000UL | ||
776 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_10_SHFT 33 | ||
777 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_10_MASK 0x0000000200000000UL | ||
778 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_11_SHFT 34 | ||
779 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_11_MASK 0x0000000400000000UL | ||
780 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_12_SHFT 35 | ||
781 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_12_MASK 0x0000000800000000UL | ||
782 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_13_SHFT 36 | ||
783 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_13_MASK 0x0000001000000000UL | ||
784 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_14_SHFT 37 | ||
785 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_14_MASK 0x0000002000000000UL | ||
786 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_15_SHFT 38 | ||
787 | #define UVH_LOCAL_INT0_ENABLE_LB_IRQ_INT_15_MASK 0x0000004000000000UL | ||
788 | #define UVH_LOCAL_INT0_ENABLE_L1_NMI_INT_SHFT 39 | ||
789 | #define UVH_LOCAL_INT0_ENABLE_L1_NMI_INT_MASK 0x0000008000000000UL | ||
790 | #define UVH_LOCAL_INT0_ENABLE_STOP_CLOCK_SHFT 40 | ||
791 | #define UVH_LOCAL_INT0_ENABLE_STOP_CLOCK_MASK 0x0000010000000000UL | ||
792 | #define UVH_LOCAL_INT0_ENABLE_ASIC_TO_L1_SHFT 41 | ||
793 | #define UVH_LOCAL_INT0_ENABLE_ASIC_TO_L1_MASK 0x0000020000000000UL | ||
794 | #define UVH_LOCAL_INT0_ENABLE_L1_TO_ASIC_SHFT 42 | ||
795 | #define UVH_LOCAL_INT0_ENABLE_L1_TO_ASIC_MASK 0x0000040000000000UL | ||
796 | #define UVH_LOCAL_INT0_ENABLE_LTC_INT_SHFT 43 | ||
797 | #define UVH_LOCAL_INT0_ENABLE_LTC_INT_MASK 0x0000080000000000UL | ||
798 | #define UVH_LOCAL_INT0_ENABLE_LA_SEQ_TRIGGER_SHFT 44 | ||
799 | #define UVH_LOCAL_INT0_ENABLE_LA_SEQ_TRIGGER_MASK 0x0000100000000000UL | ||
800 | |||
801 | union uvh_local_int0_enable_u { | ||
802 | unsigned long v; | ||
803 | struct uvh_local_int0_enable_s { | ||
804 | unsigned long lb_hcerr : 1; /* RW */ | ||
805 | unsigned long gr0_hcerr : 1; /* RW */ | ||
806 | unsigned long gr1_hcerr : 1; /* RW */ | ||
807 | unsigned long lh_hcerr : 1; /* RW */ | ||
808 | unsigned long rh_hcerr : 1; /* RW */ | ||
809 | unsigned long xn_hcerr : 1; /* RW */ | ||
810 | unsigned long si_hcerr : 1; /* RW */ | ||
811 | unsigned long lb_aoerr0 : 1; /* RW */ | ||
812 | unsigned long gr0_aoerr0 : 1; /* RW */ | ||
813 | unsigned long gr1_aoerr0 : 1; /* RW */ | ||
814 | unsigned long lh_aoerr0 : 1; /* RW */ | ||
815 | unsigned long rh_aoerr0 : 1; /* RW */ | ||
816 | unsigned long xn_aoerr0 : 1; /* RW */ | ||
817 | unsigned long si_aoerr0 : 1; /* RW */ | ||
818 | unsigned long lb_aoerr1 : 1; /* RW */ | ||
819 | unsigned long gr0_aoerr1 : 1; /* RW */ | ||
820 | unsigned long gr1_aoerr1 : 1; /* RW */ | ||
821 | unsigned long lh_aoerr1 : 1; /* RW */ | ||
822 | unsigned long rh_aoerr1 : 1; /* RW */ | ||
823 | unsigned long xn_aoerr1 : 1; /* RW */ | ||
824 | unsigned long si_aoerr1 : 1; /* RW */ | ||
825 | unsigned long rh_vpi_int : 1; /* RW */ | ||
826 | unsigned long system_shutdown_int : 1; /* RW */ | ||
827 | unsigned long lb_irq_int_0 : 1; /* RW */ | ||
828 | unsigned long lb_irq_int_1 : 1; /* RW */ | ||
829 | unsigned long lb_irq_int_2 : 1; /* RW */ | ||
830 | unsigned long lb_irq_int_3 : 1; /* RW */ | ||
831 | unsigned long lb_irq_int_4 : 1; /* RW */ | ||
832 | unsigned long lb_irq_int_5 : 1; /* RW */ | ||
833 | unsigned long lb_irq_int_6 : 1; /* RW */ | ||
834 | unsigned long lb_irq_int_7 : 1; /* RW */ | ||
835 | unsigned long lb_irq_int_8 : 1; /* RW */ | ||
836 | unsigned long lb_irq_int_9 : 1; /* RW */ | ||
837 | unsigned long lb_irq_int_10 : 1; /* RW */ | ||
838 | unsigned long lb_irq_int_11 : 1; /* RW */ | ||
839 | unsigned long lb_irq_int_12 : 1; /* RW */ | ||
840 | unsigned long lb_irq_int_13 : 1; /* RW */ | ||
841 | unsigned long lb_irq_int_14 : 1; /* RW */ | ||
842 | unsigned long lb_irq_int_15 : 1; /* RW */ | ||
843 | unsigned long l1_nmi_int : 1; /* RW */ | ||
844 | unsigned long stop_clock : 1; /* RW */ | ||
845 | unsigned long asic_to_l1 : 1; /* RW */ | ||
846 | unsigned long l1_to_asic : 1; /* RW */ | ||
847 | unsigned long ltc_int : 1; /* RW */ | ||
848 | unsigned long la_seq_trigger : 1; /* RW */ | ||
849 | unsigned long rsvd_45_63 : 19; /* */ | ||
850 | } s; | ||
851 | }; | ||
852 | |||
853 | /* ========================================================================= */ | ||
854 | /* UVH_NODE_ID */ | ||
855 | /* ========================================================================= */ | ||
856 | #define UVH_NODE_ID 0x0UL | ||
857 | |||
858 | #define UVH_NODE_ID_FORCE1_SHFT 0 | ||
859 | #define UVH_NODE_ID_FORCE1_MASK 0x0000000000000001UL | ||
860 | #define UVH_NODE_ID_MANUFACTURER_SHFT 1 | ||
861 | #define UVH_NODE_ID_MANUFACTURER_MASK 0x0000000000000ffeUL | ||
862 | #define UVH_NODE_ID_PART_NUMBER_SHFT 12 | ||
863 | #define UVH_NODE_ID_PART_NUMBER_MASK 0x000000000ffff000UL | ||
864 | #define UVH_NODE_ID_REVISION_SHFT 28 | ||
865 | #define UVH_NODE_ID_REVISION_MASK 0x00000000f0000000UL | ||
866 | #define UVH_NODE_ID_NODE_ID_SHFT 32 | ||
867 | #define UVH_NODE_ID_NODE_ID_MASK 0x00007fff00000000UL | ||
868 | #define UVH_NODE_ID_NODES_PER_BIT_SHFT 48 | ||
869 | #define UVH_NODE_ID_NODES_PER_BIT_MASK 0x007f000000000000UL | ||
870 | #define UVH_NODE_ID_NI_PORT_SHFT 56 | ||
871 | #define UVH_NODE_ID_NI_PORT_MASK 0x0f00000000000000UL | ||
872 | |||
873 | union uvh_node_id_u { | ||
874 | unsigned long v; | ||
875 | struct uvh_node_id_s { | ||
876 | unsigned long force1 : 1; /* RO */ | ||
877 | unsigned long manufacturer : 11; /* RO */ | ||
878 | unsigned long part_number : 16; /* RO */ | ||
879 | unsigned long revision : 4; /* RO */ | ||
880 | unsigned long node_id : 15; /* RW */ | ||
881 | unsigned long rsvd_47 : 1; /* */ | ||
882 | unsigned long nodes_per_bit : 7; /* RW */ | ||
883 | unsigned long rsvd_55 : 1; /* */ | ||
884 | unsigned long ni_port : 4; /* RO */ | ||
885 | unsigned long rsvd_60_63 : 4; /* */ | ||
886 | } s; | ||
887 | }; | ||
888 | |||
889 | /* ========================================================================= */ | ||
890 | /* UVH_NODE_PRESENT_TABLE */ | ||
891 | /* ========================================================================= */ | ||
892 | #define UVH_NODE_PRESENT_TABLE 0x1400UL | ||
893 | #define UVH_NODE_PRESENT_TABLE_DEPTH 16 | ||
894 | |||
895 | #define UVH_NODE_PRESENT_TABLE_NODES_SHFT 0 | ||
896 | #define UVH_NODE_PRESENT_TABLE_NODES_MASK 0xffffffffffffffffUL | ||
897 | |||
898 | union uvh_node_present_table_u { | ||
899 | unsigned long v; | ||
900 | struct uvh_node_present_table_s { | ||
901 | unsigned long nodes : 64; /* RW */ | ||
902 | } s; | ||
903 | }; | ||
904 | |||
905 | /* ========================================================================= */ | ||
906 | /* UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR */ | ||
907 | /* ========================================================================= */ | ||
908 | #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR 0x16000d0UL | ||
909 | |||
910 | #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR_DEST_BASE_SHFT 24 | ||
911 | #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_0_MMR_DEST_BASE_MASK 0x00003fffff000000UL | ||
912 | |||
913 | union uvh_rh_gam_alias210_redirect_config_0_mmr_u { | ||
914 | unsigned long v; | ||
915 | struct uvh_rh_gam_alias210_redirect_config_0_mmr_s { | ||
916 | unsigned long rsvd_0_23 : 24; /* */ | ||
917 | unsigned long dest_base : 22; /* RW */ | ||
918 | unsigned long rsvd_46_63: 18; /* */ | ||
919 | } s; | ||
920 | }; | ||
921 | |||
922 | /* ========================================================================= */ | ||
923 | /* UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR */ | ||
924 | /* ========================================================================= */ | ||
925 | #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR 0x16000e0UL | ||
926 | |||
927 | #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR_DEST_BASE_SHFT 24 | ||
928 | #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_1_MMR_DEST_BASE_MASK 0x00003fffff000000UL | ||
929 | |||
930 | union uvh_rh_gam_alias210_redirect_config_1_mmr_u { | ||
931 | unsigned long v; | ||
932 | struct uvh_rh_gam_alias210_redirect_config_1_mmr_s { | ||
933 | unsigned long rsvd_0_23 : 24; /* */ | ||
934 | unsigned long dest_base : 22; /* RW */ | ||
935 | unsigned long rsvd_46_63: 18; /* */ | ||
936 | } s; | ||
937 | }; | ||
938 | |||
939 | /* ========================================================================= */ | ||
940 | /* UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR */ | ||
941 | /* ========================================================================= */ | ||
942 | #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR 0x16000f0UL | ||
943 | |||
944 | #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR_DEST_BASE_SHFT 24 | ||
945 | #define UVH_RH_GAM_ALIAS210_REDIRECT_CONFIG_2_MMR_DEST_BASE_MASK 0x00003fffff000000UL | ||
946 | |||
947 | union uvh_rh_gam_alias210_redirect_config_2_mmr_u { | ||
948 | unsigned long v; | ||
949 | struct uvh_rh_gam_alias210_redirect_config_2_mmr_s { | ||
950 | unsigned long rsvd_0_23 : 24; /* */ | ||
951 | unsigned long dest_base : 22; /* RW */ | ||
952 | unsigned long rsvd_46_63: 18; /* */ | ||
953 | } s; | ||
954 | }; | ||
955 | |||
956 | /* ========================================================================= */ | ||
957 | /* UVH_RH_GAM_CFG_OVERLAY_CONFIG_MMR */ | ||
958 | /* ========================================================================= */ | ||
959 | #define UVH_RH_GAM_CFG_OVERLAY_CONFIG_MMR 0x1600020UL | ||
960 | |||
961 | #define UVH_RH_GAM_CFG_OVERLAY_CONFIG_MMR_BASE_SHFT 26 | ||
962 | #define UVH_RH_GAM_CFG_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffffc000000UL | ||
963 | #define UVH_RH_GAM_CFG_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63 | ||
964 | #define UVH_RH_GAM_CFG_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL | ||
965 | |||
966 | union uvh_rh_gam_cfg_overlay_config_mmr_u { | ||
967 | unsigned long v; | ||
968 | struct uvh_rh_gam_cfg_overlay_config_mmr_s { | ||
969 | unsigned long rsvd_0_25: 26; /* */ | ||
970 | unsigned long base : 20; /* RW */ | ||
971 | unsigned long rsvd_46_62: 17; /* */ | ||
972 | unsigned long enable : 1; /* RW */ | ||
973 | } s; | ||
974 | }; | ||
975 | |||
976 | /* ========================================================================= */ | ||
977 | /* UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR */ | ||
978 | /* ========================================================================= */ | ||
979 | #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR 0x1600010UL | ||
980 | |||
981 | #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_SHFT 28 | ||
982 | #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffff0000000UL | ||
983 | #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_GR4_SHFT 48 | ||
984 | #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_GR4_MASK 0x0001000000000000UL | ||
985 | #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_SHFT 52 | ||
986 | #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_N_GRU_MASK 0x00f0000000000000UL | ||
987 | #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63 | ||
988 | #define UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL | ||
989 | |||
990 | union uvh_rh_gam_gru_overlay_config_mmr_u { | ||
991 | unsigned long v; | ||
992 | struct uvh_rh_gam_gru_overlay_config_mmr_s { | ||
993 | unsigned long rsvd_0_27: 28; /* */ | ||
994 | unsigned long base : 18; /* RW */ | ||
995 | unsigned long rsvd_46_47: 2; /* */ | ||
996 | unsigned long gr4 : 1; /* RW */ | ||
997 | unsigned long rsvd_49_51: 3; /* */ | ||
998 | unsigned long n_gru : 4; /* RW */ | ||
999 | unsigned long rsvd_56_62: 7; /* */ | ||
1000 | unsigned long enable : 1; /* RW */ | ||
1001 | } s; | ||
1002 | }; | ||
1003 | |||
1004 | /* ========================================================================= */ | ||
1005 | /* UVH_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR */ | ||
1006 | /* ========================================================================= */ | ||
1007 | #define UVH_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR 0x1600030UL | ||
1008 | |||
1009 | #define UVH_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_BASE_SHFT 30 | ||
1010 | #define UVH_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003fffc0000000UL | ||
1011 | #define UVH_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_M_IO_SHFT 46 | ||
1012 | #define UVH_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_M_IO_MASK 0x000fc00000000000UL | ||
1013 | #define UVH_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_N_IO_SHFT 52 | ||
1014 | #define UVH_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_N_IO_MASK 0x00f0000000000000UL | ||
1015 | #define UVH_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63 | ||
1016 | #define UVH_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL | ||
1017 | |||
1018 | union uvh_rh_gam_mmioh_overlay_config_mmr_u { | ||
1019 | unsigned long v; | ||
1020 | struct uvh_rh_gam_mmioh_overlay_config_mmr_s { | ||
1021 | unsigned long rsvd_0_29: 30; /* */ | ||
1022 | unsigned long base : 16; /* RW */ | ||
1023 | unsigned long m_io : 6; /* RW */ | ||
1024 | unsigned long n_io : 4; /* RW */ | ||
1025 | unsigned long rsvd_56_62: 7; /* */ | ||
1026 | unsigned long enable : 1; /* RW */ | ||
1027 | } s; | ||
1028 | }; | ||
1029 | |||
1030 | /* ========================================================================= */ | ||
1031 | /* UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR */ | ||
1032 | /* ========================================================================= */ | ||
1033 | #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR 0x1600028UL | ||
1034 | |||
1035 | #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_SHFT 26 | ||
1036 | #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_MASK 0x00003ffffc000000UL | ||
1037 | #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_DUAL_HUB_SHFT 46 | ||
1038 | #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_DUAL_HUB_MASK 0x0000400000000000UL | ||
1039 | #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_SHFT 63 | ||
1040 | #define UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_ENABLE_MASK 0x8000000000000000UL | ||
1041 | |||
1042 | union uvh_rh_gam_mmr_overlay_config_mmr_u { | ||
1043 | unsigned long v; | ||
1044 | struct uvh_rh_gam_mmr_overlay_config_mmr_s { | ||
1045 | unsigned long rsvd_0_25: 26; /* */ | ||
1046 | unsigned long base : 20; /* RW */ | ||
1047 | unsigned long dual_hub : 1; /* RW */ | ||
1048 | unsigned long rsvd_47_62: 16; /* */ | ||
1049 | unsigned long enable : 1; /* RW */ | ||
1050 | } s; | ||
1051 | }; | ||
1052 | |||
1053 | /* ========================================================================= */ | ||
1054 | /* UVH_RTC */ | ||
1055 | /* ========================================================================= */ | ||
1056 | #define UVH_RTC 0x340000UL | ||
1057 | |||
1058 | #define UVH_RTC_REAL_TIME_CLOCK_SHFT 0 | ||
1059 | #define UVH_RTC_REAL_TIME_CLOCK_MASK 0x00ffffffffffffffUL | ||
1060 | |||
1061 | union uvh_rtc_u { | ||
1062 | unsigned long v; | ||
1063 | struct uvh_rtc_s { | ||
1064 | unsigned long real_time_clock : 56; /* RW */ | ||
1065 | unsigned long rsvd_56_63 : 8; /* */ | ||
1066 | } s; | ||
1067 | }; | ||
1068 | |||
1069 | /* ========================================================================= */ | ||
1070 | /* UVH_RTC1_INT_CONFIG */ | ||
1071 | /* ========================================================================= */ | ||
1072 | #define UVH_RTC1_INT_CONFIG 0x615c0UL | ||
1073 | |||
1074 | #define UVH_RTC1_INT_CONFIG_VECTOR_SHFT 0 | ||
1075 | #define UVH_RTC1_INT_CONFIG_VECTOR_MASK 0x00000000000000ffUL | ||
1076 | #define UVH_RTC1_INT_CONFIG_DM_SHFT 8 | ||
1077 | #define UVH_RTC1_INT_CONFIG_DM_MASK 0x0000000000000700UL | ||
1078 | #define UVH_RTC1_INT_CONFIG_DESTMODE_SHFT 11 | ||
1079 | #define UVH_RTC1_INT_CONFIG_DESTMODE_MASK 0x0000000000000800UL | ||
1080 | #define UVH_RTC1_INT_CONFIG_STATUS_SHFT 12 | ||
1081 | #define UVH_RTC1_INT_CONFIG_STATUS_MASK 0x0000000000001000UL | ||
1082 | #define UVH_RTC1_INT_CONFIG_P_SHFT 13 | ||
1083 | #define UVH_RTC1_INT_CONFIG_P_MASK 0x0000000000002000UL | ||
1084 | #define UVH_RTC1_INT_CONFIG_T_SHFT 15 | ||
1085 | #define UVH_RTC1_INT_CONFIG_T_MASK 0x0000000000008000UL | ||
1086 | #define UVH_RTC1_INT_CONFIG_M_SHFT 16 | ||
1087 | #define UVH_RTC1_INT_CONFIG_M_MASK 0x0000000000010000UL | ||
1088 | #define UVH_RTC1_INT_CONFIG_APIC_ID_SHFT 32 | ||
1089 | #define UVH_RTC1_INT_CONFIG_APIC_ID_MASK 0xffffffff00000000UL | ||
1090 | |||
1091 | union uvh_rtc1_int_config_u { | ||
1092 | unsigned long v; | ||
1093 | struct uvh_rtc1_int_config_s { | ||
1094 | unsigned long vector_ : 8; /* RW */ | ||
1095 | unsigned long dm : 3; /* RW */ | ||
1096 | unsigned long destmode : 1; /* RW */ | ||
1097 | unsigned long status : 1; /* RO */ | ||
1098 | unsigned long p : 1; /* RO */ | ||
1099 | unsigned long rsvd_14 : 1; /* */ | ||
1100 | unsigned long t : 1; /* RO */ | ||
1101 | unsigned long m : 1; /* RW */ | ||
1102 | unsigned long rsvd_17_31: 15; /* */ | ||
1103 | unsigned long apic_id : 32; /* RW */ | ||
1104 | } s; | ||
1105 | }; | ||
1106 | |||
1107 | /* ========================================================================= */ | ||
1108 | /* UVH_RTC2_INT_CONFIG */ | ||
1109 | /* ========================================================================= */ | ||
1110 | #define UVH_RTC2_INT_CONFIG 0x61600UL | ||
1111 | |||
1112 | #define UVH_RTC2_INT_CONFIG_VECTOR_SHFT 0 | ||
1113 | #define UVH_RTC2_INT_CONFIG_VECTOR_MASK 0x00000000000000ffUL | ||
1114 | #define UVH_RTC2_INT_CONFIG_DM_SHFT 8 | ||
1115 | #define UVH_RTC2_INT_CONFIG_DM_MASK 0x0000000000000700UL | ||
1116 | #define UVH_RTC2_INT_CONFIG_DESTMODE_SHFT 11 | ||
1117 | #define UVH_RTC2_INT_CONFIG_DESTMODE_MASK 0x0000000000000800UL | ||
1118 | #define UVH_RTC2_INT_CONFIG_STATUS_SHFT 12 | ||
1119 | #define UVH_RTC2_INT_CONFIG_STATUS_MASK 0x0000000000001000UL | ||
1120 | #define UVH_RTC2_INT_CONFIG_P_SHFT 13 | ||
1121 | #define UVH_RTC2_INT_CONFIG_P_MASK 0x0000000000002000UL | ||
1122 | #define UVH_RTC2_INT_CONFIG_T_SHFT 15 | ||
1123 | #define UVH_RTC2_INT_CONFIG_T_MASK 0x0000000000008000UL | ||
1124 | #define UVH_RTC2_INT_CONFIG_M_SHFT 16 | ||
1125 | #define UVH_RTC2_INT_CONFIG_M_MASK 0x0000000000010000UL | ||
1126 | #define UVH_RTC2_INT_CONFIG_APIC_ID_SHFT 32 | ||
1127 | #define UVH_RTC2_INT_CONFIG_APIC_ID_MASK 0xffffffff00000000UL | ||
1128 | |||
1129 | union uvh_rtc2_int_config_u { | ||
1130 | unsigned long v; | ||
1131 | struct uvh_rtc2_int_config_s { | ||
1132 | unsigned long vector_ : 8; /* RW */ | ||
1133 | unsigned long dm : 3; /* RW */ | ||
1134 | unsigned long destmode : 1; /* RW */ | ||
1135 | unsigned long status : 1; /* RO */ | ||
1136 | unsigned long p : 1; /* RO */ | ||
1137 | unsigned long rsvd_14 : 1; /* */ | ||
1138 | unsigned long t : 1; /* RO */ | ||
1139 | unsigned long m : 1; /* RW */ | ||
1140 | unsigned long rsvd_17_31: 15; /* */ | ||
1141 | unsigned long apic_id : 32; /* RW */ | ||
1142 | } s; | ||
1143 | }; | ||
1144 | |||
1145 | /* ========================================================================= */ | ||
1146 | /* UVH_RTC3_INT_CONFIG */ | ||
1147 | /* ========================================================================= */ | ||
1148 | #define UVH_RTC3_INT_CONFIG 0x61640UL | ||
1149 | |||
1150 | #define UVH_RTC3_INT_CONFIG_VECTOR_SHFT 0 | ||
1151 | #define UVH_RTC3_INT_CONFIG_VECTOR_MASK 0x00000000000000ffUL | ||
1152 | #define UVH_RTC3_INT_CONFIG_DM_SHFT 8 | ||
1153 | #define UVH_RTC3_INT_CONFIG_DM_MASK 0x0000000000000700UL | ||
1154 | #define UVH_RTC3_INT_CONFIG_DESTMODE_SHFT 11 | ||
1155 | #define UVH_RTC3_INT_CONFIG_DESTMODE_MASK 0x0000000000000800UL | ||
1156 | #define UVH_RTC3_INT_CONFIG_STATUS_SHFT 12 | ||
1157 | #define UVH_RTC3_INT_CONFIG_STATUS_MASK 0x0000000000001000UL | ||
1158 | #define UVH_RTC3_INT_CONFIG_P_SHFT 13 | ||
1159 | #define UVH_RTC3_INT_CONFIG_P_MASK 0x0000000000002000UL | ||
1160 | #define UVH_RTC3_INT_CONFIG_T_SHFT 15 | ||
1161 | #define UVH_RTC3_INT_CONFIG_T_MASK 0x0000000000008000UL | ||
1162 | #define UVH_RTC3_INT_CONFIG_M_SHFT 16 | ||
1163 | #define UVH_RTC3_INT_CONFIG_M_MASK 0x0000000000010000UL | ||
1164 | #define UVH_RTC3_INT_CONFIG_APIC_ID_SHFT 32 | ||
1165 | #define UVH_RTC3_INT_CONFIG_APIC_ID_MASK 0xffffffff00000000UL | ||
1166 | |||
1167 | union uvh_rtc3_int_config_u { | ||
1168 | unsigned long v; | ||
1169 | struct uvh_rtc3_int_config_s { | ||
1170 | unsigned long vector_ : 8; /* RW */ | ||
1171 | unsigned long dm : 3; /* RW */ | ||
1172 | unsigned long destmode : 1; /* RW */ | ||
1173 | unsigned long status : 1; /* RO */ | ||
1174 | unsigned long p : 1; /* RO */ | ||
1175 | unsigned long rsvd_14 : 1; /* */ | ||
1176 | unsigned long t : 1; /* RO */ | ||
1177 | unsigned long m : 1; /* RW */ | ||
1178 | unsigned long rsvd_17_31: 15; /* */ | ||
1179 | unsigned long apic_id : 32; /* RW */ | ||
1180 | } s; | ||
1181 | }; | ||
1182 | |||
1183 | /* ========================================================================= */ | ||
1184 | /* UVH_RTC_INC_RATIO */ | ||
1185 | /* ========================================================================= */ | ||
1186 | #define UVH_RTC_INC_RATIO 0x350000UL | ||
1187 | |||
1188 | #define UVH_RTC_INC_RATIO_FRACTION_SHFT 0 | ||
1189 | #define UVH_RTC_INC_RATIO_FRACTION_MASK 0x00000000000fffffUL | ||
1190 | #define UVH_RTC_INC_RATIO_RATIO_SHFT 20 | ||
1191 | #define UVH_RTC_INC_RATIO_RATIO_MASK 0x0000000000700000UL | ||
1192 | |||
1193 | union uvh_rtc_inc_ratio_u { | ||
1194 | unsigned long v; | ||
1195 | struct uvh_rtc_inc_ratio_s { | ||
1196 | unsigned long fraction : 20; /* RW */ | ||
1197 | unsigned long ratio : 3; /* RW */ | ||
1198 | unsigned long rsvd_23_63: 41; /* */ | ||
1199 | } s; | ||
1200 | }; | ||
1201 | |||
1202 | /* ========================================================================= */ | ||
1203 | /* UVH_SI_ADDR_MAP_CONFIG */ | ||
1204 | /* ========================================================================= */ | ||
1205 | #define UVH_SI_ADDR_MAP_CONFIG 0xc80000UL | ||
1206 | |||
1207 | #define UVH_SI_ADDR_MAP_CONFIG_M_SKT_SHFT 0 | ||
1208 | #define UVH_SI_ADDR_MAP_CONFIG_M_SKT_MASK 0x000000000000003fUL | ||
1209 | #define UVH_SI_ADDR_MAP_CONFIG_N_SKT_SHFT 8 | ||
1210 | #define UVH_SI_ADDR_MAP_CONFIG_N_SKT_MASK 0x0000000000000f00UL | ||
1211 | |||
1212 | union uvh_si_addr_map_config_u { | ||
1213 | unsigned long v; | ||
1214 | struct uvh_si_addr_map_config_s { | ||
1215 | unsigned long m_skt : 6; /* RW */ | ||
1216 | unsigned long rsvd_6_7: 2; /* */ | ||
1217 | unsigned long n_skt : 4; /* RW */ | ||
1218 | unsigned long rsvd_12_63: 52; /* */ | ||
1219 | } s; | ||
1220 | }; | ||
1221 | |||
1222 | /* ========================================================================= */ | ||
1223 | /* UVH_SI_ALIAS0_OVERLAY_CONFIG */ | ||
1224 | /* ========================================================================= */ | ||
1225 | #define UVH_SI_ALIAS0_OVERLAY_CONFIG 0xc80008UL | ||
1226 | |||
1227 | #define UVH_SI_ALIAS0_OVERLAY_CONFIG_BASE_SHFT 24 | ||
1228 | #define UVH_SI_ALIAS0_OVERLAY_CONFIG_BASE_MASK 0x00000000ff000000UL | ||
1229 | #define UVH_SI_ALIAS0_OVERLAY_CONFIG_M_ALIAS_SHFT 48 | ||
1230 | #define UVH_SI_ALIAS0_OVERLAY_CONFIG_M_ALIAS_MASK 0x001f000000000000UL | ||
1231 | #define UVH_SI_ALIAS0_OVERLAY_CONFIG_ENABLE_SHFT 63 | ||
1232 | #define UVH_SI_ALIAS0_OVERLAY_CONFIG_ENABLE_MASK 0x8000000000000000UL | ||
1233 | |||
1234 | union uvh_si_alias0_overlay_config_u { | ||
1235 | unsigned long v; | ||
1236 | struct uvh_si_alias0_overlay_config_s { | ||
1237 | unsigned long rsvd_0_23: 24; /* */ | ||
1238 | unsigned long base : 8; /* RW */ | ||
1239 | unsigned long rsvd_32_47: 16; /* */ | ||
1240 | unsigned long m_alias : 5; /* RW */ | ||
1241 | unsigned long rsvd_53_62: 10; /* */ | ||
1242 | unsigned long enable : 1; /* RW */ | ||
1243 | } s; | ||
1244 | }; | ||
1245 | |||
1246 | /* ========================================================================= */ | ||
1247 | /* UVH_SI_ALIAS1_OVERLAY_CONFIG */ | ||
1248 | /* ========================================================================= */ | ||
1249 | #define UVH_SI_ALIAS1_OVERLAY_CONFIG 0xc80010UL | ||
1250 | |||
1251 | #define UVH_SI_ALIAS1_OVERLAY_CONFIG_BASE_SHFT 24 | ||
1252 | #define UVH_SI_ALIAS1_OVERLAY_CONFIG_BASE_MASK 0x00000000ff000000UL | ||
1253 | #define UVH_SI_ALIAS1_OVERLAY_CONFIG_M_ALIAS_SHFT 48 | ||
1254 | #define UVH_SI_ALIAS1_OVERLAY_CONFIG_M_ALIAS_MASK 0x001f000000000000UL | ||
1255 | #define UVH_SI_ALIAS1_OVERLAY_CONFIG_ENABLE_SHFT 63 | ||
1256 | #define UVH_SI_ALIAS1_OVERLAY_CONFIG_ENABLE_MASK 0x8000000000000000UL | ||
1257 | |||
1258 | union uvh_si_alias1_overlay_config_u { | ||
1259 | unsigned long v; | ||
1260 | struct uvh_si_alias1_overlay_config_s { | ||
1261 | unsigned long rsvd_0_23: 24; /* */ | ||
1262 | unsigned long base : 8; /* RW */ | ||
1263 | unsigned long rsvd_32_47: 16; /* */ | ||
1264 | unsigned long m_alias : 5; /* RW */ | ||
1265 | unsigned long rsvd_53_62: 10; /* */ | ||
1266 | unsigned long enable : 1; /* RW */ | ||
1267 | } s; | ||
1268 | }; | ||
1269 | |||
1270 | /* ========================================================================= */ | ||
1271 | /* UVH_SI_ALIAS2_OVERLAY_CONFIG */ | ||
1272 | /* ========================================================================= */ | ||
1273 | #define UVH_SI_ALIAS2_OVERLAY_CONFIG 0xc80018UL | ||
1274 | |||
1275 | #define UVH_SI_ALIAS2_OVERLAY_CONFIG_BASE_SHFT 24 | ||
1276 | #define UVH_SI_ALIAS2_OVERLAY_CONFIG_BASE_MASK 0x00000000ff000000UL | ||
1277 | #define UVH_SI_ALIAS2_OVERLAY_CONFIG_M_ALIAS_SHFT 48 | ||
1278 | #define UVH_SI_ALIAS2_OVERLAY_CONFIG_M_ALIAS_MASK 0x001f000000000000UL | ||
1279 | #define UVH_SI_ALIAS2_OVERLAY_CONFIG_ENABLE_SHFT 63 | ||
1280 | #define UVH_SI_ALIAS2_OVERLAY_CONFIG_ENABLE_MASK 0x8000000000000000UL | ||
1281 | |||
1282 | union uvh_si_alias2_overlay_config_u { | ||
1283 | unsigned long v; | ||
1284 | struct uvh_si_alias2_overlay_config_s { | ||
1285 | unsigned long rsvd_0_23: 24; /* */ | ||
1286 | unsigned long base : 8; /* RW */ | ||
1287 | unsigned long rsvd_32_47: 16; /* */ | ||
1288 | unsigned long m_alias : 5; /* RW */ | ||
1289 | unsigned long rsvd_53_62: 10; /* */ | ||
1290 | unsigned long enable : 1; /* RW */ | ||
1291 | } s; | ||
1292 | }; | ||
1293 | |||
1294 | |||
1295 | #endif /* _ASM_X86_UV_UV_MMRS_H */ | ||
diff --git a/arch/x86/include/asm/vdso.h b/arch/x86/include/asm/vdso.h new file mode 100644 index 000000000000..9064052b73de --- /dev/null +++ b/arch/x86/include/asm/vdso.h | |||
@@ -0,0 +1,47 @@ | |||
1 | #ifndef _ASM_X86_VDSO_H | ||
2 | #define _ASM_X86_VDSO_H | ||
3 | |||
4 | #ifdef CONFIG_X86_64 | ||
5 | extern const char VDSO64_PRELINK[]; | ||
6 | |||
7 | /* | ||
8 | * Given a pointer to the vDSO image, find the pointer to VDSO64_name | ||
9 | * as that symbol is defined in the vDSO sources or linker script. | ||
10 | */ | ||
11 | #define VDSO64_SYMBOL(base, name) \ | ||
12 | ({ \ | ||
13 | extern const char VDSO64_##name[]; \ | ||
14 | (void *)(VDSO64_##name - VDSO64_PRELINK + (unsigned long)(base)); \ | ||
15 | }) | ||
16 | #endif | ||
17 | |||
18 | #if defined CONFIG_X86_32 || defined CONFIG_COMPAT | ||
19 | extern const char VDSO32_PRELINK[]; | ||
20 | |||
21 | /* | ||
22 | * Given a pointer to the vDSO image, find the pointer to VDSO32_name | ||
23 | * as that symbol is defined in the vDSO sources or linker script. | ||
24 | */ | ||
25 | #define VDSO32_SYMBOL(base, name) \ | ||
26 | ({ \ | ||
27 | extern const char VDSO32_##name[]; \ | ||
28 | (void *)(VDSO32_##name - VDSO32_PRELINK + (unsigned long)(base)); \ | ||
29 | }) | ||
30 | #endif | ||
31 | |||
32 | /* | ||
33 | * These symbols are defined with the addresses in the vsyscall page. | ||
34 | * See vsyscall-sigreturn.S. | ||
35 | */ | ||
36 | extern void __user __kernel_sigreturn; | ||
37 | extern void __user __kernel_rt_sigreturn; | ||
38 | |||
39 | /* | ||
40 | * These symbols are defined by vdso32.S to mark the bounds | ||
41 | * of the ELF DSO images included therein. | ||
42 | */ | ||
43 | extern const char vdso32_int80_start, vdso32_int80_end; | ||
44 | extern const char vdso32_syscall_start, vdso32_syscall_end; | ||
45 | extern const char vdso32_sysenter_start, vdso32_sysenter_end; | ||
46 | |||
47 | #endif /* _ASM_X86_VDSO_H */ | ||
diff --git a/arch/x86/include/asm/vga.h b/arch/x86/include/asm/vga.h new file mode 100644 index 000000000000..c4b9dc2f67c5 --- /dev/null +++ b/arch/x86/include/asm/vga.h | |||
@@ -0,0 +1,20 @@ | |||
1 | /* | ||
2 | * Access to VGA videoram | ||
3 | * | ||
4 | * (c) 1998 Martin Mares <mj@ucw.cz> | ||
5 | */ | ||
6 | |||
7 | #ifndef _ASM_X86_VGA_H | ||
8 | #define _ASM_X86_VGA_H | ||
9 | |||
10 | /* | ||
11 | * On the PC, we can just recalculate addresses and then | ||
12 | * access the videoram directly without any black magic. | ||
13 | */ | ||
14 | |||
15 | #define VGA_MAP_MEM(x, s) (unsigned long)phys_to_virt(x) | ||
16 | |||
17 | #define vga_readb(x) (*(x)) | ||
18 | #define vga_writeb(x, y) (*(y) = (x)) | ||
19 | |||
20 | #endif /* _ASM_X86_VGA_H */ | ||
diff --git a/arch/x86/include/asm/vgtod.h b/arch/x86/include/asm/vgtod.h new file mode 100644 index 000000000000..dc27a69e5d2a --- /dev/null +++ b/arch/x86/include/asm/vgtod.h | |||
@@ -0,0 +1,29 @@ | |||
1 | #ifndef _ASM_X86_VGTOD_H | ||
2 | #define _ASM_X86_VGTOD_H | ||
3 | |||
4 | #include <asm/vsyscall.h> | ||
5 | #include <linux/clocksource.h> | ||
6 | |||
7 | struct vsyscall_gtod_data { | ||
8 | seqlock_t lock; | ||
9 | |||
10 | /* open coded 'struct timespec' */ | ||
11 | time_t wall_time_sec; | ||
12 | u32 wall_time_nsec; | ||
13 | |||
14 | int sysctl_enabled; | ||
15 | struct timezone sys_tz; | ||
16 | struct { /* extract of a clocksource struct */ | ||
17 | cycle_t (*vread)(void); | ||
18 | cycle_t cycle_last; | ||
19 | cycle_t mask; | ||
20 | u32 mult; | ||
21 | u32 shift; | ||
22 | } clock; | ||
23 | struct timespec wall_to_monotonic; | ||
24 | }; | ||
25 | extern struct vsyscall_gtod_data __vsyscall_gtod_data | ||
26 | __section_vsyscall_gtod_data; | ||
27 | extern struct vsyscall_gtod_data vsyscall_gtod_data; | ||
28 | |||
29 | #endif /* _ASM_X86_VGTOD_H */ | ||
diff --git a/arch/x86/include/asm/vic.h b/arch/x86/include/asm/vic.h new file mode 100644 index 000000000000..53100f353612 --- /dev/null +++ b/arch/x86/include/asm/vic.h | |||
@@ -0,0 +1,61 @@ | |||
1 | /* Copyright (C) 1999,2001 | ||
2 | * | ||
3 | * Author: J.E.J.Bottomley@HansenPartnership.com | ||
4 | * | ||
5 | * Standard include definitions for the NCR Voyager Interrupt Controller */ | ||
6 | |||
7 | /* The eight CPI vectors. To activate a CPI, you write a bit mask | ||
8 | * corresponding to the processor set to be interrupted into the | ||
9 | * relevant register. That set of CPUs will then be interrupted with | ||
10 | * the CPI */ | ||
11 | static const int VIC_CPI_Registers[] = | ||
12 | {0xFC00, 0xFC01, 0xFC08, 0xFC09, | ||
13 | 0xFC10, 0xFC11, 0xFC18, 0xFC19 }; | ||
14 | |||
15 | #define VIC_PROC_WHO_AM_I 0xfc29 | ||
16 | # define QUAD_IDENTIFIER 0xC0 | ||
17 | # define EIGHT_SLOT_IDENTIFIER 0xE0 | ||
18 | #define QIC_EXTENDED_PROCESSOR_SELECT 0xFC72 | ||
19 | #define VIC_CPI_BASE_REGISTER 0xFC41 | ||
20 | #define VIC_PROCESSOR_ID 0xFC21 | ||
21 | # define VIC_CPU_MASQUERADE_ENABLE 0x8 | ||
22 | |||
23 | #define VIC_CLAIM_REGISTER_0 0xFC38 | ||
24 | #define VIC_CLAIM_REGISTER_1 0xFC39 | ||
25 | #define VIC_REDIRECT_REGISTER_0 0xFC60 | ||
26 | #define VIC_REDIRECT_REGISTER_1 0xFC61 | ||
27 | #define VIC_PRIORITY_REGISTER 0xFC20 | ||
28 | |||
29 | #define VIC_PRIMARY_MC_BASE 0xFC48 | ||
30 | #define VIC_SECONDARY_MC_BASE 0xFC49 | ||
31 | |||
32 | #define QIC_PROCESSOR_ID 0xFC71 | ||
33 | # define QIC_CPUID_ENABLE 0x08 | ||
34 | |||
35 | #define QIC_VIC_CPI_BASE_REGISTER 0xFC79 | ||
36 | #define QIC_CPI_BASE_REGISTER 0xFC7A | ||
37 | |||
38 | #define QIC_MASK_REGISTER0 0xFC80 | ||
39 | /* NOTE: these are masked high, enabled low */ | ||
40 | # define QIC_PERF_TIMER 0x01 | ||
41 | # define QIC_LPE 0x02 | ||
42 | # define QIC_SYS_INT 0x04 | ||
43 | # define QIC_CMN_INT 0x08 | ||
44 | /* at the moment, just enable CMN_INT, disable SYS_INT */ | ||
45 | # define QIC_DEFAULT_MASK0 (~(QIC_CMN_INT /* | VIC_SYS_INT */)) | ||
46 | #define QIC_MASK_REGISTER1 0xFC81 | ||
47 | # define QIC_BOOT_CPI_MASK 0xFE | ||
48 | /* Enable CPI's 1-6 inclusive */ | ||
49 | # define QIC_CPI_ENABLE 0x81 | ||
50 | |||
51 | #define QIC_INTERRUPT_CLEAR0 0xFC8A | ||
52 | #define QIC_INTERRUPT_CLEAR1 0xFC8B | ||
53 | |||
54 | /* this is where we place the CPI vectors */ | ||
55 | #define VIC_DEFAULT_CPI_BASE 0xC0 | ||
56 | /* this is where we place the QIC CPI vectors */ | ||
57 | #define QIC_DEFAULT_CPI_BASE 0xD0 | ||
58 | |||
59 | #define VIC_BOOT_INTERRUPT_MASK 0xfe | ||
60 | |||
61 | extern void smp_vic_timer_interrupt(void); | ||
diff --git a/arch/x86/include/asm/visws/cobalt.h b/arch/x86/include/asm/visws/cobalt.h new file mode 100644 index 000000000000..166adf61e770 --- /dev/null +++ b/arch/x86/include/asm/visws/cobalt.h | |||
@@ -0,0 +1,125 @@ | |||
1 | #ifndef _ASM_X86_VISWS_COBALT_H | ||
2 | #define _ASM_X86_VISWS_COBALT_H | ||
3 | |||
4 | #include <asm/fixmap.h> | ||
5 | |||
6 | /* | ||
7 | * Cobalt SGI Visual Workstation system ASIC | ||
8 | */ | ||
9 | |||
10 | #define CO_CPU_NUM_PHYS 0x1e00 | ||
11 | #define CO_CPU_TAB_PHYS (CO_CPU_NUM_PHYS + 2) | ||
12 | |||
13 | #define CO_CPU_MAX 4 | ||
14 | |||
15 | #define CO_CPU_PHYS 0xc2000000 | ||
16 | #define CO_APIC_PHYS 0xc4000000 | ||
17 | |||
18 | /* see set_fixmap() and asm/fixmap.h */ | ||
19 | #define CO_CPU_VADDR (fix_to_virt(FIX_CO_CPU)) | ||
20 | #define CO_APIC_VADDR (fix_to_virt(FIX_CO_APIC)) | ||
21 | |||
22 | /* Cobalt CPU registers -- relative to CO_CPU_VADDR, use co_cpu_*() */ | ||
23 | #define CO_CPU_REV 0x08 | ||
24 | #define CO_CPU_CTRL 0x10 | ||
25 | #define CO_CPU_STAT 0x20 | ||
26 | #define CO_CPU_TIMEVAL 0x30 | ||
27 | |||
28 | /* CO_CPU_CTRL bits */ | ||
29 | #define CO_CTRL_TIMERUN 0x04 /* 0 == disabled */ | ||
30 | #define CO_CTRL_TIMEMASK 0x08 /* 0 == unmasked */ | ||
31 | |||
32 | /* CO_CPU_STATUS bits */ | ||
33 | #define CO_STAT_TIMEINTR 0x02 /* (r) 1 == int pend, (w) 0 == clear */ | ||
34 | |||
35 | /* CO_CPU_TIMEVAL value */ | ||
36 | #define CO_TIME_HZ 100000000 /* Cobalt core rate */ | ||
37 | |||
38 | /* Cobalt APIC registers -- relative to CO_APIC_VADDR, use co_apic_*() */ | ||
39 | #define CO_APIC_HI(n) (((n) * 0x10) + 4) | ||
40 | #define CO_APIC_LO(n) ((n) * 0x10) | ||
41 | #define CO_APIC_ID 0x0ffc | ||
42 | |||
43 | /* CO_APIC_ID bits */ | ||
44 | #define CO_APIC_ENABLE 0x00000100 | ||
45 | |||
46 | /* CO_APIC_LO bits */ | ||
47 | #define CO_APIC_MASK 0x00010000 /* 0 = enabled */ | ||
48 | #define CO_APIC_LEVEL 0x00008000 /* 0 = edge */ | ||
49 | |||
50 | /* | ||
51 | * Where things are physically wired to Cobalt | ||
52 | * #defines with no board _<type>_<rev>_ are common to all (thus far) | ||
53 | */ | ||
54 | #define CO_APIC_IDE0 4 | ||
55 | #define CO_APIC_IDE1 2 /* Only on 320 */ | ||
56 | |||
57 | #define CO_APIC_8259 12 /* serial, floppy, par-l-l */ | ||
58 | |||
59 | /* Lithium PCI Bridge A -- "the one with 82557 Ethernet" */ | ||
60 | #define CO_APIC_PCIA_BASE0 0 /* and 1 */ /* slot 0, line 0 */ | ||
61 | #define CO_APIC_PCIA_BASE123 5 /* and 6 */ /* slot 0, line 1 */ | ||
62 | |||
63 | #define CO_APIC_PIIX4_USB 7 /* this one is weird */ | ||
64 | |||
65 | /* Lithium PCI Bridge B -- "the one with PIIX4" */ | ||
66 | #define CO_APIC_PCIB_BASE0 8 /* and 9-12 *//* slot 0, line 0 */ | ||
67 | #define CO_APIC_PCIB_BASE123 13 /* 14.15 */ /* slot 0, line 1 */ | ||
68 | |||
69 | #define CO_APIC_VIDOUT0 16 | ||
70 | #define CO_APIC_VIDOUT1 17 | ||
71 | #define CO_APIC_VIDIN0 18 | ||
72 | #define CO_APIC_VIDIN1 19 | ||
73 | |||
74 | #define CO_APIC_LI_AUDIO 22 | ||
75 | |||
76 | #define CO_APIC_AS 24 | ||
77 | #define CO_APIC_RE 25 | ||
78 | |||
79 | #define CO_APIC_CPU 28 /* Timer and Cache interrupt */ | ||
80 | #define CO_APIC_NMI 29 | ||
81 | #define CO_APIC_LAST CO_APIC_NMI | ||
82 | |||
83 | /* | ||
84 | * This is how irqs are assigned on the Visual Workstation. | ||
85 | * Legacy devices get irq's 1-15 (system clock is 0 and is CO_APIC_CPU). | ||
86 | * All other devices (including PCI) go to Cobalt and are irq's 16 on up. | ||
87 | */ | ||
88 | #define CO_IRQ_APIC0 16 /* irq of apic entry 0 */ | ||
89 | #define IS_CO_APIC(irq) ((irq) >= CO_IRQ_APIC0) | ||
90 | #define CO_IRQ(apic) (CO_IRQ_APIC0 + (apic)) /* apic ent to irq */ | ||
91 | #define CO_APIC(irq) ((irq) - CO_IRQ_APIC0) /* irq to apic ent */ | ||
92 | #define CO_IRQ_IDE0 14 /* knowledge of... */ | ||
93 | #define CO_IRQ_IDE1 15 /* ... ide driver defaults! */ | ||
94 | #define CO_IRQ_8259 CO_IRQ(CO_APIC_8259) | ||
95 | |||
96 | #ifdef CONFIG_X86_VISWS_APIC | ||
97 | static inline void co_cpu_write(unsigned long reg, unsigned long v) | ||
98 | { | ||
99 | *((volatile unsigned long *)(CO_CPU_VADDR+reg))=v; | ||
100 | } | ||
101 | |||
102 | static inline unsigned long co_cpu_read(unsigned long reg) | ||
103 | { | ||
104 | return *((volatile unsigned long *)(CO_CPU_VADDR+reg)); | ||
105 | } | ||
106 | |||
107 | static inline void co_apic_write(unsigned long reg, unsigned long v) | ||
108 | { | ||
109 | *((volatile unsigned long *)(CO_APIC_VADDR+reg))=v; | ||
110 | } | ||
111 | |||
112 | static inline unsigned long co_apic_read(unsigned long reg) | ||
113 | { | ||
114 | return *((volatile unsigned long *)(CO_APIC_VADDR+reg)); | ||
115 | } | ||
116 | #endif | ||
117 | |||
118 | extern char visws_board_type; | ||
119 | |||
120 | #define VISWS_320 0 | ||
121 | #define VISWS_540 1 | ||
122 | |||
123 | extern char visws_board_rev; | ||
124 | |||
125 | #endif /* _ASM_X86_VISWS_COBALT_H */ | ||
diff --git a/arch/x86/include/asm/visws/lithium.h b/arch/x86/include/asm/visws/lithium.h new file mode 100644 index 000000000000..a10d89bc1270 --- /dev/null +++ b/arch/x86/include/asm/visws/lithium.h | |||
@@ -0,0 +1,53 @@ | |||
1 | #ifndef _ASM_X86_VISWS_LITHIUM_H | ||
2 | #define _ASM_X86_VISWS_LITHIUM_H | ||
3 | |||
4 | #include <asm/fixmap.h> | ||
5 | |||
6 | /* | ||
7 | * Lithium is the SGI Visual Workstation I/O ASIC | ||
8 | */ | ||
9 | |||
10 | #define LI_PCI_A_PHYS 0xfc000000 /* Enet is dev 3 */ | ||
11 | #define LI_PCI_B_PHYS 0xfd000000 /* PIIX4 is here */ | ||
12 | |||
13 | /* see set_fixmap() and asm/fixmap.h */ | ||
14 | #define LI_PCIA_VADDR (fix_to_virt(FIX_LI_PCIA)) | ||
15 | #define LI_PCIB_VADDR (fix_to_virt(FIX_LI_PCIB)) | ||
16 | |||
17 | /* Not a standard PCI? (not in linux/pci.h) */ | ||
18 | #define LI_PCI_BUSNUM 0x44 /* lo8: primary, hi8: sub */ | ||
19 | #define LI_PCI_INTEN 0x46 | ||
20 | |||
21 | /* LI_PCI_INTENT bits */ | ||
22 | #define LI_INTA_0 0x0001 | ||
23 | #define LI_INTA_1 0x0002 | ||
24 | #define LI_INTA_2 0x0004 | ||
25 | #define LI_INTA_3 0x0008 | ||
26 | #define LI_INTA_4 0x0010 | ||
27 | #define LI_INTB 0x0020 | ||
28 | #define LI_INTC 0x0040 | ||
29 | #define LI_INTD 0x0080 | ||
30 | |||
31 | /* More special purpose macros... */ | ||
32 | static inline void li_pcia_write16(unsigned long reg, unsigned short v) | ||
33 | { | ||
34 | *((volatile unsigned short *)(LI_PCIA_VADDR+reg))=v; | ||
35 | } | ||
36 | |||
37 | static inline unsigned short li_pcia_read16(unsigned long reg) | ||
38 | { | ||
39 | return *((volatile unsigned short *)(LI_PCIA_VADDR+reg)); | ||
40 | } | ||
41 | |||
42 | static inline void li_pcib_write16(unsigned long reg, unsigned short v) | ||
43 | { | ||
44 | *((volatile unsigned short *)(LI_PCIB_VADDR+reg))=v; | ||
45 | } | ||
46 | |||
47 | static inline unsigned short li_pcib_read16(unsigned long reg) | ||
48 | { | ||
49 | return *((volatile unsigned short *)(LI_PCIB_VADDR+reg)); | ||
50 | } | ||
51 | |||
52 | #endif /* _ASM_X86_VISWS_LITHIUM_H */ | ||
53 | |||
diff --git a/arch/x86/include/asm/visws/piix4.h b/arch/x86/include/asm/visws/piix4.h new file mode 100644 index 000000000000..d0af4d338e7f --- /dev/null +++ b/arch/x86/include/asm/visws/piix4.h | |||
@@ -0,0 +1,107 @@ | |||
1 | #ifndef _ASM_X86_VISWS_PIIX4_H | ||
2 | #define _ASM_X86_VISWS_PIIX4_H | ||
3 | |||
4 | /* | ||
5 | * PIIX4 as used on SGI Visual Workstations | ||
6 | */ | ||
7 | |||
8 | #define PIIX_PM_START 0x0F80 | ||
9 | |||
10 | #define SIO_GPIO_START 0x0FC0 | ||
11 | |||
12 | #define SIO_PM_START 0x0FC8 | ||
13 | |||
14 | #define PMBASE PIIX_PM_START | ||
15 | #define GPIREG0 (PMBASE+0x30) | ||
16 | #define GPIREG(x) (GPIREG0+((x)/8)) | ||
17 | #define GPIBIT(x) (1 << ((x)%8)) | ||
18 | |||
19 | #define PIIX_GPI_BD_ID1 18 | ||
20 | #define PIIX_GPI_BD_ID2 19 | ||
21 | #define PIIX_GPI_BD_ID3 20 | ||
22 | #define PIIX_GPI_BD_ID4 21 | ||
23 | #define PIIX_GPI_BD_REG GPIREG(PIIX_GPI_BD_ID1) | ||
24 | #define PIIX_GPI_BD_MASK (GPIBIT(PIIX_GPI_BD_ID1) | \ | ||
25 | GPIBIT(PIIX_GPI_BD_ID2) | \ | ||
26 | GPIBIT(PIIX_GPI_BD_ID3) | \ | ||
27 | GPIBIT(PIIX_GPI_BD_ID4) ) | ||
28 | |||
29 | #define PIIX_GPI_BD_SHIFT (PIIX_GPI_BD_ID1 % 8) | ||
30 | |||
31 | #define SIO_INDEX 0x2e | ||
32 | #define SIO_DATA 0x2f | ||
33 | |||
34 | #define SIO_DEV_SEL 0x7 | ||
35 | #define SIO_DEV_ENB 0x30 | ||
36 | #define SIO_DEV_MSB 0x60 | ||
37 | #define SIO_DEV_LSB 0x61 | ||
38 | |||
39 | #define SIO_GP_DEV 0x7 | ||
40 | |||
41 | #define SIO_GP_BASE SIO_GPIO_START | ||
42 | #define SIO_GP_MSB (SIO_GP_BASE>>8) | ||
43 | #define SIO_GP_LSB (SIO_GP_BASE&0xff) | ||
44 | |||
45 | #define SIO_GP_DATA1 (SIO_GP_BASE+0) | ||
46 | |||
47 | #define SIO_PM_DEV 0x8 | ||
48 | |||
49 | #define SIO_PM_BASE SIO_PM_START | ||
50 | #define SIO_PM_MSB (SIO_PM_BASE>>8) | ||
51 | #define SIO_PM_LSB (SIO_PM_BASE&0xff) | ||
52 | #define SIO_PM_INDEX (SIO_PM_BASE+0) | ||
53 | #define SIO_PM_DATA (SIO_PM_BASE+1) | ||
54 | |||
55 | #define SIO_PM_FER2 0x1 | ||
56 | |||
57 | #define SIO_PM_GP_EN 0x80 | ||
58 | |||
59 | |||
60 | |||
61 | /* | ||
62 | * This is the dev/reg where generating a config cycle will | ||
63 | * result in a PCI special cycle. | ||
64 | */ | ||
65 | #define SPECIAL_DEV 0xff | ||
66 | #define SPECIAL_REG 0x00 | ||
67 | |||
68 | /* | ||
69 | * PIIX4 needs to see a special cycle with the following data | ||
70 | * to be convinced the processor has gone into the stop grant | ||
71 | * state. PIIX4 insists on seeing this before it will power | ||
72 | * down a system. | ||
73 | */ | ||
74 | #define PIIX_SPECIAL_STOP 0x00120002 | ||
75 | |||
76 | #define PIIX4_RESET_PORT 0xcf9 | ||
77 | #define PIIX4_RESET_VAL 0x6 | ||
78 | |||
79 | #define PMSTS_PORT 0xf80 // 2 bytes PM Status | ||
80 | #define PMEN_PORT 0xf82 // 2 bytes PM Enable | ||
81 | #define PMCNTRL_PORT 0xf84 // 2 bytes PM Control | ||
82 | |||
83 | #define PM_SUSPEND_ENABLE 0x2000 // start sequence to suspend state | ||
84 | |||
85 | /* | ||
86 | * PMSTS and PMEN I/O bit definitions. | ||
87 | * (Bits are the same in both registers) | ||
88 | */ | ||
89 | #define PM_STS_RSM (1<<15) // Resume Status | ||
90 | #define PM_STS_PWRBTNOR (1<<11) // Power Button Override | ||
91 | #define PM_STS_RTC (1<<10) // RTC status | ||
92 | #define PM_STS_PWRBTN (1<<8) // Power Button Pressed? | ||
93 | #define PM_STS_GBL (1<<5) // Global Status | ||
94 | #define PM_STS_BM (1<<4) // Bus Master Status | ||
95 | #define PM_STS_TMROF (1<<0) // Timer Overflow Status. | ||
96 | |||
97 | /* | ||
98 | * Stop clock GPI register | ||
99 | */ | ||
100 | #define PIIX_GPIREG0 (0xf80 + 0x30) | ||
101 | |||
102 | /* | ||
103 | * Stop clock GPI bit in GPIREG0 | ||
104 | */ | ||
105 | #define PIIX_GPI_STPCLK 0x4 // STPCLK signal routed back in | ||
106 | |||
107 | #endif /* _ASM_X86_VISWS_PIIX4_H */ | ||
diff --git a/arch/x86/include/asm/visws/sgivw.h b/arch/x86/include/asm/visws/sgivw.h new file mode 100644 index 000000000000..5fbf63e1003c --- /dev/null +++ b/arch/x86/include/asm/visws/sgivw.h | |||
@@ -0,0 +1,5 @@ | |||
1 | /* | ||
2 | * Frame buffer position and size: | ||
3 | */ | ||
4 | extern unsigned long sgivwfb_mem_phys; | ||
5 | extern unsigned long sgivwfb_mem_size; | ||
diff --git a/arch/x86/include/asm/vm86.h b/arch/x86/include/asm/vm86.h new file mode 100644 index 000000000000..f9303602fbc0 --- /dev/null +++ b/arch/x86/include/asm/vm86.h | |||
@@ -0,0 +1,208 @@ | |||
1 | #ifndef _ASM_X86_VM86_H | ||
2 | #define _ASM_X86_VM86_H | ||
3 | |||
4 | /* | ||
5 | * I'm guessing at the VIF/VIP flag usage, but hope that this is how | ||
6 | * the Pentium uses them. Linux will return from vm86 mode when both | ||
7 | * VIF and VIP is set. | ||
8 | * | ||
9 | * On a Pentium, we could probably optimize the virtual flags directly | ||
10 | * in the eflags register instead of doing it "by hand" in vflags... | ||
11 | * | ||
12 | * Linus | ||
13 | */ | ||
14 | |||
15 | #include <asm/processor-flags.h> | ||
16 | |||
17 | #define BIOSSEG 0x0f000 | ||
18 | |||
19 | #define CPU_086 0 | ||
20 | #define CPU_186 1 | ||
21 | #define CPU_286 2 | ||
22 | #define CPU_386 3 | ||
23 | #define CPU_486 4 | ||
24 | #define CPU_586 5 | ||
25 | |||
26 | /* | ||
27 | * Return values for the 'vm86()' system call | ||
28 | */ | ||
29 | #define VM86_TYPE(retval) ((retval) & 0xff) | ||
30 | #define VM86_ARG(retval) ((retval) >> 8) | ||
31 | |||
32 | #define VM86_SIGNAL 0 /* return due to signal */ | ||
33 | #define VM86_UNKNOWN 1 /* unhandled GP fault | ||
34 | - IO-instruction or similar */ | ||
35 | #define VM86_INTx 2 /* int3/int x instruction (ARG = x) */ | ||
36 | #define VM86_STI 3 /* sti/popf/iret instruction enabled | ||
37 | virtual interrupts */ | ||
38 | |||
39 | /* | ||
40 | * Additional return values when invoking new vm86() | ||
41 | */ | ||
42 | #define VM86_PICRETURN 4 /* return due to pending PIC request */ | ||
43 | #define VM86_TRAP 6 /* return due to DOS-debugger request */ | ||
44 | |||
45 | /* | ||
46 | * function codes when invoking new vm86() | ||
47 | */ | ||
48 | #define VM86_PLUS_INSTALL_CHECK 0 | ||
49 | #define VM86_ENTER 1 | ||
50 | #define VM86_ENTER_NO_BYPASS 2 | ||
51 | #define VM86_REQUEST_IRQ 3 | ||
52 | #define VM86_FREE_IRQ 4 | ||
53 | #define VM86_GET_IRQ_BITS 5 | ||
54 | #define VM86_GET_AND_RESET_IRQ 6 | ||
55 | |||
56 | /* | ||
57 | * This is the stack-layout seen by the user space program when we have | ||
58 | * done a translation of "SAVE_ALL" from vm86 mode. The real kernel layout | ||
59 | * is 'kernel_vm86_regs' (see below). | ||
60 | */ | ||
61 | |||
62 | struct vm86_regs { | ||
63 | /* | ||
64 | * normal regs, with special meaning for the segment descriptors.. | ||
65 | */ | ||
66 | long ebx; | ||
67 | long ecx; | ||
68 | long edx; | ||
69 | long esi; | ||
70 | long edi; | ||
71 | long ebp; | ||
72 | long eax; | ||
73 | long __null_ds; | ||
74 | long __null_es; | ||
75 | long __null_fs; | ||
76 | long __null_gs; | ||
77 | long orig_eax; | ||
78 | long eip; | ||
79 | unsigned short cs, __csh; | ||
80 | long eflags; | ||
81 | long esp; | ||
82 | unsigned short ss, __ssh; | ||
83 | /* | ||
84 | * these are specific to v86 mode: | ||
85 | */ | ||
86 | unsigned short es, __esh; | ||
87 | unsigned short ds, __dsh; | ||
88 | unsigned short fs, __fsh; | ||
89 | unsigned short gs, __gsh; | ||
90 | }; | ||
91 | |||
92 | struct revectored_struct { | ||
93 | unsigned long __map[8]; /* 256 bits */ | ||
94 | }; | ||
95 | |||
96 | struct vm86_struct { | ||
97 | struct vm86_regs regs; | ||
98 | unsigned long flags; | ||
99 | unsigned long screen_bitmap; | ||
100 | unsigned long cpu_type; | ||
101 | struct revectored_struct int_revectored; | ||
102 | struct revectored_struct int21_revectored; | ||
103 | }; | ||
104 | |||
105 | /* | ||
106 | * flags masks | ||
107 | */ | ||
108 | #define VM86_SCREEN_BITMAP 0x0001 | ||
109 | |||
110 | struct vm86plus_info_struct { | ||
111 | unsigned long force_return_for_pic:1; | ||
112 | unsigned long vm86dbg_active:1; /* for debugger */ | ||
113 | unsigned long vm86dbg_TFpendig:1; /* for debugger */ | ||
114 | unsigned long unused:28; | ||
115 | unsigned long is_vm86pus:1; /* for vm86 internal use */ | ||
116 | unsigned char vm86dbg_intxxtab[32]; /* for debugger */ | ||
117 | }; | ||
118 | struct vm86plus_struct { | ||
119 | struct vm86_regs regs; | ||
120 | unsigned long flags; | ||
121 | unsigned long screen_bitmap; | ||
122 | unsigned long cpu_type; | ||
123 | struct revectored_struct int_revectored; | ||
124 | struct revectored_struct int21_revectored; | ||
125 | struct vm86plus_info_struct vm86plus; | ||
126 | }; | ||
127 | |||
128 | #ifdef __KERNEL__ | ||
129 | |||
130 | #include <asm/ptrace.h> | ||
131 | |||
132 | /* | ||
133 | * This is the (kernel) stack-layout when we have done a "SAVE_ALL" from vm86 | ||
134 | * mode - the main change is that the old segment descriptors aren't | ||
135 | * useful any more and are forced to be zero by the kernel (and the | ||
136 | * hardware when a trap occurs), and the real segment descriptors are | ||
137 | * at the end of the structure. Look at ptrace.h to see the "normal" | ||
138 | * setup. For user space layout see 'struct vm86_regs' above. | ||
139 | */ | ||
140 | |||
141 | struct kernel_vm86_regs { | ||
142 | /* | ||
143 | * normal regs, with special meaning for the segment descriptors.. | ||
144 | */ | ||
145 | struct pt_regs pt; | ||
146 | /* | ||
147 | * these are specific to v86 mode: | ||
148 | */ | ||
149 | unsigned short es, __esh; | ||
150 | unsigned short ds, __dsh; | ||
151 | unsigned short fs, __fsh; | ||
152 | unsigned short gs, __gsh; | ||
153 | }; | ||
154 | |||
155 | struct kernel_vm86_struct { | ||
156 | struct kernel_vm86_regs regs; | ||
157 | /* | ||
158 | * the below part remains on the kernel stack while we are in VM86 mode. | ||
159 | * 'tss.esp0' then contains the address of VM86_TSS_ESP0 below, and when we | ||
160 | * get forced back from VM86, the CPU and "SAVE_ALL" will restore the above | ||
161 | * 'struct kernel_vm86_regs' with the then actual values. | ||
162 | * Therefore, pt_regs in fact points to a complete 'kernel_vm86_struct' | ||
163 | * in kernelspace, hence we need not reget the data from userspace. | ||
164 | */ | ||
165 | #define VM86_TSS_ESP0 flags | ||
166 | unsigned long flags; | ||
167 | unsigned long screen_bitmap; | ||
168 | unsigned long cpu_type; | ||
169 | struct revectored_struct int_revectored; | ||
170 | struct revectored_struct int21_revectored; | ||
171 | struct vm86plus_info_struct vm86plus; | ||
172 | struct pt_regs *regs32; /* here we save the pointer to the old regs */ | ||
173 | /* | ||
174 | * The below is not part of the structure, but the stack layout continues | ||
175 | * this way. In front of 'return-eip' may be some data, depending on | ||
176 | * compilation, so we don't rely on this and save the pointer to 'oldregs' | ||
177 | * in 'regs32' above. | ||
178 | * However, with GCC-2.7.2 and the current CFLAGS you see exactly this: | ||
179 | |||
180 | long return-eip; from call to vm86() | ||
181 | struct pt_regs oldregs; user space registers as saved by syscall | ||
182 | */ | ||
183 | }; | ||
184 | |||
185 | #ifdef CONFIG_VM86 | ||
186 | |||
187 | void handle_vm86_fault(struct kernel_vm86_regs *, long); | ||
188 | int handle_vm86_trap(struct kernel_vm86_regs *, long, int); | ||
189 | struct pt_regs *save_v86_state(struct kernel_vm86_regs *); | ||
190 | |||
191 | struct task_struct; | ||
192 | void release_vm86_irqs(struct task_struct *); | ||
193 | |||
194 | #else | ||
195 | |||
196 | #define handle_vm86_fault(a, b) | ||
197 | #define release_vm86_irqs(a) | ||
198 | |||
199 | static inline int handle_vm86_trap(struct kernel_vm86_regs *a, long b, int c) | ||
200 | { | ||
201 | return 0; | ||
202 | } | ||
203 | |||
204 | #endif /* CONFIG_VM86 */ | ||
205 | |||
206 | #endif /* __KERNEL__ */ | ||
207 | |||
208 | #endif /* _ASM_X86_VM86_H */ | ||
diff --git a/arch/x86/include/asm/vmi.h b/arch/x86/include/asm/vmi.h new file mode 100644 index 000000000000..b7c0dea119fe --- /dev/null +++ b/arch/x86/include/asm/vmi.h | |||
@@ -0,0 +1,263 @@ | |||
1 | /* | ||
2 | * VMI interface definition | ||
3 | * | ||
4 | * Copyright (C) 2005, VMware, Inc. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, but | ||
12 | * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or | ||
14 | * NON INFRINGEMENT. See the GNU General Public License for more | ||
15 | * details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program; if not, write to the Free Software | ||
19 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
20 | * | ||
21 | * Maintained by: Zachary Amsden zach@vmware.com | ||
22 | * | ||
23 | */ | ||
24 | #include <linux/types.h> | ||
25 | |||
26 | /* | ||
27 | *--------------------------------------------------------------------- | ||
28 | * | ||
29 | * VMI Option ROM API | ||
30 | * | ||
31 | *--------------------------------------------------------------------- | ||
32 | */ | ||
33 | #define VMI_SIGNATURE 0x696d5663 /* "cVmi" */ | ||
34 | |||
35 | #define PCI_VENDOR_ID_VMWARE 0x15AD | ||
36 | #define PCI_DEVICE_ID_VMWARE_VMI 0x0801 | ||
37 | |||
38 | /* | ||
39 | * We use two version numbers for compatibility, with the major | ||
40 | * number signifying interface breakages, and the minor number | ||
41 | * interface extensions. | ||
42 | */ | ||
43 | #define VMI_API_REV_MAJOR 3 | ||
44 | #define VMI_API_REV_MINOR 0 | ||
45 | |||
46 | #define VMI_CALL_CPUID 0 | ||
47 | #define VMI_CALL_WRMSR 1 | ||
48 | #define VMI_CALL_RDMSR 2 | ||
49 | #define VMI_CALL_SetGDT 3 | ||
50 | #define VMI_CALL_SetLDT 4 | ||
51 | #define VMI_CALL_SetIDT 5 | ||
52 | #define VMI_CALL_SetTR 6 | ||
53 | #define VMI_CALL_GetGDT 7 | ||
54 | #define VMI_CALL_GetLDT 8 | ||
55 | #define VMI_CALL_GetIDT 9 | ||
56 | #define VMI_CALL_GetTR 10 | ||
57 | #define VMI_CALL_WriteGDTEntry 11 | ||
58 | #define VMI_CALL_WriteLDTEntry 12 | ||
59 | #define VMI_CALL_WriteIDTEntry 13 | ||
60 | #define VMI_CALL_UpdateKernelStack 14 | ||
61 | #define VMI_CALL_SetCR0 15 | ||
62 | #define VMI_CALL_SetCR2 16 | ||
63 | #define VMI_CALL_SetCR3 17 | ||
64 | #define VMI_CALL_SetCR4 18 | ||
65 | #define VMI_CALL_GetCR0 19 | ||
66 | #define VMI_CALL_GetCR2 20 | ||
67 | #define VMI_CALL_GetCR3 21 | ||
68 | #define VMI_CALL_GetCR4 22 | ||
69 | #define VMI_CALL_WBINVD 23 | ||
70 | #define VMI_CALL_SetDR 24 | ||
71 | #define VMI_CALL_GetDR 25 | ||
72 | #define VMI_CALL_RDPMC 26 | ||
73 | #define VMI_CALL_RDTSC 27 | ||
74 | #define VMI_CALL_CLTS 28 | ||
75 | #define VMI_CALL_EnableInterrupts 29 | ||
76 | #define VMI_CALL_DisableInterrupts 30 | ||
77 | #define VMI_CALL_GetInterruptMask 31 | ||
78 | #define VMI_CALL_SetInterruptMask 32 | ||
79 | #define VMI_CALL_IRET 33 | ||
80 | #define VMI_CALL_SYSEXIT 34 | ||
81 | #define VMI_CALL_Halt 35 | ||
82 | #define VMI_CALL_Reboot 36 | ||
83 | #define VMI_CALL_Shutdown 37 | ||
84 | #define VMI_CALL_SetPxE 38 | ||
85 | #define VMI_CALL_SetPxELong 39 | ||
86 | #define VMI_CALL_UpdatePxE 40 | ||
87 | #define VMI_CALL_UpdatePxELong 41 | ||
88 | #define VMI_CALL_MachineToPhysical 42 | ||
89 | #define VMI_CALL_PhysicalToMachine 43 | ||
90 | #define VMI_CALL_AllocatePage 44 | ||
91 | #define VMI_CALL_ReleasePage 45 | ||
92 | #define VMI_CALL_InvalPage 46 | ||
93 | #define VMI_CALL_FlushTLB 47 | ||
94 | #define VMI_CALL_SetLinearMapping 48 | ||
95 | |||
96 | #define VMI_CALL_SetIOPLMask 61 | ||
97 | #define VMI_CALL_SetInitialAPState 62 | ||
98 | #define VMI_CALL_APICWrite 63 | ||
99 | #define VMI_CALL_APICRead 64 | ||
100 | #define VMI_CALL_IODelay 65 | ||
101 | #define VMI_CALL_SetLazyMode 73 | ||
102 | |||
103 | /* | ||
104 | *--------------------------------------------------------------------- | ||
105 | * | ||
106 | * MMU operation flags | ||
107 | * | ||
108 | *--------------------------------------------------------------------- | ||
109 | */ | ||
110 | |||
111 | /* Flags used by VMI_{Allocate|Release}Page call */ | ||
112 | #define VMI_PAGE_PAE 0x10 /* Allocate PAE shadow */ | ||
113 | #define VMI_PAGE_CLONE 0x20 /* Clone from another shadow */ | ||
114 | #define VMI_PAGE_ZEROED 0x40 /* Page is pre-zeroed */ | ||
115 | |||
116 | |||
117 | /* Flags shared by Allocate|Release Page and PTE updates */ | ||
118 | #define VMI_PAGE_PT 0x01 | ||
119 | #define VMI_PAGE_PD 0x02 | ||
120 | #define VMI_PAGE_PDP 0x04 | ||
121 | #define VMI_PAGE_PML4 0x08 | ||
122 | |||
123 | #define VMI_PAGE_NORMAL 0x00 /* for debugging */ | ||
124 | |||
125 | /* Flags used by PTE updates */ | ||
126 | #define VMI_PAGE_CURRENT_AS 0x10 /* implies VMI_PAGE_VA_MASK is valid */ | ||
127 | #define VMI_PAGE_DEFER 0x20 /* may queue update until TLB inval */ | ||
128 | #define VMI_PAGE_VA_MASK 0xfffff000 | ||
129 | |||
130 | #ifdef CONFIG_X86_PAE | ||
131 | #define VMI_PAGE_L1 (VMI_PAGE_PT | VMI_PAGE_PAE | VMI_PAGE_ZEROED) | ||
132 | #define VMI_PAGE_L2 (VMI_PAGE_PD | VMI_PAGE_PAE | VMI_PAGE_ZEROED) | ||
133 | #else | ||
134 | #define VMI_PAGE_L1 (VMI_PAGE_PT | VMI_PAGE_ZEROED) | ||
135 | #define VMI_PAGE_L2 (VMI_PAGE_PD | VMI_PAGE_ZEROED) | ||
136 | #endif | ||
137 | |||
138 | /* Flags used by VMI_FlushTLB call */ | ||
139 | #define VMI_FLUSH_TLB 0x01 | ||
140 | #define VMI_FLUSH_GLOBAL 0x02 | ||
141 | |||
142 | /* | ||
143 | *--------------------------------------------------------------------- | ||
144 | * | ||
145 | * VMI relocation definitions for ROM call get_reloc | ||
146 | * | ||
147 | *--------------------------------------------------------------------- | ||
148 | */ | ||
149 | |||
150 | /* VMI Relocation types */ | ||
151 | #define VMI_RELOCATION_NONE 0 | ||
152 | #define VMI_RELOCATION_CALL_REL 1 | ||
153 | #define VMI_RELOCATION_JUMP_REL 2 | ||
154 | #define VMI_RELOCATION_NOP 3 | ||
155 | |||
156 | #ifndef __ASSEMBLY__ | ||
157 | struct vmi_relocation_info { | ||
158 | unsigned char *eip; | ||
159 | unsigned char type; | ||
160 | unsigned char reserved[3]; | ||
161 | }; | ||
162 | #endif | ||
163 | |||
164 | |||
165 | /* | ||
166 | *--------------------------------------------------------------------- | ||
167 | * | ||
168 | * Generic ROM structures and definitions | ||
169 | * | ||
170 | *--------------------------------------------------------------------- | ||
171 | */ | ||
172 | |||
173 | #ifndef __ASSEMBLY__ | ||
174 | |||
175 | struct vrom_header { | ||
176 | u16 rom_signature; /* option ROM signature */ | ||
177 | u8 rom_length; /* ROM length in 512 byte chunks */ | ||
178 | u8 rom_entry[4]; /* 16-bit code entry point */ | ||
179 | u8 rom_pad0; /* 4-byte align pad */ | ||
180 | u32 vrom_signature; /* VROM identification signature */ | ||
181 | u8 api_version_min;/* Minor version of API */ | ||
182 | u8 api_version_maj;/* Major version of API */ | ||
183 | u8 jump_slots; /* Number of jump slots */ | ||
184 | u8 reserved1; /* Reserved for expansion */ | ||
185 | u32 virtual_top; /* Hypervisor virtual address start */ | ||
186 | u16 reserved2; /* Reserved for expansion */ | ||
187 | u16 license_offs; /* Offset to License string */ | ||
188 | u16 pci_header_offs;/* Offset to PCI OPROM header */ | ||
189 | u16 pnp_header_offs;/* Offset to PnP OPROM header */ | ||
190 | u32 rom_pad3; /* PnP reserverd / VMI reserved */ | ||
191 | u8 reserved[96]; /* Reserved for headers */ | ||
192 | char vmi_init[8]; /* VMI_Init jump point */ | ||
193 | char get_reloc[8]; /* VMI_GetRelocationInfo jump point */ | ||
194 | } __attribute__((packed)); | ||
195 | |||
196 | struct pnp_header { | ||
197 | char sig[4]; | ||
198 | char rev; | ||
199 | char size; | ||
200 | short next; | ||
201 | short res; | ||
202 | long devID; | ||
203 | unsigned short manufacturer_offset; | ||
204 | unsigned short product_offset; | ||
205 | } __attribute__((packed)); | ||
206 | |||
207 | struct pci_header { | ||
208 | char sig[4]; | ||
209 | short vendorID; | ||
210 | short deviceID; | ||
211 | short vpdData; | ||
212 | short size; | ||
213 | char rev; | ||
214 | char class; | ||
215 | char subclass; | ||
216 | char interface; | ||
217 | short chunks; | ||
218 | char rom_version_min; | ||
219 | char rom_version_maj; | ||
220 | char codetype; | ||
221 | char lastRom; | ||
222 | short reserved; | ||
223 | } __attribute__((packed)); | ||
224 | |||
225 | /* Function prototypes for bootstrapping */ | ||
226 | extern void vmi_init(void); | ||
227 | extern void vmi_bringup(void); | ||
228 | extern void vmi_apply_boot_page_allocations(void); | ||
229 | |||
230 | /* State needed to start an application processor in an SMP system. */ | ||
231 | struct vmi_ap_state { | ||
232 | u32 cr0; | ||
233 | u32 cr2; | ||
234 | u32 cr3; | ||
235 | u32 cr4; | ||
236 | |||
237 | u64 efer; | ||
238 | |||
239 | u32 eip; | ||
240 | u32 eflags; | ||
241 | u32 eax; | ||
242 | u32 ebx; | ||
243 | u32 ecx; | ||
244 | u32 edx; | ||
245 | u32 esp; | ||
246 | u32 ebp; | ||
247 | u32 esi; | ||
248 | u32 edi; | ||
249 | u16 cs; | ||
250 | u16 ss; | ||
251 | u16 ds; | ||
252 | u16 es; | ||
253 | u16 fs; | ||
254 | u16 gs; | ||
255 | u16 ldtr; | ||
256 | |||
257 | u16 gdtr_limit; | ||
258 | u32 gdtr_base; | ||
259 | u32 idtr_base; | ||
260 | u16 idtr_limit; | ||
261 | }; | ||
262 | |||
263 | #endif | ||
diff --git a/arch/x86/include/asm/vmi_time.h b/arch/x86/include/asm/vmi_time.h new file mode 100644 index 000000000000..c6e0bee93e3c --- /dev/null +++ b/arch/x86/include/asm/vmi_time.h | |||
@@ -0,0 +1,98 @@ | |||
1 | /* | ||
2 | * VMI Time wrappers | ||
3 | * | ||
4 | * Copyright (C) 2006, VMware, Inc. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, but | ||
12 | * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or | ||
14 | * NON INFRINGEMENT. See the GNU General Public License for more | ||
15 | * details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program; if not, write to the Free Software | ||
19 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
20 | * | ||
21 | * Send feedback to dhecht@vmware.com | ||
22 | * | ||
23 | */ | ||
24 | |||
25 | #ifndef _ASM_X86_VMI_TIME_H | ||
26 | #define _ASM_X86_VMI_TIME_H | ||
27 | |||
28 | /* | ||
29 | * Raw VMI call indices for timer functions | ||
30 | */ | ||
31 | #define VMI_CALL_GetCycleFrequency 66 | ||
32 | #define VMI_CALL_GetCycleCounter 67 | ||
33 | #define VMI_CALL_SetAlarm 68 | ||
34 | #define VMI_CALL_CancelAlarm 69 | ||
35 | #define VMI_CALL_GetWallclockTime 70 | ||
36 | #define VMI_CALL_WallclockUpdated 71 | ||
37 | |||
38 | /* Cached VMI timer operations */ | ||
39 | extern struct vmi_timer_ops { | ||
40 | u64 (*get_cycle_frequency)(void); | ||
41 | u64 (*get_cycle_counter)(int); | ||
42 | u64 (*get_wallclock)(void); | ||
43 | int (*wallclock_updated)(void); | ||
44 | void (*set_alarm)(u32 flags, u64 expiry, u64 period); | ||
45 | void (*cancel_alarm)(u32 flags); | ||
46 | } vmi_timer_ops; | ||
47 | |||
48 | /* Prototypes */ | ||
49 | extern void __init vmi_time_init(void); | ||
50 | extern unsigned long vmi_get_wallclock(void); | ||
51 | extern int vmi_set_wallclock(unsigned long now); | ||
52 | extern unsigned long long vmi_sched_clock(void); | ||
53 | extern unsigned long vmi_tsc_khz(void); | ||
54 | |||
55 | #ifdef CONFIG_X86_LOCAL_APIC | ||
56 | extern void __devinit vmi_time_bsp_init(void); | ||
57 | extern void __devinit vmi_time_ap_init(void); | ||
58 | #endif | ||
59 | |||
60 | /* | ||
61 | * When run under a hypervisor, a vcpu is always in one of three states: | ||
62 | * running, halted, or ready. The vcpu is in the 'running' state if it | ||
63 | * is executing. When the vcpu executes the halt interface, the vcpu | ||
64 | * enters the 'halted' state and remains halted until there is some work | ||
65 | * pending for the vcpu (e.g. an alarm expires, host I/O completes on | ||
66 | * behalf of virtual I/O). At this point, the vcpu enters the 'ready' | ||
67 | * state (waiting for the hypervisor to reschedule it). Finally, at any | ||
68 | * time when the vcpu is not in the 'running' state nor the 'halted' | ||
69 | * state, it is in the 'ready' state. | ||
70 | * | ||
71 | * Real time is advances while the vcpu is 'running', 'ready', or | ||
72 | * 'halted'. Stolen time is the time in which the vcpu is in the | ||
73 | * 'ready' state. Available time is the remaining time -- the vcpu is | ||
74 | * either 'running' or 'halted'. | ||
75 | * | ||
76 | * All three views of time are accessible through the VMI cycle | ||
77 | * counters. | ||
78 | */ | ||
79 | |||
80 | /* The cycle counters. */ | ||
81 | #define VMI_CYCLES_REAL 0 | ||
82 | #define VMI_CYCLES_AVAILABLE 1 | ||
83 | #define VMI_CYCLES_STOLEN 2 | ||
84 | |||
85 | /* The alarm interface 'flags' bits */ | ||
86 | #define VMI_ALARM_COUNTERS 2 | ||
87 | |||
88 | #define VMI_ALARM_COUNTER_MASK 0x000000ff | ||
89 | |||
90 | #define VMI_ALARM_WIRED_IRQ0 0x00000000 | ||
91 | #define VMI_ALARM_WIRED_LVTT 0x00010000 | ||
92 | |||
93 | #define VMI_ALARM_IS_ONESHOT 0x00000000 | ||
94 | #define VMI_ALARM_IS_PERIODIC 0x00000100 | ||
95 | |||
96 | #define CONFIG_VMI_ALARM_HZ 100 | ||
97 | |||
98 | #endif /* _ASM_X86_VMI_TIME_H */ | ||
diff --git a/arch/x86/include/asm/voyager.h b/arch/x86/include/asm/voyager.h new file mode 100644 index 000000000000..9c811d2e6f91 --- /dev/null +++ b/arch/x86/include/asm/voyager.h | |||
@@ -0,0 +1,528 @@ | |||
1 | /* Copyright (C) 1999,2001 | ||
2 | * | ||
3 | * Author: J.E.J.Bottomley@HansenPartnership.com | ||
4 | * | ||
5 | * Standard include definitions for the NCR Voyager system */ | ||
6 | |||
7 | #undef VOYAGER_DEBUG | ||
8 | #undef VOYAGER_CAT_DEBUG | ||
9 | |||
10 | #ifdef VOYAGER_DEBUG | ||
11 | #define VDEBUG(x) printk x | ||
12 | #else | ||
13 | #define VDEBUG(x) | ||
14 | #endif | ||
15 | |||
16 | /* There are three levels of voyager machine: 3,4 and 5. The rule is | ||
17 | * if it's less than 3435 it's a Level 3 except for a 3360 which is | ||
18 | * a level 4. A 3435 or above is a Level 5 */ | ||
19 | #define VOYAGER_LEVEL5_AND_ABOVE 0x3435 | ||
20 | #define VOYAGER_LEVEL4 0x3360 | ||
21 | |||
22 | /* The L4 DINO ASIC */ | ||
23 | #define VOYAGER_DINO 0x43 | ||
24 | |||
25 | /* voyager ports in standard I/O space */ | ||
26 | #define VOYAGER_MC_SETUP 0x96 | ||
27 | |||
28 | |||
29 | #define VOYAGER_CAT_CONFIG_PORT 0x97 | ||
30 | # define VOYAGER_CAT_DESELECT 0xff | ||
31 | #define VOYAGER_SSPB_RELOCATION_PORT 0x98 | ||
32 | |||
33 | /* Valid CAT controller commands */ | ||
34 | /* start instruction register cycle */ | ||
35 | #define VOYAGER_CAT_IRCYC 0x01 | ||
36 | /* start data register cycle */ | ||
37 | #define VOYAGER_CAT_DRCYC 0x02 | ||
38 | /* move to execute state */ | ||
39 | #define VOYAGER_CAT_RUN 0x0F | ||
40 | /* end operation */ | ||
41 | #define VOYAGER_CAT_END 0x80 | ||
42 | /* hold in idle state */ | ||
43 | #define VOYAGER_CAT_HOLD 0x90 | ||
44 | /* single step an "intest" vector */ | ||
45 | #define VOYAGER_CAT_STEP 0xE0 | ||
46 | /* return cat controller to CLEMSON mode */ | ||
47 | #define VOYAGER_CAT_CLEMSON 0xFF | ||
48 | |||
49 | /* the default cat command header */ | ||
50 | #define VOYAGER_CAT_HEADER 0x7F | ||
51 | |||
52 | /* the range of possible CAT module ids in the system */ | ||
53 | #define VOYAGER_MIN_MODULE 0x10 | ||
54 | #define VOYAGER_MAX_MODULE 0x1f | ||
55 | |||
56 | /* The voyager registers per asic */ | ||
57 | #define VOYAGER_ASIC_ID_REG 0x00 | ||
58 | #define VOYAGER_ASIC_TYPE_REG 0x01 | ||
59 | /* the sub address registers can be made auto incrementing on reads */ | ||
60 | #define VOYAGER_AUTO_INC_REG 0x02 | ||
61 | # define VOYAGER_AUTO_INC 0x04 | ||
62 | # define VOYAGER_NO_AUTO_INC 0xfb | ||
63 | #define VOYAGER_SUBADDRDATA 0x03 | ||
64 | #define VOYAGER_SCANPATH 0x05 | ||
65 | # define VOYAGER_CONNECT_ASIC 0x01 | ||
66 | # define VOYAGER_DISCONNECT_ASIC 0xfe | ||
67 | #define VOYAGER_SUBADDRLO 0x06 | ||
68 | #define VOYAGER_SUBADDRHI 0x07 | ||
69 | #define VOYAGER_SUBMODSELECT 0x08 | ||
70 | #define VOYAGER_SUBMODPRESENT 0x09 | ||
71 | |||
72 | #define VOYAGER_SUBADDR_LO 0xff | ||
73 | #define VOYAGER_SUBADDR_HI 0xffff | ||
74 | |||
75 | /* the maximum size of a scan path -- used to form instructions */ | ||
76 | #define VOYAGER_MAX_SCAN_PATH 0x100 | ||
77 | /* the biggest possible register size (in bytes) */ | ||
78 | #define VOYAGER_MAX_REG_SIZE 4 | ||
79 | |||
80 | /* Total number of possible modules (including submodules) */ | ||
81 | #define VOYAGER_MAX_MODULES 16 | ||
82 | /* Largest number of asics per module */ | ||
83 | #define VOYAGER_MAX_ASICS_PER_MODULE 7 | ||
84 | |||
85 | /* the CAT asic of each module is always the first one */ | ||
86 | #define VOYAGER_CAT_ID 0 | ||
87 | #define VOYAGER_PSI 0x1a | ||
88 | |||
89 | /* voyager instruction operations and registers */ | ||
90 | #define VOYAGER_READ_CONFIG 0x1 | ||
91 | #define VOYAGER_WRITE_CONFIG 0x2 | ||
92 | #define VOYAGER_BYPASS 0xff | ||
93 | |||
94 | typedef struct voyager_asic { | ||
95 | __u8 asic_addr; /* ASIC address; Level 4 */ | ||
96 | __u8 asic_type; /* ASIC type */ | ||
97 | __u8 asic_id; /* ASIC id */ | ||
98 | __u8 jtag_id[4]; /* JTAG id */ | ||
99 | __u8 asic_location; /* Location within scan path; start w/ 0 */ | ||
100 | __u8 bit_location; /* Location within bit stream; start w/ 0 */ | ||
101 | __u8 ireg_length; /* Instruction register length */ | ||
102 | __u16 subaddr; /* Amount of sub address space */ | ||
103 | struct voyager_asic *next; /* Next asic in linked list */ | ||
104 | } voyager_asic_t; | ||
105 | |||
106 | typedef struct voyager_module { | ||
107 | __u8 module_addr; /* Module address */ | ||
108 | __u8 scan_path_connected; /* Scan path connected */ | ||
109 | __u16 ee_size; /* Size of the EEPROM */ | ||
110 | __u16 num_asics; /* Number of Asics */ | ||
111 | __u16 inst_bits; /* Instruction bits in the scan path */ | ||
112 | __u16 largest_reg; /* Largest register in the scan path */ | ||
113 | __u16 smallest_reg; /* Smallest register in the scan path */ | ||
114 | voyager_asic_t *asic; /* First ASIC in scan path (CAT_I) */ | ||
115 | struct voyager_module *submodule; /* Submodule pointer */ | ||
116 | struct voyager_module *next; /* Next module in linked list */ | ||
117 | } voyager_module_t; | ||
118 | |||
119 | typedef struct voyager_eeprom_hdr { | ||
120 | __u8 module_id[4]; | ||
121 | __u8 version_id; | ||
122 | __u8 config_id; | ||
123 | __u16 boundry_id; /* boundary scan id */ | ||
124 | __u16 ee_size; /* size of EEPROM */ | ||
125 | __u8 assembly[11]; /* assembly # */ | ||
126 | __u8 assembly_rev; /* assembly rev */ | ||
127 | __u8 tracer[4]; /* tracer number */ | ||
128 | __u16 assembly_cksum; /* asm checksum */ | ||
129 | __u16 power_consump; /* pwr requirements */ | ||
130 | __u16 num_asics; /* number of asics */ | ||
131 | __u16 bist_time; /* min. bist time */ | ||
132 | __u16 err_log_offset; /* error log offset */ | ||
133 | __u16 scan_path_offset;/* scan path offset */ | ||
134 | __u16 cct_offset; | ||
135 | __u16 log_length; /* length of err log */ | ||
136 | __u16 xsum_end; /* offset to end of | ||
137 | checksum */ | ||
138 | __u8 reserved[4]; | ||
139 | __u8 sflag; /* starting sentinal */ | ||
140 | __u8 part_number[13]; /* prom part number */ | ||
141 | __u8 version[10]; /* version number */ | ||
142 | __u8 signature[8]; | ||
143 | __u16 eeprom_chksum; | ||
144 | __u32 data_stamp_offset; | ||
145 | __u8 eflag ; /* ending sentinal */ | ||
146 | } __attribute__((packed)) voyager_eprom_hdr_t; | ||
147 | |||
148 | |||
149 | |||
150 | #define VOYAGER_EPROM_SIZE_OFFSET \ | ||
151 | ((__u16)(&(((voyager_eprom_hdr_t *)0)->ee_size))) | ||
152 | #define VOYAGER_XSUM_END_OFFSET 0x2a | ||
153 | |||
154 | /* the following three definitions are for internal table layouts | ||
155 | * in the module EPROMs. We really only care about the IDs and | ||
156 | * offsets */ | ||
157 | typedef struct voyager_sp_table { | ||
158 | __u8 asic_id; | ||
159 | __u8 bypass_flag; | ||
160 | __u16 asic_data_offset; | ||
161 | __u16 config_data_offset; | ||
162 | } __attribute__((packed)) voyager_sp_table_t; | ||
163 | |||
164 | typedef struct voyager_jtag_table { | ||
165 | __u8 icode[4]; | ||
166 | __u8 runbist[4]; | ||
167 | __u8 intest[4]; | ||
168 | __u8 samp_preld[4]; | ||
169 | __u8 ireg_len; | ||
170 | } __attribute__((packed)) voyager_jtt_t; | ||
171 | |||
172 | typedef struct voyager_asic_data_table { | ||
173 | __u8 jtag_id[4]; | ||
174 | __u16 length_bsr; | ||
175 | __u16 length_bist_reg; | ||
176 | __u32 bist_clk; | ||
177 | __u16 subaddr_bits; | ||
178 | __u16 seed_bits; | ||
179 | __u16 sig_bits; | ||
180 | __u16 jtag_offset; | ||
181 | } __attribute__((packed)) voyager_at_t; | ||
182 | |||
183 | /* Voyager Interrupt Controller (VIC) registers */ | ||
184 | |||
185 | /* Base to add to Cross Processor Interrupts (CPIs) when triggering | ||
186 | * the CPU IRQ line */ | ||
187 | /* register defines for the WCBICs (one per processor) */ | ||
188 | #define VOYAGER_WCBIC0 0x41 /* bus A node P1 processor 0 */ | ||
189 | #define VOYAGER_WCBIC1 0x49 /* bus A node P1 processor 1 */ | ||
190 | #define VOYAGER_WCBIC2 0x51 /* bus A node P2 processor 0 */ | ||
191 | #define VOYAGER_WCBIC3 0x59 /* bus A node P2 processor 1 */ | ||
192 | #define VOYAGER_WCBIC4 0x61 /* bus B node P1 processor 0 */ | ||
193 | #define VOYAGER_WCBIC5 0x69 /* bus B node P1 processor 1 */ | ||
194 | #define VOYAGER_WCBIC6 0x71 /* bus B node P2 processor 0 */ | ||
195 | #define VOYAGER_WCBIC7 0x79 /* bus B node P2 processor 1 */ | ||
196 | |||
197 | |||
198 | /* top of memory registers */ | ||
199 | #define VOYAGER_WCBIC_TOM_L 0x4 | ||
200 | #define VOYAGER_WCBIC_TOM_H 0x5 | ||
201 | |||
202 | /* register defines for Voyager Memory Contol (VMC) | ||
203 | * these are present on L4 machines only */ | ||
204 | #define VOYAGER_VMC1 0x81 | ||
205 | #define VOYAGER_VMC2 0x91 | ||
206 | #define VOYAGER_VMC3 0xa1 | ||
207 | #define VOYAGER_VMC4 0xb1 | ||
208 | |||
209 | /* VMC Ports */ | ||
210 | #define VOYAGER_VMC_MEMORY_SETUP 0x9 | ||
211 | # define VMC_Interleaving 0x01 | ||
212 | # define VMC_4Way 0x02 | ||
213 | # define VMC_EvenCacheLines 0x04 | ||
214 | # define VMC_HighLine 0x08 | ||
215 | # define VMC_Start0_Enable 0x20 | ||
216 | # define VMC_Start1_Enable 0x40 | ||
217 | # define VMC_Vremap 0x80 | ||
218 | #define VOYAGER_VMC_BANK_DENSITY 0xa | ||
219 | # define VMC_BANK_EMPTY 0 | ||
220 | # define VMC_BANK_4MB 1 | ||
221 | # define VMC_BANK_16MB 2 | ||
222 | # define VMC_BANK_64MB 3 | ||
223 | # define VMC_BANK0_MASK 0x03 | ||
224 | # define VMC_BANK1_MASK 0x0C | ||
225 | # define VMC_BANK2_MASK 0x30 | ||
226 | # define VMC_BANK3_MASK 0xC0 | ||
227 | |||
228 | /* Magellan Memory Controller (MMC) defines - present on L5 */ | ||
229 | #define VOYAGER_MMC_ASIC_ID 1 | ||
230 | /* the two memory modules corresponding to memory cards in the system */ | ||
231 | #define VOYAGER_MMC_MEMORY0_MODULE 0x14 | ||
232 | #define VOYAGER_MMC_MEMORY1_MODULE 0x15 | ||
233 | /* the Magellan Memory Address (MMA) defines */ | ||
234 | #define VOYAGER_MMA_ASIC_ID 2 | ||
235 | |||
236 | /* Submodule number for the Quad Baseboard */ | ||
237 | #define VOYAGER_QUAD_BASEBOARD 1 | ||
238 | |||
239 | /* ASIC defines for the Quad Baseboard */ | ||
240 | #define VOYAGER_QUAD_QDATA0 1 | ||
241 | #define VOYAGER_QUAD_QDATA1 2 | ||
242 | #define VOYAGER_QUAD_QABC 3 | ||
243 | |||
244 | /* Useful areas in extended CMOS */ | ||
245 | #define VOYAGER_PROCESSOR_PRESENT_MASK 0x88a | ||
246 | #define VOYAGER_MEMORY_CLICKMAP 0xa23 | ||
247 | #define VOYAGER_DUMP_LOCATION 0xb1a | ||
248 | |||
249 | /* SUS In Control bit - used to tell SUS that we don't need to be | ||
250 | * babysat anymore */ | ||
251 | #define VOYAGER_SUS_IN_CONTROL_PORT 0x3ff | ||
252 | # define VOYAGER_IN_CONTROL_FLAG 0x80 | ||
253 | |||
254 | /* Voyager PSI defines */ | ||
255 | #define VOYAGER_PSI_STATUS_REG 0x08 | ||
256 | # define PSI_DC_FAIL 0x01 | ||
257 | # define PSI_MON 0x02 | ||
258 | # define PSI_FAULT 0x04 | ||
259 | # define PSI_ALARM 0x08 | ||
260 | # define PSI_CURRENT 0x10 | ||
261 | # define PSI_DVM 0x20 | ||
262 | # define PSI_PSCFAULT 0x40 | ||
263 | # define PSI_STAT_CHG 0x80 | ||
264 | |||
265 | #define VOYAGER_PSI_SUPPLY_REG 0x8000 | ||
266 | /* read */ | ||
267 | # define PSI_FAIL_DC 0x01 | ||
268 | # define PSI_FAIL_AC 0x02 | ||
269 | # define PSI_MON_INT 0x04 | ||
270 | # define PSI_SWITCH_OFF 0x08 | ||
271 | # define PSI_HX_OFF 0x10 | ||
272 | # define PSI_SECURITY 0x20 | ||
273 | # define PSI_CMOS_BATT_LOW 0x40 | ||
274 | # define PSI_CMOS_BATT_FAIL 0x80 | ||
275 | /* write */ | ||
276 | # define PSI_CLR_SWITCH_OFF 0x13 | ||
277 | # define PSI_CLR_HX_OFF 0x14 | ||
278 | # define PSI_CLR_CMOS_BATT_FAIL 0x17 | ||
279 | |||
280 | #define VOYAGER_PSI_MASK 0x8001 | ||
281 | # define PSI_MASK_MASK 0x10 | ||
282 | |||
283 | #define VOYAGER_PSI_AC_FAIL_REG 0x8004 | ||
284 | #define AC_FAIL_STAT_CHANGE 0x80 | ||
285 | |||
286 | #define VOYAGER_PSI_GENERAL_REG 0x8007 | ||
287 | /* read */ | ||
288 | # define PSI_SWITCH_ON 0x01 | ||
289 | # define PSI_SWITCH_ENABLED 0x02 | ||
290 | # define PSI_ALARM_ENABLED 0x08 | ||
291 | # define PSI_SECURE_ENABLED 0x10 | ||
292 | # define PSI_COLD_RESET 0x20 | ||
293 | # define PSI_COLD_START 0x80 | ||
294 | /* write */ | ||
295 | # define PSI_POWER_DOWN 0x10 | ||
296 | # define PSI_SWITCH_DISABLE 0x01 | ||
297 | # define PSI_SWITCH_ENABLE 0x11 | ||
298 | # define PSI_CLEAR 0x12 | ||
299 | # define PSI_ALARM_DISABLE 0x03 | ||
300 | # define PSI_ALARM_ENABLE 0x13 | ||
301 | # define PSI_CLEAR_COLD_RESET 0x05 | ||
302 | # define PSI_SET_COLD_RESET 0x15 | ||
303 | # define PSI_CLEAR_COLD_START 0x07 | ||
304 | # define PSI_SET_COLD_START 0x17 | ||
305 | |||
306 | |||
307 | |||
308 | struct voyager_bios_info { | ||
309 | __u8 len; | ||
310 | __u8 major; | ||
311 | __u8 minor; | ||
312 | __u8 debug; | ||
313 | __u8 num_classes; | ||
314 | __u8 class_1; | ||
315 | __u8 class_2; | ||
316 | }; | ||
317 | |||
318 | /* The following structures and definitions are for the Kernel/SUS | ||
319 | * interface these are needed to find out how SUS initialised any Quad | ||
320 | * boards in the system */ | ||
321 | |||
322 | #define NUMBER_OF_MC_BUSSES 2 | ||
323 | #define SLOTS_PER_MC_BUS 8 | ||
324 | #define MAX_CPUS 16 /* 16 way CPU system */ | ||
325 | #define MAX_PROCESSOR_BOARDS 4 /* 4 processor slot system */ | ||
326 | #define MAX_CACHE_LEVELS 4 /* # of cache levels supported */ | ||
327 | #define MAX_SHARED_CPUS 4 /* # of CPUs that can share a LARC */ | ||
328 | #define NUMBER_OF_POS_REGS 8 | ||
329 | |||
330 | typedef struct { | ||
331 | __u8 MC_Slot; | ||
332 | __u8 POS_Values[NUMBER_OF_POS_REGS]; | ||
333 | } __attribute__((packed)) MC_SlotInformation_t; | ||
334 | |||
335 | struct QuadDescription { | ||
336 | __u8 Type; /* for type 0 (DYADIC or MONADIC) all fields | ||
337 | * will be zero except for slot */ | ||
338 | __u8 StructureVersion; | ||
339 | __u32 CPI_BaseAddress; | ||
340 | __u32 LARC_BankSize; | ||
341 | __u32 LocalMemoryStateBits; | ||
342 | __u8 Slot; /* Processor slots 1 - 4 */ | ||
343 | } __attribute__((packed)); | ||
344 | |||
345 | struct ProcBoardInfo { | ||
346 | __u8 Type; | ||
347 | __u8 StructureVersion; | ||
348 | __u8 NumberOfBoards; | ||
349 | struct QuadDescription QuadData[MAX_PROCESSOR_BOARDS]; | ||
350 | } __attribute__((packed)); | ||
351 | |||
352 | struct CacheDescription { | ||
353 | __u8 Level; | ||
354 | __u32 TotalSize; | ||
355 | __u16 LineSize; | ||
356 | __u8 Associativity; | ||
357 | __u8 CacheType; | ||
358 | __u8 WriteType; | ||
359 | __u8 Number_CPUs_SharedBy; | ||
360 | __u8 Shared_CPUs_Hardware_IDs[MAX_SHARED_CPUS]; | ||
361 | |||
362 | } __attribute__((packed)); | ||
363 | |||
364 | struct CPU_Description { | ||
365 | __u8 CPU_HardwareId; | ||
366 | char *FRU_String; | ||
367 | __u8 NumberOfCacheLevels; | ||
368 | struct CacheDescription CacheLevelData[MAX_CACHE_LEVELS]; | ||
369 | } __attribute__((packed)); | ||
370 | |||
371 | struct CPU_Info { | ||
372 | __u8 Type; | ||
373 | __u8 StructureVersion; | ||
374 | __u8 NumberOf_CPUs; | ||
375 | struct CPU_Description CPU_Data[MAX_CPUS]; | ||
376 | } __attribute__((packed)); | ||
377 | |||
378 | |||
379 | /* | ||
380 | * This structure will be used by SUS and the OS. | ||
381 | * The assumption about this structure is that no blank space is | ||
382 | * packed in it by our friend the compiler. | ||
383 | */ | ||
384 | typedef struct { | ||
385 | __u8 Mailbox_SUS; /* Written to by SUS to give | ||
386 | commands/response to the OS */ | ||
387 | __u8 Mailbox_OS; /* Written to by the OS to give | ||
388 | commands/response to SUS */ | ||
389 | __u8 SUS_MailboxVersion; /* Tells the OS which iteration of the | ||
390 | interface SUS supports */ | ||
391 | __u8 OS_MailboxVersion; /* Tells SUS which iteration of the | ||
392 | interface the OS supports */ | ||
393 | __u32 OS_Flags; /* Flags set by the OS as info for | ||
394 | SUS */ | ||
395 | __u32 SUS_Flags; /* Flags set by SUS as info | ||
396 | for the OS */ | ||
397 | __u32 WatchDogPeriod; /* Watchdog period (in seconds) which | ||
398 | the DP uses to see if the OS | ||
399 | is dead */ | ||
400 | __u32 WatchDogCount; /* Updated by the OS on every tic. */ | ||
401 | __u32 MemoryFor_SUS_ErrorLog; /* Flat 32 bit address which tells SUS | ||
402 | where to stuff the SUS error log | ||
403 | on a dump */ | ||
404 | MC_SlotInformation_t MC_SlotInfo[NUMBER_OF_MC_BUSSES*SLOTS_PER_MC_BUS]; | ||
405 | /* Storage for MCA POS data */ | ||
406 | /* All new SECOND_PASS_INTERFACE fields added from this point */ | ||
407 | struct ProcBoardInfo *BoardData; | ||
408 | struct CPU_Info *CPU_Data; | ||
409 | /* All new fields must be added from this point */ | ||
410 | } Voyager_KernelSUS_Mbox_t; | ||
411 | |||
412 | /* structure for finding the right memory address to send a QIC CPI to */ | ||
413 | struct voyager_qic_cpi { | ||
414 | /* Each cache line (32 bytes) can trigger a cpi. The cpi | ||
415 | * read/write may occur anywhere in the cache line---pick the | ||
416 | * middle to be safe */ | ||
417 | struct { | ||
418 | __u32 pad1[3]; | ||
419 | __u32 cpi; | ||
420 | __u32 pad2[4]; | ||
421 | } qic_cpi[8]; | ||
422 | }; | ||
423 | |||
424 | struct voyager_status { | ||
425 | __u32 power_fail:1; | ||
426 | __u32 switch_off:1; | ||
427 | __u32 request_from_kernel:1; | ||
428 | }; | ||
429 | |||
430 | struct voyager_psi_regs { | ||
431 | __u8 cat_id; | ||
432 | __u8 cat_dev; | ||
433 | __u8 cat_control; | ||
434 | __u8 subaddr; | ||
435 | __u8 dummy4; | ||
436 | __u8 checkbit; | ||
437 | __u8 subaddr_low; | ||
438 | __u8 subaddr_high; | ||
439 | __u8 intstatus; | ||
440 | __u8 stat1; | ||
441 | __u8 stat3; | ||
442 | __u8 fault; | ||
443 | __u8 tms; | ||
444 | __u8 gen; | ||
445 | __u8 sysconf; | ||
446 | __u8 dummy15; | ||
447 | }; | ||
448 | |||
449 | struct voyager_psi_subregs { | ||
450 | __u8 supply; | ||
451 | __u8 mask; | ||
452 | __u8 present; | ||
453 | __u8 DCfail; | ||
454 | __u8 ACfail; | ||
455 | __u8 fail; | ||
456 | __u8 UPSfail; | ||
457 | __u8 genstatus; | ||
458 | }; | ||
459 | |||
460 | struct voyager_psi { | ||
461 | struct voyager_psi_regs regs; | ||
462 | struct voyager_psi_subregs subregs; | ||
463 | }; | ||
464 | |||
465 | struct voyager_SUS { | ||
466 | #define VOYAGER_DUMP_BUTTON_NMI 0x1 | ||
467 | #define VOYAGER_SUS_VALID 0x2 | ||
468 | #define VOYAGER_SYSINT_COMPLETE 0x3 | ||
469 | __u8 SUS_mbox; | ||
470 | #define VOYAGER_NO_COMMAND 0x0 | ||
471 | #define VOYAGER_IGNORE_DUMP 0x1 | ||
472 | #define VOYAGER_DO_DUMP 0x2 | ||
473 | #define VOYAGER_SYSINT_HANDSHAKE 0x3 | ||
474 | #define VOYAGER_DO_MEM_DUMP 0x4 | ||
475 | #define VOYAGER_SYSINT_WAS_RECOVERED 0x5 | ||
476 | __u8 kernel_mbox; | ||
477 | #define VOYAGER_MAILBOX_VERSION 0x10 | ||
478 | __u8 SUS_version; | ||
479 | __u8 kernel_version; | ||
480 | #define VOYAGER_OS_HAS_SYSINT 0x1 | ||
481 | #define VOYAGER_OS_IN_PROGRESS 0x2 | ||
482 | #define VOYAGER_UPDATING_WDPERIOD 0x4 | ||
483 | __u32 kernel_flags; | ||
484 | #define VOYAGER_SUS_BOOTING 0x1 | ||
485 | #define VOYAGER_SUS_IN_PROGRESS 0x2 | ||
486 | __u32 SUS_flags; | ||
487 | __u32 watchdog_period; | ||
488 | __u32 watchdog_count; | ||
489 | __u32 SUS_errorlog; | ||
490 | /* lots of system configuration stuff under here */ | ||
491 | }; | ||
492 | |||
493 | /* Variables exported by voyager_smp */ | ||
494 | extern __u32 voyager_extended_vic_processors; | ||
495 | extern __u32 voyager_allowed_boot_processors; | ||
496 | extern __u32 voyager_quad_processors; | ||
497 | extern struct voyager_qic_cpi *voyager_quad_cpi_addr[NR_CPUS]; | ||
498 | extern struct voyager_SUS *voyager_SUS; | ||
499 | |||
500 | /* variables exported always */ | ||
501 | extern struct task_struct *voyager_thread; | ||
502 | extern int voyager_level; | ||
503 | extern struct voyager_status voyager_status; | ||
504 | |||
505 | /* functions exported by the voyager and voyager_smp modules */ | ||
506 | extern int voyager_cat_readb(__u8 module, __u8 asic, int reg); | ||
507 | extern void voyager_cat_init(void); | ||
508 | extern void voyager_detect(struct voyager_bios_info *); | ||
509 | extern void voyager_trap_init(void); | ||
510 | extern void voyager_setup_irqs(void); | ||
511 | extern int voyager_memory_detect(int region, __u32 *addr, __u32 *length); | ||
512 | extern void voyager_smp_intr_init(void); | ||
513 | extern __u8 voyager_extended_cmos_read(__u16 cmos_address); | ||
514 | extern void voyager_smp_dump(void); | ||
515 | extern void voyager_timer_interrupt(void); | ||
516 | extern void smp_local_timer_interrupt(void); | ||
517 | extern void voyager_power_off(void); | ||
518 | extern void smp_voyager_power_off(void *dummy); | ||
519 | extern void voyager_restart(void); | ||
520 | extern void voyager_cat_power_off(void); | ||
521 | extern void voyager_cat_do_common_interrupt(void); | ||
522 | extern void voyager_handle_nmi(void); | ||
523 | /* Commands for the following are */ | ||
524 | #define VOYAGER_PSI_READ 0 | ||
525 | #define VOYAGER_PSI_WRITE 1 | ||
526 | #define VOYAGER_PSI_SUBREAD 2 | ||
527 | #define VOYAGER_PSI_SUBWRITE 3 | ||
528 | extern void voyager_cat_psi(__u8, __u16, __u8 *); | ||
diff --git a/arch/x86/include/asm/vsyscall.h b/arch/x86/include/asm/vsyscall.h new file mode 100644 index 000000000000..d0983d255fbd --- /dev/null +++ b/arch/x86/include/asm/vsyscall.h | |||
@@ -0,0 +1,44 @@ | |||
1 | #ifndef _ASM_X86_VSYSCALL_H | ||
2 | #define _ASM_X86_VSYSCALL_H | ||
3 | |||
4 | enum vsyscall_num { | ||
5 | __NR_vgettimeofday, | ||
6 | __NR_vtime, | ||
7 | __NR_vgetcpu, | ||
8 | }; | ||
9 | |||
10 | #define VSYSCALL_START (-10UL << 20) | ||
11 | #define VSYSCALL_SIZE 1024 | ||
12 | #define VSYSCALL_END (-2UL << 20) | ||
13 | #define VSYSCALL_MAPPED_PAGES 1 | ||
14 | #define VSYSCALL_ADDR(vsyscall_nr) (VSYSCALL_START+VSYSCALL_SIZE*(vsyscall_nr)) | ||
15 | |||
16 | #ifdef __KERNEL__ | ||
17 | #include <linux/seqlock.h> | ||
18 | |||
19 | #define __section_vgetcpu_mode __attribute__ ((unused, __section__ (".vgetcpu_mode"), aligned(16))) | ||
20 | #define __section_jiffies __attribute__ ((unused, __section__ (".jiffies"), aligned(16))) | ||
21 | |||
22 | /* Definitions for CONFIG_GENERIC_TIME definitions */ | ||
23 | #define __section_vsyscall_gtod_data __attribute__ \ | ||
24 | ((unused, __section__ (".vsyscall_gtod_data"),aligned(16))) | ||
25 | #define __section_vsyscall_clock __attribute__ \ | ||
26 | ((unused, __section__ (".vsyscall_clock"),aligned(16))) | ||
27 | #define __vsyscall_fn \ | ||
28 | __attribute__ ((unused, __section__(".vsyscall_fn"))) notrace | ||
29 | |||
30 | #define VGETCPU_RDTSCP 1 | ||
31 | #define VGETCPU_LSL 2 | ||
32 | |||
33 | extern int __vgetcpu_mode; | ||
34 | extern volatile unsigned long __jiffies; | ||
35 | |||
36 | /* kernel space (writeable) */ | ||
37 | extern int vgetcpu_mode; | ||
38 | extern struct timezone sys_tz; | ||
39 | |||
40 | extern void map_vsyscall(void); | ||
41 | |||
42 | #endif /* __KERNEL__ */ | ||
43 | |||
44 | #endif /* _ASM_X86_VSYSCALL_H */ | ||
diff --git a/arch/x86/include/asm/xcr.h b/arch/x86/include/asm/xcr.h new file mode 100644 index 000000000000..f2cba4e79a23 --- /dev/null +++ b/arch/x86/include/asm/xcr.h | |||
@@ -0,0 +1,49 @@ | |||
1 | /* -*- linux-c -*- ------------------------------------------------------- * | ||
2 | * | ||
3 | * Copyright 2008 rPath, Inc. - All Rights Reserved | ||
4 | * | ||
5 | * This file is part of the Linux kernel, and is made available under | ||
6 | * the terms of the GNU General Public License version 2 or (at your | ||
7 | * option) any later version; incorporated herein by reference. | ||
8 | * | ||
9 | * ----------------------------------------------------------------------- */ | ||
10 | |||
11 | /* | ||
12 | * asm-x86/xcr.h | ||
13 | * | ||
14 | * Definitions for the eXtended Control Register instructions | ||
15 | */ | ||
16 | |||
17 | #ifndef _ASM_X86_XCR_H | ||
18 | #define _ASM_X86_XCR_H | ||
19 | |||
20 | #define XCR_XFEATURE_ENABLED_MASK 0x00000000 | ||
21 | |||
22 | #ifdef __KERNEL__ | ||
23 | # ifndef __ASSEMBLY__ | ||
24 | |||
25 | #include <linux/types.h> | ||
26 | |||
27 | static inline u64 xgetbv(u32 index) | ||
28 | { | ||
29 | u32 eax, edx; | ||
30 | |||
31 | asm volatile(".byte 0x0f,0x01,0xd0" /* xgetbv */ | ||
32 | : "=a" (eax), "=d" (edx) | ||
33 | : "c" (index)); | ||
34 | return eax + ((u64)edx << 32); | ||
35 | } | ||
36 | |||
37 | static inline void xsetbv(u32 index, u64 value) | ||
38 | { | ||
39 | u32 eax = value; | ||
40 | u32 edx = value >> 32; | ||
41 | |||
42 | asm volatile(".byte 0x0f,0x01,0xd1" /* xsetbv */ | ||
43 | : : "a" (eax), "d" (edx), "c" (index)); | ||
44 | } | ||
45 | |||
46 | # endif /* __ASSEMBLY__ */ | ||
47 | #endif /* __KERNEL__ */ | ||
48 | |||
49 | #endif /* _ASM_X86_XCR_H */ | ||
diff --git a/arch/x86/include/asm/xen/events.h b/arch/x86/include/asm/xen/events.h new file mode 100644 index 000000000000..19144184983a --- /dev/null +++ b/arch/x86/include/asm/xen/events.h | |||
@@ -0,0 +1,24 @@ | |||
1 | #ifndef _ASM_X86_XEN_EVENTS_H | ||
2 | #define _ASM_X86_XEN_EVENTS_H | ||
3 | |||
4 | enum ipi_vector { | ||
5 | XEN_RESCHEDULE_VECTOR, | ||
6 | XEN_CALL_FUNCTION_VECTOR, | ||
7 | XEN_CALL_FUNCTION_SINGLE_VECTOR, | ||
8 | XEN_SPIN_UNLOCK_VECTOR, | ||
9 | |||
10 | XEN_NR_IPIS, | ||
11 | }; | ||
12 | |||
13 | static inline int xen_irqs_disabled(struct pt_regs *regs) | ||
14 | { | ||
15 | return raw_irqs_disabled_flags(regs->flags); | ||
16 | } | ||
17 | |||
18 | static inline void xen_do_IRQ(int irq, struct pt_regs *regs) | ||
19 | { | ||
20 | regs->orig_ax = ~irq; | ||
21 | do_IRQ(regs); | ||
22 | } | ||
23 | |||
24 | #endif /* _ASM_X86_XEN_EVENTS_H */ | ||
diff --git a/arch/x86/include/asm/xen/grant_table.h b/arch/x86/include/asm/xen/grant_table.h new file mode 100644 index 000000000000..fdbbb45767a6 --- /dev/null +++ b/arch/x86/include/asm/xen/grant_table.h | |||
@@ -0,0 +1,7 @@ | |||
1 | #ifndef _ASM_X86_XEN_GRANT_TABLE_H | ||
2 | #define _ASM_X86_XEN_GRANT_TABLE_H | ||
3 | |||
4 | #define xen_alloc_vm_area(size) alloc_vm_area(size) | ||
5 | #define xen_free_vm_area(area) free_vm_area(area) | ||
6 | |||
7 | #endif /* _ASM_X86_XEN_GRANT_TABLE_H */ | ||
diff --git a/arch/x86/include/asm/xen/hypercall.h b/arch/x86/include/asm/xen/hypercall.h new file mode 100644 index 000000000000..3f6000d95fe2 --- /dev/null +++ b/arch/x86/include/asm/xen/hypercall.h | |||
@@ -0,0 +1,527 @@ | |||
1 | /****************************************************************************** | ||
2 | * hypercall.h | ||
3 | * | ||
4 | * Linux-specific hypervisor handling. | ||
5 | * | ||
6 | * Copyright (c) 2002-2004, K A Fraser | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or | ||
9 | * modify it under the terms of the GNU General Public License version 2 | ||
10 | * as published by the Free Software Foundation; or, when distributed | ||
11 | * separately from the Linux kernel or incorporated into other | ||
12 | * software packages, subject to the following license: | ||
13 | * | ||
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy | ||
15 | * of this source file (the "Software"), to deal in the Software without | ||
16 | * restriction, including without limitation the rights to use, copy, modify, | ||
17 | * merge, publish, distribute, sublicense, and/or sell copies of the Software, | ||
18 | * and to permit persons to whom the Software is furnished to do so, subject to | ||
19 | * the following conditions: | ||
20 | * | ||
21 | * The above copyright notice and this permission notice shall be included in | ||
22 | * all copies or substantial portions of the Software. | ||
23 | * | ||
24 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
25 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
26 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
27 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
28 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
29 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | ||
30 | * IN THE SOFTWARE. | ||
31 | */ | ||
32 | |||
33 | #ifndef _ASM_X86_XEN_HYPERCALL_H | ||
34 | #define _ASM_X86_XEN_HYPERCALL_H | ||
35 | |||
36 | #include <linux/errno.h> | ||
37 | #include <linux/string.h> | ||
38 | |||
39 | #include <xen/interface/xen.h> | ||
40 | #include <xen/interface/sched.h> | ||
41 | #include <xen/interface/physdev.h> | ||
42 | |||
43 | /* | ||
44 | * The hypercall asms have to meet several constraints: | ||
45 | * - Work on 32- and 64-bit. | ||
46 | * The two architectures put their arguments in different sets of | ||
47 | * registers. | ||
48 | * | ||
49 | * - Work around asm syntax quirks | ||
50 | * It isn't possible to specify one of the rNN registers in a | ||
51 | * constraint, so we use explicit register variables to get the | ||
52 | * args into the right place. | ||
53 | * | ||
54 | * - Mark all registers as potentially clobbered | ||
55 | * Even unused parameters can be clobbered by the hypervisor, so we | ||
56 | * need to make sure gcc knows it. | ||
57 | * | ||
58 | * - Avoid compiler bugs. | ||
59 | * This is the tricky part. Because x86_32 has such a constrained | ||
60 | * register set, gcc versions below 4.3 have trouble generating | ||
61 | * code when all the arg registers and memory are trashed by the | ||
62 | * asm. There are syntactically simpler ways of achieving the | ||
63 | * semantics below, but they cause the compiler to crash. | ||
64 | * | ||
65 | * The only combination I found which works is: | ||
66 | * - assign the __argX variables first | ||
67 | * - list all actually used parameters as "+r" (__argX) | ||
68 | * - clobber the rest | ||
69 | * | ||
70 | * The result certainly isn't pretty, and it really shows up cpp's | ||
71 | * weakness as as macro language. Sorry. (But let's just give thanks | ||
72 | * there aren't more than 5 arguments...) | ||
73 | */ | ||
74 | |||
75 | extern struct { char _entry[32]; } hypercall_page[]; | ||
76 | |||
77 | #define __HYPERCALL "call hypercall_page+%c[offset]" | ||
78 | #define __HYPERCALL_ENTRY(x) \ | ||
79 | [offset] "i" (__HYPERVISOR_##x * sizeof(hypercall_page[0])) | ||
80 | |||
81 | #ifdef CONFIG_X86_32 | ||
82 | #define __HYPERCALL_RETREG "eax" | ||
83 | #define __HYPERCALL_ARG1REG "ebx" | ||
84 | #define __HYPERCALL_ARG2REG "ecx" | ||
85 | #define __HYPERCALL_ARG3REG "edx" | ||
86 | #define __HYPERCALL_ARG4REG "esi" | ||
87 | #define __HYPERCALL_ARG5REG "edi" | ||
88 | #else | ||
89 | #define __HYPERCALL_RETREG "rax" | ||
90 | #define __HYPERCALL_ARG1REG "rdi" | ||
91 | #define __HYPERCALL_ARG2REG "rsi" | ||
92 | #define __HYPERCALL_ARG3REG "rdx" | ||
93 | #define __HYPERCALL_ARG4REG "r10" | ||
94 | #define __HYPERCALL_ARG5REG "r8" | ||
95 | #endif | ||
96 | |||
97 | #define __HYPERCALL_DECLS \ | ||
98 | register unsigned long __res asm(__HYPERCALL_RETREG); \ | ||
99 | register unsigned long __arg1 asm(__HYPERCALL_ARG1REG) = __arg1; \ | ||
100 | register unsigned long __arg2 asm(__HYPERCALL_ARG2REG) = __arg2; \ | ||
101 | register unsigned long __arg3 asm(__HYPERCALL_ARG3REG) = __arg3; \ | ||
102 | register unsigned long __arg4 asm(__HYPERCALL_ARG4REG) = __arg4; \ | ||
103 | register unsigned long __arg5 asm(__HYPERCALL_ARG5REG) = __arg5; | ||
104 | |||
105 | #define __HYPERCALL_0PARAM "=r" (__res) | ||
106 | #define __HYPERCALL_1PARAM __HYPERCALL_0PARAM, "+r" (__arg1) | ||
107 | #define __HYPERCALL_2PARAM __HYPERCALL_1PARAM, "+r" (__arg2) | ||
108 | #define __HYPERCALL_3PARAM __HYPERCALL_2PARAM, "+r" (__arg3) | ||
109 | #define __HYPERCALL_4PARAM __HYPERCALL_3PARAM, "+r" (__arg4) | ||
110 | #define __HYPERCALL_5PARAM __HYPERCALL_4PARAM, "+r" (__arg5) | ||
111 | |||
112 | #define __HYPERCALL_0ARG() | ||
113 | #define __HYPERCALL_1ARG(a1) \ | ||
114 | __HYPERCALL_0ARG() __arg1 = (unsigned long)(a1); | ||
115 | #define __HYPERCALL_2ARG(a1,a2) \ | ||
116 | __HYPERCALL_1ARG(a1) __arg2 = (unsigned long)(a2); | ||
117 | #define __HYPERCALL_3ARG(a1,a2,a3) \ | ||
118 | __HYPERCALL_2ARG(a1,a2) __arg3 = (unsigned long)(a3); | ||
119 | #define __HYPERCALL_4ARG(a1,a2,a3,a4) \ | ||
120 | __HYPERCALL_3ARG(a1,a2,a3) __arg4 = (unsigned long)(a4); | ||
121 | #define __HYPERCALL_5ARG(a1,a2,a3,a4,a5) \ | ||
122 | __HYPERCALL_4ARG(a1,a2,a3,a4) __arg5 = (unsigned long)(a5); | ||
123 | |||
124 | #define __HYPERCALL_CLOBBER5 "memory" | ||
125 | #define __HYPERCALL_CLOBBER4 __HYPERCALL_CLOBBER5, __HYPERCALL_ARG5REG | ||
126 | #define __HYPERCALL_CLOBBER3 __HYPERCALL_CLOBBER4, __HYPERCALL_ARG4REG | ||
127 | #define __HYPERCALL_CLOBBER2 __HYPERCALL_CLOBBER3, __HYPERCALL_ARG3REG | ||
128 | #define __HYPERCALL_CLOBBER1 __HYPERCALL_CLOBBER2, __HYPERCALL_ARG2REG | ||
129 | #define __HYPERCALL_CLOBBER0 __HYPERCALL_CLOBBER1, __HYPERCALL_ARG1REG | ||
130 | |||
131 | #define _hypercall0(type, name) \ | ||
132 | ({ \ | ||
133 | __HYPERCALL_DECLS; \ | ||
134 | __HYPERCALL_0ARG(); \ | ||
135 | asm volatile (__HYPERCALL \ | ||
136 | : __HYPERCALL_0PARAM \ | ||
137 | : __HYPERCALL_ENTRY(name) \ | ||
138 | : __HYPERCALL_CLOBBER0); \ | ||
139 | (type)__res; \ | ||
140 | }) | ||
141 | |||
142 | #define _hypercall1(type, name, a1) \ | ||
143 | ({ \ | ||
144 | __HYPERCALL_DECLS; \ | ||
145 | __HYPERCALL_1ARG(a1); \ | ||
146 | asm volatile (__HYPERCALL \ | ||
147 | : __HYPERCALL_1PARAM \ | ||
148 | : __HYPERCALL_ENTRY(name) \ | ||
149 | : __HYPERCALL_CLOBBER1); \ | ||
150 | (type)__res; \ | ||
151 | }) | ||
152 | |||
153 | #define _hypercall2(type, name, a1, a2) \ | ||
154 | ({ \ | ||
155 | __HYPERCALL_DECLS; \ | ||
156 | __HYPERCALL_2ARG(a1, a2); \ | ||
157 | asm volatile (__HYPERCALL \ | ||
158 | : __HYPERCALL_2PARAM \ | ||
159 | : __HYPERCALL_ENTRY(name) \ | ||
160 | : __HYPERCALL_CLOBBER2); \ | ||
161 | (type)__res; \ | ||
162 | }) | ||
163 | |||
164 | #define _hypercall3(type, name, a1, a2, a3) \ | ||
165 | ({ \ | ||
166 | __HYPERCALL_DECLS; \ | ||
167 | __HYPERCALL_3ARG(a1, a2, a3); \ | ||
168 | asm volatile (__HYPERCALL \ | ||
169 | : __HYPERCALL_3PARAM \ | ||
170 | : __HYPERCALL_ENTRY(name) \ | ||
171 | : __HYPERCALL_CLOBBER3); \ | ||
172 | (type)__res; \ | ||
173 | }) | ||
174 | |||
175 | #define _hypercall4(type, name, a1, a2, a3, a4) \ | ||
176 | ({ \ | ||
177 | __HYPERCALL_DECLS; \ | ||
178 | __HYPERCALL_4ARG(a1, a2, a3, a4); \ | ||
179 | asm volatile (__HYPERCALL \ | ||
180 | : __HYPERCALL_4PARAM \ | ||
181 | : __HYPERCALL_ENTRY(name) \ | ||
182 | : __HYPERCALL_CLOBBER4); \ | ||
183 | (type)__res; \ | ||
184 | }) | ||
185 | |||
186 | #define _hypercall5(type, name, a1, a2, a3, a4, a5) \ | ||
187 | ({ \ | ||
188 | __HYPERCALL_DECLS; \ | ||
189 | __HYPERCALL_5ARG(a1, a2, a3, a4, a5); \ | ||
190 | asm volatile (__HYPERCALL \ | ||
191 | : __HYPERCALL_5PARAM \ | ||
192 | : __HYPERCALL_ENTRY(name) \ | ||
193 | : __HYPERCALL_CLOBBER5); \ | ||
194 | (type)__res; \ | ||
195 | }) | ||
196 | |||
197 | static inline int | ||
198 | HYPERVISOR_set_trap_table(struct trap_info *table) | ||
199 | { | ||
200 | return _hypercall1(int, set_trap_table, table); | ||
201 | } | ||
202 | |||
203 | static inline int | ||
204 | HYPERVISOR_mmu_update(struct mmu_update *req, int count, | ||
205 | int *success_count, domid_t domid) | ||
206 | { | ||
207 | return _hypercall4(int, mmu_update, req, count, success_count, domid); | ||
208 | } | ||
209 | |||
210 | static inline int | ||
211 | HYPERVISOR_mmuext_op(struct mmuext_op *op, int count, | ||
212 | int *success_count, domid_t domid) | ||
213 | { | ||
214 | return _hypercall4(int, mmuext_op, op, count, success_count, domid); | ||
215 | } | ||
216 | |||
217 | static inline int | ||
218 | HYPERVISOR_set_gdt(unsigned long *frame_list, int entries) | ||
219 | { | ||
220 | return _hypercall2(int, set_gdt, frame_list, entries); | ||
221 | } | ||
222 | |||
223 | static inline int | ||
224 | HYPERVISOR_stack_switch(unsigned long ss, unsigned long esp) | ||
225 | { | ||
226 | return _hypercall2(int, stack_switch, ss, esp); | ||
227 | } | ||
228 | |||
229 | #ifdef CONFIG_X86_32 | ||
230 | static inline int | ||
231 | HYPERVISOR_set_callbacks(unsigned long event_selector, | ||
232 | unsigned long event_address, | ||
233 | unsigned long failsafe_selector, | ||
234 | unsigned long failsafe_address) | ||
235 | { | ||
236 | return _hypercall4(int, set_callbacks, | ||
237 | event_selector, event_address, | ||
238 | failsafe_selector, failsafe_address); | ||
239 | } | ||
240 | #else /* CONFIG_X86_64 */ | ||
241 | static inline int | ||
242 | HYPERVISOR_set_callbacks(unsigned long event_address, | ||
243 | unsigned long failsafe_address, | ||
244 | unsigned long syscall_address) | ||
245 | { | ||
246 | return _hypercall3(int, set_callbacks, | ||
247 | event_address, failsafe_address, | ||
248 | syscall_address); | ||
249 | } | ||
250 | #endif /* CONFIG_X86_{32,64} */ | ||
251 | |||
252 | static inline int | ||
253 | HYPERVISOR_callback_op(int cmd, void *arg) | ||
254 | { | ||
255 | return _hypercall2(int, callback_op, cmd, arg); | ||
256 | } | ||
257 | |||
258 | static inline int | ||
259 | HYPERVISOR_fpu_taskswitch(int set) | ||
260 | { | ||
261 | return _hypercall1(int, fpu_taskswitch, set); | ||
262 | } | ||
263 | |||
264 | static inline int | ||
265 | HYPERVISOR_sched_op(int cmd, void *arg) | ||
266 | { | ||
267 | return _hypercall2(int, sched_op_new, cmd, arg); | ||
268 | } | ||
269 | |||
270 | static inline long | ||
271 | HYPERVISOR_set_timer_op(u64 timeout) | ||
272 | { | ||
273 | unsigned long timeout_hi = (unsigned long)(timeout>>32); | ||
274 | unsigned long timeout_lo = (unsigned long)timeout; | ||
275 | return _hypercall2(long, set_timer_op, timeout_lo, timeout_hi); | ||
276 | } | ||
277 | |||
278 | static inline int | ||
279 | HYPERVISOR_set_debugreg(int reg, unsigned long value) | ||
280 | { | ||
281 | return _hypercall2(int, set_debugreg, reg, value); | ||
282 | } | ||
283 | |||
284 | static inline unsigned long | ||
285 | HYPERVISOR_get_debugreg(int reg) | ||
286 | { | ||
287 | return _hypercall1(unsigned long, get_debugreg, reg); | ||
288 | } | ||
289 | |||
290 | static inline int | ||
291 | HYPERVISOR_update_descriptor(u64 ma, u64 desc) | ||
292 | { | ||
293 | return _hypercall4(int, update_descriptor, ma, ma>>32, desc, desc>>32); | ||
294 | } | ||
295 | |||
296 | static inline int | ||
297 | HYPERVISOR_memory_op(unsigned int cmd, void *arg) | ||
298 | { | ||
299 | return _hypercall2(int, memory_op, cmd, arg); | ||
300 | } | ||
301 | |||
302 | static inline int | ||
303 | HYPERVISOR_multicall(void *call_list, int nr_calls) | ||
304 | { | ||
305 | return _hypercall2(int, multicall, call_list, nr_calls); | ||
306 | } | ||
307 | |||
308 | static inline int | ||
309 | HYPERVISOR_update_va_mapping(unsigned long va, pte_t new_val, | ||
310 | unsigned long flags) | ||
311 | { | ||
312 | if (sizeof(new_val) == sizeof(long)) | ||
313 | return _hypercall3(int, update_va_mapping, va, | ||
314 | new_val.pte, flags); | ||
315 | else | ||
316 | return _hypercall4(int, update_va_mapping, va, | ||
317 | new_val.pte, new_val.pte >> 32, flags); | ||
318 | } | ||
319 | |||
320 | static inline int | ||
321 | HYPERVISOR_event_channel_op(int cmd, void *arg) | ||
322 | { | ||
323 | int rc = _hypercall2(int, event_channel_op, cmd, arg); | ||
324 | if (unlikely(rc == -ENOSYS)) { | ||
325 | struct evtchn_op op; | ||
326 | op.cmd = cmd; | ||
327 | memcpy(&op.u, arg, sizeof(op.u)); | ||
328 | rc = _hypercall1(int, event_channel_op_compat, &op); | ||
329 | memcpy(arg, &op.u, sizeof(op.u)); | ||
330 | } | ||
331 | return rc; | ||
332 | } | ||
333 | |||
334 | static inline int | ||
335 | HYPERVISOR_xen_version(int cmd, void *arg) | ||
336 | { | ||
337 | return _hypercall2(int, xen_version, cmd, arg); | ||
338 | } | ||
339 | |||
340 | static inline int | ||
341 | HYPERVISOR_console_io(int cmd, int count, char *str) | ||
342 | { | ||
343 | return _hypercall3(int, console_io, cmd, count, str); | ||
344 | } | ||
345 | |||
346 | static inline int | ||
347 | HYPERVISOR_physdev_op(int cmd, void *arg) | ||
348 | { | ||
349 | int rc = _hypercall2(int, physdev_op, cmd, arg); | ||
350 | if (unlikely(rc == -ENOSYS)) { | ||
351 | struct physdev_op op; | ||
352 | op.cmd = cmd; | ||
353 | memcpy(&op.u, arg, sizeof(op.u)); | ||
354 | rc = _hypercall1(int, physdev_op_compat, &op); | ||
355 | memcpy(arg, &op.u, sizeof(op.u)); | ||
356 | } | ||
357 | return rc; | ||
358 | } | ||
359 | |||
360 | static inline int | ||
361 | HYPERVISOR_grant_table_op(unsigned int cmd, void *uop, unsigned int count) | ||
362 | { | ||
363 | return _hypercall3(int, grant_table_op, cmd, uop, count); | ||
364 | } | ||
365 | |||
366 | static inline int | ||
367 | HYPERVISOR_update_va_mapping_otherdomain(unsigned long va, pte_t new_val, | ||
368 | unsigned long flags, domid_t domid) | ||
369 | { | ||
370 | if (sizeof(new_val) == sizeof(long)) | ||
371 | return _hypercall4(int, update_va_mapping_otherdomain, va, | ||
372 | new_val.pte, flags, domid); | ||
373 | else | ||
374 | return _hypercall5(int, update_va_mapping_otherdomain, va, | ||
375 | new_val.pte, new_val.pte >> 32, | ||
376 | flags, domid); | ||
377 | } | ||
378 | |||
379 | static inline int | ||
380 | HYPERVISOR_vm_assist(unsigned int cmd, unsigned int type) | ||
381 | { | ||
382 | return _hypercall2(int, vm_assist, cmd, type); | ||
383 | } | ||
384 | |||
385 | static inline int | ||
386 | HYPERVISOR_vcpu_op(int cmd, int vcpuid, void *extra_args) | ||
387 | { | ||
388 | return _hypercall3(int, vcpu_op, cmd, vcpuid, extra_args); | ||
389 | } | ||
390 | |||
391 | #ifdef CONFIG_X86_64 | ||
392 | static inline int | ||
393 | HYPERVISOR_set_segment_base(int reg, unsigned long value) | ||
394 | { | ||
395 | return _hypercall2(int, set_segment_base, reg, value); | ||
396 | } | ||
397 | #endif | ||
398 | |||
399 | static inline int | ||
400 | HYPERVISOR_suspend(unsigned long srec) | ||
401 | { | ||
402 | return _hypercall3(int, sched_op, SCHEDOP_shutdown, | ||
403 | SHUTDOWN_suspend, srec); | ||
404 | } | ||
405 | |||
406 | static inline int | ||
407 | HYPERVISOR_nmi_op(unsigned long op, unsigned long arg) | ||
408 | { | ||
409 | return _hypercall2(int, nmi_op, op, arg); | ||
410 | } | ||
411 | |||
412 | static inline void | ||
413 | MULTI_fpu_taskswitch(struct multicall_entry *mcl, int set) | ||
414 | { | ||
415 | mcl->op = __HYPERVISOR_fpu_taskswitch; | ||
416 | mcl->args[0] = set; | ||
417 | } | ||
418 | |||
419 | static inline void | ||
420 | MULTI_update_va_mapping(struct multicall_entry *mcl, unsigned long va, | ||
421 | pte_t new_val, unsigned long flags) | ||
422 | { | ||
423 | mcl->op = __HYPERVISOR_update_va_mapping; | ||
424 | mcl->args[0] = va; | ||
425 | if (sizeof(new_val) == sizeof(long)) { | ||
426 | mcl->args[1] = new_val.pte; | ||
427 | mcl->args[2] = flags; | ||
428 | } else { | ||
429 | mcl->args[1] = new_val.pte; | ||
430 | mcl->args[2] = new_val.pte >> 32; | ||
431 | mcl->args[3] = flags; | ||
432 | } | ||
433 | } | ||
434 | |||
435 | static inline void | ||
436 | MULTI_grant_table_op(struct multicall_entry *mcl, unsigned int cmd, | ||
437 | void *uop, unsigned int count) | ||
438 | { | ||
439 | mcl->op = __HYPERVISOR_grant_table_op; | ||
440 | mcl->args[0] = cmd; | ||
441 | mcl->args[1] = (unsigned long)uop; | ||
442 | mcl->args[2] = count; | ||
443 | } | ||
444 | |||
445 | static inline void | ||
446 | MULTI_update_va_mapping_otherdomain(struct multicall_entry *mcl, unsigned long va, | ||
447 | pte_t new_val, unsigned long flags, | ||
448 | domid_t domid) | ||
449 | { | ||
450 | mcl->op = __HYPERVISOR_update_va_mapping_otherdomain; | ||
451 | mcl->args[0] = va; | ||
452 | if (sizeof(new_val) == sizeof(long)) { | ||
453 | mcl->args[1] = new_val.pte; | ||
454 | mcl->args[2] = flags; | ||
455 | mcl->args[3] = domid; | ||
456 | } else { | ||
457 | mcl->args[1] = new_val.pte; | ||
458 | mcl->args[2] = new_val.pte >> 32; | ||
459 | mcl->args[3] = flags; | ||
460 | mcl->args[4] = domid; | ||
461 | } | ||
462 | } | ||
463 | |||
464 | static inline void | ||
465 | MULTI_update_descriptor(struct multicall_entry *mcl, u64 maddr, | ||
466 | struct desc_struct desc) | ||
467 | { | ||
468 | mcl->op = __HYPERVISOR_update_descriptor; | ||
469 | if (sizeof(maddr) == sizeof(long)) { | ||
470 | mcl->args[0] = maddr; | ||
471 | mcl->args[1] = *(unsigned long *)&desc; | ||
472 | } else { | ||
473 | mcl->args[0] = maddr; | ||
474 | mcl->args[1] = maddr >> 32; | ||
475 | mcl->args[2] = desc.a; | ||
476 | mcl->args[3] = desc.b; | ||
477 | } | ||
478 | } | ||
479 | |||
480 | static inline void | ||
481 | MULTI_memory_op(struct multicall_entry *mcl, unsigned int cmd, void *arg) | ||
482 | { | ||
483 | mcl->op = __HYPERVISOR_memory_op; | ||
484 | mcl->args[0] = cmd; | ||
485 | mcl->args[1] = (unsigned long)arg; | ||
486 | } | ||
487 | |||
488 | static inline void | ||
489 | MULTI_mmu_update(struct multicall_entry *mcl, struct mmu_update *req, | ||
490 | int count, int *success_count, domid_t domid) | ||
491 | { | ||
492 | mcl->op = __HYPERVISOR_mmu_update; | ||
493 | mcl->args[0] = (unsigned long)req; | ||
494 | mcl->args[1] = count; | ||
495 | mcl->args[2] = (unsigned long)success_count; | ||
496 | mcl->args[3] = domid; | ||
497 | } | ||
498 | |||
499 | static inline void | ||
500 | MULTI_mmuext_op(struct multicall_entry *mcl, struct mmuext_op *op, int count, | ||
501 | int *success_count, domid_t domid) | ||
502 | { | ||
503 | mcl->op = __HYPERVISOR_mmuext_op; | ||
504 | mcl->args[0] = (unsigned long)op; | ||
505 | mcl->args[1] = count; | ||
506 | mcl->args[2] = (unsigned long)success_count; | ||
507 | mcl->args[3] = domid; | ||
508 | } | ||
509 | |||
510 | static inline void | ||
511 | MULTI_set_gdt(struct multicall_entry *mcl, unsigned long *frames, int entries) | ||
512 | { | ||
513 | mcl->op = __HYPERVISOR_set_gdt; | ||
514 | mcl->args[0] = (unsigned long)frames; | ||
515 | mcl->args[1] = entries; | ||
516 | } | ||
517 | |||
518 | static inline void | ||
519 | MULTI_stack_switch(struct multicall_entry *mcl, | ||
520 | unsigned long ss, unsigned long esp) | ||
521 | { | ||
522 | mcl->op = __HYPERVISOR_stack_switch; | ||
523 | mcl->args[0] = ss; | ||
524 | mcl->args[1] = esp; | ||
525 | } | ||
526 | |||
527 | #endif /* _ASM_X86_XEN_HYPERCALL_H */ | ||
diff --git a/arch/x86/include/asm/xen/hypervisor.h b/arch/x86/include/asm/xen/hypervisor.h new file mode 100644 index 000000000000..a38d25ac87d2 --- /dev/null +++ b/arch/x86/include/asm/xen/hypervisor.h | |||
@@ -0,0 +1,82 @@ | |||
1 | /****************************************************************************** | ||
2 | * hypervisor.h | ||
3 | * | ||
4 | * Linux-specific hypervisor handling. | ||
5 | * | ||
6 | * Copyright (c) 2002-2004, K A Fraser | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or | ||
9 | * modify it under the terms of the GNU General Public License version 2 | ||
10 | * as published by the Free Software Foundation; or, when distributed | ||
11 | * separately from the Linux kernel or incorporated into other | ||
12 | * software packages, subject to the following license: | ||
13 | * | ||
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy | ||
15 | * of this source file (the "Software"), to deal in the Software without | ||
16 | * restriction, including without limitation the rights to use, copy, modify, | ||
17 | * merge, publish, distribute, sublicense, and/or sell copies of the Software, | ||
18 | * and to permit persons to whom the Software is furnished to do so, subject to | ||
19 | * the following conditions: | ||
20 | * | ||
21 | * The above copyright notice and this permission notice shall be included in | ||
22 | * all copies or substantial portions of the Software. | ||
23 | * | ||
24 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
25 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
26 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
27 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
28 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
29 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | ||
30 | * IN THE SOFTWARE. | ||
31 | */ | ||
32 | |||
33 | #ifndef _ASM_X86_XEN_HYPERVISOR_H | ||
34 | #define _ASM_X86_XEN_HYPERVISOR_H | ||
35 | |||
36 | #include <linux/types.h> | ||
37 | #include <linux/kernel.h> | ||
38 | |||
39 | #include <xen/interface/xen.h> | ||
40 | #include <xen/interface/version.h> | ||
41 | |||
42 | #include <asm/ptrace.h> | ||
43 | #include <asm/page.h> | ||
44 | #include <asm/desc.h> | ||
45 | #if defined(__i386__) | ||
46 | # ifdef CONFIG_X86_PAE | ||
47 | # include <asm-generic/pgtable-nopud.h> | ||
48 | # else | ||
49 | # include <asm-generic/pgtable-nopmd.h> | ||
50 | # endif | ||
51 | #endif | ||
52 | #include <asm/xen/hypercall.h> | ||
53 | |||
54 | /* arch/i386/kernel/setup.c */ | ||
55 | extern struct shared_info *HYPERVISOR_shared_info; | ||
56 | extern struct start_info *xen_start_info; | ||
57 | |||
58 | /* arch/i386/mach-xen/evtchn.c */ | ||
59 | /* Force a proper event-channel callback from Xen. */ | ||
60 | extern void force_evtchn_callback(void); | ||
61 | |||
62 | /* Turn jiffies into Xen system time. */ | ||
63 | u64 jiffies_to_st(unsigned long jiffies); | ||
64 | |||
65 | |||
66 | #define MULTI_UVMFLAGS_INDEX 3 | ||
67 | #define MULTI_UVMDOMID_INDEX 4 | ||
68 | |||
69 | enum xen_domain_type { | ||
70 | XEN_NATIVE, | ||
71 | XEN_PV_DOMAIN, | ||
72 | XEN_HVM_DOMAIN, | ||
73 | }; | ||
74 | |||
75 | extern enum xen_domain_type xen_domain_type; | ||
76 | |||
77 | #define xen_domain() (xen_domain_type != XEN_NATIVE) | ||
78 | #define xen_pv_domain() (xen_domain_type == XEN_PV_DOMAIN) | ||
79 | #define xen_initial_domain() (xen_pv_domain() && xen_start_info->flags & SIF_INITDOMAIN) | ||
80 | #define xen_hvm_domain() (xen_domain_type == XEN_HVM_DOMAIN) | ||
81 | |||
82 | #endif /* _ASM_X86_XEN_HYPERVISOR_H */ | ||
diff --git a/arch/x86/include/asm/xen/interface.h b/arch/x86/include/asm/xen/interface.h new file mode 100644 index 000000000000..e8506c1f0c55 --- /dev/null +++ b/arch/x86/include/asm/xen/interface.h | |||
@@ -0,0 +1,175 @@ | |||
1 | /****************************************************************************** | ||
2 | * arch-x86_32.h | ||
3 | * | ||
4 | * Guest OS interface to x86 Xen. | ||
5 | * | ||
6 | * Copyright (c) 2004, K A Fraser | ||
7 | */ | ||
8 | |||
9 | #ifndef _ASM_X86_XEN_INTERFACE_H | ||
10 | #define _ASM_X86_XEN_INTERFACE_H | ||
11 | |||
12 | #ifdef __XEN__ | ||
13 | #define __DEFINE_GUEST_HANDLE(name, type) \ | ||
14 | typedef struct { type *p; } __guest_handle_ ## name | ||
15 | #else | ||
16 | #define __DEFINE_GUEST_HANDLE(name, type) \ | ||
17 | typedef type * __guest_handle_ ## name | ||
18 | #endif | ||
19 | |||
20 | #define DEFINE_GUEST_HANDLE_STRUCT(name) \ | ||
21 | __DEFINE_GUEST_HANDLE(name, struct name) | ||
22 | #define DEFINE_GUEST_HANDLE(name) __DEFINE_GUEST_HANDLE(name, name) | ||
23 | #define GUEST_HANDLE(name) __guest_handle_ ## name | ||
24 | |||
25 | #ifdef __XEN__ | ||
26 | #if defined(__i386__) | ||
27 | #define set_xen_guest_handle(hnd, val) \ | ||
28 | do { \ | ||
29 | if (sizeof(hnd) == 8) \ | ||
30 | *(uint64_t *)&(hnd) = 0; \ | ||
31 | (hnd).p = val; \ | ||
32 | } while (0) | ||
33 | #elif defined(__x86_64__) | ||
34 | #define set_xen_guest_handle(hnd, val) do { (hnd).p = val; } while (0) | ||
35 | #endif | ||
36 | #else | ||
37 | #if defined(__i386__) | ||
38 | #define set_xen_guest_handle(hnd, val) \ | ||
39 | do { \ | ||
40 | if (sizeof(hnd) == 8) \ | ||
41 | *(uint64_t *)&(hnd) = 0; \ | ||
42 | (hnd) = val; \ | ||
43 | } while (0) | ||
44 | #elif defined(__x86_64__) | ||
45 | #define set_xen_guest_handle(hnd, val) do { (hnd) = val; } while (0) | ||
46 | #endif | ||
47 | #endif | ||
48 | |||
49 | #ifndef __ASSEMBLY__ | ||
50 | /* Guest handles for primitive C types. */ | ||
51 | __DEFINE_GUEST_HANDLE(uchar, unsigned char); | ||
52 | __DEFINE_GUEST_HANDLE(uint, unsigned int); | ||
53 | __DEFINE_GUEST_HANDLE(ulong, unsigned long); | ||
54 | DEFINE_GUEST_HANDLE(char); | ||
55 | DEFINE_GUEST_HANDLE(int); | ||
56 | DEFINE_GUEST_HANDLE(long); | ||
57 | DEFINE_GUEST_HANDLE(void); | ||
58 | #endif | ||
59 | |||
60 | #ifndef HYPERVISOR_VIRT_START | ||
61 | #define HYPERVISOR_VIRT_START mk_unsigned_long(__HYPERVISOR_VIRT_START) | ||
62 | #endif | ||
63 | |||
64 | #ifndef machine_to_phys_mapping | ||
65 | #define machine_to_phys_mapping ((unsigned long *)HYPERVISOR_VIRT_START) | ||
66 | #endif | ||
67 | |||
68 | /* Maximum number of virtual CPUs in multi-processor guests. */ | ||
69 | #define MAX_VIRT_CPUS 32 | ||
70 | |||
71 | /* | ||
72 | * SEGMENT DESCRIPTOR TABLES | ||
73 | */ | ||
74 | /* | ||
75 | * A number of GDT entries are reserved by Xen. These are not situated at the | ||
76 | * start of the GDT because some stupid OSes export hard-coded selector values | ||
77 | * in their ABI. These hard-coded values are always near the start of the GDT, | ||
78 | * so Xen places itself out of the way, at the far end of the GDT. | ||
79 | */ | ||
80 | #define FIRST_RESERVED_GDT_PAGE 14 | ||
81 | #define FIRST_RESERVED_GDT_BYTE (FIRST_RESERVED_GDT_PAGE * 4096) | ||
82 | #define FIRST_RESERVED_GDT_ENTRY (FIRST_RESERVED_GDT_BYTE / 8) | ||
83 | |||
84 | /* | ||
85 | * Send an array of these to HYPERVISOR_set_trap_table() | ||
86 | * The privilege level specifies which modes may enter a trap via a software | ||
87 | * interrupt. On x86/64, since rings 1 and 2 are unavailable, we allocate | ||
88 | * privilege levels as follows: | ||
89 | * Level == 0: Noone may enter | ||
90 | * Level == 1: Kernel may enter | ||
91 | * Level == 2: Kernel may enter | ||
92 | * Level == 3: Everyone may enter | ||
93 | */ | ||
94 | #define TI_GET_DPL(_ti) ((_ti)->flags & 3) | ||
95 | #define TI_GET_IF(_ti) ((_ti)->flags & 4) | ||
96 | #define TI_SET_DPL(_ti, _dpl) ((_ti)->flags |= (_dpl)) | ||
97 | #define TI_SET_IF(_ti, _if) ((_ti)->flags |= ((!!(_if))<<2)) | ||
98 | |||
99 | #ifndef __ASSEMBLY__ | ||
100 | struct trap_info { | ||
101 | uint8_t vector; /* exception vector */ | ||
102 | uint8_t flags; /* 0-3: privilege level; 4: clear event enable? */ | ||
103 | uint16_t cs; /* code selector */ | ||
104 | unsigned long address; /* code offset */ | ||
105 | }; | ||
106 | DEFINE_GUEST_HANDLE_STRUCT(trap_info); | ||
107 | |||
108 | struct arch_shared_info { | ||
109 | unsigned long max_pfn; /* max pfn that appears in table */ | ||
110 | /* Frame containing list of mfns containing list of mfns containing p2m. */ | ||
111 | unsigned long pfn_to_mfn_frame_list_list; | ||
112 | unsigned long nmi_reason; | ||
113 | }; | ||
114 | #endif /* !__ASSEMBLY__ */ | ||
115 | |||
116 | #ifdef CONFIG_X86_32 | ||
117 | #include "interface_32.h" | ||
118 | #else | ||
119 | #include "interface_64.h" | ||
120 | #endif | ||
121 | |||
122 | #ifndef __ASSEMBLY__ | ||
123 | /* | ||
124 | * The following is all CPU context. Note that the fpu_ctxt block is filled | ||
125 | * in by FXSAVE if the CPU has feature FXSR; otherwise FSAVE is used. | ||
126 | */ | ||
127 | struct vcpu_guest_context { | ||
128 | /* FPU registers come first so they can be aligned for FXSAVE/FXRSTOR. */ | ||
129 | struct { char x[512]; } fpu_ctxt; /* User-level FPU registers */ | ||
130 | #define VGCF_I387_VALID (1<<0) | ||
131 | #define VGCF_HVM_GUEST (1<<1) | ||
132 | #define VGCF_IN_KERNEL (1<<2) | ||
133 | unsigned long flags; /* VGCF_* flags */ | ||
134 | struct cpu_user_regs user_regs; /* User-level CPU registers */ | ||
135 | struct trap_info trap_ctxt[256]; /* Virtual IDT */ | ||
136 | unsigned long ldt_base, ldt_ents; /* LDT (linear address, # ents) */ | ||
137 | unsigned long gdt_frames[16], gdt_ents; /* GDT (machine frames, # ents) */ | ||
138 | unsigned long kernel_ss, kernel_sp; /* Virtual TSS (only SS1/SP1) */ | ||
139 | /* NB. User pagetable on x86/64 is placed in ctrlreg[1]. */ | ||
140 | unsigned long ctrlreg[8]; /* CR0-CR7 (control registers) */ | ||
141 | unsigned long debugreg[8]; /* DB0-DB7 (debug registers) */ | ||
142 | #ifdef __i386__ | ||
143 | unsigned long event_callback_cs; /* CS:EIP of event callback */ | ||
144 | unsigned long event_callback_eip; | ||
145 | unsigned long failsafe_callback_cs; /* CS:EIP of failsafe callback */ | ||
146 | unsigned long failsafe_callback_eip; | ||
147 | #else | ||
148 | unsigned long event_callback_eip; | ||
149 | unsigned long failsafe_callback_eip; | ||
150 | unsigned long syscall_callback_eip; | ||
151 | #endif | ||
152 | unsigned long vm_assist; /* VMASST_TYPE_* bitmap */ | ||
153 | #ifdef __x86_64__ | ||
154 | /* Segment base addresses. */ | ||
155 | uint64_t fs_base; | ||
156 | uint64_t gs_base_kernel; | ||
157 | uint64_t gs_base_user; | ||
158 | #endif | ||
159 | }; | ||
160 | DEFINE_GUEST_HANDLE_STRUCT(vcpu_guest_context); | ||
161 | #endif /* !__ASSEMBLY__ */ | ||
162 | |||
163 | /* | ||
164 | * Prefix forces emulation of some non-trapping instructions. | ||
165 | * Currently only CPUID. | ||
166 | */ | ||
167 | #ifdef __ASSEMBLY__ | ||
168 | #define XEN_EMULATE_PREFIX .byte 0x0f,0x0b,0x78,0x65,0x6e ; | ||
169 | #define XEN_CPUID XEN_EMULATE_PREFIX cpuid | ||
170 | #else | ||
171 | #define XEN_EMULATE_PREFIX ".byte 0x0f,0x0b,0x78,0x65,0x6e ; " | ||
172 | #define XEN_CPUID XEN_EMULATE_PREFIX "cpuid" | ||
173 | #endif | ||
174 | |||
175 | #endif /* _ASM_X86_XEN_INTERFACE_H */ | ||
diff --git a/arch/x86/include/asm/xen/interface_32.h b/arch/x86/include/asm/xen/interface_32.h new file mode 100644 index 000000000000..42a7e004ae5c --- /dev/null +++ b/arch/x86/include/asm/xen/interface_32.h | |||
@@ -0,0 +1,97 @@ | |||
1 | /****************************************************************************** | ||
2 | * arch-x86_32.h | ||
3 | * | ||
4 | * Guest OS interface to x86 32-bit Xen. | ||
5 | * | ||
6 | * Copyright (c) 2004, K A Fraser | ||
7 | */ | ||
8 | |||
9 | #ifndef _ASM_X86_XEN_INTERFACE_32_H | ||
10 | #define _ASM_X86_XEN_INTERFACE_32_H | ||
11 | |||
12 | |||
13 | /* | ||
14 | * These flat segments are in the Xen-private section of every GDT. Since these | ||
15 | * are also present in the initial GDT, many OSes will be able to avoid | ||
16 | * installing their own GDT. | ||
17 | */ | ||
18 | #define FLAT_RING1_CS 0xe019 /* GDT index 259 */ | ||
19 | #define FLAT_RING1_DS 0xe021 /* GDT index 260 */ | ||
20 | #define FLAT_RING1_SS 0xe021 /* GDT index 260 */ | ||
21 | #define FLAT_RING3_CS 0xe02b /* GDT index 261 */ | ||
22 | #define FLAT_RING3_DS 0xe033 /* GDT index 262 */ | ||
23 | #define FLAT_RING3_SS 0xe033 /* GDT index 262 */ | ||
24 | |||
25 | #define FLAT_KERNEL_CS FLAT_RING1_CS | ||
26 | #define FLAT_KERNEL_DS FLAT_RING1_DS | ||
27 | #define FLAT_KERNEL_SS FLAT_RING1_SS | ||
28 | #define FLAT_USER_CS FLAT_RING3_CS | ||
29 | #define FLAT_USER_DS FLAT_RING3_DS | ||
30 | #define FLAT_USER_SS FLAT_RING3_SS | ||
31 | |||
32 | /* And the trap vector is... */ | ||
33 | #define TRAP_INSTR "int $0x82" | ||
34 | |||
35 | /* | ||
36 | * Virtual addresses beyond this are not modifiable by guest OSes. The | ||
37 | * machine->physical mapping table starts at this address, read-only. | ||
38 | */ | ||
39 | #define __HYPERVISOR_VIRT_START 0xF5800000 | ||
40 | |||
41 | #ifndef __ASSEMBLY__ | ||
42 | |||
43 | struct cpu_user_regs { | ||
44 | uint32_t ebx; | ||
45 | uint32_t ecx; | ||
46 | uint32_t edx; | ||
47 | uint32_t esi; | ||
48 | uint32_t edi; | ||
49 | uint32_t ebp; | ||
50 | uint32_t eax; | ||
51 | uint16_t error_code; /* private */ | ||
52 | uint16_t entry_vector; /* private */ | ||
53 | uint32_t eip; | ||
54 | uint16_t cs; | ||
55 | uint8_t saved_upcall_mask; | ||
56 | uint8_t _pad0; | ||
57 | uint32_t eflags; /* eflags.IF == !saved_upcall_mask */ | ||
58 | uint32_t esp; | ||
59 | uint16_t ss, _pad1; | ||
60 | uint16_t es, _pad2; | ||
61 | uint16_t ds, _pad3; | ||
62 | uint16_t fs, _pad4; | ||
63 | uint16_t gs, _pad5; | ||
64 | }; | ||
65 | DEFINE_GUEST_HANDLE_STRUCT(cpu_user_regs); | ||
66 | |||
67 | typedef uint64_t tsc_timestamp_t; /* RDTSC timestamp */ | ||
68 | |||
69 | struct arch_vcpu_info { | ||
70 | unsigned long cr2; | ||
71 | unsigned long pad[5]; /* sizeof(struct vcpu_info) == 64 */ | ||
72 | }; | ||
73 | |||
74 | struct xen_callback { | ||
75 | unsigned long cs; | ||
76 | unsigned long eip; | ||
77 | }; | ||
78 | typedef struct xen_callback xen_callback_t; | ||
79 | |||
80 | #define XEN_CALLBACK(__cs, __eip) \ | ||
81 | ((struct xen_callback){ .cs = (__cs), .eip = (unsigned long)(__eip) }) | ||
82 | #endif /* !__ASSEMBLY__ */ | ||
83 | |||
84 | |||
85 | /* | ||
86 | * Page-directory addresses above 4GB do not fit into architectural %cr3. | ||
87 | * When accessing %cr3, or equivalent field in vcpu_guest_context, guests | ||
88 | * must use the following accessor macros to pack/unpack valid MFNs. | ||
89 | * | ||
90 | * Note that Xen is using the fact that the pagetable base is always | ||
91 | * page-aligned, and putting the 12 MSB of the address into the 12 LSB | ||
92 | * of cr3. | ||
93 | */ | ||
94 | #define xen_pfn_to_cr3(pfn) (((unsigned)(pfn) << 12) | ((unsigned)(pfn) >> 20)) | ||
95 | #define xen_cr3_to_pfn(cr3) (((unsigned)(cr3) >> 12) | ((unsigned)(cr3) << 20)) | ||
96 | |||
97 | #endif /* _ASM_X86_XEN_INTERFACE_32_H */ | ||
diff --git a/arch/x86/include/asm/xen/interface_64.h b/arch/x86/include/asm/xen/interface_64.h new file mode 100644 index 000000000000..100d2662b97c --- /dev/null +++ b/arch/x86/include/asm/xen/interface_64.h | |||
@@ -0,0 +1,159 @@ | |||
1 | #ifndef _ASM_X86_XEN_INTERFACE_64_H | ||
2 | #define _ASM_X86_XEN_INTERFACE_64_H | ||
3 | |||
4 | /* | ||
5 | * 64-bit segment selectors | ||
6 | * These flat segments are in the Xen-private section of every GDT. Since these | ||
7 | * are also present in the initial GDT, many OSes will be able to avoid | ||
8 | * installing their own GDT. | ||
9 | */ | ||
10 | |||
11 | #define FLAT_RING3_CS32 0xe023 /* GDT index 260 */ | ||
12 | #define FLAT_RING3_CS64 0xe033 /* GDT index 261 */ | ||
13 | #define FLAT_RING3_DS32 0xe02b /* GDT index 262 */ | ||
14 | #define FLAT_RING3_DS64 0x0000 /* NULL selector */ | ||
15 | #define FLAT_RING3_SS32 0xe02b /* GDT index 262 */ | ||
16 | #define FLAT_RING3_SS64 0xe02b /* GDT index 262 */ | ||
17 | |||
18 | #define FLAT_KERNEL_DS64 FLAT_RING3_DS64 | ||
19 | #define FLAT_KERNEL_DS32 FLAT_RING3_DS32 | ||
20 | #define FLAT_KERNEL_DS FLAT_KERNEL_DS64 | ||
21 | #define FLAT_KERNEL_CS64 FLAT_RING3_CS64 | ||
22 | #define FLAT_KERNEL_CS32 FLAT_RING3_CS32 | ||
23 | #define FLAT_KERNEL_CS FLAT_KERNEL_CS64 | ||
24 | #define FLAT_KERNEL_SS64 FLAT_RING3_SS64 | ||
25 | #define FLAT_KERNEL_SS32 FLAT_RING3_SS32 | ||
26 | #define FLAT_KERNEL_SS FLAT_KERNEL_SS64 | ||
27 | |||
28 | #define FLAT_USER_DS64 FLAT_RING3_DS64 | ||
29 | #define FLAT_USER_DS32 FLAT_RING3_DS32 | ||
30 | #define FLAT_USER_DS FLAT_USER_DS64 | ||
31 | #define FLAT_USER_CS64 FLAT_RING3_CS64 | ||
32 | #define FLAT_USER_CS32 FLAT_RING3_CS32 | ||
33 | #define FLAT_USER_CS FLAT_USER_CS64 | ||
34 | #define FLAT_USER_SS64 FLAT_RING3_SS64 | ||
35 | #define FLAT_USER_SS32 FLAT_RING3_SS32 | ||
36 | #define FLAT_USER_SS FLAT_USER_SS64 | ||
37 | |||
38 | #define __HYPERVISOR_VIRT_START 0xFFFF800000000000 | ||
39 | #define __HYPERVISOR_VIRT_END 0xFFFF880000000000 | ||
40 | #define __MACH2PHYS_VIRT_START 0xFFFF800000000000 | ||
41 | #define __MACH2PHYS_VIRT_END 0xFFFF804000000000 | ||
42 | |||
43 | #ifndef HYPERVISOR_VIRT_START | ||
44 | #define HYPERVISOR_VIRT_START mk_unsigned_long(__HYPERVISOR_VIRT_START) | ||
45 | #define HYPERVISOR_VIRT_END mk_unsigned_long(__HYPERVISOR_VIRT_END) | ||
46 | #endif | ||
47 | |||
48 | #define MACH2PHYS_VIRT_START mk_unsigned_long(__MACH2PHYS_VIRT_START) | ||
49 | #define MACH2PHYS_VIRT_END mk_unsigned_long(__MACH2PHYS_VIRT_END) | ||
50 | #define MACH2PHYS_NR_ENTRIES ((MACH2PHYS_VIRT_END-MACH2PHYS_VIRT_START)>>3) | ||
51 | #ifndef machine_to_phys_mapping | ||
52 | #define machine_to_phys_mapping ((unsigned long *)HYPERVISOR_VIRT_START) | ||
53 | #endif | ||
54 | |||
55 | /* | ||
56 | * int HYPERVISOR_set_segment_base(unsigned int which, unsigned long base) | ||
57 | * @which == SEGBASE_* ; @base == 64-bit base address | ||
58 | * Returns 0 on success. | ||
59 | */ | ||
60 | #define SEGBASE_FS 0 | ||
61 | #define SEGBASE_GS_USER 1 | ||
62 | #define SEGBASE_GS_KERNEL 2 | ||
63 | #define SEGBASE_GS_USER_SEL 3 /* Set user %gs specified in base[15:0] */ | ||
64 | |||
65 | /* | ||
66 | * int HYPERVISOR_iret(void) | ||
67 | * All arguments are on the kernel stack, in the following format. | ||
68 | * Never returns if successful. Current kernel context is lost. | ||
69 | * The saved CS is mapped as follows: | ||
70 | * RING0 -> RING3 kernel mode. | ||
71 | * RING1 -> RING3 kernel mode. | ||
72 | * RING2 -> RING3 kernel mode. | ||
73 | * RING3 -> RING3 user mode. | ||
74 | * However RING0 indicates that the guest kernel should return to iteself | ||
75 | * directly with | ||
76 | * orb $3,1*8(%rsp) | ||
77 | * iretq | ||
78 | * If flags contains VGCF_in_syscall: | ||
79 | * Restore RAX, RIP, RFLAGS, RSP. | ||
80 | * Discard R11, RCX, CS, SS. | ||
81 | * Otherwise: | ||
82 | * Restore RAX, R11, RCX, CS:RIP, RFLAGS, SS:RSP. | ||
83 | * All other registers are saved on hypercall entry and restored to user. | ||
84 | */ | ||
85 | /* Guest exited in SYSCALL context? Return to guest with SYSRET? */ | ||
86 | #define _VGCF_in_syscall 8 | ||
87 | #define VGCF_in_syscall (1<<_VGCF_in_syscall) | ||
88 | #define VGCF_IN_SYSCALL VGCF_in_syscall | ||
89 | |||
90 | #ifndef __ASSEMBLY__ | ||
91 | |||
92 | struct iret_context { | ||
93 | /* Top of stack (%rsp at point of hypercall). */ | ||
94 | uint64_t rax, r11, rcx, flags, rip, cs, rflags, rsp, ss; | ||
95 | /* Bottom of iret stack frame. */ | ||
96 | }; | ||
97 | |||
98 | #if defined(__GNUC__) && !defined(__STRICT_ANSI__) | ||
99 | /* Anonymous union includes both 32- and 64-bit names (e.g., eax/rax). */ | ||
100 | #define __DECL_REG(name) union { \ | ||
101 | uint64_t r ## name, e ## name; \ | ||
102 | uint32_t _e ## name; \ | ||
103 | } | ||
104 | #else | ||
105 | /* Non-gcc sources must always use the proper 64-bit name (e.g., rax). */ | ||
106 | #define __DECL_REG(name) uint64_t r ## name | ||
107 | #endif | ||
108 | |||
109 | struct cpu_user_regs { | ||
110 | uint64_t r15; | ||
111 | uint64_t r14; | ||
112 | uint64_t r13; | ||
113 | uint64_t r12; | ||
114 | __DECL_REG(bp); | ||
115 | __DECL_REG(bx); | ||
116 | uint64_t r11; | ||
117 | uint64_t r10; | ||
118 | uint64_t r9; | ||
119 | uint64_t r8; | ||
120 | __DECL_REG(ax); | ||
121 | __DECL_REG(cx); | ||
122 | __DECL_REG(dx); | ||
123 | __DECL_REG(si); | ||
124 | __DECL_REG(di); | ||
125 | uint32_t error_code; /* private */ | ||
126 | uint32_t entry_vector; /* private */ | ||
127 | __DECL_REG(ip); | ||
128 | uint16_t cs, _pad0[1]; | ||
129 | uint8_t saved_upcall_mask; | ||
130 | uint8_t _pad1[3]; | ||
131 | __DECL_REG(flags); /* rflags.IF == !saved_upcall_mask */ | ||
132 | __DECL_REG(sp); | ||
133 | uint16_t ss, _pad2[3]; | ||
134 | uint16_t es, _pad3[3]; | ||
135 | uint16_t ds, _pad4[3]; | ||
136 | uint16_t fs, _pad5[3]; /* Non-zero => takes precedence over fs_base. */ | ||
137 | uint16_t gs, _pad6[3]; /* Non-zero => takes precedence over gs_base_usr. */ | ||
138 | }; | ||
139 | DEFINE_GUEST_HANDLE_STRUCT(cpu_user_regs); | ||
140 | |||
141 | #undef __DECL_REG | ||
142 | |||
143 | #define xen_pfn_to_cr3(pfn) ((unsigned long)(pfn) << 12) | ||
144 | #define xen_cr3_to_pfn(cr3) ((unsigned long)(cr3) >> 12) | ||
145 | |||
146 | struct arch_vcpu_info { | ||
147 | unsigned long cr2; | ||
148 | unsigned long pad; /* sizeof(vcpu_info_t) == 64 */ | ||
149 | }; | ||
150 | |||
151 | typedef unsigned long xen_callback_t; | ||
152 | |||
153 | #define XEN_CALLBACK(__cs, __rip) \ | ||
154 | ((unsigned long)(__rip)) | ||
155 | |||
156 | #endif /* !__ASSEMBLY__ */ | ||
157 | |||
158 | |||
159 | #endif /* _ASM_X86_XEN_INTERFACE_64_H */ | ||
diff --git a/arch/x86/include/asm/xen/page.h b/arch/x86/include/asm/xen/page.h new file mode 100644 index 000000000000..bc628998a1b9 --- /dev/null +++ b/arch/x86/include/asm/xen/page.h | |||
@@ -0,0 +1,165 @@ | |||
1 | #ifndef _ASM_X86_XEN_PAGE_H | ||
2 | #define _ASM_X86_XEN_PAGE_H | ||
3 | |||
4 | #include <linux/pfn.h> | ||
5 | |||
6 | #include <asm/uaccess.h> | ||
7 | #include <asm/pgtable.h> | ||
8 | |||
9 | #include <xen/features.h> | ||
10 | |||
11 | /* Xen machine address */ | ||
12 | typedef struct xmaddr { | ||
13 | phys_addr_t maddr; | ||
14 | } xmaddr_t; | ||
15 | |||
16 | /* Xen pseudo-physical address */ | ||
17 | typedef struct xpaddr { | ||
18 | phys_addr_t paddr; | ||
19 | } xpaddr_t; | ||
20 | |||
21 | #define XMADDR(x) ((xmaddr_t) { .maddr = (x) }) | ||
22 | #define XPADDR(x) ((xpaddr_t) { .paddr = (x) }) | ||
23 | |||
24 | /**** MACHINE <-> PHYSICAL CONVERSION MACROS ****/ | ||
25 | #define INVALID_P2M_ENTRY (~0UL) | ||
26 | #define FOREIGN_FRAME_BIT (1UL<<31) | ||
27 | #define FOREIGN_FRAME(m) ((m) | FOREIGN_FRAME_BIT) | ||
28 | |||
29 | /* Maximum amount of memory we can handle in a domain in pages */ | ||
30 | #define MAX_DOMAIN_PAGES \ | ||
31 | ((unsigned long)((u64)CONFIG_XEN_MAX_DOMAIN_MEMORY * 1024 * 1024 * 1024 / PAGE_SIZE)) | ||
32 | |||
33 | |||
34 | extern unsigned long get_phys_to_machine(unsigned long pfn); | ||
35 | extern void set_phys_to_machine(unsigned long pfn, unsigned long mfn); | ||
36 | |||
37 | static inline unsigned long pfn_to_mfn(unsigned long pfn) | ||
38 | { | ||
39 | if (xen_feature(XENFEAT_auto_translated_physmap)) | ||
40 | return pfn; | ||
41 | |||
42 | return get_phys_to_machine(pfn) & ~FOREIGN_FRAME_BIT; | ||
43 | } | ||
44 | |||
45 | static inline int phys_to_machine_mapping_valid(unsigned long pfn) | ||
46 | { | ||
47 | if (xen_feature(XENFEAT_auto_translated_physmap)) | ||
48 | return 1; | ||
49 | |||
50 | return get_phys_to_machine(pfn) != INVALID_P2M_ENTRY; | ||
51 | } | ||
52 | |||
53 | static inline unsigned long mfn_to_pfn(unsigned long mfn) | ||
54 | { | ||
55 | unsigned long pfn; | ||
56 | |||
57 | if (xen_feature(XENFEAT_auto_translated_physmap)) | ||
58 | return mfn; | ||
59 | |||
60 | #if 0 | ||
61 | if (unlikely((mfn >> machine_to_phys_order) != 0)) | ||
62 | return max_mapnr; | ||
63 | #endif | ||
64 | |||
65 | pfn = 0; | ||
66 | /* | ||
67 | * The array access can fail (e.g., device space beyond end of RAM). | ||
68 | * In such cases it doesn't matter what we return (we return garbage), | ||
69 | * but we must handle the fault without crashing! | ||
70 | */ | ||
71 | __get_user(pfn, &machine_to_phys_mapping[mfn]); | ||
72 | |||
73 | return pfn; | ||
74 | } | ||
75 | |||
76 | static inline xmaddr_t phys_to_machine(xpaddr_t phys) | ||
77 | { | ||
78 | unsigned offset = phys.paddr & ~PAGE_MASK; | ||
79 | return XMADDR(PFN_PHYS(pfn_to_mfn(PFN_DOWN(phys.paddr))) | offset); | ||
80 | } | ||
81 | |||
82 | static inline xpaddr_t machine_to_phys(xmaddr_t machine) | ||
83 | { | ||
84 | unsigned offset = machine.maddr & ~PAGE_MASK; | ||
85 | return XPADDR(PFN_PHYS(mfn_to_pfn(PFN_DOWN(machine.maddr))) | offset); | ||
86 | } | ||
87 | |||
88 | /* | ||
89 | * We detect special mappings in one of two ways: | ||
90 | * 1. If the MFN is an I/O page then Xen will set the m2p entry | ||
91 | * to be outside our maximum possible pseudophys range. | ||
92 | * 2. If the MFN belongs to a different domain then we will certainly | ||
93 | * not have MFN in our p2m table. Conversely, if the page is ours, | ||
94 | * then we'll have p2m(m2p(MFN))==MFN. | ||
95 | * If we detect a special mapping then it doesn't have a 'struct page'. | ||
96 | * We force !pfn_valid() by returning an out-of-range pointer. | ||
97 | * | ||
98 | * NB. These checks require that, for any MFN that is not in our reservation, | ||
99 | * there is no PFN such that p2m(PFN) == MFN. Otherwise we can get confused if | ||
100 | * we are foreign-mapping the MFN, and the other domain as m2p(MFN) == PFN. | ||
101 | * Yikes! Various places must poke in INVALID_P2M_ENTRY for safety. | ||
102 | * | ||
103 | * NB2. When deliberately mapping foreign pages into the p2m table, you *must* | ||
104 | * use FOREIGN_FRAME(). This will cause pte_pfn() to choke on it, as we | ||
105 | * require. In all the cases we care about, the FOREIGN_FRAME bit is | ||
106 | * masked (e.g., pfn_to_mfn()) so behaviour there is correct. | ||
107 | */ | ||
108 | static inline unsigned long mfn_to_local_pfn(unsigned long mfn) | ||
109 | { | ||
110 | extern unsigned long max_mapnr; | ||
111 | unsigned long pfn = mfn_to_pfn(mfn); | ||
112 | if ((pfn < max_mapnr) | ||
113 | && !xen_feature(XENFEAT_auto_translated_physmap) | ||
114 | && (get_phys_to_machine(pfn) != mfn)) | ||
115 | return max_mapnr; /* force !pfn_valid() */ | ||
116 | /* XXX fixme; not true with sparsemem */ | ||
117 | return pfn; | ||
118 | } | ||
119 | |||
120 | /* VIRT <-> MACHINE conversion */ | ||
121 | #define virt_to_machine(v) (phys_to_machine(XPADDR(__pa(v)))) | ||
122 | #define virt_to_mfn(v) (pfn_to_mfn(PFN_DOWN(__pa(v)))) | ||
123 | #define mfn_to_virt(m) (__va(mfn_to_pfn(m) << PAGE_SHIFT)) | ||
124 | |||
125 | static inline unsigned long pte_mfn(pte_t pte) | ||
126 | { | ||
127 | return (pte.pte & PTE_PFN_MASK) >> PAGE_SHIFT; | ||
128 | } | ||
129 | |||
130 | static inline pte_t mfn_pte(unsigned long page_nr, pgprot_t pgprot) | ||
131 | { | ||
132 | pte_t pte; | ||
133 | |||
134 | pte.pte = ((phys_addr_t)page_nr << PAGE_SHIFT) | | ||
135 | (pgprot_val(pgprot) & __supported_pte_mask); | ||
136 | |||
137 | return pte; | ||
138 | } | ||
139 | |||
140 | static inline pteval_t pte_val_ma(pte_t pte) | ||
141 | { | ||
142 | return pte.pte; | ||
143 | } | ||
144 | |||
145 | static inline pte_t __pte_ma(pteval_t x) | ||
146 | { | ||
147 | return (pte_t) { .pte = x }; | ||
148 | } | ||
149 | |||
150 | #define pmd_val_ma(v) ((v).pmd) | ||
151 | #ifdef __PAGETABLE_PUD_FOLDED | ||
152 | #define pud_val_ma(v) ((v).pgd.pgd) | ||
153 | #else | ||
154 | #define pud_val_ma(v) ((v).pud) | ||
155 | #endif | ||
156 | #define __pmd_ma(x) ((pmd_t) { (x) } ) | ||
157 | |||
158 | #define pgd_val_ma(x) ((x).pgd) | ||
159 | |||
160 | |||
161 | xmaddr_t arbitrary_virt_to_machine(void *address); | ||
162 | void make_lowmem_page_readonly(void *vaddr); | ||
163 | void make_lowmem_page_readwrite(void *vaddr); | ||
164 | |||
165 | #endif /* _ASM_X86_XEN_PAGE_H */ | ||
diff --git a/arch/x86/include/asm/xor.h b/arch/x86/include/asm/xor.h new file mode 100644 index 000000000000..11b3bb86e17b --- /dev/null +++ b/arch/x86/include/asm/xor.h | |||
@@ -0,0 +1,5 @@ | |||
1 | #ifdef CONFIG_X86_32 | ||
2 | # include "xor_32.h" | ||
3 | #else | ||
4 | # include "xor_64.h" | ||
5 | #endif | ||
diff --git a/arch/x86/include/asm/xor_32.h b/arch/x86/include/asm/xor_32.h new file mode 100644 index 000000000000..133b40a0f495 --- /dev/null +++ b/arch/x86/include/asm/xor_32.h | |||
@@ -0,0 +1,888 @@ | |||
1 | #ifndef _ASM_X86_XOR_32_H | ||
2 | #define _ASM_X86_XOR_32_H | ||
3 | |||
4 | /* | ||
5 | * Optimized RAID-5 checksumming functions for MMX and SSE. | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License as published by | ||
9 | * the Free Software Foundation; either version 2, or (at your option) | ||
10 | * any later version. | ||
11 | * | ||
12 | * You should have received a copy of the GNU General Public License | ||
13 | * (for example /usr/src/linux/COPYING); if not, write to the Free | ||
14 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
15 | */ | ||
16 | |||
17 | /* | ||
18 | * High-speed RAID5 checksumming functions utilizing MMX instructions. | ||
19 | * Copyright (C) 1998 Ingo Molnar. | ||
20 | */ | ||
21 | |||
22 | #define LD(x, y) " movq 8*("#x")(%1), %%mm"#y" ;\n" | ||
23 | #define ST(x, y) " movq %%mm"#y", 8*("#x")(%1) ;\n" | ||
24 | #define XO1(x, y) " pxor 8*("#x")(%2), %%mm"#y" ;\n" | ||
25 | #define XO2(x, y) " pxor 8*("#x")(%3), %%mm"#y" ;\n" | ||
26 | #define XO3(x, y) " pxor 8*("#x")(%4), %%mm"#y" ;\n" | ||
27 | #define XO4(x, y) " pxor 8*("#x")(%5), %%mm"#y" ;\n" | ||
28 | |||
29 | #include <asm/i387.h> | ||
30 | |||
31 | static void | ||
32 | xor_pII_mmx_2(unsigned long bytes, unsigned long *p1, unsigned long *p2) | ||
33 | { | ||
34 | unsigned long lines = bytes >> 7; | ||
35 | |||
36 | kernel_fpu_begin(); | ||
37 | |||
38 | asm volatile( | ||
39 | #undef BLOCK | ||
40 | #define BLOCK(i) \ | ||
41 | LD(i, 0) \ | ||
42 | LD(i + 1, 1) \ | ||
43 | LD(i + 2, 2) \ | ||
44 | LD(i + 3, 3) \ | ||
45 | XO1(i, 0) \ | ||
46 | ST(i, 0) \ | ||
47 | XO1(i+1, 1) \ | ||
48 | ST(i+1, 1) \ | ||
49 | XO1(i + 2, 2) \ | ||
50 | ST(i + 2, 2) \ | ||
51 | XO1(i + 3, 3) \ | ||
52 | ST(i + 3, 3) | ||
53 | |||
54 | " .align 32 ;\n" | ||
55 | " 1: ;\n" | ||
56 | |||
57 | BLOCK(0) | ||
58 | BLOCK(4) | ||
59 | BLOCK(8) | ||
60 | BLOCK(12) | ||
61 | |||
62 | " addl $128, %1 ;\n" | ||
63 | " addl $128, %2 ;\n" | ||
64 | " decl %0 ;\n" | ||
65 | " jnz 1b ;\n" | ||
66 | : "+r" (lines), | ||
67 | "+r" (p1), "+r" (p2) | ||
68 | : | ||
69 | : "memory"); | ||
70 | |||
71 | kernel_fpu_end(); | ||
72 | } | ||
73 | |||
74 | static void | ||
75 | xor_pII_mmx_3(unsigned long bytes, unsigned long *p1, unsigned long *p2, | ||
76 | unsigned long *p3) | ||
77 | { | ||
78 | unsigned long lines = bytes >> 7; | ||
79 | |||
80 | kernel_fpu_begin(); | ||
81 | |||
82 | asm volatile( | ||
83 | #undef BLOCK | ||
84 | #define BLOCK(i) \ | ||
85 | LD(i, 0) \ | ||
86 | LD(i + 1, 1) \ | ||
87 | LD(i + 2, 2) \ | ||
88 | LD(i + 3, 3) \ | ||
89 | XO1(i, 0) \ | ||
90 | XO1(i + 1, 1) \ | ||
91 | XO1(i + 2, 2) \ | ||
92 | XO1(i + 3, 3) \ | ||
93 | XO2(i, 0) \ | ||
94 | ST(i, 0) \ | ||
95 | XO2(i + 1, 1) \ | ||
96 | ST(i + 1, 1) \ | ||
97 | XO2(i + 2, 2) \ | ||
98 | ST(i + 2, 2) \ | ||
99 | XO2(i + 3, 3) \ | ||
100 | ST(i + 3, 3) | ||
101 | |||
102 | " .align 32 ;\n" | ||
103 | " 1: ;\n" | ||
104 | |||
105 | BLOCK(0) | ||
106 | BLOCK(4) | ||
107 | BLOCK(8) | ||
108 | BLOCK(12) | ||
109 | |||
110 | " addl $128, %1 ;\n" | ||
111 | " addl $128, %2 ;\n" | ||
112 | " addl $128, %3 ;\n" | ||
113 | " decl %0 ;\n" | ||
114 | " jnz 1b ;\n" | ||
115 | : "+r" (lines), | ||
116 | "+r" (p1), "+r" (p2), "+r" (p3) | ||
117 | : | ||
118 | : "memory"); | ||
119 | |||
120 | kernel_fpu_end(); | ||
121 | } | ||
122 | |||
123 | static void | ||
124 | xor_pII_mmx_4(unsigned long bytes, unsigned long *p1, unsigned long *p2, | ||
125 | unsigned long *p3, unsigned long *p4) | ||
126 | { | ||
127 | unsigned long lines = bytes >> 7; | ||
128 | |||
129 | kernel_fpu_begin(); | ||
130 | |||
131 | asm volatile( | ||
132 | #undef BLOCK | ||
133 | #define BLOCK(i) \ | ||
134 | LD(i, 0) \ | ||
135 | LD(i + 1, 1) \ | ||
136 | LD(i + 2, 2) \ | ||
137 | LD(i + 3, 3) \ | ||
138 | XO1(i, 0) \ | ||
139 | XO1(i + 1, 1) \ | ||
140 | XO1(i + 2, 2) \ | ||
141 | XO1(i + 3, 3) \ | ||
142 | XO2(i, 0) \ | ||
143 | XO2(i + 1, 1) \ | ||
144 | XO2(i + 2, 2) \ | ||
145 | XO2(i + 3, 3) \ | ||
146 | XO3(i, 0) \ | ||
147 | ST(i, 0) \ | ||
148 | XO3(i + 1, 1) \ | ||
149 | ST(i + 1, 1) \ | ||
150 | XO3(i + 2, 2) \ | ||
151 | ST(i + 2, 2) \ | ||
152 | XO3(i + 3, 3) \ | ||
153 | ST(i + 3, 3) | ||
154 | |||
155 | " .align 32 ;\n" | ||
156 | " 1: ;\n" | ||
157 | |||
158 | BLOCK(0) | ||
159 | BLOCK(4) | ||
160 | BLOCK(8) | ||
161 | BLOCK(12) | ||
162 | |||
163 | " addl $128, %1 ;\n" | ||
164 | " addl $128, %2 ;\n" | ||
165 | " addl $128, %3 ;\n" | ||
166 | " addl $128, %4 ;\n" | ||
167 | " decl %0 ;\n" | ||
168 | " jnz 1b ;\n" | ||
169 | : "+r" (lines), | ||
170 | "+r" (p1), "+r" (p2), "+r" (p3), "+r" (p4) | ||
171 | : | ||
172 | : "memory"); | ||
173 | |||
174 | kernel_fpu_end(); | ||
175 | } | ||
176 | |||
177 | |||
178 | static void | ||
179 | xor_pII_mmx_5(unsigned long bytes, unsigned long *p1, unsigned long *p2, | ||
180 | unsigned long *p3, unsigned long *p4, unsigned long *p5) | ||
181 | { | ||
182 | unsigned long lines = bytes >> 7; | ||
183 | |||
184 | kernel_fpu_begin(); | ||
185 | |||
186 | /* Make sure GCC forgets anything it knows about p4 or p5, | ||
187 | such that it won't pass to the asm volatile below a | ||
188 | register that is shared with any other variable. That's | ||
189 | because we modify p4 and p5 there, but we can't mark them | ||
190 | as read/write, otherwise we'd overflow the 10-asm-operands | ||
191 | limit of GCC < 3.1. */ | ||
192 | asm("" : "+r" (p4), "+r" (p5)); | ||
193 | |||
194 | asm volatile( | ||
195 | #undef BLOCK | ||
196 | #define BLOCK(i) \ | ||
197 | LD(i, 0) \ | ||
198 | LD(i + 1, 1) \ | ||
199 | LD(i + 2, 2) \ | ||
200 | LD(i + 3, 3) \ | ||
201 | XO1(i, 0) \ | ||
202 | XO1(i + 1, 1) \ | ||
203 | XO1(i + 2, 2) \ | ||
204 | XO1(i + 3, 3) \ | ||
205 | XO2(i, 0) \ | ||
206 | XO2(i + 1, 1) \ | ||
207 | XO2(i + 2, 2) \ | ||
208 | XO2(i + 3, 3) \ | ||
209 | XO3(i, 0) \ | ||
210 | XO3(i + 1, 1) \ | ||
211 | XO3(i + 2, 2) \ | ||
212 | XO3(i + 3, 3) \ | ||
213 | XO4(i, 0) \ | ||
214 | ST(i, 0) \ | ||
215 | XO4(i + 1, 1) \ | ||
216 | ST(i + 1, 1) \ | ||
217 | XO4(i + 2, 2) \ | ||
218 | ST(i + 2, 2) \ | ||
219 | XO4(i + 3, 3) \ | ||
220 | ST(i + 3, 3) | ||
221 | |||
222 | " .align 32 ;\n" | ||
223 | " 1: ;\n" | ||
224 | |||
225 | BLOCK(0) | ||
226 | BLOCK(4) | ||
227 | BLOCK(8) | ||
228 | BLOCK(12) | ||
229 | |||
230 | " addl $128, %1 ;\n" | ||
231 | " addl $128, %2 ;\n" | ||
232 | " addl $128, %3 ;\n" | ||
233 | " addl $128, %4 ;\n" | ||
234 | " addl $128, %5 ;\n" | ||
235 | " decl %0 ;\n" | ||
236 | " jnz 1b ;\n" | ||
237 | : "+r" (lines), | ||
238 | "+r" (p1), "+r" (p2), "+r" (p3) | ||
239 | : "r" (p4), "r" (p5) | ||
240 | : "memory"); | ||
241 | |||
242 | /* p4 and p5 were modified, and now the variables are dead. | ||
243 | Clobber them just to be sure nobody does something stupid | ||
244 | like assuming they have some legal value. */ | ||
245 | asm("" : "=r" (p4), "=r" (p5)); | ||
246 | |||
247 | kernel_fpu_end(); | ||
248 | } | ||
249 | |||
250 | #undef LD | ||
251 | #undef XO1 | ||
252 | #undef XO2 | ||
253 | #undef XO3 | ||
254 | #undef XO4 | ||
255 | #undef ST | ||
256 | #undef BLOCK | ||
257 | |||
258 | static void | ||
259 | xor_p5_mmx_2(unsigned long bytes, unsigned long *p1, unsigned long *p2) | ||
260 | { | ||
261 | unsigned long lines = bytes >> 6; | ||
262 | |||
263 | kernel_fpu_begin(); | ||
264 | |||
265 | asm volatile( | ||
266 | " .align 32 ;\n" | ||
267 | " 1: ;\n" | ||
268 | " movq (%1), %%mm0 ;\n" | ||
269 | " movq 8(%1), %%mm1 ;\n" | ||
270 | " pxor (%2), %%mm0 ;\n" | ||
271 | " movq 16(%1), %%mm2 ;\n" | ||
272 | " movq %%mm0, (%1) ;\n" | ||
273 | " pxor 8(%2), %%mm1 ;\n" | ||
274 | " movq 24(%1), %%mm3 ;\n" | ||
275 | " movq %%mm1, 8(%1) ;\n" | ||
276 | " pxor 16(%2), %%mm2 ;\n" | ||
277 | " movq 32(%1), %%mm4 ;\n" | ||
278 | " movq %%mm2, 16(%1) ;\n" | ||
279 | " pxor 24(%2), %%mm3 ;\n" | ||
280 | " movq 40(%1), %%mm5 ;\n" | ||
281 | " movq %%mm3, 24(%1) ;\n" | ||
282 | " pxor 32(%2), %%mm4 ;\n" | ||
283 | " movq 48(%1), %%mm6 ;\n" | ||
284 | " movq %%mm4, 32(%1) ;\n" | ||
285 | " pxor 40(%2), %%mm5 ;\n" | ||
286 | " movq 56(%1), %%mm7 ;\n" | ||
287 | " movq %%mm5, 40(%1) ;\n" | ||
288 | " pxor 48(%2), %%mm6 ;\n" | ||
289 | " pxor 56(%2), %%mm7 ;\n" | ||
290 | " movq %%mm6, 48(%1) ;\n" | ||
291 | " movq %%mm7, 56(%1) ;\n" | ||
292 | |||
293 | " addl $64, %1 ;\n" | ||
294 | " addl $64, %2 ;\n" | ||
295 | " decl %0 ;\n" | ||
296 | " jnz 1b ;\n" | ||
297 | : "+r" (lines), | ||
298 | "+r" (p1), "+r" (p2) | ||
299 | : | ||
300 | : "memory"); | ||
301 | |||
302 | kernel_fpu_end(); | ||
303 | } | ||
304 | |||
305 | static void | ||
306 | xor_p5_mmx_3(unsigned long bytes, unsigned long *p1, unsigned long *p2, | ||
307 | unsigned long *p3) | ||
308 | { | ||
309 | unsigned long lines = bytes >> 6; | ||
310 | |||
311 | kernel_fpu_begin(); | ||
312 | |||
313 | asm volatile( | ||
314 | " .align 32,0x90 ;\n" | ||
315 | " 1: ;\n" | ||
316 | " movq (%1), %%mm0 ;\n" | ||
317 | " movq 8(%1), %%mm1 ;\n" | ||
318 | " pxor (%2), %%mm0 ;\n" | ||
319 | " movq 16(%1), %%mm2 ;\n" | ||
320 | " pxor 8(%2), %%mm1 ;\n" | ||
321 | " pxor (%3), %%mm0 ;\n" | ||
322 | " pxor 16(%2), %%mm2 ;\n" | ||
323 | " movq %%mm0, (%1) ;\n" | ||
324 | " pxor 8(%3), %%mm1 ;\n" | ||
325 | " pxor 16(%3), %%mm2 ;\n" | ||
326 | " movq 24(%1), %%mm3 ;\n" | ||
327 | " movq %%mm1, 8(%1) ;\n" | ||
328 | " movq 32(%1), %%mm4 ;\n" | ||
329 | " movq 40(%1), %%mm5 ;\n" | ||
330 | " pxor 24(%2), %%mm3 ;\n" | ||
331 | " movq %%mm2, 16(%1) ;\n" | ||
332 | " pxor 32(%2), %%mm4 ;\n" | ||
333 | " pxor 24(%3), %%mm3 ;\n" | ||
334 | " pxor 40(%2), %%mm5 ;\n" | ||
335 | " movq %%mm3, 24(%1) ;\n" | ||
336 | " pxor 32(%3), %%mm4 ;\n" | ||
337 | " pxor 40(%3), %%mm5 ;\n" | ||
338 | " movq 48(%1), %%mm6 ;\n" | ||
339 | " movq %%mm4, 32(%1) ;\n" | ||
340 | " movq 56(%1), %%mm7 ;\n" | ||
341 | " pxor 48(%2), %%mm6 ;\n" | ||
342 | " movq %%mm5, 40(%1) ;\n" | ||
343 | " pxor 56(%2), %%mm7 ;\n" | ||
344 | " pxor 48(%3), %%mm6 ;\n" | ||
345 | " pxor 56(%3), %%mm7 ;\n" | ||
346 | " movq %%mm6, 48(%1) ;\n" | ||
347 | " movq %%mm7, 56(%1) ;\n" | ||
348 | |||
349 | " addl $64, %1 ;\n" | ||
350 | " addl $64, %2 ;\n" | ||
351 | " addl $64, %3 ;\n" | ||
352 | " decl %0 ;\n" | ||
353 | " jnz 1b ;\n" | ||
354 | : "+r" (lines), | ||
355 | "+r" (p1), "+r" (p2), "+r" (p3) | ||
356 | : | ||
357 | : "memory" ); | ||
358 | |||
359 | kernel_fpu_end(); | ||
360 | } | ||
361 | |||
362 | static void | ||
363 | xor_p5_mmx_4(unsigned long bytes, unsigned long *p1, unsigned long *p2, | ||
364 | unsigned long *p3, unsigned long *p4) | ||
365 | { | ||
366 | unsigned long lines = bytes >> 6; | ||
367 | |||
368 | kernel_fpu_begin(); | ||
369 | |||
370 | asm volatile( | ||
371 | " .align 32,0x90 ;\n" | ||
372 | " 1: ;\n" | ||
373 | " movq (%1), %%mm0 ;\n" | ||
374 | " movq 8(%1), %%mm1 ;\n" | ||
375 | " pxor (%2), %%mm0 ;\n" | ||
376 | " movq 16(%1), %%mm2 ;\n" | ||
377 | " pxor 8(%2), %%mm1 ;\n" | ||
378 | " pxor (%3), %%mm0 ;\n" | ||
379 | " pxor 16(%2), %%mm2 ;\n" | ||
380 | " pxor 8(%3), %%mm1 ;\n" | ||
381 | " pxor (%4), %%mm0 ;\n" | ||
382 | " movq 24(%1), %%mm3 ;\n" | ||
383 | " pxor 16(%3), %%mm2 ;\n" | ||
384 | " pxor 8(%4), %%mm1 ;\n" | ||
385 | " movq %%mm0, (%1) ;\n" | ||
386 | " movq 32(%1), %%mm4 ;\n" | ||
387 | " pxor 24(%2), %%mm3 ;\n" | ||
388 | " pxor 16(%4), %%mm2 ;\n" | ||
389 | " movq %%mm1, 8(%1) ;\n" | ||
390 | " movq 40(%1), %%mm5 ;\n" | ||
391 | " pxor 32(%2), %%mm4 ;\n" | ||
392 | " pxor 24(%3), %%mm3 ;\n" | ||
393 | " movq %%mm2, 16(%1) ;\n" | ||
394 | " pxor 40(%2), %%mm5 ;\n" | ||
395 | " pxor 32(%3), %%mm4 ;\n" | ||
396 | " pxor 24(%4), %%mm3 ;\n" | ||
397 | " movq %%mm3, 24(%1) ;\n" | ||
398 | " movq 56(%1), %%mm7 ;\n" | ||
399 | " movq 48(%1), %%mm6 ;\n" | ||
400 | " pxor 40(%3), %%mm5 ;\n" | ||
401 | " pxor 32(%4), %%mm4 ;\n" | ||
402 | " pxor 48(%2), %%mm6 ;\n" | ||
403 | " movq %%mm4, 32(%1) ;\n" | ||
404 | " pxor 56(%2), %%mm7 ;\n" | ||
405 | " pxor 40(%4), %%mm5 ;\n" | ||
406 | " pxor 48(%3), %%mm6 ;\n" | ||
407 | " pxor 56(%3), %%mm7 ;\n" | ||
408 | " movq %%mm5, 40(%1) ;\n" | ||
409 | " pxor 48(%4), %%mm6 ;\n" | ||
410 | " pxor 56(%4), %%mm7 ;\n" | ||
411 | " movq %%mm6, 48(%1) ;\n" | ||
412 | " movq %%mm7, 56(%1) ;\n" | ||
413 | |||
414 | " addl $64, %1 ;\n" | ||
415 | " addl $64, %2 ;\n" | ||
416 | " addl $64, %3 ;\n" | ||
417 | " addl $64, %4 ;\n" | ||
418 | " decl %0 ;\n" | ||
419 | " jnz 1b ;\n" | ||
420 | : "+r" (lines), | ||
421 | "+r" (p1), "+r" (p2), "+r" (p3), "+r" (p4) | ||
422 | : | ||
423 | : "memory"); | ||
424 | |||
425 | kernel_fpu_end(); | ||
426 | } | ||
427 | |||
428 | static void | ||
429 | xor_p5_mmx_5(unsigned long bytes, unsigned long *p1, unsigned long *p2, | ||
430 | unsigned long *p3, unsigned long *p4, unsigned long *p5) | ||
431 | { | ||
432 | unsigned long lines = bytes >> 6; | ||
433 | |||
434 | kernel_fpu_begin(); | ||
435 | |||
436 | /* Make sure GCC forgets anything it knows about p4 or p5, | ||
437 | such that it won't pass to the asm volatile below a | ||
438 | register that is shared with any other variable. That's | ||
439 | because we modify p4 and p5 there, but we can't mark them | ||
440 | as read/write, otherwise we'd overflow the 10-asm-operands | ||
441 | limit of GCC < 3.1. */ | ||
442 | asm("" : "+r" (p4), "+r" (p5)); | ||
443 | |||
444 | asm volatile( | ||
445 | " .align 32,0x90 ;\n" | ||
446 | " 1: ;\n" | ||
447 | " movq (%1), %%mm0 ;\n" | ||
448 | " movq 8(%1), %%mm1 ;\n" | ||
449 | " pxor (%2), %%mm0 ;\n" | ||
450 | " pxor 8(%2), %%mm1 ;\n" | ||
451 | " movq 16(%1), %%mm2 ;\n" | ||
452 | " pxor (%3), %%mm0 ;\n" | ||
453 | " pxor 8(%3), %%mm1 ;\n" | ||
454 | " pxor 16(%2), %%mm2 ;\n" | ||
455 | " pxor (%4), %%mm0 ;\n" | ||
456 | " pxor 8(%4), %%mm1 ;\n" | ||
457 | " pxor 16(%3), %%mm2 ;\n" | ||
458 | " movq 24(%1), %%mm3 ;\n" | ||
459 | " pxor (%5), %%mm0 ;\n" | ||
460 | " pxor 8(%5), %%mm1 ;\n" | ||
461 | " movq %%mm0, (%1) ;\n" | ||
462 | " pxor 16(%4), %%mm2 ;\n" | ||
463 | " pxor 24(%2), %%mm3 ;\n" | ||
464 | " movq %%mm1, 8(%1) ;\n" | ||
465 | " pxor 16(%5), %%mm2 ;\n" | ||
466 | " pxor 24(%3), %%mm3 ;\n" | ||
467 | " movq 32(%1), %%mm4 ;\n" | ||
468 | " movq %%mm2, 16(%1) ;\n" | ||
469 | " pxor 24(%4), %%mm3 ;\n" | ||
470 | " pxor 32(%2), %%mm4 ;\n" | ||
471 | " movq 40(%1), %%mm5 ;\n" | ||
472 | " pxor 24(%5), %%mm3 ;\n" | ||
473 | " pxor 32(%3), %%mm4 ;\n" | ||
474 | " pxor 40(%2), %%mm5 ;\n" | ||
475 | " movq %%mm3, 24(%1) ;\n" | ||
476 | " pxor 32(%4), %%mm4 ;\n" | ||
477 | " pxor 40(%3), %%mm5 ;\n" | ||
478 | " movq 48(%1), %%mm6 ;\n" | ||
479 | " movq 56(%1), %%mm7 ;\n" | ||
480 | " pxor 32(%5), %%mm4 ;\n" | ||
481 | " pxor 40(%4), %%mm5 ;\n" | ||
482 | " pxor 48(%2), %%mm6 ;\n" | ||
483 | " pxor 56(%2), %%mm7 ;\n" | ||
484 | " movq %%mm4, 32(%1) ;\n" | ||
485 | " pxor 48(%3), %%mm6 ;\n" | ||
486 | " pxor 56(%3), %%mm7 ;\n" | ||
487 | " pxor 40(%5), %%mm5 ;\n" | ||
488 | " pxor 48(%4), %%mm6 ;\n" | ||
489 | " pxor 56(%4), %%mm7 ;\n" | ||
490 | " movq %%mm5, 40(%1) ;\n" | ||
491 | " pxor 48(%5), %%mm6 ;\n" | ||
492 | " pxor 56(%5), %%mm7 ;\n" | ||
493 | " movq %%mm6, 48(%1) ;\n" | ||
494 | " movq %%mm7, 56(%1) ;\n" | ||
495 | |||
496 | " addl $64, %1 ;\n" | ||
497 | " addl $64, %2 ;\n" | ||
498 | " addl $64, %3 ;\n" | ||
499 | " addl $64, %4 ;\n" | ||
500 | " addl $64, %5 ;\n" | ||
501 | " decl %0 ;\n" | ||
502 | " jnz 1b ;\n" | ||
503 | : "+r" (lines), | ||
504 | "+r" (p1), "+r" (p2), "+r" (p3) | ||
505 | : "r" (p4), "r" (p5) | ||
506 | : "memory"); | ||
507 | |||
508 | /* p4 and p5 were modified, and now the variables are dead. | ||
509 | Clobber them just to be sure nobody does something stupid | ||
510 | like assuming they have some legal value. */ | ||
511 | asm("" : "=r" (p4), "=r" (p5)); | ||
512 | |||
513 | kernel_fpu_end(); | ||
514 | } | ||
515 | |||
516 | static struct xor_block_template xor_block_pII_mmx = { | ||
517 | .name = "pII_mmx", | ||
518 | .do_2 = xor_pII_mmx_2, | ||
519 | .do_3 = xor_pII_mmx_3, | ||
520 | .do_4 = xor_pII_mmx_4, | ||
521 | .do_5 = xor_pII_mmx_5, | ||
522 | }; | ||
523 | |||
524 | static struct xor_block_template xor_block_p5_mmx = { | ||
525 | .name = "p5_mmx", | ||
526 | .do_2 = xor_p5_mmx_2, | ||
527 | .do_3 = xor_p5_mmx_3, | ||
528 | .do_4 = xor_p5_mmx_4, | ||
529 | .do_5 = xor_p5_mmx_5, | ||
530 | }; | ||
531 | |||
532 | /* | ||
533 | * Cache avoiding checksumming functions utilizing KNI instructions | ||
534 | * Copyright (C) 1999 Zach Brown (with obvious credit due Ingo) | ||
535 | */ | ||
536 | |||
537 | #define XMMS_SAVE \ | ||
538 | do { \ | ||
539 | preempt_disable(); \ | ||
540 | cr0 = read_cr0(); \ | ||
541 | clts(); \ | ||
542 | asm volatile( \ | ||
543 | "movups %%xmm0,(%0) ;\n\t" \ | ||
544 | "movups %%xmm1,0x10(%0) ;\n\t" \ | ||
545 | "movups %%xmm2,0x20(%0) ;\n\t" \ | ||
546 | "movups %%xmm3,0x30(%0) ;\n\t" \ | ||
547 | : \ | ||
548 | : "r" (xmm_save) \ | ||
549 | : "memory"); \ | ||
550 | } while (0) | ||
551 | |||
552 | #define XMMS_RESTORE \ | ||
553 | do { \ | ||
554 | asm volatile( \ | ||
555 | "sfence ;\n\t" \ | ||
556 | "movups (%0),%%xmm0 ;\n\t" \ | ||
557 | "movups 0x10(%0),%%xmm1 ;\n\t" \ | ||
558 | "movups 0x20(%0),%%xmm2 ;\n\t" \ | ||
559 | "movups 0x30(%0),%%xmm3 ;\n\t" \ | ||
560 | : \ | ||
561 | : "r" (xmm_save) \ | ||
562 | : "memory"); \ | ||
563 | write_cr0(cr0); \ | ||
564 | preempt_enable(); \ | ||
565 | } while (0) | ||
566 | |||
567 | #define ALIGN16 __attribute__((aligned(16))) | ||
568 | |||
569 | #define OFFS(x) "16*("#x")" | ||
570 | #define PF_OFFS(x) "256+16*("#x")" | ||
571 | #define PF0(x) " prefetchnta "PF_OFFS(x)"(%1) ;\n" | ||
572 | #define LD(x, y) " movaps "OFFS(x)"(%1), %%xmm"#y" ;\n" | ||
573 | #define ST(x, y) " movaps %%xmm"#y", "OFFS(x)"(%1) ;\n" | ||
574 | #define PF1(x) " prefetchnta "PF_OFFS(x)"(%2) ;\n" | ||
575 | #define PF2(x) " prefetchnta "PF_OFFS(x)"(%3) ;\n" | ||
576 | #define PF3(x) " prefetchnta "PF_OFFS(x)"(%4) ;\n" | ||
577 | #define PF4(x) " prefetchnta "PF_OFFS(x)"(%5) ;\n" | ||
578 | #define PF5(x) " prefetchnta "PF_OFFS(x)"(%6) ;\n" | ||
579 | #define XO1(x, y) " xorps "OFFS(x)"(%2), %%xmm"#y" ;\n" | ||
580 | #define XO2(x, y) " xorps "OFFS(x)"(%3), %%xmm"#y" ;\n" | ||
581 | #define XO3(x, y) " xorps "OFFS(x)"(%4), %%xmm"#y" ;\n" | ||
582 | #define XO4(x, y) " xorps "OFFS(x)"(%5), %%xmm"#y" ;\n" | ||
583 | #define XO5(x, y) " xorps "OFFS(x)"(%6), %%xmm"#y" ;\n" | ||
584 | |||
585 | |||
586 | static void | ||
587 | xor_sse_2(unsigned long bytes, unsigned long *p1, unsigned long *p2) | ||
588 | { | ||
589 | unsigned long lines = bytes >> 8; | ||
590 | char xmm_save[16*4] ALIGN16; | ||
591 | int cr0; | ||
592 | |||
593 | XMMS_SAVE; | ||
594 | |||
595 | asm volatile( | ||
596 | #undef BLOCK | ||
597 | #define BLOCK(i) \ | ||
598 | LD(i, 0) \ | ||
599 | LD(i + 1, 1) \ | ||
600 | PF1(i) \ | ||
601 | PF1(i + 2) \ | ||
602 | LD(i + 2, 2) \ | ||
603 | LD(i + 3, 3) \ | ||
604 | PF0(i + 4) \ | ||
605 | PF0(i + 6) \ | ||
606 | XO1(i, 0) \ | ||
607 | XO1(i + 1, 1) \ | ||
608 | XO1(i + 2, 2) \ | ||
609 | XO1(i + 3, 3) \ | ||
610 | ST(i, 0) \ | ||
611 | ST(i + 1, 1) \ | ||
612 | ST(i + 2, 2) \ | ||
613 | ST(i + 3, 3) \ | ||
614 | |||
615 | |||
616 | PF0(0) | ||
617 | PF0(2) | ||
618 | |||
619 | " .align 32 ;\n" | ||
620 | " 1: ;\n" | ||
621 | |||
622 | BLOCK(0) | ||
623 | BLOCK(4) | ||
624 | BLOCK(8) | ||
625 | BLOCK(12) | ||
626 | |||
627 | " addl $256, %1 ;\n" | ||
628 | " addl $256, %2 ;\n" | ||
629 | " decl %0 ;\n" | ||
630 | " jnz 1b ;\n" | ||
631 | : "+r" (lines), | ||
632 | "+r" (p1), "+r" (p2) | ||
633 | : | ||
634 | : "memory"); | ||
635 | |||
636 | XMMS_RESTORE; | ||
637 | } | ||
638 | |||
639 | static void | ||
640 | xor_sse_3(unsigned long bytes, unsigned long *p1, unsigned long *p2, | ||
641 | unsigned long *p3) | ||
642 | { | ||
643 | unsigned long lines = bytes >> 8; | ||
644 | char xmm_save[16*4] ALIGN16; | ||
645 | int cr0; | ||
646 | |||
647 | XMMS_SAVE; | ||
648 | |||
649 | asm volatile( | ||
650 | #undef BLOCK | ||
651 | #define BLOCK(i) \ | ||
652 | PF1(i) \ | ||
653 | PF1(i + 2) \ | ||
654 | LD(i,0) \ | ||
655 | LD(i + 1, 1) \ | ||
656 | LD(i + 2, 2) \ | ||
657 | LD(i + 3, 3) \ | ||
658 | PF2(i) \ | ||
659 | PF2(i + 2) \ | ||
660 | PF0(i + 4) \ | ||
661 | PF0(i + 6) \ | ||
662 | XO1(i,0) \ | ||
663 | XO1(i + 1, 1) \ | ||
664 | XO1(i + 2, 2) \ | ||
665 | XO1(i + 3, 3) \ | ||
666 | XO2(i,0) \ | ||
667 | XO2(i + 1, 1) \ | ||
668 | XO2(i + 2, 2) \ | ||
669 | XO2(i + 3, 3) \ | ||
670 | ST(i,0) \ | ||
671 | ST(i + 1, 1) \ | ||
672 | ST(i + 2, 2) \ | ||
673 | ST(i + 3, 3) \ | ||
674 | |||
675 | |||
676 | PF0(0) | ||
677 | PF0(2) | ||
678 | |||
679 | " .align 32 ;\n" | ||
680 | " 1: ;\n" | ||
681 | |||
682 | BLOCK(0) | ||
683 | BLOCK(4) | ||
684 | BLOCK(8) | ||
685 | BLOCK(12) | ||
686 | |||
687 | " addl $256, %1 ;\n" | ||
688 | " addl $256, %2 ;\n" | ||
689 | " addl $256, %3 ;\n" | ||
690 | " decl %0 ;\n" | ||
691 | " jnz 1b ;\n" | ||
692 | : "+r" (lines), | ||
693 | "+r" (p1), "+r"(p2), "+r"(p3) | ||
694 | : | ||
695 | : "memory" ); | ||
696 | |||
697 | XMMS_RESTORE; | ||
698 | } | ||
699 | |||
700 | static void | ||
701 | xor_sse_4(unsigned long bytes, unsigned long *p1, unsigned long *p2, | ||
702 | unsigned long *p3, unsigned long *p4) | ||
703 | { | ||
704 | unsigned long lines = bytes >> 8; | ||
705 | char xmm_save[16*4] ALIGN16; | ||
706 | int cr0; | ||
707 | |||
708 | XMMS_SAVE; | ||
709 | |||
710 | asm volatile( | ||
711 | #undef BLOCK | ||
712 | #define BLOCK(i) \ | ||
713 | PF1(i) \ | ||
714 | PF1(i + 2) \ | ||
715 | LD(i,0) \ | ||
716 | LD(i + 1, 1) \ | ||
717 | LD(i + 2, 2) \ | ||
718 | LD(i + 3, 3) \ | ||
719 | PF2(i) \ | ||
720 | PF2(i + 2) \ | ||
721 | XO1(i,0) \ | ||
722 | XO1(i + 1, 1) \ | ||
723 | XO1(i + 2, 2) \ | ||
724 | XO1(i + 3, 3) \ | ||
725 | PF3(i) \ | ||
726 | PF3(i + 2) \ | ||
727 | PF0(i + 4) \ | ||
728 | PF0(i + 6) \ | ||
729 | XO2(i,0) \ | ||
730 | XO2(i + 1, 1) \ | ||
731 | XO2(i + 2, 2) \ | ||
732 | XO2(i + 3, 3) \ | ||
733 | XO3(i,0) \ | ||
734 | XO3(i + 1, 1) \ | ||
735 | XO3(i + 2, 2) \ | ||
736 | XO3(i + 3, 3) \ | ||
737 | ST(i,0) \ | ||
738 | ST(i + 1, 1) \ | ||
739 | ST(i + 2, 2) \ | ||
740 | ST(i + 3, 3) \ | ||
741 | |||
742 | |||
743 | PF0(0) | ||
744 | PF0(2) | ||
745 | |||
746 | " .align 32 ;\n" | ||
747 | " 1: ;\n" | ||
748 | |||
749 | BLOCK(0) | ||
750 | BLOCK(4) | ||
751 | BLOCK(8) | ||
752 | BLOCK(12) | ||
753 | |||
754 | " addl $256, %1 ;\n" | ||
755 | " addl $256, %2 ;\n" | ||
756 | " addl $256, %3 ;\n" | ||
757 | " addl $256, %4 ;\n" | ||
758 | " decl %0 ;\n" | ||
759 | " jnz 1b ;\n" | ||
760 | : "+r" (lines), | ||
761 | "+r" (p1), "+r" (p2), "+r" (p3), "+r" (p4) | ||
762 | : | ||
763 | : "memory" ); | ||
764 | |||
765 | XMMS_RESTORE; | ||
766 | } | ||
767 | |||
768 | static void | ||
769 | xor_sse_5(unsigned long bytes, unsigned long *p1, unsigned long *p2, | ||
770 | unsigned long *p3, unsigned long *p4, unsigned long *p5) | ||
771 | { | ||
772 | unsigned long lines = bytes >> 8; | ||
773 | char xmm_save[16*4] ALIGN16; | ||
774 | int cr0; | ||
775 | |||
776 | XMMS_SAVE; | ||
777 | |||
778 | /* Make sure GCC forgets anything it knows about p4 or p5, | ||
779 | such that it won't pass to the asm volatile below a | ||
780 | register that is shared with any other variable. That's | ||
781 | because we modify p4 and p5 there, but we can't mark them | ||
782 | as read/write, otherwise we'd overflow the 10-asm-operands | ||
783 | limit of GCC < 3.1. */ | ||
784 | asm("" : "+r" (p4), "+r" (p5)); | ||
785 | |||
786 | asm volatile( | ||
787 | #undef BLOCK | ||
788 | #define BLOCK(i) \ | ||
789 | PF1(i) \ | ||
790 | PF1(i + 2) \ | ||
791 | LD(i,0) \ | ||
792 | LD(i + 1, 1) \ | ||
793 | LD(i + 2, 2) \ | ||
794 | LD(i + 3, 3) \ | ||
795 | PF2(i) \ | ||
796 | PF2(i + 2) \ | ||
797 | XO1(i,0) \ | ||
798 | XO1(i + 1, 1) \ | ||
799 | XO1(i + 2, 2) \ | ||
800 | XO1(i + 3, 3) \ | ||
801 | PF3(i) \ | ||
802 | PF3(i + 2) \ | ||
803 | XO2(i,0) \ | ||
804 | XO2(i + 1, 1) \ | ||
805 | XO2(i + 2, 2) \ | ||
806 | XO2(i + 3, 3) \ | ||
807 | PF4(i) \ | ||
808 | PF4(i + 2) \ | ||
809 | PF0(i + 4) \ | ||
810 | PF0(i + 6) \ | ||
811 | XO3(i,0) \ | ||
812 | XO3(i + 1, 1) \ | ||
813 | XO3(i + 2, 2) \ | ||
814 | XO3(i + 3, 3) \ | ||
815 | XO4(i,0) \ | ||
816 | XO4(i + 1, 1) \ | ||
817 | XO4(i + 2, 2) \ | ||
818 | XO4(i + 3, 3) \ | ||
819 | ST(i,0) \ | ||
820 | ST(i + 1, 1) \ | ||
821 | ST(i + 2, 2) \ | ||
822 | ST(i + 3, 3) \ | ||
823 | |||
824 | |||
825 | PF0(0) | ||
826 | PF0(2) | ||
827 | |||
828 | " .align 32 ;\n" | ||
829 | " 1: ;\n" | ||
830 | |||
831 | BLOCK(0) | ||
832 | BLOCK(4) | ||
833 | BLOCK(8) | ||
834 | BLOCK(12) | ||
835 | |||
836 | " addl $256, %1 ;\n" | ||
837 | " addl $256, %2 ;\n" | ||
838 | " addl $256, %3 ;\n" | ||
839 | " addl $256, %4 ;\n" | ||
840 | " addl $256, %5 ;\n" | ||
841 | " decl %0 ;\n" | ||
842 | " jnz 1b ;\n" | ||
843 | : "+r" (lines), | ||
844 | "+r" (p1), "+r" (p2), "+r" (p3) | ||
845 | : "r" (p4), "r" (p5) | ||
846 | : "memory"); | ||
847 | |||
848 | /* p4 and p5 were modified, and now the variables are dead. | ||
849 | Clobber them just to be sure nobody does something stupid | ||
850 | like assuming they have some legal value. */ | ||
851 | asm("" : "=r" (p4), "=r" (p5)); | ||
852 | |||
853 | XMMS_RESTORE; | ||
854 | } | ||
855 | |||
856 | static struct xor_block_template xor_block_pIII_sse = { | ||
857 | .name = "pIII_sse", | ||
858 | .do_2 = xor_sse_2, | ||
859 | .do_3 = xor_sse_3, | ||
860 | .do_4 = xor_sse_4, | ||
861 | .do_5 = xor_sse_5, | ||
862 | }; | ||
863 | |||
864 | /* Also try the generic routines. */ | ||
865 | #include <asm-generic/xor.h> | ||
866 | |||
867 | #undef XOR_TRY_TEMPLATES | ||
868 | #define XOR_TRY_TEMPLATES \ | ||
869 | do { \ | ||
870 | xor_speed(&xor_block_8regs); \ | ||
871 | xor_speed(&xor_block_8regs_p); \ | ||
872 | xor_speed(&xor_block_32regs); \ | ||
873 | xor_speed(&xor_block_32regs_p); \ | ||
874 | if (cpu_has_xmm) \ | ||
875 | xor_speed(&xor_block_pIII_sse); \ | ||
876 | if (cpu_has_mmx) { \ | ||
877 | xor_speed(&xor_block_pII_mmx); \ | ||
878 | xor_speed(&xor_block_p5_mmx); \ | ||
879 | } \ | ||
880 | } while (0) | ||
881 | |||
882 | /* We force the use of the SSE xor block because it can write around L2. | ||
883 | We may also be able to load into the L1 only depending on how the cpu | ||
884 | deals with a load to a line that is being prefetched. */ | ||
885 | #define XOR_SELECT_TEMPLATE(FASTEST) \ | ||
886 | (cpu_has_xmm ? &xor_block_pIII_sse : FASTEST) | ||
887 | |||
888 | #endif /* _ASM_X86_XOR_32_H */ | ||
diff --git a/arch/x86/include/asm/xor_64.h b/arch/x86/include/asm/xor_64.h new file mode 100644 index 000000000000..1549b5e261f6 --- /dev/null +++ b/arch/x86/include/asm/xor_64.h | |||
@@ -0,0 +1,361 @@ | |||
1 | #ifndef _ASM_X86_XOR_64_H | ||
2 | #define _ASM_X86_XOR_64_H | ||
3 | |||
4 | /* | ||
5 | * Optimized RAID-5 checksumming functions for MMX and SSE. | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License as published by | ||
9 | * the Free Software Foundation; either version 2, or (at your option) | ||
10 | * any later version. | ||
11 | * | ||
12 | * You should have received a copy of the GNU General Public License | ||
13 | * (for example /usr/src/linux/COPYING); if not, write to the Free | ||
14 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
15 | */ | ||
16 | |||
17 | |||
18 | /* | ||
19 | * Cache avoiding checksumming functions utilizing KNI instructions | ||
20 | * Copyright (C) 1999 Zach Brown (with obvious credit due Ingo) | ||
21 | */ | ||
22 | |||
23 | /* | ||
24 | * Based on | ||
25 | * High-speed RAID5 checksumming functions utilizing SSE instructions. | ||
26 | * Copyright (C) 1998 Ingo Molnar. | ||
27 | */ | ||
28 | |||
29 | /* | ||
30 | * x86-64 changes / gcc fixes from Andi Kleen. | ||
31 | * Copyright 2002 Andi Kleen, SuSE Labs. | ||
32 | * | ||
33 | * This hasn't been optimized for the hammer yet, but there are likely | ||
34 | * no advantages to be gotten from x86-64 here anyways. | ||
35 | */ | ||
36 | |||
37 | typedef struct { | ||
38 | unsigned long a, b; | ||
39 | } __attribute__((aligned(16))) xmm_store_t; | ||
40 | |||
41 | /* Doesn't use gcc to save the XMM registers, because there is no easy way to | ||
42 | tell it to do a clts before the register saving. */ | ||
43 | #define XMMS_SAVE \ | ||
44 | do { \ | ||
45 | preempt_disable(); \ | ||
46 | asm volatile( \ | ||
47 | "movq %%cr0,%0 ;\n\t" \ | ||
48 | "clts ;\n\t" \ | ||
49 | "movups %%xmm0,(%1) ;\n\t" \ | ||
50 | "movups %%xmm1,0x10(%1) ;\n\t" \ | ||
51 | "movups %%xmm2,0x20(%1) ;\n\t" \ | ||
52 | "movups %%xmm3,0x30(%1) ;\n\t" \ | ||
53 | : "=&r" (cr0) \ | ||
54 | : "r" (xmm_save) \ | ||
55 | : "memory"); \ | ||
56 | } while (0) | ||
57 | |||
58 | #define XMMS_RESTORE \ | ||
59 | do { \ | ||
60 | asm volatile( \ | ||
61 | "sfence ;\n\t" \ | ||
62 | "movups (%1),%%xmm0 ;\n\t" \ | ||
63 | "movups 0x10(%1),%%xmm1 ;\n\t" \ | ||
64 | "movups 0x20(%1),%%xmm2 ;\n\t" \ | ||
65 | "movups 0x30(%1),%%xmm3 ;\n\t" \ | ||
66 | "movq %0,%%cr0 ;\n\t" \ | ||
67 | : \ | ||
68 | : "r" (cr0), "r" (xmm_save) \ | ||
69 | : "memory"); \ | ||
70 | preempt_enable(); \ | ||
71 | } while (0) | ||
72 | |||
73 | #define OFFS(x) "16*("#x")" | ||
74 | #define PF_OFFS(x) "256+16*("#x")" | ||
75 | #define PF0(x) " prefetchnta "PF_OFFS(x)"(%[p1]) ;\n" | ||
76 | #define LD(x, y) " movaps "OFFS(x)"(%[p1]), %%xmm"#y" ;\n" | ||
77 | #define ST(x, y) " movaps %%xmm"#y", "OFFS(x)"(%[p1]) ;\n" | ||
78 | #define PF1(x) " prefetchnta "PF_OFFS(x)"(%[p2]) ;\n" | ||
79 | #define PF2(x) " prefetchnta "PF_OFFS(x)"(%[p3]) ;\n" | ||
80 | #define PF3(x) " prefetchnta "PF_OFFS(x)"(%[p4]) ;\n" | ||
81 | #define PF4(x) " prefetchnta "PF_OFFS(x)"(%[p5]) ;\n" | ||
82 | #define PF5(x) " prefetchnta "PF_OFFS(x)"(%[p6]) ;\n" | ||
83 | #define XO1(x, y) " xorps "OFFS(x)"(%[p2]), %%xmm"#y" ;\n" | ||
84 | #define XO2(x, y) " xorps "OFFS(x)"(%[p3]), %%xmm"#y" ;\n" | ||
85 | #define XO3(x, y) " xorps "OFFS(x)"(%[p4]), %%xmm"#y" ;\n" | ||
86 | #define XO4(x, y) " xorps "OFFS(x)"(%[p5]), %%xmm"#y" ;\n" | ||
87 | #define XO5(x, y) " xorps "OFFS(x)"(%[p6]), %%xmm"#y" ;\n" | ||
88 | |||
89 | |||
90 | static void | ||
91 | xor_sse_2(unsigned long bytes, unsigned long *p1, unsigned long *p2) | ||
92 | { | ||
93 | unsigned int lines = bytes >> 8; | ||
94 | unsigned long cr0; | ||
95 | xmm_store_t xmm_save[4]; | ||
96 | |||
97 | XMMS_SAVE; | ||
98 | |||
99 | asm volatile( | ||
100 | #undef BLOCK | ||
101 | #define BLOCK(i) \ | ||
102 | LD(i, 0) \ | ||
103 | LD(i + 1, 1) \ | ||
104 | PF1(i) \ | ||
105 | PF1(i + 2) \ | ||
106 | LD(i + 2, 2) \ | ||
107 | LD(i + 3, 3) \ | ||
108 | PF0(i + 4) \ | ||
109 | PF0(i + 6) \ | ||
110 | XO1(i, 0) \ | ||
111 | XO1(i + 1, 1) \ | ||
112 | XO1(i + 2, 2) \ | ||
113 | XO1(i + 3, 3) \ | ||
114 | ST(i, 0) \ | ||
115 | ST(i + 1, 1) \ | ||
116 | ST(i + 2, 2) \ | ||
117 | ST(i + 3, 3) \ | ||
118 | |||
119 | |||
120 | PF0(0) | ||
121 | PF0(2) | ||
122 | |||
123 | " .align 32 ;\n" | ||
124 | " 1: ;\n" | ||
125 | |||
126 | BLOCK(0) | ||
127 | BLOCK(4) | ||
128 | BLOCK(8) | ||
129 | BLOCK(12) | ||
130 | |||
131 | " addq %[inc], %[p1] ;\n" | ||
132 | " addq %[inc], %[p2] ;\n" | ||
133 | " decl %[cnt] ; jnz 1b" | ||
134 | : [p1] "+r" (p1), [p2] "+r" (p2), [cnt] "+r" (lines) | ||
135 | : [inc] "r" (256UL) | ||
136 | : "memory"); | ||
137 | |||
138 | XMMS_RESTORE; | ||
139 | } | ||
140 | |||
141 | static void | ||
142 | xor_sse_3(unsigned long bytes, unsigned long *p1, unsigned long *p2, | ||
143 | unsigned long *p3) | ||
144 | { | ||
145 | unsigned int lines = bytes >> 8; | ||
146 | xmm_store_t xmm_save[4]; | ||
147 | unsigned long cr0; | ||
148 | |||
149 | XMMS_SAVE; | ||
150 | |||
151 | asm volatile( | ||
152 | #undef BLOCK | ||
153 | #define BLOCK(i) \ | ||
154 | PF1(i) \ | ||
155 | PF1(i + 2) \ | ||
156 | LD(i, 0) \ | ||
157 | LD(i + 1, 1) \ | ||
158 | LD(i + 2, 2) \ | ||
159 | LD(i + 3, 3) \ | ||
160 | PF2(i) \ | ||
161 | PF2(i + 2) \ | ||
162 | PF0(i + 4) \ | ||
163 | PF0(i + 6) \ | ||
164 | XO1(i, 0) \ | ||
165 | XO1(i + 1, 1) \ | ||
166 | XO1(i + 2, 2) \ | ||
167 | XO1(i + 3, 3) \ | ||
168 | XO2(i, 0) \ | ||
169 | XO2(i + 1, 1) \ | ||
170 | XO2(i + 2, 2) \ | ||
171 | XO2(i + 3, 3) \ | ||
172 | ST(i, 0) \ | ||
173 | ST(i + 1, 1) \ | ||
174 | ST(i + 2, 2) \ | ||
175 | ST(i + 3, 3) \ | ||
176 | |||
177 | |||
178 | PF0(0) | ||
179 | PF0(2) | ||
180 | |||
181 | " .align 32 ;\n" | ||
182 | " 1: ;\n" | ||
183 | |||
184 | BLOCK(0) | ||
185 | BLOCK(4) | ||
186 | BLOCK(8) | ||
187 | BLOCK(12) | ||
188 | |||
189 | " addq %[inc], %[p1] ;\n" | ||
190 | " addq %[inc], %[p2] ;\n" | ||
191 | " addq %[inc], %[p3] ;\n" | ||
192 | " decl %[cnt] ; jnz 1b" | ||
193 | : [cnt] "+r" (lines), | ||
194 | [p1] "+r" (p1), [p2] "+r" (p2), [p3] "+r" (p3) | ||
195 | : [inc] "r" (256UL) | ||
196 | : "memory"); | ||
197 | XMMS_RESTORE; | ||
198 | } | ||
199 | |||
200 | static void | ||
201 | xor_sse_4(unsigned long bytes, unsigned long *p1, unsigned long *p2, | ||
202 | unsigned long *p3, unsigned long *p4) | ||
203 | { | ||
204 | unsigned int lines = bytes >> 8; | ||
205 | xmm_store_t xmm_save[4]; | ||
206 | unsigned long cr0; | ||
207 | |||
208 | XMMS_SAVE; | ||
209 | |||
210 | asm volatile( | ||
211 | #undef BLOCK | ||
212 | #define BLOCK(i) \ | ||
213 | PF1(i) \ | ||
214 | PF1(i + 2) \ | ||
215 | LD(i, 0) \ | ||
216 | LD(i + 1, 1) \ | ||
217 | LD(i + 2, 2) \ | ||
218 | LD(i + 3, 3) \ | ||
219 | PF2(i) \ | ||
220 | PF2(i + 2) \ | ||
221 | XO1(i, 0) \ | ||
222 | XO1(i + 1, 1) \ | ||
223 | XO1(i + 2, 2) \ | ||
224 | XO1(i + 3, 3) \ | ||
225 | PF3(i) \ | ||
226 | PF3(i + 2) \ | ||
227 | PF0(i + 4) \ | ||
228 | PF0(i + 6) \ | ||
229 | XO2(i, 0) \ | ||
230 | XO2(i + 1, 1) \ | ||
231 | XO2(i + 2, 2) \ | ||
232 | XO2(i + 3, 3) \ | ||
233 | XO3(i, 0) \ | ||
234 | XO3(i + 1, 1) \ | ||
235 | XO3(i + 2, 2) \ | ||
236 | XO3(i + 3, 3) \ | ||
237 | ST(i, 0) \ | ||
238 | ST(i + 1, 1) \ | ||
239 | ST(i + 2, 2) \ | ||
240 | ST(i + 3, 3) \ | ||
241 | |||
242 | |||
243 | PF0(0) | ||
244 | PF0(2) | ||
245 | |||
246 | " .align 32 ;\n" | ||
247 | " 1: ;\n" | ||
248 | |||
249 | BLOCK(0) | ||
250 | BLOCK(4) | ||
251 | BLOCK(8) | ||
252 | BLOCK(12) | ||
253 | |||
254 | " addq %[inc], %[p1] ;\n" | ||
255 | " addq %[inc], %[p2] ;\n" | ||
256 | " addq %[inc], %[p3] ;\n" | ||
257 | " addq %[inc], %[p4] ;\n" | ||
258 | " decl %[cnt] ; jnz 1b" | ||
259 | : [cnt] "+c" (lines), | ||
260 | [p1] "+r" (p1), [p2] "+r" (p2), [p3] "+r" (p3), [p4] "+r" (p4) | ||
261 | : [inc] "r" (256UL) | ||
262 | : "memory" ); | ||
263 | |||
264 | XMMS_RESTORE; | ||
265 | } | ||
266 | |||
267 | static void | ||
268 | xor_sse_5(unsigned long bytes, unsigned long *p1, unsigned long *p2, | ||
269 | unsigned long *p3, unsigned long *p4, unsigned long *p5) | ||
270 | { | ||
271 | unsigned int lines = bytes >> 8; | ||
272 | xmm_store_t xmm_save[4]; | ||
273 | unsigned long cr0; | ||
274 | |||
275 | XMMS_SAVE; | ||
276 | |||
277 | asm volatile( | ||
278 | #undef BLOCK | ||
279 | #define BLOCK(i) \ | ||
280 | PF1(i) \ | ||
281 | PF1(i + 2) \ | ||
282 | LD(i, 0) \ | ||
283 | LD(i + 1, 1) \ | ||
284 | LD(i + 2, 2) \ | ||
285 | LD(i + 3, 3) \ | ||
286 | PF2(i) \ | ||
287 | PF2(i + 2) \ | ||
288 | XO1(i, 0) \ | ||
289 | XO1(i + 1, 1) \ | ||
290 | XO1(i + 2, 2) \ | ||
291 | XO1(i + 3, 3) \ | ||
292 | PF3(i) \ | ||
293 | PF3(i + 2) \ | ||
294 | XO2(i, 0) \ | ||
295 | XO2(i + 1, 1) \ | ||
296 | XO2(i + 2, 2) \ | ||
297 | XO2(i + 3, 3) \ | ||
298 | PF4(i) \ | ||
299 | PF4(i + 2) \ | ||
300 | PF0(i + 4) \ | ||
301 | PF0(i + 6) \ | ||
302 | XO3(i, 0) \ | ||
303 | XO3(i + 1, 1) \ | ||
304 | XO3(i + 2, 2) \ | ||
305 | XO3(i + 3, 3) \ | ||
306 | XO4(i, 0) \ | ||
307 | XO4(i + 1, 1) \ | ||
308 | XO4(i + 2, 2) \ | ||
309 | XO4(i + 3, 3) \ | ||
310 | ST(i, 0) \ | ||
311 | ST(i + 1, 1) \ | ||
312 | ST(i + 2, 2) \ | ||
313 | ST(i + 3, 3) \ | ||
314 | |||
315 | |||
316 | PF0(0) | ||
317 | PF0(2) | ||
318 | |||
319 | " .align 32 ;\n" | ||
320 | " 1: ;\n" | ||
321 | |||
322 | BLOCK(0) | ||
323 | BLOCK(4) | ||
324 | BLOCK(8) | ||
325 | BLOCK(12) | ||
326 | |||
327 | " addq %[inc], %[p1] ;\n" | ||
328 | " addq %[inc], %[p2] ;\n" | ||
329 | " addq %[inc], %[p3] ;\n" | ||
330 | " addq %[inc], %[p4] ;\n" | ||
331 | " addq %[inc], %[p5] ;\n" | ||
332 | " decl %[cnt] ; jnz 1b" | ||
333 | : [cnt] "+c" (lines), | ||
334 | [p1] "+r" (p1), [p2] "+r" (p2), [p3] "+r" (p3), [p4] "+r" (p4), | ||
335 | [p5] "+r" (p5) | ||
336 | : [inc] "r" (256UL) | ||
337 | : "memory"); | ||
338 | |||
339 | XMMS_RESTORE; | ||
340 | } | ||
341 | |||
342 | static struct xor_block_template xor_block_sse = { | ||
343 | .name = "generic_sse", | ||
344 | .do_2 = xor_sse_2, | ||
345 | .do_3 = xor_sse_3, | ||
346 | .do_4 = xor_sse_4, | ||
347 | .do_5 = xor_sse_5, | ||
348 | }; | ||
349 | |||
350 | #undef XOR_TRY_TEMPLATES | ||
351 | #define XOR_TRY_TEMPLATES \ | ||
352 | do { \ | ||
353 | xor_speed(&xor_block_sse); \ | ||
354 | } while (0) | ||
355 | |||
356 | /* We force the use of the SSE xor block because it can write around L2. | ||
357 | We may also be able to load into the L1 only depending on how the cpu | ||
358 | deals with a load to a line that is being prefetched. */ | ||
359 | #define XOR_SELECT_TEMPLATE(FASTEST) (&xor_block_sse) | ||
360 | |||
361 | #endif /* _ASM_X86_XOR_64_H */ | ||
diff --git a/arch/x86/include/asm/xsave.h b/arch/x86/include/asm/xsave.h new file mode 100644 index 000000000000..08e9a1ac07a9 --- /dev/null +++ b/arch/x86/include/asm/xsave.h | |||
@@ -0,0 +1,118 @@ | |||
1 | #ifndef __ASM_X86_XSAVE_H | ||
2 | #define __ASM_X86_XSAVE_H | ||
3 | |||
4 | #include <linux/types.h> | ||
5 | #include <asm/processor.h> | ||
6 | #include <asm/i387.h> | ||
7 | |||
8 | #define XSTATE_FP 0x1 | ||
9 | #define XSTATE_SSE 0x2 | ||
10 | |||
11 | #define XSTATE_FPSSE (XSTATE_FP | XSTATE_SSE) | ||
12 | |||
13 | #define FXSAVE_SIZE 512 | ||
14 | |||
15 | /* | ||
16 | * These are the features that the OS can handle currently. | ||
17 | */ | ||
18 | #define XCNTXT_MASK (XSTATE_FP | XSTATE_SSE) | ||
19 | |||
20 | #ifdef CONFIG_X86_64 | ||
21 | #define REX_PREFIX "0x48, " | ||
22 | #else | ||
23 | #define REX_PREFIX | ||
24 | #endif | ||
25 | |||
26 | extern unsigned int xstate_size; | ||
27 | extern u64 pcntxt_mask; | ||
28 | extern struct xsave_struct *init_xstate_buf; | ||
29 | |||
30 | extern void xsave_cntxt_init(void); | ||
31 | extern void xsave_init(void); | ||
32 | extern int init_fpu(struct task_struct *child); | ||
33 | extern int check_for_xstate(struct i387_fxsave_struct __user *buf, | ||
34 | void __user *fpstate, | ||
35 | struct _fpx_sw_bytes *sw); | ||
36 | |||
37 | static inline int xrstor_checking(struct xsave_struct *fx) | ||
38 | { | ||
39 | int err; | ||
40 | |||
41 | asm volatile("1: .byte " REX_PREFIX "0x0f,0xae,0x2f\n\t" | ||
42 | "2:\n" | ||
43 | ".section .fixup,\"ax\"\n" | ||
44 | "3: movl $-1,%[err]\n" | ||
45 | " jmp 2b\n" | ||
46 | ".previous\n" | ||
47 | _ASM_EXTABLE(1b, 3b) | ||
48 | : [err] "=r" (err) | ||
49 | : "D" (fx), "m" (*fx), "a" (-1), "d" (-1), "0" (0) | ||
50 | : "memory"); | ||
51 | |||
52 | return err; | ||
53 | } | ||
54 | |||
55 | static inline int xsave_user(struct xsave_struct __user *buf) | ||
56 | { | ||
57 | int err; | ||
58 | __asm__ __volatile__("1: .byte " REX_PREFIX "0x0f,0xae,0x27\n" | ||
59 | "2:\n" | ||
60 | ".section .fixup,\"ax\"\n" | ||
61 | "3: movl $-1,%[err]\n" | ||
62 | " jmp 2b\n" | ||
63 | ".previous\n" | ||
64 | ".section __ex_table,\"a\"\n" | ||
65 | _ASM_ALIGN "\n" | ||
66 | _ASM_PTR "1b,3b\n" | ||
67 | ".previous" | ||
68 | : [err] "=r" (err) | ||
69 | : "D" (buf), "a" (-1), "d" (-1), "0" (0) | ||
70 | : "memory"); | ||
71 | if (unlikely(err) && __clear_user(buf, xstate_size)) | ||
72 | err = -EFAULT; | ||
73 | /* No need to clear here because the caller clears USED_MATH */ | ||
74 | return err; | ||
75 | } | ||
76 | |||
77 | static inline int xrestore_user(struct xsave_struct __user *buf, u64 mask) | ||
78 | { | ||
79 | int err; | ||
80 | struct xsave_struct *xstate = ((__force struct xsave_struct *)buf); | ||
81 | u32 lmask = mask; | ||
82 | u32 hmask = mask >> 32; | ||
83 | |||
84 | __asm__ __volatile__("1: .byte " REX_PREFIX "0x0f,0xae,0x2f\n" | ||
85 | "2:\n" | ||
86 | ".section .fixup,\"ax\"\n" | ||
87 | "3: movl $-1,%[err]\n" | ||
88 | " jmp 2b\n" | ||
89 | ".previous\n" | ||
90 | ".section __ex_table,\"a\"\n" | ||
91 | _ASM_ALIGN "\n" | ||
92 | _ASM_PTR "1b,3b\n" | ||
93 | ".previous" | ||
94 | : [err] "=r" (err) | ||
95 | : "D" (xstate), "a" (lmask), "d" (hmask), "0" (0) | ||
96 | : "memory"); /* memory required? */ | ||
97 | return err; | ||
98 | } | ||
99 | |||
100 | static inline void xrstor_state(struct xsave_struct *fx, u64 mask) | ||
101 | { | ||
102 | u32 lmask = mask; | ||
103 | u32 hmask = mask >> 32; | ||
104 | |||
105 | asm volatile(".byte " REX_PREFIX "0x0f,0xae,0x2f\n\t" | ||
106 | : : "D" (fx), "m" (*fx), "a" (lmask), "d" (hmask) | ||
107 | : "memory"); | ||
108 | } | ||
109 | |||
110 | static inline void xsave(struct task_struct *tsk) | ||
111 | { | ||
112 | /* This, however, we can work around by forcing the compiler to select | ||
113 | an addressing mode that doesn't require extended registers. */ | ||
114 | __asm__ __volatile__(".byte " REX_PREFIX "0x0f,0xae,0x27" | ||
115 | : : "D" (&(tsk->thread.xstate->xsave)), | ||
116 | "a" (-1), "d"(-1) : "memory"); | ||
117 | } | ||
118 | #endif | ||
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c index 0d1c26a583c5..8c1f76abae9e 100644 --- a/arch/x86/kernel/acpi/boot.c +++ b/arch/x86/kernel/acpi/boot.c | |||
@@ -153,12 +153,13 @@ char *__init __acpi_map_table(unsigned long phys, unsigned long size) | |||
153 | } | 153 | } |
154 | 154 | ||
155 | #ifdef CONFIG_PCI_MMCONFIG | 155 | #ifdef CONFIG_PCI_MMCONFIG |
156 | |||
157 | static int acpi_mcfg_64bit_base_addr __initdata = FALSE; | ||
158 | |||
156 | /* The physical address of the MMCONFIG aperture. Set from ACPI tables. */ | 159 | /* The physical address of the MMCONFIG aperture. Set from ACPI tables. */ |
157 | struct acpi_mcfg_allocation *pci_mmcfg_config; | 160 | struct acpi_mcfg_allocation *pci_mmcfg_config; |
158 | int pci_mmcfg_config_num; | 161 | int pci_mmcfg_config_num; |
159 | 162 | ||
160 | static int acpi_mcfg_64bit_base_addr __initdata = FALSE; | ||
161 | |||
162 | static int __init acpi_mcfg_oem_check(struct acpi_table_mcfg *mcfg) | 163 | static int __init acpi_mcfg_oem_check(struct acpi_table_mcfg *mcfg) |
163 | { | 164 | { |
164 | if (!strcmp(mcfg->header.oem_id, "SGI")) | 165 | if (!strcmp(mcfg->header.oem_id, "SGI")) |
@@ -1136,7 +1137,7 @@ int mp_register_gsi(u32 gsi, int triggering, int polarity) | |||
1136 | return gsi; | 1137 | return gsi; |
1137 | } | 1138 | } |
1138 | if (test_bit(ioapic_pin, mp_ioapic_routing[ioapic].pin_programmed)) { | 1139 | if (test_bit(ioapic_pin, mp_ioapic_routing[ioapic].pin_programmed)) { |
1139 | pr_debug(KERN_DEBUG "Pin %d-%d already programmed\n", | 1140 | pr_debug("Pin %d-%d already programmed\n", |
1140 | mp_ioapic_routing[ioapic].apic_id, ioapic_pin); | 1141 | mp_ioapic_routing[ioapic].apic_id, ioapic_pin); |
1141 | #ifdef CONFIG_X86_32 | 1142 | #ifdef CONFIG_X86_32 |
1142 | return (gsi < IRQ_COMPRESSION_START ? gsi : gsi_to_irq[gsi]); | 1143 | return (gsi < IRQ_COMPRESSION_START ? gsi : gsi_to_irq[gsi]); |
@@ -1598,6 +1599,11 @@ static struct dmi_system_id __initdata acpi_dmi_table[] = { | |||
1598 | DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 360"), | 1599 | DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 360"), |
1599 | }, | 1600 | }, |
1600 | }, | 1601 | }, |
1602 | {} | ||
1603 | }; | ||
1604 | |||
1605 | /* second table for DMI checks that should run after early-quirks */ | ||
1606 | static struct dmi_system_id __initdata acpi_dmi_table_late[] = { | ||
1601 | /* | 1607 | /* |
1602 | * HP laptops which use a DSDT reporting as HP/SB400/10000, | 1608 | * HP laptops which use a DSDT reporting as HP/SB400/10000, |
1603 | * which includes some code which overrides all temperature | 1609 | * which includes some code which overrides all temperature |
@@ -1726,6 +1732,9 @@ int __init early_acpi_boot_init(void) | |||
1726 | 1732 | ||
1727 | int __init acpi_boot_init(void) | 1733 | int __init acpi_boot_init(void) |
1728 | { | 1734 | { |
1735 | /* those are executed after early-quirks are executed */ | ||
1736 | dmi_check_system(acpi_dmi_table_late); | ||
1737 | |||
1729 | /* | 1738 | /* |
1730 | * If acpi_disabled, bail out | 1739 | * If acpi_disabled, bail out |
1731 | * One exception: acpi=ht continues far enough to enumerate LAPICs | 1740 | * One exception: acpi=ht continues far enough to enumerate LAPICs |
diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c index c44cd6dbfa14..806b4e9051b4 100644 --- a/arch/x86/kernel/acpi/sleep.c +++ b/arch/x86/kernel/acpi/sleep.c | |||
@@ -22,7 +22,7 @@ unsigned long acpi_realmode_flags; | |||
22 | static unsigned long acpi_realmode; | 22 | static unsigned long acpi_realmode; |
23 | 23 | ||
24 | #if defined(CONFIG_SMP) && defined(CONFIG_64BIT) | 24 | #if defined(CONFIG_SMP) && defined(CONFIG_64BIT) |
25 | static char temp_stack[10240]; | 25 | static char temp_stack[4096]; |
26 | #endif | 26 | #endif |
27 | 27 | ||
28 | /** | 28 | /** |
@@ -98,7 +98,7 @@ int acpi_save_state_mem(void) | |||
98 | #else /* CONFIG_64BIT */ | 98 | #else /* CONFIG_64BIT */ |
99 | header->trampoline_segment = setup_trampoline() >> 4; | 99 | header->trampoline_segment = setup_trampoline() >> 4; |
100 | #ifdef CONFIG_SMP | 100 | #ifdef CONFIG_SMP |
101 | stack_start.sp = temp_stack + 4096; | 101 | stack_start.sp = temp_stack + sizeof(temp_stack); |
102 | early_gdt_descr.address = | 102 | early_gdt_descr.address = |
103 | (unsigned long)get_cpu_gdt_table(smp_processor_id()); | 103 | (unsigned long)get_cpu_gdt_table(smp_processor_id()); |
104 | #endif | 104 | #endif |
diff --git a/arch/x86/kernel/amd_iommu_init.c b/arch/x86/kernel/amd_iommu_init.c index 4cd8083c58be..0cdcda35a05f 100644 --- a/arch/x86/kernel/amd_iommu_init.c +++ b/arch/x86/kernel/amd_iommu_init.c | |||
@@ -212,7 +212,7 @@ static void __init iommu_set_exclusion_range(struct amd_iommu *iommu) | |||
212 | /* Programs the physical address of the device table into the IOMMU hardware */ | 212 | /* Programs the physical address of the device table into the IOMMU hardware */ |
213 | static void __init iommu_set_device_table(struct amd_iommu *iommu) | 213 | static void __init iommu_set_device_table(struct amd_iommu *iommu) |
214 | { | 214 | { |
215 | u32 entry; | 215 | u64 entry; |
216 | 216 | ||
217 | BUG_ON(iommu->mmio_base == NULL); | 217 | BUG_ON(iommu->mmio_base == NULL); |
218 | 218 | ||
diff --git a/arch/x86/kernel/asm-offsets_64.c b/arch/x86/kernel/asm-offsets_64.c index 505543a75a56..7fcf63d22f8b 100644 --- a/arch/x86/kernel/asm-offsets_64.c +++ b/arch/x86/kernel/asm-offsets_64.c | |||
@@ -22,7 +22,7 @@ | |||
22 | 22 | ||
23 | #define __NO_STUBS 1 | 23 | #define __NO_STUBS 1 |
24 | #undef __SYSCALL | 24 | #undef __SYSCALL |
25 | #undef ASM_X86__UNISTD_64_H | 25 | #undef _ASM_X86_UNISTD_64_H |
26 | #define __SYSCALL(nr, sym) [nr] = 1, | 26 | #define __SYSCALL(nr, sym) [nr] = 1, |
27 | static char syscalls[] = { | 27 | static char syscalls[] = { |
28 | #include <asm/unistd.h> | 28 | #include <asm/unistd.h> |
diff --git a/arch/x86/kernel/cpu/Makefile b/arch/x86/kernel/cpu/Makefile index 7f0b45a5d788..82ec6075c057 100644 --- a/arch/x86/kernel/cpu/Makefile +++ b/arch/x86/kernel/cpu/Makefile | |||
@@ -25,7 +25,7 @@ obj-$(CONFIG_X86_LOCAL_APIC) += perfctr-watchdog.o | |||
25 | quiet_cmd_mkcapflags = MKCAP $@ | 25 | quiet_cmd_mkcapflags = MKCAP $@ |
26 | cmd_mkcapflags = $(PERL) $(srctree)/$(src)/mkcapflags.pl $< $@ | 26 | cmd_mkcapflags = $(PERL) $(srctree)/$(src)/mkcapflags.pl $< $@ |
27 | 27 | ||
28 | cpufeature = $(src)/../../../../include/asm-x86/cpufeature.h | 28 | cpufeature = $(src)/../../include/asm/cpufeature.h |
29 | 29 | ||
30 | targets += capflags.c | 30 | targets += capflags.c |
31 | $(obj)/capflags.c: $(cpufeature) $(src)/mkcapflags.pl FORCE | 31 | $(obj)/capflags.c: $(cpufeature) $(src)/mkcapflags.pl FORCE |
diff --git a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c index c24c4a487b7c..8e48c5d4467d 100644 --- a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c +++ b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c | |||
@@ -780,6 +780,9 @@ static int __init acpi_cpufreq_init(void) | |||
780 | { | 780 | { |
781 | int ret; | 781 | int ret; |
782 | 782 | ||
783 | if (acpi_disabled) | ||
784 | return 0; | ||
785 | |||
783 | dprintk("acpi_cpufreq_init\n"); | 786 | dprintk("acpi_cpufreq_init\n"); |
784 | 787 | ||
785 | ret = acpi_cpufreq_early_init(); | 788 | ret = acpi_cpufreq_early_init(); |
diff --git a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c index 008d23ba491b..d3dcd58b87cd 100644 --- a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c +++ b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c | |||
@@ -45,7 +45,6 @@ | |||
45 | #endif | 45 | #endif |
46 | 46 | ||
47 | #define PFX "powernow-k8: " | 47 | #define PFX "powernow-k8: " |
48 | #define BFX PFX "BIOS error: " | ||
49 | #define VERSION "version 2.20.00" | 48 | #define VERSION "version 2.20.00" |
50 | #include "powernow-k8.h" | 49 | #include "powernow-k8.h" |
51 | 50 | ||
@@ -536,35 +535,40 @@ static int check_pst_table(struct powernow_k8_data *data, struct pst_s *pst, u8 | |||
536 | 535 | ||
537 | for (j = 0; j < data->numps; j++) { | 536 | for (j = 0; j < data->numps; j++) { |
538 | if (pst[j].vid > LEAST_VID) { | 537 | if (pst[j].vid > LEAST_VID) { |
539 | printk(KERN_ERR PFX "vid %d invalid : 0x%x\n", j, pst[j].vid); | 538 | printk(KERN_ERR FW_BUG PFX "vid %d invalid : 0x%x\n", |
539 | j, pst[j].vid); | ||
540 | return -EINVAL; | 540 | return -EINVAL; |
541 | } | 541 | } |
542 | if (pst[j].vid < data->rvo) { /* vid + rvo >= 0 */ | 542 | if (pst[j].vid < data->rvo) { /* vid + rvo >= 0 */ |
543 | printk(KERN_ERR BFX "0 vid exceeded with pstate %d\n", j); | 543 | printk(KERN_ERR FW_BUG PFX "0 vid exceeded with pstate" |
544 | " %d\n", j); | ||
544 | return -ENODEV; | 545 | return -ENODEV; |
545 | } | 546 | } |
546 | if (pst[j].vid < maxvid + data->rvo) { /* vid + rvo >= maxvid */ | 547 | if (pst[j].vid < maxvid + data->rvo) { /* vid + rvo >= maxvid */ |
547 | printk(KERN_ERR BFX "maxvid exceeded with pstate %d\n", j); | 548 | printk(KERN_ERR FW_BUG PFX "maxvid exceeded with pstate" |
549 | " %d\n", j); | ||
548 | return -ENODEV; | 550 | return -ENODEV; |
549 | } | 551 | } |
550 | if (pst[j].fid > MAX_FID) { | 552 | if (pst[j].fid > MAX_FID) { |
551 | printk(KERN_ERR BFX "maxfid exceeded with pstate %d\n", j); | 553 | printk(KERN_ERR FW_BUG PFX "maxfid exceeded with pstate" |
554 | " %d\n", j); | ||
552 | return -ENODEV; | 555 | return -ENODEV; |
553 | } | 556 | } |
554 | if (j && (pst[j].fid < HI_FID_TABLE_BOTTOM)) { | 557 | if (j && (pst[j].fid < HI_FID_TABLE_BOTTOM)) { |
555 | /* Only first fid is allowed to be in "low" range */ | 558 | /* Only first fid is allowed to be in "low" range */ |
556 | printk(KERN_ERR BFX "two low fids - %d : 0x%x\n", j, pst[j].fid); | 559 | printk(KERN_ERR FW_BUG PFX "two low fids - %d : " |
560 | "0x%x\n", j, pst[j].fid); | ||
557 | return -EINVAL; | 561 | return -EINVAL; |
558 | } | 562 | } |
559 | if (pst[j].fid < lastfid) | 563 | if (pst[j].fid < lastfid) |
560 | lastfid = pst[j].fid; | 564 | lastfid = pst[j].fid; |
561 | } | 565 | } |
562 | if (lastfid & 1) { | 566 | if (lastfid & 1) { |
563 | printk(KERN_ERR BFX "lastfid invalid\n"); | 567 | printk(KERN_ERR FW_BUG PFX "lastfid invalid\n"); |
564 | return -EINVAL; | 568 | return -EINVAL; |
565 | } | 569 | } |
566 | if (lastfid > LO_FID_TABLE_TOP) | 570 | if (lastfid > LO_FID_TABLE_TOP) |
567 | printk(KERN_INFO BFX "first fid not from lo freq table\n"); | 571 | printk(KERN_INFO FW_BUG PFX "first fid not from lo freq table\n"); |
568 | 572 | ||
569 | return 0; | 573 | return 0; |
570 | } | 574 | } |
@@ -672,13 +676,13 @@ static int find_psb_table(struct powernow_k8_data *data) | |||
672 | 676 | ||
673 | dprintk("table vers: 0x%x\n", psb->tableversion); | 677 | dprintk("table vers: 0x%x\n", psb->tableversion); |
674 | if (psb->tableversion != PSB_VERSION_1_4) { | 678 | if (psb->tableversion != PSB_VERSION_1_4) { |
675 | printk(KERN_ERR BFX "PSB table is not v1.4\n"); | 679 | printk(KERN_ERR FW_BUG PFX "PSB table is not v1.4\n"); |
676 | return -ENODEV; | 680 | return -ENODEV; |
677 | } | 681 | } |
678 | 682 | ||
679 | dprintk("flags: 0x%x\n", psb->flags1); | 683 | dprintk("flags: 0x%x\n", psb->flags1); |
680 | if (psb->flags1) { | 684 | if (psb->flags1) { |
681 | printk(KERN_ERR BFX "unknown flags\n"); | 685 | printk(KERN_ERR FW_BUG PFX "unknown flags\n"); |
682 | return -ENODEV; | 686 | return -ENODEV; |
683 | } | 687 | } |
684 | 688 | ||
@@ -705,7 +709,7 @@ static int find_psb_table(struct powernow_k8_data *data) | |||
705 | } | 709 | } |
706 | } | 710 | } |
707 | if (cpst != 1) { | 711 | if (cpst != 1) { |
708 | printk(KERN_ERR BFX "numpst must be 1\n"); | 712 | printk(KERN_ERR FW_BUG PFX "numpst must be 1\n"); |
709 | return -ENODEV; | 713 | return -ENODEV; |
710 | } | 714 | } |
711 | 715 | ||
@@ -1130,17 +1134,19 @@ static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol) | |||
1130 | "ACPI Processor module before starting this " | 1134 | "ACPI Processor module before starting this " |
1131 | "driver.\n"); | 1135 | "driver.\n"); |
1132 | #else | 1136 | #else |
1133 | printk(KERN_ERR PFX "Your BIOS does not provide ACPI " | 1137 | printk(KERN_ERR FW_BUG PFX "Your BIOS does not provide" |
1134 | "_PSS objects in a way that Linux understands. " | 1138 | " ACPI _PSS objects in a way that Linux " |
1135 | "Please report this to the Linux ACPI maintainers" | 1139 | "understands. Please report this to the Linux " |
1136 | " and complain to your BIOS vendor.\n"); | 1140 | "ACPI maintainers and complain to your BIOS " |
1141 | "vendor.\n"); | ||
1137 | #endif | 1142 | #endif |
1138 | kfree(data); | 1143 | kfree(data); |
1139 | return -ENODEV; | 1144 | return -ENODEV; |
1140 | } | 1145 | } |
1141 | if (pol->cpu != 0) { | 1146 | if (pol->cpu != 0) { |
1142 | printk(KERN_ERR PFX "No ACPI _PSS objects for CPU other than " | 1147 | printk(KERN_ERR FW_BUG PFX "No ACPI _PSS objects for " |
1143 | "CPU0. Complain to your BIOS vendor.\n"); | 1148 | "CPU other than CPU0. Complain to your BIOS " |
1149 | "vendor.\n"); | ||
1144 | kfree(data); | 1150 | kfree(data); |
1145 | return -ENODEV; | 1151 | return -ENODEV; |
1146 | } | 1152 | } |
@@ -1193,7 +1199,7 @@ static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol) | |||
1193 | 1199 | ||
1194 | /* min/max the cpu is capable of */ | 1200 | /* min/max the cpu is capable of */ |
1195 | if (cpufreq_frequency_table_cpuinfo(pol, data->powernow_table)) { | 1201 | if (cpufreq_frequency_table_cpuinfo(pol, data->powernow_table)) { |
1196 | printk(KERN_ERR PFX "invalid powernow_table\n"); | 1202 | printk(KERN_ERR FW_BUG PFX "invalid powernow_table\n"); |
1197 | powernow_k8_cpu_exit_acpi(data); | 1203 | powernow_k8_cpu_exit_acpi(data); |
1198 | kfree(data->powernow_table); | 1204 | kfree(data->powernow_table); |
1199 | kfree(data); | 1205 | kfree(data); |
diff --git a/arch/x86/kernel/cpu/proc.c b/arch/x86/kernel/cpu/proc.c index a26c480b9491..01b1244ef1c0 100644 --- a/arch/x86/kernel/cpu/proc.c +++ b/arch/x86/kernel/cpu/proc.c | |||
@@ -160,14 +160,16 @@ static void *c_start(struct seq_file *m, loff_t *pos) | |||
160 | { | 160 | { |
161 | if (*pos == 0) /* just in case, cpu 0 is not the first */ | 161 | if (*pos == 0) /* just in case, cpu 0 is not the first */ |
162 | *pos = first_cpu(cpu_online_map); | 162 | *pos = first_cpu(cpu_online_map); |
163 | if ((*pos) < nr_cpu_ids && cpu_online(*pos)) | 163 | else |
164 | *pos = next_cpu_nr(*pos - 1, cpu_online_map); | ||
165 | if ((*pos) < nr_cpu_ids) | ||
164 | return &cpu_data(*pos); | 166 | return &cpu_data(*pos); |
165 | return NULL; | 167 | return NULL; |
166 | } | 168 | } |
167 | 169 | ||
168 | static void *c_next(struct seq_file *m, void *v, loff_t *pos) | 170 | static void *c_next(struct seq_file *m, void *v, loff_t *pos) |
169 | { | 171 | { |
170 | *pos = next_cpu(*pos, cpu_online_map); | 172 | (*pos)++; |
171 | return c_start(m, pos); | 173 | return c_start(m, pos); |
172 | } | 174 | } |
173 | 175 | ||
diff --git a/arch/x86/kernel/dumpstack_32.c b/arch/x86/kernel/dumpstack_32.c index 1a78180f08d3..b3614752197b 100644 --- a/arch/x86/kernel/dumpstack_32.c +++ b/arch/x86/kernel/dumpstack_32.c | |||
@@ -405,7 +405,6 @@ die_nmi(char *str, struct pt_regs *regs, int do_panic) | |||
405 | panic("Non maskable interrupt"); | 405 | panic("Non maskable interrupt"); |
406 | console_silent(); | 406 | console_silent(); |
407 | spin_unlock(&nmi_print_lock); | 407 | spin_unlock(&nmi_print_lock); |
408 | bust_spinlocks(0); | ||
409 | 408 | ||
410 | /* | 409 | /* |
411 | * If we are in kernel we are probably nested up pretty bad | 410 | * If we are in kernel we are probably nested up pretty bad |
@@ -416,6 +415,7 @@ die_nmi(char *str, struct pt_regs *regs, int do_panic) | |||
416 | crash_kexec(regs); | 415 | crash_kexec(regs); |
417 | } | 416 | } |
418 | 417 | ||
418 | bust_spinlocks(0); | ||
419 | do_exit(SIGSEGV); | 419 | do_exit(SIGSEGV); |
420 | } | 420 | } |
421 | 421 | ||
diff --git a/arch/x86/kernel/early-quirks.c b/arch/x86/kernel/early-quirks.c index 733c4f8d42ea..3ce029ffaa55 100644 --- a/arch/x86/kernel/early-quirks.c +++ b/arch/x86/kernel/early-quirks.c | |||
@@ -95,7 +95,8 @@ static void __init nvidia_bugs(int num, int slot, int func) | |||
95 | 95 | ||
96 | } | 96 | } |
97 | 97 | ||
98 | static u32 ati_ixp4x0_rev(int num, int slot, int func) | 98 | #if defined(CONFIG_ACPI) && defined(CONFIG_X86_IO_APIC) |
99 | static u32 __init ati_ixp4x0_rev(int num, int slot, int func) | ||
99 | { | 100 | { |
100 | u32 d; | 101 | u32 d; |
101 | u8 b; | 102 | u8 b; |
@@ -115,7 +116,6 @@ static u32 ati_ixp4x0_rev(int num, int slot, int func) | |||
115 | 116 | ||
116 | static void __init ati_bugs(int num, int slot, int func) | 117 | static void __init ati_bugs(int num, int slot, int func) |
117 | { | 118 | { |
118 | #if defined(CONFIG_ACPI) && defined (CONFIG_X86_IO_APIC) | ||
119 | u32 d; | 119 | u32 d; |
120 | u8 b; | 120 | u8 b; |
121 | 121 | ||
@@ -138,9 +138,56 @@ static void __init ati_bugs(int num, int slot, int func) | |||
138 | printk(KERN_INFO "If you got timer trouble " | 138 | printk(KERN_INFO "If you got timer trouble " |
139 | "try acpi_use_timer_override\n"); | 139 | "try acpi_use_timer_override\n"); |
140 | } | 140 | } |
141 | #endif | ||
142 | } | 141 | } |
143 | 142 | ||
143 | static u32 __init ati_sbx00_rev(int num, int slot, int func) | ||
144 | { | ||
145 | u32 old, d; | ||
146 | |||
147 | d = read_pci_config(num, slot, func, 0x70); | ||
148 | old = d; | ||
149 | d &= ~(1<<8); | ||
150 | write_pci_config(num, slot, func, 0x70, d); | ||
151 | d = read_pci_config(num, slot, func, 0x8); | ||
152 | d &= 0xff; | ||
153 | write_pci_config(num, slot, func, 0x70, old); | ||
154 | |||
155 | return d; | ||
156 | } | ||
157 | |||
158 | static void __init ati_bugs_contd(int num, int slot, int func) | ||
159 | { | ||
160 | u32 d, rev; | ||
161 | |||
162 | if (acpi_use_timer_override) | ||
163 | return; | ||
164 | |||
165 | rev = ati_sbx00_rev(num, slot, func); | ||
166 | if (rev > 0x13) | ||
167 | return; | ||
168 | |||
169 | /* check for IRQ0 interrupt swap */ | ||
170 | d = read_pci_config(num, slot, func, 0x64); | ||
171 | if (!(d & (1<<14))) | ||
172 | acpi_skip_timer_override = 1; | ||
173 | |||
174 | if (acpi_skip_timer_override) { | ||
175 | printk(KERN_INFO "SB600 revision 0x%x\n", rev); | ||
176 | printk(KERN_INFO "Ignoring ACPI timer override.\n"); | ||
177 | printk(KERN_INFO "If you got timer trouble " | ||
178 | "try acpi_use_timer_override\n"); | ||
179 | } | ||
180 | } | ||
181 | #else | ||
182 | static void __init ati_bugs(int num, int slot, int func) | ||
183 | { | ||
184 | } | ||
185 | |||
186 | static void __init ati_bugs_contd(int num, int slot, int func) | ||
187 | { | ||
188 | } | ||
189 | #endif | ||
190 | |||
144 | #ifdef CONFIG_DMAR | 191 | #ifdef CONFIG_DMAR |
145 | static void __init intel_g33_dmar(int num, int slot, int func) | 192 | static void __init intel_g33_dmar(int num, int slot, int func) |
146 | { | 193 | { |
@@ -176,6 +223,8 @@ static struct chipset early_qrk[] __initdata = { | |||
176 | PCI_CLASS_BRIDGE_HOST, PCI_ANY_ID, 0, fix_hypertransport_config }, | 223 | PCI_CLASS_BRIDGE_HOST, PCI_ANY_ID, 0, fix_hypertransport_config }, |
177 | { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP400_SMBUS, | 224 | { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP400_SMBUS, |
178 | PCI_CLASS_SERIAL_SMBUS, PCI_ANY_ID, 0, ati_bugs }, | 225 | PCI_CLASS_SERIAL_SMBUS, PCI_ANY_ID, 0, ati_bugs }, |
226 | { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_SBX00_SMBUS, | ||
227 | PCI_CLASS_SERIAL_SMBUS, PCI_ANY_ID, 0, ati_bugs_contd }, | ||
179 | #ifdef CONFIG_DMAR | 228 | #ifdef CONFIG_DMAR |
180 | { PCI_VENDOR_ID_INTEL, 0x29c0, | 229 | { PCI_VENDOR_ID_INTEL, 0x29c0, |
181 | PCI_CLASS_BRIDGE_HOST, PCI_ANY_ID, 0, intel_g33_dmar }, | 230 | PCI_CLASS_BRIDGE_HOST, PCI_ANY_ID, 0, intel_g33_dmar }, |
diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S index c356423a6026..dd65143941a8 100644 --- a/arch/x86/kernel/entry_32.S +++ b/arch/x86/kernel/entry_32.S | |||
@@ -1024,7 +1024,7 @@ ENTRY(machine_check) | |||
1024 | RING0_INT_FRAME | 1024 | RING0_INT_FRAME |
1025 | pushl $0 | 1025 | pushl $0 |
1026 | CFI_ADJUST_CFA_OFFSET 4 | 1026 | CFI_ADJUST_CFA_OFFSET 4 |
1027 | pushl $do_machine_check | 1027 | pushl machine_check_vector |
1028 | CFI_ADJUST_CFA_OFFSET 4 | 1028 | CFI_ADJUST_CFA_OFFSET 4 |
1029 | jmp error_code | 1029 | jmp error_code |
1030 | CFI_ENDPROC | 1030 | CFI_ENDPROC |
diff --git a/arch/x86/kernel/genapic_flat_64.c b/arch/x86/kernel/genapic_flat_64.c index 2ec2de8d8c46..c0262791bda4 100644 --- a/arch/x86/kernel/genapic_flat_64.c +++ b/arch/x86/kernel/genapic_flat_64.c | |||
@@ -25,7 +25,7 @@ | |||
25 | #include <acpi/acpi_bus.h> | 25 | #include <acpi/acpi_bus.h> |
26 | #endif | 26 | #endif |
27 | 27 | ||
28 | static int __init flat_acpi_madt_oem_check(char *oem_id, char *oem_table_id) | 28 | static int flat_acpi_madt_oem_check(char *oem_id, char *oem_table_id) |
29 | { | 29 | { |
30 | return 1; | 30 | return 1; |
31 | } | 31 | } |
@@ -170,7 +170,7 @@ struct genapic apic_flat = { | |||
170 | * We cannot use logical delivery in this case because the mask | 170 | * We cannot use logical delivery in this case because the mask |
171 | * overflows, so use physical mode. | 171 | * overflows, so use physical mode. |
172 | */ | 172 | */ |
173 | static int __init physflat_acpi_madt_oem_check(char *oem_id, char *oem_table_id) | 173 | static int physflat_acpi_madt_oem_check(char *oem_id, char *oem_table_id) |
174 | { | 174 | { |
175 | #ifdef CONFIG_ACPI | 175 | #ifdef CONFIG_ACPI |
176 | /* | 176 | /* |
diff --git a/arch/x86/kernel/genx2apic_cluster.c b/arch/x86/kernel/genx2apic_cluster.c index e4bf2cc0d743..f6a2c8eb48a6 100644 --- a/arch/x86/kernel/genx2apic_cluster.c +++ b/arch/x86/kernel/genx2apic_cluster.c | |||
@@ -12,7 +12,7 @@ | |||
12 | 12 | ||
13 | DEFINE_PER_CPU(u32, x86_cpu_to_logical_apicid); | 13 | DEFINE_PER_CPU(u32, x86_cpu_to_logical_apicid); |
14 | 14 | ||
15 | static int __init x2apic_acpi_madt_oem_check(char *oem_id, char *oem_table_id) | 15 | static int x2apic_acpi_madt_oem_check(char *oem_id, char *oem_table_id) |
16 | { | 16 | { |
17 | if (cpu_has_x2apic) | 17 | if (cpu_has_x2apic) |
18 | return 1; | 18 | return 1; |
diff --git a/arch/x86/kernel/genx2apic_phys.c b/arch/x86/kernel/genx2apic_phys.c index 8f1343df2627..d042211768b7 100644 --- a/arch/x86/kernel/genx2apic_phys.c +++ b/arch/x86/kernel/genx2apic_phys.c | |||
@@ -19,7 +19,7 @@ static int set_x2apic_phys_mode(char *arg) | |||
19 | } | 19 | } |
20 | early_param("x2apic_phys", set_x2apic_phys_mode); | 20 | early_param("x2apic_phys", set_x2apic_phys_mode); |
21 | 21 | ||
22 | static int __init x2apic_acpi_madt_oem_check(char *oem_id, char *oem_table_id) | 22 | static int x2apic_acpi_madt_oem_check(char *oem_id, char *oem_table_id) |
23 | { | 23 | { |
24 | if (cpu_has_x2apic && x2apic_phys) | 24 | if (cpu_has_x2apic && x2apic_phys) |
25 | return 1; | 25 | return 1; |
diff --git a/arch/x86/kernel/genx2apic_uv_x.c b/arch/x86/kernel/genx2apic_uv_x.c index 6cf35c8bd636..dc6b46961523 100644 --- a/arch/x86/kernel/genx2apic_uv_x.c +++ b/arch/x86/kernel/genx2apic_uv_x.c | |||
@@ -30,7 +30,7 @@ DEFINE_PER_CPU(int, x2apic_extra_bits); | |||
30 | 30 | ||
31 | static enum uv_system_type uv_system_type; | 31 | static enum uv_system_type uv_system_type; |
32 | 32 | ||
33 | static int __init uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id) | 33 | static int uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id) |
34 | { | 34 | { |
35 | if (!strcmp(oem_id, "SGI")) { | 35 | if (!strcmp(oem_id, "SGI")) { |
36 | if (!strcmp(oem_table_id, "UVL")) | 36 | if (!strcmp(oem_table_id, "UVL")) |
diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c index ccf6c503fc3b..d1d4dc52f649 100644 --- a/arch/x86/kernel/irq.c +++ b/arch/x86/kernel/irq.c | |||
@@ -36,7 +36,7 @@ void ack_bad_irq(unsigned int irq) | |||
36 | } | 36 | } |
37 | 37 | ||
38 | #ifdef CONFIG_X86_32 | 38 | #ifdef CONFIG_X86_32 |
39 | # define irq_stats(x) (&per_cpu(irq_stat,x)) | 39 | # define irq_stats(x) (&per_cpu(irq_stat, x)) |
40 | #else | 40 | #else |
41 | # define irq_stats(x) cpu_pda(x) | 41 | # define irq_stats(x) cpu_pda(x) |
42 | #endif | 42 | #endif |
@@ -113,7 +113,7 @@ int show_interrupts(struct seq_file *p, void *v) | |||
113 | if (i == 0) { | 113 | if (i == 0) { |
114 | seq_printf(p, " "); | 114 | seq_printf(p, " "); |
115 | for_each_online_cpu(j) | 115 | for_each_online_cpu(j) |
116 | seq_printf(p, "CPU%-8d",j); | 116 | seq_printf(p, "CPU%-8d", j); |
117 | seq_putc(p, '\n'); | 117 | seq_putc(p, '\n'); |
118 | } | 118 | } |
119 | 119 | ||
diff --git a/arch/x86/kernel/pci-dma.c b/arch/x86/kernel/pci-dma.c index 192624820217..1972266e8ba5 100644 --- a/arch/x86/kernel/pci-dma.c +++ b/arch/x86/kernel/pci-dma.c | |||
@@ -9,8 +9,6 @@ | |||
9 | #include <asm/calgary.h> | 9 | #include <asm/calgary.h> |
10 | #include <asm/amd_iommu.h> | 10 | #include <asm/amd_iommu.h> |
11 | 11 | ||
12 | static int forbid_dac __read_mostly; | ||
13 | |||
14 | struct dma_mapping_ops *dma_ops; | 12 | struct dma_mapping_ops *dma_ops; |
15 | EXPORT_SYMBOL(dma_ops); | 13 | EXPORT_SYMBOL(dma_ops); |
16 | 14 | ||
@@ -293,17 +291,3 @@ void pci_iommu_shutdown(void) | |||
293 | } | 291 | } |
294 | /* Must execute after PCI subsystem */ | 292 | /* Must execute after PCI subsystem */ |
295 | fs_initcall(pci_iommu_init); | 293 | fs_initcall(pci_iommu_init); |
296 | |||
297 | #ifdef CONFIG_PCI | ||
298 | /* Many VIA bridges seem to corrupt data for DAC. Disable it here */ | ||
299 | |||
300 | static __devinit void via_no_dac(struct pci_dev *dev) | ||
301 | { | ||
302 | if ((dev->class >> 8) == PCI_CLASS_BRIDGE_PCI && forbid_dac == 0) { | ||
303 | printk(KERN_INFO "PCI: VIA PCI bridge detected." | ||
304 | "Disabling DAC.\n"); | ||
305 | forbid_dac = 1; | ||
306 | } | ||
307 | } | ||
308 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_ANY_ID, via_no_dac); | ||
309 | #endif | ||
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c index cd8c0ed02b7e..c958120fb1b6 100644 --- a/arch/x86/kernel/process_64.c +++ b/arch/x86/kernel/process_64.c | |||
@@ -63,6 +63,13 @@ void idle_notifier_register(struct notifier_block *n) | |||
63 | { | 63 | { |
64 | atomic_notifier_chain_register(&idle_notifier, n); | 64 | atomic_notifier_chain_register(&idle_notifier, n); |
65 | } | 65 | } |
66 | EXPORT_SYMBOL_GPL(idle_notifier_register); | ||
67 | |||
68 | void idle_notifier_unregister(struct notifier_block *n) | ||
69 | { | ||
70 | atomic_notifier_chain_unregister(&idle_notifier, n); | ||
71 | } | ||
72 | EXPORT_SYMBOL_GPL(idle_notifier_unregister); | ||
66 | 73 | ||
67 | void enter_idle(void) | 74 | void enter_idle(void) |
68 | { | 75 | { |
diff --git a/arch/x86/kernel/setup_percpu.c b/arch/x86/kernel/setup_percpu.c index 410c88f0bfeb..ae0c0d3bb770 100644 --- a/arch/x86/kernel/setup_percpu.c +++ b/arch/x86/kernel/setup_percpu.c | |||
@@ -218,7 +218,7 @@ static void __init setup_node_to_cpumask_map(void) | |||
218 | /* allocate the map */ | 218 | /* allocate the map */ |
219 | map = alloc_bootmem_low(nr_node_ids * sizeof(cpumask_t)); | 219 | map = alloc_bootmem_low(nr_node_ids * sizeof(cpumask_t)); |
220 | 220 | ||
221 | pr_debug(KERN_DEBUG "Node to cpumask map at %p for %d nodes\n", | 221 | pr_debug("Node to cpumask map at %p for %d nodes\n", |
222 | map, nr_node_ids); | 222 | map, nr_node_ids); |
223 | 223 | ||
224 | /* node_to_cpumask() will now work */ | 224 | /* node_to_cpumask() will now work */ |
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index 7ece815ea637..7b1093397319 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c | |||
@@ -893,9 +893,11 @@ do_rest: | |||
893 | smpboot_setup_warm_reset_vector(start_ip); | 893 | smpboot_setup_warm_reset_vector(start_ip); |
894 | /* | 894 | /* |
895 | * Be paranoid about clearing APIC errors. | 895 | * Be paranoid about clearing APIC errors. |
896 | */ | 896 | */ |
897 | apic_write(APIC_ESR, 0); | 897 | if (APIC_INTEGRATED(apic_version[boot_cpu_physical_apicid])) { |
898 | apic_read(APIC_ESR); | 898 | apic_write(APIC_ESR, 0); |
899 | apic_read(APIC_ESR); | ||
900 | } | ||
899 | } | 901 | } |
900 | 902 | ||
901 | /* | 903 | /* |
diff --git a/arch/x86/kernel/syscall_64.c b/arch/x86/kernel/syscall_64.c index 3d1be4f0fac5..de87d6008295 100644 --- a/arch/x86/kernel/syscall_64.c +++ b/arch/x86/kernel/syscall_64.c | |||
@@ -8,12 +8,12 @@ | |||
8 | #define __NO_STUBS | 8 | #define __NO_STUBS |
9 | 9 | ||
10 | #define __SYSCALL(nr, sym) extern asmlinkage void sym(void) ; | 10 | #define __SYSCALL(nr, sym) extern asmlinkage void sym(void) ; |
11 | #undef ASM_X86__UNISTD_64_H | 11 | #undef _ASM_X86_UNISTD_64_H |
12 | #include <asm/unistd_64.h> | 12 | #include <asm/unistd_64.h> |
13 | 13 | ||
14 | #undef __SYSCALL | 14 | #undef __SYSCALL |
15 | #define __SYSCALL(nr, sym) [nr] = sym, | 15 | #define __SYSCALL(nr, sym) [nr] = sym, |
16 | #undef ASM_X86__UNISTD_64_H | 16 | #undef _ASM_X86_UNISTD_64_H |
17 | 17 | ||
18 | typedef void (*sys_call_ptr_t)(void); | 18 | typedef void (*sys_call_ptr_t)(void); |
19 | 19 | ||
diff --git a/arch/x86/kernel/tlb_uv.c b/arch/x86/kernel/tlb_uv.c index 8b8c0d6640fa..04431f34fd16 100644 --- a/arch/x86/kernel/tlb_uv.c +++ b/arch/x86/kernel/tlb_uv.c | |||
@@ -6,7 +6,7 @@ | |||
6 | * This code is released under the GNU General Public License version 2 or | 6 | * This code is released under the GNU General Public License version 2 or |
7 | * later. | 7 | * later. |
8 | */ | 8 | */ |
9 | #include <linux/mc146818rtc.h> | 9 | #include <linux/seq_file.h> |
10 | #include <linux/proc_fs.h> | 10 | #include <linux/proc_fs.h> |
11 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
12 | 12 | ||
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c index e062974cce34..04d242ab0161 100644 --- a/arch/x86/kernel/traps.c +++ b/arch/x86/kernel/traps.c | |||
@@ -931,14 +931,6 @@ do_device_not_available(struct pt_regs *regs, long error) | |||
931 | } | 931 | } |
932 | 932 | ||
933 | #ifdef CONFIG_X86_32 | 933 | #ifdef CONFIG_X86_32 |
934 | #ifdef CONFIG_X86_MCE | ||
935 | dotraplinkage void __kprobes do_machine_check(struct pt_regs *regs, long error) | ||
936 | { | ||
937 | conditional_sti(regs); | ||
938 | machine_check_vector(regs, error); | ||
939 | } | ||
940 | #endif | ||
941 | |||
942 | dotraplinkage void do_iret_error(struct pt_regs *regs, long error_code) | 934 | dotraplinkage void do_iret_error(struct pt_regs *regs, long error_code) |
943 | { | 935 | { |
944 | siginfo_t info; | 936 | siginfo_t info; |
diff --git a/arch/x86/kernel/xsave.c b/arch/x86/kernel/xsave.c index 9abac8a9d823..b13acb75e822 100644 --- a/arch/x86/kernel/xsave.c +++ b/arch/x86/kernel/xsave.c | |||
@@ -248,7 +248,7 @@ clear: | |||
248 | * This will be saved when ever the FP and extended state context is | 248 | * This will be saved when ever the FP and extended state context is |
249 | * saved on the user stack during the signal handler delivery to the user. | 249 | * saved on the user stack during the signal handler delivery to the user. |
250 | */ | 250 | */ |
251 | void prepare_fx_sw_frame(void) | 251 | static void prepare_fx_sw_frame(void) |
252 | { | 252 | { |
253 | int size_extended = (xstate_size - sizeof(struct i387_fxsave_struct)) + | 253 | int size_extended = (xstate_size - sizeof(struct i387_fxsave_struct)) + |
254 | FP_XSTATE_MAGIC2_SIZE; | 254 | FP_XSTATE_MAGIC2_SIZE; |
diff --git a/arch/x86/kvm/i8254.c b/arch/x86/kvm/i8254.c index 634132a9a512..11c6725fb798 100644 --- a/arch/x86/kvm/i8254.c +++ b/arch/x86/kvm/i8254.c | |||
@@ -204,10 +204,10 @@ static int __pit_timer_fn(struct kvm_kpit_state *ps) | |||
204 | if (vcpu0 && waitqueue_active(&vcpu0->wq)) | 204 | if (vcpu0 && waitqueue_active(&vcpu0->wq)) |
205 | wake_up_interruptible(&vcpu0->wq); | 205 | wake_up_interruptible(&vcpu0->wq); |
206 | 206 | ||
207 | pt->timer.expires = ktime_add_ns(pt->timer.expires, pt->period); | 207 | hrtimer_add_expires_ns(&pt->timer, pt->period); |
208 | pt->scheduled = ktime_to_ns(pt->timer.expires); | 208 | pt->scheduled = hrtimer_get_expires_ns(&pt->timer); |
209 | if (pt->period) | 209 | if (pt->period) |
210 | ps->channels[0].count_load_time = pt->timer.expires; | 210 | ps->channels[0].count_load_time = hrtimer_get_expires(&pt->timer); |
211 | 211 | ||
212 | return (pt->period == 0 ? 0 : 1); | 212 | return (pt->period == 0 ? 0 : 1); |
213 | } | 213 | } |
@@ -257,7 +257,7 @@ void __kvm_migrate_pit_timer(struct kvm_vcpu *vcpu) | |||
257 | 257 | ||
258 | timer = &pit->pit_state.pit_timer.timer; | 258 | timer = &pit->pit_state.pit_timer.timer; |
259 | if (hrtimer_cancel(timer)) | 259 | if (hrtimer_cancel(timer)) |
260 | hrtimer_start(timer, timer->expires, HRTIMER_MODE_ABS); | 260 | hrtimer_start_expires(timer, HRTIMER_MODE_ABS); |
261 | } | 261 | } |
262 | 262 | ||
263 | static void destroy_pit_timer(struct kvm_kpit_timer *pt) | 263 | static void destroy_pit_timer(struct kvm_kpit_timer *pt) |
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index 6571926bfd33..0fc3cab48943 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c | |||
@@ -946,9 +946,7 @@ static int __apic_timer_fn(struct kvm_lapic *apic) | |||
946 | 946 | ||
947 | if (apic_lvtt_period(apic)) { | 947 | if (apic_lvtt_period(apic)) { |
948 | result = 1; | 948 | result = 1; |
949 | apic->timer.dev.expires = ktime_add_ns( | 949 | hrtimer_add_expires_ns(&apic->timer.dev, apic->timer.period); |
950 | apic->timer.dev.expires, | ||
951 | apic->timer.period); | ||
952 | } | 950 | } |
953 | return result; | 951 | return result; |
954 | } | 952 | } |
@@ -1117,7 +1115,7 @@ void __kvm_migrate_apic_timer(struct kvm_vcpu *vcpu) | |||
1117 | 1115 | ||
1118 | timer = &apic->timer.dev; | 1116 | timer = &apic->timer.dev; |
1119 | if (hrtimer_cancel(timer)) | 1117 | if (hrtimer_cancel(timer)) |
1120 | hrtimer_start(timer, timer->expires, HRTIMER_MODE_ABS); | 1118 | hrtimer_start_expires(timer, HRTIMER_MODE_ABS); |
1121 | } | 1119 | } |
1122 | 1120 | ||
1123 | void kvm_lapic_sync_from_vapic(struct kvm_vcpu *vcpu) | 1121 | void kvm_lapic_sync_from_vapic(struct kvm_vcpu *vcpu) |
diff --git a/arch/x86/mm/memtest.c b/arch/x86/mm/memtest.c index 672e17f8262a..9cab18b0b857 100644 --- a/arch/x86/mm/memtest.c +++ b/arch/x86/mm/memtest.c | |||
@@ -61,9 +61,9 @@ static void __init memtest(unsigned long start_phys, unsigned long size, | |||
61 | last_bad += incr; | 61 | last_bad += incr; |
62 | } else { | 62 | } else { |
63 | if (start_bad) { | 63 | if (start_bad) { |
64 | printk(KERN_CONT "\n %010lx bad mem addr %010lx - %010lx reserved", | 64 | printk(KERN_CONT "\n %016lx bad mem addr %010lx - %010lx reserved", |
65 | val, start_bad, last_bad + incr); | 65 | val, start_bad, last_bad + incr); |
66 | reserve_early(start_bad, last_bad - start_bad, "BAD RAM"); | 66 | reserve_early(start_bad, last_bad + incr, "BAD RAM"); |
67 | } | 67 | } |
68 | start_bad = last_bad = start_phys_aligned; | 68 | start_bad = last_bad = start_phys_aligned; |
69 | } | 69 | } |
@@ -72,9 +72,8 @@ static void __init memtest(unsigned long start_phys, unsigned long size, | |||
72 | if (start_bad) { | 72 | if (start_bad) { |
73 | printk(KERN_CONT "\n %016lx bad mem addr %010lx - %010lx reserved", | 73 | printk(KERN_CONT "\n %016lx bad mem addr %010lx - %010lx reserved", |
74 | val, start_bad, last_bad + incr); | 74 | val, start_bad, last_bad + incr); |
75 | reserve_early(start_bad, last_bad - start_bad, "BAD RAM"); | 75 | reserve_early(start_bad, last_bad + incr, "BAD RAM"); |
76 | } | 76 | } |
77 | |||
78 | } | 77 | } |
79 | 78 | ||
80 | /* default is disabled */ | 79 | /* default is disabled */ |
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c index 407d8784f669..f1dc1b75d166 100644 --- a/arch/x86/mm/pageattr.c +++ b/arch/x86/mm/pageattr.c | |||
@@ -65,23 +65,22 @@ static void split_page_count(int level) | |||
65 | direct_pages_count[level - 1] += PTRS_PER_PTE; | 65 | direct_pages_count[level - 1] += PTRS_PER_PTE; |
66 | } | 66 | } |
67 | 67 | ||
68 | int arch_report_meminfo(char *page) | 68 | void arch_report_meminfo(struct seq_file *m) |
69 | { | 69 | { |
70 | int n = sprintf(page, "DirectMap4k: %8lu kB\n", | 70 | seq_printf(m, "DirectMap4k: %8lu kB\n", |
71 | direct_pages_count[PG_LEVEL_4K] << 2); | 71 | direct_pages_count[PG_LEVEL_4K] << 2); |
72 | #if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE) | 72 | #if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE) |
73 | n += sprintf(page + n, "DirectMap2M: %8lu kB\n", | 73 | seq_printf(m, "DirectMap2M: %8lu kB\n", |
74 | direct_pages_count[PG_LEVEL_2M] << 11); | 74 | direct_pages_count[PG_LEVEL_2M] << 11); |
75 | #else | 75 | #else |
76 | n += sprintf(page + n, "DirectMap4M: %8lu kB\n", | 76 | seq_printf(m, "DirectMap4M: %8lu kB\n", |
77 | direct_pages_count[PG_LEVEL_2M] << 12); | 77 | direct_pages_count[PG_LEVEL_2M] << 12); |
78 | #endif | 78 | #endif |
79 | #ifdef CONFIG_X86_64 | 79 | #ifdef CONFIG_X86_64 |
80 | if (direct_gbpages) | 80 | if (direct_gbpages) |
81 | n += sprintf(page + n, "DirectMap1G: %8lu kB\n", | 81 | seq_printf(m, "DirectMap1G: %8lu kB\n", |
82 | direct_pages_count[PG_LEVEL_1G] << 20); | 82 | direct_pages_count[PG_LEVEL_1G] << 20); |
83 | #endif | 83 | #endif |
84 | return n; | ||
85 | } | 84 | } |
86 | #else | 85 | #else |
87 | static inline void split_page_count(int level) { } | 86 | static inline void split_page_count(int level) { } |
diff --git a/arch/x86/oprofile/backtrace.c b/arch/x86/oprofile/backtrace.c index e2095cba409f..04df67f8a7ba 100644 --- a/arch/x86/oprofile/backtrace.c +++ b/arch/x86/oprofile/backtrace.c | |||
@@ -52,8 +52,7 @@ struct frame_head { | |||
52 | unsigned long ret; | 52 | unsigned long ret; |
53 | } __attribute__((packed)); | 53 | } __attribute__((packed)); |
54 | 54 | ||
55 | static struct frame_head * | 55 | static struct frame_head *dump_user_backtrace(struct frame_head *head) |
56 | dump_user_backtrace(struct frame_head * head) | ||
57 | { | 56 | { |
58 | struct frame_head bufhead[2]; | 57 | struct frame_head bufhead[2]; |
59 | 58 | ||
diff --git a/arch/x86/oprofile/nmi_int.c b/arch/x86/oprofile/nmi_int.c index 57f6c9088081..022cd41ea9b4 100644 --- a/arch/x86/oprofile/nmi_int.c +++ b/arch/x86/oprofile/nmi_int.c | |||
@@ -28,85 +28,9 @@ static struct op_x86_model_spec const *model; | |||
28 | static DEFINE_PER_CPU(struct op_msrs, cpu_msrs); | 28 | static DEFINE_PER_CPU(struct op_msrs, cpu_msrs); |
29 | static DEFINE_PER_CPU(unsigned long, saved_lvtpc); | 29 | static DEFINE_PER_CPU(unsigned long, saved_lvtpc); |
30 | 30 | ||
31 | static int nmi_start(void); | ||
32 | static void nmi_stop(void); | ||
33 | static void nmi_cpu_start(void *dummy); | ||
34 | static void nmi_cpu_stop(void *dummy); | ||
35 | |||
36 | /* 0 == registered but off, 1 == registered and on */ | 31 | /* 0 == registered but off, 1 == registered and on */ |
37 | static int nmi_enabled = 0; | 32 | static int nmi_enabled = 0; |
38 | 33 | ||
39 | #ifdef CONFIG_SMP | ||
40 | static int oprofile_cpu_notifier(struct notifier_block *b, unsigned long action, | ||
41 | void *data) | ||
42 | { | ||
43 | int cpu = (unsigned long)data; | ||
44 | switch (action) { | ||
45 | case CPU_DOWN_FAILED: | ||
46 | case CPU_ONLINE: | ||
47 | smp_call_function_single(cpu, nmi_cpu_start, NULL, 0); | ||
48 | break; | ||
49 | case CPU_DOWN_PREPARE: | ||
50 | smp_call_function_single(cpu, nmi_cpu_stop, NULL, 1); | ||
51 | break; | ||
52 | } | ||
53 | return NOTIFY_DONE; | ||
54 | } | ||
55 | |||
56 | static struct notifier_block oprofile_cpu_nb = { | ||
57 | .notifier_call = oprofile_cpu_notifier | ||
58 | }; | ||
59 | #endif | ||
60 | |||
61 | #ifdef CONFIG_PM | ||
62 | |||
63 | static int nmi_suspend(struct sys_device *dev, pm_message_t state) | ||
64 | { | ||
65 | /* Only one CPU left, just stop that one */ | ||
66 | if (nmi_enabled == 1) | ||
67 | nmi_cpu_stop(NULL); | ||
68 | return 0; | ||
69 | } | ||
70 | |||
71 | static int nmi_resume(struct sys_device *dev) | ||
72 | { | ||
73 | if (nmi_enabled == 1) | ||
74 | nmi_cpu_start(NULL); | ||
75 | return 0; | ||
76 | } | ||
77 | |||
78 | static struct sysdev_class oprofile_sysclass = { | ||
79 | .name = "oprofile", | ||
80 | .resume = nmi_resume, | ||
81 | .suspend = nmi_suspend, | ||
82 | }; | ||
83 | |||
84 | static struct sys_device device_oprofile = { | ||
85 | .id = 0, | ||
86 | .cls = &oprofile_sysclass, | ||
87 | }; | ||
88 | |||
89 | static int __init init_sysfs(void) | ||
90 | { | ||
91 | int error; | ||
92 | |||
93 | error = sysdev_class_register(&oprofile_sysclass); | ||
94 | if (!error) | ||
95 | error = sysdev_register(&device_oprofile); | ||
96 | return error; | ||
97 | } | ||
98 | |||
99 | static void exit_sysfs(void) | ||
100 | { | ||
101 | sysdev_unregister(&device_oprofile); | ||
102 | sysdev_class_unregister(&oprofile_sysclass); | ||
103 | } | ||
104 | |||
105 | #else | ||
106 | #define init_sysfs() do { } while (0) | ||
107 | #define exit_sysfs() do { } while (0) | ||
108 | #endif /* CONFIG_PM */ | ||
109 | |||
110 | static int profile_exceptions_notify(struct notifier_block *self, | 34 | static int profile_exceptions_notify(struct notifier_block *self, |
111 | unsigned long val, void *data) | 35 | unsigned long val, void *data) |
112 | { | 36 | { |
@@ -361,6 +285,77 @@ static int nmi_create_files(struct super_block *sb, struct dentry *root) | |||
361 | return 0; | 285 | return 0; |
362 | } | 286 | } |
363 | 287 | ||
288 | #ifdef CONFIG_SMP | ||
289 | static int oprofile_cpu_notifier(struct notifier_block *b, unsigned long action, | ||
290 | void *data) | ||
291 | { | ||
292 | int cpu = (unsigned long)data; | ||
293 | switch (action) { | ||
294 | case CPU_DOWN_FAILED: | ||
295 | case CPU_ONLINE: | ||
296 | smp_call_function_single(cpu, nmi_cpu_start, NULL, 0); | ||
297 | break; | ||
298 | case CPU_DOWN_PREPARE: | ||
299 | smp_call_function_single(cpu, nmi_cpu_stop, NULL, 1); | ||
300 | break; | ||
301 | } | ||
302 | return NOTIFY_DONE; | ||
303 | } | ||
304 | |||
305 | static struct notifier_block oprofile_cpu_nb = { | ||
306 | .notifier_call = oprofile_cpu_notifier | ||
307 | }; | ||
308 | #endif | ||
309 | |||
310 | #ifdef CONFIG_PM | ||
311 | |||
312 | static int nmi_suspend(struct sys_device *dev, pm_message_t state) | ||
313 | { | ||
314 | /* Only one CPU left, just stop that one */ | ||
315 | if (nmi_enabled == 1) | ||
316 | nmi_cpu_stop(NULL); | ||
317 | return 0; | ||
318 | } | ||
319 | |||
320 | static int nmi_resume(struct sys_device *dev) | ||
321 | { | ||
322 | if (nmi_enabled == 1) | ||
323 | nmi_cpu_start(NULL); | ||
324 | return 0; | ||
325 | } | ||
326 | |||
327 | static struct sysdev_class oprofile_sysclass = { | ||
328 | .name = "oprofile", | ||
329 | .resume = nmi_resume, | ||
330 | .suspend = nmi_suspend, | ||
331 | }; | ||
332 | |||
333 | static struct sys_device device_oprofile = { | ||
334 | .id = 0, | ||
335 | .cls = &oprofile_sysclass, | ||
336 | }; | ||
337 | |||
338 | static int __init init_sysfs(void) | ||
339 | { | ||
340 | int error; | ||
341 | |||
342 | error = sysdev_class_register(&oprofile_sysclass); | ||
343 | if (!error) | ||
344 | error = sysdev_register(&device_oprofile); | ||
345 | return error; | ||
346 | } | ||
347 | |||
348 | static void exit_sysfs(void) | ||
349 | { | ||
350 | sysdev_unregister(&device_oprofile); | ||
351 | sysdev_class_unregister(&oprofile_sysclass); | ||
352 | } | ||
353 | |||
354 | #else | ||
355 | #define init_sysfs() do { } while (0) | ||
356 | #define exit_sysfs() do { } while (0) | ||
357 | #endif /* CONFIG_PM */ | ||
358 | |||
364 | static int p4force; | 359 | static int p4force; |
365 | module_param(p4force, int, 0); | 360 | module_param(p4force, int, 0); |
366 | 361 | ||
@@ -420,9 +415,6 @@ static int __init ppro_init(char **cpu_type) | |||
420 | case 15: case 23: | 415 | case 15: case 23: |
421 | *cpu_type = "i386/core_2"; | 416 | *cpu_type = "i386/core_2"; |
422 | break; | 417 | break; |
423 | case 26: | ||
424 | *cpu_type = "i386/core_2"; | ||
425 | break; | ||
426 | default: | 418 | default: |
427 | /* Unknown */ | 419 | /* Unknown */ |
428 | return 0; | 420 | return 0; |
@@ -432,6 +424,16 @@ static int __init ppro_init(char **cpu_type) | |||
432 | return 1; | 424 | return 1; |
433 | } | 425 | } |
434 | 426 | ||
427 | static int __init arch_perfmon_init(char **cpu_type) | ||
428 | { | ||
429 | if (!cpu_has_arch_perfmon) | ||
430 | return 0; | ||
431 | *cpu_type = "i386/arch_perfmon"; | ||
432 | model = &op_arch_perfmon_spec; | ||
433 | arch_perfmon_setup_counters(); | ||
434 | return 1; | ||
435 | } | ||
436 | |||
435 | /* in order to get sysfs right */ | 437 | /* in order to get sysfs right */ |
436 | static int using_nmi; | 438 | static int using_nmi; |
437 | 439 | ||
@@ -439,7 +441,7 @@ int __init op_nmi_init(struct oprofile_operations *ops) | |||
439 | { | 441 | { |
440 | __u8 vendor = boot_cpu_data.x86_vendor; | 442 | __u8 vendor = boot_cpu_data.x86_vendor; |
441 | __u8 family = boot_cpu_data.x86; | 443 | __u8 family = boot_cpu_data.x86; |
442 | char *cpu_type; | 444 | char *cpu_type = NULL; |
443 | int ret = 0; | 445 | int ret = 0; |
444 | 446 | ||
445 | if (!cpu_has_apic) | 447 | if (!cpu_has_apic) |
@@ -477,19 +479,20 @@ int __init op_nmi_init(struct oprofile_operations *ops) | |||
477 | switch (family) { | 479 | switch (family) { |
478 | /* Pentium IV */ | 480 | /* Pentium IV */ |
479 | case 0xf: | 481 | case 0xf: |
480 | if (!p4_init(&cpu_type)) | 482 | p4_init(&cpu_type); |
481 | return -ENODEV; | ||
482 | break; | 483 | break; |
483 | 484 | ||
484 | /* A P6-class processor */ | 485 | /* A P6-class processor */ |
485 | case 6: | 486 | case 6: |
486 | if (!ppro_init(&cpu_type)) | 487 | ppro_init(&cpu_type); |
487 | return -ENODEV; | ||
488 | break; | 488 | break; |
489 | 489 | ||
490 | default: | 490 | default: |
491 | return -ENODEV; | 491 | break; |
492 | } | 492 | } |
493 | |||
494 | if (!cpu_type && !arch_perfmon_init(&cpu_type)) | ||
495 | return -ENODEV; | ||
493 | break; | 496 | break; |
494 | 497 | ||
495 | default: | 498 | default: |
diff --git a/arch/x86/oprofile/op_counter.h b/arch/x86/oprofile/op_counter.h index 2880b15c4675..91b6a116165e 100644 --- a/arch/x86/oprofile/op_counter.h +++ b/arch/x86/oprofile/op_counter.h | |||
@@ -6,22 +6,22 @@ | |||
6 | * | 6 | * |
7 | * @author John Levon | 7 | * @author John Levon |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #ifndef OP_COUNTER_H | 10 | #ifndef OP_COUNTER_H |
11 | #define OP_COUNTER_H | 11 | #define OP_COUNTER_H |
12 | 12 | ||
13 | #define OP_MAX_COUNTER 8 | 13 | #define OP_MAX_COUNTER 8 |
14 | 14 | ||
15 | /* Per-perfctr configuration as set via | 15 | /* Per-perfctr configuration as set via |
16 | * oprofilefs. | 16 | * oprofilefs. |
17 | */ | 17 | */ |
18 | struct op_counter_config { | 18 | struct op_counter_config { |
19 | unsigned long count; | 19 | unsigned long count; |
20 | unsigned long enabled; | 20 | unsigned long enabled; |
21 | unsigned long event; | 21 | unsigned long event; |
22 | unsigned long kernel; | 22 | unsigned long kernel; |
23 | unsigned long user; | 23 | unsigned long user; |
24 | unsigned long unit_mask; | 24 | unsigned long unit_mask; |
25 | }; | 25 | }; |
26 | 26 | ||
27 | extern struct op_counter_config counter_config[]; | 27 | extern struct op_counter_config counter_config[]; |
diff --git a/arch/x86/oprofile/op_model_amd.c b/arch/x86/oprofile/op_model_amd.c index d9faf607b3a6..509513760a6e 100644 --- a/arch/x86/oprofile/op_model_amd.c +++ b/arch/x86/oprofile/op_model_amd.c | |||
@@ -67,8 +67,9 @@ static unsigned long reset_value[NUM_COUNTERS]; | |||
67 | 67 | ||
68 | /* The function interface needs to be fixed, something like add | 68 | /* The function interface needs to be fixed, something like add |
69 | data. Should then be added to linux/oprofile.h. */ | 69 | data. Should then be added to linux/oprofile.h. */ |
70 | extern void oprofile_add_ibs_sample(struct pt_regs *const regs, | 70 | extern void |
71 | unsigned int * const ibs_sample, u8 code); | 71 | oprofile_add_ibs_sample(struct pt_regs *const regs, |
72 | unsigned int *const ibs_sample, int ibs_code); | ||
72 | 73 | ||
73 | struct ibs_fetch_sample { | 74 | struct ibs_fetch_sample { |
74 | /* MSRC001_1031 IBS Fetch Linear Address Register */ | 75 | /* MSRC001_1031 IBS Fetch Linear Address Register */ |
@@ -309,12 +310,15 @@ static void op_amd_start(struct op_msrs const * const msrs) | |||
309 | #ifdef CONFIG_OPROFILE_IBS | 310 | #ifdef CONFIG_OPROFILE_IBS |
310 | if (ibs_allowed && ibs_config.fetch_enabled) { | 311 | if (ibs_allowed && ibs_config.fetch_enabled) { |
311 | low = (ibs_config.max_cnt_fetch >> 4) & 0xFFFF; | 312 | low = (ibs_config.max_cnt_fetch >> 4) & 0xFFFF; |
312 | high = IBS_FETCH_HIGH_ENABLE; | 313 | high = ((ibs_config.rand_en & 0x1) << 25) /* bit 57 */ |
314 | + IBS_FETCH_HIGH_ENABLE; | ||
313 | wrmsr(MSR_AMD64_IBSFETCHCTL, low, high); | 315 | wrmsr(MSR_AMD64_IBSFETCHCTL, low, high); |
314 | } | 316 | } |
315 | 317 | ||
316 | if (ibs_allowed && ibs_config.op_enabled) { | 318 | if (ibs_allowed && ibs_config.op_enabled) { |
317 | low = ((ibs_config.max_cnt_op >> 4) & 0xFFFF) + IBS_OP_LOW_ENABLE; | 319 | low = ((ibs_config.max_cnt_op >> 4) & 0xFFFF) |
320 | + ((ibs_config.dispatched_ops & 0x1) << 19) /* bit 19 */ | ||
321 | + IBS_OP_LOW_ENABLE; | ||
318 | high = 0; | 322 | high = 0; |
319 | wrmsr(MSR_AMD64_IBSOPCTL, low, high); | 323 | wrmsr(MSR_AMD64_IBSOPCTL, low, high); |
320 | } | 324 | } |
@@ -468,11 +472,10 @@ static void clear_ibs_nmi(void) | |||
468 | on_each_cpu(apic_clear_ibs_nmi_per_cpu, NULL, 1); | 472 | on_each_cpu(apic_clear_ibs_nmi_per_cpu, NULL, 1); |
469 | } | 473 | } |
470 | 474 | ||
471 | static int (*create_arch_files)(struct super_block * sb, struct dentry * root); | 475 | static int (*create_arch_files)(struct super_block *sb, struct dentry *root); |
472 | 476 | ||
473 | static int setup_ibs_files(struct super_block * sb, struct dentry * root) | 477 | static int setup_ibs_files(struct super_block *sb, struct dentry *root) |
474 | { | 478 | { |
475 | char buf[12]; | ||
476 | struct dentry *dir; | 479 | struct dentry *dir; |
477 | int ret = 0; | 480 | int ret = 0; |
478 | 481 | ||
@@ -494,22 +497,22 @@ static int setup_ibs_files(struct super_block * sb, struct dentry * root) | |||
494 | ibs_config.max_cnt_op = 250000; | 497 | ibs_config.max_cnt_op = 250000; |
495 | ibs_config.op_enabled = 0; | 498 | ibs_config.op_enabled = 0; |
496 | ibs_config.dispatched_ops = 1; | 499 | ibs_config.dispatched_ops = 1; |
497 | snprintf(buf, sizeof(buf), "ibs_fetch"); | 500 | |
498 | dir = oprofilefs_mkdir(sb, root, buf); | 501 | dir = oprofilefs_mkdir(sb, root, "ibs_fetch"); |
499 | oprofilefs_create_ulong(sb, dir, "rand_enable", | ||
500 | &ibs_config.rand_en); | ||
501 | oprofilefs_create_ulong(sb, dir, "enable", | 502 | oprofilefs_create_ulong(sb, dir, "enable", |
502 | &ibs_config.fetch_enabled); | 503 | &ibs_config.fetch_enabled); |
503 | oprofilefs_create_ulong(sb, dir, "max_count", | 504 | oprofilefs_create_ulong(sb, dir, "max_count", |
504 | &ibs_config.max_cnt_fetch); | 505 | &ibs_config.max_cnt_fetch); |
505 | snprintf(buf, sizeof(buf), "ibs_uops"); | 506 | oprofilefs_create_ulong(sb, dir, "rand_enable", |
506 | dir = oprofilefs_mkdir(sb, root, buf); | 507 | &ibs_config.rand_en); |
508 | |||
509 | dir = oprofilefs_mkdir(sb, root, "ibs_op"); | ||
507 | oprofilefs_create_ulong(sb, dir, "enable", | 510 | oprofilefs_create_ulong(sb, dir, "enable", |
508 | &ibs_config.op_enabled); | 511 | &ibs_config.op_enabled); |
509 | oprofilefs_create_ulong(sb, dir, "max_count", | 512 | oprofilefs_create_ulong(sb, dir, "max_count", |
510 | &ibs_config.max_cnt_op); | 513 | &ibs_config.max_cnt_op); |
511 | oprofilefs_create_ulong(sb, dir, "dispatched_ops", | 514 | oprofilefs_create_ulong(sb, dir, "dispatched_ops", |
512 | &ibs_config.dispatched_ops); | 515 | &ibs_config.dispatched_ops); |
513 | 516 | ||
514 | return 0; | 517 | return 0; |
515 | } | 518 | } |
@@ -530,14 +533,14 @@ static void op_amd_exit(void) | |||
530 | #endif | 533 | #endif |
531 | 534 | ||
532 | struct op_x86_model_spec const op_amd_spec = { | 535 | struct op_x86_model_spec const op_amd_spec = { |
533 | .init = op_amd_init, | 536 | .init = op_amd_init, |
534 | .exit = op_amd_exit, | 537 | .exit = op_amd_exit, |
535 | .num_counters = NUM_COUNTERS, | 538 | .num_counters = NUM_COUNTERS, |
536 | .num_controls = NUM_CONTROLS, | 539 | .num_controls = NUM_CONTROLS, |
537 | .fill_in_addresses = &op_amd_fill_in_addresses, | 540 | .fill_in_addresses = &op_amd_fill_in_addresses, |
538 | .setup_ctrs = &op_amd_setup_ctrs, | 541 | .setup_ctrs = &op_amd_setup_ctrs, |
539 | .check_ctrs = &op_amd_check_ctrs, | 542 | .check_ctrs = &op_amd_check_ctrs, |
540 | .start = &op_amd_start, | 543 | .start = &op_amd_start, |
541 | .stop = &op_amd_stop, | 544 | .stop = &op_amd_stop, |
542 | .shutdown = &op_amd_shutdown | 545 | .shutdown = &op_amd_shutdown |
543 | }; | 546 | }; |
diff --git a/arch/x86/oprofile/op_model_p4.c b/arch/x86/oprofile/op_model_p4.c index 43ac5af338d8..4c4a51c90bc2 100644 --- a/arch/x86/oprofile/op_model_p4.c +++ b/arch/x86/oprofile/op_model_p4.c | |||
@@ -698,24 +698,24 @@ static void p4_shutdown(struct op_msrs const * const msrs) | |||
698 | 698 | ||
699 | #ifdef CONFIG_SMP | 699 | #ifdef CONFIG_SMP |
700 | struct op_x86_model_spec const op_p4_ht2_spec = { | 700 | struct op_x86_model_spec const op_p4_ht2_spec = { |
701 | .num_counters = NUM_COUNTERS_HT2, | 701 | .num_counters = NUM_COUNTERS_HT2, |
702 | .num_controls = NUM_CONTROLS_HT2, | 702 | .num_controls = NUM_CONTROLS_HT2, |
703 | .fill_in_addresses = &p4_fill_in_addresses, | 703 | .fill_in_addresses = &p4_fill_in_addresses, |
704 | .setup_ctrs = &p4_setup_ctrs, | 704 | .setup_ctrs = &p4_setup_ctrs, |
705 | .check_ctrs = &p4_check_ctrs, | 705 | .check_ctrs = &p4_check_ctrs, |
706 | .start = &p4_start, | 706 | .start = &p4_start, |
707 | .stop = &p4_stop, | 707 | .stop = &p4_stop, |
708 | .shutdown = &p4_shutdown | 708 | .shutdown = &p4_shutdown |
709 | }; | 709 | }; |
710 | #endif | 710 | #endif |
711 | 711 | ||
712 | struct op_x86_model_spec const op_p4_spec = { | 712 | struct op_x86_model_spec const op_p4_spec = { |
713 | .num_counters = NUM_COUNTERS_NON_HT, | 713 | .num_counters = NUM_COUNTERS_NON_HT, |
714 | .num_controls = NUM_CONTROLS_NON_HT, | 714 | .num_controls = NUM_CONTROLS_NON_HT, |
715 | .fill_in_addresses = &p4_fill_in_addresses, | 715 | .fill_in_addresses = &p4_fill_in_addresses, |
716 | .setup_ctrs = &p4_setup_ctrs, | 716 | .setup_ctrs = &p4_setup_ctrs, |
717 | .check_ctrs = &p4_check_ctrs, | 717 | .check_ctrs = &p4_check_ctrs, |
718 | .start = &p4_start, | 718 | .start = &p4_start, |
719 | .stop = &p4_stop, | 719 | .stop = &p4_stop, |
720 | .shutdown = &p4_shutdown | 720 | .shutdown = &p4_shutdown |
721 | }; | 721 | }; |
diff --git a/arch/x86/oprofile/op_model_ppro.c b/arch/x86/oprofile/op_model_ppro.c index eff431f6c57b..0620d6d45f7d 100644 --- a/arch/x86/oprofile/op_model_ppro.c +++ b/arch/x86/oprofile/op_model_ppro.c | |||
@@ -1,32 +1,34 @@ | |||
1 | /* | 1 | /* |
2 | * @file op_model_ppro.h | 2 | * @file op_model_ppro.h |
3 | * pentium pro / P6 model-specific MSR operations | 3 | * Family 6 perfmon and architectural perfmon MSR operations |
4 | * | 4 | * |
5 | * @remark Copyright 2002 OProfile authors | 5 | * @remark Copyright 2002 OProfile authors |
6 | * @remark Copyright 2008 Intel Corporation | ||
6 | * @remark Read the file COPYING | 7 | * @remark Read the file COPYING |
7 | * | 8 | * |
8 | * @author John Levon | 9 | * @author John Levon |
9 | * @author Philippe Elie | 10 | * @author Philippe Elie |
10 | * @author Graydon Hoare | 11 | * @author Graydon Hoare |
12 | * @author Andi Kleen | ||
11 | */ | 13 | */ |
12 | 14 | ||
13 | #include <linux/oprofile.h> | 15 | #include <linux/oprofile.h> |
16 | #include <linux/slab.h> | ||
14 | #include <asm/ptrace.h> | 17 | #include <asm/ptrace.h> |
15 | #include <asm/msr.h> | 18 | #include <asm/msr.h> |
16 | #include <asm/apic.h> | 19 | #include <asm/apic.h> |
17 | #include <asm/nmi.h> | 20 | #include <asm/nmi.h> |
21 | #include <asm/intel_arch_perfmon.h> | ||
18 | 22 | ||
19 | #include "op_x86_model.h" | 23 | #include "op_x86_model.h" |
20 | #include "op_counter.h" | 24 | #include "op_counter.h" |
21 | 25 | ||
22 | #define NUM_COUNTERS 2 | 26 | static int num_counters = 2; |
23 | #define NUM_CONTROLS 2 | 27 | static int counter_width = 32; |
24 | 28 | ||
25 | #define CTR_IS_RESERVED(msrs, c) (msrs->counters[(c)].addr ? 1 : 0) | 29 | #define CTR_IS_RESERVED(msrs, c) (msrs->counters[(c)].addr ? 1 : 0) |
26 | #define CTR_READ(l, h, msrs, c) do {rdmsr(msrs->counters[(c)].addr, (l), (h)); } while (0) | 30 | #define CTR_READ(l, h, msrs, c) do {rdmsr(msrs->counters[(c)].addr, (l), (h)); } while (0) |
27 | #define CTR_32BIT_WRITE(l, msrs, c) \ | 31 | #define CTR_OVERFLOWED(n) (!((n) & (1U<<(counter_width-1)))) |
28 | do {wrmsr(msrs->counters[(c)].addr, -(u32)(l), 0); } while (0) | ||
29 | #define CTR_OVERFLOWED(n) (!((n) & (1U<<31))) | ||
30 | 32 | ||
31 | #define CTRL_IS_RESERVED(msrs, c) (msrs->controls[(c)].addr ? 1 : 0) | 33 | #define CTRL_IS_RESERVED(msrs, c) (msrs->controls[(c)].addr ? 1 : 0) |
32 | #define CTRL_READ(l, h, msrs, c) do {rdmsr((msrs->controls[(c)].addr), (l), (h)); } while (0) | 34 | #define CTRL_READ(l, h, msrs, c) do {rdmsr((msrs->controls[(c)].addr), (l), (h)); } while (0) |
@@ -40,20 +42,20 @@ | |||
40 | #define CTRL_SET_UM(val, m) (val |= (m << 8)) | 42 | #define CTRL_SET_UM(val, m) (val |= (m << 8)) |
41 | #define CTRL_SET_EVENT(val, e) (val |= e) | 43 | #define CTRL_SET_EVENT(val, e) (val |= e) |
42 | 44 | ||
43 | static unsigned long reset_value[NUM_COUNTERS]; | 45 | static u64 *reset_value; |
44 | 46 | ||
45 | static void ppro_fill_in_addresses(struct op_msrs * const msrs) | 47 | static void ppro_fill_in_addresses(struct op_msrs * const msrs) |
46 | { | 48 | { |
47 | int i; | 49 | int i; |
48 | 50 | ||
49 | for (i = 0; i < NUM_COUNTERS; i++) { | 51 | for (i = 0; i < num_counters; i++) { |
50 | if (reserve_perfctr_nmi(MSR_P6_PERFCTR0 + i)) | 52 | if (reserve_perfctr_nmi(MSR_P6_PERFCTR0 + i)) |
51 | msrs->counters[i].addr = MSR_P6_PERFCTR0 + i; | 53 | msrs->counters[i].addr = MSR_P6_PERFCTR0 + i; |
52 | else | 54 | else |
53 | msrs->counters[i].addr = 0; | 55 | msrs->counters[i].addr = 0; |
54 | } | 56 | } |
55 | 57 | ||
56 | for (i = 0; i < NUM_CONTROLS; i++) { | 58 | for (i = 0; i < num_counters; i++) { |
57 | if (reserve_evntsel_nmi(MSR_P6_EVNTSEL0 + i)) | 59 | if (reserve_evntsel_nmi(MSR_P6_EVNTSEL0 + i)) |
58 | msrs->controls[i].addr = MSR_P6_EVNTSEL0 + i; | 60 | msrs->controls[i].addr = MSR_P6_EVNTSEL0 + i; |
59 | else | 61 | else |
@@ -67,8 +69,22 @@ static void ppro_setup_ctrs(struct op_msrs const * const msrs) | |||
67 | unsigned int low, high; | 69 | unsigned int low, high; |
68 | int i; | 70 | int i; |
69 | 71 | ||
72 | if (!reset_value) { | ||
73 | reset_value = kmalloc(sizeof(unsigned) * num_counters, | ||
74 | GFP_ATOMIC); | ||
75 | if (!reset_value) | ||
76 | return; | ||
77 | } | ||
78 | |||
79 | if (cpu_has_arch_perfmon) { | ||
80 | union cpuid10_eax eax; | ||
81 | eax.full = cpuid_eax(0xa); | ||
82 | if (counter_width < eax.split.bit_width) | ||
83 | counter_width = eax.split.bit_width; | ||
84 | } | ||
85 | |||
70 | /* clear all counters */ | 86 | /* clear all counters */ |
71 | for (i = 0 ; i < NUM_CONTROLS; ++i) { | 87 | for (i = 0 ; i < num_counters; ++i) { |
72 | if (unlikely(!CTRL_IS_RESERVED(msrs, i))) | 88 | if (unlikely(!CTRL_IS_RESERVED(msrs, i))) |
73 | continue; | 89 | continue; |
74 | CTRL_READ(low, high, msrs, i); | 90 | CTRL_READ(low, high, msrs, i); |
@@ -77,18 +93,18 @@ static void ppro_setup_ctrs(struct op_msrs const * const msrs) | |||
77 | } | 93 | } |
78 | 94 | ||
79 | /* avoid a false detection of ctr overflows in NMI handler */ | 95 | /* avoid a false detection of ctr overflows in NMI handler */ |
80 | for (i = 0; i < NUM_COUNTERS; ++i) { | 96 | for (i = 0; i < num_counters; ++i) { |
81 | if (unlikely(!CTR_IS_RESERVED(msrs, i))) | 97 | if (unlikely(!CTR_IS_RESERVED(msrs, i))) |
82 | continue; | 98 | continue; |
83 | CTR_32BIT_WRITE(1, msrs, i); | 99 | wrmsrl(msrs->counters[i].addr, -1LL); |
84 | } | 100 | } |
85 | 101 | ||
86 | /* enable active counters */ | 102 | /* enable active counters */ |
87 | for (i = 0; i < NUM_COUNTERS; ++i) { | 103 | for (i = 0; i < num_counters; ++i) { |
88 | if ((counter_config[i].enabled) && (CTR_IS_RESERVED(msrs, i))) { | 104 | if ((counter_config[i].enabled) && (CTR_IS_RESERVED(msrs, i))) { |
89 | reset_value[i] = counter_config[i].count; | 105 | reset_value[i] = counter_config[i].count; |
90 | 106 | ||
91 | CTR_32BIT_WRITE(counter_config[i].count, msrs, i); | 107 | wrmsrl(msrs->counters[i].addr, -reset_value[i]); |
92 | 108 | ||
93 | CTRL_READ(low, high, msrs, i); | 109 | CTRL_READ(low, high, msrs, i); |
94 | CTRL_CLEAR(low); | 110 | CTRL_CLEAR(low); |
@@ -111,13 +127,13 @@ static int ppro_check_ctrs(struct pt_regs * const regs, | |||
111 | unsigned int low, high; | 127 | unsigned int low, high; |
112 | int i; | 128 | int i; |
113 | 129 | ||
114 | for (i = 0 ; i < NUM_COUNTERS; ++i) { | 130 | for (i = 0 ; i < num_counters; ++i) { |
115 | if (!reset_value[i]) | 131 | if (!reset_value[i]) |
116 | continue; | 132 | continue; |
117 | CTR_READ(low, high, msrs, i); | 133 | CTR_READ(low, high, msrs, i); |
118 | if (CTR_OVERFLOWED(low)) { | 134 | if (CTR_OVERFLOWED(low)) { |
119 | oprofile_add_sample(regs, i); | 135 | oprofile_add_sample(regs, i); |
120 | CTR_32BIT_WRITE(reset_value[i], msrs, i); | 136 | wrmsrl(msrs->counters[i].addr, -reset_value[i]); |
121 | } | 137 | } |
122 | } | 138 | } |
123 | 139 | ||
@@ -141,7 +157,7 @@ static void ppro_start(struct op_msrs const * const msrs) | |||
141 | unsigned int low, high; | 157 | unsigned int low, high; |
142 | int i; | 158 | int i; |
143 | 159 | ||
144 | for (i = 0; i < NUM_COUNTERS; ++i) { | 160 | for (i = 0; i < num_counters; ++i) { |
145 | if (reset_value[i]) { | 161 | if (reset_value[i]) { |
146 | CTRL_READ(low, high, msrs, i); | 162 | CTRL_READ(low, high, msrs, i); |
147 | CTRL_SET_ACTIVE(low); | 163 | CTRL_SET_ACTIVE(low); |
@@ -156,7 +172,7 @@ static void ppro_stop(struct op_msrs const * const msrs) | |||
156 | unsigned int low, high; | 172 | unsigned int low, high; |
157 | int i; | 173 | int i; |
158 | 174 | ||
159 | for (i = 0; i < NUM_COUNTERS; ++i) { | 175 | for (i = 0; i < num_counters; ++i) { |
160 | if (!reset_value[i]) | 176 | if (!reset_value[i]) |
161 | continue; | 177 | continue; |
162 | CTRL_READ(low, high, msrs, i); | 178 | CTRL_READ(low, high, msrs, i); |
@@ -169,24 +185,70 @@ static void ppro_shutdown(struct op_msrs const * const msrs) | |||
169 | { | 185 | { |
170 | int i; | 186 | int i; |
171 | 187 | ||
172 | for (i = 0 ; i < NUM_COUNTERS ; ++i) { | 188 | for (i = 0 ; i < num_counters ; ++i) { |
173 | if (CTR_IS_RESERVED(msrs, i)) | 189 | if (CTR_IS_RESERVED(msrs, i)) |
174 | release_perfctr_nmi(MSR_P6_PERFCTR0 + i); | 190 | release_perfctr_nmi(MSR_P6_PERFCTR0 + i); |
175 | } | 191 | } |
176 | for (i = 0 ; i < NUM_CONTROLS ; ++i) { | 192 | for (i = 0 ; i < num_counters ; ++i) { |
177 | if (CTRL_IS_RESERVED(msrs, i)) | 193 | if (CTRL_IS_RESERVED(msrs, i)) |
178 | release_evntsel_nmi(MSR_P6_EVNTSEL0 + i); | 194 | release_evntsel_nmi(MSR_P6_EVNTSEL0 + i); |
179 | } | 195 | } |
196 | if (reset_value) { | ||
197 | kfree(reset_value); | ||
198 | reset_value = NULL; | ||
199 | } | ||
180 | } | 200 | } |
181 | 201 | ||
182 | 202 | ||
183 | struct op_x86_model_spec const op_ppro_spec = { | 203 | struct op_x86_model_spec op_ppro_spec = { |
184 | .num_counters = NUM_COUNTERS, | 204 | .num_counters = 2, /* can be overriden */ |
185 | .num_controls = NUM_CONTROLS, | 205 | .num_controls = 2, /* dito */ |
186 | .fill_in_addresses = &ppro_fill_in_addresses, | 206 | .fill_in_addresses = &ppro_fill_in_addresses, |
187 | .setup_ctrs = &ppro_setup_ctrs, | 207 | .setup_ctrs = &ppro_setup_ctrs, |
188 | .check_ctrs = &ppro_check_ctrs, | 208 | .check_ctrs = &ppro_check_ctrs, |
189 | .start = &ppro_start, | 209 | .start = &ppro_start, |
190 | .stop = &ppro_stop, | 210 | .stop = &ppro_stop, |
191 | .shutdown = &ppro_shutdown | 211 | .shutdown = &ppro_shutdown |
212 | }; | ||
213 | |||
214 | /* | ||
215 | * Architectural performance monitoring. | ||
216 | * | ||
217 | * Newer Intel CPUs (Core1+) have support for architectural | ||
218 | * events described in CPUID 0xA. See the IA32 SDM Vol3b.18 for details. | ||
219 | * The advantage of this is that it can be done without knowing about | ||
220 | * the specific CPU. | ||
221 | */ | ||
222 | |||
223 | void arch_perfmon_setup_counters(void) | ||
224 | { | ||
225 | union cpuid10_eax eax; | ||
226 | |||
227 | eax.full = cpuid_eax(0xa); | ||
228 | |||
229 | /* Workaround for BIOS bugs in 6/15. Taken from perfmon2 */ | ||
230 | if (eax.split.version_id == 0 && current_cpu_data.x86 == 6 && | ||
231 | current_cpu_data.x86_model == 15) { | ||
232 | eax.split.version_id = 2; | ||
233 | eax.split.num_counters = 2; | ||
234 | eax.split.bit_width = 40; | ||
235 | } | ||
236 | |||
237 | num_counters = eax.split.num_counters; | ||
238 | |||
239 | op_arch_perfmon_spec.num_counters = num_counters; | ||
240 | op_arch_perfmon_spec.num_controls = num_counters; | ||
241 | op_ppro_spec.num_counters = num_counters; | ||
242 | op_ppro_spec.num_controls = num_counters; | ||
243 | } | ||
244 | |||
245 | struct op_x86_model_spec op_arch_perfmon_spec = { | ||
246 | /* num_counters/num_controls filled in at runtime */ | ||
247 | .fill_in_addresses = &ppro_fill_in_addresses, | ||
248 | /* user space does the cpuid check for available events */ | ||
249 | .setup_ctrs = &ppro_setup_ctrs, | ||
250 | .check_ctrs = &ppro_check_ctrs, | ||
251 | .start = &ppro_start, | ||
252 | .stop = &ppro_stop, | ||
253 | .shutdown = &ppro_shutdown | ||
192 | }; | 254 | }; |
diff --git a/arch/x86/oprofile/op_x86_model.h b/arch/x86/oprofile/op_x86_model.h index 05a0261ba0c3..825e79064d64 100644 --- a/arch/x86/oprofile/op_x86_model.h +++ b/arch/x86/oprofile/op_x86_model.h | |||
@@ -22,8 +22,8 @@ struct op_msr { | |||
22 | }; | 22 | }; |
23 | 23 | ||
24 | struct op_msrs { | 24 | struct op_msrs { |
25 | struct op_msr * counters; | 25 | struct op_msr *counters; |
26 | struct op_msr * controls; | 26 | struct op_msr *controls; |
27 | }; | 27 | }; |
28 | 28 | ||
29 | struct pt_regs; | 29 | struct pt_regs; |
@@ -34,8 +34,8 @@ struct pt_regs; | |||
34 | struct op_x86_model_spec { | 34 | struct op_x86_model_spec { |
35 | int (*init)(struct oprofile_operations *ops); | 35 | int (*init)(struct oprofile_operations *ops); |
36 | void (*exit)(void); | 36 | void (*exit)(void); |
37 | unsigned int const num_counters; | 37 | unsigned int num_counters; |
38 | unsigned int const num_controls; | 38 | unsigned int num_controls; |
39 | void (*fill_in_addresses)(struct op_msrs * const msrs); | 39 | void (*fill_in_addresses)(struct op_msrs * const msrs); |
40 | void (*setup_ctrs)(struct op_msrs const * const msrs); | 40 | void (*setup_ctrs)(struct op_msrs const * const msrs); |
41 | int (*check_ctrs)(struct pt_regs * const regs, | 41 | int (*check_ctrs)(struct pt_regs * const regs, |
@@ -45,9 +45,12 @@ struct op_x86_model_spec { | |||
45 | void (*shutdown)(struct op_msrs const * const msrs); | 45 | void (*shutdown)(struct op_msrs const * const msrs); |
46 | }; | 46 | }; |
47 | 47 | ||
48 | extern struct op_x86_model_spec const op_ppro_spec; | 48 | extern struct op_x86_model_spec op_ppro_spec; |
49 | extern struct op_x86_model_spec const op_p4_spec; | 49 | extern struct op_x86_model_spec const op_p4_spec; |
50 | extern struct op_x86_model_spec const op_p4_ht2_spec; | 50 | extern struct op_x86_model_spec const op_p4_ht2_spec; |
51 | extern struct op_x86_model_spec const op_amd_spec; | 51 | extern struct op_x86_model_spec const op_amd_spec; |
52 | extern struct op_x86_model_spec op_arch_perfmon_spec; | ||
53 | |||
54 | extern void arch_perfmon_setup_counters(void); | ||
52 | 55 | ||
53 | #endif /* OP_X86_MODEL_H */ | 56 | #endif /* OP_X86_MODEL_H */ |
diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig index a213260b51e5..6c873dceb177 100644 --- a/arch/xtensa/Kconfig +++ b/arch/xtensa/Kconfig | |||
@@ -64,7 +64,12 @@ choice | |||
64 | default XTENSA_VARIANT_FSF | 64 | default XTENSA_VARIANT_FSF |
65 | 65 | ||
66 | config XTENSA_VARIANT_FSF | 66 | config XTENSA_VARIANT_FSF |
67 | bool "fsf" | 67 | bool "fsf - default (not generic) configuration" |
68 | |||
69 | config XTENSA_VARIANT_DC232B | ||
70 | bool "dc232b - Diamond 232L Standard Core Rev.B (LE)" | ||
71 | help | ||
72 | This variant refers to Tensilica's Diamond 232L Standard core Rev.B (LE). | ||
68 | endchoice | 73 | endchoice |
69 | 74 | ||
70 | config MMU | 75 | config MMU |
diff --git a/arch/xtensa/Makefile b/arch/xtensa/Makefile index 4bd1e14c6b90..015b6b2a26b9 100644 --- a/arch/xtensa/Makefile +++ b/arch/xtensa/Makefile | |||
@@ -14,6 +14,7 @@ | |||
14 | # (Use VAR=<xtensa_config> to use another default compiler.) | 14 | # (Use VAR=<xtensa_config> to use another default compiler.) |
15 | 15 | ||
16 | variant-$(CONFIG_XTENSA_VARIANT_FSF) := fsf | 16 | variant-$(CONFIG_XTENSA_VARIANT_FSF) := fsf |
17 | variant-$(CONFIG_XTENSA_VARIANT_DC232B) := dc232b | ||
17 | variant-$(CONFIG_XTENSA_VARIANT_LINUX_CUSTOM) := custom | 18 | variant-$(CONFIG_XTENSA_VARIANT_LINUX_CUSTOM) := custom |
18 | 19 | ||
19 | VARIANT = $(variant-y) | 20 | VARIANT = $(variant-y) |
diff --git a/arch/xtensa/kernel/irq.c b/arch/xtensa/kernel/irq.c index c9ea73b7031b..5fbcde59a92d 100644 --- a/arch/xtensa/kernel/irq.c +++ b/arch/xtensa/kernel/irq.c | |||
@@ -48,7 +48,7 @@ asmlinkage void do_IRQ(int irq, struct pt_regs *regs) | |||
48 | 48 | ||
49 | if (irq >= NR_IRQS) { | 49 | if (irq >= NR_IRQS) { |
50 | printk(KERN_EMERG "%s: cannot handle IRQ %d\n", | 50 | printk(KERN_EMERG "%s: cannot handle IRQ %d\n", |
51 | __FUNCTION__, irq); | 51 | __func__, irq); |
52 | } | 52 | } |
53 | 53 | ||
54 | irq_enter(); | 54 | irq_enter(); |
diff --git a/arch/xtensa/platforms/iss/network.c b/arch/xtensa/platforms/iss/network.c index a2e252217428..11a20adc1409 100644 --- a/arch/xtensa/platforms/iss/network.c +++ b/arch/xtensa/platforms/iss/network.c | |||
@@ -640,7 +640,7 @@ static int iss_net_configure(int index, char *init) | |||
640 | *lp = ((struct iss_net_private) { | 640 | *lp = ((struct iss_net_private) { |
641 | .device_list = LIST_HEAD_INIT(lp->device_list), | 641 | .device_list = LIST_HEAD_INIT(lp->device_list), |
642 | .opened_list = LIST_HEAD_INIT(lp->opened_list), | 642 | .opened_list = LIST_HEAD_INIT(lp->opened_list), |
643 | .lock = SPIN_LOCK_UNLOCKED, | 643 | .lock = __SPIN_LOCK_UNLOCKED(lp.lock), |
644 | .dev = dev, | 644 | .dev = dev, |
645 | .index = index, | 645 | .index = index, |
646 | //.fd = -1, | 646 | //.fd = -1, |