diff options
Diffstat (limited to 'arch')
188 files changed, 6345 insertions, 1974 deletions
diff --git a/arch/alpha/kernel/entry.S b/arch/alpha/kernel/entry.S index 76cc0cb5fc2e..e38671c922bc 100644 --- a/arch/alpha/kernel/entry.S +++ b/arch/alpha/kernel/entry.S | |||
@@ -196,6 +196,7 @@ entUna: | |||
196 | stq $26, 208($sp) | 196 | stq $26, 208($sp) |
197 | stq $27, 216($sp) | 197 | stq $27, 216($sp) |
198 | stq $28, 224($sp) | 198 | stq $28, 224($sp) |
199 | mov $sp, $19 | ||
199 | stq $gp, 232($sp) | 200 | stq $gp, 232($sp) |
200 | lda $8, 0x3fff | 201 | lda $8, 0x3fff |
201 | stq $31, 248($sp) | 202 | stq $31, 248($sp) |
diff --git a/arch/alpha/kernel/traps.c b/arch/alpha/kernel/traps.c index 6f509a644bdd..f9d12319e0fb 100644 --- a/arch/alpha/kernel/traps.c +++ b/arch/alpha/kernel/traps.c | |||
@@ -446,16 +446,15 @@ struct unaligned_stat { | |||
446 | 446 | ||
447 | 447 | ||
448 | /* Macro for exception fixup code to access integer registers. */ | 448 | /* Macro for exception fixup code to access integer registers. */ |
449 | #define una_reg(r) (regs.regs[(r) >= 16 && (r) <= 18 ? (r)+19 : (r)]) | 449 | #define una_reg(r) (regs->regs[(r) >= 16 && (r) <= 18 ? (r)+19 : (r)]) |
450 | 450 | ||
451 | 451 | ||
452 | asmlinkage void | 452 | asmlinkage void |
453 | do_entUna(void * va, unsigned long opcode, unsigned long reg, | 453 | do_entUna(void * va, unsigned long opcode, unsigned long reg, |
454 | unsigned long a3, unsigned long a4, unsigned long a5, | 454 | struct allregs *regs) |
455 | struct allregs regs) | ||
456 | { | 455 | { |
457 | long error, tmp1, tmp2, tmp3, tmp4; | 456 | long error, tmp1, tmp2, tmp3, tmp4; |
458 | unsigned long pc = regs.pc - 4; | 457 | unsigned long pc = regs->pc - 4; |
459 | const struct exception_table_entry *fixup; | 458 | const struct exception_table_entry *fixup; |
460 | 459 | ||
461 | unaligned[0].count++; | 460 | unaligned[0].count++; |
@@ -636,7 +635,7 @@ got_exception: | |||
636 | printk("Forwarding unaligned exception at %lx (%lx)\n", | 635 | printk("Forwarding unaligned exception at %lx (%lx)\n", |
637 | pc, newpc); | 636 | pc, newpc); |
638 | 637 | ||
639 | (®s)->pc = newpc; | 638 | regs->pc = newpc; |
640 | return; | 639 | return; |
641 | } | 640 | } |
642 | 641 | ||
@@ -650,7 +649,7 @@ got_exception: | |||
650 | current->comm, current->pid); | 649 | current->comm, current->pid); |
651 | 650 | ||
652 | printk("pc = [<%016lx>] ra = [<%016lx>] ps = %04lx\n", | 651 | printk("pc = [<%016lx>] ra = [<%016lx>] ps = %04lx\n", |
653 | pc, una_reg(26), regs.ps); | 652 | pc, una_reg(26), regs->ps); |
654 | printk("r0 = %016lx r1 = %016lx r2 = %016lx\n", | 653 | printk("r0 = %016lx r1 = %016lx r2 = %016lx\n", |
655 | una_reg(0), una_reg(1), una_reg(2)); | 654 | una_reg(0), una_reg(1), una_reg(2)); |
656 | printk("r3 = %016lx r4 = %016lx r5 = %016lx\n", | 655 | printk("r3 = %016lx r4 = %016lx r5 = %016lx\n", |
@@ -670,10 +669,10 @@ got_exception: | |||
670 | una_reg(22), una_reg(23), una_reg(24)); | 669 | una_reg(22), una_reg(23), una_reg(24)); |
671 | printk("r25= %016lx r27= %016lx r28= %016lx\n", | 670 | printk("r25= %016lx r27= %016lx r28= %016lx\n", |
672 | una_reg(25), una_reg(27), una_reg(28)); | 671 | una_reg(25), una_reg(27), una_reg(28)); |
673 | printk("gp = %016lx sp = %p\n", regs.gp, ®s+1); | 672 | printk("gp = %016lx sp = %p\n", regs->gp, regs+1); |
674 | 673 | ||
675 | dik_show_code((unsigned int *)pc); | 674 | dik_show_code((unsigned int *)pc); |
676 | dik_show_trace((unsigned long *)(®s+1)); | 675 | dik_show_trace((unsigned long *)(regs+1)); |
677 | 676 | ||
678 | if (test_and_set_thread_flag (TIF_DIE_IF_KERNEL)) { | 677 | if (test_and_set_thread_flag (TIF_DIE_IF_KERNEL)) { |
679 | printk("die_if_kernel recursion detected.\n"); | 678 | printk("die_if_kernel recursion detected.\n"); |
diff --git a/arch/arm/common/gic.c b/arch/arm/common/gic.c index d74990717559..c02dc8116a18 100644 --- a/arch/arm/common/gic.c +++ b/arch/arm/common/gic.c | |||
@@ -68,6 +68,7 @@ static void gic_unmask_irq(unsigned int irq) | |||
68 | writel(mask, gic_dist_base + GIC_DIST_ENABLE_SET + (irq / 32) * 4); | 68 | writel(mask, gic_dist_base + GIC_DIST_ENABLE_SET + (irq / 32) * 4); |
69 | } | 69 | } |
70 | 70 | ||
71 | #ifdef CONFIG_SMP | ||
71 | static void gic_set_cpu(struct irqdesc *desc, unsigned int irq, unsigned int cpu) | 72 | static void gic_set_cpu(struct irqdesc *desc, unsigned int irq, unsigned int cpu) |
72 | { | 73 | { |
73 | void __iomem *reg = gic_dist_base + GIC_DIST_TARGET + (irq & ~3); | 74 | void __iomem *reg = gic_dist_base + GIC_DIST_TARGET + (irq & ~3); |
@@ -78,6 +79,7 @@ static void gic_set_cpu(struct irqdesc *desc, unsigned int irq, unsigned int cpu | |||
78 | val |= 1 << (cpu + shift); | 79 | val |= 1 << (cpu + shift); |
79 | writel(val, reg); | 80 | writel(val, reg); |
80 | } | 81 | } |
82 | #endif | ||
81 | 83 | ||
82 | static struct irqchip gic_chip = { | 84 | static struct irqchip gic_chip = { |
83 | .ack = gic_ack_irq, | 85 | .ack = gic_ack_irq, |
diff --git a/arch/arm/common/locomo.c b/arch/arm/common/locomo.c index a7bd85700152..e8053d16829b 100644 --- a/arch/arm/common/locomo.c +++ b/arch/arm/common/locomo.c | |||
@@ -27,7 +27,6 @@ | |||
27 | #include <linux/spinlock.h> | 27 | #include <linux/spinlock.h> |
28 | 28 | ||
29 | #include <asm/hardware.h> | 29 | #include <asm/hardware.h> |
30 | #include <asm/mach-types.h> | ||
31 | #include <asm/io.h> | 30 | #include <asm/io.h> |
32 | #include <asm/irq.h> | 31 | #include <asm/irq.h> |
33 | #include <asm/mach/irq.h> | 32 | #include <asm/mach/irq.h> |
diff --git a/arch/arm/common/scoop.c b/arch/arm/common/scoop.c index d3a04c2a2c85..9e5245c702de 100644 --- a/arch/arm/common/scoop.c +++ b/arch/arm/common/scoop.c | |||
@@ -26,6 +26,8 @@ struct scoop_pcmcia_dev *scoop_devs; | |||
26 | struct scoop_dev { | 26 | struct scoop_dev { |
27 | void *base; | 27 | void *base; |
28 | spinlock_t scoop_lock; | 28 | spinlock_t scoop_lock; |
29 | unsigned short suspend_clr; | ||
30 | unsigned short suspend_set; | ||
29 | u32 scoop_gpwr; | 31 | u32 scoop_gpwr; |
30 | }; | 32 | }; |
31 | 33 | ||
@@ -90,14 +92,24 @@ EXPORT_SYMBOL(reset_scoop); | |||
90 | EXPORT_SYMBOL(read_scoop_reg); | 92 | EXPORT_SYMBOL(read_scoop_reg); |
91 | EXPORT_SYMBOL(write_scoop_reg); | 93 | EXPORT_SYMBOL(write_scoop_reg); |
92 | 94 | ||
95 | static void check_scoop_reg(struct scoop_dev *sdev) | ||
96 | { | ||
97 | unsigned short mcr; | ||
98 | |||
99 | mcr = SCOOP_REG(sdev->base, SCOOP_MCR); | ||
100 | if ((mcr & 0x100) == 0) | ||
101 | SCOOP_REG(sdev->base, SCOOP_MCR) = 0x0101; | ||
102 | } | ||
103 | |||
93 | #ifdef CONFIG_PM | 104 | #ifdef CONFIG_PM |
94 | static int scoop_suspend(struct device *dev, pm_message_t state, uint32_t level) | 105 | static int scoop_suspend(struct device *dev, pm_message_t state, uint32_t level) |
95 | { | 106 | { |
96 | if (level == SUSPEND_POWER_DOWN) { | 107 | if (level == SUSPEND_POWER_DOWN) { |
97 | struct scoop_dev *sdev = dev_get_drvdata(dev); | 108 | struct scoop_dev *sdev = dev_get_drvdata(dev); |
98 | 109 | ||
99 | sdev->scoop_gpwr = SCOOP_REG(sdev->base,SCOOP_GPWR); | 110 | check_scoop_reg(sdev); |
100 | SCOOP_REG(sdev->base,SCOOP_GPWR) = 0; | 111 | sdev->scoop_gpwr = SCOOP_REG(sdev->base, SCOOP_GPWR); |
112 | SCOOP_REG(sdev->base, SCOOP_GPWR) = (sdev->scoop_gpwr & ~sdev->suspend_clr) | sdev->suspend_set; | ||
101 | } | 113 | } |
102 | return 0; | 114 | return 0; |
103 | } | 115 | } |
@@ -107,6 +119,7 @@ static int scoop_resume(struct device *dev, uint32_t level) | |||
107 | if (level == RESUME_POWER_ON) { | 119 | if (level == RESUME_POWER_ON) { |
108 | struct scoop_dev *sdev = dev_get_drvdata(dev); | 120 | struct scoop_dev *sdev = dev_get_drvdata(dev); |
109 | 121 | ||
122 | check_scoop_reg(sdev); | ||
110 | SCOOP_REG(sdev->base,SCOOP_GPWR) = sdev->scoop_gpwr; | 123 | SCOOP_REG(sdev->base,SCOOP_GPWR) = sdev->scoop_gpwr; |
111 | } | 124 | } |
112 | return 0; | 125 | return 0; |
@@ -151,6 +164,9 @@ int __init scoop_probe(struct device *dev) | |||
151 | SCOOP_REG(devptr->base, SCOOP_GPCR) = inf->io_dir & 0xffff; | 164 | SCOOP_REG(devptr->base, SCOOP_GPCR) = inf->io_dir & 0xffff; |
152 | SCOOP_REG(devptr->base, SCOOP_GPWR) = inf->io_out & 0xffff; | 165 | SCOOP_REG(devptr->base, SCOOP_GPWR) = inf->io_out & 0xffff; |
153 | 166 | ||
167 | devptr->suspend_clr = inf->suspend_clr; | ||
168 | devptr->suspend_set = inf->suspend_set; | ||
169 | |||
154 | return 0; | 170 | return 0; |
155 | } | 171 | } |
156 | 172 | ||
diff --git a/arch/arm/configs/collie_defconfig b/arch/arm/configs/collie_defconfig new file mode 100644 index 000000000000..40dfe07a8bce --- /dev/null +++ b/arch/arm/configs/collie_defconfig | |||
@@ -0,0 +1,888 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.14-rc3 | ||
4 | # Sun Oct 9 16:55:14 2005 | ||
5 | # | ||
6 | CONFIG_ARM=y | ||
7 | CONFIG_MMU=y | ||
8 | CONFIG_UID16=y | ||
9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
11 | |||
12 | # | ||
13 | # Code maturity level options | ||
14 | # | ||
15 | CONFIG_EXPERIMENTAL=y | ||
16 | # CONFIG_CLEAN_COMPILE is not set | ||
17 | CONFIG_BROKEN=y | ||
18 | CONFIG_BROKEN_ON_SMP=y | ||
19 | CONFIG_LOCK_KERNEL=y | ||
20 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
21 | |||
22 | # | ||
23 | # General setup | ||
24 | # | ||
25 | CONFIG_LOCALVERSION="" | ||
26 | CONFIG_LOCALVERSION_AUTO=y | ||
27 | CONFIG_SWAP=y | ||
28 | CONFIG_SYSVIPC=y | ||
29 | # CONFIG_POSIX_MQUEUE is not set | ||
30 | CONFIG_BSD_PROCESS_ACCT=y | ||
31 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | ||
32 | CONFIG_SYSCTL=y | ||
33 | # CONFIG_AUDIT is not set | ||
34 | CONFIG_HOTPLUG=y | ||
35 | CONFIG_KOBJECT_UEVENT=y | ||
36 | # CONFIG_IKCONFIG is not set | ||
37 | CONFIG_INITRAMFS_SOURCE="" | ||
38 | CONFIG_EMBEDDED=y | ||
39 | CONFIG_KALLSYMS=y | ||
40 | # CONFIG_KALLSYMS_ALL is not set | ||
41 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
42 | CONFIG_PRINTK=y | ||
43 | CONFIG_BUG=y | ||
44 | CONFIG_BASE_FULL=y | ||
45 | CONFIG_FUTEX=y | ||
46 | CONFIG_EPOLL=y | ||
47 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
48 | CONFIG_SHMEM=y | ||
49 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
50 | CONFIG_CC_ALIGN_LABELS=0 | ||
51 | CONFIG_CC_ALIGN_LOOPS=0 | ||
52 | CONFIG_CC_ALIGN_JUMPS=0 | ||
53 | # CONFIG_TINY_SHMEM is not set | ||
54 | CONFIG_BASE_SMALL=0 | ||
55 | |||
56 | # | ||
57 | # Loadable module support | ||
58 | # | ||
59 | CONFIG_MODULES=y | ||
60 | CONFIG_MODULE_UNLOAD=y | ||
61 | CONFIG_MODULE_FORCE_UNLOAD=y | ||
62 | CONFIG_OBSOLETE_MODPARM=y | ||
63 | CONFIG_MODVERSIONS=y | ||
64 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
65 | CONFIG_KMOD=y | ||
66 | |||
67 | # | ||
68 | # System Type | ||
69 | # | ||
70 | # CONFIG_ARCH_CLPS7500 is not set | ||
71 | # CONFIG_ARCH_CLPS711X is not set | ||
72 | # CONFIG_ARCH_CO285 is not set | ||
73 | # CONFIG_ARCH_EBSA110 is not set | ||
74 | # CONFIG_ARCH_CAMELOT is not set | ||
75 | # CONFIG_ARCH_FOOTBRIDGE is not set | ||
76 | # CONFIG_ARCH_INTEGRATOR is not set | ||
77 | # CONFIG_ARCH_IOP3XX is not set | ||
78 | # CONFIG_ARCH_IXP4XX is not set | ||
79 | # CONFIG_ARCH_IXP2000 is not set | ||
80 | # CONFIG_ARCH_L7200 is not set | ||
81 | # CONFIG_ARCH_PXA is not set | ||
82 | # CONFIG_ARCH_RPC is not set | ||
83 | CONFIG_ARCH_SA1100=y | ||
84 | # CONFIG_ARCH_S3C2410 is not set | ||
85 | # CONFIG_ARCH_SHARK is not set | ||
86 | # CONFIG_ARCH_LH7A40X is not set | ||
87 | # CONFIG_ARCH_OMAP is not set | ||
88 | # CONFIG_ARCH_VERSATILE is not set | ||
89 | # CONFIG_ARCH_IMX is not set | ||
90 | # CONFIG_ARCH_H720X is not set | ||
91 | # CONFIG_ARCH_AAEC2000 is not set | ||
92 | |||
93 | # | ||
94 | # SA11x0 Implementations | ||
95 | # | ||
96 | # CONFIG_SA1100_ASSABET is not set | ||
97 | # CONFIG_SA1100_CERF is not set | ||
98 | CONFIG_SA1100_COLLIE=y | ||
99 | # CONFIG_SA1100_H3100 is not set | ||
100 | # CONFIG_SA1100_H3600 is not set | ||
101 | # CONFIG_SA1100_H3800 is not set | ||
102 | # CONFIG_SA1100_BADGE4 is not set | ||
103 | # CONFIG_SA1100_JORNADA720 is not set | ||
104 | # CONFIG_SA1100_HACKKIT is not set | ||
105 | # CONFIG_SA1100_LART is not set | ||
106 | # CONFIG_SA1100_PLEB is not set | ||
107 | # CONFIG_SA1100_SHANNON is not set | ||
108 | # CONFIG_SA1100_SIMPAD is not set | ||
109 | # CONFIG_SA1100_SSP is not set | ||
110 | |||
111 | # | ||
112 | # Processor Type | ||
113 | # | ||
114 | CONFIG_CPU_32=y | ||
115 | CONFIG_CPU_SA1100=y | ||
116 | CONFIG_CPU_32v4=y | ||
117 | CONFIG_CPU_ABRT_EV4=y | ||
118 | CONFIG_CPU_CACHE_V4WB=y | ||
119 | CONFIG_CPU_CACHE_VIVT=y | ||
120 | CONFIG_CPU_TLB_V4WB=y | ||
121 | |||
122 | # | ||
123 | # Processor Features | ||
124 | # | ||
125 | CONFIG_SHARP_LOCOMO=y | ||
126 | CONFIG_SHARP_PARAM=y | ||
127 | CONFIG_SHARP_SCOOP=y | ||
128 | |||
129 | # | ||
130 | # Bus support | ||
131 | # | ||
132 | CONFIG_ISA=y | ||
133 | CONFIG_ISA_DMA_API=y | ||
134 | |||
135 | # | ||
136 | # PCCARD (PCMCIA/CardBus) support | ||
137 | # | ||
138 | # CONFIG_PCCARD is not set | ||
139 | |||
140 | # | ||
141 | # Kernel Features | ||
142 | # | ||
143 | # CONFIG_SMP is not set | ||
144 | CONFIG_PREEMPT=y | ||
145 | # CONFIG_NO_IDLE_HZ is not set | ||
146 | CONFIG_ARCH_DISCONTIGMEM_ENABLE=y | ||
147 | CONFIG_SELECT_MEMORY_MODEL=y | ||
148 | # CONFIG_FLATMEM_MANUAL is not set | ||
149 | CONFIG_DISCONTIGMEM_MANUAL=y | ||
150 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
151 | CONFIG_DISCONTIGMEM=y | ||
152 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
153 | CONFIG_NEED_MULTIPLE_NODES=y | ||
154 | # CONFIG_SPARSEMEM_STATIC is not set | ||
155 | # CONFIG_LEDS is not set | ||
156 | CONFIG_ALIGNMENT_TRAP=y | ||
157 | |||
158 | # | ||
159 | # Boot options | ||
160 | # | ||
161 | CONFIG_ZBOOT_ROM_TEXT=0x0 | ||
162 | CONFIG_ZBOOT_ROM_BSS=0x0 | ||
163 | CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 debug" | ||
164 | # CONFIG_XIP_KERNEL is not set | ||
165 | |||
166 | # | ||
167 | # CPU Frequency scaling | ||
168 | # | ||
169 | # CONFIG_CPU_FREQ is not set | ||
170 | |||
171 | # | ||
172 | # Floating point emulation | ||
173 | # | ||
174 | |||
175 | # | ||
176 | # At least one emulation must be selected | ||
177 | # | ||
178 | CONFIG_FPE_NWFPE=y | ||
179 | # CONFIG_FPE_NWFPE_XP is not set | ||
180 | # CONFIG_FPE_FASTFPE is not set | ||
181 | |||
182 | # | ||
183 | # Userspace binary formats | ||
184 | # | ||
185 | CONFIG_BINFMT_ELF=y | ||
186 | CONFIG_BINFMT_AOUT=m | ||
187 | CONFIG_BINFMT_MISC=m | ||
188 | # CONFIG_ARTHUR is not set | ||
189 | |||
190 | # | ||
191 | # Power management options | ||
192 | # | ||
193 | CONFIG_PM=y | ||
194 | CONFIG_APM=y | ||
195 | |||
196 | # | ||
197 | # Networking | ||
198 | # | ||
199 | CONFIG_NET=y | ||
200 | |||
201 | # | ||
202 | # Networking options | ||
203 | # | ||
204 | CONFIG_PACKET=y | ||
205 | CONFIG_PACKET_MMAP=y | ||
206 | CONFIG_UNIX=y | ||
207 | # CONFIG_NET_KEY is not set | ||
208 | CONFIG_INET=y | ||
209 | # CONFIG_IP_MULTICAST is not set | ||
210 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
211 | CONFIG_IP_FIB_HASH=y | ||
212 | # CONFIG_IP_PNP is not set | ||
213 | # CONFIG_NET_IPIP is not set | ||
214 | # CONFIG_NET_IPGRE is not set | ||
215 | # CONFIG_ARPD is not set | ||
216 | CONFIG_SYN_COOKIES=y | ||
217 | # CONFIG_INET_AH is not set | ||
218 | # CONFIG_INET_ESP is not set | ||
219 | # CONFIG_INET_IPCOMP is not set | ||
220 | # CONFIG_INET_TUNNEL is not set | ||
221 | CONFIG_INET_DIAG=y | ||
222 | CONFIG_INET_TCP_DIAG=y | ||
223 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
224 | CONFIG_TCP_CONG_BIC=y | ||
225 | # CONFIG_IPV6 is not set | ||
226 | # CONFIG_NETFILTER is not set | ||
227 | |||
228 | # | ||
229 | # DCCP Configuration (EXPERIMENTAL) | ||
230 | # | ||
231 | # CONFIG_IP_DCCP is not set | ||
232 | |||
233 | # | ||
234 | # SCTP Configuration (EXPERIMENTAL) | ||
235 | # | ||
236 | # CONFIG_IP_SCTP is not set | ||
237 | # CONFIG_ATM is not set | ||
238 | # CONFIG_BRIDGE is not set | ||
239 | # CONFIG_VLAN_8021Q is not set | ||
240 | # CONFIG_DECNET is not set | ||
241 | # CONFIG_LLC2 is not set | ||
242 | # CONFIG_IPX is not set | ||
243 | # CONFIG_ATALK is not set | ||
244 | # CONFIG_X25 is not set | ||
245 | # CONFIG_LAPB is not set | ||
246 | # CONFIG_NET_DIVERT is not set | ||
247 | # CONFIG_ECONET is not set | ||
248 | # CONFIG_WAN_ROUTER is not set | ||
249 | # CONFIG_NET_SCHED is not set | ||
250 | # CONFIG_NET_CLS_ROUTE is not set | ||
251 | |||
252 | # | ||
253 | # Network testing | ||
254 | # | ||
255 | # CONFIG_NET_PKTGEN is not set | ||
256 | # CONFIG_HAMRADIO is not set | ||
257 | # CONFIG_IRDA is not set | ||
258 | # CONFIG_BT is not set | ||
259 | # CONFIG_IEEE80211 is not set | ||
260 | |||
261 | # | ||
262 | # Device Drivers | ||
263 | # | ||
264 | |||
265 | # | ||
266 | # Generic Driver Options | ||
267 | # | ||
268 | CONFIG_STANDALONE=y | ||
269 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
270 | CONFIG_FW_LOADER=m | ||
271 | # CONFIG_DEBUG_DRIVER is not set | ||
272 | |||
273 | # | ||
274 | # Memory Technology Devices (MTD) | ||
275 | # | ||
276 | CONFIG_MTD=y | ||
277 | # CONFIG_MTD_DEBUG is not set | ||
278 | # CONFIG_MTD_CONCAT is not set | ||
279 | CONFIG_MTD_PARTITIONS=y | ||
280 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
281 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
282 | # CONFIG_MTD_AFS_PARTS is not set | ||
283 | |||
284 | # | ||
285 | # User Modules And Translation Layers | ||
286 | # | ||
287 | CONFIG_MTD_CHAR=y | ||
288 | CONFIG_MTD_BLOCK=y | ||
289 | # CONFIG_FTL is not set | ||
290 | # CONFIG_NFTL is not set | ||
291 | # CONFIG_INFTL is not set | ||
292 | |||
293 | # | ||
294 | # RAM/ROM/Flash chip drivers | ||
295 | # | ||
296 | # CONFIG_MTD_CFI is not set | ||
297 | # CONFIG_MTD_JEDECPROBE is not set | ||
298 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
299 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
300 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
301 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
302 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
303 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
304 | CONFIG_MTD_CFI_I1=y | ||
305 | CONFIG_MTD_CFI_I2=y | ||
306 | # CONFIG_MTD_CFI_I4 is not set | ||
307 | # CONFIG_MTD_CFI_I8 is not set | ||
308 | # CONFIG_MTD_RAM is not set | ||
309 | # CONFIG_MTD_ROM is not set | ||
310 | # CONFIG_MTD_ABSENT is not set | ||
311 | CONFIG_MTD_OBSOLETE_CHIPS=y | ||
312 | # CONFIG_MTD_AMDSTD is not set | ||
313 | CONFIG_MTD_SHARP=y | ||
314 | # CONFIG_MTD_JEDEC is not set | ||
315 | |||
316 | # | ||
317 | # Mapping drivers for chip access | ||
318 | # | ||
319 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
320 | # CONFIG_MTD_PLATRAM is not set | ||
321 | |||
322 | # | ||
323 | # Self-contained MTD device drivers | ||
324 | # | ||
325 | # CONFIG_MTD_SLRAM is not set | ||
326 | # CONFIG_MTD_PHRAM is not set | ||
327 | # CONFIG_MTD_MTDRAM is not set | ||
328 | # CONFIG_MTD_BLKMTD is not set | ||
329 | # CONFIG_MTD_BLOCK2MTD is not set | ||
330 | |||
331 | # | ||
332 | # Disk-On-Chip Device Drivers | ||
333 | # | ||
334 | # CONFIG_MTD_DOC2000 is not set | ||
335 | # CONFIG_MTD_DOC2001 is not set | ||
336 | # CONFIG_MTD_DOC2001PLUS is not set | ||
337 | |||
338 | # | ||
339 | # NAND Flash Device Drivers | ||
340 | # | ||
341 | # CONFIG_MTD_NAND is not set | ||
342 | |||
343 | # | ||
344 | # Parallel port support | ||
345 | # | ||
346 | # CONFIG_PARPORT is not set | ||
347 | |||
348 | # | ||
349 | # Plug and Play support | ||
350 | # | ||
351 | # CONFIG_PNP is not set | ||
352 | |||
353 | # | ||
354 | # Block devices | ||
355 | # | ||
356 | # CONFIG_BLK_DEV_XD is not set | ||
357 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
358 | CONFIG_BLK_DEV_LOOP=y | ||
359 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
360 | # CONFIG_BLK_DEV_NBD is not set | ||
361 | CONFIG_BLK_DEV_RAM=y | ||
362 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
363 | CONFIG_BLK_DEV_RAM_SIZE=1024 | ||
364 | CONFIG_BLK_DEV_INITRD=y | ||
365 | # CONFIG_CDROM_PKTCDVD is not set | ||
366 | |||
367 | # | ||
368 | # IO Schedulers | ||
369 | # | ||
370 | CONFIG_IOSCHED_NOOP=y | ||
371 | CONFIG_IOSCHED_AS=y | ||
372 | CONFIG_IOSCHED_DEADLINE=y | ||
373 | CONFIG_IOSCHED_CFQ=y | ||
374 | CONFIG_ATA_OVER_ETH=m | ||
375 | |||
376 | # | ||
377 | # ATA/ATAPI/MFM/RLL support | ||
378 | # | ||
379 | # CONFIG_IDE is not set | ||
380 | |||
381 | # | ||
382 | # SCSI device support | ||
383 | # | ||
384 | # CONFIG_RAID_ATTRS is not set | ||
385 | # CONFIG_SCSI is not set | ||
386 | |||
387 | # | ||
388 | # Multi-device support (RAID and LVM) | ||
389 | # | ||
390 | # CONFIG_MD is not set | ||
391 | |||
392 | # | ||
393 | # Fusion MPT device support | ||
394 | # | ||
395 | # CONFIG_FUSION is not set | ||
396 | |||
397 | # | ||
398 | # IEEE 1394 (FireWire) support | ||
399 | # | ||
400 | # CONFIG_IEEE1394 is not set | ||
401 | |||
402 | # | ||
403 | # I2O device support | ||
404 | # | ||
405 | |||
406 | # | ||
407 | # Network device support | ||
408 | # | ||
409 | # CONFIG_NETDEVICES is not set | ||
410 | # CONFIG_NETPOLL is not set | ||
411 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
412 | |||
413 | # | ||
414 | # ISDN subsystem | ||
415 | # | ||
416 | # CONFIG_ISDN is not set | ||
417 | |||
418 | # | ||
419 | # Input device support | ||
420 | # | ||
421 | CONFIG_INPUT=y | ||
422 | |||
423 | # | ||
424 | # Userland interfaces | ||
425 | # | ||
426 | # CONFIG_INPUT_MOUSEDEV is not set | ||
427 | # CONFIG_INPUT_JOYDEV is not set | ||
428 | CONFIG_INPUT_TSDEV=y | ||
429 | CONFIG_INPUT_TSDEV_SCREEN_X=240 | ||
430 | CONFIG_INPUT_TSDEV_SCREEN_Y=320 | ||
431 | CONFIG_INPUT_EVDEV=y | ||
432 | CONFIG_INPUT_EVBUG=y | ||
433 | |||
434 | # | ||
435 | # Input Device Drivers | ||
436 | # | ||
437 | CONFIG_INPUT_KEYBOARD=y | ||
438 | # CONFIG_KEYBOARD_ATKBD is not set | ||
439 | # CONFIG_KEYBOARD_SUNKBD is not set | ||
440 | # CONFIG_KEYBOARD_LKKBD is not set | ||
441 | CONFIG_KEYBOARD_LOCOMO=y | ||
442 | # CONFIG_KEYBOARD_XTKBD is not set | ||
443 | # CONFIG_KEYBOARD_NEWTON is not set | ||
444 | # CONFIG_INPUT_MOUSE is not set | ||
445 | # CONFIG_INPUT_JOYSTICK is not set | ||
446 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
447 | # CONFIG_INPUT_MISC is not set | ||
448 | |||
449 | # | ||
450 | # Hardware I/O ports | ||
451 | # | ||
452 | CONFIG_SERIO=y | ||
453 | # CONFIG_SERIO_SERPORT is not set | ||
454 | # CONFIG_SERIO_LIBPS2 is not set | ||
455 | # CONFIG_SERIO_RAW is not set | ||
456 | # CONFIG_GAMEPORT is not set | ||
457 | |||
458 | # | ||
459 | # Character devices | ||
460 | # | ||
461 | CONFIG_VT=y | ||
462 | CONFIG_VT_CONSOLE=y | ||
463 | CONFIG_HW_CONSOLE=y | ||
464 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
465 | |||
466 | # | ||
467 | # Serial drivers | ||
468 | # | ||
469 | # CONFIG_SERIAL_8250 is not set | ||
470 | |||
471 | # | ||
472 | # Non-8250 serial port support | ||
473 | # | ||
474 | CONFIG_SERIAL_SA1100=y | ||
475 | CONFIG_SERIAL_SA1100_CONSOLE=y | ||
476 | CONFIG_SERIAL_CORE=y | ||
477 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
478 | CONFIG_UNIX98_PTYS=y | ||
479 | # CONFIG_LEGACY_PTYS is not set | ||
480 | |||
481 | # | ||
482 | # IPMI | ||
483 | # | ||
484 | # CONFIG_IPMI_HANDLER is not set | ||
485 | |||
486 | # | ||
487 | # Watchdog Cards | ||
488 | # | ||
489 | # CONFIG_WATCHDOG is not set | ||
490 | # CONFIG_NVRAM is not set | ||
491 | # CONFIG_RTC is not set | ||
492 | # CONFIG_DTLK is not set | ||
493 | # CONFIG_R3964 is not set | ||
494 | |||
495 | # | ||
496 | # Ftape, the floppy tape device driver | ||
497 | # | ||
498 | # CONFIG_RAW_DRIVER is not set | ||
499 | |||
500 | # | ||
501 | # TPM devices | ||
502 | # | ||
503 | |||
504 | # | ||
505 | # I2C support | ||
506 | # | ||
507 | CONFIG_I2C=m | ||
508 | # CONFIG_I2C_CHARDEV is not set | ||
509 | |||
510 | # | ||
511 | # I2C Algorithms | ||
512 | # | ||
513 | CONFIG_I2C_ALGOBIT=m | ||
514 | # CONFIG_I2C_ALGOPCF is not set | ||
515 | # CONFIG_I2C_ALGOPCA is not set | ||
516 | |||
517 | # | ||
518 | # I2C Hardware Bus support | ||
519 | # | ||
520 | # CONFIG_I2C_ELEKTOR is not set | ||
521 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
522 | # CONFIG_I2C_STUB is not set | ||
523 | # CONFIG_I2C_PCA_ISA is not set | ||
524 | |||
525 | # | ||
526 | # Miscellaneous I2C Chip support | ||
527 | # | ||
528 | # CONFIG_SENSORS_DS1337 is not set | ||
529 | # CONFIG_SENSORS_DS1374 is not set | ||
530 | # CONFIG_SENSORS_EEPROM is not set | ||
531 | # CONFIG_SENSORS_PCF8574 is not set | ||
532 | # CONFIG_SENSORS_PCA9539 is not set | ||
533 | # CONFIG_SENSORS_PCF8591 is not set | ||
534 | # CONFIG_SENSORS_RTC8564 is not set | ||
535 | # CONFIG_SENSORS_MAX6875 is not set | ||
536 | # CONFIG_I2C_DEBUG_CORE is not set | ||
537 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
538 | # CONFIG_I2C_DEBUG_BUS is not set | ||
539 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
540 | |||
541 | # | ||
542 | # Hardware Monitoring support | ||
543 | # | ||
544 | CONFIG_HWMON=y | ||
545 | # CONFIG_HWMON_VID is not set | ||
546 | # CONFIG_SENSORS_ADM1021 is not set | ||
547 | # CONFIG_SENSORS_ADM1025 is not set | ||
548 | # CONFIG_SENSORS_ADM1026 is not set | ||
549 | # CONFIG_SENSORS_ADM1031 is not set | ||
550 | # CONFIG_SENSORS_ADM9240 is not set | ||
551 | # CONFIG_SENSORS_ASB100 is not set | ||
552 | # CONFIG_SENSORS_ATXP1 is not set | ||
553 | # CONFIG_SENSORS_DS1621 is not set | ||
554 | # CONFIG_SENSORS_FSCHER is not set | ||
555 | # CONFIG_SENSORS_FSCPOS is not set | ||
556 | # CONFIG_SENSORS_GL518SM is not set | ||
557 | # CONFIG_SENSORS_GL520SM is not set | ||
558 | # CONFIG_SENSORS_IT87 is not set | ||
559 | # CONFIG_SENSORS_LM63 is not set | ||
560 | # CONFIG_SENSORS_LM75 is not set | ||
561 | # CONFIG_SENSORS_LM77 is not set | ||
562 | # CONFIG_SENSORS_LM78 is not set | ||
563 | # CONFIG_SENSORS_LM80 is not set | ||
564 | # CONFIG_SENSORS_LM83 is not set | ||
565 | # CONFIG_SENSORS_LM85 is not set | ||
566 | # CONFIG_SENSORS_LM87 is not set | ||
567 | # CONFIG_SENSORS_LM90 is not set | ||
568 | # CONFIG_SENSORS_LM92 is not set | ||
569 | # CONFIG_SENSORS_MAX1619 is not set | ||
570 | # CONFIG_SENSORS_PC87360 is not set | ||
571 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
572 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
573 | # CONFIG_SENSORS_W83781D is not set | ||
574 | # CONFIG_SENSORS_W83792D is not set | ||
575 | # CONFIG_SENSORS_W83L785TS is not set | ||
576 | # CONFIG_SENSORS_W83627HF is not set | ||
577 | # CONFIG_SENSORS_W83627EHF is not set | ||
578 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
579 | |||
580 | # | ||
581 | # Misc devices | ||
582 | # | ||
583 | |||
584 | # | ||
585 | # Multimedia Capabilities Port drivers | ||
586 | # | ||
587 | # CONFIG_MCP_SA11X0 is not set | ||
588 | |||
589 | # | ||
590 | # Multimedia devices | ||
591 | # | ||
592 | CONFIG_VIDEO_DEV=m | ||
593 | |||
594 | # | ||
595 | # Video For Linux | ||
596 | # | ||
597 | |||
598 | # | ||
599 | # Video Adapters | ||
600 | # | ||
601 | # CONFIG_VIDEO_PMS is not set | ||
602 | # CONFIG_VIDEO_CPIA is not set | ||
603 | # CONFIG_VIDEO_SAA5246A is not set | ||
604 | # CONFIG_VIDEO_SAA5249 is not set | ||
605 | # CONFIG_TUNER_3036 is not set | ||
606 | # CONFIG_VIDEO_OVCAMCHIP is not set | ||
607 | |||
608 | # | ||
609 | # Radio Adapters | ||
610 | # | ||
611 | # CONFIG_RADIO_CADET is not set | ||
612 | # CONFIG_RADIO_RTRACK is not set | ||
613 | # CONFIG_RADIO_RTRACK2 is not set | ||
614 | # CONFIG_RADIO_AZTECH is not set | ||
615 | # CONFIG_RADIO_GEMTEK is not set | ||
616 | # CONFIG_RADIO_MAESTRO is not set | ||
617 | # CONFIG_RADIO_SF16FMI is not set | ||
618 | # CONFIG_RADIO_SF16FMR2 is not set | ||
619 | # CONFIG_RADIO_TERRATEC is not set | ||
620 | # CONFIG_RADIO_TRUST is not set | ||
621 | # CONFIG_RADIO_TYPHOON is not set | ||
622 | # CONFIG_RADIO_ZOLTRIX is not set | ||
623 | |||
624 | # | ||
625 | # Digital Video Broadcasting Devices | ||
626 | # | ||
627 | # CONFIG_DVB is not set | ||
628 | |||
629 | # | ||
630 | # Graphics support | ||
631 | # | ||
632 | CONFIG_FB=y | ||
633 | CONFIG_FB_CFB_FILLRECT=y | ||
634 | CONFIG_FB_CFB_COPYAREA=y | ||
635 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
636 | CONFIG_FB_SOFT_CURSOR=y | ||
637 | # CONFIG_FB_MACMODES is not set | ||
638 | CONFIG_FB_MODE_HELPERS=y | ||
639 | # CONFIG_FB_TILEBLITTING is not set | ||
640 | CONFIG_FB_SA1100=y | ||
641 | # CONFIG_FB_S1D13XXX is not set | ||
642 | # CONFIG_FB_VIRTUAL is not set | ||
643 | |||
644 | # | ||
645 | # Console display driver support | ||
646 | # | ||
647 | # CONFIG_VGA_CONSOLE is not set | ||
648 | # CONFIG_MDA_CONSOLE is not set | ||
649 | CONFIG_DUMMY_CONSOLE=y | ||
650 | CONFIG_FRAMEBUFFER_CONSOLE=y | ||
651 | CONFIG_FONTS=y | ||
652 | CONFIG_FONT_8x8=y | ||
653 | # CONFIG_FONT_8x16 is not set | ||
654 | # CONFIG_FONT_6x11 is not set | ||
655 | # CONFIG_FONT_7x14 is not set | ||
656 | # CONFIG_FONT_PEARL_8x8 is not set | ||
657 | # CONFIG_FONT_ACORN_8x8 is not set | ||
658 | # CONFIG_FONT_MINI_4x6 is not set | ||
659 | # CONFIG_FONT_SUN8x16 is not set | ||
660 | # CONFIG_FONT_SUN12x22 is not set | ||
661 | # CONFIG_FONT_10x18 is not set | ||
662 | |||
663 | # | ||
664 | # Logo configuration | ||
665 | # | ||
666 | # CONFIG_LOGO is not set | ||
667 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
668 | |||
669 | # | ||
670 | # Sound | ||
671 | # | ||
672 | # CONFIG_SOUND is not set | ||
673 | |||
674 | # | ||
675 | # USB support | ||
676 | # | ||
677 | CONFIG_USB_ARCH_HAS_HCD=y | ||
678 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
679 | # CONFIG_USB is not set | ||
680 | |||
681 | # | ||
682 | # USB Gadget Support | ||
683 | # | ||
684 | CONFIG_USB_GADGET=y | ||
685 | # CONFIG_USB_GADGET_DEBUG_FILES is not set | ||
686 | # CONFIG_USB_GADGET_NET2280 is not set | ||
687 | # CONFIG_USB_GADGET_PXA2XX is not set | ||
688 | # CONFIG_USB_GADGET_GOKU is not set | ||
689 | # CONFIG_USB_GADGET_LH7A40X is not set | ||
690 | # CONFIG_USB_GADGET_OMAP is not set | ||
691 | # CONFIG_USB_GADGET_DUMMY_HCD is not set | ||
692 | # CONFIG_USB_GADGET_DUALSPEED is not set | ||
693 | |||
694 | # | ||
695 | # MMC/SD Card support | ||
696 | # | ||
697 | # CONFIG_MMC is not set | ||
698 | |||
699 | # | ||
700 | # File systems | ||
701 | # | ||
702 | CONFIG_EXT2_FS=y | ||
703 | CONFIG_EXT2_FS_XATTR=y | ||
704 | CONFIG_EXT2_FS_POSIX_ACL=y | ||
705 | CONFIG_EXT2_FS_SECURITY=y | ||
706 | # CONFIG_EXT2_FS_XIP is not set | ||
707 | # CONFIG_EXT3_FS is not set | ||
708 | # CONFIG_JBD is not set | ||
709 | CONFIG_FS_MBCACHE=y | ||
710 | # CONFIG_REISERFS_FS is not set | ||
711 | # CONFIG_JFS_FS is not set | ||
712 | CONFIG_FS_POSIX_ACL=y | ||
713 | # CONFIG_XFS_FS is not set | ||
714 | # CONFIG_MINIX_FS is not set | ||
715 | CONFIG_ROMFS_FS=y | ||
716 | CONFIG_INOTIFY=y | ||
717 | # CONFIG_QUOTA is not set | ||
718 | # CONFIG_DNOTIFY is not set | ||
719 | # CONFIG_AUTOFS_FS is not set | ||
720 | # CONFIG_AUTOFS4_FS is not set | ||
721 | # CONFIG_FUSE_FS is not set | ||
722 | |||
723 | # | ||
724 | # CD-ROM/DVD Filesystems | ||
725 | # | ||
726 | # CONFIG_ISO9660_FS is not set | ||
727 | # CONFIG_UDF_FS is not set | ||
728 | |||
729 | # | ||
730 | # DOS/FAT/NT Filesystems | ||
731 | # | ||
732 | CONFIG_FAT_FS=y | ||
733 | CONFIG_MSDOS_FS=y | ||
734 | CONFIG_VFAT_FS=y | ||
735 | CONFIG_FAT_DEFAULT_CODEPAGE=437 | ||
736 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
737 | # CONFIG_NTFS_FS is not set | ||
738 | |||
739 | # | ||
740 | # Pseudo filesystems | ||
741 | # | ||
742 | CONFIG_PROC_FS=y | ||
743 | CONFIG_SYSFS=y | ||
744 | CONFIG_TMPFS=y | ||
745 | # CONFIG_HUGETLBFS is not set | ||
746 | # CONFIG_HUGETLB_PAGE is not set | ||
747 | CONFIG_RAMFS=y | ||
748 | # CONFIG_RELAYFS_FS is not set | ||
749 | |||
750 | # | ||
751 | # Miscellaneous filesystems | ||
752 | # | ||
753 | # CONFIG_ADFS_FS is not set | ||
754 | # CONFIG_AFFS_FS is not set | ||
755 | # CONFIG_HFS_FS is not set | ||
756 | # CONFIG_HFSPLUS_FS is not set | ||
757 | # CONFIG_BEFS_FS is not set | ||
758 | # CONFIG_BFS_FS is not set | ||
759 | # CONFIG_EFS_FS is not set | ||
760 | # CONFIG_JFFS_FS is not set | ||
761 | CONFIG_JFFS2_FS=y | ||
762 | CONFIG_JFFS2_FS_DEBUG=0 | ||
763 | CONFIG_JFFS2_FS_WRITEBUFFER=y | ||
764 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | ||
765 | CONFIG_JFFS2_ZLIB=y | ||
766 | CONFIG_JFFS2_RTIME=y | ||
767 | # CONFIG_JFFS2_RUBIN is not set | ||
768 | CONFIG_CRAMFS=y | ||
769 | # CONFIG_VXFS_FS is not set | ||
770 | # CONFIG_HPFS_FS is not set | ||
771 | # CONFIG_QNX4FS_FS is not set | ||
772 | # CONFIG_SYSV_FS is not set | ||
773 | # CONFIG_UFS_FS is not set | ||
774 | |||
775 | # | ||
776 | # Network File Systems | ||
777 | # | ||
778 | # CONFIG_NFS_FS is not set | ||
779 | # CONFIG_NFSD is not set | ||
780 | # CONFIG_SMB_FS is not set | ||
781 | # CONFIG_CIFS is not set | ||
782 | # CONFIG_NCP_FS is not set | ||
783 | # CONFIG_CODA_FS is not set | ||
784 | # CONFIG_AFS_FS is not set | ||
785 | # CONFIG_9P_FS is not set | ||
786 | |||
787 | # | ||
788 | # Partition Types | ||
789 | # | ||
790 | # CONFIG_PARTITION_ADVANCED is not set | ||
791 | CONFIG_MSDOS_PARTITION=y | ||
792 | |||
793 | # | ||
794 | # Native Language Support | ||
795 | # | ||
796 | CONFIG_NLS=y | ||
797 | CONFIG_NLS_DEFAULT="cp437" | ||
798 | CONFIG_NLS_CODEPAGE_437=m | ||
799 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
800 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
801 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
802 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
803 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
804 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
805 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
806 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
807 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
808 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
809 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
810 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
811 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
812 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
813 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
814 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
815 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
816 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
817 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
818 | # CONFIG_NLS_ISO8859_8 is not set | ||
819 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
820 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
821 | # CONFIG_NLS_ASCII is not set | ||
822 | CONFIG_NLS_ISO8859_1=m | ||
823 | # CONFIG_NLS_ISO8859_2 is not set | ||
824 | # CONFIG_NLS_ISO8859_3 is not set | ||
825 | # CONFIG_NLS_ISO8859_4 is not set | ||
826 | # CONFIG_NLS_ISO8859_5 is not set | ||
827 | # CONFIG_NLS_ISO8859_6 is not set | ||
828 | # CONFIG_NLS_ISO8859_7 is not set | ||
829 | # CONFIG_NLS_ISO8859_9 is not set | ||
830 | # CONFIG_NLS_ISO8859_13 is not set | ||
831 | # CONFIG_NLS_ISO8859_14 is not set | ||
832 | # CONFIG_NLS_ISO8859_15 is not set | ||
833 | # CONFIG_NLS_KOI8_R is not set | ||
834 | # CONFIG_NLS_KOI8_U is not set | ||
835 | CONFIG_NLS_UTF8=m | ||
836 | |||
837 | # | ||
838 | # Profiling support | ||
839 | # | ||
840 | # CONFIG_PROFILING is not set | ||
841 | |||
842 | # | ||
843 | # Kernel hacking | ||
844 | # | ||
845 | # CONFIG_PRINTK_TIME is not set | ||
846 | CONFIG_DEBUG_KERNEL=y | ||
847 | CONFIG_MAGIC_SYSRQ=y | ||
848 | CONFIG_LOG_BUF_SHIFT=14 | ||
849 | CONFIG_DETECT_SOFTLOCKUP=y | ||
850 | # CONFIG_SCHEDSTATS is not set | ||
851 | # CONFIG_DEBUG_SLAB is not set | ||
852 | CONFIG_DEBUG_PREEMPT=y | ||
853 | # CONFIG_DEBUG_SPINLOCK is not set | ||
854 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
855 | # CONFIG_DEBUG_KOBJECT is not set | ||
856 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
857 | # CONFIG_DEBUG_INFO is not set | ||
858 | # CONFIG_DEBUG_FS is not set | ||
859 | CONFIG_FRAME_POINTER=y | ||
860 | # CONFIG_DEBUG_USER is not set | ||
861 | # CONFIG_DEBUG_WAITQ is not set | ||
862 | CONFIG_DEBUG_ERRORS=y | ||
863 | # CONFIG_DEBUG_LL is not set | ||
864 | |||
865 | # | ||
866 | # Security options | ||
867 | # | ||
868 | # CONFIG_KEYS is not set | ||
869 | # CONFIG_SECURITY is not set | ||
870 | |||
871 | # | ||
872 | # Cryptographic options | ||
873 | # | ||
874 | # CONFIG_CRYPTO is not set | ||
875 | |||
876 | # | ||
877 | # Hardware crypto devices | ||
878 | # | ||
879 | |||
880 | # | ||
881 | # Library routines | ||
882 | # | ||
883 | # CONFIG_CRC_CCITT is not set | ||
884 | # CONFIG_CRC16 is not set | ||
885 | CONFIG_CRC32=y | ||
886 | # CONFIG_LIBCRC32C is not set | ||
887 | CONFIG_ZLIB_INFLATE=y | ||
888 | CONFIG_ZLIB_DEFLATE=y | ||
diff --git a/arch/arm/configs/corgi_defconfig b/arch/arm/configs/corgi_defconfig new file mode 100644 index 000000000000..24987c89609a --- /dev/null +++ b/arch/arm/configs/corgi_defconfig | |||
@@ -0,0 +1,1523 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.14-rc3 | ||
4 | # Sun Oct 9 15:46:42 2005 | ||
5 | # | ||
6 | CONFIG_ARM=y | ||
7 | CONFIG_MMU=y | ||
8 | CONFIG_UID16=y | ||
9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
11 | |||
12 | # | ||
13 | # Code maturity level options | ||
14 | # | ||
15 | CONFIG_EXPERIMENTAL=y | ||
16 | CONFIG_CLEAN_COMPILE=y | ||
17 | CONFIG_BROKEN_ON_SMP=y | ||
18 | CONFIG_LOCK_KERNEL=y | ||
19 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
20 | |||
21 | # | ||
22 | # General setup | ||
23 | # | ||
24 | CONFIG_LOCALVERSION="" | ||
25 | CONFIG_LOCALVERSION_AUTO=y | ||
26 | CONFIG_SWAP=y | ||
27 | CONFIG_SYSVIPC=y | ||
28 | # CONFIG_POSIX_MQUEUE is not set | ||
29 | CONFIG_BSD_PROCESS_ACCT=y | ||
30 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | ||
31 | CONFIG_SYSCTL=y | ||
32 | # CONFIG_AUDIT is not set | ||
33 | CONFIG_HOTPLUG=y | ||
34 | CONFIG_KOBJECT_UEVENT=y | ||
35 | # CONFIG_IKCONFIG is not set | ||
36 | CONFIG_INITRAMFS_SOURCE="" | ||
37 | CONFIG_EMBEDDED=y | ||
38 | CONFIG_KALLSYMS=y | ||
39 | # CONFIG_KALLSYMS_ALL is not set | ||
40 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
41 | CONFIG_PRINTK=y | ||
42 | CONFIG_BUG=y | ||
43 | CONFIG_BASE_FULL=y | ||
44 | CONFIG_FUTEX=y | ||
45 | CONFIG_EPOLL=y | ||
46 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
47 | CONFIG_SHMEM=y | ||
48 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
49 | CONFIG_CC_ALIGN_LABELS=0 | ||
50 | CONFIG_CC_ALIGN_LOOPS=0 | ||
51 | CONFIG_CC_ALIGN_JUMPS=0 | ||
52 | # CONFIG_TINY_SHMEM is not set | ||
53 | CONFIG_BASE_SMALL=0 | ||
54 | |||
55 | # | ||
56 | # Loadable module support | ||
57 | # | ||
58 | CONFIG_MODULES=y | ||
59 | CONFIG_MODULE_UNLOAD=y | ||
60 | CONFIG_MODULE_FORCE_UNLOAD=y | ||
61 | CONFIG_OBSOLETE_MODPARM=y | ||
62 | # CONFIG_MODVERSIONS is not set | ||
63 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
64 | CONFIG_KMOD=y | ||
65 | |||
66 | # | ||
67 | # System Type | ||
68 | # | ||
69 | # CONFIG_ARCH_CLPS7500 is not set | ||
70 | # CONFIG_ARCH_CLPS711X is not set | ||
71 | # CONFIG_ARCH_CO285 is not set | ||
72 | # CONFIG_ARCH_EBSA110 is not set | ||
73 | # CONFIG_ARCH_CAMELOT is not set | ||
74 | # CONFIG_ARCH_FOOTBRIDGE is not set | ||
75 | # CONFIG_ARCH_INTEGRATOR is not set | ||
76 | # CONFIG_ARCH_IOP3XX is not set | ||
77 | # CONFIG_ARCH_IXP4XX is not set | ||
78 | # CONFIG_ARCH_IXP2000 is not set | ||
79 | # CONFIG_ARCH_L7200 is not set | ||
80 | CONFIG_ARCH_PXA=y | ||
81 | # CONFIG_ARCH_RPC is not set | ||
82 | # CONFIG_ARCH_SA1100 is not set | ||
83 | # CONFIG_ARCH_S3C2410 is not set | ||
84 | # CONFIG_ARCH_SHARK is not set | ||
85 | # CONFIG_ARCH_LH7A40X is not set | ||
86 | # CONFIG_ARCH_OMAP is not set | ||
87 | # CONFIG_ARCH_VERSATILE is not set | ||
88 | # CONFIG_ARCH_IMX is not set | ||
89 | # CONFIG_ARCH_H720X is not set | ||
90 | # CONFIG_ARCH_AAEC2000 is not set | ||
91 | |||
92 | # | ||
93 | # Intel PXA2xx Implementations | ||
94 | # | ||
95 | # CONFIG_ARCH_LUBBOCK is not set | ||
96 | # CONFIG_MACH_MAINSTONE is not set | ||
97 | # CONFIG_ARCH_PXA_IDP is not set | ||
98 | CONFIG_PXA_SHARPSL=y | ||
99 | CONFIG_PXA_SHARPSL_25x=y | ||
100 | # CONFIG_PXA_SHARPSL_27x is not set | ||
101 | # CONFIG_MACH_POODLE is not set | ||
102 | CONFIG_MACH_CORGI=y | ||
103 | CONFIG_MACH_SHEPHERD=y | ||
104 | CONFIG_MACH_HUSKY=y | ||
105 | CONFIG_PXA25x=y | ||
106 | CONFIG_PXA_SHARP_C7xx=y | ||
107 | |||
108 | # | ||
109 | # Processor Type | ||
110 | # | ||
111 | CONFIG_CPU_32=y | ||
112 | CONFIG_CPU_XSCALE=y | ||
113 | CONFIG_CPU_32v5=y | ||
114 | CONFIG_CPU_ABRT_EV5T=y | ||
115 | CONFIG_CPU_CACHE_VIVT=y | ||
116 | CONFIG_CPU_TLB_V4WBI=y | ||
117 | |||
118 | # | ||
119 | # Processor Features | ||
120 | # | ||
121 | CONFIG_ARM_THUMB=y | ||
122 | CONFIG_XSCALE_PMU=y | ||
123 | CONFIG_SHARP_PARAM=y | ||
124 | CONFIG_SHARP_SCOOP=y | ||
125 | |||
126 | # | ||
127 | # Bus support | ||
128 | # | ||
129 | CONFIG_ISA_DMA_API=y | ||
130 | |||
131 | # | ||
132 | # PCCARD (PCMCIA/CardBus) support | ||
133 | # | ||
134 | CONFIG_PCCARD=y | ||
135 | # CONFIG_PCMCIA_DEBUG is not set | ||
136 | CONFIG_PCMCIA=y | ||
137 | CONFIG_PCMCIA_LOAD_CIS=y | ||
138 | CONFIG_PCMCIA_IOCTL=y | ||
139 | |||
140 | # | ||
141 | # PC-card bridges | ||
142 | # | ||
143 | CONFIG_PCMCIA_PXA2XX=y | ||
144 | |||
145 | # | ||
146 | # Kernel Features | ||
147 | # | ||
148 | CONFIG_PREEMPT=y | ||
149 | # CONFIG_NO_IDLE_HZ is not set | ||
150 | # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set | ||
151 | CONFIG_SELECT_MEMORY_MODEL=y | ||
152 | CONFIG_FLATMEM_MANUAL=y | ||
153 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
154 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
155 | CONFIG_FLATMEM=y | ||
156 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
157 | # CONFIG_SPARSEMEM_STATIC is not set | ||
158 | CONFIG_ALIGNMENT_TRAP=y | ||
159 | |||
160 | # | ||
161 | # Boot options | ||
162 | # | ||
163 | CONFIG_ZBOOT_ROM_TEXT=0x0 | ||
164 | CONFIG_ZBOOT_ROM_BSS=0x0 | ||
165 | CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 debug" | ||
166 | # CONFIG_XIP_KERNEL is not set | ||
167 | |||
168 | # | ||
169 | # Floating point emulation | ||
170 | # | ||
171 | |||
172 | # | ||
173 | # At least one emulation must be selected | ||
174 | # | ||
175 | CONFIG_FPE_NWFPE=y | ||
176 | # CONFIG_FPE_NWFPE_XP is not set | ||
177 | # CONFIG_FPE_FASTFPE is not set | ||
178 | |||
179 | # | ||
180 | # Userspace binary formats | ||
181 | # | ||
182 | CONFIG_BINFMT_ELF=y | ||
183 | CONFIG_BINFMT_AOUT=m | ||
184 | CONFIG_BINFMT_MISC=m | ||
185 | # CONFIG_ARTHUR is not set | ||
186 | |||
187 | # | ||
188 | # Power management options | ||
189 | # | ||
190 | CONFIG_PM=y | ||
191 | CONFIG_APM=y | ||
192 | |||
193 | # | ||
194 | # Networking | ||
195 | # | ||
196 | CONFIG_NET=y | ||
197 | |||
198 | # | ||
199 | # Networking options | ||
200 | # | ||
201 | CONFIG_PACKET=y | ||
202 | CONFIG_PACKET_MMAP=y | ||
203 | CONFIG_UNIX=y | ||
204 | CONFIG_XFRM=y | ||
205 | CONFIG_XFRM_USER=m | ||
206 | # CONFIG_NET_KEY is not set | ||
207 | CONFIG_INET=y | ||
208 | # CONFIG_IP_MULTICAST is not set | ||
209 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
210 | CONFIG_IP_FIB_HASH=y | ||
211 | # CONFIG_IP_PNP is not set | ||
212 | # CONFIG_NET_IPIP is not set | ||
213 | # CONFIG_NET_IPGRE is not set | ||
214 | # CONFIG_ARPD is not set | ||
215 | CONFIG_SYN_COOKIES=y | ||
216 | # CONFIG_INET_AH is not set | ||
217 | # CONFIG_INET_ESP is not set | ||
218 | # CONFIG_INET_IPCOMP is not set | ||
219 | # CONFIG_INET_TUNNEL is not set | ||
220 | CONFIG_INET_DIAG=y | ||
221 | CONFIG_INET_TCP_DIAG=y | ||
222 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
223 | CONFIG_TCP_CONG_BIC=y | ||
224 | |||
225 | # | ||
226 | # IP: Virtual Server Configuration | ||
227 | # | ||
228 | # CONFIG_IP_VS is not set | ||
229 | CONFIG_IPV6=m | ||
230 | # CONFIG_IPV6_PRIVACY is not set | ||
231 | CONFIG_INET6_AH=m | ||
232 | CONFIG_INET6_ESP=m | ||
233 | CONFIG_INET6_IPCOMP=m | ||
234 | CONFIG_INET6_TUNNEL=m | ||
235 | CONFIG_IPV6_TUNNEL=m | ||
236 | CONFIG_NETFILTER=y | ||
237 | # CONFIG_NETFILTER_DEBUG is not set | ||
238 | # CONFIG_NETFILTER_NETLINK is not set | ||
239 | |||
240 | # | ||
241 | # IP: Netfilter Configuration | ||
242 | # | ||
243 | CONFIG_IP_NF_CONNTRACK=m | ||
244 | # CONFIG_IP_NF_CT_ACCT is not set | ||
245 | # CONFIG_IP_NF_CONNTRACK_MARK is not set | ||
246 | # CONFIG_IP_NF_CONNTRACK_EVENTS is not set | ||
247 | CONFIG_IP_NF_CT_PROTO_SCTP=m | ||
248 | CONFIG_IP_NF_FTP=m | ||
249 | CONFIG_IP_NF_IRC=m | ||
250 | # CONFIG_IP_NF_NETBIOS_NS is not set | ||
251 | CONFIG_IP_NF_TFTP=m | ||
252 | CONFIG_IP_NF_AMANDA=m | ||
253 | # CONFIG_IP_NF_PPTP is not set | ||
254 | CONFIG_IP_NF_QUEUE=m | ||
255 | CONFIG_IP_NF_IPTABLES=m | ||
256 | CONFIG_IP_NF_MATCH_LIMIT=m | ||
257 | CONFIG_IP_NF_MATCH_IPRANGE=m | ||
258 | CONFIG_IP_NF_MATCH_MAC=m | ||
259 | CONFIG_IP_NF_MATCH_PKTTYPE=m | ||
260 | CONFIG_IP_NF_MATCH_MARK=m | ||
261 | CONFIG_IP_NF_MATCH_MULTIPORT=m | ||
262 | CONFIG_IP_NF_MATCH_TOS=m | ||
263 | CONFIG_IP_NF_MATCH_RECENT=m | ||
264 | CONFIG_IP_NF_MATCH_ECN=m | ||
265 | CONFIG_IP_NF_MATCH_DSCP=m | ||
266 | CONFIG_IP_NF_MATCH_AH_ESP=m | ||
267 | CONFIG_IP_NF_MATCH_LENGTH=m | ||
268 | CONFIG_IP_NF_MATCH_TTL=m | ||
269 | CONFIG_IP_NF_MATCH_TCPMSS=m | ||
270 | CONFIG_IP_NF_MATCH_HELPER=m | ||
271 | CONFIG_IP_NF_MATCH_STATE=m | ||
272 | CONFIG_IP_NF_MATCH_CONNTRACK=m | ||
273 | CONFIG_IP_NF_MATCH_OWNER=m | ||
274 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | ||
275 | CONFIG_IP_NF_MATCH_REALM=m | ||
276 | CONFIG_IP_NF_MATCH_SCTP=m | ||
277 | # CONFIG_IP_NF_MATCH_DCCP is not set | ||
278 | CONFIG_IP_NF_MATCH_COMMENT=m | ||
279 | CONFIG_IP_NF_MATCH_HASHLIMIT=m | ||
280 | # CONFIG_IP_NF_MATCH_STRING is not set | ||
281 | CONFIG_IP_NF_FILTER=m | ||
282 | # CONFIG_IP_NF_TARGET_REJECT is not set | ||
283 | CONFIG_IP_NF_TARGET_LOG=m | ||
284 | CONFIG_IP_NF_TARGET_ULOG=m | ||
285 | CONFIG_IP_NF_TARGET_TCPMSS=m | ||
286 | # CONFIG_IP_NF_TARGET_NFQUEUE is not set | ||
287 | CONFIG_IP_NF_NAT=m | ||
288 | CONFIG_IP_NF_NAT_NEEDED=y | ||
289 | # CONFIG_IP_NF_TARGET_MASQUERADE is not set | ||
290 | # CONFIG_IP_NF_TARGET_REDIRECT is not set | ||
291 | # CONFIG_IP_NF_TARGET_NETMAP is not set | ||
292 | # CONFIG_IP_NF_TARGET_SAME is not set | ||
293 | # CONFIG_IP_NF_NAT_SNMP_BASIC is not set | ||
294 | CONFIG_IP_NF_NAT_IRC=m | ||
295 | CONFIG_IP_NF_NAT_FTP=m | ||
296 | CONFIG_IP_NF_NAT_TFTP=m | ||
297 | CONFIG_IP_NF_NAT_AMANDA=m | ||
298 | CONFIG_IP_NF_MANGLE=m | ||
299 | # CONFIG_IP_NF_TARGET_TOS is not set | ||
300 | # CONFIG_IP_NF_TARGET_ECN is not set | ||
301 | # CONFIG_IP_NF_TARGET_DSCP is not set | ||
302 | # CONFIG_IP_NF_TARGET_MARK is not set | ||
303 | # CONFIG_IP_NF_TARGET_CLASSIFY is not set | ||
304 | # CONFIG_IP_NF_TARGET_TTL is not set | ||
305 | CONFIG_IP_NF_RAW=m | ||
306 | # CONFIG_IP_NF_TARGET_NOTRACK is not set | ||
307 | CONFIG_IP_NF_ARPTABLES=m | ||
308 | CONFIG_IP_NF_ARPFILTER=m | ||
309 | CONFIG_IP_NF_ARP_MANGLE=m | ||
310 | |||
311 | # | ||
312 | # IPv6: Netfilter Configuration (EXPERIMENTAL) | ||
313 | # | ||
314 | CONFIG_IP6_NF_QUEUE=m | ||
315 | CONFIG_IP6_NF_IPTABLES=m | ||
316 | CONFIG_IP6_NF_MATCH_LIMIT=m | ||
317 | CONFIG_IP6_NF_MATCH_MAC=m | ||
318 | CONFIG_IP6_NF_MATCH_RT=m | ||
319 | CONFIG_IP6_NF_MATCH_OPTS=m | ||
320 | CONFIG_IP6_NF_MATCH_FRAG=m | ||
321 | CONFIG_IP6_NF_MATCH_HL=m | ||
322 | CONFIG_IP6_NF_MATCH_MULTIPORT=m | ||
323 | CONFIG_IP6_NF_MATCH_OWNER=m | ||
324 | CONFIG_IP6_NF_MATCH_MARK=m | ||
325 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m | ||
326 | CONFIG_IP6_NF_MATCH_AHESP=m | ||
327 | CONFIG_IP6_NF_MATCH_LENGTH=m | ||
328 | CONFIG_IP6_NF_MATCH_EUI64=m | ||
329 | CONFIG_IP6_NF_FILTER=m | ||
330 | # CONFIG_IP6_NF_TARGET_LOG is not set | ||
331 | # CONFIG_IP6_NF_TARGET_REJECT is not set | ||
332 | # CONFIG_IP6_NF_TARGET_NFQUEUE is not set | ||
333 | CONFIG_IP6_NF_MANGLE=m | ||
334 | # CONFIG_IP6_NF_TARGET_MARK is not set | ||
335 | # CONFIG_IP6_NF_TARGET_HL is not set | ||
336 | CONFIG_IP6_NF_RAW=m | ||
337 | |||
338 | # | ||
339 | # DCCP Configuration (EXPERIMENTAL) | ||
340 | # | ||
341 | # CONFIG_IP_DCCP is not set | ||
342 | |||
343 | # | ||
344 | # SCTP Configuration (EXPERIMENTAL) | ||
345 | # | ||
346 | # CONFIG_IP_SCTP is not set | ||
347 | # CONFIG_ATM is not set | ||
348 | # CONFIG_BRIDGE is not set | ||
349 | # CONFIG_VLAN_8021Q is not set | ||
350 | # CONFIG_DECNET is not set | ||
351 | # CONFIG_LLC2 is not set | ||
352 | # CONFIG_IPX is not set | ||
353 | # CONFIG_ATALK is not set | ||
354 | # CONFIG_X25 is not set | ||
355 | # CONFIG_LAPB is not set | ||
356 | # CONFIG_NET_DIVERT is not set | ||
357 | # CONFIG_ECONET is not set | ||
358 | # CONFIG_WAN_ROUTER is not set | ||
359 | # CONFIG_NET_SCHED is not set | ||
360 | CONFIG_NET_CLS_ROUTE=y | ||
361 | |||
362 | # | ||
363 | # Network testing | ||
364 | # | ||
365 | # CONFIG_NET_PKTGEN is not set | ||
366 | # CONFIG_HAMRADIO is not set | ||
367 | CONFIG_IRDA=m | ||
368 | |||
369 | # | ||
370 | # IrDA protocols | ||
371 | # | ||
372 | CONFIG_IRLAN=m | ||
373 | CONFIG_IRNET=m | ||
374 | CONFIG_IRCOMM=m | ||
375 | # CONFIG_IRDA_ULTRA is not set | ||
376 | |||
377 | # | ||
378 | # IrDA options | ||
379 | # | ||
380 | # CONFIG_IRDA_CACHE_LAST_LSAP is not set | ||
381 | # CONFIG_IRDA_FAST_RR is not set | ||
382 | # CONFIG_IRDA_DEBUG is not set | ||
383 | |||
384 | # | ||
385 | # Infrared-port device drivers | ||
386 | # | ||
387 | |||
388 | # | ||
389 | # SIR device drivers | ||
390 | # | ||
391 | # CONFIG_IRTTY_SIR is not set | ||
392 | |||
393 | # | ||
394 | # Dongle support | ||
395 | # | ||
396 | |||
397 | # | ||
398 | # Old SIR device drivers | ||
399 | # | ||
400 | # CONFIG_IRPORT_SIR is not set | ||
401 | |||
402 | # | ||
403 | # Old Serial dongle support | ||
404 | # | ||
405 | |||
406 | # | ||
407 | # FIR device drivers | ||
408 | # | ||
409 | # CONFIG_USB_IRDA is not set | ||
410 | # CONFIG_SIGMATEL_FIR is not set | ||
411 | # CONFIG_NSC_FIR is not set | ||
412 | # CONFIG_WINBOND_FIR is not set | ||
413 | # CONFIG_SMC_IRCC_FIR is not set | ||
414 | # CONFIG_ALI_FIR is not set | ||
415 | # CONFIG_VIA_FIR is not set | ||
416 | CONFIG_BT=m | ||
417 | CONFIG_BT_L2CAP=m | ||
418 | CONFIG_BT_SCO=m | ||
419 | CONFIG_BT_RFCOMM=m | ||
420 | CONFIG_BT_RFCOMM_TTY=y | ||
421 | CONFIG_BT_BNEP=m | ||
422 | CONFIG_BT_BNEP_MC_FILTER=y | ||
423 | CONFIG_BT_BNEP_PROTO_FILTER=y | ||
424 | CONFIG_BT_HIDP=m | ||
425 | |||
426 | # | ||
427 | # Bluetooth device drivers | ||
428 | # | ||
429 | CONFIG_BT_HCIUSB=m | ||
430 | # CONFIG_BT_HCIUSB_SCO is not set | ||
431 | CONFIG_BT_HCIUART=m | ||
432 | CONFIG_BT_HCIUART_H4=y | ||
433 | CONFIG_BT_HCIUART_BCSP=y | ||
434 | CONFIG_BT_HCIUART_BCSP_TXCRC=y | ||
435 | CONFIG_BT_HCIBCM203X=m | ||
436 | CONFIG_BT_HCIBPA10X=m | ||
437 | CONFIG_BT_HCIBFUSB=m | ||
438 | CONFIG_BT_HCIDTL1=m | ||
439 | CONFIG_BT_HCIBT3C=m | ||
440 | CONFIG_BT_HCIBLUECARD=m | ||
441 | CONFIG_BT_HCIBTUART=m | ||
442 | CONFIG_BT_HCIVHCI=m | ||
443 | CONFIG_IEEE80211=m | ||
444 | # CONFIG_IEEE80211_DEBUG is not set | ||
445 | CONFIG_IEEE80211_CRYPT_WEP=m | ||
446 | # CONFIG_IEEE80211_CRYPT_CCMP is not set | ||
447 | # CONFIG_IEEE80211_CRYPT_TKIP is not set | ||
448 | |||
449 | # | ||
450 | # Device Drivers | ||
451 | # | ||
452 | |||
453 | # | ||
454 | # Generic Driver Options | ||
455 | # | ||
456 | CONFIG_STANDALONE=y | ||
457 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
458 | CONFIG_FW_LOADER=y | ||
459 | # CONFIG_DEBUG_DRIVER is not set | ||
460 | |||
461 | # | ||
462 | # Memory Technology Devices (MTD) | ||
463 | # | ||
464 | CONFIG_MTD=y | ||
465 | # CONFIG_MTD_DEBUG is not set | ||
466 | # CONFIG_MTD_CONCAT is not set | ||
467 | CONFIG_MTD_PARTITIONS=y | ||
468 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
469 | CONFIG_MTD_CMDLINE_PARTS=y | ||
470 | # CONFIG_MTD_AFS_PARTS is not set | ||
471 | |||
472 | # | ||
473 | # User Modules And Translation Layers | ||
474 | # | ||
475 | CONFIG_MTD_CHAR=y | ||
476 | CONFIG_MTD_BLOCK=y | ||
477 | # CONFIG_FTL is not set | ||
478 | # CONFIG_NFTL is not set | ||
479 | # CONFIG_INFTL is not set | ||
480 | |||
481 | # | ||
482 | # RAM/ROM/Flash chip drivers | ||
483 | # | ||
484 | # CONFIG_MTD_CFI is not set | ||
485 | # CONFIG_MTD_JEDECPROBE is not set | ||
486 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
487 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
488 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
489 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
490 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
491 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
492 | CONFIG_MTD_CFI_I1=y | ||
493 | CONFIG_MTD_CFI_I2=y | ||
494 | # CONFIG_MTD_CFI_I4 is not set | ||
495 | # CONFIG_MTD_CFI_I8 is not set | ||
496 | # CONFIG_MTD_RAM is not set | ||
497 | CONFIG_MTD_ROM=y | ||
498 | # CONFIG_MTD_ABSENT is not set | ||
499 | |||
500 | # | ||
501 | # Mapping drivers for chip access | ||
502 | # | ||
503 | CONFIG_MTD_COMPLEX_MAPPINGS=y | ||
504 | CONFIG_MTD_SHARP_SL=y | ||
505 | # CONFIG_MTD_PLATRAM is not set | ||
506 | |||
507 | # | ||
508 | # Self-contained MTD device drivers | ||
509 | # | ||
510 | # CONFIG_MTD_SLRAM is not set | ||
511 | # CONFIG_MTD_PHRAM is not set | ||
512 | # CONFIG_MTD_MTDRAM is not set | ||
513 | # CONFIG_MTD_BLKMTD is not set | ||
514 | # CONFIG_MTD_BLOCK2MTD is not set | ||
515 | |||
516 | # | ||
517 | # Disk-On-Chip Device Drivers | ||
518 | # | ||
519 | # CONFIG_MTD_DOC2000 is not set | ||
520 | # CONFIG_MTD_DOC2001 is not set | ||
521 | # CONFIG_MTD_DOC2001PLUS is not set | ||
522 | |||
523 | # | ||
524 | # NAND Flash Device Drivers | ||
525 | # | ||
526 | CONFIG_MTD_NAND=y | ||
527 | CONFIG_MTD_NAND_VERIFY_WRITE=y | ||
528 | # CONFIG_MTD_NAND_H1900 is not set | ||
529 | CONFIG_MTD_NAND_IDS=y | ||
530 | # CONFIG_MTD_NAND_DISKONCHIP is not set | ||
531 | CONFIG_MTD_NAND_SHARPSL=y | ||
532 | # CONFIG_MTD_NAND_NANDSIM is not set | ||
533 | |||
534 | # | ||
535 | # Parallel port support | ||
536 | # | ||
537 | # CONFIG_PARPORT is not set | ||
538 | |||
539 | # | ||
540 | # Plug and Play support | ||
541 | # | ||
542 | |||
543 | # | ||
544 | # Block devices | ||
545 | # | ||
546 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
547 | CONFIG_BLK_DEV_LOOP=y | ||
548 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
549 | # CONFIG_BLK_DEV_NBD is not set | ||
550 | # CONFIG_BLK_DEV_UB is not set | ||
551 | # CONFIG_BLK_DEV_RAM is not set | ||
552 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
553 | # CONFIG_CDROM_PKTCDVD is not set | ||
554 | |||
555 | # | ||
556 | # IO Schedulers | ||
557 | # | ||
558 | CONFIG_IOSCHED_NOOP=y | ||
559 | CONFIG_IOSCHED_AS=y | ||
560 | CONFIG_IOSCHED_DEADLINE=y | ||
561 | CONFIG_IOSCHED_CFQ=y | ||
562 | # CONFIG_ATA_OVER_ETH is not set | ||
563 | |||
564 | # | ||
565 | # ATA/ATAPI/MFM/RLL support | ||
566 | # | ||
567 | CONFIG_IDE=y | ||
568 | CONFIG_BLK_DEV_IDE=y | ||
569 | |||
570 | # | ||
571 | # Please see Documentation/ide.txt for help/info on IDE drives | ||
572 | # | ||
573 | # CONFIG_BLK_DEV_IDE_SATA is not set | ||
574 | CONFIG_BLK_DEV_IDEDISK=y | ||
575 | # CONFIG_IDEDISK_MULTI_MODE is not set | ||
576 | CONFIG_BLK_DEV_IDECS=y | ||
577 | # CONFIG_BLK_DEV_IDECD is not set | ||
578 | # CONFIG_BLK_DEV_IDETAPE is not set | ||
579 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | ||
580 | # CONFIG_BLK_DEV_IDESCSI is not set | ||
581 | # CONFIG_IDE_TASK_IOCTL is not set | ||
582 | |||
583 | # | ||
584 | # IDE chipset support/bugfixes | ||
585 | # | ||
586 | CONFIG_IDE_GENERIC=y | ||
587 | # CONFIG_IDE_ARM is not set | ||
588 | # CONFIG_BLK_DEV_IDEDMA is not set | ||
589 | # CONFIG_IDEDMA_AUTO is not set | ||
590 | # CONFIG_BLK_DEV_HD is not set | ||
591 | |||
592 | # | ||
593 | # SCSI device support | ||
594 | # | ||
595 | # CONFIG_RAID_ATTRS is not set | ||
596 | CONFIG_SCSI=m | ||
597 | CONFIG_SCSI_PROC_FS=y | ||
598 | |||
599 | # | ||
600 | # SCSI support type (disk, tape, CD-ROM) | ||
601 | # | ||
602 | CONFIG_BLK_DEV_SD=m | ||
603 | CONFIG_CHR_DEV_ST=m | ||
604 | CONFIG_CHR_DEV_OSST=m | ||
605 | CONFIG_BLK_DEV_SR=m | ||
606 | # CONFIG_BLK_DEV_SR_VENDOR is not set | ||
607 | CONFIG_CHR_DEV_SG=m | ||
608 | # CONFIG_CHR_DEV_SCH is not set | ||
609 | |||
610 | # | ||
611 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | ||
612 | # | ||
613 | CONFIG_SCSI_MULTI_LUN=y | ||
614 | # CONFIG_SCSI_CONSTANTS is not set | ||
615 | # CONFIG_SCSI_LOGGING is not set | ||
616 | |||
617 | # | ||
618 | # SCSI Transport Attributes | ||
619 | # | ||
620 | # CONFIG_SCSI_SPI_ATTRS is not set | ||
621 | # CONFIG_SCSI_FC_ATTRS is not set | ||
622 | # CONFIG_SCSI_ISCSI_ATTRS is not set | ||
623 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
624 | |||
625 | # | ||
626 | # SCSI low-level drivers | ||
627 | # | ||
628 | # CONFIG_SCSI_SATA is not set | ||
629 | # CONFIG_SCSI_DEBUG is not set | ||
630 | |||
631 | # | ||
632 | # PCMCIA SCSI adapter support | ||
633 | # | ||
634 | # CONFIG_PCMCIA_AHA152X is not set | ||
635 | # CONFIG_PCMCIA_FDOMAIN is not set | ||
636 | # CONFIG_PCMCIA_NINJA_SCSI is not set | ||
637 | # CONFIG_PCMCIA_QLOGIC is not set | ||
638 | # CONFIG_PCMCIA_SYM53C500 is not set | ||
639 | |||
640 | # | ||
641 | # Multi-device support (RAID and LVM) | ||
642 | # | ||
643 | # CONFIG_MD is not set | ||
644 | |||
645 | # | ||
646 | # Fusion MPT device support | ||
647 | # | ||
648 | # CONFIG_FUSION is not set | ||
649 | |||
650 | # | ||
651 | # IEEE 1394 (FireWire) support | ||
652 | # | ||
653 | |||
654 | # | ||
655 | # I2O device support | ||
656 | # | ||
657 | |||
658 | # | ||
659 | # Network device support | ||
660 | # | ||
661 | CONFIG_NETDEVICES=y | ||
662 | # CONFIG_DUMMY is not set | ||
663 | # CONFIG_BONDING is not set | ||
664 | # CONFIG_EQUALIZER is not set | ||
665 | # CONFIG_TUN is not set | ||
666 | |||
667 | # | ||
668 | # PHY device support | ||
669 | # | ||
670 | # CONFIG_PHYLIB is not set | ||
671 | |||
672 | # | ||
673 | # Ethernet (10 or 100Mbit) | ||
674 | # | ||
675 | CONFIG_NET_ETHERNET=y | ||
676 | CONFIG_MII=m | ||
677 | # CONFIG_SMC91X is not set | ||
678 | # CONFIG_DM9000 is not set | ||
679 | |||
680 | # | ||
681 | # Ethernet (1000 Mbit) | ||
682 | # | ||
683 | |||
684 | # | ||
685 | # Ethernet (10000 Mbit) | ||
686 | # | ||
687 | |||
688 | # | ||
689 | # Token Ring devices | ||
690 | # | ||
691 | |||
692 | # | ||
693 | # Wireless LAN (non-hamradio) | ||
694 | # | ||
695 | CONFIG_NET_RADIO=y | ||
696 | |||
697 | # | ||
698 | # Obsolete Wireless cards support (pre-802.11) | ||
699 | # | ||
700 | # CONFIG_STRIP is not set | ||
701 | # CONFIG_PCMCIA_WAVELAN is not set | ||
702 | # CONFIG_PCMCIA_NETWAVE is not set | ||
703 | |||
704 | # | ||
705 | # Wireless 802.11 Frequency Hopping cards support | ||
706 | # | ||
707 | # CONFIG_PCMCIA_RAYCS is not set | ||
708 | |||
709 | # | ||
710 | # Wireless 802.11b ISA/PCI cards support | ||
711 | # | ||
712 | CONFIG_HERMES=m | ||
713 | # CONFIG_ATMEL is not set | ||
714 | |||
715 | # | ||
716 | # Wireless 802.11b Pcmcia/Cardbus cards support | ||
717 | # | ||
718 | CONFIG_PCMCIA_HERMES=m | ||
719 | CONFIG_PCMCIA_SPECTRUM=m | ||
720 | # CONFIG_AIRO_CS is not set | ||
721 | # CONFIG_PCMCIA_WL3501 is not set | ||
722 | CONFIG_HOSTAP=m | ||
723 | CONFIG_HOSTAP_FIRMWARE=y | ||
724 | CONFIG_HOSTAP_CS=m | ||
725 | CONFIG_NET_WIRELESS=y | ||
726 | |||
727 | # | ||
728 | # PCMCIA network device support | ||
729 | # | ||
730 | CONFIG_NET_PCMCIA=y | ||
731 | # CONFIG_PCMCIA_3C589 is not set | ||
732 | # CONFIG_PCMCIA_3C574 is not set | ||
733 | # CONFIG_PCMCIA_FMVJ18X is not set | ||
734 | CONFIG_PCMCIA_PCNET=m | ||
735 | # CONFIG_PCMCIA_NMCLAN is not set | ||
736 | # CONFIG_PCMCIA_SMC91C92 is not set | ||
737 | # CONFIG_PCMCIA_XIRC2PS is not set | ||
738 | # CONFIG_PCMCIA_AXNET is not set | ||
739 | |||
740 | # | ||
741 | # Wan interfaces | ||
742 | # | ||
743 | # CONFIG_WAN is not set | ||
744 | CONFIG_PPP=m | ||
745 | # CONFIG_PPP_MULTILINK is not set | ||
746 | # CONFIG_PPP_FILTER is not set | ||
747 | CONFIG_PPP_ASYNC=m | ||
748 | # CONFIG_PPP_SYNC_TTY is not set | ||
749 | # CONFIG_PPP_DEFLATE is not set | ||
750 | CONFIG_PPP_BSDCOMP=m | ||
751 | # CONFIG_PPPOE is not set | ||
752 | # CONFIG_SLIP is not set | ||
753 | # CONFIG_SHAPER is not set | ||
754 | # CONFIG_NETCONSOLE is not set | ||
755 | # CONFIG_NETPOLL is not set | ||
756 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
757 | |||
758 | # | ||
759 | # ISDN subsystem | ||
760 | # | ||
761 | # CONFIG_ISDN is not set | ||
762 | |||
763 | # | ||
764 | # Input device support | ||
765 | # | ||
766 | CONFIG_INPUT=y | ||
767 | |||
768 | # | ||
769 | # Userland interfaces | ||
770 | # | ||
771 | # CONFIG_INPUT_MOUSEDEV is not set | ||
772 | # CONFIG_INPUT_JOYDEV is not set | ||
773 | # CONFIG_INPUT_TSDEV is not set | ||
774 | CONFIG_INPUT_EVDEV=y | ||
775 | # CONFIG_INPUT_EVBUG is not set | ||
776 | |||
777 | # | ||
778 | # Input Device Drivers | ||
779 | # | ||
780 | CONFIG_INPUT_KEYBOARD=y | ||
781 | # CONFIG_KEYBOARD_ATKBD is not set | ||
782 | # CONFIG_KEYBOARD_SUNKBD is not set | ||
783 | # CONFIG_KEYBOARD_LKKBD is not set | ||
784 | # CONFIG_KEYBOARD_XTKBD is not set | ||
785 | # CONFIG_KEYBOARD_NEWTON is not set | ||
786 | CONFIG_KEYBOARD_CORGI=y | ||
787 | CONFIG_KEYBOARD_SPITZ=y | ||
788 | # CONFIG_INPUT_MOUSE is not set | ||
789 | # CONFIG_INPUT_JOYSTICK is not set | ||
790 | CONFIG_INPUT_TOUCHSCREEN=y | ||
791 | CONFIG_TOUCHSCREEN_CORGI=y | ||
792 | # CONFIG_TOUCHSCREEN_GUNZE is not set | ||
793 | # CONFIG_TOUCHSCREEN_ELO is not set | ||
794 | # CONFIG_TOUCHSCREEN_MTOUCH is not set | ||
795 | # CONFIG_TOUCHSCREEN_MK712 is not set | ||
796 | CONFIG_INPUT_MISC=y | ||
797 | CONFIG_INPUT_UINPUT=m | ||
798 | |||
799 | # | ||
800 | # Hardware I/O ports | ||
801 | # | ||
802 | # CONFIG_SERIO is not set | ||
803 | # CONFIG_GAMEPORT is not set | ||
804 | |||
805 | # | ||
806 | # Character devices | ||
807 | # | ||
808 | CONFIG_VT=y | ||
809 | CONFIG_VT_CONSOLE=y | ||
810 | CONFIG_HW_CONSOLE=y | ||
811 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
812 | |||
813 | # | ||
814 | # Serial drivers | ||
815 | # | ||
816 | CONFIG_SERIAL_8250=m | ||
817 | CONFIG_SERIAL_8250_CS=m | ||
818 | CONFIG_SERIAL_8250_NR_UARTS=4 | ||
819 | # CONFIG_SERIAL_8250_EXTENDED is not set | ||
820 | |||
821 | # | ||
822 | # Non-8250 serial port support | ||
823 | # | ||
824 | CONFIG_SERIAL_PXA=y | ||
825 | CONFIG_SERIAL_PXA_CONSOLE=y | ||
826 | CONFIG_SERIAL_CORE=y | ||
827 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
828 | CONFIG_UNIX98_PTYS=y | ||
829 | # CONFIG_LEGACY_PTYS is not set | ||
830 | |||
831 | # | ||
832 | # IPMI | ||
833 | # | ||
834 | # CONFIG_IPMI_HANDLER is not set | ||
835 | |||
836 | # | ||
837 | # Watchdog Cards | ||
838 | # | ||
839 | # CONFIG_WATCHDOG is not set | ||
840 | # CONFIG_NVRAM is not set | ||
841 | # CONFIG_RTC is not set | ||
842 | # CONFIG_DTLK is not set | ||
843 | # CONFIG_R3964 is not set | ||
844 | |||
845 | # | ||
846 | # Ftape, the floppy tape device driver | ||
847 | # | ||
848 | |||
849 | # | ||
850 | # PCMCIA character devices | ||
851 | # | ||
852 | # CONFIG_SYNCLINK_CS is not set | ||
853 | # CONFIG_RAW_DRIVER is not set | ||
854 | |||
855 | # | ||
856 | # TPM devices | ||
857 | # | ||
858 | |||
859 | # | ||
860 | # I2C support | ||
861 | # | ||
862 | CONFIG_I2C=y | ||
863 | # CONFIG_I2C_CHARDEV is not set | ||
864 | |||
865 | # | ||
866 | # I2C Algorithms | ||
867 | # | ||
868 | CONFIG_I2C_ALGOBIT=y | ||
869 | # CONFIG_I2C_ALGOPCF is not set | ||
870 | # CONFIG_I2C_ALGOPCA is not set | ||
871 | |||
872 | # | ||
873 | # I2C Hardware Bus support | ||
874 | # | ||
875 | CONFIG_I2C_PXA=y | ||
876 | # CONFIG_I2C_PXA_SLAVE is not set | ||
877 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
878 | # CONFIG_I2C_STUB is not set | ||
879 | # CONFIG_I2C_PCA_ISA is not set | ||
880 | |||
881 | # | ||
882 | # Miscellaneous I2C Chip support | ||
883 | # | ||
884 | # CONFIG_SENSORS_DS1337 is not set | ||
885 | # CONFIG_SENSORS_DS1374 is not set | ||
886 | # CONFIG_SENSORS_EEPROM is not set | ||
887 | # CONFIG_SENSORS_PCF8574 is not set | ||
888 | # CONFIG_SENSORS_PCA9539 is not set | ||
889 | # CONFIG_SENSORS_PCF8591 is not set | ||
890 | # CONFIG_SENSORS_RTC8564 is not set | ||
891 | # CONFIG_SENSORS_MAX6875 is not set | ||
892 | # CONFIG_I2C_DEBUG_CORE is not set | ||
893 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
894 | # CONFIG_I2C_DEBUG_BUS is not set | ||
895 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
896 | |||
897 | # | ||
898 | # Hardware Monitoring support | ||
899 | # | ||
900 | CONFIG_HWMON=y | ||
901 | # CONFIG_HWMON_VID is not set | ||
902 | # CONFIG_SENSORS_ADM1021 is not set | ||
903 | # CONFIG_SENSORS_ADM1025 is not set | ||
904 | # CONFIG_SENSORS_ADM1026 is not set | ||
905 | # CONFIG_SENSORS_ADM1031 is not set | ||
906 | # CONFIG_SENSORS_ADM9240 is not set | ||
907 | # CONFIG_SENSORS_ASB100 is not set | ||
908 | # CONFIG_SENSORS_ATXP1 is not set | ||
909 | # CONFIG_SENSORS_DS1621 is not set | ||
910 | # CONFIG_SENSORS_FSCHER is not set | ||
911 | # CONFIG_SENSORS_FSCPOS is not set | ||
912 | # CONFIG_SENSORS_GL518SM is not set | ||
913 | # CONFIG_SENSORS_GL520SM is not set | ||
914 | # CONFIG_SENSORS_IT87 is not set | ||
915 | # CONFIG_SENSORS_LM63 is not set | ||
916 | # CONFIG_SENSORS_LM75 is not set | ||
917 | # CONFIG_SENSORS_LM77 is not set | ||
918 | # CONFIG_SENSORS_LM78 is not set | ||
919 | # CONFIG_SENSORS_LM80 is not set | ||
920 | # CONFIG_SENSORS_LM83 is not set | ||
921 | # CONFIG_SENSORS_LM85 is not set | ||
922 | # CONFIG_SENSORS_LM87 is not set | ||
923 | # CONFIG_SENSORS_LM90 is not set | ||
924 | # CONFIG_SENSORS_LM92 is not set | ||
925 | # CONFIG_SENSORS_MAX1619 is not set | ||
926 | # CONFIG_SENSORS_PC87360 is not set | ||
927 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
928 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
929 | # CONFIG_SENSORS_W83781D is not set | ||
930 | # CONFIG_SENSORS_W83792D is not set | ||
931 | # CONFIG_SENSORS_W83L785TS is not set | ||
932 | # CONFIG_SENSORS_W83627HF is not set | ||
933 | # CONFIG_SENSORS_W83627EHF is not set | ||
934 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
935 | |||
936 | # | ||
937 | # Misc devices | ||
938 | # | ||
939 | |||
940 | # | ||
941 | # Multimedia Capabilities Port drivers | ||
942 | # | ||
943 | |||
944 | # | ||
945 | # Multimedia devices | ||
946 | # | ||
947 | CONFIG_VIDEO_DEV=m | ||
948 | |||
949 | # | ||
950 | # Video For Linux | ||
951 | # | ||
952 | |||
953 | # | ||
954 | # Video Adapters | ||
955 | # | ||
956 | # CONFIG_VIDEO_CPIA is not set | ||
957 | # CONFIG_VIDEO_SAA5246A is not set | ||
958 | # CONFIG_VIDEO_SAA5249 is not set | ||
959 | # CONFIG_TUNER_3036 is not set | ||
960 | # CONFIG_VIDEO_OVCAMCHIP is not set | ||
961 | |||
962 | # | ||
963 | # Radio Adapters | ||
964 | # | ||
965 | # CONFIG_RADIO_MAESTRO is not set | ||
966 | |||
967 | # | ||
968 | # Digital Video Broadcasting Devices | ||
969 | # | ||
970 | # CONFIG_DVB is not set | ||
971 | |||
972 | # | ||
973 | # Graphics support | ||
974 | # | ||
975 | CONFIG_FB=y | ||
976 | CONFIG_FB_CFB_FILLRECT=y | ||
977 | CONFIG_FB_CFB_COPYAREA=y | ||
978 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
979 | CONFIG_FB_SOFT_CURSOR=y | ||
980 | # CONFIG_FB_MACMODES is not set | ||
981 | # CONFIG_FB_MODE_HELPERS is not set | ||
982 | # CONFIG_FB_TILEBLITTING is not set | ||
983 | # CONFIG_FB_PXA is not set | ||
984 | CONFIG_FB_W100=y | ||
985 | # CONFIG_FB_S1D13XXX is not set | ||
986 | # CONFIG_FB_VIRTUAL is not set | ||
987 | |||
988 | # | ||
989 | # Console display driver support | ||
990 | # | ||
991 | # CONFIG_VGA_CONSOLE is not set | ||
992 | CONFIG_DUMMY_CONSOLE=y | ||
993 | CONFIG_FRAMEBUFFER_CONSOLE=y | ||
994 | CONFIG_FONTS=y | ||
995 | CONFIG_FONT_8x8=y | ||
996 | CONFIG_FONT_8x16=y | ||
997 | # CONFIG_FONT_6x11 is not set | ||
998 | # CONFIG_FONT_7x14 is not set | ||
999 | # CONFIG_FONT_PEARL_8x8 is not set | ||
1000 | # CONFIG_FONT_ACORN_8x8 is not set | ||
1001 | # CONFIG_FONT_MINI_4x6 is not set | ||
1002 | # CONFIG_FONT_SUN8x16 is not set | ||
1003 | # CONFIG_FONT_SUN12x22 is not set | ||
1004 | # CONFIG_FONT_10x18 is not set | ||
1005 | |||
1006 | # | ||
1007 | # Logo configuration | ||
1008 | # | ||
1009 | # CONFIG_LOGO is not set | ||
1010 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | ||
1011 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | ||
1012 | CONFIG_BACKLIGHT_DEVICE=y | ||
1013 | # CONFIG_LCD_CLASS_DEVICE is not set | ||
1014 | CONFIG_BACKLIGHT_CORGI=y | ||
1015 | |||
1016 | # | ||
1017 | # Sound | ||
1018 | # | ||
1019 | CONFIG_SOUND=y | ||
1020 | |||
1021 | # | ||
1022 | # Advanced Linux Sound Architecture | ||
1023 | # | ||
1024 | # CONFIG_SND is not set | ||
1025 | |||
1026 | # | ||
1027 | # Open Sound System | ||
1028 | # | ||
1029 | CONFIG_SOUND_PRIME=y | ||
1030 | # CONFIG_SOUND_MSNDCLAS is not set | ||
1031 | # CONFIG_SOUND_MSNDPIN is not set | ||
1032 | CONFIG_SOUND_OSS=y | ||
1033 | # CONFIG_SOUND_TRACEINIT is not set | ||
1034 | # CONFIG_SOUND_DMAP is not set | ||
1035 | # CONFIG_SOUND_AD1816 is not set | ||
1036 | # CONFIG_SOUND_SGALAXY is not set | ||
1037 | # CONFIG_SOUND_ADLIB is not set | ||
1038 | # CONFIG_SOUND_ACI_MIXER is not set | ||
1039 | # CONFIG_SOUND_CS4232 is not set | ||
1040 | # CONFIG_SOUND_SSCAPE is not set | ||
1041 | # CONFIG_SOUND_GUS is not set | ||
1042 | # CONFIG_SOUND_VMIDI is not set | ||
1043 | # CONFIG_SOUND_TRIX is not set | ||
1044 | # CONFIG_SOUND_MSS is not set | ||
1045 | # CONFIG_SOUND_MPU401 is not set | ||
1046 | # CONFIG_SOUND_NM256 is not set | ||
1047 | # CONFIG_SOUND_MAD16 is not set | ||
1048 | # CONFIG_SOUND_PAS is not set | ||
1049 | # CONFIG_SOUND_PSS is not set | ||
1050 | # CONFIG_SOUND_SB is not set | ||
1051 | # CONFIG_SOUND_AWE32_SYNTH is not set | ||
1052 | # CONFIG_SOUND_WAVEFRONT is not set | ||
1053 | # CONFIG_SOUND_MAUI is not set | ||
1054 | # CONFIG_SOUND_YM3812 is not set | ||
1055 | # CONFIG_SOUND_OPL3SA1 is not set | ||
1056 | # CONFIG_SOUND_OPL3SA2 is not set | ||
1057 | # CONFIG_SOUND_UART6850 is not set | ||
1058 | # CONFIG_SOUND_AEDSP16 is not set | ||
1059 | # CONFIG_SOUND_TVMIXER is not set | ||
1060 | # CONFIG_SOUND_AD1980 is not set | ||
1061 | |||
1062 | # | ||
1063 | # USB support | ||
1064 | # | ||
1065 | CONFIG_USB_ARCH_HAS_HCD=y | ||
1066 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
1067 | CONFIG_USB=m | ||
1068 | # CONFIG_USB_DEBUG is not set | ||
1069 | |||
1070 | # | ||
1071 | # Miscellaneous USB options | ||
1072 | # | ||
1073 | CONFIG_USB_DEVICEFS=y | ||
1074 | # CONFIG_USB_BANDWIDTH is not set | ||
1075 | # CONFIG_USB_DYNAMIC_MINORS is not set | ||
1076 | # CONFIG_USB_SUSPEND is not set | ||
1077 | # CONFIG_USB_OTG is not set | ||
1078 | |||
1079 | # | ||
1080 | # USB Host Controller Drivers | ||
1081 | # | ||
1082 | # CONFIG_USB_ISP116X_HCD is not set | ||
1083 | CONFIG_USB_SL811_HCD=m | ||
1084 | CONFIG_USB_SL811_CS=m | ||
1085 | |||
1086 | # | ||
1087 | # USB Device Class drivers | ||
1088 | # | ||
1089 | # CONFIG_OBSOLETE_OSS_USB_DRIVER is not set | ||
1090 | |||
1091 | # | ||
1092 | # USB Bluetooth TTY can only be used with disabled Bluetooth subsystem | ||
1093 | # | ||
1094 | CONFIG_USB_ACM=m | ||
1095 | CONFIG_USB_PRINTER=m | ||
1096 | |||
1097 | # | ||
1098 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information | ||
1099 | # | ||
1100 | CONFIG_USB_STORAGE=m | ||
1101 | # CONFIG_USB_STORAGE_DEBUG is not set | ||
1102 | # CONFIG_USB_STORAGE_DATAFAB is not set | ||
1103 | # CONFIG_USB_STORAGE_FREECOM is not set | ||
1104 | # CONFIG_USB_STORAGE_ISD200 is not set | ||
1105 | # CONFIG_USB_STORAGE_DPCM is not set | ||
1106 | # CONFIG_USB_STORAGE_USBAT is not set | ||
1107 | # CONFIG_USB_STORAGE_SDDR09 is not set | ||
1108 | # CONFIG_USB_STORAGE_SDDR55 is not set | ||
1109 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | ||
1110 | # CONFIG_USB_STORAGE_ONETOUCH is not set | ||
1111 | |||
1112 | # | ||
1113 | # USB Input Devices | ||
1114 | # | ||
1115 | CONFIG_USB_HID=m | ||
1116 | CONFIG_USB_HIDINPUT=y | ||
1117 | # CONFIG_HID_FF is not set | ||
1118 | # CONFIG_USB_HIDDEV is not set | ||
1119 | |||
1120 | # | ||
1121 | # USB HID Boot Protocol drivers | ||
1122 | # | ||
1123 | CONFIG_USB_KBD=m | ||
1124 | CONFIG_USB_MOUSE=m | ||
1125 | CONFIG_USB_AIPTEK=m | ||
1126 | CONFIG_USB_WACOM=m | ||
1127 | # CONFIG_USB_ACECAD is not set | ||
1128 | CONFIG_USB_KBTAB=m | ||
1129 | CONFIG_USB_POWERMATE=m | ||
1130 | CONFIG_USB_MTOUCH=m | ||
1131 | # CONFIG_USB_ITMTOUCH is not set | ||
1132 | CONFIG_USB_EGALAX=m | ||
1133 | # CONFIG_USB_YEALINK is not set | ||
1134 | CONFIG_USB_XPAD=m | ||
1135 | CONFIG_USB_ATI_REMOTE=m | ||
1136 | # CONFIG_USB_KEYSPAN_REMOTE is not set | ||
1137 | # CONFIG_USB_APPLETOUCH is not set | ||
1138 | |||
1139 | # | ||
1140 | # USB Imaging devices | ||
1141 | # | ||
1142 | CONFIG_USB_MDC800=m | ||
1143 | CONFIG_USB_MICROTEK=m | ||
1144 | |||
1145 | # | ||
1146 | # USB Multimedia devices | ||
1147 | # | ||
1148 | CONFIG_USB_DABUSB=m | ||
1149 | CONFIG_USB_VICAM=m | ||
1150 | CONFIG_USB_DSBR=m | ||
1151 | CONFIG_USB_IBMCAM=m | ||
1152 | CONFIG_USB_KONICAWC=m | ||
1153 | CONFIG_USB_OV511=m | ||
1154 | CONFIG_USB_SE401=m | ||
1155 | CONFIG_USB_SN9C102=m | ||
1156 | CONFIG_USB_STV680=m | ||
1157 | # CONFIG_USB_PWC is not set | ||
1158 | |||
1159 | # | ||
1160 | # USB Network Adapters | ||
1161 | # | ||
1162 | CONFIG_USB_CATC=m | ||
1163 | CONFIG_USB_KAWETH=m | ||
1164 | CONFIG_USB_PEGASUS=m | ||
1165 | CONFIG_USB_RTL8150=m | ||
1166 | CONFIG_USB_USBNET=m | ||
1167 | CONFIG_USB_NET_AX8817X=m | ||
1168 | CONFIG_USB_NET_CDCETHER=m | ||
1169 | # CONFIG_USB_NET_GL620A is not set | ||
1170 | CONFIG_USB_NET_NET1080=m | ||
1171 | # CONFIG_USB_NET_PLUSB is not set | ||
1172 | # CONFIG_USB_NET_RNDIS_HOST is not set | ||
1173 | # CONFIG_USB_NET_CDC_SUBSET is not set | ||
1174 | CONFIG_USB_NET_ZAURUS=m | ||
1175 | # CONFIG_USB_ZD1201 is not set | ||
1176 | CONFIG_USB_MON=y | ||
1177 | |||
1178 | # | ||
1179 | # USB port drivers | ||
1180 | # | ||
1181 | |||
1182 | # | ||
1183 | # USB Serial Converter support | ||
1184 | # | ||
1185 | CONFIG_USB_SERIAL=m | ||
1186 | CONFIG_USB_SERIAL_GENERIC=y | ||
1187 | # CONFIG_USB_SERIAL_AIRPRIME is not set | ||
1188 | CONFIG_USB_SERIAL_BELKIN=m | ||
1189 | # CONFIG_USB_SERIAL_WHITEHEAT is not set | ||
1190 | CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m | ||
1191 | # CONFIG_USB_SERIAL_CP2101 is not set | ||
1192 | CONFIG_USB_SERIAL_CYPRESS_M8=m | ||
1193 | CONFIG_USB_SERIAL_EMPEG=m | ||
1194 | CONFIG_USB_SERIAL_FTDI_SIO=m | ||
1195 | CONFIG_USB_SERIAL_VISOR=m | ||
1196 | CONFIG_USB_SERIAL_IPAQ=m | ||
1197 | CONFIG_USB_SERIAL_IR=m | ||
1198 | CONFIG_USB_SERIAL_EDGEPORT=m | ||
1199 | CONFIG_USB_SERIAL_EDGEPORT_TI=m | ||
1200 | CONFIG_USB_SERIAL_GARMIN=m | ||
1201 | CONFIG_USB_SERIAL_IPW=m | ||
1202 | CONFIG_USB_SERIAL_KEYSPAN_PDA=m | ||
1203 | CONFIG_USB_SERIAL_KEYSPAN=m | ||
1204 | # CONFIG_USB_SERIAL_KEYSPAN_MPR is not set | ||
1205 | # CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set | ||
1206 | # CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set | ||
1207 | # CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set | ||
1208 | # CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set | ||
1209 | # CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set | ||
1210 | # CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set | ||
1211 | # CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set | ||
1212 | # CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set | ||
1213 | # CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set | ||
1214 | # CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set | ||
1215 | # CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set | ||
1216 | CONFIG_USB_SERIAL_KLSI=m | ||
1217 | CONFIG_USB_SERIAL_KOBIL_SCT=m | ||
1218 | CONFIG_USB_SERIAL_MCT_U232=m | ||
1219 | CONFIG_USB_SERIAL_PL2303=m | ||
1220 | # CONFIG_USB_SERIAL_HP4X is not set | ||
1221 | CONFIG_USB_SERIAL_SAFE=m | ||
1222 | # CONFIG_USB_SERIAL_SAFE_PADDED is not set | ||
1223 | CONFIG_USB_SERIAL_TI=m | ||
1224 | CONFIG_USB_SERIAL_CYBERJACK=m | ||
1225 | CONFIG_USB_SERIAL_XIRCOM=m | ||
1226 | CONFIG_USB_SERIAL_OMNINET=m | ||
1227 | CONFIG_USB_EZUSB=y | ||
1228 | |||
1229 | # | ||
1230 | # USB Miscellaneous drivers | ||
1231 | # | ||
1232 | CONFIG_USB_EMI62=m | ||
1233 | CONFIG_USB_EMI26=m | ||
1234 | CONFIG_USB_AUERSWALD=m | ||
1235 | CONFIG_USB_RIO500=m | ||
1236 | CONFIG_USB_LEGOTOWER=m | ||
1237 | CONFIG_USB_LCD=m | ||
1238 | CONFIG_USB_LED=m | ||
1239 | CONFIG_USB_CYTHERM=m | ||
1240 | CONFIG_USB_PHIDGETKIT=m | ||
1241 | CONFIG_USB_PHIDGETSERVO=m | ||
1242 | CONFIG_USB_IDMOUSE=m | ||
1243 | # CONFIG_USB_LD is not set | ||
1244 | # CONFIG_USB_TEST is not set | ||
1245 | |||
1246 | # | ||
1247 | # USB DSL modem support | ||
1248 | # | ||
1249 | |||
1250 | # | ||
1251 | # USB Gadget Support | ||
1252 | # | ||
1253 | CONFIG_USB_GADGET=y | ||
1254 | # CONFIG_USB_GADGET_DEBUG_FILES is not set | ||
1255 | CONFIG_USB_GADGET_SELECTED=y | ||
1256 | # CONFIG_USB_GADGET_NET2280 is not set | ||
1257 | CONFIG_USB_GADGET_PXA2XX=y | ||
1258 | CONFIG_USB_PXA2XX=y | ||
1259 | # CONFIG_USB_PXA2XX_SMALL is not set | ||
1260 | # CONFIG_USB_GADGET_GOKU is not set | ||
1261 | # CONFIG_USB_GADGET_LH7A40X is not set | ||
1262 | # CONFIG_USB_GADGET_OMAP is not set | ||
1263 | # CONFIG_USB_GADGET_DUMMY_HCD is not set | ||
1264 | # CONFIG_USB_GADGET_DUALSPEED is not set | ||
1265 | CONFIG_USB_ZERO=m | ||
1266 | CONFIG_USB_ETH=m | ||
1267 | CONFIG_USB_ETH_RNDIS=y | ||
1268 | CONFIG_USB_GADGETFS=m | ||
1269 | CONFIG_USB_FILE_STORAGE=m | ||
1270 | # CONFIG_USB_FILE_STORAGE_TEST is not set | ||
1271 | CONFIG_USB_G_SERIAL=m | ||
1272 | |||
1273 | # | ||
1274 | # MMC/SD Card support | ||
1275 | # | ||
1276 | CONFIG_MMC=y | ||
1277 | # CONFIG_MMC_DEBUG is not set | ||
1278 | CONFIG_MMC_BLOCK=y | ||
1279 | CONFIG_MMC_PXA=y | ||
1280 | # CONFIG_MMC_WBSD is not set | ||
1281 | |||
1282 | # | ||
1283 | # File systems | ||
1284 | # | ||
1285 | CONFIG_EXT2_FS=y | ||
1286 | # CONFIG_EXT2_FS_XATTR is not set | ||
1287 | # CONFIG_EXT2_FS_XIP is not set | ||
1288 | # CONFIG_EXT3_FS is not set | ||
1289 | # CONFIG_JBD is not set | ||
1290 | # CONFIG_REISERFS_FS is not set | ||
1291 | # CONFIG_JFS_FS is not set | ||
1292 | # CONFIG_FS_POSIX_ACL is not set | ||
1293 | # CONFIG_XFS_FS is not set | ||
1294 | # CONFIG_MINIX_FS is not set | ||
1295 | # CONFIG_ROMFS_FS is not set | ||
1296 | CONFIG_INOTIFY=y | ||
1297 | # CONFIG_QUOTA is not set | ||
1298 | CONFIG_DNOTIFY=y | ||
1299 | # CONFIG_AUTOFS_FS is not set | ||
1300 | # CONFIG_AUTOFS4_FS is not set | ||
1301 | # CONFIG_FUSE_FS is not set | ||
1302 | |||
1303 | # | ||
1304 | # CD-ROM/DVD Filesystems | ||
1305 | # | ||
1306 | # CONFIG_ISO9660_FS is not set | ||
1307 | # CONFIG_UDF_FS is not set | ||
1308 | |||
1309 | # | ||
1310 | # DOS/FAT/NT Filesystems | ||
1311 | # | ||
1312 | CONFIG_FAT_FS=y | ||
1313 | CONFIG_MSDOS_FS=y | ||
1314 | CONFIG_VFAT_FS=y | ||
1315 | CONFIG_FAT_DEFAULT_CODEPAGE=437 | ||
1316 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
1317 | # CONFIG_NTFS_FS is not set | ||
1318 | |||
1319 | # | ||
1320 | # Pseudo filesystems | ||
1321 | # | ||
1322 | CONFIG_PROC_FS=y | ||
1323 | CONFIG_SYSFS=y | ||
1324 | CONFIG_TMPFS=y | ||
1325 | # CONFIG_HUGETLB_PAGE is not set | ||
1326 | CONFIG_RAMFS=y | ||
1327 | # CONFIG_RELAYFS_FS is not set | ||
1328 | |||
1329 | # | ||
1330 | # Miscellaneous filesystems | ||
1331 | # | ||
1332 | # CONFIG_ADFS_FS is not set | ||
1333 | # CONFIG_AFFS_FS is not set | ||
1334 | # CONFIG_HFS_FS is not set | ||
1335 | # CONFIG_HFSPLUS_FS is not set | ||
1336 | # CONFIG_BEFS_FS is not set | ||
1337 | # CONFIG_BFS_FS is not set | ||
1338 | # CONFIG_EFS_FS is not set | ||
1339 | # CONFIG_JFFS_FS is not set | ||
1340 | CONFIG_JFFS2_FS=y | ||
1341 | CONFIG_JFFS2_FS_DEBUG=0 | ||
1342 | CONFIG_JFFS2_FS_WRITEBUFFER=y | ||
1343 | CONFIG_JFFS2_COMPRESSION_OPTIONS=y | ||
1344 | CONFIG_JFFS2_ZLIB=y | ||
1345 | CONFIG_JFFS2_RTIME=y | ||
1346 | CONFIG_JFFS2_RUBIN=y | ||
1347 | # CONFIG_JFFS2_CMODE_NONE is not set | ||
1348 | CONFIG_JFFS2_CMODE_PRIORITY=y | ||
1349 | # CONFIG_JFFS2_CMODE_SIZE is not set | ||
1350 | CONFIG_CRAMFS=m | ||
1351 | # CONFIG_VXFS_FS is not set | ||
1352 | # CONFIG_HPFS_FS is not set | ||
1353 | # CONFIG_QNX4FS_FS is not set | ||
1354 | # CONFIG_SYSV_FS is not set | ||
1355 | # CONFIG_UFS_FS is not set | ||
1356 | |||
1357 | # | ||
1358 | # Network File Systems | ||
1359 | # | ||
1360 | CONFIG_NFS_FS=m | ||
1361 | CONFIG_NFS_V3=y | ||
1362 | # CONFIG_NFS_V3_ACL is not set | ||
1363 | CONFIG_NFS_V4=y | ||
1364 | # CONFIG_NFS_DIRECTIO is not set | ||
1365 | # CONFIG_NFSD is not set | ||
1366 | CONFIG_LOCKD=m | ||
1367 | CONFIG_LOCKD_V4=y | ||
1368 | CONFIG_NFS_COMMON=y | ||
1369 | CONFIG_SUNRPC=m | ||
1370 | CONFIG_SUNRPC_GSS=m | ||
1371 | CONFIG_RPCSEC_GSS_KRB5=m | ||
1372 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
1373 | CONFIG_SMB_FS=m | ||
1374 | CONFIG_SMB_NLS_DEFAULT=y | ||
1375 | CONFIG_SMB_NLS_REMOTE="cp437" | ||
1376 | # CONFIG_CIFS is not set | ||
1377 | # CONFIG_NCP_FS is not set | ||
1378 | # CONFIG_CODA_FS is not set | ||
1379 | # CONFIG_AFS_FS is not set | ||
1380 | # CONFIG_9P_FS is not set | ||
1381 | |||
1382 | # | ||
1383 | # Partition Types | ||
1384 | # | ||
1385 | CONFIG_PARTITION_ADVANCED=y | ||
1386 | # CONFIG_ACORN_PARTITION is not set | ||
1387 | # CONFIG_OSF_PARTITION is not set | ||
1388 | # CONFIG_AMIGA_PARTITION is not set | ||
1389 | # CONFIG_ATARI_PARTITION is not set | ||
1390 | # CONFIG_MAC_PARTITION is not set | ||
1391 | CONFIG_MSDOS_PARTITION=y | ||
1392 | # CONFIG_BSD_DISKLABEL is not set | ||
1393 | # CONFIG_MINIX_SUBPARTITION is not set | ||
1394 | # CONFIG_SOLARIS_X86_PARTITION is not set | ||
1395 | # CONFIG_UNIXWARE_DISKLABEL is not set | ||
1396 | # CONFIG_LDM_PARTITION is not set | ||
1397 | # CONFIG_SGI_PARTITION is not set | ||
1398 | # CONFIG_ULTRIX_PARTITION is not set | ||
1399 | # CONFIG_SUN_PARTITION is not set | ||
1400 | # CONFIG_EFI_PARTITION is not set | ||
1401 | |||
1402 | # | ||
1403 | # Native Language Support | ||
1404 | # | ||
1405 | CONFIG_NLS=y | ||
1406 | CONFIG_NLS_DEFAULT="cp437" | ||
1407 | CONFIG_NLS_CODEPAGE_437=y | ||
1408 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
1409 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
1410 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
1411 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
1412 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
1413 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
1414 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
1415 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
1416 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
1417 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
1418 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
1419 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
1420 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
1421 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
1422 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
1423 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
1424 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
1425 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
1426 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
1427 | # CONFIG_NLS_ISO8859_8 is not set | ||
1428 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
1429 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
1430 | # CONFIG_NLS_ASCII is not set | ||
1431 | CONFIG_NLS_ISO8859_1=y | ||
1432 | # CONFIG_NLS_ISO8859_2 is not set | ||
1433 | # CONFIG_NLS_ISO8859_3 is not set | ||
1434 | # CONFIG_NLS_ISO8859_4 is not set | ||
1435 | # CONFIG_NLS_ISO8859_5 is not set | ||
1436 | # CONFIG_NLS_ISO8859_6 is not set | ||
1437 | # CONFIG_NLS_ISO8859_7 is not set | ||
1438 | # CONFIG_NLS_ISO8859_9 is not set | ||
1439 | # CONFIG_NLS_ISO8859_13 is not set | ||
1440 | # CONFIG_NLS_ISO8859_14 is not set | ||
1441 | # CONFIG_NLS_ISO8859_15 is not set | ||
1442 | # CONFIG_NLS_KOI8_R is not set | ||
1443 | # CONFIG_NLS_KOI8_U is not set | ||
1444 | CONFIG_NLS_UTF8=y | ||
1445 | |||
1446 | # | ||
1447 | # Profiling support | ||
1448 | # | ||
1449 | CONFIG_PROFILING=y | ||
1450 | CONFIG_OPROFILE=m | ||
1451 | |||
1452 | # | ||
1453 | # Kernel hacking | ||
1454 | # | ||
1455 | # CONFIG_PRINTK_TIME is not set | ||
1456 | CONFIG_DEBUG_KERNEL=y | ||
1457 | CONFIG_MAGIC_SYSRQ=y | ||
1458 | CONFIG_LOG_BUF_SHIFT=14 | ||
1459 | CONFIG_DETECT_SOFTLOCKUP=y | ||
1460 | # CONFIG_SCHEDSTATS is not set | ||
1461 | # CONFIG_DEBUG_SLAB is not set | ||
1462 | # CONFIG_DEBUG_PREEMPT is not set | ||
1463 | # CONFIG_DEBUG_SPINLOCK is not set | ||
1464 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
1465 | # CONFIG_DEBUG_KOBJECT is not set | ||
1466 | CONFIG_DEBUG_BUGVERBOSE=y | ||
1467 | # CONFIG_DEBUG_INFO is not set | ||
1468 | # CONFIG_DEBUG_FS is not set | ||
1469 | CONFIG_FRAME_POINTER=y | ||
1470 | # CONFIG_DEBUG_USER is not set | ||
1471 | # CONFIG_DEBUG_WAITQ is not set | ||
1472 | CONFIG_DEBUG_ERRORS=y | ||
1473 | CONFIG_DEBUG_LL=y | ||
1474 | # CONFIG_DEBUG_ICEDCC is not set | ||
1475 | |||
1476 | # | ||
1477 | # Security options | ||
1478 | # | ||
1479 | # CONFIG_KEYS is not set | ||
1480 | # CONFIG_SECURITY is not set | ||
1481 | |||
1482 | # | ||
1483 | # Cryptographic options | ||
1484 | # | ||
1485 | CONFIG_CRYPTO=y | ||
1486 | CONFIG_CRYPTO_HMAC=y | ||
1487 | CONFIG_CRYPTO_NULL=m | ||
1488 | CONFIG_CRYPTO_MD4=m | ||
1489 | CONFIG_CRYPTO_MD5=m | ||
1490 | CONFIG_CRYPTO_SHA1=m | ||
1491 | CONFIG_CRYPTO_SHA256=m | ||
1492 | CONFIG_CRYPTO_SHA512=m | ||
1493 | CONFIG_CRYPTO_WP512=m | ||
1494 | # CONFIG_CRYPTO_TGR192 is not set | ||
1495 | CONFIG_CRYPTO_DES=m | ||
1496 | CONFIG_CRYPTO_BLOWFISH=m | ||
1497 | CONFIG_CRYPTO_TWOFISH=m | ||
1498 | CONFIG_CRYPTO_SERPENT=m | ||
1499 | CONFIG_CRYPTO_AES=m | ||
1500 | CONFIG_CRYPTO_CAST5=m | ||
1501 | CONFIG_CRYPTO_CAST6=m | ||
1502 | CONFIG_CRYPTO_TEA=m | ||
1503 | CONFIG_CRYPTO_ARC4=m | ||
1504 | CONFIG_CRYPTO_KHAZAD=m | ||
1505 | CONFIG_CRYPTO_ANUBIS=m | ||
1506 | CONFIG_CRYPTO_DEFLATE=m | ||
1507 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
1508 | CONFIG_CRYPTO_CRC32C=m | ||
1509 | CONFIG_CRYPTO_TEST=m | ||
1510 | |||
1511 | # | ||
1512 | # Hardware crypto devices | ||
1513 | # | ||
1514 | |||
1515 | # | ||
1516 | # Library routines | ||
1517 | # | ||
1518 | CONFIG_CRC_CCITT=y | ||
1519 | # CONFIG_CRC16 is not set | ||
1520 | CONFIG_CRC32=y | ||
1521 | CONFIG_LIBCRC32C=m | ||
1522 | CONFIG_ZLIB_INFLATE=y | ||
1523 | CONFIG_ZLIB_DEFLATE=y | ||
diff --git a/arch/arm/configs/poodle_defconfig b/arch/arm/configs/poodle_defconfig new file mode 100644 index 000000000000..72822907759f --- /dev/null +++ b/arch/arm/configs/poodle_defconfig | |||
@@ -0,0 +1,1015 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.14-rc3 | ||
4 | # Sun Oct 9 17:04:29 2005 | ||
5 | # | ||
6 | CONFIG_ARM=y | ||
7 | CONFIG_MMU=y | ||
8 | CONFIG_UID16=y | ||
9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
11 | |||
12 | # | ||
13 | # Code maturity level options | ||
14 | # | ||
15 | CONFIG_EXPERIMENTAL=y | ||
16 | CONFIG_CLEAN_COMPILE=y | ||
17 | CONFIG_BROKEN_ON_SMP=y | ||
18 | CONFIG_LOCK_KERNEL=y | ||
19 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
20 | |||
21 | # | ||
22 | # General setup | ||
23 | # | ||
24 | CONFIG_LOCALVERSION="" | ||
25 | CONFIG_LOCALVERSION_AUTO=y | ||
26 | CONFIG_SWAP=y | ||
27 | CONFIG_SYSVIPC=y | ||
28 | # CONFIG_POSIX_MQUEUE is not set | ||
29 | CONFIG_BSD_PROCESS_ACCT=y | ||
30 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | ||
31 | CONFIG_SYSCTL=y | ||
32 | # CONFIG_AUDIT is not set | ||
33 | CONFIG_HOTPLUG=y | ||
34 | CONFIG_KOBJECT_UEVENT=y | ||
35 | # CONFIG_IKCONFIG is not set | ||
36 | CONFIG_INITRAMFS_SOURCE="" | ||
37 | CONFIG_EMBEDDED=y | ||
38 | CONFIG_KALLSYMS=y | ||
39 | # CONFIG_KALLSYMS_ALL is not set | ||
40 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
41 | CONFIG_PRINTK=y | ||
42 | CONFIG_BUG=y | ||
43 | CONFIG_BASE_FULL=y | ||
44 | CONFIG_FUTEX=y | ||
45 | CONFIG_EPOLL=y | ||
46 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
47 | CONFIG_SHMEM=y | ||
48 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
49 | CONFIG_CC_ALIGN_LABELS=0 | ||
50 | CONFIG_CC_ALIGN_LOOPS=0 | ||
51 | CONFIG_CC_ALIGN_JUMPS=0 | ||
52 | # CONFIG_TINY_SHMEM is not set | ||
53 | CONFIG_BASE_SMALL=0 | ||
54 | |||
55 | # | ||
56 | # Loadable module support | ||
57 | # | ||
58 | CONFIG_MODULES=y | ||
59 | CONFIG_MODULE_UNLOAD=y | ||
60 | CONFIG_MODULE_FORCE_UNLOAD=y | ||
61 | CONFIG_OBSOLETE_MODPARM=y | ||
62 | CONFIG_MODVERSIONS=y | ||
63 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
64 | CONFIG_KMOD=y | ||
65 | |||
66 | # | ||
67 | # System Type | ||
68 | # | ||
69 | # CONFIG_ARCH_CLPS7500 is not set | ||
70 | # CONFIG_ARCH_CLPS711X is not set | ||
71 | # CONFIG_ARCH_CO285 is not set | ||
72 | # CONFIG_ARCH_EBSA110 is not set | ||
73 | # CONFIG_ARCH_CAMELOT is not set | ||
74 | # CONFIG_ARCH_FOOTBRIDGE is not set | ||
75 | # CONFIG_ARCH_INTEGRATOR is not set | ||
76 | # CONFIG_ARCH_IOP3XX is not set | ||
77 | # CONFIG_ARCH_IXP4XX is not set | ||
78 | # CONFIG_ARCH_IXP2000 is not set | ||
79 | # CONFIG_ARCH_L7200 is not set | ||
80 | CONFIG_ARCH_PXA=y | ||
81 | # CONFIG_ARCH_RPC is not set | ||
82 | # CONFIG_ARCH_SA1100 is not set | ||
83 | # CONFIG_ARCH_S3C2410 is not set | ||
84 | # CONFIG_ARCH_SHARK is not set | ||
85 | # CONFIG_ARCH_LH7A40X is not set | ||
86 | # CONFIG_ARCH_OMAP is not set | ||
87 | # CONFIG_ARCH_VERSATILE is not set | ||
88 | # CONFIG_ARCH_IMX is not set | ||
89 | # CONFIG_ARCH_H720X is not set | ||
90 | # CONFIG_ARCH_AAEC2000 is not set | ||
91 | |||
92 | # | ||
93 | # Intel PXA2xx Implementations | ||
94 | # | ||
95 | # CONFIG_ARCH_LUBBOCK is not set | ||
96 | # CONFIG_MACH_MAINSTONE is not set | ||
97 | # CONFIG_ARCH_PXA_IDP is not set | ||
98 | CONFIG_PXA_SHARPSL=y | ||
99 | CONFIG_PXA_SHARPSL_25x=y | ||
100 | # CONFIG_PXA_SHARPSL_27x is not set | ||
101 | CONFIG_MACH_POODLE=y | ||
102 | # CONFIG_MACH_CORGI is not set | ||
103 | # CONFIG_MACH_SHEPHERD is not set | ||
104 | # CONFIG_MACH_HUSKY is not set | ||
105 | CONFIG_PXA25x=y | ||
106 | |||
107 | # | ||
108 | # Processor Type | ||
109 | # | ||
110 | CONFIG_CPU_32=y | ||
111 | CONFIG_CPU_XSCALE=y | ||
112 | CONFIG_CPU_32v5=y | ||
113 | CONFIG_CPU_ABRT_EV5T=y | ||
114 | CONFIG_CPU_CACHE_VIVT=y | ||
115 | CONFIG_CPU_TLB_V4WBI=y | ||
116 | |||
117 | # | ||
118 | # Processor Features | ||
119 | # | ||
120 | CONFIG_ARM_THUMB=y | ||
121 | CONFIG_XSCALE_PMU=y | ||
122 | CONFIG_SHARP_LOCOMO=y | ||
123 | CONFIG_SHARP_PARAM=y | ||
124 | CONFIG_SHARP_SCOOP=y | ||
125 | |||
126 | # | ||
127 | # Bus support | ||
128 | # | ||
129 | CONFIG_ISA_DMA_API=y | ||
130 | |||
131 | # | ||
132 | # PCCARD (PCMCIA/CardBus) support | ||
133 | # | ||
134 | CONFIG_PCCARD=y | ||
135 | # CONFIG_PCMCIA_DEBUG is not set | ||
136 | CONFIG_PCMCIA=y | ||
137 | CONFIG_PCMCIA_LOAD_CIS=y | ||
138 | CONFIG_PCMCIA_IOCTL=y | ||
139 | |||
140 | # | ||
141 | # PC-card bridges | ||
142 | # | ||
143 | CONFIG_PCMCIA_PXA2XX=y | ||
144 | |||
145 | # | ||
146 | # Kernel Features | ||
147 | # | ||
148 | CONFIG_PREEMPT=y | ||
149 | # CONFIG_NO_IDLE_HZ is not set | ||
150 | # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set | ||
151 | CONFIG_SELECT_MEMORY_MODEL=y | ||
152 | CONFIG_FLATMEM_MANUAL=y | ||
153 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
154 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
155 | CONFIG_FLATMEM=y | ||
156 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
157 | # CONFIG_SPARSEMEM_STATIC is not set | ||
158 | CONFIG_ALIGNMENT_TRAP=y | ||
159 | |||
160 | # | ||
161 | # Boot options | ||
162 | # | ||
163 | CONFIG_ZBOOT_ROM_TEXT=0x0 | ||
164 | CONFIG_ZBOOT_ROM_BSS=0x0 | ||
165 | CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 debug" | ||
166 | # CONFIG_XIP_KERNEL is not set | ||
167 | |||
168 | # | ||
169 | # Floating point emulation | ||
170 | # | ||
171 | |||
172 | # | ||
173 | # At least one emulation must be selected | ||
174 | # | ||
175 | CONFIG_FPE_NWFPE=y | ||
176 | # CONFIG_FPE_NWFPE_XP is not set | ||
177 | # CONFIG_FPE_FASTFPE is not set | ||
178 | |||
179 | # | ||
180 | # Userspace binary formats | ||
181 | # | ||
182 | CONFIG_BINFMT_ELF=y | ||
183 | CONFIG_BINFMT_AOUT=m | ||
184 | CONFIG_BINFMT_MISC=m | ||
185 | # CONFIG_ARTHUR is not set | ||
186 | |||
187 | # | ||
188 | # Power management options | ||
189 | # | ||
190 | CONFIG_PM=y | ||
191 | CONFIG_APM=y | ||
192 | |||
193 | # | ||
194 | # Networking | ||
195 | # | ||
196 | CONFIG_NET=y | ||
197 | |||
198 | # | ||
199 | # Networking options | ||
200 | # | ||
201 | CONFIG_PACKET=y | ||
202 | CONFIG_PACKET_MMAP=y | ||
203 | CONFIG_UNIX=y | ||
204 | # CONFIG_NET_KEY is not set | ||
205 | CONFIG_INET=y | ||
206 | # CONFIG_IP_MULTICAST is not set | ||
207 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
208 | CONFIG_IP_FIB_HASH=y | ||
209 | # CONFIG_IP_PNP is not set | ||
210 | # CONFIG_NET_IPIP is not set | ||
211 | # CONFIG_NET_IPGRE is not set | ||
212 | # CONFIG_ARPD is not set | ||
213 | CONFIG_SYN_COOKIES=y | ||
214 | # CONFIG_INET_AH is not set | ||
215 | # CONFIG_INET_ESP is not set | ||
216 | # CONFIG_INET_IPCOMP is not set | ||
217 | # CONFIG_INET_TUNNEL is not set | ||
218 | CONFIG_INET_DIAG=y | ||
219 | CONFIG_INET_TCP_DIAG=y | ||
220 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
221 | CONFIG_TCP_CONG_BIC=y | ||
222 | # CONFIG_IPV6 is not set | ||
223 | # CONFIG_NETFILTER is not set | ||
224 | |||
225 | # | ||
226 | # DCCP Configuration (EXPERIMENTAL) | ||
227 | # | ||
228 | # CONFIG_IP_DCCP is not set | ||
229 | |||
230 | # | ||
231 | # SCTP Configuration (EXPERIMENTAL) | ||
232 | # | ||
233 | # CONFIG_IP_SCTP is not set | ||
234 | # CONFIG_ATM is not set | ||
235 | # CONFIG_BRIDGE is not set | ||
236 | # CONFIG_VLAN_8021Q is not set | ||
237 | # CONFIG_DECNET is not set | ||
238 | # CONFIG_LLC2 is not set | ||
239 | # CONFIG_IPX is not set | ||
240 | # CONFIG_ATALK is not set | ||
241 | # CONFIG_X25 is not set | ||
242 | # CONFIG_LAPB is not set | ||
243 | # CONFIG_NET_DIVERT is not set | ||
244 | # CONFIG_ECONET is not set | ||
245 | # CONFIG_WAN_ROUTER is not set | ||
246 | # CONFIG_NET_SCHED is not set | ||
247 | # CONFIG_NET_CLS_ROUTE is not set | ||
248 | |||
249 | # | ||
250 | # Network testing | ||
251 | # | ||
252 | # CONFIG_NET_PKTGEN is not set | ||
253 | # CONFIG_HAMRADIO is not set | ||
254 | # CONFIG_IRDA is not set | ||
255 | # CONFIG_BT is not set | ||
256 | # CONFIG_IEEE80211 is not set | ||
257 | |||
258 | # | ||
259 | # Device Drivers | ||
260 | # | ||
261 | |||
262 | # | ||
263 | # Generic Driver Options | ||
264 | # | ||
265 | CONFIG_STANDALONE=y | ||
266 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
267 | CONFIG_FW_LOADER=y | ||
268 | # CONFIG_DEBUG_DRIVER is not set | ||
269 | |||
270 | # | ||
271 | # Memory Technology Devices (MTD) | ||
272 | # | ||
273 | CONFIG_MTD=y | ||
274 | # CONFIG_MTD_DEBUG is not set | ||
275 | # CONFIG_MTD_CONCAT is not set | ||
276 | CONFIG_MTD_PARTITIONS=y | ||
277 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
278 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
279 | # CONFIG_MTD_AFS_PARTS is not set | ||
280 | |||
281 | # | ||
282 | # User Modules And Translation Layers | ||
283 | # | ||
284 | CONFIG_MTD_CHAR=y | ||
285 | CONFIG_MTD_BLOCK=y | ||
286 | # CONFIG_FTL is not set | ||
287 | # CONFIG_NFTL is not set | ||
288 | # CONFIG_INFTL is not set | ||
289 | |||
290 | # | ||
291 | # RAM/ROM/Flash chip drivers | ||
292 | # | ||
293 | # CONFIG_MTD_CFI is not set | ||
294 | # CONFIG_MTD_JEDECPROBE is not set | ||
295 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
296 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
297 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
298 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
299 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
300 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
301 | CONFIG_MTD_CFI_I1=y | ||
302 | CONFIG_MTD_CFI_I2=y | ||
303 | # CONFIG_MTD_CFI_I4 is not set | ||
304 | # CONFIG_MTD_CFI_I8 is not set | ||
305 | # CONFIG_MTD_RAM is not set | ||
306 | # CONFIG_MTD_ROM is not set | ||
307 | # CONFIG_MTD_ABSENT is not set | ||
308 | |||
309 | # | ||
310 | # Mapping drivers for chip access | ||
311 | # | ||
312 | CONFIG_MTD_COMPLEX_MAPPINGS=y | ||
313 | CONFIG_MTD_SHARP_SL=y | ||
314 | # CONFIG_MTD_PLATRAM is not set | ||
315 | |||
316 | # | ||
317 | # Self-contained MTD device drivers | ||
318 | # | ||
319 | # CONFIG_MTD_SLRAM is not set | ||
320 | # CONFIG_MTD_PHRAM is not set | ||
321 | # CONFIG_MTD_MTDRAM is not set | ||
322 | # CONFIG_MTD_BLKMTD is not set | ||
323 | # CONFIG_MTD_BLOCK2MTD is not set | ||
324 | |||
325 | # | ||
326 | # Disk-On-Chip Device Drivers | ||
327 | # | ||
328 | # CONFIG_MTD_DOC2000 is not set | ||
329 | # CONFIG_MTD_DOC2001 is not set | ||
330 | # CONFIG_MTD_DOC2001PLUS is not set | ||
331 | |||
332 | # | ||
333 | # NAND Flash Device Drivers | ||
334 | # | ||
335 | CONFIG_MTD_NAND=y | ||
336 | CONFIG_MTD_NAND_VERIFY_WRITE=y | ||
337 | # CONFIG_MTD_NAND_H1900 is not set | ||
338 | CONFIG_MTD_NAND_IDS=y | ||
339 | # CONFIG_MTD_NAND_DISKONCHIP is not set | ||
340 | CONFIG_MTD_NAND_SHARPSL=y | ||
341 | # CONFIG_MTD_NAND_NANDSIM is not set | ||
342 | |||
343 | # | ||
344 | # Parallel port support | ||
345 | # | ||
346 | # CONFIG_PARPORT is not set | ||
347 | |||
348 | # | ||
349 | # Plug and Play support | ||
350 | # | ||
351 | |||
352 | # | ||
353 | # Block devices | ||
354 | # | ||
355 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
356 | CONFIG_BLK_DEV_LOOP=y | ||
357 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
358 | # CONFIG_BLK_DEV_NBD is not set | ||
359 | # CONFIG_BLK_DEV_RAM is not set | ||
360 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
361 | # CONFIG_CDROM_PKTCDVD is not set | ||
362 | |||
363 | # | ||
364 | # IO Schedulers | ||
365 | # | ||
366 | CONFIG_IOSCHED_NOOP=y | ||
367 | CONFIG_IOSCHED_AS=y | ||
368 | CONFIG_IOSCHED_DEADLINE=y | ||
369 | CONFIG_IOSCHED_CFQ=y | ||
370 | # CONFIG_ATA_OVER_ETH is not set | ||
371 | |||
372 | # | ||
373 | # ATA/ATAPI/MFM/RLL support | ||
374 | # | ||
375 | CONFIG_IDE=y | ||
376 | CONFIG_BLK_DEV_IDE=y | ||
377 | |||
378 | # | ||
379 | # Please see Documentation/ide.txt for help/info on IDE drives | ||
380 | # | ||
381 | # CONFIG_BLK_DEV_IDE_SATA is not set | ||
382 | CONFIG_BLK_DEV_IDEDISK=y | ||
383 | # CONFIG_IDEDISK_MULTI_MODE is not set | ||
384 | CONFIG_BLK_DEV_IDECS=y | ||
385 | # CONFIG_BLK_DEV_IDECD is not set | ||
386 | # CONFIG_BLK_DEV_IDETAPE is not set | ||
387 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | ||
388 | # CONFIG_IDE_TASK_IOCTL is not set | ||
389 | |||
390 | # | ||
391 | # IDE chipset support/bugfixes | ||
392 | # | ||
393 | CONFIG_IDE_GENERIC=y | ||
394 | # CONFIG_IDE_ARM is not set | ||
395 | # CONFIG_BLK_DEV_IDEDMA is not set | ||
396 | # CONFIG_IDEDMA_AUTO is not set | ||
397 | # CONFIG_BLK_DEV_HD is not set | ||
398 | |||
399 | # | ||
400 | # SCSI device support | ||
401 | # | ||
402 | # CONFIG_RAID_ATTRS is not set | ||
403 | # CONFIG_SCSI is not set | ||
404 | |||
405 | # | ||
406 | # Multi-device support (RAID and LVM) | ||
407 | # | ||
408 | # CONFIG_MD is not set | ||
409 | |||
410 | # | ||
411 | # Fusion MPT device support | ||
412 | # | ||
413 | # CONFIG_FUSION is not set | ||
414 | |||
415 | # | ||
416 | # IEEE 1394 (FireWire) support | ||
417 | # | ||
418 | |||
419 | # | ||
420 | # I2O device support | ||
421 | # | ||
422 | |||
423 | # | ||
424 | # Network device support | ||
425 | # | ||
426 | CONFIG_NETDEVICES=y | ||
427 | # CONFIG_DUMMY is not set | ||
428 | # CONFIG_BONDING is not set | ||
429 | # CONFIG_EQUALIZER is not set | ||
430 | # CONFIG_TUN is not set | ||
431 | |||
432 | # | ||
433 | # PHY device support | ||
434 | # | ||
435 | # CONFIG_PHYLIB is not set | ||
436 | |||
437 | # | ||
438 | # Ethernet (10 or 100Mbit) | ||
439 | # | ||
440 | CONFIG_NET_ETHERNET=y | ||
441 | # CONFIG_MII is not set | ||
442 | # CONFIG_SMC91X is not set | ||
443 | # CONFIG_DM9000 is not set | ||
444 | |||
445 | # | ||
446 | # Ethernet (1000 Mbit) | ||
447 | # | ||
448 | |||
449 | # | ||
450 | # Ethernet (10000 Mbit) | ||
451 | # | ||
452 | |||
453 | # | ||
454 | # Token Ring devices | ||
455 | # | ||
456 | |||
457 | # | ||
458 | # Wireless LAN (non-hamradio) | ||
459 | # | ||
460 | CONFIG_NET_RADIO=y | ||
461 | |||
462 | # | ||
463 | # Obsolete Wireless cards support (pre-802.11) | ||
464 | # | ||
465 | # CONFIG_STRIP is not set | ||
466 | # CONFIG_PCMCIA_WAVELAN is not set | ||
467 | # CONFIG_PCMCIA_NETWAVE is not set | ||
468 | |||
469 | # | ||
470 | # Wireless 802.11 Frequency Hopping cards support | ||
471 | # | ||
472 | # CONFIG_PCMCIA_RAYCS is not set | ||
473 | |||
474 | # | ||
475 | # Wireless 802.11b ISA/PCI cards support | ||
476 | # | ||
477 | # CONFIG_HERMES is not set | ||
478 | # CONFIG_ATMEL is not set | ||
479 | |||
480 | # | ||
481 | # Wireless 802.11b Pcmcia/Cardbus cards support | ||
482 | # | ||
483 | # CONFIG_AIRO_CS is not set | ||
484 | # CONFIG_PCMCIA_WL3501 is not set | ||
485 | # CONFIG_HOSTAP is not set | ||
486 | CONFIG_NET_WIRELESS=y | ||
487 | |||
488 | # | ||
489 | # PCMCIA network device support | ||
490 | # | ||
491 | CONFIG_NET_PCMCIA=y | ||
492 | # CONFIG_PCMCIA_3C589 is not set | ||
493 | # CONFIG_PCMCIA_3C574 is not set | ||
494 | # CONFIG_PCMCIA_FMVJ18X is not set | ||
495 | CONFIG_PCMCIA_PCNET=y | ||
496 | # CONFIG_PCMCIA_NMCLAN is not set | ||
497 | # CONFIG_PCMCIA_SMC91C92 is not set | ||
498 | # CONFIG_PCMCIA_XIRC2PS is not set | ||
499 | # CONFIG_PCMCIA_AXNET is not set | ||
500 | |||
501 | # | ||
502 | # Wan interfaces | ||
503 | # | ||
504 | # CONFIG_WAN is not set | ||
505 | CONFIG_PPP=m | ||
506 | # CONFIG_PPP_MULTILINK is not set | ||
507 | # CONFIG_PPP_FILTER is not set | ||
508 | CONFIG_PPP_ASYNC=m | ||
509 | # CONFIG_PPP_SYNC_TTY is not set | ||
510 | # CONFIG_PPP_DEFLATE is not set | ||
511 | CONFIG_PPP_BSDCOMP=m | ||
512 | # CONFIG_PPPOE is not set | ||
513 | # CONFIG_SLIP is not set | ||
514 | # CONFIG_SHAPER is not set | ||
515 | # CONFIG_NETCONSOLE is not set | ||
516 | # CONFIG_NETPOLL is not set | ||
517 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
518 | |||
519 | # | ||
520 | # ISDN subsystem | ||
521 | # | ||
522 | # CONFIG_ISDN is not set | ||
523 | |||
524 | # | ||
525 | # Input device support | ||
526 | # | ||
527 | CONFIG_INPUT=y | ||
528 | |||
529 | # | ||
530 | # Userland interfaces | ||
531 | # | ||
532 | # CONFIG_INPUT_MOUSEDEV is not set | ||
533 | # CONFIG_INPUT_JOYDEV is not set | ||
534 | CONFIG_INPUT_TSDEV=y | ||
535 | CONFIG_INPUT_TSDEV_SCREEN_X=240 | ||
536 | CONFIG_INPUT_TSDEV_SCREEN_Y=320 | ||
537 | CONFIG_INPUT_EVDEV=y | ||
538 | CONFIG_INPUT_EVBUG=y | ||
539 | |||
540 | # | ||
541 | # Input Device Drivers | ||
542 | # | ||
543 | CONFIG_INPUT_KEYBOARD=y | ||
544 | # CONFIG_KEYBOARD_ATKBD is not set | ||
545 | # CONFIG_KEYBOARD_SUNKBD is not set | ||
546 | # CONFIG_KEYBOARD_LKKBD is not set | ||
547 | CONFIG_KEYBOARD_LOCOMO=y | ||
548 | # CONFIG_KEYBOARD_XTKBD is not set | ||
549 | # CONFIG_KEYBOARD_NEWTON is not set | ||
550 | # CONFIG_KEYBOARD_CORGI is not set | ||
551 | CONFIG_KEYBOARD_SPITZ=y | ||
552 | # CONFIG_INPUT_MOUSE is not set | ||
553 | # CONFIG_INPUT_JOYSTICK is not set | ||
554 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
555 | # CONFIG_INPUT_MISC is not set | ||
556 | |||
557 | # | ||
558 | # Hardware I/O ports | ||
559 | # | ||
560 | # CONFIG_SERIO is not set | ||
561 | # CONFIG_GAMEPORT is not set | ||
562 | |||
563 | # | ||
564 | # Character devices | ||
565 | # | ||
566 | CONFIG_VT=y | ||
567 | CONFIG_VT_CONSOLE=y | ||
568 | CONFIG_HW_CONSOLE=y | ||
569 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
570 | |||
571 | # | ||
572 | # Serial drivers | ||
573 | # | ||
574 | # CONFIG_SERIAL_8250 is not set | ||
575 | |||
576 | # | ||
577 | # Non-8250 serial port support | ||
578 | # | ||
579 | CONFIG_SERIAL_PXA=y | ||
580 | CONFIG_SERIAL_PXA_CONSOLE=y | ||
581 | CONFIG_SERIAL_CORE=y | ||
582 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
583 | CONFIG_UNIX98_PTYS=y | ||
584 | # CONFIG_LEGACY_PTYS is not set | ||
585 | |||
586 | # | ||
587 | # IPMI | ||
588 | # | ||
589 | # CONFIG_IPMI_HANDLER is not set | ||
590 | |||
591 | # | ||
592 | # Watchdog Cards | ||
593 | # | ||
594 | # CONFIG_WATCHDOG is not set | ||
595 | # CONFIG_NVRAM is not set | ||
596 | # CONFIG_RTC is not set | ||
597 | # CONFIG_DTLK is not set | ||
598 | # CONFIG_R3964 is not set | ||
599 | |||
600 | # | ||
601 | # Ftape, the floppy tape device driver | ||
602 | # | ||
603 | |||
604 | # | ||
605 | # PCMCIA character devices | ||
606 | # | ||
607 | # CONFIG_SYNCLINK_CS is not set | ||
608 | # CONFIG_RAW_DRIVER is not set | ||
609 | |||
610 | # | ||
611 | # TPM devices | ||
612 | # | ||
613 | |||
614 | # | ||
615 | # I2C support | ||
616 | # | ||
617 | CONFIG_I2C=y | ||
618 | # CONFIG_I2C_CHARDEV is not set | ||
619 | |||
620 | # | ||
621 | # I2C Algorithms | ||
622 | # | ||
623 | CONFIG_I2C_ALGOBIT=y | ||
624 | # CONFIG_I2C_ALGOPCF is not set | ||
625 | # CONFIG_I2C_ALGOPCA is not set | ||
626 | |||
627 | # | ||
628 | # I2C Hardware Bus support | ||
629 | # | ||
630 | # CONFIG_I2C_PXA is not set | ||
631 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
632 | # CONFIG_I2C_STUB is not set | ||
633 | # CONFIG_I2C_PCA_ISA is not set | ||
634 | |||
635 | # | ||
636 | # Miscellaneous I2C Chip support | ||
637 | # | ||
638 | # CONFIG_SENSORS_DS1337 is not set | ||
639 | # CONFIG_SENSORS_DS1374 is not set | ||
640 | # CONFIG_SENSORS_EEPROM is not set | ||
641 | # CONFIG_SENSORS_PCF8574 is not set | ||
642 | # CONFIG_SENSORS_PCA9539 is not set | ||
643 | # CONFIG_SENSORS_PCF8591 is not set | ||
644 | # CONFIG_SENSORS_RTC8564 is not set | ||
645 | # CONFIG_SENSORS_MAX6875 is not set | ||
646 | CONFIG_I2C_DEBUG_CORE=y | ||
647 | CONFIG_I2C_DEBUG_ALGO=y | ||
648 | CONFIG_I2C_DEBUG_BUS=y | ||
649 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
650 | |||
651 | # | ||
652 | # Hardware Monitoring support | ||
653 | # | ||
654 | CONFIG_HWMON=y | ||
655 | # CONFIG_HWMON_VID is not set | ||
656 | # CONFIG_SENSORS_ADM1021 is not set | ||
657 | # CONFIG_SENSORS_ADM1025 is not set | ||
658 | # CONFIG_SENSORS_ADM1026 is not set | ||
659 | # CONFIG_SENSORS_ADM1031 is not set | ||
660 | # CONFIG_SENSORS_ADM9240 is not set | ||
661 | # CONFIG_SENSORS_ASB100 is not set | ||
662 | # CONFIG_SENSORS_ATXP1 is not set | ||
663 | # CONFIG_SENSORS_DS1621 is not set | ||
664 | # CONFIG_SENSORS_FSCHER is not set | ||
665 | # CONFIG_SENSORS_FSCPOS is not set | ||
666 | # CONFIG_SENSORS_GL518SM is not set | ||
667 | # CONFIG_SENSORS_GL520SM is not set | ||
668 | # CONFIG_SENSORS_IT87 is not set | ||
669 | # CONFIG_SENSORS_LM63 is not set | ||
670 | # CONFIG_SENSORS_LM75 is not set | ||
671 | # CONFIG_SENSORS_LM77 is not set | ||
672 | # CONFIG_SENSORS_LM78 is not set | ||
673 | # CONFIG_SENSORS_LM80 is not set | ||
674 | # CONFIG_SENSORS_LM83 is not set | ||
675 | # CONFIG_SENSORS_LM85 is not set | ||
676 | # CONFIG_SENSORS_LM87 is not set | ||
677 | # CONFIG_SENSORS_LM90 is not set | ||
678 | # CONFIG_SENSORS_LM92 is not set | ||
679 | # CONFIG_SENSORS_MAX1619 is not set | ||
680 | # CONFIG_SENSORS_PC87360 is not set | ||
681 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
682 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
683 | # CONFIG_SENSORS_W83781D is not set | ||
684 | # CONFIG_SENSORS_W83792D is not set | ||
685 | # CONFIG_SENSORS_W83L785TS is not set | ||
686 | # CONFIG_SENSORS_W83627HF is not set | ||
687 | # CONFIG_SENSORS_W83627EHF is not set | ||
688 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
689 | |||
690 | # | ||
691 | # Misc devices | ||
692 | # | ||
693 | |||
694 | # | ||
695 | # Multimedia Capabilities Port drivers | ||
696 | # | ||
697 | |||
698 | # | ||
699 | # Multimedia devices | ||
700 | # | ||
701 | CONFIG_VIDEO_DEV=m | ||
702 | |||
703 | # | ||
704 | # Video For Linux | ||
705 | # | ||
706 | |||
707 | # | ||
708 | # Video Adapters | ||
709 | # | ||
710 | # CONFIG_VIDEO_CPIA is not set | ||
711 | # CONFIG_VIDEO_SAA5246A is not set | ||
712 | # CONFIG_VIDEO_SAA5249 is not set | ||
713 | # CONFIG_TUNER_3036 is not set | ||
714 | # CONFIG_VIDEO_OVCAMCHIP is not set | ||
715 | |||
716 | # | ||
717 | # Radio Adapters | ||
718 | # | ||
719 | # CONFIG_RADIO_MAESTRO is not set | ||
720 | |||
721 | # | ||
722 | # Digital Video Broadcasting Devices | ||
723 | # | ||
724 | # CONFIG_DVB is not set | ||
725 | |||
726 | # | ||
727 | # Graphics support | ||
728 | # | ||
729 | CONFIG_FB=y | ||
730 | CONFIG_FB_CFB_FILLRECT=y | ||
731 | CONFIG_FB_CFB_COPYAREA=y | ||
732 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
733 | CONFIG_FB_SOFT_CURSOR=y | ||
734 | # CONFIG_FB_MACMODES is not set | ||
735 | CONFIG_FB_MODE_HELPERS=y | ||
736 | # CONFIG_FB_TILEBLITTING is not set | ||
737 | CONFIG_FB_PXA=y | ||
738 | # CONFIG_FB_W100 is not set | ||
739 | # CONFIG_FB_PXA_PARAMETERS is not set | ||
740 | # CONFIG_FB_S1D13XXX is not set | ||
741 | # CONFIG_FB_VIRTUAL is not set | ||
742 | |||
743 | # | ||
744 | # Console display driver support | ||
745 | # | ||
746 | # CONFIG_VGA_CONSOLE is not set | ||
747 | CONFIG_DUMMY_CONSOLE=y | ||
748 | CONFIG_FRAMEBUFFER_CONSOLE=y | ||
749 | CONFIG_FONTS=y | ||
750 | CONFIG_FONT_8x8=y | ||
751 | # CONFIG_FONT_8x16 is not set | ||
752 | # CONFIG_FONT_6x11 is not set | ||
753 | # CONFIG_FONT_7x14 is not set | ||
754 | # CONFIG_FONT_PEARL_8x8 is not set | ||
755 | # CONFIG_FONT_ACORN_8x8 is not set | ||
756 | # CONFIG_FONT_MINI_4x6 is not set | ||
757 | # CONFIG_FONT_SUN8x16 is not set | ||
758 | # CONFIG_FONT_SUN12x22 is not set | ||
759 | # CONFIG_FONT_10x18 is not set | ||
760 | |||
761 | # | ||
762 | # Logo configuration | ||
763 | # | ||
764 | # CONFIG_LOGO is not set | ||
765 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
766 | |||
767 | # | ||
768 | # Sound | ||
769 | # | ||
770 | # CONFIG_SOUND is not set | ||
771 | |||
772 | # | ||
773 | # USB support | ||
774 | # | ||
775 | CONFIG_USB_ARCH_HAS_HCD=y | ||
776 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
777 | # CONFIG_USB is not set | ||
778 | |||
779 | # | ||
780 | # USB Gadget Support | ||
781 | # | ||
782 | CONFIG_USB_GADGET=y | ||
783 | # CONFIG_USB_GADGET_DEBUG_FILES is not set | ||
784 | CONFIG_USB_GADGET_SELECTED=y | ||
785 | # CONFIG_USB_GADGET_NET2280 is not set | ||
786 | CONFIG_USB_GADGET_PXA2XX=y | ||
787 | CONFIG_USB_PXA2XX=y | ||
788 | # CONFIG_USB_PXA2XX_SMALL is not set | ||
789 | # CONFIG_USB_GADGET_GOKU is not set | ||
790 | # CONFIG_USB_GADGET_LH7A40X is not set | ||
791 | # CONFIG_USB_GADGET_OMAP is not set | ||
792 | # CONFIG_USB_GADGET_DUMMY_HCD is not set | ||
793 | # CONFIG_USB_GADGET_DUALSPEED is not set | ||
794 | # CONFIG_USB_ZERO is not set | ||
795 | CONFIG_USB_ETH=y | ||
796 | CONFIG_USB_ETH_RNDIS=y | ||
797 | # CONFIG_USB_GADGETFS is not set | ||
798 | # CONFIG_USB_FILE_STORAGE is not set | ||
799 | # CONFIG_USB_G_SERIAL is not set | ||
800 | |||
801 | # | ||
802 | # MMC/SD Card support | ||
803 | # | ||
804 | CONFIG_MMC=y | ||
805 | CONFIG_MMC_DEBUG=y | ||
806 | CONFIG_MMC_BLOCK=y | ||
807 | CONFIG_MMC_PXA=y | ||
808 | # CONFIG_MMC_WBSD is not set | ||
809 | |||
810 | # | ||
811 | # File systems | ||
812 | # | ||
813 | CONFIG_EXT2_FS=y | ||
814 | CONFIG_EXT2_FS_XATTR=y | ||
815 | CONFIG_EXT2_FS_POSIX_ACL=y | ||
816 | CONFIG_EXT2_FS_SECURITY=y | ||
817 | # CONFIG_EXT2_FS_XIP is not set | ||
818 | # CONFIG_EXT3_FS is not set | ||
819 | # CONFIG_JBD is not set | ||
820 | CONFIG_FS_MBCACHE=y | ||
821 | # CONFIG_REISERFS_FS is not set | ||
822 | # CONFIG_JFS_FS is not set | ||
823 | CONFIG_FS_POSIX_ACL=y | ||
824 | # CONFIG_XFS_FS is not set | ||
825 | # CONFIG_MINIX_FS is not set | ||
826 | # CONFIG_ROMFS_FS is not set | ||
827 | CONFIG_INOTIFY=y | ||
828 | # CONFIG_QUOTA is not set | ||
829 | CONFIG_DNOTIFY=y | ||
830 | # CONFIG_AUTOFS_FS is not set | ||
831 | # CONFIG_AUTOFS4_FS is not set | ||
832 | # CONFIG_FUSE_FS is not set | ||
833 | |||
834 | # | ||
835 | # CD-ROM/DVD Filesystems | ||
836 | # | ||
837 | # CONFIG_ISO9660_FS is not set | ||
838 | # CONFIG_UDF_FS is not set | ||
839 | |||
840 | # | ||
841 | # DOS/FAT/NT Filesystems | ||
842 | # | ||
843 | CONFIG_FAT_FS=y | ||
844 | CONFIG_MSDOS_FS=y | ||
845 | CONFIG_VFAT_FS=y | ||
846 | CONFIG_FAT_DEFAULT_CODEPAGE=437 | ||
847 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
848 | # CONFIG_NTFS_FS is not set | ||
849 | |||
850 | # | ||
851 | # Pseudo filesystems | ||
852 | # | ||
853 | CONFIG_PROC_FS=y | ||
854 | CONFIG_SYSFS=y | ||
855 | CONFIG_TMPFS=y | ||
856 | # CONFIG_HUGETLB_PAGE is not set | ||
857 | CONFIG_RAMFS=y | ||
858 | # CONFIG_RELAYFS_FS is not set | ||
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_JFFS_FS is not set | ||
871 | CONFIG_JFFS2_FS=y | ||
872 | CONFIG_JFFS2_FS_DEBUG=0 | ||
873 | CONFIG_JFFS2_FS_WRITEBUFFER=y | ||
874 | CONFIG_JFFS2_COMPRESSION_OPTIONS=y | ||
875 | CONFIG_JFFS2_ZLIB=y | ||
876 | CONFIG_JFFS2_RTIME=y | ||
877 | CONFIG_JFFS2_RUBIN=y | ||
878 | # CONFIG_JFFS2_CMODE_NONE is not set | ||
879 | CONFIG_JFFS2_CMODE_PRIORITY=y | ||
880 | # CONFIG_JFFS2_CMODE_SIZE is not set | ||
881 | CONFIG_CRAMFS=m | ||
882 | # CONFIG_VXFS_FS is not set | ||
883 | # CONFIG_HPFS_FS is not set | ||
884 | # CONFIG_QNX4FS_FS is not set | ||
885 | # CONFIG_SYSV_FS is not set | ||
886 | # CONFIG_UFS_FS is not set | ||
887 | |||
888 | # | ||
889 | # Network File Systems | ||
890 | # | ||
891 | # CONFIG_NFS_FS is not set | ||
892 | # CONFIG_NFSD is not set | ||
893 | # CONFIG_SMB_FS is not set | ||
894 | # CONFIG_CIFS is not set | ||
895 | # CONFIG_NCP_FS is not set | ||
896 | # CONFIG_CODA_FS is not set | ||
897 | # CONFIG_AFS_FS is not set | ||
898 | # CONFIG_9P_FS is not set | ||
899 | |||
900 | # | ||
901 | # Partition Types | ||
902 | # | ||
903 | CONFIG_PARTITION_ADVANCED=y | ||
904 | # CONFIG_ACORN_PARTITION is not set | ||
905 | # CONFIG_OSF_PARTITION is not set | ||
906 | # CONFIG_AMIGA_PARTITION is not set | ||
907 | # CONFIG_ATARI_PARTITION is not set | ||
908 | # CONFIG_MAC_PARTITION is not set | ||
909 | CONFIG_MSDOS_PARTITION=y | ||
910 | # CONFIG_BSD_DISKLABEL is not set | ||
911 | # CONFIG_MINIX_SUBPARTITION is not set | ||
912 | # CONFIG_SOLARIS_X86_PARTITION is not set | ||
913 | # CONFIG_UNIXWARE_DISKLABEL is not set | ||
914 | # CONFIG_LDM_PARTITION is not set | ||
915 | # CONFIG_SGI_PARTITION is not set | ||
916 | # CONFIG_ULTRIX_PARTITION is not set | ||
917 | # CONFIG_SUN_PARTITION is not set | ||
918 | # CONFIG_EFI_PARTITION is not set | ||
919 | |||
920 | # | ||
921 | # Native Language Support | ||
922 | # | ||
923 | CONFIG_NLS=y | ||
924 | CONFIG_NLS_DEFAULT="cp437" | ||
925 | CONFIG_NLS_CODEPAGE_437=y | ||
926 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
927 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
928 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
929 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
930 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
931 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
932 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
933 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
934 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
935 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
936 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
937 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
938 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
939 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
940 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
941 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
942 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
943 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
944 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
945 | # CONFIG_NLS_ISO8859_8 is not set | ||
946 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
947 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
948 | CONFIG_NLS_ASCII=y | ||
949 | CONFIG_NLS_ISO8859_1=y | ||
950 | # CONFIG_NLS_ISO8859_2 is not set | ||
951 | # CONFIG_NLS_ISO8859_3 is not set | ||
952 | # CONFIG_NLS_ISO8859_4 is not set | ||
953 | # CONFIG_NLS_ISO8859_5 is not set | ||
954 | # CONFIG_NLS_ISO8859_6 is not set | ||
955 | # CONFIG_NLS_ISO8859_7 is not set | ||
956 | # CONFIG_NLS_ISO8859_9 is not set | ||
957 | # CONFIG_NLS_ISO8859_13 is not set | ||
958 | # CONFIG_NLS_ISO8859_14 is not set | ||
959 | # CONFIG_NLS_ISO8859_15 is not set | ||
960 | # CONFIG_NLS_KOI8_R is not set | ||
961 | # CONFIG_NLS_KOI8_U is not set | ||
962 | CONFIG_NLS_UTF8=y | ||
963 | |||
964 | # | ||
965 | # Profiling support | ||
966 | # | ||
967 | # CONFIG_PROFILING is not set | ||
968 | |||
969 | # | ||
970 | # Kernel hacking | ||
971 | # | ||
972 | # CONFIG_PRINTK_TIME is not set | ||
973 | CONFIG_DEBUG_KERNEL=y | ||
974 | CONFIG_MAGIC_SYSRQ=y | ||
975 | CONFIG_LOG_BUF_SHIFT=14 | ||
976 | CONFIG_DETECT_SOFTLOCKUP=y | ||
977 | # CONFIG_SCHEDSTATS is not set | ||
978 | # CONFIG_DEBUG_SLAB is not set | ||
979 | CONFIG_DEBUG_PREEMPT=y | ||
980 | # CONFIG_DEBUG_SPINLOCK is not set | ||
981 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
982 | # CONFIG_DEBUG_KOBJECT is not set | ||
983 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
984 | # CONFIG_DEBUG_INFO is not set | ||
985 | # CONFIG_DEBUG_FS is not set | ||
986 | CONFIG_FRAME_POINTER=y | ||
987 | # CONFIG_DEBUG_USER is not set | ||
988 | # CONFIG_DEBUG_WAITQ is not set | ||
989 | CONFIG_DEBUG_ERRORS=y | ||
990 | # CONFIG_DEBUG_LL is not set | ||
991 | |||
992 | # | ||
993 | # Security options | ||
994 | # | ||
995 | # CONFIG_KEYS is not set | ||
996 | # CONFIG_SECURITY is not set | ||
997 | |||
998 | # | ||
999 | # Cryptographic options | ||
1000 | # | ||
1001 | # CONFIG_CRYPTO is not set | ||
1002 | |||
1003 | # | ||
1004 | # Hardware crypto devices | ||
1005 | # | ||
1006 | |||
1007 | # | ||
1008 | # Library routines | ||
1009 | # | ||
1010 | CONFIG_CRC_CCITT=y | ||
1011 | # CONFIG_CRC16 is not set | ||
1012 | CONFIG_CRC32=y | ||
1013 | # CONFIG_LIBCRC32C is not set | ||
1014 | CONFIG_ZLIB_INFLATE=y | ||
1015 | CONFIG_ZLIB_DEFLATE=y | ||
diff --git a/arch/arm/configs/spitz_defconfig b/arch/arm/configs/spitz_defconfig new file mode 100644 index 000000000000..900e04f8e38c --- /dev/null +++ b/arch/arm/configs/spitz_defconfig | |||
@@ -0,0 +1,1401 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.14-rc3 | ||
4 | # Sun Oct 9 17:11:19 2005 | ||
5 | # | ||
6 | CONFIG_ARM=y | ||
7 | CONFIG_MMU=y | ||
8 | CONFIG_UID16=y | ||
9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
11 | |||
12 | # | ||
13 | # Code maturity level options | ||
14 | # | ||
15 | CONFIG_EXPERIMENTAL=y | ||
16 | CONFIG_CLEAN_COMPILE=y | ||
17 | CONFIG_BROKEN_ON_SMP=y | ||
18 | CONFIG_LOCK_KERNEL=y | ||
19 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
20 | |||
21 | # | ||
22 | # General setup | ||
23 | # | ||
24 | CONFIG_LOCALVERSION="" | ||
25 | CONFIG_LOCALVERSION_AUTO=y | ||
26 | CONFIG_SWAP=y | ||
27 | CONFIG_SYSVIPC=y | ||
28 | # CONFIG_POSIX_MQUEUE is not set | ||
29 | CONFIG_BSD_PROCESS_ACCT=y | ||
30 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | ||
31 | CONFIG_SYSCTL=y | ||
32 | # CONFIG_AUDIT is not set | ||
33 | CONFIG_HOTPLUG=y | ||
34 | CONFIG_KOBJECT_UEVENT=y | ||
35 | # CONFIG_IKCONFIG is not set | ||
36 | CONFIG_INITRAMFS_SOURCE="" | ||
37 | CONFIG_EMBEDDED=y | ||
38 | CONFIG_KALLSYMS=y | ||
39 | # CONFIG_KALLSYMS_ALL is not set | ||
40 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
41 | CONFIG_PRINTK=y | ||
42 | CONFIG_BUG=y | ||
43 | CONFIG_BASE_FULL=y | ||
44 | CONFIG_FUTEX=y | ||
45 | CONFIG_EPOLL=y | ||
46 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
47 | CONFIG_SHMEM=y | ||
48 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
49 | CONFIG_CC_ALIGN_LABELS=0 | ||
50 | CONFIG_CC_ALIGN_LOOPS=0 | ||
51 | CONFIG_CC_ALIGN_JUMPS=0 | ||
52 | # CONFIG_TINY_SHMEM is not set | ||
53 | CONFIG_BASE_SMALL=0 | ||
54 | |||
55 | # | ||
56 | # Loadable module support | ||
57 | # | ||
58 | CONFIG_MODULES=y | ||
59 | CONFIG_MODULE_UNLOAD=y | ||
60 | CONFIG_MODULE_FORCE_UNLOAD=y | ||
61 | CONFIG_OBSOLETE_MODPARM=y | ||
62 | # CONFIG_MODVERSIONS is not set | ||
63 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
64 | CONFIG_KMOD=y | ||
65 | |||
66 | # | ||
67 | # System Type | ||
68 | # | ||
69 | # CONFIG_ARCH_CLPS7500 is not set | ||
70 | # CONFIG_ARCH_CLPS711X is not set | ||
71 | # CONFIG_ARCH_CO285 is not set | ||
72 | # CONFIG_ARCH_EBSA110 is not set | ||
73 | # CONFIG_ARCH_CAMELOT is not set | ||
74 | # CONFIG_ARCH_FOOTBRIDGE is not set | ||
75 | # CONFIG_ARCH_INTEGRATOR is not set | ||
76 | # CONFIG_ARCH_IOP3XX is not set | ||
77 | # CONFIG_ARCH_IXP4XX is not set | ||
78 | # CONFIG_ARCH_IXP2000 is not set | ||
79 | # CONFIG_ARCH_L7200 is not set | ||
80 | CONFIG_ARCH_PXA=y | ||
81 | # CONFIG_ARCH_RPC is not set | ||
82 | # CONFIG_ARCH_SA1100 is not set | ||
83 | # CONFIG_ARCH_S3C2410 is not set | ||
84 | # CONFIG_ARCH_SHARK is not set | ||
85 | # CONFIG_ARCH_LH7A40X is not set | ||
86 | # CONFIG_ARCH_OMAP is not set | ||
87 | # CONFIG_ARCH_VERSATILE is not set | ||
88 | # CONFIG_ARCH_IMX is not set | ||
89 | # CONFIG_ARCH_H720X is not set | ||
90 | # CONFIG_ARCH_AAEC2000 is not set | ||
91 | |||
92 | # | ||
93 | # Intel PXA2xx Implementations | ||
94 | # | ||
95 | # CONFIG_ARCH_LUBBOCK is not set | ||
96 | # CONFIG_MACH_MAINSTONE is not set | ||
97 | # CONFIG_ARCH_PXA_IDP is not set | ||
98 | CONFIG_PXA_SHARPSL=y | ||
99 | # CONFIG_PXA_SHARPSL_25x is not set | ||
100 | CONFIG_PXA_SHARPSL_27x=y | ||
101 | CONFIG_MACH_SPITZ=y | ||
102 | CONFIG_MACH_BORZOI=y | ||
103 | CONFIG_PXA27x=y | ||
104 | CONFIG_PXA_SHARP_Cxx00=y | ||
105 | |||
106 | # | ||
107 | # Processor Type | ||
108 | # | ||
109 | CONFIG_CPU_32=y | ||
110 | CONFIG_CPU_XSCALE=y | ||
111 | CONFIG_CPU_32v5=y | ||
112 | CONFIG_CPU_ABRT_EV5T=y | ||
113 | CONFIG_CPU_CACHE_VIVT=y | ||
114 | CONFIG_CPU_TLB_V4WBI=y | ||
115 | |||
116 | # | ||
117 | # Processor Features | ||
118 | # | ||
119 | CONFIG_ARM_THUMB=y | ||
120 | CONFIG_XSCALE_PMU=y | ||
121 | CONFIG_SHARP_PARAM=y | ||
122 | CONFIG_SHARP_SCOOP=y | ||
123 | |||
124 | # | ||
125 | # Bus support | ||
126 | # | ||
127 | CONFIG_ISA_DMA_API=y | ||
128 | |||
129 | # | ||
130 | # PCCARD (PCMCIA/CardBus) support | ||
131 | # | ||
132 | CONFIG_PCCARD=y | ||
133 | # CONFIG_PCMCIA_DEBUG is not set | ||
134 | CONFIG_PCMCIA=y | ||
135 | CONFIG_PCMCIA_LOAD_CIS=y | ||
136 | CONFIG_PCMCIA_IOCTL=y | ||
137 | |||
138 | # | ||
139 | # PC-card bridges | ||
140 | # | ||
141 | CONFIG_PCMCIA_PXA2XX=y | ||
142 | |||
143 | # | ||
144 | # Kernel Features | ||
145 | # | ||
146 | CONFIG_PREEMPT=y | ||
147 | # CONFIG_NO_IDLE_HZ is not set | ||
148 | # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set | ||
149 | CONFIG_SELECT_MEMORY_MODEL=y | ||
150 | CONFIG_FLATMEM_MANUAL=y | ||
151 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
152 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
153 | CONFIG_FLATMEM=y | ||
154 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
155 | # CONFIG_SPARSEMEM_STATIC is not set | ||
156 | CONFIG_ALIGNMENT_TRAP=y | ||
157 | |||
158 | # | ||
159 | # Boot options | ||
160 | # | ||
161 | CONFIG_ZBOOT_ROM_TEXT=0x0 | ||
162 | CONFIG_ZBOOT_ROM_BSS=0x0 | ||
163 | CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 debug" | ||
164 | # CONFIG_XIP_KERNEL is not set | ||
165 | |||
166 | # | ||
167 | # Floating point emulation | ||
168 | # | ||
169 | |||
170 | # | ||
171 | # At least one emulation must be selected | ||
172 | # | ||
173 | CONFIG_FPE_NWFPE=y | ||
174 | # CONFIG_FPE_NWFPE_XP is not set | ||
175 | # CONFIG_FPE_FASTFPE is not set | ||
176 | |||
177 | # | ||
178 | # Userspace binary formats | ||
179 | # | ||
180 | CONFIG_BINFMT_ELF=y | ||
181 | CONFIG_BINFMT_AOUT=m | ||
182 | CONFIG_BINFMT_MISC=m | ||
183 | # CONFIG_ARTHUR is not set | ||
184 | |||
185 | # | ||
186 | # Power management options | ||
187 | # | ||
188 | CONFIG_PM=y | ||
189 | CONFIG_APM=y | ||
190 | |||
191 | # | ||
192 | # Networking | ||
193 | # | ||
194 | CONFIG_NET=y | ||
195 | |||
196 | # | ||
197 | # Networking options | ||
198 | # | ||
199 | CONFIG_PACKET=y | ||
200 | CONFIG_PACKET_MMAP=y | ||
201 | CONFIG_UNIX=y | ||
202 | CONFIG_XFRM=y | ||
203 | # CONFIG_XFRM_USER is not set | ||
204 | # CONFIG_NET_KEY is not set | ||
205 | CONFIG_INET=y | ||
206 | # CONFIG_IP_MULTICAST is not set | ||
207 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
208 | CONFIG_IP_FIB_HASH=y | ||
209 | # CONFIG_IP_PNP is not set | ||
210 | # CONFIG_NET_IPIP is not set | ||
211 | # CONFIG_NET_IPGRE is not set | ||
212 | # CONFIG_ARPD is not set | ||
213 | CONFIG_SYN_COOKIES=y | ||
214 | # CONFIG_INET_AH is not set | ||
215 | # CONFIG_INET_ESP is not set | ||
216 | # CONFIG_INET_IPCOMP is not set | ||
217 | # CONFIG_INET_TUNNEL is not set | ||
218 | CONFIG_INET_DIAG=y | ||
219 | CONFIG_INET_TCP_DIAG=y | ||
220 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
221 | CONFIG_TCP_CONG_BIC=y | ||
222 | |||
223 | # | ||
224 | # IP: Virtual Server Configuration | ||
225 | # | ||
226 | # CONFIG_IP_VS is not set | ||
227 | CONFIG_IPV6=m | ||
228 | # CONFIG_IPV6_PRIVACY is not set | ||
229 | CONFIG_INET6_AH=m | ||
230 | CONFIG_INET6_ESP=m | ||
231 | CONFIG_INET6_IPCOMP=m | ||
232 | CONFIG_INET6_TUNNEL=m | ||
233 | CONFIG_IPV6_TUNNEL=m | ||
234 | CONFIG_NETFILTER=y | ||
235 | # CONFIG_NETFILTER_DEBUG is not set | ||
236 | # CONFIG_NETFILTER_NETLINK is not set | ||
237 | |||
238 | # | ||
239 | # IP: Netfilter Configuration | ||
240 | # | ||
241 | CONFIG_IP_NF_CONNTRACK=m | ||
242 | # CONFIG_IP_NF_CT_ACCT is not set | ||
243 | # CONFIG_IP_NF_CONNTRACK_MARK is not set | ||
244 | # CONFIG_IP_NF_CONNTRACK_EVENTS is not set | ||
245 | CONFIG_IP_NF_CT_PROTO_SCTP=m | ||
246 | CONFIG_IP_NF_FTP=m | ||
247 | CONFIG_IP_NF_IRC=m | ||
248 | # CONFIG_IP_NF_NETBIOS_NS is not set | ||
249 | CONFIG_IP_NF_TFTP=m | ||
250 | CONFIG_IP_NF_AMANDA=m | ||
251 | # CONFIG_IP_NF_PPTP is not set | ||
252 | CONFIG_IP_NF_QUEUE=m | ||
253 | CONFIG_IP_NF_IPTABLES=m | ||
254 | CONFIG_IP_NF_MATCH_LIMIT=m | ||
255 | CONFIG_IP_NF_MATCH_IPRANGE=m | ||
256 | CONFIG_IP_NF_MATCH_MAC=m | ||
257 | CONFIG_IP_NF_MATCH_PKTTYPE=m | ||
258 | CONFIG_IP_NF_MATCH_MARK=m | ||
259 | CONFIG_IP_NF_MATCH_MULTIPORT=m | ||
260 | CONFIG_IP_NF_MATCH_TOS=m | ||
261 | CONFIG_IP_NF_MATCH_RECENT=m | ||
262 | CONFIG_IP_NF_MATCH_ECN=m | ||
263 | CONFIG_IP_NF_MATCH_DSCP=m | ||
264 | CONFIG_IP_NF_MATCH_AH_ESP=m | ||
265 | CONFIG_IP_NF_MATCH_LENGTH=m | ||
266 | CONFIG_IP_NF_MATCH_TTL=m | ||
267 | CONFIG_IP_NF_MATCH_TCPMSS=m | ||
268 | CONFIG_IP_NF_MATCH_HELPER=m | ||
269 | CONFIG_IP_NF_MATCH_STATE=m | ||
270 | CONFIG_IP_NF_MATCH_CONNTRACK=m | ||
271 | CONFIG_IP_NF_MATCH_OWNER=m | ||
272 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | ||
273 | CONFIG_IP_NF_MATCH_REALM=m | ||
274 | CONFIG_IP_NF_MATCH_SCTP=m | ||
275 | # CONFIG_IP_NF_MATCH_DCCP is not set | ||
276 | CONFIG_IP_NF_MATCH_COMMENT=m | ||
277 | CONFIG_IP_NF_MATCH_HASHLIMIT=m | ||
278 | # CONFIG_IP_NF_MATCH_STRING is not set | ||
279 | CONFIG_IP_NF_FILTER=m | ||
280 | # CONFIG_IP_NF_TARGET_REJECT is not set | ||
281 | CONFIG_IP_NF_TARGET_LOG=m | ||
282 | CONFIG_IP_NF_TARGET_ULOG=m | ||
283 | CONFIG_IP_NF_TARGET_TCPMSS=m | ||
284 | # CONFIG_IP_NF_TARGET_NFQUEUE is not set | ||
285 | CONFIG_IP_NF_NAT=m | ||
286 | CONFIG_IP_NF_NAT_NEEDED=y | ||
287 | # CONFIG_IP_NF_TARGET_MASQUERADE is not set | ||
288 | # CONFIG_IP_NF_TARGET_REDIRECT is not set | ||
289 | # CONFIG_IP_NF_TARGET_NETMAP is not set | ||
290 | # CONFIG_IP_NF_TARGET_SAME is not set | ||
291 | # CONFIG_IP_NF_NAT_SNMP_BASIC is not set | ||
292 | CONFIG_IP_NF_NAT_IRC=m | ||
293 | CONFIG_IP_NF_NAT_FTP=m | ||
294 | CONFIG_IP_NF_NAT_TFTP=m | ||
295 | CONFIG_IP_NF_NAT_AMANDA=m | ||
296 | CONFIG_IP_NF_MANGLE=m | ||
297 | # CONFIG_IP_NF_TARGET_TOS is not set | ||
298 | # CONFIG_IP_NF_TARGET_ECN is not set | ||
299 | # CONFIG_IP_NF_TARGET_DSCP is not set | ||
300 | # CONFIG_IP_NF_TARGET_MARK is not set | ||
301 | # CONFIG_IP_NF_TARGET_CLASSIFY is not set | ||
302 | # CONFIG_IP_NF_TARGET_TTL is not set | ||
303 | CONFIG_IP_NF_RAW=m | ||
304 | # CONFIG_IP_NF_TARGET_NOTRACK is not set | ||
305 | CONFIG_IP_NF_ARPTABLES=m | ||
306 | CONFIG_IP_NF_ARPFILTER=m | ||
307 | CONFIG_IP_NF_ARP_MANGLE=m | ||
308 | |||
309 | # | ||
310 | # IPv6: Netfilter Configuration (EXPERIMENTAL) | ||
311 | # | ||
312 | CONFIG_IP6_NF_QUEUE=m | ||
313 | CONFIG_IP6_NF_IPTABLES=m | ||
314 | CONFIG_IP6_NF_MATCH_LIMIT=m | ||
315 | CONFIG_IP6_NF_MATCH_MAC=m | ||
316 | CONFIG_IP6_NF_MATCH_RT=m | ||
317 | CONFIG_IP6_NF_MATCH_OPTS=m | ||
318 | CONFIG_IP6_NF_MATCH_FRAG=m | ||
319 | CONFIG_IP6_NF_MATCH_HL=m | ||
320 | CONFIG_IP6_NF_MATCH_MULTIPORT=m | ||
321 | CONFIG_IP6_NF_MATCH_OWNER=m | ||
322 | CONFIG_IP6_NF_MATCH_MARK=m | ||
323 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m | ||
324 | CONFIG_IP6_NF_MATCH_AHESP=m | ||
325 | CONFIG_IP6_NF_MATCH_LENGTH=m | ||
326 | CONFIG_IP6_NF_MATCH_EUI64=m | ||
327 | CONFIG_IP6_NF_FILTER=m | ||
328 | # CONFIG_IP6_NF_TARGET_LOG is not set | ||
329 | # CONFIG_IP6_NF_TARGET_REJECT is not set | ||
330 | # CONFIG_IP6_NF_TARGET_NFQUEUE is not set | ||
331 | CONFIG_IP6_NF_MANGLE=m | ||
332 | # CONFIG_IP6_NF_TARGET_MARK is not set | ||
333 | # CONFIG_IP6_NF_TARGET_HL is not set | ||
334 | CONFIG_IP6_NF_RAW=m | ||
335 | |||
336 | # | ||
337 | # DCCP Configuration (EXPERIMENTAL) | ||
338 | # | ||
339 | # CONFIG_IP_DCCP is not set | ||
340 | |||
341 | # | ||
342 | # SCTP Configuration (EXPERIMENTAL) | ||
343 | # | ||
344 | # CONFIG_IP_SCTP is not set | ||
345 | # CONFIG_ATM is not set | ||
346 | # CONFIG_BRIDGE is not set | ||
347 | # CONFIG_VLAN_8021Q is not set | ||
348 | # CONFIG_DECNET is not set | ||
349 | # CONFIG_LLC2 is not set | ||
350 | # CONFIG_IPX is not set | ||
351 | # CONFIG_ATALK is not set | ||
352 | # CONFIG_X25 is not set | ||
353 | # CONFIG_LAPB is not set | ||
354 | # CONFIG_NET_DIVERT is not set | ||
355 | # CONFIG_ECONET is not set | ||
356 | # CONFIG_WAN_ROUTER is not set | ||
357 | # CONFIG_NET_SCHED is not set | ||
358 | CONFIG_NET_CLS_ROUTE=y | ||
359 | |||
360 | # | ||
361 | # Network testing | ||
362 | # | ||
363 | # CONFIG_NET_PKTGEN is not set | ||
364 | # CONFIG_HAMRADIO is not set | ||
365 | CONFIG_IRDA=m | ||
366 | |||
367 | # | ||
368 | # IrDA protocols | ||
369 | # | ||
370 | CONFIG_IRLAN=m | ||
371 | CONFIG_IRNET=m | ||
372 | CONFIG_IRCOMM=m | ||
373 | # CONFIG_IRDA_ULTRA is not set | ||
374 | |||
375 | # | ||
376 | # IrDA options | ||
377 | # | ||
378 | # CONFIG_IRDA_CACHE_LAST_LSAP is not set | ||
379 | # CONFIG_IRDA_FAST_RR is not set | ||
380 | # CONFIG_IRDA_DEBUG is not set | ||
381 | |||
382 | # | ||
383 | # Infrared-port device drivers | ||
384 | # | ||
385 | |||
386 | # | ||
387 | # SIR device drivers | ||
388 | # | ||
389 | # CONFIG_IRTTY_SIR is not set | ||
390 | |||
391 | # | ||
392 | # Dongle support | ||
393 | # | ||
394 | |||
395 | # | ||
396 | # Old SIR device drivers | ||
397 | # | ||
398 | # CONFIG_IRPORT_SIR is not set | ||
399 | |||
400 | # | ||
401 | # Old Serial dongle support | ||
402 | # | ||
403 | |||
404 | # | ||
405 | # FIR device drivers | ||
406 | # | ||
407 | # CONFIG_USB_IRDA is not set | ||
408 | # CONFIG_SIGMATEL_FIR is not set | ||
409 | # CONFIG_NSC_FIR is not set | ||
410 | # CONFIG_WINBOND_FIR is not set | ||
411 | # CONFIG_SMC_IRCC_FIR is not set | ||
412 | # CONFIG_ALI_FIR is not set | ||
413 | # CONFIG_VIA_FIR is not set | ||
414 | CONFIG_BT=m | ||
415 | CONFIG_BT_L2CAP=m | ||
416 | CONFIG_BT_SCO=m | ||
417 | CONFIG_BT_RFCOMM=m | ||
418 | CONFIG_BT_RFCOMM_TTY=y | ||
419 | CONFIG_BT_BNEP=m | ||
420 | CONFIG_BT_BNEP_MC_FILTER=y | ||
421 | CONFIG_BT_BNEP_PROTO_FILTER=y | ||
422 | CONFIG_BT_HIDP=m | ||
423 | |||
424 | # | ||
425 | # Bluetooth device drivers | ||
426 | # | ||
427 | CONFIG_BT_HCIUSB=m | ||
428 | # CONFIG_BT_HCIUSB_SCO is not set | ||
429 | CONFIG_BT_HCIUART=m | ||
430 | CONFIG_BT_HCIUART_H4=y | ||
431 | CONFIG_BT_HCIUART_BCSP=y | ||
432 | CONFIG_BT_HCIUART_BCSP_TXCRC=y | ||
433 | CONFIG_BT_HCIBCM203X=m | ||
434 | CONFIG_BT_HCIBPA10X=m | ||
435 | CONFIG_BT_HCIBFUSB=m | ||
436 | CONFIG_BT_HCIDTL1=m | ||
437 | CONFIG_BT_HCIBT3C=m | ||
438 | CONFIG_BT_HCIBLUECARD=m | ||
439 | CONFIG_BT_HCIBTUART=m | ||
440 | CONFIG_BT_HCIVHCI=m | ||
441 | CONFIG_IEEE80211=m | ||
442 | # CONFIG_IEEE80211_DEBUG is not set | ||
443 | CONFIG_IEEE80211_CRYPT_WEP=m | ||
444 | # CONFIG_IEEE80211_CRYPT_CCMP is not set | ||
445 | # CONFIG_IEEE80211_CRYPT_TKIP is not set | ||
446 | |||
447 | # | ||
448 | # Device Drivers | ||
449 | # | ||
450 | |||
451 | # | ||
452 | # Generic Driver Options | ||
453 | # | ||
454 | CONFIG_STANDALONE=y | ||
455 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
456 | CONFIG_FW_LOADER=y | ||
457 | # CONFIG_DEBUG_DRIVER is not set | ||
458 | |||
459 | # | ||
460 | # Memory Technology Devices (MTD) | ||
461 | # | ||
462 | CONFIG_MTD=y | ||
463 | # CONFIG_MTD_DEBUG is not set | ||
464 | # CONFIG_MTD_CONCAT is not set | ||
465 | CONFIG_MTD_PARTITIONS=y | ||
466 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
467 | CONFIG_MTD_CMDLINE_PARTS=y | ||
468 | # CONFIG_MTD_AFS_PARTS is not set | ||
469 | |||
470 | # | ||
471 | # User Modules And Translation Layers | ||
472 | # | ||
473 | CONFIG_MTD_CHAR=y | ||
474 | CONFIG_MTD_BLOCK=y | ||
475 | # CONFIG_FTL is not set | ||
476 | # CONFIG_NFTL is not set | ||
477 | # CONFIG_INFTL is not set | ||
478 | |||
479 | # | ||
480 | # RAM/ROM/Flash chip drivers | ||
481 | # | ||
482 | # CONFIG_MTD_CFI is not set | ||
483 | # CONFIG_MTD_JEDECPROBE is not set | ||
484 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
485 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
486 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
487 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
488 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
489 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
490 | CONFIG_MTD_CFI_I1=y | ||
491 | CONFIG_MTD_CFI_I2=y | ||
492 | # CONFIG_MTD_CFI_I4 is not set | ||
493 | # CONFIG_MTD_CFI_I8 is not set | ||
494 | # CONFIG_MTD_RAM is not set | ||
495 | CONFIG_MTD_ROM=y | ||
496 | # CONFIG_MTD_ABSENT is not set | ||
497 | |||
498 | # | ||
499 | # Mapping drivers for chip access | ||
500 | # | ||
501 | CONFIG_MTD_COMPLEX_MAPPINGS=y | ||
502 | CONFIG_MTD_SHARP_SL=y | ||
503 | # CONFIG_MTD_PLATRAM is not set | ||
504 | |||
505 | # | ||
506 | # Self-contained MTD device drivers | ||
507 | # | ||
508 | # CONFIG_MTD_SLRAM is not set | ||
509 | # CONFIG_MTD_PHRAM is not set | ||
510 | # CONFIG_MTD_MTDRAM is not set | ||
511 | # CONFIG_MTD_BLKMTD is not set | ||
512 | # CONFIG_MTD_BLOCK2MTD is not set | ||
513 | |||
514 | # | ||
515 | # Disk-On-Chip Device Drivers | ||
516 | # | ||
517 | # CONFIG_MTD_DOC2000 is not set | ||
518 | # CONFIG_MTD_DOC2001 is not set | ||
519 | # CONFIG_MTD_DOC2001PLUS is not set | ||
520 | |||
521 | # | ||
522 | # NAND Flash Device Drivers | ||
523 | # | ||
524 | CONFIG_MTD_NAND=y | ||
525 | CONFIG_MTD_NAND_VERIFY_WRITE=y | ||
526 | # CONFIG_MTD_NAND_H1900 is not set | ||
527 | CONFIG_MTD_NAND_IDS=y | ||
528 | # CONFIG_MTD_NAND_DISKONCHIP is not set | ||
529 | CONFIG_MTD_NAND_SHARPSL=y | ||
530 | # CONFIG_MTD_NAND_NANDSIM is not set | ||
531 | |||
532 | # | ||
533 | # Parallel port support | ||
534 | # | ||
535 | # CONFIG_PARPORT is not set | ||
536 | |||
537 | # | ||
538 | # Plug and Play support | ||
539 | # | ||
540 | |||
541 | # | ||
542 | # Block devices | ||
543 | # | ||
544 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
545 | CONFIG_BLK_DEV_LOOP=y | ||
546 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
547 | # CONFIG_BLK_DEV_NBD is not set | ||
548 | # CONFIG_BLK_DEV_UB is not set | ||
549 | # CONFIG_BLK_DEV_RAM is not set | ||
550 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
551 | # CONFIG_CDROM_PKTCDVD is not set | ||
552 | |||
553 | # | ||
554 | # IO Schedulers | ||
555 | # | ||
556 | CONFIG_IOSCHED_NOOP=y | ||
557 | CONFIG_IOSCHED_AS=y | ||
558 | CONFIG_IOSCHED_DEADLINE=y | ||
559 | CONFIG_IOSCHED_CFQ=y | ||
560 | # CONFIG_ATA_OVER_ETH is not set | ||
561 | |||
562 | # | ||
563 | # ATA/ATAPI/MFM/RLL support | ||
564 | # | ||
565 | CONFIG_IDE=y | ||
566 | CONFIG_BLK_DEV_IDE=y | ||
567 | |||
568 | # | ||
569 | # Please see Documentation/ide.txt for help/info on IDE drives | ||
570 | # | ||
571 | # CONFIG_BLK_DEV_IDE_SATA is not set | ||
572 | CONFIG_BLK_DEV_IDEDISK=y | ||
573 | # CONFIG_IDEDISK_MULTI_MODE is not set | ||
574 | CONFIG_BLK_DEV_IDECS=y | ||
575 | # CONFIG_BLK_DEV_IDECD is not set | ||
576 | # CONFIG_BLK_DEV_IDETAPE is not set | ||
577 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | ||
578 | # CONFIG_BLK_DEV_IDESCSI is not set | ||
579 | # CONFIG_IDE_TASK_IOCTL is not set | ||
580 | |||
581 | # | ||
582 | # IDE chipset support/bugfixes | ||
583 | # | ||
584 | CONFIG_IDE_GENERIC=y | ||
585 | # CONFIG_IDE_ARM is not set | ||
586 | # CONFIG_BLK_DEV_IDEDMA is not set | ||
587 | # CONFIG_IDEDMA_AUTO is not set | ||
588 | # CONFIG_BLK_DEV_HD is not set | ||
589 | |||
590 | # | ||
591 | # SCSI device support | ||
592 | # | ||
593 | # CONFIG_RAID_ATTRS is not set | ||
594 | CONFIG_SCSI=m | ||
595 | CONFIG_SCSI_PROC_FS=y | ||
596 | |||
597 | # | ||
598 | # SCSI support type (disk, tape, CD-ROM) | ||
599 | # | ||
600 | CONFIG_BLK_DEV_SD=m | ||
601 | CONFIG_CHR_DEV_ST=m | ||
602 | CONFIG_CHR_DEV_OSST=m | ||
603 | CONFIG_BLK_DEV_SR=m | ||
604 | # CONFIG_BLK_DEV_SR_VENDOR is not set | ||
605 | CONFIG_CHR_DEV_SG=m | ||
606 | # CONFIG_CHR_DEV_SCH is not set | ||
607 | |||
608 | # | ||
609 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | ||
610 | # | ||
611 | CONFIG_SCSI_MULTI_LUN=y | ||
612 | # CONFIG_SCSI_CONSTANTS is not set | ||
613 | # CONFIG_SCSI_LOGGING is not set | ||
614 | |||
615 | # | ||
616 | # SCSI Transport Attributes | ||
617 | # | ||
618 | # CONFIG_SCSI_SPI_ATTRS is not set | ||
619 | # CONFIG_SCSI_FC_ATTRS is not set | ||
620 | # CONFIG_SCSI_ISCSI_ATTRS is not set | ||
621 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
622 | |||
623 | # | ||
624 | # SCSI low-level drivers | ||
625 | # | ||
626 | # CONFIG_SCSI_SATA is not set | ||
627 | # CONFIG_SCSI_DEBUG is not set | ||
628 | |||
629 | # | ||
630 | # PCMCIA SCSI adapter support | ||
631 | # | ||
632 | # CONFIG_PCMCIA_AHA152X is not set | ||
633 | # CONFIG_PCMCIA_FDOMAIN is not set | ||
634 | # CONFIG_PCMCIA_NINJA_SCSI is not set | ||
635 | # CONFIG_PCMCIA_QLOGIC is not set | ||
636 | # CONFIG_PCMCIA_SYM53C500 is not set | ||
637 | |||
638 | # | ||
639 | # Multi-device support (RAID and LVM) | ||
640 | # | ||
641 | # CONFIG_MD is not set | ||
642 | |||
643 | # | ||
644 | # Fusion MPT device support | ||
645 | # | ||
646 | # CONFIG_FUSION is not set | ||
647 | |||
648 | # | ||
649 | # IEEE 1394 (FireWire) support | ||
650 | # | ||
651 | |||
652 | # | ||
653 | # I2O device support | ||
654 | # | ||
655 | |||
656 | # | ||
657 | # Network device support | ||
658 | # | ||
659 | CONFIG_NETDEVICES=y | ||
660 | # CONFIG_DUMMY is not set | ||
661 | # CONFIG_BONDING is not set | ||
662 | # CONFIG_EQUALIZER is not set | ||
663 | # CONFIG_TUN is not set | ||
664 | |||
665 | # | ||
666 | # PHY device support | ||
667 | # | ||
668 | # CONFIG_PHYLIB is not set | ||
669 | |||
670 | # | ||
671 | # Ethernet (10 or 100Mbit) | ||
672 | # | ||
673 | CONFIG_NET_ETHERNET=y | ||
674 | CONFIG_MII=m | ||
675 | # CONFIG_SMC91X is not set | ||
676 | # CONFIG_DM9000 is not set | ||
677 | |||
678 | # | ||
679 | # Ethernet (1000 Mbit) | ||
680 | # | ||
681 | |||
682 | # | ||
683 | # Ethernet (10000 Mbit) | ||
684 | # | ||
685 | |||
686 | # | ||
687 | # Token Ring devices | ||
688 | # | ||
689 | |||
690 | # | ||
691 | # Wireless LAN (non-hamradio) | ||
692 | # | ||
693 | CONFIG_NET_RADIO=y | ||
694 | |||
695 | # | ||
696 | # Obsolete Wireless cards support (pre-802.11) | ||
697 | # | ||
698 | # CONFIG_STRIP is not set | ||
699 | # CONFIG_PCMCIA_WAVELAN is not set | ||
700 | # CONFIG_PCMCIA_NETWAVE is not set | ||
701 | |||
702 | # | ||
703 | # Wireless 802.11 Frequency Hopping cards support | ||
704 | # | ||
705 | # CONFIG_PCMCIA_RAYCS is not set | ||
706 | |||
707 | # | ||
708 | # Wireless 802.11b ISA/PCI cards support | ||
709 | # | ||
710 | CONFIG_HERMES=m | ||
711 | # CONFIG_ATMEL is not set | ||
712 | |||
713 | # | ||
714 | # Wireless 802.11b Pcmcia/Cardbus cards support | ||
715 | # | ||
716 | CONFIG_PCMCIA_HERMES=m | ||
717 | CONFIG_PCMCIA_SPECTRUM=m | ||
718 | # CONFIG_AIRO_CS is not set | ||
719 | # CONFIG_PCMCIA_WL3501 is not set | ||
720 | CONFIG_HOSTAP=m | ||
721 | CONFIG_HOSTAP_FIRMWARE=y | ||
722 | CONFIG_HOSTAP_CS=m | ||
723 | CONFIG_NET_WIRELESS=y | ||
724 | |||
725 | # | ||
726 | # PCMCIA network device support | ||
727 | # | ||
728 | CONFIG_NET_PCMCIA=y | ||
729 | # CONFIG_PCMCIA_3C589 is not set | ||
730 | # CONFIG_PCMCIA_3C574 is not set | ||
731 | # CONFIG_PCMCIA_FMVJ18X is not set | ||
732 | CONFIG_PCMCIA_PCNET=m | ||
733 | # CONFIG_PCMCIA_NMCLAN is not set | ||
734 | # CONFIG_PCMCIA_SMC91C92 is not set | ||
735 | # CONFIG_PCMCIA_XIRC2PS is not set | ||
736 | # CONFIG_PCMCIA_AXNET is not set | ||
737 | |||
738 | # | ||
739 | # Wan interfaces | ||
740 | # | ||
741 | # CONFIG_WAN is not set | ||
742 | CONFIG_PPP=m | ||
743 | # CONFIG_PPP_MULTILINK is not set | ||
744 | # CONFIG_PPP_FILTER is not set | ||
745 | CONFIG_PPP_ASYNC=m | ||
746 | # CONFIG_PPP_SYNC_TTY is not set | ||
747 | # CONFIG_PPP_DEFLATE is not set | ||
748 | CONFIG_PPP_BSDCOMP=m | ||
749 | # CONFIG_PPPOE is not set | ||
750 | # CONFIG_SLIP is not set | ||
751 | # CONFIG_SHAPER is not set | ||
752 | # CONFIG_NETCONSOLE is not set | ||
753 | # CONFIG_NETPOLL is not set | ||
754 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
755 | |||
756 | # | ||
757 | # ISDN subsystem | ||
758 | # | ||
759 | # CONFIG_ISDN is not set | ||
760 | |||
761 | # | ||
762 | # Input device support | ||
763 | # | ||
764 | CONFIG_INPUT=y | ||
765 | |||
766 | # | ||
767 | # Userland interfaces | ||
768 | # | ||
769 | # CONFIG_INPUT_MOUSEDEV is not set | ||
770 | # CONFIG_INPUT_JOYDEV is not set | ||
771 | # CONFIG_INPUT_TSDEV is not set | ||
772 | CONFIG_INPUT_EVDEV=y | ||
773 | # CONFIG_INPUT_EVBUG is not set | ||
774 | |||
775 | # | ||
776 | # Input Device Drivers | ||
777 | # | ||
778 | CONFIG_INPUT_KEYBOARD=y | ||
779 | # CONFIG_KEYBOARD_ATKBD is not set | ||
780 | # CONFIG_KEYBOARD_SUNKBD is not set | ||
781 | # CONFIG_KEYBOARD_LKKBD is not set | ||
782 | # CONFIG_KEYBOARD_XTKBD is not set | ||
783 | # CONFIG_KEYBOARD_NEWTON is not set | ||
784 | # CONFIG_KEYBOARD_CORGI is not set | ||
785 | CONFIG_KEYBOARD_SPITZ=y | ||
786 | # CONFIG_INPUT_MOUSE is not set | ||
787 | # CONFIG_INPUT_JOYSTICK is not set | ||
788 | CONFIG_INPUT_TOUCHSCREEN=y | ||
789 | CONFIG_TOUCHSCREEN_CORGI=y | ||
790 | # CONFIG_TOUCHSCREEN_GUNZE is not set | ||
791 | # CONFIG_TOUCHSCREEN_ELO is not set | ||
792 | # CONFIG_TOUCHSCREEN_MTOUCH is not set | ||
793 | # CONFIG_TOUCHSCREEN_MK712 is not set | ||
794 | CONFIG_INPUT_MISC=y | ||
795 | CONFIG_INPUT_UINPUT=m | ||
796 | |||
797 | # | ||
798 | # Hardware I/O ports | ||
799 | # | ||
800 | # CONFIG_SERIO is not set | ||
801 | # CONFIG_GAMEPORT is not set | ||
802 | |||
803 | # | ||
804 | # Character devices | ||
805 | # | ||
806 | CONFIG_VT=y | ||
807 | CONFIG_VT_CONSOLE=y | ||
808 | CONFIG_HW_CONSOLE=y | ||
809 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
810 | |||
811 | # | ||
812 | # Serial drivers | ||
813 | # | ||
814 | CONFIG_SERIAL_8250=m | ||
815 | CONFIG_SERIAL_8250_CS=m | ||
816 | CONFIG_SERIAL_8250_NR_UARTS=4 | ||
817 | # CONFIG_SERIAL_8250_EXTENDED is not set | ||
818 | |||
819 | # | ||
820 | # Non-8250 serial port support | ||
821 | # | ||
822 | CONFIG_SERIAL_PXA=y | ||
823 | CONFIG_SERIAL_PXA_CONSOLE=y | ||
824 | CONFIG_SERIAL_CORE=y | ||
825 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
826 | CONFIG_UNIX98_PTYS=y | ||
827 | # CONFIG_LEGACY_PTYS is not set | ||
828 | |||
829 | # | ||
830 | # IPMI | ||
831 | # | ||
832 | # CONFIG_IPMI_HANDLER is not set | ||
833 | |||
834 | # | ||
835 | # Watchdog Cards | ||
836 | # | ||
837 | # CONFIG_WATCHDOG is not set | ||
838 | # CONFIG_NVRAM is not set | ||
839 | # CONFIG_RTC is not set | ||
840 | # CONFIG_DTLK is not set | ||
841 | # CONFIG_R3964 is not set | ||
842 | |||
843 | # | ||
844 | # Ftape, the floppy tape device driver | ||
845 | # | ||
846 | |||
847 | # | ||
848 | # PCMCIA character devices | ||
849 | # | ||
850 | # CONFIG_SYNCLINK_CS is not set | ||
851 | # CONFIG_RAW_DRIVER is not set | ||
852 | |||
853 | # | ||
854 | # TPM devices | ||
855 | # | ||
856 | |||
857 | # | ||
858 | # I2C support | ||
859 | # | ||
860 | # CONFIG_I2C is not set | ||
861 | |||
862 | # | ||
863 | # Hardware Monitoring support | ||
864 | # | ||
865 | CONFIG_HWMON=y | ||
866 | # CONFIG_HWMON_VID is not set | ||
867 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
868 | |||
869 | # | ||
870 | # Misc devices | ||
871 | # | ||
872 | |||
873 | # | ||
874 | # Multimedia Capabilities Port drivers | ||
875 | # | ||
876 | |||
877 | # | ||
878 | # Multimedia devices | ||
879 | # | ||
880 | # CONFIG_VIDEO_DEV is not set | ||
881 | |||
882 | # | ||
883 | # Digital Video Broadcasting Devices | ||
884 | # | ||
885 | # CONFIG_DVB is not set | ||
886 | |||
887 | # | ||
888 | # Graphics support | ||
889 | # | ||
890 | CONFIG_FB=y | ||
891 | CONFIG_FB_CFB_FILLRECT=y | ||
892 | CONFIG_FB_CFB_COPYAREA=y | ||
893 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
894 | CONFIG_FB_SOFT_CURSOR=y | ||
895 | # CONFIG_FB_MACMODES is not set | ||
896 | # CONFIG_FB_MODE_HELPERS is not set | ||
897 | # CONFIG_FB_TILEBLITTING is not set | ||
898 | CONFIG_FB_PXA=y | ||
899 | # CONFIG_FB_W100 is not set | ||
900 | # CONFIG_FB_PXA_PARAMETERS is not set | ||
901 | # CONFIG_FB_S1D13XXX is not set | ||
902 | # CONFIG_FB_VIRTUAL is not set | ||
903 | |||
904 | # | ||
905 | # Console display driver support | ||
906 | # | ||
907 | # CONFIG_VGA_CONSOLE is not set | ||
908 | CONFIG_DUMMY_CONSOLE=y | ||
909 | CONFIG_FRAMEBUFFER_CONSOLE=y | ||
910 | CONFIG_FONTS=y | ||
911 | CONFIG_FONT_8x8=y | ||
912 | CONFIG_FONT_8x16=y | ||
913 | # CONFIG_FONT_6x11 is not set | ||
914 | # CONFIG_FONT_7x14 is not set | ||
915 | # CONFIG_FONT_PEARL_8x8 is not set | ||
916 | # CONFIG_FONT_ACORN_8x8 is not set | ||
917 | # CONFIG_FONT_MINI_4x6 is not set | ||
918 | # CONFIG_FONT_SUN8x16 is not set | ||
919 | # CONFIG_FONT_SUN12x22 is not set | ||
920 | # CONFIG_FONT_10x18 is not set | ||
921 | |||
922 | # | ||
923 | # Logo configuration | ||
924 | # | ||
925 | # CONFIG_LOGO is not set | ||
926 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | ||
927 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | ||
928 | CONFIG_BACKLIGHT_DEVICE=y | ||
929 | CONFIG_LCD_CLASS_DEVICE=y | ||
930 | CONFIG_LCD_DEVICE=y | ||
931 | CONFIG_BACKLIGHT_CORGI=y | ||
932 | |||
933 | # | ||
934 | # Sound | ||
935 | # | ||
936 | # CONFIG_SOUND is not set | ||
937 | |||
938 | # | ||
939 | # USB support | ||
940 | # | ||
941 | CONFIG_USB_ARCH_HAS_HCD=y | ||
942 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
943 | CONFIG_USB=m | ||
944 | # CONFIG_USB_DEBUG is not set | ||
945 | |||
946 | # | ||
947 | # Miscellaneous USB options | ||
948 | # | ||
949 | CONFIG_USB_DEVICEFS=y | ||
950 | # CONFIG_USB_BANDWIDTH is not set | ||
951 | # CONFIG_USB_DYNAMIC_MINORS is not set | ||
952 | # CONFIG_USB_SUSPEND is not set | ||
953 | # CONFIG_USB_OTG is not set | ||
954 | |||
955 | # | ||
956 | # USB Host Controller Drivers | ||
957 | # | ||
958 | # CONFIG_USB_ISP116X_HCD is not set | ||
959 | CONFIG_USB_OHCI_HCD=m | ||
960 | # CONFIG_USB_OHCI_BIG_ENDIAN is not set | ||
961 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y | ||
962 | CONFIG_USB_SL811_HCD=m | ||
963 | CONFIG_USB_SL811_CS=m | ||
964 | |||
965 | # | ||
966 | # USB Device Class drivers | ||
967 | # | ||
968 | |||
969 | # | ||
970 | # USB Bluetooth TTY can only be used with disabled Bluetooth subsystem | ||
971 | # | ||
972 | CONFIG_USB_ACM=m | ||
973 | CONFIG_USB_PRINTER=m | ||
974 | |||
975 | # | ||
976 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information | ||
977 | # | ||
978 | CONFIG_USB_STORAGE=m | ||
979 | # CONFIG_USB_STORAGE_DEBUG is not set | ||
980 | # CONFIG_USB_STORAGE_DATAFAB is not set | ||
981 | # CONFIG_USB_STORAGE_FREECOM is not set | ||
982 | # CONFIG_USB_STORAGE_ISD200 is not set | ||
983 | # CONFIG_USB_STORAGE_DPCM is not set | ||
984 | # CONFIG_USB_STORAGE_USBAT is not set | ||
985 | # CONFIG_USB_STORAGE_SDDR09 is not set | ||
986 | # CONFIG_USB_STORAGE_SDDR55 is not set | ||
987 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | ||
988 | # CONFIG_USB_STORAGE_ONETOUCH is not set | ||
989 | |||
990 | # | ||
991 | # USB Input Devices | ||
992 | # | ||
993 | CONFIG_USB_HID=m | ||
994 | CONFIG_USB_HIDINPUT=y | ||
995 | # CONFIG_HID_FF is not set | ||
996 | # CONFIG_USB_HIDDEV is not set | ||
997 | |||
998 | # | ||
999 | # USB HID Boot Protocol drivers | ||
1000 | # | ||
1001 | CONFIG_USB_KBD=m | ||
1002 | CONFIG_USB_MOUSE=m | ||
1003 | CONFIG_USB_AIPTEK=m | ||
1004 | CONFIG_USB_WACOM=m | ||
1005 | # CONFIG_USB_ACECAD is not set | ||
1006 | CONFIG_USB_KBTAB=m | ||
1007 | CONFIG_USB_POWERMATE=m | ||
1008 | CONFIG_USB_MTOUCH=m | ||
1009 | # CONFIG_USB_ITMTOUCH is not set | ||
1010 | CONFIG_USB_EGALAX=m | ||
1011 | # CONFIG_USB_YEALINK is not set | ||
1012 | CONFIG_USB_XPAD=m | ||
1013 | CONFIG_USB_ATI_REMOTE=m | ||
1014 | # CONFIG_USB_KEYSPAN_REMOTE is not set | ||
1015 | # CONFIG_USB_APPLETOUCH is not set | ||
1016 | |||
1017 | # | ||
1018 | # USB Imaging devices | ||
1019 | # | ||
1020 | CONFIG_USB_MDC800=m | ||
1021 | CONFIG_USB_MICROTEK=m | ||
1022 | |||
1023 | # | ||
1024 | # USB Multimedia devices | ||
1025 | # | ||
1026 | CONFIG_USB_DABUSB=m | ||
1027 | |||
1028 | # | ||
1029 | # Video4Linux support is needed for USB Multimedia device support | ||
1030 | # | ||
1031 | |||
1032 | # | ||
1033 | # USB Network Adapters | ||
1034 | # | ||
1035 | CONFIG_USB_CATC=m | ||
1036 | CONFIG_USB_KAWETH=m | ||
1037 | CONFIG_USB_PEGASUS=m | ||
1038 | CONFIG_USB_RTL8150=m | ||
1039 | CONFIG_USB_USBNET=m | ||
1040 | CONFIG_USB_NET_AX8817X=m | ||
1041 | CONFIG_USB_NET_CDCETHER=m | ||
1042 | # CONFIG_USB_NET_GL620A is not set | ||
1043 | CONFIG_USB_NET_NET1080=m | ||
1044 | # CONFIG_USB_NET_PLUSB is not set | ||
1045 | # CONFIG_USB_NET_RNDIS_HOST is not set | ||
1046 | # CONFIG_USB_NET_CDC_SUBSET is not set | ||
1047 | CONFIG_USB_NET_ZAURUS=m | ||
1048 | # CONFIG_USB_ZD1201 is not set | ||
1049 | CONFIG_USB_MON=y | ||
1050 | |||
1051 | # | ||
1052 | # USB port drivers | ||
1053 | # | ||
1054 | |||
1055 | # | ||
1056 | # USB Serial Converter support | ||
1057 | # | ||
1058 | CONFIG_USB_SERIAL=m | ||
1059 | CONFIG_USB_SERIAL_GENERIC=y | ||
1060 | # CONFIG_USB_SERIAL_AIRPRIME is not set | ||
1061 | CONFIG_USB_SERIAL_BELKIN=m | ||
1062 | # CONFIG_USB_SERIAL_WHITEHEAT is not set | ||
1063 | CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m | ||
1064 | # CONFIG_USB_SERIAL_CP2101 is not set | ||
1065 | CONFIG_USB_SERIAL_CYPRESS_M8=m | ||
1066 | CONFIG_USB_SERIAL_EMPEG=m | ||
1067 | CONFIG_USB_SERIAL_FTDI_SIO=m | ||
1068 | CONFIG_USB_SERIAL_VISOR=m | ||
1069 | CONFIG_USB_SERIAL_IPAQ=m | ||
1070 | CONFIG_USB_SERIAL_IR=m | ||
1071 | CONFIG_USB_SERIAL_EDGEPORT=m | ||
1072 | CONFIG_USB_SERIAL_EDGEPORT_TI=m | ||
1073 | CONFIG_USB_SERIAL_GARMIN=m | ||
1074 | CONFIG_USB_SERIAL_IPW=m | ||
1075 | CONFIG_USB_SERIAL_KEYSPAN_PDA=m | ||
1076 | CONFIG_USB_SERIAL_KEYSPAN=m | ||
1077 | # CONFIG_USB_SERIAL_KEYSPAN_MPR is not set | ||
1078 | # CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set | ||
1079 | # CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set | ||
1080 | # CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set | ||
1081 | # CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set | ||
1082 | # CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set | ||
1083 | # CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set | ||
1084 | # CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set | ||
1085 | # CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set | ||
1086 | # CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set | ||
1087 | # CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set | ||
1088 | # CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set | ||
1089 | CONFIG_USB_SERIAL_KLSI=m | ||
1090 | CONFIG_USB_SERIAL_KOBIL_SCT=m | ||
1091 | CONFIG_USB_SERIAL_MCT_U232=m | ||
1092 | CONFIG_USB_SERIAL_PL2303=m | ||
1093 | # CONFIG_USB_SERIAL_HP4X is not set | ||
1094 | CONFIG_USB_SERIAL_SAFE=m | ||
1095 | # CONFIG_USB_SERIAL_SAFE_PADDED is not set | ||
1096 | CONFIG_USB_SERIAL_TI=m | ||
1097 | CONFIG_USB_SERIAL_CYBERJACK=m | ||
1098 | CONFIG_USB_SERIAL_XIRCOM=m | ||
1099 | # CONFIG_USB_SERIAL_OPTION is not set | ||
1100 | CONFIG_USB_SERIAL_OMNINET=m | ||
1101 | CONFIG_USB_EZUSB=y | ||
1102 | |||
1103 | # | ||
1104 | # USB Miscellaneous drivers | ||
1105 | # | ||
1106 | CONFIG_USB_EMI62=m | ||
1107 | CONFIG_USB_EMI26=m | ||
1108 | CONFIG_USB_AUERSWALD=m | ||
1109 | CONFIG_USB_RIO500=m | ||
1110 | CONFIG_USB_LEGOTOWER=m | ||
1111 | CONFIG_USB_LCD=m | ||
1112 | CONFIG_USB_LED=m | ||
1113 | CONFIG_USB_CYTHERM=m | ||
1114 | CONFIG_USB_PHIDGETKIT=m | ||
1115 | CONFIG_USB_PHIDGETSERVO=m | ||
1116 | CONFIG_USB_IDMOUSE=m | ||
1117 | # CONFIG_USB_LD is not set | ||
1118 | # CONFIG_USB_TEST is not set | ||
1119 | |||
1120 | # | ||
1121 | # USB DSL modem support | ||
1122 | # | ||
1123 | |||
1124 | # | ||
1125 | # USB Gadget Support | ||
1126 | # | ||
1127 | CONFIG_USB_GADGET=m | ||
1128 | # CONFIG_USB_GADGET_DEBUG_FILES is not set | ||
1129 | CONFIG_USB_GADGET_SELECTED=y | ||
1130 | # CONFIG_USB_GADGET_NET2280 is not set | ||
1131 | # CONFIG_USB_GADGET_PXA2XX is not set | ||
1132 | # CONFIG_USB_GADGET_GOKU is not set | ||
1133 | # CONFIG_USB_GADGET_LH7A40X is not set | ||
1134 | # CONFIG_USB_GADGET_OMAP is not set | ||
1135 | CONFIG_USB_GADGET_DUMMY_HCD=y | ||
1136 | CONFIG_USB_DUMMY_HCD=m | ||
1137 | CONFIG_USB_GADGET_DUALSPEED=y | ||
1138 | CONFIG_USB_ZERO=m | ||
1139 | CONFIG_USB_ETH=m | ||
1140 | CONFIG_USB_ETH_RNDIS=y | ||
1141 | CONFIG_USB_GADGETFS=m | ||
1142 | CONFIG_USB_FILE_STORAGE=m | ||
1143 | # CONFIG_USB_FILE_STORAGE_TEST is not set | ||
1144 | CONFIG_USB_G_SERIAL=m | ||
1145 | |||
1146 | # | ||
1147 | # MMC/SD Card support | ||
1148 | # | ||
1149 | CONFIG_MMC=y | ||
1150 | # CONFIG_MMC_DEBUG is not set | ||
1151 | CONFIG_MMC_BLOCK=y | ||
1152 | CONFIG_MMC_PXA=y | ||
1153 | # CONFIG_MMC_WBSD is not set | ||
1154 | |||
1155 | # | ||
1156 | # File systems | ||
1157 | # | ||
1158 | CONFIG_EXT2_FS=y | ||
1159 | CONFIG_EXT2_FS_XATTR=y | ||
1160 | CONFIG_EXT2_FS_POSIX_ACL=y | ||
1161 | CONFIG_EXT2_FS_SECURITY=y | ||
1162 | # CONFIG_EXT2_FS_XIP is not set | ||
1163 | CONFIG_EXT3_FS=y | ||
1164 | # CONFIG_EXT3_FS_XATTR is not set | ||
1165 | CONFIG_JBD=y | ||
1166 | # CONFIG_JBD_DEBUG is not set | ||
1167 | CONFIG_FS_MBCACHE=y | ||
1168 | # CONFIG_REISERFS_FS is not set | ||
1169 | # CONFIG_JFS_FS is not set | ||
1170 | CONFIG_FS_POSIX_ACL=y | ||
1171 | # CONFIG_XFS_FS is not set | ||
1172 | # CONFIG_MINIX_FS is not set | ||
1173 | # CONFIG_ROMFS_FS is not set | ||
1174 | CONFIG_INOTIFY=y | ||
1175 | # CONFIG_QUOTA is not set | ||
1176 | CONFIG_DNOTIFY=y | ||
1177 | # CONFIG_AUTOFS_FS is not set | ||
1178 | # CONFIG_AUTOFS4_FS is not set | ||
1179 | # CONFIG_FUSE_FS is not set | ||
1180 | |||
1181 | # | ||
1182 | # CD-ROM/DVD Filesystems | ||
1183 | # | ||
1184 | # CONFIG_ISO9660_FS is not set | ||
1185 | # CONFIG_UDF_FS is not set | ||
1186 | |||
1187 | # | ||
1188 | # DOS/FAT/NT Filesystems | ||
1189 | # | ||
1190 | CONFIG_FAT_FS=y | ||
1191 | CONFIG_MSDOS_FS=y | ||
1192 | CONFIG_VFAT_FS=y | ||
1193 | CONFIG_FAT_DEFAULT_CODEPAGE=437 | ||
1194 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
1195 | # CONFIG_NTFS_FS is not set | ||
1196 | |||
1197 | # | ||
1198 | # Pseudo filesystems | ||
1199 | # | ||
1200 | CONFIG_PROC_FS=y | ||
1201 | CONFIG_SYSFS=y | ||
1202 | CONFIG_TMPFS=y | ||
1203 | # CONFIG_HUGETLB_PAGE is not set | ||
1204 | CONFIG_RAMFS=y | ||
1205 | # CONFIG_RELAYFS_FS is not set | ||
1206 | |||
1207 | # | ||
1208 | # Miscellaneous filesystems | ||
1209 | # | ||
1210 | # CONFIG_ADFS_FS is not set | ||
1211 | # CONFIG_AFFS_FS is not set | ||
1212 | # CONFIG_HFS_FS is not set | ||
1213 | # CONFIG_HFSPLUS_FS is not set | ||
1214 | # CONFIG_BEFS_FS is not set | ||
1215 | # CONFIG_BFS_FS is not set | ||
1216 | # CONFIG_EFS_FS is not set | ||
1217 | # CONFIG_JFFS_FS is not set | ||
1218 | CONFIG_JFFS2_FS=y | ||
1219 | CONFIG_JFFS2_FS_DEBUG=0 | ||
1220 | CONFIG_JFFS2_FS_WRITEBUFFER=y | ||
1221 | CONFIG_JFFS2_COMPRESSION_OPTIONS=y | ||
1222 | CONFIG_JFFS2_ZLIB=y | ||
1223 | CONFIG_JFFS2_RTIME=y | ||
1224 | CONFIG_JFFS2_RUBIN=y | ||
1225 | # CONFIG_JFFS2_CMODE_NONE is not set | ||
1226 | CONFIG_JFFS2_CMODE_PRIORITY=y | ||
1227 | # CONFIG_JFFS2_CMODE_SIZE is not set | ||
1228 | CONFIG_CRAMFS=m | ||
1229 | # CONFIG_VXFS_FS is not set | ||
1230 | # CONFIG_HPFS_FS is not set | ||
1231 | # CONFIG_QNX4FS_FS is not set | ||
1232 | # CONFIG_SYSV_FS is not set | ||
1233 | # CONFIG_UFS_FS is not set | ||
1234 | |||
1235 | # | ||
1236 | # Network File Systems | ||
1237 | # | ||
1238 | CONFIG_NFS_FS=m | ||
1239 | CONFIG_NFS_V3=y | ||
1240 | # CONFIG_NFS_V3_ACL is not set | ||
1241 | CONFIG_NFS_V4=y | ||
1242 | # CONFIG_NFS_DIRECTIO is not set | ||
1243 | # CONFIG_NFSD is not set | ||
1244 | CONFIG_LOCKD=m | ||
1245 | CONFIG_LOCKD_V4=y | ||
1246 | CONFIG_NFS_COMMON=y | ||
1247 | CONFIG_SUNRPC=m | ||
1248 | CONFIG_SUNRPC_GSS=m | ||
1249 | CONFIG_RPCSEC_GSS_KRB5=m | ||
1250 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
1251 | CONFIG_SMB_FS=m | ||
1252 | CONFIG_SMB_NLS_DEFAULT=y | ||
1253 | CONFIG_SMB_NLS_REMOTE="cp437" | ||
1254 | # CONFIG_CIFS is not set | ||
1255 | # CONFIG_NCP_FS is not set | ||
1256 | # CONFIG_CODA_FS is not set | ||
1257 | # CONFIG_AFS_FS is not set | ||
1258 | # CONFIG_9P_FS is not set | ||
1259 | |||
1260 | # | ||
1261 | # Partition Types | ||
1262 | # | ||
1263 | CONFIG_PARTITION_ADVANCED=y | ||
1264 | # CONFIG_ACORN_PARTITION is not set | ||
1265 | # CONFIG_OSF_PARTITION is not set | ||
1266 | # CONFIG_AMIGA_PARTITION is not set | ||
1267 | # CONFIG_ATARI_PARTITION is not set | ||
1268 | # CONFIG_MAC_PARTITION is not set | ||
1269 | CONFIG_MSDOS_PARTITION=y | ||
1270 | # CONFIG_BSD_DISKLABEL is not set | ||
1271 | # CONFIG_MINIX_SUBPARTITION is not set | ||
1272 | # CONFIG_SOLARIS_X86_PARTITION is not set | ||
1273 | # CONFIG_UNIXWARE_DISKLABEL is not set | ||
1274 | # CONFIG_LDM_PARTITION is not set | ||
1275 | # CONFIG_SGI_PARTITION is not set | ||
1276 | # CONFIG_ULTRIX_PARTITION is not set | ||
1277 | # CONFIG_SUN_PARTITION is not set | ||
1278 | # CONFIG_EFI_PARTITION is not set | ||
1279 | |||
1280 | # | ||
1281 | # Native Language Support | ||
1282 | # | ||
1283 | CONFIG_NLS=y | ||
1284 | CONFIG_NLS_DEFAULT="cp437" | ||
1285 | CONFIG_NLS_CODEPAGE_437=y | ||
1286 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
1287 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
1288 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
1289 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
1290 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
1291 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
1292 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
1293 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
1294 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
1295 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
1296 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
1297 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
1298 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
1299 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
1300 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
1301 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
1302 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
1303 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
1304 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
1305 | # CONFIG_NLS_ISO8859_8 is not set | ||
1306 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
1307 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
1308 | # CONFIG_NLS_ASCII is not set | ||
1309 | CONFIG_NLS_ISO8859_1=y | ||
1310 | # CONFIG_NLS_ISO8859_2 is not set | ||
1311 | # CONFIG_NLS_ISO8859_3 is not set | ||
1312 | # CONFIG_NLS_ISO8859_4 is not set | ||
1313 | # CONFIG_NLS_ISO8859_5 is not set | ||
1314 | # CONFIG_NLS_ISO8859_6 is not set | ||
1315 | # CONFIG_NLS_ISO8859_7 is not set | ||
1316 | # CONFIG_NLS_ISO8859_9 is not set | ||
1317 | # CONFIG_NLS_ISO8859_13 is not set | ||
1318 | # CONFIG_NLS_ISO8859_14 is not set | ||
1319 | # CONFIG_NLS_ISO8859_15 is not set | ||
1320 | # CONFIG_NLS_KOI8_R is not set | ||
1321 | # CONFIG_NLS_KOI8_U is not set | ||
1322 | CONFIG_NLS_UTF8=y | ||
1323 | |||
1324 | # | ||
1325 | # Profiling support | ||
1326 | # | ||
1327 | CONFIG_PROFILING=y | ||
1328 | CONFIG_OPROFILE=m | ||
1329 | |||
1330 | # | ||
1331 | # Kernel hacking | ||
1332 | # | ||
1333 | # CONFIG_PRINTK_TIME is not set | ||
1334 | CONFIG_DEBUG_KERNEL=y | ||
1335 | CONFIG_MAGIC_SYSRQ=y | ||
1336 | CONFIG_LOG_BUF_SHIFT=14 | ||
1337 | CONFIG_DETECT_SOFTLOCKUP=y | ||
1338 | # CONFIG_SCHEDSTATS is not set | ||
1339 | # CONFIG_DEBUG_SLAB is not set | ||
1340 | # CONFIG_DEBUG_PREEMPT is not set | ||
1341 | # CONFIG_DEBUG_SPINLOCK is not set | ||
1342 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
1343 | # CONFIG_DEBUG_KOBJECT is not set | ||
1344 | CONFIG_DEBUG_BUGVERBOSE=y | ||
1345 | # CONFIG_DEBUG_INFO is not set | ||
1346 | # CONFIG_DEBUG_FS is not set | ||
1347 | CONFIG_FRAME_POINTER=y | ||
1348 | # CONFIG_DEBUG_USER is not set | ||
1349 | # CONFIG_DEBUG_WAITQ is not set | ||
1350 | CONFIG_DEBUG_ERRORS=y | ||
1351 | CONFIG_DEBUG_LL=y | ||
1352 | # CONFIG_DEBUG_ICEDCC is not set | ||
1353 | |||
1354 | # | ||
1355 | # Security options | ||
1356 | # | ||
1357 | # CONFIG_KEYS is not set | ||
1358 | # CONFIG_SECURITY is not set | ||
1359 | |||
1360 | # | ||
1361 | # Cryptographic options | ||
1362 | # | ||
1363 | CONFIG_CRYPTO=y | ||
1364 | CONFIG_CRYPTO_HMAC=y | ||
1365 | CONFIG_CRYPTO_NULL=m | ||
1366 | CONFIG_CRYPTO_MD4=m | ||
1367 | CONFIG_CRYPTO_MD5=m | ||
1368 | CONFIG_CRYPTO_SHA1=m | ||
1369 | CONFIG_CRYPTO_SHA256=m | ||
1370 | CONFIG_CRYPTO_SHA512=m | ||
1371 | CONFIG_CRYPTO_WP512=m | ||
1372 | # CONFIG_CRYPTO_TGR192 is not set | ||
1373 | CONFIG_CRYPTO_DES=m | ||
1374 | CONFIG_CRYPTO_BLOWFISH=m | ||
1375 | CONFIG_CRYPTO_TWOFISH=m | ||
1376 | CONFIG_CRYPTO_SERPENT=m | ||
1377 | CONFIG_CRYPTO_AES=m | ||
1378 | CONFIG_CRYPTO_CAST5=m | ||
1379 | CONFIG_CRYPTO_CAST6=m | ||
1380 | CONFIG_CRYPTO_TEA=m | ||
1381 | CONFIG_CRYPTO_ARC4=m | ||
1382 | CONFIG_CRYPTO_KHAZAD=m | ||
1383 | CONFIG_CRYPTO_ANUBIS=m | ||
1384 | CONFIG_CRYPTO_DEFLATE=m | ||
1385 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
1386 | CONFIG_CRYPTO_CRC32C=m | ||
1387 | CONFIG_CRYPTO_TEST=m | ||
1388 | |||
1389 | # | ||
1390 | # Hardware crypto devices | ||
1391 | # | ||
1392 | |||
1393 | # | ||
1394 | # Library routines | ||
1395 | # | ||
1396 | CONFIG_CRC_CCITT=y | ||
1397 | # CONFIG_CRC16 is not set | ||
1398 | CONFIG_CRC32=y | ||
1399 | CONFIG_LIBCRC32C=m | ||
1400 | CONFIG_ZLIB_INFLATE=y | ||
1401 | CONFIG_ZLIB_DEFLATE=y | ||
diff --git a/arch/arm/kernel/sys_arm.c b/arch/arm/kernel/sys_arm.c index 42629ff84f5a..ea569ba482b1 100644 --- a/arch/arm/kernel/sys_arm.c +++ b/arch/arm/kernel/sys_arm.c | |||
@@ -305,7 +305,7 @@ long execve(const char *filename, char **argv, char **envp) | |||
305 | "Ir" (THREAD_START_SP - sizeof(regs)), | 305 | "Ir" (THREAD_START_SP - sizeof(regs)), |
306 | "r" (®s), | 306 | "r" (®s), |
307 | "Ir" (sizeof(regs)) | 307 | "Ir" (sizeof(regs)) |
308 | : "r0", "r1", "r2", "r3", "ip", "memory"); | 308 | : "r0", "r1", "r2", "r3", "ip", "lr", "memory"); |
309 | 309 | ||
310 | out: | 310 | out: |
311 | return ret; | 311 | return ret; |
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c index e7d22dbcb691..f6de76e0a45d 100644 --- a/arch/arm/kernel/traps.c +++ b/arch/arm/kernel/traps.c | |||
@@ -504,7 +504,7 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs) | |||
504 | 504 | ||
505 | bad_access: | 505 | bad_access: |
506 | spin_unlock(&mm->page_table_lock); | 506 | spin_unlock(&mm->page_table_lock); |
507 | /* simulate a read access fault */ | 507 | /* simulate a write access fault */ |
508 | do_DataAbort(addr, 15 + (1 << 11), regs); | 508 | do_DataAbort(addr, 15 + (1 << 11), regs); |
509 | return -1; | 509 | return -1; |
510 | } | 510 | } |
diff --git a/arch/arm/mach-clps711x/fortunet.c b/arch/arm/mach-clps711x/fortunet.c index f83a59761e02..3d88da0c287b 100644 --- a/arch/arm/mach-clps711x/fortunet.c +++ b/arch/arm/mach-clps711x/fortunet.c | |||
@@ -31,6 +31,8 @@ | |||
31 | 31 | ||
32 | #include <asm/mach/arch.h> | 32 | #include <asm/mach/arch.h> |
33 | 33 | ||
34 | #include <asm/memory.h> | ||
35 | |||
34 | #include "common.h" | 36 | #include "common.h" |
35 | 37 | ||
36 | struct meminfo memmap = { | 38 | struct meminfo memmap = { |
diff --git a/arch/arm/mach-imx/generic.c b/arch/arm/mach-imx/generic.c index 41e5849ae8da..f8a742bb2d5b 100644 --- a/arch/arm/mach-imx/generic.c +++ b/arch/arm/mach-imx/generic.c | |||
@@ -28,14 +28,15 @@ | |||
28 | #include <linux/module.h> | 28 | #include <linux/module.h> |
29 | #include <asm/arch/imxfb.h> | 29 | #include <asm/arch/imxfb.h> |
30 | #include <asm/hardware.h> | 30 | #include <asm/hardware.h> |
31 | #include <asm/arch/imx-regs.h> | ||
31 | 32 | ||
32 | #include <asm/mach/map.h> | 33 | #include <asm/mach/map.h> |
33 | 34 | ||
34 | void imx_gpio_mode(int gpio_mode) | 35 | void imx_gpio_mode(int gpio_mode) |
35 | { | 36 | { |
36 | unsigned int pin = gpio_mode & GPIO_PIN_MASK; | 37 | unsigned int pin = gpio_mode & GPIO_PIN_MASK; |
37 | unsigned int port = (gpio_mode & GPIO_PORT_MASK) >> 5; | 38 | unsigned int port = (gpio_mode & GPIO_PORT_MASK) >> GPIO_PORT_SHIFT; |
38 | unsigned int ocr = (gpio_mode & GPIO_OCR_MASK) >> 10; | 39 | unsigned int ocr = (gpio_mode & GPIO_OCR_MASK) >> GPIO_OCR_SHIFT; |
39 | unsigned int tmp; | 40 | unsigned int tmp; |
40 | 41 | ||
41 | /* Pullup enable */ | 42 | /* Pullup enable */ |
@@ -57,7 +58,7 @@ void imx_gpio_mode(int gpio_mode) | |||
57 | GPR(port) &= ~(1<<pin); | 58 | GPR(port) &= ~(1<<pin); |
58 | 59 | ||
59 | /* use as gpio? */ | 60 | /* use as gpio? */ |
60 | if( ocr == 3 ) | 61 | if(gpio_mode & GPIO_GIUS) |
61 | GIUS(port) |= (1<<pin); | 62 | GIUS(port) |= (1<<pin); |
62 | else | 63 | else |
63 | GIUS(port) &= ~(1<<pin); | 64 | GIUS(port) &= ~(1<<pin); |
@@ -72,20 +73,20 @@ void imx_gpio_mode(int gpio_mode) | |||
72 | tmp |= (ocr << (pin*2)); | 73 | tmp |= (ocr << (pin*2)); |
73 | OCR1(port) = tmp; | 74 | OCR1(port) = tmp; |
74 | 75 | ||
75 | if( gpio_mode & GPIO_AOUT ) | 76 | ICONFA1(port) &= ~( 3<<(pin*2)); |
76 | ICONFA1(port) &= ~( 3<<(pin*2)); | 77 | ICONFA1(port) |= ((gpio_mode >> GPIO_AOUT_SHIFT) & 3) << (pin * 2); |
77 | if( gpio_mode & GPIO_BOUT ) | 78 | ICONFB1(port) &= ~( 3<<(pin*2)); |
78 | ICONFB1(port) &= ~( 3<<(pin*2)); | 79 | ICONFB1(port) |= ((gpio_mode >> GPIO_BOUT_SHIFT) & 3) << (pin * 2); |
79 | } else { | 80 | } else { |
80 | tmp = OCR2(port); | 81 | tmp = OCR2(port); |
81 | tmp &= ~( 3<<((pin-16)*2)); | 82 | tmp &= ~( 3<<((pin-16)*2)); |
82 | tmp |= (ocr << ((pin-16)*2)); | 83 | tmp |= (ocr << ((pin-16)*2)); |
83 | OCR2(port) = tmp; | 84 | OCR2(port) = tmp; |
84 | 85 | ||
85 | if( gpio_mode & GPIO_AOUT ) | 86 | ICONFA2(port) &= ~( 3<<((pin-16)*2)); |
86 | ICONFA2(port) &= ~( 3<<((pin-16)*2)); | 87 | ICONFA2(port) |= ((gpio_mode >> GPIO_AOUT_SHIFT) & 3) << ((pin-16) * 2); |
87 | if( gpio_mode & GPIO_BOUT ) | 88 | ICONFB2(port) &= ~( 3<<((pin-16)*2)); |
88 | ICONFB2(port) &= ~( 3<<((pin-16)*2)); | 89 | ICONFB2(port) |= ((gpio_mode >> GPIO_BOUT_SHIFT) & 3) << ((pin-16) * 2); |
89 | } | 90 | } |
90 | } | 91 | } |
91 | 92 | ||
diff --git a/arch/arm/mach-imx/leds-mx1ads.c b/arch/arm/mach-imx/leds-mx1ads.c index e6399b06e4a4..79236404aec2 100644 --- a/arch/arm/mach-imx/leds-mx1ads.c +++ b/arch/arm/mach-imx/leds-mx1ads.c | |||
@@ -17,7 +17,6 @@ | |||
17 | #include <asm/system.h> | 17 | #include <asm/system.h> |
18 | #include <asm/io.h> | 18 | #include <asm/io.h> |
19 | #include <asm/leds.h> | 19 | #include <asm/leds.h> |
20 | #include <asm/mach-types.h> | ||
21 | #include "leds.h" | 20 | #include "leds.h" |
22 | 21 | ||
23 | /* | 22 | /* |
diff --git a/arch/arm/mach-imx/mx1ads.c b/arch/arm/mach-imx/mx1ads.c index 5d25434d332c..a7511ddfe364 100644 --- a/arch/arm/mach-imx/mx1ads.c +++ b/arch/arm/mach-imx/mx1ads.c | |||
@@ -55,7 +55,7 @@ static void __init | |||
55 | mx1ads_init(void) | 55 | mx1ads_init(void) |
56 | { | 56 | { |
57 | #ifdef CONFIG_LEDS | 57 | #ifdef CONFIG_LEDS |
58 | imx_gpio_mode(GPIO_PORTA | GPIO_OUT | GPIO_GPIO | 2); | 58 | imx_gpio_mode(GPIO_PORTA | GPIO_OUT | 2); |
59 | #endif | 59 | #endif |
60 | platform_add_devices(devices, ARRAY_SIZE(devices)); | 60 | platform_add_devices(devices, ARRAY_SIZE(devices)); |
61 | } | 61 | } |
diff --git a/arch/arm/mach-iop3xx/common.c b/arch/arm/mach-iop3xx/common.c index bda7394ec06c..fdeeef489a73 100644 --- a/arch/arm/mach-iop3xx/common.c +++ b/arch/arm/mach-iop3xx/common.c | |||
@@ -27,7 +27,6 @@ unsigned long iop3xx_pcibios_min_mem = 0; | |||
27 | /* | 27 | /* |
28 | * Default power-off for EP80219 | 28 | * Default power-off for EP80219 |
29 | */ | 29 | */ |
30 | #include <asm/mach-types.h> | ||
31 | 30 | ||
32 | static inline void ep80219_send_to_pic(__u8 c) { | 31 | static inline void ep80219_send_to_pic(__u8 c) { |
33 | } | 32 | } |
diff --git a/arch/arm/mach-iop3xx/iop321-time.c b/arch/arm/mach-iop3xx/iop321-time.c index 0039793b694a..d67ac0e5d438 100644 --- a/arch/arm/mach-iop3xx/iop321-time.c +++ b/arch/arm/mach-iop3xx/iop321-time.c | |||
@@ -23,7 +23,6 @@ | |||
23 | #include <asm/io.h> | 23 | #include <asm/io.h> |
24 | #include <asm/irq.h> | 24 | #include <asm/irq.h> |
25 | #include <asm/uaccess.h> | 25 | #include <asm/uaccess.h> |
26 | #include <asm/mach-types.h> | ||
27 | #include <asm/mach/irq.h> | 26 | #include <asm/mach/irq.h> |
28 | #include <asm/mach/time.h> | 27 | #include <asm/mach/time.h> |
29 | 28 | ||
diff --git a/arch/arm/mach-iop3xx/iop331-time.c b/arch/arm/mach-iop3xx/iop331-time.c index 8eddfac7e2b0..3c1f0ebbd636 100644 --- a/arch/arm/mach-iop3xx/iop331-time.c +++ b/arch/arm/mach-iop3xx/iop331-time.c | |||
@@ -23,7 +23,6 @@ | |||
23 | #include <asm/io.h> | 23 | #include <asm/io.h> |
24 | #include <asm/irq.h> | 24 | #include <asm/irq.h> |
25 | #include <asm/uaccess.h> | 25 | #include <asm/uaccess.h> |
26 | #include <asm/mach-types.h> | ||
27 | #include <asm/mach/irq.h> | 26 | #include <asm/mach/irq.h> |
28 | #include <asm/mach/time.h> | 27 | #include <asm/mach/time.h> |
29 | 28 | ||
diff --git a/arch/arm/mach-iop3xx/iq31244-mm.c b/arch/arm/mach-iop3xx/iq31244-mm.c index b01042f7de71..55992ab586ba 100644 --- a/arch/arm/mach-iop3xx/iq31244-mm.c +++ b/arch/arm/mach-iop3xx/iq31244-mm.c | |||
@@ -21,7 +21,6 @@ | |||
21 | #include <asm/page.h> | 21 | #include <asm/page.h> |
22 | 22 | ||
23 | #include <asm/mach/map.h> | 23 | #include <asm/mach/map.h> |
24 | #include <asm/mach-types.h> | ||
25 | 24 | ||
26 | 25 | ||
27 | /* | 26 | /* |
diff --git a/arch/arm/mach-iop3xx/iq80321-mm.c b/arch/arm/mach-iop3xx/iq80321-mm.c index 1580c7ed2b9d..bb3e9e5a9aff 100644 --- a/arch/arm/mach-iop3xx/iq80321-mm.c +++ b/arch/arm/mach-iop3xx/iq80321-mm.c | |||
@@ -21,7 +21,6 @@ | |||
21 | #include <asm/page.h> | 21 | #include <asm/page.h> |
22 | 22 | ||
23 | #include <asm/mach/map.h> | 23 | #include <asm/mach/map.h> |
24 | #include <asm/mach-types.h> | ||
25 | 24 | ||
26 | 25 | ||
27 | /* | 26 | /* |
diff --git a/arch/arm/mach-iop3xx/iq80331-mm.c b/arch/arm/mach-iop3xx/iq80331-mm.c index ee8c333e115f..129eb49b0670 100644 --- a/arch/arm/mach-iop3xx/iq80331-mm.c +++ b/arch/arm/mach-iop3xx/iq80331-mm.c | |||
@@ -21,7 +21,6 @@ | |||
21 | #include <asm/page.h> | 21 | #include <asm/page.h> |
22 | 22 | ||
23 | #include <asm/mach/map.h> | 23 | #include <asm/mach/map.h> |
24 | #include <asm/mach-types.h> | ||
25 | 24 | ||
26 | 25 | ||
27 | /* | 26 | /* |
diff --git a/arch/arm/mach-iop3xx/iq80332-mm.c b/arch/arm/mach-iop3xx/iq80332-mm.c index 084afcdfb1eb..2feaf7591f53 100644 --- a/arch/arm/mach-iop3xx/iq80332-mm.c +++ b/arch/arm/mach-iop3xx/iq80332-mm.c | |||
@@ -21,7 +21,6 @@ | |||
21 | #include <asm/page.h> | 21 | #include <asm/page.h> |
22 | 22 | ||
23 | #include <asm/mach/map.h> | 23 | #include <asm/mach/map.h> |
24 | #include <asm/mach-types.h> | ||
25 | 24 | ||
26 | 25 | ||
27 | /* | 26 | /* |
diff --git a/arch/arm/mach-ixp2000/core.c b/arch/arm/mach-ixp2000/core.c index 74bd2fd602d4..f4d7f1f6ef85 100644 --- a/arch/arm/mach-ixp2000/core.c +++ b/arch/arm/mach-ixp2000/core.c | |||
@@ -30,7 +30,6 @@ | |||
30 | #include <asm/setup.h> | 30 | #include <asm/setup.h> |
31 | #include <asm/memory.h> | 31 | #include <asm/memory.h> |
32 | #include <asm/hardware.h> | 32 | #include <asm/hardware.h> |
33 | #include <asm/mach-types.h> | ||
34 | #include <asm/irq.h> | 33 | #include <asm/irq.h> |
35 | #include <asm/system.h> | 34 | #include <asm/system.h> |
36 | #include <asm/tlbflush.h> | 35 | #include <asm/tlbflush.h> |
@@ -168,7 +167,7 @@ static struct plat_serial8250_port ixp2000_serial_port[] = { | |||
168 | 167 | ||
169 | static struct resource ixp2000_uart_resource = { | 168 | static struct resource ixp2000_uart_resource = { |
170 | .start = IXP2000_UART_PHYS_BASE, | 169 | .start = IXP2000_UART_PHYS_BASE, |
171 | .end = IXP2000_UART_PHYS_BASE + 0xffff, | 170 | .end = IXP2000_UART_PHYS_BASE + 0x1f, |
172 | .flags = IORESOURCE_MEM, | 171 | .flags = IORESOURCE_MEM, |
173 | }; | 172 | }; |
174 | 173 | ||
diff --git a/arch/arm/mach-ixp2000/pci.c b/arch/arm/mach-ixp2000/pci.c index 0788fb2b5c10..522205acb316 100644 --- a/arch/arm/mach-ixp2000/pci.c +++ b/arch/arm/mach-ixp2000/pci.c | |||
@@ -28,7 +28,6 @@ | |||
28 | #include <asm/io.h> | 28 | #include <asm/io.h> |
29 | #include <asm/irq.h> | 29 | #include <asm/irq.h> |
30 | #include <asm/system.h> | 30 | #include <asm/system.h> |
31 | #include <asm/mach-types.h> | ||
32 | #include <asm/hardware.h> | 31 | #include <asm/hardware.h> |
33 | 32 | ||
34 | #include <asm/mach/pci.h> | 33 | #include <asm/mach/pci.h> |
diff --git a/arch/arm/mach-ixp4xx/ixdp425-setup.c b/arch/arm/mach-ixp4xx/ixdp425-setup.c index 39b06ed80646..0a41080d2266 100644 --- a/arch/arm/mach-ixp4xx/ixdp425-setup.c +++ b/arch/arm/mach-ixp4xx/ixdp425-setup.c | |||
@@ -123,7 +123,7 @@ static void __init ixdp425_init(void) | |||
123 | platform_add_devices(ixdp425_devices, ARRAY_SIZE(ixdp425_devices)); | 123 | platform_add_devices(ixdp425_devices, ARRAY_SIZE(ixdp425_devices)); |
124 | } | 124 | } |
125 | 125 | ||
126 | #ifdef CONFIG_ARCH_IXDP465 | 126 | #ifdef CONFIG_ARCH_IXDP425 |
127 | MACHINE_START(IXDP425, "Intel IXDP425 Development Platform") | 127 | MACHINE_START(IXDP425, "Intel IXDP425 Development Platform") |
128 | /* Maintainer: MontaVista Software, Inc. */ | 128 | /* Maintainer: MontaVista Software, Inc. */ |
129 | .phys_ram = PHYS_OFFSET, | 129 | .phys_ram = PHYS_OFFSET, |
diff --git a/arch/arm/mach-l7200/core.c b/arch/arm/mach-l7200/core.c index 2a7fee2a7635..5fd8c9f97f9a 100644 --- a/arch/arm/mach-l7200/core.c +++ b/arch/arm/mach-l7200/core.c | |||
@@ -12,7 +12,6 @@ | |||
12 | #include <asm/page.h> | 12 | #include <asm/page.h> |
13 | 13 | ||
14 | #include <asm/mach/map.h> | 14 | #include <asm/mach/map.h> |
15 | #include <asm/arch/hardware.h> | ||
16 | 15 | ||
17 | /* | 16 | /* |
18 | * IRQ base register | 17 | * IRQ base register |
diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c index be37586cb1b0..60c8b9d8bb9c 100644 --- a/arch/arm/mach-pxa/corgi.c +++ b/arch/arm/mach-pxa/corgi.c | |||
@@ -36,6 +36,7 @@ | |||
36 | #include <asm/arch/mmc.h> | 36 | #include <asm/arch/mmc.h> |
37 | #include <asm/arch/udc.h> | 37 | #include <asm/arch/udc.h> |
38 | #include <asm/arch/corgi.h> | 38 | #include <asm/arch/corgi.h> |
39 | #include <asm/arch/sharpsl.h> | ||
39 | 40 | ||
40 | #include <asm/mach/sharpsl_param.h> | 41 | #include <asm/mach/sharpsl_param.h> |
41 | #include <asm/hardware/scoop.h> | 42 | #include <asm/hardware/scoop.h> |
diff --git a/arch/arm/mach-pxa/corgi_lcd.c b/arch/arm/mach-pxa/corgi_lcd.c index c5efcd04fcbc..c02ef7c0f7ef 100644 --- a/arch/arm/mach-pxa/corgi_lcd.c +++ b/arch/arm/mach-pxa/corgi_lcd.c | |||
@@ -19,7 +19,6 @@ | |||
19 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
20 | #include <linux/device.h> | 20 | #include <linux/device.h> |
21 | #include <linux/module.h> | 21 | #include <linux/module.h> |
22 | #include <asm/mach-types.h> | ||
23 | #include <asm/arch/akita.h> | 22 | #include <asm/arch/akita.h> |
24 | #include <asm/arch/corgi.h> | 23 | #include <asm/arch/corgi.h> |
25 | #include <asm/arch/hardware.h> | 24 | #include <asm/arch/hardware.h> |
diff --git a/arch/arm/mach-pxa/generic.c b/arch/arm/mach-pxa/generic.c index a45aaa115a76..d0660a8c4b70 100644 --- a/arch/arm/mach-pxa/generic.c +++ b/arch/arm/mach-pxa/generic.c | |||
@@ -34,6 +34,7 @@ | |||
34 | #include <asm/arch/udc.h> | 34 | #include <asm/arch/udc.h> |
35 | #include <asm/arch/pxafb.h> | 35 | #include <asm/arch/pxafb.h> |
36 | #include <asm/arch/mmc.h> | 36 | #include <asm/arch/mmc.h> |
37 | #include <asm/arch/i2c.h> | ||
37 | 38 | ||
38 | #include "generic.h" | 39 | #include "generic.h" |
39 | 40 | ||
diff --git a/arch/arm/mach-s3c2410/usb-simtec.c b/arch/arm/mach-s3c2410/usb-simtec.c index f021fd82be52..5098b50158a3 100644 --- a/arch/arm/mach-s3c2410/usb-simtec.c +++ b/arch/arm/mach-s3c2410/usb-simtec.c | |||
@@ -40,7 +40,6 @@ | |||
40 | #include <asm/hardware.h> | 40 | #include <asm/hardware.h> |
41 | #include <asm/io.h> | 41 | #include <asm/io.h> |
42 | #include <asm/irq.h> | 42 | #include <asm/irq.h> |
43 | #include <asm/mach-types.h> | ||
44 | 43 | ||
45 | #include "devs.h" | 44 | #include "devs.h" |
46 | #include "usb-simtec.h" | 45 | #include "usb-simtec.h" |
diff --git a/arch/arm/mach-sa1100/collie.c b/arch/arm/mach-sa1100/collie.c index 25d6a4e27533..6ecab7e2c238 100644 --- a/arch/arm/mach-sa1100/collie.c +++ b/arch/arm/mach-sa1100/collie.c | |||
@@ -111,11 +111,11 @@ static struct mtd_partition collie_partitions[] = { | |||
111 | 111 | ||
112 | static void collie_set_vpp(int vpp) | 112 | static void collie_set_vpp(int vpp) |
113 | { | 113 | { |
114 | write_scoop_reg(&colliescoop_device.dev, SCOOP_GPCR, read_scoop_reg(SCOOP_GPCR) | COLLIE_SCP_VPEN); | 114 | write_scoop_reg(&colliescoop_device.dev, SCOOP_GPCR, read_scoop_reg(&colliescoop_device.dev, SCOOP_GPCR) | COLLIE_SCP_VPEN); |
115 | if (vpp) | 115 | if (vpp) |
116 | write_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR, read_scoop_reg(SCOOP_GPWR) | COLLIE_SCP_VPEN); | 116 | write_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR, read_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR) | COLLIE_SCP_VPEN); |
117 | else | 117 | else |
118 | write_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR, read_scoop_reg(SCOOP_GPWR) & ~COLLIE_SCP_VPEN); | 118 | write_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR, read_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR) & ~COLLIE_SCP_VPEN); |
119 | } | 119 | } |
120 | 120 | ||
121 | static struct flash_platform_data collie_flash_data = { | 121 | static struct flash_platform_data collie_flash_data = { |
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c index 3c8862fde51a..a30e0451df72 100644 --- a/arch/arm/mach-versatile/core.c +++ b/arch/arm/mach-versatile/core.c | |||
@@ -30,7 +30,6 @@ | |||
30 | #include <asm/io.h> | 30 | #include <asm/io.h> |
31 | #include <asm/irq.h> | 31 | #include <asm/irq.h> |
32 | #include <asm/leds.h> | 32 | #include <asm/leds.h> |
33 | #include <asm/mach-types.h> | ||
34 | #include <asm/hardware/amba.h> | 33 | #include <asm/hardware/amba.h> |
35 | #include <asm/hardware/amba_clcd.h> | 34 | #include <asm/hardware/amba_clcd.h> |
36 | #include <asm/hardware/arm_timer.h> | 35 | #include <asm/hardware/arm_timer.h> |
@@ -52,8 +51,9 @@ | |||
52 | * | 51 | * |
53 | * Setup a VA for the Versatile Vectored Interrupt Controller. | 52 | * Setup a VA for the Versatile Vectored Interrupt Controller. |
54 | */ | 53 | */ |
55 | #define VA_VIC_BASE IO_ADDRESS(VERSATILE_VIC_BASE) | 54 | #define __io_address(n) __io(IO_ADDRESS(n)) |
56 | #define VA_SIC_BASE IO_ADDRESS(VERSATILE_SIC_BASE) | 55 | #define VA_VIC_BASE __io_address(VERSATILE_VIC_BASE) |
56 | #define VA_SIC_BASE __io_address(VERSATILE_SIC_BASE) | ||
57 | 57 | ||
58 | static void vic_mask_irq(unsigned int irq) | 58 | static void vic_mask_irq(unsigned int irq) |
59 | { | 59 | { |
@@ -214,7 +214,7 @@ void __init versatile_map_io(void) | |||
214 | iotable_init(versatile_io_desc, ARRAY_SIZE(versatile_io_desc)); | 214 | iotable_init(versatile_io_desc, ARRAY_SIZE(versatile_io_desc)); |
215 | } | 215 | } |
216 | 216 | ||
217 | #define VERSATILE_REFCOUNTER (IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_24MHz_OFFSET) | 217 | #define VERSATILE_REFCOUNTER (__io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_24MHz_OFFSET) |
218 | 218 | ||
219 | /* | 219 | /* |
220 | * This is the Versatile sched_clock implementation. This has | 220 | * This is the Versatile sched_clock implementation. This has |
@@ -231,7 +231,7 @@ unsigned long long sched_clock(void) | |||
231 | } | 231 | } |
232 | 232 | ||
233 | 233 | ||
234 | #define VERSATILE_FLASHCTRL (IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_FLASH_OFFSET) | 234 | #define VERSATILE_FLASHCTRL (__io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_FLASH_OFFSET) |
235 | 235 | ||
236 | static int versatile_flash_init(void) | 236 | static int versatile_flash_init(void) |
237 | { | 237 | { |
@@ -309,7 +309,7 @@ static struct platform_device smc91x_device = { | |||
309 | .resource = smc91x_resources, | 309 | .resource = smc91x_resources, |
310 | }; | 310 | }; |
311 | 311 | ||
312 | #define VERSATILE_SYSMCI (IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_MCI_OFFSET) | 312 | #define VERSATILE_SYSMCI (__io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_MCI_OFFSET) |
313 | 313 | ||
314 | unsigned int mmc_status(struct device *dev) | 314 | unsigned int mmc_status(struct device *dev) |
315 | { | 315 | { |
@@ -343,11 +343,11 @@ static const struct icst307_params versatile_oscvco_params = { | |||
343 | 343 | ||
344 | static void versatile_oscvco_set(struct clk *clk, struct icst307_vco vco) | 344 | static void versatile_oscvco_set(struct clk *clk, struct icst307_vco vco) |
345 | { | 345 | { |
346 | unsigned long sys_lock = IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_LOCK_OFFSET; | 346 | void __iomem *sys_lock = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_LOCK_OFFSET; |
347 | #if defined(CONFIG_ARCH_VERSATILE_PB) | 347 | #if defined(CONFIG_ARCH_VERSATILE_PB) |
348 | unsigned long sys_osc = IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_OSC4_OFFSET; | 348 | void __iomem *sys_osc = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_OSC4_OFFSET; |
349 | #elif defined(CONFIG_MACH_VERSATILE_AB) | 349 | #elif defined(CONFIG_MACH_VERSATILE_AB) |
350 | unsigned long sys_osc = IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_OSC1_OFFSET; | 350 | void __iomem *sys_osc = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_OSC1_OFFSET; |
351 | #endif | 351 | #endif |
352 | u32 val; | 352 | u32 val; |
353 | 353 | ||
@@ -483,7 +483,7 @@ static struct clcd_panel epson_2_2_in = { | |||
483 | */ | 483 | */ |
484 | static struct clcd_panel *versatile_clcd_panel(void) | 484 | static struct clcd_panel *versatile_clcd_panel(void) |
485 | { | 485 | { |
486 | unsigned long sys_clcd = IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_CLCD_OFFSET; | 486 | void __iomem *sys_clcd = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_CLCD_OFFSET; |
487 | struct clcd_panel *panel = &vga; | 487 | struct clcd_panel *panel = &vga; |
488 | u32 val; | 488 | u32 val; |
489 | 489 | ||
@@ -510,7 +510,7 @@ static struct clcd_panel *versatile_clcd_panel(void) | |||
510 | */ | 510 | */ |
511 | static void versatile_clcd_disable(struct clcd_fb *fb) | 511 | static void versatile_clcd_disable(struct clcd_fb *fb) |
512 | { | 512 | { |
513 | unsigned long sys_clcd = IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_CLCD_OFFSET; | 513 | void __iomem *sys_clcd = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_CLCD_OFFSET; |
514 | u32 val; | 514 | u32 val; |
515 | 515 | ||
516 | val = readl(sys_clcd); | 516 | val = readl(sys_clcd); |
@@ -522,7 +522,7 @@ static void versatile_clcd_disable(struct clcd_fb *fb) | |||
522 | * If the LCD is Sanyo 2x5 in on the IB2 board, turn the back-light off | 522 | * If the LCD is Sanyo 2x5 in on the IB2 board, turn the back-light off |
523 | */ | 523 | */ |
524 | if (fb->panel == &sanyo_2_5_in) { | 524 | if (fb->panel == &sanyo_2_5_in) { |
525 | unsigned long versatile_ib2_ctrl = IO_ADDRESS(VERSATILE_IB2_CTRL); | 525 | void __iomem *versatile_ib2_ctrl = __io_address(VERSATILE_IB2_CTRL); |
526 | unsigned long ctrl; | 526 | unsigned long ctrl; |
527 | 527 | ||
528 | ctrl = readl(versatile_ib2_ctrl); | 528 | ctrl = readl(versatile_ib2_ctrl); |
@@ -537,7 +537,7 @@ static void versatile_clcd_disable(struct clcd_fb *fb) | |||
537 | */ | 537 | */ |
538 | static void versatile_clcd_enable(struct clcd_fb *fb) | 538 | static void versatile_clcd_enable(struct clcd_fb *fb) |
539 | { | 539 | { |
540 | unsigned long sys_clcd = IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_CLCD_OFFSET; | 540 | void __iomem *sys_clcd = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_CLCD_OFFSET; |
541 | u32 val; | 541 | u32 val; |
542 | 542 | ||
543 | val = readl(sys_clcd); | 543 | val = readl(sys_clcd); |
@@ -571,7 +571,7 @@ static void versatile_clcd_enable(struct clcd_fb *fb) | |||
571 | * If the LCD is Sanyo 2x5 in on the IB2 board, turn the back-light on | 571 | * If the LCD is Sanyo 2x5 in on the IB2 board, turn the back-light on |
572 | */ | 572 | */ |
573 | if (fb->panel == &sanyo_2_5_in) { | 573 | if (fb->panel == &sanyo_2_5_in) { |
574 | unsigned long versatile_ib2_ctrl = IO_ADDRESS(VERSATILE_IB2_CTRL); | 574 | void __iomem *versatile_ib2_ctrl = __io_address(VERSATILE_IB2_CTRL); |
575 | unsigned long ctrl; | 575 | unsigned long ctrl; |
576 | 576 | ||
577 | ctrl = readl(versatile_ib2_ctrl); | 577 | ctrl = readl(versatile_ib2_ctrl); |
@@ -720,7 +720,7 @@ static struct amba_device *amba_devs[] __initdata = { | |||
720 | }; | 720 | }; |
721 | 721 | ||
722 | #ifdef CONFIG_LEDS | 722 | #ifdef CONFIG_LEDS |
723 | #define VA_LEDS_BASE (IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_LED_OFFSET) | 723 | #define VA_LEDS_BASE (__io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_LED_OFFSET) |
724 | 724 | ||
725 | static void versatile_leds_event(led_event_t ledevt) | 725 | static void versatile_leds_event(led_event_t ledevt) |
726 | { | 726 | { |
@@ -778,11 +778,11 @@ void __init versatile_init(void) | |||
778 | /* | 778 | /* |
779 | * Where is the timer (VA)? | 779 | * Where is the timer (VA)? |
780 | */ | 780 | */ |
781 | #define TIMER0_VA_BASE IO_ADDRESS(VERSATILE_TIMER0_1_BASE) | 781 | #define TIMER0_VA_BASE __io_address(VERSATILE_TIMER0_1_BASE) |
782 | #define TIMER1_VA_BASE (IO_ADDRESS(VERSATILE_TIMER0_1_BASE) + 0x20) | 782 | #define TIMER1_VA_BASE (__io_address(VERSATILE_TIMER0_1_BASE) + 0x20) |
783 | #define TIMER2_VA_BASE IO_ADDRESS(VERSATILE_TIMER2_3_BASE) | 783 | #define TIMER2_VA_BASE __io_address(VERSATILE_TIMER2_3_BASE) |
784 | #define TIMER3_VA_BASE (IO_ADDRESS(VERSATILE_TIMER2_3_BASE) + 0x20) | 784 | #define TIMER3_VA_BASE (__io_address(VERSATILE_TIMER2_3_BASE) + 0x20) |
785 | #define VA_IC_BASE IO_ADDRESS(VERSATILE_VIC_BASE) | 785 | #define VA_IC_BASE __io_address(VERSATILE_VIC_BASE) |
786 | 786 | ||
787 | /* | 787 | /* |
788 | * How long is the timer interval? | 788 | * How long is the timer interval? |
@@ -877,12 +877,12 @@ static void __init versatile_timer_init(void) | |||
877 | * VERSATILE_REFCLK is 32KHz | 877 | * VERSATILE_REFCLK is 32KHz |
878 | * VERSATILE_TIMCLK is 1MHz | 878 | * VERSATILE_TIMCLK is 1MHz |
879 | */ | 879 | */ |
880 | val = readl(IO_ADDRESS(VERSATILE_SCTL_BASE)); | 880 | val = readl(__io_address(VERSATILE_SCTL_BASE)); |
881 | writel((VERSATILE_TIMCLK << VERSATILE_TIMER1_EnSel) | | 881 | writel((VERSATILE_TIMCLK << VERSATILE_TIMER1_EnSel) | |
882 | (VERSATILE_TIMCLK << VERSATILE_TIMER2_EnSel) | | 882 | (VERSATILE_TIMCLK << VERSATILE_TIMER2_EnSel) | |
883 | (VERSATILE_TIMCLK << VERSATILE_TIMER3_EnSel) | | 883 | (VERSATILE_TIMCLK << VERSATILE_TIMER3_EnSel) | |
884 | (VERSATILE_TIMCLK << VERSATILE_TIMER4_EnSel) | val, | 884 | (VERSATILE_TIMCLK << VERSATILE_TIMER4_EnSel) | val, |
885 | IO_ADDRESS(VERSATILE_SCTL_BASE)); | 885 | __io_address(VERSATILE_SCTL_BASE)); |
886 | 886 | ||
887 | /* | 887 | /* |
888 | * Initialise to a known state (all timers off) | 888 | * Initialise to a known state (all timers off) |
diff --git a/arch/arm/mach-versatile/pci.c b/arch/arm/mach-versatile/pci.c index d1565e851f0e..b80d57d51699 100644 --- a/arch/arm/mach-versatile/pci.c +++ b/arch/arm/mach-versatile/pci.c | |||
@@ -29,7 +29,6 @@ | |||
29 | #include <asm/irq.h> | 29 | #include <asm/irq.h> |
30 | #include <asm/system.h> | 30 | #include <asm/system.h> |
31 | #include <asm/mach/pci.h> | 31 | #include <asm/mach/pci.h> |
32 | #include <asm/mach-types.h> | ||
33 | 32 | ||
34 | /* | 33 | /* |
35 | * these spaces are mapped using the following base registers: | 34 | * these spaces are mapped using the following base registers: |
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index db5e47dfc303..c54e04c995ee 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig | |||
@@ -370,21 +370,21 @@ config CPU_BIG_ENDIAN | |||
370 | 370 | ||
371 | config CPU_ICACHE_DISABLE | 371 | config CPU_ICACHE_DISABLE |
372 | bool "Disable I-Cache" | 372 | bool "Disable I-Cache" |
373 | depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 | 373 | depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6 |
374 | help | 374 | help |
375 | Say Y here to disable the processor instruction cache. Unless | 375 | Say Y here to disable the processor instruction cache. Unless |
376 | you have a reason not to or are unsure, say N. | 376 | you have a reason not to or are unsure, say N. |
377 | 377 | ||
378 | config CPU_DCACHE_DISABLE | 378 | config CPU_DCACHE_DISABLE |
379 | bool "Disable D-Cache" | 379 | bool "Disable D-Cache" |
380 | depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 | 380 | depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6 |
381 | help | 381 | help |
382 | Say Y here to disable the processor data cache. Unless | 382 | Say Y here to disable the processor data cache. Unless |
383 | you have a reason not to or are unsure, say N. | 383 | you have a reason not to or are unsure, say N. |
384 | 384 | ||
385 | config CPU_DCACHE_WRITETHROUGH | 385 | config CPU_DCACHE_WRITETHROUGH |
386 | bool "Force write through D-cache" | 386 | bool "Force write through D-cache" |
387 | depends on (CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020) && !CPU_DCACHE_DISABLE | 387 | depends on (CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6) && !CPU_DCACHE_DISABLE |
388 | default y if CPU_ARM925T | 388 | default y if CPU_ARM925T |
389 | help | 389 | help |
390 | Say Y here to use the data cache in writethrough mode. Unless you | 390 | Say Y here to use the data cache in writethrough mode. Unless you |
@@ -399,7 +399,7 @@ config CPU_CACHE_ROUND_ROBIN | |||
399 | 399 | ||
400 | config CPU_BPREDICT_DISABLE | 400 | config CPU_BPREDICT_DISABLE |
401 | bool "Disable branch prediction" | 401 | bool "Disable branch prediction" |
402 | depends on CPU_ARM1020 | 402 | depends on CPU_ARM1020 || CPU_V6 |
403 | help | 403 | help |
404 | Say Y here to disable branch prediction. If unsure, say N. | 404 | Say Y here to disable branch prediction. If unsure, say N. |
405 | 405 | ||
diff --git a/arch/arm/mm/abort-ev6.S b/arch/arm/mm/abort-ev6.S index 8f76f3df7b4c..dbd346033122 100644 --- a/arch/arm/mm/abort-ev6.S +++ b/arch/arm/mm/abort-ev6.S | |||
@@ -20,6 +20,11 @@ | |||
20 | */ | 20 | */ |
21 | .align 5 | 21 | .align 5 |
22 | ENTRY(v6_early_abort) | 22 | ENTRY(v6_early_abort) |
23 | #ifdef CONFIG_CPU_MPCORE | ||
24 | clrex | ||
25 | #else | ||
26 | strex r0, r1, [sp] @ Clear the exclusive monitor | ||
27 | #endif | ||
23 | mrc p15, 0, r1, c5, c0, 0 @ get FSR | 28 | mrc p15, 0, r1, c5, c0, 0 @ get FSR |
24 | mrc p15, 0, r0, c6, c0, 0 @ get FAR | 29 | mrc p15, 0, r0, c6, c0, 0 @ get FAR |
25 | /* | 30 | /* |
diff --git a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c index 4b39d867ac14..f35e69e9c65c 100644 --- a/arch/arm/mm/alignment.c +++ b/arch/arm/mm/alignment.c | |||
@@ -330,6 +330,9 @@ do_alignment_ldrdstrd(unsigned long addr, unsigned long instr, | |||
330 | { | 330 | { |
331 | unsigned int rd = RD_BITS(instr); | 331 | unsigned int rd = RD_BITS(instr); |
332 | 332 | ||
333 | if (((rd & 1) == 1) || (rd == 14)) | ||
334 | goto bad; | ||
335 | |||
333 | ai_dword += 1; | 336 | ai_dword += 1; |
334 | 337 | ||
335 | if (user_mode(regs)) | 338 | if (user_mode(regs)) |
@@ -361,7 +364,8 @@ do_alignment_ldrdstrd(unsigned long addr, unsigned long instr, | |||
361 | } | 364 | } |
362 | 365 | ||
363 | return TYPE_LDST; | 366 | return TYPE_LDST; |
364 | 367 | bad: | |
368 | return TYPE_ERROR; | ||
365 | fault: | 369 | fault: |
366 | return TYPE_FAULT; | 370 | return TYPE_FAULT; |
367 | } | 371 | } |
@@ -663,6 +667,8 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs) | |||
663 | else if ((instr & 0x001000f0) == 0x000000d0 || /* LDRD */ | 667 | else if ((instr & 0x001000f0) == 0x000000d0 || /* LDRD */ |
664 | (instr & 0x001000f0) == 0x000000f0) /* STRD */ | 668 | (instr & 0x001000f0) == 0x000000f0) /* STRD */ |
665 | handler = do_alignment_ldrdstrd; | 669 | handler = do_alignment_ldrdstrd; |
670 | else if ((instr & 0x01f00ff0) == 0x01000090) /* SWP */ | ||
671 | goto swp; | ||
666 | else | 672 | else |
667 | goto bad; | 673 | goto bad; |
668 | break; | 674 | break; |
@@ -733,6 +739,9 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs) | |||
733 | do_bad_area(current, current->mm, addr, fsr, regs); | 739 | do_bad_area(current, current->mm, addr, fsr, regs); |
734 | return 0; | 740 | return 0; |
735 | 741 | ||
742 | swp: | ||
743 | printk(KERN_ERR "Alignment trap: not handling swp instruction\n"); | ||
744 | |||
736 | bad: | 745 | bad: |
737 | /* | 746 | /* |
738 | * Oops, we didn't handle the instruction. | 747 | * Oops, we didn't handle the instruction. |
diff --git a/arch/arm/mm/cache-v6.S b/arch/arm/mm/cache-v6.S index 85c10a71e7c6..72966d90e956 100644 --- a/arch/arm/mm/cache-v6.S +++ b/arch/arm/mm/cache-v6.S | |||
@@ -18,6 +18,7 @@ | |||
18 | #define HARVARD_CACHE | 18 | #define HARVARD_CACHE |
19 | #define CACHE_LINE_SIZE 32 | 19 | #define CACHE_LINE_SIZE 32 |
20 | #define D_CACHE_LINE_SIZE 32 | 20 | #define D_CACHE_LINE_SIZE 32 |
21 | #define BTB_FLUSH_SIZE 8 | ||
21 | 22 | ||
22 | /* | 23 | /* |
23 | * v6_flush_cache_all() | 24 | * v6_flush_cache_all() |
@@ -98,7 +99,13 @@ ENTRY(v6_coherent_user_range) | |||
98 | mcr p15, 0, r0, c7, c5, 1 @ invalidate I line | 99 | mcr p15, 0, r0, c7, c5, 1 @ invalidate I line |
99 | #endif | 100 | #endif |
100 | mcr p15, 0, r0, c7, c5, 7 @ invalidate BTB entry | 101 | mcr p15, 0, r0, c7, c5, 7 @ invalidate BTB entry |
101 | add r0, r0, #CACHE_LINE_SIZE | 102 | add r0, r0, #BTB_FLUSH_SIZE |
103 | mcr p15, 0, r0, c7, c5, 7 @ invalidate BTB entry | ||
104 | add r0, r0, #BTB_FLUSH_SIZE | ||
105 | mcr p15, 0, r0, c7, c5, 7 @ invalidate BTB entry | ||
106 | add r0, r0, #BTB_FLUSH_SIZE | ||
107 | mcr p15, 0, r0, c7, c5, 7 @ invalidate BTB entry | ||
108 | add r0, r0, #BTB_FLUSH_SIZE | ||
102 | cmp r0, r1 | 109 | cmp r0, r1 |
103 | blo 1b | 110 | blo 1b |
104 | #ifdef HARVARD_CACHE | 111 | #ifdef HARVARD_CACHE |
diff --git a/arch/arm/mm/flush.c b/arch/arm/mm/flush.c index b0208c992576..c9a03981b785 100644 --- a/arch/arm/mm/flush.c +++ b/arch/arm/mm/flush.c | |||
@@ -17,6 +17,24 @@ | |||
17 | 17 | ||
18 | #ifdef CONFIG_CPU_CACHE_VIPT | 18 | #ifdef CONFIG_CPU_CACHE_VIPT |
19 | 19 | ||
20 | #define ALIAS_FLUSH_START 0xffff4000 | ||
21 | |||
22 | #define TOP_PTE(x) pte_offset_kernel(top_pmd, x) | ||
23 | |||
24 | static void flush_pfn_alias(unsigned long pfn, unsigned long vaddr) | ||
25 | { | ||
26 | unsigned long to = ALIAS_FLUSH_START + (CACHE_COLOUR(vaddr) << PAGE_SHIFT); | ||
27 | |||
28 | set_pte(TOP_PTE(to), pfn_pte(pfn, PAGE_KERNEL)); | ||
29 | flush_tlb_kernel_page(to); | ||
30 | |||
31 | asm( "mcrr p15, 0, %1, %0, c14\n" | ||
32 | " mcrr p15, 0, %1, %0, c5\n" | ||
33 | : | ||
34 | : "r" (to), "r" (to + PAGE_SIZE - L1_CACHE_BYTES) | ||
35 | : "cc"); | ||
36 | } | ||
37 | |||
20 | void flush_cache_mm(struct mm_struct *mm) | 38 | void flush_cache_mm(struct mm_struct *mm) |
21 | { | 39 | { |
22 | if (cache_is_vivt()) { | 40 | if (cache_is_vivt()) { |
@@ -67,24 +85,6 @@ void flush_cache_page(struct vm_area_struct *vma, unsigned long user_addr, unsig | |||
67 | if (cache_is_vipt_aliasing()) | 85 | if (cache_is_vipt_aliasing()) |
68 | flush_pfn_alias(pfn, user_addr); | 86 | flush_pfn_alias(pfn, user_addr); |
69 | } | 87 | } |
70 | |||
71 | #define ALIAS_FLUSH_START 0xffff4000 | ||
72 | |||
73 | #define TOP_PTE(x) pte_offset_kernel(top_pmd, x) | ||
74 | |||
75 | static void flush_pfn_alias(unsigned long pfn, unsigned long vaddr) | ||
76 | { | ||
77 | unsigned long to = ALIAS_FLUSH_START + (CACHE_COLOUR(vaddr) << PAGE_SHIFT); | ||
78 | |||
79 | set_pte(TOP_PTE(to), pfn_pte(pfn, PAGE_KERNEL)); | ||
80 | flush_tlb_kernel_page(to); | ||
81 | |||
82 | asm( "mcrr p15, 0, %1, %0, c14\n" | ||
83 | " mcrr p15, 0, %1, %0, c5\n" | ||
84 | : | ||
85 | : "r" (to), "r" (to + PAGE_SIZE - L1_CACHE_BYTES) | ||
86 | : "cc"); | ||
87 | } | ||
88 | #else | 88 | #else |
89 | #define flush_pfn_alias(pfn,vaddr) do { } while (0) | 89 | #define flush_pfn_alias(pfn,vaddr) do { } while (0) |
90 | #endif | 90 | #endif |
diff --git a/arch/arm/plat-omap/common.c b/arch/arm/plat-omap/common.c index 6cb20aea7f51..02bcc6c1cd1b 100644 --- a/arch/arm/plat-omap/common.c +++ b/arch/arm/plat-omap/common.c | |||
@@ -25,7 +25,6 @@ | |||
25 | #include <asm/mach/map.h> | 25 | #include <asm/mach/map.h> |
26 | #include <asm/hardware/clock.h> | 26 | #include <asm/hardware/clock.h> |
27 | #include <asm/io.h> | 27 | #include <asm/io.h> |
28 | #include <asm/mach-types.h> | ||
29 | #include <asm/setup.h> | 28 | #include <asm/setup.h> |
30 | 29 | ||
31 | #include <asm/arch/board.h> | 30 | #include <asm/arch/board.h> |
diff --git a/arch/arm/plat-omap/cpu-omap.c b/arch/arm/plat-omap/cpu-omap.c index 409aac2c4b9d..fd894bb00107 100644 --- a/arch/arm/plat-omap/cpu-omap.c +++ b/arch/arm/plat-omap/cpu-omap.c | |||
@@ -21,7 +21,6 @@ | |||
21 | #include <linux/err.h> | 21 | #include <linux/err.h> |
22 | 22 | ||
23 | #include <asm/hardware.h> | 23 | #include <asm/hardware.h> |
24 | #include <asm/mach-types.h> | ||
25 | #include <asm/io.h> | 24 | #include <asm/io.h> |
26 | #include <asm/system.h> | 25 | #include <asm/system.h> |
27 | 26 | ||
diff --git a/arch/arm/plat-omap/usb.c b/arch/arm/plat-omap/usb.c index 98f1c76f8660..14a836d7ac25 100644 --- a/arch/arm/plat-omap/usb.c +++ b/arch/arm/plat-omap/usb.c | |||
@@ -33,7 +33,6 @@ | |||
33 | #include <asm/irq.h> | 33 | #include <asm/irq.h> |
34 | #include <asm/system.h> | 34 | #include <asm/system.h> |
35 | #include <asm/hardware.h> | 35 | #include <asm/hardware.h> |
36 | #include <asm/mach-types.h> | ||
37 | 36 | ||
38 | #include <asm/arch/mux.h> | 37 | #include <asm/arch/mux.h> |
39 | #include <asm/arch/usb.h> | 38 | #include <asm/arch/usb.h> |
diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types index 6d3a79e5fef8..ae7c64b8cec3 100644 --- a/arch/arm/tools/mach-types +++ b/arch/arm/tools/mach-types | |||
@@ -2,11 +2,17 @@ | |||
2 | # | 2 | # |
3 | # This file is linux/arch/arm/tools/mach-types | 3 | # This file is linux/arch/arm/tools/mach-types |
4 | # | 4 | # |
5 | # Up to date versions of this file can be obtained from: | ||
6 | # | ||
7 | # http://www.arm.linux.org.uk/developer/machines/?action=download | ||
8 | # | ||
5 | # Please do not send patches to this file; it is automatically generated! | 9 | # Please do not send patches to this file; it is automatically generated! |
6 | # To add an entry into this database, please see Documentation/arm/README, | 10 | # To add an entry into this database, please see Documentation/arm/README, |
7 | # or contact rmk@arm.linux.org.uk | 11 | # or visit: |
12 | # | ||
13 | # http://www.arm.linux.org.uk/developer/machines/?action=new | ||
8 | # | 14 | # |
9 | # Last update: Thu Jun 23 20:19:33 2005 | 15 | # Last update: Mon Oct 10 09:46:25 2005 |
10 | # | 16 | # |
11 | # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number | 17 | # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number |
12 | # | 18 | # |
@@ -421,7 +427,7 @@ mt02 MACH_MT02 MT02 410 | |||
421 | mport3s MACH_MPORT3S MPORT3S 411 | 427 | mport3s MACH_MPORT3S MPORT3S 411 |
422 | ra_alpha MACH_RA_ALPHA RA_ALPHA 412 | 428 | ra_alpha MACH_RA_ALPHA RA_ALPHA 412 |
423 | xcep MACH_XCEP XCEP 413 | 429 | xcep MACH_XCEP XCEP 413 |
424 | arcom_mercury MACH_ARCOM_MERCURY ARCOM_MERCURY 414 | 430 | arcom_vulcan MACH_ARCOM_VULCAN ARCOM_VULCAN 414 |
425 | stargate MACH_STARGATE STARGATE 415 | 431 | stargate MACH_STARGATE STARGATE 415 |
426 | armadilloj MACH_ARMADILLOJ ARMADILLOJ 416 | 432 | armadilloj MACH_ARMADILLOJ ARMADILLOJ 416 |
427 | elroy_jack MACH_ELROY_JACK ELROY_JACK 417 | 433 | elroy_jack MACH_ELROY_JACK ELROY_JACK 417 |
@@ -454,7 +460,7 @@ esl_sarva MACH_ESL_SARVA ESL_SARVA 443 | |||
454 | xm250 MACH_XM250 XM250 444 | 460 | xm250 MACH_XM250 XM250 444 |
455 | t6tc1xb MACH_T6TC1XB T6TC1XB 445 | 461 | t6tc1xb MACH_T6TC1XB T6TC1XB 445 |
456 | ess710 MACH_ESS710 ESS710 446 | 462 | ess710 MACH_ESS710 ESS710 446 |
457 | mx3ads MACH_MX3ADS MX3ADS 447 | 463 | mx31ads MACH_MX3ADS MX3ADS 447 |
458 | himalaya MACH_HIMALAYA HIMALAYA 448 | 464 | himalaya MACH_HIMALAYA HIMALAYA 448 |
459 | bolfenk MACH_BOLFENK BOLFENK 449 | 465 | bolfenk MACH_BOLFENK BOLFENK 449 |
460 | at91rm9200kr MACH_AT91RM9200KR AT91RM9200KR 450 | 466 | at91rm9200kr MACH_AT91RM9200KR AT91RM9200KR 450 |
@@ -787,3 +793,79 @@ ez_ixp42x MACH_EZ_IXP42X EZ_IXP42X 778 | |||
787 | tapwave_zodiac MACH_TAPWAVE_ZODIAC TAPWAVE_ZODIAC 779 | 793 | tapwave_zodiac MACH_TAPWAVE_ZODIAC TAPWAVE_ZODIAC 779 |
788 | universalmeter MACH_UNIVERSALMETER UNIVERSALMETER 780 | 794 | universalmeter MACH_UNIVERSALMETER UNIVERSALMETER 780 |
789 | hicoarm9 MACH_HICOARM9 HICOARM9 781 | 795 | hicoarm9 MACH_HICOARM9 HICOARM9 781 |
796 | pnx4008 MACH_PNX4008 PNX4008 782 | ||
797 | kws6000 MACH_KWS6000 KWS6000 783 | ||
798 | portux920t MACH_PORTUX920T PORTUX920T 784 | ||
799 | ez_x5 MACH_EZ_X5 EZ_X5 785 | ||
800 | omap_rudolph MACH_OMAP_RUDOLPH OMAP_RUDOLPH 786 | ||
801 | cpuat91 MACH_CPUAT91 CPUAT91 787 | ||
802 | rea9200 MACH_REA9200 REA9200 788 | ||
803 | acts_pune_sa1110 MACH_ACTS_PUNE_SA1110 ACTS_PUNE_SA1110 789 | ||
804 | ixp425 MACH_IXP425 IXP425 790 | ||
805 | argonplusodyssey MACH_ODYSSEY ODYSSEY 791 | ||
806 | perch MACH_PERCH PERCH 792 | ||
807 | eis05r1 MACH_EIS05R1 EIS05R1 793 | ||
808 | pepperpad MACH_PEPPERPAD PEPPERPAD 794 | ||
809 | sb3010 MACH_SB3010 SB3010 795 | ||
810 | rm9200 MACH_RM9200 RM9200 796 | ||
811 | dma03 MACH_DMA03 DMA03 797 | ||
812 | road_s101 MACH_ROAD_S101 ROAD_S101 798 | ||
813 | iq_nextgen_a MACH_IQ_NEXTGEN_A IQ_NEXTGEN_A 799 | ||
814 | iq_nextgen_b MACH_IQ_NEXTGEN_B IQ_NEXTGEN_B 800 | ||
815 | iq_nextgen_c MACH_IQ_NEXTGEN_C IQ_NEXTGEN_C 801 | ||
816 | iq_nextgen_d MACH_IQ_NEXTGEN_D IQ_NEXTGEN_D 802 | ||
817 | iq_nextgen_e MACH_IQ_NEXTGEN_E IQ_NEXTGEN_E 803 | ||
818 | mallow_at91 MACH_MALLOW_AT91 MALLOW_AT91 804 | ||
819 | cybertracker MACH_CYBERTRACKER CYBERTRACKER 805 | ||
820 | gesbc931x MACH_GESBC931X GESBC931X 806 | ||
821 | centipad MACH_CENTIPAD CENTIPAD 807 | ||
822 | armsoc MACH_ARMSOC ARMSOC 808 | ||
823 | se4200 MACH_SE4200 SE4200 809 | ||
824 | ems197a MACH_EMS197A EMS197A 810 | ||
825 | micro9 MACH_MICRO9 MICRO9 811 | ||
826 | micro9l MACH_MICRO9L MICRO9L 812 | ||
827 | uc5471dsp MACH_UC5471DSP UC5471DSP 813 | ||
828 | sj5471eng MACH_SJ5471ENG SJ5471ENG 814 | ||
829 | none MACH_CMPXA26X CMPXA26X 815 | ||
830 | nc MACH_NC NC 816 | ||
831 | omap_palmte MACH_OMAP_PALMTE OMAP_PALMTE 817 | ||
832 | ajax52x MACH_AJAX52X AJAX52X 818 | ||
833 | siriustar MACH_SIRIUSTAR SIRIUSTAR 819 | ||
834 | iodata_hdlg MACH_IODATA_HDLG IODATA_HDLG 820 | ||
835 | at91rm9200utl MACH_AT91RM9200UTL AT91RM9200UTL 821 | ||
836 | biosafe MACH_BIOSAFE BIOSAFE 822 | ||
837 | mp1000 MACH_MP1000 MP1000 823 | ||
838 | parsy MACH_PARSY PARSY 824 | ||
839 | ccxp270 MACH_CCXP CCXP 825 | ||
840 | omap_gsample MACH_OMAP_GSAMPLE OMAP_GSAMPLE 826 | ||
841 | realview_eb MACH_REALVIEW_EB REALVIEW_EB 827 | ||
842 | samoa MACH_SAMOA SAMOA 828 | ||
843 | t3xscale MACH_T3XSCALE T3XSCALE 829 | ||
844 | i878 MACH_I878 I878 830 | ||
845 | borzoi MACH_BORZOI BORZOI 831 | ||
846 | gecko MACH_GECKO GECKO 832 | ||
847 | ds101 MACH_DS101 DS101 833 | ||
848 | omap_palmtt2 MACH_OMAP_PALMTT2 OMAP_PALMTT2 834 | ||
849 | xscale_palmld MACH_XSCALE_PALMLD XSCALE_PALMLD 835 | ||
850 | cc9c MACH_CC9C CC9C 836 | ||
851 | sbc1670 MACH_SBC1670 SBC1670 837 | ||
852 | ixdp28x5 MACH_IXDP28X5 IXDP28X5 838 | ||
853 | omap_palmtt MACH_OMAP_PALMTT OMAP_PALMTT 839 | ||
854 | ml696k MACH_ML696K ML696K 840 | ||
855 | arcom_zeus MACH_ARCOM_ZEUS ARCOM_ZEUS 841 | ||
856 | osiris MACH_OSIRIS OSIRIS 842 | ||
857 | maestro MACH_MAESTRO MAESTRO 843 | ||
858 | tunge2 MACH_TUNGE2 TUNGE2 844 | ||
859 | ixbbm MACH_IXBBM IXBBM 845 | ||
860 | mx27 MACH_MX27 MX27 846 | ||
861 | ax8004 MACH_AX8004 AX8004 847 | ||
862 | at91sam9261ek MACH_AT91SAM9261EK AT91SAM9261EK 848 | ||
863 | loft MACH_LOFT LOFT 849 | ||
864 | magpie MACH_MAGPIE MAGPIE 850 | ||
865 | mx21 MACH_MX21 MX21 851 | ||
866 | mb87m3400 MACH_MB87M3400 MB87M3400 852 | ||
867 | mguard_delta MACH_MGUARD_DELTA MGUARD_DELTA 853 | ||
868 | davinci_dvdp MACH_DAVINCI_DVDP DAVINCI_DVDP 854 | ||
869 | htcuniversal MACH_HTCUNIVERSAL HTCUNIVERSAL 855 | ||
870 | tpad MACH_TPAD TPAD 856 | ||
871 | roverp3 MACH_ROVERP3 ROVERP3 857 | ||
diff --git a/arch/cris/arch-v32/drivers/pci/dma.c b/arch/cris/arch-v32/drivers/pci/dma.c index 10329306d23c..426b09878a05 100644 --- a/arch/cris/arch-v32/drivers/pci/dma.c +++ b/arch/cris/arch-v32/drivers/pci/dma.c | |||
@@ -24,7 +24,7 @@ struct dma_coherent_mem { | |||
24 | }; | 24 | }; |
25 | 25 | ||
26 | void *dma_alloc_coherent(struct device *dev, size_t size, | 26 | void *dma_alloc_coherent(struct device *dev, size_t size, |
27 | dma_addr_t *dma_handle, unsigned int __nocast gfp) | 27 | dma_addr_t *dma_handle, gfp_t gfp) |
28 | { | 28 | { |
29 | void *ret; | 29 | void *ret; |
30 | struct dma_coherent_mem *mem = dev ? dev->dma_mem : NULL; | 30 | struct dma_coherent_mem *mem = dev ? dev->dma_mem : NULL; |
diff --git a/arch/i386/kernel/acpi/boot.c b/arch/i386/kernel/acpi/boot.c index 838437b2d241..b66c13c0cc0f 100644 --- a/arch/i386/kernel/acpi/boot.c +++ b/arch/i386/kernel/acpi/boot.c | |||
@@ -29,12 +29,12 @@ | |||
29 | #include <linux/efi.h> | 29 | #include <linux/efi.h> |
30 | #include <linux/module.h> | 30 | #include <linux/module.h> |
31 | #include <linux/dmi.h> | 31 | #include <linux/dmi.h> |
32 | #include <linux/irq.h> | ||
32 | 33 | ||
33 | #include <asm/pgtable.h> | 34 | #include <asm/pgtable.h> |
34 | #include <asm/io_apic.h> | 35 | #include <asm/io_apic.h> |
35 | #include <asm/apic.h> | 36 | #include <asm/apic.h> |
36 | #include <asm/io.h> | 37 | #include <asm/io.h> |
37 | #include <asm/irq.h> | ||
38 | #include <asm/mpspec.h> | 38 | #include <asm/mpspec.h> |
39 | 39 | ||
40 | #ifdef CONFIG_X86_64 | 40 | #ifdef CONFIG_X86_64 |
diff --git a/arch/i386/kernel/cpu/amd.c b/arch/i386/kernel/cpu/amd.c index 73aeaf5a9d4e..53a1681cd964 100644 --- a/arch/i386/kernel/cpu/amd.c +++ b/arch/i386/kernel/cpu/amd.c | |||
@@ -28,6 +28,22 @@ static void __init init_amd(struct cpuinfo_x86 *c) | |||
28 | int mbytes = num_physpages >> (20-PAGE_SHIFT); | 28 | int mbytes = num_physpages >> (20-PAGE_SHIFT); |
29 | int r; | 29 | int r; |
30 | 30 | ||
31 | #ifdef CONFIG_SMP | ||
32 | unsigned long long value; | ||
33 | |||
34 | /* Disable TLB flush filter by setting HWCR.FFDIS on K8 | ||
35 | * bit 6 of msr C001_0015 | ||
36 | * | ||
37 | * Errata 63 for SH-B3 steppings | ||
38 | * Errata 122 for all steppings (F+ have it disabled by default) | ||
39 | */ | ||
40 | if (c->x86 == 15) { | ||
41 | rdmsrl(MSR_K7_HWCR, value); | ||
42 | value |= 1 << 6; | ||
43 | wrmsrl(MSR_K7_HWCR, value); | ||
44 | } | ||
45 | #endif | ||
46 | |||
31 | /* | 47 | /* |
32 | * FIXME: We should handle the K5 here. Set up the write | 48 | * FIXME: We should handle the K5 here. Set up the write |
33 | * range and also turn on MSR 83 bits 4 and 31 (write alloc, | 49 | * range and also turn on MSR 83 bits 4 and 31 (write alloc, |
diff --git a/arch/i386/kernel/pci-dma.c b/arch/i386/kernel/pci-dma.c index 1e51427cc9eb..25fe66853934 100644 --- a/arch/i386/kernel/pci-dma.c +++ b/arch/i386/kernel/pci-dma.c | |||
@@ -23,7 +23,7 @@ struct dma_coherent_mem { | |||
23 | }; | 23 | }; |
24 | 24 | ||
25 | void *dma_alloc_coherent(struct device *dev, size_t size, | 25 | void *dma_alloc_coherent(struct device *dev, size_t size, |
26 | dma_addr_t *dma_handle, unsigned int __nocast gfp) | 26 | dma_addr_t *dma_handle, gfp_t gfp) |
27 | { | 27 | { |
28 | void *ret; | 28 | void *ret; |
29 | struct dma_coherent_mem *mem = dev ? dev->dma_mem : NULL; | 29 | struct dma_coherent_mem *mem = dev ? dev->dma_mem : NULL; |
diff --git a/arch/i386/kernel/signal.c b/arch/i386/kernel/signal.c index 61eb0c8a6e47..adcd069db91e 100644 --- a/arch/i386/kernel/signal.c +++ b/arch/i386/kernel/signal.c | |||
@@ -338,7 +338,11 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs * regs, size_t frame_size) | |||
338 | esp = (unsigned long) ka->sa.sa_restorer; | 338 | esp = (unsigned long) ka->sa.sa_restorer; |
339 | } | 339 | } |
340 | 340 | ||
341 | return (void __user *)((esp - frame_size) & -8ul); | 341 | esp -= frame_size; |
342 | /* Align the stack pointer according to the i386 ABI, | ||
343 | * i.e. so that on function entry ((sp + 4) & 15) == 0. */ | ||
344 | esp = ((esp + 4) & -16ul) - 4; | ||
345 | return (void __user *) esp; | ||
342 | } | 346 | } |
343 | 347 | ||
344 | /* These symbols are defined with the addresses in the vsyscall page. | 348 | /* These symbols are defined with the addresses in the vsyscall page. |
diff --git a/arch/i386/pci/acpi.c b/arch/i386/pci/acpi.c index 7e7a202df3c8..4c4522b43be5 100644 --- a/arch/i386/pci/acpi.c +++ b/arch/i386/pci/acpi.c | |||
@@ -1,7 +1,7 @@ | |||
1 | #include <linux/pci.h> | 1 | #include <linux/pci.h> |
2 | #include <linux/acpi.h> | 2 | #include <linux/acpi.h> |
3 | #include <linux/init.h> | 3 | #include <linux/init.h> |
4 | #include <asm/hw_irq.h> | 4 | #include <linux/irq.h> |
5 | #include <asm/numa.h> | 5 | #include <asm/numa.h> |
6 | #include "pci.h" | 6 | #include "pci.h" |
7 | 7 | ||
diff --git a/arch/i386/pci/irq.c b/arch/i386/pci/irq.c index 281ed8ab347a..cddafe33ff7c 100644 --- a/arch/i386/pci/irq.c +++ b/arch/i386/pci/irq.c | |||
@@ -15,7 +15,7 @@ | |||
15 | #include <asm/io.h> | 15 | #include <asm/io.h> |
16 | #include <asm/smp.h> | 16 | #include <asm/smp.h> |
17 | #include <asm/io_apic.h> | 17 | #include <asm/io_apic.h> |
18 | #include <asm/hw_irq.h> | 18 | #include <linux/irq.h> |
19 | #include <linux/acpi.h> | 19 | #include <linux/acpi.h> |
20 | 20 | ||
21 | #include "pci.h" | 21 | #include "pci.h" |
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c index 6dc726ad7137..d0a5106fba24 100644 --- a/arch/ia64/kernel/mca.c +++ b/arch/ia64/kernel/mca.c | |||
@@ -1016,6 +1016,11 @@ ia64_mca_cmc_int_handler(int cmc_irq, void *arg, struct pt_regs *ptregs) | |||
1016 | 1016 | ||
1017 | cmc_polling_enabled = 1; | 1017 | cmc_polling_enabled = 1; |
1018 | spin_unlock(&cmc_history_lock); | 1018 | spin_unlock(&cmc_history_lock); |
1019 | /* If we're being hit with CMC interrupts, we won't | ||
1020 | * ever execute the schedule_work() below. Need to | ||
1021 | * disable CMC interrupts on this processor now. | ||
1022 | */ | ||
1023 | ia64_mca_cmc_vector_disable(NULL); | ||
1019 | schedule_work(&cmc_disable_work); | 1024 | schedule_work(&cmc_disable_work); |
1020 | 1025 | ||
1021 | /* | 1026 | /* |
diff --git a/arch/m32r/kernel/entry.S b/arch/m32r/kernel/entry.S index dddbf6b5ed2c..85920fb8d08c 100644 --- a/arch/m32r/kernel/entry.S +++ b/arch/m32r/kernel/entry.S | |||
@@ -681,6 +681,15 @@ ENTRY(debug_trap) | |||
681 | bl do_debug_trap | 681 | bl do_debug_trap |
682 | bra error_code | 682 | bra error_code |
683 | 683 | ||
684 | ENTRY(ill_trap) | ||
685 | /* void ill_trap(void) */ | ||
686 | SWITCH_TO_KERNEL_STACK | ||
687 | SAVE_ALL | ||
688 | ldi r1, #0 ; error_code ; FIXME | ||
689 | mv r0, sp ; pt_regs | ||
690 | bl do_ill_trap | ||
691 | bra error_code | ||
692 | |||
684 | 693 | ||
685 | /* Cache flushing handler */ | 694 | /* Cache flushing handler */ |
686 | ENTRY(cache_flushing_handler) | 695 | ENTRY(cache_flushing_handler) |
diff --git a/arch/m32r/kernel/traps.c b/arch/m32r/kernel/traps.c index 01922271d17e..5fe8ed6d62dc 100644 --- a/arch/m32r/kernel/traps.c +++ b/arch/m32r/kernel/traps.c | |||
@@ -5,8 +5,6 @@ | |||
5 | * Hitoshi Yamamoto | 5 | * Hitoshi Yamamoto |
6 | */ | 6 | */ |
7 | 7 | ||
8 | /* $Id$ */ | ||
9 | |||
10 | /* | 8 | /* |
11 | * 'traps.c' handles hardware traps and faults after we have saved some | 9 | * 'traps.c' handles hardware traps and faults after we have saved some |
12 | * state in 'entry.S'. | 10 | * state in 'entry.S'. |
@@ -35,6 +33,7 @@ asmlinkage void ei_handler(void); | |||
35 | asmlinkage void rie_handler(void); | 33 | asmlinkage void rie_handler(void); |
36 | asmlinkage void debug_trap(void); | 34 | asmlinkage void debug_trap(void); |
37 | asmlinkage void cache_flushing_handler(void); | 35 | asmlinkage void cache_flushing_handler(void); |
36 | asmlinkage void ill_trap(void); | ||
38 | 37 | ||
39 | #ifdef CONFIG_SMP | 38 | #ifdef CONFIG_SMP |
40 | extern void smp_reschedule_interrupt(void); | 39 | extern void smp_reschedule_interrupt(void); |
@@ -77,22 +76,22 @@ void set_eit_vector_entries(void) | |||
77 | eit_vector[5] = BRA_INSN(default_eit_handler, 5); | 76 | eit_vector[5] = BRA_INSN(default_eit_handler, 5); |
78 | eit_vector[8] = BRA_INSN(rie_handler, 8); | 77 | eit_vector[8] = BRA_INSN(rie_handler, 8); |
79 | eit_vector[12] = BRA_INSN(alignment_check, 12); | 78 | eit_vector[12] = BRA_INSN(alignment_check, 12); |
80 | eit_vector[16] = 0xff000000UL; | 79 | eit_vector[16] = BRA_INSN(ill_trap, 16); |
81 | eit_vector[17] = BRA_INSN(debug_trap, 17); | 80 | eit_vector[17] = BRA_INSN(debug_trap, 17); |
82 | eit_vector[18] = BRA_INSN(system_call, 18); | 81 | eit_vector[18] = BRA_INSN(system_call, 18); |
83 | eit_vector[19] = 0xff000000UL; | 82 | eit_vector[19] = BRA_INSN(ill_trap, 19); |
84 | eit_vector[20] = 0xff000000UL; | 83 | eit_vector[20] = BRA_INSN(ill_trap, 20); |
85 | eit_vector[21] = 0xff000000UL; | 84 | eit_vector[21] = BRA_INSN(ill_trap, 21); |
86 | eit_vector[22] = 0xff000000UL; | 85 | eit_vector[22] = BRA_INSN(ill_trap, 22); |
87 | eit_vector[23] = 0xff000000UL; | 86 | eit_vector[23] = BRA_INSN(ill_trap, 23); |
88 | eit_vector[24] = 0xff000000UL; | 87 | eit_vector[24] = BRA_INSN(ill_trap, 24); |
89 | eit_vector[25] = 0xff000000UL; | 88 | eit_vector[25] = BRA_INSN(ill_trap, 25); |
90 | eit_vector[26] = 0xff000000UL; | 89 | eit_vector[26] = BRA_INSN(ill_trap, 26); |
91 | eit_vector[27] = 0xff000000UL; | 90 | eit_vector[27] = BRA_INSN(ill_trap, 27); |
92 | eit_vector[28] = BRA_INSN(cache_flushing_handler, 28); | 91 | eit_vector[28] = BRA_INSN(cache_flushing_handler, 28); |
93 | eit_vector[29] = 0xff000000UL; | 92 | eit_vector[29] = BRA_INSN(ill_trap, 29); |
94 | eit_vector[30] = 0xff000000UL; | 93 | eit_vector[30] = BRA_INSN(ill_trap, 30); |
95 | eit_vector[31] = 0xff000000UL; | 94 | eit_vector[31] = BRA_INSN(ill_trap, 31); |
96 | eit_vector[32] = BRA_INSN(ei_handler, 32); | 95 | eit_vector[32] = BRA_INSN(ei_handler, 32); |
97 | eit_vector[64] = BRA_INSN(pie_handler, 64); | 96 | eit_vector[64] = BRA_INSN(pie_handler, 64); |
98 | #ifdef CONFIG_MMU | 97 | #ifdef CONFIG_MMU |
@@ -286,7 +285,8 @@ asmlinkage void do_##name(struct pt_regs * regs, long error_code) \ | |||
286 | 285 | ||
287 | DO_ERROR( 1, SIGTRAP, "debug trap", debug_trap) | 286 | DO_ERROR( 1, SIGTRAP, "debug trap", debug_trap) |
288 | DO_ERROR_INFO(0x20, SIGILL, "reserved instruction ", rie_handler, ILL_ILLOPC, regs->bpc) | 287 | DO_ERROR_INFO(0x20, SIGILL, "reserved instruction ", rie_handler, ILL_ILLOPC, regs->bpc) |
289 | DO_ERROR_INFO(0x100, SIGILL, "privilege instruction", pie_handler, ILL_PRVOPC, regs->bpc) | 288 | DO_ERROR_INFO(0x100, SIGILL, "privileged instruction", pie_handler, ILL_PRVOPC, regs->bpc) |
289 | DO_ERROR_INFO(-1, SIGILL, "illegal trap", ill_trap, ILL_ILLTRP, regs->bpc) | ||
290 | 290 | ||
291 | extern int handle_unaligned_access(unsigned long, struct pt_regs *); | 291 | extern int handle_unaligned_access(unsigned long, struct pt_regs *); |
292 | 292 | ||
@@ -329,4 +329,3 @@ asmlinkage void do_alignment_check(struct pt_regs *regs, long error_code) | |||
329 | set_fs(oldfs); | 329 | set_fs(oldfs); |
330 | } | 330 | } |
331 | } | 331 | } |
332 | |||
diff --git a/arch/powerpc/platforms/pseries/pci.c b/arch/powerpc/platforms/pseries/pci.c index 2dd477eb1c53..c198656a3bb5 100644 --- a/arch/powerpc/platforms/pseries/pci.c +++ b/arch/powerpc/platforms/pseries/pci.c | |||
@@ -31,7 +31,7 @@ | |||
31 | #include <asm/prom.h> | 31 | #include <asm/prom.h> |
32 | #include <asm/ppc-pci.h> | 32 | #include <asm/ppc-pci.h> |
33 | 33 | ||
34 | static int __initdata s7a_workaround = -1; | 34 | static int __devinitdata s7a_workaround = -1; |
35 | 35 | ||
36 | #if 0 | 36 | #if 0 |
37 | void pcibios_name_device(struct pci_dev *dev) | 37 | void pcibios_name_device(struct pci_dev *dev) |
@@ -59,7 +59,7 @@ void pcibios_name_device(struct pci_dev *dev) | |||
59 | DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pcibios_name_device); | 59 | DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pcibios_name_device); |
60 | #endif | 60 | #endif |
61 | 61 | ||
62 | static void __init check_s7a(void) | 62 | static void __devinit check_s7a(void) |
63 | { | 63 | { |
64 | struct device_node *root; | 64 | struct device_node *root; |
65 | char *model; | 65 | char *model; |
diff --git a/arch/ppc/boot/ld.script b/arch/ppc/boot/ld.script index 9362193742ac..d4dd8f15395e 100644 --- a/arch/ppc/boot/ld.script +++ b/arch/ppc/boot/ld.script | |||
@@ -1,4 +1,4 @@ | |||
1 | OUTPUT_ARCH(powerpc) | 1 | OUTPUT_ARCH(powerpc:common) |
2 | SECTIONS | 2 | SECTIONS |
3 | { | 3 | { |
4 | /* Read-only sections, merged into text segment: */ | 4 | /* Read-only sections, merged into text segment: */ |
diff --git a/arch/ppc/kernel/dma-mapping.c b/arch/ppc/kernel/dma-mapping.c index b566d982806c..8edee806dae7 100644 --- a/arch/ppc/kernel/dma-mapping.c +++ b/arch/ppc/kernel/dma-mapping.c | |||
@@ -401,10 +401,10 @@ EXPORT_SYMBOL(__dma_sync); | |||
401 | static inline void __dma_sync_page_highmem(struct page *page, | 401 | static inline void __dma_sync_page_highmem(struct page *page, |
402 | unsigned long offset, size_t size, int direction) | 402 | unsigned long offset, size_t size, int direction) |
403 | { | 403 | { |
404 | size_t seg_size = min((size_t)PAGE_SIZE, size) - offset; | 404 | size_t seg_size = min((size_t)(PAGE_SIZE - offset), size); |
405 | size_t cur_size = seg_size; | 405 | size_t cur_size = seg_size; |
406 | unsigned long flags, start, seg_offset = offset; | 406 | unsigned long flags, start, seg_offset = offset; |
407 | int nr_segs = PAGE_ALIGN(size + (PAGE_SIZE - offset))/PAGE_SIZE; | 407 | int nr_segs = 1 + ((size - seg_size) + PAGE_SIZE - 1)/PAGE_SIZE; |
408 | int seg_nr = 0; | 408 | int seg_nr = 0; |
409 | 409 | ||
410 | local_irq_save(flags); | 410 | local_irq_save(flags); |
diff --git a/arch/ppc/platforms/4xx/bamboo.c b/arch/ppc/platforms/4xx/bamboo.c index ac391d463d78..78a403b48dba 100644 --- a/arch/ppc/platforms/4xx/bamboo.c +++ b/arch/ppc/platforms/4xx/bamboo.c | |||
@@ -27,7 +27,6 @@ | |||
27 | #include <linux/delay.h> | 27 | #include <linux/delay.h> |
28 | #include <linux/ide.h> | 28 | #include <linux/ide.h> |
29 | #include <linux/initrd.h> | 29 | #include <linux/initrd.h> |
30 | #include <linux/irq.h> | ||
31 | #include <linux/seq_file.h> | 30 | #include <linux/seq_file.h> |
32 | #include <linux/root_dev.h> | 31 | #include <linux/root_dev.h> |
33 | #include <linux/tty.h> | 32 | #include <linux/tty.h> |
diff --git a/arch/ppc/platforms/4xx/ebony.c b/arch/ppc/platforms/4xx/ebony.c index 9decb72e7aaf..d32ae112f639 100644 --- a/arch/ppc/platforms/4xx/ebony.c +++ b/arch/ppc/platforms/4xx/ebony.c | |||
@@ -30,7 +30,6 @@ | |||
30 | #include <linux/delay.h> | 30 | #include <linux/delay.h> |
31 | #include <linux/ide.h> | 31 | #include <linux/ide.h> |
32 | #include <linux/initrd.h> | 32 | #include <linux/initrd.h> |
33 | #include <linux/irq.h> | ||
34 | #include <linux/seq_file.h> | 33 | #include <linux/seq_file.h> |
35 | #include <linux/root_dev.h> | 34 | #include <linux/root_dev.h> |
36 | #include <linux/tty.h> | 35 | #include <linux/tty.h> |
diff --git a/arch/ppc/platforms/4xx/luan.c b/arch/ppc/platforms/4xx/luan.c index a38e6f9ef858..16d953bda22c 100644 --- a/arch/ppc/platforms/4xx/luan.c +++ b/arch/ppc/platforms/4xx/luan.c | |||
@@ -28,7 +28,6 @@ | |||
28 | #include <linux/delay.h> | 28 | #include <linux/delay.h> |
29 | #include <linux/ide.h> | 29 | #include <linux/ide.h> |
30 | #include <linux/initrd.h> | 30 | #include <linux/initrd.h> |
31 | #include <linux/irq.h> | ||
32 | #include <linux/seq_file.h> | 31 | #include <linux/seq_file.h> |
33 | #include <linux/root_dev.h> | 32 | #include <linux/root_dev.h> |
34 | #include <linux/tty.h> | 33 | #include <linux/tty.h> |
diff --git a/arch/ppc/platforms/4xx/ocotea.c b/arch/ppc/platforms/4xx/ocotea.c index 80028df1b445..506949c5dd29 100644 --- a/arch/ppc/platforms/4xx/ocotea.c +++ b/arch/ppc/platforms/4xx/ocotea.c | |||
@@ -28,7 +28,6 @@ | |||
28 | #include <linux/delay.h> | 28 | #include <linux/delay.h> |
29 | #include <linux/ide.h> | 29 | #include <linux/ide.h> |
30 | #include <linux/initrd.h> | 30 | #include <linux/initrd.h> |
31 | #include <linux/irq.h> | ||
32 | #include <linux/seq_file.h> | 31 | #include <linux/seq_file.h> |
33 | #include <linux/root_dev.h> | 32 | #include <linux/root_dev.h> |
34 | #include <linux/tty.h> | 33 | #include <linux/tty.h> |
diff --git a/arch/ppc/platforms/83xx/mpc834x_sys.c b/arch/ppc/platforms/83xx/mpc834x_sys.c index b38a851a64ec..79b3f533d0a3 100644 --- a/arch/ppc/platforms/83xx/mpc834x_sys.c +++ b/arch/ppc/platforms/83xx/mpc834x_sys.c | |||
@@ -24,7 +24,6 @@ | |||
24 | #include <linux/major.h> | 24 | #include <linux/major.h> |
25 | #include <linux/console.h> | 25 | #include <linux/console.h> |
26 | #include <linux/delay.h> | 26 | #include <linux/delay.h> |
27 | #include <linux/irq.h> | ||
28 | #include <linux/seq_file.h> | 27 | #include <linux/seq_file.h> |
29 | #include <linux/root_dev.h> | 28 | #include <linux/root_dev.h> |
30 | #include <linux/serial.h> | 29 | #include <linux/serial.h> |
diff --git a/arch/ppc/platforms/85xx/mpc8540_ads.c b/arch/ppc/platforms/85xx/mpc8540_ads.c index f761fdf160db..7dc8a68acfd0 100644 --- a/arch/ppc/platforms/85xx/mpc8540_ads.c +++ b/arch/ppc/platforms/85xx/mpc8540_ads.c | |||
@@ -24,7 +24,6 @@ | |||
24 | #include <linux/major.h> | 24 | #include <linux/major.h> |
25 | #include <linux/console.h> | 25 | #include <linux/console.h> |
26 | #include <linux/delay.h> | 26 | #include <linux/delay.h> |
27 | #include <linux/irq.h> | ||
28 | #include <linux/seq_file.h> | 27 | #include <linux/seq_file.h> |
29 | #include <linux/root_dev.h> | 28 | #include <linux/root_dev.h> |
30 | #include <linux/serial.h> | 29 | #include <linux/serial.h> |
diff --git a/arch/ppc/platforms/85xx/mpc8560_ads.c b/arch/ppc/platforms/85xx/mpc8560_ads.c index f2748c88665a..8841fd7da6ee 100644 --- a/arch/ppc/platforms/85xx/mpc8560_ads.c +++ b/arch/ppc/platforms/85xx/mpc8560_ads.c | |||
@@ -24,7 +24,6 @@ | |||
24 | #include <linux/major.h> | 24 | #include <linux/major.h> |
25 | #include <linux/console.h> | 25 | #include <linux/console.h> |
26 | #include <linux/delay.h> | 26 | #include <linux/delay.h> |
27 | #include <linux/irq.h> | ||
28 | #include <linux/seq_file.h> | 27 | #include <linux/seq_file.h> |
29 | #include <linux/root_dev.h> | 28 | #include <linux/root_dev.h> |
30 | #include <linux/serial.h> | 29 | #include <linux/serial.h> |
diff --git a/arch/ppc/platforms/85xx/mpc85xx_ads_common.c b/arch/ppc/platforms/85xx/mpc85xx_ads_common.c index 18e952d1767c..bd3ac0136756 100644 --- a/arch/ppc/platforms/85xx/mpc85xx_ads_common.c +++ b/arch/ppc/platforms/85xx/mpc85xx_ads_common.c | |||
@@ -24,7 +24,6 @@ | |||
24 | #include <linux/major.h> | 24 | #include <linux/major.h> |
25 | #include <linux/console.h> | 25 | #include <linux/console.h> |
26 | #include <linux/delay.h> | 26 | #include <linux/delay.h> |
27 | #include <linux/irq.h> | ||
28 | #include <linux/seq_file.h> | 27 | #include <linux/seq_file.h> |
29 | #include <linux/serial.h> | 28 | #include <linux/serial.h> |
30 | #include <linux/module.h> | 29 | #include <linux/module.h> |
diff --git a/arch/ppc/platforms/85xx/mpc85xx_cds_common.c b/arch/ppc/platforms/85xx/mpc85xx_cds_common.c index 6267b294f704..9f9039498ae5 100644 --- a/arch/ppc/platforms/85xx/mpc85xx_cds_common.c +++ b/arch/ppc/platforms/85xx/mpc85xx_cds_common.c | |||
@@ -24,7 +24,6 @@ | |||
24 | #include <linux/major.h> | 24 | #include <linux/major.h> |
25 | #include <linux/console.h> | 25 | #include <linux/console.h> |
26 | #include <linux/delay.h> | 26 | #include <linux/delay.h> |
27 | #include <linux/irq.h> | ||
28 | #include <linux/seq_file.h> | 27 | #include <linux/seq_file.h> |
29 | #include <linux/serial.h> | 28 | #include <linux/serial.h> |
30 | #include <linux/module.h> | 29 | #include <linux/module.h> |
diff --git a/arch/ppc/platforms/85xx/sbc8560.c b/arch/ppc/platforms/85xx/sbc8560.c index 165df94d4aa6..c76760a781c1 100644 --- a/arch/ppc/platforms/85xx/sbc8560.c +++ b/arch/ppc/platforms/85xx/sbc8560.c | |||
@@ -24,7 +24,6 @@ | |||
24 | #include <linux/major.h> | 24 | #include <linux/major.h> |
25 | #include <linux/console.h> | 25 | #include <linux/console.h> |
26 | #include <linux/delay.h> | 26 | #include <linux/delay.h> |
27 | #include <linux/irq.h> | ||
28 | #include <linux/seq_file.h> | 27 | #include <linux/seq_file.h> |
29 | #include <linux/root_dev.h> | 28 | #include <linux/root_dev.h> |
30 | #include <linux/serial.h> | 29 | #include <linux/serial.h> |
diff --git a/arch/ppc/platforms/85xx/sbc85xx.c b/arch/ppc/platforms/85xx/sbc85xx.c index 4f6d1ddd6fb8..c02f110219f5 100644 --- a/arch/ppc/platforms/85xx/sbc85xx.c +++ b/arch/ppc/platforms/85xx/sbc85xx.c | |||
@@ -23,7 +23,6 @@ | |||
23 | #include <linux/major.h> | 23 | #include <linux/major.h> |
24 | #include <linux/console.h> | 24 | #include <linux/console.h> |
25 | #include <linux/delay.h> | 25 | #include <linux/delay.h> |
26 | #include <linux/irq.h> | ||
27 | #include <linux/seq_file.h> | 26 | #include <linux/seq_file.h> |
28 | #include <linux/serial.h> | 27 | #include <linux/serial.h> |
29 | #include <linux/module.h> | 28 | #include <linux/module.h> |
diff --git a/arch/ppc/platforms/85xx/stx_gp3.c b/arch/ppc/platforms/85xx/stx_gp3.c index c99b365d6110..20940f4044f4 100644 --- a/arch/ppc/platforms/85xx/stx_gp3.c +++ b/arch/ppc/platforms/85xx/stx_gp3.c | |||
@@ -30,7 +30,6 @@ | |||
30 | #include <linux/blkdev.h> | 30 | #include <linux/blkdev.h> |
31 | #include <linux/console.h> | 31 | #include <linux/console.h> |
32 | #include <linux/delay.h> | 32 | #include <linux/delay.h> |
33 | #include <linux/irq.h> | ||
34 | #include <linux/root_dev.h> | 33 | #include <linux/root_dev.h> |
35 | #include <linux/seq_file.h> | 34 | #include <linux/seq_file.h> |
36 | #include <linux/serial.h> | 35 | #include <linux/serial.h> |
diff --git a/arch/ppc/platforms/chestnut.c b/arch/ppc/platforms/chestnut.c index b3d3bdb3936b..48a4a510d598 100644 --- a/arch/ppc/platforms/chestnut.c +++ b/arch/ppc/platforms/chestnut.c | |||
@@ -35,7 +35,6 @@ | |||
35 | #include <asm/time.h> | 35 | #include <asm/time.h> |
36 | #include <asm/dma.h> | 36 | #include <asm/dma.h> |
37 | #include <asm/io.h> | 37 | #include <asm/io.h> |
38 | #include <linux/irq.h> | ||
39 | #include <asm/hw_irq.h> | 38 | #include <asm/hw_irq.h> |
40 | #include <asm/machdep.h> | 39 | #include <asm/machdep.h> |
41 | #include <asm/kgdb.h> | 40 | #include <asm/kgdb.h> |
diff --git a/arch/ppc/platforms/chrp_setup.c b/arch/ppc/platforms/chrp_setup.c index a0cf1b6fdbfe..8c874e957a4b 100644 --- a/arch/ppc/platforms/chrp_setup.c +++ b/arch/ppc/platforms/chrp_setup.c | |||
@@ -32,7 +32,6 @@ | |||
32 | #include <linux/module.h> | 32 | #include <linux/module.h> |
33 | #include <linux/delay.h> | 33 | #include <linux/delay.h> |
34 | #include <linux/ide.h> | 34 | #include <linux/ide.h> |
35 | #include <linux/irq.h> | ||
36 | #include <linux/console.h> | 35 | #include <linux/console.h> |
37 | #include <linux/seq_file.h> | 36 | #include <linux/seq_file.h> |
38 | #include <linux/root_dev.h> | 37 | #include <linux/root_dev.h> |
diff --git a/arch/ppc/platforms/gemini_setup.c b/arch/ppc/platforms/gemini_setup.c index a2a09dc4b5e2..ec6aa04d001e 100644 --- a/arch/ppc/platforms/gemini_setup.c +++ b/arch/ppc/platforms/gemini_setup.c | |||
@@ -21,7 +21,6 @@ | |||
21 | #include <linux/major.h> | 21 | #include <linux/major.h> |
22 | #include <linux/initrd.h> | 22 | #include <linux/initrd.h> |
23 | #include <linux/console.h> | 23 | #include <linux/console.h> |
24 | #include <linux/irq.h> | ||
25 | #include <linux/seq_file.h> | 24 | #include <linux/seq_file.h> |
26 | #include <linux/root_dev.h> | 25 | #include <linux/root_dev.h> |
27 | #include <linux/bcd.h> | 26 | #include <linux/bcd.h> |
diff --git a/arch/ppc/platforms/mvme5100.c b/arch/ppc/platforms/mvme5100.c index b292b44b760c..ce2ce88c8033 100644 --- a/arch/ppc/platforms/mvme5100.c +++ b/arch/ppc/platforms/mvme5100.c | |||
@@ -20,7 +20,6 @@ | |||
20 | #include <linux/initrd.h> | 20 | #include <linux/initrd.h> |
21 | #include <linux/console.h> | 21 | #include <linux/console.h> |
22 | #include <linux/delay.h> | 22 | #include <linux/delay.h> |
23 | #include <linux/irq.h> | ||
24 | #include <linux/ide.h> | 23 | #include <linux/ide.h> |
25 | #include <linux/seq_file.h> | 24 | #include <linux/seq_file.h> |
26 | #include <linux/kdev_t.h> | 25 | #include <linux/kdev_t.h> |
diff --git a/arch/ppc/platforms/pmac_cpufreq.c b/arch/ppc/platforms/pmac_cpufreq.c index ebb8be9bf8aa..fba7e4d7c0bf 100644 --- a/arch/ppc/platforms/pmac_cpufreq.c +++ b/arch/ppc/platforms/pmac_cpufreq.c | |||
@@ -695,6 +695,13 @@ static int __init pmac_cpufreq_setup(void) | |||
695 | set_speed_proc = pmu_set_cpu_speed; | 695 | set_speed_proc = pmu_set_cpu_speed; |
696 | is_pmu_based = 1; | 696 | is_pmu_based = 1; |
697 | } | 697 | } |
698 | /* Else check for TiPb 550 */ | ||
699 | else if (machine_is_compatible("PowerBook3,3") && cur_freq == 550000) { | ||
700 | hi_freq = cur_freq; | ||
701 | low_freq = 500000; | ||
702 | set_speed_proc = pmu_set_cpu_speed; | ||
703 | is_pmu_based = 1; | ||
704 | } | ||
698 | /* Else check for TiPb 400 & 500 */ | 705 | /* Else check for TiPb 400 & 500 */ |
699 | else if (machine_is_compatible("PowerBook3,2")) { | 706 | else if (machine_is_compatible("PowerBook3,2")) { |
700 | /* We only know about the 400 MHz and the 500Mhz model | 707 | /* We only know about the 400 MHz and the 500Mhz model |
diff --git a/arch/ppc/platforms/pmac_feature.c b/arch/ppc/platforms/pmac_feature.c index e8cd0a8b6a76..58884a63ebdb 100644 --- a/arch/ppc/platforms/pmac_feature.c +++ b/arch/ppc/platforms/pmac_feature.c | |||
@@ -2337,6 +2337,10 @@ static struct pmac_mb_def pmac_mb_defs[] = { | |||
2337 | PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, | 2337 | PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, |
2338 | PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE, | 2338 | PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE, |
2339 | }, | 2339 | }, |
2340 | { "PowerBook6,7", "iBook G4", | ||
2341 | PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, | ||
2342 | PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE, | ||
2343 | }, | ||
2340 | { "PowerBook6,8", "PowerBook G4 12\"", | 2344 | { "PowerBook6,8", "PowerBook G4 12\"", |
2341 | PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, | 2345 | PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, |
2342 | PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE, | 2346 | PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE, |
diff --git a/arch/ppc/platforms/pmac_setup.c b/arch/ppc/platforms/pmac_setup.c index 8e7b79b110e7..74165684552a 100644 --- a/arch/ppc/platforms/pmac_setup.c +++ b/arch/ppc/platforms/pmac_setup.c | |||
@@ -48,7 +48,6 @@ | |||
48 | #include <linux/adb.h> | 48 | #include <linux/adb.h> |
49 | #include <linux/cuda.h> | 49 | #include <linux/cuda.h> |
50 | #include <linux/pmu.h> | 50 | #include <linux/pmu.h> |
51 | #include <linux/irq.h> | ||
52 | #include <linux/seq_file.h> | 51 | #include <linux/seq_file.h> |
53 | #include <linux/root_dev.h> | 52 | #include <linux/root_dev.h> |
54 | #include <linux/bitops.h> | 53 | #include <linux/bitops.h> |
diff --git a/arch/ppc/platforms/pmac_time.c b/arch/ppc/platforms/pmac_time.c index ff6adff36cb8..edb9fcc64790 100644 --- a/arch/ppc/platforms/pmac_time.c +++ b/arch/ppc/platforms/pmac_time.c | |||
@@ -195,7 +195,7 @@ via_calibrate_decr(void) | |||
195 | ; | 195 | ; |
196 | dend = get_dec(); | 196 | dend = get_dec(); |
197 | 197 | ||
198 | tb_ticks_per_jiffy = (dstart - dend) / (6 * (HZ/100)); | 198 | tb_ticks_per_jiffy = (dstart - dend) / ((6 * HZ)/100); |
199 | tb_to_us = mulhwu_scale_factor(dstart - dend, 60000); | 199 | tb_to_us = mulhwu_scale_factor(dstart - dend, 60000); |
200 | 200 | ||
201 | printk(KERN_INFO "via_calibrate_decr: ticks per jiffy = %u (%u ticks)\n", | 201 | printk(KERN_INFO "via_calibrate_decr: ticks per jiffy = %u (%u ticks)\n", |
diff --git a/arch/ppc/platforms/powerpmc250.c b/arch/ppc/platforms/powerpmc250.c index 0abe15159e6c..e6b520e6e13f 100644 --- a/arch/ppc/platforms/powerpmc250.c +++ b/arch/ppc/platforms/powerpmc250.c | |||
@@ -26,7 +26,6 @@ | |||
26 | #include <linux/initrd.h> | 26 | #include <linux/initrd.h> |
27 | #include <linux/console.h> | 27 | #include <linux/console.h> |
28 | #include <linux/delay.h> | 28 | #include <linux/delay.h> |
29 | #include <linux/irq.h> | ||
30 | #include <linux/slab.h> | 29 | #include <linux/slab.h> |
31 | #include <linux/seq_file.h> | 30 | #include <linux/seq_file.h> |
32 | #include <linux/ide.h> | 31 | #include <linux/ide.h> |
diff --git a/arch/ppc/platforms/pplus.c b/arch/ppc/platforms/pplus.c index 93e9c7b889f7..c8803214405d 100644 --- a/arch/ppc/platforms/pplus.c +++ b/arch/ppc/platforms/pplus.c | |||
@@ -22,7 +22,6 @@ | |||
22 | #include <linux/ioport.h> | 22 | #include <linux/ioport.h> |
23 | #include <linux/console.h> | 23 | #include <linux/console.h> |
24 | #include <linux/pci.h> | 24 | #include <linux/pci.h> |
25 | #include <linux/irq.h> | ||
26 | #include <linux/ide.h> | 25 | #include <linux/ide.h> |
27 | #include <linux/seq_file.h> | 26 | #include <linux/seq_file.h> |
28 | #include <linux/root_dev.h> | 27 | #include <linux/root_dev.h> |
diff --git a/arch/ppc/platforms/prpmc750.c b/arch/ppc/platforms/prpmc750.c index 24ae1caafc61..0bb14a5e824c 100644 --- a/arch/ppc/platforms/prpmc750.c +++ b/arch/ppc/platforms/prpmc750.c | |||
@@ -24,7 +24,6 @@ | |||
24 | #include <linux/initrd.h> | 24 | #include <linux/initrd.h> |
25 | #include <linux/console.h> | 25 | #include <linux/console.h> |
26 | #include <linux/delay.h> | 26 | #include <linux/delay.h> |
27 | #include <linux/irq.h> | ||
28 | #include <linux/seq_file.h> | 27 | #include <linux/seq_file.h> |
29 | #include <linux/ide.h> | 28 | #include <linux/ide.h> |
30 | #include <linux/root_dev.h> | 29 | #include <linux/root_dev.h> |
diff --git a/arch/ppc/platforms/prpmc800.c b/arch/ppc/platforms/prpmc800.c index 8b09fa69b35b..de7baefacd3a 100644 --- a/arch/ppc/platforms/prpmc800.c +++ b/arch/ppc/platforms/prpmc800.c | |||
@@ -22,7 +22,6 @@ | |||
22 | #include <linux/initrd.h> | 22 | #include <linux/initrd.h> |
23 | #include <linux/console.h> | 23 | #include <linux/console.h> |
24 | #include <linux/delay.h> | 24 | #include <linux/delay.h> |
25 | #include <linux/irq.h> | ||
26 | #include <linux/seq_file.h> | 25 | #include <linux/seq_file.h> |
27 | #include <linux/ide.h> | 26 | #include <linux/ide.h> |
28 | #include <linux/root_dev.h> | 27 | #include <linux/root_dev.h> |
diff --git a/arch/ppc/platforms/radstone_ppc7d.c b/arch/ppc/platforms/radstone_ppc7d.c index 3cf74aa5fed0..5058568c13ec 100644 --- a/arch/ppc/platforms/radstone_ppc7d.c +++ b/arch/ppc/platforms/radstone_ppc7d.c | |||
@@ -32,7 +32,6 @@ | |||
32 | #include <linux/initrd.h> | 32 | #include <linux/initrd.h> |
33 | #include <linux/console.h> | 33 | #include <linux/console.h> |
34 | #include <linux/delay.h> | 34 | #include <linux/delay.h> |
35 | #include <linux/irq.h> | ||
36 | #include <linux/ide.h> | 35 | #include <linux/ide.h> |
37 | #include <linux/seq_file.h> | 36 | #include <linux/seq_file.h> |
38 | #include <linux/root_dev.h> | 37 | #include <linux/root_dev.h> |
@@ -59,7 +58,6 @@ | |||
59 | #include <asm/mpc10x.h> | 58 | #include <asm/mpc10x.h> |
60 | #include <asm/pci-bridge.h> | 59 | #include <asm/pci-bridge.h> |
61 | #include <asm/mv64x60.h> | 60 | #include <asm/mv64x60.h> |
62 | #include <asm/i8259.h> | ||
63 | 61 | ||
64 | #include "radstone_ppc7d.h" | 62 | #include "radstone_ppc7d.h" |
65 | 63 | ||
diff --git a/arch/ppc/platforms/sandpoint.c b/arch/ppc/platforms/sandpoint.c index 84c96cb9ac2b..d4c9781989fb 100644 --- a/arch/ppc/platforms/sandpoint.c +++ b/arch/ppc/platforms/sandpoint.c | |||
@@ -74,7 +74,6 @@ | |||
74 | #include <linux/initrd.h> | 74 | #include <linux/initrd.h> |
75 | #include <linux/console.h> | 75 | #include <linux/console.h> |
76 | #include <linux/delay.h> | 76 | #include <linux/delay.h> |
77 | #include <linux/irq.h> | ||
78 | #include <linux/ide.h> | 77 | #include <linux/ide.h> |
79 | #include <linux/seq_file.h> | 78 | #include <linux/seq_file.h> |
80 | #include <linux/root_dev.h> | 79 | #include <linux/root_dev.h> |
diff --git a/arch/ppc/syslib/mv64x60.c b/arch/ppc/syslib/mv64x60.c index 839f8872826f..4849850a59ed 100644 --- a/arch/ppc/syslib/mv64x60.c +++ b/arch/ppc/syslib/mv64x60.c | |||
@@ -34,7 +34,7 @@ u8 mv64x60_pci_exclude_bridge = 1; | |||
34 | DEFINE_SPINLOCK(mv64x60_lock); | 34 | DEFINE_SPINLOCK(mv64x60_lock); |
35 | 35 | ||
36 | static phys_addr_t mv64x60_bridge_pbase; | 36 | static phys_addr_t mv64x60_bridge_pbase; |
37 | static void *mv64x60_bridge_vbase; | 37 | static void __iomem *mv64x60_bridge_vbase; |
38 | static u32 mv64x60_bridge_type = MV64x60_TYPE_INVALID; | 38 | static u32 mv64x60_bridge_type = MV64x60_TYPE_INVALID; |
39 | static u32 mv64x60_bridge_rev; | 39 | static u32 mv64x60_bridge_rev; |
40 | #if defined(CONFIG_SYSFS) && !defined(CONFIG_GT64260) | 40 | #if defined(CONFIG_SYSFS) && !defined(CONFIG_GT64260) |
@@ -938,7 +938,7 @@ mv64x60_setup_for_chip(struct mv64x60_handle *bh) | |||
938 | * | 938 | * |
939 | * Return the virtual address of the bridge's registers. | 939 | * Return the virtual address of the bridge's registers. |
940 | */ | 940 | */ |
941 | void * | 941 | void __iomem * |
942 | mv64x60_get_bridge_vbase(void) | 942 | mv64x60_get_bridge_vbase(void) |
943 | { | 943 | { |
944 | return mv64x60_bridge_vbase; | 944 | return mv64x60_bridge_vbase; |
diff --git a/arch/ppc/syslib/open_pic.c b/arch/ppc/syslib/open_pic.c index df0f76dc0ce3..361f113260d7 100644 --- a/arch/ppc/syslib/open_pic.c +++ b/arch/ppc/syslib/open_pic.c | |||
@@ -13,7 +13,6 @@ | |||
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
15 | #include <linux/init.h> | 15 | #include <linux/init.h> |
16 | #include <linux/irq.h> | ||
17 | #include <linux/interrupt.h> | 16 | #include <linux/interrupt.h> |
18 | #include <linux/sysdev.h> | 17 | #include <linux/sysdev.h> |
19 | #include <linux/errno.h> | 18 | #include <linux/errno.h> |
diff --git a/arch/ppc/syslib/open_pic2.c b/arch/ppc/syslib/open_pic2.c index ef365cc04bd9..1c40049b9a45 100644 --- a/arch/ppc/syslib/open_pic2.c +++ b/arch/ppc/syslib/open_pic2.c | |||
@@ -17,7 +17,6 @@ | |||
17 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
18 | #include <linux/sched.h> | 18 | #include <linux/sched.h> |
19 | #include <linux/init.h> | 19 | #include <linux/init.h> |
20 | #include <linux/irq.h> | ||
21 | #include <linux/interrupt.h> | 20 | #include <linux/interrupt.h> |
22 | #include <linux/sysdev.h> | 21 | #include <linux/sysdev.h> |
23 | #include <linux/errno.h> | 22 | #include <linux/errno.h> |
diff --git a/arch/ppc/syslib/ppc4xx_setup.c b/arch/ppc/syslib/ppc4xx_setup.c index def724b6e1c9..e83a83fd95e1 100644 --- a/arch/ppc/syslib/ppc4xx_setup.c +++ b/arch/ppc/syslib/ppc4xx_setup.c | |||
@@ -18,7 +18,6 @@ | |||
18 | #include <linux/smp.h> | 18 | #include <linux/smp.h> |
19 | #include <linux/threads.h> | 19 | #include <linux/threads.h> |
20 | #include <linux/spinlock.h> | 20 | #include <linux/spinlock.h> |
21 | #include <linux/irq.h> | ||
22 | #include <linux/reboot.h> | 21 | #include <linux/reboot.h> |
23 | #include <linux/param.h> | 22 | #include <linux/param.h> |
24 | #include <linux/string.h> | 23 | #include <linux/string.h> |
diff --git a/arch/ppc64/kernel/bpa_iommu.c b/arch/ppc64/kernel/bpa_iommu.c index 45ebe5486c40..da1b4b7a3269 100644 --- a/arch/ppc64/kernel/bpa_iommu.c +++ b/arch/ppc64/kernel/bpa_iommu.c | |||
@@ -99,7 +99,11 @@ get_iost_entry(unsigned long iopt_base, unsigned long io_address, unsigned page_ | |||
99 | break; | 99 | break; |
100 | 100 | ||
101 | default: /* not a known compile time constant */ | 101 | default: /* not a known compile time constant */ |
102 | BUG_ON(1); | 102 | { |
103 | /* BUILD_BUG_ON() is not usable here */ | ||
104 | extern void __get_iost_entry_bad_page_size(void); | ||
105 | __get_iost_entry_bad_page_size(); | ||
106 | } | ||
103 | break; | 107 | break; |
104 | } | 108 | } |
105 | 109 | ||
@@ -306,7 +310,7 @@ static void bpa_map_iommu(void) | |||
306 | 310 | ||
307 | 311 | ||
308 | static void *bpa_alloc_coherent(struct device *hwdev, size_t size, | 312 | static void *bpa_alloc_coherent(struct device *hwdev, size_t size, |
309 | dma_addr_t *dma_handle, unsigned int __nocast flag) | 313 | dma_addr_t *dma_handle, gfp_t flag) |
310 | { | 314 | { |
311 | void *ret; | 315 | void *ret; |
312 | 316 | ||
diff --git a/arch/ppc64/kernel/dma.c b/arch/ppc64/kernel/dma.c index 4da8e31b2b61..7c3419656ccc 100644 --- a/arch/ppc64/kernel/dma.c +++ b/arch/ppc64/kernel/dma.c | |||
@@ -53,7 +53,7 @@ int dma_set_mask(struct device *dev, u64 dma_mask) | |||
53 | EXPORT_SYMBOL(dma_set_mask); | 53 | EXPORT_SYMBOL(dma_set_mask); |
54 | 54 | ||
55 | void *dma_alloc_coherent(struct device *dev, size_t size, | 55 | void *dma_alloc_coherent(struct device *dev, size_t size, |
56 | dma_addr_t *dma_handle, unsigned int __nocast flag) | 56 | dma_addr_t *dma_handle, gfp_t flag) |
57 | { | 57 | { |
58 | struct dma_mapping_ops *dma_ops = get_dma_ops(dev); | 58 | struct dma_mapping_ops *dma_ops = get_dma_ops(dev); |
59 | 59 | ||
diff --git a/arch/ppc64/kernel/iommu.c b/arch/ppc64/kernel/iommu.c index 9032b6bfe036..4d9b4388918b 100644 --- a/arch/ppc64/kernel/iommu.c +++ b/arch/ppc64/kernel/iommu.c | |||
@@ -519,7 +519,7 @@ void iommu_unmap_single(struct iommu_table *tbl, dma_addr_t dma_handle, | |||
519 | * to the dma address (mapping) of the first page. | 519 | * to the dma address (mapping) of the first page. |
520 | */ | 520 | */ |
521 | void *iommu_alloc_coherent(struct iommu_table *tbl, size_t size, | 521 | void *iommu_alloc_coherent(struct iommu_table *tbl, size_t size, |
522 | dma_addr_t *dma_handle, unsigned int __nocast flag) | 522 | dma_addr_t *dma_handle, gfp_t flag) |
523 | { | 523 | { |
524 | void *ret = NULL; | 524 | void *ret = NULL; |
525 | dma_addr_t mapping; | 525 | dma_addr_t mapping; |
diff --git a/arch/ppc64/kernel/kprobes.c b/arch/ppc64/kernel/kprobes.c index abb90e67534a..ed876a5178ae 100644 --- a/arch/ppc64/kernel/kprobes.c +++ b/arch/ppc64/kernel/kprobes.c | |||
@@ -59,9 +59,9 @@ int __kprobes arch_prepare_kprobe(struct kprobe *p) | |||
59 | 59 | ||
60 | /* insn must be on a special executable page on ppc64 */ | 60 | /* insn must be on a special executable page on ppc64 */ |
61 | if (!ret) { | 61 | if (!ret) { |
62 | up(&kprobe_mutex); | ||
63 | p->ainsn.insn = get_insn_slot(); | ||
64 | down(&kprobe_mutex); | 62 | down(&kprobe_mutex); |
63 | p->ainsn.insn = get_insn_slot(); | ||
64 | up(&kprobe_mutex); | ||
65 | if (!p->ainsn.insn) | 65 | if (!p->ainsn.insn) |
66 | ret = -ENOMEM; | 66 | ret = -ENOMEM; |
67 | } | 67 | } |
@@ -90,9 +90,9 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p) | |||
90 | 90 | ||
91 | void __kprobes arch_remove_kprobe(struct kprobe *p) | 91 | void __kprobes arch_remove_kprobe(struct kprobe *p) |
92 | { | 92 | { |
93 | up(&kprobe_mutex); | ||
94 | free_insn_slot(p->ainsn.insn); | ||
95 | down(&kprobe_mutex); | 93 | down(&kprobe_mutex); |
94 | free_insn_slot(p->ainsn.insn); | ||
95 | up(&kprobe_mutex); | ||
96 | } | 96 | } |
97 | 97 | ||
98 | static inline void prepare_singlestep(struct kprobe *p, struct pt_regs *regs) | 98 | static inline void prepare_singlestep(struct kprobe *p, struct pt_regs *regs) |
diff --git a/arch/ppc64/kernel/module.c b/arch/ppc64/kernel/module.c index c683bf88e690..928b8581fcb0 100644 --- a/arch/ppc64/kernel/module.c +++ b/arch/ppc64/kernel/module.c | |||
@@ -341,6 +341,19 @@ int apply_relocate_add(Elf64_Shdr *sechdrs, | |||
341 | *(unsigned long *)location = my_r2(sechdrs, me); | 341 | *(unsigned long *)location = my_r2(sechdrs, me); |
342 | break; | 342 | break; |
343 | 343 | ||
344 | case R_PPC64_TOC16: | ||
345 | /* Subtact TOC pointer */ | ||
346 | value -= my_r2(sechdrs, me); | ||
347 | if (value + 0x8000 > 0xffff) { | ||
348 | printk("%s: bad TOC16 relocation (%lu)\n", | ||
349 | me->name, value); | ||
350 | return -ENOEXEC; | ||
351 | } | ||
352 | *((uint16_t *) location) | ||
353 | = (*((uint16_t *) location) & ~0xffff) | ||
354 | | (value & 0xffff); | ||
355 | break; | ||
356 | |||
344 | case R_PPC64_TOC16_DS: | 357 | case R_PPC64_TOC16_DS: |
345 | /* Subtact TOC pointer */ | 358 | /* Subtact TOC pointer */ |
346 | value -= my_r2(sechdrs, me); | 359 | value -= my_r2(sechdrs, me); |
diff --git a/arch/ppc64/kernel/pci_direct_iommu.c b/arch/ppc64/kernel/pci_direct_iommu.c index 57980a5674d7..e1a32f802c0b 100644 --- a/arch/ppc64/kernel/pci_direct_iommu.c +++ b/arch/ppc64/kernel/pci_direct_iommu.c | |||
@@ -30,7 +30,7 @@ | |||
30 | #include <asm/ppc-pci.h> | 30 | #include <asm/ppc-pci.h> |
31 | 31 | ||
32 | static void *pci_direct_alloc_coherent(struct device *hwdev, size_t size, | 32 | static void *pci_direct_alloc_coherent(struct device *hwdev, size_t size, |
33 | dma_addr_t *dma_handle, unsigned int __nocast flag) | 33 | dma_addr_t *dma_handle, gfp_t flag) |
34 | { | 34 | { |
35 | void *ret; | 35 | void *ret; |
36 | 36 | ||
diff --git a/arch/ppc64/kernel/pci_iommu.c b/arch/ppc64/kernel/pci_iommu.c index 6c9dc67f59d8..2114dc9c59b5 100644 --- a/arch/ppc64/kernel/pci_iommu.c +++ b/arch/ppc64/kernel/pci_iommu.c | |||
@@ -70,7 +70,7 @@ static inline struct iommu_table *devnode_table(struct device *dev) | |||
70 | * to the dma address (mapping) of the first page. | 70 | * to the dma address (mapping) of the first page. |
71 | */ | 71 | */ |
72 | static void *pci_iommu_alloc_coherent(struct device *hwdev, size_t size, | 72 | static void *pci_iommu_alloc_coherent(struct device *hwdev, size_t size, |
73 | dma_addr_t *dma_handle, unsigned int __nocast flag) | 73 | dma_addr_t *dma_handle, gfp_t flag) |
74 | { | 74 | { |
75 | return iommu_alloc_coherent(devnode_table(hwdev), size, dma_handle, | 75 | return iommu_alloc_coherent(devnode_table(hwdev), size, dma_handle, |
76 | flag); | 76 | flag); |
diff --git a/arch/ppc64/kernel/vio.c b/arch/ppc64/kernel/vio.c index c90e1dd875ce..0e555b7a6587 100644 --- a/arch/ppc64/kernel/vio.c +++ b/arch/ppc64/kernel/vio.c | |||
@@ -218,7 +218,7 @@ static void vio_unmap_sg(struct device *dev, struct scatterlist *sglist, | |||
218 | } | 218 | } |
219 | 219 | ||
220 | static void *vio_alloc_coherent(struct device *dev, size_t size, | 220 | static void *vio_alloc_coherent(struct device *dev, size_t size, |
221 | dma_addr_t *dma_handle, unsigned int __nocast flag) | 221 | dma_addr_t *dma_handle, gfp_t flag) |
222 | { | 222 | { |
223 | return iommu_alloc_coherent(to_vio_dev(dev)->iommu_table, size, | 223 | return iommu_alloc_coherent(to_vio_dev(dev)->iommu_table, size, |
224 | dma_handle, flag); | 224 | dma_handle, flag); |
diff --git a/arch/s390/kernel/compat_signal.c b/arch/s390/kernel/compat_signal.c index 7358cdb8441f..4ff6808456ea 100644 --- a/arch/s390/kernel/compat_signal.c +++ b/arch/s390/kernel/compat_signal.c | |||
@@ -143,7 +143,7 @@ int copy_siginfo_from_user32(siginfo_t *to, compat_siginfo_t __user *from) | |||
143 | break; | 143 | break; |
144 | case __SI_FAULT >> 16: | 144 | case __SI_FAULT >> 16: |
145 | err |= __get_user(tmp, &from->si_addr); | 145 | err |= __get_user(tmp, &from->si_addr); |
146 | to->si_addr = (void *)(u64) (tmp & PSW32_ADDR_INSN); | 146 | to->si_addr = (void __user *)(u64) (tmp & PSW32_ADDR_INSN); |
147 | break; | 147 | break; |
148 | case __SI_POLL >> 16: | 148 | case __SI_POLL >> 16: |
149 | err |= __get_user(to->si_band, &from->si_band); | 149 | err |= __get_user(to->si_band, &from->si_band); |
@@ -338,7 +338,7 @@ sys32_sigaltstack(const stack_t32 __user *uss, stack_t32 __user *uoss, | |||
338 | err |= __get_user(kss.ss_flags, &uss->ss_flags); | 338 | err |= __get_user(kss.ss_flags, &uss->ss_flags); |
339 | if (err) | 339 | if (err) |
340 | return -EFAULT; | 340 | return -EFAULT; |
341 | kss.ss_sp = (void *) ss_sp; | 341 | kss.ss_sp = (void __user *) ss_sp; |
342 | } | 342 | } |
343 | 343 | ||
344 | set_fs (KERNEL_DS); | 344 | set_fs (KERNEL_DS); |
@@ -461,7 +461,7 @@ asmlinkage long sys32_rt_sigreturn(struct pt_regs *regs) | |||
461 | goto badframe; | 461 | goto badframe; |
462 | 462 | ||
463 | err = __get_user(ss_sp, &frame->uc.uc_stack.ss_sp); | 463 | err = __get_user(ss_sp, &frame->uc.uc_stack.ss_sp); |
464 | st.ss_sp = (void *) A((unsigned long)ss_sp); | 464 | st.ss_sp = compat_ptr(ss_sp); |
465 | err |= __get_user(st.ss_size, &frame->uc.uc_stack.ss_size); | 465 | err |= __get_user(st.ss_size, &frame->uc.uc_stack.ss_size); |
466 | err |= __get_user(st.ss_flags, &frame->uc.uc_stack.ss_flags); | 466 | err |= __get_user(st.ss_flags, &frame->uc.uc_stack.ss_flags); |
467 | if (err) | 467 | if (err) |
diff --git a/arch/s390/kernel/signal.c b/arch/s390/kernel/signal.c index 6a3f5b7473a9..6e0110d71191 100644 --- a/arch/s390/kernel/signal.c +++ b/arch/s390/kernel/signal.c | |||
@@ -376,8 +376,8 @@ static void setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | |||
376 | 376 | ||
377 | /* Create the ucontext. */ | 377 | /* Create the ucontext. */ |
378 | err |= __put_user(0, &frame->uc.uc_flags); | 378 | err |= __put_user(0, &frame->uc.uc_flags); |
379 | err |= __put_user(0, &frame->uc.uc_link); | 379 | err |= __put_user(NULL, &frame->uc.uc_link); |
380 | err |= __put_user((void *)current->sas_ss_sp, &frame->uc.uc_stack.ss_sp); | 380 | err |= __put_user((void __user *)current->sas_ss_sp, &frame->uc.uc_stack.ss_sp); |
381 | err |= __put_user(sas_ss_flags(regs->gprs[15]), | 381 | err |= __put_user(sas_ss_flags(regs->gprs[15]), |
382 | &frame->uc.uc_stack.ss_flags); | 382 | &frame->uc.uc_stack.ss_flags); |
383 | err |= __put_user(current->sas_ss_size, &frame->uc.uc_stack.ss_size); | 383 | err |= __put_user(current->sas_ss_size, &frame->uc.uc_stack.ss_size); |
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index aba05394d30a..6537445dac0e 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig | |||
@@ -25,62 +25,6 @@ source "init/Kconfig" | |||
25 | 25 | ||
26 | menu "General machine setup" | 26 | menu "General machine setup" |
27 | 27 | ||
28 | config VT | ||
29 | bool | ||
30 | select INPUT | ||
31 | default y | ||
32 | ---help--- | ||
33 | If you say Y here, you will get support for terminal devices with | ||
34 | display and keyboard devices. These are called "virtual" because you | ||
35 | can run several virtual terminals (also called virtual consoles) on | ||
36 | one physical terminal. This is rather useful, for example one | ||
37 | virtual terminal can collect system messages and warnings, another | ||
38 | one can be used for a text-mode user session, and a third could run | ||
39 | an X session, all in parallel. Switching between virtual terminals | ||
40 | is done with certain key combinations, usually Alt-<function key>. | ||
41 | |||
42 | The setterm command ("man setterm") can be used to change the | ||
43 | properties (such as colors or beeping) of a virtual terminal. The | ||
44 | man page console_codes(4) ("man console_codes") contains the special | ||
45 | character sequences that can be used to change those properties | ||
46 | directly. The fonts used on virtual terminals can be changed with | ||
47 | the setfont ("man setfont") command and the key bindings are defined | ||
48 | with the loadkeys ("man loadkeys") command. | ||
49 | |||
50 | You need at least one virtual terminal device in order to make use | ||
51 | of your keyboard and monitor. Therefore, only people configuring an | ||
52 | embedded system would want to say N here in order to save some | ||
53 | memory; the only way to log into such a system is then via a serial | ||
54 | or network connection. | ||
55 | |||
56 | If unsure, say Y, or else you won't be able to do much with your new | ||
57 | shiny Linux system :-) | ||
58 | |||
59 | config VT_CONSOLE | ||
60 | bool | ||
61 | default y | ||
62 | ---help--- | ||
63 | The system console is the device which receives all kernel messages | ||
64 | and warnings and which allows logins in single user mode. If you | ||
65 | answer Y here, a virtual terminal (the device used to interact with | ||
66 | a physical terminal) can be used as system console. This is the most | ||
67 | common mode of operations, so you should say Y here unless you want | ||
68 | the kernel messages be output only to a serial port (in which case | ||
69 | you should say Y to "Console on serial port", below). | ||
70 | |||
71 | If you do say Y here, by default the currently visible virtual | ||
72 | terminal (/dev/tty0) will be used as system console. You can change | ||
73 | that with a kernel command line option such as "console=tty3" which | ||
74 | would use the third virtual terminal as system console. (Try "man | ||
75 | bootparam" or see the documentation of your boot loader (lilo or | ||
76 | loadlin) about how to pass options to the kernel at boot time.) | ||
77 | |||
78 | If unsure, say Y. | ||
79 | |||
80 | config HW_CONSOLE | ||
81 | bool | ||
82 | default y | ||
83 | |||
84 | config SMP | 28 | config SMP |
85 | bool "Symmetric multi-processing support (does not work on sun4/sun4c)" | 29 | bool "Symmetric multi-processing support (does not work on sun4/sun4c)" |
86 | depends on BROKEN | 30 | depends on BROKEN |
diff --git a/arch/sparc/kernel/setup.c b/arch/sparc/kernel/setup.c index 53c192a4982f..3509e4305532 100644 --- a/arch/sparc/kernel/setup.c +++ b/arch/sparc/kernel/setup.c | |||
@@ -249,8 +249,6 @@ struct tt_entry *sparc_ttable; | |||
249 | 249 | ||
250 | struct pt_regs fake_swapper_regs; | 250 | struct pt_regs fake_swapper_regs; |
251 | 251 | ||
252 | extern void paging_init(void); | ||
253 | |||
254 | void __init setup_arch(char **cmdline_p) | 252 | void __init setup_arch(char **cmdline_p) |
255 | { | 253 | { |
256 | int i; | 254 | int i; |
diff --git a/arch/sparc/kernel/time.c b/arch/sparc/kernel/time.c index bc015e980341..279a62627c10 100644 --- a/arch/sparc/kernel/time.c +++ b/arch/sparc/kernel/time.c | |||
@@ -457,7 +457,7 @@ void __init time_init(void) | |||
457 | sbus_time_init(); | 457 | sbus_time_init(); |
458 | } | 458 | } |
459 | 459 | ||
460 | extern __inline__ unsigned long do_gettimeoffset(void) | 460 | static inline unsigned long do_gettimeoffset(void) |
461 | { | 461 | { |
462 | return (*master_l10_counter >> 10) & 0x1fffff; | 462 | return (*master_l10_counter >> 10) & 0x1fffff; |
463 | } | 463 | } |
diff --git a/arch/sparc/mm/srmmu.c b/arch/sparc/mm/srmmu.c index c89a803cbc20..c664b962987c 100644 --- a/arch/sparc/mm/srmmu.c +++ b/arch/sparc/mm/srmmu.c | |||
@@ -260,7 +260,7 @@ static inline pte_t srmmu_pte_modify(pte_t pte, pgprot_t newprot) | |||
260 | { return __pte((pte_val(pte) & SRMMU_CHG_MASK) | pgprot_val(newprot)); } | 260 | { return __pte((pte_val(pte) & SRMMU_CHG_MASK) | pgprot_val(newprot)); } |
261 | 261 | ||
262 | /* to find an entry in a top-level page table... */ | 262 | /* to find an entry in a top-level page table... */ |
263 | extern inline pgd_t *srmmu_pgd_offset(struct mm_struct * mm, unsigned long address) | 263 | static inline pgd_t *srmmu_pgd_offset(struct mm_struct * mm, unsigned long address) |
264 | { return mm->pgd + (address >> SRMMU_PGDIR_SHIFT); } | 264 | { return mm->pgd + (address >> SRMMU_PGDIR_SHIFT); } |
265 | 265 | ||
266 | /* Find an entry in the second-level page table.. */ | 266 | /* Find an entry in the second-level page table.. */ |
diff --git a/arch/sparc64/kernel/cpu.c b/arch/sparc64/kernel/cpu.c index 48756958116b..77ef5df4e5a7 100644 --- a/arch/sparc64/kernel/cpu.c +++ b/arch/sparc64/kernel/cpu.c | |||
@@ -39,6 +39,8 @@ struct cpu_fp_info linux_sparc_fpu[] = { | |||
39 | { 0x3e, 0x15, 0, "UltraSparc III+ integrated FPU"}, | 39 | { 0x3e, 0x15, 0, "UltraSparc III+ integrated FPU"}, |
40 | { 0x3e, 0x16, 0, "UltraSparc IIIi integrated FPU"}, | 40 | { 0x3e, 0x16, 0, "UltraSparc IIIi integrated FPU"}, |
41 | { 0x3e, 0x18, 0, "UltraSparc IV integrated FPU"}, | 41 | { 0x3e, 0x18, 0, "UltraSparc IV integrated FPU"}, |
42 | { 0x3e, 0x19, 0, "UltraSparc IV+ integrated FPU"}, | ||
43 | { 0x3e, 0x22, 0, "UltraSparc IIIi+ integrated FPU"}, | ||
42 | }; | 44 | }; |
43 | 45 | ||
44 | #define NSPARCFPU (sizeof(linux_sparc_fpu)/sizeof(struct cpu_fp_info)) | 46 | #define NSPARCFPU (sizeof(linux_sparc_fpu)/sizeof(struct cpu_fp_info)) |
@@ -53,6 +55,8 @@ struct cpu_iu_info linux_sparc_chips[] = { | |||
53 | { 0x3e, 0x15, "TI UltraSparc III+ (Cheetah+)"}, | 55 | { 0x3e, 0x15, "TI UltraSparc III+ (Cheetah+)"}, |
54 | { 0x3e, 0x16, "TI UltraSparc IIIi (Jalapeno)"}, | 56 | { 0x3e, 0x16, "TI UltraSparc IIIi (Jalapeno)"}, |
55 | { 0x3e, 0x18, "TI UltraSparc IV (Jaguar)"}, | 57 | { 0x3e, 0x18, "TI UltraSparc IV (Jaguar)"}, |
58 | { 0x3e, 0x19, "TI UltraSparc IV+ (Panther)"}, | ||
59 | { 0x3e, 0x22, "TI UltraSparc IIIi+ (Serrano)"}, | ||
56 | }; | 60 | }; |
57 | 61 | ||
58 | #define NSPARCCHIPS (sizeof(linux_sparc_chips)/sizeof(struct cpu_iu_info)) | 62 | #define NSPARCCHIPS (sizeof(linux_sparc_chips)/sizeof(struct cpu_iu_info)) |
diff --git a/arch/sparc64/kernel/entry.S b/arch/sparc64/kernel/entry.S index 2879b1072921..11a848402fb1 100644 --- a/arch/sparc64/kernel/entry.S +++ b/arch/sparc64/kernel/entry.S | |||
@@ -33,7 +33,7 @@ | |||
33 | /* This is trivial with the new code... */ | 33 | /* This is trivial with the new code... */ |
34 | .globl do_fpdis | 34 | .globl do_fpdis |
35 | do_fpdis: | 35 | do_fpdis: |
36 | sethi %hi(TSTATE_PEF), %g4 ! IEU0 | 36 | sethi %hi(TSTATE_PEF), %g4 |
37 | rdpr %tstate, %g5 | 37 | rdpr %tstate, %g5 |
38 | andcc %g5, %g4, %g0 | 38 | andcc %g5, %g4, %g0 |
39 | be,pt %xcc, 1f | 39 | be,pt %xcc, 1f |
@@ -50,18 +50,18 @@ do_fpdis: | |||
50 | add %g0, %g0, %g0 | 50 | add %g0, %g0, %g0 |
51 | ba,a,pt %xcc, rtrap_clr_l6 | 51 | ba,a,pt %xcc, rtrap_clr_l6 |
52 | 52 | ||
53 | 1: ldub [%g6 + TI_FPSAVED], %g5 ! Load Group | 53 | 1: ldub [%g6 + TI_FPSAVED], %g5 |
54 | wr %g0, FPRS_FEF, %fprs ! LSU Group+4bubbles | 54 | wr %g0, FPRS_FEF, %fprs |
55 | andcc %g5, FPRS_FEF, %g0 ! IEU1 Group | 55 | andcc %g5, FPRS_FEF, %g0 |
56 | be,a,pt %icc, 1f ! CTI | 56 | be,a,pt %icc, 1f |
57 | clr %g7 ! IEU0 | 57 | clr %g7 |
58 | ldx [%g6 + TI_GSR], %g7 ! Load Group | 58 | ldx [%g6 + TI_GSR], %g7 |
59 | 1: andcc %g5, FPRS_DL, %g0 ! IEU1 | 59 | 1: andcc %g5, FPRS_DL, %g0 |
60 | bne,pn %icc, 2f ! CTI | 60 | bne,pn %icc, 2f |
61 | fzero %f0 ! FPA | 61 | fzero %f0 |
62 | andcc %g5, FPRS_DU, %g0 ! IEU1 Group | 62 | andcc %g5, FPRS_DU, %g0 |
63 | bne,pn %icc, 1f ! CTI | 63 | bne,pn %icc, 1f |
64 | fzero %f2 ! FPA | 64 | fzero %f2 |
65 | faddd %f0, %f2, %f4 | 65 | faddd %f0, %f2, %f4 |
66 | fmuld %f0, %f2, %f6 | 66 | fmuld %f0, %f2, %f6 |
67 | faddd %f0, %f2, %f8 | 67 | faddd %f0, %f2, %f8 |
@@ -97,15 +97,17 @@ do_fpdis: | |||
97 | faddd %f0, %f2, %f4 | 97 | faddd %f0, %f2, %f4 |
98 | fmuld %f0, %f2, %f6 | 98 | fmuld %f0, %f2, %f6 |
99 | ldxa [%g3] ASI_DMMU, %g5 | 99 | ldxa [%g3] ASI_DMMU, %g5 |
100 | cplus_fptrap_insn_1: | 100 | sethi %hi(sparc64_kern_sec_context), %g2 |
101 | sethi %hi(0), %g2 | 101 | ldx [%g2 + %lo(sparc64_kern_sec_context)], %g2 |
102 | stxa %g2, [%g3] ASI_DMMU | 102 | stxa %g2, [%g3] ASI_DMMU |
103 | membar #Sync | 103 | membar #Sync |
104 | add %g6, TI_FPREGS + 0xc0, %g2 | 104 | add %g6, TI_FPREGS + 0xc0, %g2 |
105 | faddd %f0, %f2, %f8 | 105 | faddd %f0, %f2, %f8 |
106 | fmuld %f0, %f2, %f10 | 106 | fmuld %f0, %f2, %f10 |
107 | ldda [%g1] ASI_BLK_S, %f32 ! grrr, where is ASI_BLK_NUCLEUS 8-( | 107 | membar #Sync |
108 | ldda [%g1] ASI_BLK_S, %f32 | ||
108 | ldda [%g2] ASI_BLK_S, %f48 | 109 | ldda [%g2] ASI_BLK_S, %f48 |
110 | membar #Sync | ||
109 | faddd %f0, %f2, %f12 | 111 | faddd %f0, %f2, %f12 |
110 | fmuld %f0, %f2, %f14 | 112 | fmuld %f0, %f2, %f14 |
111 | faddd %f0, %f2, %f16 | 113 | faddd %f0, %f2, %f16 |
@@ -116,7 +118,6 @@ cplus_fptrap_insn_1: | |||
116 | fmuld %f0, %f2, %f26 | 118 | fmuld %f0, %f2, %f26 |
117 | faddd %f0, %f2, %f28 | 119 | faddd %f0, %f2, %f28 |
118 | fmuld %f0, %f2, %f30 | 120 | fmuld %f0, %f2, %f30 |
119 | membar #Sync | ||
120 | b,pt %xcc, fpdis_exit | 121 | b,pt %xcc, fpdis_exit |
121 | nop | 122 | nop |
122 | 2: andcc %g5, FPRS_DU, %g0 | 123 | 2: andcc %g5, FPRS_DU, %g0 |
@@ -126,15 +127,17 @@ cplus_fptrap_insn_1: | |||
126 | fzero %f34 | 127 | fzero %f34 |
127 | ldxa [%g3] ASI_DMMU, %g5 | 128 | ldxa [%g3] ASI_DMMU, %g5 |
128 | add %g6, TI_FPREGS, %g1 | 129 | add %g6, TI_FPREGS, %g1 |
129 | cplus_fptrap_insn_2: | 130 | sethi %hi(sparc64_kern_sec_context), %g2 |
130 | sethi %hi(0), %g2 | 131 | ldx [%g2 + %lo(sparc64_kern_sec_context)], %g2 |
131 | stxa %g2, [%g3] ASI_DMMU | 132 | stxa %g2, [%g3] ASI_DMMU |
132 | membar #Sync | 133 | membar #Sync |
133 | add %g6, TI_FPREGS + 0x40, %g2 | 134 | add %g6, TI_FPREGS + 0x40, %g2 |
134 | faddd %f32, %f34, %f36 | 135 | faddd %f32, %f34, %f36 |
135 | fmuld %f32, %f34, %f38 | 136 | fmuld %f32, %f34, %f38 |
136 | ldda [%g1] ASI_BLK_S, %f0 ! grrr, where is ASI_BLK_NUCLEUS 8-( | 137 | membar #Sync |
138 | ldda [%g1] ASI_BLK_S, %f0 | ||
137 | ldda [%g2] ASI_BLK_S, %f16 | 139 | ldda [%g2] ASI_BLK_S, %f16 |
140 | membar #Sync | ||
138 | faddd %f32, %f34, %f40 | 141 | faddd %f32, %f34, %f40 |
139 | fmuld %f32, %f34, %f42 | 142 | fmuld %f32, %f34, %f42 |
140 | faddd %f32, %f34, %f44 | 143 | faddd %f32, %f34, %f44 |
@@ -147,18 +150,18 @@ cplus_fptrap_insn_2: | |||
147 | fmuld %f32, %f34, %f58 | 150 | fmuld %f32, %f34, %f58 |
148 | faddd %f32, %f34, %f60 | 151 | faddd %f32, %f34, %f60 |
149 | fmuld %f32, %f34, %f62 | 152 | fmuld %f32, %f34, %f62 |
150 | membar #Sync | ||
151 | ba,pt %xcc, fpdis_exit | 153 | ba,pt %xcc, fpdis_exit |
152 | nop | 154 | nop |
153 | 3: mov SECONDARY_CONTEXT, %g3 | 155 | 3: mov SECONDARY_CONTEXT, %g3 |
154 | add %g6, TI_FPREGS, %g1 | 156 | add %g6, TI_FPREGS, %g1 |
155 | ldxa [%g3] ASI_DMMU, %g5 | 157 | ldxa [%g3] ASI_DMMU, %g5 |
156 | cplus_fptrap_insn_3: | 158 | sethi %hi(sparc64_kern_sec_context), %g2 |
157 | sethi %hi(0), %g2 | 159 | ldx [%g2 + %lo(sparc64_kern_sec_context)], %g2 |
158 | stxa %g2, [%g3] ASI_DMMU | 160 | stxa %g2, [%g3] ASI_DMMU |
159 | membar #Sync | 161 | membar #Sync |
160 | mov 0x40, %g2 | 162 | mov 0x40, %g2 |
161 | ldda [%g1] ASI_BLK_S, %f0 ! grrr, where is ASI_BLK_NUCLEUS 8-( | 163 | membar #Sync |
164 | ldda [%g1] ASI_BLK_S, %f0 | ||
162 | ldda [%g1 + %g2] ASI_BLK_S, %f16 | 165 | ldda [%g1 + %g2] ASI_BLK_S, %f16 |
163 | add %g1, 0x80, %g1 | 166 | add %g1, 0x80, %g1 |
164 | ldda [%g1] ASI_BLK_S, %f32 | 167 | ldda [%g1] ASI_BLK_S, %f32 |
@@ -319,8 +322,8 @@ do_fptrap_after_fsr: | |||
319 | stx %g3, [%g6 + TI_GSR] | 322 | stx %g3, [%g6 + TI_GSR] |
320 | mov SECONDARY_CONTEXT, %g3 | 323 | mov SECONDARY_CONTEXT, %g3 |
321 | ldxa [%g3] ASI_DMMU, %g5 | 324 | ldxa [%g3] ASI_DMMU, %g5 |
322 | cplus_fptrap_insn_4: | 325 | sethi %hi(sparc64_kern_sec_context), %g2 |
323 | sethi %hi(0), %g2 | 326 | ldx [%g2 + %lo(sparc64_kern_sec_context)], %g2 |
324 | stxa %g2, [%g3] ASI_DMMU | 327 | stxa %g2, [%g3] ASI_DMMU |
325 | membar #Sync | 328 | membar #Sync |
326 | add %g6, TI_FPREGS, %g2 | 329 | add %g6, TI_FPREGS, %g2 |
@@ -341,33 +344,6 @@ cplus_fptrap_insn_4: | |||
341 | ba,pt %xcc, etrap | 344 | ba,pt %xcc, etrap |
342 | wr %g0, 0, %fprs | 345 | wr %g0, 0, %fprs |
343 | 346 | ||
344 | cplus_fptrap_1: | ||
345 | sethi %hi(CTX_CHEETAH_PLUS_CTX0), %g2 | ||
346 | |||
347 | .globl cheetah_plus_patch_fpdis | ||
348 | cheetah_plus_patch_fpdis: | ||
349 | /* We configure the dTLB512_0 for 4MB pages and the | ||
350 | * dTLB512_1 for 8K pages when in context zero. | ||
351 | */ | ||
352 | sethi %hi(cplus_fptrap_1), %o0 | ||
353 | lduw [%o0 + %lo(cplus_fptrap_1)], %o1 | ||
354 | |||
355 | set cplus_fptrap_insn_1, %o2 | ||
356 | stw %o1, [%o2] | ||
357 | flush %o2 | ||
358 | set cplus_fptrap_insn_2, %o2 | ||
359 | stw %o1, [%o2] | ||
360 | flush %o2 | ||
361 | set cplus_fptrap_insn_3, %o2 | ||
362 | stw %o1, [%o2] | ||
363 | flush %o2 | ||
364 | set cplus_fptrap_insn_4, %o2 | ||
365 | stw %o1, [%o2] | ||
366 | flush %o2 | ||
367 | |||
368 | retl | ||
369 | nop | ||
370 | |||
371 | /* The registers for cross calls will be: | 347 | /* The registers for cross calls will be: |
372 | * | 348 | * |
373 | * DATA 0: [low 32-bits] Address of function to call, jmp to this | 349 | * DATA 0: [low 32-bits] Address of function to call, jmp to this |
diff --git a/arch/sparc64/kernel/etrap.S b/arch/sparc64/kernel/etrap.S index 50d2af1d98ae..0d8eba21111b 100644 --- a/arch/sparc64/kernel/etrap.S +++ b/arch/sparc64/kernel/etrap.S | |||
@@ -68,12 +68,8 @@ etrap_irq: | |||
68 | 68 | ||
69 | wrpr %g3, 0, %otherwin | 69 | wrpr %g3, 0, %otherwin |
70 | wrpr %g2, 0, %wstate | 70 | wrpr %g2, 0, %wstate |
71 | cplus_etrap_insn_1: | 71 | sethi %hi(sparc64_kern_pri_context), %g2 |
72 | sethi %hi(0), %g3 | 72 | ldx [%g2 + %lo(sparc64_kern_pri_context)], %g3 |
73 | sllx %g3, 32, %g3 | ||
74 | cplus_etrap_insn_2: | ||
75 | sethi %hi(0), %g2 | ||
76 | or %g3, %g2, %g3 | ||
77 | stxa %g3, [%l4] ASI_DMMU | 73 | stxa %g3, [%l4] ASI_DMMU |
78 | flush %l6 | 74 | flush %l6 |
79 | wr %g0, ASI_AIUS, %asi | 75 | wr %g0, ASI_AIUS, %asi |
@@ -215,12 +211,8 @@ scetrap: rdpr %pil, %g2 | |||
215 | mov PRIMARY_CONTEXT, %l4 | 211 | mov PRIMARY_CONTEXT, %l4 |
216 | wrpr %g3, 0, %otherwin | 212 | wrpr %g3, 0, %otherwin |
217 | wrpr %g2, 0, %wstate | 213 | wrpr %g2, 0, %wstate |
218 | cplus_etrap_insn_3: | 214 | sethi %hi(sparc64_kern_pri_context), %g2 |
219 | sethi %hi(0), %g3 | 215 | ldx [%g2 + %lo(sparc64_kern_pri_context)], %g3 |
220 | sllx %g3, 32, %g3 | ||
221 | cplus_etrap_insn_4: | ||
222 | sethi %hi(0), %g2 | ||
223 | or %g3, %g2, %g3 | ||
224 | stxa %g3, [%l4] ASI_DMMU | 216 | stxa %g3, [%l4] ASI_DMMU |
225 | flush %l6 | 217 | flush %l6 |
226 | 218 | ||
@@ -264,38 +256,3 @@ cplus_etrap_insn_4: | |||
264 | 256 | ||
265 | #undef TASK_REGOFF | 257 | #undef TASK_REGOFF |
266 | #undef ETRAP_PSTATE1 | 258 | #undef ETRAP_PSTATE1 |
267 | |||
268 | cplus_einsn_1: | ||
269 | sethi %uhi(CTX_CHEETAH_PLUS_NUC), %g3 | ||
270 | cplus_einsn_2: | ||
271 | sethi %hi(CTX_CHEETAH_PLUS_CTX0), %g2 | ||
272 | |||
273 | .globl cheetah_plus_patch_etrap | ||
274 | cheetah_plus_patch_etrap: | ||
275 | /* We configure the dTLB512_0 for 4MB pages and the | ||
276 | * dTLB512_1 for 8K pages when in context zero. | ||
277 | */ | ||
278 | sethi %hi(cplus_einsn_1), %o0 | ||
279 | sethi %hi(cplus_etrap_insn_1), %o2 | ||
280 | lduw [%o0 + %lo(cplus_einsn_1)], %o1 | ||
281 | or %o2, %lo(cplus_etrap_insn_1), %o2 | ||
282 | stw %o1, [%o2] | ||
283 | flush %o2 | ||
284 | sethi %hi(cplus_etrap_insn_3), %o2 | ||
285 | or %o2, %lo(cplus_etrap_insn_3), %o2 | ||
286 | stw %o1, [%o2] | ||
287 | flush %o2 | ||
288 | |||
289 | sethi %hi(cplus_einsn_2), %o0 | ||
290 | sethi %hi(cplus_etrap_insn_2), %o2 | ||
291 | lduw [%o0 + %lo(cplus_einsn_2)], %o1 | ||
292 | or %o2, %lo(cplus_etrap_insn_2), %o2 | ||
293 | stw %o1, [%o2] | ||
294 | flush %o2 | ||
295 | sethi %hi(cplus_etrap_insn_4), %o2 | ||
296 | or %o2, %lo(cplus_etrap_insn_4), %o2 | ||
297 | stw %o1, [%o2] | ||
298 | flush %o2 | ||
299 | |||
300 | retl | ||
301 | nop | ||
diff --git a/arch/sparc64/kernel/head.S b/arch/sparc64/kernel/head.S index ecc748fb9ad7..4c942f71184d 100644 --- a/arch/sparc64/kernel/head.S +++ b/arch/sparc64/kernel/head.S | |||
@@ -191,8 +191,9 @@ prom_boot_mapping_phys_low: | |||
191 | stx %l3, [%sp + 2047 + 128 + 0x10] ! num_rets, 5 | 191 | stx %l3, [%sp + 2047 + 128 + 0x10] ! num_rets, 5 |
192 | stx %l2, [%sp + 2047 + 128 + 0x18] ! arg1: "translate" | 192 | stx %l2, [%sp + 2047 + 128 + 0x18] ! arg1: "translate" |
193 | stx %l5, [%sp + 2047 + 128 + 0x20] ! arg2: prom_mmu_ihandle_cache | 193 | stx %l5, [%sp + 2047 + 128 + 0x20] ! arg2: prom_mmu_ihandle_cache |
194 | srlx %l0, 22, %l3 | 194 | /* PAGE align */ |
195 | sllx %l3, 22, %l3 | 195 | srlx %l0, 13, %l3 |
196 | sllx %l3, 13, %l3 | ||
196 | stx %l3, [%sp + 2047 + 128 + 0x28] ! arg3: vaddr, our PC | 197 | stx %l3, [%sp + 2047 + 128 + 0x28] ! arg3: vaddr, our PC |
197 | stx %g0, [%sp + 2047 + 128 + 0x30] ! res1 | 198 | stx %g0, [%sp + 2047 + 128 + 0x30] ! res1 |
198 | stx %g0, [%sp + 2047 + 128 + 0x38] ! res2 | 199 | stx %g0, [%sp + 2047 + 128 + 0x38] ! res2 |
@@ -211,6 +212,9 @@ prom_boot_mapping_phys_low: | |||
211 | ldx [%sp + 2047 + 128 + 0x48], %l2 ! physaddr high | 212 | ldx [%sp + 2047 + 128 + 0x48], %l2 ! physaddr high |
212 | stx %l2, [%l4 + 0x0] | 213 | stx %l2, [%l4 + 0x0] |
213 | ldx [%sp + 2047 + 128 + 0x50], %l3 ! physaddr low | 214 | ldx [%sp + 2047 + 128 + 0x50], %l3 ! physaddr low |
215 | /* 4MB align */ | ||
216 | srlx %l3, 22, %l3 | ||
217 | sllx %l3, 22, %l3 | ||
214 | stx %l3, [%l4 + 0x8] | 218 | stx %l3, [%l4 + 0x8] |
215 | 219 | ||
216 | /* Leave service as-is, "call-method" */ | 220 | /* Leave service as-is, "call-method" */ |
@@ -325,23 +329,7 @@ cheetah_tlb_fixup: | |||
325 | 1: sethi %hi(tlb_type), %g1 | 329 | 1: sethi %hi(tlb_type), %g1 |
326 | stw %g2, [%g1 + %lo(tlb_type)] | 330 | stw %g2, [%g1 + %lo(tlb_type)] |
327 | 331 | ||
328 | BRANCH_IF_CHEETAH_PLUS_OR_FOLLOWON(g1,g7,1f) | 332 | /* Patch copy/page operations to cheetah optimized versions. */ |
329 | ba,pt %xcc, 2f | ||
330 | nop | ||
331 | |||
332 | 1: /* Patch context register writes to support nucleus page | ||
333 | * size correctly. | ||
334 | */ | ||
335 | call cheetah_plus_patch_etrap | ||
336 | nop | ||
337 | call cheetah_plus_patch_rtrap | ||
338 | nop | ||
339 | call cheetah_plus_patch_fpdis | ||
340 | nop | ||
341 | call cheetah_plus_patch_winfixup | ||
342 | nop | ||
343 | |||
344 | 2: /* Patch copy/page operations to cheetah optimized versions. */ | ||
345 | call cheetah_patch_copyops | 333 | call cheetah_patch_copyops |
346 | nop | 334 | nop |
347 | call cheetah_patch_copy_page | 335 | call cheetah_patch_copy_page |
@@ -398,32 +386,79 @@ tlb_fixup_done: | |||
398 | nop | 386 | nop |
399 | /* Not reached... */ | 387 | /* Not reached... */ |
400 | 388 | ||
401 | /* IMPORTANT NOTE: Whenever making changes here, check | 389 | /* This is meant to allow the sharing of this code between |
402 | * trampoline.S as well. -jj */ | 390 | * boot processor invocation (via setup_tba() below) and |
403 | .globl setup_tba | 391 | * secondary processor startup (via trampoline.S). The |
404 | setup_tba: /* i0 = is_starfire */ | 392 | * former does use this code, the latter does not yet due |
405 | save %sp, -160, %sp | 393 | * to some complexities. That should be fixed up at some |
394 | * point. | ||
395 | */ | ||
396 | .globl setup_trap_table | ||
397 | setup_trap_table: | ||
398 | save %sp, -192, %sp | ||
399 | |||
400 | /* Force interrupts to be disabled. Transferring over to | ||
401 | * the Linux trap table is a very delicate operation. | ||
402 | * Until we are actually on the Linux trap table, we cannot | ||
403 | * get the PAGE_OFFSET linear mappings translated. We need | ||
404 | * that mapping to be setup in order to initialize the firmware | ||
405 | * page tables. | ||
406 | * | ||
407 | * So there is this window of time, from the return from | ||
408 | * prom_set_trap_table() until inherit_prom_mappings_post() | ||
409 | * (in arch/sparc64/mm/init.c) completes, during which no | ||
410 | * firmware address space accesses can be made. | ||
411 | */ | ||
412 | rdpr %pstate, %o1 | ||
413 | andn %o1, PSTATE_IE, %o1 | ||
414 | wrpr %o1, 0x0, %pstate | ||
415 | wrpr %g0, 15, %pil | ||
406 | 416 | ||
407 | rdpr %tba, %g7 | 417 | /* Ok, now make the final valid firmware call to jump over |
408 | sethi %hi(prom_tba), %o1 | 418 | * to the Linux trap table. |
409 | or %o1, %lo(prom_tba), %o1 | 419 | */ |
410 | stx %g7, [%o1] | 420 | call prom_set_trap_table |
421 | sethi %hi(sparc64_ttable_tl0), %o0 | ||
422 | |||
423 | /* Start using proper page size encodings in ctx register. */ | ||
424 | sethi %hi(sparc64_kern_pri_context), %g3 | ||
425 | ldx [%g3 + %lo(sparc64_kern_pri_context)], %g2 | ||
426 | mov PRIMARY_CONTEXT, %g1 | ||
427 | stxa %g2, [%g1] ASI_DMMU | ||
428 | membar #Sync | ||
429 | |||
430 | /* The Linux trap handlers expect various trap global registers | ||
431 | * to be setup with some fixed values. So here we set these | ||
432 | * up very carefully. These globals are: | ||
433 | * | ||
434 | * Alternate Globals (PSTATE_AG): | ||
435 | * | ||
436 | * %g6 --> current_thread_info() | ||
437 | * | ||
438 | * MMU Globals (PSTATE_MG): | ||
439 | * | ||
440 | * %g1 --> TLB_SFSR | ||
441 | * %g2 --> ((_PAGE_VALID | _PAGE_SZ4MB | | ||
442 | * _PAGE_CP | _PAGE_CV | _PAGE_P | _PAGE_W) | ||
443 | * ^ 0xfffff80000000000) | ||
444 | * (this %g2 value is used for computing the PAGE_OFFSET kernel | ||
445 | * TLB entries quickly, the virtual address of the fault XOR'd | ||
446 | * with this %g2 value is the PTE to load into the TLB) | ||
447 | * %g3 --> VPTE_BASE_CHEETAH or VPTE_BASE_SPITFIRE | ||
448 | * | ||
449 | * Interrupt Globals (PSTATE_IG, setup by init_irqwork_curcpu()): | ||
450 | * | ||
451 | * %g6 --> __irq_work[smp_processor_id()] | ||
452 | */ | ||
411 | 453 | ||
412 | /* Setup "Linux" globals 8-) */ | ||
413 | rdpr %pstate, %o1 | 454 | rdpr %pstate, %o1 |
414 | mov %g6, %o2 | 455 | mov %g6, %o2 |
415 | wrpr %o1, (PSTATE_AG|PSTATE_IE), %pstate | 456 | wrpr %o1, PSTATE_AG, %pstate |
416 | sethi %hi(sparc64_ttable_tl0), %g1 | ||
417 | wrpr %g1, %tba | ||
418 | mov %o2, %g6 | 457 | mov %o2, %g6 |
419 | 458 | ||
420 | /* Set up MMU globals */ | ||
421 | wrpr %o1, (PSTATE_MG|PSTATE_IE), %pstate | ||
422 | |||
423 | /* Set fixed globals used by dTLB miss handler. */ | ||
424 | #define KERN_HIGHBITS ((_PAGE_VALID|_PAGE_SZ4MB)^0xfffff80000000000) | 459 | #define KERN_HIGHBITS ((_PAGE_VALID|_PAGE_SZ4MB)^0xfffff80000000000) |
425 | #define KERN_LOWBITS (_PAGE_CP | _PAGE_CV | _PAGE_P | _PAGE_W) | 460 | #define KERN_LOWBITS (_PAGE_CP | _PAGE_CV | _PAGE_P | _PAGE_W) |
426 | 461 | wrpr %o1, PSTATE_MG, %pstate | |
427 | mov TSB_REG, %g1 | 462 | mov TSB_REG, %g1 |
428 | stxa %g0, [%g1] ASI_DMMU | 463 | stxa %g0, [%g1] ASI_DMMU |
429 | membar #Sync | 464 | membar #Sync |
@@ -435,17 +470,17 @@ setup_tba: /* i0 = is_starfire */ | |||
435 | sllx %g2, 32, %g2 | 470 | sllx %g2, 32, %g2 |
436 | or %g2, KERN_LOWBITS, %g2 | 471 | or %g2, KERN_LOWBITS, %g2 |
437 | 472 | ||
438 | BRANCH_IF_ANY_CHEETAH(g3,g7,cheetah_vpte_base) | 473 | BRANCH_IF_ANY_CHEETAH(g3,g7,8f) |
439 | ba,pt %xcc, spitfire_vpte_base | 474 | ba,pt %xcc, 9f |
440 | nop | 475 | nop |
441 | 476 | ||
442 | cheetah_vpte_base: | 477 | 8: |
443 | sethi %uhi(VPTE_BASE_CHEETAH), %g3 | 478 | sethi %uhi(VPTE_BASE_CHEETAH), %g3 |
444 | or %g3, %ulo(VPTE_BASE_CHEETAH), %g3 | 479 | or %g3, %ulo(VPTE_BASE_CHEETAH), %g3 |
445 | ba,pt %xcc, 2f | 480 | ba,pt %xcc, 2f |
446 | sllx %g3, 32, %g3 | 481 | sllx %g3, 32, %g3 |
447 | 482 | ||
448 | spitfire_vpte_base: | 483 | 9: |
449 | sethi %uhi(VPTE_BASE_SPITFIRE), %g3 | 484 | sethi %uhi(VPTE_BASE_SPITFIRE), %g3 |
450 | or %g3, %ulo(VPTE_BASE_SPITFIRE), %g3 | 485 | or %g3, %ulo(VPTE_BASE_SPITFIRE), %g3 |
451 | sllx %g3, 32, %g3 | 486 | sllx %g3, 32, %g3 |
@@ -471,36 +506,37 @@ spitfire_vpte_base: | |||
471 | sllx %o2, 32, %o2 | 506 | sllx %o2, 32, %o2 |
472 | wr %o2, %asr25 | 507 | wr %o2, %asr25 |
473 | 508 | ||
474 | /* Ok, we're done setting up all the state our trap mechanims needs, | ||
475 | * now get back into normal globals and let the PROM know what is up. | ||
476 | */ | ||
477 | 2: | 509 | 2: |
478 | wrpr %g0, %g0, %wstate | 510 | wrpr %g0, %g0, %wstate |
479 | wrpr %o1, PSTATE_IE, %pstate | 511 | wrpr %o1, 0x0, %pstate |
480 | 512 | ||
481 | call init_irqwork_curcpu | 513 | call init_irqwork_curcpu |
482 | nop | 514 | nop |
483 | 515 | ||
484 | call prom_set_trap_table | 516 | /* Now we can turn interrupts back on. */ |
485 | sethi %hi(sparc64_ttable_tl0), %o0 | ||
486 | |||
487 | BRANCH_IF_CHEETAH_PLUS_OR_FOLLOWON(g2,g3,1f) | ||
488 | ba,pt %xcc, 2f | ||
489 | nop | ||
490 | |||
491 | 1: /* Start using proper page size encodings in ctx register. */ | ||
492 | sethi %uhi(CTX_CHEETAH_PLUS_NUC), %g3 | ||
493 | mov PRIMARY_CONTEXT, %g1 | ||
494 | sllx %g3, 32, %g3 | ||
495 | sethi %hi(CTX_CHEETAH_PLUS_CTX0), %g2 | ||
496 | or %g3, %g2, %g3 | ||
497 | stxa %g3, [%g1] ASI_DMMU | ||
498 | membar #Sync | ||
499 | |||
500 | 2: | ||
501 | rdpr %pstate, %o1 | 517 | rdpr %pstate, %o1 |
502 | or %o1, PSTATE_IE, %o1 | 518 | or %o1, PSTATE_IE, %o1 |
503 | wrpr %o1, 0, %pstate | 519 | wrpr %o1, 0, %pstate |
520 | wrpr %g0, 0x0, %pil | ||
521 | |||
522 | ret | ||
523 | restore | ||
524 | |||
525 | .globl setup_tba | ||
526 | setup_tba: /* i0 = is_starfire */ | ||
527 | save %sp, -192, %sp | ||
528 | |||
529 | /* The boot processor is the only cpu which invokes this | ||
530 | * routine, the other cpus set things up via trampoline.S. | ||
531 | * So save the OBP trap table address here. | ||
532 | */ | ||
533 | rdpr %tba, %g7 | ||
534 | sethi %hi(prom_tba), %o1 | ||
535 | or %o1, %lo(prom_tba), %o1 | ||
536 | stx %g7, [%o1] | ||
537 | |||
538 | call setup_trap_table | ||
539 | nop | ||
504 | 540 | ||
505 | ret | 541 | ret |
506 | restore | 542 | restore |
@@ -540,8 +576,11 @@ bootup_user_stack_end: | |||
540 | prom_tba: .xword 0 | 576 | prom_tba: .xword 0 |
541 | tlb_type: .word 0 /* Must NOT end up in BSS */ | 577 | tlb_type: .word 0 /* Must NOT end up in BSS */ |
542 | .section ".fixup",#alloc,#execinstr | 578 | .section ".fixup",#alloc,#execinstr |
543 | .globl __ret_efault | 579 | |
580 | .globl __ret_efault, __retl_efault | ||
544 | __ret_efault: | 581 | __ret_efault: |
545 | ret | 582 | ret |
546 | restore %g0, -EFAULT, %o0 | 583 | restore %g0, -EFAULT, %o0 |
547 | 584 | __retl_efault: | |
585 | retl | ||
586 | mov -EFAULT, %o0 | ||
diff --git a/arch/sparc64/kernel/irq.c b/arch/sparc64/kernel/irq.c index c9b69167632a..233526ba3abe 100644 --- a/arch/sparc64/kernel/irq.c +++ b/arch/sparc64/kernel/irq.c | |||
@@ -27,6 +27,7 @@ | |||
27 | #include <asm/atomic.h> | 27 | #include <asm/atomic.h> |
28 | #include <asm/system.h> | 28 | #include <asm/system.h> |
29 | #include <asm/irq.h> | 29 | #include <asm/irq.h> |
30 | #include <asm/io.h> | ||
30 | #include <asm/sbus.h> | 31 | #include <asm/sbus.h> |
31 | #include <asm/iommu.h> | 32 | #include <asm/iommu.h> |
32 | #include <asm/upa.h> | 33 | #include <asm/upa.h> |
diff --git a/arch/sparc64/kernel/power.c b/arch/sparc64/kernel/power.c index 946cee0257ea..9e8362ea3104 100644 --- a/arch/sparc64/kernel/power.c +++ b/arch/sparc64/kernel/power.c | |||
@@ -17,6 +17,7 @@ | |||
17 | 17 | ||
18 | #include <asm/system.h> | 18 | #include <asm/system.h> |
19 | #include <asm/ebus.h> | 19 | #include <asm/ebus.h> |
20 | #include <asm/isa.h> | ||
20 | #include <asm/auxio.h> | 21 | #include <asm/auxio.h> |
21 | 22 | ||
22 | #include <linux/unistd.h> | 23 | #include <linux/unistd.h> |
@@ -100,46 +101,83 @@ again: | |||
100 | return 0; | 101 | return 0; |
101 | } | 102 | } |
102 | 103 | ||
103 | static int __init has_button_interrupt(struct linux_ebus_device *edev) | 104 | static int __init has_button_interrupt(unsigned int irq, int prom_node) |
104 | { | 105 | { |
105 | if (edev->irqs[0] == PCI_IRQ_NONE) | 106 | if (irq == PCI_IRQ_NONE) |
106 | return 0; | 107 | return 0; |
107 | if (!prom_node_has_property(edev->prom_node, "button")) | 108 | if (!prom_node_has_property(prom_node, "button")) |
108 | return 0; | 109 | return 0; |
109 | 110 | ||
110 | return 1; | 111 | return 1; |
111 | } | 112 | } |
112 | 113 | ||
113 | void __init power_init(void) | 114 | static int __init power_probe_ebus(struct resource **resp, unsigned int *irq_p, int *prom_node_p) |
114 | { | 115 | { |
115 | struct linux_ebus *ebus; | 116 | struct linux_ebus *ebus; |
116 | struct linux_ebus_device *edev; | 117 | struct linux_ebus_device *edev; |
118 | |||
119 | for_each_ebus(ebus) { | ||
120 | for_each_ebusdev(edev, ebus) { | ||
121 | if (!strcmp(edev->prom_name, "power")) { | ||
122 | *resp = &edev->resource[0]; | ||
123 | *irq_p = edev->irqs[0]; | ||
124 | *prom_node_p = edev->prom_node; | ||
125 | return 0; | ||
126 | } | ||
127 | } | ||
128 | } | ||
129 | return -ENODEV; | ||
130 | } | ||
131 | |||
132 | static int __init power_probe_isa(struct resource **resp, unsigned int *irq_p, int *prom_node_p) | ||
133 | { | ||
134 | struct sparc_isa_bridge *isa_bus; | ||
135 | struct sparc_isa_device *isa_dev; | ||
136 | |||
137 | for_each_isa(isa_bus) { | ||
138 | for_each_isadev(isa_dev, isa_bus) { | ||
139 | if (!strcmp(isa_dev->prom_name, "power")) { | ||
140 | *resp = &isa_dev->resource; | ||
141 | *irq_p = isa_dev->irq; | ||
142 | *prom_node_p = isa_dev->prom_node; | ||
143 | return 0; | ||
144 | } | ||
145 | } | ||
146 | } | ||
147 | return -ENODEV; | ||
148 | } | ||
149 | |||
150 | void __init power_init(void) | ||
151 | { | ||
152 | struct resource *res = NULL; | ||
153 | unsigned int irq; | ||
154 | int prom_node; | ||
117 | static int invoked; | 155 | static int invoked; |
118 | 156 | ||
119 | if (invoked) | 157 | if (invoked) |
120 | return; | 158 | return; |
121 | invoked = 1; | 159 | invoked = 1; |
122 | 160 | ||
123 | for_each_ebus(ebus) { | 161 | if (!power_probe_ebus(&res, &irq, &prom_node)) |
124 | for_each_ebusdev(edev, ebus) { | 162 | goto found; |
125 | if (!strcmp(edev->prom_name, "power")) | 163 | |
126 | goto found; | 164 | if (!power_probe_isa(&res, &irq, &prom_node)) |
127 | } | 165 | goto found; |
128 | } | 166 | |
129 | return; | 167 | return; |
130 | 168 | ||
131 | found: | 169 | found: |
132 | power_reg = ioremap(edev->resource[0].start, 0x4); | 170 | power_reg = ioremap(res->start, 0x4); |
133 | printk("power: Control reg at %p ... ", power_reg); | 171 | printk("power: Control reg at %p ... ", power_reg); |
134 | poweroff_method = machine_halt; /* able to use the standard halt */ | 172 | poweroff_method = machine_halt; /* able to use the standard halt */ |
135 | if (has_button_interrupt(edev)) { | 173 | if (has_button_interrupt(irq, prom_node)) { |
136 | if (kernel_thread(powerd, NULL, CLONE_FS) < 0) { | 174 | if (kernel_thread(powerd, NULL, CLONE_FS) < 0) { |
137 | printk("Failed to start power daemon.\n"); | 175 | printk("Failed to start power daemon.\n"); |
138 | return; | 176 | return; |
139 | } | 177 | } |
140 | printk("powerd running.\n"); | 178 | printk("powerd running.\n"); |
141 | 179 | ||
142 | if (request_irq(edev->irqs[0], | 180 | if (request_irq(irq, |
143 | power_handler, SA_SHIRQ, "power", NULL) < 0) | 181 | power_handler, SA_SHIRQ, "power", NULL) < 0) |
144 | printk("power: Error, cannot register IRQ handler.\n"); | 182 | printk("power: Error, cannot register IRQ handler.\n"); |
145 | } else { | 183 | } else { |
diff --git a/arch/sparc64/kernel/ptrace.c b/arch/sparc64/kernel/ptrace.c index 5efbff90d668..774ecbb8a031 100644 --- a/arch/sparc64/kernel/ptrace.c +++ b/arch/sparc64/kernel/ptrace.c | |||
@@ -31,6 +31,7 @@ | |||
31 | #include <asm/visasm.h> | 31 | #include <asm/visasm.h> |
32 | #include <asm/spitfire.h> | 32 | #include <asm/spitfire.h> |
33 | #include <asm/page.h> | 33 | #include <asm/page.h> |
34 | #include <asm/cpudata.h> | ||
34 | 35 | ||
35 | /* Returning from ptrace is a bit tricky because the syscall return | 36 | /* Returning from ptrace is a bit tricky because the syscall return |
36 | * low level code assumes any value returned which is negative and | 37 | * low level code assumes any value returned which is negative and |
@@ -132,12 +133,16 @@ void flush_ptrace_access(struct vm_area_struct *vma, struct page *page, | |||
132 | if ((uaddr ^ (unsigned long) kaddr) & (1UL << 13)) { | 133 | if ((uaddr ^ (unsigned long) kaddr) & (1UL << 13)) { |
133 | unsigned long start = __pa(kaddr); | 134 | unsigned long start = __pa(kaddr); |
134 | unsigned long end = start + len; | 135 | unsigned long end = start + len; |
136 | unsigned long dcache_line_size; | ||
137 | |||
138 | dcache_line_size = local_cpu_data().dcache_line_size; | ||
135 | 139 | ||
136 | if (tlb_type == spitfire) { | 140 | if (tlb_type == spitfire) { |
137 | for (; start < end; start += 32) | 141 | for (; start < end; start += dcache_line_size) |
138 | spitfire_put_dcache_tag(start & 0x3fe0, 0x0); | 142 | spitfire_put_dcache_tag(start & 0x3fe0, 0x0); |
139 | } else { | 143 | } else { |
140 | for (; start < end; start += 32) | 144 | start &= ~(dcache_line_size - 1); |
145 | for (; start < end; start += dcache_line_size) | ||
141 | __asm__ __volatile__( | 146 | __asm__ __volatile__( |
142 | "stxa %%g0, [%0] %1\n\t" | 147 | "stxa %%g0, [%0] %1\n\t" |
143 | "membar #Sync" | 148 | "membar #Sync" |
@@ -150,8 +155,11 @@ void flush_ptrace_access(struct vm_area_struct *vma, struct page *page, | |||
150 | if (write && tlb_type == spitfire) { | 155 | if (write && tlb_type == spitfire) { |
151 | unsigned long start = (unsigned long) kaddr; | 156 | unsigned long start = (unsigned long) kaddr; |
152 | unsigned long end = start + len; | 157 | unsigned long end = start + len; |
158 | unsigned long icache_line_size; | ||
159 | |||
160 | icache_line_size = local_cpu_data().icache_line_size; | ||
153 | 161 | ||
154 | for (; start < end; start += 32) | 162 | for (; start < end; start += icache_line_size) |
155 | flushi(start); | 163 | flushi(start); |
156 | } | 164 | } |
157 | } | 165 | } |
diff --git a/arch/sparc64/kernel/rtrap.S b/arch/sparc64/kernel/rtrap.S index fafd227735fa..090dcca00d2a 100644 --- a/arch/sparc64/kernel/rtrap.S +++ b/arch/sparc64/kernel/rtrap.S | |||
@@ -256,9 +256,8 @@ rt_continue: ldx [%sp + PTREGS_OFF + PT_V9_G1], %g1 | |||
256 | brnz,pn %l3, kern_rtt | 256 | brnz,pn %l3, kern_rtt |
257 | mov PRIMARY_CONTEXT, %l7 | 257 | mov PRIMARY_CONTEXT, %l7 |
258 | ldxa [%l7 + %l7] ASI_DMMU, %l0 | 258 | ldxa [%l7 + %l7] ASI_DMMU, %l0 |
259 | cplus_rtrap_insn_1: | 259 | sethi %hi(sparc64_kern_pri_nuc_bits), %l1 |
260 | sethi %hi(0), %l1 | 260 | ldx [%l1 + %lo(sparc64_kern_pri_nuc_bits)], %l1 |
261 | sllx %l1, 32, %l1 | ||
262 | or %l0, %l1, %l0 | 261 | or %l0, %l1, %l0 |
263 | stxa %l0, [%l7] ASI_DMMU | 262 | stxa %l0, [%l7] ASI_DMMU |
264 | flush %g6 | 263 | flush %g6 |
@@ -313,53 +312,36 @@ kern_fpucheck: ldub [%g6 + TI_FPDEPTH], %l5 | |||
313 | wr %g1, FPRS_FEF, %fprs | 312 | wr %g1, FPRS_FEF, %fprs |
314 | ldx [%o1 + %o5], %g1 | 313 | ldx [%o1 + %o5], %g1 |
315 | add %g6, TI_XFSR, %o1 | 314 | add %g6, TI_XFSR, %o1 |
316 | membar #StoreLoad | #LoadLoad | ||
317 | sll %o0, 8, %o2 | 315 | sll %o0, 8, %o2 |
318 | add %g6, TI_FPREGS, %o3 | 316 | add %g6, TI_FPREGS, %o3 |
319 | brz,pn %l6, 1f | 317 | brz,pn %l6, 1f |
320 | add %g6, TI_FPREGS+0x40, %o4 | 318 | add %g6, TI_FPREGS+0x40, %o4 |
321 | 319 | ||
320 | membar #Sync | ||
322 | ldda [%o3 + %o2] ASI_BLK_P, %f0 | 321 | ldda [%o3 + %o2] ASI_BLK_P, %f0 |
323 | ldda [%o4 + %o2] ASI_BLK_P, %f16 | 322 | ldda [%o4 + %o2] ASI_BLK_P, %f16 |
323 | membar #Sync | ||
324 | 1: andcc %l2, FPRS_DU, %g0 | 324 | 1: andcc %l2, FPRS_DU, %g0 |
325 | be,pn %icc, 1f | 325 | be,pn %icc, 1f |
326 | wr %g1, 0, %gsr | 326 | wr %g1, 0, %gsr |
327 | add %o2, 0x80, %o2 | 327 | add %o2, 0x80, %o2 |
328 | membar #Sync | ||
328 | ldda [%o3 + %o2] ASI_BLK_P, %f32 | 329 | ldda [%o3 + %o2] ASI_BLK_P, %f32 |
329 | ldda [%o4 + %o2] ASI_BLK_P, %f48 | 330 | ldda [%o4 + %o2] ASI_BLK_P, %f48 |
330 | |||
331 | 1: membar #Sync | 331 | 1: membar #Sync |
332 | ldx [%o1 + %o5], %fsr | 332 | ldx [%o1 + %o5], %fsr |
333 | 2: stb %l5, [%g6 + TI_FPDEPTH] | 333 | 2: stb %l5, [%g6 + TI_FPDEPTH] |
334 | ba,pt %xcc, rt_continue | 334 | ba,pt %xcc, rt_continue |
335 | nop | 335 | nop |
336 | 5: wr %g0, FPRS_FEF, %fprs | 336 | 5: wr %g0, FPRS_FEF, %fprs |
337 | membar #StoreLoad | #LoadLoad | ||
338 | sll %o0, 8, %o2 | 337 | sll %o0, 8, %o2 |
339 | 338 | ||
340 | add %g6, TI_FPREGS+0x80, %o3 | 339 | add %g6, TI_FPREGS+0x80, %o3 |
341 | add %g6, TI_FPREGS+0xc0, %o4 | 340 | add %g6, TI_FPREGS+0xc0, %o4 |
341 | membar #Sync | ||
342 | ldda [%o3 + %o2] ASI_BLK_P, %f32 | 342 | ldda [%o3 + %o2] ASI_BLK_P, %f32 |
343 | ldda [%o4 + %o2] ASI_BLK_P, %f48 | 343 | ldda [%o4 + %o2] ASI_BLK_P, %f48 |
344 | membar #Sync | 344 | membar #Sync |
345 | wr %g0, FPRS_DU, %fprs | 345 | wr %g0, FPRS_DU, %fprs |
346 | ba,pt %xcc, rt_continue | 346 | ba,pt %xcc, rt_continue |
347 | stb %l5, [%g6 + TI_FPDEPTH] | 347 | stb %l5, [%g6 + TI_FPDEPTH] |
348 | |||
349 | cplus_rinsn_1: | ||
350 | sethi %uhi(CTX_CHEETAH_PLUS_NUC), %l1 | ||
351 | |||
352 | .globl cheetah_plus_patch_rtrap | ||
353 | cheetah_plus_patch_rtrap: | ||
354 | /* We configure the dTLB512_0 for 4MB pages and the | ||
355 | * dTLB512_1 for 8K pages when in context zero. | ||
356 | */ | ||
357 | sethi %hi(cplus_rinsn_1), %o0 | ||
358 | sethi %hi(cplus_rtrap_insn_1), %o2 | ||
359 | lduw [%o0 + %lo(cplus_rinsn_1)], %o1 | ||
360 | or %o2, %lo(cplus_rtrap_insn_1), %o2 | ||
361 | stw %o1, [%o2] | ||
362 | flush %o2 | ||
363 | |||
364 | retl | ||
365 | nop | ||
diff --git a/arch/sparc64/kernel/setup.c b/arch/sparc64/kernel/setup.c index 8e8baf2354df..c1f34237cdf2 100644 --- a/arch/sparc64/kernel/setup.c +++ b/arch/sparc64/kernel/setup.c | |||
@@ -187,17 +187,13 @@ int prom_callback(long *args) | |||
187 | } | 187 | } |
188 | 188 | ||
189 | if ((va >= KERNBASE) && (va < (KERNBASE + (4 * 1024 * 1024)))) { | 189 | if ((va >= KERNBASE) && (va < (KERNBASE + (4 * 1024 * 1024)))) { |
190 | unsigned long kernel_pctx = 0; | 190 | extern unsigned long sparc64_kern_pri_context; |
191 | |||
192 | if (tlb_type == cheetah_plus) | ||
193 | kernel_pctx |= (CTX_CHEETAH_PLUS_NUC | | ||
194 | CTX_CHEETAH_PLUS_CTX0); | ||
195 | 191 | ||
196 | /* Spitfire Errata #32 workaround */ | 192 | /* Spitfire Errata #32 workaround */ |
197 | __asm__ __volatile__("stxa %0, [%1] %2\n\t" | 193 | __asm__ __volatile__("stxa %0, [%1] %2\n\t" |
198 | "flush %%g6" | 194 | "flush %%g6" |
199 | : /* No outputs */ | 195 | : /* No outputs */ |
200 | : "r" (kernel_pctx), | 196 | : "r" (sparc64_kern_pri_context), |
201 | "r" (PRIMARY_CONTEXT), | 197 | "r" (PRIMARY_CONTEXT), |
202 | "i" (ASI_DMMU)); | 198 | "i" (ASI_DMMU)); |
203 | 199 | ||
@@ -464,8 +460,6 @@ static void __init boot_flags_init(char *commands) | |||
464 | } | 460 | } |
465 | } | 461 | } |
466 | 462 | ||
467 | extern int prom_probe_memory(void); | ||
468 | extern unsigned long start, end; | ||
469 | extern void panic_setup(char *, int *); | 463 | extern void panic_setup(char *, int *); |
470 | 464 | ||
471 | extern unsigned short root_flags; | 465 | extern unsigned short root_flags; |
@@ -492,12 +486,8 @@ void register_prom_callbacks(void) | |||
492 | "' linux-.soft2 to .soft2"); | 486 | "' linux-.soft2 to .soft2"); |
493 | } | 487 | } |
494 | 488 | ||
495 | extern void paging_init(void); | ||
496 | |||
497 | void __init setup_arch(char **cmdline_p) | 489 | void __init setup_arch(char **cmdline_p) |
498 | { | 490 | { |
499 | int i; | ||
500 | |||
501 | /* Initialize PROM console and command line. */ | 491 | /* Initialize PROM console and command line. */ |
502 | *cmdline_p = prom_getbootargs(); | 492 | *cmdline_p = prom_getbootargs(); |
503 | strcpy(saved_command_line, *cmdline_p); | 493 | strcpy(saved_command_line, *cmdline_p); |
@@ -516,21 +506,6 @@ void __init setup_arch(char **cmdline_p) | |||
516 | boot_flags_init(*cmdline_p); | 506 | boot_flags_init(*cmdline_p); |
517 | 507 | ||
518 | idprom_init(); | 508 | idprom_init(); |
519 | (void) prom_probe_memory(); | ||
520 | |||
521 | phys_base = 0xffffffffffffffffUL; | ||
522 | for (i = 0; sp_banks[i].num_bytes != 0; i++) { | ||
523 | unsigned long top; | ||
524 | |||
525 | if (sp_banks[i].base_addr < phys_base) | ||
526 | phys_base = sp_banks[i].base_addr; | ||
527 | top = sp_banks[i].base_addr + | ||
528 | sp_banks[i].num_bytes; | ||
529 | } | ||
530 | pfn_base = phys_base >> PAGE_SHIFT; | ||
531 | |||
532 | kern_base = (prom_boot_mapping_phys_low >> 22UL) << 22UL; | ||
533 | kern_size = (unsigned long)&_end - (unsigned long)KERNBASE; | ||
534 | 509 | ||
535 | if (!root_flags) | 510 | if (!root_flags) |
536 | root_mountflags &= ~MS_RDONLY; | 511 | root_mountflags &= ~MS_RDONLY; |
diff --git a/arch/sparc64/kernel/sys32.S b/arch/sparc64/kernel/sys32.S index 5f9e4fae612e..9cd272ac3ac1 100644 --- a/arch/sparc64/kernel/sys32.S +++ b/arch/sparc64/kernel/sys32.S | |||
@@ -157,173 +157,199 @@ sys32_socketcall: /* %o0=call, %o1=args */ | |||
157 | or %g2, %lo(__socketcall_table_begin), %g2 | 157 | or %g2, %lo(__socketcall_table_begin), %g2 |
158 | jmpl %g2 + %o0, %g0 | 158 | jmpl %g2 + %o0, %g0 |
159 | nop | 159 | nop |
160 | do_einval: | ||
161 | retl | ||
162 | mov -EINVAL, %o0 | ||
160 | 163 | ||
161 | /* Each entry is exactly 32 bytes. */ | ||
162 | .align 32 | 164 | .align 32 |
163 | __socketcall_table_begin: | 165 | __socketcall_table_begin: |
166 | |||
167 | /* Each entry is exactly 32 bytes. */ | ||
164 | do_sys_socket: /* sys_socket(int, int, int) */ | 168 | do_sys_socket: /* sys_socket(int, int, int) */ |
165 | ldswa [%o1 + 0x0] %asi, %o0 | 169 | 1: ldswa [%o1 + 0x0] %asi, %o0 |
166 | sethi %hi(sys_socket), %g1 | 170 | sethi %hi(sys_socket), %g1 |
167 | ldswa [%o1 + 0x8] %asi, %o2 | 171 | 2: ldswa [%o1 + 0x8] %asi, %o2 |
168 | jmpl %g1 + %lo(sys_socket), %g0 | 172 | jmpl %g1 + %lo(sys_socket), %g0 |
169 | ldswa [%o1 + 0x4] %asi, %o1 | 173 | 3: ldswa [%o1 + 0x4] %asi, %o1 |
170 | nop | 174 | nop |
171 | nop | 175 | nop |
172 | nop | 176 | nop |
173 | do_sys_bind: /* sys_bind(int fd, struct sockaddr *, int) */ | 177 | do_sys_bind: /* sys_bind(int fd, struct sockaddr *, int) */ |
174 | ldswa [%o1 + 0x0] %asi, %o0 | 178 | 4: ldswa [%o1 + 0x0] %asi, %o0 |
175 | sethi %hi(sys_bind), %g1 | 179 | sethi %hi(sys_bind), %g1 |
176 | ldswa [%o1 + 0x8] %asi, %o2 | 180 | 5: ldswa [%o1 + 0x8] %asi, %o2 |
177 | jmpl %g1 + %lo(sys_bind), %g0 | 181 | jmpl %g1 + %lo(sys_bind), %g0 |
178 | lduwa [%o1 + 0x4] %asi, %o1 | 182 | 6: lduwa [%o1 + 0x4] %asi, %o1 |
179 | nop | 183 | nop |
180 | nop | 184 | nop |
181 | nop | 185 | nop |
182 | do_sys_connect: /* sys_connect(int, struct sockaddr *, int) */ | 186 | do_sys_connect: /* sys_connect(int, struct sockaddr *, int) */ |
183 | ldswa [%o1 + 0x0] %asi, %o0 | 187 | 7: ldswa [%o1 + 0x0] %asi, %o0 |
184 | sethi %hi(sys_connect), %g1 | 188 | sethi %hi(sys_connect), %g1 |
185 | ldswa [%o1 + 0x8] %asi, %o2 | 189 | 8: ldswa [%o1 + 0x8] %asi, %o2 |
186 | jmpl %g1 + %lo(sys_connect), %g0 | 190 | jmpl %g1 + %lo(sys_connect), %g0 |
187 | lduwa [%o1 + 0x4] %asi, %o1 | 191 | 9: lduwa [%o1 + 0x4] %asi, %o1 |
188 | nop | 192 | nop |
189 | nop | 193 | nop |
190 | nop | 194 | nop |
191 | do_sys_listen: /* sys_listen(int, int) */ | 195 | do_sys_listen: /* sys_listen(int, int) */ |
192 | ldswa [%o1 + 0x0] %asi, %o0 | 196 | 10: ldswa [%o1 + 0x0] %asi, %o0 |
193 | sethi %hi(sys_listen), %g1 | 197 | sethi %hi(sys_listen), %g1 |
194 | jmpl %g1 + %lo(sys_listen), %g0 | 198 | jmpl %g1 + %lo(sys_listen), %g0 |
195 | ldswa [%o1 + 0x4] %asi, %o1 | 199 | 11: ldswa [%o1 + 0x4] %asi, %o1 |
196 | nop | 200 | nop |
197 | nop | 201 | nop |
198 | nop | 202 | nop |
199 | nop | 203 | nop |
200 | do_sys_accept: /* sys_accept(int, struct sockaddr *, int *) */ | 204 | do_sys_accept: /* sys_accept(int, struct sockaddr *, int *) */ |
201 | ldswa [%o1 + 0x0] %asi, %o0 | 205 | 12: ldswa [%o1 + 0x0] %asi, %o0 |
202 | sethi %hi(sys_accept), %g1 | 206 | sethi %hi(sys_accept), %g1 |
203 | lduwa [%o1 + 0x8] %asi, %o2 | 207 | 13: lduwa [%o1 + 0x8] %asi, %o2 |
204 | jmpl %g1 + %lo(sys_accept), %g0 | 208 | jmpl %g1 + %lo(sys_accept), %g0 |
205 | lduwa [%o1 + 0x4] %asi, %o1 | 209 | 14: lduwa [%o1 + 0x4] %asi, %o1 |
206 | nop | 210 | nop |
207 | nop | 211 | nop |
208 | nop | 212 | nop |
209 | do_sys_getsockname: /* sys_getsockname(int, struct sockaddr *, int *) */ | 213 | do_sys_getsockname: /* sys_getsockname(int, struct sockaddr *, int *) */ |
210 | ldswa [%o1 + 0x0] %asi, %o0 | 214 | 15: ldswa [%o1 + 0x0] %asi, %o0 |
211 | sethi %hi(sys_getsockname), %g1 | 215 | sethi %hi(sys_getsockname), %g1 |
212 | lduwa [%o1 + 0x8] %asi, %o2 | 216 | 16: lduwa [%o1 + 0x8] %asi, %o2 |
213 | jmpl %g1 + %lo(sys_getsockname), %g0 | 217 | jmpl %g1 + %lo(sys_getsockname), %g0 |
214 | lduwa [%o1 + 0x4] %asi, %o1 | 218 | 17: lduwa [%o1 + 0x4] %asi, %o1 |
215 | nop | 219 | nop |
216 | nop | 220 | nop |
217 | nop | 221 | nop |
218 | do_sys_getpeername: /* sys_getpeername(int, struct sockaddr *, int *) */ | 222 | do_sys_getpeername: /* sys_getpeername(int, struct sockaddr *, int *) */ |
219 | ldswa [%o1 + 0x0] %asi, %o0 | 223 | 18: ldswa [%o1 + 0x0] %asi, %o0 |
220 | sethi %hi(sys_getpeername), %g1 | 224 | sethi %hi(sys_getpeername), %g1 |
221 | lduwa [%o1 + 0x8] %asi, %o2 | 225 | 19: lduwa [%o1 + 0x8] %asi, %o2 |
222 | jmpl %g1 + %lo(sys_getpeername), %g0 | 226 | jmpl %g1 + %lo(sys_getpeername), %g0 |
223 | lduwa [%o1 + 0x4] %asi, %o1 | 227 | 20: lduwa [%o1 + 0x4] %asi, %o1 |
224 | nop | 228 | nop |
225 | nop | 229 | nop |
226 | nop | 230 | nop |
227 | do_sys_socketpair: /* sys_socketpair(int, int, int, int *) */ | 231 | do_sys_socketpair: /* sys_socketpair(int, int, int, int *) */ |
228 | ldswa [%o1 + 0x0] %asi, %o0 | 232 | 21: ldswa [%o1 + 0x0] %asi, %o0 |
229 | sethi %hi(sys_socketpair), %g1 | 233 | sethi %hi(sys_socketpair), %g1 |
230 | ldswa [%o1 + 0x8] %asi, %o2 | 234 | 22: ldswa [%o1 + 0x8] %asi, %o2 |
231 | lduwa [%o1 + 0xc] %asi, %o3 | 235 | 23: lduwa [%o1 + 0xc] %asi, %o3 |
232 | jmpl %g1 + %lo(sys_socketpair), %g0 | 236 | jmpl %g1 + %lo(sys_socketpair), %g0 |
233 | ldswa [%o1 + 0x4] %asi, %o1 | 237 | 24: ldswa [%o1 + 0x4] %asi, %o1 |
234 | nop | 238 | nop |
235 | nop | 239 | nop |
236 | do_sys_send: /* sys_send(int, void *, size_t, unsigned int) */ | 240 | do_sys_send: /* sys_send(int, void *, size_t, unsigned int) */ |
237 | ldswa [%o1 + 0x0] %asi, %o0 | 241 | 25: ldswa [%o1 + 0x0] %asi, %o0 |
238 | sethi %hi(sys_send), %g1 | 242 | sethi %hi(sys_send), %g1 |
239 | lduwa [%o1 + 0x8] %asi, %o2 | 243 | 26: lduwa [%o1 + 0x8] %asi, %o2 |
240 | lduwa [%o1 + 0xc] %asi, %o3 | 244 | 27: lduwa [%o1 + 0xc] %asi, %o3 |
241 | jmpl %g1 + %lo(sys_send), %g0 | 245 | jmpl %g1 + %lo(sys_send), %g0 |
242 | lduwa [%o1 + 0x4] %asi, %o1 | 246 | 28: lduwa [%o1 + 0x4] %asi, %o1 |
243 | nop | 247 | nop |
244 | nop | 248 | nop |
245 | do_sys_recv: /* sys_recv(int, void *, size_t, unsigned int) */ | 249 | do_sys_recv: /* sys_recv(int, void *, size_t, unsigned int) */ |
246 | ldswa [%o1 + 0x0] %asi, %o0 | 250 | 29: ldswa [%o1 + 0x0] %asi, %o0 |
247 | sethi %hi(sys_recv), %g1 | 251 | sethi %hi(sys_recv), %g1 |
248 | lduwa [%o1 + 0x8] %asi, %o2 | 252 | 30: lduwa [%o1 + 0x8] %asi, %o2 |
249 | lduwa [%o1 + 0xc] %asi, %o3 | 253 | 31: lduwa [%o1 + 0xc] %asi, %o3 |
250 | jmpl %g1 + %lo(sys_recv), %g0 | 254 | jmpl %g1 + %lo(sys_recv), %g0 |
251 | lduwa [%o1 + 0x4] %asi, %o1 | 255 | 32: lduwa [%o1 + 0x4] %asi, %o1 |
252 | nop | 256 | nop |
253 | nop | 257 | nop |
254 | do_sys_sendto: /* sys_sendto(int, u32, compat_size_t, unsigned int, u32, int) */ | 258 | do_sys_sendto: /* sys_sendto(int, u32, compat_size_t, unsigned int, u32, int) */ |
255 | ldswa [%o1 + 0x0] %asi, %o0 | 259 | 33: ldswa [%o1 + 0x0] %asi, %o0 |
256 | sethi %hi(sys_sendto), %g1 | 260 | sethi %hi(sys_sendto), %g1 |
257 | lduwa [%o1 + 0x8] %asi, %o2 | 261 | 34: lduwa [%o1 + 0x8] %asi, %o2 |
258 | lduwa [%o1 + 0xc] %asi, %o3 | 262 | 35: lduwa [%o1 + 0xc] %asi, %o3 |
259 | lduwa [%o1 + 0x10] %asi, %o4 | 263 | 36: lduwa [%o1 + 0x10] %asi, %o4 |
260 | ldswa [%o1 + 0x14] %asi, %o5 | 264 | 37: ldswa [%o1 + 0x14] %asi, %o5 |
261 | jmpl %g1 + %lo(sys_sendto), %g0 | 265 | jmpl %g1 + %lo(sys_sendto), %g0 |
262 | lduwa [%o1 + 0x4] %asi, %o1 | 266 | 38: lduwa [%o1 + 0x4] %asi, %o1 |
263 | do_sys_recvfrom: /* sys_recvfrom(int, u32, compat_size_t, unsigned int, u32, u32) */ | 267 | do_sys_recvfrom: /* sys_recvfrom(int, u32, compat_size_t, unsigned int, u32, u32) */ |
264 | ldswa [%o1 + 0x0] %asi, %o0 | 268 | 39: ldswa [%o1 + 0x0] %asi, %o0 |
265 | sethi %hi(sys_recvfrom), %g1 | 269 | sethi %hi(sys_recvfrom), %g1 |
266 | lduwa [%o1 + 0x8] %asi, %o2 | 270 | 40: lduwa [%o1 + 0x8] %asi, %o2 |
267 | lduwa [%o1 + 0xc] %asi, %o3 | 271 | 41: lduwa [%o1 + 0xc] %asi, %o3 |
268 | lduwa [%o1 + 0x10] %asi, %o4 | 272 | 42: lduwa [%o1 + 0x10] %asi, %o4 |
269 | lduwa [%o1 + 0x14] %asi, %o5 | 273 | 43: lduwa [%o1 + 0x14] %asi, %o5 |
270 | jmpl %g1 + %lo(sys_recvfrom), %g0 | 274 | jmpl %g1 + %lo(sys_recvfrom), %g0 |
271 | lduwa [%o1 + 0x4] %asi, %o1 | 275 | 44: lduwa [%o1 + 0x4] %asi, %o1 |
272 | do_sys_shutdown: /* sys_shutdown(int, int) */ | 276 | do_sys_shutdown: /* sys_shutdown(int, int) */ |
273 | ldswa [%o1 + 0x0] %asi, %o0 | 277 | 45: ldswa [%o1 + 0x0] %asi, %o0 |
274 | sethi %hi(sys_shutdown), %g1 | 278 | sethi %hi(sys_shutdown), %g1 |
275 | jmpl %g1 + %lo(sys_shutdown), %g0 | 279 | jmpl %g1 + %lo(sys_shutdown), %g0 |
276 | ldswa [%o1 + 0x4] %asi, %o1 | 280 | 46: ldswa [%o1 + 0x4] %asi, %o1 |
277 | nop | 281 | nop |
278 | nop | 282 | nop |
279 | nop | 283 | nop |
280 | nop | 284 | nop |
281 | do_sys_setsockopt: /* compat_sys_setsockopt(int, int, int, char *, int) */ | 285 | do_sys_setsockopt: /* compat_sys_setsockopt(int, int, int, char *, int) */ |
282 | ldswa [%o1 + 0x0] %asi, %o0 | 286 | 47: ldswa [%o1 + 0x0] %asi, %o0 |
283 | sethi %hi(compat_sys_setsockopt), %g1 | 287 | sethi %hi(compat_sys_setsockopt), %g1 |
284 | ldswa [%o1 + 0x8] %asi, %o2 | 288 | 48: ldswa [%o1 + 0x8] %asi, %o2 |
285 | lduwa [%o1 + 0xc] %asi, %o3 | 289 | 49: lduwa [%o1 + 0xc] %asi, %o3 |
286 | ldswa [%o1 + 0x10] %asi, %o4 | 290 | 50: ldswa [%o1 + 0x10] %asi, %o4 |
287 | jmpl %g1 + %lo(compat_sys_setsockopt), %g0 | 291 | jmpl %g1 + %lo(compat_sys_setsockopt), %g0 |
288 | ldswa [%o1 + 0x4] %asi, %o1 | 292 | 51: ldswa [%o1 + 0x4] %asi, %o1 |
289 | nop | 293 | nop |
290 | do_sys_getsockopt: /* compat_sys_getsockopt(int, int, int, u32, u32) */ | 294 | do_sys_getsockopt: /* compat_sys_getsockopt(int, int, int, u32, u32) */ |
291 | ldswa [%o1 + 0x0] %asi, %o0 | 295 | 52: ldswa [%o1 + 0x0] %asi, %o0 |
292 | sethi %hi(compat_sys_getsockopt), %g1 | 296 | sethi %hi(compat_sys_getsockopt), %g1 |
293 | ldswa [%o1 + 0x8] %asi, %o2 | 297 | 53: ldswa [%o1 + 0x8] %asi, %o2 |
294 | lduwa [%o1 + 0xc] %asi, %o3 | 298 | 54: lduwa [%o1 + 0xc] %asi, %o3 |
295 | lduwa [%o1 + 0x10] %asi, %o4 | 299 | 55: lduwa [%o1 + 0x10] %asi, %o4 |
296 | jmpl %g1 + %lo(compat_sys_getsockopt), %g0 | 300 | jmpl %g1 + %lo(compat_sys_getsockopt), %g0 |
297 | ldswa [%o1 + 0x4] %asi, %o1 | 301 | 56: ldswa [%o1 + 0x4] %asi, %o1 |
298 | nop | 302 | nop |
299 | do_sys_sendmsg: /* compat_sys_sendmsg(int, struct compat_msghdr *, unsigned int) */ | 303 | do_sys_sendmsg: /* compat_sys_sendmsg(int, struct compat_msghdr *, unsigned int) */ |
300 | ldswa [%o1 + 0x0] %asi, %o0 | 304 | 57: ldswa [%o1 + 0x0] %asi, %o0 |
301 | sethi %hi(compat_sys_sendmsg), %g1 | 305 | sethi %hi(compat_sys_sendmsg), %g1 |
302 | lduwa [%o1 + 0x8] %asi, %o2 | 306 | 58: lduwa [%o1 + 0x8] %asi, %o2 |
303 | jmpl %g1 + %lo(compat_sys_sendmsg), %g0 | 307 | jmpl %g1 + %lo(compat_sys_sendmsg), %g0 |
304 | lduwa [%o1 + 0x4] %asi, %o1 | 308 | 59: lduwa [%o1 + 0x4] %asi, %o1 |
305 | nop | 309 | nop |
306 | nop | 310 | nop |
307 | nop | 311 | nop |
308 | do_sys_recvmsg: /* compat_sys_recvmsg(int, struct compat_msghdr *, unsigned int) */ | 312 | do_sys_recvmsg: /* compat_sys_recvmsg(int, struct compat_msghdr *, unsigned int) */ |
309 | ldswa [%o1 + 0x0] %asi, %o0 | 313 | 60: ldswa [%o1 + 0x0] %asi, %o0 |
310 | sethi %hi(compat_sys_recvmsg), %g1 | 314 | sethi %hi(compat_sys_recvmsg), %g1 |
311 | lduwa [%o1 + 0x8] %asi, %o2 | 315 | 61: lduwa [%o1 + 0x8] %asi, %o2 |
312 | jmpl %g1 + %lo(compat_sys_recvmsg), %g0 | 316 | jmpl %g1 + %lo(compat_sys_recvmsg), %g0 |
313 | lduwa [%o1 + 0x4] %asi, %o1 | 317 | 62: lduwa [%o1 + 0x4] %asi, %o1 |
314 | nop | 318 | nop |
315 | nop | 319 | nop |
316 | nop | 320 | nop |
317 | __socketcall_table_end: | ||
318 | |||
319 | do_einval: | ||
320 | retl | ||
321 | mov -EINVAL, %o0 | ||
322 | do_efault: | ||
323 | retl | ||
324 | mov -EFAULT, %o0 | ||
325 | 321 | ||
326 | .section __ex_table | 322 | .section __ex_table |
327 | .align 4 | 323 | .align 4 |
328 | .word __socketcall_table_begin, 0, __socketcall_table_end, do_efault | 324 | .word 1b, __retl_efault, 2b, __retl_efault |
325 | .word 3b, __retl_efault, 4b, __retl_efault | ||
326 | .word 5b, __retl_efault, 6b, __retl_efault | ||
327 | .word 7b, __retl_efault, 8b, __retl_efault | ||
328 | .word 9b, __retl_efault, 10b, __retl_efault | ||
329 | .word 11b, __retl_efault, 12b, __retl_efault | ||
330 | .word 13b, __retl_efault, 14b, __retl_efault | ||
331 | .word 15b, __retl_efault, 16b, __retl_efault | ||
332 | .word 17b, __retl_efault, 18b, __retl_efault | ||
333 | .word 19b, __retl_efault, 20b, __retl_efault | ||
334 | .word 21b, __retl_efault, 22b, __retl_efault | ||
335 | .word 23b, __retl_efault, 24b, __retl_efault | ||
336 | .word 25b, __retl_efault, 26b, __retl_efault | ||
337 | .word 27b, __retl_efault, 28b, __retl_efault | ||
338 | .word 29b, __retl_efault, 30b, __retl_efault | ||
339 | .word 31b, __retl_efault, 32b, __retl_efault | ||
340 | .word 33b, __retl_efault, 34b, __retl_efault | ||
341 | .word 35b, __retl_efault, 36b, __retl_efault | ||
342 | .word 37b, __retl_efault, 38b, __retl_efault | ||
343 | .word 39b, __retl_efault, 40b, __retl_efault | ||
344 | .word 41b, __retl_efault, 42b, __retl_efault | ||
345 | .word 43b, __retl_efault, 44b, __retl_efault | ||
346 | .word 45b, __retl_efault, 46b, __retl_efault | ||
347 | .word 47b, __retl_efault, 48b, __retl_efault | ||
348 | .word 49b, __retl_efault, 50b, __retl_efault | ||
349 | .word 51b, __retl_efault, 52b, __retl_efault | ||
350 | .word 53b, __retl_efault, 54b, __retl_efault | ||
351 | .word 55b, __retl_efault, 56b, __retl_efault | ||
352 | .word 57b, __retl_efault, 58b, __retl_efault | ||
353 | .word 59b, __retl_efault, 60b, __retl_efault | ||
354 | .word 61b, __retl_efault, 62b, __retl_efault | ||
329 | .previous | 355 | .previous |
diff --git a/arch/sparc64/kernel/trampoline.S b/arch/sparc64/kernel/trampoline.S index 89f2fcfcd662..9478551cb020 100644 --- a/arch/sparc64/kernel/trampoline.S +++ b/arch/sparc64/kernel/trampoline.S | |||
@@ -336,20 +336,13 @@ do_unlock: | |||
336 | call init_irqwork_curcpu | 336 | call init_irqwork_curcpu |
337 | nop | 337 | nop |
338 | 338 | ||
339 | BRANCH_IF_CHEETAH_PLUS_OR_FOLLOWON(g2,g3,1f) | 339 | /* Start using proper page size encodings in ctx register. */ |
340 | ba,pt %xcc, 2f | 340 | sethi %hi(sparc64_kern_pri_context), %g3 |
341 | nop | 341 | ldx [%g3 + %lo(sparc64_kern_pri_context)], %g2 |
342 | |||
343 | 1: /* Start using proper page size encodings in ctx register. */ | ||
344 | sethi %uhi(CTX_CHEETAH_PLUS_NUC), %g3 | ||
345 | mov PRIMARY_CONTEXT, %g1 | 342 | mov PRIMARY_CONTEXT, %g1 |
346 | sllx %g3, 32, %g3 | 343 | stxa %g2, [%g1] ASI_DMMU |
347 | sethi %hi(CTX_CHEETAH_PLUS_CTX0), %g2 | ||
348 | or %g3, %g2, %g3 | ||
349 | stxa %g3, [%g1] ASI_DMMU | ||
350 | membar #Sync | 344 | membar #Sync |
351 | 345 | ||
352 | 2: | ||
353 | rdpr %pstate, %o1 | 346 | rdpr %pstate, %o1 |
354 | or %o1, PSTATE_IE, %o1 | 347 | or %o1, PSTATE_IE, %o1 |
355 | wrpr %o1, 0, %pstate | 348 | wrpr %o1, 0, %pstate |
diff --git a/arch/sparc64/kernel/traps.c b/arch/sparc64/kernel/traps.c index f8e7005fede9..5570e7bb22bb 100644 --- a/arch/sparc64/kernel/traps.c +++ b/arch/sparc64/kernel/traps.c | |||
@@ -189,19 +189,18 @@ void spitfire_data_access_exception(struct pt_regs *regs, unsigned long sfsr, un | |||
189 | 189 | ||
190 | if (regs->tstate & TSTATE_PRIV) { | 190 | if (regs->tstate & TSTATE_PRIV) { |
191 | /* Test if this comes from uaccess places. */ | 191 | /* Test if this comes from uaccess places. */ |
192 | unsigned long fixup; | 192 | const struct exception_table_entry *entry; |
193 | unsigned long g2 = regs->u_regs[UREG_G2]; | ||
194 | 193 | ||
195 | if ((fixup = search_extables_range(regs->tpc, &g2))) { | 194 | entry = search_exception_tables(regs->tpc); |
196 | /* Ouch, somebody is trying ugly VM hole tricks on us... */ | 195 | if (entry) { |
196 | /* Ouch, somebody is trying VM hole tricks on us... */ | ||
197 | #ifdef DEBUG_EXCEPTIONS | 197 | #ifdef DEBUG_EXCEPTIONS |
198 | printk("Exception: PC<%016lx> faddr<UNKNOWN>\n", regs->tpc); | 198 | printk("Exception: PC<%016lx> faddr<UNKNOWN>\n", regs->tpc); |
199 | printk("EX_TABLE: insn<%016lx> fixup<%016lx> " | 199 | printk("EX_TABLE: insn<%016lx> fixup<%016lx>\n", |
200 | "g2<%016lx>\n", regs->tpc, fixup, g2); | 200 | regs->tpc, entry->fixup); |
201 | #endif | 201 | #endif |
202 | regs->tpc = fixup; | 202 | regs->tpc = entry->fixup; |
203 | regs->tnpc = regs->tpc + 4; | 203 | regs->tnpc = regs->tpc + 4; |
204 | regs->u_regs[UREG_G2] = g2; | ||
205 | return; | 204 | return; |
206 | } | 205 | } |
207 | /* Shit... */ | 206 | /* Shit... */ |
@@ -758,26 +757,12 @@ void __init cheetah_ecache_flush_init(void) | |||
758 | ecache_flush_size = (2 * largest_size); | 757 | ecache_flush_size = (2 * largest_size); |
759 | ecache_flush_linesize = smallest_linesize; | 758 | ecache_flush_linesize = smallest_linesize; |
760 | 759 | ||
761 | /* Discover a physically contiguous chunk of physical | 760 | ecache_flush_physbase = find_ecache_flush_span(ecache_flush_size); |
762 | * memory in 'sp_banks' of size ecache_flush_size calculated | ||
763 | * above. Store the physical base of this area at | ||
764 | * ecache_flush_physbase. | ||
765 | */ | ||
766 | for (node = 0; ; node++) { | ||
767 | if (sp_banks[node].num_bytes == 0) | ||
768 | break; | ||
769 | if (sp_banks[node].num_bytes >= ecache_flush_size) { | ||
770 | ecache_flush_physbase = sp_banks[node].base_addr; | ||
771 | break; | ||
772 | } | ||
773 | } | ||
774 | 761 | ||
775 | /* Note: Zero would be a valid value of ecache_flush_physbase so | 762 | if (ecache_flush_physbase == ~0UL) { |
776 | * don't use that as the success test. :-) | ||
777 | */ | ||
778 | if (sp_banks[node].num_bytes == 0) { | ||
779 | prom_printf("cheetah_ecache_flush_init: Cannot find %d byte " | 763 | prom_printf("cheetah_ecache_flush_init: Cannot find %d byte " |
780 | "contiguous physical memory.\n", ecache_flush_size); | 764 | "contiguous physical memory.\n", |
765 | ecache_flush_size); | ||
781 | prom_halt(); | 766 | prom_halt(); |
782 | } | 767 | } |
783 | 768 | ||
@@ -1346,16 +1331,12 @@ static int cheetah_fix_ce(unsigned long physaddr) | |||
1346 | /* Return non-zero if PADDR is a valid physical memory address. */ | 1331 | /* Return non-zero if PADDR is a valid physical memory address. */ |
1347 | static int cheetah_check_main_memory(unsigned long paddr) | 1332 | static int cheetah_check_main_memory(unsigned long paddr) |
1348 | { | 1333 | { |
1349 | int i; | 1334 | unsigned long vaddr = PAGE_OFFSET + paddr; |
1350 | 1335 | ||
1351 | for (i = 0; ; i++) { | 1336 | if (vaddr > (unsigned long) high_memory) |
1352 | if (sp_banks[i].num_bytes == 0) | 1337 | return 0; |
1353 | break; | 1338 | |
1354 | if (paddr >= sp_banks[i].base_addr && | 1339 | return kern_addr_valid(vaddr); |
1355 | paddr < (sp_banks[i].base_addr + sp_banks[i].num_bytes)) | ||
1356 | return 1; | ||
1357 | } | ||
1358 | return 0; | ||
1359 | } | 1340 | } |
1360 | 1341 | ||
1361 | void cheetah_cee_handler(struct pt_regs *regs, unsigned long afsr, unsigned long afar) | 1342 | void cheetah_cee_handler(struct pt_regs *regs, unsigned long afsr, unsigned long afar) |
@@ -1610,10 +1591,10 @@ void cheetah_deferred_handler(struct pt_regs *regs, unsigned long afsr, unsigned | |||
1610 | /* OK, usermode access. */ | 1591 | /* OK, usermode access. */ |
1611 | recoverable = 1; | 1592 | recoverable = 1; |
1612 | } else { | 1593 | } else { |
1613 | unsigned long g2 = regs->u_regs[UREG_G2]; | 1594 | const struct exception_table_entry *entry; |
1614 | unsigned long fixup = search_extables_range(regs->tpc, &g2); | ||
1615 | 1595 | ||
1616 | if (fixup != 0UL) { | 1596 | entry = search_exception_tables(regs->tpc); |
1597 | if (entry) { | ||
1617 | /* OK, kernel access to userspace. */ | 1598 | /* OK, kernel access to userspace. */ |
1618 | recoverable = 1; | 1599 | recoverable = 1; |
1619 | 1600 | ||
@@ -1632,9 +1613,8 @@ void cheetah_deferred_handler(struct pt_regs *regs, unsigned long afsr, unsigned | |||
1632 | * recoverable condition. | 1613 | * recoverable condition. |
1633 | */ | 1614 | */ |
1634 | if (recoverable) { | 1615 | if (recoverable) { |
1635 | regs->tpc = fixup; | 1616 | regs->tpc = entry->fixup; |
1636 | regs->tnpc = regs->tpc + 4; | 1617 | regs->tnpc = regs->tpc + 4; |
1637 | regs->u_regs[UREG_G2] = g2; | ||
1638 | } | 1618 | } |
1639 | } | 1619 | } |
1640 | } | 1620 | } |
diff --git a/arch/sparc64/kernel/una_asm.S b/arch/sparc64/kernel/una_asm.S index da48400bcc95..1f5b5b708ce7 100644 --- a/arch/sparc64/kernel/una_asm.S +++ b/arch/sparc64/kernel/una_asm.S | |||
@@ -6,13 +6,6 @@ | |||
6 | 6 | ||
7 | .text | 7 | .text |
8 | 8 | ||
9 | kernel_unaligned_trap_fault: | ||
10 | call kernel_mna_trap_fault | ||
11 | nop | ||
12 | retl | ||
13 | nop | ||
14 | .size kern_unaligned_trap_fault, .-kern_unaligned_trap_fault | ||
15 | |||
16 | .globl __do_int_store | 9 | .globl __do_int_store |
17 | __do_int_store: | 10 | __do_int_store: |
18 | rd %asi, %o4 | 11 | rd %asi, %o4 |
@@ -51,24 +44,24 @@ __do_int_store: | |||
51 | 0: | 44 | 0: |
52 | wr %o4, 0x0, %asi | 45 | wr %o4, 0x0, %asi |
53 | retl | 46 | retl |
54 | nop | 47 | mov 0, %o0 |
55 | .size __do_int_store, .-__do_int_store | 48 | .size __do_int_store, .-__do_int_store |
56 | 49 | ||
57 | .section __ex_table | 50 | .section __ex_table |
58 | .word 4b, kernel_unaligned_trap_fault | 51 | .word 4b, __retl_efault |
59 | .word 5b, kernel_unaligned_trap_fault | 52 | .word 5b, __retl_efault |
60 | .word 6b, kernel_unaligned_trap_fault | 53 | .word 6b, __retl_efault |
61 | .word 7b, kernel_unaligned_trap_fault | 54 | .word 7b, __retl_efault |
62 | .word 8b, kernel_unaligned_trap_fault | 55 | .word 8b, __retl_efault |
63 | .word 9b, kernel_unaligned_trap_fault | 56 | .word 9b, __retl_efault |
64 | .word 10b, kernel_unaligned_trap_fault | 57 | .word 10b, __retl_efault |
65 | .word 11b, kernel_unaligned_trap_fault | 58 | .word 11b, __retl_efault |
66 | .word 12b, kernel_unaligned_trap_fault | 59 | .word 12b, __retl_efault |
67 | .word 13b, kernel_unaligned_trap_fault | 60 | .word 13b, __retl_efault |
68 | .word 14b, kernel_unaligned_trap_fault | 61 | .word 14b, __retl_efault |
69 | .word 15b, kernel_unaligned_trap_fault | 62 | .word 15b, __retl_efault |
70 | .word 16b, kernel_unaligned_trap_fault | 63 | .word 16b, __retl_efault |
71 | .word 17b, kernel_unaligned_trap_fault | 64 | .word 17b, __retl_efault |
72 | .previous | 65 | .previous |
73 | 66 | ||
74 | .globl do_int_load | 67 | .globl do_int_load |
@@ -133,21 +126,21 @@ do_int_load: | |||
133 | 0: | 126 | 0: |
134 | wr %o5, 0x0, %asi | 127 | wr %o5, 0x0, %asi |
135 | retl | 128 | retl |
136 | nop | 129 | mov 0, %o0 |
137 | .size __do_int_load, .-__do_int_load | 130 | .size __do_int_load, .-__do_int_load |
138 | 131 | ||
139 | .section __ex_table | 132 | .section __ex_table |
140 | .word 4b, kernel_unaligned_trap_fault | 133 | .word 4b, __retl_efault |
141 | .word 5b, kernel_unaligned_trap_fault | 134 | .word 5b, __retl_efault |
142 | .word 6b, kernel_unaligned_trap_fault | 135 | .word 6b, __retl_efault |
143 | .word 7b, kernel_unaligned_trap_fault | 136 | .word 7b, __retl_efault |
144 | .word 8b, kernel_unaligned_trap_fault | 137 | .word 8b, __retl_efault |
145 | .word 9b, kernel_unaligned_trap_fault | 138 | .word 9b, __retl_efault |
146 | .word 10b, kernel_unaligned_trap_fault | 139 | .word 10b, __retl_efault |
147 | .word 11b, kernel_unaligned_trap_fault | 140 | .word 11b, __retl_efault |
148 | .word 12b, kernel_unaligned_trap_fault | 141 | .word 12b, __retl_efault |
149 | .word 13b, kernel_unaligned_trap_fault | 142 | .word 13b, __retl_efault |
150 | .word 14b, kernel_unaligned_trap_fault | 143 | .word 14b, __retl_efault |
151 | .word 15b, kernel_unaligned_trap_fault | 144 | .word 15b, __retl_efault |
152 | .word 16b, kernel_unaligned_trap_fault | 145 | .word 16b, __retl_efault |
153 | .previous | 146 | .previous |
diff --git a/arch/sparc64/kernel/unaligned.c b/arch/sparc64/kernel/unaligned.c index 42718f6a7d36..70faf630603b 100644 --- a/arch/sparc64/kernel/unaligned.c +++ b/arch/sparc64/kernel/unaligned.c | |||
@@ -180,14 +180,14 @@ static void __attribute_used__ unaligned_panic(char *str, struct pt_regs *regs) | |||
180 | die_if_kernel(str, regs); | 180 | die_if_kernel(str, regs); |
181 | } | 181 | } |
182 | 182 | ||
183 | extern void do_int_load(unsigned long *dest_reg, int size, | 183 | extern int do_int_load(unsigned long *dest_reg, int size, |
184 | unsigned long *saddr, int is_signed, int asi); | 184 | unsigned long *saddr, int is_signed, int asi); |
185 | 185 | ||
186 | extern void __do_int_store(unsigned long *dst_addr, int size, | 186 | extern int __do_int_store(unsigned long *dst_addr, int size, |
187 | unsigned long src_val, int asi); | 187 | unsigned long src_val, int asi); |
188 | 188 | ||
189 | static inline void do_int_store(int reg_num, int size, unsigned long *dst_addr, | 189 | static inline int do_int_store(int reg_num, int size, unsigned long *dst_addr, |
190 | struct pt_regs *regs, int asi, int orig_asi) | 190 | struct pt_regs *regs, int asi, int orig_asi) |
191 | { | 191 | { |
192 | unsigned long zero = 0; | 192 | unsigned long zero = 0; |
193 | unsigned long *src_val_p = &zero; | 193 | unsigned long *src_val_p = &zero; |
@@ -219,7 +219,7 @@ static inline void do_int_store(int reg_num, int size, unsigned long *dst_addr, | |||
219 | break; | 219 | break; |
220 | }; | 220 | }; |
221 | } | 221 | } |
222 | __do_int_store(dst_addr, size, src_val, asi); | 222 | return __do_int_store(dst_addr, size, src_val, asi); |
223 | } | 223 | } |
224 | 224 | ||
225 | static inline void advance(struct pt_regs *regs) | 225 | static inline void advance(struct pt_regs *regs) |
@@ -242,14 +242,14 @@ static inline int ok_for_kernel(unsigned int insn) | |||
242 | return !floating_point_load_or_store_p(insn); | 242 | return !floating_point_load_or_store_p(insn); |
243 | } | 243 | } |
244 | 244 | ||
245 | void kernel_mna_trap_fault(void) | 245 | static void kernel_mna_trap_fault(void) |
246 | { | 246 | { |
247 | struct pt_regs *regs = current_thread_info()->kern_una_regs; | 247 | struct pt_regs *regs = current_thread_info()->kern_una_regs; |
248 | unsigned int insn = current_thread_info()->kern_una_insn; | 248 | unsigned int insn = current_thread_info()->kern_una_insn; |
249 | unsigned long g2 = regs->u_regs[UREG_G2]; | 249 | const struct exception_table_entry *entry; |
250 | unsigned long fixup = search_extables_range(regs->tpc, &g2); | ||
251 | 250 | ||
252 | if (!fixup) { | 251 | entry = search_exception_tables(regs->tpc); |
252 | if (!entry) { | ||
253 | unsigned long address; | 253 | unsigned long address; |
254 | 254 | ||
255 | address = compute_effective_address(regs, insn, | 255 | address = compute_effective_address(regs, insn, |
@@ -270,9 +270,8 @@ void kernel_mna_trap_fault(void) | |||
270 | die_if_kernel("Oops", regs); | 270 | die_if_kernel("Oops", regs); |
271 | /* Not reached */ | 271 | /* Not reached */ |
272 | } | 272 | } |
273 | regs->tpc = fixup; | 273 | regs->tpc = entry->fixup; |
274 | regs->tnpc = regs->tpc + 4; | 274 | regs->tnpc = regs->tpc + 4; |
275 | regs->u_regs [UREG_G2] = g2; | ||
276 | 275 | ||
277 | regs->tstate &= ~TSTATE_ASI; | 276 | regs->tstate &= ~TSTATE_ASI; |
278 | regs->tstate |= (ASI_AIUS << 24UL); | 277 | regs->tstate |= (ASI_AIUS << 24UL); |
@@ -294,8 +293,8 @@ asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn, u | |||
294 | 293 | ||
295 | kernel_mna_trap_fault(); | 294 | kernel_mna_trap_fault(); |
296 | } else { | 295 | } else { |
297 | unsigned long addr; | 296 | unsigned long addr, *reg_addr; |
298 | int orig_asi, asi; | 297 | int orig_asi, asi, err; |
299 | 298 | ||
300 | addr = compute_effective_address(regs, insn, | 299 | addr = compute_effective_address(regs, insn, |
301 | ((insn >> 25) & 0x1f)); | 300 | ((insn >> 25) & 0x1f)); |
@@ -319,11 +318,12 @@ asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn, u | |||
319 | }; | 318 | }; |
320 | switch (dir) { | 319 | switch (dir) { |
321 | case load: | 320 | case load: |
322 | do_int_load(fetch_reg_addr(((insn>>25)&0x1f), regs), | 321 | reg_addr = fetch_reg_addr(((insn>>25)&0x1f), regs); |
323 | size, (unsigned long *) addr, | 322 | err = do_int_load(reg_addr, size, |
324 | decode_signedness(insn), asi); | 323 | (unsigned long *) addr, |
325 | if (unlikely(asi != orig_asi)) { | 324 | decode_signedness(insn), asi); |
326 | unsigned long val_in = *(unsigned long *) addr; | 325 | if (likely(!err) && unlikely(asi != orig_asi)) { |
326 | unsigned long val_in = *reg_addr; | ||
327 | switch (size) { | 327 | switch (size) { |
328 | case 2: | 328 | case 2: |
329 | val_in = swab16(val_in); | 329 | val_in = swab16(val_in); |
@@ -339,21 +339,24 @@ asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn, u | |||
339 | BUG(); | 339 | BUG(); |
340 | break; | 340 | break; |
341 | }; | 341 | }; |
342 | *(unsigned long *) addr = val_in; | 342 | *reg_addr = val_in; |
343 | } | 343 | } |
344 | break; | 344 | break; |
345 | 345 | ||
346 | case store: | 346 | case store: |
347 | do_int_store(((insn>>25)&0x1f), size, | 347 | err = do_int_store(((insn>>25)&0x1f), size, |
348 | (unsigned long *) addr, regs, | 348 | (unsigned long *) addr, regs, |
349 | asi, orig_asi); | 349 | asi, orig_asi); |
350 | break; | 350 | break; |
351 | 351 | ||
352 | default: | 352 | default: |
353 | panic("Impossible kernel unaligned trap."); | 353 | panic("Impossible kernel unaligned trap."); |
354 | /* Not reached... */ | 354 | /* Not reached... */ |
355 | } | 355 | } |
356 | advance(regs); | 356 | if (unlikely(err)) |
357 | kernel_mna_trap_fault(); | ||
358 | else | ||
359 | advance(regs); | ||
357 | } | 360 | } |
358 | } | 361 | } |
359 | 362 | ||
diff --git a/arch/sparc64/kernel/us3_cpufreq.c b/arch/sparc64/kernel/us3_cpufreq.c index 9080e7cd4bb0..0340041f6143 100644 --- a/arch/sparc64/kernel/us3_cpufreq.c +++ b/arch/sparc64/kernel/us3_cpufreq.c | |||
@@ -208,7 +208,10 @@ static int __init us3_freq_init(void) | |||
208 | impl = ((ver >> 32) & 0xffff); | 208 | impl = ((ver >> 32) & 0xffff); |
209 | 209 | ||
210 | if (manuf == CHEETAH_MANUF && | 210 | if (manuf == CHEETAH_MANUF && |
211 | (impl == CHEETAH_IMPL || impl == CHEETAH_PLUS_IMPL)) { | 211 | (impl == CHEETAH_IMPL || |
212 | impl == CHEETAH_PLUS_IMPL || | ||
213 | impl == JAGUAR_IMPL || | ||
214 | impl == PANTHER_IMPL)) { | ||
212 | struct cpufreq_driver *driver; | 215 | struct cpufreq_driver *driver; |
213 | 216 | ||
214 | ret = -ENOMEM; | 217 | ret = -ENOMEM; |
diff --git a/arch/sparc64/kernel/winfixup.S b/arch/sparc64/kernel/winfixup.S index 99c809a1e5ac..39160926267b 100644 --- a/arch/sparc64/kernel/winfixup.S +++ b/arch/sparc64/kernel/winfixup.S | |||
@@ -16,23 +16,14 @@ | |||
16 | .text | 16 | .text |
17 | 17 | ||
18 | set_pcontext: | 18 | set_pcontext: |
19 | cplus_winfixup_insn_1: | 19 | sethi %hi(sparc64_kern_pri_context), %l1 |
20 | sethi %hi(0), %l1 | 20 | ldx [%l1 + %lo(sparc64_kern_pri_context)], %l1 |
21 | mov PRIMARY_CONTEXT, %g1 | 21 | mov PRIMARY_CONTEXT, %g1 |
22 | sllx %l1, 32, %l1 | ||
23 | cplus_winfixup_insn_2: | ||
24 | sethi %hi(0), %g2 | ||
25 | or %l1, %g2, %l1 | ||
26 | stxa %l1, [%g1] ASI_DMMU | 22 | stxa %l1, [%g1] ASI_DMMU |
27 | flush %g6 | 23 | flush %g6 |
28 | retl | 24 | retl |
29 | nop | 25 | nop |
30 | 26 | ||
31 | cplus_wfinsn_1: | ||
32 | sethi %uhi(CTX_CHEETAH_PLUS_NUC), %l1 | ||
33 | cplus_wfinsn_2: | ||
34 | sethi %hi(CTX_CHEETAH_PLUS_CTX0), %g2 | ||
35 | |||
36 | .align 32 | 27 | .align 32 |
37 | 28 | ||
38 | /* Here are the rules, pay attention. | 29 | /* Here are the rules, pay attention. |
@@ -395,23 +386,3 @@ window_dax_from_user_common: | |||
395 | add %sp, PTREGS_OFF, %o0 | 386 | add %sp, PTREGS_OFF, %o0 |
396 | ba,pt %xcc, rtrap | 387 | ba,pt %xcc, rtrap |
397 | clr %l6 | 388 | clr %l6 |
398 | |||
399 | |||
400 | .globl cheetah_plus_patch_winfixup | ||
401 | cheetah_plus_patch_winfixup: | ||
402 | sethi %hi(cplus_wfinsn_1), %o0 | ||
403 | sethi %hi(cplus_winfixup_insn_1), %o2 | ||
404 | lduw [%o0 + %lo(cplus_wfinsn_1)], %o1 | ||
405 | or %o2, %lo(cplus_winfixup_insn_1), %o2 | ||
406 | stw %o1, [%o2] | ||
407 | flush %o2 | ||
408 | |||
409 | sethi %hi(cplus_wfinsn_2), %o0 | ||
410 | sethi %hi(cplus_winfixup_insn_2), %o2 | ||
411 | lduw [%o0 + %lo(cplus_wfinsn_2)], %o1 | ||
412 | or %o2, %lo(cplus_winfixup_insn_2), %o2 | ||
413 | stw %o1, [%o2] | ||
414 | flush %o2 | ||
415 | |||
416 | retl | ||
417 | nop | ||
diff --git a/arch/sparc64/lib/VISsave.S b/arch/sparc64/lib/VISsave.S index 4e18989bd602..a0ded5c5aa5c 100644 --- a/arch/sparc64/lib/VISsave.S +++ b/arch/sparc64/lib/VISsave.S | |||
@@ -59,15 +59,17 @@ vis1: ldub [%g6 + TI_FPSAVED], %g3 | |||
59 | be,pn %icc, 9b | 59 | be,pn %icc, 9b |
60 | add %g6, TI_FPREGS, %g2 | 60 | add %g6, TI_FPREGS, %g2 |
61 | andcc %o5, FPRS_DL, %g0 | 61 | andcc %o5, FPRS_DL, %g0 |
62 | membar #StoreStore | #LoadStore | ||
63 | 62 | ||
64 | be,pn %icc, 4f | 63 | be,pn %icc, 4f |
65 | add %g6, TI_FPREGS+0x40, %g3 | 64 | add %g6, TI_FPREGS+0x40, %g3 |
65 | membar #Sync | ||
66 | stda %f0, [%g2 + %g1] ASI_BLK_P | 66 | stda %f0, [%g2 + %g1] ASI_BLK_P |
67 | stda %f16, [%g3 + %g1] ASI_BLK_P | 67 | stda %f16, [%g3 + %g1] ASI_BLK_P |
68 | membar #Sync | ||
68 | andcc %o5, FPRS_DU, %g0 | 69 | andcc %o5, FPRS_DU, %g0 |
69 | be,pn %icc, 5f | 70 | be,pn %icc, 5f |
70 | 4: add %g1, 128, %g1 | 71 | 4: add %g1, 128, %g1 |
72 | membar #Sync | ||
71 | stda %f32, [%g2 + %g1] ASI_BLK_P | 73 | stda %f32, [%g2 + %g1] ASI_BLK_P |
72 | 74 | ||
73 | stda %f48, [%g3 + %g1] ASI_BLK_P | 75 | stda %f48, [%g3 + %g1] ASI_BLK_P |
@@ -87,7 +89,7 @@ vis1: ldub [%g6 + TI_FPSAVED], %g3 | |||
87 | sll %g1, 5, %g1 | 89 | sll %g1, 5, %g1 |
88 | add %g6, TI_FPREGS+0xc0, %g3 | 90 | add %g6, TI_FPREGS+0xc0, %g3 |
89 | wr %g0, FPRS_FEF, %fprs | 91 | wr %g0, FPRS_FEF, %fprs |
90 | membar #StoreStore | #LoadStore | 92 | membar #Sync |
91 | stda %f32, [%g2 + %g1] ASI_BLK_P | 93 | stda %f32, [%g2 + %g1] ASI_BLK_P |
92 | stda %f48, [%g3 + %g1] ASI_BLK_P | 94 | stda %f48, [%g3 + %g1] ASI_BLK_P |
93 | membar #Sync | 95 | membar #Sync |
@@ -128,8 +130,8 @@ VISenterhalf: | |||
128 | be,pn %icc, 4f | 130 | be,pn %icc, 4f |
129 | add %g6, TI_FPREGS, %g2 | 131 | add %g6, TI_FPREGS, %g2 |
130 | 132 | ||
131 | membar #StoreStore | #LoadStore | ||
132 | add %g6, TI_FPREGS+0x40, %g3 | 133 | add %g6, TI_FPREGS+0x40, %g3 |
134 | membar #Sync | ||
133 | stda %f0, [%g2 + %g1] ASI_BLK_P | 135 | stda %f0, [%g2 + %g1] ASI_BLK_P |
134 | stda %f16, [%g3 + %g1] ASI_BLK_P | 136 | stda %f16, [%g3 + %g1] ASI_BLK_P |
135 | membar #Sync | 137 | membar #Sync |
diff --git a/arch/sparc64/lib/strncpy_from_user.S b/arch/sparc64/lib/strncpy_from_user.S index 09cbbaa0ebf4..e1264650ca7a 100644 --- a/arch/sparc64/lib/strncpy_from_user.S +++ b/arch/sparc64/lib/strncpy_from_user.S | |||
@@ -125,15 +125,11 @@ __strncpy_from_user: | |||
125 | add %o2, %o3, %o0 | 125 | add %o2, %o3, %o0 |
126 | .size __strncpy_from_user, .-__strncpy_from_user | 126 | .size __strncpy_from_user, .-__strncpy_from_user |
127 | 127 | ||
128 | .section .fixup,#alloc,#execinstr | ||
129 | .align 4 | ||
130 | 4: retl | ||
131 | mov -EFAULT, %o0 | ||
132 | |||
133 | .section __ex_table,#alloc | 128 | .section __ex_table,#alloc |
134 | .align 4 | 129 | .align 4 |
135 | .word 60b, 4b | 130 | .word 60b, __retl_efault |
136 | .word 61b, 4b | 131 | .word 61b, __retl_efault |
137 | .word 62b, 4b | 132 | .word 62b, __retl_efault |
138 | .word 63b, 4b | 133 | .word 63b, __retl_efault |
139 | .word 64b, 4b | 134 | .word 64b, __retl_efault |
135 | .previous | ||
diff --git a/arch/sparc64/lib/user_fixup.c b/arch/sparc64/lib/user_fixup.c index 0278e34125db..19d1fdb17d0e 100644 --- a/arch/sparc64/lib/user_fixup.c +++ b/arch/sparc64/lib/user_fixup.c | |||
@@ -11,61 +11,56 @@ | |||
11 | 11 | ||
12 | /* Calculating the exact fault address when using | 12 | /* Calculating the exact fault address when using |
13 | * block loads and stores can be very complicated. | 13 | * block loads and stores can be very complicated. |
14 | * | ||
14 | * Instead of trying to be clever and handling all | 15 | * Instead of trying to be clever and handling all |
15 | * of the cases, just fix things up simply here. | 16 | * of the cases, just fix things up simply here. |
16 | */ | 17 | */ |
17 | 18 | ||
18 | unsigned long copy_from_user_fixup(void *to, const void __user *from, unsigned long size) | 19 | static unsigned long compute_size(unsigned long start, unsigned long size, unsigned long *offset) |
19 | { | 20 | { |
20 | char *dst = to; | 21 | unsigned long fault_addr = current_thread_info()->fault_address; |
21 | const char __user *src = from; | 22 | unsigned long end = start + size; |
22 | 23 | ||
23 | while (size) { | 24 | if (fault_addr < start || fault_addr >= end) { |
24 | if (__get_user(*dst, src)) | 25 | *offset = 0; |
25 | break; | 26 | } else { |
26 | dst++; | 27 | *offset = start - fault_addr; |
27 | src++; | 28 | size = end - fault_addr; |
28 | size--; | ||
29 | } | 29 | } |
30 | return size; | ||
31 | } | ||
30 | 32 | ||
31 | if (size) | 33 | unsigned long copy_from_user_fixup(void *to, const void __user *from, unsigned long size) |
32 | memset(dst, 0, size); | 34 | { |
35 | unsigned long offset; | ||
36 | |||
37 | size = compute_size((unsigned long) from, size, &offset); | ||
38 | if (likely(size)) | ||
39 | memset(to + offset, 0, size); | ||
33 | 40 | ||
34 | return size; | 41 | return size; |
35 | } | 42 | } |
36 | 43 | ||
37 | unsigned long copy_to_user_fixup(void __user *to, const void *from, unsigned long size) | 44 | unsigned long copy_to_user_fixup(void __user *to, const void *from, unsigned long size) |
38 | { | 45 | { |
39 | char __user *dst = to; | 46 | unsigned long offset; |
40 | const char *src = from; | ||
41 | |||
42 | while (size) { | ||
43 | if (__put_user(*src, dst)) | ||
44 | break; | ||
45 | dst++; | ||
46 | src++; | ||
47 | size--; | ||
48 | } | ||
49 | 47 | ||
50 | return size; | 48 | return compute_size((unsigned long) to, size, &offset); |
51 | } | 49 | } |
52 | 50 | ||
53 | unsigned long copy_in_user_fixup(void __user *to, void __user *from, unsigned long size) | 51 | unsigned long copy_in_user_fixup(void __user *to, void __user *from, unsigned long size) |
54 | { | 52 | { |
55 | char __user *dst = to; | 53 | unsigned long fault_addr = current_thread_info()->fault_address; |
56 | char __user *src = from; | 54 | unsigned long start = (unsigned long) to; |
55 | unsigned long end = start + size; | ||
57 | 56 | ||
58 | while (size) { | 57 | if (fault_addr >= start && fault_addr < end) |
59 | char tmp; | 58 | return end - fault_addr; |
60 | 59 | ||
61 | if (__get_user(tmp, src)) | 60 | start = (unsigned long) from; |
62 | break; | 61 | end = start + size; |
63 | if (__put_user(tmp, dst)) | 62 | if (fault_addr >= start && fault_addr < end) |
64 | break; | 63 | return end - fault_addr; |
65 | dst++; | ||
66 | src++; | ||
67 | size--; | ||
68 | } | ||
69 | 64 | ||
70 | return size; | 65 | return size; |
71 | } | 66 | } |
diff --git a/arch/sparc64/mm/Makefile b/arch/sparc64/mm/Makefile index cda87333a77b..9d0960e69f48 100644 --- a/arch/sparc64/mm/Makefile +++ b/arch/sparc64/mm/Makefile | |||
@@ -5,6 +5,6 @@ | |||
5 | EXTRA_AFLAGS := -ansi | 5 | EXTRA_AFLAGS := -ansi |
6 | EXTRA_CFLAGS := -Werror | 6 | EXTRA_CFLAGS := -Werror |
7 | 7 | ||
8 | obj-y := ultra.o tlb.o fault.o init.o generic.o extable.o | 8 | obj-y := ultra.o tlb.o fault.o init.o generic.o |
9 | 9 | ||
10 | obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o | 10 | obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o |
diff --git a/arch/sparc64/mm/extable.c b/arch/sparc64/mm/extable.c deleted file mode 100644 index ec334297ff4f..000000000000 --- a/arch/sparc64/mm/extable.c +++ /dev/null | |||
@@ -1,80 +0,0 @@ | |||
1 | /* | ||
2 | * linux/arch/sparc64/mm/extable.c | ||
3 | */ | ||
4 | |||
5 | #include <linux/config.h> | ||
6 | #include <linux/module.h> | ||
7 | #include <asm/uaccess.h> | ||
8 | |||
9 | extern const struct exception_table_entry __start___ex_table[]; | ||
10 | extern const struct exception_table_entry __stop___ex_table[]; | ||
11 | |||
12 | void sort_extable(struct exception_table_entry *start, | ||
13 | struct exception_table_entry *finish) | ||
14 | { | ||
15 | } | ||
16 | |||
17 | /* Caller knows they are in a range if ret->fixup == 0 */ | ||
18 | const struct exception_table_entry * | ||
19 | search_extable(const struct exception_table_entry *start, | ||
20 | const struct exception_table_entry *last, | ||
21 | unsigned long value) | ||
22 | { | ||
23 | const struct exception_table_entry *walk; | ||
24 | |||
25 | /* Single insn entries are encoded as: | ||
26 | * word 1: insn address | ||
27 | * word 2: fixup code address | ||
28 | * | ||
29 | * Range entries are encoded as: | ||
30 | * word 1: first insn address | ||
31 | * word 2: 0 | ||
32 | * word 3: last insn address + 4 bytes | ||
33 | * word 4: fixup code address | ||
34 | * | ||
35 | * See asm/uaccess.h for more details. | ||
36 | */ | ||
37 | |||
38 | /* 1. Try to find an exact match. */ | ||
39 | for (walk = start; walk <= last; walk++) { | ||
40 | if (walk->fixup == 0) { | ||
41 | /* A range entry, skip both parts. */ | ||
42 | walk++; | ||
43 | continue; | ||
44 | } | ||
45 | |||
46 | if (walk->insn == value) | ||
47 | return walk; | ||
48 | } | ||
49 | |||
50 | /* 2. Try to find a range match. */ | ||
51 | for (walk = start; walk <= (last - 1); walk++) { | ||
52 | if (walk->fixup) | ||
53 | continue; | ||
54 | |||
55 | if (walk[0].insn <= value && walk[1].insn > value) | ||
56 | return walk; | ||
57 | |||
58 | walk++; | ||
59 | } | ||
60 | |||
61 | return NULL; | ||
62 | } | ||
63 | |||
64 | /* Special extable search, which handles ranges. Returns fixup */ | ||
65 | unsigned long search_extables_range(unsigned long addr, unsigned long *g2) | ||
66 | { | ||
67 | const struct exception_table_entry *entry; | ||
68 | |||
69 | entry = search_exception_tables(addr); | ||
70 | if (!entry) | ||
71 | return 0; | ||
72 | |||
73 | /* Inside range? Fix g2 and return correct fixup */ | ||
74 | if (!entry->fixup) { | ||
75 | *g2 = (addr - entry->insn) / 4; | ||
76 | return (entry + 1)->fixup; | ||
77 | } | ||
78 | |||
79 | return entry->fixup; | ||
80 | } | ||
diff --git a/arch/sparc64/mm/fault.c b/arch/sparc64/mm/fault.c index db1e3310e907..31fbc67719a1 100644 --- a/arch/sparc64/mm/fault.c +++ b/arch/sparc64/mm/fault.c | |||
@@ -32,8 +32,6 @@ | |||
32 | 32 | ||
33 | #define ELEMENTS(arr) (sizeof (arr)/sizeof (arr[0])) | 33 | #define ELEMENTS(arr) (sizeof (arr)/sizeof (arr[0])) |
34 | 34 | ||
35 | extern struct sparc_phys_banks sp_banks[SPARC_PHYS_BANKS]; | ||
36 | |||
37 | /* | 35 | /* |
38 | * To debug kernel to catch accesses to certain virtual/physical addresses. | 36 | * To debug kernel to catch accesses to certain virtual/physical addresses. |
39 | * Mode = 0 selects physical watchpoints, mode = 1 selects virtual watchpoints. | 37 | * Mode = 0 selects physical watchpoints, mode = 1 selects virtual watchpoints. |
@@ -71,53 +69,6 @@ void set_brkpt(unsigned long addr, unsigned char mask, int flags, int mode) | |||
71 | : "memory"); | 69 | : "memory"); |
72 | } | 70 | } |
73 | 71 | ||
74 | /* Nice, simple, prom library does all the sweating for us. ;) */ | ||
75 | unsigned long __init prom_probe_memory (void) | ||
76 | { | ||
77 | register struct linux_mlist_p1275 *mlist; | ||
78 | register unsigned long bytes, base_paddr, tally; | ||
79 | register int i; | ||
80 | |||
81 | i = 0; | ||
82 | mlist = *prom_meminfo()->p1275_available; | ||
83 | bytes = tally = mlist->num_bytes; | ||
84 | base_paddr = mlist->start_adr; | ||
85 | |||
86 | sp_banks[0].base_addr = base_paddr; | ||
87 | sp_banks[0].num_bytes = bytes; | ||
88 | |||
89 | while (mlist->theres_more != (void *) 0) { | ||
90 | i++; | ||
91 | mlist = mlist->theres_more; | ||
92 | bytes = mlist->num_bytes; | ||
93 | tally += bytes; | ||
94 | if (i >= SPARC_PHYS_BANKS-1) { | ||
95 | printk ("The machine has more banks than " | ||
96 | "this kernel can support\n" | ||
97 | "Increase the SPARC_PHYS_BANKS " | ||
98 | "setting (currently %d)\n", | ||
99 | SPARC_PHYS_BANKS); | ||
100 | i = SPARC_PHYS_BANKS-1; | ||
101 | break; | ||
102 | } | ||
103 | |||
104 | sp_banks[i].base_addr = mlist->start_adr; | ||
105 | sp_banks[i].num_bytes = mlist->num_bytes; | ||
106 | } | ||
107 | |||
108 | i++; | ||
109 | sp_banks[i].base_addr = 0xdeadbeefbeefdeadUL; | ||
110 | sp_banks[i].num_bytes = 0; | ||
111 | |||
112 | /* Now mask all bank sizes on a page boundary, it is all we can | ||
113 | * use anyways. | ||
114 | */ | ||
115 | for (i = 0; sp_banks[i].num_bytes != 0; i++) | ||
116 | sp_banks[i].num_bytes &= PAGE_MASK; | ||
117 | |||
118 | return tally; | ||
119 | } | ||
120 | |||
121 | static void __kprobes unhandled_fault(unsigned long address, | 72 | static void __kprobes unhandled_fault(unsigned long address, |
122 | struct task_struct *tsk, | 73 | struct task_struct *tsk, |
123 | struct pt_regs *regs) | 74 | struct pt_regs *regs) |
@@ -242,7 +193,6 @@ static unsigned int get_fault_insn(struct pt_regs *regs, unsigned int insn) | |||
242 | static void do_kernel_fault(struct pt_regs *regs, int si_code, int fault_code, | 193 | static void do_kernel_fault(struct pt_regs *regs, int si_code, int fault_code, |
243 | unsigned int insn, unsigned long address) | 194 | unsigned int insn, unsigned long address) |
244 | { | 195 | { |
245 | unsigned long g2; | ||
246 | unsigned char asi = ASI_P; | 196 | unsigned char asi = ASI_P; |
247 | 197 | ||
248 | if ((!insn) && (regs->tstate & TSTATE_PRIV)) | 198 | if ((!insn) && (regs->tstate & TSTATE_PRIV)) |
@@ -273,11 +223,9 @@ static void do_kernel_fault(struct pt_regs *regs, int si_code, int fault_code, | |||
273 | } | 223 | } |
274 | } | 224 | } |
275 | 225 | ||
276 | g2 = regs->u_regs[UREG_G2]; | ||
277 | |||
278 | /* Is this in ex_table? */ | 226 | /* Is this in ex_table? */ |
279 | if (regs->tstate & TSTATE_PRIV) { | 227 | if (regs->tstate & TSTATE_PRIV) { |
280 | unsigned long fixup; | 228 | const struct exception_table_entry *entry; |
281 | 229 | ||
282 | if (asi == ASI_P && (insn & 0xc0800000) == 0xc0800000) { | 230 | if (asi == ASI_P && (insn & 0xc0800000) == 0xc0800000) { |
283 | if (insn & 0x2000) | 231 | if (insn & 0x2000) |
@@ -288,10 +236,9 @@ static void do_kernel_fault(struct pt_regs *regs, int si_code, int fault_code, | |||
288 | 236 | ||
289 | /* Look in asi.h: All _S asis have LS bit set */ | 237 | /* Look in asi.h: All _S asis have LS bit set */ |
290 | if ((asi & 0x1) && | 238 | if ((asi & 0x1) && |
291 | (fixup = search_extables_range(regs->tpc, &g2))) { | 239 | (entry = search_exception_tables(regs->tpc))) { |
292 | regs->tpc = fixup; | 240 | regs->tpc = entry->fixup; |
293 | regs->tnpc = regs->tpc + 4; | 241 | regs->tnpc = regs->tpc + 4; |
294 | regs->u_regs[UREG_G2] = g2; | ||
295 | return; | 242 | return; |
296 | } | 243 | } |
297 | } else { | 244 | } else { |
@@ -461,7 +408,7 @@ good_area: | |||
461 | } | 408 | } |
462 | 409 | ||
463 | up_read(&mm->mmap_sem); | 410 | up_read(&mm->mmap_sem); |
464 | goto fault_done; | 411 | return; |
465 | 412 | ||
466 | /* | 413 | /* |
467 | * Something tried to access memory that isn't in our memory map.. | 414 | * Something tried to access memory that isn't in our memory map.. |
@@ -473,8 +420,7 @@ bad_area: | |||
473 | 420 | ||
474 | handle_kernel_fault: | 421 | handle_kernel_fault: |
475 | do_kernel_fault(regs, si_code, fault_code, insn, address); | 422 | do_kernel_fault(regs, si_code, fault_code, insn, address); |
476 | 423 | return; | |
477 | goto fault_done; | ||
478 | 424 | ||
479 | /* | 425 | /* |
480 | * We ran out of memory, or some other thing happened to us that made | 426 | * We ran out of memory, or some other thing happened to us that made |
@@ -505,9 +451,4 @@ do_sigbus: | |||
505 | /* Kernel mode? Handle exceptions or die */ | 451 | /* Kernel mode? Handle exceptions or die */ |
506 | if (regs->tstate & TSTATE_PRIV) | 452 | if (regs->tstate & TSTATE_PRIV) |
507 | goto handle_kernel_fault; | 453 | goto handle_kernel_fault; |
508 | |||
509 | fault_done: | ||
510 | /* These values are no longer needed, clear them. */ | ||
511 | set_thread_fault_code(0); | ||
512 | current_thread_info()->fault_address = 0; | ||
513 | } | 454 | } |
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c index 9f6ca624892d..0d2e967c7200 100644 --- a/arch/sparc64/mm/init.c +++ b/arch/sparc64/mm/init.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <linux/seq_file.h> | 21 | #include <linux/seq_file.h> |
22 | #include <linux/kprobes.h> | 22 | #include <linux/kprobes.h> |
23 | #include <linux/cache.h> | 23 | #include <linux/cache.h> |
24 | #include <linux/sort.h> | ||
24 | 25 | ||
25 | #include <asm/head.h> | 26 | #include <asm/head.h> |
26 | #include <asm/system.h> | 27 | #include <asm/system.h> |
@@ -41,7 +42,72 @@ | |||
41 | 42 | ||
42 | extern void device_scan(void); | 43 | extern void device_scan(void); |
43 | 44 | ||
44 | struct sparc_phys_banks sp_banks[SPARC_PHYS_BANKS]; | 45 | #define MAX_BANKS 32 |
46 | |||
47 | static struct linux_prom64_registers pavail[MAX_BANKS] __initdata; | ||
48 | static struct linux_prom64_registers pavail_rescan[MAX_BANKS] __initdata; | ||
49 | static int pavail_ents __initdata; | ||
50 | static int pavail_rescan_ents __initdata; | ||
51 | |||
52 | static int cmp_p64(const void *a, const void *b) | ||
53 | { | ||
54 | const struct linux_prom64_registers *x = a, *y = b; | ||
55 | |||
56 | if (x->phys_addr > y->phys_addr) | ||
57 | return 1; | ||
58 | if (x->phys_addr < y->phys_addr) | ||
59 | return -1; | ||
60 | return 0; | ||
61 | } | ||
62 | |||
63 | static void __init read_obp_memory(const char *property, | ||
64 | struct linux_prom64_registers *regs, | ||
65 | int *num_ents) | ||
66 | { | ||
67 | int node = prom_finddevice("/memory"); | ||
68 | int prop_size = prom_getproplen(node, property); | ||
69 | int ents, ret, i; | ||
70 | |||
71 | ents = prop_size / sizeof(struct linux_prom64_registers); | ||
72 | if (ents > MAX_BANKS) { | ||
73 | prom_printf("The machine has more %s property entries than " | ||
74 | "this kernel can support (%d).\n", | ||
75 | property, MAX_BANKS); | ||
76 | prom_halt(); | ||
77 | } | ||
78 | |||
79 | ret = prom_getproperty(node, property, (char *) regs, prop_size); | ||
80 | if (ret == -1) { | ||
81 | prom_printf("Couldn't get %s property from /memory.\n"); | ||
82 | prom_halt(); | ||
83 | } | ||
84 | |||
85 | *num_ents = ents; | ||
86 | |||
87 | /* Sanitize what we got from the firmware, by page aligning | ||
88 | * everything. | ||
89 | */ | ||
90 | for (i = 0; i < ents; i++) { | ||
91 | unsigned long base, size; | ||
92 | |||
93 | base = regs[i].phys_addr; | ||
94 | size = regs[i].reg_size; | ||
95 | |||
96 | size &= PAGE_MASK; | ||
97 | if (base & ~PAGE_MASK) { | ||
98 | unsigned long new_base = PAGE_ALIGN(base); | ||
99 | |||
100 | size -= new_base - base; | ||
101 | if ((long) size < 0L) | ||
102 | size = 0UL; | ||
103 | base = new_base; | ||
104 | } | ||
105 | regs[i].phys_addr = base; | ||
106 | regs[i].reg_size = size; | ||
107 | } | ||
108 | sort(regs, ents, sizeof(struct linux_prom64_registers), | ||
109 | cmp_p64, NULL); | ||
110 | } | ||
45 | 111 | ||
46 | unsigned long *sparc64_valid_addr_bitmap __read_mostly; | 112 | unsigned long *sparc64_valid_addr_bitmap __read_mostly; |
47 | 113 | ||
@@ -67,6 +133,12 @@ extern unsigned int sparc_ramdisk_size; | |||
67 | 133 | ||
68 | struct page *mem_map_zero __read_mostly; | 134 | struct page *mem_map_zero __read_mostly; |
69 | 135 | ||
136 | unsigned int sparc64_highest_unlocked_tlb_ent __read_mostly; | ||
137 | |||
138 | unsigned long sparc64_kern_pri_context __read_mostly; | ||
139 | unsigned long sparc64_kern_pri_nuc_bits __read_mostly; | ||
140 | unsigned long sparc64_kern_sec_context __read_mostly; | ||
141 | |||
70 | int bigkernel = 0; | 142 | int bigkernel = 0; |
71 | 143 | ||
72 | /* XXX Tune this... */ | 144 | /* XXX Tune this... */ |
@@ -296,6 +368,7 @@ struct linux_prom_translation { | |||
296 | unsigned long data; | 368 | unsigned long data; |
297 | }; | 369 | }; |
298 | static struct linux_prom_translation prom_trans[512] __initdata; | 370 | static struct linux_prom_translation prom_trans[512] __initdata; |
371 | static unsigned int prom_trans_ents __initdata; | ||
299 | 372 | ||
300 | extern unsigned long prom_boot_page; | 373 | extern unsigned long prom_boot_page; |
301 | extern void prom_remap(unsigned long physpage, unsigned long virtpage, int mmu_ihandle); | 374 | extern void prom_remap(unsigned long physpage, unsigned long virtpage, int mmu_ihandle); |
@@ -309,57 +382,7 @@ unsigned long kern_locked_tte_data; | |||
309 | unsigned long prom_pmd_phys __read_mostly; | 382 | unsigned long prom_pmd_phys __read_mostly; |
310 | unsigned int swapper_pgd_zero __read_mostly; | 383 | unsigned int swapper_pgd_zero __read_mostly; |
311 | 384 | ||
312 | /* Allocate power-of-2 aligned chunks from the end of the | 385 | static pmd_t *prompmd __read_mostly; |
313 | * kernel image. Return physical address. | ||
314 | */ | ||
315 | static inline unsigned long early_alloc_phys(unsigned long size) | ||
316 | { | ||
317 | unsigned long base; | ||
318 | |||
319 | BUILD_BUG_ON(size & (size - 1)); | ||
320 | |||
321 | kern_size = (kern_size + (size - 1)) & ~(size - 1); | ||
322 | base = kern_base + kern_size; | ||
323 | kern_size += size; | ||
324 | |||
325 | return base; | ||
326 | } | ||
327 | |||
328 | static inline unsigned long load_phys32(unsigned long pa) | ||
329 | { | ||
330 | unsigned long val; | ||
331 | |||
332 | __asm__ __volatile__("lduwa [%1] %2, %0" | ||
333 | : "=&r" (val) | ||
334 | : "r" (pa), "i" (ASI_PHYS_USE_EC)); | ||
335 | |||
336 | return val; | ||
337 | } | ||
338 | |||
339 | static inline unsigned long load_phys64(unsigned long pa) | ||
340 | { | ||
341 | unsigned long val; | ||
342 | |||
343 | __asm__ __volatile__("ldxa [%1] %2, %0" | ||
344 | : "=&r" (val) | ||
345 | : "r" (pa), "i" (ASI_PHYS_USE_EC)); | ||
346 | |||
347 | return val; | ||
348 | } | ||
349 | |||
350 | static inline void store_phys32(unsigned long pa, unsigned long val) | ||
351 | { | ||
352 | __asm__ __volatile__("stwa %0, [%1] %2" | ||
353 | : /* no outputs */ | ||
354 | : "r" (val), "r" (pa), "i" (ASI_PHYS_USE_EC)); | ||
355 | } | ||
356 | |||
357 | static inline void store_phys64(unsigned long pa, unsigned long val) | ||
358 | { | ||
359 | __asm__ __volatile__("stxa %0, [%1] %2" | ||
360 | : /* no outputs */ | ||
361 | : "r" (val), "r" (pa), "i" (ASI_PHYS_USE_EC)); | ||
362 | } | ||
363 | 386 | ||
364 | #define BASE_PAGE_SIZE 8192 | 387 | #define BASE_PAGE_SIZE 8192 |
365 | 388 | ||
@@ -369,34 +392,28 @@ static inline void store_phys64(unsigned long pa, unsigned long val) | |||
369 | */ | 392 | */ |
370 | unsigned long prom_virt_to_phys(unsigned long promva, int *error) | 393 | unsigned long prom_virt_to_phys(unsigned long promva, int *error) |
371 | { | 394 | { |
372 | unsigned long pmd_phys = (prom_pmd_phys + | 395 | pmd_t *pmdp = prompmd + ((promva >> 23) & 0x7ff); |
373 | ((promva >> 23) & 0x7ff) * sizeof(pmd_t)); | 396 | pte_t *ptep; |
374 | unsigned long pte_phys; | ||
375 | pmd_t pmd_ent; | ||
376 | pte_t pte_ent; | ||
377 | unsigned long base; | 397 | unsigned long base; |
378 | 398 | ||
379 | pmd_val(pmd_ent) = load_phys32(pmd_phys); | 399 | if (pmd_none(*pmdp)) { |
380 | if (pmd_none(pmd_ent)) { | ||
381 | if (error) | 400 | if (error) |
382 | *error = 1; | 401 | *error = 1; |
383 | return 0; | 402 | return 0; |
384 | } | 403 | } |
385 | 404 | ptep = (pte_t *)__pmd_page(*pmdp) + ((promva >> 13) & 0x3ff); | |
386 | pte_phys = (unsigned long)pmd_val(pmd_ent) << 11UL; | 405 | if (!pte_present(*ptep)) { |
387 | pte_phys += ((promva >> 13) & 0x3ff) * sizeof(pte_t); | ||
388 | pte_val(pte_ent) = load_phys64(pte_phys); | ||
389 | if (!pte_present(pte_ent)) { | ||
390 | if (error) | 406 | if (error) |
391 | *error = 1; | 407 | *error = 1; |
392 | return 0; | 408 | return 0; |
393 | } | 409 | } |
394 | if (error) { | 410 | if (error) { |
395 | *error = 0; | 411 | *error = 0; |
396 | return pte_val(pte_ent); | 412 | return pte_val(*ptep); |
397 | } | 413 | } |
398 | base = pte_val(pte_ent) & _PAGE_PADDR; | 414 | base = pte_val(*ptep) & _PAGE_PADDR; |
399 | return (base + (promva & (BASE_PAGE_SIZE - 1))); | 415 | |
416 | return base + (promva & (BASE_PAGE_SIZE - 1)); | ||
400 | } | 417 | } |
401 | 418 | ||
402 | /* The obp translations are saved based on 8k pagesize, since obp can | 419 | /* The obp translations are saved based on 8k pagesize, since obp can |
@@ -409,25 +426,20 @@ static void __init build_obp_range(unsigned long start, unsigned long end, unsig | |||
409 | unsigned long vaddr; | 426 | unsigned long vaddr; |
410 | 427 | ||
411 | for (vaddr = start; vaddr < end; vaddr += BASE_PAGE_SIZE) { | 428 | for (vaddr = start; vaddr < end; vaddr += BASE_PAGE_SIZE) { |
412 | unsigned long val, pte_phys, pmd_phys; | 429 | unsigned long val; |
413 | pmd_t pmd_ent; | 430 | pmd_t *pmd; |
414 | int i; | 431 | pte_t *pte; |
415 | |||
416 | pmd_phys = (prom_pmd_phys + | ||
417 | (((vaddr >> 23) & 0x7ff) * sizeof(pmd_t))); | ||
418 | pmd_val(pmd_ent) = load_phys32(pmd_phys); | ||
419 | if (pmd_none(pmd_ent)) { | ||
420 | pte_phys = early_alloc_phys(BASE_PAGE_SIZE); | ||
421 | |||
422 | for (i = 0; i < BASE_PAGE_SIZE / sizeof(pte_t); i++) | ||
423 | store_phys64(pte_phys+i*sizeof(pte_t),0); | ||
424 | 432 | ||
425 | pmd_val(pmd_ent) = pte_phys >> 11UL; | 433 | pmd = prompmd + ((vaddr >> 23) & 0x7ff); |
426 | store_phys32(pmd_phys, pmd_val(pmd_ent)); | 434 | if (pmd_none(*pmd)) { |
435 | pte = __alloc_bootmem(BASE_PAGE_SIZE, BASE_PAGE_SIZE, | ||
436 | PAGE_SIZE); | ||
437 | if (!pte) | ||
438 | prom_halt(); | ||
439 | memset(pte, 0, BASE_PAGE_SIZE); | ||
440 | pmd_set(pmd, pte); | ||
427 | } | 441 | } |
428 | 442 | pte = (pte_t *) __pmd_page(*pmd) + ((vaddr >> 13) & 0x3ff); | |
429 | pte_phys = (unsigned long)pmd_val(pmd_ent) << 11UL; | ||
430 | pte_phys += (((vaddr >> 13) & 0x3ff) * sizeof(pte_t)); | ||
431 | 443 | ||
432 | val = data; | 444 | val = data; |
433 | 445 | ||
@@ -435,7 +447,8 @@ static void __init build_obp_range(unsigned long start, unsigned long end, unsig | |||
435 | if (tlb_type == spitfire) | 447 | if (tlb_type == spitfire) |
436 | val &= ~0x0003fe0000000000UL; | 448 | val &= ~0x0003fe0000000000UL; |
437 | 449 | ||
438 | store_phys64(pte_phys, val | _PAGE_MODIFIED); | 450 | set_pte_at(&init_mm, vaddr, pte, |
451 | __pte(val | _PAGE_MODIFIED)); | ||
439 | 452 | ||
440 | data += BASE_PAGE_SIZE; | 453 | data += BASE_PAGE_SIZE; |
441 | } | 454 | } |
@@ -448,13 +461,17 @@ static inline int in_obp_range(unsigned long vaddr) | |||
448 | } | 461 | } |
449 | 462 | ||
450 | #define OBP_PMD_SIZE 2048 | 463 | #define OBP_PMD_SIZE 2048 |
451 | static void __init build_obp_pgtable(int prom_trans_ents) | 464 | static void __init build_obp_pgtable(void) |
452 | { | 465 | { |
453 | unsigned long i; | 466 | unsigned long i; |
454 | 467 | ||
455 | prom_pmd_phys = early_alloc_phys(OBP_PMD_SIZE); | 468 | prompmd = __alloc_bootmem(OBP_PMD_SIZE, OBP_PMD_SIZE, PAGE_SIZE); |
456 | for (i = 0; i < OBP_PMD_SIZE; i += 4) | 469 | if (!prompmd) |
457 | store_phys32(prom_pmd_phys + i, 0); | 470 | prom_halt(); |
471 | |||
472 | memset(prompmd, 0, OBP_PMD_SIZE); | ||
473 | |||
474 | prom_pmd_phys = __pa(prompmd); | ||
458 | 475 | ||
459 | for (i = 0; i < prom_trans_ents; i++) { | 476 | for (i = 0; i < prom_trans_ents; i++) { |
460 | unsigned long start, end; | 477 | unsigned long start, end; |
@@ -474,7 +491,7 @@ static void __init build_obp_pgtable(int prom_trans_ents) | |||
474 | /* Read OBP translations property into 'prom_trans[]'. | 491 | /* Read OBP translations property into 'prom_trans[]'. |
475 | * Return the number of entries. | 492 | * Return the number of entries. |
476 | */ | 493 | */ |
477 | static int __init read_obp_translations(void) | 494 | static void __init read_obp_translations(void) |
478 | { | 495 | { |
479 | int n, node; | 496 | int n, node; |
480 | 497 | ||
@@ -495,8 +512,10 @@ static int __init read_obp_translations(void) | |||
495 | prom_printf("prom_mappings: Couldn't get property.\n"); | 512 | prom_printf("prom_mappings: Couldn't get property.\n"); |
496 | prom_halt(); | 513 | prom_halt(); |
497 | } | 514 | } |
515 | |||
498 | n = n / sizeof(struct linux_prom_translation); | 516 | n = n / sizeof(struct linux_prom_translation); |
499 | return n; | 517 | |
518 | prom_trans_ents = n; | ||
500 | } | 519 | } |
501 | 520 | ||
502 | static void __init remap_kernel(void) | 521 | static void __init remap_kernel(void) |
@@ -516,28 +535,38 @@ static void __init remap_kernel(void) | |||
516 | prom_dtlb_load(tlb_ent, tte_data, tte_vaddr); | 535 | prom_dtlb_load(tlb_ent, tte_data, tte_vaddr); |
517 | prom_itlb_load(tlb_ent, tte_data, tte_vaddr); | 536 | prom_itlb_load(tlb_ent, tte_data, tte_vaddr); |
518 | if (bigkernel) { | 537 | if (bigkernel) { |
519 | prom_dtlb_load(tlb_ent - 1, | 538 | tlb_ent -= 1; |
539 | prom_dtlb_load(tlb_ent, | ||
520 | tte_data + 0x400000, | 540 | tte_data + 0x400000, |
521 | tte_vaddr + 0x400000); | 541 | tte_vaddr + 0x400000); |
522 | prom_itlb_load(tlb_ent - 1, | 542 | prom_itlb_load(tlb_ent, |
523 | tte_data + 0x400000, | 543 | tte_data + 0x400000, |
524 | tte_vaddr + 0x400000); | 544 | tte_vaddr + 0x400000); |
525 | } | 545 | } |
546 | sparc64_highest_unlocked_tlb_ent = tlb_ent - 1; | ||
547 | if (tlb_type == cheetah_plus) { | ||
548 | sparc64_kern_pri_context = (CTX_CHEETAH_PLUS_CTX0 | | ||
549 | CTX_CHEETAH_PLUS_NUC); | ||
550 | sparc64_kern_pri_nuc_bits = CTX_CHEETAH_PLUS_NUC; | ||
551 | sparc64_kern_sec_context = CTX_CHEETAH_PLUS_CTX0; | ||
552 | } | ||
526 | } | 553 | } |
527 | 554 | ||
528 | static void __init inherit_prom_mappings(void) | ||
529 | { | ||
530 | int n; | ||
531 | 555 | ||
532 | n = read_obp_translations(); | 556 | static void __init inherit_prom_mappings_pre(void) |
533 | build_obp_pgtable(n); | 557 | { |
558 | read_obp_translations(); | ||
534 | 559 | ||
535 | /* Now fixup OBP's idea about where we really are mapped. */ | 560 | /* Now fixup OBP's idea about where we really are mapped. */ |
536 | prom_printf("Remapping the kernel... "); | 561 | prom_printf("Remapping the kernel... "); |
537 | remap_kernel(); | 562 | remap_kernel(); |
538 | 563 | ||
539 | prom_printf("done.\n"); | 564 | prom_printf("done.\n"); |
565 | } | ||
540 | 566 | ||
567 | static void __init inherit_prom_mappings_post(void) | ||
568 | { | ||
569 | build_obp_pgtable(); | ||
541 | register_prom_callbacks(); | 570 | register_prom_callbacks(); |
542 | } | 571 | } |
543 | 572 | ||
@@ -722,8 +751,8 @@ void inherit_locked_prom_mappings(int save_p) | |||
722 | } | 751 | } |
723 | } | 752 | } |
724 | if (tlb_type == spitfire) { | 753 | if (tlb_type == spitfire) { |
725 | int high = SPITFIRE_HIGHEST_LOCKED_TLBENT - bigkernel; | 754 | int high = sparc64_highest_unlocked_tlb_ent; |
726 | for (i = 0; i < high; i++) { | 755 | for (i = 0; i <= high; i++) { |
727 | unsigned long data; | 756 | unsigned long data; |
728 | 757 | ||
729 | /* Spitfire Errata #32 workaround */ | 758 | /* Spitfire Errata #32 workaround */ |
@@ -811,9 +840,9 @@ void inherit_locked_prom_mappings(int save_p) | |||
811 | } | 840 | } |
812 | } | 841 | } |
813 | } else if (tlb_type == cheetah || tlb_type == cheetah_plus) { | 842 | } else if (tlb_type == cheetah || tlb_type == cheetah_plus) { |
814 | int high = CHEETAH_HIGHEST_LOCKED_TLBENT - bigkernel; | 843 | int high = sparc64_highest_unlocked_tlb_ent; |
815 | 844 | ||
816 | for (i = 0; i < high; i++) { | 845 | for (i = 0; i <= high; i++) { |
817 | unsigned long data; | 846 | unsigned long data; |
818 | 847 | ||
819 | data = cheetah_get_ldtlb_data(i); | 848 | data = cheetah_get_ldtlb_data(i); |
@@ -1206,14 +1235,14 @@ unsigned long __init bootmem_init(unsigned long *pages_avail) | |||
1206 | int i; | 1235 | int i; |
1207 | 1236 | ||
1208 | #ifdef CONFIG_DEBUG_BOOTMEM | 1237 | #ifdef CONFIG_DEBUG_BOOTMEM |
1209 | prom_printf("bootmem_init: Scan sp_banks, "); | 1238 | prom_printf("bootmem_init: Scan pavail, "); |
1210 | #endif | 1239 | #endif |
1211 | 1240 | ||
1212 | bytes_avail = 0UL; | 1241 | bytes_avail = 0UL; |
1213 | for (i = 0; sp_banks[i].num_bytes != 0; i++) { | 1242 | for (i = 0; i < pavail_ents; i++) { |
1214 | end_of_phys_memory = sp_banks[i].base_addr + | 1243 | end_of_phys_memory = pavail[i].phys_addr + |
1215 | sp_banks[i].num_bytes; | 1244 | pavail[i].reg_size; |
1216 | bytes_avail += sp_banks[i].num_bytes; | 1245 | bytes_avail += pavail[i].reg_size; |
1217 | if (cmdline_memory_size) { | 1246 | if (cmdline_memory_size) { |
1218 | if (bytes_avail > cmdline_memory_size) { | 1247 | if (bytes_avail > cmdline_memory_size) { |
1219 | unsigned long slack = bytes_avail - cmdline_memory_size; | 1248 | unsigned long slack = bytes_avail - cmdline_memory_size; |
@@ -1221,12 +1250,15 @@ unsigned long __init bootmem_init(unsigned long *pages_avail) | |||
1221 | bytes_avail -= slack; | 1250 | bytes_avail -= slack; |
1222 | end_of_phys_memory -= slack; | 1251 | end_of_phys_memory -= slack; |
1223 | 1252 | ||
1224 | sp_banks[i].num_bytes -= slack; | 1253 | pavail[i].reg_size -= slack; |
1225 | if (sp_banks[i].num_bytes == 0) { | 1254 | if ((long)pavail[i].reg_size <= 0L) { |
1226 | sp_banks[i].base_addr = 0xdeadbeef; | 1255 | pavail[i].phys_addr = 0xdeadbeefUL; |
1256 | pavail[i].reg_size = 0UL; | ||
1257 | pavail_ents = i; | ||
1227 | } else { | 1258 | } else { |
1228 | sp_banks[i+1].num_bytes = 0; | 1259 | pavail[i+1].reg_size = 0Ul; |
1229 | sp_banks[i+1].base_addr = 0xdeadbeef; | 1260 | pavail[i+1].phys_addr = 0xdeadbeefUL; |
1261 | pavail_ents = i + 1; | ||
1230 | } | 1262 | } |
1231 | break; | 1263 | break; |
1232 | } | 1264 | } |
@@ -1280,12 +1312,12 @@ unsigned long __init bootmem_init(unsigned long *pages_avail) | |||
1280 | /* Now register the available physical memory with the | 1312 | /* Now register the available physical memory with the |
1281 | * allocator. | 1313 | * allocator. |
1282 | */ | 1314 | */ |
1283 | for (i = 0; sp_banks[i].num_bytes != 0; i++) { | 1315 | for (i = 0; i < pavail_ents; i++) { |
1284 | #ifdef CONFIG_DEBUG_BOOTMEM | 1316 | #ifdef CONFIG_DEBUG_BOOTMEM |
1285 | prom_printf("free_bootmem(sp_banks:%d): base[%lx] size[%lx]\n", | 1317 | prom_printf("free_bootmem(pavail:%d): base[%lx] size[%lx]\n", |
1286 | i, sp_banks[i].base_addr, sp_banks[i].num_bytes); | 1318 | i, pavail[i].phys_addr, pavail[i].reg_size); |
1287 | #endif | 1319 | #endif |
1288 | free_bootmem(sp_banks[i].base_addr, sp_banks[i].num_bytes); | 1320 | free_bootmem(pavail[i].phys_addr, pavail[i].reg_size); |
1289 | } | 1321 | } |
1290 | 1322 | ||
1291 | #ifdef CONFIG_BLK_DEV_INITRD | 1323 | #ifdef CONFIG_BLK_DEV_INITRD |
@@ -1334,7 +1366,7 @@ static unsigned long kernel_map_range(unsigned long pstart, unsigned long pend, | |||
1334 | unsigned long alloc_bytes = 0UL; | 1366 | unsigned long alloc_bytes = 0UL; |
1335 | 1367 | ||
1336 | if ((vstart & ~PAGE_MASK) || (vend & ~PAGE_MASK)) { | 1368 | if ((vstart & ~PAGE_MASK) || (vend & ~PAGE_MASK)) { |
1337 | prom_printf("kernel_map: Unaligned sp_banks[%lx:%lx]\n", | 1369 | prom_printf("kernel_map: Unaligned physmem[%lx:%lx]\n", |
1338 | vstart, vend); | 1370 | vstart, vend); |
1339 | prom_halt(); | 1371 | prom_halt(); |
1340 | } | 1372 | } |
@@ -1381,23 +1413,24 @@ static unsigned long kernel_map_range(unsigned long pstart, unsigned long pend, | |||
1381 | return alloc_bytes; | 1413 | return alloc_bytes; |
1382 | } | 1414 | } |
1383 | 1415 | ||
1384 | extern struct linux_mlist_p1275 *prom_ptot_ptr; | 1416 | static struct linux_prom64_registers pall[MAX_BANKS] __initdata; |
1417 | static int pall_ents __initdata; | ||
1418 | |||
1385 | extern unsigned int kvmap_linear_patch[1]; | 1419 | extern unsigned int kvmap_linear_patch[1]; |
1386 | 1420 | ||
1387 | static void __init kernel_physical_mapping_init(void) | 1421 | static void __init kernel_physical_mapping_init(void) |
1388 | { | 1422 | { |
1389 | struct linux_mlist_p1275 *p = prom_ptot_ptr; | 1423 | unsigned long i, mem_alloced = 0UL; |
1390 | unsigned long mem_alloced = 0UL; | 1424 | |
1425 | read_obp_memory("reg", &pall[0], &pall_ents); | ||
1391 | 1426 | ||
1392 | while (p) { | 1427 | for (i = 0; i < pall_ents; i++) { |
1393 | unsigned long phys_start, phys_end; | 1428 | unsigned long phys_start, phys_end; |
1394 | 1429 | ||
1395 | phys_start = p->start_adr; | 1430 | phys_start = pall[i].phys_addr; |
1396 | phys_end = phys_start + p->num_bytes; | 1431 | phys_end = phys_start + pall[i].reg_size; |
1397 | mem_alloced += kernel_map_range(phys_start, phys_end, | 1432 | mem_alloced += kernel_map_range(phys_start, phys_end, |
1398 | PAGE_KERNEL); | 1433 | PAGE_KERNEL); |
1399 | |||
1400 | p = p->theres_more; | ||
1401 | } | 1434 | } |
1402 | 1435 | ||
1403 | printk("Allocated %ld bytes for kernel page tables.\n", | 1436 | printk("Allocated %ld bytes for kernel page tables.\n", |
@@ -1425,6 +1458,18 @@ void kernel_map_pages(struct page *page, int numpages, int enable) | |||
1425 | } | 1458 | } |
1426 | #endif | 1459 | #endif |
1427 | 1460 | ||
1461 | unsigned long __init find_ecache_flush_span(unsigned long size) | ||
1462 | { | ||
1463 | int i; | ||
1464 | |||
1465 | for (i = 0; i < pavail_ents; i++) { | ||
1466 | if (pavail[i].reg_size >= size) | ||
1467 | return pavail[i].phys_addr; | ||
1468 | } | ||
1469 | |||
1470 | return ~0UL; | ||
1471 | } | ||
1472 | |||
1428 | /* paging_init() sets up the page tables */ | 1473 | /* paging_init() sets up the page tables */ |
1429 | 1474 | ||
1430 | extern void cheetah_ecache_flush_init(void); | 1475 | extern void cheetah_ecache_flush_init(void); |
@@ -1435,7 +1480,19 @@ pgd_t swapper_pg_dir[2048]; | |||
1435 | void __init paging_init(void) | 1480 | void __init paging_init(void) |
1436 | { | 1481 | { |
1437 | unsigned long end_pfn, pages_avail, shift; | 1482 | unsigned long end_pfn, pages_avail, shift; |
1438 | unsigned long real_end; | 1483 | unsigned long real_end, i; |
1484 | |||
1485 | /* Find available physical memory... */ | ||
1486 | read_obp_memory("available", &pavail[0], &pavail_ents); | ||
1487 | |||
1488 | phys_base = 0xffffffffffffffffUL; | ||
1489 | for (i = 0; i < pavail_ents; i++) | ||
1490 | phys_base = min(phys_base, pavail[i].phys_addr); | ||
1491 | |||
1492 | pfn_base = phys_base >> PAGE_SHIFT; | ||
1493 | |||
1494 | kern_base = (prom_boot_mapping_phys_low >> 22UL) << 22UL; | ||
1495 | kern_size = (unsigned long)&_end - (unsigned long)KERNBASE; | ||
1439 | 1496 | ||
1440 | set_bit(0, mmu_context_bmap); | 1497 | set_bit(0, mmu_context_bmap); |
1441 | 1498 | ||
@@ -1462,8 +1519,7 @@ void __init paging_init(void) | |||
1462 | 1519 | ||
1463 | swapper_pgd_zero = pgd_val(swapper_pg_dir[0]); | 1520 | swapper_pgd_zero = pgd_val(swapper_pg_dir[0]); |
1464 | 1521 | ||
1465 | /* Inherit non-locked OBP mappings. */ | 1522 | inherit_prom_mappings_pre(); |
1466 | inherit_prom_mappings(); | ||
1467 | 1523 | ||
1468 | /* Ok, we can use our TLB miss and window trap handlers safely. | 1524 | /* Ok, we can use our TLB miss and window trap handlers safely. |
1469 | * We need to do a quick peek here to see if we are on StarFire | 1525 | * We need to do a quick peek here to see if we are on StarFire |
@@ -1474,15 +1530,23 @@ void __init paging_init(void) | |||
1474 | extern void setup_tba(int); | 1530 | extern void setup_tba(int); |
1475 | setup_tba(this_is_starfire); | 1531 | setup_tba(this_is_starfire); |
1476 | } | 1532 | } |
1477 | |||
1478 | inherit_locked_prom_mappings(1); | ||
1479 | |||
1480 | __flush_tlb_all(); | 1533 | __flush_tlb_all(); |
1481 | 1534 | ||
1535 | /* Everything from this point forward, until we are done with | ||
1536 | * inherit_prom_mappings_post(), must complete successfully | ||
1537 | * without calling into the firmware. The firwmare page tables | ||
1538 | * have not been built, but we are running on the Linux kernel's | ||
1539 | * trap table. | ||
1540 | */ | ||
1541 | |||
1482 | /* Setup bootmem... */ | 1542 | /* Setup bootmem... */ |
1483 | pages_avail = 0; | 1543 | pages_avail = 0; |
1484 | last_valid_pfn = end_pfn = bootmem_init(&pages_avail); | 1544 | last_valid_pfn = end_pfn = bootmem_init(&pages_avail); |
1485 | 1545 | ||
1546 | inherit_prom_mappings_post(); | ||
1547 | |||
1548 | inherit_locked_prom_mappings(1); | ||
1549 | |||
1486 | #ifdef CONFIG_DEBUG_PAGEALLOC | 1550 | #ifdef CONFIG_DEBUG_PAGEALLOC |
1487 | kernel_physical_mapping_init(); | 1551 | kernel_physical_mapping_init(); |
1488 | #endif | 1552 | #endif |
@@ -1507,128 +1571,35 @@ void __init paging_init(void) | |||
1507 | device_scan(); | 1571 | device_scan(); |
1508 | } | 1572 | } |
1509 | 1573 | ||
1510 | /* Ok, it seems that the prom can allocate some more memory chunks | ||
1511 | * as a side effect of some prom calls we perform during the | ||
1512 | * boot sequence. My most likely theory is that it is from the | ||
1513 | * prom_set_traptable() call, and OBP is allocating a scratchpad | ||
1514 | * for saving client program register state etc. | ||
1515 | */ | ||
1516 | static void __init sort_memlist(struct linux_mlist_p1275 *thislist) | ||
1517 | { | ||
1518 | int swapi = 0; | ||
1519 | int i, mitr; | ||
1520 | unsigned long tmpaddr, tmpsize; | ||
1521 | unsigned long lowest; | ||
1522 | |||
1523 | for (i = 0; thislist[i].theres_more != 0; i++) { | ||
1524 | lowest = thislist[i].start_adr; | ||
1525 | for (mitr = i+1; thislist[mitr-1].theres_more != 0; mitr++) | ||
1526 | if (thislist[mitr].start_adr < lowest) { | ||
1527 | lowest = thislist[mitr].start_adr; | ||
1528 | swapi = mitr; | ||
1529 | } | ||
1530 | if (lowest == thislist[i].start_adr) | ||
1531 | continue; | ||
1532 | tmpaddr = thislist[swapi].start_adr; | ||
1533 | tmpsize = thislist[swapi].num_bytes; | ||
1534 | for (mitr = swapi; mitr > i; mitr--) { | ||
1535 | thislist[mitr].start_adr = thislist[mitr-1].start_adr; | ||
1536 | thislist[mitr].num_bytes = thislist[mitr-1].num_bytes; | ||
1537 | } | ||
1538 | thislist[i].start_adr = tmpaddr; | ||
1539 | thislist[i].num_bytes = tmpsize; | ||
1540 | } | ||
1541 | } | ||
1542 | |||
1543 | void __init rescan_sp_banks(void) | ||
1544 | { | ||
1545 | struct linux_prom64_registers memlist[64]; | ||
1546 | struct linux_mlist_p1275 avail[64], *mlist; | ||
1547 | unsigned long bytes, base_paddr; | ||
1548 | int num_regs, node = prom_finddevice("/memory"); | ||
1549 | int i; | ||
1550 | |||
1551 | num_regs = prom_getproperty(node, "available", | ||
1552 | (char *) memlist, sizeof(memlist)); | ||
1553 | num_regs = (num_regs / sizeof(struct linux_prom64_registers)); | ||
1554 | for (i = 0; i < num_regs; i++) { | ||
1555 | avail[i].start_adr = memlist[i].phys_addr; | ||
1556 | avail[i].num_bytes = memlist[i].reg_size; | ||
1557 | avail[i].theres_more = &avail[i + 1]; | ||
1558 | } | ||
1559 | avail[i - 1].theres_more = NULL; | ||
1560 | sort_memlist(avail); | ||
1561 | |||
1562 | mlist = &avail[0]; | ||
1563 | i = 0; | ||
1564 | bytes = mlist->num_bytes; | ||
1565 | base_paddr = mlist->start_adr; | ||
1566 | |||
1567 | sp_banks[0].base_addr = base_paddr; | ||
1568 | sp_banks[0].num_bytes = bytes; | ||
1569 | |||
1570 | while (mlist->theres_more != NULL){ | ||
1571 | i++; | ||
1572 | mlist = mlist->theres_more; | ||
1573 | bytes = mlist->num_bytes; | ||
1574 | if (i >= SPARC_PHYS_BANKS-1) { | ||
1575 | printk ("The machine has more banks than " | ||
1576 | "this kernel can support\n" | ||
1577 | "Increase the SPARC_PHYS_BANKS " | ||
1578 | "setting (currently %d)\n", | ||
1579 | SPARC_PHYS_BANKS); | ||
1580 | i = SPARC_PHYS_BANKS-1; | ||
1581 | break; | ||
1582 | } | ||
1583 | |||
1584 | sp_banks[i].base_addr = mlist->start_adr; | ||
1585 | sp_banks[i].num_bytes = mlist->num_bytes; | ||
1586 | } | ||
1587 | |||
1588 | i++; | ||
1589 | sp_banks[i].base_addr = 0xdeadbeefbeefdeadUL; | ||
1590 | sp_banks[i].num_bytes = 0; | ||
1591 | |||
1592 | for (i = 0; sp_banks[i].num_bytes != 0; i++) | ||
1593 | sp_banks[i].num_bytes &= PAGE_MASK; | ||
1594 | } | ||
1595 | |||
1596 | static void __init taint_real_pages(void) | 1574 | static void __init taint_real_pages(void) |
1597 | { | 1575 | { |
1598 | struct sparc_phys_banks saved_sp_banks[SPARC_PHYS_BANKS]; | ||
1599 | int i; | 1576 | int i; |
1600 | 1577 | ||
1601 | for (i = 0; i < SPARC_PHYS_BANKS; i++) { | 1578 | read_obp_memory("available", &pavail_rescan[0], &pavail_rescan_ents); |
1602 | saved_sp_banks[i].base_addr = | ||
1603 | sp_banks[i].base_addr; | ||
1604 | saved_sp_banks[i].num_bytes = | ||
1605 | sp_banks[i].num_bytes; | ||
1606 | } | ||
1607 | |||
1608 | rescan_sp_banks(); | ||
1609 | 1579 | ||
1610 | /* Find changes discovered in the sp_bank rescan and | 1580 | /* Find changes discovered in the physmem available rescan and |
1611 | * reserve the lost portions in the bootmem maps. | 1581 | * reserve the lost portions in the bootmem maps. |
1612 | */ | 1582 | */ |
1613 | for (i = 0; saved_sp_banks[i].num_bytes; i++) { | 1583 | for (i = 0; i < pavail_ents; i++) { |
1614 | unsigned long old_start, old_end; | 1584 | unsigned long old_start, old_end; |
1615 | 1585 | ||
1616 | old_start = saved_sp_banks[i].base_addr; | 1586 | old_start = pavail[i].phys_addr; |
1617 | old_end = old_start + | 1587 | old_end = old_start + |
1618 | saved_sp_banks[i].num_bytes; | 1588 | pavail[i].reg_size; |
1619 | while (old_start < old_end) { | 1589 | while (old_start < old_end) { |
1620 | int n; | 1590 | int n; |
1621 | 1591 | ||
1622 | for (n = 0; sp_banks[n].num_bytes; n++) { | 1592 | for (n = 0; pavail_rescan_ents; n++) { |
1623 | unsigned long new_start, new_end; | 1593 | unsigned long new_start, new_end; |
1624 | 1594 | ||
1625 | new_start = sp_banks[n].base_addr; | 1595 | new_start = pavail_rescan[n].phys_addr; |
1626 | new_end = new_start + sp_banks[n].num_bytes; | 1596 | new_end = new_start + |
1597 | pavail_rescan[n].reg_size; | ||
1627 | 1598 | ||
1628 | if (new_start <= old_start && | 1599 | if (new_start <= old_start && |
1629 | new_end >= (old_start + PAGE_SIZE)) { | 1600 | new_end >= (old_start + PAGE_SIZE)) { |
1630 | set_bit (old_start >> 22, | 1601 | set_bit(old_start >> 22, |
1631 | sparc64_valid_addr_bitmap); | 1602 | sparc64_valid_addr_bitmap); |
1632 | goto do_next_page; | 1603 | goto do_next_page; |
1633 | } | 1604 | } |
1634 | } | 1605 | } |
diff --git a/arch/sparc64/prom/Makefile b/arch/sparc64/prom/Makefile index c7898a5ee456..3d33ed27bc27 100644 --- a/arch/sparc64/prom/Makefile +++ b/arch/sparc64/prom/Makefile | |||
@@ -6,5 +6,5 @@ | |||
6 | EXTRA_AFLAGS := -ansi | 6 | EXTRA_AFLAGS := -ansi |
7 | EXTRA_CFLAGS := -Werror | 7 | EXTRA_CFLAGS := -Werror |
8 | 8 | ||
9 | lib-y := bootstr.o devops.o init.o memory.o misc.o \ | 9 | lib-y := bootstr.o devops.o init.o misc.o \ |
10 | tree.o console.o printf.o p1275.o cif.o | 10 | tree.o console.o printf.o p1275.o cif.o |
diff --git a/arch/sparc64/prom/init.c b/arch/sparc64/prom/init.c index 8b4b622d0909..f3cc2d8578b2 100644 --- a/arch/sparc64/prom/init.c +++ b/arch/sparc64/prom/init.c | |||
@@ -27,7 +27,6 @@ int prom_chosen_node; | |||
27 | * failure. It gets passed the pointer to the PROM vector. | 27 | * failure. It gets passed the pointer to the PROM vector. |
28 | */ | 28 | */ |
29 | 29 | ||
30 | extern void prom_meminit(void); | ||
31 | extern void prom_cif_init(void *, void *); | 30 | extern void prom_cif_init(void *, void *); |
32 | 31 | ||
33 | void __init prom_init(void *cif_handler, void *cif_stack) | 32 | void __init prom_init(void *cif_handler, void *cif_stack) |
@@ -90,8 +89,6 @@ void __init prom_init(void *cif_handler, void *cif_stack) | |||
90 | 89 | ||
91 | printk ("PROMLIB: Sun IEEE Boot Prom %s\n", buffer + bufadjust); | 90 | printk ("PROMLIB: Sun IEEE Boot Prom %s\n", buffer + bufadjust); |
92 | 91 | ||
93 | prom_meminit(); | ||
94 | |||
95 | /* Initialization successful. */ | 92 | /* Initialization successful. */ |
96 | return; | 93 | return; |
97 | 94 | ||
diff --git a/arch/sparc64/prom/memory.c b/arch/sparc64/prom/memory.c deleted file mode 100644 index f4a8143e052c..000000000000 --- a/arch/sparc64/prom/memory.c +++ /dev/null | |||
@@ -1,152 +0,0 @@ | |||
1 | /* $Id: memory.c,v 1.5 1999/08/31 06:55:04 davem Exp $ | ||
2 | * memory.c: Prom routine for acquiring various bits of information | ||
3 | * about RAM on the machine, both virtual and physical. | ||
4 | * | ||
5 | * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) | ||
6 | * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz) | ||
7 | */ | ||
8 | |||
9 | #include <linux/kernel.h> | ||
10 | #include <linux/init.h> | ||
11 | |||
12 | #include <asm/openprom.h> | ||
13 | #include <asm/oplib.h> | ||
14 | |||
15 | /* This routine, for consistency, returns the ram parameters in the | ||
16 | * V0 prom memory descriptor format. I choose this format because I | ||
17 | * think it was the easiest to work with. I feel the religious | ||
18 | * arguments now... ;) Also, I return the linked lists sorted to | ||
19 | * prevent paging_init() upset stomach as I have not yet written | ||
20 | * the pepto-bismol kernel module yet. | ||
21 | */ | ||
22 | |||
23 | struct linux_prom64_registers prom_reg_memlist[64]; | ||
24 | struct linux_prom64_registers prom_reg_tmp[64]; | ||
25 | |||
26 | struct linux_mlist_p1275 prom_phys_total[64]; | ||
27 | struct linux_mlist_p1275 prom_prom_taken[64]; | ||
28 | struct linux_mlist_p1275 prom_phys_avail[64]; | ||
29 | |||
30 | struct linux_mlist_p1275 *prom_ptot_ptr = prom_phys_total; | ||
31 | struct linux_mlist_p1275 *prom_ptak_ptr = prom_prom_taken; | ||
32 | struct linux_mlist_p1275 *prom_pavl_ptr = prom_phys_avail; | ||
33 | |||
34 | struct linux_mem_p1275 prom_memlist; | ||
35 | |||
36 | |||
37 | /* Internal Prom library routine to sort a linux_mlist_p1275 memory | ||
38 | * list. Used below in initialization. | ||
39 | */ | ||
40 | static void __init | ||
41 | prom_sortmemlist(struct linux_mlist_p1275 *thislist) | ||
42 | { | ||
43 | int swapi = 0; | ||
44 | int i, mitr; | ||
45 | unsigned long tmpaddr, tmpsize; | ||
46 | unsigned long lowest; | ||
47 | |||
48 | for(i=0; thislist[i].theres_more; i++) { | ||
49 | lowest = thislist[i].start_adr; | ||
50 | for(mitr = i+1; thislist[mitr-1].theres_more; mitr++) | ||
51 | if(thislist[mitr].start_adr < lowest) { | ||
52 | lowest = thislist[mitr].start_adr; | ||
53 | swapi = mitr; | ||
54 | } | ||
55 | if(lowest == thislist[i].start_adr) continue; | ||
56 | tmpaddr = thislist[swapi].start_adr; | ||
57 | tmpsize = thislist[swapi].num_bytes; | ||
58 | for(mitr = swapi; mitr > i; mitr--) { | ||
59 | thislist[mitr].start_adr = thislist[mitr-1].start_adr; | ||
60 | thislist[mitr].num_bytes = thislist[mitr-1].num_bytes; | ||
61 | } | ||
62 | thislist[i].start_adr = tmpaddr; | ||
63 | thislist[i].num_bytes = tmpsize; | ||
64 | } | ||
65 | } | ||
66 | |||
67 | /* Initialize the memory lists based upon the prom version. */ | ||
68 | void __init prom_meminit(void) | ||
69 | { | ||
70 | int node = 0; | ||
71 | unsigned int iter, num_regs; | ||
72 | |||
73 | node = prom_finddevice("/memory"); | ||
74 | num_regs = prom_getproperty(node, "available", | ||
75 | (char *) prom_reg_memlist, | ||
76 | sizeof(prom_reg_memlist)); | ||
77 | num_regs = (num_regs/sizeof(struct linux_prom64_registers)); | ||
78 | for(iter=0; iter<num_regs; iter++) { | ||
79 | prom_phys_avail[iter].start_adr = | ||
80 | prom_reg_memlist[iter].phys_addr; | ||
81 | prom_phys_avail[iter].num_bytes = | ||
82 | prom_reg_memlist[iter].reg_size; | ||
83 | prom_phys_avail[iter].theres_more = | ||
84 | &prom_phys_avail[iter+1]; | ||
85 | } | ||
86 | prom_phys_avail[iter-1].theres_more = NULL; | ||
87 | |||
88 | num_regs = prom_getproperty(node, "reg", | ||
89 | (char *) prom_reg_memlist, | ||
90 | sizeof(prom_reg_memlist)); | ||
91 | num_regs = (num_regs/sizeof(struct linux_prom64_registers)); | ||
92 | for(iter=0; iter<num_regs; iter++) { | ||
93 | prom_phys_total[iter].start_adr = | ||
94 | prom_reg_memlist[iter].phys_addr; | ||
95 | prom_phys_total[iter].num_bytes = | ||
96 | prom_reg_memlist[iter].reg_size; | ||
97 | prom_phys_total[iter].theres_more = | ||
98 | &prom_phys_total[iter+1]; | ||
99 | } | ||
100 | prom_phys_total[iter-1].theres_more = NULL; | ||
101 | |||
102 | node = prom_finddevice("/virtual-memory"); | ||
103 | num_regs = prom_getproperty(node, "available", | ||
104 | (char *) prom_reg_memlist, | ||
105 | sizeof(prom_reg_memlist)); | ||
106 | num_regs = (num_regs/sizeof(struct linux_prom64_registers)); | ||
107 | |||
108 | /* Convert available virtual areas to taken virtual | ||
109 | * areas. First sort, then convert. | ||
110 | */ | ||
111 | for(iter=0; iter<num_regs; iter++) { | ||
112 | prom_prom_taken[iter].start_adr = | ||
113 | prom_reg_memlist[iter].phys_addr; | ||
114 | prom_prom_taken[iter].num_bytes = | ||
115 | prom_reg_memlist[iter].reg_size; | ||
116 | prom_prom_taken[iter].theres_more = | ||
117 | &prom_prom_taken[iter+1]; | ||
118 | } | ||
119 | prom_prom_taken[iter-1].theres_more = NULL; | ||
120 | |||
121 | prom_sortmemlist(prom_prom_taken); | ||
122 | |||
123 | /* Finally, convert. */ | ||
124 | for(iter=0; iter<num_regs; iter++) { | ||
125 | prom_prom_taken[iter].start_adr = | ||
126 | prom_prom_taken[iter].start_adr + | ||
127 | prom_prom_taken[iter].num_bytes; | ||
128 | prom_prom_taken[iter].num_bytes = | ||
129 | prom_prom_taken[iter+1].start_adr - | ||
130 | prom_prom_taken[iter].start_adr; | ||
131 | } | ||
132 | prom_prom_taken[iter-1].num_bytes = | ||
133 | -1UL - prom_prom_taken[iter-1].start_adr; | ||
134 | |||
135 | /* Sort the other two lists. */ | ||
136 | prom_sortmemlist(prom_phys_total); | ||
137 | prom_sortmemlist(prom_phys_avail); | ||
138 | |||
139 | /* Link all the lists into the top-level descriptor. */ | ||
140 | prom_memlist.p1275_totphys=&prom_ptot_ptr; | ||
141 | prom_memlist.p1275_prommap=&prom_ptak_ptr; | ||
142 | prom_memlist.p1275_available=&prom_pavl_ptr; | ||
143 | } | ||
144 | |||
145 | /* This returns a pointer to our libraries internal p1275 format | ||
146 | * memory descriptor. | ||
147 | */ | ||
148 | struct linux_mem_p1275 * | ||
149 | prom_meminfo(void) | ||
150 | { | ||
151 | return &prom_memlist; | ||
152 | } | ||
diff --git a/arch/um/Makefile b/arch/um/Makefile index 5b5af95721ab..e1ffad224605 100644 --- a/arch/um/Makefile +++ b/arch/um/Makefile | |||
@@ -28,8 +28,6 @@ SYMLINK_HEADERS := $(foreach header,$(SYMLINK_HEADERS),include/asm-um/$(header)) | |||
28 | ARCH_SYMLINKS = include/asm-um/arch $(ARCH_DIR)/include/sysdep $(ARCH_DIR)/os \ | 28 | ARCH_SYMLINKS = include/asm-um/arch $(ARCH_DIR)/include/sysdep $(ARCH_DIR)/os \ |
29 | $(SYMLINK_HEADERS) $(ARCH_DIR)/include/uml-config.h | 29 | $(SYMLINK_HEADERS) $(ARCH_DIR)/include/uml-config.h |
30 | 30 | ||
31 | GEN_HEADERS += $(ARCH_DIR)/include/task.h $(ARCH_DIR)/include/kern_constants.h | ||
32 | |||
33 | um-modes-$(CONFIG_MODE_TT) += tt | 31 | um-modes-$(CONFIG_MODE_TT) += tt |
34 | um-modes-$(CONFIG_MODE_SKAS) += skas | 32 | um-modes-$(CONFIG_MODE_SKAS) += skas |
35 | 33 | ||
@@ -45,9 +43,7 @@ endif | |||
45 | 43 | ||
46 | ARCH_INCLUDE := -I$(ARCH_DIR)/include | 44 | ARCH_INCLUDE := -I$(ARCH_DIR)/include |
47 | ifneq ($(KBUILD_SRC),) | 45 | ifneq ($(KBUILD_SRC),) |
48 | ARCH_INCLUDE += -I$(ARCH_DIR)/include2 | ||
49 | ARCH_INCLUDE += -I$(srctree)/$(ARCH_DIR)/include | 46 | ARCH_INCLUDE += -I$(srctree)/$(ARCH_DIR)/include |
50 | MRPROPER_DIRS += $(ARCH_DIR)/include2 | ||
51 | endif | 47 | endif |
52 | SYS_DIR := $(ARCH_DIR)/include/sysdep-$(SUBARCH) | 48 | SYS_DIR := $(ARCH_DIR)/include/sysdep-$(SUBARCH) |
53 | 49 | ||
@@ -87,10 +83,6 @@ CONFIG_KERNEL_HALF_GIGS ?= 0 | |||
87 | 83 | ||
88 | SIZE = (($(CONFIG_NEST_LEVEL) + $(CONFIG_KERNEL_HALF_GIGS)) * 0x20000000) | 84 | SIZE = (($(CONFIG_NEST_LEVEL) + $(CONFIG_KERNEL_HALF_GIGS)) * 0x20000000) |
89 | 85 | ||
90 | ifeq ($(CONFIG_MODE_SKAS), y) | ||
91 | $(SYS_HEADERS) : $(ARCH_DIR)/include/skas_ptregs.h | ||
92 | endif | ||
93 | |||
94 | .PHONY: linux | 86 | .PHONY: linux |
95 | 87 | ||
96 | all: linux | 88 | all: linux |
@@ -111,7 +103,8 @@ else | |||
111 | $(shell cd $(ARCH_DIR) && ln -sf Kconfig.$(SUBARCH) Kconfig.arch) | 103 | $(shell cd $(ARCH_DIR) && ln -sf Kconfig.$(SUBARCH) Kconfig.arch) |
112 | endif | 104 | endif |
113 | 105 | ||
114 | archprepare: $(ARCH_SYMLINKS) $(SYS_HEADERS) $(GEN_HEADERS) | 106 | archprepare: $(ARCH_SYMLINKS) $(ARCH_DIR)/include/user_constants.h |
107 | prepare: $(ARCH_DIR)/include/kern_constants.h | ||
115 | 108 | ||
116 | LINK-$(CONFIG_LD_SCRIPT_STATIC) += -static | 109 | LINK-$(CONFIG_LD_SCRIPT_STATIC) += -static |
117 | LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib | 110 | LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib |
@@ -146,22 +139,20 @@ endef | |||
146 | #When cleaning we don't include .config, so we don't include | 139 | #When cleaning we don't include .config, so we don't include |
147 | #TT or skas makefiles and don't clean skas_ptregs.h. | 140 | #TT or skas makefiles and don't clean skas_ptregs.h. |
148 | CLEAN_FILES += linux x.i gmon.out $(ARCH_DIR)/include/uml-config.h \ | 141 | CLEAN_FILES += linux x.i gmon.out $(ARCH_DIR)/include/uml-config.h \ |
149 | $(GEN_HEADERS) $(ARCH_DIR)/include/skas_ptregs.h \ | 142 | $(ARCH_DIR)/include/user_constants.h \ |
150 | $(ARCH_DIR)/include/user_constants.h $(ARCH_DIR)/Kconfig.arch | 143 | $(ARCH_DIR)/include/kern_constants.h $(ARCH_DIR)/Kconfig.arch |
151 | 144 | ||
152 | MRPROPER_FILES += $(SYMLINK_HEADERS) $(ARCH_SYMLINKS) \ | 145 | MRPROPER_FILES += $(SYMLINK_HEADERS) $(ARCH_SYMLINKS) \ |
153 | $(addprefix $(ARCH_DIR)/kernel/,$(KERN_SYMLINKS)) $(ARCH_DIR)/os | 146 | $(addprefix $(ARCH_DIR)/kernel/,$(KERN_SYMLINKS)) $(ARCH_DIR)/os |
154 | 147 | ||
155 | archclean: | 148 | archclean: |
156 | $(Q)$(MAKE) $(clean)=$(ARCH_DIR)/util | ||
157 | $(Q)$(MAKE) $(clean)=$(ARCH_DIR)/os-$(OS)/util | ||
158 | @find . \( -name '*.bb' -o -name '*.bbg' -o -name '*.da' \ | 149 | @find . \( -name '*.bb' -o -name '*.bbg' -o -name '*.da' \ |
159 | -o -name '*.gcov' \) -type f -print | xargs rm -f | 150 | -o -name '*.gcov' \) -type f -print | xargs rm -f |
160 | 151 | ||
161 | $(SYMLINK_HEADERS): | 152 | $(SYMLINK_HEADERS): |
162 | @echo ' SYMLINK $@' | 153 | @echo ' SYMLINK $@' |
163 | ifneq ($(KBUILD_SRC),) | 154 | ifneq ($(KBUILD_SRC),) |
164 | ln -fsn $(srctree)/include/asm-um/$(basename $(notdir $@))-$(SUBARCH)$(suffix $@) $@ | 155 | $(Q)ln -fsn $(srctree)/include/asm-um/$(basename $(notdir $@))-$(SUBARCH)$(suffix $@) $@ |
165 | else | 156 | else |
166 | $(Q)cd $(TOPDIR)/$(dir $@) ; \ | 157 | $(Q)cd $(TOPDIR)/$(dir $@) ; \ |
167 | ln -sf $(basename $(notdir $@))-$(SUBARCH)$(suffix $@) $(notdir $@) | 158 | ln -sf $(basename $(notdir $@))-$(SUBARCH)$(suffix $@) $(notdir $@) |
@@ -180,9 +171,7 @@ $(ARCH_DIR)/include/sysdep: | |||
180 | @echo ' SYMLINK $@' | 171 | @echo ' SYMLINK $@' |
181 | ifneq ($(KBUILD_SRC),) | 172 | ifneq ($(KBUILD_SRC),) |
182 | $(Q)mkdir -p $(ARCH_DIR)/include | 173 | $(Q)mkdir -p $(ARCH_DIR)/include |
183 | $(Q)mkdir -p $(ARCH_DIR)/include2 | 174 | $(Q)ln -fsn $(srctree)/$(ARCH_DIR)/include/sysdep-$(SUBARCH) $(ARCH_DIR)/include/sysdep |
184 | $(Q)ln -fsn sysdep-$(SUBARCH) $(ARCH_DIR)/include/sysdep | ||
185 | $(Q)ln -fsn $(srctree)/$(ARCH_DIR)/include/sysdep-$(SUBARCH) $(ARCH_DIR)/include2/sysdep | ||
186 | else | 175 | else |
187 | $(Q)cd $(ARCH_DIR)/include && ln -sf sysdep-$(SUBARCH) sysdep | 176 | $(Q)cd $(ARCH_DIR)/include && ln -sf sysdep-$(SUBARCH) sysdep |
188 | endif | 177 | endif |
@@ -202,8 +191,6 @@ endef | |||
202 | 191 | ||
203 | define filechk_gen-asm-offsets | 192 | define filechk_gen-asm-offsets |
204 | (set -e; \ | 193 | (set -e; \ |
205 | echo "#ifndef __ASM_OFFSETS_H__"; \ | ||
206 | echo "#define __ASM_OFFSETS_H__"; \ | ||
207 | echo "/*"; \ | 194 | echo "/*"; \ |
208 | echo " * DO NOT MODIFY."; \ | 195 | echo " * DO NOT MODIFY."; \ |
209 | echo " *"; \ | 196 | echo " *"; \ |
@@ -212,8 +199,7 @@ define filechk_gen-asm-offsets | |||
212 | echo " */"; \ | 199 | echo " */"; \ |
213 | echo ""; \ | 200 | echo ""; \ |
214 | sed -ne "/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}"; \ | 201 | sed -ne "/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}"; \ |
215 | echo ""; \ | 202 | echo ""; ) |
216 | echo "#endif" ) | ||
217 | endef | 203 | endef |
218 | 204 | ||
219 | $(ARCH_DIR)/include/uml-config.h : include/linux/autoconf.h | 205 | $(ARCH_DIR)/include/uml-config.h : include/linux/autoconf.h |
@@ -222,50 +208,18 @@ $(ARCH_DIR)/include/uml-config.h : include/linux/autoconf.h | |||
222 | $(ARCH_DIR)/user-offsets.s: $(ARCH_DIR)/sys-$(SUBARCH)/user-offsets.c | 208 | $(ARCH_DIR)/user-offsets.s: $(ARCH_DIR)/sys-$(SUBARCH)/user-offsets.c |
223 | $(CC) $(USER_CFLAGS) -S -o $@ $< | 209 | $(CC) $(USER_CFLAGS) -S -o $@ $< |
224 | 210 | ||
225 | $(ARCH_DIR)/user-offsets.h: $(ARCH_DIR)/user-offsets.s | 211 | $(ARCH_DIR)/include/user_constants.h: $(ARCH_DIR)/user-offsets.s |
226 | $(call filechk,gen-asm-offsets) | 212 | $(call filechk,gen-asm-offsets) |
227 | 213 | ||
228 | CLEAN_FILES += $(ARCH_DIR)/user-offsets.s $(ARCH_DIR)/user-offsets.h | 214 | CLEAN_FILES += $(ARCH_DIR)/user-offsets.s |
229 | 215 | ||
230 | $(ARCH_DIR)/kernel-offsets.s: $(ARCH_DIR)/sys-$(SUBARCH)/kernel-offsets.c \ | 216 | $(ARCH_DIR)/kernel-offsets.s: $(ARCH_DIR)/sys-$(SUBARCH)/kernel-offsets.c \ |
231 | $(ARCH_SYMLINKS) \ | 217 | archprepare |
232 | $(SYS_DIR)/sc.h \ | ||
233 | include/asm include/linux/version.h \ | ||
234 | include/config/MARKER \ | ||
235 | $(ARCH_DIR)/include/user_constants.h | ||
236 | $(CC) $(CFLAGS) $(NOSTDINC_FLAGS) $(CPPFLAGS) -S -o $@ $< | 218 | $(CC) $(CFLAGS) $(NOSTDINC_FLAGS) $(CPPFLAGS) -S -o $@ $< |
237 | 219 | ||
238 | $(ARCH_DIR)/kernel-offsets.h: $(ARCH_DIR)/kernel-offsets.s | 220 | $(ARCH_DIR)/include/kern_constants.h: $(ARCH_DIR)/kernel-offsets.s |
239 | $(call filechk,gen-asm-offsets) | 221 | $(call filechk,gen-asm-offsets) |
240 | 222 | ||
241 | CLEAN_FILES += $(ARCH_DIR)/kernel-offsets.s $(ARCH_DIR)/kernel-offsets.h | 223 | CLEAN_FILES += $(ARCH_DIR)/kernel-offsets.s |
242 | |||
243 | $(ARCH_DIR)/include/task.h: $(ARCH_DIR)/util/mk_task | ||
244 | $(call filechk,gen_header) | ||
245 | |||
246 | $(ARCH_DIR)/include/user_constants.h: $(ARCH_DIR)/os-$(OS)/util/mk_user_constants | ||
247 | $(call filechk,gen_header) | ||
248 | |||
249 | $(ARCH_DIR)/include/kern_constants.h: $(ARCH_DIR)/util/mk_constants | ||
250 | $(call filechk,gen_header) | ||
251 | |||
252 | $(ARCH_DIR)/include/skas_ptregs.h: $(ARCH_DIR)/kernel/skas/util/mk_ptregs | ||
253 | $(call filechk,gen_header) | ||
254 | |||
255 | $(ARCH_DIR)/os-$(OS)/util/mk_user_constants: $(ARCH_DIR)/os-$(OS)/util FORCE ; | ||
256 | |||
257 | $(ARCH_DIR)/util/mk_task $(ARCH_DIR)/util/mk_constants: $(ARCH_DIR)/include/user_constants.h $(ARCH_DIR)/util \ | ||
258 | FORCE ; | ||
259 | |||
260 | $(ARCH_DIR)/kernel/skas/util/mk_ptregs: $(ARCH_DIR)/kernel/skas/util FORCE ; | ||
261 | |||
262 | $(ARCH_DIR)/util: scripts_basic $(SYS_DIR)/sc.h $(ARCH_DIR)/kernel-offsets.h FORCE | ||
263 | $(Q)$(MAKE) $(build)=$@ | ||
264 | |||
265 | $(ARCH_DIR)/kernel/skas/util: scripts_basic $(ARCH_DIR)/user-offsets.h FORCE | ||
266 | $(Q)$(MAKE) $(build)=$@ | ||
267 | |||
268 | $(ARCH_DIR)/os-$(OS)/util: scripts_basic $(ARCH_DIR)/user-offsets.h FORCE | ||
269 | $(Q)$(MAKE) $(build)=$@ | ||
270 | 224 | ||
271 | export SUBARCH USER_CFLAGS OS | 225 | export SUBARCH USER_CFLAGS OS |
diff --git a/arch/um/Makefile-i386 b/arch/um/Makefile-i386 index 1ab431a53ac3..2ee8a2858117 100644 --- a/arch/um/Makefile-i386 +++ b/arch/um/Makefile-i386 | |||
@@ -32,25 +32,3 @@ CFLAGS += -U__$(SUBARCH)__ -U$(SUBARCH) | |||
32 | ifneq ($(CONFIG_GPROF),y) | 32 | ifneq ($(CONFIG_GPROF),y) |
33 | ARCH_CFLAGS += -DUM_FASTCALL | 33 | ARCH_CFLAGS += -DUM_FASTCALL |
34 | endif | 34 | endif |
35 | |||
36 | SYS_UTIL_DIR := $(ARCH_DIR)/sys-i386/util | ||
37 | SYS_HEADERS := $(SYS_DIR)/sc.h $(SYS_DIR)/thread.h | ||
38 | |||
39 | prepare: $(SYS_HEADERS) | ||
40 | |||
41 | $(SYS_DIR)/sc.h: $(SYS_UTIL_DIR)/mk_sc | ||
42 | $(call filechk,gen_header) | ||
43 | |||
44 | $(SYS_DIR)/thread.h: $(SYS_UTIL_DIR)/mk_thread | ||
45 | $(call filechk,gen_header) | ||
46 | |||
47 | $(SYS_UTIL_DIR)/mk_sc: scripts_basic $(ARCH_DIR)/user-offsets.h FORCE | ||
48 | $(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@ | ||
49 | |||
50 | $(SYS_UTIL_DIR)/mk_thread: scripts_basic $(ARCH_DIR)/kernel-offsets.h FORCE | ||
51 | $(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@ | ||
52 | |||
53 | $(SYS_UTIL_DIR): scripts_basic include/asm FORCE | ||
54 | $(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) | ||
55 | |||
56 | CLEAN_FILES += $(SYS_HEADERS) | ||
diff --git a/arch/um/Makefile-skas b/arch/um/Makefile-skas index fd18ec572271..ac35de5316a6 100644 --- a/arch/um/Makefile-skas +++ b/arch/um/Makefile-skas | |||
@@ -10,5 +10,3 @@ CFLAGS-$(CONFIG_GCOV) += $(GCOV_OPT) | |||
10 | CFLAGS-$(CONFIG_GPROF) += $(GPROF_OPT) | 10 | CFLAGS-$(CONFIG_GPROF) += $(GPROF_OPT) |
11 | LINK-$(CONFIG_GCOV) += $(GCOV_OPT) | 11 | LINK-$(CONFIG_GCOV) += $(GCOV_OPT) |
12 | LINK-$(CONFIG_GPROF) += $(GPROF_OPT) | 12 | LINK-$(CONFIG_GPROF) += $(GPROF_OPT) |
13 | |||
14 | GEN_HEADERS += $(ARCH_DIR)/include/skas_ptregs.h | ||
diff --git a/arch/um/Makefile-x86_64 b/arch/um/Makefile-x86_64 index 436abbba409b..4f118d5cc2ee 100644 --- a/arch/um/Makefile-x86_64 +++ b/arch/um/Makefile-x86_64 | |||
@@ -12,24 +12,3 @@ CHECKFLAGS += -m64 | |||
12 | 12 | ||
13 | ELF_ARCH := i386:x86-64 | 13 | ELF_ARCH := i386:x86-64 |
14 | ELF_FORMAT := elf64-x86-64 | 14 | ELF_FORMAT := elf64-x86-64 |
15 | |||
16 | SYS_UTIL_DIR := $(ARCH_DIR)/sys-x86_64/util | ||
17 | SYS_DIR := $(ARCH_DIR)/include/sysdep-x86_64 | ||
18 | |||
19 | SYS_HEADERS = $(SYS_DIR)/sc.h $(SYS_DIR)/thread.h | ||
20 | |||
21 | prepare: $(SYS_HEADERS) | ||
22 | |||
23 | $(SYS_DIR)/sc.h: $(SYS_UTIL_DIR)/mk_sc | ||
24 | $(call filechk,gen_header) | ||
25 | |||
26 | $(SYS_DIR)/thread.h: $(SYS_UTIL_DIR)/mk_thread | ||
27 | $(call filechk,gen_header) | ||
28 | |||
29 | $(SYS_UTIL_DIR)/mk_sc: scripts_basic $(ARCH_DIR)/user-offsets.h FORCE | ||
30 | $(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@ | ||
31 | |||
32 | $(SYS_UTIL_DIR)/mk_thread: scripts_basic $(GEN_HEADERS) $(ARCH_DIR)/kernel-offsets.h FORCE | ||
33 | $(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@ | ||
34 | |||
35 | CLEAN_FILES += $(SYS_HEADERS) | ||
diff --git a/arch/um/drivers/cow.h b/arch/um/drivers/cow.h index 4fcf3a8d13f4..dc36b222100b 100644 --- a/arch/um/drivers/cow.h +++ b/arch/um/drivers/cow.h | |||
@@ -3,15 +3,40 @@ | |||
3 | 3 | ||
4 | #include <asm/types.h> | 4 | #include <asm/types.h> |
5 | 5 | ||
6 | #if defined(__BIG_ENDIAN) | 6 | #if defined(__KERNEL__) |
7 | # define ntohll(x) (x) | 7 | |
8 | # define htonll(x) (x) | 8 | # include <asm/byteorder.h> |
9 | #elif defined(__LITTLE_ENDIAN) | 9 | |
10 | # define ntohll(x) bswap_64(x) | 10 | # if defined(__BIG_ENDIAN) |
11 | # define htonll(x) bswap_64(x) | 11 | # define ntohll(x) (x) |
12 | # define htonll(x) (x) | ||
13 | # elif defined(__LITTLE_ENDIAN) | ||
14 | # define ntohll(x) be64_to_cpu(x) | ||
15 | # define htonll(x) cpu_to_be64(x) | ||
16 | # else | ||
17 | # error "Could not determine byte order" | ||
18 | # endif | ||
19 | |||
12 | #else | 20 | #else |
13 | #error "__BYTE_ORDER not defined" | 21 | /* For the definition of ntohl, htonl and __BYTE_ORDER */ |
22 | #include <endian.h> | ||
23 | #include <netinet/in.h> | ||
24 | #if defined(__BYTE_ORDER) | ||
25 | |||
26 | # if __BYTE_ORDER == __BIG_ENDIAN | ||
27 | # define ntohll(x) (x) | ||
28 | # define htonll(x) (x) | ||
29 | # elif __BYTE_ORDER == __LITTLE_ENDIAN | ||
30 | # define ntohll(x) bswap_64(x) | ||
31 | # define htonll(x) bswap_64(x) | ||
32 | # else | ||
33 | # error "Could not determine byte order: __BYTE_ORDER uncorrectly defined" | ||
34 | # endif | ||
35 | |||
36 | #else /* ! defined(__BYTE_ORDER) */ | ||
37 | # error "Could not determine byte order: __BYTE_ORDER not defined" | ||
14 | #endif | 38 | #endif |
39 | #endif /* ! defined(__KERNEL__) */ | ||
15 | 40 | ||
16 | extern int init_cow_file(int fd, char *cow_file, char *backing_file, | 41 | extern int init_cow_file(int fd, char *cow_file, char *backing_file, |
17 | int sectorsize, int alignment, int *bitmap_offset_out, | 42 | int sectorsize, int alignment, int *bitmap_offset_out, |
diff --git a/arch/um/drivers/cow_user.c b/arch/um/drivers/cow_user.c index a8ce6fc3ef26..fbe2217db5dd 100644 --- a/arch/um/drivers/cow_user.c +++ b/arch/um/drivers/cow_user.c | |||
@@ -9,7 +9,6 @@ | |||
9 | #include <sys/time.h> | 9 | #include <sys/time.h> |
10 | #include <sys/param.h> | 10 | #include <sys/param.h> |
11 | #include <sys/user.h> | 11 | #include <sys/user.h> |
12 | #include <netinet/in.h> | ||
13 | 12 | ||
14 | #include "os.h" | 13 | #include "os.h" |
15 | 14 | ||
diff --git a/arch/um/drivers/mconsole_user.c b/arch/um/drivers/mconsole_user.c index 04383f98f4d5..310c1f823f26 100644 --- a/arch/um/drivers/mconsole_user.c +++ b/arch/um/drivers/mconsole_user.c | |||
@@ -23,7 +23,7 @@ static struct mconsole_command commands[] = { | |||
23 | { "reboot", mconsole_reboot, MCONSOLE_PROC }, | 23 | { "reboot", mconsole_reboot, MCONSOLE_PROC }, |
24 | { "config", mconsole_config, MCONSOLE_PROC }, | 24 | { "config", mconsole_config, MCONSOLE_PROC }, |
25 | { "remove", mconsole_remove, MCONSOLE_PROC }, | 25 | { "remove", mconsole_remove, MCONSOLE_PROC }, |
26 | { "sysrq", mconsole_sysrq, MCONSOLE_PROC }, | 26 | { "sysrq", mconsole_sysrq, MCONSOLE_INTR }, |
27 | { "help", mconsole_help, MCONSOLE_INTR }, | 27 | { "help", mconsole_help, MCONSOLE_INTR }, |
28 | { "cad", mconsole_cad, MCONSOLE_INTR }, | 28 | { "cad", mconsole_cad, MCONSOLE_INTR }, |
29 | { "stop", mconsole_stop, MCONSOLE_PROC }, | 29 | { "stop", mconsole_stop, MCONSOLE_PROC }, |
diff --git a/arch/um/drivers/port_kern.c b/arch/um/drivers/port_kern.c index c41efd207fcc..189839e4f1d4 100644 --- a/arch/um/drivers/port_kern.c +++ b/arch/um/drivers/port_kern.c | |||
@@ -7,7 +7,6 @@ | |||
7 | #include "linux/sched.h" | 7 | #include "linux/sched.h" |
8 | #include "linux/slab.h" | 8 | #include "linux/slab.h" |
9 | #include "linux/interrupt.h" | 9 | #include "linux/interrupt.h" |
10 | #include "linux/irq.h" | ||
11 | #include "linux/spinlock.h" | 10 | #include "linux/spinlock.h" |
12 | #include "linux/errno.h" | 11 | #include "linux/errno.h" |
13 | #include "asm/atomic.h" | 12 | #include "asm/atomic.h" |
diff --git a/arch/um/include/common-offsets.h b/arch/um/include/common-offsets.h index 782ac3a3baf9..356390d1f8b9 100644 --- a/arch/um/include/common-offsets.h +++ b/arch/um/include/common-offsets.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* for use by sys-$SUBARCH/kernel-offsets.c */ | 1 | /* for use by sys-$SUBARCH/kernel-offsets.c */ |
2 | 2 | ||
3 | OFFSET(TASK_REGS, task_struct, thread.regs); | 3 | OFFSET(HOST_TASK_REGS, task_struct, thread.regs); |
4 | OFFSET(TASK_PID, task_struct, pid); | 4 | OFFSET(HOST_TASK_PID, task_struct, pid); |
5 | DEFINE(UM_KERN_PAGE_SIZE, PAGE_SIZE); | 5 | DEFINE(UM_KERN_PAGE_SIZE, PAGE_SIZE); |
6 | DEFINE(UM_NSEC_PER_SEC, NSEC_PER_SEC); | 6 | DEFINE(UM_NSEC_PER_SEC, NSEC_PER_SEC); |
7 | DEFINE_STR(UM_KERN_EMERG, KERN_EMERG); | 7 | DEFINE_STR(UM_KERN_EMERG, KERN_EMERG); |
diff --git a/arch/um/include/os.h b/arch/um/include/os.h index 583329d0a539..6f766e1faecc 100644 --- a/arch/um/include/os.h +++ b/arch/um/include/os.h | |||
@@ -157,6 +157,10 @@ extern int os_lock_file(int fd, int excl); | |||
157 | extern void os_early_checks(void); | 157 | extern void os_early_checks(void); |
158 | extern int can_do_skas(void); | 158 | extern int can_do_skas(void); |
159 | 159 | ||
160 | /* Make sure they are clear when running in TT mode. Required by | ||
161 | * SEGV_MAYBE_FIXABLE */ | ||
162 | #define clear_can_do_skas() do { ptrace_faultinfo = proc_mm = 0; } while (0) | ||
163 | |||
160 | /* mem.c */ | 164 | /* mem.c */ |
161 | extern int create_mem_file(unsigned long len); | 165 | extern int create_mem_file(unsigned long len); |
162 | 166 | ||
diff --git a/arch/um/include/registers.h b/arch/um/include/registers.h index 0a35e6d0baa0..4892e5fcef07 100644 --- a/arch/um/include/registers.h +++ b/arch/um/include/registers.h | |||
@@ -15,16 +15,6 @@ extern void save_registers(int pid, union uml_pt_regs *regs); | |||
15 | extern void restore_registers(int pid, union uml_pt_regs *regs); | 15 | extern void restore_registers(int pid, union uml_pt_regs *regs); |
16 | extern void init_registers(int pid); | 16 | extern void init_registers(int pid); |
17 | extern void get_safe_registers(unsigned long * regs); | 17 | extern void get_safe_registers(unsigned long * regs); |
18 | extern void get_thread_regs(union uml_pt_regs *uml_regs, void *buffer); | ||
18 | 19 | ||
19 | #endif | 20 | #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/include/skas_ptregs.h b/arch/um/include/skas_ptregs.h new file mode 100644 index 000000000000..73db19e9c077 --- /dev/null +++ b/arch/um/include/skas_ptregs.h | |||
@@ -0,0 +1,6 @@ | |||
1 | #ifndef __SKAS_PT_REGS_ | ||
2 | #define __SKAS_PT_REGS_ | ||
3 | |||
4 | #include <user_constants.h> | ||
5 | |||
6 | #endif | ||
diff --git a/arch/um/include/sysdep-i386/sc.h b/arch/um/include/sysdep-i386/sc.h new file mode 100644 index 000000000000..c57d1780ad37 --- /dev/null +++ b/arch/um/include/sysdep-i386/sc.h | |||
@@ -0,0 +1,44 @@ | |||
1 | #ifndef __SYSDEP_I386_SC_H | ||
2 | #define __SYSDEP_I386_SC_H | ||
3 | |||
4 | #include <user_constants.h> | ||
5 | |||
6 | #define SC_OFFSET(sc, field) \ | ||
7 | *((unsigned long *) &(((char *) (sc))[HOST_##field])) | ||
8 | #define SC_FP_OFFSET(sc, field) \ | ||
9 | *((unsigned long *) &(((char *) (SC_FPSTATE(sc)))[HOST_##field])) | ||
10 | #define SC_FP_OFFSET_PTR(sc, field, type) \ | ||
11 | ((type *) &(((char *) (SC_FPSTATE(sc)))[HOST_##field])) | ||
12 | |||
13 | #define SC_IP(sc) SC_OFFSET(sc, SC_IP) | ||
14 | #define SC_SP(sc) SC_OFFSET(sc, SC_SP) | ||
15 | #define SC_FS(sc) SC_OFFSET(sc, SC_FS) | ||
16 | #define SC_GS(sc) SC_OFFSET(sc, SC_GS) | ||
17 | #define SC_DS(sc) SC_OFFSET(sc, SC_DS) | ||
18 | #define SC_ES(sc) SC_OFFSET(sc, SC_ES) | ||
19 | #define SC_SS(sc) SC_OFFSET(sc, SC_SS) | ||
20 | #define SC_CS(sc) SC_OFFSET(sc, SC_CS) | ||
21 | #define SC_EFLAGS(sc) SC_OFFSET(sc, SC_EFLAGS) | ||
22 | #define SC_EAX(sc) SC_OFFSET(sc, SC_EAX) | ||
23 | #define SC_EBX(sc) SC_OFFSET(sc, SC_EBX) | ||
24 | #define SC_ECX(sc) SC_OFFSET(sc, SC_ECX) | ||
25 | #define SC_EDX(sc) SC_OFFSET(sc, SC_EDX) | ||
26 | #define SC_EDI(sc) SC_OFFSET(sc, SC_EDI) | ||
27 | #define SC_ESI(sc) SC_OFFSET(sc, SC_ESI) | ||
28 | #define SC_EBP(sc) SC_OFFSET(sc, SC_EBP) | ||
29 | #define SC_TRAPNO(sc) SC_OFFSET(sc, SC_TRAPNO) | ||
30 | #define SC_ERR(sc) SC_OFFSET(sc, SC_ERR) | ||
31 | #define SC_CR2(sc) SC_OFFSET(sc, SC_CR2) | ||
32 | #define SC_FPSTATE(sc) SC_OFFSET(sc, SC_FPSTATE) | ||
33 | #define SC_SIGMASK(sc) SC_OFFSET(sc, SC_SIGMASK) | ||
34 | #define SC_FP_CW(sc) SC_FP_OFFSET(sc, SC_FP_CW) | ||
35 | #define SC_FP_SW(sc) SC_FP_OFFSET(sc, SC_FP_SW) | ||
36 | #define SC_FP_TAG(sc) SC_FP_OFFSET(sc, SC_FP_TAG) | ||
37 | #define SC_FP_IPOFF(sc) SC_FP_OFFSET(sc, SC_FP_IPOFF) | ||
38 | #define SC_FP_CSSEL(sc) SC_FP_OFFSET(sc, SC_FP_CSSEL) | ||
39 | #define SC_FP_DATAOFF(sc) SC_FP_OFFSET(sc, SC_FP_DATAOFF) | ||
40 | #define SC_FP_DATASEL(sc) SC_FP_OFFSET(sc, SC_FP_DATASEL) | ||
41 | #define SC_FP_ST(sc) SC_FP_OFFSET_PTR(sc, SC_FP_ST, struct _fpstate) | ||
42 | #define SC_FXSR_ENV(sc) SC_FP_OFFSET_PTR(sc, SC_FXSR_ENV, void) | ||
43 | |||
44 | #endif | ||
diff --git a/arch/um/include/sysdep-i386/sigcontext.h b/arch/um/include/sysdep-i386/sigcontext.h index 1fe729265167..23fd2644d7ed 100644 --- a/arch/um/include/sysdep-i386/sigcontext.h +++ b/arch/um/include/sysdep-i386/sigcontext.h | |||
@@ -6,6 +6,7 @@ | |||
6 | #ifndef __SYS_SIGCONTEXT_I386_H | 6 | #ifndef __SYS_SIGCONTEXT_I386_H |
7 | #define __SYS_SIGCONTEXT_I386_H | 7 | #define __SYS_SIGCONTEXT_I386_H |
8 | 8 | ||
9 | #include "uml-config.h" | ||
9 | #include <sysdep/sc.h> | 10 | #include <sysdep/sc.h> |
10 | 11 | ||
11 | #define IP_RESTART_SYSCALL(ip) ((ip) -= 2) | 12 | #define IP_RESTART_SYSCALL(ip) ((ip) -= 2) |
@@ -26,7 +27,14 @@ | |||
26 | #define SC_START_SYSCALL(sc) do SC_EAX(sc) = -ENOSYS; while(0) | 27 | #define SC_START_SYSCALL(sc) do SC_EAX(sc) = -ENOSYS; while(0) |
27 | 28 | ||
28 | /* This is Page Fault */ | 29 | /* This is Page Fault */ |
29 | #define SEGV_IS_FIXABLE(fi) ((fi)->trap_no == 14) | 30 | #define SEGV_IS_FIXABLE(fi) ((fi)->trap_no == 14) |
31 | |||
32 | /* SKAS3 has no trap_no on i386, but get_skas_faultinfo() sets it to 0. */ | ||
33 | #ifdef UML_CONFIG_MODE_SKAS | ||
34 | #define SEGV_MAYBE_FIXABLE(fi) ((fi)->trap_no == 0 && ptrace_faultinfo) | ||
35 | #else | ||
36 | #define SEGV_MAYBE_FIXABLE(fi) 0 | ||
37 | #endif | ||
30 | 38 | ||
31 | extern unsigned long *sc_sigmask(void *sc_ptr); | 39 | extern unsigned long *sc_sigmask(void *sc_ptr); |
32 | extern int sc_get_fpregs(unsigned long buf, void *sc_ptr); | 40 | extern int sc_get_fpregs(unsigned long buf, void *sc_ptr); |
diff --git a/arch/um/include/sysdep-i386/thread.h b/arch/um/include/sysdep-i386/thread.h new file mode 100644 index 000000000000..e2bd6bae8b8a --- /dev/null +++ b/arch/um/include/sysdep-i386/thread.h | |||
@@ -0,0 +1,11 @@ | |||
1 | #ifndef __UM_THREAD_H | ||
2 | #define __UM_THREAD_H | ||
3 | |||
4 | #include <kern_constants.h> | ||
5 | |||
6 | #define TASK_DEBUGREGS(task) ((unsigned long *) &(((char *) (task))[HOST_TASK_DEBUGREGS])) | ||
7 | #ifdef CONFIG_MODE_TT | ||
8 | #define TASK_EXTERN_PID(task) *((int *) &(((char *) (task))[HOST_TASK_EXTERN_PID])) | ||
9 | #endif | ||
10 | |||
11 | #endif | ||
diff --git a/arch/um/include/sysdep-x86_64/ptrace.h b/arch/um/include/sysdep-x86_64/ptrace.h index 331aa2d1f3f5..8f0656766c21 100644 --- a/arch/um/include/sysdep-x86_64/ptrace.h +++ b/arch/um/include/sysdep-x86_64/ptrace.h | |||
@@ -218,10 +218,6 @@ struct syscall_args { | |||
218 | case RBP: UPT_RBP(regs) = __upt_val; break; \ | 218 | case RBP: UPT_RBP(regs) = __upt_val; break; \ |
219 | case ORIG_RAX: UPT_ORIG_RAX(regs) = __upt_val; break; \ | 219 | case ORIG_RAX: UPT_ORIG_RAX(regs) = __upt_val; break; \ |
220 | case CS: UPT_CS(regs) = __upt_val; break; \ | 220 | case CS: UPT_CS(regs) = __upt_val; break; \ |
221 | case DS: UPT_DS(regs) = __upt_val; break; \ | ||
222 | case ES: UPT_ES(regs) = __upt_val; break; \ | ||
223 | case FS: UPT_FS(regs) = __upt_val; break; \ | ||
224 | case GS: UPT_GS(regs) = __upt_val; break; \ | ||
225 | case EFLAGS: UPT_EFLAGS(regs) = __upt_val; break; \ | 221 | case EFLAGS: UPT_EFLAGS(regs) = __upt_val; break; \ |
226 | default : \ | 222 | default : \ |
227 | panic("Bad register in UPT_SET : %d\n", reg); \ | 223 | panic("Bad register in UPT_SET : %d\n", reg); \ |
diff --git a/arch/um/include/sysdep-x86_64/sc.h b/arch/um/include/sysdep-x86_64/sc.h new file mode 100644 index 000000000000..a160d9fcc596 --- /dev/null +++ b/arch/um/include/sysdep-x86_64/sc.h | |||
@@ -0,0 +1,45 @@ | |||
1 | #ifndef __SYSDEP_X86_64_SC_H | ||
2 | #define __SYSDEP_X86_64_SC_H | ||
3 | |||
4 | /* Copyright (C) 2003 - 2004 PathScale, Inc | ||
5 | * Released under the GPL | ||
6 | */ | ||
7 | |||
8 | #include <user_constants.h> | ||
9 | |||
10 | #define SC_OFFSET(sc, field) \ | ||
11 | *((unsigned long *) &(((char *) (sc))[HOST_##field])) | ||
12 | |||
13 | #define SC_RBX(sc) SC_OFFSET(sc, SC_RBX) | ||
14 | #define SC_RCX(sc) SC_OFFSET(sc, SC_RCX) | ||
15 | #define SC_RDX(sc) SC_OFFSET(sc, SC_RDX) | ||
16 | #define SC_RSI(sc) SC_OFFSET(sc, SC_RSI) | ||
17 | #define SC_RDI(sc) SC_OFFSET(sc, SC_RDI) | ||
18 | #define SC_RBP(sc) SC_OFFSET(sc, SC_RBP) | ||
19 | #define SC_RAX(sc) SC_OFFSET(sc, SC_RAX) | ||
20 | #define SC_R8(sc) SC_OFFSET(sc, SC_R8) | ||
21 | #define SC_R9(sc) SC_OFFSET(sc, SC_R9) | ||
22 | #define SC_R10(sc) SC_OFFSET(sc, SC_R10) | ||
23 | #define SC_R11(sc) SC_OFFSET(sc, SC_R11) | ||
24 | #define SC_R12(sc) SC_OFFSET(sc, SC_R12) | ||
25 | #define SC_R13(sc) SC_OFFSET(sc, SC_R13) | ||
26 | #define SC_R14(sc) SC_OFFSET(sc, SC_R14) | ||
27 | #define SC_R15(sc) SC_OFFSET(sc, SC_R15) | ||
28 | #define SC_IP(sc) SC_OFFSET(sc, SC_IP) | ||
29 | #define SC_SP(sc) SC_OFFSET(sc, SC_SP) | ||
30 | #define SC_CR2(sc) SC_OFFSET(sc, SC_CR2) | ||
31 | #define SC_ERR(sc) SC_OFFSET(sc, SC_ERR) | ||
32 | #define SC_TRAPNO(sc) SC_OFFSET(sc, SC_TRAPNO) | ||
33 | #define SC_CS(sc) SC_OFFSET(sc, SC_CS) | ||
34 | #define SC_FS(sc) SC_OFFSET(sc, SC_FS) | ||
35 | #define SC_GS(sc) SC_OFFSET(sc, SC_GS) | ||
36 | #define SC_EFLAGS(sc) SC_OFFSET(sc, SC_EFLAGS) | ||
37 | #define SC_SIGMASK(sc) SC_OFFSET(sc, SC_SIGMASK) | ||
38 | #if 0 | ||
39 | #define SC_ORIG_RAX(sc) SC_OFFSET(sc, SC_ORIG_RAX) | ||
40 | #define SC_DS(sc) SC_OFFSET(sc, SC_DS) | ||
41 | #define SC_ES(sc) SC_OFFSET(sc, SC_ES) | ||
42 | #define SC_SS(sc) SC_OFFSET(sc, SC_SS) | ||
43 | #endif | ||
44 | |||
45 | #endif | ||
diff --git a/arch/um/include/sysdep-x86_64/sigcontext.h b/arch/um/include/sysdep-x86_64/sigcontext.h index 2a78260d15a0..41073235e7ad 100644 --- a/arch/um/include/sysdep-x86_64/sigcontext.h +++ b/arch/um/include/sysdep-x86_64/sigcontext.h | |||
@@ -31,7 +31,10 @@ | |||
31 | #define SC_START_SYSCALL(sc) do SC_RAX(sc) = -ENOSYS; while(0) | 31 | #define SC_START_SYSCALL(sc) do SC_RAX(sc) = -ENOSYS; while(0) |
32 | 32 | ||
33 | /* This is Page Fault */ | 33 | /* This is Page Fault */ |
34 | #define SEGV_IS_FIXABLE(fi) ((fi)->trap_no == 14) | 34 | #define SEGV_IS_FIXABLE(fi) ((fi)->trap_no == 14) |
35 | |||
36 | /* No broken SKAS API, which doesn't pass trap_no, here. */ | ||
37 | #define SEGV_MAYBE_FIXABLE(fi) 0 | ||
35 | 38 | ||
36 | extern unsigned long *sc_sigmask(void *sc_ptr); | 39 | extern unsigned long *sc_sigmask(void *sc_ptr); |
37 | 40 | ||
diff --git a/arch/um/include/sysdep-x86_64/thread.h b/arch/um/include/sysdep-x86_64/thread.h new file mode 100644 index 000000000000..6a76a7f3683f --- /dev/null +++ b/arch/um/include/sysdep-x86_64/thread.h | |||
@@ -0,0 +1,10 @@ | |||
1 | #ifndef __UM_THREAD_H | ||
2 | #define __UM_THREAD_H | ||
3 | |||
4 | #include <kern_constants.h> | ||
5 | |||
6 | #ifdef CONFIG_MODE_TT | ||
7 | #define TASK_EXTERN_PID(task) *((int *) &(((char *) (task))[HOST_TASK_EXTERN_PID])) | ||
8 | #endif | ||
9 | |||
10 | #endif | ||
diff --git a/arch/um/include/task.h b/arch/um/include/task.h new file mode 100644 index 000000000000..6375ba7203c9 --- /dev/null +++ b/arch/um/include/task.h | |||
@@ -0,0 +1,9 @@ | |||
1 | #ifndef __TASK_H | ||
2 | #define __TASK_H | ||
3 | |||
4 | #include <kern_constants.h> | ||
5 | |||
6 | #define TASK_REGS(task) ((union uml_pt_regs *) &(((char *) (task))[HOST_TASK_REGS])) | ||
7 | #define TASK_PID(task) *((int *) &(((char *) (task))[HOST_TASK_PID])) | ||
8 | |||
9 | #endif | ||
diff --git a/arch/um/kernel/irq.c b/arch/um/kernel/irq.c index dcd814971995..bbf94bf2921e 100644 --- a/arch/um/kernel/irq.c +++ b/arch/um/kernel/irq.c | |||
@@ -9,7 +9,6 @@ | |||
9 | #include "linux/kernel.h" | 9 | #include "linux/kernel.h" |
10 | #include "linux/module.h" | 10 | #include "linux/module.h" |
11 | #include "linux/smp.h" | 11 | #include "linux/smp.h" |
12 | #include "linux/irq.h" | ||
13 | #include "linux/kernel_stat.h" | 12 | #include "linux/kernel_stat.h" |
14 | #include "linux/interrupt.h" | 13 | #include "linux/interrupt.h" |
15 | #include "linux/random.h" | 14 | #include "linux/random.h" |
diff --git a/arch/um/kernel/skas/Makefile b/arch/um/kernel/skas/Makefile index db36c7c95940..8de471b59c1c 100644 --- a/arch/um/kernel/skas/Makefile +++ b/arch/um/kernel/skas/Makefile | |||
@@ -6,8 +6,6 @@ | |||
6 | obj-y := clone.o exec_kern.o mem.o mem_user.o mmu.o process.o process_kern.o \ | 6 | obj-y := clone.o exec_kern.o mem.o mem_user.o mmu.o process.o process_kern.o \ |
7 | syscall.o tlb.o trap_user.o uaccess.o | 7 | syscall.o tlb.o trap_user.o uaccess.o |
8 | 8 | ||
9 | subdir- := util | ||
10 | |||
11 | USER_OBJS := process.o clone.o | 9 | USER_OBJS := process.o clone.o |
12 | 10 | ||
13 | include arch/um/scripts/Makefile.rules | 11 | include arch/um/scripts/Makefile.rules |
diff --git a/arch/um/kernel/skas/util/Makefile b/arch/um/kernel/skas/util/Makefile deleted file mode 100644 index f7b7eba83340..000000000000 --- a/arch/um/kernel/skas/util/Makefile +++ /dev/null | |||
@@ -1,5 +0,0 @@ | |||
1 | hostprogs-y := mk_ptregs | ||
2 | always := $(hostprogs-y) | ||
3 | |||
4 | mk_ptregs-objs := mk_ptregs-$(SUBARCH).o | ||
5 | HOSTCFLAGS_mk_ptregs-$(SUBARCH).o := -I$(objtree)/arch/um | ||
diff --git a/arch/um/kernel/skas/util/mk_ptregs-i386.c b/arch/um/kernel/skas/util/mk_ptregs-i386.c deleted file mode 100644 index 1f96e1eeb8a7..000000000000 --- a/arch/um/kernel/skas/util/mk_ptregs-i386.c +++ /dev/null | |||
@@ -1,49 +0,0 @@ | |||
1 | #include <stdio.h> | ||
2 | #include <user-offsets.h> | ||
3 | |||
4 | #define SHOW(name) printf("#define %s %d\n", #name, name) | ||
5 | |||
6 | int main(int argc, char **argv) | ||
7 | { | ||
8 | printf("/* Automatically generated by " | ||
9 | "arch/um/kernel/skas/util/mk_ptregs */\n"); | ||
10 | printf("\n"); | ||
11 | printf("#ifndef __SKAS_PT_REGS_\n"); | ||
12 | printf("#define __SKAS_PT_REGS_\n"); | ||
13 | printf("\n"); | ||
14 | SHOW(HOST_FRAME_SIZE); | ||
15 | SHOW(HOST_FP_SIZE); | ||
16 | SHOW(HOST_XFP_SIZE); | ||
17 | |||
18 | SHOW(HOST_IP); | ||
19 | SHOW(HOST_SP); | ||
20 | SHOW(HOST_EFLAGS); | ||
21 | SHOW(HOST_EAX); | ||
22 | SHOW(HOST_EBX); | ||
23 | SHOW(HOST_ECX); | ||
24 | SHOW(HOST_EDX); | ||
25 | SHOW(HOST_ESI); | ||
26 | SHOW(HOST_EDI); | ||
27 | SHOW(HOST_EBP); | ||
28 | SHOW(HOST_CS); | ||
29 | SHOW(HOST_SS); | ||
30 | SHOW(HOST_DS); | ||
31 | SHOW(HOST_FS); | ||
32 | SHOW(HOST_ES); | ||
33 | SHOW(HOST_GS); | ||
34 | |||
35 | printf("\n"); | ||
36 | printf("#endif\n"); | ||
37 | return(0); | ||
38 | } | ||
39 | |||
40 | /* | ||
41 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
42 | * Emacs will notice this stuff at the end of the file and automatically | ||
43 | * adjust the settings for this buffer only. This must remain at the end | ||
44 | * of the file. | ||
45 | * --------------------------------------------------------------------------- | ||
46 | * Local variables: | ||
47 | * c-file-style: "linux" | ||
48 | * End: | ||
49 | */ | ||
diff --git a/arch/um/kernel/skas/util/mk_ptregs-x86_64.c b/arch/um/kernel/skas/util/mk_ptregs-x86_64.c deleted file mode 100644 index 5fccbfe35f78..000000000000 --- a/arch/um/kernel/skas/util/mk_ptregs-x86_64.c +++ /dev/null | |||
@@ -1,66 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright 2003 PathScale, Inc. | ||
3 | * | ||
4 | * Licensed under the GPL | ||
5 | */ | ||
6 | |||
7 | #include <stdio.h> | ||
8 | #include <user-offsets.h> | ||
9 | |||
10 | #define SHOW(name) \ | ||
11 | printf("#define %s (%d / sizeof(unsigned long))\n", #name, name) | ||
12 | |||
13 | int main(int argc, char **argv) | ||
14 | { | ||
15 | printf("/* Automatically generated by " | ||
16 | "arch/um/kernel/skas/util/mk_ptregs */\n"); | ||
17 | printf("\n"); | ||
18 | printf("#ifndef __SKAS_PT_REGS_\n"); | ||
19 | printf("#define __SKAS_PT_REGS_\n"); | ||
20 | SHOW(HOST_FRAME_SIZE); | ||
21 | SHOW(HOST_RBX); | ||
22 | SHOW(HOST_RCX); | ||
23 | SHOW(HOST_RDI); | ||
24 | SHOW(HOST_RSI); | ||
25 | SHOW(HOST_RDX); | ||
26 | SHOW(HOST_RBP); | ||
27 | SHOW(HOST_RAX); | ||
28 | SHOW(HOST_R8); | ||
29 | SHOW(HOST_R9); | ||
30 | SHOW(HOST_R10); | ||
31 | SHOW(HOST_R11); | ||
32 | SHOW(HOST_R12); | ||
33 | SHOW(HOST_R13); | ||
34 | SHOW(HOST_R14); | ||
35 | SHOW(HOST_R15); | ||
36 | SHOW(HOST_ORIG_RAX); | ||
37 | SHOW(HOST_CS); | ||
38 | SHOW(HOST_SS); | ||
39 | SHOW(HOST_EFLAGS); | ||
40 | #if 0 | ||
41 | SHOW(HOST_FS); | ||
42 | SHOW(HOST_GS); | ||
43 | SHOW(HOST_DS); | ||
44 | SHOW(HOST_ES); | ||
45 | #endif | ||
46 | |||
47 | SHOW(HOST_IP); | ||
48 | SHOW(HOST_SP); | ||
49 | printf("#define HOST_FP_SIZE 0\n"); | ||
50 | printf("#define HOST_XFP_SIZE 0\n"); | ||
51 | printf("\n"); | ||
52 | printf("\n"); | ||
53 | printf("#endif\n"); | ||
54 | return(0); | ||
55 | } | ||
56 | |||
57 | /* | ||
58 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
59 | * Emacs will notice this stuff at the end of the file and automatically | ||
60 | * adjust the settings for this buffer only. This must remain at the end | ||
61 | * of the file. | ||
62 | * --------------------------------------------------------------------------- | ||
63 | * Local variables: | ||
64 | * c-file-style: "linux" | ||
65 | * End: | ||
66 | */ | ||
diff --git a/arch/um/kernel/sysrq.c b/arch/um/kernel/sysrq.c index f80850091e79..b331e970002f 100644 --- a/arch/um/kernel/sysrq.c +++ b/arch/um/kernel/sysrq.c | |||
@@ -62,13 +62,7 @@ void show_stack(struct task_struct *task, unsigned long *esp) | |||
62 | 62 | ||
63 | if (esp == NULL) { | 63 | if (esp == NULL) { |
64 | if (task != current && task != NULL) { | 64 | if (task != current && task != NULL) { |
65 | /* XXX: Isn't this bogus? I.e. isn't this the | ||
66 | * *userspace* stack of this task? If not so, use this | ||
67 | * even when task == current (as in i386). | ||
68 | */ | ||
69 | esp = (unsigned long *) KSTK_ESP(task); | 65 | esp = (unsigned long *) KSTK_ESP(task); |
70 | /* Which one? No actual difference - just coding style.*/ | ||
71 | //esp = (unsigned long *) PT_REGS_IP(&task->thread.regs); | ||
72 | } else { | 66 | } else { |
73 | esp = (unsigned long *) &esp; | 67 | esp = (unsigned long *) &esp; |
74 | } | 68 | } |
@@ -84,5 +78,5 @@ void show_stack(struct task_struct *task, unsigned long *esp) | |||
84 | } | 78 | } |
85 | 79 | ||
86 | printk("Call Trace: \n"); | 80 | printk("Call Trace: \n"); |
87 | show_trace(current, esp); | 81 | show_trace(task, esp); |
88 | } | 82 | } |
diff --git a/arch/um/kernel/trap_kern.c b/arch/um/kernel/trap_kern.c index d297429ac360..95c8f8733baf 100644 --- a/arch/um/kernel/trap_kern.c +++ b/arch/um/kernel/trap_kern.c | |||
@@ -26,6 +26,9 @@ | |||
26 | #include "mconsole_kern.h" | 26 | #include "mconsole_kern.h" |
27 | #include "mem.h" | 27 | #include "mem.h" |
28 | #include "mem_kern.h" | 28 | #include "mem_kern.h" |
29 | #ifdef CONFIG_MODE_SKAS | ||
30 | #include "skas.h" | ||
31 | #endif | ||
29 | 32 | ||
30 | /* Note this is constrained to return 0, -EFAULT, -EACCESS, -ENOMEM by segv(). */ | 33 | /* Note this is constrained to return 0, -EFAULT, -EACCESS, -ENOMEM by segv(). */ |
31 | int handle_page_fault(unsigned long address, unsigned long ip, | 34 | int handle_page_fault(unsigned long address, unsigned long ip, |
@@ -134,7 +137,7 @@ unsigned long segv(struct faultinfo fi, unsigned long ip, int is_user, void *sc) | |||
134 | else if(current->mm == NULL) | 137 | else if(current->mm == NULL) |
135 | panic("Segfault with no mm"); | 138 | panic("Segfault with no mm"); |
136 | 139 | ||
137 | if (SEGV_IS_FIXABLE(&fi)) | 140 | if (SEGV_IS_FIXABLE(&fi) || SEGV_MAYBE_FIXABLE(&fi)) |
138 | err = handle_page_fault(address, ip, is_write, is_user, &si.si_code); | 141 | err = handle_page_fault(address, ip, is_write, is_user, &si.si_code); |
139 | else { | 142 | else { |
140 | err = -EFAULT; | 143 | err = -EFAULT; |
diff --git a/arch/um/kernel/um_arch.c b/arch/um/kernel/um_arch.c index f0a275947d34..93dc782dc1cc 100644 --- a/arch/um/kernel/um_arch.c +++ b/arch/um/kernel/um_arch.c | |||
@@ -334,6 +334,8 @@ int linux_main(int argc, char **argv) | |||
334 | add_arg(DEFAULT_COMMAND_LINE); | 334 | add_arg(DEFAULT_COMMAND_LINE); |
335 | 335 | ||
336 | os_early_checks(); | 336 | os_early_checks(); |
337 | if (force_tt) | ||
338 | clear_can_do_skas(); | ||
337 | mode_tt = force_tt ? 1 : !can_do_skas(); | 339 | mode_tt = force_tt ? 1 : !can_do_skas(); |
338 | #ifndef CONFIG_MODE_TT | 340 | #ifndef CONFIG_MODE_TT |
339 | if (mode_tt) { | 341 | if (mode_tt) { |
diff --git a/arch/um/os-Linux/elf_aux.c b/arch/um/os-Linux/elf_aux.c index ab33cb3c74ec..5a99dd3fbed0 100644 --- a/arch/um/os-Linux/elf_aux.c +++ b/arch/um/os-Linux/elf_aux.c | |||
@@ -12,7 +12,7 @@ | |||
12 | #include "init.h" | 12 | #include "init.h" |
13 | #include "elf_user.h" | 13 | #include "elf_user.h" |
14 | #include "mem_user.h" | 14 | #include "mem_user.h" |
15 | #include <kernel-offsets.h> | 15 | #include <kern_constants.h> |
16 | 16 | ||
17 | /* Use the one from the kernel - the host may miss it, if having old headers. */ | 17 | /* Use the one from the kernel - the host may miss it, if having old headers. */ |
18 | #if UM_ELF_CLASS == UM_ELFCLASS32 | 18 | #if UM_ELF_CLASS == UM_ELFCLASS32 |
diff --git a/arch/um/os-Linux/start_up.c b/arch/um/os-Linux/start_up.c index 6af83171ca4e..b99ab414542f 100644 --- a/arch/um/os-Linux/start_up.c +++ b/arch/um/os-Linux/start_up.c | |||
@@ -143,11 +143,22 @@ static int __init skas0_cmd_param(char *str, int* add) | |||
143 | return 0; | 143 | return 0; |
144 | } | 144 | } |
145 | 145 | ||
146 | /* The two __uml_setup would conflict, without this stupid alias. */ | ||
147 | |||
148 | static int __init mode_skas0_cmd_param(char *str, int* add) | ||
149 | __attribute__((alias("skas0_cmd_param"))); | ||
150 | |||
146 | __uml_setup("skas0", skas0_cmd_param, | 151 | __uml_setup("skas0", skas0_cmd_param, |
147 | "skas0\n" | 152 | "skas0\n" |
148 | " Disables SKAS3 usage, so that SKAS0 is used, unless \n" | 153 | " Disables SKAS3 usage, so that SKAS0 is used, unless \n" |
149 | " you specify mode=tt.\n\n"); | 154 | " you specify mode=tt.\n\n"); |
150 | 155 | ||
156 | __uml_setup("mode=skas0", mode_skas0_cmd_param, | ||
157 | "mode=skas0\n" | ||
158 | " Disables SKAS3 usage, so that SKAS0 is used, unless you \n" | ||
159 | " specify mode=tt. Note that this was recently added - on \n" | ||
160 | " older kernels you must use simply \"skas0\".\n\n"); | ||
161 | |||
151 | static int force_sysemu_disabled = 0; | 162 | static int force_sysemu_disabled = 0; |
152 | 163 | ||
153 | static int __init nosysemu_cmd_param(char *str, int* add) | 164 | static int __init nosysemu_cmd_param(char *str, int* add) |
diff --git a/arch/um/os-Linux/sys-i386/registers.c b/arch/um/os-Linux/sys-i386/registers.c index 3125d320722c..aee4812333c6 100644 --- a/arch/um/os-Linux/sys-i386/registers.c +++ b/arch/um/os-Linux/sys-i386/registers.c | |||
@@ -5,6 +5,7 @@ | |||
5 | 5 | ||
6 | #include <errno.h> | 6 | #include <errno.h> |
7 | #include <string.h> | 7 | #include <string.h> |
8 | #include <setjmp.h> | ||
8 | #include "sysdep/ptrace_user.h" | 9 | #include "sysdep/ptrace_user.h" |
9 | #include "sysdep/ptrace.h" | 10 | #include "sysdep/ptrace.h" |
10 | #include "uml-config.h" | 11 | #include "uml-config.h" |
@@ -126,13 +127,11 @@ void get_safe_registers(unsigned long *regs) | |||
126 | memcpy(regs, exec_regs, HOST_FRAME_SIZE * sizeof(unsigned long)); | 127 | memcpy(regs, exec_regs, HOST_FRAME_SIZE * sizeof(unsigned long)); |
127 | } | 128 | } |
128 | 129 | ||
129 | /* | 130 | void get_thread_regs(union uml_pt_regs *uml_regs, void *buffer) |
130 | * Overrides for Emacs so that we follow Linus's tabbing style. | 131 | { |
131 | * Emacs will notice this stuff at the end of the file and automatically | 132 | struct __jmp_buf_tag *jmpbuf = buffer; |
132 | * adjust the settings for this buffer only. This must remain at the end | 133 | |
133 | * of the file. | 134 | UPT_SET(uml_regs, EIP, jmpbuf->__jmpbuf[JB_PC]); |
134 | * --------------------------------------------------------------------------- | 135 | UPT_SET(uml_regs, UESP, jmpbuf->__jmpbuf[JB_SP]); |
135 | * Local variables: | 136 | UPT_SET(uml_regs, EBP, jmpbuf->__jmpbuf[JB_BP]); |
136 | * c-file-style: "linux" | 137 | } |
137 | * End: | ||
138 | */ | ||
diff --git a/arch/um/os-Linux/sys-x86_64/registers.c b/arch/um/os-Linux/sys-x86_64/registers.c index 44438d15c3d6..4b638dfb52b0 100644 --- a/arch/um/os-Linux/sys-x86_64/registers.c +++ b/arch/um/os-Linux/sys-x86_64/registers.c | |||
@@ -5,6 +5,7 @@ | |||
5 | 5 | ||
6 | #include <errno.h> | 6 | #include <errno.h> |
7 | #include <string.h> | 7 | #include <string.h> |
8 | #include <setjmp.h> | ||
8 | #include "ptrace_user.h" | 9 | #include "ptrace_user.h" |
9 | #include "uml-config.h" | 10 | #include "uml-config.h" |
10 | #include "skas_ptregs.h" | 11 | #include "skas_ptregs.h" |
@@ -74,13 +75,11 @@ void get_safe_registers(unsigned long *regs) | |||
74 | memcpy(regs, exec_regs, HOST_FRAME_SIZE * sizeof(unsigned long)); | 75 | memcpy(regs, exec_regs, HOST_FRAME_SIZE * sizeof(unsigned long)); |
75 | } | 76 | } |
76 | 77 | ||
77 | /* | 78 | void get_thread_regs(union uml_pt_regs *uml_regs, void *buffer) |
78 | * Overrides for Emacs so that we follow Linus's tabbing style. | 79 | { |
79 | * Emacs will notice this stuff at the end of the file and automatically | 80 | struct __jmp_buf_tag *jmpbuf = buffer; |
80 | * adjust the settings for this buffer only. This must remain at the end | 81 | |
81 | * of the file. | 82 | UPT_SET(uml_regs, RIP, jmpbuf->__jmpbuf[JB_PC]); |
82 | * --------------------------------------------------------------------------- | 83 | UPT_SET(uml_regs, RSP, jmpbuf->__jmpbuf[JB_RSP]); |
83 | * Local variables: | 84 | UPT_SET(uml_regs, RBP, jmpbuf->__jmpbuf[JB_RBP]); |
84 | * c-file-style: "linux" | 85 | } |
85 | * End: | ||
86 | */ | ||
diff --git a/arch/um/os-Linux/util/Makefile b/arch/um/os-Linux/util/Makefile deleted file mode 100644 index 9778aed0c314..000000000000 --- a/arch/um/os-Linux/util/Makefile +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | hostprogs-y := mk_user_constants | ||
2 | always := $(hostprogs-y) | ||
3 | |||
4 | HOSTCFLAGS_mk_user_constants.o := -I$(objtree)/arch/um | ||
diff --git a/arch/um/os-Linux/util/mk_user_constants.c b/arch/um/os-Linux/util/mk_user_constants.c deleted file mode 100644 index 4838f30eecf0..000000000000 --- a/arch/um/os-Linux/util/mk_user_constants.c +++ /dev/null | |||
@@ -1,23 +0,0 @@ | |||
1 | #include <stdio.h> | ||
2 | #include <user-offsets.h> | ||
3 | |||
4 | int main(int argc, char **argv) | ||
5 | { | ||
6 | printf("/*\n"); | ||
7 | printf(" * Generated by mk_user_constants\n"); | ||
8 | printf(" */\n"); | ||
9 | printf("\n"); | ||
10 | printf("#ifndef __UM_USER_CONSTANTS_H\n"); | ||
11 | printf("#define __UM_USER_CONSTANTS_H\n"); | ||
12 | printf("\n"); | ||
13 | /* I'd like to use FRAME_SIZE from ptrace.h here, but that's wrong on | ||
14 | * x86_64 (216 vs 168 bytes). user_regs_struct is the correct size on | ||
15 | * both x86_64 and i386. | ||
16 | */ | ||
17 | printf("#define UM_FRAME_SIZE %d\n", __UM_FRAME_SIZE); | ||
18 | |||
19 | printf("\n"); | ||
20 | printf("#endif\n"); | ||
21 | |||
22 | return(0); | ||
23 | } | ||
diff --git a/arch/um/scripts/Makefile.rules b/arch/um/scripts/Makefile.rules index 59a1291f477e..651d9d88b656 100644 --- a/arch/um/scripts/Makefile.rules +++ b/arch/um/scripts/Makefile.rules | |||
@@ -7,8 +7,8 @@ USER_SINGLE_OBJS := \ | |||
7 | USER_OBJS += $(filter %_user.o,$(obj-y) $(obj-m) $(USER_SINGLE_OBJS)) | 7 | USER_OBJS += $(filter %_user.o,$(obj-y) $(obj-m) $(USER_SINGLE_OBJS)) |
8 | USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file)) | 8 | USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file)) |
9 | 9 | ||
10 | $(USER_OBJS) : c_flags = -Wp,-MD,$(depfile) $(USER_CFLAGS) \ | 10 | $(USER_OBJS) $(USER_OBJS:.o=.i) $(USER_OBJS:.o=.s) $(USER_OBJS:.o=.lst): \ |
11 | $(CFLAGS_$(notdir $@)) | 11 | c_flags = -Wp,-MD,$(depfile) $(USER_CFLAGS) $(CFLAGS_$(notdir $@)) |
12 | $(USER_OBJS): cmd_checksrc = | 12 | $(USER_OBJS): cmd_checksrc = |
13 | $(USER_OBJS): quiet_cmd_checksrc = | 13 | $(USER_OBJS): quiet_cmd_checksrc = |
14 | $(USER_OBJS): cmd_force_checksrc = | 14 | $(USER_OBJS): cmd_force_checksrc = |
diff --git a/arch/um/sys-i386/Makefile b/arch/um/sys-i386/Makefile index 4ca2a229da49..6dfeb70f6957 100644 --- a/arch/um/sys-i386/Makefile +++ b/arch/um/sys-i386/Makefile | |||
@@ -18,6 +18,4 @@ module.c-dir = kernel | |||
18 | 18 | ||
19 | $(obj)/stub_segv.o : _c_flags = $(call unprofile,$(CFLAGS)) | 19 | $(obj)/stub_segv.o : _c_flags = $(call unprofile,$(CFLAGS)) |
20 | 20 | ||
21 | subdir- := util | ||
22 | |||
23 | include arch/um/scripts/Makefile.unmap | 21 | include arch/um/scripts/Makefile.unmap |
diff --git a/arch/um/sys-i386/kernel-offsets.c b/arch/um/sys-i386/kernel-offsets.c index a1070af2bcd8..35db85057506 100644 --- a/arch/um/sys-i386/kernel-offsets.c +++ b/arch/um/sys-i386/kernel-offsets.c | |||
@@ -18,9 +18,9 @@ | |||
18 | 18 | ||
19 | void foo(void) | 19 | void foo(void) |
20 | { | 20 | { |
21 | OFFSET(TASK_DEBUGREGS, task_struct, thread.arch.debugregs); | 21 | OFFSET(HOST_TASK_DEBUGREGS, task_struct, thread.arch.debugregs); |
22 | #ifdef CONFIG_MODE_TT | 22 | #ifdef CONFIG_MODE_TT |
23 | OFFSET(TASK_EXTERN_PID, task_struct, thread.mode.tt.extern_pid); | 23 | OFFSET(HOST_TASK_EXTERN_PID, task_struct, thread.mode.tt.extern_pid); |
24 | #endif | 24 | #endif |
25 | #include <common-offsets.h> | 25 | #include <common-offsets.h> |
26 | } | 26 | } |
diff --git a/arch/um/sys-i386/sysrq.c b/arch/um/sys-i386/sysrq.c index e3706d15c4f5..d5244f070539 100644 --- a/arch/um/sys-i386/sysrq.c +++ b/arch/um/sys-i386/sysrq.c | |||
@@ -88,9 +88,7 @@ void show_trace(struct task_struct* task, unsigned long * stack) | |||
88 | task = current; | 88 | task = current; |
89 | 89 | ||
90 | if (task != current) { | 90 | if (task != current) { |
91 | //ebp = (unsigned long) KSTK_EBP(task); | 91 | ebp = (unsigned long) KSTK_EBP(task); |
92 | /* Which one? No actual difference - just coding style.*/ | ||
93 | ebp = (unsigned long) PT_REGS_EBP(&task->thread.regs); | ||
94 | } else { | 92 | } else { |
95 | asm ("movl %%ebp, %0" : "=r" (ebp) : ); | 93 | asm ("movl %%ebp, %0" : "=r" (ebp) : ); |
96 | } | 94 | } |
@@ -99,15 +97,6 @@ void show_trace(struct task_struct* task, unsigned long * stack) | |||
99 | ((unsigned long)stack & (~(THREAD_SIZE - 1))); | 97 | ((unsigned long)stack & (~(THREAD_SIZE - 1))); |
100 | print_context_stack(context, stack, ebp); | 98 | print_context_stack(context, stack, ebp); |
101 | 99 | ||
102 | /*while (((long) stack & (THREAD_SIZE-1)) != 0) { | ||
103 | addr = *stack; | ||
104 | if (__kernel_text_address(addr)) { | ||
105 | printk("%08lx: [<%08lx>]", (unsigned long) stack, addr); | ||
106 | print_symbol(" %s", addr); | ||
107 | printk("\n"); | ||
108 | } | ||
109 | stack++; | ||
110 | }*/ | ||
111 | printk("\n"); | 100 | printk("\n"); |
112 | } | 101 | } |
113 | 102 | ||
diff --git a/arch/um/sys-i386/user-offsets.c b/arch/um/sys-i386/user-offsets.c index 3ceaabceb3d7..26b68675053d 100644 --- a/arch/um/sys-i386/user-offsets.c +++ b/arch/um/sys-i386/user-offsets.c | |||
@@ -7,47 +7,48 @@ | |||
7 | #define DEFINE(sym, val) \ | 7 | #define DEFINE(sym, val) \ |
8 | asm volatile("\n->" #sym " %0 " #val : : "i" (val)) | 8 | asm volatile("\n->" #sym " %0 " #val : : "i" (val)) |
9 | 9 | ||
10 | #define DEFINE_LONGS(sym, val) \ | ||
11 | asm volatile("\n->" #sym " %0 " #val : : "i" (val/sizeof(unsigned long))) | ||
12 | |||
10 | #define OFFSET(sym, str, mem) \ | 13 | #define OFFSET(sym, str, mem) \ |
11 | DEFINE(sym, offsetof(struct str, mem)); | 14 | DEFINE(sym, offsetof(struct str, mem)); |
12 | 15 | ||
13 | void foo(void) | 16 | void foo(void) |
14 | { | 17 | { |
15 | OFFSET(SC_IP, sigcontext, eip); | 18 | OFFSET(HOST_SC_IP, sigcontext, eip); |
16 | OFFSET(SC_SP, sigcontext, esp); | 19 | OFFSET(HOST_SC_SP, sigcontext, esp); |
17 | OFFSET(SC_FS, sigcontext, fs); | 20 | OFFSET(HOST_SC_FS, sigcontext, fs); |
18 | OFFSET(SC_GS, sigcontext, gs); | 21 | OFFSET(HOST_SC_GS, sigcontext, gs); |
19 | OFFSET(SC_DS, sigcontext, ds); | 22 | OFFSET(HOST_SC_DS, sigcontext, ds); |
20 | OFFSET(SC_ES, sigcontext, es); | 23 | OFFSET(HOST_SC_ES, sigcontext, es); |
21 | OFFSET(SC_SS, sigcontext, ss); | 24 | OFFSET(HOST_SC_SS, sigcontext, ss); |
22 | OFFSET(SC_CS, sigcontext, cs); | 25 | OFFSET(HOST_SC_CS, sigcontext, cs); |
23 | OFFSET(SC_EFLAGS, sigcontext, eflags); | 26 | OFFSET(HOST_SC_EFLAGS, sigcontext, eflags); |
24 | OFFSET(SC_EAX, sigcontext, eax); | 27 | OFFSET(HOST_SC_EAX, sigcontext, eax); |
25 | OFFSET(SC_EBX, sigcontext, ebx); | 28 | OFFSET(HOST_SC_EBX, sigcontext, ebx); |
26 | OFFSET(SC_ECX, sigcontext, ecx); | 29 | OFFSET(HOST_SC_ECX, sigcontext, ecx); |
27 | OFFSET(SC_EDX, sigcontext, edx); | 30 | OFFSET(HOST_SC_EDX, sigcontext, edx); |
28 | OFFSET(SC_EDI, sigcontext, edi); | 31 | OFFSET(HOST_SC_EDI, sigcontext, edi); |
29 | OFFSET(SC_ESI, sigcontext, esi); | 32 | OFFSET(HOST_SC_ESI, sigcontext, esi); |
30 | OFFSET(SC_EBP, sigcontext, ebp); | 33 | OFFSET(HOST_SC_EBP, sigcontext, ebp); |
31 | OFFSET(SC_TRAPNO, sigcontext, trapno); | 34 | OFFSET(HOST_SC_TRAPNO, sigcontext, trapno); |
32 | OFFSET(SC_ERR, sigcontext, err); | 35 | OFFSET(HOST_SC_ERR, sigcontext, err); |
33 | OFFSET(SC_CR2, sigcontext, cr2); | 36 | OFFSET(HOST_SC_CR2, sigcontext, cr2); |
34 | OFFSET(SC_FPSTATE, sigcontext, fpstate); | 37 | OFFSET(HOST_SC_FPSTATE, sigcontext, fpstate); |
35 | OFFSET(SC_SIGMASK, sigcontext, oldmask); | 38 | OFFSET(HOST_SC_SIGMASK, sigcontext, oldmask); |
36 | OFFSET(SC_FP_CW, _fpstate, cw); | 39 | OFFSET(HOST_SC_FP_CW, _fpstate, cw); |
37 | OFFSET(SC_FP_SW, _fpstate, sw); | 40 | OFFSET(HOST_SC_FP_SW, _fpstate, sw); |
38 | OFFSET(SC_FP_TAG, _fpstate, tag); | 41 | OFFSET(HOST_SC_FP_TAG, _fpstate, tag); |
39 | OFFSET(SC_FP_IPOFF, _fpstate, ipoff); | 42 | OFFSET(HOST_SC_FP_IPOFF, _fpstate, ipoff); |
40 | OFFSET(SC_FP_CSSEL, _fpstate, cssel); | 43 | OFFSET(HOST_SC_FP_CSSEL, _fpstate, cssel); |
41 | OFFSET(SC_FP_DATAOFF, _fpstate, dataoff); | 44 | OFFSET(HOST_SC_FP_DATAOFF, _fpstate, dataoff); |
42 | OFFSET(SC_FP_DATASEL, _fpstate, datasel); | 45 | OFFSET(HOST_SC_FP_DATASEL, _fpstate, datasel); |
43 | OFFSET(SC_FP_ST, _fpstate, _st); | 46 | OFFSET(HOST_SC_FP_ST, _fpstate, _st); |
44 | OFFSET(SC_FXSR_ENV, _fpstate, _fxsr_env); | 47 | OFFSET(HOST_SC_FXSR_ENV, _fpstate, _fxsr_env); |
45 | 48 | ||
46 | DEFINE(HOST_FRAME_SIZE, FRAME_SIZE); | 49 | DEFINE(HOST_FRAME_SIZE, FRAME_SIZE); |
47 | DEFINE(HOST_FP_SIZE, | 50 | DEFINE_LONGS(HOST_FP_SIZE, sizeof(struct user_i387_struct)); |
48 | sizeof(struct user_i387_struct) / sizeof(unsigned long)); | 51 | DEFINE_LONGS(HOST_XFP_SIZE, sizeof(struct user_fxsr_struct)); |
49 | DEFINE(HOST_XFP_SIZE, | ||
50 | sizeof(struct user_fxsr_struct) / sizeof(unsigned long)); | ||
51 | 52 | ||
52 | DEFINE(HOST_IP, EIP); | 53 | DEFINE(HOST_IP, EIP); |
53 | DEFINE(HOST_SP, UESP); | 54 | DEFINE(HOST_SP, UESP); |
@@ -65,5 +66,5 @@ void foo(void) | |||
65 | DEFINE(HOST_FS, FS); | 66 | DEFINE(HOST_FS, FS); |
66 | DEFINE(HOST_ES, ES); | 67 | DEFINE(HOST_ES, ES); |
67 | DEFINE(HOST_GS, GS); | 68 | DEFINE(HOST_GS, GS); |
68 | DEFINE(__UM_FRAME_SIZE, sizeof(struct user_regs_struct)); | 69 | DEFINE(UM_FRAME_SIZE, sizeof(struct user_regs_struct)); |
69 | } | 70 | } |
diff --git a/arch/um/sys-i386/util/Makefile b/arch/um/sys-i386/util/Makefile deleted file mode 100644 index bf61afd0b045..000000000000 --- a/arch/um/sys-i386/util/Makefile +++ /dev/null | |||
@@ -1,5 +0,0 @@ | |||
1 | hostprogs-y := mk_sc mk_thread | ||
2 | always := $(hostprogs-y) | ||
3 | |||
4 | HOSTCFLAGS_mk_sc.o := -I$(objtree)/arch/um | ||
5 | HOSTCFLAGS_mk_thread.o := -I$(objtree)/arch/um | ||
diff --git a/arch/um/sys-i386/util/mk_sc.c b/arch/um/sys-i386/util/mk_sc.c deleted file mode 100644 index 04c0d73433aa..000000000000 --- a/arch/um/sys-i386/util/mk_sc.c +++ /dev/null | |||
@@ -1,51 +0,0 @@ | |||
1 | #include <stdio.h> | ||
2 | #include <user-offsets.h> | ||
3 | |||
4 | #define SC_OFFSET(name, field) \ | ||
5 | printf("#define " #name "(sc) *((unsigned long *) &(((char *) (sc))[%d]))\n",\ | ||
6 | name) | ||
7 | |||
8 | #define SC_FP_OFFSET(name, field) \ | ||
9 | printf("#define " #name \ | ||
10 | "(sc) *((unsigned long *) &(((char *) (SC_FPSTATE(sc)))[%d]))\n",\ | ||
11 | name) | ||
12 | |||
13 | #define SC_FP_OFFSET_PTR(name, field, type) \ | ||
14 | printf("#define " #name \ | ||
15 | "(sc) ((" type " *) &(((char *) (SC_FPSTATE(sc)))[%d]))\n",\ | ||
16 | name) | ||
17 | |||
18 | int main(int argc, char **argv) | ||
19 | { | ||
20 | SC_OFFSET(SC_IP, eip); | ||
21 | SC_OFFSET(SC_SP, esp); | ||
22 | SC_OFFSET(SC_FS, fs); | ||
23 | SC_OFFSET(SC_GS, gs); | ||
24 | SC_OFFSET(SC_DS, ds); | ||
25 | SC_OFFSET(SC_ES, es); | ||
26 | SC_OFFSET(SC_SS, ss); | ||
27 | SC_OFFSET(SC_CS, cs); | ||
28 | SC_OFFSET(SC_EFLAGS, eflags); | ||
29 | SC_OFFSET(SC_EAX, eax); | ||
30 | SC_OFFSET(SC_EBX, ebx); | ||
31 | SC_OFFSET(SC_ECX, ecx); | ||
32 | SC_OFFSET(SC_EDX, edx); | ||
33 | SC_OFFSET(SC_EDI, edi); | ||
34 | SC_OFFSET(SC_ESI, esi); | ||
35 | SC_OFFSET(SC_EBP, ebp); | ||
36 | SC_OFFSET(SC_TRAPNO, trapno); | ||
37 | SC_OFFSET(SC_ERR, err); | ||
38 | SC_OFFSET(SC_CR2, cr2); | ||
39 | SC_OFFSET(SC_FPSTATE, fpstate); | ||
40 | SC_OFFSET(SC_SIGMASK, oldmask); | ||
41 | SC_FP_OFFSET(SC_FP_CW, cw); | ||
42 | SC_FP_OFFSET(SC_FP_SW, sw); | ||
43 | SC_FP_OFFSET(SC_FP_TAG, tag); | ||
44 | SC_FP_OFFSET(SC_FP_IPOFF, ipoff); | ||
45 | SC_FP_OFFSET(SC_FP_CSSEL, cssel); | ||
46 | SC_FP_OFFSET(SC_FP_DATAOFF, dataoff); | ||
47 | SC_FP_OFFSET(SC_FP_DATASEL, datasel); | ||
48 | SC_FP_OFFSET_PTR(SC_FP_ST, _st, "struct _fpstate"); | ||
49 | SC_FP_OFFSET_PTR(SC_FXSR_ENV, _fxsr_env, "void"); | ||
50 | return(0); | ||
51 | } | ||
diff --git a/arch/um/sys-i386/util/mk_thread.c b/arch/um/sys-i386/util/mk_thread.c deleted file mode 100644 index 7470d0dda67e..000000000000 --- a/arch/um/sys-i386/util/mk_thread.c +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
1 | #include <stdio.h> | ||
2 | #include <kernel-offsets.h> | ||
3 | |||
4 | int main(int argc, char **argv) | ||
5 | { | ||
6 | printf("/*\n"); | ||
7 | printf(" * Generated by mk_thread\n"); | ||
8 | printf(" */\n"); | ||
9 | printf("\n"); | ||
10 | printf("#ifndef __UM_THREAD_H\n"); | ||
11 | printf("#define __UM_THREAD_H\n"); | ||
12 | printf("\n"); | ||
13 | printf("#define TASK_DEBUGREGS(task) ((unsigned long *) " | ||
14 | "&(((char *) (task))[%d]))\n", TASK_DEBUGREGS); | ||
15 | #ifdef TASK_EXTERN_PID | ||
16 | printf("#define TASK_EXTERN_PID(task) *((int *) &(((char *) (task))[%d]))\n", | ||
17 | TASK_EXTERN_PID); | ||
18 | #endif | ||
19 | printf("\n"); | ||
20 | printf("#endif\n"); | ||
21 | return(0); | ||
22 | } | ||
diff --git a/arch/um/sys-x86_64/Makefile b/arch/um/sys-x86_64/Makefile index f0ab574d1e95..06c3633457a2 100644 --- a/arch/um/sys-x86_64/Makefile +++ b/arch/um/sys-x86_64/Makefile | |||
@@ -29,6 +29,4 @@ module.c-dir = kernel | |||
29 | 29 | ||
30 | $(obj)/stub_segv.o: _c_flags = $(call unprofile,$(CFLAGS)) | 30 | $(obj)/stub_segv.o: _c_flags = $(call unprofile,$(CFLAGS)) |
31 | 31 | ||
32 | subdir- := util | ||
33 | |||
34 | include arch/um/scripts/Makefile.unmap | 32 | include arch/um/scripts/Makefile.unmap |
diff --git a/arch/um/sys-x86_64/kernel-offsets.c b/arch/um/sys-x86_64/kernel-offsets.c index 998541eade41..bfcb104b846e 100644 --- a/arch/um/sys-x86_64/kernel-offsets.c +++ b/arch/um/sys-x86_64/kernel-offsets.c | |||
@@ -19,7 +19,7 @@ | |||
19 | void foo(void) | 19 | void foo(void) |
20 | { | 20 | { |
21 | #ifdef CONFIG_MODE_TT | 21 | #ifdef CONFIG_MODE_TT |
22 | OFFSET(TASK_EXTERN_PID, task_struct, thread.mode.tt.extern_pid); | 22 | OFFSET(HOST_TASK_EXTERN_PID, task_struct, thread.mode.tt.extern_pid); |
23 | #endif | 23 | #endif |
24 | #include <common-offsets.h> | 24 | #include <common-offsets.h> |
25 | } | 25 | } |
diff --git a/arch/um/sys-x86_64/stub_segv.c b/arch/um/sys-x86_64/stub_segv.c index 65a131b362b6..d1e53bdf2e85 100644 --- a/arch/um/sys-x86_64/stub_segv.c +++ b/arch/um/sys-x86_64/stub_segv.c | |||
@@ -10,6 +10,22 @@ | |||
10 | #include "uml-config.h" | 10 | #include "uml-config.h" |
11 | #include "sysdep/sigcontext.h" | 11 | #include "sysdep/sigcontext.h" |
12 | #include "sysdep/faultinfo.h" | 12 | #include "sysdep/faultinfo.h" |
13 | #include <stddef.h> | ||
14 | |||
15 | /* Copied from sys-x86_64/signal.c - Can't find an equivalent definition | ||
16 | * in the libc headers anywhere. | ||
17 | */ | ||
18 | struct rt_sigframe | ||
19 | { | ||
20 | char *pretcode; | ||
21 | struct ucontext uc; | ||
22 | struct siginfo info; | ||
23 | }; | ||
24 | |||
25 | /* Copied here from <linux/kernel.h> - we're userspace. */ | ||
26 | #define container_of(ptr, type, member) ({ \ | ||
27 | const typeof( ((type *)0)->member ) *__mptr = (ptr); \ | ||
28 | (type *)( (char *)__mptr - offsetof(type,member) );}) | ||
13 | 29 | ||
14 | void __attribute__ ((__section__ (".__syscall_stub"))) | 30 | void __attribute__ ((__section__ (".__syscall_stub"))) |
15 | stub_segv_handler(int sig) | 31 | stub_segv_handler(int sig) |
@@ -17,16 +33,19 @@ stub_segv_handler(int sig) | |||
17 | struct ucontext *uc; | 33 | struct ucontext *uc; |
18 | 34 | ||
19 | __asm__("movq %%rdx, %0" : "=g" (uc) :); | 35 | __asm__("movq %%rdx, %0" : "=g" (uc) :); |
20 | GET_FAULTINFO_FROM_SC(*((struct faultinfo *) UML_CONFIG_STUB_DATA), | 36 | GET_FAULTINFO_FROM_SC(*((struct faultinfo *) UML_CONFIG_STUB_DATA), |
21 | &uc->uc_mcontext); | 37 | &uc->uc_mcontext); |
22 | 38 | ||
23 | __asm__("movq %0, %%rax ; syscall": : "g" (__NR_getpid)); | 39 | __asm__("movq %0, %%rax ; syscall": : "g" (__NR_getpid)); |
24 | __asm__("movq %%rax, %%rdi ; movq %0, %%rax ; movq %1, %%rsi ;" | 40 | __asm__("movq %%rax, %%rdi ; movq %0, %%rax ; movq %1, %%rsi ;" |
25 | "syscall": : "g" (__NR_kill), "g" (SIGUSR1)); | 41 | "syscall": : "g" (__NR_kill), "g" (SIGUSR1) : |
26 | /* Two popqs to restore the stack to the state just before entering | 42 | "%rdi", "%rax", "%rsi"); |
27 | * the handler, one pops the return address, the other pops the frame | 43 | /* sys_sigreturn expects that the stack pointer will be 8 bytes into |
28 | * pointer. | 44 | * the signal frame. So, we use the ucontext pointer, which we know |
45 | * already, to get the signal frame pointer, and add 8 to that. | ||
29 | */ | 46 | */ |
30 | __asm__("popq %%rax ; popq %%rax ; movq %0, %%rax ; syscall" : : "g" | 47 | __asm__("movq %0, %%rsp": : |
31 | (__NR_rt_sigreturn)); | 48 | "g" ((unsigned long) container_of(uc, struct rt_sigframe, |
49 | uc) + 8)); | ||
50 | __asm__("movq %0, %%rax ; syscall" : : "g" (__NR_rt_sigreturn)); | ||
32 | } | 51 | } |
diff --git a/arch/um/sys-x86_64/user-offsets.c b/arch/um/sys-x86_64/user-offsets.c index 513d17ceafd4..5a585bfbb8c2 100644 --- a/arch/um/sys-x86_64/user-offsets.c +++ b/arch/um/sys-x86_64/user-offsets.c | |||
@@ -16,71 +16,76 @@ typedef __u32 u32; | |||
16 | #define DEFINE(sym, val) \ | 16 | #define DEFINE(sym, val) \ |
17 | asm volatile("\n->" #sym " %0 " #val : : "i" (val)) | 17 | asm volatile("\n->" #sym " %0 " #val : : "i" (val)) |
18 | 18 | ||
19 | #define DEFINE_LONGS(sym, val) \ | ||
20 | asm volatile("\n->" #sym " %0 " #val : : "i" (val/sizeof(unsigned long))) | ||
21 | |||
19 | #define OFFSET(sym, str, mem) \ | 22 | #define OFFSET(sym, str, mem) \ |
20 | DEFINE(sym, offsetof(struct str, mem)); | 23 | DEFINE(sym, offsetof(struct str, mem)); |
21 | 24 | ||
22 | void foo(void) | 25 | void foo(void) |
23 | { | 26 | { |
24 | OFFSET(SC_RBX, sigcontext, rbx); | 27 | OFFSET(HOST_SC_RBX, sigcontext, rbx); |
25 | OFFSET(SC_RCX, sigcontext, rcx); | 28 | OFFSET(HOST_SC_RCX, sigcontext, rcx); |
26 | OFFSET(SC_RDX, sigcontext, rdx); | 29 | OFFSET(HOST_SC_RDX, sigcontext, rdx); |
27 | OFFSET(SC_RSI, sigcontext, rsi); | 30 | OFFSET(HOST_SC_RSI, sigcontext, rsi); |
28 | OFFSET(SC_RDI, sigcontext, rdi); | 31 | OFFSET(HOST_SC_RDI, sigcontext, rdi); |
29 | OFFSET(SC_RBP, sigcontext, rbp); | 32 | OFFSET(HOST_SC_RBP, sigcontext, rbp); |
30 | OFFSET(SC_RAX, sigcontext, rax); | 33 | OFFSET(HOST_SC_RAX, sigcontext, rax); |
31 | OFFSET(SC_R8, sigcontext, r8); | 34 | OFFSET(HOST_SC_R8, sigcontext, r8); |
32 | OFFSET(SC_R9, sigcontext, r9); | 35 | OFFSET(HOST_SC_R9, sigcontext, r9); |
33 | OFFSET(SC_R10, sigcontext, r10); | 36 | OFFSET(HOST_SC_R10, sigcontext, r10); |
34 | OFFSET(SC_R11, sigcontext, r11); | 37 | OFFSET(HOST_SC_R11, sigcontext, r11); |
35 | OFFSET(SC_R12, sigcontext, r12); | 38 | OFFSET(HOST_SC_R12, sigcontext, r12); |
36 | OFFSET(SC_R13, sigcontext, r13); | 39 | OFFSET(HOST_SC_R13, sigcontext, r13); |
37 | OFFSET(SC_R14, sigcontext, r14); | 40 | OFFSET(HOST_SC_R14, sigcontext, r14); |
38 | OFFSET(SC_R15, sigcontext, r15); | 41 | OFFSET(HOST_SC_R15, sigcontext, r15); |
39 | OFFSET(SC_IP, sigcontext, rip); | 42 | OFFSET(HOST_SC_IP, sigcontext, rip); |
40 | OFFSET(SC_SP, sigcontext, rsp); | 43 | OFFSET(HOST_SC_SP, sigcontext, rsp); |
41 | OFFSET(SC_CR2, sigcontext, cr2); | 44 | OFFSET(HOST_SC_CR2, sigcontext, cr2); |
42 | OFFSET(SC_ERR, sigcontext, err); | 45 | OFFSET(HOST_SC_ERR, sigcontext, err); |
43 | OFFSET(SC_TRAPNO, sigcontext, trapno); | 46 | OFFSET(HOST_SC_TRAPNO, sigcontext, trapno); |
44 | OFFSET(SC_CS, sigcontext, cs); | 47 | OFFSET(HOST_SC_CS, sigcontext, cs); |
45 | OFFSET(SC_FS, sigcontext, fs); | 48 | OFFSET(HOST_SC_FS, sigcontext, fs); |
46 | OFFSET(SC_GS, sigcontext, gs); | 49 | OFFSET(HOST_SC_GS, sigcontext, gs); |
47 | OFFSET(SC_EFLAGS, sigcontext, eflags); | 50 | OFFSET(HOST_SC_EFLAGS, sigcontext, eflags); |
48 | OFFSET(SC_SIGMASK, sigcontext, oldmask); | 51 | OFFSET(HOST_SC_SIGMASK, sigcontext, oldmask); |
49 | #if 0 | 52 | #if 0 |
50 | OFFSET(SC_ORIG_RAX, sigcontext, orig_rax); | 53 | OFFSET(HOST_SC_ORIG_RAX, sigcontext, orig_rax); |
51 | OFFSET(SC_DS, sigcontext, ds); | 54 | OFFSET(HOST_SC_DS, sigcontext, ds); |
52 | OFFSET(SC_ES, sigcontext, es); | 55 | OFFSET(HOST_SC_ES, sigcontext, es); |
53 | OFFSET(SC_SS, sigcontext, ss); | 56 | OFFSET(HOST_SC_SS, sigcontext, ss); |
54 | #endif | 57 | #endif |
55 | 58 | ||
56 | DEFINE(HOST_FRAME_SIZE, FRAME_SIZE); | 59 | DEFINE_LONGS(HOST_FRAME_SIZE, FRAME_SIZE); |
57 | DEFINE(HOST_RBX, RBX); | 60 | DEFINE(HOST_FP_SIZE, 0); |
58 | DEFINE(HOST_RCX, RCX); | 61 | DEFINE(HOST_XFP_SIZE, 0); |
59 | DEFINE(HOST_RDI, RDI); | 62 | DEFINE_LONGS(HOST_RBX, RBX); |
60 | DEFINE(HOST_RSI, RSI); | 63 | DEFINE_LONGS(HOST_RCX, RCX); |
61 | DEFINE(HOST_RDX, RDX); | 64 | DEFINE_LONGS(HOST_RDI, RDI); |
62 | DEFINE(HOST_RBP, RBP); | 65 | DEFINE_LONGS(HOST_RSI, RSI); |
63 | DEFINE(HOST_RAX, RAX); | 66 | DEFINE_LONGS(HOST_RDX, RDX); |
64 | DEFINE(HOST_R8, R8); | 67 | DEFINE_LONGS(HOST_RBP, RBP); |
65 | DEFINE(HOST_R9, R9); | 68 | DEFINE_LONGS(HOST_RAX, RAX); |
66 | DEFINE(HOST_R10, R10); | 69 | DEFINE_LONGS(HOST_R8, R8); |
67 | DEFINE(HOST_R11, R11); | 70 | DEFINE_LONGS(HOST_R9, R9); |
68 | DEFINE(HOST_R12, R12); | 71 | DEFINE_LONGS(HOST_R10, R10); |
69 | DEFINE(HOST_R13, R13); | 72 | DEFINE_LONGS(HOST_R11, R11); |
70 | DEFINE(HOST_R14, R14); | 73 | DEFINE_LONGS(HOST_R12, R12); |
71 | DEFINE(HOST_R15, R15); | 74 | DEFINE_LONGS(HOST_R13, R13); |
72 | DEFINE(HOST_ORIG_RAX, ORIG_RAX); | 75 | DEFINE_LONGS(HOST_R14, R14); |
73 | DEFINE(HOST_CS, CS); | 76 | DEFINE_LONGS(HOST_R15, R15); |
74 | DEFINE(HOST_SS, SS); | 77 | DEFINE_LONGS(HOST_ORIG_RAX, ORIG_RAX); |
75 | DEFINE(HOST_EFLAGS, EFLAGS); | 78 | DEFINE_LONGS(HOST_CS, CS); |
79 | DEFINE_LONGS(HOST_SS, SS); | ||
80 | DEFINE_LONGS(HOST_EFLAGS, EFLAGS); | ||
76 | #if 0 | 81 | #if 0 |
77 | DEFINE(HOST_FS, FS); | 82 | DEFINE_LONGS(HOST_FS, FS); |
78 | DEFINE(HOST_GS, GS); | 83 | DEFINE_LONGS(HOST_GS, GS); |
79 | DEFINE(HOST_DS, DS); | 84 | DEFINE_LONGS(HOST_DS, DS); |
80 | DEFINE(HOST_ES, ES); | 85 | DEFINE_LONGS(HOST_ES, ES); |
81 | #endif | 86 | #endif |
82 | 87 | ||
83 | DEFINE(HOST_IP, RIP); | 88 | DEFINE_LONGS(HOST_IP, RIP); |
84 | DEFINE(HOST_SP, RSP); | 89 | DEFINE_LONGS(HOST_SP, RSP); |
85 | DEFINE(__UM_FRAME_SIZE, sizeof(struct user_regs_struct)); | 90 | DEFINE(UM_FRAME_SIZE, sizeof(struct user_regs_struct)); |
86 | } | 91 | } |
diff --git a/arch/um/sys-x86_64/util/Makefile b/arch/um/sys-x86_64/util/Makefile deleted file mode 100644 index 75b052cfc206..000000000000 --- a/arch/um/sys-x86_64/util/Makefile +++ /dev/null | |||
@@ -1,8 +0,0 @@ | |||
1 | # Copyright 2003 - 2004 Pathscale, Inc | ||
2 | # Released under the GPL | ||
3 | |||
4 | hostprogs-y := mk_sc mk_thread | ||
5 | always := $(hostprogs-y) | ||
6 | |||
7 | HOSTCFLAGS_mk_sc.o := -I$(objtree)/arch/um | ||
8 | HOSTCFLAGS_mk_thread.o := -I$(objtree)/arch/um | ||
diff --git a/arch/um/sys-x86_64/util/mk_sc.c b/arch/um/sys-x86_64/util/mk_sc.c deleted file mode 100644 index 7619bc377c1f..000000000000 --- a/arch/um/sys-x86_64/util/mk_sc.c +++ /dev/null | |||
@@ -1,47 +0,0 @@ | |||
1 | /* Copyright (C) 2003 - 2004 PathScale, Inc | ||
2 | * Released under the GPL | ||
3 | */ | ||
4 | |||
5 | #include <stdio.h> | ||
6 | #include <user-offsets.h> | ||
7 | |||
8 | #define SC_OFFSET(name) \ | ||
9 | printf("#define " #name \ | ||
10 | "(sc) *((unsigned long *) &(((char *) (sc))[%d]))\n",\ | ||
11 | name) | ||
12 | |||
13 | int main(int argc, char **argv) | ||
14 | { | ||
15 | SC_OFFSET(SC_RBX); | ||
16 | SC_OFFSET(SC_RCX); | ||
17 | SC_OFFSET(SC_RDX); | ||
18 | SC_OFFSET(SC_RSI); | ||
19 | SC_OFFSET(SC_RDI); | ||
20 | SC_OFFSET(SC_RBP); | ||
21 | SC_OFFSET(SC_RAX); | ||
22 | SC_OFFSET(SC_R8); | ||
23 | SC_OFFSET(SC_R9); | ||
24 | SC_OFFSET(SC_R10); | ||
25 | SC_OFFSET(SC_R11); | ||
26 | SC_OFFSET(SC_R12); | ||
27 | SC_OFFSET(SC_R13); | ||
28 | SC_OFFSET(SC_R14); | ||
29 | SC_OFFSET(SC_R15); | ||
30 | SC_OFFSET(SC_IP); | ||
31 | SC_OFFSET(SC_SP); | ||
32 | SC_OFFSET(SC_CR2); | ||
33 | SC_OFFSET(SC_ERR); | ||
34 | SC_OFFSET(SC_TRAPNO); | ||
35 | SC_OFFSET(SC_CS); | ||
36 | SC_OFFSET(SC_FS); | ||
37 | SC_OFFSET(SC_GS); | ||
38 | SC_OFFSET(SC_EFLAGS); | ||
39 | SC_OFFSET(SC_SIGMASK); | ||
40 | #if 0 | ||
41 | SC_OFFSET(SC_ORIG_RAX); | ||
42 | SC_OFFSET(SC_DS); | ||
43 | SC_OFFSET(SC_ES); | ||
44 | SC_OFFSET(SC_SS); | ||
45 | #endif | ||
46 | return(0); | ||
47 | } | ||
diff --git a/arch/um/sys-x86_64/util/mk_thread.c b/arch/um/sys-x86_64/util/mk_thread.c deleted file mode 100644 index 15517396e9cf..000000000000 --- a/arch/um/sys-x86_64/util/mk_thread.c +++ /dev/null | |||
@@ -1,20 +0,0 @@ | |||
1 | #include <stdio.h> | ||
2 | #include <kernel-offsets.h> | ||
3 | |||
4 | int main(int argc, char **argv) | ||
5 | { | ||
6 | printf("/*\n"); | ||
7 | printf(" * Generated by mk_thread\n"); | ||
8 | printf(" */\n"); | ||
9 | printf("\n"); | ||
10 | printf("#ifndef __UM_THREAD_H\n"); | ||
11 | printf("#define __UM_THREAD_H\n"); | ||
12 | printf("\n"); | ||
13 | #ifdef TASK_EXTERN_PID | ||
14 | printf("#define TASK_EXTERN_PID(task) *((int *) &(((char *) (task))[%d]))\n", | ||
15 | TASK_EXTERN_PID); | ||
16 | #endif | ||
17 | printf("\n"); | ||
18 | printf("#endif\n"); | ||
19 | return(0); | ||
20 | } | ||
diff --git a/arch/um/util/Makefile b/arch/um/util/Makefile deleted file mode 100644 index 4c7551c28033..000000000000 --- a/arch/um/util/Makefile +++ /dev/null | |||
@@ -1,5 +0,0 @@ | |||
1 | hostprogs-y := mk_task mk_constants | ||
2 | always := $(hostprogs-y) | ||
3 | |||
4 | HOSTCFLAGS_mk_task.o := -I$(objtree)/arch/um | ||
5 | HOSTCFLAGS_mk_constants.o := -I$(objtree)/arch/um | ||
diff --git a/arch/um/util/mk_constants.c b/arch/um/util/mk_constants.c deleted file mode 100644 index ab217becc36a..000000000000 --- a/arch/um/util/mk_constants.c +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | #include <stdio.h> | ||
2 | #include <kernel-offsets.h> | ||
3 | |||
4 | #define SHOW_INT(sym) printf("#define %s %d\n", #sym, sym) | ||
5 | #define SHOW_STR(sym) printf("#define %s %s\n", #sym, sym) | ||
6 | |||
7 | int main(int argc, char **argv) | ||
8 | { | ||
9 | printf("/*\n"); | ||
10 | printf(" * Generated by mk_constants\n"); | ||
11 | printf(" */\n"); | ||
12 | printf("\n"); | ||
13 | printf("#ifndef __UM_CONSTANTS_H\n"); | ||
14 | printf("#define __UM_CONSTANTS_H\n"); | ||
15 | printf("\n"); | ||
16 | |||
17 | SHOW_INT(UM_KERN_PAGE_SIZE); | ||
18 | |||
19 | SHOW_STR(UM_KERN_EMERG); | ||
20 | SHOW_STR(UM_KERN_ALERT); | ||
21 | SHOW_STR(UM_KERN_CRIT); | ||
22 | SHOW_STR(UM_KERN_ERR); | ||
23 | SHOW_STR(UM_KERN_WARNING); | ||
24 | SHOW_STR(UM_KERN_NOTICE); | ||
25 | SHOW_STR(UM_KERN_INFO); | ||
26 | SHOW_STR(UM_KERN_DEBUG); | ||
27 | |||
28 | SHOW_INT(UM_NSEC_PER_SEC); | ||
29 | printf("\n"); | ||
30 | printf("#endif\n"); | ||
31 | return(0); | ||
32 | } | ||
diff --git a/arch/um/util/mk_task.c b/arch/um/util/mk_task.c deleted file mode 100644 index 36c9606505e2..000000000000 --- a/arch/um/util/mk_task.c +++ /dev/null | |||
@@ -1,30 +0,0 @@ | |||
1 | #include <stdio.h> | ||
2 | #include <kernel-offsets.h> | ||
3 | |||
4 | void print_ptr(char *name, char *type, int offset) | ||
5 | { | ||
6 | printf("#define %s(task) ((%s *) &(((char *) (task))[%d]))\n", name, type, | ||
7 | offset); | ||
8 | } | ||
9 | |||
10 | void print(char *name, char *type, int offset) | ||
11 | { | ||
12 | printf("#define %s(task) *((%s *) &(((char *) (task))[%d]))\n", name, type, | ||
13 | offset); | ||
14 | } | ||
15 | |||
16 | int main(int argc, char **argv) | ||
17 | { | ||
18 | printf("/*\n"); | ||
19 | printf(" * Generated by mk_task\n"); | ||
20 | printf(" */\n"); | ||
21 | printf("\n"); | ||
22 | printf("#ifndef __TASK_H\n"); | ||
23 | printf("#define __TASK_H\n"); | ||
24 | printf("\n"); | ||
25 | print_ptr("TASK_REGS", "union uml_pt_regs", TASK_REGS); | ||
26 | print("TASK_PID", "int", TASK_PID); | ||
27 | printf("\n"); | ||
28 | printf("#endif\n"); | ||
29 | return(0); | ||
30 | } | ||
diff --git a/arch/x86_64/ia32/ia32_signal.c b/arch/x86_64/ia32/ia32_signal.c index 66e2821533db..0903cc1faef2 100644 --- a/arch/x86_64/ia32/ia32_signal.c +++ b/arch/x86_64/ia32/ia32_signal.c | |||
@@ -425,7 +425,11 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs * regs, size_t frame_size) | |||
425 | rsp = (unsigned long) ka->sa.sa_restorer; | 425 | rsp = (unsigned long) ka->sa.sa_restorer; |
426 | } | 426 | } |
427 | 427 | ||
428 | return (void __user *)((rsp - frame_size) & -8UL); | 428 | rsp -= frame_size; |
429 | /* Align the stack pointer according to the i386 ABI, | ||
430 | * i.e. so that on function entry ((sp + 4) & 15) == 0. */ | ||
431 | rsp = ((rsp + 4) & -16ul) - 4; | ||
432 | return (void __user *) rsp; | ||
429 | } | 433 | } |
430 | 434 | ||
431 | int ia32_setup_frame(int sig, struct k_sigaction *ka, | 435 | int ia32_setup_frame(int sig, struct k_sigaction *ka, |
diff --git a/arch/x86_64/kernel/head.S b/arch/x86_64/kernel/head.S index 4592bf21fcaf..b92e5f45ed46 100644 --- a/arch/x86_64/kernel/head.S +++ b/arch/x86_64/kernel/head.S | |||
@@ -270,26 +270,26 @@ ENTRY(level3_kernel_pgt) | |||
270 | .org 0x4000 | 270 | .org 0x4000 |
271 | ENTRY(level2_ident_pgt) | 271 | ENTRY(level2_ident_pgt) |
272 | /* 40MB for bootup. */ | 272 | /* 40MB for bootup. */ |
273 | .quad 0x0000000000000183 | 273 | .quad 0x0000000000000083 |
274 | .quad 0x0000000000200183 | 274 | .quad 0x0000000000200083 |
275 | .quad 0x0000000000400183 | 275 | .quad 0x0000000000400083 |
276 | .quad 0x0000000000600183 | 276 | .quad 0x0000000000600083 |
277 | .quad 0x0000000000800183 | 277 | .quad 0x0000000000800083 |
278 | .quad 0x0000000000A00183 | 278 | .quad 0x0000000000A00083 |
279 | .quad 0x0000000000C00183 | 279 | .quad 0x0000000000C00083 |
280 | .quad 0x0000000000E00183 | 280 | .quad 0x0000000000E00083 |
281 | .quad 0x0000000001000183 | 281 | .quad 0x0000000001000083 |
282 | .quad 0x0000000001200183 | 282 | .quad 0x0000000001200083 |
283 | .quad 0x0000000001400183 | 283 | .quad 0x0000000001400083 |
284 | .quad 0x0000000001600183 | 284 | .quad 0x0000000001600083 |
285 | .quad 0x0000000001800183 | 285 | .quad 0x0000000001800083 |
286 | .quad 0x0000000001A00183 | 286 | .quad 0x0000000001A00083 |
287 | .quad 0x0000000001C00183 | 287 | .quad 0x0000000001C00083 |
288 | .quad 0x0000000001E00183 | 288 | .quad 0x0000000001E00083 |
289 | .quad 0x0000000002000183 | 289 | .quad 0x0000000002000083 |
290 | .quad 0x0000000002200183 | 290 | .quad 0x0000000002200083 |
291 | .quad 0x0000000002400183 | 291 | .quad 0x0000000002400083 |
292 | .quad 0x0000000002600183 | 292 | .quad 0x0000000002600083 |
293 | /* Temporary mappings for the super early allocator in arch/x86_64/mm/init.c */ | 293 | /* Temporary mappings for the super early allocator in arch/x86_64/mm/init.c */ |
294 | .globl temp_boot_pmds | 294 | .globl temp_boot_pmds |
295 | temp_boot_pmds: | 295 | temp_boot_pmds: |
diff --git a/arch/x86_64/kernel/kprobes.c b/arch/x86_64/kernel/kprobes.c index df08c43276a0..76a28b007be9 100644 --- a/arch/x86_64/kernel/kprobes.c +++ b/arch/x86_64/kernel/kprobes.c | |||
@@ -77,9 +77,9 @@ static inline int is_IF_modifier(kprobe_opcode_t *insn) | |||
77 | int __kprobes arch_prepare_kprobe(struct kprobe *p) | 77 | int __kprobes arch_prepare_kprobe(struct kprobe *p) |
78 | { | 78 | { |
79 | /* insn: must be on special executable page on x86_64. */ | 79 | /* insn: must be on special executable page on x86_64. */ |
80 | up(&kprobe_mutex); | ||
81 | p->ainsn.insn = get_insn_slot(); | ||
82 | down(&kprobe_mutex); | 80 | down(&kprobe_mutex); |
81 | p->ainsn.insn = get_insn_slot(); | ||
82 | up(&kprobe_mutex); | ||
83 | if (!p->ainsn.insn) { | 83 | if (!p->ainsn.insn) { |
84 | return -ENOMEM; | 84 | return -ENOMEM; |
85 | } | 85 | } |
@@ -231,9 +231,9 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p) | |||
231 | 231 | ||
232 | void __kprobes arch_remove_kprobe(struct kprobe *p) | 232 | void __kprobes arch_remove_kprobe(struct kprobe *p) |
233 | { | 233 | { |
234 | up(&kprobe_mutex); | ||
235 | free_insn_slot(p->ainsn.insn); | ||
236 | down(&kprobe_mutex); | 234 | down(&kprobe_mutex); |
235 | free_insn_slot(p->ainsn.insn); | ||
236 | up(&kprobe_mutex); | ||
237 | } | 237 | } |
238 | 238 | ||
239 | static inline void save_previous_kprobe(void) | 239 | static inline void save_previous_kprobe(void) |
diff --git a/arch/x86_64/kernel/mce.c b/arch/x86_64/kernel/mce.c index 08203b07f4bd..69541db5ff2c 100644 --- a/arch/x86_64/kernel/mce.c +++ b/arch/x86_64/kernel/mce.c | |||
@@ -54,9 +54,12 @@ void mce_log(struct mce *mce) | |||
54 | { | 54 | { |
55 | unsigned next, entry; | 55 | unsigned next, entry; |
56 | mce->finished = 0; | 56 | mce->finished = 0; |
57 | smp_wmb(); | 57 | wmb(); |
58 | for (;;) { | 58 | for (;;) { |
59 | entry = rcu_dereference(mcelog.next); | 59 | entry = rcu_dereference(mcelog.next); |
60 | /* The rmb forces the compiler to reload next in each | ||
61 | iteration */ | ||
62 | rmb(); | ||
60 | for (;;) { | 63 | for (;;) { |
61 | /* When the buffer fills up discard new entries. Assume | 64 | /* When the buffer fills up discard new entries. Assume |
62 | that the earlier errors are the more interesting. */ | 65 | that the earlier errors are the more interesting. */ |
@@ -69,6 +72,7 @@ void mce_log(struct mce *mce) | |||
69 | entry++; | 72 | entry++; |
70 | continue; | 73 | continue; |
71 | } | 74 | } |
75 | break; | ||
72 | } | 76 | } |
73 | smp_rmb(); | 77 | smp_rmb(); |
74 | next = entry + 1; | 78 | next = entry + 1; |
@@ -76,9 +80,9 @@ void mce_log(struct mce *mce) | |||
76 | break; | 80 | break; |
77 | } | 81 | } |
78 | memcpy(mcelog.entry + entry, mce, sizeof(struct mce)); | 82 | memcpy(mcelog.entry + entry, mce, sizeof(struct mce)); |
79 | smp_wmb(); | 83 | wmb(); |
80 | mcelog.entry[entry].finished = 1; | 84 | mcelog.entry[entry].finished = 1; |
81 | smp_wmb(); | 85 | wmb(); |
82 | 86 | ||
83 | if (!test_and_set_bit(0, &console_logged)) | 87 | if (!test_and_set_bit(0, &console_logged)) |
84 | notify_user = 1; | 88 | notify_user = 1; |
diff --git a/arch/x86_64/kernel/setup.c b/arch/x86_64/kernel/setup.c index 238f73e1a834..cb28df14ff6f 100644 --- a/arch/x86_64/kernel/setup.c +++ b/arch/x86_64/kernel/setup.c | |||
@@ -831,8 +831,6 @@ static void __init amd_detect_cmp(struct cpuinfo_x86 *c) | |||
831 | #endif | 831 | #endif |
832 | } | 832 | } |
833 | 833 | ||
834 | #define HWCR 0xc0010015 | ||
835 | |||
836 | static int __init init_amd(struct cpuinfo_x86 *c) | 834 | static int __init init_amd(struct cpuinfo_x86 *c) |
837 | { | 835 | { |
838 | int r; | 836 | int r; |
@@ -841,14 +839,18 @@ static int __init init_amd(struct cpuinfo_x86 *c) | |||
841 | #ifdef CONFIG_SMP | 839 | #ifdef CONFIG_SMP |
842 | unsigned long value; | 840 | unsigned long value; |
843 | 841 | ||
844 | // Disable TLB flush filter by setting HWCR.FFDIS: | 842 | /* |
845 | // bit 6 of msr C001_0015 | 843 | * Disable TLB flush filter by setting HWCR.FFDIS on K8 |
846 | // | 844 | * bit 6 of msr C001_0015 |
847 | // Errata 63 for SH-B3 steppings | 845 | * |
848 | // Errata 122 for all(?) steppings | 846 | * Errata 63 for SH-B3 steppings |
849 | rdmsrl(HWCR, value); | 847 | * Errata 122 for all steppings (F+ have it disabled by default) |
850 | value |= 1 << 6; | 848 | */ |
851 | wrmsrl(HWCR, value); | 849 | if (c->x86 == 15) { |
850 | rdmsrl(MSR_K8_HWCR, value); | ||
851 | value |= 1 << 6; | ||
852 | wrmsrl(MSR_K8_HWCR, value); | ||
853 | } | ||
852 | #endif | 854 | #endif |
853 | 855 | ||
854 | /* Bit 31 in normal CPUID used for nonstandard 3DNow ID; | 856 | /* Bit 31 in normal CPUID used for nonstandard 3DNow ID; |
@@ -965,13 +967,12 @@ static int __cpuinit intel_num_cpu_cores(struct cpuinfo_x86 *c) | |||
965 | static void srat_detect_node(void) | 967 | static void srat_detect_node(void) |
966 | { | 968 | { |
967 | #ifdef CONFIG_NUMA | 969 | #ifdef CONFIG_NUMA |
968 | unsigned apicid, node; | 970 | unsigned node; |
969 | int cpu = smp_processor_id(); | 971 | int cpu = smp_processor_id(); |
970 | 972 | ||
971 | /* Don't do the funky fallback heuristics the AMD version employs | 973 | /* Don't do the funky fallback heuristics the AMD version employs |
972 | for now. */ | 974 | for now. */ |
973 | apicid = phys_proc_id[cpu]; | 975 | node = apicid_to_node[hard_smp_processor_id()]; |
974 | node = apicid_to_node[apicid]; | ||
975 | if (node == NUMA_NO_NODE) | 976 | if (node == NUMA_NO_NODE) |
976 | node = 0; | 977 | node = 0; |
977 | cpu_to_node[cpu] = node; | 978 | cpu_to_node[cpu] = node; |
diff --git a/arch/x86_64/kernel/setup64.c b/arch/x86_64/kernel/setup64.c index bd33be24a386..79190891fbc5 100644 --- a/arch/x86_64/kernel/setup64.c +++ b/arch/x86_64/kernel/setup64.c | |||
@@ -87,6 +87,10 @@ void __init setup_per_cpu_areas(void) | |||
87 | int i; | 87 | int i; |
88 | unsigned long size; | 88 | unsigned long size; |
89 | 89 | ||
90 | #ifdef CONFIG_HOTPLUG_CPU | ||
91 | prefill_possible_map(); | ||
92 | #endif | ||
93 | |||
90 | /* Copy section for each CPU (we discard the original) */ | 94 | /* Copy section for each CPU (we discard the original) */ |
91 | size = ALIGN(__per_cpu_end - __per_cpu_start, SMP_CACHE_BYTES); | 95 | size = ALIGN(__per_cpu_end - __per_cpu_start, SMP_CACHE_BYTES); |
92 | #ifdef CONFIG_MODULES | 96 | #ifdef CONFIG_MODULES |
diff --git a/arch/x86_64/kernel/smpboot.c b/arch/x86_64/kernel/smpboot.c index e12d7baeb33e..658a81b33f3b 100644 --- a/arch/x86_64/kernel/smpboot.c +++ b/arch/x86_64/kernel/smpboot.c | |||
@@ -892,7 +892,7 @@ static __init void disable_smp(void) | |||
892 | * those NR_CPUS, hence cpu_possible_map represents entire NR_CPUS range. | 892 | * those NR_CPUS, hence cpu_possible_map represents entire NR_CPUS range. |
893 | * - Ashok Raj | 893 | * - Ashok Raj |
894 | */ | 894 | */ |
895 | static void prefill_possible_map(void) | 895 | __init void prefill_possible_map(void) |
896 | { | 896 | { |
897 | int i; | 897 | int i; |
898 | for (i = 0; i < NR_CPUS; i++) | 898 | for (i = 0; i < NR_CPUS; i++) |
@@ -967,10 +967,6 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
967 | current_cpu_data = boot_cpu_data; | 967 | current_cpu_data = boot_cpu_data; |
968 | current_thread_info()->cpu = 0; /* needed? */ | 968 | current_thread_info()->cpu = 0; /* needed? */ |
969 | 969 | ||
970 | #ifdef CONFIG_HOTPLUG_CPU | ||
971 | prefill_possible_map(); | ||
972 | #endif | ||
973 | |||
974 | if (smp_sanity_check(max_cpus) < 0) { | 970 | if (smp_sanity_check(max_cpus) < 0) { |
975 | printk(KERN_INFO "SMP disabled\n"); | 971 | printk(KERN_INFO "SMP disabled\n"); |
976 | disable_smp(); | 972 | disable_smp(); |
diff --git a/arch/x86_64/kernel/suspend.c b/arch/x86_64/kernel/suspend.c index ebb9abf3ce6d..f066c6ab3618 100644 --- a/arch/x86_64/kernel/suspend.c +++ b/arch/x86_64/kernel/suspend.c | |||
@@ -11,6 +11,8 @@ | |||
11 | #include <linux/smp.h> | 11 | #include <linux/smp.h> |
12 | #include <linux/suspend.h> | 12 | #include <linux/suspend.h> |
13 | #include <asm/proto.h> | 13 | #include <asm/proto.h> |
14 | #include <asm/page.h> | ||
15 | #include <asm/pgtable.h> | ||
14 | 16 | ||
15 | struct saved_context saved_context; | 17 | struct saved_context saved_context; |
16 | 18 | ||
@@ -140,4 +142,129 @@ void fix_processor_context(void) | |||
140 | 142 | ||
141 | } | 143 | } |
142 | 144 | ||
145 | #ifdef CONFIG_SOFTWARE_SUSPEND | ||
146 | /* Defined in arch/x86_64/kernel/suspend_asm.S */ | ||
147 | extern int restore_image(void); | ||
143 | 148 | ||
149 | pgd_t *temp_level4_pgt; | ||
150 | |||
151 | static void **pages; | ||
152 | |||
153 | static inline void *__add_page(void) | ||
154 | { | ||
155 | void **c; | ||
156 | |||
157 | c = (void **)get_usable_page(GFP_ATOMIC); | ||
158 | if (c) { | ||
159 | *c = pages; | ||
160 | pages = c; | ||
161 | } | ||
162 | return c; | ||
163 | } | ||
164 | |||
165 | static inline void *__next_page(void) | ||
166 | { | ||
167 | void **c; | ||
168 | |||
169 | c = pages; | ||
170 | if (c) { | ||
171 | pages = *c; | ||
172 | *c = NULL; | ||
173 | } | ||
174 | return c; | ||
175 | } | ||
176 | |||
177 | /* | ||
178 | * Try to allocate as many usable pages as needed and daisy chain them. | ||
179 | * If one allocation fails, free the pages allocated so far | ||
180 | */ | ||
181 | static int alloc_usable_pages(unsigned long n) | ||
182 | { | ||
183 | void *p; | ||
184 | |||
185 | pages = NULL; | ||
186 | do | ||
187 | if (!__add_page()) | ||
188 | break; | ||
189 | while (--n); | ||
190 | if (n) { | ||
191 | p = __next_page(); | ||
192 | while (p) { | ||
193 | free_page((unsigned long)p); | ||
194 | p = __next_page(); | ||
195 | } | ||
196 | return -ENOMEM; | ||
197 | } | ||
198 | return 0; | ||
199 | } | ||
200 | |||
201 | static void res_phys_pud_init(pud_t *pud, unsigned long address, unsigned long end) | ||
202 | { | ||
203 | long i, j; | ||
204 | |||
205 | i = pud_index(address); | ||
206 | pud = pud + i; | ||
207 | for (; i < PTRS_PER_PUD; pud++, i++) { | ||
208 | unsigned long paddr; | ||
209 | pmd_t *pmd; | ||
210 | |||
211 | paddr = address + i*PUD_SIZE; | ||
212 | if (paddr >= end) | ||
213 | break; | ||
214 | |||
215 | pmd = (pmd_t *)__next_page(); | ||
216 | set_pud(pud, __pud(__pa(pmd) | _KERNPG_TABLE)); | ||
217 | for (j = 0; j < PTRS_PER_PMD; pmd++, j++, paddr += PMD_SIZE) { | ||
218 | unsigned long pe; | ||
219 | |||
220 | if (paddr >= end) | ||
221 | break; | ||
222 | pe = _PAGE_NX | _PAGE_PSE | _KERNPG_TABLE | paddr; | ||
223 | pe &= __supported_pte_mask; | ||
224 | set_pmd(pmd, __pmd(pe)); | ||
225 | } | ||
226 | } | ||
227 | } | ||
228 | |||
229 | static void set_up_temporary_mappings(void) | ||
230 | { | ||
231 | unsigned long start, end, next; | ||
232 | |||
233 | temp_level4_pgt = (pgd_t *)__next_page(); | ||
234 | |||
235 | /* It is safe to reuse the original kernel mapping */ | ||
236 | set_pgd(temp_level4_pgt + pgd_index(__START_KERNEL_map), | ||
237 | init_level4_pgt[pgd_index(__START_KERNEL_map)]); | ||
238 | |||
239 | /* Set up the direct mapping from scratch */ | ||
240 | start = (unsigned long)pfn_to_kaddr(0); | ||
241 | end = (unsigned long)pfn_to_kaddr(end_pfn); | ||
242 | |||
243 | for (; start < end; start = next) { | ||
244 | pud_t *pud = (pud_t *)__next_page(); | ||
245 | next = start + PGDIR_SIZE; | ||
246 | if (next > end) | ||
247 | next = end; | ||
248 | res_phys_pud_init(pud, __pa(start), __pa(next)); | ||
249 | set_pgd(temp_level4_pgt + pgd_index(start), | ||
250 | mk_kernel_pgd(__pa(pud))); | ||
251 | } | ||
252 | } | ||
253 | |||
254 | int swsusp_arch_resume(void) | ||
255 | { | ||
256 | unsigned long n; | ||
257 | |||
258 | n = ((end_pfn << PAGE_SHIFT) + PUD_SIZE - 1) >> PUD_SHIFT; | ||
259 | n += (n + PTRS_PER_PUD - 1) / PTRS_PER_PUD + 1; | ||
260 | pr_debug("swsusp_arch_resume(): pages needed = %lu\n", n); | ||
261 | if (alloc_usable_pages(n)) { | ||
262 | free_eaten_memory(); | ||
263 | return -ENOMEM; | ||
264 | } | ||
265 | /* We have got enough memory and from now on we cannot recover */ | ||
266 | set_up_temporary_mappings(); | ||
267 | restore_image(); | ||
268 | return 0; | ||
269 | } | ||
270 | #endif /* CONFIG_SOFTWARE_SUSPEND */ | ||
diff --git a/arch/x86_64/kernel/suspend_asm.S b/arch/x86_64/kernel/suspend_asm.S index 4d659e97df10..320b6fb00cca 100644 --- a/arch/x86_64/kernel/suspend_asm.S +++ b/arch/x86_64/kernel/suspend_asm.S | |||
@@ -39,12 +39,13 @@ ENTRY(swsusp_arch_suspend) | |||
39 | call swsusp_save | 39 | call swsusp_save |
40 | ret | 40 | ret |
41 | 41 | ||
42 | ENTRY(swsusp_arch_resume) | 42 | ENTRY(restore_image) |
43 | /* set up cr3 */ | 43 | /* switch to temporary page tables */ |
44 | leaq init_level4_pgt(%rip),%rax | 44 | movq $__PAGE_OFFSET, %rdx |
45 | subq $__START_KERNEL_map,%rax | 45 | movq temp_level4_pgt(%rip), %rax |
46 | movq %rax,%cr3 | 46 | subq %rdx, %rax |
47 | 47 | movq %rax, %cr3 | |
48 | /* Flush TLB */ | ||
48 | movq mmu_cr4_features(%rip), %rax | 49 | movq mmu_cr4_features(%rip), %rax |
49 | movq %rax, %rdx | 50 | movq %rax, %rdx |
50 | andq $~(1<<7), %rdx # PGE | 51 | andq $~(1<<7), %rdx # PGE |
@@ -69,6 +70,10 @@ loop: | |||
69 | movq pbe_next(%rdx), %rdx | 70 | movq pbe_next(%rdx), %rdx |
70 | jmp loop | 71 | jmp loop |
71 | done: | 72 | done: |
73 | /* go back to the original page tables */ | ||
74 | leaq init_level4_pgt(%rip), %rax | ||
75 | subq $__START_KERNEL_map, %rax | ||
76 | movq %rax, %cr3 | ||
72 | /* Flush TLB, including "global" things (vmalloc) */ | 77 | /* Flush TLB, including "global" things (vmalloc) */ |
73 | movq mmu_cr4_features(%rip), %rax | 78 | movq mmu_cr4_features(%rip), %rax |
74 | movq %rax, %rdx | 79 | movq %rax, %rdx |
diff --git a/arch/x86_64/mm/numa.c b/arch/x86_64/mm/numa.c index 80a49d9bd8a7..214803821001 100644 --- a/arch/x86_64/mm/numa.c +++ b/arch/x86_64/mm/numa.c | |||
@@ -167,18 +167,16 @@ void __init numa_init_array(void) | |||
167 | mapping. To avoid this fill in the mapping for all possible | 167 | mapping. To avoid this fill in the mapping for all possible |
168 | CPUs, as the number of CPUs is not known yet. | 168 | CPUs, as the number of CPUs is not known yet. |
169 | We round robin the existing nodes. */ | 169 | We round robin the existing nodes. */ |
170 | rr = 0; | 170 | rr = first_node(node_online_map); |
171 | for (i = 0; i < NR_CPUS; i++) { | 171 | for (i = 0; i < NR_CPUS; i++) { |
172 | if (cpu_to_node[i] != NUMA_NO_NODE) | 172 | if (cpu_to_node[i] != NUMA_NO_NODE) |
173 | continue; | 173 | continue; |
174 | cpu_to_node[i] = rr; | ||
174 | rr = next_node(rr, node_online_map); | 175 | rr = next_node(rr, node_online_map); |
175 | if (rr == MAX_NUMNODES) | 176 | if (rr == MAX_NUMNODES) |
176 | rr = first_node(node_online_map); | 177 | rr = first_node(node_online_map); |
177 | cpu_to_node[i] = rr; | ||
178 | rr++; | ||
179 | } | 178 | } |
180 | 179 | ||
181 | set_bit(0, &node_to_cpumask[cpu_to_node(0)]); | ||
182 | } | 180 | } |
183 | 181 | ||
184 | #ifdef CONFIG_NUMA_EMU | 182 | #ifdef CONFIG_NUMA_EMU |
@@ -266,9 +264,7 @@ void __init numa_initmem_init(unsigned long start_pfn, unsigned long end_pfn) | |||
266 | 264 | ||
267 | __cpuinit void numa_add_cpu(int cpu) | 265 | __cpuinit void numa_add_cpu(int cpu) |
268 | { | 266 | { |
269 | /* BP is initialized elsewhere */ | 267 | set_bit(cpu, &node_to_cpumask[cpu_to_node(cpu)]); |
270 | if (cpu) | ||
271 | set_bit(cpu, &node_to_cpumask[cpu_to_node(cpu)]); | ||
272 | } | 268 | } |
273 | 269 | ||
274 | unsigned long __init numa_free_all_bootmem(void) | 270 | unsigned long __init numa_free_all_bootmem(void) |
diff --git a/arch/x86_64/mm/pageattr.c b/arch/x86_64/mm/pageattr.c index 94862e1ec032..b90e8fe9eeb0 100644 --- a/arch/x86_64/mm/pageattr.c +++ b/arch/x86_64/mm/pageattr.c | |||
@@ -220,8 +220,6 @@ void global_flush_tlb(void) | |||
220 | down_read(&init_mm.mmap_sem); | 220 | down_read(&init_mm.mmap_sem); |
221 | df = xchg(&df_list, NULL); | 221 | df = xchg(&df_list, NULL); |
222 | up_read(&init_mm.mmap_sem); | 222 | up_read(&init_mm.mmap_sem); |
223 | if (!df) | ||
224 | return; | ||
225 | flush_map((df && !df->next) ? df->address : 0); | 223 | flush_map((df && !df->next) ? df->address : 0); |
226 | for (; df; df = next_df) { | 224 | for (; df; df = next_df) { |
227 | next_df = df->next; | 225 | next_df = df->next; |