diff options
Diffstat (limited to 'arch')
172 files changed, 11404 insertions, 1971 deletions
diff --git a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c index 8c71daf94a59..9fee37e2596f 100644 --- a/arch/alpha/kernel/osf_sys.c +++ b/arch/alpha/kernel/osf_sys.c | |||
@@ -75,6 +75,7 @@ osf_set_program_attributes(unsigned long text_start, unsigned long text_len, | |||
75 | lock_kernel(); | 75 | lock_kernel(); |
76 | mm = current->mm; | 76 | mm = current->mm; |
77 | mm->end_code = bss_start + bss_len; | 77 | mm->end_code = bss_start + bss_len; |
78 | mm->start_brk = bss_start + bss_len; | ||
78 | mm->brk = bss_start + bss_len; | 79 | mm->brk = bss_start + bss_len; |
79 | #if 0 | 80 | #if 0 |
80 | printk("set_program_attributes(%lx %lx %lx %lx)\n", | 81 | printk("set_program_attributes(%lx %lx %lx %lx)\n", |
diff --git a/arch/alpha/kernel/pci.c b/arch/alpha/kernel/pci.c index c107cc08daf4..78357798b6fd 100644 --- a/arch/alpha/kernel/pci.c +++ b/arch/alpha/kernel/pci.c | |||
@@ -71,25 +71,13 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82378, quirk_i | |||
71 | static void __init | 71 | static void __init |
72 | quirk_cypress(struct pci_dev *dev) | 72 | quirk_cypress(struct pci_dev *dev) |
73 | { | 73 | { |
74 | /* The Notorious Cy82C693 chip. */ | ||
75 | |||
76 | /* The Cypress IDE controller doesn't support native mode, but it | ||
77 | has programmable addresses of IDE command/control registers. | ||
78 | This violates PCI specifications, confuses the IDE subsystem and | ||
79 | causes resource conflicts between the primary HD_CMD register and | ||
80 | the floppy controller. Ugh. Fix that. */ | ||
81 | if (dev->class >> 8 == PCI_CLASS_STORAGE_IDE) { | ||
82 | dev->resource[0].flags = 0; | ||
83 | dev->resource[1].flags = 0; | ||
84 | } | ||
85 | |||
86 | /* The Cypress bridge responds on the PCI bus in the address range | 74 | /* The Cypress bridge responds on the PCI bus in the address range |
87 | 0xffff0000-0xffffffff (conventional x86 BIOS ROM). There is no | 75 | 0xffff0000-0xffffffff (conventional x86 BIOS ROM). There is no |
88 | way to turn this off. The bridge also supports several extended | 76 | way to turn this off. The bridge also supports several extended |
89 | BIOS ranges (disabled after power-up), and some consoles do turn | 77 | BIOS ranges (disabled after power-up), and some consoles do turn |
90 | them on. So if we use a large direct-map window, or a large SG | 78 | them on. So if we use a large direct-map window, or a large SG |
91 | window, we must avoid the entire 0xfff00000-0xffffffff region. */ | 79 | window, we must avoid the entire 0xfff00000-0xffffffff region. */ |
92 | else if (dev->class >> 8 == PCI_CLASS_BRIDGE_ISA) { | 80 | if (dev->class >> 8 == PCI_CLASS_BRIDGE_ISA) { |
93 | if (__direct_map_base + __direct_map_size >= 0xfff00000UL) | 81 | if (__direct_map_base + __direct_map_size >= 0xfff00000UL) |
94 | __direct_map_size = 0xfff00000UL - __direct_map_base; | 82 | __direct_map_size = 0xfff00000UL - __direct_map_base; |
95 | else { | 83 | else { |
@@ -391,7 +379,7 @@ pcibios_set_master(struct pci_dev *dev) | |||
391 | pci_write_config_byte(dev, PCI_LATENCY_TIMER, 64); | 379 | pci_write_config_byte(dev, PCI_LATENCY_TIMER, 64); |
392 | } | 380 | } |
393 | 381 | ||
394 | static void __init | 382 | void __init |
395 | pcibios_claim_one_bus(struct pci_bus *b) | 383 | pcibios_claim_one_bus(struct pci_bus *b) |
396 | { | 384 | { |
397 | struct pci_dev *dev; | 385 | struct pci_dev *dev; |
@@ -405,7 +393,8 @@ pcibios_claim_one_bus(struct pci_bus *b) | |||
405 | 393 | ||
406 | if (r->parent || !r->start || !r->flags) | 394 | if (r->parent || !r->start || !r->flags) |
407 | continue; | 395 | continue; |
408 | pci_claim_resource(dev, i); | 396 | if (pci_probe_only || (r->flags & IORESOURCE_PCI_FIXED)) |
397 | pci_claim_resource(dev, i); | ||
409 | } | 398 | } |
410 | } | 399 | } |
411 | 400 | ||
@@ -444,8 +433,7 @@ common_init_pci(void) | |||
444 | } | 433 | } |
445 | } | 434 | } |
446 | 435 | ||
447 | if (pci_probe_only) | 436 | pcibios_claim_console_setup(); |
448 | pcibios_claim_console_setup(); | ||
449 | 437 | ||
450 | pci_assign_unassigned_resources(); | 438 | pci_assign_unassigned_resources(); |
451 | pci_fixup_irqs(alpha_mv.pci_swizzle, alpha_mv.pci_map_irq); | 439 | pci_fixup_irqs(alpha_mv.pci_swizzle, alpha_mv.pci_map_irq); |
diff --git a/arch/alpha/kernel/sys_nautilus.c b/arch/alpha/kernel/sys_nautilus.c index 920196bcbb61..a7f23b5ab814 100644 --- a/arch/alpha/kernel/sys_nautilus.c +++ b/arch/alpha/kernel/sys_nautilus.c | |||
@@ -187,6 +187,7 @@ nautilus_machine_check(unsigned long vector, unsigned long la_ptr) | |||
187 | } | 187 | } |
188 | 188 | ||
189 | extern void free_reserved_mem(void *, void *); | 189 | extern void free_reserved_mem(void *, void *); |
190 | extern void pcibios_claim_one_bus(struct pci_bus *); | ||
190 | 191 | ||
191 | static struct resource irongate_mem = { | 192 | static struct resource irongate_mem = { |
192 | .name = "Irongate PCI MEM", | 193 | .name = "Irongate PCI MEM", |
@@ -205,6 +206,7 @@ nautilus_init_pci(void) | |||
205 | /* Scan our single hose. */ | 206 | /* Scan our single hose. */ |
206 | bus = pci_scan_bus(0, alpha_mv.pci_ops, hose); | 207 | bus = pci_scan_bus(0, alpha_mv.pci_ops, hose); |
207 | hose->bus = bus; | 208 | hose->bus = bus; |
209 | pcibios_claim_one_bus(bus); | ||
208 | 210 | ||
209 | irongate = pci_get_bus_and_slot(0, 0); | 211 | irongate = pci_get_bus_and_slot(0, 0); |
210 | bus->self = irongate; | 212 | bus->self = irongate; |
diff --git a/arch/arm/mach-integrator/time.c b/arch/arm/mach-integrator/time.c index 5235f64f235b..8508a0db3eaf 100644 --- a/arch/arm/mach-integrator/time.c +++ b/arch/arm/mach-integrator/time.c | |||
@@ -124,8 +124,11 @@ static int rtc_probe(struct amba_device *dev, void *id) | |||
124 | 124 | ||
125 | xtime.tv_sec = __raw_readl(rtc_base + RTC_DR); | 125 | xtime.tv_sec = __raw_readl(rtc_base + RTC_DR); |
126 | 126 | ||
127 | /* note that 'dev' is merely used for irq disambiguation; | ||
128 | * it is not actually referenced in the irq handler | ||
129 | */ | ||
127 | ret = request_irq(dev->irq[0], arm_rtc_interrupt, IRQF_DISABLED, | 130 | ret = request_irq(dev->irq[0], arm_rtc_interrupt, IRQF_DISABLED, |
128 | "rtc-pl030", NULL); | 131 | "rtc-pl030", dev); |
129 | if (ret) | 132 | if (ret) |
130 | goto map_out; | 133 | goto map_out; |
131 | 134 | ||
diff --git a/arch/arm/mach-lh7a40x/arch-kev7a400.c b/arch/arm/mach-lh7a40x/arch-kev7a400.c index 6d26661d99f6..2ef7d0097b38 100644 --- a/arch/arm/mach-lh7a40x/arch-kev7a400.c +++ b/arch/arm/mach-lh7a40x/arch-kev7a400.c | |||
@@ -75,10 +75,9 @@ static void kev7a400_cpld_handler (unsigned int irq, struct irq_desc *desc) | |||
75 | { | 75 | { |
76 | u32 mask = CPLD_LATCHED_INTS; | 76 | u32 mask = CPLD_LATCHED_INTS; |
77 | irq = IRQ_KEV7A400_CPLD; | 77 | irq = IRQ_KEV7A400_CPLD; |
78 | for (; mask; mask >>= 1, ++irq) { | 78 | for (; mask; mask >>= 1, ++irq) |
79 | if (mask & 1) | 79 | if (mask & 1) |
80 | desc[irq].handle (irq, desc); | 80 | desc_handle_irq(irq, desc); |
81 | } | ||
82 | } | 81 | } |
83 | 82 | ||
84 | void __init lh7a40x_init_board_irq (void) | 83 | void __init lh7a40x_init_board_irq (void) |
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index 746cbb7c8e95..1b8229d9c9d5 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig | |||
@@ -32,6 +32,7 @@ config CPU_ARM7TDMI | |||
32 | depends on !MMU | 32 | depends on !MMU |
33 | select CPU_32v4T | 33 | select CPU_32v4T |
34 | select CPU_ABRT_LV4T | 34 | select CPU_ABRT_LV4T |
35 | select CPU_PABRT_NOIFAR | ||
35 | select CPU_CACHE_V4 | 36 | select CPU_CACHE_V4 |
36 | help | 37 | help |
37 | A 32-bit RISC microprocessor based on the ARM7 processor core | 38 | A 32-bit RISC microprocessor based on the ARM7 processor core |
@@ -85,6 +86,7 @@ config CPU_ARM740T | |||
85 | depends on !MMU | 86 | depends on !MMU |
86 | select CPU_32v4T | 87 | select CPU_32v4T |
87 | select CPU_ABRT_LV4T | 88 | select CPU_ABRT_LV4T |
89 | select CPU_PABRT_NOIFAR | ||
88 | select CPU_CACHE_V3 # although the core is v4t | 90 | select CPU_CACHE_V3 # although the core is v4t |
89 | select CPU_CP15_MPU | 91 | select CPU_CP15_MPU |
90 | help | 92 | help |
@@ -101,6 +103,7 @@ config CPU_ARM9TDMI | |||
101 | depends on !MMU | 103 | depends on !MMU |
102 | select CPU_32v4T | 104 | select CPU_32v4T |
103 | select CPU_ABRT_NOMMU | 105 | select CPU_ABRT_NOMMU |
106 | select CPU_PABRT_NOIFAR | ||
104 | select CPU_CACHE_V4 | 107 | select CPU_CACHE_V4 |
105 | help | 108 | help |
106 | A 32-bit RISC microprocessor based on the ARM9 processor core | 109 | A 32-bit RISC microprocessor based on the ARM9 processor core |
@@ -200,6 +203,7 @@ config CPU_ARM940T | |||
200 | depends on !MMU | 203 | depends on !MMU |
201 | select CPU_32v4T | 204 | select CPU_32v4T |
202 | select CPU_ABRT_NOMMU | 205 | select CPU_ABRT_NOMMU |
206 | select CPU_PABRT_NOIFAR | ||
203 | select CPU_CACHE_VIVT | 207 | select CPU_CACHE_VIVT |
204 | select CPU_CP15_MPU | 208 | select CPU_CP15_MPU |
205 | help | 209 | help |
@@ -217,6 +221,7 @@ config CPU_ARM946E | |||
217 | depends on !MMU | 221 | depends on !MMU |
218 | select CPU_32v5 | 222 | select CPU_32v5 |
219 | select CPU_ABRT_NOMMU | 223 | select CPU_ABRT_NOMMU |
224 | select CPU_PABRT_NOIFAR | ||
220 | select CPU_CACHE_VIVT | 225 | select CPU_CACHE_VIVT |
221 | select CPU_CP15_MPU | 226 | select CPU_CP15_MPU |
222 | help | 227 | help |
@@ -351,6 +356,7 @@ config CPU_XSC3 | |||
351 | default y | 356 | default y |
352 | select CPU_32v5 | 357 | select CPU_32v5 |
353 | select CPU_ABRT_EV5T | 358 | select CPU_ABRT_EV5T |
359 | select CPU_PABRT_NOIFAR | ||
354 | select CPU_CACHE_VIVT | 360 | select CPU_CACHE_VIVT |
355 | select CPU_CP15_MMU | 361 | select CPU_CP15_MMU |
356 | select CPU_TLB_V4WBI if MMU | 362 | select CPU_TLB_V4WBI if MMU |
diff --git a/arch/arm/mm/proc-arm1020.S b/arch/arm/mm/proc-arm1020.S index 32fd7ea533f2..5673f4d6113b 100644 --- a/arch/arm/mm/proc-arm1020.S +++ b/arch/arm/mm/proc-arm1020.S | |||
@@ -471,6 +471,7 @@ arm1020_crval: | |||
471 | .type arm1020_processor_functions, #object | 471 | .type arm1020_processor_functions, #object |
472 | arm1020_processor_functions: | 472 | arm1020_processor_functions: |
473 | .word v4t_early_abort | 473 | .word v4t_early_abort |
474 | .word pabort_noifar | ||
474 | .word cpu_arm1020_proc_init | 475 | .word cpu_arm1020_proc_init |
475 | .word cpu_arm1020_proc_fin | 476 | .word cpu_arm1020_proc_fin |
476 | .word cpu_arm1020_reset | 477 | .word cpu_arm1020_reset |
@@ -478,7 +479,6 @@ arm1020_processor_functions: | |||
478 | .word cpu_arm1020_dcache_clean_area | 479 | .word cpu_arm1020_dcache_clean_area |
479 | .word cpu_arm1020_switch_mm | 480 | .word cpu_arm1020_switch_mm |
480 | .word cpu_arm1020_set_pte_ext | 481 | .word cpu_arm1020_set_pte_ext |
481 | .word pabort_noifar | ||
482 | .size arm1020_processor_functions, . - arm1020_processor_functions | 482 | .size arm1020_processor_functions, . - arm1020_processor_functions |
483 | 483 | ||
484 | .section ".rodata" | 484 | .section ".rodata" |
diff --git a/arch/arm/mm/proc-arm1020e.S b/arch/arm/mm/proc-arm1020e.S index fe2b0ae70274..4343fdb0e9e5 100644 --- a/arch/arm/mm/proc-arm1020e.S +++ b/arch/arm/mm/proc-arm1020e.S | |||
@@ -452,6 +452,7 @@ arm1020e_crval: | |||
452 | .type arm1020e_processor_functions, #object | 452 | .type arm1020e_processor_functions, #object |
453 | arm1020e_processor_functions: | 453 | arm1020e_processor_functions: |
454 | .word v4t_early_abort | 454 | .word v4t_early_abort |
455 | .word pabort_noifar | ||
455 | .word cpu_arm1020e_proc_init | 456 | .word cpu_arm1020e_proc_init |
456 | .word cpu_arm1020e_proc_fin | 457 | .word cpu_arm1020e_proc_fin |
457 | .word cpu_arm1020e_reset | 458 | .word cpu_arm1020e_reset |
@@ -459,7 +460,6 @@ arm1020e_processor_functions: | |||
459 | .word cpu_arm1020e_dcache_clean_area | 460 | .word cpu_arm1020e_dcache_clean_area |
460 | .word cpu_arm1020e_switch_mm | 461 | .word cpu_arm1020e_switch_mm |
461 | .word cpu_arm1020e_set_pte_ext | 462 | .word cpu_arm1020e_set_pte_ext |
462 | .word pabort_noifar | ||
463 | .size arm1020e_processor_functions, . - arm1020e_processor_functions | 463 | .size arm1020e_processor_functions, . - arm1020e_processor_functions |
464 | 464 | ||
465 | .section ".rodata" | 465 | .section ".rodata" |
diff --git a/arch/arm/mm/proc-arm1022.S b/arch/arm/mm/proc-arm1022.S index 06dde678e19d..2a4ea1659e96 100644 --- a/arch/arm/mm/proc-arm1022.S +++ b/arch/arm/mm/proc-arm1022.S | |||
@@ -435,6 +435,7 @@ arm1022_crval: | |||
435 | .type arm1022_processor_functions, #object | 435 | .type arm1022_processor_functions, #object |
436 | arm1022_processor_functions: | 436 | arm1022_processor_functions: |
437 | .word v4t_early_abort | 437 | .word v4t_early_abort |
438 | .word pabort_noifar | ||
438 | .word cpu_arm1022_proc_init | 439 | .word cpu_arm1022_proc_init |
439 | .word cpu_arm1022_proc_fin | 440 | .word cpu_arm1022_proc_fin |
440 | .word cpu_arm1022_reset | 441 | .word cpu_arm1022_reset |
@@ -442,7 +443,6 @@ arm1022_processor_functions: | |||
442 | .word cpu_arm1022_dcache_clean_area | 443 | .word cpu_arm1022_dcache_clean_area |
443 | .word cpu_arm1022_switch_mm | 444 | .word cpu_arm1022_switch_mm |
444 | .word cpu_arm1022_set_pte_ext | 445 | .word cpu_arm1022_set_pte_ext |
445 | .word pabort_noifar | ||
446 | .size arm1022_processor_functions, . - arm1022_processor_functions | 446 | .size arm1022_processor_functions, . - arm1022_processor_functions |
447 | 447 | ||
448 | .section ".rodata" | 448 | .section ".rodata" |
diff --git a/arch/arm/mm/proc-arm1026.S b/arch/arm/mm/proc-arm1026.S index f5506e6e681e..77a1babd421c 100644 --- a/arch/arm/mm/proc-arm1026.S +++ b/arch/arm/mm/proc-arm1026.S | |||
@@ -430,6 +430,7 @@ arm1026_crval: | |||
430 | .type arm1026_processor_functions, #object | 430 | .type arm1026_processor_functions, #object |
431 | arm1026_processor_functions: | 431 | arm1026_processor_functions: |
432 | .word v5t_early_abort | 432 | .word v5t_early_abort |
433 | .word pabort_noifar | ||
433 | .word cpu_arm1026_proc_init | 434 | .word cpu_arm1026_proc_init |
434 | .word cpu_arm1026_proc_fin | 435 | .word cpu_arm1026_proc_fin |
435 | .word cpu_arm1026_reset | 436 | .word cpu_arm1026_reset |
@@ -437,7 +438,6 @@ arm1026_processor_functions: | |||
437 | .word cpu_arm1026_dcache_clean_area | 438 | .word cpu_arm1026_dcache_clean_area |
438 | .word cpu_arm1026_switch_mm | 439 | .word cpu_arm1026_switch_mm |
439 | .word cpu_arm1026_set_pte_ext | 440 | .word cpu_arm1026_set_pte_ext |
440 | .word pabort_noifar | ||
441 | .size arm1026_processor_functions, . - arm1026_processor_functions | 441 | .size arm1026_processor_functions, . - arm1026_processor_functions |
442 | 442 | ||
443 | .section .rodata | 443 | .section .rodata |
diff --git a/arch/arm/mm/proc-arm6_7.S b/arch/arm/mm/proc-arm6_7.S index 14b6a95c8d45..c371fc87776e 100644 --- a/arch/arm/mm/proc-arm6_7.S +++ b/arch/arm/mm/proc-arm6_7.S | |||
@@ -293,6 +293,7 @@ __arm7_setup: mov r0, #0 | |||
293 | .type arm6_processor_functions, #object | 293 | .type arm6_processor_functions, #object |
294 | ENTRY(arm6_processor_functions) | 294 | ENTRY(arm6_processor_functions) |
295 | .word cpu_arm6_data_abort | 295 | .word cpu_arm6_data_abort |
296 | .word pabort_noifar | ||
296 | .word cpu_arm6_proc_init | 297 | .word cpu_arm6_proc_init |
297 | .word cpu_arm6_proc_fin | 298 | .word cpu_arm6_proc_fin |
298 | .word cpu_arm6_reset | 299 | .word cpu_arm6_reset |
@@ -300,7 +301,6 @@ ENTRY(arm6_processor_functions) | |||
300 | .word cpu_arm6_dcache_clean_area | 301 | .word cpu_arm6_dcache_clean_area |
301 | .word cpu_arm6_switch_mm | 302 | .word cpu_arm6_switch_mm |
302 | .word cpu_arm6_set_pte_ext | 303 | .word cpu_arm6_set_pte_ext |
303 | .word pabort_noifar | ||
304 | .size arm6_processor_functions, . - arm6_processor_functions | 304 | .size arm6_processor_functions, . - arm6_processor_functions |
305 | 305 | ||
306 | /* | 306 | /* |
@@ -310,6 +310,7 @@ ENTRY(arm6_processor_functions) | |||
310 | .type arm7_processor_functions, #object | 310 | .type arm7_processor_functions, #object |
311 | ENTRY(arm7_processor_functions) | 311 | ENTRY(arm7_processor_functions) |
312 | .word cpu_arm7_data_abort | 312 | .word cpu_arm7_data_abort |
313 | .word pabort_noifar | ||
313 | .word cpu_arm7_proc_init | 314 | .word cpu_arm7_proc_init |
314 | .word cpu_arm7_proc_fin | 315 | .word cpu_arm7_proc_fin |
315 | .word cpu_arm7_reset | 316 | .word cpu_arm7_reset |
@@ -317,7 +318,6 @@ ENTRY(arm7_processor_functions) | |||
317 | .word cpu_arm7_dcache_clean_area | 318 | .word cpu_arm7_dcache_clean_area |
318 | .word cpu_arm7_switch_mm | 319 | .word cpu_arm7_switch_mm |
319 | .word cpu_arm7_set_pte_ext | 320 | .word cpu_arm7_set_pte_ext |
320 | .word pabort_noifar | ||
321 | .size arm7_processor_functions, . - arm7_processor_functions | 321 | .size arm7_processor_functions, . - arm7_processor_functions |
322 | 322 | ||
323 | .section ".rodata" | 323 | .section ".rodata" |
diff --git a/arch/arm/mm/proc-arm720.S b/arch/arm/mm/proc-arm720.S index ca5e7aac2da7..d64f8e6f75ab 100644 --- a/arch/arm/mm/proc-arm720.S +++ b/arch/arm/mm/proc-arm720.S | |||
@@ -198,6 +198,7 @@ arm720_crval: | |||
198 | .type arm720_processor_functions, #object | 198 | .type arm720_processor_functions, #object |
199 | ENTRY(arm720_processor_functions) | 199 | ENTRY(arm720_processor_functions) |
200 | .word v4t_late_abort | 200 | .word v4t_late_abort |
201 | .word pabort_noifar | ||
201 | .word cpu_arm720_proc_init | 202 | .word cpu_arm720_proc_init |
202 | .word cpu_arm720_proc_fin | 203 | .word cpu_arm720_proc_fin |
203 | .word cpu_arm720_reset | 204 | .word cpu_arm720_reset |
@@ -205,7 +206,6 @@ ENTRY(arm720_processor_functions) | |||
205 | .word cpu_arm720_dcache_clean_area | 206 | .word cpu_arm720_dcache_clean_area |
206 | .word cpu_arm720_switch_mm | 207 | .word cpu_arm720_switch_mm |
207 | .word cpu_arm720_set_pte_ext | 208 | .word cpu_arm720_set_pte_ext |
208 | .word pabort_noifar | ||
209 | .size arm720_processor_functions, . - arm720_processor_functions | 209 | .size arm720_processor_functions, . - arm720_processor_functions |
210 | 210 | ||
211 | .section ".rodata" | 211 | .section ".rodata" |
diff --git a/arch/arm/mm/proc-arm740.S b/arch/arm/mm/proc-arm740.S index 7069f495cf9b..3a57376c8bc9 100644 --- a/arch/arm/mm/proc-arm740.S +++ b/arch/arm/mm/proc-arm740.S | |||
@@ -126,6 +126,7 @@ __arm740_setup: | |||
126 | .type arm740_processor_functions, #object | 126 | .type arm740_processor_functions, #object |
127 | ENTRY(arm740_processor_functions) | 127 | ENTRY(arm740_processor_functions) |
128 | .word v4t_late_abort | 128 | .word v4t_late_abort |
129 | .word pabort_noifar | ||
129 | .word cpu_arm740_proc_init | 130 | .word cpu_arm740_proc_init |
130 | .word cpu_arm740_proc_fin | 131 | .word cpu_arm740_proc_fin |
131 | .word cpu_arm740_reset | 132 | .word cpu_arm740_reset |
diff --git a/arch/arm/mm/proc-arm7tdmi.S b/arch/arm/mm/proc-arm7tdmi.S index d091c2571823..7b3ecdeb5370 100644 --- a/arch/arm/mm/proc-arm7tdmi.S +++ b/arch/arm/mm/proc-arm7tdmi.S | |||
@@ -64,6 +64,7 @@ __arm7tdmi_setup: | |||
64 | .type arm7tdmi_processor_functions, #object | 64 | .type arm7tdmi_processor_functions, #object |
65 | ENTRY(arm7tdmi_processor_functions) | 65 | ENTRY(arm7tdmi_processor_functions) |
66 | .word v4t_late_abort | 66 | .word v4t_late_abort |
67 | .word pabort_noifar | ||
67 | .word cpu_arm7tdmi_proc_init | 68 | .word cpu_arm7tdmi_proc_init |
68 | .word cpu_arm7tdmi_proc_fin | 69 | .word cpu_arm7tdmi_proc_fin |
69 | .word cpu_arm7tdmi_reset | 70 | .word cpu_arm7tdmi_reset |
diff --git a/arch/arm/mm/proc-arm920.S b/arch/arm/mm/proc-arm920.S index 0170d4f466ea..28cdb060df45 100644 --- a/arch/arm/mm/proc-arm920.S +++ b/arch/arm/mm/proc-arm920.S | |||
@@ -417,6 +417,7 @@ arm920_crval: | |||
417 | .type arm920_processor_functions, #object | 417 | .type arm920_processor_functions, #object |
418 | arm920_processor_functions: | 418 | arm920_processor_functions: |
419 | .word v4t_early_abort | 419 | .word v4t_early_abort |
420 | .word pabort_noifar | ||
420 | .word cpu_arm920_proc_init | 421 | .word cpu_arm920_proc_init |
421 | .word cpu_arm920_proc_fin | 422 | .word cpu_arm920_proc_fin |
422 | .word cpu_arm920_reset | 423 | .word cpu_arm920_reset |
@@ -424,7 +425,6 @@ arm920_processor_functions: | |||
424 | .word cpu_arm920_dcache_clean_area | 425 | .word cpu_arm920_dcache_clean_area |
425 | .word cpu_arm920_switch_mm | 426 | .word cpu_arm920_switch_mm |
426 | .word cpu_arm920_set_pte_ext | 427 | .word cpu_arm920_set_pte_ext |
427 | .word pabort_noifar | ||
428 | .size arm920_processor_functions, . - arm920_processor_functions | 428 | .size arm920_processor_functions, . - arm920_processor_functions |
429 | 429 | ||
430 | .section ".rodata" | 430 | .section ".rodata" |
diff --git a/arch/arm/mm/proc-arm922.S b/arch/arm/mm/proc-arm922.S index b7952493d404..94ddcb4a4b76 100644 --- a/arch/arm/mm/proc-arm922.S +++ b/arch/arm/mm/proc-arm922.S | |||
@@ -421,6 +421,7 @@ arm922_crval: | |||
421 | .type arm922_processor_functions, #object | 421 | .type arm922_processor_functions, #object |
422 | arm922_processor_functions: | 422 | arm922_processor_functions: |
423 | .word v4t_early_abort | 423 | .word v4t_early_abort |
424 | .word pabort_noifar | ||
424 | .word cpu_arm922_proc_init | 425 | .word cpu_arm922_proc_init |
425 | .word cpu_arm922_proc_fin | 426 | .word cpu_arm922_proc_fin |
426 | .word cpu_arm922_reset | 427 | .word cpu_arm922_reset |
@@ -428,7 +429,6 @@ arm922_processor_functions: | |||
428 | .word cpu_arm922_dcache_clean_area | 429 | .word cpu_arm922_dcache_clean_area |
429 | .word cpu_arm922_switch_mm | 430 | .word cpu_arm922_switch_mm |
430 | .word cpu_arm922_set_pte_ext | 431 | .word cpu_arm922_set_pte_ext |
431 | .word pabort_noifar | ||
432 | .size arm922_processor_functions, . - arm922_processor_functions | 432 | .size arm922_processor_functions, . - arm922_processor_functions |
433 | 433 | ||
434 | .section ".rodata" | 434 | .section ".rodata" |
diff --git a/arch/arm/mm/proc-arm925.S b/arch/arm/mm/proc-arm925.S index e2988eba4cf6..065087afb772 100644 --- a/arch/arm/mm/proc-arm925.S +++ b/arch/arm/mm/proc-arm925.S | |||
@@ -484,6 +484,7 @@ arm925_crval: | |||
484 | .type arm925_processor_functions, #object | 484 | .type arm925_processor_functions, #object |
485 | arm925_processor_functions: | 485 | arm925_processor_functions: |
486 | .word v4t_early_abort | 486 | .word v4t_early_abort |
487 | .word pabort_noifar | ||
487 | .word cpu_arm925_proc_init | 488 | .word cpu_arm925_proc_init |
488 | .word cpu_arm925_proc_fin | 489 | .word cpu_arm925_proc_fin |
489 | .word cpu_arm925_reset | 490 | .word cpu_arm925_reset |
@@ -491,7 +492,6 @@ arm925_processor_functions: | |||
491 | .word cpu_arm925_dcache_clean_area | 492 | .word cpu_arm925_dcache_clean_area |
492 | .word cpu_arm925_switch_mm | 493 | .word cpu_arm925_switch_mm |
493 | .word cpu_arm925_set_pte_ext | 494 | .word cpu_arm925_set_pte_ext |
494 | .word pabort_noifar | ||
495 | .size arm925_processor_functions, . - arm925_processor_functions | 495 | .size arm925_processor_functions, . - arm925_processor_functions |
496 | 496 | ||
497 | .section ".rodata" | 497 | .section ".rodata" |
diff --git a/arch/arm/mm/proc-arm926.S b/arch/arm/mm/proc-arm926.S index 62f7d1dfe016..997db8472b5c 100644 --- a/arch/arm/mm/proc-arm926.S +++ b/arch/arm/mm/proc-arm926.S | |||
@@ -437,6 +437,7 @@ arm926_crval: | |||
437 | .type arm926_processor_functions, #object | 437 | .type arm926_processor_functions, #object |
438 | arm926_processor_functions: | 438 | arm926_processor_functions: |
439 | .word v5tj_early_abort | 439 | .word v5tj_early_abort |
440 | .word pabort_noifar | ||
440 | .word cpu_arm926_proc_init | 441 | .word cpu_arm926_proc_init |
441 | .word cpu_arm926_proc_fin | 442 | .word cpu_arm926_proc_fin |
442 | .word cpu_arm926_reset | 443 | .word cpu_arm926_reset |
@@ -444,7 +445,6 @@ arm926_processor_functions: | |||
444 | .word cpu_arm926_dcache_clean_area | 445 | .word cpu_arm926_dcache_clean_area |
445 | .word cpu_arm926_switch_mm | 446 | .word cpu_arm926_switch_mm |
446 | .word cpu_arm926_set_pte_ext | 447 | .word cpu_arm926_set_pte_ext |
447 | .word pabort_noifar | ||
448 | .size arm926_processor_functions, . - arm926_processor_functions | 448 | .size arm926_processor_functions, . - arm926_processor_functions |
449 | 449 | ||
450 | .section ".rodata" | 450 | .section ".rodata" |
diff --git a/arch/arm/mm/proc-arm940.S b/arch/arm/mm/proc-arm940.S index 786c593778f0..44ead902bd54 100644 --- a/arch/arm/mm/proc-arm940.S +++ b/arch/arm/mm/proc-arm940.S | |||
@@ -321,6 +321,7 @@ __arm940_setup: | |||
321 | .type arm940_processor_functions, #object | 321 | .type arm940_processor_functions, #object |
322 | ENTRY(arm940_processor_functions) | 322 | ENTRY(arm940_processor_functions) |
323 | .word nommu_early_abort | 323 | .word nommu_early_abort |
324 | .word pabort_noifar | ||
324 | .word cpu_arm940_proc_init | 325 | .word cpu_arm940_proc_init |
325 | .word cpu_arm940_proc_fin | 326 | .word cpu_arm940_proc_fin |
326 | .word cpu_arm940_reset | 327 | .word cpu_arm940_reset |
diff --git a/arch/arm/mm/proc-arm946.S b/arch/arm/mm/proc-arm946.S index a60c1421d450..2218b0c01330 100644 --- a/arch/arm/mm/proc-arm946.S +++ b/arch/arm/mm/proc-arm946.S | |||
@@ -376,6 +376,7 @@ __arm946_setup: | |||
376 | .type arm946_processor_functions, #object | 376 | .type arm946_processor_functions, #object |
377 | ENTRY(arm946_processor_functions) | 377 | ENTRY(arm946_processor_functions) |
378 | .word nommu_early_abort | 378 | .word nommu_early_abort |
379 | .word pabort_noifar | ||
379 | .word cpu_arm946_proc_init | 380 | .word cpu_arm946_proc_init |
380 | .word cpu_arm946_proc_fin | 381 | .word cpu_arm946_proc_fin |
381 | .word cpu_arm946_reset | 382 | .word cpu_arm946_reset |
diff --git a/arch/arm/mm/proc-arm9tdmi.S b/arch/arm/mm/proc-arm9tdmi.S index 4848eeac86b6..c85c1f50e396 100644 --- a/arch/arm/mm/proc-arm9tdmi.S +++ b/arch/arm/mm/proc-arm9tdmi.S | |||
@@ -64,6 +64,7 @@ __arm9tdmi_setup: | |||
64 | .type arm9tdmi_processor_functions, #object | 64 | .type arm9tdmi_processor_functions, #object |
65 | ENTRY(arm9tdmi_processor_functions) | 65 | ENTRY(arm9tdmi_processor_functions) |
66 | .word nommu_early_abort | 66 | .word nommu_early_abort |
67 | .word pabort_noifar | ||
67 | .word cpu_arm9tdmi_proc_init | 68 | .word cpu_arm9tdmi_proc_init |
68 | .word cpu_arm9tdmi_proc_fin | 69 | .word cpu_arm9tdmi_proc_fin |
69 | .word cpu_arm9tdmi_reset | 70 | .word cpu_arm9tdmi_reset |
diff --git a/arch/arm/mm/proc-feroceon.S b/arch/arm/mm/proc-feroceon.S index 2f169b28e938..90e7594e29b1 100644 --- a/arch/arm/mm/proc-feroceon.S +++ b/arch/arm/mm/proc-feroceon.S | |||
@@ -423,6 +423,7 @@ feroceon_crval: | |||
423 | .type feroceon_processor_functions, #object | 423 | .type feroceon_processor_functions, #object |
424 | feroceon_processor_functions: | 424 | feroceon_processor_functions: |
425 | .word v5t_early_abort | 425 | .word v5t_early_abort |
426 | .word pabort_noifar | ||
426 | .word cpu_feroceon_proc_init | 427 | .word cpu_feroceon_proc_init |
427 | .word cpu_feroceon_proc_fin | 428 | .word cpu_feroceon_proc_fin |
428 | .word cpu_feroceon_reset | 429 | .word cpu_feroceon_reset |
@@ -430,7 +431,6 @@ feroceon_processor_functions: | |||
430 | .word cpu_feroceon_dcache_clean_area | 431 | .word cpu_feroceon_dcache_clean_area |
431 | .word cpu_feroceon_switch_mm | 432 | .word cpu_feroceon_switch_mm |
432 | .word cpu_feroceon_set_pte_ext | 433 | .word cpu_feroceon_set_pte_ext |
433 | .word pabort_noifar | ||
434 | .size feroceon_processor_functions, . - feroceon_processor_functions | 434 | .size feroceon_processor_functions, . - feroceon_processor_functions |
435 | 435 | ||
436 | .section ".rodata" | 436 | .section ".rodata" |
diff --git a/arch/arm/mm/proc-sa110.S b/arch/arm/mm/proc-sa110.S index 4db3d6299a2b..9818195dbf11 100644 --- a/arch/arm/mm/proc-sa110.S +++ b/arch/arm/mm/proc-sa110.S | |||
@@ -216,6 +216,7 @@ sa110_crval: | |||
216 | .type sa110_processor_functions, #object | 216 | .type sa110_processor_functions, #object |
217 | ENTRY(sa110_processor_functions) | 217 | ENTRY(sa110_processor_functions) |
218 | .word v4_early_abort | 218 | .word v4_early_abort |
219 | .word pabort_noifar | ||
219 | .word cpu_sa110_proc_init | 220 | .word cpu_sa110_proc_init |
220 | .word cpu_sa110_proc_fin | 221 | .word cpu_sa110_proc_fin |
221 | .word cpu_sa110_reset | 222 | .word cpu_sa110_reset |
@@ -223,7 +224,6 @@ ENTRY(sa110_processor_functions) | |||
223 | .word cpu_sa110_dcache_clean_area | 224 | .word cpu_sa110_dcache_clean_area |
224 | .word cpu_sa110_switch_mm | 225 | .word cpu_sa110_switch_mm |
225 | .word cpu_sa110_set_pte_ext | 226 | .word cpu_sa110_set_pte_ext |
226 | .word pabort_noifar | ||
227 | .size sa110_processor_functions, . - sa110_processor_functions | 227 | .size sa110_processor_functions, . - sa110_processor_functions |
228 | 228 | ||
229 | .section ".rodata" | 229 | .section ".rodata" |
diff --git a/arch/arm/mm/proc-sa1100.S b/arch/arm/mm/proc-sa1100.S index 3cdef043760f..c5fe27ad2892 100644 --- a/arch/arm/mm/proc-sa1100.S +++ b/arch/arm/mm/proc-sa1100.S | |||
@@ -231,6 +231,7 @@ sa1100_crval: | |||
231 | .type sa1100_processor_functions, #object | 231 | .type sa1100_processor_functions, #object |
232 | ENTRY(sa1100_processor_functions) | 232 | ENTRY(sa1100_processor_functions) |
233 | .word v4_early_abort | 233 | .word v4_early_abort |
234 | .word pabort_noifar | ||
234 | .word cpu_sa1100_proc_init | 235 | .word cpu_sa1100_proc_init |
235 | .word cpu_sa1100_proc_fin | 236 | .word cpu_sa1100_proc_fin |
236 | .word cpu_sa1100_reset | 237 | .word cpu_sa1100_reset |
@@ -238,7 +239,6 @@ ENTRY(sa1100_processor_functions) | |||
238 | .word cpu_sa1100_dcache_clean_area | 239 | .word cpu_sa1100_dcache_clean_area |
239 | .word cpu_sa1100_switch_mm | 240 | .word cpu_sa1100_switch_mm |
240 | .word cpu_sa1100_set_pte_ext | 241 | .word cpu_sa1100_set_pte_ext |
241 | .word pabort_noifar | ||
242 | .size sa1100_processor_functions, . - sa1100_processor_functions | 242 | .size sa1100_processor_functions, . - sa1100_processor_functions |
243 | 243 | ||
244 | .section ".rodata" | 244 | .section ".rodata" |
diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S index bf760ea2f789..5702ec58b2a2 100644 --- a/arch/arm/mm/proc-v6.S +++ b/arch/arm/mm/proc-v6.S | |||
@@ -219,6 +219,7 @@ v6_crval: | |||
219 | .type v6_processor_functions, #object | 219 | .type v6_processor_functions, #object |
220 | ENTRY(v6_processor_functions) | 220 | ENTRY(v6_processor_functions) |
221 | .word v6_early_abort | 221 | .word v6_early_abort |
222 | .word pabort_noifar | ||
222 | .word cpu_v6_proc_init | 223 | .word cpu_v6_proc_init |
223 | .word cpu_v6_proc_fin | 224 | .word cpu_v6_proc_fin |
224 | .word cpu_v6_reset | 225 | .word cpu_v6_reset |
@@ -226,7 +227,6 @@ ENTRY(v6_processor_functions) | |||
226 | .word cpu_v6_dcache_clean_area | 227 | .word cpu_v6_dcache_clean_area |
227 | .word cpu_v6_switch_mm | 228 | .word cpu_v6_switch_mm |
228 | .word cpu_v6_set_pte_ext | 229 | .word cpu_v6_set_pte_ext |
229 | .word pabort_noifar | ||
230 | .size v6_processor_functions, . - v6_processor_functions | 230 | .size v6_processor_functions, . - v6_processor_functions |
231 | 231 | ||
232 | .type cpu_arch_name, #object | 232 | .type cpu_arch_name, #object |
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S index a1d7331cd64c..b49f9a4c82c8 100644 --- a/arch/arm/mm/proc-v7.S +++ b/arch/arm/mm/proc-v7.S | |||
@@ -205,6 +205,7 @@ __v7_setup_stack: | |||
205 | .type v7_processor_functions, #object | 205 | .type v7_processor_functions, #object |
206 | ENTRY(v7_processor_functions) | 206 | ENTRY(v7_processor_functions) |
207 | .word v7_early_abort | 207 | .word v7_early_abort |
208 | .word pabort_ifar | ||
208 | .word cpu_v7_proc_init | 209 | .word cpu_v7_proc_init |
209 | .word cpu_v7_proc_fin | 210 | .word cpu_v7_proc_fin |
210 | .word cpu_v7_reset | 211 | .word cpu_v7_reset |
@@ -212,7 +213,6 @@ ENTRY(v7_processor_functions) | |||
212 | .word cpu_v7_dcache_clean_area | 213 | .word cpu_v7_dcache_clean_area |
213 | .word cpu_v7_switch_mm | 214 | .word cpu_v7_switch_mm |
214 | .word cpu_v7_set_pte_ext | 215 | .word cpu_v7_set_pte_ext |
215 | .word pabort_ifar | ||
216 | .size v7_processor_functions, . - v7_processor_functions | 216 | .size v7_processor_functions, . - v7_processor_functions |
217 | 217 | ||
218 | .type cpu_arch_name, #object | 218 | .type cpu_arch_name, #object |
diff --git a/arch/arm/mm/proc-xsc3.S b/arch/arm/mm/proc-xsc3.S index d95921a2ab99..3533741a76f6 100644 --- a/arch/arm/mm/proc-xsc3.S +++ b/arch/arm/mm/proc-xsc3.S | |||
@@ -450,6 +450,7 @@ xsc3_crval: | |||
450 | .type xsc3_processor_functions, #object | 450 | .type xsc3_processor_functions, #object |
451 | ENTRY(xsc3_processor_functions) | 451 | ENTRY(xsc3_processor_functions) |
452 | .word v5t_early_abort | 452 | .word v5t_early_abort |
453 | .word pabort_noifar | ||
453 | .word cpu_xsc3_proc_init | 454 | .word cpu_xsc3_proc_init |
454 | .word cpu_xsc3_proc_fin | 455 | .word cpu_xsc3_proc_fin |
455 | .word cpu_xsc3_reset | 456 | .word cpu_xsc3_reset |
diff --git a/arch/arm/mm/proc-xscale.S b/arch/arm/mm/proc-xscale.S index 1a6d89823dff..2dd85273976f 100644 --- a/arch/arm/mm/proc-xscale.S +++ b/arch/arm/mm/proc-xscale.S | |||
@@ -527,6 +527,7 @@ xscale_crval: | |||
527 | .type xscale_processor_functions, #object | 527 | .type xscale_processor_functions, #object |
528 | ENTRY(xscale_processor_functions) | 528 | ENTRY(xscale_processor_functions) |
529 | .word v5t_early_abort | 529 | .word v5t_early_abort |
530 | .word pabort_noifar | ||
530 | .word cpu_xscale_proc_init | 531 | .word cpu_xscale_proc_init |
531 | .word cpu_xscale_proc_fin | 532 | .word cpu_xscale_proc_fin |
532 | .word cpu_xscale_reset | 533 | .word cpu_xscale_reset |
@@ -534,7 +535,6 @@ ENTRY(xscale_processor_functions) | |||
534 | .word cpu_xscale_dcache_clean_area | 535 | .word cpu_xscale_dcache_clean_area |
535 | .word cpu_xscale_switch_mm | 536 | .word cpu_xscale_switch_mm |
536 | .word cpu_xscale_set_pte_ext | 537 | .word cpu_xscale_set_pte_ext |
537 | .word pabort_noifar | ||
538 | .size xscale_processor_functions, . - xscale_processor_functions | 538 | .size xscale_processor_functions, . - xscale_processor_functions |
539 | 539 | ||
540 | .section ".rodata" | 540 | .section ".rodata" |
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig index 2dd1f300a5cf..795d0ac67c21 100644 --- a/arch/blackfin/Kconfig +++ b/arch/blackfin/Kconfig | |||
@@ -47,10 +47,6 @@ config GENERIC_IRQ_PROBE | |||
47 | bool | 47 | bool |
48 | default y | 48 | default y |
49 | 49 | ||
50 | config GENERIC_TIME | ||
51 | bool | ||
52 | default n | ||
53 | |||
54 | config GENERIC_GPIO | 50 | config GENERIC_GPIO |
55 | bool | 51 | bool |
56 | default y | 52 | default y |
@@ -224,16 +220,6 @@ config BF54x | |||
224 | depends on (BF542 || BF544 || BF547 || BF548 || BF549) | 220 | depends on (BF542 || BF544 || BF547 || BF548 || BF549) |
225 | default y | 221 | default y |
226 | 222 | ||
227 | config BFIN_DUAL_CORE | ||
228 | bool | ||
229 | depends on (BF561) | ||
230 | default y | ||
231 | |||
232 | config BFIN_SINGLE_CORE | ||
233 | bool | ||
234 | depends on !BFIN_DUAL_CORE | ||
235 | default y | ||
236 | |||
237 | config MEM_GENERIC_BOARD | 223 | config MEM_GENERIC_BOARD |
238 | bool | 224 | bool |
239 | depends on GENERIC_BOARD | 225 | depends on GENERIC_BOARD |
@@ -263,7 +249,7 @@ config MEM_MT48LC8M32B2B5_7 | |||
263 | 249 | ||
264 | config MEM_MT48LC32M16A2TG_75 | 250 | config MEM_MT48LC32M16A2TG_75 |
265 | bool | 251 | bool |
266 | depends on (BFIN527_EZKIT) | 252 | depends on (BFIN527_EZKIT || BFIN532_IP0X) |
267 | default y | 253 | default y |
268 | 254 | ||
269 | source "arch/blackfin/mach-bf527/Kconfig" | 255 | source "arch/blackfin/mach-bf527/Kconfig" |
@@ -286,17 +272,34 @@ config CMDLINE | |||
286 | to the kernel, you may specify one here. As a minimum, you should specify | 272 | to the kernel, you may specify one here. As a minimum, you should specify |
287 | the memory size and the root device (e.g., mem=8M, root=/dev/nfs). | 273 | the memory size and the root device (e.g., mem=8M, root=/dev/nfs). |
288 | 274 | ||
275 | config BOOT_LOAD | ||
276 | hex "Kernel load address for booting" | ||
277 | default "0x1000" | ||
278 | range 0x1000 0x20000000 | ||
279 | help | ||
280 | This option allows you to set the load address of the kernel. | ||
281 | This can be useful if you are on a board which has a small amount | ||
282 | of memory or you wish to reserve some memory at the beginning of | ||
283 | the address space. | ||
284 | |||
285 | Note that you need to keep this value above 4k (0x1000) as this | ||
286 | memory region is used to capture NULL pointer references as well | ||
287 | as some core kernel functions. | ||
288 | |||
289 | comment "Clock/PLL Setup" | 289 | comment "Clock/PLL Setup" |
290 | 290 | ||
291 | config CLKIN_HZ | 291 | config CLKIN_HZ |
292 | int "Crystal Frequency in Hz" | 292 | int "Frequency of the crystal on the board in Hz" |
293 | default "11059200" if BFIN533_STAMP | 293 | default "11059200" if BFIN533_STAMP |
294 | default "27000000" if BFIN533_EZKIT | 294 | default "27000000" if BFIN533_EZKIT |
295 | default "25000000" if (BFIN537_STAMP || BFIN527_EZKIT || H8606_HVSISTEMAS) | 295 | default "25000000" if (BFIN537_STAMP || BFIN527_EZKIT || H8606_HVSISTEMAS) |
296 | default "30000000" if BFIN561_EZKIT | 296 | default "30000000" if BFIN561_EZKIT |
297 | default "24576000" if PNAV10 | 297 | default "24576000" if PNAV10 |
298 | default "10000000" if BFIN532_IP0X | ||
298 | help | 299 | help |
299 | The frequency of CLKIN crystal oscillator on the board in Hz. | 300 | The frequency of CLKIN crystal oscillator on the board in Hz. |
301 | Warning: This value should match the crystal on the board. Otherwise, | ||
302 | peripherals won't work properly. | ||
300 | 303 | ||
301 | config BFIN_KERNEL_CLOCK | 304 | config BFIN_KERNEL_CLOCK |
302 | bool "Re-program Clocks while Kernel boots?" | 305 | bool "Re-program Clocks while Kernel boots?" |
@@ -307,6 +310,25 @@ config BFIN_KERNEL_CLOCK | |||
307 | are also not changed, and the Bootloader does 100% of the hardware | 310 | are also not changed, and the Bootloader does 100% of the hardware |
308 | configuration. | 311 | configuration. |
309 | 312 | ||
313 | config MEM_SIZE | ||
314 | int "SDRAM Memory Size in MBytes" | ||
315 | depends on BFIN_KERNEL_CLOCK | ||
316 | default 64 | ||
317 | |||
318 | config MEM_ADD_WIDTH | ||
319 | int "Memory Address Width" | ||
320 | depends on BFIN_KERNEL_CLOCK | ||
321 | depends on (!BF54x) | ||
322 | range 8 11 | ||
323 | default 9 if BFIN533_EZKIT | ||
324 | default 9 if BFIN561_EZKIT | ||
325 | default 9 if H8606_HVSISTEMAS | ||
326 | default 10 if BFIN527_EZKIT | ||
327 | default 10 if BFIN537_STAMP | ||
328 | default 11 if BFIN533_STAMP | ||
329 | default 10 if PNAV10 | ||
330 | default 10 if BFIN532_IP0X | ||
331 | |||
310 | config PLL_BYPASS | 332 | config PLL_BYPASS |
311 | bool "Bypass PLL" | 333 | bool "Bypass PLL" |
312 | depends on BFIN_KERNEL_CLOCK | 334 | depends on BFIN_KERNEL_CLOCK |
@@ -325,7 +347,7 @@ config VCO_MULT | |||
325 | range 1 64 | 347 | range 1 64 |
326 | default "22" if BFIN533_EZKIT | 348 | default "22" if BFIN533_EZKIT |
327 | default "45" if BFIN533_STAMP | 349 | default "45" if BFIN533_STAMP |
328 | default "20" if (BFIN537_STAMP || BFIN527_EZKIT || BFIN548_EZKIT) | 350 | default "20" if (BFIN537_STAMP || BFIN527_EZKIT || BFIN548_EZKIT || BFIN548_BLUETECHNIX_CM) |
329 | default "22" if BFIN533_BLUETECHNIX_CM | 351 | default "22" if BFIN533_BLUETECHNIX_CM |
330 | default "20" if BFIN537_BLUETECHNIX_CM | 352 | default "20" if BFIN537_BLUETECHNIX_CM |
331 | default "20" if BFIN561_BLUETECHNIX_CM | 353 | default "20" if BFIN561_BLUETECHNIX_CM |
@@ -360,19 +382,33 @@ config SCLK_DIV | |||
360 | int "System Clock Divider" | 382 | int "System Clock Divider" |
361 | depends on BFIN_KERNEL_CLOCK | 383 | depends on BFIN_KERNEL_CLOCK |
362 | range 1 15 | 384 | range 1 15 |
363 | default 5 if BFIN533_EZKIT | 385 | default 5 |
364 | default 5 if BFIN533_STAMP | ||
365 | default 4 if (BFIN537_STAMP || BFIN527_EZKIT || BFIN548_EZKIT) | ||
366 | default 5 if BFIN533_BLUETECHNIX_CM | ||
367 | default 4 if BFIN537_BLUETECHNIX_CM | ||
368 | default 4 if BFIN561_BLUETECHNIX_CM | ||
369 | default 5 if BFIN561_EZKIT | ||
370 | default 3 if H8606_HVSISTEMAS | ||
371 | help | 386 | help |
372 | This sets the frequency of the system clock (including SDRAM or DDR). | 387 | This sets the frequency of the system clock (including SDRAM or DDR). |
373 | This can be between 1 and 15 | 388 | This can be between 1 and 15 |
374 | System Clock = (PLL frequency) / (this setting) | 389 | System Clock = (PLL frequency) / (this setting) |
375 | 390 | ||
391 | config MAX_MEM_SIZE | ||
392 | int "Max SDRAM Memory Size in MBytes" | ||
393 | depends on !BFIN_KERNEL_CLOCK && !MPU | ||
394 | default 512 | ||
395 | help | ||
396 | This is the max memory size that the kernel will create CPLB | ||
397 | tables for. Your system will not be able to handle any more. | ||
398 | |||
399 | choice | ||
400 | prompt "DDR SDRAM Chip Type" | ||
401 | depends on BFIN_KERNEL_CLOCK | ||
402 | depends on BF54x | ||
403 | default MEM_MT46V32M16_5B | ||
404 | |||
405 | config MEM_MT46V32M16_6T | ||
406 | bool "MT46V32M16_6T" | ||
407 | |||
408 | config MEM_MT46V32M16_5B | ||
409 | bool "MT46V32M16_5B" | ||
410 | endchoice | ||
411 | |||
376 | # | 412 | # |
377 | # Max & Min Speeds for various Chips | 413 | # Max & Min Speeds for various Chips |
378 | # | 414 | # |
@@ -415,42 +451,33 @@ comment "Kernel Timer/Scheduler" | |||
415 | 451 | ||
416 | source kernel/Kconfig.hz | 452 | source kernel/Kconfig.hz |
417 | 453 | ||
418 | comment "Memory Setup" | 454 | config GENERIC_TIME |
419 | 455 | bool "Generic time" | |
420 | config MEM_SIZE | 456 | default y |
421 | int "SDRAM Memory Size in MBytes" | ||
422 | default 32 if BFIN533_EZKIT | ||
423 | default 64 if BFIN527_EZKIT | ||
424 | default 64 if BFIN537_STAMP | ||
425 | default 64 if BFIN548_EZKIT | ||
426 | default 64 if BFIN561_EZKIT | ||
427 | default 128 if BFIN533_STAMP | ||
428 | default 64 if PNAV10 | ||
429 | default 32 if H8606_HVSISTEMAS | ||
430 | 457 | ||
431 | config MEM_ADD_WIDTH | 458 | config GENERIC_CLOCKEVENTS |
432 | int "SDRAM Memory Address Width" | 459 | bool "Generic clock events" |
433 | depends on (!BF54x) | 460 | depends on GENERIC_TIME |
434 | default 9 if BFIN533_EZKIT | 461 | default y |
435 | default 9 if BFIN561_EZKIT | ||
436 | default 9 if H8606_HVSISTEMAS | ||
437 | default 10 if BFIN527_EZKIT | ||
438 | default 10 if BFIN537_STAMP | ||
439 | default 11 if BFIN533_STAMP | ||
440 | default 10 if PNAV10 | ||
441 | 462 | ||
463 | config CYCLES_CLOCKSOURCE | ||
464 | bool "Use 'CYCLES' as a clocksource (EXPERIMENTAL)" | ||
465 | depends on EXPERIMENTAL | ||
466 | depends on GENERIC_CLOCKEVENTS | ||
467 | depends on !BFIN_SCRATCH_REG_CYCLES | ||
468 | default n | ||
469 | help | ||
470 | If you say Y here, you will enable support for using the 'cycles' | ||
471 | registers as a clock source. Doing so means you will be unable to | ||
472 | safely write to the 'cycles' register during runtime. You will | ||
473 | still be able to read it (such as for performance monitoring), but | ||
474 | writing the registers will most likely crash the kernel. | ||
442 | 475 | ||
443 | choice | 476 | source kernel/time/Kconfig |
444 | prompt "DDR SDRAM Chip Type" | ||
445 | depends on BFIN548_EZKIT | ||
446 | default MEM_MT46V32M16_5B | ||
447 | 477 | ||
448 | config MEM_MT46V32M16_6T | 478 | comment "Memory Setup" |
449 | bool "MT46V32M16_6T" | ||
450 | 479 | ||
451 | config MEM_MT46V32M16_5B | 480 | comment "Misc" |
452 | bool "MT46V32M16_5B" | ||
453 | endchoice | ||
454 | 481 | ||
455 | config ENET_FLASH_PIN | 482 | config ENET_FLASH_PIN |
456 | int "PF port/pin used for flash and ethernet sharing" | 483 | int "PF port/pin used for flash and ethernet sharing" |
@@ -462,20 +489,6 @@ config ENET_FLASH_PIN | |||
462 | code. | 489 | code. |
463 | For example: PF0 --> 0,PF1 --> 1,PF2 --> 2, etc. | 490 | For example: PF0 --> 0,PF1 --> 1,PF2 --> 2, etc. |
464 | 491 | ||
465 | config BOOT_LOAD | ||
466 | hex "Kernel load address for booting" | ||
467 | default "0x1000" | ||
468 | range 0x1000 0x20000000 | ||
469 | help | ||
470 | This option allows you to set the load address of the kernel. | ||
471 | This can be useful if you are on a board which has a small amount | ||
472 | of memory or you wish to reserve some memory at the beginning of | ||
473 | the address space. | ||
474 | |||
475 | Note that you need to keep this value above 4k (0x1000) as this | ||
476 | memory region is used to capture NULL pointer references as well | ||
477 | as some core kernel functions. | ||
478 | |||
479 | choice | 492 | choice |
480 | prompt "Blackfin Exception Scratch Register" | 493 | prompt "Blackfin Exception Scratch Register" |
481 | default BFIN_SCRATCH_REG_RETN | 494 | default BFIN_SCRATCH_REG_RETN |
@@ -661,14 +674,6 @@ endchoice | |||
661 | 674 | ||
662 | source "mm/Kconfig" | 675 | source "mm/Kconfig" |
663 | 676 | ||
664 | config LARGE_ALLOCS | ||
665 | bool "Allow allocating large blocks (> 1MB) of memory" | ||
666 | help | ||
667 | Allow the slab memory allocator to keep chains for very large | ||
668 | memory sizes - upto 32MB. You may need this if your system has | ||
669 | a lot of RAM, and you need to able to allocate very large | ||
670 | contiguous chunks. If unsure, say N. | ||
671 | |||
672 | config BFIN_GPTIMERS | 677 | config BFIN_GPTIMERS |
673 | tristate "Enable Blackfin General Purpose Timers API" | 678 | tristate "Enable Blackfin General Purpose Timers API" |
674 | default n | 679 | default n |
diff --git a/arch/blackfin/Makefile b/arch/blackfin/Makefile index 75eba2ca7881..3cbe16caad4b 100644 --- a/arch/blackfin/Makefile +++ b/arch/blackfin/Makefile | |||
@@ -72,6 +72,11 @@ rev-$(CONFIG_BF_REV_ANY) := any | |||
72 | KBUILD_CFLAGS += -mcpu=$(cpu-y)-$(rev-y) | 72 | KBUILD_CFLAGS += -mcpu=$(cpu-y)-$(rev-y) |
73 | KBUILD_AFLAGS += -mcpu=$(cpu-y)-$(rev-y) | 73 | KBUILD_AFLAGS += -mcpu=$(cpu-y)-$(rev-y) |
74 | 74 | ||
75 | # - we utilize the silicon rev from the toolchain, so move it over to the checkflags | ||
76 | # - the l1_text attribute is Blackfin specific, so fake it out as used to kill warnings | ||
77 | CHECKFLAGS_SILICON = $(shell echo "" | $(CPP) $(KBUILD_CFLAGS) -dD - 2>/dev/null | awk '$$2 == "__SILICON_REVISION__" { print $$3 }') | ||
78 | CHECKFLAGS += -D__SILICON_REVISION__=$(CHECKFLAGS_SILICON) -Dl1_text=__used__ | ||
79 | |||
75 | head-y := arch/$(ARCH)/mach-$(MACHINE)/head.o arch/$(ARCH)/kernel/init_task.o | 80 | head-y := arch/$(ARCH)/mach-$(MACHINE)/head.o arch/$(ARCH)/kernel/init_task.o |
76 | 81 | ||
77 | core-y += arch/$(ARCH)/kernel/ arch/$(ARCH)/mm/ arch/$(ARCH)/mach-common/ | 82 | core-y += arch/$(ARCH)/kernel/ arch/$(ARCH)/mm/ arch/$(ARCH)/mach-common/ |
diff --git a/arch/blackfin/boot/.gitignore b/arch/blackfin/boot/.gitignore new file mode 100644 index 000000000000..3ae03994b88d --- /dev/null +++ b/arch/blackfin/boot/.gitignore | |||
@@ -0,0 +1 @@ | |||
+vmImage | |||
diff --git a/arch/blackfin/configs/BF527-EZKIT_defconfig b/arch/blackfin/configs/BF527-EZKIT_defconfig index ae320dcfedef..64876dfc2e55 100644 --- a/arch/blackfin/configs/BF527-EZKIT_defconfig +++ b/arch/blackfin/configs/BF527-EZKIT_defconfig | |||
@@ -13,7 +13,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y | |||
13 | CONFIG_GENERIC_HWEIGHT=y | 13 | CONFIG_GENERIC_HWEIGHT=y |
14 | CONFIG_GENERIC_HARDIRQS=y | 14 | CONFIG_GENERIC_HARDIRQS=y |
15 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
16 | # CONFIG_GENERIC_TIME is not set | 16 | CONFIG_GENERIC_TIME=y |
17 | CONFIG_GENERIC_GPIO=y | 17 | CONFIG_GENERIC_GPIO=y |
18 | CONFIG_FORCE_MAX_ZONEORDER=14 | 18 | CONFIG_FORCE_MAX_ZONEORDER=14 |
19 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 19 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
@@ -250,7 +250,7 @@ CONFIG_HZ=250 | |||
250 | # | 250 | # |
251 | # Memory Setup | 251 | # Memory Setup |
252 | # | 252 | # |
253 | CONFIG_MEM_SIZE=64 | 253 | CONFIG_MAX_MEM_SIZE=512 |
254 | CONFIG_MEM_ADD_WIDTH=10 | 254 | CONFIG_MEM_ADD_WIDTH=10 |
255 | CONFIG_BOOT_LOAD=0x1000 | 255 | CONFIG_BOOT_LOAD=0x1000 |
256 | CONFIG_BFIN_SCRATCH_REG_RETN=y | 256 | CONFIG_BFIN_SCRATCH_REG_RETN=y |
@@ -720,8 +720,8 @@ CONFIG_BFIN_OTP=y | |||
720 | # | 720 | # |
721 | CONFIG_SERIAL_BFIN=y | 721 | CONFIG_SERIAL_BFIN=y |
722 | CONFIG_SERIAL_BFIN_CONSOLE=y | 722 | CONFIG_SERIAL_BFIN_CONSOLE=y |
723 | # CONFIG_SERIAL_BFIN_DMA is not set | 723 | CONFIG_SERIAL_BFIN_DMA=y |
724 | CONFIG_SERIAL_BFIN_PIO=y | 724 | # CONFIG_SERIAL_BFIN_PIO is not set |
725 | # CONFIG_SERIAL_BFIN_UART0 is not set | 725 | # CONFIG_SERIAL_BFIN_UART0 is not set |
726 | CONFIG_SERIAL_BFIN_UART1=y | 726 | CONFIG_SERIAL_BFIN_UART1=y |
727 | # CONFIG_BFIN_UART1_CTSRTS is not set | 727 | # CONFIG_BFIN_UART1_CTSRTS is not set |
diff --git a/arch/blackfin/configs/BF533-EZKIT_defconfig b/arch/blackfin/configs/BF533-EZKIT_defconfig index 9621caa60b5f..8d817ba01945 100644 --- a/arch/blackfin/configs/BF533-EZKIT_defconfig +++ b/arch/blackfin/configs/BF533-EZKIT_defconfig | |||
@@ -13,7 +13,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y | |||
13 | CONFIG_GENERIC_HWEIGHT=y | 13 | CONFIG_GENERIC_HWEIGHT=y |
14 | CONFIG_GENERIC_HARDIRQS=y | 14 | CONFIG_GENERIC_HARDIRQS=y |
15 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
16 | # CONFIG_GENERIC_TIME is not set | 16 | CONFIG_GENERIC_TIME=y |
17 | CONFIG_GENERIC_GPIO=y | 17 | CONFIG_GENERIC_GPIO=y |
18 | CONFIG_FORCE_MAX_ZONEORDER=14 | 18 | CONFIG_FORCE_MAX_ZONEORDER=14 |
19 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 19 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
@@ -212,7 +212,7 @@ CONFIG_HZ=250 | |||
212 | # | 212 | # |
213 | # Memory Setup | 213 | # Memory Setup |
214 | # | 214 | # |
215 | CONFIG_MEM_SIZE=32 | 215 | CONFIG_MAX_MEM_SIZE=512 |
216 | CONFIG_MEM_ADD_WIDTH=9 | 216 | CONFIG_MEM_ADD_WIDTH=9 |
217 | CONFIG_BOOT_LOAD=0x1000 | 217 | CONFIG_BOOT_LOAD=0x1000 |
218 | CONFIG_BFIN_SCRATCH_REG_RETN=y | 218 | CONFIG_BFIN_SCRATCH_REG_RETN=y |
diff --git a/arch/blackfin/configs/BF533-STAMP_defconfig b/arch/blackfin/configs/BF533-STAMP_defconfig index b51e76ce7f4f..20d598d17bd1 100644 --- a/arch/blackfin/configs/BF533-STAMP_defconfig +++ b/arch/blackfin/configs/BF533-STAMP_defconfig | |||
@@ -13,7 +13,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y | |||
13 | CONFIG_GENERIC_HWEIGHT=y | 13 | CONFIG_GENERIC_HWEIGHT=y |
14 | CONFIG_GENERIC_HARDIRQS=y | 14 | CONFIG_GENERIC_HARDIRQS=y |
15 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
16 | # CONFIG_GENERIC_TIME is not set | 16 | CONFIG_GENERIC_TIME=y |
17 | CONFIG_GENERIC_GPIO=y | 17 | CONFIG_GENERIC_GPIO=y |
18 | CONFIG_FORCE_MAX_ZONEORDER=14 | 18 | CONFIG_FORCE_MAX_ZONEORDER=14 |
19 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 19 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
@@ -212,7 +212,7 @@ CONFIG_HZ=250 | |||
212 | # | 212 | # |
213 | # Memory Setup | 213 | # Memory Setup |
214 | # | 214 | # |
215 | CONFIG_MEM_SIZE=128 | 215 | CONFIG_MAX_MEM_SIZE=512 |
216 | CONFIG_MEM_ADD_WIDTH=11 | 216 | CONFIG_MEM_ADD_WIDTH=11 |
217 | CONFIG_ENET_FLASH_PIN=0 | 217 | CONFIG_ENET_FLASH_PIN=0 |
218 | CONFIG_BOOT_LOAD=0x1000 | 218 | CONFIG_BOOT_LOAD=0x1000 |
diff --git a/arch/blackfin/configs/BF537-STAMP_defconfig b/arch/blackfin/configs/BF537-STAMP_defconfig index d45fa535dad7..b5189c8ba263 100644 --- a/arch/blackfin/configs/BF537-STAMP_defconfig +++ b/arch/blackfin/configs/BF537-STAMP_defconfig | |||
@@ -13,7 +13,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y | |||
13 | CONFIG_GENERIC_HWEIGHT=y | 13 | CONFIG_GENERIC_HWEIGHT=y |
14 | CONFIG_GENERIC_HARDIRQS=y | 14 | CONFIG_GENERIC_HARDIRQS=y |
15 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
16 | # CONFIG_GENERIC_TIME is not set | 16 | CONFIG_GENERIC_TIME=y |
17 | CONFIG_GENERIC_GPIO=y | 17 | CONFIG_GENERIC_GPIO=y |
18 | CONFIG_FORCE_MAX_ZONEORDER=14 | 18 | CONFIG_FORCE_MAX_ZONEORDER=14 |
19 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 19 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
@@ -220,7 +220,7 @@ CONFIG_HZ=250 | |||
220 | # | 220 | # |
221 | # Memory Setup | 221 | # Memory Setup |
222 | # | 222 | # |
223 | CONFIG_MEM_SIZE=64 | 223 | CONFIG_MAX_MEM_SIZE=512 |
224 | CONFIG_MEM_ADD_WIDTH=10 | 224 | CONFIG_MEM_ADD_WIDTH=10 |
225 | CONFIG_BOOT_LOAD=0x1000 | 225 | CONFIG_BOOT_LOAD=0x1000 |
226 | CONFIG_BFIN_SCRATCH_REG_RETN=y | 226 | CONFIG_BFIN_SCRATCH_REG_RETN=y |
diff --git a/arch/blackfin/configs/BF548-EZKIT_defconfig b/arch/blackfin/configs/BF548-EZKIT_defconfig index c9707f7665ad..5bfdfb287d13 100644 --- a/arch/blackfin/configs/BF548-EZKIT_defconfig +++ b/arch/blackfin/configs/BF548-EZKIT_defconfig | |||
@@ -13,7 +13,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y | |||
13 | CONFIG_GENERIC_HWEIGHT=y | 13 | CONFIG_GENERIC_HWEIGHT=y |
14 | CONFIG_GENERIC_HARDIRQS=y | 14 | CONFIG_GENERIC_HARDIRQS=y |
15 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
16 | # CONFIG_GENERIC_TIME is not set | 16 | CONFIG_GENERIC_TIME=y |
17 | CONFIG_GENERIC_GPIO=y | 17 | CONFIG_GENERIC_GPIO=y |
18 | CONFIG_FORCE_MAX_ZONEORDER=14 | 18 | CONFIG_FORCE_MAX_ZONEORDER=14 |
19 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 19 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
@@ -285,7 +285,7 @@ CONFIG_HZ=250 | |||
285 | # | 285 | # |
286 | # Memory Setup | 286 | # Memory Setup |
287 | # | 287 | # |
288 | CONFIG_MEM_SIZE=64 | 288 | CONFIG_MAX_MEM_SIZE=512 |
289 | # CONFIG_MEM_MT46V32M16_6T is not set | 289 | # CONFIG_MEM_MT46V32M16_6T is not set |
290 | CONFIG_MEM_MT46V32M16_5B=y | 290 | CONFIG_MEM_MT46V32M16_5B=y |
291 | CONFIG_BOOT_LOAD=0x1000 | 291 | CONFIG_BOOT_LOAD=0x1000 |
@@ -813,8 +813,8 @@ CONFIG_HW_CONSOLE=y | |||
813 | # | 813 | # |
814 | CONFIG_SERIAL_BFIN=y | 814 | CONFIG_SERIAL_BFIN=y |
815 | CONFIG_SERIAL_BFIN_CONSOLE=y | 815 | CONFIG_SERIAL_BFIN_CONSOLE=y |
816 | # CONFIG_SERIAL_BFIN_DMA is not set | 816 | CONFIG_SERIAL_BFIN_DMA=y |
817 | CONFIG_SERIAL_BFIN_PIO=y | 817 | # CONFIG_SERIAL_BFIN_PIO is not set |
818 | # CONFIG_SERIAL_BFIN_UART0 is not set | 818 | # CONFIG_SERIAL_BFIN_UART0 is not set |
819 | CONFIG_SERIAL_BFIN_UART1=y | 819 | CONFIG_SERIAL_BFIN_UART1=y |
820 | # CONFIG_BFIN_UART1_CTSRTS is not set | 820 | # CONFIG_BFIN_UART1_CTSRTS is not set |
diff --git a/arch/blackfin/configs/BF561-EZKIT_defconfig b/arch/blackfin/configs/BF561-EZKIT_defconfig index 4d8a63331309..b4a20c890816 100644 --- a/arch/blackfin/configs/BF561-EZKIT_defconfig +++ b/arch/blackfin/configs/BF561-EZKIT_defconfig | |||
@@ -13,7 +13,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y | |||
13 | CONFIG_GENERIC_HWEIGHT=y | 13 | CONFIG_GENERIC_HWEIGHT=y |
14 | CONFIG_GENERIC_HARDIRQS=y | 14 | CONFIG_GENERIC_HARDIRQS=y |
15 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
16 | # CONFIG_GENERIC_TIME is not set | 16 | CONFIG_GENERIC_TIME=y |
17 | CONFIG_GENERIC_GPIO=y | 17 | CONFIG_GENERIC_GPIO=y |
18 | CONFIG_FORCE_MAX_ZONEORDER=14 | 18 | CONFIG_FORCE_MAX_ZONEORDER=14 |
19 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 19 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
@@ -256,7 +256,7 @@ CONFIG_HZ=250 | |||
256 | # | 256 | # |
257 | # Memory Setup | 257 | # Memory Setup |
258 | # | 258 | # |
259 | CONFIG_MEM_SIZE=64 | 259 | CONFIG_MAX_MEM_SIZE=512 |
260 | CONFIG_MEM_ADD_WIDTH=9 | 260 | CONFIG_MEM_ADD_WIDTH=9 |
261 | CONFIG_BOOT_LOAD=0x1000 | 261 | CONFIG_BOOT_LOAD=0x1000 |
262 | CONFIG_BFIN_SCRATCH_REG_RETN=y | 262 | CONFIG_BFIN_SCRATCH_REG_RETN=y |
diff --git a/arch/blackfin/configs/CM-BF533_defconfig b/arch/blackfin/configs/CM-BF533_defconfig new file mode 100644 index 000000000000..560890fe0d30 --- /dev/null +++ b/arch/blackfin/configs/CM-BF533_defconfig | |||
@@ -0,0 +1,912 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.22.16 | ||
4 | # | ||
5 | # CONFIG_MMU is not set | ||
6 | # CONFIG_FPU is not set | ||
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
8 | # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set | ||
9 | CONFIG_BLACKFIN=y | ||
10 | CONFIG_ZONE_DMA=y | ||
11 | CONFIG_SEMAPHORE_SLEEPERS=y | ||
12 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
13 | CONFIG_GENERIC_HWEIGHT=y | ||
14 | CONFIG_GENERIC_HARDIRQS=y | ||
15 | CONFIG_GENERIC_IRQ_PROBE=y | ||
16 | CONFIG_GENERIC_TIME=y | ||
17 | CONFIG_GENERIC_GPIO=y | ||
18 | CONFIG_FORCE_MAX_ZONEORDER=14 | ||
19 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
20 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
21 | |||
22 | # | ||
23 | # Code maturity level options | ||
24 | # | ||
25 | CONFIG_EXPERIMENTAL=y | ||
26 | CONFIG_BROKEN_ON_SMP=y | ||
27 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
28 | |||
29 | # | ||
30 | # General setup | ||
31 | # | ||
32 | CONFIG_LOCALVERSION="" | ||
33 | CONFIG_LOCALVERSION_AUTO=y | ||
34 | CONFIG_SYSVIPC=y | ||
35 | # CONFIG_IPC_NS is not set | ||
36 | CONFIG_SYSVIPC_SYSCTL=y | ||
37 | # CONFIG_POSIX_MQUEUE is not set | ||
38 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
39 | # CONFIG_TASKSTATS is not set | ||
40 | # CONFIG_UTS_NS is not set | ||
41 | # CONFIG_AUDIT is not set | ||
42 | # CONFIG_IKCONFIG is not set | ||
43 | CONFIG_LOG_BUF_SHIFT=14 | ||
44 | CONFIG_SYSFS_DEPRECATED=y | ||
45 | # CONFIG_RELAY is not set | ||
46 | # CONFIG_BLK_DEV_INITRD is not set | ||
47 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
48 | CONFIG_SYSCTL=y | ||
49 | CONFIG_EMBEDDED=y | ||
50 | # CONFIG_UID16 is not set | ||
51 | CONFIG_SYSCTL_SYSCALL=y | ||
52 | CONFIG_KALLSYMS=y | ||
53 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
54 | # CONFIG_HOTPLUG is not set | ||
55 | CONFIG_PRINTK=y | ||
56 | CONFIG_BUG=y | ||
57 | CONFIG_ELF_CORE=y | ||
58 | CONFIG_BASE_FULL=y | ||
59 | CONFIG_FUTEX=y | ||
60 | CONFIG_ANON_INODES=y | ||
61 | CONFIG_EPOLL=y | ||
62 | CONFIG_SIGNALFD=y | ||
63 | CONFIG_EVENTFD=y | ||
64 | CONFIG_VM_EVENT_COUNTERS=y | ||
65 | CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3 | ||
66 | # CONFIG_NP2 is not set | ||
67 | CONFIG_SLAB=y | ||
68 | # CONFIG_SLUB is not set | ||
69 | # CONFIG_SLOB is not set | ||
70 | CONFIG_RT_MUTEXES=y | ||
71 | CONFIG_TINY_SHMEM=y | ||
72 | CONFIG_BASE_SMALL=0 | ||
73 | |||
74 | # | ||
75 | # Loadable module support | ||
76 | # | ||
77 | CONFIG_MODULES=y | ||
78 | CONFIG_MODULE_UNLOAD=y | ||
79 | # CONFIG_MODULE_FORCE_UNLOAD is not set | ||
80 | # CONFIG_MODVERSIONS is not set | ||
81 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
82 | CONFIG_KMOD=y | ||
83 | |||
84 | # | ||
85 | # Block layer | ||
86 | # | ||
87 | CONFIG_BLOCK=y | ||
88 | # CONFIG_LBD is not set | ||
89 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
90 | # CONFIG_LSF is not set | ||
91 | |||
92 | # | ||
93 | # IO Schedulers | ||
94 | # | ||
95 | CONFIG_IOSCHED_NOOP=y | ||
96 | # CONFIG_IOSCHED_AS is not set | ||
97 | # CONFIG_IOSCHED_DEADLINE is not set | ||
98 | CONFIG_IOSCHED_CFQ=y | ||
99 | # CONFIG_DEFAULT_AS is not set | ||
100 | # CONFIG_DEFAULT_DEADLINE is not set | ||
101 | # CONFIG_DEFAULT_CFQ is not set | ||
102 | CONFIG_DEFAULT_NOOP=y | ||
103 | CONFIG_DEFAULT_IOSCHED="noop" | ||
104 | CONFIG_PREEMPT_NONE=y | ||
105 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
106 | # CONFIG_PREEMPT is not set | ||
107 | |||
108 | # | ||
109 | # Blackfin Processor Options | ||
110 | # | ||
111 | |||
112 | # | ||
113 | # Processor and Board Settings | ||
114 | # | ||
115 | # CONFIG_BF522 is not set | ||
116 | # CONFIG_BF523 is not set | ||
117 | # CONFIG_BF524 is not set | ||
118 | # CONFIG_BF525 is not set | ||
119 | # CONFIG_BF526 is not set | ||
120 | # CONFIG_BF527 is not set | ||
121 | # CONFIG_BF531 is not set | ||
122 | # CONFIG_BF532 is not set | ||
123 | CONFIG_BF533=y | ||
124 | # CONFIG_BF534 is not set | ||
125 | # CONFIG_BF536 is not set | ||
126 | # CONFIG_BF537 is not set | ||
127 | # CONFIG_BF542 is not set | ||
128 | # CONFIG_BF544 is not set | ||
129 | # CONFIG_BF547 is not set | ||
130 | # CONFIG_BF548 is not set | ||
131 | # CONFIG_BF549 is not set | ||
132 | # CONFIG_BF561 is not set | ||
133 | # CONFIG_BF_REV_0_0 is not set | ||
134 | # CONFIG_BF_REV_0_1 is not set | ||
135 | # CONFIG_BF_REV_0_2 is not set | ||
136 | CONFIG_BF_REV_0_3=y | ||
137 | # CONFIG_BF_REV_0_4 is not set | ||
138 | # CONFIG_BF_REV_0_5 is not set | ||
139 | # CONFIG_BF_REV_ANY is not set | ||
140 | # CONFIG_BF_REV_NONE is not set | ||
141 | CONFIG_BF53x=y | ||
142 | CONFIG_BFIN_SINGLE_CORE=y | ||
143 | CONFIG_MEM_MT48LC16M16A2TG_75=y | ||
144 | # CONFIG_BFIN533_EZKIT is not set | ||
145 | # CONFIG_BFIN533_STAMP is not set | ||
146 | CONFIG_BFIN533_BLUETECHNIX_CM=y | ||
147 | # CONFIG_H8606_HVSISTEMAS is not set | ||
148 | # CONFIG_GENERIC_BF533_BOARD is not set | ||
149 | |||
150 | # | ||
151 | # BF533/2/1 Specific Configuration | ||
152 | # | ||
153 | |||
154 | # | ||
155 | # Interrupt Priority Assignment | ||
156 | # | ||
157 | |||
158 | # | ||
159 | # Priority | ||
160 | # | ||
161 | CONFIG_UART_ERROR=7 | ||
162 | CONFIG_SPORT0_ERROR=7 | ||
163 | CONFIG_SPI_ERROR=7 | ||
164 | CONFIG_SPORT1_ERROR=7 | ||
165 | CONFIG_PPI_ERROR=7 | ||
166 | CONFIG_DMA_ERROR=7 | ||
167 | CONFIG_PLLWAKE_ERROR=7 | ||
168 | CONFIG_RTC_ERROR=8 | ||
169 | CONFIG_DMA0_PPI=8 | ||
170 | CONFIG_DMA1_SPORT0RX=9 | ||
171 | CONFIG_DMA2_SPORT0TX=9 | ||
172 | CONFIG_DMA3_SPORT1RX=9 | ||
173 | CONFIG_DMA4_SPORT1TX=9 | ||
174 | CONFIG_DMA5_SPI=10 | ||
175 | CONFIG_DMA6_UARTRX=10 | ||
176 | CONFIG_DMA7_UARTTX=10 | ||
177 | CONFIG_TIMER0=11 | ||
178 | CONFIG_TIMER1=11 | ||
179 | CONFIG_TIMER2=11 | ||
180 | CONFIG_PFA=12 | ||
181 | CONFIG_PFB=12 | ||
182 | CONFIG_MEMDMA0=13 | ||
183 | CONFIG_MEMDMA1=13 | ||
184 | CONFIG_WDTIMER=13 | ||
185 | |||
186 | # | ||
187 | # Board customizations | ||
188 | # | ||
189 | # CONFIG_CMDLINE_BOOL is not set | ||
190 | |||
191 | # | ||
192 | # Clock/PLL Setup | ||
193 | # | ||
194 | CONFIG_CLKIN_HZ=25000000 | ||
195 | # CONFIG_BFIN_KERNEL_CLOCK is not set | ||
196 | CONFIG_MAX_VCO_HZ=750000000 | ||
197 | CONFIG_MIN_VCO_HZ=50000000 | ||
198 | CONFIG_MAX_SCLK_HZ=133333333 | ||
199 | CONFIG_MIN_SCLK_HZ=27000000 | ||
200 | |||
201 | # | ||
202 | # Kernel Timer/Scheduler | ||
203 | # | ||
204 | # CONFIG_HZ_100 is not set | ||
205 | CONFIG_HZ_250=y | ||
206 | # CONFIG_HZ_300 is not set | ||
207 | # CONFIG_HZ_1000 is not set | ||
208 | CONFIG_HZ=250 | ||
209 | |||
210 | # | ||
211 | # Memory Setup | ||
212 | # | ||
213 | CONFIG_MAX_MEM_SIZE=32 | ||
214 | CONFIG_MEM_ADD_WIDTH=9 | ||
215 | CONFIG_BOOT_LOAD=0x1000 | ||
216 | CONFIG_BFIN_SCRATCH_REG_RETN=y | ||
217 | # CONFIG_BFIN_SCRATCH_REG_RETE is not set | ||
218 | # CONFIG_BFIN_SCRATCH_REG_CYCLES is not set | ||
219 | |||
220 | # | ||
221 | # Blackfin Kernel Optimizations | ||
222 | # | ||
223 | |||
224 | # | ||
225 | # Memory Optimizations | ||
226 | # | ||
227 | CONFIG_I_ENTRY_L1=y | ||
228 | CONFIG_EXCPT_IRQ_SYSC_L1=y | ||
229 | CONFIG_DO_IRQ_L1=y | ||
230 | CONFIG_CORE_TIMER_IRQ_L1=y | ||
231 | CONFIG_IDLE_L1=y | ||
232 | CONFIG_SCHEDULE_L1=y | ||
233 | CONFIG_ARITHMETIC_OPS_L1=y | ||
234 | CONFIG_ACCESS_OK_L1=y | ||
235 | CONFIG_MEMSET_L1=y | ||
236 | CONFIG_MEMCPY_L1=y | ||
237 | CONFIG_SYS_BFIN_SPINLOCK_L1=y | ||
238 | CONFIG_IP_CHECKSUM_L1=y | ||
239 | CONFIG_CACHELINE_ALIGNED_L1=y | ||
240 | CONFIG_SYSCALL_TAB_L1=y | ||
241 | CONFIG_CPLB_SWITCH_TAB_L1=y | ||
242 | CONFIG_RAMKERNEL=y | ||
243 | # CONFIG_ROMKERNEL is not set | ||
244 | CONFIG_SELECT_MEMORY_MODEL=y | ||
245 | CONFIG_FLATMEM_MANUAL=y | ||
246 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
247 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
248 | CONFIG_FLATMEM=y | ||
249 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
250 | # CONFIG_SPARSEMEM_STATIC is not set | ||
251 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
252 | # CONFIG_RESOURCES_64BIT is not set | ||
253 | CONFIG_ZONE_DMA_FLAG=1 | ||
254 | CONFIG_LARGE_ALLOCS=y | ||
255 | # CONFIG_BFIN_GPTIMERS is not set | ||
256 | CONFIG_BFIN_DMA_5XX=y | ||
257 | # CONFIG_DMA_UNCACHED_2M is not set | ||
258 | CONFIG_DMA_UNCACHED_1M=y | ||
259 | # CONFIG_DMA_UNCACHED_NONE is not set | ||
260 | |||
261 | # | ||
262 | # Cache Support | ||
263 | # | ||
264 | CONFIG_BFIN_ICACHE=y | ||
265 | CONFIG_BFIN_DCACHE=y | ||
266 | # CONFIG_BFIN_DCACHE_BANKA is not set | ||
267 | # CONFIG_BFIN_ICACHE_LOCK is not set | ||
268 | CONFIG_BFIN_WB=y | ||
269 | # CONFIG_BFIN_WT is not set | ||
270 | CONFIG_L1_MAX_PIECE=16 | ||
271 | # CONFIG_MPU is not set | ||
272 | |||
273 | # | ||
274 | # Asynchonous Memory Configuration | ||
275 | # | ||
276 | |||
277 | # | ||
278 | # EBIU_AMGCTL Global Control | ||
279 | # | ||
280 | CONFIG_C_AMCKEN=y | ||
281 | CONFIG_C_CDPRIO=y | ||
282 | # CONFIG_C_AMBEN is not set | ||
283 | # CONFIG_C_AMBEN_B0 is not set | ||
284 | # CONFIG_C_AMBEN_B0_B1 is not set | ||
285 | # CONFIG_C_AMBEN_B0_B1_B2 is not set | ||
286 | CONFIG_C_AMBEN_ALL=y | ||
287 | |||
288 | # | ||
289 | # EBIU_AMBCTL Control | ||
290 | # | ||
291 | CONFIG_BANK_0=0x7BB0 | ||
292 | CONFIG_BANK_1=0x7BB0 | ||
293 | CONFIG_BANK_2=0x7BB0 | ||
294 | CONFIG_BANK_3=0xFFC3 | ||
295 | |||
296 | # | ||
297 | # Bus options (PCI, PCMCIA, EISA, MCA, ISA) | ||
298 | # | ||
299 | # CONFIG_PCI is not set | ||
300 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
301 | |||
302 | # | ||
303 | # PCCARD (PCMCIA/CardBus) support | ||
304 | # | ||
305 | |||
306 | # | ||
307 | # Executable file formats | ||
308 | # | ||
309 | CONFIG_BINFMT_ELF_FDPIC=y | ||
310 | CONFIG_BINFMT_FLAT=y | ||
311 | CONFIG_BINFMT_ZFLAT=y | ||
312 | CONFIG_BINFMT_SHARED_FLAT=y | ||
313 | # CONFIG_BINFMT_MISC is not set | ||
314 | |||
315 | # | ||
316 | # Power management options | ||
317 | # | ||
318 | # CONFIG_PM is not set | ||
319 | # CONFIG_PM_WAKEUP_BY_GPIO is not set | ||
320 | |||
321 | # | ||
322 | # CPU Frequency scaling | ||
323 | # | ||
324 | # CONFIG_CPU_FREQ is not set | ||
325 | |||
326 | # | ||
327 | # Networking | ||
328 | # | ||
329 | CONFIG_NET=y | ||
330 | |||
331 | # | ||
332 | # Networking options | ||
333 | # | ||
334 | CONFIG_PACKET=y | ||
335 | # CONFIG_PACKET_MMAP is not set | ||
336 | CONFIG_UNIX=y | ||
337 | CONFIG_XFRM=y | ||
338 | # CONFIG_XFRM_USER is not set | ||
339 | # CONFIG_XFRM_SUB_POLICY is not set | ||
340 | # CONFIG_XFRM_MIGRATE is not set | ||
341 | # CONFIG_NET_KEY is not set | ||
342 | CONFIG_INET=y | ||
343 | # CONFIG_IP_MULTICAST is not set | ||
344 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
345 | CONFIG_IP_FIB_HASH=y | ||
346 | # CONFIG_IP_PNP is not set | ||
347 | # CONFIG_NET_IPIP is not set | ||
348 | # CONFIG_NET_IPGRE is not set | ||
349 | # CONFIG_ARPD is not set | ||
350 | CONFIG_SYN_COOKIES=y | ||
351 | # CONFIG_INET_AH is not set | ||
352 | # CONFIG_INET_ESP is not set | ||
353 | # CONFIG_INET_IPCOMP is not set | ||
354 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
355 | # CONFIG_INET_TUNNEL is not set | ||
356 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
357 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
358 | CONFIG_INET_XFRM_MODE_BEET=y | ||
359 | CONFIG_INET_DIAG=y | ||
360 | CONFIG_INET_TCP_DIAG=y | ||
361 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
362 | CONFIG_TCP_CONG_CUBIC=y | ||
363 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
364 | # CONFIG_TCP_MD5SIG is not set | ||
365 | # CONFIG_IPV6 is not set | ||
366 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
367 | # CONFIG_INET6_TUNNEL is not set | ||
368 | # CONFIG_NETLABEL is not set | ||
369 | # CONFIG_NETWORK_SECMARK is not set | ||
370 | # CONFIG_NETFILTER is not set | ||
371 | # CONFIG_IP_DCCP is not set | ||
372 | # CONFIG_IP_SCTP is not set | ||
373 | # CONFIG_TIPC is not set | ||
374 | # CONFIG_ATM is not set | ||
375 | # CONFIG_BRIDGE is not set | ||
376 | # CONFIG_VLAN_8021Q is not set | ||
377 | # CONFIG_DECNET is not set | ||
378 | # CONFIG_LLC2 is not set | ||
379 | # CONFIG_IPX is not set | ||
380 | # CONFIG_ATALK is not set | ||
381 | # CONFIG_X25 is not set | ||
382 | # CONFIG_LAPB is not set | ||
383 | # CONFIG_ECONET is not set | ||
384 | # CONFIG_WAN_ROUTER is not set | ||
385 | |||
386 | # | ||
387 | # QoS and/or fair queueing | ||
388 | # | ||
389 | # CONFIG_NET_SCHED is not set | ||
390 | |||
391 | # | ||
392 | # Network testing | ||
393 | # | ||
394 | # CONFIG_NET_PKTGEN is not set | ||
395 | # CONFIG_HAMRADIO is not set | ||
396 | # CONFIG_IRDA is not set | ||
397 | # CONFIG_BT is not set | ||
398 | # CONFIG_AF_RXRPC is not set | ||
399 | |||
400 | # | ||
401 | # Wireless | ||
402 | # | ||
403 | # CONFIG_CFG80211 is not set | ||
404 | # CONFIG_WIRELESS_EXT is not set | ||
405 | # CONFIG_MAC80211 is not set | ||
406 | # CONFIG_IEEE80211 is not set | ||
407 | # CONFIG_RFKILL is not set | ||
408 | |||
409 | # | ||
410 | # Device Drivers | ||
411 | # | ||
412 | |||
413 | # | ||
414 | # Generic Driver Options | ||
415 | # | ||
416 | CONFIG_STANDALONE=y | ||
417 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
418 | # CONFIG_SYS_HYPERVISOR is not set | ||
419 | |||
420 | # | ||
421 | # Connector - unified userspace <-> kernelspace linker | ||
422 | # | ||
423 | # CONFIG_CONNECTOR is not set | ||
424 | CONFIG_MTD=y | ||
425 | # CONFIG_MTD_DEBUG is not set | ||
426 | # CONFIG_MTD_CONCAT is not set | ||
427 | CONFIG_MTD_PARTITIONS=y | ||
428 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
429 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
430 | |||
431 | # | ||
432 | # User Modules And Translation Layers | ||
433 | # | ||
434 | CONFIG_MTD_CHAR=y | ||
435 | CONFIG_MTD_BLKDEVS=y | ||
436 | CONFIG_MTD_BLOCK=y | ||
437 | # CONFIG_FTL is not set | ||
438 | # CONFIG_NFTL is not set | ||
439 | # CONFIG_INFTL is not set | ||
440 | # CONFIG_RFD_FTL is not set | ||
441 | # CONFIG_SSFDC is not set | ||
442 | |||
443 | # | ||
444 | # RAM/ROM/Flash chip drivers | ||
445 | # | ||
446 | # CONFIG_MTD_CFI is not set | ||
447 | # CONFIG_MTD_JEDECPROBE is not set | ||
448 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
449 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
450 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
451 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
452 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
453 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
454 | CONFIG_MTD_CFI_I1=y | ||
455 | CONFIG_MTD_CFI_I2=y | ||
456 | # CONFIG_MTD_CFI_I4 is not set | ||
457 | # CONFIG_MTD_CFI_I8 is not set | ||
458 | CONFIG_MTD_RAM=y | ||
459 | # CONFIG_MTD_ROM is not set | ||
460 | # CONFIG_MTD_ABSENT is not set | ||
461 | |||
462 | # | ||
463 | # Mapping drivers for chip access | ||
464 | # | ||
465 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
466 | CONFIG_MTD_UCLINUX=y | ||
467 | # CONFIG_MTD_PLATRAM is not set | ||
468 | |||
469 | # | ||
470 | # Self-contained MTD device drivers | ||
471 | # | ||
472 | # CONFIG_MTD_SLRAM is not set | ||
473 | # CONFIG_MTD_PHRAM is not set | ||
474 | # CONFIG_MTD_MTDRAM is not set | ||
475 | # CONFIG_MTD_BLOCK2MTD is not set | ||
476 | |||
477 | # | ||
478 | # Disk-On-Chip Device Drivers | ||
479 | # | ||
480 | # CONFIG_MTD_DOC2000 is not set | ||
481 | # CONFIG_MTD_DOC2001 is not set | ||
482 | # CONFIG_MTD_DOC2001PLUS is not set | ||
483 | # CONFIG_MTD_NAND is not set | ||
484 | # CONFIG_MTD_ONENAND is not set | ||
485 | |||
486 | # | ||
487 | # UBI - Unsorted block images | ||
488 | # | ||
489 | # CONFIG_MTD_UBI is not set | ||
490 | |||
491 | # | ||
492 | # Parallel port support | ||
493 | # | ||
494 | # CONFIG_PARPORT is not set | ||
495 | |||
496 | # | ||
497 | # Plug and Play support | ||
498 | # | ||
499 | # CONFIG_PNPACPI is not set | ||
500 | |||
501 | # | ||
502 | # Block devices | ||
503 | # | ||
504 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
505 | # CONFIG_BLK_DEV_LOOP is not set | ||
506 | # CONFIG_BLK_DEV_NBD is not set | ||
507 | CONFIG_BLK_DEV_RAM=y | ||
508 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
509 | CONFIG_BLK_DEV_RAM_SIZE=4096 | ||
510 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | ||
511 | # CONFIG_CDROM_PKTCDVD is not set | ||
512 | # CONFIG_ATA_OVER_ETH is not set | ||
513 | |||
514 | # | ||
515 | # Misc devices | ||
516 | # | ||
517 | # CONFIG_IDE is not set | ||
518 | |||
519 | # | ||
520 | # SCSI device support | ||
521 | # | ||
522 | # CONFIG_RAID_ATTRS is not set | ||
523 | # CONFIG_SCSI is not set | ||
524 | # CONFIG_SCSI_NETLINK is not set | ||
525 | # CONFIG_ATA is not set | ||
526 | |||
527 | # | ||
528 | # Multi-device support (RAID and LVM) | ||
529 | # | ||
530 | # CONFIG_MD is not set | ||
531 | |||
532 | # | ||
533 | # Network device support | ||
534 | # | ||
535 | CONFIG_NETDEVICES=y | ||
536 | # CONFIG_DUMMY is not set | ||
537 | # CONFIG_BONDING is not set | ||
538 | # CONFIG_EQUALIZER is not set | ||
539 | # CONFIG_TUN is not set | ||
540 | # CONFIG_PHYLIB is not set | ||
541 | |||
542 | # | ||
543 | # Ethernet (10 or 100Mbit) | ||
544 | # | ||
545 | CONFIG_NET_ETHERNET=y | ||
546 | CONFIG_MII=y | ||
547 | CONFIG_SMC91X=y | ||
548 | # CONFIG_SMSC911X is not set | ||
549 | # CONFIG_DM9000 is not set | ||
550 | CONFIG_NETDEV_1000=y | ||
551 | # CONFIG_AX88180 is not set | ||
552 | CONFIG_NETDEV_10000=y | ||
553 | |||
554 | # | ||
555 | # Wireless LAN | ||
556 | # | ||
557 | # CONFIG_WLAN_PRE80211 is not set | ||
558 | # CONFIG_WLAN_80211 is not set | ||
559 | # CONFIG_WAN is not set | ||
560 | # CONFIG_PPP is not set | ||
561 | # CONFIG_SLIP is not set | ||
562 | # CONFIG_SHAPER is not set | ||
563 | # CONFIG_NETCONSOLE is not set | ||
564 | # CONFIG_NETPOLL is not set | ||
565 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
566 | |||
567 | # | ||
568 | # ISDN subsystem | ||
569 | # | ||
570 | # CONFIG_ISDN is not set | ||
571 | |||
572 | # | ||
573 | # Telephony Support | ||
574 | # | ||
575 | # CONFIG_PHONE is not set | ||
576 | |||
577 | # | ||
578 | # Input device support | ||
579 | # | ||
580 | # CONFIG_INPUT is not set | ||
581 | |||
582 | # | ||
583 | # Hardware I/O ports | ||
584 | # | ||
585 | # CONFIG_SERIO is not set | ||
586 | # CONFIG_GAMEPORT is not set | ||
587 | |||
588 | # | ||
589 | # Character devices | ||
590 | # | ||
591 | # CONFIG_AD9960 is not set | ||
592 | # CONFIG_SPI_ADC_BF533 is not set | ||
593 | # CONFIG_BF5xx_PFLAGS is not set | ||
594 | # CONFIG_BF5xx_PPIFCD is not set | ||
595 | # CONFIG_BFIN_SIMPLE_TIMER is not set | ||
596 | # CONFIG_BF5xx_PPI is not set | ||
597 | CONFIG_BFIN_SPORT=y | ||
598 | # CONFIG_BFIN_TIMER_LATENCY is not set | ||
599 | # CONFIG_VT is not set | ||
600 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
601 | |||
602 | # | ||
603 | # Serial drivers | ||
604 | # | ||
605 | # CONFIG_SERIAL_8250 is not set | ||
606 | |||
607 | # | ||
608 | # Non-8250 serial port support | ||
609 | # | ||
610 | CONFIG_SERIAL_BFIN=y | ||
611 | CONFIG_SERIAL_BFIN_CONSOLE=y | ||
612 | CONFIG_SERIAL_BFIN_DMA=y | ||
613 | # CONFIG_SERIAL_BFIN_PIO is not set | ||
614 | CONFIG_SERIAL_BFIN_UART0=y | ||
615 | # CONFIG_BFIN_UART0_CTSRTS is not set | ||
616 | CONFIG_SERIAL_CORE=y | ||
617 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
618 | # CONFIG_SERIAL_BFIN_SPORT is not set | ||
619 | CONFIG_UNIX98_PTYS=y | ||
620 | CONFIG_LEGACY_PTYS=y | ||
621 | CONFIG_LEGACY_PTY_COUNT=256 | ||
622 | |||
623 | # | ||
624 | # CAN, the car bus and industrial fieldbus | ||
625 | # | ||
626 | # CONFIG_CAN4LINUX is not set | ||
627 | |||
628 | # | ||
629 | # IPMI | ||
630 | # | ||
631 | # CONFIG_IPMI_HANDLER is not set | ||
632 | # CONFIG_WATCHDOG is not set | ||
633 | # CONFIG_HW_RANDOM is not set | ||
634 | # CONFIG_GEN_RTC is not set | ||
635 | # CONFIG_R3964 is not set | ||
636 | # CONFIG_RAW_DRIVER is not set | ||
637 | |||
638 | # | ||
639 | # TPM devices | ||
640 | # | ||
641 | # CONFIG_TCG_TPM is not set | ||
642 | # CONFIG_I2C is not set | ||
643 | |||
644 | # | ||
645 | # SPI support | ||
646 | # | ||
647 | # CONFIG_SPI is not set | ||
648 | # CONFIG_SPI_MASTER is not set | ||
649 | |||
650 | # | ||
651 | # Dallas's 1-wire bus | ||
652 | # | ||
653 | # CONFIG_W1 is not set | ||
654 | CONFIG_HWMON=y | ||
655 | # CONFIG_HWMON_VID is not set | ||
656 | # CONFIG_SENSORS_ABITUGURU is not set | ||
657 | # CONFIG_SENSORS_F71805F is not set | ||
658 | # CONFIG_SENSORS_PC87427 is not set | ||
659 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
660 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
661 | # CONFIG_SENSORS_VT1211 is not set | ||
662 | # CONFIG_SENSORS_W83627HF is not set | ||
663 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
664 | |||
665 | # | ||
666 | # Multifunction device drivers | ||
667 | # | ||
668 | # CONFIG_MFD_SM501 is not set | ||
669 | |||
670 | # | ||
671 | # Multimedia devices | ||
672 | # | ||
673 | # CONFIG_VIDEO_DEV is not set | ||
674 | # CONFIG_DVB_CORE is not set | ||
675 | CONFIG_DAB=y | ||
676 | |||
677 | # | ||
678 | # Graphics support | ||
679 | # | ||
680 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
681 | |||
682 | # | ||
683 | # Display device support | ||
684 | # | ||
685 | # CONFIG_DISPLAY_SUPPORT is not set | ||
686 | # CONFIG_VGASTATE is not set | ||
687 | # CONFIG_FB is not set | ||
688 | |||
689 | # | ||
690 | # Sound | ||
691 | # | ||
692 | # CONFIG_SOUND is not set | ||
693 | |||
694 | # | ||
695 | # USB support | ||
696 | # | ||
697 | CONFIG_USB_ARCH_HAS_HCD=y | ||
698 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
699 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
700 | # CONFIG_USB is not set | ||
701 | |||
702 | # | ||
703 | # Enable Host or Gadget support to see Inventra options | ||
704 | # | ||
705 | |||
706 | # | ||
707 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
708 | # | ||
709 | |||
710 | # | ||
711 | # USB Gadget Support | ||
712 | # | ||
713 | # CONFIG_USB_GADGET is not set | ||
714 | # CONFIG_MMC is not set | ||
715 | |||
716 | # | ||
717 | # LED devices | ||
718 | # | ||
719 | # CONFIG_NEW_LEDS is not set | ||
720 | |||
721 | # | ||
722 | # LED drivers | ||
723 | # | ||
724 | |||
725 | # | ||
726 | # LED Triggers | ||
727 | # | ||
728 | |||
729 | # | ||
730 | # InfiniBand support | ||
731 | # | ||
732 | |||
733 | # | ||
734 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
735 | # | ||
736 | |||
737 | # | ||
738 | # Real Time Clock | ||
739 | # | ||
740 | # CONFIG_RTC_CLASS is not set | ||
741 | |||
742 | # | ||
743 | # DMA Engine support | ||
744 | # | ||
745 | # CONFIG_DMA_ENGINE is not set | ||
746 | |||
747 | # | ||
748 | # DMA Clients | ||
749 | # | ||
750 | |||
751 | # | ||
752 | # DMA Devices | ||
753 | # | ||
754 | |||
755 | # | ||
756 | # PBX support | ||
757 | # | ||
758 | # CONFIG_PBX is not set | ||
759 | |||
760 | # | ||
761 | # File systems | ||
762 | # | ||
763 | CONFIG_EXT2_FS=y | ||
764 | CONFIG_EXT2_FS_XATTR=y | ||
765 | # CONFIG_EXT2_FS_POSIX_ACL is not set | ||
766 | # CONFIG_EXT2_FS_SECURITY is not set | ||
767 | # CONFIG_EXT3_FS is not set | ||
768 | # CONFIG_EXT4DEV_FS is not set | ||
769 | CONFIG_FS_MBCACHE=y | ||
770 | # CONFIG_REISERFS_FS is not set | ||
771 | # CONFIG_JFS_FS is not set | ||
772 | # CONFIG_FS_POSIX_ACL is not set | ||
773 | # CONFIG_XFS_FS is not set | ||
774 | # CONFIG_GFS2_FS is not set | ||
775 | # CONFIG_OCFS2_FS is not set | ||
776 | # CONFIG_MINIX_FS is not set | ||
777 | # CONFIG_ROMFS_FS is not set | ||
778 | CONFIG_INOTIFY=y | ||
779 | CONFIG_INOTIFY_USER=y | ||
780 | # CONFIG_QUOTA is not set | ||
781 | CONFIG_DNOTIFY=y | ||
782 | # CONFIG_AUTOFS_FS is not set | ||
783 | # CONFIG_AUTOFS4_FS is not set | ||
784 | # CONFIG_FUSE_FS is not set | ||
785 | |||
786 | # | ||
787 | # CD-ROM/DVD Filesystems | ||
788 | # | ||
789 | # CONFIG_ISO9660_FS is not set | ||
790 | # CONFIG_UDF_FS is not set | ||
791 | |||
792 | # | ||
793 | # DOS/FAT/NT Filesystems | ||
794 | # | ||
795 | # CONFIG_MSDOS_FS is not set | ||
796 | # CONFIG_VFAT_FS is not set | ||
797 | # CONFIG_NTFS_FS is not set | ||
798 | |||
799 | # | ||
800 | # Pseudo filesystems | ||
801 | # | ||
802 | CONFIG_PROC_FS=y | ||
803 | CONFIG_PROC_SYSCTL=y | ||
804 | CONFIG_SYSFS=y | ||
805 | # CONFIG_TMPFS is not set | ||
806 | # CONFIG_HUGETLB_PAGE is not set | ||
807 | CONFIG_RAMFS=y | ||
808 | # CONFIG_CONFIGFS_FS is not set | ||
809 | |||
810 | # | ||
811 | # Miscellaneous filesystems | ||
812 | # | ||
813 | # CONFIG_ADFS_FS is not set | ||
814 | # CONFIG_AFFS_FS is not set | ||
815 | # CONFIG_HFS_FS is not set | ||
816 | # CONFIG_HFSPLUS_FS is not set | ||
817 | # CONFIG_BEFS_FS is not set | ||
818 | # CONFIG_BFS_FS is not set | ||
819 | # CONFIG_EFS_FS is not set | ||
820 | # CONFIG_YAFFS_FS is not set | ||
821 | # CONFIG_JFFS2_FS is not set | ||
822 | # CONFIG_CRAMFS is not set | ||
823 | # CONFIG_VXFS_FS is not set | ||
824 | # CONFIG_HPFS_FS is not set | ||
825 | # CONFIG_QNX4FS_FS is not set | ||
826 | # CONFIG_SYSV_FS is not set | ||
827 | # CONFIG_UFS_FS is not set | ||
828 | |||
829 | # | ||
830 | # Network File Systems | ||
831 | # | ||
832 | # CONFIG_NFS_FS is not set | ||
833 | # CONFIG_NFSD is not set | ||
834 | # CONFIG_SMB_FS is not set | ||
835 | # CONFIG_CIFS is not set | ||
836 | # CONFIG_NCP_FS is not set | ||
837 | # CONFIG_CODA_FS is not set | ||
838 | # CONFIG_AFS_FS is not set | ||
839 | # CONFIG_9P_FS is not set | ||
840 | |||
841 | # | ||
842 | # Partition Types | ||
843 | # | ||
844 | # CONFIG_PARTITION_ADVANCED is not set | ||
845 | CONFIG_MSDOS_PARTITION=y | ||
846 | |||
847 | # | ||
848 | # Native Language Support | ||
849 | # | ||
850 | # CONFIG_NLS is not set | ||
851 | |||
852 | # | ||
853 | # Distributed Lock Manager | ||
854 | # | ||
855 | # CONFIG_DLM is not set | ||
856 | |||
857 | # | ||
858 | # Profiling support | ||
859 | # | ||
860 | # CONFIG_PROFILING is not set | ||
861 | |||
862 | # | ||
863 | # Kernel hacking | ||
864 | # | ||
865 | # CONFIG_PRINTK_TIME is not set | ||
866 | CONFIG_ENABLE_MUST_CHECK=y | ||
867 | # CONFIG_MAGIC_SYSRQ is not set | ||
868 | # CONFIG_UNUSED_SYMBOLS is not set | ||
869 | # CONFIG_DEBUG_FS is not set | ||
870 | # CONFIG_HEADERS_CHECK is not set | ||
871 | # CONFIG_DEBUG_KERNEL is not set | ||
872 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
873 | # CONFIG_DEBUG_MMRS is not set | ||
874 | CONFIG_DEBUG_HUNT_FOR_ZERO=y | ||
875 | CONFIG_DEBUG_BFIN_HWTRACE_ON=y | ||
876 | CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF=y | ||
877 | # CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE is not set | ||
878 | # CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_TWO is not set | ||
879 | CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION=0 | ||
880 | # CONFIG_DEBUG_BFIN_HWTRACE_EXPAND is not set | ||
881 | # CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set | ||
882 | # CONFIG_EARLY_PRINTK is not set | ||
883 | CONFIG_CPLB_INFO=y | ||
884 | CONFIG_ACCESS_CHECK=y | ||
885 | |||
886 | # | ||
887 | # Security options | ||
888 | # | ||
889 | # CONFIG_KEYS is not set | ||
890 | CONFIG_SECURITY=y | ||
891 | # CONFIG_SECURITY_NETWORK is not set | ||
892 | CONFIG_SECURITY_CAPABILITIES=y | ||
893 | |||
894 | # | ||
895 | # Cryptographic options | ||
896 | # | ||
897 | # CONFIG_CRYPTO is not set | ||
898 | |||
899 | # | ||
900 | # Library routines | ||
901 | # | ||
902 | CONFIG_BITREVERSE=y | ||
903 | CONFIG_CRC_CCITT=m | ||
904 | # CONFIG_CRC16 is not set | ||
905 | # CONFIG_CRC_ITU_T is not set | ||
906 | CONFIG_CRC32=y | ||
907 | # CONFIG_LIBCRC32C is not set | ||
908 | CONFIG_ZLIB_INFLATE=y | ||
909 | CONFIG_PLIST=y | ||
910 | CONFIG_HAS_IOMEM=y | ||
911 | CONFIG_HAS_IOPORT=y | ||
912 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/blackfin/configs/CM-BF537E_defconfig b/arch/blackfin/configs/CM-BF537E_defconfig new file mode 100644 index 000000000000..9f66d2de1007 --- /dev/null +++ b/arch/blackfin/configs/CM-BF537E_defconfig | |||
@@ -0,0 +1,940 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.22.16 | ||
4 | # | ||
5 | # CONFIG_MMU is not set | ||
6 | # CONFIG_FPU is not set | ||
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
8 | # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set | ||
9 | CONFIG_BLACKFIN=y | ||
10 | CONFIG_ZONE_DMA=y | ||
11 | CONFIG_SEMAPHORE_SLEEPERS=y | ||
12 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
13 | CONFIG_GENERIC_HWEIGHT=y | ||
14 | CONFIG_GENERIC_HARDIRQS=y | ||
15 | CONFIG_GENERIC_IRQ_PROBE=y | ||
16 | CONFIG_GENERIC_TIME=y | ||
17 | CONFIG_GENERIC_GPIO=y | ||
18 | CONFIG_FORCE_MAX_ZONEORDER=14 | ||
19 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
20 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
21 | |||
22 | # | ||
23 | # Code maturity level options | ||
24 | # | ||
25 | CONFIG_EXPERIMENTAL=y | ||
26 | CONFIG_BROKEN_ON_SMP=y | ||
27 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
28 | |||
29 | # | ||
30 | # General setup | ||
31 | # | ||
32 | CONFIG_LOCALVERSION="" | ||
33 | CONFIG_LOCALVERSION_AUTO=y | ||
34 | CONFIG_SYSVIPC=y | ||
35 | # CONFIG_IPC_NS is not set | ||
36 | CONFIG_SYSVIPC_SYSCTL=y | ||
37 | # CONFIG_POSIX_MQUEUE is not set | ||
38 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
39 | # CONFIG_TASKSTATS is not set | ||
40 | # CONFIG_UTS_NS is not set | ||
41 | # CONFIG_AUDIT is not set | ||
42 | # CONFIG_IKCONFIG is not set | ||
43 | CONFIG_LOG_BUF_SHIFT=14 | ||
44 | CONFIG_SYSFS_DEPRECATED=y | ||
45 | # CONFIG_RELAY is not set | ||
46 | # CONFIG_BLK_DEV_INITRD is not set | ||
47 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
48 | CONFIG_SYSCTL=y | ||
49 | CONFIG_EMBEDDED=y | ||
50 | # CONFIG_UID16 is not set | ||
51 | CONFIG_SYSCTL_SYSCALL=y | ||
52 | CONFIG_KALLSYMS=y | ||
53 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
54 | # CONFIG_HOTPLUG is not set | ||
55 | CONFIG_PRINTK=y | ||
56 | CONFIG_BUG=y | ||
57 | CONFIG_ELF_CORE=y | ||
58 | CONFIG_BASE_FULL=y | ||
59 | CONFIG_FUTEX=y | ||
60 | CONFIG_ANON_INODES=y | ||
61 | CONFIG_EPOLL=y | ||
62 | CONFIG_SIGNALFD=y | ||
63 | CONFIG_EVENTFD=y | ||
64 | CONFIG_VM_EVENT_COUNTERS=y | ||
65 | CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3 | ||
66 | # CONFIG_NP2 is not set | ||
67 | CONFIG_SLAB=y | ||
68 | # CONFIG_SLUB is not set | ||
69 | # CONFIG_SLOB is not set | ||
70 | CONFIG_RT_MUTEXES=y | ||
71 | CONFIG_TINY_SHMEM=y | ||
72 | CONFIG_BASE_SMALL=0 | ||
73 | |||
74 | # | ||
75 | # Loadable module support | ||
76 | # | ||
77 | CONFIG_MODULES=y | ||
78 | CONFIG_MODULE_UNLOAD=y | ||
79 | # CONFIG_MODULE_FORCE_UNLOAD is not set | ||
80 | # CONFIG_MODVERSIONS is not set | ||
81 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
82 | CONFIG_KMOD=y | ||
83 | |||
84 | # | ||
85 | # Block layer | ||
86 | # | ||
87 | CONFIG_BLOCK=y | ||
88 | # CONFIG_LBD is not set | ||
89 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
90 | # CONFIG_LSF is not set | ||
91 | |||
92 | # | ||
93 | # IO Schedulers | ||
94 | # | ||
95 | CONFIG_IOSCHED_NOOP=y | ||
96 | # CONFIG_IOSCHED_AS is not set | ||
97 | # CONFIG_IOSCHED_DEADLINE is not set | ||
98 | CONFIG_IOSCHED_CFQ=y | ||
99 | # CONFIG_DEFAULT_AS is not set | ||
100 | # CONFIG_DEFAULT_DEADLINE is not set | ||
101 | # CONFIG_DEFAULT_CFQ is not set | ||
102 | CONFIG_DEFAULT_NOOP=y | ||
103 | CONFIG_DEFAULT_IOSCHED="noop" | ||
104 | CONFIG_PREEMPT_NONE=y | ||
105 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
106 | # CONFIG_PREEMPT is not set | ||
107 | |||
108 | # | ||
109 | # Blackfin Processor Options | ||
110 | # | ||
111 | |||
112 | # | ||
113 | # Processor and Board Settings | ||
114 | # | ||
115 | # CONFIG_BF522 is not set | ||
116 | # CONFIG_BF523 is not set | ||
117 | # CONFIG_BF524 is not set | ||
118 | # CONFIG_BF525 is not set | ||
119 | # CONFIG_BF526 is not set | ||
120 | # CONFIG_BF527 is not set | ||
121 | # CONFIG_BF531 is not set | ||
122 | # CONFIG_BF532 is not set | ||
123 | # CONFIG_BF533 is not set | ||
124 | # CONFIG_BF534 is not set | ||
125 | # CONFIG_BF536 is not set | ||
126 | CONFIG_BF537=y | ||
127 | # CONFIG_BF542 is not set | ||
128 | # CONFIG_BF544 is not set | ||
129 | # CONFIG_BF547 is not set | ||
130 | # CONFIG_BF548 is not set | ||
131 | # CONFIG_BF549 is not set | ||
132 | # CONFIG_BF561 is not set | ||
133 | # CONFIG_BF_REV_0_0 is not set | ||
134 | # CONFIG_BF_REV_0_1 is not set | ||
135 | CONFIG_BF_REV_0_2=y | ||
136 | # CONFIG_BF_REV_0_3 is not set | ||
137 | # CONFIG_BF_REV_0_4 is not set | ||
138 | # CONFIG_BF_REV_0_5 is not set | ||
139 | # CONFIG_BF_REV_ANY is not set | ||
140 | # CONFIG_BF_REV_NONE is not set | ||
141 | CONFIG_BF53x=y | ||
142 | CONFIG_BFIN_SINGLE_CORE=y | ||
143 | CONFIG_MEM_MT48LC16M16A2TG_75=y | ||
144 | CONFIG_IRQ_PLL_WAKEUP=7 | ||
145 | CONFIG_IRQ_RTC=8 | ||
146 | CONFIG_IRQ_PPI=8 | ||
147 | CONFIG_IRQ_SPORT0_RX=9 | ||
148 | CONFIG_IRQ_SPORT0_TX=9 | ||
149 | CONFIG_IRQ_SPORT1_RX=9 | ||
150 | CONFIG_IRQ_SPORT1_TX=9 | ||
151 | CONFIG_IRQ_TWI=10 | ||
152 | CONFIG_IRQ_SPI=10 | ||
153 | CONFIG_IRQ_UART0_RX=10 | ||
154 | CONFIG_IRQ_UART0_TX=10 | ||
155 | CONFIG_IRQ_UART1_RX=10 | ||
156 | CONFIG_IRQ_UART1_TX=10 | ||
157 | CONFIG_IRQ_MAC_RX=11 | ||
158 | CONFIG_IRQ_MAC_TX=11 | ||
159 | CONFIG_IRQ_TMR0=12 | ||
160 | CONFIG_IRQ_TMR1=12 | ||
161 | CONFIG_IRQ_TMR2=12 | ||
162 | CONFIG_IRQ_TMR3=12 | ||
163 | CONFIG_IRQ_TMR4=12 | ||
164 | CONFIG_IRQ_TMR5=12 | ||
165 | CONFIG_IRQ_TMR6=12 | ||
166 | CONFIG_IRQ_TMR7=12 | ||
167 | CONFIG_IRQ_PORTG_INTB=12 | ||
168 | CONFIG_IRQ_MEM_DMA0=13 | ||
169 | CONFIG_IRQ_MEM_DMA1=13 | ||
170 | CONFIG_IRQ_WATCH=13 | ||
171 | # CONFIG_BFIN537_STAMP is not set | ||
172 | CONFIG_BFIN537_BLUETECHNIX_CM=y | ||
173 | # CONFIG_PNAV10 is not set | ||
174 | # CONFIG_CAMSIG_MINOTAUR is not set | ||
175 | # CONFIG_GENERIC_BF537_BOARD is not set | ||
176 | |||
177 | # | ||
178 | # BF537 Specific Configuration | ||
179 | # | ||
180 | |||
181 | # | ||
182 | # Interrupt Priority Assignment | ||
183 | # | ||
184 | |||
185 | # | ||
186 | # Priority | ||
187 | # | ||
188 | CONFIG_IRQ_DMA_ERROR=7 | ||
189 | CONFIG_IRQ_ERROR=7 | ||
190 | CONFIG_IRQ_CAN_RX=11 | ||
191 | CONFIG_IRQ_CAN_TX=11 | ||
192 | CONFIG_IRQ_PROG_INTA=12 | ||
193 | |||
194 | # | ||
195 | # Board customizations | ||
196 | # | ||
197 | # CONFIG_CMDLINE_BOOL is not set | ||
198 | |||
199 | # | ||
200 | # Clock/PLL Setup | ||
201 | # | ||
202 | CONFIG_CLKIN_HZ=25000000 | ||
203 | # CONFIG_BFIN_KERNEL_CLOCK is not set | ||
204 | CONFIG_MAX_VCO_HZ=600000000 | ||
205 | CONFIG_MIN_VCO_HZ=50000000 | ||
206 | CONFIG_MAX_SCLK_HZ=133333333 | ||
207 | CONFIG_MIN_SCLK_HZ=27000000 | ||
208 | |||
209 | # | ||
210 | # Kernel Timer/Scheduler | ||
211 | # | ||
212 | # CONFIG_HZ_100 is not set | ||
213 | CONFIG_HZ_250=y | ||
214 | # CONFIG_HZ_300 is not set | ||
215 | # CONFIG_HZ_1000 is not set | ||
216 | CONFIG_HZ=250 | ||
217 | |||
218 | # | ||
219 | # Memory Setup | ||
220 | # | ||
221 | CONFIG_MAX_MEM_SIZE=32 | ||
222 | CONFIG_MEM_ADD_WIDTH=9 | ||
223 | CONFIG_BOOT_LOAD=0x1000 | ||
224 | CONFIG_BFIN_SCRATCH_REG_RETN=y | ||
225 | # CONFIG_BFIN_SCRATCH_REG_RETE is not set | ||
226 | # CONFIG_BFIN_SCRATCH_REG_CYCLES is not set | ||
227 | |||
228 | # | ||
229 | # Blackfin Kernel Optimizations | ||
230 | # | ||
231 | |||
232 | # | ||
233 | # Memory Optimizations | ||
234 | # | ||
235 | CONFIG_I_ENTRY_L1=y | ||
236 | CONFIG_EXCPT_IRQ_SYSC_L1=y | ||
237 | CONFIG_DO_IRQ_L1=y | ||
238 | CONFIG_CORE_TIMER_IRQ_L1=y | ||
239 | CONFIG_IDLE_L1=y | ||
240 | CONFIG_SCHEDULE_L1=y | ||
241 | CONFIG_ARITHMETIC_OPS_L1=y | ||
242 | CONFIG_ACCESS_OK_L1=y | ||
243 | CONFIG_MEMSET_L1=y | ||
244 | CONFIG_MEMCPY_L1=y | ||
245 | CONFIG_SYS_BFIN_SPINLOCK_L1=y | ||
246 | CONFIG_IP_CHECKSUM_L1=y | ||
247 | CONFIG_CACHELINE_ALIGNED_L1=y | ||
248 | CONFIG_SYSCALL_TAB_L1=y | ||
249 | CONFIG_CPLB_SWITCH_TAB_L1=y | ||
250 | CONFIG_RAMKERNEL=y | ||
251 | # CONFIG_ROMKERNEL is not set | ||
252 | CONFIG_SELECT_MEMORY_MODEL=y | ||
253 | CONFIG_FLATMEM_MANUAL=y | ||
254 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
255 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
256 | CONFIG_FLATMEM=y | ||
257 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
258 | # CONFIG_SPARSEMEM_STATIC is not set | ||
259 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
260 | # CONFIG_RESOURCES_64BIT is not set | ||
261 | CONFIG_ZONE_DMA_FLAG=1 | ||
262 | CONFIG_LARGE_ALLOCS=y | ||
263 | # CONFIG_BFIN_GPTIMERS is not set | ||
264 | CONFIG_BFIN_DMA_5XX=y | ||
265 | # CONFIG_DMA_UNCACHED_2M is not set | ||
266 | CONFIG_DMA_UNCACHED_1M=y | ||
267 | # CONFIG_DMA_UNCACHED_NONE is not set | ||
268 | |||
269 | # | ||
270 | # Cache Support | ||
271 | # | ||
272 | CONFIG_BFIN_ICACHE=y | ||
273 | CONFIG_BFIN_DCACHE=y | ||
274 | # CONFIG_BFIN_DCACHE_BANKA is not set | ||
275 | # CONFIG_BFIN_ICACHE_LOCK is not set | ||
276 | CONFIG_BFIN_WB=y | ||
277 | # CONFIG_BFIN_WT is not set | ||
278 | CONFIG_L1_MAX_PIECE=16 | ||
279 | # CONFIG_MPU is not set | ||
280 | |||
281 | # | ||
282 | # Asynchonous Memory Configuration | ||
283 | # | ||
284 | |||
285 | # | ||
286 | # EBIU_AMGCTL Global Control | ||
287 | # | ||
288 | CONFIG_C_AMCKEN=y | ||
289 | CONFIG_C_CDPRIO=y | ||
290 | # CONFIG_C_AMBEN is not set | ||
291 | # CONFIG_C_AMBEN_B0 is not set | ||
292 | # CONFIG_C_AMBEN_B0_B1 is not set | ||
293 | # CONFIG_C_AMBEN_B0_B1_B2 is not set | ||
294 | CONFIG_C_AMBEN_ALL=y | ||
295 | |||
296 | # | ||
297 | # EBIU_AMBCTL Control | ||
298 | # | ||
299 | CONFIG_BANK_0=0x7BB0 | ||
300 | CONFIG_BANK_1=0x7BB0 | ||
301 | CONFIG_BANK_2=0x7BB0 | ||
302 | CONFIG_BANK_3=0xFFC3 | ||
303 | |||
304 | # | ||
305 | # Bus options (PCI, PCMCIA, EISA, MCA, ISA) | ||
306 | # | ||
307 | # CONFIG_PCI is not set | ||
308 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
309 | |||
310 | # | ||
311 | # PCCARD (PCMCIA/CardBus) support | ||
312 | # | ||
313 | |||
314 | # | ||
315 | # Executable file formats | ||
316 | # | ||
317 | CONFIG_BINFMT_ELF_FDPIC=y | ||
318 | CONFIG_BINFMT_FLAT=y | ||
319 | CONFIG_BINFMT_ZFLAT=y | ||
320 | CONFIG_BINFMT_SHARED_FLAT=y | ||
321 | # CONFIG_BINFMT_MISC is not set | ||
322 | |||
323 | # | ||
324 | # Power management options | ||
325 | # | ||
326 | # CONFIG_PM is not set | ||
327 | # CONFIG_PM_WAKEUP_BY_GPIO is not set | ||
328 | |||
329 | # | ||
330 | # CPU Frequency scaling | ||
331 | # | ||
332 | # CONFIG_CPU_FREQ is not set | ||
333 | |||
334 | # | ||
335 | # Networking | ||
336 | # | ||
337 | CONFIG_NET=y | ||
338 | |||
339 | # | ||
340 | # Networking options | ||
341 | # | ||
342 | CONFIG_PACKET=y | ||
343 | # CONFIG_PACKET_MMAP is not set | ||
344 | CONFIG_UNIX=y | ||
345 | CONFIG_XFRM=y | ||
346 | # CONFIG_XFRM_USER is not set | ||
347 | # CONFIG_XFRM_SUB_POLICY is not set | ||
348 | # CONFIG_XFRM_MIGRATE is not set | ||
349 | # CONFIG_NET_KEY is not set | ||
350 | CONFIG_INET=y | ||
351 | # CONFIG_IP_MULTICAST is not set | ||
352 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
353 | CONFIG_IP_FIB_HASH=y | ||
354 | # CONFIG_IP_PNP is not set | ||
355 | # CONFIG_NET_IPIP is not set | ||
356 | # CONFIG_NET_IPGRE is not set | ||
357 | # CONFIG_ARPD is not set | ||
358 | CONFIG_SYN_COOKIES=y | ||
359 | # CONFIG_INET_AH is not set | ||
360 | # CONFIG_INET_ESP is not set | ||
361 | # CONFIG_INET_IPCOMP is not set | ||
362 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
363 | # CONFIG_INET_TUNNEL is not set | ||
364 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
365 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
366 | CONFIG_INET_XFRM_MODE_BEET=y | ||
367 | CONFIG_INET_DIAG=y | ||
368 | CONFIG_INET_TCP_DIAG=y | ||
369 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
370 | CONFIG_TCP_CONG_CUBIC=y | ||
371 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
372 | # CONFIG_TCP_MD5SIG is not set | ||
373 | # CONFIG_IPV6 is not set | ||
374 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
375 | # CONFIG_INET6_TUNNEL is not set | ||
376 | # CONFIG_NETLABEL is not set | ||
377 | # CONFIG_NETWORK_SECMARK is not set | ||
378 | # CONFIG_NETFILTER is not set | ||
379 | # CONFIG_IP_DCCP is not set | ||
380 | # CONFIG_IP_SCTP is not set | ||
381 | # CONFIG_TIPC is not set | ||
382 | # CONFIG_ATM is not set | ||
383 | # CONFIG_BRIDGE is not set | ||
384 | # CONFIG_VLAN_8021Q is not set | ||
385 | # CONFIG_DECNET is not set | ||
386 | # CONFIG_LLC2 is not set | ||
387 | # CONFIG_IPX is not set | ||
388 | # CONFIG_ATALK is not set | ||
389 | # CONFIG_X25 is not set | ||
390 | # CONFIG_LAPB is not set | ||
391 | # CONFIG_ECONET is not set | ||
392 | # CONFIG_WAN_ROUTER is not set | ||
393 | |||
394 | # | ||
395 | # QoS and/or fair queueing | ||
396 | # | ||
397 | # CONFIG_NET_SCHED is not set | ||
398 | |||
399 | # | ||
400 | # Network testing | ||
401 | # | ||
402 | # CONFIG_NET_PKTGEN is not set | ||
403 | # CONFIG_HAMRADIO is not set | ||
404 | # CONFIG_IRDA is not set | ||
405 | # CONFIG_BT is not set | ||
406 | # CONFIG_AF_RXRPC is not set | ||
407 | |||
408 | # | ||
409 | # Wireless | ||
410 | # | ||
411 | # CONFIG_CFG80211 is not set | ||
412 | # CONFIG_WIRELESS_EXT is not set | ||
413 | # CONFIG_MAC80211 is not set | ||
414 | # CONFIG_IEEE80211 is not set | ||
415 | # CONFIG_RFKILL is not set | ||
416 | |||
417 | # | ||
418 | # Device Drivers | ||
419 | # | ||
420 | |||
421 | # | ||
422 | # Generic Driver Options | ||
423 | # | ||
424 | CONFIG_STANDALONE=y | ||
425 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
426 | # CONFIG_SYS_HYPERVISOR is not set | ||
427 | |||
428 | # | ||
429 | # Connector - unified userspace <-> kernelspace linker | ||
430 | # | ||
431 | # CONFIG_CONNECTOR is not set | ||
432 | CONFIG_MTD=y | ||
433 | # CONFIG_MTD_DEBUG is not set | ||
434 | # CONFIG_MTD_CONCAT is not set | ||
435 | CONFIG_MTD_PARTITIONS=y | ||
436 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
437 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
438 | |||
439 | # | ||
440 | # User Modules And Translation Layers | ||
441 | # | ||
442 | CONFIG_MTD_CHAR=y | ||
443 | CONFIG_MTD_BLKDEVS=y | ||
444 | CONFIG_MTD_BLOCK=y | ||
445 | # CONFIG_FTL is not set | ||
446 | # CONFIG_NFTL is not set | ||
447 | # CONFIG_INFTL is not set | ||
448 | # CONFIG_RFD_FTL is not set | ||
449 | # CONFIG_SSFDC is not set | ||
450 | |||
451 | # | ||
452 | # RAM/ROM/Flash chip drivers | ||
453 | # | ||
454 | # CONFIG_MTD_CFI is not set | ||
455 | # CONFIG_MTD_JEDECPROBE is not set | ||
456 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
457 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
458 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
459 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
460 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
461 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
462 | CONFIG_MTD_CFI_I1=y | ||
463 | CONFIG_MTD_CFI_I2=y | ||
464 | # CONFIG_MTD_CFI_I4 is not set | ||
465 | # CONFIG_MTD_CFI_I8 is not set | ||
466 | CONFIG_MTD_RAM=y | ||
467 | # CONFIG_MTD_ROM is not set | ||
468 | # CONFIG_MTD_ABSENT is not set | ||
469 | |||
470 | # | ||
471 | # Mapping drivers for chip access | ||
472 | # | ||
473 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
474 | CONFIG_MTD_UCLINUX=y | ||
475 | # CONFIG_MTD_PLATRAM is not set | ||
476 | |||
477 | # | ||
478 | # Self-contained MTD device drivers | ||
479 | # | ||
480 | # CONFIG_MTD_SLRAM is not set | ||
481 | # CONFIG_MTD_PHRAM is not set | ||
482 | # CONFIG_MTD_MTDRAM is not set | ||
483 | # CONFIG_MTD_BLOCK2MTD is not set | ||
484 | |||
485 | # | ||
486 | # Disk-On-Chip Device Drivers | ||
487 | # | ||
488 | # CONFIG_MTD_DOC2000 is not set | ||
489 | # CONFIG_MTD_DOC2001 is not set | ||
490 | # CONFIG_MTD_DOC2001PLUS is not set | ||
491 | # CONFIG_MTD_NAND is not set | ||
492 | # CONFIG_MTD_ONENAND is not set | ||
493 | |||
494 | # | ||
495 | # UBI - Unsorted block images | ||
496 | # | ||
497 | # CONFIG_MTD_UBI is not set | ||
498 | |||
499 | # | ||
500 | # Parallel port support | ||
501 | # | ||
502 | # CONFIG_PARPORT is not set | ||
503 | |||
504 | # | ||
505 | # Plug and Play support | ||
506 | # | ||
507 | # CONFIG_PNPACPI is not set | ||
508 | |||
509 | # | ||
510 | # Block devices | ||
511 | # | ||
512 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
513 | # CONFIG_BLK_DEV_LOOP is not set | ||
514 | # CONFIG_BLK_DEV_NBD is not set | ||
515 | CONFIG_BLK_DEV_RAM=y | ||
516 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
517 | CONFIG_BLK_DEV_RAM_SIZE=4096 | ||
518 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | ||
519 | # CONFIG_CDROM_PKTCDVD is not set | ||
520 | # CONFIG_ATA_OVER_ETH is not set | ||
521 | |||
522 | # | ||
523 | # Misc devices | ||
524 | # | ||
525 | # CONFIG_IDE is not set | ||
526 | |||
527 | # | ||
528 | # SCSI device support | ||
529 | # | ||
530 | # CONFIG_RAID_ATTRS is not set | ||
531 | # CONFIG_SCSI is not set | ||
532 | # CONFIG_SCSI_NETLINK is not set | ||
533 | # CONFIG_ATA is not set | ||
534 | |||
535 | # | ||
536 | # Multi-device support (RAID and LVM) | ||
537 | # | ||
538 | # CONFIG_MD is not set | ||
539 | |||
540 | # | ||
541 | # Network device support | ||
542 | # | ||
543 | CONFIG_NETDEVICES=y | ||
544 | # CONFIG_DUMMY is not set | ||
545 | # CONFIG_BONDING is not set | ||
546 | # CONFIG_EQUALIZER is not set | ||
547 | # CONFIG_TUN is not set | ||
548 | CONFIG_PHYLIB=y | ||
549 | |||
550 | # | ||
551 | # MII PHY device drivers | ||
552 | # | ||
553 | # CONFIG_MARVELL_PHY is not set | ||
554 | # CONFIG_DAVICOM_PHY is not set | ||
555 | # CONFIG_QSEMI_PHY is not set | ||
556 | # CONFIG_LXT_PHY is not set | ||
557 | # CONFIG_CICADA_PHY is not set | ||
558 | # CONFIG_VITESSE_PHY is not set | ||
559 | # CONFIG_SMSC_PHY is not set | ||
560 | # CONFIG_BROADCOM_PHY is not set | ||
561 | # CONFIG_FIXED_PHY is not set | ||
562 | |||
563 | # | ||
564 | # Ethernet (10 or 100Mbit) | ||
565 | # | ||
566 | CONFIG_NET_ETHERNET=y | ||
567 | CONFIG_MII=y | ||
568 | # CONFIG_SMC91X is not set | ||
569 | CONFIG_BFIN_MAC=y | ||
570 | CONFIG_BFIN_MAC_USE_L1=y | ||
571 | CONFIG_BFIN_TX_DESC_NUM=10 | ||
572 | CONFIG_BFIN_RX_DESC_NUM=20 | ||
573 | # CONFIG_BFIN_MAC_RMII is not set | ||
574 | # CONFIG_SMSC911X is not set | ||
575 | # CONFIG_DM9000 is not set | ||
576 | CONFIG_NETDEV_1000=y | ||
577 | # CONFIG_AX88180 is not set | ||
578 | CONFIG_NETDEV_10000=y | ||
579 | |||
580 | # | ||
581 | # Wireless LAN | ||
582 | # | ||
583 | # CONFIG_WLAN_PRE80211 is not set | ||
584 | # CONFIG_WLAN_80211 is not set | ||
585 | # CONFIG_WAN is not set | ||
586 | # CONFIG_PPP is not set | ||
587 | # CONFIG_SLIP is not set | ||
588 | # CONFIG_SHAPER is not set | ||
589 | # CONFIG_NETCONSOLE is not set | ||
590 | # CONFIG_NETPOLL is not set | ||
591 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
592 | |||
593 | # | ||
594 | # ISDN subsystem | ||
595 | # | ||
596 | # CONFIG_ISDN is not set | ||
597 | |||
598 | # | ||
599 | # Telephony Support | ||
600 | # | ||
601 | # CONFIG_PHONE is not set | ||
602 | |||
603 | # | ||
604 | # Input device support | ||
605 | # | ||
606 | # CONFIG_INPUT is not set | ||
607 | |||
608 | # | ||
609 | # Hardware I/O ports | ||
610 | # | ||
611 | # CONFIG_SERIO is not set | ||
612 | # CONFIG_GAMEPORT is not set | ||
613 | |||
614 | # | ||
615 | # Character devices | ||
616 | # | ||
617 | # CONFIG_AD9960 is not set | ||
618 | # CONFIG_SPI_ADC_BF533 is not set | ||
619 | # CONFIG_BF5xx_PFLAGS is not set | ||
620 | # CONFIG_BF5xx_PPIFCD is not set | ||
621 | # CONFIG_BFIN_SIMPLE_TIMER is not set | ||
622 | # CONFIG_BF5xx_PPI is not set | ||
623 | CONFIG_BFIN_SPORT=y | ||
624 | # CONFIG_BFIN_TIMER_LATENCY is not set | ||
625 | # CONFIG_VT is not set | ||
626 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
627 | |||
628 | # | ||
629 | # Serial drivers | ||
630 | # | ||
631 | # CONFIG_SERIAL_8250 is not set | ||
632 | |||
633 | # | ||
634 | # Non-8250 serial port support | ||
635 | # | ||
636 | CONFIG_SERIAL_BFIN=y | ||
637 | CONFIG_SERIAL_BFIN_CONSOLE=y | ||
638 | CONFIG_SERIAL_BFIN_DMA=y | ||
639 | # CONFIG_SERIAL_BFIN_PIO is not set | ||
640 | CONFIG_SERIAL_BFIN_UART0=y | ||
641 | # CONFIG_BFIN_UART0_CTSRTS is not set | ||
642 | CONFIG_SERIAL_BFIN_UART1=y | ||
643 | # CONFIG_BFIN_UART1_CTSRTS is not set | ||
644 | CONFIG_SERIAL_CORE=y | ||
645 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
646 | # CONFIG_SERIAL_BFIN_SPORT is not set | ||
647 | CONFIG_UNIX98_PTYS=y | ||
648 | CONFIG_LEGACY_PTYS=y | ||
649 | CONFIG_LEGACY_PTY_COUNT=256 | ||
650 | |||
651 | # | ||
652 | # CAN, the car bus and industrial fieldbus | ||
653 | # | ||
654 | # CONFIG_CAN4LINUX is not set | ||
655 | |||
656 | # | ||
657 | # IPMI | ||
658 | # | ||
659 | # CONFIG_IPMI_HANDLER is not set | ||
660 | # CONFIG_WATCHDOG is not set | ||
661 | # CONFIG_HW_RANDOM is not set | ||
662 | # CONFIG_GEN_RTC is not set | ||
663 | # CONFIG_R3964 is not set | ||
664 | # CONFIG_RAW_DRIVER is not set | ||
665 | |||
666 | # | ||
667 | # TPM devices | ||
668 | # | ||
669 | # CONFIG_TCG_TPM is not set | ||
670 | # CONFIG_I2C is not set | ||
671 | |||
672 | # | ||
673 | # SPI support | ||
674 | # | ||
675 | # CONFIG_SPI is not set | ||
676 | # CONFIG_SPI_MASTER is not set | ||
677 | |||
678 | # | ||
679 | # Dallas's 1-wire bus | ||
680 | # | ||
681 | # CONFIG_W1 is not set | ||
682 | CONFIG_HWMON=y | ||
683 | # CONFIG_HWMON_VID is not set | ||
684 | # CONFIG_SENSORS_ABITUGURU is not set | ||
685 | # CONFIG_SENSORS_F71805F is not set | ||
686 | # CONFIG_SENSORS_PC87427 is not set | ||
687 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
688 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
689 | # CONFIG_SENSORS_VT1211 is not set | ||
690 | # CONFIG_SENSORS_W83627HF is not set | ||
691 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
692 | |||
693 | # | ||
694 | # Multifunction device drivers | ||
695 | # | ||
696 | # CONFIG_MFD_SM501 is not set | ||
697 | |||
698 | # | ||
699 | # Multimedia devices | ||
700 | # | ||
701 | # CONFIG_VIDEO_DEV is not set | ||
702 | # CONFIG_DVB_CORE is not set | ||
703 | CONFIG_DAB=y | ||
704 | |||
705 | # | ||
706 | # Graphics support | ||
707 | # | ||
708 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
709 | |||
710 | # | ||
711 | # Display device support | ||
712 | # | ||
713 | # CONFIG_DISPLAY_SUPPORT is not set | ||
714 | # CONFIG_VGASTATE is not set | ||
715 | # CONFIG_FB is not set | ||
716 | |||
717 | # | ||
718 | # Sound | ||
719 | # | ||
720 | # CONFIG_SOUND is not set | ||
721 | |||
722 | # | ||
723 | # USB support | ||
724 | # | ||
725 | CONFIG_USB_ARCH_HAS_HCD=y | ||
726 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
727 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
728 | # CONFIG_USB is not set | ||
729 | |||
730 | # | ||
731 | # Enable Host or Gadget support to see Inventra options | ||
732 | # | ||
733 | |||
734 | # | ||
735 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
736 | # | ||
737 | |||
738 | # | ||
739 | # USB Gadget Support | ||
740 | # | ||
741 | # CONFIG_USB_GADGET is not set | ||
742 | # CONFIG_MMC is not set | ||
743 | |||
744 | # | ||
745 | # LED devices | ||
746 | # | ||
747 | # CONFIG_NEW_LEDS is not set | ||
748 | |||
749 | # | ||
750 | # LED drivers | ||
751 | # | ||
752 | |||
753 | # | ||
754 | # LED Triggers | ||
755 | # | ||
756 | |||
757 | # | ||
758 | # InfiniBand support | ||
759 | # | ||
760 | |||
761 | # | ||
762 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
763 | # | ||
764 | |||
765 | # | ||
766 | # Real Time Clock | ||
767 | # | ||
768 | # CONFIG_RTC_CLASS is not set | ||
769 | |||
770 | # | ||
771 | # DMA Engine support | ||
772 | # | ||
773 | # CONFIG_DMA_ENGINE is not set | ||
774 | |||
775 | # | ||
776 | # DMA Clients | ||
777 | # | ||
778 | |||
779 | # | ||
780 | # DMA Devices | ||
781 | # | ||
782 | |||
783 | # | ||
784 | # PBX support | ||
785 | # | ||
786 | # CONFIG_PBX is not set | ||
787 | |||
788 | # | ||
789 | # File systems | ||
790 | # | ||
791 | CONFIG_EXT2_FS=y | ||
792 | CONFIG_EXT2_FS_XATTR=y | ||
793 | # CONFIG_EXT2_FS_POSIX_ACL is not set | ||
794 | # CONFIG_EXT2_FS_SECURITY is not set | ||
795 | # CONFIG_EXT3_FS is not set | ||
796 | # CONFIG_EXT4DEV_FS is not set | ||
797 | CONFIG_FS_MBCACHE=y | ||
798 | # CONFIG_REISERFS_FS is not set | ||
799 | # CONFIG_JFS_FS is not set | ||
800 | # CONFIG_FS_POSIX_ACL is not set | ||
801 | # CONFIG_XFS_FS is not set | ||
802 | # CONFIG_GFS2_FS is not set | ||
803 | # CONFIG_OCFS2_FS is not set | ||
804 | # CONFIG_MINIX_FS is not set | ||
805 | # CONFIG_ROMFS_FS is not set | ||
806 | CONFIG_INOTIFY=y | ||
807 | CONFIG_INOTIFY_USER=y | ||
808 | # CONFIG_QUOTA is not set | ||
809 | CONFIG_DNOTIFY=y | ||
810 | # CONFIG_AUTOFS_FS is not set | ||
811 | # CONFIG_AUTOFS4_FS is not set | ||
812 | # CONFIG_FUSE_FS is not set | ||
813 | |||
814 | # | ||
815 | # CD-ROM/DVD Filesystems | ||
816 | # | ||
817 | # CONFIG_ISO9660_FS is not set | ||
818 | # CONFIG_UDF_FS is not set | ||
819 | |||
820 | # | ||
821 | # DOS/FAT/NT Filesystems | ||
822 | # | ||
823 | # CONFIG_MSDOS_FS is not set | ||
824 | # CONFIG_VFAT_FS is not set | ||
825 | # CONFIG_NTFS_FS is not set | ||
826 | |||
827 | # | ||
828 | # Pseudo filesystems | ||
829 | # | ||
830 | CONFIG_PROC_FS=y | ||
831 | CONFIG_PROC_SYSCTL=y | ||
832 | CONFIG_SYSFS=y | ||
833 | # CONFIG_TMPFS is not set | ||
834 | # CONFIG_HUGETLB_PAGE is not set | ||
835 | CONFIG_RAMFS=y | ||
836 | # CONFIG_CONFIGFS_FS is not set | ||
837 | |||
838 | # | ||
839 | # Miscellaneous filesystems | ||
840 | # | ||
841 | # CONFIG_ADFS_FS is not set | ||
842 | # CONFIG_AFFS_FS is not set | ||
843 | # CONFIG_HFS_FS is not set | ||
844 | # CONFIG_HFSPLUS_FS is not set | ||
845 | # CONFIG_BEFS_FS is not set | ||
846 | # CONFIG_BFS_FS is not set | ||
847 | # CONFIG_EFS_FS is not set | ||
848 | # CONFIG_YAFFS_FS is not set | ||
849 | # CONFIG_JFFS2_FS is not set | ||
850 | # CONFIG_CRAMFS is not set | ||
851 | # CONFIG_VXFS_FS is not set | ||
852 | # CONFIG_HPFS_FS is not set | ||
853 | # CONFIG_QNX4FS_FS is not set | ||
854 | # CONFIG_SYSV_FS is not set | ||
855 | # CONFIG_UFS_FS is not set | ||
856 | |||
857 | # | ||
858 | # Network File Systems | ||
859 | # | ||
860 | # CONFIG_NFS_FS is not set | ||
861 | # CONFIG_NFSD is not set | ||
862 | # CONFIG_SMB_FS is not set | ||
863 | # CONFIG_CIFS is not set | ||
864 | # CONFIG_NCP_FS is not set | ||
865 | # CONFIG_CODA_FS is not set | ||
866 | # CONFIG_AFS_FS is not set | ||
867 | # CONFIG_9P_FS is not set | ||
868 | |||
869 | # | ||
870 | # Partition Types | ||
871 | # | ||
872 | # CONFIG_PARTITION_ADVANCED is not set | ||
873 | CONFIG_MSDOS_PARTITION=y | ||
874 | |||
875 | # | ||
876 | # Native Language Support | ||
877 | # | ||
878 | # CONFIG_NLS is not set | ||
879 | |||
880 | # | ||
881 | # Distributed Lock Manager | ||
882 | # | ||
883 | # CONFIG_DLM is not set | ||
884 | |||
885 | # | ||
886 | # Profiling support | ||
887 | # | ||
888 | # CONFIG_PROFILING is not set | ||
889 | |||
890 | # | ||
891 | # Kernel hacking | ||
892 | # | ||
893 | # CONFIG_PRINTK_TIME is not set | ||
894 | CONFIG_ENABLE_MUST_CHECK=y | ||
895 | # CONFIG_MAGIC_SYSRQ is not set | ||
896 | # CONFIG_UNUSED_SYMBOLS is not set | ||
897 | # CONFIG_DEBUG_FS is not set | ||
898 | # CONFIG_HEADERS_CHECK is not set | ||
899 | # CONFIG_DEBUG_KERNEL is not set | ||
900 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
901 | # CONFIG_DEBUG_MMRS is not set | ||
902 | # CONFIG_DEBUG_HUNT_FOR_ZERO is not set | ||
903 | CONFIG_DEBUG_BFIN_HWTRACE_ON=y | ||
904 | CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF=y | ||
905 | # CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE is not set | ||
906 | # CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_TWO is not set | ||
907 | CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION=0 | ||
908 | # CONFIG_DEBUG_BFIN_HWTRACE_EXPAND is not set | ||
909 | # CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set | ||
910 | # CONFIG_EARLY_PRINTK is not set | ||
911 | CONFIG_CPLB_INFO=y | ||
912 | CONFIG_ACCESS_CHECK=y | ||
913 | |||
914 | # | ||
915 | # Security options | ||
916 | # | ||
917 | # CONFIG_KEYS is not set | ||
918 | CONFIG_SECURITY=y | ||
919 | # CONFIG_SECURITY_NETWORK is not set | ||
920 | CONFIG_SECURITY_CAPABILITIES=y | ||
921 | |||
922 | # | ||
923 | # Cryptographic options | ||
924 | # | ||
925 | # CONFIG_CRYPTO is not set | ||
926 | |||
927 | # | ||
928 | # Library routines | ||
929 | # | ||
930 | CONFIG_BITREVERSE=y | ||
931 | CONFIG_CRC_CCITT=m | ||
932 | # CONFIG_CRC16 is not set | ||
933 | # CONFIG_CRC_ITU_T is not set | ||
934 | CONFIG_CRC32=y | ||
935 | # CONFIG_LIBCRC32C is not set | ||
936 | CONFIG_ZLIB_INFLATE=y | ||
937 | CONFIG_PLIST=y | ||
938 | CONFIG_HAS_IOMEM=y | ||
939 | CONFIG_HAS_IOPORT=y | ||
940 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/blackfin/configs/CM-BF537U_defconfig b/arch/blackfin/configs/CM-BF537U_defconfig new file mode 100644 index 000000000000..2694d06c5bde --- /dev/null +++ b/arch/blackfin/configs/CM-BF537U_defconfig | |||
@@ -0,0 +1,940 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.22.16 | ||
4 | # | ||
5 | # CONFIG_MMU is not set | ||
6 | # CONFIG_FPU is not set | ||
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
8 | # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set | ||
9 | CONFIG_BLACKFIN=y | ||
10 | CONFIG_ZONE_DMA=y | ||
11 | CONFIG_SEMAPHORE_SLEEPERS=y | ||
12 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
13 | CONFIG_GENERIC_HWEIGHT=y | ||
14 | CONFIG_GENERIC_HARDIRQS=y | ||
15 | CONFIG_GENERIC_IRQ_PROBE=y | ||
16 | CONFIG_GENERIC_TIME=y | ||
17 | CONFIG_GENERIC_GPIO=y | ||
18 | CONFIG_FORCE_MAX_ZONEORDER=14 | ||
19 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
20 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
21 | |||
22 | # | ||
23 | # Code maturity level options | ||
24 | # | ||
25 | CONFIG_EXPERIMENTAL=y | ||
26 | CONFIG_BROKEN_ON_SMP=y | ||
27 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
28 | |||
29 | # | ||
30 | # General setup | ||
31 | # | ||
32 | CONFIG_LOCALVERSION="" | ||
33 | CONFIG_LOCALVERSION_AUTO=y | ||
34 | CONFIG_SYSVIPC=y | ||
35 | # CONFIG_IPC_NS is not set | ||
36 | CONFIG_SYSVIPC_SYSCTL=y | ||
37 | # CONFIG_POSIX_MQUEUE is not set | ||
38 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
39 | # CONFIG_TASKSTATS is not set | ||
40 | # CONFIG_UTS_NS is not set | ||
41 | # CONFIG_AUDIT is not set | ||
42 | # CONFIG_IKCONFIG is not set | ||
43 | CONFIG_LOG_BUF_SHIFT=14 | ||
44 | CONFIG_SYSFS_DEPRECATED=y | ||
45 | # CONFIG_RELAY is not set | ||
46 | # CONFIG_BLK_DEV_INITRD is not set | ||
47 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
48 | CONFIG_SYSCTL=y | ||
49 | CONFIG_EMBEDDED=y | ||
50 | # CONFIG_UID16 is not set | ||
51 | CONFIG_SYSCTL_SYSCALL=y | ||
52 | CONFIG_KALLSYMS=y | ||
53 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
54 | # CONFIG_HOTPLUG is not set | ||
55 | CONFIG_PRINTK=y | ||
56 | CONFIG_BUG=y | ||
57 | CONFIG_ELF_CORE=y | ||
58 | CONFIG_BASE_FULL=y | ||
59 | CONFIG_FUTEX=y | ||
60 | CONFIG_ANON_INODES=y | ||
61 | CONFIG_EPOLL=y | ||
62 | CONFIG_SIGNALFD=y | ||
63 | CONFIG_EVENTFD=y | ||
64 | CONFIG_VM_EVENT_COUNTERS=y | ||
65 | CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3 | ||
66 | # CONFIG_NP2 is not set | ||
67 | CONFIG_SLAB=y | ||
68 | # CONFIG_SLUB is not set | ||
69 | # CONFIG_SLOB is not set | ||
70 | CONFIG_RT_MUTEXES=y | ||
71 | CONFIG_TINY_SHMEM=y | ||
72 | CONFIG_BASE_SMALL=0 | ||
73 | |||
74 | # | ||
75 | # Loadable module support | ||
76 | # | ||
77 | CONFIG_MODULES=y | ||
78 | CONFIG_MODULE_UNLOAD=y | ||
79 | # CONFIG_MODULE_FORCE_UNLOAD is not set | ||
80 | # CONFIG_MODVERSIONS is not set | ||
81 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
82 | CONFIG_KMOD=y | ||
83 | |||
84 | # | ||
85 | # Block layer | ||
86 | # | ||
87 | CONFIG_BLOCK=y | ||
88 | # CONFIG_LBD is not set | ||
89 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
90 | # CONFIG_LSF is not set | ||
91 | |||
92 | # | ||
93 | # IO Schedulers | ||
94 | # | ||
95 | CONFIG_IOSCHED_NOOP=y | ||
96 | # CONFIG_IOSCHED_AS is not set | ||
97 | # CONFIG_IOSCHED_DEADLINE is not set | ||
98 | CONFIG_IOSCHED_CFQ=y | ||
99 | # CONFIG_DEFAULT_AS is not set | ||
100 | # CONFIG_DEFAULT_DEADLINE is not set | ||
101 | # CONFIG_DEFAULT_CFQ is not set | ||
102 | CONFIG_DEFAULT_NOOP=y | ||
103 | CONFIG_DEFAULT_IOSCHED="noop" | ||
104 | CONFIG_PREEMPT_NONE=y | ||
105 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
106 | # CONFIG_PREEMPT is not set | ||
107 | |||
108 | # | ||
109 | # Blackfin Processor Options | ||
110 | # | ||
111 | |||
112 | # | ||
113 | # Processor and Board Settings | ||
114 | # | ||
115 | # CONFIG_BF522 is not set | ||
116 | # CONFIG_BF523 is not set | ||
117 | # CONFIG_BF524 is not set | ||
118 | # CONFIG_BF525 is not set | ||
119 | # CONFIG_BF526 is not set | ||
120 | # CONFIG_BF527 is not set | ||
121 | # CONFIG_BF531 is not set | ||
122 | # CONFIG_BF532 is not set | ||
123 | # CONFIG_BF533 is not set | ||
124 | # CONFIG_BF534 is not set | ||
125 | # CONFIG_BF536 is not set | ||
126 | CONFIG_BF537=y | ||
127 | # CONFIG_BF542 is not set | ||
128 | # CONFIG_BF544 is not set | ||
129 | # CONFIG_BF547 is not set | ||
130 | # CONFIG_BF548 is not set | ||
131 | # CONFIG_BF549 is not set | ||
132 | # CONFIG_BF561 is not set | ||
133 | # CONFIG_BF_REV_0_0 is not set | ||
134 | # CONFIG_BF_REV_0_1 is not set | ||
135 | CONFIG_BF_REV_0_2=y | ||
136 | # CONFIG_BF_REV_0_3 is not set | ||
137 | # CONFIG_BF_REV_0_4 is not set | ||
138 | # CONFIG_BF_REV_0_5 is not set | ||
139 | # CONFIG_BF_REV_ANY is not set | ||
140 | # CONFIG_BF_REV_NONE is not set | ||
141 | CONFIG_BF53x=y | ||
142 | CONFIG_BFIN_SINGLE_CORE=y | ||
143 | CONFIG_MEM_MT48LC16M16A2TG_75=y | ||
144 | CONFIG_IRQ_PLL_WAKEUP=7 | ||
145 | CONFIG_IRQ_RTC=8 | ||
146 | CONFIG_IRQ_PPI=8 | ||
147 | CONFIG_IRQ_SPORT0_RX=9 | ||
148 | CONFIG_IRQ_SPORT0_TX=9 | ||
149 | CONFIG_IRQ_SPORT1_RX=9 | ||
150 | CONFIG_IRQ_SPORT1_TX=9 | ||
151 | CONFIG_IRQ_TWI=10 | ||
152 | CONFIG_IRQ_SPI=10 | ||
153 | CONFIG_IRQ_UART0_RX=10 | ||
154 | CONFIG_IRQ_UART0_TX=10 | ||
155 | CONFIG_IRQ_UART1_RX=10 | ||
156 | CONFIG_IRQ_UART1_TX=10 | ||
157 | CONFIG_IRQ_MAC_RX=11 | ||
158 | CONFIG_IRQ_MAC_TX=11 | ||
159 | CONFIG_IRQ_TMR0=12 | ||
160 | CONFIG_IRQ_TMR1=12 | ||
161 | CONFIG_IRQ_TMR2=12 | ||
162 | CONFIG_IRQ_TMR3=12 | ||
163 | CONFIG_IRQ_TMR4=12 | ||
164 | CONFIG_IRQ_TMR5=12 | ||
165 | CONFIG_IRQ_TMR6=12 | ||
166 | CONFIG_IRQ_TMR7=12 | ||
167 | CONFIG_IRQ_PORTG_INTB=12 | ||
168 | CONFIG_IRQ_MEM_DMA0=13 | ||
169 | CONFIG_IRQ_MEM_DMA1=13 | ||
170 | CONFIG_IRQ_WATCH=13 | ||
171 | # CONFIG_BFIN537_STAMP is not set | ||
172 | CONFIG_BFIN537_BLUETECHNIX_CM=y | ||
173 | # CONFIG_PNAV10 is not set | ||
174 | # CONFIG_CAMSIG_MINOTAUR is not set | ||
175 | # CONFIG_GENERIC_BF537_BOARD is not set | ||
176 | |||
177 | # | ||
178 | # BF537 Specific Configuration | ||
179 | # | ||
180 | |||
181 | # | ||
182 | # Interrupt Priority Assignment | ||
183 | # | ||
184 | |||
185 | # | ||
186 | # Priority | ||
187 | # | ||
188 | CONFIG_IRQ_DMA_ERROR=7 | ||
189 | CONFIG_IRQ_ERROR=7 | ||
190 | CONFIG_IRQ_CAN_RX=11 | ||
191 | CONFIG_IRQ_CAN_TX=11 | ||
192 | CONFIG_IRQ_PROG_INTA=12 | ||
193 | |||
194 | # | ||
195 | # Board customizations | ||
196 | # | ||
197 | # CONFIG_CMDLINE_BOOL is not set | ||
198 | |||
199 | # | ||
200 | # Clock/PLL Setup | ||
201 | # | ||
202 | CONFIG_CLKIN_HZ=30000000 | ||
203 | # CONFIG_BFIN_KERNEL_CLOCK is not set | ||
204 | CONFIG_MAX_VCO_HZ=600000000 | ||
205 | CONFIG_MIN_VCO_HZ=50000000 | ||
206 | CONFIG_MAX_SCLK_HZ=133333333 | ||
207 | CONFIG_MIN_SCLK_HZ=27000000 | ||
208 | |||
209 | # | ||
210 | # Kernel Timer/Scheduler | ||
211 | # | ||
212 | # CONFIG_HZ_100 is not set | ||
213 | CONFIG_HZ_250=y | ||
214 | # CONFIG_HZ_300 is not set | ||
215 | # CONFIG_HZ_1000 is not set | ||
216 | CONFIG_HZ=250 | ||
217 | |||
218 | # | ||
219 | # Memory Setup | ||
220 | # | ||
221 | CONFIG_MAX_MEM_SIZE=32 | ||
222 | CONFIG_MEM_ADD_WIDTH=9 | ||
223 | CONFIG_BOOT_LOAD=0x1000 | ||
224 | CONFIG_BFIN_SCRATCH_REG_RETN=y | ||
225 | # CONFIG_BFIN_SCRATCH_REG_RETE is not set | ||
226 | # CONFIG_BFIN_SCRATCH_REG_CYCLES is not set | ||
227 | |||
228 | # | ||
229 | # Blackfin Kernel Optimizations | ||
230 | # | ||
231 | |||
232 | # | ||
233 | # Memory Optimizations | ||
234 | # | ||
235 | CONFIG_I_ENTRY_L1=y | ||
236 | CONFIG_EXCPT_IRQ_SYSC_L1=y | ||
237 | CONFIG_DO_IRQ_L1=y | ||
238 | CONFIG_CORE_TIMER_IRQ_L1=y | ||
239 | CONFIG_IDLE_L1=y | ||
240 | CONFIG_SCHEDULE_L1=y | ||
241 | CONFIG_ARITHMETIC_OPS_L1=y | ||
242 | CONFIG_ACCESS_OK_L1=y | ||
243 | CONFIG_MEMSET_L1=y | ||
244 | CONFIG_MEMCPY_L1=y | ||
245 | CONFIG_SYS_BFIN_SPINLOCK_L1=y | ||
246 | CONFIG_IP_CHECKSUM_L1=y | ||
247 | CONFIG_CACHELINE_ALIGNED_L1=y | ||
248 | CONFIG_SYSCALL_TAB_L1=y | ||
249 | CONFIG_CPLB_SWITCH_TAB_L1=y | ||
250 | CONFIG_RAMKERNEL=y | ||
251 | # CONFIG_ROMKERNEL is not set | ||
252 | CONFIG_SELECT_MEMORY_MODEL=y | ||
253 | CONFIG_FLATMEM_MANUAL=y | ||
254 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
255 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
256 | CONFIG_FLATMEM=y | ||
257 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
258 | # CONFIG_SPARSEMEM_STATIC is not set | ||
259 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
260 | # CONFIG_RESOURCES_64BIT is not set | ||
261 | CONFIG_ZONE_DMA_FLAG=1 | ||
262 | CONFIG_LARGE_ALLOCS=y | ||
263 | # CONFIG_BFIN_GPTIMERS is not set | ||
264 | CONFIG_BFIN_DMA_5XX=y | ||
265 | # CONFIG_DMA_UNCACHED_2M is not set | ||
266 | CONFIG_DMA_UNCACHED_1M=y | ||
267 | # CONFIG_DMA_UNCACHED_NONE is not set | ||
268 | |||
269 | # | ||
270 | # Cache Support | ||
271 | # | ||
272 | CONFIG_BFIN_ICACHE=y | ||
273 | CONFIG_BFIN_DCACHE=y | ||
274 | # CONFIG_BFIN_DCACHE_BANKA is not set | ||
275 | # CONFIG_BFIN_ICACHE_LOCK is not set | ||
276 | CONFIG_BFIN_WB=y | ||
277 | # CONFIG_BFIN_WT is not set | ||
278 | CONFIG_L1_MAX_PIECE=16 | ||
279 | # CONFIG_MPU is not set | ||
280 | |||
281 | # | ||
282 | # Asynchonous Memory Configuration | ||
283 | # | ||
284 | |||
285 | # | ||
286 | # EBIU_AMGCTL Global Control | ||
287 | # | ||
288 | CONFIG_C_AMCKEN=y | ||
289 | CONFIG_C_CDPRIO=y | ||
290 | # CONFIG_C_AMBEN is not set | ||
291 | # CONFIG_C_AMBEN_B0 is not set | ||
292 | # CONFIG_C_AMBEN_B0_B1 is not set | ||
293 | # CONFIG_C_AMBEN_B0_B1_B2 is not set | ||
294 | CONFIG_C_AMBEN_ALL=y | ||
295 | |||
296 | # | ||
297 | # EBIU_AMBCTL Control | ||
298 | # | ||
299 | CONFIG_BANK_0=0x7BB0 | ||
300 | CONFIG_BANK_1=0x7BB0 | ||
301 | CONFIG_BANK_2=0xFFC3 | ||
302 | CONFIG_BANK_3=0xFFC3 | ||
303 | |||
304 | # | ||
305 | # Bus options (PCI, PCMCIA, EISA, MCA, ISA) | ||
306 | # | ||
307 | # CONFIG_PCI is not set | ||
308 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
309 | |||
310 | # | ||
311 | # PCCARD (PCMCIA/CardBus) support | ||
312 | # | ||
313 | |||
314 | # | ||
315 | # Executable file formats | ||
316 | # | ||
317 | CONFIG_BINFMT_ELF_FDPIC=y | ||
318 | CONFIG_BINFMT_FLAT=y | ||
319 | CONFIG_BINFMT_ZFLAT=y | ||
320 | CONFIG_BINFMT_SHARED_FLAT=y | ||
321 | # CONFIG_BINFMT_MISC is not set | ||
322 | |||
323 | # | ||
324 | # Power management options | ||
325 | # | ||
326 | # CONFIG_PM is not set | ||
327 | # CONFIG_PM_WAKEUP_BY_GPIO is not set | ||
328 | |||
329 | # | ||
330 | # CPU Frequency scaling | ||
331 | # | ||
332 | # CONFIG_CPU_FREQ is not set | ||
333 | |||
334 | # | ||
335 | # Networking | ||
336 | # | ||
337 | CONFIG_NET=y | ||
338 | |||
339 | # | ||
340 | # Networking options | ||
341 | # | ||
342 | CONFIG_PACKET=y | ||
343 | # CONFIG_PACKET_MMAP is not set | ||
344 | CONFIG_UNIX=y | ||
345 | CONFIG_XFRM=y | ||
346 | # CONFIG_XFRM_USER is not set | ||
347 | # CONFIG_XFRM_SUB_POLICY is not set | ||
348 | # CONFIG_XFRM_MIGRATE is not set | ||
349 | # CONFIG_NET_KEY is not set | ||
350 | CONFIG_INET=y | ||
351 | # CONFIG_IP_MULTICAST is not set | ||
352 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
353 | CONFIG_IP_FIB_HASH=y | ||
354 | # CONFIG_IP_PNP is not set | ||
355 | # CONFIG_NET_IPIP is not set | ||
356 | # CONFIG_NET_IPGRE is not set | ||
357 | # CONFIG_ARPD is not set | ||
358 | CONFIG_SYN_COOKIES=y | ||
359 | # CONFIG_INET_AH is not set | ||
360 | # CONFIG_INET_ESP is not set | ||
361 | # CONFIG_INET_IPCOMP is not set | ||
362 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
363 | # CONFIG_INET_TUNNEL is not set | ||
364 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
365 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
366 | CONFIG_INET_XFRM_MODE_BEET=y | ||
367 | CONFIG_INET_DIAG=y | ||
368 | CONFIG_INET_TCP_DIAG=y | ||
369 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
370 | CONFIG_TCP_CONG_CUBIC=y | ||
371 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
372 | # CONFIG_TCP_MD5SIG is not set | ||
373 | # CONFIG_IPV6 is not set | ||
374 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
375 | # CONFIG_INET6_TUNNEL is not set | ||
376 | # CONFIG_NETLABEL is not set | ||
377 | # CONFIG_NETWORK_SECMARK is not set | ||
378 | # CONFIG_NETFILTER is not set | ||
379 | # CONFIG_IP_DCCP is not set | ||
380 | # CONFIG_IP_SCTP is not set | ||
381 | # CONFIG_TIPC is not set | ||
382 | # CONFIG_ATM is not set | ||
383 | # CONFIG_BRIDGE is not set | ||
384 | # CONFIG_VLAN_8021Q is not set | ||
385 | # CONFIG_DECNET is not set | ||
386 | # CONFIG_LLC2 is not set | ||
387 | # CONFIG_IPX is not set | ||
388 | # CONFIG_ATALK is not set | ||
389 | # CONFIG_X25 is not set | ||
390 | # CONFIG_LAPB is not set | ||
391 | # CONFIG_ECONET is not set | ||
392 | # CONFIG_WAN_ROUTER is not set | ||
393 | |||
394 | # | ||
395 | # QoS and/or fair queueing | ||
396 | # | ||
397 | # CONFIG_NET_SCHED is not set | ||
398 | |||
399 | # | ||
400 | # Network testing | ||
401 | # | ||
402 | # CONFIG_NET_PKTGEN is not set | ||
403 | # CONFIG_HAMRADIO is not set | ||
404 | # CONFIG_IRDA is not set | ||
405 | # CONFIG_BT is not set | ||
406 | # CONFIG_AF_RXRPC is not set | ||
407 | |||
408 | # | ||
409 | # Wireless | ||
410 | # | ||
411 | # CONFIG_CFG80211 is not set | ||
412 | # CONFIG_WIRELESS_EXT is not set | ||
413 | # CONFIG_MAC80211 is not set | ||
414 | # CONFIG_IEEE80211 is not set | ||
415 | # CONFIG_RFKILL is not set | ||
416 | |||
417 | # | ||
418 | # Device Drivers | ||
419 | # | ||
420 | |||
421 | # | ||
422 | # Generic Driver Options | ||
423 | # | ||
424 | CONFIG_STANDALONE=y | ||
425 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
426 | # CONFIG_SYS_HYPERVISOR is not set | ||
427 | |||
428 | # | ||
429 | # Connector - unified userspace <-> kernelspace linker | ||
430 | # | ||
431 | # CONFIG_CONNECTOR is not set | ||
432 | CONFIG_MTD=y | ||
433 | # CONFIG_MTD_DEBUG is not set | ||
434 | # CONFIG_MTD_CONCAT is not set | ||
435 | CONFIG_MTD_PARTITIONS=y | ||
436 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
437 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
438 | |||
439 | # | ||
440 | # User Modules And Translation Layers | ||
441 | # | ||
442 | CONFIG_MTD_CHAR=y | ||
443 | CONFIG_MTD_BLKDEVS=y | ||
444 | CONFIG_MTD_BLOCK=y | ||
445 | # CONFIG_FTL is not set | ||
446 | # CONFIG_NFTL is not set | ||
447 | # CONFIG_INFTL is not set | ||
448 | # CONFIG_RFD_FTL is not set | ||
449 | # CONFIG_SSFDC is not set | ||
450 | |||
451 | # | ||
452 | # RAM/ROM/Flash chip drivers | ||
453 | # | ||
454 | # CONFIG_MTD_CFI is not set | ||
455 | # CONFIG_MTD_JEDECPROBE is not set | ||
456 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
457 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
458 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
459 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
460 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
461 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
462 | CONFIG_MTD_CFI_I1=y | ||
463 | CONFIG_MTD_CFI_I2=y | ||
464 | # CONFIG_MTD_CFI_I4 is not set | ||
465 | # CONFIG_MTD_CFI_I8 is not set | ||
466 | CONFIG_MTD_RAM=y | ||
467 | # CONFIG_MTD_ROM is not set | ||
468 | # CONFIG_MTD_ABSENT is not set | ||
469 | |||
470 | # | ||
471 | # Mapping drivers for chip access | ||
472 | # | ||
473 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
474 | CONFIG_MTD_UCLINUX=y | ||
475 | # CONFIG_MTD_PLATRAM is not set | ||
476 | |||
477 | # | ||
478 | # Self-contained MTD device drivers | ||
479 | # | ||
480 | # CONFIG_MTD_SLRAM is not set | ||
481 | # CONFIG_MTD_PHRAM is not set | ||
482 | # CONFIG_MTD_MTDRAM is not set | ||
483 | # CONFIG_MTD_BLOCK2MTD is not set | ||
484 | |||
485 | # | ||
486 | # Disk-On-Chip Device Drivers | ||
487 | # | ||
488 | # CONFIG_MTD_DOC2000 is not set | ||
489 | # CONFIG_MTD_DOC2001 is not set | ||
490 | # CONFIG_MTD_DOC2001PLUS is not set | ||
491 | # CONFIG_MTD_NAND is not set | ||
492 | # CONFIG_MTD_ONENAND is not set | ||
493 | |||
494 | # | ||
495 | # UBI - Unsorted block images | ||
496 | # | ||
497 | # CONFIG_MTD_UBI is not set | ||
498 | |||
499 | # | ||
500 | # Parallel port support | ||
501 | # | ||
502 | # CONFIG_PARPORT is not set | ||
503 | |||
504 | # | ||
505 | # Plug and Play support | ||
506 | # | ||
507 | # CONFIG_PNPACPI is not set | ||
508 | |||
509 | # | ||
510 | # Block devices | ||
511 | # | ||
512 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
513 | # CONFIG_BLK_DEV_LOOP is not set | ||
514 | # CONFIG_BLK_DEV_NBD is not set | ||
515 | CONFIG_BLK_DEV_RAM=y | ||
516 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
517 | CONFIG_BLK_DEV_RAM_SIZE=4096 | ||
518 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | ||
519 | # CONFIG_CDROM_PKTCDVD is not set | ||
520 | # CONFIG_ATA_OVER_ETH is not set | ||
521 | |||
522 | # | ||
523 | # Misc devices | ||
524 | # | ||
525 | # CONFIG_IDE is not set | ||
526 | |||
527 | # | ||
528 | # SCSI device support | ||
529 | # | ||
530 | # CONFIG_RAID_ATTRS is not set | ||
531 | # CONFIG_SCSI is not set | ||
532 | # CONFIG_SCSI_NETLINK is not set | ||
533 | # CONFIG_ATA is not set | ||
534 | |||
535 | # | ||
536 | # Multi-device support (RAID and LVM) | ||
537 | # | ||
538 | # CONFIG_MD is not set | ||
539 | |||
540 | # | ||
541 | # Network device support | ||
542 | # | ||
543 | CONFIG_NETDEVICES=y | ||
544 | # CONFIG_DUMMY is not set | ||
545 | # CONFIG_BONDING is not set | ||
546 | # CONFIG_EQUALIZER is not set | ||
547 | # CONFIG_TUN is not set | ||
548 | # CONFIG_PHYLIB is not set | ||
549 | |||
550 | # | ||
551 | # Ethernet (10 or 100Mbit) | ||
552 | # | ||
553 | CONFIG_NET_ETHERNET=y | ||
554 | CONFIG_MII=y | ||
555 | CONFIG_SMC91X=y | ||
556 | # CONFIG_BFIN_MAC is not set | ||
557 | # CONFIG_SMSC911X is not set | ||
558 | # CONFIG_DM9000 is not set | ||
559 | CONFIG_NETDEV_1000=y | ||
560 | # CONFIG_AX88180 is not set | ||
561 | CONFIG_NETDEV_10000=y | ||
562 | |||
563 | # | ||
564 | # Wireless LAN | ||
565 | # | ||
566 | # CONFIG_WLAN_PRE80211 is not set | ||
567 | # CONFIG_WLAN_80211 is not set | ||
568 | # CONFIG_WAN is not set | ||
569 | # CONFIG_PPP is not set | ||
570 | # CONFIG_SLIP is not set | ||
571 | # CONFIG_SHAPER is not set | ||
572 | # CONFIG_NETCONSOLE is not set | ||
573 | # CONFIG_NETPOLL is not set | ||
574 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
575 | |||
576 | # | ||
577 | # ISDN subsystem | ||
578 | # | ||
579 | # CONFIG_ISDN is not set | ||
580 | |||
581 | # | ||
582 | # Telephony Support | ||
583 | # | ||
584 | # CONFIG_PHONE is not set | ||
585 | |||
586 | # | ||
587 | # Input device support | ||
588 | # | ||
589 | # CONFIG_INPUT is not set | ||
590 | |||
591 | # | ||
592 | # Hardware I/O ports | ||
593 | # | ||
594 | # CONFIG_SERIO is not set | ||
595 | # CONFIG_GAMEPORT is not set | ||
596 | |||
597 | # | ||
598 | # Character devices | ||
599 | # | ||
600 | # CONFIG_AD9960 is not set | ||
601 | # CONFIG_SPI_ADC_BF533 is not set | ||
602 | # CONFIG_BF5xx_PFLAGS is not set | ||
603 | # CONFIG_BF5xx_PPIFCD is not set | ||
604 | # CONFIG_BFIN_SIMPLE_TIMER is not set | ||
605 | # CONFIG_BF5xx_PPI is not set | ||
606 | CONFIG_BFIN_SPORT=y | ||
607 | # CONFIG_BFIN_TIMER_LATENCY is not set | ||
608 | # CONFIG_VT is not set | ||
609 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
610 | |||
611 | # | ||
612 | # Serial drivers | ||
613 | # | ||
614 | # CONFIG_SERIAL_8250 is not set | ||
615 | |||
616 | # | ||
617 | # Non-8250 serial port support | ||
618 | # | ||
619 | CONFIG_SERIAL_BFIN=y | ||
620 | CONFIG_SERIAL_BFIN_CONSOLE=y | ||
621 | CONFIG_SERIAL_BFIN_DMA=y | ||
622 | # CONFIG_SERIAL_BFIN_PIO is not set | ||
623 | CONFIG_SERIAL_BFIN_UART0=y | ||
624 | # CONFIG_BFIN_UART0_CTSRTS is not set | ||
625 | CONFIG_SERIAL_BFIN_UART1=y | ||
626 | # CONFIG_BFIN_UART1_CTSRTS is not set | ||
627 | CONFIG_SERIAL_CORE=y | ||
628 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
629 | # CONFIG_SERIAL_BFIN_SPORT is not set | ||
630 | CONFIG_UNIX98_PTYS=y | ||
631 | CONFIG_LEGACY_PTYS=y | ||
632 | CONFIG_LEGACY_PTY_COUNT=256 | ||
633 | |||
634 | # | ||
635 | # CAN, the car bus and industrial fieldbus | ||
636 | # | ||
637 | # CONFIG_CAN4LINUX is not set | ||
638 | |||
639 | # | ||
640 | # IPMI | ||
641 | # | ||
642 | # CONFIG_IPMI_HANDLER is not set | ||
643 | # CONFIG_WATCHDOG is not set | ||
644 | # CONFIG_HW_RANDOM is not set | ||
645 | # CONFIG_GEN_RTC is not set | ||
646 | # CONFIG_R3964 is not set | ||
647 | # CONFIG_RAW_DRIVER is not set | ||
648 | |||
649 | # | ||
650 | # TPM devices | ||
651 | # | ||
652 | # CONFIG_TCG_TPM is not set | ||
653 | # CONFIG_I2C is not set | ||
654 | |||
655 | # | ||
656 | # SPI support | ||
657 | # | ||
658 | # CONFIG_SPI is not set | ||
659 | # CONFIG_SPI_MASTER is not set | ||
660 | |||
661 | # | ||
662 | # Dallas's 1-wire bus | ||
663 | # | ||
664 | # CONFIG_W1 is not set | ||
665 | CONFIG_HWMON=y | ||
666 | # CONFIG_HWMON_VID is not set | ||
667 | # CONFIG_SENSORS_ABITUGURU is not set | ||
668 | # CONFIG_SENSORS_F71805F is not set | ||
669 | # CONFIG_SENSORS_PC87427 is not set | ||
670 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
671 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
672 | # CONFIG_SENSORS_VT1211 is not set | ||
673 | # CONFIG_SENSORS_W83627HF is not set | ||
674 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
675 | |||
676 | # | ||
677 | # Multifunction device drivers | ||
678 | # | ||
679 | # CONFIG_MFD_SM501 is not set | ||
680 | |||
681 | # | ||
682 | # Multimedia devices | ||
683 | # | ||
684 | # CONFIG_VIDEO_DEV is not set | ||
685 | # CONFIG_DVB_CORE is not set | ||
686 | CONFIG_DAB=y | ||
687 | |||
688 | # | ||
689 | # Graphics support | ||
690 | # | ||
691 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
692 | |||
693 | # | ||
694 | # Display device support | ||
695 | # | ||
696 | # CONFIG_DISPLAY_SUPPORT is not set | ||
697 | # CONFIG_VGASTATE is not set | ||
698 | # CONFIG_FB is not set | ||
699 | |||
700 | # | ||
701 | # Sound | ||
702 | # | ||
703 | # CONFIG_SOUND is not set | ||
704 | |||
705 | # | ||
706 | # USB support | ||
707 | # | ||
708 | CONFIG_USB_ARCH_HAS_HCD=y | ||
709 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
710 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
711 | # CONFIG_USB is not set | ||
712 | # CONFIG_USB_MUSB_HDRC is not set | ||
713 | # CONFIG_USB_GADGET_MUSB_HDRC is not set | ||
714 | |||
715 | # | ||
716 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
717 | # | ||
718 | |||
719 | # | ||
720 | # USB Gadget Support | ||
721 | # | ||
722 | CONFIG_USB_GADGET=y | ||
723 | # CONFIG_USB_GADGET_DEBUG_FILES is not set | ||
724 | CONFIG_USB_GADGET_SELECTED=y | ||
725 | # CONFIG_USB_GADGET_FSL_USB2 is not set | ||
726 | CONFIG_USB_GADGET_NET2272=y | ||
727 | CONFIG_USB_NET2272=y | ||
728 | # CONFIG_USB_GADGET_NET2280 is not set | ||
729 | # CONFIG_USB_GADGET_PXA2XX is not set | ||
730 | # CONFIG_USB_GADGET_GOKU is not set | ||
731 | # CONFIG_USB_GADGET_LH7A40X is not set | ||
732 | # CONFIG_USB_GADGET_OMAP is not set | ||
733 | # CONFIG_USB_GADGET_AT91 is not set | ||
734 | # CONFIG_USB_GADGET_DUMMY_HCD is not set | ||
735 | CONFIG_USB_GADGET_DUALSPEED=y | ||
736 | # CONFIG_USB_ZERO is not set | ||
737 | # CONFIG_USB_ETH is not set | ||
738 | # CONFIG_USB_GADGETFS is not set | ||
739 | # CONFIG_USB_FILE_STORAGE is not set | ||
740 | # CONFIG_USB_G_SERIAL is not set | ||
741 | # CONFIG_USB_MIDI_GADGET is not set | ||
742 | # CONFIG_MMC is not set | ||
743 | |||
744 | # | ||
745 | # LED devices | ||
746 | # | ||
747 | # CONFIG_NEW_LEDS is not set | ||
748 | |||
749 | # | ||
750 | # LED drivers | ||
751 | # | ||
752 | |||
753 | # | ||
754 | # LED Triggers | ||
755 | # | ||
756 | |||
757 | # | ||
758 | # InfiniBand support | ||
759 | # | ||
760 | |||
761 | # | ||
762 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
763 | # | ||
764 | |||
765 | # | ||
766 | # Real Time Clock | ||
767 | # | ||
768 | # CONFIG_RTC_CLASS is not set | ||
769 | |||
770 | # | ||
771 | # DMA Engine support | ||
772 | # | ||
773 | # CONFIG_DMA_ENGINE is not set | ||
774 | |||
775 | # | ||
776 | # DMA Clients | ||
777 | # | ||
778 | |||
779 | # | ||
780 | # DMA Devices | ||
781 | # | ||
782 | |||
783 | # | ||
784 | # PBX support | ||
785 | # | ||
786 | # CONFIG_PBX is not set | ||
787 | |||
788 | # | ||
789 | # File systems | ||
790 | # | ||
791 | CONFIG_EXT2_FS=y | ||
792 | CONFIG_EXT2_FS_XATTR=y | ||
793 | # CONFIG_EXT2_FS_POSIX_ACL is not set | ||
794 | # CONFIG_EXT2_FS_SECURITY is not set | ||
795 | # CONFIG_EXT3_FS is not set | ||
796 | # CONFIG_EXT4DEV_FS is not set | ||
797 | CONFIG_FS_MBCACHE=y | ||
798 | # CONFIG_REISERFS_FS is not set | ||
799 | # CONFIG_JFS_FS is not set | ||
800 | # CONFIG_FS_POSIX_ACL is not set | ||
801 | # CONFIG_XFS_FS is not set | ||
802 | # CONFIG_GFS2_FS is not set | ||
803 | # CONFIG_OCFS2_FS is not set | ||
804 | # CONFIG_MINIX_FS is not set | ||
805 | # CONFIG_ROMFS_FS is not set | ||
806 | CONFIG_INOTIFY=y | ||
807 | CONFIG_INOTIFY_USER=y | ||
808 | # CONFIG_QUOTA is not set | ||
809 | CONFIG_DNOTIFY=y | ||
810 | # CONFIG_AUTOFS_FS is not set | ||
811 | # CONFIG_AUTOFS4_FS is not set | ||
812 | # CONFIG_FUSE_FS is not set | ||
813 | |||
814 | # | ||
815 | # CD-ROM/DVD Filesystems | ||
816 | # | ||
817 | # CONFIG_ISO9660_FS is not set | ||
818 | # CONFIG_UDF_FS is not set | ||
819 | |||
820 | # | ||
821 | # DOS/FAT/NT Filesystems | ||
822 | # | ||
823 | # CONFIG_MSDOS_FS is not set | ||
824 | # CONFIG_VFAT_FS is not set | ||
825 | # CONFIG_NTFS_FS is not set | ||
826 | |||
827 | # | ||
828 | # Pseudo filesystems | ||
829 | # | ||
830 | CONFIG_PROC_FS=y | ||
831 | CONFIG_PROC_SYSCTL=y | ||
832 | CONFIG_SYSFS=y | ||
833 | # CONFIG_TMPFS is not set | ||
834 | # CONFIG_HUGETLB_PAGE is not set | ||
835 | CONFIG_RAMFS=y | ||
836 | # CONFIG_CONFIGFS_FS is not set | ||
837 | |||
838 | # | ||
839 | # Miscellaneous filesystems | ||
840 | # | ||
841 | # CONFIG_ADFS_FS is not set | ||
842 | # CONFIG_AFFS_FS is not set | ||
843 | # CONFIG_HFS_FS is not set | ||
844 | # CONFIG_HFSPLUS_FS is not set | ||
845 | # CONFIG_BEFS_FS is not set | ||
846 | # CONFIG_BFS_FS is not set | ||
847 | # CONFIG_EFS_FS is not set | ||
848 | # CONFIG_YAFFS_FS is not set | ||
849 | # CONFIG_JFFS2_FS is not set | ||
850 | # CONFIG_CRAMFS is not set | ||
851 | # CONFIG_VXFS_FS is not set | ||
852 | # CONFIG_HPFS_FS is not set | ||
853 | # CONFIG_QNX4FS_FS is not set | ||
854 | # CONFIG_SYSV_FS is not set | ||
855 | # CONFIG_UFS_FS is not set | ||
856 | |||
857 | # | ||
858 | # Network File Systems | ||
859 | # | ||
860 | # CONFIG_NFS_FS is not set | ||
861 | # CONFIG_NFSD is not set | ||
862 | # CONFIG_SMB_FS is not set | ||
863 | # CONFIG_CIFS is not set | ||
864 | # CONFIG_NCP_FS is not set | ||
865 | # CONFIG_CODA_FS is not set | ||
866 | # CONFIG_AFS_FS is not set | ||
867 | # CONFIG_9P_FS is not set | ||
868 | |||
869 | # | ||
870 | # Partition Types | ||
871 | # | ||
872 | # CONFIG_PARTITION_ADVANCED is not set | ||
873 | CONFIG_MSDOS_PARTITION=y | ||
874 | |||
875 | # | ||
876 | # Native Language Support | ||
877 | # | ||
878 | # CONFIG_NLS is not set | ||
879 | |||
880 | # | ||
881 | # Distributed Lock Manager | ||
882 | # | ||
883 | # CONFIG_DLM is not set | ||
884 | |||
885 | # | ||
886 | # Profiling support | ||
887 | # | ||
888 | # CONFIG_PROFILING is not set | ||
889 | |||
890 | # | ||
891 | # Kernel hacking | ||
892 | # | ||
893 | # CONFIG_PRINTK_TIME is not set | ||
894 | CONFIG_ENABLE_MUST_CHECK=y | ||
895 | # CONFIG_MAGIC_SYSRQ is not set | ||
896 | # CONFIG_UNUSED_SYMBOLS is not set | ||
897 | # CONFIG_DEBUG_FS is not set | ||
898 | # CONFIG_HEADERS_CHECK is not set | ||
899 | # CONFIG_DEBUG_KERNEL is not set | ||
900 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
901 | # CONFIG_DEBUG_MMRS is not set | ||
902 | # CONFIG_DEBUG_HUNT_FOR_ZERO is not set | ||
903 | CONFIG_DEBUG_BFIN_HWTRACE_ON=y | ||
904 | CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF=y | ||
905 | # CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE is not set | ||
906 | # CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_TWO is not set | ||
907 | CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION=0 | ||
908 | # CONFIG_DEBUG_BFIN_HWTRACE_EXPAND is not set | ||
909 | # CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set | ||
910 | # CONFIG_EARLY_PRINTK is not set | ||
911 | CONFIG_CPLB_INFO=y | ||
912 | CONFIG_ACCESS_CHECK=y | ||
913 | |||
914 | # | ||
915 | # Security options | ||
916 | # | ||
917 | # CONFIG_KEYS is not set | ||
918 | CONFIG_SECURITY=y | ||
919 | # CONFIG_SECURITY_NETWORK is not set | ||
920 | CONFIG_SECURITY_CAPABILITIES=y | ||
921 | |||
922 | # | ||
923 | # Cryptographic options | ||
924 | # | ||
925 | # CONFIG_CRYPTO is not set | ||
926 | |||
927 | # | ||
928 | # Library routines | ||
929 | # | ||
930 | CONFIG_BITREVERSE=y | ||
931 | CONFIG_CRC_CCITT=m | ||
932 | # CONFIG_CRC16 is not set | ||
933 | # CONFIG_CRC_ITU_T is not set | ||
934 | CONFIG_CRC32=y | ||
935 | # CONFIG_LIBCRC32C is not set | ||
936 | CONFIG_ZLIB_INFLATE=y | ||
937 | CONFIG_PLIST=y | ||
938 | CONFIG_HAS_IOMEM=y | ||
939 | CONFIG_HAS_IOPORT=y | ||
940 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/blackfin/configs/CM-BF548_defconfig b/arch/blackfin/configs/CM-BF548_defconfig new file mode 100644 index 000000000000..90207251c533 --- /dev/null +++ b/arch/blackfin/configs/CM-BF548_defconfig | |||
@@ -0,0 +1,1373 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.24.4 | ||
4 | # | ||
5 | # CONFIG_MMU is not set | ||
6 | # CONFIG_FPU is not set | ||
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
8 | # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set | ||
9 | CONFIG_BLACKFIN=y | ||
10 | CONFIG_ZONE_DMA=y | ||
11 | CONFIG_SEMAPHORE_SLEEPERS=y | ||
12 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
13 | CONFIG_GENERIC_HWEIGHT=y | ||
14 | CONFIG_GENERIC_HARDIRQS=y | ||
15 | CONFIG_GENERIC_IRQ_PROBE=y | ||
16 | CONFIG_GENERIC_GPIO=y | ||
17 | CONFIG_FORCE_MAX_ZONEORDER=14 | ||
18 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
19 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
20 | |||
21 | # | ||
22 | # General setup | ||
23 | # | ||
24 | CONFIG_EXPERIMENTAL=y | ||
25 | CONFIG_BROKEN_ON_SMP=y | ||
26 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
27 | CONFIG_LOCALVERSION="" | ||
28 | CONFIG_LOCALVERSION_AUTO=y | ||
29 | CONFIG_SYSVIPC=y | ||
30 | CONFIG_SYSVIPC_SYSCTL=y | ||
31 | # CONFIG_POSIX_MQUEUE is not set | ||
32 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
33 | # CONFIG_TASKSTATS is not set | ||
34 | # CONFIG_USER_NS is not set | ||
35 | # CONFIG_PID_NS is not set | ||
36 | # CONFIG_AUDIT is not set | ||
37 | CONFIG_IKCONFIG=y | ||
38 | CONFIG_IKCONFIG_PROC=y | ||
39 | CONFIG_LOG_BUF_SHIFT=14 | ||
40 | # CONFIG_CGROUPS is not set | ||
41 | CONFIG_FAIR_GROUP_SCHED=y | ||
42 | CONFIG_FAIR_USER_SCHED=y | ||
43 | # CONFIG_FAIR_CGROUP_SCHED is not set | ||
44 | CONFIG_SYSFS_DEPRECATED=y | ||
45 | # CONFIG_RELAY is not set | ||
46 | CONFIG_BLK_DEV_INITRD=y | ||
47 | CONFIG_INITRAMFS_SOURCE="" | ||
48 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
49 | CONFIG_SYSCTL=y | ||
50 | CONFIG_EMBEDDED=y | ||
51 | CONFIG_UID16=y | ||
52 | CONFIG_SYSCTL_SYSCALL=y | ||
53 | CONFIG_KALLSYMS=y | ||
54 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
55 | CONFIG_HOTPLUG=y | ||
56 | CONFIG_PRINTK=y | ||
57 | CONFIG_BUG=y | ||
58 | CONFIG_ELF_CORE=y | ||
59 | CONFIG_BASE_FULL=y | ||
60 | CONFIG_FUTEX=y | ||
61 | CONFIG_ANON_INODES=y | ||
62 | CONFIG_EPOLL=y | ||
63 | CONFIG_SIGNALFD=y | ||
64 | CONFIG_EVENTFD=y | ||
65 | CONFIG_VM_EVENT_COUNTERS=y | ||
66 | CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3 | ||
67 | # CONFIG_NP2 is not set | ||
68 | CONFIG_SLAB=y | ||
69 | # CONFIG_SLUB is not set | ||
70 | # CONFIG_SLOB is not set | ||
71 | CONFIG_SLABINFO=y | ||
72 | CONFIG_RT_MUTEXES=y | ||
73 | CONFIG_TINY_SHMEM=y | ||
74 | CONFIG_BASE_SMALL=0 | ||
75 | CONFIG_MODULES=y | ||
76 | CONFIG_MODULE_UNLOAD=y | ||
77 | # CONFIG_MODULE_FORCE_UNLOAD is not set | ||
78 | # CONFIG_MODVERSIONS is not set | ||
79 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
80 | CONFIG_KMOD=y | ||
81 | CONFIG_BLOCK=y | ||
82 | # CONFIG_LBD is not set | ||
83 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
84 | # CONFIG_LSF is not set | ||
85 | # CONFIG_BLK_DEV_BSG is not set | ||
86 | |||
87 | # | ||
88 | # IO Schedulers | ||
89 | # | ||
90 | CONFIG_IOSCHED_NOOP=y | ||
91 | CONFIG_IOSCHED_AS=y | ||
92 | # CONFIG_IOSCHED_DEADLINE is not set | ||
93 | CONFIG_IOSCHED_CFQ=y | ||
94 | CONFIG_DEFAULT_AS=y | ||
95 | # CONFIG_DEFAULT_DEADLINE is not set | ||
96 | # CONFIG_DEFAULT_CFQ is not set | ||
97 | # CONFIG_DEFAULT_NOOP is not set | ||
98 | CONFIG_DEFAULT_IOSCHED="anticipatory" | ||
99 | # CONFIG_PREEMPT_NONE is not set | ||
100 | CONFIG_PREEMPT_VOLUNTARY=y | ||
101 | # CONFIG_PREEMPT is not set | ||
102 | |||
103 | # | ||
104 | # Blackfin Processor Options | ||
105 | # | ||
106 | |||
107 | # | ||
108 | # Processor and Board Settings | ||
109 | # | ||
110 | # CONFIG_BF522 is not set | ||
111 | # CONFIG_BF523 is not set | ||
112 | # CONFIG_BF524 is not set | ||
113 | # CONFIG_BF525 is not set | ||
114 | # CONFIG_BF526 is not set | ||
115 | # CONFIG_BF527 is not set | ||
116 | # CONFIG_BF531 is not set | ||
117 | # CONFIG_BF532 is not set | ||
118 | # CONFIG_BF533 is not set | ||
119 | # CONFIG_BF534 is not set | ||
120 | # CONFIG_BF536 is not set | ||
121 | # CONFIG_BF537 is not set | ||
122 | # CONFIG_BF542 is not set | ||
123 | # CONFIG_BF544 is not set | ||
124 | # CONFIG_BF547 is not set | ||
125 | CONFIG_BF548=y | ||
126 | # CONFIG_BF549 is not set | ||
127 | # CONFIG_BF561 is not set | ||
128 | CONFIG_BF_REV_0_0=y | ||
129 | # CONFIG_BF_REV_0_1 is not set | ||
130 | # CONFIG_BF_REV_0_2 is not set | ||
131 | # CONFIG_BF_REV_0_3 is not set | ||
132 | # CONFIG_BF_REV_0_4 is not set | ||
133 | # CONFIG_BF_REV_0_5 is not set | ||
134 | # CONFIG_BF_REV_ANY is not set | ||
135 | # CONFIG_BF_REV_NONE is not set | ||
136 | CONFIG_BF54x=y | ||
137 | CONFIG_IRQ_PLL_WAKEUP=7 | ||
138 | CONFIG_IRQ_RTC=8 | ||
139 | CONFIG_IRQ_SPORT0_RX=9 | ||
140 | CONFIG_IRQ_SPORT0_TX=9 | ||
141 | CONFIG_IRQ_SPORT1_RX=9 | ||
142 | CONFIG_IRQ_SPORT1_TX=9 | ||
143 | CONFIG_IRQ_UART0_RX=10 | ||
144 | CONFIG_IRQ_UART0_TX=10 | ||
145 | CONFIG_IRQ_UART1_RX=10 | ||
146 | CONFIG_IRQ_UART1_TX=10 | ||
147 | CONFIG_IRQ_CNT=8 | ||
148 | CONFIG_IRQ_USB_INT0=11 | ||
149 | CONFIG_IRQ_USB_INT1=11 | ||
150 | CONFIG_IRQ_USB_INT2=11 | ||
151 | CONFIG_IRQ_USB_DMA=11 | ||
152 | CONFIG_IRQ_TIMER0=11 | ||
153 | CONFIG_IRQ_TIMER1=11 | ||
154 | CONFIG_IRQ_TIMER2=11 | ||
155 | CONFIG_IRQ_TIMER3=11 | ||
156 | CONFIG_IRQ_TIMER4=11 | ||
157 | CONFIG_IRQ_TIMER5=11 | ||
158 | CONFIG_IRQ_TIMER6=11 | ||
159 | CONFIG_IRQ_TIMER7=11 | ||
160 | CONFIG_IRQ_TIMER8=11 | ||
161 | CONFIG_IRQ_TIMER9=11 | ||
162 | CONFIG_IRQ_TIMER10=11 | ||
163 | # CONFIG_BFIN548_EZKIT is not set | ||
164 | CONFIG_BFIN548_BLUETECHNIX_CM=y | ||
165 | |||
166 | # | ||
167 | # BF548 Specific Configuration | ||
168 | # | ||
169 | # CONFIG_DEB_DMA_URGENT is not set | ||
170 | |||
171 | # | ||
172 | # Interrupt Priority Assignment | ||
173 | # | ||
174 | |||
175 | # | ||
176 | # Priority | ||
177 | # | ||
178 | CONFIG_IRQ_DMAC0_ERR=7 | ||
179 | CONFIG_IRQ_EPPI0_ERR=7 | ||
180 | CONFIG_IRQ_SPORT0_ERR=7 | ||
181 | CONFIG_IRQ_SPORT1_ERR=7 | ||
182 | CONFIG_IRQ_SPI0_ERR=7 | ||
183 | CONFIG_IRQ_UART0_ERR=7 | ||
184 | CONFIG_IRQ_EPPI0=8 | ||
185 | CONFIG_IRQ_SPI0=10 | ||
186 | CONFIG_IRQ_PINT0=12 | ||
187 | CONFIG_IRQ_PINT1=12 | ||
188 | CONFIG_IRQ_MDMAS0=13 | ||
189 | CONFIG_IRQ_MDMAS1=13 | ||
190 | CONFIG_IRQ_WATCHDOG=13 | ||
191 | CONFIG_IRQ_DMAC1_ERR=7 | ||
192 | CONFIG_IRQ_SPORT2_ERR=7 | ||
193 | CONFIG_IRQ_SPORT3_ERR=7 | ||
194 | CONFIG_IRQ_MXVR_DATA=7 | ||
195 | CONFIG_IRQ_SPI1_ERR=7 | ||
196 | CONFIG_IRQ_SPI2_ERR=7 | ||
197 | CONFIG_IRQ_UART1_ERR=7 | ||
198 | CONFIG_IRQ_UART2_ERR=7 | ||
199 | CONFIG_IRQ_CAN0_ERR=7 | ||
200 | CONFIG_IRQ_SPORT2_RX=9 | ||
201 | CONFIG_IRQ_SPORT2_TX=9 | ||
202 | CONFIG_IRQ_SPORT3_RX=9 | ||
203 | CONFIG_IRQ_SPORT3_TX=9 | ||
204 | CONFIG_IRQ_EPPI1=9 | ||
205 | CONFIG_IRQ_EPPI2=9 | ||
206 | CONFIG_IRQ_SPI1=10 | ||
207 | CONFIG_IRQ_SPI2=10 | ||
208 | CONFIG_IRQ_ATAPI_RX=10 | ||
209 | CONFIG_IRQ_ATAPI_TX=10 | ||
210 | CONFIG_IRQ_TWI0=11 | ||
211 | CONFIG_IRQ_TWI1=11 | ||
212 | CONFIG_IRQ_CAN0_RX=11 | ||
213 | CONFIG_IRQ_CAN0_TX=11 | ||
214 | CONFIG_IRQ_MDMAS2=13 | ||
215 | CONFIG_IRQ_MDMAS3=13 | ||
216 | CONFIG_IRQ_MXVR_ERR=11 | ||
217 | CONFIG_IRQ_MXVR_MSG=11 | ||
218 | CONFIG_IRQ_MXVR_PKT=11 | ||
219 | CONFIG_IRQ_EPPI1_ERR=7 | ||
220 | CONFIG_IRQ_EPPI2_ERR=7 | ||
221 | CONFIG_IRQ_UART3_ERR=7 | ||
222 | CONFIG_IRQ_HOST_ERR=7 | ||
223 | CONFIG_IRQ_PIXC_ERR=7 | ||
224 | CONFIG_IRQ_NFC_ERR=7 | ||
225 | CONFIG_IRQ_ATAPI_ERR=7 | ||
226 | CONFIG_IRQ_CAN1_ERR=7 | ||
227 | CONFIG_IRQ_HS_DMA_ERR=7 | ||
228 | CONFIG_IRQ_PIXC_IN0=8 | ||
229 | CONFIG_IRQ_PIXC_IN1=8 | ||
230 | CONFIG_IRQ_PIXC_OUT=8 | ||
231 | CONFIG_IRQ_SDH=8 | ||
232 | CONFIG_IRQ_KEY=8 | ||
233 | CONFIG_IRQ_CAN1_RX=11 | ||
234 | CONFIG_IRQ_CAN1_TX=11 | ||
235 | CONFIG_IRQ_SDH_MASK0=11 | ||
236 | CONFIG_IRQ_SDH_MASK1=11 | ||
237 | CONFIG_IRQ_OTPSEC=11 | ||
238 | CONFIG_IRQ_PINT2=11 | ||
239 | CONFIG_IRQ_PINT3=11 | ||
240 | |||
241 | # | ||
242 | # Pin Interrupt to Port Assignment | ||
243 | # | ||
244 | |||
245 | # | ||
246 | # Assignment | ||
247 | # | ||
248 | CONFIG_PINTx_REASSIGN=y | ||
249 | CONFIG_PINT0_ASSIGN=0x00000101 | ||
250 | CONFIG_PINT1_ASSIGN=0x01010000 | ||
251 | CONFIG_PINT2_ASSIGN=0x07000101 | ||
252 | CONFIG_PINT3_ASSIGN=0x02020303 | ||
253 | |||
254 | # | ||
255 | # Board customizations | ||
256 | # | ||
257 | # CONFIG_CMDLINE_BOOL is not set | ||
258 | |||
259 | # | ||
260 | # Clock/PLL Setup | ||
261 | # | ||
262 | CONFIG_CLKIN_HZ=25000000 | ||
263 | # CONFIG_BFIN_KERNEL_CLOCK is not set | ||
264 | CONFIG_MAX_VCO_HZ=600000000 | ||
265 | CONFIG_MIN_VCO_HZ=50000000 | ||
266 | CONFIG_MAX_SCLK_HZ=133333333 | ||
267 | CONFIG_MIN_SCLK_HZ=27000000 | ||
268 | |||
269 | # | ||
270 | # Kernel Timer/Scheduler | ||
271 | # | ||
272 | # CONFIG_HZ_100 is not set | ||
273 | CONFIG_HZ_250=y | ||
274 | # CONFIG_HZ_300 is not set | ||
275 | # CONFIG_HZ_1000 is not set | ||
276 | CONFIG_HZ=250 | ||
277 | # CONFIG_GENERIC_TIME is not set | ||
278 | # CONFIG_TICK_ONESHOT is not set | ||
279 | |||
280 | # | ||
281 | # Memory Setup | ||
282 | # | ||
283 | CONFIG_MAX_MEM_SIZE=64 | ||
284 | # CONFIG_MEM_MT46V32M16_6T is not set | ||
285 | CONFIG_MEM_MT46V32M16_5B=y | ||
286 | CONFIG_BOOT_LOAD=0x1000 | ||
287 | CONFIG_BFIN_SCRATCH_REG_RETN=y | ||
288 | # CONFIG_BFIN_SCRATCH_REG_RETE is not set | ||
289 | # CONFIG_BFIN_SCRATCH_REG_CYCLES is not set | ||
290 | |||
291 | # | ||
292 | # Blackfin Kernel Optimizations | ||
293 | # | ||
294 | |||
295 | # | ||
296 | # Memory Optimizations | ||
297 | # | ||
298 | CONFIG_I_ENTRY_L1=y | ||
299 | CONFIG_EXCPT_IRQ_SYSC_L1=y | ||
300 | CONFIG_DO_IRQ_L1=y | ||
301 | CONFIG_CORE_TIMER_IRQ_L1=y | ||
302 | CONFIG_IDLE_L1=y | ||
303 | # CONFIG_SCHEDULE_L1 is not set | ||
304 | CONFIG_ARITHMETIC_OPS_L1=y | ||
305 | CONFIG_ACCESS_OK_L1=y | ||
306 | # CONFIG_MEMSET_L1 is not set | ||
307 | # CONFIG_MEMCPY_L1 is not set | ||
308 | # CONFIG_SYS_BFIN_SPINLOCK_L1 is not set | ||
309 | # CONFIG_IP_CHECKSUM_L1 is not set | ||
310 | CONFIG_CACHELINE_ALIGNED_L1=y | ||
311 | # CONFIG_SYSCALL_TAB_L1 is not set | ||
312 | # CONFIG_CPLB_SWITCH_TAB_L1 is not set | ||
313 | CONFIG_RAMKERNEL=y | ||
314 | # CONFIG_ROMKERNEL is not set | ||
315 | CONFIG_SELECT_MEMORY_MODEL=y | ||
316 | CONFIG_FLATMEM_MANUAL=y | ||
317 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
318 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
319 | CONFIG_FLATMEM=y | ||
320 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
321 | # CONFIG_SPARSEMEM_STATIC is not set | ||
322 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
323 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
324 | # CONFIG_RESOURCES_64BIT is not set | ||
325 | CONFIG_ZONE_DMA_FLAG=1 | ||
326 | CONFIG_VIRT_TO_BUS=y | ||
327 | # CONFIG_BFIN_GPTIMERS is not set | ||
328 | CONFIG_BFIN_DMA_5XX=y | ||
329 | # CONFIG_DMA_UNCACHED_2M is not set | ||
330 | CONFIG_DMA_UNCACHED_1M=y | ||
331 | # CONFIG_DMA_UNCACHED_NONE is not set | ||
332 | |||
333 | # | ||
334 | # Cache Support | ||
335 | # | ||
336 | CONFIG_BFIN_ICACHE=y | ||
337 | CONFIG_BFIN_DCACHE=y | ||
338 | # CONFIG_BFIN_DCACHE_BANKA is not set | ||
339 | # CONFIG_BFIN_ICACHE_LOCK is not set | ||
340 | # CONFIG_BFIN_WB is not set | ||
341 | CONFIG_BFIN_WT=y | ||
342 | CONFIG_L1_MAX_PIECE=16 | ||
343 | # CONFIG_MPU is not set | ||
344 | |||
345 | # | ||
346 | # Asynchonous Memory Configuration | ||
347 | # | ||
348 | |||
349 | # | ||
350 | # EBIU_AMGCTL Global Control | ||
351 | # | ||
352 | CONFIG_C_AMCKEN=y | ||
353 | # CONFIG_C_CDPRIO is not set | ||
354 | # CONFIG_C_AMBEN is not set | ||
355 | # CONFIG_C_AMBEN_B0 is not set | ||
356 | # CONFIG_C_AMBEN_B0_B1 is not set | ||
357 | # CONFIG_C_AMBEN_B0_B1_B2 is not set | ||
358 | CONFIG_C_AMBEN_ALL=y | ||
359 | |||
360 | # | ||
361 | # EBIU_AMBCTL Control | ||
362 | # | ||
363 | CONFIG_BANK_0=0x7BB0 | ||
364 | CONFIG_BANK_1=0x5554 | ||
365 | CONFIG_BANK_2=0x7BB0 | ||
366 | CONFIG_BANK_3=0x99B3 | ||
367 | CONFIG_EBIU_MBSCTLVAL=0x0 | ||
368 | CONFIG_EBIU_MODEVAL=0x1 | ||
369 | CONFIG_EBIU_FCTLVAL=0x6 | ||
370 | |||
371 | # | ||
372 | # Bus options (PCI, PCMCIA, EISA, MCA, ISA) | ||
373 | # | ||
374 | # CONFIG_PCI is not set | ||
375 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
376 | # CONFIG_PCCARD is not set | ||
377 | |||
378 | # | ||
379 | # Executable file formats | ||
380 | # | ||
381 | CONFIG_BINFMT_ELF_FDPIC=y | ||
382 | CONFIG_BINFMT_FLAT=y | ||
383 | CONFIG_BINFMT_ZFLAT=y | ||
384 | # CONFIG_BINFMT_SHARED_FLAT is not set | ||
385 | # CONFIG_BINFMT_MISC is not set | ||
386 | |||
387 | # | ||
388 | # Power management options | ||
389 | # | ||
390 | # CONFIG_PM is not set | ||
391 | CONFIG_SUSPEND_UP_POSSIBLE=y | ||
392 | # CONFIG_PM_WAKEUP_BY_GPIO is not set | ||
393 | |||
394 | # | ||
395 | # CPU Frequency scaling | ||
396 | # | ||
397 | # CONFIG_CPU_FREQ is not set | ||
398 | |||
399 | # | ||
400 | # Networking | ||
401 | # | ||
402 | CONFIG_NET=y | ||
403 | |||
404 | # | ||
405 | # Networking options | ||
406 | # | ||
407 | CONFIG_PACKET=y | ||
408 | # CONFIG_PACKET_MMAP is not set | ||
409 | CONFIG_UNIX=y | ||
410 | CONFIG_XFRM=y | ||
411 | # CONFIG_XFRM_USER is not set | ||
412 | # CONFIG_XFRM_SUB_POLICY is not set | ||
413 | # CONFIG_XFRM_MIGRATE is not set | ||
414 | # CONFIG_NET_KEY is not set | ||
415 | CONFIG_INET=y | ||
416 | # CONFIG_IP_MULTICAST is not set | ||
417 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
418 | CONFIG_IP_FIB_HASH=y | ||
419 | CONFIG_IP_PNP=y | ||
420 | # CONFIG_IP_PNP_DHCP is not set | ||
421 | # CONFIG_IP_PNP_BOOTP is not set | ||
422 | # CONFIG_IP_PNP_RARP is not set | ||
423 | # CONFIG_NET_IPIP is not set | ||
424 | # CONFIG_NET_IPGRE is not set | ||
425 | # CONFIG_ARPD is not set | ||
426 | CONFIG_SYN_COOKIES=y | ||
427 | # CONFIG_INET_AH is not set | ||
428 | # CONFIG_INET_ESP is not set | ||
429 | # CONFIG_INET_IPCOMP is not set | ||
430 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
431 | # CONFIG_INET_TUNNEL is not set | ||
432 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
433 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
434 | CONFIG_INET_XFRM_MODE_BEET=y | ||
435 | # CONFIG_INET_LRO is not set | ||
436 | CONFIG_INET_DIAG=y | ||
437 | CONFIG_INET_TCP_DIAG=y | ||
438 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
439 | CONFIG_TCP_CONG_CUBIC=y | ||
440 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
441 | # CONFIG_TCP_MD5SIG is not set | ||
442 | # CONFIG_IPV6 is not set | ||
443 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
444 | # CONFIG_INET6_TUNNEL is not set | ||
445 | # CONFIG_NETLABEL is not set | ||
446 | # CONFIG_NETWORK_SECMARK is not set | ||
447 | # CONFIG_NETFILTER is not set | ||
448 | # CONFIG_IP_DCCP is not set | ||
449 | # CONFIG_IP_SCTP is not set | ||
450 | # CONFIG_TIPC is not set | ||
451 | # CONFIG_ATM is not set | ||
452 | # CONFIG_BRIDGE is not set | ||
453 | # CONFIG_VLAN_8021Q is not set | ||
454 | # CONFIG_DECNET is not set | ||
455 | # CONFIG_LLC2 is not set | ||
456 | # CONFIG_IPX is not set | ||
457 | # CONFIG_ATALK is not set | ||
458 | # CONFIG_X25 is not set | ||
459 | # CONFIG_LAPB is not set | ||
460 | # CONFIG_ECONET is not set | ||
461 | # CONFIG_WAN_ROUTER is not set | ||
462 | # CONFIG_NET_SCHED is not set | ||
463 | |||
464 | # | ||
465 | # Network testing | ||
466 | # | ||
467 | # CONFIG_NET_PKTGEN is not set | ||
468 | # CONFIG_HAMRADIO is not set | ||
469 | # CONFIG_IRDA is not set | ||
470 | # CONFIG_BT is not set | ||
471 | # CONFIG_AF_RXRPC is not set | ||
472 | |||
473 | # | ||
474 | # Wireless | ||
475 | # | ||
476 | # CONFIG_CFG80211 is not set | ||
477 | # CONFIG_WIRELESS_EXT is not set | ||
478 | # CONFIG_MAC80211 is not set | ||
479 | # CONFIG_IEEE80211 is not set | ||
480 | # CONFIG_RFKILL is not set | ||
481 | # CONFIG_NET_9P is not set | ||
482 | |||
483 | # | ||
484 | # Device Drivers | ||
485 | # | ||
486 | |||
487 | # | ||
488 | # Generic Driver Options | ||
489 | # | ||
490 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
491 | CONFIG_STANDALONE=y | ||
492 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
493 | # CONFIG_FW_LOADER is not set | ||
494 | # CONFIG_SYS_HYPERVISOR is not set | ||
495 | # CONFIG_CONNECTOR is not set | ||
496 | CONFIG_MTD=y | ||
497 | # CONFIG_MTD_DEBUG is not set | ||
498 | # CONFIG_MTD_CONCAT is not set | ||
499 | CONFIG_MTD_PARTITIONS=y | ||
500 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
501 | CONFIG_MTD_CMDLINE_PARTS=y | ||
502 | |||
503 | # | ||
504 | # User Modules And Translation Layers | ||
505 | # | ||
506 | CONFIG_MTD_CHAR=y | ||
507 | CONFIG_MTD_BLKDEVS=y | ||
508 | CONFIG_MTD_BLOCK=y | ||
509 | # CONFIG_FTL is not set | ||
510 | # CONFIG_NFTL is not set | ||
511 | # CONFIG_INFTL is not set | ||
512 | # CONFIG_RFD_FTL is not set | ||
513 | # CONFIG_SSFDC is not set | ||
514 | # CONFIG_MTD_OOPS is not set | ||
515 | |||
516 | # | ||
517 | # RAM/ROM/Flash chip drivers | ||
518 | # | ||
519 | CONFIG_MTD_CFI=y | ||
520 | # CONFIG_MTD_JEDECPROBE is not set | ||
521 | CONFIG_MTD_GEN_PROBE=y | ||
522 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
523 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
524 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
525 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
526 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
527 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
528 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
529 | CONFIG_MTD_CFI_I1=y | ||
530 | CONFIG_MTD_CFI_I2=y | ||
531 | # CONFIG_MTD_CFI_I4 is not set | ||
532 | # CONFIG_MTD_CFI_I8 is not set | ||
533 | CONFIG_MTD_CFI_INTELEXT=y | ||
534 | # CONFIG_MTD_CFI_AMDSTD is not set | ||
535 | # CONFIG_MTD_CFI_STAA is not set | ||
536 | CONFIG_MTD_CFI_UTIL=y | ||
537 | CONFIG_MTD_RAM=y | ||
538 | # CONFIG_MTD_ROM is not set | ||
539 | # CONFIG_MTD_ABSENT is not set | ||
540 | |||
541 | # | ||
542 | # Mapping drivers for chip access | ||
543 | # | ||
544 | CONFIG_MTD_COMPLEX_MAPPINGS=y | ||
545 | CONFIG_MTD_PHYSMAP=y | ||
546 | CONFIG_MTD_PHYSMAP_START=0x20000000 | ||
547 | CONFIG_MTD_PHYSMAP_LEN=0x800000 | ||
548 | CONFIG_MTD_PHYSMAP_BANKWIDTH=2 | ||
549 | # CONFIG_MTD_UCLINUX is not set | ||
550 | # CONFIG_MTD_PLATRAM is not set | ||
551 | |||
552 | # | ||
553 | # Self-contained MTD device drivers | ||
554 | # | ||
555 | # CONFIG_MTD_DATAFLASH is not set | ||
556 | # CONFIG_MTD_M25P80 is not set | ||
557 | # CONFIG_MTD_SLRAM is not set | ||
558 | # CONFIG_MTD_PHRAM is not set | ||
559 | # CONFIG_MTD_MTDRAM is not set | ||
560 | # CONFIG_MTD_BLOCK2MTD is not set | ||
561 | |||
562 | # | ||
563 | # Disk-On-Chip Device Drivers | ||
564 | # | ||
565 | # CONFIG_MTD_DOC2000 is not set | ||
566 | # CONFIG_MTD_DOC2001 is not set | ||
567 | # CONFIG_MTD_DOC2001PLUS is not set | ||
568 | # CONFIG_MTD_NAND is not set | ||
569 | # CONFIG_MTD_ONENAND is not set | ||
570 | |||
571 | # | ||
572 | # UBI - Unsorted block images | ||
573 | # | ||
574 | # CONFIG_MTD_UBI is not set | ||
575 | # CONFIG_PARPORT is not set | ||
576 | CONFIG_BLK_DEV=y | ||
577 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
578 | # CONFIG_BLK_DEV_LOOP is not set | ||
579 | # CONFIG_BLK_DEV_NBD is not set | ||
580 | # CONFIG_BLK_DEV_UB is not set | ||
581 | CONFIG_BLK_DEV_RAM=y | ||
582 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
583 | CONFIG_BLK_DEV_RAM_SIZE=4096 | ||
584 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | ||
585 | # CONFIG_CDROM_PKTCDVD is not set | ||
586 | # CONFIG_ATA_OVER_ETH is not set | ||
587 | CONFIG_MISC_DEVICES=y | ||
588 | # CONFIG_EEPROM_93CX6 is not set | ||
589 | # CONFIG_IDE is not set | ||
590 | |||
591 | # | ||
592 | # SCSI device support | ||
593 | # | ||
594 | # CONFIG_RAID_ATTRS is not set | ||
595 | CONFIG_SCSI=y | ||
596 | CONFIG_SCSI_DMA=y | ||
597 | # CONFIG_SCSI_TGT is not set | ||
598 | # CONFIG_SCSI_NETLINK is not set | ||
599 | CONFIG_SCSI_PROC_FS=y | ||
600 | |||
601 | # | ||
602 | # SCSI support type (disk, tape, CD-ROM) | ||
603 | # | ||
604 | CONFIG_BLK_DEV_SD=y | ||
605 | # CONFIG_CHR_DEV_ST is not set | ||
606 | # CONFIG_CHR_DEV_OSST is not set | ||
607 | CONFIG_BLK_DEV_SR=y | ||
608 | # CONFIG_BLK_DEV_SR_VENDOR is not set | ||
609 | # CONFIG_CHR_DEV_SG is not set | ||
610 | # CONFIG_CHR_DEV_SCH is not set | ||
611 | |||
612 | # | ||
613 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | ||
614 | # | ||
615 | # CONFIG_SCSI_MULTI_LUN is not set | ||
616 | # CONFIG_SCSI_CONSTANTS is not set | ||
617 | # CONFIG_SCSI_LOGGING is not set | ||
618 | # CONFIG_SCSI_SCAN_ASYNC is not set | ||
619 | CONFIG_SCSI_WAIT_SCAN=m | ||
620 | |||
621 | # | ||
622 | # SCSI Transports | ||
623 | # | ||
624 | # CONFIG_SCSI_SPI_ATTRS is not set | ||
625 | # CONFIG_SCSI_FC_ATTRS is not set | ||
626 | # CONFIG_SCSI_ISCSI_ATTRS is not set | ||
627 | # CONFIG_SCSI_SAS_LIBSAS is not set | ||
628 | # CONFIG_SCSI_SRP_ATTRS is not set | ||
629 | CONFIG_SCSI_LOWLEVEL=y | ||
630 | # CONFIG_ISCSI_TCP is not set | ||
631 | # CONFIG_SCSI_DEBUG is not set | ||
632 | # CONFIG_ATA is not set | ||
633 | # CONFIG_MD is not set | ||
634 | CONFIG_NETDEVICES=y | ||
635 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
636 | # CONFIG_DUMMY is not set | ||
637 | # CONFIG_BONDING is not set | ||
638 | # CONFIG_MACVLAN is not set | ||
639 | # CONFIG_EQUALIZER is not set | ||
640 | # CONFIG_TUN is not set | ||
641 | # CONFIG_VETH is not set | ||
642 | # CONFIG_PHYLIB is not set | ||
643 | CONFIG_NET_ETHERNET=y | ||
644 | CONFIG_MII=y | ||
645 | # CONFIG_SMC91X is not set | ||
646 | CONFIG_SMSC911X=y | ||
647 | # CONFIG_DM9000 is not set | ||
648 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
649 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
650 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
651 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
652 | # CONFIG_B44 is not set | ||
653 | # CONFIG_NETDEV_1000 is not set | ||
654 | # CONFIG_NETDEV_10000 is not set | ||
655 | |||
656 | # | ||
657 | # Wireless LAN | ||
658 | # | ||
659 | # CONFIG_WLAN_PRE80211 is not set | ||
660 | # CONFIG_WLAN_80211 is not set | ||
661 | |||
662 | # | ||
663 | # USB Network Adapters | ||
664 | # | ||
665 | # CONFIG_USB_CATC is not set | ||
666 | # CONFIG_USB_KAWETH is not set | ||
667 | # CONFIG_USB_PEGASUS is not set | ||
668 | # CONFIG_USB_RTL8150 is not set | ||
669 | # CONFIG_USB_USBNET is not set | ||
670 | # CONFIG_WAN is not set | ||
671 | # CONFIG_PPP is not set | ||
672 | # CONFIG_SLIP is not set | ||
673 | # CONFIG_SHAPER is not set | ||
674 | # CONFIG_NETCONSOLE is not set | ||
675 | # CONFIG_NETPOLL is not set | ||
676 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
677 | # CONFIG_ISDN is not set | ||
678 | # CONFIG_PHONE is not set | ||
679 | |||
680 | # | ||
681 | # Input device support | ||
682 | # | ||
683 | CONFIG_INPUT=y | ||
684 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
685 | # CONFIG_INPUT_POLLDEV is not set | ||
686 | |||
687 | # | ||
688 | # Userland interfaces | ||
689 | # | ||
690 | # CONFIG_INPUT_MOUSEDEV is not set | ||
691 | # CONFIG_INPUT_JOYDEV is not set | ||
692 | CONFIG_INPUT_EVDEV=m | ||
693 | CONFIG_INPUT_EVBUG=m | ||
694 | |||
695 | # | ||
696 | # Input Device Drivers | ||
697 | # | ||
698 | CONFIG_INPUT_KEYBOARD=y | ||
699 | # CONFIG_KEYBOARD_ATKBD is not set | ||
700 | # CONFIG_KEYBOARD_SUNKBD is not set | ||
701 | # CONFIG_KEYBOARD_LKKBD is not set | ||
702 | # CONFIG_KEYBOARD_XTKBD is not set | ||
703 | # CONFIG_KEYBOARD_NEWTON is not set | ||
704 | # CONFIG_KEYBOARD_STOWAWAY is not set | ||
705 | # CONFIG_KEYBOARD_GPIO is not set | ||
706 | # CONFIG_KEYBOARD_BFIN is not set | ||
707 | # CONFIG_KEYBOARD_OPENCORES is not set | ||
708 | # CONFIG_INPUT_MOUSE is not set | ||
709 | # CONFIG_INPUT_JOYSTICK is not set | ||
710 | # CONFIG_INPUT_TABLET is not set | ||
711 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
712 | # CONFIG_INPUT_MISC is not set | ||
713 | |||
714 | # | ||
715 | # Hardware I/O ports | ||
716 | # | ||
717 | # CONFIG_SERIO is not set | ||
718 | # CONFIG_GAMEPORT is not set | ||
719 | |||
720 | # | ||
721 | # Character devices | ||
722 | # | ||
723 | # CONFIG_AD9960 is not set | ||
724 | # CONFIG_SPI_ADC_BF533 is not set | ||
725 | # CONFIG_BF5xx_PPIFCD is not set | ||
726 | # CONFIG_BFIN_SIMPLE_TIMER is not set | ||
727 | # CONFIG_BF5xx_PPI is not set | ||
728 | CONFIG_BFIN_OTP=y | ||
729 | # CONFIG_BFIN_OTP_WRITE_ENABLE is not set | ||
730 | # CONFIG_BFIN_SPORT is not set | ||
731 | # CONFIG_BFIN_TIMER_LATENCY is not set | ||
732 | # CONFIG_TWI_LCD is not set | ||
733 | # CONFIG_SIMPLE_GPIO is not set | ||
734 | # CONFIG_VT is not set | ||
735 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
736 | |||
737 | # | ||
738 | # Serial drivers | ||
739 | # | ||
740 | # CONFIG_SERIAL_8250 is not set | ||
741 | |||
742 | # | ||
743 | # Non-8250 serial port support | ||
744 | # | ||
745 | CONFIG_SERIAL_BFIN=y | ||
746 | CONFIG_SERIAL_BFIN_CONSOLE=y | ||
747 | # CONFIG_SERIAL_BFIN_DMA is not set | ||
748 | CONFIG_SERIAL_BFIN_PIO=y | ||
749 | # CONFIG_SERIAL_BFIN_UART0 is not set | ||
750 | CONFIG_SERIAL_BFIN_UART1=y | ||
751 | # CONFIG_BFIN_UART1_CTSRTS is not set | ||
752 | # CONFIG_SERIAL_BFIN_UART2 is not set | ||
753 | # CONFIG_SERIAL_BFIN_UART3 is not set | ||
754 | CONFIG_SERIAL_CORE=y | ||
755 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
756 | # CONFIG_SERIAL_BFIN_SPORT is not set | ||
757 | CONFIG_UNIX98_PTYS=y | ||
758 | # CONFIG_LEGACY_PTYS is not set | ||
759 | |||
760 | # | ||
761 | # CAN, the car bus and industrial fieldbus | ||
762 | # | ||
763 | # CONFIG_CAN4LINUX is not set | ||
764 | # CONFIG_IPMI_HANDLER is not set | ||
765 | CONFIG_HW_RANDOM=y | ||
766 | # CONFIG_GEN_RTC is not set | ||
767 | # CONFIG_R3964 is not set | ||
768 | # CONFIG_RAW_DRIVER is not set | ||
769 | # CONFIG_TCG_TPM is not set | ||
770 | CONFIG_I2C=y | ||
771 | CONFIG_I2C_BOARDINFO=y | ||
772 | CONFIG_I2C_CHARDEV=y | ||
773 | |||
774 | # | ||
775 | # I2C Algorithms | ||
776 | # | ||
777 | # CONFIG_I2C_ALGOBIT is not set | ||
778 | # CONFIG_I2C_ALGOPCF is not set | ||
779 | # CONFIG_I2C_ALGOPCA is not set | ||
780 | |||
781 | # | ||
782 | # I2C Hardware Bus support | ||
783 | # | ||
784 | CONFIG_I2C_BLACKFIN_TWI=y | ||
785 | CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=50 | ||
786 | # CONFIG_I2C_GPIO is not set | ||
787 | # CONFIG_I2C_OCORES is not set | ||
788 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
789 | # CONFIG_I2C_SIMTEC is not set | ||
790 | # CONFIG_I2C_TAOS_EVM is not set | ||
791 | # CONFIG_I2C_STUB is not set | ||
792 | # CONFIG_I2C_TINY_USB is not set | ||
793 | |||
794 | # | ||
795 | # Miscellaneous I2C Chip support | ||
796 | # | ||
797 | # CONFIG_SENSORS_DS1337 is not set | ||
798 | # CONFIG_SENSORS_DS1374 is not set | ||
799 | # CONFIG_DS1682 is not set | ||
800 | # CONFIG_SENSORS_AD5252 is not set | ||
801 | # CONFIG_SENSORS_EEPROM is not set | ||
802 | # CONFIG_SENSORS_PCF8574 is not set | ||
803 | # CONFIG_SENSORS_PCF8575 is not set | ||
804 | # CONFIG_SENSORS_PCA9543 is not set | ||
805 | # CONFIG_SENSORS_PCA9539 is not set | ||
806 | # CONFIG_SENSORS_PCF8591 is not set | ||
807 | # CONFIG_SENSORS_MAX6875 is not set | ||
808 | # CONFIG_SENSORS_TSL2550 is not set | ||
809 | # CONFIG_I2C_DEBUG_CORE is not set | ||
810 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
811 | # CONFIG_I2C_DEBUG_BUS is not set | ||
812 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
813 | |||
814 | # | ||
815 | # SPI support | ||
816 | # | ||
817 | CONFIG_SPI=y | ||
818 | CONFIG_SPI_MASTER=y | ||
819 | |||
820 | # | ||
821 | # SPI Master Controller Drivers | ||
822 | # | ||
823 | CONFIG_SPI_BFIN=y | ||
824 | # CONFIG_SPI_BITBANG is not set | ||
825 | |||
826 | # | ||
827 | # SPI Protocol Masters | ||
828 | # | ||
829 | # CONFIG_SPI_AT25 is not set | ||
830 | # CONFIG_SPI_SPIDEV is not set | ||
831 | # CONFIG_SPI_TLE62X0 is not set | ||
832 | # CONFIG_W1 is not set | ||
833 | # CONFIG_POWER_SUPPLY is not set | ||
834 | CONFIG_HWMON=y | ||
835 | # CONFIG_HWMON_VID is not set | ||
836 | # CONFIG_SENSORS_AD7418 is not set | ||
837 | # CONFIG_SENSORS_ADM1021 is not set | ||
838 | # CONFIG_SENSORS_ADM1025 is not set | ||
839 | # CONFIG_SENSORS_ADM1026 is not set | ||
840 | # CONFIG_SENSORS_ADM1029 is not set | ||
841 | # CONFIG_SENSORS_ADM1031 is not set | ||
842 | # CONFIG_SENSORS_ADM9240 is not set | ||
843 | # CONFIG_SENSORS_ADT7470 is not set | ||
844 | # CONFIG_SENSORS_ATXP1 is not set | ||
845 | # CONFIG_SENSORS_DS1621 is not set | ||
846 | # CONFIG_SENSORS_F71805F is not set | ||
847 | # CONFIG_SENSORS_F71882FG is not set | ||
848 | # CONFIG_SENSORS_F75375S is not set | ||
849 | # CONFIG_SENSORS_GL518SM is not set | ||
850 | # CONFIG_SENSORS_GL520SM is not set | ||
851 | # CONFIG_SENSORS_IT87 is not set | ||
852 | # CONFIG_SENSORS_LM63 is not set | ||
853 | # CONFIG_SENSORS_LM70 is not set | ||
854 | # CONFIG_SENSORS_LM75 is not set | ||
855 | # CONFIG_SENSORS_LM77 is not set | ||
856 | # CONFIG_SENSORS_LM78 is not set | ||
857 | # CONFIG_SENSORS_LM80 is not set | ||
858 | # CONFIG_SENSORS_LM83 is not set | ||
859 | # CONFIG_SENSORS_LM85 is not set | ||
860 | # CONFIG_SENSORS_LM87 is not set | ||
861 | # CONFIG_SENSORS_LM90 is not set | ||
862 | # CONFIG_SENSORS_LM92 is not set | ||
863 | # CONFIG_SENSORS_LM93 is not set | ||
864 | # CONFIG_SENSORS_MAX1619 is not set | ||
865 | # CONFIG_SENSORS_MAX6650 is not set | ||
866 | # CONFIG_SENSORS_PC87360 is not set | ||
867 | # CONFIG_SENSORS_PC87427 is not set | ||
868 | # CONFIG_SENSORS_DME1737 is not set | ||
869 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
870 | # CONFIG_SENSORS_SMSC47M192 is not set | ||
871 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
872 | # CONFIG_SENSORS_THMC50 is not set | ||
873 | # CONFIG_SENSORS_VT1211 is not set | ||
874 | # CONFIG_SENSORS_W83781D is not set | ||
875 | # CONFIG_SENSORS_W83791D is not set | ||
876 | # CONFIG_SENSORS_W83792D is not set | ||
877 | # CONFIG_SENSORS_W83793 is not set | ||
878 | # CONFIG_SENSORS_W83L785TS is not set | ||
879 | # CONFIG_SENSORS_W83627HF is not set | ||
880 | # CONFIG_SENSORS_W83627EHF is not set | ||
881 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
882 | CONFIG_WATCHDOG=y | ||
883 | # CONFIG_WATCHDOG_NOWAYOUT is not set | ||
884 | |||
885 | # | ||
886 | # Watchdog Device Drivers | ||
887 | # | ||
888 | # CONFIG_SOFT_WATCHDOG is not set | ||
889 | CONFIG_BFIN_WDT=y | ||
890 | |||
891 | # | ||
892 | # USB-based Watchdog Cards | ||
893 | # | ||
894 | # CONFIG_USBPCWATCHDOG is not set | ||
895 | |||
896 | # | ||
897 | # Sonics Silicon Backplane | ||
898 | # | ||
899 | CONFIG_SSB_POSSIBLE=y | ||
900 | # CONFIG_SSB is not set | ||
901 | |||
902 | # | ||
903 | # Multifunction device drivers | ||
904 | # | ||
905 | # CONFIG_MFD_SM501 is not set | ||
906 | |||
907 | # | ||
908 | # Multimedia devices | ||
909 | # | ||
910 | # CONFIG_VIDEO_DEV is not set | ||
911 | # CONFIG_DVB_CORE is not set | ||
912 | CONFIG_DAB=y | ||
913 | # CONFIG_USB_DABUSB is not set | ||
914 | |||
915 | # | ||
916 | # Graphics support | ||
917 | # | ||
918 | # CONFIG_VGASTATE is not set | ||
919 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
920 | # CONFIG_FB is not set | ||
921 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
922 | |||
923 | # | ||
924 | # Display device support | ||
925 | # | ||
926 | # CONFIG_DISPLAY_SUPPORT is not set | ||
927 | |||
928 | # | ||
929 | # Sound | ||
930 | # | ||
931 | # CONFIG_SOUND is not set | ||
932 | CONFIG_HID_SUPPORT=y | ||
933 | CONFIG_HID=y | ||
934 | # CONFIG_HID_DEBUG is not set | ||
935 | # CONFIG_HIDRAW is not set | ||
936 | |||
937 | # | ||
938 | # USB Input Devices | ||
939 | # | ||
940 | CONFIG_USB_HID=y | ||
941 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
942 | # CONFIG_HID_FF is not set | ||
943 | # CONFIG_USB_HIDDEV is not set | ||
944 | CONFIG_USB_SUPPORT=y | ||
945 | CONFIG_USB_ARCH_HAS_HCD=y | ||
946 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
947 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
948 | CONFIG_USB=y | ||
949 | # CONFIG_USB_DEBUG is not set | ||
950 | |||
951 | # | ||
952 | # Miscellaneous USB options | ||
953 | # | ||
954 | # CONFIG_USB_DEVICEFS is not set | ||
955 | CONFIG_USB_DEVICE_CLASS=y | ||
956 | # CONFIG_USB_DYNAMIC_MINORS is not set | ||
957 | # CONFIG_USB_OTG is not set | ||
958 | |||
959 | # | ||
960 | # USB Host Controller Drivers | ||
961 | # | ||
962 | # CONFIG_USB_ISP116X_HCD is not set | ||
963 | # CONFIG_USB_ISP1362_HCD is not set | ||
964 | # CONFIG_USB_ISP1760_HCD is not set | ||
965 | # CONFIG_USB_SL811_HCD is not set | ||
966 | # CONFIG_USB_R8A66597_HCD is not set | ||
967 | CONFIG_USB_MUSB_HDRC=y | ||
968 | CONFIG_USB_MUSB_SOC=y | ||
969 | |||
970 | # | ||
971 | # Blackfin BF54x, BF525 and BF527 high speed USB support | ||
972 | # | ||
973 | CONFIG_USB_MUSB_HOST=y | ||
974 | # CONFIG_USB_MUSB_PERIPHERAL is not set | ||
975 | # CONFIG_USB_MUSB_OTG is not set | ||
976 | CONFIG_USB_MUSB_HDRC_HCD=y | ||
977 | # CONFIG_MUSB_PIO_ONLY is not set | ||
978 | # CONFIG_USB_INVENTRA_DMA is not set | ||
979 | # CONFIG_USB_TI_CPPI_DMA is not set | ||
980 | CONFIG_USB_MUSB_LOGLEVEL=0 | ||
981 | |||
982 | # | ||
983 | # USB Device Class drivers | ||
984 | # | ||
985 | # CONFIG_USB_ACM is not set | ||
986 | # CONFIG_USB_PRINTER is not set | ||
987 | |||
988 | # | ||
989 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
990 | # | ||
991 | |||
992 | # | ||
993 | # may also be needed; see USB_STORAGE Help for more information | ||
994 | # | ||
995 | CONFIG_USB_STORAGE=y | ||
996 | # CONFIG_USB_STORAGE_DEBUG is not set | ||
997 | # CONFIG_USB_STORAGE_DATAFAB is not set | ||
998 | # CONFIG_USB_STORAGE_FREECOM is not set | ||
999 | # CONFIG_USB_STORAGE_ISD200 is not set | ||
1000 | # CONFIG_USB_STORAGE_DPCM is not set | ||
1001 | # CONFIG_USB_STORAGE_USBAT is not set | ||
1002 | # CONFIG_USB_STORAGE_SDDR09 is not set | ||
1003 | # CONFIG_USB_STORAGE_SDDR55 is not set | ||
1004 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | ||
1005 | # CONFIG_USB_STORAGE_ALAUDA is not set | ||
1006 | # CONFIG_USB_STORAGE_ONETOUCH is not set | ||
1007 | # CONFIG_USB_STORAGE_KARMA is not set | ||
1008 | # CONFIG_USB_LIBUSUAL is not set | ||
1009 | |||
1010 | # | ||
1011 | # USB Imaging devices | ||
1012 | # | ||
1013 | # CONFIG_USB_MDC800 is not set | ||
1014 | # CONFIG_USB_MICROTEK is not set | ||
1015 | CONFIG_USB_MON=y | ||
1016 | |||
1017 | # | ||
1018 | # USB port drivers | ||
1019 | # | ||
1020 | |||
1021 | # | ||
1022 | # USB Serial Converter support | ||
1023 | # | ||
1024 | # CONFIG_USB_SERIAL is not set | ||
1025 | |||
1026 | # | ||
1027 | # USB Miscellaneous drivers | ||
1028 | # | ||
1029 | # CONFIG_USB_EMI62 is not set | ||
1030 | # CONFIG_USB_EMI26 is not set | ||
1031 | # CONFIG_USB_ADUTUX is not set | ||
1032 | # CONFIG_USB_AUERSWALD is not set | ||
1033 | # CONFIG_USB_RIO500 is not set | ||
1034 | # CONFIG_USB_LEGOTOWER is not set | ||
1035 | # CONFIG_USB_LCD is not set | ||
1036 | # CONFIG_USB_BERRY_CHARGE is not set | ||
1037 | # CONFIG_USB_LED is not set | ||
1038 | # CONFIG_USB_CYPRESS_CY7C63 is not set | ||
1039 | # CONFIG_USB_CYTHERM is not set | ||
1040 | # CONFIG_USB_PHIDGET is not set | ||
1041 | # CONFIG_USB_IDMOUSE is not set | ||
1042 | # CONFIG_USB_FTDI_ELAN is not set | ||
1043 | # CONFIG_USB_APPLEDISPLAY is not set | ||
1044 | # CONFIG_USB_SISUSBVGA is not set | ||
1045 | # CONFIG_USB_LD is not set | ||
1046 | # CONFIG_USB_TRANCEVIBRATOR is not set | ||
1047 | # CONFIG_USB_IOWARRIOR is not set | ||
1048 | |||
1049 | # | ||
1050 | # USB DSL modem support | ||
1051 | # | ||
1052 | |||
1053 | # | ||
1054 | # USB Gadget Support | ||
1055 | # | ||
1056 | # CONFIG_USB_GADGET is not set | ||
1057 | CONFIG_MMC=y | ||
1058 | # CONFIG_MMC_DEBUG is not set | ||
1059 | # CONFIG_MMC_UNSAFE_RESUME is not set | ||
1060 | |||
1061 | # | ||
1062 | # MMC/SD Card Drivers | ||
1063 | # | ||
1064 | CONFIG_MMC_BLOCK=y | ||
1065 | CONFIG_MMC_BLOCK_BOUNCE=y | ||
1066 | # CONFIG_SDIO_UART is not set | ||
1067 | |||
1068 | # | ||
1069 | # MMC/SD Host Controller Drivers | ||
1070 | # | ||
1071 | CONFIG_SDH_BFIN=y | ||
1072 | # CONFIG_MMC_SPI is not set | ||
1073 | # CONFIG_SPI_MMC is not set | ||
1074 | # CONFIG_NEW_LEDS is not set | ||
1075 | CONFIG_RTC_LIB=y | ||
1076 | CONFIG_RTC_CLASS=y | ||
1077 | CONFIG_RTC_HCTOSYS=y | ||
1078 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
1079 | # CONFIG_RTC_DEBUG is not set | ||
1080 | |||
1081 | # | ||
1082 | # RTC interfaces | ||
1083 | # | ||
1084 | CONFIG_RTC_INTF_SYSFS=y | ||
1085 | CONFIG_RTC_INTF_PROC=y | ||
1086 | CONFIG_RTC_INTF_DEV=y | ||
1087 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
1088 | # CONFIG_RTC_DRV_TEST is not set | ||
1089 | |||
1090 | # | ||
1091 | # I2C RTC drivers | ||
1092 | # | ||
1093 | # CONFIG_RTC_DRV_DS1307 is not set | ||
1094 | # CONFIG_RTC_DRV_DS1374 is not set | ||
1095 | # CONFIG_RTC_DRV_DS1672 is not set | ||
1096 | # CONFIG_RTC_DRV_MAX6900 is not set | ||
1097 | # CONFIG_RTC_DRV_RS5C372 is not set | ||
1098 | # CONFIG_RTC_DRV_ISL1208 is not set | ||
1099 | # CONFIG_RTC_DRV_X1205 is not set | ||
1100 | # CONFIG_RTC_DRV_PCF8563 is not set | ||
1101 | # CONFIG_RTC_DRV_PCF8583 is not set | ||
1102 | # CONFIG_RTC_DRV_M41T80 is not set | ||
1103 | |||
1104 | # | ||
1105 | # SPI RTC drivers | ||
1106 | # | ||
1107 | # CONFIG_RTC_DRV_RS5C348 is not set | ||
1108 | # CONFIG_RTC_DRV_MAX6902 is not set | ||
1109 | |||
1110 | # | ||
1111 | # Platform RTC drivers | ||
1112 | # | ||
1113 | # CONFIG_RTC_DRV_DS1553 is not set | ||
1114 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
1115 | # CONFIG_RTC_DRV_DS1742 is not set | ||
1116 | # CONFIG_RTC_DRV_M48T86 is not set | ||
1117 | # CONFIG_RTC_DRV_M48T59 is not set | ||
1118 | # CONFIG_RTC_DRV_V3020 is not set | ||
1119 | |||
1120 | # | ||
1121 | # on-CPU RTC drivers | ||
1122 | # | ||
1123 | CONFIG_RTC_DRV_BFIN=y | ||
1124 | |||
1125 | # | ||
1126 | # Userspace I/O | ||
1127 | # | ||
1128 | # CONFIG_UIO is not set | ||
1129 | |||
1130 | # | ||
1131 | # PBX support | ||
1132 | # | ||
1133 | # CONFIG_PBX is not set | ||
1134 | |||
1135 | # | ||
1136 | # File systems | ||
1137 | # | ||
1138 | # CONFIG_EXT2_FS is not set | ||
1139 | # CONFIG_EXT3_FS is not set | ||
1140 | # CONFIG_EXT4DEV_FS is not set | ||
1141 | # CONFIG_REISERFS_FS is not set | ||
1142 | # CONFIG_JFS_FS is not set | ||
1143 | # CONFIG_FS_POSIX_ACL is not set | ||
1144 | # CONFIG_XFS_FS is not set | ||
1145 | # CONFIG_GFS2_FS is not set | ||
1146 | # CONFIG_OCFS2_FS is not set | ||
1147 | # CONFIG_MINIX_FS is not set | ||
1148 | # CONFIG_ROMFS_FS is not set | ||
1149 | CONFIG_INOTIFY=y | ||
1150 | CONFIG_INOTIFY_USER=y | ||
1151 | # CONFIG_QUOTA is not set | ||
1152 | CONFIG_DNOTIFY=y | ||
1153 | # CONFIG_AUTOFS_FS is not set | ||
1154 | # CONFIG_AUTOFS4_FS is not set | ||
1155 | # CONFIG_FUSE_FS is not set | ||
1156 | |||
1157 | # | ||
1158 | # CD-ROM/DVD Filesystems | ||
1159 | # | ||
1160 | CONFIG_ISO9660_FS=m | ||
1161 | CONFIG_JOLIET=y | ||
1162 | CONFIG_ZISOFS=y | ||
1163 | # CONFIG_UDF_FS is not set | ||
1164 | |||
1165 | # | ||
1166 | # DOS/FAT/NT Filesystems | ||
1167 | # | ||
1168 | CONFIG_FAT_FS=m | ||
1169 | CONFIG_MSDOS_FS=m | ||
1170 | CONFIG_VFAT_FS=m | ||
1171 | CONFIG_FAT_DEFAULT_CODEPAGE=437 | ||
1172 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
1173 | CONFIG_NTFS_FS=m | ||
1174 | # CONFIG_NTFS_DEBUG is not set | ||
1175 | CONFIG_NTFS_RW=y | ||
1176 | |||
1177 | # | ||
1178 | # Pseudo filesystems | ||
1179 | # | ||
1180 | CONFIG_PROC_FS=y | ||
1181 | CONFIG_PROC_SYSCTL=y | ||
1182 | CONFIG_SYSFS=y | ||
1183 | # CONFIG_TMPFS is not set | ||
1184 | # CONFIG_HUGETLB_PAGE is not set | ||
1185 | # CONFIG_CONFIGFS_FS is not set | ||
1186 | |||
1187 | # | ||
1188 | # Miscellaneous filesystems | ||
1189 | # | ||
1190 | # CONFIG_ADFS_FS is not set | ||
1191 | # CONFIG_AFFS_FS is not set | ||
1192 | # CONFIG_HFS_FS is not set | ||
1193 | # CONFIG_HFSPLUS_FS is not set | ||
1194 | # CONFIG_BEFS_FS is not set | ||
1195 | # CONFIG_BFS_FS is not set | ||
1196 | # CONFIG_EFS_FS is not set | ||
1197 | CONFIG_YAFFS_FS=m | ||
1198 | CONFIG_YAFFS_YAFFS1=y | ||
1199 | # CONFIG_YAFFS_DOES_ECC is not set | ||
1200 | CONFIG_YAFFS_YAFFS2=y | ||
1201 | CONFIG_YAFFS_AUTO_YAFFS2=y | ||
1202 | # CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set | ||
1203 | CONFIG_YAFFS_CHECKPOINT_RESERVED_BLOCKS=10 | ||
1204 | # CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set | ||
1205 | # CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set | ||
1206 | CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y | ||
1207 | CONFIG_JFFS2_FS=m | ||
1208 | CONFIG_JFFS2_FS_DEBUG=0 | ||
1209 | CONFIG_JFFS2_FS_WRITEBUFFER=y | ||
1210 | # CONFIG_JFFS2_FS_WBUF_VERIFY is not set | ||
1211 | # CONFIG_JFFS2_SUMMARY is not set | ||
1212 | # CONFIG_JFFS2_FS_XATTR is not set | ||
1213 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | ||
1214 | CONFIG_JFFS2_ZLIB=y | ||
1215 | # CONFIG_JFFS2_LZO is not set | ||
1216 | CONFIG_JFFS2_RTIME=y | ||
1217 | # CONFIG_JFFS2_RUBIN is not set | ||
1218 | # CONFIG_CRAMFS is not set | ||
1219 | # CONFIG_VXFS_FS is not set | ||
1220 | # CONFIG_HPFS_FS is not set | ||
1221 | # CONFIG_QNX4FS_FS is not set | ||
1222 | # CONFIG_SYSV_FS is not set | ||
1223 | # CONFIG_UFS_FS is not set | ||
1224 | CONFIG_NETWORK_FILESYSTEMS=y | ||
1225 | CONFIG_NFS_FS=m | ||
1226 | CONFIG_NFS_V3=y | ||
1227 | # CONFIG_NFS_V3_ACL is not set | ||
1228 | # CONFIG_NFS_V4 is not set | ||
1229 | # CONFIG_NFS_DIRECTIO is not set | ||
1230 | CONFIG_NFSD=m | ||
1231 | CONFIG_NFSD_V3=y | ||
1232 | # CONFIG_NFSD_V3_ACL is not set | ||
1233 | # CONFIG_NFSD_V4 is not set | ||
1234 | CONFIG_NFSD_TCP=y | ||
1235 | CONFIG_LOCKD=m | ||
1236 | CONFIG_LOCKD_V4=y | ||
1237 | CONFIG_EXPORTFS=m | ||
1238 | CONFIG_NFS_COMMON=y | ||
1239 | CONFIG_SUNRPC=m | ||
1240 | # CONFIG_SUNRPC_BIND34 is not set | ||
1241 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
1242 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
1243 | CONFIG_SMB_FS=m | ||
1244 | CONFIG_SMB_NLS_DEFAULT=y | ||
1245 | CONFIG_SMB_NLS_REMOTE="cp437" | ||
1246 | CONFIG_CIFS=y | ||
1247 | # CONFIG_CIFS_STATS is not set | ||
1248 | # CONFIG_CIFS_WEAK_PW_HASH is not set | ||
1249 | # CONFIG_CIFS_XATTR is not set | ||
1250 | # CONFIG_CIFS_DEBUG2 is not set | ||
1251 | # CONFIG_CIFS_EXPERIMENTAL is not set | ||
1252 | # CONFIG_NCP_FS is not set | ||
1253 | # CONFIG_CODA_FS is not set | ||
1254 | # CONFIG_AFS_FS is not set | ||
1255 | |||
1256 | # | ||
1257 | # Partition Types | ||
1258 | # | ||
1259 | CONFIG_PARTITION_ADVANCED=y | ||
1260 | # CONFIG_ACORN_PARTITION is not set | ||
1261 | # CONFIG_OSF_PARTITION is not set | ||
1262 | # CONFIG_AMIGA_PARTITION is not set | ||
1263 | # CONFIG_ATARI_PARTITION is not set | ||
1264 | # CONFIG_MAC_PARTITION is not set | ||
1265 | CONFIG_MSDOS_PARTITION=y | ||
1266 | # CONFIG_BSD_DISKLABEL is not set | ||
1267 | # CONFIG_MINIX_SUBPARTITION is not set | ||
1268 | # CONFIG_SOLARIS_X86_PARTITION is not set | ||
1269 | # CONFIG_UNIXWARE_DISKLABEL is not set | ||
1270 | # CONFIG_LDM_PARTITION is not set | ||
1271 | # CONFIG_SGI_PARTITION is not set | ||
1272 | # CONFIG_ULTRIX_PARTITION is not set | ||
1273 | # CONFIG_SUN_PARTITION is not set | ||
1274 | # CONFIG_KARMA_PARTITION is not set | ||
1275 | # CONFIG_EFI_PARTITION is not set | ||
1276 | # CONFIG_SYSV68_PARTITION is not set | ||
1277 | CONFIG_NLS=y | ||
1278 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
1279 | CONFIG_NLS_CODEPAGE_437=m | ||
1280 | CONFIG_NLS_CODEPAGE_737=m | ||
1281 | CONFIG_NLS_CODEPAGE_775=m | ||
1282 | CONFIG_NLS_CODEPAGE_850=m | ||
1283 | CONFIG_NLS_CODEPAGE_852=m | ||
1284 | CONFIG_NLS_CODEPAGE_855=m | ||
1285 | CONFIG_NLS_CODEPAGE_857=m | ||
1286 | CONFIG_NLS_CODEPAGE_860=m | ||
1287 | CONFIG_NLS_CODEPAGE_861=m | ||
1288 | CONFIG_NLS_CODEPAGE_862=m | ||
1289 | CONFIG_NLS_CODEPAGE_863=m | ||
1290 | CONFIG_NLS_CODEPAGE_864=m | ||
1291 | CONFIG_NLS_CODEPAGE_865=m | ||
1292 | CONFIG_NLS_CODEPAGE_866=m | ||
1293 | CONFIG_NLS_CODEPAGE_869=m | ||
1294 | CONFIG_NLS_CODEPAGE_936=m | ||
1295 | CONFIG_NLS_CODEPAGE_950=m | ||
1296 | CONFIG_NLS_CODEPAGE_932=m | ||
1297 | CONFIG_NLS_CODEPAGE_949=m | ||
1298 | CONFIG_NLS_CODEPAGE_874=m | ||
1299 | CONFIG_NLS_ISO8859_8=m | ||
1300 | CONFIG_NLS_CODEPAGE_1250=m | ||
1301 | CONFIG_NLS_CODEPAGE_1251=m | ||
1302 | CONFIG_NLS_ASCII=m | ||
1303 | CONFIG_NLS_ISO8859_1=m | ||
1304 | CONFIG_NLS_ISO8859_2=m | ||
1305 | CONFIG_NLS_ISO8859_3=m | ||
1306 | CONFIG_NLS_ISO8859_4=m | ||
1307 | CONFIG_NLS_ISO8859_5=m | ||
1308 | CONFIG_NLS_ISO8859_6=m | ||
1309 | CONFIG_NLS_ISO8859_7=m | ||
1310 | CONFIG_NLS_ISO8859_9=m | ||
1311 | CONFIG_NLS_ISO8859_13=m | ||
1312 | CONFIG_NLS_ISO8859_14=m | ||
1313 | CONFIG_NLS_ISO8859_15=m | ||
1314 | CONFIG_NLS_KOI8_R=m | ||
1315 | CONFIG_NLS_KOI8_U=m | ||
1316 | CONFIG_NLS_UTF8=m | ||
1317 | # CONFIG_DLM is not set | ||
1318 | CONFIG_INSTRUMENTATION=y | ||
1319 | # CONFIG_PROFILING is not set | ||
1320 | # CONFIG_MARKERS is not set | ||
1321 | |||
1322 | # | ||
1323 | # Kernel hacking | ||
1324 | # | ||
1325 | # CONFIG_PRINTK_TIME is not set | ||
1326 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
1327 | CONFIG_ENABLE_MUST_CHECK=y | ||
1328 | # CONFIG_MAGIC_SYSRQ is not set | ||
1329 | # CONFIG_UNUSED_SYMBOLS is not set | ||
1330 | CONFIG_DEBUG_FS=y | ||
1331 | # CONFIG_HEADERS_CHECK is not set | ||
1332 | # CONFIG_DEBUG_KERNEL is not set | ||
1333 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
1334 | # CONFIG_SAMPLES is not set | ||
1335 | # CONFIG_DEBUG_MMRS is not set | ||
1336 | CONFIG_DEBUG_HUNT_FOR_ZERO=y | ||
1337 | CONFIG_DEBUG_BFIN_HWTRACE_ON=y | ||
1338 | CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF=y | ||
1339 | # CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE is not set | ||
1340 | # CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_TWO is not set | ||
1341 | CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION=0 | ||
1342 | # CONFIG_DEBUG_BFIN_HWTRACE_EXPAND is not set | ||
1343 | # CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set | ||
1344 | # CONFIG_EARLY_PRINTK is not set | ||
1345 | CONFIG_CPLB_INFO=y | ||
1346 | CONFIG_ACCESS_CHECK=y | ||
1347 | |||
1348 | # | ||
1349 | # Security options | ||
1350 | # | ||
1351 | # CONFIG_KEYS is not set | ||
1352 | CONFIG_SECURITY=y | ||
1353 | # CONFIG_SECURITY_NETWORK is not set | ||
1354 | # CONFIG_SECURITY_CAPABILITIES is not set | ||
1355 | # CONFIG_SECURITY_ROOTPLUG is not set | ||
1356 | # CONFIG_CRYPTO is not set | ||
1357 | |||
1358 | # | ||
1359 | # Library routines | ||
1360 | # | ||
1361 | CONFIG_BITREVERSE=y | ||
1362 | CONFIG_CRC_CCITT=m | ||
1363 | # CONFIG_CRC16 is not set | ||
1364 | # CONFIG_CRC_ITU_T is not set | ||
1365 | CONFIG_CRC32=y | ||
1366 | # CONFIG_CRC7 is not set | ||
1367 | # CONFIG_LIBCRC32C is not set | ||
1368 | CONFIG_ZLIB_INFLATE=y | ||
1369 | CONFIG_ZLIB_DEFLATE=m | ||
1370 | CONFIG_PLIST=y | ||
1371 | CONFIG_HAS_IOMEM=y | ||
1372 | CONFIG_HAS_IOPORT=y | ||
1373 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/blackfin/configs/CM-BF561_defconfig b/arch/blackfin/configs/CM-BF561_defconfig new file mode 100644 index 000000000000..daf00906c1ef --- /dev/null +++ b/arch/blackfin/configs/CM-BF561_defconfig | |||
@@ -0,0 +1,876 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.24.4 | ||
4 | # Tue Apr 1 10:50:11 2008 | ||
5 | # | ||
6 | # CONFIG_MMU is not set | ||
7 | # CONFIG_FPU is not set | ||
8 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
9 | # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set | ||
10 | CONFIG_BLACKFIN=y | ||
11 | CONFIG_ZONE_DMA=y | ||
12 | CONFIG_SEMAPHORE_SLEEPERS=y | ||
13 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
14 | CONFIG_GENERIC_HWEIGHT=y | ||
15 | CONFIG_GENERIC_HARDIRQS=y | ||
16 | CONFIG_GENERIC_IRQ_PROBE=y | ||
17 | CONFIG_GENERIC_GPIO=y | ||
18 | CONFIG_FORCE_MAX_ZONEORDER=14 | ||
19 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
20 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
21 | |||
22 | # | ||
23 | # General setup | ||
24 | # | ||
25 | CONFIG_EXPERIMENTAL=y | ||
26 | CONFIG_BROKEN_ON_SMP=y | ||
27 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
28 | CONFIG_LOCALVERSION="" | ||
29 | CONFIG_LOCALVERSION_AUTO=y | ||
30 | CONFIG_SYSVIPC=y | ||
31 | CONFIG_SYSVIPC_SYSCTL=y | ||
32 | # CONFIG_POSIX_MQUEUE is not set | ||
33 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
34 | # CONFIG_TASKSTATS is not set | ||
35 | # CONFIG_USER_NS is not set | ||
36 | # CONFIG_PID_NS is not set | ||
37 | # CONFIG_AUDIT is not set | ||
38 | # CONFIG_IKCONFIG is not set | ||
39 | CONFIG_LOG_BUF_SHIFT=14 | ||
40 | # CONFIG_CGROUPS is not set | ||
41 | CONFIG_FAIR_GROUP_SCHED=y | ||
42 | CONFIG_FAIR_USER_SCHED=y | ||
43 | # CONFIG_FAIR_CGROUP_SCHED is not set | ||
44 | CONFIG_SYSFS_DEPRECATED=y | ||
45 | # CONFIG_RELAY is not set | ||
46 | # CONFIG_BLK_DEV_INITRD is not set | ||
47 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
48 | CONFIG_SYSCTL=y | ||
49 | CONFIG_EMBEDDED=y | ||
50 | # CONFIG_UID16 is not set | ||
51 | CONFIG_SYSCTL_SYSCALL=y | ||
52 | CONFIG_KALLSYMS=y | ||
53 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
54 | # CONFIG_HOTPLUG is not set | ||
55 | CONFIG_PRINTK=y | ||
56 | CONFIG_BUG=y | ||
57 | CONFIG_ELF_CORE=y | ||
58 | CONFIG_BASE_FULL=y | ||
59 | CONFIG_FUTEX=y | ||
60 | CONFIG_ANON_INODES=y | ||
61 | CONFIG_EPOLL=y | ||
62 | CONFIG_SIGNALFD=y | ||
63 | CONFIG_EVENTFD=y | ||
64 | CONFIG_VM_EVENT_COUNTERS=y | ||
65 | CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3 | ||
66 | # CONFIG_NP2 is not set | ||
67 | CONFIG_SLAB=y | ||
68 | # CONFIG_SLUB is not set | ||
69 | # CONFIG_SLOB is not set | ||
70 | CONFIG_SLABINFO=y | ||
71 | CONFIG_RT_MUTEXES=y | ||
72 | CONFIG_TINY_SHMEM=y | ||
73 | CONFIG_BASE_SMALL=0 | ||
74 | CONFIG_MODULES=y | ||
75 | CONFIG_MODULE_UNLOAD=y | ||
76 | # CONFIG_MODULE_FORCE_UNLOAD is not set | ||
77 | # CONFIG_MODVERSIONS is not set | ||
78 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
79 | CONFIG_KMOD=y | ||
80 | CONFIG_BLOCK=y | ||
81 | # CONFIG_LBD is not set | ||
82 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
83 | # CONFIG_LSF is not set | ||
84 | # CONFIG_BLK_DEV_BSG is not set | ||
85 | |||
86 | # | ||
87 | # IO Schedulers | ||
88 | # | ||
89 | CONFIG_IOSCHED_NOOP=y | ||
90 | # CONFIG_IOSCHED_AS is not set | ||
91 | # CONFIG_IOSCHED_DEADLINE is not set | ||
92 | CONFIG_IOSCHED_CFQ=y | ||
93 | # CONFIG_DEFAULT_AS is not set | ||
94 | # CONFIG_DEFAULT_DEADLINE is not set | ||
95 | # CONFIG_DEFAULT_CFQ is not set | ||
96 | CONFIG_DEFAULT_NOOP=y | ||
97 | CONFIG_DEFAULT_IOSCHED="noop" | ||
98 | CONFIG_PREEMPT_NONE=y | ||
99 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
100 | # CONFIG_PREEMPT is not set | ||
101 | |||
102 | # | ||
103 | # Blackfin Processor Options | ||
104 | # | ||
105 | |||
106 | # | ||
107 | # Processor and Board Settings | ||
108 | # | ||
109 | # CONFIG_BF522 is not set | ||
110 | # CONFIG_BF523 is not set | ||
111 | # CONFIG_BF524 is not set | ||
112 | # CONFIG_BF525 is not set | ||
113 | # CONFIG_BF526 is not set | ||
114 | # CONFIG_BF527 is not set | ||
115 | # CONFIG_BF531 is not set | ||
116 | # CONFIG_BF532 is not set | ||
117 | # CONFIG_BF533 is not set | ||
118 | # CONFIG_BF534 is not set | ||
119 | # CONFIG_BF536 is not set | ||
120 | # CONFIG_BF537 is not set | ||
121 | # CONFIG_BF542 is not set | ||
122 | # CONFIG_BF544 is not set | ||
123 | # CONFIG_BF547 is not set | ||
124 | # CONFIG_BF548 is not set | ||
125 | # CONFIG_BF549 is not set | ||
126 | CONFIG_BF561=y | ||
127 | # CONFIG_BF_REV_0_0 is not set | ||
128 | # CONFIG_BF_REV_0_1 is not set | ||
129 | # CONFIG_BF_REV_0_2 is not set | ||
130 | CONFIG_BF_REV_0_3=y | ||
131 | # CONFIG_BF_REV_0_4 is not set | ||
132 | # CONFIG_BF_REV_0_5 is not set | ||
133 | # CONFIG_BF_REV_ANY is not set | ||
134 | # CONFIG_BF_REV_NONE is not set | ||
135 | CONFIG_BFIN_DUAL_CORE=y | ||
136 | CONFIG_MEM_MT48LC8M32B2B5_7=y | ||
137 | CONFIG_IRQ_PLL_WAKEUP=7 | ||
138 | CONFIG_IRQ_SPORT0_ERROR=7 | ||
139 | CONFIG_IRQ_SPORT1_ERROR=7 | ||
140 | CONFIG_IRQ_SPI_ERROR=7 | ||
141 | # CONFIG_BFIN561_EZKIT is not set | ||
142 | # CONFIG_BFIN561_TEPLA is not set | ||
143 | CONFIG_BFIN561_BLUETECHNIX_CM=y | ||
144 | # CONFIG_GENERIC_BF561_BOARD is not set | ||
145 | |||
146 | # | ||
147 | # BF561 Specific Configuration | ||
148 | # | ||
149 | |||
150 | # | ||
151 | # Core B Support | ||
152 | # | ||
153 | |||
154 | # | ||
155 | # Core B Support | ||
156 | # | ||
157 | CONFIG_BF561_COREB=y | ||
158 | # CONFIG_BF561_COREB_RESET is not set | ||
159 | |||
160 | # | ||
161 | # Interrupt Priority Assignment | ||
162 | # | ||
163 | |||
164 | # | ||
165 | # Priority | ||
166 | # | ||
167 | CONFIG_IRQ_DMA1_ERROR=7 | ||
168 | CONFIG_IRQ_DMA2_ERROR=7 | ||
169 | CONFIG_IRQ_IMDMA_ERROR=7 | ||
170 | CONFIG_IRQ_PPI0_ERROR=7 | ||
171 | CONFIG_IRQ_PPI1_ERROR=7 | ||
172 | CONFIG_IRQ_UART_ERROR=7 | ||
173 | CONFIG_IRQ_RESERVED_ERROR=7 | ||
174 | CONFIG_IRQ_DMA1_0=8 | ||
175 | CONFIG_IRQ_DMA1_1=8 | ||
176 | CONFIG_IRQ_DMA1_2=8 | ||
177 | CONFIG_IRQ_DMA1_3=8 | ||
178 | CONFIG_IRQ_DMA1_4=8 | ||
179 | CONFIG_IRQ_DMA1_5=8 | ||
180 | CONFIG_IRQ_DMA1_6=8 | ||
181 | CONFIG_IRQ_DMA1_7=8 | ||
182 | CONFIG_IRQ_DMA1_8=8 | ||
183 | CONFIG_IRQ_DMA1_9=8 | ||
184 | CONFIG_IRQ_DMA1_10=8 | ||
185 | CONFIG_IRQ_DMA1_11=8 | ||
186 | CONFIG_IRQ_DMA2_0=9 | ||
187 | CONFIG_IRQ_DMA2_1=9 | ||
188 | CONFIG_IRQ_DMA2_2=9 | ||
189 | CONFIG_IRQ_DMA2_3=9 | ||
190 | CONFIG_IRQ_DMA2_4=9 | ||
191 | CONFIG_IRQ_DMA2_5=9 | ||
192 | CONFIG_IRQ_DMA2_6=9 | ||
193 | CONFIG_IRQ_DMA2_7=9 | ||
194 | CONFIG_IRQ_DMA2_8=9 | ||
195 | CONFIG_IRQ_DMA2_9=9 | ||
196 | CONFIG_IRQ_DMA2_10=9 | ||
197 | CONFIG_IRQ_DMA2_11=9 | ||
198 | CONFIG_IRQ_TIMER0=10 | ||
199 | CONFIG_IRQ_TIMER1=10 | ||
200 | CONFIG_IRQ_TIMER2=10 | ||
201 | CONFIG_IRQ_TIMER3=10 | ||
202 | CONFIG_IRQ_TIMER4=10 | ||
203 | CONFIG_IRQ_TIMER5=10 | ||
204 | CONFIG_IRQ_TIMER6=10 | ||
205 | CONFIG_IRQ_TIMER7=10 | ||
206 | CONFIG_IRQ_TIMER8=10 | ||
207 | CONFIG_IRQ_TIMER9=10 | ||
208 | CONFIG_IRQ_TIMER10=10 | ||
209 | CONFIG_IRQ_TIMER11=10 | ||
210 | CONFIG_IRQ_PROG0_INTA=11 | ||
211 | CONFIG_IRQ_PROG0_INTB=11 | ||
212 | CONFIG_IRQ_PROG1_INTA=11 | ||
213 | CONFIG_IRQ_PROG1_INTB=11 | ||
214 | CONFIG_IRQ_PROG2_INTA=11 | ||
215 | CONFIG_IRQ_PROG2_INTB=11 | ||
216 | CONFIG_IRQ_DMA1_WRRD0=8 | ||
217 | CONFIG_IRQ_DMA1_WRRD1=8 | ||
218 | CONFIG_IRQ_DMA2_WRRD0=9 | ||
219 | CONFIG_IRQ_DMA2_WRRD1=9 | ||
220 | CONFIG_IRQ_IMDMA_WRRD0=12 | ||
221 | CONFIG_IRQ_IMDMA_WRRD1=12 | ||
222 | CONFIG_IRQ_WDTIMER=13 | ||
223 | |||
224 | # | ||
225 | # Board customizations | ||
226 | # | ||
227 | # CONFIG_CMDLINE_BOOL is not set | ||
228 | |||
229 | # | ||
230 | # Clock/PLL Setup | ||
231 | # | ||
232 | CONFIG_CLKIN_HZ=25000000 | ||
233 | # CONFIG_BFIN_KERNEL_CLOCK is not set | ||
234 | CONFIG_MAX_VCO_HZ=600000000 | ||
235 | CONFIG_MIN_VCO_HZ=50000000 | ||
236 | CONFIG_MAX_SCLK_HZ=133333333 | ||
237 | CONFIG_MIN_SCLK_HZ=27000000 | ||
238 | |||
239 | # | ||
240 | # Kernel Timer/Scheduler | ||
241 | # | ||
242 | # CONFIG_HZ_100 is not set | ||
243 | CONFIG_HZ_250=y | ||
244 | # CONFIG_HZ_300 is not set | ||
245 | # CONFIG_HZ_1000 is not set | ||
246 | CONFIG_HZ=250 | ||
247 | CONFIG_GENERIC_TIME=y | ||
248 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
249 | # CONFIG_CYCLES_CLOCKSOURCE is not set | ||
250 | # CONFIG_TICK_ONESHOT is not set | ||
251 | # CONFIG_NO_HZ is not set | ||
252 | # CONFIG_HIGH_RES_TIMERS is not set | ||
253 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
254 | |||
255 | # | ||
256 | # Memory Setup | ||
257 | # | ||
258 | CONFIG_MAX_MEM_SIZE=32 | ||
259 | CONFIG_BOOT_LOAD=0x1000 | ||
260 | CONFIG_BFIN_SCRATCH_REG_RETN=y | ||
261 | # CONFIG_BFIN_SCRATCH_REG_RETE is not set | ||
262 | # CONFIG_BFIN_SCRATCH_REG_CYCLES is not set | ||
263 | |||
264 | # | ||
265 | # Blackfin Kernel Optimizations | ||
266 | # | ||
267 | |||
268 | # | ||
269 | # Memory Optimizations | ||
270 | # | ||
271 | CONFIG_I_ENTRY_L1=y | ||
272 | CONFIG_EXCPT_IRQ_SYSC_L1=y | ||
273 | CONFIG_DO_IRQ_L1=y | ||
274 | CONFIG_CORE_TIMER_IRQ_L1=y | ||
275 | CONFIG_IDLE_L1=y | ||
276 | CONFIG_SCHEDULE_L1=y | ||
277 | CONFIG_ARITHMETIC_OPS_L1=y | ||
278 | CONFIG_ACCESS_OK_L1=y | ||
279 | CONFIG_MEMSET_L1=y | ||
280 | CONFIG_MEMCPY_L1=y | ||
281 | CONFIG_SYS_BFIN_SPINLOCK_L1=y | ||
282 | CONFIG_IP_CHECKSUM_L1=y | ||
283 | CONFIG_CACHELINE_ALIGNED_L1=y | ||
284 | CONFIG_SYSCALL_TAB_L1=y | ||
285 | CONFIG_CPLB_SWITCH_TAB_L1=y | ||
286 | CONFIG_RAMKERNEL=y | ||
287 | # CONFIG_ROMKERNEL is not set | ||
288 | CONFIG_SELECT_MEMORY_MODEL=y | ||
289 | CONFIG_FLATMEM_MANUAL=y | ||
290 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
291 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
292 | CONFIG_FLATMEM=y | ||
293 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
294 | # CONFIG_SPARSEMEM_STATIC is not set | ||
295 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
296 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
297 | # CONFIG_RESOURCES_64BIT is not set | ||
298 | CONFIG_ZONE_DMA_FLAG=1 | ||
299 | CONFIG_VIRT_TO_BUS=y | ||
300 | CONFIG_LARGE_ALLOCS=y | ||
301 | # CONFIG_BFIN_GPTIMERS is not set | ||
302 | CONFIG_BFIN_DMA_5XX=y | ||
303 | # CONFIG_DMA_UNCACHED_2M is not set | ||
304 | CONFIG_DMA_UNCACHED_1M=y | ||
305 | # CONFIG_DMA_UNCACHED_NONE is not set | ||
306 | |||
307 | # | ||
308 | # Cache Support | ||
309 | # | ||
310 | CONFIG_BFIN_ICACHE=y | ||
311 | CONFIG_BFIN_DCACHE=y | ||
312 | # CONFIG_BFIN_DCACHE_BANKA is not set | ||
313 | # CONFIG_BFIN_ICACHE_LOCK is not set | ||
314 | CONFIG_BFIN_WB=y | ||
315 | # CONFIG_BFIN_WT is not set | ||
316 | CONFIG_L1_MAX_PIECE=16 | ||
317 | # CONFIG_MPU is not set | ||
318 | |||
319 | # | ||
320 | # Asynchonous Memory Configuration | ||
321 | # | ||
322 | |||
323 | # | ||
324 | # EBIU_AMGCTL Global Control | ||
325 | # | ||
326 | CONFIG_C_AMCKEN=y | ||
327 | CONFIG_C_CDPRIO=y | ||
328 | CONFIG_C_B0PEN=y | ||
329 | CONFIG_C_B1PEN=y | ||
330 | CONFIG_C_B2PEN=y | ||
331 | # CONFIG_C_B3PEN is not set | ||
332 | # CONFIG_C_AMBEN is not set | ||
333 | # CONFIG_C_AMBEN_B0 is not set | ||
334 | # CONFIG_C_AMBEN_B0_B1 is not set | ||
335 | # CONFIG_C_AMBEN_B0_B1_B2 is not set | ||
336 | CONFIG_C_AMBEN_ALL=y | ||
337 | |||
338 | # | ||
339 | # EBIU_AMBCTL Control | ||
340 | # | ||
341 | CONFIG_BANK_0=0x7BB0 | ||
342 | CONFIG_BANK_1=0x7BB0 | ||
343 | CONFIG_BANK_2=0x7BB0 | ||
344 | CONFIG_BANK_3=0xFFC3 | ||
345 | |||
346 | # | ||
347 | # Bus options (PCI, PCMCIA, EISA, MCA, ISA) | ||
348 | # | ||
349 | # CONFIG_PCI is not set | ||
350 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
351 | |||
352 | # | ||
353 | # Executable file formats | ||
354 | # | ||
355 | CONFIG_BINFMT_ELF_FDPIC=y | ||
356 | CONFIG_BINFMT_FLAT=y | ||
357 | CONFIG_BINFMT_ZFLAT=y | ||
358 | CONFIG_BINFMT_SHARED_FLAT=y | ||
359 | # CONFIG_BINFMT_MISC is not set | ||
360 | |||
361 | # | ||
362 | # Power management options | ||
363 | # | ||
364 | # CONFIG_PM is not set | ||
365 | CONFIG_SUSPEND_UP_POSSIBLE=y | ||
366 | # CONFIG_PM_WAKEUP_BY_GPIO is not set | ||
367 | |||
368 | # | ||
369 | # Networking | ||
370 | # | ||
371 | CONFIG_NET=y | ||
372 | |||
373 | # | ||
374 | # Networking options | ||
375 | # | ||
376 | CONFIG_PACKET=y | ||
377 | # CONFIG_PACKET_MMAP is not set | ||
378 | CONFIG_UNIX=y | ||
379 | CONFIG_XFRM=y | ||
380 | # CONFIG_XFRM_USER is not set | ||
381 | # CONFIG_XFRM_SUB_POLICY is not set | ||
382 | # CONFIG_XFRM_MIGRATE is not set | ||
383 | # CONFIG_NET_KEY is not set | ||
384 | CONFIG_INET=y | ||
385 | # CONFIG_IP_MULTICAST is not set | ||
386 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
387 | CONFIG_IP_FIB_HASH=y | ||
388 | # CONFIG_IP_PNP is not set | ||
389 | # CONFIG_NET_IPIP is not set | ||
390 | # CONFIG_NET_IPGRE is not set | ||
391 | # CONFIG_ARPD is not set | ||
392 | CONFIG_SYN_COOKIES=y | ||
393 | # CONFIG_INET_AH is not set | ||
394 | # CONFIG_INET_ESP is not set | ||
395 | # CONFIG_INET_IPCOMP is not set | ||
396 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
397 | # CONFIG_INET_TUNNEL is not set | ||
398 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
399 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
400 | CONFIG_INET_XFRM_MODE_BEET=y | ||
401 | # CONFIG_INET_LRO is not set | ||
402 | CONFIG_INET_DIAG=y | ||
403 | CONFIG_INET_TCP_DIAG=y | ||
404 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
405 | CONFIG_TCP_CONG_CUBIC=y | ||
406 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
407 | # CONFIG_TCP_MD5SIG is not set | ||
408 | # CONFIG_IPV6 is not set | ||
409 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
410 | # CONFIG_INET6_TUNNEL is not set | ||
411 | # CONFIG_NETLABEL is not set | ||
412 | # CONFIG_NETWORK_SECMARK is not set | ||
413 | # CONFIG_NETFILTER is not set | ||
414 | # CONFIG_IP_DCCP is not set | ||
415 | # CONFIG_IP_SCTP is not set | ||
416 | # CONFIG_TIPC is not set | ||
417 | # CONFIG_ATM is not set | ||
418 | # CONFIG_BRIDGE is not set | ||
419 | # CONFIG_VLAN_8021Q is not set | ||
420 | # CONFIG_DECNET is not set | ||
421 | # CONFIG_LLC2 is not set | ||
422 | # CONFIG_IPX is not set | ||
423 | # CONFIG_ATALK is not set | ||
424 | # CONFIG_X25 is not set | ||
425 | # CONFIG_LAPB is not set | ||
426 | # CONFIG_ECONET is not set | ||
427 | # CONFIG_WAN_ROUTER is not set | ||
428 | # CONFIG_NET_SCHED is not set | ||
429 | |||
430 | # | ||
431 | # Network testing | ||
432 | # | ||
433 | # CONFIG_NET_PKTGEN is not set | ||
434 | # CONFIG_HAMRADIO is not set | ||
435 | # CONFIG_IRDA is not set | ||
436 | # CONFIG_BT is not set | ||
437 | # CONFIG_AF_RXRPC is not set | ||
438 | |||
439 | # | ||
440 | # Wireless | ||
441 | # | ||
442 | # CONFIG_CFG80211 is not set | ||
443 | # CONFIG_WIRELESS_EXT is not set | ||
444 | # CONFIG_MAC80211 is not set | ||
445 | # CONFIG_IEEE80211 is not set | ||
446 | # CONFIG_RFKILL is not set | ||
447 | # CONFIG_NET_9P 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_SYS_HYPERVISOR is not set | ||
459 | # CONFIG_CONNECTOR is not set | ||
460 | CONFIG_MTD=y | ||
461 | # CONFIG_MTD_DEBUG is not set | ||
462 | # CONFIG_MTD_CONCAT is not set | ||
463 | CONFIG_MTD_PARTITIONS=y | ||
464 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
465 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
466 | |||
467 | # | ||
468 | # User Modules And Translation Layers | ||
469 | # | ||
470 | CONFIG_MTD_CHAR=y | ||
471 | CONFIG_MTD_BLKDEVS=y | ||
472 | CONFIG_MTD_BLOCK=y | ||
473 | # CONFIG_FTL is not set | ||
474 | # CONFIG_NFTL is not set | ||
475 | # CONFIG_INFTL is not set | ||
476 | # CONFIG_RFD_FTL is not set | ||
477 | # CONFIG_SSFDC is not set | ||
478 | # CONFIG_MTD_OOPS is not set | ||
479 | |||
480 | # | ||
481 | # RAM/ROM/Flash chip drivers | ||
482 | # | ||
483 | # CONFIG_MTD_CFI is not set | ||
484 | # CONFIG_MTD_JEDECPROBE is not set | ||
485 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
486 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
487 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
488 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
489 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
490 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
491 | CONFIG_MTD_CFI_I1=y | ||
492 | CONFIG_MTD_CFI_I2=y | ||
493 | # CONFIG_MTD_CFI_I4 is not set | ||
494 | # CONFIG_MTD_CFI_I8 is not set | ||
495 | CONFIG_MTD_RAM=y | ||
496 | # CONFIG_MTD_ROM is not set | ||
497 | # CONFIG_MTD_ABSENT is not set | ||
498 | |||
499 | # | ||
500 | # Mapping drivers for chip access | ||
501 | # | ||
502 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
503 | CONFIG_MTD_UCLINUX=y | ||
504 | # CONFIG_MTD_PLATRAM is not set | ||
505 | |||
506 | # | ||
507 | # Self-contained MTD device drivers | ||
508 | # | ||
509 | # CONFIG_MTD_SLRAM is not set | ||
510 | # CONFIG_MTD_PHRAM is not set | ||
511 | # CONFIG_MTD_MTDRAM 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 | # CONFIG_MTD_NAND is not set | ||
521 | # CONFIG_MTD_ONENAND is not set | ||
522 | |||
523 | # | ||
524 | # UBI - Unsorted block images | ||
525 | # | ||
526 | # CONFIG_MTD_UBI is not set | ||
527 | # CONFIG_PARPORT is not set | ||
528 | CONFIG_BLK_DEV=y | ||
529 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
530 | # CONFIG_BLK_DEV_LOOP is not set | ||
531 | # CONFIG_BLK_DEV_NBD is not set | ||
532 | CONFIG_BLK_DEV_RAM=y | ||
533 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
534 | CONFIG_BLK_DEV_RAM_SIZE=4096 | ||
535 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | ||
536 | # CONFIG_CDROM_PKTCDVD is not set | ||
537 | # CONFIG_ATA_OVER_ETH is not set | ||
538 | CONFIG_MISC_DEVICES=y | ||
539 | # CONFIG_EEPROM_93CX6 is not set | ||
540 | # CONFIG_IDE is not set | ||
541 | # CONFIG_BFIN_IDE_ADDRESS_MAPPING_MODE0 is not set | ||
542 | # CONFIG_BFIN_IDE_ADDRESS_MAPPING_MODE1 is not set | ||
543 | |||
544 | # | ||
545 | # SCSI device support | ||
546 | # | ||
547 | # CONFIG_RAID_ATTRS is not set | ||
548 | # CONFIG_SCSI is not set | ||
549 | # CONFIG_SCSI_DMA is not set | ||
550 | # CONFIG_SCSI_NETLINK is not set | ||
551 | # CONFIG_ATA is not set | ||
552 | # CONFIG_MD is not set | ||
553 | CONFIG_NETDEVICES=y | ||
554 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
555 | # CONFIG_DUMMY is not set | ||
556 | # CONFIG_BONDING is not set | ||
557 | # CONFIG_MACVLAN is not set | ||
558 | # CONFIG_EQUALIZER is not set | ||
559 | # CONFIG_TUN is not set | ||
560 | # CONFIG_VETH is not set | ||
561 | # CONFIG_PHYLIB is not set | ||
562 | CONFIG_NET_ETHERNET=y | ||
563 | CONFIG_MII=y | ||
564 | CONFIG_SMC91X=y | ||
565 | # CONFIG_SMSC911X is not set | ||
566 | # CONFIG_DM9000 is not set | ||
567 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
568 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
569 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
570 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
571 | # CONFIG_B44 is not set | ||
572 | CONFIG_NETDEV_1000=y | ||
573 | # CONFIG_AX88180 is not set | ||
574 | CONFIG_NETDEV_10000=y | ||
575 | |||
576 | # | ||
577 | # Wireless LAN | ||
578 | # | ||
579 | # CONFIG_WLAN_PRE80211 is not set | ||
580 | # CONFIG_WLAN_80211 is not set | ||
581 | # CONFIG_WAN is not set | ||
582 | # CONFIG_PPP is not set | ||
583 | # CONFIG_SLIP is not set | ||
584 | # CONFIG_SHAPER is not set | ||
585 | # CONFIG_NETCONSOLE is not set | ||
586 | # CONFIG_NETPOLL is not set | ||
587 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
588 | # CONFIG_ISDN is not set | ||
589 | # CONFIG_PHONE is not set | ||
590 | |||
591 | # | ||
592 | # Input device support | ||
593 | # | ||
594 | # CONFIG_INPUT is not set | ||
595 | |||
596 | # | ||
597 | # Hardware I/O ports | ||
598 | # | ||
599 | # CONFIG_SERIO is not set | ||
600 | # CONFIG_GAMEPORT is not set | ||
601 | |||
602 | # | ||
603 | # Character devices | ||
604 | # | ||
605 | # CONFIG_AD9960 is not set | ||
606 | # CONFIG_SPI_ADC_BF533 is not set | ||
607 | # CONFIG_BF5xx_PPIFCD is not set | ||
608 | # CONFIG_BFIN_SIMPLE_TIMER is not set | ||
609 | # CONFIG_BF5xx_PPI is not set | ||
610 | # CONFIG_BFIN_SPORT is not set | ||
611 | # CONFIG_BFIN_TIMER_LATENCY is not set | ||
612 | # CONFIG_SIMPLE_GPIO is not set | ||
613 | # CONFIG_VT is not set | ||
614 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
615 | |||
616 | # | ||
617 | # Serial drivers | ||
618 | # | ||
619 | # CONFIG_SERIAL_8250 is not set | ||
620 | |||
621 | # | ||
622 | # Non-8250 serial port support | ||
623 | # | ||
624 | CONFIG_SERIAL_BFIN=y | ||
625 | CONFIG_SERIAL_BFIN_CONSOLE=y | ||
626 | CONFIG_SERIAL_BFIN_DMA=y | ||
627 | # CONFIG_SERIAL_BFIN_PIO is not set | ||
628 | CONFIG_SERIAL_BFIN_UART0=y | ||
629 | # CONFIG_BFIN_UART0_CTSRTS is not set | ||
630 | CONFIG_SERIAL_CORE=y | ||
631 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
632 | # CONFIG_SERIAL_BFIN_SPORT is not set | ||
633 | CONFIG_UNIX98_PTYS=y | ||
634 | CONFIG_LEGACY_PTYS=y | ||
635 | CONFIG_LEGACY_PTY_COUNT=256 | ||
636 | |||
637 | # | ||
638 | # CAN, the car bus and industrial fieldbus | ||
639 | # | ||
640 | # CONFIG_CAN4LINUX is not set | ||
641 | # CONFIG_IPMI_HANDLER is not set | ||
642 | # CONFIG_HW_RANDOM is not set | ||
643 | # CONFIG_GEN_RTC is not set | ||
644 | # CONFIG_R3964 is not set | ||
645 | # CONFIG_RAW_DRIVER is not set | ||
646 | # CONFIG_TCG_TPM is not set | ||
647 | # CONFIG_I2C is not set | ||
648 | |||
649 | # | ||
650 | # SPI support | ||
651 | # | ||
652 | # CONFIG_SPI is not set | ||
653 | # CONFIG_SPI_MASTER is not set | ||
654 | # CONFIG_W1 is not set | ||
655 | # CONFIG_POWER_SUPPLY is not set | ||
656 | CONFIG_HWMON=y | ||
657 | # CONFIG_HWMON_VID is not set | ||
658 | # CONFIG_SENSORS_F71805F is not set | ||
659 | # CONFIG_SENSORS_F71882FG is not set | ||
660 | # CONFIG_SENSORS_IT87 is not set | ||
661 | # CONFIG_SENSORS_PC87360 is not set | ||
662 | # CONFIG_SENSORS_PC87427 is not set | ||
663 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
664 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
665 | # CONFIG_SENSORS_VT1211 is not set | ||
666 | # CONFIG_SENSORS_W83627HF is not set | ||
667 | # CONFIG_SENSORS_W83627EHF is not set | ||
668 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
669 | # CONFIG_WATCHDOG is not set | ||
670 | |||
671 | # | ||
672 | # Sonics Silicon Backplane | ||
673 | # | ||
674 | CONFIG_SSB_POSSIBLE=y | ||
675 | # CONFIG_SSB is not set | ||
676 | |||
677 | # | ||
678 | # Multifunction device drivers | ||
679 | # | ||
680 | # CONFIG_MFD_SM501 is not set | ||
681 | |||
682 | # | ||
683 | # Multimedia devices | ||
684 | # | ||
685 | # CONFIG_VIDEO_DEV is not set | ||
686 | # CONFIG_DVB_CORE is not set | ||
687 | CONFIG_DAB=y | ||
688 | |||
689 | # | ||
690 | # Graphics support | ||
691 | # | ||
692 | # CONFIG_VGASTATE is not set | ||
693 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
694 | # CONFIG_FB is not set | ||
695 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
696 | |||
697 | # | ||
698 | # Display device support | ||
699 | # | ||
700 | # CONFIG_DISPLAY_SUPPORT is not set | ||
701 | |||
702 | # | ||
703 | # Sound | ||
704 | # | ||
705 | # CONFIG_SOUND is not set | ||
706 | CONFIG_USB_SUPPORT=y | ||
707 | CONFIG_USB_ARCH_HAS_HCD=y | ||
708 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
709 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
710 | # CONFIG_USB is not set | ||
711 | |||
712 | # | ||
713 | # Enable Host or Gadget support to see Inventra options | ||
714 | # | ||
715 | |||
716 | # | ||
717 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
718 | # | ||
719 | |||
720 | # | ||
721 | # USB Gadget Support | ||
722 | # | ||
723 | # CONFIG_USB_GADGET is not set | ||
724 | # CONFIG_MMC is not set | ||
725 | # CONFIG_NEW_LEDS is not set | ||
726 | # CONFIG_RTC_CLASS is not set | ||
727 | |||
728 | # | ||
729 | # Userspace I/O | ||
730 | # | ||
731 | # CONFIG_UIO is not set | ||
732 | |||
733 | # | ||
734 | # PBX support | ||
735 | # | ||
736 | # CONFIG_PBX is not set | ||
737 | |||
738 | # | ||
739 | # File systems | ||
740 | # | ||
741 | CONFIG_EXT2_FS=y | ||
742 | CONFIG_EXT2_FS_XATTR=y | ||
743 | # CONFIG_EXT2_FS_POSIX_ACL is not set | ||
744 | # CONFIG_EXT2_FS_SECURITY is not set | ||
745 | # CONFIG_EXT3_FS is not set | ||
746 | # CONFIG_EXT4DEV_FS is not set | ||
747 | CONFIG_FS_MBCACHE=y | ||
748 | # CONFIG_REISERFS_FS is not set | ||
749 | # CONFIG_JFS_FS is not set | ||
750 | # CONFIG_FS_POSIX_ACL is not set | ||
751 | # CONFIG_XFS_FS is not set | ||
752 | # CONFIG_GFS2_FS is not set | ||
753 | # CONFIG_OCFS2_FS is not set | ||
754 | # CONFIG_MINIX_FS is not set | ||
755 | # CONFIG_ROMFS_FS is not set | ||
756 | CONFIG_INOTIFY=y | ||
757 | CONFIG_INOTIFY_USER=y | ||
758 | # CONFIG_QUOTA is not set | ||
759 | CONFIG_DNOTIFY=y | ||
760 | # CONFIG_AUTOFS_FS is not set | ||
761 | # CONFIG_AUTOFS4_FS is not set | ||
762 | # CONFIG_FUSE_FS is not set | ||
763 | |||
764 | # | ||
765 | # CD-ROM/DVD Filesystems | ||
766 | # | ||
767 | # CONFIG_ISO9660_FS is not set | ||
768 | # CONFIG_UDF_FS is not set | ||
769 | |||
770 | # | ||
771 | # DOS/FAT/NT Filesystems | ||
772 | # | ||
773 | # CONFIG_MSDOS_FS is not set | ||
774 | # CONFIG_VFAT_FS is not set | ||
775 | # CONFIG_NTFS_FS is not set | ||
776 | |||
777 | # | ||
778 | # Pseudo filesystems | ||
779 | # | ||
780 | CONFIG_PROC_FS=y | ||
781 | CONFIG_PROC_SYSCTL=y | ||
782 | CONFIG_SYSFS=y | ||
783 | # CONFIG_TMPFS is not set | ||
784 | # CONFIG_HUGETLB_PAGE is not set | ||
785 | # CONFIG_CONFIGFS_FS is not set | ||
786 | |||
787 | # | ||
788 | # Miscellaneous filesystems | ||
789 | # | ||
790 | # CONFIG_ADFS_FS is not set | ||
791 | # CONFIG_AFFS_FS is not set | ||
792 | # CONFIG_HFS_FS is not set | ||
793 | # CONFIG_HFSPLUS_FS is not set | ||
794 | # CONFIG_BEFS_FS is not set | ||
795 | # CONFIG_BFS_FS is not set | ||
796 | # CONFIG_EFS_FS is not set | ||
797 | # CONFIG_YAFFS_FS is not set | ||
798 | # CONFIG_JFFS2_FS is not set | ||
799 | # CONFIG_CRAMFS is not set | ||
800 | # CONFIG_VXFS_FS is not set | ||
801 | # CONFIG_HPFS_FS is not set | ||
802 | # CONFIG_QNX4FS_FS is not set | ||
803 | # CONFIG_SYSV_FS is not set | ||
804 | # CONFIG_UFS_FS is not set | ||
805 | CONFIG_NETWORK_FILESYSTEMS=y | ||
806 | # CONFIG_NFS_FS is not set | ||
807 | # CONFIG_NFSD is not set | ||
808 | # CONFIG_SMB_FS is not set | ||
809 | # CONFIG_CIFS is not set | ||
810 | # CONFIG_NCP_FS is not set | ||
811 | # CONFIG_CODA_FS is not set | ||
812 | # CONFIG_AFS_FS is not set | ||
813 | |||
814 | # | ||
815 | # Partition Types | ||
816 | # | ||
817 | # CONFIG_PARTITION_ADVANCED is not set | ||
818 | CONFIG_MSDOS_PARTITION=y | ||
819 | # CONFIG_NLS is not set | ||
820 | # CONFIG_DLM is not set | ||
821 | CONFIG_INSTRUMENTATION=y | ||
822 | # CONFIG_PROFILING is not set | ||
823 | # CONFIG_MARKERS is not set | ||
824 | |||
825 | # | ||
826 | # Kernel hacking | ||
827 | # | ||
828 | # CONFIG_PRINTK_TIME is not set | ||
829 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
830 | CONFIG_ENABLE_MUST_CHECK=y | ||
831 | # CONFIG_MAGIC_SYSRQ is not set | ||
832 | # CONFIG_UNUSED_SYMBOLS is not set | ||
833 | # CONFIG_DEBUG_FS is not set | ||
834 | # CONFIG_HEADERS_CHECK is not set | ||
835 | # CONFIG_DEBUG_KERNEL is not set | ||
836 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
837 | # CONFIG_SAMPLES is not set | ||
838 | # CONFIG_DEBUG_MMRS is not set | ||
839 | CONFIG_DEBUG_HUNT_FOR_ZERO=y | ||
840 | CONFIG_DEBUG_BFIN_HWTRACE_ON=y | ||
841 | CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF=y | ||
842 | # CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE is not set | ||
843 | # CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_TWO is not set | ||
844 | CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION=0 | ||
845 | # CONFIG_DEBUG_BFIN_HWTRACE_EXPAND is not set | ||
846 | # CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set | ||
847 | # CONFIG_EARLY_PRINTK is not set | ||
848 | # CONFIG_DUAL_CORE_TEST_MODULE is not set | ||
849 | CONFIG_CPLB_INFO=y | ||
850 | CONFIG_ACCESS_CHECK=y | ||
851 | |||
852 | # | ||
853 | # Security options | ||
854 | # | ||
855 | # CONFIG_KEYS is not set | ||
856 | CONFIG_SECURITY=y | ||
857 | # CONFIG_SECURITY_NETWORK is not set | ||
858 | CONFIG_SECURITY_CAPABILITIES=y | ||
859 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
860 | # CONFIG_CRYPTO is not set | ||
861 | |||
862 | # | ||
863 | # Library routines | ||
864 | # | ||
865 | CONFIG_BITREVERSE=y | ||
866 | CONFIG_CRC_CCITT=m | ||
867 | # CONFIG_CRC16 is not set | ||
868 | # CONFIG_CRC_ITU_T is not set | ||
869 | CONFIG_CRC32=y | ||
870 | # CONFIG_CRC7 is not set | ||
871 | # CONFIG_LIBCRC32C is not set | ||
872 | CONFIG_ZLIB_INFLATE=y | ||
873 | CONFIG_PLIST=y | ||
874 | CONFIG_HAS_IOMEM=y | ||
875 | CONFIG_HAS_IOPORT=y | ||
876 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/blackfin/configs/H8606_defconfig b/arch/blackfin/configs/H8606_defconfig index 18cbb8c3c373..679c7483ea71 100644 --- a/arch/blackfin/configs/H8606_defconfig +++ b/arch/blackfin/configs/H8606_defconfig | |||
@@ -13,7 +13,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y | |||
13 | CONFIG_GENERIC_HWEIGHT=y | 13 | CONFIG_GENERIC_HWEIGHT=y |
14 | CONFIG_GENERIC_HARDIRQS=y | 14 | CONFIG_GENERIC_HARDIRQS=y |
15 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
16 | # CONFIG_GENERIC_TIME is not set | 16 | CONFIG_GENERIC_TIME=y |
17 | CONFIG_GENERIC_GPIO=y | 17 | CONFIG_GENERIC_GPIO=y |
18 | CONFIG_FORCE_MAX_ZONEORDER=14 | 18 | CONFIG_FORCE_MAX_ZONEORDER=14 |
19 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 19 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
@@ -207,7 +207,7 @@ CONFIG_HZ=250 | |||
207 | # | 207 | # |
208 | # Memory Setup | 208 | # Memory Setup |
209 | # | 209 | # |
210 | CONFIG_MEM_SIZE=32 | 210 | CONFIG_MAX_MEM_SIZE=32 |
211 | CONFIG_MEM_ADD_WIDTH=9 | 211 | CONFIG_MEM_ADD_WIDTH=9 |
212 | CONFIG_BOOT_LOAD=0x1000 | 212 | CONFIG_BOOT_LOAD=0x1000 |
213 | CONFIG_BFIN_SCRATCH_REG_RETN=y | 213 | CONFIG_BFIN_SCRATCH_REG_RETN=y |
diff --git a/arch/blackfin/configs/IP0X_defconfig b/arch/blackfin/configs/IP0X_defconfig new file mode 100644 index 000000000000..5f6ff04a86c3 --- /dev/null +++ b/arch/blackfin/configs/IP0X_defconfig | |||
@@ -0,0 +1,1252 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.22.18 | ||
4 | # | ||
5 | # CONFIG_MMU is not set | ||
6 | # CONFIG_FPU is not set | ||
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
8 | # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set | ||
9 | CONFIG_BLACKFIN=y | ||
10 | CONFIG_ZONE_DMA=y | ||
11 | CONFIG_SEMAPHORE_SLEEPERS=y | ||
12 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
13 | CONFIG_GENERIC_HWEIGHT=y | ||
14 | CONFIG_GENERIC_HARDIRQS=y | ||
15 | CONFIG_GENERIC_IRQ_PROBE=y | ||
16 | # CONFIG_GENERIC_TIME is not set | ||
17 | CONFIG_GENERIC_GPIO=y | ||
18 | CONFIG_FORCE_MAX_ZONEORDER=14 | ||
19 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
20 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
21 | |||
22 | # | ||
23 | # Code maturity level options | ||
24 | # | ||
25 | CONFIG_EXPERIMENTAL=y | ||
26 | CONFIG_BROKEN_ON_SMP=y | ||
27 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
28 | |||
29 | # | ||
30 | # General setup | ||
31 | # | ||
32 | CONFIG_LOCALVERSION="" | ||
33 | CONFIG_LOCALVERSION_AUTO=y | ||
34 | CONFIG_SYSVIPC=y | ||
35 | # CONFIG_IPC_NS is not set | ||
36 | CONFIG_SYSVIPC_SYSCTL=y | ||
37 | # CONFIG_POSIX_MQUEUE is not set | ||
38 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
39 | # CONFIG_TASKSTATS is not set | ||
40 | # CONFIG_UTS_NS is not set | ||
41 | # CONFIG_AUDIT is not set | ||
42 | # CONFIG_IKCONFIG is not set | ||
43 | CONFIG_LOG_BUF_SHIFT=14 | ||
44 | CONFIG_SYSFS_DEPRECATED=y | ||
45 | # CONFIG_RELAY is not set | ||
46 | CONFIG_BLK_DEV_INITRD=y | ||
47 | CONFIG_INITRAMFS_SOURCE="" | ||
48 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
49 | CONFIG_SYSCTL=y | ||
50 | CONFIG_EMBEDDED=y | ||
51 | CONFIG_UID16=y | ||
52 | CONFIG_SYSCTL_SYSCALL=y | ||
53 | CONFIG_KALLSYMS=y | ||
54 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
55 | # CONFIG_HOTPLUG is not set | ||
56 | CONFIG_PRINTK=y | ||
57 | CONFIG_BUG=y | ||
58 | CONFIG_ELF_CORE=y | ||
59 | CONFIG_BASE_FULL=y | ||
60 | CONFIG_FUTEX=y | ||
61 | CONFIG_ANON_INODES=y | ||
62 | CONFIG_EPOLL=y | ||
63 | CONFIG_SIGNALFD=y | ||
64 | CONFIG_EVENTFD=y | ||
65 | CONFIG_VM_EVENT_COUNTERS=y | ||
66 | CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3 | ||
67 | # CONFIG_NP2 is not set | ||
68 | CONFIG_SLAB=y | ||
69 | # CONFIG_SLUB is not set | ||
70 | # CONFIG_SLOB is not set | ||
71 | CONFIG_RT_MUTEXES=y | ||
72 | CONFIG_TINY_SHMEM=y | ||
73 | CONFIG_BASE_SMALL=0 | ||
74 | |||
75 | # | ||
76 | # Loadable module support | ||
77 | # | ||
78 | CONFIG_MODULES=y | ||
79 | CONFIG_MODULE_UNLOAD=y | ||
80 | # CONFIG_MODULE_FORCE_UNLOAD is not set | ||
81 | # CONFIG_MODVERSIONS is not set | ||
82 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
83 | CONFIG_KMOD=y | ||
84 | |||
85 | # | ||
86 | # Block layer | ||
87 | # | ||
88 | CONFIG_BLOCK=y | ||
89 | # CONFIG_LBD is not set | ||
90 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
91 | # CONFIG_LSF is not set | ||
92 | |||
93 | # | ||
94 | # IO Schedulers | ||
95 | # | ||
96 | CONFIG_IOSCHED_NOOP=y | ||
97 | CONFIG_IOSCHED_AS=y | ||
98 | # CONFIG_IOSCHED_DEADLINE is not set | ||
99 | CONFIG_IOSCHED_CFQ=y | ||
100 | CONFIG_DEFAULT_AS=y | ||
101 | # CONFIG_DEFAULT_DEADLINE is not set | ||
102 | # CONFIG_DEFAULT_CFQ is not set | ||
103 | # CONFIG_DEFAULT_NOOP is not set | ||
104 | CONFIG_DEFAULT_IOSCHED="anticipatory" | ||
105 | CONFIG_PREEMPT_NONE=y | ||
106 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
107 | # CONFIG_PREEMPT is not set | ||
108 | |||
109 | # | ||
110 | # Blackfin Processor Options | ||
111 | # | ||
112 | |||
113 | # | ||
114 | # Processor and Board Settings | ||
115 | # | ||
116 | # CONFIG_BF522 is not set | ||
117 | # CONFIG_BF523 is not set | ||
118 | # CONFIG_BF524 is not set | ||
119 | # CONFIG_BF525 is not set | ||
120 | # CONFIG_BF526 is not set | ||
121 | # CONFIG_BF527 is not set | ||
122 | # CONFIG_BF531 is not set | ||
123 | CONFIG_BF532=y | ||
124 | # CONFIG_BF533 is not set | ||
125 | # CONFIG_BF534 is not set | ||
126 | # CONFIG_BF536 is not set | ||
127 | # CONFIG_BF537 is not set | ||
128 | # CONFIG_BF542 is not set | ||
129 | # CONFIG_BF544 is not set | ||
130 | # CONFIG_BF547 is not set | ||
131 | # CONFIG_BF548 is not set | ||
132 | # CONFIG_BF549 is not set | ||
133 | # CONFIG_BF561 is not set | ||
134 | # CONFIG_BF_REV_0_0 is not set | ||
135 | # CONFIG_BF_REV_0_1 is not set | ||
136 | # CONFIG_BF_REV_0_2 is not set | ||
137 | # CONFIG_BF_REV_0_3 is not set | ||
138 | # CONFIG_BF_REV_0_4 is not set | ||
139 | CONFIG_BF_REV_0_5=y | ||
140 | # CONFIG_BF_REV_ANY is not set | ||
141 | # CONFIG_BF_REV_NONE is not set | ||
142 | CONFIG_BF53x=y | ||
143 | CONFIG_BFIN_SINGLE_CORE=y | ||
144 | CONFIG_MEM_MT48LC32M16A2TG_75=y | ||
145 | # CONFIG_BFIN533_EZKIT is not set | ||
146 | # CONFIG_BFIN533_STAMP is not set | ||
147 | # CONFIG_BFIN533_BLUETECHNIX_CM is not set | ||
148 | # CONFIG_H8606_HVSISTEMAS is not set | ||
149 | CONFIG_BFIN532_IP0X=y | ||
150 | # CONFIG_GENERIC_BF533_BOARD is not set | ||
151 | |||
152 | # | ||
153 | # BF533/2/1 Specific Configuration | ||
154 | # | ||
155 | |||
156 | # | ||
157 | # Interrupt Priority Assignment | ||
158 | # | ||
159 | |||
160 | # | ||
161 | # Priority | ||
162 | # | ||
163 | CONFIG_UART_ERROR=7 | ||
164 | CONFIG_SPORT0_ERROR=7 | ||
165 | CONFIG_SPI_ERROR=7 | ||
166 | CONFIG_SPORT1_ERROR=7 | ||
167 | CONFIG_PPI_ERROR=7 | ||
168 | CONFIG_DMA_ERROR=7 | ||
169 | CONFIG_PLLWAKE_ERROR=7 | ||
170 | CONFIG_RTC_ERROR=8 | ||
171 | CONFIG_DMA0_PPI=8 | ||
172 | CONFIG_DMA1_SPORT0RX=9 | ||
173 | CONFIG_DMA2_SPORT0TX=9 | ||
174 | CONFIG_DMA3_SPORT1RX=9 | ||
175 | CONFIG_DMA4_SPORT1TX=9 | ||
176 | CONFIG_DMA5_SPI=10 | ||
177 | CONFIG_DMA6_UARTRX=10 | ||
178 | CONFIG_DMA7_UARTTX=10 | ||
179 | CONFIG_TIMER0=11 | ||
180 | CONFIG_TIMER1=11 | ||
181 | CONFIG_TIMER2=11 | ||
182 | CONFIG_PFA=12 | ||
183 | CONFIG_PFB=12 | ||
184 | CONFIG_MEMDMA0=13 | ||
185 | CONFIG_MEMDMA1=13 | ||
186 | CONFIG_WDTIMER=13 | ||
187 | |||
188 | # | ||
189 | # Board customizations | ||
190 | # | ||
191 | # CONFIG_CMDLINE_BOOL is not set | ||
192 | |||
193 | # | ||
194 | # Clock/PLL Setup | ||
195 | # | ||
196 | CONFIG_CLKIN_HZ=10000000 | ||
197 | # CONFIG_BFIN_KERNEL_CLOCK is not set | ||
198 | CONFIG_MAX_VCO_HZ=400000000 | ||
199 | CONFIG_MIN_VCO_HZ=50000000 | ||
200 | CONFIG_MAX_SCLK_HZ=133333333 | ||
201 | CONFIG_MIN_SCLK_HZ=27000000 | ||
202 | |||
203 | # | ||
204 | # Kernel Timer/Scheduler | ||
205 | # | ||
206 | # CONFIG_HZ_100 is not set | ||
207 | CONFIG_HZ_250=y | ||
208 | # CONFIG_HZ_300 is not set | ||
209 | # CONFIG_HZ_1000 is not set | ||
210 | CONFIG_HZ=250 | ||
211 | |||
212 | # | ||
213 | # Memory Setup | ||
214 | # | ||
215 | CONFIG_MEM_SIZE=64 | ||
216 | CONFIG_MEM_ADD_WIDTH=10 | ||
217 | |||
218 | # | ||
219 | # Hardware addresses | ||
220 | # | ||
221 | CONFIG_IP0X_NET1=0x20100000 | ||
222 | CONFIG_IP0X_NET2=0x20200000 | ||
223 | CONFIG_IP0X_USB=0x20300000 | ||
224 | CONFIG_BOOT_LOAD=0x1000 | ||
225 | CONFIG_BFIN_SCRATCH_REG_RETN=y | ||
226 | # CONFIG_BFIN_SCRATCH_REG_RETE is not set | ||
227 | # CONFIG_BFIN_SCRATCH_REG_CYCLES is not set | ||
228 | |||
229 | # | ||
230 | # Blackfin Kernel Optimizations | ||
231 | # | ||
232 | |||
233 | # | ||
234 | # Memory Optimizations | ||
235 | # | ||
236 | CONFIG_I_ENTRY_L1=y | ||
237 | CONFIG_EXCPT_IRQ_SYSC_L1=y | ||
238 | CONFIG_DO_IRQ_L1=y | ||
239 | CONFIG_CORE_TIMER_IRQ_L1=y | ||
240 | CONFIG_IDLE_L1=y | ||
241 | CONFIG_SCHEDULE_L1=y | ||
242 | CONFIG_ARITHMETIC_OPS_L1=y | ||
243 | CONFIG_ACCESS_OK_L1=y | ||
244 | CONFIG_MEMSET_L1=y | ||
245 | CONFIG_MEMCPY_L1=y | ||
246 | CONFIG_SYS_BFIN_SPINLOCK_L1=y | ||
247 | # CONFIG_IP_CHECKSUM_L1 is not set | ||
248 | CONFIG_CACHELINE_ALIGNED_L1=y | ||
249 | # CONFIG_SYSCALL_TAB_L1 is not set | ||
250 | # CONFIG_CPLB_SWITCH_TAB_L1 is not set | ||
251 | CONFIG_RAMKERNEL=y | ||
252 | # CONFIG_ROMKERNEL is not set | ||
253 | CONFIG_SELECT_MEMORY_MODEL=y | ||
254 | CONFIG_FLATMEM_MANUAL=y | ||
255 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
256 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
257 | CONFIG_FLATMEM=y | ||
258 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
259 | # CONFIG_SPARSEMEM_STATIC is not set | ||
260 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
261 | # CONFIG_RESOURCES_64BIT is not set | ||
262 | CONFIG_ZONE_DMA_FLAG=1 | ||
263 | CONFIG_LARGE_ALLOCS=y | ||
264 | # CONFIG_BFIN_GPTIMERS is not set | ||
265 | CONFIG_BFIN_DMA_5XX=y | ||
266 | # CONFIG_DMA_UNCACHED_2M is not set | ||
267 | CONFIG_DMA_UNCACHED_1M=y | ||
268 | # CONFIG_DMA_UNCACHED_NONE is not set | ||
269 | |||
270 | # | ||
271 | # Cache Support | ||
272 | # | ||
273 | # CONFIG_BFIN_ICACHE is not set | ||
274 | # CONFIG_BFIN_DCACHE is not set | ||
275 | # CONFIG_BFIN_ICACHE_LOCK is not set | ||
276 | CONFIG_L1_MAX_PIECE=16 | ||
277 | # CONFIG_MPU is not set | ||
278 | |||
279 | # | ||
280 | # Asynchonous Memory Configuration | ||
281 | # | ||
282 | |||
283 | # | ||
284 | # EBIU_AMGCTL Global Control | ||
285 | # | ||
286 | CONFIG_C_AMCKEN=y | ||
287 | CONFIG_C_CDPRIO=y | ||
288 | # CONFIG_C_AMBEN is not set | ||
289 | # CONFIG_C_AMBEN_B0 is not set | ||
290 | # CONFIG_C_AMBEN_B0_B1 is not set | ||
291 | # CONFIG_C_AMBEN_B0_B1_B2 is not set | ||
292 | CONFIG_C_AMBEN_ALL=y | ||
293 | |||
294 | # | ||
295 | # EBIU_AMBCTL Control | ||
296 | # | ||
297 | CONFIG_BANK_0=0xffc2 | ||
298 | CONFIG_BANK_1=0xffc2 | ||
299 | CONFIG_BANK_2=0xffc2 | ||
300 | CONFIG_BANK_3=0xffc2 | ||
301 | |||
302 | # | ||
303 | # Bus options (PCI, PCMCIA, EISA, MCA, ISA) | ||
304 | # | ||
305 | # CONFIG_PCI is not set | ||
306 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
307 | |||
308 | # | ||
309 | # PCCARD (PCMCIA/CardBus) support | ||
310 | # | ||
311 | |||
312 | # | ||
313 | # Executable file formats | ||
314 | # | ||
315 | CONFIG_BINFMT_ELF_FDPIC=y | ||
316 | CONFIG_BINFMT_FLAT=y | ||
317 | CONFIG_BINFMT_ZFLAT=y | ||
318 | # CONFIG_BINFMT_SHARED_FLAT is not set | ||
319 | # CONFIG_BINFMT_MISC is not set | ||
320 | |||
321 | # | ||
322 | # Power management options | ||
323 | # | ||
324 | CONFIG_PM=y | ||
325 | # CONFIG_PM_LEGACY is not set | ||
326 | # CONFIG_PM_DEBUG is not set | ||
327 | # CONFIG_PM_SYSFS_DEPRECATED is not set | ||
328 | CONFIG_PM_BFIN_SLEEP_DEEPER=y | ||
329 | # CONFIG_PM_BFIN_SLEEP is not set | ||
330 | # CONFIG_PM_WAKEUP_BY_GPIO is not set | ||
331 | |||
332 | # | ||
333 | # Networking | ||
334 | # | ||
335 | CONFIG_NET=y | ||
336 | |||
337 | # | ||
338 | # Networking options | ||
339 | # | ||
340 | CONFIG_PACKET=y | ||
341 | # CONFIG_PACKET_MMAP is not set | ||
342 | CONFIG_UNIX=y | ||
343 | CONFIG_XFRM=y | ||
344 | # CONFIG_XFRM_USER is not set | ||
345 | # CONFIG_XFRM_SUB_POLICY is not set | ||
346 | # CONFIG_XFRM_MIGRATE is not set | ||
347 | # CONFIG_NET_KEY is not set | ||
348 | CONFIG_INET=y | ||
349 | # CONFIG_IP_MULTICAST is not set | ||
350 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
351 | CONFIG_IP_FIB_HASH=y | ||
352 | CONFIG_IP_PNP=y | ||
353 | # CONFIG_IP_PNP_DHCP is not set | ||
354 | # CONFIG_IP_PNP_BOOTP is not set | ||
355 | # CONFIG_IP_PNP_RARP is not set | ||
356 | # CONFIG_NET_IPIP is not set | ||
357 | # CONFIG_NET_IPGRE is not set | ||
358 | # CONFIG_ARPD is not set | ||
359 | CONFIG_SYN_COOKIES=y | ||
360 | # CONFIG_INET_AH is not set | ||
361 | # CONFIG_INET_ESP is not set | ||
362 | # CONFIG_INET_IPCOMP is not set | ||
363 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
364 | # CONFIG_INET_TUNNEL is not set | ||
365 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
366 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
367 | CONFIG_INET_XFRM_MODE_BEET=y | ||
368 | CONFIG_INET_DIAG=y | ||
369 | CONFIG_INET_TCP_DIAG=y | ||
370 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
371 | CONFIG_TCP_CONG_CUBIC=y | ||
372 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
373 | # CONFIG_TCP_MD5SIG is not set | ||
374 | # CONFIG_IP_VS is not set | ||
375 | # CONFIG_IPV6 is not set | ||
376 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
377 | # CONFIG_INET6_TUNNEL is not set | ||
378 | # CONFIG_NETLABEL is not set | ||
379 | # CONFIG_NETWORK_SECMARK is not set | ||
380 | CONFIG_NETFILTER=y | ||
381 | # CONFIG_NETFILTER_DEBUG is not set | ||
382 | |||
383 | # | ||
384 | # Core Netfilter Configuration | ||
385 | # | ||
386 | # CONFIG_NETFILTER_NETLINK is not set | ||
387 | # CONFIG_NF_CONNTRACK_ENABLED is not set | ||
388 | # CONFIG_NF_CONNTRACK is not set | ||
389 | CONFIG_NETFILTER_XTABLES=y | ||
390 | # CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set | ||
391 | # CONFIG_NETFILTER_XT_TARGET_DSCP is not set | ||
392 | # CONFIG_NETFILTER_XT_TARGET_MARK is not set | ||
393 | # CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set | ||
394 | # CONFIG_NETFILTER_XT_TARGET_NFLOG is not set | ||
395 | # CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set | ||
396 | # CONFIG_NETFILTER_XT_MATCH_COMMENT is not set | ||
397 | # CONFIG_NETFILTER_XT_MATCH_DCCP is not set | ||
398 | # CONFIG_NETFILTER_XT_MATCH_DSCP is not set | ||
399 | # CONFIG_NETFILTER_XT_MATCH_ESP is not set | ||
400 | # CONFIG_NETFILTER_XT_MATCH_LENGTH is not set | ||
401 | # CONFIG_NETFILTER_XT_MATCH_LIMIT is not set | ||
402 | CONFIG_NETFILTER_XT_MATCH_MAC=y | ||
403 | # CONFIG_NETFILTER_XT_MATCH_MARK is not set | ||
404 | # CONFIG_NETFILTER_XT_MATCH_POLICY is not set | ||
405 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y | ||
406 | # CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set | ||
407 | # CONFIG_NETFILTER_XT_MATCH_QUOTA is not set | ||
408 | # CONFIG_NETFILTER_XT_MATCH_REALM is not set | ||
409 | # CONFIG_NETFILTER_XT_MATCH_SCTP is not set | ||
410 | # CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set | ||
411 | # CONFIG_NETFILTER_XT_MATCH_STRING is not set | ||
412 | # CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set | ||
413 | # CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set | ||
414 | |||
415 | # | ||
416 | # IP: Netfilter Configuration | ||
417 | # | ||
418 | # CONFIG_IP_NF_QUEUE is not set | ||
419 | CONFIG_IP_NF_IPTABLES=y | ||
420 | CONFIG_IP_NF_MATCH_IPRANGE=y | ||
421 | CONFIG_IP_NF_MATCH_TOS=y | ||
422 | # CONFIG_IP_NF_MATCH_RECENT is not set | ||
423 | # CONFIG_IP_NF_MATCH_ECN is not set | ||
424 | # CONFIG_IP_NF_MATCH_AH is not set | ||
425 | # CONFIG_IP_NF_MATCH_TTL is not set | ||
426 | # CONFIG_IP_NF_MATCH_OWNER is not set | ||
427 | # CONFIG_IP_NF_MATCH_ADDRTYPE is not set | ||
428 | CONFIG_IP_NF_FILTER=y | ||
429 | CONFIG_IP_NF_TARGET_REJECT=y | ||
430 | # CONFIG_IP_NF_TARGET_LOG is not set | ||
431 | # CONFIG_IP_NF_TARGET_ULOG is not set | ||
432 | CONFIG_IP_NF_MANGLE=y | ||
433 | CONFIG_IP_NF_TARGET_TOS=y | ||
434 | # CONFIG_IP_NF_TARGET_ECN is not set | ||
435 | # CONFIG_IP_NF_TARGET_TTL is not set | ||
436 | # CONFIG_IP_NF_RAW is not set | ||
437 | # CONFIG_IP_NF_ARPTABLES is not set | ||
438 | # CONFIG_IP_DCCP is not set | ||
439 | # CONFIG_IP_SCTP is not set | ||
440 | # CONFIG_TIPC is not set | ||
441 | # CONFIG_ATM is not set | ||
442 | # CONFIG_BRIDGE is not set | ||
443 | # CONFIG_VLAN_8021Q is not set | ||
444 | # CONFIG_DECNET is not set | ||
445 | # CONFIG_LLC2 is not set | ||
446 | # CONFIG_IPX is not set | ||
447 | # CONFIG_ATALK is not set | ||
448 | # CONFIG_X25 is not set | ||
449 | # CONFIG_LAPB is not set | ||
450 | # CONFIG_ECONET is not set | ||
451 | # CONFIG_WAN_ROUTER is not set | ||
452 | |||
453 | # | ||
454 | # QoS and/or fair queueing | ||
455 | # | ||
456 | # CONFIG_NET_SCHED is not set | ||
457 | |||
458 | # | ||
459 | # Network testing | ||
460 | # | ||
461 | # CONFIG_NET_PKTGEN is not set | ||
462 | # CONFIG_HAMRADIO is not set | ||
463 | # CONFIG_IRDA is not set | ||
464 | # CONFIG_BT is not set | ||
465 | # CONFIG_AF_RXRPC is not set | ||
466 | |||
467 | # | ||
468 | # Wireless | ||
469 | # | ||
470 | # CONFIG_CFG80211 is not set | ||
471 | # CONFIG_WIRELESS_EXT is not set | ||
472 | # CONFIG_MAC80211 is not set | ||
473 | # CONFIG_IEEE80211 is not set | ||
474 | # CONFIG_RFKILL is not set | ||
475 | |||
476 | # | ||
477 | # Device Drivers | ||
478 | # | ||
479 | |||
480 | # | ||
481 | # Generic Driver Options | ||
482 | # | ||
483 | CONFIG_STANDALONE=y | ||
484 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
485 | # CONFIG_SYS_HYPERVISOR is not set | ||
486 | |||
487 | # | ||
488 | # Connector - unified userspace <-> kernelspace linker | ||
489 | # | ||
490 | # CONFIG_CONNECTOR is not set | ||
491 | CONFIG_MTD=y | ||
492 | # CONFIG_MTD_DEBUG is not set | ||
493 | # CONFIG_MTD_CONCAT is not set | ||
494 | CONFIG_MTD_PARTITIONS=y | ||
495 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
496 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
497 | |||
498 | # | ||
499 | # User Modules And Translation Layers | ||
500 | # | ||
501 | CONFIG_MTD_CHAR=y | ||
502 | CONFIG_MTD_BLKDEVS=y | ||
503 | CONFIG_MTD_BLOCK=y | ||
504 | # CONFIG_FTL is not set | ||
505 | # CONFIG_NFTL is not set | ||
506 | # CONFIG_INFTL is not set | ||
507 | # CONFIG_RFD_FTL is not set | ||
508 | # CONFIG_SSFDC is not set | ||
509 | |||
510 | # | ||
511 | # RAM/ROM/Flash chip drivers | ||
512 | # | ||
513 | CONFIG_MTD_CFI=y | ||
514 | # CONFIG_MTD_JEDECPROBE is not set | ||
515 | CONFIG_MTD_GEN_PROBE=y | ||
516 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
517 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
518 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
519 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
520 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
521 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
522 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
523 | CONFIG_MTD_CFI_I1=y | ||
524 | CONFIG_MTD_CFI_I2=y | ||
525 | # CONFIG_MTD_CFI_I4 is not set | ||
526 | # CONFIG_MTD_CFI_I8 is not set | ||
527 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
528 | CONFIG_MTD_CFI_AMDSTD=y | ||
529 | # CONFIG_MTD_CFI_STAA is not set | ||
530 | CONFIG_MTD_CFI_UTIL=y | ||
531 | CONFIG_MTD_RAM=y | ||
532 | # CONFIG_MTD_ROM is not set | ||
533 | # CONFIG_MTD_ABSENT is not set | ||
534 | |||
535 | # | ||
536 | # Mapping drivers for chip access | ||
537 | # | ||
538 | CONFIG_MTD_COMPLEX_MAPPINGS=y | ||
539 | # CONFIG_MTD_PHYSMAP is not set | ||
540 | CONFIG_MTD_UCLINUX=y | ||
541 | CONFIG_MTD_PLATRAM=y | ||
542 | |||
543 | # | ||
544 | # Self-contained MTD device drivers | ||
545 | # | ||
546 | # CONFIG_MTD_DATAFLASH is not set | ||
547 | # CONFIG_MTD_M25P80 is not set | ||
548 | # CONFIG_MTD_SLRAM is not set | ||
549 | # CONFIG_MTD_PHRAM is not set | ||
550 | # CONFIG_MTD_MTDRAM is not set | ||
551 | # CONFIG_MTD_BLOCK2MTD is not set | ||
552 | |||
553 | # | ||
554 | # Disk-On-Chip Device Drivers | ||
555 | # | ||
556 | # CONFIG_MTD_DOC2000 is not set | ||
557 | # CONFIG_MTD_DOC2001 is not set | ||
558 | # CONFIG_MTD_DOC2001PLUS is not set | ||
559 | CONFIG_MTD_NAND=y | ||
560 | # CONFIG_MTD_NAND_VERIFY_WRITE is not set | ||
561 | # CONFIG_MTD_NAND_ECC_SMC is not set | ||
562 | # CONFIG_MTD_NAND_MUSEUM_IDS is not set | ||
563 | CONFIG_MTD_NAND_BFIN=y | ||
564 | CONFIG_BFIN_NAND_BASE=0x20000000 | ||
565 | CONFIG_BFIN_NAND_SIZE=0x10000000 | ||
566 | CONFIG_BFIN_NAND_CLE=2 | ||
567 | CONFIG_BFIN_NAND_ALE=1 | ||
568 | CONFIG_BFIN_NAND_READY=10 | ||
569 | CONFIG_MTD_NAND_IDS=y | ||
570 | # CONFIG_MTD_NAND_DISKONCHIP is not set | ||
571 | # CONFIG_MTD_NAND_NANDSIM is not set | ||
572 | # CONFIG_MTD_NAND_PLATFORM is not set | ||
573 | # CONFIG_MTD_ONENAND is not set | ||
574 | |||
575 | # | ||
576 | # UBI - Unsorted block images | ||
577 | # | ||
578 | # CONFIG_MTD_UBI is not set | ||
579 | |||
580 | # | ||
581 | # Parallel port support | ||
582 | # | ||
583 | # CONFIG_PARPORT is not set | ||
584 | |||
585 | # | ||
586 | # Plug and Play support | ||
587 | # | ||
588 | # CONFIG_PNPACPI is not set | ||
589 | |||
590 | # | ||
591 | # Block devices | ||
592 | # | ||
593 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
594 | # CONFIG_BLK_DEV_LOOP is not set | ||
595 | # CONFIG_BLK_DEV_NBD is not set | ||
596 | # CONFIG_BLK_DEV_UB is not set | ||
597 | CONFIG_BLK_DEV_RAM=y | ||
598 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
599 | CONFIG_BLK_DEV_RAM_SIZE=4096 | ||
600 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | ||
601 | # CONFIG_CDROM_PKTCDVD is not set | ||
602 | # CONFIG_ATA_OVER_ETH is not set | ||
603 | |||
604 | # | ||
605 | # Misc devices | ||
606 | # | ||
607 | # CONFIG_IDE is not set | ||
608 | |||
609 | # | ||
610 | # SCSI device support | ||
611 | # | ||
612 | # CONFIG_RAID_ATTRS is not set | ||
613 | CONFIG_SCSI=y | ||
614 | # CONFIG_SCSI_TGT is not set | ||
615 | # CONFIG_SCSI_NETLINK is not set | ||
616 | CONFIG_SCSI_PROC_FS=y | ||
617 | |||
618 | # | ||
619 | # SCSI support type (disk, tape, CD-ROM) | ||
620 | # | ||
621 | CONFIG_BLK_DEV_SD=y | ||
622 | # CONFIG_CHR_DEV_ST is not set | ||
623 | # CONFIG_CHR_DEV_OSST is not set | ||
624 | # CONFIG_BLK_DEV_SR is not set | ||
625 | # CONFIG_CHR_DEV_SG is not set | ||
626 | # CONFIG_CHR_DEV_SCH is not set | ||
627 | |||
628 | # | ||
629 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | ||
630 | # | ||
631 | # CONFIG_SCSI_MULTI_LUN is not set | ||
632 | # CONFIG_SCSI_CONSTANTS is not set | ||
633 | # CONFIG_SCSI_LOGGING is not set | ||
634 | # CONFIG_SCSI_SCAN_ASYNC is not set | ||
635 | CONFIG_SCSI_WAIT_SCAN=m | ||
636 | |||
637 | # | ||
638 | # SCSI Transports | ||
639 | # | ||
640 | # CONFIG_SCSI_SPI_ATTRS is not set | ||
641 | # CONFIG_SCSI_FC_ATTRS is not set | ||
642 | # CONFIG_SCSI_ISCSI_ATTRS is not set | ||
643 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
644 | # CONFIG_SCSI_SAS_LIBSAS is not set | ||
645 | |||
646 | # | ||
647 | # SCSI low-level drivers | ||
648 | # | ||
649 | # CONFIG_ISCSI_TCP is not set | ||
650 | # CONFIG_SCSI_DEBUG is not set | ||
651 | # CONFIG_ATA is not set | ||
652 | |||
653 | # | ||
654 | # Multi-device support (RAID and LVM) | ||
655 | # | ||
656 | # CONFIG_MD is not set | ||
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 | # CONFIG_PHYLIB is not set | ||
667 | |||
668 | # | ||
669 | # Ethernet (10 or 100Mbit) | ||
670 | # | ||
671 | CONFIG_NET_ETHERNET=y | ||
672 | CONFIG_MII=y | ||
673 | # CONFIG_SMC91X is not set | ||
674 | # CONFIG_SMSC911X is not set | ||
675 | CONFIG_DM9000=y | ||
676 | CONFIG_NETDEV_1000=y | ||
677 | # CONFIG_AX88180 is not set | ||
678 | CONFIG_NETDEV_10000=y | ||
679 | |||
680 | # | ||
681 | # Wireless LAN | ||
682 | # | ||
683 | # CONFIG_WLAN_PRE80211 is not set | ||
684 | # CONFIG_WLAN_80211 is not set | ||
685 | |||
686 | # | ||
687 | # USB Network Adapters | ||
688 | # | ||
689 | # CONFIG_USB_CATC is not set | ||
690 | # CONFIG_USB_KAWETH is not set | ||
691 | # CONFIG_USB_PEGASUS is not set | ||
692 | # CONFIG_USB_RTL8150 is not set | ||
693 | # CONFIG_USB_USBNET_MII is not set | ||
694 | # CONFIG_USB_USBNET is not set | ||
695 | # CONFIG_WAN is not set | ||
696 | # CONFIG_PPP is not set | ||
697 | # CONFIG_SLIP is not set | ||
698 | # CONFIG_SHAPER is not set | ||
699 | # CONFIG_NETCONSOLE is not set | ||
700 | # CONFIG_NETPOLL is not set | ||
701 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
702 | |||
703 | # | ||
704 | # ISDN subsystem | ||
705 | # | ||
706 | # CONFIG_ISDN is not set | ||
707 | |||
708 | # | ||
709 | # Telephony Support | ||
710 | # | ||
711 | # CONFIG_PHONE is not set | ||
712 | |||
713 | # | ||
714 | # Input device support | ||
715 | # | ||
716 | # CONFIG_INPUT is not set | ||
717 | |||
718 | # | ||
719 | # Hardware I/O ports | ||
720 | # | ||
721 | # CONFIG_SERIO is not set | ||
722 | # CONFIG_GAMEPORT is not set | ||
723 | |||
724 | # | ||
725 | # Character devices | ||
726 | # | ||
727 | # CONFIG_AD9960 is not set | ||
728 | # CONFIG_SPI_ADC_BF533 is not set | ||
729 | # CONFIG_BF5xx_PFLAGS is not set | ||
730 | # CONFIG_BF5xx_PPIFCD is not set | ||
731 | # CONFIG_BFIN_SIMPLE_TIMER is not set | ||
732 | # CONFIG_BF5xx_PPI is not set | ||
733 | CONFIG_BFIN_SPORT=y | ||
734 | # CONFIG_BFIN_TIMER_LATENCY is not set | ||
735 | # CONFIG_AD5304 is not set | ||
736 | # CONFIG_VT is not set | ||
737 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
738 | |||
739 | # | ||
740 | # Serial drivers | ||
741 | # | ||
742 | # CONFIG_SERIAL_8250 is not set | ||
743 | |||
744 | # | ||
745 | # Non-8250 serial port support | ||
746 | # | ||
747 | CONFIG_SERIAL_BFIN=y | ||
748 | CONFIG_SERIAL_BFIN_CONSOLE=y | ||
749 | CONFIG_SERIAL_BFIN_DMA=y | ||
750 | # CONFIG_SERIAL_BFIN_PIO is not set | ||
751 | CONFIG_SERIAL_BFIN_UART0=y | ||
752 | # CONFIG_BFIN_UART0_CTSRTS is not set | ||
753 | CONFIG_SERIAL_CORE=y | ||
754 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
755 | # CONFIG_SERIAL_BFIN_SPORT is not set | ||
756 | CONFIG_UNIX98_PTYS=y | ||
757 | # CONFIG_LEGACY_PTYS is not set | ||
758 | |||
759 | # | ||
760 | # CAN, the car bus and industrial fieldbus | ||
761 | # | ||
762 | # CONFIG_CAN4LINUX is not set | ||
763 | |||
764 | # | ||
765 | # IPMI | ||
766 | # | ||
767 | # CONFIG_IPMI_HANDLER is not set | ||
768 | CONFIG_WATCHDOG=y | ||
769 | # CONFIG_WATCHDOG_NOWAYOUT is not set | ||
770 | |||
771 | # | ||
772 | # Watchdog Device Drivers | ||
773 | # | ||
774 | # CONFIG_SOFT_WATCHDOG is not set | ||
775 | # CONFIG_BFIN_WDT is not set | ||
776 | |||
777 | # | ||
778 | # USB-based Watchdog Cards | ||
779 | # | ||
780 | # CONFIG_USBPCWATCHDOG is not set | ||
781 | CONFIG_HW_RANDOM=y | ||
782 | # CONFIG_GEN_RTC is not set | ||
783 | # CONFIG_R3964 is not set | ||
784 | # CONFIG_RAW_DRIVER is not set | ||
785 | |||
786 | # | ||
787 | # TPM devices | ||
788 | # | ||
789 | # CONFIG_TCG_TPM is not set | ||
790 | # CONFIG_I2C is not set | ||
791 | |||
792 | # | ||
793 | # SPI support | ||
794 | # | ||
795 | CONFIG_SPI=y | ||
796 | CONFIG_SPI_MASTER=y | ||
797 | |||
798 | # | ||
799 | # SPI Master Controller Drivers | ||
800 | # | ||
801 | CONFIG_SPI_BFIN=y | ||
802 | # CONFIG_SPI_BITBANG is not set | ||
803 | |||
804 | # | ||
805 | # SPI Protocol Masters | ||
806 | # | ||
807 | # CONFIG_SPI_AT25 is not set | ||
808 | # CONFIG_SPI_SPIDEV is not set | ||
809 | |||
810 | # | ||
811 | # Dallas's 1-wire bus | ||
812 | # | ||
813 | # CONFIG_W1 is not set | ||
814 | # CONFIG_HWMON is not set | ||
815 | |||
816 | # | ||
817 | # Multifunction device drivers | ||
818 | # | ||
819 | # CONFIG_MFD_SM501 is not set | ||
820 | |||
821 | # | ||
822 | # Multimedia devices | ||
823 | # | ||
824 | # CONFIG_VIDEO_DEV is not set | ||
825 | # CONFIG_DVB_CORE is not set | ||
826 | CONFIG_DAB=y | ||
827 | # CONFIG_USB_DABUSB is not set | ||
828 | |||
829 | # | ||
830 | # Graphics support | ||
831 | # | ||
832 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
833 | |||
834 | # | ||
835 | # Display device support | ||
836 | # | ||
837 | # CONFIG_DISPLAY_SUPPORT is not set | ||
838 | # CONFIG_VGASTATE is not set | ||
839 | # CONFIG_FB is not set | ||
840 | |||
841 | # | ||
842 | # Sound | ||
843 | # | ||
844 | # CONFIG_SOUND is not set | ||
845 | |||
846 | # | ||
847 | # USB support | ||
848 | # | ||
849 | CONFIG_USB_ARCH_HAS_HCD=y | ||
850 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
851 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
852 | CONFIG_USB=y | ||
853 | # CONFIG_USB_DEBUG is not set | ||
854 | |||
855 | # | ||
856 | # Miscellaneous USB options | ||
857 | # | ||
858 | CONFIG_USB_DEVICEFS=y | ||
859 | CONFIG_USB_DEVICE_CLASS=y | ||
860 | # CONFIG_USB_DYNAMIC_MINORS is not set | ||
861 | # CONFIG_USB_SUSPEND is not set | ||
862 | # CONFIG_USB_OTG is not set | ||
863 | CONFIG_USB_OTG_WHITELIST=y | ||
864 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | ||
865 | |||
866 | # | ||
867 | # USB Host Controller Drivers | ||
868 | # | ||
869 | # CONFIG_USB_ISP116X_HCD is not set | ||
870 | CONFIG_USB_ISP1362_HCD=y | ||
871 | # CONFIG_USB_ISP1760_HCD is not set | ||
872 | # CONFIG_USB_SL811_HCD is not set | ||
873 | # CONFIG_USB_MUSB_HDRC is not set | ||
874 | |||
875 | # | ||
876 | # USB Device Class drivers | ||
877 | # | ||
878 | # CONFIG_USB_ACM is not set | ||
879 | # CONFIG_USB_PRINTER is not set | ||
880 | |||
881 | # | ||
882 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
883 | # | ||
884 | |||
885 | # | ||
886 | # may also be needed; see USB_STORAGE Help for more information | ||
887 | # | ||
888 | CONFIG_USB_STORAGE=y | ||
889 | # CONFIG_USB_STORAGE_DEBUG is not set | ||
890 | # CONFIG_USB_STORAGE_DATAFAB is not set | ||
891 | # CONFIG_USB_STORAGE_FREECOM is not set | ||
892 | # CONFIG_USB_STORAGE_DPCM is not set | ||
893 | # CONFIG_USB_STORAGE_USBAT is not set | ||
894 | # CONFIG_USB_STORAGE_SDDR09 is not set | ||
895 | # CONFIG_USB_STORAGE_SDDR55 is not set | ||
896 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | ||
897 | # CONFIG_USB_STORAGE_ALAUDA is not set | ||
898 | # CONFIG_USB_STORAGE_KARMA is not set | ||
899 | # CONFIG_USB_LIBUSUAL is not set | ||
900 | |||
901 | # | ||
902 | # USB Imaging devices | ||
903 | # | ||
904 | # CONFIG_USB_MDC800 is not set | ||
905 | # CONFIG_USB_MICROTEK is not set | ||
906 | CONFIG_USB_MON=y | ||
907 | |||
908 | # | ||
909 | # USB port drivers | ||
910 | # | ||
911 | |||
912 | # | ||
913 | # USB Serial Converter support | ||
914 | # | ||
915 | # CONFIG_USB_SERIAL is not set | ||
916 | |||
917 | # | ||
918 | # USB Miscellaneous drivers | ||
919 | # | ||
920 | # CONFIG_USB_EMI62 is not set | ||
921 | # CONFIG_USB_EMI26 is not set | ||
922 | # CONFIG_USB_ADUTUX is not set | ||
923 | # CONFIG_USB_AUERSWALD is not set | ||
924 | # CONFIG_USB_RIO500 is not set | ||
925 | # CONFIG_USB_LEGOTOWER is not set | ||
926 | # CONFIG_USB_LCD is not set | ||
927 | # CONFIG_USB_BERRY_CHARGE is not set | ||
928 | # CONFIG_USB_LED is not set | ||
929 | # CONFIG_USB_CYPRESS_CY7C63 is not set | ||
930 | # CONFIG_USB_CYTHERM is not set | ||
931 | # CONFIG_USB_PHIDGET is not set | ||
932 | # CONFIG_USB_IDMOUSE is not set | ||
933 | # CONFIG_USB_FTDI_ELAN is not set | ||
934 | # CONFIG_USB_APPLEDISPLAY is not set | ||
935 | # CONFIG_USB_LD is not set | ||
936 | # CONFIG_USB_TRANCEVIBRATOR is not set | ||
937 | # CONFIG_USB_IOWARRIOR is not set | ||
938 | # CONFIG_USB_TEST is not set | ||
939 | |||
940 | # | ||
941 | # USB DSL modem support | ||
942 | # | ||
943 | |||
944 | # | ||
945 | # USB Gadget Support | ||
946 | # | ||
947 | # CONFIG_USB_GADGET is not set | ||
948 | CONFIG_MMC=m | ||
949 | # CONFIG_MMC_DEBUG is not set | ||
950 | # CONFIG_MMC_UNSAFE_RESUME is not set | ||
951 | |||
952 | # | ||
953 | # MMC/SD Card Drivers | ||
954 | # | ||
955 | CONFIG_MMC_BLOCK=m | ||
956 | |||
957 | # | ||
958 | # MMC/SD Host Controller Drivers | ||
959 | # | ||
960 | CONFIG_SPI_MMC=m | ||
961 | CONFIG_SPI_MMC_FRAMEWORK_DRIVER=y | ||
962 | # CONFIG_SPI_MMC_BFIN_PIO_SPI is not set | ||
963 | CONFIG_SPI_MMC_CS_CHAN=5 | ||
964 | CONFIG_SPI_MMC_MAX_HZ=20000000 | ||
965 | # CONFIG_SPI_MMC_CARD_DETECT is not set | ||
966 | # CONFIG_SPI_MMC_DEBUG_MODE is not set | ||
967 | |||
968 | # | ||
969 | # LED devices | ||
970 | # | ||
971 | # CONFIG_NEW_LEDS is not set | ||
972 | |||
973 | # | ||
974 | # LED drivers | ||
975 | # | ||
976 | |||
977 | # | ||
978 | # LED Triggers | ||
979 | # | ||
980 | |||
981 | # | ||
982 | # InfiniBand support | ||
983 | # | ||
984 | |||
985 | # | ||
986 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
987 | # | ||
988 | |||
989 | # | ||
990 | # Real Time Clock | ||
991 | # | ||
992 | CONFIG_RTC_LIB=y | ||
993 | CONFIG_RTC_CLASS=y | ||
994 | CONFIG_RTC_HCTOSYS=y | ||
995 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
996 | # CONFIG_RTC_DEBUG is not set | ||
997 | |||
998 | # | ||
999 | # RTC interfaces | ||
1000 | # | ||
1001 | CONFIG_RTC_INTF_SYSFS=y | ||
1002 | CONFIG_RTC_INTF_PROC=y | ||
1003 | CONFIG_RTC_INTF_DEV=y | ||
1004 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
1005 | # CONFIG_RTC_DRV_TEST is not set | ||
1006 | |||
1007 | # | ||
1008 | # I2C RTC drivers | ||
1009 | # | ||
1010 | |||
1011 | # | ||
1012 | # SPI RTC drivers | ||
1013 | # | ||
1014 | # CONFIG_RTC_DRV_RS5C348 is not set | ||
1015 | # CONFIG_RTC_DRV_MAX6902 is not set | ||
1016 | |||
1017 | # | ||
1018 | # Platform RTC drivers | ||
1019 | # | ||
1020 | # CONFIG_RTC_DRV_DS1553 is not set | ||
1021 | # CONFIG_RTC_DRV_DS1742 is not set | ||
1022 | # CONFIG_RTC_DRV_M48T86 is not set | ||
1023 | # CONFIG_RTC_DRV_V3020 is not set | ||
1024 | |||
1025 | # | ||
1026 | # on-CPU RTC drivers | ||
1027 | # | ||
1028 | CONFIG_RTC_DRV_BFIN=y | ||
1029 | |||
1030 | # | ||
1031 | # DMA Engine support | ||
1032 | # | ||
1033 | # CONFIG_DMA_ENGINE is not set | ||
1034 | |||
1035 | # | ||
1036 | # DMA Clients | ||
1037 | # | ||
1038 | |||
1039 | # | ||
1040 | # DMA Devices | ||
1041 | # | ||
1042 | |||
1043 | # | ||
1044 | # PBX support | ||
1045 | # | ||
1046 | # CONFIG_PBX is not set | ||
1047 | |||
1048 | # | ||
1049 | # File systems | ||
1050 | # | ||
1051 | CONFIG_EXT2_FS=y | ||
1052 | CONFIG_EXT2_FS_XATTR=y | ||
1053 | # CONFIG_EXT2_FS_POSIX_ACL is not set | ||
1054 | # CONFIG_EXT2_FS_SECURITY is not set | ||
1055 | # CONFIG_EXT3_FS is not set | ||
1056 | # CONFIG_EXT4DEV_FS is not set | ||
1057 | CONFIG_FS_MBCACHE=y | ||
1058 | # CONFIG_REISERFS_FS is not set | ||
1059 | # CONFIG_JFS_FS is not set | ||
1060 | # CONFIG_FS_POSIX_ACL is not set | ||
1061 | # CONFIG_XFS_FS is not set | ||
1062 | # CONFIG_GFS2_FS is not set | ||
1063 | # CONFIG_OCFS2_FS is not set | ||
1064 | # CONFIG_MINIX_FS is not set | ||
1065 | # CONFIG_ROMFS_FS is not set | ||
1066 | CONFIG_INOTIFY=y | ||
1067 | CONFIG_INOTIFY_USER=y | ||
1068 | # CONFIG_QUOTA is not set | ||
1069 | CONFIG_DNOTIFY=y | ||
1070 | # CONFIG_AUTOFS_FS is not set | ||
1071 | # CONFIG_AUTOFS4_FS is not set | ||
1072 | # CONFIG_FUSE_FS is not set | ||
1073 | |||
1074 | # | ||
1075 | # CD-ROM/DVD Filesystems | ||
1076 | # | ||
1077 | # CONFIG_ISO9660_FS is not set | ||
1078 | # CONFIG_UDF_FS is not set | ||
1079 | |||
1080 | # | ||
1081 | # DOS/FAT/NT Filesystems | ||
1082 | # | ||
1083 | CONFIG_FAT_FS=y | ||
1084 | CONFIG_MSDOS_FS=y | ||
1085 | CONFIG_VFAT_FS=y | ||
1086 | CONFIG_FAT_DEFAULT_CODEPAGE=437 | ||
1087 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
1088 | # CONFIG_NTFS_FS is not set | ||
1089 | |||
1090 | # | ||
1091 | # Pseudo filesystems | ||
1092 | # | ||
1093 | CONFIG_PROC_FS=y | ||
1094 | CONFIG_PROC_SYSCTL=y | ||
1095 | CONFIG_SYSFS=y | ||
1096 | # CONFIG_TMPFS is not set | ||
1097 | # CONFIG_HUGETLB_PAGE is not set | ||
1098 | CONFIG_RAMFS=y | ||
1099 | # CONFIG_CONFIGFS_FS is not set | ||
1100 | |||
1101 | # | ||
1102 | # Miscellaneous filesystems | ||
1103 | # | ||
1104 | # CONFIG_ADFS_FS is not set | ||
1105 | # CONFIG_AFFS_FS is not set | ||
1106 | # CONFIG_HFS_FS is not set | ||
1107 | # CONFIG_HFSPLUS_FS is not set | ||
1108 | # CONFIG_BEFS_FS is not set | ||
1109 | # CONFIG_BFS_FS is not set | ||
1110 | # CONFIG_EFS_FS is not set | ||
1111 | CONFIG_YAFFS_FS=y | ||
1112 | CONFIG_YAFFS_YAFFS1=y | ||
1113 | # CONFIG_YAFFS_DOES_ECC is not set | ||
1114 | CONFIG_YAFFS_YAFFS2=y | ||
1115 | CONFIG_YAFFS_AUTO_YAFFS2=y | ||
1116 | # CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set | ||
1117 | CONFIG_YAFFS_CHECKPOINT_RESERVED_BLOCKS=10 | ||
1118 | # CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set | ||
1119 | # CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set | ||
1120 | CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y | ||
1121 | # CONFIG_JFFS2_FS is not set | ||
1122 | # CONFIG_CRAMFS is not set | ||
1123 | # CONFIG_VXFS_FS is not set | ||
1124 | # CONFIG_HPFS_FS is not set | ||
1125 | # CONFIG_QNX4FS_FS is not set | ||
1126 | # CONFIG_SYSV_FS is not set | ||
1127 | # CONFIG_UFS_FS is not set | ||
1128 | |||
1129 | # | ||
1130 | # Network File Systems | ||
1131 | # | ||
1132 | # CONFIG_NFS_FS is not set | ||
1133 | # CONFIG_NFSD is not set | ||
1134 | # CONFIG_SMB_FS is not set | ||
1135 | # CONFIG_CIFS is not set | ||
1136 | # CONFIG_NCP_FS is not set | ||
1137 | # CONFIG_CODA_FS is not set | ||
1138 | # CONFIG_AFS_FS is not set | ||
1139 | # CONFIG_9P_FS is not set | ||
1140 | |||
1141 | # | ||
1142 | # Partition Types | ||
1143 | # | ||
1144 | # CONFIG_PARTITION_ADVANCED is not set | ||
1145 | CONFIG_MSDOS_PARTITION=y | ||
1146 | |||
1147 | # | ||
1148 | # Native Language Support | ||
1149 | # | ||
1150 | CONFIG_NLS=y | ||
1151 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
1152 | CONFIG_NLS_CODEPAGE_437=y | ||
1153 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
1154 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
1155 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
1156 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
1157 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
1158 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
1159 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
1160 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
1161 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
1162 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
1163 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
1164 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
1165 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
1166 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
1167 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
1168 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
1169 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
1170 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
1171 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
1172 | # CONFIG_NLS_ISO8859_8 is not set | ||
1173 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
1174 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
1175 | # CONFIG_NLS_ASCII is not set | ||
1176 | CONFIG_NLS_ISO8859_1=y | ||
1177 | # CONFIG_NLS_ISO8859_2 is not set | ||
1178 | # CONFIG_NLS_ISO8859_3 is not set | ||
1179 | # CONFIG_NLS_ISO8859_4 is not set | ||
1180 | # CONFIG_NLS_ISO8859_5 is not set | ||
1181 | # CONFIG_NLS_ISO8859_6 is not set | ||
1182 | # CONFIG_NLS_ISO8859_7 is not set | ||
1183 | # CONFIG_NLS_ISO8859_9 is not set | ||
1184 | # CONFIG_NLS_ISO8859_13 is not set | ||
1185 | # CONFIG_NLS_ISO8859_14 is not set | ||
1186 | # CONFIG_NLS_ISO8859_15 is not set | ||
1187 | # CONFIG_NLS_KOI8_R is not set | ||
1188 | # CONFIG_NLS_KOI8_U is not set | ||
1189 | # CONFIG_NLS_UTF8 is not set | ||
1190 | |||
1191 | # | ||
1192 | # Distributed Lock Manager | ||
1193 | # | ||
1194 | # CONFIG_DLM is not set | ||
1195 | |||
1196 | # | ||
1197 | # Profiling support | ||
1198 | # | ||
1199 | # CONFIG_PROFILING is not set | ||
1200 | |||
1201 | # | ||
1202 | # Kernel hacking | ||
1203 | # | ||
1204 | # CONFIG_PRINTK_TIME is not set | ||
1205 | CONFIG_ENABLE_MUST_CHECK=y | ||
1206 | # CONFIG_MAGIC_SYSRQ is not set | ||
1207 | # CONFIG_UNUSED_SYMBOLS is not set | ||
1208 | # CONFIG_DEBUG_FS is not set | ||
1209 | # CONFIG_HEADERS_CHECK is not set | ||
1210 | # CONFIG_DEBUG_KERNEL is not set | ||
1211 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
1212 | # CONFIG_DEBUG_MMRS is not set | ||
1213 | CONFIG_DEBUG_HUNT_FOR_ZERO=y | ||
1214 | CONFIG_DEBUG_BFIN_HWTRACE_ON=y | ||
1215 | CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF=y | ||
1216 | # CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE is not set | ||
1217 | # CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_TWO is not set | ||
1218 | CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION=0 | ||
1219 | # CONFIG_DEBUG_BFIN_HWTRACE_EXPAND is not set | ||
1220 | # CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set | ||
1221 | # CONFIG_EARLY_PRINTK is not set | ||
1222 | CONFIG_CPLB_INFO=y | ||
1223 | CONFIG_ACCESS_CHECK=y | ||
1224 | |||
1225 | # | ||
1226 | # Security options | ||
1227 | # | ||
1228 | # CONFIG_KEYS is not set | ||
1229 | CONFIG_SECURITY=y | ||
1230 | # CONFIG_SECURITY_NETWORK is not set | ||
1231 | CONFIG_SECURITY_CAPABILITIES=m | ||
1232 | # CONFIG_SECURITY_ROOTPLUG is not set | ||
1233 | |||
1234 | # | ||
1235 | # Cryptographic options | ||
1236 | # | ||
1237 | # CONFIG_CRYPTO is not set | ||
1238 | |||
1239 | # | ||
1240 | # Library routines | ||
1241 | # | ||
1242 | CONFIG_BITREVERSE=y | ||
1243 | CONFIG_CRC_CCITT=y | ||
1244 | # CONFIG_CRC16 is not set | ||
1245 | # CONFIG_CRC_ITU_T is not set | ||
1246 | CONFIG_CRC32=y | ||
1247 | # CONFIG_LIBCRC32C is not set | ||
1248 | CONFIG_ZLIB_INFLATE=y | ||
1249 | CONFIG_PLIST=y | ||
1250 | CONFIG_HAS_IOMEM=y | ||
1251 | CONFIG_HAS_IOPORT=y | ||
1252 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/blackfin/configs/PNAV-10_defconfig b/arch/blackfin/configs/PNAV-10_defconfig index 25709f504d8f..87622ad9df47 100644 --- a/arch/blackfin/configs/PNAV-10_defconfig +++ b/arch/blackfin/configs/PNAV-10_defconfig | |||
@@ -13,7 +13,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y | |||
13 | CONFIG_GENERIC_HWEIGHT=y | 13 | CONFIG_GENERIC_HWEIGHT=y |
14 | CONFIG_GENERIC_HARDIRQS=y | 14 | CONFIG_GENERIC_HARDIRQS=y |
15 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
16 | # CONFIG_GENERIC_TIME is not set | 16 | CONFIG_GENERIC_TIME=y |
17 | CONFIG_GENERIC_GPIO=y | 17 | CONFIG_GENERIC_GPIO=y |
18 | CONFIG_FORCE_MAX_ZONEORDER=14 | 18 | CONFIG_FORCE_MAX_ZONEORDER=14 |
19 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 19 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
@@ -214,7 +214,7 @@ CONFIG_HZ=250 | |||
214 | # | 214 | # |
215 | # Memory Setup | 215 | # Memory Setup |
216 | # | 216 | # |
217 | CONFIG_MEM_SIZE=64 | 217 | CONFIG_MAX_MEM_SIZE=64 |
218 | CONFIG_MEM_ADD_WIDTH=10 | 218 | CONFIG_MEM_ADD_WIDTH=10 |
219 | CONFIG_BOOT_LOAD=0x1000 | 219 | CONFIG_BOOT_LOAD=0x1000 |
220 | CONFIG_BFIN_SCRATCH_REG_RETN=y | 220 | CONFIG_BFIN_SCRATCH_REG_RETN=y |
diff --git a/arch/blackfin/configs/SRV1_defconfig b/arch/blackfin/configs/SRV1_defconfig new file mode 100644 index 000000000000..951ea0412576 --- /dev/null +++ b/arch/blackfin/configs/SRV1_defconfig | |||
@@ -0,0 +1,1290 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.22.10 | ||
4 | # Fri Nov 2 20:50:23 2007 | ||
5 | # | ||
6 | # CONFIG_MMU is not set | ||
7 | # CONFIG_FPU is not set | ||
8 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
9 | # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set | ||
10 | CONFIG_BLACKFIN=y | ||
11 | CONFIG_ZONE_DMA=y | ||
12 | CONFIG_BFIN=y | ||
13 | CONFIG_SEMAPHORE_SLEEPERS=y | ||
14 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
15 | CONFIG_GENERIC_HWEIGHT=y | ||
16 | CONFIG_GENERIC_HARDIRQS=y | ||
17 | CONFIG_GENERIC_IRQ_PROBE=y | ||
18 | # CONFIG_GENERIC_TIME is not set | ||
19 | CONFIG_GENERIC_GPIO=y | ||
20 | CONFIG_FORCE_MAX_ZONEORDER=14 | ||
21 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
22 | CONFIG_IRQCHIP_DEMUX_GPIO=y | ||
23 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
24 | |||
25 | # | ||
26 | # Code maturity level options | ||
27 | # | ||
28 | CONFIG_EXPERIMENTAL=y | ||
29 | CONFIG_BROKEN_ON_SMP=y | ||
30 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
31 | |||
32 | # | ||
33 | # General setup | ||
34 | # | ||
35 | CONFIG_LOCALVERSION="" | ||
36 | CONFIG_LOCALVERSION_AUTO=y | ||
37 | CONFIG_SYSVIPC=y | ||
38 | # CONFIG_IPC_NS is not set | ||
39 | CONFIG_SYSVIPC_SYSCTL=y | ||
40 | # CONFIG_POSIX_MQUEUE is not set | ||
41 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
42 | # CONFIG_TASKSTATS is not set | ||
43 | # CONFIG_UTS_NS is not set | ||
44 | # CONFIG_AUDIT is not set | ||
45 | # CONFIG_IKCONFIG is not set | ||
46 | CONFIG_LOG_BUF_SHIFT=14 | ||
47 | CONFIG_SYSFS_DEPRECATED=y | ||
48 | # CONFIG_RELAY is not set | ||
49 | CONFIG_BLK_DEV_INITRD=y | ||
50 | CONFIG_INITRAMFS_SOURCE="" | ||
51 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
52 | CONFIG_SYSCTL=y | ||
53 | CONFIG_EMBEDDED=y | ||
54 | CONFIG_UID16=y | ||
55 | CONFIG_SYSCTL_SYSCALL=y | ||
56 | CONFIG_KALLSYMS=y | ||
57 | CONFIG_KALLSYMS_ALL=y | ||
58 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
59 | CONFIG_HOTPLUG=y | ||
60 | CONFIG_PRINTK=y | ||
61 | CONFIG_BUG=y | ||
62 | CONFIG_ELF_CORE=y | ||
63 | CONFIG_BASE_FULL=y | ||
64 | CONFIG_FUTEX=y | ||
65 | CONFIG_ANON_INODES=y | ||
66 | CONFIG_EPOLL=y | ||
67 | CONFIG_SIGNALFD=y | ||
68 | CONFIG_EVENTFD=y | ||
69 | CONFIG_VM_EVENT_COUNTERS=y | ||
70 | CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3 | ||
71 | # CONFIG_NP2 is not set | ||
72 | CONFIG_SLAB=y | ||
73 | # CONFIG_SLUB is not set | ||
74 | # CONFIG_SLOB is not set | ||
75 | CONFIG_RT_MUTEXES=y | ||
76 | CONFIG_TINY_SHMEM=y | ||
77 | CONFIG_BASE_SMALL=0 | ||
78 | |||
79 | # | ||
80 | # Loadable module support | ||
81 | # | ||
82 | CONFIG_MODULES=y | ||
83 | CONFIG_MODULE_UNLOAD=y | ||
84 | # CONFIG_MODULE_FORCE_UNLOAD is not set | ||
85 | # CONFIG_MODVERSIONS is not set | ||
86 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
87 | CONFIG_KMOD=y | ||
88 | |||
89 | # | ||
90 | # Block layer | ||
91 | # | ||
92 | CONFIG_BLOCK=y | ||
93 | # CONFIG_LBD is not set | ||
94 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
95 | # CONFIG_LSF is not set | ||
96 | |||
97 | # | ||
98 | # IO Schedulers | ||
99 | # | ||
100 | CONFIG_IOSCHED_NOOP=y | ||
101 | CONFIG_IOSCHED_AS=y | ||
102 | # CONFIG_IOSCHED_DEADLINE is not set | ||
103 | CONFIG_IOSCHED_CFQ=y | ||
104 | CONFIG_DEFAULT_AS=y | ||
105 | # CONFIG_DEFAULT_DEADLINE is not set | ||
106 | # CONFIG_DEFAULT_CFQ is not set | ||
107 | # CONFIG_DEFAULT_NOOP is not set | ||
108 | CONFIG_DEFAULT_IOSCHED="anticipatory" | ||
109 | # CONFIG_PREEMPT_NONE is not set | ||
110 | CONFIG_PREEMPT_VOLUNTARY=y | ||
111 | # CONFIG_PREEMPT is not set | ||
112 | |||
113 | # | ||
114 | # Blackfin Processor Options | ||
115 | # | ||
116 | |||
117 | # | ||
118 | # Processor and Board Settings | ||
119 | # | ||
120 | # CONFIG_BF522 is not set | ||
121 | # CONFIG_BF525 is not set | ||
122 | # CONFIG_BF527 is not set | ||
123 | # CONFIG_BF531 is not set | ||
124 | # CONFIG_BF532 is not set | ||
125 | # CONFIG_BF533 is not set | ||
126 | # CONFIG_BF534 is not set | ||
127 | # CONFIG_BF536 is not set | ||
128 | CONFIG_BF537=y | ||
129 | # CONFIG_BF542 is not set | ||
130 | # CONFIG_BF544 is not set | ||
131 | # CONFIG_BF548 is not set | ||
132 | # CONFIG_BF549 is not set | ||
133 | # CONFIG_BF561 is not set | ||
134 | # CONFIG_BF_REV_0_0 is not set | ||
135 | # CONFIG_BF_REV_0_1 is not set | ||
136 | CONFIG_BF_REV_0_2=y | ||
137 | # CONFIG_BF_REV_0_3 is not set | ||
138 | # CONFIG_BF_REV_0_4 is not set | ||
139 | # CONFIG_BF_REV_0_5 is not set | ||
140 | # CONFIG_BF_REV_ANY is not set | ||
141 | # CONFIG_BF_REV_NONE is not set | ||
142 | CONFIG_BF53x=y | ||
143 | CONFIG_BFIN_SINGLE_CORE=y | ||
144 | # CONFIG_BFIN527_EZKIT is not set | ||
145 | # CONFIG_BFIN533_EZKIT is not set | ||
146 | # CONFIG_BFIN533_STAMP is not set | ||
147 | # CONFIG_BFIN537_STAMP is not set | ||
148 | # CONFIG_CAMSIG_MINOTAUR is not set | ||
149 | # CONFIG_BFIN533_BLUETECHNIX_CM is not set | ||
150 | # CONFIG_BFIN537_BLUETECHNIX_CM is not set | ||
151 | # CONFIG_BFIN548_EZKIT is not set | ||
152 | # CONFIG_BFIN561_BLUETECHNIX_CM is not set | ||
153 | # CONFIG_BFIN561_EZKIT is not set | ||
154 | # CONFIG_BFIN561_TEPLA is not set | ||
155 | # CONFIG_PNAV10 is not set | ||
156 | # CONFIG_VISTASCAN is not set | ||
157 | # CONFIG_BFIN533_SR3K is not set | ||
158 | CONFIG_GENERIC_BOARD=y | ||
159 | CONFIG_MEM_GENERIC_BOARD=y | ||
160 | CONFIG_IRQ_PLL_WAKEUP=7 | ||
161 | CONFIG_IRQ_RTC=8 | ||
162 | CONFIG_IRQ_PPI=8 | ||
163 | CONFIG_IRQ_SPORT0_RX=9 | ||
164 | CONFIG_IRQ_SPORT0_TX=9 | ||
165 | CONFIG_IRQ_SPORT1_RX=9 | ||
166 | CONFIG_IRQ_SPORT1_TX=9 | ||
167 | CONFIG_IRQ_TWI=10 | ||
168 | CONFIG_IRQ_SPI=10 | ||
169 | CONFIG_IRQ_UART0_RX=10 | ||
170 | CONFIG_IRQ_UART0_TX=10 | ||
171 | CONFIG_IRQ_UART1_RX=10 | ||
172 | CONFIG_IRQ_UART1_TX=10 | ||
173 | CONFIG_IRQ_MAC_RX=11 | ||
174 | CONFIG_IRQ_MAC_TX=11 | ||
175 | CONFIG_IRQ_TMR0=12 | ||
176 | CONFIG_IRQ_TMR1=12 | ||
177 | CONFIG_IRQ_TMR2=12 | ||
178 | CONFIG_IRQ_TMR3=12 | ||
179 | CONFIG_IRQ_TMR4=12 | ||
180 | CONFIG_IRQ_TMR5=12 | ||
181 | CONFIG_IRQ_TMR6=12 | ||
182 | CONFIG_IRQ_TMR7=12 | ||
183 | CONFIG_IRQ_PORTG_INTB=12 | ||
184 | CONFIG_IRQ_MEM_DMA0=13 | ||
185 | CONFIG_IRQ_MEM_DMA1=13 | ||
186 | CONFIG_IRQ_WATCH=13 | ||
187 | |||
188 | # | ||
189 | # BF537 Specific Configuration | ||
190 | # | ||
191 | |||
192 | # | ||
193 | # Interrupt Priority Assignment | ||
194 | # | ||
195 | |||
196 | # | ||
197 | # Priority | ||
198 | # | ||
199 | CONFIG_IRQ_DMA_ERROR=7 | ||
200 | CONFIG_IRQ_ERROR=7 | ||
201 | CONFIG_IRQ_CAN_RX=11 | ||
202 | CONFIG_IRQ_CAN_TX=11 | ||
203 | CONFIG_IRQ_PROG_INTA=12 | ||
204 | |||
205 | # | ||
206 | # Board customizations | ||
207 | # | ||
208 | # CONFIG_CMDLINE_BOOL is not set | ||
209 | |||
210 | # | ||
211 | # Clock/PLL Setup | ||
212 | # | ||
213 | CONFIG_CLKIN_HZ=22118400 | ||
214 | # CONFIG_BFIN_KERNEL_CLOCK is not set | ||
215 | CONFIG_MAX_VCO_HZ=600000000 | ||
216 | CONFIG_MIN_VCO_HZ=50000000 | ||
217 | CONFIG_MAX_SCLK_HZ=133000000 | ||
218 | CONFIG_MIN_SCLK_HZ=27000000 | ||
219 | |||
220 | # | ||
221 | # Kernel Timer/Scheduler | ||
222 | # | ||
223 | # CONFIG_HZ_100 is not set | ||
224 | CONFIG_HZ_250=y | ||
225 | # CONFIG_HZ_300 is not set | ||
226 | # CONFIG_HZ_1000 is not set | ||
227 | CONFIG_HZ=250 | ||
228 | |||
229 | # | ||
230 | # Memory Setup | ||
231 | # | ||
232 | CONFIG_MAX_MEM_SIZE=32 | ||
233 | CONFIG_MEM_ADD_WIDTH=9 | ||
234 | CONFIG_BOOT_LOAD=0x400000 | ||
235 | CONFIG_BFIN_SCRATCH_REG_RETN=y | ||
236 | # CONFIG_BFIN_SCRATCH_REG_RETE is not set | ||
237 | # CONFIG_BFIN_SCRATCH_REG_CYCLES is not set | ||
238 | |||
239 | # | ||
240 | # Blackfin Kernel Optimizations | ||
241 | # | ||
242 | |||
243 | # | ||
244 | # Memory Optimizations | ||
245 | # | ||
246 | CONFIG_I_ENTRY_L1=y | ||
247 | CONFIG_EXCPT_IRQ_SYSC_L1=y | ||
248 | CONFIG_DO_IRQ_L1=y | ||
249 | CONFIG_CORE_TIMER_IRQ_L1=y | ||
250 | CONFIG_IDLE_L1=y | ||
251 | CONFIG_SCHEDULE_L1=y | ||
252 | CONFIG_ARITHMETIC_OPS_L1=y | ||
253 | CONFIG_ACCESS_OK_L1=y | ||
254 | CONFIG_MEMSET_L1=y | ||
255 | CONFIG_MEMCPY_L1=y | ||
256 | CONFIG_SYS_BFIN_SPINLOCK_L1=y | ||
257 | # CONFIG_IP_CHECKSUM_L1 is not set | ||
258 | CONFIG_CACHELINE_ALIGNED_L1=y | ||
259 | # CONFIG_SYSCALL_TAB_L1 is not set | ||
260 | # CONFIG_CPLB_SWITCH_TAB_L1 is not set | ||
261 | CONFIG_RAMKERNEL=y | ||
262 | # CONFIG_ROMKERNEL is not set | ||
263 | CONFIG_SELECT_MEMORY_MODEL=y | ||
264 | CONFIG_FLATMEM_MANUAL=y | ||
265 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
266 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
267 | CONFIG_FLATMEM=y | ||
268 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
269 | # CONFIG_SPARSEMEM_STATIC is not set | ||
270 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
271 | # CONFIG_RESOURCES_64BIT is not set | ||
272 | CONFIG_ZONE_DMA_FLAG=1 | ||
273 | CONFIG_LARGE_ALLOCS=y | ||
274 | CONFIG_BFIN_DMA_5XX=y | ||
275 | CONFIG_DMA_UNCACHED_2M=y | ||
276 | # CONFIG_DMA_UNCACHED_1M is not set | ||
277 | # CONFIG_DMA_UNCACHED_NONE is not set | ||
278 | |||
279 | # | ||
280 | # Cache Support | ||
281 | # | ||
282 | CONFIG_BFIN_ICACHE=y | ||
283 | CONFIG_BFIN_DCACHE=y | ||
284 | # CONFIG_BFIN_DCACHE_BANKA is not set | ||
285 | # CONFIG_BFIN_ICACHE_LOCK is not set | ||
286 | # CONFIG_BFIN_WB is not set | ||
287 | CONFIG_BFIN_WT=y | ||
288 | CONFIG_L1_MAX_PIECE=16 | ||
289 | |||
290 | # | ||
291 | # Asynchonous Memory Configuration | ||
292 | # | ||
293 | |||
294 | # | ||
295 | # EBIU_AMGCTL Global Control | ||
296 | # | ||
297 | CONFIG_C_AMCKEN=y | ||
298 | CONFIG_C_CDPRIO=y | ||
299 | # CONFIG_C_AMBEN is not set | ||
300 | # CONFIG_C_AMBEN_B0 is not set | ||
301 | # CONFIG_C_AMBEN_B0_B1 is not set | ||
302 | # CONFIG_C_AMBEN_B0_B1_B2 is not set | ||
303 | CONFIG_C_AMBEN_ALL=y | ||
304 | |||
305 | # | ||
306 | # EBIU_AMBCTL Control | ||
307 | # | ||
308 | CONFIG_BANK_0=0x7BB0 | ||
309 | CONFIG_BANK_1=0x7BB0 | ||
310 | CONFIG_BANK_2=0x7BB0 | ||
311 | CONFIG_BANK_3=0x99B3 | ||
312 | |||
313 | # | ||
314 | # Bus options (PCI, PCMCIA, EISA, MCA, ISA) | ||
315 | # | ||
316 | # CONFIG_PCI is not set | ||
317 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
318 | |||
319 | # | ||
320 | # PCCARD (PCMCIA/CardBus) support | ||
321 | # | ||
322 | # CONFIG_PCCARD is not set | ||
323 | |||
324 | # | ||
325 | # Executable file formats | ||
326 | # | ||
327 | CONFIG_BINFMT_ELF_FDPIC=y | ||
328 | CONFIG_BINFMT_FLAT=y | ||
329 | CONFIG_BINFMT_ZFLAT=y | ||
330 | # CONFIG_BINFMT_SHARED_FLAT is not set | ||
331 | # CONFIG_BINFMT_MISC is not set | ||
332 | |||
333 | # | ||
334 | # Power management options | ||
335 | # | ||
336 | CONFIG_PM=y | ||
337 | # CONFIG_PM_LEGACY is not set | ||
338 | # CONFIG_PM_DEBUG is not set | ||
339 | # CONFIG_PM_SYSFS_DEPRECATED is not set | ||
340 | CONFIG_PM_WAKEUP_GPIO_BY_SIC_IWR=y | ||
341 | # CONFIG_PM_WAKEUP_BY_GPIO is not set | ||
342 | # CONFIG_PM_WAKEUP_GPIO_API is not set | ||
343 | CONFIG_PM_WAKEUP_SIC_IWR=0x80000000 | ||
344 | |||
345 | # | ||
346 | # CPU Frequency scaling | ||
347 | # | ||
348 | # CONFIG_CPU_FREQ is not set | ||
349 | |||
350 | # | ||
351 | # Networking | ||
352 | # | ||
353 | CONFIG_NET=y | ||
354 | |||
355 | # | ||
356 | # Networking options | ||
357 | # | ||
358 | CONFIG_PACKET=y | ||
359 | # CONFIG_PACKET_MMAP is not set | ||
360 | CONFIG_UNIX=y | ||
361 | CONFIG_XFRM=y | ||
362 | # CONFIG_XFRM_USER is not set | ||
363 | # CONFIG_XFRM_SUB_POLICY is not set | ||
364 | # CONFIG_XFRM_MIGRATE is not set | ||
365 | # CONFIG_NET_KEY is not set | ||
366 | CONFIG_INET=y | ||
367 | # CONFIG_IP_MULTICAST is not set | ||
368 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
369 | CONFIG_IP_FIB_HASH=y | ||
370 | CONFIG_IP_PNP=y | ||
371 | # CONFIG_IP_PNP_DHCP is not set | ||
372 | # CONFIG_IP_PNP_BOOTP is not set | ||
373 | # CONFIG_IP_PNP_RARP is not set | ||
374 | # CONFIG_NET_IPIP is not set | ||
375 | # CONFIG_NET_IPGRE is not set | ||
376 | # CONFIG_ARPD is not set | ||
377 | CONFIG_SYN_COOKIES=y | ||
378 | # CONFIG_INET_AH is not set | ||
379 | # CONFIG_INET_ESP is not set | ||
380 | # CONFIG_INET_IPCOMP is not set | ||
381 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
382 | # CONFIG_INET_TUNNEL is not set | ||
383 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
384 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
385 | CONFIG_INET_XFRM_MODE_BEET=y | ||
386 | CONFIG_INET_DIAG=y | ||
387 | CONFIG_INET_TCP_DIAG=y | ||
388 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
389 | CONFIG_TCP_CONG_CUBIC=y | ||
390 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
391 | # CONFIG_TCP_MD5SIG is not set | ||
392 | # CONFIG_IPV6 is not set | ||
393 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
394 | # CONFIG_INET6_TUNNEL is not set | ||
395 | # CONFIG_NETLABEL is not set | ||
396 | # CONFIG_NETWORK_SECMARK is not set | ||
397 | # CONFIG_NETFILTER is not set | ||
398 | # CONFIG_IP_DCCP is not set | ||
399 | # CONFIG_IP_SCTP is not set | ||
400 | # CONFIG_TIPC is not set | ||
401 | # CONFIG_ATM is not set | ||
402 | # CONFIG_BRIDGE is not set | ||
403 | # CONFIG_VLAN_8021Q is not set | ||
404 | # CONFIG_DECNET is not set | ||
405 | # CONFIG_LLC2 is not set | ||
406 | # CONFIG_IPX is not set | ||
407 | # CONFIG_ATALK is not set | ||
408 | # CONFIG_X25 is not set | ||
409 | # CONFIG_LAPB is not set | ||
410 | # CONFIG_ECONET is not set | ||
411 | # CONFIG_WAN_ROUTER is not set | ||
412 | |||
413 | # | ||
414 | # QoS and/or fair queueing | ||
415 | # | ||
416 | # CONFIG_NET_SCHED is not set | ||
417 | |||
418 | # | ||
419 | # Network testing | ||
420 | # | ||
421 | # CONFIG_NET_PKTGEN is not set | ||
422 | # CONFIG_HAMRADIO is not set | ||
423 | CONFIG_IRDA=m | ||
424 | |||
425 | # | ||
426 | # IrDA protocols | ||
427 | # | ||
428 | CONFIG_IRLAN=m | ||
429 | CONFIG_IRCOMM=m | ||
430 | # CONFIG_IRDA_ULTRA is not set | ||
431 | |||
432 | # | ||
433 | # IrDA options | ||
434 | # | ||
435 | CONFIG_IRDA_CACHE_LAST_LSAP=y | ||
436 | # CONFIG_IRDA_FAST_RR is not set | ||
437 | # CONFIG_IRDA_DEBUG is not set | ||
438 | |||
439 | # | ||
440 | # Infrared-port device drivers | ||
441 | # | ||
442 | |||
443 | # | ||
444 | # SIR device drivers | ||
445 | # | ||
446 | CONFIG_IRTTY_SIR=m | ||
447 | |||
448 | # | ||
449 | # Dongle support | ||
450 | # | ||
451 | # CONFIG_DONGLE is not set | ||
452 | |||
453 | # | ||
454 | # Old SIR device drivers | ||
455 | # | ||
456 | # CONFIG_IRPORT_SIR is not set | ||
457 | |||
458 | # | ||
459 | # Old Serial dongle support | ||
460 | # | ||
461 | |||
462 | # | ||
463 | # FIR device drivers | ||
464 | # | ||
465 | # CONFIG_BT is not set | ||
466 | # CONFIG_AF_RXRPC is not set | ||
467 | |||
468 | # | ||
469 | # Wireless | ||
470 | # | ||
471 | # CONFIG_CFG80211 is not set | ||
472 | # CONFIG_WIRELESS_EXT is not set | ||
473 | # CONFIG_MAC80211 is not set | ||
474 | # CONFIG_IEEE80211 is not set | ||
475 | # CONFIG_RFKILL is not set | ||
476 | |||
477 | # | ||
478 | # Device Drivers | ||
479 | # | ||
480 | |||
481 | # | ||
482 | # Generic Driver Options | ||
483 | # | ||
484 | CONFIG_STANDALONE=y | ||
485 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
486 | # CONFIG_FW_LOADER is not set | ||
487 | # CONFIG_DEBUG_DRIVER is not set | ||
488 | # CONFIG_DEBUG_DEVRES is not set | ||
489 | # CONFIG_SYS_HYPERVISOR is not set | ||
490 | |||
491 | # | ||
492 | # Connector - unified userspace <-> kernelspace linker | ||
493 | # | ||
494 | # CONFIG_CONNECTOR is not set | ||
495 | CONFIG_MTD=y | ||
496 | # CONFIG_MTD_DEBUG is not set | ||
497 | # CONFIG_MTD_CONCAT is not set | ||
498 | CONFIG_MTD_PARTITIONS=y | ||
499 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
500 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
501 | |||
502 | # | ||
503 | # User Modules And Translation Layers | ||
504 | # | ||
505 | CONFIG_MTD_CHAR=m | ||
506 | CONFIG_MTD_BLKDEVS=y | ||
507 | CONFIG_MTD_BLOCK=y | ||
508 | # CONFIG_FTL is not set | ||
509 | # CONFIG_NFTL is not set | ||
510 | # CONFIG_INFTL is not set | ||
511 | # CONFIG_RFD_FTL is not set | ||
512 | # CONFIG_SSFDC is not set | ||
513 | |||
514 | # | ||
515 | # RAM/ROM/Flash chip drivers | ||
516 | # | ||
517 | # CONFIG_MTD_CFI is not set | ||
518 | CONFIG_MTD_JEDECPROBE=m | ||
519 | CONFIG_MTD_GEN_PROBE=m | ||
520 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
521 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
522 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
523 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
524 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
525 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
526 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
527 | CONFIG_MTD_CFI_I1=y | ||
528 | CONFIG_MTD_CFI_I2=y | ||
529 | # CONFIG_MTD_CFI_I4 is not set | ||
530 | # CONFIG_MTD_CFI_I8 is not set | ||
531 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
532 | # CONFIG_MTD_CFI_AMDSTD is not set | ||
533 | # CONFIG_MTD_CFI_STAA is not set | ||
534 | CONFIG_MTD_MW320D=m | ||
535 | CONFIG_MTD_RAM=y | ||
536 | CONFIG_MTD_ROM=m | ||
537 | # CONFIG_MTD_ABSENT is not set | ||
538 | |||
539 | # | ||
540 | # Mapping drivers for chip access | ||
541 | # | ||
542 | CONFIG_MTD_COMPLEX_MAPPINGS=y | ||
543 | # CONFIG_MTD_PHYSMAP is not set | ||
544 | CONFIG_MTD_BF5xx=m | ||
545 | CONFIG_BFIN_FLASH_SIZE=0x400000 | ||
546 | CONFIG_EBIU_FLASH_BASE=0x20000000 | ||
547 | CONFIG_MTD_UCLINUX=y | ||
548 | # CONFIG_MTD_PLATRAM is not set | ||
549 | |||
550 | # | ||
551 | # Self-contained MTD device drivers | ||
552 | # | ||
553 | # CONFIG_MTD_DATAFLASH is not set | ||
554 | # CONFIG_MTD_M25P80 is not set | ||
555 | # CONFIG_MTD_SLRAM is not set | ||
556 | # CONFIG_MTD_PHRAM is not set | ||
557 | # CONFIG_MTD_MTDRAM is not set | ||
558 | # CONFIG_MTD_BLOCK2MTD is not set | ||
559 | |||
560 | # | ||
561 | # Disk-On-Chip Device Drivers | ||
562 | # | ||
563 | # CONFIG_MTD_DOC2000 is not set | ||
564 | # CONFIG_MTD_DOC2001 is not set | ||
565 | # CONFIG_MTD_DOC2001PLUS is not set | ||
566 | CONFIG_MTD_NAND=m | ||
567 | # CONFIG_MTD_NAND_VERIFY_WRITE is not set | ||
568 | # CONFIG_MTD_NAND_ECC_SMC is not set | ||
569 | # CONFIG_MTD_NAND_MUSEUM_IDS is not set | ||
570 | CONFIG_MTD_NAND_BFIN=m | ||
571 | CONFIG_BFIN_NAND_BASE=0x20212000 | ||
572 | CONFIG_BFIN_NAND_CLE=2 | ||
573 | CONFIG_BFIN_NAND_ALE=1 | ||
574 | CONFIG_BFIN_NAND_READY=3 | ||
575 | CONFIG_MTD_NAND_IDS=m | ||
576 | # CONFIG_MTD_NAND_DISKONCHIP is not set | ||
577 | # CONFIG_MTD_NAND_NANDSIM is not set | ||
578 | # CONFIG_MTD_NAND_PLATFORM is not set | ||
579 | # CONFIG_MTD_ONENAND is not set | ||
580 | |||
581 | # | ||
582 | # UBI - Unsorted block images | ||
583 | # | ||
584 | # CONFIG_MTD_UBI is not set | ||
585 | |||
586 | # | ||
587 | # Parallel port support | ||
588 | # | ||
589 | # CONFIG_PARPORT is not set | ||
590 | |||
591 | # | ||
592 | # Plug and Play support | ||
593 | # | ||
594 | # CONFIG_PNPACPI is not set | ||
595 | |||
596 | # | ||
597 | # Block devices | ||
598 | # | ||
599 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
600 | # CONFIG_BLK_DEV_LOOP is not set | ||
601 | # CONFIG_BLK_DEV_NBD is not set | ||
602 | CONFIG_BLK_DEV_RAM=y | ||
603 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
604 | CONFIG_BLK_DEV_RAM_SIZE=4096 | ||
605 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | ||
606 | # CONFIG_CDROM_PKTCDVD is not set | ||
607 | # CONFIG_ATA_OVER_ETH is not set | ||
608 | |||
609 | # | ||
610 | # Misc devices | ||
611 | # | ||
612 | # CONFIG_IDE is not set | ||
613 | |||
614 | # | ||
615 | # SCSI device support | ||
616 | # | ||
617 | # CONFIG_RAID_ATTRS is not set | ||
618 | # CONFIG_SCSI is not set | ||
619 | # CONFIG_SCSI_NETLINK is not set | ||
620 | # CONFIG_ATA is not set | ||
621 | |||
622 | # | ||
623 | # Multi-device support (RAID and LVM) | ||
624 | # | ||
625 | # CONFIG_MD is not set | ||
626 | |||
627 | # | ||
628 | # Network device support | ||
629 | # | ||
630 | CONFIG_NETDEVICES=y | ||
631 | # CONFIG_DUMMY is not set | ||
632 | # CONFIG_BONDING is not set | ||
633 | # CONFIG_EQUALIZER is not set | ||
634 | # CONFIG_TUN is not set | ||
635 | |||
636 | # | ||
637 | # Ethernet (10 or 100Mbit) | ||
638 | # | ||
639 | # CONFIG_NET_ETHERNET is not set | ||
640 | # CONFIG_NETDEV_1000 is not set | ||
641 | # CONFIG_NETDEV_10000 is not set | ||
642 | |||
643 | # | ||
644 | # Wireless LAN | ||
645 | # | ||
646 | # CONFIG_WLAN_PRE80211 is not set | ||
647 | # CONFIG_WLAN_80211 is not set | ||
648 | # CONFIG_WAN is not set | ||
649 | # CONFIG_PPP is not set | ||
650 | # CONFIG_SLIP is not set | ||
651 | # CONFIG_SHAPER is not set | ||
652 | # CONFIG_NETCONSOLE is not set | ||
653 | # CONFIG_NETPOLL is not set | ||
654 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
655 | |||
656 | # | ||
657 | # ISDN subsystem | ||
658 | # | ||
659 | # CONFIG_ISDN is not set | ||
660 | |||
661 | # | ||
662 | # Telephony Support | ||
663 | # | ||
664 | # CONFIG_PHONE is not set | ||
665 | |||
666 | # | ||
667 | # Input device support | ||
668 | # | ||
669 | CONFIG_INPUT=y | ||
670 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
671 | # CONFIG_INPUT_POLLDEV is not set | ||
672 | |||
673 | # | ||
674 | # Userland interfaces | ||
675 | # | ||
676 | # CONFIG_INPUT_MOUSEDEV is not set | ||
677 | # CONFIG_INPUT_JOYDEV is not set | ||
678 | # CONFIG_INPUT_TSDEV is not set | ||
679 | CONFIG_INPUT_EVDEV=m | ||
680 | # CONFIG_INPUT_EVBUG is not set | ||
681 | |||
682 | # | ||
683 | # Input Device Drivers | ||
684 | # | ||
685 | # CONFIG_INPUT_KEYBOARD is not set | ||
686 | # CONFIG_INPUT_MOUSE is not set | ||
687 | # CONFIG_INPUT_JOYSTICK is not set | ||
688 | # CONFIG_INPUT_TABLET is not set | ||
689 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
690 | CONFIG_INPUT_MISC=y | ||
691 | # CONFIG_INPUT_ATI_REMOTE is not set | ||
692 | # CONFIG_INPUT_ATI_REMOTE2 is not set | ||
693 | # CONFIG_INPUT_KEYSPAN_REMOTE is not set | ||
694 | # CONFIG_INPUT_POWERMATE is not set | ||
695 | # CONFIG_INPUT_YEALINK is not set | ||
696 | CONFIG_INPUT_UINPUT=y | ||
697 | # CONFIG_BF53X_PFBUTTONS is not set | ||
698 | # CONFIG_TWI_KEYPAD is not set | ||
699 | |||
700 | # | ||
701 | # Hardware I/O ports | ||
702 | # | ||
703 | # CONFIG_SERIO is not set | ||
704 | # CONFIG_GAMEPORT is not set | ||
705 | |||
706 | # | ||
707 | # Character devices | ||
708 | # | ||
709 | # CONFIG_AD9960 is not set | ||
710 | # CONFIG_SPI_ADC_BF533 is not set | ||
711 | CONFIG_BF5xx_PFLAGS=y | ||
712 | # CONFIG_BF5xx_PFLAGS_PROC is not set | ||
713 | # CONFIG_BF5xx_PPIFCD is not set | ||
714 | # CONFIG_BF5xx_TIMERS is not set | ||
715 | # CONFIG_BF5xx_PPI is not set | ||
716 | # CONFIG_BFIN_SPORT is not set | ||
717 | # CONFIG_BFIN_TIMER_LATENCY is not set | ||
718 | # CONFIG_TWI_LCD is not set | ||
719 | # CONFIG_AD5304 is not set | ||
720 | # CONFIG_BF5xx_TEA5764 is not set | ||
721 | # CONFIG_BF5xx_FBDMA is not set | ||
722 | # CONFIG_VT is not set | ||
723 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
724 | |||
725 | # | ||
726 | # Serial drivers | ||
727 | # | ||
728 | # CONFIG_SERIAL_8250 is not set | ||
729 | |||
730 | # | ||
731 | # Non-8250 serial port support | ||
732 | # | ||
733 | CONFIG_SERIAL_BFIN=y | ||
734 | CONFIG_SERIAL_BFIN_CONSOLE=y | ||
735 | CONFIG_SERIAL_BFIN_DMA=y | ||
736 | # CONFIG_SERIAL_BFIN_PIO is not set | ||
737 | CONFIG_SERIAL_BFIN_UART0=y | ||
738 | # CONFIG_BFIN_UART0_CTSRTS is not set | ||
739 | # CONFIG_SERIAL_BFIN_UART1 is not set | ||
740 | CONFIG_SERIAL_CORE=y | ||
741 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
742 | # CONFIG_SERIAL_BFIN_SPORT is not set | ||
743 | CONFIG_UNIX98_PTYS=y | ||
744 | # CONFIG_LEGACY_PTYS is not set | ||
745 | |||
746 | # | ||
747 | # CAN, the car bus and industrial fieldbus | ||
748 | # | ||
749 | # CONFIG_CAN4LINUX is not set | ||
750 | |||
751 | # | ||
752 | # IPMI | ||
753 | # | ||
754 | # CONFIG_IPMI_HANDLER is not set | ||
755 | CONFIG_WATCHDOG=y | ||
756 | # CONFIG_WATCHDOG_NOWAYOUT is not set | ||
757 | |||
758 | # | ||
759 | # Watchdog Device Drivers | ||
760 | # | ||
761 | # CONFIG_SOFT_WATCHDOG is not set | ||
762 | CONFIG_BFIN_WDT=y | ||
763 | CONFIG_HW_RANDOM=m | ||
764 | # CONFIG_GEN_RTC is not set | ||
765 | CONFIG_BLACKFIN_DPMC=y | ||
766 | # CONFIG_R3964 is not set | ||
767 | # CONFIG_RAW_DRIVER is not set | ||
768 | |||
769 | # | ||
770 | # TPM devices | ||
771 | # | ||
772 | # CONFIG_TCG_TPM is not set | ||
773 | CONFIG_I2C=y | ||
774 | CONFIG_I2C_BOARDINFO=y | ||
775 | CONFIG_I2C_CHARDEV=y | ||
776 | |||
777 | # | ||
778 | # I2C Algorithms | ||
779 | # | ||
780 | # CONFIG_I2C_ALGOBIT is not set | ||
781 | # CONFIG_I2C_ALGOPCF is not set | ||
782 | # CONFIG_I2C_ALGOPCA is not set | ||
783 | |||
784 | # | ||
785 | # I2C Hardware Bus support | ||
786 | # | ||
787 | # CONFIG_I2C_BLACKFIN_GPIO is not set | ||
788 | CONFIG_I2C_BLACKFIN_TWI=y | ||
789 | CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=50 | ||
790 | # CONFIG_I2C_GPIO is not set | ||
791 | # CONFIG_I2C_OCORES is not set | ||
792 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
793 | # CONFIG_I2C_SIMTEC is not set | ||
794 | # CONFIG_I2C_STUB is not set | ||
795 | |||
796 | # | ||
797 | # Miscellaneous I2C Chip support | ||
798 | # | ||
799 | # CONFIG_SENSORS_DS1337 is not set | ||
800 | # CONFIG_SENSORS_DS1374 is not set | ||
801 | # CONFIG_SENSORS_AD5252 is not set | ||
802 | # CONFIG_SENSORS_EEPROM is not set | ||
803 | # CONFIG_SENSORS_PCF8574 is not set | ||
804 | # CONFIG_SENSORS_PCF8575 is not set | ||
805 | # CONFIG_SENSORS_PCA9543 is not set | ||
806 | # CONFIG_SENSORS_PCA9539 is not set | ||
807 | # CONFIG_SENSORS_PCF8591 is not set | ||
808 | # CONFIG_SENSORS_MAX6875 is not set | ||
809 | # CONFIG_I2C_DEBUG_CORE is not set | ||
810 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
811 | # CONFIG_I2C_DEBUG_BUS is not set | ||
812 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
813 | |||
814 | # | ||
815 | # SPI support | ||
816 | # | ||
817 | CONFIG_SPI=y | ||
818 | # CONFIG_SPI_DEBUG is not set | ||
819 | CONFIG_SPI_MASTER=y | ||
820 | |||
821 | # | ||
822 | # SPI Master Controller Drivers | ||
823 | # | ||
824 | CONFIG_SPI_BFIN=y | ||
825 | # CONFIG_SPI_BITBANG is not set | ||
826 | |||
827 | # | ||
828 | # SPI Protocol Masters | ||
829 | # | ||
830 | CONFIG_SPI_AT25=m | ||
831 | # CONFIG_SPI_SPIDEV is not set | ||
832 | |||
833 | # | ||
834 | # Dallas's 1-wire bus | ||
835 | # | ||
836 | # CONFIG_W1 is not set | ||
837 | CONFIG_HWMON=m | ||
838 | # CONFIG_HWMON_VID is not set | ||
839 | # CONFIG_SENSORS_ABITUGURU is not set | ||
840 | # CONFIG_SENSORS_AD7418 is not set | ||
841 | # CONFIG_SENSORS_ADM1021 is not set | ||
842 | # CONFIG_SENSORS_ADM1025 is not set | ||
843 | # CONFIG_SENSORS_ADM1026 is not set | ||
844 | # CONFIG_SENSORS_ADM1029 is not set | ||
845 | # CONFIG_SENSORS_ADM1031 is not set | ||
846 | # CONFIG_SENSORS_ADM9240 is not set | ||
847 | # CONFIG_SENSORS_ASB100 is not set | ||
848 | # CONFIG_SENSORS_ATXP1 is not set | ||
849 | # CONFIG_SENSORS_DS1621 is not set | ||
850 | # CONFIG_SENSORS_F71805F is not set | ||
851 | # CONFIG_SENSORS_FSCHER is not set | ||
852 | # CONFIG_SENSORS_FSCPOS is not set | ||
853 | # CONFIG_SENSORS_GL518SM is not set | ||
854 | # CONFIG_SENSORS_GL520SM is not set | ||
855 | # CONFIG_SENSORS_IT87 is not set | ||
856 | # CONFIG_SENSORS_LM63 is not set | ||
857 | # CONFIG_SENSORS_LM70 is not set | ||
858 | # CONFIG_SENSORS_LM75 is not set | ||
859 | # CONFIG_SENSORS_LM77 is not set | ||
860 | # CONFIG_SENSORS_LM78 is not set | ||
861 | # CONFIG_SENSORS_LM80 is not set | ||
862 | # CONFIG_SENSORS_LM83 is not set | ||
863 | # CONFIG_SENSORS_LM85 is not set | ||
864 | # CONFIG_SENSORS_LM87 is not set | ||
865 | # CONFIG_SENSORS_LM90 is not set | ||
866 | # CONFIG_SENSORS_LM92 is not set | ||
867 | # CONFIG_SENSORS_MAX1619 is not set | ||
868 | # CONFIG_SENSORS_MAX6650 is not set | ||
869 | # CONFIG_SENSORS_PC87360 is not set | ||
870 | # CONFIG_SENSORS_PC87427 is not set | ||
871 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
872 | # CONFIG_SENSORS_SMSC47M192 is not set | ||
873 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
874 | # CONFIG_SENSORS_VT1211 is not set | ||
875 | # CONFIG_SENSORS_W83781D is not set | ||
876 | # CONFIG_SENSORS_W83791D is not set | ||
877 | # CONFIG_SENSORS_W83792D is not set | ||
878 | # CONFIG_SENSORS_W83793 is not set | ||
879 | # CONFIG_SENSORS_W83L785TS is not set | ||
880 | # CONFIG_SENSORS_W83627HF is not set | ||
881 | # CONFIG_SENSORS_W83627EHF is not set | ||
882 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
883 | |||
884 | # | ||
885 | # Multifunction device drivers | ||
886 | # | ||
887 | # CONFIG_MFD_SM501 is not set | ||
888 | |||
889 | # | ||
890 | # Multimedia devices | ||
891 | # | ||
892 | CONFIG_VIDEO_DEV=y | ||
893 | # CONFIG_VIDEO_V4L1 is not set | ||
894 | CONFIG_VIDEO_V4L1_COMPAT=y | ||
895 | CONFIG_VIDEO_V4L2=y | ||
896 | CONFIG_VIDEO_CAPTURE_DRIVERS=y | ||
897 | # CONFIG_VIDEO_ADV_DEBUG is not set | ||
898 | # CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set | ||
899 | |||
900 | # | ||
901 | # Encoders/decoders and other helper chips | ||
902 | # | ||
903 | |||
904 | # | ||
905 | # Audio decoders | ||
906 | # | ||
907 | # CONFIG_VIDEO_TDA9840 is not set | ||
908 | # CONFIG_VIDEO_TEA6415C is not set | ||
909 | # CONFIG_VIDEO_TEA6420 is not set | ||
910 | # CONFIG_VIDEO_MSP3400 is not set | ||
911 | # CONFIG_VIDEO_CS53L32A is not set | ||
912 | # CONFIG_VIDEO_TLV320AIC23B is not set | ||
913 | # CONFIG_VIDEO_WM8775 is not set | ||
914 | # CONFIG_VIDEO_WM8739 is not set | ||
915 | |||
916 | # | ||
917 | # Video decoders | ||
918 | # | ||
919 | # CONFIG_VIDEO_OV7670 is not set | ||
920 | # CONFIG_VIDEO_SAA711X is not set | ||
921 | # CONFIG_VIDEO_TVP5150 is not set | ||
922 | |||
923 | # | ||
924 | # Video and audio decoders | ||
925 | # | ||
926 | # CONFIG_VIDEO_CX25840 is not set | ||
927 | |||
928 | # | ||
929 | # MPEG video encoders | ||
930 | # | ||
931 | # CONFIG_VIDEO_CX2341X is not set | ||
932 | |||
933 | # | ||
934 | # Video encoders | ||
935 | # | ||
936 | # CONFIG_VIDEO_SAA7127 is not set | ||
937 | |||
938 | # | ||
939 | # Video improvement chips | ||
940 | # | ||
941 | # CONFIG_VIDEO_UPD64031A is not set | ||
942 | # CONFIG_VIDEO_UPD64083 is not set | ||
943 | # CONFIG_VIDEO_SAA5246A is not set | ||
944 | # CONFIG_VIDEO_SAA5249 is not set | ||
945 | # CONFIG_VIDEO_PPI_GENERIC is not set | ||
946 | CONFIG_VIDEO_BLACKFIN_CAM=m | ||
947 | # CONFIG_VIDEO_BLACKFIN_MT9M001 is not set | ||
948 | |||
949 | # | ||
950 | # CMOS Camera Sensor Selection | ||
951 | # | ||
952 | # CONFIG_MT9V022 is not set | ||
953 | # CONFIG_MT9M001 is not set | ||
954 | # CONFIG_VS6524 is not set | ||
955 | # CONFIG_VS6624 is not set | ||
956 | CONFIG_OV9655=y | ||
957 | # CONFIG_RADIO_ADAPTERS is not set | ||
958 | # CONFIG_DVB_CORE is not set | ||
959 | # CONFIG_DAB is not set | ||
960 | |||
961 | # | ||
962 | # Graphics support | ||
963 | # | ||
964 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
965 | |||
966 | # | ||
967 | # Display device support | ||
968 | # | ||
969 | # CONFIG_DISPLAY_SUPPORT is not set | ||
970 | # CONFIG_VGASTATE is not set | ||
971 | # CONFIG_FB is not set | ||
972 | |||
973 | # | ||
974 | # Sound | ||
975 | # | ||
976 | # CONFIG_SOUND is not set | ||
977 | |||
978 | # | ||
979 | # HID Devices | ||
980 | # | ||
981 | # CONFIG_HID is not set | ||
982 | |||
983 | # | ||
984 | # USB support | ||
985 | # | ||
986 | CONFIG_USB_ARCH_HAS_HCD=y | ||
987 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
988 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
989 | # CONFIG_USB is not set | ||
990 | |||
991 | # | ||
992 | # Enable Host or Gadget support to see Inventra options | ||
993 | # | ||
994 | |||
995 | # | ||
996 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
997 | # | ||
998 | |||
999 | # | ||
1000 | # USB Gadget Support | ||
1001 | # | ||
1002 | # CONFIG_USB_GADGET is not set | ||
1003 | # CONFIG_MMC is not set | ||
1004 | |||
1005 | # | ||
1006 | # LED devices | ||
1007 | # | ||
1008 | # CONFIG_NEW_LEDS is not set | ||
1009 | |||
1010 | # | ||
1011 | # LED drivers | ||
1012 | # | ||
1013 | |||
1014 | # | ||
1015 | # LED Triggers | ||
1016 | # | ||
1017 | |||
1018 | # | ||
1019 | # InfiniBand support | ||
1020 | # | ||
1021 | |||
1022 | # | ||
1023 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
1024 | # | ||
1025 | |||
1026 | # | ||
1027 | # Real Time Clock | ||
1028 | # | ||
1029 | # CONFIG_RTC_CLASS is not set | ||
1030 | |||
1031 | # | ||
1032 | # DMA Engine support | ||
1033 | # | ||
1034 | # CONFIG_DMA_ENGINE is not set | ||
1035 | |||
1036 | # | ||
1037 | # DMA Clients | ||
1038 | # | ||
1039 | |||
1040 | # | ||
1041 | # DMA Devices | ||
1042 | # | ||
1043 | |||
1044 | # | ||
1045 | # PBX support | ||
1046 | # | ||
1047 | # CONFIG_PBX is not set | ||
1048 | |||
1049 | # | ||
1050 | # File systems | ||
1051 | # | ||
1052 | CONFIG_EXT2_FS=y | ||
1053 | CONFIG_EXT2_FS_XATTR=y | ||
1054 | # CONFIG_EXT2_FS_POSIX_ACL is not set | ||
1055 | # CONFIG_EXT2_FS_SECURITY is not set | ||
1056 | # CONFIG_EXT3_FS is not set | ||
1057 | # CONFIG_EXT4DEV_FS is not set | ||
1058 | CONFIG_FS_MBCACHE=y | ||
1059 | # CONFIG_REISERFS_FS is not set | ||
1060 | # CONFIG_JFS_FS is not set | ||
1061 | # CONFIG_FS_POSIX_ACL is not set | ||
1062 | # CONFIG_XFS_FS is not set | ||
1063 | # CONFIG_GFS2_FS is not set | ||
1064 | # CONFIG_OCFS2_FS is not set | ||
1065 | # CONFIG_MINIX_FS is not set | ||
1066 | # CONFIG_ROMFS_FS is not set | ||
1067 | CONFIG_INOTIFY=y | ||
1068 | CONFIG_INOTIFY_USER=y | ||
1069 | # CONFIG_QUOTA is not set | ||
1070 | CONFIG_DNOTIFY=y | ||
1071 | # CONFIG_AUTOFS_FS is not set | ||
1072 | # CONFIG_AUTOFS4_FS is not set | ||
1073 | # CONFIG_FUSE_FS is not set | ||
1074 | |||
1075 | # | ||
1076 | # CD-ROM/DVD Filesystems | ||
1077 | # | ||
1078 | # CONFIG_ISO9660_FS is not set | ||
1079 | # CONFIG_UDF_FS is not set | ||
1080 | |||
1081 | # | ||
1082 | # DOS/FAT/NT Filesystems | ||
1083 | # | ||
1084 | # CONFIG_MSDOS_FS is not set | ||
1085 | # CONFIG_VFAT_FS is not set | ||
1086 | # CONFIG_NTFS_FS is not set | ||
1087 | |||
1088 | # | ||
1089 | # Pseudo filesystems | ||
1090 | # | ||
1091 | CONFIG_PROC_FS=y | ||
1092 | CONFIG_PROC_SYSCTL=y | ||
1093 | CONFIG_SYSFS=y | ||
1094 | # CONFIG_TMPFS is not set | ||
1095 | # CONFIG_HUGETLB_PAGE is not set | ||
1096 | CONFIG_RAMFS=y | ||
1097 | # CONFIG_CONFIGFS_FS is not set | ||
1098 | |||
1099 | # | ||
1100 | # Miscellaneous filesystems | ||
1101 | # | ||
1102 | # CONFIG_ADFS_FS is not set | ||
1103 | # CONFIG_AFFS_FS is not set | ||
1104 | # CONFIG_HFS_FS is not set | ||
1105 | # CONFIG_HFSPLUS_FS is not set | ||
1106 | # CONFIG_BEFS_FS is not set | ||
1107 | # CONFIG_BFS_FS is not set | ||
1108 | # CONFIG_EFS_FS is not set | ||
1109 | CONFIG_YAFFS_FS=m | ||
1110 | CONFIG_YAFFS_YAFFS1=y | ||
1111 | # CONFIG_YAFFS_DOES_ECC is not set | ||
1112 | CONFIG_YAFFS_YAFFS2=y | ||
1113 | CONFIG_YAFFS_AUTO_YAFFS2=y | ||
1114 | # CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set | ||
1115 | CONFIG_YAFFS_CHECKPOINT_RESERVED_BLOCKS=10 | ||
1116 | # CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set | ||
1117 | # CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set | ||
1118 | CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y | ||
1119 | CONFIG_JFFS2_FS=m | ||
1120 | CONFIG_JFFS2_FS_DEBUG=0 | ||
1121 | CONFIG_JFFS2_FS_WRITEBUFFER=y | ||
1122 | # CONFIG_JFFS2_SUMMARY is not set | ||
1123 | # CONFIG_JFFS2_FS_XATTR is not set | ||
1124 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | ||
1125 | CONFIG_JFFS2_ZLIB=y | ||
1126 | CONFIG_JFFS2_RTIME=y | ||
1127 | # CONFIG_JFFS2_RUBIN is not set | ||
1128 | # CONFIG_CRAMFS is not set | ||
1129 | # CONFIG_VXFS_FS is not set | ||
1130 | # CONFIG_HPFS_FS is not set | ||
1131 | # CONFIG_QNX4FS_FS is not set | ||
1132 | # CONFIG_SYSV_FS is not set | ||
1133 | # CONFIG_UFS_FS is not set | ||
1134 | |||
1135 | # | ||
1136 | # Network File Systems | ||
1137 | # | ||
1138 | CONFIG_NFS_FS=m | ||
1139 | CONFIG_NFS_V3=y | ||
1140 | # CONFIG_NFS_V3_ACL is not set | ||
1141 | # CONFIG_NFS_V4 is not set | ||
1142 | # CONFIG_NFS_DIRECTIO is not set | ||
1143 | # CONFIG_NFSD is not set | ||
1144 | CONFIG_LOCKD=m | ||
1145 | CONFIG_LOCKD_V4=y | ||
1146 | CONFIG_NFS_COMMON=y | ||
1147 | CONFIG_SUNRPC=m | ||
1148 | # CONFIG_SUNRPC_BIND34 is not set | ||
1149 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
1150 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
1151 | CONFIG_SMB_FS=m | ||
1152 | # CONFIG_SMB_NLS_DEFAULT is not set | ||
1153 | # CONFIG_CIFS is not set | ||
1154 | # CONFIG_NCP_FS is not set | ||
1155 | # CONFIG_CODA_FS is not set | ||
1156 | # CONFIG_AFS_FS is not set | ||
1157 | # CONFIG_9P_FS is not set | ||
1158 | |||
1159 | # | ||
1160 | # Partition Types | ||
1161 | # | ||
1162 | # CONFIG_PARTITION_ADVANCED is not set | ||
1163 | CONFIG_MSDOS_PARTITION=y | ||
1164 | |||
1165 | # | ||
1166 | # Native Language Support | ||
1167 | # | ||
1168 | CONFIG_NLS=m | ||
1169 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
1170 | # CONFIG_NLS_CODEPAGE_437 is not set | ||
1171 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
1172 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
1173 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
1174 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
1175 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
1176 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
1177 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
1178 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
1179 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
1180 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
1181 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
1182 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
1183 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
1184 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
1185 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
1186 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
1187 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
1188 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
1189 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
1190 | # CONFIG_NLS_ISO8859_8 is not set | ||
1191 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
1192 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
1193 | # CONFIG_NLS_ASCII is not set | ||
1194 | # CONFIG_NLS_ISO8859_1 is not set | ||
1195 | # CONFIG_NLS_ISO8859_2 is not set | ||
1196 | # CONFIG_NLS_ISO8859_3 is not set | ||
1197 | # CONFIG_NLS_ISO8859_4 is not set | ||
1198 | # CONFIG_NLS_ISO8859_5 is not set | ||
1199 | # CONFIG_NLS_ISO8859_6 is not set | ||
1200 | # CONFIG_NLS_ISO8859_7 is not set | ||
1201 | # CONFIG_NLS_ISO8859_9 is not set | ||
1202 | # CONFIG_NLS_ISO8859_13 is not set | ||
1203 | # CONFIG_NLS_ISO8859_14 is not set | ||
1204 | # CONFIG_NLS_ISO8859_15 is not set | ||
1205 | # CONFIG_NLS_KOI8_R is not set | ||
1206 | # CONFIG_NLS_KOI8_U is not set | ||
1207 | # CONFIG_NLS_UTF8 is not set | ||
1208 | |||
1209 | # | ||
1210 | # Distributed Lock Manager | ||
1211 | # | ||
1212 | # CONFIG_DLM is not set | ||
1213 | |||
1214 | # | ||
1215 | # Profiling support | ||
1216 | # | ||
1217 | # CONFIG_PROFILING is not set | ||
1218 | |||
1219 | # | ||
1220 | # Kernel hacking | ||
1221 | # | ||
1222 | # CONFIG_PRINTK_TIME is not set | ||
1223 | CONFIG_ENABLE_MUST_CHECK=y | ||
1224 | # CONFIG_MAGIC_SYSRQ is not set | ||
1225 | # CONFIG_UNUSED_SYMBOLS is not set | ||
1226 | # CONFIG_DEBUG_FS is not set | ||
1227 | # CONFIG_HEADERS_CHECK is not set | ||
1228 | CONFIG_DEBUG_KERNEL=y | ||
1229 | # CONFIG_DEBUG_SHIRQ is not set | ||
1230 | CONFIG_DETECT_SOFTLOCKUP=y | ||
1231 | # CONFIG_SCHEDSTATS is not set | ||
1232 | # CONFIG_TIMER_STATS is not set | ||
1233 | # CONFIG_DEBUG_SLAB is not set | ||
1234 | # CONFIG_DEBUG_RT_MUTEXES is not set | ||
1235 | # CONFIG_RT_MUTEX_TESTER is not set | ||
1236 | # CONFIG_DEBUG_SPINLOCK is not set | ||
1237 | # CONFIG_DEBUG_MUTEXES is not set | ||
1238 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
1239 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | ||
1240 | # CONFIG_DEBUG_KOBJECT is not set | ||
1241 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
1242 | CONFIG_DEBUG_INFO=y | ||
1243 | # CONFIG_DEBUG_VM is not set | ||
1244 | # CONFIG_DEBUG_LIST is not set | ||
1245 | # CONFIG_FRAME_POINTER is not set | ||
1246 | # CONFIG_FORCED_INLINING is not set | ||
1247 | # CONFIG_RCU_TORTURE_TEST is not set | ||
1248 | # CONFIG_FAULT_INJECTION is not set | ||
1249 | # CONFIG_DEBUG_MMRS is not set | ||
1250 | # CONFIG_DEBUG_HWERR is not set | ||
1251 | CONFIG_DEBUG_HUNT_FOR_ZERO=y | ||
1252 | CONFIG_DEBUG_BFIN_HWTRACE_ON=y | ||
1253 | CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF=y | ||
1254 | # CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE is not set | ||
1255 | # CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_TWO is not set | ||
1256 | CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION=0 | ||
1257 | # CONFIG_DEBUG_BFIN_HWTRACE_EXPAND is not set | ||
1258 | # CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set | ||
1259 | # CONFIG_EARLY_PRINTK is not set | ||
1260 | CONFIG_CPLB_INFO=y | ||
1261 | CONFIG_ACCESS_CHECK=y | ||
1262 | |||
1263 | # | ||
1264 | # Security options | ||
1265 | # | ||
1266 | # CONFIG_KEYS is not set | ||
1267 | CONFIG_SECURITY=y | ||
1268 | # CONFIG_SECURITY_NETWORK is not set | ||
1269 | CONFIG_SECURITY_CAPABILITIES=y | ||
1270 | |||
1271 | # | ||
1272 | # Cryptographic options | ||
1273 | # | ||
1274 | # CONFIG_CRYPTO is not set | ||
1275 | |||
1276 | # | ||
1277 | # Library routines | ||
1278 | # | ||
1279 | CONFIG_BITREVERSE=y | ||
1280 | CONFIG_CRC_CCITT=m | ||
1281 | # CONFIG_CRC16 is not set | ||
1282 | # CONFIG_CRC_ITU_T is not set | ||
1283 | CONFIG_CRC32=y | ||
1284 | # CONFIG_LIBCRC32C is not set | ||
1285 | CONFIG_ZLIB_INFLATE=y | ||
1286 | CONFIG_ZLIB_DEFLATE=m | ||
1287 | CONFIG_PLIST=y | ||
1288 | CONFIG_HAS_IOMEM=y | ||
1289 | CONFIG_HAS_IOPORT=y | ||
1290 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/blackfin/kernel/Makefile b/arch/blackfin/kernel/Makefile index 318b9b692a48..6140cd69c782 100644 --- a/arch/blackfin/kernel/Makefile +++ b/arch/blackfin/kernel/Makefile | |||
@@ -6,9 +6,15 @@ extra-y := init_task.o vmlinux.lds | |||
6 | 6 | ||
7 | obj-y := \ | 7 | obj-y := \ |
8 | entry.o process.o bfin_ksyms.o ptrace.o setup.o signal.o \ | 8 | entry.o process.o bfin_ksyms.o ptrace.o setup.o signal.o \ |
9 | sys_bfin.o time.o traps.o irqchip.o dma-mapping.o flat.o \ | 9 | sys_bfin.o traps.o irqchip.o dma-mapping.o flat.o \ |
10 | fixed_code.o reboot.o bfin_gpio.o | 10 | fixed_code.o reboot.o bfin_gpio.o |
11 | 11 | ||
12 | ifeq ($(CONFIG_GENERIC_CLOCKEVENTS),y) | ||
13 | obj-y += time-ts.o | ||
14 | else | ||
15 | obj-y += time.o | ||
16 | endif | ||
17 | |||
12 | obj-$(CONFIG_BFIN_GPTIMERS) += gptimers.o | 18 | obj-$(CONFIG_BFIN_GPTIMERS) += gptimers.o |
13 | obj-$(CONFIG_MODULES) += module.o | 19 | obj-$(CONFIG_MODULES) += module.o |
14 | obj-$(CONFIG_BFIN_DMA_5XX) += bfin_dma_5xx.o | 20 | obj-$(CONFIG_BFIN_DMA_5XX) += bfin_dma_5xx.o |
diff --git a/arch/blackfin/kernel/bfin_dma_5xx.c b/arch/blackfin/kernel/bfin_dma_5xx.c index 8fd5d22cec34..fd5448d6107c 100644 --- a/arch/blackfin/kernel/bfin_dma_5xx.c +++ b/arch/blackfin/kernel/bfin_dma_5xx.c | |||
@@ -67,7 +67,7 @@ static int __init blackfin_dma_init(void) | |||
67 | 67 | ||
68 | for (i = 0; i < MAX_BLACKFIN_DMA_CHANNEL; i++) { | 68 | for (i = 0; i < MAX_BLACKFIN_DMA_CHANNEL; i++) { |
69 | dma_ch[i].chan_status = DMA_CHANNEL_FREE; | 69 | dma_ch[i].chan_status = DMA_CHANNEL_FREE; |
70 | dma_ch[i].regs = base_addr[i]; | 70 | dma_ch[i].regs = dma_io_base_addr[i]; |
71 | mutex_init(&(dma_ch[i].dmalock)); | 71 | mutex_init(&(dma_ch[i].dmalock)); |
72 | } | 72 | } |
73 | /* Mark MEMDMA Channel 0 as requested since we're using it internally */ | 73 | /* Mark MEMDMA Channel 0 as requested since we're using it internally */ |
@@ -106,12 +106,15 @@ int request_dma(unsigned int channel, char *device_id) | |||
106 | 106 | ||
107 | #ifdef CONFIG_BF54x | 107 | #ifdef CONFIG_BF54x |
108 | if (channel >= CH_UART2_RX && channel <= CH_UART3_TX) { | 108 | if (channel >= CH_UART2_RX && channel <= CH_UART3_TX) { |
109 | if (strncmp(device_id, "BFIN_UART", 9) == 0) | 109 | if (strncmp(device_id, "BFIN_UART", 9) == 0) { |
110 | dma_ch[channel].regs->peripheral_map &= 0x0FFF; | ||
110 | dma_ch[channel].regs->peripheral_map |= | 111 | dma_ch[channel].regs->peripheral_map |= |
111 | (channel - CH_UART2_RX + 0xC); | 112 | ((channel - CH_UART2_RX + 0xC)<<12); |
112 | else | 113 | } else { |
114 | dma_ch[channel].regs->peripheral_map &= 0x0FFF; | ||
113 | dma_ch[channel].regs->peripheral_map |= | 115 | dma_ch[channel].regs->peripheral_map |= |
114 | (channel - CH_UART2_RX + 0x6); | 116 | ((channel - CH_UART2_RX + 0x6)<<12); |
117 | } | ||
115 | } | 118 | } |
116 | #endif | 119 | #endif |
117 | 120 | ||
diff --git a/arch/blackfin/kernel/bfin_gpio.c b/arch/blackfin/kernel/bfin_gpio.c index 08788f7bbfba..7e8eaf4a31bb 100644 --- a/arch/blackfin/kernel/bfin_gpio.c +++ b/arch/blackfin/kernel/bfin_gpio.c | |||
@@ -95,14 +95,14 @@ enum { | |||
95 | AWA_data_clear = SYSCR, | 95 | AWA_data_clear = SYSCR, |
96 | AWA_data_set = SYSCR, | 96 | AWA_data_set = SYSCR, |
97 | AWA_toggle = SYSCR, | 97 | AWA_toggle = SYSCR, |
98 | AWA_maska = UART_SCR, | 98 | AWA_maska = BFIN_UART_SCR, |
99 | AWA_maska_clear = UART_SCR, | 99 | AWA_maska_clear = BFIN_UART_SCR, |
100 | AWA_maska_set = UART_SCR, | 100 | AWA_maska_set = BFIN_UART_SCR, |
101 | AWA_maska_toggle = UART_SCR, | 101 | AWA_maska_toggle = BFIN_UART_SCR, |
102 | AWA_maskb = UART_GCTL, | 102 | AWA_maskb = BFIN_UART_GCTL, |
103 | AWA_maskb_clear = UART_GCTL, | 103 | AWA_maskb_clear = BFIN_UART_GCTL, |
104 | AWA_maskb_set = UART_GCTL, | 104 | AWA_maskb_set = BFIN_UART_GCTL, |
105 | AWA_maskb_toggle = UART_GCTL, | 105 | AWA_maskb_toggle = BFIN_UART_GCTL, |
106 | AWA_dir = SPORT1_STAT, | 106 | AWA_dir = SPORT1_STAT, |
107 | AWA_polar = SPORT1_STAT, | 107 | AWA_polar = SPORT1_STAT, |
108 | AWA_edge = SPORT1_STAT, | 108 | AWA_edge = SPORT1_STAT, |
@@ -348,11 +348,10 @@ static void portmux_setup(unsigned short per, unsigned short function) | |||
348 | offset = port_mux_lut[y].offset; | 348 | offset = port_mux_lut[y].offset; |
349 | muxreg = bfin_read_PORT_MUX(); | 349 | muxreg = bfin_read_PORT_MUX(); |
350 | 350 | ||
351 | if (offset != 1) { | 351 | if (offset != 1) |
352 | muxreg &= ~(1 << offset); | 352 | muxreg &= ~(1 << offset); |
353 | } else { | 353 | else |
354 | muxreg &= ~(3 << 1); | 354 | muxreg &= ~(3 << 1); |
355 | } | ||
356 | 355 | ||
357 | muxreg |= (function << offset); | 356 | muxreg |= (function << offset); |
358 | bfin_write_PORT_MUX(muxreg); | 357 | bfin_write_PORT_MUX(muxreg); |
@@ -396,39 +395,11 @@ inline void portmux_setup(unsigned short portno, unsigned short function) | |||
396 | # define portmux_setup(...) do { } while (0) | 395 | # define portmux_setup(...) do { } while (0) |
397 | #endif | 396 | #endif |
398 | 397 | ||
399 | #ifndef BF548_FAMILY | ||
400 | static void default_gpio(unsigned gpio) | ||
401 | { | ||
402 | unsigned short bank, bitmask; | ||
403 | unsigned long flags; | ||
404 | |||
405 | bank = gpio_bank(gpio); | ||
406 | bitmask = gpio_bit(gpio); | ||
407 | |||
408 | local_irq_save(flags); | ||
409 | |||
410 | gpio_bankb[bank]->maska_clear = bitmask; | ||
411 | gpio_bankb[bank]->maskb_clear = bitmask; | ||
412 | SSYNC(); | ||
413 | gpio_bankb[bank]->inen &= ~bitmask; | ||
414 | gpio_bankb[bank]->dir &= ~bitmask; | ||
415 | gpio_bankb[bank]->polar &= ~bitmask; | ||
416 | gpio_bankb[bank]->both &= ~bitmask; | ||
417 | gpio_bankb[bank]->edge &= ~bitmask; | ||
418 | AWA_DUMMY_READ(edge); | ||
419 | local_irq_restore(flags); | ||
420 | } | ||
421 | #else | ||
422 | # define default_gpio(...) do { } while (0) | ||
423 | #endif | ||
424 | |||
425 | static int __init bfin_gpio_init(void) | 398 | static int __init bfin_gpio_init(void) |
426 | { | 399 | { |
427 | |||
428 | printk(KERN_INFO "Blackfin GPIO Controller\n"); | 400 | printk(KERN_INFO "Blackfin GPIO Controller\n"); |
429 | 401 | ||
430 | return 0; | 402 | return 0; |
431 | |||
432 | } | 403 | } |
433 | arch_initcall(bfin_gpio_init); | 404 | arch_initcall(bfin_gpio_init); |
434 | 405 | ||
@@ -821,10 +792,10 @@ int peripheral_request(unsigned short per, const char *label) | |||
821 | local_irq_save(flags); | 792 | local_irq_save(flags); |
822 | 793 | ||
823 | if (unlikely(reserved_gpio_map[gpio_bank(ident)] & gpio_bit(ident))) { | 794 | if (unlikely(reserved_gpio_map[gpio_bank(ident)] & gpio_bit(ident))) { |
795 | dump_stack(); | ||
824 | printk(KERN_ERR | 796 | printk(KERN_ERR |
825 | "%s: Peripheral %d is already reserved as GPIO by %s !\n", | 797 | "%s: Peripheral %d is already reserved as GPIO by %s !\n", |
826 | __FUNCTION__, ident, get_label(ident)); | 798 | __func__, ident, get_label(ident)); |
827 | dump_stack(); | ||
828 | local_irq_restore(flags); | 799 | local_irq_restore(flags); |
829 | return -EBUSY; | 800 | return -EBUSY; |
830 | } | 801 | } |
@@ -833,31 +804,31 @@ int peripheral_request(unsigned short per, const char *label) | |||
833 | 804 | ||
834 | u16 funct = get_portmux(ident); | 805 | u16 funct = get_portmux(ident); |
835 | 806 | ||
836 | /* | 807 | /* |
837 | * Pin functions like AMC address strobes my | 808 | * Pin functions like AMC address strobes my |
838 | * be requested and used by several drivers | 809 | * be requested and used by several drivers |
839 | */ | 810 | */ |
840 | 811 | ||
841 | if (!((per & P_MAYSHARE) && (funct == P_FUNCT2MUX(per)))) { | 812 | if (!((per & P_MAYSHARE) && (funct == P_FUNCT2MUX(per)))) { |
842 | 813 | ||
843 | /* | 814 | /* |
844 | * Allow that the identical pin function can | 815 | * Allow that the identical pin function can |
845 | * be requested from the same driver twice | 816 | * be requested from the same driver twice |
846 | */ | 817 | */ |
847 | 818 | ||
848 | if (cmp_label(ident, label) == 0) | 819 | if (cmp_label(ident, label) == 0) |
849 | goto anyway; | 820 | goto anyway; |
850 | 821 | ||
822 | dump_stack(); | ||
851 | printk(KERN_ERR | 823 | printk(KERN_ERR |
852 | "%s: Peripheral %d function %d is already reserved by %s !\n", | 824 | "%s: Peripheral %d function %d is already reserved by %s !\n", |
853 | __FUNCTION__, ident, P_FUNCT2MUX(per), get_label(ident)); | 825 | __func__, ident, P_FUNCT2MUX(per), get_label(ident)); |
854 | dump_stack(); | ||
855 | local_irq_restore(flags); | 826 | local_irq_restore(flags); |
856 | return -EBUSY; | 827 | return -EBUSY; |
857 | } | 828 | } |
858 | } | 829 | } |
859 | 830 | ||
860 | anyway: | 831 | anyway: |
861 | reserved_peri_map[gpio_bank(ident)] |= gpio_bit(ident); | 832 | reserved_peri_map[gpio_bank(ident)] |= gpio_bit(ident); |
862 | 833 | ||
863 | portmux_setup(ident, P_FUNCT2MUX(per)); | 834 | portmux_setup(ident, P_FUNCT2MUX(per)); |
@@ -890,47 +861,47 @@ int peripheral_request(unsigned short per, const char *label) | |||
890 | 861 | ||
891 | if (!check_gpio(ident)) { | 862 | if (!check_gpio(ident)) { |
892 | 863 | ||
893 | if (unlikely(reserved_gpio_map[gpio_bank(ident)] & gpio_bit(ident))) { | 864 | if (unlikely(reserved_gpio_map[gpio_bank(ident)] & gpio_bit(ident))) { |
894 | printk(KERN_ERR | 865 | dump_stack(); |
895 | "%s: Peripheral %d is already reserved as GPIO by %s !\n", | 866 | printk(KERN_ERR |
896 | __FUNCTION__, ident, get_label(ident)); | 867 | "%s: Peripheral %d is already reserved as GPIO by %s !\n", |
897 | dump_stack(); | 868 | __func__, ident, get_label(ident)); |
898 | local_irq_restore(flags); | 869 | local_irq_restore(flags); |
899 | return -EBUSY; | 870 | return -EBUSY; |
900 | } | 871 | } |
901 | 872 | ||
902 | } | 873 | } |
903 | 874 | ||
904 | if (unlikely(reserved_peri_map[gpio_bank(ident)] & gpio_bit(ident))) { | 875 | if (unlikely(reserved_peri_map[gpio_bank(ident)] & gpio_bit(ident))) { |
905 | 876 | ||
906 | /* | 877 | /* |
907 | * Pin functions like AMC address strobes my | 878 | * Pin functions like AMC address strobes my |
908 | * be requested and used by several drivers | 879 | * be requested and used by several drivers |
909 | */ | 880 | */ |
910 | 881 | ||
911 | if (!(per & P_MAYSHARE)) { | 882 | if (!(per & P_MAYSHARE)) { |
912 | 883 | ||
913 | /* | 884 | /* |
914 | * Allow that the identical pin function can | 885 | * Allow that the identical pin function can |
915 | * be requested from the same driver twice | 886 | * be requested from the same driver twice |
916 | */ | 887 | */ |
917 | 888 | ||
918 | if (cmp_label(ident, label) == 0) | 889 | if (cmp_label(ident, label) == 0) |
919 | goto anyway; | 890 | goto anyway; |
920 | 891 | ||
892 | dump_stack(); | ||
921 | printk(KERN_ERR | 893 | printk(KERN_ERR |
922 | "%s: Peripheral %d function %d is already" | 894 | "%s: Peripheral %d function %d is already" |
923 | " reserved by %s !\n", | 895 | " reserved by %s !\n", |
924 | __FUNCTION__, ident, P_FUNCT2MUX(per), | 896 | __func__, ident, P_FUNCT2MUX(per), |
925 | get_label(ident)); | 897 | get_label(ident)); |
926 | dump_stack(); | ||
927 | local_irq_restore(flags); | 898 | local_irq_restore(flags); |
928 | return -EBUSY; | 899 | return -EBUSY; |
929 | } | 900 | } |
930 | 901 | ||
931 | } | 902 | } |
932 | 903 | ||
933 | anyway: | 904 | anyway: |
934 | portmux_setup(per, P_FUNCT2MUX(per)); | 905 | portmux_setup(per, P_FUNCT2MUX(per)); |
935 | 906 | ||
936 | port_setup(ident, PERIPHERAL_USAGE); | 907 | port_setup(ident, PERIPHERAL_USAGE); |
@@ -944,7 +915,7 @@ anyway: | |||
944 | EXPORT_SYMBOL(peripheral_request); | 915 | EXPORT_SYMBOL(peripheral_request); |
945 | #endif | 916 | #endif |
946 | 917 | ||
947 | int peripheral_request_list(unsigned short per[], const char *label) | 918 | int peripheral_request_list(const unsigned short per[], const char *label) |
948 | { | 919 | { |
949 | u16 cnt; | 920 | u16 cnt; |
950 | int ret; | 921 | int ret; |
@@ -954,10 +925,10 @@ int peripheral_request_list(unsigned short per[], const char *label) | |||
954 | ret = peripheral_request(per[cnt], label); | 925 | ret = peripheral_request(per[cnt], label); |
955 | 926 | ||
956 | if (ret < 0) { | 927 | if (ret < 0) { |
957 | for ( ; cnt > 0; cnt--) { | 928 | for ( ; cnt > 0; cnt--) |
958 | peripheral_free(per[cnt - 1]); | 929 | peripheral_free(per[cnt - 1]); |
959 | } | 930 | |
960 | return ret; | 931 | return ret; |
961 | } | 932 | } |
962 | } | 933 | } |
963 | 934 | ||
@@ -981,15 +952,13 @@ void peripheral_free(unsigned short per) | |||
981 | 952 | ||
982 | local_irq_save(flags); | 953 | local_irq_save(flags); |
983 | 954 | ||
984 | if (unlikely(!(reserved_peri_map[gpio_bank(ident)] | 955 | if (unlikely(!(reserved_peri_map[gpio_bank(ident)] & gpio_bit(ident)))) { |
985 | & gpio_bit(ident)))) { | ||
986 | local_irq_restore(flags); | 956 | local_irq_restore(flags); |
987 | return; | 957 | return; |
988 | } | 958 | } |
989 | 959 | ||
990 | if (!(per & P_MAYSHARE)) { | 960 | if (!(per & P_MAYSHARE)) |
991 | port_setup(ident, GPIO_USAGE); | 961 | port_setup(ident, GPIO_USAGE); |
992 | } | ||
993 | 962 | ||
994 | reserved_peri_map[gpio_bank(ident)] &= ~gpio_bit(ident); | 963 | reserved_peri_map[gpio_bank(ident)] &= ~gpio_bit(ident); |
995 | 964 | ||
@@ -999,14 +968,11 @@ void peripheral_free(unsigned short per) | |||
999 | } | 968 | } |
1000 | EXPORT_SYMBOL(peripheral_free); | 969 | EXPORT_SYMBOL(peripheral_free); |
1001 | 970 | ||
1002 | void peripheral_free_list(unsigned short per[]) | 971 | void peripheral_free_list(const unsigned short per[]) |
1003 | { | 972 | { |
1004 | u16 cnt; | 973 | u16 cnt; |
1005 | 974 | for (cnt = 0; per[cnt] != 0; cnt++) | |
1006 | for (cnt = 0; per[cnt] != 0; cnt++) { | ||
1007 | peripheral_free(per[cnt]); | 975 | peripheral_free(per[cnt]); |
1008 | } | ||
1009 | |||
1010 | } | 976 | } |
1011 | EXPORT_SYMBOL(peripheral_free_list); | 977 | EXPORT_SYMBOL(peripheral_free_list); |
1012 | 978 | ||
@@ -1046,17 +1012,17 @@ int gpio_request(unsigned gpio, const char *label) | |||
1046 | } | 1012 | } |
1047 | 1013 | ||
1048 | if (unlikely(reserved_gpio_map[gpio_bank(gpio)] & gpio_bit(gpio))) { | 1014 | if (unlikely(reserved_gpio_map[gpio_bank(gpio)] & gpio_bit(gpio))) { |
1015 | dump_stack(); | ||
1049 | printk(KERN_ERR "bfin-gpio: GPIO %d is already reserved by %s !\n", | 1016 | printk(KERN_ERR "bfin-gpio: GPIO %d is already reserved by %s !\n", |
1050 | gpio, get_label(gpio)); | 1017 | gpio, get_label(gpio)); |
1051 | dump_stack(); | ||
1052 | local_irq_restore(flags); | 1018 | local_irq_restore(flags); |
1053 | return -EBUSY; | 1019 | return -EBUSY; |
1054 | } | 1020 | } |
1055 | if (unlikely(reserved_peri_map[gpio_bank(gpio)] & gpio_bit(gpio))) { | 1021 | if (unlikely(reserved_peri_map[gpio_bank(gpio)] & gpio_bit(gpio))) { |
1022 | dump_stack(); | ||
1056 | printk(KERN_ERR | 1023 | printk(KERN_ERR |
1057 | "bfin-gpio: GPIO %d is already reserved as Peripheral by %s !\n", | 1024 | "bfin-gpio: GPIO %d is already reserved as Peripheral by %s !\n", |
1058 | gpio, get_label(gpio)); | 1025 | gpio, get_label(gpio)); |
1059 | dump_stack(); | ||
1060 | local_irq_restore(flags); | 1026 | local_irq_restore(flags); |
1061 | return -EBUSY; | 1027 | return -EBUSY; |
1062 | } | 1028 | } |
@@ -1082,14 +1048,12 @@ void gpio_free(unsigned gpio) | |||
1082 | local_irq_save(flags); | 1048 | local_irq_save(flags); |
1083 | 1049 | ||
1084 | if (unlikely(!(reserved_gpio_map[gpio_bank(gpio)] & gpio_bit(gpio)))) { | 1050 | if (unlikely(!(reserved_gpio_map[gpio_bank(gpio)] & gpio_bit(gpio)))) { |
1085 | gpio_error(gpio); | ||
1086 | dump_stack(); | 1051 | dump_stack(); |
1052 | gpio_error(gpio); | ||
1087 | local_irq_restore(flags); | 1053 | local_irq_restore(flags); |
1088 | return; | 1054 | return; |
1089 | } | 1055 | } |
1090 | 1056 | ||
1091 | default_gpio(gpio); | ||
1092 | |||
1093 | reserved_gpio_map[gpio_bank(gpio)] &= ~gpio_bit(gpio); | 1057 | reserved_gpio_map[gpio_bank(gpio)] &= ~gpio_bit(gpio); |
1094 | 1058 | ||
1095 | set_label(gpio, "free"); | 1059 | set_label(gpio, "free"); |
@@ -1152,6 +1116,18 @@ int gpio_get_value(unsigned gpio) | |||
1152 | } | 1116 | } |
1153 | EXPORT_SYMBOL(gpio_get_value); | 1117 | EXPORT_SYMBOL(gpio_get_value); |
1154 | 1118 | ||
1119 | void bfin_gpio_irq_prepare(unsigned gpio) | ||
1120 | { | ||
1121 | unsigned long flags; | ||
1122 | |||
1123 | port_setup(gpio, GPIO_USAGE); | ||
1124 | |||
1125 | local_irq_save(flags); | ||
1126 | gpio_array[gpio_bank(gpio)]->port_dir_clear = gpio_bit(gpio); | ||
1127 | gpio_array[gpio_bank(gpio)]->port_inen |= gpio_bit(gpio); | ||
1128 | local_irq_restore(flags); | ||
1129 | } | ||
1130 | |||
1155 | #else | 1131 | #else |
1156 | 1132 | ||
1157 | int gpio_direction_input(unsigned gpio) | 1133 | int gpio_direction_input(unsigned gpio) |
@@ -1218,6 +1194,11 @@ void bfin_gpio_reset_spi0_ssel1(void) | |||
1218 | udelay(1); | 1194 | udelay(1); |
1219 | } | 1195 | } |
1220 | 1196 | ||
1197 | void bfin_gpio_irq_prepare(unsigned gpio) | ||
1198 | { | ||
1199 | port_setup(gpio, GPIO_USAGE); | ||
1200 | } | ||
1201 | |||
1221 | #endif /*BF548_FAMILY */ | 1202 | #endif /*BF548_FAMILY */ |
1222 | 1203 | ||
1223 | #if defined(CONFIG_PROC_FS) | 1204 | #if defined(CONFIG_PROC_FS) |
diff --git a/arch/blackfin/kernel/cplb-mpu/cplbinfo.c b/arch/blackfin/kernel/cplb-mpu/cplbinfo.c index bd072299f7f2..822beefa3a4b 100644 --- a/arch/blackfin/kernel/cplb-mpu/cplbinfo.c +++ b/arch/blackfin/kernel/cplb-mpu/cplbinfo.c | |||
@@ -39,14 +39,6 @@ | |||
39 | #include <asm/cplbinit.h> | 39 | #include <asm/cplbinit.h> |
40 | #include <asm/blackfin.h> | 40 | #include <asm/blackfin.h> |
41 | 41 | ||
42 | #define CPLB_I 1 | ||
43 | #define CPLB_D 2 | ||
44 | |||
45 | #define SYNC_SYS SSYNC() | ||
46 | #define SYNC_CORE CSYNC() | ||
47 | |||
48 | #define CPLB_BIT_PAGESIZE 0x30000 | ||
49 | |||
50 | static char page_size_string_table[][4] = { "1K", "4K", "1M", "4M" }; | 42 | static char page_size_string_table[][4] = { "1K", "4K", "1M", "4M" }; |
51 | 43 | ||
52 | static char *cplb_print_entry(char *buf, struct cplb_entry *tbl, int switched) | 44 | static char *cplb_print_entry(char *buf, struct cplb_entry *tbl, int switched) |
diff --git a/arch/blackfin/kernel/cplb-mpu/cplbinit.c b/arch/blackfin/kernel/cplb-mpu/cplbinit.c index dc6e8a7a8bda..48060105346a 100644 --- a/arch/blackfin/kernel/cplb-mpu/cplbinit.c +++ b/arch/blackfin/kernel/cplb-mpu/cplbinit.c | |||
@@ -43,13 +43,15 @@ void __init generate_cpl_tables(void) | |||
43 | unsigned long d_data, i_data; | 43 | unsigned long d_data, i_data; |
44 | unsigned long d_cache = 0, i_cache = 0; | 44 | unsigned long d_cache = 0, i_cache = 0; |
45 | 45 | ||
46 | printk(KERN_INFO "MPU: setting up cplb tables with memory protection\n"); | ||
47 | |||
46 | #ifdef CONFIG_BFIN_ICACHE | 48 | #ifdef CONFIG_BFIN_ICACHE |
47 | i_cache = CPLB_L1_CHBL | ANOMALY_05000158_WORKAROUND; | 49 | i_cache = CPLB_L1_CHBL | ANOMALY_05000158_WORKAROUND; |
48 | #endif | 50 | #endif |
49 | 51 | ||
50 | #ifdef CONFIG_BFIN_DCACHE | 52 | #ifdef CONFIG_BFIN_DCACHE |
51 | d_cache = CPLB_L1_CHBL; | 53 | d_cache = CPLB_L1_CHBL; |
52 | #ifdef CONFIG_BLKFIN_WT | 54 | #ifdef CONFIG_BFIN_WT |
53 | d_cache |= CPLB_L1_AOW | CPLB_WT; | 55 | d_cache |= CPLB_L1_AOW | CPLB_WT; |
54 | #endif | 56 | #endif |
55 | #endif | 57 | #endif |
diff --git a/arch/blackfin/kernel/cplb-mpu/cplbmgr.c b/arch/blackfin/kernel/cplb-mpu/cplbmgr.c index c426a22f9907..99f2831e2964 100644 --- a/arch/blackfin/kernel/cplb-mpu/cplbmgr.c +++ b/arch/blackfin/kernel/cplb-mpu/cplbmgr.c | |||
@@ -24,8 +24,6 @@ | |||
24 | #include <asm/cplbinit.h> | 24 | #include <asm/cplbinit.h> |
25 | #include <asm/mmu_context.h> | 25 | #include <asm/mmu_context.h> |
26 | 26 | ||
27 | #ifdef CONFIG_BFIN_ICACHE | ||
28 | |||
29 | #define FAULT_RW (1 << 16) | 27 | #define FAULT_RW (1 << 16) |
30 | #define FAULT_USERSUPV (1 << 17) | 28 | #define FAULT_USERSUPV (1 << 17) |
31 | 29 | ||
@@ -143,30 +141,48 @@ static noinline int dcplb_miss(void) | |||
143 | unsigned long d_data; | 141 | unsigned long d_data; |
144 | 142 | ||
145 | nr_dcplb_miss++; | 143 | nr_dcplb_miss++; |
146 | if (addr >= _ramend) | ||
147 | return CPLB_PROT_VIOL; | ||
148 | 144 | ||
149 | d_data = CPLB_SUPV_WR | CPLB_VALID | CPLB_DIRTY | PAGE_SIZE_4KB; | 145 | d_data = CPLB_SUPV_WR | CPLB_VALID | CPLB_DIRTY | PAGE_SIZE_4KB; |
150 | #ifdef CONFIG_BFIN_DCACHE | 146 | #ifdef CONFIG_BFIN_DCACHE |
151 | d_data |= CPLB_L1_CHBL | ANOMALY_05000158_WORKAROUND; | 147 | if (addr < _ramend - DMA_UNCACHED_REGION || |
152 | #ifdef CONFIG_BLKFIN_WT | 148 | (reserved_mem_dcache_on && addr >= _ramend && |
153 | d_data |= CPLB_L1_AOW | CPLB_WT; | 149 | addr < physical_mem_end)) { |
154 | #endif | 150 | d_data |= CPLB_L1_CHBL | ANOMALY_05000158_WORKAROUND; |
151 | #ifdef CONFIG_BFIN_WT | ||
152 | d_data |= CPLB_L1_AOW | CPLB_WT; | ||
155 | #endif | 153 | #endif |
156 | mask = current_rwx_mask; | ||
157 | if (mask) { | ||
158 | int page = addr >> PAGE_SHIFT; | ||
159 | int offs = page >> 5; | ||
160 | int bit = 1 << (page & 31); | ||
161 | |||
162 | if (mask[offs] & bit) | ||
163 | d_data |= CPLB_USER_RD; | ||
164 | |||
165 | mask += page_mask_nelts; | ||
166 | if (mask[offs] & bit) | ||
167 | d_data |= CPLB_USER_WR; | ||
168 | } | 154 | } |
155 | #endif | ||
156 | if (addr >= physical_mem_end) { | ||
157 | if (addr >= ASYNC_BANK0_BASE && addr < ASYNC_BANK3_BASE + ASYNC_BANK3_SIZE | ||
158 | && (status & FAULT_USERSUPV)) { | ||
159 | addr &= ~0x3fffff; | ||
160 | d_data &= ~PAGE_SIZE_4KB; | ||
161 | d_data |= PAGE_SIZE_4MB; | ||
162 | } else if (addr >= BOOT_ROM_START && addr < BOOT_ROM_START + BOOT_ROM_LENGTH | ||
163 | && (status & (FAULT_RW | FAULT_USERSUPV)) == FAULT_USERSUPV) { | ||
164 | addr &= ~(1 * 1024 * 1024 - 1); | ||
165 | d_data &= ~PAGE_SIZE_4KB; | ||
166 | d_data |= PAGE_SIZE_1MB; | ||
167 | } else | ||
168 | return CPLB_PROT_VIOL; | ||
169 | } else if (addr >= _ramend) { | ||
170 | d_data |= CPLB_USER_RD | CPLB_USER_WR; | ||
171 | } else { | ||
172 | mask = current_rwx_mask; | ||
173 | if (mask) { | ||
174 | int page = addr >> PAGE_SHIFT; | ||
175 | int offs = page >> 5; | ||
176 | int bit = 1 << (page & 31); | ||
177 | |||
178 | if (mask[offs] & bit) | ||
179 | d_data |= CPLB_USER_RD; | ||
169 | 180 | ||
181 | mask += page_mask_nelts; | ||
182 | if (mask[offs] & bit) | ||
183 | d_data |= CPLB_USER_WR; | ||
184 | } | ||
185 | } | ||
170 | idx = evict_one_dcplb(); | 186 | idx = evict_one_dcplb(); |
171 | 187 | ||
172 | addr &= PAGE_MASK; | 188 | addr &= PAGE_MASK; |
@@ -189,12 +205,14 @@ static noinline int icplb_miss(void) | |||
189 | unsigned long i_data; | 205 | unsigned long i_data; |
190 | 206 | ||
191 | nr_icplb_miss++; | 207 | nr_icplb_miss++; |
192 | if (status & FAULT_USERSUPV) | ||
193 | nr_icplb_supv_miss++; | ||
194 | 208 | ||
195 | if (addr >= _ramend) | 209 | /* If inside the uncached DMA region, fault. */ |
210 | if (addr >= _ramend - DMA_UNCACHED_REGION && addr < _ramend) | ||
196 | return CPLB_PROT_VIOL; | 211 | return CPLB_PROT_VIOL; |
197 | 212 | ||
213 | if (status & FAULT_USERSUPV) | ||
214 | nr_icplb_supv_miss++; | ||
215 | |||
198 | /* | 216 | /* |
199 | * First, try to find a CPLB that matches this address. If we | 217 | * First, try to find a CPLB that matches this address. If we |
200 | * find one, then the fact that we're in the miss handler means | 218 | * find one, then the fact that we're in the miss handler means |
@@ -211,30 +229,48 @@ static noinline int icplb_miss(void) | |||
211 | } | 229 | } |
212 | 230 | ||
213 | i_data = CPLB_VALID | CPLB_PORTPRIO | PAGE_SIZE_4KB; | 231 | i_data = CPLB_VALID | CPLB_PORTPRIO | PAGE_SIZE_4KB; |
214 | #ifdef CONFIG_BFIN_ICACHE | ||
215 | i_data |= CPLB_L1_CHBL | ANOMALY_05000158_WORKAROUND; | ||
216 | #endif | ||
217 | 232 | ||
233 | #ifdef CONFIG_BFIN_ICACHE | ||
218 | /* | 234 | /* |
219 | * Two cases to distinguish - a supervisor access must necessarily | 235 | * Normal RAM, and possibly the reserved memory area, are |
220 | * be for a module page; we grant it unconditionally (could do better | 236 | * cacheable. |
221 | * here in the future). Otherwise, check the x bitmap of the current | ||
222 | * process. | ||
223 | */ | 237 | */ |
224 | if (!(status & FAULT_USERSUPV)) { | 238 | if (addr < _ramend || |
225 | unsigned long *mask = current_rwx_mask; | 239 | (addr < physical_mem_end && reserved_mem_icache_on)) |
226 | 240 | i_data |= CPLB_L1_CHBL | ANOMALY_05000158_WORKAROUND; | |
227 | if (mask) { | 241 | #endif |
228 | int page = addr >> PAGE_SHIFT; | ||
229 | int offs = page >> 5; | ||
230 | int bit = 1 << (page & 31); | ||
231 | 242 | ||
232 | mask += 2 * page_mask_nelts; | 243 | if (addr >= physical_mem_end) { |
233 | if (mask[offs] & bit) | 244 | if (addr >= BOOT_ROM_START && addr < BOOT_ROM_START + BOOT_ROM_LENGTH |
234 | i_data |= CPLB_USER_RD; | 245 | && (status & FAULT_USERSUPV)) { |
246 | addr &= ~(1 * 1024 * 1024 - 1); | ||
247 | i_data &= ~PAGE_SIZE_4KB; | ||
248 | i_data |= PAGE_SIZE_1MB; | ||
249 | } else | ||
250 | return CPLB_PROT_VIOL; | ||
251 | } else if (addr >= _ramend) { | ||
252 | i_data |= CPLB_USER_RD; | ||
253 | } else { | ||
254 | /* | ||
255 | * Two cases to distinguish - a supervisor access must | ||
256 | * necessarily be for a module page; we grant it | ||
257 | * unconditionally (could do better here in the future). | ||
258 | * Otherwise, check the x bitmap of the current process. | ||
259 | */ | ||
260 | if (!(status & FAULT_USERSUPV)) { | ||
261 | unsigned long *mask = current_rwx_mask; | ||
262 | |||
263 | if (mask) { | ||
264 | int page = addr >> PAGE_SHIFT; | ||
265 | int offs = page >> 5; | ||
266 | int bit = 1 << (page & 31); | ||
267 | |||
268 | mask += 2 * page_mask_nelts; | ||
269 | if (mask[offs] & bit) | ||
270 | i_data |= CPLB_USER_RD; | ||
271 | } | ||
235 | } | 272 | } |
236 | } | 273 | } |
237 | |||
238 | idx = evict_one_icplb(); | 274 | idx = evict_one_icplb(); |
239 | addr &= PAGE_MASK; | 275 | addr &= PAGE_MASK; |
240 | icplb_tbl[idx].addr = addr; | 276 | icplb_tbl[idx].addr = addr; |
@@ -250,7 +286,6 @@ static noinline int icplb_miss(void) | |||
250 | 286 | ||
251 | static noinline int dcplb_protection_fault(void) | 287 | static noinline int dcplb_protection_fault(void) |
252 | { | 288 | { |
253 | unsigned long addr = bfin_read_DCPLB_FAULT_ADDR(); | ||
254 | int status = bfin_read_DCPLB_STATUS(); | 289 | int status = bfin_read_DCPLB_STATUS(); |
255 | 290 | ||
256 | nr_dcplb_prot++; | 291 | nr_dcplb_prot++; |
@@ -280,8 +315,7 @@ int cplb_hdr(int seqstat, struct pt_regs *regs) | |||
280 | case 0x26: | 315 | case 0x26: |
281 | return dcplb_miss(); | 316 | return dcplb_miss(); |
282 | default: | 317 | default: |
283 | return 1; | 318 | return 1; |
284 | panic_cplb_error(seqstat, regs); | ||
285 | } | 319 | } |
286 | } | 320 | } |
287 | 321 | ||
@@ -299,7 +333,7 @@ void flush_switched_cplbs(void) | |||
299 | enable_icplb(); | 333 | enable_icplb(); |
300 | 334 | ||
301 | disable_dcplb(); | 335 | disable_dcplb(); |
302 | for (i = first_mask_dcplb; i < MAX_CPLBS; i++) { | 336 | for (i = first_switched_dcplb; i < MAX_CPLBS; i++) { |
303 | dcplb_tbl[i].data = 0; | 337 | dcplb_tbl[i].data = 0; |
304 | bfin_write32(DCPLB_DATA0 + i * 4, 0); | 338 | bfin_write32(DCPLB_DATA0 + i * 4, 0); |
305 | } | 339 | } |
@@ -319,7 +353,7 @@ void set_mask_dcplbs(unsigned long *masks) | |||
319 | d_data = CPLB_SUPV_WR | CPLB_VALID | CPLB_DIRTY | PAGE_SIZE_4KB; | 353 | d_data = CPLB_SUPV_WR | CPLB_VALID | CPLB_DIRTY | PAGE_SIZE_4KB; |
320 | #ifdef CONFIG_BFIN_DCACHE | 354 | #ifdef CONFIG_BFIN_DCACHE |
321 | d_data |= CPLB_L1_CHBL; | 355 | d_data |= CPLB_L1_CHBL; |
322 | #ifdef CONFIG_BLKFIN_WT | 356 | #ifdef CONFIG_BFIN_WT |
323 | d_data |= CPLB_L1_AOW | CPLB_WT; | 357 | d_data |= CPLB_L1_AOW | CPLB_WT; |
324 | #endif | 358 | #endif |
325 | #endif | 359 | #endif |
@@ -334,5 +368,3 @@ void set_mask_dcplbs(unsigned long *masks) | |||
334 | } | 368 | } |
335 | enable_dcplb(); | 369 | enable_dcplb(); |
336 | } | 370 | } |
337 | |||
338 | #endif | ||
diff --git a/arch/blackfin/kernel/cplb-nompu/cplbinfo.c b/arch/blackfin/kernel/cplb-nompu/cplbinfo.c index a4f0b428a34d..1e74f0b97996 100644 --- a/arch/blackfin/kernel/cplb-nompu/cplbinfo.c +++ b/arch/blackfin/kernel/cplb-nompu/cplbinfo.c | |||
@@ -33,9 +33,7 @@ | |||
33 | #include <linux/proc_fs.h> | 33 | #include <linux/proc_fs.h> |
34 | #include <linux/uaccess.h> | 34 | #include <linux/uaccess.h> |
35 | 35 | ||
36 | #include <asm/current.h> | 36 | #include <asm/cplbinit.h> |
37 | #include <asm/system.h> | ||
38 | #include <asm/cplb.h> | ||
39 | #include <asm/blackfin.h> | 37 | #include <asm/blackfin.h> |
40 | 38 | ||
41 | #define CPLB_I 1 | 39 | #define CPLB_I 1 |
@@ -174,16 +172,6 @@ static int cplbinfo_read_proc(char *page, char **start, off_t off, | |||
174 | return len; | 172 | return len; |
175 | } | 173 | } |
176 | 174 | ||
177 | static int cplbinfo_write_proc(struct file *file, const char __user *buffer, | ||
178 | unsigned long count, void *data) | ||
179 | { | ||
180 | printk(KERN_INFO "Reset the CPLB swap in/out counts.\n"); | ||
181 | memset(ipdt_swapcount_table, 0, MAX_SWITCH_I_CPLBS * sizeof(unsigned long)); | ||
182 | memset(dpdt_swapcount_table, 0, MAX_SWITCH_D_CPLBS * sizeof(unsigned long)); | ||
183 | |||
184 | return count; | ||
185 | } | ||
186 | |||
187 | static int __init cplbinfo_init(void) | 175 | static int __init cplbinfo_init(void) |
188 | { | 176 | { |
189 | struct proc_dir_entry *entry; | 177 | struct proc_dir_entry *entry; |
@@ -193,7 +181,6 @@ static int __init cplbinfo_init(void) | |||
193 | return -ENOMEM; | 181 | return -ENOMEM; |
194 | 182 | ||
195 | entry->read_proc = cplbinfo_read_proc; | 183 | entry->read_proc = cplbinfo_read_proc; |
196 | entry->write_proc = cplbinfo_write_proc; | ||
197 | entry->data = NULL; | 184 | entry->data = NULL; |
198 | 185 | ||
199 | return 0; | 186 | return 0; |
diff --git a/arch/blackfin/kernel/cplb-nompu/cplbinit.c b/arch/blackfin/kernel/cplb-nompu/cplbinit.c index 6320bc45fbba..917325bfbd84 100644 --- a/arch/blackfin/kernel/cplb-nompu/cplbinit.c +++ b/arch/blackfin/kernel/cplb-nompu/cplbinit.c | |||
@@ -26,6 +26,35 @@ | |||
26 | #include <asm/cplb.h> | 26 | #include <asm/cplb.h> |
27 | #include <asm/cplbinit.h> | 27 | #include <asm/cplbinit.h> |
28 | 28 | ||
29 | #ifdef CONFIG_MAX_MEM_SIZE | ||
30 | # define CPLB_MEM CONFIG_MAX_MEM_SIZE | ||
31 | #else | ||
32 | # define CPLB_MEM CONFIG_MEM_SIZE | ||
33 | #endif | ||
34 | |||
35 | /* | ||
36 | * Number of required data CPLB switchtable entries | ||
37 | * MEMSIZE / 4 (we mostly install 4M page size CPLBs | ||
38 | * approx 16 for smaller 1MB page size CPLBs for allignment purposes | ||
39 | * 1 for L1 Data Memory | ||
40 | * possibly 1 for L2 Data Memory | ||
41 | * 1 for CONFIG_DEBUG_HUNT_FOR_ZERO | ||
42 | * 1 for ASYNC Memory | ||
43 | */ | ||
44 | #define MAX_SWITCH_D_CPLBS (((CPLB_MEM / 4) + 16 + 1 + 1 + 1 \ | ||
45 | + ASYNC_MEMORY_CPLB_COVERAGE) * 2) | ||
46 | |||
47 | /* | ||
48 | * Number of required instruction CPLB switchtable entries | ||
49 | * MEMSIZE / 4 (we mostly install 4M page size CPLBs | ||
50 | * approx 12 for smaller 1MB page size CPLBs for allignment purposes | ||
51 | * 1 for L1 Instruction Memory | ||
52 | * possibly 1 for L2 Instruction Memory | ||
53 | * 1 for CONFIG_DEBUG_HUNT_FOR_ZERO | ||
54 | */ | ||
55 | #define MAX_SWITCH_I_CPLBS (((CPLB_MEM / 4) + 12 + 1 + 1 + 1) * 2) | ||
56 | |||
57 | |||
29 | u_long icplb_table[MAX_CPLBS + 1]; | 58 | u_long icplb_table[MAX_CPLBS + 1]; |
30 | u_long dcplb_table[MAX_CPLBS + 1]; | 59 | u_long dcplb_table[MAX_CPLBS + 1]; |
31 | 60 | ||
@@ -295,6 +324,8 @@ void __init generate_cpl_tables(void) | |||
295 | struct cplb_tab *t_d = NULL; | 324 | struct cplb_tab *t_d = NULL; |
296 | struct s_cplb cplb; | 325 | struct s_cplb cplb; |
297 | 326 | ||
327 | printk(KERN_INFO "NOMPU: setting up cplb tables for global access\n"); | ||
328 | |||
298 | cplb.init_i.size = MAX_CPLBS; | 329 | cplb.init_i.size = MAX_CPLBS; |
299 | cplb.init_d.size = MAX_CPLBS; | 330 | cplb.init_d.size = MAX_CPLBS; |
300 | cplb.switch_i.size = MAX_SWITCH_I_CPLBS; | 331 | cplb.switch_i.size = MAX_SWITCH_I_CPLBS; |
diff --git a/arch/blackfin/kernel/dma-mapping.c b/arch/blackfin/kernel/dma-mapping.c index d6b61d56b656..2f62a9f4058a 100644 --- a/arch/blackfin/kernel/dma-mapping.c +++ b/arch/blackfin/kernel/dma-mapping.c | |||
@@ -59,7 +59,7 @@ void dma_alloc_init(unsigned long start, unsigned long end) | |||
59 | memset((void *)dma_base, 0, DMA_UNCACHED_REGION); | 59 | memset((void *)dma_base, 0, DMA_UNCACHED_REGION); |
60 | dma_initialized = 1; | 60 | dma_initialized = 1; |
61 | 61 | ||
62 | printk(KERN_INFO "%s: dma_page @ 0x%p - %d pages at 0x%08lx\n", __FUNCTION__, | 62 | printk(KERN_INFO "%s: dma_page @ 0x%p - %d pages at 0x%08lx\n", __func__, |
63 | dma_page, dma_pages, dma_base); | 63 | dma_page, dma_pages, dma_base); |
64 | } | 64 | } |
65 | 65 | ||
@@ -100,7 +100,7 @@ static void __free_dma_pages(unsigned long addr, unsigned int pages) | |||
100 | int i; | 100 | int i; |
101 | 101 | ||
102 | if ((page + pages) > dma_pages) { | 102 | if ((page + pages) > dma_pages) { |
103 | printk(KERN_ERR "%s: freeing outside range.\n", __FUNCTION__); | 103 | printk(KERN_ERR "%s: freeing outside range.\n", __func__); |
104 | BUG(); | 104 | BUG(); |
105 | } | 105 | } |
106 | 106 | ||
diff --git a/arch/blackfin/kernel/gptimers.c b/arch/blackfin/kernel/gptimers.c index 1904d8b53328..e698554895a7 100644 --- a/arch/blackfin/kernel/gptimers.c +++ b/arch/blackfin/kernel/gptimers.c | |||
@@ -52,12 +52,14 @@ static volatile GPTIMER_timer_regs *const timer_regs[MAX_BLACKFIN_GPTIMERS] = | |||
52 | (GPTIMER_timer_regs *)TIMER5_CONFIG, | 52 | (GPTIMER_timer_regs *)TIMER5_CONFIG, |
53 | (GPTIMER_timer_regs *)TIMER6_CONFIG, | 53 | (GPTIMER_timer_regs *)TIMER6_CONFIG, |
54 | (GPTIMER_timer_regs *)TIMER7_CONFIG, | 54 | (GPTIMER_timer_regs *)TIMER7_CONFIG, |
55 | #endif | 55 | # if (MAX_BLACKFIN_GPTIMERS > 8) |
56 | #if (MAX_BLACKFIN_GPTIMERS > 8) | ||
57 | (GPTIMER_timer_regs *)TIMER8_CONFIG, | 56 | (GPTIMER_timer_regs *)TIMER8_CONFIG, |
58 | (GPTIMER_timer_regs *)TIMER9_CONFIG, | 57 | (GPTIMER_timer_regs *)TIMER9_CONFIG, |
59 | (GPTIMER_timer_regs *)TIMER10_CONFIG, | 58 | (GPTIMER_timer_regs *)TIMER10_CONFIG, |
59 | # if (MAX_BLACKFIN_GPTIMERS > 11) | ||
60 | (GPTIMER_timer_regs *)TIMER11_CONFIG, | 60 | (GPTIMER_timer_regs *)TIMER11_CONFIG, |
61 | # endif | ||
62 | # endif | ||
61 | #endif | 63 | #endif |
62 | }; | 64 | }; |
63 | 65 | ||
@@ -80,12 +82,14 @@ static uint32_t const trun_mask[MAX_BLACKFIN_GPTIMERS] = | |||
80 | TIMER_STATUS_TRUN5, | 82 | TIMER_STATUS_TRUN5, |
81 | TIMER_STATUS_TRUN6, | 83 | TIMER_STATUS_TRUN6, |
82 | TIMER_STATUS_TRUN7, | 84 | TIMER_STATUS_TRUN7, |
83 | #endif | 85 | # if (MAX_BLACKFIN_GPTIMERS > 8) |
84 | #if (MAX_BLACKFIN_GPTIMERS > 8) | ||
85 | TIMER_STATUS_TRUN8, | 86 | TIMER_STATUS_TRUN8, |
86 | TIMER_STATUS_TRUN9, | 87 | TIMER_STATUS_TRUN9, |
87 | TIMER_STATUS_TRUN10, | 88 | TIMER_STATUS_TRUN10, |
89 | # if (MAX_BLACKFIN_GPTIMERS > 11) | ||
88 | TIMER_STATUS_TRUN11, | 90 | TIMER_STATUS_TRUN11, |
91 | # endif | ||
92 | # endif | ||
89 | #endif | 93 | #endif |
90 | }; | 94 | }; |
91 | 95 | ||
@@ -100,12 +104,14 @@ static uint32_t const tovf_mask[MAX_BLACKFIN_GPTIMERS] = | |||
100 | TIMER_STATUS_TOVF5, | 104 | TIMER_STATUS_TOVF5, |
101 | TIMER_STATUS_TOVF6, | 105 | TIMER_STATUS_TOVF6, |
102 | TIMER_STATUS_TOVF7, | 106 | TIMER_STATUS_TOVF7, |
103 | #endif | 107 | # if (MAX_BLACKFIN_GPTIMERS > 8) |
104 | #if (MAX_BLACKFIN_GPTIMERS > 8) | ||
105 | TIMER_STATUS_TOVF8, | 108 | TIMER_STATUS_TOVF8, |
106 | TIMER_STATUS_TOVF9, | 109 | TIMER_STATUS_TOVF9, |
107 | TIMER_STATUS_TOVF10, | 110 | TIMER_STATUS_TOVF10, |
111 | # if (MAX_BLACKFIN_GPTIMERS > 11) | ||
108 | TIMER_STATUS_TOVF11, | 112 | TIMER_STATUS_TOVF11, |
113 | # endif | ||
114 | # endif | ||
109 | #endif | 115 | #endif |
110 | }; | 116 | }; |
111 | 117 | ||
@@ -120,12 +126,14 @@ static uint32_t const timil_mask[MAX_BLACKFIN_GPTIMERS] = | |||
120 | TIMER_STATUS_TIMIL5, | 126 | TIMER_STATUS_TIMIL5, |
121 | TIMER_STATUS_TIMIL6, | 127 | TIMER_STATUS_TIMIL6, |
122 | TIMER_STATUS_TIMIL7, | 128 | TIMER_STATUS_TIMIL7, |
123 | #endif | 129 | # if (MAX_BLACKFIN_GPTIMERS > 8) |
124 | #if (MAX_BLACKFIN_GPTIMERS > 8) | ||
125 | TIMER_STATUS_TIMIL8, | 130 | TIMER_STATUS_TIMIL8, |
126 | TIMER_STATUS_TIMIL9, | 131 | TIMER_STATUS_TIMIL9, |
127 | TIMER_STATUS_TIMIL10, | 132 | TIMER_STATUS_TIMIL10, |
133 | # if (MAX_BLACKFIN_GPTIMERS > 11) | ||
128 | TIMER_STATUS_TIMIL11, | 134 | TIMER_STATUS_TIMIL11, |
135 | # endif | ||
136 | # endif | ||
129 | #endif | 137 | #endif |
130 | }; | 138 | }; |
131 | 139 | ||
diff --git a/arch/blackfin/kernel/process.c b/arch/blackfin/kernel/process.c index 6b8459c66163..be9fdd00d7cb 100644 --- a/arch/blackfin/kernel/process.c +++ b/arch/blackfin/kernel/process.c | |||
@@ -32,6 +32,8 @@ | |||
32 | #include <linux/unistd.h> | 32 | #include <linux/unistd.h> |
33 | #include <linux/user.h> | 33 | #include <linux/user.h> |
34 | #include <linux/uaccess.h> | 34 | #include <linux/uaccess.h> |
35 | #include <linux/sched.h> | ||
36 | #include <linux/tick.h> | ||
35 | #include <linux/fs.h> | 37 | #include <linux/fs.h> |
36 | #include <linux/err.h> | 38 | #include <linux/err.h> |
37 | 39 | ||
@@ -69,33 +71,44 @@ EXPORT_SYMBOL(pm_power_off); | |||
69 | * The idle loop on BFIN | 71 | * The idle loop on BFIN |
70 | */ | 72 | */ |
71 | #ifdef CONFIG_IDLE_L1 | 73 | #ifdef CONFIG_IDLE_L1 |
72 | void default_idle(void)__attribute__((l1_text)); | 74 | static void default_idle(void)__attribute__((l1_text)); |
73 | void cpu_idle(void)__attribute__((l1_text)); | 75 | void cpu_idle(void)__attribute__((l1_text)); |
74 | #endif | 76 | #endif |
75 | 77 | ||
76 | void default_idle(void) | 78 | /* |
79 | * This is our default idle handler. We need to disable | ||
80 | * interrupts here to ensure we don't miss a wakeup call. | ||
81 | */ | ||
82 | static void default_idle(void) | ||
77 | { | 83 | { |
78 | while (!need_resched()) { | 84 | local_irq_disable(); |
79 | local_irq_disable(); | 85 | if (!need_resched()) |
80 | if (likely(!need_resched())) | 86 | idle_with_irq_disabled(); |
81 | idle_with_irq_disabled(); | ||
82 | local_irq_enable(); | ||
83 | } | ||
84 | } | ||
85 | 87 | ||
86 | void (*idle)(void) = default_idle; | 88 | local_irq_enable(); |
89 | } | ||
87 | 90 | ||
88 | /* | 91 | /* |
89 | * The idle thread. There's no useful work to be | 92 | * The idle thread. We try to conserve power, while trying to keep |
90 | * done, so just try to conserve power and have a | 93 | * overall latency low. The architecture specific idle is passed |
91 | * low exit latency (ie sit in a loop waiting for | 94 | * a value to indicate the level of "idleness" of the system. |
92 | * somebody to say that they'd like to reschedule) | ||
93 | */ | 95 | */ |
94 | void cpu_idle(void) | 96 | void cpu_idle(void) |
95 | { | 97 | { |
96 | /* endless idle loop with no priority at all */ | 98 | /* endless idle loop with no priority at all */ |
97 | while (1) { | 99 | while (1) { |
98 | idle(); | 100 | void (*idle)(void) = pm_idle; |
101 | |||
102 | #ifdef CONFIG_HOTPLUG_CPU | ||
103 | if (cpu_is_offline(smp_processor_id())) | ||
104 | cpu_die(); | ||
105 | #endif | ||
106 | if (!idle) | ||
107 | idle = default_idle; | ||
108 | tick_nohz_stop_sched_tick(); | ||
109 | while (!need_resched()) | ||
110 | idle(); | ||
111 | tick_nohz_restart_sched_tick(); | ||
99 | preempt_enable_no_resched(); | 112 | preempt_enable_no_resched(); |
100 | schedule(); | 113 | schedule(); |
101 | preempt_disable(); | 114 | preempt_disable(); |
@@ -189,7 +202,7 @@ copy_thread(int nr, unsigned long clone_flags, | |||
189 | * sys_execve() executes a new program. | 202 | * sys_execve() executes a new program. |
190 | */ | 203 | */ |
191 | 204 | ||
192 | asmlinkage int sys_execve(char *name, char **argv, char **envp) | 205 | asmlinkage int sys_execve(char __user *name, char __user * __user *argv, char __user * __user *envp) |
193 | { | 206 | { |
194 | int error; | 207 | int error; |
195 | char *filename; | 208 | char *filename; |
@@ -232,23 +245,25 @@ unsigned long get_wchan(struct task_struct *p) | |||
232 | 245 | ||
233 | void finish_atomic_sections (struct pt_regs *regs) | 246 | void finish_atomic_sections (struct pt_regs *regs) |
234 | { | 247 | { |
248 | int __user *up0 = (int __user *)®s->p0; | ||
249 | |||
235 | if (regs->pc < ATOMIC_SEQS_START || regs->pc >= ATOMIC_SEQS_END) | 250 | if (regs->pc < ATOMIC_SEQS_START || regs->pc >= ATOMIC_SEQS_END) |
236 | return; | 251 | return; |
237 | 252 | ||
238 | switch (regs->pc) { | 253 | switch (regs->pc) { |
239 | case ATOMIC_XCHG32 + 2: | 254 | case ATOMIC_XCHG32 + 2: |
240 | put_user(regs->r1, (int *)regs->p0); | 255 | put_user(regs->r1, up0); |
241 | regs->pc += 2; | 256 | regs->pc += 2; |
242 | break; | 257 | break; |
243 | 258 | ||
244 | case ATOMIC_CAS32 + 2: | 259 | case ATOMIC_CAS32 + 2: |
245 | case ATOMIC_CAS32 + 4: | 260 | case ATOMIC_CAS32 + 4: |
246 | if (regs->r0 == regs->r1) | 261 | if (regs->r0 == regs->r1) |
247 | put_user(regs->r2, (int *)regs->p0); | 262 | put_user(regs->r2, up0); |
248 | regs->pc = ATOMIC_CAS32 + 8; | 263 | regs->pc = ATOMIC_CAS32 + 8; |
249 | break; | 264 | break; |
250 | case ATOMIC_CAS32 + 6: | 265 | case ATOMIC_CAS32 + 6: |
251 | put_user(regs->r2, (int *)regs->p0); | 266 | put_user(regs->r2, up0); |
252 | regs->pc += 2; | 267 | regs->pc += 2; |
253 | break; | 268 | break; |
254 | 269 | ||
@@ -256,7 +271,7 @@ void finish_atomic_sections (struct pt_regs *regs) | |||
256 | regs->r0 = regs->r1 + regs->r0; | 271 | regs->r0 = regs->r1 + regs->r0; |
257 | /* fall through */ | 272 | /* fall through */ |
258 | case ATOMIC_ADD32 + 4: | 273 | case ATOMIC_ADD32 + 4: |
259 | put_user(regs->r0, (int *)regs->p0); | 274 | put_user(regs->r0, up0); |
260 | regs->pc = ATOMIC_ADD32 + 6; | 275 | regs->pc = ATOMIC_ADD32 + 6; |
261 | break; | 276 | break; |
262 | 277 | ||
@@ -264,7 +279,7 @@ void finish_atomic_sections (struct pt_regs *regs) | |||
264 | regs->r0 = regs->r1 - regs->r0; | 279 | regs->r0 = regs->r1 - regs->r0; |
265 | /* fall through */ | 280 | /* fall through */ |
266 | case ATOMIC_SUB32 + 4: | 281 | case ATOMIC_SUB32 + 4: |
267 | put_user(regs->r0, (int *)regs->p0); | 282 | put_user(regs->r0, up0); |
268 | regs->pc = ATOMIC_SUB32 + 6; | 283 | regs->pc = ATOMIC_SUB32 + 6; |
269 | break; | 284 | break; |
270 | 285 | ||
@@ -272,7 +287,7 @@ void finish_atomic_sections (struct pt_regs *regs) | |||
272 | regs->r0 = regs->r1 | regs->r0; | 287 | regs->r0 = regs->r1 | regs->r0; |
273 | /* fall through */ | 288 | /* fall through */ |
274 | case ATOMIC_IOR32 + 4: | 289 | case ATOMIC_IOR32 + 4: |
275 | put_user(regs->r0, (int *)regs->p0); | 290 | put_user(regs->r0, up0); |
276 | regs->pc = ATOMIC_IOR32 + 6; | 291 | regs->pc = ATOMIC_IOR32 + 6; |
277 | break; | 292 | break; |
278 | 293 | ||
@@ -280,7 +295,7 @@ void finish_atomic_sections (struct pt_regs *regs) | |||
280 | regs->r0 = regs->r1 & regs->r0; | 295 | regs->r0 = regs->r1 & regs->r0; |
281 | /* fall through */ | 296 | /* fall through */ |
282 | case ATOMIC_AND32 + 4: | 297 | case ATOMIC_AND32 + 4: |
283 | put_user(regs->r0, (int *)regs->p0); | 298 | put_user(regs->r0, up0); |
284 | regs->pc = ATOMIC_AND32 + 6; | 299 | regs->pc = ATOMIC_AND32 + 6; |
285 | break; | 300 | break; |
286 | 301 | ||
@@ -288,7 +303,7 @@ void finish_atomic_sections (struct pt_regs *regs) | |||
288 | regs->r0 = regs->r1 ^ regs->r0; | 303 | regs->r0 = regs->r1 ^ regs->r0; |
289 | /* fall through */ | 304 | /* fall through */ |
290 | case ATOMIC_XOR32 + 4: | 305 | case ATOMIC_XOR32 + 4: |
291 | put_user(regs->r0, (int *)regs->p0); | 306 | put_user(regs->r0, up0); |
292 | regs->pc = ATOMIC_XOR32 + 6; | 307 | regs->pc = ATOMIC_XOR32 + 6; |
293 | break; | 308 | break; |
294 | } | 309 | } |
@@ -309,6 +324,12 @@ int _access_ok(unsigned long addr, unsigned long size) | |||
309 | return 1; | 324 | return 1; |
310 | if (addr >= memory_mtd_end && (addr + size) <= physical_mem_end) | 325 | if (addr >= memory_mtd_end && (addr + size) <= physical_mem_end) |
311 | return 1; | 326 | return 1; |
327 | |||
328 | #ifdef CONFIG_ROMFS_MTD_FS | ||
329 | /* For XIP, allow user space to use pointers within the ROMFS. */ | ||
330 | if (addr >= memory_mtd_start && (addr + size) <= memory_mtd_end) | ||
331 | return 1; | ||
332 | #endif | ||
312 | #else | 333 | #else |
313 | if (addr >= memory_start && (addr + size) <= physical_mem_end) | 334 | if (addr >= memory_start && (addr + size) <= physical_mem_end) |
314 | return 1; | 335 | return 1; |
diff --git a/arch/blackfin/kernel/ptrace.c b/arch/blackfin/kernel/ptrace.c index 85caf9b711a1..b4f062c172c6 100644 --- a/arch/blackfin/kernel/ptrace.c +++ b/arch/blackfin/kernel/ptrace.c | |||
@@ -193,6 +193,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
193 | { | 193 | { |
194 | int ret; | 194 | int ret; |
195 | int add = 0; | 195 | int add = 0; |
196 | unsigned long __user *datap = (unsigned long __user *)data; | ||
196 | 197 | ||
197 | switch (request) { | 198 | switch (request) { |
198 | /* when I and D space are separate, these will need to be fixed. */ | 199 | /* when I and D space are separate, these will need to be fixed. */ |
@@ -229,7 +230,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
229 | pr_debug("ptrace: copied size %d [0x%08lx]\n", copied, tmp); | 230 | pr_debug("ptrace: copied size %d [0x%08lx]\n", copied, tmp); |
230 | if (copied != sizeof(tmp)) | 231 | if (copied != sizeof(tmp)) |
231 | break; | 232 | break; |
232 | ret = put_user(tmp, (unsigned long *)data); | 233 | ret = put_user(tmp, datap); |
233 | break; | 234 | break; |
234 | } | 235 | } |
235 | 236 | ||
@@ -263,7 +264,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
263 | } else { | 264 | } else { |
264 | tmp = get_reg(child, addr); | 265 | tmp = get_reg(child, addr); |
265 | } | 266 | } |
266 | ret = put_user(tmp, (unsigned long *)data); | 267 | ret = put_user(tmp, datap); |
267 | break; | 268 | break; |
268 | } | 269 | } |
269 | 270 | ||
@@ -389,7 +390,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
389 | { | 390 | { |
390 | 391 | ||
391 | /* Get all gp regs from the child. */ | 392 | /* Get all gp regs from the child. */ |
392 | ret = ptrace_getregs(child, (void __user *)data); | 393 | ret = ptrace_getregs(child, datap); |
393 | break; | 394 | break; |
394 | } | 395 | } |
395 | 396 | ||
diff --git a/arch/blackfin/kernel/reboot.c b/arch/blackfin/kernel/reboot.c index 483f93dfc1b5..367e2dc09881 100644 --- a/arch/blackfin/kernel/reboot.c +++ b/arch/blackfin/kernel/reboot.c | |||
@@ -11,45 +11,56 @@ | |||
11 | #include <asm/reboot.h> | 11 | #include <asm/reboot.h> |
12 | #include <asm/system.h> | 12 | #include <asm/system.h> |
13 | 13 | ||
14 | #if defined(BF537_FAMILY) || defined(BF533_FAMILY) || defined(BF527_FAMILY) | 14 | /* A system soft reset makes external memory unusable so force |
15 | #define SYSCR_VAL 0x0 | 15 | * this function into L1. We use the compiler ssync here rather |
16 | #elif defined(BF561_FAMILY) | 16 | * than SSYNC() because it's safe (no interrupts and such) and |
17 | #define SYSCR_VAL 0x20 | 17 | * we save some L1. We do not need to force sanity in the SYSCR |
18 | #elif defined(BF548_FAMILY) | 18 | * register as the BMODE selection bit is cleared by the soft |
19 | #define SYSCR_VAL 0x10 | 19 | * reset while the Core B bit (on dual core parts) is cleared by |
20 | #endif | 20 | * the core reset. |
21 | |||
22 | /* | ||
23 | * Delay min 5 SCLK cycles using worst case CCLK/SCLK ratio (15) | ||
24 | */ | ||
25 | #define SWRST_DELAY (5 * 15) | ||
26 | |||
27 | /* A system soft reset makes external memory unusable | ||
28 | * so force this function into L1. | ||
29 | */ | 21 | */ |
30 | __attribute__((l1_text)) | 22 | __attribute__((l1_text)) |
31 | void bfin_reset(void) | 23 | void bfin_reset(void) |
32 | { | 24 | { |
33 | /* force BMODE and disable Core B (as needed) */ | 25 | /* Wait for completion of "system" events such as cache line |
34 | bfin_write_SYSCR(SYSCR_VAL); | 26 | * line fills so that we avoid infinite stalls later on as |
35 | 27 | * much as possible. This code is in L1, so it won't trigger | |
36 | /* we use asm ssync here because it's save and we save some L1 */ | 28 | * any such event after this point in time. |
37 | asm("ssync;"); | 29 | */ |
30 | __builtin_bfin_ssync(); | ||
38 | 31 | ||
39 | while (1) { | 32 | while (1) { |
40 | /* initiate system soft reset with magic 0x7 */ | 33 | /* Initiate System software reset. */ |
41 | bfin_write_SWRST(0x7); | 34 | bfin_write_SWRST(0x7); |
42 | 35 | ||
43 | /* Wait for System reset to actually reset, needs to be 5 SCLKs, */ | 36 | /* Due to the way reset is handled in the hardware, we need |
44 | /* Assume CCLK / SCLK ratio is worst case (15), and use 5*15 */ | 37 | * to delay for 7 SCLKS. The only reliable way to do this is |
45 | 38 | * to calculate the CCLK/SCLK ratio and multiply 7. For now, | |
46 | asm("LSETUP(.Lfoo,.Lfoo) LC0 = %0\n .Lfoo: NOP;\n" | 39 | * we'll assume worse case which is a 1:15 ratio. |
47 | : : "a" (SWRST_DELAY) : "LC0", "LT0", "LB0"); | 40 | */ |
41 | asm( | ||
42 | "LSETUP (1f, 1f) LC0 = %0\n" | ||
43 | "1: nop;" | ||
44 | : | ||
45 | : "a" (15 * 7) | ||
46 | : "LC0", "LB0", "LT0" | ||
47 | ); | ||
48 | 48 | ||
49 | /* clear system soft reset */ | 49 | /* Clear System software reset */ |
50 | bfin_write_SWRST(0); | 50 | bfin_write_SWRST(0); |
51 | asm("ssync;"); | 51 | |
52 | /* issue core reset */ | 52 | /* Wait for the SWRST write to complete. Cannot rely on SSYNC |
53 | * though as the System state is all reset now. | ||
54 | */ | ||
55 | asm( | ||
56 | "LSETUP (1f, 1f) LC1 = %0\n" | ||
57 | "1: nop;" | ||
58 | : | ||
59 | : "a" (15 * 1) | ||
60 | : "LC1", "LB1", "LT1" | ||
61 | ); | ||
62 | |||
63 | /* Issue core reset */ | ||
53 | asm("raise 1"); | 64 | asm("raise 1"); |
54 | } | 65 | } |
55 | } | 66 | } |
diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c index 2255c289a714..8efea004aecb 100644 --- a/arch/blackfin/kernel/setup.c +++ b/arch/blackfin/kernel/setup.c | |||
@@ -35,6 +35,7 @@ u16 _bfin_swrst; | |||
35 | EXPORT_SYMBOL(_bfin_swrst); | 35 | EXPORT_SYMBOL(_bfin_swrst); |
36 | 36 | ||
37 | unsigned long memory_start, memory_end, physical_mem_end; | 37 | unsigned long memory_start, memory_end, physical_mem_end; |
38 | unsigned long _rambase, _ramstart, _ramend; | ||
38 | unsigned long reserved_mem_dcache_on; | 39 | unsigned long reserved_mem_dcache_on; |
39 | unsigned long reserved_mem_icache_on; | 40 | unsigned long reserved_mem_icache_on; |
40 | EXPORT_SYMBOL(memory_start); | 41 | EXPORT_SYMBOL(memory_start); |
@@ -106,7 +107,7 @@ void __init bf53x_relocate_l1_mem(void) | |||
106 | 107 | ||
107 | l1_code_length = _etext_l1 - _stext_l1; | 108 | l1_code_length = _etext_l1 - _stext_l1; |
108 | if (l1_code_length > L1_CODE_LENGTH) | 109 | if (l1_code_length > L1_CODE_LENGTH) |
109 | l1_code_length = L1_CODE_LENGTH; | 110 | panic("L1 Instruction SRAM Overflow\n"); |
110 | /* cannot complain as printk is not available as yet. | 111 | /* cannot complain as printk is not available as yet. |
111 | * But we can continue booting and complain later! | 112 | * But we can continue booting and complain later! |
112 | */ | 113 | */ |
@@ -116,19 +117,18 @@ void __init bf53x_relocate_l1_mem(void) | |||
116 | 117 | ||
117 | l1_data_a_length = _ebss_l1 - _sdata_l1; | 118 | l1_data_a_length = _ebss_l1 - _sdata_l1; |
118 | if (l1_data_a_length > L1_DATA_A_LENGTH) | 119 | if (l1_data_a_length > L1_DATA_A_LENGTH) |
119 | l1_data_a_length = L1_DATA_A_LENGTH; | 120 | panic("L1 Data SRAM Bank A Overflow\n"); |
120 | 121 | ||
121 | /* Copy _sdata_l1 to _ebss_l1 to L1 data bank A SRAM */ | 122 | /* Copy _sdata_l1 to _ebss_l1 to L1 data bank A SRAM */ |
122 | dma_memcpy(_sdata_l1, _l1_lma_start + l1_code_length, l1_data_a_length); | 123 | dma_memcpy(_sdata_l1, _l1_lma_start + l1_code_length, l1_data_a_length); |
123 | 124 | ||
124 | l1_data_b_length = _ebss_b_l1 - _sdata_b_l1; | 125 | l1_data_b_length = _ebss_b_l1 - _sdata_b_l1; |
125 | if (l1_data_b_length > L1_DATA_B_LENGTH) | 126 | if (l1_data_b_length > L1_DATA_B_LENGTH) |
126 | l1_data_b_length = L1_DATA_B_LENGTH; | 127 | panic("L1 Data SRAM Bank B Overflow\n"); |
127 | 128 | ||
128 | /* Copy _sdata_b_l1 to _ebss_b_l1 to L1 data bank B SRAM */ | 129 | /* Copy _sdata_b_l1 to _ebss_b_l1 to L1 data bank B SRAM */ |
129 | dma_memcpy(_sdata_b_l1, _l1_lma_start + l1_code_length + | 130 | dma_memcpy(_sdata_b_l1, _l1_lma_start + l1_code_length + |
130 | l1_data_a_length, l1_data_b_length); | 131 | l1_data_a_length, l1_data_b_length); |
131 | |||
132 | } | 132 | } |
133 | 133 | ||
134 | /* add_memory_region to memmap */ | 134 | /* add_memory_region to memmap */ |
@@ -547,11 +547,38 @@ static __init void memory_setup(void) | |||
547 | ); | 547 | ); |
548 | } | 548 | } |
549 | 549 | ||
550 | /* | ||
551 | * Find the lowest, highest page frame number we have available | ||
552 | */ | ||
553 | void __init find_min_max_pfn(void) | ||
554 | { | ||
555 | int i; | ||
556 | |||
557 | max_pfn = 0; | ||
558 | min_low_pfn = memory_end; | ||
559 | |||
560 | for (i = 0; i < bfin_memmap.nr_map; i++) { | ||
561 | unsigned long start, end; | ||
562 | /* RAM? */ | ||
563 | if (bfin_memmap.map[i].type != BFIN_MEMMAP_RAM) | ||
564 | continue; | ||
565 | start = PFN_UP(bfin_memmap.map[i].addr); | ||
566 | end = PFN_DOWN(bfin_memmap.map[i].addr + | ||
567 | bfin_memmap.map[i].size); | ||
568 | if (start >= end) | ||
569 | continue; | ||
570 | if (end > max_pfn) | ||
571 | max_pfn = end; | ||
572 | if (start < min_low_pfn) | ||
573 | min_low_pfn = start; | ||
574 | } | ||
575 | } | ||
576 | |||
550 | static __init void setup_bootmem_allocator(void) | 577 | static __init void setup_bootmem_allocator(void) |
551 | { | 578 | { |
552 | int bootmap_size; | 579 | int bootmap_size; |
553 | int i; | 580 | int i; |
554 | unsigned long min_pfn, max_pfn; | 581 | unsigned long start_pfn, end_pfn; |
555 | unsigned long curr_pfn, last_pfn, size; | 582 | unsigned long curr_pfn, last_pfn, size; |
556 | 583 | ||
557 | /* mark memory between memory_start and memory_end usable */ | 584 | /* mark memory between memory_start and memory_end usable */ |
@@ -561,8 +588,19 @@ static __init void setup_bootmem_allocator(void) | |||
561 | sanitize_memmap(bfin_memmap.map, &bfin_memmap.nr_map); | 588 | sanitize_memmap(bfin_memmap.map, &bfin_memmap.nr_map); |
562 | print_memory_map("boot memmap"); | 589 | print_memory_map("boot memmap"); |
563 | 590 | ||
564 | min_pfn = PAGE_OFFSET >> PAGE_SHIFT; | 591 | /* intialize globals in linux/bootmem.h */ |
565 | max_pfn = memory_end >> PAGE_SHIFT; | 592 | find_min_max_pfn(); |
593 | /* pfn of the last usable page frame */ | ||
594 | if (max_pfn > memory_end >> PAGE_SHIFT) | ||
595 | max_pfn = memory_end >> PAGE_SHIFT; | ||
596 | /* pfn of last page frame directly mapped by kernel */ | ||
597 | max_low_pfn = max_pfn; | ||
598 | /* pfn of the first usable page frame after kernel image*/ | ||
599 | if (min_low_pfn < memory_start >> PAGE_SHIFT) | ||
600 | min_low_pfn = memory_start >> PAGE_SHIFT; | ||
601 | |||
602 | start_pfn = PAGE_OFFSET >> PAGE_SHIFT; | ||
603 | end_pfn = memory_end >> PAGE_SHIFT; | ||
566 | 604 | ||
567 | /* | 605 | /* |
568 | * give all the memory to the bootmap allocator, tell it to put the | 606 | * give all the memory to the bootmap allocator, tell it to put the |
@@ -570,7 +608,7 @@ static __init void setup_bootmem_allocator(void) | |||
570 | */ | 608 | */ |
571 | bootmap_size = init_bootmem_node(NODE_DATA(0), | 609 | bootmap_size = init_bootmem_node(NODE_DATA(0), |
572 | memory_start >> PAGE_SHIFT, /* map goes here */ | 610 | memory_start >> PAGE_SHIFT, /* map goes here */ |
573 | min_pfn, max_pfn); | 611 | start_pfn, end_pfn); |
574 | 612 | ||
575 | /* register the memmap regions with the bootmem allocator */ | 613 | /* register the memmap regions with the bootmem allocator */ |
576 | for (i = 0; i < bfin_memmap.nr_map; i++) { | 614 | for (i = 0; i < bfin_memmap.nr_map; i++) { |
@@ -583,7 +621,7 @@ static __init void setup_bootmem_allocator(void) | |||
583 | * We are rounding up the start address of usable memory: | 621 | * We are rounding up the start address of usable memory: |
584 | */ | 622 | */ |
585 | curr_pfn = PFN_UP(bfin_memmap.map[i].addr); | 623 | curr_pfn = PFN_UP(bfin_memmap.map[i].addr); |
586 | if (curr_pfn >= max_pfn) | 624 | if (curr_pfn >= end_pfn) |
587 | continue; | 625 | continue; |
588 | /* | 626 | /* |
589 | * ... and at the end of the usable range downwards: | 627 | * ... and at the end of the usable range downwards: |
@@ -591,8 +629,8 @@ static __init void setup_bootmem_allocator(void) | |||
591 | last_pfn = PFN_DOWN(bfin_memmap.map[i].addr + | 629 | last_pfn = PFN_DOWN(bfin_memmap.map[i].addr + |
592 | bfin_memmap.map[i].size); | 630 | bfin_memmap.map[i].size); |
593 | 631 | ||
594 | if (last_pfn > max_pfn) | 632 | if (last_pfn > end_pfn) |
595 | last_pfn = max_pfn; | 633 | last_pfn = end_pfn; |
596 | 634 | ||
597 | /* | 635 | /* |
598 | * .. finally, did all the rounding and playing | 636 | * .. finally, did all the rounding and playing |
@@ -611,9 +649,59 @@ static __init void setup_bootmem_allocator(void) | |||
611 | BOOTMEM_DEFAULT); | 649 | BOOTMEM_DEFAULT); |
612 | } | 650 | } |
613 | 651 | ||
652 | #define EBSZ_TO_MEG(ebsz) \ | ||
653 | ({ \ | ||
654 | int meg = 0; \ | ||
655 | switch (ebsz & 0xf) { \ | ||
656 | case 0x1: meg = 16; break; \ | ||
657 | case 0x3: meg = 32; break; \ | ||
658 | case 0x5: meg = 64; break; \ | ||
659 | case 0x7: meg = 128; break; \ | ||
660 | case 0x9: meg = 256; break; \ | ||
661 | case 0xb: meg = 512; break; \ | ||
662 | } \ | ||
663 | meg; \ | ||
664 | }) | ||
665 | static inline int __init get_mem_size(void) | ||
666 | { | ||
667 | #ifdef CONFIG_MEM_SIZE | ||
668 | return CONFIG_MEM_SIZE; | ||
669 | #else | ||
670 | # if defined(EBIU_SDBCTL) | ||
671 | # if defined(BF561_FAMILY) | ||
672 | int ret = 0; | ||
673 | u32 sdbctl = bfin_read_EBIU_SDBCTL(); | ||
674 | ret += EBSZ_TO_MEG(sdbctl >> 0); | ||
675 | ret += EBSZ_TO_MEG(sdbctl >> 8); | ||
676 | ret += EBSZ_TO_MEG(sdbctl >> 16); | ||
677 | ret += EBSZ_TO_MEG(sdbctl >> 24); | ||
678 | return ret; | ||
679 | # else | ||
680 | return EBSZ_TO_MEG(bfin_read_EBIU_SDBCTL()); | ||
681 | # endif | ||
682 | # elif defined(EBIU_DDRCTL1) | ||
683 | u32 ddrctl = bfin_read_EBIU_DDRCTL1(); | ||
684 | int ret = 0; | ||
685 | switch (ddrctl & 0xc0000) { | ||
686 | case DEVSZ_64: ret = 64 / 8; | ||
687 | case DEVSZ_128: ret = 128 / 8; | ||
688 | case DEVSZ_256: ret = 256 / 8; | ||
689 | case DEVSZ_512: ret = 512 / 8; | ||
690 | } | ||
691 | switch (ddrctl & 0x30000) { | ||
692 | case DEVWD_4: ret *= 2; | ||
693 | case DEVWD_8: ret *= 2; | ||
694 | case DEVWD_16: break; | ||
695 | } | ||
696 | return ret; | ||
697 | # endif | ||
698 | #endif | ||
699 | BUG(); | ||
700 | } | ||
701 | |||
614 | void __init setup_arch(char **cmdline_p) | 702 | void __init setup_arch(char **cmdline_p) |
615 | { | 703 | { |
616 | unsigned long l1_length, sclk, cclk; | 704 | unsigned long sclk, cclk; |
617 | 705 | ||
618 | #ifdef CONFIG_DUMMY_CONSOLE | 706 | #ifdef CONFIG_DUMMY_CONSOLE |
619 | conswitchp = &dummy_con; | 707 | conswitchp = &dummy_con; |
@@ -631,7 +719,7 @@ void __init setup_arch(char **cmdline_p) | |||
631 | 719 | ||
632 | /* setup memory defaults from the user config */ | 720 | /* setup memory defaults from the user config */ |
633 | physical_mem_end = 0; | 721 | physical_mem_end = 0; |
634 | _ramend = CONFIG_MEM_SIZE * 1024 * 1024; | 722 | _ramend = get_mem_size() * 1024 * 1024; |
635 | 723 | ||
636 | memset(&bfin_memmap, 0, sizeof(bfin_memmap)); | 724 | memset(&bfin_memmap, 0, sizeof(bfin_memmap)); |
637 | 725 | ||
@@ -712,15 +800,6 @@ void __init setup_arch(char **cmdline_p) | |||
712 | 800 | ||
713 | paging_init(); | 801 | paging_init(); |
714 | 802 | ||
715 | /* check the size of the l1 area */ | ||
716 | l1_length = _etext_l1 - _stext_l1; | ||
717 | if (l1_length > L1_CODE_LENGTH) | ||
718 | panic("L1 code memory overflow\n"); | ||
719 | |||
720 | l1_length = _ebss_l1 - _sdata_l1; | ||
721 | if (l1_length > L1_DATA_A_LENGTH) | ||
722 | panic("L1 data memory overflow\n"); | ||
723 | |||
724 | /* Copy atomic sequences to their fixed location, and sanity check that | 803 | /* Copy atomic sequences to their fixed location, and sanity check that |
725 | these locations are the ones that we advertise to userspace. */ | 804 | these locations are the ones that we advertise to userspace. */ |
726 | memcpy((void *)FIXED_CODE_START, &fixed_code_start, | 805 | memcpy((void *)FIXED_CODE_START, &fixed_code_start, |
@@ -859,12 +938,17 @@ static int show_cpuinfo(struct seq_file *m, void *v) | |||
859 | seq_printf(m, "processor\t: %d\n" | 938 | seq_printf(m, "processor\t: %d\n" |
860 | "vendor_id\t: %s\n" | 939 | "vendor_id\t: %s\n" |
861 | "cpu family\t: 0x%x\n" | 940 | "cpu family\t: 0x%x\n" |
862 | "model name\t: ADSP-%s %lu(MHz CCLK) %lu(MHz SCLK)\n" | 941 | "model name\t: ADSP-%s %lu(MHz CCLK) %lu(MHz SCLK) (%s)\n" |
863 | "stepping\t: %d\n", | 942 | "stepping\t: %d\n", |
864 | 0, | 943 | 0, |
865 | vendor, | 944 | vendor, |
866 | (bfin_read_CHIPID() & CHIPID_FAMILY), | 945 | (bfin_read_CHIPID() & CHIPID_FAMILY), |
867 | cpu, cclk/1000000, sclk/1000000, | 946 | cpu, cclk/1000000, sclk/1000000, |
947 | #ifdef CONFIG_MPU | ||
948 | "mpu on", | ||
949 | #else | ||
950 | "mpu off", | ||
951 | #endif | ||
868 | revid); | 952 | revid); |
869 | 953 | ||
870 | seq_printf(m, "cpu MHz\t\t: %lu.%03lu/%lu.%03lu\n", | 954 | seq_printf(m, "cpu MHz\t\t: %lu.%03lu/%lu.%03lu\n", |
@@ -973,7 +1057,6 @@ static int show_cpuinfo(struct seq_file *m, void *v) | |||
973 | seq_printf(m, "No Ways are locked\n"); | 1057 | seq_printf(m, "No Ways are locked\n"); |
974 | } | 1058 | } |
975 | #endif | 1059 | #endif |
976 | |||
977 | seq_printf(m, "board name\t: %s\n", bfin_board_name); | 1060 | seq_printf(m, "board name\t: %s\n", bfin_board_name); |
978 | seq_printf(m, "board memory\t: %ld kB (0x%p -> 0x%p)\n", | 1061 | seq_printf(m, "board memory\t: %ld kB (0x%p -> 0x%p)\n", |
979 | physical_mem_end >> 10, (void *)0, (void *)physical_mem_end); | 1062 | physical_mem_end >> 10, (void *)0, (void *)physical_mem_end); |
diff --git a/arch/blackfin/kernel/signal.c b/arch/blackfin/kernel/signal.c index 5564c9588aa8..d1fa24401dc6 100644 --- a/arch/blackfin/kernel/signal.c +++ b/arch/blackfin/kernel/signal.c | |||
@@ -38,6 +38,7 @@ | |||
38 | 38 | ||
39 | #include <asm/cacheflush.h> | 39 | #include <asm/cacheflush.h> |
40 | #include <asm/ucontext.h> | 40 | #include <asm/ucontext.h> |
41 | #include <asm/fixed_code.h> | ||
41 | 42 | ||
42 | #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) | 43 | #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) |
43 | 44 | ||
@@ -50,18 +51,20 @@ struct rt_sigframe { | |||
50 | int sig; | 51 | int sig; |
51 | struct siginfo *pinfo; | 52 | struct siginfo *pinfo; |
52 | void *puc; | 53 | void *puc; |
54 | /* This is no longer needed by the kernel, but unfortunately userspace | ||
55 | * code expects it to be there. */ | ||
53 | char retcode[8]; | 56 | char retcode[8]; |
54 | struct siginfo info; | 57 | struct siginfo info; |
55 | struct ucontext uc; | 58 | struct ucontext uc; |
56 | }; | 59 | }; |
57 | 60 | ||
58 | asmlinkage int sys_sigaltstack(const stack_t * uss, stack_t * uoss) | 61 | asmlinkage int sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss) |
59 | { | 62 | { |
60 | return do_sigaltstack(uss, uoss, rdusp()); | 63 | return do_sigaltstack(uss, uoss, rdusp()); |
61 | } | 64 | } |
62 | 65 | ||
63 | static inline int | 66 | static inline int |
64 | rt_restore_sigcontext(struct pt_regs *regs, struct sigcontext *sc, int *pr0) | 67 | rt_restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc, int *pr0) |
65 | { | 68 | { |
66 | unsigned long usp = 0; | 69 | unsigned long usp = 0; |
67 | int err = 0; | 70 | int err = 0; |
@@ -159,11 +162,6 @@ static inline int rt_setup_sigcontext(struct sigcontext *sc, struct pt_regs *reg | |||
159 | return err; | 162 | return err; |
160 | } | 163 | } |
161 | 164 | ||
162 | static inline void push_cache(unsigned long vaddr, unsigned int len) | ||
163 | { | ||
164 | flush_icache_range(vaddr, vaddr + len); | ||
165 | } | ||
166 | |||
167 | static inline void *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, | 165 | static inline void *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, |
168 | size_t frame_size) | 166 | size_t frame_size) |
169 | { | 167 | { |
@@ -209,19 +207,9 @@ setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t * info, | |||
209 | err |= rt_setup_sigcontext(&frame->uc.uc_mcontext, regs); | 207 | err |= rt_setup_sigcontext(&frame->uc.uc_mcontext, regs); |
210 | err |= copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); | 208 | err |= copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); |
211 | 209 | ||
212 | /* Set up to return from userspace. */ | ||
213 | err |= __put_user(0x28, &(frame->retcode[0])); | ||
214 | err |= __put_user(0xe1, &(frame->retcode[1])); | ||
215 | err |= __put_user(0xad, &(frame->retcode[2])); | ||
216 | err |= __put_user(0x00, &(frame->retcode[3])); | ||
217 | err |= __put_user(0xa0, &(frame->retcode[4])); | ||
218 | err |= __put_user(0x00, &(frame->retcode[5])); | ||
219 | |||
220 | if (err) | 210 | if (err) |
221 | goto give_sigsegv; | 211 | goto give_sigsegv; |
222 | 212 | ||
223 | push_cache((unsigned long)&frame->retcode, sizeof(frame->retcode)); | ||
224 | |||
225 | /* Set up registers for signal handler */ | 213 | /* Set up registers for signal handler */ |
226 | wrusp((unsigned long)frame); | 214 | wrusp((unsigned long)frame); |
227 | if (get_personality & FDPIC_FUNCPTRS) { | 215 | if (get_personality & FDPIC_FUNCPTRS) { |
@@ -231,7 +219,7 @@ setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t * info, | |||
231 | __get_user(regs->p3, &funcptr->GOT); | 219 | __get_user(regs->p3, &funcptr->GOT); |
232 | } else | 220 | } else |
233 | regs->pc = (unsigned long)ka->sa.sa_handler; | 221 | regs->pc = (unsigned long)ka->sa.sa_handler; |
234 | regs->rets = (unsigned long)(frame->retcode); | 222 | regs->rets = SIGRETURN_STUB; |
235 | 223 | ||
236 | regs->r0 = frame->sig; | 224 | regs->r0 = frame->sig; |
237 | regs->r1 = (unsigned long)(&frame->info); | 225 | regs->r1 = (unsigned long)(&frame->info); |
diff --git a/arch/blackfin/kernel/sys_bfin.c b/arch/blackfin/kernel/sys_bfin.c index abcd14817d0e..efb7b25a2633 100644 --- a/arch/blackfin/kernel/sys_bfin.c +++ b/arch/blackfin/kernel/sys_bfin.c | |||
@@ -49,7 +49,7 @@ | |||
49 | * sys_pipe() is the normal C calling standard for creating | 49 | * sys_pipe() is the normal C calling standard for creating |
50 | * a pipe. It's not the way unix traditionally does this, though. | 50 | * a pipe. It's not the way unix traditionally does this, though. |
51 | */ | 51 | */ |
52 | asmlinkage int sys_pipe(unsigned long *fildes) | 52 | asmlinkage int sys_pipe(unsigned long __user *fildes) |
53 | { | 53 | { |
54 | int fd[2]; | 54 | int fd[2]; |
55 | int error; | 55 | int error; |
diff --git a/arch/blackfin/kernel/time-ts.c b/arch/blackfin/kernel/time-ts.c new file mode 100644 index 000000000000..4482c47c09e5 --- /dev/null +++ b/arch/blackfin/kernel/time-ts.c | |||
@@ -0,0 +1,219 @@ | |||
1 | /* | ||
2 | * linux/arch/kernel/time-ts.c | ||
3 | * | ||
4 | * Based on arm clockevents implementation and old bfin time tick. | ||
5 | * | ||
6 | * Copyright(C) 2008, GeoTechnologies, Vitja Makarov | ||
7 | * | ||
8 | * This code is licenced under the GPL version 2. For details see | ||
9 | * kernel-base/COPYING. | ||
10 | */ | ||
11 | #include <linux/module.h> | ||
12 | #include <linux/profile.h> | ||
13 | #include <linux/interrupt.h> | ||
14 | #include <linux/time.h> | ||
15 | #include <linux/timex.h> | ||
16 | #include <linux/irq.h> | ||
17 | #include <linux/clocksource.h> | ||
18 | #include <linux/clockchips.h> | ||
19 | #include <linux/cpufreq.h> | ||
20 | |||
21 | #include <asm/blackfin.h> | ||
22 | #include <asm/time.h> | ||
23 | |||
24 | #ifdef CONFIG_CYCLES_CLOCKSOURCE | ||
25 | |||
26 | /* Accelerators for sched_clock() | ||
27 | * convert from cycles(64bits) => nanoseconds (64bits) | ||
28 | * basic equation: | ||
29 | * ns = cycles / (freq / ns_per_sec) | ||
30 | * ns = cycles * (ns_per_sec / freq) | ||
31 | * ns = cycles * (10^9 / (cpu_khz * 10^3)) | ||
32 | * ns = cycles * (10^6 / cpu_khz) | ||
33 | * | ||
34 | * Then we use scaling math (suggested by george@mvista.com) to get: | ||
35 | * ns = cycles * (10^6 * SC / cpu_khz) / SC | ||
36 | * ns = cycles * cyc2ns_scale / SC | ||
37 | * | ||
38 | * And since SC is a constant power of two, we can convert the div | ||
39 | * into a shift. | ||
40 | * | ||
41 | * We can use khz divisor instead of mhz to keep a better precision, since | ||
42 | * cyc2ns_scale is limited to 10^6 * 2^10, which fits in 32 bits. | ||
43 | * (mathieu.desnoyers@polymtl.ca) | ||
44 | * | ||
45 | * -johnstul@us.ibm.com "math is hard, lets go shopping!" | ||
46 | */ | ||
47 | |||
48 | static unsigned long cyc2ns_scale; | ||
49 | #define CYC2NS_SCALE_FACTOR 10 /* 2^10, carefully chosen */ | ||
50 | |||
51 | static inline void set_cyc2ns_scale(unsigned long cpu_khz) | ||
52 | { | ||
53 | cyc2ns_scale = (1000000 << CYC2NS_SCALE_FACTOR) / cpu_khz; | ||
54 | } | ||
55 | |||
56 | static inline unsigned long long cycles_2_ns(cycle_t cyc) | ||
57 | { | ||
58 | return (cyc * cyc2ns_scale) >> CYC2NS_SCALE_FACTOR; | ||
59 | } | ||
60 | |||
61 | static cycle_t read_cycles(void) | ||
62 | { | ||
63 | return get_cycles(); | ||
64 | } | ||
65 | |||
66 | unsigned long long sched_clock(void) | ||
67 | { | ||
68 | return cycles_2_ns(read_cycles()); | ||
69 | } | ||
70 | |||
71 | static struct clocksource clocksource_bfin = { | ||
72 | .name = "bfin_cycles", | ||
73 | .rating = 350, | ||
74 | .read = read_cycles, | ||
75 | .mask = CLOCKSOURCE_MASK(64), | ||
76 | .shift = 22, | ||
77 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, | ||
78 | }; | ||
79 | |||
80 | static int __init bfin_clocksource_init(void) | ||
81 | { | ||
82 | set_cyc2ns_scale(get_cclk() / 1000); | ||
83 | |||
84 | clocksource_bfin.mult = clocksource_hz2mult(get_cclk(), clocksource_bfin.shift); | ||
85 | |||
86 | if (clocksource_register(&clocksource_bfin)) | ||
87 | panic("failed to register clocksource"); | ||
88 | |||
89 | return 0; | ||
90 | } | ||
91 | |||
92 | #else | ||
93 | # define bfin_clocksource_init() | ||
94 | #endif | ||
95 | |||
96 | static int bfin_timer_set_next_event(unsigned long cycles, | ||
97 | struct clock_event_device *evt) | ||
98 | { | ||
99 | bfin_write_TCOUNT(cycles); | ||
100 | CSYNC(); | ||
101 | return 0; | ||
102 | } | ||
103 | |||
104 | static void bfin_timer_set_mode(enum clock_event_mode mode, | ||
105 | struct clock_event_device *evt) | ||
106 | { | ||
107 | switch (mode) { | ||
108 | case CLOCK_EVT_MODE_PERIODIC: { | ||
109 | unsigned long tcount = ((get_cclk() / (HZ * TIME_SCALE)) - 1); | ||
110 | bfin_write_TCNTL(TMPWR); | ||
111 | bfin_write_TSCALE(TIME_SCALE - 1); | ||
112 | CSYNC(); | ||
113 | bfin_write_TPERIOD(tcount); | ||
114 | bfin_write_TCOUNT(tcount); | ||
115 | bfin_write_TCNTL(TMPWR | TMREN | TAUTORLD); | ||
116 | CSYNC(); | ||
117 | break; | ||
118 | } | ||
119 | case CLOCK_EVT_MODE_ONESHOT: | ||
120 | bfin_write_TSCALE(0); | ||
121 | bfin_write_TCOUNT(0); | ||
122 | bfin_write_TCNTL(TMPWR | TMREN); | ||
123 | CSYNC(); | ||
124 | break; | ||
125 | case CLOCK_EVT_MODE_UNUSED: | ||
126 | case CLOCK_EVT_MODE_SHUTDOWN: | ||
127 | bfin_write_TCNTL(0); | ||
128 | CSYNC(); | ||
129 | break; | ||
130 | case CLOCK_EVT_MODE_RESUME: | ||
131 | break; | ||
132 | } | ||
133 | } | ||
134 | |||
135 | static void __init bfin_timer_init(void) | ||
136 | { | ||
137 | /* power up the timer, but don't enable it just yet */ | ||
138 | bfin_write_TCNTL(TMPWR); | ||
139 | CSYNC(); | ||
140 | |||
141 | /* | ||
142 | * the TSCALE prescaler counter. | ||
143 | */ | ||
144 | bfin_write_TSCALE(TIME_SCALE - 1); | ||
145 | bfin_write_TPERIOD(0); | ||
146 | bfin_write_TCOUNT(0); | ||
147 | |||
148 | /* now enable the timer */ | ||
149 | CSYNC(); | ||
150 | } | ||
151 | |||
152 | /* | ||
153 | * timer_interrupt() needs to keep up the real-time clock, | ||
154 | * as well as call the "do_timer()" routine every clocktick | ||
155 | */ | ||
156 | #ifdef CONFIG_CORE_TIMER_IRQ_L1 | ||
157 | __attribute__((l1_text)) | ||
158 | #endif | ||
159 | irqreturn_t timer_interrupt(int irq, void *dev_id); | ||
160 | |||
161 | static struct clock_event_device clockevent_bfin = { | ||
162 | .name = "bfin_core_timer", | ||
163 | .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, | ||
164 | .shift = 32, | ||
165 | .cpumask = CPU_MASK_CPU0, | ||
166 | .set_next_event = bfin_timer_set_next_event, | ||
167 | .set_mode = bfin_timer_set_mode, | ||
168 | }; | ||
169 | |||
170 | static struct irqaction bfin_timer_irq = { | ||
171 | .name = "Blackfin Core Timer", | ||
172 | .flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL, | ||
173 | .handler = timer_interrupt, | ||
174 | .dev_id = &clockevent_bfin, | ||
175 | }; | ||
176 | |||
177 | irqreturn_t timer_interrupt(int irq, void *dev_id) | ||
178 | { | ||
179 | struct clock_event_device *evt = dev_id; | ||
180 | evt->event_handler(evt); | ||
181 | return IRQ_HANDLED; | ||
182 | } | ||
183 | |||
184 | static int __init bfin_clockevent_init(void) | ||
185 | { | ||
186 | setup_irq(IRQ_CORETMR, &bfin_timer_irq); | ||
187 | bfin_timer_init(); | ||
188 | |||
189 | clockevent_bfin.mult = div_sc(get_cclk(), NSEC_PER_SEC, clockevent_bfin.shift); | ||
190 | clockevent_bfin.max_delta_ns = clockevent_delta2ns(-1, &clockevent_bfin); | ||
191 | clockevent_bfin.min_delta_ns = clockevent_delta2ns(100, &clockevent_bfin); | ||
192 | clockevents_register_device(&clockevent_bfin); | ||
193 | |||
194 | return 0; | ||
195 | } | ||
196 | |||
197 | void __init time_init(void) | ||
198 | { | ||
199 | time_t secs_since_1970 = (365 * 37 + 9) * 24 * 60 * 60; /* 1 Jan 2007 */ | ||
200 | |||
201 | #ifdef CONFIG_RTC_DRV_BFIN | ||
202 | /* [#2663] hack to filter junk RTC values that would cause | ||
203 | * userspace to have to deal with time values greater than | ||
204 | * 2^31 seconds (which uClibc cannot cope with yet) | ||
205 | */ | ||
206 | if ((bfin_read_RTC_STAT() & 0xC0000000) == 0xC0000000) { | ||
207 | printk(KERN_NOTICE "bfin-rtc: invalid date; resetting\n"); | ||
208 | bfin_write_RTC_STAT(0); | ||
209 | } | ||
210 | #endif | ||
211 | |||
212 | /* Initialize xtime. From now on, xtime is updated with timer interrupts */ | ||
213 | xtime.tv_sec = secs_since_1970; | ||
214 | xtime.tv_nsec = 0; | ||
215 | set_normalized_timespec(&wall_to_monotonic, -xtime.tv_sec, -xtime.tv_nsec); | ||
216 | |||
217 | bfin_clocksource_init(); | ||
218 | bfin_clockevent_init(); | ||
219 | } | ||
diff --git a/arch/blackfin/kernel/time.c b/arch/blackfin/kernel/time.c index 715b3945e4c7..eb2352320454 100644 --- a/arch/blackfin/kernel/time.c +++ b/arch/blackfin/kernel/time.c | |||
@@ -6,9 +6,10 @@ | |||
6 | * Created: | 6 | * Created: |
7 | * Description: This file contains the bfin-specific time handling details. | 7 | * Description: This file contains the bfin-specific time handling details. |
8 | * Most of the stuff is located in the machine specific files. | 8 | * Most of the stuff is located in the machine specific files. |
9 | * FIXME: (This file is subject for removal) | ||
9 | * | 10 | * |
10 | * Modified: | 11 | * Modified: |
11 | * Copyright 2004-2006 Analog Devices Inc. | 12 | * Copyright 2004-2008 Analog Devices Inc. |
12 | * | 13 | * |
13 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | 14 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ |
14 | * | 15 | * |
@@ -35,6 +36,7 @@ | |||
35 | #include <linux/irq.h> | 36 | #include <linux/irq.h> |
36 | 37 | ||
37 | #include <asm/blackfin.h> | 38 | #include <asm/blackfin.h> |
39 | #include <asm/time.h> | ||
38 | 40 | ||
39 | /* This is an NTP setting */ | 41 | /* This is an NTP setting */ |
40 | #define TICK_SIZE (tick_nsec / 1000) | 42 | #define TICK_SIZE (tick_nsec / 1000) |
@@ -47,21 +49,6 @@ static struct irqaction bfin_timer_irq = { | |||
47 | .flags = IRQF_DISABLED | 49 | .flags = IRQF_DISABLED |
48 | }; | 50 | }; |
49 | 51 | ||
50 | /* | ||
51 | * The way that the Blackfin core timer works is: | ||
52 | * - CCLK is divided by a programmable 8-bit pre-scaler (TSCALE) | ||
53 | * - Every time TSCALE ticks, a 32bit is counted down (TCOUNT) | ||
54 | * | ||
55 | * If you take the fastest clock (1ns, or 1GHz to make the math work easier) | ||
56 | * 10ms is 10,000,000 clock ticks, which fits easy into a 32-bit counter | ||
57 | * (32 bit counter is 4,294,967,296ns or 4.2 seconds) so, we don't need | ||
58 | * to use TSCALE, and program it to zero (which is pass CCLK through). | ||
59 | * If you feel like using it, try to keep HZ * TIMESCALE to some | ||
60 | * value that divides easy (like power of 2). | ||
61 | */ | ||
62 | |||
63 | #define TIME_SCALE 1 | ||
64 | |||
65 | static void | 52 | static void |
66 | time_sched_init(irq_handler_t timer_routine) | 53 | time_sched_init(irq_handler_t timer_routine) |
67 | { | 54 | { |
diff --git a/arch/blackfin/kernel/traps.c b/arch/blackfin/kernel/traps.c index 56a67ab698c7..5b847070dae5 100644 --- a/arch/blackfin/kernel/traps.c +++ b/arch/blackfin/kernel/traps.c | |||
@@ -67,6 +67,8 @@ void __init trap_init(void) | |||
67 | CSYNC(); | 67 | CSYNC(); |
68 | } | 68 | } |
69 | 69 | ||
70 | void *saved_icplb_fault_addr, *saved_dcplb_fault_addr; | ||
71 | |||
70 | int kstack_depth_to_print = 48; | 72 | int kstack_depth_to_print = 48; |
71 | 73 | ||
72 | static void decode_address(char *buf, unsigned long address) | 74 | static void decode_address(char *buf, unsigned long address) |
@@ -75,7 +77,7 @@ static void decode_address(char *buf, unsigned long address) | |||
75 | struct task_struct *p; | 77 | struct task_struct *p; |
76 | struct mm_struct *mm; | 78 | struct mm_struct *mm; |
77 | unsigned long flags, offset; | 79 | unsigned long flags, offset; |
78 | unsigned int in_exception = bfin_read_IPEND() & 0x10; | 80 | unsigned char in_atomic = (bfin_read_IPEND() & 0x10) || in_atomic(); |
79 | 81 | ||
80 | #ifdef CONFIG_KALLSYMS | 82 | #ifdef CONFIG_KALLSYMS |
81 | unsigned long symsize; | 83 | unsigned long symsize; |
@@ -117,7 +119,7 @@ static void decode_address(char *buf, unsigned long address) | |||
117 | */ | 119 | */ |
118 | write_lock_irqsave(&tasklist_lock, flags); | 120 | write_lock_irqsave(&tasklist_lock, flags); |
119 | for_each_process(p) { | 121 | for_each_process(p) { |
120 | mm = (in_exception ? p->mm : get_task_mm(p)); | 122 | mm = (in_atomic ? p->mm : get_task_mm(p)); |
121 | if (!mm) | 123 | if (!mm) |
122 | continue; | 124 | continue; |
123 | 125 | ||
@@ -137,23 +139,36 @@ static void decode_address(char *buf, unsigned long address) | |||
137 | /* FLAT does not have its text aligned to the start of | 139 | /* FLAT does not have its text aligned to the start of |
138 | * the map while FDPIC ELF does ... | 140 | * the map while FDPIC ELF does ... |
139 | */ | 141 | */ |
140 | if (current->mm && | 142 | |
141 | (address > current->mm->start_code) && | 143 | /* before we can check flat/fdpic, we need to |
142 | (address < current->mm->end_code)) | 144 | * make sure current is valid |
143 | offset = address - current->mm->start_code; | 145 | */ |
144 | else | 146 | if ((unsigned long)current >= FIXED_CODE_START && |
145 | offset = (address - vma->vm_start) + (vma->vm_pgoff << PAGE_SHIFT); | 147 | !((unsigned long)current & 0x3)) { |
146 | 148 | if (current->mm && | |
147 | sprintf(buf, "<0x%p> [ %s + 0x%lx ]", | 149 | (address > current->mm->start_code) && |
148 | (void *)address, name, offset); | 150 | (address < current->mm->end_code)) |
149 | if (!in_exception) | 151 | offset = address - current->mm->start_code; |
152 | else | ||
153 | offset = (address - vma->vm_start) + | ||
154 | (vma->vm_pgoff << PAGE_SHIFT); | ||
155 | |||
156 | sprintf(buf, "<0x%p> [ %s + 0x%lx ]", | ||
157 | (void *)address, name, offset); | ||
158 | } else | ||
159 | sprintf(buf, "<0x%p> [ %s vma:0x%lx-0x%lx]", | ||
160 | (void *)address, name, | ||
161 | vma->vm_start, vma->vm_end); | ||
162 | |||
163 | if (!in_atomic) | ||
150 | mmput(mm); | 164 | mmput(mm); |
165 | |||
151 | goto done; | 166 | goto done; |
152 | } | 167 | } |
153 | 168 | ||
154 | vml = vml->next; | 169 | vml = vml->next; |
155 | } | 170 | } |
156 | if (!in_exception) | 171 | if (!in_atomic) |
157 | mmput(mm); | 172 | mmput(mm); |
158 | } | 173 | } |
159 | 174 | ||
@@ -506,7 +521,7 @@ asmlinkage void trap_c(struct pt_regs *fp) | |||
506 | 521 | ||
507 | info.si_signo = sig; | 522 | info.si_signo = sig; |
508 | info.si_errno = 0; | 523 | info.si_errno = 0; |
509 | info.si_addr = (void *)fp->pc; | 524 | info.si_addr = (void __user *)fp->pc; |
510 | force_sig_info(sig, &info, current); | 525 | force_sig_info(sig, &info, current); |
511 | 526 | ||
512 | trace_buffer_restore(j); | 527 | trace_buffer_restore(j); |
@@ -655,21 +670,31 @@ void dump_bfin_process(struct pt_regs *fp) | |||
655 | else if (context & 0x8000) | 670 | else if (context & 0x8000) |
656 | printk(KERN_NOTICE "Kernel process context\n"); | 671 | printk(KERN_NOTICE "Kernel process context\n"); |
657 | 672 | ||
658 | if (current->pid && current->mm) { | 673 | /* Because we are crashing, and pointers could be bad, we check things |
674 | * pretty closely before we use them | ||
675 | */ | ||
676 | if ((unsigned long)current >= FIXED_CODE_START && | ||
677 | !((unsigned long)current & 0x3) && current->pid) { | ||
659 | printk(KERN_NOTICE "CURRENT PROCESS:\n"); | 678 | printk(KERN_NOTICE "CURRENT PROCESS:\n"); |
660 | printk(KERN_NOTICE "COMM=%s PID=%d\n", | 679 | if (current->comm >= (char *)FIXED_CODE_START) |
661 | current->comm, current->pid); | 680 | printk(KERN_NOTICE "COMM=%s PID=%d\n", |
662 | 681 | current->comm, current->pid); | |
663 | printk(KERN_NOTICE "TEXT = 0x%p-0x%p DATA = 0x%p-0x%p\n" | 682 | else |
664 | KERN_NOTICE "BSS = 0x%p-0x%p USER-STACK = 0x%p\n" | 683 | printk(KERN_NOTICE "COMM= invalid\n"); |
665 | KERN_NOTICE "\n", | 684 | |
666 | (void *)current->mm->start_code, | 685 | if (!((unsigned long)current->mm & 0x3) && (unsigned long)current->mm >= FIXED_CODE_START) |
667 | (void *)current->mm->end_code, | 686 | printk(KERN_NOTICE "TEXT = 0x%p-0x%p DATA = 0x%p-0x%p\n" |
668 | (void *)current->mm->start_data, | 687 | KERN_NOTICE " BSS = 0x%p-0x%p USER-STACK = 0x%p\n" |
669 | (void *)current->mm->end_data, | 688 | KERN_NOTICE "\n", |
670 | (void *)current->mm->end_data, | 689 | (void *)current->mm->start_code, |
671 | (void *)current->mm->brk, | 690 | (void *)current->mm->end_code, |
672 | (void *)current->mm->start_stack); | 691 | (void *)current->mm->start_data, |
692 | (void *)current->mm->end_data, | ||
693 | (void *)current->mm->end_data, | ||
694 | (void *)current->mm->brk, | ||
695 | (void *)current->mm->start_stack); | ||
696 | else | ||
697 | printk(KERN_NOTICE "invalid mm\n"); | ||
673 | } else | 698 | } else |
674 | printk(KERN_NOTICE "\n" KERN_NOTICE | 699 | printk(KERN_NOTICE "\n" KERN_NOTICE |
675 | "No Valid process in current context\n"); | 700 | "No Valid process in current context\n"); |
@@ -680,10 +705,7 @@ void dump_bfin_mem(struct pt_regs *fp) | |||
680 | unsigned short *addr, *erraddr, val = 0, err = 0; | 705 | unsigned short *addr, *erraddr, val = 0, err = 0; |
681 | char sti = 0, buf[6]; | 706 | char sti = 0, buf[6]; |
682 | 707 | ||
683 | if (unlikely((fp->seqstat & SEQSTAT_EXCAUSE) == VEC_HWERR)) | 708 | erraddr = (void *)fp->pc; |
684 | erraddr = (void *)fp->pc; | ||
685 | else | ||
686 | erraddr = (void *)fp->retx; | ||
687 | 709 | ||
688 | printk(KERN_NOTICE "return address: [0x%p]; contents of:", erraddr); | 710 | printk(KERN_NOTICE "return address: [0x%p]; contents of:", erraddr); |
689 | 711 | ||
@@ -807,9 +829,9 @@ unlock: | |||
807 | 829 | ||
808 | if (((long)fp->seqstat & SEQSTAT_EXCAUSE) && | 830 | if (((long)fp->seqstat & SEQSTAT_EXCAUSE) && |
809 | (((long)fp->seqstat & SEQSTAT_EXCAUSE) != VEC_HWERR)) { | 831 | (((long)fp->seqstat & SEQSTAT_EXCAUSE) != VEC_HWERR)) { |
810 | decode_address(buf, bfin_read_DCPLB_FAULT_ADDR()); | 832 | decode_address(buf, saved_dcplb_fault_addr); |
811 | printk(KERN_NOTICE "DCPLB_FAULT_ADDR: %s\n", buf); | 833 | printk(KERN_NOTICE "DCPLB_FAULT_ADDR: %s\n", buf); |
812 | decode_address(buf, bfin_read_ICPLB_FAULT_ADDR()); | 834 | decode_address(buf, saved_icplb_fault_addr); |
813 | printk(KERN_NOTICE "ICPLB_FAULT_ADDR: %s\n", buf); | 835 | printk(KERN_NOTICE "ICPLB_FAULT_ADDR: %s\n", buf); |
814 | } | 836 | } |
815 | 837 | ||
@@ -917,8 +939,8 @@ void panic_cplb_error(int cplb_panic, struct pt_regs *fp) | |||
917 | 939 | ||
918 | oops_in_progress = 1; | 940 | oops_in_progress = 1; |
919 | 941 | ||
920 | printk(KERN_EMERG "DCPLB_FAULT_ADDR=%p\n", (void *)bfin_read_DCPLB_FAULT_ADDR()); | 942 | printk(KERN_EMERG "DCPLB_FAULT_ADDR=%p\n", saved_dcplb_fault_addr); |
921 | printk(KERN_EMERG "ICPLB_FAULT_ADDR=%p\n", (void *)bfin_read_ICPLB_FAULT_ADDR()); | 943 | printk(KERN_EMERG "ICPLB_FAULT_ADDR=%p\n", saved_icplb_fault_addr); |
922 | dump_bfin_process(fp); | 944 | dump_bfin_process(fp); |
923 | dump_bfin_mem(fp); | 945 | dump_bfin_mem(fp); |
924 | show_regs(fp); | 946 | show_regs(fp); |
diff --git a/arch/blackfin/kernel/vmlinux.lds.S b/arch/blackfin/kernel/vmlinux.lds.S index cb01a9de2680..3ecc64cab3be 100644 --- a/arch/blackfin/kernel/vmlinux.lds.S +++ b/arch/blackfin/kernel/vmlinux.lds.S | |||
@@ -56,6 +56,10 @@ SECTIONS | |||
56 | *(.text.*) | 56 | *(.text.*) |
57 | *(.fixup) | 57 | *(.fixup) |
58 | 58 | ||
59 | #if !L1_CODE_LENGTH | ||
60 | *(.l1.text) | ||
61 | #endif | ||
62 | |||
59 | . = ALIGN(16); | 63 | . = ALIGN(16); |
60 | ___start___ex_table = .; | 64 | ___start___ex_table = .; |
61 | *(__ex_table) | 65 | *(__ex_table) |
@@ -73,6 +77,12 @@ SECTIONS | |||
73 | ___bss_start = .; | 77 | ___bss_start = .; |
74 | *(.bss .bss.*) | 78 | *(.bss .bss.*) |
75 | *(COMMON) | 79 | *(COMMON) |
80 | #if !L1_DATA_A_LENGTH | ||
81 | *(.l1.bss) | ||
82 | #endif | ||
83 | #if !L1_DATA_B_LENGTH | ||
84 | *(.l1.bss.B) | ||
85 | #endif | ||
76 | ___bss_stop = .; | 86 | ___bss_stop = .; |
77 | } | 87 | } |
78 | 88 | ||
@@ -83,6 +93,15 @@ SECTIONS | |||
83 | . = ALIGN(32); | 93 | . = ALIGN(32); |
84 | *(.data.cacheline_aligned) | 94 | *(.data.cacheline_aligned) |
85 | 95 | ||
96 | #if !L1_DATA_A_LENGTH | ||
97 | . = ALIGN(32); | ||
98 | *(.data_l1.cacheline_aligned) | ||
99 | *(.l1.data) | ||
100 | #endif | ||
101 | #if !L1_DATA_B_LENGTH | ||
102 | *(.l1.data.B) | ||
103 | #endif | ||
104 | |||
86 | DATA_DATA | 105 | DATA_DATA |
87 | *(.data.*) | 106 | *(.data.*) |
88 | CONSTRUCTORS | 107 | CONSTRUCTORS |
@@ -147,64 +166,43 @@ SECTIONS | |||
147 | 166 | ||
148 | __l1_lma_start = .; | 167 | __l1_lma_start = .; |
149 | 168 | ||
150 | #if L1_CODE_LENGTH | ||
151 | # define LDS_L1_CODE *(.l1.text) | ||
152 | #else | ||
153 | # define LDS_L1_CODE | ||
154 | #endif | ||
155 | .text_l1 L1_CODE_START : AT(LOADADDR(.init.ramfs) + SIZEOF(.init.ramfs)) | 169 | .text_l1 L1_CODE_START : AT(LOADADDR(.init.ramfs) + SIZEOF(.init.ramfs)) |
156 | { | 170 | { |
157 | . = ALIGN(4); | 171 | . = ALIGN(4); |
158 | __stext_l1 = .; | 172 | __stext_l1 = .; |
159 | LDS_L1_CODE | 173 | *(.l1.text) |
160 | . = ALIGN(4); | 174 | . = ALIGN(4); |
161 | __etext_l1 = .; | 175 | __etext_l1 = .; |
162 | } | 176 | } |
163 | 177 | ||
164 | #if L1_DATA_A_LENGTH | ||
165 | # define LDS_L1_A_DATA *(.l1.data) | ||
166 | # define LDS_L1_A_BSS *(.l1.bss) | ||
167 | # define LDS_L1_A_CACHE *(.data_l1.cacheline_aligned) | ||
168 | #else | ||
169 | # define LDS_L1_A_DATA | ||
170 | # define LDS_L1_A_BSS | ||
171 | # define LDS_L1_A_CACHE | ||
172 | #endif | ||
173 | .data_l1 L1_DATA_A_START : AT(LOADADDR(.text_l1) + SIZEOF(.text_l1)) | 178 | .data_l1 L1_DATA_A_START : AT(LOADADDR(.text_l1) + SIZEOF(.text_l1)) |
174 | { | 179 | { |
175 | . = ALIGN(4); | 180 | . = ALIGN(4); |
176 | __sdata_l1 = .; | 181 | __sdata_l1 = .; |
177 | LDS_L1_A_DATA | 182 | *(.l1.data) |
178 | __edata_l1 = .; | 183 | __edata_l1 = .; |
179 | 184 | ||
180 | . = ALIGN(4); | 185 | . = ALIGN(4); |
181 | __sbss_l1 = .; | 186 | __sbss_l1 = .; |
182 | LDS_L1_A_BSS | 187 | *(.l1.bss) |
183 | 188 | ||
184 | . = ALIGN(32); | 189 | . = ALIGN(32); |
185 | LDS_L1_A_CACHE | 190 | *(.data_l1.cacheline_aligned) |
186 | 191 | ||
187 | . = ALIGN(4); | 192 | . = ALIGN(4); |
188 | __ebss_l1 = .; | 193 | __ebss_l1 = .; |
189 | } | 194 | } |
190 | 195 | ||
191 | #if L1_DATA_B_LENGTH | ||
192 | # define LDS_L1_B_DATA *(.l1.data.B) | ||
193 | # define LDS_L1_B_BSS *(.l1.bss.B) | ||
194 | #else | ||
195 | # define LDS_L1_B_DATA | ||
196 | # define LDS_L1_B_BSS | ||
197 | #endif | ||
198 | .data_b_l1 L1_DATA_B_START : AT(LOADADDR(.data_l1) + SIZEOF(.data_l1)) | 196 | .data_b_l1 L1_DATA_B_START : AT(LOADADDR(.data_l1) + SIZEOF(.data_l1)) |
199 | { | 197 | { |
200 | . = ALIGN(4); | 198 | . = ALIGN(4); |
201 | __sdata_b_l1 = .; | 199 | __sdata_b_l1 = .; |
202 | LDS_L1_B_DATA | 200 | *(.l1.data.B) |
203 | __edata_b_l1 = .; | 201 | __edata_b_l1 = .; |
204 | 202 | ||
205 | . = ALIGN(4); | 203 | . = ALIGN(4); |
206 | __sbss_b_l1 = .; | 204 | __sbss_b_l1 = .; |
207 | LDS_L1_B_BSS | 205 | *(.l1.bss.B) |
208 | 206 | ||
209 | . = ALIGN(4); | 207 | . = ALIGN(4); |
210 | __ebss_b_l1 = .; | 208 | __ebss_b_l1 = .; |
@@ -223,8 +221,6 @@ SECTIONS | |||
223 | 221 | ||
224 | DWARF_DEBUG | 222 | DWARF_DEBUG |
225 | 223 | ||
226 | NOTES | ||
227 | |||
228 | /DISCARD/ : | 224 | /DISCARD/ : |
229 | { | 225 | { |
230 | EXIT_TEXT | 226 | EXIT_TEXT |
diff --git a/arch/blackfin/mach-bf527/Makefile b/arch/blackfin/mach-bf527/Makefile index 9f99f5d0bcd1..4eddb580319c 100644 --- a/arch/blackfin/mach-bf527/Makefile +++ b/arch/blackfin/mach-bf527/Makefile | |||
@@ -5,5 +5,3 @@ | |||
5 | extra-y := head.o | 5 | extra-y := head.o |
6 | 6 | ||
7 | obj-y := ints-priority.o dma.o | 7 | obj-y := ints-priority.o dma.o |
8 | |||
9 | obj-$(CONFIG_CPU_FREQ) += cpu.o | ||
diff --git a/arch/blackfin/mach-bf527/boards/ezkit.c b/arch/blackfin/mach-bf527/boards/ezkit.c index cf4bc0d83355..583d53811f03 100644 --- a/arch/blackfin/mach-bf527/boards/ezkit.c +++ b/arch/blackfin/mach-bf527/boards/ezkit.c | |||
@@ -94,7 +94,7 @@ int __init bfin_isp1761_init(void) | |||
94 | { | 94 | { |
95 | unsigned int num_devices = ARRAY_SIZE(bfin_isp1761_devices); | 95 | unsigned int num_devices = ARRAY_SIZE(bfin_isp1761_devices); |
96 | 96 | ||
97 | printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); | 97 | printk(KERN_INFO "%s(): registering device resources\n", __func__); |
98 | set_irq_type(ISP1761_IRQ, IRQF_TRIGGER_FALLING); | 98 | set_irq_type(ISP1761_IRQ, IRQF_TRIGGER_FALLING); |
99 | 99 | ||
100 | return platform_add_devices(bfin_isp1761_devices, num_devices); | 100 | return platform_add_devices(bfin_isp1761_devices, num_devices); |
@@ -416,7 +416,7 @@ static struct platform_device net2272_bfin_device = { | |||
416 | static struct mtd_partition bfin_spi_flash_partitions[] = { | 416 | static struct mtd_partition bfin_spi_flash_partitions[] = { |
417 | { | 417 | { |
418 | .name = "bootloader", | 418 | .name = "bootloader", |
419 | .size = 0x00020000, | 419 | .size = 0x00040000, |
420 | .offset = 0, | 420 | .offset = 0, |
421 | .mask_flags = MTD_CAP_ROM | 421 | .mask_flags = MTD_CAP_ROM |
422 | }, { | 422 | }, { |
@@ -707,6 +707,32 @@ static struct platform_device bfin_uart_device = { | |||
707 | }; | 707 | }; |
708 | #endif | 708 | #endif |
709 | 709 | ||
710 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
711 | static struct resource bfin_sir_resources[] = { | ||
712 | #ifdef CONFIG_BFIN_SIR0 | ||
713 | { | ||
714 | .start = 0xFFC00400, | ||
715 | .end = 0xFFC004FF, | ||
716 | .flags = IORESOURCE_MEM, | ||
717 | }, | ||
718 | #endif | ||
719 | #ifdef CONFIG_BFIN_SIR1 | ||
720 | { | ||
721 | .start = 0xFFC02000, | ||
722 | .end = 0xFFC020FF, | ||
723 | .flags = IORESOURCE_MEM, | ||
724 | }, | ||
725 | #endif | ||
726 | }; | ||
727 | |||
728 | static struct platform_device bfin_sir_device = { | ||
729 | .name = "bfin_sir", | ||
730 | .id = 0, | ||
731 | .num_resources = ARRAY_SIZE(bfin_sir_resources), | ||
732 | .resource = bfin_sir_resources, | ||
733 | }; | ||
734 | #endif | ||
735 | |||
710 | #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) | 736 | #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) |
711 | static struct resource bfin_twi0_resource[] = { | 737 | static struct resource bfin_twi0_resource[] = { |
712 | [0] = { | 738 | [0] = { |
@@ -874,6 +900,10 @@ static struct platform_device *stamp_devices[] __initdata = { | |||
874 | &bfin_uart_device, | 900 | &bfin_uart_device, |
875 | #endif | 901 | #endif |
876 | 902 | ||
903 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
904 | &bfin_sir_device, | ||
905 | #endif | ||
906 | |||
877 | #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) | 907 | #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) |
878 | &i2c_bfin_twi_device, | 908 | &i2c_bfin_twi_device, |
879 | #endif | 909 | #endif |
@@ -896,7 +926,7 @@ static struct platform_device *stamp_devices[] __initdata = { | |||
896 | 926 | ||
897 | static int __init stamp_init(void) | 927 | static int __init stamp_init(void) |
898 | { | 928 | { |
899 | printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); | 929 | printk(KERN_INFO "%s(): registering device resources\n", __func__); |
900 | platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); | 930 | platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); |
901 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | 931 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) |
902 | spi_register_board_info(bfin_spi_board_info, | 932 | spi_register_board_info(bfin_spi_board_info, |
diff --git a/arch/blackfin/mach-bf527/cpu.c b/arch/blackfin/mach-bf527/cpu.c deleted file mode 100644 index 1975402b1dbc..000000000000 --- a/arch/blackfin/mach-bf527/cpu.c +++ /dev/null | |||
@@ -1,161 +0,0 @@ | |||
1 | /* | ||
2 | * File: arch/blackfin/mach-bf527/cpu.c | ||
3 | * Based on: arch/blackfin/mach-bf537/cpu.c | ||
4 | * Author: michael.kang@analog.com | ||
5 | * | ||
6 | * Created: | ||
7 | * Description: clock scaling for the bf527 | ||
8 | * | ||
9 | * Modified: | ||
10 | * Copyright 2004-2007 Analog Devices Inc. | ||
11 | * | ||
12 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | ||
13 | * | ||
14 | * This program is free software; you can redistribute it and/or modify | ||
15 | * it under the terms of the GNU General Public License as published by | ||
16 | * the Free Software Foundation; either version 2 of the License, or | ||
17 | * (at your option) any later version. | ||
18 | * | ||
19 | * This program is distributed in the hope that it will be useful, | ||
20 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
21 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
22 | * GNU General Public License for more details. | ||
23 | * | ||
24 | * You should have received a copy of the GNU General Public License | ||
25 | * along with this program; if not, see the file COPYING, or write | ||
26 | * to the Free Software Foundation, Inc., | ||
27 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
28 | */ | ||
29 | |||
30 | #include <linux/kernel.h> | ||
31 | #include <linux/types.h> | ||
32 | #include <linux/init.h> | ||
33 | #include <linux/cpufreq.h> | ||
34 | #include <asm/dpmc.h> | ||
35 | #include <linux/fs.h> | ||
36 | #include <asm/bfin-global.h> | ||
37 | |||
38 | /* CONFIG_CLKIN_HZ=11059200 */ | ||
39 | #define VCO5 (CONFIG_CLKIN_HZ*45) /*497664000 */ | ||
40 | #define VCO4 (CONFIG_CLKIN_HZ*36) /*398131200 */ | ||
41 | #define VCO3 (CONFIG_CLKIN_HZ*27) /*298598400 */ | ||
42 | #define VCO2 (CONFIG_CLKIN_HZ*18) /*199065600 */ | ||
43 | #define VCO1 (CONFIG_CLKIN_HZ*9) /*99532800 */ | ||
44 | #define VCO(x) VCO##x | ||
45 | |||
46 | #define MFREQ(x) {VCO(x), VCO(x)/4}, {VCO(x), VCO(x)/2}, {VCO(x), VCO(x)} | ||
47 | /* frequency */ | ||
48 | static struct cpufreq_frequency_table bf527_freq_table[] = { | ||
49 | MFREQ(1), | ||
50 | MFREQ(3), | ||
51 | {VCO4, VCO4 / 2}, {VCO4, VCO4}, | ||
52 | MFREQ(5), | ||
53 | {0, CPUFREQ_TABLE_END}, | ||
54 | }; | ||
55 | |||
56 | /* | ||
57 | * dpmc_fops->ioctl() | ||
58 | * static int dpmc_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) | ||
59 | */ | ||
60 | static int bf527_getfreq(unsigned int cpu) | ||
61 | { | ||
62 | unsigned long cclk_mhz; | ||
63 | |||
64 | /* The driver only support single cpu */ | ||
65 | if (cpu == 0) | ||
66 | dpmc_fops.ioctl(NULL, NULL, IOCTL_GET_CORECLOCK, &cclk_mhz); | ||
67 | else | ||
68 | cclk_mhz = -1; | ||
69 | |||
70 | return cclk_mhz; | ||
71 | } | ||
72 | |||
73 | static int bf527_target(struct cpufreq_policy *policy, | ||
74 | unsigned int target_freq, unsigned int relation) | ||
75 | { | ||
76 | unsigned long cclk_mhz; | ||
77 | unsigned long vco_mhz; | ||
78 | unsigned long flags; | ||
79 | unsigned int index; | ||
80 | struct cpufreq_freqs freqs; | ||
81 | |||
82 | if (cpufreq_frequency_table_target | ||
83 | (policy, bf527_freq_table, target_freq, relation, &index)) | ||
84 | return -EINVAL; | ||
85 | |||
86 | cclk_mhz = bf527_freq_table[index].frequency; | ||
87 | vco_mhz = bf527_freq_table[index].index; | ||
88 | |||
89 | dpmc_fops.ioctl(NULL, NULL, IOCTL_CHANGE_FREQUENCY, &vco_mhz); | ||
90 | freqs.old = bf527_getfreq(0); | ||
91 | freqs.new = cclk_mhz; | ||
92 | freqs.cpu = 0; | ||
93 | |||
94 | pr_debug | ||
95 | ("cclk begin change to cclk %d,vco=%d,index=%d,target=%d,oldfreq=%d\n", | ||
96 | cclk_mhz, vco_mhz, index, target_freq, freqs.old); | ||
97 | |||
98 | cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); | ||
99 | local_irq_save(flags); | ||
100 | dpmc_fops.ioctl(NULL, NULL, IOCTL_SET_CCLK, &cclk_mhz); | ||
101 | local_irq_restore(flags); | ||
102 | cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); | ||
103 | |||
104 | vco_mhz = get_vco(); | ||
105 | cclk_mhz = get_cclk(); | ||
106 | return 0; | ||
107 | } | ||
108 | |||
109 | /* make sure that only the "userspace" governor is run -- anything else wouldn't make sense on | ||
110 | * this platform, anyway. | ||
111 | */ | ||
112 | static int bf527_verify_speed(struct cpufreq_policy *policy) | ||
113 | { | ||
114 | return cpufreq_frequency_table_verify(policy, &bf527_freq_table); | ||
115 | } | ||
116 | |||
117 | static int __init __bf527_cpu_init(struct cpufreq_policy *policy) | ||
118 | { | ||
119 | if (policy->cpu != 0) | ||
120 | return -EINVAL; | ||
121 | |||
122 | policy->governor = CPUFREQ_DEFAULT_GOVERNOR; | ||
123 | |||
124 | policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL; | ||
125 | /*Now ,only support one cpu */ | ||
126 | policy->cur = bf527_getfreq(0); | ||
127 | cpufreq_frequency_table_get_attr(bf527_freq_table, policy->cpu); | ||
128 | return cpufreq_frequency_table_cpuinfo(policy, bf527_freq_table); | ||
129 | } | ||
130 | |||
131 | static struct freq_attr *bf527_freq_attr[] = { | ||
132 | &cpufreq_freq_attr_scaling_available_freqs, | ||
133 | NULL, | ||
134 | }; | ||
135 | |||
136 | static struct cpufreq_driver bf527_driver = { | ||
137 | .verify = bf527_verify_speed, | ||
138 | .target = bf527_target, | ||
139 | .get = bf527_getfreq, | ||
140 | .init = __bf527_cpu_init, | ||
141 | .name = "bf527", | ||
142 | .owner = THIS_MODULE, | ||
143 | .attr = bf527_freq_attr, | ||
144 | }; | ||
145 | |||
146 | static int __init bf527_cpu_init(void) | ||
147 | { | ||
148 | return cpufreq_register_driver(&bf527_driver); | ||
149 | } | ||
150 | |||
151 | static void __exit bf527_cpu_exit(void) | ||
152 | { | ||
153 | cpufreq_unregister_driver(&bf527_driver); | ||
154 | } | ||
155 | |||
156 | MODULE_AUTHOR("Mickael Kang"); | ||
157 | MODULE_DESCRIPTION("cpufreq driver for bf527 CPU"); | ||
158 | MODULE_LICENSE("GPL"); | ||
159 | |||
160 | module_init(bf527_cpu_init); | ||
161 | module_exit(bf527_cpu_exit); | ||
diff --git a/arch/blackfin/mach-bf527/dma.c b/arch/blackfin/mach-bf527/dma.c index 522de24cc394..dfd080cda787 100644 --- a/arch/blackfin/mach-bf527/dma.c +++ b/arch/blackfin/mach-bf527/dma.c | |||
@@ -26,10 +26,12 @@ | |||
26 | * to the Free Software Foundation, Inc., | 26 | * to the Free Software Foundation, Inc., |
27 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | 27 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
28 | */ | 28 | */ |
29 | #include <linux/module.h> | ||
30 | |||
29 | #include <asm/blackfin.h> | 31 | #include <asm/blackfin.h> |
30 | #include <asm/dma.h> | 32 | #include <asm/dma.h> |
31 | 33 | ||
32 | struct dma_register *base_addr[MAX_BLACKFIN_DMA_CHANNEL] = { | 34 | struct dma_register *dma_io_base_addr[MAX_BLACKFIN_DMA_CHANNEL] = { |
33 | (struct dma_register *) DMA0_NEXT_DESC_PTR, | 35 | (struct dma_register *) DMA0_NEXT_DESC_PTR, |
34 | (struct dma_register *) DMA1_NEXT_DESC_PTR, | 36 | (struct dma_register *) DMA1_NEXT_DESC_PTR, |
35 | (struct dma_register *) DMA2_NEXT_DESC_PTR, | 37 | (struct dma_register *) DMA2_NEXT_DESC_PTR, |
@@ -47,6 +49,7 @@ struct dma_register *base_addr[MAX_BLACKFIN_DMA_CHANNEL] = { | |||
47 | (struct dma_register *) MDMA_D1_NEXT_DESC_PTR, | 49 | (struct dma_register *) MDMA_D1_NEXT_DESC_PTR, |
48 | (struct dma_register *) MDMA_S1_NEXT_DESC_PTR, | 50 | (struct dma_register *) MDMA_S1_NEXT_DESC_PTR, |
49 | }; | 51 | }; |
52 | EXPORT_SYMBOL(dma_io_base_addr); | ||
50 | 53 | ||
51 | int channel2irq(unsigned int channel) | 54 | int channel2irq(unsigned int channel) |
52 | { | 55 | { |
diff --git a/arch/blackfin/mach-bf527/head.S b/arch/blackfin/mach-bf527/head.S index cdb00a084965..57bdb3ba2fed 100644 --- a/arch/blackfin/mach-bf527/head.S +++ b/arch/blackfin/mach-bf527/head.S | |||
@@ -37,9 +37,6 @@ | |||
37 | #include <asm/mach/mem_init.h> | 37 | #include <asm/mach/mem_init.h> |
38 | #endif | 38 | #endif |
39 | 39 | ||
40 | .global __rambase | ||
41 | .global __ramstart | ||
42 | .global __ramend | ||
43 | .extern ___bss_stop | 40 | .extern ___bss_stop |
44 | .extern ___bss_start | 41 | .extern ___bss_start |
45 | .extern _bf53x_relocate_l1_mem | 42 | .extern _bf53x_relocate_l1_mem |
@@ -439,18 +436,3 @@ ENTRY(_start_dma_code) | |||
439 | RTS; | 436 | RTS; |
440 | ENDPROC(_start_dma_code) | 437 | ENDPROC(_start_dma_code) |
441 | #endif /* CONFIG_BFIN_KERNEL_CLOCK */ | 438 | #endif /* CONFIG_BFIN_KERNEL_CLOCK */ |
442 | |||
443 | .data | ||
444 | |||
445 | /* | ||
446 | * Set up the usable of RAM stuff. Size of RAM is determined then | ||
447 | * an initial stack set up at the end. | ||
448 | */ | ||
449 | |||
450 | .align 4 | ||
451 | __rambase: | ||
452 | .long 0 | ||
453 | __ramstart: | ||
454 | .long 0 | ||
455 | __ramend: | ||
456 | .long 0 | ||
diff --git a/arch/blackfin/mach-bf533/Makefile b/arch/blackfin/mach-bf533/Makefile index 8cce1736360d..aa9f2647ee0c 100644 --- a/arch/blackfin/mach-bf533/Makefile +++ b/arch/blackfin/mach-bf533/Makefile | |||
@@ -5,5 +5,3 @@ | |||
5 | extra-y := head.o | 5 | extra-y := head.o |
6 | 6 | ||
7 | obj-y := ints-priority.o dma.o | 7 | obj-y := ints-priority.o dma.o |
8 | |||
9 | obj-$(CONFIG_CPU_FREQ) += cpu.o | ||
diff --git a/arch/blackfin/mach-bf533/boards/H8606.c b/arch/blackfin/mach-bf533/boards/H8606.c index 97378b0a9753..7cc4864f6aaf 100644 --- a/arch/blackfin/mach-bf533/boards/H8606.c +++ b/arch/blackfin/mach-bf533/boards/H8606.c | |||
@@ -304,6 +304,25 @@ static struct platform_device bfin_uart_device = { | |||
304 | }; | 304 | }; |
305 | #endif | 305 | #endif |
306 | 306 | ||
307 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
308 | static struct resource bfin_sir_resources[] = { | ||
309 | #ifdef CONFIG_BFIN_SIR0 | ||
310 | { | ||
311 | .start = 0xFFC00400, | ||
312 | .end = 0xFFC004FF, | ||
313 | .flags = IORESOURCE_MEM, | ||
314 | }, | ||
315 | #endif | ||
316 | }; | ||
317 | |||
318 | static struct platform_device bfin_sir_device = { | ||
319 | .name = "bfin_sir", | ||
320 | .id = 0, | ||
321 | .num_resources = ARRAY_SIZE(bfin_sir_resources), | ||
322 | .resource = bfin_sir_resources, | ||
323 | }; | ||
324 | #endif | ||
325 | |||
307 | #if defined(CONFIG_SERIAL_8250) || defined(CONFIG_SERIAL_8250_MODULE) | 326 | #if defined(CONFIG_SERIAL_8250) || defined(CONFIG_SERIAL_8250_MODULE) |
308 | 327 | ||
309 | #include <linux/serial_8250.h> | 328 | #include <linux/serial_8250.h> |
@@ -403,6 +422,10 @@ static struct platform_device *h8606_devices[] __initdata = { | |||
403 | &serial8250_device, | 422 | &serial8250_device, |
404 | #endif | 423 | #endif |
405 | 424 | ||
425 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
426 | &bfin_sir_device, | ||
427 | #endif | ||
428 | |||
406 | #if defined(CONFIG_KEYBOARD_OPENCORES) || defined(CONFIG_KEYBOARD_OPENCORES_MODULE) | 429 | #if defined(CONFIG_KEYBOARD_OPENCORES) || defined(CONFIG_KEYBOARD_OPENCORES_MODULE) |
407 | &opencores_kbd_device, | 430 | &opencores_kbd_device, |
408 | #endif | 431 | #endif |
@@ -411,7 +434,7 @@ static struct platform_device *h8606_devices[] __initdata = { | |||
411 | static int __init H8606_init(void) | 434 | static int __init H8606_init(void) |
412 | { | 435 | { |
413 | printk(KERN_INFO "HV Sistemas H8606 board support by http://www.hvsistemas.com\n"); | 436 | printk(KERN_INFO "HV Sistemas H8606 board support by http://www.hvsistemas.com\n"); |
414 | printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); | 437 | printk(KERN_INFO "%s(): registering device resources\n", __func__); |
415 | platform_add_devices(h8606_devices, ARRAY_SIZE(h8606_devices)); | 438 | platform_add_devices(h8606_devices, ARRAY_SIZE(h8606_devices)); |
416 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | 439 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) |
417 | spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); | 440 | spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); |
diff --git a/arch/blackfin/mach-bf533/boards/Kconfig b/arch/blackfin/mach-bf533/boards/Kconfig index 751de5110afc..840059241fbe 100644 --- a/arch/blackfin/mach-bf533/boards/Kconfig +++ b/arch/blackfin/mach-bf533/boards/Kconfig | |||
@@ -26,6 +26,12 @@ config H8606_HVSISTEMAS | |||
26 | help | 26 | help |
27 | HV Sistemas H8606 board support. | 27 | HV Sistemas H8606 board support. |
28 | 28 | ||
29 | config BFIN532_IP0X | ||
30 | bool "IP04/IP08 IP-PBX" | ||
31 | depends on (BF532) | ||
32 | help | ||
33 | Core support for IP04/IP04 open hardware IP-PBX. | ||
34 | |||
29 | config GENERIC_BF533_BOARD | 35 | config GENERIC_BF533_BOARD |
30 | bool "Generic" | 36 | bool "Generic" |
31 | help | 37 | help |
diff --git a/arch/blackfin/mach-bf533/boards/Makefile b/arch/blackfin/mach-bf533/boards/Makefile index 54f57fb9791e..b7a1a1d79bda 100644 --- a/arch/blackfin/mach-bf533/boards/Makefile +++ b/arch/blackfin/mach-bf533/boards/Makefile | |||
@@ -4,6 +4,7 @@ | |||
4 | 4 | ||
5 | obj-$(CONFIG_GENERIC_BF533_BOARD) += generic_board.o | 5 | obj-$(CONFIG_GENERIC_BF533_BOARD) += generic_board.o |
6 | obj-$(CONFIG_BFIN533_STAMP) += stamp.o | 6 | obj-$(CONFIG_BFIN533_STAMP) += stamp.o |
7 | obj-$(CONFIG_BFIN532_IP0X) += ip0x.o | ||
7 | obj-$(CONFIG_BFIN533_EZKIT) += ezkit.o | 8 | obj-$(CONFIG_BFIN533_EZKIT) += ezkit.o |
8 | obj-$(CONFIG_BFIN533_BLUETECHNIX_CM) += cm_bf533.o | 9 | obj-$(CONFIG_BFIN533_BLUETECHNIX_CM) += cm_bf533.o |
9 | obj-$(CONFIG_H8606_HVSISTEMAS) += H8606.o | 10 | obj-$(CONFIG_H8606_HVSISTEMAS) += H8606.o |
diff --git a/arch/blackfin/mach-bf533/boards/cm_bf533.c b/arch/blackfin/mach-bf533/boards/cm_bf533.c index 886f260d9359..a03149c72681 100644 --- a/arch/blackfin/mach-bf533/boards/cm_bf533.c +++ b/arch/blackfin/mach-bf533/boards/cm_bf533.c | |||
@@ -234,6 +234,25 @@ static struct platform_device bfin_uart_device = { | |||
234 | }; | 234 | }; |
235 | #endif | 235 | #endif |
236 | 236 | ||
237 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
238 | static struct resource bfin_sir_resources[] = { | ||
239 | #ifdef CONFIG_BFIN_SIR0 | ||
240 | { | ||
241 | .start = 0xFFC00400, | ||
242 | .end = 0xFFC004FF, | ||
243 | .flags = IORESOURCE_MEM, | ||
244 | }, | ||
245 | #endif | ||
246 | }; | ||
247 | |||
248 | static struct platform_device bfin_sir_device = { | ||
249 | .name = "bfin_sir", | ||
250 | .id = 0, | ||
251 | .num_resources = ARRAY_SIZE(bfin_sir_resources), | ||
252 | .resource = bfin_sir_resources, | ||
253 | }; | ||
254 | #endif | ||
255 | |||
237 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) | 256 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) |
238 | static struct platform_device bfin_sport0_uart_device = { | 257 | static struct platform_device bfin_sport0_uart_device = { |
239 | .name = "bfin-sport-uart", | 258 | .name = "bfin-sport-uart", |
@@ -327,6 +346,10 @@ static struct platform_device *cm_bf533_devices[] __initdata = { | |||
327 | &bfin_uart_device, | 346 | &bfin_uart_device, |
328 | #endif | 347 | #endif |
329 | 348 | ||
349 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
350 | &bfin_sir_device, | ||
351 | #endif | ||
352 | |||
330 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) | 353 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) |
331 | &bfin_sport0_uart_device, | 354 | &bfin_sport0_uart_device, |
332 | &bfin_sport1_uart_device, | 355 | &bfin_sport1_uart_device, |
@@ -355,7 +378,7 @@ static struct platform_device *cm_bf533_devices[] __initdata = { | |||
355 | 378 | ||
356 | static int __init cm_bf533_init(void) | 379 | static int __init cm_bf533_init(void) |
357 | { | 380 | { |
358 | printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); | 381 | printk(KERN_INFO "%s(): registering device resources\n", __func__); |
359 | platform_add_devices(cm_bf533_devices, ARRAY_SIZE(cm_bf533_devices)); | 382 | platform_add_devices(cm_bf533_devices, ARRAY_SIZE(cm_bf533_devices)); |
360 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | 383 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) |
361 | spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); | 384 | spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); |
diff --git a/arch/blackfin/mach-bf533/boards/ezkit.c b/arch/blackfin/mach-bf533/boards/ezkit.c index 241b5a20a36a..08a7943949ae 100644 --- a/arch/blackfin/mach-bf533/boards/ezkit.c +++ b/arch/blackfin/mach-bf533/boards/ezkit.c | |||
@@ -237,6 +237,25 @@ static struct platform_device bfin_uart_device = { | |||
237 | }; | 237 | }; |
238 | #endif | 238 | #endif |
239 | 239 | ||
240 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
241 | static struct resource bfin_sir_resources[] = { | ||
242 | #ifdef CONFIG_BFIN_SIR0 | ||
243 | { | ||
244 | .start = 0xFFC00400, | ||
245 | .end = 0xFFC004FF, | ||
246 | .flags = IORESOURCE_MEM, | ||
247 | }, | ||
248 | #endif | ||
249 | }; | ||
250 | |||
251 | static struct platform_device bfin_sir_device = { | ||
252 | .name = "bfin_sir", | ||
253 | .id = 0, | ||
254 | .num_resources = ARRAY_SIZE(bfin_sir_resources), | ||
255 | .resource = bfin_sir_resources, | ||
256 | }; | ||
257 | #endif | ||
258 | |||
240 | #if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) | 259 | #if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) |
241 | #define PATA_INT 55 | 260 | #define PATA_INT 55 |
242 | 261 | ||
@@ -352,6 +371,10 @@ static struct platform_device *ezkit_devices[] __initdata = { | |||
352 | &bfin_uart_device, | 371 | &bfin_uart_device, |
353 | #endif | 372 | #endif |
354 | 373 | ||
374 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
375 | &bfin_sir_device, | ||
376 | #endif | ||
377 | |||
355 | #if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) | 378 | #if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) |
356 | &bfin_pata_device, | 379 | &bfin_pata_device, |
357 | #endif | 380 | #endif |
@@ -369,7 +392,7 @@ static struct platform_device *ezkit_devices[] __initdata = { | |||
369 | 392 | ||
370 | static int __init ezkit_init(void) | 393 | static int __init ezkit_init(void) |
371 | { | 394 | { |
372 | printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); | 395 | printk(KERN_INFO "%s(): registering device resources\n", __func__); |
373 | platform_add_devices(ezkit_devices, ARRAY_SIZE(ezkit_devices)); | 396 | platform_add_devices(ezkit_devices, ARRAY_SIZE(ezkit_devices)); |
374 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | 397 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) |
375 | spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); | 398 | spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); |
diff --git a/arch/blackfin/mach-bf533/boards/generic_board.c b/arch/blackfin/mach-bf533/boards/generic_board.c index e359a0d6467f..82b1f6a60e3f 100644 --- a/arch/blackfin/mach-bf533/boards/generic_board.c +++ b/arch/blackfin/mach-bf533/boards/generic_board.c | |||
@@ -84,7 +84,7 @@ static struct platform_device *generic_board_devices[] __initdata = { | |||
84 | 84 | ||
85 | static int __init generic_board_init(void) | 85 | static int __init generic_board_init(void) |
86 | { | 86 | { |
87 | printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); | 87 | printk(KERN_INFO "%s(): registering device resources\n", __func__); |
88 | return platform_add_devices(generic_board_devices, ARRAY_SIZE(generic_board_devices)); | 88 | return platform_add_devices(generic_board_devices, ARRAY_SIZE(generic_board_devices)); |
89 | } | 89 | } |
90 | 90 | ||
diff --git a/arch/blackfin/mach-bf533/boards/ip0x.c b/arch/blackfin/mach-bf533/boards/ip0x.c new file mode 100644 index 000000000000..5864892de314 --- /dev/null +++ b/arch/blackfin/mach-bf533/boards/ip0x.c | |||
@@ -0,0 +1,303 @@ | |||
1 | /* | ||
2 | * File: arch/blackfin/mach-bf533/ip0x.c | ||
3 | * Based on: arch/blackfin/mach-bf533/bf1.c | ||
4 | * Based on: arch/blackfin/mach-bf533/stamp.c | ||
5 | * Author: Ivan Danov <idanov@gmail.com> | ||
6 | * Modified for IP0X David Rowe | ||
7 | * | ||
8 | * Created: 2007 | ||
9 | * Description: Board info file for the IP04/IP08 boards, which | ||
10 | * are derived from the BlackfinOne V2.0 boards. | ||
11 | * | ||
12 | * Modified: | ||
13 | * COpyright 2007 David Rowe | ||
14 | * Copyright 2006 Intratrade Ltd. | ||
15 | * Copyright 2005 National ICT Australia (NICTA) | ||
16 | * Copyright 2004-2006 Analog Devices Inc. | ||
17 | * | ||
18 | * This program is free software; you can redistribute it and/or modify | ||
19 | * it under the terms of the GNU General Public License as published by | ||
20 | * the Free Software Foundation; either version 2 of the License, or | ||
21 | * (at your option) any later version. | ||
22 | * | ||
23 | * This program is distributed in the hope that it will be useful, | ||
24 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
25 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
26 | * GNU General Public License for more details. | ||
27 | * | ||
28 | * You should have received a copy of the GNU General Public License | ||
29 | * along with this program; if not, see the file COPYING, or write | ||
30 | * to the Free Software Foundation, Inc., | ||
31 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
32 | */ | ||
33 | |||
34 | #include <linux/device.h> | ||
35 | #include <linux/platform_device.h> | ||
36 | #include <linux/mtd/mtd.h> | ||
37 | #include <linux/mtd/partitions.h> | ||
38 | #include <linux/spi/spi.h> | ||
39 | #include <linux/spi/flash.h> | ||
40 | #if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) | ||
41 | #include <linux/usb/isp1362.h> | ||
42 | #endif | ||
43 | #include <asm/irq.h> | ||
44 | #include <asm/bfin5xx_spi.h> | ||
45 | |||
46 | /* | ||
47 | * Name the Board for the /proc/cpuinfo | ||
48 | */ | ||
49 | const char bfin_board_name[] = "IP04/IP08"; | ||
50 | |||
51 | /* | ||
52 | * Driver needs to know address, irq and flag pin. | ||
53 | */ | ||
54 | #if defined(CONFIG_BFIN532_IP0X) | ||
55 | #if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE) | ||
56 | |||
57 | #include <linux/dm9000.h> | ||
58 | |||
59 | static struct resource dm9000_resource1[] = { | ||
60 | { | ||
61 | .start = 0x20100000, | ||
62 | .end = 0x20100000 + 1, | ||
63 | .flags = IORESOURCE_MEM | ||
64 | },{ | ||
65 | .start = 0x20100000 + 2, | ||
66 | .end = 0x20100000 + 3, | ||
67 | .flags = IORESOURCE_MEM | ||
68 | },{ | ||
69 | .start = IRQ_PF15, | ||
70 | .end = IRQ_PF15, | ||
71 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE | ||
72 | } | ||
73 | }; | ||
74 | |||
75 | static struct resource dm9000_resource2[] = { | ||
76 | { | ||
77 | .start = 0x20200000, | ||
78 | .end = 0x20200000 + 1, | ||
79 | .flags = IORESOURCE_MEM | ||
80 | },{ | ||
81 | .start = 0x20200000 + 2, | ||
82 | .end = 0x20200000 + 3, | ||
83 | .flags = IORESOURCE_MEM | ||
84 | },{ | ||
85 | .start = IRQ_PF14, | ||
86 | .end = IRQ_PF14, | ||
87 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE | ||
88 | } | ||
89 | }; | ||
90 | |||
91 | /* | ||
92 | * for the moment we limit ourselves to 16bit IO until some | ||
93 | * better IO routines can be written and tested | ||
94 | */ | ||
95 | static struct dm9000_plat_data dm9000_platdata1 = { | ||
96 | .flags = DM9000_PLATF_16BITONLY, | ||
97 | }; | ||
98 | |||
99 | static struct platform_device dm9000_device1 = { | ||
100 | .name = "dm9000", | ||
101 | .id = 0, | ||
102 | .num_resources = ARRAY_SIZE(dm9000_resource1), | ||
103 | .resource = dm9000_resource1, | ||
104 | .dev = { | ||
105 | .platform_data = &dm9000_platdata1, | ||
106 | } | ||
107 | }; | ||
108 | |||
109 | static struct dm9000_plat_data dm9000_platdata2 = { | ||
110 | .flags = DM9000_PLATF_16BITONLY, | ||
111 | }; | ||
112 | |||
113 | static struct platform_device dm9000_device2 = { | ||
114 | .name = "dm9000", | ||
115 | .id = 1, | ||
116 | .num_resources = ARRAY_SIZE(dm9000_resource2), | ||
117 | .resource = dm9000_resource2, | ||
118 | .dev = { | ||
119 | .platform_data = &dm9000_platdata2, | ||
120 | } | ||
121 | }; | ||
122 | |||
123 | #endif | ||
124 | #endif | ||
125 | |||
126 | |||
127 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | ||
128 | /* all SPI peripherals info goes here */ | ||
129 | |||
130 | #if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) | ||
131 | static struct bfin5xx_spi_chip spi_mmc_chip_info = { | ||
132 | /* | ||
133 | * CPOL (Clock Polarity) | ||
134 | * 0 - Active high SCK | ||
135 | * 1 - Active low SCK | ||
136 | * CPHA (Clock Phase) Selects transfer format and operation mode | ||
137 | * 0 - SCLK toggles from middle of the first data bit, slave select | ||
138 | * pins controlled by hardware. | ||
139 | * 1 - SCLK toggles from beginning of first data bit, slave select | ||
140 | * pins controller by user software. | ||
141 | * .ctl_reg = 0x1c00, * CPOL=1,CPHA=1,Sandisk 1G work | ||
142 | * NO NO .ctl_reg = 0x1800, * CPOL=1,CPHA=0 | ||
143 | * NO NO .ctl_reg = 0x1400, * CPOL=0,CPHA=1 | ||
144 | */ | ||
145 | .ctl_reg = 0x1000, /* CPOL=0,CPHA=0,Sandisk 1G work */ | ||
146 | .enable_dma = 0, /* if 1 - block!!! */ | ||
147 | .bits_per_word = 8, | ||
148 | .cs_change_per_word = 0, | ||
149 | }; | ||
150 | #endif | ||
151 | |||
152 | /* Notice: for blackfin, the speed_hz is the value of register | ||
153 | * SPI_BAUD, not the real baudrate */ | ||
154 | static struct spi_board_info bfin_spi_board_info[] __initdata = { | ||
155 | #if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) | ||
156 | { | ||
157 | .modalias = "spi_mmc", | ||
158 | .max_speed_hz = 2, | ||
159 | .bus_num = 1, | ||
160 | .chip_select = CONFIG_SPI_MMC_CS_CHAN, | ||
161 | .platform_data = NULL, | ||
162 | .controller_data = &spi_mmc_chip_info, | ||
163 | }, | ||
164 | #endif | ||
165 | }; | ||
166 | |||
167 | /* SPI controller data */ | ||
168 | static struct bfin5xx_spi_master spi_bfin_master_info = { | ||
169 | .num_chipselect = 8, | ||
170 | .enable_dma = 1, /* master has the ability to do dma transfer */ | ||
171 | }; | ||
172 | |||
173 | static struct platform_device spi_bfin_master_device = { | ||
174 | .name = "bfin-spi-master", | ||
175 | .id = 1, /* Bus number */ | ||
176 | .dev = { | ||
177 | .platform_data = &spi_bfin_master_info, /* Passed to driver */ | ||
178 | }, | ||
179 | }; | ||
180 | #endif /* spi master and devices */ | ||
181 | |||
182 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) | ||
183 | static struct resource bfin_uart_resources[] = { | ||
184 | { | ||
185 | .start = 0xFFC00400, | ||
186 | .end = 0xFFC004FF, | ||
187 | .flags = IORESOURCE_MEM, | ||
188 | }, | ||
189 | }; | ||
190 | |||
191 | static struct platform_device bfin_uart_device = { | ||
192 | .name = "bfin-uart", | ||
193 | .id = 1, | ||
194 | .num_resources = ARRAY_SIZE(bfin_uart_resources), | ||
195 | .resource = bfin_uart_resources, | ||
196 | }; | ||
197 | #endif | ||
198 | |||
199 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
200 | static struct resource bfin_sir_resources[] = { | ||
201 | #ifdef CONFIG_BFIN_SIR0 | ||
202 | { | ||
203 | .start = 0xFFC00400, | ||
204 | .end = 0xFFC004FF, | ||
205 | .flags = IORESOURCE_MEM, | ||
206 | }, | ||
207 | #endif | ||
208 | }; | ||
209 | |||
210 | static struct platform_device bfin_sir_device = { | ||
211 | .name = "bfin_sir", | ||
212 | .id = 0, | ||
213 | .num_resources = ARRAY_SIZE(bfin_sir_resources), | ||
214 | .resource = bfin_sir_resources, | ||
215 | }; | ||
216 | #endif | ||
217 | |||
218 | #if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) | ||
219 | static struct resource isp1362_hcd_resources[] = { | ||
220 | { | ||
221 | .start = 0x20300000, | ||
222 | .end = 0x20300000 + 1, | ||
223 | .flags = IORESOURCE_MEM, | ||
224 | },{ | ||
225 | .start = 0x20300000 + 2, | ||
226 | .end = 0x20300000 + 3, | ||
227 | .flags = IORESOURCE_MEM, | ||
228 | },{ | ||
229 | .start = IRQ_PF11, | ||
230 | .end = IRQ_PF11, | ||
231 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, | ||
232 | }, | ||
233 | }; | ||
234 | |||
235 | static struct isp1362_platform_data isp1362_priv = { | ||
236 | .sel15Kres = 1, | ||
237 | .clknotstop = 0, | ||
238 | .oc_enable = 0, /* external OC */ | ||
239 | .int_act_high = 0, | ||
240 | .int_edge_triggered = 0, | ||
241 | .remote_wakeup_connected = 0, | ||
242 | .no_power_switching = 1, | ||
243 | .power_switching_mode = 0, | ||
244 | }; | ||
245 | |||
246 | static struct platform_device isp1362_hcd_device = { | ||
247 | .name = "isp1362-hcd", | ||
248 | .id = 0, | ||
249 | .dev = { | ||
250 | .platform_data = &isp1362_priv, | ||
251 | }, | ||
252 | .num_resources = ARRAY_SIZE(isp1362_hcd_resources), | ||
253 | .resource = isp1362_hcd_resources, | ||
254 | }; | ||
255 | #endif | ||
256 | |||
257 | |||
258 | static struct platform_device *ip0x_devices[] __initdata = { | ||
259 | #if defined(CONFIG_BFIN532_IP0X) | ||
260 | #if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE) | ||
261 | &dm9000_device1, | ||
262 | &dm9000_device2, | ||
263 | #endif | ||
264 | #endif | ||
265 | |||
266 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | ||
267 | &spi_bfin_master_device, | ||
268 | #endif | ||
269 | |||
270 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) | ||
271 | &bfin_uart_device, | ||
272 | #endif | ||
273 | |||
274 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
275 | &bfin_sir_device, | ||
276 | #endif | ||
277 | |||
278 | #if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) | ||
279 | &isp1362_hcd_device, | ||
280 | #endif | ||
281 | }; | ||
282 | |||
283 | static int __init ip0x_init(void) | ||
284 | { | ||
285 | int i; | ||
286 | |||
287 | printk(KERN_INFO "%s(): registering device resources\n", __func__); | ||
288 | platform_add_devices(ip0x_devices, ARRAY_SIZE(ip0x_devices)); | ||
289 | |||
290 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | ||
291 | for (i = 0; i < ARRAY_SIZE(bfin_spi_board_info); ++i) { | ||
292 | int j = 1 << bfin_spi_board_info[i].chip_select; | ||
293 | /* set spi cs to 1 */ | ||
294 | bfin_write_FIO_DIR(bfin_read_FIO_DIR() | j); | ||
295 | bfin_write_FIO_FLAG_S(j); | ||
296 | } | ||
297 | spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); | ||
298 | #endif | ||
299 | |||
300 | return 0; | ||
301 | } | ||
302 | |||
303 | arch_initcall(ip0x_init); | ||
diff --git a/arch/blackfin/mach-bf533/boards/stamp.c b/arch/blackfin/mach-bf533/boards/stamp.c index b2ac4816ae62..fddce32901a2 100644 --- a/arch/blackfin/mach-bf533/boards/stamp.c +++ b/arch/blackfin/mach-bf533/boards/stamp.c | |||
@@ -40,6 +40,7 @@ | |||
40 | #endif | 40 | #endif |
41 | #include <linux/ata_platform.h> | 41 | #include <linux/ata_platform.h> |
42 | #include <linux/irq.h> | 42 | #include <linux/irq.h> |
43 | #include <linux/i2c.h> | ||
43 | #include <asm/dma.h> | 44 | #include <asm/dma.h> |
44 | #include <asm/bfin5xx_spi.h> | 45 | #include <asm/bfin5xx_spi.h> |
45 | #include <asm/reboot.h> | 46 | #include <asm/reboot.h> |
@@ -109,6 +110,7 @@ static struct platform_device net2272_bfin_device = { | |||
109 | }; | 110 | }; |
110 | #endif | 111 | #endif |
111 | 112 | ||
113 | #if defined(CONFIG_MTD_BF5xx) || defined(CONFIG_MTD_BF5xx_MODULE) | ||
112 | static struct mtd_partition stamp_partitions[] = { | 114 | static struct mtd_partition stamp_partitions[] = { |
113 | { | 115 | { |
114 | .name = "Bootloader", | 116 | .name = "Bootloader", |
@@ -152,6 +154,7 @@ static struct platform_device stamp_flash_device = { | |||
152 | .num_resources = ARRAY_SIZE(stamp_flash_resource), | 154 | .num_resources = ARRAY_SIZE(stamp_flash_resource), |
153 | .resource = stamp_flash_resource, | 155 | .resource = stamp_flash_resource, |
154 | }; | 156 | }; |
157 | #endif | ||
155 | 158 | ||
156 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | 159 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) |
157 | /* all SPI peripherals info goes here */ | 160 | /* all SPI peripherals info goes here */ |
@@ -367,6 +370,25 @@ static struct platform_device bfin_uart_device = { | |||
367 | }; | 370 | }; |
368 | #endif | 371 | #endif |
369 | 372 | ||
373 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
374 | static struct resource bfin_sir_resources[] = { | ||
375 | #ifdef CONFIG_BFIN_SIR0 | ||
376 | { | ||
377 | .start = 0xFFC00400, | ||
378 | .end = 0xFFC004FF, | ||
379 | .flags = IORESOURCE_MEM, | ||
380 | }, | ||
381 | #endif | ||
382 | }; | ||
383 | |||
384 | static struct platform_device bfin_sir_device = { | ||
385 | .name = "bfin_sir", | ||
386 | .id = 0, | ||
387 | .num_resources = ARRAY_SIZE(bfin_sir_resources), | ||
388 | .resource = bfin_sir_resources, | ||
389 | }; | ||
390 | #endif | ||
391 | |||
370 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) | 392 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) |
371 | static struct platform_device bfin_sport0_uart_device = { | 393 | static struct platform_device bfin_sport0_uart_device = { |
372 | .name = "bfin-sport-uart", | 394 | .name = "bfin-sport-uart", |
@@ -472,6 +494,31 @@ static struct platform_device i2c_gpio_device = { | |||
472 | }; | 494 | }; |
473 | #endif | 495 | #endif |
474 | 496 | ||
497 | #ifdef CONFIG_I2C_BOARDINFO | ||
498 | static struct i2c_board_info __initdata bfin_i2c_board_info[] = { | ||
499 | #if defined(CONFIG_JOYSTICK_AD7142) || defined(CONFIG_JOYSTICK_AD7142_MODULE) | ||
500 | { | ||
501 | I2C_BOARD_INFO("ad7142_joystick", 0x2C), | ||
502 | .type = "ad7142_joystick", | ||
503 | .irq = 39, | ||
504 | }, | ||
505 | #endif | ||
506 | #if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE) | ||
507 | { | ||
508 | I2C_BOARD_INFO("pcf8574_lcd", 0x22), | ||
509 | .type = "pcf8574_lcd", | ||
510 | }, | ||
511 | #endif | ||
512 | #if defined(CONFIG_TWI_KEYPAD) || defined(CONFIG_TWI_KEYPAD_MODULE) | ||
513 | { | ||
514 | I2C_BOARD_INFO("pcf8574_keypad", 0x27), | ||
515 | .type = "pcf8574_keypad", | ||
516 | .irq = 39, | ||
517 | }, | ||
518 | #endif | ||
519 | }; | ||
520 | #endif | ||
521 | |||
475 | static struct platform_device *stamp_devices[] __initdata = { | 522 | static struct platform_device *stamp_devices[] __initdata = { |
476 | #if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) | 523 | #if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) |
477 | &rtc_device, | 524 | &rtc_device, |
@@ -497,6 +544,10 @@ static struct platform_device *stamp_devices[] __initdata = { | |||
497 | &bfin_uart_device, | 544 | &bfin_uart_device, |
498 | #endif | 545 | #endif |
499 | 546 | ||
547 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
548 | &bfin_sir_device, | ||
549 | #endif | ||
550 | |||
500 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) | 551 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) |
501 | &bfin_sport0_uart_device, | 552 | &bfin_sport0_uart_device, |
502 | &bfin_sport1_uart_device, | 553 | &bfin_sport1_uart_device, |
@@ -515,14 +566,23 @@ static struct platform_device *stamp_devices[] __initdata = { | |||
515 | #endif | 566 | #endif |
516 | 567 | ||
517 | &bfin_gpios_device, | 568 | &bfin_gpios_device, |
569 | |||
570 | #if defined(CONFIG_MTD_BF5xx) || defined(CONFIG_MTD_BF5xx_MODULE) | ||
518 | &stamp_flash_device, | 571 | &stamp_flash_device, |
572 | #endif | ||
519 | }; | 573 | }; |
520 | 574 | ||
521 | static int __init stamp_init(void) | 575 | static int __init stamp_init(void) |
522 | { | 576 | { |
523 | int ret; | 577 | int ret; |
524 | 578 | ||
525 | printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); | 579 | printk(KERN_INFO "%s(): registering device resources\n", __func__); |
580 | |||
581 | #ifdef CONFIG_I2C_BOARDINFO | ||
582 | i2c_register_board_info(0, bfin_i2c_board_info, | ||
583 | ARRAY_SIZE(bfin_i2c_board_info)); | ||
584 | #endif | ||
585 | |||
526 | ret = platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); | 586 | ret = platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); |
527 | if (ret < 0) | 587 | if (ret < 0) |
528 | return ret; | 588 | return ret; |
diff --git a/arch/blackfin/mach-bf533/cpu.c b/arch/blackfin/mach-bf533/cpu.c deleted file mode 100644 index b7a0e0fbd9af..000000000000 --- a/arch/blackfin/mach-bf533/cpu.c +++ /dev/null | |||
@@ -1,158 +0,0 @@ | |||
1 | /* | ||
2 | * File: arch/blackfin/mach-bf533/cpu.c | ||
3 | * Based on: | ||
4 | * Author: michael.kang@analog.com | ||
5 | * | ||
6 | * Created: | ||
7 | * Description: clock scaling for the bf533 | ||
8 | * | ||
9 | * Modified: | ||
10 | * Copyright 2004-2006 Analog Devices Inc. | ||
11 | * | ||
12 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | ||
13 | * | ||
14 | * This program is free software; you can redistribute it and/or modify | ||
15 | * it under the terms of the GNU General Public License as published by | ||
16 | * the Free Software Foundation; either version 2 of the License, or | ||
17 | * (at your option) any later version. | ||
18 | * | ||
19 | * This program is distributed in the hope that it will be useful, | ||
20 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
21 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
22 | * GNU General Public License for more details. | ||
23 | * | ||
24 | * You should have received a copy of the GNU General Public License | ||
25 | * along with this program; if not, see the file COPYING, or write | ||
26 | * to the Free Software Foundation, Inc., | ||
27 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
28 | */ | ||
29 | |||
30 | #include <linux/kernel.h> | ||
31 | #include <linux/types.h> | ||
32 | #include <linux/init.h> | ||
33 | #include <linux/cpufreq.h> | ||
34 | #include <asm/dpmc.h> | ||
35 | #include <linux/fs.h> | ||
36 | #include <asm/bfin-global.h> | ||
37 | |||
38 | /* CONFIG_CLKIN_HZ=11059200 */ | ||
39 | #define VCO5 (CONFIG_CLKIN_HZ*45) /*497664000 */ | ||
40 | #define VCO4 (CONFIG_CLKIN_HZ*36) /*398131200 */ | ||
41 | #define VCO3 (CONFIG_CLKIN_HZ*27) /*298598400 */ | ||
42 | #define VCO2 (CONFIG_CLKIN_HZ*18) /*199065600 */ | ||
43 | #define VCO1 (CONFIG_CLKIN_HZ*9) /*99532800 */ | ||
44 | #define VCO(x) VCO##x | ||
45 | |||
46 | #define FREQ(x) {VCO(x),VCO(x)/4},{VCO(x),VCO(x)/2},{VCO(x),VCO(x)} | ||
47 | /* frequency */ | ||
48 | static struct cpufreq_frequency_table bf533_freq_table[] = { | ||
49 | FREQ(1), | ||
50 | FREQ(3), | ||
51 | {VCO4, VCO4 / 2}, {VCO4, VCO4}, | ||
52 | FREQ(5), | ||
53 | {0, CPUFREQ_TABLE_END}, | ||
54 | }; | ||
55 | |||
56 | /* | ||
57 | * dpmc_fops->ioctl() | ||
58 | * static int dpmc_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) | ||
59 | */ | ||
60 | static int bf533_getfreq(unsigned int cpu) | ||
61 | { | ||
62 | unsigned long cclk_mhz, vco_mhz; | ||
63 | |||
64 | /* The driver only support single cpu */ | ||
65 | if (cpu == 0) | ||
66 | dpmc_fops.ioctl(NULL, NULL, IOCTL_GET_CORECLOCK, &cclk_mhz); | ||
67 | else | ||
68 | cclk_mhz = -1; | ||
69 | return cclk_mhz; | ||
70 | } | ||
71 | |||
72 | static int bf533_target(struct cpufreq_policy *policy, | ||
73 | unsigned int target_freq, unsigned int relation) | ||
74 | { | ||
75 | unsigned long cclk_mhz; | ||
76 | unsigned long vco_mhz; | ||
77 | unsigned long flags; | ||
78 | unsigned int index, vco_index; | ||
79 | int i; | ||
80 | |||
81 | struct cpufreq_freqs freqs; | ||
82 | if (cpufreq_frequency_table_target(policy, bf533_freq_table, target_freq, relation, &index)) | ||
83 | return -EINVAL; | ||
84 | cclk_mhz = bf533_freq_table[index].frequency; | ||
85 | vco_mhz = bf533_freq_table[index].index; | ||
86 | |||
87 | dpmc_fops.ioctl(NULL, NULL, IOCTL_CHANGE_FREQUENCY, &vco_mhz); | ||
88 | freqs.old = bf533_getfreq(0); | ||
89 | freqs.new = cclk_mhz; | ||
90 | freqs.cpu = 0; | ||
91 | |||
92 | pr_debug("cclk begin change to cclk %d,vco=%d,index=%d,target=%d,oldfreq=%d\n", | ||
93 | cclk_mhz, vco_mhz, index, target_freq, freqs.old); | ||
94 | |||
95 | cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); | ||
96 | local_irq_save(flags); | ||
97 | dpmc_fops.ioctl(NULL, NULL, IOCTL_SET_CCLK, &cclk_mhz); | ||
98 | local_irq_restore(flags); | ||
99 | cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); | ||
100 | |||
101 | vco_mhz = get_vco(); | ||
102 | cclk_mhz = get_cclk(); | ||
103 | return 0; | ||
104 | } | ||
105 | |||
106 | /* make sure that only the "userspace" governor is run -- anything else wouldn't make sense on | ||
107 | * this platform, anyway. | ||
108 | */ | ||
109 | static int bf533_verify_speed(struct cpufreq_policy *policy) | ||
110 | { | ||
111 | return cpufreq_frequency_table_verify(policy, &bf533_freq_table); | ||
112 | } | ||
113 | |||
114 | static int __init __bf533_cpu_init(struct cpufreq_policy *policy) | ||
115 | { | ||
116 | int result; | ||
117 | |||
118 | if (policy->cpu != 0) | ||
119 | return -EINVAL; | ||
120 | |||
121 | policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL; | ||
122 | /*Now ,only support one cpu */ | ||
123 | policy->cur = bf533_getfreq(0); | ||
124 | cpufreq_frequency_table_get_attr(bf533_freq_table, policy->cpu); | ||
125 | return cpufreq_frequency_table_cpuinfo(policy, bf533_freq_table); | ||
126 | } | ||
127 | |||
128 | static struct freq_attr *bf533_freq_attr[] = { | ||
129 | &cpufreq_freq_attr_scaling_available_freqs, | ||
130 | NULL, | ||
131 | }; | ||
132 | |||
133 | static struct cpufreq_driver bf533_driver = { | ||
134 | .verify = bf533_verify_speed, | ||
135 | .target = bf533_target, | ||
136 | .get = bf533_getfreq, | ||
137 | .init = __bf533_cpu_init, | ||
138 | .name = "bf533", | ||
139 | .owner = THIS_MODULE, | ||
140 | .attr = bf533_freq_attr, | ||
141 | }; | ||
142 | |||
143 | static int __init bf533_cpu_init(void) | ||
144 | { | ||
145 | return cpufreq_register_driver(&bf533_driver); | ||
146 | } | ||
147 | |||
148 | static void __exit bf533_cpu_exit(void) | ||
149 | { | ||
150 | cpufreq_unregister_driver(&bf533_driver); | ||
151 | } | ||
152 | |||
153 | MODULE_AUTHOR("Mickael Kang"); | ||
154 | MODULE_DESCRIPTION("cpufreq driver for BF533 CPU"); | ||
155 | MODULE_LICENSE("GPL"); | ||
156 | |||
157 | module_init(bf533_cpu_init); | ||
158 | module_exit(bf533_cpu_exit); | ||
diff --git a/arch/blackfin/mach-bf533/dma.c b/arch/blackfin/mach-bf533/dma.c index 6c909cf4f7bf..28655c1cb7dc 100644 --- a/arch/blackfin/mach-bf533/dma.c +++ b/arch/blackfin/mach-bf533/dma.c | |||
@@ -26,10 +26,12 @@ | |||
26 | * to the Free Software Foundation, Inc., | 26 | * to the Free Software Foundation, Inc., |
27 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | 27 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
28 | */ | 28 | */ |
29 | #include <linux/module.h> | ||
30 | |||
29 | #include <asm/blackfin.h> | 31 | #include <asm/blackfin.h> |
30 | #include <asm/dma.h> | 32 | #include <asm/dma.h> |
31 | 33 | ||
32 | struct dma_register *base_addr[MAX_BLACKFIN_DMA_CHANNEL] = { | 34 | struct dma_register *dma_io_base_addr[MAX_BLACKFIN_DMA_CHANNEL] = { |
33 | (struct dma_register *) DMA0_NEXT_DESC_PTR, | 35 | (struct dma_register *) DMA0_NEXT_DESC_PTR, |
34 | (struct dma_register *) DMA1_NEXT_DESC_PTR, | 36 | (struct dma_register *) DMA1_NEXT_DESC_PTR, |
35 | (struct dma_register *) DMA2_NEXT_DESC_PTR, | 37 | (struct dma_register *) DMA2_NEXT_DESC_PTR, |
@@ -43,6 +45,7 @@ struct dma_register *base_addr[MAX_BLACKFIN_DMA_CHANNEL] = { | |||
43 | (struct dma_register *) MDMA_D1_NEXT_DESC_PTR, | 45 | (struct dma_register *) MDMA_D1_NEXT_DESC_PTR, |
44 | (struct dma_register *) MDMA_S1_NEXT_DESC_PTR, | 46 | (struct dma_register *) MDMA_S1_NEXT_DESC_PTR, |
45 | }; | 47 | }; |
48 | EXPORT_SYMBOL(dma_io_base_addr); | ||
46 | 49 | ||
47 | int channel2irq(unsigned int channel) | 50 | int channel2irq(unsigned int channel) |
48 | { | 51 | { |
diff --git a/arch/blackfin/mach-bf533/head.S b/arch/blackfin/mach-bf533/head.S index 1ded945a6fa0..1295deac00a4 100644 --- a/arch/blackfin/mach-bf533/head.S +++ b/arch/blackfin/mach-bf533/head.S | |||
@@ -36,9 +36,6 @@ | |||
36 | #include <asm/mach/mem_init.h> | 36 | #include <asm/mach/mem_init.h> |
37 | #endif | 37 | #endif |
38 | 38 | ||
39 | .global __rambase | ||
40 | .global __ramstart | ||
41 | .global __ramend | ||
42 | .extern ___bss_stop | 39 | .extern ___bss_stop |
43 | .extern ___bss_start | 40 | .extern ___bss_start |
44 | .extern _bf53x_relocate_l1_mem | 41 | .extern _bf53x_relocate_l1_mem |
@@ -151,26 +148,26 @@ ENTRY(__start) | |||
151 | 148 | ||
152 | /* Initialise UART - when booting from u-boot, the UART is not disabled | 149 | /* Initialise UART - when booting from u-boot, the UART is not disabled |
153 | * so if we dont initalize here, our serial console gets hosed */ | 150 | * so if we dont initalize here, our serial console gets hosed */ |
154 | p0.h = hi(UART_LCR); | 151 | p0.h = hi(BFIN_UART_LCR); |
155 | p0.l = lo(UART_LCR); | 152 | p0.l = lo(BFIN_UART_LCR); |
156 | r0 = 0x0(Z); | 153 | r0 = 0x0(Z); |
157 | w[p0] = r0.L; /* To enable DLL writes */ | 154 | w[p0] = r0.L; /* To enable DLL writes */ |
158 | ssync; | 155 | ssync; |
159 | 156 | ||
160 | p0.h = hi(UART_DLL); | 157 | p0.h = hi(BFIN_UART_DLL); |
161 | p0.l = lo(UART_DLL); | 158 | p0.l = lo(BFIN_UART_DLL); |
162 | r0 = 0x0(Z); | 159 | r0 = 0x0(Z); |
163 | w[p0] = r0.L; | 160 | w[p0] = r0.L; |
164 | ssync; | 161 | ssync; |
165 | 162 | ||
166 | p0.h = hi(UART_DLH); | 163 | p0.h = hi(BFIN_UART_DLH); |
167 | p0.l = lo(UART_DLH); | 164 | p0.l = lo(BFIN_UART_DLH); |
168 | r0 = 0x00(Z); | 165 | r0 = 0x00(Z); |
169 | w[p0] = r0.L; | 166 | w[p0] = r0.L; |
170 | ssync; | 167 | ssync; |
171 | 168 | ||
172 | p0.h = hi(UART_GCTL); | 169 | p0.h = hi(BFIN_UART_GCTL); |
173 | p0.l = lo(UART_GCTL); | 170 | p0.l = lo(BFIN_UART_GCTL); |
174 | r0 = 0x0(Z); | 171 | r0 = 0x0(Z); |
175 | w[p0] = r0.L; /* To enable UART clock */ | 172 | w[p0] = r0.L; /* To enable UART clock */ |
176 | ssync; | 173 | ssync; |
@@ -431,18 +428,3 @@ ENTRY(_start_dma_code) | |||
431 | RTS; | 428 | RTS; |
432 | ENDPROC(_start_dma_code) | 429 | ENDPROC(_start_dma_code) |
433 | #endif /* CONFIG_BFIN_KERNEL_CLOCK */ | 430 | #endif /* CONFIG_BFIN_KERNEL_CLOCK */ |
434 | |||
435 | .data | ||
436 | |||
437 | /* | ||
438 | * Set up the usable of RAM stuff. Size of RAM is determined then | ||
439 | * an initial stack set up at the end. | ||
440 | */ | ||
441 | |||
442 | .align 4 | ||
443 | __rambase: | ||
444 | .long 0 | ||
445 | __ramstart: | ||
446 | .long 0 | ||
447 | __ramend: | ||
448 | .long 0 | ||
diff --git a/arch/blackfin/mach-bf537/Makefile b/arch/blackfin/mach-bf537/Makefile index 7e7c9c8ac5b2..68e5478e95a9 100644 --- a/arch/blackfin/mach-bf537/Makefile +++ b/arch/blackfin/mach-bf537/Makefile | |||
@@ -5,5 +5,3 @@ | |||
5 | extra-y := head.o | 5 | extra-y := head.o |
6 | 6 | ||
7 | obj-y := ints-priority.o dma.o | 7 | obj-y := ints-priority.o dma.o |
8 | |||
9 | obj-$(CONFIG_CPU_FREQ) += cpu.o | ||
diff --git a/arch/blackfin/mach-bf537/boards/cm_bf537.c b/arch/blackfin/mach-bf537/boards/cm_bf537.c index f7c1f964f13b..d8a23cd9b9ed 100644 --- a/arch/blackfin/mach-bf537/boards/cm_bf537.c +++ b/arch/blackfin/mach-bf537/boards/cm_bf537.c | |||
@@ -325,6 +325,54 @@ static struct platform_device bfin_uart_device = { | |||
325 | }; | 325 | }; |
326 | #endif | 326 | #endif |
327 | 327 | ||
328 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
329 | static struct resource bfin_sir_resources[] = { | ||
330 | #ifdef CONFIG_BFIN_SIR0 | ||
331 | { | ||
332 | .start = 0xFFC00400, | ||
333 | .end = 0xFFC004FF, | ||
334 | .flags = IORESOURCE_MEM, | ||
335 | }, | ||
336 | #endif | ||
337 | #ifdef CONFIG_BFIN_SIR1 | ||
338 | { | ||
339 | .start = 0xFFC02000, | ||
340 | .end = 0xFFC020FF, | ||
341 | .flags = IORESOURCE_MEM, | ||
342 | }, | ||
343 | #endif | ||
344 | }; | ||
345 | |||
346 | static struct platform_device bfin_sir_device = { | ||
347 | .name = "bfin_sir", | ||
348 | .id = 0, | ||
349 | .num_resources = ARRAY_SIZE(bfin_sir_resources), | ||
350 | .resource = bfin_sir_resources, | ||
351 | }; | ||
352 | #endif | ||
353 | |||
354 | #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) | ||
355 | static struct resource bfin_twi0_resource[] = { | ||
356 | [0] = { | ||
357 | .start = TWI0_REGBASE, | ||
358 | .end = TWI0_REGBASE, | ||
359 | .flags = IORESOURCE_MEM, | ||
360 | }, | ||
361 | [1] = { | ||
362 | .start = IRQ_TWI, | ||
363 | .end = IRQ_TWI, | ||
364 | .flags = IORESOURCE_IRQ, | ||
365 | }, | ||
366 | }; | ||
367 | |||
368 | static struct platform_device i2c_bfin_twi_device = { | ||
369 | .name = "i2c-bfin-twi", | ||
370 | .id = 0, | ||
371 | .num_resources = ARRAY_SIZE(bfin_twi0_resource), | ||
372 | .resource = bfin_twi0_resource, | ||
373 | }; | ||
374 | #endif | ||
375 | |||
328 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) | 376 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) |
329 | static struct platform_device bfin_sport0_uart_device = { | 377 | static struct platform_device bfin_sport0_uart_device = { |
330 | .name = "bfin-sport-uart", | 378 | .name = "bfin-sport-uart", |
@@ -393,6 +441,14 @@ static struct platform_device *cm_bf537_devices[] __initdata = { | |||
393 | &bfin_uart_device, | 441 | &bfin_uart_device, |
394 | #endif | 442 | #endif |
395 | 443 | ||
444 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
445 | &bfin_sir_device, | ||
446 | #endif | ||
447 | |||
448 | #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) | ||
449 | &i2c_bfin_twi_device, | ||
450 | #endif | ||
451 | |||
396 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) | 452 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) |
397 | &bfin_sport0_uart_device, | 453 | &bfin_sport0_uart_device, |
398 | &bfin_sport1_uart_device, | 454 | &bfin_sport1_uart_device, |
@@ -425,7 +481,7 @@ static struct platform_device *cm_bf537_devices[] __initdata = { | |||
425 | 481 | ||
426 | static int __init cm_bf537_init(void) | 482 | static int __init cm_bf537_init(void) |
427 | { | 483 | { |
428 | printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); | 484 | printk(KERN_INFO "%s(): registering device resources\n", __func__); |
429 | platform_add_devices(cm_bf537_devices, ARRAY_SIZE(cm_bf537_devices)); | 485 | platform_add_devices(cm_bf537_devices, ARRAY_SIZE(cm_bf537_devices)); |
430 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | 486 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) |
431 | spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); | 487 | spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); |
diff --git a/arch/blackfin/mach-bf537/boards/generic_board.c b/arch/blackfin/mach-bf537/boards/generic_board.c index c95395ba7bfa..7d250828dad8 100644 --- a/arch/blackfin/mach-bf537/boards/generic_board.c +++ b/arch/blackfin/mach-bf537/boards/generic_board.c | |||
@@ -90,7 +90,7 @@ int __init bfin_isp1761_init(void) | |||
90 | { | 90 | { |
91 | unsigned int num_devices = ARRAY_SIZE(bfin_isp1761_devices); | 91 | unsigned int num_devices = ARRAY_SIZE(bfin_isp1761_devices); |
92 | 92 | ||
93 | printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); | 93 | printk(KERN_INFO "%s(): registering device resources\n", __func__); |
94 | set_irq_type(ISP1761_IRQ, IRQF_TRIGGER_FALLING); | 94 | set_irq_type(ISP1761_IRQ, IRQF_TRIGGER_FALLING); |
95 | 95 | ||
96 | return platform_add_devices(bfin_isp1761_devices, num_devices); | 96 | return platform_add_devices(bfin_isp1761_devices, num_devices); |
@@ -554,6 +554,32 @@ static struct platform_device bfin_uart_device = { | |||
554 | }; | 554 | }; |
555 | #endif | 555 | #endif |
556 | 556 | ||
557 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
558 | static struct resource bfin_sir_resources[] = { | ||
559 | #ifdef CONFIG_BFIN_SIR0 | ||
560 | { | ||
561 | .start = 0xFFC00400, | ||
562 | .end = 0xFFC004FF, | ||
563 | .flags = IORESOURCE_MEM, | ||
564 | }, | ||
565 | #endif | ||
566 | #ifdef CONFIG_BFIN_SIR1 | ||
567 | { | ||
568 | .start = 0xFFC02000, | ||
569 | .end = 0xFFC020FF, | ||
570 | .flags = IORESOURCE_MEM, | ||
571 | }, | ||
572 | #endif | ||
573 | }; | ||
574 | |||
575 | static struct platform_device bfin_sir_device = { | ||
576 | .name = "bfin_sir", | ||
577 | .id = 0, | ||
578 | .num_resources = ARRAY_SIZE(bfin_sir_resources), | ||
579 | .resource = bfin_sir_resources, | ||
580 | }; | ||
581 | #endif | ||
582 | |||
557 | #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) | 583 | #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) |
558 | static struct resource bfin_twi0_resource[] = { | 584 | static struct resource bfin_twi0_resource[] = { |
559 | [0] = { | 585 | [0] = { |
@@ -674,6 +700,10 @@ static struct platform_device *stamp_devices[] __initdata = { | |||
674 | &bfin_uart_device, | 700 | &bfin_uart_device, |
675 | #endif | 701 | #endif |
676 | 702 | ||
703 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
704 | &bfin_sir_device, | ||
705 | #endif | ||
706 | |||
677 | #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) | 707 | #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) |
678 | &i2c_bfin_twi_device, | 708 | &i2c_bfin_twi_device, |
679 | #endif | 709 | #endif |
@@ -690,7 +720,7 @@ static struct platform_device *stamp_devices[] __initdata = { | |||
690 | 720 | ||
691 | static int __init stamp_init(void) | 721 | static int __init stamp_init(void) |
692 | { | 722 | { |
693 | printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); | 723 | printk(KERN_INFO "%s(): registering device resources\n", __func__); |
694 | platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); | 724 | platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); |
695 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | 725 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) |
696 | spi_register_board_info(bfin_spi_board_info, | 726 | spi_register_board_info(bfin_spi_board_info, |
diff --git a/arch/blackfin/mach-bf537/boards/minotaur.c b/arch/blackfin/mach-bf537/boards/minotaur.c index d71e0be33921..18ddf7a52005 100644 --- a/arch/blackfin/mach-bf537/boards/minotaur.c +++ b/arch/blackfin/mach-bf537/boards/minotaur.c | |||
@@ -8,12 +8,12 @@ | |||
8 | #include <linux/spi/spi.h> | 8 | #include <linux/spi/spi.h> |
9 | #include <linux/spi/flash.h> | 9 | #include <linux/spi/flash.h> |
10 | #if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) | 10 | #if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) |
11 | #include <linux/usb_isp1362.h> | 11 | #include <linux/usb/isp1362.h> |
12 | #endif | 12 | #endif |
13 | #include <linux/ata_platform.h> | 13 | #include <linux/ata_platform.h> |
14 | #include <linux/irq.h> | 14 | #include <linux/irq.h> |
15 | #include <linux/interrupt.h> | 15 | #include <linux/interrupt.h> |
16 | #include <linux/usb_sl811.h> | 16 | #include <linux/usb/sl811.h> |
17 | #include <asm/dma.h> | 17 | #include <asm/dma.h> |
18 | #include <asm/bfin5xx_spi.h> | 18 | #include <asm/bfin5xx_spi.h> |
19 | #include <asm/reboot.h> | 19 | #include <asm/reboot.h> |
@@ -225,6 +225,32 @@ static struct platform_device bfin_uart_device = { | |||
225 | }; | 225 | }; |
226 | #endif | 226 | #endif |
227 | 227 | ||
228 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
229 | static struct resource bfin_sir_resources[] = { | ||
230 | #ifdef CONFIG_BFIN_SIR0 | ||
231 | { | ||
232 | .start = 0xFFC00400, | ||
233 | .end = 0xFFC004FF, | ||
234 | .flags = IORESOURCE_MEM, | ||
235 | }, | ||
236 | #endif | ||
237 | #ifdef CONFIG_BFIN_SIR1 | ||
238 | { | ||
239 | .start = 0xFFC02000, | ||
240 | .end = 0xFFC020FF, | ||
241 | .flags = IORESOURCE_MEM, | ||
242 | }, | ||
243 | #endif | ||
244 | }; | ||
245 | |||
246 | static struct platform_device bfin_sir_device = { | ||
247 | .name = "bfin_sir", | ||
248 | .id = 0, | ||
249 | .num_resources = ARRAY_SIZE(bfin_sir_resources), | ||
250 | .resource = bfin_sir_resources, | ||
251 | }; | ||
252 | #endif | ||
253 | |||
228 | #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) | 254 | #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) |
229 | static struct resource bfin_twi0_resource[] = { | 255 | static struct resource bfin_twi0_resource[] = { |
230 | [0] = { | 256 | [0] = { |
@@ -284,6 +310,10 @@ static struct platform_device *minotaur_devices[] __initdata = { | |||
284 | &bfin_uart_device, | 310 | &bfin_uart_device, |
285 | #endif | 311 | #endif |
286 | 312 | ||
313 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
314 | &bfin_sir_device, | ||
315 | #endif | ||
316 | |||
287 | #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) | 317 | #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) |
288 | &i2c_bfin_twi_device, | 318 | &i2c_bfin_twi_device, |
289 | #endif | 319 | #endif |
@@ -297,7 +327,7 @@ static struct platform_device *minotaur_devices[] __initdata = { | |||
297 | 327 | ||
298 | static int __init minotaur_init(void) | 328 | static int __init minotaur_init(void) |
299 | { | 329 | { |
300 | printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); | 330 | printk(KERN_INFO "%s(): registering device resources\n", __func__); |
301 | platform_add_devices(minotaur_devices, ARRAY_SIZE(minotaur_devices)); | 331 | platform_add_devices(minotaur_devices, ARRAY_SIZE(minotaur_devices)); |
302 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | 332 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) |
303 | spi_register_board_info(bfin_spi_board_info, | 333 | spi_register_board_info(bfin_spi_board_info, |
diff --git a/arch/blackfin/mach-bf537/boards/pnav10.c b/arch/blackfin/mach-bf537/boards/pnav10.c index 509a8a236fd0..51c3bab14a69 100644 --- a/arch/blackfin/mach-bf537/boards/pnav10.c +++ b/arch/blackfin/mach-bf537/boards/pnav10.c | |||
@@ -452,6 +452,31 @@ static struct platform_device bfin_uart_device = { | |||
452 | }; | 452 | }; |
453 | #endif | 453 | #endif |
454 | 454 | ||
455 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
456 | static struct resource bfin_sir_resources[] = { | ||
457 | #ifdef CONFIG_BFIN_SIR0 | ||
458 | { | ||
459 | .start = 0xFFC00400, | ||
460 | .end = 0xFFC004FF, | ||
461 | .flags = IORESOURCE_MEM, | ||
462 | }, | ||
463 | #endif | ||
464 | #ifdef CONFIG_BFIN_SIR1 | ||
465 | { | ||
466 | .start = 0xFFC02000, | ||
467 | .end = 0xFFC020FF, | ||
468 | .flags = IORESOURCE_MEM, | ||
469 | }, | ||
470 | #endif | ||
471 | }; | ||
472 | |||
473 | static struct platform_device bfin_sir_device = { | ||
474 | .name = "bfin_sir", | ||
475 | .id = 0, | ||
476 | .num_resources = ARRAY_SIZE(bfin_sir_resources), | ||
477 | .resource = bfin_sir_resources, | ||
478 | }; | ||
479 | #endif | ||
455 | 480 | ||
456 | static struct platform_device *stamp_devices[] __initdata = { | 481 | static struct platform_device *stamp_devices[] __initdata = { |
457 | #if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE) | 482 | #if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE) |
@@ -493,11 +518,15 @@ static struct platform_device *stamp_devices[] __initdata = { | |||
493 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) | 518 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) |
494 | &bfin_uart_device, | 519 | &bfin_uart_device, |
495 | #endif | 520 | #endif |
521 | |||
522 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
523 | &bfin_sir_device, | ||
524 | #endif | ||
496 | }; | 525 | }; |
497 | 526 | ||
498 | static int __init stamp_init(void) | 527 | static int __init stamp_init(void) |
499 | { | 528 | { |
500 | printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); | 529 | printk(KERN_INFO "%s(): registering device resources\n", __func__); |
501 | platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); | 530 | platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); |
502 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | 531 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) |
503 | spi_register_board_info(bfin_spi_board_info, | 532 | spi_register_board_info(bfin_spi_board_info, |
diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c index ea83148993da..0cec14b1ef5c 100644 --- a/arch/blackfin/mach-bf537/boards/stamp.c +++ b/arch/blackfin/mach-bf537/boards/stamp.c | |||
@@ -41,6 +41,7 @@ | |||
41 | #include <linux/ata_platform.h> | 41 | #include <linux/ata_platform.h> |
42 | #include <linux/irq.h> | 42 | #include <linux/irq.h> |
43 | #include <linux/interrupt.h> | 43 | #include <linux/interrupt.h> |
44 | #include <linux/i2c.h> | ||
44 | #include <linux/usb/sl811.h> | 45 | #include <linux/usb/sl811.h> |
45 | #include <asm/dma.h> | 46 | #include <asm/dma.h> |
46 | #include <asm/bfin5xx_spi.h> | 47 | #include <asm/bfin5xx_spi.h> |
@@ -90,7 +91,7 @@ int __init bfin_isp1761_init(void) | |||
90 | { | 91 | { |
91 | unsigned int num_devices = ARRAY_SIZE(bfin_isp1761_devices); | 92 | unsigned int num_devices = ARRAY_SIZE(bfin_isp1761_devices); |
92 | 93 | ||
93 | printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); | 94 | printk(KERN_INFO "%s(): registering device resources\n", __func__); |
94 | set_irq_type(ISP1761_IRQ, IRQF_TRIGGER_FALLING); | 95 | set_irq_type(ISP1761_IRQ, IRQF_TRIGGER_FALLING); |
95 | 96 | ||
96 | return platform_add_devices(bfin_isp1761_devices, num_devices); | 97 | return platform_add_devices(bfin_isp1761_devices, num_devices); |
@@ -353,6 +354,7 @@ static struct platform_device net2272_bfin_device = { | |||
353 | }; | 354 | }; |
354 | #endif | 355 | #endif |
355 | 356 | ||
357 | #if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE) | ||
356 | static struct mtd_partition stamp_partitions[] = { | 358 | static struct mtd_partition stamp_partitions[] = { |
357 | { | 359 | { |
358 | .name = "Bootloader", | 360 | .name = "Bootloader", |
@@ -395,6 +397,7 @@ static struct platform_device stamp_flash_device = { | |||
395 | .num_resources = 1, | 397 | .num_resources = 1, |
396 | .resource = &stamp_flash_resource, | 398 | .resource = &stamp_flash_resource, |
397 | }; | 399 | }; |
400 | #endif | ||
398 | 401 | ||
399 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | 402 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) |
400 | /* all SPI peripherals info goes here */ | 403 | /* all SPI peripherals info goes here */ |
@@ -500,6 +503,15 @@ static struct bfin5xx_spi_chip spidev_chip_info = { | |||
500 | }; | 503 | }; |
501 | #endif | 504 | #endif |
502 | 505 | ||
506 | #if defined(CONFIG_MTD_DATAFLASH) \ | ||
507 | || defined(CONFIG_MTD_DATAFLASH_MODULE) | ||
508 | /* DataFlash chip */ | ||
509 | static struct bfin5xx_spi_chip data_flash_chip_info = { | ||
510 | .enable_dma = 0, /* use dma transfer with this chip*/ | ||
511 | .bits_per_word = 8, | ||
512 | }; | ||
513 | #endif | ||
514 | |||
503 | static struct spi_board_info bfin_spi_board_info[] __initdata = { | 515 | static struct spi_board_info bfin_spi_board_info[] __initdata = { |
504 | #if defined(CONFIG_MTD_M25P80) \ | 516 | #if defined(CONFIG_MTD_M25P80) \ |
505 | || defined(CONFIG_MTD_M25P80_MODULE) | 517 | || defined(CONFIG_MTD_M25P80_MODULE) |
@@ -514,7 +526,17 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = { | |||
514 | .mode = SPI_MODE_3, | 526 | .mode = SPI_MODE_3, |
515 | }, | 527 | }, |
516 | #endif | 528 | #endif |
517 | 529 | #if defined(CONFIG_MTD_DATAFLASH) \ | |
530 | || defined(CONFIG_MTD_DATAFLASH_MODULE) | ||
531 | { /* DataFlash chip */ | ||
532 | .modalias = "mtd_dataflash", | ||
533 | .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ | ||
534 | .bus_num = 0, /* Framework bus number */ | ||
535 | .chip_select = 1, /* Framework chip select. On STAMP537 it is SPISSEL1*/ | ||
536 | .controller_data = &data_flash_chip_info, | ||
537 | .mode = SPI_MODE_3, | ||
538 | }, | ||
539 | #endif | ||
518 | #if defined(CONFIG_SPI_ADC_BF533) \ | 540 | #if defined(CONFIG_SPI_ADC_BF533) \ |
519 | || defined(CONFIG_SPI_ADC_BF533_MODULE) | 541 | || defined(CONFIG_SPI_ADC_BF533_MODULE) |
520 | { | 542 | { |
@@ -676,6 +698,32 @@ static struct platform_device bfin_uart_device = { | |||
676 | }; | 698 | }; |
677 | #endif | 699 | #endif |
678 | 700 | ||
701 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
702 | static struct resource bfin_sir_resources[] = { | ||
703 | #ifdef CONFIG_BFIN_SIR0 | ||
704 | { | ||
705 | .start = 0xFFC00400, | ||
706 | .end = 0xFFC004FF, | ||
707 | .flags = IORESOURCE_MEM, | ||
708 | }, | ||
709 | #endif | ||
710 | #ifdef CONFIG_BFIN_SIR1 | ||
711 | { | ||
712 | .start = 0xFFC02000, | ||
713 | .end = 0xFFC020FF, | ||
714 | .flags = IORESOURCE_MEM, | ||
715 | }, | ||
716 | #endif | ||
717 | }; | ||
718 | |||
719 | static struct platform_device bfin_sir_device = { | ||
720 | .name = "bfin_sir", | ||
721 | .id = 0, | ||
722 | .num_resources = ARRAY_SIZE(bfin_sir_resources), | ||
723 | .resource = bfin_sir_resources, | ||
724 | }; | ||
725 | #endif | ||
726 | |||
679 | #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) | 727 | #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) |
680 | static struct resource bfin_twi0_resource[] = { | 728 | static struct resource bfin_twi0_resource[] = { |
681 | [0] = { | 729 | [0] = { |
@@ -698,6 +746,31 @@ static struct platform_device i2c_bfin_twi_device = { | |||
698 | }; | 746 | }; |
699 | #endif | 747 | #endif |
700 | 748 | ||
749 | #ifdef CONFIG_I2C_BOARDINFO | ||
750 | static struct i2c_board_info __initdata bfin_i2c_board_info[] = { | ||
751 | #if defined(CONFIG_JOYSTICK_AD7142) || defined(CONFIG_JOYSTICK_AD7142_MODULE) | ||
752 | { | ||
753 | I2C_BOARD_INFO("ad7142_joystick", 0x2C), | ||
754 | .type = "ad7142_joystick", | ||
755 | .irq = 55, | ||
756 | }, | ||
757 | #endif | ||
758 | #if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE) | ||
759 | { | ||
760 | I2C_BOARD_INFO("pcf8574_lcd", 0x22), | ||
761 | .type = "pcf8574_lcd", | ||
762 | }, | ||
763 | #endif | ||
764 | #if defined(CONFIG_TWI_KEYPAD) || defined(CONFIG_TWI_KEYPAD_MODULE) | ||
765 | { | ||
766 | I2C_BOARD_INFO("pcf8574_keypad", 0x27), | ||
767 | .type = "pcf8574_keypad", | ||
768 | .irq = 72, | ||
769 | }, | ||
770 | #endif | ||
771 | }; | ||
772 | #endif | ||
773 | |||
701 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) | 774 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) |
702 | static struct platform_device bfin_sport0_uart_device = { | 775 | static struct platform_device bfin_sport0_uart_device = { |
703 | .name = "bfin-sport-uart", | 776 | .name = "bfin-sport-uart", |
@@ -800,6 +873,10 @@ static struct platform_device *stamp_devices[] __initdata = { | |||
800 | &bfin_uart_device, | 873 | &bfin_uart_device, |
801 | #endif | 874 | #endif |
802 | 875 | ||
876 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
877 | &bfin_sir_device, | ||
878 | #endif | ||
879 | |||
803 | #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) | 880 | #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) |
804 | &i2c_bfin_twi_device, | 881 | &i2c_bfin_twi_device, |
805 | #endif | 882 | #endif |
@@ -818,12 +895,21 @@ static struct platform_device *stamp_devices[] __initdata = { | |||
818 | #endif | 895 | #endif |
819 | 896 | ||
820 | &bfin_gpios_device, | 897 | &bfin_gpios_device, |
898 | |||
899 | #if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE) | ||
821 | &stamp_flash_device, | 900 | &stamp_flash_device, |
901 | #endif | ||
822 | }; | 902 | }; |
823 | 903 | ||
824 | static int __init stamp_init(void) | 904 | static int __init stamp_init(void) |
825 | { | 905 | { |
826 | printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); | 906 | printk(KERN_INFO "%s(): registering device resources\n", __func__); |
907 | |||
908 | #ifdef CONFIG_I2C_BOARDINFO | ||
909 | i2c_register_board_info(0, bfin_i2c_board_info, | ||
910 | ARRAY_SIZE(bfin_i2c_board_info)); | ||
911 | #endif | ||
912 | |||
827 | platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); | 913 | platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); |
828 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | 914 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) |
829 | spi_register_board_info(bfin_spi_board_info, | 915 | spi_register_board_info(bfin_spi_board_info, |
@@ -833,6 +919,7 @@ static int __init stamp_init(void) | |||
833 | #if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) | 919 | #if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) |
834 | irq_desc[PATA_INT].status |= IRQ_NOAUTOEN; | 920 | irq_desc[PATA_INT].status |= IRQ_NOAUTOEN; |
835 | #endif | 921 | #endif |
922 | |||
836 | return 0; | 923 | return 0; |
837 | } | 924 | } |
838 | 925 | ||
diff --git a/arch/blackfin/mach-bf537/cpu.c b/arch/blackfin/mach-bf537/cpu.c deleted file mode 100644 index 0442c4c7f723..000000000000 --- a/arch/blackfin/mach-bf537/cpu.c +++ /dev/null | |||
@@ -1,159 +0,0 @@ | |||
1 | /* | ||
2 | * File: arch/blackfin/mach-bf537/cpu.c | ||
3 | * Based on: | ||
4 | * Author: michael.kang@analog.com | ||
5 | * | ||
6 | * Created: | ||
7 | * Description: clock scaling for the bf537 | ||
8 | * | ||
9 | * Modified: | ||
10 | * Copyright 2004-2006 Analog Devices Inc. | ||
11 | * | ||
12 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | ||
13 | * | ||
14 | * This program is free software; you can redistribute it and/or modify | ||
15 | * it under the terms of the GNU General Public License as published by | ||
16 | * the Free Software Foundation; either version 2 of the License, or | ||
17 | * (at your option) any later version. | ||
18 | * | ||
19 | * This program is distributed in the hope that it will be useful, | ||
20 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
21 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
22 | * GNU General Public License for more details. | ||
23 | * | ||
24 | * You should have received a copy of the GNU General Public License | ||
25 | * along with this program; if not, see the file COPYING, or write | ||
26 | * to the Free Software Foundation, Inc., | ||
27 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
28 | */ | ||
29 | |||
30 | #include <linux/kernel.h> | ||
31 | #include <linux/types.h> | ||
32 | #include <linux/init.h> | ||
33 | #include <linux/cpufreq.h> | ||
34 | #include <asm/dpmc.h> | ||
35 | #include <linux/fs.h> | ||
36 | #include <asm/bfin-global.h> | ||
37 | |||
38 | /* CONFIG_CLKIN_HZ=11059200 */ | ||
39 | #define VCO5 (CONFIG_CLKIN_HZ*45) /*497664000 */ | ||
40 | #define VCO4 (CONFIG_CLKIN_HZ*36) /*398131200 */ | ||
41 | #define VCO3 (CONFIG_CLKIN_HZ*27) /*298598400 */ | ||
42 | #define VCO2 (CONFIG_CLKIN_HZ*18) /*199065600 */ | ||
43 | #define VCO1 (CONFIG_CLKIN_HZ*9) /*99532800 */ | ||
44 | #define VCO(x) VCO##x | ||
45 | |||
46 | #define MFREQ(x) {VCO(x),VCO(x)/4},{VCO(x),VCO(x)/2},{VCO(x),VCO(x)} | ||
47 | /* frequency */ | ||
48 | static struct cpufreq_frequency_table bf537_freq_table[] = { | ||
49 | MFREQ(1), | ||
50 | MFREQ(3), | ||
51 | {VCO4, VCO4 / 2}, {VCO4, VCO4}, | ||
52 | MFREQ(5), | ||
53 | {0, CPUFREQ_TABLE_END}, | ||
54 | }; | ||
55 | |||
56 | /* | ||
57 | * dpmc_fops->ioctl() | ||
58 | * static int dpmc_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) | ||
59 | */ | ||
60 | static int bf537_getfreq(unsigned int cpu) | ||
61 | { | ||
62 | unsigned long cclk_mhz; | ||
63 | |||
64 | /* The driver only support single cpu */ | ||
65 | if (cpu == 0) | ||
66 | dpmc_fops.ioctl(NULL, NULL, IOCTL_GET_CORECLOCK, &cclk_mhz); | ||
67 | else | ||
68 | cclk_mhz = -1; | ||
69 | |||
70 | return cclk_mhz; | ||
71 | } | ||
72 | |||
73 | static int bf537_target(struct cpufreq_policy *policy, | ||
74 | unsigned int target_freq, unsigned int relation) | ||
75 | { | ||
76 | unsigned long cclk_mhz; | ||
77 | unsigned long vco_mhz; | ||
78 | unsigned long flags; | ||
79 | unsigned int index; | ||
80 | struct cpufreq_freqs freqs; | ||
81 | |||
82 | if (cpufreq_frequency_table_target(policy, bf537_freq_table, target_freq, relation, &index)) | ||
83 | return -EINVAL; | ||
84 | |||
85 | cclk_mhz = bf537_freq_table[index].frequency; | ||
86 | vco_mhz = bf537_freq_table[index].index; | ||
87 | |||
88 | dpmc_fops.ioctl(NULL, NULL, IOCTL_CHANGE_FREQUENCY, &vco_mhz); | ||
89 | freqs.old = bf537_getfreq(0); | ||
90 | freqs.new = cclk_mhz; | ||
91 | freqs.cpu = 0; | ||
92 | |||
93 | pr_debug("cclk begin change to cclk %d,vco=%d,index=%d,target=%d,oldfreq=%d\n", | ||
94 | cclk_mhz, vco_mhz, index, target_freq, freqs.old); | ||
95 | |||
96 | cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); | ||
97 | local_irq_save(flags); | ||
98 | dpmc_fops.ioctl(NULL, NULL, IOCTL_SET_CCLK, &cclk_mhz); | ||
99 | local_irq_restore(flags); | ||
100 | cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); | ||
101 | |||
102 | vco_mhz = get_vco(); | ||
103 | cclk_mhz = get_cclk(); | ||
104 | return 0; | ||
105 | } | ||
106 | |||
107 | /* make sure that only the "userspace" governor is run -- anything else wouldn't make sense on | ||
108 | * this platform, anyway. | ||
109 | */ | ||
110 | static int bf537_verify_speed(struct cpufreq_policy *policy) | ||
111 | { | ||
112 | return cpufreq_frequency_table_verify(policy, &bf537_freq_table); | ||
113 | } | ||
114 | |||
115 | static int __init __bf537_cpu_init(struct cpufreq_policy *policy) | ||
116 | { | ||
117 | if (policy->cpu != 0) | ||
118 | return -EINVAL; | ||
119 | |||
120 | policy->governor = CPUFREQ_DEFAULT_GOVERNOR; | ||
121 | |||
122 | policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL; | ||
123 | /*Now ,only support one cpu */ | ||
124 | policy->cur = bf537_getfreq(0); | ||
125 | cpufreq_frequency_table_get_attr(bf537_freq_table, policy->cpu); | ||
126 | return cpufreq_frequency_table_cpuinfo(policy, bf537_freq_table); | ||
127 | } | ||
128 | |||
129 | static struct freq_attr *bf537_freq_attr[] = { | ||
130 | &cpufreq_freq_attr_scaling_available_freqs, | ||
131 | NULL, | ||
132 | }; | ||
133 | |||
134 | static struct cpufreq_driver bf537_driver = { | ||
135 | .verify = bf537_verify_speed, | ||
136 | .target = bf537_target, | ||
137 | .get = bf537_getfreq, | ||
138 | .init = __bf537_cpu_init, | ||
139 | .name = "bf537", | ||
140 | .owner = THIS_MODULE, | ||
141 | .attr = bf537_freq_attr, | ||
142 | }; | ||
143 | |||
144 | static int __init bf537_cpu_init(void) | ||
145 | { | ||
146 | return cpufreq_register_driver(&bf537_driver); | ||
147 | } | ||
148 | |||
149 | static void __exit bf537_cpu_exit(void) | ||
150 | { | ||
151 | cpufreq_unregister_driver(&bf537_driver); | ||
152 | } | ||
153 | |||
154 | MODULE_AUTHOR("Mickael Kang"); | ||
155 | MODULE_DESCRIPTION("cpufreq driver for BF537 CPU"); | ||
156 | MODULE_LICENSE("GPL"); | ||
157 | |||
158 | module_init(bf537_cpu_init); | ||
159 | module_exit(bf537_cpu_exit); | ||
diff --git a/arch/blackfin/mach-bf537/dma.c b/arch/blackfin/mach-bf537/dma.c index 706cb97b0265..4edb363ff99c 100644 --- a/arch/blackfin/mach-bf537/dma.c +++ b/arch/blackfin/mach-bf537/dma.c | |||
@@ -26,10 +26,12 @@ | |||
26 | * to the Free Software Foundation, Inc., | 26 | * to the Free Software Foundation, Inc., |
27 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | 27 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
28 | */ | 28 | */ |
29 | #include <linux/module.h> | ||
30 | |||
29 | #include <asm/blackfin.h> | 31 | #include <asm/blackfin.h> |
30 | #include <asm/dma.h> | 32 | #include <asm/dma.h> |
31 | 33 | ||
32 | struct dma_register *base_addr[MAX_BLACKFIN_DMA_CHANNEL] = { | 34 | struct dma_register *dma_io_base_addr[MAX_BLACKFIN_DMA_CHANNEL] = { |
33 | (struct dma_register *) DMA0_NEXT_DESC_PTR, | 35 | (struct dma_register *) DMA0_NEXT_DESC_PTR, |
34 | (struct dma_register *) DMA1_NEXT_DESC_PTR, | 36 | (struct dma_register *) DMA1_NEXT_DESC_PTR, |
35 | (struct dma_register *) DMA2_NEXT_DESC_PTR, | 37 | (struct dma_register *) DMA2_NEXT_DESC_PTR, |
@@ -47,6 +49,7 @@ struct dma_register *base_addr[MAX_BLACKFIN_DMA_CHANNEL] = { | |||
47 | (struct dma_register *) MDMA_D1_NEXT_DESC_PTR, | 49 | (struct dma_register *) MDMA_D1_NEXT_DESC_PTR, |
48 | (struct dma_register *) MDMA_S1_NEXT_DESC_PTR, | 50 | (struct dma_register *) MDMA_S1_NEXT_DESC_PTR, |
49 | }; | 51 | }; |
52 | EXPORT_SYMBOL(dma_io_base_addr); | ||
50 | 53 | ||
51 | int channel2irq(unsigned int channel) | 54 | int channel2irq(unsigned int channel) |
52 | { | 55 | { |
diff --git a/arch/blackfin/mach-bf537/head.S b/arch/blackfin/mach-bf537/head.S index 3014fe8dd155..48cd58a410a0 100644 --- a/arch/blackfin/mach-bf537/head.S +++ b/arch/blackfin/mach-bf537/head.S | |||
@@ -37,9 +37,6 @@ | |||
37 | #include <asm/mach/mem_init.h> | 37 | #include <asm/mach/mem_init.h> |
38 | #endif | 38 | #endif |
39 | 39 | ||
40 | .global __rambase | ||
41 | .global __ramstart | ||
42 | .global __ramend | ||
43 | .extern ___bss_stop | 40 | .extern ___bss_stop |
44 | .extern ___bss_start | 41 | .extern ___bss_start |
45 | .extern _bf53x_relocate_l1_mem | 42 | .extern _bf53x_relocate_l1_mem |
@@ -180,40 +177,28 @@ ENTRY(__start) | |||
180 | SSYNC; | 177 | SSYNC; |
181 | #endif | 178 | #endif |
182 | 179 | ||
183 | #ifdef CONFIG_BF537_PORT_H | ||
184 | p0.h = hi(PORTH_FER); | ||
185 | p0.l = lo(PORTH_FER); | ||
186 | R0.L = W[P0]; /* Read */ | ||
187 | SSYNC; | ||
188 | R0 = 0x0000; | ||
189 | W[P0] = R0.L; /* Write */ | ||
190 | SSYNC; | ||
191 | W[P0] = R0.L; /* Disable peripheral function of PORTH */ | ||
192 | SSYNC; | ||
193 | #endif | ||
194 | |||
195 | /* Initialise UART - when booting from u-boot, the UART is not disabled | 180 | /* Initialise UART - when booting from u-boot, the UART is not disabled |
196 | * so if we dont initalize here, our serial console gets hosed */ | 181 | * so if we dont initalize here, our serial console gets hosed */ |
197 | p0.h = hi(UART_LCR); | 182 | p0.h = hi(BFIN_UART_LCR); |
198 | p0.l = lo(UART_LCR); | 183 | p0.l = lo(BFIN_UART_LCR); |
199 | r0 = 0x0(Z); | 184 | r0 = 0x0(Z); |
200 | w[p0] = r0.L; /* To enable DLL writes */ | 185 | w[p0] = r0.L; /* To enable DLL writes */ |
201 | ssync; | 186 | ssync; |
202 | 187 | ||
203 | p0.h = hi(UART_DLL); | 188 | p0.h = hi(BFIN_UART_DLL); |
204 | p0.l = lo(UART_DLL); | 189 | p0.l = lo(BFIN_UART_DLL); |
205 | r0 = 0x0(Z); | 190 | r0 = 0x0(Z); |
206 | w[p0] = r0.L; | 191 | w[p0] = r0.L; |
207 | ssync; | 192 | ssync; |
208 | 193 | ||
209 | p0.h = hi(UART_DLH); | 194 | p0.h = hi(BFIN_UART_DLH); |
210 | p0.l = lo(UART_DLH); | 195 | p0.l = lo(BFIN_UART_DLH); |
211 | r0 = 0x00(Z); | 196 | r0 = 0x00(Z); |
212 | w[p0] = r0.L; | 197 | w[p0] = r0.L; |
213 | ssync; | 198 | ssync; |
214 | 199 | ||
215 | p0.h = hi(UART_GCTL); | 200 | p0.h = hi(BFIN_UART_GCTL); |
216 | p0.l = lo(UART_GCTL); | 201 | p0.l = lo(BFIN_UART_GCTL); |
217 | r0 = 0x0(Z); | 202 | r0 = 0x0(Z); |
218 | w[p0] = r0.L; /* To enable UART clock */ | 203 | w[p0] = r0.L; /* To enable UART clock */ |
219 | ssync; | 204 | ssync; |
@@ -483,18 +468,3 @@ ENTRY(_start_dma_code) | |||
483 | RTS; | 468 | RTS; |
484 | ENDPROC(_start_dma_code) | 469 | ENDPROC(_start_dma_code) |
485 | #endif /* CONFIG_BFIN_KERNEL_CLOCK */ | 470 | #endif /* CONFIG_BFIN_KERNEL_CLOCK */ |
486 | |||
487 | .data | ||
488 | |||
489 | /* | ||
490 | * Set up the usable of RAM stuff. Size of RAM is determined then | ||
491 | * an initial stack set up at the end. | ||
492 | */ | ||
493 | |||
494 | .align 4 | ||
495 | __rambase: | ||
496 | .long 0 | ||
497 | __ramstart: | ||
498 | .long 0 | ||
499 | __ramend: | ||
500 | .long 0 | ||
diff --git a/arch/blackfin/mach-bf548/Makefile b/arch/blackfin/mach-bf548/Makefile index 7e7c9c8ac5b2..68e5478e95a9 100644 --- a/arch/blackfin/mach-bf548/Makefile +++ b/arch/blackfin/mach-bf548/Makefile | |||
@@ -5,5 +5,3 @@ | |||
5 | extra-y := head.o | 5 | extra-y := head.o |
6 | 6 | ||
7 | obj-y := ints-priority.o dma.o | 7 | obj-y := ints-priority.o dma.o |
8 | |||
9 | obj-$(CONFIG_CPU_FREQ) += cpu.o | ||
diff --git a/arch/blackfin/mach-bf548/boards/Kconfig b/arch/blackfin/mach-bf548/boards/Kconfig index 057129064037..d38e52671853 100644 --- a/arch/blackfin/mach-bf548/boards/Kconfig +++ b/arch/blackfin/mach-bf548/boards/Kconfig | |||
@@ -8,5 +8,11 @@ config BFIN548_EZKIT | |||
8 | bool "BF548-EZKIT" | 8 | bool "BF548-EZKIT" |
9 | help | 9 | help |
10 | BFIN548-EZKIT board support. | 10 | BFIN548-EZKIT board support. |
11 | |||
12 | config BFIN548_BLUETECHNIX_CM | ||
13 | bool "Bluetechnix CM-BF548" | ||
14 | depends on (BF548) | ||
15 | help | ||
16 | CM-BF548 support for DEV-Board. | ||
11 | 17 | ||
12 | endchoice | 18 | endchoice |
diff --git a/arch/blackfin/mach-bf548/boards/Makefile b/arch/blackfin/mach-bf548/boards/Makefile index a444cc739578..eed161dd7845 100644 --- a/arch/blackfin/mach-bf548/boards/Makefile +++ b/arch/blackfin/mach-bf548/boards/Makefile | |||
@@ -3,3 +3,4 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | obj-$(CONFIG_BFIN548_EZKIT) += ezkit.o led.o | 5 | obj-$(CONFIG_BFIN548_EZKIT) += ezkit.o led.o |
6 | obj-$(CONFIG_BFIN548_BLUETECHNIX_CM) += cm_bf548.o | ||
diff --git a/arch/blackfin/mach-bf548/boards/cm_bf548.c b/arch/blackfin/mach-bf548/boards/cm_bf548.c new file mode 100644 index 000000000000..e3e8479fffb5 --- /dev/null +++ b/arch/blackfin/mach-bf548/boards/cm_bf548.c | |||
@@ -0,0 +1,664 @@ | |||
1 | /* | ||
2 | * File: arch/blackfin/mach-bf548/boards/cm_bf548.c | ||
3 | * Based on: arch/blackfin/mach-bf537/boards/ezkit.c | ||
4 | * Author: Aidan Williams <aidan@nicta.com.au> | ||
5 | * | ||
6 | * Created: | ||
7 | * Description: | ||
8 | * | ||
9 | * Modified: | ||
10 | * Copyright 2005 National ICT Australia (NICTA) | ||
11 | * Copyright 2004-2008 Analog Devices Inc. | ||
12 | * | ||
13 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | ||
14 | * | ||
15 | * This program is free software; you can redistribute it and/or modify | ||
16 | * it under the terms of the GNU General Public License as published by | ||
17 | * the Free Software Foundation; either version 2 of the License, or | ||
18 | * (at your option) any later version. | ||
19 | * | ||
20 | * This program is distributed in the hope that it will be useful, | ||
21 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
22 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
23 | * GNU General Public License for more details. | ||
24 | * | ||
25 | * You should have received a copy of the GNU General Public License | ||
26 | * along with this program; if not, see the file COPYING, or write | ||
27 | * to the Free Software Foundation, Inc., | ||
28 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
29 | */ | ||
30 | |||
31 | #include <linux/device.h> | ||
32 | #include <linux/platform_device.h> | ||
33 | #include <linux/mtd/mtd.h> | ||
34 | #include <linux/mtd/partitions.h> | ||
35 | #include <linux/spi/spi.h> | ||
36 | #include <linux/spi/flash.h> | ||
37 | #include <linux/irq.h> | ||
38 | #include <linux/interrupt.h> | ||
39 | #include <linux/usb/musb.h> | ||
40 | #include <asm/bfin5xx_spi.h> | ||
41 | #include <asm/cplb.h> | ||
42 | #include <asm/dma.h> | ||
43 | #include <asm/gpio.h> | ||
44 | #include <asm/nand.h> | ||
45 | #include <asm/portmux.h> | ||
46 | #include <asm/mach/bf54x_keys.h> | ||
47 | #include <linux/input.h> | ||
48 | #include <linux/spi/ad7877.h> | ||
49 | |||
50 | /* | ||
51 | * Name the Board for the /proc/cpuinfo | ||
52 | */ | ||
53 | const char bfin_board_name[] = "Bluetechnix CM-BF548"; | ||
54 | |||
55 | /* | ||
56 | * Driver needs to know address, irq and flag pin. | ||
57 | */ | ||
58 | |||
59 | #if defined(CONFIG_FB_BF54X_LQ043) || defined(CONFIG_FB_BF54X_LQ043_MODULE) | ||
60 | |||
61 | #include <asm/mach/bf54x-lq043.h> | ||
62 | |||
63 | static struct bfin_bf54xfb_mach_info bf54x_lq043_data = { | ||
64 | .width = 480, | ||
65 | .height = 272, | ||
66 | .xres = {480, 480, 480}, | ||
67 | .yres = {272, 272, 272}, | ||
68 | .bpp = {24, 24, 24}, | ||
69 | .disp = GPIO_PE3, | ||
70 | }; | ||
71 | |||
72 | static struct resource bf54x_lq043_resources[] = { | ||
73 | { | ||
74 | .start = IRQ_EPPI0_ERR, | ||
75 | .end = IRQ_EPPI0_ERR, | ||
76 | .flags = IORESOURCE_IRQ, | ||
77 | }, | ||
78 | }; | ||
79 | |||
80 | static struct platform_device bf54x_lq043_device = { | ||
81 | .name = "bf54x-lq043", | ||
82 | .id = -1, | ||
83 | .num_resources = ARRAY_SIZE(bf54x_lq043_resources), | ||
84 | .resource = bf54x_lq043_resources, | ||
85 | .dev = { | ||
86 | .platform_data = &bf54x_lq043_data, | ||
87 | }, | ||
88 | }; | ||
89 | #endif | ||
90 | |||
91 | #if defined(CONFIG_KEYBOARD_BFIN) || defined(CONFIG_KEYBOARD_BFIN_MODULE) | ||
92 | static unsigned int bf548_keymap[] = { | ||
93 | KEYVAL(0, 0, KEY_ENTER), | ||
94 | KEYVAL(0, 1, KEY_HELP), | ||
95 | KEYVAL(0, 2, KEY_0), | ||
96 | KEYVAL(0, 3, KEY_BACKSPACE), | ||
97 | KEYVAL(1, 0, KEY_TAB), | ||
98 | KEYVAL(1, 1, KEY_9), | ||
99 | KEYVAL(1, 2, KEY_8), | ||
100 | KEYVAL(1, 3, KEY_7), | ||
101 | KEYVAL(2, 0, KEY_DOWN), | ||
102 | KEYVAL(2, 1, KEY_6), | ||
103 | KEYVAL(2, 2, KEY_5), | ||
104 | KEYVAL(2, 3, KEY_4), | ||
105 | KEYVAL(3, 0, KEY_UP), | ||
106 | KEYVAL(3, 1, KEY_3), | ||
107 | KEYVAL(3, 2, KEY_2), | ||
108 | KEYVAL(3, 3, KEY_1), | ||
109 | }; | ||
110 | |||
111 | static struct bfin_kpad_platform_data bf54x_kpad_data = { | ||
112 | .rows = 4, | ||
113 | .cols = 4, | ||
114 | .keymap = bf548_keymap, | ||
115 | .keymapsize = ARRAY_SIZE(bf548_keymap), | ||
116 | .repeat = 0, | ||
117 | .debounce_time = 5000, /* ns (5ms) */ | ||
118 | .coldrive_time = 1000, /* ns (1ms) */ | ||
119 | .keyup_test_interval = 50, /* ms (50ms) */ | ||
120 | }; | ||
121 | |||
122 | static struct resource bf54x_kpad_resources[] = { | ||
123 | { | ||
124 | .start = IRQ_KEY, | ||
125 | .end = IRQ_KEY, | ||
126 | .flags = IORESOURCE_IRQ, | ||
127 | }, | ||
128 | }; | ||
129 | |||
130 | static struct platform_device bf54x_kpad_device = { | ||
131 | .name = "bf54x-keys", | ||
132 | .id = -1, | ||
133 | .num_resources = ARRAY_SIZE(bf54x_kpad_resources), | ||
134 | .resource = bf54x_kpad_resources, | ||
135 | .dev = { | ||
136 | .platform_data = &bf54x_kpad_data, | ||
137 | }, | ||
138 | }; | ||
139 | #endif | ||
140 | |||
141 | #if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) | ||
142 | static struct platform_device rtc_device = { | ||
143 | .name = "rtc-bfin", | ||
144 | .id = -1, | ||
145 | }; | ||
146 | #endif | ||
147 | |||
148 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) | ||
149 | static struct resource bfin_uart_resources[] = { | ||
150 | #ifdef CONFIG_SERIAL_BFIN_UART0 | ||
151 | { | ||
152 | .start = 0xFFC00400, | ||
153 | .end = 0xFFC004FF, | ||
154 | .flags = IORESOURCE_MEM, | ||
155 | }, | ||
156 | #endif | ||
157 | #ifdef CONFIG_SERIAL_BFIN_UART1 | ||
158 | { | ||
159 | .start = 0xFFC02000, | ||
160 | .end = 0xFFC020FF, | ||
161 | .flags = IORESOURCE_MEM, | ||
162 | }, | ||
163 | #endif | ||
164 | #ifdef CONFIG_SERIAL_BFIN_UART2 | ||
165 | { | ||
166 | .start = 0xFFC02100, | ||
167 | .end = 0xFFC021FF, | ||
168 | .flags = IORESOURCE_MEM, | ||
169 | }, | ||
170 | #endif | ||
171 | #ifdef CONFIG_SERIAL_BFIN_UART3 | ||
172 | { | ||
173 | .start = 0xFFC03100, | ||
174 | .end = 0xFFC031FF, | ||
175 | }, | ||
176 | #endif | ||
177 | }; | ||
178 | |||
179 | static struct platform_device bfin_uart_device = { | ||
180 | .name = "bfin-uart", | ||
181 | .id = 1, | ||
182 | .num_resources = ARRAY_SIZE(bfin_uart_resources), | ||
183 | .resource = bfin_uart_resources, | ||
184 | }; | ||
185 | #endif | ||
186 | |||
187 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
188 | static struct resource bfin_sir_resources[] = { | ||
189 | #ifdef CONFIG_BFIN_SIR0 | ||
190 | { | ||
191 | .start = 0xFFC00400, | ||
192 | .end = 0xFFC004FF, | ||
193 | .flags = IORESOURCE_MEM, | ||
194 | }, | ||
195 | #endif | ||
196 | #ifdef CONFIG_BFIN_SIR1 | ||
197 | { | ||
198 | .start = 0xFFC02000, | ||
199 | .end = 0xFFC020FF, | ||
200 | .flags = IORESOURCE_MEM, | ||
201 | }, | ||
202 | #endif | ||
203 | #ifdef CONFIG_BFIN_SIR2 | ||
204 | { | ||
205 | .start = 0xFFC02100, | ||
206 | .end = 0xFFC021FF, | ||
207 | .flags = IORESOURCE_MEM, | ||
208 | }, | ||
209 | #endif | ||
210 | #ifdef CONFIG_BFIN_SIR3 | ||
211 | { | ||
212 | .start = 0xFFC03100, | ||
213 | .end = 0xFFC031FF, | ||
214 | .flags = IORESOURCE_MEM, | ||
215 | }, | ||
216 | #endif | ||
217 | }; | ||
218 | |||
219 | static struct platform_device bfin_sir_device = { | ||
220 | .name = "bfin_sir", | ||
221 | .id = 0, | ||
222 | .num_resources = ARRAY_SIZE(bfin_sir_resources), | ||
223 | .resource = bfin_sir_resources, | ||
224 | }; | ||
225 | #endif | ||
226 | |||
227 | #if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE) | ||
228 | static struct resource smsc911x_resources[] = { | ||
229 | { | ||
230 | .name = "smsc911x-memory", | ||
231 | .start = 0x24000000, | ||
232 | .end = 0x24000000 + 0xFF, | ||
233 | .flags = IORESOURCE_MEM, | ||
234 | }, | ||
235 | { | ||
236 | .start = IRQ_PE6, | ||
237 | .end = IRQ_PE6, | ||
238 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL, | ||
239 | }, | ||
240 | }; | ||
241 | static struct platform_device smsc911x_device = { | ||
242 | .name = "smsc911x", | ||
243 | .id = 0, | ||
244 | .num_resources = ARRAY_SIZE(smsc911x_resources), | ||
245 | .resource = smsc911x_resources, | ||
246 | }; | ||
247 | #endif | ||
248 | |||
249 | #if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE) | ||
250 | static struct resource musb_resources[] = { | ||
251 | [0] = { | ||
252 | .start = 0xFFC03C00, | ||
253 | .end = 0xFFC040FF, | ||
254 | .flags = IORESOURCE_MEM, | ||
255 | }, | ||
256 | [1] = { /* general IRQ */ | ||
257 | .start = IRQ_USB_INT0, | ||
258 | .end = IRQ_USB_INT0, | ||
259 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, | ||
260 | }, | ||
261 | [2] = { /* DMA IRQ */ | ||
262 | .start = IRQ_USB_DMA, | ||
263 | .end = IRQ_USB_DMA, | ||
264 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, | ||
265 | }, | ||
266 | }; | ||
267 | |||
268 | static struct musb_hdrc_platform_data musb_plat = { | ||
269 | #if defined(CONFIG_USB_MUSB_OTG) | ||
270 | .mode = MUSB_OTG, | ||
271 | #elif defined(CONFIG_USB_MUSB_HDRC_HCD) | ||
272 | .mode = MUSB_HOST, | ||
273 | #elif defined(CONFIG_USB_GADGET_MUSB_HDRC) | ||
274 | .mode = MUSB_PERIPHERAL, | ||
275 | #endif | ||
276 | .multipoint = 0, | ||
277 | }; | ||
278 | |||
279 | static u64 musb_dmamask = ~(u32)0; | ||
280 | |||
281 | static struct platform_device musb_device = { | ||
282 | .name = "musb_hdrc", | ||
283 | .id = 0, | ||
284 | .dev = { | ||
285 | .dma_mask = &musb_dmamask, | ||
286 | .coherent_dma_mask = 0xffffffff, | ||
287 | .platform_data = &musb_plat, | ||
288 | }, | ||
289 | .num_resources = ARRAY_SIZE(musb_resources), | ||
290 | .resource = musb_resources, | ||
291 | }; | ||
292 | #endif | ||
293 | |||
294 | #if defined(CONFIG_PATA_BF54X) || defined(CONFIG_PATA_BF54X_MODULE) | ||
295 | static struct resource bfin_atapi_resources[] = { | ||
296 | { | ||
297 | .start = 0xFFC03800, | ||
298 | .end = 0xFFC0386F, | ||
299 | .flags = IORESOURCE_MEM, | ||
300 | }, | ||
301 | { | ||
302 | .start = IRQ_ATAPI_ERR, | ||
303 | .end = IRQ_ATAPI_ERR, | ||
304 | .flags = IORESOURCE_IRQ, | ||
305 | }, | ||
306 | }; | ||
307 | |||
308 | static struct platform_device bfin_atapi_device = { | ||
309 | .name = "pata-bf54x", | ||
310 | .id = -1, | ||
311 | .num_resources = ARRAY_SIZE(bfin_atapi_resources), | ||
312 | .resource = bfin_atapi_resources, | ||
313 | }; | ||
314 | #endif | ||
315 | |||
316 | #if defined(CONFIG_MTD_NAND_BF5XX) || defined(CONFIG_MTD_NAND_BF5XX_MODULE) | ||
317 | static struct mtd_partition partition_info[] = { | ||
318 | { | ||
319 | .name = "Linux Kernel", | ||
320 | .offset = 0, | ||
321 | .size = 4 * SIZE_1M, | ||
322 | }, | ||
323 | { | ||
324 | .name = "File System", | ||
325 | .offset = 4 * SIZE_1M, | ||
326 | .size = (256 - 4) * SIZE_1M, | ||
327 | }, | ||
328 | }; | ||
329 | |||
330 | static struct bf5xx_nand_platform bf5xx_nand_platform = { | ||
331 | .page_size = NFC_PG_SIZE_256, | ||
332 | .data_width = NFC_NWIDTH_8, | ||
333 | .partitions = partition_info, | ||
334 | .nr_partitions = ARRAY_SIZE(partition_info), | ||
335 | .rd_dly = 3, | ||
336 | .wr_dly = 3, | ||
337 | }; | ||
338 | |||
339 | static struct resource bf5xx_nand_resources[] = { | ||
340 | { | ||
341 | .start = 0xFFC03B00, | ||
342 | .end = 0xFFC03B4F, | ||
343 | .flags = IORESOURCE_MEM, | ||
344 | }, | ||
345 | { | ||
346 | .start = CH_NFC, | ||
347 | .end = CH_NFC, | ||
348 | .flags = IORESOURCE_IRQ, | ||
349 | }, | ||
350 | }; | ||
351 | |||
352 | static struct platform_device bf5xx_nand_device = { | ||
353 | .name = "bf5xx-nand", | ||
354 | .id = 0, | ||
355 | .num_resources = ARRAY_SIZE(bf5xx_nand_resources), | ||
356 | .resource = bf5xx_nand_resources, | ||
357 | .dev = { | ||
358 | .platform_data = &bf5xx_nand_platform, | ||
359 | }, | ||
360 | }; | ||
361 | #endif | ||
362 | |||
363 | #if defined(CONFIG_SDH_BFIN) || defined(CONFIG_SDH_BFIN_MODULE) | ||
364 | static struct platform_device bf54x_sdh_device = { | ||
365 | .name = "bfin-sdh", | ||
366 | .id = 0, | ||
367 | }; | ||
368 | #endif | ||
369 | |||
370 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | ||
371 | /* all SPI peripherals info goes here */ | ||
372 | #if defined(CONFIG_MTD_M25P80) \ | ||
373 | || defined(CONFIG_MTD_M25P80_MODULE) | ||
374 | /* SPI flash chip (m25p16) */ | ||
375 | static struct mtd_partition bfin_spi_flash_partitions[] = { | ||
376 | { | ||
377 | .name = "bootloader", | ||
378 | .size = 0x00040000, | ||
379 | .offset = 0, | ||
380 | .mask_flags = MTD_CAP_ROM | ||
381 | }, { | ||
382 | .name = "linux kernel", | ||
383 | .size = 0x1c0000, | ||
384 | .offset = 0x40000 | ||
385 | } | ||
386 | }; | ||
387 | |||
388 | static struct flash_platform_data bfin_spi_flash_data = { | ||
389 | .name = "m25p80", | ||
390 | .parts = bfin_spi_flash_partitions, | ||
391 | .nr_parts = ARRAY_SIZE(bfin_spi_flash_partitions), | ||
392 | .type = "m25p16", | ||
393 | }; | ||
394 | |||
395 | static struct bfin5xx_spi_chip spi_flash_chip_info = { | ||
396 | .enable_dma = 0, /* use dma transfer with this chip*/ | ||
397 | .bits_per_word = 8, | ||
398 | .cs_change_per_word = 0, | ||
399 | }; | ||
400 | #endif | ||
401 | |||
402 | #if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) | ||
403 | static struct bfin5xx_spi_chip spi_ad7877_chip_info = { | ||
404 | .cs_change_per_word = 0, | ||
405 | .enable_dma = 0, | ||
406 | .bits_per_word = 16, | ||
407 | }; | ||
408 | |||
409 | static const struct ad7877_platform_data bfin_ad7877_ts_info = { | ||
410 | .model = 7877, | ||
411 | .vref_delay_usecs = 50, /* internal, no capacitor */ | ||
412 | .x_plate_ohms = 419, | ||
413 | .y_plate_ohms = 486, | ||
414 | .pressure_max = 1000, | ||
415 | .pressure_min = 0, | ||
416 | .stopacq_polarity = 1, | ||
417 | .first_conversion_delay = 3, | ||
418 | .acquisition_time = 1, | ||
419 | .averaging = 1, | ||
420 | .pen_down_acc_interval = 1, | ||
421 | }; | ||
422 | #endif | ||
423 | |||
424 | #if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE) | ||
425 | static struct bfin5xx_spi_chip spidev_chip_info = { | ||
426 | .enable_dma = 0, | ||
427 | .bits_per_word = 8, | ||
428 | }; | ||
429 | #endif | ||
430 | |||
431 | static struct spi_board_info bf54x_spi_board_info[] __initdata = { | ||
432 | #if defined(CONFIG_MTD_M25P80) \ | ||
433 | || defined(CONFIG_MTD_M25P80_MODULE) | ||
434 | { | ||
435 | /* the modalias must be the same as spi device driver name */ | ||
436 | .modalias = "m25p80", /* Name of spi_driver for this device */ | ||
437 | .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ | ||
438 | .bus_num = 0, /* Framework bus number */ | ||
439 | .chip_select = 1, /* SPI_SSEL1*/ | ||
440 | .platform_data = &bfin_spi_flash_data, | ||
441 | .controller_data = &spi_flash_chip_info, | ||
442 | .mode = SPI_MODE_3, | ||
443 | }, | ||
444 | #endif | ||
445 | #if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) | ||
446 | { | ||
447 | .modalias = "ad7877", | ||
448 | .platform_data = &bfin_ad7877_ts_info, | ||
449 | .irq = IRQ_PJ11, | ||
450 | .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */ | ||
451 | .bus_num = 0, | ||
452 | .chip_select = 2, | ||
453 | .controller_data = &spi_ad7877_chip_info, | ||
454 | }, | ||
455 | #endif | ||
456 | #if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE) | ||
457 | { | ||
458 | .modalias = "spidev", | ||
459 | .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ | ||
460 | .bus_num = 0, | ||
461 | .chip_select = 1, | ||
462 | .controller_data = &spidev_chip_info, | ||
463 | }, | ||
464 | #endif | ||
465 | }; | ||
466 | |||
467 | /* SPI (0) */ | ||
468 | static struct resource bfin_spi0_resource[] = { | ||
469 | [0] = { | ||
470 | .start = SPI0_REGBASE, | ||
471 | .end = SPI0_REGBASE + 0xFF, | ||
472 | .flags = IORESOURCE_MEM, | ||
473 | }, | ||
474 | [1] = { | ||
475 | .start = CH_SPI0, | ||
476 | .end = CH_SPI0, | ||
477 | .flags = IORESOURCE_IRQ, | ||
478 | } | ||
479 | }; | ||
480 | |||
481 | /* SPI (1) */ | ||
482 | static struct resource bfin_spi1_resource[] = { | ||
483 | [0] = { | ||
484 | .start = SPI1_REGBASE, | ||
485 | .end = SPI1_REGBASE + 0xFF, | ||
486 | .flags = IORESOURCE_MEM, | ||
487 | }, | ||
488 | [1] = { | ||
489 | .start = CH_SPI1, | ||
490 | .end = CH_SPI1, | ||
491 | .flags = IORESOURCE_IRQ, | ||
492 | } | ||
493 | }; | ||
494 | |||
495 | /* SPI controller data */ | ||
496 | static struct bfin5xx_spi_master bf54x_spi_master_info0 = { | ||
497 | .num_chipselect = 8, | ||
498 | .enable_dma = 1, /* master has the ability to do dma transfer */ | ||
499 | .pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0}, | ||
500 | }; | ||
501 | |||
502 | static struct platform_device bf54x_spi_master0 = { | ||
503 | .name = "bfin-spi", | ||
504 | .id = 0, /* Bus number */ | ||
505 | .num_resources = ARRAY_SIZE(bfin_spi0_resource), | ||
506 | .resource = bfin_spi0_resource, | ||
507 | .dev = { | ||
508 | .platform_data = &bf54x_spi_master_info0, /* Passed to driver */ | ||
509 | }, | ||
510 | }; | ||
511 | |||
512 | static struct bfin5xx_spi_master bf54x_spi_master_info1 = { | ||
513 | .num_chipselect = 8, | ||
514 | .enable_dma = 1, /* master has the ability to do dma transfer */ | ||
515 | .pin_req = {P_SPI1_SCK, P_SPI1_MISO, P_SPI1_MOSI, 0}, | ||
516 | }; | ||
517 | |||
518 | static struct platform_device bf54x_spi_master1 = { | ||
519 | .name = "bfin-spi", | ||
520 | .id = 1, /* Bus number */ | ||
521 | .num_resources = ARRAY_SIZE(bfin_spi1_resource), | ||
522 | .resource = bfin_spi1_resource, | ||
523 | .dev = { | ||
524 | .platform_data = &bf54x_spi_master_info1, /* Passed to driver */ | ||
525 | }, | ||
526 | }; | ||
527 | #endif /* spi master and devices */ | ||
528 | |||
529 | #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) | ||
530 | static struct resource bfin_twi0_resource[] = { | ||
531 | [0] = { | ||
532 | .start = TWI0_REGBASE, | ||
533 | .end = TWI0_REGBASE + 0xFF, | ||
534 | .flags = IORESOURCE_MEM, | ||
535 | }, | ||
536 | [1] = { | ||
537 | .start = IRQ_TWI0, | ||
538 | .end = IRQ_TWI0, | ||
539 | .flags = IORESOURCE_IRQ, | ||
540 | }, | ||
541 | }; | ||
542 | |||
543 | static struct platform_device i2c_bfin_twi0_device = { | ||
544 | .name = "i2c-bfin-twi", | ||
545 | .id = 0, | ||
546 | .num_resources = ARRAY_SIZE(bfin_twi0_resource), | ||
547 | .resource = bfin_twi0_resource, | ||
548 | }; | ||
549 | |||
550 | #if !defined(CONFIG_BF542) /* The BF542 only has 1 TWI */ | ||
551 | static struct resource bfin_twi1_resource[] = { | ||
552 | [0] = { | ||
553 | .start = TWI1_REGBASE, | ||
554 | .end = TWI1_REGBASE + 0xFF, | ||
555 | .flags = IORESOURCE_MEM, | ||
556 | }, | ||
557 | [1] = { | ||
558 | .start = IRQ_TWI1, | ||
559 | .end = IRQ_TWI1, | ||
560 | .flags = IORESOURCE_IRQ, | ||
561 | }, | ||
562 | }; | ||
563 | |||
564 | static struct platform_device i2c_bfin_twi1_device = { | ||
565 | .name = "i2c-bfin-twi", | ||
566 | .id = 1, | ||
567 | .num_resources = ARRAY_SIZE(bfin_twi1_resource), | ||
568 | .resource = bfin_twi1_resource, | ||
569 | }; | ||
570 | #endif | ||
571 | #endif | ||
572 | |||
573 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) | ||
574 | #include <linux/gpio_keys.h> | ||
575 | |||
576 | static struct gpio_keys_button bfin_gpio_keys_table[] = { | ||
577 | {BTN_0, GPIO_PH7, 1, "gpio-keys: BTN0"}, | ||
578 | }; | ||
579 | |||
580 | static struct gpio_keys_platform_data bfin_gpio_keys_data = { | ||
581 | .buttons = bfin_gpio_keys_table, | ||
582 | .nbuttons = ARRAY_SIZE(bfin_gpio_keys_table), | ||
583 | }; | ||
584 | |||
585 | static struct platform_device bfin_device_gpiokeys = { | ||
586 | .name = "gpio-keys", | ||
587 | .dev = { | ||
588 | .platform_data = &bfin_gpio_keys_data, | ||
589 | }, | ||
590 | }; | ||
591 | #endif | ||
592 | |||
593 | static struct platform_device *cm_bf548_devices[] __initdata = { | ||
594 | #if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) | ||
595 | &rtc_device, | ||
596 | #endif | ||
597 | |||
598 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) | ||
599 | &bfin_uart_device, | ||
600 | #endif | ||
601 | |||
602 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
603 | &bfin_sir_device, | ||
604 | #endif | ||
605 | |||
606 | #if defined(CONFIG_FB_BF54X_LQ043) || defined(CONFIG_FB_BF54X_LQ043_MODULE) | ||
607 | &bf54x_lq043_device, | ||
608 | #endif | ||
609 | |||
610 | #if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE) | ||
611 | &smsc911x_device, | ||
612 | #endif | ||
613 | |||
614 | #if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE) | ||
615 | &musb_device, | ||
616 | #endif | ||
617 | |||
618 | #if defined(CONFIG_PATA_BF54X) || defined(CONFIG_PATA_BF54X_MODULE) | ||
619 | &bfin_atapi_device, | ||
620 | #endif | ||
621 | |||
622 | #if defined(CONFIG_MTD_NAND_BF5XX) || defined(CONFIG_MTD_NAND_BF5XX_MODULE) | ||
623 | &bf5xx_nand_device, | ||
624 | #endif | ||
625 | |||
626 | #if defined(CONFIG_SDH_BFIN) || defined(CONFIG_SDH_BFIN_MODULE) | ||
627 | &bf54x_sdh_device, | ||
628 | #endif | ||
629 | |||
630 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | ||
631 | &bf54x_spi_master0, | ||
632 | &bf54x_spi_master1, | ||
633 | #endif | ||
634 | |||
635 | #if defined(CONFIG_KEYBOARD_BFIN) || defined(CONFIG_KEYBOARD_BFIN_MODULE) | ||
636 | &bf54x_kpad_device, | ||
637 | #endif | ||
638 | |||
639 | #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) | ||
640 | /* &i2c_bfin_twi0_device, */ | ||
641 | #if !defined(CONFIG_BF542) | ||
642 | &i2c_bfin_twi1_device, | ||
643 | #endif | ||
644 | #endif | ||
645 | |||
646 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) | ||
647 | &bfin_device_gpiokeys, | ||
648 | #endif | ||
649 | }; | ||
650 | |||
651 | static int __init cm_bf548_init(void) | ||
652 | { | ||
653 | printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); | ||
654 | platform_add_devices(cm_bf548_devices, ARRAY_SIZE(cm_bf548_devices)); | ||
655 | |||
656 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | ||
657 | spi_register_board_info(bf54x_spi_board_info, | ||
658 | ARRAY_SIZE(bf54x_spi_board_info)); | ||
659 | #endif | ||
660 | |||
661 | return 0; | ||
662 | } | ||
663 | |||
664 | arch_initcall(cm_bf548_init); | ||
diff --git a/arch/blackfin/mach-bf548/boards/ezkit.c b/arch/blackfin/mach-bf548/boards/ezkit.c index 40846aa034c4..231dfbd3bc1f 100644 --- a/arch/blackfin/mach-bf548/boards/ezkit.c +++ b/arch/blackfin/mach-bf548/boards/ezkit.c | |||
@@ -36,6 +36,7 @@ | |||
36 | #include <linux/spi/spi.h> | 36 | #include <linux/spi/spi.h> |
37 | #include <linux/spi/flash.h> | 37 | #include <linux/spi/flash.h> |
38 | #include <linux/irq.h> | 38 | #include <linux/irq.h> |
39 | #include <linux/i2c.h> | ||
39 | #include <linux/interrupt.h> | 40 | #include <linux/interrupt.h> |
40 | #if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE) | 41 | #if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE) |
41 | #include <linux/usb/musb.h> | 42 | #include <linux/usb/musb.h> |
@@ -187,6 +188,46 @@ static struct platform_device bfin_uart_device = { | |||
187 | }; | 188 | }; |
188 | #endif | 189 | #endif |
189 | 190 | ||
191 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
192 | static struct resource bfin_sir_resources[] = { | ||
193 | #ifdef CONFIG_BFIN_SIR0 | ||
194 | { | ||
195 | .start = 0xFFC00400, | ||
196 | .end = 0xFFC004FF, | ||
197 | .flags = IORESOURCE_MEM, | ||
198 | }, | ||
199 | #endif | ||
200 | #ifdef CONFIG_BFIN_SIR1 | ||
201 | { | ||
202 | .start = 0xFFC02000, | ||
203 | .end = 0xFFC020FF, | ||
204 | .flags = IORESOURCE_MEM, | ||
205 | }, | ||
206 | #endif | ||
207 | #ifdef CONFIG_BFIN_SIR2 | ||
208 | { | ||
209 | .start = 0xFFC02100, | ||
210 | .end = 0xFFC021FF, | ||
211 | .flags = IORESOURCE_MEM, | ||
212 | }, | ||
213 | #endif | ||
214 | #ifdef CONFIG_BFIN_SIR3 | ||
215 | { | ||
216 | .start = 0xFFC03100, | ||
217 | .end = 0xFFC031FF, | ||
218 | .flags = IORESOURCE_MEM, | ||
219 | }, | ||
220 | #endif | ||
221 | }; | ||
222 | |||
223 | static struct platform_device bfin_sir_device = { | ||
224 | .name = "bfin_sir", | ||
225 | .id = 0, | ||
226 | .num_resources = ARRAY_SIZE(bfin_sir_resources), | ||
227 | .resource = bfin_sir_resources, | ||
228 | }; | ||
229 | #endif | ||
230 | |||
190 | #if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE) | 231 | #if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE) |
191 | static struct resource smsc911x_resources[] = { | 232 | static struct resource smsc911x_resources[] = { |
192 | { | 233 | { |
@@ -330,6 +371,7 @@ static struct platform_device bf54x_sdh_device = { | |||
330 | }; | 371 | }; |
331 | #endif | 372 | #endif |
332 | 373 | ||
374 | #if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE) | ||
333 | static struct mtd_partition ezkit_partitions[] = { | 375 | static struct mtd_partition ezkit_partitions[] = { |
334 | { | 376 | { |
335 | .name = "Bootloader", | 377 | .name = "Bootloader", |
@@ -337,7 +379,7 @@ static struct mtd_partition ezkit_partitions[] = { | |||
337 | .offset = 0, | 379 | .offset = 0, |
338 | }, { | 380 | }, { |
339 | .name = "Kernel", | 381 | .name = "Kernel", |
340 | .size = 0xE0000, | 382 | .size = 0x1C0000, |
341 | .offset = MTDPART_OFS_APPEND, | 383 | .offset = MTDPART_OFS_APPEND, |
342 | }, { | 384 | }, { |
343 | .name = "RootFS", | 385 | .name = "RootFS", |
@@ -367,6 +409,7 @@ static struct platform_device ezkit_flash_device = { | |||
367 | .num_resources = 1, | 409 | .num_resources = 1, |
368 | .resource = &ezkit_flash_resource, | 410 | .resource = &ezkit_flash_resource, |
369 | }; | 411 | }; |
412 | #endif | ||
370 | 413 | ||
371 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | 414 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) |
372 | /* all SPI peripherals info goes here */ | 415 | /* all SPI peripherals info goes here */ |
@@ -400,6 +443,14 @@ static struct bfin5xx_spi_chip spi_flash_chip_info = { | |||
400 | }; | 443 | }; |
401 | #endif | 444 | #endif |
402 | 445 | ||
446 | #if defined(CONFIG_SND_BLACKFIN_AD1836) \ | ||
447 | || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) | ||
448 | static struct bfin5xx_spi_chip ad1836_spi_chip_info = { | ||
449 | .enable_dma = 0, | ||
450 | .bits_per_word = 16, | ||
451 | }; | ||
452 | #endif | ||
453 | |||
403 | #if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) | 454 | #if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) |
404 | static struct bfin5xx_spi_chip spi_ad7877_chip_info = { | 455 | static struct bfin5xx_spi_chip spi_ad7877_chip_info = { |
405 | .cs_change_per_word = 0, | 456 | .cs_change_per_word = 0, |
@@ -443,6 +494,16 @@ static struct spi_board_info bf54x_spi_board_info[] __initdata = { | |||
443 | .mode = SPI_MODE_3, | 494 | .mode = SPI_MODE_3, |
444 | }, | 495 | }, |
445 | #endif | 496 | #endif |
497 | #if defined(CONFIG_SND_BLACKFIN_AD1836) \ | ||
498 | || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) | ||
499 | { | ||
500 | .modalias = "ad1836-spi", | ||
501 | .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ | ||
502 | .bus_num = 1, | ||
503 | .chip_select = CONFIG_SND_BLACKFIN_SPI_PFBIT, | ||
504 | .controller_data = &ad1836_spi_chip_info, | ||
505 | }, | ||
506 | #endif | ||
446 | #if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) | 507 | #if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) |
447 | { | 508 | { |
448 | .modalias = "ad7877", | 509 | .modalias = "ad7877", |
@@ -571,6 +632,29 @@ static struct platform_device i2c_bfin_twi1_device = { | |||
571 | #endif | 632 | #endif |
572 | #endif | 633 | #endif |
573 | 634 | ||
635 | #ifdef CONFIG_I2C_BOARDINFO | ||
636 | static struct i2c_board_info __initdata bfin_i2c_board_info0[] = { | ||
637 | }; | ||
638 | |||
639 | #if !defined(CONFIG_BF542) /* The BF542 only has 1 TWI */ | ||
640 | static struct i2c_board_info __initdata bfin_i2c_board_info1[] = { | ||
641 | #if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE) | ||
642 | { | ||
643 | I2C_BOARD_INFO("pcf8574_lcd", 0x22), | ||
644 | .type = "pcf8574_lcd", | ||
645 | }, | ||
646 | #endif | ||
647 | #if defined(CONFIG_TWI_KEYPAD) || defined(CONFIG_TWI_KEYPAD_MODULE) | ||
648 | { | ||
649 | I2C_BOARD_INFO("pcf8574_keypad", 0x27), | ||
650 | .type = "pcf8574_keypad", | ||
651 | .irq = 212, | ||
652 | }, | ||
653 | #endif | ||
654 | }; | ||
655 | #endif | ||
656 | #endif | ||
657 | |||
574 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) | 658 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) |
575 | #include <linux/gpio_keys.h> | 659 | #include <linux/gpio_keys.h> |
576 | 660 | ||
@@ -616,6 +700,10 @@ static struct platform_device *ezkit_devices[] __initdata = { | |||
616 | &bfin_uart_device, | 700 | &bfin_uart_device, |
617 | #endif | 701 | #endif |
618 | 702 | ||
703 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
704 | &bfin_sir_device, | ||
705 | #endif | ||
706 | |||
619 | #if defined(CONFIG_FB_BF54X_LQ043) || defined(CONFIG_FB_BF54X_LQ043_MODULE) | 707 | #if defined(CONFIG_FB_BF54X_LQ043) || defined(CONFIG_FB_BF54X_LQ043_MODULE) |
620 | &bf54x_lq043_device, | 708 | &bf54x_lq043_device, |
621 | #endif | 709 | #endif |
@@ -661,12 +749,25 @@ static struct platform_device *ezkit_devices[] __initdata = { | |||
661 | #endif | 749 | #endif |
662 | 750 | ||
663 | &bfin_gpios_device, | 751 | &bfin_gpios_device, |
752 | |||
753 | #if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE) | ||
664 | &ezkit_flash_device, | 754 | &ezkit_flash_device, |
755 | #endif | ||
665 | }; | 756 | }; |
666 | 757 | ||
667 | static int __init ezkit_init(void) | 758 | static int __init ezkit_init(void) |
668 | { | 759 | { |
669 | printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); | 760 | printk(KERN_INFO "%s(): registering device resources\n", __func__); |
761 | |||
762 | #ifdef CONFIG_I2C_BOARDINFO | ||
763 | i2c_register_board_info(0, bfin_i2c_board_info0, | ||
764 | ARRAY_SIZE(bfin_i2c_board_info0)); | ||
765 | #if !defined(CONFIG_BF542) /* The BF542 only has 1 TWI */ | ||
766 | i2c_register_board_info(1, bfin_i2c_board_info1, | ||
767 | ARRAY_SIZE(bfin_i2c_board_info1)); | ||
768 | #endif | ||
769 | #endif | ||
770 | |||
670 | platform_add_devices(ezkit_devices, ARRAY_SIZE(ezkit_devices)); | 771 | platform_add_devices(ezkit_devices, ARRAY_SIZE(ezkit_devices)); |
671 | 772 | ||
672 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | 773 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) |
diff --git a/arch/blackfin/mach-bf548/cpu.c b/arch/blackfin/mach-bf548/cpu.c deleted file mode 100644 index 4298a3ccfbfc..000000000000 --- a/arch/blackfin/mach-bf548/cpu.c +++ /dev/null | |||
@@ -1,159 +0,0 @@ | |||
1 | /* | ||
2 | * File: arch/blackfin/mach-bf548/cpu.c | ||
3 | * Based on: | ||
4 | * Author: | ||
5 | * | ||
6 | * Created: | ||
7 | * Description: clock scaling for the bf54x | ||
8 | * | ||
9 | * Modified: | ||
10 | * Copyright 2004-2007 Analog Devices Inc. | ||
11 | * | ||
12 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | ||
13 | * | ||
14 | * This program is free software; you can redistribute it and/or modify | ||
15 | * it under the terms of the GNU General Public License as published by | ||
16 | * the Free Software Foundation; either version 2 of the License, or | ||
17 | * (at your option) any later version. | ||
18 | * | ||
19 | * This program is distributed in the hope that it will be useful, | ||
20 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
21 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
22 | * GNU General Public License for more details. | ||
23 | * | ||
24 | * You should have received a copy of the GNU General Public License | ||
25 | * along with this program; if not, see the file COPYING, or write | ||
26 | * to the Free Software Foundation, Inc., | ||
27 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
28 | */ | ||
29 | |||
30 | #include <linux/kernel.h> | ||
31 | #include <linux/types.h> | ||
32 | #include <linux/init.h> | ||
33 | #include <linux/cpufreq.h> | ||
34 | #include <asm/dpmc.h> | ||
35 | #include <linux/fs.h> | ||
36 | #include <asm/bfin-global.h> | ||
37 | |||
38 | /* CONFIG_CLKIN_HZ=25000000 */ | ||
39 | #define VCO5 (CONFIG_CLKIN_HZ*45) | ||
40 | #define VCO4 (CONFIG_CLKIN_HZ*36) | ||
41 | #define VCO3 (CONFIG_CLKIN_HZ*27) | ||
42 | #define VCO2 (CONFIG_CLKIN_HZ*18) | ||
43 | #define VCO1 (CONFIG_CLKIN_HZ*9) | ||
44 | #define VCO(x) VCO##x | ||
45 | |||
46 | #define MFREQ(x) {VCO(x),VCO(x)/4},{VCO(x),VCO(x)/2},{VCO(x),VCO(x)} | ||
47 | /* frequency */ | ||
48 | static struct cpufreq_frequency_table bf548_freq_table[] = { | ||
49 | MFREQ(1), | ||
50 | MFREQ(3), | ||
51 | {VCO4, VCO4 / 2}, {VCO4, VCO4}, | ||
52 | MFREQ(5), | ||
53 | {0, CPUFREQ_TABLE_END}, | ||
54 | }; | ||
55 | |||
56 | /* | ||
57 | * dpmc_fops->ioctl() | ||
58 | * static int dpmc_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) | ||
59 | */ | ||
60 | static int bf548_getfreq(unsigned int cpu) | ||
61 | { | ||
62 | unsigned long cclk_mhz; | ||
63 | |||
64 | /* The driver only support single cpu */ | ||
65 | if (cpu == 0) | ||
66 | dpmc_fops.ioctl(NULL, NULL, IOCTL_GET_CORECLOCK, &cclk_mhz); | ||
67 | else | ||
68 | cclk_mhz = -1; | ||
69 | |||
70 | return cclk_mhz; | ||
71 | } | ||
72 | |||
73 | static int bf548_target(struct cpufreq_policy *policy, | ||
74 | unsigned int target_freq, unsigned int relation) | ||
75 | { | ||
76 | unsigned long cclk_mhz; | ||
77 | unsigned long vco_mhz; | ||
78 | unsigned long flags; | ||
79 | unsigned int index; | ||
80 | struct cpufreq_freqs freqs; | ||
81 | |||
82 | if (cpufreq_frequency_table_target(policy, bf548_freq_table, target_freq, relation, &index)) | ||
83 | return -EINVAL; | ||
84 | |||
85 | cclk_mhz = bf548_freq_table[index].frequency; | ||
86 | vco_mhz = bf548_freq_table[index].index; | ||
87 | |||
88 | dpmc_fops.ioctl(NULL, NULL, IOCTL_CHANGE_FREQUENCY, &vco_mhz); | ||
89 | freqs.old = bf548_getfreq(0); | ||
90 | freqs.new = cclk_mhz; | ||
91 | freqs.cpu = 0; | ||
92 | |||
93 | pr_debug("cclk begin change to cclk %d,vco=%d,index=%d,target=%d,oldfreq=%d\n", | ||
94 | cclk_mhz, vco_mhz, index, target_freq, freqs.old); | ||
95 | |||
96 | cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); | ||
97 | local_irq_save(flags); | ||
98 | dpmc_fops.ioctl(NULL, NULL, IOCTL_SET_CCLK, &cclk_mhz); | ||
99 | local_irq_restore(flags); | ||
100 | cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); | ||
101 | |||
102 | vco_mhz = get_vco(); | ||
103 | cclk_mhz = get_cclk(); | ||
104 | return 0; | ||
105 | } | ||
106 | |||
107 | /* make sure that only the "userspace" governor is run -- anything else wouldn't make sense on | ||
108 | * this platform, anyway. | ||
109 | */ | ||
110 | static int bf548_verify_speed(struct cpufreq_policy *policy) | ||
111 | { | ||
112 | return cpufreq_frequency_table_verify(policy, &bf548_freq_table); | ||
113 | } | ||
114 | |||
115 | static int __init __bf548_cpu_init(struct cpufreq_policy *policy) | ||
116 | { | ||
117 | if (policy->cpu != 0) | ||
118 | return -EINVAL; | ||
119 | |||
120 | policy->governor = CPUFREQ_DEFAULT_GOVERNOR; | ||
121 | |||
122 | policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL; | ||
123 | /*Now ,only support one cpu */ | ||
124 | policy->cur = bf548_getfreq(0); | ||
125 | cpufreq_frequency_table_get_attr(bf548_freq_table, policy->cpu); | ||
126 | return cpufreq_frequency_table_cpuinfo(policy, bf548_freq_table); | ||
127 | } | ||
128 | |||
129 | static struct freq_attr *bf548_freq_attr[] = { | ||
130 | &cpufreq_freq_attr_scaling_available_freqs, | ||
131 | NULL, | ||
132 | }; | ||
133 | |||
134 | static struct cpufreq_driver bf548_driver = { | ||
135 | .verify = bf548_verify_speed, | ||
136 | .target = bf548_target, | ||
137 | .get = bf548_getfreq, | ||
138 | .init = __bf548_cpu_init, | ||
139 | .name = "bf548", | ||
140 | .owner = THIS_MODULE, | ||
141 | .attr = bf548_freq_attr, | ||
142 | }; | ||
143 | |||
144 | static int __init bf548_cpu_init(void) | ||
145 | { | ||
146 | return cpufreq_register_driver(&bf548_driver); | ||
147 | } | ||
148 | |||
149 | static void __exit bf548_cpu_exit(void) | ||
150 | { | ||
151 | cpufreq_unregister_driver(&bf548_driver); | ||
152 | } | ||
153 | |||
154 | MODULE_AUTHOR("Mickael Kang"); | ||
155 | MODULE_DESCRIPTION("cpufreq driver for BF548 CPU"); | ||
156 | MODULE_LICENSE("GPL"); | ||
157 | |||
158 | module_init(bf548_cpu_init); | ||
159 | module_exit(bf548_cpu_exit); | ||
diff --git a/arch/blackfin/mach-bf548/dma.c b/arch/blackfin/mach-bf548/dma.c index f5479298bb79..74730eb8ae1b 100644 --- a/arch/blackfin/mach-bf548/dma.c +++ b/arch/blackfin/mach-bf548/dma.c | |||
@@ -32,7 +32,7 @@ | |||
32 | #include <asm/blackfin.h> | 32 | #include <asm/blackfin.h> |
33 | #include <asm/dma.h> | 33 | #include <asm/dma.h> |
34 | 34 | ||
35 | struct dma_register *base_addr[MAX_BLACKFIN_DMA_CHANNEL] = { | 35 | struct dma_register *dma_io_base_addr[MAX_BLACKFIN_DMA_CHANNEL] = { |
36 | (struct dma_register *) DMA0_NEXT_DESC_PTR, | 36 | (struct dma_register *) DMA0_NEXT_DESC_PTR, |
37 | (struct dma_register *) DMA1_NEXT_DESC_PTR, | 37 | (struct dma_register *) DMA1_NEXT_DESC_PTR, |
38 | (struct dma_register *) DMA2_NEXT_DESC_PTR, | 38 | (struct dma_register *) DMA2_NEXT_DESC_PTR, |
@@ -66,7 +66,7 @@ | |||
66 | (struct dma_register *) MDMA_D3_NEXT_DESC_PTR, | 66 | (struct dma_register *) MDMA_D3_NEXT_DESC_PTR, |
67 | (struct dma_register *) MDMA_S3_NEXT_DESC_PTR, | 67 | (struct dma_register *) MDMA_S3_NEXT_DESC_PTR, |
68 | }; | 68 | }; |
69 | EXPORT_SYMBOL(base_addr); | 69 | EXPORT_SYMBOL(dma_io_base_addr); |
70 | 70 | ||
71 | int channel2irq(unsigned int channel) | 71 | int channel2irq(unsigned int channel) |
72 | { | 72 | { |
diff --git a/arch/blackfin/mach-bf548/head.S b/arch/blackfin/mach-bf548/head.S index 46222a75321a..f7191141a3ce 100644 --- a/arch/blackfin/mach-bf548/head.S +++ b/arch/blackfin/mach-bf548/head.S | |||
@@ -36,9 +36,6 @@ | |||
36 | #include <asm/mach/mem_init.h> | 36 | #include <asm/mach/mem_init.h> |
37 | #endif | 37 | #endif |
38 | 38 | ||
39 | .global __rambase | ||
40 | .global __ramstart | ||
41 | .global __ramend | ||
42 | .extern ___bss_stop | 39 | .extern ___bss_stop |
43 | .extern ___bss_start | 40 | .extern ___bss_start |
44 | .extern _bf53x_relocate_l1_mem | 41 | .extern _bf53x_relocate_l1_mem |
@@ -456,18 +453,3 @@ ENTRY(_start_dma_code) | |||
456 | RTS; | 453 | RTS; |
457 | ENDPROC(_start_dma_code) | 454 | ENDPROC(_start_dma_code) |
458 | #endif /* CONFIG_BFIN_KERNEL_CLOCK */ | 455 | #endif /* CONFIG_BFIN_KERNEL_CLOCK */ |
459 | |||
460 | .data | ||
461 | |||
462 | /* | ||
463 | * Set up the usable of RAM stuff. Size of RAM is determined then | ||
464 | * an initial stack set up at the end. | ||
465 | */ | ||
466 | |||
467 | .align 4 | ||
468 | __rambase: | ||
469 | .long 0 | ||
470 | __ramstart: | ||
471 | .long 0 | ||
472 | __ramend: | ||
473 | .long 0 | ||
diff --git a/arch/blackfin/mach-bf561/boards/cm_bf561.c b/arch/blackfin/mach-bf561/boards/cm_bf561.c index bf9e738a7c64..9fd580952fd8 100644 --- a/arch/blackfin/mach-bf561/boards/cm_bf561.c +++ b/arch/blackfin/mach-bf561/boards/cm_bf561.c | |||
@@ -283,6 +283,25 @@ static struct platform_device bfin_uart_device = { | |||
283 | }; | 283 | }; |
284 | #endif | 284 | #endif |
285 | 285 | ||
286 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
287 | static struct resource bfin_sir_resources[] = { | ||
288 | #ifdef CONFIG_BFIN_SIR0 | ||
289 | { | ||
290 | .start = 0xFFC00400, | ||
291 | .end = 0xFFC004FF, | ||
292 | .flags = IORESOURCE_MEM, | ||
293 | }, | ||
294 | #endif | ||
295 | }; | ||
296 | |||
297 | static struct platform_device bfin_sir_device = { | ||
298 | .name = "bfin_sir", | ||
299 | .id = 0, | ||
300 | .num_resources = ARRAY_SIZE(bfin_sir_resources), | ||
301 | .resource = bfin_sir_resources, | ||
302 | }; | ||
303 | #endif | ||
304 | |||
286 | #if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) | 305 | #if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) |
287 | #define PATA_INT 119 | 306 | #define PATA_INT 119 |
288 | 307 | ||
@@ -330,6 +349,10 @@ static struct platform_device *cm_bf561_devices[] __initdata = { | |||
330 | &bfin_uart_device, | 349 | &bfin_uart_device, |
331 | #endif | 350 | #endif |
332 | 351 | ||
352 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
353 | &bfin_sir_device, | ||
354 | #endif | ||
355 | |||
333 | #if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) | 356 | #if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) |
334 | &isp1362_hcd_device, | 357 | &isp1362_hcd_device, |
335 | #endif | 358 | #endif |
@@ -349,7 +372,7 @@ static struct platform_device *cm_bf561_devices[] __initdata = { | |||
349 | 372 | ||
350 | static int __init cm_bf561_init(void) | 373 | static int __init cm_bf561_init(void) |
351 | { | 374 | { |
352 | printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); | 375 | printk(KERN_INFO "%s(): registering device resources\n", __func__); |
353 | platform_add_devices(cm_bf561_devices, ARRAY_SIZE(cm_bf561_devices)); | 376 | platform_add_devices(cm_bf561_devices, ARRAY_SIZE(cm_bf561_devices)); |
354 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | 377 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) |
355 | spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); | 378 | spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); |
diff --git a/arch/blackfin/mach-bf561/boards/ezkit.c b/arch/blackfin/mach-bf561/boards/ezkit.c index d357f648d963..0d74b7d99209 100644 --- a/arch/blackfin/mach-bf561/boards/ezkit.c +++ b/arch/blackfin/mach-bf561/boards/ezkit.c | |||
@@ -78,7 +78,7 @@ int __init bfin_isp1761_init(void) | |||
78 | { | 78 | { |
79 | unsigned int num_devices = ARRAY_SIZE(bfin_isp1761_devices); | 79 | unsigned int num_devices = ARRAY_SIZE(bfin_isp1761_devices); |
80 | 80 | ||
81 | printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); | 81 | printk(KERN_INFO "%s(): registering device resources\n", __func__); |
82 | set_irq_type(ISP1761_IRQ, IRQF_TRIGGER_FALLING); | 82 | set_irq_type(ISP1761_IRQ, IRQF_TRIGGER_FALLING); |
83 | 83 | ||
84 | return platform_add_devices(bfin_isp1761_devices, num_devices); | 84 | return platform_add_devices(bfin_isp1761_devices, num_devices); |
@@ -220,6 +220,26 @@ static struct platform_device bfin_uart_device = { | |||
220 | }; | 220 | }; |
221 | #endif | 221 | #endif |
222 | 222 | ||
223 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
224 | static struct resource bfin_sir_resources[] = { | ||
225 | #ifdef CONFIG_BFIN_SIR0 | ||
226 | { | ||
227 | .start = 0xFFC00400, | ||
228 | .end = 0xFFC004FF, | ||
229 | .flags = IORESOURCE_MEM, | ||
230 | }, | ||
231 | #endif | ||
232 | }; | ||
233 | |||
234 | static struct platform_device bfin_sir_device = { | ||
235 | .name = "bfin_sir", | ||
236 | .id = 0, | ||
237 | .num_resources = ARRAY_SIZE(bfin_sir_resources), | ||
238 | .resource = bfin_sir_resources, | ||
239 | }; | ||
240 | #endif | ||
241 | |||
242 | #if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE) | ||
223 | static struct mtd_partition ezkit_partitions[] = { | 243 | static struct mtd_partition ezkit_partitions[] = { |
224 | { | 244 | { |
225 | .name = "Bootloader", | 245 | .name = "Bootloader", |
@@ -227,7 +247,7 @@ static struct mtd_partition ezkit_partitions[] = { | |||
227 | .offset = 0, | 247 | .offset = 0, |
228 | }, { | 248 | }, { |
229 | .name = "Kernel", | 249 | .name = "Kernel", |
230 | .size = 0xE0000, | 250 | .size = 0x1C0000, |
231 | .offset = MTDPART_OFS_APPEND, | 251 | .offset = MTDPART_OFS_APPEND, |
232 | }, { | 252 | }, { |
233 | .name = "RootFS", | 253 | .name = "RootFS", |
@@ -257,6 +277,7 @@ static struct platform_device ezkit_flash_device = { | |||
257 | .num_resources = 1, | 277 | .num_resources = 1, |
258 | .resource = &ezkit_flash_resource, | 278 | .resource = &ezkit_flash_resource, |
259 | }; | 279 | }; |
280 | #endif | ||
260 | 281 | ||
261 | #ifdef CONFIG_SPI_BFIN | 282 | #ifdef CONFIG_SPI_BFIN |
262 | #if defined(CONFIG_SND_BLACKFIN_AD1836) \ | 283 | #if defined(CONFIG_SND_BLACKFIN_AD1836) \ |
@@ -443,6 +464,10 @@ static struct platform_device *ezkit_devices[] __initdata = { | |||
443 | &bfin_uart_device, | 464 | &bfin_uart_device, |
444 | #endif | 465 | #endif |
445 | 466 | ||
467 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | ||
468 | &bfin_sir_device, | ||
469 | #endif | ||
470 | |||
446 | #if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) | 471 | #if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) |
447 | &bfin_pata_device, | 472 | &bfin_pata_device, |
448 | #endif | 473 | #endif |
@@ -460,7 +485,10 @@ static struct platform_device *ezkit_devices[] __initdata = { | |||
460 | #endif | 485 | #endif |
461 | 486 | ||
462 | &bfin_gpios_device, | 487 | &bfin_gpios_device, |
488 | |||
489 | #if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE) | ||
463 | &ezkit_flash_device, | 490 | &ezkit_flash_device, |
491 | #endif | ||
464 | }; | 492 | }; |
465 | 493 | ||
466 | static int __init ezkit_init(void) | 494 | static int __init ezkit_init(void) |
diff --git a/arch/blackfin/mach-bf561/boards/generic_board.c b/arch/blackfin/mach-bf561/boards/generic_board.c index fc80c5d059f8..2faa0072d614 100644 --- a/arch/blackfin/mach-bf561/boards/generic_board.c +++ b/arch/blackfin/mach-bf561/boards/generic_board.c | |||
@@ -70,7 +70,7 @@ static struct platform_device *generic_board_devices[] __initdata = { | |||
70 | 70 | ||
71 | static int __init generic_board_init(void) | 71 | static int __init generic_board_init(void) |
72 | { | 72 | { |
73 | printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); | 73 | printk(KERN_INFO "%s(): registering device resources\n", __func__); |
74 | return platform_add_devices(generic_board_devices, | 74 | return platform_add_devices(generic_board_devices, |
75 | ARRAY_SIZE(generic_board_devices)); | 75 | ARRAY_SIZE(generic_board_devices)); |
76 | } | 76 | } |
diff --git a/arch/blackfin/mach-bf561/boards/tepla.c b/arch/blackfin/mach-bf561/boards/tepla.c index ec6a2207c202..c9174b39f98d 100644 --- a/arch/blackfin/mach-bf561/boards/tepla.c +++ b/arch/blackfin/mach-bf561/boards/tepla.c | |||
@@ -50,7 +50,7 @@ static struct platform_device *tepla_devices[] __initdata = { | |||
50 | 50 | ||
51 | static int __init tepla_init(void) | 51 | static int __init tepla_init(void) |
52 | { | 52 | { |
53 | printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); | 53 | printk(KERN_INFO "%s(): registering device resources\n", __func__); |
54 | return platform_add_devices(tepla_devices, ARRAY_SIZE(tepla_devices)); | 54 | return platform_add_devices(tepla_devices, ARRAY_SIZE(tepla_devices)); |
55 | } | 55 | } |
56 | 56 | ||
diff --git a/arch/blackfin/mach-bf561/dma.c b/arch/blackfin/mach-bf561/dma.c index 89c65bb0bed3..24415eb82698 100644 --- a/arch/blackfin/mach-bf561/dma.c +++ b/arch/blackfin/mach-bf561/dma.c | |||
@@ -26,10 +26,12 @@ | |||
26 | * to the Free Software Foundation, Inc., | 26 | * to the Free Software Foundation, Inc., |
27 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | 27 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
28 | */ | 28 | */ |
29 | #include <linux/module.h> | ||
30 | |||
29 | #include <asm/blackfin.h> | 31 | #include <asm/blackfin.h> |
30 | #include <asm/dma.h> | 32 | #include <asm/dma.h> |
31 | 33 | ||
32 | struct dma_register *base_addr[MAX_BLACKFIN_DMA_CHANNEL] = { | 34 | struct dma_register *dma_io_base_addr[MAX_BLACKFIN_DMA_CHANNEL] = { |
33 | (struct dma_register *) DMA1_0_NEXT_DESC_PTR, | 35 | (struct dma_register *) DMA1_0_NEXT_DESC_PTR, |
34 | (struct dma_register *) DMA1_1_NEXT_DESC_PTR, | 36 | (struct dma_register *) DMA1_1_NEXT_DESC_PTR, |
35 | (struct dma_register *) DMA1_2_NEXT_DESC_PTR, | 37 | (struct dma_register *) DMA1_2_NEXT_DESC_PTR, |
@@ -67,6 +69,7 @@ struct dma_register *base_addr[MAX_BLACKFIN_DMA_CHANNEL] = { | |||
67 | (struct dma_register *) IMDMA_D1_NEXT_DESC_PTR, | 69 | (struct dma_register *) IMDMA_D1_NEXT_DESC_PTR, |
68 | (struct dma_register *) IMDMA_S1_NEXT_DESC_PTR, | 70 | (struct dma_register *) IMDMA_S1_NEXT_DESC_PTR, |
69 | }; | 71 | }; |
72 | EXPORT_SYMBOL(dma_io_base_addr); | ||
70 | 73 | ||
71 | int channel2irq(unsigned int channel) | 74 | int channel2irq(unsigned int channel) |
72 | { | 75 | { |
diff --git a/arch/blackfin/mach-bf561/head.S b/arch/blackfin/mach-bf561/head.S index 96a3d456fb6d..5b8bd40851dd 100644 --- a/arch/blackfin/mach-bf561/head.S +++ b/arch/blackfin/mach-bf561/head.S | |||
@@ -37,9 +37,6 @@ | |||
37 | #include <asm/mach/mem_init.h> | 37 | #include <asm/mach/mem_init.h> |
38 | #endif | 38 | #endif |
39 | 39 | ||
40 | .global __rambase | ||
41 | .global __ramstart | ||
42 | .global __ramend | ||
43 | .extern ___bss_stop | 40 | .extern ___bss_stop |
44 | .extern ___bss_start | 41 | .extern ___bss_start |
45 | .extern _bf53x_relocate_l1_mem | 42 | .extern _bf53x_relocate_l1_mem |
@@ -139,26 +136,26 @@ ENTRY(__start) | |||
139 | 136 | ||
140 | /* Initialise UART - when booting from u-boot, the UART is not disabled | 137 | /* Initialise UART - when booting from u-boot, the UART is not disabled |
141 | * so if we dont initalize here, our serial console gets hosed */ | 138 | * so if we dont initalize here, our serial console gets hosed */ |
142 | p0.h = hi(UART_LCR); | 139 | p0.h = hi(BFIN_UART_LCR); |
143 | p0.l = lo(UART_LCR); | 140 | p0.l = lo(BFIN_UART_LCR); |
144 | r0 = 0x0(Z); | 141 | r0 = 0x0(Z); |
145 | w[p0] = r0.L; /* To enable DLL writes */ | 142 | w[p0] = r0.L; /* To enable DLL writes */ |
146 | ssync; | 143 | ssync; |
147 | 144 | ||
148 | p0.h = hi(UART_DLL); | 145 | p0.h = hi(BFIN_UART_DLL); |
149 | p0.l = lo(UART_DLL); | 146 | p0.l = lo(BFIN_UART_DLL); |
150 | r0 = 0x0(Z); | 147 | r0 = 0x0(Z); |
151 | w[p0] = r0.L; | 148 | w[p0] = r0.L; |
152 | ssync; | 149 | ssync; |
153 | 150 | ||
154 | p0.h = hi(UART_DLH); | 151 | p0.h = hi(BFIN_UART_DLH); |
155 | p0.l = lo(UART_DLH); | 152 | p0.l = lo(BFIN_UART_DLH); |
156 | r0 = 0x00(Z); | 153 | r0 = 0x00(Z); |
157 | w[p0] = r0.L; | 154 | w[p0] = r0.L; |
158 | ssync; | 155 | ssync; |
159 | 156 | ||
160 | p0.h = hi(UART_GCTL); | 157 | p0.h = hi(BFIN_UART_GCTL); |
161 | p0.l = lo(UART_GCTL); | 158 | p0.l = lo(BFIN_UART_GCTL); |
162 | r0 = 0x0(Z); | 159 | r0 = 0x0(Z); |
163 | w[p0] = r0.L; /* To enable UART clock */ | 160 | w[p0] = r0.L; /* To enable UART clock */ |
164 | ssync; | 161 | ssync; |
@@ -411,18 +408,3 @@ ENTRY(_start_dma_code) | |||
411 | RTS; | 408 | RTS; |
412 | ENDPROC(_start_dma_code) | 409 | ENDPROC(_start_dma_code) |
413 | #endif /* CONFIG_BFIN_KERNEL_CLOCK */ | 410 | #endif /* CONFIG_BFIN_KERNEL_CLOCK */ |
414 | |||
415 | .data | ||
416 | |||
417 | /* | ||
418 | * Set up the usable of RAM stuff. Size of RAM is determined then | ||
419 | * an initial stack set up at the end. | ||
420 | */ | ||
421 | |||
422 | .align 4 | ||
423 | __rambase: | ||
424 | .long 0 | ||
425 | __ramstart: | ||
426 | .long 0 | ||
427 | __ramend: | ||
428 | .long 0 | ||
diff --git a/arch/blackfin/mach-common/Makefile b/arch/blackfin/mach-common/Makefile index 15e33ca1ce80..393081e9b680 100644 --- a/arch/blackfin/mach-common/Makefile +++ b/arch/blackfin/mach-common/Makefile | |||
@@ -6,4 +6,5 @@ obj-y := \ | |||
6 | cache.o cacheinit.o entry.o \ | 6 | cache.o cacheinit.o entry.o \ |
7 | interrupt.o lock.o irqpanic.o arch_checks.o ints-priority.o | 7 | interrupt.o lock.o irqpanic.o arch_checks.o ints-priority.o |
8 | 8 | ||
9 | obj-$(CONFIG_PM) += pm.o dpmc.o | 9 | obj-$(CONFIG_PM) += pm.o dpmc.o |
10 | obj-$(CONFIG_CPU_FREQ) += cpufreq.o | ||
diff --git a/arch/blackfin/mach-common/arch_checks.c b/arch/blackfin/mach-common/arch_checks.c index 2f6ce397780f..caaab49e9cfa 100644 --- a/arch/blackfin/mach-common/arch_checks.c +++ b/arch/blackfin/mach-common/arch_checks.c | |||
@@ -54,7 +54,8 @@ | |||
54 | 54 | ||
55 | #endif /* CONFIG_BFIN_KERNEL_CLOCK */ | 55 | #endif /* CONFIG_BFIN_KERNEL_CLOCK */ |
56 | 56 | ||
57 | #ifdef CONFIG_MEM_SIZE | ||
57 | #if (CONFIG_MEM_SIZE % 4) | 58 | #if (CONFIG_MEM_SIZE % 4) |
58 | #error "SDRAM mem size must be multible of 4MB" | 59 | #error "SDRAM mem size must be multible of 4MB" |
59 | #endif | 60 | #endif |
60 | 61 | #endif | |
diff --git a/arch/blackfin/mach-common/cpufreq.c b/arch/blackfin/mach-common/cpufreq.c new file mode 100644 index 000000000000..ed81e00d20e1 --- /dev/null +++ b/arch/blackfin/mach-common/cpufreq.c | |||
@@ -0,0 +1,194 @@ | |||
1 | /* | ||
2 | * File: arch/blackfin/mach-common/cpufreq.c | ||
3 | * Based on: | ||
4 | * Author: | ||
5 | * | ||
6 | * Created: | ||
7 | * Description: Blackfin core clock scaling | ||
8 | * | ||
9 | * Modified: | ||
10 | * Copyright 2004-2008 Analog Devices Inc. | ||
11 | * | ||
12 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | ||
13 | * | ||
14 | * This program is free software; you can redistribute it and/or modify | ||
15 | * it under the terms of the GNU General Public License as published by | ||
16 | * the Free Software Foundation; either version 2 of the License, or | ||
17 | * (at your option) any later version. | ||
18 | * | ||
19 | * This program is distributed in the hope that it will be useful, | ||
20 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
21 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
22 | * GNU General Public License for more details. | ||
23 | * | ||
24 | * You should have received a copy of the GNU General Public License | ||
25 | * along with this program; if not, see the file COPYING, or write | ||
26 | * to the Free Software Foundation, Inc., | ||
27 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
28 | */ | ||
29 | |||
30 | #include <linux/kernel.h> | ||
31 | #include <linux/types.h> | ||
32 | #include <linux/init.h> | ||
33 | #include <linux/cpufreq.h> | ||
34 | #include <linux/fs.h> | ||
35 | #include <asm/blackfin.h> | ||
36 | #include <asm/time.h> | ||
37 | |||
38 | |||
39 | /* this is the table of CCLK frequencies, in Hz */ | ||
40 | /* .index is the entry in the auxillary dpm_state_table[] */ | ||
41 | static struct cpufreq_frequency_table bfin_freq_table[] = { | ||
42 | { | ||
43 | .frequency = CPUFREQ_TABLE_END, | ||
44 | .index = 0, | ||
45 | }, | ||
46 | { | ||
47 | .frequency = CPUFREQ_TABLE_END, | ||
48 | .index = 1, | ||
49 | }, | ||
50 | { | ||
51 | .frequency = CPUFREQ_TABLE_END, | ||
52 | .index = 2, | ||
53 | }, | ||
54 | { | ||
55 | .frequency = CPUFREQ_TABLE_END, | ||
56 | .index = 0, | ||
57 | }, | ||
58 | }; | ||
59 | |||
60 | static struct bfin_dpm_state { | ||
61 | unsigned int csel; /* system clock divider */ | ||
62 | unsigned int tscale; /* change the divider on the core timer interrupt */ | ||
63 | } dpm_state_table[3]; | ||
64 | |||
65 | /**************************************************************************/ | ||
66 | |||
67 | static unsigned int bfin_getfreq(unsigned int cpu) | ||
68 | { | ||
69 | /* The driver only support single cpu */ | ||
70 | if (cpu != 0) | ||
71 | return -1; | ||
72 | |||
73 | return get_cclk(); | ||
74 | } | ||
75 | |||
76 | |||
77 | static int bfin_target(struct cpufreq_policy *policy, | ||
78 | unsigned int target_freq, unsigned int relation) | ||
79 | { | ||
80 | unsigned int index, plldiv, tscale; | ||
81 | unsigned long flags, cclk_hz; | ||
82 | struct cpufreq_freqs freqs; | ||
83 | |||
84 | if (cpufreq_frequency_table_target(policy, bfin_freq_table, | ||
85 | target_freq, relation, &index)) | ||
86 | return -EINVAL; | ||
87 | |||
88 | cclk_hz = bfin_freq_table[index].frequency; | ||
89 | |||
90 | freqs.old = bfin_getfreq(0); | ||
91 | freqs.new = cclk_hz; | ||
92 | freqs.cpu = 0; | ||
93 | |||
94 | pr_debug("cpufreq: changing cclk to %lu; target = %u, oldfreq = %u\n", | ||
95 | cclk_hz, target_freq, freqs.old); | ||
96 | |||
97 | cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); | ||
98 | local_irq_save(flags); | ||
99 | plldiv = (bfin_read_PLL_DIV() & SSEL) | dpm_state_table[index].csel; | ||
100 | tscale = dpm_state_table[index].tscale; | ||
101 | bfin_write_PLL_DIV(plldiv); | ||
102 | /* we have to adjust the core timer, because it is using cclk */ | ||
103 | bfin_write_TSCALE(tscale); | ||
104 | SSYNC(); | ||
105 | local_irq_restore(flags); | ||
106 | cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); | ||
107 | |||
108 | return 0; | ||
109 | } | ||
110 | |||
111 | static int bfin_verify_speed(struct cpufreq_policy *policy) | ||
112 | { | ||
113 | return cpufreq_frequency_table_verify(policy, bfin_freq_table); | ||
114 | } | ||
115 | |||
116 | static int __init __bfin_cpu_init(struct cpufreq_policy *policy) | ||
117 | { | ||
118 | |||
119 | unsigned long cclk, sclk, csel, min_cclk; | ||
120 | int index; | ||
121 | |||
122 | #ifdef CONFIG_CYCLES_CLOCKSOURCE | ||
123 | /* | ||
124 | * Clocksource CYCLES is still CONTINUOUS but not longer MONOTONIC in case we enable | ||
125 | * CPU frequency scaling, since CYCLES runs off Core Clock. | ||
126 | */ | ||
127 | printk(KERN_WARNING "CPU frequency scaling not supported: Clocksource not suitable\n" | ||
128 | return -ENODEV; | ||
129 | #endif | ||
130 | |||
131 | if (policy->cpu != 0) | ||
132 | return -EINVAL; | ||
133 | |||
134 | cclk = get_cclk(); | ||
135 | sclk = get_sclk(); | ||
136 | |||
137 | #if ANOMALY_05000273 | ||
138 | min_cclk = sclk * 2; | ||
139 | #else | ||
140 | min_cclk = sclk; | ||
141 | #endif | ||
142 | csel = ((bfin_read_PLL_DIV() & CSEL) >> 4); | ||
143 | |||
144 | for (index = 0; (cclk >> index) >= min_cclk && csel <= 3; index++, csel++) { | ||
145 | bfin_freq_table[index].frequency = cclk >> index; | ||
146 | dpm_state_table[index].csel = csel << 4; /* Shift now into PLL_DIV bitpos */ | ||
147 | dpm_state_table[index].tscale = (TIME_SCALE / (1 << csel)) - 1; | ||
148 | |||
149 | pr_debug("cpufreq: freq:%d csel:%d tscale:%d\n", | ||
150 | bfin_freq_table[index].frequency, | ||
151 | dpm_state_table[index].csel, | ||
152 | dpm_state_table[index].tscale); | ||
153 | } | ||
154 | |||
155 | policy->governor = CPUFREQ_DEFAULT_GOVERNOR; | ||
156 | |||
157 | policy->cpuinfo.transition_latency = (bfin_read_PLL_LOCKCNT() / (sclk / 1000000)) * 1000; | ||
158 | /*Now ,only support one cpu */ | ||
159 | policy->cur = cclk; | ||
160 | cpufreq_frequency_table_get_attr(bfin_freq_table, policy->cpu); | ||
161 | return cpufreq_frequency_table_cpuinfo(policy, bfin_freq_table); | ||
162 | } | ||
163 | |||
164 | static struct freq_attr *bfin_freq_attr[] = { | ||
165 | &cpufreq_freq_attr_scaling_available_freqs, | ||
166 | NULL, | ||
167 | }; | ||
168 | |||
169 | static struct cpufreq_driver bfin_driver = { | ||
170 | .verify = bfin_verify_speed, | ||
171 | .target = bfin_target, | ||
172 | .get = bfin_getfreq, | ||
173 | .init = __bfin_cpu_init, | ||
174 | .name = "bfin cpufreq", | ||
175 | .owner = THIS_MODULE, | ||
176 | .attr = bfin_freq_attr, | ||
177 | }; | ||
178 | |||
179 | static int __init bfin_cpu_init(void) | ||
180 | { | ||
181 | return cpufreq_register_driver(&bfin_driver); | ||
182 | } | ||
183 | |||
184 | static void __exit bfin_cpu_exit(void) | ||
185 | { | ||
186 | cpufreq_unregister_driver(&bfin_driver); | ||
187 | } | ||
188 | |||
189 | MODULE_AUTHOR("Michael Hennerich <hennerich@blackfin.uclinux.org>"); | ||
190 | MODULE_DESCRIPTION("cpufreq driver for Blackfin"); | ||
191 | MODULE_LICENSE("GPL"); | ||
192 | |||
193 | module_init(bfin_cpu_init); | ||
194 | module_exit(bfin_cpu_exit); | ||
diff --git a/arch/blackfin/mach-common/entry.S b/arch/blackfin/mach-common/entry.S index cee54cebbc65..f2fb87e9a46e 100644 --- a/arch/blackfin/mach-common/entry.S +++ b/arch/blackfin/mach-common/entry.S | |||
@@ -38,6 +38,7 @@ | |||
38 | #include <linux/unistd.h> | 38 | #include <linux/unistd.h> |
39 | #include <asm/blackfin.h> | 39 | #include <asm/blackfin.h> |
40 | #include <asm/errno.h> | 40 | #include <asm/errno.h> |
41 | #include <asm/fixed_code.h> | ||
41 | #include <asm/thread_info.h> /* TIF_NEED_RESCHED */ | 42 | #include <asm/thread_info.h> /* TIF_NEED_RESCHED */ |
42 | #include <asm/asm-offsets.h> | 43 | #include <asm/asm-offsets.h> |
43 | #include <asm/trace.h> | 44 | #include <asm/trace.h> |
@@ -52,15 +53,6 @@ | |||
52 | # define EX_SCRATCH_REG CYCLES | 53 | # define EX_SCRATCH_REG CYCLES |
53 | #endif | 54 | #endif |
54 | 55 | ||
55 | #if ANOMALY_05000281 | ||
56 | ENTRY(_safe_speculative_execution) | ||
57 | NOP; | ||
58 | NOP; | ||
59 | NOP; | ||
60 | jump _safe_speculative_execution; | ||
61 | ENDPROC(_safe_speculative_execution) | ||
62 | #endif | ||
63 | |||
64 | #ifdef CONFIG_EXCPT_IRQ_SYSC_L1 | 56 | #ifdef CONFIG_EXCPT_IRQ_SYSC_L1 |
65 | .section .l1.text | 57 | .section .l1.text |
66 | #else | 58 | #else |
@@ -121,10 +113,14 @@ ENTRY(_ex_icplb_miss) | |||
121 | (R7:6,P5:4) = [sp++]; | 113 | (R7:6,P5:4) = [sp++]; |
122 | ASTAT = [sp++]; | 114 | ASTAT = [sp++]; |
123 | SAVE_ALL_SYS | 115 | SAVE_ALL_SYS |
124 | DEBUG_HWTRACE_SAVE(p5, r7) | ||
125 | #ifdef CONFIG_MPU | 116 | #ifdef CONFIG_MPU |
117 | /* We must load R1 here, _before_ DEBUG_HWTRACE_SAVE, since that | ||
118 | * will change the stack pointer. */ | ||
126 | R0 = SEQSTAT; | 119 | R0 = SEQSTAT; |
127 | R1 = SP; | 120 | R1 = SP; |
121 | #endif | ||
122 | DEBUG_HWTRACE_SAVE(p5, r7) | ||
123 | #ifdef CONFIG_MPU | ||
128 | sp += -12; | 124 | sp += -12; |
129 | call _cplb_hdr; | 125 | call _cplb_hdr; |
130 | sp += 12; | 126 | sp += 12; |
@@ -191,6 +187,7 @@ ENTRY(_bfin_return_from_exception) | |||
191 | ENDPROC(_bfin_return_from_exception) | 187 | ENDPROC(_bfin_return_from_exception) |
192 | 188 | ||
193 | ENTRY(_handle_bad_cplb) | 189 | ENTRY(_handle_bad_cplb) |
190 | DEBUG_HWTRACE_RESTORE(p5, r7) | ||
194 | /* To get here, we just tried and failed to change a CPLB | 191 | /* To get here, we just tried and failed to change a CPLB |
195 | * so, handle things in trap_c (C code), by lowering to | 192 | * so, handle things in trap_c (C code), by lowering to |
196 | * IRQ5, just like we normally do. Since this is not a | 193 | * IRQ5, just like we normally do. Since this is not a |
@@ -225,6 +222,26 @@ ENTRY(_ex_trap_c) | |||
225 | [p4] = p5; | 222 | [p4] = p5; |
226 | csync; | 223 | csync; |
227 | 224 | ||
225 | p4.l = lo(DCPLB_FAULT_ADDR); | ||
226 | p4.h = hi(DCPLB_FAULT_ADDR); | ||
227 | r7 = [p4]; | ||
228 | p5.h = _saved_dcplb_fault_addr; | ||
229 | p5.l = _saved_dcplb_fault_addr; | ||
230 | [p5] = r7; | ||
231 | |||
232 | r7 = [p4 + (ICPLB_FAULT_ADDR - DCPLB_FAULT_ADDR)]; | ||
233 | p5.h = _saved_icplb_fault_addr; | ||
234 | p5.l = _saved_icplb_fault_addr; | ||
235 | [p5] = r7; | ||
236 | |||
237 | p4.l = __retx; | ||
238 | p4.h = __retx; | ||
239 | r6 = retx; | ||
240 | [p4] = r6; | ||
241 | p4.l = lo(SAFE_USER_INSTRUCTION); | ||
242 | p4.h = hi(SAFE_USER_INSTRUCTION); | ||
243 | retx = p4; | ||
244 | |||
228 | /* Disable all interrupts, but make sure level 5 is enabled so | 245 | /* Disable all interrupts, but make sure level 5 is enabled so |
229 | * we can switch to that level. Save the old mask. */ | 246 | * we can switch to that level. Save the old mask. */ |
230 | cli r6; | 247 | cli r6; |
@@ -234,23 +251,6 @@ ENTRY(_ex_trap_c) | |||
234 | r6 = 0x3f; | 251 | r6 = 0x3f; |
235 | sti r6; | 252 | sti r6; |
236 | 253 | ||
237 | /* Save the excause into a circular buffer, in case the instruction | ||
238 | * which caused this excecptions causes others. | ||
239 | */ | ||
240 | P5.l = _in_ptr_excause; | ||
241 | P5.h = _in_ptr_excause; | ||
242 | R7 = [P5]; | ||
243 | R7 += 4; | ||
244 | R6 = 0xF; | ||
245 | R7 = R7 & R6; | ||
246 | [P5] = R7; | ||
247 | R6.l = _excause_circ_buf; | ||
248 | R6.h = _excause_circ_buf; | ||
249 | R7 = R7 + R6; | ||
250 | p5 = R7; | ||
251 | R6 = SEQSTAT; | ||
252 | [P5] = R6; | ||
253 | |||
254 | (R7:6,P5:4) = [sp++]; | 254 | (R7:6,P5:4) = [sp++]; |
255 | ASTAT = [sp++]; | 255 | ASTAT = [sp++]; |
256 | SP = EX_SCRATCH_REG; | 256 | SP = EX_SCRATCH_REG; |
@@ -307,6 +307,11 @@ ENDPROC(_double_fault) | |||
307 | ENTRY(_exception_to_level5) | 307 | ENTRY(_exception_to_level5) |
308 | SAVE_ALL_SYS | 308 | SAVE_ALL_SYS |
309 | 309 | ||
310 | p4.l = __retx; | ||
311 | p4.h = __retx; | ||
312 | r6 = [p4]; | ||
313 | [sp + PT_PC] = r6; | ||
314 | |||
310 | /* Restore interrupt mask. We haven't pushed RETI, so this | 315 | /* Restore interrupt mask. We haven't pushed RETI, so this |
311 | * doesn't enable interrupts until we return from this handler. */ | 316 | * doesn't enable interrupts until we return from this handler. */ |
312 | p4.l = _excpt_saved_imask; | 317 | p4.l = _excpt_saved_imask; |
@@ -328,42 +333,11 @@ ENTRY(_exception_to_level5) | |||
328 | r0 = [p2]; /* Read current IPEND */ | 333 | r0 = [p2]; /* Read current IPEND */ |
329 | [sp + PT_IPEND] = r0; /* Store IPEND */ | 334 | [sp + PT_IPEND] = r0; /* Store IPEND */ |
330 | 335 | ||
331 | /* Pop the excause from the circular buffer and push it on the stack | ||
332 | * (in the right place - if you change the location of SEQSTAT, you | ||
333 | * must change this offset. | ||
334 | */ | ||
335 | .L_excep_to_5_again: | ||
336 | P5.l = _out_ptr_excause; | ||
337 | P5.h = _out_ptr_excause; | ||
338 | R7 = [P5]; | ||
339 | R7 += 4; | ||
340 | R6 = 0xF; | ||
341 | R7 = R7 & R6; | ||
342 | [P5] = R7; | ||
343 | R6.l = _excause_circ_buf; | ||
344 | R6.h = _excause_circ_buf; | ||
345 | R7 = R7 + R6; | ||
346 | P5 = R7; | ||
347 | R1 = [P5]; | ||
348 | [SP + PT_SEQSTAT] = r1; | ||
349 | |||
350 | r0 = sp; /* stack frame pt_regs pointer argument ==> r0 */ | 336 | r0 = sp; /* stack frame pt_regs pointer argument ==> r0 */ |
351 | SP += -12; | 337 | SP += -12; |
352 | call _trap_c; | 338 | call _trap_c; |
353 | SP += 12; | 339 | SP += 12; |
354 | 340 | ||
355 | /* See if anything else is in the exception buffer | ||
356 | * if there is, process it | ||
357 | */ | ||
358 | P5.l = _out_ptr_excause; | ||
359 | P5.h = _out_ptr_excause; | ||
360 | P4.l = _in_ptr_excause; | ||
361 | P4.h = _in_ptr_excause; | ||
362 | R6 = [P5]; | ||
363 | R7 = [P4]; | ||
364 | CC = R6 == R7; | ||
365 | if ! CC JUMP .L_excep_to_5_again | ||
366 | |||
367 | call _ret_from_exception; | 341 | call _ret_from_exception; |
368 | RESTORE_ALL_SYS | 342 | RESTORE_ALL_SYS |
369 | rti; | 343 | rti; |
@@ -727,8 +701,8 @@ ENTRY(_return_from_int) | |||
727 | [p0] = p1; | 701 | [p0] = p1; |
728 | csync; | 702 | csync; |
729 | #if ANOMALY_05000281 | 703 | #if ANOMALY_05000281 |
730 | r0.l = _safe_speculative_execution; | 704 | r0.l = lo(SAFE_USER_INSTRUCTION); |
731 | r0.h = _safe_speculative_execution; | 705 | r0.h = hi(SAFE_USER_INSTRUCTION); |
732 | reti = r0; | 706 | reti = r0; |
733 | #endif | 707 | #endif |
734 | r0 = 0x801f (z); | 708 | r0 = 0x801f (z); |
@@ -741,8 +715,8 @@ ENDPROC(_return_from_int) | |||
741 | 715 | ||
742 | ENTRY(_lower_to_irq14) | 716 | ENTRY(_lower_to_irq14) |
743 | #if ANOMALY_05000281 | 717 | #if ANOMALY_05000281 |
744 | r0.l = _safe_speculative_execution; | 718 | r0.l = lo(SAFE_USER_INSTRUCTION); |
745 | r0.h = _safe_speculative_execution; | 719 | r0.h = hi(SAFE_USER_INSTRUCTION); |
746 | reti = r0; | 720 | reti = r0; |
747 | #endif | 721 | #endif |
748 | r0 = 0x401f; | 722 | r0 = 0x401f; |
@@ -809,20 +783,6 @@ _schedule_and_signal: | |||
809 | rti; | 783 | rti; |
810 | ENDPROC(_lower_to_irq14) | 784 | ENDPROC(_lower_to_irq14) |
811 | 785 | ||
812 | /* Make sure when we start, that the circular buffer is initialized properly | ||
813 | * R0 and P0 are call clobbered, so we can use them here. | ||
814 | */ | ||
815 | ENTRY(_init_exception_buff) | ||
816 | r0 = 0; | ||
817 | p0.h = _in_ptr_excause; | ||
818 | p0.l = _in_ptr_excause; | ||
819 | [p0] = r0; | ||
820 | p0.h = _out_ptr_excause; | ||
821 | p0.l = _out_ptr_excause; | ||
822 | [p0] = r0; | ||
823 | rts; | ||
824 | ENDPROC(_init_exception_buff) | ||
825 | |||
826 | /* We handle this 100% in exception space - to reduce overhead | 786 | /* We handle this 100% in exception space - to reduce overhead |
827 | * Only potiential problem is if the software buffer gets swapped out of the | 787 | * Only potiential problem is if the software buffer gets swapped out of the |
828 | * CPLB table - then double fault. - so we don't let this happen in other places | 788 | * CPLB table - then double fault. - so we don't let this happen in other places |
@@ -1398,17 +1358,7 @@ _exception_stack_top: | |||
1398 | _last_cplb_fault_retx: | 1358 | _last_cplb_fault_retx: |
1399 | .long 0; | 1359 | .long 0; |
1400 | #endif | 1360 | #endif |
1401 | /* | 1361 | /* Used to save the real RETX when temporarily storing a safe |
1402 | * Single instructions can have multiple faults, which need to be | 1362 | * return address. */ |
1403 | * handled by traps.c, in irq5. We store the exception cause to ensure | 1363 | __retx: |
1404 | * we don't miss a double fault condition | ||
1405 | */ | ||
1406 | ENTRY(_in_ptr_excause) | ||
1407 | .long 0; | 1364 | .long 0; |
1408 | ENTRY(_out_ptr_excause) | ||
1409 | .long 0; | ||
1410 | ALIGN | ||
1411 | ENTRY(_excause_circ_buf) | ||
1412 | .rept 4 | ||
1413 | .long 0 | ||
1414 | .endr | ||
diff --git a/arch/blackfin/mach-common/ints-priority.c b/arch/blackfin/mach-common/ints-priority.c index 225ef14af75e..f5fd768022ea 100644 --- a/arch/blackfin/mach-common/ints-priority.c +++ b/arch/blackfin/mach-common/ints-priority.c | |||
@@ -316,7 +316,7 @@ static void bfin_demux_error_irq(unsigned int int_err_irq, | |||
316 | printk(KERN_ERR | 316 | printk(KERN_ERR |
317 | "%s : %s : LINE %d :\nIRQ ?: PERIPHERAL ERROR" | 317 | "%s : %s : LINE %d :\nIRQ ?: PERIPHERAL ERROR" |
318 | " INTERRUPT ASSERTED BUT NO SOURCE FOUND\n", | 318 | " INTERRUPT ASSERTED BUT NO SOURCE FOUND\n", |
319 | __FUNCTION__, __FILE__, __LINE__); | 319 | __func__, __FILE__, __LINE__); |
320 | 320 | ||
321 | } | 321 | } |
322 | #endif /* BF537_GENERIC_ERROR_INT_DEMUX */ | 322 | #endif /* BF537_GENERIC_ERROR_INT_DEMUX */ |
@@ -326,6 +326,7 @@ static void bfin_demux_error_irq(unsigned int int_err_irq, | |||
326 | static unsigned short gpio_enabled[gpio_bank(MAX_BLACKFIN_GPIOS)]; | 326 | static unsigned short gpio_enabled[gpio_bank(MAX_BLACKFIN_GPIOS)]; |
327 | static unsigned short gpio_edge_triggered[gpio_bank(MAX_BLACKFIN_GPIOS)]; | 327 | static unsigned short gpio_edge_triggered[gpio_bank(MAX_BLACKFIN_GPIOS)]; |
328 | 328 | ||
329 | extern void bfin_gpio_irq_prepare(unsigned gpio); | ||
329 | 330 | ||
330 | static void bfin_gpio_ack_irq(unsigned int irq) | 331 | static void bfin_gpio_ack_irq(unsigned int irq) |
331 | { | 332 | { |
@@ -364,35 +365,25 @@ static void bfin_gpio_unmask_irq(unsigned int irq) | |||
364 | 365 | ||
365 | static unsigned int bfin_gpio_irq_startup(unsigned int irq) | 366 | static unsigned int bfin_gpio_irq_startup(unsigned int irq) |
366 | { | 367 | { |
367 | unsigned int ret; | ||
368 | u16 gpionr = irq - IRQ_PF0; | 368 | u16 gpionr = irq - IRQ_PF0; |
369 | char buf[8]; | ||
370 | 369 | ||
371 | if (!(gpio_enabled[gpio_bank(gpionr)] & gpio_bit(gpionr))) { | 370 | if (!(gpio_enabled[gpio_bank(gpionr)] & gpio_bit(gpionr))) |
372 | snprintf(buf, sizeof buf, "IRQ %d", irq); | 371 | bfin_gpio_irq_prepare(gpionr); |
373 | ret = gpio_request(gpionr, buf); | ||
374 | if (ret) | ||
375 | return ret; | ||
376 | } | ||
377 | 372 | ||
378 | gpio_enabled[gpio_bank(gpionr)] |= gpio_bit(gpionr); | 373 | gpio_enabled[gpio_bank(gpionr)] |= gpio_bit(gpionr); |
379 | bfin_gpio_unmask_irq(irq); | 374 | bfin_gpio_unmask_irq(irq); |
380 | 375 | ||
381 | return ret; | 376 | return 0; |
382 | } | 377 | } |
383 | 378 | ||
384 | static void bfin_gpio_irq_shutdown(unsigned int irq) | 379 | static void bfin_gpio_irq_shutdown(unsigned int irq) |
385 | { | 380 | { |
386 | bfin_gpio_mask_irq(irq); | 381 | bfin_gpio_mask_irq(irq); |
387 | gpio_free(irq - IRQ_PF0); | ||
388 | gpio_enabled[gpio_bank(irq - IRQ_PF0)] &= ~gpio_bit(irq - IRQ_PF0); | 382 | gpio_enabled[gpio_bank(irq - IRQ_PF0)] &= ~gpio_bit(irq - IRQ_PF0); |
389 | } | 383 | } |
390 | 384 | ||
391 | static int bfin_gpio_irq_type(unsigned int irq, unsigned int type) | 385 | static int bfin_gpio_irq_type(unsigned int irq, unsigned int type) |
392 | { | 386 | { |
393 | |||
394 | unsigned int ret; | ||
395 | char buf[8]; | ||
396 | u16 gpionr = irq - IRQ_PF0; | 387 | u16 gpionr = irq - IRQ_PF0; |
397 | 388 | ||
398 | if (type == IRQ_TYPE_PROBE) { | 389 | if (type == IRQ_TYPE_PROBE) { |
@@ -404,12 +395,8 @@ static int bfin_gpio_irq_type(unsigned int irq, unsigned int type) | |||
404 | 395 | ||
405 | if (type & (IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING | | 396 | if (type & (IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING | |
406 | IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_LEVEL_LOW)) { | 397 | IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_LEVEL_LOW)) { |
407 | if (!(gpio_enabled[gpio_bank(gpionr)] & gpio_bit(gpionr))) { | 398 | if (!(gpio_enabled[gpio_bank(gpionr)] & gpio_bit(gpionr))) |
408 | snprintf(buf, sizeof buf, "IRQ %d", irq); | 399 | bfin_gpio_irq_prepare(gpionr); |
409 | ret = gpio_request(gpionr, buf); | ||
410 | if (ret) | ||
411 | return ret; | ||
412 | } | ||
413 | 400 | ||
414 | gpio_enabled[gpio_bank(gpionr)] |= gpio_bit(gpionr); | 401 | gpio_enabled[gpio_bank(gpionr)] |= gpio_bit(gpionr); |
415 | } else { | 402 | } else { |
@@ -595,6 +582,8 @@ static struct pin_int_t *pint[NR_PINT_SYS_IRQS] = { | |||
595 | (struct pin_int_t *)PINT3_MASK_SET, | 582 | (struct pin_int_t *)PINT3_MASK_SET, |
596 | }; | 583 | }; |
597 | 584 | ||
585 | extern void bfin_gpio_irq_prepare(unsigned gpio); | ||
586 | |||
598 | inline unsigned short get_irq_base(u8 bank, u8 bmap) | 587 | inline unsigned short get_irq_base(u8 bank, u8 bmap) |
599 | { | 588 | { |
600 | 589 | ||
@@ -697,8 +686,6 @@ static void bfin_gpio_unmask_irq(unsigned int irq) | |||
697 | 686 | ||
698 | static unsigned int bfin_gpio_irq_startup(unsigned int irq) | 687 | static unsigned int bfin_gpio_irq_startup(unsigned int irq) |
699 | { | 688 | { |
700 | unsigned int ret; | ||
701 | char buf[8]; | ||
702 | u16 gpionr = irq_to_gpio(irq); | 689 | u16 gpionr = irq_to_gpio(irq); |
703 | u8 pint_val = irq2pint_lut[irq - SYS_IRQS]; | 690 | u8 pint_val = irq2pint_lut[irq - SYS_IRQS]; |
704 | 691 | ||
@@ -709,17 +696,13 @@ static unsigned int bfin_gpio_irq_startup(unsigned int irq) | |||
709 | return -ENODEV; | 696 | return -ENODEV; |
710 | } | 697 | } |
711 | 698 | ||
712 | if (!(gpio_enabled[gpio_bank(gpionr)] & gpio_bit(gpionr))) { | 699 | if (!(gpio_enabled[gpio_bank(gpionr)] & gpio_bit(gpionr))) |
713 | snprintf(buf, sizeof buf, "IRQ %d", irq); | 700 | bfin_gpio_irq_prepare(gpionr); |
714 | ret = gpio_request(gpionr, buf); | ||
715 | if (ret) | ||
716 | return ret; | ||
717 | } | ||
718 | 701 | ||
719 | gpio_enabled[gpio_bank(gpionr)] |= gpio_bit(gpionr); | 702 | gpio_enabled[gpio_bank(gpionr)] |= gpio_bit(gpionr); |
720 | bfin_gpio_unmask_irq(irq); | 703 | bfin_gpio_unmask_irq(irq); |
721 | 704 | ||
722 | return ret; | 705 | return 0; |
723 | } | 706 | } |
724 | 707 | ||
725 | static void bfin_gpio_irq_shutdown(unsigned int irq) | 708 | static void bfin_gpio_irq_shutdown(unsigned int irq) |
@@ -727,15 +710,12 @@ static void bfin_gpio_irq_shutdown(unsigned int irq) | |||
727 | u16 gpionr = irq_to_gpio(irq); | 710 | u16 gpionr = irq_to_gpio(irq); |
728 | 711 | ||
729 | bfin_gpio_mask_irq(irq); | 712 | bfin_gpio_mask_irq(irq); |
730 | gpio_free(gpionr); | ||
731 | gpio_enabled[gpio_bank(gpionr)] &= ~gpio_bit(gpionr); | 713 | gpio_enabled[gpio_bank(gpionr)] &= ~gpio_bit(gpionr); |
732 | } | 714 | } |
733 | 715 | ||
734 | static int bfin_gpio_irq_type(unsigned int irq, unsigned int type) | 716 | static int bfin_gpio_irq_type(unsigned int irq, unsigned int type) |
735 | { | 717 | { |
736 | 718 | ||
737 | unsigned int ret; | ||
738 | char buf[8]; | ||
739 | u16 gpionr = irq_to_gpio(irq); | 719 | u16 gpionr = irq_to_gpio(irq); |
740 | u8 pint_val = irq2pint_lut[irq - SYS_IRQS]; | 720 | u8 pint_val = irq2pint_lut[irq - SYS_IRQS]; |
741 | u32 pintbit = PINT_BIT(pint_val); | 721 | u32 pintbit = PINT_BIT(pint_val); |
@@ -753,12 +733,8 @@ static int bfin_gpio_irq_type(unsigned int irq, unsigned int type) | |||
753 | 733 | ||
754 | if (type & (IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING | | 734 | if (type & (IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING | |
755 | IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_LEVEL_LOW)) { | 735 | IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_LEVEL_LOW)) { |
756 | if (!(gpio_enabled[gpio_bank(gpionr)] & gpio_bit(gpionr))) { | 736 | if (!(gpio_enabled[gpio_bank(gpionr)] & gpio_bit(gpionr))) |
757 | snprintf(buf, sizeof buf, "IRQ %d", irq); | 737 | bfin_gpio_irq_prepare(gpionr); |
758 | ret = gpio_request(gpionr, buf); | ||
759 | if (ret) | ||
760 | return ret; | ||
761 | } | ||
762 | 738 | ||
763 | gpio_enabled[gpio_bank(gpionr)] |= gpio_bit(gpionr); | 739 | gpio_enabled[gpio_bank(gpionr)] |= gpio_bit(gpionr); |
764 | } else { | 740 | } else { |
@@ -766,8 +742,6 @@ static int bfin_gpio_irq_type(unsigned int irq, unsigned int type) | |||
766 | return 0; | 742 | return 0; |
767 | } | 743 | } |
768 | 744 | ||
769 | gpio_direction_input(gpionr); | ||
770 | |||
771 | if ((type & (IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_LEVEL_LOW))) | 745 | if ((type & (IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_LEVEL_LOW))) |
772 | pint[bank]->invert_set = pintbit; /* low or falling edge denoted by one */ | 746 | pint[bank]->invert_set = pintbit; /* low or falling edge denoted by one */ |
773 | else | 747 | else |
@@ -965,8 +939,6 @@ int __init init_arch_irq(void) | |||
965 | 939 | ||
966 | local_irq_disable(); | 940 | local_irq_disable(); |
967 | 941 | ||
968 | init_exception_buff(); | ||
969 | |||
970 | #ifdef CONFIG_BF54x | 942 | #ifdef CONFIG_BF54x |
971 | # ifdef CONFIG_PINTx_REASSIGN | 943 | # ifdef CONFIG_PINTx_REASSIGN |
972 | pint[0]->assign = CONFIG_PINT0_ASSIGN; | 944 | pint[0]->assign = CONFIG_PINT0_ASSIGN; |
diff --git a/arch/blackfin/mach-common/lock.S b/arch/blackfin/mach-common/lock.S index 28b87fe9ce3c..30b887e67dd6 100644 --- a/arch/blackfin/mach-common/lock.S +++ b/arch/blackfin/mach-common/lock.S | |||
@@ -174,7 +174,7 @@ ENTRY(_cache_lock) | |||
174 | CLI R3; | 174 | CLI R3; |
175 | 175 | ||
176 | R7 = [P1]; | 176 | R7 = [P1]; |
177 | R2 = 0xFFFFFF87 (X); | 177 | R2 = ~(0x78) (X); /* mask out ILOC */ |
178 | R7 = R7 & R2; | 178 | R7 = R7 & R2; |
179 | R0 = R0 << 3; | 179 | R0 = R0 << 3; |
180 | R7 = R0 | R7; | 180 | R7 = R0 | R7; |
diff --git a/arch/blackfin/mm/blackfin_sram.c b/arch/blackfin/mm/blackfin_sram.c index e41f0e8ecacb..3246f91c7baa 100644 --- a/arch/blackfin/mm/blackfin_sram.c +++ b/arch/blackfin/mm/blackfin_sram.c | |||
@@ -401,7 +401,7 @@ EXPORT_SYMBOL(l1_data_sram_free); | |||
401 | 401 | ||
402 | void *l1_inst_sram_alloc(size_t size) | 402 | void *l1_inst_sram_alloc(size_t size) |
403 | { | 403 | { |
404 | #if L1_DATA_A_LENGTH != 0 | 404 | #if L1_CODE_LENGTH != 0 |
405 | unsigned flags; | 405 | unsigned flags; |
406 | void *addr; | 406 | void *addr; |
407 | 407 | ||
diff --git a/arch/blackfin/oprofile/common.c b/arch/blackfin/oprofile/common.c index cb8b8d5af34f..0f6d303a8891 100644 --- a/arch/blackfin/oprofile/common.c +++ b/arch/blackfin/oprofile/common.c | |||
@@ -75,7 +75,7 @@ static int op_bfin_start(void) | |||
75 | { | 75 | { |
76 | int ret = -EBUSY; | 76 | int ret = -EBUSY; |
77 | 77 | ||
78 | printk(KERN_INFO "KSDBG:in %s\n", __FUNCTION__); | 78 | printk(KERN_INFO "KSDBG:in %s\n", __func__); |
79 | mutex_lock(&pfmon_lock); | 79 | mutex_lock(&pfmon_lock); |
80 | if (!pfmon_enabled) { | 80 | if (!pfmon_enabled) { |
81 | ret = model->start(ctr); | 81 | ret = model->start(ctr); |
diff --git a/arch/blackfin/oprofile/op_model_bf533.c b/arch/blackfin/oprofile/op_model_bf533.c index 872dffe33623..d1c698bb9ee5 100644 --- a/arch/blackfin/oprofile/op_model_bf533.c +++ b/arch/blackfin/oprofile/op_model_bf533.c | |||
@@ -125,7 +125,7 @@ int pm_overflow_handler(int irq, struct pt_regs *regs) | |||
125 | unsigned int pc, pfctl; | 125 | unsigned int pc, pfctl; |
126 | unsigned int count[2]; | 126 | unsigned int count[2]; |
127 | 127 | ||
128 | pr_debug("get interrupt in %s\n", __FUNCTION__); | 128 | pr_debug("get interrupt in %s\n", __func__); |
129 | if (oprofile_running == 0) { | 129 | if (oprofile_running == 0) { |
130 | pr_debug("error: entering interrupt when oprofile is stopped.\n\r"); | 130 | pr_debug("error: entering interrupt when oprofile is stopped.\n\r"); |
131 | return -1; | 131 | return -1; |
diff --git a/arch/sparc/kernel/entry.S b/arch/sparc/kernel/entry.S index 135644f8add7..484c83d23eef 100644 --- a/arch/sparc/kernel/entry.S +++ b/arch/sparc/kernel/entry.S | |||
@@ -1409,7 +1409,6 @@ syscall_is_too_hard: | |||
1409 | 1409 | ||
1410 | st %o0, [%sp + STACKFRAME_SZ + PT_I0] | 1410 | st %o0, [%sp + STACKFRAME_SZ + PT_I0] |
1411 | 1411 | ||
1412 | .globl ret_sys_call | ||
1413 | ret_sys_call: | 1412 | ret_sys_call: |
1414 | ld [%curptr + TI_FLAGS], %l6 | 1413 | ld [%curptr + TI_FLAGS], %l6 |
1415 | cmp %o0, -ERESTART_RESTARTBLOCK | 1414 | cmp %o0, -ERESTART_RESTARTBLOCK |
diff --git a/arch/sparc/kernel/signal.c b/arch/sparc/kernel/signal.c index 1f730619a24a..3e849e8e3480 100644 --- a/arch/sparc/kernel/signal.c +++ b/arch/sparc/kernel/signal.c | |||
@@ -105,11 +105,6 @@ static int _sigpause_common(old_sigset_t set) | |||
105 | return -ERESTARTNOHAND; | 105 | return -ERESTARTNOHAND; |
106 | } | 106 | } |
107 | 107 | ||
108 | asmlinkage int sys_sigpause(unsigned int set) | ||
109 | { | ||
110 | return _sigpause_common(set); | ||
111 | } | ||
112 | |||
113 | asmlinkage int sys_sigsuspend(old_sigset_t set) | 108 | asmlinkage int sys_sigsuspend(old_sigset_t set) |
114 | { | 109 | { |
115 | return _sigpause_common(set); | 110 | return _sigpause_common(set); |
diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig index df3eacb5ca15..8acc5cc38621 100644 --- a/arch/sparc64/Kconfig +++ b/arch/sparc64/Kconfig | |||
@@ -250,6 +250,26 @@ endchoice | |||
250 | 250 | ||
251 | endmenu | 251 | endmenu |
252 | 252 | ||
253 | config NUMA | ||
254 | bool "NUMA support" | ||
255 | |||
256 | config NODES_SHIFT | ||
257 | int | ||
258 | default "4" | ||
259 | depends on NEED_MULTIPLE_NODES | ||
260 | |||
261 | # Some NUMA nodes have memory ranges that span | ||
262 | # other nodes. Even though a pfn is valid and | ||
263 | # between a node's start and end pfns, it may not | ||
264 | # reside on that node. See memmap_init_zone() | ||
265 | # for details. | ||
266 | config NODES_SPAN_OTHER_NODES | ||
267 | def_bool y | ||
268 | depends on NEED_MULTIPLE_NODES | ||
269 | |||
270 | config ARCH_POPULATES_NODE_MAP | ||
271 | def_bool y | ||
272 | |||
253 | config ARCH_SELECT_MEMORY_MODEL | 273 | config ARCH_SELECT_MEMORY_MODEL |
254 | def_bool y | 274 | def_bool y |
255 | 275 | ||
diff --git a/arch/sparc64/defconfig b/arch/sparc64/defconfig index e1835868ad36..92f79680f70d 100644 --- a/arch/sparc64/defconfig +++ b/arch/sparc64/defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.25 | 3 | # Linux kernel version: 2.6.25-numa |
4 | # Sun Apr 20 01:33:21 2008 | 4 | # Wed Apr 23 04:49:08 2008 |
5 | # | 5 | # |
6 | CONFIG_SPARC=y | 6 | CONFIG_SPARC=y |
7 | CONFIG_SPARC64=y | 7 | CONFIG_SPARC64=y |
@@ -152,6 +152,8 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y | |||
152 | CONFIG_HUGETLB_PAGE_SIZE_4MB=y | 152 | CONFIG_HUGETLB_PAGE_SIZE_4MB=y |
153 | # CONFIG_HUGETLB_PAGE_SIZE_512K is not set | 153 | # CONFIG_HUGETLB_PAGE_SIZE_512K is not set |
154 | # CONFIG_HUGETLB_PAGE_SIZE_64K is not set | 154 | # CONFIG_HUGETLB_PAGE_SIZE_64K is not set |
155 | # CONFIG_NUMA is not set | ||
156 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
155 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | 157 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y |
156 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | 158 | CONFIG_ARCH_SPARSEMEM_ENABLE=y |
157 | CONFIG_ARCH_SPARSEMEM_DEFAULT=y | 159 | CONFIG_ARCH_SPARSEMEM_DEFAULT=y |
@@ -787,7 +789,6 @@ CONFIG_I2C_ALGOBIT=y | |||
787 | # CONFIG_SENSORS_PCF8574 is not set | 789 | # CONFIG_SENSORS_PCF8574 is not set |
788 | # CONFIG_PCF8575 is not set | 790 | # CONFIG_PCF8575 is not set |
789 | # CONFIG_SENSORS_PCF8591 is not set | 791 | # CONFIG_SENSORS_PCF8591 is not set |
790 | # CONFIG_TPS65010 is not set | ||
791 | # CONFIG_SENSORS_MAX6875 is not set | 792 | # CONFIG_SENSORS_MAX6875 is not set |
792 | # CONFIG_SENSORS_TSL2550 is not set | 793 | # CONFIG_SENSORS_TSL2550 is not set |
793 | # CONFIG_I2C_DEBUG_CORE is not set | 794 | # CONFIG_I2C_DEBUG_CORE is not set |
@@ -869,6 +870,7 @@ CONFIG_SSB_POSSIBLE=y | |||
869 | # Multifunction device drivers | 870 | # Multifunction device drivers |
870 | # | 871 | # |
871 | # CONFIG_MFD_SM501 is not set | 872 | # CONFIG_MFD_SM501 is not set |
873 | # CONFIG_HTC_PASIC3 is not set | ||
872 | 874 | ||
873 | # | 875 | # |
874 | # Multimedia devices | 876 | # Multimedia devices |
@@ -1219,10 +1221,6 @@ CONFIG_USB_STORAGE=m | |||
1219 | # CONFIG_NEW_LEDS is not set | 1221 | # CONFIG_NEW_LEDS is not set |
1220 | # CONFIG_INFINIBAND is not set | 1222 | # CONFIG_INFINIBAND is not set |
1221 | # CONFIG_RTC_CLASS is not set | 1223 | # CONFIG_RTC_CLASS is not set |
1222 | |||
1223 | # | ||
1224 | # Userspace I/O | ||
1225 | # | ||
1226 | # CONFIG_UIO is not set | 1224 | # CONFIG_UIO is not set |
1227 | 1225 | ||
1228 | # | 1226 | # |
@@ -1399,6 +1397,7 @@ CONFIG_SCHEDSTATS=y | |||
1399 | CONFIG_DEBUG_BUGVERBOSE=y | 1397 | CONFIG_DEBUG_BUGVERBOSE=y |
1400 | # CONFIG_DEBUG_INFO is not set | 1398 | # CONFIG_DEBUG_INFO is not set |
1401 | # CONFIG_DEBUG_VM is not set | 1399 | # CONFIG_DEBUG_VM is not set |
1400 | # CONFIG_DEBUG_WRITECOUNT is not set | ||
1402 | # CONFIG_DEBUG_LIST is not set | 1401 | # CONFIG_DEBUG_LIST is not set |
1403 | # CONFIG_DEBUG_SG is not set | 1402 | # CONFIG_DEBUG_SG is not set |
1404 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1403 | # CONFIG_BOOT_PRINTK_DELAY is not set |
@@ -1425,53 +1424,82 @@ CONFIG_ASYNC_CORE=m | |||
1425 | CONFIG_ASYNC_MEMCPY=m | 1424 | CONFIG_ASYNC_MEMCPY=m |
1426 | CONFIG_ASYNC_XOR=m | 1425 | CONFIG_ASYNC_XOR=m |
1427 | CONFIG_CRYPTO=y | 1426 | CONFIG_CRYPTO=y |
1427 | |||
1428 | # | ||
1429 | # Crypto core or helper | ||
1430 | # | ||
1428 | CONFIG_CRYPTO_ALGAPI=y | 1431 | CONFIG_CRYPTO_ALGAPI=y |
1429 | CONFIG_CRYPTO_AEAD=y | 1432 | CONFIG_CRYPTO_AEAD=y |
1430 | CONFIG_CRYPTO_BLKCIPHER=y | 1433 | CONFIG_CRYPTO_BLKCIPHER=y |
1431 | # CONFIG_CRYPTO_SEQIV is not set | ||
1432 | CONFIG_CRYPTO_HASH=y | 1434 | CONFIG_CRYPTO_HASH=y |
1433 | CONFIG_CRYPTO_MANAGER=y | 1435 | CONFIG_CRYPTO_MANAGER=y |
1436 | CONFIG_CRYPTO_GF128MUL=m | ||
1437 | CONFIG_CRYPTO_NULL=m | ||
1438 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1439 | CONFIG_CRYPTO_AUTHENC=y | ||
1440 | CONFIG_CRYPTO_TEST=m | ||
1441 | |||
1442 | # | ||
1443 | # Authenticated Encryption with Associated Data | ||
1444 | # | ||
1445 | # CONFIG_CRYPTO_CCM is not set | ||
1446 | # CONFIG_CRYPTO_GCM is not set | ||
1447 | # CONFIG_CRYPTO_SEQIV is not set | ||
1448 | |||
1449 | # | ||
1450 | # Block modes | ||
1451 | # | ||
1452 | CONFIG_CRYPTO_CBC=y | ||
1453 | # CONFIG_CRYPTO_CTR is not set | ||
1454 | # CONFIG_CRYPTO_CTS is not set | ||
1455 | CONFIG_CRYPTO_ECB=m | ||
1456 | CONFIG_CRYPTO_LRW=m | ||
1457 | CONFIG_CRYPTO_PCBC=m | ||
1458 | CONFIG_CRYPTO_XTS=m | ||
1459 | |||
1460 | # | ||
1461 | # Hash modes | ||
1462 | # | ||
1434 | CONFIG_CRYPTO_HMAC=y | 1463 | CONFIG_CRYPTO_HMAC=y |
1435 | CONFIG_CRYPTO_XCBC=y | 1464 | CONFIG_CRYPTO_XCBC=y |
1436 | CONFIG_CRYPTO_NULL=m | 1465 | |
1466 | # | ||
1467 | # Digest | ||
1468 | # | ||
1469 | CONFIG_CRYPTO_CRC32C=m | ||
1437 | CONFIG_CRYPTO_MD4=y | 1470 | CONFIG_CRYPTO_MD4=y |
1438 | CONFIG_CRYPTO_MD5=y | 1471 | CONFIG_CRYPTO_MD5=y |
1472 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
1439 | CONFIG_CRYPTO_SHA1=y | 1473 | CONFIG_CRYPTO_SHA1=y |
1440 | CONFIG_CRYPTO_SHA256=m | 1474 | CONFIG_CRYPTO_SHA256=m |
1441 | CONFIG_CRYPTO_SHA512=m | 1475 | CONFIG_CRYPTO_SHA512=m |
1442 | CONFIG_CRYPTO_WP512=m | ||
1443 | CONFIG_CRYPTO_TGR192=m | 1476 | CONFIG_CRYPTO_TGR192=m |
1444 | CONFIG_CRYPTO_GF128MUL=m | 1477 | CONFIG_CRYPTO_WP512=m |
1445 | CONFIG_CRYPTO_ECB=m | 1478 | |
1446 | CONFIG_CRYPTO_CBC=y | 1479 | # |
1447 | CONFIG_CRYPTO_PCBC=m | 1480 | # Ciphers |
1448 | CONFIG_CRYPTO_LRW=m | 1481 | # |
1449 | CONFIG_CRYPTO_XTS=m | ||
1450 | # CONFIG_CRYPTO_CTR is not set | ||
1451 | # CONFIG_CRYPTO_GCM is not set | ||
1452 | # CONFIG_CRYPTO_CCM is not set | ||
1453 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1454 | CONFIG_CRYPTO_DES=y | ||
1455 | CONFIG_CRYPTO_FCRYPT=m | ||
1456 | CONFIG_CRYPTO_BLOWFISH=m | ||
1457 | CONFIG_CRYPTO_TWOFISH=m | ||
1458 | CONFIG_CRYPTO_TWOFISH_COMMON=m | ||
1459 | CONFIG_CRYPTO_SERPENT=m | ||
1460 | CONFIG_CRYPTO_AES=m | 1482 | CONFIG_CRYPTO_AES=m |
1483 | CONFIG_CRYPTO_ANUBIS=m | ||
1484 | CONFIG_CRYPTO_ARC4=m | ||
1485 | CONFIG_CRYPTO_BLOWFISH=m | ||
1486 | CONFIG_CRYPTO_CAMELLIA=m | ||
1461 | CONFIG_CRYPTO_CAST5=m | 1487 | CONFIG_CRYPTO_CAST5=m |
1462 | CONFIG_CRYPTO_CAST6=m | 1488 | CONFIG_CRYPTO_CAST6=m |
1463 | CONFIG_CRYPTO_TEA=m | 1489 | CONFIG_CRYPTO_DES=y |
1464 | CONFIG_CRYPTO_ARC4=m | 1490 | CONFIG_CRYPTO_FCRYPT=m |
1465 | CONFIG_CRYPTO_KHAZAD=m | 1491 | CONFIG_CRYPTO_KHAZAD=m |
1466 | CONFIG_CRYPTO_ANUBIS=m | ||
1467 | CONFIG_CRYPTO_SEED=m | ||
1468 | # CONFIG_CRYPTO_SALSA20 is not set | 1492 | # CONFIG_CRYPTO_SALSA20 is not set |
1493 | CONFIG_CRYPTO_SEED=m | ||
1494 | CONFIG_CRYPTO_SERPENT=m | ||
1495 | CONFIG_CRYPTO_TEA=m | ||
1496 | CONFIG_CRYPTO_TWOFISH=m | ||
1497 | CONFIG_CRYPTO_TWOFISH_COMMON=m | ||
1498 | |||
1499 | # | ||
1500 | # Compression | ||
1501 | # | ||
1469 | CONFIG_CRYPTO_DEFLATE=y | 1502 | CONFIG_CRYPTO_DEFLATE=y |
1470 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
1471 | CONFIG_CRYPTO_CRC32C=m | ||
1472 | CONFIG_CRYPTO_CAMELLIA=m | ||
1473 | CONFIG_CRYPTO_TEST=m | ||
1474 | CONFIG_CRYPTO_AUTHENC=y | ||
1475 | # CONFIG_CRYPTO_LZO is not set | 1503 | # CONFIG_CRYPTO_LZO is not set |
1476 | CONFIG_CRYPTO_HW=y | 1504 | CONFIG_CRYPTO_HW=y |
1477 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 1505 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
@@ -1492,3 +1520,4 @@ CONFIG_PLIST=y | |||
1492 | CONFIG_HAS_IOMEM=y | 1520 | CONFIG_HAS_IOMEM=y |
1493 | CONFIG_HAS_IOPORT=y | 1521 | CONFIG_HAS_IOPORT=y |
1494 | CONFIG_HAS_DMA=y | 1522 | CONFIG_HAS_DMA=y |
1523 | CONFIG_HAVE_LMB=y | ||
diff --git a/arch/sparc64/kernel/ebus.c b/arch/sparc64/kernel/ebus.c index 04ab81cb4f48..bc2632274840 100644 --- a/arch/sparc64/kernel/ebus.c +++ b/arch/sparc64/kernel/ebus.c | |||
@@ -396,6 +396,7 @@ static void __init fill_ebus_device(struct device_node *dp, struct linux_ebus_de | |||
396 | sd->op = &dev->ofdev; | 396 | sd->op = &dev->ofdev; |
397 | sd->iommu = dev->bus->ofdev.dev.parent->archdata.iommu; | 397 | sd->iommu = dev->bus->ofdev.dev.parent->archdata.iommu; |
398 | sd->stc = dev->bus->ofdev.dev.parent->archdata.stc; | 398 | sd->stc = dev->bus->ofdev.dev.parent->archdata.stc; |
399 | sd->numa_node = dev->bus->ofdev.dev.parent->archdata.numa_node; | ||
399 | 400 | ||
400 | dev->ofdev.node = dp; | 401 | dev->ofdev.node = dp; |
401 | dev->ofdev.dev.parent = &dev->bus->ofdev.dev; | 402 | dev->ofdev.dev.parent = &dev->bus->ofdev.dev; |
diff --git a/arch/sparc64/kernel/entry.S b/arch/sparc64/kernel/entry.S index fb43c76bdc26..fd06e937ae1e 100644 --- a/arch/sparc64/kernel/entry.S +++ b/arch/sparc64/kernel/entry.S | |||
@@ -47,7 +47,7 @@ do_fpdis: | |||
47 | ba,pt %xcc, etrap | 47 | ba,pt %xcc, etrap |
48 | 109: or %g7, %lo(109b), %g7 | 48 | 109: or %g7, %lo(109b), %g7 |
49 | add %g0, %g0, %g0 | 49 | add %g0, %g0, %g0 |
50 | ba,a,pt %xcc, rtrap_clr_l6 | 50 | ba,a,pt %xcc, rtrap |
51 | 51 | ||
52 | 1: TRAP_LOAD_THREAD_REG(%g6, %g1) | 52 | 1: TRAP_LOAD_THREAD_REG(%g6, %g1) |
53 | ldub [%g6 + TI_FPSAVED], %g5 | 53 | ldub [%g6 + TI_FPSAVED], %g5 |
@@ -226,7 +226,7 @@ fp_other_bounce: | |||
226 | call do_fpother | 226 | call do_fpother |
227 | add %sp, PTREGS_OFF, %o0 | 227 | add %sp, PTREGS_OFF, %o0 |
228 | ba,pt %xcc, rtrap | 228 | ba,pt %xcc, rtrap |
229 | clr %l6 | 229 | nop |
230 | 230 | ||
231 | .globl do_fpother_check_fitos | 231 | .globl do_fpother_check_fitos |
232 | .align 32 | 232 | .align 32 |
@@ -489,7 +489,7 @@ utrap_trap: /* %g3=handler,%g4=level */ | |||
489 | call bad_trap | 489 | call bad_trap |
490 | add %sp, PTREGS_OFF, %o0 | 490 | add %sp, PTREGS_OFF, %o0 |
491 | ba,pt %xcc, rtrap | 491 | ba,pt %xcc, rtrap |
492 | clr %l6 | 492 | nop |
493 | 493 | ||
494 | invoke_utrap: | 494 | invoke_utrap: |
495 | sllx %g3, 3, %g3 | 495 | sllx %g3, 3, %g3 |
@@ -607,7 +607,7 @@ __spitfire_cee_trap_continue: | |||
607 | call spitfire_access_error | 607 | call spitfire_access_error |
608 | add %sp, PTREGS_OFF, %o0 | 608 | add %sp, PTREGS_OFF, %o0 |
609 | ba,pt %xcc, rtrap | 609 | ba,pt %xcc, rtrap |
610 | clr %l6 | 610 | nop |
611 | 611 | ||
612 | /* This is the trap handler entry point for ECC correctable | 612 | /* This is the trap handler entry point for ECC correctable |
613 | * errors. They are corrected, but we listen for the trap | 613 | * errors. They are corrected, but we listen for the trap |
@@ -686,7 +686,7 @@ __spitfire_data_access_exception_tl1: | |||
686 | call spitfire_data_access_exception_tl1 | 686 | call spitfire_data_access_exception_tl1 |
687 | add %sp, PTREGS_OFF, %o0 | 687 | add %sp, PTREGS_OFF, %o0 |
688 | ba,pt %xcc, rtrap | 688 | ba,pt %xcc, rtrap |
689 | clr %l6 | 689 | nop |
690 | 690 | ||
691 | __spitfire_data_access_exception: | 691 | __spitfire_data_access_exception: |
692 | rdpr %pstate, %g4 | 692 | rdpr %pstate, %g4 |
@@ -705,7 +705,7 @@ __spitfire_data_access_exception: | |||
705 | call spitfire_data_access_exception | 705 | call spitfire_data_access_exception |
706 | add %sp, PTREGS_OFF, %o0 | 706 | add %sp, PTREGS_OFF, %o0 |
707 | ba,pt %xcc, rtrap | 707 | ba,pt %xcc, rtrap |
708 | clr %l6 | 708 | nop |
709 | 709 | ||
710 | .globl __spitfire_insn_access_exception | 710 | .globl __spitfire_insn_access_exception |
711 | .globl __spitfire_insn_access_exception_tl1 | 711 | .globl __spitfire_insn_access_exception_tl1 |
@@ -725,7 +725,7 @@ __spitfire_insn_access_exception_tl1: | |||
725 | call spitfire_insn_access_exception_tl1 | 725 | call spitfire_insn_access_exception_tl1 |
726 | add %sp, PTREGS_OFF, %o0 | 726 | add %sp, PTREGS_OFF, %o0 |
727 | ba,pt %xcc, rtrap | 727 | ba,pt %xcc, rtrap |
728 | clr %l6 | 728 | nop |
729 | 729 | ||
730 | __spitfire_insn_access_exception: | 730 | __spitfire_insn_access_exception: |
731 | rdpr %pstate, %g4 | 731 | rdpr %pstate, %g4 |
@@ -743,7 +743,7 @@ __spitfire_insn_access_exception: | |||
743 | call spitfire_insn_access_exception | 743 | call spitfire_insn_access_exception |
744 | add %sp, PTREGS_OFF, %o0 | 744 | add %sp, PTREGS_OFF, %o0 |
745 | ba,pt %xcc, rtrap | 745 | ba,pt %xcc, rtrap |
746 | clr %l6 | 746 | nop |
747 | 747 | ||
748 | /* These get patched into the trap table at boot time | 748 | /* These get patched into the trap table at boot time |
749 | * once we know we have a cheetah processor. | 749 | * once we know we have a cheetah processor. |
@@ -937,7 +937,7 @@ do_dcpe_tl1_fatal: | |||
937 | call cheetah_plus_parity_error | 937 | call cheetah_plus_parity_error |
938 | add %sp, PTREGS_OFF, %o1 | 938 | add %sp, PTREGS_OFF, %o1 |
939 | ba,pt %xcc, rtrap | 939 | ba,pt %xcc, rtrap |
940 | clr %l6 | 940 | nop |
941 | 941 | ||
942 | do_icpe_tl1: | 942 | do_icpe_tl1: |
943 | rdpr %tl, %g1 ! Save original trap level | 943 | rdpr %tl, %g1 ! Save original trap level |
@@ -979,7 +979,7 @@ do_icpe_tl1_fatal: | |||
979 | call cheetah_plus_parity_error | 979 | call cheetah_plus_parity_error |
980 | add %sp, PTREGS_OFF, %o1 | 980 | add %sp, PTREGS_OFF, %o1 |
981 | ba,pt %xcc, rtrap | 981 | ba,pt %xcc, rtrap |
982 | clr %l6 | 982 | nop |
983 | 983 | ||
984 | dcpe_icpe_tl1_common: | 984 | dcpe_icpe_tl1_common: |
985 | /* Flush D-cache, re-enable D/I caches in DCU and finally | 985 | /* Flush D-cache, re-enable D/I caches in DCU and finally |
@@ -1281,7 +1281,7 @@ __do_privact: | |||
1281 | call do_privact | 1281 | call do_privact |
1282 | add %sp, PTREGS_OFF, %o0 | 1282 | add %sp, PTREGS_OFF, %o0 |
1283 | ba,pt %xcc, rtrap | 1283 | ba,pt %xcc, rtrap |
1284 | clr %l6 | 1284 | nop |
1285 | 1285 | ||
1286 | .globl do_mna | 1286 | .globl do_mna |
1287 | do_mna: | 1287 | do_mna: |
@@ -1308,7 +1308,7 @@ do_mna: | |||
1308 | call mem_address_unaligned | 1308 | call mem_address_unaligned |
1309 | add %sp, PTREGS_OFF, %o0 | 1309 | add %sp, PTREGS_OFF, %o0 |
1310 | ba,pt %xcc, rtrap | 1310 | ba,pt %xcc, rtrap |
1311 | clr %l6 | 1311 | nop |
1312 | 1312 | ||
1313 | .globl do_lddfmna | 1313 | .globl do_lddfmna |
1314 | do_lddfmna: | 1314 | do_lddfmna: |
@@ -1326,7 +1326,7 @@ do_lddfmna: | |||
1326 | call handle_lddfmna | 1326 | call handle_lddfmna |
1327 | add %sp, PTREGS_OFF, %o0 | 1327 | add %sp, PTREGS_OFF, %o0 |
1328 | ba,pt %xcc, rtrap | 1328 | ba,pt %xcc, rtrap |
1329 | clr %l6 | 1329 | nop |
1330 | 1330 | ||
1331 | .globl do_stdfmna | 1331 | .globl do_stdfmna |
1332 | do_stdfmna: | 1332 | do_stdfmna: |
@@ -1344,7 +1344,7 @@ do_stdfmna: | |||
1344 | call handle_stdfmna | 1344 | call handle_stdfmna |
1345 | add %sp, PTREGS_OFF, %o0 | 1345 | add %sp, PTREGS_OFF, %o0 |
1346 | ba,pt %xcc, rtrap | 1346 | ba,pt %xcc, rtrap |
1347 | clr %l6 | 1347 | nop |
1348 | 1348 | ||
1349 | .globl breakpoint_trap | 1349 | .globl breakpoint_trap |
1350 | breakpoint_trap: | 1350 | breakpoint_trap: |
@@ -1424,13 +1424,13 @@ sys32_rt_sigreturn: | |||
1424 | 1: ldx [%curptr + TI_FLAGS], %l5 | 1424 | 1: ldx [%curptr + TI_FLAGS], %l5 |
1425 | andcc %l5, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT), %g0 | 1425 | andcc %l5, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT), %g0 |
1426 | be,pt %icc, rtrap | 1426 | be,pt %icc, rtrap |
1427 | clr %l6 | 1427 | nop |
1428 | add %sp, PTREGS_OFF, %o0 | 1428 | add %sp, PTREGS_OFF, %o0 |
1429 | call syscall_trace | 1429 | call syscall_trace |
1430 | mov 1, %o1 | 1430 | mov 1, %o1 |
1431 | 1431 | ||
1432 | ba,pt %xcc, rtrap | 1432 | ba,pt %xcc, rtrap |
1433 | clr %l6 | 1433 | nop |
1434 | 1434 | ||
1435 | /* This is how fork() was meant to be done, 8 instruction entry. | 1435 | /* This is how fork() was meant to be done, 8 instruction entry. |
1436 | * | 1436 | * |
@@ -1559,7 +1559,7 @@ linux_sparc_syscall32: | |||
1559 | 1559 | ||
1560 | /* Linux native system calls enter here... */ | 1560 | /* Linux native system calls enter here... */ |
1561 | .align 32 | 1561 | .align 32 |
1562 | .globl linux_sparc_syscall, ret_sys_call | 1562 | .globl linux_sparc_syscall |
1563 | linux_sparc_syscall: | 1563 | linux_sparc_syscall: |
1564 | /* Direct access to user regs, much faster. */ | 1564 | /* Direct access to user regs, much faster. */ |
1565 | cmp %g1, NR_SYSCALLS ! IEU1 Group | 1565 | cmp %g1, NR_SYSCALLS ! IEU1 Group |
@@ -1605,7 +1605,7 @@ ret_sys_call: | |||
1605 | bne,pn %icc, linux_syscall_trace2 | 1605 | bne,pn %icc, linux_syscall_trace2 |
1606 | add %l1, 0x4, %l2 ! npc = npc+4 | 1606 | add %l1, 0x4, %l2 ! npc = npc+4 |
1607 | stx %l1, [%sp + PTREGS_OFF + PT_V9_TPC] | 1607 | stx %l1, [%sp + PTREGS_OFF + PT_V9_TPC] |
1608 | ba,pt %xcc, rtrap_clr_l6 | 1608 | ba,pt %xcc, rtrap |
1609 | stx %l2, [%sp + PTREGS_OFF + PT_V9_TNPC] | 1609 | stx %l2, [%sp + PTREGS_OFF + PT_V9_TNPC] |
1610 | 1610 | ||
1611 | 1: | 1611 | 1: |
@@ -1616,7 +1616,6 @@ ret_sys_call: | |||
1616 | sub %g0, %o0, %o0 | 1616 | sub %g0, %o0, %o0 |
1617 | or %g3, %g2, %g3 | 1617 | or %g3, %g2, %g3 |
1618 | stx %o0, [%sp + PTREGS_OFF + PT_V9_I0] | 1618 | stx %o0, [%sp + PTREGS_OFF + PT_V9_I0] |
1619 | mov 1, %l6 | ||
1620 | stx %g3, [%sp + PTREGS_OFF + PT_V9_TSTATE] | 1619 | stx %g3, [%sp + PTREGS_OFF + PT_V9_TSTATE] |
1621 | bne,pn %icc, linux_syscall_trace2 | 1620 | bne,pn %icc, linux_syscall_trace2 |
1622 | add %l1, 0x4, %l2 ! npc = npc+4 | 1621 | add %l1, 0x4, %l2 ! npc = npc+4 |
diff --git a/arch/sparc64/kernel/entry.h b/arch/sparc64/kernel/entry.h index 4a91e9c6d31b..32fbab620852 100644 --- a/arch/sparc64/kernel/entry.h +++ b/arch/sparc64/kernel/entry.h | |||
@@ -20,7 +20,6 @@ extern void timer_interrupt(int irq, struct pt_regs *regs); | |||
20 | 20 | ||
21 | extern void do_notify_resume(struct pt_regs *regs, | 21 | extern void do_notify_resume(struct pt_regs *regs, |
22 | unsigned long orig_i0, | 22 | unsigned long orig_i0, |
23 | int restart_syscall, | ||
24 | unsigned long thread_info_flags); | 23 | unsigned long thread_info_flags); |
25 | 24 | ||
26 | extern asmlinkage void syscall_trace(struct pt_regs *regs, | 25 | extern asmlinkage void syscall_trace(struct pt_regs *regs, |
diff --git a/arch/sparc64/kernel/etrap.S b/arch/sparc64/kernel/etrap.S index 4b2bf9eb447a..b49d3b60bc0c 100644 --- a/arch/sparc64/kernel/etrap.S +++ b/arch/sparc64/kernel/etrap.S | |||
@@ -53,7 +53,11 @@ etrap_irq: | |||
53 | stx %g3, [%g2 + STACKFRAME_SZ + PT_V9_TPC] | 53 | stx %g3, [%g2 + STACKFRAME_SZ + PT_V9_TPC] |
54 | rd %y, %g3 | 54 | rd %y, %g3 |
55 | stx %g1, [%g2 + STACKFRAME_SZ + PT_V9_TNPC] | 55 | stx %g1, [%g2 + STACKFRAME_SZ + PT_V9_TNPC] |
56 | rdpr %tt, %g1 | ||
56 | st %g3, [%g2 + STACKFRAME_SZ + PT_V9_Y] | 57 | st %g3, [%g2 + STACKFRAME_SZ + PT_V9_Y] |
58 | sethi %hi(PT_REGS_MAGIC), %g3 | ||
59 | or %g3, %g1, %g1 | ||
60 | st %g1, [%g2 + STACKFRAME_SZ + PT_V9_MAGIC] | ||
57 | 61 | ||
58 | rdpr %cansave, %g1 | 62 | rdpr %cansave, %g1 |
59 | brnz,pt %g1, etrap_save | 63 | brnz,pt %g1, etrap_save |
diff --git a/arch/sparc64/kernel/iommu.c b/arch/sparc64/kernel/iommu.c index 756fa24eeefa..2a37a6ca2a16 100644 --- a/arch/sparc64/kernel/iommu.c +++ b/arch/sparc64/kernel/iommu.c | |||
@@ -173,9 +173,11 @@ void iommu_range_free(struct iommu *iommu, dma_addr_t dma_addr, unsigned long np | |||
173 | } | 173 | } |
174 | 174 | ||
175 | int iommu_table_init(struct iommu *iommu, int tsbsize, | 175 | int iommu_table_init(struct iommu *iommu, int tsbsize, |
176 | u32 dma_offset, u32 dma_addr_mask) | 176 | u32 dma_offset, u32 dma_addr_mask, |
177 | int numa_node) | ||
177 | { | 178 | { |
178 | unsigned long i, tsbbase, order, sz, num_tsb_entries; | 179 | unsigned long i, order, sz, num_tsb_entries; |
180 | struct page *page; | ||
179 | 181 | ||
180 | num_tsb_entries = tsbsize / sizeof(iopte_t); | 182 | num_tsb_entries = tsbsize / sizeof(iopte_t); |
181 | 183 | ||
@@ -188,11 +190,12 @@ int iommu_table_init(struct iommu *iommu, int tsbsize, | |||
188 | /* Allocate and initialize the free area map. */ | 190 | /* Allocate and initialize the free area map. */ |
189 | sz = num_tsb_entries / 8; | 191 | sz = num_tsb_entries / 8; |
190 | sz = (sz + 7UL) & ~7UL; | 192 | sz = (sz + 7UL) & ~7UL; |
191 | iommu->arena.map = kzalloc(sz, GFP_KERNEL); | 193 | iommu->arena.map = kmalloc_node(sz, GFP_KERNEL, numa_node); |
192 | if (!iommu->arena.map) { | 194 | if (!iommu->arena.map) { |
193 | printk(KERN_ERR "IOMMU: Error, kmalloc(arena.map) failed.\n"); | 195 | printk(KERN_ERR "IOMMU: Error, kmalloc(arena.map) failed.\n"); |
194 | return -ENOMEM; | 196 | return -ENOMEM; |
195 | } | 197 | } |
198 | memset(iommu->arena.map, 0, sz); | ||
196 | iommu->arena.limit = num_tsb_entries; | 199 | iommu->arena.limit = num_tsb_entries; |
197 | 200 | ||
198 | if (tlb_type != hypervisor) | 201 | if (tlb_type != hypervisor) |
@@ -201,21 +204,23 @@ int iommu_table_init(struct iommu *iommu, int tsbsize, | |||
201 | /* Allocate and initialize the dummy page which we | 204 | /* Allocate and initialize the dummy page which we |
202 | * set inactive IO PTEs to point to. | 205 | * set inactive IO PTEs to point to. |
203 | */ | 206 | */ |
204 | iommu->dummy_page = get_zeroed_page(GFP_KERNEL); | 207 | page = alloc_pages_node(numa_node, GFP_KERNEL, 0); |
205 | if (!iommu->dummy_page) { | 208 | if (!page) { |
206 | printk(KERN_ERR "IOMMU: Error, gfp(dummy_page) failed.\n"); | 209 | printk(KERN_ERR "IOMMU: Error, gfp(dummy_page) failed.\n"); |
207 | goto out_free_map; | 210 | goto out_free_map; |
208 | } | 211 | } |
212 | iommu->dummy_page = (unsigned long) page_address(page); | ||
213 | memset((void *)iommu->dummy_page, 0, PAGE_SIZE); | ||
209 | iommu->dummy_page_pa = (unsigned long) __pa(iommu->dummy_page); | 214 | iommu->dummy_page_pa = (unsigned long) __pa(iommu->dummy_page); |
210 | 215 | ||
211 | /* Now allocate and setup the IOMMU page table itself. */ | 216 | /* Now allocate and setup the IOMMU page table itself. */ |
212 | order = get_order(tsbsize); | 217 | order = get_order(tsbsize); |
213 | tsbbase = __get_free_pages(GFP_KERNEL, order); | 218 | page = alloc_pages_node(numa_node, GFP_KERNEL, order); |
214 | if (!tsbbase) { | 219 | if (!page) { |
215 | printk(KERN_ERR "IOMMU: Error, gfp(tsb) failed.\n"); | 220 | printk(KERN_ERR "IOMMU: Error, gfp(tsb) failed.\n"); |
216 | goto out_free_dummy_page; | 221 | goto out_free_dummy_page; |
217 | } | 222 | } |
218 | iommu->page_table = (iopte_t *)tsbbase; | 223 | iommu->page_table = (iopte_t *)page_address(page); |
219 | 224 | ||
220 | for (i = 0; i < num_tsb_entries; i++) | 225 | for (i = 0; i < num_tsb_entries; i++) |
221 | iopte_make_dummy(iommu, &iommu->page_table[i]); | 226 | iopte_make_dummy(iommu, &iommu->page_table[i]); |
@@ -276,20 +281,24 @@ static inline void iommu_free_ctx(struct iommu *iommu, int ctx) | |||
276 | static void *dma_4u_alloc_coherent(struct device *dev, size_t size, | 281 | static void *dma_4u_alloc_coherent(struct device *dev, size_t size, |
277 | dma_addr_t *dma_addrp, gfp_t gfp) | 282 | dma_addr_t *dma_addrp, gfp_t gfp) |
278 | { | 283 | { |
284 | unsigned long flags, order, first_page; | ||
279 | struct iommu *iommu; | 285 | struct iommu *iommu; |
286 | struct page *page; | ||
287 | int npages, nid; | ||
280 | iopte_t *iopte; | 288 | iopte_t *iopte; |
281 | unsigned long flags, order, first_page; | ||
282 | void *ret; | 289 | void *ret; |
283 | int npages; | ||
284 | 290 | ||
285 | size = IO_PAGE_ALIGN(size); | 291 | size = IO_PAGE_ALIGN(size); |
286 | order = get_order(size); | 292 | order = get_order(size); |
287 | if (order >= 10) | 293 | if (order >= 10) |
288 | return NULL; | 294 | return NULL; |
289 | 295 | ||
290 | first_page = __get_free_pages(gfp, order); | 296 | nid = dev->archdata.numa_node; |
291 | if (first_page == 0UL) | 297 | page = alloc_pages_node(nid, gfp, order); |
298 | if (unlikely(!page)) | ||
292 | return NULL; | 299 | return NULL; |
300 | |||
301 | first_page = (unsigned long) page_address(page); | ||
293 | memset((char *)first_page, 0, PAGE_SIZE << order); | 302 | memset((char *)first_page, 0, PAGE_SIZE << order); |
294 | 303 | ||
295 | iommu = dev->archdata.iommu; | 304 | iommu = dev->archdata.iommu; |
diff --git a/arch/sparc64/kernel/isa.c b/arch/sparc64/kernel/isa.c index b5f7b354084f..a2af5ed784c9 100644 --- a/arch/sparc64/kernel/isa.c +++ b/arch/sparc64/kernel/isa.c | |||
@@ -92,6 +92,7 @@ static void __init isa_fill_devices(struct sparc_isa_bridge *isa_br) | |||
92 | sd->op = &isa_dev->ofdev; | 92 | sd->op = &isa_dev->ofdev; |
93 | sd->iommu = isa_br->ofdev.dev.parent->archdata.iommu; | 93 | sd->iommu = isa_br->ofdev.dev.parent->archdata.iommu; |
94 | sd->stc = isa_br->ofdev.dev.parent->archdata.stc; | 94 | sd->stc = isa_br->ofdev.dev.parent->archdata.stc; |
95 | sd->numa_node = isa_br->ofdev.dev.parent->archdata.numa_node; | ||
95 | 96 | ||
96 | isa_dev->ofdev.node = dp; | 97 | isa_dev->ofdev.node = dp; |
97 | isa_dev->ofdev.dev.parent = &isa_br->ofdev.dev; | 98 | isa_dev->ofdev.dev.parent = &isa_br->ofdev.dev; |
diff --git a/arch/sparc64/kernel/mdesc.c b/arch/sparc64/kernel/mdesc.c index 910083589569..dde52bcf5c64 100644 --- a/arch/sparc64/kernel/mdesc.c +++ b/arch/sparc64/kernel/mdesc.c | |||
@@ -1,10 +1,10 @@ | |||
1 | /* mdesc.c: Sun4V machine description handling. | 1 | /* mdesc.c: Sun4V machine description handling. |
2 | * | 2 | * |
3 | * Copyright (C) 2007 David S. Miller <davem@davemloft.net> | 3 | * Copyright (C) 2007, 2008 David S. Miller <davem@davemloft.net> |
4 | */ | 4 | */ |
5 | #include <linux/kernel.h> | 5 | #include <linux/kernel.h> |
6 | #include <linux/types.h> | 6 | #include <linux/types.h> |
7 | #include <linux/bootmem.h> | 7 | #include <linux/lmb.h> |
8 | #include <linux/log2.h> | 8 | #include <linux/log2.h> |
9 | #include <linux/list.h> | 9 | #include <linux/list.h> |
10 | #include <linux/slab.h> | 10 | #include <linux/slab.h> |
@@ -84,24 +84,28 @@ static void mdesc_handle_init(struct mdesc_handle *hp, | |||
84 | hp->handle_size = handle_size; | 84 | hp->handle_size = handle_size; |
85 | } | 85 | } |
86 | 86 | ||
87 | static struct mdesc_handle * __init mdesc_bootmem_alloc(unsigned int mdesc_size) | 87 | static struct mdesc_handle * __init mdesc_lmb_alloc(unsigned int mdesc_size) |
88 | { | 88 | { |
89 | struct mdesc_handle *hp; | ||
90 | unsigned int handle_size, alloc_size; | 89 | unsigned int handle_size, alloc_size; |
90 | struct mdesc_handle *hp; | ||
91 | unsigned long paddr; | ||
91 | 92 | ||
92 | handle_size = (sizeof(struct mdesc_handle) - | 93 | handle_size = (sizeof(struct mdesc_handle) - |
93 | sizeof(struct mdesc_hdr) + | 94 | sizeof(struct mdesc_hdr) + |
94 | mdesc_size); | 95 | mdesc_size); |
95 | alloc_size = PAGE_ALIGN(handle_size); | 96 | alloc_size = PAGE_ALIGN(handle_size); |
96 | 97 | ||
97 | hp = __alloc_bootmem(alloc_size, PAGE_SIZE, 0UL); | 98 | paddr = lmb_alloc(alloc_size, PAGE_SIZE); |
98 | if (hp) | ||
99 | mdesc_handle_init(hp, handle_size, hp); | ||
100 | 99 | ||
100 | hp = NULL; | ||
101 | if (paddr) { | ||
102 | hp = __va(paddr); | ||
103 | mdesc_handle_init(hp, handle_size, hp); | ||
104 | } | ||
101 | return hp; | 105 | return hp; |
102 | } | 106 | } |
103 | 107 | ||
104 | static void mdesc_bootmem_free(struct mdesc_handle *hp) | 108 | static void mdesc_lmb_free(struct mdesc_handle *hp) |
105 | { | 109 | { |
106 | unsigned int alloc_size, handle_size = hp->handle_size; | 110 | unsigned int alloc_size, handle_size = hp->handle_size; |
107 | unsigned long start, end; | 111 | unsigned long start, end; |
@@ -124,9 +128,9 @@ static void mdesc_bootmem_free(struct mdesc_handle *hp) | |||
124 | } | 128 | } |
125 | } | 129 | } |
126 | 130 | ||
127 | static struct mdesc_mem_ops bootmem_mdesc_ops = { | 131 | static struct mdesc_mem_ops lmb_mdesc_ops = { |
128 | .alloc = mdesc_bootmem_alloc, | 132 | .alloc = mdesc_lmb_alloc, |
129 | .free = mdesc_bootmem_free, | 133 | .free = mdesc_lmb_free, |
130 | }; | 134 | }; |
131 | 135 | ||
132 | static struct mdesc_handle *mdesc_kmalloc(unsigned int mdesc_size) | 136 | static struct mdesc_handle *mdesc_kmalloc(unsigned int mdesc_size) |
@@ -888,7 +892,7 @@ void __init sun4v_mdesc_init(void) | |||
888 | 892 | ||
889 | printk("MDESC: Size is %lu bytes.\n", len); | 893 | printk("MDESC: Size is %lu bytes.\n", len); |
890 | 894 | ||
891 | hp = mdesc_alloc(len, &bootmem_mdesc_ops); | 895 | hp = mdesc_alloc(len, &lmb_mdesc_ops); |
892 | if (hp == NULL) { | 896 | if (hp == NULL) { |
893 | prom_printf("MDESC: alloc of %lu bytes failed.\n", len); | 897 | prom_printf("MDESC: alloc of %lu bytes failed.\n", len); |
894 | prom_halt(); | 898 | prom_halt(); |
diff --git a/arch/sparc64/kernel/of_device.c b/arch/sparc64/kernel/of_device.c index 0fd9db95b896..9e58e8cba1c3 100644 --- a/arch/sparc64/kernel/of_device.c +++ b/arch/sparc64/kernel/of_device.c | |||
@@ -6,6 +6,7 @@ | |||
6 | #include <linux/mod_devicetable.h> | 6 | #include <linux/mod_devicetable.h> |
7 | #include <linux/slab.h> | 7 | #include <linux/slab.h> |
8 | #include <linux/errno.h> | 8 | #include <linux/errno.h> |
9 | #include <linux/irq.h> | ||
9 | #include <linux/of_device.h> | 10 | #include <linux/of_device.h> |
10 | #include <linux/of_platform.h> | 11 | #include <linux/of_platform.h> |
11 | 12 | ||
@@ -660,6 +661,7 @@ static unsigned int __init build_one_device_irq(struct of_device *op, | |||
660 | struct device_node *dp = op->node; | 661 | struct device_node *dp = op->node; |
661 | struct device_node *pp, *ip; | 662 | struct device_node *pp, *ip; |
662 | unsigned int orig_irq = irq; | 663 | unsigned int orig_irq = irq; |
664 | int nid; | ||
663 | 665 | ||
664 | if (irq == 0xffffffff) | 666 | if (irq == 0xffffffff) |
665 | return irq; | 667 | return irq; |
@@ -672,7 +674,7 @@ static unsigned int __init build_one_device_irq(struct of_device *op, | |||
672 | printk("%s: direct translate %x --> %x\n", | 674 | printk("%s: direct translate %x --> %x\n", |
673 | dp->full_name, orig_irq, irq); | 675 | dp->full_name, orig_irq, irq); |
674 | 676 | ||
675 | return irq; | 677 | goto out; |
676 | } | 678 | } |
677 | 679 | ||
678 | /* Something more complicated. Walk up to the root, applying | 680 | /* Something more complicated. Walk up to the root, applying |
@@ -744,6 +746,14 @@ static unsigned int __init build_one_device_irq(struct of_device *op, | |||
744 | printk("%s: Apply IRQ trans [%s] %x --> %x\n", | 746 | printk("%s: Apply IRQ trans [%s] %x --> %x\n", |
745 | op->node->full_name, ip->full_name, orig_irq, irq); | 747 | op->node->full_name, ip->full_name, orig_irq, irq); |
746 | 748 | ||
749 | out: | ||
750 | nid = of_node_to_nid(dp); | ||
751 | if (nid != -1) { | ||
752 | cpumask_t numa_mask = node_to_cpumask(nid); | ||
753 | |||
754 | irq_set_affinity(irq, numa_mask); | ||
755 | } | ||
756 | |||
747 | return irq; | 757 | return irq; |
748 | } | 758 | } |
749 | 759 | ||
diff --git a/arch/sparc64/kernel/pci.c b/arch/sparc64/kernel/pci.c index 545356b00e2e..49f912766519 100644 --- a/arch/sparc64/kernel/pci.c +++ b/arch/sparc64/kernel/pci.c | |||
@@ -369,10 +369,12 @@ struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm, | |||
369 | sd->host_controller = pbm; | 369 | sd->host_controller = pbm; |
370 | sd->prom_node = node; | 370 | sd->prom_node = node; |
371 | sd->op = of_find_device_by_node(node); | 371 | sd->op = of_find_device_by_node(node); |
372 | sd->numa_node = pbm->numa_node; | ||
372 | 373 | ||
373 | sd = &sd->op->dev.archdata; | 374 | sd = &sd->op->dev.archdata; |
374 | sd->iommu = pbm->iommu; | 375 | sd->iommu = pbm->iommu; |
375 | sd->stc = &pbm->stc; | 376 | sd->stc = &pbm->stc; |
377 | sd->numa_node = pbm->numa_node; | ||
376 | 378 | ||
377 | type = of_get_property(node, "device_type", NULL); | 379 | type = of_get_property(node, "device_type", NULL); |
378 | if (type == NULL) | 380 | if (type == NULL) |
@@ -1159,6 +1161,16 @@ int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | |||
1159 | return 0; | 1161 | return 0; |
1160 | } | 1162 | } |
1161 | 1163 | ||
1164 | #ifdef CONFIG_NUMA | ||
1165 | int pcibus_to_node(struct pci_bus *pbus) | ||
1166 | { | ||
1167 | struct pci_pbm_info *pbm = pbus->sysdata; | ||
1168 | |||
1169 | return pbm->numa_node; | ||
1170 | } | ||
1171 | EXPORT_SYMBOL(pcibus_to_node); | ||
1172 | #endif | ||
1173 | |||
1162 | /* Return the domain nuber for this pci bus */ | 1174 | /* Return the domain nuber for this pci bus */ |
1163 | 1175 | ||
1164 | int pci_domain_nr(struct pci_bus *pbus) | 1176 | int pci_domain_nr(struct pci_bus *pbus) |
diff --git a/arch/sparc64/kernel/pci_fire.c b/arch/sparc64/kernel/pci_fire.c index 7571ed563147..d23bb6f53cda 100644 --- a/arch/sparc64/kernel/pci_fire.c +++ b/arch/sparc64/kernel/pci_fire.c | |||
@@ -71,7 +71,8 @@ static int pci_fire_pbm_iommu_init(struct pci_pbm_info *pbm) | |||
71 | */ | 71 | */ |
72 | fire_write(iommu->iommu_flushinv, ~(u64)0); | 72 | fire_write(iommu->iommu_flushinv, ~(u64)0); |
73 | 73 | ||
74 | err = iommu_table_init(iommu, tsbsize * 8 * 1024, vdma[0], dma_mask); | 74 | err = iommu_table_init(iommu, tsbsize * 8 * 1024, vdma[0], dma_mask, |
75 | pbm->numa_node); | ||
75 | if (err) | 76 | if (err) |
76 | return err; | 77 | return err; |
77 | 78 | ||
@@ -449,6 +450,8 @@ static int __init pci_fire_pbm_init(struct pci_controller_info *p, | |||
449 | pbm->next = pci_pbm_root; | 450 | pbm->next = pci_pbm_root; |
450 | pci_pbm_root = pbm; | 451 | pci_pbm_root = pbm; |
451 | 452 | ||
453 | pbm->numa_node = -1; | ||
454 | |||
452 | pbm->scan_bus = pci_fire_scan_bus; | 455 | pbm->scan_bus = pci_fire_scan_bus; |
453 | pbm->pci_ops = &sun4u_pci_ops; | 456 | pbm->pci_ops = &sun4u_pci_ops; |
454 | pbm->config_space_reg_bits = 12; | 457 | pbm->config_space_reg_bits = 12; |
diff --git a/arch/sparc64/kernel/pci_impl.h b/arch/sparc64/kernel/pci_impl.h index 4a50da13ce48..218bac4ff79b 100644 --- a/arch/sparc64/kernel/pci_impl.h +++ b/arch/sparc64/kernel/pci_impl.h | |||
@@ -148,6 +148,8 @@ struct pci_pbm_info { | |||
148 | struct pci_bus *pci_bus; | 148 | struct pci_bus *pci_bus; |
149 | void (*scan_bus)(struct pci_pbm_info *); | 149 | void (*scan_bus)(struct pci_pbm_info *); |
150 | struct pci_ops *pci_ops; | 150 | struct pci_ops *pci_ops; |
151 | |||
152 | int numa_node; | ||
151 | }; | 153 | }; |
152 | 154 | ||
153 | struct pci_controller_info { | 155 | struct pci_controller_info { |
@@ -161,8 +163,6 @@ extern struct pci_pbm_info *pci_pbm_root; | |||
161 | extern int pci_num_pbms; | 163 | extern int pci_num_pbms; |
162 | 164 | ||
163 | /* PCI bus scanning and fixup support. */ | 165 | /* PCI bus scanning and fixup support. */ |
164 | extern void pci_iommu_table_init(struct iommu *iommu, int tsbsize, | ||
165 | u32 dma_offset, u32 dma_addr_mask); | ||
166 | extern void pci_get_pbm_props(struct pci_pbm_info *pbm); | 166 | extern void pci_get_pbm_props(struct pci_pbm_info *pbm); |
167 | extern struct pci_bus *pci_scan_one_pbm(struct pci_pbm_info *pbm); | 167 | extern struct pci_bus *pci_scan_one_pbm(struct pci_pbm_info *pbm); |
168 | extern void pci_determine_mem_io_space(struct pci_pbm_info *pbm); | 168 | extern void pci_determine_mem_io_space(struct pci_pbm_info *pbm); |
diff --git a/arch/sparc64/kernel/pci_msi.c b/arch/sparc64/kernel/pci_msi.c index d6d64b44af63..db5e8fd8f674 100644 --- a/arch/sparc64/kernel/pci_msi.c +++ b/arch/sparc64/kernel/pci_msi.c | |||
@@ -279,11 +279,17 @@ static int bringup_one_msi_queue(struct pci_pbm_info *pbm, | |||
279 | unsigned long devino) | 279 | unsigned long devino) |
280 | { | 280 | { |
281 | int irq = ops->msiq_build_irq(pbm, msiqid, devino); | 281 | int irq = ops->msiq_build_irq(pbm, msiqid, devino); |
282 | int err; | 282 | int err, nid; |
283 | 283 | ||
284 | if (irq < 0) | 284 | if (irq < 0) |
285 | return irq; | 285 | return irq; |
286 | 286 | ||
287 | nid = pbm->numa_node; | ||
288 | if (nid != -1) { | ||
289 | cpumask_t numa_mask = node_to_cpumask(nid); | ||
290 | |||
291 | irq_set_affinity(irq, numa_mask); | ||
292 | } | ||
287 | err = request_irq(irq, sparc64_msiq_interrupt, 0, | 293 | err = request_irq(irq, sparc64_msiq_interrupt, 0, |
288 | "MSIQ", | 294 | "MSIQ", |
289 | &pbm->msiq_irq_cookies[msiqid - pbm->msiq_first]); | 295 | &pbm->msiq_irq_cookies[msiqid - pbm->msiq_first]); |
diff --git a/arch/sparc64/kernel/pci_psycho.c b/arch/sparc64/kernel/pci_psycho.c index 0bad96e5d184..994dbe0603da 100644 --- a/arch/sparc64/kernel/pci_psycho.c +++ b/arch/sparc64/kernel/pci_psycho.c | |||
@@ -848,7 +848,8 @@ static int psycho_iommu_init(struct pci_pbm_info *pbm) | |||
848 | /* Leave diag mode enabled for full-flushing done | 848 | /* Leave diag mode enabled for full-flushing done |
849 | * in pci_iommu.c | 849 | * in pci_iommu.c |
850 | */ | 850 | */ |
851 | err = iommu_table_init(iommu, IO_TSB_SIZE, 0xc0000000, 0xffffffff); | 851 | err = iommu_table_init(iommu, IO_TSB_SIZE, 0xc0000000, 0xffffffff, |
852 | pbm->numa_node); | ||
852 | if (err) | 853 | if (err) |
853 | return err; | 854 | return err; |
854 | 855 | ||
@@ -979,6 +980,8 @@ static void __init psycho_pbm_init(struct pci_controller_info *p, | |||
979 | pbm->next = pci_pbm_root; | 980 | pbm->next = pci_pbm_root; |
980 | pci_pbm_root = pbm; | 981 | pci_pbm_root = pbm; |
981 | 982 | ||
983 | pbm->numa_node = -1; | ||
984 | |||
982 | pbm->scan_bus = psycho_scan_bus; | 985 | pbm->scan_bus = psycho_scan_bus; |
983 | pbm->pci_ops = &sun4u_pci_ops; | 986 | pbm->pci_ops = &sun4u_pci_ops; |
984 | pbm->config_space_reg_bits = 8; | 987 | pbm->config_space_reg_bits = 8; |
diff --git a/arch/sparc64/kernel/pci_sabre.c b/arch/sparc64/kernel/pci_sabre.c index 1c5f5fa2339f..4c34195baf37 100644 --- a/arch/sparc64/kernel/pci_sabre.c +++ b/arch/sparc64/kernel/pci_sabre.c | |||
@@ -704,7 +704,7 @@ static int sabre_iommu_init(struct pci_pbm_info *pbm, | |||
704 | * in pci_iommu.c | 704 | * in pci_iommu.c |
705 | */ | 705 | */ |
706 | err = iommu_table_init(iommu, tsbsize * 1024 * 8, | 706 | err = iommu_table_init(iommu, tsbsize * 1024 * 8, |
707 | dvma_offset, dma_mask); | 707 | dvma_offset, dma_mask, pbm->numa_node); |
708 | if (err) | 708 | if (err) |
709 | return err; | 709 | return err; |
710 | 710 | ||
@@ -737,6 +737,8 @@ static void __init sabre_pbm_init(struct pci_controller_info *p, | |||
737 | pbm->name = dp->full_name; | 737 | pbm->name = dp->full_name; |
738 | printk("%s: SABRE PCI Bus Module\n", pbm->name); | 738 | printk("%s: SABRE PCI Bus Module\n", pbm->name); |
739 | 739 | ||
740 | pbm->numa_node = -1; | ||
741 | |||
740 | pbm->scan_bus = sabre_scan_bus; | 742 | pbm->scan_bus = sabre_scan_bus; |
741 | pbm->pci_ops = &sun4u_pci_ops; | 743 | pbm->pci_ops = &sun4u_pci_ops; |
742 | pbm->config_space_reg_bits = 8; | 744 | pbm->config_space_reg_bits = 8; |
diff --git a/arch/sparc64/kernel/pci_schizo.c b/arch/sparc64/kernel/pci_schizo.c index e30609362322..615edd9c8e2a 100644 --- a/arch/sparc64/kernel/pci_schizo.c +++ b/arch/sparc64/kernel/pci_schizo.c | |||
@@ -1220,7 +1220,8 @@ static int schizo_pbm_iommu_init(struct pci_pbm_info *pbm) | |||
1220 | /* Leave diag mode enabled for full-flushing done | 1220 | /* Leave diag mode enabled for full-flushing done |
1221 | * in pci_iommu.c | 1221 | * in pci_iommu.c |
1222 | */ | 1222 | */ |
1223 | err = iommu_table_init(iommu, tsbsize * 8 * 1024, vdma[0], dma_mask); | 1223 | err = iommu_table_init(iommu, tsbsize * 8 * 1024, vdma[0], dma_mask, |
1224 | pbm->numa_node); | ||
1224 | if (err) | 1225 | if (err) |
1225 | return err; | 1226 | return err; |
1226 | 1227 | ||
@@ -1379,6 +1380,8 @@ static int __init schizo_pbm_init(struct pci_controller_info *p, | |||
1379 | pbm->next = pci_pbm_root; | 1380 | pbm->next = pci_pbm_root; |
1380 | pci_pbm_root = pbm; | 1381 | pci_pbm_root = pbm; |
1381 | 1382 | ||
1383 | pbm->numa_node = -1; | ||
1384 | |||
1382 | pbm->scan_bus = schizo_scan_bus; | 1385 | pbm->scan_bus = schizo_scan_bus; |
1383 | pbm->pci_ops = &sun4u_pci_ops; | 1386 | pbm->pci_ops = &sun4u_pci_ops; |
1384 | pbm->config_space_reg_bits = 8; | 1387 | pbm->config_space_reg_bits = 8; |
diff --git a/arch/sparc64/kernel/pci_sun4v.c b/arch/sparc64/kernel/pci_sun4v.c index 01839706bd52..e2bb9790039c 100644 --- a/arch/sparc64/kernel/pci_sun4v.c +++ b/arch/sparc64/kernel/pci_sun4v.c | |||
@@ -127,10 +127,12 @@ static inline long iommu_batch_end(void) | |||
127 | static void *dma_4v_alloc_coherent(struct device *dev, size_t size, | 127 | static void *dma_4v_alloc_coherent(struct device *dev, size_t size, |
128 | dma_addr_t *dma_addrp, gfp_t gfp) | 128 | dma_addr_t *dma_addrp, gfp_t gfp) |
129 | { | 129 | { |
130 | struct iommu *iommu; | ||
131 | unsigned long flags, order, first_page, npages, n; | 130 | unsigned long flags, order, first_page, npages, n; |
131 | struct iommu *iommu; | ||
132 | struct page *page; | ||
132 | void *ret; | 133 | void *ret; |
133 | long entry; | 134 | long entry; |
135 | int nid; | ||
134 | 136 | ||
135 | size = IO_PAGE_ALIGN(size); | 137 | size = IO_PAGE_ALIGN(size); |
136 | order = get_order(size); | 138 | order = get_order(size); |
@@ -139,10 +141,12 @@ static void *dma_4v_alloc_coherent(struct device *dev, size_t size, | |||
139 | 141 | ||
140 | npages = size >> IO_PAGE_SHIFT; | 142 | npages = size >> IO_PAGE_SHIFT; |
141 | 143 | ||
142 | first_page = __get_free_pages(gfp, order); | 144 | nid = dev->archdata.numa_node; |
143 | if (unlikely(first_page == 0UL)) | 145 | page = alloc_pages_node(nid, gfp, order); |
146 | if (unlikely(!page)) | ||
144 | return NULL; | 147 | return NULL; |
145 | 148 | ||
149 | first_page = (unsigned long) page_address(page); | ||
146 | memset((char *)first_page, 0, PAGE_SIZE << order); | 150 | memset((char *)first_page, 0, PAGE_SIZE << order); |
147 | 151 | ||
148 | iommu = dev->archdata.iommu; | 152 | iommu = dev->archdata.iommu; |
@@ -899,6 +903,8 @@ static void __init pci_sun4v_pbm_init(struct pci_controller_info *p, | |||
899 | pbm->next = pci_pbm_root; | 903 | pbm->next = pci_pbm_root; |
900 | pci_pbm_root = pbm; | 904 | pci_pbm_root = pbm; |
901 | 905 | ||
906 | pbm->numa_node = of_node_to_nid(dp); | ||
907 | |||
902 | pbm->scan_bus = pci_sun4v_scan_bus; | 908 | pbm->scan_bus = pci_sun4v_scan_bus; |
903 | pbm->pci_ops = &sun4v_pci_ops; | 909 | pbm->pci_ops = &sun4v_pci_ops; |
904 | pbm->config_space_reg_bits = 12; | 910 | pbm->config_space_reg_bits = 12; |
@@ -913,6 +919,7 @@ static void __init pci_sun4v_pbm_init(struct pci_controller_info *p, | |||
913 | pbm->name = dp->full_name; | 919 | pbm->name = dp->full_name; |
914 | 920 | ||
915 | printk("%s: SUN4V PCI Bus Module\n", pbm->name); | 921 | printk("%s: SUN4V PCI Bus Module\n", pbm->name); |
922 | printk("%s: On NUMA node %d\n", pbm->name, pbm->numa_node); | ||
916 | 923 | ||
917 | pci_determine_mem_io_space(pbm); | 924 | pci_determine_mem_io_space(pbm); |
918 | 925 | ||
diff --git a/arch/sparc64/kernel/prom.c b/arch/sparc64/kernel/prom.c index 68964ddcde1e..ed03a18d3b36 100644 --- a/arch/sparc64/kernel/prom.c +++ b/arch/sparc64/kernel/prom.c | |||
@@ -19,8 +19,8 @@ | |||
19 | #include <linux/types.h> | 19 | #include <linux/types.h> |
20 | #include <linux/string.h> | 20 | #include <linux/string.h> |
21 | #include <linux/mm.h> | 21 | #include <linux/mm.h> |
22 | #include <linux/bootmem.h> | ||
23 | #include <linux/module.h> | 22 | #include <linux/module.h> |
23 | #include <linux/lmb.h> | ||
24 | 24 | ||
25 | #include <asm/prom.h> | 25 | #include <asm/prom.h> |
26 | #include <asm/of_device.h> | 26 | #include <asm/of_device.h> |
@@ -122,16 +122,20 @@ int of_find_in_proplist(const char *list, const char *match, int len) | |||
122 | } | 122 | } |
123 | EXPORT_SYMBOL(of_find_in_proplist); | 123 | EXPORT_SYMBOL(of_find_in_proplist); |
124 | 124 | ||
125 | static unsigned int prom_early_allocated; | 125 | static unsigned int prom_early_allocated __initdata; |
126 | 126 | ||
127 | static void * __init prom_early_alloc(unsigned long size) | 127 | static void * __init prom_early_alloc(unsigned long size) |
128 | { | 128 | { |
129 | unsigned long paddr = lmb_alloc(size, SMP_CACHE_BYTES); | ||
129 | void *ret; | 130 | void *ret; |
130 | 131 | ||
131 | ret = __alloc_bootmem(size, SMP_CACHE_BYTES, 0UL); | 132 | if (!paddr) { |
132 | if (ret != NULL) | 133 | prom_printf("prom_early_alloc(%lu) failed\n"); |
133 | memset(ret, 0, size); | 134 | prom_halt(); |
135 | } | ||
134 | 136 | ||
137 | ret = __va(paddr); | ||
138 | memset(ret, 0, size); | ||
135 | prom_early_allocated += size; | 139 | prom_early_allocated += size; |
136 | 140 | ||
137 | return ret; | 141 | return ret; |
diff --git a/arch/sparc64/kernel/rtrap.S b/arch/sparc64/kernel/rtrap.S index 079d18a11d24..ecf6753b204a 100644 --- a/arch/sparc64/kernel/rtrap.S +++ b/arch/sparc64/kernel/rtrap.S | |||
@@ -18,12 +18,6 @@ | |||
18 | #define RTRAP_PSTATE_IRQOFF (PSTATE_RMO|PSTATE_PEF|PSTATE_PRIV) | 18 | #define RTRAP_PSTATE_IRQOFF (PSTATE_RMO|PSTATE_PEF|PSTATE_PRIV) |
19 | #define RTRAP_PSTATE_AG_IRQOFF (PSTATE_RMO|PSTATE_PEF|PSTATE_PRIV|PSTATE_AG) | 19 | #define RTRAP_PSTATE_AG_IRQOFF (PSTATE_RMO|PSTATE_PEF|PSTATE_PRIV|PSTATE_AG) |
20 | 20 | ||
21 | /* Register %l6 keeps track of whether we are returning | ||
22 | * from a system call or not. It is cleared if we call | ||
23 | * do_notify_resume, and it must not be otherwise modified | ||
24 | * until we fully commit to returning to userspace. | ||
25 | */ | ||
26 | |||
27 | .text | 21 | .text |
28 | .align 32 | 22 | .align 32 |
29 | __handle_softirq: | 23 | __handle_softirq: |
@@ -56,14 +50,12 @@ __handle_user_windows: | |||
56 | be,pt %xcc, __handle_user_windows_continue | 50 | be,pt %xcc, __handle_user_windows_continue |
57 | nop | 51 | nop |
58 | mov %l5, %o1 | 52 | mov %l5, %o1 |
59 | mov %l6, %o2 | ||
60 | add %sp, PTREGS_OFF, %o0 | 53 | add %sp, PTREGS_OFF, %o0 |
61 | mov %l0, %o3 | 54 | mov %l0, %o2 |
62 | 55 | ||
63 | call do_notify_resume | 56 | call do_notify_resume |
64 | wrpr %g0, RTRAP_PSTATE, %pstate | 57 | wrpr %g0, RTRAP_PSTATE, %pstate |
65 | wrpr %g0, RTRAP_PSTATE_IRQOFF, %pstate | 58 | wrpr %g0, RTRAP_PSTATE_IRQOFF, %pstate |
66 | clr %l6 | ||
67 | /* Signal delivery can modify pt_regs tstate, so we must | 59 | /* Signal delivery can modify pt_regs tstate, so we must |
68 | * reload it. | 60 | * reload it. |
69 | */ | 61 | */ |
@@ -99,14 +91,12 @@ __handle_perfctrs: | |||
99 | be,pt %xcc, __handle_perfctrs_continue | 91 | be,pt %xcc, __handle_perfctrs_continue |
100 | sethi %hi(TSTATE_PEF), %o0 | 92 | sethi %hi(TSTATE_PEF), %o0 |
101 | mov %l5, %o1 | 93 | mov %l5, %o1 |
102 | mov %l6, %o2 | ||
103 | add %sp, PTREGS_OFF, %o0 | 94 | add %sp, PTREGS_OFF, %o0 |
104 | mov %l0, %o3 | 95 | mov %l0, %o2 |
105 | call do_notify_resume | 96 | call do_notify_resume |
106 | 97 | ||
107 | wrpr %g0, RTRAP_PSTATE, %pstate | 98 | wrpr %g0, RTRAP_PSTATE, %pstate |
108 | wrpr %g0, RTRAP_PSTATE_IRQOFF, %pstate | 99 | wrpr %g0, RTRAP_PSTATE_IRQOFF, %pstate |
109 | clr %l6 | ||
110 | /* Signal delivery can modify pt_regs tstate, so we must | 100 | /* Signal delivery can modify pt_regs tstate, so we must |
111 | * reload it. | 101 | * reload it. |
112 | */ | 102 | */ |
@@ -127,13 +117,11 @@ __handle_userfpu: | |||
127 | 117 | ||
128 | __handle_signal: | 118 | __handle_signal: |
129 | mov %l5, %o1 | 119 | mov %l5, %o1 |
130 | mov %l6, %o2 | ||
131 | add %sp, PTREGS_OFF, %o0 | 120 | add %sp, PTREGS_OFF, %o0 |
132 | mov %l0, %o3 | 121 | mov %l0, %o2 |
133 | call do_notify_resume | 122 | call do_notify_resume |
134 | wrpr %g0, RTRAP_PSTATE, %pstate | 123 | wrpr %g0, RTRAP_PSTATE, %pstate |
135 | wrpr %g0, RTRAP_PSTATE_IRQOFF, %pstate | 124 | wrpr %g0, RTRAP_PSTATE_IRQOFF, %pstate |
136 | clr %l6 | ||
137 | 125 | ||
138 | /* Signal delivery can modify pt_regs tstate, so we must | 126 | /* Signal delivery can modify pt_regs tstate, so we must |
139 | * reload it. | 127 | * reload it. |
@@ -145,9 +133,8 @@ __handle_signal: | |||
145 | andn %l1, %l4, %l1 | 133 | andn %l1, %l4, %l1 |
146 | 134 | ||
147 | .align 64 | 135 | .align 64 |
148 | .globl rtrap_irq, rtrap_clr_l6, rtrap, irqsz_patchme, rtrap_xcall | 136 | .globl rtrap_irq, rtrap, irqsz_patchme, rtrap_xcall |
149 | rtrap_irq: | 137 | rtrap_irq: |
150 | rtrap_clr_l6: clr %l6 | ||
151 | rtrap: | 138 | rtrap: |
152 | #ifndef CONFIG_SMP | 139 | #ifndef CONFIG_SMP |
153 | sethi %hi(per_cpu____cpu_data), %l0 | 140 | sethi %hi(per_cpu____cpu_data), %l0 |
diff --git a/arch/sparc64/kernel/sbus.c b/arch/sparc64/kernel/sbus.c index d1fb13ba02b5..fa2827c4a3ad 100644 --- a/arch/sparc64/kernel/sbus.c +++ b/arch/sparc64/kernel/sbus.c | |||
@@ -544,6 +544,7 @@ static void __init sbus_iommu_init(int __node, struct sbus_bus *sbus) | |||
544 | 544 | ||
545 | sbus->ofdev.dev.archdata.iommu = iommu; | 545 | sbus->ofdev.dev.archdata.iommu = iommu; |
546 | sbus->ofdev.dev.archdata.stc = strbuf; | 546 | sbus->ofdev.dev.archdata.stc = strbuf; |
547 | sbus->ofdev.dev.archdata.numa_node = -1; | ||
547 | 548 | ||
548 | reg_base = regs + SYSIO_IOMMUREG_BASE; | 549 | reg_base = regs + SYSIO_IOMMUREG_BASE; |
549 | iommu->iommu_control = reg_base + IOMMU_CONTROL; | 550 | iommu->iommu_control = reg_base + IOMMU_CONTROL; |
@@ -575,7 +576,7 @@ static void __init sbus_iommu_init(int __node, struct sbus_bus *sbus) | |||
575 | sbus->portid, regs); | 576 | sbus->portid, regs); |
576 | 577 | ||
577 | /* Setup for TSB_SIZE=7, TBW_SIZE=0, MMU_DE=1, MMU_EN=1 */ | 578 | /* Setup for TSB_SIZE=7, TBW_SIZE=0, MMU_DE=1, MMU_EN=1 */ |
578 | if (iommu_table_init(iommu, IO_TSB_SIZE, MAP_BASE, 0xffffffff)) | 579 | if (iommu_table_init(iommu, IO_TSB_SIZE, MAP_BASE, 0xffffffff, -1)) |
579 | goto fatal_memory_error; | 580 | goto fatal_memory_error; |
580 | 581 | ||
581 | control = upa_readq(iommu->iommu_control); | 582 | control = upa_readq(iommu->iommu_control); |
diff --git a/arch/sparc64/kernel/setup.c b/arch/sparc64/kernel/setup.c index 6acb4c51cfe4..da5e6ee0c661 100644 --- a/arch/sparc64/kernel/setup.c +++ b/arch/sparc64/kernel/setup.c | |||
@@ -82,7 +82,7 @@ unsigned long cmdline_memory_size = 0; | |||
82 | static struct console prom_early_console = { | 82 | static struct console prom_early_console = { |
83 | .name = "earlyprom", | 83 | .name = "earlyprom", |
84 | .write = prom_console_write, | 84 | .write = prom_console_write, |
85 | .flags = CON_PRINTBUFFER | CON_BOOT, | 85 | .flags = CON_PRINTBUFFER | CON_BOOT | CON_ANYTIME, |
86 | .index = -1, | 86 | .index = -1, |
87 | }; | 87 | }; |
88 | 88 | ||
@@ -281,6 +281,7 @@ void __init setup_arch(char **cmdline_p) | |||
281 | /* Initialize PROM console and command line. */ | 281 | /* Initialize PROM console and command line. */ |
282 | *cmdline_p = prom_getbootargs(); | 282 | *cmdline_p = prom_getbootargs(); |
283 | strcpy(boot_command_line, *cmdline_p); | 283 | strcpy(boot_command_line, *cmdline_p); |
284 | parse_early_param(); | ||
284 | 285 | ||
285 | boot_flags_init(*cmdline_p); | 286 | boot_flags_init(*cmdline_p); |
286 | register_console(&prom_early_console); | 287 | register_console(&prom_early_console); |
diff --git a/arch/sparc64/kernel/signal.c b/arch/sparc64/kernel/signal.c index 1c47009eb5ec..77a3e8592cbc 100644 --- a/arch/sparc64/kernel/signal.c +++ b/arch/sparc64/kernel/signal.c | |||
@@ -510,15 +510,20 @@ static inline void syscall_restart(unsigned long orig_i0, struct pt_regs *regs, | |||
510 | * want to handle. Thus you cannot kill init even with a SIGKILL even by | 510 | * want to handle. Thus you cannot kill init even with a SIGKILL even by |
511 | * mistake. | 511 | * mistake. |
512 | */ | 512 | */ |
513 | static void do_signal(struct pt_regs *regs, unsigned long orig_i0, int restart_syscall) | 513 | static void do_signal(struct pt_regs *regs, unsigned long orig_i0) |
514 | { | 514 | { |
515 | siginfo_t info; | ||
516 | struct signal_deliver_cookie cookie; | 515 | struct signal_deliver_cookie cookie; |
517 | struct k_sigaction ka; | 516 | struct k_sigaction ka; |
518 | int signr; | ||
519 | sigset_t *oldset; | 517 | sigset_t *oldset; |
518 | siginfo_t info; | ||
519 | int signr, tt; | ||
520 | 520 | ||
521 | cookie.restart_syscall = restart_syscall; | 521 | tt = regs->magic & 0x1ff; |
522 | if (tt == 0x110 || tt == 0x111 || tt == 0x16d) { | ||
523 | regs->magic &= ~0x1ff; | ||
524 | cookie.restart_syscall = 1; | ||
525 | } else | ||
526 | cookie.restart_syscall = 0; | ||
522 | cookie.orig_i0 = orig_i0; | 527 | cookie.orig_i0 = orig_i0; |
523 | 528 | ||
524 | if (test_thread_flag(TIF_RESTORE_SIGMASK)) | 529 | if (test_thread_flag(TIF_RESTORE_SIGMASK)) |
@@ -529,9 +534,8 @@ static void do_signal(struct pt_regs *regs, unsigned long orig_i0, int restart_s | |||
529 | #ifdef CONFIG_SPARC32_COMPAT | 534 | #ifdef CONFIG_SPARC32_COMPAT |
530 | if (test_thread_flag(TIF_32BIT)) { | 535 | if (test_thread_flag(TIF_32BIT)) { |
531 | extern void do_signal32(sigset_t *, struct pt_regs *, | 536 | extern void do_signal32(sigset_t *, struct pt_regs *, |
532 | unsigned long, int); | 537 | struct signal_deliver_cookie *); |
533 | do_signal32(oldset, regs, orig_i0, | 538 | do_signal32(oldset, regs, &cookie); |
534 | cookie.restart_syscall); | ||
535 | return; | 539 | return; |
536 | } | 540 | } |
537 | #endif | 541 | #endif |
@@ -539,7 +543,7 @@ static void do_signal(struct pt_regs *regs, unsigned long orig_i0, int restart_s | |||
539 | signr = get_signal_to_deliver(&info, &ka, regs, &cookie); | 543 | signr = get_signal_to_deliver(&info, &ka, regs, &cookie); |
540 | if (signr > 0) { | 544 | if (signr > 0) { |
541 | if (cookie.restart_syscall) | 545 | if (cookie.restart_syscall) |
542 | syscall_restart(orig_i0, regs, &ka.sa); | 546 | syscall_restart(cookie.orig_i0, regs, &ka.sa); |
543 | handle_signal(signr, &ka, &info, oldset, regs); | 547 | handle_signal(signr, &ka, &info, oldset, regs); |
544 | 548 | ||
545 | /* a signal was successfully delivered; the saved | 549 | /* a signal was successfully delivered; the saved |
@@ -576,11 +580,10 @@ static void do_signal(struct pt_regs *regs, unsigned long orig_i0, int restart_s | |||
576 | } | 580 | } |
577 | } | 581 | } |
578 | 582 | ||
579 | void do_notify_resume(struct pt_regs *regs, unsigned long orig_i0, int restart_syscall, | 583 | void do_notify_resume(struct pt_regs *regs, unsigned long orig_i0, unsigned long thread_info_flags) |
580 | unsigned long thread_info_flags) | ||
581 | { | 584 | { |
582 | if (thread_info_flags & (_TIF_SIGPENDING | _TIF_RESTORE_SIGMASK)) | 585 | if (thread_info_flags & (_TIF_SIGPENDING | _TIF_RESTORE_SIGMASK)) |
583 | do_signal(regs, orig_i0, restart_syscall); | 586 | do_signal(regs, orig_i0); |
584 | } | 587 | } |
585 | 588 | ||
586 | void ptrace_signal_deliver(struct pt_regs *regs, void *cookie) | 589 | void ptrace_signal_deliver(struct pt_regs *regs, void *cookie) |
diff --git a/arch/sparc64/kernel/signal32.c b/arch/sparc64/kernel/signal32.c index 74e0512f135c..43cdec64d9c9 100644 --- a/arch/sparc64/kernel/signal32.c +++ b/arch/sparc64/kernel/signal32.c | |||
@@ -982,20 +982,16 @@ static inline void syscall_restart32(unsigned long orig_i0, struct pt_regs *regs | |||
982 | * mistake. | 982 | * mistake. |
983 | */ | 983 | */ |
984 | void do_signal32(sigset_t *oldset, struct pt_regs * regs, | 984 | void do_signal32(sigset_t *oldset, struct pt_regs * regs, |
985 | unsigned long orig_i0, int restart_syscall) | 985 | struct signal_deliver_cookie *cookie) |
986 | { | 986 | { |
987 | siginfo_t info; | ||
988 | struct signal_deliver_cookie cookie; | ||
989 | struct k_sigaction ka; | 987 | struct k_sigaction ka; |
988 | siginfo_t info; | ||
990 | int signr; | 989 | int signr; |
991 | 990 | ||
992 | cookie.restart_syscall = restart_syscall; | 991 | signr = get_signal_to_deliver(&info, &ka, regs, cookie); |
993 | cookie.orig_i0 = orig_i0; | ||
994 | |||
995 | signr = get_signal_to_deliver(&info, &ka, regs, &cookie); | ||
996 | if (signr > 0) { | 992 | if (signr > 0) { |
997 | if (cookie.restart_syscall) | 993 | if (cookie->restart_syscall) |
998 | syscall_restart32(orig_i0, regs, &ka.sa); | 994 | syscall_restart32(cookie->orig_i0, regs, &ka.sa); |
999 | handle_signal32(signr, &ka, &info, oldset, regs); | 995 | handle_signal32(signr, &ka, &info, oldset, regs); |
1000 | 996 | ||
1001 | /* a signal was successfully delivered; the saved | 997 | /* a signal was successfully delivered; the saved |
@@ -1007,16 +1003,16 @@ void do_signal32(sigset_t *oldset, struct pt_regs * regs, | |||
1007 | clear_thread_flag(TIF_RESTORE_SIGMASK); | 1003 | clear_thread_flag(TIF_RESTORE_SIGMASK); |
1008 | return; | 1004 | return; |
1009 | } | 1005 | } |
1010 | if (cookie.restart_syscall && | 1006 | if (cookie->restart_syscall && |
1011 | (regs->u_regs[UREG_I0] == ERESTARTNOHAND || | 1007 | (regs->u_regs[UREG_I0] == ERESTARTNOHAND || |
1012 | regs->u_regs[UREG_I0] == ERESTARTSYS || | 1008 | regs->u_regs[UREG_I0] == ERESTARTSYS || |
1013 | regs->u_regs[UREG_I0] == ERESTARTNOINTR)) { | 1009 | regs->u_regs[UREG_I0] == ERESTARTNOINTR)) { |
1014 | /* replay the system call when we are done */ | 1010 | /* replay the system call when we are done */ |
1015 | regs->u_regs[UREG_I0] = cookie.orig_i0; | 1011 | regs->u_regs[UREG_I0] = cookie->orig_i0; |
1016 | regs->tpc -= 4; | 1012 | regs->tpc -= 4; |
1017 | regs->tnpc -= 4; | 1013 | regs->tnpc -= 4; |
1018 | } | 1014 | } |
1019 | if (cookie.restart_syscall && | 1015 | if (cookie->restart_syscall && |
1020 | regs->u_regs[UREG_I0] == ERESTART_RESTARTBLOCK) { | 1016 | regs->u_regs[UREG_I0] == ERESTART_RESTARTBLOCK) { |
1021 | regs->u_regs[UREG_G1] = __NR_restart_syscall; | 1017 | regs->u_regs[UREG_G1] = __NR_restart_syscall; |
1022 | regs->tpc -= 4; | 1018 | regs->tpc -= 4; |
diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c index 59f020d69d4c..409dd71f2738 100644 --- a/arch/sparc64/kernel/smp.c +++ b/arch/sparc64/kernel/smp.c | |||
@@ -20,7 +20,7 @@ | |||
20 | #include <linux/cache.h> | 20 | #include <linux/cache.h> |
21 | #include <linux/jiffies.h> | 21 | #include <linux/jiffies.h> |
22 | #include <linux/profile.h> | 22 | #include <linux/profile.h> |
23 | #include <linux/bootmem.h> | 23 | #include <linux/lmb.h> |
24 | 24 | ||
25 | #include <asm/head.h> | 25 | #include <asm/head.h> |
26 | #include <asm/ptrace.h> | 26 | #include <asm/ptrace.h> |
@@ -866,14 +866,21 @@ void smp_call_function_client(int irq, struct pt_regs *regs) | |||
866 | void *info = call_data->info; | 866 | void *info = call_data->info; |
867 | 867 | ||
868 | clear_softint(1 << irq); | 868 | clear_softint(1 << irq); |
869 | |||
870 | irq_enter(); | ||
871 | |||
872 | if (!call_data->wait) { | ||
873 | /* let initiator proceed after getting data */ | ||
874 | atomic_inc(&call_data->finished); | ||
875 | } | ||
876 | |||
877 | func(info); | ||
878 | |||
879 | irq_exit(); | ||
880 | |||
869 | if (call_data->wait) { | 881 | if (call_data->wait) { |
870 | /* let initiator proceed only after completion */ | 882 | /* let initiator proceed only after completion */ |
871 | func(info); | ||
872 | atomic_inc(&call_data->finished); | 883 | atomic_inc(&call_data->finished); |
873 | } else { | ||
874 | /* let initiator proceed after getting data */ | ||
875 | atomic_inc(&call_data->finished); | ||
876 | func(info); | ||
877 | } | 884 | } |
878 | } | 885 | } |
879 | 886 | ||
@@ -1032,7 +1039,9 @@ void smp_receive_signal(int cpu) | |||
1032 | 1039 | ||
1033 | void smp_receive_signal_client(int irq, struct pt_regs *regs) | 1040 | void smp_receive_signal_client(int irq, struct pt_regs *regs) |
1034 | { | 1041 | { |
1042 | irq_enter(); | ||
1035 | clear_softint(1 << irq); | 1043 | clear_softint(1 << irq); |
1044 | irq_exit(); | ||
1036 | } | 1045 | } |
1037 | 1046 | ||
1038 | void smp_new_mmu_context_version_client(int irq, struct pt_regs *regs) | 1047 | void smp_new_mmu_context_version_client(int irq, struct pt_regs *regs) |
@@ -1040,6 +1049,8 @@ void smp_new_mmu_context_version_client(int irq, struct pt_regs *regs) | |||
1040 | struct mm_struct *mm; | 1049 | struct mm_struct *mm; |
1041 | unsigned long flags; | 1050 | unsigned long flags; |
1042 | 1051 | ||
1052 | irq_enter(); | ||
1053 | |||
1043 | clear_softint(1 << irq); | 1054 | clear_softint(1 << irq); |
1044 | 1055 | ||
1045 | /* See if we need to allocate a new TLB context because | 1056 | /* See if we need to allocate a new TLB context because |
@@ -1059,6 +1070,8 @@ void smp_new_mmu_context_version_client(int irq, struct pt_regs *regs) | |||
1059 | load_secondary_context(mm); | 1070 | load_secondary_context(mm); |
1060 | __flush_tlb_mm(CTX_HWBITS(mm->context), | 1071 | __flush_tlb_mm(CTX_HWBITS(mm->context), |
1061 | SECONDARY_CONTEXT); | 1072 | SECONDARY_CONTEXT); |
1073 | |||
1074 | irq_exit(); | ||
1062 | } | 1075 | } |
1063 | 1076 | ||
1064 | void smp_new_mmu_context_version(void) | 1077 | void smp_new_mmu_context_version(void) |
@@ -1217,6 +1230,8 @@ void smp_penguin_jailcell(int irq, struct pt_regs *regs) | |||
1217 | { | 1230 | { |
1218 | clear_softint(1 << irq); | 1231 | clear_softint(1 << irq); |
1219 | 1232 | ||
1233 | irq_enter(); | ||
1234 | |||
1220 | preempt_disable(); | 1235 | preempt_disable(); |
1221 | 1236 | ||
1222 | __asm__ __volatile__("flushw"); | 1237 | __asm__ __volatile__("flushw"); |
@@ -1229,6 +1244,8 @@ void smp_penguin_jailcell(int irq, struct pt_regs *regs) | |||
1229 | prom_world(0); | 1244 | prom_world(0); |
1230 | 1245 | ||
1231 | preempt_enable(); | 1246 | preempt_enable(); |
1247 | |||
1248 | irq_exit(); | ||
1232 | } | 1249 | } |
1233 | 1250 | ||
1234 | /* /proc/profile writes can call this, don't __init it please. */ | 1251 | /* /proc/profile writes can call this, don't __init it please. */ |
@@ -1431,7 +1448,7 @@ EXPORT_SYMBOL(__per_cpu_shift); | |||
1431 | 1448 | ||
1432 | void __init real_setup_per_cpu_areas(void) | 1449 | void __init real_setup_per_cpu_areas(void) |
1433 | { | 1450 | { |
1434 | unsigned long goal, size, i; | 1451 | unsigned long paddr, goal, size, i; |
1435 | char *ptr; | 1452 | char *ptr; |
1436 | 1453 | ||
1437 | /* Copy section for each CPU (we discard the original) */ | 1454 | /* Copy section for each CPU (we discard the original) */ |
@@ -1441,8 +1458,13 @@ void __init real_setup_per_cpu_areas(void) | |||
1441 | for (size = PAGE_SIZE; size < goal; size <<= 1UL) | 1458 | for (size = PAGE_SIZE; size < goal; size <<= 1UL) |
1442 | __per_cpu_shift++; | 1459 | __per_cpu_shift++; |
1443 | 1460 | ||
1444 | ptr = alloc_bootmem_pages(size * NR_CPUS); | 1461 | paddr = lmb_alloc(size * NR_CPUS, PAGE_SIZE); |
1462 | if (!paddr) { | ||
1463 | prom_printf("Cannot allocate per-cpu memory.\n"); | ||
1464 | prom_halt(); | ||
1465 | } | ||
1445 | 1466 | ||
1467 | ptr = __va(paddr); | ||
1446 | __per_cpu_base = ptr - __per_cpu_start; | 1468 | __per_cpu_base = ptr - __per_cpu_start; |
1447 | 1469 | ||
1448 | for (i = 0; i < NR_CPUS; i++, ptr += size) | 1470 | for (i = 0; i < NR_CPUS; i++, ptr += size) |
diff --git a/arch/sparc64/kernel/sparc64_ksyms.c b/arch/sparc64/kernel/sparc64_ksyms.c index 38736460b8db..66336590e830 100644 --- a/arch/sparc64/kernel/sparc64_ksyms.c +++ b/arch/sparc64/kernel/sparc64_ksyms.c | |||
@@ -68,8 +68,6 @@ extern void *__memscan_zero(void *, size_t); | |||
68 | extern void *__memscan_generic(void *, int, size_t); | 68 | extern void *__memscan_generic(void *, int, size_t); |
69 | extern int __memcmp(const void *, const void *, __kernel_size_t); | 69 | extern int __memcmp(const void *, const void *, __kernel_size_t); |
70 | extern __kernel_size_t strlen(const char *); | 70 | extern __kernel_size_t strlen(const char *); |
71 | extern void linux_sparc_syscall(void); | ||
72 | extern void rtrap(void); | ||
73 | extern void show_regs(struct pt_regs *); | 71 | extern void show_regs(struct pt_regs *); |
74 | extern void syscall_trace(struct pt_regs *, int); | 72 | extern void syscall_trace(struct pt_regs *, int); |
75 | extern void sys_sigsuspend(void); | 73 | extern void sys_sigsuspend(void); |
diff --git a/arch/sparc64/kernel/stacktrace.c b/arch/sparc64/kernel/stacktrace.c index 84d39e873e88..01b52f561af4 100644 --- a/arch/sparc64/kernel/stacktrace.c +++ b/arch/sparc64/kernel/stacktrace.c | |||
@@ -20,6 +20,8 @@ void save_stack_trace(struct stack_trace *trace) | |||
20 | thread_base = (unsigned long) tp; | 20 | thread_base = (unsigned long) tp; |
21 | do { | 21 | do { |
22 | struct reg_window *rw; | 22 | struct reg_window *rw; |
23 | struct pt_regs *regs; | ||
24 | unsigned long pc; | ||
23 | 25 | ||
24 | /* Bogus frame pointer? */ | 26 | /* Bogus frame pointer? */ |
25 | if (fp < (thread_base + sizeof(struct thread_info)) || | 27 | if (fp < (thread_base + sizeof(struct thread_info)) || |
@@ -27,11 +29,19 @@ void save_stack_trace(struct stack_trace *trace) | |||
27 | break; | 29 | break; |
28 | 30 | ||
29 | rw = (struct reg_window *) fp; | 31 | rw = (struct reg_window *) fp; |
32 | regs = (struct pt_regs *) (rw + 1); | ||
33 | |||
34 | if ((regs->magic & ~0x1ff) == PT_REGS_MAGIC) { | ||
35 | pc = regs->tpc; | ||
36 | fp = regs->u_regs[UREG_I6] + STACK_BIAS; | ||
37 | } else { | ||
38 | pc = rw->ins[7]; | ||
39 | fp = rw->ins[6] + STACK_BIAS; | ||
40 | } | ||
41 | |||
30 | if (trace->skip > 0) | 42 | if (trace->skip > 0) |
31 | trace->skip--; | 43 | trace->skip--; |
32 | else | 44 | else |
33 | trace->entries[trace->nr_entries++] = rw->ins[7]; | 45 | trace->entries[trace->nr_entries++] = pc; |
34 | |||
35 | fp = rw->ins[6] + STACK_BIAS; | ||
36 | } while (trace->nr_entries < trace->max_entries); | 46 | } while (trace->nr_entries < trace->max_entries); |
37 | } | 47 | } |
diff --git a/arch/sparc64/kernel/sun4v_tlb_miss.S b/arch/sparc64/kernel/sun4v_tlb_miss.S index fd9430562e0b..e1fbf8c75787 100644 --- a/arch/sparc64/kernel/sun4v_tlb_miss.S +++ b/arch/sparc64/kernel/sun4v_tlb_miss.S | |||
@@ -262,7 +262,7 @@ sun4v_iacc: | |||
262 | mov %l5, %o2 | 262 | mov %l5, %o2 |
263 | call sun4v_insn_access_exception | 263 | call sun4v_insn_access_exception |
264 | add %sp, PTREGS_OFF, %o0 | 264 | add %sp, PTREGS_OFF, %o0 |
265 | ba,a,pt %xcc, rtrap_clr_l6 | 265 | ba,a,pt %xcc, rtrap |
266 | 266 | ||
267 | /* Instruction Access Exception, tl1. */ | 267 | /* Instruction Access Exception, tl1. */ |
268 | sun4v_iacc_tl1: | 268 | sun4v_iacc_tl1: |
@@ -278,7 +278,7 @@ sun4v_iacc_tl1: | |||
278 | mov %l5, %o2 | 278 | mov %l5, %o2 |
279 | call sun4v_insn_access_exception_tl1 | 279 | call sun4v_insn_access_exception_tl1 |
280 | add %sp, PTREGS_OFF, %o0 | 280 | add %sp, PTREGS_OFF, %o0 |
281 | ba,a,pt %xcc, rtrap_clr_l6 | 281 | ba,a,pt %xcc, rtrap |
282 | 282 | ||
283 | /* Data Access Exception, tl0. */ | 283 | /* Data Access Exception, tl0. */ |
284 | sun4v_dacc: | 284 | sun4v_dacc: |
@@ -294,7 +294,7 @@ sun4v_dacc: | |||
294 | mov %l5, %o2 | 294 | mov %l5, %o2 |
295 | call sun4v_data_access_exception | 295 | call sun4v_data_access_exception |
296 | add %sp, PTREGS_OFF, %o0 | 296 | add %sp, PTREGS_OFF, %o0 |
297 | ba,a,pt %xcc, rtrap_clr_l6 | 297 | ba,a,pt %xcc, rtrap |
298 | 298 | ||
299 | /* Data Access Exception, tl1. */ | 299 | /* Data Access Exception, tl1. */ |
300 | sun4v_dacc_tl1: | 300 | sun4v_dacc_tl1: |
@@ -310,7 +310,7 @@ sun4v_dacc_tl1: | |||
310 | mov %l5, %o2 | 310 | mov %l5, %o2 |
311 | call sun4v_data_access_exception_tl1 | 311 | call sun4v_data_access_exception_tl1 |
312 | add %sp, PTREGS_OFF, %o0 | 312 | add %sp, PTREGS_OFF, %o0 |
313 | ba,a,pt %xcc, rtrap_clr_l6 | 313 | ba,a,pt %xcc, rtrap |
314 | 314 | ||
315 | /* Memory Address Unaligned. */ | 315 | /* Memory Address Unaligned. */ |
316 | sun4v_mna: | 316 | sun4v_mna: |
@@ -344,7 +344,7 @@ sun4v_mna: | |||
344 | mov %l5, %o2 | 344 | mov %l5, %o2 |
345 | call sun4v_do_mna | 345 | call sun4v_do_mna |
346 | add %sp, PTREGS_OFF, %o0 | 346 | add %sp, PTREGS_OFF, %o0 |
347 | ba,a,pt %xcc, rtrap_clr_l6 | 347 | ba,a,pt %xcc, rtrap |
348 | 348 | ||
349 | /* Privileged Action. */ | 349 | /* Privileged Action. */ |
350 | sun4v_privact: | 350 | sun4v_privact: |
@@ -352,7 +352,7 @@ sun4v_privact: | |||
352 | rd %pc, %g7 | 352 | rd %pc, %g7 |
353 | call do_privact | 353 | call do_privact |
354 | add %sp, PTREGS_OFF, %o0 | 354 | add %sp, PTREGS_OFF, %o0 |
355 | ba,a,pt %xcc, rtrap_clr_l6 | 355 | ba,a,pt %xcc, rtrap |
356 | 356 | ||
357 | /* Unaligned ldd float, tl0. */ | 357 | /* Unaligned ldd float, tl0. */ |
358 | sun4v_lddfmna: | 358 | sun4v_lddfmna: |
@@ -368,7 +368,7 @@ sun4v_lddfmna: | |||
368 | mov %l5, %o2 | 368 | mov %l5, %o2 |
369 | call handle_lddfmna | 369 | call handle_lddfmna |
370 | add %sp, PTREGS_OFF, %o0 | 370 | add %sp, PTREGS_OFF, %o0 |
371 | ba,a,pt %xcc, rtrap_clr_l6 | 371 | ba,a,pt %xcc, rtrap |
372 | 372 | ||
373 | /* Unaligned std float, tl0. */ | 373 | /* Unaligned std float, tl0. */ |
374 | sun4v_stdfmna: | 374 | sun4v_stdfmna: |
@@ -384,7 +384,7 @@ sun4v_stdfmna: | |||
384 | mov %l5, %o2 | 384 | mov %l5, %o2 |
385 | call handle_stdfmna | 385 | call handle_stdfmna |
386 | add %sp, PTREGS_OFF, %o0 | 386 | add %sp, PTREGS_OFF, %o0 |
387 | ba,a,pt %xcc, rtrap_clr_l6 | 387 | ba,a,pt %xcc, rtrap |
388 | 388 | ||
389 | #define BRANCH_ALWAYS 0x10680000 | 389 | #define BRANCH_ALWAYS 0x10680000 |
390 | #define NOP 0x01000000 | 390 | #define NOP 0x01000000 |
diff --git a/arch/sparc64/kernel/sys_sparc.c b/arch/sparc64/kernel/sys_sparc.c index 73ed01ba40dc..8d4761f15fa9 100644 --- a/arch/sparc64/kernel/sys_sparc.c +++ b/arch/sparc64/kernel/sys_sparc.c | |||
@@ -454,8 +454,8 @@ asmlinkage long sys_ipc(unsigned int call, int first, unsigned long second, | |||
454 | err = sys_semget(first, (int)second, (int)third); | 454 | err = sys_semget(first, (int)second, (int)third); |
455 | goto out; | 455 | goto out; |
456 | case SEMCTL: { | 456 | case SEMCTL: { |
457 | err = sys_semctl(first, third, | 457 | err = sys_semctl(first, second, |
458 | (int)second | IPC_64, | 458 | (int)third | IPC_64, |
459 | (union semun) ptr); | 459 | (union semun) ptr); |
460 | goto out; | 460 | goto out; |
461 | } | 461 | } |
diff --git a/arch/sparc64/kernel/sysfs.c b/arch/sparc64/kernel/sysfs.c index 52816c7be0b9..e885034a6b73 100644 --- a/arch/sparc64/kernel/sysfs.c +++ b/arch/sparc64/kernel/sysfs.c | |||
@@ -273,10 +273,22 @@ static void __init check_mmu_stats(void) | |||
273 | mmu_stats_supported = 1; | 273 | mmu_stats_supported = 1; |
274 | } | 274 | } |
275 | 275 | ||
276 | static void register_nodes(void) | ||
277 | { | ||
278 | #ifdef CONFIG_NUMA | ||
279 | int i; | ||
280 | |||
281 | for (i = 0; i < MAX_NUMNODES; i++) | ||
282 | register_one_node(i); | ||
283 | #endif | ||
284 | } | ||
285 | |||
276 | static int __init topology_init(void) | 286 | static int __init topology_init(void) |
277 | { | 287 | { |
278 | int cpu; | 288 | int cpu; |
279 | 289 | ||
290 | register_nodes(); | ||
291 | |||
280 | check_mmu_stats(); | 292 | check_mmu_stats(); |
281 | 293 | ||
282 | register_cpu_notifier(&sysfs_cpu_nb); | 294 | register_cpu_notifier(&sysfs_cpu_nb); |
diff --git a/arch/sparc64/kernel/traps.c b/arch/sparc64/kernel/traps.c index 96da847023f3..d9b8d46707d1 100644 --- a/arch/sparc64/kernel/traps.c +++ b/arch/sparc64/kernel/traps.c | |||
@@ -2091,9 +2091,8 @@ static void user_instruction_dump(unsigned int __user *pc) | |||
2091 | 2091 | ||
2092 | void show_stack(struct task_struct *tsk, unsigned long *_ksp) | 2092 | void show_stack(struct task_struct *tsk, unsigned long *_ksp) |
2093 | { | 2093 | { |
2094 | unsigned long pc, fp, thread_base, ksp; | 2094 | unsigned long fp, thread_base, ksp; |
2095 | struct thread_info *tp; | 2095 | struct thread_info *tp; |
2096 | struct reg_window *rw; | ||
2097 | int count = 0; | 2096 | int count = 0; |
2098 | 2097 | ||
2099 | ksp = (unsigned long) _ksp; | 2098 | ksp = (unsigned long) _ksp; |
@@ -2117,15 +2116,27 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp) | |||
2117 | printk("\n"); | 2116 | printk("\n"); |
2118 | #endif | 2117 | #endif |
2119 | do { | 2118 | do { |
2119 | struct reg_window *rw; | ||
2120 | struct pt_regs *regs; | ||
2121 | unsigned long pc; | ||
2122 | |||
2120 | /* Bogus frame pointer? */ | 2123 | /* Bogus frame pointer? */ |
2121 | if (fp < (thread_base + sizeof(struct thread_info)) || | 2124 | if (fp < (thread_base + sizeof(struct thread_info)) || |
2122 | fp >= (thread_base + THREAD_SIZE)) | 2125 | fp >= (thread_base + THREAD_SIZE)) |
2123 | break; | 2126 | break; |
2124 | rw = (struct reg_window *)fp; | 2127 | rw = (struct reg_window *)fp; |
2125 | pc = rw->ins[7]; | 2128 | regs = (struct pt_regs *) (rw + 1); |
2129 | |||
2130 | if ((regs->magic & ~0x1ff) == PT_REGS_MAGIC) { | ||
2131 | pc = regs->tpc; | ||
2132 | fp = regs->u_regs[UREG_I6] + STACK_BIAS; | ||
2133 | } else { | ||
2134 | pc = rw->ins[7]; | ||
2135 | fp = rw->ins[6] + STACK_BIAS; | ||
2136 | } | ||
2137 | |||
2126 | printk(" [%016lx] ", pc); | 2138 | printk(" [%016lx] ", pc); |
2127 | print_symbol("%s\n", pc); | 2139 | print_symbol("%s\n", pc); |
2128 | fp = rw->ins[6] + STACK_BIAS; | ||
2129 | } while (++count < 16); | 2140 | } while (++count < 16); |
2130 | #ifndef CONFIG_KALLSYMS | 2141 | #ifndef CONFIG_KALLSYMS |
2131 | printk("\n"); | 2142 | printk("\n"); |
diff --git a/arch/sparc64/kernel/tsb.S b/arch/sparc64/kernel/tsb.S index 10adb2fb8ffe..c499214b501d 100644 --- a/arch/sparc64/kernel/tsb.S +++ b/arch/sparc64/kernel/tsb.S | |||
@@ -275,7 +275,7 @@ sparc64_realfault_common: | |||
275 | stx %l5, [%g6 + TI_FAULT_ADDR] ! Save fault address | 275 | stx %l5, [%g6 + TI_FAULT_ADDR] ! Save fault address |
276 | call do_sparc64_fault ! Call fault handler | 276 | call do_sparc64_fault ! Call fault handler |
277 | add %sp, PTREGS_OFF, %o0 ! Compute pt_regs arg | 277 | add %sp, PTREGS_OFF, %o0 ! Compute pt_regs arg |
278 | ba,pt %xcc, rtrap_clr_l6 ! Restore cpu state | 278 | ba,pt %xcc, rtrap ! Restore cpu state |
279 | nop ! Delay slot (fill me) | 279 | nop ! Delay slot (fill me) |
280 | 280 | ||
281 | winfix_trampoline: | 281 | winfix_trampoline: |
diff --git a/arch/sparc64/kernel/winfixup.S b/arch/sparc64/kernel/winfixup.S index c4aa110a10e5..a6b0863c27df 100644 --- a/arch/sparc64/kernel/winfixup.S +++ b/arch/sparc64/kernel/winfixup.S | |||
@@ -32,7 +32,7 @@ fill_fixup: | |||
32 | rd %pc, %g7 | 32 | rd %pc, %g7 |
33 | call do_sparc64_fault | 33 | call do_sparc64_fault |
34 | add %sp, PTREGS_OFF, %o0 | 34 | add %sp, PTREGS_OFF, %o0 |
35 | ba,pt %xcc, rtrap_clr_l6 | 35 | ba,pt %xcc, rtrap |
36 | nop | 36 | nop |
37 | 37 | ||
38 | /* Be very careful about usage of the trap globals here. | 38 | /* Be very careful about usage of the trap globals here. |
@@ -100,7 +100,7 @@ spill_fixup_dax: | |||
100 | rd %pc, %g7 | 100 | rd %pc, %g7 |
101 | call do_sparc64_fault | 101 | call do_sparc64_fault |
102 | add %sp, PTREGS_OFF, %o0 | 102 | add %sp, PTREGS_OFF, %o0 |
103 | ba,a,pt %xcc, rtrap_clr_l6 | 103 | ba,a,pt %xcc, rtrap |
104 | 104 | ||
105 | winfix_mna: | 105 | winfix_mna: |
106 | andn %g3, 0x7f, %g3 | 106 | andn %g3, 0x7f, %g3 |
@@ -122,12 +122,12 @@ fill_fixup_mna: | |||
122 | mov %l4, %o2 | 122 | mov %l4, %o2 |
123 | call sun4v_do_mna | 123 | call sun4v_do_mna |
124 | mov %l5, %o1 | 124 | mov %l5, %o1 |
125 | ba,a,pt %xcc, rtrap_clr_l6 | 125 | ba,a,pt %xcc, rtrap |
126 | 1: mov %l4, %o1 | 126 | 1: mov %l4, %o1 |
127 | mov %l5, %o2 | 127 | mov %l5, %o2 |
128 | call mem_address_unaligned | 128 | call mem_address_unaligned |
129 | nop | 129 | nop |
130 | ba,a,pt %xcc, rtrap_clr_l6 | 130 | ba,a,pt %xcc, rtrap |
131 | 131 | ||
132 | winfix_dax: | 132 | winfix_dax: |
133 | andn %g3, 0x7f, %g3 | 133 | andn %g3, 0x7f, %g3 |
@@ -150,7 +150,7 @@ fill_fixup_dax: | |||
150 | add %sp, PTREGS_OFF, %o0 | 150 | add %sp, PTREGS_OFF, %o0 |
151 | call sun4v_data_access_exception | 151 | call sun4v_data_access_exception |
152 | nop | 152 | nop |
153 | ba,a,pt %xcc, rtrap_clr_l6 | 153 | ba,a,pt %xcc, rtrap |
154 | 1: call spitfire_data_access_exception | 154 | 1: call spitfire_data_access_exception |
155 | nop | 155 | nop |
156 | ba,a,pt %xcc, rtrap_clr_l6 | 156 | ba,a,pt %xcc, rtrap |
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c index f37078d96407..177d8aaeec42 100644 --- a/arch/sparc64/mm/init.c +++ b/arch/sparc64/mm/init.c | |||
@@ -24,6 +24,8 @@ | |||
24 | #include <linux/cache.h> | 24 | #include <linux/cache.h> |
25 | #include <linux/sort.h> | 25 | #include <linux/sort.h> |
26 | #include <linux/percpu.h> | 26 | #include <linux/percpu.h> |
27 | #include <linux/lmb.h> | ||
28 | #include <linux/mmzone.h> | ||
27 | 29 | ||
28 | #include <asm/head.h> | 30 | #include <asm/head.h> |
29 | #include <asm/system.h> | 31 | #include <asm/system.h> |
@@ -72,9 +74,7 @@ extern struct tsb swapper_4m_tsb[KERNEL_TSB4M_NENTRIES]; | |||
72 | #define MAX_BANKS 32 | 74 | #define MAX_BANKS 32 |
73 | 75 | ||
74 | static struct linux_prom64_registers pavail[MAX_BANKS] __initdata; | 76 | static struct linux_prom64_registers pavail[MAX_BANKS] __initdata; |
75 | static struct linux_prom64_registers pavail_rescan[MAX_BANKS] __initdata; | ||
76 | static int pavail_ents __initdata; | 77 | static int pavail_ents __initdata; |
77 | static int pavail_rescan_ents __initdata; | ||
78 | 78 | ||
79 | static int cmp_p64(const void *a, const void *b) | 79 | static int cmp_p64(const void *a, const void *b) |
80 | { | 80 | { |
@@ -715,285 +715,684 @@ out: | |||
715 | smp_new_mmu_context_version(); | 715 | smp_new_mmu_context_version(); |
716 | } | 716 | } |
717 | 717 | ||
718 | /* Find a free area for the bootmem map, avoiding the kernel image | 718 | static int numa_enabled = 1; |
719 | * and the initial ramdisk. | 719 | static int numa_debug; |
720 | */ | 720 | |
721 | static unsigned long __init choose_bootmap_pfn(unsigned long start_pfn, | 721 | static int __init early_numa(char *p) |
722 | unsigned long end_pfn) | ||
723 | { | 722 | { |
724 | unsigned long avoid_start, avoid_end, bootmap_size; | 723 | if (!p) |
725 | int i; | 724 | return 0; |
725 | |||
726 | if (strstr(p, "off")) | ||
727 | numa_enabled = 0; | ||
728 | |||
729 | if (strstr(p, "debug")) | ||
730 | numa_debug = 1; | ||
731 | |||
732 | return 0; | ||
733 | } | ||
734 | early_param("numa", early_numa); | ||
726 | 735 | ||
727 | bootmap_size = bootmem_bootmap_pages(end_pfn - start_pfn); | 736 | #define numadbg(f, a...) \ |
728 | bootmap_size <<= PAGE_SHIFT; | 737 | do { if (numa_debug) \ |
738 | printk(KERN_INFO f, ## a); \ | ||
739 | } while (0) | ||
729 | 740 | ||
730 | avoid_start = avoid_end = 0; | 741 | static void __init find_ramdisk(unsigned long phys_base) |
742 | { | ||
731 | #ifdef CONFIG_BLK_DEV_INITRD | 743 | #ifdef CONFIG_BLK_DEV_INITRD |
732 | avoid_start = initrd_start; | 744 | if (sparc_ramdisk_image || sparc_ramdisk_image64) { |
733 | avoid_end = PAGE_ALIGN(initrd_end); | 745 | unsigned long ramdisk_image; |
746 | |||
747 | /* Older versions of the bootloader only supported a | ||
748 | * 32-bit physical address for the ramdisk image | ||
749 | * location, stored at sparc_ramdisk_image. Newer | ||
750 | * SILO versions set sparc_ramdisk_image to zero and | ||
751 | * provide a full 64-bit physical address at | ||
752 | * sparc_ramdisk_image64. | ||
753 | */ | ||
754 | ramdisk_image = sparc_ramdisk_image; | ||
755 | if (!ramdisk_image) | ||
756 | ramdisk_image = sparc_ramdisk_image64; | ||
757 | |||
758 | /* Another bootloader quirk. The bootloader normalizes | ||
759 | * the physical address to KERNBASE, so we have to | ||
760 | * factor that back out and add in the lowest valid | ||
761 | * physical page address to get the true physical address. | ||
762 | */ | ||
763 | ramdisk_image -= KERNBASE; | ||
764 | ramdisk_image += phys_base; | ||
765 | |||
766 | numadbg("Found ramdisk at physical address 0x%lx, size %u\n", | ||
767 | ramdisk_image, sparc_ramdisk_size); | ||
768 | |||
769 | initrd_start = ramdisk_image; | ||
770 | initrd_end = ramdisk_image + sparc_ramdisk_size; | ||
771 | |||
772 | lmb_reserve(initrd_start, initrd_end); | ||
773 | } | ||
734 | #endif | 774 | #endif |
775 | } | ||
735 | 776 | ||
736 | for (i = 0; i < pavail_ents; i++) { | 777 | struct node_mem_mask { |
737 | unsigned long start, end; | 778 | unsigned long mask; |
779 | unsigned long val; | ||
780 | unsigned long bootmem_paddr; | ||
781 | }; | ||
782 | static struct node_mem_mask node_masks[MAX_NUMNODES]; | ||
783 | static int num_node_masks; | ||
738 | 784 | ||
739 | start = pavail[i].phys_addr; | 785 | int numa_cpu_lookup_table[NR_CPUS]; |
740 | end = start + pavail[i].reg_size; | 786 | cpumask_t numa_cpumask_lookup_table[MAX_NUMNODES]; |
741 | 787 | ||
742 | while (start < end) { | 788 | #ifdef CONFIG_NEED_MULTIPLE_NODES |
743 | if (start >= kern_base && | 789 | static bootmem_data_t plat_node_bdata[MAX_NUMNODES]; |
744 | start < PAGE_ALIGN(kern_base + kern_size)) { | ||
745 | start = PAGE_ALIGN(kern_base + kern_size); | ||
746 | continue; | ||
747 | } | ||
748 | if (start >= avoid_start && start < avoid_end) { | ||
749 | start = avoid_end; | ||
750 | continue; | ||
751 | } | ||
752 | 790 | ||
753 | if ((end - start) < bootmap_size) | 791 | struct mdesc_mblock { |
754 | break; | 792 | u64 base; |
793 | u64 size; | ||
794 | u64 offset; /* RA-to-PA */ | ||
795 | }; | ||
796 | static struct mdesc_mblock *mblocks; | ||
797 | static int num_mblocks; | ||
755 | 798 | ||
756 | if (start < kern_base && | 799 | static unsigned long ra_to_pa(unsigned long addr) |
757 | (start + bootmap_size) > kern_base) { | 800 | { |
758 | start = PAGE_ALIGN(kern_base + kern_size); | 801 | int i; |
759 | continue; | ||
760 | } | ||
761 | 802 | ||
762 | if (start < avoid_start && | 803 | for (i = 0; i < num_mblocks; i++) { |
763 | (start + bootmap_size) > avoid_start) { | 804 | struct mdesc_mblock *m = &mblocks[i]; |
764 | start = avoid_end; | ||
765 | continue; | ||
766 | } | ||
767 | 805 | ||
768 | /* OK, it doesn't overlap anything, use it. */ | 806 | if (addr >= m->base && |
769 | return start >> PAGE_SHIFT; | 807 | addr < (m->base + m->size)) { |
808 | addr += m->offset; | ||
809 | break; | ||
770 | } | 810 | } |
771 | } | 811 | } |
772 | 812 | return addr; | |
773 | prom_printf("Cannot find free area for bootmap, aborting.\n"); | ||
774 | prom_halt(); | ||
775 | } | 813 | } |
776 | 814 | ||
777 | static void __init trim_pavail(unsigned long *cur_size_p, | 815 | static int find_node(unsigned long addr) |
778 | unsigned long *end_of_phys_p) | ||
779 | { | 816 | { |
780 | unsigned long to_trim = *cur_size_p - cmdline_memory_size; | ||
781 | unsigned long avoid_start, avoid_end; | ||
782 | int i; | 817 | int i; |
783 | 818 | ||
784 | to_trim = PAGE_ALIGN(to_trim); | 819 | addr = ra_to_pa(addr); |
820 | for (i = 0; i < num_node_masks; i++) { | ||
821 | struct node_mem_mask *p = &node_masks[i]; | ||
785 | 822 | ||
786 | avoid_start = avoid_end = 0; | 823 | if ((addr & p->mask) == p->val) |
787 | #ifdef CONFIG_BLK_DEV_INITRD | 824 | return i; |
788 | avoid_start = initrd_start; | 825 | } |
789 | avoid_end = PAGE_ALIGN(initrd_end); | 826 | return -1; |
827 | } | ||
828 | |||
829 | static unsigned long nid_range(unsigned long start, unsigned long end, | ||
830 | int *nid) | ||
831 | { | ||
832 | *nid = find_node(start); | ||
833 | start += PAGE_SIZE; | ||
834 | while (start < end) { | ||
835 | int n = find_node(start); | ||
836 | |||
837 | if (n != *nid) | ||
838 | break; | ||
839 | start += PAGE_SIZE; | ||
840 | } | ||
841 | |||
842 | return start; | ||
843 | } | ||
844 | #else | ||
845 | static unsigned long nid_range(unsigned long start, unsigned long end, | ||
846 | int *nid) | ||
847 | { | ||
848 | *nid = 0; | ||
849 | return end; | ||
850 | } | ||
790 | #endif | 851 | #endif |
791 | 852 | ||
792 | /* Trim some pavail[] entries in order to satisfy the | 853 | /* This must be invoked after performing all of the necessary |
793 | * requested "mem=xxx" kernel command line specification. | 854 | * add_active_range() calls for 'nid'. We need to be able to get |
794 | * | 855 | * correct data from get_pfn_range_for_nid(). |
795 | * We must not trim off the kernel image area nor the | 856 | */ |
796 | * initial ramdisk range (if any). Also, we must not trim | 857 | static void __init allocate_node_data(int nid) |
797 | * any pavail[] entry down to zero in order to preserve | 858 | { |
798 | * the invariant that all pavail[] entries have a non-zero | 859 | unsigned long paddr, num_pages, start_pfn, end_pfn; |
799 | * size which is assumed by all of the code in here. | 860 | struct pglist_data *p; |
800 | */ | 861 | |
801 | for (i = 0; i < pavail_ents; i++) { | 862 | #ifdef CONFIG_NEED_MULTIPLE_NODES |
802 | unsigned long start, end, kern_end; | 863 | paddr = lmb_alloc_nid(sizeof(struct pglist_data), |
803 | unsigned long trim_low, trim_high, n; | 864 | SMP_CACHE_BYTES, nid, nid_range); |
865 | if (!paddr) { | ||
866 | prom_printf("Cannot allocate pglist_data for nid[%d]\n", nid); | ||
867 | prom_halt(); | ||
868 | } | ||
869 | NODE_DATA(nid) = __va(paddr); | ||
870 | memset(NODE_DATA(nid), 0, sizeof(struct pglist_data)); | ||
804 | 871 | ||
805 | kern_end = PAGE_ALIGN(kern_base + kern_size); | 872 | NODE_DATA(nid)->bdata = &plat_node_bdata[nid]; |
873 | #endif | ||
806 | 874 | ||
807 | trim_low = start = pavail[i].phys_addr; | 875 | p = NODE_DATA(nid); |
808 | trim_high = end = start + pavail[i].reg_size; | ||
809 | 876 | ||
810 | if (kern_base >= start && | 877 | get_pfn_range_for_nid(nid, &start_pfn, &end_pfn); |
811 | kern_base < end) { | 878 | p->node_start_pfn = start_pfn; |
812 | trim_low = kern_base; | 879 | p->node_spanned_pages = end_pfn - start_pfn; |
813 | if (kern_end >= end) | 880 | |
814 | continue; | 881 | if (p->node_spanned_pages) { |
815 | } | 882 | num_pages = bootmem_bootmap_pages(p->node_spanned_pages); |
816 | if (kern_end >= start && | 883 | |
817 | kern_end < end) { | 884 | paddr = lmb_alloc_nid(num_pages << PAGE_SHIFT, PAGE_SIZE, nid, |
818 | trim_high = kern_end; | 885 | nid_range); |
819 | } | 886 | if (!paddr) { |
820 | if (avoid_start && | 887 | prom_printf("Cannot allocate bootmap for nid[%d]\n", |
821 | avoid_start >= start && | 888 | nid); |
822 | avoid_start < end) { | 889 | prom_halt(); |
823 | if (trim_low > avoid_start) | ||
824 | trim_low = avoid_start; | ||
825 | if (avoid_end >= end) | ||
826 | continue; | ||
827 | } | ||
828 | if (avoid_end && | ||
829 | avoid_end >= start && | ||
830 | avoid_end < end) { | ||
831 | if (trim_high < avoid_end) | ||
832 | trim_high = avoid_end; | ||
833 | } | 890 | } |
891 | node_masks[nid].bootmem_paddr = paddr; | ||
892 | } | ||
893 | } | ||
894 | |||
895 | static void init_node_masks_nonnuma(void) | ||
896 | { | ||
897 | int i; | ||
898 | |||
899 | numadbg("Initializing tables for non-numa.\n"); | ||
900 | |||
901 | node_masks[0].mask = node_masks[0].val = 0; | ||
902 | num_node_masks = 1; | ||
903 | |||
904 | for (i = 0; i < NR_CPUS; i++) | ||
905 | numa_cpu_lookup_table[i] = 0; | ||
906 | |||
907 | numa_cpumask_lookup_table[0] = CPU_MASK_ALL; | ||
908 | } | ||
909 | |||
910 | #ifdef CONFIG_NEED_MULTIPLE_NODES | ||
911 | struct pglist_data *node_data[MAX_NUMNODES]; | ||
912 | |||
913 | EXPORT_SYMBOL(numa_cpu_lookup_table); | ||
914 | EXPORT_SYMBOL(numa_cpumask_lookup_table); | ||
915 | EXPORT_SYMBOL(node_data); | ||
916 | |||
917 | struct mdesc_mlgroup { | ||
918 | u64 node; | ||
919 | u64 latency; | ||
920 | u64 match; | ||
921 | u64 mask; | ||
922 | }; | ||
923 | static struct mdesc_mlgroup *mlgroups; | ||
924 | static int num_mlgroups; | ||
925 | |||
926 | static int scan_pio_for_cfg_handle(struct mdesc_handle *md, u64 pio, | ||
927 | u32 cfg_handle) | ||
928 | { | ||
929 | u64 arc; | ||
834 | 930 | ||
835 | if (trim_high <= trim_low) | 931 | mdesc_for_each_arc(arc, md, pio, MDESC_ARC_TYPE_FWD) { |
932 | u64 target = mdesc_arc_target(md, arc); | ||
933 | const u64 *val; | ||
934 | |||
935 | val = mdesc_get_property(md, target, | ||
936 | "cfg-handle", NULL); | ||
937 | if (val && *val == cfg_handle) | ||
938 | return 0; | ||
939 | } | ||
940 | return -ENODEV; | ||
941 | } | ||
942 | |||
943 | static int scan_arcs_for_cfg_handle(struct mdesc_handle *md, u64 grp, | ||
944 | u32 cfg_handle) | ||
945 | { | ||
946 | u64 arc, candidate, best_latency = ~(u64)0; | ||
947 | |||
948 | candidate = MDESC_NODE_NULL; | ||
949 | mdesc_for_each_arc(arc, md, grp, MDESC_ARC_TYPE_FWD) { | ||
950 | u64 target = mdesc_arc_target(md, arc); | ||
951 | const char *name = mdesc_node_name(md, target); | ||
952 | const u64 *val; | ||
953 | |||
954 | if (strcmp(name, "pio-latency-group")) | ||
836 | continue; | 955 | continue; |
837 | 956 | ||
838 | if (trim_low == start && trim_high == end) { | 957 | val = mdesc_get_property(md, target, "latency", NULL); |
839 | /* Whole chunk is available for trimming. | 958 | if (!val) |
840 | * Trim all except one page, in order to keep | 959 | continue; |
841 | * entry non-empty. | 960 | |
842 | */ | 961 | if (*val < best_latency) { |
843 | n = (end - start) - PAGE_SIZE; | 962 | candidate = target; |
844 | if (n > to_trim) | 963 | best_latency = *val; |
845 | n = to_trim; | ||
846 | |||
847 | if (n) { | ||
848 | pavail[i].phys_addr += n; | ||
849 | pavail[i].reg_size -= n; | ||
850 | to_trim -= n; | ||
851 | } | ||
852 | } else { | ||
853 | n = (trim_low - start); | ||
854 | if (n > to_trim) | ||
855 | n = to_trim; | ||
856 | |||
857 | if (n) { | ||
858 | pavail[i].phys_addr += n; | ||
859 | pavail[i].reg_size -= n; | ||
860 | to_trim -= n; | ||
861 | } | ||
862 | if (to_trim) { | ||
863 | n = end - trim_high; | ||
864 | if (n > to_trim) | ||
865 | n = to_trim; | ||
866 | if (n) { | ||
867 | pavail[i].reg_size -= n; | ||
868 | to_trim -= n; | ||
869 | } | ||
870 | } | ||
871 | } | 964 | } |
965 | } | ||
966 | |||
967 | if (candidate == MDESC_NODE_NULL) | ||
968 | return -ENODEV; | ||
969 | |||
970 | return scan_pio_for_cfg_handle(md, candidate, cfg_handle); | ||
971 | } | ||
972 | |||
973 | int of_node_to_nid(struct device_node *dp) | ||
974 | { | ||
975 | const struct linux_prom64_registers *regs; | ||
976 | struct mdesc_handle *md; | ||
977 | u32 cfg_handle; | ||
978 | int count, nid; | ||
979 | u64 grp; | ||
872 | 980 | ||
873 | if (!to_trim) | 981 | if (!mlgroups) |
982 | return -1; | ||
983 | |||
984 | regs = of_get_property(dp, "reg", NULL); | ||
985 | if (!regs) | ||
986 | return -1; | ||
987 | |||
988 | cfg_handle = (regs->phys_addr >> 32UL) & 0x0fffffff; | ||
989 | |||
990 | md = mdesc_grab(); | ||
991 | |||
992 | count = 0; | ||
993 | nid = -1; | ||
994 | mdesc_for_each_node_by_name(md, grp, "group") { | ||
995 | if (!scan_arcs_for_cfg_handle(md, grp, cfg_handle)) { | ||
996 | nid = count; | ||
874 | break; | 997 | break; |
998 | } | ||
999 | count++; | ||
875 | } | 1000 | } |
876 | 1001 | ||
877 | /* Recalculate. */ | 1002 | mdesc_release(md); |
878 | *cur_size_p = 0UL; | 1003 | |
879 | for (i = 0; i < pavail_ents; i++) { | 1004 | return nid; |
880 | *end_of_phys_p = pavail[i].phys_addr + | ||
881 | pavail[i].reg_size; | ||
882 | *cur_size_p += pavail[i].reg_size; | ||
883 | } | ||
884 | } | 1005 | } |
885 | 1006 | ||
886 | /* About pages_avail, this is the value we will use to calculate | 1007 | static void add_node_ranges(void) |
887 | * the zholes_size[] argument given to free_area_init_node(). The | ||
888 | * page allocator uses this to calculate nr_kernel_pages, | ||
889 | * nr_all_pages and zone->present_pages. On NUMA it is used | ||
890 | * to calculate zone->min_unmapped_pages and zone->min_slab_pages. | ||
891 | * | ||
892 | * So this number should really be set to what the page allocator | ||
893 | * actually ends up with. This means: | ||
894 | * 1) It should include bootmem map pages, we'll release those. | ||
895 | * 2) It should not include the kernel image, except for the | ||
896 | * __init sections which we will also release. | ||
897 | * 3) It should include the initrd image, since we'll release | ||
898 | * that too. | ||
899 | */ | ||
900 | static unsigned long __init bootmem_init(unsigned long *pages_avail, | ||
901 | unsigned long phys_base) | ||
902 | { | 1008 | { |
903 | unsigned long bootmap_size, end_pfn; | ||
904 | unsigned long end_of_phys_memory = 0UL; | ||
905 | unsigned long bootmap_pfn, bytes_avail, size; | ||
906 | int i; | 1009 | int i; |
907 | 1010 | ||
908 | bytes_avail = 0UL; | 1011 | for (i = 0; i < lmb.memory.cnt; i++) { |
909 | for (i = 0; i < pavail_ents; i++) { | 1012 | unsigned long size = lmb_size_bytes(&lmb.memory, i); |
910 | end_of_phys_memory = pavail[i].phys_addr + | 1013 | unsigned long start, end; |
911 | pavail[i].reg_size; | 1014 | |
912 | bytes_avail += pavail[i].reg_size; | 1015 | start = lmb.memory.region[i].base; |
1016 | end = start + size; | ||
1017 | while (start < end) { | ||
1018 | unsigned long this_end; | ||
1019 | int nid; | ||
1020 | |||
1021 | this_end = nid_range(start, end, &nid); | ||
1022 | |||
1023 | numadbg("Adding active range nid[%d] " | ||
1024 | "start[%lx] end[%lx]\n", | ||
1025 | nid, start, this_end); | ||
1026 | |||
1027 | add_active_range(nid, | ||
1028 | start >> PAGE_SHIFT, | ||
1029 | this_end >> PAGE_SHIFT); | ||
1030 | |||
1031 | start = this_end; | ||
1032 | } | ||
913 | } | 1033 | } |
1034 | } | ||
914 | 1035 | ||
915 | /* Determine the location of the initial ramdisk before trying | 1036 | static int __init grab_mlgroups(struct mdesc_handle *md) |
916 | * to honor the "mem=xxx" command line argument. We must know | 1037 | { |
917 | * where the kernel image and the ramdisk image are so that we | 1038 | unsigned long paddr; |
918 | * do not trim those two areas from the physical memory map. | 1039 | int count = 0; |
919 | */ | 1040 | u64 node; |
1041 | |||
1042 | mdesc_for_each_node_by_name(md, node, "memory-latency-group") | ||
1043 | count++; | ||
1044 | if (!count) | ||
1045 | return -ENOENT; | ||
1046 | |||
1047 | paddr = lmb_alloc(count * sizeof(struct mdesc_mlgroup), | ||
1048 | SMP_CACHE_BYTES); | ||
1049 | if (!paddr) | ||
1050 | return -ENOMEM; | ||
1051 | |||
1052 | mlgroups = __va(paddr); | ||
1053 | num_mlgroups = count; | ||
1054 | |||
1055 | count = 0; | ||
1056 | mdesc_for_each_node_by_name(md, node, "memory-latency-group") { | ||
1057 | struct mdesc_mlgroup *m = &mlgroups[count++]; | ||
1058 | const u64 *val; | ||
1059 | |||
1060 | m->node = node; | ||
1061 | |||
1062 | val = mdesc_get_property(md, node, "latency", NULL); | ||
1063 | m->latency = *val; | ||
1064 | val = mdesc_get_property(md, node, "address-match", NULL); | ||
1065 | m->match = *val; | ||
1066 | val = mdesc_get_property(md, node, "address-mask", NULL); | ||
1067 | m->mask = *val; | ||
1068 | |||
1069 | numadbg("MLGROUP[%d]: node[%lx] latency[%lx] " | ||
1070 | "match[%lx] mask[%lx]\n", | ||
1071 | count - 1, m->node, m->latency, m->match, m->mask); | ||
1072 | } | ||
920 | 1073 | ||
921 | #ifdef CONFIG_BLK_DEV_INITRD | 1074 | return 0; |
922 | /* Now have to check initial ramdisk, so that bootmap does not overwrite it */ | 1075 | } |
923 | if (sparc_ramdisk_image || sparc_ramdisk_image64) { | 1076 | |
924 | unsigned long ramdisk_image = sparc_ramdisk_image ? | 1077 | static int __init grab_mblocks(struct mdesc_handle *md) |
925 | sparc_ramdisk_image : sparc_ramdisk_image64; | 1078 | { |
926 | ramdisk_image -= KERNBASE; | 1079 | unsigned long paddr; |
927 | initrd_start = ramdisk_image + phys_base; | 1080 | int count = 0; |
928 | initrd_end = initrd_start + sparc_ramdisk_size; | 1081 | u64 node; |
929 | if (initrd_end > end_of_phys_memory) { | 1082 | |
930 | printk(KERN_CRIT "initrd extends beyond end of memory " | 1083 | mdesc_for_each_node_by_name(md, node, "mblock") |
931 | "(0x%016lx > 0x%016lx)\ndisabling initrd\n", | 1084 | count++; |
932 | initrd_end, end_of_phys_memory); | 1085 | if (!count) |
933 | initrd_start = 0; | 1086 | return -ENOENT; |
934 | initrd_end = 0; | 1087 | |
1088 | paddr = lmb_alloc(count * sizeof(struct mdesc_mblock), | ||
1089 | SMP_CACHE_BYTES); | ||
1090 | if (!paddr) | ||
1091 | return -ENOMEM; | ||
1092 | |||
1093 | mblocks = __va(paddr); | ||
1094 | num_mblocks = count; | ||
1095 | |||
1096 | count = 0; | ||
1097 | mdesc_for_each_node_by_name(md, node, "mblock") { | ||
1098 | struct mdesc_mblock *m = &mblocks[count++]; | ||
1099 | const u64 *val; | ||
1100 | |||
1101 | val = mdesc_get_property(md, node, "base", NULL); | ||
1102 | m->base = *val; | ||
1103 | val = mdesc_get_property(md, node, "size", NULL); | ||
1104 | m->size = *val; | ||
1105 | val = mdesc_get_property(md, node, | ||
1106 | "address-congruence-offset", NULL); | ||
1107 | m->offset = *val; | ||
1108 | |||
1109 | numadbg("MBLOCK[%d]: base[%lx] size[%lx] offset[%lx]\n", | ||
1110 | count - 1, m->base, m->size, m->offset); | ||
1111 | } | ||
1112 | |||
1113 | return 0; | ||
1114 | } | ||
1115 | |||
1116 | static void __init numa_parse_mdesc_group_cpus(struct mdesc_handle *md, | ||
1117 | u64 grp, cpumask_t *mask) | ||
1118 | { | ||
1119 | u64 arc; | ||
1120 | |||
1121 | cpus_clear(*mask); | ||
1122 | |||
1123 | mdesc_for_each_arc(arc, md, grp, MDESC_ARC_TYPE_BACK) { | ||
1124 | u64 target = mdesc_arc_target(md, arc); | ||
1125 | const char *name = mdesc_node_name(md, target); | ||
1126 | const u64 *id; | ||
1127 | |||
1128 | if (strcmp(name, "cpu")) | ||
1129 | continue; | ||
1130 | id = mdesc_get_property(md, target, "id", NULL); | ||
1131 | if (*id < NR_CPUS) | ||
1132 | cpu_set(*id, *mask); | ||
1133 | } | ||
1134 | } | ||
1135 | |||
1136 | static struct mdesc_mlgroup * __init find_mlgroup(u64 node) | ||
1137 | { | ||
1138 | int i; | ||
1139 | |||
1140 | for (i = 0; i < num_mlgroups; i++) { | ||
1141 | struct mdesc_mlgroup *m = &mlgroups[i]; | ||
1142 | if (m->node == node) | ||
1143 | return m; | ||
1144 | } | ||
1145 | return NULL; | ||
1146 | } | ||
1147 | |||
1148 | static int __init numa_attach_mlgroup(struct mdesc_handle *md, u64 grp, | ||
1149 | int index) | ||
1150 | { | ||
1151 | struct mdesc_mlgroup *candidate = NULL; | ||
1152 | u64 arc, best_latency = ~(u64)0; | ||
1153 | struct node_mem_mask *n; | ||
1154 | |||
1155 | mdesc_for_each_arc(arc, md, grp, MDESC_ARC_TYPE_FWD) { | ||
1156 | u64 target = mdesc_arc_target(md, arc); | ||
1157 | struct mdesc_mlgroup *m = find_mlgroup(target); | ||
1158 | if (!m) | ||
1159 | continue; | ||
1160 | if (m->latency < best_latency) { | ||
1161 | candidate = m; | ||
1162 | best_latency = m->latency; | ||
935 | } | 1163 | } |
936 | } | 1164 | } |
937 | #endif | 1165 | if (!candidate) |
1166 | return -ENOENT; | ||
1167 | |||
1168 | if (num_node_masks != index) { | ||
1169 | printk(KERN_ERR "Inconsistent NUMA state, " | ||
1170 | "index[%d] != num_node_masks[%d]\n", | ||
1171 | index, num_node_masks); | ||
1172 | return -EINVAL; | ||
1173 | } | ||
938 | 1174 | ||
939 | if (cmdline_memory_size && | 1175 | n = &node_masks[num_node_masks++]; |
940 | bytes_avail > cmdline_memory_size) | ||
941 | trim_pavail(&bytes_avail, | ||
942 | &end_of_phys_memory); | ||
943 | 1176 | ||
944 | *pages_avail = bytes_avail >> PAGE_SHIFT; | 1177 | n->mask = candidate->mask; |
1178 | n->val = candidate->match; | ||
945 | 1179 | ||
946 | end_pfn = end_of_phys_memory >> PAGE_SHIFT; | 1180 | numadbg("NUMA NODE[%d]: mask[%lx] val[%lx] (latency[%lx])\n", |
1181 | index, n->mask, n->val, candidate->latency); | ||
947 | 1182 | ||
948 | /* Initialize the boot-time allocator. */ | 1183 | return 0; |
949 | max_pfn = max_low_pfn = end_pfn; | 1184 | } |
950 | min_low_pfn = (phys_base >> PAGE_SHIFT); | 1185 | |
1186 | static int __init numa_parse_mdesc_group(struct mdesc_handle *md, u64 grp, | ||
1187 | int index) | ||
1188 | { | ||
1189 | cpumask_t mask; | ||
1190 | int cpu; | ||
951 | 1191 | ||
952 | bootmap_pfn = choose_bootmap_pfn(min_low_pfn, end_pfn); | 1192 | numa_parse_mdesc_group_cpus(md, grp, &mask); |
953 | 1193 | ||
954 | bootmap_size = init_bootmem_node(NODE_DATA(0), bootmap_pfn, | 1194 | for_each_cpu_mask(cpu, mask) |
955 | min_low_pfn, end_pfn); | 1195 | numa_cpu_lookup_table[cpu] = index; |
1196 | numa_cpumask_lookup_table[index] = mask; | ||
956 | 1197 | ||
957 | /* Now register the available physical memory with the | 1198 | if (numa_debug) { |
958 | * allocator. | 1199 | printk(KERN_INFO "NUMA GROUP[%d]: cpus [ ", index); |
959 | */ | 1200 | for_each_cpu_mask(cpu, mask) |
960 | for (i = 0; i < pavail_ents; i++) | 1201 | printk("%d ", cpu); |
961 | free_bootmem(pavail[i].phys_addr, pavail[i].reg_size); | 1202 | printk("]\n"); |
1203 | } | ||
962 | 1204 | ||
963 | #ifdef CONFIG_BLK_DEV_INITRD | 1205 | return numa_attach_mlgroup(md, grp, index); |
964 | if (initrd_start) { | 1206 | } |
965 | size = initrd_end - initrd_start; | 1207 | |
1208 | static int __init numa_parse_mdesc(void) | ||
1209 | { | ||
1210 | struct mdesc_handle *md = mdesc_grab(); | ||
1211 | int i, err, count; | ||
1212 | u64 node; | ||
1213 | |||
1214 | node = mdesc_node_by_name(md, MDESC_NODE_NULL, "latency-groups"); | ||
1215 | if (node == MDESC_NODE_NULL) { | ||
1216 | mdesc_release(md); | ||
1217 | return -ENOENT; | ||
1218 | } | ||
1219 | |||
1220 | err = grab_mblocks(md); | ||
1221 | if (err < 0) | ||
1222 | goto out; | ||
1223 | |||
1224 | err = grab_mlgroups(md); | ||
1225 | if (err < 0) | ||
1226 | goto out; | ||
1227 | |||
1228 | count = 0; | ||
1229 | mdesc_for_each_node_by_name(md, node, "group") { | ||
1230 | err = numa_parse_mdesc_group(md, node, count); | ||
1231 | if (err < 0) | ||
1232 | break; | ||
1233 | count++; | ||
1234 | } | ||
1235 | |||
1236 | add_node_ranges(); | ||
1237 | |||
1238 | for (i = 0; i < num_node_masks; i++) { | ||
1239 | allocate_node_data(i); | ||
1240 | node_set_online(i); | ||
1241 | } | ||
1242 | |||
1243 | err = 0; | ||
1244 | out: | ||
1245 | mdesc_release(md); | ||
1246 | return err; | ||
1247 | } | ||
1248 | |||
1249 | static int __init numa_parse_sun4u(void) | ||
1250 | { | ||
1251 | return -1; | ||
1252 | } | ||
966 | 1253 | ||
967 | /* Reserve the initrd image area. */ | 1254 | static int __init bootmem_init_numa(void) |
968 | reserve_bootmem(initrd_start, size, BOOTMEM_DEFAULT); | 1255 | { |
1256 | int err = -1; | ||
969 | 1257 | ||
970 | initrd_start += PAGE_OFFSET; | 1258 | numadbg("bootmem_init_numa()\n"); |
971 | initrd_end += PAGE_OFFSET; | 1259 | |
1260 | if (numa_enabled) { | ||
1261 | if (tlb_type == hypervisor) | ||
1262 | err = numa_parse_mdesc(); | ||
1263 | else | ||
1264 | err = numa_parse_sun4u(); | ||
972 | } | 1265 | } |
1266 | return err; | ||
1267 | } | ||
1268 | |||
1269 | #else | ||
1270 | |||
1271 | static int bootmem_init_numa(void) | ||
1272 | { | ||
1273 | return -1; | ||
1274 | } | ||
1275 | |||
973 | #endif | 1276 | #endif |
974 | /* Reserve the kernel text/data/bss. */ | ||
975 | reserve_bootmem(kern_base, kern_size, BOOTMEM_DEFAULT); | ||
976 | *pages_avail -= PAGE_ALIGN(kern_size) >> PAGE_SHIFT; | ||
977 | |||
978 | /* Add back in the initmem pages. */ | ||
979 | size = ((unsigned long)(__init_end) & PAGE_MASK) - | ||
980 | PAGE_ALIGN((unsigned long)__init_begin); | ||
981 | *pages_avail += size >> PAGE_SHIFT; | ||
982 | |||
983 | /* Reserve the bootmem map. We do not account for it | ||
984 | * in pages_avail because we will release that memory | ||
985 | * in free_all_bootmem. | ||
986 | */ | ||
987 | size = bootmap_size; | ||
988 | reserve_bootmem((bootmap_pfn << PAGE_SHIFT), size, BOOTMEM_DEFAULT); | ||
989 | 1277 | ||
990 | for (i = 0; i < pavail_ents; i++) { | 1278 | static void __init bootmem_init_nonnuma(void) |
1279 | { | ||
1280 | unsigned long top_of_ram = lmb_end_of_DRAM(); | ||
1281 | unsigned long total_ram = lmb_phys_mem_size(); | ||
1282 | unsigned int i; | ||
1283 | |||
1284 | numadbg("bootmem_init_nonnuma()\n"); | ||
1285 | |||
1286 | printk(KERN_INFO "Top of RAM: 0x%lx, Total RAM: 0x%lx\n", | ||
1287 | top_of_ram, total_ram); | ||
1288 | printk(KERN_INFO "Memory hole size: %ldMB\n", | ||
1289 | (top_of_ram - total_ram) >> 20); | ||
1290 | |||
1291 | init_node_masks_nonnuma(); | ||
1292 | |||
1293 | for (i = 0; i < lmb.memory.cnt; i++) { | ||
1294 | unsigned long size = lmb_size_bytes(&lmb.memory, i); | ||
991 | unsigned long start_pfn, end_pfn; | 1295 | unsigned long start_pfn, end_pfn; |
992 | 1296 | ||
993 | start_pfn = pavail[i].phys_addr >> PAGE_SHIFT; | 1297 | if (!size) |
994 | end_pfn = (start_pfn + (pavail[i].reg_size >> PAGE_SHIFT)); | 1298 | continue; |
995 | memory_present(0, start_pfn, end_pfn); | 1299 | |
1300 | start_pfn = lmb.memory.region[i].base >> PAGE_SHIFT; | ||
1301 | end_pfn = start_pfn + lmb_size_pages(&lmb.memory, i); | ||
1302 | add_active_range(0, start_pfn, end_pfn); | ||
1303 | } | ||
1304 | |||
1305 | allocate_node_data(0); | ||
1306 | |||
1307 | node_set_online(0); | ||
1308 | } | ||
1309 | |||
1310 | static void __init reserve_range_in_node(int nid, unsigned long start, | ||
1311 | unsigned long end) | ||
1312 | { | ||
1313 | numadbg(" reserve_range_in_node(nid[%d],start[%lx],end[%lx]\n", | ||
1314 | nid, start, end); | ||
1315 | while (start < end) { | ||
1316 | unsigned long this_end; | ||
1317 | int n; | ||
1318 | |||
1319 | this_end = nid_range(start, end, &n); | ||
1320 | if (n == nid) { | ||
1321 | numadbg(" MATCH reserving range [%lx:%lx]\n", | ||
1322 | start, this_end); | ||
1323 | reserve_bootmem_node(NODE_DATA(nid), start, | ||
1324 | (this_end - start), BOOTMEM_DEFAULT); | ||
1325 | } else | ||
1326 | numadbg(" NO MATCH, advancing start to %lx\n", | ||
1327 | this_end); | ||
1328 | |||
1329 | start = this_end; | ||
1330 | } | ||
1331 | } | ||
1332 | |||
1333 | static void __init trim_reserved_in_node(int nid) | ||
1334 | { | ||
1335 | int i; | ||
1336 | |||
1337 | numadbg(" trim_reserved_in_node(%d)\n", nid); | ||
1338 | |||
1339 | for (i = 0; i < lmb.reserved.cnt; i++) { | ||
1340 | unsigned long start = lmb.reserved.region[i].base; | ||
1341 | unsigned long size = lmb_size_bytes(&lmb.reserved, i); | ||
1342 | unsigned long end = start + size; | ||
1343 | |||
1344 | reserve_range_in_node(nid, start, end); | ||
1345 | } | ||
1346 | } | ||
1347 | |||
1348 | static void __init bootmem_init_one_node(int nid) | ||
1349 | { | ||
1350 | struct pglist_data *p; | ||
1351 | |||
1352 | numadbg("bootmem_init_one_node(%d)\n", nid); | ||
1353 | |||
1354 | p = NODE_DATA(nid); | ||
1355 | |||
1356 | if (p->node_spanned_pages) { | ||
1357 | unsigned long paddr = node_masks[nid].bootmem_paddr; | ||
1358 | unsigned long end_pfn; | ||
1359 | |||
1360 | end_pfn = p->node_start_pfn + p->node_spanned_pages; | ||
1361 | |||
1362 | numadbg(" init_bootmem_node(%d, %lx, %lx, %lx)\n", | ||
1363 | nid, paddr >> PAGE_SHIFT, p->node_start_pfn, end_pfn); | ||
1364 | |||
1365 | init_bootmem_node(p, paddr >> PAGE_SHIFT, | ||
1366 | p->node_start_pfn, end_pfn); | ||
1367 | |||
1368 | numadbg(" free_bootmem_with_active_regions(%d, %lx)\n", | ||
1369 | nid, end_pfn); | ||
1370 | free_bootmem_with_active_regions(nid, end_pfn); | ||
1371 | |||
1372 | trim_reserved_in_node(nid); | ||
1373 | |||
1374 | numadbg(" sparse_memory_present_with_active_regions(%d)\n", | ||
1375 | nid); | ||
1376 | sparse_memory_present_with_active_regions(nid); | ||
996 | } | 1377 | } |
1378 | } | ||
1379 | |||
1380 | static unsigned long __init bootmem_init(unsigned long phys_base) | ||
1381 | { | ||
1382 | unsigned long end_pfn; | ||
1383 | int nid; | ||
1384 | |||
1385 | end_pfn = lmb_end_of_DRAM() >> PAGE_SHIFT; | ||
1386 | max_pfn = max_low_pfn = end_pfn; | ||
1387 | min_low_pfn = (phys_base >> PAGE_SHIFT); | ||
1388 | |||
1389 | if (bootmem_init_numa() < 0) | ||
1390 | bootmem_init_nonnuma(); | ||
1391 | |||
1392 | /* XXX cpu notifier XXX */ | ||
1393 | |||
1394 | for_each_online_node(nid) | ||
1395 | bootmem_init_one_node(nid); | ||
997 | 1396 | ||
998 | sparse_init(); | 1397 | sparse_init(); |
999 | 1398 | ||
@@ -1289,7 +1688,7 @@ void __init setup_per_cpu_areas(void) | |||
1289 | 1688 | ||
1290 | void __init paging_init(void) | 1689 | void __init paging_init(void) |
1291 | { | 1690 | { |
1292 | unsigned long end_pfn, pages_avail, shift, phys_base; | 1691 | unsigned long end_pfn, shift, phys_base; |
1293 | unsigned long real_end, i; | 1692 | unsigned long real_end, i; |
1294 | 1693 | ||
1295 | /* These build time checkes make sure that the dcache_dirty_cpu() | 1694 | /* These build time checkes make sure that the dcache_dirty_cpu() |
@@ -1330,12 +1729,26 @@ void __init paging_init(void) | |||
1330 | sun4v_ktsb_init(); | 1729 | sun4v_ktsb_init(); |
1331 | } | 1730 | } |
1332 | 1731 | ||
1732 | lmb_init(); | ||
1733 | |||
1333 | /* Find available physical memory... */ | 1734 | /* Find available physical memory... */ |
1334 | read_obp_memory("available", &pavail[0], &pavail_ents); | 1735 | read_obp_memory("available", &pavail[0], &pavail_ents); |
1335 | 1736 | ||
1336 | phys_base = 0xffffffffffffffffUL; | 1737 | phys_base = 0xffffffffffffffffUL; |
1337 | for (i = 0; i < pavail_ents; i++) | 1738 | for (i = 0; i < pavail_ents; i++) { |
1338 | phys_base = min(phys_base, pavail[i].phys_addr); | 1739 | phys_base = min(phys_base, pavail[i].phys_addr); |
1740 | lmb_add(pavail[i].phys_addr, pavail[i].reg_size); | ||
1741 | } | ||
1742 | |||
1743 | lmb_reserve(kern_base, kern_size); | ||
1744 | |||
1745 | find_ramdisk(phys_base); | ||
1746 | |||
1747 | if (cmdline_memory_size) | ||
1748 | lmb_enforce_memory_limit(phys_base + cmdline_memory_size); | ||
1749 | |||
1750 | lmb_analyze(); | ||
1751 | lmb_dump_all(); | ||
1339 | 1752 | ||
1340 | set_bit(0, mmu_context_bmap); | 1753 | set_bit(0, mmu_context_bmap); |
1341 | 1754 | ||
@@ -1371,14 +1784,10 @@ void __init paging_init(void) | |||
1371 | if (tlb_type == hypervisor) | 1784 | if (tlb_type == hypervisor) |
1372 | sun4v_ktsb_register(); | 1785 | sun4v_ktsb_register(); |
1373 | 1786 | ||
1374 | /* Setup bootmem... */ | 1787 | /* We must setup the per-cpu areas before we pull in the |
1375 | pages_avail = 0; | 1788 | * PROM and the MDESC. The code there fills in cpu and |
1376 | last_valid_pfn = end_pfn = bootmem_init(&pages_avail, phys_base); | 1789 | * other information into per-cpu data structures. |
1377 | 1790 | */ | |
1378 | max_mapnr = last_valid_pfn; | ||
1379 | |||
1380 | kernel_physical_mapping_init(); | ||
1381 | |||
1382 | real_setup_per_cpu_areas(); | 1791 | real_setup_per_cpu_areas(); |
1383 | 1792 | ||
1384 | prom_build_devicetree(); | 1793 | prom_build_devicetree(); |
@@ -1386,20 +1795,22 @@ void __init paging_init(void) | |||
1386 | if (tlb_type == hypervisor) | 1795 | if (tlb_type == hypervisor) |
1387 | sun4v_mdesc_init(); | 1796 | sun4v_mdesc_init(); |
1388 | 1797 | ||
1798 | /* Setup bootmem... */ | ||
1799 | last_valid_pfn = end_pfn = bootmem_init(phys_base); | ||
1800 | |||
1801 | #ifndef CONFIG_NEED_MULTIPLE_NODES | ||
1802 | max_mapnr = last_valid_pfn; | ||
1803 | #endif | ||
1804 | kernel_physical_mapping_init(); | ||
1805 | |||
1389 | { | 1806 | { |
1390 | unsigned long zones_size[MAX_NR_ZONES]; | 1807 | unsigned long max_zone_pfns[MAX_NR_ZONES]; |
1391 | unsigned long zholes_size[MAX_NR_ZONES]; | ||
1392 | int znum; | ||
1393 | 1808 | ||
1394 | for (znum = 0; znum < MAX_NR_ZONES; znum++) | 1809 | memset(max_zone_pfns, 0, sizeof(max_zone_pfns)); |
1395 | zones_size[znum] = zholes_size[znum] = 0; | ||
1396 | 1810 | ||
1397 | zones_size[ZONE_NORMAL] = end_pfn; | 1811 | max_zone_pfns[ZONE_NORMAL] = end_pfn; |
1398 | zholes_size[ZONE_NORMAL] = end_pfn - pages_avail; | ||
1399 | 1812 | ||
1400 | free_area_init_node(0, &contig_page_data, zones_size, | 1813 | free_area_init_nodes(max_zone_pfns); |
1401 | __pa(PAGE_OFFSET) >> PAGE_SHIFT, | ||
1402 | zholes_size); | ||
1403 | } | 1814 | } |
1404 | 1815 | ||
1405 | printk("Booting Linux...\n"); | 1816 | printk("Booting Linux...\n"); |
@@ -1408,21 +1819,52 @@ void __init paging_init(void) | |||
1408 | cpu_probe(); | 1819 | cpu_probe(); |
1409 | } | 1820 | } |
1410 | 1821 | ||
1411 | static void __init taint_real_pages(void) | 1822 | int __init page_in_phys_avail(unsigned long paddr) |
1823 | { | ||
1824 | int i; | ||
1825 | |||
1826 | paddr &= PAGE_MASK; | ||
1827 | |||
1828 | for (i = 0; i < pavail_ents; i++) { | ||
1829 | unsigned long start, end; | ||
1830 | |||
1831 | start = pavail[i].phys_addr; | ||
1832 | end = start + pavail[i].reg_size; | ||
1833 | |||
1834 | if (paddr >= start && paddr < end) | ||
1835 | return 1; | ||
1836 | } | ||
1837 | if (paddr >= kern_base && paddr < (kern_base + kern_size)) | ||
1838 | return 1; | ||
1839 | #ifdef CONFIG_BLK_DEV_INITRD | ||
1840 | if (paddr >= __pa(initrd_start) && | ||
1841 | paddr < __pa(PAGE_ALIGN(initrd_end))) | ||
1842 | return 1; | ||
1843 | #endif | ||
1844 | |||
1845 | return 0; | ||
1846 | } | ||
1847 | |||
1848 | static struct linux_prom64_registers pavail_rescan[MAX_BANKS] __initdata; | ||
1849 | static int pavail_rescan_ents __initdata; | ||
1850 | |||
1851 | /* Certain OBP calls, such as fetching "available" properties, can | ||
1852 | * claim physical memory. So, along with initializing the valid | ||
1853 | * address bitmap, what we do here is refetch the physical available | ||
1854 | * memory list again, and make sure it provides at least as much | ||
1855 | * memory as 'pavail' does. | ||
1856 | */ | ||
1857 | static void setup_valid_addr_bitmap_from_pavail(void) | ||
1412 | { | 1858 | { |
1413 | int i; | 1859 | int i; |
1414 | 1860 | ||
1415 | read_obp_memory("available", &pavail_rescan[0], &pavail_rescan_ents); | 1861 | read_obp_memory("available", &pavail_rescan[0], &pavail_rescan_ents); |
1416 | 1862 | ||
1417 | /* Find changes discovered in the physmem available rescan and | ||
1418 | * reserve the lost portions in the bootmem maps. | ||
1419 | */ | ||
1420 | for (i = 0; i < pavail_ents; i++) { | 1863 | for (i = 0; i < pavail_ents; i++) { |
1421 | unsigned long old_start, old_end; | 1864 | unsigned long old_start, old_end; |
1422 | 1865 | ||
1423 | old_start = pavail[i].phys_addr; | 1866 | old_start = pavail[i].phys_addr; |
1424 | old_end = old_start + | 1867 | old_end = old_start + pavail[i].reg_size; |
1425 | pavail[i].reg_size; | ||
1426 | while (old_start < old_end) { | 1868 | while (old_start < old_end) { |
1427 | int n; | 1869 | int n; |
1428 | 1870 | ||
@@ -1440,7 +1882,16 @@ static void __init taint_real_pages(void) | |||
1440 | goto do_next_page; | 1882 | goto do_next_page; |
1441 | } | 1883 | } |
1442 | } | 1884 | } |
1443 | reserve_bootmem(old_start, PAGE_SIZE, BOOTMEM_DEFAULT); | 1885 | |
1886 | prom_printf("mem_init: Lost memory in pavail\n"); | ||
1887 | prom_printf("mem_init: OLD start[%lx] size[%lx]\n", | ||
1888 | pavail[i].phys_addr, | ||
1889 | pavail[i].reg_size); | ||
1890 | prom_printf("mem_init: NEW start[%lx] size[%lx]\n", | ||
1891 | pavail_rescan[i].phys_addr, | ||
1892 | pavail_rescan[i].reg_size); | ||
1893 | prom_printf("mem_init: Cannot continue, aborting.\n"); | ||
1894 | prom_halt(); | ||
1444 | 1895 | ||
1445 | do_next_page: | 1896 | do_next_page: |
1446 | old_start += PAGE_SIZE; | 1897 | old_start += PAGE_SIZE; |
@@ -1448,32 +1899,6 @@ static void __init taint_real_pages(void) | |||
1448 | } | 1899 | } |
1449 | } | 1900 | } |
1450 | 1901 | ||
1451 | int __init page_in_phys_avail(unsigned long paddr) | ||
1452 | { | ||
1453 | int i; | ||
1454 | |||
1455 | paddr &= PAGE_MASK; | ||
1456 | |||
1457 | for (i = 0; i < pavail_rescan_ents; i++) { | ||
1458 | unsigned long start, end; | ||
1459 | |||
1460 | start = pavail_rescan[i].phys_addr; | ||
1461 | end = start + pavail_rescan[i].reg_size; | ||
1462 | |||
1463 | if (paddr >= start && paddr < end) | ||
1464 | return 1; | ||
1465 | } | ||
1466 | if (paddr >= kern_base && paddr < (kern_base + kern_size)) | ||
1467 | return 1; | ||
1468 | #ifdef CONFIG_BLK_DEV_INITRD | ||
1469 | if (paddr >= __pa(initrd_start) && | ||
1470 | paddr < __pa(PAGE_ALIGN(initrd_end))) | ||
1471 | return 1; | ||
1472 | #endif | ||
1473 | |||
1474 | return 0; | ||
1475 | } | ||
1476 | |||
1477 | void __init mem_init(void) | 1902 | void __init mem_init(void) |
1478 | { | 1903 | { |
1479 | unsigned long codepages, datapages, initpages; | 1904 | unsigned long codepages, datapages, initpages; |
@@ -1496,14 +1921,26 @@ void __init mem_init(void) | |||
1496 | addr += PAGE_SIZE; | 1921 | addr += PAGE_SIZE; |
1497 | } | 1922 | } |
1498 | 1923 | ||
1499 | taint_real_pages(); | 1924 | setup_valid_addr_bitmap_from_pavail(); |
1500 | 1925 | ||
1501 | high_memory = __va(last_valid_pfn << PAGE_SHIFT); | 1926 | high_memory = __va(last_valid_pfn << PAGE_SHIFT); |
1502 | 1927 | ||
1928 | #ifdef CONFIG_NEED_MULTIPLE_NODES | ||
1929 | for_each_online_node(i) { | ||
1930 | if (NODE_DATA(i)->node_spanned_pages != 0) { | ||
1931 | totalram_pages += | ||
1932 | free_all_bootmem_node(NODE_DATA(i)); | ||
1933 | } | ||
1934 | } | ||
1935 | #else | ||
1936 | totalram_pages = free_all_bootmem(); | ||
1937 | #endif | ||
1938 | |||
1503 | /* We subtract one to account for the mem_map_zero page | 1939 | /* We subtract one to account for the mem_map_zero page |
1504 | * allocated below. | 1940 | * allocated below. |
1505 | */ | 1941 | */ |
1506 | totalram_pages = num_physpages = free_all_bootmem() - 1; | 1942 | totalram_pages -= 1; |
1943 | num_physpages = totalram_pages; | ||
1507 | 1944 | ||
1508 | /* | 1945 | /* |
1509 | * Set up the zero page, mark it reserved, so that page count | 1946 | * Set up the zero page, mark it reserved, so that page count |
diff --git a/arch/sparc64/mm/tsb.c b/arch/sparc64/mm/tsb.c index a3e6e4b635b3..fe70c8a557b5 100644 --- a/arch/sparc64/mm/tsb.c +++ b/arch/sparc64/mm/tsb.c | |||
@@ -321,7 +321,8 @@ retry_tsb_alloc: | |||
321 | if (new_size > (PAGE_SIZE * 2)) | 321 | if (new_size > (PAGE_SIZE * 2)) |
322 | gfp_flags = __GFP_NOWARN | __GFP_NORETRY; | 322 | gfp_flags = __GFP_NOWARN | __GFP_NORETRY; |
323 | 323 | ||
324 | new_tsb = kmem_cache_alloc(tsb_caches[new_cache_index], gfp_flags); | 324 | new_tsb = kmem_cache_alloc_node(tsb_caches[new_cache_index], |
325 | gfp_flags, numa_node_id()); | ||
325 | if (unlikely(!new_tsb)) { | 326 | if (unlikely(!new_tsb)) { |
326 | /* Not being able to fork due to a high-order TSB | 327 | /* Not being able to fork due to a high-order TSB |
327 | * allocation failure is very bad behavior. Just back | 328 | * allocation failure is very bad behavior. Just back |
diff --git a/arch/sparc64/mm/ultra.S b/arch/sparc64/mm/ultra.S index 2865c105b6a4..e686a67561af 100644 --- a/arch/sparc64/mm/ultra.S +++ b/arch/sparc64/mm/ultra.S | |||
@@ -476,7 +476,6 @@ xcall_sync_tick: | |||
476 | #endif | 476 | #endif |
477 | call smp_synchronize_tick_client | 477 | call smp_synchronize_tick_client |
478 | nop | 478 | nop |
479 | clr %l6 | ||
480 | b rtrap_xcall | 479 | b rtrap_xcall |
481 | ldx [%sp + PTREGS_OFF + PT_V9_TSTATE], %l1 | 480 | ldx [%sp + PTREGS_OFF + PT_V9_TSTATE], %l1 |
482 | 481 | ||
@@ -511,7 +510,6 @@ xcall_report_regs: | |||
511 | #endif | 510 | #endif |
512 | call __show_regs | 511 | call __show_regs |
513 | add %sp, PTREGS_OFF, %o0 | 512 | add %sp, PTREGS_OFF, %o0 |
514 | clr %l6 | ||
515 | /* Has to be a non-v9 branch due to the large distance. */ | 513 | /* Has to be a non-v9 branch due to the large distance. */ |
516 | b rtrap_xcall | 514 | b rtrap_xcall |
517 | ldx [%sp + PTREGS_OFF + PT_V9_TSTATE], %l1 | 515 | ldx [%sp + PTREGS_OFF + PT_V9_TSTATE], %l1 |
@@ -576,7 +574,7 @@ __hypervisor_tlb_xcall_error: | |||
576 | mov %l4, %o0 | 574 | mov %l4, %o0 |
577 | call hypervisor_tlbop_error_xcall | 575 | call hypervisor_tlbop_error_xcall |
578 | mov %l5, %o1 | 576 | mov %l5, %o1 |
579 | ba,a,pt %xcc, rtrap_clr_l6 | 577 | ba,a,pt %xcc, rtrap |
580 | 578 | ||
581 | .globl __hypervisor_xcall_flush_tlb_mm | 579 | .globl __hypervisor_xcall_flush_tlb_mm |
582 | __hypervisor_xcall_flush_tlb_mm: /* 21 insns */ | 580 | __hypervisor_xcall_flush_tlb_mm: /* 21 insns */ |
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 87a693cf2bb7..4d350b5cbc71 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
@@ -23,7 +23,7 @@ config X86 | |||
23 | select HAVE_KPROBES | 23 | select HAVE_KPROBES |
24 | select HAVE_KRETPROBES | 24 | select HAVE_KRETPROBES |
25 | select HAVE_KVM if ((X86_32 && !X86_VOYAGER && !X86_VISWS && !X86_NUMAQ) || X86_64) | 25 | select HAVE_KVM if ((X86_32 && !X86_VOYAGER && !X86_VISWS && !X86_NUMAQ) || X86_64) |
26 | select HAVE_ARCH_KGDB | 26 | select HAVE_ARCH_KGDB if !X86_VOYAGER |
27 | 27 | ||
28 | 28 | ||
29 | config GENERIC_LOCKBREAK | 29 | config GENERIC_LOCKBREAK |
diff --git a/arch/x86/boot/.gitignore b/arch/x86/boot/.gitignore index b1bdc4c6f9f2..172cf8a98bdd 100644 --- a/arch/x86/boot/.gitignore +++ b/arch/x86/boot/.gitignore | |||
@@ -1,7 +1,8 @@ | |||
1 | bootsect | 1 | bootsect |
2 | bzImage | 2 | bzImage |
3 | cpustr.h | ||
4 | mkcpustr | ||
5 | offsets.h | ||
3 | setup | 6 | setup |
4 | setup.bin | 7 | setup.bin |
5 | setup.elf | 8 | setup.elf |
6 | cpustr.h | ||
7 | mkcpustr | ||
diff --git a/arch/x86/kernel/acpi/realmode/.gitignore b/arch/x86/kernel/acpi/realmode/.gitignore new file mode 100644 index 000000000000..58f1f48a58f8 --- /dev/null +++ b/arch/x86/kernel/acpi/realmode/.gitignore | |||
@@ -0,0 +1,3 @@ | |||
1 | wakeup.bin | ||
2 | wakeup.elf | ||
3 | wakeup.lds | ||
diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c index df4099dc1c68..65c7857a90dd 100644 --- a/arch/x86/kernel/alternative.c +++ b/arch/x86/kernel/alternative.c | |||
@@ -511,31 +511,30 @@ void *__kprobes text_poke(void *addr, const void *opcode, size_t len) | |||
511 | unsigned long flags; | 511 | unsigned long flags; |
512 | char *vaddr; | 512 | char *vaddr; |
513 | int nr_pages = 2; | 513 | int nr_pages = 2; |
514 | struct page *pages[2]; | ||
515 | int i; | ||
514 | 516 | ||
515 | BUG_ON(len > sizeof(long)); | 517 | if (!core_kernel_text((unsigned long)addr)) { |
516 | BUG_ON((((long)addr + len - 1) & ~(sizeof(long) - 1)) | 518 | pages[0] = vmalloc_to_page(addr); |
517 | - ((long)addr & ~(sizeof(long) - 1))); | 519 | pages[1] = vmalloc_to_page(addr + PAGE_SIZE); |
518 | if (kernel_text_address((unsigned long)addr)) { | ||
519 | struct page *pages[2] = { virt_to_page(addr), | ||
520 | virt_to_page(addr + PAGE_SIZE) }; | ||
521 | if (!pages[1]) | ||
522 | nr_pages = 1; | ||
523 | vaddr = vmap(pages, nr_pages, VM_MAP, PAGE_KERNEL); | ||
524 | BUG_ON(!vaddr); | ||
525 | local_irq_save(flags); | ||
526 | memcpy(&vaddr[(unsigned long)addr & ~PAGE_MASK], opcode, len); | ||
527 | local_irq_restore(flags); | ||
528 | vunmap(vaddr); | ||
529 | } else { | 520 | } else { |
530 | /* | 521 | pages[0] = virt_to_page(addr); |
531 | * modules are in vmalloc'ed memory, always writable. | 522 | WARN_ON(!PageReserved(pages[0])); |
532 | */ | 523 | pages[1] = virt_to_page(addr + PAGE_SIZE); |
533 | local_irq_save(flags); | ||
534 | memcpy(addr, opcode, len); | ||
535 | local_irq_restore(flags); | ||
536 | } | 524 | } |
525 | BUG_ON(!pages[0]); | ||
526 | if (!pages[1]) | ||
527 | nr_pages = 1; | ||
528 | vaddr = vmap(pages, nr_pages, VM_MAP, PAGE_KERNEL); | ||
529 | BUG_ON(!vaddr); | ||
530 | local_irq_save(flags); | ||
531 | memcpy(&vaddr[(unsigned long)addr & ~PAGE_MASK], opcode, len); | ||
532 | local_irq_restore(flags); | ||
533 | vunmap(vaddr); | ||
537 | sync_core(); | 534 | sync_core(); |
538 | /* Could also do a CLFLUSH here to speed up CPU recovery; but | 535 | /* Could also do a CLFLUSH here to speed up CPU recovery; but |
539 | that causes hangs on some VIA CPUs. */ | 536 | that causes hangs on some VIA CPUs. */ |
537 | for (i = 0; i < len; i++) | ||
538 | BUG_ON(((char *)addr)[i] != ((char *)opcode)[i]); | ||
540 | return addr; | 539 | return addr; |
541 | } | 540 | } |
diff --git a/arch/x86/kernel/apic_32.c b/arch/x86/kernel/apic_32.c index 687208190b06..8317401170b8 100644 --- a/arch/x86/kernel/apic_32.c +++ b/arch/x86/kernel/apic_32.c | |||
@@ -902,7 +902,7 @@ void __init init_bsp_APIC(void) | |||
902 | apic_write_around(APIC_LVT1, value); | 902 | apic_write_around(APIC_LVT1, value); |
903 | } | 903 | } |
904 | 904 | ||
905 | void __cpuinit lapic_setup_esr(void) | 905 | static void __cpuinit lapic_setup_esr(void) |
906 | { | 906 | { |
907 | unsigned long oldvalue, value, maxlvt; | 907 | unsigned long oldvalue, value, maxlvt; |
908 | if (lapic_is_integrated() && !esr_disable) { | 908 | if (lapic_is_integrated() && !esr_disable) { |
diff --git a/arch/x86/kernel/apic_64.c b/arch/x86/kernel/apic_64.c index 9e8e5c050c55..bf83157337e4 100644 --- a/arch/x86/kernel/apic_64.c +++ b/arch/x86/kernel/apic_64.c | |||
@@ -429,7 +429,7 @@ void __init setup_boot_APIC_clock(void) | |||
429 | * set the DUMMY flag again and force the broadcast mode in the | 429 | * set the DUMMY flag again and force the broadcast mode in the |
430 | * clockevents layer. | 430 | * clockevents layer. |
431 | */ | 431 | */ |
432 | void __cpuinit check_boot_apic_timer_broadcast(void) | 432 | static void __cpuinit check_boot_apic_timer_broadcast(void) |
433 | { | 433 | { |
434 | if (!disable_apic_timer || | 434 | if (!disable_apic_timer || |
435 | (lapic_clockevent.features & CLOCK_EVT_FEAT_DUMMY)) | 435 | (lapic_clockevent.features & CLOCK_EVT_FEAT_DUMMY)) |
@@ -834,7 +834,7 @@ void __cpuinit setup_local_APIC(void) | |||
834 | preempt_enable(); | 834 | preempt_enable(); |
835 | } | 835 | } |
836 | 836 | ||
837 | void __cpuinit lapic_setup_esr(void) | 837 | static void __cpuinit lapic_setup_esr(void) |
838 | { | 838 | { |
839 | unsigned maxlvt = lapic_get_maxlvt(); | 839 | unsigned maxlvt = lapic_get_maxlvt(); |
840 | 840 | ||
diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c index 7adad088e373..77de848bd1fb 100644 --- a/arch/x86/kernel/process_32.c +++ b/arch/x86/kernel/process_32.c | |||
@@ -550,7 +550,7 @@ static void hard_enable_TSC(void) | |||
550 | write_cr4(read_cr4() & ~X86_CR4_TSD); | 550 | write_cr4(read_cr4() & ~X86_CR4_TSD); |
551 | } | 551 | } |
552 | 552 | ||
553 | void enable_TSC(void) | 553 | static void enable_TSC(void) |
554 | { | 554 | { |
555 | preempt_disable(); | 555 | preempt_disable(); |
556 | if (test_and_clear_thread_flag(TIF_NOTSC)) | 556 | if (test_and_clear_thread_flag(TIF_NOTSC)) |
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c index 891af1a1b48a..131c2ee7ac56 100644 --- a/arch/x86/kernel/process_64.c +++ b/arch/x86/kernel/process_64.c | |||
@@ -562,7 +562,7 @@ static void hard_enable_TSC(void) | |||
562 | write_cr4(read_cr4() & ~X86_CR4_TSD); | 562 | write_cr4(read_cr4() & ~X86_CR4_TSD); |
563 | } | 563 | } |
564 | 564 | ||
565 | void enable_TSC(void) | 565 | static void enable_TSC(void) |
566 | { | 566 | { |
567 | preempt_disable(); | 567 | preempt_disable(); |
568 | if (test_and_clear_thread_flag(TIF_NOTSC)) | 568 | if (test_and_clear_thread_flag(TIF_NOTSC)) |
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index 0d1f44ae6eea..c0c68c18a788 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c | |||
@@ -18,8 +18,6 @@ unsigned disabled_cpus __cpuinitdata; | |||
18 | unsigned int boot_cpu_physical_apicid = -1U; | 18 | unsigned int boot_cpu_physical_apicid = -1U; |
19 | EXPORT_SYMBOL(boot_cpu_physical_apicid); | 19 | EXPORT_SYMBOL(boot_cpu_physical_apicid); |
20 | 20 | ||
21 | physid_mask_t phys_cpu_present_map; | ||
22 | |||
23 | DEFINE_PER_CPU(u16, x86_cpu_to_apicid) = BAD_APICID; | 21 | DEFINE_PER_CPU(u16, x86_cpu_to_apicid) = BAD_APICID; |
24 | EXPORT_PER_CPU_SYMBOL(x86_cpu_to_apicid); | 22 | EXPORT_PER_CPU_SYMBOL(x86_cpu_to_apicid); |
25 | 23 | ||
diff --git a/arch/x86/kernel/setup_32.c b/arch/x86/kernel/setup_32.c index 78828b0f604f..455d3c80960b 100644 --- a/arch/x86/kernel/setup_32.c +++ b/arch/x86/kernel/setup_32.c | |||
@@ -442,7 +442,7 @@ static void __init reserve_ebda_region(void) | |||
442 | } | 442 | } |
443 | 443 | ||
444 | #ifndef CONFIG_NEED_MULTIPLE_NODES | 444 | #ifndef CONFIG_NEED_MULTIPLE_NODES |
445 | void __init setup_bootmem_allocator(void); | 445 | static void __init setup_bootmem_allocator(void); |
446 | static unsigned long __init setup_memory(void) | 446 | static unsigned long __init setup_memory(void) |
447 | { | 447 | { |
448 | /* | 448 | /* |
@@ -477,7 +477,7 @@ static unsigned long __init setup_memory(void) | |||
477 | return max_low_pfn; | 477 | return max_low_pfn; |
478 | } | 478 | } |
479 | 479 | ||
480 | void __init zone_sizes_init(void) | 480 | static void __init zone_sizes_init(void) |
481 | { | 481 | { |
482 | unsigned long max_zone_pfns[MAX_NR_ZONES]; | 482 | unsigned long max_zone_pfns[MAX_NR_ZONES]; |
483 | memset(max_zone_pfns, 0, sizeof(max_zone_pfns)); | 483 | memset(max_zone_pfns, 0, sizeof(max_zone_pfns)); |
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index 2de2f7a2ed5d..eef79e84145f 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c | |||
@@ -184,7 +184,7 @@ static void unmap_cpu_to_node(int cpu) | |||
184 | u8 cpu_2_logical_apicid[NR_CPUS] __read_mostly = | 184 | u8 cpu_2_logical_apicid[NR_CPUS] __read_mostly = |
185 | { [0 ... NR_CPUS-1] = BAD_APICID }; | 185 | { [0 ... NR_CPUS-1] = BAD_APICID }; |
186 | 186 | ||
187 | void map_cpu_to_logical_apicid(void) | 187 | static void map_cpu_to_logical_apicid(void) |
188 | { | 188 | { |
189 | int cpu = smp_processor_id(); | 189 | int cpu = smp_processor_id(); |
190 | int apicid = logical_smp_processor_id(); | 190 | int apicid = logical_smp_processor_id(); |
@@ -197,7 +197,7 @@ void map_cpu_to_logical_apicid(void) | |||
197 | map_cpu_to_node(cpu, node); | 197 | map_cpu_to_node(cpu, node); |
198 | } | 198 | } |
199 | 199 | ||
200 | void unmap_cpu_to_logical_apicid(int cpu) | 200 | static void unmap_cpu_to_logical_apicid(int cpu) |
201 | { | 201 | { |
202 | cpu_2_logical_apicid[cpu] = BAD_APICID; | 202 | cpu_2_logical_apicid[cpu] = BAD_APICID; |
203 | unmap_cpu_to_node(cpu); | 203 | unmap_cpu_to_node(cpu); |
@@ -211,7 +211,7 @@ void unmap_cpu_to_logical_apicid(int cpu) | |||
211 | * Report back to the Boot Processor. | 211 | * Report back to the Boot Processor. |
212 | * Running on AP. | 212 | * Running on AP. |
213 | */ | 213 | */ |
214 | void __cpuinit smp_callin(void) | 214 | static void __cpuinit smp_callin(void) |
215 | { | 215 | { |
216 | int cpuid, phys_id; | 216 | int cpuid, phys_id; |
217 | unsigned long timeout; | 217 | unsigned long timeout; |
@@ -436,7 +436,7 @@ valid_k7: | |||
436 | #endif | 436 | #endif |
437 | } | 437 | } |
438 | 438 | ||
439 | void __cpuinit smp_checks(void) | 439 | static void __cpuinit smp_checks(void) |
440 | { | 440 | { |
441 | if (smp_b_stepping) | 441 | if (smp_b_stepping) |
442 | printk(KERN_WARNING "WARNING: SMP operation may be unreliable" | 442 | printk(KERN_WARNING "WARNING: SMP operation may be unreliable" |
@@ -565,7 +565,7 @@ void __init smp_alloc_memory(void) | |||
565 | } | 565 | } |
566 | #endif | 566 | #endif |
567 | 567 | ||
568 | void impress_friends(void) | 568 | static void impress_friends(void) |
569 | { | 569 | { |
570 | int cpu; | 570 | int cpu; |
571 | unsigned long bogosum = 0; | 571 | unsigned long bogosum = 0; |
@@ -1287,7 +1287,7 @@ void cpu_exit_clear(void) | |||
1287 | } | 1287 | } |
1288 | # endif /* CONFIG_X86_32 */ | 1288 | # endif /* CONFIG_X86_32 */ |
1289 | 1289 | ||
1290 | void remove_siblinginfo(int cpu) | 1290 | static void remove_siblinginfo(int cpu) |
1291 | { | 1291 | { |
1292 | int sibling; | 1292 | int sibling; |
1293 | struct cpuinfo_x86 *c = &cpu_data(cpu); | 1293 | struct cpuinfo_x86 *c = &cpu_data(cpu); |
diff --git a/arch/x86/kernel/tlb_64.c b/arch/x86/kernel/tlb_64.c index 1558e513757e..df224a8774cb 100644 --- a/arch/x86/kernel/tlb_64.c +++ b/arch/x86/kernel/tlb_64.c | |||
@@ -191,7 +191,7 @@ void native_flush_tlb_others(const cpumask_t *cpumaskp, struct mm_struct *mm, | |||
191 | spin_unlock(&f->tlbstate_lock); | 191 | spin_unlock(&f->tlbstate_lock); |
192 | } | 192 | } |
193 | 193 | ||
194 | int __cpuinit init_smp_flush(void) | 194 | static int __cpuinit init_smp_flush(void) |
195 | { | 195 | { |
196 | int i; | 196 | int i; |
197 | 197 | ||
diff --git a/arch/x86/kernel/vsyscall_64.c b/arch/x86/kernel/vsyscall_64.c index edff4c985485..61efa2f7d564 100644 --- a/arch/x86/kernel/vsyscall_64.c +++ b/arch/x86/kernel/vsyscall_64.c | |||
@@ -216,7 +216,7 @@ vgetcpu(unsigned *cpu, unsigned *node, struct getcpu_cache *tcache) | |||
216 | return 0; | 216 | return 0; |
217 | } | 217 | } |
218 | 218 | ||
219 | long __vsyscall(3) venosys_1(void) | 219 | static long __vsyscall(3) venosys_1(void) |
220 | { | 220 | { |
221 | return -ENOSYS; | 221 | return -ENOSYS; |
222 | } | 222 | } |
diff --git a/arch/x86/mach-visws/mpparse.c b/arch/x86/mach-visws/mpparse.c index 2a8456a1f44f..57484e91ab90 100644 --- a/arch/x86/mach-visws/mpparse.c +++ b/arch/x86/mach-visws/mpparse.c | |||
@@ -11,22 +11,9 @@ | |||
11 | /* Have we found an MP table */ | 11 | /* Have we found an MP table */ |
12 | int smp_found_config; | 12 | int smp_found_config; |
13 | 13 | ||
14 | /* | ||
15 | * Various Linux-internal data structures created from the | ||
16 | * MP-table. | ||
17 | */ | ||
18 | int apic_version [MAX_APICS]; | ||
19 | |||
20 | int pic_mode; | 14 | int pic_mode; |
21 | unsigned long mp_lapic_addr; | ||
22 | |||
23 | /* Processor that is doing the boot up */ | ||
24 | unsigned int boot_cpu_physical_apicid = -1U; | ||
25 | |||
26 | /* Bitmask of physically existing CPUs */ | ||
27 | physid_mask_t phys_cpu_present_map; | ||
28 | 15 | ||
29 | unsigned int __initdata maxcpus = NR_CPUS; | 16 | extern unsigned int __cpuinitdata maxcpus; |
30 | 17 | ||
31 | /* | 18 | /* |
32 | * The Visual Workstation is Intel MP compliant in the hardware | 19 | * The Visual Workstation is Intel MP compliant in the hardware |
diff --git a/arch/x86/mach-voyager/voyager_smp.c b/arch/x86/mach-voyager/voyager_smp.c index 394046effd78..6e2c4efce0ef 100644 --- a/arch/x86/mach-voyager/voyager_smp.c +++ b/arch/x86/mach-voyager/voyager_smp.c | |||
@@ -206,11 +206,6 @@ static struct irq_chip vic_chip = { | |||
206 | /* used to count up as CPUs are brought on line (starts at 0) */ | 206 | /* used to count up as CPUs are brought on line (starts at 0) */ |
207 | static int cpucount = 0; | 207 | static int cpucount = 0; |
208 | 208 | ||
209 | /* steal a page from the bottom of memory for the trampoline and | ||
210 | * squirrel its address away here. This will be in kernel virtual | ||
211 | * space */ | ||
212 | unsigned char *trampoline_base; | ||
213 | |||
214 | /* The per cpu profile stuff - used in smp_local_timer_interrupt */ | 209 | /* The per cpu profile stuff - used in smp_local_timer_interrupt */ |
215 | static DEFINE_PER_CPU(int, prof_multiplier) = 1; | 210 | static DEFINE_PER_CPU(int, prof_multiplier) = 1; |
216 | static DEFINE_PER_CPU(int, prof_old_multiplier) = 1; | 211 | static DEFINE_PER_CPU(int, prof_old_multiplier) = 1; |
@@ -427,18 +422,6 @@ void __init smp_store_cpu_info(int id) | |||
427 | identify_secondary_cpu(c); | 422 | identify_secondary_cpu(c); |
428 | } | 423 | } |
429 | 424 | ||
430 | /* set up the trampoline and return the physical address of the code */ | ||
431 | unsigned long __init setup_trampoline(void) | ||
432 | { | ||
433 | /* these two are global symbols in trampoline.S */ | ||
434 | extern const __u8 trampoline_end[]; | ||
435 | extern const __u8 trampoline_data[]; | ||
436 | |||
437 | memcpy(trampoline_base, trampoline_data, | ||
438 | trampoline_end - trampoline_data); | ||
439 | return virt_to_phys(trampoline_base); | ||
440 | } | ||
441 | |||
442 | /* Routine initially called when a non-boot CPU is brought online */ | 425 | /* Routine initially called when a non-boot CPU is brought online */ |
443 | static void __init start_secondary(void *unused) | 426 | static void __init start_secondary(void *unused) |
444 | { | 427 | { |
diff --git a/arch/x86/mm/dump_pagetables.c b/arch/x86/mm/dump_pagetables.c index 6791b8334bc6..2c24bea92c66 100644 --- a/arch/x86/mm/dump_pagetables.c +++ b/arch/x86/mm/dump_pagetables.c | |||
@@ -324,7 +324,7 @@ static const struct file_operations ptdump_fops = { | |||
324 | .release = single_release, | 324 | .release = single_release, |
325 | }; | 325 | }; |
326 | 326 | ||
327 | int pt_dump_init(void) | 327 | static int pt_dump_init(void) |
328 | { | 328 | { |
329 | struct dentry *pe; | 329 | struct dentry *pe; |
330 | 330 | ||
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c index 1ff7906a9a4d..b798e7b92b17 100644 --- a/arch/x86/mm/init_64.c +++ b/arch/x86/mm/init_64.c | |||
@@ -135,7 +135,7 @@ static __init void *spp_getpage(void) | |||
135 | return ptr; | 135 | return ptr; |
136 | } | 136 | } |
137 | 137 | ||
138 | static __init void | 138 | static void |
139 | set_pte_phys(unsigned long vaddr, unsigned long phys, pgprot_t prot) | 139 | set_pte_phys(unsigned long vaddr, unsigned long phys, pgprot_t prot) |
140 | { | 140 | { |
141 | pgd_t *pgd; | 141 | pgd_t *pgd; |
@@ -173,7 +173,7 @@ set_pte_phys(unsigned long vaddr, unsigned long phys, pgprot_t prot) | |||
173 | new_pte = pfn_pte(phys >> PAGE_SHIFT, prot); | 173 | new_pte = pfn_pte(phys >> PAGE_SHIFT, prot); |
174 | 174 | ||
175 | pte = pte_offset_kernel(pmd, vaddr); | 175 | pte = pte_offset_kernel(pmd, vaddr); |
176 | if (!pte_none(*pte) && | 176 | if (!pte_none(*pte) && pte_val(new_pte) && |
177 | pte_val(*pte) != (pte_val(new_pte) & __supported_pte_mask)) | 177 | pte_val(*pte) != (pte_val(new_pte) & __supported_pte_mask)) |
178 | pte_ERROR(*pte); | 178 | pte_ERROR(*pte); |
179 | set_pte(pte, new_pte); | 179 | set_pte(pte, new_pte); |
@@ -214,8 +214,7 @@ void __init cleanup_highmap(void) | |||
214 | } | 214 | } |
215 | 215 | ||
216 | /* NOTE: this is meant to be run only at boot */ | 216 | /* NOTE: this is meant to be run only at boot */ |
217 | void __init | 217 | void __set_fixmap(enum fixed_addresses idx, unsigned long phys, pgprot_t prot) |
218 | __set_fixmap(enum fixed_addresses idx, unsigned long phys, pgprot_t prot) | ||
219 | { | 218 | { |
220 | unsigned long address = __fix_to_virt(idx); | 219 | unsigned long address = __fix_to_virt(idx); |
221 | 220 | ||
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c index 57e762c141f7..bd5e05c654dc 100644 --- a/arch/x86/mm/pageattr.c +++ b/arch/x86/mm/pageattr.c | |||
@@ -991,7 +991,7 @@ static const struct file_operations dpa_fops = { | |||
991 | .release = single_release, | 991 | .release = single_release, |
992 | }; | 992 | }; |
993 | 993 | ||
994 | int __init debug_pagealloc_proc_init(void) | 994 | static int __init debug_pagealloc_proc_init(void) |
995 | { | 995 | { |
996 | struct dentry *de; | 996 | struct dentry *de; |
997 | 997 | ||
diff --git a/arch/x86/mm/srat_64.c b/arch/x86/mm/srat_64.c index fb43d89f46f3..3890234e5b26 100644 --- a/arch/x86/mm/srat_64.c +++ b/arch/x86/mm/srat_64.c | |||
@@ -163,7 +163,7 @@ acpi_numa_processor_affinity_init(struct acpi_srat_cpu_affinity *pa) | |||
163 | pxm, apic_id, node); | 163 | pxm, apic_id, node); |
164 | } | 164 | } |
165 | 165 | ||
166 | int update_end_of_memory(unsigned long end) {return -1;} | 166 | static int update_end_of_memory(unsigned long end) {return -1;} |
167 | static int hotadd_enough_memory(struct bootnode *nd) {return 1;} | 167 | static int hotadd_enough_memory(struct bootnode *nd) {return 1;} |
168 | #ifdef CONFIG_MEMORY_HOTPLUG_SPARSE | 168 | #ifdef CONFIG_MEMORY_HOTPLUG_SPARSE |
169 | static inline int save_add_info(void) {return 1;} | 169 | static inline int save_add_info(void) {return 1;} |