diff options
Diffstat (limited to 'arch')
348 files changed, 10897 insertions, 2656 deletions
diff --git a/arch/alpha/kernel/entry.S b/arch/alpha/kernel/entry.S index c95e95e1ab04..debc8f03886c 100644 --- a/arch/alpha/kernel/entry.S +++ b/arch/alpha/kernel/entry.S | |||
@@ -391,11 +391,10 @@ $work_resched: | |||
391 | bne $2, $work_resched | 391 | bne $2, $work_resched |
392 | 392 | ||
393 | $work_notifysig: | 393 | $work_notifysig: |
394 | mov $sp, $17 | 394 | mov $sp, $16 |
395 | br $1, do_switch_stack | 395 | br $1, do_switch_stack |
396 | mov $5, $21 | 396 | mov $sp, $17 |
397 | mov $sp, $18 | 397 | mov $5, $18 |
398 | mov $31, $16 | ||
399 | jsr $26, do_notify_resume | 398 | jsr $26, do_notify_resume |
400 | bsr $1, undo_switch_stack | 399 | bsr $1, undo_switch_stack |
401 | br restore_all | 400 | br restore_all |
diff --git a/arch/alpha/kernel/pci_iommu.c b/arch/alpha/kernel/pci_iommu.c index 6e7d1fe6e935..28c84e55feb9 100644 --- a/arch/alpha/kernel/pci_iommu.c +++ b/arch/alpha/kernel/pci_iommu.c | |||
@@ -7,6 +7,7 @@ | |||
7 | #include <linux/pci.h> | 7 | #include <linux/pci.h> |
8 | #include <linux/slab.h> | 8 | #include <linux/slab.h> |
9 | #include <linux/bootmem.h> | 9 | #include <linux/bootmem.h> |
10 | #include <linux/log2.h> | ||
10 | 11 | ||
11 | #include <asm/io.h> | 12 | #include <asm/io.h> |
12 | #include <asm/hwrpb.h> | 13 | #include <asm/hwrpb.h> |
@@ -53,7 +54,7 @@ size_for_memory(unsigned long max) | |||
53 | { | 54 | { |
54 | unsigned long mem = max_low_pfn << PAGE_SHIFT; | 55 | unsigned long mem = max_low_pfn << PAGE_SHIFT; |
55 | if (mem < max) | 56 | if (mem < max) |
56 | max = 1UL << ceil_log2(mem); | 57 | max = roundup_pow_of_two(mem); |
57 | return max; | 58 | return max; |
58 | } | 59 | } |
59 | 60 | ||
diff --git a/arch/alpha/kernel/setup.c b/arch/alpha/kernel/setup.c index 915f26345c45..bd5e68cd61e8 100644 --- a/arch/alpha/kernel/setup.c +++ b/arch/alpha/kernel/setup.c | |||
@@ -43,6 +43,7 @@ | |||
43 | #include <linux/notifier.h> | 43 | #include <linux/notifier.h> |
44 | #include <asm/setup.h> | 44 | #include <asm/setup.h> |
45 | #include <asm/io.h> | 45 | #include <asm/io.h> |
46 | #include <linux/log2.h> | ||
46 | 47 | ||
47 | extern struct atomic_notifier_head panic_notifier_list; | 48 | extern struct atomic_notifier_head panic_notifier_list; |
48 | static int alpha_panic_event(struct notifier_block *, unsigned long, void *); | 49 | static int alpha_panic_event(struct notifier_block *, unsigned long, void *); |
@@ -1303,7 +1304,7 @@ external_cache_probe(int minsize, int width) | |||
1303 | long size = minsize, maxsize = MAX_BCACHE_SIZE * 2; | 1304 | long size = minsize, maxsize = MAX_BCACHE_SIZE * 2; |
1304 | 1305 | ||
1305 | if (maxsize > (max_low_pfn + 1) << PAGE_SHIFT) | 1306 | if (maxsize > (max_low_pfn + 1) << PAGE_SHIFT) |
1306 | maxsize = 1 << (floor_log2(max_low_pfn + 1) + PAGE_SHIFT); | 1307 | maxsize = 1 << (ilog2(max_low_pfn + 1) + PAGE_SHIFT); |
1307 | 1308 | ||
1308 | /* Get the first block cached. */ | 1309 | /* Get the first block cached. */ |
1309 | read_mem_block(__va(0), stride, size); | 1310 | read_mem_block(__va(0), stride, size); |
diff --git a/arch/alpha/kernel/signal.c b/arch/alpha/kernel/signal.c index 7f64aa767d5a..410af4f3140e 100644 --- a/arch/alpha/kernel/signal.c +++ b/arch/alpha/kernel/signal.c | |||
@@ -32,8 +32,8 @@ | |||
32 | #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) | 32 | #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) |
33 | 33 | ||
34 | asmlinkage void ret_from_sys_call(void); | 34 | asmlinkage void ret_from_sys_call(void); |
35 | static int do_signal(sigset_t *, struct pt_regs *, struct switch_stack *, | 35 | static void do_signal(struct pt_regs *, struct switch_stack *, |
36 | unsigned long, unsigned long); | 36 | unsigned long, unsigned long); |
37 | 37 | ||
38 | 38 | ||
39 | /* | 39 | /* |
@@ -146,11 +146,9 @@ sys_rt_sigaction(int sig, const struct sigaction __user *act, | |||
146 | asmlinkage int | 146 | asmlinkage int |
147 | do_sigsuspend(old_sigset_t mask, struct pt_regs *regs, struct switch_stack *sw) | 147 | do_sigsuspend(old_sigset_t mask, struct pt_regs *regs, struct switch_stack *sw) |
148 | { | 148 | { |
149 | sigset_t oldset; | ||
150 | |||
151 | mask &= _BLOCKABLE; | 149 | mask &= _BLOCKABLE; |
152 | spin_lock_irq(¤t->sighand->siglock); | 150 | spin_lock_irq(¤t->sighand->siglock); |
153 | oldset = current->blocked; | 151 | current->saved_sigmask = current->blocked; |
154 | siginitset(¤t->blocked, mask); | 152 | siginitset(¤t->blocked, mask); |
155 | recalc_sigpending(); | 153 | recalc_sigpending(); |
156 | spin_unlock_irq(¤t->sighand->siglock); | 154 | spin_unlock_irq(¤t->sighand->siglock); |
@@ -160,19 +158,17 @@ do_sigsuspend(old_sigset_t mask, struct pt_regs *regs, struct switch_stack *sw) | |||
160 | regs->r0 = EINTR; | 158 | regs->r0 = EINTR; |
161 | regs->r19 = 1; | 159 | regs->r19 = 1; |
162 | 160 | ||
163 | while (1) { | 161 | current->state = TASK_INTERRUPTIBLE; |
164 | current->state = TASK_INTERRUPTIBLE; | 162 | schedule(); |
165 | schedule(); | 163 | set_thread_flag(TIF_RESTORE_SIGMASK); |
166 | if (do_signal(&oldset, regs, sw, 0, 0)) | 164 | return -ERESTARTNOHAND; |
167 | return -EINTR; | ||
168 | } | ||
169 | } | 165 | } |
170 | 166 | ||
171 | asmlinkage int | 167 | asmlinkage int |
172 | do_rt_sigsuspend(sigset_t __user *uset, size_t sigsetsize, | 168 | do_rt_sigsuspend(sigset_t __user *uset, size_t sigsetsize, |
173 | struct pt_regs *regs, struct switch_stack *sw) | 169 | struct pt_regs *regs, struct switch_stack *sw) |
174 | { | 170 | { |
175 | sigset_t oldset, set; | 171 | sigset_t set; |
176 | 172 | ||
177 | /* XXX: Don't preclude handling different sized sigset_t's. */ | 173 | /* XXX: Don't preclude handling different sized sigset_t's. */ |
178 | if (sigsetsize != sizeof(sigset_t)) | 174 | if (sigsetsize != sizeof(sigset_t)) |
@@ -182,7 +178,7 @@ do_rt_sigsuspend(sigset_t __user *uset, size_t sigsetsize, | |||
182 | 178 | ||
183 | sigdelsetmask(&set, ~_BLOCKABLE); | 179 | sigdelsetmask(&set, ~_BLOCKABLE); |
184 | spin_lock_irq(¤t->sighand->siglock); | 180 | spin_lock_irq(¤t->sighand->siglock); |
185 | oldset = current->blocked; | 181 | current->saved_sigmask = current->blocked; |
186 | current->blocked = set; | 182 | current->blocked = set; |
187 | recalc_sigpending(); | 183 | recalc_sigpending(); |
188 | spin_unlock_irq(¤t->sighand->siglock); | 184 | spin_unlock_irq(¤t->sighand->siglock); |
@@ -192,12 +188,10 @@ do_rt_sigsuspend(sigset_t __user *uset, size_t sigsetsize, | |||
192 | regs->r0 = EINTR; | 188 | regs->r0 = EINTR; |
193 | regs->r19 = 1; | 189 | regs->r19 = 1; |
194 | 190 | ||
195 | while (1) { | 191 | current->state = TASK_INTERRUPTIBLE; |
196 | current->state = TASK_INTERRUPTIBLE; | 192 | schedule(); |
197 | schedule(); | 193 | set_thread_flag(TIF_RESTORE_SIGMASK); |
198 | if (do_signal(&oldset, regs, sw, 0, 0)) | 194 | return -ERESTARTNOHAND; |
199 | return -EINTR; | ||
200 | } | ||
201 | } | 195 | } |
202 | 196 | ||
203 | asmlinkage int | 197 | asmlinkage int |
@@ -436,7 +430,7 @@ setup_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs, | |||
436 | return err; | 430 | return err; |
437 | } | 431 | } |
438 | 432 | ||
439 | static void | 433 | static int |
440 | setup_frame(int sig, struct k_sigaction *ka, sigset_t *set, | 434 | setup_frame(int sig, struct k_sigaction *ka, sigset_t *set, |
441 | struct pt_regs *regs, struct switch_stack * sw) | 435 | struct pt_regs *regs, struct switch_stack * sw) |
442 | { | 436 | { |
@@ -481,13 +475,14 @@ setup_frame(int sig, struct k_sigaction *ka, sigset_t *set, | |||
481 | current->comm, current->pid, frame, regs->pc, regs->r26); | 475 | current->comm, current->pid, frame, regs->pc, regs->r26); |
482 | #endif | 476 | #endif |
483 | 477 | ||
484 | return; | 478 | return 0; |
485 | 479 | ||
486 | give_sigsegv: | 480 | give_sigsegv: |
487 | force_sigsegv(sig, current); | 481 | force_sigsegv(sig, current); |
482 | return -EFAULT; | ||
488 | } | 483 | } |
489 | 484 | ||
490 | static void | 485 | static int |
491 | setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | 486 | setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, |
492 | sigset_t *set, struct pt_regs *regs, struct switch_stack * sw) | 487 | sigset_t *set, struct pt_regs *regs, struct switch_stack * sw) |
493 | { | 488 | { |
@@ -543,34 +538,38 @@ setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | |||
543 | current->comm, current->pid, frame, regs->pc, regs->r26); | 538 | current->comm, current->pid, frame, regs->pc, regs->r26); |
544 | #endif | 539 | #endif |
545 | 540 | ||
546 | return; | 541 | return 0; |
547 | 542 | ||
548 | give_sigsegv: | 543 | give_sigsegv: |
549 | force_sigsegv(sig, current); | 544 | force_sigsegv(sig, current); |
545 | return -EFAULT; | ||
550 | } | 546 | } |
551 | 547 | ||
552 | 548 | ||
553 | /* | 549 | /* |
554 | * OK, we're invoking a handler. | 550 | * OK, we're invoking a handler. |
555 | */ | 551 | */ |
556 | static inline void | 552 | static inline int |
557 | handle_signal(int sig, struct k_sigaction *ka, siginfo_t *info, | 553 | handle_signal(int sig, struct k_sigaction *ka, siginfo_t *info, |
558 | sigset_t *oldset, struct pt_regs * regs, struct switch_stack *sw) | 554 | sigset_t *oldset, struct pt_regs * regs, struct switch_stack *sw) |
559 | { | 555 | { |
556 | int ret; | ||
557 | |||
560 | if (ka->sa.sa_flags & SA_SIGINFO) | 558 | if (ka->sa.sa_flags & SA_SIGINFO) |
561 | setup_rt_frame(sig, ka, info, oldset, regs, sw); | 559 | ret = setup_rt_frame(sig, ka, info, oldset, regs, sw); |
562 | else | 560 | else |
563 | setup_frame(sig, ka, oldset, regs, sw); | 561 | ret = setup_frame(sig, ka, oldset, regs, sw); |
564 | 562 | ||
565 | if (ka->sa.sa_flags & SA_RESETHAND) | 563 | if (ret == 0) { |
566 | ka->sa.sa_handler = SIG_DFL; | 564 | spin_lock_irq(¤t->sighand->siglock); |
565 | sigorsets(¤t->blocked,¤t->blocked,&ka->sa.sa_mask); | ||
566 | if (!(ka->sa.sa_flags & SA_NODEFER)) | ||
567 | sigaddset(¤t->blocked,sig); | ||
568 | recalc_sigpending(); | ||
569 | spin_unlock_irq(¤t->sighand->siglock); | ||
570 | } | ||
567 | 571 | ||
568 | spin_lock_irq(¤t->sighand->siglock); | 572 | return ret; |
569 | sigorsets(¤t->blocked,¤t->blocked,&ka->sa.sa_mask); | ||
570 | if (!(ka->sa.sa_flags & SA_NODEFER)) | ||
571 | sigaddset(¤t->blocked,sig); | ||
572 | recalc_sigpending(); | ||
573 | spin_unlock_irq(¤t->sighand->siglock); | ||
574 | } | 573 | } |
575 | 574 | ||
576 | static inline void | 575 | static inline void |
@@ -611,30 +610,42 @@ syscall_restart(unsigned long r0, unsigned long r19, | |||
611 | * restart. "r0" is also used as an indicator whether we can restart at | 610 | * restart. "r0" is also used as an indicator whether we can restart at |
612 | * all (if we get here from anything but a syscall return, it will be 0) | 611 | * all (if we get here from anything but a syscall return, it will be 0) |
613 | */ | 612 | */ |
614 | static int | 613 | static void |
615 | do_signal(sigset_t *oldset, struct pt_regs * regs, struct switch_stack * sw, | 614 | do_signal(struct pt_regs * regs, struct switch_stack * sw, |
616 | unsigned long r0, unsigned long r19) | 615 | unsigned long r0, unsigned long r19) |
617 | { | 616 | { |
618 | siginfo_t info; | 617 | siginfo_t info; |
619 | int signr; | 618 | int signr; |
620 | unsigned long single_stepping = ptrace_cancel_bpt(current); | 619 | unsigned long single_stepping = ptrace_cancel_bpt(current); |
621 | struct k_sigaction ka; | 620 | struct k_sigaction ka; |
621 | sigset_t *oldset; | ||
622 | 622 | ||
623 | if (!oldset) | 623 | if (test_thread_flag(TIF_RESTORE_SIGMASK)) |
624 | oldset = ¤t->saved_sigmask; | ||
625 | else | ||
624 | oldset = ¤t->blocked; | 626 | oldset = ¤t->blocked; |
625 | 627 | ||
626 | /* This lets the debugger run, ... */ | 628 | /* This lets the debugger run, ... */ |
627 | signr = get_signal_to_deliver(&info, &ka, regs, NULL); | 629 | signr = get_signal_to_deliver(&info, &ka, regs, NULL); |
630 | |||
628 | /* ... so re-check the single stepping. */ | 631 | /* ... so re-check the single stepping. */ |
629 | single_stepping |= ptrace_cancel_bpt(current); | 632 | single_stepping |= ptrace_cancel_bpt(current); |
630 | 633 | ||
631 | if (signr > 0) { | 634 | if (signr > 0) { |
632 | /* Whee! Actually deliver the signal. */ | 635 | /* Whee! Actually deliver the signal. */ |
633 | if (r0) syscall_restart(r0, r19, regs, &ka); | 636 | if (r0) |
634 | handle_signal(signr, &ka, &info, oldset, regs, sw); | 637 | syscall_restart(r0, r19, regs, &ka); |
638 | if (handle_signal(signr, &ka, &info, oldset, regs, sw) == 0) { | ||
639 | /* A signal was successfully delivered, and the | ||
640 | saved sigmask was stored on the signal frame, | ||
641 | and will be restored by sigreturn. So we can | ||
642 | simply clear the restore sigmask flag. */ | ||
643 | if (test_thread_flag(TIF_RESTORE_SIGMASK)) | ||
644 | clear_thread_flag(TIF_RESTORE_SIGMASK); | ||
645 | } | ||
635 | if (single_stepping) | 646 | if (single_stepping) |
636 | ptrace_set_bpt(current); /* re-set bpt */ | 647 | ptrace_set_bpt(current); /* re-set bpt */ |
637 | return 1; | 648 | return; |
638 | } | 649 | } |
639 | 650 | ||
640 | if (r0) { | 651 | if (r0) { |
@@ -654,17 +665,22 @@ do_signal(sigset_t *oldset, struct pt_regs * regs, struct switch_stack * sw, | |||
654 | break; | 665 | break; |
655 | } | 666 | } |
656 | } | 667 | } |
668 | |||
669 | /* If there's no signal to deliver, we just restore the saved mask. */ | ||
670 | if (test_thread_flag(TIF_RESTORE_SIGMASK)) { | ||
671 | clear_thread_flag(TIF_RESTORE_SIGMASK); | ||
672 | sigprocmask(SIG_SETMASK, ¤t->saved_sigmask, NULL); | ||
673 | } | ||
674 | |||
657 | if (single_stepping) | 675 | if (single_stepping) |
658 | ptrace_set_bpt(current); /* re-set breakpoint */ | 676 | ptrace_set_bpt(current); /* re-set breakpoint */ |
659 | |||
660 | return 0; | ||
661 | } | 677 | } |
662 | 678 | ||
663 | void | 679 | void |
664 | do_notify_resume(sigset_t *oldset, struct pt_regs *regs, | 680 | do_notify_resume(struct pt_regs *regs, struct switch_stack *sw, |
665 | struct switch_stack *sw, unsigned long r0, | 681 | unsigned long thread_info_flags, |
666 | unsigned long r19, unsigned long thread_info_flags) | 682 | unsigned long r0, unsigned long r19) |
667 | { | 683 | { |
668 | if (thread_info_flags & _TIF_SIGPENDING) | 684 | if (thread_info_flags & (_TIF_SIGPENDING | _TIF_RESTORE_SIGMASK)) |
669 | do_signal(oldset, regs, sw, r0, r19); | 685 | do_signal(regs, sw, r0, r19); |
670 | } | 686 | } |
diff --git a/arch/alpha/kernel/systbls.S b/arch/alpha/kernel/systbls.S index f6cfe8ce3f96..79de99e32c35 100644 --- a/arch/alpha/kernel/systbls.S +++ b/arch/alpha/kernel/systbls.S | |||
@@ -465,6 +465,38 @@ sys_call_table: | |||
465 | .quad sys_inotify_init | 465 | .quad sys_inotify_init |
466 | .quad sys_inotify_add_watch /* 445 */ | 466 | .quad sys_inotify_add_watch /* 445 */ |
467 | .quad sys_inotify_rm_watch | 467 | .quad sys_inotify_rm_watch |
468 | .quad sys_fdatasync | ||
469 | .quad sys_kexec_load | ||
470 | .quad sys_migrate_pages | ||
471 | .quad sys_openat /* 450 */ | ||
472 | .quad sys_mkdirat | ||
473 | .quad sys_mknodat | ||
474 | .quad sys_fchownat | ||
475 | .quad sys_futimesat | ||
476 | .quad sys_fstatat64 /* 455 */ | ||
477 | .quad sys_unlinkat | ||
478 | .quad sys_renameat | ||
479 | .quad sys_linkat | ||
480 | .quad sys_symlinkat | ||
481 | .quad sys_readlinkat /* 460 */ | ||
482 | .quad sys_fchmodat | ||
483 | .quad sys_faccessat | ||
484 | .quad sys_pselect6 | ||
485 | .quad sys_ppoll | ||
486 | .quad sys_unshare /* 465 */ | ||
487 | .quad sys_set_robust_list | ||
488 | .quad sys_get_robust_list | ||
489 | .quad sys_splice | ||
490 | .quad sys_sync_file_range | ||
491 | .quad sys_tee /* 470 */ | ||
492 | .quad sys_vmsplice | ||
493 | .quad sys_move_pages | ||
494 | .quad sys_getcpu | ||
495 | .quad sys_epoll_pwait | ||
496 | .quad sys_utimensat /* 475 */ | ||
497 | .quad sys_signalfd | ||
498 | .quad sys_timerfd | ||
499 | .quad sys_eventfd | ||
468 | 500 | ||
469 | .size sys_call_table, . - sys_call_table | 501 | .size sys_call_table, . - sys_call_table |
470 | .type sys_call_table, @object | 502 | .type sys_call_table, @object |
diff --git a/arch/alpha/kernel/vmlinux.lds.S b/arch/alpha/kernel/vmlinux.lds.S index cf1e6fc6c686..449e76f118d3 100644 --- a/arch/alpha/kernel/vmlinux.lds.S +++ b/arch/alpha/kernel/vmlinux.lds.S | |||
@@ -15,7 +15,7 @@ SECTIONS | |||
15 | 15 | ||
16 | _text = .; /* Text and read-only data */ | 16 | _text = .; /* Text and read-only data */ |
17 | .text : { | 17 | .text : { |
18 | *(.text) | 18 | TEXT_TEXT |
19 | SCHED_TEXT | 19 | SCHED_TEXT |
20 | LOCK_TEXT | 20 | LOCK_TEXT |
21 | *(.fixup) | 21 | *(.fixup) |
@@ -89,7 +89,7 @@ SECTIONS | |||
89 | 89 | ||
90 | _data = .; | 90 | _data = .; |
91 | .data : { /* Data */ | 91 | .data : { /* Data */ |
92 | *(.data) | 92 | DATA_DATA |
93 | CONSTRUCTORS | 93 | CONSTRUCTORS |
94 | } | 94 | } |
95 | 95 | ||
diff --git a/arch/alpha/lib/Makefile b/arch/alpha/lib/Makefile index ea098f3b629f..266f78e13076 100644 --- a/arch/alpha/lib/Makefile +++ b/arch/alpha/lib/Makefile | |||
@@ -37,7 +37,8 @@ lib-y = __divqu.o __remqu.o __divlu.o __remlu.o \ | |||
37 | $(ev6-y)clear_page.o \ | 37 | $(ev6-y)clear_page.o \ |
38 | $(ev6-y)copy_page.o \ | 38 | $(ev6-y)copy_page.o \ |
39 | fpreg.o \ | 39 | fpreg.o \ |
40 | callback_srm.o srm_puts.o srm_printk.o | 40 | callback_srm.o srm_puts.o srm_printk.o \ |
41 | fls.o | ||
41 | 42 | ||
42 | lib-$(CONFIG_SMP) += dec_and_lock.o | 43 | lib-$(CONFIG_SMP) += dec_and_lock.o |
43 | 44 | ||
diff --git a/arch/alpha/lib/fls.c b/arch/alpha/lib/fls.c new file mode 100644 index 000000000000..7ad84ea0acf8 --- /dev/null +++ b/arch/alpha/lib/fls.c | |||
@@ -0,0 +1,38 @@ | |||
1 | /* | ||
2 | * arch/alpha/lib/fls.c | ||
3 | */ | ||
4 | |||
5 | #include <linux/module.h> | ||
6 | #include <asm/bitops.h> | ||
7 | |||
8 | /* This is fls(x)-1, except zero is held to zero. This allows most | ||
9 | efficent input into extbl, plus it allows easy handling of fls(0)=0. */ | ||
10 | |||
11 | const unsigned char __flsm1_tab[256] = | ||
12 | { | ||
13 | 0, | ||
14 | 0, | ||
15 | 1, 1, | ||
16 | 2, 2, 2, 2, | ||
17 | 3, 3, 3, 3, 3, 3, 3, 3, | ||
18 | 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, | ||
19 | |||
20 | 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, | ||
21 | 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, | ||
22 | |||
23 | 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, | ||
24 | 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, | ||
25 | 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, | ||
26 | 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, | ||
27 | |||
28 | 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, | ||
29 | 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, | ||
30 | 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, | ||
31 | 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, | ||
32 | 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, | ||
33 | 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, | ||
34 | 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, | ||
35 | 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, | ||
36 | }; | ||
37 | |||
38 | EXPORT_SYMBOL(__flsm1_tab); | ||
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index e55bbd32dcac..50d9f3e4e0f1 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -287,6 +287,7 @@ config ARCH_IXP2000 | |||
287 | config ARCH_IXP4XX | 287 | config ARCH_IXP4XX |
288 | bool "IXP4xx-based" | 288 | bool "IXP4xx-based" |
289 | depends on MMU | 289 | depends on MMU |
290 | select GENERIC_GPIO | ||
290 | select GENERIC_TIME | 291 | select GENERIC_TIME |
291 | select GENERIC_CLOCKEVENTS | 292 | select GENERIC_CLOCKEVENTS |
292 | help | 293 | help |
diff --git a/arch/arm/common/dmabounce.c b/arch/arm/common/dmabounce.c index 6fbe7722aa44..b36b1e8a105d 100644 --- a/arch/arm/common/dmabounce.c +++ b/arch/arm/common/dmabounce.c | |||
@@ -6,7 +6,7 @@ | |||
6 | * copy data to/from buffers located outside the DMA region. This | 6 | * copy data to/from buffers located outside the DMA region. This |
7 | * only works for systems in which DMA memory is at the bottom of | 7 | * only works for systems in which DMA memory is at the bottom of |
8 | * RAM, the remainder of memory is at the top and the DMA memory | 8 | * RAM, the remainder of memory is at the top and the DMA memory |
9 | * can be marked as ZONE_DMA. Anything beyond that such as discontigous | 9 | * can be marked as ZONE_DMA. Anything beyond that such as discontiguous |
10 | * DMA windows will require custom implementations that reserve memory | 10 | * DMA windows will require custom implementations that reserve memory |
11 | * areas at early bootup. | 11 | * areas at early bootup. |
12 | * | 12 | * |
diff --git a/arch/arm/common/gic.c b/arch/arm/common/gic.c index 4deece5fbdf4..0c89bd35e06f 100644 --- a/arch/arm/common/gic.c +++ b/arch/arm/common/gic.c | |||
@@ -72,7 +72,7 @@ static inline unsigned int gic_irq(unsigned int irq) | |||
72 | * unmask it, in the same way we need to unmask an interrupt when | 72 | * unmask it, in the same way we need to unmask an interrupt when |
73 | * we first enable it. | 73 | * we first enable it. |
74 | * | 74 | * |
75 | * The GIC has a seperate notion of "end of interrupt" to re-enable | 75 | * The GIC has a separate notion of "end of interrupt" to re-enable |
76 | * an interrupt after handling, in order to support hardware | 76 | * an interrupt after handling, in order to support hardware |
77 | * prioritisation. | 77 | * prioritisation. |
78 | * | 78 | * |
@@ -125,12 +125,11 @@ static void gic_set_cpu(unsigned int irq, cpumask_t mask_val) | |||
125 | } | 125 | } |
126 | #endif | 126 | #endif |
127 | 127 | ||
128 | static void fastcall gic_handle_cascade_irq(unsigned int irq, | 128 | static void gic_handle_cascade_irq(unsigned int irq, struct irq_desc *desc) |
129 | struct irq_desc *desc) | ||
130 | { | 129 | { |
131 | struct gic_chip_data *chip_data = get_irq_data(irq); | 130 | struct gic_chip_data *chip_data = get_irq_data(irq); |
132 | struct irq_chip *chip = get_irq_chip(irq); | 131 | struct irq_chip *chip = get_irq_chip(irq); |
133 | unsigned int cascade_irq; | 132 | unsigned int cascade_irq, gic_irq; |
134 | unsigned long status; | 133 | unsigned long status; |
135 | 134 | ||
136 | /* primary controller ack'ing */ | 135 | /* primary controller ack'ing */ |
@@ -140,16 +139,15 @@ static void fastcall gic_handle_cascade_irq(unsigned int irq, | |||
140 | status = readl(chip_data->cpu_base + GIC_CPU_INTACK); | 139 | status = readl(chip_data->cpu_base + GIC_CPU_INTACK); |
141 | spin_unlock(&irq_controller_lock); | 140 | spin_unlock(&irq_controller_lock); |
142 | 141 | ||
143 | cascade_irq = (status & 0x3ff); | 142 | gic_irq = (status & 0x3ff); |
144 | if (cascade_irq > 1020) | 143 | if (gic_irq == 1023) |
145 | goto out; | 144 | goto out; |
146 | if (cascade_irq < 32 || cascade_irq >= NR_IRQS) { | ||
147 | do_bad_IRQ(cascade_irq, desc); | ||
148 | goto out; | ||
149 | } | ||
150 | 145 | ||
151 | cascade_irq += chip_data->irq_offset; | 146 | cascade_irq = gic_irq + chip_data->irq_offset; |
152 | generic_handle_irq(cascade_irq); | 147 | if (unlikely(gic_irq < 32 || gic_irq > 1020 || cascade_irq >= NR_IRQS)) |
148 | do_bad_IRQ(cascade_irq, desc); | ||
149 | else | ||
150 | generic_handle_irq(cascade_irq); | ||
153 | 151 | ||
154 | out: | 152 | out: |
155 | /* primary controller unmasking */ | 153 | /* primary controller unmasking */ |
diff --git a/arch/arm/common/sharpsl_param.c b/arch/arm/common/sharpsl_param.c index c94864c5b1af..aad4d94ba8f5 100644 --- a/arch/arm/common/sharpsl_param.c +++ b/arch/arm/common/sharpsl_param.c | |||
@@ -20,7 +20,7 @@ | |||
20 | * typically including LCD parameters are loaded by the bootloader at the | 20 | * typically including LCD parameters are loaded by the bootloader at the |
21 | * address PARAM_BASE. As the kernel will overwrite them, we need to store | 21 | * address PARAM_BASE. As the kernel will overwrite them, we need to store |
22 | * them early in the boot process, then pass them to the appropriate drivers. | 22 | * them early in the boot process, then pass them to the appropriate drivers. |
23 | * Not all devices use all paramaters but the format is common to all. | 23 | * Not all devices use all parameters but the format is common to all. |
24 | */ | 24 | */ |
25 | #ifdef CONFIG_ARCH_SA1100 | 25 | #ifdef CONFIG_ARCH_SA1100 |
26 | #define PARAM_BASE 0xe8ffc000 | 26 | #define PARAM_BASE 0xe8ffc000 |
diff --git a/arch/arm/common/sharpsl_pm.c b/arch/arm/common/sharpsl_pm.c index 5972df2b9af4..3bf3a927ae22 100644 --- a/arch/arm/common/sharpsl_pm.c +++ b/arch/arm/common/sharpsl_pm.c | |||
@@ -153,7 +153,7 @@ static void sharpsl_battery_thread(struct work_struct *private_) | |||
153 | sharpsl_pm.battstat.mainbat_percent = percent; | 153 | sharpsl_pm.battstat.mainbat_percent = percent; |
154 | } | 154 | } |
155 | 155 | ||
156 | dev_dbg(sharpsl_pm.dev, "Battery: voltage: %d, status: %d, percentage: %d, time: %d\n", voltage, | 156 | dev_dbg(sharpsl_pm.dev, "Battery: voltage: %d, status: %d, percentage: %d, time: %ld\n", voltage, |
157 | sharpsl_pm.battstat.mainbat_status, sharpsl_pm.battstat.mainbat_percent, jiffies); | 157 | sharpsl_pm.battstat.mainbat_status, sharpsl_pm.battstat.mainbat_percent, jiffies); |
158 | 158 | ||
159 | /* If battery is low. limit backlight intensity to save power. */ | 159 | /* If battery is low. limit backlight intensity to save power. */ |
@@ -291,7 +291,7 @@ static void sharpsl_chrg_full_timer(unsigned long data) | |||
291 | } | 291 | } |
292 | 292 | ||
293 | /* Charging Finished Interrupt (Not present on Corgi) */ | 293 | /* Charging Finished Interrupt (Not present on Corgi) */ |
294 | /* Can trigger at the same time as an AC staus change so | 294 | /* Can trigger at the same time as an AC status change so |
295 | delay until after that has been processed */ | 295 | delay until after that has been processed */ |
296 | irqreturn_t sharpsl_chrg_full_isr(int irq, void *dev_id) | 296 | irqreturn_t sharpsl_chrg_full_isr(int irq, void *dev_id) |
297 | { | 297 | { |
@@ -625,7 +625,7 @@ static int sharpsl_fatal_check(void) | |||
625 | } | 625 | } |
626 | 626 | ||
627 | temp = get_select_val(buff); | 627 | temp = get_select_val(buff); |
628 | dev_dbg(sharpsl_pm.dev, "sharpsl_fatal_check: acin: %d, discharge voltage: %d, no discharge: %d\n", acin, temp, sharpsl_pm.machinfo->read_devdata(SHARPSL_BATT_VOLT)); | 628 | dev_dbg(sharpsl_pm.dev, "sharpsl_fatal_check: acin: %d, discharge voltage: %d, no discharge: %ld\n", acin, temp, sharpsl_pm.machinfo->read_devdata(SHARPSL_BATT_VOLT)); |
629 | 629 | ||
630 | if ((acin && (temp < sharpsl_pm.machinfo->fatal_acin_volt)) || | 630 | if ((acin && (temp < sharpsl_pm.machinfo->fatal_acin_volt)) || |
631 | (!acin && (temp < sharpsl_pm.machinfo->fatal_noacin_volt))) | 631 | (!acin && (temp < sharpsl_pm.machinfo->fatal_noacin_volt))) |
@@ -635,7 +635,7 @@ static int sharpsl_fatal_check(void) | |||
635 | 635 | ||
636 | static int sharpsl_off_charge_error(void) | 636 | static int sharpsl_off_charge_error(void) |
637 | { | 637 | { |
638 | dev_err(sharpsl_pm.dev, "Offline Charger: Error occured.\n"); | 638 | dev_err(sharpsl_pm.dev, "Offline Charger: Error occurred.\n"); |
639 | sharpsl_pm.machinfo->charge(0); | 639 | sharpsl_pm.machinfo->charge(0); |
640 | sharpsl_pm_led(SHARPSL_LED_ERROR); | 640 | sharpsl_pm_led(SHARPSL_LED_ERROR); |
641 | sharpsl_pm.charge_mode = CHRG_ERROR; | 641 | sharpsl_pm.charge_mode = CHRG_ERROR; |
@@ -691,14 +691,14 @@ static int sharpsl_off_charge_battery(void) | |||
691 | 691 | ||
692 | time = RCNR; | 692 | time = RCNR; |
693 | while(1) { | 693 | while(1) { |
694 | /* Check if any wakeup event had occured */ | 694 | /* Check if any wakeup event had occurred */ |
695 | if (sharpsl_pm.machinfo->charger_wakeup() != 0) | 695 | if (sharpsl_pm.machinfo->charger_wakeup() != 0) |
696 | return 0; | 696 | return 0; |
697 | /* Check for timeout */ | 697 | /* Check for timeout */ |
698 | if ((RCNR - time) > SHARPSL_WAIT_CO_TIME) | 698 | if ((RCNR - time) > SHARPSL_WAIT_CO_TIME) |
699 | return 1; | 699 | return 1; |
700 | if (sharpsl_pm.machinfo->read_devdata(SHARPSL_STATUS_CHRGFULL)) { | 700 | if (sharpsl_pm.machinfo->read_devdata(SHARPSL_STATUS_CHRGFULL)) { |
701 | dev_dbg(sharpsl_pm.dev, "Offline Charger: Charge full occured. Retrying to check\n"); | 701 | dev_dbg(sharpsl_pm.dev, "Offline Charger: Charge full occurred. Retrying to check\n"); |
702 | sharpsl_pm.full_count++; | 702 | sharpsl_pm.full_count++; |
703 | sharpsl_pm.machinfo->charge(0); | 703 | sharpsl_pm.machinfo->charge(0); |
704 | mdelay(SHARPSL_CHARGE_WAIT_TIME); | 704 | mdelay(SHARPSL_CHARGE_WAIT_TIME); |
@@ -714,7 +714,7 @@ static int sharpsl_off_charge_battery(void) | |||
714 | 714 | ||
715 | time = RCNR; | 715 | time = RCNR; |
716 | while(1) { | 716 | while(1) { |
717 | /* Check if any wakeup event had occured */ | 717 | /* Check if any wakeup event had occurred */ |
718 | if (sharpsl_pm.machinfo->charger_wakeup() != 0) | 718 | if (sharpsl_pm.machinfo->charger_wakeup() != 0) |
719 | return 0; | 719 | return 0; |
720 | /* Check for timeout */ | 720 | /* Check for timeout */ |
@@ -774,6 +774,8 @@ static struct pm_ops sharpsl_pm_ops = { | |||
774 | 774 | ||
775 | static int __init sharpsl_pm_probe(struct platform_device *pdev) | 775 | static int __init sharpsl_pm_probe(struct platform_device *pdev) |
776 | { | 776 | { |
777 | int ret; | ||
778 | |||
777 | if (!pdev->dev.platform_data) | 779 | if (!pdev->dev.platform_data) |
778 | return -EINVAL; | 780 | return -EINVAL; |
779 | 781 | ||
@@ -792,8 +794,10 @@ static int __init sharpsl_pm_probe(struct platform_device *pdev) | |||
792 | 794 | ||
793 | sharpsl_pm.machinfo->init(); | 795 | sharpsl_pm.machinfo->init(); |
794 | 796 | ||
795 | device_create_file(&pdev->dev, &dev_attr_battery_percentage); | 797 | ret = device_create_file(&pdev->dev, &dev_attr_battery_percentage); |
796 | device_create_file(&pdev->dev, &dev_attr_battery_voltage); | 798 | ret |= device_create_file(&pdev->dev, &dev_attr_battery_voltage); |
799 | if (ret != 0) | ||
800 | dev_warn(&pdev->dev, "Failed to register attributes (%d)\n", ret); | ||
797 | 801 | ||
798 | apm_get_power_status = sharpsl_apm_get_power_status; | 802 | apm_get_power_status = sharpsl_apm_get_power_status; |
799 | 803 | ||
diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c index 9179e8220314..f73d62e8ab60 100644 --- a/arch/arm/kernel/armksyms.c +++ b/arch/arm/kernel/armksyms.c | |||
@@ -57,7 +57,7 @@ extern void fp_enter(void); | |||
57 | #define EXPORT_SYMBOL_ALIAS(sym,orig) \ | 57 | #define EXPORT_SYMBOL_ALIAS(sym,orig) \ |
58 | EXPORT_CRC_ALIAS(sym) \ | 58 | EXPORT_CRC_ALIAS(sym) \ |
59 | static const struct kernel_symbol __ksymtab_##sym \ | 59 | static const struct kernel_symbol __ksymtab_##sym \ |
60 | __attribute_used__ __attribute__((section("__ksymtab"))) = \ | 60 | __used __attribute__((section("__ksymtab"))) = \ |
61 | { (unsigned long)&orig, #sym }; | 61 | { (unsigned long)&orig, #sym }; |
62 | 62 | ||
63 | /* | 63 | /* |
diff --git a/arch/arm/kernel/asm-offsets.c b/arch/arm/kernel/asm-offsets.c index 3c078e346753..3278e713c32a 100644 --- a/arch/arm/kernel/asm-offsets.c +++ b/arch/arm/kernel/asm-offsets.c | |||
@@ -85,7 +85,7 @@ int main(void) | |||
85 | DEFINE(S_OLD_R0, offsetof(struct pt_regs, ARM_ORIG_r0)); | 85 | DEFINE(S_OLD_R0, offsetof(struct pt_regs, ARM_ORIG_r0)); |
86 | DEFINE(S_FRAME_SIZE, sizeof(struct pt_regs)); | 86 | DEFINE(S_FRAME_SIZE, sizeof(struct pt_regs)); |
87 | BLANK(); | 87 | BLANK(); |
88 | #if __LINUX_ARM_ARCH__ >= 6 | 88 | #ifdef CONFIG_CPU_HAS_ASID |
89 | DEFINE(MM_CONTEXT_ID, offsetof(struct mm_struct, context.id)); | 89 | DEFINE(MM_CONTEXT_ID, offsetof(struct mm_struct, context.id)); |
90 | BLANK(); | 90 | BLANK(); |
91 | #endif | 91 | #endif |
diff --git a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S index ae89cdd82b16..19326d7cdeb3 100644 --- a/arch/arm/kernel/calls.S +++ b/arch/arm/kernel/calls.S | |||
@@ -357,6 +357,10 @@ | |||
357 | /* 345 */ CALL(sys_getcpu) | 357 | /* 345 */ CALL(sys_getcpu) |
358 | CALL(sys_ni_syscall) /* eventually epoll_pwait */ | 358 | CALL(sys_ni_syscall) /* eventually epoll_pwait */ |
359 | CALL(sys_kexec_load) | 359 | CALL(sys_kexec_load) |
360 | CALL(sys_utimensat) | ||
361 | CALL(sys_signalfd) | ||
362 | /* 350 */ CALL(sys_timerfd) | ||
363 | CALL(sys_eventfd) | ||
360 | #ifndef syscalls_counted | 364 | #ifndef syscalls_counted |
361 | .equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls | 365 | .equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls |
362 | #define syscalls_counted | 366 | #define syscalls_counted |
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index 0453dcc757b4..650eac1bc0a6 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c | |||
@@ -918,7 +918,7 @@ static int c_show(struct seq_file *m, void *v) | |||
918 | 918 | ||
919 | if ((processor_id & 0x0008f000) == 0x00000000) { | 919 | if ((processor_id & 0x0008f000) == 0x00000000) { |
920 | /* pre-ARM7 */ | 920 | /* pre-ARM7 */ |
921 | seq_printf(m, "CPU part\t\t: %07x\n", processor_id >> 4); | 921 | seq_printf(m, "CPU part\t: %07x\n", processor_id >> 4); |
922 | } else { | 922 | } else { |
923 | if ((processor_id & 0x0008f000) == 0x00007000) { | 923 | if ((processor_id & 0x0008f000) == 0x00007000) { |
924 | /* ARM7 */ | 924 | /* ARM7 */ |
diff --git a/arch/arm/kernel/stacktrace.c b/arch/arm/kernel/stacktrace.c index 8b63ad89d0a8..ae31deb2d065 100644 --- a/arch/arm/kernel/stacktrace.c +++ b/arch/arm/kernel/stacktrace.c | |||
@@ -13,7 +13,7 @@ int walk_stackframe(unsigned long fp, unsigned long low, unsigned long high, | |||
13 | /* | 13 | /* |
14 | * Check current frame pointer is within bounds | 14 | * Check current frame pointer is within bounds |
15 | */ | 15 | */ |
16 | if ((fp - 12) < low || fp + 4 >= high) | 16 | if (fp < (low + 12) || fp + 4 >= high) |
17 | break; | 17 | break; |
18 | 18 | ||
19 | frame = (struct stackframe *)(fp - 12); | 19 | frame = (struct stackframe *)(fp - 12); |
diff --git a/arch/arm/kernel/sys_arm.c b/arch/arm/kernel/sys_arm.c index 3d4fcbc16276..1ca2d5174fcb 100644 --- a/arch/arm/kernel/sys_arm.c +++ b/arch/arm/kernel/sys_arm.c | |||
@@ -320,7 +320,7 @@ int kernel_execve(const char *filename, char *const argv[], char *const envp[]) | |||
320 | EXPORT_SYMBOL(kernel_execve); | 320 | EXPORT_SYMBOL(kernel_execve); |
321 | 321 | ||
322 | /* | 322 | /* |
323 | * Since loff_t is a 64 bit type we avoid a lot of ABI hastle | 323 | * Since loff_t is a 64 bit type we avoid a lot of ABI hassle |
324 | * with a different argument ordering. | 324 | * with a different argument ordering. |
325 | */ | 325 | */ |
326 | asmlinkage long sys_arm_fadvise64_64(int fd, int advice, | 326 | asmlinkage long sys_arm_fadvise64_64(int fd, int advice, |
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S index e4156e7868ce..2b7a8f5d8cf2 100644 --- a/arch/arm/kernel/vmlinux.lds.S +++ b/arch/arm/kernel/vmlinux.lds.S | |||
@@ -90,7 +90,7 @@ SECTIONS | |||
90 | __exception_text_start = .; | 90 | __exception_text_start = .; |
91 | *(.exception.text) | 91 | *(.exception.text) |
92 | __exception_text_end = .; | 92 | __exception_text_end = .; |
93 | *(.text) | 93 | TEXT_TEXT |
94 | SCHED_TEXT | 94 | SCHED_TEXT |
95 | LOCK_TEXT | 95 | LOCK_TEXT |
96 | #ifdef CONFIG_MMU | 96 | #ifdef CONFIG_MMU |
@@ -158,7 +158,7 @@ SECTIONS | |||
158 | /* | 158 | /* |
159 | * and the usual data section | 159 | * and the usual data section |
160 | */ | 160 | */ |
161 | *(.data) | 161 | DATA_DATA |
162 | CONSTRUCTORS | 162 | CONSTRUCTORS |
163 | 163 | ||
164 | _edata = .; | 164 | _edata = .; |
diff --git a/arch/arm/lib/bitops.h b/arch/arm/lib/bitops.h index 542251021744..2e787d40d599 100644 --- a/arch/arm/lib/bitops.h +++ b/arch/arm/lib/bitops.h | |||
@@ -47,7 +47,7 @@ | |||
47 | * @store: store instruction | 47 | * @store: store instruction |
48 | * | 48 | * |
49 | * Note: we can trivially conditionalise the store instruction | 49 | * Note: we can trivially conditionalise the store instruction |
50 | * to avoid dirting the data cache. | 50 | * to avoid dirtying the data cache. |
51 | */ | 51 | */ |
52 | .macro testop, instr, store | 52 | .macro testop, instr, store |
53 | add r1, r1, r0, lsr #3 | 53 | add r1, r1, r0, lsr #3 |
diff --git a/arch/arm/mach-at91/board-carmeva.c b/arch/arm/mach-at91/board-carmeva.c index b4518619063a..76ec856cd4f9 100644 --- a/arch/arm/mach-at91/board-carmeva.c +++ b/arch/arm/mach-at91/board-carmeva.c | |||
@@ -79,7 +79,7 @@ static struct at91_udc_data __initdata carmeva_udc_data = { | |||
79 | .pullup_pin = AT91_PIN_PD9, | 79 | .pullup_pin = AT91_PIN_PD9, |
80 | }; | 80 | }; |
81 | 81 | ||
82 | /* FIXME: user dependend */ | 82 | /* FIXME: user dependant */ |
83 | // static struct at91_cf_data __initdata carmeva_cf_data = { | 83 | // static struct at91_cf_data __initdata carmeva_cf_data = { |
84 | // .det_pin = AT91_PIN_PB0, | 84 | // .det_pin = AT91_PIN_PB0, |
85 | // .rst_pin = AT91_PIN_PC5, | 85 | // .rst_pin = AT91_PIN_PC5, |
@@ -100,17 +100,17 @@ static struct spi_board_info carmeva_spi_devices[] = { | |||
100 | .chip_select = 0, | 100 | .chip_select = 0, |
101 | .max_speed_hz = 10 * 1000 * 1000, | 101 | .max_speed_hz = 10 * 1000 * 1000, |
102 | }, | 102 | }, |
103 | { /* User accessable spi - cs1 (250KHz) */ | 103 | { /* User accessible spi - cs1 (250KHz) */ |
104 | .modalias = "spi-cs1", | 104 | .modalias = "spi-cs1", |
105 | .chip_select = 1, | 105 | .chip_select = 1, |
106 | .max_speed_hz = 250 * 1000, | 106 | .max_speed_hz = 250 * 1000, |
107 | }, | 107 | }, |
108 | { /* User accessable spi - cs2 (1MHz) */ | 108 | { /* User accessible spi - cs2 (1MHz) */ |
109 | .modalias = "spi-cs2", | 109 | .modalias = "spi-cs2", |
110 | .chip_select = 2, | 110 | .chip_select = 2, |
111 | .max_speed_hz = 1 * 1000 * 1000, | 111 | .max_speed_hz = 1 * 1000 * 1000, |
112 | }, | 112 | }, |
113 | { /* User accessable spi - cs3 (10MHz) */ | 113 | { /* User accessible spi - cs3 (10MHz) */ |
114 | .modalias = "spi-cs3", | 114 | .modalias = "spi-cs3", |
115 | .chip_select = 3, | 115 | .chip_select = 3, |
116 | .max_speed_hz = 10 * 1000 * 1000, | 116 | .max_speed_hz = 10 * 1000 * 1000, |
diff --git a/arch/arm/mach-at91/board-dk.c b/arch/arm/mach-at91/board-dk.c index 6043c38c0a9e..af497896a96c 100644 --- a/arch/arm/mach-at91/board-dk.c +++ b/arch/arm/mach-at91/board-dk.c | |||
@@ -132,7 +132,7 @@ static struct mtd_partition __initdata dk_nand_partition[] = { | |||
132 | }, | 132 | }, |
133 | }; | 133 | }; |
134 | 134 | ||
135 | static struct mtd_partition *nand_partitions(int size, int *num_partitions) | 135 | static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) |
136 | { | 136 | { |
137 | *num_partitions = ARRAY_SIZE(dk_nand_partition); | 137 | *num_partitions = ARRAY_SIZE(dk_nand_partition); |
138 | return dk_nand_partition; | 138 | return dk_nand_partition; |
diff --git a/arch/arm/mach-at91/board-kb9202.c b/arch/arm/mach-at91/board-kb9202.c index 76f6e1e553ea..7d9b1a278fd6 100644 --- a/arch/arm/mach-at91/board-kb9202.c +++ b/arch/arm/mach-at91/board-kb9202.c | |||
@@ -96,7 +96,7 @@ static struct mtd_partition __initdata kb9202_nand_partition[] = { | |||
96 | }, | 96 | }, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static struct mtd_partition *nand_partitions(int size, int *num_partitions) | 99 | static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) |
100 | { | 100 | { |
101 | *num_partitions = ARRAY_SIZE(kb9202_nand_partition); | 101 | *num_partitions = ARRAY_SIZE(kb9202_nand_partition); |
102 | return kb9202_nand_partition; | 102 | return kb9202_nand_partition; |
diff --git a/arch/arm/mach-at91/board-sam9261ek.c b/arch/arm/mach-at91/board-sam9261ek.c index 1f0c8a400b3a..26ca8ab3f62a 100644 --- a/arch/arm/mach-at91/board-sam9261ek.c +++ b/arch/arm/mach-at91/board-sam9261ek.c | |||
@@ -178,7 +178,7 @@ static struct mtd_partition __initdata ek_nand_partition[] = { | |||
178 | }, | 178 | }, |
179 | }; | 179 | }; |
180 | 180 | ||
181 | static struct mtd_partition *nand_partitions(int size, int *num_partitions) | 181 | static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) |
182 | { | 182 | { |
183 | *num_partitions = ARRAY_SIZE(ek_nand_partition); | 183 | *num_partitions = ARRAY_SIZE(ek_nand_partition); |
184 | return ek_nand_partition; | 184 | return ek_nand_partition; |
diff --git a/arch/arm/mach-at91/board-sam9263ek.c b/arch/arm/mach-at91/board-sam9263ek.c index f57458559fb6..c164c8e58ae6 100644 --- a/arch/arm/mach-at91/board-sam9263ek.c +++ b/arch/arm/mach-at91/board-sam9263ek.c | |||
@@ -180,7 +180,7 @@ static struct mtd_partition __initdata ek_nand_partition[] = { | |||
180 | }, | 180 | }, |
181 | }; | 181 | }; |
182 | 182 | ||
183 | static struct mtd_partition *nand_partitions(int size, int *num_partitions) | 183 | static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) |
184 | { | 184 | { |
185 | *num_partitions = ARRAY_SIZE(ek_nand_partition); | 185 | *num_partitions = ARRAY_SIZE(ek_nand_partition); |
186 | return ek_nand_partition; | 186 | return ek_nand_partition; |
diff --git a/arch/arm/mach-at91/board-sam9rlek.c b/arch/arm/mach-at91/board-sam9rlek.c index 30c79aca84d4..9b61320f295a 100644 --- a/arch/arm/mach-at91/board-sam9rlek.c +++ b/arch/arm/mach-at91/board-sam9rlek.c | |||
@@ -87,7 +87,7 @@ static struct mtd_partition __initdata ek_nand_partition[] = { | |||
87 | }, | 87 | }, |
88 | }; | 88 | }; |
89 | 89 | ||
90 | static struct mtd_partition *nand_partitions(int size, int *num_partitions) | 90 | static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) |
91 | { | 91 | { |
92 | *num_partitions = ARRAY_SIZE(ek_nand_partition); | 92 | *num_partitions = ARRAY_SIZE(ek_nand_partition); |
93 | return ek_nand_partition; | 93 | return ek_nand_partition; |
diff --git a/arch/arm/mach-footbridge/cats-pci.c b/arch/arm/mach-footbridge/cats-pci.c index 4f984fde7375..35eb232a649a 100644 --- a/arch/arm/mach-footbridge/cats-pci.c +++ b/arch/arm/mach-footbridge/cats-pci.c | |||
@@ -45,7 +45,7 @@ static struct hw_pci cats_pci __initdata = { | |||
45 | .postinit = dc21285_postinit, | 45 | .postinit = dc21285_postinit, |
46 | }; | 46 | }; |
47 | 47 | ||
48 | static int cats_pci_init(void) | 48 | static int __init cats_pci_init(void) |
49 | { | 49 | { |
50 | if (machine_is_cats()) | 50 | if (machine_is_cats()) |
51 | pci_common_init(&cats_pci); | 51 | pci_common_init(&cats_pci); |
diff --git a/arch/arm/mach-h720x/cpu-h7202.c b/arch/arm/mach-h720x/cpu-h7202.c index 82e420d6fd19..0a1a25fb8ba8 100644 --- a/arch/arm/mach-h720x/cpu-h7202.c +++ b/arch/arm/mach-h720x/cpu-h7202.c | |||
@@ -143,7 +143,7 @@ h7202_timer_interrupt(int irq, void *dev_id) | |||
143 | } | 143 | } |
144 | 144 | ||
145 | /* | 145 | /* |
146 | * mask multiplexed timer irq's | 146 | * mask multiplexed timer IRQs |
147 | */ | 147 | */ |
148 | static void inline mask_timerx_irq (u32 irq) | 148 | static void inline mask_timerx_irq (u32 irq) |
149 | { | 149 | { |
@@ -153,7 +153,7 @@ static void inline mask_timerx_irq (u32 irq) | |||
153 | } | 153 | } |
154 | 154 | ||
155 | /* | 155 | /* |
156 | * unmask multiplexed timer irq's | 156 | * unmask multiplexed timer IRQs |
157 | */ | 157 | */ |
158 | static void inline unmask_timerx_irq (u32 irq) | 158 | static void inline unmask_timerx_irq (u32 irq) |
159 | { | 159 | { |
diff --git a/arch/arm/mach-imx/cpufreq.c b/arch/arm/mach-imx/cpufreq.c index 7e70e0b0b989..467d899fbe75 100644 --- a/arch/arm/mach-imx/cpufreq.c +++ b/arch/arm/mach-imx/cpufreq.c | |||
@@ -245,7 +245,7 @@ static int imx_set_target(struct cpufreq_policy *policy, | |||
245 | if(mpctl0) { | 245 | if(mpctl0) { |
246 | CSCR |= CSCR_MPLL_RESTART; | 246 | CSCR |= CSCR_MPLL_RESTART; |
247 | 247 | ||
248 | /* Wait until MPLL is stablized */ | 248 | /* Wait until MPLL is stabilized */ |
249 | while( CSCR & CSCR_MPLL_RESTART ); | 249 | while( CSCR & CSCR_MPLL_RESTART ); |
250 | 250 | ||
251 | imx_set_async_mode(); | 251 | imx_set_async_mode(); |
diff --git a/arch/arm/mach-imx/dma.c b/arch/arm/mach-imx/dma.c index 6d50d85a618c..bc6fb02d213b 100644 --- a/arch/arm/mach-imx/dma.c +++ b/arch/arm/mach-imx/dma.c | |||
@@ -131,7 +131,7 @@ imx_dma_setup_sg_base(imx_dmach_t dma_ch, | |||
131 | * The function setups DMA channel source and destination addresses for transfer | 131 | * The function setups DMA channel source and destination addresses for transfer |
132 | * specified by provided parameters. The scatter-gather emulation is disabled, | 132 | * specified by provided parameters. The scatter-gather emulation is disabled, |
133 | * because linear data block | 133 | * because linear data block |
134 | * form the physical address range is transfered. | 134 | * form the physical address range is transferred. |
135 | * Return value: if incorrect parameters are provided -%EINVAL. | 135 | * Return value: if incorrect parameters are provided -%EINVAL. |
136 | * Zero indicates success. | 136 | * Zero indicates success. |
137 | */ | 137 | */ |
@@ -192,7 +192,7 @@ imx_dma_setup_single(imx_dmach_t dma_ch, dma_addr_t dma_address, | |||
192 | * @dmamode: DMA transfer mode, %DMA_MODE_READ from the device to the memory | 192 | * @dmamode: DMA transfer mode, %DMA_MODE_READ from the device to the memory |
193 | * or %DMA_MODE_WRITE from memory to the device | 193 | * or %DMA_MODE_WRITE from memory to the device |
194 | * | 194 | * |
195 | * The function setups DMA channel state and registers to be ready for transfer | 195 | * The function sets up DMA channel state and registers to be ready for transfer |
196 | * specified by provided parameters. The scatter-gather emulation is set up | 196 | * specified by provided parameters. The scatter-gather emulation is set up |
197 | * according to the parameters. | 197 | * according to the parameters. |
198 | * | 198 | * |
@@ -212,7 +212,7 @@ imx_dma_setup_single(imx_dmach_t dma_ch, dma_addr_t dma_address, | |||
212 | * | 212 | * |
213 | * %CCR_SMOD_LINEAR | %CCR_SSIZ_32 | %CCR_DMOD_FIFO | %CCR_DSIZ_x | 213 | * %CCR_SMOD_LINEAR | %CCR_SSIZ_32 | %CCR_DMOD_FIFO | %CCR_DSIZ_x |
214 | * | 214 | * |
215 | * Be carefull there and do not mistakenly mix source and target device | 215 | * Be careful here and do not mistakenly mix source and target device |
216 | * port sizes constants, they are really different: | 216 | * port sizes constants, they are really different: |
217 | * %CCR_SSIZ_8, %CCR_SSIZ_16, %CCR_SSIZ_32, | 217 | * %CCR_SSIZ_8, %CCR_SSIZ_16, %CCR_SSIZ_32, |
218 | * %CCR_DSIZ_8, %CCR_DSIZ_16, %CCR_DSIZ_32 | 218 | * %CCR_DSIZ_8, %CCR_DSIZ_16, %CCR_DSIZ_32 |
@@ -495,7 +495,7 @@ static irqreturn_t dma_err_handler(int irq, void *dev_id) | |||
495 | /* | 495 | /* |
496 | * The cleaning of @sg field would be questionable | 496 | * The cleaning of @sg field would be questionable |
497 | * there, because its value can help to compute | 497 | * there, because its value can help to compute |
498 | * remaining/transfered bytes count in the handler | 498 | * remaining/transferred bytes count in the handler |
499 | */ | 499 | */ |
500 | /*imx_dma_channels[i].sg = NULL;*/ | 500 | /*imx_dma_channels[i].sg = NULL;*/ |
501 | 501 | ||
diff --git a/arch/arm/mach-imx/generic.c b/arch/arm/mach-imx/generic.c index 7a7fa51ec62c..1c474cf709ca 100644 --- a/arch/arm/mach-imx/generic.c +++ b/arch/arm/mach-imx/generic.c | |||
@@ -201,7 +201,6 @@ void __init imx_set_mmc_info(struct imxmmc_platform_data *info) | |||
201 | { | 201 | { |
202 | imx_mmc_device.dev.platform_data = info; | 202 | imx_mmc_device.dev.platform_data = info; |
203 | } | 203 | } |
204 | EXPORT_SYMBOL(imx_set_mmc_info); | ||
205 | 204 | ||
206 | static struct imxfb_mach_info imx_fb_info; | 205 | static struct imxfb_mach_info imx_fb_info; |
207 | 206 | ||
diff --git a/arch/arm/mach-integrator/Makefile b/arch/arm/mach-integrator/Makefile index ebb255bdce8a..158daaf9e3b0 100644 --- a/arch/arm/mach-integrator/Makefile +++ b/arch/arm/mach-integrator/Makefile | |||
@@ -12,4 +12,3 @@ obj-$(CONFIG_LEDS) += leds.o | |||
12 | obj-$(CONFIG_PCI) += pci_v3.o pci.o | 12 | obj-$(CONFIG_PCI) += pci_v3.o pci.o |
13 | obj-$(CONFIG_CPU_FREQ_INTEGRATOR) += cpu.o | 13 | obj-$(CONFIG_CPU_FREQ_INTEGRATOR) += cpu.o |
14 | obj-$(CONFIG_INTEGRATOR_IMPD1) += impd1.o | 14 | obj-$(CONFIG_INTEGRATOR_IMPD1) += impd1.o |
15 | obj-$(CONFIG_SMP) += platsmp.o headsmp.o | ||
diff --git a/arch/arm/mach-integrator/core.c b/arch/arm/mach-integrator/core.c index 897c21c2fb5b..e9c82deb791d 100644 --- a/arch/arm/mach-integrator/core.c +++ b/arch/arm/mach-integrator/core.c | |||
@@ -257,23 +257,7 @@ integrator_timer_interrupt(int irq, void *dev_id) | |||
257 | */ | 257 | */ |
258 | writel(1, TIMER1_VA_BASE + TIMER_INTCLR); | 258 | writel(1, TIMER1_VA_BASE + TIMER_INTCLR); |
259 | 259 | ||
260 | /* | 260 | timer_tick(); |
261 | * the clock tick routines are only processed on the | ||
262 | * primary CPU | ||
263 | */ | ||
264 | if (hard_smp_processor_id() == 0) { | ||
265 | timer_tick(); | ||
266 | #ifdef CONFIG_SMP | ||
267 | smp_send_timer(); | ||
268 | #endif | ||
269 | } | ||
270 | |||
271 | #ifdef CONFIG_SMP | ||
272 | /* | ||
273 | * this is the ARM equivalent of the APIC timer interrupt | ||
274 | */ | ||
275 | update_process_times(user_mode(get_irq_regs())); | ||
276 | #endif /* CONFIG_SMP */ | ||
277 | 261 | ||
278 | write_sequnlock(&xtime_lock); | 262 | write_sequnlock(&xtime_lock); |
279 | 263 | ||
diff --git a/arch/arm/mach-integrator/headsmp.S b/arch/arm/mach-integrator/headsmp.S deleted file mode 100644 index ceaa88e30d70..000000000000 --- a/arch/arm/mach-integrator/headsmp.S +++ /dev/null | |||
@@ -1,37 +0,0 @@ | |||
1 | /* | ||
2 | * linux/arch/arm/mach-integrator/headsmp.S | ||
3 | * | ||
4 | * Copyright (c) 2003 ARM Limited | ||
5 | * All Rights Reserved | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License version 2 as | ||
9 | * published by the Free Software Foundation. | ||
10 | */ | ||
11 | #include <linux/linkage.h> | ||
12 | #include <linux/init.h> | ||
13 | |||
14 | __INIT | ||
15 | |||
16 | /* | ||
17 | * Integrator specific entry point for secondary CPUs. This provides | ||
18 | * a "holding pen" into which all secondary cores are held until we're | ||
19 | * ready for them to initialise. | ||
20 | */ | ||
21 | ENTRY(integrator_secondary_startup) | ||
22 | adr r4, 1f | ||
23 | ldmia r4, {r5, r6} | ||
24 | sub r4, r4, r5 | ||
25 | ldr r6, [r6, r4] | ||
26 | pen: ldr r7, [r6] | ||
27 | cmp r7, r0 | ||
28 | bne pen | ||
29 | |||
30 | /* | ||
31 | * we've been released from the holding pen: secondary_stack | ||
32 | * should now contain the SVC stack for this core | ||
33 | */ | ||
34 | b secondary_startup | ||
35 | |||
36 | 1: .long . | ||
37 | .long phys_pen_release | ||
diff --git a/arch/arm/mach-integrator/pci_v3.c b/arch/arm/mach-integrator/pci_v3.c index af9ebccac7c1..d4d8134ce567 100644 --- a/arch/arm/mach-integrator/pci_v3.c +++ b/arch/arm/mach-integrator/pci_v3.c | |||
@@ -33,6 +33,7 @@ | |||
33 | #include <asm/irq.h> | 33 | #include <asm/irq.h> |
34 | #include <asm/system.h> | 34 | #include <asm/system.h> |
35 | #include <asm/mach/pci.h> | 35 | #include <asm/mach/pci.h> |
36 | #include <asm/irq_regs.h> | ||
36 | 37 | ||
37 | #include <asm/hardware/pci_v3.h> | 38 | #include <asm/hardware/pci_v3.h> |
38 | 39 | ||
diff --git a/arch/arm/mach-integrator/platsmp.c b/arch/arm/mach-integrator/platsmp.c deleted file mode 100644 index 613b841a10f3..000000000000 --- a/arch/arm/mach-integrator/platsmp.c +++ /dev/null | |||
@@ -1,204 +0,0 @@ | |||
1 | /* | ||
2 | * linux/arch/arm/mach-cintegrator/platsmp.c | ||
3 | * | ||
4 | * Copyright (C) 2002 ARM Ltd. | ||
5 | * All Rights Reserved | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License version 2 as | ||
9 | * published by the Free Software Foundation. | ||
10 | */ | ||
11 | #include <linux/init.h> | ||
12 | #include <linux/kernel.h> | ||
13 | #include <linux/sched.h> | ||
14 | #include <linux/errno.h> | ||
15 | #include <linux/mm.h> | ||
16 | |||
17 | #include <asm/atomic.h> | ||
18 | #include <asm/cacheflush.h> | ||
19 | #include <asm/delay.h> | ||
20 | #include <asm/mmu_context.h> | ||
21 | #include <asm/ptrace.h> | ||
22 | #include <asm/smp.h> | ||
23 | |||
24 | extern void integrator_secondary_startup(void); | ||
25 | |||
26 | /* | ||
27 | * control for which core is the next to come out of the secondary | ||
28 | * boot "holding pen" | ||
29 | */ | ||
30 | volatile int __cpuinitdata pen_release = -1; | ||
31 | unsigned long __cpuinitdata phys_pen_release = 0; | ||
32 | |||
33 | static DEFINE_SPINLOCK(boot_lock); | ||
34 | |||
35 | void __cpuinit platform_secondary_init(unsigned int cpu) | ||
36 | { | ||
37 | /* | ||
38 | * the primary core may have used a "cross call" soft interrupt | ||
39 | * to get this processor out of WFI in the BootMonitor - make | ||
40 | * sure that we are no longer being sent this soft interrupt | ||
41 | */ | ||
42 | smp_cross_call_done(cpumask_of_cpu(cpu)); | ||
43 | |||
44 | /* | ||
45 | * if any interrupts are already enabled for the primary | ||
46 | * core (e.g. timer irq), then they will not have been enabled | ||
47 | * for us: do so | ||
48 | */ | ||
49 | secondary_scan_irqs(); | ||
50 | |||
51 | /* | ||
52 | * let the primary processor know we're out of the | ||
53 | * pen, then head off into the C entry point | ||
54 | */ | ||
55 | pen_release = -1; | ||
56 | |||
57 | /* | ||
58 | * Synchronise with the boot thread. | ||
59 | */ | ||
60 | spin_lock(&boot_lock); | ||
61 | spin_unlock(&boot_lock); | ||
62 | } | ||
63 | |||
64 | int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle) | ||
65 | { | ||
66 | unsigned long timeout; | ||
67 | |||
68 | /* | ||
69 | * set synchronisation state between this boot processor | ||
70 | * and the secondary one | ||
71 | */ | ||
72 | spin_lock(&boot_lock); | ||
73 | |||
74 | /* | ||
75 | * The secondary processor is waiting to be released from | ||
76 | * the holding pen - release it, then wait for it to flag | ||
77 | * that it has been released by resetting pen_release. | ||
78 | * | ||
79 | * Note that "pen_release" is the hardware CPU ID, whereas | ||
80 | * "cpu" is Linux's internal ID. | ||
81 | */ | ||
82 | pen_release = cpu; | ||
83 | flush_cache_all(); | ||
84 | |||
85 | /* | ||
86 | * XXX | ||
87 | * | ||
88 | * This is a later addition to the booting protocol: the | ||
89 | * bootMonitor now puts secondary cores into WFI, so | ||
90 | * poke_milo() no longer gets the cores moving; we need | ||
91 | * to send a soft interrupt to wake the secondary core. | ||
92 | * Use smp_cross_call() for this, since there's little | ||
93 | * point duplicating the code here | ||
94 | */ | ||
95 | smp_cross_call(cpumask_of_cpu(cpu)); | ||
96 | |||
97 | timeout = jiffies + (1 * HZ); | ||
98 | while (time_before(jiffies, timeout)) { | ||
99 | if (pen_release == -1) | ||
100 | break; | ||
101 | |||
102 | udelay(10); | ||
103 | } | ||
104 | |||
105 | /* | ||
106 | * now the secondary core is starting up let it run its | ||
107 | * calibrations, then wait for it to finish | ||
108 | */ | ||
109 | spin_unlock(&boot_lock); | ||
110 | |||
111 | return pen_release != -1 ? -ENOSYS : 0; | ||
112 | } | ||
113 | |||
114 | static void __init poke_milo(void) | ||
115 | { | ||
116 | extern void secondary_startup(void); | ||
117 | |||
118 | /* nobody is to be released from the pen yet */ | ||
119 | pen_release = -1; | ||
120 | |||
121 | phys_pen_release = virt_to_phys(&pen_release); | ||
122 | |||
123 | /* | ||
124 | * write the address of secondary startup into the system-wide | ||
125 | * flags register, then clear the bottom two bits, which is what | ||
126 | * BootMonitor is waiting for | ||
127 | */ | ||
128 | #if 1 | ||
129 | #define CINTEGRATOR_HDR_FLAGSS_OFFSET 0x30 | ||
130 | __raw_writel(virt_to_phys(integrator_secondary_startup), | ||
131 | (IO_ADDRESS(INTEGRATOR_HDR_BASE) + | ||
132 | CINTEGRATOR_HDR_FLAGSS_OFFSET)); | ||
133 | #define CINTEGRATOR_HDR_FLAGSC_OFFSET 0x34 | ||
134 | __raw_writel(3, | ||
135 | (IO_ADDRESS(INTEGRATOR_HDR_BASE) + | ||
136 | CINTEGRATOR_HDR_FLAGSC_OFFSET)); | ||
137 | #endif | ||
138 | |||
139 | mb(); | ||
140 | } | ||
141 | |||
142 | /* | ||
143 | * Initialise the CPU possible map early - this describes the CPUs | ||
144 | * which may be present or become present in the system. | ||
145 | */ | ||
146 | void __init smp_init_cpus(void) | ||
147 | { | ||
148 | unsigned int i, ncores = get_core_count(); | ||
149 | |||
150 | for (i = 0; i < ncores; i++) | ||
151 | cpu_set(i, cpu_possible_map); | ||
152 | } | ||
153 | |||
154 | void __init smp_prepare_cpus(unsigned int max_cpus) | ||
155 | { | ||
156 | unsigned int ncores = get_core_count(); | ||
157 | unsigned int cpu = smp_processor_id(); | ||
158 | int i; | ||
159 | |||
160 | /* sanity check */ | ||
161 | if (ncores == 0) { | ||
162 | printk(KERN_ERR | ||
163 | "Integrator/CP: strange CM count of 0? Default to 1\n"); | ||
164 | |||
165 | ncores = 1; | ||
166 | } | ||
167 | |||
168 | if (ncores > NR_CPUS) { | ||
169 | printk(KERN_WARNING | ||
170 | "Integrator/CP: no. of cores (%d) greater than configured " | ||
171 | "maximum of %d - clipping\n", | ||
172 | ncores, NR_CPUS); | ||
173 | ncores = NR_CPUS; | ||
174 | } | ||
175 | |||
176 | /* | ||
177 | * start with some more config for the Boot CPU, now that | ||
178 | * the world is a bit more alive (which was not the case | ||
179 | * when smp_prepare_boot_cpu() was called) | ||
180 | */ | ||
181 | smp_store_cpu_info(cpu); | ||
182 | |||
183 | /* | ||
184 | * are we trying to boot more cores than exist? | ||
185 | */ | ||
186 | if (max_cpus > ncores) | ||
187 | max_cpus = ncores; | ||
188 | |||
189 | /* | ||
190 | * Initialise the present map, which describes the set of CPUs | ||
191 | * actually populated at the present time. | ||
192 | */ | ||
193 | for (i = 0; i < max_cpus; i++) | ||
194 | cpu_set(i, cpu_present_map); | ||
195 | |||
196 | /* | ||
197 | * Do we need any more CPUs? If so, then let them know where | ||
198 | * to start. Note that, on modern versions of MILO, the "poke" | ||
199 | * doesn't actually do anything until each individual core is | ||
200 | * sent a soft interrupt to get it out of WFI | ||
201 | */ | ||
202 | if (max_cpus > 1) | ||
203 | poke_milo(); | ||
204 | } | ||
diff --git a/arch/arm/mach-iop13xx/irq.c b/arch/arm/mach-iop13xx/irq.c index 5791addd436b..69f07b25b3c9 100644 --- a/arch/arm/mach-iop13xx/irq.c +++ b/arch/arm/mach-iop13xx/irq.c | |||
@@ -30,77 +30,65 @@ | |||
30 | 30 | ||
31 | /* INTCTL0 CP6 R0 Page 4 | 31 | /* INTCTL0 CP6 R0 Page 4 |
32 | */ | 32 | */ |
33 | static inline u32 read_intctl_0(void) | 33 | static u32 read_intctl_0(void) |
34 | { | 34 | { |
35 | u32 val; | 35 | u32 val; |
36 | asm volatile("mrc p6, 0, %0, c0, c4, 0":"=r" (val)); | 36 | asm volatile("mrc p6, 0, %0, c0, c4, 0":"=r" (val)); |
37 | return val; | 37 | return val; |
38 | } | 38 | } |
39 | static inline void write_intctl_0(u32 val) | 39 | static void write_intctl_0(u32 val) |
40 | { | 40 | { |
41 | asm volatile("mcr p6, 0, %0, c0, c4, 0"::"r" (val)); | 41 | asm volatile("mcr p6, 0, %0, c0, c4, 0"::"r" (val)); |
42 | } | 42 | } |
43 | 43 | ||
44 | /* INTCTL1 CP6 R1 Page 4 | 44 | /* INTCTL1 CP6 R1 Page 4 |
45 | */ | 45 | */ |
46 | static inline u32 read_intctl_1(void) | 46 | static u32 read_intctl_1(void) |
47 | { | 47 | { |
48 | u32 val; | 48 | u32 val; |
49 | asm volatile("mrc p6, 0, %0, c1, c4, 0":"=r" (val)); | 49 | asm volatile("mrc p6, 0, %0, c1, c4, 0":"=r" (val)); |
50 | return val; | 50 | return val; |
51 | } | 51 | } |
52 | static inline void write_intctl_1(u32 val) | 52 | static void write_intctl_1(u32 val) |
53 | { | 53 | { |
54 | asm volatile("mcr p6, 0, %0, c1, c4, 0"::"r" (val)); | 54 | asm volatile("mcr p6, 0, %0, c1, c4, 0"::"r" (val)); |
55 | } | 55 | } |
56 | 56 | ||
57 | /* INTCTL2 CP6 R2 Page 4 | 57 | /* INTCTL2 CP6 R2 Page 4 |
58 | */ | 58 | */ |
59 | static inline u32 read_intctl_2(void) | 59 | static u32 read_intctl_2(void) |
60 | { | 60 | { |
61 | u32 val; | 61 | u32 val; |
62 | asm volatile("mrc p6, 0, %0, c2, c4, 0":"=r" (val)); | 62 | asm volatile("mrc p6, 0, %0, c2, c4, 0":"=r" (val)); |
63 | return val; | 63 | return val; |
64 | } | 64 | } |
65 | static inline void write_intctl_2(u32 val) | 65 | static void write_intctl_2(u32 val) |
66 | { | 66 | { |
67 | asm volatile("mcr p6, 0, %0, c2, c4, 0"::"r" (val)); | 67 | asm volatile("mcr p6, 0, %0, c2, c4, 0"::"r" (val)); |
68 | } | 68 | } |
69 | 69 | ||
70 | /* INTCTL3 CP6 R3 Page 4 | 70 | /* INTCTL3 CP6 R3 Page 4 |
71 | */ | 71 | */ |
72 | static inline u32 read_intctl_3(void) | 72 | static u32 read_intctl_3(void) |
73 | { | 73 | { |
74 | u32 val; | 74 | u32 val; |
75 | asm volatile("mrc p6, 0, %0, c3, c4, 0":"=r" (val)); | 75 | asm volatile("mrc p6, 0, %0, c3, c4, 0":"=r" (val)); |
76 | return val; | 76 | return val; |
77 | } | 77 | } |
78 | static inline void write_intctl_3(u32 val) | 78 | static void write_intctl_3(u32 val) |
79 | { | 79 | { |
80 | asm volatile("mcr p6, 0, %0, c3, c4, 0"::"r" (val)); | 80 | asm volatile("mcr p6, 0, %0, c3, c4, 0"::"r" (val)); |
81 | } | 81 | } |
82 | 82 | ||
83 | /* INTSTR0 CP6 R0 Page 5 | 83 | /* INTSTR0 CP6 R0 Page 5 |
84 | */ | 84 | */ |
85 | static inline u32 read_intstr_0(void) | 85 | static void write_intstr_0(u32 val) |
86 | { | ||
87 | u32 val; | ||
88 | asm volatile("mrc p6, 0, %0, c0, c5, 0":"=r" (val)); | ||
89 | return val; | ||
90 | } | ||
91 | static inline void write_intstr_0(u32 val) | ||
92 | { | 86 | { |
93 | asm volatile("mcr p6, 0, %0, c0, c5, 0"::"r" (val)); | 87 | asm volatile("mcr p6, 0, %0, c0, c5, 0"::"r" (val)); |
94 | } | 88 | } |
95 | 89 | ||
96 | /* INTSTR1 CP6 R1 Page 5 | 90 | /* INTSTR1 CP6 R1 Page 5 |
97 | */ | 91 | */ |
98 | static inline u32 read_intstr_1(void) | ||
99 | { | ||
100 | u32 val; | ||
101 | asm volatile("mrc p6, 0, %0, c1, c5, 0":"=r" (val)); | ||
102 | return val; | ||
103 | } | ||
104 | static void write_intstr_1(u32 val) | 92 | static void write_intstr_1(u32 val) |
105 | { | 93 | { |
106 | asm volatile("mcr p6, 0, %0, c1, c5, 0"::"r" (val)); | 94 | asm volatile("mcr p6, 0, %0, c1, c5, 0"::"r" (val)); |
@@ -108,12 +96,6 @@ static void write_intstr_1(u32 val) | |||
108 | 96 | ||
109 | /* INTSTR2 CP6 R2 Page 5 | 97 | /* INTSTR2 CP6 R2 Page 5 |
110 | */ | 98 | */ |
111 | static inline u32 read_intstr_2(void) | ||
112 | { | ||
113 | u32 val; | ||
114 | asm volatile("mrc p6, 0, %0, c2, c5, 0":"=r" (val)); | ||
115 | return val; | ||
116 | } | ||
117 | static void write_intstr_2(u32 val) | 99 | static void write_intstr_2(u32 val) |
118 | { | 100 | { |
119 | asm volatile("mcr p6, 0, %0, c2, c5, 0"::"r" (val)); | 101 | asm volatile("mcr p6, 0, %0, c2, c5, 0"::"r" (val)); |
@@ -121,12 +103,6 @@ static void write_intstr_2(u32 val) | |||
121 | 103 | ||
122 | /* INTSTR3 CP6 R3 Page 5 | 104 | /* INTSTR3 CP6 R3 Page 5 |
123 | */ | 105 | */ |
124 | static inline u32 read_intstr_3(void) | ||
125 | { | ||
126 | u32 val; | ||
127 | asm volatile("mrc p6, 0, %0, c3, c5, 0":"=r" (val)); | ||
128 | return val; | ||
129 | } | ||
130 | static void write_intstr_3(u32 val) | 106 | static void write_intstr_3(u32 val) |
131 | { | 107 | { |
132 | asm volatile("mcr p6, 0, %0, c3, c5, 0"::"r" (val)); | 108 | asm volatile("mcr p6, 0, %0, c3, c5, 0"::"r" (val)); |
@@ -134,12 +110,6 @@ static void write_intstr_3(u32 val) | |||
134 | 110 | ||
135 | /* INTBASE CP6 R0 Page 2 | 111 | /* INTBASE CP6 R0 Page 2 |
136 | */ | 112 | */ |
137 | static inline u32 read_intbase(void) | ||
138 | { | ||
139 | u32 val; | ||
140 | asm volatile("mrc p6, 0, %0, c0, c2, 0":"=r" (val)); | ||
141 | return val; | ||
142 | } | ||
143 | static void write_intbase(u32 val) | 113 | static void write_intbase(u32 val) |
144 | { | 114 | { |
145 | asm volatile("mcr p6, 0, %0, c0, c2, 0"::"r" (val)); | 115 | asm volatile("mcr p6, 0, %0, c0, c2, 0"::"r" (val)); |
@@ -147,12 +117,6 @@ static void write_intbase(u32 val) | |||
147 | 117 | ||
148 | /* INTSIZE CP6 R2 Page 2 | 118 | /* INTSIZE CP6 R2 Page 2 |
149 | */ | 119 | */ |
150 | static inline u32 read_intsize(void) | ||
151 | { | ||
152 | u32 val; | ||
153 | asm volatile("mrc p6, 0, %0, c2, c2, 0":"=r" (val)); | ||
154 | return val; | ||
155 | } | ||
156 | static void write_intsize(u32 val) | 120 | static void write_intsize(u32 val) |
157 | { | 121 | { |
158 | asm volatile("mcr p6, 0, %0, c2, c2, 0"::"r" (val)); | 122 | asm volatile("mcr p6, 0, %0, c2, c2, 0"::"r" (val)); |
diff --git a/arch/arm/mach-iop13xx/msi.c b/arch/arm/mach-iop13xx/msi.c index 2d2369302220..63ef1124ca5c 100644 --- a/arch/arm/mach-iop13xx/msi.c +++ b/arch/arm/mach-iop13xx/msi.c | |||
@@ -30,52 +30,52 @@ static DECLARE_BITMAP(msi_irq_in_use, IOP13XX_NUM_MSI_IRQS); | |||
30 | 30 | ||
31 | /* IMIPR0 CP6 R8 Page 1 | 31 | /* IMIPR0 CP6 R8 Page 1 |
32 | */ | 32 | */ |
33 | static inline u32 read_imipr_0(void) | 33 | static u32 read_imipr_0(void) |
34 | { | 34 | { |
35 | u32 val; | 35 | u32 val; |
36 | asm volatile("mrc p6, 0, %0, c8, c1, 0":"=r" (val)); | 36 | asm volatile("mrc p6, 0, %0, c8, c1, 0":"=r" (val)); |
37 | return val; | 37 | return val; |
38 | } | 38 | } |
39 | static inline void write_imipr_0(u32 val) | 39 | static void write_imipr_0(u32 val) |
40 | { | 40 | { |
41 | asm volatile("mcr p6, 0, %0, c8, c1, 0"::"r" (val)); | 41 | asm volatile("mcr p6, 0, %0, c8, c1, 0"::"r" (val)); |
42 | } | 42 | } |
43 | 43 | ||
44 | /* IMIPR1 CP6 R9 Page 1 | 44 | /* IMIPR1 CP6 R9 Page 1 |
45 | */ | 45 | */ |
46 | static inline u32 read_imipr_1(void) | 46 | static u32 read_imipr_1(void) |
47 | { | 47 | { |
48 | u32 val; | 48 | u32 val; |
49 | asm volatile("mrc p6, 0, %0, c9, c1, 0":"=r" (val)); | 49 | asm volatile("mrc p6, 0, %0, c9, c1, 0":"=r" (val)); |
50 | return val; | 50 | return val; |
51 | } | 51 | } |
52 | static inline void write_imipr_1(u32 val) | 52 | static void write_imipr_1(u32 val) |
53 | { | 53 | { |
54 | asm volatile("mcr p6, 0, %0, c9, c1, 0"::"r" (val)); | 54 | asm volatile("mcr p6, 0, %0, c9, c1, 0"::"r" (val)); |
55 | } | 55 | } |
56 | 56 | ||
57 | /* IMIPR2 CP6 R10 Page 1 | 57 | /* IMIPR2 CP6 R10 Page 1 |
58 | */ | 58 | */ |
59 | static inline u32 read_imipr_2(void) | 59 | static u32 read_imipr_2(void) |
60 | { | 60 | { |
61 | u32 val; | 61 | u32 val; |
62 | asm volatile("mrc p6, 0, %0, c10, c1, 0":"=r" (val)); | 62 | asm volatile("mrc p6, 0, %0, c10, c1, 0":"=r" (val)); |
63 | return val; | 63 | return val; |
64 | } | 64 | } |
65 | static inline void write_imipr_2(u32 val) | 65 | static void write_imipr_2(u32 val) |
66 | { | 66 | { |
67 | asm volatile("mcr p6, 0, %0, c10, c1, 0"::"r" (val)); | 67 | asm volatile("mcr p6, 0, %0, c10, c1, 0"::"r" (val)); |
68 | } | 68 | } |
69 | 69 | ||
70 | /* IMIPR3 CP6 R11 Page 1 | 70 | /* IMIPR3 CP6 R11 Page 1 |
71 | */ | 71 | */ |
72 | static inline u32 read_imipr_3(void) | 72 | static u32 read_imipr_3(void) |
73 | { | 73 | { |
74 | u32 val; | 74 | u32 val; |
75 | asm volatile("mrc p6, 0, %0, c11, c1, 0":"=r" (val)); | 75 | asm volatile("mrc p6, 0, %0, c11, c1, 0":"=r" (val)); |
76 | return val; | 76 | return val; |
77 | } | 77 | } |
78 | static inline void write_imipr_3(u32 val) | 78 | static void write_imipr_3(u32 val) |
79 | { | 79 | { |
80 | asm volatile("mcr p6, 0, %0, c11, c1, 0"::"r" (val)); | 80 | asm volatile("mcr p6, 0, %0, c11, c1, 0"::"r" (val)); |
81 | } | 81 | } |
@@ -190,5 +190,5 @@ int arch_setup_msi_irq(struct pci_dev *pdev, struct msi_desc *desc) | |||
190 | write_msi_msg(irq, &msg); | 190 | write_msi_msg(irq, &msg); |
191 | set_irq_chip_and_handler(irq, &iop13xx_msi_chip, handle_simple_irq); | 191 | set_irq_chip_and_handler(irq, &iop13xx_msi_chip, handle_simple_irq); |
192 | 192 | ||
193 | return irq; | 193 | return 0; |
194 | } | 194 | } |
diff --git a/arch/arm/mach-iop13xx/pci.c b/arch/arm/mach-iop13xx/pci.c index 1c9e94c38b7e..9d63d7f260ca 100644 --- a/arch/arm/mach-iop13xx/pci.c +++ b/arch/arm/mach-iop13xx/pci.c | |||
@@ -19,10 +19,11 @@ | |||
19 | 19 | ||
20 | #include <linux/pci.h> | 20 | #include <linux/pci.h> |
21 | #include <linux/delay.h> | 21 | #include <linux/delay.h> |
22 | 22 | #include <linux/jiffies.h> | |
23 | #include <asm/irq.h> | 23 | #include <asm/irq.h> |
24 | #include <asm/hardware.h> | 24 | #include <asm/hardware.h> |
25 | #include <asm/sizes.h> | 25 | #include <asm/sizes.h> |
26 | #include <asm/signal.h> | ||
26 | #include <asm/mach/pci.h> | 27 | #include <asm/mach/pci.h> |
27 | #include <asm/arch/pci.h> | 28 | #include <asm/arch/pci.h> |
28 | 29 | ||
@@ -144,7 +145,7 @@ void iop13xx_map_pci_memory(void) | |||
144 | } | 145 | } |
145 | } | 146 | } |
146 | 147 | ||
147 | static inline int iop13xx_atu_function(int atu) | 148 | static int iop13xx_atu_function(int atu) |
148 | { | 149 | { |
149 | int func = 0; | 150 | int func = 0; |
150 | /* the function number depends on the value of the | 151 | /* the function number depends on the value of the |
@@ -259,7 +260,7 @@ static int iop13xx_atux_pci_status(int clear) | |||
259 | * data. Note that the data dependency on %0 encourages an abort | 260 | * data. Note that the data dependency on %0 encourages an abort |
260 | * to be detected before we return. | 261 | * to be detected before we return. |
261 | */ | 262 | */ |
262 | static inline u32 iop13xx_atux_read(unsigned long addr) | 263 | static u32 iop13xx_atux_read(unsigned long addr) |
263 | { | 264 | { |
264 | u32 val; | 265 | u32 val; |
265 | 266 | ||
@@ -387,7 +388,7 @@ static int iop13xx_atue_pci_status(int clear) | |||
387 | return err; | 388 | return err; |
388 | } | 389 | } |
389 | 390 | ||
390 | static inline int __init | 391 | static int |
391 | iop13xx_pcie_map_irq(struct pci_dev *dev, u8 idsel, u8 pin) | 392 | iop13xx_pcie_map_irq(struct pci_dev *dev, u8 idsel, u8 pin) |
392 | { | 393 | { |
393 | WARN_ON(idsel != 0); | 394 | WARN_ON(idsel != 0); |
@@ -401,7 +402,7 @@ iop13xx_pcie_map_irq(struct pci_dev *dev, u8 idsel, u8 pin) | |||
401 | } | 402 | } |
402 | } | 403 | } |
403 | 404 | ||
404 | static inline u32 iop13xx_atue_read(unsigned long addr) | 405 | static u32 iop13xx_atue_read(unsigned long addr) |
405 | { | 406 | { |
406 | u32 val; | 407 | u32 val; |
407 | 408 | ||
@@ -989,7 +990,7 @@ void __init iop13xx_pci_init(void) | |||
989 | "imprecise external abort"); | 990 | "imprecise external abort"); |
990 | } | 991 | } |
991 | 992 | ||
992 | /* intialize the pci memory space. handle any combination of | 993 | /* initialize the pci memory space. handle any combination of |
993 | * atue and atux enabled/disabled | 994 | * atue and atux enabled/disabled |
994 | */ | 995 | */ |
995 | int iop13xx_pci_setup(int nr, struct pci_sys_data *sys) | 996 | int iop13xx_pci_setup(int nr, struct pci_sys_data *sys) |
diff --git a/arch/arm/mach-iop32x/glantank.c b/arch/arm/mach-iop32x/glantank.c index 45f4f13ae11b..5776fd884115 100644 --- a/arch/arm/mach-iop32x/glantank.c +++ b/arch/arm/mach-iop32x/glantank.c | |||
@@ -75,7 +75,7 @@ void __init glantank_map_io(void) | |||
75 | #define INTC IRQ_IOP32X_XINT2 | 75 | #define INTC IRQ_IOP32X_XINT2 |
76 | #define INTD IRQ_IOP32X_XINT3 | 76 | #define INTD IRQ_IOP32X_XINT3 |
77 | 77 | ||
78 | static inline int __init | 78 | static int __init |
79 | glantank_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 79 | glantank_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) |
80 | { | 80 | { |
81 | static int pci_irq_table[][4] = { | 81 | static int pci_irq_table[][4] = { |
diff --git a/arch/arm/mach-iop32x/iq31244.c b/arch/arm/mach-iop32x/iq31244.c index 7b21c6e13e59..d4eefbea1fe6 100644 --- a/arch/arm/mach-iop32x/iq31244.c +++ b/arch/arm/mach-iop32x/iq31244.c | |||
@@ -104,7 +104,7 @@ void __init iq31244_map_io(void) | |||
104 | /* | 104 | /* |
105 | * EP80219/IQ31244 PCI. | 105 | * EP80219/IQ31244 PCI. |
106 | */ | 106 | */ |
107 | static inline int __init | 107 | static int __init |
108 | ep80219_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 108 | ep80219_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) |
109 | { | 109 | { |
110 | int irq; | 110 | int irq; |
@@ -140,7 +140,7 @@ static struct hw_pci ep80219_pci __initdata = { | |||
140 | .map_irq = ep80219_pci_map_irq, | 140 | .map_irq = ep80219_pci_map_irq, |
141 | }; | 141 | }; |
142 | 142 | ||
143 | static inline int __init | 143 | static int __init |
144 | iq31244_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 144 | iq31244_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) |
145 | { | 145 | { |
146 | int irq; | 146 | int irq; |
diff --git a/arch/arm/mach-iop32x/iq80321.c b/arch/arm/mach-iop32x/iq80321.c index bc25fb91e7b9..8d9f49164a84 100644 --- a/arch/arm/mach-iop32x/iq80321.c +++ b/arch/arm/mach-iop32x/iq80321.c | |||
@@ -72,7 +72,7 @@ void __init iq80321_map_io(void) | |||
72 | /* | 72 | /* |
73 | * IQ80321 PCI. | 73 | * IQ80321 PCI. |
74 | */ | 74 | */ |
75 | static inline int __init | 75 | static int __init |
76 | iq80321_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 76 | iq80321_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) |
77 | { | 77 | { |
78 | int irq; | 78 | int irq; |
diff --git a/arch/arm/mach-iop32x/irq.c b/arch/arm/mach-iop32x/irq.c index 82598dc18d80..c971171c2905 100644 --- a/arch/arm/mach-iop32x/irq.c +++ b/arch/arm/mach-iop32x/irq.c | |||
@@ -21,12 +21,12 @@ | |||
21 | 21 | ||
22 | static u32 iop32x_mask; | 22 | static u32 iop32x_mask; |
23 | 23 | ||
24 | static inline void intctl_write(u32 val) | 24 | static void intctl_write(u32 val) |
25 | { | 25 | { |
26 | asm volatile("mcr p6, 0, %0, c0, c0, 0" : : "r" (val)); | 26 | asm volatile("mcr p6, 0, %0, c0, c0, 0" : : "r" (val)); |
27 | } | 27 | } |
28 | 28 | ||
29 | static inline void intstr_write(u32 val) | 29 | static void intstr_write(u32 val) |
30 | { | 30 | { |
31 | asm volatile("mcr p6, 0, %0, c4, c0, 0" : : "r" (val)); | 31 | asm volatile("mcr p6, 0, %0, c4, c0, 0" : : "r" (val)); |
32 | } | 32 | } |
diff --git a/arch/arm/mach-iop32x/n2100.c b/arch/arm/mach-iop32x/n2100.c index 5f07344d96f3..d55005d64781 100644 --- a/arch/arm/mach-iop32x/n2100.c +++ b/arch/arm/mach-iop32x/n2100.c | |||
@@ -76,7 +76,7 @@ void __init n2100_map_io(void) | |||
76 | /* | 76 | /* |
77 | * N2100 PCI. | 77 | * N2100 PCI. |
78 | */ | 78 | */ |
79 | static inline int __init | 79 | static int __init |
80 | n2100_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 80 | n2100_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) |
81 | { | 81 | { |
82 | int irq; | 82 | int irq; |
diff --git a/arch/arm/mach-iop33x/iq80331.c b/arch/arm/mach-iop33x/iq80331.c index 376c932830be..2b063180687a 100644 --- a/arch/arm/mach-iop33x/iq80331.c +++ b/arch/arm/mach-iop33x/iq80331.c | |||
@@ -55,7 +55,7 @@ static struct sys_timer iq80331_timer = { | |||
55 | /* | 55 | /* |
56 | * IQ80331 PCI. | 56 | * IQ80331 PCI. |
57 | */ | 57 | */ |
58 | static inline int __init | 58 | static int __init |
59 | iq80331_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 59 | iq80331_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) |
60 | { | 60 | { |
61 | int irq; | 61 | int irq; |
diff --git a/arch/arm/mach-iop33x/iq80332.c b/arch/arm/mach-iop33x/iq80332.c index 58c81496c6f6..7889ce3cb08e 100644 --- a/arch/arm/mach-iop33x/iq80332.c +++ b/arch/arm/mach-iop33x/iq80332.c | |||
@@ -55,7 +55,7 @@ static struct sys_timer iq80332_timer = { | |||
55 | /* | 55 | /* |
56 | * IQ80332 PCI. | 56 | * IQ80332 PCI. |
57 | */ | 57 | */ |
58 | static inline int __init | 58 | static int __init |
59 | iq80332_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 59 | iq80332_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) |
60 | { | 60 | { |
61 | int irq; | 61 | int irq; |
diff --git a/arch/arm/mach-iop33x/irq.c b/arch/arm/mach-iop33x/irq.c index c65ea78a2427..f09dd054b9c0 100644 --- a/arch/arm/mach-iop33x/irq.c +++ b/arch/arm/mach-iop33x/irq.c | |||
@@ -22,32 +22,32 @@ | |||
22 | static u32 iop33x_mask0; | 22 | static u32 iop33x_mask0; |
23 | static u32 iop33x_mask1; | 23 | static u32 iop33x_mask1; |
24 | 24 | ||
25 | static inline void intctl0_write(u32 val) | 25 | static void intctl0_write(u32 val) |
26 | { | 26 | { |
27 | asm volatile("mcr p6, 0, %0, c0, c0, 0" : : "r" (val)); | 27 | asm volatile("mcr p6, 0, %0, c0, c0, 0" : : "r" (val)); |
28 | } | 28 | } |
29 | 29 | ||
30 | static inline void intctl1_write(u32 val) | 30 | static void intctl1_write(u32 val) |
31 | { | 31 | { |
32 | asm volatile("mcr p6, 0, %0, c1, c0, 0" : : "r" (val)); | 32 | asm volatile("mcr p6, 0, %0, c1, c0, 0" : : "r" (val)); |
33 | } | 33 | } |
34 | 34 | ||
35 | static inline void intstr0_write(u32 val) | 35 | static void intstr0_write(u32 val) |
36 | { | 36 | { |
37 | asm volatile("mcr p6, 0, %0, c2, c0, 0" : : "r" (val)); | 37 | asm volatile("mcr p6, 0, %0, c2, c0, 0" : : "r" (val)); |
38 | } | 38 | } |
39 | 39 | ||
40 | static inline void intstr1_write(u32 val) | 40 | static void intstr1_write(u32 val) |
41 | { | 41 | { |
42 | asm volatile("mcr p6, 0, %0, c3, c0, 0" : : "r" (val)); | 42 | asm volatile("mcr p6, 0, %0, c3, c0, 0" : : "r" (val)); |
43 | } | 43 | } |
44 | 44 | ||
45 | static inline void intbase_write(u32 val) | 45 | static void intbase_write(u32 val) |
46 | { | 46 | { |
47 | asm volatile("mcr p6, 0, %0, c12, c0, 0" : : "r" (val)); | 47 | asm volatile("mcr p6, 0, %0, c12, c0, 0" : : "r" (val)); |
48 | } | 48 | } |
49 | 49 | ||
50 | static inline void intsize_write(u32 val) | 50 | static void intsize_write(u32 val) |
51 | { | 51 | { |
52 | asm volatile("mcr p6, 0, %0, c13, c0, 0" : : "r" (val)); | 52 | asm volatile("mcr p6, 0, %0, c13, c0, 0" : : "r" (val)); |
53 | } | 53 | } |
diff --git a/arch/arm/mach-ixp2000/enp2611.c b/arch/arm/mach-ixp2000/enp2611.c index 500e997ba7a4..9c49435d42c3 100644 --- a/arch/arm/mach-ixp2000/enp2611.c +++ b/arch/arm/mach-ixp2000/enp2611.c | |||
@@ -198,7 +198,7 @@ subsys_initcall(enp2611_pci_init); | |||
198 | 198 | ||
199 | 199 | ||
200 | /************************************************************************* | 200 | /************************************************************************* |
201 | * ENP-2611 Machine Intialization | 201 | * ENP-2611 Machine Initialization |
202 | *************************************************************************/ | 202 | *************************************************************************/ |
203 | static struct flash_platform_data enp2611_flash_platform_data = { | 203 | static struct flash_platform_data enp2611_flash_platform_data = { |
204 | .map_name = "cfi_probe", | 204 | .map_name = "cfi_probe", |
diff --git a/arch/arm/mach-ixp2000/ixdp2400.c b/arch/arm/mach-ixp2000/ixdp2400.c index 0fdd03ab36e6..ce7c15c73004 100644 --- a/arch/arm/mach-ixp2000/ixdp2400.c +++ b/arch/arm/mach-ixp2000/ixdp2400.c | |||
@@ -164,7 +164,7 @@ int __init ixdp2400_pci_init(void) | |||
164 | 164 | ||
165 | subsys_initcall(ixdp2400_pci_init); | 165 | subsys_initcall(ixdp2400_pci_init); |
166 | 166 | ||
167 | void ixdp2400_init_irq(void) | 167 | void __init ixdp2400_init_irq(void) |
168 | { | 168 | { |
169 | ixdp2x00_init_irq(IXDP2400_CPLD_INT_STAT, IXDP2400_CPLD_INT_MASK, IXDP2400_NR_IRQS); | 169 | ixdp2x00_init_irq(IXDP2400_CPLD_INT_STAT, IXDP2400_CPLD_INT_MASK, IXDP2400_NR_IRQS); |
170 | } | 170 | } |
diff --git a/arch/arm/mach-ixp2000/ixdp2800.c b/arch/arm/mach-ixp2000/ixdp2800.c index 70d247f09a7e..14f09b80ab77 100644 --- a/arch/arm/mach-ixp2000/ixdp2800.c +++ b/arch/arm/mach-ixp2000/ixdp2800.c | |||
@@ -279,7 +279,7 @@ int __init ixdp2800_pci_init(void) | |||
279 | 279 | ||
280 | subsys_initcall(ixdp2800_pci_init); | 280 | subsys_initcall(ixdp2800_pci_init); |
281 | 281 | ||
282 | void ixdp2800_init_irq(void) | 282 | void __init ixdp2800_init_irq(void) |
283 | { | 283 | { |
284 | ixdp2x00_init_irq(IXDP2800_CPLD_INT_STAT, IXDP2800_CPLD_INT_MASK, IXDP2800_NR_IRQS); | 284 | ixdp2x00_init_irq(IXDP2800_CPLD_INT_STAT, IXDP2800_CPLD_INT_MASK, IXDP2800_NR_IRQS); |
285 | } | 285 | } |
diff --git a/arch/arm/mach-ixp2000/ixdp2x00.c b/arch/arm/mach-ixp2000/ixdp2x00.c index 52b368b34346..73c651e83d92 100644 --- a/arch/arm/mach-ixp2000/ixdp2x00.c +++ b/arch/arm/mach-ixp2000/ixdp2x00.c | |||
@@ -145,7 +145,7 @@ static struct irq_chip ixdp2x00_cpld_irq_chip = { | |||
145 | .unmask = ixdp2x00_irq_unmask | 145 | .unmask = ixdp2x00_irq_unmask |
146 | }; | 146 | }; |
147 | 147 | ||
148 | void ixdp2x00_init_irq(volatile unsigned long *stat_reg, volatile unsigned long *mask_reg, unsigned long nr_irqs) | 148 | void __init ixdp2x00_init_irq(volatile unsigned long *stat_reg, volatile unsigned long *mask_reg, unsigned long nr_irqs) |
149 | { | 149 | { |
150 | unsigned int irq; | 150 | unsigned int irq; |
151 | 151 | ||
@@ -195,7 +195,7 @@ void __init ixdp2x00_map_io(void) | |||
195 | * instances of the kernel. So far so good. Peers on the PCI bus running | 195 | * instances of the kernel. So far so good. Peers on the PCI bus running |
196 | * Linux is a common design in telecom systems. The problem is that instead | 196 | * Linux is a common design in telecom systems. The problem is that instead |
197 | * of all the devices being controlled by a single host, different | 197 | * of all the devices being controlled by a single host, different |
198 | * devices are controlles by different NPUs on the same bus, leading to | 198 | * devices are controlled by different NPUs on the same bus, leading to |
199 | * multiple hosts on the bus. The exact bus layout looks like: | 199 | * multiple hosts on the bus. The exact bus layout looks like: |
200 | * | 200 | * |
201 | * Bus 0 | 201 | * Bus 0 |
@@ -211,7 +211,7 @@ void __init ixdp2x00_map_io(void) | |||
211 | * | | | | | | 211 | * | | | | | |
212 | * ... Dev PMC Media Eth0 Eth1 ... | 212 | * ... Dev PMC Media Eth0 Eth1 ... |
213 | * | 213 | * |
214 | * The master controlls all but Eth1, which is controlled by the | 214 | * The master controls all but Eth1, which is controlled by the |
215 | * slave. What this means is that the both the master and the slave | 215 | * slave. What this means is that the both the master and the slave |
216 | * have to scan the bus, but only one of them can enumerate the bus. | 216 | * have to scan the bus, but only one of them can enumerate the bus. |
217 | * In addition, after the bus is scanned, each kernel must remove | 217 | * In addition, after the bus is scanned, each kernel must remove |
diff --git a/arch/arm/mach-ixp2000/ixdp2x01.c b/arch/arm/mach-ixp2000/ixdp2x01.c index 3084a5fa751c..d3d730d2fc2b 100644 --- a/arch/arm/mach-ixp2000/ixdp2x01.c +++ b/arch/arm/mach-ixp2000/ixdp2x01.c | |||
@@ -276,7 +276,7 @@ static int __init ixdp2x01_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | |||
276 | /* Device is located after first MB bridge */ | 276 | /* Device is located after first MB bridge */ |
277 | case 0x0008: | 277 | case 0x0008: |
278 | if (tmp_bus == dev->bus) { | 278 | if (tmp_bus == dev->bus) { |
279 | /* Device is located directy after first MB bridge */ | 279 | /* Device is located directly after first MB bridge */ |
280 | switch (devpin) { | 280 | switch (devpin) { |
281 | case DEVPIN(1, 1): /* Onboard 82546 ch 0 */ | 281 | case DEVPIN(1, 1): /* Onboard 82546 ch 0 */ |
282 | if (machine_is_ixdp2401()) | 282 | if (machine_is_ixdp2401()) |
@@ -299,7 +299,7 @@ static int __init ixdp2x01_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | |||
299 | break; | 299 | break; |
300 | case 0x0010: | 300 | case 0x0010: |
301 | if (tmp_bus == dev->bus) { | 301 | if (tmp_bus == dev->bus) { |
302 | /* Device is located directy after second MB bridge */ | 302 | /* Device is located directly after second MB bridge */ |
303 | /* Secondary bus of second bridge */ | 303 | /* Secondary bus of second bridge */ |
304 | switch (devpin) { | 304 | switch (devpin) { |
305 | case DEVPIN(0, 1): /* DB#0 */ | 305 | case DEVPIN(0, 1): /* DB#0 */ |
@@ -348,7 +348,7 @@ int __init ixdp2x01_pci_init(void) | |||
348 | subsys_initcall(ixdp2x01_pci_init); | 348 | subsys_initcall(ixdp2x01_pci_init); |
349 | 349 | ||
350 | /************************************************************************* | 350 | /************************************************************************* |
351 | * IXDP2x01 Machine Intialization | 351 | * IXDP2x01 Machine Initialization |
352 | *************************************************************************/ | 352 | *************************************************************************/ |
353 | static struct flash_platform_data ixdp2x01_flash_platform_data = { | 353 | static struct flash_platform_data ixdp2x01_flash_platform_data = { |
354 | .map_name = "cfi_probe", | 354 | .map_name = "cfi_probe", |
diff --git a/arch/arm/mach-ixp2000/pci.c b/arch/arm/mach-ixp2000/pci.c index 5a09a90c08fb..03f4cf7f9dec 100644 --- a/arch/arm/mach-ixp2000/pci.c +++ b/arch/arm/mach-ixp2000/pci.c | |||
@@ -102,7 +102,7 @@ int ixp2000_pci_read_config(struct pci_bus *bus, unsigned int devfn, int where, | |||
102 | } | 102 | } |
103 | 103 | ||
104 | /* | 104 | /* |
105 | * We don't do error checks by callling clear_master_aborts() b/c the | 105 | * We don't do error checks by calling clear_master_aborts() b/c the |
106 | * assumption is that the caller did a read first to make sure a device | 106 | * assumption is that the caller did a read first to make sure a device |
107 | * exists. | 107 | * exists. |
108 | */ | 108 | */ |
diff --git a/arch/arm/mach-ixp23xx/core.c b/arch/arm/mach-ixp23xx/core.c index b644bbab7d0a..16356ffc86ae 100644 --- a/arch/arm/mach-ixp23xx/core.c +++ b/arch/arm/mach-ixp23xx/core.c | |||
@@ -389,7 +389,7 @@ struct sys_timer ixp23xx_timer = { | |||
389 | 389 | ||
390 | 390 | ||
391 | /************************************************************************* | 391 | /************************************************************************* |
392 | * IXP23xx Platform Initializaion | 392 | * IXP23xx Platform Initialization |
393 | *************************************************************************/ | 393 | *************************************************************************/ |
394 | static struct resource ixp23xx_uart_resources[] = { | 394 | static struct resource ixp23xx_uart_resources[] = { |
395 | { | 395 | { |
diff --git a/arch/arm/mach-ixp23xx/ixdp2351.c b/arch/arm/mach-ixp23xx/ixdp2351.c index 7a86a2516eaa..c41a6b5a0acc 100644 --- a/arch/arm/mach-ixp23xx/ixdp2351.c +++ b/arch/arm/mach-ixp23xx/ixdp2351.c | |||
@@ -124,7 +124,7 @@ static struct irq_chip ixdp2351_intb_chip = { | |||
124 | .unmask = ixdp2351_intb_unmask | 124 | .unmask = ixdp2351_intb_unmask |
125 | }; | 125 | }; |
126 | 126 | ||
127 | void ixdp2351_init_irq(void) | 127 | void __init ixdp2351_init_irq(void) |
128 | { | 128 | { |
129 | int irq; | 129 | int irq; |
130 | 130 | ||
diff --git a/arch/arm/mach-ixp23xx/pci.c b/arch/arm/mach-ixp23xx/pci.c index ac7d43d23c28..227f808dc0ec 100644 --- a/arch/arm/mach-ixp23xx/pci.c +++ b/arch/arm/mach-ixp23xx/pci.c | |||
@@ -284,7 +284,7 @@ int ixp23xx_pci_setup(int nr, struct pci_sys_data *sys) | |||
284 | return 1; | 284 | return 1; |
285 | } | 285 | } |
286 | 286 | ||
287 | void ixp23xx_pci_slave_init(void) | 287 | void __init ixp23xx_pci_slave_init(void) |
288 | { | 288 | { |
289 | ixp23xx_pci_common_init(); | 289 | ixp23xx_pci_common_init(); |
290 | } | 290 | } |
diff --git a/arch/arm/mach-ixp23xx/roadrunner.c b/arch/arm/mach-ixp23xx/roadrunner.c index d06e21b70de5..e35644961aa4 100644 --- a/arch/arm/mach-ixp23xx/roadrunner.c +++ b/arch/arm/mach-ixp23xx/roadrunner.c | |||
@@ -110,7 +110,7 @@ static int __init roadrunner_map_irq(struct pci_dev *dev, u8 idsel, u8 pin) | |||
110 | return NO_IRQ; | 110 | return NO_IRQ; |
111 | } | 111 | } |
112 | 112 | ||
113 | static void roadrunner_pci_preinit(void) | 113 | static void __init roadrunner_pci_preinit(void) |
114 | { | 114 | { |
115 | set_irq_type(IRQ_ROADRUNNER_PCI_INTC, IRQT_LOW); | 115 | set_irq_type(IRQ_ROADRUNNER_PCI_INTC, IRQT_LOW); |
116 | set_irq_type(IRQ_ROADRUNNER_PCI_INTD, IRQT_LOW); | 116 | set_irq_type(IRQ_ROADRUNNER_PCI_INTD, IRQT_LOW); |
diff --git a/arch/arm/mach-ixp4xx/Kconfig b/arch/arm/mach-ixp4xx/Kconfig index 9715ef506c24..060909870b50 100644 --- a/arch/arm/mach-ixp4xx/Kconfig +++ b/arch/arm/mach-ixp4xx/Kconfig | |||
@@ -104,9 +104,6 @@ config MACH_DSMG600 | |||
104 | DSM-G600 RevA device. For more information on this platform, | 104 | DSM-G600 RevA device. For more information on this platform, |
105 | see http://www.nslu2-linux.org/wiki/DSMG600/HomePage | 105 | see http://www.nslu2-linux.org/wiki/DSMG600/HomePage |
106 | 106 | ||
107 | # | ||
108 | # Avila and IXDP share the same source for now. Will change in future | ||
109 | # | ||
110 | config ARCH_IXDP4XX | 107 | config ARCH_IXDP4XX |
111 | bool | 108 | bool |
112 | depends on ARCH_IXDP425 || MACH_IXDP465 || MACH_KIXRP435 | 109 | depends on ARCH_IXDP425 || MACH_IXDP465 || MACH_KIXRP435 |
diff --git a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c index 64685da1462d..8112f726ffa0 100644 --- a/arch/arm/mach-ixp4xx/common.c +++ b/arch/arm/mach-ixp4xx/common.c | |||
@@ -283,7 +283,7 @@ static struct irqaction ixp4xx_timer_irq = { | |||
283 | .handler = ixp4xx_timer_interrupt, | 283 | .handler = ixp4xx_timer_interrupt, |
284 | }; | 284 | }; |
285 | 285 | ||
286 | static void __init ixp4xx_timer_init(void) | 286 | void __init ixp4xx_timer_init(void) |
287 | { | 287 | { |
288 | /* Reset/disable counter */ | 288 | /* Reset/disable counter */ |
289 | *IXP4XX_OSRT1 = 0; | 289 | *IXP4XX_OSRT1 = 0; |
diff --git a/arch/arm/mach-ixp4xx/coyote-pci.c b/arch/arm/mach-ixp4xx/coyote-pci.c index 7bc94f3def1c..ad2e5b97966e 100644 --- a/arch/arm/mach-ixp4xx/coyote-pci.c +++ b/arch/arm/mach-ixp4xx/coyote-pci.c | |||
@@ -25,10 +25,6 @@ | |||
25 | 25 | ||
26 | #include <asm/mach/pci.h> | 26 | #include <asm/mach/pci.h> |
27 | 27 | ||
28 | extern void ixp4xx_pci_preinit(void); | ||
29 | extern int ixp4xx_setup(int nr, struct pci_sys_data *sys); | ||
30 | extern struct pci_bus *ixp4xx_scan_bus(int nr, struct pci_sys_data *sys); | ||
31 | |||
32 | void __init coyote_pci_preinit(void) | 28 | void __init coyote_pci_preinit(void) |
33 | { | 29 | { |
34 | set_irq_type(IRQ_COYOTE_PCI_SLOT0, IRQT_LOW); | 30 | set_irq_type(IRQ_COYOTE_PCI_SLOT0, IRQT_LOW); |
diff --git a/arch/arm/mach-ixp4xx/dsmg600-setup.c b/arch/arm/mach-ixp4xx/dsmg600-setup.c index 1caff65e22cc..1e75e105c4f7 100644 --- a/arch/arm/mach-ixp4xx/dsmg600-setup.c +++ b/arch/arm/mach-ixp4xx/dsmg600-setup.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <asm/mach-types.h> | 18 | #include <asm/mach-types.h> |
19 | #include <asm/mach/arch.h> | 19 | #include <asm/mach/arch.h> |
20 | #include <asm/mach/flash.h> | 20 | #include <asm/mach/flash.h> |
21 | #include <asm/mach/time.h> | ||
21 | 22 | ||
22 | static struct flash_platform_data dsmg600_flash_data = { | 23 | static struct flash_platform_data dsmg600_flash_data = { |
23 | .map_name = "cfi_probe", | 24 | .map_name = "cfi_probe", |
@@ -128,6 +129,19 @@ static void dsmg600_power_off(void) | |||
128 | gpio_line_set(DSMG600_PO_GPIO, IXP4XX_GPIO_HIGH); | 129 | gpio_line_set(DSMG600_PO_GPIO, IXP4XX_GPIO_HIGH); |
129 | } | 130 | } |
130 | 131 | ||
132 | static void __init dsmg600_timer_init(void) | ||
133 | { | ||
134 | /* The xtal on this machine is non-standard. */ | ||
135 | ixp4xx_timer_freq = DSMG600_FREQ; | ||
136 | |||
137 | /* Call standard timer_init function. */ | ||
138 | ixp4xx_timer_init(); | ||
139 | } | ||
140 | |||
141 | static struct sys_timer dsmg600_timer = { | ||
142 | .init = dsmg600_timer_init, | ||
143 | }; | ||
144 | |||
131 | static void __init dsmg600_init(void) | 145 | static void __init dsmg600_init(void) |
132 | { | 146 | { |
133 | ixp4xx_sys_init(); | 147 | ixp4xx_sys_init(); |
@@ -155,21 +169,13 @@ static void __init dsmg600_init(void) | |||
155 | #endif | 169 | #endif |
156 | } | 170 | } |
157 | 171 | ||
158 | static void __init dsmg600_fixup(struct machine_desc *desc, | ||
159 | struct tag *tags, char **cmdline, struct meminfo *mi) | ||
160 | { | ||
161 | /* The xtal on this machine is non-standard. */ | ||
162 | ixp4xx_timer_freq = DSMG600_FREQ; | ||
163 | } | ||
164 | |||
165 | MACHINE_START(DSMG600, "D-Link DSM-G600 RevA") | 172 | MACHINE_START(DSMG600, "D-Link DSM-G600 RevA") |
166 | /* Maintainer: www.nslu2-linux.org */ | 173 | /* Maintainer: www.nslu2-linux.org */ |
167 | .phys_io = IXP4XX_PERIPHERAL_BASE_PHYS, | 174 | .phys_io = IXP4XX_PERIPHERAL_BASE_PHYS, |
168 | .io_pg_offst = ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xFFFC, | 175 | .io_pg_offst = ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xFFFC, |
169 | .boot_params = 0x00000100, | 176 | .boot_params = 0x00000100, |
170 | .fixup = dsmg600_fixup, | ||
171 | .map_io = ixp4xx_map_io, | 177 | .map_io = ixp4xx_map_io, |
172 | .init_irq = ixp4xx_init_irq, | 178 | .init_irq = ixp4xx_init_irq, |
173 | .timer = &ixp4xx_timer, | 179 | .timer = &dsmg600_timer, |
174 | .init_machine = dsmg600_init, | 180 | .init_machine = dsmg600_init, |
175 | MACHINE_END | 181 | MACHINE_END |
diff --git a/arch/arm/mach-ixp4xx/gtwx5715-setup.c b/arch/arm/mach-ixp4xx/gtwx5715-setup.c index 30f1300e0e21..dc6725bda3c4 100644 --- a/arch/arm/mach-ixp4xx/gtwx5715-setup.c +++ b/arch/arm/mach-ixp4xx/gtwx5715-setup.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * arch/arm/mach-ixp4xx/gtwx5715-setup.c | 2 | * arch/arm/mach-ixp4xx/gtwx5715-setup.c |
3 | * | 3 | * |
4 | * Gemtek GTWX5715 (Linksys WRV54G) board settup | 4 | * Gemtek GTWX5715 (Linksys WRV54G) board setup |
5 | * | 5 | * |
6 | * Copyright (C) 2004 George T. Joseph | 6 | * Copyright (C) 2004 George T. Joseph |
7 | * Derived from Coyote | 7 | * Derived from Coyote |
diff --git a/arch/arm/mach-ixp4xx/ixdpg425-pci.c b/arch/arm/mach-ixp4xx/ixdpg425-pci.c index 509a95a692a4..d1e75b7dc3b1 100644 --- a/arch/arm/mach-ixp4xx/ixdpg425-pci.c +++ b/arch/arm/mach-ixp4xx/ixdpg425-pci.c | |||
@@ -23,10 +23,6 @@ | |||
23 | 23 | ||
24 | #include <asm/mach/pci.h> | 24 | #include <asm/mach/pci.h> |
25 | 25 | ||
26 | extern void ixp4xx_pci_preinit(void); | ||
27 | extern int ixp4xx_setup(int nr, struct pci_sys_data *sys); | ||
28 | extern struct pci_bus *ixp4xx_scan_bus(int nr, struct pci_sys_data *sys); | ||
29 | |||
30 | void __init ixdpg425_pci_preinit(void) | 26 | void __init ixdpg425_pci_preinit(void) |
31 | { | 27 | { |
32 | set_irq_type(IRQ_IXP4XX_GPIO6, IRQT_LOW); | 28 | set_irq_type(IRQ_IXP4XX_GPIO6, IRQT_LOW); |
diff --git a/arch/arm/mach-ixp4xx/nas100d-setup.c b/arch/arm/mach-ixp4xx/nas100d-setup.c index 9a31444d9214..78a17413ceca 100644 --- a/arch/arm/mach-ixp4xx/nas100d-setup.c +++ b/arch/arm/mach-ixp4xx/nas100d-setup.c | |||
@@ -155,7 +155,8 @@ static void __init nas100d_init(void) | |||
155 | 155 | ||
156 | pm_power_off = nas100d_power_off; | 156 | pm_power_off = nas100d_power_off; |
157 | 157 | ||
158 | /* This is only useful on a modified machine, but it is valuable | 158 | /* |
159 | * This is only useful on a modified machine, but it is valuable | ||
159 | * to have it first in order to see debug messages, and so that | 160 | * to have it first in order to see debug messages, and so that |
160 | * it does *not* get removed if platform_add_devices fails! | 161 | * it does *not* get removed if platform_add_devices fails! |
161 | */ | 162 | */ |
diff --git a/arch/arm/mach-ixp4xx/nslu2-setup.c b/arch/arm/mach-ixp4xx/nslu2-setup.c index 162c266e5f8f..9bf8ccbcaccf 100644 --- a/arch/arm/mach-ixp4xx/nslu2-setup.c +++ b/arch/arm/mach-ixp4xx/nslu2-setup.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <asm/mach-types.h> | 22 | #include <asm/mach-types.h> |
23 | #include <asm/mach/arch.h> | 23 | #include <asm/mach/arch.h> |
24 | #include <asm/mach/flash.h> | 24 | #include <asm/mach/flash.h> |
25 | #include <asm/mach/time.h> | ||
25 | 26 | ||
26 | static struct flash_platform_data nslu2_flash_data = { | 27 | static struct flash_platform_data nslu2_flash_data = { |
27 | .map_name = "cfi_probe", | 28 | .map_name = "cfi_probe", |
@@ -49,26 +50,26 @@ static struct ixp4xx_i2c_pins nslu2_i2c_gpio_pins = { | |||
49 | static struct resource nslu2_led_resources[] = { | 50 | static struct resource nslu2_led_resources[] = { |
50 | { | 51 | { |
51 | .name = "ready", /* green led */ | 52 | .name = "ready", /* green led */ |
52 | .start = NSLU2_LED_GRN, | 53 | .start = NSLU2_LED_GRN_GPIO, |
53 | .end = NSLU2_LED_GRN, | 54 | .end = NSLU2_LED_GRN_GPIO, |
54 | .flags = IXP4XX_GPIO_HIGH, | 55 | .flags = IXP4XX_GPIO_HIGH, |
55 | }, | 56 | }, |
56 | { | 57 | { |
57 | .name = "status", /* red led */ | 58 | .name = "status", /* red led */ |
58 | .start = NSLU2_LED_RED, | 59 | .start = NSLU2_LED_RED_GPIO, |
59 | .end = NSLU2_LED_RED, | 60 | .end = NSLU2_LED_RED_GPIO, |
60 | .flags = IXP4XX_GPIO_HIGH, | 61 | .flags = IXP4XX_GPIO_HIGH, |
61 | }, | 62 | }, |
62 | { | 63 | { |
63 | .name = "disk-1", | 64 | .name = "disk-1", |
64 | .start = NSLU2_LED_DISK1, | 65 | .start = NSLU2_LED_DISK1_GPIO, |
65 | .end = NSLU2_LED_DISK1, | 66 | .end = NSLU2_LED_DISK1_GPIO, |
66 | .flags = IXP4XX_GPIO_LOW, | 67 | .flags = IXP4XX_GPIO_LOW, |
67 | }, | 68 | }, |
68 | { | 69 | { |
69 | .name = "disk-2", | 70 | .name = "disk-2", |
70 | .start = NSLU2_LED_DISK2, | 71 | .start = NSLU2_LED_DISK2_GPIO, |
71 | .end = NSLU2_LED_DISK2, | 72 | .end = NSLU2_LED_DISK2_GPIO, |
72 | .flags = IXP4XX_GPIO_LOW, | 73 | .flags = IXP4XX_GPIO_LOW, |
73 | }, | 74 | }, |
74 | }; | 75 | }; |
@@ -157,10 +158,21 @@ static void nslu2_power_off(void) | |||
157 | gpio_line_set(NSLU2_PO_GPIO, IXP4XX_GPIO_HIGH); | 158 | gpio_line_set(NSLU2_PO_GPIO, IXP4XX_GPIO_HIGH); |
158 | } | 159 | } |
159 | 160 | ||
160 | static void __init nslu2_init(void) | 161 | static void __init nslu2_timer_init(void) |
161 | { | 162 | { |
162 | ixp4xx_timer_freq = NSLU2_FREQ; | 163 | /* The xtal on this machine is non-standard. */ |
164 | ixp4xx_timer_freq = NSLU2_FREQ; | ||
165 | |||
166 | /* Call standard timer_init function. */ | ||
167 | ixp4xx_timer_init(); | ||
168 | } | ||
163 | 169 | ||
170 | static struct sys_timer nslu2_timer = { | ||
171 | .init = nslu2_timer_init, | ||
172 | }; | ||
173 | |||
174 | static void __init nslu2_init(void) | ||
175 | { | ||
164 | ixp4xx_sys_init(); | 176 | ixp4xx_sys_init(); |
165 | 177 | ||
166 | nslu2_flash_resource.start = IXP4XX_EXP_BUS_BASE(0); | 178 | nslu2_flash_resource.start = IXP4XX_EXP_BUS_BASE(0); |
@@ -169,7 +181,8 @@ static void __init nslu2_init(void) | |||
169 | 181 | ||
170 | pm_power_off = nslu2_power_off; | 182 | pm_power_off = nslu2_power_off; |
171 | 183 | ||
172 | /* This is only useful on a modified machine, but it is valuable | 184 | /* |
185 | * This is only useful on a modified machine, but it is valuable | ||
173 | * to have it first in order to see debug messages, and so that | 186 | * to have it first in order to see debug messages, and so that |
174 | * it does *not* get removed if platform_add_devices fails! | 187 | * it does *not* get removed if platform_add_devices fails! |
175 | */ | 188 | */ |
@@ -185,6 +198,6 @@ MACHINE_START(NSLU2, "Linksys NSLU2") | |||
185 | .boot_params = 0x00000100, | 198 | .boot_params = 0x00000100, |
186 | .map_io = ixp4xx_map_io, | 199 | .map_io = ixp4xx_map_io, |
187 | .init_irq = ixp4xx_init_irq, | 200 | .init_irq = ixp4xx_init_irq, |
188 | .timer = &ixp4xx_timer, | 201 | .timer = &nslu2_timer, |
189 | .init_machine = nslu2_init, | 202 | .init_machine = nslu2_init, |
190 | MACHINE_END | 203 | MACHINE_END |
diff --git a/arch/arm/mach-lh7a40x/lcd-panel.h b/arch/arm/mach-lh7a40x/lcd-panel.h index 4fb2efc4950f..df6e38ed425b 100644 --- a/arch/arm/mach-lh7a40x/lcd-panel.h +++ b/arch/arm/mach-lh7a40x/lcd-panel.h | |||
@@ -126,7 +126,7 @@ static struct clcd_panel_extra lcd_panel_extra = { | |||
126 | 126 | ||
127 | */ | 127 | */ |
128 | 128 | ||
129 | /* The full horozontal cycle (Th) is clock/360/400/450. */ | 129 | /* The full horizontal cycle (Th) is clock/360/400/450. */ |
130 | /* The full vertical cycle (Tv) is line/251/262/280. */ | 130 | /* The full vertical cycle (Tv) is line/251/262/280. */ |
131 | 131 | ||
132 | #define PIX_CLOCK_TARGET (6300000) /* -/6.3/7 MHz */ | 132 | #define PIX_CLOCK_TARGET (6300000) /* -/6.3/7 MHz */ |
@@ -162,7 +162,7 @@ static struct clcd_panel lcd_panel = { | |||
162 | /* Logic Product Development LCD 6.4" VGA -10 */ | 162 | /* Logic Product Development LCD 6.4" VGA -10 */ |
163 | /* Sharp PN LQ64D343 */ | 163 | /* Sharp PN LQ64D343 */ |
164 | 164 | ||
165 | /* The full horozontal cycle (Th) is clock/750/800/900. */ | 165 | /* The full horizontal cycle (Th) is clock/750/800/900. */ |
166 | /* The full vertical cycle (Tv) is line/515/525/560. */ | 166 | /* The full vertical cycle (Tv) is line/515/525/560. */ |
167 | 167 | ||
168 | #define PIX_CLOCK_TARGET (28330000) | 168 | #define PIX_CLOCK_TARGET (28330000) |
@@ -243,7 +243,7 @@ static struct clcd_panel lcd_panel = { | |||
243 | * (fdisk, e2fsck). And, at that speed the display may have a visible | 243 | * (fdisk, e2fsck). And, at that speed the display may have a visible |
244 | * flicker. */ | 244 | * flicker. */ |
245 | 245 | ||
246 | /* The full horozontal cycle (Th) is clock/832/1056/1395. */ | 246 | /* The full horizontal cycle (Th) is clock/832/1056/1395. */ |
247 | 247 | ||
248 | #define PIX_CLOCK_TARGET (20000000) | 248 | #define PIX_CLOCK_TARGET (20000000) |
249 | #define PIX_CLOCK_DIVIDER CLOCK_TO_DIV (PIX_CLOCK_TARGET, HCLK) | 249 | #define PIX_CLOCK_DIVIDER CLOCK_TO_DIV (PIX_CLOCK_TARGET, HCLK) |
diff --git a/arch/arm/mach-ns9xxx/time.c b/arch/arm/mach-ns9xxx/time.c index dd257084441c..b97d0c54a388 100644 --- a/arch/arm/mach-ns9xxx/time.c +++ b/arch/arm/mach-ns9xxx/time.c | |||
@@ -35,7 +35,7 @@ static unsigned long ns9xxx_timer_gettimeoffset(void) | |||
35 | { | 35 | { |
36 | /* return the microseconds which have passed since the last interrupt | 36 | /* return the microseconds which have passed since the last interrupt |
37 | * was _serviced_. That is, if an interrupt is pending or the counter | 37 | * was _serviced_. That is, if an interrupt is pending or the counter |
38 | * reloads, return one periode more. */ | 38 | * reloads, return one period more. */ |
39 | 39 | ||
40 | u32 counter1 = SYS_TR(0); | 40 | u32 counter1 = SYS_TR(0); |
41 | int pending = SYS_ISR & (1 << IRQ_TIMER0); | 41 | int pending = SYS_ISR & (1 << IRQ_TIMER0); |
diff --git a/arch/arm/mach-omap1/Kconfig b/arch/arm/mach-omap1/Kconfig index 856c681ebbbc..f6ecdd3a2478 100644 --- a/arch/arm/mach-omap1/Kconfig +++ b/arch/arm/mach-omap1/Kconfig | |||
@@ -38,7 +38,7 @@ config MACH_OMAP_H2 | |||
38 | config MACH_OMAP_H3 | 38 | config MACH_OMAP_H3 |
39 | bool "TI H3 Support" | 39 | bool "TI H3 Support" |
40 | depends on ARCH_OMAP1 && ARCH_OMAP16XX | 40 | depends on ARCH_OMAP1 && ARCH_OMAP16XX |
41 | select GPIOEXPANDER_OMAP | 41 | # select GPIOEXPANDER_OMAP |
42 | help | 42 | help |
43 | TI OMAP 1710 H3 board support. Say Y here if you have such | 43 | TI OMAP 1710 H3 board support. Say Y here if you have such |
44 | a board. | 44 | a board. |
diff --git a/arch/arm/mach-omap1/board-osk.c b/arch/arm/mach-omap1/board-osk.c index 7d0cf7af88ce..e7130293a03f 100644 --- a/arch/arm/mach-omap1/board-osk.c +++ b/arch/arm/mach-omap1/board-osk.c | |||
@@ -385,7 +385,7 @@ static void __init osk_init(void) | |||
385 | /* Workaround for wrong CS3 (NOR flash) timing | 385 | /* Workaround for wrong CS3 (NOR flash) timing |
386 | * There are some U-Boot versions out there which configure | 386 | * There are some U-Boot versions out there which configure |
387 | * wrong CS3 memory timings. This mainly leads to CRC | 387 | * wrong CS3 memory timings. This mainly leads to CRC |
388 | * or similiar errors if you use NOR flash (e.g. with JFFS2) | 388 | * or similar errors if you use NOR flash (e.g. with JFFS2) |
389 | */ | 389 | */ |
390 | if (EMIFS_CCS(3) != EMIFS_CS3_VAL) | 390 | if (EMIFS_CCS(3) != EMIFS_CS3_VAL) |
391 | EMIFS_CCS(3) = EMIFS_CS3_VAL; | 391 | EMIFS_CCS(3) = EMIFS_CS3_VAL; |
diff --git a/arch/arm/mach-omap1/board-palmte.c b/arch/arm/mach-omap1/board-palmte.c index 4bc8a62909b9..015824185629 100644 --- a/arch/arm/mach-omap1/board-palmte.c +++ b/arch/arm/mach-omap1/board-palmte.c | |||
@@ -7,7 +7,7 @@ | |||
7 | * | 7 | * |
8 | * Original version : Laurent Gonzalez | 8 | * Original version : Laurent Gonzalez |
9 | * | 9 | * |
10 | * Maintainters : http://palmtelinux.sf.net | 10 | * Maintainers : http://palmtelinux.sf.net |
11 | * palmtelinux-developpers@lists.sf.net | 11 | * palmtelinux-developpers@lists.sf.net |
12 | * | 12 | * |
13 | * This program is free software; you can redistribute it and/or modify | 13 | * This program is free software; you can redistribute it and/or modify |
diff --git a/arch/arm/mach-omap1/pm.c b/arch/arm/mach-omap1/pm.c index 8caee68aa090..5bb348e2e315 100644 --- a/arch/arm/mach-omap1/pm.c +++ b/arch/arm/mach-omap1/pm.c | |||
@@ -438,7 +438,7 @@ void omap_pm_suspend(void) | |||
438 | omap_writew(0, ULPD_SOFT_DISABLE_REQ_REG); | 438 | omap_writew(0, ULPD_SOFT_DISABLE_REQ_REG); |
439 | 439 | ||
440 | /* | 440 | /* |
441 | * Reenable interrupts | 441 | * Re-enable interrupts |
442 | */ | 442 | */ |
443 | 443 | ||
444 | local_irq_enable(); | 444 | local_irq_enable(); |
diff --git a/arch/arm/mach-omap2/clock.c b/arch/arm/mach-omap2/clock.c index 5170481afeab..588adb5ab47f 100644 --- a/arch/arm/mach-omap2/clock.c +++ b/arch/arm/mach-omap2/clock.c | |||
@@ -443,7 +443,7 @@ static long omap2_clk_round_rate(struct clk *clk, unsigned long rate) | |||
443 | 443 | ||
444 | /* | 444 | /* |
445 | * Check the DLL lock state, and return tue if running in unlock mode. | 445 | * Check the DLL lock state, and return tue if running in unlock mode. |
446 | * This is needed to compenste for the shifted DLL value in unlock mode. | 446 | * This is needed to compensate for the shifted DLL value in unlock mode. |
447 | */ | 447 | */ |
448 | static u32 omap2_dll_force_needed(void) | 448 | static u32 omap2_dll_force_needed(void) |
449 | { | 449 | { |
diff --git a/arch/arm/mach-omap2/clock.h b/arch/arm/mach-omap2/clock.h index 162978fd5359..4f791866b910 100644 --- a/arch/arm/mach-omap2/clock.h +++ b/arch/arm/mach-omap2/clock.h | |||
@@ -338,7 +338,7 @@ struct prcm_config { | |||
338 | /* | 338 | /* |
339 | * These represent optimal values for common parts, it won't work for all. | 339 | * These represent optimal values for common parts, it won't work for all. |
340 | * As long as you scale down, most parameters are still work, they just | 340 | * As long as you scale down, most parameters are still work, they just |
341 | * become sub-optimal. The RFR value goes in the oppisite direction. If you | 341 | * become sub-optimal. The RFR value goes in the opposite direction. If you |
342 | * don't adjust it down as your clock period increases the refresh interval | 342 | * don't adjust it down as your clock period increases the refresh interval |
343 | * will not be met. Setting all parameters for complete worst case may work, | 343 | * will not be met. Setting all parameters for complete worst case may work, |
344 | * but may cut memory performance by 2x. Due to errata the DLLs need to be | 344 | * but may cut memory performance by 2x. Due to errata the DLLs need to be |
@@ -384,7 +384,7 @@ struct prcm_config { | |||
384 | * Filling in table based on H4 boards and 2430-SDPs variants available. | 384 | * Filling in table based on H4 boards and 2430-SDPs variants available. |
385 | * There are quite a few more rates combinations which could be defined. | 385 | * There are quite a few more rates combinations which could be defined. |
386 | * | 386 | * |
387 | * When multiple values are defiend the start up will try and choose the | 387 | * When multiple values are defined the start up will try and choose the |
388 | * fastest one. If a 'fast' value is defined, then automatically, the /2 | 388 | * fastest one. If a 'fast' value is defined, then automatically, the /2 |
389 | * one should be included as it can be used. Generally having more that | 389 | * one should be included as it can be used. Generally having more that |
390 | * one fast set does not make sense, as static timings need to be changed | 390 | * one fast set does not make sense, as static timings need to be changed |
diff --git a/arch/arm/mach-pxa/corgi_lcd.c b/arch/arm/mach-pxa/corgi_lcd.c index a72476c24621..365b9435f748 100644 --- a/arch/arm/mach-pxa/corgi_lcd.c +++ b/arch/arm/mach-pxa/corgi_lcd.c | |||
@@ -40,7 +40,7 @@ | |||
40 | #define PICTRL_ADRS 0x06 | 40 | #define PICTRL_ADRS 0x06 |
41 | #define POLCTRL_ADRS 0x07 | 41 | #define POLCTRL_ADRS 0x07 |
42 | 42 | ||
43 | /* Resgister Bit Definitions */ | 43 | /* Register Bit Definitions */ |
44 | #define RESCTL_QVGA 0x01 | 44 | #define RESCTL_QVGA 0x01 |
45 | #define RESCTL_VGA 0x00 | 45 | #define RESCTL_VGA 0x00 |
46 | 46 | ||
@@ -55,11 +55,11 @@ | |||
55 | #define POWER0_COM_DCLK 0x01 /* COM Voltage DC Bias DAC Serial Data Clock */ | 55 | #define POWER0_COM_DCLK 0x01 /* COM Voltage DC Bias DAC Serial Data Clock */ |
56 | #define POWER0_COM_DOUT 0x02 /* COM Voltage DC Bias DAC Serial Data Out */ | 56 | #define POWER0_COM_DOUT 0x02 /* COM Voltage DC Bias DAC Serial Data Out */ |
57 | #define POWER0_DAC_ON 0x04 /* DAC Power Supply ON */ | 57 | #define POWER0_DAC_ON 0x04 /* DAC Power Supply ON */ |
58 | #define POWER0_COM_ON 0x08 /* COM Powewr Supply ON */ | 58 | #define POWER0_COM_ON 0x08 /* COM Power Supply ON */ |
59 | #define POWER0_VCC5_ON 0x10 /* VCC5 Power Supply ON */ | 59 | #define POWER0_VCC5_ON 0x10 /* VCC5 Power Supply ON */ |
60 | 60 | ||
61 | #define POWER0_DAC_OFF 0x00 /* DAC Power Supply OFF */ | 61 | #define POWER0_DAC_OFF 0x00 /* DAC Power Supply OFF */ |
62 | #define POWER0_COM_OFF 0x00 /* COM Powewr Supply OFF */ | 62 | #define POWER0_COM_OFF 0x00 /* COM Power Supply OFF */ |
63 | #define POWER0_VCC5_OFF 0x00 /* VCC5 Power Supply OFF */ | 63 | #define POWER0_VCC5_OFF 0x00 /* VCC5 Power Supply OFF */ |
64 | 64 | ||
65 | #define PICTRL_INIT_STATE 0x01 | 65 | #define PICTRL_INIT_STATE 0x01 |
@@ -145,7 +145,7 @@ static void lcdtg_set_common_voltage(u8 base_data, u8 data) | |||
145 | lcdtg_i2c_send_stop(base_data); | 145 | lcdtg_i2c_send_stop(base_data); |
146 | } | 146 | } |
147 | 147 | ||
148 | /* Set Phase Adjuct */ | 148 | /* Set Phase Adjust */ |
149 | static void lcdtg_set_phadadj(int mode) | 149 | static void lcdtg_set_phadadj(int mode) |
150 | { | 150 | { |
151 | int adj; | 151 | int adj; |
@@ -226,7 +226,7 @@ static void lcdtg_hw_init(int mode) | |||
226 | /* Signals output enable */ | 226 | /* Signals output enable */ |
227 | corgi_ssp_lcdtg_send(PICTRL_ADRS, 0); | 227 | corgi_ssp_lcdtg_send(PICTRL_ADRS, 0); |
228 | 228 | ||
229 | /* Set Phase Adjuct */ | 229 | /* Set Phase Adjust */ |
230 | lcdtg_set_phadadj(mode); | 230 | lcdtg_set_phadadj(mode); |
231 | 231 | ||
232 | /* Initialize for Input Signals from ATI */ | 232 | /* Initialize for Input Signals from ATI */ |
diff --git a/arch/arm/mach-pxa/corgi_ssp.c b/arch/arm/mach-pxa/corgi_ssp.c index ff6b4ee037f5..40dea3d5142b 100644 --- a/arch/arm/mach-pxa/corgi_ssp.c +++ b/arch/arm/mach-pxa/corgi_ssp.c | |||
@@ -32,7 +32,7 @@ static struct corgissp_machinfo *ssp_machinfo; | |||
32 | * There are three devices connected to the SSP interface: | 32 | * There are three devices connected to the SSP interface: |
33 | * 1. A touchscreen controller (TI ADS7846 compatible) | 33 | * 1. A touchscreen controller (TI ADS7846 compatible) |
34 | * 2. An LCD contoller (with some Backlight functionality) | 34 | * 2. An LCD contoller (with some Backlight functionality) |
35 | * 3. A battery moinitoring IC (Maxim MAX1111) | 35 | * 3. A battery monitoring IC (Maxim MAX1111) |
36 | * | 36 | * |
37 | * Each device uses a different speed/mode of communication. | 37 | * Each device uses a different speed/mode of communication. |
38 | * | 38 | * |
diff --git a/arch/arm/mach-realview/localtimer.c b/arch/arm/mach-realview/localtimer.c index caf6b8bb6c95..c7bdf04ab094 100644 --- a/arch/arm/mach-realview/localtimer.c +++ b/arch/arm/mach-realview/localtimer.c | |||
@@ -30,7 +30,7 @@ static unsigned long mpcore_timer_rate; | |||
30 | /* | 30 | /* |
31 | * local_timer_ack: checks for a local timer interrupt. | 31 | * local_timer_ack: checks for a local timer interrupt. |
32 | * | 32 | * |
33 | * If a local timer interrupt has occured, acknowledge and return 1. | 33 | * If a local timer interrupt has occurred, acknowledge and return 1. |
34 | * Otherwise, return 0. | 34 | * Otherwise, return 0. |
35 | */ | 35 | */ |
36 | int local_timer_ack(void) | 36 | int local_timer_ack(void) |
diff --git a/arch/arm/mach-s3c2410/bast.h b/arch/arm/mach-s3c2410/bast.h deleted file mode 100644 index e98543742eb9..000000000000 --- a/arch/arm/mach-s3c2410/bast.h +++ /dev/null | |||
@@ -1,2 +0,0 @@ | |||
1 | /* linux/arch/arm/mach-s3c2410/bast.h | ||
2 | extern void bast_init_irq(void); | ||
diff --git a/arch/arm/mach-s3c2410/mach-amlm5900.c b/arch/arm/mach-s3c2410/mach-amlm5900.c index bc308ceb91c3..435adcce6482 100644 --- a/arch/arm/mach-s3c2410/mach-amlm5900.c +++ b/arch/arm/mach-s3c2410/mach-amlm5900.c | |||
@@ -160,7 +160,7 @@ static struct platform_device *amlm5900_devices[] __initdata = { | |||
160 | #endif | 160 | #endif |
161 | }; | 161 | }; |
162 | 162 | ||
163 | void __init amlm5900_map_io(void) | 163 | static void __init amlm5900_map_io(void) |
164 | { | 164 | { |
165 | s3c24xx_init_io(amlm5900_iodesc, ARRAY_SIZE(amlm5900_iodesc)); | 165 | s3c24xx_init_io(amlm5900_iodesc, ARRAY_SIZE(amlm5900_iodesc)); |
166 | s3c24xx_init_clocks(0); | 166 | s3c24xx_init_clocks(0); |
diff --git a/arch/arm/mach-s3c2410/mach-h1940.c b/arch/arm/mach-s3c2410/mach-h1940.c index 5ccd0be23a33..5c9bcea74767 100644 --- a/arch/arm/mach-s3c2410/mach-h1940.c +++ b/arch/arm/mach-s3c2410/mach-h1940.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/list.h> | 17 | #include <linux/list.h> |
18 | #include <linux/timer.h> | 18 | #include <linux/timer.h> |
19 | #include <linux/init.h> | 19 | #include <linux/init.h> |
20 | #include <linux/sysdev.h> | ||
20 | #include <linux/serial_core.h> | 21 | #include <linux/serial_core.h> |
21 | #include <linux/platform_device.h> | 22 | #include <linux/platform_device.h> |
22 | 23 | ||
diff --git a/arch/arm/mach-s3c2410/mach-qt2410.c b/arch/arm/mach-s3c2410/mach-qt2410.c index 9cc4253d7bbc..d86e6f18bac9 100644 --- a/arch/arm/mach-s3c2410/mach-qt2410.c +++ b/arch/arm/mach-s3c2410/mach-qt2410.c | |||
@@ -27,6 +27,7 @@ | |||
27 | #include <linux/list.h> | 27 | #include <linux/list.h> |
28 | #include <linux/timer.h> | 28 | #include <linux/timer.h> |
29 | #include <linux/init.h> | 29 | #include <linux/init.h> |
30 | #include <linux/sysdev.h> | ||
30 | #include <linux/platform_device.h> | 31 | #include <linux/platform_device.h> |
31 | #include <linux/serial_core.h> | 32 | #include <linux/serial_core.h> |
32 | #include <linux/spi/spi.h> | 33 | #include <linux/spi/spi.h> |
diff --git a/arch/arm/mach-s3c2412/dma.c b/arch/arm/mach-s3c2412/dma.c index d0f4695c09d9..668cccefe7b0 100644 --- a/arch/arm/mach-s3c2412/dma.c +++ b/arch/arm/mach-s3c2412/dma.c | |||
@@ -59,8 +59,8 @@ static struct s3c24xx_dma_map __initdata s3c2412_dma_mappings[] = { | |||
59 | [DMACH_SPI1] = { | 59 | [DMACH_SPI1] = { |
60 | .name = "spi1", | 60 | .name = "spi1", |
61 | .channels = MAP(S3C2412_DMAREQSEL_SPI1TX), | 61 | .channels = MAP(S3C2412_DMAREQSEL_SPI1TX), |
62 | .hw_addr.to = S3C2410_PA_SPI + 0x20 + S3C2410_SPTDAT, | 62 | .hw_addr.to = S3C2410_PA_SPI + S3C2412_SPI1 + S3C2410_SPTDAT, |
63 | .hw_addr.from = S3C2410_PA_SPI + 0x20 + S3C2410_SPRDAT, | 63 | .hw_addr.from = S3C2410_PA_SPI + S3C2412_SPI1 + S3C2410_SPRDAT, |
64 | }, | 64 | }, |
65 | [DMACH_UART0] = { | 65 | [DMACH_UART0] = { |
66 | .name = "uart0", | 66 | .name = "uart0", |
diff --git a/arch/arm/mach-s3c2412/s3c2412.c b/arch/arm/mach-s3c2412/s3c2412.c index aafe0bc593f1..782b5814ced2 100644 --- a/arch/arm/mach-s3c2412/s3c2412.c +++ b/arch/arm/mach-s3c2412/s3c2412.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/list.h> | 16 | #include <linux/list.h> |
17 | #include <linux/timer.h> | 17 | #include <linux/timer.h> |
18 | #include <linux/init.h> | 18 | #include <linux/init.h> |
19 | #include <linux/delay.h> | ||
19 | #include <linux/sysdev.h> | 20 | #include <linux/sysdev.h> |
20 | #include <linux/serial_core.h> | 21 | #include <linux/serial_core.h> |
21 | #include <linux/platform_device.h> | 22 | #include <linux/platform_device.h> |
@@ -29,6 +30,7 @@ | |||
29 | #include <asm/io.h> | 30 | #include <asm/io.h> |
30 | #include <asm/irq.h> | 31 | #include <asm/irq.h> |
31 | 32 | ||
33 | #include <asm/arch/reset.h> | ||
32 | #include <asm/arch/idle.h> | 34 | #include <asm/arch/idle.h> |
33 | 35 | ||
34 | #include <asm/arch/regs-clock.h> | 36 | #include <asm/arch/regs-clock.h> |
@@ -37,6 +39,8 @@ | |||
37 | #include <asm/arch/regs-gpio.h> | 39 | #include <asm/arch/regs-gpio.h> |
38 | #include <asm/arch/regs-gpioj.h> | 40 | #include <asm/arch/regs-gpioj.h> |
39 | #include <asm/arch/regs-dsc.h> | 41 | #include <asm/arch/regs-dsc.h> |
42 | #include <asm/arch/regs-spi.h> | ||
43 | #include <asm/arch/regs-s3c2412.h> | ||
40 | 44 | ||
41 | #include <asm/plat-s3c24xx/s3c2412.h> | 45 | #include <asm/plat-s3c24xx/s3c2412.h> |
42 | #include <asm/plat-s3c24xx/cpu.h> | 46 | #include <asm/plat-s3c24xx/cpu.h> |
@@ -74,6 +78,14 @@ void __init s3c2412_init_uarts(struct s3c2410_uartcfg *cfg, int no) | |||
74 | s3c_device_sdi.name = "s3c2412-sdi"; | 78 | s3c_device_sdi.name = "s3c2412-sdi"; |
75 | s3c_device_lcd.name = "s3c2412-lcd"; | 79 | s3c_device_lcd.name = "s3c2412-lcd"; |
76 | s3c_device_nand.name = "s3c2412-nand"; | 80 | s3c_device_nand.name = "s3c2412-nand"; |
81 | |||
82 | /* spi channel related changes, s3c2412/13 specific */ | ||
83 | s3c_device_spi0.name = "s3c2412-spi"; | ||
84 | s3c_device_spi0.resource[0].end = S3C24XX_PA_SPI + 0x24; | ||
85 | s3c_device_spi1.name = "s3c2412-spi"; | ||
86 | s3c_device_spi1.resource[0].start = S3C24XX_PA_SPI + S3C2412_SPI1; | ||
87 | s3c_device_spi1.resource[0].end = S3C24XX_PA_SPI + S3C2412_SPI1 + 0x24; | ||
88 | |||
77 | } | 89 | } |
78 | 90 | ||
79 | /* s3c2412_idle | 91 | /* s3c2412_idle |
@@ -97,6 +109,23 @@ static void s3c2412_idle(void) | |||
97 | cpu_do_idle(); | 109 | cpu_do_idle(); |
98 | } | 110 | } |
99 | 111 | ||
112 | static void s3c2412_hard_reset(void) | ||
113 | { | ||
114 | /* errata "Watch-dog/Software Reset Problem" specifies that | ||
115 | * this reset must be done with the SYSCLK sourced from | ||
116 | * EXTCLK instead of FOUT to avoid a glitch in the reset | ||
117 | * mechanism. | ||
118 | * | ||
119 | * See the watchdog section of the S3C2412 manual for more | ||
120 | * information on this fix. | ||
121 | */ | ||
122 | |||
123 | __raw_writel(0x00, S3C2412_CLKSRC); | ||
124 | __raw_writel(S3C2412_SWRST_RESET, S3C2412_SWRST); | ||
125 | |||
126 | mdelay(1); | ||
127 | } | ||
128 | |||
100 | /* s3c2412_map_io | 129 | /* s3c2412_map_io |
101 | * | 130 | * |
102 | * register the standard cpu IO areas, and any passed in from the | 131 | * register the standard cpu IO areas, and any passed in from the |
@@ -113,6 +142,10 @@ void __init s3c2412_map_io(struct map_desc *mach_desc, int mach_size) | |||
113 | 142 | ||
114 | s3c24xx_idle = s3c2412_idle; | 143 | s3c24xx_idle = s3c2412_idle; |
115 | 144 | ||
145 | /* set custom reset hook */ | ||
146 | |||
147 | s3c24xx_reset_hook = s3c2412_hard_reset; | ||
148 | |||
116 | /* register our io-tables */ | 149 | /* register our io-tables */ |
117 | 150 | ||
118 | iotable_init(s3c2412_iodesc, ARRAY_SIZE(s3c2412_iodesc)); | 151 | iotable_init(s3c2412_iodesc, ARRAY_SIZE(s3c2412_iodesc)); |
diff --git a/arch/arm/mach-s3c2440/mach-osiris.c b/arch/arm/mach-s3c2440/mach-osiris.c index 324f5a237921..4d6c7a574c1a 100644 --- a/arch/arm/mach-s3c2440/mach-osiris.c +++ b/arch/arm/mach-s3c2440/mach-osiris.c | |||
@@ -45,7 +45,7 @@ | |||
45 | #include <asm/plat-s3c24xx/devs.h> | 45 | #include <asm/plat-s3c24xx/devs.h> |
46 | #include <asm/plat-s3c24xx/cpu.h> | 46 | #include <asm/plat-s3c24xx/cpu.h> |
47 | 47 | ||
48 | /* onboard perihpheral map */ | 48 | /* onboard perihperal map */ |
49 | 49 | ||
50 | static struct map_desc osiris_iodesc[] __initdata = { | 50 | static struct map_desc osiris_iodesc[] __initdata = { |
51 | /* ISA IO areas (may be over-written later) */ | 51 | /* ISA IO areas (may be over-written later) */ |
diff --git a/arch/arm/mach-s3c2440/mach-rx3715.c b/arch/arm/mach-s3c2440/mach-rx3715.c index c3cc4bf158f6..866ff71c01dd 100644 --- a/arch/arm/mach-s3c2440/mach-rx3715.c +++ b/arch/arm/mach-s3c2440/mach-rx3715.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/init.h> | 19 | #include <linux/init.h> |
20 | #include <linux/tty.h> | 20 | #include <linux/tty.h> |
21 | #include <linux/console.h> | 21 | #include <linux/console.h> |
22 | #include <linux/sysdev.h> | ||
22 | #include <linux/platform_device.h> | 23 | #include <linux/platform_device.h> |
23 | #include <linux/serial_core.h> | 24 | #include <linux/serial_core.h> |
24 | #include <linux/serial.h> | 25 | #include <linux/serial.h> |
diff --git a/arch/arm/mach-s3c2443/clock.c b/arch/arm/mach-s3c2443/clock.c index 0b6e360aeae7..58402948c47c 100644 --- a/arch/arm/mach-s3c2443/clock.c +++ b/arch/arm/mach-s3c2443/clock.c | |||
@@ -394,7 +394,7 @@ static int s3c2443_setrate_usbhost(struct clk *clk, unsigned long rate) | |||
394 | return 0; | 394 | return 0; |
395 | } | 395 | } |
396 | 396 | ||
397 | struct clk clk_usb_bus_host = { | 397 | static struct clk clk_usb_bus_host = { |
398 | .name = "usb-bus-host-parent", | 398 | .name = "usb-bus-host-parent", |
399 | .id = -1, | 399 | .id = -1, |
400 | .parent = &clk_esysclk, | 400 | .parent = &clk_esysclk, |
@@ -747,6 +747,24 @@ static struct clk init_clocks[] = { | |||
747 | .enable = s3c2443_clkcon_enable_h, | 747 | .enable = s3c2443_clkcon_enable_h, |
748 | .ctrlbit = S3C2443_HCLKCON_USBD, | 748 | .ctrlbit = S3C2443_HCLKCON_USBD, |
749 | }, { | 749 | }, { |
750 | .name = "hsmmc", | ||
751 | .id = -1, | ||
752 | .parent = &clk_h, | ||
753 | .enable = s3c2443_clkcon_enable_h, | ||
754 | .ctrlbit = S3C2443_HCLKCON_HSMMC, | ||
755 | }, { | ||
756 | .name = "cfc", | ||
757 | .id = -1, | ||
758 | .parent = &clk_h, | ||
759 | .enable = s3c2443_clkcon_enable_h, | ||
760 | .ctrlbit = S3C2443_HCLKCON_CFC, | ||
761 | }, { | ||
762 | .name = "ssmc", | ||
763 | .id = -1, | ||
764 | .parent = &clk_h, | ||
765 | .enable = s3c2443_clkcon_enable_h, | ||
766 | .ctrlbit = S3C2443_HCLKCON_SSMC, | ||
767 | }, { | ||
750 | .name = "timers", | 768 | .name = "timers", |
751 | .id = -1, | 769 | .id = -1, |
752 | .parent = &clk_p, | 770 | .parent = &clk_p, |
@@ -791,7 +809,8 @@ static struct clk init_clocks[] = { | |||
791 | .name = "usb-bus-host", | 809 | .name = "usb-bus-host", |
792 | .id = -1, | 810 | .id = -1, |
793 | .parent = &clk_usb_bus_host, | 811 | .parent = &clk_usb_bus_host, |
794 | }, { .name = "ac97", | 812 | }, { |
813 | .name = "ac97", | ||
795 | .id = -1, | 814 | .id = -1, |
796 | .parent = &clk_p, | 815 | .parent = &clk_p, |
797 | .ctrlbit = S3C2443_PCLKCON_AC97, | 816 | .ctrlbit = S3C2443_PCLKCON_AC97, |
diff --git a/arch/arm/mach-s3c2443/mach-smdk2443.c b/arch/arm/mach-s3c2443/mach-smdk2443.c index b71ee53c2865..b1eb709ee65a 100644 --- a/arch/arm/mach-s3c2443/mach-smdk2443.c +++ b/arch/arm/mach-s3c2443/mach-smdk2443.c | |||
@@ -104,6 +104,7 @@ static struct s3c2410_uartcfg smdk2443_uartcfgs[] __initdata = { | |||
104 | static struct platform_device *smdk2443_devices[] __initdata = { | 104 | static struct platform_device *smdk2443_devices[] __initdata = { |
105 | &s3c_device_wdt, | 105 | &s3c_device_wdt, |
106 | &s3c_device_i2c, | 106 | &s3c_device_i2c, |
107 | &s3c_device_hsmmc, | ||
107 | }; | 108 | }; |
108 | 109 | ||
109 | static void __init smdk2443_map_io(void) | 110 | static void __init smdk2443_map_io(void) |
diff --git a/arch/arm/mach-s3c2443/s3c2443.c b/arch/arm/mach-s3c2443/s3c2443.c index 11b1d0b310c3..8d8117158d23 100644 --- a/arch/arm/mach-s3c2443/s3c2443.c +++ b/arch/arm/mach-s3c2443/s3c2443.c | |||
@@ -63,6 +63,10 @@ int __init s3c2443_init(void) | |||
63 | 63 | ||
64 | s3c_device_nand.name = "s3c2412-nand"; | 64 | s3c_device_nand.name = "s3c2412-nand"; |
65 | 65 | ||
66 | /* change WDT IRQ number */ | ||
67 | s3c_device_wdt.resource[1].start = IRQ_S3C2443_WDT; | ||
68 | s3c_device_wdt.resource[1].end = IRQ_S3C2443_WDT; | ||
69 | |||
66 | return sysdev_register(&s3c2443_sysdev); | 70 | return sysdev_register(&s3c2443_sysdev); |
67 | } | 71 | } |
68 | 72 | ||
diff --git a/arch/arm/mach-sa1100/neponset.c b/arch/arm/mach-sa1100/neponset.c index d7c038a0256b..4cbf9468f654 100644 --- a/arch/arm/mach-sa1100/neponset.c +++ b/arch/arm/mach-sa1100/neponset.c | |||
@@ -139,12 +139,12 @@ static u_int neponset_get_mctrl(struct uart_port *port) | |||
139 | return ret; | 139 | return ret; |
140 | } | 140 | } |
141 | 141 | ||
142 | static struct sa1100_port_fns neponset_port_fns __initdata = { | 142 | static struct sa1100_port_fns neponset_port_fns __devinitdata = { |
143 | .set_mctrl = neponset_set_mctrl, | 143 | .set_mctrl = neponset_set_mctrl, |
144 | .get_mctrl = neponset_get_mctrl, | 144 | .get_mctrl = neponset_get_mctrl, |
145 | }; | 145 | }; |
146 | 146 | ||
147 | static int neponset_probe(struct platform_device *dev) | 147 | static int __devinit neponset_probe(struct platform_device *dev) |
148 | { | 148 | { |
149 | sa1100_register_uart_fns(&neponset_port_fns); | 149 | sa1100_register_uart_fns(&neponset_port_fns); |
150 | 150 | ||
diff --git a/arch/arm/mach-sa1100/time.c b/arch/arm/mach-sa1100/time.c index 416e277054c2..29cb0c1604ab 100644 --- a/arch/arm/mach-sa1100/time.c +++ b/arch/arm/mach-sa1100/time.c | |||
@@ -25,7 +25,7 @@ static unsigned long __init sa1100_get_rtc_time(void) | |||
25 | { | 25 | { |
26 | /* | 26 | /* |
27 | * According to the manual we should be able to let RTTR be zero | 27 | * According to the manual we should be able to let RTTR be zero |
28 | * and then a default diviser for a 32.768KHz clock is used. | 28 | * and then a default divisor for a 32.768KHz clock is used. |
29 | * Apparently this doesn't work, at least for my SA1110 rev 5. | 29 | * Apparently this doesn't work, at least for my SA1110 rev 5. |
30 | * If the clock divider is uninitialized then reset it to the | 30 | * If the clock divider is uninitialized then reset it to the |
31 | * default value to get the 1Hz clock. | 31 | * default value to get the 1Hz clock. |
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index 15f0284010ca..e7904bc92c73 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig | |||
@@ -351,6 +351,7 @@ config CPU_V6 | |||
351 | select CPU_CACHE_V6 | 351 | select CPU_CACHE_V6 |
352 | select CPU_CACHE_VIPT | 352 | select CPU_CACHE_VIPT |
353 | select CPU_CP15_MMU | 353 | select CPU_CP15_MMU |
354 | select CPU_HAS_ASID | ||
354 | select CPU_COPY_V6 if MMU | 355 | select CPU_COPY_V6 if MMU |
355 | select CPU_TLB_V6 if MMU | 356 | select CPU_TLB_V6 if MMU |
356 | 357 | ||
@@ -376,8 +377,9 @@ config CPU_V7 | |||
376 | select CPU_CACHE_V7 | 377 | select CPU_CACHE_V7 |
377 | select CPU_CACHE_VIPT | 378 | select CPU_CACHE_VIPT |
378 | select CPU_CP15_MMU | 379 | select CPU_CP15_MMU |
380 | select CPU_HAS_ASID | ||
379 | select CPU_COPY_V6 if MMU | 381 | select CPU_COPY_V6 if MMU |
380 | select CPU_TLB_V6 if MMU | 382 | select CPU_TLB_V7 if MMU |
381 | 383 | ||
382 | # Figure out what processor architecture version we should be using. | 384 | # Figure out what processor architecture version we should be using. |
383 | # This defines the compiler instruction set which depends on the machine type. | 385 | # This defines the compiler instruction set which depends on the machine type. |
@@ -496,8 +498,17 @@ config CPU_TLB_V4WBI | |||
496 | config CPU_TLB_V6 | 498 | config CPU_TLB_V6 |
497 | bool | 499 | bool |
498 | 500 | ||
501 | config CPU_TLB_V7 | ||
502 | bool | ||
503 | |||
499 | endif | 504 | endif |
500 | 505 | ||
506 | config CPU_HAS_ASID | ||
507 | bool | ||
508 | help | ||
509 | This indicates whether the CPU has the ASID register; used to | ||
510 | tag TLB and possibly cache entries. | ||
511 | |||
501 | config CPU_CP15 | 512 | config CPU_CP15 |
502 | bool | 513 | bool |
503 | help | 514 | help |
diff --git a/arch/arm/mm/Makefile b/arch/arm/mm/Makefile index b5bd335ff14a..762702765fc3 100644 --- a/arch/arm/mm/Makefile +++ b/arch/arm/mm/Makefile | |||
@@ -46,6 +46,7 @@ obj-$(CONFIG_CPU_TLB_V4WT) += tlb-v4.o | |||
46 | obj-$(CONFIG_CPU_TLB_V4WB) += tlb-v4wb.o | 46 | obj-$(CONFIG_CPU_TLB_V4WB) += tlb-v4wb.o |
47 | obj-$(CONFIG_CPU_TLB_V4WBI) += tlb-v4wbi.o | 47 | obj-$(CONFIG_CPU_TLB_V4WBI) += tlb-v4wbi.o |
48 | obj-$(CONFIG_CPU_TLB_V6) += tlb-v6.o | 48 | obj-$(CONFIG_CPU_TLB_V6) += tlb-v6.o |
49 | obj-$(CONFIG_CPU_TLB_V7) += tlb-v7.o | ||
49 | 50 | ||
50 | obj-$(CONFIG_CPU_ARM610) += proc-arm6_7.o | 51 | obj-$(CONFIG_CPU_ARM610) += proc-arm6_7.o |
51 | obj-$(CONFIG_CPU_ARM710) += proc-arm6_7.o | 52 | obj-$(CONFIG_CPU_ARM710) += proc-arm6_7.o |
diff --git a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c index 19ca333240ec..36440c899583 100644 --- a/arch/arm/mm/alignment.c +++ b/arch/arm/mm/alignment.c | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * Copyright (C) 1995 Linus Torvalds | 4 | * Copyright (C) 1995 Linus Torvalds |
5 | * Modifications for ARM processor (c) 1995-2001 Russell King | 5 | * Modifications for ARM processor (c) 1995-2001 Russell King |
6 | * Thumb aligment fault fixups (c) 2004 MontaVista Software, Inc. | 6 | * Thumb alignment fault fixups (c) 2004 MontaVista Software, Inc. |
7 | * - Adapted from gdb/sim/arm/thumbemu.c -- Thumb instruction emulation. | 7 | * - Adapted from gdb/sim/arm/thumbemu.c -- Thumb instruction emulation. |
8 | * Copyright (C) 1996, Cygnus Software Technologies Ltd. | 8 | * Copyright (C) 1996, Cygnus Software Technologies Ltd. |
9 | * | 9 | * |
diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c index d6167ad4e011..f3ade18862aa 100644 --- a/arch/arm/mm/ioremap.c +++ b/arch/arm/mm/ioremap.c | |||
@@ -346,7 +346,7 @@ void __iounmap(volatile void __iomem *addr) | |||
346 | #ifndef CONFIG_SMP | 346 | #ifndef CONFIG_SMP |
347 | /* | 347 | /* |
348 | * If this is a section based mapping we need to handle it | 348 | * If this is a section based mapping we need to handle it |
349 | * specially as the VM subysystem does not know how to handle | 349 | * specially as the VM subsystem does not know how to handle |
350 | * such a beast. We need the lock here b/c we need to clear | 350 | * such a beast. We need the lock here b/c we need to clear |
351 | * all the mappings before the area can be reclaimed | 351 | * all the mappings before the area can be reclaimed |
352 | * by someone else. | 352 | * by someone else. |
diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c index 2c4c2422cd1e..2728b0e7d2bb 100644 --- a/arch/arm/mm/mmap.c +++ b/arch/arm/mm/mmap.c | |||
@@ -5,7 +5,7 @@ | |||
5 | #include <linux/mm.h> | 5 | #include <linux/mm.h> |
6 | #include <linux/mman.h> | 6 | #include <linux/mman.h> |
7 | #include <linux/shm.h> | 7 | #include <linux/shm.h> |
8 | 8 | #include <linux/sched.h> | |
9 | #include <asm/system.h> | 9 | #include <asm/system.h> |
10 | 10 | ||
11 | #define COLOUR_ALIGN(addr,pgoff) \ | 11 | #define COLOUR_ALIGN(addr,pgoff) \ |
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index 2ba1530d1ce1..02e050ae59f6 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c | |||
@@ -92,7 +92,7 @@ static struct cachepolicy cache_policies[] __initdata = { | |||
92 | }; | 92 | }; |
93 | 93 | ||
94 | /* | 94 | /* |
95 | * These are useful for identifing cache coherency | 95 | * These are useful for identifying cache coherency |
96 | * problems by allowing the cache or the cache and | 96 | * problems by allowing the cache or the cache and |
97 | * writebuffer to be turned off. (Note: the write | 97 | * writebuffer to be turned off. (Note: the write |
98 | * buffer should not be on and the cache off). | 98 | * buffer should not be on and the cache off). |
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S index dd823dd4a374..718f4782ee8b 100644 --- a/arch/arm/mm/proc-v7.S +++ b/arch/arm/mm/proc-v7.S | |||
@@ -256,7 +256,7 @@ __v7_proc_info: | |||
256 | .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP | 256 | .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP |
257 | .long cpu_v7_name | 257 | .long cpu_v7_name |
258 | .long v7_processor_functions | 258 | .long v7_processor_functions |
259 | .long v6wbi_tlb_fns | 259 | .long v7wbi_tlb_fns |
260 | .long v6_user_fns | 260 | .long v6_user_fns |
261 | .long v7_cache_fns | 261 | .long v7_cache_fns |
262 | .size __v7_proc_info, . - __v7_proc_info | 262 | .size __v7_proc_info, . - __v7_proc_info |
diff --git a/arch/arm/mm/tlb-v7.S b/arch/arm/mm/tlb-v7.S new file mode 100644 index 000000000000..b56dda8052f7 --- /dev/null +++ b/arch/arm/mm/tlb-v7.S | |||
@@ -0,0 +1,88 @@ | |||
1 | /* | ||
2 | * linux/arch/arm/mm/tlb-v7.S | ||
3 | * | ||
4 | * Copyright (C) 1997-2002 Russell King | ||
5 | * Modified for ARMv7 by Catalin Marinas | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License version 2 as | ||
9 | * published by the Free Software Foundation. | ||
10 | * | ||
11 | * ARM architecture version 6 TLB handling functions. | ||
12 | * These assume a split I/D TLB. | ||
13 | */ | ||
14 | #include <linux/linkage.h> | ||
15 | #include <asm/asm-offsets.h> | ||
16 | #include <asm/page.h> | ||
17 | #include <asm/tlbflush.h> | ||
18 | #include "proc-macros.S" | ||
19 | |||
20 | /* | ||
21 | * v7wbi_flush_user_tlb_range(start, end, vma) | ||
22 | * | ||
23 | * Invalidate a range of TLB entries in the specified address space. | ||
24 | * | ||
25 | * - start - start address (may not be aligned) | ||
26 | * - end - end address (exclusive, may not be aligned) | ||
27 | * - vma - vma_struct describing address range | ||
28 | * | ||
29 | * It is assumed that: | ||
30 | * - the "Invalidate single entry" instruction will invalidate | ||
31 | * both the I and the D TLBs on Harvard-style TLBs | ||
32 | */ | ||
33 | ENTRY(v7wbi_flush_user_tlb_range) | ||
34 | vma_vm_mm r3, r2 @ get vma->vm_mm | ||
35 | mmid r3, r3 @ get vm_mm->context.id | ||
36 | dsb | ||
37 | mov r0, r0, lsr #PAGE_SHIFT @ align address | ||
38 | mov r1, r1, lsr #PAGE_SHIFT | ||
39 | asid r3, r3 @ mask ASID | ||
40 | orr r0, r3, r0, lsl #PAGE_SHIFT @ Create initial MVA | ||
41 | mov r1, r1, lsl #PAGE_SHIFT | ||
42 | vma_vm_flags r2, r2 @ get vma->vm_flags | ||
43 | 1: | ||
44 | mcr p15, 0, r0, c8, c6, 1 @ TLB invalidate D MVA (was 1) | ||
45 | tst r2, #VM_EXEC @ Executable area ? | ||
46 | mcrne p15, 0, r0, c8, c5, 1 @ TLB invalidate I MVA (was 1) | ||
47 | add r0, r0, #PAGE_SZ | ||
48 | cmp r0, r1 | ||
49 | blo 1b | ||
50 | mov ip, #0 | ||
51 | mcr p15, 0, ip, c7, c5, 6 @ flush BTAC/BTB | ||
52 | dsb | ||
53 | mov pc, lr | ||
54 | |||
55 | /* | ||
56 | * v7wbi_flush_kern_tlb_range(start,end) | ||
57 | * | ||
58 | * Invalidate a range of kernel TLB entries | ||
59 | * | ||
60 | * - start - start address (may not be aligned) | ||
61 | * - end - end address (exclusive, may not be aligned) | ||
62 | */ | ||
63 | ENTRY(v7wbi_flush_kern_tlb_range) | ||
64 | dsb | ||
65 | mov r0, r0, lsr #PAGE_SHIFT @ align address | ||
66 | mov r1, r1, lsr #PAGE_SHIFT | ||
67 | mov r0, r0, lsl #PAGE_SHIFT | ||
68 | mov r1, r1, lsl #PAGE_SHIFT | ||
69 | 1: | ||
70 | mcr p15, 0, r0, c8, c6, 1 @ TLB invalidate D MVA | ||
71 | mcr p15, 0, r0, c8, c5, 1 @ TLB invalidate I MVA | ||
72 | add r0, r0, #PAGE_SZ | ||
73 | cmp r0, r1 | ||
74 | blo 1b | ||
75 | mov r2, #0 | ||
76 | mcr p15, 0, r2, c7, c5, 6 @ flush BTAC/BTB | ||
77 | dsb | ||
78 | isb | ||
79 | mov pc, lr | ||
80 | |||
81 | .section ".text.init", #alloc, #execinstr | ||
82 | |||
83 | .type v7wbi_tlb_fns, #object | ||
84 | ENTRY(v7wbi_tlb_fns) | ||
85 | .long v7wbi_flush_user_tlb_range | ||
86 | .long v7wbi_flush_kern_tlb_range | ||
87 | .long v6wbi_tlb_flags | ||
88 | .size v7wbi_tlb_fns, . - v7wbi_tlb_fns | ||
diff --git a/arch/arm/nwfpe/softfloat.h b/arch/arm/nwfpe/softfloat.h index 0a3067452cd2..260fe29d73f5 100644 --- a/arch/arm/nwfpe/softfloat.h +++ b/arch/arm/nwfpe/softfloat.h | |||
@@ -273,4 +273,7 @@ static inline flag float64_lt_nocheck(float64 a, float64 b) | |||
273 | extern flag float32_is_nan( float32 a ); | 273 | extern flag float32_is_nan( float32 a ); |
274 | extern flag float64_is_nan( float64 a ); | 274 | extern flag float64_is_nan( float64 a ); |
275 | 275 | ||
276 | extern int32 float64_to_uint32( struct roundingData *roundData, float64 a ); | ||
277 | extern int32 float64_to_uint32_round_to_zero( float64 a ); | ||
278 | |||
276 | #endif | 279 | #endif |
diff --git a/arch/arm/oprofile/op_model_mpcore.c b/arch/arm/oprofile/op_model_mpcore.c index 898500718249..7791da791f5f 100644 --- a/arch/arm/oprofile/op_model_mpcore.c +++ b/arch/arm/oprofile/op_model_mpcore.c | |||
@@ -257,8 +257,13 @@ static void em_stop(void) | |||
257 | */ | 257 | */ |
258 | static void em_route_irq(int irq, unsigned int cpu) | 258 | static void em_route_irq(int irq, unsigned int cpu) |
259 | { | 259 | { |
260 | irq_desc[irq].affinity = cpumask_of_cpu(cpu); | 260 | struct irq_desc *desc = irq_desc + irq; |
261 | irq_desc[irq].chip->set_affinity(irq, cpumask_of_cpu(cpu)); | 261 | cpumask_t mask = cpumask_of_cpu(cpu); |
262 | |||
263 | spin_lock_irq(&desc->lock); | ||
264 | desc->affinity = mask; | ||
265 | desc->chip->set_affinity(irq, mask); | ||
266 | spin_unlock_irq(&desc->lock); | ||
262 | } | 267 | } |
263 | 268 | ||
264 | static int em_setup(void) | 269 | static int em_setup(void) |
diff --git a/arch/arm/plat-iop/pci.c b/arch/arm/plat-iop/pci.c index e2744b7227c5..2b5aa1135b11 100644 --- a/arch/arm/plat-iop/pci.c +++ b/arch/arm/plat-iop/pci.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/ioport.h> | 19 | #include <linux/ioport.h> |
20 | #include <asm/io.h> | 20 | #include <asm/io.h> |
21 | #include <asm/irq.h> | 21 | #include <asm/irq.h> |
22 | #include <asm/signal.h> | ||
22 | #include <asm/system.h> | 23 | #include <asm/system.h> |
23 | #include <asm/hardware.h> | 24 | #include <asm/hardware.h> |
24 | #include <asm/mach/pci.h> | 25 | #include <asm/mach/pci.h> |
@@ -85,10 +86,10 @@ static int iop3xx_pci_status(void) | |||
85 | 86 | ||
86 | /* | 87 | /* |
87 | * Simply write the address register and read the configuration | 88 | * Simply write the address register and read the configuration |
88 | * data. Note that the 4 nop's ensure that we are able to handle | 89 | * data. Note that the 4 nops ensure that we are able to handle |
89 | * a delayed abort (in theory.) | 90 | * a delayed abort (in theory.) |
90 | */ | 91 | */ |
91 | static inline u32 iop3xx_read(unsigned long addr) | 92 | static u32 iop3xx_read(unsigned long addr) |
92 | { | 93 | { |
93 | u32 val; | 94 | u32 val; |
94 | 95 | ||
@@ -321,7 +322,7 @@ void __init iop3xx_atu_disable(void) | |||
321 | /* Flag to determine whether the ATU is initialized and the PCI bus scanned */ | 322 | /* Flag to determine whether the ATU is initialized and the PCI bus scanned */ |
322 | int init_atu; | 323 | int init_atu; |
323 | 324 | ||
324 | void iop3xx_pci_preinit(void) | 325 | void __init iop3xx_pci_preinit(void) |
325 | { | 326 | { |
326 | if (iop3xx_get_init_atu() == IOP3XX_INIT_ATU_ENABLE) { | 327 | if (iop3xx_get_init_atu() == IOP3XX_INIT_ATU_ENABLE) { |
327 | iop3xx_atu_disable(); | 328 | iop3xx_atu_disable(); |
diff --git a/arch/arm/plat-omap/common.c b/arch/arm/plat-omap/common.c index dd8708ad0a71..7987aa6e95f8 100644 --- a/arch/arm/plat-omap/common.c +++ b/arch/arm/plat-omap/common.c | |||
@@ -73,7 +73,7 @@ static const void *get_config(u16 tag, size_t len, int skip, size_t *len_out) | |||
73 | } | 73 | } |
74 | if (info != NULL) { | 74 | if (info != NULL) { |
75 | /* Check the length as a lame attempt to check for | 75 | /* Check the length as a lame attempt to check for |
76 | * binary inconsistancy. */ | 76 | * binary inconsistency. */ |
77 | if (len != NO_LENGTH_CHECK) { | 77 | if (len != NO_LENGTH_CHECK) { |
78 | /* Word-align len */ | 78 | /* Word-align len */ |
79 | if (len & 0x03) | 79 | if (len & 0x03) |
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c index 55a4d3be16b6..88d5b6d9f950 100644 --- a/arch/arm/plat-omap/dma.c +++ b/arch/arm/plat-omap/dma.c | |||
@@ -1172,7 +1172,7 @@ static void set_b1_regs(void) | |||
1172 | break; | 1172 | break; |
1173 | default: | 1173 | default: |
1174 | BUG(); | 1174 | BUG(); |
1175 | return; /* Supress warning about uninitialized vars */ | 1175 | return; /* Suppress warning about uninitialized vars */ |
1176 | } | 1176 | } |
1177 | 1177 | ||
1178 | if (omap_dma_in_1510_mode()) { | 1178 | if (omap_dma_in_1510_mode()) { |
diff --git a/arch/arm/plat-omap/sram.c b/arch/arm/plat-omap/sram.c index bc46f33aede3..1f23f0459e5f 100644 --- a/arch/arm/plat-omap/sram.c +++ b/arch/arm/plat-omap/sram.c | |||
@@ -59,8 +59,8 @@ extern unsigned long omapfb_reserve_sram(unsigned long sram_pstart, | |||
59 | 59 | ||
60 | /* | 60 | /* |
61 | * Depending on the target RAMFS firewall setup, the public usable amount of | 61 | * Depending on the target RAMFS firewall setup, the public usable amount of |
62 | * SRAM varies. The default accessable size for all device types is 2k. A GP | 62 | * SRAM varies. The default accessible size for all device types is 2k. A GP |
63 | * device allows ARM11 but not other initators for full size. This | 63 | * device allows ARM11 but not other initiators for full size. This |
64 | * functionality seems ok until some nice security API happens. | 64 | * functionality seems ok until some nice security API happens. |
65 | */ | 65 | */ |
66 | static int is_sram_locked(void) | 66 | static int is_sram_locked(void) |
@@ -71,7 +71,7 @@ static int is_sram_locked(void) | |||
71 | type = __raw_readl(VA_CONTROL_STAT) & TYPE_MASK; | 71 | type = __raw_readl(VA_CONTROL_STAT) & TYPE_MASK; |
72 | 72 | ||
73 | if (type == GP_DEVICE) { | 73 | if (type == GP_DEVICE) { |
74 | /* RAMFW: R/W access to all initators for all qualifier sets */ | 74 | /* RAMFW: R/W access to all initiators for all qualifier sets */ |
75 | if (cpu_is_omap242x()) { | 75 | if (cpu_is_omap242x()) { |
76 | __raw_writel(0xFF, VA_REQINFOPERM0); /* all q-vects */ | 76 | __raw_writel(0xFF, VA_REQINFOPERM0); /* all q-vects */ |
77 | __raw_writel(0xCFDE, VA_READPERM0); /* all i-read */ | 77 | __raw_writel(0xCFDE, VA_READPERM0); /* all i-read */ |
diff --git a/arch/arm/plat-omap/usb.c b/arch/arm/plat-omap/usb.c index 25489aafb113..a5aedf964b88 100644 --- a/arch/arm/plat-omap/usb.c +++ b/arch/arm/plat-omap/usb.c | |||
@@ -177,7 +177,7 @@ static u32 __init omap_usb0_init(unsigned nwires, unsigned is_device) | |||
177 | 177 | ||
178 | /* NOTE: SPEED and SUSP aren't configured here. OTG hosts | 178 | /* NOTE: SPEED and SUSP aren't configured here. OTG hosts |
179 | * may be able to use I2C requests to set those bits along | 179 | * may be able to use I2C requests to set those bits along |
180 | * with VBUS switching and overcurrent detction. | 180 | * with VBUS switching and overcurrent detection. |
181 | */ | 181 | */ |
182 | 182 | ||
183 | if (cpu_class_is_omap1() && nwires != 6) | 183 | if (cpu_class_is_omap1() && nwires != 6) |
diff --git a/arch/arm/plat-s3c24xx/common-smdk.c b/arch/arm/plat-s3c24xx/common-smdk.c index 908efa7d745f..7ed19b23ce56 100644 --- a/arch/arm/plat-s3c24xx/common-smdk.c +++ b/arch/arm/plat-s3c24xx/common-smdk.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/list.h> | 18 | #include <linux/list.h> |
19 | #include <linux/timer.h> | 19 | #include <linux/timer.h> |
20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
21 | #include <linux/sysdev.h> | ||
21 | #include <linux/platform_device.h> | 22 | #include <linux/platform_device.h> |
22 | 23 | ||
23 | #include <linux/mtd/mtd.h> | 24 | #include <linux/mtd/mtd.h> |
@@ -29,6 +30,7 @@ | |||
29 | #include <asm/mach/map.h> | 30 | #include <asm/mach/map.h> |
30 | #include <asm/mach/irq.h> | 31 | #include <asm/mach/irq.h> |
31 | 32 | ||
33 | #include <asm/mach-types.h> | ||
32 | #include <asm/hardware.h> | 34 | #include <asm/hardware.h> |
33 | #include <asm/io.h> | 35 | #include <asm/io.h> |
34 | #include <asm/irq.h> | 36 | #include <asm/irq.h> |
@@ -192,6 +194,9 @@ void __init smdk_machine_init(void) | |||
192 | s3c2410_gpio_setpin(S3C2410_GPF6, 1); | 194 | s3c2410_gpio_setpin(S3C2410_GPF6, 1); |
193 | s3c2410_gpio_setpin(S3C2410_GPF7, 1); | 195 | s3c2410_gpio_setpin(S3C2410_GPF7, 1); |
194 | 196 | ||
197 | if (machine_is_smdk2443()) | ||
198 | smdk_nand_info.twrph0 = 50; | ||
199 | |||
195 | s3c_device_nand.dev.platform_data = &smdk_nand_info; | 200 | s3c_device_nand.dev.platform_data = &smdk_nand_info; |
196 | 201 | ||
197 | platform_add_devices(smdk_devs, ARRAY_SIZE(smdk_devs)); | 202 | platform_add_devices(smdk_devs, ARRAY_SIZE(smdk_devs)); |
diff --git a/arch/arm/plat-s3c24xx/devs.c b/arch/arm/plat-s3c24xx/devs.c index 0fe53b39cb2f..5875da0ae0eb 100644 --- a/arch/arm/plat-s3c24xx/devs.c +++ b/arch/arm/plat-s3c24xx/devs.c | |||
@@ -33,6 +33,7 @@ | |||
33 | 33 | ||
34 | #include <asm/plat-s3c24xx/devs.h> | 34 | #include <asm/plat-s3c24xx/devs.h> |
35 | #include <asm/plat-s3c24xx/cpu.h> | 35 | #include <asm/plat-s3c24xx/cpu.h> |
36 | #include <asm/arch/regs-spi.h> | ||
36 | 37 | ||
37 | /* Serial port registrations */ | 38 | /* Serial port registrations */ |
38 | 39 | ||
@@ -402,6 +403,36 @@ struct platform_device s3c_device_sdi = { | |||
402 | 403 | ||
403 | EXPORT_SYMBOL(s3c_device_sdi); | 404 | EXPORT_SYMBOL(s3c_device_sdi); |
404 | 405 | ||
406 | /* High-speed MMC/SD */ | ||
407 | |||
408 | static struct resource s3c_hsmmc_resource[] = { | ||
409 | [0] = { | ||
410 | .start = S3C2443_PA_HSMMC, | ||
411 | .end = S3C2443_PA_HSMMC + S3C2443_SZ_HSMMC - 1, | ||
412 | .flags = IORESOURCE_MEM, | ||
413 | }, | ||
414 | [1] = { | ||
415 | .start = IRQ_S3C2443_HSMMC, | ||
416 | .end = IRQ_S3C2443_HSMMC, | ||
417 | .flags = IORESOURCE_IRQ, | ||
418 | } | ||
419 | }; | ||
420 | |||
421 | static u64 s3c_device_hsmmc_dmamask = 0xffffffffUL; | ||
422 | |||
423 | struct platform_device s3c_device_hsmmc = { | ||
424 | .name = "s3c-sdhci", | ||
425 | .id = -1, | ||
426 | .num_resources = ARRAY_SIZE(s3c_hsmmc_resource), | ||
427 | .resource = s3c_hsmmc_resource, | ||
428 | .dev = { | ||
429 | .dma_mask = &s3c_device_hsmmc_dmamask, | ||
430 | .coherent_dma_mask = 0xffffffffUL | ||
431 | } | ||
432 | }; | ||
433 | |||
434 | |||
435 | |||
405 | /* SPI (0) */ | 436 | /* SPI (0) */ |
406 | 437 | ||
407 | static struct resource s3c_spi0_resource[] = { | 438 | static struct resource s3c_spi0_resource[] = { |
@@ -437,8 +468,8 @@ EXPORT_SYMBOL(s3c_device_spi0); | |||
437 | 468 | ||
438 | static struct resource s3c_spi1_resource[] = { | 469 | static struct resource s3c_spi1_resource[] = { |
439 | [0] = { | 470 | [0] = { |
440 | .start = S3C24XX_PA_SPI + 0x20, | 471 | .start = S3C24XX_PA_SPI + S3C2410_SPI1, |
441 | .end = S3C24XX_PA_SPI + 0x20 + 0x1f, | 472 | .end = S3C24XX_PA_SPI + S3C2410_SPI1 + 0x1f, |
442 | .flags = IORESOURCE_MEM, | 473 | .flags = IORESOURCE_MEM, |
443 | }, | 474 | }, |
444 | [1] = { | 475 | [1] = { |
diff --git a/arch/arm/plat-s3c24xx/dma.c b/arch/arm/plat-s3c24xx/dma.c index 6f03c9370979..08d80f2f51f2 100644 --- a/arch/arm/plat-s3c24xx/dma.c +++ b/arch/arm/plat-s3c24xx/dma.c | |||
@@ -1153,7 +1153,7 @@ EXPORT_SYMBOL(s3c2410_dma_set_buffdone_fn); | |||
1153 | * | 1153 | * |
1154 | * hwcfg: the value for xxxSTCn register, | 1154 | * hwcfg: the value for xxxSTCn register, |
1155 | * bit 0: 0=increment pointer, 1=leave pointer | 1155 | * bit 0: 0=increment pointer, 1=leave pointer |
1156 | * bit 1: 0=soucre is AHB, 1=soucre is APB | 1156 | * bit 1: 0=source is AHB, 1=source is APB |
1157 | * | 1157 | * |
1158 | * devaddr: physical address of the source | 1158 | * devaddr: physical address of the source |
1159 | */ | 1159 | */ |
diff --git a/arch/arm/plat-s3c24xx/pm-simtec.c b/arch/arm/plat-s3c24xx/pm-simtec.c index bd965f2feeca..cb0b3a4ccf1b 100644 --- a/arch/arm/plat-s3c24xx/pm-simtec.c +++ b/arch/arm/plat-s3c24xx/pm-simtec.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/list.h> | 18 | #include <linux/list.h> |
19 | #include <linux/timer.h> | 19 | #include <linux/timer.h> |
20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
21 | #include <linux/sysdev.h> | ||
21 | #include <linux/device.h> | 22 | #include <linux/device.h> |
22 | 23 | ||
23 | #include <asm/mach/arch.h> | 24 | #include <asm/mach/arch.h> |
diff --git a/arch/arm/plat-s3c24xx/pm.c b/arch/arm/plat-s3c24xx/pm.c index c6b03f8ab260..5692eccdf4d1 100644 --- a/arch/arm/plat-s3c24xx/pm.c +++ b/arch/arm/plat-s3c24xx/pm.c | |||
@@ -555,7 +555,7 @@ static int s3c2410_pm_enter(suspend_state_t state) | |||
555 | __raw_writel(__raw_readl(S3C2410_INTPND), S3C2410_INTPND); | 555 | __raw_writel(__raw_readl(S3C2410_INTPND), S3C2410_INTPND); |
556 | __raw_writel(__raw_readl(S3C2410_SRCPND), S3C2410_SRCPND); | 556 | __raw_writel(__raw_readl(S3C2410_SRCPND), S3C2410_SRCPND); |
557 | 557 | ||
558 | /* call cpu specific preperation */ | 558 | /* call cpu specific preparation */ |
559 | 559 | ||
560 | pm_cpu_prep(); | 560 | pm_cpu_prep(); |
561 | 561 | ||
diff --git a/arch/arm26/kernel/vmlinux-arm26-xip.lds.in b/arch/arm26/kernel/vmlinux-arm26-xip.lds.in index 046a85054018..4ec715c25dea 100644 --- a/arch/arm26/kernel/vmlinux-arm26-xip.lds.in +++ b/arch/arm26/kernel/vmlinux-arm26-xip.lds.in | |||
@@ -64,7 +64,7 @@ SECTIONS | |||
64 | 64 | ||
65 | .text : { /* Real text segment */ | 65 | .text : { /* Real text segment */ |
66 | _text = .; /* Text and read-only data */ | 66 | _text = .; /* Text and read-only data */ |
67 | *(.text) | 67 | TEXT_TEXT |
68 | SCHED_TEXT | 68 | SCHED_TEXT |
69 | LOCK_TEXT /* FIXME - borrowed from arm32 - check*/ | 69 | LOCK_TEXT /* FIXME - borrowed from arm32 - check*/ |
70 | *(.fixup) | 70 | *(.fixup) |
@@ -111,7 +111,7 @@ SECTIONS | |||
111 | /* | 111 | /* |
112 | * and the usual data section | 112 | * and the usual data section |
113 | */ | 113 | */ |
114 | *(.data) | 114 | DATA_DATA |
115 | CONSTRUCTORS | 115 | CONSTRUCTORS |
116 | 116 | ||
117 | *(.init.data) | 117 | *(.init.data) |
diff --git a/arch/arm26/kernel/vmlinux-arm26.lds.in b/arch/arm26/kernel/vmlinux-arm26.lds.in index 1d2949e83be8..6c44f6a17bf7 100644 --- a/arch/arm26/kernel/vmlinux-arm26.lds.in +++ b/arch/arm26/kernel/vmlinux-arm26.lds.in | |||
@@ -65,7 +65,7 @@ SECTIONS | |||
65 | 65 | ||
66 | .text : { /* Real text segment */ | 66 | .text : { /* Real text segment */ |
67 | _text = .; /* Text and read-only data */ | 67 | _text = .; /* Text and read-only data */ |
68 | *(.text) | 68 | TEXT_TEXT |
69 | SCHED_TEXT | 69 | SCHED_TEXT |
70 | LOCK_TEXT | 70 | LOCK_TEXT |
71 | *(.fixup) | 71 | *(.fixup) |
@@ -106,7 +106,7 @@ SECTIONS | |||
106 | /* | 106 | /* |
107 | * and the usual data section | 107 | * and the usual data section |
108 | */ | 108 | */ |
109 | *(.data) | 109 | DATA_DATA |
110 | CONSTRUCTORS | 110 | CONSTRUCTORS |
111 | 111 | ||
112 | _edata = .; | 112 | _edata = .; |
diff --git a/arch/avr32/boards/atstk1000/atstk1000.h b/arch/avr32/boards/atstk1000/atstk1000.h new file mode 100644 index 000000000000..9a49ed036b72 --- /dev/null +++ b/arch/avr32/boards/atstk1000/atstk1000.h | |||
@@ -0,0 +1,15 @@ | |||
1 | /* | ||
2 | * ATSTK1000 setup code: Daughterboard interface | ||
3 | * | ||
4 | * Copyright (C) 2007 Atmel Corporation | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | #ifndef __ARCH_AVR32_BOARDS_ATSTK1000_ATSTK1000_H | ||
11 | #define __ARCH_AVR32_BOARDS_ATSTK1000_ATSTK1000_H | ||
12 | |||
13 | extern struct atmel_lcdfb_info atstk1000_lcdc_data; | ||
14 | |||
15 | #endif /* __ARCH_AVR32_BOARDS_ATSTK1000_ATSTK1000_H */ | ||
diff --git a/arch/avr32/boards/atstk1000/atstk1002.c b/arch/avr32/boards/atstk1000/atstk1002.c index abe6ca203fa7..fe1dbe2e28f4 100644 --- a/arch/avr32/boards/atstk1000/atstk1002.c +++ b/arch/avr32/boards/atstk1000/atstk1002.c | |||
@@ -16,6 +16,8 @@ | |||
16 | #include <linux/types.h> | 16 | #include <linux/types.h> |
17 | #include <linux/spi/spi.h> | 17 | #include <linux/spi/spi.h> |
18 | 18 | ||
19 | #include <video/atmel_lcdc.h> | ||
20 | |||
19 | #include <asm/io.h> | 21 | #include <asm/io.h> |
20 | #include <asm/setup.h> | 22 | #include <asm/setup.h> |
21 | #include <asm/arch/at32ap7000.h> | 23 | #include <asm/arch/at32ap7000.h> |
@@ -23,6 +25,7 @@ | |||
23 | #include <asm/arch/init.h> | 25 | #include <asm/arch/init.h> |
24 | #include <asm/arch/portmux.h> | 26 | #include <asm/arch/portmux.h> |
25 | 27 | ||
28 | #include "atstk1000.h" | ||
26 | 29 | ||
27 | #define SW2_DEFAULT /* MMCI and UART_A available */ | 30 | #define SW2_DEFAULT /* MMCI and UART_A available */ |
28 | 31 | ||
@@ -31,9 +34,7 @@ struct eth_addr { | |||
31 | }; | 34 | }; |
32 | 35 | ||
33 | static struct eth_addr __initdata hw_addr[2]; | 36 | static struct eth_addr __initdata hw_addr[2]; |
34 | |||
35 | static struct eth_platform_data __initdata eth_data[2]; | 37 | static struct eth_platform_data __initdata eth_data[2]; |
36 | static struct lcdc_platform_data atstk1000_fb0_data; | ||
37 | 38 | ||
38 | static struct spi_board_info spi0_board_info[] __initdata = { | 39 | static struct spi_board_info spi0_board_info[] __initdata = { |
39 | { | 40 | { |
@@ -148,9 +149,8 @@ static int __init atstk1002_init(void) | |||
148 | set_hw_addr(at32_add_device_eth(0, ð_data[0])); | 149 | set_hw_addr(at32_add_device_eth(0, ð_data[0])); |
149 | 150 | ||
150 | at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info)); | 151 | at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info)); |
151 | atstk1000_fb0_data.fbmem_start = fbmem_start; | 152 | at32_add_device_lcdc(0, &atstk1000_lcdc_data, |
152 | atstk1000_fb0_data.fbmem_size = fbmem_size; | 153 | fbmem_start, fbmem_size); |
153 | at32_add_device_lcdc(0, &atstk1000_fb0_data); | ||
154 | 154 | ||
155 | return 0; | 155 | return 0; |
156 | } | 156 | } |
diff --git a/arch/avr32/boards/atstk1000/setup.c b/arch/avr32/boards/atstk1000/setup.c index 2bc4b88d7edb..c9af409ada9a 100644 --- a/arch/avr32/boards/atstk1000/setup.c +++ b/arch/avr32/boards/atstk1000/setup.c | |||
@@ -8,13 +8,56 @@ | |||
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | #include <linux/bootmem.h> | 10 | #include <linux/bootmem.h> |
11 | #include <linux/fb.h> | ||
11 | #include <linux/init.h> | 12 | #include <linux/init.h> |
12 | #include <linux/types.h> | 13 | #include <linux/types.h> |
13 | #include <linux/linkage.h> | 14 | #include <linux/linkage.h> |
14 | 15 | ||
15 | #include <asm/setup.h> | 16 | #include <video/atmel_lcdc.h> |
16 | 17 | ||
18 | #include <asm/setup.h> | ||
17 | #include <asm/arch/board.h> | 19 | #include <asm/arch/board.h> |
18 | 20 | ||
21 | #include "atstk1000.h" | ||
22 | |||
19 | /* Initialized by bootloader-specific startup code. */ | 23 | /* Initialized by bootloader-specific startup code. */ |
20 | struct tag *bootloader_tags __initdata; | 24 | struct tag *bootloader_tags __initdata; |
25 | |||
26 | static struct fb_videomode __initdata ltv350qv_modes[] = { | ||
27 | { | ||
28 | .name = "320x240 @ 75", | ||
29 | .refresh = 75, | ||
30 | .xres = 320, .yres = 240, | ||
31 | .pixclock = KHZ2PICOS(6891), | ||
32 | |||
33 | .left_margin = 17, .right_margin = 33, | ||
34 | .upper_margin = 10, .lower_margin = 10, | ||
35 | .hsync_len = 16, .vsync_len = 1, | ||
36 | |||
37 | .sync = 0, | ||
38 | .vmode = FB_VMODE_NONINTERLACED, | ||
39 | }, | ||
40 | }; | ||
41 | |||
42 | static struct fb_monspecs __initdata atstk1000_default_monspecs = { | ||
43 | .manufacturer = "SNG", | ||
44 | .monitor = "LTV350QV", | ||
45 | .modedb = ltv350qv_modes, | ||
46 | .modedb_len = ARRAY_SIZE(ltv350qv_modes), | ||
47 | .hfmin = 14820, | ||
48 | .hfmax = 22230, | ||
49 | .vfmin = 60, | ||
50 | .vfmax = 90, | ||
51 | .dclkmax = 30000000, | ||
52 | }; | ||
53 | |||
54 | struct atmel_lcdfb_info __initdata atstk1000_lcdc_data = { | ||
55 | .default_bpp = 24, | ||
56 | .default_dmacon = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN, | ||
57 | .default_lcdcon2 = (ATMEL_LCDC_DISTYPE_TFT | ||
58 | | ATMEL_LCDC_INVCLK | ||
59 | | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE | ||
60 | | ATMEL_LCDC_MEMOR_BIG), | ||
61 | .default_monspecs = &atstk1000_default_monspecs, | ||
62 | .guard_time = 2, | ||
63 | }; | ||
diff --git a/arch/avr32/kernel/irq.c b/arch/avr32/kernel/irq.c index fd311248c143..61f2de266f62 100644 --- a/arch/avr32/kernel/irq.c +++ b/arch/avr32/kernel/irq.c | |||
@@ -7,15 +7,6 @@ | |||
7 | * This program is free software; you can redistribute it and/or modify | 7 | * This program is free software; you can redistribute it and/or modify |
8 | * it under the terms of the GNU General Public License version 2 as | 8 | * it under the terms of the GNU General Public License version 2 as |
9 | * published by the Free Software Foundation. | 9 | * published by the Free Software Foundation. |
10 | * | ||
11 | * This file contains the code used by various IRQ handling routines: | ||
12 | * asking for different IRQ's should be done through these routines | ||
13 | * instead of just grabbing them. Thus setups with different IRQ numbers | ||
14 | * shouldn't result in any weird surprises, and installing new handlers | ||
15 | * should be easier. | ||
16 | * | ||
17 | * IRQ's are in fact implemented a bit like signal handlers for the kernel. | ||
18 | * Naturally it's not a 1:1 relation, but there are similarities. | ||
19 | */ | 10 | */ |
20 | 11 | ||
21 | #include <linux/interrupt.h> | 12 | #include <linux/interrupt.h> |
diff --git a/arch/avr32/kernel/kprobes.c b/arch/avr32/kernel/kprobes.c index 004c94b6fc1d..4942ee662e0b 100644 --- a/arch/avr32/kernel/kprobes.c +++ b/arch/avr32/kernel/kprobes.c | |||
@@ -179,7 +179,7 @@ static int __kprobes post_kprobe_handler(struct pt_regs *regs) | |||
179 | return 1; | 179 | return 1; |
180 | } | 180 | } |
181 | 181 | ||
182 | static int __kprobes kprobe_fault_handler(struct pt_regs *regs, int trapnr) | 182 | int __kprobes kprobe_fault_handler(struct pt_regs *regs, int trapnr) |
183 | { | 183 | { |
184 | struct kprobe *cur = kprobe_running(); | 184 | struct kprobe *cur = kprobe_running(); |
185 | 185 | ||
@@ -216,11 +216,6 @@ int __kprobes kprobe_exceptions_notify(struct notifier_block *self, | |||
216 | if (post_kprobe_handler(args->regs)) | 216 | if (post_kprobe_handler(args->regs)) |
217 | ret = NOTIFY_STOP; | 217 | ret = NOTIFY_STOP; |
218 | break; | 218 | break; |
219 | case DIE_FAULT: | ||
220 | if (kprobe_running() | ||
221 | && kprobe_fault_handler(args->regs, args->trapnr)) | ||
222 | ret = NOTIFY_STOP; | ||
223 | break; | ||
224 | default: | 219 | default: |
225 | break; | 220 | break; |
226 | } | 221 | } |
diff --git a/arch/avr32/kernel/syscall_table.S b/arch/avr32/kernel/syscall_table.S index 07f6a6fa340d..75c81f2dd0b3 100644 --- a/arch/avr32/kernel/syscall_table.S +++ b/arch/avr32/kernel/syscall_table.S | |||
@@ -292,4 +292,7 @@ sys_call_table: | |||
292 | .long sys_shmdt | 292 | .long sys_shmdt |
293 | .long sys_shmctl | 293 | .long sys_shmctl |
294 | .long sys_utimensat | 294 | .long sys_utimensat |
295 | .long sys_signalfd | ||
296 | .long sys_timerfd /* 280 */ | ||
297 | .long sys_eventfd | ||
295 | .long sys_ni_syscall /* r8 is saturated at nr_syscalls */ | 298 | .long sys_ni_syscall /* r8 is saturated at nr_syscalls */ |
diff --git a/arch/avr32/kernel/vmlinux.lds.c b/arch/avr32/kernel/vmlinux.lds.c index e7f72c995a32..db0438f35c00 100644 --- a/arch/avr32/kernel/vmlinux.lds.c +++ b/arch/avr32/kernel/vmlinux.lds.c | |||
@@ -76,7 +76,7 @@ SECTIONS | |||
76 | . = 0x100; | 76 | . = 0x100; |
77 | *(.scall.text) | 77 | *(.scall.text) |
78 | *(.irq.text) | 78 | *(.irq.text) |
79 | *(.text) | 79 | TEXT_TEXT |
80 | SCHED_TEXT | 80 | SCHED_TEXT |
81 | LOCK_TEXT | 81 | LOCK_TEXT |
82 | KPROBES_TEXT | 82 | KPROBES_TEXT |
@@ -112,7 +112,7 @@ SECTIONS | |||
112 | 112 | ||
113 | /* And the rest... */ | 113 | /* And the rest... */ |
114 | *(.data.rel*) | 114 | *(.data.rel*) |
115 | *(.data) | 115 | DATA_DATA |
116 | CONSTRUCTORS | 116 | CONSTRUCTORS |
117 | 117 | ||
118 | _edata = .; | 118 | _edata = .; |
diff --git a/arch/avr32/mach-at32ap/at32ap7000.c b/arch/avr32/mach-at32ap/at32ap7000.c index 56db45b99a0f..1d2bf347a1d6 100644 --- a/arch/avr32/mach-at32ap/at32ap7000.c +++ b/arch/avr32/mach-at32ap/at32ap7000.c | |||
@@ -6,6 +6,7 @@ | |||
6 | * published by the Free Software Foundation. | 6 | * published by the Free Software Foundation. |
7 | */ | 7 | */ |
8 | #include <linux/clk.h> | 8 | #include <linux/clk.h> |
9 | #include <linux/fb.h> | ||
9 | #include <linux/init.h> | 10 | #include <linux/init.h> |
10 | #include <linux/platform_device.h> | 11 | #include <linux/platform_device.h> |
11 | #include <linux/spi/spi.h> | 12 | #include <linux/spi/spi.h> |
@@ -17,6 +18,8 @@ | |||
17 | #include <asm/arch/portmux.h> | 18 | #include <asm/arch/portmux.h> |
18 | #include <asm/arch/sm.h> | 19 | #include <asm/arch/sm.h> |
19 | 20 | ||
21 | #include <video/atmel_lcdc.h> | ||
22 | |||
20 | #include "clock.h" | 23 | #include "clock.h" |
21 | #include "hmatrix.h" | 24 | #include "hmatrix.h" |
22 | #include "pio.h" | 25 | #include "pio.h" |
@@ -881,20 +884,26 @@ at32_add_device_spi(unsigned int id, struct spi_board_info *b, unsigned int n) | |||
881 | /* -------------------------------------------------------------------- | 884 | /* -------------------------------------------------------------------- |
882 | * LCDC | 885 | * LCDC |
883 | * -------------------------------------------------------------------- */ | 886 | * -------------------------------------------------------------------- */ |
884 | static struct lcdc_platform_data lcdc0_data; | 887 | static struct atmel_lcdfb_info atmel_lcdfb0_data; |
885 | static struct resource lcdc0_resource[] = { | 888 | static struct resource atmel_lcdfb0_resource[] = { |
886 | { | 889 | { |
887 | .start = 0xff000000, | 890 | .start = 0xff000000, |
888 | .end = 0xff000fff, | 891 | .end = 0xff000fff, |
889 | .flags = IORESOURCE_MEM, | 892 | .flags = IORESOURCE_MEM, |
890 | }, | 893 | }, |
891 | IRQ(1), | 894 | IRQ(1), |
895 | { | ||
896 | /* Placeholder for pre-allocated fb memory */ | ||
897 | .start = 0x00000000, | ||
898 | .end = 0x00000000, | ||
899 | .flags = 0, | ||
900 | }, | ||
892 | }; | 901 | }; |
893 | DEFINE_DEV_DATA(lcdc, 0); | 902 | DEFINE_DEV_DATA(atmel_lcdfb, 0); |
894 | DEV_CLK(hclk, lcdc0, hsb, 7); | 903 | DEV_CLK(hck1, atmel_lcdfb0, hsb, 7); |
895 | static struct clk lcdc0_pixclk = { | 904 | static struct clk atmel_lcdfb0_pixclk = { |
896 | .name = "pixclk", | 905 | .name = "lcdc_clk", |
897 | .dev = &lcdc0_device.dev, | 906 | .dev = &atmel_lcdfb0_device.dev, |
898 | .mode = genclk_mode, | 907 | .mode = genclk_mode, |
899 | .get_rate = genclk_get_rate, | 908 | .get_rate = genclk_get_rate, |
900 | .set_rate = genclk_set_rate, | 909 | .set_rate = genclk_set_rate, |
@@ -903,13 +912,34 @@ static struct clk lcdc0_pixclk = { | |||
903 | }; | 912 | }; |
904 | 913 | ||
905 | struct platform_device *__init | 914 | struct platform_device *__init |
906 | at32_add_device_lcdc(unsigned int id, struct lcdc_platform_data *data) | 915 | at32_add_device_lcdc(unsigned int id, struct atmel_lcdfb_info *data, |
916 | unsigned long fbmem_start, unsigned long fbmem_len) | ||
907 | { | 917 | { |
908 | struct platform_device *pdev; | 918 | struct platform_device *pdev; |
919 | struct atmel_lcdfb_info *info; | ||
920 | struct fb_monspecs *monspecs; | ||
921 | struct fb_videomode *modedb; | ||
922 | unsigned int modedb_size; | ||
923 | |||
924 | /* | ||
925 | * Do a deep copy of the fb data, monspecs and modedb. Make | ||
926 | * sure all allocations are done before setting up the | ||
927 | * portmux. | ||
928 | */ | ||
929 | monspecs = kmemdup(data->default_monspecs, | ||
930 | sizeof(struct fb_monspecs), GFP_KERNEL); | ||
931 | if (!monspecs) | ||
932 | return NULL; | ||
933 | |||
934 | modedb_size = sizeof(struct fb_videomode) * monspecs->modedb_len; | ||
935 | modedb = kmemdup(monspecs->modedb, modedb_size, GFP_KERNEL); | ||
936 | if (!modedb) | ||
937 | goto err_dup_modedb; | ||
938 | monspecs->modedb = modedb; | ||
909 | 939 | ||
910 | switch (id) { | 940 | switch (id) { |
911 | case 0: | 941 | case 0: |
912 | pdev = &lcdc0_device; | 942 | pdev = &atmel_lcdfb0_device; |
913 | select_peripheral(PC(19), PERIPH_A, 0); /* CC */ | 943 | select_peripheral(PC(19), PERIPH_A, 0); /* CC */ |
914 | select_peripheral(PC(20), PERIPH_A, 0); /* HSYNC */ | 944 | select_peripheral(PC(20), PERIPH_A, 0); /* HSYNC */ |
915 | select_peripheral(PC(21), PERIPH_A, 0); /* PCLK */ | 945 | select_peripheral(PC(21), PERIPH_A, 0); /* PCLK */ |
@@ -942,19 +972,32 @@ at32_add_device_lcdc(unsigned int id, struct lcdc_platform_data *data) | |||
942 | select_peripheral(PD(16), PERIPH_A, 0); /* DATA22 */ | 972 | select_peripheral(PD(16), PERIPH_A, 0); /* DATA22 */ |
943 | select_peripheral(PD(17), PERIPH_A, 0); /* DATA23 */ | 973 | select_peripheral(PD(17), PERIPH_A, 0); /* DATA23 */ |
944 | 974 | ||
945 | clk_set_parent(&lcdc0_pixclk, &pll0); | 975 | clk_set_parent(&atmel_lcdfb0_pixclk, &pll0); |
946 | clk_set_rate(&lcdc0_pixclk, clk_get_rate(&pll0)); | 976 | clk_set_rate(&atmel_lcdfb0_pixclk, clk_get_rate(&pll0)); |
947 | break; | 977 | break; |
948 | 978 | ||
949 | default: | 979 | default: |
950 | return NULL; | 980 | goto err_invalid_id; |
951 | } | 981 | } |
952 | 982 | ||
953 | memcpy(pdev->dev.platform_data, data, | 983 | if (fbmem_len) { |
954 | sizeof(struct lcdc_platform_data)); | 984 | pdev->resource[2].start = fbmem_start; |
985 | pdev->resource[2].end = fbmem_start + fbmem_len - 1; | ||
986 | pdev->resource[2].flags = IORESOURCE_MEM; | ||
987 | } | ||
988 | |||
989 | info = pdev->dev.platform_data; | ||
990 | memcpy(info, data, sizeof(struct atmel_lcdfb_info)); | ||
991 | info->default_monspecs = monspecs; | ||
955 | 992 | ||
956 | platform_device_register(pdev); | 993 | platform_device_register(pdev); |
957 | return pdev; | 994 | return pdev; |
995 | |||
996 | err_invalid_id: | ||
997 | kfree(modedb); | ||
998 | err_dup_modedb: | ||
999 | kfree(monspecs); | ||
1000 | return NULL; | ||
958 | } | 1001 | } |
959 | 1002 | ||
960 | /* -------------------------------------------------------------------- | 1003 | /* -------------------------------------------------------------------- |
@@ -1037,8 +1080,8 @@ struct clk *at32_clock_list[] = { | |||
1037 | &macb1_pclk, | 1080 | &macb1_pclk, |
1038 | &atmel_spi0_spi_clk, | 1081 | &atmel_spi0_spi_clk, |
1039 | &atmel_spi1_spi_clk, | 1082 | &atmel_spi1_spi_clk, |
1040 | &lcdc0_hclk, | 1083 | &atmel_lcdfb0_hck1, |
1041 | &lcdc0_pixclk, | 1084 | &atmel_lcdfb0_pixclk, |
1042 | &gclk0, | 1085 | &gclk0, |
1043 | &gclk1, | 1086 | &gclk1, |
1044 | &gclk2, | 1087 | &gclk2, |
@@ -1077,7 +1120,7 @@ void __init at32_clock_init(void) | |||
1077 | genclk_init_parent(&gclk2); | 1120 | genclk_init_parent(&gclk2); |
1078 | genclk_init_parent(&gclk3); | 1121 | genclk_init_parent(&gclk3); |
1079 | genclk_init_parent(&gclk4); | 1122 | genclk_init_parent(&gclk4); |
1080 | genclk_init_parent(&lcdc0_pixclk); | 1123 | genclk_init_parent(&atmel_lcdfb0_pixclk); |
1081 | 1124 | ||
1082 | /* | 1125 | /* |
1083 | * Turn on all clocks that have at least one user already, and | 1126 | * Turn on all clocks that have at least one user already, and |
diff --git a/arch/avr32/mm/fault.c b/arch/avr32/mm/fault.c index 88b00b15970f..e011f1ce1875 100644 --- a/arch/avr32/mm/fault.c +++ b/arch/avr32/mm/fault.c | |||
@@ -12,41 +12,30 @@ | |||
12 | #include <linux/mm.h> | 12 | #include <linux/mm.h> |
13 | #include <linux/module.h> | 13 | #include <linux/module.h> |
14 | #include <linux/pagemap.h> | 14 | #include <linux/pagemap.h> |
15 | |||
16 | #include <linux/kdebug.h> | 15 | #include <linux/kdebug.h> |
16 | #include <linux/kprobes.h> | ||
17 | |||
17 | #include <asm/mmu_context.h> | 18 | #include <asm/mmu_context.h> |
18 | #include <asm/sysreg.h> | 19 | #include <asm/sysreg.h> |
19 | #include <asm/tlb.h> | 20 | #include <asm/tlb.h> |
20 | #include <asm/uaccess.h> | 21 | #include <asm/uaccess.h> |
21 | 22 | ||
22 | #ifdef CONFIG_KPROBES | 23 | #ifdef CONFIG_KPROBES |
23 | ATOMIC_NOTIFIER_HEAD(notify_page_fault_chain); | 24 | static inline int notify_page_fault(struct pt_regs *regs, int trap) |
24 | |||
25 | /* Hook to register for page fault notifications */ | ||
26 | int register_page_fault_notifier(struct notifier_block *nb) | ||
27 | { | 25 | { |
28 | return atomic_notifier_chain_register(¬ify_page_fault_chain, nb); | 26 | int ret = 0; |
29 | } | ||
30 | 27 | ||
31 | int unregister_page_fault_notifier(struct notifier_block *nb) | 28 | if (!user_mode(regs)) { |
32 | { | 29 | if (kprobe_running() && kprobe_fault_handler(regs, trap)) |
33 | return atomic_notifier_chain_unregister(¬ify_page_fault_chain, nb); | 30 | ret = 1; |
34 | } | 31 | } |
35 | 32 | ||
36 | static inline int notify_page_fault(enum die_val val, struct pt_regs *regs, | 33 | return ret; |
37 | int trap, int sig) | ||
38 | { | ||
39 | struct die_args args = { | ||
40 | .regs = regs, | ||
41 | .trapnr = trap, | ||
42 | }; | ||
43 | return atomic_notifier_call_chain(¬ify_page_fault_chain, val, &args); | ||
44 | } | 34 | } |
45 | #else | 35 | #else |
46 | static inline int notify_page_fault(enum die_val val, struct pt_regs *regs, | 36 | static inline int notify_page_fault(struct pt_regs *regs, int trap) |
47 | int trap, int sig) | ||
48 | { | 37 | { |
49 | return NOTIFY_DONE; | 38 | return 0; |
50 | } | 39 | } |
51 | #endif | 40 | #endif |
52 | 41 | ||
@@ -76,8 +65,7 @@ asmlinkage void do_page_fault(unsigned long ecr, struct pt_regs *regs) | |||
76 | long signr; | 65 | long signr; |
77 | int code; | 66 | int code; |
78 | 67 | ||
79 | if (notify_page_fault(DIE_PAGE_FAULT, regs, | 68 | if (notify_page_fault(regs, ecr)) |
80 | ecr, SIGSEGV) == NOTIFY_STOP) | ||
81 | return; | 69 | return; |
82 | 70 | ||
83 | address = sysreg_read(TLBEAR); | 71 | address = sysreg_read(TLBEAR); |
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig index 1a4930509325..b1b111bb2f3a 100644 --- a/arch/blackfin/Kconfig +++ b/arch/blackfin/Kconfig | |||
@@ -25,6 +25,10 @@ config BLACKFIN | |||
25 | bool | 25 | bool |
26 | default y | 26 | default y |
27 | 27 | ||
28 | config ZONE_DMA | ||
29 | bool | ||
30 | default y | ||
31 | |||
28 | config BFIN | 32 | config BFIN |
29 | bool | 33 | bool |
30 | default y | 34 | default y |
@@ -189,7 +193,7 @@ config BFIN537_BLUETECHNIX_CM | |||
189 | CM-BF537 support for EVAL- and DEV-Board. | 193 | CM-BF537 support for EVAL- and DEV-Board. |
190 | 194 | ||
191 | config BFIN561_BLUETECHNIX_CM | 195 | config BFIN561_BLUETECHNIX_CM |
192 | bool "BF561-CM" | 196 | bool "Bluetechnix CM-BF561" |
193 | depends on (BF561) | 197 | depends on (BF561) |
194 | help | 198 | help |
195 | CM-BF561 support for EVAL- and DEV-Board. | 199 | CM-BF561 support for EVAL- and DEV-Board. |
@@ -200,6 +204,12 @@ config BFIN561_EZKIT | |||
200 | help | 204 | help |
201 | BF561-EZKIT-LITE board Support. | 205 | BF561-EZKIT-LITE board Support. |
202 | 206 | ||
207 | config BFIN561_TEPLA | ||
208 | bool "BF561-TEPLA" | ||
209 | depends on (BF561) | ||
210 | help | ||
211 | BF561-TEPLA board Support. | ||
212 | |||
203 | config PNAV10 | 213 | config PNAV10 |
204 | bool "PNAV 1.0 board" | 214 | bool "PNAV 1.0 board" |
205 | depends on (BF537) | 215 | depends on (BF537) |
@@ -560,14 +570,6 @@ endchoice | |||
560 | 570 | ||
561 | source "mm/Kconfig" | 571 | source "mm/Kconfig" |
562 | 572 | ||
563 | config LARGE_ALLOCS | ||
564 | bool "Allow allocating large blocks (> 1MB) of memory" | ||
565 | help | ||
566 | Allow the slab memory allocator to keep chains for very large | ||
567 | memory sizes - upto 32MB. You may need this if your system has | ||
568 | a lot of RAM, and you need to able to allocate very large | ||
569 | contiguous chunks. If unsure, say N. | ||
570 | |||
571 | config BFIN_DMA_5XX | 573 | config BFIN_DMA_5XX |
572 | bool "Enable DMA Support" | 574 | bool "Enable DMA Support" |
573 | depends on (BF533 || BF532 || BF531 || BF537 || BF536 || BF534 || BF561) | 575 | depends on (BF533 || BF532 || BF531 || BF537 || BF536 || BF534 || BF561) |
diff --git a/arch/blackfin/Makefile b/arch/blackfin/Makefile index 52d4dbdb2b1a..75e89c324756 100644 --- a/arch/blackfin/Makefile +++ b/arch/blackfin/Makefile | |||
@@ -15,6 +15,7 @@ GZFLAGS := -9 | |||
15 | CFLAGS_MODULE += -mlong-calls | 15 | CFLAGS_MODULE += -mlong-calls |
16 | KALLSYMS += --symbol-prefix=_ | 16 | KALLSYMS += --symbol-prefix=_ |
17 | 17 | ||
18 | KBUILD_DEFCONFIG := BF537-STAMP_defconfig | ||
18 | 19 | ||
19 | # setup the machine name and the machine dependent settings | 20 | # setup the machine name and the machine dependent settings |
20 | machine-$(CONFIG_BF531) := bf533 | 21 | machine-$(CONFIG_BF531) := bf533 |
diff --git a/arch/blackfin/configs/BF533-EZKIT_defconfig b/arch/blackfin/configs/BF533-EZKIT_defconfig new file mode 100644 index 000000000000..377c8e05e4ab --- /dev/null +++ b/arch/blackfin/configs/BF533-EZKIT_defconfig | |||
@@ -0,0 +1,1014 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.19.3 | ||
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_BFIN=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_CALIBRATE_DELAY=y | ||
17 | CONFIG_UCLINUX=y | ||
18 | CONFIG_FORCE_MAX_ZONEORDER=14 | ||
19 | CONFIG_IRQCHIP_DEMUX_GPIO=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_POSIX_MQUEUE is not set | ||
37 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
38 | # CONFIG_TASKSTATS is not set | ||
39 | # CONFIG_UTS_NS is not set | ||
40 | # CONFIG_AUDIT is not set | ||
41 | # CONFIG_IKCONFIG is not set | ||
42 | # CONFIG_RELAY is not set | ||
43 | CONFIG_INITRAMFS_SOURCE="" | ||
44 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
45 | CONFIG_SYSCTL=y | ||
46 | CONFIG_EMBEDDED=y | ||
47 | CONFIG_UID16=y | ||
48 | CONFIG_SYSCTL_SYSCALL=y | ||
49 | CONFIG_KALLSYMS=y | ||
50 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
51 | CONFIG_HOTPLUG=y | ||
52 | CONFIG_PRINTK=y | ||
53 | CONFIG_BUG=y | ||
54 | CONFIG_ELF_CORE=y | ||
55 | CONFIG_BASE_FULL=y | ||
56 | CONFIG_FUTEX=y | ||
57 | CONFIG_EPOLL=y | ||
58 | CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3 | ||
59 | # CONFIG_LIMIT_PAGECACHE is not set | ||
60 | CONFIG_BUDDY=y | ||
61 | # CONFIG_NP2 is not set | ||
62 | CONFIG_SLAB=y | ||
63 | CONFIG_VM_EVENT_COUNTERS=y | ||
64 | CONFIG_RT_MUTEXES=y | ||
65 | CONFIG_TINY_SHMEM=y | ||
66 | CONFIG_BASE_SMALL=0 | ||
67 | # CONFIG_SLOB is not set | ||
68 | |||
69 | # | ||
70 | # Loadable module support | ||
71 | # | ||
72 | CONFIG_MODULES=y | ||
73 | CONFIG_MODULE_UNLOAD=y | ||
74 | # CONFIG_MODULE_FORCE_UNLOAD is not set | ||
75 | # CONFIG_MODVERSIONS is not set | ||
76 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
77 | CONFIG_KMOD=y | ||
78 | |||
79 | # | ||
80 | # Block layer | ||
81 | # | ||
82 | CONFIG_BLOCK=y | ||
83 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
84 | |||
85 | # | ||
86 | # IO Schedulers | ||
87 | # | ||
88 | CONFIG_IOSCHED_NOOP=y | ||
89 | CONFIG_IOSCHED_AS=y | ||
90 | # CONFIG_IOSCHED_DEADLINE is not set | ||
91 | CONFIG_IOSCHED_CFQ=y | ||
92 | CONFIG_DEFAULT_AS=y | ||
93 | # CONFIG_DEFAULT_DEADLINE is not set | ||
94 | # CONFIG_DEFAULT_CFQ is not set | ||
95 | # CONFIG_DEFAULT_NOOP is not set | ||
96 | CONFIG_DEFAULT_IOSCHED="anticipatory" | ||
97 | # CONFIG_PREEMPT_NONE is not set | ||
98 | CONFIG_PREEMPT_VOLUNTARY=y | ||
99 | # CONFIG_PREEMPT is not set | ||
100 | |||
101 | # | ||
102 | # Blackfin Processor Options | ||
103 | # | ||
104 | |||
105 | # | ||
106 | # Processor and Board Settings | ||
107 | # | ||
108 | # CONFIG_BF531 is not set | ||
109 | # CONFIG_BF532 is not set | ||
110 | CONFIG_BF533=y | ||
111 | # CONFIG_BF534 is not set | ||
112 | # CONFIG_BF535 is not set | ||
113 | # CONFIG_BF536 is not set | ||
114 | # CONFIG_BF537 is not set | ||
115 | # CONFIG_BF561 is not set | ||
116 | # CONFIG_BF_REV_0_2 is not set | ||
117 | CONFIG_BF_REV_0_3=y | ||
118 | # CONFIG_BF_REV_0_4 is not set | ||
119 | # CONFIG_BF_REV_0_5 is not set | ||
120 | CONFIG_BFIN_SINGLE_CORE=y | ||
121 | CONFIG_BFIN533_EZKIT=y | ||
122 | # CONFIG_BFIN533_STAMP is not set | ||
123 | # CONFIG_BFIN537_STAMP is not set | ||
124 | # CONFIG_BFIN533_BLUETECHNIX_CM is not set | ||
125 | # CONFIG_BFIN537_BLUETECHNIX_CM is not set | ||
126 | # CONFIG_BFIN561_BLUETECHNIX_CM is not set | ||
127 | # CONFIG_BFIN561_EZKIT is not set | ||
128 | # CONFIG_PNAV10 is not set | ||
129 | # CONFIG_GENERIC_BOARD is not set | ||
130 | CONFIG_MEM_MT48LC16M16A2TG_75=y | ||
131 | |||
132 | # | ||
133 | # BF533/2/1 Specific Configuration | ||
134 | # | ||
135 | |||
136 | # | ||
137 | # Interrupt Priority Assignment | ||
138 | # | ||
139 | |||
140 | # | ||
141 | # Priority | ||
142 | # | ||
143 | CONFIG_UART_ERROR=7 | ||
144 | CONFIG_SPORT0_ERROR=7 | ||
145 | CONFIG_SPI_ERROR=7 | ||
146 | CONFIG_SPORT1_ERROR=7 | ||
147 | CONFIG_PPI_ERROR=7 | ||
148 | CONFIG_DMA_ERROR=7 | ||
149 | CONFIG_PLLWAKE_ERROR=7 | ||
150 | CONFIG_RTC_ERROR=8 | ||
151 | CONFIG_DMA0_PPI=8 | ||
152 | CONFIG_DMA1_SPORT0RX=9 | ||
153 | CONFIG_DMA2_SPORT0TX=9 | ||
154 | CONFIG_DMA3_SPORT1RX=9 | ||
155 | CONFIG_DMA4_SPORT1TX=9 | ||
156 | CONFIG_DMA5_SPI=10 | ||
157 | CONFIG_DMA6_UARTRX=10 | ||
158 | CONFIG_DMA7_UARTTX=10 | ||
159 | CONFIG_TIMER0=11 | ||
160 | CONFIG_TIMER1=11 | ||
161 | CONFIG_TIMER2=11 | ||
162 | CONFIG_PFA=12 | ||
163 | CONFIG_PFB=12 | ||
164 | CONFIG_MEMDMA0=13 | ||
165 | CONFIG_MEMDMA1=13 | ||
166 | CONFIG_WDTIMER=13 | ||
167 | |||
168 | # | ||
169 | # Board customizations | ||
170 | # | ||
171 | |||
172 | # | ||
173 | # Board Setup | ||
174 | # | ||
175 | CONFIG_CLKIN_HZ=27000000 | ||
176 | CONFIG_MEM_SIZE=32 | ||
177 | CONFIG_MEM_ADD_WIDTH=9 | ||
178 | CONFIG_BOOT_LOAD=0x1000 | ||
179 | |||
180 | # | ||
181 | # Console UART Setup | ||
182 | # | ||
183 | # CONFIG_BAUD_9600 is not set | ||
184 | # CONFIG_BAUD_19200 is not set | ||
185 | # CONFIG_BAUD_38400 is not set | ||
186 | CONFIG_BAUD_57600=y | ||
187 | # CONFIG_BAUD_115200 is not set | ||
188 | CONFIG_BAUD_NO_PARITY=y | ||
189 | # CONFIG_BAUD_PARITY is not set | ||
190 | CONFIG_BAUD_1_STOPBIT=y | ||
191 | # CONFIG_BAUD_2_STOPBIT is not set | ||
192 | |||
193 | # | ||
194 | # Blackfin Kernel Optimizations | ||
195 | # | ||
196 | |||
197 | # | ||
198 | # Timer Tick | ||
199 | # | ||
200 | # CONFIG_HZ_100 is not set | ||
201 | CONFIG_HZ_250=y | ||
202 | # CONFIG_HZ_1000 is not set | ||
203 | CONFIG_HZ=250 | ||
204 | |||
205 | # | ||
206 | # Memory Optimizations | ||
207 | # | ||
208 | CONFIG_I_ENTRY_L1=y | ||
209 | CONFIG_EXCPT_IRQ_SYSC_L1=y | ||
210 | CONFIG_DO_IRQ_L1=y | ||
211 | CONFIG_CORE_TIMER_IRQ_L1=y | ||
212 | CONFIG_IDLE_L1=y | ||
213 | CONFIG_SCHEDULE_L1=y | ||
214 | CONFIG_ARITHMETIC_OPS_L1=y | ||
215 | CONFIG_ACCESS_OK_L1=y | ||
216 | CONFIG_MEMSET_L1=y | ||
217 | CONFIG_MEMCPY_L1=y | ||
218 | CONFIG_SYS_BFIN_SPINLOCK_L1=y | ||
219 | # CONFIG_IP_CHECKSUM_L1 is not set | ||
220 | # CONFIG_SYSCALL_TAB_L1 is not set | ||
221 | # CONFIG_CPLB_SWITCH_TAB_L1 is not set | ||
222 | CONFIG_RAMKERNEL=y | ||
223 | # CONFIG_ROMKERNEL is not set | ||
224 | CONFIG_SELECT_MEMORY_MODEL=y | ||
225 | CONFIG_FLATMEM_MANUAL=y | ||
226 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
227 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
228 | CONFIG_FLATMEM=y | ||
229 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
230 | # CONFIG_SPARSEMEM_STATIC is not set | ||
231 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
232 | # CONFIG_RESOURCES_64BIT is not set | ||
233 | CONFIG_LARGE_ALLOCS=y | ||
234 | CONFIG_BFIN_DMA_5XX=y | ||
235 | # CONFIG_DMA_UNCACHED_2M is not set | ||
236 | CONFIG_DMA_UNCACHED_1M=y | ||
237 | # CONFIG_DMA_UNCACHED_NONE is not set | ||
238 | |||
239 | # | ||
240 | # Cache Support | ||
241 | # | ||
242 | CONFIG_BLKFIN_CACHE=y | ||
243 | CONFIG_BLKFIN_DCACHE=y | ||
244 | # CONFIG_BLKFIN_DCACHE_BANKA is not set | ||
245 | # CONFIG_BLKFIN_CACHE_LOCK is not set | ||
246 | # CONFIG_BLKFIN_WB is not set | ||
247 | CONFIG_BLKFIN_WT=y | ||
248 | CONFIG_L1_MAX_PIECE=16 | ||
249 | |||
250 | # | ||
251 | # Clock Settings | ||
252 | # | ||
253 | # CONFIG_BFIN_KERNEL_CLOCK is not set | ||
254 | |||
255 | # | ||
256 | # Asynchonous Memory Configuration | ||
257 | # | ||
258 | |||
259 | # | ||
260 | # EBIU_AMBCTL Global Control | ||
261 | # | ||
262 | CONFIG_C_AMCKEN=y | ||
263 | CONFIG_C_CDPRIO=y | ||
264 | # CONFIG_C_AMBEN is not set | ||
265 | # CONFIG_C_AMBEN_B0 is not set | ||
266 | # CONFIG_C_AMBEN_B0_B1 is not set | ||
267 | # CONFIG_C_AMBEN_B0_B1_B2 is not set | ||
268 | CONFIG_C_AMBEN_ALL=y | ||
269 | |||
270 | # | ||
271 | # EBIU_AMBCTL Control | ||
272 | # | ||
273 | CONFIG_BANK_0=0x7BB0 | ||
274 | CONFIG_BANK_1=0x7BB0 | ||
275 | CONFIG_BANK_2=0x7BB0 | ||
276 | CONFIG_BANK_3=0x99B3 | ||
277 | |||
278 | # | ||
279 | # Bus options (PCI, PCMCIA, EISA, MCA, ISA) | ||
280 | # | ||
281 | # CONFIG_PCI is not set | ||
282 | |||
283 | # | ||
284 | # PCCARD (PCMCIA/CardBus) support | ||
285 | # | ||
286 | # CONFIG_PCCARD is not set | ||
287 | |||
288 | # | ||
289 | # PCI Hotplug Support | ||
290 | # | ||
291 | |||
292 | # | ||
293 | # Executable file formats | ||
294 | # | ||
295 | CONFIG_BINFMT_ELF_FDPIC=y | ||
296 | CONFIG_BINFMT_FLAT=y | ||
297 | CONFIG_BINFMT_ZFLAT=y | ||
298 | # CONFIG_BINFMT_SHARED_FLAT is not set | ||
299 | # CONFIG_BINFMT_MISC is not set | ||
300 | |||
301 | # | ||
302 | # Power management options | ||
303 | # | ||
304 | CONFIG_PM=y | ||
305 | CONFIG_PM_LEGACY=y | ||
306 | # CONFIG_PM_DEBUG is not set | ||
307 | # CONFIG_PM_SYSFS_DEPRECATED is not set | ||
308 | CONFIG_PM_WAKEUP_GPIO_BY_SIC_IWR=y | ||
309 | # CONFIG_PM_WAKEUP_BY_GPIO is not set | ||
310 | # CONFIG_PM_WAKEUP_GPIO_API is not set | ||
311 | CONFIG_PM_WAKEUP_SIC_IWR=0x100000 | ||
312 | |||
313 | # | ||
314 | # CPU Frequency scaling | ||
315 | # | ||
316 | # CONFIG_CPU_FREQ is not set | ||
317 | |||
318 | # | ||
319 | # Networking | ||
320 | # | ||
321 | CONFIG_NET=y | ||
322 | |||
323 | # | ||
324 | # Networking options | ||
325 | # | ||
326 | # CONFIG_NETDEBUG is not set | ||
327 | CONFIG_PACKET=y | ||
328 | # CONFIG_PACKET_MMAP is not set | ||
329 | CONFIG_UNIX=y | ||
330 | CONFIG_XFRM=y | ||
331 | # CONFIG_XFRM_USER is not set | ||
332 | # CONFIG_XFRM_SUB_POLICY is not set | ||
333 | # CONFIG_NET_KEY is not set | ||
334 | CONFIG_INET=y | ||
335 | # CONFIG_IP_MULTICAST is not set | ||
336 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
337 | CONFIG_IP_FIB_HASH=y | ||
338 | CONFIG_IP_PNP=y | ||
339 | # CONFIG_IP_PNP_DHCP is not set | ||
340 | # CONFIG_IP_PNP_BOOTP is not set | ||
341 | # CONFIG_IP_PNP_RARP is not set | ||
342 | # CONFIG_NET_IPIP is not set | ||
343 | # CONFIG_NET_IPGRE is not set | ||
344 | # CONFIG_ARPD is not set | ||
345 | CONFIG_SYN_COOKIES=y | ||
346 | # CONFIG_INET_AH is not set | ||
347 | # CONFIG_INET_ESP is not set | ||
348 | # CONFIG_INET_IPCOMP is not set | ||
349 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
350 | # CONFIG_INET_TUNNEL is not set | ||
351 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
352 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
353 | CONFIG_INET_XFRM_MODE_BEET=y | ||
354 | CONFIG_INET_DIAG=y | ||
355 | CONFIG_INET_TCP_DIAG=y | ||
356 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
357 | CONFIG_TCP_CONG_CUBIC=y | ||
358 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
359 | # CONFIG_IPV6 is not set | ||
360 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
361 | # CONFIG_INET6_TUNNEL is not set | ||
362 | # CONFIG_NETLABEL is not set | ||
363 | # CONFIG_NETWORK_SECMARK is not set | ||
364 | # CONFIG_NETFILTER is not set | ||
365 | |||
366 | # | ||
367 | # DCCP Configuration (EXPERIMENTAL) | ||
368 | # | ||
369 | # CONFIG_IP_DCCP is not set | ||
370 | |||
371 | # | ||
372 | # SCTP Configuration (EXPERIMENTAL) | ||
373 | # | ||
374 | # CONFIG_IP_SCTP is not set | ||
375 | |||
376 | # | ||
377 | # TIPC Configuration (EXPERIMENTAL) | ||
378 | # | ||
379 | # CONFIG_TIPC is not set | ||
380 | # CONFIG_ATM is not set | ||
381 | # CONFIG_BRIDGE is not set | ||
382 | # CONFIG_VLAN_8021Q is not set | ||
383 | # CONFIG_DECNET is not set | ||
384 | # CONFIG_LLC2 is not set | ||
385 | # CONFIG_IPX is not set | ||
386 | # CONFIG_ATALK is not set | ||
387 | # CONFIG_X25 is not set | ||
388 | # CONFIG_LAPB is not set | ||
389 | # CONFIG_ECONET is not set | ||
390 | # CONFIG_WAN_ROUTER is not set | ||
391 | |||
392 | # | ||
393 | # QoS and/or fair queueing | ||
394 | # | ||
395 | # CONFIG_NET_SCHED is not set | ||
396 | |||
397 | # | ||
398 | # Network testing | ||
399 | # | ||
400 | # CONFIG_NET_PKTGEN is not set | ||
401 | # CONFIG_HAMRADIO is not set | ||
402 | # CONFIG_IRDA is not set | ||
403 | # CONFIG_BT is not set | ||
404 | # CONFIG_IEEE80211 is not set | ||
405 | |||
406 | # | ||
407 | # Device Drivers | ||
408 | # | ||
409 | |||
410 | # | ||
411 | # Generic Driver Options | ||
412 | # | ||
413 | CONFIG_STANDALONE=y | ||
414 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
415 | # CONFIG_FW_LOADER is not set | ||
416 | # CONFIG_SYS_HYPERVISOR is not set | ||
417 | |||
418 | # | ||
419 | # Connector - unified userspace <-> kernelspace linker | ||
420 | # | ||
421 | # CONFIG_CONNECTOR is not set | ||
422 | |||
423 | # | ||
424 | # Memory Technology Devices (MTD) | ||
425 | # | ||
426 | CONFIG_MTD=y | ||
427 | # CONFIG_MTD_DEBUG is not set | ||
428 | # CONFIG_MTD_CONCAT is not set | ||
429 | CONFIG_MTD_PARTITIONS=y | ||
430 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
431 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
432 | |||
433 | # | ||
434 | # User Modules And Translation Layers | ||
435 | # | ||
436 | CONFIG_MTD_CHAR=m | ||
437 | CONFIG_MTD_BLOCK=y | ||
438 | # CONFIG_FTL is not set | ||
439 | # CONFIG_NFTL is not set | ||
440 | # CONFIG_INFTL is not set | ||
441 | # CONFIG_RFD_FTL is not set | ||
442 | # CONFIG_SSFDC is not set | ||
443 | |||
444 | # | ||
445 | # RAM/ROM/Flash chip drivers | ||
446 | # | ||
447 | # CONFIG_MTD_CFI is not set | ||
448 | CONFIG_MTD_JEDECPROBE=m | ||
449 | CONFIG_MTD_GEN_PROBE=m | ||
450 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
451 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
452 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
453 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
454 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
455 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
456 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
457 | CONFIG_MTD_CFI_I1=y | ||
458 | CONFIG_MTD_CFI_I2=y | ||
459 | # CONFIG_MTD_CFI_I4 is not set | ||
460 | # CONFIG_MTD_CFI_I8 is not set | ||
461 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
462 | # CONFIG_MTD_CFI_AMDSTD is not set | ||
463 | # CONFIG_MTD_CFI_STAA is not set | ||
464 | CONFIG_MTD_MW320D=m | ||
465 | CONFIG_MTD_RAM=y | ||
466 | CONFIG_MTD_ROM=m | ||
467 | # CONFIG_MTD_ABSENT is not set | ||
468 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
469 | |||
470 | # | ||
471 | # Mapping drivers for chip access | ||
472 | # | ||
473 | CONFIG_MTD_COMPLEX_MAPPINGS=y | ||
474 | # CONFIG_MTD_PHYSMAP is not set | ||
475 | CONFIG_MTD_BF5xx=m | ||
476 | CONFIG_BFIN_FLASH_SIZE=0x400000 | ||
477 | CONFIG_EBIU_FLASH_BASE=0x20000000 | ||
478 | |||
479 | # | ||
480 | # FLASH_EBIU_AMBCTL Control | ||
481 | # | ||
482 | CONFIG_BFIN_FLASH_BANK_0=0x7BB0 | ||
483 | CONFIG_BFIN_FLASH_BANK_1=0x7BB0 | ||
484 | CONFIG_BFIN_FLASH_BANK_2=0x7BB0 | ||
485 | CONFIG_BFIN_FLASH_BANK_3=0x7BB0 | ||
486 | # CONFIG_MTD_UCLINUX is not set | ||
487 | # CONFIG_MTD_PLATRAM is not set | ||
488 | |||
489 | # | ||
490 | # Self-contained MTD device drivers | ||
491 | # | ||
492 | # CONFIG_MTD_SLRAM is not set | ||
493 | # CONFIG_MTD_PHRAM is not set | ||
494 | # CONFIG_MTD_MTDRAM is not set | ||
495 | # CONFIG_MTD_BLOCK2MTD is not set | ||
496 | |||
497 | # | ||
498 | # Disk-On-Chip Device Drivers | ||
499 | # | ||
500 | # CONFIG_MTD_DOC2000 is not set | ||
501 | # CONFIG_MTD_DOC2001 is not set | ||
502 | # CONFIG_MTD_DOC2001PLUS is not set | ||
503 | |||
504 | # | ||
505 | # NAND Flash Device Drivers | ||
506 | # | ||
507 | # CONFIG_MTD_NAND is not set | ||
508 | |||
509 | # | ||
510 | # OneNAND Flash Device Drivers | ||
511 | # | ||
512 | # CONFIG_MTD_ONENAND is not set | ||
513 | |||
514 | # | ||
515 | # Parallel port support | ||
516 | # | ||
517 | # CONFIG_PARPORT is not set | ||
518 | |||
519 | # | ||
520 | # Plug and Play support | ||
521 | # | ||
522 | |||
523 | # | ||
524 | # Block devices | ||
525 | # | ||
526 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
527 | # CONFIG_BLK_DEV_LOOP is not set | ||
528 | # CONFIG_BLK_DEV_NBD is not set | ||
529 | CONFIG_BLK_DEV_RAM=y | ||
530 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
531 | CONFIG_BLK_DEV_RAM_SIZE=4096 | ||
532 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | ||
533 | # CONFIG_BLK_DEV_INITRD is not set | ||
534 | # CONFIG_CDROM_PKTCDVD is not set | ||
535 | # CONFIG_ATA_OVER_ETH is not set | ||
536 | |||
537 | # | ||
538 | # Misc devices | ||
539 | # | ||
540 | # CONFIG_TIFM_CORE is not set | ||
541 | |||
542 | # | ||
543 | # ATA/ATAPI/MFM/RLL support | ||
544 | # | ||
545 | # CONFIG_IDE is not set | ||
546 | |||
547 | # | ||
548 | # SCSI device support | ||
549 | # | ||
550 | # CONFIG_RAID_ATTRS is not set | ||
551 | # CONFIG_SCSI is not set | ||
552 | # CONFIG_SCSI_NETLINK is not set | ||
553 | |||
554 | # | ||
555 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
556 | # | ||
557 | # CONFIG_ATA is not set | ||
558 | |||
559 | # | ||
560 | # Multi-device support (RAID and LVM) | ||
561 | # | ||
562 | # CONFIG_MD is not set | ||
563 | |||
564 | # | ||
565 | # Fusion MPT device support | ||
566 | # | ||
567 | # CONFIG_FUSION is not set | ||
568 | |||
569 | # | ||
570 | # IEEE 1394 (FireWire) support | ||
571 | # | ||
572 | |||
573 | # | ||
574 | # I2O device support | ||
575 | # | ||
576 | |||
577 | # | ||
578 | # Network device support | ||
579 | # | ||
580 | CONFIG_NETDEVICES=y | ||
581 | # CONFIG_DUMMY is not set | ||
582 | # CONFIG_BONDING is not set | ||
583 | # CONFIG_EQUALIZER is not set | ||
584 | # CONFIG_TUN is not set | ||
585 | |||
586 | # | ||
587 | # PHY device support | ||
588 | # | ||
589 | # CONFIG_PHYLIB is not set | ||
590 | |||
591 | # | ||
592 | # Ethernet (10 or 100Mbit) | ||
593 | # | ||
594 | CONFIG_NET_ETHERNET=y | ||
595 | CONFIG_MII=y | ||
596 | CONFIG_SMC91X=y | ||
597 | |||
598 | # | ||
599 | # Ethernet (1000 Mbit) | ||
600 | # | ||
601 | |||
602 | # | ||
603 | # Ethernet (10000 Mbit) | ||
604 | # | ||
605 | |||
606 | # | ||
607 | # Token Ring devices | ||
608 | # | ||
609 | |||
610 | # | ||
611 | # Wireless LAN (non-hamradio) | ||
612 | # | ||
613 | # CONFIG_NET_RADIO is not set | ||
614 | |||
615 | # | ||
616 | # Wan interfaces | ||
617 | # | ||
618 | # CONFIG_WAN is not set | ||
619 | # CONFIG_PPP is not set | ||
620 | # CONFIG_SLIP is not set | ||
621 | # CONFIG_SHAPER is not set | ||
622 | # CONFIG_NETCONSOLE is not set | ||
623 | # CONFIG_NETPOLL is not set | ||
624 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
625 | |||
626 | # | ||
627 | # ISDN subsystem | ||
628 | # | ||
629 | # CONFIG_ISDN is not set | ||
630 | |||
631 | # | ||
632 | # Telephony Support | ||
633 | # | ||
634 | # CONFIG_PHONE is not set | ||
635 | |||
636 | # | ||
637 | # Input device support | ||
638 | # | ||
639 | # CONFIG_INPUT is not set | ||
640 | |||
641 | # | ||
642 | # Hardware I/O ports | ||
643 | # | ||
644 | # CONFIG_SERIO is not set | ||
645 | # CONFIG_GAMEPORT is not set | ||
646 | |||
647 | # | ||
648 | # Character devices | ||
649 | # | ||
650 | # CONFIG_AD9960 is not set | ||
651 | # CONFIG_SPI_ADC_BF533 is not set | ||
652 | # CONFIG_BF533_PFLAGS is not set | ||
653 | # CONFIG_BF5xx_PPIFCD is not set | ||
654 | # CONFIG_BF5xx_TIMERS is not set | ||
655 | # CONFIG_BF5xx_PPI is not set | ||
656 | # CONFIG_BFIN_SPORT is not set | ||
657 | # CONFIG_BFIN_TIMER_LATENCY is not set | ||
658 | # CONFIG_VT is not set | ||
659 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
660 | |||
661 | # | ||
662 | # Serial drivers | ||
663 | # | ||
664 | # CONFIG_SERIAL_8250 is not set | ||
665 | |||
666 | # | ||
667 | # Non-8250 serial port support | ||
668 | # | ||
669 | CONFIG_SERIAL_BFIN=y | ||
670 | CONFIG_SERIAL_BFIN_CONSOLE=y | ||
671 | CONFIG_SERIAL_BFIN_DMA=y | ||
672 | # CONFIG_SERIAL_BFIN_PIO is not set | ||
673 | CONFIG_SERIAL_BFIN_UART0=y | ||
674 | # CONFIG_BFIN_UART0_CTSRTS is not set | ||
675 | CONFIG_SERIAL_CORE=y | ||
676 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
677 | # CONFIG_SERIAL_BFIN_SPORT is not set | ||
678 | CONFIG_UNIX98_PTYS=y | ||
679 | # CONFIG_LEGACY_PTYS is not set | ||
680 | |||
681 | # | ||
682 | # CAN, the car bus and industrial fieldbus | ||
683 | # | ||
684 | # CONFIG_CAN4LINUX is not set | ||
685 | |||
686 | # | ||
687 | # IPMI | ||
688 | # | ||
689 | # CONFIG_IPMI_HANDLER is not set | ||
690 | |||
691 | # | ||
692 | # Watchdog Cards | ||
693 | # | ||
694 | # CONFIG_WATCHDOG is not set | ||
695 | CONFIG_HW_RANDOM=y | ||
696 | # CONFIG_GEN_RTC is not set | ||
697 | CONFIG_BLACKFIN_DPMC=y | ||
698 | # CONFIG_DTLK is not set | ||
699 | # CONFIG_R3964 is not set | ||
700 | |||
701 | # | ||
702 | # Ftape, the floppy tape device driver | ||
703 | # | ||
704 | # CONFIG_RAW_DRIVER is not set | ||
705 | |||
706 | # | ||
707 | # TPM devices | ||
708 | # | ||
709 | # CONFIG_TCG_TPM is not set | ||
710 | |||
711 | # | ||
712 | # I2C support | ||
713 | # | ||
714 | # CONFIG_I2C is not set | ||
715 | |||
716 | # | ||
717 | # SPI support | ||
718 | # | ||
719 | # CONFIG_SPI is not set | ||
720 | # CONFIG_SPI_MASTER is not set | ||
721 | |||
722 | # | ||
723 | # Dallas's 1-wire bus | ||
724 | # | ||
725 | # CONFIG_W1 is not set | ||
726 | |||
727 | # | ||
728 | # Hardware Monitoring support | ||
729 | # | ||
730 | CONFIG_HWMON=y | ||
731 | # CONFIG_HWMON_VID is not set | ||
732 | # CONFIG_SENSORS_ABITUGURU is not set | ||
733 | # CONFIG_SENSORS_F71805F is not set | ||
734 | # CONFIG_SENSORS_VT1211 is not set | ||
735 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
736 | |||
737 | # | ||
738 | # Multimedia devices | ||
739 | # | ||
740 | # CONFIG_VIDEO_DEV is not set | ||
741 | |||
742 | # | ||
743 | # Digital Video Broadcasting Devices | ||
744 | # | ||
745 | # CONFIG_DVB is not set | ||
746 | |||
747 | # | ||
748 | # Graphics support | ||
749 | # | ||
750 | CONFIG_FIRMWARE_EDID=y | ||
751 | # CONFIG_FB is not set | ||
752 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
753 | |||
754 | # | ||
755 | # Sound | ||
756 | # | ||
757 | # CONFIG_SOUND is not set | ||
758 | |||
759 | # | ||
760 | # USB support | ||
761 | # | ||
762 | CONFIG_USB_ARCH_HAS_HCD=y | ||
763 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
764 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
765 | # CONFIG_USB is not set | ||
766 | |||
767 | # | ||
768 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
769 | # | ||
770 | |||
771 | # | ||
772 | # USB Gadget Support | ||
773 | # | ||
774 | # CONFIG_USB_GADGET is not set | ||
775 | |||
776 | # | ||
777 | # MMC/SD Card support | ||
778 | # | ||
779 | # CONFIG_MMC is not set | ||
780 | |||
781 | # | ||
782 | # LED devices | ||
783 | # | ||
784 | # CONFIG_NEW_LEDS is not set | ||
785 | |||
786 | # | ||
787 | # LED drivers | ||
788 | # | ||
789 | |||
790 | # | ||
791 | # LED Triggers | ||
792 | # | ||
793 | |||
794 | # | ||
795 | # InfiniBand support | ||
796 | # | ||
797 | |||
798 | # | ||
799 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
800 | # | ||
801 | |||
802 | # | ||
803 | # Real Time Clock | ||
804 | # | ||
805 | CONFIG_RTC_LIB=y | ||
806 | CONFIG_RTC_CLASS=y | ||
807 | CONFIG_RTC_HCTOSYS=y | ||
808 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
809 | # CONFIG_RTC_DEBUG is not set | ||
810 | |||
811 | # | ||
812 | # RTC interfaces | ||
813 | # | ||
814 | CONFIG_RTC_INTF_SYSFS=y | ||
815 | CONFIG_RTC_INTF_PROC=y | ||
816 | CONFIG_RTC_INTF_DEV=y | ||
817 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
818 | |||
819 | # | ||
820 | # RTC drivers | ||
821 | # | ||
822 | # CONFIG_RTC_DRV_DS1553 is not set | ||
823 | # CONFIG_RTC_DRV_DS1742 is not set | ||
824 | # CONFIG_RTC_DRV_M48T86 is not set | ||
825 | # CONFIG_RTC_DRV_TEST is not set | ||
826 | # CONFIG_RTC_DRV_V3020 is not set | ||
827 | CONFIG_RTC_DRV_BFIN=y | ||
828 | |||
829 | # | ||
830 | # DMA Engine support | ||
831 | # | ||
832 | # CONFIG_DMA_ENGINE is not set | ||
833 | |||
834 | # | ||
835 | # DMA Clients | ||
836 | # | ||
837 | |||
838 | # | ||
839 | # DMA Devices | ||
840 | # | ||
841 | |||
842 | # | ||
843 | # PBX support | ||
844 | # | ||
845 | # CONFIG_PBX is not set | ||
846 | |||
847 | # | ||
848 | # File systems | ||
849 | # | ||
850 | CONFIG_EXT2_FS=y | ||
851 | CONFIG_EXT2_FS_XATTR=y | ||
852 | # CONFIG_EXT2_FS_POSIX_ACL is not set | ||
853 | # CONFIG_EXT2_FS_SECURITY is not set | ||
854 | # CONFIG_EXT3_FS is not set | ||
855 | # CONFIG_EXT4DEV_FS is not set | ||
856 | CONFIG_FS_MBCACHE=y | ||
857 | # CONFIG_REISERFS_FS is not set | ||
858 | # CONFIG_JFS_FS is not set | ||
859 | # CONFIG_FS_POSIX_ACL is not set | ||
860 | # CONFIG_XFS_FS is not set | ||
861 | # CONFIG_GFS2_FS is not set | ||
862 | # CONFIG_OCFS2_FS is not set | ||
863 | # CONFIG_MINIX_FS is not set | ||
864 | # CONFIG_ROMFS_FS is not set | ||
865 | # CONFIG_INOTIFY is not set | ||
866 | # CONFIG_QUOTA is not set | ||
867 | # CONFIG_DNOTIFY is not set | ||
868 | # CONFIG_AUTOFS_FS is not set | ||
869 | # CONFIG_AUTOFS4_FS is not set | ||
870 | # CONFIG_FUSE_FS is not set | ||
871 | |||
872 | # | ||
873 | # CD-ROM/DVD Filesystems | ||
874 | # | ||
875 | # CONFIG_ISO9660_FS is not set | ||
876 | # CONFIG_UDF_FS is not set | ||
877 | |||
878 | # | ||
879 | # DOS/FAT/NT Filesystems | ||
880 | # | ||
881 | # CONFIG_MSDOS_FS is not set | ||
882 | # CONFIG_VFAT_FS is not set | ||
883 | # CONFIG_NTFS_FS is not set | ||
884 | |||
885 | # | ||
886 | # Pseudo filesystems | ||
887 | # | ||
888 | CONFIG_PROC_FS=y | ||
889 | CONFIG_PROC_SYSCTL=y | ||
890 | CONFIG_SYSFS=y | ||
891 | # CONFIG_TMPFS is not set | ||
892 | # CONFIG_HUGETLB_PAGE is not set | ||
893 | CONFIG_RAMFS=y | ||
894 | # CONFIG_CONFIGFS_FS is not set | ||
895 | |||
896 | # | ||
897 | # Miscellaneous filesystems | ||
898 | # | ||
899 | # CONFIG_ADFS_FS is not set | ||
900 | # CONFIG_AFFS_FS is not set | ||
901 | # CONFIG_HFS_FS is not set | ||
902 | # CONFIG_HFSPLUS_FS is not set | ||
903 | # CONFIG_BEFS_FS is not set | ||
904 | # CONFIG_BFS_FS is not set | ||
905 | # CONFIG_EFS_FS is not set | ||
906 | CONFIG_YAFFS_FS=m | ||
907 | CONFIG_YAFFS_YAFFS1=y | ||
908 | # CONFIG_YAFFS_DOES_ECC is not set | ||
909 | CONFIG_YAFFS_YAFFS2=y | ||
910 | CONFIG_YAFFS_AUTO_YAFFS2=y | ||
911 | # CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set | ||
912 | CONFIG_YAFFS_CHECKPOINT_RESERVED_BLOCKS=10 | ||
913 | # CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set | ||
914 | # CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set | ||
915 | CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y | ||
916 | # CONFIG_JFFS_FS is not set | ||
917 | CONFIG_JFFS2_FS=m | ||
918 | CONFIG_JFFS2_FS_DEBUG=0 | ||
919 | CONFIG_JFFS2_FS_WRITEBUFFER=y | ||
920 | # CONFIG_JFFS2_SUMMARY is not set | ||
921 | # CONFIG_JFFS2_FS_XATTR is not set | ||
922 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | ||
923 | CONFIG_JFFS2_ZLIB=y | ||
924 | CONFIG_JFFS2_RTIME=y | ||
925 | # CONFIG_JFFS2_RUBIN is not set | ||
926 | # CONFIG_CRAMFS is not set | ||
927 | # CONFIG_VXFS_FS is not set | ||
928 | # CONFIG_HPFS_FS is not set | ||
929 | # CONFIG_QNX4FS_FS is not set | ||
930 | # CONFIG_SYSV_FS is not set | ||
931 | # CONFIG_UFS_FS is not set | ||
932 | |||
933 | # | ||
934 | # Network File Systems | ||
935 | # | ||
936 | CONFIG_NFS_FS=m | ||
937 | CONFIG_NFS_V3=y | ||
938 | # CONFIG_NFS_V3_ACL is not set | ||
939 | # CONFIG_NFS_V4 is not set | ||
940 | # CONFIG_NFS_DIRECTIO is not set | ||
941 | # CONFIG_NFSD is not set | ||
942 | CONFIG_LOCKD=m | ||
943 | CONFIG_LOCKD_V4=y | ||
944 | CONFIG_NFS_COMMON=y | ||
945 | CONFIG_SUNRPC=m | ||
946 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
947 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
948 | # CONFIG_SMB_FS is not set | ||
949 | # CONFIG_CIFS is not set | ||
950 | # CONFIG_NCP_FS is not set | ||
951 | # CONFIG_CODA_FS is not set | ||
952 | # CONFIG_AFS_FS is not set | ||
953 | # CONFIG_9P_FS is not set | ||
954 | |||
955 | # | ||
956 | # Partition Types | ||
957 | # | ||
958 | # CONFIG_PARTITION_ADVANCED is not set | ||
959 | CONFIG_MSDOS_PARTITION=y | ||
960 | |||
961 | # | ||
962 | # Native Language Support | ||
963 | # | ||
964 | # CONFIG_NLS is not set | ||
965 | |||
966 | # | ||
967 | # Profiling support | ||
968 | # | ||
969 | # CONFIG_PROFILING is not set | ||
970 | |||
971 | # | ||
972 | # Kernel hacking | ||
973 | # | ||
974 | # CONFIG_PRINTK_TIME is not set | ||
975 | CONFIG_ENABLE_MUST_CHECK=y | ||
976 | # CONFIG_MAGIC_SYSRQ is not set | ||
977 | # CONFIG_UNUSED_SYMBOLS is not set | ||
978 | # CONFIG_DEBUG_KERNEL is not set | ||
979 | CONFIG_LOG_BUF_SHIFT=14 | ||
980 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
981 | # CONFIG_DEBUG_FS is not set | ||
982 | # CONFIG_UNWIND_INFO is not set | ||
983 | # CONFIG_HEADERS_CHECK is not set | ||
984 | # CONFIG_DEBUG_SERIAL_EARLY_INIT is not set | ||
985 | CONFIG_DEBUG_HUNT_FOR_ZERO=y | ||
986 | # CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set | ||
987 | # CONFIG_BOOTPARAM is not set | ||
988 | # CONFIG_NO_KERNEL_MSG is not set | ||
989 | CONFIG_CPLB_INFO=y | ||
990 | # CONFIG_NO_ACCESS_CHECK is not set | ||
991 | |||
992 | # | ||
993 | # Security options | ||
994 | # | ||
995 | # CONFIG_KEYS is not set | ||
996 | CONFIG_SECURITY=y | ||
997 | # CONFIG_SECURITY_NETWORK is not set | ||
998 | CONFIG_SECURITY_CAPABILITIES=y | ||
999 | |||
1000 | # | ||
1001 | # Cryptographic options | ||
1002 | # | ||
1003 | # CONFIG_CRYPTO is not set | ||
1004 | |||
1005 | # | ||
1006 | # Library routines | ||
1007 | # | ||
1008 | # CONFIG_CRC_CCITT is not set | ||
1009 | # CONFIG_CRC16 is not set | ||
1010 | CONFIG_CRC32=y | ||
1011 | # CONFIG_LIBCRC32C is not set | ||
1012 | CONFIG_ZLIB_INFLATE=y | ||
1013 | CONFIG_ZLIB_DEFLATE=m | ||
1014 | CONFIG_PLIST=y | ||
diff --git a/arch/blackfin/configs/BF533-STAMP_defconfig b/arch/blackfin/configs/BF533-STAMP_defconfig new file mode 100644 index 000000000000..14a948c288a5 --- /dev/null +++ b/arch/blackfin/configs/BF533-STAMP_defconfig | |||
@@ -0,0 +1,1296 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.20.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_BFIN=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_CALIBRATE_DELAY=y | ||
18 | CONFIG_FORCE_MAX_ZONEORDER=14 | ||
19 | CONFIG_IRQCHIP_DEMUX_GPIO=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_POSIX_MQUEUE is not set | ||
37 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
38 | # CONFIG_TASKSTATS is not set | ||
39 | # CONFIG_UTS_NS is not set | ||
40 | # CONFIG_AUDIT is not set | ||
41 | # CONFIG_IKCONFIG is not set | ||
42 | CONFIG_SYSFS_DEPRECATED=y | ||
43 | # CONFIG_RELAY is not set | ||
44 | CONFIG_INITRAMFS_SOURCE="" | ||
45 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
46 | CONFIG_SYSCTL=y | ||
47 | CONFIG_EMBEDDED=y | ||
48 | CONFIG_UID16=y | ||
49 | CONFIG_SYSCTL_SYSCALL=y | ||
50 | CONFIG_KALLSYMS=y | ||
51 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
52 | CONFIG_HOTPLUG=y | ||
53 | CONFIG_PRINTK=y | ||
54 | CONFIG_BUG=y | ||
55 | CONFIG_ELF_CORE=y | ||
56 | CONFIG_BASE_FULL=y | ||
57 | CONFIG_FUTEX=y | ||
58 | CONFIG_EPOLL=y | ||
59 | CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3 | ||
60 | # CONFIG_LIMIT_PAGECACHE is not set | ||
61 | CONFIG_BUDDY=y | ||
62 | # CONFIG_NP2 is not set | ||
63 | CONFIG_SLAB=y | ||
64 | CONFIG_VM_EVENT_COUNTERS=y | ||
65 | CONFIG_RT_MUTEXES=y | ||
66 | CONFIG_TINY_SHMEM=y | ||
67 | CONFIG_BASE_SMALL=0 | ||
68 | # CONFIG_SLOB is not set | ||
69 | |||
70 | # | ||
71 | # Loadable module support | ||
72 | # | ||
73 | CONFIG_MODULES=y | ||
74 | CONFIG_MODULE_UNLOAD=y | ||
75 | # CONFIG_MODULE_FORCE_UNLOAD is not set | ||
76 | # CONFIG_MODVERSIONS is not set | ||
77 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
78 | CONFIG_KMOD=y | ||
79 | |||
80 | # | ||
81 | # Block layer | ||
82 | # | ||
83 | CONFIG_BLOCK=y | ||
84 | # CONFIG_LBD is not set | ||
85 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
86 | # CONFIG_LSF is not set | ||
87 | |||
88 | # | ||
89 | # IO Schedulers | ||
90 | # | ||
91 | CONFIG_IOSCHED_NOOP=y | ||
92 | CONFIG_IOSCHED_AS=y | ||
93 | # CONFIG_IOSCHED_DEADLINE is not set | ||
94 | CONFIG_IOSCHED_CFQ=y | ||
95 | CONFIG_DEFAULT_AS=y | ||
96 | # CONFIG_DEFAULT_DEADLINE is not set | ||
97 | # CONFIG_DEFAULT_CFQ is not set | ||
98 | # CONFIG_DEFAULT_NOOP is not set | ||
99 | CONFIG_DEFAULT_IOSCHED="anticipatory" | ||
100 | # CONFIG_PREEMPT_NONE is not set | ||
101 | CONFIG_PREEMPT_VOLUNTARY=y | ||
102 | # CONFIG_PREEMPT is not set | ||
103 | |||
104 | # | ||
105 | # Blackfin Processor Options | ||
106 | # | ||
107 | |||
108 | # | ||
109 | # Processor and Board Settings | ||
110 | # | ||
111 | # CONFIG_BF531 is not set | ||
112 | # CONFIG_BF532 is not set | ||
113 | CONFIG_BF533=y | ||
114 | # CONFIG_BF534 is not set | ||
115 | # CONFIG_BF536 is not set | ||
116 | # CONFIG_BF537 is not set | ||
117 | # CONFIG_BF561 is not set | ||
118 | # CONFIG_BF_REV_0_2 is not set | ||
119 | CONFIG_BF_REV_0_3=y | ||
120 | # CONFIG_BF_REV_0_4 is not set | ||
121 | # CONFIG_BF_REV_0_5 is not set | ||
122 | CONFIG_BFIN_SINGLE_CORE=y | ||
123 | # CONFIG_BFIN533_EZKIT is not set | ||
124 | CONFIG_BFIN533_STAMP=y | ||
125 | # CONFIG_BFIN537_STAMP is not set | ||
126 | # CONFIG_BFIN533_BLUETECHNIX_CM is not set | ||
127 | # CONFIG_BFIN537_BLUETECHNIX_CM is not set | ||
128 | # CONFIG_BFIN561_BLUETECHNIX_CM is not set | ||
129 | # CONFIG_BFIN561_EZKIT is not set | ||
130 | # CONFIG_PNAV10 is not set | ||
131 | # CONFIG_GENERIC_BOARD is not set | ||
132 | CONFIG_MEM_MT48LC64M4A2FB_7E=y | ||
133 | CONFIG_BFIN_SHARED_FLASH_ENET=y | ||
134 | |||
135 | # | ||
136 | # BF533/2/1 Specific Configuration | ||
137 | # | ||
138 | |||
139 | # | ||
140 | # Interrupt Priority Assignment | ||
141 | # | ||
142 | |||
143 | # | ||
144 | # Priority | ||
145 | # | ||
146 | CONFIG_UART_ERROR=7 | ||
147 | CONFIG_SPORT0_ERROR=7 | ||
148 | CONFIG_SPI_ERROR=7 | ||
149 | CONFIG_SPORT1_ERROR=7 | ||
150 | CONFIG_PPI_ERROR=7 | ||
151 | CONFIG_DMA_ERROR=7 | ||
152 | CONFIG_PLLWAKE_ERROR=7 | ||
153 | CONFIG_RTC_ERROR=8 | ||
154 | CONFIG_DMA0_PPI=8 | ||
155 | CONFIG_DMA1_SPORT0RX=9 | ||
156 | CONFIG_DMA2_SPORT0TX=9 | ||
157 | CONFIG_DMA3_SPORT1RX=9 | ||
158 | CONFIG_DMA4_SPORT1TX=9 | ||
159 | CONFIG_DMA5_SPI=10 | ||
160 | CONFIG_DMA6_UARTRX=10 | ||
161 | CONFIG_DMA7_UARTTX=10 | ||
162 | CONFIG_TIMER0=11 | ||
163 | CONFIG_TIMER1=11 | ||
164 | CONFIG_TIMER2=11 | ||
165 | CONFIG_PFA=12 | ||
166 | CONFIG_PFB=12 | ||
167 | CONFIG_MEMDMA0=13 | ||
168 | CONFIG_MEMDMA1=13 | ||
169 | CONFIG_WDTIMER=13 | ||
170 | |||
171 | # | ||
172 | # Board customizations | ||
173 | # | ||
174 | # CONFIG_CMDLINE_BOOL is not set | ||
175 | |||
176 | # | ||
177 | # Board Setup | ||
178 | # | ||
179 | CONFIG_CLKIN_HZ=11059200 | ||
180 | CONFIG_MEM_SIZE=128 | ||
181 | CONFIG_MEM_ADD_WIDTH=11 | ||
182 | CONFIG_ENET_FLASH_PIN=0 | ||
183 | CONFIG_BOOT_LOAD=0x1000 | ||
184 | |||
185 | # | ||
186 | # LED Status Indicators | ||
187 | # | ||
188 | # CONFIG_BFIN_ALIVE_LED is not set | ||
189 | # CONFIG_BFIN_IDLE_LED is not set | ||
190 | CONFIG_BFIN_ALIVE_LED_PORT=0xFFC00700 | ||
191 | CONFIG_BFIN_ALIVE_LED_DPORT=0xFFC00730 | ||
192 | CONFIG_BFIN_IDLE_LED_PORT=0xFFC00700 | ||
193 | CONFIG_BFIN_IDLE_LED_DPORT=0xFFC00730 | ||
194 | |||
195 | # | ||
196 | # Console UART Setup | ||
197 | # | ||
198 | # CONFIG_BAUD_9600 is not set | ||
199 | # CONFIG_BAUD_19200 is not set | ||
200 | # CONFIG_BAUD_38400 is not set | ||
201 | CONFIG_BAUD_57600=y | ||
202 | # CONFIG_BAUD_115200 is not set | ||
203 | CONFIG_BAUD_NO_PARITY=y | ||
204 | # CONFIG_BAUD_PARITY is not set | ||
205 | CONFIG_BAUD_1_STOPBIT=y | ||
206 | # CONFIG_BAUD_2_STOPBIT is not set | ||
207 | |||
208 | # | ||
209 | # Blackfin Kernel Optimizations | ||
210 | # | ||
211 | |||
212 | # | ||
213 | # Timer Tick | ||
214 | # | ||
215 | # CONFIG_HZ_100 is not set | ||
216 | CONFIG_HZ_250=y | ||
217 | # CONFIG_HZ_300 is not set | ||
218 | # CONFIG_HZ_1000 is not set | ||
219 | CONFIG_HZ=250 | ||
220 | |||
221 | # | ||
222 | # Memory Optimizations | ||
223 | # | ||
224 | CONFIG_I_ENTRY_L1=y | ||
225 | CONFIG_EXCPT_IRQ_SYSC_L1=y | ||
226 | CONFIG_DO_IRQ_L1=y | ||
227 | CONFIG_CORE_TIMER_IRQ_L1=y | ||
228 | CONFIG_IDLE_L1=y | ||
229 | CONFIG_SCHEDULE_L1=y | ||
230 | CONFIG_ARITHMETIC_OPS_L1=y | ||
231 | CONFIG_ACCESS_OK_L1=y | ||
232 | CONFIG_MEMSET_L1=y | ||
233 | CONFIG_MEMCPY_L1=y | ||
234 | CONFIG_SYS_BFIN_SPINLOCK_L1=y | ||
235 | # CONFIG_IP_CHECKSUM_L1 is not set | ||
236 | # CONFIG_SYSCALL_TAB_L1 is not set | ||
237 | # CONFIG_CPLB_SWITCH_TAB_L1 is not set | ||
238 | CONFIG_RAMKERNEL=y | ||
239 | # CONFIG_ROMKERNEL is not set | ||
240 | CONFIG_SELECT_MEMORY_MODEL=y | ||
241 | CONFIG_FLATMEM_MANUAL=y | ||
242 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
243 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
244 | CONFIG_FLATMEM=y | ||
245 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
246 | # CONFIG_SPARSEMEM_STATIC is not set | ||
247 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
248 | # CONFIG_RESOURCES_64BIT is not set | ||
249 | CONFIG_LARGE_ALLOCS=y | ||
250 | CONFIG_BFIN_DMA_5XX=y | ||
251 | # CONFIG_DMA_UNCACHED_2M is not set | ||
252 | CONFIG_DMA_UNCACHED_1M=y | ||
253 | # CONFIG_DMA_UNCACHED_NONE is not set | ||
254 | |||
255 | # | ||
256 | # Cache Support | ||
257 | # | ||
258 | CONFIG_BLKFIN_CACHE=y | ||
259 | CONFIG_BLKFIN_DCACHE=y | ||
260 | # CONFIG_BLKFIN_DCACHE_BANKA is not set | ||
261 | # CONFIG_BLKFIN_CACHE_LOCK is not set | ||
262 | # CONFIG_BLKFIN_WB is not set | ||
263 | CONFIG_BLKFIN_WT=y | ||
264 | CONFIG_L1_MAX_PIECE=16 | ||
265 | |||
266 | # | ||
267 | # Clock Settings | ||
268 | # | ||
269 | # CONFIG_BFIN_KERNEL_CLOCK is not set | ||
270 | |||
271 | # | ||
272 | # Asynchonous Memory Configuration | ||
273 | # | ||
274 | |||
275 | # | ||
276 | # EBIU_AMBCTL Global Control | ||
277 | # | ||
278 | CONFIG_C_AMCKEN=y | ||
279 | CONFIG_C_CDPRIO=y | ||
280 | # CONFIG_C_AMBEN is not set | ||
281 | # CONFIG_C_AMBEN_B0 is not set | ||
282 | # CONFIG_C_AMBEN_B0_B1 is not set | ||
283 | # CONFIG_C_AMBEN_B0_B1_B2 is not set | ||
284 | CONFIG_C_AMBEN_ALL=y | ||
285 | |||
286 | # | ||
287 | # EBIU_AMBCTL Control | ||
288 | # | ||
289 | CONFIG_BANK_0=0x7BB0 | ||
290 | CONFIG_BANK_1=0x7BB0 | ||
291 | CONFIG_BANK_2=0x7BB0 | ||
292 | CONFIG_BANK_3=0x99B3 | ||
293 | |||
294 | # | ||
295 | # Bus options (PCI, PCMCIA, EISA, MCA, ISA) | ||
296 | # | ||
297 | # CONFIG_PCI is not set | ||
298 | |||
299 | # | ||
300 | # PCCARD (PCMCIA/CardBus) support | ||
301 | # | ||
302 | # CONFIG_PCCARD is not set | ||
303 | |||
304 | # | ||
305 | # PCI Hotplug Support | ||
306 | # | ||
307 | |||
308 | # | ||
309 | # Executable file formats | ||
310 | # | ||
311 | CONFIG_BINFMT_ELF_FDPIC=y | ||
312 | CONFIG_BINFMT_FLAT=y | ||
313 | CONFIG_BINFMT_ZFLAT=y | ||
314 | # CONFIG_BINFMT_SHARED_FLAT is not set | ||
315 | # CONFIG_BINFMT_MISC is not set | ||
316 | |||
317 | # | ||
318 | # Power management options | ||
319 | # | ||
320 | CONFIG_PM=y | ||
321 | CONFIG_PM_LEGACY=y | ||
322 | # CONFIG_PM_DEBUG is not set | ||
323 | # CONFIG_PM_SYSFS_DEPRECATED is not set | ||
324 | CONFIG_PM_WAKEUP_GPIO_BY_SIC_IWR=y | ||
325 | # CONFIG_PM_WAKEUP_BY_GPIO is not set | ||
326 | # CONFIG_PM_WAKEUP_GPIO_API is not set | ||
327 | CONFIG_PM_WAKEUP_SIC_IWR=0x100000 | ||
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_NETDEBUG is not set | ||
343 | CONFIG_PACKET=y | ||
344 | # CONFIG_PACKET_MMAP is not set | ||
345 | CONFIG_UNIX=y | ||
346 | CONFIG_XFRM=y | ||
347 | # CONFIG_XFRM_USER is not set | ||
348 | # CONFIG_XFRM_SUB_POLICY 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=y | ||
355 | # CONFIG_IP_PNP_DHCP is not set | ||
356 | # CONFIG_IP_PNP_BOOTP is not set | ||
357 | # CONFIG_IP_PNP_RARP is not set | ||
358 | # CONFIG_NET_IPIP is not set | ||
359 | # CONFIG_NET_IPGRE is not set | ||
360 | # CONFIG_ARPD is not set | ||
361 | CONFIG_SYN_COOKIES=y | ||
362 | # CONFIG_INET_AH is not set | ||
363 | # CONFIG_INET_ESP is not set | ||
364 | # CONFIG_INET_IPCOMP is not set | ||
365 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
366 | # CONFIG_INET_TUNNEL is not set | ||
367 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
368 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
369 | CONFIG_INET_XFRM_MODE_BEET=y | ||
370 | CONFIG_INET_DIAG=y | ||
371 | CONFIG_INET_TCP_DIAG=y | ||
372 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
373 | CONFIG_TCP_CONG_CUBIC=y | ||
374 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
375 | # CONFIG_TCP_MD5SIG is not set | ||
376 | # CONFIG_IPV6 is not set | ||
377 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
378 | # CONFIG_INET6_TUNNEL is not set | ||
379 | # CONFIG_NETLABEL is not set | ||
380 | # CONFIG_NETWORK_SECMARK is not set | ||
381 | # CONFIG_NETFILTER is not set | ||
382 | |||
383 | # | ||
384 | # DCCP Configuration (EXPERIMENTAL) | ||
385 | # | ||
386 | # CONFIG_IP_DCCP is not set | ||
387 | |||
388 | # | ||
389 | # SCTP Configuration (EXPERIMENTAL) | ||
390 | # | ||
391 | # CONFIG_IP_SCTP is not set | ||
392 | |||
393 | # | ||
394 | # TIPC Configuration (EXPERIMENTAL) | ||
395 | # | ||
396 | # CONFIG_TIPC is not set | ||
397 | # CONFIG_ATM is not set | ||
398 | # CONFIG_BRIDGE is not set | ||
399 | # CONFIG_VLAN_8021Q is not set | ||
400 | # CONFIG_DECNET is not set | ||
401 | # CONFIG_LLC2 is not set | ||
402 | # CONFIG_IPX is not set | ||
403 | # CONFIG_ATALK is not set | ||
404 | # CONFIG_X25 is not set | ||
405 | # CONFIG_LAPB is not set | ||
406 | # CONFIG_ECONET is not set | ||
407 | # CONFIG_WAN_ROUTER is not set | ||
408 | |||
409 | # | ||
410 | # QoS and/or fair queueing | ||
411 | # | ||
412 | # CONFIG_NET_SCHED is not set | ||
413 | |||
414 | # | ||
415 | # Network testing | ||
416 | # | ||
417 | # CONFIG_NET_PKTGEN is not set | ||
418 | # CONFIG_HAMRADIO is not set | ||
419 | CONFIG_IRDA=m | ||
420 | |||
421 | # | ||
422 | # IrDA protocols | ||
423 | # | ||
424 | CONFIG_IRLAN=m | ||
425 | CONFIG_IRCOMM=m | ||
426 | # CONFIG_IRDA_ULTRA is not set | ||
427 | |||
428 | # | ||
429 | # IrDA options | ||
430 | # | ||
431 | CONFIG_IRDA_CACHE_LAST_LSAP=y | ||
432 | # CONFIG_IRDA_FAST_RR is not set | ||
433 | # CONFIG_IRDA_DEBUG is not set | ||
434 | |||
435 | # | ||
436 | # Infrared-port device drivers | ||
437 | # | ||
438 | |||
439 | # | ||
440 | # SIR device drivers | ||
441 | # | ||
442 | CONFIG_IRTTY_SIR=m | ||
443 | |||
444 | # | ||
445 | # Dongle support | ||
446 | # | ||
447 | # CONFIG_DONGLE is not set | ||
448 | |||
449 | # | ||
450 | # Old SIR device drivers | ||
451 | # | ||
452 | # CONFIG_IRPORT_SIR is not set | ||
453 | |||
454 | # | ||
455 | # Old Serial dongle support | ||
456 | # | ||
457 | |||
458 | # | ||
459 | # FIR device drivers | ||
460 | # | ||
461 | # CONFIG_BT is not set | ||
462 | # CONFIG_IEEE80211 is not set | ||
463 | |||
464 | # | ||
465 | # Device Drivers | ||
466 | # | ||
467 | |||
468 | # | ||
469 | # Generic Driver Options | ||
470 | # | ||
471 | CONFIG_STANDALONE=y | ||
472 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
473 | # CONFIG_FW_LOADER is not set | ||
474 | # CONFIG_SYS_HYPERVISOR is not set | ||
475 | |||
476 | # | ||
477 | # Connector - unified userspace <-> kernelspace linker | ||
478 | # | ||
479 | # CONFIG_CONNECTOR is not set | ||
480 | |||
481 | # | ||
482 | # Memory Technology Devices (MTD) | ||
483 | # | ||
484 | CONFIG_MTD=y | ||
485 | # CONFIG_MTD_DEBUG is not set | ||
486 | # CONFIG_MTD_CONCAT is not set | ||
487 | CONFIG_MTD_PARTITIONS=y | ||
488 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
489 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
490 | |||
491 | # | ||
492 | # User Modules And Translation Layers | ||
493 | # | ||
494 | CONFIG_MTD_CHAR=m | ||
495 | CONFIG_MTD_BLKDEVS=y | ||
496 | CONFIG_MTD_BLOCK=y | ||
497 | # CONFIG_FTL is not set | ||
498 | # CONFIG_NFTL is not set | ||
499 | # CONFIG_INFTL is not set | ||
500 | # CONFIG_RFD_FTL is not set | ||
501 | # CONFIG_SSFDC is not set | ||
502 | |||
503 | # | ||
504 | # RAM/ROM/Flash chip drivers | ||
505 | # | ||
506 | # CONFIG_MTD_CFI is not set | ||
507 | CONFIG_MTD_JEDECPROBE=m | ||
508 | CONFIG_MTD_GEN_PROBE=m | ||
509 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
510 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
511 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
512 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
513 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
514 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
515 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
516 | CONFIG_MTD_CFI_I1=y | ||
517 | CONFIG_MTD_CFI_I2=y | ||
518 | # CONFIG_MTD_CFI_I4 is not set | ||
519 | # CONFIG_MTD_CFI_I8 is not set | ||
520 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
521 | # CONFIG_MTD_CFI_AMDSTD is not set | ||
522 | # CONFIG_MTD_CFI_STAA is not set | ||
523 | CONFIG_MTD_MW320D=m | ||
524 | CONFIG_MTD_RAM=y | ||
525 | CONFIG_MTD_ROM=m | ||
526 | # CONFIG_MTD_ABSENT is not set | ||
527 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
528 | |||
529 | # | ||
530 | # Mapping drivers for chip access | ||
531 | # | ||
532 | CONFIG_MTD_COMPLEX_MAPPINGS=y | ||
533 | # CONFIG_MTD_PHYSMAP is not set | ||
534 | CONFIG_MTD_BF5xx=m | ||
535 | CONFIG_BFIN_FLASH_SIZE=0x400000 | ||
536 | CONFIG_EBIU_FLASH_BASE=0x20000000 | ||
537 | |||
538 | # | ||
539 | # FLASH_EBIU_AMBCTL Control | ||
540 | # | ||
541 | CONFIG_BFIN_FLASH_BANK_0=0x7BB0 | ||
542 | CONFIG_BFIN_FLASH_BANK_1=0x7BB0 | ||
543 | CONFIG_BFIN_FLASH_BANK_2=0x7BB0 | ||
544 | CONFIG_BFIN_FLASH_BANK_3=0x7BB0 | ||
545 | # CONFIG_MTD_UCLINUX is not set | ||
546 | # CONFIG_MTD_PLATRAM is not set | ||
547 | |||
548 | # | ||
549 | # Self-contained MTD device drivers | ||
550 | # | ||
551 | # CONFIG_MTD_DATAFLASH is not set | ||
552 | # CONFIG_MTD_M25P80 is not set | ||
553 | # CONFIG_MTD_SLRAM is not set | ||
554 | # CONFIG_MTD_PHRAM is not set | ||
555 | # CONFIG_MTD_MTDRAM is not set | ||
556 | # CONFIG_MTD_BLOCK2MTD is not set | ||
557 | |||
558 | # | ||
559 | # Disk-On-Chip Device Drivers | ||
560 | # | ||
561 | # CONFIG_MTD_DOC2000 is not set | ||
562 | # CONFIG_MTD_DOC2001 is not set | ||
563 | # CONFIG_MTD_DOC2001PLUS is not set | ||
564 | |||
565 | # | ||
566 | # NAND Flash Device Drivers | ||
567 | # | ||
568 | # CONFIG_MTD_NAND is not set | ||
569 | |||
570 | # | ||
571 | # OneNAND Flash Device Drivers | ||
572 | # | ||
573 | # CONFIG_MTD_ONENAND is not set | ||
574 | |||
575 | # | ||
576 | # Parallel port support | ||
577 | # | ||
578 | # CONFIG_PARPORT is not set | ||
579 | |||
580 | # | ||
581 | # Plug and Play support | ||
582 | # | ||
583 | |||
584 | # | ||
585 | # Block devices | ||
586 | # | ||
587 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
588 | # CONFIG_BLK_DEV_LOOP is not set | ||
589 | # CONFIG_BLK_DEV_NBD is not set | ||
590 | CONFIG_BLK_DEV_RAM=y | ||
591 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
592 | CONFIG_BLK_DEV_RAM_SIZE=4096 | ||
593 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | ||
594 | # CONFIG_BLK_DEV_INITRD is not set | ||
595 | # CONFIG_CDROM_PKTCDVD is not set | ||
596 | # CONFIG_ATA_OVER_ETH is not set | ||
597 | |||
598 | # | ||
599 | # Misc devices | ||
600 | # | ||
601 | # CONFIG_TIFM_CORE is not set | ||
602 | |||
603 | # | ||
604 | # ATA/ATAPI/MFM/RLL support | ||
605 | # | ||
606 | # CONFIG_IDE is not set | ||
607 | |||
608 | # | ||
609 | # SCSI device support | ||
610 | # | ||
611 | # CONFIG_RAID_ATTRS is not set | ||
612 | # CONFIG_SCSI is not set | ||
613 | # CONFIG_SCSI_NETLINK is not set | ||
614 | |||
615 | # | ||
616 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
617 | # | ||
618 | # CONFIG_ATA is not set | ||
619 | |||
620 | # | ||
621 | # Multi-device support (RAID and LVM) | ||
622 | # | ||
623 | # CONFIG_MD is not set | ||
624 | |||
625 | # | ||
626 | # Fusion MPT device support | ||
627 | # | ||
628 | # CONFIG_FUSION is not set | ||
629 | |||
630 | # | ||
631 | # IEEE 1394 (FireWire) support | ||
632 | # | ||
633 | |||
634 | # | ||
635 | # I2O device support | ||
636 | # | ||
637 | |||
638 | # | ||
639 | # Network device support | ||
640 | # | ||
641 | CONFIG_NETDEVICES=y | ||
642 | # CONFIG_DUMMY is not set | ||
643 | # CONFIG_BONDING is not set | ||
644 | # CONFIG_EQUALIZER is not set | ||
645 | # CONFIG_TUN is not set | ||
646 | |||
647 | # | ||
648 | # PHY device support | ||
649 | # | ||
650 | # CONFIG_PHYLIB is not set | ||
651 | |||
652 | # | ||
653 | # Ethernet (10 or 100Mbit) | ||
654 | # | ||
655 | CONFIG_NET_ETHERNET=y | ||
656 | CONFIG_MII=y | ||
657 | CONFIG_SMC91X=y | ||
658 | |||
659 | # | ||
660 | # Ethernet (1000 Mbit) | ||
661 | # | ||
662 | |||
663 | # | ||
664 | # Ethernet (10000 Mbit) | ||
665 | # | ||
666 | |||
667 | # | ||
668 | # Token Ring devices | ||
669 | # | ||
670 | |||
671 | # | ||
672 | # Wireless LAN (non-hamradio) | ||
673 | # | ||
674 | # CONFIG_NET_RADIO is not set | ||
675 | |||
676 | # | ||
677 | # Wan interfaces | ||
678 | # | ||
679 | # CONFIG_WAN is not set | ||
680 | # CONFIG_PPP is not set | ||
681 | # CONFIG_SLIP is not set | ||
682 | # CONFIG_SHAPER is not set | ||
683 | # CONFIG_NETCONSOLE is not set | ||
684 | # CONFIG_NETPOLL is not set | ||
685 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
686 | |||
687 | # | ||
688 | # ISDN subsystem | ||
689 | # | ||
690 | # CONFIG_ISDN is not set | ||
691 | |||
692 | # | ||
693 | # Telephony Support | ||
694 | # | ||
695 | # CONFIG_PHONE is not set | ||
696 | |||
697 | # | ||
698 | # Input device support | ||
699 | # | ||
700 | CONFIG_INPUT=y | ||
701 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
702 | |||
703 | # | ||
704 | # Userland interfaces | ||
705 | # | ||
706 | # CONFIG_INPUT_MOUSEDEV is not set | ||
707 | # CONFIG_INPUT_JOYDEV is not set | ||
708 | # CONFIG_INPUT_TSDEV is not set | ||
709 | CONFIG_INPUT_EVDEV=m | ||
710 | # CONFIG_INPUT_EVBUG is not set | ||
711 | |||
712 | # | ||
713 | # Input Device Drivers | ||
714 | # | ||
715 | # CONFIG_INPUT_KEYBOARD is not set | ||
716 | # CONFIG_INPUT_MOUSE is not set | ||
717 | # CONFIG_INPUT_JOYSTICK is not set | ||
718 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
719 | CONFIG_INPUT_MISC=y | ||
720 | # CONFIG_INPUT_UINPUT is not set | ||
721 | # CONFIG_BF53X_PFBUTTONS is not set | ||
722 | CONFIG_TWI_KEYPAD=m | ||
723 | CONFIG_BFIN_TWIKEYPAD_IRQ_PFX=39 | ||
724 | |||
725 | # | ||
726 | # Hardware I/O ports | ||
727 | # | ||
728 | # CONFIG_SERIO is not set | ||
729 | # CONFIG_GAMEPORT is not set | ||
730 | |||
731 | # | ||
732 | # Character devices | ||
733 | # | ||
734 | # CONFIG_AD9960 is not set | ||
735 | # CONFIG_SPI_ADC_BF533 is not set | ||
736 | # CONFIG_BF533_PFLAGS is not set | ||
737 | # CONFIG_BF5xx_PPIFCD is not set | ||
738 | # CONFIG_BF5xx_TIMERS is not set | ||
739 | # CONFIG_BF5xx_PPI is not set | ||
740 | CONFIG_BFIN_SPORT=y | ||
741 | # CONFIG_BFIN_TIMER_LATENCY is not set | ||
742 | CONFIG_TWI_LCD=m | ||
743 | CONFIG_TWI_LCD_SLAVE_ADDR=34 | ||
744 | # CONFIG_AD5304 is not set | ||
745 | # CONFIG_VT is not set | ||
746 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
747 | |||
748 | # | ||
749 | # Serial drivers | ||
750 | # | ||
751 | # CONFIG_SERIAL_8250 is not set | ||
752 | |||
753 | # | ||
754 | # Non-8250 serial port support | ||
755 | # | ||
756 | CONFIG_SERIAL_BFIN=y | ||
757 | CONFIG_SERIAL_BFIN_CONSOLE=y | ||
758 | CONFIG_SERIAL_BFIN_DMA=y | ||
759 | # CONFIG_SERIAL_BFIN_PIO is not set | ||
760 | CONFIG_SERIAL_BFIN_UART0=y | ||
761 | # CONFIG_BFIN_UART0_CTSRTS is not set | ||
762 | CONFIG_SERIAL_CORE=y | ||
763 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
764 | # CONFIG_SERIAL_BFIN_SPORT is not set | ||
765 | CONFIG_UNIX98_PTYS=y | ||
766 | # CONFIG_LEGACY_PTYS is not set | ||
767 | |||
768 | # | ||
769 | # CAN, the car bus and industrial fieldbus | ||
770 | # | ||
771 | # CONFIG_CAN4LINUX is not set | ||
772 | |||
773 | # | ||
774 | # IPMI | ||
775 | # | ||
776 | # CONFIG_IPMI_HANDLER is not set | ||
777 | |||
778 | # | ||
779 | # Watchdog Cards | ||
780 | # | ||
781 | # CONFIG_WATCHDOG is not set | ||
782 | CONFIG_HW_RANDOM=y | ||
783 | # CONFIG_GEN_RTC is not set | ||
784 | CONFIG_BLACKFIN_DPMC=y | ||
785 | # CONFIG_DTLK is not set | ||
786 | # CONFIG_R3964 is not set | ||
787 | # CONFIG_RAW_DRIVER is not set | ||
788 | |||
789 | # | ||
790 | # TPM devices | ||
791 | # | ||
792 | # CONFIG_TCG_TPM is not set | ||
793 | |||
794 | # | ||
795 | # I2C support | ||
796 | # | ||
797 | CONFIG_I2C=m | ||
798 | CONFIG_I2C_CHARDEV=m | ||
799 | |||
800 | # | ||
801 | # I2C Algorithms | ||
802 | # | ||
803 | CONFIG_I2C_ALGOBIT=m | ||
804 | # CONFIG_I2C_ALGOPCF is not set | ||
805 | # CONFIG_I2C_ALGOPCA is not set | ||
806 | |||
807 | # | ||
808 | # I2C Hardware Bus support | ||
809 | # | ||
810 | # CONFIG_I2C_BLACKFIN_GPIO is not set | ||
811 | # CONFIG_I2C_OCORES is not set | ||
812 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
813 | # CONFIG_I2C_STUB is not set | ||
814 | # CONFIG_I2C_PCA_ISA is not set | ||
815 | |||
816 | # | ||
817 | # Miscellaneous I2C Chip support | ||
818 | # | ||
819 | # CONFIG_SENSORS_DS1337 is not set | ||
820 | # CONFIG_SENSORS_DS1374 is not set | ||
821 | # CONFIG_SENSORS_AD5252 is not set | ||
822 | # CONFIG_SENSORS_EEPROM is not set | ||
823 | # CONFIG_SENSORS_PCF8574 is not set | ||
824 | # CONFIG_SENSORS_PCF8575 is not set | ||
825 | # CONFIG_SENSORS_PCA9543 is not set | ||
826 | # CONFIG_SENSORS_PCA9539 is not set | ||
827 | # CONFIG_SENSORS_PCF8591 is not set | ||
828 | # CONFIG_SENSORS_MAX6875 is not set | ||
829 | # CONFIG_I2C_DEBUG_CORE is not set | ||
830 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
831 | # CONFIG_I2C_DEBUG_BUS is not set | ||
832 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
833 | |||
834 | # | ||
835 | # SPI support | ||
836 | # | ||
837 | CONFIG_SPI=y | ||
838 | CONFIG_SPI_MASTER=y | ||
839 | |||
840 | # | ||
841 | # SPI Master Controller Drivers | ||
842 | # | ||
843 | # CONFIG_SPI_BITBANG is not set | ||
844 | |||
845 | # | ||
846 | # SPI Protocol Masters | ||
847 | # | ||
848 | CONFIG_SPI_BFIN=y | ||
849 | |||
850 | # | ||
851 | # Dallas's 1-wire bus | ||
852 | # | ||
853 | # CONFIG_W1 is not set | ||
854 | |||
855 | # | ||
856 | # Hardware Monitoring support | ||
857 | # | ||
858 | CONFIG_HWMON=y | ||
859 | # CONFIG_HWMON_VID is not set | ||
860 | # CONFIG_SENSORS_ABITUGURU is not set | ||
861 | # CONFIG_SENSORS_ADM1021 is not set | ||
862 | # CONFIG_SENSORS_ADM1025 is not set | ||
863 | # CONFIG_SENSORS_ADM1026 is not set | ||
864 | # CONFIG_SENSORS_ADM1031 is not set | ||
865 | # CONFIG_SENSORS_ADM9240 is not set | ||
866 | # CONFIG_SENSORS_ASB100 is not set | ||
867 | # CONFIG_SENSORS_ATXP1 is not set | ||
868 | # CONFIG_SENSORS_DS1621 is not set | ||
869 | # CONFIG_SENSORS_F71805F is not set | ||
870 | # CONFIG_SENSORS_FSCHER is not set | ||
871 | # CONFIG_SENSORS_FSCPOS is not set | ||
872 | # CONFIG_SENSORS_GL518SM is not set | ||
873 | # CONFIG_SENSORS_GL520SM is not set | ||
874 | # CONFIG_SENSORS_IT87 is not set | ||
875 | # CONFIG_SENSORS_LM63 is not set | ||
876 | # CONFIG_SENSORS_LM70 is not set | ||
877 | # CONFIG_SENSORS_LM75 is not set | ||
878 | # CONFIG_SENSORS_LM77 is not set | ||
879 | # CONFIG_SENSORS_LM78 is not set | ||
880 | # CONFIG_SENSORS_LM80 is not set | ||
881 | # CONFIG_SENSORS_LM83 is not set | ||
882 | # CONFIG_SENSORS_LM85 is not set | ||
883 | # CONFIG_SENSORS_LM87 is not set | ||
884 | # CONFIG_SENSORS_LM90 is not set | ||
885 | # CONFIG_SENSORS_LM92 is not set | ||
886 | # CONFIG_SENSORS_MAX1619 is not set | ||
887 | # CONFIG_SENSORS_PC87360 is not set | ||
888 | # CONFIG_SENSORS_PC87427 is not set | ||
889 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
890 | # CONFIG_SENSORS_SMSC47M192 is not set | ||
891 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
892 | # CONFIG_SENSORS_VT1211 is not set | ||
893 | # CONFIG_SENSORS_W83781D is not set | ||
894 | # CONFIG_SENSORS_W83791D is not set | ||
895 | # CONFIG_SENSORS_W83792D is not set | ||
896 | # CONFIG_SENSORS_W83793 is not set | ||
897 | # CONFIG_SENSORS_W83L785TS is not set | ||
898 | # CONFIG_SENSORS_W83627HF is not set | ||
899 | # CONFIG_SENSORS_W83627EHF is not set | ||
900 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
901 | |||
902 | # | ||
903 | # Multimedia devices | ||
904 | # | ||
905 | # CONFIG_VIDEO_DEV is not set | ||
906 | |||
907 | # | ||
908 | # Digital Video Broadcasting Devices | ||
909 | # | ||
910 | # CONFIG_DVB is not set | ||
911 | |||
912 | # | ||
913 | # Graphics support | ||
914 | # | ||
915 | CONFIG_FIRMWARE_EDID=y | ||
916 | CONFIG_FB=m | ||
917 | CONFIG_FB_CFB_FILLRECT=m | ||
918 | CONFIG_FB_CFB_COPYAREA=m | ||
919 | CONFIG_FB_CFB_IMAGEBLIT=m | ||
920 | # CONFIG_FB_MACMODES is not set | ||
921 | # CONFIG_FB_BACKLIGHT is not set | ||
922 | # CONFIG_FB_MODE_HELPERS is not set | ||
923 | # CONFIG_FB_TILEBLITTING is not set | ||
924 | CONFIG_FB_BFIN_7171=m | ||
925 | CONFIG_FB_BFIN_7393=m | ||
926 | CONFIG_NTSC=y | ||
927 | # CONFIG_PAL is not set | ||
928 | # CONFIG_NTSC_640x480 is not set | ||
929 | # CONFIG_PAL_640x480 is not set | ||
930 | # CONFIG_NTSC_YCBCR is not set | ||
931 | # CONFIG_PAL_YCBCR is not set | ||
932 | CONFIG_ADV7393_1XMEM=y | ||
933 | # CONFIG_ADV7393_2XMEM is not set | ||
934 | # CONFIG_FB_S1D13XXX is not set | ||
935 | # CONFIG_FB_VIRTUAL is not set | ||
936 | |||
937 | # | ||
938 | # Logo configuration | ||
939 | # | ||
940 | # CONFIG_LOGO is not set | ||
941 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
942 | |||
943 | # | ||
944 | # Sound | ||
945 | # | ||
946 | CONFIG_SOUND=m | ||
947 | |||
948 | # | ||
949 | # Advanced Linux Sound Architecture | ||
950 | # | ||
951 | CONFIG_SND=m | ||
952 | CONFIG_SND_TIMER=m | ||
953 | CONFIG_SND_PCM=m | ||
954 | # CONFIG_SND_SEQUENCER is not set | ||
955 | CONFIG_SND_OSSEMUL=y | ||
956 | CONFIG_SND_MIXER_OSS=m | ||
957 | CONFIG_SND_PCM_OSS=m | ||
958 | CONFIG_SND_PCM_OSS_PLUGINS=y | ||
959 | # CONFIG_SND_DYNAMIC_MINORS is not set | ||
960 | CONFIG_SND_SUPPORT_OLD_API=y | ||
961 | CONFIG_SND_VERBOSE_PROCFS=y | ||
962 | # CONFIG_SND_VERBOSE_PRINTK is not set | ||
963 | # CONFIG_SND_DEBUG is not set | ||
964 | |||
965 | # | ||
966 | # Generic devices | ||
967 | # | ||
968 | # CONFIG_SND_DUMMY is not set | ||
969 | # CONFIG_SND_MTPAV is not set | ||
970 | # CONFIG_SND_SERIAL_U16550 is not set | ||
971 | # CONFIG_SND_MPU401 is not set | ||
972 | |||
973 | # | ||
974 | # Open Sound System | ||
975 | # | ||
976 | # CONFIG_SOUND_PRIME is not set | ||
977 | |||
978 | # | ||
979 | # HID Devices | ||
980 | # | ||
981 | CONFIG_HID=y | ||
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 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
993 | # | ||
994 | |||
995 | # | ||
996 | # USB Gadget Support | ||
997 | # | ||
998 | # CONFIG_USB_GADGET is not set | ||
999 | |||
1000 | # | ||
1001 | # MMC/SD Card support | ||
1002 | # | ||
1003 | # CONFIG_SPI_MMC is not set | ||
1004 | # CONFIG_MMC is not set | ||
1005 | |||
1006 | # | ||
1007 | # LED devices | ||
1008 | # | ||
1009 | # CONFIG_NEW_LEDS is not set | ||
1010 | |||
1011 | # | ||
1012 | # LED drivers | ||
1013 | # | ||
1014 | |||
1015 | # | ||
1016 | # LED Triggers | ||
1017 | # | ||
1018 | |||
1019 | # | ||
1020 | # InfiniBand support | ||
1021 | # | ||
1022 | |||
1023 | # | ||
1024 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
1025 | # | ||
1026 | |||
1027 | # | ||
1028 | # Real Time Clock | ||
1029 | # | ||
1030 | CONFIG_RTC_LIB=y | ||
1031 | CONFIG_RTC_CLASS=y | ||
1032 | CONFIG_RTC_HCTOSYS=y | ||
1033 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
1034 | # CONFIG_RTC_DEBUG is not set | ||
1035 | |||
1036 | # | ||
1037 | # RTC interfaces | ||
1038 | # | ||
1039 | CONFIG_RTC_INTF_SYSFS=y | ||
1040 | CONFIG_RTC_INTF_PROC=y | ||
1041 | CONFIG_RTC_INTF_DEV=y | ||
1042 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
1043 | |||
1044 | # | ||
1045 | # RTC drivers | ||
1046 | # | ||
1047 | # CONFIG_RTC_DRV_X1205 is not set | ||
1048 | # CONFIG_RTC_DRV_DS1307 is not set | ||
1049 | # CONFIG_RTC_DRV_DS1553 is not set | ||
1050 | # CONFIG_RTC_DRV_ISL1208 is not set | ||
1051 | # CONFIG_RTC_DRV_DS1672 is not set | ||
1052 | # CONFIG_RTC_DRV_DS1742 is not set | ||
1053 | # CONFIG_RTC_DRV_PCF8563 is not set | ||
1054 | # CONFIG_RTC_DRV_PCF8583 is not set | ||
1055 | # CONFIG_RTC_DRV_RS5C348 is not set | ||
1056 | # CONFIG_RTC_DRV_RS5C372 is not set | ||
1057 | # CONFIG_RTC_DRV_M48T86 is not set | ||
1058 | # CONFIG_RTC_DRV_TEST is not set | ||
1059 | # CONFIG_RTC_DRV_MAX6902 is not set | ||
1060 | # CONFIG_RTC_DRV_V3020 is not set | ||
1061 | CONFIG_RTC_DRV_BFIN=y | ||
1062 | |||
1063 | # | ||
1064 | # DMA Engine support | ||
1065 | # | ||
1066 | # CONFIG_DMA_ENGINE is not set | ||
1067 | |||
1068 | # | ||
1069 | # DMA Clients | ||
1070 | # | ||
1071 | |||
1072 | # | ||
1073 | # DMA Devices | ||
1074 | # | ||
1075 | |||
1076 | # | ||
1077 | # Virtualization | ||
1078 | # | ||
1079 | |||
1080 | # | ||
1081 | # PBX support | ||
1082 | # | ||
1083 | # CONFIG_PBX is not set | ||
1084 | |||
1085 | # | ||
1086 | # File systems | ||
1087 | # | ||
1088 | CONFIG_EXT2_FS=y | ||
1089 | CONFIG_EXT2_FS_XATTR=y | ||
1090 | # CONFIG_EXT2_FS_POSIX_ACL is not set | ||
1091 | # CONFIG_EXT2_FS_SECURITY is not set | ||
1092 | # CONFIG_EXT3_FS is not set | ||
1093 | # CONFIG_EXT4DEV_FS is not set | ||
1094 | CONFIG_FS_MBCACHE=y | ||
1095 | # CONFIG_REISERFS_FS is not set | ||
1096 | # CONFIG_JFS_FS is not set | ||
1097 | # CONFIG_FS_POSIX_ACL is not set | ||
1098 | # CONFIG_XFS_FS is not set | ||
1099 | # CONFIG_GFS2_FS is not set | ||
1100 | # CONFIG_OCFS2_FS is not set | ||
1101 | # CONFIG_MINIX_FS is not set | ||
1102 | # CONFIG_ROMFS_FS is not set | ||
1103 | CONFIG_INOTIFY=y | ||
1104 | CONFIG_INOTIFY_USER=y | ||
1105 | # CONFIG_QUOTA is not set | ||
1106 | CONFIG_DNOTIFY=y | ||
1107 | # CONFIG_AUTOFS_FS is not set | ||
1108 | # CONFIG_AUTOFS4_FS is not set | ||
1109 | # CONFIG_FUSE_FS is not set | ||
1110 | |||
1111 | # | ||
1112 | # CD-ROM/DVD Filesystems | ||
1113 | # | ||
1114 | # CONFIG_ISO9660_FS is not set | ||
1115 | # CONFIG_UDF_FS is not set | ||
1116 | |||
1117 | # | ||
1118 | # DOS/FAT/NT Filesystems | ||
1119 | # | ||
1120 | # CONFIG_MSDOS_FS is not set | ||
1121 | # CONFIG_VFAT_FS is not set | ||
1122 | # CONFIG_NTFS_FS is not set | ||
1123 | |||
1124 | # | ||
1125 | # Pseudo filesystems | ||
1126 | # | ||
1127 | CONFIG_PROC_FS=y | ||
1128 | CONFIG_PROC_SYSCTL=y | ||
1129 | CONFIG_SYSFS=y | ||
1130 | # CONFIG_TMPFS is not set | ||
1131 | # CONFIG_HUGETLB_PAGE is not set | ||
1132 | CONFIG_RAMFS=y | ||
1133 | # CONFIG_CONFIGFS_FS is not set | ||
1134 | |||
1135 | # | ||
1136 | # Miscellaneous filesystems | ||
1137 | # | ||
1138 | # CONFIG_ADFS_FS is not set | ||
1139 | # CONFIG_AFFS_FS is not set | ||
1140 | # CONFIG_HFS_FS is not set | ||
1141 | # CONFIG_HFSPLUS_FS is not set | ||
1142 | # CONFIG_BEFS_FS is not set | ||
1143 | # CONFIG_BFS_FS is not set | ||
1144 | # CONFIG_EFS_FS is not set | ||
1145 | CONFIG_YAFFS_FS=m | ||
1146 | CONFIG_YAFFS_YAFFS1=y | ||
1147 | # CONFIG_YAFFS_DOES_ECC is not set | ||
1148 | CONFIG_YAFFS_YAFFS2=y | ||
1149 | CONFIG_YAFFS_AUTO_YAFFS2=y | ||
1150 | # CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set | ||
1151 | CONFIG_YAFFS_CHECKPOINT_RESERVED_BLOCKS=10 | ||
1152 | # CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set | ||
1153 | # CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set | ||
1154 | CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y | ||
1155 | CONFIG_JFFS2_FS=m | ||
1156 | CONFIG_JFFS2_FS_DEBUG=0 | ||
1157 | CONFIG_JFFS2_FS_WRITEBUFFER=y | ||
1158 | # CONFIG_JFFS2_SUMMARY is not set | ||
1159 | # CONFIG_JFFS2_FS_XATTR is not set | ||
1160 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | ||
1161 | CONFIG_JFFS2_ZLIB=y | ||
1162 | CONFIG_JFFS2_RTIME=y | ||
1163 | # CONFIG_JFFS2_RUBIN is not set | ||
1164 | # CONFIG_CRAMFS is not set | ||
1165 | # CONFIG_VXFS_FS is not set | ||
1166 | # CONFIG_HPFS_FS is not set | ||
1167 | # CONFIG_QNX4FS_FS is not set | ||
1168 | # CONFIG_SYSV_FS is not set | ||
1169 | # CONFIG_UFS_FS is not set | ||
1170 | |||
1171 | # | ||
1172 | # Network File Systems | ||
1173 | # | ||
1174 | CONFIG_NFS_FS=m | ||
1175 | CONFIG_NFS_V3=y | ||
1176 | # CONFIG_NFS_V3_ACL is not set | ||
1177 | # CONFIG_NFS_V4 is not set | ||
1178 | # CONFIG_NFS_DIRECTIO is not set | ||
1179 | # CONFIG_NFSD is not set | ||
1180 | CONFIG_LOCKD=m | ||
1181 | CONFIG_LOCKD_V4=y | ||
1182 | CONFIG_NFS_COMMON=y | ||
1183 | CONFIG_SUNRPC=m | ||
1184 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
1185 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
1186 | CONFIG_SMB_FS=m | ||
1187 | # CONFIG_SMB_NLS_DEFAULT is not set | ||
1188 | # CONFIG_CIFS is not set | ||
1189 | # CONFIG_NCP_FS is not set | ||
1190 | # CONFIG_CODA_FS is not set | ||
1191 | # CONFIG_AFS_FS is not set | ||
1192 | # CONFIG_9P_FS is not set | ||
1193 | |||
1194 | # | ||
1195 | # Partition Types | ||
1196 | # | ||
1197 | # CONFIG_PARTITION_ADVANCED is not set | ||
1198 | CONFIG_MSDOS_PARTITION=y | ||
1199 | |||
1200 | # | ||
1201 | # Native Language Support | ||
1202 | # | ||
1203 | CONFIG_NLS=m | ||
1204 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
1205 | # CONFIG_NLS_CODEPAGE_437 is not set | ||
1206 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
1207 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
1208 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
1209 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
1210 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
1211 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
1212 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
1213 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
1214 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
1215 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
1216 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
1217 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
1218 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
1219 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
1220 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
1221 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
1222 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
1223 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
1224 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
1225 | # CONFIG_NLS_ISO8859_8 is not set | ||
1226 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
1227 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
1228 | # CONFIG_NLS_ASCII is not set | ||
1229 | # CONFIG_NLS_ISO8859_1 is not set | ||
1230 | # CONFIG_NLS_ISO8859_2 is not set | ||
1231 | # CONFIG_NLS_ISO8859_3 is not set | ||
1232 | # CONFIG_NLS_ISO8859_4 is not set | ||
1233 | # CONFIG_NLS_ISO8859_5 is not set | ||
1234 | # CONFIG_NLS_ISO8859_6 is not set | ||
1235 | # CONFIG_NLS_ISO8859_7 is not set | ||
1236 | # CONFIG_NLS_ISO8859_9 is not set | ||
1237 | # CONFIG_NLS_ISO8859_13 is not set | ||
1238 | # CONFIG_NLS_ISO8859_14 is not set | ||
1239 | # CONFIG_NLS_ISO8859_15 is not set | ||
1240 | # CONFIG_NLS_KOI8_R is not set | ||
1241 | # CONFIG_NLS_KOI8_U is not set | ||
1242 | # CONFIG_NLS_UTF8 is not set | ||
1243 | |||
1244 | # | ||
1245 | # Distributed Lock Manager | ||
1246 | # | ||
1247 | # CONFIG_DLM is not set | ||
1248 | |||
1249 | # | ||
1250 | # Profiling support | ||
1251 | # | ||
1252 | # CONFIG_PROFILING is not set | ||
1253 | |||
1254 | # | ||
1255 | # Kernel hacking | ||
1256 | # | ||
1257 | # CONFIG_PRINTK_TIME is not set | ||
1258 | CONFIG_ENABLE_MUST_CHECK=y | ||
1259 | # CONFIG_MAGIC_SYSRQ is not set | ||
1260 | # CONFIG_UNUSED_SYMBOLS is not set | ||
1261 | # CONFIG_DEBUG_FS is not set | ||
1262 | # CONFIG_HEADERS_CHECK is not set | ||
1263 | # CONFIG_DEBUG_KERNEL is not set | ||
1264 | CONFIG_LOG_BUF_SHIFT=14 | ||
1265 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
1266 | # CONFIG_DEBUG_SERIAL_EARLY_INIT is not set | ||
1267 | CONFIG_DEBUG_HUNT_FOR_ZERO=y | ||
1268 | # CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set | ||
1269 | CONFIG_CPLB_INFO=y | ||
1270 | CONFIG_ACCESS_CHECK=y | ||
1271 | |||
1272 | # | ||
1273 | # Security options | ||
1274 | # | ||
1275 | # CONFIG_KEYS is not set | ||
1276 | CONFIG_SECURITY=y | ||
1277 | # CONFIG_SECURITY_NETWORK is not set | ||
1278 | CONFIG_SECURITY_CAPABILITIES=y | ||
1279 | |||
1280 | # | ||
1281 | # Cryptographic options | ||
1282 | # | ||
1283 | # CONFIG_CRYPTO is not set | ||
1284 | |||
1285 | # | ||
1286 | # Library routines | ||
1287 | # | ||
1288 | CONFIG_BITREVERSE=y | ||
1289 | CONFIG_CRC_CCITT=m | ||
1290 | # CONFIG_CRC16 is not set | ||
1291 | CONFIG_CRC32=y | ||
1292 | # CONFIG_LIBCRC32C is not set | ||
1293 | CONFIG_ZLIB_INFLATE=y | ||
1294 | CONFIG_ZLIB_DEFLATE=m | ||
1295 | CONFIG_PLIST=y | ||
1296 | CONFIG_IOMAP_COPY=y | ||
diff --git a/arch/blackfin/configs/BF537-STAMP_defconfig b/arch/blackfin/configs/BF537-STAMP_defconfig new file mode 100644 index 000000000000..8ed67dc450fd --- /dev/null +++ b/arch/blackfin/configs/BF537-STAMP_defconfig | |||
@@ -0,0 +1,1332 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.20.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_BFIN=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_CALIBRATE_DELAY=y | ||
18 | CONFIG_FORCE_MAX_ZONEORDER=14 | ||
19 | CONFIG_IRQCHIP_DEMUX_GPIO=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_POSIX_MQUEUE is not set | ||
37 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
38 | # CONFIG_TASKSTATS is not set | ||
39 | # CONFIG_UTS_NS is not set | ||
40 | # CONFIG_AUDIT is not set | ||
41 | # CONFIG_IKCONFIG is not set | ||
42 | CONFIG_SYSFS_DEPRECATED=y | ||
43 | # CONFIG_RELAY is not set | ||
44 | CONFIG_INITRAMFS_SOURCE="" | ||
45 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
46 | CONFIG_SYSCTL=y | ||
47 | CONFIG_EMBEDDED=y | ||
48 | CONFIG_UID16=y | ||
49 | CONFIG_SYSCTL_SYSCALL=y | ||
50 | CONFIG_KALLSYMS=y | ||
51 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
52 | CONFIG_HOTPLUG=y | ||
53 | CONFIG_PRINTK=y | ||
54 | CONFIG_BUG=y | ||
55 | CONFIG_ELF_CORE=y | ||
56 | CONFIG_BASE_FULL=y | ||
57 | CONFIG_FUTEX=y | ||
58 | CONFIG_EPOLL=y | ||
59 | CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3 | ||
60 | # CONFIG_LIMIT_PAGECACHE is not set | ||
61 | CONFIG_BUDDY=y | ||
62 | # CONFIG_NP2 is not set | ||
63 | CONFIG_SLAB=y | ||
64 | CONFIG_VM_EVENT_COUNTERS=y | ||
65 | CONFIG_RT_MUTEXES=y | ||
66 | CONFIG_TINY_SHMEM=y | ||
67 | CONFIG_BASE_SMALL=0 | ||
68 | # CONFIG_SLOB is not set | ||
69 | |||
70 | # | ||
71 | # Loadable module support | ||
72 | # | ||
73 | CONFIG_MODULES=y | ||
74 | CONFIG_MODULE_UNLOAD=y | ||
75 | # CONFIG_MODULE_FORCE_UNLOAD is not set | ||
76 | # CONFIG_MODVERSIONS is not set | ||
77 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
78 | CONFIG_KMOD=y | ||
79 | |||
80 | # | ||
81 | # Block layer | ||
82 | # | ||
83 | CONFIG_BLOCK=y | ||
84 | # CONFIG_LBD is not set | ||
85 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
86 | # CONFIG_LSF is not set | ||
87 | |||
88 | # | ||
89 | # IO Schedulers | ||
90 | # | ||
91 | CONFIG_IOSCHED_NOOP=y | ||
92 | CONFIG_IOSCHED_AS=y | ||
93 | # CONFIG_IOSCHED_DEADLINE is not set | ||
94 | CONFIG_IOSCHED_CFQ=y | ||
95 | CONFIG_DEFAULT_AS=y | ||
96 | # CONFIG_DEFAULT_DEADLINE is not set | ||
97 | # CONFIG_DEFAULT_CFQ is not set | ||
98 | # CONFIG_DEFAULT_NOOP is not set | ||
99 | CONFIG_DEFAULT_IOSCHED="anticipatory" | ||
100 | # CONFIG_PREEMPT_NONE is not set | ||
101 | CONFIG_PREEMPT_VOLUNTARY=y | ||
102 | # CONFIG_PREEMPT is not set | ||
103 | |||
104 | # | ||
105 | # Blackfin Processor Options | ||
106 | # | ||
107 | |||
108 | # | ||
109 | # Processor and Board Settings | ||
110 | # | ||
111 | # CONFIG_BF531 is not set | ||
112 | # CONFIG_BF532 is not set | ||
113 | # CONFIG_BF533 is not set | ||
114 | # CONFIG_BF534 is not set | ||
115 | # CONFIG_BF536 is not set | ||
116 | CONFIG_BF537=y | ||
117 | # CONFIG_BF561 is not set | ||
118 | CONFIG_BF_REV_0_2=y | ||
119 | # CONFIG_BF_REV_0_3 is not set | ||
120 | # CONFIG_BF_REV_0_4 is not set | ||
121 | # CONFIG_BF_REV_0_5 is not set | ||
122 | CONFIG_BFIN_SINGLE_CORE=y | ||
123 | # CONFIG_BFIN533_EZKIT is not set | ||
124 | # CONFIG_BFIN533_STAMP is not set | ||
125 | CONFIG_BFIN537_STAMP=y | ||
126 | # CONFIG_BFIN533_BLUETECHNIX_CM is not set | ||
127 | # CONFIG_BFIN537_BLUETECHNIX_CM is not set | ||
128 | # CONFIG_BFIN561_BLUETECHNIX_CM is not set | ||
129 | # CONFIG_BFIN561_EZKIT is not set | ||
130 | # CONFIG_PNAV10 is not set | ||
131 | # CONFIG_GENERIC_BOARD is not set | ||
132 | CONFIG_MEM_MT48LC32M8A2_75=y | ||
133 | CONFIG_IRQ_PLL_WAKEUP=7 | ||
134 | |||
135 | # | ||
136 | # BF537 Specific Configuration | ||
137 | # | ||
138 | |||
139 | # | ||
140 | # PORT F/G Selection | ||
141 | # | ||
142 | CONFIG_BF537_PORT_F=y | ||
143 | # CONFIG_BF537_PORT_G is not set | ||
144 | # CONFIG_BF537_PORT_H is not set | ||
145 | |||
146 | # | ||
147 | # Interrupt Priority Assignment | ||
148 | # | ||
149 | |||
150 | # | ||
151 | # Priority | ||
152 | # | ||
153 | CONFIG_IRQ_DMA_ERROR=7 | ||
154 | CONFIG_IRQ_ERROR=7 | ||
155 | CONFIG_IRQ_RTC=8 | ||
156 | CONFIG_IRQ_PPI=8 | ||
157 | CONFIG_IRQ_SPORT0_RX=9 | ||
158 | CONFIG_IRQ_SPORT0_TX=9 | ||
159 | CONFIG_IRQ_SPORT1_RX=9 | ||
160 | CONFIG_IRQ_SPORT1_TX=9 | ||
161 | CONFIG_IRQ_TWI=10 | ||
162 | CONFIG_IRQ_SPI=10 | ||
163 | CONFIG_IRQ_UART0_RX=10 | ||
164 | CONFIG_IRQ_UART0_TX=10 | ||
165 | CONFIG_IRQ_UART1_RX=10 | ||
166 | CONFIG_IRQ_UART1_TX=10 | ||
167 | CONFIG_IRQ_CAN_RX=11 | ||
168 | CONFIG_IRQ_CAN_TX=11 | ||
169 | CONFIG_IRQ_MAC_RX=11 | ||
170 | CONFIG_IRQ_MAC_TX=11 | ||
171 | CONFIG_IRQ_TMR0=12 | ||
172 | CONFIG_IRQ_TMR1=12 | ||
173 | CONFIG_IRQ_TMR2=12 | ||
174 | CONFIG_IRQ_TMR3=12 | ||
175 | CONFIG_IRQ_TMR4=12 | ||
176 | CONFIG_IRQ_TMR5=12 | ||
177 | CONFIG_IRQ_TMR6=12 | ||
178 | CONFIG_IRQ_TMR7=12 | ||
179 | CONFIG_IRQ_PROG_INTA=12 | ||
180 | CONFIG_IRQ_PORTG_INTB=12 | ||
181 | CONFIG_IRQ_MEM_DMA0=13 | ||
182 | CONFIG_IRQ_MEM_DMA1=13 | ||
183 | CONFIG_IRQ_WATCH=13 | ||
184 | |||
185 | # | ||
186 | # Board customizations | ||
187 | # | ||
188 | # CONFIG_CMDLINE_BOOL is not set | ||
189 | |||
190 | # | ||
191 | # Board Setup | ||
192 | # | ||
193 | CONFIG_CLKIN_HZ=25000000 | ||
194 | CONFIG_MEM_SIZE=64 | ||
195 | CONFIG_MEM_ADD_WIDTH=10 | ||
196 | CONFIG_BOOT_LOAD=0x1000 | ||
197 | |||
198 | # | ||
199 | # Console UART Setup | ||
200 | # | ||
201 | # CONFIG_BAUD_9600 is not set | ||
202 | # CONFIG_BAUD_19200 is not set | ||
203 | # CONFIG_BAUD_38400 is not set | ||
204 | CONFIG_BAUD_57600=y | ||
205 | # CONFIG_BAUD_115200 is not set | ||
206 | CONFIG_BAUD_NO_PARITY=y | ||
207 | # CONFIG_BAUD_PARITY is not set | ||
208 | CONFIG_BAUD_1_STOPBIT=y | ||
209 | # CONFIG_BAUD_2_STOPBIT is not set | ||
210 | |||
211 | # | ||
212 | # Blackfin Kernel Optimizations | ||
213 | # | ||
214 | |||
215 | # | ||
216 | # Timer Tick | ||
217 | # | ||
218 | # CONFIG_HZ_100 is not set | ||
219 | CONFIG_HZ_250=y | ||
220 | # CONFIG_HZ_300 is not set | ||
221 | # CONFIG_HZ_1000 is not set | ||
222 | CONFIG_HZ=250 | ||
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 is not set | ||
239 | # CONFIG_SYSCALL_TAB_L1 is not set | ||
240 | # CONFIG_CPLB_SWITCH_TAB_L1 is not set | ||
241 | CONFIG_RAMKERNEL=y | ||
242 | # CONFIG_ROMKERNEL is not set | ||
243 | CONFIG_SELECT_MEMORY_MODEL=y | ||
244 | CONFIG_FLATMEM_MANUAL=y | ||
245 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
246 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
247 | CONFIG_FLATMEM=y | ||
248 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
249 | # CONFIG_SPARSEMEM_STATIC is not set | ||
250 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
251 | # CONFIG_RESOURCES_64BIT is not set | ||
252 | CONFIG_LARGE_ALLOCS=y | ||
253 | CONFIG_BFIN_DMA_5XX=y | ||
254 | # CONFIG_DMA_UNCACHED_2M is not set | ||
255 | CONFIG_DMA_UNCACHED_1M=y | ||
256 | # CONFIG_DMA_UNCACHED_NONE is not set | ||
257 | |||
258 | # | ||
259 | # Cache Support | ||
260 | # | ||
261 | CONFIG_BLKFIN_CACHE=y | ||
262 | CONFIG_BLKFIN_DCACHE=y | ||
263 | # CONFIG_BLKFIN_DCACHE_BANKA is not set | ||
264 | # CONFIG_BLKFIN_CACHE_LOCK is not set | ||
265 | # CONFIG_BLKFIN_WB is not set | ||
266 | CONFIG_BLKFIN_WT=y | ||
267 | CONFIG_L1_MAX_PIECE=16 | ||
268 | |||
269 | # | ||
270 | # Clock Settings | ||
271 | # | ||
272 | # CONFIG_BFIN_KERNEL_CLOCK is not set | ||
273 | |||
274 | # | ||
275 | # Asynchonous Memory Configuration | ||
276 | # | ||
277 | |||
278 | # | ||
279 | # EBIU_AMBCTL Global Control | ||
280 | # | ||
281 | CONFIG_C_AMCKEN=y | ||
282 | CONFIG_C_CDPRIO=y | ||
283 | # CONFIG_C_AMBEN is not set | ||
284 | # CONFIG_C_AMBEN_B0 is not set | ||
285 | # CONFIG_C_AMBEN_B0_B1 is not set | ||
286 | # CONFIG_C_AMBEN_B0_B1_B2 is not set | ||
287 | CONFIG_C_AMBEN_ALL=y | ||
288 | |||
289 | # | ||
290 | # EBIU_AMBCTL Control | ||
291 | # | ||
292 | CONFIG_BANK_0=0x7BB0 | ||
293 | CONFIG_BANK_1=0x7BB0 | ||
294 | CONFIG_BANK_2=0x7BB0 | ||
295 | CONFIG_BANK_3=0x99B3 | ||
296 | |||
297 | # | ||
298 | # Bus options (PCI, PCMCIA, EISA, MCA, ISA) | ||
299 | # | ||
300 | # CONFIG_PCI is not set | ||
301 | |||
302 | # | ||
303 | # PCCARD (PCMCIA/CardBus) support | ||
304 | # | ||
305 | # CONFIG_PCCARD is not set | ||
306 | |||
307 | # | ||
308 | # PCI Hotplug Support | ||
309 | # | ||
310 | |||
311 | # | ||
312 | # Executable file formats | ||
313 | # | ||
314 | CONFIG_BINFMT_ELF_FDPIC=y | ||
315 | CONFIG_BINFMT_FLAT=y | ||
316 | CONFIG_BINFMT_ZFLAT=y | ||
317 | # CONFIG_BINFMT_SHARED_FLAT is not set | ||
318 | # CONFIG_BINFMT_MISC is not set | ||
319 | |||
320 | # | ||
321 | # Power management options | ||
322 | # | ||
323 | CONFIG_PM=y | ||
324 | CONFIG_PM_LEGACY=y | ||
325 | # CONFIG_PM_DEBUG is not set | ||
326 | # CONFIG_PM_SYSFS_DEPRECATED is not set | ||
327 | CONFIG_PM_WAKEUP_GPIO_BY_SIC_IWR=y | ||
328 | # CONFIG_PM_WAKEUP_BY_GPIO is not set | ||
329 | # CONFIG_PM_WAKEUP_GPIO_API is not set | ||
330 | CONFIG_PM_WAKEUP_SIC_IWR=0x80000000 | ||
331 | |||
332 | # | ||
333 | # CPU Frequency scaling | ||
334 | # | ||
335 | # CONFIG_CPU_FREQ is not set | ||
336 | |||
337 | # | ||
338 | # Networking | ||
339 | # | ||
340 | CONFIG_NET=y | ||
341 | |||
342 | # | ||
343 | # Networking options | ||
344 | # | ||
345 | # CONFIG_NETDEBUG is not set | ||
346 | CONFIG_PACKET=y | ||
347 | # CONFIG_PACKET_MMAP is not set | ||
348 | CONFIG_UNIX=y | ||
349 | CONFIG_XFRM=y | ||
350 | # CONFIG_XFRM_USER is not set | ||
351 | # CONFIG_XFRM_SUB_POLICY is not set | ||
352 | # CONFIG_NET_KEY is not set | ||
353 | CONFIG_INET=y | ||
354 | # CONFIG_IP_MULTICAST is not set | ||
355 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
356 | CONFIG_IP_FIB_HASH=y | ||
357 | CONFIG_IP_PNP=y | ||
358 | # CONFIG_IP_PNP_DHCP is not set | ||
359 | # CONFIG_IP_PNP_BOOTP is not set | ||
360 | # CONFIG_IP_PNP_RARP is not set | ||
361 | # CONFIG_NET_IPIP is not set | ||
362 | # CONFIG_NET_IPGRE is not set | ||
363 | # CONFIG_ARPD is not set | ||
364 | CONFIG_SYN_COOKIES=y | ||
365 | # CONFIG_INET_AH is not set | ||
366 | # CONFIG_INET_ESP is not set | ||
367 | # CONFIG_INET_IPCOMP is not set | ||
368 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
369 | # CONFIG_INET_TUNNEL is not set | ||
370 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
371 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
372 | CONFIG_INET_XFRM_MODE_BEET=y | ||
373 | CONFIG_INET_DIAG=y | ||
374 | CONFIG_INET_TCP_DIAG=y | ||
375 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
376 | CONFIG_TCP_CONG_CUBIC=y | ||
377 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
378 | # CONFIG_TCP_MD5SIG is not set | ||
379 | # CONFIG_IPV6 is not set | ||
380 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
381 | # CONFIG_INET6_TUNNEL is not set | ||
382 | # CONFIG_NETLABEL is not set | ||
383 | # CONFIG_NETWORK_SECMARK is not set | ||
384 | # CONFIG_NETFILTER is not set | ||
385 | |||
386 | # | ||
387 | # DCCP Configuration (EXPERIMENTAL) | ||
388 | # | ||
389 | # CONFIG_IP_DCCP is not set | ||
390 | |||
391 | # | ||
392 | # SCTP Configuration (EXPERIMENTAL) | ||
393 | # | ||
394 | # CONFIG_IP_SCTP is not set | ||
395 | |||
396 | # | ||
397 | # TIPC Configuration (EXPERIMENTAL) | ||
398 | # | ||
399 | # CONFIG_TIPC is not set | ||
400 | # CONFIG_ATM is not set | ||
401 | # CONFIG_BRIDGE is not set | ||
402 | # CONFIG_VLAN_8021Q is not set | ||
403 | # CONFIG_DECNET is not set | ||
404 | # CONFIG_LLC2 is not set | ||
405 | # CONFIG_IPX is not set | ||
406 | # CONFIG_ATALK is not set | ||
407 | # CONFIG_X25 is not set | ||
408 | # CONFIG_LAPB is not set | ||
409 | # CONFIG_ECONET is not set | ||
410 | # CONFIG_WAN_ROUTER is not set | ||
411 | |||
412 | # | ||
413 | # QoS and/or fair queueing | ||
414 | # | ||
415 | # CONFIG_NET_SCHED is not set | ||
416 | |||
417 | # | ||
418 | # Network testing | ||
419 | # | ||
420 | # CONFIG_NET_PKTGEN is not set | ||
421 | # CONFIG_HAMRADIO is not set | ||
422 | CONFIG_IRDA=m | ||
423 | |||
424 | # | ||
425 | # IrDA protocols | ||
426 | # | ||
427 | CONFIG_IRLAN=m | ||
428 | CONFIG_IRCOMM=m | ||
429 | # CONFIG_IRDA_ULTRA is not set | ||
430 | |||
431 | # | ||
432 | # IrDA options | ||
433 | # | ||
434 | CONFIG_IRDA_CACHE_LAST_LSAP=y | ||
435 | # CONFIG_IRDA_FAST_RR is not set | ||
436 | # CONFIG_IRDA_DEBUG is not set | ||
437 | |||
438 | # | ||
439 | # Infrared-port device drivers | ||
440 | # | ||
441 | |||
442 | # | ||
443 | # SIR device drivers | ||
444 | # | ||
445 | CONFIG_IRTTY_SIR=m | ||
446 | |||
447 | # | ||
448 | # Dongle support | ||
449 | # | ||
450 | # CONFIG_DONGLE is not set | ||
451 | |||
452 | # | ||
453 | # Old SIR device drivers | ||
454 | # | ||
455 | # CONFIG_IRPORT_SIR is not set | ||
456 | |||
457 | # | ||
458 | # Old Serial dongle support | ||
459 | # | ||
460 | |||
461 | # | ||
462 | # FIR device drivers | ||
463 | # | ||
464 | # CONFIG_BT is not set | ||
465 | # CONFIG_IEEE80211 is not set | ||
466 | |||
467 | # | ||
468 | # Device Drivers | ||
469 | # | ||
470 | |||
471 | # | ||
472 | # Generic Driver Options | ||
473 | # | ||
474 | CONFIG_STANDALONE=y | ||
475 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
476 | # CONFIG_FW_LOADER is not set | ||
477 | # CONFIG_SYS_HYPERVISOR is not set | ||
478 | |||
479 | # | ||
480 | # Connector - unified userspace <-> kernelspace linker | ||
481 | # | ||
482 | # CONFIG_CONNECTOR is not set | ||
483 | |||
484 | # | ||
485 | # Memory Technology Devices (MTD) | ||
486 | # | ||
487 | CONFIG_MTD=y | ||
488 | # CONFIG_MTD_DEBUG is not set | ||
489 | # CONFIG_MTD_CONCAT is not set | ||
490 | CONFIG_MTD_PARTITIONS=y | ||
491 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
492 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
493 | |||
494 | # | ||
495 | # User Modules And Translation Layers | ||
496 | # | ||
497 | CONFIG_MTD_CHAR=m | ||
498 | CONFIG_MTD_BLKDEVS=y | ||
499 | CONFIG_MTD_BLOCK=y | ||
500 | # CONFIG_FTL is not set | ||
501 | # CONFIG_NFTL is not set | ||
502 | # CONFIG_INFTL is not set | ||
503 | # CONFIG_RFD_FTL is not set | ||
504 | # CONFIG_SSFDC is not set | ||
505 | |||
506 | # | ||
507 | # RAM/ROM/Flash chip drivers | ||
508 | # | ||
509 | # CONFIG_MTD_CFI is not set | ||
510 | CONFIG_MTD_JEDECPROBE=m | ||
511 | CONFIG_MTD_GEN_PROBE=m | ||
512 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
513 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
514 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
515 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
516 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
517 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
518 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
519 | CONFIG_MTD_CFI_I1=y | ||
520 | CONFIG_MTD_CFI_I2=y | ||
521 | # CONFIG_MTD_CFI_I4 is not set | ||
522 | # CONFIG_MTD_CFI_I8 is not set | ||
523 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
524 | # CONFIG_MTD_CFI_AMDSTD is not set | ||
525 | # CONFIG_MTD_CFI_STAA is not set | ||
526 | CONFIG_MTD_MW320D=m | ||
527 | CONFIG_MTD_RAM=y | ||
528 | CONFIG_MTD_ROM=m | ||
529 | # CONFIG_MTD_ABSENT is not set | ||
530 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
531 | |||
532 | # | ||
533 | # Mapping drivers for chip access | ||
534 | # | ||
535 | CONFIG_MTD_COMPLEX_MAPPINGS=y | ||
536 | # CONFIG_MTD_PHYSMAP is not set | ||
537 | CONFIG_MTD_BF5xx=m | ||
538 | CONFIG_BFIN_FLASH_SIZE=0x400000 | ||
539 | CONFIG_EBIU_FLASH_BASE=0x20000000 | ||
540 | |||
541 | # | ||
542 | # FLASH_EBIU_AMBCTL Control | ||
543 | # | ||
544 | CONFIG_BFIN_FLASH_BANK_0=0x7BB0 | ||
545 | CONFIG_BFIN_FLASH_BANK_1=0x7BB0 | ||
546 | CONFIG_BFIN_FLASH_BANK_2=0x7BB0 | ||
547 | CONFIG_BFIN_FLASH_BANK_3=0x7BB0 | ||
548 | # CONFIG_MTD_UCLINUX is not set | ||
549 | # CONFIG_MTD_PLATRAM is not set | ||
550 | |||
551 | # | ||
552 | # Self-contained MTD device drivers | ||
553 | # | ||
554 | # CONFIG_MTD_DATAFLASH is not set | ||
555 | # CONFIG_MTD_M25P80 is not set | ||
556 | # CONFIG_MTD_SLRAM is not set | ||
557 | # CONFIG_MTD_PHRAM is not set | ||
558 | # CONFIG_MTD_MTDRAM is not set | ||
559 | # CONFIG_MTD_BLOCK2MTD is not set | ||
560 | |||
561 | # | ||
562 | # Disk-On-Chip Device Drivers | ||
563 | # | ||
564 | # CONFIG_MTD_DOC2000 is not set | ||
565 | # CONFIG_MTD_DOC2001 is not set | ||
566 | # CONFIG_MTD_DOC2001PLUS is not set | ||
567 | |||
568 | # | ||
569 | # NAND Flash Device Drivers | ||
570 | # | ||
571 | CONFIG_MTD_NAND=m | ||
572 | # CONFIG_MTD_NAND_VERIFY_WRITE is not set | ||
573 | # CONFIG_MTD_NAND_ECC_SMC is not set | ||
574 | CONFIG_MTD_NAND_BFIN=m | ||
575 | CONFIG_BFIN_NAND_BASE=0x20212000 | ||
576 | CONFIG_BFIN_NAND_CLE=2 | ||
577 | CONFIG_BFIN_NAND_ALE=1 | ||
578 | CONFIG_BFIN_NAND_READY=3 | ||
579 | CONFIG_MTD_NAND_IDS=m | ||
580 | # CONFIG_MTD_NAND_DISKONCHIP is not set | ||
581 | # CONFIG_MTD_NAND_NANDSIM is not set | ||
582 | |||
583 | # | ||
584 | # OneNAND Flash Device Drivers | ||
585 | # | ||
586 | # CONFIG_MTD_ONENAND is not set | ||
587 | |||
588 | # | ||
589 | # Parallel port support | ||
590 | # | ||
591 | # CONFIG_PARPORT is not set | ||
592 | |||
593 | # | ||
594 | # Plug and Play support | ||
595 | # | ||
596 | |||
597 | # | ||
598 | # Block devices | ||
599 | # | ||
600 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
601 | # CONFIG_BLK_DEV_LOOP is not set | ||
602 | # CONFIG_BLK_DEV_NBD is not set | ||
603 | CONFIG_BLK_DEV_RAM=y | ||
604 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
605 | CONFIG_BLK_DEV_RAM_SIZE=4096 | ||
606 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | ||
607 | # CONFIG_BLK_DEV_INITRD is not set | ||
608 | # CONFIG_CDROM_PKTCDVD is not set | ||
609 | # CONFIG_ATA_OVER_ETH is not set | ||
610 | |||
611 | # | ||
612 | # Misc devices | ||
613 | # | ||
614 | # CONFIG_TIFM_CORE is not set | ||
615 | |||
616 | # | ||
617 | # ATA/ATAPI/MFM/RLL support | ||
618 | # | ||
619 | # CONFIG_IDE is not set | ||
620 | |||
621 | # | ||
622 | # SCSI device support | ||
623 | # | ||
624 | # CONFIG_RAID_ATTRS is not set | ||
625 | # CONFIG_SCSI is not set | ||
626 | # CONFIG_SCSI_NETLINK is not set | ||
627 | |||
628 | # | ||
629 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
630 | # | ||
631 | # CONFIG_ATA is not set | ||
632 | |||
633 | # | ||
634 | # Multi-device support (RAID and LVM) | ||
635 | # | ||
636 | # CONFIG_MD is not set | ||
637 | |||
638 | # | ||
639 | # Fusion MPT device support | ||
640 | # | ||
641 | # CONFIG_FUSION is not set | ||
642 | |||
643 | # | ||
644 | # IEEE 1394 (FireWire) support | ||
645 | # | ||
646 | |||
647 | # | ||
648 | # I2O device support | ||
649 | # | ||
650 | |||
651 | # | ||
652 | # Network device support | ||
653 | # | ||
654 | CONFIG_NETDEVICES=y | ||
655 | # CONFIG_DUMMY is not set | ||
656 | # CONFIG_BONDING is not set | ||
657 | # CONFIG_EQUALIZER is not set | ||
658 | # CONFIG_TUN is not set | ||
659 | |||
660 | # | ||
661 | # PHY device support | ||
662 | # | ||
663 | # CONFIG_PHYLIB is not set | ||
664 | |||
665 | # | ||
666 | # Ethernet (10 or 100Mbit) | ||
667 | # | ||
668 | CONFIG_NET_ETHERNET=y | ||
669 | CONFIG_MII=y | ||
670 | # CONFIG_SMC91X is not set | ||
671 | CONFIG_BFIN_MAC=y | ||
672 | CONFIG_BFIN_MAC_USE_L1=y | ||
673 | CONFIG_BFIN_TX_DESC_NUM=10 | ||
674 | CONFIG_BFIN_RX_DESC_NUM=20 | ||
675 | # CONFIG_BFIN_MAC_RMII is not set | ||
676 | |||
677 | # | ||
678 | # Ethernet (1000 Mbit) | ||
679 | # | ||
680 | |||
681 | # | ||
682 | # Ethernet (10000 Mbit) | ||
683 | # | ||
684 | |||
685 | # | ||
686 | # Token Ring devices | ||
687 | # | ||
688 | |||
689 | # | ||
690 | # Wireless LAN (non-hamradio) | ||
691 | # | ||
692 | # CONFIG_NET_RADIO is not set | ||
693 | |||
694 | # | ||
695 | # Wan interfaces | ||
696 | # | ||
697 | # CONFIG_WAN is not set | ||
698 | # CONFIG_PPP is not set | ||
699 | # CONFIG_SLIP is not set | ||
700 | # CONFIG_SHAPER is not set | ||
701 | # CONFIG_NETCONSOLE is not set | ||
702 | # CONFIG_NETPOLL is not set | ||
703 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
704 | |||
705 | # | ||
706 | # ISDN subsystem | ||
707 | # | ||
708 | # CONFIG_ISDN is not set | ||
709 | |||
710 | # | ||
711 | # Telephony Support | ||
712 | # | ||
713 | # CONFIG_PHONE is not set | ||
714 | |||
715 | # | ||
716 | # Input device support | ||
717 | # | ||
718 | CONFIG_INPUT=y | ||
719 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
720 | |||
721 | # | ||
722 | # Userland interfaces | ||
723 | # | ||
724 | # CONFIG_INPUT_MOUSEDEV is not set | ||
725 | # CONFIG_INPUT_JOYDEV is not set | ||
726 | # CONFIG_INPUT_TSDEV is not set | ||
727 | CONFIG_INPUT_EVDEV=m | ||
728 | # CONFIG_INPUT_EVBUG is not set | ||
729 | |||
730 | # | ||
731 | # Input Device Drivers | ||
732 | # | ||
733 | # CONFIG_INPUT_KEYBOARD is not set | ||
734 | # CONFIG_INPUT_MOUSE is not set | ||
735 | # CONFIG_INPUT_JOYSTICK is not set | ||
736 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
737 | CONFIG_INPUT_MISC=y | ||
738 | # CONFIG_INPUT_UINPUT is not set | ||
739 | # CONFIG_BF53X_PFBUTTONS is not set | ||
740 | CONFIG_TWI_KEYPAD=m | ||
741 | CONFIG_BFIN_TWIKEYPAD_IRQ_PFX=72 | ||
742 | |||
743 | # | ||
744 | # Hardware I/O ports | ||
745 | # | ||
746 | # CONFIG_SERIO is not set | ||
747 | # CONFIG_GAMEPORT is not set | ||
748 | |||
749 | # | ||
750 | # Character devices | ||
751 | # | ||
752 | # CONFIG_AD9960 is not set | ||
753 | # CONFIG_SPI_ADC_BF533 is not set | ||
754 | # CONFIG_BF533_PFLAGS is not set | ||
755 | # CONFIG_BF5xx_PPIFCD is not set | ||
756 | # CONFIG_BF5xx_TIMERS is not set | ||
757 | # CONFIG_BF5xx_PPI is not set | ||
758 | CONFIG_BFIN_SPORT=y | ||
759 | # CONFIG_BFIN_TIMER_LATENCY is not set | ||
760 | CONFIG_TWI_LCD=m | ||
761 | CONFIG_TWI_LCD_SLAVE_ADDR=34 | ||
762 | # CONFIG_AD5304 is not set | ||
763 | # CONFIG_VT is not set | ||
764 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
765 | |||
766 | # | ||
767 | # Serial drivers | ||
768 | # | ||
769 | # CONFIG_SERIAL_8250 is not set | ||
770 | |||
771 | # | ||
772 | # Non-8250 serial port support | ||
773 | # | ||
774 | CONFIG_SERIAL_BFIN=y | ||
775 | CONFIG_SERIAL_BFIN_CONSOLE=y | ||
776 | CONFIG_SERIAL_BFIN_DMA=y | ||
777 | # CONFIG_SERIAL_BFIN_PIO is not set | ||
778 | CONFIG_SERIAL_BFIN_UART0=y | ||
779 | # CONFIG_BFIN_UART0_CTSRTS is not set | ||
780 | # CONFIG_SERIAL_BFIN_UART1 is not set | ||
781 | CONFIG_SERIAL_CORE=y | ||
782 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
783 | # CONFIG_SERIAL_BFIN_SPORT is not set | ||
784 | CONFIG_UNIX98_PTYS=y | ||
785 | # CONFIG_LEGACY_PTYS is not set | ||
786 | |||
787 | # | ||
788 | # CAN, the car bus and industrial fieldbus | ||
789 | # | ||
790 | CONFIG_CAN4LINUX=y | ||
791 | |||
792 | # | ||
793 | # linux embedded drivers | ||
794 | # | ||
795 | # CONFIG_CAN_MCF5282 is not set | ||
796 | # CONFIG_CAN_UNCTWINCAN is not set | ||
797 | CONFIG_CAN_BLACKFIN=m | ||
798 | |||
799 | # | ||
800 | # IPMI | ||
801 | # | ||
802 | # CONFIG_IPMI_HANDLER is not set | ||
803 | |||
804 | # | ||
805 | # Watchdog Cards | ||
806 | # | ||
807 | # CONFIG_WATCHDOG is not set | ||
808 | CONFIG_HW_RANDOM=y | ||
809 | # CONFIG_GEN_RTC is not set | ||
810 | CONFIG_BLACKFIN_DPMC=y | ||
811 | # CONFIG_DTLK is not set | ||
812 | # CONFIG_R3964 is not set | ||
813 | # CONFIG_RAW_DRIVER is not set | ||
814 | |||
815 | # | ||
816 | # TPM devices | ||
817 | # | ||
818 | # CONFIG_TCG_TPM is not set | ||
819 | |||
820 | # | ||
821 | # I2C support | ||
822 | # | ||
823 | CONFIG_I2C=m | ||
824 | CONFIG_I2C_CHARDEV=m | ||
825 | |||
826 | # | ||
827 | # I2C Algorithms | ||
828 | # | ||
829 | # CONFIG_I2C_ALGOBIT is not set | ||
830 | # CONFIG_I2C_ALGOPCF is not set | ||
831 | # CONFIG_I2C_ALGOPCA is not set | ||
832 | |||
833 | # | ||
834 | # I2C Hardware Bus support | ||
835 | # | ||
836 | # CONFIG_I2C_BLACKFIN_GPIO is not set | ||
837 | CONFIG_I2C_BLACKFIN_TWI=m | ||
838 | CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=50 | ||
839 | # CONFIG_I2C_OCORES is not set | ||
840 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
841 | # CONFIG_I2C_STUB is not set | ||
842 | # CONFIG_I2C_PCA_ISA is not set | ||
843 | |||
844 | # | ||
845 | # Miscellaneous I2C Chip support | ||
846 | # | ||
847 | # CONFIG_SENSORS_DS1337 is not set | ||
848 | # CONFIG_SENSORS_DS1374 is not set | ||
849 | CONFIG_SENSORS_AD5252=m | ||
850 | # CONFIG_SENSORS_EEPROM is not set | ||
851 | # CONFIG_SENSORS_PCF8574 is not set | ||
852 | # CONFIG_SENSORS_PCF8575 is not set | ||
853 | # CONFIG_SENSORS_PCA9543 is not set | ||
854 | # CONFIG_SENSORS_PCA9539 is not set | ||
855 | # CONFIG_SENSORS_PCF8591 is not set | ||
856 | # CONFIG_SENSORS_MAX6875 is not set | ||
857 | # CONFIG_I2C_DEBUG_CORE is not set | ||
858 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
859 | # CONFIG_I2C_DEBUG_BUS is not set | ||
860 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
861 | |||
862 | # | ||
863 | # SPI support | ||
864 | # | ||
865 | CONFIG_SPI=y | ||
866 | CONFIG_SPI_MASTER=y | ||
867 | |||
868 | # | ||
869 | # SPI Master Controller Drivers | ||
870 | # | ||
871 | # CONFIG_SPI_BITBANG is not set | ||
872 | |||
873 | # | ||
874 | # SPI Protocol Masters | ||
875 | # | ||
876 | CONFIG_SPI_BFIN=y | ||
877 | |||
878 | # | ||
879 | # Dallas's 1-wire bus | ||
880 | # | ||
881 | # CONFIG_W1 is not set | ||
882 | |||
883 | # | ||
884 | # Hardware Monitoring support | ||
885 | # | ||
886 | CONFIG_HWMON=y | ||
887 | # CONFIG_HWMON_VID is not set | ||
888 | # CONFIG_SENSORS_ABITUGURU is not set | ||
889 | # CONFIG_SENSORS_ADM1021 is not set | ||
890 | # CONFIG_SENSORS_ADM1025 is not set | ||
891 | # CONFIG_SENSORS_ADM1026 is not set | ||
892 | # CONFIG_SENSORS_ADM1031 is not set | ||
893 | # CONFIG_SENSORS_ADM9240 is not set | ||
894 | # CONFIG_SENSORS_ASB100 is not set | ||
895 | # CONFIG_SENSORS_ATXP1 is not set | ||
896 | # CONFIG_SENSORS_DS1621 is not set | ||
897 | # CONFIG_SENSORS_F71805F is not set | ||
898 | # CONFIG_SENSORS_FSCHER is not set | ||
899 | # CONFIG_SENSORS_FSCPOS is not set | ||
900 | # CONFIG_SENSORS_GL518SM is not set | ||
901 | # CONFIG_SENSORS_GL520SM is not set | ||
902 | # CONFIG_SENSORS_IT87 is not set | ||
903 | # CONFIG_SENSORS_LM63 is not set | ||
904 | # CONFIG_SENSORS_LM70 is not set | ||
905 | # CONFIG_SENSORS_LM75 is not set | ||
906 | # CONFIG_SENSORS_LM77 is not set | ||
907 | # CONFIG_SENSORS_LM78 is not set | ||
908 | # CONFIG_SENSORS_LM80 is not set | ||
909 | # CONFIG_SENSORS_LM83 is not set | ||
910 | # CONFIG_SENSORS_LM85 is not set | ||
911 | # CONFIG_SENSORS_LM87 is not set | ||
912 | # CONFIG_SENSORS_LM90 is not set | ||
913 | # CONFIG_SENSORS_LM92 is not set | ||
914 | # CONFIG_SENSORS_MAX1619 is not set | ||
915 | # CONFIG_SENSORS_PC87360 is not set | ||
916 | # CONFIG_SENSORS_PC87427 is not set | ||
917 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
918 | # CONFIG_SENSORS_SMSC47M192 is not set | ||
919 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
920 | # CONFIG_SENSORS_VT1211 is not set | ||
921 | # CONFIG_SENSORS_W83781D is not set | ||
922 | # CONFIG_SENSORS_W83791D is not set | ||
923 | # CONFIG_SENSORS_W83792D is not set | ||
924 | # CONFIG_SENSORS_W83793 is not set | ||
925 | # CONFIG_SENSORS_W83L785TS is not set | ||
926 | # CONFIG_SENSORS_W83627HF is not set | ||
927 | # CONFIG_SENSORS_W83627EHF is not set | ||
928 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
929 | |||
930 | # | ||
931 | # Multimedia devices | ||
932 | # | ||
933 | # CONFIG_VIDEO_DEV is not set | ||
934 | |||
935 | # | ||
936 | # Digital Video Broadcasting Devices | ||
937 | # | ||
938 | # CONFIG_DVB is not set | ||
939 | |||
940 | # | ||
941 | # Graphics support | ||
942 | # | ||
943 | CONFIG_FIRMWARE_EDID=y | ||
944 | CONFIG_FB=m | ||
945 | CONFIG_FB_CFB_FILLRECT=m | ||
946 | CONFIG_FB_CFB_COPYAREA=m | ||
947 | CONFIG_FB_CFB_IMAGEBLIT=m | ||
948 | # CONFIG_FB_MACMODES is not set | ||
949 | # CONFIG_FB_BACKLIGHT is not set | ||
950 | # CONFIG_FB_MODE_HELPERS is not set | ||
951 | # CONFIG_FB_TILEBLITTING is not set | ||
952 | CONFIG_FB_BFIN_7171=m | ||
953 | CONFIG_FB_BFIN_7393=m | ||
954 | CONFIG_NTSC=y | ||
955 | # CONFIG_PAL is not set | ||
956 | # CONFIG_NTSC_640x480 is not set | ||
957 | # CONFIG_PAL_640x480 is not set | ||
958 | # CONFIG_NTSC_YCBCR is not set | ||
959 | # CONFIG_PAL_YCBCR is not set | ||
960 | CONFIG_ADV7393_1XMEM=y | ||
961 | # CONFIG_ADV7393_2XMEM is not set | ||
962 | CONFIG_FB_BF537_LQ035=m | ||
963 | CONFIG_LQ035_SLAVE_ADDR=0x58 | ||
964 | # CONFIG_FB_BFIN_LANDSCAPE is not set | ||
965 | # CONFIG_FB_BFIN_BGR is not set | ||
966 | # CONFIG_FB_S1D13XXX is not set | ||
967 | # CONFIG_FB_VIRTUAL is not set | ||
968 | |||
969 | # | ||
970 | # Logo configuration | ||
971 | # | ||
972 | # CONFIG_LOGO is not set | ||
973 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | ||
974 | CONFIG_BACKLIGHT_CLASS_DEVICE=m | ||
975 | CONFIG_BACKLIGHT_DEVICE=y | ||
976 | CONFIG_LCD_CLASS_DEVICE=m | ||
977 | CONFIG_LCD_DEVICE=y | ||
978 | |||
979 | # | ||
980 | # Sound | ||
981 | # | ||
982 | CONFIG_SOUND=m | ||
983 | |||
984 | # | ||
985 | # Advanced Linux Sound Architecture | ||
986 | # | ||
987 | CONFIG_SND=m | ||
988 | CONFIG_SND_TIMER=m | ||
989 | CONFIG_SND_PCM=m | ||
990 | # CONFIG_SND_SEQUENCER is not set | ||
991 | CONFIG_SND_OSSEMUL=y | ||
992 | CONFIG_SND_MIXER_OSS=m | ||
993 | CONFIG_SND_PCM_OSS=m | ||
994 | CONFIG_SND_PCM_OSS_PLUGINS=y | ||
995 | # CONFIG_SND_DYNAMIC_MINORS is not set | ||
996 | CONFIG_SND_SUPPORT_OLD_API=y | ||
997 | CONFIG_SND_VERBOSE_PROCFS=y | ||
998 | # CONFIG_SND_VERBOSE_PRINTK is not set | ||
999 | # CONFIG_SND_DEBUG is not set | ||
1000 | |||
1001 | # | ||
1002 | # Generic devices | ||
1003 | # | ||
1004 | # CONFIG_SND_DUMMY is not set | ||
1005 | # CONFIG_SND_MTPAV is not set | ||
1006 | # CONFIG_SND_SERIAL_U16550 is not set | ||
1007 | # CONFIG_SND_MPU401 is not set | ||
1008 | |||
1009 | # | ||
1010 | # Open Sound System | ||
1011 | # | ||
1012 | # CONFIG_SOUND_PRIME is not set | ||
1013 | |||
1014 | # | ||
1015 | # HID Devices | ||
1016 | # | ||
1017 | CONFIG_HID=y | ||
1018 | |||
1019 | # | ||
1020 | # USB support | ||
1021 | # | ||
1022 | CONFIG_USB_ARCH_HAS_HCD=y | ||
1023 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
1024 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
1025 | # CONFIG_USB is not set | ||
1026 | |||
1027 | # | ||
1028 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
1029 | # | ||
1030 | |||
1031 | # | ||
1032 | # USB Gadget Support | ||
1033 | # | ||
1034 | # CONFIG_USB_GADGET is not set | ||
1035 | |||
1036 | # | ||
1037 | # MMC/SD Card support | ||
1038 | # | ||
1039 | # CONFIG_SPI_MMC is not set | ||
1040 | # CONFIG_MMC is not set | ||
1041 | |||
1042 | # | ||
1043 | # LED devices | ||
1044 | # | ||
1045 | # CONFIG_NEW_LEDS is not set | ||
1046 | |||
1047 | # | ||
1048 | # LED drivers | ||
1049 | # | ||
1050 | |||
1051 | # | ||
1052 | # LED Triggers | ||
1053 | # | ||
1054 | |||
1055 | # | ||
1056 | # InfiniBand support | ||
1057 | # | ||
1058 | |||
1059 | # | ||
1060 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
1061 | # | ||
1062 | |||
1063 | # | ||
1064 | # Real Time Clock | ||
1065 | # | ||
1066 | CONFIG_RTC_LIB=y | ||
1067 | CONFIG_RTC_CLASS=y | ||
1068 | CONFIG_RTC_HCTOSYS=y | ||
1069 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
1070 | # CONFIG_RTC_DEBUG is not set | ||
1071 | |||
1072 | # | ||
1073 | # RTC interfaces | ||
1074 | # | ||
1075 | CONFIG_RTC_INTF_SYSFS=y | ||
1076 | CONFIG_RTC_INTF_PROC=y | ||
1077 | CONFIG_RTC_INTF_DEV=y | ||
1078 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
1079 | |||
1080 | # | ||
1081 | # RTC drivers | ||
1082 | # | ||
1083 | # CONFIG_RTC_DRV_X1205 is not set | ||
1084 | # CONFIG_RTC_DRV_DS1307 is not set | ||
1085 | # CONFIG_RTC_DRV_DS1553 is not set | ||
1086 | # CONFIG_RTC_DRV_ISL1208 is not set | ||
1087 | # CONFIG_RTC_DRV_DS1672 is not set | ||
1088 | # CONFIG_RTC_DRV_DS1742 is not set | ||
1089 | # CONFIG_RTC_DRV_PCF8563 is not set | ||
1090 | # CONFIG_RTC_DRV_PCF8583 is not set | ||
1091 | # CONFIG_RTC_DRV_RS5C348 is not set | ||
1092 | # CONFIG_RTC_DRV_RS5C372 is not set | ||
1093 | # CONFIG_RTC_DRV_M48T86 is not set | ||
1094 | # CONFIG_RTC_DRV_TEST is not set | ||
1095 | # CONFIG_RTC_DRV_MAX6902 is not set | ||
1096 | # CONFIG_RTC_DRV_V3020 is not set | ||
1097 | CONFIG_RTC_DRV_BFIN=y | ||
1098 | |||
1099 | # | ||
1100 | # DMA Engine support | ||
1101 | # | ||
1102 | # CONFIG_DMA_ENGINE is not set | ||
1103 | |||
1104 | # | ||
1105 | # DMA Clients | ||
1106 | # | ||
1107 | |||
1108 | # | ||
1109 | # DMA Devices | ||
1110 | # | ||
1111 | |||
1112 | # | ||
1113 | # Virtualization | ||
1114 | # | ||
1115 | |||
1116 | # | ||
1117 | # PBX support | ||
1118 | # | ||
1119 | # CONFIG_PBX is not set | ||
1120 | |||
1121 | # | ||
1122 | # File systems | ||
1123 | # | ||
1124 | CONFIG_EXT2_FS=y | ||
1125 | CONFIG_EXT2_FS_XATTR=y | ||
1126 | # CONFIG_EXT2_FS_POSIX_ACL is not set | ||
1127 | # CONFIG_EXT2_FS_SECURITY is not set | ||
1128 | # CONFIG_EXT3_FS is not set | ||
1129 | # CONFIG_EXT4DEV_FS is not set | ||
1130 | CONFIG_FS_MBCACHE=y | ||
1131 | # CONFIG_REISERFS_FS is not set | ||
1132 | # CONFIG_JFS_FS is not set | ||
1133 | # CONFIG_FS_POSIX_ACL is not set | ||
1134 | # CONFIG_XFS_FS is not set | ||
1135 | # CONFIG_GFS2_FS is not set | ||
1136 | # CONFIG_OCFS2_FS is not set | ||
1137 | # CONFIG_MINIX_FS is not set | ||
1138 | # CONFIG_ROMFS_FS is not set | ||
1139 | CONFIG_INOTIFY=y | ||
1140 | CONFIG_INOTIFY_USER=y | ||
1141 | # CONFIG_QUOTA is not set | ||
1142 | CONFIG_DNOTIFY=y | ||
1143 | # CONFIG_AUTOFS_FS is not set | ||
1144 | # CONFIG_AUTOFS4_FS is not set | ||
1145 | # CONFIG_FUSE_FS is not set | ||
1146 | |||
1147 | # | ||
1148 | # CD-ROM/DVD Filesystems | ||
1149 | # | ||
1150 | # CONFIG_ISO9660_FS is not set | ||
1151 | # CONFIG_UDF_FS is not set | ||
1152 | |||
1153 | # | ||
1154 | # DOS/FAT/NT Filesystems | ||
1155 | # | ||
1156 | # CONFIG_MSDOS_FS is not set | ||
1157 | # CONFIG_VFAT_FS is not set | ||
1158 | # CONFIG_NTFS_FS is not set | ||
1159 | |||
1160 | # | ||
1161 | # Pseudo filesystems | ||
1162 | # | ||
1163 | CONFIG_PROC_FS=y | ||
1164 | CONFIG_PROC_SYSCTL=y | ||
1165 | CONFIG_SYSFS=y | ||
1166 | # CONFIG_TMPFS is not set | ||
1167 | # CONFIG_HUGETLB_PAGE is not set | ||
1168 | CONFIG_RAMFS=y | ||
1169 | # CONFIG_CONFIGFS_FS is not set | ||
1170 | |||
1171 | # | ||
1172 | # Miscellaneous filesystems | ||
1173 | # | ||
1174 | # CONFIG_ADFS_FS is not set | ||
1175 | # CONFIG_AFFS_FS is not set | ||
1176 | # CONFIG_HFS_FS is not set | ||
1177 | # CONFIG_HFSPLUS_FS is not set | ||
1178 | # CONFIG_BEFS_FS is not set | ||
1179 | # CONFIG_BFS_FS is not set | ||
1180 | # CONFIG_EFS_FS is not set | ||
1181 | CONFIG_YAFFS_FS=m | ||
1182 | CONFIG_YAFFS_YAFFS1=y | ||
1183 | # CONFIG_YAFFS_DOES_ECC is not set | ||
1184 | CONFIG_YAFFS_YAFFS2=y | ||
1185 | CONFIG_YAFFS_AUTO_YAFFS2=y | ||
1186 | # CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set | ||
1187 | CONFIG_YAFFS_CHECKPOINT_RESERVED_BLOCKS=10 | ||
1188 | # CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set | ||
1189 | # CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set | ||
1190 | CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y | ||
1191 | CONFIG_JFFS2_FS=m | ||
1192 | CONFIG_JFFS2_FS_DEBUG=0 | ||
1193 | CONFIG_JFFS2_FS_WRITEBUFFER=y | ||
1194 | # CONFIG_JFFS2_SUMMARY is not set | ||
1195 | # CONFIG_JFFS2_FS_XATTR is not set | ||
1196 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | ||
1197 | CONFIG_JFFS2_ZLIB=y | ||
1198 | CONFIG_JFFS2_RTIME=y | ||
1199 | # CONFIG_JFFS2_RUBIN is not set | ||
1200 | # CONFIG_CRAMFS is not set | ||
1201 | # CONFIG_VXFS_FS is not set | ||
1202 | # CONFIG_HPFS_FS is not set | ||
1203 | # CONFIG_QNX4FS_FS is not set | ||
1204 | # CONFIG_SYSV_FS is not set | ||
1205 | # CONFIG_UFS_FS is not set | ||
1206 | |||
1207 | # | ||
1208 | # Network File Systems | ||
1209 | # | ||
1210 | CONFIG_NFS_FS=m | ||
1211 | CONFIG_NFS_V3=y | ||
1212 | # CONFIG_NFS_V3_ACL is not set | ||
1213 | # CONFIG_NFS_V4 is not set | ||
1214 | # CONFIG_NFS_DIRECTIO is not set | ||
1215 | # CONFIG_NFSD is not set | ||
1216 | CONFIG_LOCKD=m | ||
1217 | CONFIG_LOCKD_V4=y | ||
1218 | CONFIG_NFS_COMMON=y | ||
1219 | CONFIG_SUNRPC=m | ||
1220 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
1221 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
1222 | CONFIG_SMB_FS=m | ||
1223 | # CONFIG_SMB_NLS_DEFAULT is not set | ||
1224 | # CONFIG_CIFS is not set | ||
1225 | # CONFIG_NCP_FS is not set | ||
1226 | # CONFIG_CODA_FS is not set | ||
1227 | # CONFIG_AFS_FS is not set | ||
1228 | # CONFIG_9P_FS is not set | ||
1229 | |||
1230 | # | ||
1231 | # Partition Types | ||
1232 | # | ||
1233 | # CONFIG_PARTITION_ADVANCED is not set | ||
1234 | CONFIG_MSDOS_PARTITION=y | ||
1235 | |||
1236 | # | ||
1237 | # Native Language Support | ||
1238 | # | ||
1239 | CONFIG_NLS=m | ||
1240 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
1241 | # CONFIG_NLS_CODEPAGE_437 is not set | ||
1242 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
1243 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
1244 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
1245 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
1246 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
1247 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
1248 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
1249 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
1250 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
1251 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
1252 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
1253 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
1254 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
1255 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
1256 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
1257 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
1258 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
1259 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
1260 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
1261 | # CONFIG_NLS_ISO8859_8 is not set | ||
1262 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
1263 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
1264 | # CONFIG_NLS_ASCII is not set | ||
1265 | # CONFIG_NLS_ISO8859_1 is not set | ||
1266 | # CONFIG_NLS_ISO8859_2 is not set | ||
1267 | # CONFIG_NLS_ISO8859_3 is not set | ||
1268 | # CONFIG_NLS_ISO8859_4 is not set | ||
1269 | # CONFIG_NLS_ISO8859_5 is not set | ||
1270 | # CONFIG_NLS_ISO8859_6 is not set | ||
1271 | # CONFIG_NLS_ISO8859_7 is not set | ||
1272 | # CONFIG_NLS_ISO8859_9 is not set | ||
1273 | # CONFIG_NLS_ISO8859_13 is not set | ||
1274 | # CONFIG_NLS_ISO8859_14 is not set | ||
1275 | # CONFIG_NLS_ISO8859_15 is not set | ||
1276 | # CONFIG_NLS_KOI8_R is not set | ||
1277 | # CONFIG_NLS_KOI8_U is not set | ||
1278 | # CONFIG_NLS_UTF8 is not set | ||
1279 | |||
1280 | # | ||
1281 | # Distributed Lock Manager | ||
1282 | # | ||
1283 | # CONFIG_DLM is not set | ||
1284 | |||
1285 | # | ||
1286 | # Profiling support | ||
1287 | # | ||
1288 | # CONFIG_PROFILING is not set | ||
1289 | |||
1290 | # | ||
1291 | # Kernel hacking | ||
1292 | # | ||
1293 | # CONFIG_PRINTK_TIME is not set | ||
1294 | CONFIG_ENABLE_MUST_CHECK=y | ||
1295 | # CONFIG_MAGIC_SYSRQ is not set | ||
1296 | # CONFIG_UNUSED_SYMBOLS is not set | ||
1297 | # CONFIG_DEBUG_FS is not set | ||
1298 | # CONFIG_HEADERS_CHECK is not set | ||
1299 | # CONFIG_DEBUG_KERNEL is not set | ||
1300 | CONFIG_LOG_BUF_SHIFT=14 | ||
1301 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
1302 | # CONFIG_DEBUG_SERIAL_EARLY_INIT is not set | ||
1303 | CONFIG_DEBUG_HUNT_FOR_ZERO=y | ||
1304 | # CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set | ||
1305 | CONFIG_CPLB_INFO=y | ||
1306 | CONFIG_ACCESS_CHECK=y | ||
1307 | |||
1308 | # | ||
1309 | # Security options | ||
1310 | # | ||
1311 | # CONFIG_KEYS is not set | ||
1312 | CONFIG_SECURITY=y | ||
1313 | # CONFIG_SECURITY_NETWORK is not set | ||
1314 | CONFIG_SECURITY_CAPABILITIES=y | ||
1315 | |||
1316 | # | ||
1317 | # Cryptographic options | ||
1318 | # | ||
1319 | # CONFIG_CRYPTO is not set | ||
1320 | |||
1321 | # | ||
1322 | # Library routines | ||
1323 | # | ||
1324 | CONFIG_BITREVERSE=y | ||
1325 | CONFIG_CRC_CCITT=m | ||
1326 | # CONFIG_CRC16 is not set | ||
1327 | CONFIG_CRC32=y | ||
1328 | # CONFIG_LIBCRC32C is not set | ||
1329 | CONFIG_ZLIB_INFLATE=y | ||
1330 | CONFIG_ZLIB_DEFLATE=m | ||
1331 | CONFIG_PLIST=y | ||
1332 | CONFIG_IOMAP_COPY=y | ||
diff --git a/arch/blackfin/configs/BF561-EZKIT_defconfig b/arch/blackfin/configs/BF561-EZKIT_defconfig new file mode 100644 index 000000000000..e32ca2072cbf --- /dev/null +++ b/arch/blackfin/configs/BF561-EZKIT_defconfig | |||
@@ -0,0 +1,1073 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.19.3 | ||
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_BFIN=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_CALIBRATE_DELAY=y | ||
17 | CONFIG_UCLINUX=y | ||
18 | CONFIG_FORCE_MAX_ZONEORDER=14 | ||
19 | CONFIG_IRQCHIP_DEMUX_GPIO=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_POSIX_MQUEUE is not set | ||
37 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
38 | # CONFIG_TASKSTATS is not set | ||
39 | # CONFIG_UTS_NS is not set | ||
40 | # CONFIG_AUDIT is not set | ||
41 | # CONFIG_IKCONFIG is not set | ||
42 | # CONFIG_RELAY is not set | ||
43 | CONFIG_INITRAMFS_SOURCE="" | ||
44 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
45 | CONFIG_SYSCTL=y | ||
46 | CONFIG_EMBEDDED=y | ||
47 | # CONFIG_UID16 is not set | ||
48 | CONFIG_SYSCTL_SYSCALL=y | ||
49 | CONFIG_KALLSYMS=y | ||
50 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
51 | CONFIG_HOTPLUG=y | ||
52 | CONFIG_PRINTK=y | ||
53 | CONFIG_BUG=y | ||
54 | CONFIG_ELF_CORE=y | ||
55 | CONFIG_BASE_FULL=y | ||
56 | CONFIG_FUTEX=y | ||
57 | CONFIG_EPOLL=y | ||
58 | CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3 | ||
59 | # CONFIG_LIMIT_PAGECACHE is not set | ||
60 | CONFIG_BUDDY=y | ||
61 | # CONFIG_NP2 is not set | ||
62 | CONFIG_SLAB=y | ||
63 | CONFIG_VM_EVENT_COUNTERS=y | ||
64 | CONFIG_RT_MUTEXES=y | ||
65 | CONFIG_TINY_SHMEM=y | ||
66 | CONFIG_BASE_SMALL=0 | ||
67 | # CONFIG_SLOB is not set | ||
68 | |||
69 | # | ||
70 | # Loadable module support | ||
71 | # | ||
72 | CONFIG_MODULES=y | ||
73 | CONFIG_MODULE_UNLOAD=y | ||
74 | # CONFIG_MODULE_FORCE_UNLOAD is not set | ||
75 | # CONFIG_MODVERSIONS is not set | ||
76 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
77 | CONFIG_KMOD=y | ||
78 | |||
79 | # | ||
80 | # Block layer | ||
81 | # | ||
82 | CONFIG_BLOCK=y | ||
83 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
84 | |||
85 | # | ||
86 | # IO Schedulers | ||
87 | # | ||
88 | CONFIG_IOSCHED_NOOP=y | ||
89 | CONFIG_IOSCHED_AS=y | ||
90 | # CONFIG_IOSCHED_DEADLINE is not set | ||
91 | CONFIG_IOSCHED_CFQ=y | ||
92 | CONFIG_DEFAULT_AS=y | ||
93 | # CONFIG_DEFAULT_DEADLINE is not set | ||
94 | # CONFIG_DEFAULT_CFQ is not set | ||
95 | # CONFIG_DEFAULT_NOOP is not set | ||
96 | CONFIG_DEFAULT_IOSCHED="anticipatory" | ||
97 | # CONFIG_PREEMPT_NONE is not set | ||
98 | CONFIG_PREEMPT_VOLUNTARY=y | ||
99 | # CONFIG_PREEMPT is not set | ||
100 | |||
101 | # | ||
102 | # Blackfin Processor Options | ||
103 | # | ||
104 | |||
105 | # | ||
106 | # Processor and Board Settings | ||
107 | # | ||
108 | # CONFIG_BF531 is not set | ||
109 | # CONFIG_BF532 is not set | ||
110 | # CONFIG_BF533 is not set | ||
111 | # CONFIG_BF534 is not set | ||
112 | # CONFIG_BF535 is not set | ||
113 | # CONFIG_BF536 is not set | ||
114 | # CONFIG_BF537 is not set | ||
115 | CONFIG_BF561=y | ||
116 | # CONFIG_BF_REV_0_2 is not set | ||
117 | CONFIG_BF_REV_0_3=y | ||
118 | # CONFIG_BF_REV_0_4 is not set | ||
119 | # CONFIG_BF_REV_0_5 is not set | ||
120 | CONFIG_BFIN_DUAL_CORE=y | ||
121 | # CONFIG_BFIN533_EZKIT is not set | ||
122 | # CONFIG_BFIN533_STAMP is not set | ||
123 | # CONFIG_BFIN537_STAMP is not set | ||
124 | # CONFIG_BFIN533_BLUETECHNIX_CM is not set | ||
125 | # CONFIG_BFIN537_BLUETECHNIX_CM is not set | ||
126 | # CONFIG_BFIN561_BLUETECHNIX_CM is not set | ||
127 | CONFIG_BFIN561_EZKIT=y | ||
128 | # CONFIG_PNAV10 is not set | ||
129 | # CONFIG_GENERIC_BOARD is not set | ||
130 | CONFIG_MEM_MT48LC16M16A2TG_75=y | ||
131 | |||
132 | # | ||
133 | # BF561 Specific Configuration | ||
134 | # | ||
135 | |||
136 | # | ||
137 | # Core B Support | ||
138 | # | ||
139 | |||
140 | # | ||
141 | # Core B Support | ||
142 | # | ||
143 | CONFIG_BF561_COREB=y | ||
144 | CONFIG_BF561_COREB_RESET=y | ||
145 | |||
146 | # | ||
147 | # Interrupt Priority Assignment | ||
148 | # | ||
149 | |||
150 | # | ||
151 | # Priority | ||
152 | # | ||
153 | CONFIG_IRQ_PLL_WAKEUP=7 | ||
154 | CONFIG_IRQ_DMA1_ERROR=7 | ||
155 | CONFIG_IRQ_DMA2_ERROR=7 | ||
156 | CONFIG_IRQ_IMDMA_ERROR=7 | ||
157 | CONFIG_IRQ_PPI0_ERROR=7 | ||
158 | CONFIG_IRQ_PPI1_ERROR=7 | ||
159 | CONFIG_IRQ_SPORT0_ERROR=7 | ||
160 | CONFIG_IRQ_SPORT1_ERROR=7 | ||
161 | CONFIG_IRQ_SPI_ERROR=7 | ||
162 | CONFIG_IRQ_UART_ERROR=7 | ||
163 | CONFIG_IRQ_RESERVED_ERROR=7 | ||
164 | CONFIG_IRQ_DMA1_0=8 | ||
165 | CONFIG_IRQ_DMA1_1=8 | ||
166 | CONFIG_IRQ_DMA1_2=8 | ||
167 | CONFIG_IRQ_DMA1_3=8 | ||
168 | CONFIG_IRQ_DMA1_4=8 | ||
169 | CONFIG_IRQ_DMA1_5=8 | ||
170 | CONFIG_IRQ_DMA1_6=8 | ||
171 | CONFIG_IRQ_DMA1_7=8 | ||
172 | CONFIG_IRQ_DMA1_8=8 | ||
173 | CONFIG_IRQ_DMA1_9=8 | ||
174 | CONFIG_IRQ_DMA1_10=8 | ||
175 | CONFIG_IRQ_DMA1_11=8 | ||
176 | CONFIG_IRQ_DMA2_0=9 | ||
177 | CONFIG_IRQ_DMA2_1=9 | ||
178 | CONFIG_IRQ_DMA2_2=9 | ||
179 | CONFIG_IRQ_DMA2_3=9 | ||
180 | CONFIG_IRQ_DMA2_4=9 | ||
181 | CONFIG_IRQ_DMA2_5=9 | ||
182 | CONFIG_IRQ_DMA2_6=9 | ||
183 | CONFIG_IRQ_DMA2_7=9 | ||
184 | CONFIG_IRQ_DMA2_8=9 | ||
185 | CONFIG_IRQ_DMA2_9=9 | ||
186 | CONFIG_IRQ_DMA2_10=9 | ||
187 | CONFIG_IRQ_DMA2_11=9 | ||
188 | CONFIG_IRQ_TIMER0=10 | ||
189 | CONFIG_IRQ_TIMER1=10 | ||
190 | CONFIG_IRQ_TIMER2=10 | ||
191 | CONFIG_IRQ_TIMER3=10 | ||
192 | CONFIG_IRQ_TIMER4=10 | ||
193 | CONFIG_IRQ_TIMER5=10 | ||
194 | CONFIG_IRQ_TIMER6=10 | ||
195 | CONFIG_IRQ_TIMER7=10 | ||
196 | CONFIG_IRQ_TIMER8=10 | ||
197 | CONFIG_IRQ_TIMER9=10 | ||
198 | CONFIG_IRQ_TIMER10=10 | ||
199 | CONFIG_IRQ_TIMER11=10 | ||
200 | CONFIG_IRQ_PROG0_INTA=11 | ||
201 | CONFIG_IRQ_PROG0_INTB=11 | ||
202 | CONFIG_IRQ_PROG1_INTA=11 | ||
203 | CONFIG_IRQ_PROG1_INTB=11 | ||
204 | CONFIG_IRQ_PROG2_INTA=11 | ||
205 | CONFIG_IRQ_PROG2_INTB=11 | ||
206 | CONFIG_IRQ_DMA1_WRRD0=8 | ||
207 | CONFIG_IRQ_DMA1_WRRD1=8 | ||
208 | CONFIG_IRQ_DMA2_WRRD0=9 | ||
209 | CONFIG_IRQ_DMA2_WRRD1=9 | ||
210 | CONFIG_IRQ_IMDMA_WRRD0=12 | ||
211 | CONFIG_IRQ_IMDMA_WRRD1=12 | ||
212 | CONFIG_IRQ_WDTIMER=13 | ||
213 | |||
214 | # | ||
215 | # Board customizations | ||
216 | # | ||
217 | |||
218 | # | ||
219 | # Board Setup | ||
220 | # | ||
221 | CONFIG_CLKIN_HZ=30000000 | ||
222 | CONFIG_MEM_SIZE=64 | ||
223 | CONFIG_MEM_ADD_WIDTH=9 | ||
224 | CONFIG_BOOT_LOAD=0x1000 | ||
225 | |||
226 | # | ||
227 | # Console UART Setup | ||
228 | # | ||
229 | # CONFIG_BAUD_9600 is not set | ||
230 | # CONFIG_BAUD_19200 is not set | ||
231 | # CONFIG_BAUD_38400 is not set | ||
232 | CONFIG_BAUD_57600=y | ||
233 | # CONFIG_BAUD_115200 is not set | ||
234 | CONFIG_BAUD_NO_PARITY=y | ||
235 | # CONFIG_BAUD_PARITY is not set | ||
236 | CONFIG_BAUD_1_STOPBIT=y | ||
237 | # CONFIG_BAUD_2_STOPBIT is not set | ||
238 | |||
239 | # | ||
240 | # Blackfin Kernel Optimizations | ||
241 | # | ||
242 | |||
243 | # | ||
244 | # Timer Tick | ||
245 | # | ||
246 | # CONFIG_HZ_100 is not set | ||
247 | CONFIG_HZ_250=y | ||
248 | # CONFIG_HZ_1000 is not set | ||
249 | CONFIG_HZ=250 | ||
250 | |||
251 | # | ||
252 | # Memory Optimizations | ||
253 | # | ||
254 | CONFIG_I_ENTRY_L1=y | ||
255 | CONFIG_EXCPT_IRQ_SYSC_L1=y | ||
256 | CONFIG_DO_IRQ_L1=y | ||
257 | CONFIG_CORE_TIMER_IRQ_L1=y | ||
258 | CONFIG_IDLE_L1=y | ||
259 | CONFIG_SCHEDULE_L1=y | ||
260 | CONFIG_ARITHMETIC_OPS_L1=y | ||
261 | CONFIG_ACCESS_OK_L1=y | ||
262 | CONFIG_MEMSET_L1=y | ||
263 | CONFIG_MEMCPY_L1=y | ||
264 | CONFIG_SYS_BFIN_SPINLOCK_L1=y | ||
265 | # CONFIG_IP_CHECKSUM_L1 is not set | ||
266 | # CONFIG_SYSCALL_TAB_L1 is not set | ||
267 | # CONFIG_CPLB_SWITCH_TAB_L1 is not set | ||
268 | CONFIG_RAMKERNEL=y | ||
269 | # CONFIG_ROMKERNEL is not set | ||
270 | CONFIG_SELECT_MEMORY_MODEL=y | ||
271 | CONFIG_FLATMEM_MANUAL=y | ||
272 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
273 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
274 | CONFIG_FLATMEM=y | ||
275 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
276 | # CONFIG_SPARSEMEM_STATIC is not set | ||
277 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
278 | # CONFIG_RESOURCES_64BIT is not set | ||
279 | CONFIG_LARGE_ALLOCS=y | ||
280 | CONFIG_BFIN_DMA_5XX=y | ||
281 | # CONFIG_DMA_UNCACHED_2M is not set | ||
282 | CONFIG_DMA_UNCACHED_1M=y | ||
283 | # CONFIG_DMA_UNCACHED_NONE is not set | ||
284 | |||
285 | # | ||
286 | # Cache Support | ||
287 | # | ||
288 | CONFIG_BLKFIN_CACHE=y | ||
289 | CONFIG_BLKFIN_DCACHE=y | ||
290 | # CONFIG_BLKFIN_DCACHE_BANKA is not set | ||
291 | # CONFIG_BLKFIN_CACHE_LOCK is not set | ||
292 | # CONFIG_BLKFIN_WB is not set | ||
293 | CONFIG_BLKFIN_WT=y | ||
294 | CONFIG_L1_MAX_PIECE=16 | ||
295 | |||
296 | # | ||
297 | # Clock Settings | ||
298 | # | ||
299 | # CONFIG_BFIN_KERNEL_CLOCK is not set | ||
300 | |||
301 | # | ||
302 | # Asynchonous Memory Configuration | ||
303 | # | ||
304 | |||
305 | # | ||
306 | # EBIU_AMBCTL Global Control | ||
307 | # | ||
308 | CONFIG_C_AMCKEN=y | ||
309 | CONFIG_C_CDPRIO=y | ||
310 | CONFIG_C_B0PEN=y | ||
311 | CONFIG_C_B1PEN=y | ||
312 | CONFIG_C_B2PEN=y | ||
313 | # CONFIG_C_B3PEN is not set | ||
314 | # CONFIG_C_AMBEN is not set | ||
315 | # CONFIG_C_AMBEN_B0 is not set | ||
316 | # CONFIG_C_AMBEN_B0_B1 is not set | ||
317 | # CONFIG_C_AMBEN_B0_B1_B2 is not set | ||
318 | CONFIG_C_AMBEN_ALL=y | ||
319 | |||
320 | # | ||
321 | # EBIU_AMBCTL Control | ||
322 | # | ||
323 | CONFIG_BANK_0=0x7BB0 | ||
324 | CONFIG_BANK_1=0x7BB0 | ||
325 | CONFIG_BANK_2=0x7BB0 | ||
326 | CONFIG_BANK_3=0x99B3 | ||
327 | |||
328 | # | ||
329 | # Bus options (PCI, PCMCIA, EISA, MCA, ISA) | ||
330 | # | ||
331 | # CONFIG_PCI is not set | ||
332 | |||
333 | # | ||
334 | # PCCARD (PCMCIA/CardBus) support | ||
335 | # | ||
336 | # CONFIG_PCCARD is not set | ||
337 | |||
338 | # | ||
339 | # PCI Hotplug Support | ||
340 | # | ||
341 | |||
342 | # | ||
343 | # Executable file formats | ||
344 | # | ||
345 | CONFIG_BINFMT_ELF_FDPIC=y | ||
346 | CONFIG_BINFMT_FLAT=y | ||
347 | CONFIG_BINFMT_ZFLAT=y | ||
348 | # CONFIG_BINFMT_SHARED_FLAT is not set | ||
349 | # CONFIG_BINFMT_MISC is not set | ||
350 | |||
351 | # | ||
352 | # Power management options | ||
353 | # | ||
354 | # CONFIG_PM is not set | ||
355 | |||
356 | # | ||
357 | # Networking | ||
358 | # | ||
359 | CONFIG_NET=y | ||
360 | |||
361 | # | ||
362 | # Networking options | ||
363 | # | ||
364 | # CONFIG_NETDEBUG is not set | ||
365 | CONFIG_PACKET=y | ||
366 | # CONFIG_PACKET_MMAP is not set | ||
367 | CONFIG_UNIX=y | ||
368 | CONFIG_XFRM=y | ||
369 | # CONFIG_XFRM_USER is not set | ||
370 | # CONFIG_XFRM_SUB_POLICY is not set | ||
371 | # CONFIG_NET_KEY is not set | ||
372 | CONFIG_INET=y | ||
373 | # CONFIG_IP_MULTICAST is not set | ||
374 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
375 | CONFIG_IP_FIB_HASH=y | ||
376 | CONFIG_IP_PNP=y | ||
377 | # CONFIG_IP_PNP_DHCP is not set | ||
378 | # CONFIG_IP_PNP_BOOTP is not set | ||
379 | # CONFIG_IP_PNP_RARP is not set | ||
380 | # CONFIG_NET_IPIP is not set | ||
381 | # CONFIG_NET_IPGRE is not set | ||
382 | # CONFIG_ARPD is not set | ||
383 | CONFIG_SYN_COOKIES=y | ||
384 | # CONFIG_INET_AH is not set | ||
385 | # CONFIG_INET_ESP is not set | ||
386 | # CONFIG_INET_IPCOMP is not set | ||
387 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
388 | # CONFIG_INET_TUNNEL is not set | ||
389 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
390 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
391 | CONFIG_INET_XFRM_MODE_BEET=y | ||
392 | CONFIG_INET_DIAG=y | ||
393 | CONFIG_INET_TCP_DIAG=y | ||
394 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
395 | CONFIG_TCP_CONG_CUBIC=y | ||
396 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
397 | # CONFIG_IPV6 is not set | ||
398 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
399 | # CONFIG_INET6_TUNNEL is not set | ||
400 | # CONFIG_NETLABEL is not set | ||
401 | # CONFIG_NETWORK_SECMARK is not set | ||
402 | # CONFIG_NETFILTER is not set | ||
403 | |||
404 | # | ||
405 | # DCCP Configuration (EXPERIMENTAL) | ||
406 | # | ||
407 | # CONFIG_IP_DCCP is not set | ||
408 | |||
409 | # | ||
410 | # SCTP Configuration (EXPERIMENTAL) | ||
411 | # | ||
412 | # CONFIG_IP_SCTP is not set | ||
413 | |||
414 | # | ||
415 | # TIPC Configuration (EXPERIMENTAL) | ||
416 | # | ||
417 | # CONFIG_TIPC is not set | ||
418 | # CONFIG_ATM is not set | ||
419 | # CONFIG_BRIDGE is not set | ||
420 | # CONFIG_VLAN_8021Q is not set | ||
421 | # CONFIG_DECNET is not set | ||
422 | # CONFIG_LLC2 is not set | ||
423 | # CONFIG_IPX is not set | ||
424 | # CONFIG_ATALK is not set | ||
425 | # CONFIG_X25 is not set | ||
426 | # CONFIG_LAPB is not set | ||
427 | # CONFIG_ECONET is not set | ||
428 | # CONFIG_WAN_ROUTER is not set | ||
429 | |||
430 | # | ||
431 | # QoS and/or fair queueing | ||
432 | # | ||
433 | # CONFIG_NET_SCHED is not set | ||
434 | |||
435 | # | ||
436 | # Network testing | ||
437 | # | ||
438 | # CONFIG_NET_PKTGEN is not set | ||
439 | # CONFIG_HAMRADIO is not set | ||
440 | # CONFIG_IRDA is not set | ||
441 | # CONFIG_BT is not set | ||
442 | # CONFIG_IEEE80211 is not set | ||
443 | |||
444 | # | ||
445 | # Device Drivers | ||
446 | # | ||
447 | |||
448 | # | ||
449 | # Generic Driver Options | ||
450 | # | ||
451 | CONFIG_STANDALONE=y | ||
452 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
453 | # CONFIG_FW_LOADER is not set | ||
454 | # CONFIG_SYS_HYPERVISOR is not set | ||
455 | |||
456 | # | ||
457 | # Connector - unified userspace <-> kernelspace linker | ||
458 | # | ||
459 | # CONFIG_CONNECTOR is not set | ||
460 | |||
461 | # | ||
462 | # Memory Technology Devices (MTD) | ||
463 | # | ||
464 | CONFIG_MTD=y | ||
465 | # CONFIG_MTD_DEBUG is not set | ||
466 | # CONFIG_MTD_CONCAT is not set | ||
467 | CONFIG_MTD_PARTITIONS=y | ||
468 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
469 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
470 | |||
471 | # | ||
472 | # User Modules And Translation Layers | ||
473 | # | ||
474 | CONFIG_MTD_CHAR=m | ||
475 | CONFIG_MTD_BLOCK=y | ||
476 | # CONFIG_FTL is not set | ||
477 | # CONFIG_NFTL is not set | ||
478 | # CONFIG_INFTL is not set | ||
479 | # CONFIG_RFD_FTL is not set | ||
480 | # CONFIG_SSFDC is not set | ||
481 | |||
482 | # | ||
483 | # RAM/ROM/Flash chip drivers | ||
484 | # | ||
485 | # CONFIG_MTD_CFI is not set | ||
486 | CONFIG_MTD_JEDECPROBE=m | ||
487 | CONFIG_MTD_GEN_PROBE=m | ||
488 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
489 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
490 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
491 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
492 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
493 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
494 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
495 | CONFIG_MTD_CFI_I1=y | ||
496 | CONFIG_MTD_CFI_I2=y | ||
497 | # CONFIG_MTD_CFI_I4 is not set | ||
498 | # CONFIG_MTD_CFI_I8 is not set | ||
499 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
500 | # CONFIG_MTD_CFI_AMDSTD is not set | ||
501 | # CONFIG_MTD_CFI_STAA is not set | ||
502 | CONFIG_MTD_MW320D=m | ||
503 | CONFIG_MTD_RAM=y | ||
504 | CONFIG_MTD_ROM=m | ||
505 | # CONFIG_MTD_ABSENT is not set | ||
506 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
507 | |||
508 | # | ||
509 | # Mapping drivers for chip access | ||
510 | # | ||
511 | CONFIG_MTD_COMPLEX_MAPPINGS=y | ||
512 | # CONFIG_MTD_PHYSMAP is not set | ||
513 | # CONFIG_MTD_EZKIT561 is not set | ||
514 | CONFIG_MTD_BF5xx=m | ||
515 | CONFIG_BFIN_FLASH_SIZE=0x0400000 | ||
516 | CONFIG_EBIU_FLASH_BASE=0x20000000 | ||
517 | |||
518 | # | ||
519 | # FLASH_EBIU_AMBCTL Control | ||
520 | # | ||
521 | CONFIG_BFIN_FLASH_BANK_0=0x7BB0 | ||
522 | CONFIG_BFIN_FLASH_BANK_1=0x7BB0 | ||
523 | CONFIG_BFIN_FLASH_BANK_2=0x7BB0 | ||
524 | CONFIG_BFIN_FLASH_BANK_3=0x7BB0 | ||
525 | # CONFIG_MTD_UCLINUX is not set | ||
526 | # CONFIG_MTD_PLATRAM is not set | ||
527 | |||
528 | # | ||
529 | # Self-contained MTD device drivers | ||
530 | # | ||
531 | # CONFIG_MTD_SLRAM is not set | ||
532 | # CONFIG_MTD_PHRAM is not set | ||
533 | # CONFIG_MTD_MTDRAM is not set | ||
534 | # CONFIG_MTD_BLOCK2MTD is not set | ||
535 | |||
536 | # | ||
537 | # Disk-On-Chip Device Drivers | ||
538 | # | ||
539 | # CONFIG_MTD_DOC2000 is not set | ||
540 | # CONFIG_MTD_DOC2001 is not set | ||
541 | # CONFIG_MTD_DOC2001PLUS is not set | ||
542 | |||
543 | # | ||
544 | # NAND Flash Device Drivers | ||
545 | # | ||
546 | # CONFIG_MTD_NAND is not set | ||
547 | |||
548 | # | ||
549 | # OneNAND Flash Device Drivers | ||
550 | # | ||
551 | # CONFIG_MTD_ONENAND is not set | ||
552 | |||
553 | # | ||
554 | # Parallel port support | ||
555 | # | ||
556 | # CONFIG_PARPORT is not set | ||
557 | |||
558 | # | ||
559 | # Plug and Play support | ||
560 | # | ||
561 | |||
562 | # | ||
563 | # Block devices | ||
564 | # | ||
565 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
566 | # CONFIG_BLK_DEV_LOOP is not set | ||
567 | # CONFIG_BLK_DEV_NBD is not set | ||
568 | CONFIG_BLK_DEV_RAM=y | ||
569 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
570 | CONFIG_BLK_DEV_RAM_SIZE=4096 | ||
571 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | ||
572 | # CONFIG_BLK_DEV_INITRD is not set | ||
573 | # CONFIG_CDROM_PKTCDVD is not set | ||
574 | # CONFIG_ATA_OVER_ETH is not set | ||
575 | |||
576 | # | ||
577 | # Misc devices | ||
578 | # | ||
579 | # CONFIG_TIFM_CORE is not set | ||
580 | |||
581 | # | ||
582 | # ATA/ATAPI/MFM/RLL support | ||
583 | # | ||
584 | # CONFIG_IDE is not set | ||
585 | |||
586 | # | ||
587 | # SCSI device support | ||
588 | # | ||
589 | # CONFIG_RAID_ATTRS is not set | ||
590 | # CONFIG_SCSI is not set | ||
591 | # CONFIG_SCSI_NETLINK is not set | ||
592 | |||
593 | # | ||
594 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
595 | # | ||
596 | # CONFIG_ATA is not set | ||
597 | |||
598 | # | ||
599 | # Multi-device support (RAID and LVM) | ||
600 | # | ||
601 | # CONFIG_MD is not set | ||
602 | |||
603 | # | ||
604 | # Fusion MPT device support | ||
605 | # | ||
606 | # CONFIG_FUSION is not set | ||
607 | |||
608 | # | ||
609 | # IEEE 1394 (FireWire) support | ||
610 | # | ||
611 | |||
612 | # | ||
613 | # I2O device support | ||
614 | # | ||
615 | |||
616 | # | ||
617 | # Network device support | ||
618 | # | ||
619 | CONFIG_NETDEVICES=y | ||
620 | # CONFIG_DUMMY is not set | ||
621 | # CONFIG_BONDING is not set | ||
622 | # CONFIG_EQUALIZER is not set | ||
623 | # CONFIG_TUN is not set | ||
624 | |||
625 | # | ||
626 | # PHY device support | ||
627 | # | ||
628 | # CONFIG_PHYLIB is not set | ||
629 | |||
630 | # | ||
631 | # Ethernet (10 or 100Mbit) | ||
632 | # | ||
633 | CONFIG_NET_ETHERNET=y | ||
634 | CONFIG_MII=y | ||
635 | CONFIG_SMC91X=y | ||
636 | |||
637 | # | ||
638 | # Ethernet (1000 Mbit) | ||
639 | # | ||
640 | |||
641 | # | ||
642 | # Ethernet (10000 Mbit) | ||
643 | # | ||
644 | |||
645 | # | ||
646 | # Token Ring devices | ||
647 | # | ||
648 | |||
649 | # | ||
650 | # Wireless LAN (non-hamradio) | ||
651 | # | ||
652 | # CONFIG_NET_RADIO is not set | ||
653 | |||
654 | # | ||
655 | # Wan interfaces | ||
656 | # | ||
657 | # CONFIG_WAN is not set | ||
658 | # CONFIG_PPP is not set | ||
659 | # CONFIG_SLIP is not set | ||
660 | # CONFIG_SHAPER is not set | ||
661 | # CONFIG_NETCONSOLE is not set | ||
662 | # CONFIG_NETPOLL is not set | ||
663 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
664 | |||
665 | # | ||
666 | # ISDN subsystem | ||
667 | # | ||
668 | # CONFIG_ISDN is not set | ||
669 | |||
670 | # | ||
671 | # Telephony Support | ||
672 | # | ||
673 | # CONFIG_PHONE is not set | ||
674 | |||
675 | # | ||
676 | # Input device support | ||
677 | # | ||
678 | # CONFIG_INPUT is not set | ||
679 | |||
680 | # | ||
681 | # Hardware I/O ports | ||
682 | # | ||
683 | # CONFIG_SERIO is not set | ||
684 | # CONFIG_GAMEPORT is not set | ||
685 | |||
686 | # | ||
687 | # Character devices | ||
688 | # | ||
689 | # CONFIG_AD9960 is not set | ||
690 | # CONFIG_SPI_ADC_BF533 is not set | ||
691 | # CONFIG_BF533_PFLAGS is not set | ||
692 | # CONFIG_BF5xx_PPIFCD is not set | ||
693 | # CONFIG_BF5xx_TIMERS is not set | ||
694 | # CONFIG_BF5xx_PPI is not set | ||
695 | # CONFIG_BFIN_SPORT is not set | ||
696 | # CONFIG_BFIN_TIMER_LATENCY is not set | ||
697 | # CONFIG_VT is not set | ||
698 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
699 | |||
700 | # | ||
701 | # Serial drivers | ||
702 | # | ||
703 | # CONFIG_SERIAL_8250 is not set | ||
704 | |||
705 | # | ||
706 | # Non-8250 serial port support | ||
707 | # | ||
708 | CONFIG_SERIAL_BFIN=y | ||
709 | CONFIG_SERIAL_BFIN_CONSOLE=y | ||
710 | CONFIG_SERIAL_BFIN_DMA=y | ||
711 | # CONFIG_SERIAL_BFIN_PIO is not set | ||
712 | CONFIG_SERIAL_BFIN_UART0=y | ||
713 | # CONFIG_BFIN_UART0_CTSRTS is not set | ||
714 | CONFIG_SERIAL_CORE=y | ||
715 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
716 | # CONFIG_SERIAL_BFIN_SPORT is not set | ||
717 | CONFIG_UNIX98_PTYS=y | ||
718 | # CONFIG_LEGACY_PTYS is not set | ||
719 | |||
720 | # | ||
721 | # CAN, the car bus and industrial fieldbus | ||
722 | # | ||
723 | # CONFIG_CAN4LINUX is not set | ||
724 | |||
725 | # | ||
726 | # IPMI | ||
727 | # | ||
728 | # CONFIG_IPMI_HANDLER is not set | ||
729 | |||
730 | # | ||
731 | # Watchdog Cards | ||
732 | # | ||
733 | # CONFIG_WATCHDOG is not set | ||
734 | CONFIG_HW_RANDOM=y | ||
735 | # CONFIG_GEN_RTC is not set | ||
736 | # CONFIG_BLACKFIN_DPMC is not set | ||
737 | # CONFIG_DTLK is not set | ||
738 | # CONFIG_R3964 is not set | ||
739 | |||
740 | # | ||
741 | # Ftape, the floppy tape device driver | ||
742 | # | ||
743 | # CONFIG_RAW_DRIVER is not set | ||
744 | |||
745 | # | ||
746 | # TPM devices | ||
747 | # | ||
748 | # CONFIG_TCG_TPM is not set | ||
749 | |||
750 | # | ||
751 | # I2C support | ||
752 | # | ||
753 | # CONFIG_I2C is not set | ||
754 | |||
755 | # | ||
756 | # SPI support | ||
757 | # | ||
758 | # CONFIG_SPI is not set | ||
759 | # CONFIG_SPI_MASTER is not set | ||
760 | |||
761 | # | ||
762 | # Dallas's 1-wire bus | ||
763 | # | ||
764 | # CONFIG_W1 is not set | ||
765 | |||
766 | # | ||
767 | # Hardware Monitoring support | ||
768 | # | ||
769 | CONFIG_HWMON=y | ||
770 | # CONFIG_HWMON_VID is not set | ||
771 | # CONFIG_SENSORS_ABITUGURU is not set | ||
772 | # CONFIG_SENSORS_F71805F is not set | ||
773 | # CONFIG_SENSORS_VT1211 is not set | ||
774 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
775 | |||
776 | # | ||
777 | # Multimedia devices | ||
778 | # | ||
779 | # CONFIG_VIDEO_DEV is not set | ||
780 | |||
781 | # | ||
782 | # Digital Video Broadcasting Devices | ||
783 | # | ||
784 | # CONFIG_DVB is not set | ||
785 | |||
786 | # | ||
787 | # Graphics support | ||
788 | # | ||
789 | CONFIG_FIRMWARE_EDID=y | ||
790 | # CONFIG_FB is not set | ||
791 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
792 | |||
793 | # | ||
794 | # Sound | ||
795 | # | ||
796 | # CONFIG_SOUND is not set | ||
797 | |||
798 | # | ||
799 | # USB support | ||
800 | # | ||
801 | CONFIG_USB_ARCH_HAS_HCD=y | ||
802 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
803 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
804 | # CONFIG_USB is not set | ||
805 | |||
806 | # | ||
807 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
808 | # | ||
809 | |||
810 | # | ||
811 | # USB Gadget Support | ||
812 | # | ||
813 | # CONFIG_USB_GADGET is not set | ||
814 | |||
815 | # | ||
816 | # MMC/SD Card support | ||
817 | # | ||
818 | # CONFIG_MMC is not set | ||
819 | |||
820 | # | ||
821 | # LED devices | ||
822 | # | ||
823 | # CONFIG_NEW_LEDS is not set | ||
824 | |||
825 | # | ||
826 | # LED drivers | ||
827 | # | ||
828 | |||
829 | # | ||
830 | # LED Triggers | ||
831 | # | ||
832 | |||
833 | # | ||
834 | # InfiniBand support | ||
835 | # | ||
836 | |||
837 | # | ||
838 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
839 | # | ||
840 | |||
841 | # | ||
842 | # Real Time Clock | ||
843 | # | ||
844 | # CONFIG_RTC_CLASS is not set | ||
845 | |||
846 | # | ||
847 | # DMA Engine support | ||
848 | # | ||
849 | # CONFIG_DMA_ENGINE is not set | ||
850 | |||
851 | # | ||
852 | # DMA Clients | ||
853 | # | ||
854 | |||
855 | # | ||
856 | # DMA Devices | ||
857 | # | ||
858 | |||
859 | # | ||
860 | # PBX support | ||
861 | # | ||
862 | # CONFIG_PBX is not set | ||
863 | |||
864 | # | ||
865 | # File systems | ||
866 | # | ||
867 | CONFIG_EXT2_FS=y | ||
868 | CONFIG_EXT2_FS_XATTR=y | ||
869 | # CONFIG_EXT2_FS_POSIX_ACL is not set | ||
870 | # CONFIG_EXT2_FS_SECURITY is not set | ||
871 | # CONFIG_EXT3_FS is not set | ||
872 | # CONFIG_EXT4DEV_FS is not set | ||
873 | CONFIG_FS_MBCACHE=y | ||
874 | # CONFIG_REISERFS_FS is not set | ||
875 | # CONFIG_JFS_FS is not set | ||
876 | # CONFIG_FS_POSIX_ACL is not set | ||
877 | # CONFIG_XFS_FS is not set | ||
878 | # CONFIG_GFS2_FS is not set | ||
879 | # CONFIG_OCFS2_FS is not set | ||
880 | # CONFIG_MINIX_FS is not set | ||
881 | # CONFIG_ROMFS_FS is not set | ||
882 | CONFIG_INOTIFY=y | ||
883 | CONFIG_INOTIFY_USER=y | ||
884 | # CONFIG_QUOTA is not set | ||
885 | CONFIG_DNOTIFY=y | ||
886 | # CONFIG_AUTOFS_FS is not set | ||
887 | # CONFIG_AUTOFS4_FS is not set | ||
888 | # CONFIG_FUSE_FS is not set | ||
889 | |||
890 | # | ||
891 | # CD-ROM/DVD Filesystems | ||
892 | # | ||
893 | # CONFIG_ISO9660_FS is not set | ||
894 | # CONFIG_UDF_FS is not set | ||
895 | |||
896 | # | ||
897 | # DOS/FAT/NT Filesystems | ||
898 | # | ||
899 | # CONFIG_MSDOS_FS is not set | ||
900 | # CONFIG_VFAT_FS is not set | ||
901 | # CONFIG_NTFS_FS is not set | ||
902 | |||
903 | # | ||
904 | # Pseudo filesystems | ||
905 | # | ||
906 | CONFIG_PROC_FS=y | ||
907 | CONFIG_PROC_SYSCTL=y | ||
908 | CONFIG_SYSFS=y | ||
909 | # CONFIG_TMPFS is not set | ||
910 | # CONFIG_HUGETLB_PAGE is not set | ||
911 | CONFIG_RAMFS=y | ||
912 | # CONFIG_CONFIGFS_FS is not set | ||
913 | |||
914 | # | ||
915 | # Miscellaneous filesystems | ||
916 | # | ||
917 | # CONFIG_ADFS_FS is not set | ||
918 | # CONFIG_AFFS_FS is not set | ||
919 | # CONFIG_HFS_FS is not set | ||
920 | # CONFIG_HFSPLUS_FS is not set | ||
921 | # CONFIG_BEFS_FS is not set | ||
922 | # CONFIG_BFS_FS is not set | ||
923 | # CONFIG_EFS_FS is not set | ||
924 | CONFIG_YAFFS_FS=m | ||
925 | CONFIG_YAFFS_YAFFS1=y | ||
926 | # CONFIG_YAFFS_DOES_ECC is not set | ||
927 | CONFIG_YAFFS_YAFFS2=y | ||
928 | CONFIG_YAFFS_AUTO_YAFFS2=y | ||
929 | # CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set | ||
930 | CONFIG_YAFFS_CHECKPOINT_RESERVED_BLOCKS=10 | ||
931 | # CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set | ||
932 | # CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set | ||
933 | CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y | ||
934 | # CONFIG_JFFS_FS is not set | ||
935 | CONFIG_JFFS2_FS=m | ||
936 | CONFIG_JFFS2_FS_DEBUG=0 | ||
937 | CONFIG_JFFS2_FS_WRITEBUFFER=y | ||
938 | # CONFIG_JFFS2_SUMMARY is not set | ||
939 | # CONFIG_JFFS2_FS_XATTR is not set | ||
940 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | ||
941 | CONFIG_JFFS2_ZLIB=y | ||
942 | CONFIG_JFFS2_RTIME=y | ||
943 | # CONFIG_JFFS2_RUBIN is not set | ||
944 | # CONFIG_CRAMFS is not set | ||
945 | # CONFIG_VXFS_FS is not set | ||
946 | # CONFIG_HPFS_FS is not set | ||
947 | # CONFIG_QNX4FS_FS is not set | ||
948 | # CONFIG_SYSV_FS is not set | ||
949 | # CONFIG_UFS_FS is not set | ||
950 | |||
951 | # | ||
952 | # Network File Systems | ||
953 | # | ||
954 | CONFIG_NFS_FS=m | ||
955 | CONFIG_NFS_V3=y | ||
956 | # CONFIG_NFS_V3_ACL is not set | ||
957 | # CONFIG_NFS_V4 is not set | ||
958 | # CONFIG_NFS_DIRECTIO is not set | ||
959 | # CONFIG_NFSD is not set | ||
960 | CONFIG_LOCKD=m | ||
961 | CONFIG_LOCKD_V4=y | ||
962 | CONFIG_NFS_COMMON=y | ||
963 | CONFIG_SUNRPC=m | ||
964 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
965 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
966 | CONFIG_SMB_FS=m | ||
967 | # CONFIG_SMB_NLS_DEFAULT is not set | ||
968 | # CONFIG_CIFS is not set | ||
969 | # CONFIG_NCP_FS is not set | ||
970 | # CONFIG_CODA_FS is not set | ||
971 | # CONFIG_AFS_FS is not set | ||
972 | # CONFIG_9P_FS is not set | ||
973 | |||
974 | # | ||
975 | # Partition Types | ||
976 | # | ||
977 | # CONFIG_PARTITION_ADVANCED is not set | ||
978 | CONFIG_MSDOS_PARTITION=y | ||
979 | |||
980 | # | ||
981 | # Native Language Support | ||
982 | # | ||
983 | CONFIG_NLS=m | ||
984 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
985 | # CONFIG_NLS_CODEPAGE_437 is not set | ||
986 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
987 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
988 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
989 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
990 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
991 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
992 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
993 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
994 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
995 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
996 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
997 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
998 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
999 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
1000 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
1001 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
1002 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
1003 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
1004 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
1005 | # CONFIG_NLS_ISO8859_8 is not set | ||
1006 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
1007 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
1008 | # CONFIG_NLS_ASCII is not set | ||
1009 | # CONFIG_NLS_ISO8859_1 is not set | ||
1010 | # CONFIG_NLS_ISO8859_2 is not set | ||
1011 | # CONFIG_NLS_ISO8859_3 is not set | ||
1012 | # CONFIG_NLS_ISO8859_4 is not set | ||
1013 | # CONFIG_NLS_ISO8859_5 is not set | ||
1014 | # CONFIG_NLS_ISO8859_6 is not set | ||
1015 | # CONFIG_NLS_ISO8859_7 is not set | ||
1016 | # CONFIG_NLS_ISO8859_9 is not set | ||
1017 | # CONFIG_NLS_ISO8859_13 is not set | ||
1018 | # CONFIG_NLS_ISO8859_14 is not set | ||
1019 | # CONFIG_NLS_ISO8859_15 is not set | ||
1020 | # CONFIG_NLS_KOI8_R is not set | ||
1021 | # CONFIG_NLS_KOI8_U is not set | ||
1022 | # CONFIG_NLS_UTF8 is not set | ||
1023 | |||
1024 | # | ||
1025 | # Profiling support | ||
1026 | # | ||
1027 | # CONFIG_PROFILING is not set | ||
1028 | |||
1029 | # | ||
1030 | # Kernel hacking | ||
1031 | # | ||
1032 | # CONFIG_PRINTK_TIME is not set | ||
1033 | CONFIG_ENABLE_MUST_CHECK=y | ||
1034 | # CONFIG_MAGIC_SYSRQ is not set | ||
1035 | # CONFIG_UNUSED_SYMBOLS is not set | ||
1036 | # CONFIG_DEBUG_KERNEL is not set | ||
1037 | CONFIG_LOG_BUF_SHIFT=14 | ||
1038 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
1039 | # CONFIG_DEBUG_FS is not set | ||
1040 | # CONFIG_UNWIND_INFO is not set | ||
1041 | # CONFIG_HEADERS_CHECK is not set | ||
1042 | # CONFIG_DEBUG_SERIAL_EARLY_INIT is not set | ||
1043 | CONFIG_DEBUG_HUNT_FOR_ZERO=y | ||
1044 | # CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set | ||
1045 | # CONFIG_DUAL_CORE_TEST_MODULE is not set | ||
1046 | # CONFIG_BOOTPARAM is not set | ||
1047 | # CONFIG_NO_KERNEL_MSG is not set | ||
1048 | CONFIG_CPLB_INFO=y | ||
1049 | # CONFIG_NO_ACCESS_CHECK is not set | ||
1050 | |||
1051 | # | ||
1052 | # Security options | ||
1053 | # | ||
1054 | # CONFIG_KEYS is not set | ||
1055 | CONFIG_SECURITY=y | ||
1056 | # CONFIG_SECURITY_NETWORK is not set | ||
1057 | CONFIG_SECURITY_CAPABILITIES=y | ||
1058 | |||
1059 | # | ||
1060 | # Cryptographic options | ||
1061 | # | ||
1062 | # CONFIG_CRYPTO is not set | ||
1063 | |||
1064 | # | ||
1065 | # Library routines | ||
1066 | # | ||
1067 | # CONFIG_CRC_CCITT is not set | ||
1068 | # CONFIG_CRC16 is not set | ||
1069 | CONFIG_CRC32=y | ||
1070 | # CONFIG_LIBCRC32C is not set | ||
1071 | CONFIG_ZLIB_INFLATE=y | ||
1072 | CONFIG_ZLIB_DEFLATE=m | ||
1073 | CONFIG_PLIST=y | ||
diff --git a/arch/blackfin/configs/PNAV-10_defconfig b/arch/blackfin/configs/PNAV-10_defconfig new file mode 100644 index 000000000000..97b4ffa2b4ac --- /dev/null +++ b/arch/blackfin/configs/PNAV-10_defconfig | |||
@@ -0,0 +1,1253 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.19.3 | ||
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_BFIN=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_CALIBRATE_DELAY=y | ||
17 | CONFIG_UCLINUX=y | ||
18 | CONFIG_FORCE_MAX_ZONEORDER=14 | ||
19 | CONFIG_IRQCHIP_DEMUX_GPIO=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_POSIX_MQUEUE is not set | ||
37 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
38 | # CONFIG_TASKSTATS is not set | ||
39 | # CONFIG_UTS_NS is not set | ||
40 | # CONFIG_AUDIT is not set | ||
41 | # CONFIG_IKCONFIG is not set | ||
42 | # CONFIG_RELAY is not set | ||
43 | CONFIG_INITRAMFS_SOURCE="" | ||
44 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
45 | CONFIG_SYSCTL=y | ||
46 | CONFIG_EMBEDDED=y | ||
47 | CONFIG_UID16=y | ||
48 | CONFIG_SYSCTL_SYSCALL=y | ||
49 | CONFIG_KALLSYMS=y | ||
50 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
51 | CONFIG_HOTPLUG=y | ||
52 | CONFIG_PRINTK=y | ||
53 | CONFIG_BUG=y | ||
54 | CONFIG_ELF_CORE=y | ||
55 | CONFIG_BASE_FULL=y | ||
56 | CONFIG_FUTEX=y | ||
57 | CONFIG_EPOLL=y | ||
58 | CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=9 | ||
59 | # CONFIG_LIMIT_PAGECACHE is not set | ||
60 | CONFIG_BUDDY=y | ||
61 | # CONFIG_NP2 is not set | ||
62 | CONFIG_SLAB=y | ||
63 | CONFIG_VM_EVENT_COUNTERS=y | ||
64 | CONFIG_RT_MUTEXES=y | ||
65 | CONFIG_TINY_SHMEM=y | ||
66 | CONFIG_BASE_SMALL=0 | ||
67 | # CONFIG_SLOB is not set | ||
68 | |||
69 | # | ||
70 | # Loadable module support | ||
71 | # | ||
72 | CONFIG_MODULES=y | ||
73 | CONFIG_MODULE_UNLOAD=y | ||
74 | # CONFIG_MODULE_FORCE_UNLOAD is not set | ||
75 | # CONFIG_MODVERSIONS is not set | ||
76 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
77 | CONFIG_KMOD=y | ||
78 | |||
79 | # | ||
80 | # Block layer | ||
81 | # | ||
82 | CONFIG_BLOCK=y | ||
83 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
84 | |||
85 | # | ||
86 | # IO Schedulers | ||
87 | # | ||
88 | CONFIG_IOSCHED_NOOP=y | ||
89 | CONFIG_IOSCHED_AS=y | ||
90 | # CONFIG_IOSCHED_DEADLINE is not set | ||
91 | CONFIG_IOSCHED_CFQ=y | ||
92 | CONFIG_DEFAULT_AS=y | ||
93 | # CONFIG_DEFAULT_DEADLINE is not set | ||
94 | # CONFIG_DEFAULT_CFQ is not set | ||
95 | # CONFIG_DEFAULT_NOOP is not set | ||
96 | CONFIG_DEFAULT_IOSCHED="anticipatory" | ||
97 | # CONFIG_PREEMPT_NONE is not set | ||
98 | CONFIG_PREEMPT_VOLUNTARY=y | ||
99 | # CONFIG_PREEMPT is not set | ||
100 | |||
101 | # | ||
102 | # Blackfin Processor Options | ||
103 | # | ||
104 | |||
105 | # | ||
106 | # Processor and Board Settings | ||
107 | # | ||
108 | # CONFIG_BF531 is not set | ||
109 | # CONFIG_BF532 is not set | ||
110 | # CONFIG_BF533 is not set | ||
111 | # CONFIG_BF534 is not set | ||
112 | # CONFIG_BF535 is not set | ||
113 | # CONFIG_BF536 is not set | ||
114 | CONFIG_BF537=y | ||
115 | # CONFIG_BF561 is not set | ||
116 | CONFIG_BF_REV_0_2=y | ||
117 | # CONFIG_BF_REV_0_3 is not set | ||
118 | # CONFIG_BF_REV_0_4 is not set | ||
119 | # CONFIG_BF_REV_0_5 is not set | ||
120 | CONFIG_BFIN_SINGLE_CORE=y | ||
121 | # CONFIG_BFIN533_EZKIT is not set | ||
122 | # CONFIG_BFIN533_STAMP is not set | ||
123 | # CONFIG_BFIN537_STAMP is not set | ||
124 | # CONFIG_BFIN533_BLUETECHNIX_CM is not set | ||
125 | # CONFIG_BFIN537_BLUETECHNIX_CM is not set | ||
126 | # CONFIG_BFIN561_BLUETECHNIX_CM is not set | ||
127 | # CONFIG_BFIN561_EZKIT is not set | ||
128 | CONFIG_PNAV10=y | ||
129 | # CONFIG_GENERIC_BOARD is not set | ||
130 | CONFIG_MEM_MT48LC32M8A2_75=y | ||
131 | CONFIG_IRQ_PLL_WAKEUP=7 | ||
132 | |||
133 | # | ||
134 | # BF537 Specific Configuration | ||
135 | # | ||
136 | |||
137 | # | ||
138 | # PORT F/G Selection | ||
139 | # | ||
140 | CONFIG_BF537_PORT_F=y | ||
141 | # CONFIG_BF537_PORT_G is not set | ||
142 | # CONFIG_BF537_PORT_H is not set | ||
143 | |||
144 | # | ||
145 | # Interrupt Priority Assignment | ||
146 | # | ||
147 | |||
148 | # | ||
149 | # Priority | ||
150 | # | ||
151 | CONFIG_IRQ_DMA_ERROR=7 | ||
152 | CONFIG_IRQ_ERROR=7 | ||
153 | CONFIG_IRQ_RTC=8 | ||
154 | CONFIG_IRQ_PPI=8 | ||
155 | CONFIG_IRQ_SPORT0_RX=9 | ||
156 | CONFIG_IRQ_SPORT0_TX=9 | ||
157 | CONFIG_IRQ_SPORT1_RX=9 | ||
158 | CONFIG_IRQ_SPORT1_TX=9 | ||
159 | CONFIG_IRQ_TWI=10 | ||
160 | CONFIG_IRQ_SPI=10 | ||
161 | CONFIG_IRQ_UART0_RX=10 | ||
162 | CONFIG_IRQ_UART0_TX=10 | ||
163 | CONFIG_IRQ_UART1_RX=10 | ||
164 | CONFIG_IRQ_UART1_TX=10 | ||
165 | CONFIG_IRQ_CAN_RX=11 | ||
166 | CONFIG_IRQ_CAN_TX=11 | ||
167 | CONFIG_IRQ_MAC_RX=11 | ||
168 | CONFIG_IRQ_MAC_TX=11 | ||
169 | CONFIG_IRQ_TMR0=12 | ||
170 | CONFIG_IRQ_TMR1=12 | ||
171 | CONFIG_IRQ_TMR2=12 | ||
172 | CONFIG_IRQ_TMR3=12 | ||
173 | CONFIG_IRQ_TMR4=12 | ||
174 | CONFIG_IRQ_TMR5=12 | ||
175 | CONFIG_IRQ_TMR6=12 | ||
176 | CONFIG_IRQ_TMR7=12 | ||
177 | CONFIG_IRQ_PROG_INTA=12 | ||
178 | CONFIG_IRQ_PORTG_INTB=12 | ||
179 | CONFIG_IRQ_MEM_DMA0=13 | ||
180 | CONFIG_IRQ_MEM_DMA1=13 | ||
181 | CONFIG_IRQ_WATCH=13 | ||
182 | |||
183 | # | ||
184 | # Board customizations | ||
185 | # | ||
186 | |||
187 | # | ||
188 | # Board Setup | ||
189 | # | ||
190 | CONFIG_CLKIN_HZ=24576000 | ||
191 | CONFIG_MEM_SIZE=64 | ||
192 | CONFIG_MEM_ADD_WIDTH=10 | ||
193 | CONFIG_BOOT_LOAD=0x1000 | ||
194 | |||
195 | # | ||
196 | # Console UART Setup | ||
197 | # | ||
198 | # CONFIG_BAUD_9600 is not set | ||
199 | # CONFIG_BAUD_19200 is not set | ||
200 | # CONFIG_BAUD_38400 is not set | ||
201 | # CONFIG_BAUD_57600 is not set | ||
202 | CONFIG_BAUD_115200=y | ||
203 | CONFIG_BAUD_NO_PARITY=y | ||
204 | # CONFIG_BAUD_PARITY is not set | ||
205 | CONFIG_BAUD_1_STOPBIT=y | ||
206 | # CONFIG_BAUD_2_STOPBIT is not set | ||
207 | |||
208 | # | ||
209 | # Blackfin Kernel Optimizations | ||
210 | # | ||
211 | |||
212 | # | ||
213 | # Timer Tick | ||
214 | # | ||
215 | # CONFIG_HZ_100 is not set | ||
216 | CONFIG_HZ_250=y | ||
217 | # CONFIG_HZ_1000 is not set | ||
218 | CONFIG_HZ=250 | ||
219 | |||
220 | # | ||
221 | # Memory Optimizations | ||
222 | # | ||
223 | CONFIG_I_ENTRY_L1=y | ||
224 | CONFIG_EXCPT_IRQ_SYSC_L1=y | ||
225 | CONFIG_DO_IRQ_L1=y | ||
226 | CONFIG_CORE_TIMER_IRQ_L1=y | ||
227 | CONFIG_IDLE_L1=y | ||
228 | CONFIG_SCHEDULE_L1=y | ||
229 | CONFIG_ARITHMETIC_OPS_L1=y | ||
230 | CONFIG_ACCESS_OK_L1=y | ||
231 | CONFIG_MEMSET_L1=y | ||
232 | CONFIG_MEMCPY_L1=y | ||
233 | CONFIG_SYS_BFIN_SPINLOCK_L1=y | ||
234 | CONFIG_IP_CHECKSUM_L1=y | ||
235 | CONFIG_SYSCALL_TAB_L1=y | ||
236 | CONFIG_CPLB_SWITCH_TAB_L1=y | ||
237 | CONFIG_RAMKERNEL=y | ||
238 | # CONFIG_ROMKERNEL is not set | ||
239 | CONFIG_SELECT_MEMORY_MODEL=y | ||
240 | CONFIG_FLATMEM_MANUAL=y | ||
241 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
242 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
243 | CONFIG_FLATMEM=y | ||
244 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
245 | # CONFIG_SPARSEMEM_STATIC is not set | ||
246 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
247 | # CONFIG_RESOURCES_64BIT is not set | ||
248 | CONFIG_LARGE_ALLOCS=y | ||
249 | CONFIG_BFIN_DMA_5XX=y | ||
250 | # CONFIG_DMA_UNCACHED_2M is not set | ||
251 | CONFIG_DMA_UNCACHED_1M=y | ||
252 | # CONFIG_DMA_UNCACHED_NONE is not set | ||
253 | |||
254 | # | ||
255 | # Cache Support | ||
256 | # | ||
257 | CONFIG_BLKFIN_CACHE=y | ||
258 | CONFIG_BLKFIN_DCACHE=y | ||
259 | # CONFIG_BLKFIN_DCACHE_BANKA is not set | ||
260 | # CONFIG_BLKFIN_CACHE_LOCK is not set | ||
261 | CONFIG_BLKFIN_WB=y | ||
262 | # CONFIG_BLKFIN_WT is not set | ||
263 | CONFIG_L1_MAX_PIECE=16 | ||
264 | |||
265 | # | ||
266 | # Clock Settings | ||
267 | # | ||
268 | # CONFIG_BFIN_KERNEL_CLOCK is not set | ||
269 | |||
270 | # | ||
271 | # Asynchonous Memory Configuration | ||
272 | # | ||
273 | |||
274 | # | ||
275 | # EBIU_AMBCTL Global Control | ||
276 | # | ||
277 | CONFIG_C_AMCKEN=y | ||
278 | CONFIG_C_CDPRIO=y | ||
279 | # CONFIG_C_AMBEN is not set | ||
280 | # CONFIG_C_AMBEN_B0 is not set | ||
281 | # CONFIG_C_AMBEN_B0_B1 is not set | ||
282 | # CONFIG_C_AMBEN_B0_B1_B2 is not set | ||
283 | CONFIG_C_AMBEN_ALL=y | ||
284 | |||
285 | # | ||
286 | # EBIU_AMBCTL Control | ||
287 | # | ||
288 | CONFIG_BANK_0=0x7BB0 | ||
289 | CONFIG_BANK_1=0x33B0 | ||
290 | CONFIG_BANK_2=0x33B0 | ||
291 | CONFIG_BANK_3=0x99B3 | ||
292 | |||
293 | # | ||
294 | # Bus options (PCI, PCMCIA, EISA, MCA, ISA) | ||
295 | # | ||
296 | # CONFIG_PCI is not set | ||
297 | |||
298 | # | ||
299 | # PCCARD (PCMCIA/CardBus) support | ||
300 | # | ||
301 | # CONFIG_PCCARD is not set | ||
302 | |||
303 | # | ||
304 | # PCI Hotplug Support | ||
305 | # | ||
306 | |||
307 | # | ||
308 | # Executable file formats | ||
309 | # | ||
310 | CONFIG_BINFMT_ELF_FDPIC=y | ||
311 | CONFIG_BINFMT_FLAT=y | ||
312 | CONFIG_BINFMT_ZFLAT=y | ||
313 | # CONFIG_BINFMT_SHARED_FLAT is not set | ||
314 | # CONFIG_BINFMT_MISC is not set | ||
315 | |||
316 | # | ||
317 | # Power management options | ||
318 | # | ||
319 | # CONFIG_PM 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_NETDEBUG is not set | ||
335 | CONFIG_PACKET=y | ||
336 | # CONFIG_PACKET_MMAP is not set | ||
337 | CONFIG_UNIX=y | ||
338 | CONFIG_XFRM=y | ||
339 | # CONFIG_XFRM_USER is not set | ||
340 | # CONFIG_XFRM_SUB_POLICY 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=y | ||
347 | # CONFIG_IP_PNP_DHCP is not set | ||
348 | # CONFIG_IP_PNP_BOOTP is not set | ||
349 | # CONFIG_IP_PNP_RARP is not set | ||
350 | # CONFIG_NET_IPIP is not set | ||
351 | # CONFIG_NET_IPGRE is not set | ||
352 | # CONFIG_ARPD is not set | ||
353 | CONFIG_SYN_COOKIES=y | ||
354 | # CONFIG_INET_AH is not set | ||
355 | # CONFIG_INET_ESP is not set | ||
356 | # CONFIG_INET_IPCOMP is not set | ||
357 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
358 | # CONFIG_INET_TUNNEL is not set | ||
359 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
360 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
361 | CONFIG_INET_XFRM_MODE_BEET=y | ||
362 | CONFIG_INET_DIAG=y | ||
363 | CONFIG_INET_TCP_DIAG=y | ||
364 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
365 | CONFIG_TCP_CONG_CUBIC=y | ||
366 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
367 | # CONFIG_IPV6 is not set | ||
368 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
369 | # CONFIG_INET6_TUNNEL is not set | ||
370 | # CONFIG_NETLABEL is not set | ||
371 | # CONFIG_NETWORK_SECMARK is not set | ||
372 | # CONFIG_NETFILTER is not set | ||
373 | |||
374 | # | ||
375 | # DCCP Configuration (EXPERIMENTAL) | ||
376 | # | ||
377 | # CONFIG_IP_DCCP is not set | ||
378 | |||
379 | # | ||
380 | # SCTP Configuration (EXPERIMENTAL) | ||
381 | # | ||
382 | # CONFIG_IP_SCTP is not set | ||
383 | |||
384 | # | ||
385 | # TIPC Configuration (EXPERIMENTAL) | ||
386 | # | ||
387 | # CONFIG_TIPC is not set | ||
388 | # CONFIG_ATM is not set | ||
389 | # CONFIG_BRIDGE is not set | ||
390 | # CONFIG_VLAN_8021Q is not set | ||
391 | # CONFIG_DECNET is not set | ||
392 | # CONFIG_LLC2 is not set | ||
393 | # CONFIG_IPX is not set | ||
394 | # CONFIG_ATALK is not set | ||
395 | # CONFIG_X25 is not set | ||
396 | # CONFIG_LAPB is not set | ||
397 | # CONFIG_ECONET is not set | ||
398 | # CONFIG_WAN_ROUTER is not set | ||
399 | |||
400 | # | ||
401 | # QoS and/or fair queueing | ||
402 | # | ||
403 | # CONFIG_NET_SCHED is not set | ||
404 | |||
405 | # | ||
406 | # Network testing | ||
407 | # | ||
408 | # CONFIG_NET_PKTGEN is not set | ||
409 | # CONFIG_HAMRADIO is not set | ||
410 | # CONFIG_IRDA is not set | ||
411 | # CONFIG_BT is not set | ||
412 | # CONFIG_IEEE80211 is not set | ||
413 | |||
414 | # | ||
415 | # Device Drivers | ||
416 | # | ||
417 | |||
418 | # | ||
419 | # Generic Driver Options | ||
420 | # | ||
421 | CONFIG_STANDALONE=y | ||
422 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
423 | # CONFIG_FW_LOADER is not set | ||
424 | # CONFIG_SYS_HYPERVISOR is not set | ||
425 | |||
426 | # | ||
427 | # Connector - unified userspace <-> kernelspace linker | ||
428 | # | ||
429 | # CONFIG_CONNECTOR is not set | ||
430 | |||
431 | # | ||
432 | # Memory Technology Devices (MTD) | ||
433 | # | ||
434 | CONFIG_MTD=y | ||
435 | # CONFIG_MTD_DEBUG is not set | ||
436 | # CONFIG_MTD_CONCAT is not set | ||
437 | CONFIG_MTD_PARTITIONS=y | ||
438 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
439 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
440 | |||
441 | # | ||
442 | # User Modules And Translation Layers | ||
443 | # | ||
444 | CONFIG_MTD_CHAR=m | ||
445 | CONFIG_MTD_BLOCK=y | ||
446 | # CONFIG_FTL is not set | ||
447 | # CONFIG_NFTL is not set | ||
448 | # CONFIG_INFTL is not set | ||
449 | # CONFIG_RFD_FTL is not set | ||
450 | # CONFIG_SSFDC is not set | ||
451 | |||
452 | # | ||
453 | # RAM/ROM/Flash chip drivers | ||
454 | # | ||
455 | # CONFIG_MTD_CFI is not set | ||
456 | # CONFIG_MTD_JEDECPROBE is not set | ||
457 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
458 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
459 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
460 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
461 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
462 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
463 | CONFIG_MTD_CFI_I1=y | ||
464 | CONFIG_MTD_CFI_I2=y | ||
465 | # CONFIG_MTD_CFI_I4 is not set | ||
466 | # CONFIG_MTD_CFI_I8 is not set | ||
467 | CONFIG_MTD_RAM=y | ||
468 | # CONFIG_MTD_ROM is not set | ||
469 | # CONFIG_MTD_ABSENT is not set | ||
470 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
471 | |||
472 | # | ||
473 | # Mapping drivers for chip access | ||
474 | # | ||
475 | CONFIG_MTD_COMPLEX_MAPPINGS=y | ||
476 | # CONFIG_MTD_BF5xx is not set | ||
477 | CONFIG_MTD_UCLINUX=y | ||
478 | # CONFIG_MTD_PLATRAM is not set | ||
479 | |||
480 | # | ||
481 | # Self-contained MTD device drivers | ||
482 | # | ||
483 | # CONFIG_MTD_DATAFLASH is not set | ||
484 | # CONFIG_MTD_M25P80 is not set | ||
485 | # CONFIG_MTD_SLRAM is not set | ||
486 | # CONFIG_MTD_PHRAM is not set | ||
487 | # CONFIG_MTD_MTDRAM is not set | ||
488 | # CONFIG_MTD_BLOCK2MTD is not set | ||
489 | |||
490 | # | ||
491 | # Disk-On-Chip Device Drivers | ||
492 | # | ||
493 | # CONFIG_MTD_DOC2000 is not set | ||
494 | # CONFIG_MTD_DOC2001 is not set | ||
495 | # CONFIG_MTD_DOC2001PLUS is not set | ||
496 | |||
497 | # | ||
498 | # NAND Flash Device Drivers | ||
499 | # | ||
500 | CONFIG_MTD_NAND=y | ||
501 | # CONFIG_MTD_NAND_VERIFY_WRITE is not set | ||
502 | # CONFIG_MTD_NAND_ECC_SMC is not set | ||
503 | CONFIG_MTD_NAND_BFIN=y | ||
504 | CONFIG_BFIN_NAND_BASE=0x20100000 | ||
505 | CONFIG_BFIN_NAND_CLE=2 | ||
506 | CONFIG_BFIN_NAND_ALE=1 | ||
507 | CONFIG_BFIN_NAND_READY=44 | ||
508 | CONFIG_MTD_NAND_IDS=y | ||
509 | # CONFIG_MTD_NAND_DISKONCHIP is not set | ||
510 | # CONFIG_MTD_NAND_NANDSIM is not set | ||
511 | |||
512 | # | ||
513 | # OneNAND Flash Device Drivers | ||
514 | # | ||
515 | # CONFIG_MTD_ONENAND is not set | ||
516 | |||
517 | # | ||
518 | # Parallel port support | ||
519 | # | ||
520 | # CONFIG_PARPORT is not set | ||
521 | |||
522 | # | ||
523 | # Plug and Play support | ||
524 | # | ||
525 | |||
526 | # | ||
527 | # Block devices | ||
528 | # | ||
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_BLK_DEV_INITRD is not set | ||
537 | # CONFIG_CDROM_PKTCDVD is not set | ||
538 | # CONFIG_ATA_OVER_ETH is not set | ||
539 | |||
540 | # | ||
541 | # Misc devices | ||
542 | # | ||
543 | # CONFIG_TIFM_CORE is not set | ||
544 | |||
545 | # | ||
546 | # ATA/ATAPI/MFM/RLL support | ||
547 | # | ||
548 | # CONFIG_IDE is not set | ||
549 | |||
550 | # | ||
551 | # SCSI device support | ||
552 | # | ||
553 | # CONFIG_RAID_ATTRS is not set | ||
554 | # CONFIG_SCSI is not set | ||
555 | # CONFIG_SCSI_NETLINK is not set | ||
556 | |||
557 | # | ||
558 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
559 | # | ||
560 | # CONFIG_ATA is not set | ||
561 | |||
562 | # | ||
563 | # Multi-device support (RAID and LVM) | ||
564 | # | ||
565 | # CONFIG_MD is not set | ||
566 | |||
567 | # | ||
568 | # Fusion MPT device support | ||
569 | # | ||
570 | # CONFIG_FUSION is not set | ||
571 | |||
572 | # | ||
573 | # IEEE 1394 (FireWire) support | ||
574 | # | ||
575 | |||
576 | # | ||
577 | # I2O device support | ||
578 | # | ||
579 | |||
580 | # | ||
581 | # Network device support | ||
582 | # | ||
583 | CONFIG_NETDEVICES=y | ||
584 | # CONFIG_DUMMY is not set | ||
585 | # CONFIG_BONDING is not set | ||
586 | # CONFIG_EQUALIZER is not set | ||
587 | # CONFIG_TUN is not set | ||
588 | |||
589 | # | ||
590 | # PHY device support | ||
591 | # | ||
592 | # CONFIG_PHYLIB is not set | ||
593 | |||
594 | # | ||
595 | # Ethernet (10 or 100Mbit) | ||
596 | # | ||
597 | CONFIG_NET_ETHERNET=y | ||
598 | CONFIG_MII=y | ||
599 | # CONFIG_SMC91X is not set | ||
600 | CONFIG_BFIN_MAC=y | ||
601 | # CONFIG_BFIN_MAC_USE_L1 is not set | ||
602 | CONFIG_BFIN_TX_DESC_NUM=100 | ||
603 | CONFIG_BFIN_RX_DESC_NUM=100 | ||
604 | CONFIG_BFIN_MAC_RMII=y | ||
605 | |||
606 | # | ||
607 | # Ethernet (1000 Mbit) | ||
608 | # | ||
609 | |||
610 | # | ||
611 | # Ethernet (10000 Mbit) | ||
612 | # | ||
613 | |||
614 | # | ||
615 | # Token Ring devices | ||
616 | # | ||
617 | |||
618 | # | ||
619 | # Wireless LAN (non-hamradio) | ||
620 | # | ||
621 | # CONFIG_NET_RADIO is not set | ||
622 | |||
623 | # | ||
624 | # Wan interfaces | ||
625 | # | ||
626 | # CONFIG_WAN is not set | ||
627 | # CONFIG_PPP is not set | ||
628 | # CONFIG_SLIP is not set | ||
629 | # CONFIG_SHAPER is not set | ||
630 | # CONFIG_NETCONSOLE is not set | ||
631 | # CONFIG_NETPOLL is not set | ||
632 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
633 | |||
634 | # | ||
635 | # ISDN subsystem | ||
636 | # | ||
637 | # CONFIG_ISDN is not set | ||
638 | |||
639 | # | ||
640 | # Telephony Support | ||
641 | # | ||
642 | # CONFIG_PHONE is not set | ||
643 | |||
644 | # | ||
645 | # Input device support | ||
646 | # | ||
647 | CONFIG_INPUT=y | ||
648 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
649 | |||
650 | # | ||
651 | # Userland interfaces | ||
652 | # | ||
653 | # CONFIG_INPUT_MOUSEDEV is not set | ||
654 | # CONFIG_INPUT_JOYDEV is not set | ||
655 | CONFIG_INPUT_TSDEV=y | ||
656 | CONFIG_INPUT_TSDEV_SCREEN_X=240 | ||
657 | CONFIG_INPUT_TSDEV_SCREEN_Y=320 | ||
658 | CONFIG_INPUT_EVDEV=y | ||
659 | # CONFIG_INPUT_EVBUG is not set | ||
660 | |||
661 | # | ||
662 | # Input Device Drivers | ||
663 | # | ||
664 | # CONFIG_INPUT_KEYBOARD is not set | ||
665 | # CONFIG_INPUT_MOUSE is not set | ||
666 | # CONFIG_INPUT_JOYSTICK is not set | ||
667 | CONFIG_INPUT_TOUCHSCREEN=y | ||
668 | # CONFIG_TOUCHSCREEN_ADS7846 is not set | ||
669 | CONFIG_TOUCHSCREEN_AD7877=y | ||
670 | # CONFIG_TOUCHSCREEN_GUNZE is not set | ||
671 | # CONFIG_TOUCHSCREEN_ELO is not set | ||
672 | # CONFIG_TOUCHSCREEN_MTOUCH is not set | ||
673 | # CONFIG_TOUCHSCREEN_MK712 is not set | ||
674 | # CONFIG_TOUCHSCREEN_PENMOUNT is not set | ||
675 | # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set | ||
676 | # CONFIG_TOUCHSCREEN_TOUCHWIN is not set | ||
677 | CONFIG_INPUT_MISC=y | ||
678 | CONFIG_INPUT_UINPUT=y | ||
679 | # CONFIG_BF53X_PFBUTTONS is not set | ||
680 | # CONFIG_TWI_KEYPAD is not set | ||
681 | |||
682 | # | ||
683 | # Hardware I/O ports | ||
684 | # | ||
685 | # CONFIG_SERIO is not set | ||
686 | # CONFIG_GAMEPORT is not set | ||
687 | |||
688 | # | ||
689 | # Character devices | ||
690 | # | ||
691 | # CONFIG_AD9960 is not set | ||
692 | # CONFIG_SPI_ADC_BF533 is not set | ||
693 | # CONFIG_BF533_PFLAGS is not set | ||
694 | # CONFIG_BF5xx_PPIFCD is not set | ||
695 | # CONFIG_BF5xx_TIMERS is not set | ||
696 | # CONFIG_BF5xx_PPI is not set | ||
697 | CONFIG_BFIN_SPORT=y | ||
698 | # CONFIG_BFIN_TIMER_LATENCY is not set | ||
699 | CONFIG_TWI_LCD=m | ||
700 | CONFIG_TWI_LCD_SLAVE_ADDR=34 | ||
701 | # CONFIG_AD5304 is not set | ||
702 | # CONFIG_VT is not set | ||
703 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
704 | |||
705 | # | ||
706 | # Serial drivers | ||
707 | # | ||
708 | # CONFIG_SERIAL_8250 is not set | ||
709 | |||
710 | # | ||
711 | # Non-8250 serial port support | ||
712 | # | ||
713 | CONFIG_SERIAL_BFIN=y | ||
714 | CONFIG_SERIAL_BFIN_CONSOLE=y | ||
715 | CONFIG_SERIAL_BFIN_DMA=y | ||
716 | # CONFIG_SERIAL_BFIN_PIO is not set | ||
717 | CONFIG_SERIAL_BFIN_UART0=y | ||
718 | # CONFIG_BFIN_UART0_CTSRTS is not set | ||
719 | CONFIG_SERIAL_BFIN_UART1=y | ||
720 | # CONFIG_BFIN_UART1_CTSRTS is not set | ||
721 | CONFIG_SERIAL_CORE=y | ||
722 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
723 | # CONFIG_SERIAL_BFIN_SPORT is not set | ||
724 | CONFIG_UNIX98_PTYS=y | ||
725 | # CONFIG_LEGACY_PTYS is not set | ||
726 | |||
727 | # | ||
728 | # CAN, the car bus and industrial fieldbus | ||
729 | # | ||
730 | CONFIG_CAN4LINUX=y | ||
731 | |||
732 | # | ||
733 | # linux embedded drivers | ||
734 | # | ||
735 | # CONFIG_CAN_MCF5282 is not set | ||
736 | # CONFIG_CAN_UNCTWINCAN is not set | ||
737 | CONFIG_CAN_BLACKFIN=m | ||
738 | |||
739 | # | ||
740 | # IPMI | ||
741 | # | ||
742 | # CONFIG_IPMI_HANDLER is not set | ||
743 | |||
744 | # | ||
745 | # Watchdog Cards | ||
746 | # | ||
747 | # CONFIG_WATCHDOG is not set | ||
748 | CONFIG_HW_RANDOM=y | ||
749 | # CONFIG_GEN_RTC is not set | ||
750 | CONFIG_BLACKFIN_DPMC=y | ||
751 | # CONFIG_DTLK is not set | ||
752 | # CONFIG_R3964 is not set | ||
753 | |||
754 | # | ||
755 | # Ftape, the floppy tape device driver | ||
756 | # | ||
757 | # CONFIG_RAW_DRIVER is not set | ||
758 | |||
759 | # | ||
760 | # TPM devices | ||
761 | # | ||
762 | # CONFIG_TCG_TPM is not set | ||
763 | |||
764 | # | ||
765 | # I2C support | ||
766 | # | ||
767 | CONFIG_I2C=y | ||
768 | CONFIG_I2C_CHARDEV=y | ||
769 | |||
770 | # | ||
771 | # I2C Algorithms | ||
772 | # | ||
773 | # CONFIG_I2C_ALGOBIT is not set | ||
774 | # CONFIG_I2C_ALGOPCF is not set | ||
775 | # CONFIG_I2C_ALGOPCA is not set | ||
776 | |||
777 | # | ||
778 | # I2C Hardware Bus support | ||
779 | # | ||
780 | # CONFIG_I2C_BFIN_GPIO is not set | ||
781 | CONFIG_I2C_BFIN_TWI=y | ||
782 | CONFIG_TWICLK_KHZ=50 | ||
783 | # CONFIG_I2C_OCORES is not set | ||
784 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
785 | # CONFIG_I2C_STUB is not set | ||
786 | # CONFIG_I2C_PCA_ISA is not set | ||
787 | |||
788 | # | ||
789 | # Miscellaneous I2C Chip support | ||
790 | # | ||
791 | # CONFIG_SENSORS_DS1337 is not set | ||
792 | # CONFIG_SENSORS_DS1374 is not set | ||
793 | # CONFIG_SENSORS_AD5252 is not set | ||
794 | # CONFIG_SENSORS_EEPROM is not set | ||
795 | CONFIG_SENSORS_PCF8574=m | ||
796 | CONFIG_SENSORS_PCF8575=y | ||
797 | # CONFIG_SENSORS_PCA9543 is not set | ||
798 | # CONFIG_SENSORS_PCA9539 is not set | ||
799 | # CONFIG_SENSORS_PCF8591 is not set | ||
800 | # CONFIG_SENSORS_MAX6875 is not set | ||
801 | # CONFIG_I2C_DEBUG_CORE is not set | ||
802 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
803 | # CONFIG_I2C_DEBUG_BUS is not set | ||
804 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
805 | |||
806 | # | ||
807 | # SPI support | ||
808 | # | ||
809 | CONFIG_SPI=y | ||
810 | CONFIG_SPI_MASTER=y | ||
811 | |||
812 | # | ||
813 | # SPI Master Controller Drivers | ||
814 | # | ||
815 | # CONFIG_SPI_BITBANG is not set | ||
816 | CONFIG_SPI_BFIN=y | ||
817 | |||
818 | # | ||
819 | # SPI Protocol Masters | ||
820 | # | ||
821 | |||
822 | # | ||
823 | # Dallas's 1-wire bus | ||
824 | # | ||
825 | # CONFIG_W1 is not set | ||
826 | |||
827 | # | ||
828 | # Hardware Monitoring support | ||
829 | # | ||
830 | CONFIG_HWMON=y | ||
831 | # CONFIG_HWMON_VID is not set | ||
832 | # CONFIG_SENSORS_ABITUGURU is not set | ||
833 | # CONFIG_SENSORS_ADM1021 is not set | ||
834 | # CONFIG_SENSORS_ADM1025 is not set | ||
835 | # CONFIG_SENSORS_ADM1026 is not set | ||
836 | # CONFIG_SENSORS_ADM1031 is not set | ||
837 | # CONFIG_SENSORS_ADM9240 is not set | ||
838 | # CONFIG_SENSORS_ASB100 is not set | ||
839 | # CONFIG_SENSORS_ATXP1 is not set | ||
840 | # CONFIG_SENSORS_DS1621 is not set | ||
841 | # CONFIG_SENSORS_F71805F is not set | ||
842 | # CONFIG_SENSORS_FSCHER is not set | ||
843 | # CONFIG_SENSORS_FSCPOS is not set | ||
844 | # CONFIG_SENSORS_GL518SM is not set | ||
845 | # CONFIG_SENSORS_GL520SM is not set | ||
846 | # CONFIG_SENSORS_IT87 is not set | ||
847 | # CONFIG_SENSORS_LM63 is not set | ||
848 | # CONFIG_SENSORS_LM70 is not set | ||
849 | # CONFIG_SENSORS_LM75 is not set | ||
850 | # CONFIG_SENSORS_LM77 is not set | ||
851 | # CONFIG_SENSORS_LM78 is not set | ||
852 | # CONFIG_SENSORS_LM80 is not set | ||
853 | # CONFIG_SENSORS_LM83 is not set | ||
854 | # CONFIG_SENSORS_LM85 is not set | ||
855 | # CONFIG_SENSORS_LM87 is not set | ||
856 | # CONFIG_SENSORS_LM90 is not set | ||
857 | # CONFIG_SENSORS_LM92 is not set | ||
858 | # CONFIG_SENSORS_MAX1619 is not set | ||
859 | # CONFIG_SENSORS_PC87360 is not set | ||
860 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
861 | # CONFIG_SENSORS_SMSC47M192 is not set | ||
862 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
863 | # CONFIG_SENSORS_VT1211 is not set | ||
864 | # CONFIG_SENSORS_W83781D is not set | ||
865 | # CONFIG_SENSORS_W83791D is not set | ||
866 | # CONFIG_SENSORS_W83792D is not set | ||
867 | # CONFIG_SENSORS_W83L785TS is not set | ||
868 | # CONFIG_SENSORS_W83627HF is not set | ||
869 | # CONFIG_SENSORS_W83627EHF is not set | ||
870 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
871 | |||
872 | # | ||
873 | # Multimedia devices | ||
874 | # | ||
875 | # CONFIG_VIDEO_DEV is not set | ||
876 | |||
877 | # | ||
878 | # Digital Video Broadcasting Devices | ||
879 | # | ||
880 | # CONFIG_DVB is not set | ||
881 | |||
882 | # | ||
883 | # Graphics support | ||
884 | # | ||
885 | CONFIG_FIRMWARE_EDID=y | ||
886 | CONFIG_FB=y | ||
887 | CONFIG_FB_CFB_FILLRECT=y | ||
888 | CONFIG_FB_CFB_COPYAREA=y | ||
889 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
890 | # CONFIG_FB_MACMODES is not set | ||
891 | # CONFIG_FB_BACKLIGHT is not set | ||
892 | # CONFIG_FB_MODE_HELPERS is not set | ||
893 | # CONFIG_FB_TILEBLITTING is not set | ||
894 | # CONFIG_FB_BFIN_7171 is not set | ||
895 | # CONFIG_FB_BFIN_7393 is not set | ||
896 | CONFIG_FB_BF537_LQ035=y | ||
897 | CONFIG_LQ035_SLAVE_ADDR=0x58 | ||
898 | CONFIG_FB_BFIN_LANDSCAPE=y | ||
899 | # CONFIG_FB_BFIN_BGR is not set | ||
900 | # CONFIG_FB_S1D13XXX is not set | ||
901 | # CONFIG_FB_VIRTUAL is not set | ||
902 | |||
903 | # | ||
904 | # Logo configuration | ||
905 | # | ||
906 | # CONFIG_LOGO is not set | ||
907 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | ||
908 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | ||
909 | CONFIG_BACKLIGHT_DEVICE=y | ||
910 | CONFIG_LCD_CLASS_DEVICE=y | ||
911 | CONFIG_LCD_DEVICE=y | ||
912 | |||
913 | # | ||
914 | # Sound | ||
915 | # | ||
916 | CONFIG_SOUND=y | ||
917 | |||
918 | # | ||
919 | # Advanced Linux Sound Architecture | ||
920 | # | ||
921 | CONFIG_SND=m | ||
922 | CONFIG_SND_TIMER=m | ||
923 | CONFIG_SND_PCM=m | ||
924 | # CONFIG_SND_SEQUENCER is not set | ||
925 | # CONFIG_SND_MIXER_OSS is not set | ||
926 | # CONFIG_SND_PCM_OSS is not set | ||
927 | # CONFIG_SND_DYNAMIC_MINORS is not set | ||
928 | # CONFIG_SND_SUPPORT_OLD_API is not set | ||
929 | # CONFIG_SND_VERBOSE_PROCFS is not set | ||
930 | # CONFIG_SND_VERBOSE_PRINTK is not set | ||
931 | # CONFIG_SND_DEBUG is not set | ||
932 | |||
933 | # | ||
934 | # Generic devices | ||
935 | # | ||
936 | # CONFIG_SND_DUMMY is not set | ||
937 | # CONFIG_SND_MTPAV is not set | ||
938 | # CONFIG_SND_SERIAL_U16550 is not set | ||
939 | # CONFIG_SND_MPU401 is not set | ||
940 | |||
941 | # | ||
942 | # ALSA Blackfin devices | ||
943 | # | ||
944 | # CONFIG_SND_BLACKFIN_AD1836 is not set | ||
945 | CONFIG_SND_BLACKFIN_AD1981B=m | ||
946 | # CONFIG_SND_BFIN_AD73311 is not set | ||
947 | |||
948 | # | ||
949 | # Open Sound System | ||
950 | # | ||
951 | CONFIG_SOUND_PRIME=y | ||
952 | CONFIG_OSS_OBSOLETE_DRIVER=y | ||
953 | # CONFIG_SOUND_MSNDCLAS is not set | ||
954 | # CONFIG_SOUND_MSNDPIN is not set | ||
955 | |||
956 | # | ||
957 | # USB support | ||
958 | # | ||
959 | CONFIG_USB_ARCH_HAS_HCD=y | ||
960 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
961 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
962 | # CONFIG_USB is not set | ||
963 | |||
964 | # | ||
965 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
966 | # | ||
967 | |||
968 | # | ||
969 | # USB Gadget Support | ||
970 | # | ||
971 | # CONFIG_USB_GADGET is not set | ||
972 | |||
973 | # | ||
974 | # MMC/SD Card support | ||
975 | # | ||
976 | # CONFIG_SPI_MMC is not set | ||
977 | # CONFIG_MMC is not set | ||
978 | |||
979 | # | ||
980 | # LED devices | ||
981 | # | ||
982 | # CONFIG_NEW_LEDS is not set | ||
983 | |||
984 | # | ||
985 | # LED drivers | ||
986 | # | ||
987 | |||
988 | # | ||
989 | # LED Triggers | ||
990 | # | ||
991 | |||
992 | # | ||
993 | # InfiniBand support | ||
994 | # | ||
995 | |||
996 | # | ||
997 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
998 | # | ||
999 | |||
1000 | # | ||
1001 | # Real Time Clock | ||
1002 | # | ||
1003 | CONFIG_RTC_LIB=y | ||
1004 | CONFIG_RTC_CLASS=y | ||
1005 | CONFIG_RTC_HCTOSYS=y | ||
1006 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
1007 | # CONFIG_RTC_DEBUG is not set | ||
1008 | |||
1009 | # | ||
1010 | # RTC interfaces | ||
1011 | # | ||
1012 | CONFIG_RTC_INTF_SYSFS=y | ||
1013 | CONFIG_RTC_INTF_PROC=y | ||
1014 | CONFIG_RTC_INTF_DEV=y | ||
1015 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
1016 | |||
1017 | # | ||
1018 | # RTC drivers | ||
1019 | # | ||
1020 | # CONFIG_RTC_DRV_X1205 is not set | ||
1021 | # CONFIG_RTC_DRV_DS1307 is not set | ||
1022 | # CONFIG_RTC_DRV_DS1553 is not set | ||
1023 | # CONFIG_RTC_DRV_ISL1208 is not set | ||
1024 | # CONFIG_RTC_DRV_DS1672 is not set | ||
1025 | # CONFIG_RTC_DRV_DS1742 is not set | ||
1026 | # CONFIG_RTC_DRV_PCF8563 is not set | ||
1027 | # CONFIG_RTC_DRV_PCF8583 is not set | ||
1028 | # CONFIG_RTC_DRV_RS5C348 is not set | ||
1029 | # CONFIG_RTC_DRV_RS5C372 is not set | ||
1030 | # CONFIG_RTC_DRV_M48T86 is not set | ||
1031 | # CONFIG_RTC_DRV_TEST is not set | ||
1032 | # CONFIG_RTC_DRV_MAX6902 is not set | ||
1033 | # CONFIG_RTC_DRV_V3020 is not set | ||
1034 | CONFIG_RTC_DRV_BFIN=y | ||
1035 | |||
1036 | # | ||
1037 | # DMA Engine support | ||
1038 | # | ||
1039 | # CONFIG_DMA_ENGINE is not set | ||
1040 | |||
1041 | # | ||
1042 | # DMA Clients | ||
1043 | # | ||
1044 | |||
1045 | # | ||
1046 | # DMA Devices | ||
1047 | # | ||
1048 | |||
1049 | # | ||
1050 | # PBX support | ||
1051 | # | ||
1052 | # CONFIG_PBX is not set | ||
1053 | |||
1054 | # | ||
1055 | # File systems | ||
1056 | # | ||
1057 | CONFIG_EXT2_FS=y | ||
1058 | CONFIG_EXT2_FS_XATTR=y | ||
1059 | # CONFIG_EXT2_FS_POSIX_ACL is not set | ||
1060 | # CONFIG_EXT2_FS_SECURITY is not set | ||
1061 | # CONFIG_EXT3_FS is not set | ||
1062 | # CONFIG_EXT4DEV_FS is not set | ||
1063 | CONFIG_FS_MBCACHE=y | ||
1064 | # CONFIG_REISERFS_FS is not set | ||
1065 | # CONFIG_JFS_FS is not set | ||
1066 | # CONFIG_FS_POSIX_ACL is not set | ||
1067 | # CONFIG_XFS_FS is not set | ||
1068 | # CONFIG_GFS2_FS is not set | ||
1069 | # CONFIG_OCFS2_FS is not set | ||
1070 | # CONFIG_MINIX_FS is not set | ||
1071 | # CONFIG_ROMFS_FS is not set | ||
1072 | CONFIG_INOTIFY=y | ||
1073 | CONFIG_INOTIFY_USER=y | ||
1074 | # CONFIG_QUOTA is not set | ||
1075 | CONFIG_DNOTIFY=y | ||
1076 | # CONFIG_AUTOFS_FS is not set | ||
1077 | # CONFIG_AUTOFS4_FS is not set | ||
1078 | # CONFIG_FUSE_FS is not set | ||
1079 | |||
1080 | # | ||
1081 | # CD-ROM/DVD Filesystems | ||
1082 | # | ||
1083 | # CONFIG_ISO9660_FS is not set | ||
1084 | # CONFIG_UDF_FS is not set | ||
1085 | |||
1086 | # | ||
1087 | # DOS/FAT/NT Filesystems | ||
1088 | # | ||
1089 | # CONFIG_MSDOS_FS is not set | ||
1090 | # CONFIG_VFAT_FS is not set | ||
1091 | # CONFIG_NTFS_FS is not set | ||
1092 | |||
1093 | # | ||
1094 | # Pseudo filesystems | ||
1095 | # | ||
1096 | CONFIG_PROC_FS=y | ||
1097 | CONFIG_PROC_SYSCTL=y | ||
1098 | CONFIG_SYSFS=y | ||
1099 | # CONFIG_TMPFS is not set | ||
1100 | # CONFIG_HUGETLB_PAGE is not set | ||
1101 | CONFIG_RAMFS=y | ||
1102 | # CONFIG_CONFIGFS_FS is not set | ||
1103 | |||
1104 | # | ||
1105 | # Miscellaneous filesystems | ||
1106 | # | ||
1107 | # CONFIG_ADFS_FS is not set | ||
1108 | # CONFIG_AFFS_FS is not set | ||
1109 | # CONFIG_HFS_FS is not set | ||
1110 | # CONFIG_HFSPLUS_FS is not set | ||
1111 | # CONFIG_BEFS_FS is not set | ||
1112 | # CONFIG_BFS_FS is not set | ||
1113 | # CONFIG_EFS_FS is not set | ||
1114 | CONFIG_YAFFS_FS=y | ||
1115 | CONFIG_YAFFS_YAFFS1=y | ||
1116 | # CONFIG_YAFFS_DOES_ECC is not set | ||
1117 | CONFIG_YAFFS_YAFFS2=y | ||
1118 | CONFIG_YAFFS_AUTO_YAFFS2=y | ||
1119 | # CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set | ||
1120 | CONFIG_YAFFS_CHECKPOINT_RESERVED_BLOCKS=10 | ||
1121 | # CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set | ||
1122 | # CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set | ||
1123 | CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y | ||
1124 | # CONFIG_JFFS_FS is not set | ||
1125 | # CONFIG_JFFS2_FS is not set | ||
1126 | # CONFIG_CRAMFS is not set | ||
1127 | # CONFIG_VXFS_FS is not set | ||
1128 | # CONFIG_HPFS_FS is not set | ||
1129 | # CONFIG_QNX4FS_FS is not set | ||
1130 | # CONFIG_SYSV_FS is not set | ||
1131 | # CONFIG_UFS_FS is not set | ||
1132 | |||
1133 | # | ||
1134 | # Network File Systems | ||
1135 | # | ||
1136 | CONFIG_NFS_FS=m | ||
1137 | CONFIG_NFS_V3=y | ||
1138 | # CONFIG_NFS_V3_ACL is not set | ||
1139 | # CONFIG_NFS_V4 is not set | ||
1140 | # CONFIG_NFS_DIRECTIO is not set | ||
1141 | # CONFIG_NFSD is not set | ||
1142 | CONFIG_LOCKD=m | ||
1143 | CONFIG_LOCKD_V4=y | ||
1144 | CONFIG_NFS_COMMON=y | ||
1145 | CONFIG_SUNRPC=m | ||
1146 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
1147 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
1148 | CONFIG_SMB_FS=m | ||
1149 | # CONFIG_SMB_NLS_DEFAULT is not set | ||
1150 | # CONFIG_CIFS is not set | ||
1151 | # CONFIG_NCP_FS is not set | ||
1152 | # CONFIG_CODA_FS is not set | ||
1153 | # CONFIG_AFS_FS is not set | ||
1154 | # CONFIG_9P_FS is not set | ||
1155 | |||
1156 | # | ||
1157 | # Partition Types | ||
1158 | # | ||
1159 | # CONFIG_PARTITION_ADVANCED is not set | ||
1160 | CONFIG_MSDOS_PARTITION=y | ||
1161 | |||
1162 | # | ||
1163 | # Native Language Support | ||
1164 | # | ||
1165 | CONFIG_NLS=m | ||
1166 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
1167 | # CONFIG_NLS_CODEPAGE_437 is not set | ||
1168 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
1169 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
1170 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
1171 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
1172 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
1173 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
1174 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
1175 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
1176 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
1177 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
1178 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
1179 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
1180 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
1181 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
1182 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
1183 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
1184 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
1185 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
1186 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
1187 | # CONFIG_NLS_ISO8859_8 is not set | ||
1188 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
1189 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
1190 | # CONFIG_NLS_ASCII is not set | ||
1191 | # CONFIG_NLS_ISO8859_1 is not set | ||
1192 | # CONFIG_NLS_ISO8859_2 is not set | ||
1193 | # CONFIG_NLS_ISO8859_3 is not set | ||
1194 | # CONFIG_NLS_ISO8859_4 is not set | ||
1195 | # CONFIG_NLS_ISO8859_5 is not set | ||
1196 | # CONFIG_NLS_ISO8859_6 is not set | ||
1197 | # CONFIG_NLS_ISO8859_7 is not set | ||
1198 | # CONFIG_NLS_ISO8859_9 is not set | ||
1199 | # CONFIG_NLS_ISO8859_13 is not set | ||
1200 | # CONFIG_NLS_ISO8859_14 is not set | ||
1201 | # CONFIG_NLS_ISO8859_15 is not set | ||
1202 | # CONFIG_NLS_KOI8_R is not set | ||
1203 | # CONFIG_NLS_KOI8_U is not set | ||
1204 | # CONFIG_NLS_UTF8 is not set | ||
1205 | |||
1206 | # | ||
1207 | # Profiling support | ||
1208 | # | ||
1209 | # CONFIG_PROFILING is not set | ||
1210 | |||
1211 | # | ||
1212 | # Kernel hacking | ||
1213 | # | ||
1214 | # CONFIG_PRINTK_TIME is not set | ||
1215 | CONFIG_ENABLE_MUST_CHECK=y | ||
1216 | # CONFIG_MAGIC_SYSRQ is not set | ||
1217 | # CONFIG_UNUSED_SYMBOLS is not set | ||
1218 | # CONFIG_DEBUG_KERNEL is not set | ||
1219 | CONFIG_LOG_BUF_SHIFT=14 | ||
1220 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
1221 | # CONFIG_DEBUG_FS is not set | ||
1222 | # CONFIG_UNWIND_INFO is not set | ||
1223 | # CONFIG_HEADERS_CHECK is not set | ||
1224 | # CONFIG_DEBUG_SERIAL_EARLY_INIT is not set | ||
1225 | # CONFIG_DEBUG_HUNT_FOR_ZERO is not set | ||
1226 | # CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set | ||
1227 | # CONFIG_BOOTPARAM is not set | ||
1228 | # CONFIG_NO_KERNEL_MSG is not set | ||
1229 | # CONFIG_CPLB_INFO is not set | ||
1230 | # CONFIG_NO_ACCESS_CHECK is not set | ||
1231 | |||
1232 | # | ||
1233 | # Security options | ||
1234 | # | ||
1235 | # CONFIG_KEYS is not set | ||
1236 | CONFIG_SECURITY=y | ||
1237 | # CONFIG_SECURITY_NETWORK is not set | ||
1238 | CONFIG_SECURITY_CAPABILITIES=y | ||
1239 | |||
1240 | # | ||
1241 | # Cryptographic options | ||
1242 | # | ||
1243 | # CONFIG_CRYPTO is not set | ||
1244 | |||
1245 | # | ||
1246 | # Library routines | ||
1247 | # | ||
1248 | CONFIG_CRC_CCITT=m | ||
1249 | # CONFIG_CRC16 is not set | ||
1250 | CONFIG_CRC32=y | ||
1251 | # CONFIG_LIBCRC32C is not set | ||
1252 | CONFIG_ZLIB_INFLATE=y | ||
1253 | CONFIG_PLIST=y | ||
diff --git a/arch/blackfin/defconfig b/arch/blackfin/defconfig index d5904ca994cf..a513fbe39567 100644 --- a/arch/blackfin/defconfig +++ b/arch/blackfin/defconfig | |||
@@ -1,19 +1,20 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.20 | 3 | # Linux kernel version: 2.6.20.4 |
4 | # | 4 | # |
5 | # CONFIG_MMU is not set | 5 | # CONFIG_MMU is not set |
6 | # CONFIG_FPU is not set | 6 | # CONFIG_FPU is not set |
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
8 | # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set | 8 | # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set |
9 | CONFIG_BLACKFIN=y | ||
9 | CONFIG_BFIN=y | 10 | CONFIG_BFIN=y |
10 | CONFIG_SEMAPHORE_SLEEPERS=y | 11 | CONFIG_SEMAPHORE_SLEEPERS=y |
11 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 12 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
12 | CONFIG_GENERIC_HWEIGHT=y | 13 | CONFIG_GENERIC_HWEIGHT=y |
13 | CONFIG_GENERIC_HARDIRQS=y | 14 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_GENERIC_IRQ_PROBE=y | 15 | CONFIG_GENERIC_IRQ_PROBE=y |
16 | # CONFIG_GENERIC_TIME is not set | ||
15 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 17 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
16 | CONFIG_UCLINUX=y | ||
17 | CONFIG_FORCE_MAX_ZONEORDER=14 | 18 | CONFIG_FORCE_MAX_ZONEORDER=14 |
18 | CONFIG_IRQCHIP_DEMUX_GPIO=y | 19 | CONFIG_IRQCHIP_DEMUX_GPIO=y |
19 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 20 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
@@ -55,6 +56,7 @@ CONFIG_ELF_CORE=y | |||
55 | CONFIG_BASE_FULL=y | 56 | CONFIG_BASE_FULL=y |
56 | CONFIG_FUTEX=y | 57 | CONFIG_FUTEX=y |
57 | CONFIG_EPOLL=y | 58 | CONFIG_EPOLL=y |
59 | CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3 | ||
58 | # CONFIG_LIMIT_PAGECACHE is not set | 60 | # CONFIG_LIMIT_PAGECACHE is not set |
59 | CONFIG_BUDDY=y | 61 | CONFIG_BUDDY=y |
60 | # CONFIG_NP2 is not set | 62 | # CONFIG_NP2 is not set |
@@ -95,6 +97,9 @@ CONFIG_DEFAULT_AS=y | |||
95 | # CONFIG_DEFAULT_CFQ is not set | 97 | # CONFIG_DEFAULT_CFQ is not set |
96 | # CONFIG_DEFAULT_NOOP is not set | 98 | # CONFIG_DEFAULT_NOOP is not set |
97 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 99 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
100 | # CONFIG_PREEMPT_NONE is not set | ||
101 | CONFIG_PREEMPT_VOLUNTARY=y | ||
102 | # CONFIG_PREEMPT is not set | ||
98 | 103 | ||
99 | # | 104 | # |
100 | # Blackfin Processor Options | 105 | # Blackfin Processor Options |
@@ -107,7 +112,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
107 | # CONFIG_BF532 is not set | 112 | # CONFIG_BF532 is not set |
108 | # CONFIG_BF533 is not set | 113 | # CONFIG_BF533 is not set |
109 | # CONFIG_BF534 is not set | 114 | # CONFIG_BF534 is not set |
110 | # CONFIG_BF535 is not set | ||
111 | # CONFIG_BF536 is not set | 115 | # CONFIG_BF536 is not set |
112 | CONFIG_BF537=y | 116 | CONFIG_BF537=y |
113 | # CONFIG_BF561 is not set | 117 | # CONFIG_BF561 is not set |
@@ -115,7 +119,6 @@ CONFIG_BF_REV_0_2=y | |||
115 | # CONFIG_BF_REV_0_3 is not set | 119 | # CONFIG_BF_REV_0_3 is not set |
116 | # CONFIG_BF_REV_0_4 is not set | 120 | # CONFIG_BF_REV_0_4 is not set |
117 | # CONFIG_BF_REV_0_5 is not set | 121 | # CONFIG_BF_REV_0_5 is not set |
118 | CONFIG_BLACKFIN=y | ||
119 | CONFIG_BFIN_SINGLE_CORE=y | 122 | CONFIG_BFIN_SINGLE_CORE=y |
120 | # CONFIG_BFIN533_EZKIT is not set | 123 | # CONFIG_BFIN533_EZKIT is not set |
121 | # CONFIG_BFIN533_STAMP is not set | 124 | # CONFIG_BFIN533_STAMP is not set |
@@ -182,6 +185,7 @@ CONFIG_IRQ_WATCH=13 | |||
182 | # | 185 | # |
183 | # Board customizations | 186 | # Board customizations |
184 | # | 187 | # |
188 | # CONFIG_CMDLINE_BOOL is not set | ||
185 | 189 | ||
186 | # | 190 | # |
187 | # Board Setup | 191 | # Board Setup |
@@ -221,6 +225,19 @@ CONFIG_HZ=250 | |||
221 | # Memory Optimizations | 225 | # Memory Optimizations |
222 | # | 226 | # |
223 | CONFIG_I_ENTRY_L1=y | 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 is not set | ||
239 | # CONFIG_SYSCALL_TAB_L1 is not set | ||
240 | # CONFIG_CPLB_SWITCH_TAB_L1 is not set | ||
224 | CONFIG_RAMKERNEL=y | 241 | CONFIG_RAMKERNEL=y |
225 | # CONFIG_ROMKERNEL is not set | 242 | # CONFIG_ROMKERNEL is not set |
226 | CONFIG_SELECT_MEMORY_MODEL=y | 243 | CONFIG_SELECT_MEMORY_MODEL=y |
@@ -243,6 +260,7 @@ CONFIG_DMA_UNCACHED_1M=y | |||
243 | # | 260 | # |
244 | CONFIG_BLKFIN_CACHE=y | 261 | CONFIG_BLKFIN_CACHE=y |
245 | CONFIG_BLKFIN_DCACHE=y | 262 | CONFIG_BLKFIN_DCACHE=y |
263 | # CONFIG_BLKFIN_DCACHE_BANKA is not set | ||
246 | # CONFIG_BLKFIN_CACHE_LOCK is not set | 264 | # CONFIG_BLKFIN_CACHE_LOCK is not set |
247 | # CONFIG_BLKFIN_WB is not set | 265 | # CONFIG_BLKFIN_WB is not set |
248 | CONFIG_BLKFIN_WT=y | 266 | CONFIG_BLKFIN_WT=y |
@@ -815,9 +833,8 @@ CONFIG_I2C_CHARDEV=m | |||
815 | # | 833 | # |
816 | # I2C Hardware Bus support | 834 | # I2C Hardware Bus support |
817 | # | 835 | # |
818 | # CONFIG_I2C_BFIN_GPIO is not set | 836 | # CONFIG_I2C_BLACKFIN_GPIO is not set |
819 | CONFIG_I2C_BFIN_TWI=m | 837 | # CONFIG_I2C_BLACKFIN_TWI is not set |
820 | CONFIG_TWICLK_KHZ=50 | ||
821 | # CONFIG_I2C_OCORES is not set | 838 | # CONFIG_I2C_OCORES is not set |
822 | # CONFIG_I2C_PARPORT_LIGHT is not set | 839 | # CONFIG_I2C_PARPORT_LIGHT is not set |
823 | # CONFIG_I2C_STUB is not set | 840 | # CONFIG_I2C_STUB is not set |
@@ -832,6 +849,7 @@ CONFIG_SENSORS_AD5252=m | |||
832 | # CONFIG_SENSORS_EEPROM is not set | 849 | # CONFIG_SENSORS_EEPROM is not set |
833 | # CONFIG_SENSORS_PCF8574 is not set | 850 | # CONFIG_SENSORS_PCF8574 is not set |
834 | # CONFIG_SENSORS_PCF8575 is not set | 851 | # CONFIG_SENSORS_PCF8575 is not set |
852 | # CONFIG_SENSORS_PCA9543 is not set | ||
835 | # CONFIG_SENSORS_PCA9539 is not set | 853 | # CONFIG_SENSORS_PCA9539 is not set |
836 | # CONFIG_SENSORS_PCF8591 is not set | 854 | # CONFIG_SENSORS_PCF8591 is not set |
837 | # CONFIG_SENSORS_MAX6875 is not set | 855 | # CONFIG_SENSORS_MAX6875 is not set |
@@ -850,11 +868,11 @@ CONFIG_SPI_MASTER=y | |||
850 | # SPI Master Controller Drivers | 868 | # SPI Master Controller Drivers |
851 | # | 869 | # |
852 | # CONFIG_SPI_BITBANG is not set | 870 | # CONFIG_SPI_BITBANG is not set |
853 | CONFIG_SPI_BFIN=y | ||
854 | 871 | ||
855 | # | 872 | # |
856 | # SPI Protocol Masters | 873 | # SPI Protocol Masters |
857 | # | 874 | # |
875 | CONFIG_SPI_BFIN=y | ||
858 | 876 | ||
859 | # | 877 | # |
860 | # Dallas's 1-wire bus | 878 | # Dallas's 1-wire bus |
@@ -940,10 +958,6 @@ CONFIG_NTSC=y | |||
940 | # CONFIG_PAL_YCBCR is not set | 958 | # CONFIG_PAL_YCBCR is not set |
941 | CONFIG_ADV7393_1XMEM=y | 959 | CONFIG_ADV7393_1XMEM=y |
942 | # CONFIG_ADV7393_2XMEM is not set | 960 | # CONFIG_ADV7393_2XMEM is not set |
943 | CONFIG_FB_BF537_LQ035=m | ||
944 | CONFIG_LQ035_SLAVE_ADDR=0x58 | ||
945 | # CONFIG_FB_BFIN_LANDSCAPE is not set | ||
946 | # CONFIG_FB_BFIN_BGR is not set | ||
947 | # CONFIG_FB_S1D13XXX is not set | 961 | # CONFIG_FB_S1D13XXX is not set |
948 | # CONFIG_FB_VIRTUAL is not set | 962 | # CONFIG_FB_VIRTUAL is not set |
949 | 963 | ||
@@ -1280,12 +1294,11 @@ CONFIG_ENABLE_MUST_CHECK=y | |||
1280 | # CONFIG_DEBUG_KERNEL is not set | 1294 | # CONFIG_DEBUG_KERNEL is not set |
1281 | CONFIG_LOG_BUF_SHIFT=14 | 1295 | CONFIG_LOG_BUF_SHIFT=14 |
1282 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1296 | # CONFIG_DEBUG_BUGVERBOSE is not set |
1297 | # CONFIG_DEBUG_SERIAL_EARLY_INIT is not set | ||
1283 | CONFIG_DEBUG_HUNT_FOR_ZERO=y | 1298 | CONFIG_DEBUG_HUNT_FOR_ZERO=y |
1284 | # CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set | 1299 | # CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set |
1285 | # CONFIG_BOOTPARAM is not set | ||
1286 | # CONFIG_NO_KERNEL_MSG is not set | ||
1287 | CONFIG_CPLB_INFO=y | 1300 | CONFIG_CPLB_INFO=y |
1288 | # CONFIG_NO_ACCESS_CHECK is not set | 1301 | CONFIG_ACCESS_CHECK=y |
1289 | 1302 | ||
1290 | # | 1303 | # |
1291 | # Security options | 1304 | # Security options |
diff --git a/arch/blackfin/kernel/bfin_dma_5xx.c b/arch/blackfin/kernel/bfin_dma_5xx.c index 8ea079ebecb5..0ccb0dc3f833 100644 --- a/arch/blackfin/kernel/bfin_dma_5xx.c +++ b/arch/blackfin/kernel/bfin_dma_5xx.c | |||
@@ -119,7 +119,7 @@ static void clear_dma_buffer(unsigned int channel) | |||
119 | SSYNC(); | 119 | SSYNC(); |
120 | } | 120 | } |
121 | 121 | ||
122 | int __init blackfin_dma_init(void) | 122 | static int __init blackfin_dma_init(void) |
123 | { | 123 | { |
124 | int i; | 124 | int i; |
125 | 125 | ||
@@ -130,7 +130,9 @@ int __init blackfin_dma_init(void) | |||
130 | dma_ch[i].regs = base_addr[i]; | 130 | dma_ch[i].regs = base_addr[i]; |
131 | mutex_init(&(dma_ch[i].dmalock)); | 131 | mutex_init(&(dma_ch[i].dmalock)); |
132 | } | 132 | } |
133 | 133 | /* Mark MEMDMA Channel 0 as requested since we're using it internally */ | |
134 | dma_ch[CH_MEM_STREAM0_DEST].chan_status = DMA_CHANNEL_REQUESTED; | ||
135 | dma_ch[CH_MEM_STREAM0_SRC].chan_status = DMA_CHANNEL_REQUESTED; | ||
134 | return 0; | 136 | return 0; |
135 | } | 137 | } |
136 | 138 | ||
@@ -593,14 +595,17 @@ unsigned short get_dma_curr_ycount(unsigned int channel) | |||
593 | } | 595 | } |
594 | EXPORT_SYMBOL(get_dma_curr_ycount); | 596 | EXPORT_SYMBOL(get_dma_curr_ycount); |
595 | 597 | ||
596 | void *dma_memcpy(void *dest, const void *src, size_t size) | 598 | void *_dma_memcpy(void *dest, const void *src, size_t size) |
597 | { | 599 | { |
598 | int direction; /* 1 - address decrease, 0 - address increase */ | 600 | int direction; /* 1 - address decrease, 0 - address increase */ |
599 | int flag_align; /* 1 - address aligned, 0 - address unaligned */ | 601 | int flag_align; /* 1 - address aligned, 0 - address unaligned */ |
600 | int flag_2D; /* 1 - 2D DMA needed, 0 - 1D DMA needed */ | 602 | int flag_2D; /* 1 - 2D DMA needed, 0 - 1D DMA needed */ |
603 | unsigned long flags; | ||
601 | 604 | ||
602 | if (size <= 0) | 605 | if (size <= 0) |
603 | return NULL; | 606 | return NULL; |
607 | |||
608 | local_irq_save(flags); | ||
604 | 609 | ||
605 | if ((unsigned long)src < memory_end) | 610 | if ((unsigned long)src < memory_end) |
606 | blackfin_dcache_flush_range((unsigned int)src, | 611 | blackfin_dcache_flush_range((unsigned int)src, |
@@ -725,18 +730,224 @@ void *dma_memcpy(void *dest, const void *src, size_t size) | |||
725 | if ((unsigned long)dest < memory_end) | 730 | if ((unsigned long)dest < memory_end) |
726 | blackfin_dcache_invalidate_range((unsigned int)dest, | 731 | blackfin_dcache_invalidate_range((unsigned int)dest, |
727 | (unsigned int)(dest + size)); | 732 | (unsigned int)(dest + size)); |
733 | local_irq_restore(flags); | ||
728 | 734 | ||
729 | return dest; | 735 | return dest; |
730 | } | 736 | } |
737 | |||
738 | void *dma_memcpy(void *dest, const void *src, size_t size) | ||
739 | { | ||
740 | size_t bulk; | ||
741 | size_t rest; | ||
742 | void * addr; | ||
743 | |||
744 | bulk = (size >> 16) << 16; | ||
745 | rest = size - bulk; | ||
746 | if (bulk) | ||
747 | _dma_memcpy(dest, src, bulk); | ||
748 | addr = _dma_memcpy(dest+bulk, src+bulk, rest); | ||
749 | return addr; | ||
750 | } | ||
751 | |||
731 | EXPORT_SYMBOL(dma_memcpy); | 752 | EXPORT_SYMBOL(dma_memcpy); |
732 | 753 | ||
733 | void *safe_dma_memcpy(void *dest, const void *src, size_t size) | 754 | void *safe_dma_memcpy(void *dest, const void *src, size_t size) |
734 | { | 755 | { |
735 | int flags = 0; | ||
736 | void *addr; | 756 | void *addr; |
737 | local_irq_save(flags); | ||
738 | addr = dma_memcpy(dest, src, size); | 757 | addr = dma_memcpy(dest, src, size); |
739 | local_irq_restore(flags); | ||
740 | return addr; | 758 | return addr; |
741 | } | 759 | } |
742 | EXPORT_SYMBOL(safe_dma_memcpy); | 760 | EXPORT_SYMBOL(safe_dma_memcpy); |
761 | |||
762 | void dma_outsb(void __iomem *addr, const void *buf, unsigned short len) | ||
763 | { | ||
764 | |||
765 | unsigned long flags; | ||
766 | |||
767 | local_irq_save(flags); | ||
768 | |||
769 | blackfin_dcache_flush_range((unsigned int)buf,(unsigned int)(buf) + len); | ||
770 | |||
771 | bfin_write_MDMA_D0_START_ADDR(addr); | ||
772 | bfin_write_MDMA_D0_X_COUNT(len); | ||
773 | bfin_write_MDMA_D0_X_MODIFY(0); | ||
774 | bfin_write_MDMA_D0_IRQ_STATUS(DMA_DONE | DMA_ERR); | ||
775 | |||
776 | bfin_write_MDMA_S0_START_ADDR(buf); | ||
777 | bfin_write_MDMA_S0_X_COUNT(len); | ||
778 | bfin_write_MDMA_S0_X_MODIFY(1); | ||
779 | bfin_write_MDMA_S0_IRQ_STATUS(DMA_DONE | DMA_ERR); | ||
780 | |||
781 | bfin_write_MDMA_S0_CONFIG(DMAEN | WDSIZE_8); | ||
782 | bfin_write_MDMA_D0_CONFIG(WNR | DI_EN | DMAEN | WDSIZE_8); | ||
783 | |||
784 | while (!(bfin_read_MDMA_D0_IRQ_STATUS() & DMA_DONE)); | ||
785 | |||
786 | bfin_write_MDMA_D0_IRQ_STATUS(DMA_DONE | DMA_ERR); | ||
787 | |||
788 | bfin_write_MDMA_S0_CONFIG(0); | ||
789 | bfin_write_MDMA_D0_CONFIG(0); | ||
790 | local_irq_restore(flags); | ||
791 | |||
792 | } | ||
793 | EXPORT_SYMBOL(dma_outsb); | ||
794 | |||
795 | |||
796 | void dma_insb(const void __iomem *addr, void *buf, unsigned short len) | ||
797 | { | ||
798 | unsigned long flags; | ||
799 | |||
800 | local_irq_save(flags); | ||
801 | bfin_write_MDMA_D0_START_ADDR(buf); | ||
802 | bfin_write_MDMA_D0_X_COUNT(len); | ||
803 | bfin_write_MDMA_D0_X_MODIFY(1); | ||
804 | bfin_write_MDMA_D0_IRQ_STATUS(DMA_DONE | DMA_ERR); | ||
805 | |||
806 | bfin_write_MDMA_S0_START_ADDR(addr); | ||
807 | bfin_write_MDMA_S0_X_COUNT(len); | ||
808 | bfin_write_MDMA_S0_X_MODIFY(0); | ||
809 | bfin_write_MDMA_S0_IRQ_STATUS(DMA_DONE | DMA_ERR); | ||
810 | |||
811 | bfin_write_MDMA_S0_CONFIG(DMAEN | WDSIZE_8); | ||
812 | bfin_write_MDMA_D0_CONFIG(WNR | DI_EN | DMAEN | WDSIZE_8); | ||
813 | |||
814 | blackfin_dcache_invalidate_range((unsigned int)buf, (unsigned int)(buf) + len); | ||
815 | |||
816 | while (!(bfin_read_MDMA_D0_IRQ_STATUS() & DMA_DONE)); | ||
817 | |||
818 | bfin_write_MDMA_D0_IRQ_STATUS(DMA_DONE | DMA_ERR); | ||
819 | |||
820 | bfin_write_MDMA_S0_CONFIG(0); | ||
821 | bfin_write_MDMA_D0_CONFIG(0); | ||
822 | local_irq_restore(flags); | ||
823 | |||
824 | } | ||
825 | EXPORT_SYMBOL(dma_insb); | ||
826 | |||
827 | void dma_outsw(void __iomem *addr, const void *buf, unsigned short len) | ||
828 | { | ||
829 | unsigned long flags; | ||
830 | |||
831 | local_irq_save(flags); | ||
832 | |||
833 | blackfin_dcache_flush_range((unsigned int)buf,(unsigned int)(buf) + len); | ||
834 | |||
835 | bfin_write_MDMA_D0_START_ADDR(addr); | ||
836 | bfin_write_MDMA_D0_X_COUNT(len); | ||
837 | bfin_write_MDMA_D0_X_MODIFY(0); | ||
838 | bfin_write_MDMA_D0_IRQ_STATUS(DMA_DONE | DMA_ERR); | ||
839 | |||
840 | bfin_write_MDMA_S0_START_ADDR(buf); | ||
841 | bfin_write_MDMA_S0_X_COUNT(len); | ||
842 | bfin_write_MDMA_S0_X_MODIFY(2); | ||
843 | bfin_write_MDMA_S0_IRQ_STATUS(DMA_DONE | DMA_ERR); | ||
844 | |||
845 | bfin_write_MDMA_S0_CONFIG(DMAEN | WDSIZE_16); | ||
846 | bfin_write_MDMA_D0_CONFIG(WNR | DI_EN | DMAEN | WDSIZE_16); | ||
847 | |||
848 | while (!(bfin_read_MDMA_D0_IRQ_STATUS() & DMA_DONE)); | ||
849 | |||
850 | bfin_write_MDMA_D0_IRQ_STATUS(DMA_DONE | DMA_ERR); | ||
851 | |||
852 | bfin_write_MDMA_S0_CONFIG(0); | ||
853 | bfin_write_MDMA_D0_CONFIG(0); | ||
854 | local_irq_restore(flags); | ||
855 | |||
856 | } | ||
857 | EXPORT_SYMBOL(dma_outsw); | ||
858 | |||
859 | void dma_insw(const void __iomem *addr, void *buf, unsigned short len) | ||
860 | { | ||
861 | unsigned long flags; | ||
862 | |||
863 | local_irq_save(flags); | ||
864 | |||
865 | bfin_write_MDMA_D0_START_ADDR(buf); | ||
866 | bfin_write_MDMA_D0_X_COUNT(len); | ||
867 | bfin_write_MDMA_D0_X_MODIFY(2); | ||
868 | bfin_write_MDMA_D0_IRQ_STATUS(DMA_DONE | DMA_ERR); | ||
869 | |||
870 | bfin_write_MDMA_S0_START_ADDR(addr); | ||
871 | bfin_write_MDMA_S0_X_COUNT(len); | ||
872 | bfin_write_MDMA_S0_X_MODIFY(0); | ||
873 | bfin_write_MDMA_S0_IRQ_STATUS(DMA_DONE | DMA_ERR); | ||
874 | |||
875 | bfin_write_MDMA_S0_CONFIG(DMAEN | WDSIZE_16); | ||
876 | bfin_write_MDMA_D0_CONFIG(WNR | DI_EN | DMAEN | WDSIZE_16); | ||
877 | |||
878 | blackfin_dcache_invalidate_range((unsigned int)buf, (unsigned int)(buf) + len); | ||
879 | |||
880 | while (!(bfin_read_MDMA_D0_IRQ_STATUS() & DMA_DONE)); | ||
881 | |||
882 | bfin_write_MDMA_D0_IRQ_STATUS(DMA_DONE | DMA_ERR); | ||
883 | |||
884 | bfin_write_MDMA_S0_CONFIG(0); | ||
885 | bfin_write_MDMA_D0_CONFIG(0); | ||
886 | local_irq_restore(flags); | ||
887 | |||
888 | } | ||
889 | EXPORT_SYMBOL(dma_insw); | ||
890 | |||
891 | void dma_outsl(void __iomem *addr, const void *buf, unsigned short len) | ||
892 | { | ||
893 | unsigned long flags; | ||
894 | |||
895 | local_irq_save(flags); | ||
896 | |||
897 | blackfin_dcache_flush_range((unsigned int)buf,(unsigned int)(buf) + len); | ||
898 | |||
899 | bfin_write_MDMA_D0_START_ADDR(addr); | ||
900 | bfin_write_MDMA_D0_X_COUNT(len); | ||
901 | bfin_write_MDMA_D0_X_MODIFY(0); | ||
902 | bfin_write_MDMA_D0_IRQ_STATUS(DMA_DONE | DMA_ERR); | ||
903 | |||
904 | bfin_write_MDMA_S0_START_ADDR(buf); | ||
905 | bfin_write_MDMA_S0_X_COUNT(len); | ||
906 | bfin_write_MDMA_S0_X_MODIFY(4); | ||
907 | bfin_write_MDMA_S0_IRQ_STATUS(DMA_DONE | DMA_ERR); | ||
908 | |||
909 | bfin_write_MDMA_S0_CONFIG(DMAEN | WDSIZE_32); | ||
910 | bfin_write_MDMA_D0_CONFIG(WNR | DI_EN | DMAEN | WDSIZE_32); | ||
911 | |||
912 | while (!(bfin_read_MDMA_D0_IRQ_STATUS() & DMA_DONE)); | ||
913 | |||
914 | bfin_write_MDMA_D0_IRQ_STATUS(DMA_DONE | DMA_ERR); | ||
915 | |||
916 | bfin_write_MDMA_S0_CONFIG(0); | ||
917 | bfin_write_MDMA_D0_CONFIG(0); | ||
918 | local_irq_restore(flags); | ||
919 | |||
920 | } | ||
921 | EXPORT_SYMBOL(dma_outsl); | ||
922 | |||
923 | void dma_insl(const void __iomem *addr, void *buf, unsigned short len) | ||
924 | { | ||
925 | unsigned long flags; | ||
926 | |||
927 | local_irq_save(flags); | ||
928 | |||
929 | bfin_write_MDMA_D0_START_ADDR(buf); | ||
930 | bfin_write_MDMA_D0_X_COUNT(len); | ||
931 | bfin_write_MDMA_D0_X_MODIFY(4); | ||
932 | bfin_write_MDMA_D0_IRQ_STATUS(DMA_DONE | DMA_ERR); | ||
933 | |||
934 | bfin_write_MDMA_S0_START_ADDR(addr); | ||
935 | bfin_write_MDMA_S0_X_COUNT(len); | ||
936 | bfin_write_MDMA_S0_X_MODIFY(0); | ||
937 | bfin_write_MDMA_S0_IRQ_STATUS(DMA_DONE | DMA_ERR); | ||
938 | |||
939 | bfin_write_MDMA_S0_CONFIG(DMAEN | WDSIZE_32); | ||
940 | bfin_write_MDMA_D0_CONFIG(WNR | DI_EN | DMAEN | WDSIZE_32); | ||
941 | |||
942 | blackfin_dcache_invalidate_range((unsigned int)buf, (unsigned int)(buf) + len); | ||
943 | |||
944 | while (!(bfin_read_MDMA_D0_IRQ_STATUS() & DMA_DONE)); | ||
945 | |||
946 | bfin_write_MDMA_D0_IRQ_STATUS(DMA_DONE | DMA_ERR); | ||
947 | |||
948 | bfin_write_MDMA_S0_CONFIG(0); | ||
949 | bfin_write_MDMA_D0_CONFIG(0); | ||
950 | local_irq_restore(flags); | ||
951 | |||
952 | } | ||
953 | EXPORT_SYMBOL(dma_insl); | ||
diff --git a/arch/blackfin/kernel/bfin_gpio.c b/arch/blackfin/kernel/bfin_gpio.c index e9f24a9a46ba..3f49fae1cb1f 100644 --- a/arch/blackfin/kernel/bfin_gpio.c +++ b/arch/blackfin/kernel/bfin_gpio.c | |||
@@ -144,7 +144,7 @@ inline int check_gpio(unsigned short gpio) | |||
144 | } | 144 | } |
145 | 145 | ||
146 | #ifdef BF537_FAMILY | 146 | #ifdef BF537_FAMILY |
147 | void port_setup(unsigned short gpio, unsigned short usage) | 147 | static void port_setup(unsigned short gpio, unsigned short usage) |
148 | { | 148 | { |
149 | if (usage == GPIO_USAGE) { | 149 | if (usage == GPIO_USAGE) { |
150 | if (*port_fer[gpio_bank(gpio)] & gpio_bit(gpio)) | 150 | if (*port_fer[gpio_bank(gpio)] & gpio_bit(gpio)) |
@@ -160,7 +160,7 @@ void port_setup(unsigned short gpio, unsigned short usage) | |||
160 | #endif | 160 | #endif |
161 | 161 | ||
162 | 162 | ||
163 | void default_gpio(unsigned short gpio) | 163 | static void default_gpio(unsigned short gpio) |
164 | { | 164 | { |
165 | unsigned short bank,bitmask; | 165 | unsigned short bank,bitmask; |
166 | 166 | ||
@@ -177,8 +177,7 @@ void default_gpio(unsigned short gpio) | |||
177 | gpio_bankb[bank]->edge &= ~bitmask; | 177 | gpio_bankb[bank]->edge &= ~bitmask; |
178 | } | 178 | } |
179 | 179 | ||
180 | 180 | static int __init bfin_gpio_init(void) | |
181 | int __init bfin_gpio_init(void) | ||
182 | { | 181 | { |
183 | int i; | 182 | int i; |
184 | 183 | ||
@@ -189,9 +188,9 @@ int __init bfin_gpio_init(void) | |||
189 | 188 | ||
190 | #if defined(BF537_FAMILY) && (defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)) | 189 | #if defined(BF537_FAMILY) && (defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)) |
191 | # if defined(CONFIG_BFIN_MAC_RMII) | 190 | # if defined(CONFIG_BFIN_MAC_RMII) |
192 | reserved_map[PORT_H] = 0xC373; | 191 | reserved_map[gpio_bank(PORT_H)] = 0xC373; |
193 | # else | 192 | # else |
194 | reserved_map[PORT_H] = 0xFFFF; | 193 | reserved_map[gpio_bank(PORT_H)] = 0xFFFF; |
195 | # endif | 194 | # endif |
196 | #endif | 195 | #endif |
197 | 196 | ||
diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c index 342bb8dd56ac..02dc74301920 100644 --- a/arch/blackfin/kernel/setup.c +++ b/arch/blackfin/kernel/setup.c | |||
@@ -33,7 +33,6 @@ | |||
33 | #include <linux/seq_file.h> | 33 | #include <linux/seq_file.h> |
34 | #include <linux/cpu.h> | 34 | #include <linux/cpu.h> |
35 | #include <linux/module.h> | 35 | #include <linux/module.h> |
36 | #include <linux/console.h> | ||
37 | #include <linux/tty.h> | 36 | #include <linux/tty.h> |
38 | 37 | ||
39 | #include <linux/ext2_fs.h> | 38 | #include <linux/ext2_fs.h> |
@@ -44,6 +43,8 @@ | |||
44 | #include <asm/blackfin.h> | 43 | #include <asm/blackfin.h> |
45 | #include <asm/cplbinit.h> | 44 | #include <asm/cplbinit.h> |
46 | 45 | ||
46 | u16 _bfin_swrst; | ||
47 | |||
47 | unsigned long memory_start, memory_end, physical_mem_end; | 48 | unsigned long memory_start, memory_end, physical_mem_end; |
48 | unsigned long reserved_mem_dcache_on; | 49 | unsigned long reserved_mem_dcache_on; |
49 | unsigned long reserved_mem_icache_on; | 50 | unsigned long reserved_mem_icache_on; |
@@ -175,6 +176,9 @@ void __init setup_arch(char **cmdline_p) | |||
175 | unsigned long mtd_phys = 0; | 176 | unsigned long mtd_phys = 0; |
176 | #endif | 177 | #endif |
177 | 178 | ||
179 | #ifdef CONFIG_DUMMY_CONSOLE | ||
180 | conswitchp = &dummy_con; | ||
181 | #endif | ||
178 | cclk = get_cclk(); | 182 | cclk = get_cclk(); |
179 | sclk = get_sclk(); | 183 | sclk = get_sclk(); |
180 | 184 | ||
@@ -379,37 +383,27 @@ void __init setup_arch(char **cmdline_p) | |||
379 | if (l1_length > L1_DATA_A_LENGTH) | 383 | if (l1_length > L1_DATA_A_LENGTH) |
380 | panic("L1 memory overflow\n"); | 384 | panic("L1 memory overflow\n"); |
381 | 385 | ||
382 | bf53x_cache_init(); | 386 | #ifdef BF561_FAMILY |
383 | 387 | _bfin_swrst = bfin_read_SICA_SWRST(); | |
384 | #if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) | 388 | #else |
385 | # if defined(CONFIG_BFIN_SHARED_FLASH_ENET) && defined(CONFIG_BFIN533_STAMP) | 389 | _bfin_swrst = bfin_read_SWRST(); |
386 | /* setup BF533_STAMP CPLD to route AMS3 to Ethernet MAC */ | ||
387 | bfin_write_FIO_DIR(bfin_read_FIO_DIR() | (1 << CONFIG_ENET_FLASH_PIN)); | ||
388 | bfin_write_FIO_FLAG_S(1 << CONFIG_ENET_FLASH_PIN); | ||
389 | SSYNC(); | ||
390 | # endif | ||
391 | # if defined (CONFIG_BFIN561_EZKIT) | ||
392 | bfin_write_FIO0_DIR(bfin_read_FIO0_DIR() | (1 << 12)); | ||
393 | SSYNC(); | ||
394 | # endif /* defined (CONFIG_BFIN561_EZKIT) */ | ||
395 | #endif | 390 | #endif |
396 | 391 | ||
392 | bf53x_cache_init(); | ||
393 | |||
397 | printk(KERN_INFO "Hardware Trace Enabled\n"); | 394 | printk(KERN_INFO "Hardware Trace Enabled\n"); |
398 | bfin_write_TBUFCTL(0x03); | 395 | bfin_write_TBUFCTL(0x03); |
399 | } | 396 | } |
400 | 397 | ||
401 | #if defined(CONFIG_BF561) | ||
402 | static struct cpu cpu[2]; | ||
403 | #else | ||
404 | static struct cpu cpu[1]; | ||
405 | #endif | ||
406 | static int __init topology_init(void) | 398 | static int __init topology_init(void) |
407 | { | 399 | { |
408 | #if defined (CONFIG_BF561) | 400 | #if defined (CONFIG_BF561) |
401 | static struct cpu cpu[2]; | ||
409 | register_cpu(&cpu[0], 0); | 402 | register_cpu(&cpu[0], 0); |
410 | register_cpu(&cpu[1], 1); | 403 | register_cpu(&cpu[1], 1); |
411 | return 0; | 404 | return 0; |
412 | #else | 405 | #else |
406 | static struct cpu cpu[1]; | ||
413 | return register_cpu(cpu, 0); | 407 | return register_cpu(cpu, 0); |
414 | #endif | 408 | #endif |
415 | } | 409 | } |
diff --git a/arch/blackfin/kernel/traps.c b/arch/blackfin/kernel/traps.c index 9556b73de808..9932edee8cb4 100644 --- a/arch/blackfin/kernel/traps.c +++ b/arch/blackfin/kernel/traps.c | |||
@@ -59,9 +59,10 @@ static int printk_address(unsigned long address) | |||
59 | struct vm_list_struct *vml; | 59 | struct vm_list_struct *vml; |
60 | struct task_struct *p; | 60 | struct task_struct *p; |
61 | struct mm_struct *mm; | 61 | struct mm_struct *mm; |
62 | unsigned long offset; | ||
62 | 63 | ||
63 | #ifdef CONFIG_KALLSYMS | 64 | #ifdef CONFIG_KALLSYMS |
64 | unsigned long offset = 0, symsize; | 65 | unsigned long symsize; |
65 | const char *symname; | 66 | const char *symname; |
66 | char *modname; | 67 | char *modname; |
67 | char *delim = ":"; | 68 | char *delim = ":"; |
@@ -106,12 +107,19 @@ static int printk_address(unsigned long address) | |||
106 | sizeof(_tmpbuf)); | 107 | sizeof(_tmpbuf)); |
107 | } | 108 | } |
108 | 109 | ||
110 | /* FLAT does not have its text aligned to the start of | ||
111 | * the map while FDPIC ELF does ... | ||
112 | */ | ||
113 | if (current->mm && | ||
114 | (address > current->mm->start_code) && | ||
115 | (address < current->mm->end_code)) | ||
116 | offset = address - current->mm->start_code; | ||
117 | else | ||
118 | offset = (address - vma->vm_start) + (vma->vm_pgoff << PAGE_SHIFT); | ||
119 | |||
109 | write_unlock_irq(&tasklist_lock); | 120 | write_unlock_irq(&tasklist_lock); |
110 | return printk("<0x%p> [ %s + 0x%lx ]", | 121 | return printk("<0x%p> [ %s + 0x%lx ]", |
111 | (void*)address, name, | 122 | (void*)address, name, offset); |
112 | (unsigned long) | ||
113 | ((address - vma->vm_start) + | ||
114 | (vma->vm_pgoff << PAGE_SHIFT))); | ||
115 | } | 123 | } |
116 | 124 | ||
117 | vml = vml->next; | 125 | vml = vml->next; |
diff --git a/arch/blackfin/kernel/vmlinux.lds.S b/arch/blackfin/kernel/vmlinux.lds.S index 6ae9ebbd8e58..86fe67995802 100644 --- a/arch/blackfin/kernel/vmlinux.lds.S +++ b/arch/blackfin/kernel/vmlinux.lds.S | |||
@@ -54,7 +54,7 @@ SECTIONS | |||
54 | { | 54 | { |
55 | _text = .; | 55 | _text = .; |
56 | __stext = .; | 56 | __stext = .; |
57 | *(.text) | 57 | TEXT_TEXT |
58 | SCHED_TEXT | 58 | SCHED_TEXT |
59 | *(.text.lock) | 59 | *(.text.lock) |
60 | . = ALIGN(16); | 60 | . = ALIGN(16); |
@@ -200,7 +200,7 @@ SECTIONS | |||
200 | __sdata = .; | 200 | __sdata = .; |
201 | . = ALIGN(0x2000); | 201 | . = ALIGN(0x2000); |
202 | *(.data.init_task) | 202 | *(.data.init_task) |
203 | *(.data) | 203 | DATA_DATA |
204 | 204 | ||
205 | . = ALIGN(32); | 205 | . = ALIGN(32); |
206 | *(.data.cacheline_aligned) | 206 | *(.data.cacheline_aligned) |
diff --git a/arch/blackfin/lib/ins.S b/arch/blackfin/lib/ins.S index 730d2b427538..7d5e9846311d 100644 --- a/arch/blackfin/lib/ins.S +++ b/arch/blackfin/lib/ins.S | |||
@@ -29,6 +29,7 @@ | |||
29 | */ | 29 | */ |
30 | 30 | ||
31 | #include <linux/linkage.h> | 31 | #include <linux/linkage.h> |
32 | #include <asm/blackfin.h> | ||
32 | 33 | ||
33 | .align 2 | 34 | .align 2 |
34 | 35 | ||
@@ -39,11 +40,14 @@ ENTRY(_insl) | |||
39 | P2 = R2; /* P2 = count */ | 40 | P2 = R2; /* P2 = count */ |
40 | SSYNC; | 41 | SSYNC; |
41 | LSETUP( .Llong_loop_s, .Llong_loop_e) LC0 = P2; | 42 | LSETUP( .Llong_loop_s, .Llong_loop_e) LC0 = P2; |
42 | .Llong_loop_s: R0 = [P0]; | 43 | .Llong_loop_s: R0 = [P0]; |
43 | .Llong_loop_e: [P1++] = R0; | 44 | [P1++] = R0; |
45 | NOP; | ||
46 | .Llong_loop_e: NOP; | ||
44 | sti R3; | 47 | sti R3; |
45 | RTS; | 48 | RTS; |
46 | 49 | ||
50 | |||
47 | ENTRY(_insw) | 51 | ENTRY(_insw) |
48 | P0 = R0; /* P0 = port */ | 52 | P0 = R0; /* P0 = port */ |
49 | cli R3; | 53 | cli R3; |
@@ -51,8 +55,10 @@ ENTRY(_insw) | |||
51 | P2 = R2; /* P2 = count */ | 55 | P2 = R2; /* P2 = count */ |
52 | SSYNC; | 56 | SSYNC; |
53 | LSETUP( .Lword_loop_s, .Lword_loop_e) LC0 = P2; | 57 | LSETUP( .Lword_loop_s, .Lword_loop_e) LC0 = P2; |
54 | .Lword_loop_s: R0 = W[P0]; | 58 | .Lword_loop_s: R0 = W[P0]; |
55 | .Lword_loop_e: W[P1++] = R0; | 59 | W[P1++] = R0; |
60 | NOP; | ||
61 | .Lword_loop_e: NOP; | ||
56 | sti R3; | 62 | sti R3; |
57 | RTS; | 63 | RTS; |
58 | 64 | ||
@@ -63,7 +69,9 @@ ENTRY(_insb) | |||
63 | P2 = R2; /* P2 = count */ | 69 | P2 = R2; /* P2 = count */ |
64 | SSYNC; | 70 | SSYNC; |
65 | LSETUP( .Lbyte_loop_s, .Lbyte_loop_e) LC0 = P2; | 71 | LSETUP( .Lbyte_loop_s, .Lbyte_loop_e) LC0 = P2; |
66 | .Lbyte_loop_s: R0 = B[P0]; | 72 | .Lbyte_loop_s: R0 = B[P0]; |
67 | .Lbyte_loop_e: B[P1++] = R0; | 73 | B[P1++] = R0; |
74 | NOP; | ||
75 | .Lbyte_loop_e: NOP; | ||
68 | sti R3; | 76 | sti R3; |
69 | RTS; | 77 | RTS; |
diff --git a/arch/blackfin/mach-bf533/boards/stamp.c b/arch/blackfin/mach-bf533/boards/stamp.c index d7b3a5d74e8c..9a472fe15833 100644 --- a/arch/blackfin/mach-bf533/boards/stamp.c +++ b/arch/blackfin/mach-bf533/boards/stamp.c | |||
@@ -164,6 +164,13 @@ static struct bfin5xx_spi_chip ad5304_chip_info = { | |||
164 | }; | 164 | }; |
165 | #endif | 165 | #endif |
166 | 166 | ||
167 | #if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) | ||
168 | static struct bfin5xx_spi_chip spi_mmc_chip_info = { | ||
169 | .enable_dma = 1, | ||
170 | .bits_per_word = 8, | ||
171 | }; | ||
172 | #endif | ||
173 | |||
167 | static struct spi_board_info bfin_spi_board_info[] __initdata = { | 174 | static struct spi_board_info bfin_spi_board_info[] __initdata = { |
168 | #if defined(CONFIG_MTD_M25P80) || defined(CONFIG_MTD_M25P80_MODULE) | 175 | #if defined(CONFIG_MTD_M25P80) || defined(CONFIG_MTD_M25P80_MODULE) |
169 | { | 176 | { |
@@ -199,6 +206,27 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = { | |||
199 | }, | 206 | }, |
200 | #endif | 207 | #endif |
201 | 208 | ||
209 | #if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) | ||
210 | { | ||
211 | .modalias = "spi_mmc_dummy", | ||
212 | .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ | ||
213 | .bus_num = 1, | ||
214 | .chip_select = 0, | ||
215 | .platform_data = NULL, | ||
216 | .controller_data = &spi_mmc_chip_info, | ||
217 | .mode = SPI_MODE_3, | ||
218 | }, | ||
219 | { | ||
220 | .modalias = "spi_mmc", | ||
221 | .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ | ||
222 | .bus_num = 1, | ||
223 | .chip_select = CONFIG_SPI_MMC_CS_CHAN, | ||
224 | .platform_data = NULL, | ||
225 | .controller_data = &spi_mmc_chip_info, | ||
226 | .mode = SPI_MODE_3, | ||
227 | }, | ||
228 | #endif | ||
229 | |||
202 | #if defined(CONFIG_PBX) | 230 | #if defined(CONFIG_PBX) |
203 | { | 231 | { |
204 | .modalias = "fxs-spi", | 232 | .modalias = "fxs-spi", |
@@ -310,12 +338,25 @@ static struct platform_device *stamp_devices[] __initdata = { | |||
310 | 338 | ||
311 | static int __init stamp_init(void) | 339 | static int __init stamp_init(void) |
312 | { | 340 | { |
341 | int ret; | ||
342 | |||
313 | printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); | 343 | printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); |
314 | platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); | 344 | ret = platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); |
345 | if (ret < 0) | ||
346 | return ret; | ||
347 | |||
348 | #if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) | ||
349 | # if defined(CONFIG_BFIN_SHARED_FLASH_ENET) | ||
350 | /* setup BF533_STAMP CPLD to route AMS3 to Ethernet MAC */ | ||
351 | bfin_write_FIO_DIR(bfin_read_FIO_DIR() | (1 << CONFIG_ENET_FLASH_PIN)); | ||
352 | bfin_write_FIO_FLAG_S(1 << CONFIG_ENET_FLASH_PIN); | ||
353 | SSYNC(); | ||
354 | # endif | ||
355 | #endif | ||
356 | |||
315 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | 357 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) |
316 | spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); | 358 | return spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); |
317 | #endif | 359 | #endif |
318 | return 0; | ||
319 | } | 360 | } |
320 | 361 | ||
321 | arch_initcall(stamp_init); | 362 | arch_initcall(stamp_init); |
diff --git a/arch/blackfin/mach-bf533/head.S b/arch/blackfin/mach-bf533/head.S index 4808edb0680f..4db9e6240906 100644 --- a/arch/blackfin/mach-bf533/head.S +++ b/arch/blackfin/mach-bf533/head.S | |||
@@ -173,7 +173,8 @@ ENTRY(__stext) | |||
173 | STI R2; | 173 | STI R2; |
174 | #endif | 174 | #endif |
175 | 175 | ||
176 | /* Initialise UART */ | 176 | /* Initialise UART - when booting from u-boot, the UART is not disabled |
177 | * so if we dont initalize here, our serial console gets hosed */ | ||
177 | p0.h = hi(UART_LCR); | 178 | p0.h = hi(UART_LCR); |
178 | p0.l = lo(UART_LCR); | 179 | p0.l = lo(UART_LCR); |
179 | r0 = 0x0(Z); | 180 | r0 = 0x0(Z); |
@@ -468,12 +469,6 @@ ENTRY(_bfin_reset) | |||
468 | w[p0] = r0.l; | 469 | w[p0] = r0.l; |
469 | #endif | 470 | #endif |
470 | 471 | ||
471 | /* Clear the bits 13-15 in SWRST if they werent cleared */ | ||
472 | p0.h = hi(SWRST); | ||
473 | p0.l = lo(SWRST); | ||
474 | csync; | ||
475 | r0.l = w[p0]; | ||
476 | |||
477 | /* Clear the IMASK register */ | 472 | /* Clear the IMASK register */ |
478 | p0.h = hi(IMASK); | 473 | p0.h = hi(IMASK); |
479 | p0.l = lo(IMASK); | 474 | p0.l = lo(IMASK); |
@@ -487,66 +482,30 @@ ENTRY(_bfin_reset) | |||
487 | [p0] = r0; | 482 | [p0] = r0; |
488 | SSYNC; | 483 | SSYNC; |
489 | 484 | ||
490 | /* Disable the WDOG TIMER */ | 485 | /* make sure SYSCR is set to use BMODE */ |
491 | p0.h = hi(WDOG_CTL); | 486 | P0.h = hi(SYSCR); |
492 | p0.l = lo(WDOG_CTL); | 487 | P0.l = lo(SYSCR); |
493 | r0.l = 0xAD6; | 488 | R0.l = 0x0; |
494 | w[p0] = r0.l; | 489 | W[P0] = R0.l; |
495 | SSYNC; | ||
496 | |||
497 | /* Clear the sticky bit incase it is already set */ | ||
498 | p0.h = hi(WDOG_CTL); | ||
499 | p0.l = lo(WDOG_CTL); | ||
500 | r0.l = 0x8AD6; | ||
501 | w[p0] = r0.l; | ||
502 | SSYNC; | ||
503 | |||
504 | /* Program the count value */ | ||
505 | R0.l = 0x100; | ||
506 | R0.h = 0x0; | ||
507 | P0.h = hi(WDOG_CNT); | ||
508 | P0.l = lo(WDOG_CNT); | ||
509 | [P0] = R0; | ||
510 | SSYNC; | 490 | SSYNC; |
511 | 491 | ||
512 | /* Program WDOG_STAT if necessary */ | 492 | /* issue a system soft reset */ |
513 | P0.h = hi(WDOG_CTL); | 493 | P1.h = hi(SWRST); |
514 | P0.l = lo(WDOG_CTL); | 494 | P1.l = lo(SWRST); |
515 | R0 = W[P0](Z); | 495 | R1.l = 0x0007; |
516 | CC = BITTST(R0,1); | 496 | W[P1] = R1; |
517 | if !CC JUMP .LWRITESTAT; | ||
518 | CC = BITTST(R0,2); | ||
519 | if !CC JUMP .LWRITESTAT; | ||
520 | JUMP .LSKIP_WRITE; | ||
521 | |||
522 | .LWRITESTAT: | ||
523 | /* When watch dog timer is enabled, a write to STAT will load the contents of CNT to STAT */ | ||
524 | R0 = 0x0000(z); | ||
525 | P0.h = hi(WDOG_STAT); | ||
526 | P0.l = lo(WDOG_STAT) | ||
527 | [P0] = R0; | ||
528 | SSYNC; | 497 | SSYNC; |
529 | 498 | ||
530 | .LSKIP_WRITE: | 499 | /* clear system soft reset */ |
531 | /* Enable the reset event */ | 500 | R0.l = 0x0000; |
532 | P0.h = hi(WDOG_CTL); | 501 | W[P0] = R0; |
533 | P0.l = lo(WDOG_CTL); | ||
534 | R0 = W[P0](Z); | ||
535 | BITCLR(R0,1); | ||
536 | BITCLR(R0,2); | ||
537 | W[P0] = R0.L; | ||
538 | SSYNC; | ||
539 | NOP; | ||
540 | |||
541 | /* Enable the wdog counter */ | ||
542 | R0 = W[P0](Z); | ||
543 | BITCLR(R0,4); | ||
544 | W[P0] = R0.L; | ||
545 | SSYNC; | 502 | SSYNC; |
546 | 503 | ||
547 | IDLE; | 504 | /* issue core reset */ |
505 | raise 1; | ||
548 | 506 | ||
549 | RTS; | 507 | RTS; |
508 | ENDPROC(_bfin_reset) | ||
550 | 509 | ||
551 | #if CONFIG_DEBUG_KERNEL_START | 510 | #if CONFIG_DEBUG_KERNEL_START |
552 | debug_kernel_start_trap: | 511 | debug_kernel_start_trap: |
diff --git a/arch/blackfin/mach-bf537/cpu.c b/arch/blackfin/mach-bf537/cpu.c index 2d83b7e35469..0442c4c7f723 100644 --- a/arch/blackfin/mach-bf537/cpu.c +++ b/arch/blackfin/mach-bf537/cpu.c | |||
@@ -43,13 +43,13 @@ | |||
43 | #define VCO1 (CONFIG_CLKIN_HZ*9) /*99532800 */ | 43 | #define VCO1 (CONFIG_CLKIN_HZ*9) /*99532800 */ |
44 | #define VCO(x) VCO##x | 44 | #define VCO(x) VCO##x |
45 | 45 | ||
46 | #define FREQ(x) {VCO(x),VCO(x)/4},{VCO(x),VCO(x)/2},{VCO(x),VCO(x)} | 46 | #define MFREQ(x) {VCO(x),VCO(x)/4},{VCO(x),VCO(x)/2},{VCO(x),VCO(x)} |
47 | /* frequency */ | 47 | /* frequency */ |
48 | static struct cpufreq_frequency_table bf537_freq_table[] = { | 48 | static struct cpufreq_frequency_table bf537_freq_table[] = { |
49 | FREQ(1), | 49 | MFREQ(1), |
50 | FREQ(3), | 50 | MFREQ(3), |
51 | {VCO4, VCO4 / 2}, {VCO4, VCO4}, | 51 | {VCO4, VCO4 / 2}, {VCO4, VCO4}, |
52 | FREQ(5), | 52 | MFREQ(5), |
53 | {0, CPUFREQ_TABLE_END}, | 53 | {0, CPUFREQ_TABLE_END}, |
54 | }; | 54 | }; |
55 | 55 | ||
@@ -59,13 +59,14 @@ static struct cpufreq_frequency_table bf537_freq_table[] = { | |||
59 | */ | 59 | */ |
60 | static int bf537_getfreq(unsigned int cpu) | 60 | static int bf537_getfreq(unsigned int cpu) |
61 | { | 61 | { |
62 | unsigned long cclk_mhz, vco_mhz; | 62 | unsigned long cclk_mhz; |
63 | 63 | ||
64 | /* The driver only support single cpu */ | 64 | /* The driver only support single cpu */ |
65 | if (cpu == 0) | 65 | if (cpu == 0) |
66 | dpmc_fops.ioctl(NULL, NULL, IOCTL_GET_CORECLOCK, &cclk_mhz); | 66 | dpmc_fops.ioctl(NULL, NULL, IOCTL_GET_CORECLOCK, &cclk_mhz); |
67 | else | 67 | else |
68 | cclk_mhz = -1; | 68 | cclk_mhz = -1; |
69 | |||
69 | return cclk_mhz; | 70 | return cclk_mhz; |
70 | } | 71 | } |
71 | 72 | ||
@@ -75,13 +76,12 @@ static int bf537_target(struct cpufreq_policy *policy, | |||
75 | unsigned long cclk_mhz; | 76 | unsigned long cclk_mhz; |
76 | unsigned long vco_mhz; | 77 | unsigned long vco_mhz; |
77 | unsigned long flags; | 78 | unsigned long flags; |
78 | unsigned int index, vco_index; | 79 | unsigned int index; |
79 | int i; | ||
80 | |||
81 | struct cpufreq_freqs freqs; | 80 | struct cpufreq_freqs freqs; |
82 | if (cpufreq_frequency_table_target | 81 | |
83 | (policy, bf537_freq_table, target_freq, relation, &index)) | 82 | if (cpufreq_frequency_table_target(policy, bf537_freq_table, target_freq, relation, &index)) |
84 | return -EINVAL; | 83 | return -EINVAL; |
84 | |||
85 | cclk_mhz = bf537_freq_table[index].frequency; | 85 | cclk_mhz = bf537_freq_table[index].frequency; |
86 | vco_mhz = bf537_freq_table[index].index; | 86 | vco_mhz = bf537_freq_table[index].index; |
87 | 87 | ||
@@ -114,8 +114,6 @@ static int bf537_verify_speed(struct cpufreq_policy *policy) | |||
114 | 114 | ||
115 | static int __init __bf537_cpu_init(struct cpufreq_policy *policy) | 115 | static int __init __bf537_cpu_init(struct cpufreq_policy *policy) |
116 | { | 116 | { |
117 | int result; | ||
118 | |||
119 | if (policy->cpu != 0) | 117 | if (policy->cpu != 0) |
120 | return -EINVAL; | 118 | return -EINVAL; |
121 | 119 | ||
diff --git a/arch/blackfin/mach-bf537/head.S b/arch/blackfin/mach-bf537/head.S index d104e1d8e07a..2c2652bee7e5 100644 --- a/arch/blackfin/mach-bf537/head.S +++ b/arch/blackfin/mach-bf537/head.S | |||
@@ -181,7 +181,8 @@ ENTRY(__stext) | |||
181 | SSYNC; | 181 | SSYNC; |
182 | #endif | 182 | #endif |
183 | 183 | ||
184 | /*Initialise UART*/ | 184 | /* Initialise UART - when booting from u-boot, the UART is not disabled |
185 | * so if we dont initalize here, our serial console gets hosed */ | ||
185 | p0.h = hi(UART_LCR); | 186 | p0.h = hi(UART_LCR); |
186 | p0.l = lo(UART_LCR); | 187 | p0.l = lo(UART_LCR); |
187 | r0 = 0x0(Z); | 188 | r0 = 0x0(Z); |
@@ -469,47 +470,41 @@ ENTRY(_bfin_reset) | |||
469 | SSYNC; | 470 | SSYNC; |
470 | 471 | ||
471 | #if defined(CONFIG_MTD_M25P80) | 472 | #if defined(CONFIG_MTD_M25P80) |
472 | /* | 473 | /* |
473 | * The following code fix the SPI flash reboot issue, | 474 | * The following code fix the SPI flash reboot issue, |
474 | * /CS signal of the chip which is using PF10 return to GPIO mode | 475 | * /CS signal of the chip which is using PF10 return to GPIO mode |
475 | */ | 476 | */ |
476 | p0.h = hi(PORTF_FER); | 477 | p0.h = hi(PORTF_FER); |
477 | p0.l = lo(PORTF_FER); | 478 | p0.l = lo(PORTF_FER); |
478 | r0.l = 0x0000; | 479 | r0.l = 0x0000; |
479 | w[p0] = r0.l; | 480 | w[p0] = r0.l; |
480 | SSYNC; | 481 | SSYNC; |
481 | 482 | ||
482 | /* /CS return to high */ | 483 | /* /CS return to high */ |
483 | p0.h = hi(PORTFIO); | 484 | p0.h = hi(PORTFIO); |
484 | p0.l = lo(PORTFIO); | 485 | p0.l = lo(PORTFIO); |
485 | r0.l = 0xFFFF; | 486 | r0.l = 0xFFFF; |
486 | w[p0] = r0.l; | 487 | w[p0] = r0.l; |
487 | SSYNC; | 488 | SSYNC; |
488 | 489 | ||
489 | /* Delay some time, This is necessary */ | 490 | /* Delay some time, This is necessary */ |
490 | r1.h = 0; | 491 | r1.h = 0; |
491 | r1.l = 0x400; | 492 | r1.l = 0x400; |
492 | p1 = r1; | 493 | p1 = r1; |
493 | lsetup (_delay_lab1,_delay_lab1_end ) lc1 = p1; | 494 | lsetup (.L_delay_lab1, .L_delay_lab1_end) lc1 = p1; |
494 | _delay_lab1: | 495 | .L_delay_lab1: |
495 | r0.h = 0; | 496 | r0.h = 0; |
496 | r0.l = 0x8000; | 497 | r0.l = 0x8000; |
497 | p0 = r0; | 498 | p0 = r0; |
498 | lsetup (_delay_lab0,_delay_lab0_end ) lc0 = p0; | 499 | lsetup (.L_delay_lab0, .L_delay_lab0_end) lc0 = p0; |
499 | _delay_lab0: | 500 | .L_delay_lab0: |
500 | nop; | 501 | nop; |
501 | _delay_lab0_end: | 502 | .L_delay_lab0_end: |
502 | nop; | 503 | nop; |
503 | _delay_lab1_end: | 504 | .L_delay_lab1_end: |
504 | nop; | 505 | nop; |
505 | #endif | 506 | #endif |
506 | 507 | ||
507 | /* Clear the bits 13-15 in SWRST if they werent cleared */ | ||
508 | p0.h = hi(SWRST); | ||
509 | p0.l = lo(SWRST); | ||
510 | csync; | ||
511 | r0.l = w[p0]; | ||
512 | |||
513 | /* Clear the IMASK register */ | 508 | /* Clear the IMASK register */ |
514 | p0.h = hi(IMASK); | 509 | p0.h = hi(IMASK); |
515 | p0.l = lo(IMASK); | 510 | p0.l = lo(IMASK); |
@@ -523,68 +518,30 @@ _delay_lab1_end: | |||
523 | [p0] = r0; | 518 | [p0] = r0; |
524 | SSYNC; | 519 | SSYNC; |
525 | 520 | ||
526 | /* Disable the WDOG TIMER */ | 521 | /* make sure SYSCR is set to use BMODE */ |
527 | p0.h = hi(WDOG_CTL); | 522 | P0.h = hi(SYSCR); |
528 | p0.l = lo(WDOG_CTL); | 523 | P0.l = lo(SYSCR); |
529 | r0.l = 0xAD6; | 524 | R0.l = 0x0; |
530 | w[p0] = r0.l; | 525 | W[P0] = R0.l; |
531 | SSYNC; | ||
532 | |||
533 | /* Clear the sticky bit incase it is already set */ | ||
534 | p0.h = hi(WDOG_CTL); | ||
535 | p0.l = lo(WDOG_CTL); | ||
536 | r0.l = 0x8AD6; | ||
537 | w[p0] = r0.l; | ||
538 | SSYNC; | ||
539 | |||
540 | /* Program the count value */ | ||
541 | R0.l = 0x100; | ||
542 | R0.h = 0x0; | ||
543 | P0.h = hi(WDOG_CNT); | ||
544 | P0.l = lo(WDOG_CNT); | ||
545 | [P0] = R0; | ||
546 | SSYNC; | ||
547 | |||
548 | /* Program WDOG_STAT if necessary */ | ||
549 | P0.h = hi(WDOG_CTL); | ||
550 | P0.l = lo(WDOG_CTL); | ||
551 | R0 = W[P0](Z); | ||
552 | CC = BITTST(R0,1); | ||
553 | if !CC JUMP .LWRITESTAT; | ||
554 | CC = BITTST(R0,2); | ||
555 | if !CC JUMP .LWRITESTAT; | ||
556 | JUMP .LSKIP_WRITE; | ||
557 | |||
558 | .LWRITESTAT: | ||
559 | /* When watch dog timer is enabled, | ||
560 | * a write to STAT will load the contents of CNT to STAT | ||
561 | */ | ||
562 | R0 = 0x0000(z); | ||
563 | P0.h = hi(WDOG_STAT); | ||
564 | P0.l = lo(WDOG_STAT) | ||
565 | [P0] = R0; | ||
566 | SSYNC; | 526 | SSYNC; |
567 | 527 | ||
568 | .LSKIP_WRITE: | 528 | /* issue a system soft reset */ |
569 | /* Enable the reset event */ | 529 | P1.h = hi(SWRST); |
570 | P0.h = hi(WDOG_CTL); | 530 | P1.l = lo(SWRST); |
571 | P0.l = lo(WDOG_CTL); | 531 | R1.l = 0x0007; |
572 | R0 = W[P0](Z); | 532 | W[P1] = R1; |
573 | BITCLR(R0,1); | ||
574 | BITCLR(R0,2); | ||
575 | W[P0] = R0.L; | ||
576 | SSYNC; | 533 | SSYNC; |
577 | NOP; | ||
578 | 534 | ||
579 | /* Enable the wdog counter */ | 535 | /* clear system soft reset */ |
580 | R0 = W[P0](Z); | 536 | R0.l = 0x0000; |
581 | BITCLR(R0,4); | 537 | W[P0] = R0; |
582 | W[P0] = R0.L; | ||
583 | SSYNC; | 538 | SSYNC; |
584 | 539 | ||
585 | IDLE; | 540 | /* issue core reset */ |
541 | raise 1; | ||
586 | 542 | ||
587 | RTS; | 543 | RTS; |
544 | ENDPROC(_bfin_reset) | ||
588 | 545 | ||
589 | .data | 546 | .data |
590 | 547 | ||
diff --git a/arch/blackfin/mach-bf561/boards/Makefile b/arch/blackfin/mach-bf561/boards/Makefile index 886edc739ab4..495a1cf9d452 100644 --- a/arch/blackfin/mach-bf561/boards/Makefile +++ b/arch/blackfin/mach-bf561/boards/Makefile | |||
@@ -3,5 +3,6 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | obj-$(CONFIG_GENERIC_BOARD) += generic_board.o | 5 | obj-$(CONFIG_GENERIC_BOARD) += generic_board.o |
6 | obj-$(CONFIG_BFIN561_EZKIT) += ezkit.o | ||
7 | obj-$(CONFIG_BFIN561_BLUETECHNIX_CM) += cm_bf561.o | 6 | obj-$(CONFIG_BFIN561_BLUETECHNIX_CM) += cm_bf561.o |
7 | obj-$(CONFIG_BFIN561_EZKIT) += ezkit.o | ||
8 | obj-$(CONFIG_BFIN561_TEPLA) += tepla.o | ||
diff --git a/arch/blackfin/mach-bf561/boards/ezkit.c b/arch/blackfin/mach-bf561/boards/ezkit.c index 14eb4f9a68ea..9720b5c307ab 100644 --- a/arch/blackfin/mach-bf561/boards/ezkit.c +++ b/arch/blackfin/mach-bf561/boards/ezkit.c | |||
@@ -32,12 +32,61 @@ | |||
32 | #include <linux/spi/spi.h> | 32 | #include <linux/spi/spi.h> |
33 | #include <asm/irq.h> | 33 | #include <asm/irq.h> |
34 | #include <asm/bfin5xx_spi.h> | 34 | #include <asm/bfin5xx_spi.h> |
35 | #include <linux/interrupt.h> | ||
36 | #include <linux/irq.h> | ||
35 | 37 | ||
36 | /* | 38 | /* |
37 | * Name the Board for the /proc/cpuinfo | 39 | * Name the Board for the /proc/cpuinfo |
38 | */ | 40 | */ |
39 | char *bfin_board_name = "ADDS-BF561-EZKIT"; | 41 | char *bfin_board_name = "ADDS-BF561-EZKIT"; |
40 | 42 | ||
43 | #define ISP1761_BASE 0x2C0F0000 | ||
44 | #define ISP1761_IRQ IRQ_PF10 | ||
45 | |||
46 | #if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE) | ||
47 | static struct resource bfin_isp1761_resources[] = { | ||
48 | [0] = { | ||
49 | .name = "isp1761-regs", | ||
50 | .start = ISP1761_BASE + 0x00000000, | ||
51 | .end = ISP1761_BASE + 0x000fffff, | ||
52 | .flags = IORESOURCE_MEM, | ||
53 | }, | ||
54 | [1] = { | ||
55 | .start = ISP1761_IRQ, | ||
56 | .end = ISP1761_IRQ, | ||
57 | .flags = IORESOURCE_IRQ, | ||
58 | }, | ||
59 | }; | ||
60 | |||
61 | static struct platform_device bfin_isp1761_device = { | ||
62 | .name = "isp1761", | ||
63 | .id = 0, | ||
64 | .num_resources = ARRAY_SIZE(bfin_isp1761_resources), | ||
65 | .resource = bfin_isp1761_resources, | ||
66 | }; | ||
67 | |||
68 | static struct platform_device *bfin_isp1761_devices[] = { | ||
69 | &bfin_isp1761_device, | ||
70 | }; | ||
71 | |||
72 | int __init bfin_isp1761_init(void) | ||
73 | { | ||
74 | unsigned int num_devices=ARRAY_SIZE(bfin_isp1761_devices); | ||
75 | |||
76 | printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); | ||
77 | set_irq_type(ISP1761_IRQ, IRQF_TRIGGER_FALLING); | ||
78 | |||
79 | return platform_add_devices(bfin_isp1761_devices, num_devices); | ||
80 | } | ||
81 | |||
82 | void __exit bfin_isp1761_exit(void) | ||
83 | { | ||
84 | platform_device_unregister(&bfin_isp1761_device); | ||
85 | } | ||
86 | |||
87 | arch_initcall(bfin_isp1761_init); | ||
88 | #endif | ||
89 | |||
41 | /* | 90 | /* |
42 | * USB-LAN EzExtender board | 91 | * USB-LAN EzExtender board |
43 | * Driver needs to know address, irq and flag pin. | 92 | * Driver needs to know address, irq and flag pin. |
@@ -135,13 +184,18 @@ static int __init ezkit_init(void) | |||
135 | { | 184 | { |
136 | int ret; | 185 | int ret; |
137 | 186 | ||
138 | printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); | 187 | printk(KERN_INFO "%s(): registering device resources\n", __func__); |
139 | ret = platform_add_devices(ezkit_devices, | 188 | |
140 | ARRAY_SIZE(ezkit_devices)); | 189 | ret = platform_add_devices(ezkit_devices, ARRAY_SIZE(ezkit_devices)); |
141 | if (ret < 0) | 190 | if (ret < 0) |
142 | return ret; | 191 | return ret; |
143 | return spi_register_board_info(bfin_spi_board_info, | 192 | |
144 | ARRAY_SIZE(bfin_spi_board_info)); | 193 | #if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) |
194 | bfin_write_FIO0_DIR(bfin_read_FIO0_DIR() | (1 << 12)); | ||
195 | SSYNC(); | ||
196 | #endif | ||
197 | |||
198 | return spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); | ||
145 | } | 199 | } |
146 | 200 | ||
147 | arch_initcall(ezkit_init); | 201 | arch_initcall(ezkit_init); |
diff --git a/arch/blackfin/mach-bf561/boards/tepla.c b/arch/blackfin/mach-bf561/boards/tepla.c new file mode 100644 index 000000000000..db308c7ccabb --- /dev/null +++ b/arch/blackfin/mach-bf561/boards/tepla.c | |||
@@ -0,0 +1,61 @@ | |||
1 | /* | ||
2 | * File: arch/blackfin/mach-bf561/tepla.c | ||
3 | * | ||
4 | * Copyright 2004-2007 Analog Devices Inc. | ||
5 | * Only SMSC91C1111 was registered, may do more later. | ||
6 | * | ||
7 | * Copyright 2005 National ICT Australia (NICTA), Aidan Williams <aidan@nicta.com.au> | ||
8 | * Thanks to Jamey Hicks. | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify | ||
11 | * it under the terms of the GNU General Public License version 2 as | ||
12 | * published by the Free Software Foundation. | ||
13 | */ | ||
14 | |||
15 | #include <linux/device.h> | ||
16 | #include <linux/platform_device.h> | ||
17 | #include <asm/irq.h> | ||
18 | |||
19 | char *bfin_board_name = "Tepla-BF561"; | ||
20 | |||
21 | /* | ||
22 | * Driver needs to know address, irq and flag pin. | ||
23 | */ | ||
24 | static struct resource smc91x_resources[] = { | ||
25 | { | ||
26 | .start = 0x2C000300, | ||
27 | .end = 0x2C000320, | ||
28 | .flags = IORESOURCE_MEM, | ||
29 | },{ | ||
30 | .start = IRQ_PROG_INTB, | ||
31 | .end = IRQ_PROG_INTB, | ||
32 | .flags = IORESOURCE_IRQ|IORESOURCE_IRQ_HIGHLEVEL, | ||
33 | },{ | ||
34 | /* | ||
35 | * denotes the flag pin and is used directly if | ||
36 | * CONFIG_IRQCHIP_DEMUX_GPIO is defined. | ||
37 | */ | ||
38 | .start = IRQ_PF7, | ||
39 | .end = IRQ_PF7, | ||
40 | .flags = IORESOURCE_IRQ|IORESOURCE_IRQ_HIGHLEVEL, | ||
41 | }, | ||
42 | }; | ||
43 | |||
44 | static struct platform_device smc91x_device = { | ||
45 | .name = "smc91x", | ||
46 | .id = 0, | ||
47 | .num_resources = ARRAY_SIZE(smc91x_resources), | ||
48 | .resource = smc91x_resources, | ||
49 | }; | ||
50 | |||
51 | static struct platform_device *tepla_devices[] __initdata = { | ||
52 | &smc91x_device, | ||
53 | }; | ||
54 | |||
55 | static int __init tepla_init(void) | ||
56 | { | ||
57 | printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); | ||
58 | return platform_add_devices(tepla_devices, ARRAY_SIZE(tepla_devices)); | ||
59 | } | ||
60 | |||
61 | arch_initcall(tepla_init); | ||
diff --git a/arch/blackfin/mach-bf561/head.S b/arch/blackfin/mach-bf561/head.S index 7bca478526b9..ad9187a866a5 100644 --- a/arch/blackfin/mach-bf561/head.S +++ b/arch/blackfin/mach-bf561/head.S | |||
@@ -127,7 +127,8 @@ ENTRY(__stext) | |||
127 | STI R2; | 127 | STI R2; |
128 | #endif | 128 | #endif |
129 | 129 | ||
130 | /* Initialise UART*/ | 130 | /* Initialise UART - when booting from u-boot, the UART is not disabled |
131 | * so if we dont initalize here, our serial console gets hosed */ | ||
131 | p0.h = hi(UART_LCR); | 132 | p0.h = hi(UART_LCR); |
132 | p0.l = lo(UART_LCR); | 133 | p0.l = lo(UART_LCR); |
133 | r0 = 0x0(Z); | 134 | r0 = 0x0(Z); |
@@ -414,12 +415,6 @@ ENTRY(_bfin_reset) | |||
414 | w[p0] = r0.l; | 415 | w[p0] = r0.l; |
415 | #endif | 416 | #endif |
416 | 417 | ||
417 | /* Clear the bits 13-15 in SWRST if they werent cleared */ | ||
418 | p0.h = hi(SICA_SWRST); | ||
419 | p0.l = lo(SICA_SWRST); | ||
420 | csync; | ||
421 | r0.l = w[p0]; | ||
422 | |||
423 | /* Clear the IMASK register */ | 418 | /* Clear the IMASK register */ |
424 | p0.h = hi(IMASK); | 419 | p0.h = hi(IMASK); |
425 | p0.l = lo(IMASK); | 420 | p0.l = lo(IMASK); |
@@ -433,68 +428,30 @@ ENTRY(_bfin_reset) | |||
433 | [p0] = r0; | 428 | [p0] = r0; |
434 | SSYNC; | 429 | SSYNC; |
435 | 430 | ||
436 | /* Disable the WDOG TIMER */ | 431 | /* make sure SYSCR is set to use BMODE */ |
437 | p0.h = hi(WDOGA_CTL); | 432 | P0.h = hi(SICA_SYSCR); |
438 | p0.l = lo(WDOGA_CTL); | 433 | P0.l = lo(SICA_SYSCR); |
439 | r0.l = 0xAD6; | 434 | R0.l = 0x20; |
440 | w[p0] = r0.l; | 435 | W[P0] = R0.l; |
441 | SSYNC; | ||
442 | |||
443 | /* Clear the sticky bit incase it is already set */ | ||
444 | p0.h = hi(WDOGA_CTL); | ||
445 | p0.l = lo(WDOGA_CTL); | ||
446 | r0.l = 0x8AD6; | ||
447 | w[p0] = r0.l; | ||
448 | SSYNC; | 436 | SSYNC; |
449 | 437 | ||
450 | /* Program the count value */ | 438 | /* issue a system soft reset */ |
451 | R0.l = 0x100; | 439 | P1.h = hi(SICA_SWRST); |
452 | R0.h = 0x0; | 440 | P1.l = lo(SICA_SWRST); |
453 | P0.h = hi(WDOGA_CNT); | 441 | R1.l = 0x0007; |
454 | P0.l = lo(WDOGA_CNT); | 442 | W[P1] = R1; |
455 | [P0] = R0; | ||
456 | SSYNC; | 443 | SSYNC; |
457 | 444 | ||
458 | /* Program WDOG_STAT if necessary */ | 445 | /* clear system soft reset */ |
459 | P0.h = hi(WDOGA_CTL); | 446 | R0.l = 0x0000; |
460 | P0.l = lo(WDOGA_CTL); | 447 | W[P0] = R0; |
461 | R0 = W[P0](Z); | ||
462 | CC = BITTST(R0,1); | ||
463 | if !CC JUMP .LWRITESTAT; | ||
464 | CC = BITTST(R0,2); | ||
465 | if !CC JUMP .LWRITESTAT; | ||
466 | JUMP .LSKIP_WRITE; | ||
467 | |||
468 | .LWRITESTAT: | ||
469 | /* When watch dog timer is enabled, | ||
470 | * a write to STAT will load the contents of CNT to STAT | ||
471 | */ | ||
472 | R0 = 0x0000(z); | ||
473 | P0.h = hi(WDOGA_STAT); | ||
474 | P0.l = lo(WDOGA_STAT) | ||
475 | [P0] = R0; | ||
476 | SSYNC; | ||
477 | |||
478 | .LSKIP_WRITE: | ||
479 | /* Enable the reset event */ | ||
480 | P0.h = hi(WDOGA_CTL); | ||
481 | P0.l = lo(WDOGA_CTL); | ||
482 | R0 = W[P0](Z); | ||
483 | BITCLR(R0,1); | ||
484 | BITCLR(R0,2); | ||
485 | W[P0] = R0.L; | ||
486 | SSYNC; | ||
487 | NOP; | ||
488 | |||
489 | /* Enable the wdog counter */ | ||
490 | R0 = W[P0](Z); | ||
491 | BITCLR(R0,4); | ||
492 | W[P0] = R0.L; | ||
493 | SSYNC; | 448 | SSYNC; |
494 | 449 | ||
495 | IDLE; | 450 | /* issue core reset */ |
451 | raise 1; | ||
496 | 452 | ||
497 | RTS; | 453 | RTS; |
454 | ENDPROC(_bfin_reset) | ||
498 | 455 | ||
499 | .data | 456 | .data |
500 | 457 | ||
diff --git a/arch/blackfin/mach-common/entry.S b/arch/blackfin/mach-common/entry.S index 8eb0a9023482..7d0368772cda 100644 --- a/arch/blackfin/mach-common/entry.S +++ b/arch/blackfin/mach-common/entry.S | |||
@@ -181,6 +181,12 @@ ENTRY(_ex_single_step) | |||
181 | 181 | ||
182 | _return_from_exception: | 182 | _return_from_exception: |
183 | DEBUG_START_HWTRACE | 183 | DEBUG_START_HWTRACE |
184 | #ifdef ANOMALY_05000257 | ||
185 | R7=LC0; | ||
186 | LC0=R7; | ||
187 | R7=LC1; | ||
188 | LC1=R7; | ||
189 | #endif | ||
184 | (R7:6,P5:4) = [sp++]; | 190 | (R7:6,P5:4) = [sp++]; |
185 | ASTAT = [sp++]; | 191 | ASTAT = [sp++]; |
186 | sp = retn; | 192 | sp = retn; |
@@ -706,6 +712,11 @@ _schedule_and_signal_from_int: | |||
706 | p1.h = _evt_system_call; | 712 | p1.h = _evt_system_call; |
707 | [p0] = p1; | 713 | [p0] = p1; |
708 | csync; | 714 | csync; |
715 | |||
716 | /* Set orig_p0 to -1 to indicate this isn't the end of a syscall. */ | ||
717 | r0 = -1 (x); | ||
718 | [sp + PT_ORIG_P0] = r0; | ||
719 | |||
709 | p1 = rets; | 720 | p1 = rets; |
710 | [sp + PT_RESERVED] = p1; | 721 | [sp + PT_RESERVED] = p1; |
711 | 722 | ||
diff --git a/arch/blackfin/mach-common/pm.c b/arch/blackfin/mach-common/pm.c index deb27272c658..afed5246dd9e 100644 --- a/arch/blackfin/mach-common/pm.c +++ b/arch/blackfin/mach-common/pm.c | |||
@@ -102,10 +102,8 @@ static int bfin_pm_prepare(suspend_state_t state) | |||
102 | switch (state) { | 102 | switch (state) { |
103 | case PM_SUSPEND_STANDBY: | 103 | case PM_SUSPEND_STANDBY: |
104 | break; | 104 | break; |
105 | case PM_SUSPEND_MEM: | ||
106 | return -ENOTSUPP; | ||
107 | 105 | ||
108 | case PM_SUSPEND_DISK: | 106 | case PM_SUSPEND_MEM: |
109 | return -ENOTSUPP; | 107 | return -ENOTSUPP; |
110 | 108 | ||
111 | default: | 109 | default: |
@@ -126,10 +124,8 @@ static int bfin_pm_enter(suspend_state_t state) | |||
126 | case PM_SUSPEND_STANDBY: | 124 | case PM_SUSPEND_STANDBY: |
127 | bfin_pm_suspend_standby_enter(); | 125 | bfin_pm_suspend_standby_enter(); |
128 | break; | 126 | break; |
129 | case PM_SUSPEND_MEM: | ||
130 | return -ENOTSUPP; | ||
131 | 127 | ||
132 | case PM_SUSPEND_DISK: | 128 | case PM_SUSPEND_MEM: |
133 | return -ENOTSUPP; | 129 | return -ENOTSUPP; |
134 | 130 | ||
135 | default: | 131 | default: |
@@ -155,9 +151,6 @@ static int bfin_pm_finish(suspend_state_t state) | |||
155 | case PM_SUSPEND_MEM: | 151 | case PM_SUSPEND_MEM: |
156 | return -ENOTSUPP; | 152 | return -ENOTSUPP; |
157 | 153 | ||
158 | case PM_SUSPEND_DISK: | ||
159 | return -ENOTSUPP; | ||
160 | |||
161 | default: | 154 | default: |
162 | return -EINVAL; | 155 | return -EINVAL; |
163 | } | 156 | } |
@@ -166,7 +159,6 @@ static int bfin_pm_finish(suspend_state_t state) | |||
166 | } | 159 | } |
167 | 160 | ||
168 | struct pm_ops bfin_pm_ops = { | 161 | struct pm_ops bfin_pm_ops = { |
169 | .pm_disk_mode = PM_DISK_PLATFORM, | ||
170 | .prepare = bfin_pm_prepare, | 162 | .prepare = bfin_pm_prepare, |
171 | .enter = bfin_pm_enter, | 163 | .enter = bfin_pm_enter, |
172 | .finish = bfin_pm_finish, | 164 | .finish = bfin_pm_finish, |
diff --git a/arch/blackfin/mm/init.c b/arch/blackfin/mm/init.c index 73f72abed432..d6cf1059560d 100644 --- a/arch/blackfin/mm/init.c +++ b/arch/blackfin/mm/init.c | |||
@@ -116,7 +116,8 @@ void paging_init(void) | |||
116 | { | 116 | { |
117 | unsigned long zones_size[MAX_NR_ZONES] = { 0, }; | 117 | unsigned long zones_size[MAX_NR_ZONES] = { 0, }; |
118 | 118 | ||
119 | zones_size[ZONE_NORMAL] = (end_mem - PAGE_OFFSET) >> PAGE_SHIFT; | 119 | zones_size[ZONE_DMA] = (end_mem - PAGE_OFFSET) >> PAGE_SHIFT; |
120 | zones_size[ZONE_NORMAL] = 0; | ||
120 | #ifdef CONFIG_HIGHMEM | 121 | #ifdef CONFIG_HIGHMEM |
121 | zones_size[ZONE_HIGHMEM] = 0; | 122 | zones_size[ZONE_HIGHMEM] = 0; |
122 | #endif | 123 | #endif |
diff --git a/arch/frv/Kconfig b/arch/frv/Kconfig index 114738a45582..74eef7111f2b 100644 --- a/arch/frv/Kconfig +++ b/arch/frv/Kconfig | |||
@@ -102,14 +102,6 @@ config HIGHPTE | |||
102 | with a lot of RAM, this can be wasteful of precious low memory. | 102 | with a lot of RAM, this can be wasteful of precious low memory. |
103 | Setting this option will put user-space page tables in high memory. | 103 | Setting this option will put user-space page tables in high memory. |
104 | 104 | ||
105 | config LARGE_ALLOCS | ||
106 | bool "Allow allocating large blocks (> 1MB) of memory" | ||
107 | help | ||
108 | Allow the slab memory allocator to keep chains for very large memory | ||
109 | sizes - up to 32MB. You may need this if your system has a lot of | ||
110 | RAM, and you need to able to allocate very large contiguous chunks. | ||
111 | If unsure, say N. | ||
112 | |||
113 | source "mm/Kconfig" | 105 | source "mm/Kconfig" |
114 | 106 | ||
115 | choice | 107 | choice |
diff --git a/arch/frv/kernel/vmlinux.lds.S b/arch/frv/kernel/vmlinux.lds.S index 28eae9735ad6..481dc1374640 100644 --- a/arch/frv/kernel/vmlinux.lds.S +++ b/arch/frv/kernel/vmlinux.lds.S | |||
@@ -101,13 +101,14 @@ SECTIONS | |||
101 | _stext = .; | 101 | _stext = .; |
102 | .text : { | 102 | .text : { |
103 | *( | 103 | *( |
104 | .text.start .text .text.* | 104 | .text.start .text.* |
105 | #ifdef CONFIG_DEBUG_INFO | 105 | #ifdef CONFIG_DEBUG_INFO |
106 | .init.text | 106 | .init.text |
107 | .exit.text | 107 | .exit.text |
108 | .exitcall.exit | 108 | .exitcall.exit |
109 | #endif | 109 | #endif |
110 | ) | 110 | ) |
111 | TEXT_TEXT | ||
111 | SCHED_TEXT | 112 | SCHED_TEXT |
112 | LOCK_TEXT | 113 | LOCK_TEXT |
113 | *(.fixup) | 114 | *(.fixup) |
@@ -135,7 +136,8 @@ SECTIONS | |||
135 | 136 | ||
136 | _sdata = .; | 137 | _sdata = .; |
137 | .data : { /* Data */ | 138 | .data : { /* Data */ |
138 | *(.data .data.*) | 139 | DATA_DATA |
140 | *(.data.*) | ||
139 | *(.exit.data) | 141 | *(.exit.data) |
140 | CONSTRUCTORS | 142 | CONSTRUCTORS |
141 | } | 143 | } |
diff --git a/arch/h8300/kernel/vmlinux.lds.S b/arch/h8300/kernel/vmlinux.lds.S index 65f1cdc5ee04..a2e72d495551 100644 --- a/arch/h8300/kernel/vmlinux.lds.S +++ b/arch/h8300/kernel/vmlinux.lds.S | |||
@@ -75,7 +75,7 @@ SECTIONS | |||
75 | *(.int_redirect) | 75 | *(.int_redirect) |
76 | #endif | 76 | #endif |
77 | __stext = . ; | 77 | __stext = . ; |
78 | *(.text) | 78 | TEXT_TEXT |
79 | SCHED_TEXT | 79 | SCHED_TEXT |
80 | LOCK_TEXT | 80 | LOCK_TEXT |
81 | __etext = . ; | 81 | __etext = . ; |
@@ -103,7 +103,7 @@ SECTIONS | |||
103 | . = ALIGN(0x2000) ; | 103 | . = ALIGN(0x2000) ; |
104 | *(.data.init_task) | 104 | *(.data.init_task) |
105 | . = ALIGN(0x4) ; | 105 | . = ALIGN(0x4) ; |
106 | *(.data) | 106 | DATA_DATA |
107 | . = ALIGN(0x4) ; | 107 | . = ALIGN(0x4) ; |
108 | *(.data.*) | 108 | *(.data.*) |
109 | 109 | ||
diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig index c2d54b802232..8770a5d0b143 100644 --- a/arch/i386/Kconfig +++ b/arch/i386/Kconfig | |||
@@ -891,7 +891,7 @@ config PHYSICAL_ALIGN | |||
891 | Don't change this unless you know what you are doing. | 891 | Don't change this unless you know what you are doing. |
892 | 892 | ||
893 | config HOTPLUG_CPU | 893 | config HOTPLUG_CPU |
894 | bool "Support for hot-pluggable CPUs (EXPERIMENTAL)" | 894 | bool "Support for suspend on SMP and hot-pluggable CPUs (EXPERIMENTAL)" |
895 | depends on SMP && HOTPLUG && EXPERIMENTAL && !X86_VOYAGER | 895 | depends on SMP && HOTPLUG && EXPERIMENTAL && !X86_VOYAGER |
896 | ---help--- | 896 | ---help--- |
897 | Say Y here to experiment with turning CPUs off and on, and to | 897 | Say Y here to experiment with turning CPUs off and on, and to |
diff --git a/arch/i386/Makefile b/arch/i386/Makefile index 6dc5e5d90fec..bd28f9f9b4b7 100644 --- a/arch/i386/Makefile +++ b/arch/i386/Makefile | |||
@@ -34,7 +34,7 @@ CHECKFLAGS += -D__i386__ | |||
34 | CFLAGS += -pipe -msoft-float -mregparm=3 -freg-struct-return | 34 | CFLAGS += -pipe -msoft-float -mregparm=3 -freg-struct-return |
35 | 35 | ||
36 | # prevent gcc from keeping the stack 16 byte aligned | 36 | # prevent gcc from keeping the stack 16 byte aligned |
37 | CFLAGS += -mpreferred-stack-boundary=4 | 37 | CFLAGS += $(call cc-option,-mpreferred-stack-boundary=2) |
38 | 38 | ||
39 | # CPU-specific tuning. Anything which can be shared with UML should go here. | 39 | # CPU-specific tuning. Anything which can be shared with UML should go here. |
40 | include $(srctree)/arch/i386/Makefile.cpu | 40 | include $(srctree)/arch/i386/Makefile.cpu |
diff --git a/arch/i386/boot/setup.S b/arch/i386/boot/setup.S index f8b3b9cda2b1..6dbcc95b2120 100644 --- a/arch/i386/boot/setup.S +++ b/arch/i386/boot/setup.S | |||
@@ -310,6 +310,8 @@ loader_ok: | |||
310 | call verify_cpu | 310 | call verify_cpu |
311 | testl %eax,%eax | 311 | testl %eax,%eax |
312 | jz cpu_ok | 312 | jz cpu_ok |
313 | movw %cs,%ax # aka SETUPSEG | ||
314 | movw %ax,%ds | ||
313 | lea cpu_panic_mess,%si | 315 | lea cpu_panic_mess,%si |
314 | call prtstr | 316 | call prtstr |
315 | 1: jmp 1b | 317 | 1: jmp 1b |
diff --git a/arch/i386/defconfig b/arch/i386/defconfig index 9da84412a831..1a3a2217b7c2 100644 --- a/arch/i386/defconfig +++ b/arch/i386/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.21-git3 | 3 | # Linux kernel version: 2.6.22-rc2 |
4 | # Tue May 1 07:30:51 2007 | 4 | # Mon May 21 13:23:44 2007 |
5 | # | 5 | # |
6 | CONFIG_X86_32=y | 6 | CONFIG_X86_32=y |
7 | CONFIG_GENERIC_TIME=y | 7 | CONFIG_GENERIC_TIME=y |
@@ -14,6 +14,7 @@ CONFIG_SEMAPHORE_SLEEPERS=y | |||
14 | CONFIG_X86=y | 14 | CONFIG_X86=y |
15 | CONFIG_MMU=y | 15 | CONFIG_MMU=y |
16 | CONFIG_ZONE_DMA=y | 16 | CONFIG_ZONE_DMA=y |
17 | CONFIG_QUICKLIST=y | ||
17 | CONFIG_GENERIC_ISA_DMA=y | 18 | CONFIG_GENERIC_ISA_DMA=y |
18 | CONFIG_GENERIC_IOMAP=y | 19 | CONFIG_GENERIC_IOMAP=y |
19 | CONFIG_GENERIC_BUG=y | 20 | CONFIG_GENERIC_BUG=y |
@@ -45,6 +46,7 @@ CONFIG_POSIX_MQUEUE=y | |||
45 | # CONFIG_AUDIT is not set | 46 | # CONFIG_AUDIT is not set |
46 | CONFIG_IKCONFIG=y | 47 | CONFIG_IKCONFIG=y |
47 | CONFIG_IKCONFIG_PROC=y | 48 | CONFIG_IKCONFIG_PROC=y |
49 | CONFIG_LOG_BUF_SHIFT=18 | ||
48 | # CONFIG_CPUSETS is not set | 50 | # CONFIG_CPUSETS is not set |
49 | CONFIG_SYSFS_DEPRECATED=y | 51 | CONFIG_SYSFS_DEPRECATED=y |
50 | # CONFIG_RELAY is not set | 52 | # CONFIG_RELAY is not set |
@@ -64,14 +66,19 @@ CONFIG_BUG=y | |||
64 | CONFIG_ELF_CORE=y | 66 | CONFIG_ELF_CORE=y |
65 | CONFIG_BASE_FULL=y | 67 | CONFIG_BASE_FULL=y |
66 | CONFIG_FUTEX=y | 68 | CONFIG_FUTEX=y |
69 | CONFIG_ANON_INODES=y | ||
67 | CONFIG_EPOLL=y | 70 | CONFIG_EPOLL=y |
71 | CONFIG_SIGNALFD=y | ||
72 | CONFIG_TIMERFD=y | ||
73 | CONFIG_EVENTFD=y | ||
68 | CONFIG_SHMEM=y | 74 | CONFIG_SHMEM=y |
69 | CONFIG_SLAB=y | ||
70 | CONFIG_VM_EVENT_COUNTERS=y | 75 | CONFIG_VM_EVENT_COUNTERS=y |
76 | CONFIG_SLAB=y | ||
77 | # CONFIG_SLUB is not set | ||
78 | # CONFIG_SLOB is not set | ||
71 | CONFIG_RT_MUTEXES=y | 79 | CONFIG_RT_MUTEXES=y |
72 | # CONFIG_TINY_SHMEM is not set | 80 | # CONFIG_TINY_SHMEM is not set |
73 | CONFIG_BASE_SMALL=0 | 81 | CONFIG_BASE_SMALL=0 |
74 | # CONFIG_SLOB is not set | ||
75 | 82 | ||
76 | # | 83 | # |
77 | # Loadable module support | 84 | # Loadable module support |
@@ -165,7 +172,7 @@ CONFIG_X86_INTEL_USERCOPY=y | |||
165 | CONFIG_X86_USE_PPRO_CHECKSUM=y | 172 | CONFIG_X86_USE_PPRO_CHECKSUM=y |
166 | CONFIG_X86_TSC=y | 173 | CONFIG_X86_TSC=y |
167 | CONFIG_X86_CMOV=y | 174 | CONFIG_X86_CMOV=y |
168 | CONFIG_X86_MINIMUM_CPU_MODEL=4 | 175 | CONFIG_X86_MINIMUM_CPU_FAMILY=4 |
169 | CONFIG_HPET_TIMER=y | 176 | CONFIG_HPET_TIMER=y |
170 | CONFIG_HPET_EMULATE_RTC=y | 177 | CONFIG_HPET_EMULATE_RTC=y |
171 | CONFIG_NR_CPUS=32 | 178 | CONFIG_NR_CPUS=32 |
@@ -211,6 +218,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y | |||
211 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 218 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
212 | CONFIG_RESOURCES_64BIT=y | 219 | CONFIG_RESOURCES_64BIT=y |
213 | CONFIG_ZONE_DMA_FLAG=1 | 220 | CONFIG_ZONE_DMA_FLAG=1 |
221 | CONFIG_NR_QUICK=1 | ||
214 | # CONFIG_HIGHPTE is not set | 222 | # CONFIG_HIGHPTE is not set |
215 | # CONFIG_MATH_EMULATION is not set | 223 | # CONFIG_MATH_EMULATION is not set |
216 | CONFIG_MTRR=y | 224 | CONFIG_MTRR=y |
@@ -237,7 +245,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | |||
237 | CONFIG_PM=y | 245 | CONFIG_PM=y |
238 | CONFIG_PM_LEGACY=y | 246 | CONFIG_PM_LEGACY=y |
239 | # CONFIG_PM_DEBUG is not set | 247 | # CONFIG_PM_DEBUG is not set |
240 | CONFIG_PM_SYSFS_DEPRECATED=y | 248 | # CONFIG_PM_SYSFS_DEPRECATED is not set |
241 | 249 | ||
242 | # | 250 | # |
243 | # ACPI (Advanced Configuration and Power Interface) Support | 251 | # ACPI (Advanced Configuration and Power Interface) Support |
@@ -277,7 +285,7 @@ CONFIG_CPU_FREQ_GOV_PERFORMANCE=y | |||
277 | # CONFIG_CPU_FREQ_GOV_POWERSAVE is not set | 285 | # CONFIG_CPU_FREQ_GOV_POWERSAVE is not set |
278 | CONFIG_CPU_FREQ_GOV_USERSPACE=y | 286 | CONFIG_CPU_FREQ_GOV_USERSPACE=y |
279 | CONFIG_CPU_FREQ_GOV_ONDEMAND=y | 287 | CONFIG_CPU_FREQ_GOV_ONDEMAND=y |
280 | CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y | 288 | # CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set |
281 | 289 | ||
282 | # | 290 | # |
283 | # CPUFreq processor drivers | 291 | # CPUFreq processor drivers |
@@ -315,9 +323,10 @@ CONFIG_PCI_BIOS=y | |||
315 | CONFIG_PCI_DIRECT=y | 323 | CONFIG_PCI_DIRECT=y |
316 | CONFIG_PCI_MMCONFIG=y | 324 | CONFIG_PCI_MMCONFIG=y |
317 | # CONFIG_PCIEPORTBUS is not set | 325 | # CONFIG_PCIEPORTBUS is not set |
326 | CONFIG_ARCH_SUPPORTS_MSI=y | ||
318 | CONFIG_PCI_MSI=y | 327 | CONFIG_PCI_MSI=y |
319 | # CONFIG_PCI_DEBUG is not set | 328 | # CONFIG_PCI_DEBUG is not set |
320 | # CONFIG_HT_IRQ is not set | 329 | CONFIG_HT_IRQ=y |
321 | CONFIG_ISA_DMA_API=y | 330 | CONFIG_ISA_DMA_API=y |
322 | # CONFIG_ISA is not set | 331 | # CONFIG_ISA is not set |
323 | # CONFIG_MCA is not set | 332 | # CONFIG_MCA is not set |
@@ -328,10 +337,6 @@ CONFIG_K8_NB=y | |||
328 | # PCCARD (PCMCIA/CardBus) support | 337 | # PCCARD (PCMCIA/CardBus) support |
329 | # | 338 | # |
330 | # CONFIG_PCCARD is not set | 339 | # CONFIG_PCCARD is not set |
331 | |||
332 | # | ||
333 | # PCI Hotplug Support | ||
334 | # | ||
335 | # CONFIG_HOTPLUG_PCI is not set | 340 | # CONFIG_HOTPLUG_PCI is not set |
336 | 341 | ||
337 | # | 342 | # |
@@ -377,7 +382,7 @@ CONFIG_IP_PNP_DHCP=y | |||
377 | CONFIG_INET_TUNNEL=y | 382 | CONFIG_INET_TUNNEL=y |
378 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | 383 | CONFIG_INET_XFRM_MODE_TRANSPORT=y |
379 | CONFIG_INET_XFRM_MODE_TUNNEL=y | 384 | CONFIG_INET_XFRM_MODE_TUNNEL=y |
380 | # CONFIG_INET_XFRM_MODE_BEET is not set | 385 | CONFIG_INET_XFRM_MODE_BEET=y |
381 | CONFIG_INET_DIAG=y | 386 | CONFIG_INET_DIAG=y |
382 | CONFIG_INET_TCP_DIAG=y | 387 | CONFIG_INET_TCP_DIAG=y |
383 | # CONFIG_TCP_CONG_ADVANCED is not set | 388 | # CONFIG_TCP_CONG_ADVANCED is not set |
@@ -396,7 +401,7 @@ CONFIG_IPV6=y | |||
396 | # CONFIG_INET6_TUNNEL is not set | 401 | # CONFIG_INET6_TUNNEL is not set |
397 | CONFIG_INET6_XFRM_MODE_TRANSPORT=y | 402 | CONFIG_INET6_XFRM_MODE_TRANSPORT=y |
398 | CONFIG_INET6_XFRM_MODE_TUNNEL=y | 403 | CONFIG_INET6_XFRM_MODE_TUNNEL=y |
399 | # CONFIG_INET6_XFRM_MODE_BEET is not set | 404 | CONFIG_INET6_XFRM_MODE_BEET=y |
400 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 405 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
401 | CONFIG_IPV6_SIT=y | 406 | CONFIG_IPV6_SIT=y |
402 | # CONFIG_IPV6_TUNNEL is not set | 407 | # CONFIG_IPV6_TUNNEL is not set |
@@ -450,7 +455,9 @@ CONFIG_IPV6_SIT=y | |||
450 | # | 455 | # |
451 | # CONFIG_CFG80211 is not set | 456 | # CONFIG_CFG80211 is not set |
452 | # CONFIG_WIRELESS_EXT is not set | 457 | # CONFIG_WIRELESS_EXT is not set |
458 | # CONFIG_MAC80211 is not set | ||
453 | # CONFIG_IEEE80211 is not set | 459 | # CONFIG_IEEE80211 is not set |
460 | # CONFIG_RFKILL is not set | ||
454 | 461 | ||
455 | # | 462 | # |
456 | # Device Drivers | 463 | # Device Drivers |
@@ -513,14 +520,12 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | |||
513 | # Misc devices | 520 | # Misc devices |
514 | # | 521 | # |
515 | # CONFIG_IBM_ASM is not set | 522 | # CONFIG_IBM_ASM is not set |
523 | # CONFIG_PHANTOM is not set | ||
516 | # CONFIG_SGI_IOC4 is not set | 524 | # CONFIG_SGI_IOC4 is not set |
517 | # CONFIG_TIFM_CORE is not set | 525 | # CONFIG_TIFM_CORE is not set |
518 | # CONFIG_SONY_LAPTOP is not set | 526 | # CONFIG_SONY_LAPTOP is not set |
519 | # CONFIG_THINKPAD_ACPI is not set | 527 | # CONFIG_THINKPAD_ACPI is not set |
520 | 528 | # CONFIG_BLINK is not set | |
521 | # | ||
522 | # ATA/ATAPI/MFM/RLL support | ||
523 | # | ||
524 | CONFIG_IDE=y | 529 | CONFIG_IDE=y |
525 | CONFIG_BLK_DEV_IDE=y | 530 | CONFIG_BLK_DEV_IDE=y |
526 | 531 | ||
@@ -537,6 +542,7 @@ CONFIG_BLK_DEV_IDECD=y | |||
537 | # CONFIG_BLK_DEV_IDESCSI is not set | 542 | # CONFIG_BLK_DEV_IDESCSI is not set |
538 | CONFIG_BLK_DEV_IDEACPI=y | 543 | CONFIG_BLK_DEV_IDEACPI=y |
539 | # CONFIG_IDE_TASK_IOCTL is not set | 544 | # CONFIG_IDE_TASK_IOCTL is not set |
545 | CONFIG_IDE_PROC_FS=y | ||
540 | 546 | ||
541 | # | 547 | # |
542 | # IDE chipset support/bugfixes | 548 | # IDE chipset support/bugfixes |
@@ -546,6 +552,7 @@ CONFIG_IDE_GENERIC=y | |||
546 | # CONFIG_BLK_DEV_IDEPNP is not set | 552 | # CONFIG_BLK_DEV_IDEPNP is not set |
547 | CONFIG_BLK_DEV_IDEPCI=y | 553 | CONFIG_BLK_DEV_IDEPCI=y |
548 | # CONFIG_IDEPCI_SHARE_IRQ is not set | 554 | # CONFIG_IDEPCI_SHARE_IRQ is not set |
555 | CONFIG_IDEPCI_PCIBUS_ORDER=y | ||
549 | # CONFIG_BLK_DEV_OFFBOARD is not set | 556 | # CONFIG_BLK_DEV_OFFBOARD is not set |
550 | # CONFIG_BLK_DEV_GENERIC is not set | 557 | # CONFIG_BLK_DEV_GENERIC is not set |
551 | # CONFIG_BLK_DEV_OPTI621 is not set | 558 | # CONFIG_BLK_DEV_OPTI621 is not set |
@@ -600,9 +607,8 @@ CONFIG_SCSI_NETLINK=y | |||
600 | CONFIG_BLK_DEV_SD=y | 607 | CONFIG_BLK_DEV_SD=y |
601 | # CONFIG_CHR_DEV_ST is not set | 608 | # CONFIG_CHR_DEV_ST is not set |
602 | # CONFIG_CHR_DEV_OSST is not set | 609 | # CONFIG_CHR_DEV_OSST is not set |
603 | CONFIG_BLK_DEV_SR=y | 610 | # CONFIG_BLK_DEV_SR is not set |
604 | # CONFIG_BLK_DEV_SR_VENDOR is not set | 611 | # CONFIG_CHR_DEV_SG is not set |
605 | CONFIG_CHR_DEV_SG=y | ||
606 | # CONFIG_CHR_DEV_SCH is not set | 612 | # CONFIG_CHR_DEV_SCH is not set |
607 | 613 | ||
608 | # | 614 | # |
@@ -612,6 +618,7 @@ CONFIG_CHR_DEV_SG=y | |||
612 | # CONFIG_SCSI_CONSTANTS is not set | 618 | # CONFIG_SCSI_CONSTANTS is not set |
613 | # CONFIG_SCSI_LOGGING is not set | 619 | # CONFIG_SCSI_LOGGING is not set |
614 | # CONFIG_SCSI_SCAN_ASYNC is not set | 620 | # CONFIG_SCSI_SCAN_ASYNC is not set |
621 | CONFIG_SCSI_WAIT_SCAN=m | ||
615 | 622 | ||
616 | # | 623 | # |
617 | # SCSI Transports | 624 | # SCSI Transports |
@@ -640,7 +647,6 @@ CONFIG_AIC7XXX_REG_PRETTY_PRINT=y | |||
640 | CONFIG_SCSI_AIC79XX=y | 647 | CONFIG_SCSI_AIC79XX=y |
641 | CONFIG_AIC79XX_CMDS_PER_DEVICE=32 | 648 | CONFIG_AIC79XX_CMDS_PER_DEVICE=32 |
642 | CONFIG_AIC79XX_RESET_DELAY_MS=4000 | 649 | CONFIG_AIC79XX_RESET_DELAY_MS=4000 |
643 | # CONFIG_AIC79XX_ENABLE_RD_STRM is not set | ||
644 | # CONFIG_AIC79XX_DEBUG_ENABLE is not set | 650 | # CONFIG_AIC79XX_DEBUG_ENABLE is not set |
645 | CONFIG_AIC79XX_DEBUG_MASK=0 | 651 | CONFIG_AIC79XX_DEBUG_MASK=0 |
646 | # CONFIG_AIC79XX_REG_PRETTY_PRINT is not set | 652 | # CONFIG_AIC79XX_REG_PRETTY_PRINT is not set |
@@ -662,7 +668,6 @@ CONFIG_AIC79XX_DEBUG_MASK=0 | |||
662 | # CONFIG_SCSI_INIA100 is not set | 668 | # CONFIG_SCSI_INIA100 is not set |
663 | # CONFIG_SCSI_STEX is not set | 669 | # CONFIG_SCSI_STEX is not set |
664 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 670 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
665 | # CONFIG_SCSI_IPR is not set | ||
666 | # CONFIG_SCSI_QLOGIC_1280 is not set | 671 | # CONFIG_SCSI_QLOGIC_1280 is not set |
667 | # CONFIG_SCSI_QLA_FC is not set | 672 | # CONFIG_SCSI_QLA_FC is not set |
668 | # CONFIG_SCSI_QLA_ISCSI is not set | 673 | # CONFIG_SCSI_QLA_ISCSI is not set |
@@ -673,79 +678,12 @@ CONFIG_AIC79XX_DEBUG_MASK=0 | |||
673 | # CONFIG_SCSI_DEBUG is not set | 678 | # CONFIG_SCSI_DEBUG is not set |
674 | # CONFIG_SCSI_ESP_CORE is not set | 679 | # CONFIG_SCSI_ESP_CORE is not set |
675 | # CONFIG_SCSI_SRP is not set | 680 | # CONFIG_SCSI_SRP is not set |
676 | 681 | # CONFIG_ATA is not set | |
677 | # | ||
678 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
679 | # | ||
680 | CONFIG_ATA=y | ||
681 | # CONFIG_ATA_NONSTANDARD is not set | ||
682 | CONFIG_SATA_AHCI=y | ||
683 | CONFIG_SATA_SVW=y | ||
684 | CONFIG_ATA_PIIX=y | ||
685 | # CONFIG_SATA_MV is not set | ||
686 | CONFIG_SATA_NV=y | ||
687 | # CONFIG_PDC_ADMA is not set | ||
688 | # CONFIG_SATA_QSTOR is not set | ||
689 | # CONFIG_SATA_PROMISE is not set | ||
690 | # CONFIG_SATA_SX4 is not set | ||
691 | CONFIG_SATA_SIL=y | ||
692 | # CONFIG_SATA_SIL24 is not set | ||
693 | # CONFIG_SATA_SIS is not set | ||
694 | # CONFIG_SATA_ULI is not set | ||
695 | CONFIG_SATA_VIA=y | ||
696 | # CONFIG_SATA_VITESSE is not set | ||
697 | # CONFIG_SATA_INIC162X is not set | ||
698 | CONFIG_SATA_ACPI=y | ||
699 | # CONFIG_PATA_ALI is not set | ||
700 | # CONFIG_PATA_AMD is not set | ||
701 | # CONFIG_PATA_ARTOP is not set | ||
702 | # CONFIG_PATA_ATIIXP is not set | ||
703 | # CONFIG_PATA_CMD640_PCI is not set | ||
704 | # CONFIG_PATA_CMD64X is not set | ||
705 | # CONFIG_PATA_CS5520 is not set | ||
706 | # CONFIG_PATA_CS5530 is not set | ||
707 | # CONFIG_PATA_CS5535 is not set | ||
708 | # CONFIG_PATA_CYPRESS is not set | ||
709 | # CONFIG_PATA_EFAR is not set | ||
710 | # CONFIG_ATA_GENERIC is not set | ||
711 | # CONFIG_PATA_HPT366 is not set | ||
712 | # CONFIG_PATA_HPT37X is not set | ||
713 | # CONFIG_PATA_HPT3X2N is not set | ||
714 | # CONFIG_PATA_HPT3X3 is not set | ||
715 | # CONFIG_PATA_IT821X is not set | ||
716 | # CONFIG_PATA_IT8213 is not set | ||
717 | # CONFIG_PATA_JMICRON is not set | ||
718 | # CONFIG_PATA_TRIFLEX is not set | ||
719 | # CONFIG_PATA_MARVELL is not set | ||
720 | # CONFIG_PATA_MPIIX is not set | ||
721 | # CONFIG_PATA_OLDPIIX is not set | ||
722 | # CONFIG_PATA_NETCELL is not set | ||
723 | # CONFIG_PATA_NS87410 is not set | ||
724 | # CONFIG_PATA_OPTI is not set | ||
725 | # CONFIG_PATA_OPTIDMA is not set | ||
726 | # CONFIG_PATA_PDC_OLD is not set | ||
727 | # CONFIG_PATA_RADISYS is not set | ||
728 | # CONFIG_PATA_RZ1000 is not set | ||
729 | # CONFIG_PATA_SC1200 is not set | ||
730 | # CONFIG_PATA_SERVERWORKS is not set | ||
731 | # CONFIG_PATA_PDC2027X is not set | ||
732 | # CONFIG_PATA_SIL680 is not set | ||
733 | # CONFIG_PATA_SIS is not set | ||
734 | # CONFIG_PATA_VIA is not set | ||
735 | # CONFIG_PATA_WINBOND is not set | ||
736 | 682 | ||
737 | # | 683 | # |
738 | # Multi-device support (RAID and LVM) | 684 | # Multi-device support (RAID and LVM) |
739 | # | 685 | # |
740 | CONFIG_MD=y | 686 | # CONFIG_MD is not set |
741 | # CONFIG_BLK_DEV_MD is not set | ||
742 | CONFIG_BLK_DEV_DM=y | ||
743 | # CONFIG_DM_DEBUG is not set | ||
744 | # CONFIG_DM_CRYPT is not set | ||
745 | # CONFIG_DM_SNAPSHOT is not set | ||
746 | # CONFIG_DM_MIRROR is not set | ||
747 | # CONFIG_DM_ZERO is not set | ||
748 | # CONFIG_DM_MULTIPATH is not set | ||
749 | 687 | ||
750 | # | 688 | # |
751 | # Fusion MPT device support | 689 | # Fusion MPT device support |
@@ -760,6 +698,7 @@ CONFIG_FUSION_MAX_SGE=128 | |||
760 | # | 698 | # |
761 | # IEEE 1394 (FireWire) support | 699 | # IEEE 1394 (FireWire) support |
762 | # | 700 | # |
701 | # CONFIG_FIREWIRE is not set | ||
763 | CONFIG_IEEE1394=y | 702 | CONFIG_IEEE1394=y |
764 | 703 | ||
765 | # | 704 | # |
@@ -790,11 +729,7 @@ CONFIG_IEEE1394_RAWIO=y | |||
790 | # I2O device support | 729 | # I2O device support |
791 | # | 730 | # |
792 | # CONFIG_I2O is not set | 731 | # CONFIG_I2O is not set |
793 | 732 | # CONFIG_MACINTOSH_DRIVERS is not set | |
794 | # | ||
795 | # Macintosh device drivers | ||
796 | # | ||
797 | # CONFIG_MAC_EMUMOUSEBTN is not set | ||
798 | 733 | ||
799 | # | 734 | # |
800 | # Network device support | 735 | # Network device support |
@@ -810,10 +745,6 @@ CONFIG_NETDEVICES=y | |||
810 | # ARCnet devices | 745 | # ARCnet devices |
811 | # | 746 | # |
812 | # CONFIG_ARCNET is not set | 747 | # CONFIG_ARCNET is not set |
813 | |||
814 | # | ||
815 | # PHY device support | ||
816 | # | ||
817 | # CONFIG_PHYLIB is not set | 748 | # CONFIG_PHYLIB is not set |
818 | 749 | ||
819 | # | 750 | # |
@@ -824,9 +755,7 @@ CONFIG_MII=y | |||
824 | # CONFIG_HAPPYMEAL is not set | 755 | # CONFIG_HAPPYMEAL is not set |
825 | # CONFIG_SUNGEM is not set | 756 | # CONFIG_SUNGEM is not set |
826 | # CONFIG_CASSINI is not set | 757 | # CONFIG_CASSINI is not set |
827 | CONFIG_NET_VENDOR_3COM=y | 758 | # CONFIG_NET_VENDOR_3COM is not set |
828 | CONFIG_VORTEX=y | ||
829 | # CONFIG_TYPHOON is not set | ||
830 | 759 | ||
831 | # | 760 | # |
832 | # Tulip family network device support | 761 | # Tulip family network device support |
@@ -867,10 +796,7 @@ CONFIG_8139TOO=y | |||
867 | # CONFIG_TLAN is not set | 796 | # CONFIG_TLAN is not set |
868 | # CONFIG_VIA_RHINE is not set | 797 | # CONFIG_VIA_RHINE is not set |
869 | # CONFIG_SC92031 is not set | 798 | # CONFIG_SC92031 is not set |
870 | 799 | CONFIG_NETDEV_1000=y | |
871 | # | ||
872 | # Ethernet (1000 Mbit) | ||
873 | # | ||
874 | # CONFIG_ACENIC is not set | 800 | # CONFIG_ACENIC is not set |
875 | # CONFIG_DL2K is not set | 801 | # CONFIG_DL2K is not set |
876 | CONFIG_E1000=y | 802 | CONFIG_E1000=y |
@@ -890,16 +816,14 @@ CONFIG_TIGON3=y | |||
890 | CONFIG_BNX2=y | 816 | CONFIG_BNX2=y |
891 | # CONFIG_QLA3XXX is not set | 817 | # CONFIG_QLA3XXX is not set |
892 | # CONFIG_ATL1 is not set | 818 | # CONFIG_ATL1 is not set |
893 | 819 | CONFIG_NETDEV_10000=y | |
894 | # | ||
895 | # Ethernet (10000 Mbit) | ||
896 | # | ||
897 | # CONFIG_CHELSIO_T1 is not set | 820 | # CONFIG_CHELSIO_T1 is not set |
898 | # CONFIG_CHELSIO_T3 is not set | 821 | # CONFIG_CHELSIO_T3 is not set |
899 | # CONFIG_IXGB is not set | 822 | # CONFIG_IXGB is not set |
900 | # CONFIG_S2IO is not set | 823 | # CONFIG_S2IO is not set |
901 | # CONFIG_MYRI10GE is not set | 824 | # CONFIG_MYRI10GE is not set |
902 | # CONFIG_NETXEN_NIC is not set | 825 | # CONFIG_NETXEN_NIC is not set |
826 | # CONFIG_MLX4_CORE is not set | ||
903 | 827 | ||
904 | # | 828 | # |
905 | # Token Ring devices | 829 | # Token Ring devices |
@@ -913,8 +837,14 @@ CONFIG_BNX2=y | |||
913 | # CONFIG_WLAN_80211 is not set | 837 | # CONFIG_WLAN_80211 is not set |
914 | 838 | ||
915 | # | 839 | # |
916 | # Wan interfaces | 840 | # USB Network Adapters |
917 | # | 841 | # |
842 | # CONFIG_USB_CATC is not set | ||
843 | # CONFIG_USB_KAWETH is not set | ||
844 | # CONFIG_USB_PEGASUS is not set | ||
845 | # CONFIG_USB_RTL8150 is not set | ||
846 | # CONFIG_USB_USBNET_MII is not set | ||
847 | # CONFIG_USB_USBNET is not set | ||
918 | # CONFIG_WAN is not set | 848 | # CONFIG_WAN is not set |
919 | # CONFIG_FDDI is not set | 849 | # CONFIG_FDDI is not set |
920 | # CONFIG_HIPPI is not set | 850 | # CONFIG_HIPPI is not set |
@@ -967,9 +897,17 @@ CONFIG_KEYBOARD_ATKBD=y | |||
967 | # CONFIG_KEYBOARD_STOWAWAY is not set | 897 | # CONFIG_KEYBOARD_STOWAWAY is not set |
968 | CONFIG_INPUT_MOUSE=y | 898 | CONFIG_INPUT_MOUSE=y |
969 | CONFIG_MOUSE_PS2=y | 899 | CONFIG_MOUSE_PS2=y |
900 | CONFIG_MOUSE_PS2_ALPS=y | ||
901 | CONFIG_MOUSE_PS2_LOGIPS2PP=y | ||
902 | CONFIG_MOUSE_PS2_SYNAPTICS=y | ||
903 | CONFIG_MOUSE_PS2_LIFEBOOK=y | ||
904 | CONFIG_MOUSE_PS2_TRACKPOINT=y | ||
905 | # CONFIG_MOUSE_PS2_TOUCHKIT is not set | ||
970 | # CONFIG_MOUSE_SERIAL is not set | 906 | # CONFIG_MOUSE_SERIAL is not set |
907 | # CONFIG_MOUSE_APPLETOUCH is not set | ||
971 | # CONFIG_MOUSE_VSXXXAA is not set | 908 | # CONFIG_MOUSE_VSXXXAA is not set |
972 | # CONFIG_INPUT_JOYSTICK is not set | 909 | # CONFIG_INPUT_JOYSTICK is not set |
910 | # CONFIG_INPUT_TABLET is not set | ||
973 | # CONFIG_INPUT_TOUCHSCREEN is not set | 911 | # CONFIG_INPUT_TOUCHSCREEN is not set |
974 | # CONFIG_INPUT_MISC is not set | 912 | # CONFIG_INPUT_MISC is not set |
975 | 913 | ||
@@ -1019,10 +957,6 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
1019 | # IPMI | 957 | # IPMI |
1020 | # | 958 | # |
1021 | # CONFIG_IPMI_HANDLER is not set | 959 | # CONFIG_IPMI_HANDLER is not set |
1022 | |||
1023 | # | ||
1024 | # Watchdog Cards | ||
1025 | # | ||
1026 | # CONFIG_WATCHDOG is not set | 960 | # CONFIG_WATCHDOG is not set |
1027 | CONFIG_HW_RANDOM=y | 961 | CONFIG_HW_RANDOM=y |
1028 | CONFIG_HW_RANDOM_INTEL=y | 962 | CONFIG_HW_RANDOM_INTEL=y |
@@ -1031,7 +965,6 @@ CONFIG_HW_RANDOM_GEODE=y | |||
1031 | CONFIG_HW_RANDOM_VIA=y | 965 | CONFIG_HW_RANDOM_VIA=y |
1032 | # CONFIG_NVRAM is not set | 966 | # CONFIG_NVRAM is not set |
1033 | CONFIG_RTC=y | 967 | CONFIG_RTC=y |
1034 | # CONFIG_DTLK is not set | ||
1035 | # CONFIG_R3964 is not set | 968 | # CONFIG_R3964 is not set |
1036 | # CONFIG_APPLICOM is not set | 969 | # CONFIG_APPLICOM is not set |
1037 | # CONFIG_SONYPI is not set | 970 | # CONFIG_SONYPI is not set |
@@ -1056,17 +989,14 @@ CONFIG_MAX_RAW_DEVS=256 | |||
1056 | CONFIG_HPET=y | 989 | CONFIG_HPET=y |
1057 | # CONFIG_HPET_RTC_IRQ is not set | 990 | # CONFIG_HPET_RTC_IRQ is not set |
1058 | CONFIG_HPET_MMAP=y | 991 | CONFIG_HPET_MMAP=y |
1059 | # CONFIG_HANGCHECK_TIMER is not set | 992 | CONFIG_HANGCHECK_TIMER=y |
1060 | 993 | ||
1061 | # | 994 | # |
1062 | # TPM devices | 995 | # TPM devices |
1063 | # | 996 | # |
1064 | # CONFIG_TCG_TPM is not set | 997 | # CONFIG_TCG_TPM is not set |
1065 | # CONFIG_TELCLOCK is not set | 998 | # CONFIG_TELCLOCK is not set |
1066 | 999 | CONFIG_DEVPORT=y | |
1067 | # | ||
1068 | # I2C support | ||
1069 | # | ||
1070 | # CONFIG_I2C is not set | 1000 | # CONFIG_I2C is not set |
1071 | 1001 | ||
1072 | # | 1002 | # |
@@ -1079,12 +1009,7 @@ CONFIG_HPET_MMAP=y | |||
1079 | # Dallas's 1-wire bus | 1009 | # Dallas's 1-wire bus |
1080 | # | 1010 | # |
1081 | # CONFIG_W1 is not set | 1011 | # CONFIG_W1 is not set |
1082 | |||
1083 | # | ||
1084 | # Hardware Monitoring support | ||
1085 | # | ||
1086 | # CONFIG_HWMON is not set | 1012 | # CONFIG_HWMON is not set |
1087 | # CONFIG_HWMON_VID is not set | ||
1088 | 1013 | ||
1089 | # | 1014 | # |
1090 | # Multifunction device drivers | 1015 | # Multifunction device drivers |
@@ -1095,17 +1020,20 @@ CONFIG_HPET_MMAP=y | |||
1095 | # Multimedia devices | 1020 | # Multimedia devices |
1096 | # | 1021 | # |
1097 | # CONFIG_VIDEO_DEV is not set | 1022 | # CONFIG_VIDEO_DEV is not set |
1098 | 1023 | # CONFIG_DVB_CORE is not set | |
1099 | # | 1024 | CONFIG_DAB=y |
1100 | # Digital Video Broadcasting Devices | ||
1101 | # | ||
1102 | # CONFIG_DVB is not set | ||
1103 | # CONFIG_USB_DABUSB is not set | 1025 | # CONFIG_USB_DABUSB is not set |
1104 | 1026 | ||
1105 | # | 1027 | # |
1106 | # Graphics support | 1028 | # Graphics support |
1107 | # | 1029 | # |
1108 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 1030 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
1031 | |||
1032 | # | ||
1033 | # Display device support | ||
1034 | # | ||
1035 | # CONFIG_DISPLAY_SUPPORT is not set | ||
1036 | # CONFIG_VGASTATE is not set | ||
1109 | # CONFIG_FB is not set | 1037 | # CONFIG_FB is not set |
1110 | 1038 | ||
1111 | # | 1039 | # |
@@ -1114,7 +1042,7 @@ CONFIG_HPET_MMAP=y | |||
1114 | CONFIG_VGA_CONSOLE=y | 1042 | CONFIG_VGA_CONSOLE=y |
1115 | CONFIG_VGACON_SOFT_SCROLLBACK=y | 1043 | CONFIG_VGACON_SOFT_SCROLLBACK=y |
1116 | CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=128 | 1044 | CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=128 |
1117 | CONFIG_VIDEO_SELECT=y | 1045 | # CONFIG_VIDEO_SELECT is not set |
1118 | CONFIG_DUMMY_CONSOLE=y | 1046 | CONFIG_DUMMY_CONSOLE=y |
1119 | 1047 | ||
1120 | # | 1048 | # |
@@ -1131,14 +1059,10 @@ CONFIG_SOUND=y | |||
1131 | # Open Sound System | 1059 | # Open Sound System |
1132 | # | 1060 | # |
1133 | CONFIG_SOUND_PRIME=y | 1061 | CONFIG_SOUND_PRIME=y |
1134 | CONFIG_OBSOLETE_OSS=y | 1062 | # CONFIG_OSS_OBSOLETE is not set |
1135 | # CONFIG_SOUND_BT878 is not set | ||
1136 | # CONFIG_SOUND_ES1371 is not set | ||
1137 | CONFIG_SOUND_ICH=y | ||
1138 | # CONFIG_SOUND_TRIDENT is not set | 1063 | # CONFIG_SOUND_TRIDENT is not set |
1139 | # CONFIG_SOUND_MSNDCLAS is not set | 1064 | # CONFIG_SOUND_MSNDCLAS is not set |
1140 | # CONFIG_SOUND_MSNDPIN is not set | 1065 | # CONFIG_SOUND_MSNDPIN is not set |
1141 | # CONFIG_SOUND_VIA82CXXX is not set | ||
1142 | # CONFIG_SOUND_OSS is not set | 1066 | # CONFIG_SOUND_OSS is not set |
1143 | 1067 | ||
1144 | # | 1068 | # |
@@ -1217,37 +1141,10 @@ CONFIG_USB_STORAGE=y | |||
1217 | # CONFIG_USB_LIBUSUAL is not set | 1141 | # CONFIG_USB_LIBUSUAL is not set |
1218 | 1142 | ||
1219 | # | 1143 | # |
1220 | # USB Input Devices | ||
1221 | # | ||
1222 | # CONFIG_USB_AIPTEK is not set | ||
1223 | # CONFIG_USB_WACOM is not set | ||
1224 | # CONFIG_USB_ACECAD is not set | ||
1225 | # CONFIG_USB_KBTAB is not set | ||
1226 | # CONFIG_USB_POWERMATE is not set | ||
1227 | # CONFIG_USB_TOUCHSCREEN is not set | ||
1228 | # CONFIG_USB_YEALINK is not set | ||
1229 | # CONFIG_USB_XPAD is not set | ||
1230 | # CONFIG_USB_ATI_REMOTE is not set | ||
1231 | # CONFIG_USB_ATI_REMOTE2 is not set | ||
1232 | # CONFIG_USB_KEYSPAN_REMOTE is not set | ||
1233 | # CONFIG_USB_APPLETOUCH is not set | ||
1234 | # CONFIG_USB_GTCO is not set | ||
1235 | |||
1236 | # | ||
1237 | # USB Imaging devices | 1144 | # USB Imaging devices |
1238 | # | 1145 | # |
1239 | # CONFIG_USB_MDC800 is not set | 1146 | # CONFIG_USB_MDC800 is not set |
1240 | # CONFIG_USB_MICROTEK is not set | 1147 | # CONFIG_USB_MICROTEK is not set |
1241 | |||
1242 | # | ||
1243 | # USB Network Adapters | ||
1244 | # | ||
1245 | # CONFIG_USB_CATC is not set | ||
1246 | # CONFIG_USB_KAWETH is not set | ||
1247 | # CONFIG_USB_PEGASUS is not set | ||
1248 | # CONFIG_USB_RTL8150 is not set | ||
1249 | # CONFIG_USB_USBNET_MII is not set | ||
1250 | # CONFIG_USB_USBNET is not set | ||
1251 | CONFIG_USB_MON=y | 1148 | CONFIG_USB_MON=y |
1252 | 1149 | ||
1253 | # | 1150 | # |
@@ -1291,10 +1188,6 @@ CONFIG_USB_MON=y | |||
1291 | # USB Gadget Support | 1188 | # USB Gadget Support |
1292 | # | 1189 | # |
1293 | # CONFIG_USB_GADGET is not set | 1190 | # CONFIG_USB_GADGET is not set |
1294 | |||
1295 | # | ||
1296 | # MMC/SD Card support | ||
1297 | # | ||
1298 | # CONFIG_MMC is not set | 1191 | # CONFIG_MMC is not set |
1299 | 1192 | ||
1300 | # | 1193 | # |
@@ -1339,10 +1232,6 @@ CONFIG_USB_MON=y | |||
1339 | # | 1232 | # |
1340 | 1233 | ||
1341 | # | 1234 | # |
1342 | # Auxiliary Display support | ||
1343 | # | ||
1344 | |||
1345 | # | ||
1346 | # Virtualization | 1235 | # Virtualization |
1347 | # | 1236 | # |
1348 | # CONFIG_KVM is not set | 1237 | # CONFIG_KVM is not set |
@@ -1383,7 +1272,6 @@ CONFIG_DNOTIFY=y | |||
1383 | # CONFIG_AUTOFS_FS is not set | 1272 | # CONFIG_AUTOFS_FS is not set |
1384 | CONFIG_AUTOFS4_FS=y | 1273 | CONFIG_AUTOFS4_FS=y |
1385 | # CONFIG_FUSE_FS is not set | 1274 | # CONFIG_FUSE_FS is not set |
1386 | CONFIG_GENERIC_ACL=y | ||
1387 | 1275 | ||
1388 | # | 1276 | # |
1389 | # CD-ROM/DVD Filesystems | 1277 | # CD-ROM/DVD Filesystems |
@@ -1411,7 +1299,7 @@ CONFIG_PROC_KCORE=y | |||
1411 | CONFIG_PROC_SYSCTL=y | 1299 | CONFIG_PROC_SYSCTL=y |
1412 | CONFIG_SYSFS=y | 1300 | CONFIG_SYSFS=y |
1413 | CONFIG_TMPFS=y | 1301 | CONFIG_TMPFS=y |
1414 | CONFIG_TMPFS_POSIX_ACL=y | 1302 | # CONFIG_TMPFS_POSIX_ACL is not set |
1415 | CONFIG_HUGETLBFS=y | 1303 | CONFIG_HUGETLBFS=y |
1416 | CONFIG_HUGETLB_PAGE=y | 1304 | CONFIG_HUGETLB_PAGE=y |
1417 | CONFIG_RAMFS=y | 1305 | CONFIG_RAMFS=y |
@@ -1453,6 +1341,7 @@ CONFIG_LOCKD_V4=y | |||
1453 | CONFIG_EXPORTFS=y | 1341 | CONFIG_EXPORTFS=y |
1454 | CONFIG_NFS_COMMON=y | 1342 | CONFIG_NFS_COMMON=y |
1455 | CONFIG_SUNRPC=y | 1343 | CONFIG_SUNRPC=y |
1344 | # CONFIG_SUNRPC_BIND34 is not set | ||
1456 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 1345 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
1457 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1346 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1458 | # CONFIG_SMB_FS is not set | 1347 | # CONFIG_SMB_FS is not set |
@@ -1529,17 +1418,16 @@ CONFIG_KPROBES=y | |||
1529 | # | 1418 | # |
1530 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 1419 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
1531 | # CONFIG_PRINTK_TIME is not set | 1420 | # CONFIG_PRINTK_TIME is not set |
1532 | # CONFIG_ENABLE_MUST_CHECK is not set | 1421 | CONFIG_ENABLE_MUST_CHECK=y |
1533 | CONFIG_MAGIC_SYSRQ=y | 1422 | CONFIG_MAGIC_SYSRQ=y |
1534 | CONFIG_UNUSED_SYMBOLS=y | 1423 | CONFIG_UNUSED_SYMBOLS=y |
1535 | # CONFIG_DEBUG_FS is not set | 1424 | # CONFIG_DEBUG_FS is not set |
1536 | # CONFIG_HEADERS_CHECK is not set | 1425 | # CONFIG_HEADERS_CHECK is not set |
1537 | CONFIG_DEBUG_KERNEL=y | 1426 | CONFIG_DEBUG_KERNEL=y |
1538 | # CONFIG_DEBUG_SHIRQ is not set | 1427 | # CONFIG_DEBUG_SHIRQ is not set |
1539 | CONFIG_LOG_BUF_SHIFT=18 | ||
1540 | CONFIG_DETECT_SOFTLOCKUP=y | 1428 | CONFIG_DETECT_SOFTLOCKUP=y |
1541 | # CONFIG_SCHEDSTATS is not set | 1429 | # CONFIG_SCHEDSTATS is not set |
1542 | CONFIG_TIMER_STATS=y | 1430 | # CONFIG_TIMER_STATS is not set |
1543 | # CONFIG_DEBUG_SLAB is not set | 1431 | # CONFIG_DEBUG_SLAB is not set |
1544 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1432 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1545 | # CONFIG_RT_MUTEX_TESTER is not set | 1433 | # CONFIG_RT_MUTEX_TESTER is not set |
@@ -1556,6 +1444,7 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
1556 | # CONFIG_DEBUG_VM is not set | 1444 | # CONFIG_DEBUG_VM is not set |
1557 | # CONFIG_DEBUG_LIST is not set | 1445 | # CONFIG_DEBUG_LIST is not set |
1558 | # CONFIG_FRAME_POINTER is not set | 1446 | # CONFIG_FRAME_POINTER is not set |
1447 | # CONFIG_UNWIND_INFO is not set | ||
1559 | # CONFIG_FORCED_INLINING is not set | 1448 | # CONFIG_FORCED_INLINING is not set |
1560 | # CONFIG_RCU_TORTURE_TEST is not set | 1449 | # CONFIG_RCU_TORTURE_TEST is not set |
1561 | # CONFIG_LKDTM is not set | 1450 | # CONFIG_LKDTM is not set |
@@ -1586,12 +1475,14 @@ CONFIG_DOUBLEFAULT=y | |||
1586 | CONFIG_BITREVERSE=y | 1475 | CONFIG_BITREVERSE=y |
1587 | # CONFIG_CRC_CCITT is not set | 1476 | # CONFIG_CRC_CCITT is not set |
1588 | # CONFIG_CRC16 is not set | 1477 | # CONFIG_CRC16 is not set |
1478 | # CONFIG_CRC_ITU_T is not set | ||
1589 | CONFIG_CRC32=y | 1479 | CONFIG_CRC32=y |
1590 | # CONFIG_LIBCRC32C is not set | 1480 | # CONFIG_LIBCRC32C is not set |
1591 | CONFIG_ZLIB_INFLATE=y | 1481 | CONFIG_ZLIB_INFLATE=y |
1592 | CONFIG_PLIST=y | 1482 | CONFIG_PLIST=y |
1593 | CONFIG_HAS_IOMEM=y | 1483 | CONFIG_HAS_IOMEM=y |
1594 | CONFIG_HAS_IOPORT=y | 1484 | CONFIG_HAS_IOPORT=y |
1485 | CONFIG_HAS_DMA=y | ||
1595 | CONFIG_GENERIC_HARDIRQS=y | 1486 | CONFIG_GENERIC_HARDIRQS=y |
1596 | CONFIG_GENERIC_IRQ_PROBE=y | 1487 | CONFIG_GENERIC_IRQ_PROBE=y |
1597 | CONFIG_GENERIC_PENDING_IRQ=y | 1488 | CONFIG_GENERIC_PENDING_IRQ=y |
diff --git a/arch/i386/kernel/cpu/amd.c b/arch/i386/kernel/cpu/amd.c index 4fec702afd7e..6f47eeeb93ea 100644 --- a/arch/i386/kernel/cpu/amd.c +++ b/arch/i386/kernel/cpu/amd.c | |||
@@ -280,6 +280,10 @@ static void __cpuinit init_amd(struct cpuinfo_x86 *c) | |||
280 | 280 | ||
281 | if (c->x86 == 0x10 && !force_mwait) | 281 | if (c->x86 == 0x10 && !force_mwait) |
282 | clear_bit(X86_FEATURE_MWAIT, c->x86_capability); | 282 | clear_bit(X86_FEATURE_MWAIT, c->x86_capability); |
283 | |||
284 | /* K6s reports MCEs but don't actually have all the MSRs */ | ||
285 | if (c->x86 < 6) | ||
286 | clear_bit(X86_FEATURE_MCE, c->x86_capability); | ||
283 | } | 287 | } |
284 | 288 | ||
285 | static unsigned int __cpuinit amd_size_cache(struct cpuinfo_x86 * c, unsigned int size) | 289 | static unsigned int __cpuinit amd_size_cache(struct cpuinfo_x86 * c, unsigned int size) |
diff --git a/arch/i386/kernel/cpu/cpufreq/speedstep-ich.c b/arch/i386/kernel/cpu/cpufreq/speedstep-ich.c index b425cd3d1838..698f980eb443 100644 --- a/arch/i386/kernel/cpu/cpufreq/speedstep-ich.c +++ b/arch/i386/kernel/cpu/cpufreq/speedstep-ich.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include <linux/cpufreq.h> | 24 | #include <linux/cpufreq.h> |
25 | #include <linux/pci.h> | 25 | #include <linux/pci.h> |
26 | #include <linux/slab.h> | 26 | #include <linux/slab.h> |
27 | #include <linux/sched.h> | ||
27 | 28 | ||
28 | #include "speedstep-lib.h" | 29 | #include "speedstep-lib.h" |
29 | 30 | ||
diff --git a/arch/i386/kernel/cpu/cyrix.c b/arch/i386/kernel/cpu/cyrix.c index 0b8411a864fb..e88d2fba156b 100644 --- a/arch/i386/kernel/cpu/cyrix.c +++ b/arch/i386/kernel/cpu/cyrix.c | |||
@@ -7,6 +7,7 @@ | |||
7 | #include <asm/processor.h> | 7 | #include <asm/processor.h> |
8 | #include <asm/timer.h> | 8 | #include <asm/timer.h> |
9 | #include <asm/pci-direct.h> | 9 | #include <asm/pci-direct.h> |
10 | #include <asm/tsc.h> | ||
10 | 11 | ||
11 | #include "cpu.h" | 12 | #include "cpu.h" |
12 | 13 | ||
diff --git a/arch/i386/kernel/cpu/mcheck/k7.c b/arch/i386/kernel/cpu/mcheck/k7.c index f9fa4142551e..eef63e3630c2 100644 --- a/arch/i386/kernel/cpu/mcheck/k7.c +++ b/arch/i386/kernel/cpu/mcheck/k7.c | |||
@@ -72,12 +72,12 @@ void amd_mcheck_init(struct cpuinfo_x86 *c) | |||
72 | u32 l, h; | 72 | u32 l, h; |
73 | int i; | 73 | int i; |
74 | 74 | ||
75 | machine_check_vector = k7_machine_check; | ||
76 | wmb(); | ||
77 | |||
78 | if (!cpu_has(c, X86_FEATURE_MCE)) | 75 | if (!cpu_has(c, X86_FEATURE_MCE)) |
79 | return; | 76 | return; |
80 | 77 | ||
78 | machine_check_vector = k7_machine_check; | ||
79 | wmb(); | ||
80 | |||
81 | printk (KERN_INFO "Intel machine check architecture supported.\n"); | 81 | printk (KERN_INFO "Intel machine check architecture supported.\n"); |
82 | rdmsr (MSR_IA32_MCG_CAP, l, h); | 82 | rdmsr (MSR_IA32_MCG_CAP, l, h); |
83 | if (l & (1<<8)) /* Control register present ? */ | 83 | if (l & (1<<8)) /* Control register present ? */ |
diff --git a/arch/i386/kernel/cpu/mtrr/cyrix.c b/arch/i386/kernel/cpu/mtrr/cyrix.c index 0737a596db43..9edf5625584f 100644 --- a/arch/i386/kernel/cpu/mtrr/cyrix.c +++ b/arch/i386/kernel/cpu/mtrr/cyrix.c | |||
@@ -136,7 +136,7 @@ static void prepare_set(void) | |||
136 | /* Save value of CR4 and clear Page Global Enable (bit 7) */ | 136 | /* Save value of CR4 and clear Page Global Enable (bit 7) */ |
137 | if ( cpu_has_pge ) { | 137 | if ( cpu_has_pge ) { |
138 | cr4 = read_cr4(); | 138 | cr4 = read_cr4(); |
139 | write_cr4(cr4 & (unsigned char) ~(1 << 7)); | 139 | write_cr4(cr4 & ~X86_CR4_PGE); |
140 | } | 140 | } |
141 | 141 | ||
142 | /* Disable and flush caches. Note that wbinvd flushes the TLBs as | 142 | /* Disable and flush caches. Note that wbinvd flushes the TLBs as |
diff --git a/arch/i386/kernel/cpu/mtrr/generic.c b/arch/i386/kernel/cpu/mtrr/generic.c index 5367e32e0403..c4ebb5126ef7 100644 --- a/arch/i386/kernel/cpu/mtrr/generic.c +++ b/arch/i386/kernel/cpu/mtrr/generic.c | |||
@@ -78,7 +78,7 @@ static void __cpuinit print_fixed(unsigned base, unsigned step, const mtrr_type* | |||
78 | } | 78 | } |
79 | 79 | ||
80 | /* Grab all of the MTRR state for this CPU into *state */ | 80 | /* Grab all of the MTRR state for this CPU into *state */ |
81 | void __init get_mtrr_state(void) | 81 | void get_mtrr_state(void) |
82 | { | 82 | { |
83 | unsigned int i; | 83 | unsigned int i; |
84 | struct mtrr_var_range *vrs; | 84 | struct mtrr_var_range *vrs; |
diff --git a/arch/i386/kernel/cpu/mtrr/main.c b/arch/i386/kernel/cpu/mtrr/main.c index 02a2f39e5e0a..1cf466df330a 100644 --- a/arch/i386/kernel/cpu/mtrr/main.c +++ b/arch/i386/kernel/cpu/mtrr/main.c | |||
@@ -639,7 +639,7 @@ static struct sysdev_driver mtrr_sysdev_driver = { | |||
639 | * initialized (i.e. before smp_init()). | 639 | * initialized (i.e. before smp_init()). |
640 | * | 640 | * |
641 | */ | 641 | */ |
642 | void __init mtrr_bp_init(void) | 642 | void mtrr_bp_init(void) |
643 | { | 643 | { |
644 | init_ifs(); | 644 | init_ifs(); |
645 | 645 | ||
diff --git a/arch/i386/kernel/cpu/mtrr/state.c b/arch/i386/kernel/cpu/mtrr/state.c index f62ecd15811a..7b39a2f954d9 100644 --- a/arch/i386/kernel/cpu/mtrr/state.c +++ b/arch/i386/kernel/cpu/mtrr/state.c | |||
@@ -19,7 +19,7 @@ void set_mtrr_prepare_save(struct set_mtrr_context *ctxt) | |||
19 | /* Save value of CR4 and clear Page Global Enable (bit 7) */ | 19 | /* Save value of CR4 and clear Page Global Enable (bit 7) */ |
20 | if ( cpu_has_pge ) { | 20 | if ( cpu_has_pge ) { |
21 | ctxt->cr4val = read_cr4(); | 21 | ctxt->cr4val = read_cr4(); |
22 | write_cr4(ctxt->cr4val & (unsigned char) ~(1 << 7)); | 22 | write_cr4(ctxt->cr4val & ~X86_CR4_PGE); |
23 | } | 23 | } |
24 | 24 | ||
25 | /* Disable and flush caches. Note that wbinvd flushes the TLBs as | 25 | /* Disable and flush caches. Note that wbinvd flushes the TLBs as |
diff --git a/arch/i386/kernel/smp.c b/arch/i386/kernel/smp.c index c9a7c9835aba..6299c080f6e2 100644 --- a/arch/i386/kernel/smp.c +++ b/arch/i386/kernel/smp.c | |||
@@ -421,7 +421,7 @@ void flush_tlb_mm (struct mm_struct * mm) | |||
421 | } | 421 | } |
422 | if (!cpus_empty(cpu_mask)) | 422 | if (!cpus_empty(cpu_mask)) |
423 | flush_tlb_others(cpu_mask, mm, TLB_FLUSH_ALL); | 423 | flush_tlb_others(cpu_mask, mm, TLB_FLUSH_ALL); |
424 | check_pgt_cache(); | 424 | |
425 | preempt_enable(); | 425 | preempt_enable(); |
426 | } | 426 | } |
427 | 427 | ||
diff --git a/arch/i386/kernel/verify_cpu.S b/arch/i386/kernel/verify_cpu.S index b2a9d80b6421..f1d1eacf4ab0 100644 --- a/arch/i386/kernel/verify_cpu.S +++ b/arch/i386/kernel/verify_cpu.S | |||
@@ -2,6 +2,7 @@ | |||
2 | This runs in 16bit mode so that the caller can still use the BIOS | 2 | This runs in 16bit mode so that the caller can still use the BIOS |
3 | to output errors on the screen */ | 3 | to output errors on the screen */ |
4 | #include <asm/cpufeature.h> | 4 | #include <asm/cpufeature.h> |
5 | #include <asm/msr.h> | ||
5 | 6 | ||
6 | verify_cpu: | 7 | verify_cpu: |
7 | pushfl # Save caller passed flags | 8 | pushfl # Save caller passed flags |
@@ -45,6 +46,32 @@ verify_cpu: | |||
45 | cmpl $0x1,%eax | 46 | cmpl $0x1,%eax |
46 | jb bad # no cpuid 1 | 47 | jb bad # no cpuid 1 |
47 | 48 | ||
49 | #if REQUIRED_MASK1 & NEED_CMPXCHG64 | ||
50 | /* Some VIA C3s need magic MSRs to enable CX64. Do this here */ | ||
51 | cmpl $0x746e6543,%ebx # Cent | ||
52 | jne 1f | ||
53 | cmpl $0x48727561,%edx # aurH | ||
54 | jne 1f | ||
55 | cmpl $0x736c7561,%ecx # auls | ||
56 | jne 1f | ||
57 | movl $1,%eax # check model | ||
58 | cpuid | ||
59 | movl %eax,%ebx | ||
60 | shr $8,%ebx | ||
61 | andl $0xf,%ebx | ||
62 | cmp $6,%ebx # check family == 6 | ||
63 | jne 1f | ||
64 | shr $4,%eax | ||
65 | andl $0xf,%eax | ||
66 | cmpl $6,%eax # check model >= 6 | ||
67 | jb 1f | ||
68 | # assume models >= 6 all support this MSR | ||
69 | movl $MSR_VIA_FCR,%ecx | ||
70 | rdmsr | ||
71 | orl $((1<<1)|(1<<7)),%eax # enable CMPXCHG64 and PGE | ||
72 | wrmsr | ||
73 | 1: | ||
74 | #endif | ||
48 | movl $0x1,%eax # Does the cpu have what it takes | 75 | movl $0x1,%eax # Does the cpu have what it takes |
49 | cpuid | 76 | cpuid |
50 | 77 | ||
diff --git a/arch/i386/kernel/vmlinux.lds.S b/arch/i386/kernel/vmlinux.lds.S index 80bec6640230..aa87b06c7c82 100644 --- a/arch/i386/kernel/vmlinux.lds.S +++ b/arch/i386/kernel/vmlinux.lds.S | |||
@@ -44,7 +44,7 @@ SECTIONS | |||
44 | 44 | ||
45 | /* read-only */ | 45 | /* read-only */ |
46 | .text : AT(ADDR(.text) - LOAD_OFFSET) { | 46 | .text : AT(ADDR(.text) - LOAD_OFFSET) { |
47 | *(.text) | 47 | TEXT_TEXT |
48 | SCHED_TEXT | 48 | SCHED_TEXT |
49 | LOCK_TEXT | 49 | LOCK_TEXT |
50 | KPROBES_TEXT | 50 | KPROBES_TEXT |
@@ -74,7 +74,7 @@ SECTIONS | |||
74 | /* writeable */ | 74 | /* writeable */ |
75 | . = ALIGN(4096); | 75 | . = ALIGN(4096); |
76 | .data : AT(ADDR(.data) - LOAD_OFFSET) { /* Data */ | 76 | .data : AT(ADDR(.data) - LOAD_OFFSET) { /* Data */ |
77 | *(.data) | 77 | DATA_DATA |
78 | CONSTRUCTORS | 78 | CONSTRUCTORS |
79 | } :data | 79 | } :data |
80 | 80 | ||
diff --git a/arch/i386/mach-generic/bigsmp.c b/arch/i386/mach-generic/bigsmp.c index e932d3485ae2..58a477baec30 100644 --- a/arch/i386/mach-generic/bigsmp.c +++ b/arch/i386/mach-generic/bigsmp.c | |||
@@ -21,7 +21,7 @@ | |||
21 | 21 | ||
22 | static int dmi_bigsmp; /* can be set by dmi scanners */ | 22 | static int dmi_bigsmp; /* can be set by dmi scanners */ |
23 | 23 | ||
24 | static __init int hp_ht_bigsmp(struct dmi_system_id *d) | 24 | static int hp_ht_bigsmp(struct dmi_system_id *d) |
25 | { | 25 | { |
26 | #ifdef CONFIG_X86_GENERICARCH | 26 | #ifdef CONFIG_X86_GENERICARCH |
27 | printk(KERN_NOTICE "%s detected: force use of apic=bigsmp\n", d->ident); | 27 | printk(KERN_NOTICE "%s detected: force use of apic=bigsmp\n", d->ident); |
@@ -31,7 +31,7 @@ static __init int hp_ht_bigsmp(struct dmi_system_id *d) | |||
31 | } | 31 | } |
32 | 32 | ||
33 | 33 | ||
34 | static struct dmi_system_id __initdata bigsmp_dmi_table[] = { | 34 | static struct dmi_system_id bigsmp_dmi_table[] = { |
35 | { hp_ht_bigsmp, "HP ProLiant DL760 G2", { | 35 | { hp_ht_bigsmp, "HP ProLiant DL760 G2", { |
36 | DMI_MATCH(DMI_BIOS_VENDOR, "HP"), | 36 | DMI_MATCH(DMI_BIOS_VENDOR, "HP"), |
37 | DMI_MATCH(DMI_BIOS_VERSION, "P44-"), | 37 | DMI_MATCH(DMI_BIOS_VERSION, "P44-"), |
@@ -45,7 +45,7 @@ static struct dmi_system_id __initdata bigsmp_dmi_table[] = { | |||
45 | }; | 45 | }; |
46 | 46 | ||
47 | 47 | ||
48 | static int __init probe_bigsmp(void) | 48 | static int probe_bigsmp(void) |
49 | { | 49 | { |
50 | if (def_to_bigsmp) | 50 | if (def_to_bigsmp) |
51 | dmi_bigsmp = 1; | 51 | dmi_bigsmp = 1; |
diff --git a/arch/i386/mm/mmap.c b/arch/i386/mm/mmap.c index e4730a1a43dd..552e08473755 100644 --- a/arch/i386/mm/mmap.c +++ b/arch/i386/mm/mmap.c | |||
@@ -27,6 +27,7 @@ | |||
27 | #include <linux/personality.h> | 27 | #include <linux/personality.h> |
28 | #include <linux/mm.h> | 28 | #include <linux/mm.h> |
29 | #include <linux/random.h> | 29 | #include <linux/random.h> |
30 | #include <linux/sched.h> | ||
30 | 31 | ||
31 | /* | 32 | /* |
32 | * Top of mmap area (just below the process stack). | 33 | * Top of mmap area (just below the process stack). |
diff --git a/arch/i386/oprofile/nmi_int.c b/arch/i386/oprofile/nmi_int.c index 8e185208dfd4..a7c0783b269a 100644 --- a/arch/i386/oprofile/nmi_int.c +++ b/arch/i386/oprofile/nmi_int.c | |||
@@ -131,7 +131,6 @@ static void nmi_save_registers(void * dummy) | |||
131 | { | 131 | { |
132 | int cpu = smp_processor_id(); | 132 | int cpu = smp_processor_id(); |
133 | struct op_msrs * msrs = &cpu_msrs[cpu]; | 133 | struct op_msrs * msrs = &cpu_msrs[cpu]; |
134 | model->fill_in_addresses(msrs); | ||
135 | nmi_cpu_save_registers(msrs); | 134 | nmi_cpu_save_registers(msrs); |
136 | } | 135 | } |
137 | 136 | ||
@@ -195,6 +194,7 @@ static struct notifier_block profile_exceptions_nb = { | |||
195 | static int nmi_setup(void) | 194 | static int nmi_setup(void) |
196 | { | 195 | { |
197 | int err=0; | 196 | int err=0; |
197 | int cpu; | ||
198 | 198 | ||
199 | if (!allocate_msrs()) | 199 | if (!allocate_msrs()) |
200 | return -ENOMEM; | 200 | return -ENOMEM; |
@@ -207,6 +207,13 @@ static int nmi_setup(void) | |||
207 | /* We need to serialize save and setup for HT because the subset | 207 | /* We need to serialize save and setup for HT because the subset |
208 | * of msrs are distinct for save and setup operations | 208 | * of msrs are distinct for save and setup operations |
209 | */ | 209 | */ |
210 | |||
211 | /* Assume saved/restored counters are the same on all CPUs */ | ||
212 | model->fill_in_addresses(&cpu_msrs[0]); | ||
213 | for_each_possible_cpu (cpu) { | ||
214 | if (cpu != 0) | ||
215 | cpu_msrs[cpu] = cpu_msrs[0]; | ||
216 | } | ||
210 | on_each_cpu(nmi_save_registers, NULL, 0, 1); | 217 | on_each_cpu(nmi_save_registers, NULL, 0, 1); |
211 | on_each_cpu(nmi_cpu_setup, NULL, 0, 1); | 218 | on_each_cpu(nmi_cpu_setup, NULL, 0, 1); |
212 | nmi_enabled = 1; | 219 | nmi_enabled = 1; |
diff --git a/arch/ia64/kernel/acpi-processor.c b/arch/ia64/kernel/acpi-processor.c index 4d4993a47e55..5a216c019924 100644 --- a/arch/ia64/kernel/acpi-processor.c +++ b/arch/ia64/kernel/acpi-processor.c | |||
@@ -44,7 +44,7 @@ static void init_intel_pdc(struct acpi_processor *pr) | |||
44 | 44 | ||
45 | buf[0] = ACPI_PDC_REVISION_ID; | 45 | buf[0] = ACPI_PDC_REVISION_ID; |
46 | buf[1] = 1; | 46 | buf[1] = 1; |
47 | buf[2] |= ACPI_PDC_EST_CAPABILITY_SMP; | 47 | buf[2] = ACPI_PDC_EST_CAPABILITY_SMP; |
48 | 48 | ||
49 | obj->type = ACPI_TYPE_BUFFER; | 49 | obj->type = ACPI_TYPE_BUFFER; |
50 | obj->buffer.length = 12; | 50 | obj->buffer.length = 12; |
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c index 3549c94467b8..103dd8edda71 100644 --- a/arch/ia64/kernel/acpi.c +++ b/arch/ia64/kernel/acpi.c | |||
@@ -67,7 +67,8 @@ EXPORT_SYMBOL(pm_power_off); | |||
67 | unsigned int acpi_cpei_override; | 67 | unsigned int acpi_cpei_override; |
68 | unsigned int acpi_cpei_phys_cpuid; | 68 | unsigned int acpi_cpei_phys_cpuid; |
69 | 69 | ||
70 | const char *acpi_get_sysname(void) | 70 | const char __init * |
71 | acpi_get_sysname(void) | ||
71 | { | 72 | { |
72 | #ifdef CONFIG_IA64_GENERIC | 73 | #ifdef CONFIG_IA64_GENERIC |
73 | unsigned long rsdp_phys; | 74 | unsigned long rsdp_phys; |
@@ -791,7 +792,7 @@ static __init int setup_additional_cpus(char *s) | |||
791 | early_param("additional_cpus", setup_additional_cpus); | 792 | early_param("additional_cpus", setup_additional_cpus); |
792 | 793 | ||
793 | /* | 794 | /* |
794 | * cpu_possible_map should be static, it cannot change as cpu's | 795 | * cpu_possible_map should be static, it cannot change as CPUs |
795 | * are onlined, or offlined. The reason is per-cpu data-structures | 796 | * are onlined, or offlined. The reason is per-cpu data-structures |
796 | * are allocated by some modules at init time, and dont expect to | 797 | * are allocated by some modules at init time, and dont expect to |
797 | * do this dynamically on cpu arrival/departure. | 798 | * do this dynamically on cpu arrival/departure. |
diff --git a/arch/ia64/kernel/crash.c b/arch/ia64/kernel/crash.c index aeb79fb28f0b..1d64ef478dde 100644 --- a/arch/ia64/kernel/crash.c +++ b/arch/ia64/kernel/crash.c | |||
@@ -156,24 +156,30 @@ kdump_init_notifier(struct notifier_block *self, unsigned long val, void *data) | |||
156 | if (!kdump_on_init) | 156 | if (!kdump_on_init) |
157 | return NOTIFY_DONE; | 157 | return NOTIFY_DONE; |
158 | 158 | ||
159 | if (val != DIE_INIT_MONARCH_ENTER && | 159 | if (val != DIE_INIT_MONARCH_LEAVE && |
160 | val != DIE_INIT_SLAVE_ENTER && | 160 | val != DIE_INIT_SLAVE_LEAVE && |
161 | val != DIE_INIT_MONARCH_PROCESS && | ||
161 | val != DIE_MCA_RENDZVOUS_LEAVE && | 162 | val != DIE_MCA_RENDZVOUS_LEAVE && |
162 | val != DIE_MCA_MONARCH_LEAVE) | 163 | val != DIE_MCA_MONARCH_LEAVE) |
163 | return NOTIFY_DONE; | 164 | return NOTIFY_DONE; |
164 | 165 | ||
165 | nd = (struct ia64_mca_notify_die *)args->err; | 166 | nd = (struct ia64_mca_notify_die *)args->err; |
166 | /* Reason code 1 means machine check rendezous*/ | 167 | /* Reason code 1 means machine check rendezvous*/ |
167 | if ((val == DIE_INIT_MONARCH_ENTER || val == DIE_INIT_SLAVE_ENTER) && | 168 | if ((val == DIE_INIT_MONARCH_LEAVE || val == DIE_INIT_SLAVE_LEAVE |
168 | nd->sos->rv_rc == 1) | 169 | || val == DIE_INIT_MONARCH_PROCESS) && nd->sos->rv_rc == 1) |
169 | return NOTIFY_DONE; | 170 | return NOTIFY_DONE; |
170 | 171 | ||
171 | switch (val) { | 172 | switch (val) { |
172 | case DIE_INIT_MONARCH_ENTER: | 173 | case DIE_INIT_MONARCH_PROCESS: |
174 | atomic_set(&kdump_in_progress, 1); | ||
175 | *(nd->monarch_cpu) = -1; | ||
176 | break; | ||
177 | case DIE_INIT_MONARCH_LEAVE: | ||
173 | machine_kdump_on_init(); | 178 | machine_kdump_on_init(); |
174 | break; | 179 | break; |
175 | case DIE_INIT_SLAVE_ENTER: | 180 | case DIE_INIT_SLAVE_LEAVE: |
176 | unw_init_running(kdump_cpu_freeze, NULL); | 181 | if (atomic_read(&kdump_in_progress)) |
182 | unw_init_running(kdump_cpu_freeze, NULL); | ||
177 | break; | 183 | break; |
178 | case DIE_MCA_RENDZVOUS_LEAVE: | 184 | case DIE_MCA_RENDZVOUS_LEAVE: |
179 | if (atomic_read(&kdump_in_progress)) | 185 | if (atomic_read(&kdump_in_progress)) |
@@ -215,8 +221,10 @@ static ctl_table sys_table[] = { | |||
215 | static int | 221 | static int |
216 | machine_crash_setup(void) | 222 | machine_crash_setup(void) |
217 | { | 223 | { |
224 | /* be notified before default_monarch_init_process */ | ||
218 | static struct notifier_block kdump_init_notifier_nb = { | 225 | static struct notifier_block kdump_init_notifier_nb = { |
219 | .notifier_call = kdump_init_notifier, | 226 | .notifier_call = kdump_init_notifier, |
227 | .priority = 1, | ||
220 | }; | 228 | }; |
221 | int ret; | 229 | int ret; |
222 | if((ret = register_die_notifier(&kdump_init_notifier_nb)) != 0) | 230 | if((ret = register_die_notifier(&kdump_init_notifier_nb)) != 0) |
diff --git a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S index 144b056282af..95f517515235 100644 --- a/arch/ia64/kernel/entry.S +++ b/arch/ia64/kernel/entry.S | |||
@@ -1585,5 +1585,8 @@ sys_call_table: | |||
1585 | data8 sys_getcpu | 1585 | data8 sys_getcpu |
1586 | data8 sys_epoll_pwait // 1305 | 1586 | data8 sys_epoll_pwait // 1305 |
1587 | data8 sys_utimensat | 1587 | data8 sys_utimensat |
1588 | data8 sys_signalfd | ||
1589 | data8 sys_timerfd | ||
1590 | data8 sys_eventfd | ||
1588 | 1591 | ||
1589 | .org sys_call_table + 8*NR_syscalls // guard against failures to increase NR_syscalls | 1592 | .org sys_call_table + 8*NR_syscalls // guard against failures to increase NR_syscalls |
diff --git a/arch/ia64/kernel/irq.c b/arch/ia64/kernel/irq.c index b4c239685d2e..407b45870489 100644 --- a/arch/ia64/kernel/irq.c +++ b/arch/ia64/kernel/irq.c | |||
@@ -4,7 +4,7 @@ | |||
4 | * Copyright (C) 1992, 1998 Linus Torvalds, Ingo Molnar | 4 | * Copyright (C) 1992, 1998 Linus Torvalds, Ingo Molnar |
5 | * | 5 | * |
6 | * This file contains the code used by various IRQ handling routines: | 6 | * This file contains the code used by various IRQ handling routines: |
7 | * asking for different IRQ's should be done through these routines | 7 | * asking for different IRQs should be done through these routines |
8 | * instead of just grabbing them. Thus setups with different IRQ numbers | 8 | * instead of just grabbing them. Thus setups with different IRQ numbers |
9 | * shouldn't result in any weird surprises, and installing new handlers | 9 | * shouldn't result in any weird surprises, and installing new handlers |
10 | * should be easier. | 10 | * should be easier. |
@@ -12,7 +12,7 @@ | |||
12 | * Copyright (C) Ashok Raj<ashok.raj@intel.com>, Intel Corporation 2004 | 12 | * Copyright (C) Ashok Raj<ashok.raj@intel.com>, Intel Corporation 2004 |
13 | * | 13 | * |
14 | * 4/14/2004: Added code to handle cpu migration and do safe irq | 14 | * 4/14/2004: Added code to handle cpu migration and do safe irq |
15 | * migration without lossing interrupts for iosapic | 15 | * migration without losing interrupts for iosapic |
16 | * architecture. | 16 | * architecture. |
17 | */ | 17 | */ |
18 | 18 | ||
@@ -190,7 +190,7 @@ void fixup_irqs(void) | |||
190 | } | 190 | } |
191 | 191 | ||
192 | /* | 192 | /* |
193 | * Phase 1: Locate irq's bound to this cpu and | 193 | * Phase 1: Locate IRQs bound to this cpu and |
194 | * relocate them for cpu removal. | 194 | * relocate them for cpu removal. |
195 | */ | 195 | */ |
196 | migrate_irqs(); | 196 | migrate_irqs(); |
diff --git a/arch/ia64/kernel/irq_lsapic.c b/arch/ia64/kernel/irq_lsapic.c index c2f07beb1759..e56a7a36aca3 100644 --- a/arch/ia64/kernel/irq_lsapic.c +++ b/arch/ia64/kernel/irq_lsapic.c | |||
@@ -23,7 +23,7 @@ lsapic_noop_startup (unsigned int irq) | |||
23 | static void | 23 | static void |
24 | lsapic_noop (unsigned int irq) | 24 | lsapic_noop (unsigned int irq) |
25 | { | 25 | { |
26 | /* nuthing to do... */ | 26 | /* nothing to do... */ |
27 | } | 27 | } |
28 | 28 | ||
29 | static int lsapic_retrigger(unsigned int irq) | 29 | static int lsapic_retrigger(unsigned int irq) |
diff --git a/arch/ia64/kernel/kprobes.c b/arch/ia64/kernel/kprobes.c index 72e593e94053..5bc46f151344 100644 --- a/arch/ia64/kernel/kprobes.c +++ b/arch/ia64/kernel/kprobes.c | |||
@@ -151,12 +151,12 @@ static uint __kprobes is_cmp_ctype_unc_inst(uint template, uint slot, | |||
151 | 151 | ||
152 | cmp_inst.l = kprobe_inst; | 152 | cmp_inst.l = kprobe_inst; |
153 | if ((cmp_inst.f.x2 == 0) || (cmp_inst.f.x2 == 1)) { | 153 | if ((cmp_inst.f.x2 == 0) || (cmp_inst.f.x2 == 1)) { |
154 | /* Integere compare - Register Register (A6 type)*/ | 154 | /* Integer compare - Register Register (A6 type)*/ |
155 | if ((cmp_inst.f.tb == 0) && (cmp_inst.f.ta == 0) | 155 | if ((cmp_inst.f.tb == 0) && (cmp_inst.f.ta == 0) |
156 | &&(cmp_inst.f.c == 1)) | 156 | &&(cmp_inst.f.c == 1)) |
157 | ctype_unc = 1; | 157 | ctype_unc = 1; |
158 | } else if ((cmp_inst.f.x2 == 2)||(cmp_inst.f.x2 == 3)) { | 158 | } else if ((cmp_inst.f.x2 == 2)||(cmp_inst.f.x2 == 3)) { |
159 | /* Integere compare - Immediate Register (A8 type)*/ | 159 | /* Integer compare - Immediate Register (A8 type)*/ |
160 | if ((cmp_inst.f.ta == 0) &&(cmp_inst.f.c == 1)) | 160 | if ((cmp_inst.f.ta == 0) &&(cmp_inst.f.c == 1)) |
161 | ctype_unc = 1; | 161 | ctype_unc = 1; |
162 | } | 162 | } |
@@ -820,7 +820,7 @@ out: | |||
820 | return 1; | 820 | return 1; |
821 | } | 821 | } |
822 | 822 | ||
823 | static int __kprobes kprobes_fault_handler(struct pt_regs *regs, int trapnr) | 823 | int __kprobes kprobes_fault_handler(struct pt_regs *regs, int trapnr) |
824 | { | 824 | { |
825 | struct kprobe *cur = kprobe_running(); | 825 | struct kprobe *cur = kprobe_running(); |
826 | struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); | 826 | struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); |
@@ -904,13 +904,6 @@ int __kprobes kprobe_exceptions_notify(struct notifier_block *self, | |||
904 | if (post_kprobes_handler(args->regs)) | 904 | if (post_kprobes_handler(args->regs)) |
905 | ret = NOTIFY_STOP; | 905 | ret = NOTIFY_STOP; |
906 | break; | 906 | break; |
907 | case DIE_PAGE_FAULT: | ||
908 | /* kprobe_running() needs smp_processor_id() */ | ||
909 | preempt_disable(); | ||
910 | if (kprobe_running() && | ||
911 | kprobes_fault_handler(args->regs, args->trapnr)) | ||
912 | ret = NOTIFY_STOP; | ||
913 | preempt_enable(); | ||
914 | default: | 907 | default: |
915 | break; | 908 | break; |
916 | } | 909 | } |
@@ -954,7 +947,7 @@ int __kprobes setjmp_pre_handler(struct kprobe *p, struct pt_regs *regs) | |||
954 | /* | 947 | /* |
955 | * Callee owns the argument space and could overwrite it, eg | 948 | * Callee owns the argument space and could overwrite it, eg |
956 | * tail call optimization. So to be absolutely safe | 949 | * tail call optimization. So to be absolutely safe |
957 | * we save the argument space before transfering the control | 950 | * we save the argument space before transferring the control |
958 | * to instrumented jprobe function which runs in | 951 | * to instrumented jprobe function which runs in |
959 | * the process context | 952 | * the process context |
960 | */ | 953 | */ |
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c index 26814de6c29a..1ead5ea6c5ce 100644 --- a/arch/ia64/kernel/mca.c +++ b/arch/ia64/kernel/mca.c | |||
@@ -273,7 +273,6 @@ static void ia64_mlogbuf_finish(int wait) | |||
273 | 273 | ||
274 | mlogbuf_finished = 1; | 274 | mlogbuf_finished = 1; |
275 | } | 275 | } |
276 | EXPORT_SYMBOL(ia64_mlogbuf_finish); | ||
277 | 276 | ||
278 | /* | 277 | /* |
279 | * Print buffered messages from INIT context. | 278 | * Print buffered messages from INIT context. |
@@ -1477,6 +1476,10 @@ default_monarch_init_process(struct notifier_block *self, unsigned long val, voi | |||
1477 | struct task_struct *g, *t; | 1476 | struct task_struct *g, *t; |
1478 | if (val != DIE_INIT_MONARCH_PROCESS) | 1477 | if (val != DIE_INIT_MONARCH_PROCESS) |
1479 | return NOTIFY_DONE; | 1478 | return NOTIFY_DONE; |
1479 | #ifdef CONFIG_KEXEC | ||
1480 | if (atomic_read(&kdump_in_progress)) | ||
1481 | return NOTIFY_DONE; | ||
1482 | #endif | ||
1480 | 1483 | ||
1481 | /* | 1484 | /* |
1482 | * FIXME: mlogbuf will brim over with INIT stack dumps. | 1485 | * FIXME: mlogbuf will brim over with INIT stack dumps. |
diff --git a/arch/ia64/kernel/mca_drv.c b/arch/ia64/kernel/mca_drv.c index 70b8bdbb7e6f..aba813c2c150 100644 --- a/arch/ia64/kernel/mca_drv.c +++ b/arch/ia64/kernel/mca_drv.c | |||
@@ -438,7 +438,7 @@ is_mca_global(peidx_table_t *peidx, pal_bus_check_info_t *pbci, | |||
438 | * @peidx: pointer of index of processor error section | 438 | * @peidx: pointer of index of processor error section |
439 | * | 439 | * |
440 | * Return value: | 440 | * Return value: |
441 | * target address on Success / 0 on Failue | 441 | * target address on Success / 0 on Failure |
442 | */ | 442 | */ |
443 | static u64 | 443 | static u64 |
444 | get_target_identifier(peidx_table_t *peidx) | 444 | get_target_identifier(peidx_table_t *peidx) |
@@ -701,7 +701,7 @@ recover_from_processor_error(int platform, slidx_table_t *slidx, | |||
701 | return fatal_mca("External bus check fatal status"); | 701 | return fatal_mca("External bus check fatal status"); |
702 | 702 | ||
703 | /* | 703 | /* |
704 | * This is a local MCA and estimated as a recoverble error. | 704 | * This is a local MCA and estimated as a recoverable error. |
705 | */ | 705 | */ |
706 | if (platform) | 706 | if (platform) |
707 | return recover_from_platform_error(slidx, peidx, pbci, sos); | 707 | return recover_from_platform_error(slidx, peidx, pbci, sos); |
diff --git a/arch/ia64/kernel/module.c b/arch/ia64/kernel/module.c index 158e3c51bb77..196287928bae 100644 --- a/arch/ia64/kernel/module.c +++ b/arch/ia64/kernel/module.c | |||
@@ -861,7 +861,7 @@ apply_relocate (Elf64_Shdr *sechdrs, const char *strtab, unsigned int symindex, | |||
861 | /* | 861 | /* |
862 | * Modules contain a single unwind table which covers both the core and the init text | 862 | * Modules contain a single unwind table which covers both the core and the init text |
863 | * sections but since the two are not contiguous, we need to split this table up such that | 863 | * sections but since the two are not contiguous, we need to split this table up such that |
864 | * we can register (and unregister) each "segment" seperately. Fortunately, this sounds | 864 | * we can register (and unregister) each "segment" separately. Fortunately, this sounds |
865 | * more complicated than it really is. | 865 | * more complicated than it really is. |
866 | */ | 866 | */ |
867 | static void | 867 | static void |
diff --git a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c index e7191ca30b16..b7133cabdbea 100644 --- a/arch/ia64/kernel/perfmon.c +++ b/arch/ia64/kernel/perfmon.c | |||
@@ -1318,7 +1318,7 @@ pfm_reserve_session(struct task_struct *task, int is_syswide, unsigned int cpu) | |||
1318 | { | 1318 | { |
1319 | unsigned long flags; | 1319 | unsigned long flags; |
1320 | /* | 1320 | /* |
1321 | * validy checks on cpu_mask have been done upstream | 1321 | * validity checks on cpu_mask have been done upstream |
1322 | */ | 1322 | */ |
1323 | LOCK_PFS(flags); | 1323 | LOCK_PFS(flags); |
1324 | 1324 | ||
@@ -1384,7 +1384,7 @@ pfm_unreserve_session(pfm_context_t *ctx, int is_syswide, unsigned int cpu) | |||
1384 | { | 1384 | { |
1385 | unsigned long flags; | 1385 | unsigned long flags; |
1386 | /* | 1386 | /* |
1387 | * validy checks on cpu_mask have been done upstream | 1387 | * validity checks on cpu_mask have been done upstream |
1388 | */ | 1388 | */ |
1389 | LOCK_PFS(flags); | 1389 | LOCK_PFS(flags); |
1390 | 1390 | ||
@@ -1835,7 +1835,7 @@ pfm_flush(struct file *filp, fl_owner_t id) | |||
1835 | /* | 1835 | /* |
1836 | * remove our file from the async queue, if we use this mode. | 1836 | * remove our file from the async queue, if we use this mode. |
1837 | * This can be done without the context being protected. We come | 1837 | * This can be done without the context being protected. We come |
1838 | * here when the context has become unreacheable by other tasks. | 1838 | * here when the context has become unreachable by other tasks. |
1839 | * | 1839 | * |
1840 | * We may still have active monitoring at this point and we may | 1840 | * We may still have active monitoring at this point and we may |
1841 | * end up in pfm_overflow_handler(). However, fasync_helper() | 1841 | * end up in pfm_overflow_handler(). However, fasync_helper() |
@@ -2132,7 +2132,7 @@ doit: | |||
2132 | filp->private_data = NULL; | 2132 | filp->private_data = NULL; |
2133 | 2133 | ||
2134 | /* | 2134 | /* |
2135 | * if we free on the spot, the context is now completely unreacheable | 2135 | * if we free on the spot, the context is now completely unreachable |
2136 | * from the callers side. The monitored task side is also cut, so we | 2136 | * from the callers side. The monitored task side is also cut, so we |
2137 | * can freely cut. | 2137 | * can freely cut. |
2138 | * | 2138 | * |
@@ -2562,7 +2562,7 @@ pfm_reset_pmu_state(pfm_context_t *ctx) | |||
2562 | ctx->ctx_all_pmcs[0] = pmu_conf->impl_pmcs[0] & ~0x1; | 2562 | ctx->ctx_all_pmcs[0] = pmu_conf->impl_pmcs[0] & ~0x1; |
2563 | 2563 | ||
2564 | /* | 2564 | /* |
2565 | * bitmask of all PMDs that are accesible to this context | 2565 | * bitmask of all PMDs that are accessible to this context |
2566 | */ | 2566 | */ |
2567 | ctx->ctx_all_pmds[0] = pmu_conf->impl_pmds[0]; | 2567 | ctx->ctx_all_pmds[0] = pmu_conf->impl_pmds[0]; |
2568 | 2568 | ||
@@ -3395,7 +3395,7 @@ pfm_read_pmds(pfm_context_t *ctx, void *arg, int count, struct pt_regs *regs) | |||
3395 | if (unlikely(!PMD_IS_IMPL(cnum))) goto error; | 3395 | if (unlikely(!PMD_IS_IMPL(cnum))) goto error; |
3396 | /* | 3396 | /* |
3397 | * we can only read the register that we use. That includes | 3397 | * we can only read the register that we use. That includes |
3398 | * the one we explicitely initialize AND the one we want included | 3398 | * the one we explicitly initialize AND the one we want included |
3399 | * in the sampling buffer (smpl_regs). | 3399 | * in the sampling buffer (smpl_regs). |
3400 | * | 3400 | * |
3401 | * Having this restriction allows optimization in the ctxsw routine | 3401 | * Having this restriction allows optimization in the ctxsw routine |
@@ -3715,7 +3715,7 @@ pfm_restart(pfm_context_t *ctx, void *arg, int count, struct pt_regs *regs) | |||
3715 | * if non-blocking, then we ensure that the task will go into | 3715 | * if non-blocking, then we ensure that the task will go into |
3716 | * pfm_handle_work() before returning to user mode. | 3716 | * pfm_handle_work() before returning to user mode. |
3717 | * | 3717 | * |
3718 | * We cannot explicitely reset another task, it MUST always | 3718 | * We cannot explicitly reset another task, it MUST always |
3719 | * be done by the task itself. This works for system wide because | 3719 | * be done by the task itself. This works for system wide because |
3720 | * the tool that is controlling the session is logically doing | 3720 | * the tool that is controlling the session is logically doing |
3721 | * "self-monitoring". | 3721 | * "self-monitoring". |
@@ -4644,7 +4644,7 @@ pfm_exit_thread(struct task_struct *task) | |||
4644 | switch(state) { | 4644 | switch(state) { |
4645 | case PFM_CTX_UNLOADED: | 4645 | case PFM_CTX_UNLOADED: |
4646 | /* | 4646 | /* |
4647 | * only comes to thios function if pfm_context is not NULL, i.e., cannot | 4647 | * only comes to this function if pfm_context is not NULL, i.e., cannot |
4648 | * be in unloaded state | 4648 | * be in unloaded state |
4649 | */ | 4649 | */ |
4650 | printk(KERN_ERR "perfmon: pfm_exit_thread [%d] ctx unloaded\n", task->pid); | 4650 | printk(KERN_ERR "perfmon: pfm_exit_thread [%d] ctx unloaded\n", task->pid); |
@@ -5247,7 +5247,7 @@ pfm_end_notify_user(pfm_context_t *ctx) | |||
5247 | 5247 | ||
5248 | /* | 5248 | /* |
5249 | * main overflow processing routine. | 5249 | * main overflow processing routine. |
5250 | * it can be called from the interrupt path or explicitely during the context switch code | 5250 | * it can be called from the interrupt path or explicitly during the context switch code |
5251 | */ | 5251 | */ |
5252 | static void | 5252 | static void |
5253 | pfm_overflow_handler(struct task_struct *task, pfm_context_t *ctx, u64 pmc0, struct pt_regs *regs) | 5253 | pfm_overflow_handler(struct task_struct *task, pfm_context_t *ctx, u64 pmc0, struct pt_regs *regs) |
diff --git a/arch/ia64/kernel/perfmon_mckinley.h b/arch/ia64/kernel/perfmon_mckinley.h index 9becccda2897..c4bec7a9d18f 100644 --- a/arch/ia64/kernel/perfmon_mckinley.h +++ b/arch/ia64/kernel/perfmon_mckinley.h | |||
@@ -181,7 +181,7 @@ static pmu_config_t pmu_conf_mck={ | |||
181 | .pmc_desc = pfm_mck_pmc_desc, | 181 | .pmc_desc = pfm_mck_pmc_desc, |
182 | .num_ibrs = 8, | 182 | .num_ibrs = 8, |
183 | .num_dbrs = 8, | 183 | .num_dbrs = 8, |
184 | .use_rr_dbregs = 1 /* debug register are use for range retrictions */ | 184 | .use_rr_dbregs = 1 /* debug register are use for range restrictions */ |
185 | }; | 185 | }; |
186 | 186 | ||
187 | 187 | ||
diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c index d1c3ed9943e5..af73b8dfde28 100644 --- a/arch/ia64/kernel/process.c +++ b/arch/ia64/kernel/process.c | |||
@@ -763,6 +763,9 @@ get_wchan (struct task_struct *p) | |||
763 | unsigned long ip; | 763 | unsigned long ip; |
764 | int count = 0; | 764 | int count = 0; |
765 | 765 | ||
766 | if (!p || p == current || p->state == TASK_RUNNING) | ||
767 | return 0; | ||
768 | |||
766 | /* | 769 | /* |
767 | * Note: p may not be a blocked task (it could be current or | 770 | * Note: p may not be a blocked task (it could be current or |
768 | * another process running on some other CPU. Rather than | 771 | * another process running on some other CPU. Rather than |
@@ -773,6 +776,8 @@ get_wchan (struct task_struct *p) | |||
773 | */ | 776 | */ |
774 | unw_init_from_blocked_task(&info, p); | 777 | unw_init_from_blocked_task(&info, p); |
775 | do { | 778 | do { |
779 | if (p->state == TASK_RUNNING) | ||
780 | return 0; | ||
776 | if (unw_unwind(&info) < 0) | 781 | if (unw_unwind(&info) < 0) |
777 | return 0; | 782 | return 0; |
778 | unw_get_ip(&info, &ip); | 783 | unw_get_ip(&info, &ip); |
diff --git a/arch/ia64/kernel/sal.c b/arch/ia64/kernel/sal.c index 37c876f95dba..27c2ef445a56 100644 --- a/arch/ia64/kernel/sal.c +++ b/arch/ia64/kernel/sal.c | |||
@@ -134,7 +134,7 @@ set_smp_redirect (int flag) | |||
134 | * interrupt redirection. The reason is this would require that | 134 | * interrupt redirection. The reason is this would require that |
135 | * All interrupts be stopped and hard bind the irq to a cpu. | 135 | * All interrupts be stopped and hard bind the irq to a cpu. |
136 | * Later when the interrupt is fired we need to set the redir hint | 136 | * Later when the interrupt is fired we need to set the redir hint |
137 | * on again in the vector. This is combersome for something that the | 137 | * on again in the vector. This is cumbersome for something that the |
138 | * user mode irq balancer will solve anyways. | 138 | * user mode irq balancer will solve anyways. |
139 | */ | 139 | */ |
140 | no_int_routing=1; | 140 | no_int_routing=1; |
diff --git a/arch/ia64/kernel/salinfo.c b/arch/ia64/kernel/salinfo.c index 89f6b138a62c..25cd75f50ab1 100644 --- a/arch/ia64/kernel/salinfo.c +++ b/arch/ia64/kernel/salinfo.c | |||
@@ -162,7 +162,7 @@ static DEFINE_SPINLOCK(data_saved_lock); | |||
162 | /** salinfo_platform_oemdata - optional callback to decode oemdata from an error | 162 | /** salinfo_platform_oemdata - optional callback to decode oemdata from an error |
163 | * record. | 163 | * record. |
164 | * @sect_header: pointer to the start of the section to decode. | 164 | * @sect_header: pointer to the start of the section to decode. |
165 | * @oemdata: returns vmalloc area containing the decded output. | 165 | * @oemdata: returns vmalloc area containing the decoded output. |
166 | * @oemdata_size: returns length of decoded output (strlen). | 166 | * @oemdata_size: returns length of decoded output (strlen). |
167 | * | 167 | * |
168 | * Description: If user space asks for oem data to be decoded by the kernel | 168 | * Description: If user space asks for oem data to be decoded by the kernel |
diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c index 9df1efe7487d..eaa6a24bc0b6 100644 --- a/arch/ia64/kernel/setup.c +++ b/arch/ia64/kernel/setup.c | |||
@@ -576,7 +576,7 @@ setup_arch (char **cmdline_p) | |||
576 | } | 576 | } |
577 | 577 | ||
578 | /* | 578 | /* |
579 | * Display cpu info for all cpu's. | 579 | * Display cpu info for all CPUs. |
580 | */ | 580 | */ |
581 | static int | 581 | static int |
582 | show_cpuinfo (struct seq_file *m, void *v) | 582 | show_cpuinfo (struct seq_file *m, void *v) |
@@ -761,7 +761,7 @@ identify_cpu (struct cpuinfo_ia64 *c) | |||
761 | c->cpu = smp_processor_id(); | 761 | c->cpu = smp_processor_id(); |
762 | 762 | ||
763 | /* below default values will be overwritten by identify_siblings() | 763 | /* below default values will be overwritten by identify_siblings() |
764 | * for Multi-Threading/Multi-Core capable cpu's | 764 | * for Multi-Threading/Multi-Core capable CPUs |
765 | */ | 765 | */ |
766 | c->threads_per_core = c->cores_per_socket = c->num_log = 1; | 766 | c->threads_per_core = c->cores_per_socket = c->num_log = 1; |
767 | c->socket_id = -1; | 767 | c->socket_id = -1; |
@@ -947,7 +947,7 @@ cpu_init (void) | |||
947 | ia32_cpu_init(); | 947 | ia32_cpu_init(); |
948 | #endif | 948 | #endif |
949 | 949 | ||
950 | /* Clear ITC to eliminiate sched_clock() overflows in human time. */ | 950 | /* Clear ITC to eliminate sched_clock() overflows in human time. */ |
951 | ia64_set_itc(0); | 951 | ia64_set_itc(0); |
952 | 952 | ||
953 | /* disable all local interrupt sources: */ | 953 | /* disable all local interrupt sources: */ |
diff --git a/arch/ia64/kernel/smp.c b/arch/ia64/kernel/smp.c index 221de3804560..b3a47f986e1e 100644 --- a/arch/ia64/kernel/smp.c +++ b/arch/ia64/kernel/smp.c | |||
@@ -186,7 +186,7 @@ handle_IPI (int irq, void *dev_id) | |||
186 | } | 186 | } |
187 | 187 | ||
188 | /* | 188 | /* |
189 | * Called with preeemption disabled. | 189 | * Called with preemption disabled. |
190 | */ | 190 | */ |
191 | static inline void | 191 | static inline void |
192 | send_IPI_single (int dest_cpu, int op) | 192 | send_IPI_single (int dest_cpu, int op) |
@@ -196,7 +196,7 @@ send_IPI_single (int dest_cpu, int op) | |||
196 | } | 196 | } |
197 | 197 | ||
198 | /* | 198 | /* |
199 | * Called with preeemption disabled. | 199 | * Called with preemption disabled. |
200 | */ | 200 | */ |
201 | static inline void | 201 | static inline void |
202 | send_IPI_allbutself (int op) | 202 | send_IPI_allbutself (int op) |
@@ -210,7 +210,7 @@ send_IPI_allbutself (int op) | |||
210 | } | 210 | } |
211 | 211 | ||
212 | /* | 212 | /* |
213 | * Called with preeemption disabled. | 213 | * Called with preemption disabled. |
214 | */ | 214 | */ |
215 | static inline void | 215 | static inline void |
216 | send_IPI_all (int op) | 216 | send_IPI_all (int op) |
@@ -223,7 +223,7 @@ send_IPI_all (int op) | |||
223 | } | 223 | } |
224 | 224 | ||
225 | /* | 225 | /* |
226 | * Called with preeemption disabled. | 226 | * Called with preemption disabled. |
227 | */ | 227 | */ |
228 | static inline void | 228 | static inline void |
229 | send_IPI_self (int op) | 229 | send_IPI_self (int op) |
@@ -252,7 +252,7 @@ kdump_smp_send_init(void) | |||
252 | } | 252 | } |
253 | #endif | 253 | #endif |
254 | /* | 254 | /* |
255 | * Called with preeemption disabled. | 255 | * Called with preemption disabled. |
256 | */ | 256 | */ |
257 | void | 257 | void |
258 | smp_send_reschedule (int cpu) | 258 | smp_send_reschedule (int cpu) |
@@ -261,7 +261,7 @@ smp_send_reschedule (int cpu) | |||
261 | } | 261 | } |
262 | 262 | ||
263 | /* | 263 | /* |
264 | * Called with preeemption disabled. | 264 | * Called with preemption disabled. |
265 | */ | 265 | */ |
266 | static void | 266 | static void |
267 | smp_send_local_flush_tlb (int cpu) | 267 | smp_send_local_flush_tlb (int cpu) |
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c index a44792d0f3a9..3c9d8e6089cf 100644 --- a/arch/ia64/kernel/smpboot.c +++ b/arch/ia64/kernel/smpboot.c | |||
@@ -370,7 +370,7 @@ smp_setup_percpu_timer (void) | |||
370 | { | 370 | { |
371 | } | 371 | } |
372 | 372 | ||
373 | static void __devinit | 373 | static void __cpuinit |
374 | smp_callin (void) | 374 | smp_callin (void) |
375 | { | 375 | { |
376 | int cpuid, phys_id, itc_master; | 376 | int cpuid, phys_id, itc_master; |
@@ -456,7 +456,7 @@ smp_callin (void) | |||
456 | /* | 456 | /* |
457 | * Activate a secondary processor. head.S calls this. | 457 | * Activate a secondary processor. head.S calls this. |
458 | */ | 458 | */ |
459 | int __devinit | 459 | int __cpuinit |
460 | start_secondary (void *unused) | 460 | start_secondary (void *unused) |
461 | { | 461 | { |
462 | /* Early console may use I/O ports */ | 462 | /* Early console may use I/O ports */ |
@@ -694,7 +694,7 @@ int migrate_platform_irqs(unsigned int cpu) | |||
694 | set_cpei_target_cpu(new_cpei_cpu); | 694 | set_cpei_target_cpu(new_cpei_cpu); |
695 | desc = irq_desc + ia64_cpe_irq; | 695 | desc = irq_desc + ia64_cpe_irq; |
696 | /* | 696 | /* |
697 | * Switch for now, immediatly, we need to do fake intr | 697 | * Switch for now, immediately, we need to do fake intr |
698 | * as other interrupts, but need to study CPEI behaviour with | 698 | * as other interrupts, but need to study CPEI behaviour with |
699 | * polling before making changes. | 699 | * polling before making changes. |
700 | */ | 700 | */ |
@@ -840,7 +840,7 @@ __cpu_up (unsigned int cpu) | |||
840 | } | 840 | } |
841 | 841 | ||
842 | /* | 842 | /* |
843 | * Assume that CPU's have been discovered by some platform-dependent interface. For | 843 | * Assume that CPUs have been discovered by some platform-dependent interface. For |
844 | * SoftSDV/Lion, that would be ACPI. | 844 | * SoftSDV/Lion, that would be ACPI. |
845 | * | 845 | * |
846 | * Setup of the IPI irq handler is done in irq.c:init_IRQ_SMP(). | 846 | * Setup of the IPI irq handler is done in irq.c:init_IRQ_SMP(). |
@@ -854,7 +854,7 @@ init_smp_config(void) | |||
854 | } *ap_startup; | 854 | } *ap_startup; |
855 | long sal_ret; | 855 | long sal_ret; |
856 | 856 | ||
857 | /* Tell SAL where to drop the AP's. */ | 857 | /* Tell SAL where to drop the APs. */ |
858 | ap_startup = (struct fptr *) start_ap; | 858 | ap_startup = (struct fptr *) start_ap; |
859 | sal_ret = ia64_sal_set_vectors(SAL_VECTOR_OS_BOOT_RENDEZ, | 859 | sal_ret = ia64_sal_set_vectors(SAL_VECTOR_OS_BOOT_RENDEZ, |
860 | ia64_tpa(ap_startup->fp), ia64_tpa(ap_startup->gp), 0, 0, 0, 0); | 860 | ia64_tpa(ap_startup->fp), ia64_tpa(ap_startup->gp), 0, 0, 0, 0); |
diff --git a/arch/ia64/kernel/traps.c b/arch/ia64/kernel/traps.c index b8e0d70bf989..15ad85da15a9 100644 --- a/arch/ia64/kernel/traps.c +++ b/arch/ia64/kernel/traps.c | |||
@@ -304,7 +304,7 @@ handle_fpu_swa (int fp_fault, struct pt_regs *regs, unsigned long isr) | |||
304 | * Lower 4 bits are used as a count. Upper bits are a sequence | 304 | * Lower 4 bits are used as a count. Upper bits are a sequence |
305 | * number that is updated when count is reset. The cmpxchg will | 305 | * number that is updated when count is reset. The cmpxchg will |
306 | * fail is seqno has changed. This minimizes mutiple cpus | 306 | * fail is seqno has changed. This minimizes mutiple cpus |
307 | * reseting the count. | 307 | * resetting the count. |
308 | */ | 308 | */ |
309 | if (current_jiffies > last.time) | 309 | if (current_jiffies > last.time) |
310 | (void) cmpxchg_acq(&last.count, count, 16 + (count & ~15)); | 310 | (void) cmpxchg_acq(&last.count, count, 16 + (count & ~15)); |
diff --git a/arch/ia64/kernel/unwind.c b/arch/ia64/kernel/unwind.c index fe1426266b9b..b0b08b5f3eca 100644 --- a/arch/ia64/kernel/unwind.c +++ b/arch/ia64/kernel/unwind.c | |||
@@ -2,7 +2,7 @@ | |||
2 | * Copyright (C) 1999-2004 Hewlett-Packard Co | 2 | * Copyright (C) 1999-2004 Hewlett-Packard Co |
3 | * David Mosberger-Tang <davidm@hpl.hp.com> | 3 | * David Mosberger-Tang <davidm@hpl.hp.com> |
4 | * Copyright (C) 2003 Fenghua Yu <fenghua.yu@intel.com> | 4 | * Copyright (C) 2003 Fenghua Yu <fenghua.yu@intel.com> |
5 | * - Change pt_regs_off() to make it less dependant on pt_regs structure. | 5 | * - Change pt_regs_off() to make it less dependent on pt_regs structure. |
6 | */ | 6 | */ |
7 | /* | 7 | /* |
8 | * This file implements call frame unwind support for the Linux | 8 | * This file implements call frame unwind support for the Linux |
@@ -1860,7 +1860,7 @@ int | |||
1860 | unw_unwind (struct unw_frame_info *info) | 1860 | unw_unwind (struct unw_frame_info *info) |
1861 | { | 1861 | { |
1862 | unsigned long prev_ip, prev_sp, prev_bsp; | 1862 | unsigned long prev_ip, prev_sp, prev_bsp; |
1863 | unsigned long ip, pr, num_regs; | 1863 | unsigned long ip, pr, num_regs, rp_loc, pfs_loc; |
1864 | STAT(unsigned long start, flags;) | 1864 | STAT(unsigned long start, flags;) |
1865 | int retval; | 1865 | int retval; |
1866 | 1866 | ||
@@ -1870,14 +1870,16 @@ unw_unwind (struct unw_frame_info *info) | |||
1870 | prev_sp = info->sp; | 1870 | prev_sp = info->sp; |
1871 | prev_bsp = info->bsp; | 1871 | prev_bsp = info->bsp; |
1872 | 1872 | ||
1873 | /* restore the ip */ | 1873 | /* validate the return IP pointer */ |
1874 | if (!info->rp_loc) { | 1874 | rp_loc = (unsigned long) info->rp_loc; |
1875 | if ((rp_loc < info->regstk.limit) || (rp_loc > info->regstk.top)) { | ||
1875 | /* FIXME: should really be level 0 but it occurs too often. KAO */ | 1876 | /* FIXME: should really be level 0 but it occurs too often. KAO */ |
1876 | UNW_DPRINT(1, "unwind.%s: failed to locate return link (ip=0x%lx)!\n", | 1877 | UNW_DPRINT(1, "unwind.%s: failed to locate return link (ip=0x%lx)!\n", |
1877 | __FUNCTION__, info->ip); | 1878 | __FUNCTION__, info->ip); |
1878 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); | 1879 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); |
1879 | return -1; | 1880 | return -1; |
1880 | } | 1881 | } |
1882 | /* restore the ip */ | ||
1881 | ip = info->ip = *info->rp_loc; | 1883 | ip = info->ip = *info->rp_loc; |
1882 | if (ip < GATE_ADDR) { | 1884 | if (ip < GATE_ADDR) { |
1883 | UNW_DPRINT(2, "unwind.%s: reached user-space (ip=0x%lx)\n", __FUNCTION__, ip); | 1885 | UNW_DPRINT(2, "unwind.%s: reached user-space (ip=0x%lx)\n", __FUNCTION__, ip); |
@@ -1885,12 +1887,14 @@ unw_unwind (struct unw_frame_info *info) | |||
1885 | return -1; | 1887 | return -1; |
1886 | } | 1888 | } |
1887 | 1889 | ||
1888 | /* restore the cfm: */ | 1890 | /* validate the previous stack frame pointer */ |
1889 | if (!info->pfs_loc) { | 1891 | pfs_loc = (unsigned long) info->pfs_loc; |
1892 | if ((pfs_loc < info->regstk.limit) || (pfs_loc > info->regstk.top)) { | ||
1890 | UNW_DPRINT(0, "unwind.%s: failed to locate ar.pfs!\n", __FUNCTION__); | 1893 | UNW_DPRINT(0, "unwind.%s: failed to locate ar.pfs!\n", __FUNCTION__); |
1891 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); | 1894 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); |
1892 | return -1; | 1895 | return -1; |
1893 | } | 1896 | } |
1897 | /* restore the cfm: */ | ||
1894 | info->cfm_loc = info->pfs_loc; | 1898 | info->cfm_loc = info->pfs_loc; |
1895 | 1899 | ||
1896 | /* restore the bsp: */ | 1900 | /* restore the bsp: */ |
@@ -1992,13 +1996,16 @@ init_frame_info (struct unw_frame_info *info, struct task_struct *t, | |||
1992 | memset(info, 0, sizeof(*info)); | 1996 | memset(info, 0, sizeof(*info)); |
1993 | 1997 | ||
1994 | rbslimit = (unsigned long) t + IA64_RBS_OFFSET; | 1998 | rbslimit = (unsigned long) t + IA64_RBS_OFFSET; |
1999 | stklimit = (unsigned long) t + IA64_STK_OFFSET; | ||
2000 | |||
1995 | rbstop = sw->ar_bspstore; | 2001 | rbstop = sw->ar_bspstore; |
1996 | if (rbstop - (unsigned long) t >= IA64_STK_OFFSET) | 2002 | if (rbstop > stklimit || rbstop < rbslimit) |
1997 | rbstop = rbslimit; | 2003 | rbstop = rbslimit; |
1998 | 2004 | ||
1999 | stklimit = (unsigned long) t + IA64_STK_OFFSET; | ||
2000 | if (stktop <= rbstop) | 2005 | if (stktop <= rbstop) |
2001 | stktop = rbstop; | 2006 | stktop = rbstop; |
2007 | if (stktop > stklimit) | ||
2008 | stktop = stklimit; | ||
2002 | 2009 | ||
2003 | info->regstk.limit = rbslimit; | 2010 | info->regstk.limit = rbslimit; |
2004 | info->regstk.top = rbstop; | 2011 | info->regstk.top = rbstop; |
diff --git a/arch/ia64/kernel/vmlinux.lds.S b/arch/ia64/kernel/vmlinux.lds.S index 692382642118..5a65965c8b53 100644 --- a/arch/ia64/kernel/vmlinux.lds.S +++ b/arch/ia64/kernel/vmlinux.lds.S | |||
@@ -44,7 +44,7 @@ SECTIONS | |||
44 | .text : AT(ADDR(.text) - LOAD_OFFSET) | 44 | .text : AT(ADDR(.text) - LOAD_OFFSET) |
45 | { | 45 | { |
46 | IVT_TEXT | 46 | IVT_TEXT |
47 | *(.text) | 47 | TEXT_TEXT |
48 | SCHED_TEXT | 48 | SCHED_TEXT |
49 | LOCK_TEXT | 49 | LOCK_TEXT |
50 | KPROBES_TEXT | 50 | KPROBES_TEXT |
@@ -214,7 +214,12 @@ SECTIONS | |||
214 | 214 | ||
215 | data : { } :data | 215 | data : { } :data |
216 | .data : AT(ADDR(.data) - LOAD_OFFSET) | 216 | .data : AT(ADDR(.data) - LOAD_OFFSET) |
217 | { *(.data) *(.data1) *(.gnu.linkonce.d*) CONSTRUCTORS } | 217 | { |
218 | DATA_DATA | ||
219 | *(.data1) | ||
220 | *(.gnu.linkonce.d*) | ||
221 | CONSTRUCTORS | ||
222 | } | ||
218 | 223 | ||
219 | . = ALIGN(16); /* gp must be 16-byte aligned for exc. table */ | 224 | . = ALIGN(16); /* gp must be 16-byte aligned for exc. table */ |
220 | .got : AT(ADDR(.got) - LOAD_OFFSET) | 225 | .got : AT(ADDR(.got) - LOAD_OFFSET) |
diff --git a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c index 38085ac18338..0dbf0e81f8c0 100644 --- a/arch/ia64/mm/discontig.c +++ b/arch/ia64/mm/discontig.c | |||
@@ -317,7 +317,7 @@ static void __meminit scatter_node_data(void) | |||
317 | * node_online_map is not set for hot-added nodes at this time, | 317 | * node_online_map is not set for hot-added nodes at this time, |
318 | * because we are halfway through initialization of the new node's | 318 | * because we are halfway through initialization of the new node's |
319 | * structures. If for_each_online_node() is used, a new node's | 319 | * structures. If for_each_online_node() is used, a new node's |
320 | * pg_data_ptrs will be not initialized. Insted of using it, | 320 | * pg_data_ptrs will be not initialized. Instead of using it, |
321 | * pgdat_list[] is checked. | 321 | * pgdat_list[] is checked. |
322 | */ | 322 | */ |
323 | for_each_node(node) { | 323 | for_each_node(node) { |
diff --git a/arch/ia64/mm/fault.c b/arch/ia64/mm/fault.c index 21658e02116c..b87f785c2416 100644 --- a/arch/ia64/mm/fault.c +++ b/arch/ia64/mm/fault.c | |||
@@ -19,36 +19,24 @@ | |||
19 | extern void die (char *, struct pt_regs *, long); | 19 | extern void die (char *, struct pt_regs *, long); |
20 | 20 | ||
21 | #ifdef CONFIG_KPROBES | 21 | #ifdef CONFIG_KPROBES |
22 | ATOMIC_NOTIFIER_HEAD(notify_page_fault_chain); | 22 | static inline int notify_page_fault(struct pt_regs *regs, int trap) |
23 | |||
24 | /* Hook to register for page fault notifications */ | ||
25 | int register_page_fault_notifier(struct notifier_block *nb) | ||
26 | { | ||
27 | return atomic_notifier_chain_register(¬ify_page_fault_chain, nb); | ||
28 | } | ||
29 | |||
30 | int unregister_page_fault_notifier(struct notifier_block *nb) | ||
31 | { | 23 | { |
32 | return atomic_notifier_chain_unregister(¬ify_page_fault_chain, nb); | 24 | int ret = 0; |
33 | } | 25 | |
26 | if (!user_mode(regs)) { | ||
27 | /* kprobe_running() needs smp_processor_id() */ | ||
28 | preempt_disable(); | ||
29 | if (kprobe_running() && kprobes_fault_handler(regs, trap)) | ||
30 | ret = 1; | ||
31 | preempt_enable(); | ||
32 | } | ||
34 | 33 | ||
35 | static inline int notify_page_fault(enum die_val val, const char *str, | 34 | return ret; |
36 | struct pt_regs *regs, long err, int trap, int sig) | ||
37 | { | ||
38 | struct die_args args = { | ||
39 | .regs = regs, | ||
40 | .str = str, | ||
41 | .err = err, | ||
42 | .trapnr = trap, | ||
43 | .signr = sig | ||
44 | }; | ||
45 | return atomic_notifier_call_chain(¬ify_page_fault_chain, val, &args); | ||
46 | } | 35 | } |
47 | #else | 36 | #else |
48 | static inline int notify_page_fault(enum die_val val, const char *str, | 37 | static inline int notify_page_fault(struct pt_regs *regs, int trap) |
49 | struct pt_regs *regs, long err, int trap, int sig) | ||
50 | { | 38 | { |
51 | return NOTIFY_DONE; | 39 | return 0; |
52 | } | 40 | } |
53 | #endif | 41 | #endif |
54 | 42 | ||
@@ -117,8 +105,7 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re | |||
117 | /* | 105 | /* |
118 | * This is to handle the kprobes on user space access instructions | 106 | * This is to handle the kprobes on user space access instructions |
119 | */ | 107 | */ |
120 | if (notify_page_fault(DIE_PAGE_FAULT, "page fault", regs, code, TRAP_BRKPT, | 108 | if (notify_page_fault(regs, TRAP_BRKPT)) |
121 | SIGSEGV) == NOTIFY_STOP) | ||
122 | return; | 109 | return; |
123 | 110 | ||
124 | down_read(&mm->mmap_sem); | 111 | down_read(&mm->mmap_sem); |
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c index 3549f3b42592..73696b4a2eed 100644 --- a/arch/ia64/pci/pci.c +++ b/arch/ia64/pci/pci.c | |||
@@ -354,10 +354,13 @@ pci_acpi_scan_root(struct acpi_device *device, int domain, int bus) | |||
354 | 354 | ||
355 | acpi_walk_resources(device->handle, METHOD_NAME__CRS, count_window, | 355 | acpi_walk_resources(device->handle, METHOD_NAME__CRS, count_window, |
356 | &windows); | 356 | &windows); |
357 | controller->window = kmalloc_node(sizeof(*controller->window) * windows, | 357 | if (windows) { |
358 | GFP_KERNEL, controller->node); | 358 | controller->window = |
359 | if (!controller->window) | 359 | kmalloc_node(sizeof(*controller->window) * windows, |
360 | goto out2; | 360 | GFP_KERNEL, controller->node); |
361 | if (!controller->window) | ||
362 | goto out2; | ||
363 | } | ||
361 | 364 | ||
362 | name = kmalloc(16, GFP_KERNEL); | 365 | name = kmalloc(16, GFP_KERNEL); |
363 | if (!name) | 366 | if (!name) |
diff --git a/arch/ia64/sn/kernel/bte.c b/arch/ia64/sn/kernel/bte.c index ff1c55601178..b362d6d6a8c8 100644 --- a/arch/ia64/sn/kernel/bte.c +++ b/arch/ia64/sn/kernel/bte.c | |||
@@ -63,7 +63,7 @@ static inline void bte_start_transfer(struct bteinfo_s *bte, u64 len, u64 mode) | |||
63 | * Use the block transfer engine to move kernel memory from src to dest | 63 | * Use the block transfer engine to move kernel memory from src to dest |
64 | * using the assigned mode. | 64 | * using the assigned mode. |
65 | * | 65 | * |
66 | * Paramaters: | 66 | * Parameters: |
67 | * src - physical address of the transfer source. | 67 | * src - physical address of the transfer source. |
68 | * dest - physical address of the transfer destination. | 68 | * dest - physical address of the transfer destination. |
69 | * len - number of bytes to transfer from source to dest. | 69 | * len - number of bytes to transfer from source to dest. |
@@ -247,7 +247,7 @@ EXPORT_SYMBOL(bte_copy); | |||
247 | * use the block transfer engine to move kernel | 247 | * use the block transfer engine to move kernel |
248 | * memory from src to dest using the assigned mode. | 248 | * memory from src to dest using the assigned mode. |
249 | * | 249 | * |
250 | * Paramaters: | 250 | * Parameters: |
251 | * src - physical address of the transfer source. | 251 | * src - physical address of the transfer source. |
252 | * dest - physical address of the transfer destination. | 252 | * dest - physical address of the transfer destination. |
253 | * len - number of bytes to transfer from source to dest. | 253 | * len - number of bytes to transfer from source to dest. |
@@ -255,7 +255,7 @@ EXPORT_SYMBOL(bte_copy); | |||
255 | * for IBCT0/1 in the SGI documentation. | 255 | * for IBCT0/1 in the SGI documentation. |
256 | * | 256 | * |
257 | * NOTE: If the source, dest, and len are all cache line aligned, | 257 | * NOTE: If the source, dest, and len are all cache line aligned, |
258 | * then it would be _FAR_ preferrable to use bte_copy instead. | 258 | * then it would be _FAR_ preferable to use bte_copy instead. |
259 | */ | 259 | */ |
260 | bte_result_t bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode) | 260 | bte_result_t bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode) |
261 | { | 261 | { |
@@ -300,7 +300,7 @@ bte_result_t bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode) | |||
300 | * a standard bte copy. | 300 | * a standard bte copy. |
301 | * | 301 | * |
302 | * One nasty exception to the above rule is when the | 302 | * One nasty exception to the above rule is when the |
303 | * source and destination are not symetrically | 303 | * source and destination are not symmetrically |
304 | * mis-aligned. If the source offset from the first | 304 | * mis-aligned. If the source offset from the first |
305 | * cache line is different from the destination offset, | 305 | * cache line is different from the destination offset, |
306 | * we make the first section be the entire transfer | 306 | * we make the first section be the entire transfer |
@@ -337,7 +337,7 @@ bte_result_t bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode) | |||
337 | 337 | ||
338 | if (footBcopyDest == (headBcopyDest + headBcopyLen)) { | 338 | if (footBcopyDest == (headBcopyDest + headBcopyLen)) { |
339 | /* | 339 | /* |
340 | * We have two contigous bcopy | 340 | * We have two contiguous bcopy |
341 | * blocks. Merge them. | 341 | * blocks. Merge them. |
342 | */ | 342 | */ |
343 | headBcopyLen += footBcopyLen; | 343 | headBcopyLen += footBcopyLen; |
@@ -375,7 +375,7 @@ bte_result_t bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode) | |||
375 | } else { | 375 | } else { |
376 | 376 | ||
377 | /* | 377 | /* |
378 | * The transfer is not symetric, we will | 378 | * The transfer is not symmetric, we will |
379 | * allocate a buffer large enough for all the | 379 | * allocate a buffer large enough for all the |
380 | * data, bte_copy into that buffer and then | 380 | * data, bte_copy into that buffer and then |
381 | * bcopy to the destination. | 381 | * bcopy to the destination. |
diff --git a/arch/ia64/sn/kernel/bte_error.c b/arch/ia64/sn/kernel/bte_error.c index b6fcf8164f2b..27c5936ccfe9 100644 --- a/arch/ia64/sn/kernel/bte_error.c +++ b/arch/ia64/sn/kernel/bte_error.c | |||
@@ -105,7 +105,7 @@ int shub1_bte_error_handler(unsigned long _nodepda) | |||
105 | } | 105 | } |
106 | 106 | ||
107 | BTE_PRINTK(("eh:%p:%d Cleaning up\n", err_nodepda, smp_processor_id())); | 107 | BTE_PRINTK(("eh:%p:%d Cleaning up\n", err_nodepda, smp_processor_id())); |
108 | /* Reenable both bte interfaces */ | 108 | /* Re-enable both bte interfaces */ |
109 | imem.ii_imem_regval = REMOTE_HUB_L(nasid, IIO_IMEM); | 109 | imem.ii_imem_regval = REMOTE_HUB_L(nasid, IIO_IMEM); |
110 | imem.ii_imem_fld_s.i_b0_esd = imem.ii_imem_fld_s.i_b1_esd = 1; | 110 | imem.ii_imem_fld_s.i_b0_esd = imem.ii_imem_fld_s.i_b1_esd = 1; |
111 | REMOTE_HUB_S(nasid, IIO_IMEM, imem.ii_imem_regval); | 111 | REMOTE_HUB_S(nasid, IIO_IMEM, imem.ii_imem_regval); |
@@ -243,7 +243,7 @@ bte_crb_error_handler(cnodeid_t cnode, int btenum, | |||
243 | 243 | ||
244 | /* | 244 | /* |
245 | * The caller has already figured out the error type, we save that | 245 | * The caller has already figured out the error type, we save that |
246 | * in the bte handle structure for the thread excercising the | 246 | * in the bte handle structure for the thread exercising the |
247 | * interface to consume. | 247 | * interface to consume. |
248 | */ | 248 | */ |
249 | bte->bh_error = ioe->ie_errortype + BTEFAIL_OFFSET; | 249 | bte->bh_error = ioe->ie_errortype + BTEFAIL_OFFSET; |
diff --git a/arch/ia64/sn/kernel/io_common.c b/arch/ia64/sn/kernel/io_common.c index 7ed72d3faf73..787ed642dd49 100644 --- a/arch/ia64/sn/kernel/io_common.c +++ b/arch/ia64/sn/kernel/io_common.c | |||
@@ -479,7 +479,7 @@ sn_io_early_init(void) | |||
479 | } | 479 | } |
480 | 480 | ||
481 | /* | 481 | /* |
482 | * prime sn_pci_provider[]. Individial provider init routines will | 482 | * prime sn_pci_provider[]. Individual provider init routines will |
483 | * override their respective default entries. | 483 | * override their respective default entries. |
484 | */ | 484 | */ |
485 | 485 | ||
diff --git a/arch/ia64/sn/kernel/setup.c b/arch/ia64/sn/kernel/setup.c index a9bed5ca2ed8..684b1c984a44 100644 --- a/arch/ia64/sn/kernel/setup.c +++ b/arch/ia64/sn/kernel/setup.c | |||
@@ -167,7 +167,7 @@ void __init early_sn_setup(void) | |||
167 | * IO on SN2 is done via SAL calls, early_printk won't work without this. | 167 | * IO on SN2 is done via SAL calls, early_printk won't work without this. |
168 | * | 168 | * |
169 | * This code duplicates some of the ACPI table parsing that is in efi.c & sal.c. | 169 | * This code duplicates some of the ACPI table parsing that is in efi.c & sal.c. |
170 | * Any changes to those file may have to be made hereas well. | 170 | * Any changes to those file may have to be made here as well. |
171 | */ | 171 | */ |
172 | efi_systab = (efi_system_table_t *) __va(ia64_boot_param->efi_systab); | 172 | efi_systab = (efi_system_table_t *) __va(ia64_boot_param->efi_systab); |
173 | config_tables = __va(efi_systab->tables); | 173 | config_tables = __va(efi_systab->tables); |
@@ -194,7 +194,7 @@ void __init early_sn_setup(void) | |||
194 | } | 194 | } |
195 | 195 | ||
196 | extern int platform_intr_list[]; | 196 | extern int platform_intr_list[]; |
197 | static int __initdata shub_1_1_found; | 197 | static int __cpuinitdata shub_1_1_found; |
198 | 198 | ||
199 | /* | 199 | /* |
200 | * sn_check_for_wars | 200 | * sn_check_for_wars |
diff --git a/arch/ia64/sn/kernel/sn2/sn2_smp.c b/arch/ia64/sn/kernel/sn2/sn2_smp.c index 5d318b579fb1..033c8a9f000e 100644 --- a/arch/ia64/sn/kernel/sn2/sn2_smp.c +++ b/arch/ia64/sn/kernel/sn2/sn2_smp.c | |||
@@ -104,7 +104,7 @@ static inline unsigned long wait_piowc(void) | |||
104 | * | 104 | * |
105 | * SN2 PIO writes from separate CPUs are not guaranteed to arrive in order. | 105 | * SN2 PIO writes from separate CPUs are not guaranteed to arrive in order. |
106 | * Context switching user threads which have memory-mapped MMIO may cause | 106 | * Context switching user threads which have memory-mapped MMIO may cause |
107 | * PIOs to issue from seperate CPUs, thus the PIO writes must be drained | 107 | * PIOs to issue from separate CPUs, thus the PIO writes must be drained |
108 | * from the previous CPU's Shub before execution resumes on the new CPU. | 108 | * from the previous CPU's Shub before execution resumes on the new CPU. |
109 | */ | 109 | */ |
110 | void sn_migrate(struct task_struct *task) | 110 | void sn_migrate(struct task_struct *task) |
diff --git a/arch/ia64/sn/kernel/xpc_channel.c b/arch/ia64/sn/kernel/xpc_channel.c index c08db9c2375d..44ccc0d789c9 100644 --- a/arch/ia64/sn/kernel/xpc_channel.c +++ b/arch/ia64/sn/kernel/xpc_channel.c | |||
@@ -293,7 +293,7 @@ xpc_pull_remote_cachelines(struct xpc_partition *part, void *dst, | |||
293 | 293 | ||
294 | 294 | ||
295 | /* | 295 | /* |
296 | * Pull the remote per partititon specific variables from the specified | 296 | * Pull the remote per partition specific variables from the specified |
297 | * partition. | 297 | * partition. |
298 | */ | 298 | */ |
299 | enum xpc_retval | 299 | enum xpc_retval |
@@ -461,7 +461,7 @@ xpc_allocate_local_msgqueue(struct xpc_channel *ch) | |||
461 | // >>> may want to check for ch->flags & XPC_C_DISCONNECTING between | 461 | // >>> may want to check for ch->flags & XPC_C_DISCONNECTING between |
462 | // >>> iterations of the for-loop, bail if set? | 462 | // >>> iterations of the for-loop, bail if set? |
463 | 463 | ||
464 | // >>> should we impose a minumum #of entries? like 4 or 8? | 464 | // >>> should we impose a minimum #of entries? like 4 or 8? |
465 | for (nentries = ch->local_nentries; nentries > 0; nentries--) { | 465 | for (nentries = ch->local_nentries; nentries > 0; nentries--) { |
466 | 466 | ||
467 | nbytes = nentries * ch->msg_size; | 467 | nbytes = nentries * ch->msg_size; |
@@ -514,7 +514,7 @@ xpc_allocate_remote_msgqueue(struct xpc_channel *ch) | |||
514 | // >>> may want to check for ch->flags & XPC_C_DISCONNECTING between | 514 | // >>> may want to check for ch->flags & XPC_C_DISCONNECTING between |
515 | // >>> iterations of the for-loop, bail if set? | 515 | // >>> iterations of the for-loop, bail if set? |
516 | 516 | ||
517 | // >>> should we impose a minumum #of entries? like 4 or 8? | 517 | // >>> should we impose a minimum #of entries? like 4 or 8? |
518 | for (nentries = ch->remote_nentries; nentries > 0; nentries--) { | 518 | for (nentries = ch->remote_nentries; nentries > 0; nentries--) { |
519 | 519 | ||
520 | nbytes = nentries * ch->msg_size; | 520 | nbytes = nentries * ch->msg_size; |
@@ -1478,7 +1478,7 @@ xpc_teardown_infrastructure(struct xpc_partition *part) | |||
1478 | 1478 | ||
1479 | 1479 | ||
1480 | /* | 1480 | /* |
1481 | * Before proceding with the teardown we have to wait until all | 1481 | * Before proceeding with the teardown we have to wait until all |
1482 | * existing references cease. | 1482 | * existing references cease. |
1483 | */ | 1483 | */ |
1484 | wait_event(part->teardown_wq, (atomic_read(&part->references) == 0)); | 1484 | wait_event(part->teardown_wq, (atomic_read(&part->references) == 0)); |
diff --git a/arch/ia64/sn/kernel/xpnet.c b/arch/ia64/sn/kernel/xpnet.c index da7213530972..e58fcadff2e9 100644 --- a/arch/ia64/sn/kernel/xpnet.c +++ b/arch/ia64/sn/kernel/xpnet.c | |||
@@ -531,7 +531,7 @@ xpnet_dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
531 | dev_dbg(xpnet, "destination Partitions mask (dp) = 0x%lx\n", dp); | 531 | dev_dbg(xpnet, "destination Partitions mask (dp) = 0x%lx\n", dp); |
532 | 532 | ||
533 | /* | 533 | /* |
534 | * If we wanted to allow promiscous mode to work like an | 534 | * If we wanted to allow promiscuous mode to work like an |
535 | * unswitched network, this would be a good point to OR in a | 535 | * unswitched network, this would be a good point to OR in a |
536 | * mask of partitions which should be receiving all packets. | 536 | * mask of partitions which should be receiving all packets. |
537 | */ | 537 | */ |
diff --git a/arch/ia64/sn/pci/pci_dma.c b/arch/ia64/sn/pci/pci_dma.c index 7a291a271511..d79ddacfba2d 100644 --- a/arch/ia64/sn/pci/pci_dma.c +++ b/arch/ia64/sn/pci/pci_dma.c | |||
@@ -333,7 +333,7 @@ int sn_pci_legacy_read(struct pci_bus *bus, u16 port, u32 *val, u8 size) | |||
333 | /* | 333 | /* |
334 | * First, try the SN_SAL_IOIF_PCI_SAFE SAL call which can work | 334 | * First, try the SN_SAL_IOIF_PCI_SAFE SAL call which can work |
335 | * around hw issues at the pci bus level. SGI proms older than | 335 | * around hw issues at the pci bus level. SGI proms older than |
336 | * 4.10 don't implment this. | 336 | * 4.10 don't implement this. |
337 | */ | 337 | */ |
338 | 338 | ||
339 | SAL_CALL(isrv, SN_SAL_IOIF_PCI_SAFE, | 339 | SAL_CALL(isrv, SN_SAL_IOIF_PCI_SAFE, |
@@ -348,7 +348,7 @@ int sn_pci_legacy_read(struct pci_bus *bus, u16 port, u32 *val, u8 size) | |||
348 | /* | 348 | /* |
349 | * If the above failed, retry using the SAL_PROBE call which should | 349 | * If the above failed, retry using the SAL_PROBE call which should |
350 | * be present in all proms (but which cannot work round PCI chipset | 350 | * be present in all proms (but which cannot work round PCI chipset |
351 | * bugs). This code is retained for compatability with old | 351 | * bugs). This code is retained for compatibility with old |
352 | * pre-4.10 proms, and should be removed at some point in the future. | 352 | * pre-4.10 proms, and should be removed at some point in the future. |
353 | */ | 353 | */ |
354 | 354 | ||
@@ -379,7 +379,7 @@ int sn_pci_legacy_write(struct pci_bus *bus, u16 port, u32 val, u8 size) | |||
379 | /* | 379 | /* |
380 | * First, try the SN_SAL_IOIF_PCI_SAFE SAL call which can work | 380 | * First, try the SN_SAL_IOIF_PCI_SAFE SAL call which can work |
381 | * around hw issues at the pci bus level. SGI proms older than | 381 | * around hw issues at the pci bus level. SGI proms older than |
382 | * 4.10 don't implment this. | 382 | * 4.10 don't implement this. |
383 | */ | 383 | */ |
384 | 384 | ||
385 | SAL_CALL(isrv, SN_SAL_IOIF_PCI_SAFE, | 385 | SAL_CALL(isrv, SN_SAL_IOIF_PCI_SAFE, |
@@ -394,7 +394,7 @@ int sn_pci_legacy_write(struct pci_bus *bus, u16 port, u32 val, u8 size) | |||
394 | /* | 394 | /* |
395 | * If the above failed, retry using the SAL_PROBE call which should | 395 | * If the above failed, retry using the SAL_PROBE call which should |
396 | * be present in all proms (but which cannot work round PCI chipset | 396 | * be present in all proms (but which cannot work round PCI chipset |
397 | * bugs). This code is retained for compatability with old | 397 | * bugs). This code is retained for compatibility with old |
398 | * pre-4.10 proms, and should be removed at some point in the future. | 398 | * pre-4.10 proms, and should be removed at some point in the future. |
399 | */ | 399 | */ |
400 | 400 | ||
diff --git a/arch/ia64/sn/pci/pcibr/pcibr_ate.c b/arch/ia64/sn/pci/pcibr/pcibr_ate.c index 935029fc400d..239b3cedcf2b 100644 --- a/arch/ia64/sn/pci/pcibr/pcibr_ate.c +++ b/arch/ia64/sn/pci/pcibr/pcibr_ate.c | |||
@@ -30,7 +30,7 @@ static void mark_ate(struct ate_resource *ate_resource, int start, int number, | |||
30 | 30 | ||
31 | /* | 31 | /* |
32 | * find_free_ate: Find the first free ate index starting from the given | 32 | * find_free_ate: Find the first free ate index starting from the given |
33 | * index for the desired consequtive count. | 33 | * index for the desired consecutive count. |
34 | */ | 34 | */ |
35 | static int find_free_ate(struct ate_resource *ate_resource, int start, | 35 | static int find_free_ate(struct ate_resource *ate_resource, int start, |
36 | int count) | 36 | int count) |
@@ -88,7 +88,7 @@ static inline int alloc_ate_resource(struct ate_resource *ate_resource, | |||
88 | return -1; | 88 | return -1; |
89 | 89 | ||
90 | /* | 90 | /* |
91 | * Find the required number of free consequtive ates. | 91 | * Find the required number of free consecutive ates. |
92 | */ | 92 | */ |
93 | start_index = | 93 | start_index = |
94 | find_free_ate(ate_resource, ate_resource->lowest_free_index, | 94 | find_free_ate(ate_resource, ate_resource->lowest_free_index, |
@@ -105,7 +105,7 @@ static inline int alloc_ate_resource(struct ate_resource *ate_resource, | |||
105 | /* | 105 | /* |
106 | * Allocate "count" contiguous Bridge Address Translation Entries | 106 | * Allocate "count" contiguous Bridge Address Translation Entries |
107 | * on the specified bridge to be used for PCI to XTALK mappings. | 107 | * on the specified bridge to be used for PCI to XTALK mappings. |
108 | * Indices in rm map range from 1..num_entries. Indicies returned | 108 | * Indices in rm map range from 1..num_entries. Indices returned |
109 | * to caller range from 0..num_entries-1. | 109 | * to caller range from 0..num_entries-1. |
110 | * | 110 | * |
111 | * Return the start index on success, -1 on failure. | 111 | * Return the start index on success, -1 on failure. |
diff --git a/arch/ia64/sn/pci/pcibr/pcibr_dma.c b/arch/ia64/sn/pci/pcibr/pcibr_dma.c index 95af40cb22f2..e626e50a938a 100644 --- a/arch/ia64/sn/pci/pcibr/pcibr_dma.c +++ b/arch/ia64/sn/pci/pcibr/pcibr_dma.c | |||
@@ -201,7 +201,7 @@ pcibr_dmatrans_direct32(struct pcidev_info * info, | |||
201 | } | 201 | } |
202 | 202 | ||
203 | /* | 203 | /* |
204 | * Wrapper routine for free'ing DMA maps | 204 | * Wrapper routine for freeing DMA maps |
205 | * DMA mappings for Direct 64 and 32 do not have any DMA maps. | 205 | * DMA mappings for Direct 64 and 32 do not have any DMA maps. |
206 | */ | 206 | */ |
207 | void | 207 | void |
diff --git a/arch/ia64/sn/pci/tioca_provider.c b/arch/ia64/sn/pci/tioca_provider.c index 8a2cb4e691fd..b9bedbd6e1d6 100644 --- a/arch/ia64/sn/pci/tioca_provider.c +++ b/arch/ia64/sn/pci/tioca_provider.c | |||
@@ -223,7 +223,7 @@ tioca_fastwrite_enable(struct tioca_kernel *tioca_kern) | |||
223 | 223 | ||
224 | /* | 224 | /* |
225 | * Scan all vga controllers on this bus making sure they all | 225 | * Scan all vga controllers on this bus making sure they all |
226 | * suport FW. If not, return. | 226 | * support FW. If not, return. |
227 | */ | 227 | */ |
228 | 228 | ||
229 | list_for_each_entry(pdev, tioca_kern->ca_devices, bus_list) { | 229 | list_for_each_entry(pdev, tioca_kern->ca_devices, bus_list) { |
@@ -364,7 +364,7 @@ tioca_dma_d48(struct pci_dev *pdev, u64 paddr) | |||
364 | * @req_size: len (bytes) to map | 364 | * @req_size: len (bytes) to map |
365 | * | 365 | * |
366 | * Map @paddr into CA address space using the GART mechanism. The mapped | 366 | * Map @paddr into CA address space using the GART mechanism. The mapped |
367 | * dma_addr_t is guarenteed to be contiguous in CA bus space. | 367 | * dma_addr_t is guaranteed to be contiguous in CA bus space. |
368 | */ | 368 | */ |
369 | static dma_addr_t | 369 | static dma_addr_t |
370 | tioca_dma_mapped(struct pci_dev *pdev, u64 paddr, size_t req_size) | 370 | tioca_dma_mapped(struct pci_dev *pdev, u64 paddr, size_t req_size) |
@@ -526,7 +526,7 @@ tioca_dma_map(struct pci_dev *pdev, u64 paddr, size_t byte_count, int dma_flags) | |||
526 | return 0; | 526 | return 0; |
527 | 527 | ||
528 | /* | 528 | /* |
529 | * If card is 64 or 48 bit addresable, use a direct mapping. 32 | 529 | * If card is 64 or 48 bit addressable, use a direct mapping. 32 |
530 | * bit direct is so restrictive w.r.t. where the memory resides that | 530 | * bit direct is so restrictive w.r.t. where the memory resides that |
531 | * we don't use it even though CA has some support. | 531 | * we don't use it even though CA has some support. |
532 | */ | 532 | */ |
diff --git a/arch/ia64/sn/pci/tioce_provider.c b/arch/ia64/sn/pci/tioce_provider.c index 35f854fb6120..f4c0b961a939 100644 --- a/arch/ia64/sn/pci/tioce_provider.c +++ b/arch/ia64/sn/pci/tioce_provider.c | |||
@@ -256,9 +256,9 @@ pcidev_to_tioce(struct pci_dev *pdev, struct tioce __iomem **base, | |||
256 | * @ct_addr: the coretalk address to map | 256 | * @ct_addr: the coretalk address to map |
257 | * @len: number of bytes to map | 257 | * @len: number of bytes to map |
258 | * | 258 | * |
259 | * Given the addressing type, set up various paramaters that define the | 259 | * Given the addressing type, set up various parameters that define the |
260 | * ATE pool to use. Search for a contiguous block of entries to cover the | 260 | * ATE pool to use. Search for a contiguous block of entries to cover the |
261 | * length, and if enough resources exist, fill in the ATE's and construct a | 261 | * length, and if enough resources exist, fill in the ATEs and construct a |
262 | * tioce_dmamap struct to track the mapping. | 262 | * tioce_dmamap struct to track the mapping. |
263 | */ | 263 | */ |
264 | static u64 | 264 | static u64 |
@@ -581,8 +581,8 @@ tioce_do_dma_map(struct pci_dev *pdev, u64 paddr, size_t byte_count, | |||
581 | */ | 581 | */ |
582 | if (!mapaddr && !barrier && dma_mask >= 0xffffffffffUL) { | 582 | if (!mapaddr && !barrier && dma_mask >= 0xffffffffffUL) { |
583 | /* | 583 | /* |
584 | * We have two options for 40-bit mappings: 16GB "super" ATE's | 584 | * We have two options for 40-bit mappings: 16GB "super" ATEs |
585 | * and 64MB "regular" ATE's. We'll try both if needed for a | 585 | * and 64MB "regular" ATEs. We'll try both if needed for a |
586 | * given mapping but which one we try first depends on the | 586 | * given mapping but which one we try first depends on the |
587 | * size. For requests >64MB, prefer to use a super page with | 587 | * size. For requests >64MB, prefer to use a super page with |
588 | * regular as the fallback. Otherwise, try in the reverse order. | 588 | * regular as the fallback. Otherwise, try in the reverse order. |
@@ -687,8 +687,8 @@ tioce_error_intr_handler(int irq, void *arg) | |||
687 | } | 687 | } |
688 | 688 | ||
689 | /** | 689 | /** |
690 | * tioce_reserve_m32 - reserve M32 ate's for the indicated address range | 690 | * tioce_reserve_m32 - reserve M32 ATEs for the indicated address range |
691 | * @tioce_kernel: TIOCE context to reserve ate's for | 691 | * @tioce_kernel: TIOCE context to reserve ATEs for |
692 | * @base: starting bus address to reserve | 692 | * @base: starting bus address to reserve |
693 | * @limit: last bus address to reserve | 693 | * @limit: last bus address to reserve |
694 | * | 694 | * |
@@ -763,7 +763,7 @@ tioce_kern_init(struct tioce_common *tioce_common) | |||
763 | 763 | ||
764 | /* | 764 | /* |
765 | * Set PMU pagesize to the largest size available, and zero out | 765 | * Set PMU pagesize to the largest size available, and zero out |
766 | * the ate's. | 766 | * the ATEs. |
767 | */ | 767 | */ |
768 | 768 | ||
769 | tioce_mmr = (struct tioce __iomem *)tioce_common->ce_pcibus.bs_base; | 769 | tioce_mmr = (struct tioce __iomem *)tioce_common->ce_pcibus.bs_base; |
@@ -784,7 +784,7 @@ tioce_kern_init(struct tioce_common *tioce_common) | |||
784 | } | 784 | } |
785 | 785 | ||
786 | /* | 786 | /* |
787 | * Reserve ATE's corresponding to reserved address ranges. These | 787 | * Reserve ATEs corresponding to reserved address ranges. These |
788 | * include: | 788 | * include: |
789 | * | 789 | * |
790 | * Memory space covered by each PPB mem base/limit register | 790 | * Memory space covered by each PPB mem base/limit register |
diff --git a/arch/m32r/kernel/vmlinux.lds.S b/arch/m32r/kernel/vmlinux.lds.S index 6c73bca3f478..4e2d5b9f0a9a 100644 --- a/arch/m32r/kernel/vmlinux.lds.S +++ b/arch/m32r/kernel/vmlinux.lds.S | |||
@@ -27,7 +27,7 @@ SECTIONS | |||
27 | _text = .; /* Text and read-only data */ | 27 | _text = .; /* Text and read-only data */ |
28 | .boot : { *(.boot) } = 0 | 28 | .boot : { *(.boot) } = 0 |
29 | .text : { | 29 | .text : { |
30 | *(.text) | 30 | TEXT_TEXT |
31 | SCHED_TEXT | 31 | SCHED_TEXT |
32 | LOCK_TEXT | 32 | LOCK_TEXT |
33 | *(.fixup) | 33 | *(.fixup) |
@@ -50,7 +50,7 @@ SECTIONS | |||
50 | .data : { /* Data */ | 50 | .data : { /* Data */ |
51 | *(.spu) | 51 | *(.spu) |
52 | *(.spi) | 52 | *(.spi) |
53 | *(.data) | 53 | DATA_DATA |
54 | CONSTRUCTORS | 54 | CONSTRUCTORS |
55 | } | 55 | } |
56 | 56 | ||
diff --git a/arch/m68k/kernel/vmlinux-std.lds b/arch/m68k/kernel/vmlinux-std.lds index 437b4f8d86c5..78f139226a1b 100644 --- a/arch/m68k/kernel/vmlinux-std.lds +++ b/arch/m68k/kernel/vmlinux-std.lds | |||
@@ -11,7 +11,7 @@ SECTIONS | |||
11 | . = 0x1000; | 11 | . = 0x1000; |
12 | _text = .; /* Text and read-only data */ | 12 | _text = .; /* Text and read-only data */ |
13 | .text : { | 13 | .text : { |
14 | *(.text) | 14 | TEXT_TEXT |
15 | SCHED_TEXT | 15 | SCHED_TEXT |
16 | LOCK_TEXT | 16 | LOCK_TEXT |
17 | *(.fixup) | 17 | *(.fixup) |
@@ -28,7 +28,7 @@ SECTIONS | |||
28 | _etext = .; /* End of text section */ | 28 | _etext = .; /* End of text section */ |
29 | 29 | ||
30 | .data : { /* Data */ | 30 | .data : { /* Data */ |
31 | *(.data) | 31 | DATA_DATA |
32 | CONSTRUCTORS | 32 | CONSTRUCTORS |
33 | } | 33 | } |
34 | 34 | ||
diff --git a/arch/m68k/kernel/vmlinux-sun3.lds b/arch/m68k/kernel/vmlinux-sun3.lds index 2868e206fc76..c8999b2db23b 100644 --- a/arch/m68k/kernel/vmlinux-sun3.lds +++ b/arch/m68k/kernel/vmlinux-sun3.lds | |||
@@ -12,7 +12,7 @@ SECTIONS | |||
12 | _text = .; /* Text and read-only data */ | 12 | _text = .; /* Text and read-only data */ |
13 | .text : { | 13 | .text : { |
14 | *(.head) | 14 | *(.head) |
15 | *(.text) | 15 | TEXT_TEXT |
16 | SCHED_TEXT | 16 | SCHED_TEXT |
17 | LOCK_TEXT | 17 | LOCK_TEXT |
18 | *(.fixup) | 18 | *(.fixup) |
@@ -23,7 +23,7 @@ SECTIONS | |||
23 | _etext = .; /* End of text section */ | 23 | _etext = .; /* End of text section */ |
24 | 24 | ||
25 | .data : { /* Data */ | 25 | .data : { /* Data */ |
26 | *(.data) | 26 | DATA_DATA |
27 | CONSTRUCTORS | 27 | CONSTRUCTORS |
28 | . = ALIGN(16); /* Exception table */ | 28 | . = ALIGN(16); /* Exception table */ |
29 | __start___ex_table = .; | 29 | __start___ex_table = .; |
diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig index 823f73736bb5..adc64a2bafbb 100644 --- a/arch/m68knommu/Kconfig +++ b/arch/m68knommu/Kconfig | |||
@@ -470,14 +470,6 @@ config AVNET | |||
470 | default y | 470 | default y |
471 | depends on (AVNET5282) | 471 | depends on (AVNET5282) |
472 | 472 | ||
473 | config LARGE_ALLOCS | ||
474 | bool "Allow allocating large blocks (> 1MB) of memory" | ||
475 | help | ||
476 | Allow the slab memory allocator to keep chains for very large | ||
477 | memory sizes - upto 32MB. You may need this if your system has | ||
478 | a lot of RAM, and you need to able to allocate very large | ||
479 | contiguous chunks. If unsure, say N. | ||
480 | |||
481 | config 4KSTACKS | 473 | config 4KSTACKS |
482 | bool "Use 4Kb for kernel stacks instead of 8Kb" | 474 | bool "Use 4Kb for kernel stacks instead of 8Kb" |
483 | default y | 475 | default y |
diff --git a/arch/m68knommu/kernel/vmlinux.lds.S b/arch/m68knommu/kernel/vmlinux.lds.S index c86a1bf589d4..07a0055602f4 100644 --- a/arch/m68knommu/kernel/vmlinux.lds.S +++ b/arch/m68knommu/kernel/vmlinux.lds.S | |||
@@ -62,7 +62,7 @@ SECTIONS { | |||
62 | .text : { | 62 | .text : { |
63 | _text = .; | 63 | _text = .; |
64 | _stext = . ; | 64 | _stext = . ; |
65 | *(.text) | 65 | TEXT_TEXT |
66 | SCHED_TEXT | 66 | SCHED_TEXT |
67 | *(.text.lock) | 67 | *(.text.lock) |
68 | 68 | ||
@@ -133,7 +133,7 @@ SECTIONS { | |||
133 | .data DATA_ADDR : { | 133 | .data DATA_ADDR : { |
134 | . = ALIGN(4); | 134 | . = ALIGN(4); |
135 | _sdata = . ; | 135 | _sdata = . ; |
136 | *(.data) | 136 | DATA_DATA |
137 | . = ALIGN(8192) ; | 137 | . = ALIGN(8192) ; |
138 | *(.data.init_task) | 138 | *(.data.init_task) |
139 | _edata = . ; | 139 | _edata = . ; |
diff --git a/arch/mips/kernel/unaligned.c b/arch/mips/kernel/unaligned.c index a7d49ae805b4..18c4a3c45a31 100644 --- a/arch/mips/kernel/unaligned.c +++ b/arch/mips/kernel/unaligned.c | |||
@@ -76,7 +76,7 @@ | |||
76 | #include <linux/module.h> | 76 | #include <linux/module.h> |
77 | #include <linux/signal.h> | 77 | #include <linux/signal.h> |
78 | #include <linux/smp.h> | 78 | #include <linux/smp.h> |
79 | 79 | #include <linux/sched.h> | |
80 | #include <asm/asm.h> | 80 | #include <asm/asm.h> |
81 | #include <asm/branch.h> | 81 | #include <asm/branch.h> |
82 | #include <asm/byteorder.h> | 82 | #include <asm/byteorder.h> |
diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S index 043f637e3d10..9b9992cd562a 100644 --- a/arch/mips/kernel/vmlinux.lds.S +++ b/arch/mips/kernel/vmlinux.lds.S | |||
@@ -27,7 +27,7 @@ SECTIONS | |||
27 | /* read-only */ | 27 | /* read-only */ |
28 | _text = .; /* Text and read-only data */ | 28 | _text = .; /* Text and read-only data */ |
29 | .text : { | 29 | .text : { |
30 | *(.text) | 30 | TEXT_TEXT |
31 | SCHED_TEXT | 31 | SCHED_TEXT |
32 | LOCK_TEXT | 32 | LOCK_TEXT |
33 | *(.fixup) | 33 | *(.fixup) |
@@ -62,7 +62,7 @@ SECTIONS | |||
62 | . = ALIGN(_PAGE_SIZE); | 62 | . = ALIGN(_PAGE_SIZE); |
63 | *(.data.init_task) | 63 | *(.data.init_task) |
64 | 64 | ||
65 | *(.data) | 65 | DATA_DATA |
66 | 66 | ||
67 | CONSTRUCTORS | 67 | CONSTRUCTORS |
68 | } | 68 | } |
diff --git a/arch/mips/mm/ioremap.c b/arch/mips/mm/ioremap.c index cea7d0ea36e4..59945b9ee23c 100644 --- a/arch/mips/mm/ioremap.c +++ b/arch/mips/mm/ioremap.c | |||
@@ -9,7 +9,7 @@ | |||
9 | #include <linux/module.h> | 9 | #include <linux/module.h> |
10 | #include <asm/addrspace.h> | 10 | #include <asm/addrspace.h> |
11 | #include <asm/byteorder.h> | 11 | #include <asm/byteorder.h> |
12 | 12 | #include <linux/sched.h> | |
13 | #include <linux/vmalloc.h> | 13 | #include <linux/vmalloc.h> |
14 | #include <asm/cacheflush.h> | 14 | #include <asm/cacheflush.h> |
15 | #include <asm/io.h> | 15 | #include <asm/io.h> |
diff --git a/arch/mips/sgi-ip32/Makefile b/arch/mips/sgi-ip32/Makefile index 7e1416768a60..60f0227425e7 100644 --- a/arch/mips/sgi-ip32/Makefile +++ b/arch/mips/sgi-ip32/Makefile | |||
@@ -3,5 +3,5 @@ | |||
3 | # under Linux. | 3 | # under Linux. |
4 | # | 4 | # |
5 | 5 | ||
6 | obj-y += ip32-berr.o ip32-irq.o ip32-setup.o ip32-reset.o \ | 6 | obj-y += ip32-berr.o ip32-irq.o ip32-platform.o ip32-setup.o ip32-reset.o \ |
7 | crime.o ip32-memory.o | 7 | crime.o ip32-memory.o |
diff --git a/arch/mips/sgi-ip32/ip32-platform.c b/arch/mips/sgi-ip32/ip32-platform.c new file mode 100644 index 000000000000..120b15932caf --- /dev/null +++ b/arch/mips/sgi-ip32/ip32-platform.c | |||
@@ -0,0 +1,20 @@ | |||
1 | #include <linux/init.h> | ||
2 | #include <linux/platform_device.h> | ||
3 | |||
4 | static __init int meth_devinit(void) | ||
5 | { | ||
6 | struct platform_device *pd; | ||
7 | int ret; | ||
8 | |||
9 | pd = platform_device_alloc("meth", -1); | ||
10 | if (!pd) | ||
11 | return -ENOMEM; | ||
12 | |||
13 | ret = platform_device_add(pd); | ||
14 | if (ret) | ||
15 | platform_device_put(pd); | ||
16 | |||
17 | return ret; | ||
18 | } | ||
19 | |||
20 | device_initcall(meth_devinit); | ||
diff --git a/arch/parisc/kernel/cache.c b/arch/parisc/kernel/cache.c index 0dc924ccceb5..395bbce64993 100644 --- a/arch/parisc/kernel/cache.c +++ b/arch/parisc/kernel/cache.c | |||
@@ -18,7 +18,7 @@ | |||
18 | #include <linux/module.h> | 18 | #include <linux/module.h> |
19 | #include <linux/seq_file.h> | 19 | #include <linux/seq_file.h> |
20 | #include <linux/pagemap.h> | 20 | #include <linux/pagemap.h> |
21 | 21 | #include <linux/sched.h> | |
22 | #include <asm/pdc.h> | 22 | #include <asm/pdc.h> |
23 | #include <asm/cache.h> | 23 | #include <asm/cache.h> |
24 | #include <asm/cacheflush.h> | 24 | #include <asm/cacheflush.h> |
diff --git a/arch/parisc/kernel/processor.c b/arch/parisc/kernel/processor.c index dd5d0cb6b347..566226d78bc9 100644 --- a/arch/parisc/kernel/processor.c +++ b/arch/parisc/kernel/processor.c | |||
@@ -33,7 +33,7 @@ | |||
33 | #include <linux/seq_file.h> | 33 | #include <linux/seq_file.h> |
34 | #include <linux/slab.h> | 34 | #include <linux/slab.h> |
35 | #include <linux/cpu.h> | 35 | #include <linux/cpu.h> |
36 | 36 | #include <asm/param.h> | |
37 | #include <asm/cache.h> | 37 | #include <asm/cache.h> |
38 | #include <asm/hardware.h> /* for register_parisc_driver() stuff */ | 38 | #include <asm/hardware.h> /* for register_parisc_driver() stuff */ |
39 | #include <asm/processor.h> | 39 | #include <asm/processor.h> |
diff --git a/arch/parisc/kernel/vmlinux.lds.S b/arch/parisc/kernel/vmlinux.lds.S index c74585990598..4d96ba4b9849 100644 --- a/arch/parisc/kernel/vmlinux.lds.S +++ b/arch/parisc/kernel/vmlinux.lds.S | |||
@@ -51,7 +51,7 @@ SECTIONS | |||
51 | 51 | ||
52 | _text = .; /* Text and read-only data */ | 52 | _text = .; /* Text and read-only data */ |
53 | .text ALIGN(16) : { | 53 | .text ALIGN(16) : { |
54 | *(.text) | 54 | TEXT_TEXT |
55 | SCHED_TEXT | 55 | SCHED_TEXT |
56 | LOCK_TEXT | 56 | LOCK_TEXT |
57 | *(.text.do_softirq) | 57 | *(.text.do_softirq) |
@@ -91,7 +91,7 @@ SECTIONS | |||
91 | 91 | ||
92 | . = ALIGN(L1_CACHE_BYTES); | 92 | . = ALIGN(L1_CACHE_BYTES); |
93 | .data : { /* Data */ | 93 | .data : { /* Data */ |
94 | *(.data) | 94 | DATA_DATA |
95 | CONSTRUCTORS | 95 | CONSTRUCTORS |
96 | } | 96 | } |
97 | 97 | ||
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 56d3c0dcd2b8..5eaeafd30bdf 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig | |||
@@ -118,6 +118,7 @@ config GENERIC_BUG | |||
118 | depends on BUG | 118 | depends on BUG |
119 | 119 | ||
120 | config SYS_SUPPORTS_APM_EMULATION | 120 | config SYS_SUPPORTS_APM_EMULATION |
121 | default y if PMAC_APM_EMU | ||
121 | bool | 122 | bool |
122 | 123 | ||
123 | config DEFAULT_UIMAGE | 124 | config DEFAULT_UIMAGE |
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile index d6014a67694b..6238b5875fd1 100644 --- a/arch/powerpc/Makefile +++ b/arch/powerpc/Makefile | |||
@@ -29,7 +29,7 @@ CROSS32CC := $(CC) -m32 | |||
29 | CROSS32AS := $(AS) -a32 | 29 | CROSS32AS := $(AS) -a32 |
30 | CROSS32LD := $(LD) -m elf32ppc | 30 | CROSS32LD := $(LD) -m elf32ppc |
31 | CROSS32OBJCOPY := $(OBJCOPY) | 31 | CROSS32OBJCOPY := $(OBJCOPY) |
32 | CROSS32AR := $(AR) | 32 | CROSS32AR := GNUTARGET=elf32-powerpc $(AR) |
33 | endif | 33 | endif |
34 | endif | 34 | endif |
35 | 35 | ||
@@ -58,6 +58,7 @@ ifeq ($(HAS_BIARCH),y) | |||
58 | override AS += -a$(SZ) | 58 | override AS += -a$(SZ) |
59 | override LD += -m elf$(SZ)ppc | 59 | override LD += -m elf$(SZ)ppc |
60 | override CC += -m$(SZ) | 60 | override CC += -m$(SZ) |
61 | override AR := GNUTARGET=elf$(SZ)-powerpc $(AR) | ||
61 | endif | 62 | endif |
62 | 63 | ||
63 | LDFLAGS_vmlinux := -Bstatic | 64 | LDFLAGS_vmlinux := -Bstatic |
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile index d4f9fef7f9e9..83788986b93b 100644 --- a/arch/powerpc/boot/Makefile +++ b/arch/powerpc/boot/Makefile | |||
@@ -33,6 +33,9 @@ endif | |||
33 | 33 | ||
34 | BOOTCFLAGS += -I$(obj) -I$(srctree)/$(obj) | 34 | BOOTCFLAGS += -I$(obj) -I$(srctree)/$(obj) |
35 | 35 | ||
36 | $(obj)/44x.o: BOOTCFLAGS += -Wa,-mbooke | ||
37 | $(obj)/ebony.o: BOOTCFLAGS += -Wa,-mbooke | ||
38 | |||
36 | zlib := inffast.c inflate.c inftrees.c | 39 | zlib := inffast.c inflate.c inftrees.c |
37 | zlibheader := inffast.h inffixed.h inflate.h inftrees.h infutil.h | 40 | zlibheader := inffast.h inffixed.h inflate.h inftrees.h infutil.h |
38 | zliblinuxheader := zlib.h zconf.h zutil.h | 41 | zliblinuxheader := zlib.h zconf.h zutil.h |
@@ -54,13 +57,13 @@ obj-wlib := $(addsuffix .o, $(basename $(addprefix $(obj)/, $(src-wlib)))) | |||
54 | obj-plat := $(addsuffix .o, $(basename $(addprefix $(obj)/, $(src-plat)))) | 57 | obj-plat := $(addsuffix .o, $(basename $(addprefix $(obj)/, $(src-plat)))) |
55 | 58 | ||
56 | quiet_cmd_copy_zlib = COPY $@ | 59 | quiet_cmd_copy_zlib = COPY $@ |
57 | cmd_copy_zlib = sed "s@__attribute_used__@@;s@<linux/\([^>]\+\).*@\"\1\"@" $< > $@ | 60 | cmd_copy_zlib = sed "s@__attribute_used__@@;s@<linux/\([^>]*\).*@\"\1\"@" $< > $@ |
58 | 61 | ||
59 | quiet_cmd_copy_zlibheader = COPY $@ | 62 | quiet_cmd_copy_zlibheader = COPY $@ |
60 | cmd_copy_zlibheader = sed "s@<linux/\([^>]\+\).*@\"\1\"@" $< > $@ | 63 | cmd_copy_zlibheader = sed "s@<linux/\([^>]*\).*@\"\1\"@" $< > $@ |
61 | # stddef.h for NULL | 64 | # stddef.h for NULL |
62 | quiet_cmd_copy_zliblinuxheader = COPY $@ | 65 | quiet_cmd_copy_zliblinuxheader = COPY $@ |
63 | cmd_copy_zliblinuxheader = sed "s@<linux/string.h>@\"string.h\"@;s@<linux/kernel.h>@<stddef.h>@;s@<linux/\([^>]\+\).*@\"\1\"@" $< > $@ | 66 | cmd_copy_zliblinuxheader = sed "s@<linux/string.h>@\"string.h\"@;s@<linux/kernel.h>@<stddef.h>@;s@<linux/\([^>]*\).*@\"\1\"@" $< > $@ |
64 | 67 | ||
65 | $(addprefix $(obj)/,$(zlib)): $(obj)/%: $(srctree)/lib/zlib_inflate/% | 68 | $(addprefix $(obj)/,$(zlib)): $(obj)/%: $(srctree)/lib/zlib_inflate/% |
66 | $(call cmd,copy_zlib) | 69 | $(call cmd,copy_zlib) |
@@ -204,12 +207,12 @@ dts = $(if $(shell echo $(CONFIG_DEVICE_TREE) | grep '^/'),\ | |||
204 | $(obj)/cuImage.%: vmlinux $(dts) $(wrapperbits) | 207 | $(obj)/cuImage.%: vmlinux $(dts) $(wrapperbits) |
205 | $(call if_changed,wrap,cuboot-$*,$(dts)) | 208 | $(call if_changed,wrap,cuboot-$*,$(dts)) |
206 | 209 | ||
207 | $(obj)/treeImage.%: vmlinux $(dts) $(wrapperbits) | ||
208 | $(call if_changed,wrap,treeboot-$*,$(dts)) | ||
209 | |||
210 | $(obj)/treeImage.initrd.%: vmlinux $(dts) $(wrapperbits) | 210 | $(obj)/treeImage.initrd.%: vmlinux $(dts) $(wrapperbits) |
211 | $(call if_changed,wrap,treeboot-$*,$(dts),,$(obj)/ramdisk.image.gz) | 211 | $(call if_changed,wrap,treeboot-$*,$(dts),,$(obj)/ramdisk.image.gz) |
212 | 212 | ||
213 | $(obj)/treeImage.%: vmlinux $(dts) $(wrapperbits) | ||
214 | $(call if_changed,wrap,treeboot-$*,$(dts)) | ||
215 | |||
213 | $(obj)/zImage: $(addprefix $(obj)/, $(image-y)) | 216 | $(obj)/zImage: $(addprefix $(obj)/, $(image-y)) |
214 | @rm -f $@; ln $< $@ | 217 | @rm -f $@; ln $< $@ |
215 | $(obj)/zImage.initrd: $(addprefix $(obj)/, $(initrd-y)) | 218 | $(obj)/zImage.initrd: $(addprefix $(obj)/, $(initrd-y)) |
diff --git a/arch/powerpc/boot/dts/ebony.dts b/arch/powerpc/boot/dts/ebony.dts index b67918651c48..0ec02f4726b5 100644 --- a/arch/powerpc/boot/dts/ebony.dts +++ b/arch/powerpc/boot/dts/ebony.dts | |||
@@ -33,8 +33,8 @@ | |||
33 | timebase-frequency = <0>; // Filled in by zImage | 33 | timebase-frequency = <0>; // Filled in by zImage |
34 | i-cache-line-size = <32>; | 34 | i-cache-line-size = <32>; |
35 | d-cache-line-size = <32>; | 35 | d-cache-line-size = <32>; |
36 | i-cache-size = <0>; | 36 | i-cache-size = <8000>; /* 32 kB */ |
37 | d-cache-size = <0>; | 37 | d-cache-size = <8000>; /* 32 kB */ |
38 | dcr-controller; | 38 | dcr-controller; |
39 | dcr-access-method = "native"; | 39 | dcr-access-method = "native"; |
40 | }; | 40 | }; |
@@ -46,7 +46,6 @@ | |||
46 | }; | 46 | }; |
47 | 47 | ||
48 | UIC0: interrupt-controller0 { | 48 | UIC0: interrupt-controller0 { |
49 | device_type = "ibm,uic"; | ||
50 | compatible = "ibm,uic-440gp", "ibm,uic"; | 49 | compatible = "ibm,uic-440gp", "ibm,uic"; |
51 | interrupt-controller; | 50 | interrupt-controller; |
52 | cell-index = <0>; | 51 | cell-index = <0>; |
@@ -58,7 +57,6 @@ | |||
58 | }; | 57 | }; |
59 | 58 | ||
60 | UIC1: interrupt-controller1 { | 59 | UIC1: interrupt-controller1 { |
61 | device_type = "ibm,uic"; | ||
62 | compatible = "ibm,uic-440gp", "ibm,uic"; | 60 | compatible = "ibm,uic-440gp", "ibm,uic"; |
63 | interrupt-controller; | 61 | interrupt-controller; |
64 | cell-index = <1>; | 62 | cell-index = <1>; |
@@ -71,36 +69,36 @@ | |||
71 | }; | 69 | }; |
72 | 70 | ||
73 | CPC0: cpc { | 71 | CPC0: cpc { |
74 | device_type = "ibm,cpc"; | ||
75 | compatible = "ibm,cpc-440gp"; | 72 | compatible = "ibm,cpc-440gp"; |
76 | dcr-reg = <0b0 003 0e0 010>; | 73 | dcr-reg = <0b0 003 0e0 010>; |
77 | // FIXME: anything else? | 74 | // FIXME: anything else? |
78 | }; | 75 | }; |
79 | 76 | ||
80 | plb { | 77 | plb { |
81 | device_type = "ibm,plb"; | ||
82 | compatible = "ibm,plb-440gp", "ibm,plb4"; | 78 | compatible = "ibm,plb-440gp", "ibm,plb4"; |
83 | #address-cells = <2>; | 79 | #address-cells = <2>; |
84 | #size-cells = <1>; | 80 | #size-cells = <1>; |
85 | ranges; | 81 | ranges; |
86 | clock-frequency = <0>; // Filled in by zImage | 82 | clock-frequency = <0>; // Filled in by zImage |
87 | 83 | ||
88 | SDRAM0: sdram { | 84 | SDRAM0: memory-controller { |
89 | device_type = "memory-controller"; | 85 | compatible = "ibm,sdram-440gp"; |
90 | compatible = "ibm,sdram-440gp", "ibm,sdram"; | ||
91 | dcr-reg = <010 2>; | 86 | dcr-reg = <010 2>; |
92 | // FIXME: anything else? | 87 | // FIXME: anything else? |
93 | }; | 88 | }; |
94 | 89 | ||
90 | SRAM0: sram { | ||
91 | compatible = "ibm,sram-440gp"; | ||
92 | dcr-reg = <020 8 00a 1>; | ||
93 | }; | ||
94 | |||
95 | DMA0: dma { | 95 | DMA0: dma { |
96 | // FIXME: ??? | 96 | // FIXME: ??? |
97 | device_type = "ibm,dma-4xx"; | 97 | compatible = "ibm,dma-440gp"; |
98 | compatible = "ibm,dma-440gp", "ibm,dma-4xx"; | ||
99 | dcr-reg = <100 027>; | 98 | dcr-reg = <100 027>; |
100 | }; | 99 | }; |
101 | 100 | ||
102 | MAL0: mcmal { | 101 | MAL0: mcmal { |
103 | device_type = "mcmal-dma"; | ||
104 | compatible = "ibm,mcmal-440gp", "ibm,mcmal"; | 102 | compatible = "ibm,mcmal-440gp", "ibm,mcmal"; |
105 | dcr-reg = <180 62>; | 103 | dcr-reg = <180 62>; |
106 | num-tx-chans = <4>; | 104 | num-tx-chans = <4>; |
@@ -119,7 +117,6 @@ | |||
119 | }; | 117 | }; |
120 | 118 | ||
121 | POB0: opb { | 119 | POB0: opb { |
122 | device_type = "ibm,opb"; | ||
123 | compatible = "ibm,opb-440gp", "ibm,opb"; | 120 | compatible = "ibm,opb-440gp", "ibm,opb"; |
124 | #address-cells = <1>; | 121 | #address-cells = <1>; |
125 | #size-cells = <1>; | 122 | #size-cells = <1>; |
@@ -133,8 +130,7 @@ | |||
133 | clock-frequency = <0>; // Filled in by zImage | 130 | clock-frequency = <0>; // Filled in by zImage |
134 | 131 | ||
135 | EBC0: ebc { | 132 | EBC0: ebc { |
136 | device_type = "ibm,ebc"; | 133 | compatible = "ibm,ebc-440gp", "ibm,ebc"; |
137 | compatible = "ibm,ebc-440gp"; | ||
138 | dcr-reg = <012 2>; | 134 | dcr-reg = <012 2>; |
139 | #address-cells = <2>; | 135 | #address-cells = <2>; |
140 | #size-cells = <1>; | 136 | #size-cells = <1>; |
@@ -147,7 +143,7 @@ | |||
147 | interrupts = <5 4>; | 143 | interrupts = <5 4>; |
148 | interrupt-parent = <&UIC1>; | 144 | interrupt-parent = <&UIC1>; |
149 | 145 | ||
150 | small-flash@0,0 { | 146 | small-flash@0,80000 { |
151 | device_type = "rom"; | 147 | device_type = "rom"; |
152 | compatible = "direct-mapped"; | 148 | compatible = "direct-mapped"; |
153 | probe-type = "JEDEC"; | 149 | probe-type = "JEDEC"; |
@@ -159,7 +155,6 @@ | |||
159 | 155 | ||
160 | ds1743@1,0 { | 156 | ds1743@1,0 { |
161 | /* NVRAM & RTC */ | 157 | /* NVRAM & RTC */ |
162 | device_type = "nvram"; | ||
163 | compatible = "ds1743"; | 158 | compatible = "ds1743"; |
164 | reg = <1 0 2000>; | 159 | reg = <1 0 2000>; |
165 | }; | 160 | }; |
@@ -170,7 +165,7 @@ | |||
170 | probe-type = "JEDEC"; | 165 | probe-type = "JEDEC"; |
171 | bank-width = <1>; | 166 | bank-width = <1>; |
172 | partitions = <0 380000 | 167 | partitions = <0 380000 |
173 | 280000 80000>; | 168 | 380000 80000>; |
174 | partition-names = "fs", "firmware"; | 169 | partition-names = "fs", "firmware"; |
175 | reg = <2 0 400000>; | 170 | reg = <2 0 400000>; |
176 | }; | 171 | }; |
@@ -226,13 +221,11 @@ | |||
226 | 221 | ||
227 | GPIO0: gpio@40000700 { | 222 | GPIO0: gpio@40000700 { |
228 | /* FIXME */ | 223 | /* FIXME */ |
229 | device_type = "gpio"; | ||
230 | compatible = "ibm,gpio-440gp"; | 224 | compatible = "ibm,gpio-440gp"; |
231 | reg = <40000700 20>; | 225 | reg = <40000700 20>; |
232 | }; | 226 | }; |
233 | 227 | ||
234 | ZMII0: emac-zmii@40000780 { | 228 | ZMII0: emac-zmii@40000780 { |
235 | device_type = "emac-zmii"; | ||
236 | compatible = "ibm,zmii-440gp", "ibm,zmii"; | 229 | compatible = "ibm,zmii-440gp", "ibm,zmii"; |
237 | reg = <40000780 c>; | 230 | reg = <40000780 c>; |
238 | }; | 231 | }; |
@@ -299,9 +292,5 @@ | |||
299 | 292 | ||
300 | chosen { | 293 | chosen { |
301 | linux,stdout-path = "/plb/opb/serial@40000200"; | 294 | linux,stdout-path = "/plb/opb/serial@40000200"; |
302 | // linux,initrd-start = <0>; /* FIXME */ | ||
303 | // linux,initrd-end = <0>; | ||
304 | // bootargs = ""; | ||
305 | }; | 295 | }; |
306 | }; | 296 | }; |
307 | |||
diff --git a/arch/powerpc/boot/dts/kuroboxHD.dts b/arch/powerpc/boot/dts/kuroboxHD.dts index 157dc98d3988..a983680c3263 100644 --- a/arch/powerpc/boot/dts/kuroboxHD.dts +++ b/arch/powerpc/boot/dts/kuroboxHD.dts | |||
@@ -21,19 +21,16 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHD.dtb -V 16 kuroboxHD.dts" | |||
21 | */ | 21 | */ |
22 | 22 | ||
23 | / { | 23 | / { |
24 | linux,phandle = <1000>; | ||
25 | model = "KuroboxHD"; | 24 | model = "KuroboxHD"; |
26 | compatible = "linkstation"; | 25 | compatible = "linkstation"; |
27 | #address-cells = <1>; | 26 | #address-cells = <1>; |
28 | #size-cells = <1>; | 27 | #size-cells = <1>; |
29 | 28 | ||
30 | cpus { | 29 | cpus { |
31 | linux,phandle = <2000>; | ||
32 | #address-cells = <1>; | 30 | #address-cells = <1>; |
33 | #size-cells = <0>; | 31 | #size-cells = <0>; |
34 | 32 | ||
35 | PowerPC,603e { /* Really 8241 */ | 33 | PowerPC,603e { /* Really 8241 */ |
36 | linux,phandle = <2100>; | ||
37 | device_type = "cpu"; | 34 | device_type = "cpu"; |
38 | reg = <0>; | 35 | reg = <0>; |
39 | clock-frequency = <bebc200>; /* Fixed by bootwrapper */ | 36 | clock-frequency = <bebc200>; /* Fixed by bootwrapper */ |
@@ -48,13 +45,11 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHD.dtb -V 16 kuroboxHD.dts" | |||
48 | }; | 45 | }; |
49 | 46 | ||
50 | memory { | 47 | memory { |
51 | linux,phandle = <3000>; | ||
52 | device_type = "memory"; | 48 | device_type = "memory"; |
53 | reg = <00000000 04000000>; | 49 | reg = <00000000 04000000>; |
54 | }; | 50 | }; |
55 | 51 | ||
56 | soc10x { /* AFAICT need to make soc for 8245's uarts to be defined */ | 52 | soc10x { /* AFAICT need to make soc for 8245's uarts to be defined */ |
57 | linux,phandle = <4000>; | ||
58 | #address-cells = <1>; | 53 | #address-cells = <1>; |
59 | #size-cells = <1>; | 54 | #size-cells = <1>; |
60 | #interrupt-cells = <2>; | 55 | #interrupt-cells = <2>; |
@@ -69,38 +64,34 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHD.dtb -V 16 kuroboxHD.dts" | |||
69 | fef00000 fef00000 00100000>; /* pci iack */ | 64 | fef00000 fef00000 00100000>; /* pci iack */ |
70 | 65 | ||
71 | i2c@80003000 { | 66 | i2c@80003000 { |
72 | linux,phandle = <4300>; | ||
73 | device_type = "i2c"; | 67 | device_type = "i2c"; |
74 | compatible = "fsl-i2c"; | 68 | compatible = "fsl-i2c"; |
75 | reg = <80003000 1000>; | 69 | reg = <80003000 1000>; |
76 | interrupts = <5 2>; | 70 | interrupts = <5 2>; |
77 | interrupt-parent = <4400>; | 71 | interrupt-parent = <&mpic>; |
78 | }; | 72 | }; |
79 | 73 | ||
80 | serial@80004500 { | 74 | serial@80004500 { |
81 | linux,phandle = <4511>; | ||
82 | device_type = "serial"; | 75 | device_type = "serial"; |
83 | compatible = "ns16550"; | 76 | compatible = "ns16550"; |
84 | reg = <80004500 8>; | 77 | reg = <80004500 8>; |
85 | clock-frequency = <5d08d88>; | 78 | clock-frequency = <5d08d88>; |
86 | current-speed = <2580>; | 79 | current-speed = <2580>; |
87 | interrupts = <9 2>; | 80 | interrupts = <9 2>; |
88 | interrupt-parent = <4400>; | 81 | interrupt-parent = <&mpic>; |
89 | }; | 82 | }; |
90 | 83 | ||
91 | serial@80004600 { | 84 | serial@80004600 { |
92 | linux,phandle = <4512>; | ||
93 | device_type = "serial"; | 85 | device_type = "serial"; |
94 | compatible = "ns16550"; | 86 | compatible = "ns16550"; |
95 | reg = <80004600 8>; | 87 | reg = <80004600 8>; |
96 | clock-frequency = <5d08d88>; | 88 | clock-frequency = <5d08d88>; |
97 | current-speed = <e100>; | 89 | current-speed = <e100>; |
98 | interrupts = <a 0>; | 90 | interrupts = <a 0>; |
99 | interrupt-parent = <4400>; | 91 | interrupt-parent = <&mpic>; |
100 | }; | 92 | }; |
101 | 93 | ||
102 | pic@80040000 { | 94 | mpic: pic@80040000 { |
103 | linux,phandle = <4400>; | ||
104 | #interrupt-cells = <2>; | 95 | #interrupt-cells = <2>; |
105 | #address-cells = <0>; | 96 | #address-cells = <0>; |
106 | device_type = "open-pic"; | 97 | device_type = "open-pic"; |
@@ -111,7 +102,6 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHD.dtb -V 16 kuroboxHD.dts" | |||
111 | }; | 102 | }; |
112 | 103 | ||
113 | pci@fec00000 { | 104 | pci@fec00000 { |
114 | linux,phandle = <4500>; | ||
115 | #address-cells = <3>; | 105 | #address-cells = <3>; |
116 | #size-cells = <2>; | 106 | #size-cells = <2>; |
117 | #interrupt-cells = <1>; | 107 | #interrupt-cells = <1>; |
@@ -122,24 +112,24 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHD.dtb -V 16 kuroboxHD.dts" | |||
122 | 02000000 0 80000000 80000000 0 70000000>; | 112 | 02000000 0 80000000 80000000 0 70000000>; |
123 | bus-range = <0 ff>; | 113 | bus-range = <0 ff>; |
124 | clock-frequency = <7f28155>; | 114 | clock-frequency = <7f28155>; |
125 | interrupt-parent = <4400>; | 115 | interrupt-parent = <&mpic>; |
126 | interrupt-map-mask = <f800 0 0 7>; | 116 | interrupt-map-mask = <f800 0 0 7>; |
127 | interrupt-map = < | 117 | interrupt-map = < |
128 | /* IDSEL 11 - IRQ0 ETH */ | 118 | /* IDSEL 11 - IRQ0 ETH */ |
129 | 5800 0 0 1 4400 0 1 | 119 | 5800 0 0 1 &mpic 0 1 |
130 | 5800 0 0 2 4400 1 1 | 120 | 5800 0 0 2 &mpic 1 1 |
131 | 5800 0 0 3 4400 2 1 | 121 | 5800 0 0 3 &mpic 2 1 |
132 | 5800 0 0 4 4400 3 1 | 122 | 5800 0 0 4 &mpic 3 1 |
133 | /* IDSEL 12 - IRQ1 IDE0 */ | 123 | /* IDSEL 12 - IRQ1 IDE0 */ |
134 | 6000 0 0 1 4400 1 1 | 124 | 6000 0 0 1 &mpic 1 1 |
135 | 6000 0 0 2 4400 2 1 | 125 | 6000 0 0 2 &mpic 2 1 |
136 | 6000 0 0 3 4400 3 1 | 126 | 6000 0 0 3 &mpic 3 1 |
137 | 6000 0 0 4 4400 0 1 | 127 | 6000 0 0 4 &mpic 0 1 |
138 | /* IDSEL 14 - IRQ3 USB2.0 */ | 128 | /* IDSEL 14 - IRQ3 USB2.0 */ |
139 | 7000 0 0 1 4400 3 1 | 129 | 7000 0 0 1 &mpic 3 1 |
140 | 7000 0 0 2 4400 3 1 | 130 | 7000 0 0 2 &mpic 3 1 |
141 | 7000 0 0 3 4400 3 1 | 131 | 7000 0 0 3 &mpic 3 1 |
142 | 7000 0 0 4 4400 3 1 | 132 | 7000 0 0 4 &mpic 3 1 |
143 | >; | 133 | >; |
144 | }; | 134 | }; |
145 | }; | 135 | }; |
diff --git a/arch/powerpc/boot/dts/kuroboxHG.dts b/arch/powerpc/boot/dts/kuroboxHG.dts index 919eb29097db..5cf42dc022df 100644 --- a/arch/powerpc/boot/dts/kuroboxHG.dts +++ b/arch/powerpc/boot/dts/kuroboxHG.dts | |||
@@ -21,19 +21,16 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHG.dtb -V 16 kuroboxHG.dts" | |||
21 | */ | 21 | */ |
22 | 22 | ||
23 | / { | 23 | / { |
24 | linux,phandle = <1000>; | ||
25 | model = "KuroboxHG"; | 24 | model = "KuroboxHG"; |
26 | compatible = "linkstation"; | 25 | compatible = "linkstation"; |
27 | #address-cells = <1>; | 26 | #address-cells = <1>; |
28 | #size-cells = <1>; | 27 | #size-cells = <1>; |
29 | 28 | ||
30 | cpus { | 29 | cpus { |
31 | linux,phandle = <2000>; | ||
32 | #address-cells = <1>; | 30 | #address-cells = <1>; |
33 | #size-cells = <0>; | 31 | #size-cells = <0>; |
34 | 32 | ||
35 | PowerPC,603e { /* Really 8241 */ | 33 | PowerPC,603e { /* Really 8241 */ |
36 | linux,phandle = <2100>; | ||
37 | device_type = "cpu"; | 34 | device_type = "cpu"; |
38 | reg = <0>; | 35 | reg = <0>; |
39 | clock-frequency = <fdad680>; /* Fixed by bootwrapper */ | 36 | clock-frequency = <fdad680>; /* Fixed by bootwrapper */ |
@@ -48,13 +45,11 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHG.dtb -V 16 kuroboxHG.dts" | |||
48 | }; | 45 | }; |
49 | 46 | ||
50 | memory { | 47 | memory { |
51 | linux,phandle = <3000>; | ||
52 | device_type = "memory"; | 48 | device_type = "memory"; |
53 | reg = <00000000 08000000>; | 49 | reg = <00000000 08000000>; |
54 | }; | 50 | }; |
55 | 51 | ||
56 | soc10x { /* AFAICT need to make soc for 8245's uarts to be defined */ | 52 | soc10x { /* AFAICT need to make soc for 8245's uarts to be defined */ |
57 | linux,phandle = <4000>; | ||
58 | #address-cells = <1>; | 53 | #address-cells = <1>; |
59 | #size-cells = <1>; | 54 | #size-cells = <1>; |
60 | #interrupt-cells = <2>; | 55 | #interrupt-cells = <2>; |
@@ -69,38 +64,35 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHG.dtb -V 16 kuroboxHG.dts" | |||
69 | fef00000 fef00000 00100000>; /* pci iack */ | 64 | fef00000 fef00000 00100000>; /* pci iack */ |
70 | 65 | ||
71 | i2c@80003000 { | 66 | i2c@80003000 { |
72 | linux,phandle = <4300>; | ||
73 | device_type = "i2c"; | 67 | device_type = "i2c"; |
74 | compatible = "fsl-i2c"; | 68 | compatible = "fsl-i2c"; |
75 | reg = <80003000 1000>; | 69 | reg = <80003000 1000>; |
76 | interrupts = <5 2>; | 70 | interrupts = <5 2>; |
77 | interrupt-parent = <4400>; | 71 | interrupt-parent = <&mpic>; |
78 | }; | 72 | }; |
79 | 73 | ||
80 | serial@80004500 { | 74 | serial@80004500 { |
81 | linux,phandle = <4511>; | ||
82 | device_type = "serial"; | 75 | device_type = "serial"; |
83 | compatible = "ns16550"; | 76 | compatible = "ns16550"; |
84 | reg = <80004500 8>; | 77 | reg = <80004500 8>; |
85 | clock-frequency = <7c044a8>; | 78 | clock-frequency = <7c044a8>; |
86 | current-speed = <2580>; | 79 | current-speed = <2580>; |
87 | interrupts = <9 2>; | 80 | interrupts = <9 2>; |
88 | interrupt-parent = <4400>; | 81 | interrupt-parent = <&mpic>; |
89 | }; | 82 | }; |
90 | 83 | ||
91 | serial@80004600 { | 84 | serial@80004600 { |
92 | linux,phandle = <4512>; | ||
93 | device_type = "serial"; | 85 | device_type = "serial"; |
94 | compatible = "ns16550"; | 86 | compatible = "ns16550"; |
95 | reg = <80004600 8>; | 87 | reg = <80004600 8>; |
96 | clock-frequency = <7c044a8>; | 88 | clock-frequency = <7c044a8>; |
97 | current-speed = <e100>; | 89 | current-speed = <e100>; |
98 | interrupts = <a 0>; | 90 | interrupts = <a 0>; |
99 | interrupt-parent = <4400>; | 91 | interrupt-parent = <&mpic>; |
100 | }; | 92 | }; |
101 | 93 | ||
102 | pic@80040000 { | 94 | mpic: pic@80040000 { |
103 | linux,phandle = <4400>; | 95 | interrupt-parent = <&mpic>; |
104 | #interrupt-cells = <2>; | 96 | #interrupt-cells = <2>; |
105 | #address-cells = <0>; | 97 | #address-cells = <0>; |
106 | device_type = "open-pic"; | 98 | device_type = "open-pic"; |
@@ -111,7 +103,6 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHG.dtb -V 16 kuroboxHG.dts" | |||
111 | }; | 103 | }; |
112 | 104 | ||
113 | pci@fec00000 { | 105 | pci@fec00000 { |
114 | linux,phandle = <4500>; | ||
115 | #address-cells = <3>; | 106 | #address-cells = <3>; |
116 | #size-cells = <2>; | 107 | #size-cells = <2>; |
117 | #interrupt-cells = <1>; | 108 | #interrupt-cells = <1>; |
@@ -122,24 +113,24 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHG.dtb -V 16 kuroboxHG.dts" | |||
122 | 02000000 0 80000000 80000000 0 70000000>; | 113 | 02000000 0 80000000 80000000 0 70000000>; |
123 | bus-range = <0 ff>; | 114 | bus-range = <0 ff>; |
124 | clock-frequency = <7f28155>; | 115 | clock-frequency = <7f28155>; |
125 | interrupt-parent = <4400>; | 116 | interrupt-parent = <&mpic>; |
126 | interrupt-map-mask = <f800 0 0 7>; | 117 | interrupt-map-mask = <f800 0 0 7>; |
127 | interrupt-map = < | 118 | interrupt-map = < |
128 | /* IDSEL 11 - IRQ0 ETH */ | 119 | /* IDSEL 11 - IRQ0 ETH */ |
129 | 5800 0 0 1 4400 0 1 | 120 | 5800 0 0 1 &mpic 0 1 |
130 | 5800 0 0 2 4400 1 1 | 121 | 5800 0 0 2 &mpic 1 1 |
131 | 5800 0 0 3 4400 2 1 | 122 | 5800 0 0 3 &mpic 2 1 |
132 | 5800 0 0 4 4400 3 1 | 123 | 5800 0 0 4 &mpic 3 1 |
133 | /* IDSEL 12 - IRQ1 IDE0 */ | 124 | /* IDSEL 12 - IRQ1 IDE0 */ |
134 | 6000 0 0 1 4400 1 1 | 125 | 6000 0 0 1 &mpic 1 1 |
135 | 6000 0 0 2 4400 2 1 | 126 | 6000 0 0 2 &mpic 2 1 |
136 | 6000 0 0 3 4400 3 1 | 127 | 6000 0 0 3 &mpic 3 1 |
137 | 6000 0 0 4 4400 0 1 | 128 | 6000 0 0 4 &mpic 0 1 |
138 | /* IDSEL 14 - IRQ3 USB2.0 */ | 129 | /* IDSEL 14 - IRQ3 USB2.0 */ |
139 | 7000 0 0 1 4400 3 1 | 130 | 7000 0 0 1 &mpic 3 1 |
140 | 7000 0 0 2 4400 3 1 | 131 | 7000 0 0 2 &mpic 3 1 |
141 | 7000 0 0 3 4400 3 1 | 132 | 7000 0 0 3 &mpic 3 1 |
142 | 7000 0 0 4 4400 3 1 | 133 | 7000 0 0 4 &mpic 3 1 |
143 | >; | 134 | >; |
144 | }; | 135 | }; |
145 | }; | 136 | }; |
diff --git a/arch/powerpc/boot/dts/lite5200.dts b/arch/powerpc/boot/dts/lite5200.dts index e13ac6ef05a9..d29308fe4c24 100644 --- a/arch/powerpc/boot/dts/lite5200.dts +++ b/arch/powerpc/boot/dts/lite5200.dts | |||
@@ -49,7 +49,7 @@ | |||
49 | soc5200@f0000000 { | 49 | soc5200@f0000000 { |
50 | model = "fsl,mpc5200"; | 50 | model = "fsl,mpc5200"; |
51 | compatible = "mpc5200"; | 51 | compatible = "mpc5200"; |
52 | revision = "" // from bootloader | 52 | revision = ""; // from bootloader |
53 | #interrupt-cells = <3>; | 53 | #interrupt-cells = <3>; |
54 | device_type = "soc"; | 54 | device_type = "soc"; |
55 | ranges = <0 f0000000 f0010000>; | 55 | ranges = <0 f0000000 f0010000>; |
@@ -62,9 +62,8 @@ | |||
62 | reg = <200 38>; | 62 | reg = <200 38>; |
63 | }; | 63 | }; |
64 | 64 | ||
65 | pic@500 { | 65 | mpc5200_pic: pic@500 { |
66 | // 5200 interrupts are encoded into two levels; | 66 | // 5200 interrupts are encoded into two levels; |
67 | linux,phandle = <500>; | ||
68 | interrupt-controller; | 67 | interrupt-controller; |
69 | #interrupt-cells = <3>; | 68 | #interrupt-cells = <3>; |
70 | device_type = "interrupt-controller"; | 69 | device_type = "interrupt-controller"; |
@@ -79,7 +78,7 @@ | |||
79 | cell-index = <0>; | 78 | cell-index = <0>; |
80 | reg = <600 10>; | 79 | reg = <600 10>; |
81 | interrupts = <1 9 0>; | 80 | interrupts = <1 9 0>; |
82 | interrupt-parent = <500>; | 81 | interrupt-parent = <&mpc5200_pic>; |
83 | has-wdt; | 82 | has-wdt; |
84 | }; | 83 | }; |
85 | 84 | ||
@@ -89,7 +88,7 @@ | |||
89 | cell-index = <1>; | 88 | cell-index = <1>; |
90 | reg = <610 10>; | 89 | reg = <610 10>; |
91 | interrupts = <1 a 0>; | 90 | interrupts = <1 a 0>; |
92 | interrupt-parent = <500>; | 91 | interrupt-parent = <&mpc5200_pic>; |
93 | }; | 92 | }; |
94 | 93 | ||
95 | gpt@620 { // General Purpose Timer | 94 | gpt@620 { // General Purpose Timer |
@@ -98,7 +97,7 @@ | |||
98 | cell-index = <2>; | 97 | cell-index = <2>; |
99 | reg = <620 10>; | 98 | reg = <620 10>; |
100 | interrupts = <1 b 0>; | 99 | interrupts = <1 b 0>; |
101 | interrupt-parent = <500>; | 100 | interrupt-parent = <&mpc5200_pic>; |
102 | }; | 101 | }; |
103 | 102 | ||
104 | gpt@630 { // General Purpose Timer | 103 | gpt@630 { // General Purpose Timer |
@@ -107,7 +106,7 @@ | |||
107 | cell-index = <3>; | 106 | cell-index = <3>; |
108 | reg = <630 10>; | 107 | reg = <630 10>; |
109 | interrupts = <1 c 0>; | 108 | interrupts = <1 c 0>; |
110 | interrupt-parent = <500>; | 109 | interrupt-parent = <&mpc5200_pic>; |
111 | }; | 110 | }; |
112 | 111 | ||
113 | gpt@640 { // General Purpose Timer | 112 | gpt@640 { // General Purpose Timer |
@@ -116,7 +115,7 @@ | |||
116 | cell-index = <4>; | 115 | cell-index = <4>; |
117 | reg = <640 10>; | 116 | reg = <640 10>; |
118 | interrupts = <1 d 0>; | 117 | interrupts = <1 d 0>; |
119 | interrupt-parent = <500>; | 118 | interrupt-parent = <&mpc5200_pic>; |
120 | }; | 119 | }; |
121 | 120 | ||
122 | gpt@650 { // General Purpose Timer | 121 | gpt@650 { // General Purpose Timer |
@@ -125,7 +124,7 @@ | |||
125 | cell-index = <5>; | 124 | cell-index = <5>; |
126 | reg = <650 10>; | 125 | reg = <650 10>; |
127 | interrupts = <1 e 0>; | 126 | interrupts = <1 e 0>; |
128 | interrupt-parent = <500>; | 127 | interrupt-parent = <&mpc5200_pic>; |
129 | }; | 128 | }; |
130 | 129 | ||
131 | gpt@660 { // General Purpose Timer | 130 | gpt@660 { // General Purpose Timer |
@@ -134,7 +133,7 @@ | |||
134 | cell-index = <6>; | 133 | cell-index = <6>; |
135 | reg = <660 10>; | 134 | reg = <660 10>; |
136 | interrupts = <1 f 0>; | 135 | interrupts = <1 f 0>; |
137 | interrupt-parent = <500>; | 136 | interrupt-parent = <&mpc5200_pic>; |
138 | }; | 137 | }; |
139 | 138 | ||
140 | gpt@670 { // General Purpose Timer | 139 | gpt@670 { // General Purpose Timer |
@@ -143,7 +142,7 @@ | |||
143 | cell-index = <7>; | 142 | cell-index = <7>; |
144 | reg = <670 10>; | 143 | reg = <670 10>; |
145 | interrupts = <1 10 0>; | 144 | interrupts = <1 10 0>; |
146 | interrupt-parent = <500>; | 145 | interrupt-parent = <&mpc5200_pic>; |
147 | }; | 146 | }; |
148 | 147 | ||
149 | rtc@800 { // Real time clock | 148 | rtc@800 { // Real time clock |
@@ -151,7 +150,7 @@ | |||
151 | device_type = "rtc"; | 150 | device_type = "rtc"; |
152 | reg = <800 100>; | 151 | reg = <800 100>; |
153 | interrupts = <1 5 0 1 6 0>; | 152 | interrupts = <1 5 0 1 6 0>; |
154 | interrupt-parent = <500>; | 153 | interrupt-parent = <&mpc5200_pic>; |
155 | }; | 154 | }; |
156 | 155 | ||
157 | mscan@900 { | 156 | mscan@900 { |
@@ -159,7 +158,7 @@ | |||
159 | compatible = "mpc5200-mscan"; | 158 | compatible = "mpc5200-mscan"; |
160 | cell-index = <0>; | 159 | cell-index = <0>; |
161 | interrupts = <2 11 0>; | 160 | interrupts = <2 11 0>; |
162 | interrupt-parent = <500>; | 161 | interrupt-parent = <&mpc5200_pic>; |
163 | reg = <900 80>; | 162 | reg = <900 80>; |
164 | }; | 163 | }; |
165 | 164 | ||
@@ -168,7 +167,7 @@ | |||
168 | compatible = "mpc5200-mscan"; | 167 | compatible = "mpc5200-mscan"; |
169 | cell-index = <1>; | 168 | cell-index = <1>; |
170 | interrupts = <2 12 0>; | 169 | interrupts = <2 12 0>; |
171 | interrupt-parent = <500>; | 170 | interrupt-parent = <&mpc5200_pic>; |
172 | reg = <980 80>; | 171 | reg = <980 80>; |
173 | }; | 172 | }; |
174 | 173 | ||
@@ -176,14 +175,14 @@ | |||
176 | compatible = "mpc5200-gpio"; | 175 | compatible = "mpc5200-gpio"; |
177 | reg = <b00 40>; | 176 | reg = <b00 40>; |
178 | interrupts = <1 7 0>; | 177 | interrupts = <1 7 0>; |
179 | interrupt-parent = <500>; | 178 | interrupt-parent = <&mpc5200_pic>; |
180 | }; | 179 | }; |
181 | 180 | ||
182 | gpio-wkup@c00 { | 181 | gpio-wkup@c00 { |
183 | compatible = "mpc5200-gpio-wkup"; | 182 | compatible = "mpc5200-gpio-wkup"; |
184 | reg = <c00 40>; | 183 | reg = <c00 40>; |
185 | interrupts = <1 8 0 0 3 0>; | 184 | interrupts = <1 8 0 0 3 0>; |
186 | interrupt-parent = <500>; | 185 | interrupt-parent = <&mpc5200_pic>; |
187 | }; | 186 | }; |
188 | 187 | ||
189 | pci@0d00 { | 188 | pci@0d00 { |
@@ -194,13 +193,13 @@ | |||
194 | compatible = "mpc5200-pci"; | 193 | compatible = "mpc5200-pci"; |
195 | reg = <d00 100>; | 194 | reg = <d00 100>; |
196 | interrupt-map-mask = <f800 0 0 7>; | 195 | interrupt-map-mask = <f800 0 0 7>; |
197 | interrupt-map = <c000 0 0 1 500 0 0 3 | 196 | interrupt-map = <c000 0 0 1 &mpc5200_pic 0 0 3 |
198 | c000 0 0 2 500 0 0 3 | 197 | c000 0 0 2 &mpc5200_pic 0 0 3 |
199 | c000 0 0 3 500 0 0 3 | 198 | c000 0 0 3 &mpc5200_pic 0 0 3 |
200 | c000 0 0 4 500 0 0 3>; | 199 | c000 0 0 4 &mpc5200_pic 0 0 3>; |
201 | clock-frequency = <0>; // From boot loader | 200 | clock-frequency = <0>; // From boot loader |
202 | interrupts = <2 8 0 2 9 0 2 a 0>; | 201 | interrupts = <2 8 0 2 9 0 2 a 0>; |
203 | interrupt-parent = <500>; | 202 | interrupt-parent = <&mpc5200_pic>; |
204 | bus-range = <0 0>; | 203 | bus-range = <0 0>; |
205 | ranges = <42000000 0 80000000 80000000 0 20000000 | 204 | ranges = <42000000 0 80000000 80000000 0 20000000 |
206 | 02000000 0 a0000000 a0000000 0 10000000 | 205 | 02000000 0 a0000000 a0000000 0 10000000 |
@@ -212,7 +211,7 @@ | |||
212 | compatible = "mpc5200-spi"; | 211 | compatible = "mpc5200-spi"; |
213 | reg = <f00 20>; | 212 | reg = <f00 20>; |
214 | interrupts = <2 d 0 2 e 0>; | 213 | interrupts = <2 d 0 2 e 0>; |
215 | interrupt-parent = <500>; | 214 | interrupt-parent = <&mpc5200_pic>; |
216 | }; | 215 | }; |
217 | 216 | ||
218 | usb@1000 { | 217 | usb@1000 { |
@@ -220,7 +219,7 @@ | |||
220 | compatible = "mpc5200-ohci\0ohci-be"; | 219 | compatible = "mpc5200-ohci\0ohci-be"; |
221 | reg = <1000 ff>; | 220 | reg = <1000 ff>; |
222 | interrupts = <2 6 0>; | 221 | interrupts = <2 6 0>; |
223 | interrupt-parent = <500>; | 222 | interrupt-parent = <&mpc5200_pic>; |
224 | }; | 223 | }; |
225 | 224 | ||
226 | bestcomm@1200 { | 225 | bestcomm@1200 { |
@@ -231,7 +230,7 @@ | |||
231 | 3 4 0 3 5 0 3 6 0 3 7 0 | 230 | 3 4 0 3 5 0 3 6 0 3 7 0 |
232 | 3 8 0 3 9 0 3 a 0 3 b 0 | 231 | 3 8 0 3 9 0 3 a 0 3 b 0 |
233 | 3 c 0 3 d 0 3 e 0 3 f 0>; | 232 | 3 c 0 3 d 0 3 e 0 3 f 0>; |
234 | interrupt-parent = <500>; | 233 | interrupt-parent = <&mpc5200_pic>; |
235 | }; | 234 | }; |
236 | 235 | ||
237 | xlb@1f00 { | 236 | xlb@1f00 { |
@@ -246,7 +245,7 @@ | |||
246 | cell-index = <0>; | 245 | cell-index = <0>; |
247 | reg = <2000 100>; | 246 | reg = <2000 100>; |
248 | interrupts = <2 1 0>; | 247 | interrupts = <2 1 0>; |
249 | interrupt-parent = <500>; | 248 | interrupt-parent = <&mpc5200_pic>; |
250 | }; | 249 | }; |
251 | 250 | ||
252 | // PSC2 in ac97 mode example | 251 | // PSC2 in ac97 mode example |
@@ -256,7 +255,7 @@ | |||
256 | // cell-index = <1>; | 255 | // cell-index = <1>; |
257 | // reg = <2200 100>; | 256 | // reg = <2200 100>; |
258 | // interrupts = <2 2 0>; | 257 | // interrupts = <2 2 0>; |
259 | // interrupt-parent = <500>; | 258 | // interrupt-parent = <&mpc5200_pic>; |
260 | //}; | 259 | //}; |
261 | 260 | ||
262 | // PSC3 in CODEC mode example | 261 | // PSC3 in CODEC mode example |
@@ -266,7 +265,7 @@ | |||
266 | // cell-index = <2>; | 265 | // cell-index = <2>; |
267 | // reg = <2400 100>; | 266 | // reg = <2400 100>; |
268 | // interrupts = <2 3 0>; | 267 | // interrupts = <2 3 0>; |
269 | // interrupt-parent = <500>; | 268 | // interrupt-parent = <&mpc5200_pic>; |
270 | //}; | 269 | //}; |
271 | 270 | ||
272 | // PSC4 in uart mode example | 271 | // PSC4 in uart mode example |
@@ -276,7 +275,7 @@ | |||
276 | // cell-index = <3>; | 275 | // cell-index = <3>; |
277 | // reg = <2600 100>; | 276 | // reg = <2600 100>; |
278 | // interrupts = <2 b 0>; | 277 | // interrupts = <2 b 0>; |
279 | // interrupt-parent = <500>; | 278 | // interrupt-parent = <&mpc5200_pic>; |
280 | //}; | 279 | //}; |
281 | 280 | ||
282 | // PSC5 in uart mode example | 281 | // PSC5 in uart mode example |
@@ -286,7 +285,7 @@ | |||
286 | // cell-index = <4>; | 285 | // cell-index = <4>; |
287 | // reg = <2800 100>; | 286 | // reg = <2800 100>; |
288 | // interrupts = <2 c 0>; | 287 | // interrupts = <2 c 0>; |
289 | // interrupt-parent = <500>; | 288 | // interrupt-parent = <&mpc5200_pic>; |
290 | //}; | 289 | //}; |
291 | 290 | ||
292 | // PSC6 in spi mode example | 291 | // PSC6 in spi mode example |
@@ -296,7 +295,7 @@ | |||
296 | // cell-index = <5>; | 295 | // cell-index = <5>; |
297 | // reg = <2c00 100>; | 296 | // reg = <2c00 100>; |
298 | // interrupts = <2 4 0>; | 297 | // interrupts = <2 4 0>; |
299 | // interrupt-parent = <500>; | 298 | // interrupt-parent = <&mpc5200_pic>; |
300 | //}; | 299 | //}; |
301 | 300 | ||
302 | ethernet@3000 { | 301 | ethernet@3000 { |
@@ -305,7 +304,7 @@ | |||
305 | reg = <3000 800>; | 304 | reg = <3000 800>; |
306 | mac-address = [ 02 03 04 05 06 07 ]; // Bad! | 305 | mac-address = [ 02 03 04 05 06 07 ]; // Bad! |
307 | interrupts = <2 5 0>; | 306 | interrupts = <2 5 0>; |
308 | interrupt-parent = <500>; | 307 | interrupt-parent = <&mpc5200_pic>; |
309 | }; | 308 | }; |
310 | 309 | ||
311 | ata@3a00 { | 310 | ata@3a00 { |
@@ -313,7 +312,7 @@ | |||
313 | compatible = "mpc5200-ata"; | 312 | compatible = "mpc5200-ata"; |
314 | reg = <3a00 100>; | 313 | reg = <3a00 100>; |
315 | interrupts = <2 7 0>; | 314 | interrupts = <2 7 0>; |
316 | interrupt-parent = <500>; | 315 | interrupt-parent = <&mpc5200_pic>; |
317 | }; | 316 | }; |
318 | 317 | ||
319 | i2c@3d00 { | 318 | i2c@3d00 { |
@@ -322,7 +321,7 @@ | |||
322 | cell-index = <0>; | 321 | cell-index = <0>; |
323 | reg = <3d00 40>; | 322 | reg = <3d00 40>; |
324 | interrupts = <2 f 0>; | 323 | interrupts = <2 f 0>; |
325 | interrupt-parent = <500>; | 324 | interrupt-parent = <&mpc5200_pic>; |
326 | fsl5200-clocking; | 325 | fsl5200-clocking; |
327 | }; | 326 | }; |
328 | 327 | ||
@@ -332,7 +331,7 @@ | |||
332 | cell-index = <1>; | 331 | cell-index = <1>; |
333 | reg = <3d40 40>; | 332 | reg = <3d40 40>; |
334 | interrupts = <2 10 0>; | 333 | interrupts = <2 10 0>; |
335 | interrupt-parent = <500>; | 334 | interrupt-parent = <&mpc5200_pic>; |
336 | fsl5200-clocking; | 335 | fsl5200-clocking; |
337 | }; | 336 | }; |
338 | sram@8000 { | 337 | sram@8000 { |
diff --git a/arch/powerpc/boot/dts/lite5200b.dts b/arch/powerpc/boot/dts/lite5200b.dts index 00211b39a342..f242531f0451 100644 --- a/arch/powerpc/boot/dts/lite5200b.dts +++ b/arch/powerpc/boot/dts/lite5200b.dts | |||
@@ -62,9 +62,8 @@ | |||
62 | reg = <200 38>; | 62 | reg = <200 38>; |
63 | }; | 63 | }; |
64 | 64 | ||
65 | pic@500 { | 65 | mpc5200_pic: pic@500 { |
66 | // 5200 interrupts are encoded into two levels; | 66 | // 5200 interrupts are encoded into two levels; |
67 | linux,phandle = <500>; | ||
68 | interrupt-controller; | 67 | interrupt-controller; |
69 | #interrupt-cells = <3>; | 68 | #interrupt-cells = <3>; |
70 | device_type = "interrupt-controller"; | 69 | device_type = "interrupt-controller"; |
@@ -79,7 +78,7 @@ | |||
79 | cell-index = <0>; | 78 | cell-index = <0>; |
80 | reg = <600 10>; | 79 | reg = <600 10>; |
81 | interrupts = <1 9 0>; | 80 | interrupts = <1 9 0>; |
82 | interrupt-parent = <500>; | 81 | interrupt-parent = <&mpc5200_pic>; |
83 | has-wdt; | 82 | has-wdt; |
84 | }; | 83 | }; |
85 | 84 | ||
@@ -89,7 +88,7 @@ | |||
89 | cell-index = <1>; | 88 | cell-index = <1>; |
90 | reg = <610 10>; | 89 | reg = <610 10>; |
91 | interrupts = <1 a 0>; | 90 | interrupts = <1 a 0>; |
92 | interrupt-parent = <500>; | 91 | interrupt-parent = <&mpc5200_pic>; |
93 | }; | 92 | }; |
94 | 93 | ||
95 | gpt@620 { // General Purpose Timer | 94 | gpt@620 { // General Purpose Timer |
@@ -98,7 +97,7 @@ | |||
98 | cell-index = <2>; | 97 | cell-index = <2>; |
99 | reg = <620 10>; | 98 | reg = <620 10>; |
100 | interrupts = <1 b 0>; | 99 | interrupts = <1 b 0>; |
101 | interrupt-parent = <500>; | 100 | interrupt-parent = <&mpc5200_pic>; |
102 | }; | 101 | }; |
103 | 102 | ||
104 | gpt@630 { // General Purpose Timer | 103 | gpt@630 { // General Purpose Timer |
@@ -107,7 +106,7 @@ | |||
107 | cell-index = <3>; | 106 | cell-index = <3>; |
108 | reg = <630 10>; | 107 | reg = <630 10>; |
109 | interrupts = <1 c 0>; | 108 | interrupts = <1 c 0>; |
110 | interrupt-parent = <500>; | 109 | interrupt-parent = <&mpc5200_pic>; |
111 | }; | 110 | }; |
112 | 111 | ||
113 | gpt@640 { // General Purpose Timer | 112 | gpt@640 { // General Purpose Timer |
@@ -116,7 +115,7 @@ | |||
116 | cell-index = <4>; | 115 | cell-index = <4>; |
117 | reg = <640 10>; | 116 | reg = <640 10>; |
118 | interrupts = <1 d 0>; | 117 | interrupts = <1 d 0>; |
119 | interrupt-parent = <500>; | 118 | interrupt-parent = <&mpc5200_pic>; |
120 | }; | 119 | }; |
121 | 120 | ||
122 | gpt@650 { // General Purpose Timer | 121 | gpt@650 { // General Purpose Timer |
@@ -125,7 +124,7 @@ | |||
125 | cell-index = <5>; | 124 | cell-index = <5>; |
126 | reg = <650 10>; | 125 | reg = <650 10>; |
127 | interrupts = <1 e 0>; | 126 | interrupts = <1 e 0>; |
128 | interrupt-parent = <500>; | 127 | interrupt-parent = <&mpc5200_pic>; |
129 | }; | 128 | }; |
130 | 129 | ||
131 | gpt@660 { // General Purpose Timer | 130 | gpt@660 { // General Purpose Timer |
@@ -134,7 +133,7 @@ | |||
134 | cell-index = <6>; | 133 | cell-index = <6>; |
135 | reg = <660 10>; | 134 | reg = <660 10>; |
136 | interrupts = <1 f 0>; | 135 | interrupts = <1 f 0>; |
137 | interrupt-parent = <500>; | 136 | interrupt-parent = <&mpc5200_pic>; |
138 | }; | 137 | }; |
139 | 138 | ||
140 | gpt@670 { // General Purpose Timer | 139 | gpt@670 { // General Purpose Timer |
@@ -143,7 +142,7 @@ | |||
143 | cell-index = <7>; | 142 | cell-index = <7>; |
144 | reg = <670 10>; | 143 | reg = <670 10>; |
145 | interrupts = <1 10 0>; | 144 | interrupts = <1 10 0>; |
146 | interrupt-parent = <500>; | 145 | interrupt-parent = <&mpc5200_pic>; |
147 | }; | 146 | }; |
148 | 147 | ||
149 | rtc@800 { // Real time clock | 148 | rtc@800 { // Real time clock |
@@ -151,7 +150,7 @@ | |||
151 | device_type = "rtc"; | 150 | device_type = "rtc"; |
152 | reg = <800 100>; | 151 | reg = <800 100>; |
153 | interrupts = <1 5 0 1 6 0>; | 152 | interrupts = <1 5 0 1 6 0>; |
154 | interrupt-parent = <500>; | 153 | interrupt-parent = <&mpc5200_pic>; |
155 | }; | 154 | }; |
156 | 155 | ||
157 | mscan@900 { | 156 | mscan@900 { |
@@ -159,7 +158,7 @@ | |||
159 | compatible = "mpc5200b-mscan\0mpc5200-mscan"; | 158 | compatible = "mpc5200b-mscan\0mpc5200-mscan"; |
160 | cell-index = <0>; | 159 | cell-index = <0>; |
161 | interrupts = <2 11 0>; | 160 | interrupts = <2 11 0>; |
162 | interrupt-parent = <500>; | 161 | interrupt-parent = <&mpc5200_pic>; |
163 | reg = <900 80>; | 162 | reg = <900 80>; |
164 | }; | 163 | }; |
165 | 164 | ||
@@ -168,7 +167,7 @@ | |||
168 | compatible = "mpc5200b-mscan\0mpc5200-mscan"; | 167 | compatible = "mpc5200b-mscan\0mpc5200-mscan"; |
169 | cell-index = <1>; | 168 | cell-index = <1>; |
170 | interrupts = <2 12 0>; | 169 | interrupts = <2 12 0>; |
171 | interrupt-parent = <500>; | 170 | interrupt-parent = <&mpc5200_pic>; |
172 | reg = <980 80>; | 171 | reg = <980 80>; |
173 | }; | 172 | }; |
174 | 173 | ||
@@ -176,14 +175,14 @@ | |||
176 | compatible = "mpc5200b-gpio\0mpc5200-gpio"; | 175 | compatible = "mpc5200b-gpio\0mpc5200-gpio"; |
177 | reg = <b00 40>; | 176 | reg = <b00 40>; |
178 | interrupts = <1 7 0>; | 177 | interrupts = <1 7 0>; |
179 | interrupt-parent = <500>; | 178 | interrupt-parent = <&mpc5200_pic>; |
180 | }; | 179 | }; |
181 | 180 | ||
182 | gpio-wkup@c00 { | 181 | gpio-wkup@c00 { |
183 | compatible = "mpc5200b-gpio-wkup\0mpc5200-gpio-wkup"; | 182 | compatible = "mpc5200b-gpio-wkup\0mpc5200-gpio-wkup"; |
184 | reg = <c00 40>; | 183 | reg = <c00 40>; |
185 | interrupts = <1 8 0 0 3 0>; | 184 | interrupts = <1 8 0 0 3 0>; |
186 | interrupt-parent = <500>; | 185 | interrupt-parent = <&mpc5200_pic>; |
187 | }; | 186 | }; |
188 | 187 | ||
189 | pci@0d00 { | 188 | pci@0d00 { |
@@ -194,18 +193,18 @@ | |||
194 | compatible = "mpc5200b-pci\0mpc5200-pci"; | 193 | compatible = "mpc5200b-pci\0mpc5200-pci"; |
195 | reg = <d00 100>; | 194 | reg = <d00 100>; |
196 | interrupt-map-mask = <f800 0 0 7>; | 195 | interrupt-map-mask = <f800 0 0 7>; |
197 | interrupt-map = <c000 0 0 1 500 0 0 3 // 1st slot | 196 | interrupt-map = <c000 0 0 1 &mpc5200_pic 0 0 3 // 1st slot |
198 | c000 0 0 2 500 1 1 3 | 197 | c000 0 0 2 &mpc5200_pic 1 1 3 |
199 | c000 0 0 3 500 1 2 3 | 198 | c000 0 0 3 &mpc5200_pic 1 2 3 |
200 | c000 0 0 4 500 1 3 3 | 199 | c000 0 0 4 &mpc5200_pic 1 3 3 |
201 | 200 | ||
202 | c800 0 0 1 500 1 1 3 // 2nd slot | 201 | c800 0 0 1 &mpc5200_pic 1 1 3 // 2nd slot |
203 | c800 0 0 2 500 1 2 3 | 202 | c800 0 0 2 &mpc5200_pic 1 2 3 |
204 | c800 0 0 3 500 1 3 3 | 203 | c800 0 0 3 &mpc5200_pic 1 3 3 |
205 | c800 0 0 4 500 0 0 3>; | 204 | c800 0 0 4 &mpc5200_pic 0 0 3>; |
206 | clock-frequency = <0>; // From boot loader | 205 | clock-frequency = <0>; // From boot loader |
207 | interrupts = <2 8 0 2 9 0 2 a 0>; | 206 | interrupts = <2 8 0 2 9 0 2 a 0>; |
208 | interrupt-parent = <500>; | 207 | interrupt-parent = <&mpc5200_pic>; |
209 | bus-range = <0 0>; | 208 | bus-range = <0 0>; |
210 | ranges = <42000000 0 80000000 80000000 0 20000000 | 209 | ranges = <42000000 0 80000000 80000000 0 20000000 |
211 | 02000000 0 a0000000 a0000000 0 10000000 | 210 | 02000000 0 a0000000 a0000000 0 10000000 |
@@ -217,7 +216,7 @@ | |||
217 | compatible = "mpc5200b-spi\0mpc5200-spi"; | 216 | compatible = "mpc5200b-spi\0mpc5200-spi"; |
218 | reg = <f00 20>; | 217 | reg = <f00 20>; |
219 | interrupts = <2 d 0 2 e 0>; | 218 | interrupts = <2 d 0 2 e 0>; |
220 | interrupt-parent = <500>; | 219 | interrupt-parent = <&mpc5200_pic>; |
221 | }; | 220 | }; |
222 | 221 | ||
223 | usb@1000 { | 222 | usb@1000 { |
@@ -225,7 +224,7 @@ | |||
225 | compatible = "mpc5200b-ohci\0mpc5200-ohci\0ohci-be"; | 224 | compatible = "mpc5200b-ohci\0mpc5200-ohci\0ohci-be"; |
226 | reg = <1000 ff>; | 225 | reg = <1000 ff>; |
227 | interrupts = <2 6 0>; | 226 | interrupts = <2 6 0>; |
228 | interrupt-parent = <500>; | 227 | interrupt-parent = <&mpc5200_pic>; |
229 | }; | 228 | }; |
230 | 229 | ||
231 | bestcomm@1200 { | 230 | bestcomm@1200 { |
@@ -236,7 +235,7 @@ | |||
236 | 3 4 0 3 5 0 3 6 0 3 7 0 | 235 | 3 4 0 3 5 0 3 6 0 3 7 0 |
237 | 3 8 0 3 9 0 3 a 0 3 b 0 | 236 | 3 8 0 3 9 0 3 a 0 3 b 0 |
238 | 3 c 0 3 d 0 3 e 0 3 f 0>; | 237 | 3 c 0 3 d 0 3 e 0 3 f 0>; |
239 | interrupt-parent = <500>; | 238 | interrupt-parent = <&mpc5200_pic>; |
240 | }; | 239 | }; |
241 | 240 | ||
242 | xlb@1f00 { | 241 | xlb@1f00 { |
@@ -251,7 +250,7 @@ | |||
251 | cell-index = <0>; | 250 | cell-index = <0>; |
252 | reg = <2000 100>; | 251 | reg = <2000 100>; |
253 | interrupts = <2 1 0>; | 252 | interrupts = <2 1 0>; |
254 | interrupt-parent = <500>; | 253 | interrupt-parent = <&mpc5200_pic>; |
255 | }; | 254 | }; |
256 | 255 | ||
257 | // PSC2 in ac97 mode example | 256 | // PSC2 in ac97 mode example |
@@ -261,7 +260,7 @@ | |||
261 | // cell-index = <1>; | 260 | // cell-index = <1>; |
262 | // reg = <2200 100>; | 261 | // reg = <2200 100>; |
263 | // interrupts = <2 2 0>; | 262 | // interrupts = <2 2 0>; |
264 | // interrupt-parent = <500>; | 263 | // interrupt-parent = <&mpc5200_pic>; |
265 | //}; | 264 | //}; |
266 | 265 | ||
267 | // PSC3 in CODEC mode example | 266 | // PSC3 in CODEC mode example |
@@ -271,7 +270,7 @@ | |||
271 | // cell-index = <2>; | 270 | // cell-index = <2>; |
272 | // reg = <2400 100>; | 271 | // reg = <2400 100>; |
273 | // interrupts = <2 3 0>; | 272 | // interrupts = <2 3 0>; |
274 | // interrupt-parent = <500>; | 273 | // interrupt-parent = <&mpc5200_pic>; |
275 | //}; | 274 | //}; |
276 | 275 | ||
277 | // PSC4 in uart mode example | 276 | // PSC4 in uart mode example |
@@ -281,7 +280,7 @@ | |||
281 | // cell-index = <3>; | 280 | // cell-index = <3>; |
282 | // reg = <2600 100>; | 281 | // reg = <2600 100>; |
283 | // interrupts = <2 b 0>; | 282 | // interrupts = <2 b 0>; |
284 | // interrupt-parent = <500>; | 283 | // interrupt-parent = <&mpc5200_pic>; |
285 | //}; | 284 | //}; |
286 | 285 | ||
287 | // PSC5 in uart mode example | 286 | // PSC5 in uart mode example |
@@ -291,7 +290,7 @@ | |||
291 | // cell-index = <4>; | 290 | // cell-index = <4>; |
292 | // reg = <2800 100>; | 291 | // reg = <2800 100>; |
293 | // interrupts = <2 c 0>; | 292 | // interrupts = <2 c 0>; |
294 | // interrupt-parent = <500>; | 293 | // interrupt-parent = <&mpc5200_pic>; |
295 | //}; | 294 | //}; |
296 | 295 | ||
297 | // PSC6 in spi mode example | 296 | // PSC6 in spi mode example |
@@ -301,7 +300,7 @@ | |||
301 | // cell-index = <5>; | 300 | // cell-index = <5>; |
302 | // reg = <2c00 100>; | 301 | // reg = <2c00 100>; |
303 | // interrupts = <2 4 0>; | 302 | // interrupts = <2 4 0>; |
304 | // interrupt-parent = <500>; | 303 | // interrupt-parent = <&mpc5200_pic>; |
305 | //}; | 304 | //}; |
306 | 305 | ||
307 | ethernet@3000 { | 306 | ethernet@3000 { |
@@ -310,7 +309,7 @@ | |||
310 | reg = <3000 800>; | 309 | reg = <3000 800>; |
311 | mac-address = [ 02 03 04 05 06 07 ]; // Bad! | 310 | mac-address = [ 02 03 04 05 06 07 ]; // Bad! |
312 | interrupts = <2 5 0>; | 311 | interrupts = <2 5 0>; |
313 | interrupt-parent = <500>; | 312 | interrupt-parent = <&mpc5200_pic>; |
314 | }; | 313 | }; |
315 | 314 | ||
316 | ata@3a00 { | 315 | ata@3a00 { |
@@ -318,7 +317,7 @@ | |||
318 | compatible = "mpc5200b-ata\0mpc5200-ata"; | 317 | compatible = "mpc5200b-ata\0mpc5200-ata"; |
319 | reg = <3a00 100>; | 318 | reg = <3a00 100>; |
320 | interrupts = <2 7 0>; | 319 | interrupts = <2 7 0>; |
321 | interrupt-parent = <500>; | 320 | interrupt-parent = <&mpc5200_pic>; |
322 | }; | 321 | }; |
323 | 322 | ||
324 | i2c@3d00 { | 323 | i2c@3d00 { |
@@ -327,7 +326,7 @@ | |||
327 | cell-index = <0>; | 326 | cell-index = <0>; |
328 | reg = <3d00 40>; | 327 | reg = <3d00 40>; |
329 | interrupts = <2 f 0>; | 328 | interrupts = <2 f 0>; |
330 | interrupt-parent = <500>; | 329 | interrupt-parent = <&mpc5200_pic>; |
331 | fsl5200-clocking; | 330 | fsl5200-clocking; |
332 | }; | 331 | }; |
333 | 332 | ||
@@ -337,7 +336,7 @@ | |||
337 | cell-index = <1>; | 336 | cell-index = <1>; |
338 | reg = <3d40 40>; | 337 | reg = <3d40 40>; |
339 | interrupts = <2 10 0>; | 338 | interrupts = <2 10 0>; |
340 | interrupt-parent = <500>; | 339 | interrupt-parent = <&mpc5200_pic>; |
341 | fsl5200-clocking; | 340 | fsl5200-clocking; |
342 | }; | 341 | }; |
343 | sram@8000 { | 342 | sram@8000 { |
diff --git a/arch/powerpc/boot/dts/mpc7448hpc2.dts b/arch/powerpc/boot/dts/mpc7448hpc2.dts index 6fa3754f293a..765c306ecf80 100644 --- a/arch/powerpc/boot/dts/mpc7448hpc2.dts +++ b/arch/powerpc/boot/dts/mpc7448hpc2.dts | |||
@@ -16,12 +16,10 @@ | |||
16 | compatible = "mpc74xx"; | 16 | compatible = "mpc74xx"; |
17 | #address-cells = <1>; | 17 | #address-cells = <1>; |
18 | #size-cells = <1>; | 18 | #size-cells = <1>; |
19 | linux,phandle = <100>; | ||
20 | 19 | ||
21 | cpus { | 20 | cpus { |
22 | #address-cells = <1>; | 21 | #address-cells = <1>; |
23 | #size-cells =<0>; | 22 | #size-cells =<0>; |
24 | linux,phandle = <200>; | ||
25 | 23 | ||
26 | PowerPC,7448@0 { | 24 | PowerPC,7448@0 { |
27 | device_type = "cpu"; | 25 | device_type = "cpu"; |
@@ -34,13 +32,11 @@ | |||
34 | clock-frequency = <0>; // From U-Boot | 32 | clock-frequency = <0>; // From U-Boot |
35 | bus-frequency = <0>; // From U-Boot | 33 | bus-frequency = <0>; // From U-Boot |
36 | 32-bit; | 34 | 32-bit; |
37 | linux,phandle = <201>; | ||
38 | }; | 35 | }; |
39 | }; | 36 | }; |
40 | 37 | ||
41 | memory { | 38 | memory { |
42 | device_type = "memory"; | 39 | device_type = "memory"; |
43 | linux,phandle = <300>; | ||
44 | reg = <00000000 20000000 // DDR2 512M at 0 | 40 | reg = <00000000 20000000 // DDR2 512M at 0 |
45 | >; | 41 | >; |
46 | }; | 42 | }; |
@@ -55,7 +51,7 @@ | |||
55 | bus-frequency = <0>; | 51 | bus-frequency = <0>; |
56 | 52 | ||
57 | i2c@7000 { | 53 | i2c@7000 { |
58 | interrupt-parent = <7400>; | 54 | interrupt-parent = <&mpic>; |
59 | interrupts = <E 0>; | 55 | interrupts = <E 0>; |
60 | reg = <7000 400>; | 56 | reg = <7000 400>; |
61 | device_type = "i2c"; | 57 | device_type = "i2c"; |
@@ -66,18 +62,16 @@ | |||
66 | device_type = "mdio"; | 62 | device_type = "mdio"; |
67 | compatible = "tsi-ethernet"; | 63 | compatible = "tsi-ethernet"; |
68 | 64 | ||
69 | ethernet-phy@6000 { | 65 | phy8: ethernet-phy@6000 { |
70 | linux,phandle = <6000>; | 66 | interrupt-parent = <&mpic>; |
71 | interrupt-parent = <7400>; | ||
72 | interrupts = <2 1>; | 67 | interrupts = <2 1>; |
73 | reg = <6000 50>; | 68 | reg = <6000 50>; |
74 | phy-id = <8>; | 69 | phy-id = <8>; |
75 | device_type = "ethernet-phy"; | 70 | device_type = "ethernet-phy"; |
76 | }; | 71 | }; |
77 | 72 | ||
78 | ethernet-phy@6400 { | 73 | phy9: ethernet-phy@6400 { |
79 | linux,phandle = <6400>; | 74 | interrupt-parent = <&mpic>; |
80 | interrupt-parent = <7400>; | ||
81 | interrupts = <2 1>; | 75 | interrupts = <2 1>; |
82 | reg = <6000 50>; | 76 | reg = <6000 50>; |
83 | phy-id = <9>; | 77 | phy-id = <9>; |
@@ -94,8 +88,8 @@ | |||
94 | reg = <6000 200>; | 88 | reg = <6000 200>; |
95 | address = [ 00 06 D2 00 00 01 ]; | 89 | address = [ 00 06 D2 00 00 01 ]; |
96 | interrupts = <10 2>; | 90 | interrupts = <10 2>; |
97 | interrupt-parent = <7400>; | 91 | interrupt-parent = <&mpic>; |
98 | phy-handle = <6000>; | 92 | phy-handle = <&phy8>; |
99 | }; | 93 | }; |
100 | 94 | ||
101 | ethernet@6600 { | 95 | ethernet@6600 { |
@@ -107,8 +101,8 @@ | |||
107 | reg = <6400 200>; | 101 | reg = <6400 200>; |
108 | address = [ 00 06 D2 00 00 02 ]; | 102 | address = [ 00 06 D2 00 00 02 ]; |
109 | interrupts = <11 2>; | 103 | interrupts = <11 2>; |
110 | interrupt-parent = <7400>; | 104 | interrupt-parent = <&mpic>; |
111 | phy-handle = <6400>; | 105 | phy-handle = <&phy9>; |
112 | }; | 106 | }; |
113 | 107 | ||
114 | serial@7808 { | 108 | serial@7808 { |
@@ -117,7 +111,7 @@ | |||
117 | reg = <7808 200>; | 111 | reg = <7808 200>; |
118 | clock-frequency = <3f6b5a00>; | 112 | clock-frequency = <3f6b5a00>; |
119 | interrupts = <c 0>; | 113 | interrupts = <c 0>; |
120 | interrupt-parent = <7400>; | 114 | interrupt-parent = <&mpic>; |
121 | }; | 115 | }; |
122 | 116 | ||
123 | serial@7c08 { | 117 | serial@7c08 { |
@@ -126,11 +120,10 @@ | |||
126 | reg = <7c08 200>; | 120 | reg = <7c08 200>; |
127 | clock-frequency = <3f6b5a00>; | 121 | clock-frequency = <3f6b5a00>; |
128 | interrupts = <d 0>; | 122 | interrupts = <d 0>; |
129 | interrupt-parent = <7400>; | 123 | interrupt-parent = <&mpic>; |
130 | }; | 124 | }; |
131 | 125 | ||
132 | pic@7400 { | 126 | mpic: pic@7400 { |
133 | linux,phandle = <7400>; | ||
134 | clock-frequency = <0>; | 127 | clock-frequency = <0>; |
135 | interrupt-controller; | 128 | interrupt-controller; |
136 | #address-cells = <0>; | 129 | #address-cells = <0>; |
@@ -144,7 +137,6 @@ | |||
144 | pci@1000 { | 137 | pci@1000 { |
145 | compatible = "tsi10x"; | 138 | compatible = "tsi10x"; |
146 | device_type = "pci"; | 139 | device_type = "pci"; |
147 | linux,phandle = <1000>; | ||
148 | #interrupt-cells = <1>; | 140 | #interrupt-cells = <1>; |
149 | #size-cells = <2>; | 141 | #size-cells = <2>; |
150 | #address-cells = <3>; | 142 | #address-cells = <3>; |
@@ -153,37 +145,37 @@ | |||
153 | ranges = <02000000 0 e0000000 e0000000 0 1A000000 | 145 | ranges = <02000000 0 e0000000 e0000000 0 1A000000 |
154 | 01000000 0 00000000 fa000000 0 00010000>; | 146 | 01000000 0 00000000 fa000000 0 00010000>; |
155 | clock-frequency = <7f28154>; | 147 | clock-frequency = <7f28154>; |
156 | interrupt-parent = <7400>; | 148 | interrupt-parent = <&mpic>; |
157 | interrupts = <17 2>; | 149 | interrupts = <17 2>; |
158 | interrupt-map-mask = <f800 0 0 7>; | 150 | interrupt-map-mask = <f800 0 0 7>; |
159 | interrupt-map = < | 151 | interrupt-map = < |
160 | 152 | ||
161 | /* IDSEL 0x11 */ | 153 | /* IDSEL 0x11 */ |
162 | 0800 0 0 1 1180 24 0 | 154 | 0800 0 0 1 &RT0 24 0 |
163 | 0800 0 0 2 1180 25 0 | 155 | 0800 0 0 2 &RT0 25 0 |
164 | 0800 0 0 3 1180 26 0 | 156 | 0800 0 0 3 &RT0 26 0 |
165 | 0800 0 0 4 1180 27 0 | 157 | 0800 0 0 4 &RT0 27 0 |
166 | 158 | ||
167 | /* IDSEL 0x12 */ | 159 | /* IDSEL 0x12 */ |
168 | 1000 0 0 1 1180 25 0 | 160 | 1000 0 0 1 &RT0 25 0 |
169 | 1000 0 0 2 1180 26 0 | 161 | 1000 0 0 2 &RT0 26 0 |
170 | 1000 0 0 3 1180 27 0 | 162 | 1000 0 0 3 &RT0 27 0 |
171 | 1000 0 0 4 1180 24 0 | 163 | 1000 0 0 4 &RT0 24 0 |
172 | 164 | ||
173 | /* IDSEL 0x13 */ | 165 | /* IDSEL 0x13 */ |
174 | 1800 0 0 1 1180 26 0 | 166 | 1800 0 0 1 &RT0 26 0 |
175 | 1800 0 0 2 1180 27 0 | 167 | 1800 0 0 2 &RT0 27 0 |
176 | 1800 0 0 3 1180 24 0 | 168 | 1800 0 0 3 &RT0 24 0 |
177 | 1800 0 0 4 1180 25 0 | 169 | 1800 0 0 4 &RT0 25 0 |
178 | 170 | ||
179 | /* IDSEL 0x14 */ | 171 | /* IDSEL 0x14 */ |
180 | 2000 0 0 1 1180 27 0 | 172 | 2000 0 0 1 &RT0 27 0 |
181 | 2000 0 0 2 1180 24 0 | 173 | 2000 0 0 2 &RT0 24 0 |
182 | 2000 0 0 3 1180 25 0 | 174 | 2000 0 0 3 &RT0 25 0 |
183 | 2000 0 0 4 1180 26 0 | 175 | 2000 0 0 4 &RT0 26 0 |
184 | >; | 176 | >; |
185 | router@1180 { | 177 | |
186 | linux,phandle = <1180>; | 178 | RT0: router@1180 { |
187 | clock-frequency = <0>; | 179 | clock-frequency = <0>; |
188 | interrupt-controller; | 180 | interrupt-controller; |
189 | device_type = "pic-router"; | 181 | device_type = "pic-router"; |
@@ -192,7 +184,7 @@ | |||
192 | built-in; | 184 | built-in; |
193 | big-endian; | 185 | big-endian; |
194 | interrupts = <17 2>; | 186 | interrupts = <17 2>; |
195 | interrupt-parent = <7400>; | 187 | interrupt-parent = <&mpic>; |
196 | }; | 188 | }; |
197 | }; | 189 | }; |
198 | }; | 190 | }; |
diff --git a/arch/powerpc/boot/dts/mpc8540ads.dts b/arch/powerpc/boot/dts/mpc8540ads.dts index f261d647ac85..d91e81c009f5 100644 --- a/arch/powerpc/boot/dts/mpc8540ads.dts +++ b/arch/powerpc/boot/dts/mpc8540ads.dts | |||
@@ -48,6 +48,22 @@ | |||
48 | reg = <e0000000 00100000>; // CCSRBAR 1M | 48 | reg = <e0000000 00100000>; // CCSRBAR 1M |
49 | bus-frequency = <0>; | 49 | bus-frequency = <0>; |
50 | 50 | ||
51 | memory-controller@2000 { | ||
52 | compatible = "fsl,8540-memory-controller"; | ||
53 | reg = <2000 1000>; | ||
54 | interrupt-parent = <&mpic>; | ||
55 | interrupts = <2 2>; | ||
56 | }; | ||
57 | |||
58 | l2-cache-controller@20000 { | ||
59 | compatible = "fsl,8540-l2-cache-controller"; | ||
60 | reg = <20000 1000>; | ||
61 | cache-line-size = <20>; // 32 bytes | ||
62 | cache-size = <40000>; // L2, 256K | ||
63 | interrupt-parent = <&mpic>; | ||
64 | interrupts = <0 2>; | ||
65 | }; | ||
66 | |||
51 | i2c@3000 { | 67 | i2c@3000 { |
52 | device_type = "i2c"; | 68 | device_type = "i2c"; |
53 | compatible = "fsl-i2c"; | 69 | compatible = "fsl-i2c"; |
diff --git a/arch/powerpc/boot/dts/mpc8541cds.dts b/arch/powerpc/boot/dts/mpc8541cds.dts index 5fdcb69554f2..4f2c3af2e052 100644 --- a/arch/powerpc/boot/dts/mpc8541cds.dts +++ b/arch/powerpc/boot/dts/mpc8541cds.dts | |||
@@ -48,6 +48,22 @@ | |||
48 | reg = <e0000000 00100000>; // CCSRBAR 1M | 48 | reg = <e0000000 00100000>; // CCSRBAR 1M |
49 | bus-frequency = <0>; | 49 | bus-frequency = <0>; |
50 | 50 | ||
51 | memory-controller@2000 { | ||
52 | compatible = "fsl,8541-memory-controller"; | ||
53 | reg = <2000 1000>; | ||
54 | interrupt-parent = <&mpic>; | ||
55 | interrupts = <2 2>; | ||
56 | }; | ||
57 | |||
58 | l2-cache-controller@20000 { | ||
59 | compatible = "fsl,8541-l2-cache-controller"; | ||
60 | reg = <20000 1000>; | ||
61 | cache-line-size = <20>; // 32 bytes | ||
62 | cache-size = <40000>; // L2, 256K | ||
63 | interrupt-parent = <&mpic>; | ||
64 | interrupts = <0 2>; | ||
65 | }; | ||
66 | |||
51 | i2c@3000 { | 67 | i2c@3000 { |
52 | device_type = "i2c"; | 68 | device_type = "i2c"; |
53 | compatible = "fsl-i2c"; | 69 | compatible = "fsl-i2c"; |
diff --git a/arch/powerpc/boot/dts/mpc8544ds.dts b/arch/powerpc/boot/dts/mpc8544ds.dts index 6b084605bb4b..3033599e74e8 100644 --- a/arch/powerpc/boot/dts/mpc8544ds.dts +++ b/arch/powerpc/boot/dts/mpc8544ds.dts | |||
@@ -48,6 +48,22 @@ | |||
48 | reg = <e0000000 00100000>; // CCSRBAR 1M | 48 | reg = <e0000000 00100000>; // CCSRBAR 1M |
49 | bus-frequency = <0>; // Filled out by uboot. | 49 | bus-frequency = <0>; // Filled out by uboot. |
50 | 50 | ||
51 | memory-controller@2000 { | ||
52 | compatible = "fsl,8544-memory-controller"; | ||
53 | reg = <2000 1000>; | ||
54 | interrupt-parent = <&mpic>; | ||
55 | interrupts = <2 2>; | ||
56 | }; | ||
57 | |||
58 | l2-cache-controller@20000 { | ||
59 | compatible = "fsl,8544-l2-cache-controller"; | ||
60 | reg = <20000 1000>; | ||
61 | cache-line-size = <20>; // 32 bytes | ||
62 | cache-size = <40000>; // L2, 256K | ||
63 | interrupt-parent = <&mpic>; | ||
64 | interrupts = <0 2>; | ||
65 | }; | ||
66 | |||
51 | i2c@3000 { | 67 | i2c@3000 { |
52 | device_type = "i2c"; | 68 | device_type = "i2c"; |
53 | compatible = "fsl-i2c"; | 69 | compatible = "fsl-i2c"; |
diff --git a/arch/powerpc/boot/dts/mpc8548cds.dts b/arch/powerpc/boot/dts/mpc8548cds.dts index b2b2200d0425..ad96381033c0 100644 --- a/arch/powerpc/boot/dts/mpc8548cds.dts +++ b/arch/powerpc/boot/dts/mpc8548cds.dts | |||
@@ -48,6 +48,22 @@ | |||
48 | reg = <e0000000 00100000>; // CCSRBAR 1M | 48 | reg = <e0000000 00100000>; // CCSRBAR 1M |
49 | bus-frequency = <0>; | 49 | bus-frequency = <0>; |
50 | 50 | ||
51 | memory-controller@2000 { | ||
52 | compatible = "fsl,8548-memory-controller"; | ||
53 | reg = <2000 1000>; | ||
54 | interrupt-parent = <&mpic>; | ||
55 | interrupts = <2 2>; | ||
56 | }; | ||
57 | |||
58 | l2-cache-controller@20000 { | ||
59 | compatible = "fsl,8548-l2-cache-controller"; | ||
60 | reg = <20000 1000>; | ||
61 | cache-line-size = <20>; // 32 bytes | ||
62 | cache-size = <80000>; // L2, 512K | ||
63 | interrupt-parent = <&mpic>; | ||
64 | interrupts = <0 2>; | ||
65 | }; | ||
66 | |||
51 | i2c@3000 { | 67 | i2c@3000 { |
52 | device_type = "i2c"; | 68 | device_type = "i2c"; |
53 | compatible = "fsl-i2c"; | 69 | compatible = "fsl-i2c"; |
diff --git a/arch/powerpc/boot/dts/mpc8555cds.dts b/arch/powerpc/boot/dts/mpc8555cds.dts index 68a4795720dc..951ed92f1154 100644 --- a/arch/powerpc/boot/dts/mpc8555cds.dts +++ b/arch/powerpc/boot/dts/mpc8555cds.dts | |||
@@ -48,6 +48,22 @@ | |||
48 | reg = <e0000000 00100000>; // CCSRBAR 1M | 48 | reg = <e0000000 00100000>; // CCSRBAR 1M |
49 | bus-frequency = <0>; | 49 | bus-frequency = <0>; |
50 | 50 | ||
51 | memory-controller@2000 { | ||
52 | compatible = "fsl,8555-memory-controller"; | ||
53 | reg = <2000 1000>; | ||
54 | interrupt-parent = <&mpic>; | ||
55 | interrupts = <2 2>; | ||
56 | }; | ||
57 | |||
58 | l2-cache-controller@20000 { | ||
59 | compatible = "fsl,8555-l2-cache-controller"; | ||
60 | reg = <20000 1000>; | ||
61 | cache-line-size = <20>; // 32 bytes | ||
62 | cache-size = <40000>; // L2, 256K | ||
63 | interrupt-parent = <&mpic>; | ||
64 | interrupts = <0 2>; | ||
65 | }; | ||
66 | |||
51 | i2c@3000 { | 67 | i2c@3000 { |
52 | device_type = "i2c"; | 68 | device_type = "i2c"; |
53 | compatible = "fsl-i2c"; | 69 | compatible = "fsl-i2c"; |
diff --git a/arch/powerpc/boot/dts/mpc8560ads.dts b/arch/powerpc/boot/dts/mpc8560ads.dts index 1f2afe9291d2..80682152b0cf 100644 --- a/arch/powerpc/boot/dts/mpc8560ads.dts +++ b/arch/powerpc/boot/dts/mpc8560ads.dts | |||
@@ -48,6 +48,22 @@ | |||
48 | reg = <e0000000 00000200>; | 48 | reg = <e0000000 00000200>; |
49 | bus-frequency = <13ab6680>; | 49 | bus-frequency = <13ab6680>; |
50 | 50 | ||
51 | memory-controller@2000 { | ||
52 | compatible = "fsl,8540-memory-controller"; | ||
53 | reg = <2000 1000>; | ||
54 | interrupt-parent = <&mpic>; | ||
55 | interrupts = <2 2>; | ||
56 | }; | ||
57 | |||
58 | l2-cache-controller@20000 { | ||
59 | compatible = "fsl,8540-l2-cache-controller"; | ||
60 | reg = <20000 1000>; | ||
61 | cache-line-size = <20>; // 32 bytes | ||
62 | cache-size = <40000>; // L2, 256K | ||
63 | interrupt-parent = <&mpic>; | ||
64 | interrupts = <0 2>; | ||
65 | }; | ||
66 | |||
51 | mdio@24520 { | 67 | mdio@24520 { |
52 | device_type = "mdio"; | 68 | device_type = "mdio"; |
53 | compatible = "gianfar"; | 69 | compatible = "gianfar"; |
@@ -110,7 +126,7 @@ | |||
110 | #address-cells = <3>; | 126 | #address-cells = <3>; |
111 | compatible = "85xx"; | 127 | compatible = "85xx"; |
112 | device_type = "pci"; | 128 | device_type = "pci"; |
113 | reg = <8000 400>; | 129 | reg = <8000 1000>; |
114 | clock-frequency = <3f940aa>; | 130 | clock-frequency = <3f940aa>; |
115 | interrupt-map-mask = <f800 0 0 7>; | 131 | interrupt-map-mask = <f800 0 0 7>; |
116 | interrupt-map = < | 132 | interrupt-map = < |
diff --git a/arch/powerpc/boot/dts/mpc8568mds.dts b/arch/powerpc/boot/dts/mpc8568mds.dts index 948a3b61bd4a..a123ec9456bc 100644 --- a/arch/powerpc/boot/dts/mpc8568mds.dts +++ b/arch/powerpc/boot/dts/mpc8568mds.dts | |||
@@ -57,6 +57,22 @@ | |||
57 | reg = <e0000000 00100000>; | 57 | reg = <e0000000 00100000>; |
58 | bus-frequency = <0>; | 58 | bus-frequency = <0>; |
59 | 59 | ||
60 | memory-controller@2000 { | ||
61 | compatible = "fsl,8568-memory-controller"; | ||
62 | reg = <2000 1000>; | ||
63 | interrupt-parent = <&mpic>; | ||
64 | interrupts = <2 2>; | ||
65 | }; | ||
66 | |||
67 | l2-cache-controller@20000 { | ||
68 | compatible = "fsl,8568-l2-cache-controller"; | ||
69 | reg = <20000 1000>; | ||
70 | cache-line-size = <20>; // 32 bytes | ||
71 | cache-size = <80000>; // L2, 512K | ||
72 | interrupt-parent = <&mpic>; | ||
73 | interrupts = <0 2>; | ||
74 | }; | ||
75 | |||
60 | i2c@3000 { | 76 | i2c@3000 { |
61 | device_type = "i2c"; | 77 | device_type = "i2c"; |
62 | compatible = "fsl-i2c"; | 78 | compatible = "fsl-i2c"; |
diff --git a/arch/powerpc/boot/flatdevtree.c b/arch/powerpc/boot/flatdevtree.c index d00fbd92a458..b732644788db 100644 --- a/arch/powerpc/boot/flatdevtree.c +++ b/arch/powerpc/boot/flatdevtree.c | |||
@@ -891,28 +891,27 @@ int ft_set_prop(struct ft_cxt *cxt, const void *phandle, const char *propname, | |||
891 | struct ft_atom atom; | 891 | struct ft_atom atom; |
892 | void *node; | 892 | void *node; |
893 | char *p, *next; | 893 | char *p, *next; |
894 | int nextra, depth; | 894 | int nextra; |
895 | 895 | ||
896 | node = ft_node_ph2node(cxt, phandle); | 896 | node = ft_node_ph2node(cxt, phandle); |
897 | if (node == NULL) | 897 | if (node == NULL) |
898 | return -1; | 898 | return -1; |
899 | 899 | ||
900 | depth = 0; | 900 | next = ft_next(cxt, node, &atom); |
901 | p = node; | 901 | if (atom.tag != OF_DT_BEGIN_NODE) |
902 | /* phandle didn't point to a node */ | ||
903 | return -1; | ||
904 | p = next; | ||
902 | 905 | ||
903 | while ((next = ft_next(cxt, p, &atom)) != NULL) { | 906 | while ((next = ft_next(cxt, p, &atom)) != NULL) { |
904 | switch (atom.tag) { | 907 | switch (atom.tag) { |
905 | case OF_DT_BEGIN_NODE: | 908 | case OF_DT_BEGIN_NODE: /* properties must go before subnodes */ |
906 | ++depth; | ||
907 | break; | ||
908 | case OF_DT_END_NODE: | 909 | case OF_DT_END_NODE: |
909 | if (--depth > 0) | ||
910 | break; | ||
911 | /* haven't found the property, insert here */ | 910 | /* haven't found the property, insert here */ |
912 | cxt->p = p; | 911 | cxt->p = p; |
913 | return ft_prop(cxt, propname, buf, buflen); | 912 | return ft_prop(cxt, propname, buf, buflen); |
914 | case OF_DT_PROP: | 913 | case OF_DT_PROP: |
915 | if ((depth != 1) || strcmp(atom.name, propname)) | 914 | if (strcmp(atom.name, propname)) |
916 | break; | 915 | break; |
917 | /* found an existing property, overwrite it */ | 916 | /* found an existing property, overwrite it */ |
918 | nextra = _ALIGN(buflen, 4) - _ALIGN(atom.size, 4); | 917 | nextra = _ALIGN(buflen, 4) - _ALIGN(atom.size, 4); |
diff --git a/arch/powerpc/configs/cell_defconfig b/arch/powerpc/configs/cell_defconfig index 6061e5f7696e..02c428affc8f 100644 --- a/arch/powerpc/configs/cell_defconfig +++ b/arch/powerpc/configs/cell_defconfig | |||
@@ -163,7 +163,6 @@ CONFIG_SPU_FS=m | |||
163 | CONFIG_SPU_BASE=y | 163 | CONFIG_SPU_BASE=y |
164 | CONFIG_CBE_RAS=y | 164 | CONFIG_CBE_RAS=y |
165 | CONFIG_CBE_THERM=m | 165 | CONFIG_CBE_THERM=m |
166 | CONFIG_CBE_CPUFREQ=m | ||
167 | CONFIG_PPC_NATIVE=y | 166 | CONFIG_PPC_NATIVE=y |
168 | CONFIG_UDBG_RTAS_CONSOLE=y | 167 | CONFIG_UDBG_RTAS_CONSOLE=y |
169 | CONFIG_PPC_UDBG_BEAT=y | 168 | CONFIG_PPC_UDBG_BEAT=y |
@@ -172,24 +171,12 @@ CONFIG_PPC_RTAS=y | |||
172 | # CONFIG_RTAS_ERROR_LOGGING is not set | 171 | # CONFIG_RTAS_ERROR_LOGGING is not set |
173 | CONFIG_RTAS_PROC=y | 172 | CONFIG_RTAS_PROC=y |
174 | CONFIG_RTAS_FLASH=y | 173 | CONFIG_RTAS_FLASH=y |
175 | CONFIG_PPC_PMI=m | 174 | # CONFIG_PPC_PMI is not set |
176 | CONFIG_MMIO_NVRAM=y | 175 | CONFIG_MMIO_NVRAM=y |
177 | # CONFIG_PPC_MPC106 is not set | 176 | # CONFIG_PPC_MPC106 is not set |
178 | # CONFIG_PPC_970_NAP is not set | 177 | # CONFIG_PPC_970_NAP is not set |
179 | CONFIG_PPC_INDIRECT_IO=y | 178 | CONFIG_PPC_INDIRECT_IO=y |
180 | CONFIG_GENERIC_IOMAP=y | 179 | CONFIG_GENERIC_IOMAP=y |
181 | CONFIG_CPU_FREQ=y | ||
182 | CONFIG_CPU_FREQ_TABLE=y | ||
183 | CONFIG_CPU_FREQ_DEBUG=y | ||
184 | CONFIG_CPU_FREQ_STAT=y | ||
185 | # CONFIG_CPU_FREQ_STAT_DETAILS is not set | ||
186 | CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y | ||
187 | # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set | ||
188 | CONFIG_CPU_FREQ_GOV_PERFORMANCE=y | ||
189 | CONFIG_CPU_FREQ_GOV_POWERSAVE=y | ||
190 | CONFIG_CPU_FREQ_GOV_USERSPACE=y | ||
191 | CONFIG_CPU_FREQ_GOV_ONDEMAND=y | ||
192 | CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y | ||
193 | # CONFIG_CPU_FREQ_PMAC64 is not set | 180 | # CONFIG_CPU_FREQ_PMAC64 is not set |
194 | # CONFIG_WANT_EARLY_SERIAL is not set | 181 | # CONFIG_WANT_EARLY_SERIAL is not set |
195 | CONFIG_MPIC=y | 182 | CONFIG_MPIC=y |
diff --git a/arch/powerpc/configs/iseries_defconfig b/arch/powerpc/configs/iseries_defconfig index 5fc87448704c..af25118c8f24 100644 --- a/arch/powerpc/configs/iseries_defconfig +++ b/arch/powerpc/configs/iseries_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.20-rc5 | 3 | # Linux kernel version: 2.6.22-rc1 |
4 | # Mon Jan 22 22:16:44 2007 | 4 | # Mon May 14 14:27:46 2007 |
5 | # | 5 | # |
6 | CONFIG_PPC64=y | 6 | CONFIG_PPC64=y |
7 | CONFIG_64BIT=y | 7 | CONFIG_64BIT=y |
@@ -40,6 +40,7 @@ CONFIG_PPC_FPU=y | |||
40 | # CONFIG_PPC_OF_PLATFORM_PCI is not set | 40 | # CONFIG_PPC_OF_PLATFORM_PCI is not set |
41 | # CONFIG_ALTIVEC is not set | 41 | # CONFIG_ALTIVEC is not set |
42 | CONFIG_PPC_STD_MMU=y | 42 | CONFIG_PPC_STD_MMU=y |
43 | # CONFIG_PPC_MM_SLICES is not set | ||
43 | CONFIG_VIRT_CPU_ACCOUNTING=y | 44 | CONFIG_VIRT_CPU_ACCOUNTING=y |
44 | CONFIG_SMP=y | 45 | CONFIG_SMP=y |
45 | CONFIG_NR_CPUS=32 | 46 | CONFIG_NR_CPUS=32 |
@@ -60,6 +61,7 @@ CONFIG_LOCALVERSION_AUTO=y | |||
60 | CONFIG_SWAP=y | 61 | CONFIG_SWAP=y |
61 | CONFIG_SYSVIPC=y | 62 | CONFIG_SYSVIPC=y |
62 | # CONFIG_IPC_NS is not set | 63 | # CONFIG_IPC_NS is not set |
64 | CONFIG_SYSVIPC_SYSCTL=y | ||
63 | CONFIG_POSIX_MQUEUE=y | 65 | CONFIG_POSIX_MQUEUE=y |
64 | # CONFIG_BSD_PROCESS_ACCT is not set | 66 | # CONFIG_BSD_PROCESS_ACCT is not set |
65 | # CONFIG_TASKSTATS is not set | 67 | # CONFIG_TASKSTATS is not set |
@@ -68,9 +70,11 @@ CONFIG_AUDIT=y | |||
68 | CONFIG_AUDITSYSCALL=y | 70 | CONFIG_AUDITSYSCALL=y |
69 | CONFIG_IKCONFIG=y | 71 | CONFIG_IKCONFIG=y |
70 | CONFIG_IKCONFIG_PROC=y | 72 | CONFIG_IKCONFIG_PROC=y |
73 | CONFIG_LOG_BUF_SHIFT=17 | ||
71 | # CONFIG_CPUSETS is not set | 74 | # CONFIG_CPUSETS is not set |
72 | CONFIG_SYSFS_DEPRECATED=y | 75 | CONFIG_SYSFS_DEPRECATED=y |
73 | # CONFIG_RELAY is not set | 76 | # CONFIG_RELAY is not set |
77 | CONFIG_BLK_DEV_INITRD=y | ||
74 | CONFIG_INITRAMFS_SOURCE="" | 78 | CONFIG_INITRAMFS_SOURCE="" |
75 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 79 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
76 | CONFIG_SYSCTL=y | 80 | CONFIG_SYSCTL=y |
@@ -85,14 +89,19 @@ CONFIG_BUG=y | |||
85 | CONFIG_ELF_CORE=y | 89 | CONFIG_ELF_CORE=y |
86 | CONFIG_BASE_FULL=y | 90 | CONFIG_BASE_FULL=y |
87 | CONFIG_FUTEX=y | 91 | CONFIG_FUTEX=y |
92 | CONFIG_ANON_INODES=y | ||
88 | CONFIG_EPOLL=y | 93 | CONFIG_EPOLL=y |
94 | CONFIG_SIGNALFD=y | ||
95 | CONFIG_TIMERFD=y | ||
96 | CONFIG_EVENTFD=y | ||
89 | CONFIG_SHMEM=y | 97 | CONFIG_SHMEM=y |
90 | CONFIG_SLAB=y | ||
91 | CONFIG_VM_EVENT_COUNTERS=y | 98 | CONFIG_VM_EVENT_COUNTERS=y |
99 | CONFIG_SLAB=y | ||
100 | # CONFIG_SLUB is not set | ||
101 | # CONFIG_SLOB is not set | ||
92 | CONFIG_RT_MUTEXES=y | 102 | CONFIG_RT_MUTEXES=y |
93 | # CONFIG_TINY_SHMEM is not set | 103 | # CONFIG_TINY_SHMEM is not set |
94 | CONFIG_BASE_SMALL=0 | 104 | CONFIG_BASE_SMALL=0 |
95 | # CONFIG_SLOB is not set | ||
96 | 105 | ||
97 | # | 106 | # |
98 | # Loadable module support | 107 | # Loadable module support |
@@ -131,15 +140,30 @@ CONFIG_PPC_MULTIPLATFORM=y | |||
131 | # CONFIG_EMBEDDED6xx is not set | 140 | # CONFIG_EMBEDDED6xx is not set |
132 | # CONFIG_APUS is not set | 141 | # CONFIG_APUS is not set |
133 | # CONFIG_PPC_PSERIES is not set | 142 | # CONFIG_PPC_PSERIES is not set |
143 | CONFIG_LPARCFG=y | ||
134 | CONFIG_PPC_ISERIES=y | 144 | CONFIG_PPC_ISERIES=y |
145 | |||
146 | # | ||
147 | # iSeries device drivers | ||
148 | # | ||
149 | CONFIG_VIODASD=y | ||
150 | CONFIG_VIOCD=m | ||
151 | CONFIG_VIOTAPE=m | ||
152 | CONFIG_VIOPATH=y | ||
135 | # CONFIG_PPC_MPC52xx is not set | 153 | # CONFIG_PPC_MPC52xx is not set |
154 | # CONFIG_PPC_MPC5200 is not set | ||
136 | # CONFIG_PPC_PMAC is not set | 155 | # CONFIG_PPC_PMAC is not set |
137 | # CONFIG_PPC_MAPLE is not set | 156 | # CONFIG_PPC_MAPLE is not set |
138 | # CONFIG_PPC_PASEMI is not set | 157 | # CONFIG_PPC_PASEMI is not set |
158 | # CONFIG_PPC_CELLEB is not set | ||
159 | # CONFIG_PPC_PS3 is not set | ||
139 | # CONFIG_PPC_CELL is not set | 160 | # CONFIG_PPC_CELL is not set |
140 | # CONFIG_PPC_CELL_NATIVE is not set | 161 | # CONFIG_PPC_CELL_NATIVE is not set |
141 | # CONFIG_PPC_IBM_CELL_BLADE is not set | 162 | # CONFIG_PPC_IBM_CELL_BLADE is not set |
142 | # CONFIG_PPC_PS3 is not set | 163 | # CONFIG_PQ2ADS is not set |
164 | # CONFIG_MPIC is not set | ||
165 | # CONFIG_MPIC_WEIRD is not set | ||
166 | # CONFIG_PPC_I8259 is not set | ||
143 | # CONFIG_U3_DART is not set | 167 | # CONFIG_U3_DART is not set |
144 | # CONFIG_PPC_RTAS is not set | 168 | # CONFIG_PPC_RTAS is not set |
145 | # CONFIG_MMIO_NVRAM is not set | 169 | # CONFIG_MMIO_NVRAM is not set |
@@ -149,8 +173,7 @@ CONFIG_IBMVIO=y | |||
149 | CONFIG_PPC_INDIRECT_IO=y | 173 | CONFIG_PPC_INDIRECT_IO=y |
150 | CONFIG_GENERIC_IOMAP=y | 174 | CONFIG_GENERIC_IOMAP=y |
151 | # CONFIG_CPU_FREQ is not set | 175 | # CONFIG_CPU_FREQ is not set |
152 | # CONFIG_WANT_EARLY_SERIAL is not set | 176 | # CONFIG_CPM2 is not set |
153 | # CONFIG_MPIC is not set | ||
154 | 177 | ||
155 | # | 178 | # |
156 | # Kernel options | 179 | # Kernel options |
@@ -172,7 +195,6 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | |||
172 | # CONFIG_KEXEC is not set | 195 | # CONFIG_KEXEC is not set |
173 | # CONFIG_CRASH_DUMP is not set | 196 | # CONFIG_CRASH_DUMP is not set |
174 | CONFIG_IRQ_ALL_CPUS=y | 197 | CONFIG_IRQ_ALL_CPUS=y |
175 | CONFIG_LPARCFG=y | ||
176 | # CONFIG_NUMA is not set | 198 | # CONFIG_NUMA is not set |
177 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | 199 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y |
178 | CONFIG_ARCH_FLATMEM_ENABLE=y | 200 | CONFIG_ARCH_FLATMEM_ENABLE=y |
@@ -187,34 +209,34 @@ CONFIG_FLAT_NODE_MEM_MAP=y | |||
187 | # CONFIG_SPARSEMEM_STATIC is not set | 209 | # CONFIG_SPARSEMEM_STATIC is not set |
188 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 210 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
189 | CONFIG_RESOURCES_64BIT=y | 211 | CONFIG_RESOURCES_64BIT=y |
212 | CONFIG_ZONE_DMA_FLAG=1 | ||
213 | # CONFIG_PPC_HAS_HASH_64K is not set | ||
190 | # CONFIG_PPC_64K_PAGES is not set | 214 | # CONFIG_PPC_64K_PAGES is not set |
191 | # CONFIG_SCHED_SMT is not set | 215 | # CONFIG_SCHED_SMT is not set |
192 | CONFIG_PROC_DEVICETREE=y | 216 | CONFIG_PROC_DEVICETREE=y |
193 | # CONFIG_CMDLINE_BOOL is not set | 217 | # CONFIG_CMDLINE_BOOL is not set |
194 | # CONFIG_PM is not set | 218 | # CONFIG_PM is not set |
195 | CONFIG_SECCOMP=y | 219 | CONFIG_SECCOMP=y |
220 | # CONFIG_WANT_DEVICE_TREE is not set | ||
196 | CONFIG_ISA_DMA_API=y | 221 | CONFIG_ISA_DMA_API=y |
197 | 222 | ||
198 | # | 223 | # |
199 | # Bus options | 224 | # Bus options |
200 | # | 225 | # |
226 | CONFIG_ZONE_DMA=y | ||
201 | CONFIG_GENERIC_ISA_DMA=y | 227 | CONFIG_GENERIC_ISA_DMA=y |
202 | # CONFIG_MPIC_WEIRD is not set | ||
203 | # CONFIG_PPC_I8259 is not set | ||
204 | # CONFIG_PPC_INDIRECT_PCI is not set | 228 | # CONFIG_PPC_INDIRECT_PCI is not set |
205 | CONFIG_PCI=y | 229 | CONFIG_PCI=y |
206 | CONFIG_PCI_DOMAINS=y | 230 | CONFIG_PCI_DOMAINS=y |
207 | # CONFIG_PCIEPORTBUS is not set | 231 | # CONFIG_PCIEPORTBUS is not set |
232 | CONFIG_ARCH_SUPPORTS_MSI=y | ||
233 | # CONFIG_PCI_MSI is not set | ||
208 | # CONFIG_PCI_DEBUG is not set | 234 | # CONFIG_PCI_DEBUG is not set |
209 | 235 | ||
210 | # | 236 | # |
211 | # PCCARD (PCMCIA/CardBus) support | 237 | # PCCARD (PCMCIA/CardBus) support |
212 | # | 238 | # |
213 | # CONFIG_PCCARD is not set | 239 | # CONFIG_PCCARD is not set |
214 | |||
215 | # | ||
216 | # PCI Hotplug Support | ||
217 | # | ||
218 | # CONFIG_HOTPLUG_PCI is not set | 240 | # CONFIG_HOTPLUG_PCI is not set |
219 | CONFIG_KERNEL_START=0xc000000000000000 | 241 | CONFIG_KERNEL_START=0xc000000000000000 |
220 | 242 | ||
@@ -226,14 +248,15 @@ CONFIG_NET=y | |||
226 | # | 248 | # |
227 | # Networking options | 249 | # Networking options |
228 | # | 250 | # |
229 | # CONFIG_NETDEBUG is not set | ||
230 | CONFIG_PACKET=y | 251 | CONFIG_PACKET=y |
231 | # CONFIG_PACKET_MMAP is not set | 252 | # CONFIG_PACKET_MMAP is not set |
232 | CONFIG_UNIX=y | 253 | CONFIG_UNIX=y |
233 | CONFIG_XFRM=y | 254 | CONFIG_XFRM=y |
234 | CONFIG_XFRM_USER=m | 255 | CONFIG_XFRM_USER=m |
235 | CONFIG_XFRM_SUB_POLICY=y | 256 | CONFIG_XFRM_SUB_POLICY=y |
257 | # CONFIG_XFRM_MIGRATE is not set | ||
236 | CONFIG_NET_KEY=m | 258 | CONFIG_NET_KEY=m |
259 | # CONFIG_NET_KEY_MIGRATE is not set | ||
237 | CONFIG_INET=y | 260 | CONFIG_INET=y |
238 | CONFIG_IP_MULTICAST=y | 261 | CONFIG_IP_MULTICAST=y |
239 | # CONFIG_IP_ADVANCED_ROUTER is not set | 262 | # CONFIG_IP_ADVANCED_ROUTER is not set |
@@ -275,8 +298,6 @@ CONFIG_NETFILTER=y | |||
275 | # | 298 | # |
276 | # CONFIG_NETFILTER_NETLINK is not set | 299 | # CONFIG_NETFILTER_NETLINK is not set |
277 | CONFIG_NF_CONNTRACK_ENABLED=m | 300 | CONFIG_NF_CONNTRACK_ENABLED=m |
278 | CONFIG_NF_CONNTRACK_SUPPORT=y | ||
279 | # CONFIG_IP_NF_CONNTRACK_SUPPORT is not set | ||
280 | CONFIG_NF_CONNTRACK=m | 301 | CONFIG_NF_CONNTRACK=m |
281 | # CONFIG_NF_CT_ACCT is not set | 302 | # CONFIG_NF_CT_ACCT is not set |
282 | CONFIG_NF_CONNTRACK_MARK=y | 303 | CONFIG_NF_CONNTRACK_MARK=y |
@@ -288,6 +309,7 @@ CONFIG_NF_CONNTRACK_FTP=m | |||
288 | CONFIG_NF_CONNTRACK_IRC=m | 309 | CONFIG_NF_CONNTRACK_IRC=m |
289 | # CONFIG_NF_CONNTRACK_NETBIOS_NS is not set | 310 | # CONFIG_NF_CONNTRACK_NETBIOS_NS is not set |
290 | # CONFIG_NF_CONNTRACK_PPTP is not set | 311 | # CONFIG_NF_CONNTRACK_PPTP is not set |
312 | # CONFIG_NF_CONNTRACK_SANE is not set | ||
291 | # CONFIG_NF_CONNTRACK_SIP is not set | 313 | # CONFIG_NF_CONNTRACK_SIP is not set |
292 | CONFIG_NF_CONNTRACK_TFTP=m | 314 | CONFIG_NF_CONNTRACK_TFTP=m |
293 | CONFIG_NETFILTER_XTABLES=m | 315 | CONFIG_NETFILTER_XTABLES=m |
@@ -298,7 +320,9 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m | |||
298 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | 320 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m |
299 | # CONFIG_NETFILTER_XT_TARGET_NFLOG is not set | 321 | # CONFIG_NETFILTER_XT_TARGET_NFLOG is not set |
300 | # CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set | 322 | # CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set |
323 | # CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set | ||
301 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | 324 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m |
325 | # CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set | ||
302 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m | 326 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m |
303 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m | 327 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m |
304 | # CONFIG_NETFILTER_XT_MATCH_DCCP is not set | 328 | # CONFIG_NETFILTER_XT_MATCH_DCCP is not set |
@@ -340,7 +364,6 @@ CONFIG_IP_NF_FILTER=m | |||
340 | CONFIG_IP_NF_TARGET_REJECT=m | 364 | CONFIG_IP_NF_TARGET_REJECT=m |
341 | CONFIG_IP_NF_TARGET_LOG=m | 365 | CONFIG_IP_NF_TARGET_LOG=m |
342 | CONFIG_IP_NF_TARGET_ULOG=m | 366 | CONFIG_IP_NF_TARGET_ULOG=m |
343 | CONFIG_IP_NF_TARGET_TCPMSS=m | ||
344 | CONFIG_NF_NAT=m | 367 | CONFIG_NF_NAT=m |
345 | CONFIG_NF_NAT_NEEDED=y | 368 | CONFIG_NF_NAT_NEEDED=y |
346 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 369 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
@@ -373,7 +396,12 @@ CONFIG_IP_NF_ARP_MANGLE=m | |||
373 | # | 396 | # |
374 | # SCTP Configuration (EXPERIMENTAL) | 397 | # SCTP Configuration (EXPERIMENTAL) |
375 | # | 398 | # |
376 | # CONFIG_IP_SCTP is not set | 399 | CONFIG_IP_SCTP=m |
400 | # CONFIG_SCTP_DBG_MSG is not set | ||
401 | # CONFIG_SCTP_DBG_OBJCNT is not set | ||
402 | # CONFIG_SCTP_HMAC_NONE is not set | ||
403 | # CONFIG_SCTP_HMAC_SHA1 is not set | ||
404 | CONFIG_SCTP_HMAC_MD5=y | ||
377 | 405 | ||
378 | # | 406 | # |
379 | # TIPC Configuration (EXPERIMENTAL) | 407 | # TIPC Configuration (EXPERIMENTAL) |
@@ -405,7 +433,16 @@ CONFIG_NET_CLS_ROUTE=y | |||
405 | # CONFIG_HAMRADIO is not set | 433 | # CONFIG_HAMRADIO is not set |
406 | # CONFIG_IRDA is not set | 434 | # CONFIG_IRDA is not set |
407 | # CONFIG_BT is not set | 435 | # CONFIG_BT is not set |
436 | # CONFIG_AF_RXRPC is not set | ||
437 | |||
438 | # | ||
439 | # Wireless | ||
440 | # | ||
441 | # CONFIG_CFG80211 is not set | ||
442 | # CONFIG_WIRELESS_EXT is not set | ||
443 | # CONFIG_MAC80211 is not set | ||
408 | # CONFIG_IEEE80211 is not set | 444 | # CONFIG_IEEE80211 is not set |
445 | # CONFIG_RFKILL is not set | ||
409 | 446 | ||
410 | # | 447 | # |
411 | # Device Drivers | 448 | # Device Drivers |
@@ -418,16 +455,13 @@ CONFIG_STANDALONE=y | |||
418 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 455 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
419 | CONFIG_FW_LOADER=m | 456 | CONFIG_FW_LOADER=m |
420 | # CONFIG_DEBUG_DRIVER is not set | 457 | # CONFIG_DEBUG_DRIVER is not set |
458 | # CONFIG_DEBUG_DEVRES is not set | ||
421 | # CONFIG_SYS_HYPERVISOR is not set | 459 | # CONFIG_SYS_HYPERVISOR is not set |
422 | 460 | ||
423 | # | 461 | # |
424 | # Connector - unified userspace <-> kernelspace linker | 462 | # Connector - unified userspace <-> kernelspace linker |
425 | # | 463 | # |
426 | # CONFIG_CONNECTOR is not set | 464 | # CONFIG_CONNECTOR is not set |
427 | |||
428 | # | ||
429 | # Memory Technology Devices (MTD) | ||
430 | # | ||
431 | # CONFIG_MTD is not set | 465 | # CONFIG_MTD is not set |
432 | 466 | ||
433 | # | 467 | # |
@@ -438,6 +472,7 @@ CONFIG_FW_LOADER=m | |||
438 | # | 472 | # |
439 | # Plug and Play support | 473 | # Plug and Play support |
440 | # | 474 | # |
475 | # CONFIG_PNPACPI is not set | ||
441 | 476 | ||
442 | # | 477 | # |
443 | # Block devices | 478 | # Block devices |
@@ -456,15 +491,16 @@ CONFIG_BLK_DEV_RAM=y | |||
456 | CONFIG_BLK_DEV_RAM_COUNT=16 | 491 | CONFIG_BLK_DEV_RAM_COUNT=16 |
457 | CONFIG_BLK_DEV_RAM_SIZE=65536 | 492 | CONFIG_BLK_DEV_RAM_SIZE=65536 |
458 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 493 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 |
459 | CONFIG_BLK_DEV_INITRD=y | ||
460 | # CONFIG_CDROM_PKTCDVD is not set | 494 | # CONFIG_CDROM_PKTCDVD is not set |
461 | # CONFIG_ATA_OVER_ETH is not set | 495 | # CONFIG_ATA_OVER_ETH is not set |
462 | 496 | ||
463 | # | 497 | # |
464 | # Misc devices | 498 | # Misc devices |
465 | # | 499 | # |
500 | # CONFIG_PHANTOM is not set | ||
466 | # CONFIG_SGI_IOC4 is not set | 501 | # CONFIG_SGI_IOC4 is not set |
467 | # CONFIG_TIFM_CORE is not set | 502 | # CONFIG_TIFM_CORE is not set |
503 | # CONFIG_BLINK is not set | ||
468 | 504 | ||
469 | # | 505 | # |
470 | # ATA/ATAPI/MFM/RLL support | 506 | # ATA/ATAPI/MFM/RLL support |
@@ -498,6 +534,7 @@ CONFIG_SCSI_MULTI_LUN=y | |||
498 | CONFIG_SCSI_CONSTANTS=y | 534 | CONFIG_SCSI_CONSTANTS=y |
499 | # CONFIG_SCSI_LOGGING is not set | 535 | # CONFIG_SCSI_LOGGING is not set |
500 | # CONFIG_SCSI_SCAN_ASYNC is not set | 536 | # CONFIG_SCSI_SCAN_ASYNC is not set |
537 | CONFIG_SCSI_WAIT_SCAN=m | ||
501 | 538 | ||
502 | # | 539 | # |
503 | # SCSI Transports | 540 | # SCSI Transports |
@@ -544,11 +581,8 @@ CONFIG_SCSI_IBMVSCSI=m | |||
544 | # CONFIG_SCSI_DC395x is not set | 581 | # CONFIG_SCSI_DC395x is not set |
545 | # CONFIG_SCSI_DC390T is not set | 582 | # CONFIG_SCSI_DC390T is not set |
546 | # CONFIG_SCSI_DEBUG is not set | 583 | # CONFIG_SCSI_DEBUG is not set |
584 | # CONFIG_SCSI_ESP_CORE is not set | ||
547 | # CONFIG_SCSI_SRP is not set | 585 | # CONFIG_SCSI_SRP is not set |
548 | |||
549 | # | ||
550 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
551 | # | ||
552 | # CONFIG_ATA is not set | 586 | # CONFIG_ATA is not set |
553 | 587 | ||
554 | # | 588 | # |
@@ -570,6 +604,7 @@ CONFIG_DM_SNAPSHOT=m | |||
570 | CONFIG_DM_MIRROR=m | 604 | CONFIG_DM_MIRROR=m |
571 | CONFIG_DM_ZERO=m | 605 | CONFIG_DM_ZERO=m |
572 | # CONFIG_DM_MULTIPATH is not set | 606 | # CONFIG_DM_MULTIPATH is not set |
607 | # CONFIG_DM_DELAY is not set | ||
573 | 608 | ||
574 | # | 609 | # |
575 | # Fusion MPT device support | 610 | # Fusion MPT device support |
@@ -582,18 +617,14 @@ CONFIG_DM_ZERO=m | |||
582 | # | 617 | # |
583 | # IEEE 1394 (FireWire) support | 618 | # IEEE 1394 (FireWire) support |
584 | # | 619 | # |
620 | # CONFIG_FIREWIRE is not set | ||
585 | # CONFIG_IEEE1394 is not set | 621 | # CONFIG_IEEE1394 is not set |
586 | 622 | ||
587 | # | 623 | # |
588 | # I2O device support | 624 | # I2O device support |
589 | # | 625 | # |
590 | # CONFIG_I2O is not set | 626 | # CONFIG_I2O is not set |
591 | 627 | # CONFIG_MACINTOSH_DRIVERS is not set | |
592 | # | ||
593 | # Macintosh device drivers | ||
594 | # | ||
595 | # CONFIG_MAC_EMUMOUSEBTN is not set | ||
596 | # CONFIG_WINDFARM is not set | ||
597 | 628 | ||
598 | # | 629 | # |
599 | # Network device support | 630 | # Network device support |
@@ -608,10 +639,6 @@ CONFIG_TUN=m | |||
608 | # ARCnet devices | 639 | # ARCnet devices |
609 | # | 640 | # |
610 | # CONFIG_ARCNET is not set | 641 | # CONFIG_ARCNET is not set |
611 | |||
612 | # | ||
613 | # PHY device support | ||
614 | # | ||
615 | # CONFIG_PHYLIB is not set | 642 | # CONFIG_PHYLIB is not set |
616 | 643 | ||
617 | # | 644 | # |
@@ -648,10 +675,8 @@ CONFIG_E100=y | |||
648 | # CONFIG_EPIC100 is not set | 675 | # CONFIG_EPIC100 is not set |
649 | # CONFIG_SUNDANCE is not set | 676 | # CONFIG_SUNDANCE is not set |
650 | # CONFIG_VIA_RHINE is not set | 677 | # CONFIG_VIA_RHINE is not set |
651 | 678 | # CONFIG_SC92031 is not set | |
652 | # | 679 | CONFIG_NETDEV_1000=y |
653 | # Ethernet (1000 Mbit) | ||
654 | # | ||
655 | CONFIG_ACENIC=m | 680 | CONFIG_ACENIC=m |
656 | # CONFIG_ACENIC_OMIT_TIGON_I is not set | 681 | # CONFIG_ACENIC_OMIT_TIGON_I is not set |
657 | # CONFIG_DL2K is not set | 682 | # CONFIG_DL2K is not set |
@@ -670,15 +695,17 @@ CONFIG_E1000=m | |||
670 | # CONFIG_TIGON3 is not set | 695 | # CONFIG_TIGON3 is not set |
671 | # CONFIG_BNX2 is not set | 696 | # CONFIG_BNX2 is not set |
672 | # CONFIG_QLA3XXX is not set | 697 | # CONFIG_QLA3XXX is not set |
673 | 698 | # CONFIG_ATL1 is not set | |
674 | # | 699 | CONFIG_NETDEV_10000=y |
675 | # Ethernet (10000 Mbit) | ||
676 | # | ||
677 | # CONFIG_CHELSIO_T1 is not set | 700 | # CONFIG_CHELSIO_T1 is not set |
701 | # CONFIG_CHELSIO_T3 is not set | ||
678 | # CONFIG_IXGB is not set | 702 | # CONFIG_IXGB is not set |
679 | # CONFIG_S2IO is not set | 703 | # CONFIG_S2IO is not set |
680 | # CONFIG_MYRI10GE is not set | 704 | # CONFIG_MYRI10GE is not set |
681 | # CONFIG_NETXEN_NIC is not set | 705 | # CONFIG_NETXEN_NIC is not set |
706 | # CONFIG_PASEMI_MAC is not set | ||
707 | # CONFIG_MLX4_CORE is not set | ||
708 | CONFIG_MLX4_DEBUG=y | ||
682 | 709 | ||
683 | # | 710 | # |
684 | # Token Ring devices | 711 | # Token Ring devices |
@@ -689,13 +716,10 @@ CONFIG_IBMOL=y | |||
689 | # CONFIG_TMS380TR is not set | 716 | # CONFIG_TMS380TR is not set |
690 | 717 | ||
691 | # | 718 | # |
692 | # Wireless LAN (non-hamradio) | 719 | # Wireless LAN |
693 | # | ||
694 | # CONFIG_NET_RADIO is not set | ||
695 | |||
696 | # | ||
697 | # Wan interfaces | ||
698 | # | 720 | # |
721 | # CONFIG_WLAN_PRE80211 is not set | ||
722 | # CONFIG_WLAN_80211 is not set | ||
699 | # CONFIG_WAN is not set | 723 | # CONFIG_WAN is not set |
700 | CONFIG_ISERIES_VETH=y | 724 | CONFIG_ISERIES_VETH=y |
701 | # CONFIG_FDDI is not set | 725 | # CONFIG_FDDI is not set |
@@ -715,7 +739,6 @@ CONFIG_SLHC=m | |||
715 | # CONFIG_SHAPER is not set | 739 | # CONFIG_SHAPER is not set |
716 | CONFIG_NETCONSOLE=y | 740 | CONFIG_NETCONSOLE=y |
717 | CONFIG_NETPOLL=y | 741 | CONFIG_NETPOLL=y |
718 | CONFIG_NETPOLL_RX=y | ||
719 | CONFIG_NETPOLL_TRAP=y | 742 | CONFIG_NETPOLL_TRAP=y |
720 | CONFIG_NET_POLL_CONTROLLER=y | 743 | CONFIG_NET_POLL_CONTROLLER=y |
721 | 744 | ||
@@ -753,6 +776,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | |||
753 | # CONFIG_INPUT_KEYBOARD is not set | 776 | # CONFIG_INPUT_KEYBOARD is not set |
754 | # CONFIG_INPUT_MOUSE is not set | 777 | # CONFIG_INPUT_MOUSE is not set |
755 | # CONFIG_INPUT_JOYSTICK is not set | 778 | # CONFIG_INPUT_JOYSTICK is not set |
779 | # CONFIG_INPUT_TABLET is not set | ||
756 | # CONFIG_INPUT_TOUCHSCREEN is not set | 780 | # CONFIG_INPUT_TOUCHSCREEN is not set |
757 | # CONFIG_INPUT_MISC is not set | 781 | # CONFIG_INPUT_MISC is not set |
758 | 782 | ||
@@ -765,6 +789,10 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | |||
765 | # | 789 | # |
766 | # Character devices | 790 | # Character devices |
767 | # | 791 | # |
792 | CONFIG_VT=y | ||
793 | CONFIG_VT_CONSOLE=y | ||
794 | CONFIG_HW_CONSOLE=y | ||
795 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | ||
768 | # CONFIG_SERIAL_NONSTANDARD is not set | 796 | # CONFIG_SERIAL_NONSTANDARD is not set |
769 | 797 | ||
770 | # | 798 | # |
@@ -781,20 +809,17 @@ CONFIG_SERIAL_ICOM=m | |||
781 | CONFIG_UNIX98_PTYS=y | 809 | CONFIG_UNIX98_PTYS=y |
782 | CONFIG_LEGACY_PTYS=y | 810 | CONFIG_LEGACY_PTYS=y |
783 | CONFIG_LEGACY_PTY_COUNT=256 | 811 | CONFIG_LEGACY_PTY_COUNT=256 |
812 | CONFIG_HVC_DRIVER=y | ||
813 | CONFIG_HVC_ISERIES=y | ||
784 | 814 | ||
785 | # | 815 | # |
786 | # IPMI | 816 | # IPMI |
787 | # | 817 | # |
788 | # CONFIG_IPMI_HANDLER is not set | 818 | # CONFIG_IPMI_HANDLER is not set |
789 | |||
790 | # | ||
791 | # Watchdog Cards | ||
792 | # | ||
793 | # CONFIG_WATCHDOG is not set | 819 | # CONFIG_WATCHDOG is not set |
794 | # CONFIG_HW_RANDOM is not set | 820 | # CONFIG_HW_RANDOM is not set |
795 | CONFIG_GEN_RTC=y | 821 | CONFIG_GEN_RTC=y |
796 | # CONFIG_GEN_RTC_X is not set | 822 | # CONFIG_GEN_RTC_X is not set |
797 | # CONFIG_DTLK is not set | ||
798 | # CONFIG_R3964 is not set | 823 | # CONFIG_R3964 is not set |
799 | # CONFIG_APPLICOM is not set | 824 | # CONFIG_APPLICOM is not set |
800 | # CONFIG_AGP is not set | 825 | # CONFIG_AGP is not set |
@@ -807,10 +832,7 @@ CONFIG_MAX_RAW_DEVS=256 | |||
807 | # TPM devices | 832 | # TPM devices |
808 | # | 833 | # |
809 | # CONFIG_TCG_TPM is not set | 834 | # CONFIG_TCG_TPM is not set |
810 | 835 | CONFIG_DEVPORT=y | |
811 | # | ||
812 | # I2C support | ||
813 | # | ||
814 | # CONFIG_I2C is not set | 836 | # CONFIG_I2C is not set |
815 | 837 | ||
816 | # | 838 | # |
@@ -823,30 +845,39 @@ CONFIG_MAX_RAW_DEVS=256 | |||
823 | # Dallas's 1-wire bus | 845 | # Dallas's 1-wire bus |
824 | # | 846 | # |
825 | # CONFIG_W1 is not set | 847 | # CONFIG_W1 is not set |
848 | # CONFIG_HWMON is not set | ||
826 | 849 | ||
827 | # | 850 | # |
828 | # Hardware Monitoring support | 851 | # Multifunction device drivers |
829 | # | 852 | # |
830 | # CONFIG_HWMON is not set | 853 | # CONFIG_MFD_SM501 is not set |
831 | # CONFIG_HWMON_VID is not set | ||
832 | 854 | ||
833 | # | 855 | # |
834 | # Multimedia devices | 856 | # Multimedia devices |
835 | # | 857 | # |
836 | # CONFIG_VIDEO_DEV is not set | 858 | # CONFIG_VIDEO_DEV is not set |
859 | # CONFIG_DVB_CORE is not set | ||
860 | # CONFIG_DAB is not set | ||
837 | 861 | ||
838 | # | 862 | # |
839 | # Digital Video Broadcasting Devices | 863 | # Graphics support |
840 | # | 864 | # |
841 | # CONFIG_DVB is not set | 865 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
842 | 866 | ||
843 | # | 867 | # |
844 | # Graphics support | 868 | # Display device support |
845 | # | 869 | # |
846 | CONFIG_FIRMWARE_EDID=y | 870 | # CONFIG_DISPLAY_SUPPORT is not set |
871 | # CONFIG_VGASTATE is not set | ||
847 | # CONFIG_FB is not set | 872 | # CONFIG_FB is not set |
848 | # CONFIG_FB_IBM_GXT4500 is not set | 873 | # CONFIG_FB_IBM_GXT4500 is not set |
849 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 874 | |
875 | # | ||
876 | # Console display driver support | ||
877 | # | ||
878 | CONFIG_VGA_CONSOLE=y | ||
879 | # CONFIG_VGACON_SOFT_SCROLLBACK is not set | ||
880 | CONFIG_DUMMY_CONSOLE=y | ||
850 | 881 | ||
851 | # | 882 | # |
852 | # Sound | 883 | # Sound |
@@ -874,10 +905,6 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
874 | # USB Gadget Support | 905 | # USB Gadget Support |
875 | # | 906 | # |
876 | # CONFIG_USB_GADGET is not set | 907 | # CONFIG_USB_GADGET is not set |
877 | |||
878 | # | ||
879 | # MMC/SD Card support | ||
880 | # | ||
881 | # CONFIG_MMC is not set | 908 | # CONFIG_MMC is not set |
882 | 909 | ||
883 | # | 910 | # |
@@ -921,10 +948,6 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
921 | # | 948 | # |
922 | 949 | ||
923 | # | 950 | # |
924 | # Virtualization | ||
925 | # | ||
926 | |||
927 | # | ||
928 | # File systems | 951 | # File systems |
929 | # | 952 | # |
930 | CONFIG_EXT2_FS=y | 953 | CONFIG_EXT2_FS=y |
@@ -979,7 +1002,6 @@ CONFIG_GENERIC_ACL=y | |||
979 | CONFIG_ISO9660_FS=y | 1002 | CONFIG_ISO9660_FS=y |
980 | CONFIG_JOLIET=y | 1003 | CONFIG_JOLIET=y |
981 | CONFIG_ZISOFS=y | 1004 | CONFIG_ZISOFS=y |
982 | CONFIG_ZISOFS_FS=y | ||
983 | CONFIG_UDF_FS=m | 1005 | CONFIG_UDF_FS=m |
984 | CONFIG_UDF_NLS=y | 1006 | CONFIG_UDF_NLS=y |
985 | 1007 | ||
@@ -1045,6 +1067,7 @@ CONFIG_NFS_ACL_SUPPORT=y | |||
1045 | CONFIG_NFS_COMMON=y | 1067 | CONFIG_NFS_COMMON=y |
1046 | CONFIG_SUNRPC=y | 1068 | CONFIG_SUNRPC=y |
1047 | CONFIG_SUNRPC_GSS=y | 1069 | CONFIG_SUNRPC_GSS=y |
1070 | # CONFIG_SUNRPC_BIND34 is not set | ||
1048 | CONFIG_RPCSEC_GSS_KRB5=y | 1071 | CONFIG_RPCSEC_GSS_KRB5=y |
1049 | CONFIG_RPCSEC_GSS_SPKM3=m | 1072 | CONFIG_RPCSEC_GSS_SPKM3=m |
1050 | # CONFIG_SMB_FS is not set | 1073 | # CONFIG_SMB_FS is not set |
@@ -1114,18 +1137,9 @@ CONFIG_NLS_ISO8859_1=y | |||
1114 | # Distributed Lock Manager | 1137 | # Distributed Lock Manager |
1115 | # | 1138 | # |
1116 | CONFIG_DLM=m | 1139 | CONFIG_DLM=m |
1117 | CONFIG_DLM_TCP=y | ||
1118 | # CONFIG_DLM_SCTP is not set | ||
1119 | # CONFIG_DLM_DEBUG is not set | 1140 | # CONFIG_DLM_DEBUG is not set |
1120 | 1141 | # CONFIG_UCC_SLOW is not set | |
1121 | # | 1142 | # CONFIG_UCC_FAST is not set |
1122 | # iSeries device drivers | ||
1123 | # | ||
1124 | CONFIG_VIOCONS=y | ||
1125 | CONFIG_VIODASD=y | ||
1126 | CONFIG_VIOCD=m | ||
1127 | CONFIG_VIOTAPE=m | ||
1128 | CONFIG_VIOPATH=y | ||
1129 | 1143 | ||
1130 | # | 1144 | # |
1131 | # Library routines | 1145 | # Library routines |
@@ -1133,6 +1147,7 @@ CONFIG_VIOPATH=y | |||
1133 | CONFIG_BITREVERSE=y | 1147 | CONFIG_BITREVERSE=y |
1134 | CONFIG_CRC_CCITT=m | 1148 | CONFIG_CRC_CCITT=m |
1135 | # CONFIG_CRC16 is not set | 1149 | # CONFIG_CRC16 is not set |
1150 | # CONFIG_CRC_ITU_T is not set | ||
1136 | CONFIG_CRC32=y | 1151 | CONFIG_CRC32=y |
1137 | CONFIG_LIBCRC32C=m | 1152 | CONFIG_LIBCRC32C=m |
1138 | CONFIG_ZLIB_INFLATE=y | 1153 | CONFIG_ZLIB_INFLATE=y |
@@ -1142,7 +1157,9 @@ CONFIG_TEXTSEARCH_KMP=m | |||
1142 | CONFIG_TEXTSEARCH_BM=m | 1157 | CONFIG_TEXTSEARCH_BM=m |
1143 | CONFIG_TEXTSEARCH_FSM=m | 1158 | CONFIG_TEXTSEARCH_FSM=m |
1144 | CONFIG_PLIST=y | 1159 | CONFIG_PLIST=y |
1145 | CONFIG_IOMAP_COPY=y | 1160 | CONFIG_HAS_IOMEM=y |
1161 | CONFIG_HAS_IOPORT=y | ||
1162 | CONFIG_HAS_DMA=y | ||
1146 | 1163 | ||
1147 | # | 1164 | # |
1148 | # Instrumentation Support | 1165 | # Instrumentation Support |
@@ -1160,15 +1177,15 @@ CONFIG_MAGIC_SYSRQ=y | |||
1160 | CONFIG_DEBUG_FS=y | 1177 | CONFIG_DEBUG_FS=y |
1161 | # CONFIG_HEADERS_CHECK is not set | 1178 | # CONFIG_HEADERS_CHECK is not set |
1162 | CONFIG_DEBUG_KERNEL=y | 1179 | CONFIG_DEBUG_KERNEL=y |
1163 | CONFIG_LOG_BUF_SHIFT=17 | 1180 | # CONFIG_DEBUG_SHIRQ is not set |
1164 | CONFIG_DETECT_SOFTLOCKUP=y | 1181 | CONFIG_DETECT_SOFTLOCKUP=y |
1165 | # CONFIG_SCHEDSTATS is not set | 1182 | # CONFIG_SCHEDSTATS is not set |
1183 | # CONFIG_TIMER_STATS is not set | ||
1166 | # CONFIG_DEBUG_SLAB is not set | 1184 | # CONFIG_DEBUG_SLAB is not set |
1167 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1185 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1168 | # CONFIG_RT_MUTEX_TESTER is not set | 1186 | # CONFIG_RT_MUTEX_TESTER is not set |
1169 | # CONFIG_DEBUG_SPINLOCK is not set | 1187 | # CONFIG_DEBUG_SPINLOCK is not set |
1170 | # CONFIG_DEBUG_MUTEXES is not set | 1188 | # CONFIG_DEBUG_MUTEXES is not set |
1171 | # CONFIG_DEBUG_RWSEMS is not set | ||
1172 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1189 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1173 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 1190 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
1174 | # CONFIG_DEBUG_KOBJECT is not set | 1191 | # CONFIG_DEBUG_KOBJECT is not set |
@@ -1178,8 +1195,10 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
1178 | # CONFIG_DEBUG_LIST is not set | 1195 | # CONFIG_DEBUG_LIST is not set |
1179 | # CONFIG_FORCED_INLINING is not set | 1196 | # CONFIG_FORCED_INLINING is not set |
1180 | # CONFIG_RCU_TORTURE_TEST is not set | 1197 | # CONFIG_RCU_TORTURE_TEST is not set |
1198 | # CONFIG_FAULT_INJECTION is not set | ||
1181 | CONFIG_DEBUG_STACKOVERFLOW=y | 1199 | CONFIG_DEBUG_STACKOVERFLOW=y |
1182 | CONFIG_DEBUG_STACK_USAGE=y | 1200 | CONFIG_DEBUG_STACK_USAGE=y |
1201 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
1183 | # CONFIG_DEBUGGER is not set | 1202 | # CONFIG_DEBUGGER is not set |
1184 | CONFIG_IRQSTACKS=y | 1203 | CONFIG_IRQSTACKS=y |
1185 | # CONFIG_BOOTX_TEXT is not set | 1204 | # CONFIG_BOOTX_TEXT is not set |
@@ -1212,8 +1231,11 @@ CONFIG_CRYPTO_TGR192=m | |||
1212 | # CONFIG_CRYPTO_GF128MUL is not set | 1231 | # CONFIG_CRYPTO_GF128MUL is not set |
1213 | CONFIG_CRYPTO_ECB=m | 1232 | CONFIG_CRYPTO_ECB=m |
1214 | CONFIG_CRYPTO_CBC=y | 1233 | CONFIG_CRYPTO_CBC=y |
1234 | CONFIG_CRYPTO_PCBC=m | ||
1215 | # CONFIG_CRYPTO_LRW is not set | 1235 | # CONFIG_CRYPTO_LRW is not set |
1236 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1216 | CONFIG_CRYPTO_DES=y | 1237 | CONFIG_CRYPTO_DES=y |
1238 | # CONFIG_CRYPTO_FCRYPT is not set | ||
1217 | CONFIG_CRYPTO_BLOWFISH=m | 1239 | CONFIG_CRYPTO_BLOWFISH=m |
1218 | CONFIG_CRYPTO_TWOFISH=m | 1240 | CONFIG_CRYPTO_TWOFISH=m |
1219 | CONFIG_CRYPTO_TWOFISH_COMMON=m | 1241 | CONFIG_CRYPTO_TWOFISH_COMMON=m |
@@ -1228,6 +1250,7 @@ CONFIG_CRYPTO_ANUBIS=m | |||
1228 | CONFIG_CRYPTO_DEFLATE=m | 1250 | CONFIG_CRYPTO_DEFLATE=m |
1229 | CONFIG_CRYPTO_MICHAEL_MIC=m | 1251 | CONFIG_CRYPTO_MICHAEL_MIC=m |
1230 | CONFIG_CRYPTO_CRC32C=m | 1252 | CONFIG_CRYPTO_CRC32C=m |
1253 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1231 | CONFIG_CRYPTO_TEST=m | 1254 | CONFIG_CRYPTO_TEST=m |
1232 | 1255 | ||
1233 | # | 1256 | # |
diff --git a/arch/powerpc/configs/pasemi_defconfig b/arch/powerpc/configs/pasemi_defconfig index 97a57e996663..0507c8f7bfbc 100644 --- a/arch/powerpc/configs/pasemi_defconfig +++ b/arch/powerpc/configs/pasemi_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.20-rc6 | 3 | # Linux kernel version: 2.6.21 |
4 | # Thu Feb 1 22:54:15 2007 | 4 | # Mon May 14 12:55:04 2007 |
5 | # | 5 | # |
6 | CONFIG_PPC64=y | 6 | CONFIG_PPC64=y |
7 | CONFIG_64BIT=y | 7 | CONFIG_64BIT=y |
@@ -23,7 +23,7 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | |||
23 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | 23 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y |
24 | CONFIG_PPC_OF=y | 24 | CONFIG_PPC_OF=y |
25 | CONFIG_PPC_UDBG_16550=y | 25 | CONFIG_PPC_UDBG_16550=y |
26 | CONFIG_GENERIC_TBSYNC=y | 26 | # CONFIG_GENERIC_TBSYNC is not set |
27 | CONFIG_AUDIT_ARCH=y | 27 | CONFIG_AUDIT_ARCH=y |
28 | CONFIG_GENERIC_BUG=y | 28 | CONFIG_GENERIC_BUG=y |
29 | # CONFIG_DEFAULT_UIMAGE is not set | 29 | # CONFIG_DEFAULT_UIMAGE is not set |
@@ -39,6 +39,7 @@ CONFIG_PPC_FPU=y | |||
39 | # CONFIG_PPC_OF_PLATFORM_PCI is not set | 39 | # CONFIG_PPC_OF_PLATFORM_PCI is not set |
40 | CONFIG_ALTIVEC=y | 40 | CONFIG_ALTIVEC=y |
41 | CONFIG_PPC_STD_MMU=y | 41 | CONFIG_PPC_STD_MMU=y |
42 | CONFIG_PPC_MM_SLICES=y | ||
42 | # CONFIG_VIRT_CPU_ACCOUNTING is not set | 43 | # CONFIG_VIRT_CPU_ACCOUNTING is not set |
43 | CONFIG_SMP=y | 44 | CONFIG_SMP=y |
44 | CONFIG_NR_CPUS=2 | 45 | CONFIG_NR_CPUS=2 |
@@ -59,15 +60,18 @@ CONFIG_LOCALVERSION_AUTO=y | |||
59 | CONFIG_SWAP=y | 60 | CONFIG_SWAP=y |
60 | CONFIG_SYSVIPC=y | 61 | CONFIG_SYSVIPC=y |
61 | # CONFIG_IPC_NS is not set | 62 | # CONFIG_IPC_NS is not set |
63 | CONFIG_SYSVIPC_SYSCTL=y | ||
62 | # CONFIG_POSIX_MQUEUE is not set | 64 | # CONFIG_POSIX_MQUEUE is not set |
63 | # CONFIG_BSD_PROCESS_ACCT is not set | 65 | # CONFIG_BSD_PROCESS_ACCT is not set |
64 | # CONFIG_TASKSTATS is not set | 66 | # CONFIG_TASKSTATS is not set |
65 | # CONFIG_UTS_NS is not set | 67 | # CONFIG_UTS_NS is not set |
66 | # CONFIG_AUDIT is not set | 68 | # CONFIG_AUDIT is not set |
67 | # CONFIG_IKCONFIG is not set | 69 | # CONFIG_IKCONFIG is not set |
70 | CONFIG_LOG_BUF_SHIFT=17 | ||
68 | # CONFIG_CPUSETS is not set | 71 | # CONFIG_CPUSETS is not set |
69 | CONFIG_SYSFS_DEPRECATED=y | 72 | CONFIG_SYSFS_DEPRECATED=y |
70 | # CONFIG_RELAY is not set | 73 | # CONFIG_RELAY is not set |
74 | CONFIG_BLK_DEV_INITRD=y | ||
71 | CONFIG_INITRAMFS_SOURCE="" | 75 | CONFIG_INITRAMFS_SOURCE="" |
72 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 76 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
73 | CONFIG_SYSCTL=y | 77 | CONFIG_SYSCTL=y |
@@ -82,14 +86,19 @@ CONFIG_BUG=y | |||
82 | CONFIG_ELF_CORE=y | 86 | CONFIG_ELF_CORE=y |
83 | CONFIG_BASE_FULL=y | 87 | CONFIG_BASE_FULL=y |
84 | CONFIG_FUTEX=y | 88 | CONFIG_FUTEX=y |
89 | CONFIG_ANON_INODES=y | ||
85 | CONFIG_EPOLL=y | 90 | CONFIG_EPOLL=y |
91 | CONFIG_SIGNALFD=y | ||
92 | CONFIG_TIMERFD=y | ||
93 | CONFIG_EVENTFD=y | ||
86 | CONFIG_SHMEM=y | 94 | CONFIG_SHMEM=y |
87 | CONFIG_SLAB=y | ||
88 | CONFIG_VM_EVENT_COUNTERS=y | 95 | CONFIG_VM_EVENT_COUNTERS=y |
96 | CONFIG_SLAB=y | ||
97 | # CONFIG_SLUB is not set | ||
98 | # CONFIG_SLOB is not set | ||
89 | CONFIG_RT_MUTEXES=y | 99 | CONFIG_RT_MUTEXES=y |
90 | # CONFIG_TINY_SHMEM is not set | 100 | # CONFIG_TINY_SHMEM is not set |
91 | CONFIG_BASE_SMALL=0 | 101 | CONFIG_BASE_SMALL=0 |
92 | # CONFIG_SLOB is not set | ||
93 | 102 | ||
94 | # | 103 | # |
95 | # Loadable module support | 104 | # Loadable module support |
@@ -127,39 +136,38 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
127 | CONFIG_PPC_MULTIPLATFORM=y | 136 | CONFIG_PPC_MULTIPLATFORM=y |
128 | # CONFIG_EMBEDDED6xx is not set | 137 | # CONFIG_EMBEDDED6xx is not set |
129 | # CONFIG_APUS is not set | 138 | # CONFIG_APUS is not set |
130 | CONFIG_PPC_PSERIES=y | 139 | # CONFIG_PPC_PSERIES is not set |
131 | # CONFIG_PPC_ISERIES is not set | 140 | # CONFIG_PPC_ISERIES is not set |
132 | # CONFIG_PPC_MPC52xx is not set | 141 | # CONFIG_PPC_MPC52xx is not set |
142 | # CONFIG_PPC_MPC5200 is not set | ||
133 | # CONFIG_PPC_PMAC is not set | 143 | # CONFIG_PPC_PMAC is not set |
134 | # CONFIG_PPC_MAPLE is not set | 144 | # CONFIG_PPC_MAPLE is not set |
135 | CONFIG_PPC_PASEMI=y | 145 | CONFIG_PPC_PASEMI=y |
146 | |||
147 | # | ||
148 | # PA Semi PWRficient options | ||
149 | # | ||
150 | CONFIG_PPC_PASEMI_IOMMU=y | ||
151 | CONFIG_PPC_PASEMI_MDIO=y | ||
152 | # CONFIG_PPC_CELLEB is not set | ||
153 | # CONFIG_PPC_PS3 is not set | ||
136 | # CONFIG_PPC_CELL is not set | 154 | # CONFIG_PPC_CELL is not set |
137 | # CONFIG_PPC_CELL_NATIVE is not set | 155 | # CONFIG_PPC_CELL_NATIVE is not set |
138 | # CONFIG_PPC_IBM_CELL_BLADE is not set | 156 | # CONFIG_PPC_IBM_CELL_BLADE is not set |
139 | # CONFIG_PPC_PS3 is not set | 157 | # CONFIG_PQ2ADS is not set |
140 | CONFIG_PPC_NATIVE=y | 158 | CONFIG_PPC_NATIVE=y |
141 | # CONFIG_UDBG_RTAS_CONSOLE is not set | 159 | CONFIG_MPIC=y |
142 | CONFIG_XICS=y | 160 | # CONFIG_MPIC_WEIRD is not set |
161 | # CONFIG_PPC_I8259 is not set | ||
143 | # CONFIG_U3_DART is not set | 162 | # CONFIG_U3_DART is not set |
144 | CONFIG_PPC_RTAS=y | 163 | # CONFIG_PPC_RTAS is not set |
145 | CONFIG_RTAS_ERROR_LOGGING=y | ||
146 | CONFIG_RTAS_PROC=y | ||
147 | # CONFIG_RTAS_FLASH is not set | ||
148 | # CONFIG_MMIO_NVRAM is not set | 164 | # CONFIG_MMIO_NVRAM is not set |
149 | CONFIG_IBMVIO=y | ||
150 | # CONFIG_IBMEBUS is not set | ||
151 | # CONFIG_PPC_MPC106 is not set | 165 | # CONFIG_PPC_MPC106 is not set |
152 | # CONFIG_PPC_970_NAP is not set | 166 | # CONFIG_PPC_970_NAP is not set |
153 | # CONFIG_PPC_INDIRECT_IO is not set | 167 | # CONFIG_PPC_INDIRECT_IO is not set |
154 | # CONFIG_GENERIC_IOMAP is not set | 168 | # CONFIG_GENERIC_IOMAP is not set |
155 | # CONFIG_CPU_FREQ is not set | 169 | # CONFIG_CPU_FREQ is not set |
156 | # CONFIG_WANT_EARLY_SERIAL is not set | 170 | # CONFIG_CPM2 is not set |
157 | CONFIG_MPIC=y | ||
158 | |||
159 | # | ||
160 | # PA Semi PWRficient options | ||
161 | # | ||
162 | CONFIG_PPC_PASEMI_IOMMU=y | ||
163 | 171 | ||
164 | # | 172 | # |
165 | # Kernel options | 173 | # Kernel options |
@@ -177,20 +185,14 @@ CONFIG_BINFMT_ELF=y | |||
177 | # CONFIG_BINFMT_MISC is not set | 185 | # CONFIG_BINFMT_MISC is not set |
178 | CONFIG_FORCE_MAX_ZONEORDER=13 | 186 | CONFIG_FORCE_MAX_ZONEORDER=13 |
179 | CONFIG_IOMMU_VMERGE=y | 187 | CONFIG_IOMMU_VMERGE=y |
180 | # CONFIG_HOTPLUG_CPU is not set | ||
181 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 188 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
182 | # CONFIG_KEXEC is not set | 189 | # CONFIG_KEXEC is not set |
183 | # CONFIG_CRASH_DUMP is not set | 190 | # CONFIG_CRASH_DUMP is not set |
184 | # CONFIG_IRQ_ALL_CPUS is not set | 191 | # CONFIG_IRQ_ALL_CPUS is not set |
185 | # CONFIG_PPC_SPLPAR is not set | ||
186 | CONFIG_EEH=y | ||
187 | # CONFIG_SCANLOG is not set | ||
188 | # CONFIG_LPARCFG is not set | ||
189 | # CONFIG_NUMA is not set | 192 | # CONFIG_NUMA is not set |
190 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | 193 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y |
191 | CONFIG_ARCH_FLATMEM_ENABLE=y | 194 | CONFIG_ARCH_FLATMEM_ENABLE=y |
192 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | 195 | CONFIG_ARCH_SPARSEMEM_ENABLE=y |
193 | CONFIG_ARCH_SPARSEMEM_DEFAULT=y | ||
194 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 196 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
195 | CONFIG_SELECT_MEMORY_MODEL=y | 197 | CONFIG_SELECT_MEMORY_MODEL=y |
196 | CONFIG_FLATMEM_MANUAL=y | 198 | CONFIG_FLATMEM_MANUAL=y |
@@ -201,24 +203,28 @@ CONFIG_FLAT_NODE_MEM_MAP=y | |||
201 | # CONFIG_SPARSEMEM_STATIC is not set | 203 | # CONFIG_SPARSEMEM_STATIC is not set |
202 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 204 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
203 | CONFIG_RESOURCES_64BIT=y | 205 | CONFIG_RESOURCES_64BIT=y |
206 | CONFIG_ZONE_DMA_FLAG=1 | ||
207 | # CONFIG_PPC_HAS_HASH_64K is not set | ||
204 | # CONFIG_PPC_64K_PAGES is not set | 208 | # CONFIG_PPC_64K_PAGES is not set |
205 | # CONFIG_SCHED_SMT is not set | 209 | # CONFIG_SCHED_SMT is not set |
206 | CONFIG_PROC_DEVICETREE=y | 210 | CONFIG_PROC_DEVICETREE=y |
207 | # CONFIG_CMDLINE_BOOL is not set | 211 | # CONFIG_CMDLINE_BOOL is not set |
208 | # CONFIG_PM is not set | 212 | # CONFIG_PM is not set |
209 | # CONFIG_SECCOMP is not set | 213 | # CONFIG_SECCOMP is not set |
214 | # CONFIG_WANT_DEVICE_TREE is not set | ||
210 | CONFIG_ISA_DMA_API=y | 215 | CONFIG_ISA_DMA_API=y |
211 | 216 | ||
212 | # | 217 | # |
213 | # Bus options | 218 | # Bus options |
214 | # | 219 | # |
220 | CONFIG_ZONE_DMA=y | ||
215 | CONFIG_GENERIC_ISA_DMA=y | 221 | CONFIG_GENERIC_ISA_DMA=y |
216 | # CONFIG_MPIC_WEIRD is not set | ||
217 | CONFIG_PPC_I8259=y | ||
218 | # CONFIG_PPC_INDIRECT_PCI is not set | 222 | # CONFIG_PPC_INDIRECT_PCI is not set |
219 | CONFIG_PCI=y | 223 | CONFIG_PCI=y |
220 | CONFIG_PCI_DOMAINS=y | 224 | CONFIG_PCI_DOMAINS=y |
221 | # CONFIG_PCIEPORTBUS is not set | 225 | # CONFIG_PCIEPORTBUS is not set |
226 | CONFIG_ARCH_SUPPORTS_MSI=y | ||
227 | # CONFIG_PCI_MSI is not set | ||
222 | # CONFIG_PCI_DEBUG is not set | 228 | # CONFIG_PCI_DEBUG is not set |
223 | 229 | ||
224 | # | 230 | # |
@@ -237,10 +243,6 @@ CONFIG_CARDBUS=y | |||
237 | # CONFIG_YENTA is not set | 243 | # CONFIG_YENTA is not set |
238 | # CONFIG_PD6729 is not set | 244 | # CONFIG_PD6729 is not set |
239 | # CONFIG_I82092 is not set | 245 | # CONFIG_I82092 is not set |
240 | |||
241 | # | ||
242 | # PCI Hotplug Support | ||
243 | # | ||
244 | # CONFIG_HOTPLUG_PCI is not set | 246 | # CONFIG_HOTPLUG_PCI is not set |
245 | CONFIG_KERNEL_START=0xc000000000000000 | 247 | CONFIG_KERNEL_START=0xc000000000000000 |
246 | 248 | ||
@@ -252,14 +254,15 @@ CONFIG_NET=y | |||
252 | # | 254 | # |
253 | # Networking options | 255 | # Networking options |
254 | # | 256 | # |
255 | # CONFIG_NETDEBUG is not set | ||
256 | CONFIG_PACKET=y | 257 | CONFIG_PACKET=y |
257 | # CONFIG_PACKET_MMAP is not set | 258 | # CONFIG_PACKET_MMAP is not set |
258 | CONFIG_UNIX=y | 259 | CONFIG_UNIX=y |
259 | CONFIG_XFRM=y | 260 | CONFIG_XFRM=y |
260 | # CONFIG_XFRM_USER is not set | 261 | # CONFIG_XFRM_USER is not set |
261 | # CONFIG_XFRM_SUB_POLICY is not set | 262 | # CONFIG_XFRM_SUB_POLICY is not set |
263 | # CONFIG_XFRM_MIGRATE is not set | ||
262 | CONFIG_NET_KEY=y | 264 | CONFIG_NET_KEY=y |
265 | # CONFIG_NET_KEY_MIGRATE is not set | ||
263 | CONFIG_INET=y | 266 | CONFIG_INET=y |
264 | CONFIG_IP_MULTICAST=y | 267 | CONFIG_IP_MULTICAST=y |
265 | # CONFIG_IP_ADVANCED_ROUTER is not set | 268 | # CONFIG_IP_ADVANCED_ROUTER is not set |
@@ -331,7 +334,16 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
331 | # CONFIG_HAMRADIO is not set | 334 | # CONFIG_HAMRADIO is not set |
332 | # CONFIG_IRDA is not set | 335 | # CONFIG_IRDA is not set |
333 | # CONFIG_BT is not set | 336 | # CONFIG_BT is not set |
337 | # CONFIG_AF_RXRPC is not set | ||
338 | |||
339 | # | ||
340 | # Wireless | ||
341 | # | ||
342 | # CONFIG_CFG80211 is not set | ||
343 | # CONFIG_WIRELESS_EXT is not set | ||
344 | # CONFIG_MAC80211 is not set | ||
334 | # CONFIG_IEEE80211 is not set | 345 | # CONFIG_IEEE80211 is not set |
346 | # CONFIG_RFKILL is not set | ||
335 | 347 | ||
336 | # | 348 | # |
337 | # Device Drivers | 349 | # Device Drivers |
@@ -344,16 +356,13 @@ CONFIG_STANDALONE=y | |||
344 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 356 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
345 | CONFIG_FW_LOADER=y | 357 | CONFIG_FW_LOADER=y |
346 | # CONFIG_DEBUG_DRIVER is not set | 358 | # CONFIG_DEBUG_DRIVER is not set |
359 | # CONFIG_DEBUG_DEVRES is not set | ||
347 | # CONFIG_SYS_HYPERVISOR is not set | 360 | # CONFIG_SYS_HYPERVISOR is not set |
348 | 361 | ||
349 | # | 362 | # |
350 | # Connector - unified userspace <-> kernelspace linker | 363 | # Connector - unified userspace <-> kernelspace linker |
351 | # | 364 | # |
352 | # CONFIG_CONNECTOR is not set | 365 | # CONFIG_CONNECTOR is not set |
353 | |||
354 | # | ||
355 | # Memory Technology Devices (MTD) | ||
356 | # | ||
357 | CONFIG_MTD=y | 366 | CONFIG_MTD=y |
358 | # CONFIG_MTD_DEBUG is not set | 367 | # CONFIG_MTD_DEBUG is not set |
359 | CONFIG_MTD_CONCAT=y | 368 | CONFIG_MTD_CONCAT=y |
@@ -389,7 +398,6 @@ CONFIG_MTD_CFI_I2=y | |||
389 | # CONFIG_MTD_RAM is not set | 398 | # CONFIG_MTD_RAM is not set |
390 | # CONFIG_MTD_ROM is not set | 399 | # CONFIG_MTD_ROM is not set |
391 | # CONFIG_MTD_ABSENT is not set | 400 | # CONFIG_MTD_ABSENT is not set |
392 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
393 | 401 | ||
394 | # | 402 | # |
395 | # Mapping drivers for chip access | 403 | # Mapping drivers for chip access |
@@ -412,17 +420,13 @@ CONFIG_MTD_PHRAM=y | |||
412 | # CONFIG_MTD_DOC2000 is not set | 420 | # CONFIG_MTD_DOC2000 is not set |
413 | # CONFIG_MTD_DOC2001 is not set | 421 | # CONFIG_MTD_DOC2001 is not set |
414 | # CONFIG_MTD_DOC2001PLUS is not set | 422 | # CONFIG_MTD_DOC2001PLUS is not set |
415 | |||
416 | # | ||
417 | # NAND Flash Device Drivers | ||
418 | # | ||
419 | # CONFIG_MTD_NAND is not set | 423 | # CONFIG_MTD_NAND is not set |
420 | # CONFIG_MTD_NAND_CAFE is not set | 424 | # CONFIG_MTD_ONENAND is not set |
421 | 425 | ||
422 | # | 426 | # |
423 | # OneNAND Flash Device Drivers | 427 | # UBI - Unsorted block images |
424 | # | 428 | # |
425 | # CONFIG_MTD_ONENAND is not set | 429 | # CONFIG_MTD_UBI is not set |
426 | 430 | ||
427 | # | 431 | # |
428 | # Parallel port support | 432 | # Parallel port support |
@@ -432,6 +436,7 @@ CONFIG_MTD_PHRAM=y | |||
432 | # | 436 | # |
433 | # Plug and Play support | 437 | # Plug and Play support |
434 | # | 438 | # |
439 | # CONFIG_PNPACPI is not set | ||
435 | 440 | ||
436 | # | 441 | # |
437 | # Block devices | 442 | # Block devices |
@@ -451,15 +456,16 @@ CONFIG_BLK_DEV_RAM=y | |||
451 | CONFIG_BLK_DEV_RAM_COUNT=16 | 456 | CONFIG_BLK_DEV_RAM_COUNT=16 |
452 | CONFIG_BLK_DEV_RAM_SIZE=16384 | 457 | CONFIG_BLK_DEV_RAM_SIZE=16384 |
453 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 458 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 |
454 | CONFIG_BLK_DEV_INITRD=y | ||
455 | # CONFIG_CDROM_PKTCDVD is not set | 459 | # CONFIG_CDROM_PKTCDVD is not set |
456 | # CONFIG_ATA_OVER_ETH is not set | 460 | # CONFIG_ATA_OVER_ETH is not set |
457 | 461 | ||
458 | # | 462 | # |
459 | # Misc devices | 463 | # Misc devices |
460 | # | 464 | # |
465 | # CONFIG_PHANTOM is not set | ||
461 | # CONFIG_SGI_IOC4 is not set | 466 | # CONFIG_SGI_IOC4 is not set |
462 | # CONFIG_TIFM_CORE is not set | 467 | # CONFIG_TIFM_CORE is not set |
468 | # CONFIG_BLINK is not set | ||
463 | 469 | ||
464 | # | 470 | # |
465 | # ATA/ATAPI/MFM/RLL support | 471 | # ATA/ATAPI/MFM/RLL support |
@@ -474,20 +480,22 @@ CONFIG_BLK_DEV_IDE=y | |||
474 | CONFIG_BLK_DEV_IDEDISK=y | 480 | CONFIG_BLK_DEV_IDEDISK=y |
475 | CONFIG_IDEDISK_MULTI_MODE=y | 481 | CONFIG_IDEDISK_MULTI_MODE=y |
476 | # CONFIG_BLK_DEV_IDECS is not set | 482 | # CONFIG_BLK_DEV_IDECS is not set |
483 | # CONFIG_BLK_DEV_DELKIN is not set | ||
477 | CONFIG_BLK_DEV_IDECD=y | 484 | CONFIG_BLK_DEV_IDECD=y |
478 | # CONFIG_BLK_DEV_IDETAPE is not set | 485 | # CONFIG_BLK_DEV_IDETAPE is not set |
479 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | 486 | # CONFIG_BLK_DEV_IDEFLOPPY is not set |
480 | CONFIG_BLK_DEV_IDESCSI=y | 487 | CONFIG_BLK_DEV_IDESCSI=y |
481 | CONFIG_IDE_TASK_IOCTL=y | 488 | CONFIG_IDE_TASK_IOCTL=y |
489 | CONFIG_IDE_PROC_FS=y | ||
482 | 490 | ||
483 | # | 491 | # |
484 | # IDE chipset support/bugfixes | 492 | # IDE chipset support/bugfixes |
485 | # | 493 | # |
486 | # CONFIG_IDE_GENERIC is not set | 494 | # CONFIG_IDE_GENERIC is not set |
487 | # CONFIG_BLK_DEV_IDEPCI is not set | 495 | # CONFIG_BLK_DEV_IDEPCI is not set |
496 | # CONFIG_IDEPCI_PCIBUS_ORDER is not set | ||
488 | # CONFIG_IDE_ARM is not set | 497 | # CONFIG_IDE_ARM is not set |
489 | # CONFIG_BLK_DEV_IDEDMA is not set | 498 | # CONFIG_BLK_DEV_IDEDMA is not set |
490 | # CONFIG_IDEDMA_AUTO is not set | ||
491 | # CONFIG_BLK_DEV_HD is not set | 499 | # CONFIG_BLK_DEV_HD is not set |
492 | 500 | ||
493 | # | 501 | # |
@@ -517,6 +525,7 @@ CONFIG_SCSI_MULTI_LUN=y | |||
517 | CONFIG_SCSI_CONSTANTS=y | 525 | CONFIG_SCSI_CONSTANTS=y |
518 | CONFIG_SCSI_LOGGING=y | 526 | CONFIG_SCSI_LOGGING=y |
519 | # CONFIG_SCSI_SCAN_ASYNC is not set | 527 | # CONFIG_SCSI_SCAN_ASYNC is not set |
528 | CONFIG_SCSI_WAIT_SCAN=m | ||
520 | 529 | ||
521 | # | 530 | # |
522 | # SCSI Transports | 531 | # SCSI Transports |
@@ -550,7 +559,6 @@ CONFIG_SCSI_3W_9XXX=y | |||
550 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | 559 | # CONFIG_SCSI_FUTURE_DOMAIN is not set |
551 | # CONFIG_SCSI_GDTH is not set | 560 | # CONFIG_SCSI_GDTH is not set |
552 | # CONFIG_SCSI_IPS is not set | 561 | # CONFIG_SCSI_IPS is not set |
553 | # CONFIG_SCSI_IBMVSCSI is not set | ||
554 | # CONFIG_SCSI_INITIO is not set | 562 | # CONFIG_SCSI_INITIO is not set |
555 | # CONFIG_SCSI_INIA100 is not set | 563 | # CONFIG_SCSI_INIA100 is not set |
556 | # CONFIG_SCSI_STEX is not set | 564 | # CONFIG_SCSI_STEX is not set |
@@ -563,6 +571,7 @@ CONFIG_SCSI_3W_9XXX=y | |||
563 | # CONFIG_SCSI_DC395x is not set | 571 | # CONFIG_SCSI_DC395x is not set |
564 | # CONFIG_SCSI_DC390T is not set | 572 | # CONFIG_SCSI_DC390T is not set |
565 | # CONFIG_SCSI_DEBUG is not set | 573 | # CONFIG_SCSI_DEBUG is not set |
574 | # CONFIG_SCSI_ESP_CORE is not set | ||
566 | # CONFIG_SCSI_SRP is not set | 575 | # CONFIG_SCSI_SRP is not set |
567 | 576 | ||
568 | # | 577 | # |
@@ -578,7 +587,7 @@ CONFIG_SCSI_3W_9XXX=y | |||
578 | CONFIG_ATA=y | 587 | CONFIG_ATA=y |
579 | # CONFIG_ATA_NONSTANDARD is not set | 588 | # CONFIG_ATA_NONSTANDARD is not set |
580 | # CONFIG_SATA_AHCI is not set | 589 | # CONFIG_SATA_AHCI is not set |
581 | CONFIG_SATA_SVW=y | 590 | # CONFIG_SATA_SVW is not set |
582 | # CONFIG_ATA_PIIX is not set | 591 | # CONFIG_ATA_PIIX is not set |
583 | CONFIG_SATA_MV=y | 592 | CONFIG_SATA_MV=y |
584 | # CONFIG_SATA_NV is not set | 593 | # CONFIG_SATA_NV is not set |
@@ -586,16 +595,18 @@ CONFIG_SATA_MV=y | |||
586 | # CONFIG_SATA_QSTOR is not set | 595 | # CONFIG_SATA_QSTOR is not set |
587 | # CONFIG_SATA_PROMISE is not set | 596 | # CONFIG_SATA_PROMISE is not set |
588 | # CONFIG_SATA_SX4 is not set | 597 | # CONFIG_SATA_SX4 is not set |
589 | CONFIG_SATA_SIL=y | 598 | # CONFIG_SATA_SIL is not set |
590 | CONFIG_SATA_SIL24=y | 599 | CONFIG_SATA_SIL24=y |
591 | # CONFIG_SATA_SIS is not set | 600 | # CONFIG_SATA_SIS is not set |
592 | # CONFIG_SATA_ULI is not set | 601 | # CONFIG_SATA_ULI is not set |
593 | # CONFIG_SATA_VIA is not set | 602 | # CONFIG_SATA_VIA is not set |
594 | # CONFIG_SATA_VITESSE is not set | 603 | # CONFIG_SATA_VITESSE is not set |
604 | # CONFIG_SATA_INIC162X is not set | ||
595 | # CONFIG_PATA_ALI is not set | 605 | # CONFIG_PATA_ALI is not set |
596 | # CONFIG_PATA_AMD is not set | 606 | # CONFIG_PATA_AMD is not set |
597 | # CONFIG_PATA_ARTOP is not set | 607 | # CONFIG_PATA_ARTOP is not set |
598 | # CONFIG_PATA_ATIIXP is not set | 608 | # CONFIG_PATA_ATIIXP is not set |
609 | # CONFIG_PATA_CMD640_PCI is not set | ||
599 | # CONFIG_PATA_CMD64X is not set | 610 | # CONFIG_PATA_CMD64X is not set |
600 | # CONFIG_PATA_CS5520 is not set | 611 | # CONFIG_PATA_CS5520 is not set |
601 | # CONFIG_PATA_CS5530 is not set | 612 | # CONFIG_PATA_CS5530 is not set |
@@ -607,6 +618,7 @@ CONFIG_ATA_GENERIC=y | |||
607 | # CONFIG_PATA_HPT3X2N is not set | 618 | # CONFIG_PATA_HPT3X2N is not set |
608 | # CONFIG_PATA_HPT3X3 is not set | 619 | # CONFIG_PATA_HPT3X3 is not set |
609 | # CONFIG_PATA_IT821X is not set | 620 | # CONFIG_PATA_IT821X is not set |
621 | # CONFIG_PATA_IT8213 is not set | ||
610 | # CONFIG_PATA_JMICRON is not set | 622 | # CONFIG_PATA_JMICRON is not set |
611 | # CONFIG_PATA_TRIFLEX is not set | 623 | # CONFIG_PATA_TRIFLEX is not set |
612 | # CONFIG_PATA_MARVELL is not set | 624 | # CONFIG_PATA_MARVELL is not set |
@@ -644,27 +656,26 @@ CONFIG_ATA_GENERIC=y | |||
644 | # | 656 | # |
645 | # IEEE 1394 (FireWire) support | 657 | # IEEE 1394 (FireWire) support |
646 | # | 658 | # |
659 | # CONFIG_FIREWIRE is not set | ||
647 | CONFIG_IEEE1394=y | 660 | CONFIG_IEEE1394=y |
648 | 661 | ||
649 | # | 662 | # |
650 | # Subsystem Options | 663 | # Subsystem Options |
651 | # | 664 | # |
652 | # CONFIG_IEEE1394_VERBOSEDEBUG is not set | 665 | # CONFIG_IEEE1394_VERBOSEDEBUG is not set |
653 | # CONFIG_IEEE1394_OUI_DB is not set | ||
654 | # CONFIG_IEEE1394_EXTRA_CONFIG_ROMS is not set | ||
655 | # CONFIG_IEEE1394_EXPORT_FULL_API is not set | ||
656 | 666 | ||
657 | # | 667 | # |
658 | # Device Drivers | 668 | # Controllers |
659 | # | 669 | # |
660 | CONFIG_IEEE1394_PCILYNX=y | 670 | CONFIG_IEEE1394_PCILYNX=y |
661 | CONFIG_IEEE1394_OHCI1394=y | 671 | CONFIG_IEEE1394_OHCI1394=y |
662 | 672 | ||
663 | # | 673 | # |
664 | # Protocol Drivers | 674 | # Protocols |
665 | # | 675 | # |
666 | # CONFIG_IEEE1394_VIDEO1394 is not set | 676 | # CONFIG_IEEE1394_VIDEO1394 is not set |
667 | CONFIG_IEEE1394_SBP2=y | 677 | CONFIG_IEEE1394_SBP2=y |
678 | # CONFIG_IEEE1394_ETH1394_ROM_ENTRY is not set | ||
668 | # CONFIG_IEEE1394_ETH1394 is not set | 679 | # CONFIG_IEEE1394_ETH1394 is not set |
669 | # CONFIG_IEEE1394_DV1394 is not set | 680 | # CONFIG_IEEE1394_DV1394 is not set |
670 | CONFIG_IEEE1394_RAWIO=y | 681 | CONFIG_IEEE1394_RAWIO=y |
@@ -673,12 +684,7 @@ CONFIG_IEEE1394_RAWIO=y | |||
673 | # I2O device support | 684 | # I2O device support |
674 | # | 685 | # |
675 | # CONFIG_I2O is not set | 686 | # CONFIG_I2O is not set |
676 | 687 | # CONFIG_MACINTOSH_DRIVERS is not set | |
677 | # | ||
678 | # Macintosh device drivers | ||
679 | # | ||
680 | # CONFIG_MAC_EMUMOUSEBTN is not set | ||
681 | # CONFIG_WINDFARM is not set | ||
682 | 688 | ||
683 | # | 689 | # |
684 | # Network device support | 690 | # Network device support |
@@ -697,7 +703,20 @@ CONFIG_DUMMY=y | |||
697 | # | 703 | # |
698 | # PHY device support | 704 | # PHY device support |
699 | # | 705 | # |
700 | # CONFIG_PHYLIB is not set | 706 | CONFIG_PHYLIB=y |
707 | |||
708 | # | ||
709 | # MII PHY device drivers | ||
710 | # | ||
711 | CONFIG_MARVELL_PHY=y | ||
712 | # CONFIG_DAVICOM_PHY is not set | ||
713 | # CONFIG_QSEMI_PHY is not set | ||
714 | # CONFIG_LXT_PHY is not set | ||
715 | # CONFIG_CICADA_PHY is not set | ||
716 | # CONFIG_VITESSE_PHY is not set | ||
717 | # CONFIG_SMSC_PHY is not set | ||
718 | # CONFIG_BROADCOM_PHY is not set | ||
719 | # CONFIG_FIXED_PHY is not set | ||
701 | 720 | ||
702 | # | 721 | # |
703 | # Ethernet (10 or 100Mbit) | 722 | # Ethernet (10 or 100Mbit) |
@@ -714,7 +733,6 @@ CONFIG_MII=y | |||
714 | # | 733 | # |
715 | # CONFIG_NET_TULIP is not set | 734 | # CONFIG_NET_TULIP is not set |
716 | # CONFIG_HP100 is not set | 735 | # CONFIG_HP100 is not set |
717 | CONFIG_IBMVETH=y | ||
718 | CONFIG_NET_PCI=y | 736 | CONFIG_NET_PCI=y |
719 | # CONFIG_PCNET32 is not set | 737 | # CONFIG_PCNET32 is not set |
720 | # CONFIG_AMD8111_ETH is not set | 738 | # CONFIG_AMD8111_ETH is not set |
@@ -722,7 +740,7 @@ CONFIG_NET_PCI=y | |||
722 | # CONFIG_B44 is not set | 740 | # CONFIG_B44 is not set |
723 | # CONFIG_FORCEDETH is not set | 741 | # CONFIG_FORCEDETH is not set |
724 | # CONFIG_DGRS is not set | 742 | # CONFIG_DGRS is not set |
725 | CONFIG_EEPRO100=y | 743 | # CONFIG_EEPRO100 is not set |
726 | # CONFIG_E100 is not set | 744 | # CONFIG_E100 is not set |
727 | # CONFIG_FEALNX is not set | 745 | # CONFIG_FEALNX is not set |
728 | # CONFIG_NATSEMI is not set | 746 | # CONFIG_NATSEMI is not set |
@@ -733,6 +751,7 @@ CONFIG_EEPRO100=y | |||
733 | # CONFIG_EPIC100 is not set | 751 | # CONFIG_EPIC100 is not set |
734 | # CONFIG_SUNDANCE is not set | 752 | # CONFIG_SUNDANCE is not set |
735 | # CONFIG_VIA_RHINE is not set | 753 | # CONFIG_VIA_RHINE is not set |
754 | # CONFIG_SC92031 is not set | ||
736 | 755 | ||
737 | # | 756 | # |
738 | # Ethernet (1000 Mbit) | 757 | # Ethernet (1000 Mbit) |
@@ -754,15 +773,20 @@ CONFIG_E1000_NAPI=y | |||
754 | CONFIG_TIGON3=y | 773 | CONFIG_TIGON3=y |
755 | # CONFIG_BNX2 is not set | 774 | # CONFIG_BNX2 is not set |
756 | # CONFIG_QLA3XXX is not set | 775 | # CONFIG_QLA3XXX is not set |
776 | # CONFIG_ATL1 is not set | ||
757 | 777 | ||
758 | # | 778 | # |
759 | # Ethernet (10000 Mbit) | 779 | # Ethernet (10000 Mbit) |
760 | # | 780 | # |
761 | # CONFIG_CHELSIO_T1 is not set | 781 | # CONFIG_CHELSIO_T1 is not set |
782 | # CONFIG_CHELSIO_T3 is not set | ||
762 | # CONFIG_IXGB is not set | 783 | # CONFIG_IXGB is not set |
763 | # CONFIG_S2IO is not set | 784 | # CONFIG_S2IO is not set |
764 | # CONFIG_MYRI10GE is not set | 785 | # CONFIG_MYRI10GE is not set |
765 | # CONFIG_NETXEN_NIC is not set | 786 | # CONFIG_NETXEN_NIC is not set |
787 | CONFIG_PASEMI_MAC=y | ||
788 | # CONFIG_MLX4_CORE is not set | ||
789 | CONFIG_MLX4_DEBUG=y | ||
766 | 790 | ||
767 | # | 791 | # |
768 | # Token Ring devices | 792 | # Token Ring devices |
@@ -770,9 +794,20 @@ CONFIG_TIGON3=y | |||
770 | # CONFIG_TR is not set | 794 | # CONFIG_TR is not set |
771 | 795 | ||
772 | # | 796 | # |
773 | # Wireless LAN (non-hamradio) | 797 | # Wireless LAN |
798 | # | ||
799 | # CONFIG_WLAN_PRE80211 is not set | ||
800 | # CONFIG_WLAN_80211 is not set | ||
801 | |||
802 | # | ||
803 | # USB Network Adapters | ||
774 | # | 804 | # |
775 | # CONFIG_NET_RADIO is not set | 805 | # CONFIG_USB_CATC is not set |
806 | # CONFIG_USB_KAWETH is not set | ||
807 | # CONFIG_USB_PEGASUS is not set | ||
808 | # CONFIG_USB_RTL8150 is not set | ||
809 | # CONFIG_USB_USBNET_MII is not set | ||
810 | # CONFIG_USB_USBNET is not set | ||
776 | 811 | ||
777 | # | 812 | # |
778 | # PCMCIA network device support | 813 | # PCMCIA network device support |
@@ -834,8 +869,10 @@ CONFIG_INPUT_KEYBOARD=y | |||
834 | CONFIG_INPUT_MOUSE=y | 869 | CONFIG_INPUT_MOUSE=y |
835 | # CONFIG_MOUSE_PS2 is not set | 870 | # CONFIG_MOUSE_PS2 is not set |
836 | # CONFIG_MOUSE_SERIAL is not set | 871 | # CONFIG_MOUSE_SERIAL is not set |
872 | # CONFIG_MOUSE_APPLETOUCH is not set | ||
837 | # CONFIG_MOUSE_VSXXXAA is not set | 873 | # CONFIG_MOUSE_VSXXXAA is not set |
838 | # CONFIG_INPUT_JOYSTICK is not set | 874 | # CONFIG_INPUT_JOYSTICK is not set |
875 | # CONFIG_INPUT_TABLET is not set | ||
839 | # CONFIG_INPUT_TOUCHSCREEN is not set | 876 | # CONFIG_INPUT_TOUCHSCREEN is not set |
840 | # CONFIG_INPUT_MISC is not set | 877 | # CONFIG_INPUT_MISC is not set |
841 | 878 | ||
@@ -870,29 +907,21 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | |||
870 | # | 907 | # |
871 | CONFIG_SERIAL_CORE=y | 908 | CONFIG_SERIAL_CORE=y |
872 | CONFIG_SERIAL_CORE_CONSOLE=y | 909 | CONFIG_SERIAL_CORE_CONSOLE=y |
873 | # CONFIG_SERIAL_ICOM is not set | ||
874 | # CONFIG_SERIAL_JSM is not set | 910 | # CONFIG_SERIAL_JSM is not set |
911 | # CONFIG_SERIAL_OF_PLATFORM is not set | ||
875 | CONFIG_UNIX98_PTYS=y | 912 | CONFIG_UNIX98_PTYS=y |
876 | CONFIG_LEGACY_PTYS=y | 913 | CONFIG_LEGACY_PTYS=y |
877 | CONFIG_LEGACY_PTY_COUNT=4 | 914 | CONFIG_LEGACY_PTY_COUNT=4 |
878 | CONFIG_HVC_DRIVER=y | ||
879 | CONFIG_HVC_CONSOLE=y | ||
880 | CONFIG_HVC_RTAS=y | ||
881 | # CONFIG_HVCS is not set | ||
882 | 915 | ||
883 | # | 916 | # |
884 | # IPMI | 917 | # IPMI |
885 | # | 918 | # |
886 | # CONFIG_IPMI_HANDLER is not set | 919 | # CONFIG_IPMI_HANDLER is not set |
887 | |||
888 | # | ||
889 | # Watchdog Cards | ||
890 | # | ||
891 | # CONFIG_WATCHDOG is not set | 920 | # CONFIG_WATCHDOG is not set |
892 | CONFIG_HW_RANDOM=y | 921 | CONFIG_HW_RANDOM=y |
922 | CONFIG_HW_RANDOM_PASEMI=y | ||
893 | CONFIG_GEN_RTC=y | 923 | CONFIG_GEN_RTC=y |
894 | CONFIG_GEN_RTC_X=y | 924 | CONFIG_GEN_RTC_X=y |
895 | # CONFIG_DTLK is not set | ||
896 | # CONFIG_R3964 is not set | 925 | # CONFIG_R3964 is not set |
897 | # CONFIG_APPLICOM is not set | 926 | # CONFIG_APPLICOM is not set |
898 | # CONFIG_AGP is not set | 927 | # CONFIG_AGP is not set |
@@ -912,11 +941,9 @@ CONFIG_MAX_RAW_DEVS=256 | |||
912 | # TPM devices | 941 | # TPM devices |
913 | # | 942 | # |
914 | # CONFIG_TCG_TPM is not set | 943 | # CONFIG_TCG_TPM is not set |
915 | 944 | CONFIG_DEVPORT=y | |
916 | # | ||
917 | # I2C support | ||
918 | # | ||
919 | CONFIG_I2C=y | 945 | CONFIG_I2C=y |
946 | CONFIG_I2C_BOARDINFO=y | ||
920 | CONFIG_I2C_CHARDEV=y | 947 | CONFIG_I2C_CHARDEV=y |
921 | 948 | ||
922 | # | 949 | # |
@@ -940,16 +967,18 @@ CONFIG_I2C_ALGOPCA=y | |||
940 | # CONFIG_I2C_NFORCE2 is not set | 967 | # CONFIG_I2C_NFORCE2 is not set |
941 | # CONFIG_I2C_OCORES is not set | 968 | # CONFIG_I2C_OCORES is not set |
942 | # CONFIG_I2C_PARPORT_LIGHT is not set | 969 | # CONFIG_I2C_PARPORT_LIGHT is not set |
970 | CONFIG_I2C_PASEMI=y | ||
943 | # CONFIG_I2C_PROSAVAGE is not set | 971 | # CONFIG_I2C_PROSAVAGE is not set |
944 | # CONFIG_I2C_SAVAGE4 is not set | 972 | # CONFIG_I2C_SAVAGE4 is not set |
973 | # CONFIG_I2C_SIMTEC is not set | ||
945 | # CONFIG_I2C_SIS5595 is not set | 974 | # CONFIG_I2C_SIS5595 is not set |
946 | # CONFIG_I2C_SIS630 is not set | 975 | # CONFIG_I2C_SIS630 is not set |
947 | # CONFIG_I2C_SIS96X is not set | 976 | # CONFIG_I2C_SIS96X is not set |
948 | # CONFIG_I2C_STUB is not set | 977 | # CONFIG_I2C_STUB is not set |
978 | # CONFIG_I2C_TINY_USB is not set | ||
949 | # CONFIG_I2C_VIA is not set | 979 | # CONFIG_I2C_VIA is not set |
950 | # CONFIG_I2C_VIAPRO is not set | 980 | # CONFIG_I2C_VIAPRO is not set |
951 | # CONFIG_I2C_VOODOO3 is not set | 981 | # CONFIG_I2C_VOODOO3 is not set |
952 | # CONFIG_I2C_PCA_ISA is not set | ||
953 | 982 | ||
954 | # | 983 | # |
955 | # Miscellaneous I2C Chip support | 984 | # Miscellaneous I2C Chip support |
@@ -963,7 +992,7 @@ CONFIG_SENSORS_EEPROM=y | |||
963 | # CONFIG_SENSORS_MAX6875 is not set | 992 | # CONFIG_SENSORS_MAX6875 is not set |
964 | # CONFIG_I2C_DEBUG_CORE is not set | 993 | # CONFIG_I2C_DEBUG_CORE is not set |
965 | # CONFIG_I2C_DEBUG_ALGO is not set | 994 | # CONFIG_I2C_DEBUG_ALGO is not set |
966 | CONFIG_I2C_DEBUG_BUS=y | 995 | # CONFIG_I2C_DEBUG_BUS is not set |
967 | # CONFIG_I2C_DEBUG_CHIP is not set | 996 | # CONFIG_I2C_DEBUG_CHIP is not set |
968 | 997 | ||
969 | # | 998 | # |
@@ -976,16 +1005,14 @@ CONFIG_I2C_DEBUG_BUS=y | |||
976 | # Dallas's 1-wire bus | 1005 | # Dallas's 1-wire bus |
977 | # | 1006 | # |
978 | # CONFIG_W1 is not set | 1007 | # CONFIG_W1 is not set |
979 | |||
980 | # | ||
981 | # Hardware Monitoring support | ||
982 | # | ||
983 | CONFIG_HWMON=y | 1008 | CONFIG_HWMON=y |
984 | CONFIG_HWMON_VID=y | 1009 | CONFIG_HWMON_VID=y |
985 | # CONFIG_SENSORS_ABITUGURU is not set | 1010 | # CONFIG_SENSORS_ABITUGURU is not set |
1011 | # CONFIG_SENSORS_AD7418 is not set | ||
986 | # CONFIG_SENSORS_ADM1021 is not set | 1012 | # CONFIG_SENSORS_ADM1021 is not set |
987 | # CONFIG_SENSORS_ADM1025 is not set | 1013 | # CONFIG_SENSORS_ADM1025 is not set |
988 | # CONFIG_SENSORS_ADM1026 is not set | 1014 | # CONFIG_SENSORS_ADM1026 is not set |
1015 | # CONFIG_SENSORS_ADM1029 is not set | ||
989 | # CONFIG_SENSORS_ADM1031 is not set | 1016 | # CONFIG_SENSORS_ADM1031 is not set |
990 | # CONFIG_SENSORS_ADM9240 is not set | 1017 | # CONFIG_SENSORS_ADM9240 is not set |
991 | # CONFIG_SENSORS_ASB100 is not set | 1018 | # CONFIG_SENSORS_ASB100 is not set |
@@ -1008,6 +1035,7 @@ CONFIG_SENSORS_LM85=y | |||
1008 | CONFIG_SENSORS_LM90=y | 1035 | CONFIG_SENSORS_LM90=y |
1009 | # CONFIG_SENSORS_LM92 is not set | 1036 | # CONFIG_SENSORS_LM92 is not set |
1010 | # CONFIG_SENSORS_MAX1619 is not set | 1037 | # CONFIG_SENSORS_MAX1619 is not set |
1038 | # CONFIG_SENSORS_MAX6650 is not set | ||
1011 | # CONFIG_SENSORS_PC87360 is not set | 1039 | # CONFIG_SENSORS_PC87360 is not set |
1012 | # CONFIG_SENSORS_PC87427 is not set | 1040 | # CONFIG_SENSORS_PC87427 is not set |
1013 | # CONFIG_SENSORS_SIS5595 is not set | 1041 | # CONFIG_SENSORS_SIS5595 is not set |
@@ -1027,29 +1055,50 @@ CONFIG_SENSORS_LM90=y | |||
1027 | # CONFIG_HWMON_DEBUG_CHIP is not set | 1055 | # CONFIG_HWMON_DEBUG_CHIP is not set |
1028 | 1056 | ||
1029 | # | 1057 | # |
1030 | # Multimedia devices | 1058 | # Multifunction device drivers |
1031 | # | 1059 | # |
1032 | # CONFIG_VIDEO_DEV is not set | 1060 | # CONFIG_MFD_SM501 is not set |
1033 | 1061 | ||
1034 | # | 1062 | # |
1035 | # Digital Video Broadcasting Devices | 1063 | # Multimedia devices |
1036 | # | 1064 | # |
1037 | # CONFIG_DVB is not set | 1065 | # CONFIG_VIDEO_DEV is not set |
1066 | # CONFIG_DVB_CORE is not set | ||
1067 | CONFIG_DAB=y | ||
1038 | # CONFIG_USB_DABUSB is not set | 1068 | # CONFIG_USB_DABUSB is not set |
1039 | 1069 | ||
1040 | # | 1070 | # |
1041 | # Graphics support | 1071 | # Graphics support |
1042 | # | 1072 | # |
1043 | CONFIG_FIRMWARE_EDID=y | 1073 | CONFIG_BACKLIGHT_LCD_SUPPORT=y |
1074 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | ||
1075 | CONFIG_LCD_CLASS_DEVICE=m | ||
1076 | |||
1077 | # | ||
1078 | # Display device support | ||
1079 | # | ||
1080 | # CONFIG_DISPLAY_SUPPORT is not set | ||
1081 | CONFIG_VGASTATE=y | ||
1044 | CONFIG_FB=y | 1082 | CONFIG_FB=y |
1083 | CONFIG_FIRMWARE_EDID=y | ||
1045 | CONFIG_FB_DDC=y | 1084 | CONFIG_FB_DDC=y |
1046 | CONFIG_FB_CFB_FILLRECT=y | 1085 | CONFIG_FB_CFB_FILLRECT=y |
1047 | CONFIG_FB_CFB_COPYAREA=y | 1086 | CONFIG_FB_CFB_COPYAREA=y |
1048 | CONFIG_FB_CFB_IMAGEBLIT=y | 1087 | CONFIG_FB_CFB_IMAGEBLIT=y |
1088 | # CONFIG_FB_SYS_FILLRECT is not set | ||
1089 | # CONFIG_FB_SYS_COPYAREA is not set | ||
1090 | # CONFIG_FB_SYS_IMAGEBLIT is not set | ||
1091 | # CONFIG_FB_SYS_FOPS is not set | ||
1092 | CONFIG_FB_DEFERRED_IO=y | ||
1093 | # CONFIG_FB_SVGALIB is not set | ||
1049 | CONFIG_FB_MACMODES=y | 1094 | CONFIG_FB_MACMODES=y |
1050 | # CONFIG_FB_BACKLIGHT is not set | 1095 | CONFIG_FB_BACKLIGHT=y |
1051 | CONFIG_FB_MODE_HELPERS=y | 1096 | CONFIG_FB_MODE_HELPERS=y |
1052 | CONFIG_FB_TILEBLITTING=y | 1097 | CONFIG_FB_TILEBLITTING=y |
1098 | |||
1099 | # | ||
1100 | # Frame buffer hardware drivers | ||
1101 | # | ||
1053 | # CONFIG_FB_CIRRUS is not set | 1102 | # CONFIG_FB_CIRRUS is not set |
1054 | # CONFIG_FB_PM2 is not set | 1103 | # CONFIG_FB_PM2 is not set |
1055 | # CONFIG_FB_CYBER2000 is not set | 1104 | # CONFIG_FB_CYBER2000 is not set |
@@ -1060,28 +1109,27 @@ CONFIG_FB_VGA16=y | |||
1060 | # CONFIG_FB_S1D13XXX is not set | 1109 | # CONFIG_FB_S1D13XXX is not set |
1061 | CONFIG_FB_NVIDIA=y | 1110 | CONFIG_FB_NVIDIA=y |
1062 | CONFIG_FB_NVIDIA_I2C=y | 1111 | CONFIG_FB_NVIDIA_I2C=y |
1063 | CONFIG_FB_RIVA=y | 1112 | # CONFIG_FB_NVIDIA_DEBUG is not set |
1064 | CONFIG_FB_RIVA_I2C=y | 1113 | CONFIG_FB_NVIDIA_BACKLIGHT=y |
1065 | # CONFIG_FB_RIVA_DEBUG is not set | 1114 | # CONFIG_FB_RIVA is not set |
1066 | CONFIG_FB_MATROX=y | 1115 | # CONFIG_FB_MATROX is not set |
1067 | CONFIG_FB_MATROX_MILLENIUM=y | ||
1068 | CONFIG_FB_MATROX_MYSTIQUE=y | ||
1069 | CONFIG_FB_MATROX_G=y | ||
1070 | CONFIG_FB_MATROX_I2C=y | ||
1071 | CONFIG_FB_MATROX_MAVEN=y | ||
1072 | CONFIG_FB_MATROX_MULTIHEAD=y | ||
1073 | CONFIG_FB_RADEON=y | 1116 | CONFIG_FB_RADEON=y |
1074 | CONFIG_FB_RADEON_I2C=y | 1117 | CONFIG_FB_RADEON_I2C=y |
1118 | CONFIG_FB_RADEON_BACKLIGHT=y | ||
1075 | # CONFIG_FB_RADEON_DEBUG is not set | 1119 | # CONFIG_FB_RADEON_DEBUG is not set |
1076 | # CONFIG_FB_ATY128 is not set | 1120 | # CONFIG_FB_ATY128 is not set |
1077 | # CONFIG_FB_ATY is not set | 1121 | # CONFIG_FB_ATY is not set |
1122 | # CONFIG_FB_S3 is not set | ||
1078 | # CONFIG_FB_SAVAGE is not set | 1123 | # CONFIG_FB_SAVAGE is not set |
1079 | # CONFIG_FB_SIS is not set | 1124 | # CONFIG_FB_SIS is not set |
1080 | # CONFIG_FB_NEOMAGIC is not set | 1125 | # CONFIG_FB_NEOMAGIC is not set |
1081 | # CONFIG_FB_KYRO is not set | 1126 | # CONFIG_FB_KYRO is not set |
1082 | # CONFIG_FB_3DFX is not set | 1127 | # CONFIG_FB_3DFX is not set |
1083 | # CONFIG_FB_VOODOO1 is not set | 1128 | # CONFIG_FB_VOODOO1 is not set |
1129 | # CONFIG_FB_VT8623 is not set | ||
1084 | # CONFIG_FB_TRIDENT is not set | 1130 | # CONFIG_FB_TRIDENT is not set |
1131 | # CONFIG_FB_ARK is not set | ||
1132 | # CONFIG_FB_PM3 is not set | ||
1085 | # CONFIG_FB_IBM_GXT4500 is not set | 1133 | # CONFIG_FB_IBM_GXT4500 is not set |
1086 | # CONFIG_FB_VIRTUAL is not set | 1134 | # CONFIG_FB_VIRTUAL is not set |
1087 | 1135 | ||
@@ -1097,15 +1145,10 @@ CONFIG_FRAMEBUFFER_CONSOLE=y | |||
1097 | # CONFIG_FONTS is not set | 1145 | # CONFIG_FONTS is not set |
1098 | CONFIG_FONT_8x8=y | 1146 | CONFIG_FONT_8x8=y |
1099 | CONFIG_FONT_8x16=y | 1147 | CONFIG_FONT_8x16=y |
1100 | |||
1101 | # | ||
1102 | # Logo configuration | ||
1103 | # | ||
1104 | CONFIG_LOGO=y | 1148 | CONFIG_LOGO=y |
1105 | CONFIG_LOGO_LINUX_MONO=y | 1149 | CONFIG_LOGO_LINUX_MONO=y |
1106 | CONFIG_LOGO_LINUX_VGA16=y | 1150 | CONFIG_LOGO_LINUX_VGA16=y |
1107 | CONFIG_LOGO_LINUX_CLUT224=y | 1151 | CONFIG_LOGO_LINUX_CLUT224=y |
1108 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
1109 | 1152 | ||
1110 | # | 1153 | # |
1111 | # Sound | 1154 | # Sound |
@@ -1211,6 +1254,7 @@ CONFIG_SND_VERBOSE_PROCFS=y | |||
1211 | # | 1254 | # |
1212 | CONFIG_SND_USB_AUDIO=y | 1255 | CONFIG_SND_USB_AUDIO=y |
1213 | CONFIG_SND_USB_USX2Y=y | 1256 | CONFIG_SND_USB_USX2Y=y |
1257 | # CONFIG_SND_USB_CAIAQ is not set | ||
1214 | 1258 | ||
1215 | # | 1259 | # |
1216 | # PCMCIA devices | 1260 | # PCMCIA devices |
@@ -1219,6 +1263,11 @@ CONFIG_SND_USB_USX2Y=y | |||
1219 | # CONFIG_SND_PDAUDIOCF is not set | 1263 | # CONFIG_SND_PDAUDIOCF is not set |
1220 | 1264 | ||
1221 | # | 1265 | # |
1266 | # System on Chip audio support | ||
1267 | # | ||
1268 | # CONFIG_SND_SOC is not set | ||
1269 | |||
1270 | # | ||
1222 | # Open Sound System | 1271 | # Open Sound System |
1223 | # | 1272 | # |
1224 | # CONFIG_SOUND_PRIME is not set | 1273 | # CONFIG_SOUND_PRIME is not set |
@@ -1227,6 +1276,15 @@ CONFIG_SND_USB_USX2Y=y | |||
1227 | # HID Devices | 1276 | # HID Devices |
1228 | # | 1277 | # |
1229 | CONFIG_HID=y | 1278 | CONFIG_HID=y |
1279 | # CONFIG_HID_DEBUG is not set | ||
1280 | |||
1281 | # | ||
1282 | # USB Input Devices | ||
1283 | # | ||
1284 | CONFIG_USB_HID=y | ||
1285 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
1286 | # CONFIG_HID_FF is not set | ||
1287 | # CONFIG_USB_HIDDEV is not set | ||
1230 | 1288 | ||
1231 | # | 1289 | # |
1232 | # USB support | 1290 | # USB support |
@@ -1241,7 +1299,7 @@ CONFIG_USB=y | |||
1241 | # Miscellaneous USB options | 1299 | # Miscellaneous USB options |
1242 | # | 1300 | # |
1243 | CONFIG_USB_DEVICEFS=y | 1301 | CONFIG_USB_DEVICEFS=y |
1244 | # CONFIG_USB_BANDWIDTH is not set | 1302 | # CONFIG_USB_DEVICE_CLASS is not set |
1245 | # CONFIG_USB_DYNAMIC_MINORS is not set | 1303 | # CONFIG_USB_DYNAMIC_MINORS is not set |
1246 | # CONFIG_USB_OTG is not set | 1304 | # CONFIG_USB_OTG is not set |
1247 | 1305 | ||
@@ -1252,9 +1310,15 @@ CONFIG_USB_EHCI_HCD=y | |||
1252 | # CONFIG_USB_EHCI_SPLIT_ISO is not set | 1310 | # CONFIG_USB_EHCI_SPLIT_ISO is not set |
1253 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 1311 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
1254 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1312 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1313 | # CONFIG_USB_EHCI_BIG_ENDIAN_MMIO is not set | ||
1255 | # CONFIG_USB_ISP116X_HCD is not set | 1314 | # CONFIG_USB_ISP116X_HCD is not set |
1256 | CONFIG_USB_OHCI_HCD=y | 1315 | CONFIG_USB_OHCI_HCD=y |
1257 | # CONFIG_USB_OHCI_BIG_ENDIAN is not set | 1316 | CONFIG_USB_OHCI_HCD_PPC_OF=y |
1317 | CONFIG_USB_OHCI_HCD_PPC_OF_BE=y | ||
1318 | # CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set | ||
1319 | CONFIG_USB_OHCI_HCD_PCI=y | ||
1320 | CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y | ||
1321 | CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y | ||
1258 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y | 1322 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y |
1259 | CONFIG_USB_UHCI_HCD=y | 1323 | CONFIG_USB_UHCI_HCD=y |
1260 | CONFIG_USB_SL811_HCD=y | 1324 | CONFIG_USB_SL811_HCD=y |
@@ -1289,41 +1353,11 @@ CONFIG_USB_STORAGE=y | |||
1289 | CONFIG_USB_LIBUSUAL=y | 1353 | CONFIG_USB_LIBUSUAL=y |
1290 | 1354 | ||
1291 | # | 1355 | # |
1292 | # USB Input Devices | ||
1293 | # | ||
1294 | CONFIG_USB_HID=y | ||
1295 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
1296 | # CONFIG_HID_FF is not set | ||
1297 | # CONFIG_USB_HIDDEV is not set | ||
1298 | # CONFIG_USB_AIPTEK is not set | ||
1299 | # CONFIG_USB_WACOM is not set | ||
1300 | # CONFIG_USB_ACECAD is not set | ||
1301 | # CONFIG_USB_KBTAB is not set | ||
1302 | # CONFIG_USB_POWERMATE is not set | ||
1303 | # CONFIG_USB_TOUCHSCREEN is not set | ||
1304 | # CONFIG_USB_YEALINK is not set | ||
1305 | # CONFIG_USB_XPAD is not set | ||
1306 | # CONFIG_USB_ATI_REMOTE is not set | ||
1307 | # CONFIG_USB_ATI_REMOTE2 is not set | ||
1308 | # CONFIG_USB_KEYSPAN_REMOTE is not set | ||
1309 | # CONFIG_USB_APPLETOUCH is not set | ||
1310 | |||
1311 | # | ||
1312 | # USB Imaging devices | 1356 | # USB Imaging devices |
1313 | # | 1357 | # |
1314 | # CONFIG_USB_MDC800 is not set | 1358 | # CONFIG_USB_MDC800 is not set |
1315 | # CONFIG_USB_MICROTEK is not set | 1359 | # CONFIG_USB_MICROTEK is not set |
1316 | 1360 | # CONFIG_USB_MON is not set | |
1317 | # | ||
1318 | # USB Network Adapters | ||
1319 | # | ||
1320 | # CONFIG_USB_CATC is not set | ||
1321 | # CONFIG_USB_KAWETH is not set | ||
1322 | # CONFIG_USB_PEGASUS is not set | ||
1323 | # CONFIG_USB_RTL8150 is not set | ||
1324 | # CONFIG_USB_USBNET_MII is not set | ||
1325 | # CONFIG_USB_USBNET is not set | ||
1326 | CONFIG_USB_MON=y | ||
1327 | 1361 | ||
1328 | # | 1362 | # |
1329 | # USB port drivers | 1363 | # USB port drivers |
@@ -1344,6 +1378,7 @@ CONFIG_USB_MON=y | |||
1344 | # CONFIG_USB_RIO500 is not set | 1378 | # CONFIG_USB_RIO500 is not set |
1345 | # CONFIG_USB_LEGOTOWER is not set | 1379 | # CONFIG_USB_LEGOTOWER is not set |
1346 | # CONFIG_USB_LCD is not set | 1380 | # CONFIG_USB_LCD is not set |
1381 | # CONFIG_USB_BERRY_CHARGE is not set | ||
1347 | # CONFIG_USB_LED is not set | 1382 | # CONFIG_USB_LED is not set |
1348 | # CONFIG_USB_CYPRESS_CY7C63 is not set | 1383 | # CONFIG_USB_CYPRESS_CY7C63 is not set |
1349 | # CONFIG_USB_CYTHERM is not set | 1384 | # CONFIG_USB_CYTHERM is not set |
@@ -1354,6 +1389,7 @@ CONFIG_USB_MON=y | |||
1354 | # CONFIG_USB_SISUSBVGA is not set | 1389 | # CONFIG_USB_SISUSBVGA is not set |
1355 | # CONFIG_USB_LD is not set | 1390 | # CONFIG_USB_LD is not set |
1356 | # CONFIG_USB_TRANCEVIBRATOR is not set | 1391 | # CONFIG_USB_TRANCEVIBRATOR is not set |
1392 | # CONFIG_USB_IOWARRIOR is not set | ||
1357 | # CONFIG_USB_TEST is not set | 1393 | # CONFIG_USB_TEST is not set |
1358 | 1394 | ||
1359 | # | 1395 | # |
@@ -1364,10 +1400,6 @@ CONFIG_USB_MON=y | |||
1364 | # USB Gadget Support | 1400 | # USB Gadget Support |
1365 | # | 1401 | # |
1366 | # CONFIG_USB_GADGET is not set | 1402 | # CONFIG_USB_GADGET is not set |
1367 | |||
1368 | # | ||
1369 | # MMC/SD Card support | ||
1370 | # | ||
1371 | # CONFIG_MMC is not set | 1403 | # CONFIG_MMC is not set |
1372 | 1404 | ||
1373 | # | 1405 | # |
@@ -1408,24 +1440,37 @@ CONFIG_RTC_INTF_SYSFS=y | |||
1408 | CONFIG_RTC_INTF_PROC=y | 1440 | CONFIG_RTC_INTF_PROC=y |
1409 | CONFIG_RTC_INTF_DEV=y | 1441 | CONFIG_RTC_INTF_DEV=y |
1410 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | 1442 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set |
1443 | # CONFIG_RTC_DRV_TEST is not set | ||
1411 | 1444 | ||
1412 | # | 1445 | # |
1413 | # RTC drivers | 1446 | # I2C RTC drivers |
1414 | # | 1447 | # |
1415 | # CONFIG_RTC_DRV_X1205 is not set | ||
1416 | CONFIG_RTC_DRV_DS1307=y | 1448 | CONFIG_RTC_DRV_DS1307=y |
1417 | # CONFIG_RTC_DRV_DS1553 is not set | ||
1418 | # CONFIG_RTC_DRV_ISL1208 is not set | ||
1419 | # CONFIG_RTC_DRV_DS1672 is not set | 1449 | # CONFIG_RTC_DRV_DS1672 is not set |
1420 | # CONFIG_RTC_DRV_DS1742 is not set | 1450 | # CONFIG_RTC_DRV_MAX6900 is not set |
1451 | # CONFIG_RTC_DRV_RS5C372 is not set | ||
1452 | # CONFIG_RTC_DRV_ISL1208 is not set | ||
1453 | # CONFIG_RTC_DRV_X1205 is not set | ||
1421 | # CONFIG_RTC_DRV_PCF8563 is not set | 1454 | # CONFIG_RTC_DRV_PCF8563 is not set |
1422 | # CONFIG_RTC_DRV_PCF8583 is not set | 1455 | # CONFIG_RTC_DRV_PCF8583 is not set |
1423 | # CONFIG_RTC_DRV_RS5C372 is not set | 1456 | |
1457 | # | ||
1458 | # SPI RTC drivers | ||
1459 | # | ||
1460 | |||
1461 | # | ||
1462 | # Platform RTC drivers | ||
1463 | # | ||
1464 | # CONFIG_RTC_DRV_DS1553 is not set | ||
1465 | # CONFIG_RTC_DRV_DS1742 is not set | ||
1424 | # CONFIG_RTC_DRV_M48T86 is not set | 1466 | # CONFIG_RTC_DRV_M48T86 is not set |
1425 | # CONFIG_RTC_DRV_TEST is not set | ||
1426 | # CONFIG_RTC_DRV_V3020 is not set | 1467 | # CONFIG_RTC_DRV_V3020 is not set |
1427 | 1468 | ||
1428 | # | 1469 | # |
1470 | # on-CPU RTC drivers | ||
1471 | # | ||
1472 | |||
1473 | # | ||
1429 | # DMA Engine support | 1474 | # DMA Engine support |
1430 | # | 1475 | # |
1431 | # CONFIG_DMA_ENGINE is not set | 1476 | # CONFIG_DMA_ENGINE is not set |
@@ -1439,10 +1484,6 @@ CONFIG_RTC_DRV_DS1307=y | |||
1439 | # | 1484 | # |
1440 | 1485 | ||
1441 | # | 1486 | # |
1442 | # Virtualization | ||
1443 | # | ||
1444 | |||
1445 | # | ||
1446 | # File systems | 1487 | # File systems |
1447 | # | 1488 | # |
1448 | CONFIG_EXT2_FS=y | 1489 | CONFIG_EXT2_FS=y |
@@ -1466,7 +1507,8 @@ CONFIG_FS_POSIX_ACL=y | |||
1466 | # CONFIG_OCFS2_FS is not set | 1507 | # CONFIG_OCFS2_FS is not set |
1467 | # CONFIG_MINIX_FS is not set | 1508 | # CONFIG_MINIX_FS is not set |
1468 | # CONFIG_ROMFS_FS is not set | 1509 | # CONFIG_ROMFS_FS is not set |
1469 | # CONFIG_INOTIFY is not set | 1510 | CONFIG_INOTIFY=y |
1511 | CONFIG_INOTIFY_USER=y | ||
1470 | # CONFIG_QUOTA is not set | 1512 | # CONFIG_QUOTA is not set |
1471 | CONFIG_DNOTIFY=y | 1513 | CONFIG_DNOTIFY=y |
1472 | CONFIG_AUTOFS_FS=y | 1514 | CONFIG_AUTOFS_FS=y |
@@ -1538,6 +1580,7 @@ CONFIG_LOCKD=y | |||
1538 | CONFIG_LOCKD_V4=y | 1580 | CONFIG_LOCKD_V4=y |
1539 | CONFIG_NFS_COMMON=y | 1581 | CONFIG_NFS_COMMON=y |
1540 | CONFIG_SUNRPC=y | 1582 | CONFIG_SUNRPC=y |
1583 | # CONFIG_SUNRPC_BIND34 is not set | ||
1541 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 1584 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
1542 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1585 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1543 | # CONFIG_SMB_FS is not set | 1586 | # CONFIG_SMB_FS is not set |
@@ -1567,6 +1610,7 @@ CONFIG_MSDOS_PARTITION=y | |||
1567 | # CONFIG_SUN_PARTITION is not set | 1610 | # CONFIG_SUN_PARTITION is not set |
1568 | # CONFIG_KARMA_PARTITION is not set | 1611 | # CONFIG_KARMA_PARTITION is not set |
1569 | # CONFIG_EFI_PARTITION is not set | 1612 | # CONFIG_EFI_PARTITION is not set |
1613 | # CONFIG_SYSV68_PARTITION is not set | ||
1570 | 1614 | ||
1571 | # | 1615 | # |
1572 | # Native Language Support | 1616 | # Native Language Support |
@@ -1616,6 +1660,8 @@ CONFIG_NLS_ISO8859_1=y | |||
1616 | # Distributed Lock Manager | 1660 | # Distributed Lock Manager |
1617 | # | 1661 | # |
1618 | # CONFIG_DLM is not set | 1662 | # CONFIG_DLM is not set |
1663 | # CONFIG_UCC_SLOW is not set | ||
1664 | # CONFIG_UCC_FAST is not set | ||
1619 | 1665 | ||
1620 | # | 1666 | # |
1621 | # Library routines | 1667 | # Library routines |
@@ -1623,10 +1669,13 @@ CONFIG_NLS_ISO8859_1=y | |||
1623 | CONFIG_BITREVERSE=y | 1669 | CONFIG_BITREVERSE=y |
1624 | CONFIG_CRC_CCITT=y | 1670 | CONFIG_CRC_CCITT=y |
1625 | # CONFIG_CRC16 is not set | 1671 | # CONFIG_CRC16 is not set |
1672 | # CONFIG_CRC_ITU_T is not set | ||
1626 | CONFIG_CRC32=y | 1673 | CONFIG_CRC32=y |
1627 | # CONFIG_LIBCRC32C is not set | 1674 | # CONFIG_LIBCRC32C is not set |
1628 | CONFIG_PLIST=y | 1675 | CONFIG_PLIST=y |
1629 | CONFIG_IOMAP_COPY=y | 1676 | CONFIG_HAS_IOMEM=y |
1677 | CONFIG_HAS_IOPORT=y | ||
1678 | CONFIG_HAS_DMA=y | ||
1630 | 1679 | ||
1631 | # | 1680 | # |
1632 | # Instrumentation Support | 1681 | # Instrumentation Support |
@@ -1645,32 +1694,34 @@ CONFIG_MAGIC_SYSRQ=y | |||
1645 | # CONFIG_DEBUG_FS is not set | 1694 | # CONFIG_DEBUG_FS is not set |
1646 | # CONFIG_HEADERS_CHECK is not set | 1695 | # CONFIG_HEADERS_CHECK is not set |
1647 | CONFIG_DEBUG_KERNEL=y | 1696 | CONFIG_DEBUG_KERNEL=y |
1648 | CONFIG_LOG_BUF_SHIFT=17 | 1697 | # CONFIG_DEBUG_SHIRQ is not set |
1649 | CONFIG_DETECT_SOFTLOCKUP=y | 1698 | CONFIG_DETECT_SOFTLOCKUP=y |
1650 | # CONFIG_SCHEDSTATS is not set | 1699 | # CONFIG_SCHEDSTATS is not set |
1700 | # CONFIG_TIMER_STATS is not set | ||
1651 | # CONFIG_DEBUG_SLAB is not set | 1701 | # CONFIG_DEBUG_SLAB is not set |
1652 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1702 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1653 | # CONFIG_RT_MUTEX_TESTER is not set | 1703 | # CONFIG_RT_MUTEX_TESTER is not set |
1654 | # CONFIG_DEBUG_SPINLOCK is not set | 1704 | # CONFIG_DEBUG_SPINLOCK is not set |
1655 | # CONFIG_DEBUG_MUTEXES is not set | 1705 | # CONFIG_DEBUG_MUTEXES is not set |
1656 | # CONFIG_DEBUG_RWSEMS is not set | ||
1657 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1706 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1658 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 1707 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
1659 | # CONFIG_DEBUG_KOBJECT is not set | 1708 | # CONFIG_DEBUG_KOBJECT is not set |
1660 | CONFIG_DEBUG_BUGVERBOSE=y | 1709 | CONFIG_DEBUG_BUGVERBOSE=y |
1661 | CONFIG_DEBUG_INFO=y | 1710 | # CONFIG_DEBUG_INFO is not set |
1662 | # CONFIG_DEBUG_VM is not set | 1711 | # CONFIG_DEBUG_VM is not set |
1663 | # CONFIG_DEBUG_LIST is not set | 1712 | # CONFIG_DEBUG_LIST is not set |
1664 | CONFIG_FORCED_INLINING=y | 1713 | # CONFIG_FORCED_INLINING is not set |
1665 | # CONFIG_RCU_TORTURE_TEST is not set | 1714 | # CONFIG_RCU_TORTURE_TEST is not set |
1715 | # CONFIG_FAULT_INJECTION is not set | ||
1666 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1716 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
1667 | # CONFIG_DEBUG_STACK_USAGE is not set | 1717 | # CONFIG_DEBUG_STACK_USAGE is not set |
1718 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
1668 | CONFIG_DEBUGGER=y | 1719 | CONFIG_DEBUGGER=y |
1669 | CONFIG_XMON=y | 1720 | CONFIG_XMON=y |
1670 | CONFIG_XMON_DEFAULT=y | 1721 | CONFIG_XMON_DEFAULT=y |
1671 | CONFIG_XMON_DISASSEMBLY=y | 1722 | CONFIG_XMON_DISASSEMBLY=y |
1672 | # CONFIG_IRQSTACKS is not set | 1723 | # CONFIG_IRQSTACKS is not set |
1673 | CONFIG_BOOTX_TEXT=y | 1724 | # CONFIG_BOOTX_TEXT is not set |
1674 | # CONFIG_PPC_EARLY_DEBUG is not set | 1725 | # CONFIG_PPC_EARLY_DEBUG is not set |
1675 | 1726 | ||
1676 | # | 1727 | # |
@@ -1700,8 +1751,11 @@ CONFIG_CRYPTO_SHA1=y | |||
1700 | # CONFIG_CRYPTO_GF128MUL is not set | 1751 | # CONFIG_CRYPTO_GF128MUL is not set |
1701 | CONFIG_CRYPTO_ECB=m | 1752 | CONFIG_CRYPTO_ECB=m |
1702 | CONFIG_CRYPTO_CBC=y | 1753 | CONFIG_CRYPTO_CBC=y |
1754 | CONFIG_CRYPTO_PCBC=m | ||
1703 | # CONFIG_CRYPTO_LRW is not set | 1755 | # CONFIG_CRYPTO_LRW is not set |
1756 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1704 | CONFIG_CRYPTO_DES=y | 1757 | CONFIG_CRYPTO_DES=y |
1758 | # CONFIG_CRYPTO_FCRYPT is not set | ||
1705 | # CONFIG_CRYPTO_BLOWFISH is not set | 1759 | # CONFIG_CRYPTO_BLOWFISH is not set |
1706 | # CONFIG_CRYPTO_TWOFISH is not set | 1760 | # CONFIG_CRYPTO_TWOFISH is not set |
1707 | # CONFIG_CRYPTO_SERPENT is not set | 1761 | # CONFIG_CRYPTO_SERPENT is not set |
@@ -1715,6 +1769,7 @@ CONFIG_CRYPTO_DES=y | |||
1715 | # CONFIG_CRYPTO_DEFLATE is not set | 1769 | # CONFIG_CRYPTO_DEFLATE is not set |
1716 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1770 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
1717 | # CONFIG_CRYPTO_CRC32C is not set | 1771 | # CONFIG_CRYPTO_CRC32C is not set |
1772 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1718 | # CONFIG_CRYPTO_TEST is not set | 1773 | # CONFIG_CRYPTO_TEST is not set |
1719 | 1774 | ||
1720 | # | 1775 | # |
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c index 9cb24d20f0f9..b2b5d664d328 100644 --- a/arch/powerpc/kernel/cputable.c +++ b/arch/powerpc/kernel/cputable.c | |||
@@ -235,6 +235,7 @@ static struct cpu_spec cpu_specs[] = { | |||
235 | .icache_bsize = 128, | 235 | .icache_bsize = 128, |
236 | .dcache_bsize = 128, | 236 | .dcache_bsize = 128, |
237 | .num_pmcs = 8, | 237 | .num_pmcs = 8, |
238 | .pmc_type = PPC_PMC_IBM, | ||
238 | .cpu_setup = __setup_cpu_ppc970, | 239 | .cpu_setup = __setup_cpu_ppc970, |
239 | .cpu_restore = __restore_cpu_ppc970, | 240 | .cpu_restore = __restore_cpu_ppc970, |
240 | .oprofile_cpu_type = "ppc64/970MP", | 241 | .oprofile_cpu_type = "ppc64/970MP", |
@@ -251,6 +252,7 @@ static struct cpu_spec cpu_specs[] = { | |||
251 | .icache_bsize = 128, | 252 | .icache_bsize = 128, |
252 | .dcache_bsize = 128, | 253 | .dcache_bsize = 128, |
253 | .num_pmcs = 8, | 254 | .num_pmcs = 8, |
255 | .pmc_type = PPC_PMC_IBM, | ||
254 | .cpu_setup = __setup_cpu_ppc970MP, | 256 | .cpu_setup = __setup_cpu_ppc970MP, |
255 | .cpu_restore = __restore_cpu_ppc970, | 257 | .cpu_restore = __restore_cpu_ppc970, |
256 | .oprofile_cpu_type = "ppc64/970MP", | 258 | .oprofile_cpu_type = "ppc64/970MP", |
@@ -317,6 +319,7 @@ static struct cpu_spec cpu_specs[] = { | |||
317 | .icache_bsize = 128, | 319 | .icache_bsize = 128, |
318 | .dcache_bsize = 128, | 320 | .dcache_bsize = 128, |
319 | .num_pmcs = 6, | 321 | .num_pmcs = 6, |
322 | .pmc_type = PPC_PMC_IBM, | ||
320 | .oprofile_cpu_type = "ppc64/power6", | 323 | .oprofile_cpu_type = "ppc64/power6", |
321 | .oprofile_type = PPC_OPROFILE_POWER4, | 324 | .oprofile_type = PPC_OPROFILE_POWER4, |
322 | .oprofile_mmcra_sihv = POWER6_MMCRA_SIHV, | 325 | .oprofile_mmcra_sihv = POWER6_MMCRA_SIHV, |
@@ -335,6 +338,7 @@ static struct cpu_spec cpu_specs[] = { | |||
335 | .icache_bsize = 128, | 338 | .icache_bsize = 128, |
336 | .dcache_bsize = 128, | 339 | .dcache_bsize = 128, |
337 | .num_pmcs = 6, | 340 | .num_pmcs = 6, |
341 | .pmc_type = PPC_PMC_IBM, | ||
338 | .oprofile_cpu_type = "ppc64/power6", | 342 | .oprofile_cpu_type = "ppc64/power6", |
339 | .oprofile_type = PPC_OPROFILE_POWER4, | 343 | .oprofile_type = PPC_OPROFILE_POWER4, |
340 | .oprofile_mmcra_sihv = POWER6_MMCRA_SIHV, | 344 | .oprofile_mmcra_sihv = POWER6_MMCRA_SIHV, |
@@ -836,7 +840,7 @@ static struct cpu_spec cpu_specs[] = { | |||
836 | .pvr_mask = 0xffff0000, | 840 | .pvr_mask = 0xffff0000, |
837 | .pvr_value = 0x80040000, | 841 | .pvr_value = 0x80040000, |
838 | .cpu_name = "7448", | 842 | .cpu_name = "7448", |
839 | .cpu_features = CPU_FTRS_7447A, | 843 | .cpu_features = CPU_FTRS_7448, |
840 | .cpu_user_features = COMMON_USER | | 844 | .cpu_user_features = COMMON_USER | |
841 | PPC_FEATURE_HAS_ALTIVEC_COMP | PPC_FEATURE_PPC_LE, | 845 | PPC_FEATURE_HAS_ALTIVEC_COMP | PPC_FEATURE_PPC_LE, |
842 | .icache_bsize = 32, | 846 | .icache_bsize = 32, |
diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S index c29d1652a421..4074c0b31453 100644 --- a/arch/powerpc/kernel/entry_32.S +++ b/arch/powerpc/kernel/entry_32.S | |||
@@ -596,7 +596,11 @@ fast_exception_return: | |||
596 | mr r12,r4 /* restart at exc_exit_restart */ | 596 | mr r12,r4 /* restart at exc_exit_restart */ |
597 | b 2b | 597 | b 2b |
598 | 598 | ||
599 | .comm fee_restarts,4 | 599 | .section .bss |
600 | .align 2 | ||
601 | fee_restarts: | ||
602 | .space 4 | ||
603 | .previous | ||
600 | 604 | ||
601 | /* aargh, a nonrecoverable interrupt, panic */ | 605 | /* aargh, a nonrecoverable interrupt, panic */ |
602 | /* aargh, we don't know which trap this is */ | 606 | /* aargh, we don't know which trap this is */ |
@@ -851,7 +855,11 @@ load_dbcr0: | |||
851 | mtspr SPRN_DBSR,r11 /* clear all pending debug events */ | 855 | mtspr SPRN_DBSR,r11 /* clear all pending debug events */ |
852 | blr | 856 | blr |
853 | 857 | ||
854 | .comm global_dbcr0,8 | 858 | .section .bss |
859 | .align 4 | ||
860 | global_dbcr0: | ||
861 | .space 8 | ||
862 | .previous | ||
855 | #endif /* !(CONFIG_4xx || CONFIG_BOOKE) */ | 863 | #endif /* !(CONFIG_4xx || CONFIG_BOOKE) */ |
856 | 864 | ||
857 | do_work: /* r10 contains MSR_KERNEL here */ | 865 | do_work: /* r10 contains MSR_KERNEL here */ |
@@ -926,7 +934,11 @@ END_FTR_SECTION_IFSET(CPU_FTR_601) | |||
926 | /* shouldn't return */ | 934 | /* shouldn't return */ |
927 | b 4b | 935 | b 4b |
928 | 936 | ||
929 | .comm ee_restarts,4 | 937 | .section .bss |
938 | .align 2 | ||
939 | ee_restarts: | ||
940 | .space 4 | ||
941 | .previous | ||
930 | 942 | ||
931 | /* | 943 | /* |
932 | * PROM code for specific machines follows. Put it | 944 | * PROM code for specific machines follows. Put it |
diff --git a/arch/powerpc/kernel/of_platform.c b/arch/powerpc/kernel/of_platform.c index 84c34d979a88..d501c23e5159 100644 --- a/arch/powerpc/kernel/of_platform.c +++ b/arch/powerpc/kernel/of_platform.c | |||
@@ -427,11 +427,13 @@ static int __devinit of_pci_phb_probe(struct of_device *dev, | |||
427 | /* Process "ranges" property */ | 427 | /* Process "ranges" property */ |
428 | pci_process_bridge_OF_ranges(phb, dev->node, 0); | 428 | pci_process_bridge_OF_ranges(phb, dev->node, 0); |
429 | 429 | ||
430 | /* Setup IO space. | 430 | /* Setup IO space. We use the non-dynamic version of that code here, |
431 | * This will not work properly for ISA IOs, something needs to be done | 431 | * which doesn't quite support unplugging. Next kernel release will |
432 | * about it if we ever generalize that way of probing PCI brigdes | 432 | * have a better fix for this. |
433 | * Note also that we don't do ISA, this will also be fixed with a | ||
434 | * more massive rework. | ||
433 | */ | 435 | */ |
434 | pci_setup_phb_io_dynamic(phb, 0); | 436 | pci_setup_phb_io(phb, 0); |
435 | 437 | ||
436 | /* Init pci_dn data structures */ | 438 | /* Init pci_dn data structures */ |
437 | pci_devs_phb_init_dynamic(phb); | 439 | pci_devs_phb_init_dynamic(phb); |
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c index b0409e19b1c1..249cca27a9b8 100644 --- a/arch/powerpc/kernel/pci_64.c +++ b/arch/powerpc/kernel/pci_64.c | |||
@@ -41,6 +41,7 @@ | |||
41 | 41 | ||
42 | unsigned long pci_probe_only = 1; | 42 | unsigned long pci_probe_only = 1; |
43 | int pci_assign_all_buses = 0; | 43 | int pci_assign_all_buses = 0; |
44 | static int pci_initial_scan_done; | ||
44 | 45 | ||
45 | static void fixup_resource(struct resource *res, struct pci_dev *dev); | 46 | static void fixup_resource(struct resource *res, struct pci_dev *dev); |
46 | static void do_bus_setup(struct pci_bus *bus); | 47 | static void do_bus_setup(struct pci_bus *bus); |
@@ -604,6 +605,8 @@ static int __init pcibios_init(void) | |||
604 | /* map in PCI I/O space */ | 605 | /* map in PCI I/O space */ |
605 | phbs_remap_io(); | 606 | phbs_remap_io(); |
606 | 607 | ||
608 | pci_initial_scan_done = 1; | ||
609 | |||
607 | printk(KERN_DEBUG "PCI: Probing PCI hardware done\n"); | 610 | printk(KERN_DEBUG "PCI: Probing PCI hardware done\n"); |
608 | 611 | ||
609 | return 0; | 612 | return 0; |
@@ -1042,13 +1045,16 @@ void __devinit pci_process_bridge_OF_ranges(struct pci_controller *hose, | |||
1042 | } | 1045 | } |
1043 | } | 1046 | } |
1044 | 1047 | ||
1045 | void __init pci_setup_phb_io(struct pci_controller *hose, int primary) | 1048 | void __devinit pci_setup_phb_io(struct pci_controller *hose, int primary) |
1046 | { | 1049 | { |
1047 | unsigned long size = hose->pci_io_size; | 1050 | unsigned long size = hose->pci_io_size; |
1048 | unsigned long io_virt_offset; | 1051 | unsigned long io_virt_offset; |
1049 | struct resource *res; | 1052 | struct resource *res; |
1050 | struct device_node *isa_dn; | 1053 | struct device_node *isa_dn; |
1051 | 1054 | ||
1055 | if (size == 0) | ||
1056 | return; | ||
1057 | |||
1052 | hose->io_base_virt = reserve_phb_iospace(size); | 1058 | hose->io_base_virt = reserve_phb_iospace(size); |
1053 | DBG("phb%d io_base_phys 0x%lx io_base_virt 0x%lx\n", | 1059 | DBG("phb%d io_base_phys 0x%lx io_base_virt 0x%lx\n", |
1054 | hose->global_number, hose->io_base_phys, | 1060 | hose->global_number, hose->io_base_phys, |
@@ -1069,6 +1075,15 @@ void __init pci_setup_phb_io(struct pci_controller *hose, int primary) | |||
1069 | res = &hose->io_resource; | 1075 | res = &hose->io_resource; |
1070 | res->start += io_virt_offset; | 1076 | res->start += io_virt_offset; |
1071 | res->end += io_virt_offset; | 1077 | res->end += io_virt_offset; |
1078 | |||
1079 | /* If this is called after the initial PCI scan, then we need to | ||
1080 | * proceed to IO mappings now | ||
1081 | */ | ||
1082 | if (pci_initial_scan_done) | ||
1083 | __ioremap_explicit(hose->io_base_phys, | ||
1084 | (unsigned long)hose->io_base_virt, | ||
1085 | hose->pci_io_size, | ||
1086 | _PAGE_NO_CACHE | _PAGE_GUARDED); | ||
1072 | } | 1087 | } |
1073 | 1088 | ||
1074 | void __devinit pci_setup_phb_io_dynamic(struct pci_controller *hose, | 1089 | void __devinit pci_setup_phb_io_dynamic(struct pci_controller *hose, |
@@ -1078,6 +1093,9 @@ void __devinit pci_setup_phb_io_dynamic(struct pci_controller *hose, | |||
1078 | unsigned long io_virt_offset; | 1093 | unsigned long io_virt_offset; |
1079 | struct resource *res; | 1094 | struct resource *res; |
1080 | 1095 | ||
1096 | if (size == 0) | ||
1097 | return; | ||
1098 | |||
1081 | hose->io_base_virt = __ioremap(hose->io_base_phys, size, | 1099 | hose->io_base_virt = __ioremap(hose->io_base_phys, size, |
1082 | _PAGE_NO_CACHE | _PAGE_GUARDED); | 1100 | _PAGE_NO_CACHE | _PAGE_GUARDED); |
1083 | DBG("phb%d io_base_phys 0x%lx io_base_virt 0x%lx\n", | 1101 | DBG("phb%d io_base_phys 0x%lx io_base_virt 0x%lx\n", |
@@ -1106,6 +1124,9 @@ static int get_bus_io_range(struct pci_bus *bus, unsigned long *start_phys, | |||
1106 | /* Root Bus */ | 1124 | /* Root Bus */ |
1107 | res = &hose->io_resource; | 1125 | res = &hose->io_resource; |
1108 | 1126 | ||
1127 | if (res->end == 0 && res->start == 0) | ||
1128 | return 1; | ||
1129 | |||
1109 | *start_virt = pci_io_base + res->start; | 1130 | *start_virt = pci_io_base + res->start; |
1110 | *start_phys = *start_virt + hose->io_base_phys | 1131 | *start_phys = *start_virt + hose->io_base_phys |
1111 | - (unsigned long) hose->io_base_virt; | 1132 | - (unsigned long) hose->io_base_virt; |
diff --git a/arch/powerpc/kernel/pmc.c b/arch/powerpc/kernel/pmc.c index 24d7b7c99bb9..ea04e0ab3f2f 100644 --- a/arch/powerpc/kernel/pmc.c +++ b/arch/powerpc/kernel/pmc.c | |||
@@ -20,8 +20,8 @@ | |||
20 | #include <asm/cputable.h> | 20 | #include <asm/cputable.h> |
21 | #include <asm/pmc.h> | 21 | #include <asm/pmc.h> |
22 | 22 | ||
23 | #ifndef MMCR0_PMA0 | 23 | #ifndef MMCR0_PMAO |
24 | #define MMCR0_PMA0 0 | 24 | #define MMCR0_PMAO 0 |
25 | #endif | 25 | #endif |
26 | 26 | ||
27 | static void dummy_perf(struct pt_regs *regs) | 27 | static void dummy_perf(struct pt_regs *regs) |
@@ -30,7 +30,7 @@ static void dummy_perf(struct pt_regs *regs) | |||
30 | mtpmr(PMRN_PMGC0, mfpmr(PMRN_PMGC0) & ~PMGC0_PMIE); | 30 | mtpmr(PMRN_PMGC0, mfpmr(PMRN_PMGC0) & ~PMGC0_PMIE); |
31 | #elif defined(CONFIG_PPC64) || defined(CONFIG_6xx) | 31 | #elif defined(CONFIG_PPC64) || defined(CONFIG_6xx) |
32 | if (cur_cpu_spec->pmc_type == PPC_PMC_IBM) | 32 | if (cur_cpu_spec->pmc_type == PPC_PMC_IBM) |
33 | mtspr(SPRN_MMCR0, mfspr(SPRN_MMCR0) & ~(MMCR0_PMXE|MMCR0_PMA0)); | 33 | mtspr(SPRN_MMCR0, mfspr(SPRN_MMCR0) & ~(MMCR0_PMXE|MMCR0_PMAO)); |
34 | #else | 34 | #else |
35 | mtspr(SPRN_MMCR0, mfspr(SPRN_MMCR0) & ~MMCR0_PMXE); | 35 | mtspr(SPRN_MMCR0, mfspr(SPRN_MMCR0) & ~MMCR0_PMXE); |
36 | #endif | 36 | #endif |
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c index c065b5550368..066a6a7a25b8 100644 --- a/arch/powerpc/kernel/prom.c +++ b/arch/powerpc/kernel/prom.c | |||
@@ -1472,6 +1472,11 @@ static int of_finish_dynamic_node(struct device_node *node) | |||
1472 | node->name = of_get_property(node, "name", NULL); | 1472 | node->name = of_get_property(node, "name", NULL); |
1473 | node->type = of_get_property(node, "device_type", NULL); | 1473 | node->type = of_get_property(node, "device_type", NULL); |
1474 | 1474 | ||
1475 | if (!node->name) | ||
1476 | node->name = "<NULL>"; | ||
1477 | if (!node->type) | ||
1478 | node->type = "<NULL>"; | ||
1479 | |||
1475 | if (!parent) { | 1480 | if (!parent) { |
1476 | err = -ENODEV; | 1481 | err = -ENODEV; |
1477 | goto out; | 1482 | goto out; |
diff --git a/arch/powerpc/kernel/rtas-proc.c b/arch/powerpc/kernel/rtas-proc.c index 190b7ed1dbfb..f2e3bc714d76 100644 --- a/arch/powerpc/kernel/rtas-proc.c +++ b/arch/powerpc/kernel/rtas-proc.c | |||
@@ -379,7 +379,7 @@ static ssize_t ppc_rtas_progress_write(struct file *file, | |||
379 | /* ****************************************************************** */ | 379 | /* ****************************************************************** */ |
380 | static int ppc_rtas_progress_show(struct seq_file *m, void *v) | 380 | static int ppc_rtas_progress_show(struct seq_file *m, void *v) |
381 | { | 381 | { |
382 | if (progress_led) | 382 | if (progress_led[0]) |
383 | seq_printf(m, "%s\n", progress_led); | 383 | seq_printf(m, "%s\n", progress_led); |
384 | return 0; | 384 | return 0; |
385 | } | 385 | } |
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c index 22f1ef1b3100..d577b71db375 100644 --- a/arch/powerpc/kernel/smp.c +++ b/arch/powerpc/kernel/smp.c | |||
@@ -201,13 +201,6 @@ int smp_call_function_map(void (*func) (void *info), void *info, int nonatomic, | |||
201 | /* Can deadlock when called with interrupts disabled */ | 201 | /* Can deadlock when called with interrupts disabled */ |
202 | WARN_ON(irqs_disabled()); | 202 | WARN_ON(irqs_disabled()); |
203 | 203 | ||
204 | /* remove 'self' from the map */ | ||
205 | if (cpu_isset(smp_processor_id(), map)) | ||
206 | cpu_clear(smp_processor_id(), map); | ||
207 | |||
208 | /* sanity check the map, remove any non-online processors. */ | ||
209 | cpus_and(map, map, cpu_online_map); | ||
210 | |||
211 | if (unlikely(smp_ops == NULL)) | 204 | if (unlikely(smp_ops == NULL)) |
212 | return ret; | 205 | return ret; |
213 | 206 | ||
@@ -222,10 +215,17 @@ int smp_call_function_map(void (*func) (void *info), void *info, int nonatomic, | |||
222 | /* Must grab online cpu count with preempt disabled, otherwise | 215 | /* Must grab online cpu count with preempt disabled, otherwise |
223 | * it can change. */ | 216 | * it can change. */ |
224 | num_cpus = num_online_cpus() - 1; | 217 | num_cpus = num_online_cpus() - 1; |
225 | if (!num_cpus || cpus_empty(map)) { | 218 | if (!num_cpus) |
226 | ret = 0; | 219 | goto done; |
227 | goto out; | 220 | |
228 | } | 221 | /* remove 'self' from the map */ |
222 | if (cpu_isset(smp_processor_id(), map)) | ||
223 | cpu_clear(smp_processor_id(), map); | ||
224 | |||
225 | /* sanity check the map, remove any non-online processors. */ | ||
226 | cpus_and(map, map, cpu_online_map); | ||
227 | if (cpus_empty(map)) | ||
228 | goto done; | ||
229 | 229 | ||
230 | call_data = &data; | 230 | call_data = &data; |
231 | smp_wmb(); | 231 | smp_wmb(); |
@@ -263,6 +263,7 @@ int smp_call_function_map(void (*func) (void *info), void *info, int nonatomic, | |||
263 | } | 263 | } |
264 | } | 264 | } |
265 | 265 | ||
266 | done: | ||
266 | ret = 0; | 267 | ret = 0; |
267 | 268 | ||
268 | out: | 269 | out: |
@@ -282,16 +283,17 @@ EXPORT_SYMBOL(smp_call_function); | |||
282 | int smp_call_function_single(int cpu, void (*func) (void *info), void *info, int nonatomic, | 283 | int smp_call_function_single(int cpu, void (*func) (void *info), void *info, int nonatomic, |
283 | int wait) | 284 | int wait) |
284 | { | 285 | { |
285 | cpumask_t map=CPU_MASK_NONE; | 286 | cpumask_t map = CPU_MASK_NONE; |
287 | int ret = -EBUSY; | ||
286 | 288 | ||
287 | if (!cpu_online(cpu)) | 289 | if (!cpu_online(cpu)) |
288 | return -EINVAL; | 290 | return -EINVAL; |
289 | 291 | ||
290 | if (cpu == smp_processor_id()) | ||
291 | return -EBUSY; | ||
292 | |||
293 | cpu_set(cpu, map); | 292 | cpu_set(cpu, map); |
294 | return smp_call_function_map(func,info,nonatomic,wait,map); | 293 | if (cpu != get_cpu()) |
294 | ret = smp_call_function_map(func,info,nonatomic,wait,map); | ||
295 | put_cpu(); | ||
296 | return ret; | ||
295 | } | 297 | } |
296 | EXPORT_SYMBOL(smp_call_function_single); | 298 | EXPORT_SYMBOL(smp_call_function_single); |
297 | 299 | ||
diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S index 132067313147..21c39ff2dc39 100644 --- a/arch/powerpc/kernel/vmlinux.lds.S +++ b/arch/powerpc/kernel/vmlinux.lds.S | |||
@@ -34,7 +34,7 @@ SECTIONS | |||
34 | /* Text and gots */ | 34 | /* Text and gots */ |
35 | .text : { | 35 | .text : { |
36 | _text = .; | 36 | _text = .; |
37 | *(.text .text.*) | 37 | TEXT_TEXT |
38 | SCHED_TEXT | 38 | SCHED_TEXT |
39 | LOCK_TEXT | 39 | LOCK_TEXT |
40 | KPROBES_TEXT | 40 | KPROBES_TEXT |
@@ -167,7 +167,7 @@ SECTIONS | |||
167 | #ifdef CONFIG_PPC32 | 167 | #ifdef CONFIG_PPC32 |
168 | .data : | 168 | .data : |
169 | { | 169 | { |
170 | *(.data) | 170 | DATA_DATA |
171 | *(.sdata) | 171 | *(.sdata) |
172 | *(.got.plt) *(.got) | 172 | *(.got.plt) *(.got) |
173 | } | 173 | } |
diff --git a/arch/powerpc/lib/rheap.c b/arch/powerpc/lib/rheap.c index b2f6dcc59600..180ee2933ab9 100644 --- a/arch/powerpc/lib/rheap.c +++ b/arch/powerpc/lib/rheap.c | |||
@@ -468,25 +468,19 @@ unsigned long rh_alloc_align(rh_info_t * info, int size, int alignment, const ch | |||
468 | if (blk->size == size) { | 468 | if (blk->size == size) { |
469 | /* Move from free list to taken list */ | 469 | /* Move from free list to taken list */ |
470 | list_del(&blk->list); | 470 | list_del(&blk->list); |
471 | blk->owner = owner; | 471 | newblk = blk; |
472 | start = blk->start; | 472 | } else { |
473 | 473 | newblk = get_slot(info); | |
474 | attach_taken_block(info, blk); | 474 | newblk->start = blk->start; |
475 | newblk->size = size; | ||
475 | 476 | ||
476 | return start; | 477 | /* blk still in free list, with updated start, size */ |
478 | blk->start += size; | ||
479 | blk->size -= size; | ||
477 | } | 480 | } |
478 | 481 | ||
479 | newblk = get_slot(info); | ||
480 | newblk->start = blk->start; | ||
481 | newblk->size = size; | ||
482 | newblk->owner = owner; | 482 | newblk->owner = owner; |
483 | |||
484 | /* blk still in free list, with updated start, size */ | ||
485 | blk->start += size; | ||
486 | blk->size -= size; | ||
487 | |||
488 | start = newblk->start; | 483 | start = newblk->start; |
489 | |||
490 | attach_taken_block(info, newblk); | 484 | attach_taken_block(info, newblk); |
491 | 485 | ||
492 | /* for larger alignment return fixed up pointer */ | 486 | /* for larger alignment return fixed up pointer */ |
diff --git a/arch/powerpc/mm/hash_low_32.S b/arch/powerpc/mm/hash_low_32.S index ddceefc06ecc..7f830a4888d6 100644 --- a/arch/powerpc/mm/hash_low_32.S +++ b/arch/powerpc/mm/hash_low_32.S | |||
@@ -30,7 +30,11 @@ | |||
30 | #include <asm/asm-offsets.h> | 30 | #include <asm/asm-offsets.h> |
31 | 31 | ||
32 | #ifdef CONFIG_SMP | 32 | #ifdef CONFIG_SMP |
33 | .comm mmu_hash_lock,4 | 33 | .section .bss |
34 | .align 2 | ||
35 | .globl mmu_hash_lock | ||
36 | mmu_hash_lock: | ||
37 | .space 4 | ||
34 | #endif /* CONFIG_SMP */ | 38 | #endif /* CONFIG_SMP */ |
35 | 39 | ||
36 | /* | 40 | /* |
@@ -455,9 +459,15 @@ found_slot: | |||
455 | sync /* make sure pte updates get to memory */ | 459 | sync /* make sure pte updates get to memory */ |
456 | blr | 460 | blr |
457 | 461 | ||
458 | .comm next_slot,4 | 462 | .section .bss |
459 | .comm primary_pteg_full,4 | 463 | .align 2 |
460 | .comm htab_hash_searches,4 | 464 | next_slot: |
465 | .space 4 | ||
466 | primary_pteg_full: | ||
467 | .space 4 | ||
468 | htab_hash_searches: | ||
469 | .space 4 | ||
470 | .previous | ||
461 | 471 | ||
462 | /* | 472 | /* |
463 | * Flush the entry for a particular page from the hash table. | 473 | * Flush the entry for a particular page from the hash table. |
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c index 028ba4ed03d2..4f2f4534a9d8 100644 --- a/arch/powerpc/mm/hash_utils_64.c +++ b/arch/powerpc/mm/hash_utils_64.c | |||
@@ -430,7 +430,7 @@ static void __init htab_finish_init(void) | |||
430 | make_bl(ht64_call_hpte_insert2, ppc_md.hpte_insert); | 430 | make_bl(ht64_call_hpte_insert2, ppc_md.hpte_insert); |
431 | make_bl(ht64_call_hpte_remove, ppc_md.hpte_remove); | 431 | make_bl(ht64_call_hpte_remove, ppc_md.hpte_remove); |
432 | make_bl(ht64_call_hpte_updatepp, ppc_md.hpte_updatepp); | 432 | make_bl(ht64_call_hpte_updatepp, ppc_md.hpte_updatepp); |
433 | #endif /* CONFIG_PPC_64K_PAGES */ | 433 | #endif /* CONFIG_PPC_HAS_HASH_64K */ |
434 | 434 | ||
435 | make_bl(htab_call_hpte_insert1, ppc_md.hpte_insert); | 435 | make_bl(htab_call_hpte_insert1, ppc_md.hpte_insert); |
436 | make_bl(htab_call_hpte_insert2, ppc_md.hpte_insert); | 436 | make_bl(htab_call_hpte_insert2, ppc_md.hpte_insert); |
@@ -837,7 +837,7 @@ void hash_preload(struct mm_struct *mm, unsigned long ea, | |||
837 | if (mm->context.user_psize == MMU_PAGE_64K) | 837 | if (mm->context.user_psize == MMU_PAGE_64K) |
838 | __hash_page_64K(ea, access, vsid, ptep, trap, local); | 838 | __hash_page_64K(ea, access, vsid, ptep, trap, local); |
839 | else | 839 | else |
840 | #endif /* CONFIG_PPC_64K_PAGES */ | 840 | #endif /* CONFIG_PPC_HAS_HASH_64K */ |
841 | __hash_page_4K(ea, access, vsid, ptep, trap, local); | 841 | __hash_page_4K(ea, access, vsid, ptep, trap, local); |
842 | 842 | ||
843 | local_irq_restore(flags); | 843 | local_irq_restore(flags); |
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c index 246eeea40ece..0266a94d83b6 100644 --- a/arch/powerpc/mm/mem.c +++ b/arch/powerpc/mm/mem.c | |||
@@ -310,11 +310,12 @@ void __init paging_init(void) | |||
310 | 310 | ||
311 | #ifdef CONFIG_HIGHMEM | 311 | #ifdef CONFIG_HIGHMEM |
312 | map_page(PKMAP_BASE, 0, 0); /* XXX gross */ | 312 | map_page(PKMAP_BASE, 0, 0); /* XXX gross */ |
313 | pkmap_page_table = pte_offset_kernel(pmd_offset(pgd_offset_k | 313 | pkmap_page_table = pte_offset_kernel(pmd_offset(pud_offset(pgd_offset_k |
314 | (PKMAP_BASE), PKMAP_BASE), PKMAP_BASE); | 314 | (PKMAP_BASE), PKMAP_BASE), PKMAP_BASE), PKMAP_BASE); |
315 | map_page(KMAP_FIX_BEGIN, 0, 0); /* XXX gross */ | 315 | map_page(KMAP_FIX_BEGIN, 0, 0); /* XXX gross */ |
316 | kmap_pte = pte_offset_kernel(pmd_offset(pgd_offset_k | 316 | kmap_pte = pte_offset_kernel(pmd_offset(pud_offset(pgd_offset_k |
317 | (KMAP_FIX_BEGIN), KMAP_FIX_BEGIN), KMAP_FIX_BEGIN); | 317 | (KMAP_FIX_BEGIN), KMAP_FIX_BEGIN), KMAP_FIX_BEGIN), |
318 | KMAP_FIX_BEGIN); | ||
318 | kmap_prot = PAGE_KERNEL; | 319 | kmap_prot = PAGE_KERNEL; |
319 | #endif /* CONFIG_HIGHMEM */ | 320 | #endif /* CONFIG_HIGHMEM */ |
320 | 321 | ||
diff --git a/arch/powerpc/mm/mmap.c b/arch/powerpc/mm/mmap.c index 972a8e884b9a..86010fc7d3b1 100644 --- a/arch/powerpc/mm/mmap.c +++ b/arch/powerpc/mm/mmap.c | |||
@@ -24,6 +24,7 @@ | |||
24 | 24 | ||
25 | #include <linux/personality.h> | 25 | #include <linux/personality.h> |
26 | #include <linux/mm.h> | 26 | #include <linux/mm.h> |
27 | #include <linux/sched.h> | ||
27 | 28 | ||
28 | /* | 29 | /* |
29 | * Top of mmap area (just below the process stack). | 30 | * Top of mmap area (just below the process stack). |
diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c index d8232b7a08f7..f6ae1a57d652 100644 --- a/arch/powerpc/mm/pgtable_32.c +++ b/arch/powerpc/mm/pgtable_32.c | |||
@@ -93,7 +93,7 @@ void pgd_free(pgd_t *pgd) | |||
93 | free_pages((unsigned long)pgd, PGDIR_ORDER); | 93 | free_pages((unsigned long)pgd, PGDIR_ORDER); |
94 | } | 94 | } |
95 | 95 | ||
96 | pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address) | 96 | __init_refok pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address) |
97 | { | 97 | { |
98 | pte_t *pte; | 98 | pte_t *pte; |
99 | extern int mem_init_done; | 99 | extern int mem_init_done; |
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c index 1d443407423c..ad6e135bf212 100644 --- a/arch/powerpc/mm/pgtable_64.c +++ b/arch/powerpc/mm/pgtable_64.c | |||
@@ -322,6 +322,8 @@ EXPORT_SYMBOL(__ioremap); | |||
322 | EXPORT_SYMBOL(iounmap); | 322 | EXPORT_SYMBOL(iounmap); |
323 | EXPORT_SYMBOL(__iounmap); | 323 | EXPORT_SYMBOL(__iounmap); |
324 | 324 | ||
325 | static DEFINE_SPINLOCK(phb_io_lock); | ||
326 | |||
325 | void __iomem * reserve_phb_iospace(unsigned long size) | 327 | void __iomem * reserve_phb_iospace(unsigned long size) |
326 | { | 328 | { |
327 | void __iomem *virt_addr; | 329 | void __iomem *virt_addr; |
@@ -329,8 +331,10 @@ void __iomem * reserve_phb_iospace(unsigned long size) | |||
329 | if (phbs_io_bot >= IMALLOC_BASE) | 331 | if (phbs_io_bot >= IMALLOC_BASE) |
330 | panic("reserve_phb_iospace(): phb io space overflow\n"); | 332 | panic("reserve_phb_iospace(): phb io space overflow\n"); |
331 | 333 | ||
334 | spin_lock(&phb_io_lock); | ||
332 | virt_addr = (void __iomem *) phbs_io_bot; | 335 | virt_addr = (void __iomem *) phbs_io_bot; |
333 | phbs_io_bot += size; | 336 | phbs_io_bot += size; |
337 | spin_unlock(&phb_io_lock); | ||
334 | 338 | ||
335 | return virt_addr; | 339 | return virt_addr; |
336 | } | 340 | } |
diff --git a/arch/powerpc/platforms/44x/Kconfig b/arch/powerpc/platforms/44x/Kconfig index 8e66949e7c67..1b3e008fd148 100644 --- a/arch/powerpc/platforms/44x/Kconfig +++ b/arch/powerpc/platforms/44x/Kconfig | |||
@@ -38,7 +38,8 @@ config 440EP | |||
38 | 38 | ||
39 | config 440GP | 39 | config 440GP |
40 | bool | 40 | bool |
41 | select IBM_NEW_EMAC_ZMII | 41 | # Disabled until the new EMAC Driver is merged. |
42 | # select IBM_NEW_EMAC_ZMII | ||
42 | 43 | ||
43 | config 440GX | 44 | config 440GX |
44 | bool | 45 | bool |
diff --git a/arch/powerpc/platforms/44x/ebony.c b/arch/powerpc/platforms/44x/ebony.c index ad526eafc90b..5a7fec8d10d3 100644 --- a/arch/powerpc/platforms/44x/ebony.c +++ b/arch/powerpc/platforms/44x/ebony.c | |||
@@ -27,9 +27,9 @@ | |||
27 | #include "44x.h" | 27 | #include "44x.h" |
28 | 28 | ||
29 | static struct of_device_id ebony_of_bus[] = { | 29 | static struct of_device_id ebony_of_bus[] = { |
30 | { .type = "ibm,plb", }, | 30 | { .compatible = "ibm,plb4", }, |
31 | { .type = "ibm,opb", }, | 31 | { .compatible = "ibm,opb", }, |
32 | { .type = "ibm,ebc", }, | 32 | { .compatible = "ibm,ebc", }, |
33 | {}, | 33 | {}, |
34 | }; | 34 | }; |
35 | 35 | ||
diff --git a/arch/powerpc/platforms/cell/spufs/inode.c b/arch/powerpc/platforms/cell/spufs/inode.c index a93f328a7317..7150730e2ff1 100644 --- a/arch/powerpc/platforms/cell/spufs/inode.c +++ b/arch/powerpc/platforms/cell/spufs/inode.c | |||
@@ -71,9 +71,7 @@ spufs_init_once(void *p, struct kmem_cache * cachep, unsigned long flags) | |||
71 | { | 71 | { |
72 | struct spufs_inode_info *ei = p; | 72 | struct spufs_inode_info *ei = p; |
73 | 73 | ||
74 | if (flags & SLAB_CTOR_CONSTRUCTOR) { | 74 | inode_init_once(&ei->vfs_inode); |
75 | inode_init_once(&ei->vfs_inode); | ||
76 | } | ||
77 | } | 75 | } |
78 | 76 | ||
79 | static struct inode * | 77 | static struct inode * |
diff --git a/arch/powerpc/platforms/chrp/pegasos_eth.c b/arch/powerpc/platforms/chrp/pegasos_eth.c index 71045677559a..5bcc58d9a4dd 100644 --- a/arch/powerpc/platforms/chrp/pegasos_eth.c +++ b/arch/powerpc/platforms/chrp/pegasos_eth.c | |||
@@ -169,7 +169,7 @@ static int Enable_SRAM(void) | |||
169 | 169 | ||
170 | /***********/ | 170 | /***********/ |
171 | /***********/ | 171 | /***********/ |
172 | int mv643xx_eth_add_pds(void) | 172 | static int __init mv643xx_eth_add_pds(void) |
173 | { | 173 | { |
174 | int ret = 0; | 174 | int ret = 0; |
175 | static struct pci_device_id pci_marvell_mv64360[] = { | 175 | static struct pci_device_id pci_marvell_mv64360[] = { |
diff --git a/arch/powerpc/platforms/iseries/viopath.c b/arch/powerpc/platforms/iseries/viopath.c index 354b8dd2a2c1..6a0060a5f2ec 100644 --- a/arch/powerpc/platforms/iseries/viopath.c +++ b/arch/powerpc/platforms/iseries/viopath.c | |||
@@ -37,6 +37,7 @@ | |||
37 | #include <linux/wait.h> | 37 | #include <linux/wait.h> |
38 | #include <linux/seq_file.h> | 38 | #include <linux/seq_file.h> |
39 | #include <linux/interrupt.h> | 39 | #include <linux/interrupt.h> |
40 | #include <linux/completion.h> | ||
40 | 41 | ||
41 | #include <asm/system.h> | 42 | #include <asm/system.h> |
42 | #include <asm/uaccess.h> | 43 | #include <asm/uaccess.h> |
@@ -81,7 +82,7 @@ static void handleMonitorEvent(struct HvLpEvent *event); | |||
81 | * if system_state is not SYSTEM_RUNNING, then wait_atomic is used ... | 82 | * if system_state is not SYSTEM_RUNNING, then wait_atomic is used ... |
82 | */ | 83 | */ |
83 | struct alloc_parms { | 84 | struct alloc_parms { |
84 | struct semaphore sem; | 85 | struct completion done; |
85 | int number; | 86 | int number; |
86 | atomic_t wait_atomic; | 87 | atomic_t wait_atomic; |
87 | int used_wait_atomic; | 88 | int used_wait_atomic; |
@@ -115,7 +116,7 @@ static int proc_viopath_show(struct seq_file *m, void *v) | |||
115 | u16 vlanMap; | 116 | u16 vlanMap; |
116 | dma_addr_t handle; | 117 | dma_addr_t handle; |
117 | HvLpEvent_Rc hvrc; | 118 | HvLpEvent_Rc hvrc; |
118 | DECLARE_MUTEX_LOCKED(Semaphore); | 119 | DECLARE_COMPLETION(done); |
119 | struct device_node *node; | 120 | struct device_node *node; |
120 | const char *sysid; | 121 | const char *sysid; |
121 | 122 | ||
@@ -132,13 +133,13 @@ static int proc_viopath_show(struct seq_file *m, void *v) | |||
132 | HvLpEvent_AckInd_DoAck, HvLpEvent_AckType_ImmediateAck, | 133 | HvLpEvent_AckInd_DoAck, HvLpEvent_AckType_ImmediateAck, |
133 | viopath_sourceinst(viopath_hostLp), | 134 | viopath_sourceinst(viopath_hostLp), |
134 | viopath_targetinst(viopath_hostLp), | 135 | viopath_targetinst(viopath_hostLp), |
135 | (u64)(unsigned long)&Semaphore, VIOVERSION << 16, | 136 | (u64)(unsigned long)&done, VIOVERSION << 16, |
136 | ((u64)handle) << 32, HW_PAGE_SIZE, 0, 0); | 137 | ((u64)handle) << 32, HW_PAGE_SIZE, 0, 0); |
137 | 138 | ||
138 | if (hvrc != HvLpEvent_Rc_Good) | 139 | if (hvrc != HvLpEvent_Rc_Good) |
139 | printk(VIOPATH_KERN_WARN "hv error on op %d\n", (int)hvrc); | 140 | printk(VIOPATH_KERN_WARN "hv error on op %d\n", (int)hvrc); |
140 | 141 | ||
141 | down(&Semaphore); | 142 | wait_for_completion(&done); |
142 | 143 | ||
143 | vlanMap = HvLpConfig_getVirtualLanIndexMap(); | 144 | vlanMap = HvLpConfig_getVirtualLanIndexMap(); |
144 | 145 | ||
@@ -353,7 +354,7 @@ static void handleConfig(struct HvLpEvent *event) | |||
353 | return; | 354 | return; |
354 | } | 355 | } |
355 | 356 | ||
356 | up((struct semaphore *)event->xCorrelationToken); | 357 | complete((struct completion *)event->xCorrelationToken); |
357 | } | 358 | } |
358 | 359 | ||
359 | /* | 360 | /* |
@@ -464,7 +465,7 @@ static void viopath_donealloc(void *parm, int number) | |||
464 | if (parmsp->used_wait_atomic) | 465 | if (parmsp->used_wait_atomic) |
465 | atomic_set(&parmsp->wait_atomic, 0); | 466 | atomic_set(&parmsp->wait_atomic, 0); |
466 | else | 467 | else |
467 | up(&parmsp->sem); | 468 | complete(&parmsp->done); |
468 | } | 469 | } |
469 | 470 | ||
470 | static int allocateEvents(HvLpIndex remoteLp, int numEvents) | 471 | static int allocateEvents(HvLpIndex remoteLp, int numEvents) |
@@ -476,7 +477,7 @@ static int allocateEvents(HvLpIndex remoteLp, int numEvents) | |||
476 | atomic_set(&parms.wait_atomic, 1); | 477 | atomic_set(&parms.wait_atomic, 1); |
477 | } else { | 478 | } else { |
478 | parms.used_wait_atomic = 0; | 479 | parms.used_wait_atomic = 0; |
479 | init_MUTEX_LOCKED(&parms.sem); | 480 | init_completion(&parms.done); |
480 | } | 481 | } |
481 | mf_allocate_lp_events(remoteLp, HvLpEvent_Type_VirtualIo, 250, /* It would be nice to put a real number here! */ | 482 | mf_allocate_lp_events(remoteLp, HvLpEvent_Type_VirtualIo, 250, /* It would be nice to put a real number here! */ |
482 | numEvents, &viopath_donealloc, &parms); | 483 | numEvents, &viopath_donealloc, &parms); |
@@ -484,7 +485,7 @@ static int allocateEvents(HvLpIndex remoteLp, int numEvents) | |||
484 | while (atomic_read(&parms.wait_atomic)) | 485 | while (atomic_read(&parms.wait_atomic)) |
485 | mb(); | 486 | mb(); |
486 | } else | 487 | } else |
487 | down(&parms.sem); | 488 | wait_for_completion(&parms.done); |
488 | return parms.number; | 489 | return parms.number; |
489 | } | 490 | } |
490 | 491 | ||
@@ -585,10 +586,10 @@ int viopath_close(HvLpIndex remoteLp, int subtype, int numReq) | |||
585 | spin_unlock_irqrestore(&statuslock, flags); | 586 | spin_unlock_irqrestore(&statuslock, flags); |
586 | 587 | ||
587 | parms.used_wait_atomic = 0; | 588 | parms.used_wait_atomic = 0; |
588 | init_MUTEX_LOCKED(&parms.sem); | 589 | init_completion(&parms.done); |
589 | mf_deallocate_lp_events(remoteLp, HvLpEvent_Type_VirtualIo, | 590 | mf_deallocate_lp_events(remoteLp, HvLpEvent_Type_VirtualIo, |
590 | numReq, &viopath_donealloc, &parms); | 591 | numReq, &viopath_donealloc, &parms); |
591 | down(&parms.sem); | 592 | wait_for_completion(&parms.done); |
592 | 593 | ||
593 | spin_lock_irqsave(&statuslock, flags); | 594 | spin_lock_irqsave(&statuslock, flags); |
594 | for (i = 0, numOpen = 0; i < VIO_MAX_SUBTYPES; i++) | 595 | for (i = 0, numOpen = 0; i < VIO_MAX_SUBTYPES; i++) |
diff --git a/arch/powerpc/platforms/pasemi/Kconfig b/arch/powerpc/platforms/pasemi/Kconfig index eb4dbc705b06..7c5076e38ea1 100644 --- a/arch/powerpc/platforms/pasemi/Kconfig +++ b/arch/powerpc/platforms/pasemi/Kconfig | |||
@@ -4,7 +4,6 @@ config PPC_PASEMI | |||
4 | default n | 4 | default n |
5 | select MPIC | 5 | select MPIC |
6 | select PPC_UDBG_16550 | 6 | select PPC_UDBG_16550 |
7 | select GENERIC_TBSYNC | ||
8 | select PPC_NATIVE | 7 | select PPC_NATIVE |
9 | help | 8 | help |
10 | This option enables support for PA Semi's PWRficient line | 9 | This option enables support for PA Semi's PWRficient line |
diff --git a/arch/powerpc/platforms/powermac/setup.c b/arch/powerpc/platforms/powermac/setup.c index a410bc76a8a8..07b1c4ec428d 100644 --- a/arch/powerpc/platforms/powermac/setup.c +++ b/arch/powerpc/platforms/powermac/setup.c | |||
@@ -384,7 +384,7 @@ int boot_part; | |||
384 | static dev_t boot_dev; | 384 | static dev_t boot_dev; |
385 | 385 | ||
386 | #ifdef CONFIG_SCSI | 386 | #ifdef CONFIG_SCSI |
387 | void __init note_scsi_host(struct device_node *node, void *host) | 387 | void note_scsi_host(struct device_node *node, void *host) |
388 | { | 388 | { |
389 | int l; | 389 | int l; |
390 | char *p; | 390 | char *p; |
diff --git a/arch/powerpc/platforms/pseries/pseries.h b/arch/powerpc/platforms/pseries/pseries.h index 22bc01989749..2729d559fd91 100644 --- a/arch/powerpc/platforms/pseries/pseries.h +++ b/arch/powerpc/platforms/pseries/pseries.h | |||
@@ -21,8 +21,8 @@ extern int pSeries_machine_check_exception(struct pt_regs *regs); | |||
21 | extern void smp_init_pseries_mpic(void); | 21 | extern void smp_init_pseries_mpic(void); |
22 | extern void smp_init_pseries_xics(void); | 22 | extern void smp_init_pseries_xics(void); |
23 | #else | 23 | #else |
24 | static inline smp_init_pseries_mpic(void) { }; | 24 | static inline void smp_init_pseries_mpic(void) { }; |
25 | static inline smp_init_pseries_xics(void) { }; | 25 | static inline void smp_init_pseries_xics(void) { }; |
26 | #endif | 26 | #endif |
27 | 27 | ||
28 | #ifdef CONFIG_KEXEC | 28 | #ifdef CONFIG_KEXEC |
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c index 4fd2bec89916..75aad38179f0 100644 --- a/arch/powerpc/sysdev/mpic.c +++ b/arch/powerpc/sysdev/mpic.c | |||
@@ -1424,7 +1424,7 @@ unsigned int mpic_get_irq(void) | |||
1424 | void mpic_request_ipis(void) | 1424 | void mpic_request_ipis(void) |
1425 | { | 1425 | { |
1426 | struct mpic *mpic = mpic_primary; | 1426 | struct mpic *mpic = mpic_primary; |
1427 | int i; | 1427 | int i, err; |
1428 | static char *ipi_names[] = { | 1428 | static char *ipi_names[] = { |
1429 | "IPI0 (call function)", | 1429 | "IPI0 (call function)", |
1430 | "IPI1 (reschedule)", | 1430 | "IPI1 (reschedule)", |
@@ -1442,8 +1442,14 @@ void mpic_request_ipis(void) | |||
1442 | printk(KERN_ERR "Failed to map IPI %d\n", i); | 1442 | printk(KERN_ERR "Failed to map IPI %d\n", i); |
1443 | break; | 1443 | break; |
1444 | } | 1444 | } |
1445 | request_irq(vipi, mpic_ipi_action, IRQF_DISABLED|IRQF_PERCPU, | 1445 | err = request_irq(vipi, mpic_ipi_action, |
1446 | ipi_names[i], mpic); | 1446 | IRQF_DISABLED|IRQF_PERCPU, |
1447 | ipi_names[i], mpic); | ||
1448 | if (err) { | ||
1449 | printk(KERN_ERR "Request of irq %d for IPI %d failed\n", | ||
1450 | vipi, i); | ||
1451 | break; | ||
1452 | } | ||
1447 | } | 1453 | } |
1448 | } | 1454 | } |
1449 | 1455 | ||
diff --git a/arch/powerpc/sysdev/qe_lib/Kconfig b/arch/powerpc/sysdev/qe_lib/Kconfig index 887739f3badc..f611d344a126 100644 --- a/arch/powerpc/sysdev/qe_lib/Kconfig +++ b/arch/powerpc/sysdev/qe_lib/Kconfig | |||
@@ -5,15 +5,13 @@ | |||
5 | config UCC_SLOW | 5 | config UCC_SLOW |
6 | bool | 6 | bool |
7 | default n | 7 | default n |
8 | select UCC | ||
9 | help | 8 | help |
10 | This option provides qe_lib support to UCC slow | 9 | This option provides qe_lib support to UCC slow |
11 | protocols: UART, BISYNC, QMC | 10 | protocols: UART, BISYNC, QMC |
12 | 11 | ||
13 | config UCC_FAST | 12 | config UCC_FAST |
14 | bool | 13 | bool |
15 | default n | 14 | default y if UCC_GETH |
16 | select UCC | ||
17 | help | 15 | help |
18 | This option provides qe_lib support to UCC fast | 16 | This option provides qe_lib support to UCC fast |
19 | protocols: HDLC, Ethernet, ATM, transparent | 17 | protocols: HDLC, Ethernet, ATM, transparent |
diff --git a/arch/ppc/kernel/entry.S b/arch/ppc/kernel/entry.S index ab64256110bd..fba7ca17a67e 100644 --- a/arch/ppc/kernel/entry.S +++ b/arch/ppc/kernel/entry.S | |||
@@ -596,7 +596,11 @@ fast_exception_return: | |||
596 | mr r12,r4 /* restart at exc_exit_restart */ | 596 | mr r12,r4 /* restart at exc_exit_restart */ |
597 | b 2b | 597 | b 2b |
598 | 598 | ||
599 | .comm fee_restarts,4 | 599 | .section .bss |
600 | .align 2 | ||
601 | fee_restarts: | ||
602 | .space 4 | ||
603 | .previous | ||
600 | 604 | ||
601 | /* aargh, a nonrecoverable interrupt, panic */ | 605 | /* aargh, a nonrecoverable interrupt, panic */ |
602 | /* aargh, we don't know which trap this is */ | 606 | /* aargh, we don't know which trap this is */ |
@@ -851,7 +855,11 @@ load_dbcr0: | |||
851 | mtspr SPRN_DBSR,r11 /* clear all pending debug events */ | 855 | mtspr SPRN_DBSR,r11 /* clear all pending debug events */ |
852 | blr | 856 | blr |
853 | 857 | ||
854 | .comm global_dbcr0,8 | 858 | .section .bss |
859 | .align 4 | ||
860 | global_dbcr0: | ||
861 | .space 8 | ||
862 | .previous | ||
855 | #endif /* !(CONFIG_4xx || CONFIG_BOOKE) */ | 863 | #endif /* !(CONFIG_4xx || CONFIG_BOOKE) */ |
856 | 864 | ||
857 | do_work: /* r10 contains MSR_KERNEL here */ | 865 | do_work: /* r10 contains MSR_KERNEL here */ |
@@ -926,4 +934,8 @@ END_FTR_SECTION_IFSET(CPU_FTR_601) | |||
926 | /* shouldn't return */ | 934 | /* shouldn't return */ |
927 | b 4b | 935 | b 4b |
928 | 936 | ||
929 | .comm ee_restarts,4 | 937 | .section .bss |
938 | .align 2 | ||
939 | ee_restarts: | ||
940 | .space 4 | ||
941 | .previous | ||
diff --git a/arch/ppc/kernel/ppc_ksyms.c b/arch/ppc/kernel/ppc_ksyms.c index 4ad499605d05..a4165209ac7c 100644 --- a/arch/ppc/kernel/ppc_ksyms.c +++ b/arch/ppc/kernel/ppc_ksyms.c | |||
@@ -40,7 +40,6 @@ | |||
40 | #include <asm/time.h> | 40 | #include <asm/time.h> |
41 | #include <asm/cputable.h> | 41 | #include <asm/cputable.h> |
42 | #include <asm/btext.h> | 42 | #include <asm/btext.h> |
43 | #include <asm/div64.h> | ||
44 | #include <asm/xmon.h> | 43 | #include <asm/xmon.h> |
45 | #include <asm/signal.h> | 44 | #include <asm/signal.h> |
46 | #include <asm/dcr.h> | 45 | #include <asm/dcr.h> |
@@ -93,7 +92,6 @@ EXPORT_SYMBOL(strncpy); | |||
93 | EXPORT_SYMBOL(strcat); | 92 | EXPORT_SYMBOL(strcat); |
94 | EXPORT_SYMBOL(strlen); | 93 | EXPORT_SYMBOL(strlen); |
95 | EXPORT_SYMBOL(strcmp); | 94 | EXPORT_SYMBOL(strcmp); |
96 | EXPORT_SYMBOL(__div64_32); | ||
97 | 95 | ||
98 | EXPORT_SYMBOL(csum_partial); | 96 | EXPORT_SYMBOL(csum_partial); |
99 | EXPORT_SYMBOL(csum_partial_copy_generic); | 97 | EXPORT_SYMBOL(csum_partial_copy_generic); |
diff --git a/arch/ppc/kernel/vmlinux.lds.S b/arch/ppc/kernel/vmlinux.lds.S index 44cd128fb719..19db8746ff14 100644 --- a/arch/ppc/kernel/vmlinux.lds.S +++ b/arch/ppc/kernel/vmlinux.lds.S | |||
@@ -32,7 +32,7 @@ SECTIONS | |||
32 | .text : | 32 | .text : |
33 | { | 33 | { |
34 | _text = .; | 34 | _text = .; |
35 | *(.text) | 35 | TEXT_TEXT |
36 | SCHED_TEXT | 36 | SCHED_TEXT |
37 | LOCK_TEXT | 37 | LOCK_TEXT |
38 | *(.fixup) | 38 | *(.fixup) |
@@ -67,7 +67,7 @@ SECTIONS | |||
67 | . = ALIGN(4096); | 67 | . = ALIGN(4096); |
68 | .data : | 68 | .data : |
69 | { | 69 | { |
70 | *(.data) | 70 | DATA_DATA |
71 | *(.data1) | 71 | *(.data1) |
72 | *(.sdata) | 72 | *(.sdata) |
73 | *(.sdata2) | 73 | *(.sdata2) |
diff --git a/arch/ppc/mm/hashtable.S b/arch/ppc/mm/hashtable.S index e756942e65c4..5f364dc50154 100644 --- a/arch/ppc/mm/hashtable.S +++ b/arch/ppc/mm/hashtable.S | |||
@@ -30,7 +30,11 @@ | |||
30 | #include <asm/asm-offsets.h> | 30 | #include <asm/asm-offsets.h> |
31 | 31 | ||
32 | #ifdef CONFIG_SMP | 32 | #ifdef CONFIG_SMP |
33 | .comm mmu_hash_lock,4 | 33 | .section .bss |
34 | .align 2 | ||
35 | .globl mmu_hash_lock | ||
36 | mmu_hash_lock: | ||
37 | .space 4 | ||
34 | #endif /* CONFIG_SMP */ | 38 | #endif /* CONFIG_SMP */ |
35 | 39 | ||
36 | /* | 40 | /* |
@@ -461,9 +465,17 @@ found_slot: | |||
461 | sync /* make sure pte updates get to memory */ | 465 | sync /* make sure pte updates get to memory */ |
462 | blr | 466 | blr |
463 | 467 | ||
464 | .comm next_slot,4 | 468 | .section .bss |
465 | .comm primary_pteg_full,4 | 469 | .align 2 |
466 | .comm htab_hash_searches,4 | 470 | next_slot: |
471 | .space 4 | ||
472 | .globl primary_pteg_full | ||
473 | primary_pteg_full: | ||
474 | .space 4 | ||
475 | .globl htab_hash_searches | ||
476 | htab_hash_searches: | ||
477 | .space 4 | ||
478 | .previous | ||
467 | 479 | ||
468 | /* | 480 | /* |
469 | * Flush the entry for a particular page from the hash table. | 481 | * Flush the entry for a particular page from the hash table. |
diff --git a/arch/ppc/mm/pgtable.c b/arch/ppc/mm/pgtable.c index c023b7298809..35ebb6395ae3 100644 --- a/arch/ppc/mm/pgtable.c +++ b/arch/ppc/mm/pgtable.c | |||
@@ -92,7 +92,7 @@ void pgd_free(pgd_t *pgd) | |||
92 | free_pages((unsigned long)pgd, PGDIR_ORDER); | 92 | free_pages((unsigned long)pgd, PGDIR_ORDER); |
93 | } | 93 | } |
94 | 94 | ||
95 | pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address) | 95 | __init_refok pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address) |
96 | { | 96 | { |
97 | pte_t *pte; | 97 | pte_t *pte; |
98 | extern int mem_init_done; | 98 | extern int mem_init_done; |
diff --git a/arch/ppc/syslib/pq2_sys.c b/arch/ppc/syslib/pq2_sys.c index f52600c0db20..9c85300846c7 100644 --- a/arch/ppc/syslib/pq2_sys.c +++ b/arch/ppc/syslib/pq2_sys.c | |||
@@ -26,7 +26,7 @@ struct ppc_sys_spec ppc_sys_specs[] = { | |||
26 | { | 26 | { |
27 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, | 27 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, |
28 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, | 28 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, |
29 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_SMC1, | 29 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC2, MPC82xx_CPM_SMC1, |
30 | MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, | 30 | MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, |
31 | } | 31 | } |
32 | }, | 32 | }, |
@@ -39,7 +39,7 @@ struct ppc_sys_spec ppc_sys_specs[] = { | |||
39 | { | 39 | { |
40 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_SCC1, | 40 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_SCC1, |
41 | MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, MPC82xx_CPM_SCC4, | 41 | MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, MPC82xx_CPM_SCC4, |
42 | MPC82xx_CPM_MCC1, MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2, | 42 | MPC82xx_CPM_MCC2, MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2, |
43 | MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, | 43 | MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, |
44 | } | 44 | } |
45 | }, | 45 | }, |
@@ -47,52 +47,56 @@ struct ppc_sys_spec ppc_sys_specs[] = { | |||
47 | .ppc_sys_name = "8260", | 47 | .ppc_sys_name = "8260", |
48 | .mask = 0x0000ff00, | 48 | .mask = 0x0000ff00, |
49 | .value = 0x00000000, | 49 | .value = 0x00000000, |
50 | .num_devices = 12, | 50 | .num_devices = 13, |
51 | .device_list = (enum ppc_sys_devices[]) | 51 | .device_list = (enum ppc_sys_devices[]) |
52 | { | 52 | { |
53 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, | 53 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, |
54 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, | 54 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, |
55 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_SMC1, | 55 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_MCC2, |
56 | MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, | 56 | MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, |
57 | MPC82xx_CPM_I2C, | ||
57 | } | 58 | } |
58 | }, | 59 | }, |
59 | { | 60 | { |
60 | .ppc_sys_name = "8264", | 61 | .ppc_sys_name = "8264", |
61 | .mask = 0x0000ff00, | 62 | .mask = 0x0000ff00, |
62 | .value = 0x00000000, | 63 | .value = 0x00000000, |
63 | .num_devices = 12, | 64 | .num_devices = 13, |
64 | .device_list = (enum ppc_sys_devices[]) | 65 | .device_list = (enum ppc_sys_devices[]) |
65 | { | 66 | { |
66 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, | 67 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, |
67 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, | 68 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, |
68 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_SMC1, | 69 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_MCC2, |
69 | MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, | 70 | MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, |
71 | MPC82xx_CPM_I2C, | ||
70 | } | 72 | } |
71 | }, | 73 | }, |
72 | { | 74 | { |
73 | .ppc_sys_name = "8265", | 75 | .ppc_sys_name = "8265", |
74 | .mask = 0x0000ff00, | 76 | .mask = 0x0000ff00, |
75 | .value = 0x00000000, | 77 | .value = 0x00000000, |
76 | .num_devices = 12, | 78 | .num_devices = 13, |
77 | .device_list = (enum ppc_sys_devices[]) | 79 | .device_list = (enum ppc_sys_devices[]) |
78 | { | 80 | { |
79 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, | 81 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, |
80 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, | 82 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, |
81 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_SMC1, | 83 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_MCC2, |
82 | MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, | 84 | MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, |
85 | MPC82xx_CPM_I2C, | ||
83 | } | 86 | } |
84 | }, | 87 | }, |
85 | { | 88 | { |
86 | .ppc_sys_name = "8266", | 89 | .ppc_sys_name = "8266", |
87 | .mask = 0x0000ff00, | 90 | .mask = 0x0000ff00, |
88 | .value = 0x00000000, | 91 | .value = 0x00000000, |
89 | .num_devices = 12, | 92 | .num_devices = 13, |
90 | .device_list = (enum ppc_sys_devices[]) | 93 | .device_list = (enum ppc_sys_devices[]) |
91 | { | 94 | { |
92 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, | 95 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, |
93 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, | 96 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, |
94 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_SMC1, | 97 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_MCC2, |
95 | MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, | 98 | MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, |
99 | MPC82xx_CPM_I2C, | ||
96 | } | 100 | } |
97 | }, | 101 | }, |
98 | /* below is a list of the 8272 family of processors */ | 102 | /* below is a list of the 8272 family of processors */ |
@@ -159,7 +163,7 @@ struct ppc_sys_spec ppc_sys_specs[] = { | |||
159 | { | 163 | { |
160 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, | 164 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, |
161 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, | 165 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, |
162 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_SMC1, | 166 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC2, MPC82xx_CPM_SMC1, |
163 | MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, | 167 | MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, |
164 | }, | 168 | }, |
165 | }, | 169 | }, |
@@ -172,7 +176,7 @@ struct ppc_sys_spec ppc_sys_specs[] = { | |||
172 | { | 176 | { |
173 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, | 177 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, |
174 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, | 178 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, |
175 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_SMC1, | 179 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC2, MPC82xx_CPM_SMC1, |
176 | MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, | 180 | MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, |
177 | }, | 181 | }, |
178 | }, | 182 | }, |
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S index 32a69a18a796..acc415457b45 100644 --- a/arch/s390/kernel/compat_wrapper.S +++ b/arch/s390/kernel/compat_wrapper.S | |||
@@ -1682,3 +1682,31 @@ compat_sys_utimes_wrapper: | |||
1682 | llgtr %r2,%r2 # char * | 1682 | llgtr %r2,%r2 # char * |
1683 | llgtr %r3,%r3 # struct compat_timeval * | 1683 | llgtr %r3,%r3 # struct compat_timeval * |
1684 | jg compat_sys_utimes | 1684 | jg compat_sys_utimes |
1685 | |||
1686 | .globl compat_sys_utimensat_wrapper | ||
1687 | compat_sys_utimensat_wrapper: | ||
1688 | llgfr %r2,%r2 # unsigned int | ||
1689 | llgtr %r3,%r3 # char * | ||
1690 | llgtr %r4,%r4 # struct compat_timespec * | ||
1691 | lgfr %r5,%r5 # int | ||
1692 | jg compat_sys_utimensat | ||
1693 | |||
1694 | .globl compat_sys_signalfd_wrapper | ||
1695 | compat_sys_signalfd_wrapper: | ||
1696 | lgfr %r2,%r2 # int | ||
1697 | llgtr %r3,%r3 # compat_sigset_t * | ||
1698 | llgfr %r4,%r4 # compat_size_t | ||
1699 | jg compat_sys_signalfd | ||
1700 | |||
1701 | .globl compat_sys_timerfd_wrapper | ||
1702 | compat_sys_timerfd_wrapper: | ||
1703 | lgfr %r2,%r2 # int | ||
1704 | lgfr %r3,%r3 # int | ||
1705 | lgfr %r4,%r4 # int | ||
1706 | llgtr %r5,%r5 # struct compat_itimerspec * | ||
1707 | jg compat_sys_timerfd | ||
1708 | |||
1709 | .globl sys_eventfd_wrapper | ||
1710 | sys_eventfd_wrapper: | ||
1711 | llgfr %r2,%r2 # unsigned int | ||
1712 | jg sys_eventfd | ||
diff --git a/arch/s390/kernel/kprobes.c b/arch/s390/kernel/kprobes.c index e39333ae0fcf..358d2bbbc481 100644 --- a/arch/s390/kernel/kprobes.c +++ b/arch/s390/kernel/kprobes.c | |||
@@ -413,7 +413,7 @@ static int __kprobes trampoline_probe_handler(struct kprobe *p, | |||
413 | break; | 413 | break; |
414 | } | 414 | } |
415 | } | 415 | } |
416 | BUG_ON(!orig_ret_address || (orig_ret_address == trampoline_address)); | 416 | kretprobe_assert(ri, orig_ret_address, trampoline_address); |
417 | regs->psw.addr = orig_ret_address | PSW_ADDR_AMODE; | 417 | regs->psw.addr = orig_ret_address | PSW_ADDR_AMODE; |
418 | 418 | ||
419 | reset_current_kprobe(); | 419 | reset_current_kprobe(); |
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S index cd8d321cd0c2..738feb4a0aad 100644 --- a/arch/s390/kernel/syscalls.S +++ b/arch/s390/kernel/syscalls.S | |||
@@ -322,3 +322,8 @@ NI_SYSCALL /* 310 sys_move_pages */ | |||
322 | SYSCALL(sys_getcpu,sys_getcpu,sys_getcpu_wrapper) | 322 | SYSCALL(sys_getcpu,sys_getcpu,sys_getcpu_wrapper) |
323 | SYSCALL(sys_epoll_pwait,sys_epoll_pwait,compat_sys_epoll_pwait_wrapper) | 323 | SYSCALL(sys_epoll_pwait,sys_epoll_pwait,compat_sys_epoll_pwait_wrapper) |
324 | SYSCALL(sys_utimes,sys_utimes,compat_sys_utimes_wrapper) | 324 | SYSCALL(sys_utimes,sys_utimes,compat_sys_utimes_wrapper) |
325 | NI_SYSCALL /* 314 sys_fallocate */ | ||
326 | SYSCALL(sys_utimensat,sys_utimensat,compat_sys_utimensat_wrapper) /* 315 */ | ||
327 | SYSCALL(sys_signalfd,sys_signalfd,compat_sys_signalfd_wrapper) | ||
328 | SYSCALL(sys_timerfd,sys_timerfd,compat_sys_timerfd_wrapper) | ||
329 | SYSCALL(sys_eventfd,sys_eventfd,sys_eventfd_wrapper) | ||
diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S index e9d3432aba60..7158a804a5e4 100644 --- a/arch/s390/kernel/vmlinux.lds.S +++ b/arch/s390/kernel/vmlinux.lds.S | |||
@@ -21,7 +21,7 @@ SECTIONS | |||
21 | . = 0x00000000; | 21 | . = 0x00000000; |
22 | _text = .; /* Text and read-only data */ | 22 | _text = .; /* Text and read-only data */ |
23 | .text : { | 23 | .text : { |
24 | *(.text) | 24 | TEXT_TEXT |
25 | SCHED_TEXT | 25 | SCHED_TEXT |
26 | LOCK_TEXT | 26 | LOCK_TEXT |
27 | KPROBES_TEXT | 27 | KPROBES_TEXT |
@@ -48,7 +48,7 @@ SECTIONS | |||
48 | BUG_TABLE | 48 | BUG_TABLE |
49 | 49 | ||
50 | .data : { /* Data */ | 50 | .data : { /* Data */ |
51 | *(.data) | 51 | DATA_DATA |
52 | CONSTRUCTORS | 52 | CONSTRUCTORS |
53 | } | 53 | } |
54 | 54 | ||
diff --git a/arch/s390/mm/init.c b/arch/s390/mm/init.c index 916b72a8cde8..9098531a2671 100644 --- a/arch/s390/mm/init.c +++ b/arch/s390/mm/init.c | |||
@@ -61,30 +61,38 @@ void diag10(unsigned long addr) | |||
61 | 61 | ||
62 | void show_mem(void) | 62 | void show_mem(void) |
63 | { | 63 | { |
64 | int i, total = 0, reserved = 0; | 64 | int i, total = 0, reserved = 0; |
65 | int shared = 0, cached = 0; | 65 | int shared = 0, cached = 0; |
66 | struct page *page; | 66 | struct page *page; |
67 | 67 | ||
68 | printk("Mem-info:\n"); | 68 | printk("Mem-info:\n"); |
69 | show_free_areas(); | 69 | show_free_areas(); |
70 | printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); | 70 | printk("Free swap: %6ldkB\n", nr_swap_pages << (PAGE_SHIFT - 10)); |
71 | i = max_mapnr; | 71 | i = max_mapnr; |
72 | while (i-- > 0) { | 72 | while (i-- > 0) { |
73 | if (!pfn_valid(i)) | 73 | if (!pfn_valid(i)) |
74 | continue; | 74 | continue; |
75 | page = pfn_to_page(i); | 75 | page = pfn_to_page(i); |
76 | total++; | 76 | total++; |
77 | if (PageReserved(page)) | 77 | if (PageReserved(page)) |
78 | reserved++; | 78 | reserved++; |
79 | else if (PageSwapCache(page)) | 79 | else if (PageSwapCache(page)) |
80 | cached++; | 80 | cached++; |
81 | else if (page_count(page)) | 81 | else if (page_count(page)) |
82 | shared += page_count(page) - 1; | 82 | shared += page_count(page) - 1; |
83 | } | 83 | } |
84 | printk("%d pages of RAM\n",total); | 84 | printk("%d pages of RAM\n", total); |
85 | printk("%d reserved pages\n",reserved); | 85 | printk("%d reserved pages\n", reserved); |
86 | printk("%d pages shared\n",shared); | 86 | printk("%d pages shared\n", shared); |
87 | printk("%d pages swap cached\n",cached); | 87 | printk("%d pages swap cached\n", cached); |
88 | |||
89 | printk("%lu pages dirty\n", global_page_state(NR_FILE_DIRTY)); | ||
90 | printk("%lu pages writeback\n", global_page_state(NR_WRITEBACK)); | ||
91 | printk("%lu pages mapped\n", global_page_state(NR_FILE_MAPPED)); | ||
92 | printk("%lu pages slab\n", | ||
93 | global_page_state(NR_SLAB_RECLAIMABLE) + | ||
94 | global_page_state(NR_SLAB_UNRECLAIMABLE)); | ||
95 | printk("%lu pages pagetables\n", global_page_state(NR_PAGETABLE)); | ||
88 | } | 96 | } |
89 | 97 | ||
90 | static void __init setup_ro_region(void) | 98 | static void __init setup_ro_region(void) |
diff --git a/arch/sh/boards/landisk/gio.c b/arch/sh/boards/landisk/gio.c index 50d38be62f01..a37643d002b2 100644 --- a/arch/sh/boards/landisk/gio.c +++ b/arch/sh/boards/landisk/gio.c | |||
@@ -69,7 +69,7 @@ static int gio_ioctl(struct inode *inode, struct file *filp, | |||
69 | } | 69 | } |
70 | 70 | ||
71 | switch (cmd) { | 71 | switch (cmd) { |
72 | case GIODRV_IOCSGIOSETADDR: /* addres set */ | 72 | case GIODRV_IOCSGIOSETADDR: /* address set */ |
73 | addr = data; | 73 | addr = data; |
74 | break; | 74 | break; |
75 | 75 | ||
diff --git a/arch/sh/boards/landisk/setup.c b/arch/sh/boards/landisk/setup.c index 4058b4f50d44..f953c7427769 100644 --- a/arch/sh/boards/landisk/setup.c +++ b/arch/sh/boards/landisk/setup.c | |||
@@ -44,8 +44,14 @@ static struct platform_device cf_ide_device = { | |||
44 | }, | 44 | }, |
45 | }; | 45 | }; |
46 | 46 | ||
47 | static struct platform_device rtc_device = { | ||
48 | .name = "rs5c313", | ||
49 | .id = -1, | ||
50 | }; | ||
51 | |||
47 | static struct platform_device *landisk_devices[] __initdata = { | 52 | static struct platform_device *landisk_devices[] __initdata = { |
48 | &cf_ide_device, | 53 | &cf_ide_device, |
54 | &rtc_device, | ||
49 | }; | 55 | }; |
50 | 56 | ||
51 | static int __init landisk_devices_setup(void) | 57 | static int __init landisk_devices_setup(void) |
diff --git a/arch/sh/boards/renesas/r7780rp/Makefile b/arch/sh/boards/renesas/r7780rp/Makefile index 609e5d50dde8..b1d20afb4eb3 100644 --- a/arch/sh/boards/renesas/r7780rp/Makefile +++ b/arch/sh/boards/renesas/r7780rp/Makefile | |||
@@ -3,5 +3,8 @@ | |||
3 | # | 3 | # |
4 | irqinit-y := irq-r7780rp.o | 4 | irqinit-y := irq-r7780rp.o |
5 | irqinit-$(CONFIG_SH_R7785RP) := irq-r7785rp.o | 5 | irqinit-$(CONFIG_SH_R7785RP) := irq-r7785rp.o |
6 | obj-y := setup.o irq.o $(irqinit-y) | ||
7 | |||
8 | ifneq ($(CONFIG_SH_R7785RP),y) | ||
6 | obj-$(CONFIG_PUSH_SWITCH) += psw.o | 9 | obj-$(CONFIG_PUSH_SWITCH) += psw.o |
7 | obj-y := setup.o irq.o $(irqinit-y) | 10 | endif |
diff --git a/arch/sh/boards/snapgear/rtc.c b/arch/sh/boards/snapgear/rtc.c index 1659fdd6695a..edb3dd936cbb 100644 --- a/arch/sh/boards/snapgear/rtc.c +++ b/arch/sh/boards/snapgear/rtc.c | |||
@@ -108,7 +108,7 @@ static void ds1302_writebyte(unsigned int addr, unsigned int val) | |||
108 | static void ds1302_reset(void) | 108 | static void ds1302_reset(void) |
109 | { | 109 | { |
110 | unsigned long flags; | 110 | unsigned long flags; |
111 | /* Hardware dependant reset/init */ | 111 | /* Hardware dependent reset/init */ |
112 | local_irq_save(flags); | 112 | local_irq_save(flags); |
113 | set_dirp(get_dirp() | RTC_RESET | RTC_IODATA | RTC_SCLK); | 113 | set_dirp(get_dirp() | RTC_RESET | RTC_IODATA | RTC_SCLK); |
114 | set_dp(get_dp() & ~(RTC_RESET | RTC_IODATA | RTC_SCLK)); | 114 | set_dp(get_dp() & ~(RTC_RESET | RTC_IODATA | RTC_SCLK)); |
diff --git a/arch/sh/boards/superh/microdev/io.c b/arch/sh/boards/superh/microdev/io.c index 83419bf4c834..b704e20d7e4d 100644 --- a/arch/sh/boards/superh/microdev/io.c +++ b/arch/sh/boards/superh/microdev/io.c | |||
@@ -198,12 +198,12 @@ void microdev_outb(unsigned char b, unsigned long port) | |||
198 | /* | 198 | /* |
199 | * There is a board feature with the current SH4-202 MicroDev in | 199 | * There is a board feature with the current SH4-202 MicroDev in |
200 | * that the 2 byte enables (nBE0 and nBE1) are tied together (and | 200 | * that the 2 byte enables (nBE0 and nBE1) are tied together (and |
201 | * to the Chip Select Line (Ethernet_CS)). Due to this conectivity, | 201 | * to the Chip Select Line (Ethernet_CS)). Due to this connectivity, |
202 | * it is not possible to safely perform 8-bit writes to the | 202 | * it is not possible to safely perform 8-bit writes to the |
203 | * Ethernet registers, as 16-bits will be consumed from the Data | 203 | * Ethernet registers, as 16-bits will be consumed from the Data |
204 | * lines (corrupting the other byte). Hence, this function is | 204 | * lines (corrupting the other byte). Hence, this function is |
205 | * written to impliment 16-bit read/modify/write for all byte-wide | 205 | * written to implement 16-bit read/modify/write for all byte-wide |
206 | * acceses. | 206 | * accesses. |
207 | * | 207 | * |
208 | * Note: there is no problem with byte READS (even or odd). | 208 | * Note: there is no problem with byte READS (even or odd). |
209 | * | 209 | * |
diff --git a/arch/sh/boards/superh/microdev/irq.c b/arch/sh/boards/superh/microdev/irq.c index 8c64baa30364..cc1cb04fa618 100644 --- a/arch/sh/boards/superh/microdev/irq.c +++ b/arch/sh/boards/superh/microdev/irq.c | |||
@@ -100,7 +100,7 @@ static void disable_microdev_irq(unsigned int irq) | |||
100 | 100 | ||
101 | fpgaIrq = fpgaIrqTable[irq].fpgaIrq; | 101 | fpgaIrq = fpgaIrqTable[irq].fpgaIrq; |
102 | 102 | ||
103 | /* disable interupts on the FPGA INTC register */ | 103 | /* disable interrupts on the FPGA INTC register */ |
104 | ctrl_outl(MICRODEV_FPGA_INTC_MASK(fpgaIrq), MICRODEV_FPGA_INTDSB_REG); | 104 | ctrl_outl(MICRODEV_FPGA_INTC_MASK(fpgaIrq), MICRODEV_FPGA_INTDSB_REG); |
105 | } | 105 | } |
106 | 106 | ||
@@ -125,7 +125,7 @@ static void enable_microdev_irq(unsigned int irq) | |||
125 | priorities |= MICRODEV_FPGA_INTPRI_LEVEL(fpgaIrq, pri); | 125 | priorities |= MICRODEV_FPGA_INTPRI_LEVEL(fpgaIrq, pri); |
126 | ctrl_outl(priorities, priorityReg); | 126 | ctrl_outl(priorities, priorityReg); |
127 | 127 | ||
128 | /* enable interupts on the FPGA INTC register */ | 128 | /* enable interrupts on the FPGA INTC register */ |
129 | ctrl_outl(MICRODEV_FPGA_INTC_MASK(fpgaIrq), MICRODEV_FPGA_INTENB_REG); | 129 | ctrl_outl(MICRODEV_FPGA_INTC_MASK(fpgaIrq), MICRODEV_FPGA_INTENB_REG); |
130 | } | 130 | } |
131 | 131 | ||
@@ -152,7 +152,7 @@ extern void __init init_microdev_irq(void) | |||
152 | { | 152 | { |
153 | int i; | 153 | int i; |
154 | 154 | ||
155 | /* disable interupts on the FPGA INTC register */ | 155 | /* disable interrupts on the FPGA INTC register */ |
156 | ctrl_outl(~0ul, MICRODEV_FPGA_INTDSB_REG); | 156 | ctrl_outl(~0ul, MICRODEV_FPGA_INTDSB_REG); |
157 | 157 | ||
158 | for (i = 0; i < NUM_EXTERNAL_IRQS; i++) | 158 | for (i = 0; i < NUM_EXTERNAL_IRQS; i++) |
diff --git a/arch/sh/boards/superh/microdev/setup.c b/arch/sh/boards/superh/microdev/setup.c index 031c814e6e76..6396cea1c896 100644 --- a/arch/sh/boards/superh/microdev/setup.c +++ b/arch/sh/boards/superh/microdev/setup.c | |||
@@ -349,7 +349,7 @@ static int __init smsc_superio_setup(void) | |||
349 | SMSC_WRITE_INDEXED(0x00, 0xc7); /* GP47 = nIOWOP */ | 349 | SMSC_WRITE_INDEXED(0x00, 0xc7); /* GP47 = nIOWOP */ |
350 | SMSC_WRITE_INDEXED(0x08, 0xe8); /* GP20 = nIDE2_OE */ | 350 | SMSC_WRITE_INDEXED(0x08, 0xe8); /* GP20 = nIDE2_OE */ |
351 | 351 | ||
352 | /* Exit the configuraton state */ | 352 | /* Exit the configuration state */ |
353 | outb(SMSC_EXIT_CONFIG_KEY, SMSC_CONFIG_PORT_ADDR); | 353 | outb(SMSC_EXIT_CONFIG_KEY, SMSC_CONFIG_PORT_ADDR); |
354 | 354 | ||
355 | return 0; | 355 | return 0; |
diff --git a/arch/sh/boards/unknown/setup.c b/arch/sh/boards/unknown/setup.c index 1c941370a2e3..bee4612de59b 100644 --- a/arch/sh/boards/unknown/setup.c +++ b/arch/sh/boards/unknown/setup.c | |||
@@ -6,7 +6,7 @@ | |||
6 | * May be copied or modified under the terms of the GNU General Public | 6 | * May be copied or modified under the terms of the GNU General Public |
7 | * License. See linux/COPYING for more information. | 7 | * License. See linux/COPYING for more information. |
8 | * | 8 | * |
9 | * Setup code for an unknown machine (internal peripherials only) | 9 | * Setup code for an unknown machine (internal peripherals only) |
10 | * | 10 | * |
11 | * This is the simplest of all boards, and serves only as a quick and dirty | 11 | * This is the simplest of all boards, and serves only as a quick and dirty |
12 | * method to start debugging a new board during bring-up until proper board | 12 | * method to start debugging a new board during bring-up until proper board |
diff --git a/arch/sh/drivers/dma/dma-api.c b/arch/sh/drivers/dma/dma-api.c index e062067edd24..8057a27a1bc6 100644 --- a/arch/sh/drivers/dma/dma-api.c +++ b/arch/sh/drivers/dma/dma-api.c | |||
@@ -115,7 +115,7 @@ static int search_cap(const char **haystack, const char *needle) | |||
115 | /** | 115 | /** |
116 | * request_dma_bycap - Allocate a DMA channel based on its capabilities | 116 | * request_dma_bycap - Allocate a DMA channel based on its capabilities |
117 | * @dmac: List of DMA controllers to search | 117 | * @dmac: List of DMA controllers to search |
118 | * @caps: List of capabilites | 118 | * @caps: List of capabilities |
119 | * | 119 | * |
120 | * Search all channels of all DMA controllers to find a channel which | 120 | * Search all channels of all DMA controllers to find a channel which |
121 | * matches the requested capabilities. The result is the channel | 121 | * matches the requested capabilities. The result is the channel |
diff --git a/arch/sh/drivers/dma/dma-isa.c b/arch/sh/drivers/dma/dma-isa.c index 05a74ffdb68d..5fb044b791c3 100644 --- a/arch/sh/drivers/dma/dma-isa.c +++ b/arch/sh/drivers/dma/dma-isa.c | |||
@@ -28,7 +28,7 @@ | |||
28 | * NOTE: ops->xfer() is the preferred way of doing things. However, there | 28 | * NOTE: ops->xfer() is the preferred way of doing things. However, there |
29 | * are some users of the ISA DMA API that exist in common code that we | 29 | * are some users of the ISA DMA API that exist in common code that we |
30 | * don't necessarily want to go out of our way to break, so we still | 30 | * don't necessarily want to go out of our way to break, so we still |
31 | * allow for some compatability at that level. Any new code is strongly | 31 | * allow for some compatibility at that level. Any new code is strongly |
32 | * advised to run far away from the ISA DMA API and use the SH DMA API | 32 | * advised to run far away from the ISA DMA API and use the SH DMA API |
33 | * directly. | 33 | * directly. |
34 | */ | 34 | */ |
diff --git a/arch/sh/drivers/dma/dmabrg.c b/arch/sh/drivers/dma/dmabrg.c index 9d0a29370f21..5e22689c2fcf 100644 --- a/arch/sh/drivers/dma/dmabrg.c +++ b/arch/sh/drivers/dma/dmabrg.c | |||
@@ -33,7 +33,7 @@ | |||
33 | * 9 | HAC1/SSI1 | rec | half done | DMABRGI2 | 33 | * 9 | HAC1/SSI1 | rec | half done | DMABRGI2 |
34 | * | 34 | * |
35 | * all can be enabled/disabled in the DMABRGCR register, | 35 | * all can be enabled/disabled in the DMABRGCR register, |
36 | * as well as checked if they occured. | 36 | * as well as checked if they occurred. |
37 | * | 37 | * |
38 | * DMABRGI0 services USB DMA Address errors, but it still must be | 38 | * DMABRGI0 services USB DMA Address errors, but it still must be |
39 | * enabled/acked in the DMABRGCR register. USB-DMA complete indicator | 39 | * enabled/acked in the DMABRGCR register. USB-DMA complete indicator |
diff --git a/arch/sh/drivers/pci/ops-dreamcast.c b/arch/sh/drivers/pci/ops-dreamcast.c index 381306cf5425..e1284fc69361 100644 --- a/arch/sh/drivers/pci/ops-dreamcast.c +++ b/arch/sh/drivers/pci/ops-dreamcast.c | |||
@@ -57,7 +57,7 @@ struct pci_channel board_pci_channels[] = { | |||
57 | * | 57 | * |
58 | * Also, we could very easily support both Type 0 and Type 1 configurations | 58 | * Also, we could very easily support both Type 0 and Type 1 configurations |
59 | * here, but since it doesn't seem that there is any such implementation in | 59 | * here, but since it doesn't seem that there is any such implementation in |
60 | * existance, we don't bother. | 60 | * existence, we don't bother. |
61 | * | 61 | * |
62 | * I suppose if someone actually gets around to ripping the chip out of | 62 | * I suppose if someone actually gets around to ripping the chip out of |
63 | * the BBA and hanging some more devices off of it, then this might be | 63 | * the BBA and hanging some more devices off of it, then this might be |
diff --git a/arch/sh/drivers/pci/pci-st40.c b/arch/sh/drivers/pci/pci-st40.c index d67656a44b15..543417ff8314 100644 --- a/arch/sh/drivers/pci/pci-st40.c +++ b/arch/sh/drivers/pci/pci-st40.c | |||
@@ -292,7 +292,7 @@ int __init st40pci_init(unsigned memStart, unsigned memSize) | |||
292 | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER | | 292 | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER | |
293 | PCI_COMMAND_IO); | 293 | PCI_COMMAND_IO); |
294 | 294 | ||
295 | /* Accesse to the 0xb0000000 -> 0xb6000000 area will go through to 0x10000000 -> 0x16000000 | 295 | /* Access to the 0xb0000000 -> 0xb6000000 area will go through to 0x10000000 -> 0x16000000 |
296 | * on the PCI bus. This allows a nice 1-1 bus to phys mapping. | 296 | * on the PCI bus. This allows a nice 1-1 bus to phys mapping. |
297 | */ | 297 | */ |
298 | 298 | ||
@@ -315,7 +315,7 @@ int __init st40pci_init(unsigned memStart, unsigned memSize) | |||
315 | ST40PCI_WRITE(CSR_MBAR0, 0); | 315 | ST40PCI_WRITE(CSR_MBAR0, 0); |
316 | ST40PCI_WRITE(LSR0, 0x0fff0001); | 316 | ST40PCI_WRITE(LSR0, 0x0fff0001); |
317 | 317 | ||
318 | /* ... and set up the initial incomming window to expose all of RAM */ | 318 | /* ... and set up the initial incoming window to expose all of RAM */ |
319 | pci_set_rbar_region(7, memStart, memStart, memSize); | 319 | pci_set_rbar_region(7, memStart, memStart, memSize); |
320 | 320 | ||
321 | /* Maximise timeout values */ | 321 | /* Maximise timeout values */ |
@@ -473,7 +473,7 @@ static void pci_set_rbar_region(unsigned int region, unsigned long localAddr | |||
473 | 473 | ||
474 | mask = r2p2(regionSize) - 0x10000; | 474 | mask = r2p2(regionSize) - 0x10000; |
475 | 475 | ||
476 | /* Diable the region (in case currently in use, should never happen) */ | 476 | /* Disable the region (in case currently in use, should never happen) */ |
477 | ST40PCI_WRITE_INDEXED(RSR, region, 0); | 477 | ST40PCI_WRITE_INDEXED(RSR, region, 0); |
478 | 478 | ||
479 | /* Start of local address space to publish */ | 479 | /* Start of local address space to publish */ |
diff --git a/arch/sh/drivers/pci/pci-st40.h b/arch/sh/drivers/pci/pci-st40.h index d729e0c2d5fe..cf0d35bd135c 100644 --- a/arch/sh/drivers/pci/pci-st40.h +++ b/arch/sh/drivers/pci/pci-st40.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * May be copied or modified under the terms of the GNU General Public | 4 | * May be copied or modified under the terms of the GNU General Public |
5 | * License. See linux/COPYING for more information. | 5 | * License. See linux/COPYING for more information. |
6 | * | 6 | * |
7 | * Defintions for the ST40 PCI hardware. | 7 | * Definitions for the ST40 PCI hardware. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #ifndef __PCI_ST40_H__ | 10 | #ifndef __PCI_ST40_H__ |
diff --git a/arch/sh/drivers/superhyway/ops-sh4-202.c b/arch/sh/drivers/superhyway/ops-sh4-202.c index a55c98a9052b..3b14bf860db6 100644 --- a/arch/sh/drivers/superhyway/ops-sh4-202.c +++ b/arch/sh/drivers/superhyway/ops-sh4-202.c | |||
@@ -130,7 +130,7 @@ static int sh4202_read_vcr(unsigned long base, struct superhyway_vcr_info *vcr) | |||
130 | * Some modules (PBR and ePBR for instance) also appear to have | 130 | * Some modules (PBR and ePBR for instance) also appear to have |
131 | * VCRL/VCRH flipped in the documentation, but on the SH4-202 | 131 | * VCRL/VCRH flipped in the documentation, but on the SH4-202 |
132 | * itself it appears that these are all consistently mapped with | 132 | * itself it appears that these are all consistently mapped with |
133 | * VCRH preceeding VCRL. | 133 | * VCRH preceding VCRL. |
134 | * | 134 | * |
135 | * Do not trust the documentation, for it is evil. | 135 | * Do not trust the documentation, for it is evil. |
136 | */ | 136 | */ |
diff --git a/arch/sh/kernel/cf-enabler.c b/arch/sh/kernel/cf-enabler.c index 0758d48147a0..849a9e191391 100644 --- a/arch/sh/kernel/cf-enabler.c +++ b/arch/sh/kernel/cf-enabler.c | |||
@@ -31,7 +31,7 @@ | |||
31 | */ | 31 | */ |
32 | #if defined(CONFIG_CPU_SH4) | 32 | #if defined(CONFIG_CPU_SH4) |
33 | /* SH4 can't access PCMCIA interface through P2 area. | 33 | /* SH4 can't access PCMCIA interface through P2 area. |
34 | * we must remap it with appropreate attribute bit of the page set. | 34 | * we must remap it with appropriate attribute bit of the page set. |
35 | * this part is based on Greg Banks' hd64465_ss.c implementation - Masahiro Abe */ | 35 | * this part is based on Greg Banks' hd64465_ss.c implementation - Masahiro Abe */ |
36 | 36 | ||
37 | #if defined(CONFIG_CF_AREA6) | 37 | #if defined(CONFIG_CF_AREA6) |
diff --git a/arch/sh/kernel/cpu/clock.c b/arch/sh/kernel/cpu/clock.c index 014f318f5a05..63251549e9a8 100644 --- a/arch/sh/kernel/cpu/clock.c +++ b/arch/sh/kernel/cpu/clock.c | |||
@@ -278,6 +278,11 @@ arch_init_clk_ops(struct clk_ops **ops, int type) | |||
278 | { | 278 | { |
279 | } | 279 | } |
280 | 280 | ||
281 | void __init __attribute__ ((weak)) | ||
282 | arch_clk_init(void) | ||
283 | { | ||
284 | } | ||
285 | |||
281 | static int show_clocks(char *buf, char **start, off_t off, | 286 | static int show_clocks(char *buf, char **start, off_t off, |
282 | int len, int *eof, void *data) | 287 | int len, int *eof, void *data) |
283 | { | 288 | { |
@@ -314,6 +319,8 @@ int __init clk_init(void) | |||
314 | ret |= clk_register(clk); | 319 | ret |= clk_register(clk); |
315 | } | 320 | } |
316 | 321 | ||
322 | arch_clk_init(); | ||
323 | |||
317 | /* Kick the child clocks.. */ | 324 | /* Kick the child clocks.. */ |
318 | propagate_rate(&master_clk); | 325 | propagate_rate(&master_clk); |
319 | propagate_rate(&bus_clk); | 326 | propagate_rate(&bus_clk); |
diff --git a/arch/sh/kernel/cpu/irq/maskreg.c b/arch/sh/kernel/cpu/irq/maskreg.c index 492db31b3cab..978992e367a5 100644 --- a/arch/sh/kernel/cpu/irq/maskreg.c +++ b/arch/sh/kernel/cpu/irq/maskreg.c | |||
@@ -38,7 +38,7 @@ static struct hw_interrupt_type maskreg_irq_type = { | |||
38 | .end = end_maskreg_irq | 38 | .end = end_maskreg_irq |
39 | }; | 39 | }; |
40 | 40 | ||
41 | /* actual implementatin */ | 41 | /* actual implementation */ |
42 | static unsigned int startup_maskreg_irq(unsigned int irq) | 42 | static unsigned int startup_maskreg_irq(unsigned int irq) |
43 | { | 43 | { |
44 | enable_maskreg_irq(irq); | 44 | enable_maskreg_irq(irq); |
diff --git a/arch/sh/kernel/cpu/sh4/fpu.c b/arch/sh/kernel/cpu/sh4/fpu.c index d61dd599169f..c5a4fc77fa06 100644 --- a/arch/sh/kernel/cpu/sh4/fpu.c +++ b/arch/sh/kernel/cpu/sh4/fpu.c | |||
@@ -138,7 +138,7 @@ restore_fpu(struct task_struct *tsk) | |||
138 | /* | 138 | /* |
139 | * Load the FPU with signalling NANS. This bit pattern we're using | 139 | * Load the FPU with signalling NANS. This bit pattern we're using |
140 | * has the property that no matter wether considered as single or as | 140 | * has the property that no matter wether considered as single or as |
141 | * double precission represents signaling NANS. | 141 | * double precision represents signaling NANS. |
142 | */ | 142 | */ |
143 | 143 | ||
144 | static void | 144 | static void |
diff --git a/arch/sh/kernel/cpu/sh4/setup-sh7750.c b/arch/sh/kernel/cpu/sh4/setup-sh7750.c index 6f8f458912c7..03b14cf78ddf 100644 --- a/arch/sh/kernel/cpu/sh4/setup-sh7750.c +++ b/arch/sh/kernel/cpu/sh4/setup-sh7750.c | |||
@@ -106,6 +106,7 @@ static struct ipr_data sh7750_ipr_map[] = { | |||
106 | { 38, 2, 8, 7 }, /* DMAC DMAE */ | 106 | { 38, 2, 8, 7 }, /* DMAC DMAE */ |
107 | }; | 107 | }; |
108 | 108 | ||
109 | #ifdef CONFIG_CPU_SUBTYPE_SH7751 | ||
109 | static struct ipr_data sh7751_ipr_map[] = { | 110 | static struct ipr_data sh7751_ipr_map[] = { |
110 | { 44, 2, 8, 7 }, /* DMAC DMTE4 */ | 111 | { 44, 2, 8, 7 }, /* DMAC DMTE4 */ |
111 | { 45, 2, 8, 7 }, /* DMAC DMTE5 */ | 112 | { 45, 2, 8, 7 }, /* DMAC DMTE5 */ |
@@ -117,6 +118,7 @@ static struct ipr_data sh7751_ipr_map[] = { | |||
117 | /*{ 72, INTPRI00, 8, ? },*/ /* TMU3 TUNI */ | 118 | /*{ 72, INTPRI00, 8, ? },*/ /* TMU3 TUNI */ |
118 | /*{ 76, INTPRI00, 12, ? },*/ /* TMU4 TUNI */ | 119 | /*{ 76, INTPRI00, 12, ? },*/ /* TMU4 TUNI */ |
119 | }; | 120 | }; |
121 | #endif | ||
120 | 122 | ||
121 | static unsigned long ipr_offsets[] = { | 123 | static unsigned long ipr_offsets[] = { |
122 | 0xffd00004UL, /* 0: IPRA */ | 124 | 0xffd00004UL, /* 0: IPRA */ |
diff --git a/arch/sh/kernel/cpu/sh4a/clock-sh7722.c b/arch/sh/kernel/cpu/sh4a/clock-sh7722.c index 29090035bc5b..51b386d454de 100644 --- a/arch/sh/kernel/cpu/sh4a/clock-sh7722.c +++ b/arch/sh/kernel/cpu/sh4a/clock-sh7722.c | |||
@@ -17,7 +17,6 @@ | |||
17 | #include <asm/clock.h> | 17 | #include <asm/clock.h> |
18 | #include <asm/freq.h> | 18 | #include <asm/freq.h> |
19 | 19 | ||
20 | #define SH7722_PLL_FREQ (32000000/8) | ||
21 | #define N (-1) | 20 | #define N (-1) |
22 | #define NM (-2) | 21 | #define NM (-2) |
23 | #define ROUND_NEAREST 0 | 22 | #define ROUND_NEAREST 0 |
@@ -141,28 +140,36 @@ static void adjust_clocks(int originate, int *l, unsigned long v[], | |||
141 | */ | 140 | */ |
142 | static int divisors2[] = { 2, 3, 4, 5, 6, 8, 10, 12, 16, 20, 24, 32, 40 }; | 141 | static int divisors2[] = { 2, 3, 4, 5, 6, 8, 10, 12, 16, 20, 24, 32, 40 }; |
143 | 142 | ||
143 | static void master_clk_recalc(struct clk *clk) | ||
144 | { | ||
145 | unsigned frqcr = ctrl_inl(FRQCR); | ||
146 | |||
147 | clk->rate = CONFIG_SH_PCLK_FREQ * (((frqcr >> 24) & 0x1f) + 1); | ||
148 | } | ||
149 | |||
144 | static void master_clk_init(struct clk *clk) | 150 | static void master_clk_init(struct clk *clk) |
145 | { | 151 | { |
146 | clk_set_rate(clk, clk_get_rate(clk)); | 152 | clk->parent = NULL; |
153 | clk->flags |= CLK_RATE_PROPAGATES; | ||
154 | clk->rate = CONFIG_SH_PCLK_FREQ; | ||
155 | master_clk_recalc(clk); | ||
147 | } | 156 | } |
148 | 157 | ||
149 | static void master_clk_recalc(struct clk *clk) | 158 | |
159 | static void module_clk_recalc(struct clk *clk) | ||
150 | { | 160 | { |
151 | unsigned long frqcr = ctrl_inl(FRQCR); | 161 | unsigned long frqcr = ctrl_inl(FRQCR); |
152 | 162 | ||
153 | clk->rate = CONFIG_SH_PCLK_FREQ * (1 + (frqcr >> 24 & 0xF)); | 163 | clk->rate = clk->parent->rate / (((frqcr >> 24) & 0x1f) + 1); |
154 | } | 164 | } |
155 | 165 | ||
156 | static int master_clk_setrate(struct clk *clk, unsigned long rate, int id) | 166 | static int master_clk_setrate(struct clk *clk, unsigned long rate, int id) |
157 | { | 167 | { |
158 | int div = rate / SH7722_PLL_FREQ; | 168 | int div = rate / clk->rate; |
159 | int master_divs[] = { 2, 3, 4, 6, 8, 16 }; | 169 | int master_divs[] = { 2, 3, 4, 6, 8, 16 }; |
160 | int index; | 170 | int index; |
161 | unsigned long frqcr; | 171 | unsigned long frqcr; |
162 | 172 | ||
163 | if (rate < SH7722_PLL_FREQ * 2) | ||
164 | return -EINVAL; | ||
165 | |||
166 | for (index = 1; index < ARRAY_SIZE(master_divs); index++) | 173 | for (index = 1; index < ARRAY_SIZE(master_divs); index++) |
167 | if (div >= master_divs[index - 1] && div < master_divs[index]) | 174 | if (div >= master_divs[index - 1] && div < master_divs[index]) |
168 | break; | 175 | break; |
@@ -185,6 +192,10 @@ static struct clk_ops sh7722_master_clk_ops = { | |||
185 | .set_rate = master_clk_setrate, | 192 | .set_rate = master_clk_setrate, |
186 | }; | 193 | }; |
187 | 194 | ||
195 | static struct clk_ops sh7722_module_clk_ops = { | ||
196 | .recalc = module_clk_recalc, | ||
197 | }; | ||
198 | |||
188 | struct frqcr_context { | 199 | struct frqcr_context { |
189 | unsigned mask; | 200 | unsigned mask; |
190 | unsigned shift; | 201 | unsigned shift; |
@@ -489,7 +500,7 @@ static void sh7722_siu_recalc(struct clk *clk) | |||
489 | 500 | ||
490 | if (siu < 0) | 501 | if (siu < 0) |
491 | return /* siu */ ; | 502 | return /* siu */ ; |
492 | BUG_ON(siu > 1); | 503 | BUG_ON(siu > 2); |
493 | r = ctrl_inl(sh7722_siu_regs[siu]); | 504 | r = ctrl_inl(sh7722_siu_regs[siu]); |
494 | clk->rate = clk->parent->rate * 2 / divisors2[r & 0xF]; | 505 | clk->rate = clk->parent->rate * 2 / divisors2[r & 0xF]; |
495 | } | 506 | } |
@@ -571,7 +582,7 @@ static struct clk *sh7722_clocks[] = { | |||
571 | */ | 582 | */ |
572 | struct clk_ops *onchip_ops[] = { | 583 | struct clk_ops *onchip_ops[] = { |
573 | &sh7722_master_clk_ops, | 584 | &sh7722_master_clk_ops, |
574 | &sh7722_frqcr_clk_ops, | 585 | &sh7722_module_clk_ops, |
575 | &sh7722_frqcr_clk_ops, | 586 | &sh7722_frqcr_clk_ops, |
576 | &sh7722_frqcr_clk_ops, | 587 | &sh7722_frqcr_clk_ops, |
577 | }; | 588 | }; |
@@ -583,7 +594,7 @@ arch_init_clk_ops(struct clk_ops **ops, int type) | |||
583 | *ops = onchip_ops[type]; | 594 | *ops = onchip_ops[type]; |
584 | } | 595 | } |
585 | 596 | ||
586 | int __init sh7722_clock_init(void) | 597 | int __init arch_clk_init(void) |
587 | { | 598 | { |
588 | struct clk *master; | 599 | struct clk *master; |
589 | int i; | 600 | int i; |
@@ -597,4 +608,3 @@ int __init sh7722_clock_init(void) | |||
597 | clk_put(master); | 608 | clk_put(master); |
598 | return 0; | 609 | return 0; |
599 | } | 610 | } |
600 | arch_initcall(sh7722_clock_init); | ||
diff --git a/arch/sh/kernel/kgdb_stub.c b/arch/sh/kernel/kgdb_stub.c index a5323364cbca..edd1ec214e6d 100644 --- a/arch/sh/kernel/kgdb_stub.c +++ b/arch/sh/kernel/kgdb_stub.c | |||
@@ -2,7 +2,7 @@ | |||
2 | * May be copied or modified under the terms of the GNU General Public | 2 | * May be copied or modified under the terms of the GNU General Public |
3 | * License. See linux/COPYING for more information. | 3 | * License. See linux/COPYING for more information. |
4 | * | 4 | * |
5 | * Containes extracts from code by Glenn Engel, Jim Kingdon, | 5 | * Contains extracts from code by Glenn Engel, Jim Kingdon, |
6 | * David Grothe <dave@gcom.com>, Tigran Aivazian <tigran@sco.com>, | 6 | * David Grothe <dave@gcom.com>, Tigran Aivazian <tigran@sco.com>, |
7 | * Amit S. Kale <akale@veritas.com>, William Gatliff <bgat@open-widgets.com>, | 7 | * Amit S. Kale <akale@veritas.com>, William Gatliff <bgat@open-widgets.com>, |
8 | * Ben Lee, Steve Chamberlain and Benoit Miller <fulg@iname.com>. | 8 | * Ben Lee, Steve Chamberlain and Benoit Miller <fulg@iname.com>. |
@@ -85,7 +85,7 @@ | |||
85 | * | 85 | * |
86 | * Responses can be run-length encoded to save space. A '*' means that | 86 | * Responses can be run-length encoded to save space. A '*' means that |
87 | * the next character is an ASCII encoding giving a repeat count which | 87 | * the next character is an ASCII encoding giving a repeat count which |
88 | * stands for that many repititions of the character preceding the '*'. | 88 | * stands for that many repetitions of the character preceding the '*'. |
89 | * The encoding is n+29, yielding a printable character where n >=3 | 89 | * The encoding is n+29, yielding a printable character where n >=3 |
90 | * (which is where RLE starts to win). Don't use an n > 126. | 90 | * (which is where RLE starts to win). Don't use an n > 126. |
91 | * | 91 | * |
diff --git a/arch/sh/kernel/process.c b/arch/sh/kernel/process.c index 6b4f5748d0be..a11e2aa73cbc 100644 --- a/arch/sh/kernel/process.c +++ b/arch/sh/kernel/process.c | |||
@@ -26,8 +26,6 @@ | |||
26 | static int hlt_counter; | 26 | static int hlt_counter; |
27 | int ubc_usercnt = 0; | 27 | int ubc_usercnt = 0; |
28 | 28 | ||
29 | #define HARD_IDLE_TIMEOUT (HZ / 3) | ||
30 | |||
31 | void (*pm_idle)(void); | 29 | void (*pm_idle)(void); |
32 | void (*pm_power_off)(void); | 30 | void (*pm_power_off)(void); |
33 | EXPORT_SYMBOL(pm_power_off); | 31 | EXPORT_SYMBOL(pm_power_off); |
@@ -44,16 +42,39 @@ void enable_hlt(void) | |||
44 | } | 42 | } |
45 | EXPORT_SYMBOL(enable_hlt); | 43 | EXPORT_SYMBOL(enable_hlt); |
46 | 44 | ||
45 | static int __init nohlt_setup(char *__unused) | ||
46 | { | ||
47 | hlt_counter = 1; | ||
48 | return 1; | ||
49 | } | ||
50 | __setup("nohlt", nohlt_setup); | ||
51 | |||
52 | static int __init hlt_setup(char *__unused) | ||
53 | { | ||
54 | hlt_counter = 0; | ||
55 | return 1; | ||
56 | } | ||
57 | __setup("hlt", hlt_setup); | ||
58 | |||
47 | void default_idle(void) | 59 | void default_idle(void) |
48 | { | 60 | { |
49 | if (!hlt_counter) | 61 | if (!hlt_counter) { |
50 | cpu_sleep(); | 62 | clear_thread_flag(TIF_POLLING_NRFLAG); |
51 | else | 63 | smp_mb__after_clear_bit(); |
52 | cpu_relax(); | 64 | set_bl_bit(); |
65 | while (!need_resched()) | ||
66 | cpu_sleep(); | ||
67 | clear_bl_bit(); | ||
68 | set_thread_flag(TIF_POLLING_NRFLAG); | ||
69 | } else | ||
70 | while (!need_resched()) | ||
71 | cpu_relax(); | ||
53 | } | 72 | } |
54 | 73 | ||
55 | void cpu_idle(void) | 74 | void cpu_idle(void) |
56 | { | 75 | { |
76 | set_thread_flag(TIF_POLLING_NRFLAG); | ||
77 | |||
57 | /* endless idle loop with no priority at all */ | 78 | /* endless idle loop with no priority at all */ |
58 | while (1) { | 79 | while (1) { |
59 | void (*idle)(void) = pm_idle; | 80 | void (*idle)(void) = pm_idle; |
diff --git a/arch/sh/kernel/syscalls.S b/arch/sh/kernel/syscalls.S index 4357d1a6358f..7db1c2dc5992 100644 --- a/arch/sh/kernel/syscalls.S +++ b/arch/sh/kernel/syscalls.S | |||
@@ -355,3 +355,6 @@ ENTRY(sys_call_table) | |||
355 | .long sys_getcpu | 355 | .long sys_getcpu |
356 | .long sys_epoll_pwait | 356 | .long sys_epoll_pwait |
357 | .long sys_utimensat /* 320 */ | 357 | .long sys_utimensat /* 320 */ |
358 | .long sys_signalfd | ||
359 | .long sys_timerfd | ||
360 | .long sys_eventfd | ||
diff --git a/arch/sh/kernel/traps.c b/arch/sh/kernel/traps.c index 3a197649cd83..5b75cb6f8f9b 100644 --- a/arch/sh/kernel/traps.c +++ b/arch/sh/kernel/traps.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <linux/bug.h> | 21 | #include <linux/bug.h> |
22 | #include <linux/debug_locks.h> | 22 | #include <linux/debug_locks.h> |
23 | #include <linux/kdebug.h> | 23 | #include <linux/kdebug.h> |
24 | #include <linux/kexec.h> | ||
24 | #include <linux/limits.h> | 25 | #include <linux/limits.h> |
25 | #include <asm/system.h> | 26 | #include <asm/system.h> |
26 | #include <asm/uaccess.h> | 27 | #include <asm/uaccess.h> |
@@ -101,6 +102,16 @@ void die(const char * str, struct pt_regs * regs, long err) | |||
101 | 102 | ||
102 | bust_spinlocks(0); | 103 | bust_spinlocks(0); |
103 | spin_unlock_irq(&die_lock); | 104 | spin_unlock_irq(&die_lock); |
105 | |||
106 | if (kexec_should_crash(current)) | ||
107 | crash_kexec(regs); | ||
108 | |||
109 | if (in_interrupt()) | ||
110 | panic("Fatal exception in interrupt"); | ||
111 | |||
112 | if (panic_on_oops) | ||
113 | panic("Fatal exception"); | ||
114 | |||
104 | do_exit(SIGSEGV); | 115 | do_exit(SIGSEGV); |
105 | } | 116 | } |
106 | 117 | ||
@@ -513,7 +524,7 @@ static int handle_unaligned_access(u16 instruction, struct pt_regs *regs) | |||
513 | * misaligned data access | 524 | * misaligned data access |
514 | * access to >= 0x80000000 is user mode | 525 | * access to >= 0x80000000 is user mode |
515 | * Unfortuntaly we can't distinguish between instruction address error | 526 | * Unfortuntaly we can't distinguish between instruction address error |
516 | * and data address errors caused by read acceses. | 527 | * and data address errors caused by read accesses. |
517 | */ | 528 | */ |
518 | asmlinkage void do_address_error(struct pt_regs *regs, | 529 | asmlinkage void do_address_error(struct pt_regs *regs, |
519 | unsigned long writeaccess, | 530 | unsigned long writeaccess, |
diff --git a/arch/sh/kernel/vmlinux.lds.S b/arch/sh/kernel/vmlinux.lds.S index d83143cc5ca9..4c5b57e9c3c1 100644 --- a/arch/sh/kernel/vmlinux.lds.S +++ b/arch/sh/kernel/vmlinux.lds.S | |||
@@ -22,7 +22,7 @@ SECTIONS | |||
22 | *(.empty_zero_page) | 22 | *(.empty_zero_page) |
23 | } = 0 | 23 | } = 0 |
24 | .text : { | 24 | .text : { |
25 | *(.text) | 25 | TEXT_TEXT |
26 | SCHED_TEXT | 26 | SCHED_TEXT |
27 | LOCK_TEXT | 27 | LOCK_TEXT |
28 | *(.fixup) | 28 | *(.fixup) |
@@ -41,7 +41,7 @@ SECTIONS | |||
41 | BUG_TABLE | 41 | BUG_TABLE |
42 | 42 | ||
43 | .data : { /* Data */ | 43 | .data : { /* Data */ |
44 | *(.data) | 44 | DATA_DATA |
45 | 45 | ||
46 | /* Align the initial ramdisk image (INITRD) on page boundaries. */ | 46 | /* Align the initial ramdisk image (INITRD) on page boundaries. */ |
47 | . = ALIGN(PAGE_SIZE); | 47 | . = ALIGN(PAGE_SIZE); |
diff --git a/arch/sh/math-emu/math.c b/arch/sh/math-emu/math.c index 1efbac15ff4e..a38e1eed9e77 100644 --- a/arch/sh/math-emu/math.c +++ b/arch/sh/math-emu/math.c | |||
@@ -148,7 +148,7 @@ fmac(struct sh_fpu_soft_struct *fregs, struct pt_regs *regs, int m, int n) | |||
148 | return 0; | 148 | return 0; |
149 | } | 149 | } |
150 | 150 | ||
151 | // to process fmov's extention (odd n for DR access XD). | 151 | // to process fmov's extension (odd n for DR access XD). |
152 | #define FMOV_EXT(x) if(x&1) x+=16-1 | 152 | #define FMOV_EXT(x) if(x&1) x+=16-1 |
153 | 153 | ||
154 | static int | 154 | static int |
diff --git a/arch/sh/mm/copy_page.S b/arch/sh/mm/copy_page.S index 397c94c97315..ae039f2da162 100644 --- a/arch/sh/mm/copy_page.S +++ b/arch/sh/mm/copy_page.S | |||
@@ -129,6 +129,7 @@ ENTRY(__copy_user_page) | |||
129 | rts | 129 | rts |
130 | nop | 130 | nop |
131 | #endif | 131 | #endif |
132 | .align 2 | ||
132 | .Lpsz: .long PAGE_SIZE | 133 | .Lpsz: .long PAGE_SIZE |
133 | /* | 134 | /* |
134 | * __kernel_size_t __copy_user(void *to, const void *from, __kernel_size_t n); | 135 | * __kernel_size_t __copy_user(void *to, const void *from, __kernel_size_t n); |
diff --git a/arch/sh/mm/fault.c b/arch/sh/mm/fault.c index 9207da67ff8a..c878faa4ae46 100644 --- a/arch/sh/mm/fault.c +++ b/arch/sh/mm/fault.c | |||
@@ -15,43 +15,11 @@ | |||
15 | #include <linux/mm.h> | 15 | #include <linux/mm.h> |
16 | #include <linux/hardirq.h> | 16 | #include <linux/hardirq.h> |
17 | #include <linux/kprobes.h> | 17 | #include <linux/kprobes.h> |
18 | #include <linux/kdebug.h> | ||
19 | #include <asm/system.h> | 18 | #include <asm/system.h> |
20 | #include <asm/mmu_context.h> | 19 | #include <asm/mmu_context.h> |
21 | #include <asm/tlbflush.h> | 20 | #include <asm/tlbflush.h> |
22 | #include <asm/kgdb.h> | 21 | #include <asm/kgdb.h> |
23 | 22 | ||
24 | #ifdef CONFIG_KPROBES | ||
25 | ATOMIC_NOTIFIER_HEAD(notify_page_fault_chain); | ||
26 | |||
27 | /* Hook to register for page fault notifications */ | ||
28 | int register_page_fault_notifier(struct notifier_block *nb) | ||
29 | { | ||
30 | return atomic_notifier_chain_register(¬ify_page_fault_chain, nb); | ||
31 | } | ||
32 | |||
33 | int unregister_page_fault_notifier(struct notifier_block *nb) | ||
34 | { | ||
35 | return atomic_notifier_chain_unregister(¬ify_page_fault_chain, nb); | ||
36 | } | ||
37 | |||
38 | static inline int notify_page_fault(enum die_val val, struct pt_regs *regs, | ||
39 | int trap, int sig) | ||
40 | { | ||
41 | struct die_args args = { | ||
42 | .regs = regs, | ||
43 | .trapnr = trap, | ||
44 | }; | ||
45 | return atomic_notifier_call_chain(¬ify_page_fault_chain, val, &args); | ||
46 | } | ||
47 | #else | ||
48 | static inline int notify_page_fault(enum die_val val, struct pt_regs *regs, | ||
49 | int trap, int sig) | ||
50 | { | ||
51 | return NOTIFY_DONE; | ||
52 | } | ||
53 | #endif | ||
54 | |||
55 | /* | 23 | /* |
56 | * This routine handles page faults. It determines the address, | 24 | * This routine handles page faults. It determines the address, |
57 | * and the problem, and then passes it off to one of the appropriate | 25 | * and the problem, and then passes it off to one of the appropriate |
@@ -69,11 +37,6 @@ asmlinkage void __kprobes do_page_fault(struct pt_regs *regs, | |||
69 | siginfo_t info; | 37 | siginfo_t info; |
70 | 38 | ||
71 | trace_hardirqs_on(); | 39 | trace_hardirqs_on(); |
72 | |||
73 | if (notify_page_fault(DIE_PAGE_FAULT, regs, | ||
74 | writeaccess, SIGSEGV) == NOTIFY_STOP) | ||
75 | return; | ||
76 | |||
77 | local_irq_enable(); | 40 | local_irq_enable(); |
78 | 41 | ||
79 | #ifdef CONFIG_SH_KGDB | 42 | #ifdef CONFIG_SH_KGDB |
@@ -285,7 +248,7 @@ asmlinkage int __kprobes __do_page_fault(struct pt_regs *regs, | |||
285 | pte_t *pte; | 248 | pte_t *pte; |
286 | pte_t entry; | 249 | pte_t entry; |
287 | struct mm_struct *mm = current->mm; | 250 | struct mm_struct *mm = current->mm; |
288 | spinlock_t *ptl; | 251 | spinlock_t *ptl = NULL; |
289 | int ret = 1; | 252 | int ret = 1; |
290 | 253 | ||
291 | #ifdef CONFIG_SH_KGDB | 254 | #ifdef CONFIG_SH_KGDB |
diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c index 8fe223a890ed..e0e644ff3204 100644 --- a/arch/sh/mm/init.c +++ b/arch/sh/mm/init.c | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/bootmem.h> | 13 | #include <linux/bootmem.h> |
14 | #include <linux/proc_fs.h> | 14 | #include <linux/proc_fs.h> |
15 | #include <linux/pagemap.h> | ||
15 | #include <linux/percpu.h> | 16 | #include <linux/percpu.h> |
16 | #include <linux/io.h> | 17 | #include <linux/io.h> |
17 | #include <asm/mmu_context.h> | 18 | #include <asm/mmu_context.h> |
@@ -112,7 +113,7 @@ static void set_pte_phys(unsigned long addr, unsigned long phys, pgprot_t prot) | |||
112 | * As a performance optimization, other platforms preserve the fixmap mapping | 113 | * As a performance optimization, other platforms preserve the fixmap mapping |
113 | * across a context switch, we don't presently do this, but this could be done | 114 | * across a context switch, we don't presently do this, but this could be done |
114 | * in a similar fashion as to the wired TLB interface that sh64 uses (by way | 115 | * in a similar fashion as to the wired TLB interface that sh64 uses (by way |
115 | * of the memorry mapped UTLB configuration) -- this unfortunately forces us to | 116 | * of the memory mapped UTLB configuration) -- this unfortunately forces us to |
116 | * give up a TLB entry for each mapping we want to preserve. While this may be | 117 | * give up a TLB entry for each mapping we want to preserve. While this may be |
117 | * viable for a small number of fixmaps, it's not particularly useful for | 118 | * viable for a small number of fixmaps, it's not particularly useful for |
118 | * everything and needs to be carefully evaluated. (ie, we may want this for | 119 | * everything and needs to be carefully evaluated. (ie, we may want this for |
diff --git a/arch/sh/mm/pmb.c b/arch/sh/mm/pmb.c index 02aae06527dc..b6a5a338145b 100644 --- a/arch/sh/mm/pmb.c +++ b/arch/sh/mm/pmb.c | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * Privileged Space Mapping Buffer (PMB) Support. | 4 | * Privileged Space Mapping Buffer (PMB) Support. |
5 | * | 5 | * |
6 | * Copyright (C) 2005, 2006 Paul Mundt | 6 | * Copyright (C) 2005, 2006, 2007 Paul Mundt |
7 | * | 7 | * |
8 | * P1/P2 Section mapping definitions from map32.h, which was: | 8 | * P1/P2 Section mapping definitions from map32.h, which was: |
9 | * | 9 | * |
@@ -68,6 +68,32 @@ static inline unsigned long mk_pmb_data(unsigned int entry) | |||
68 | return mk_pmb_entry(entry) | PMB_DATA; | 68 | return mk_pmb_entry(entry) | PMB_DATA; |
69 | } | 69 | } |
70 | 70 | ||
71 | static DEFINE_SPINLOCK(pmb_list_lock); | ||
72 | static struct pmb_entry *pmb_list; | ||
73 | |||
74 | static inline void pmb_list_add(struct pmb_entry *pmbe) | ||
75 | { | ||
76 | struct pmb_entry **p, *tmp; | ||
77 | |||
78 | p = &pmb_list; | ||
79 | while ((tmp = *p) != NULL) | ||
80 | p = &tmp->next; | ||
81 | |||
82 | pmbe->next = tmp; | ||
83 | *p = pmbe; | ||
84 | } | ||
85 | |||
86 | static inline void pmb_list_del(struct pmb_entry *pmbe) | ||
87 | { | ||
88 | struct pmb_entry **p, *tmp; | ||
89 | |||
90 | for (p = &pmb_list; (tmp = *p); p = &tmp->next) | ||
91 | if (tmp == pmbe) { | ||
92 | *p = tmp->next; | ||
93 | return; | ||
94 | } | ||
95 | } | ||
96 | |||
71 | struct pmb_entry *pmb_alloc(unsigned long vpn, unsigned long ppn, | 97 | struct pmb_entry *pmb_alloc(unsigned long vpn, unsigned long ppn, |
72 | unsigned long flags) | 98 | unsigned long flags) |
73 | { | 99 | { |
@@ -81,11 +107,19 @@ struct pmb_entry *pmb_alloc(unsigned long vpn, unsigned long ppn, | |||
81 | pmbe->ppn = ppn; | 107 | pmbe->ppn = ppn; |
82 | pmbe->flags = flags; | 108 | pmbe->flags = flags; |
83 | 109 | ||
110 | spin_lock_irq(&pmb_list_lock); | ||
111 | pmb_list_add(pmbe); | ||
112 | spin_unlock_irq(&pmb_list_lock); | ||
113 | |||
84 | return pmbe; | 114 | return pmbe; |
85 | } | 115 | } |
86 | 116 | ||
87 | void pmb_free(struct pmb_entry *pmbe) | 117 | void pmb_free(struct pmb_entry *pmbe) |
88 | { | 118 | { |
119 | spin_lock_irq(&pmb_list_lock); | ||
120 | pmb_list_del(pmbe); | ||
121 | spin_unlock_irq(&pmb_list_lock); | ||
122 | |||
89 | kmem_cache_free(pmb_cache, pmbe); | 123 | kmem_cache_free(pmb_cache, pmbe); |
90 | } | 124 | } |
91 | 125 | ||
@@ -167,31 +201,6 @@ void clear_pmb_entry(struct pmb_entry *pmbe) | |||
167 | clear_bit(entry, &pmb_map); | 201 | clear_bit(entry, &pmb_map); |
168 | } | 202 | } |
169 | 203 | ||
170 | static DEFINE_SPINLOCK(pmb_list_lock); | ||
171 | static struct pmb_entry *pmb_list; | ||
172 | |||
173 | static inline void pmb_list_add(struct pmb_entry *pmbe) | ||
174 | { | ||
175 | struct pmb_entry **p, *tmp; | ||
176 | |||
177 | p = &pmb_list; | ||
178 | while ((tmp = *p) != NULL) | ||
179 | p = &tmp->next; | ||
180 | |||
181 | pmbe->next = tmp; | ||
182 | *p = pmbe; | ||
183 | } | ||
184 | |||
185 | static inline void pmb_list_del(struct pmb_entry *pmbe) | ||
186 | { | ||
187 | struct pmb_entry **p, *tmp; | ||
188 | |||
189 | for (p = &pmb_list; (tmp = *p); p = &tmp->next) | ||
190 | if (tmp == pmbe) { | ||
191 | *p = tmp->next; | ||
192 | return; | ||
193 | } | ||
194 | } | ||
195 | 204 | ||
196 | static struct { | 205 | static struct { |
197 | unsigned long size; | 206 | unsigned long size; |
@@ -283,25 +292,14 @@ void pmb_unmap(unsigned long addr) | |||
283 | } while (pmbe); | 292 | } while (pmbe); |
284 | } | 293 | } |
285 | 294 | ||
286 | static void pmb_cache_ctor(void *pmb, struct kmem_cache *cachep, unsigned long flags) | 295 | static void pmb_cache_ctor(void *pmb, struct kmem_cache *cachep, |
296 | unsigned long flags) | ||
287 | { | 297 | { |
288 | struct pmb_entry *pmbe = pmb; | 298 | struct pmb_entry *pmbe = pmb; |
289 | 299 | ||
290 | memset(pmb, 0, sizeof(struct pmb_entry)); | 300 | memset(pmb, 0, sizeof(struct pmb_entry)); |
291 | 301 | ||
292 | spin_lock_irq(&pmb_list_lock); | ||
293 | |||
294 | pmbe->entry = PMB_NO_ENTRY; | 302 | pmbe->entry = PMB_NO_ENTRY; |
295 | pmb_list_add(pmbe); | ||
296 | |||
297 | spin_unlock_irq(&pmb_list_lock); | ||
298 | } | ||
299 | |||
300 | static void pmb_cache_dtor(void *pmb, struct kmem_cache *cachep, unsigned long flags) | ||
301 | { | ||
302 | spin_lock_irq(&pmb_list_lock); | ||
303 | pmb_list_del(pmb); | ||
304 | spin_unlock_irq(&pmb_list_lock); | ||
305 | } | 303 | } |
306 | 304 | ||
307 | static int __init pmb_init(void) | 305 | static int __init pmb_init(void) |
@@ -312,8 +310,7 @@ static int __init pmb_init(void) | |||
312 | BUG_ON(unlikely(nr_entries >= NR_PMB_ENTRIES)); | 310 | BUG_ON(unlikely(nr_entries >= NR_PMB_ENTRIES)); |
313 | 311 | ||
314 | pmb_cache = kmem_cache_create("pmb", sizeof(struct pmb_entry), 0, | 312 | pmb_cache = kmem_cache_create("pmb", sizeof(struct pmb_entry), 0, |
315 | SLAB_PANIC, pmb_cache_ctor, | 313 | SLAB_PANIC, pmb_cache_ctor, NULL); |
316 | pmb_cache_dtor); | ||
317 | 314 | ||
318 | jump_to_P2(); | 315 | jump_to_P2(); |
319 | 316 | ||
diff --git a/arch/sh/tools/mach-types b/arch/sh/tools/mach-types index 554f801db67b..fb40f188aff9 100644 --- a/arch/sh/tools/mach-types +++ b/arch/sh/tools/mach-types | |||
@@ -7,8 +7,11 @@ | |||
7 | # | 7 | # |
8 | SE SH_SOLUTION_ENGINE | 8 | SE SH_SOLUTION_ENGINE |
9 | 7751SE SH_7751_SOLUTION_ENGINE | 9 | 7751SE SH_7751_SOLUTION_ENGINE |
10 | 7722SE SH_7722_SOLUTION_ENGINE | ||
10 | 7300SE SH_7300_SOLUTION_ENGINE | 11 | 7300SE SH_7300_SOLUTION_ENGINE |
11 | 7343SE SH_7343_SOLUTION_ENGINE | 12 | 7343SE SH_7343_SOLUTION_ENGINE |
13 | 7206SE SH_7206_SOLUTION_ENGINE | ||
14 | 7619SE SH_7619_SOLUTION_ENGINE | ||
12 | 7780SE SH_7780_SOLUTION_ENGINE | 15 | 7780SE SH_7780_SOLUTION_ENGINE |
13 | 73180SE SH_73180_SOLUTION_ENGINE | 16 | 73180SE SH_73180_SOLUTION_ENGINE |
14 | 7751SYSTEMH SH_7751_SYSTEMH | 17 | 7751SYSTEMH SH_7751_SYSTEMH |
@@ -31,5 +34,3 @@ R7785RP SH_R7785RP | |||
31 | TITAN SH_TITAN | 34 | TITAN SH_TITAN |
32 | SHMIN SH_SHMIN | 35 | SHMIN SH_SHMIN |
33 | 7710VOIPGW SH_7710VOIPGW | 36 | 7710VOIPGW SH_7710VOIPGW |
34 | 7206SE SH_7206_SOLUTION_ENGINE | ||
35 | 7619SE SH_7619_SOLUTION_ENGINE | ||
diff --git a/arch/sh64/kernel/vmlinux.lds.S b/arch/sh64/kernel/vmlinux.lds.S index 4f9616f39830..02aea86c5907 100644 --- a/arch/sh64/kernel/vmlinux.lds.S +++ b/arch/sh64/kernel/vmlinux.lds.S | |||
@@ -54,7 +54,7 @@ SECTIONS | |||
54 | } = 0 | 54 | } = 0 |
55 | 55 | ||
56 | .text : C_PHYS(.text) { | 56 | .text : C_PHYS(.text) { |
57 | *(.text) | 57 | TEXT_TEXT |
58 | *(.text64) | 58 | *(.text64) |
59 | *(.text..SHmedia32) | 59 | *(.text..SHmedia32) |
60 | SCHED_TEXT | 60 | SCHED_TEXT |
@@ -78,7 +78,7 @@ SECTIONS | |||
78 | _etext = .; /* End of text section */ | 78 | _etext = .; /* End of text section */ |
79 | 79 | ||
80 | .data : C_PHYS(.data) { /* Data */ | 80 | .data : C_PHYS(.data) { /* Data */ |
81 | *(.data) | 81 | DATA_DATA |
82 | CONSTRUCTORS | 82 | CONSTRUCTORS |
83 | } | 83 | } |
84 | 84 | ||
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index bd992c0048f0..fbcc00c6c06e 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig | |||
@@ -178,6 +178,13 @@ config ARCH_HAS_ILOG2_U64 | |||
178 | bool | 178 | bool |
179 | default n | 179 | default n |
180 | 180 | ||
181 | config EMULATED_CMPXCHG | ||
182 | bool | ||
183 | default y | ||
184 | help | ||
185 | Sparc32 does not have a CAS instruction like sparc64. cmpxchg() | ||
186 | is emulated, and therefore it is not completely atomic. | ||
187 | |||
181 | config SUN_PM | 188 | config SUN_PM |
182 | bool | 189 | bool |
183 | default y | 190 | default y |
diff --git a/arch/sparc/kernel/time.c b/arch/sparc/kernel/time.c index f1401b57ccc7..7b4612da74a6 100644 --- a/arch/sparc/kernel/time.c +++ b/arch/sparc/kernel/time.c | |||
@@ -148,7 +148,7 @@ irqreturn_t timer_interrupt(int irq, void *dev_id) | |||
148 | } | 148 | } |
149 | 149 | ||
150 | /* Kick start a stopped clock (procedure from the Sun NVRAM/hostid FAQ). */ | 150 | /* Kick start a stopped clock (procedure from the Sun NVRAM/hostid FAQ). */ |
151 | static void __init kick_start_clock(void) | 151 | static void __devinit kick_start_clock(void) |
152 | { | 152 | { |
153 | struct mostek48t02 *regs = (struct mostek48t02 *)mstk48t02_regs; | 153 | struct mostek48t02 *regs = (struct mostek48t02 *)mstk48t02_regs; |
154 | unsigned char sec; | 154 | unsigned char sec; |
@@ -223,7 +223,7 @@ static __inline__ int has_low_battery(void) | |||
223 | return (data1 == data2); /* Was the write blocked? */ | 223 | return (data1 == data2); /* Was the write blocked? */ |
224 | } | 224 | } |
225 | 225 | ||
226 | static void __init mostek_set_system_time(void) | 226 | static void __devinit mostek_set_system_time(void) |
227 | { | 227 | { |
228 | unsigned int year, mon, day, hour, min, sec; | 228 | unsigned int year, mon, day, hour, min, sec; |
229 | struct mostek48t02 *mregs; | 229 | struct mostek48t02 *mregs; |
diff --git a/arch/sparc/kernel/vmlinux.lds.S b/arch/sparc/kernel/vmlinux.lds.S index f0bb6e60e620..f75a1b822789 100644 --- a/arch/sparc/kernel/vmlinux.lds.S +++ b/arch/sparc/kernel/vmlinux.lds.S | |||
@@ -12,7 +12,7 @@ SECTIONS | |||
12 | .text 0xf0004000 : | 12 | .text 0xf0004000 : |
13 | { | 13 | { |
14 | _text = .; | 14 | _text = .; |
15 | *(.text) | 15 | TEXT_TEXT |
16 | SCHED_TEXT | 16 | SCHED_TEXT |
17 | LOCK_TEXT | 17 | LOCK_TEXT |
18 | *(.gnu.warning) | 18 | *(.gnu.warning) |
@@ -22,7 +22,7 @@ SECTIONS | |||
22 | RODATA | 22 | RODATA |
23 | .data : | 23 | .data : |
24 | { | 24 | { |
25 | *(.data) | 25 | DATA_DATA |
26 | CONSTRUCTORS | 26 | CONSTRUCTORS |
27 | } | 27 | } |
28 | .data1 : { *(.data1) } | 28 | .data1 : { *(.data1) } |
diff --git a/arch/sparc/lib/atomic32.c b/arch/sparc/lib/atomic32.c index 559335f4917d..617d29832e19 100644 --- a/arch/sparc/lib/atomic32.c +++ b/arch/sparc/lib/atomic32.c | |||
@@ -2,6 +2,7 @@ | |||
2 | * atomic32.c: 32-bit atomic_t implementation | 2 | * atomic32.c: 32-bit atomic_t implementation |
3 | * | 3 | * |
4 | * Copyright (C) 2004 Keith M Wesolowski | 4 | * Copyright (C) 2004 Keith M Wesolowski |
5 | * Copyright (C) 2007 Kyle McMartin | ||
5 | * | 6 | * |
6 | * Based on asm-parisc/atomic.h Copyright (C) 2000 Philipp Rumpf | 7 | * Based on asm-parisc/atomic.h Copyright (C) 2000 Philipp Rumpf |
7 | */ | 8 | */ |
@@ -117,3 +118,17 @@ unsigned long ___change_bit(unsigned long *addr, unsigned long mask) | |||
117 | return old & mask; | 118 | return old & mask; |
118 | } | 119 | } |
119 | EXPORT_SYMBOL(___change_bit); | 120 | EXPORT_SYMBOL(___change_bit); |
121 | |||
122 | unsigned long __cmpxchg_u32(volatile u32 *ptr, u32 old, u32 new) | ||
123 | { | ||
124 | unsigned long flags; | ||
125 | u32 prev; | ||
126 | |||
127 | spin_lock_irqsave(ATOMIC_HASH(addr), flags); | ||
128 | if ((prev = *ptr) == old) | ||
129 | *ptr = new; | ||
130 | spin_unlock_irqrestore(ATOMIC_HASH(addr), flags); | ||
131 | |||
132 | return (unsigned long)prev; | ||
133 | } | ||
134 | EXPORT_SYMBOL(__cmpxchg_u32); | ||
diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig index 831781cab271..bd00f89eed1e 100644 --- a/arch/sparc64/Kconfig +++ b/arch/sparc64/Kconfig | |||
@@ -147,10 +147,10 @@ config SMP | |||
147 | If you don't know what to do here, say N. | 147 | If you don't know what to do here, say N. |
148 | 148 | ||
149 | config NR_CPUS | 149 | config NR_CPUS |
150 | int "Maximum number of CPUs (2-64)" | 150 | int "Maximum number of CPUs (2-1024)" |
151 | range 2 64 | 151 | range 2 1024 |
152 | depends on SMP | 152 | depends on SMP |
153 | default "32" | 153 | default "64" |
154 | 154 | ||
155 | source "drivers/cpufreq/Kconfig" | 155 | source "drivers/cpufreq/Kconfig" |
156 | 156 | ||
diff --git a/arch/sparc64/kernel/Makefile b/arch/sparc64/kernel/Makefile index 6bf6fb65bc20..d8d19093d12f 100644 --- a/arch/sparc64/kernel/Makefile +++ b/arch/sparc64/kernel/Makefile | |||
@@ -8,11 +8,11 @@ EXTRA_CFLAGS := -Werror | |||
8 | extra-y := head.o init_task.o vmlinux.lds | 8 | extra-y := head.o init_task.o vmlinux.lds |
9 | 9 | ||
10 | obj-y := process.o setup.o cpu.o idprom.o \ | 10 | obj-y := process.o setup.o cpu.o idprom.o \ |
11 | traps.o devices.o auxio.o una_asm.o \ | 11 | traps.o auxio.o una_asm.o \ |
12 | irq.o ptrace.o time.o sys_sparc.o signal.o \ | 12 | irq.o ptrace.o time.o sys_sparc.o signal.o \ |
13 | unaligned.o central.o pci.o starfire.o semaphore.o \ | 13 | unaligned.o central.o pci.o starfire.o semaphore.o \ |
14 | power.o sbus.o iommu_common.o sparc64_ksyms.o chmc.o \ | 14 | power.o sbus.o iommu_common.o sparc64_ksyms.o chmc.o \ |
15 | visemul.o prom.o of_device.o | 15 | visemul.o prom.o of_device.o hvapi.o sstate.o mdesc.o |
16 | 16 | ||
17 | obj-$(CONFIG_STACKTRACE) += stacktrace.o | 17 | obj-$(CONFIG_STACKTRACE) += stacktrace.o |
18 | obj-$(CONFIG_PCI) += ebus.o isa.o pci_common.o pci_iommu.o \ | 18 | obj-$(CONFIG_PCI) += ebus.o isa.o pci_common.o pci_iommu.o \ |
diff --git a/arch/sparc64/kernel/devices.c b/arch/sparc64/kernel/devices.c deleted file mode 100644 index 0e03c8e218cd..000000000000 --- a/arch/sparc64/kernel/devices.c +++ /dev/null | |||
@@ -1,196 +0,0 @@ | |||
1 | /* devices.c: Initial scan of the prom device tree for important | ||
2 | * Sparc device nodes which we need to find. | ||
3 | * | ||
4 | * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) | ||
5 | */ | ||
6 | |||
7 | #include <linux/kernel.h> | ||
8 | #include <linux/threads.h> | ||
9 | #include <linux/init.h> | ||
10 | #include <linux/ioport.h> | ||
11 | #include <linux/string.h> | ||
12 | #include <linux/spinlock.h> | ||
13 | #include <linux/errno.h> | ||
14 | #include <linux/bootmem.h> | ||
15 | |||
16 | #include <asm/page.h> | ||
17 | #include <asm/oplib.h> | ||
18 | #include <asm/system.h> | ||
19 | #include <asm/smp.h> | ||
20 | #include <asm/spitfire.h> | ||
21 | #include <asm/timer.h> | ||
22 | #include <asm/cpudata.h> | ||
23 | |||
24 | /* Used to synchronize accesses to NatSemi SUPER I/O chip configure | ||
25 | * operations in asm/ns87303.h | ||
26 | */ | ||
27 | DEFINE_SPINLOCK(ns87303_lock); | ||
28 | |||
29 | extern void cpu_probe(void); | ||
30 | extern void central_probe(void); | ||
31 | |||
32 | static const char *cpu_mid_prop(void) | ||
33 | { | ||
34 | if (tlb_type == spitfire) | ||
35 | return "upa-portid"; | ||
36 | return "portid"; | ||
37 | } | ||
38 | |||
39 | static int get_cpu_mid(struct device_node *dp) | ||
40 | { | ||
41 | struct property *prop; | ||
42 | |||
43 | if (tlb_type == hypervisor) { | ||
44 | struct linux_prom64_registers *reg; | ||
45 | int len; | ||
46 | |||
47 | prop = of_find_property(dp, "cpuid", &len); | ||
48 | if (prop && len == 4) | ||
49 | return *(int *) prop->value; | ||
50 | |||
51 | prop = of_find_property(dp, "reg", NULL); | ||
52 | reg = prop->value; | ||
53 | return (reg[0].phys_addr >> 32) & 0x0fffffffUL; | ||
54 | } else { | ||
55 | const char *prop_name = cpu_mid_prop(); | ||
56 | |||
57 | prop = of_find_property(dp, prop_name, NULL); | ||
58 | if (prop) | ||
59 | return *(int *) prop->value; | ||
60 | return 0; | ||
61 | } | ||
62 | } | ||
63 | |||
64 | static int check_cpu_node(struct device_node *dp, int *cur_inst, | ||
65 | int (*compare)(struct device_node *, int, void *), | ||
66 | void *compare_arg, | ||
67 | struct device_node **dev_node, int *mid) | ||
68 | { | ||
69 | if (!compare(dp, *cur_inst, compare_arg)) { | ||
70 | if (dev_node) | ||
71 | *dev_node = dp; | ||
72 | if (mid) | ||
73 | *mid = get_cpu_mid(dp); | ||
74 | return 0; | ||
75 | } | ||
76 | |||
77 | (*cur_inst)++; | ||
78 | |||
79 | return -ENODEV; | ||
80 | } | ||
81 | |||
82 | static int __cpu_find_by(int (*compare)(struct device_node *, int, void *), | ||
83 | void *compare_arg, | ||
84 | struct device_node **dev_node, int *mid) | ||
85 | { | ||
86 | struct device_node *dp; | ||
87 | int cur_inst; | ||
88 | |||
89 | cur_inst = 0; | ||
90 | for_each_node_by_type(dp, "cpu") { | ||
91 | int err = check_cpu_node(dp, &cur_inst, | ||
92 | compare, compare_arg, | ||
93 | dev_node, mid); | ||
94 | if (err == 0) | ||
95 | return 0; | ||
96 | } | ||
97 | |||
98 | return -ENODEV; | ||
99 | } | ||
100 | |||
101 | static int cpu_instance_compare(struct device_node *dp, int instance, void *_arg) | ||
102 | { | ||
103 | int desired_instance = (int) (long) _arg; | ||
104 | |||
105 | if (instance == desired_instance) | ||
106 | return 0; | ||
107 | return -ENODEV; | ||
108 | } | ||
109 | |||
110 | int cpu_find_by_instance(int instance, struct device_node **dev_node, int *mid) | ||
111 | { | ||
112 | return __cpu_find_by(cpu_instance_compare, (void *)(long)instance, | ||
113 | dev_node, mid); | ||
114 | } | ||
115 | |||
116 | static int cpu_mid_compare(struct device_node *dp, int instance, void *_arg) | ||
117 | { | ||
118 | int desired_mid = (int) (long) _arg; | ||
119 | int this_mid; | ||
120 | |||
121 | this_mid = get_cpu_mid(dp); | ||
122 | if (this_mid == desired_mid) | ||
123 | return 0; | ||
124 | return -ENODEV; | ||
125 | } | ||
126 | |||
127 | int cpu_find_by_mid(int mid, struct device_node **dev_node) | ||
128 | { | ||
129 | return __cpu_find_by(cpu_mid_compare, (void *)(long)mid, | ||
130 | dev_node, NULL); | ||
131 | } | ||
132 | |||
133 | void __init device_scan(void) | ||
134 | { | ||
135 | /* FIX ME FAST... -DaveM */ | ||
136 | ioport_resource.end = 0xffffffffffffffffUL; | ||
137 | |||
138 | prom_printf("Booting Linux...\n"); | ||
139 | |||
140 | #ifndef CONFIG_SMP | ||
141 | { | ||
142 | struct device_node *dp; | ||
143 | int err, def; | ||
144 | |||
145 | err = cpu_find_by_instance(0, &dp, NULL); | ||
146 | if (err) { | ||
147 | prom_printf("No cpu nodes, cannot continue\n"); | ||
148 | prom_halt(); | ||
149 | } | ||
150 | cpu_data(0).clock_tick = | ||
151 | of_getintprop_default(dp, "clock-frequency", 0); | ||
152 | |||
153 | def = ((tlb_type == hypervisor) ? | ||
154 | (8 * 1024) : | ||
155 | (16 * 1024)); | ||
156 | cpu_data(0).dcache_size = of_getintprop_default(dp, | ||
157 | "dcache-size", | ||
158 | def); | ||
159 | |||
160 | def = 32; | ||
161 | cpu_data(0).dcache_line_size = | ||
162 | of_getintprop_default(dp, "dcache-line-size", def); | ||
163 | |||
164 | def = 16 * 1024; | ||
165 | cpu_data(0).icache_size = of_getintprop_default(dp, | ||
166 | "icache-size", | ||
167 | def); | ||
168 | |||
169 | def = 32; | ||
170 | cpu_data(0).icache_line_size = | ||
171 | of_getintprop_default(dp, "icache-line-size", def); | ||
172 | |||
173 | def = ((tlb_type == hypervisor) ? | ||
174 | (3 * 1024 * 1024) : | ||
175 | (4 * 1024 * 1024)); | ||
176 | cpu_data(0).ecache_size = of_getintprop_default(dp, | ||
177 | "ecache-size", | ||
178 | def); | ||
179 | |||
180 | def = 64; | ||
181 | cpu_data(0).ecache_line_size = | ||
182 | of_getintprop_default(dp, "ecache-line-size", def); | ||
183 | printk("CPU[0]: Caches " | ||
184 | "D[sz(%d):line_sz(%d)] " | ||
185 | "I[sz(%d):line_sz(%d)] " | ||
186 | "E[sz(%d):line_sz(%d)]\n", | ||
187 | cpu_data(0).dcache_size, cpu_data(0).dcache_line_size, | ||
188 | cpu_data(0).icache_size, cpu_data(0).icache_line_size, | ||
189 | cpu_data(0).ecache_size, cpu_data(0).ecache_line_size); | ||
190 | } | ||
191 | #endif | ||
192 | |||
193 | central_probe(); | ||
194 | |||
195 | cpu_probe(); | ||
196 | } | ||
diff --git a/arch/sparc64/kernel/entry.S b/arch/sparc64/kernel/entry.S index c15a3edcb826..8f10dda0f5c0 100644 --- a/arch/sparc64/kernel/entry.S +++ b/arch/sparc64/kernel/entry.S | |||
@@ -1725,96 +1725,142 @@ real_hard_smp_processor_id: | |||
1725 | * returns %o0: sysino | 1725 | * returns %o0: sysino |
1726 | */ | 1726 | */ |
1727 | .globl sun4v_devino_to_sysino | 1727 | .globl sun4v_devino_to_sysino |
1728 | .type sun4v_devino_to_sysino,#function | ||
1728 | sun4v_devino_to_sysino: | 1729 | sun4v_devino_to_sysino: |
1729 | mov HV_FAST_INTR_DEVINO2SYSINO, %o5 | 1730 | mov HV_FAST_INTR_DEVINO2SYSINO, %o5 |
1730 | ta HV_FAST_TRAP | 1731 | ta HV_FAST_TRAP |
1731 | retl | 1732 | retl |
1732 | mov %o1, %o0 | 1733 | mov %o1, %o0 |
1734 | .size sun4v_devino_to_sysino, .-sun4v_devino_to_sysino | ||
1733 | 1735 | ||
1734 | /* %o0: sysino | 1736 | /* %o0: sysino |
1735 | * | 1737 | * |
1736 | * returns %o0: intr_enabled (HV_INTR_{DISABLED,ENABLED}) | 1738 | * returns %o0: intr_enabled (HV_INTR_{DISABLED,ENABLED}) |
1737 | */ | 1739 | */ |
1738 | .globl sun4v_intr_getenabled | 1740 | .globl sun4v_intr_getenabled |
1741 | .type sun4v_intr_getenabled,#function | ||
1739 | sun4v_intr_getenabled: | 1742 | sun4v_intr_getenabled: |
1740 | mov HV_FAST_INTR_GETENABLED, %o5 | 1743 | mov HV_FAST_INTR_GETENABLED, %o5 |
1741 | ta HV_FAST_TRAP | 1744 | ta HV_FAST_TRAP |
1742 | retl | 1745 | retl |
1743 | mov %o1, %o0 | 1746 | mov %o1, %o0 |
1747 | .size sun4v_intr_getenabled, .-sun4v_intr_getenabled | ||
1744 | 1748 | ||
1745 | /* %o0: sysino | 1749 | /* %o0: sysino |
1746 | * %o1: intr_enabled (HV_INTR_{DISABLED,ENABLED}) | 1750 | * %o1: intr_enabled (HV_INTR_{DISABLED,ENABLED}) |
1747 | */ | 1751 | */ |
1748 | .globl sun4v_intr_setenabled | 1752 | .globl sun4v_intr_setenabled |
1753 | .type sun4v_intr_setenabled,#function | ||
1749 | sun4v_intr_setenabled: | 1754 | sun4v_intr_setenabled: |
1750 | mov HV_FAST_INTR_SETENABLED, %o5 | 1755 | mov HV_FAST_INTR_SETENABLED, %o5 |
1751 | ta HV_FAST_TRAP | 1756 | ta HV_FAST_TRAP |
1752 | retl | 1757 | retl |
1753 | nop | 1758 | nop |
1759 | .size sun4v_intr_setenabled, .-sun4v_intr_setenabled | ||
1754 | 1760 | ||
1755 | /* %o0: sysino | 1761 | /* %o0: sysino |
1756 | * | 1762 | * |
1757 | * returns %o0: intr_state (HV_INTR_STATE_*) | 1763 | * returns %o0: intr_state (HV_INTR_STATE_*) |
1758 | */ | 1764 | */ |
1759 | .globl sun4v_intr_getstate | 1765 | .globl sun4v_intr_getstate |
1766 | .type sun4v_intr_getstate,#function | ||
1760 | sun4v_intr_getstate: | 1767 | sun4v_intr_getstate: |
1761 | mov HV_FAST_INTR_GETSTATE, %o5 | 1768 | mov HV_FAST_INTR_GETSTATE, %o5 |
1762 | ta HV_FAST_TRAP | 1769 | ta HV_FAST_TRAP |
1763 | retl | 1770 | retl |
1764 | mov %o1, %o0 | 1771 | mov %o1, %o0 |
1772 | .size sun4v_intr_getstate, .-sun4v_intr_getstate | ||
1765 | 1773 | ||
1766 | /* %o0: sysino | 1774 | /* %o0: sysino |
1767 | * %o1: intr_state (HV_INTR_STATE_*) | 1775 | * %o1: intr_state (HV_INTR_STATE_*) |
1768 | */ | 1776 | */ |
1769 | .globl sun4v_intr_setstate | 1777 | .globl sun4v_intr_setstate |
1778 | .type sun4v_intr_setstate,#function | ||
1770 | sun4v_intr_setstate: | 1779 | sun4v_intr_setstate: |
1771 | mov HV_FAST_INTR_SETSTATE, %o5 | 1780 | mov HV_FAST_INTR_SETSTATE, %o5 |
1772 | ta HV_FAST_TRAP | 1781 | ta HV_FAST_TRAP |
1773 | retl | 1782 | retl |
1774 | nop | 1783 | nop |
1784 | .size sun4v_intr_setstate, .-sun4v_intr_setstate | ||
1775 | 1785 | ||
1776 | /* %o0: sysino | 1786 | /* %o0: sysino |
1777 | * | 1787 | * |
1778 | * returns %o0: cpuid | 1788 | * returns %o0: cpuid |
1779 | */ | 1789 | */ |
1780 | .globl sun4v_intr_gettarget | 1790 | .globl sun4v_intr_gettarget |
1791 | .type sun4v_intr_gettarget,#function | ||
1781 | sun4v_intr_gettarget: | 1792 | sun4v_intr_gettarget: |
1782 | mov HV_FAST_INTR_GETTARGET, %o5 | 1793 | mov HV_FAST_INTR_GETTARGET, %o5 |
1783 | ta HV_FAST_TRAP | 1794 | ta HV_FAST_TRAP |
1784 | retl | 1795 | retl |
1785 | mov %o1, %o0 | 1796 | mov %o1, %o0 |
1797 | .size sun4v_intr_gettarget, .-sun4v_intr_gettarget | ||
1786 | 1798 | ||
1787 | /* %o0: sysino | 1799 | /* %o0: sysino |
1788 | * %o1: cpuid | 1800 | * %o1: cpuid |
1789 | */ | 1801 | */ |
1790 | .globl sun4v_intr_settarget | 1802 | .globl sun4v_intr_settarget |
1803 | .type sun4v_intr_settarget,#function | ||
1791 | sun4v_intr_settarget: | 1804 | sun4v_intr_settarget: |
1792 | mov HV_FAST_INTR_SETTARGET, %o5 | 1805 | mov HV_FAST_INTR_SETTARGET, %o5 |
1793 | ta HV_FAST_TRAP | 1806 | ta HV_FAST_TRAP |
1794 | retl | 1807 | retl |
1795 | nop | 1808 | nop |
1809 | .size sun4v_intr_settarget, .-sun4v_intr_settarget | ||
1796 | 1810 | ||
1797 | /* %o0: type | 1811 | /* %o0: cpuid |
1798 | * %o1: queue paddr | 1812 | * %o1: pc |
1799 | * %o2: num queue entries | 1813 | * %o2: rtba |
1814 | * %o3: arg0 | ||
1800 | * | 1815 | * |
1801 | * returns %o0: status | 1816 | * returns %o0: status |
1802 | */ | 1817 | */ |
1803 | .globl sun4v_cpu_qconf | 1818 | .globl sun4v_cpu_start |
1804 | sun4v_cpu_qconf: | 1819 | .type sun4v_cpu_start,#function |
1805 | mov HV_FAST_CPU_QCONF, %o5 | 1820 | sun4v_cpu_start: |
1821 | mov HV_FAST_CPU_START, %o5 | ||
1806 | ta HV_FAST_TRAP | 1822 | ta HV_FAST_TRAP |
1807 | retl | 1823 | retl |
1808 | nop | 1824 | nop |
1825 | .size sun4v_cpu_start, .-sun4v_cpu_start | ||
1809 | 1826 | ||
1810 | /* returns %o0: status | 1827 | /* %o0: cpuid |
1828 | * | ||
1829 | * returns %o0: status | ||
1811 | */ | 1830 | */ |
1831 | .globl sun4v_cpu_stop | ||
1832 | .type sun4v_cpu_stop,#function | ||
1833 | sun4v_cpu_stop: | ||
1834 | mov HV_FAST_CPU_STOP, %o5 | ||
1835 | ta HV_FAST_TRAP | ||
1836 | retl | ||
1837 | nop | ||
1838 | .size sun4v_cpu_stop, .-sun4v_cpu_stop | ||
1839 | |||
1840 | /* returns %o0: status */ | ||
1812 | .globl sun4v_cpu_yield | 1841 | .globl sun4v_cpu_yield |
1842 | .type sun4v_cpu_yield, #function | ||
1813 | sun4v_cpu_yield: | 1843 | sun4v_cpu_yield: |
1814 | mov HV_FAST_CPU_YIELD, %o5 | 1844 | mov HV_FAST_CPU_YIELD, %o5 |
1815 | ta HV_FAST_TRAP | 1845 | ta HV_FAST_TRAP |
1816 | retl | 1846 | retl |
1817 | nop | 1847 | nop |
1848 | .size sun4v_cpu_yield, .-sun4v_cpu_yield | ||
1849 | |||
1850 | /* %o0: type | ||
1851 | * %o1: queue paddr | ||
1852 | * %o2: num queue entries | ||
1853 | * | ||
1854 | * returns %o0: status | ||
1855 | */ | ||
1856 | .globl sun4v_cpu_qconf | ||
1857 | .type sun4v_cpu_qconf,#function | ||
1858 | sun4v_cpu_qconf: | ||
1859 | mov HV_FAST_CPU_QCONF, %o5 | ||
1860 | ta HV_FAST_TRAP | ||
1861 | retl | ||
1862 | nop | ||
1863 | .size sun4v_cpu_qconf, .-sun4v_cpu_qconf | ||
1818 | 1864 | ||
1819 | /* %o0: num cpus in cpu list | 1865 | /* %o0: num cpus in cpu list |
1820 | * %o1: cpu list paddr | 1866 | * %o1: cpu list paddr |
@@ -1823,11 +1869,13 @@ sun4v_cpu_yield: | |||
1823 | * returns %o0: status | 1869 | * returns %o0: status |
1824 | */ | 1870 | */ |
1825 | .globl sun4v_cpu_mondo_send | 1871 | .globl sun4v_cpu_mondo_send |
1872 | .type sun4v_cpu_mondo_send,#function | ||
1826 | sun4v_cpu_mondo_send: | 1873 | sun4v_cpu_mondo_send: |
1827 | mov HV_FAST_CPU_MONDO_SEND, %o5 | 1874 | mov HV_FAST_CPU_MONDO_SEND, %o5 |
1828 | ta HV_FAST_TRAP | 1875 | ta HV_FAST_TRAP |
1829 | retl | 1876 | retl |
1830 | nop | 1877 | nop |
1878 | .size sun4v_cpu_mondo_send, .-sun4v_cpu_mondo_send | ||
1831 | 1879 | ||
1832 | /* %o0: CPU ID | 1880 | /* %o0: CPU ID |
1833 | * | 1881 | * |
@@ -1835,6 +1883,7 @@ sun4v_cpu_mondo_send: | |||
1835 | * %o0: cpu state as HV_CPU_STATE_* | 1883 | * %o0: cpu state as HV_CPU_STATE_* |
1836 | */ | 1884 | */ |
1837 | .globl sun4v_cpu_state | 1885 | .globl sun4v_cpu_state |
1886 | .type sun4v_cpu_state,#function | ||
1838 | sun4v_cpu_state: | 1887 | sun4v_cpu_state: |
1839 | mov HV_FAST_CPU_STATE, %o5 | 1888 | mov HV_FAST_CPU_STATE, %o5 |
1840 | ta HV_FAST_TRAP | 1889 | ta HV_FAST_TRAP |
@@ -1843,3 +1892,609 @@ sun4v_cpu_state: | |||
1843 | mov %o1, %o0 | 1892 | mov %o1, %o0 |
1844 | 1: retl | 1893 | 1: retl |
1845 | nop | 1894 | nop |
1895 | .size sun4v_cpu_state, .-sun4v_cpu_state | ||
1896 | |||
1897 | /* %o0: virtual address | ||
1898 | * %o1: must be zero | ||
1899 | * %o2: TTE | ||
1900 | * %o3: HV_MMU_* flags | ||
1901 | * | ||
1902 | * returns %o0: status | ||
1903 | */ | ||
1904 | .globl sun4v_mmu_map_perm_addr | ||
1905 | .type sun4v_mmu_map_perm_addr,#function | ||
1906 | sun4v_mmu_map_perm_addr: | ||
1907 | mov HV_FAST_MMU_MAP_PERM_ADDR, %o5 | ||
1908 | ta HV_FAST_TRAP | ||
1909 | retl | ||
1910 | nop | ||
1911 | .size sun4v_mmu_map_perm_addr, .-sun4v_mmu_map_perm_addr | ||
1912 | |||
1913 | /* %o0: number of TSB descriptions | ||
1914 | * %o1: TSB descriptions real address | ||
1915 | * | ||
1916 | * returns %o0: status | ||
1917 | */ | ||
1918 | .globl sun4v_mmu_tsb_ctx0 | ||
1919 | .type sun4v_mmu_tsb_ctx0,#function | ||
1920 | sun4v_mmu_tsb_ctx0: | ||
1921 | mov HV_FAST_MMU_TSB_CTX0, %o5 | ||
1922 | ta HV_FAST_TRAP | ||
1923 | retl | ||
1924 | nop | ||
1925 | .size sun4v_mmu_tsb_ctx0, .-sun4v_mmu_tsb_ctx0 | ||
1926 | |||
1927 | /* %o0: API group number | ||
1928 | * %o1: pointer to unsigned long major number storage | ||
1929 | * %o2: pointer to unsigned long minor number storage | ||
1930 | * | ||
1931 | * returns %o0: status | ||
1932 | */ | ||
1933 | .globl sun4v_get_version | ||
1934 | .type sun4v_get_version,#function | ||
1935 | sun4v_get_version: | ||
1936 | mov HV_CORE_GET_VER, %o5 | ||
1937 | mov %o1, %o3 | ||
1938 | mov %o2, %o4 | ||
1939 | ta HV_CORE_TRAP | ||
1940 | stx %o1, [%o3] | ||
1941 | retl | ||
1942 | stx %o2, [%o4] | ||
1943 | .size sun4v_get_version, .-sun4v_get_version | ||
1944 | |||
1945 | /* %o0: API group number | ||
1946 | * %o1: desired major number | ||
1947 | * %o2: desired minor number | ||
1948 | * %o3: pointer to unsigned long actual minor number storage | ||
1949 | * | ||
1950 | * returns %o0: status | ||
1951 | */ | ||
1952 | .globl sun4v_set_version | ||
1953 | .type sun4v_set_version,#function | ||
1954 | sun4v_set_version: | ||
1955 | mov HV_CORE_SET_VER, %o5 | ||
1956 | mov %o3, %o4 | ||
1957 | ta HV_CORE_TRAP | ||
1958 | retl | ||
1959 | stx %o1, [%o4] | ||
1960 | .size sun4v_set_version, .-sun4v_set_version | ||
1961 | |||
1962 | /* %o0: pointer to unsigned long time | ||
1963 | * | ||
1964 | * returns %o0: status | ||
1965 | */ | ||
1966 | .globl sun4v_tod_get | ||
1967 | .type sun4v_tod_get,#function | ||
1968 | sun4v_tod_get: | ||
1969 | mov %o0, %o4 | ||
1970 | mov HV_FAST_TOD_GET, %o5 | ||
1971 | ta HV_FAST_TRAP | ||
1972 | stx %o1, [%o4] | ||
1973 | retl | ||
1974 | nop | ||
1975 | .size sun4v_tod_get, .-sun4v_tod_get | ||
1976 | |||
1977 | /* %o0: time | ||
1978 | * | ||
1979 | * returns %o0: status | ||
1980 | */ | ||
1981 | .globl sun4v_tod_set | ||
1982 | .type sun4v_tod_set,#function | ||
1983 | sun4v_tod_set: | ||
1984 | mov HV_FAST_TOD_SET, %o5 | ||
1985 | ta HV_FAST_TRAP | ||
1986 | retl | ||
1987 | nop | ||
1988 | .size sun4v_tod_set, .-sun4v_tod_set | ||
1989 | |||
1990 | /* %o0: pointer to unsigned long status | ||
1991 | * | ||
1992 | * returns %o0: signed character | ||
1993 | */ | ||
1994 | .globl sun4v_con_getchar | ||
1995 | .type sun4v_con_getchar,#function | ||
1996 | sun4v_con_getchar: | ||
1997 | mov %o0, %o4 | ||
1998 | mov HV_FAST_CONS_GETCHAR, %o5 | ||
1999 | clr %o0 | ||
2000 | clr %o1 | ||
2001 | ta HV_FAST_TRAP | ||
2002 | stx %o0, [%o4] | ||
2003 | retl | ||
2004 | sra %o1, 0, %o0 | ||
2005 | .size sun4v_con_getchar, .-sun4v_con_getchar | ||
2006 | |||
2007 | /* %o0: signed long character | ||
2008 | * | ||
2009 | * returns %o0: status | ||
2010 | */ | ||
2011 | .globl sun4v_con_putchar | ||
2012 | .type sun4v_con_putchar,#function | ||
2013 | sun4v_con_putchar: | ||
2014 | mov HV_FAST_CONS_PUTCHAR, %o5 | ||
2015 | ta HV_FAST_TRAP | ||
2016 | retl | ||
2017 | sra %o0, 0, %o0 | ||
2018 | .size sun4v_con_putchar, .-sun4v_con_putchar | ||
2019 | |||
2020 | /* %o0: buffer real address | ||
2021 | * %o1: buffer size | ||
2022 | * %o2: pointer to unsigned long bytes_read | ||
2023 | * | ||
2024 | * returns %o0: status | ||
2025 | */ | ||
2026 | .globl sun4v_con_read | ||
2027 | .type sun4v_con_read,#function | ||
2028 | sun4v_con_read: | ||
2029 | mov %o2, %o4 | ||
2030 | mov HV_FAST_CONS_READ, %o5 | ||
2031 | ta HV_FAST_TRAP | ||
2032 | brnz %o0, 1f | ||
2033 | cmp %o1, -1 /* break */ | ||
2034 | be,a,pn %icc, 1f | ||
2035 | mov %o1, %o0 | ||
2036 | cmp %o1, -2 /* hup */ | ||
2037 | be,a,pn %icc, 1f | ||
2038 | mov %o1, %o0 | ||
2039 | stx %o1, [%o4] | ||
2040 | 1: retl | ||
2041 | nop | ||
2042 | .size sun4v_con_read, .-sun4v_con_read | ||
2043 | |||
2044 | /* %o0: buffer real address | ||
2045 | * %o1: buffer size | ||
2046 | * %o2: pointer to unsigned long bytes_written | ||
2047 | * | ||
2048 | * returns %o0: status | ||
2049 | */ | ||
2050 | .globl sun4v_con_write | ||
2051 | .type sun4v_con_write,#function | ||
2052 | sun4v_con_write: | ||
2053 | mov %o2, %o4 | ||
2054 | mov HV_FAST_CONS_WRITE, %o5 | ||
2055 | ta HV_FAST_TRAP | ||
2056 | stx %o1, [%o4] | ||
2057 | retl | ||
2058 | nop | ||
2059 | .size sun4v_con_write, .-sun4v_con_write | ||
2060 | |||
2061 | /* %o0: soft state | ||
2062 | * %o1: address of description string | ||
2063 | * | ||
2064 | * returns %o0: status | ||
2065 | */ | ||
2066 | .globl sun4v_mach_set_soft_state | ||
2067 | .type sun4v_mach_set_soft_state,#function | ||
2068 | sun4v_mach_set_soft_state: | ||
2069 | mov HV_FAST_MACH_SET_SOFT_STATE, %o5 | ||
2070 | ta HV_FAST_TRAP | ||
2071 | retl | ||
2072 | nop | ||
2073 | .size sun4v_mach_set_soft_state, .-sun4v_mach_set_soft_state | ||
2074 | |||
2075 | /* %o0: exit code | ||
2076 | * | ||
2077 | * Does not return. | ||
2078 | */ | ||
2079 | .globl sun4v_mach_exit | ||
2080 | .type sun4v_mach_exit,#function | ||
2081 | sun4v_mach_exit: | ||
2082 | mov HV_FAST_MACH_EXIT, %o5 | ||
2083 | ta HV_FAST_TRAP | ||
2084 | retl | ||
2085 | nop | ||
2086 | .size sun4v_mach_exit, .-sun4v_mach_exit | ||
2087 | |||
2088 | /* %o0: buffer real address | ||
2089 | * %o1: buffer length | ||
2090 | * %o2: pointer to unsigned long real_buf_len | ||
2091 | * | ||
2092 | * returns %o0: status | ||
2093 | */ | ||
2094 | .globl sun4v_mach_desc | ||
2095 | .type sun4v_mach_desc,#function | ||
2096 | sun4v_mach_desc: | ||
2097 | mov %o2, %o4 | ||
2098 | mov HV_FAST_MACH_DESC, %o5 | ||
2099 | ta HV_FAST_TRAP | ||
2100 | stx %o1, [%o4] | ||
2101 | retl | ||
2102 | nop | ||
2103 | .size sun4v_mach_desc, .-sun4v_mach_desc | ||
2104 | |||
2105 | /* %o0: new timeout in milliseconds | ||
2106 | * %o1: pointer to unsigned long orig_timeout | ||
2107 | * | ||
2108 | * returns %o0: status | ||
2109 | */ | ||
2110 | .globl sun4v_mach_set_watchdog | ||
2111 | .type sun4v_mach_set_watchdog,#function | ||
2112 | sun4v_mach_set_watchdog: | ||
2113 | mov %o1, %o4 | ||
2114 | mov HV_FAST_MACH_SET_WATCHDOG, %o5 | ||
2115 | ta HV_FAST_TRAP | ||
2116 | stx %o1, [%o4] | ||
2117 | retl | ||
2118 | nop | ||
2119 | .size sun4v_mach_set_watchdog, .-sun4v_mach_set_watchdog | ||
2120 | |||
2121 | /* No inputs and does not return. */ | ||
2122 | .globl sun4v_mach_sir | ||
2123 | .type sun4v_mach_sir,#function | ||
2124 | sun4v_mach_sir: | ||
2125 | mov %o1, %o4 | ||
2126 | mov HV_FAST_MACH_SIR, %o5 | ||
2127 | ta HV_FAST_TRAP | ||
2128 | stx %o1, [%o4] | ||
2129 | retl | ||
2130 | nop | ||
2131 | .size sun4v_mach_sir, .-sun4v_mach_sir | ||
2132 | |||
2133 | /* %o0: channel | ||
2134 | * %o1: ra | ||
2135 | * %o2: num_entries | ||
2136 | * | ||
2137 | * returns %o0: status | ||
2138 | */ | ||
2139 | .globl sun4v_ldc_tx_qconf | ||
2140 | .type sun4v_ldc_tx_qconf,#function | ||
2141 | sun4v_ldc_tx_qconf: | ||
2142 | mov HV_FAST_LDC_TX_QCONF, %o5 | ||
2143 | ta HV_FAST_TRAP | ||
2144 | retl | ||
2145 | nop | ||
2146 | .size sun4v_ldc_tx_qconf, .-sun4v_ldc_tx_qconf | ||
2147 | |||
2148 | /* %o0: channel | ||
2149 | * %o1: pointer to unsigned long ra | ||
2150 | * %o2: pointer to unsigned long num_entries | ||
2151 | * | ||
2152 | * returns %o0: status | ||
2153 | */ | ||
2154 | .globl sun4v_ldc_tx_qinfo | ||
2155 | .type sun4v_ldc_tx_qinfo,#function | ||
2156 | sun4v_ldc_tx_qinfo: | ||
2157 | mov %o1, %g1 | ||
2158 | mov %o2, %g2 | ||
2159 | mov HV_FAST_LDC_TX_QINFO, %o5 | ||
2160 | ta HV_FAST_TRAP | ||
2161 | stx %o1, [%g1] | ||
2162 | stx %o2, [%g2] | ||
2163 | retl | ||
2164 | nop | ||
2165 | .size sun4v_ldc_tx_qinfo, .-sun4v_ldc_tx_qinfo | ||
2166 | |||
2167 | /* %o0: channel | ||
2168 | * %o1: pointer to unsigned long head_off | ||
2169 | * %o2: pointer to unsigned long tail_off | ||
2170 | * %o2: pointer to unsigned long chan_state | ||
2171 | * | ||
2172 | * returns %o0: status | ||
2173 | */ | ||
2174 | .globl sun4v_ldc_tx_get_state | ||
2175 | .type sun4v_ldc_tx_get_state,#function | ||
2176 | sun4v_ldc_tx_get_state: | ||
2177 | mov %o1, %g1 | ||
2178 | mov %o2, %g2 | ||
2179 | mov %o3, %g3 | ||
2180 | mov HV_FAST_LDC_TX_GET_STATE, %o5 | ||
2181 | ta HV_FAST_TRAP | ||
2182 | stx %o1, [%g1] | ||
2183 | stx %o2, [%g2] | ||
2184 | stx %o3, [%g3] | ||
2185 | retl | ||
2186 | nop | ||
2187 | .size sun4v_ldc_tx_get_state, .-sun4v_ldc_tx_get_state | ||
2188 | |||
2189 | /* %o0: channel | ||
2190 | * %o1: tail_off | ||
2191 | * | ||
2192 | * returns %o0: status | ||
2193 | */ | ||
2194 | .globl sun4v_ldc_tx_set_qtail | ||
2195 | .type sun4v_ldc_tx_set_qtail,#function | ||
2196 | sun4v_ldc_tx_set_qtail: | ||
2197 | mov HV_FAST_LDC_TX_SET_QTAIL, %o5 | ||
2198 | ta HV_FAST_TRAP | ||
2199 | retl | ||
2200 | nop | ||
2201 | .size sun4v_ldc_tx_set_qtail, .-sun4v_ldc_tx_set_qtail | ||
2202 | |||
2203 | /* %o0: channel | ||
2204 | * %o1: ra | ||
2205 | * %o2: num_entries | ||
2206 | * | ||
2207 | * returns %o0: status | ||
2208 | */ | ||
2209 | .globl sun4v_ldc_rx_qconf | ||
2210 | .type sun4v_ldc_rx_qconf,#function | ||
2211 | sun4v_ldc_rx_qconf: | ||
2212 | mov HV_FAST_LDC_RX_QCONF, %o5 | ||
2213 | ta HV_FAST_TRAP | ||
2214 | retl | ||
2215 | nop | ||
2216 | .size sun4v_ldc_rx_qconf, .-sun4v_ldc_rx_qconf | ||
2217 | |||
2218 | /* %o0: channel | ||
2219 | * %o1: pointer to unsigned long ra | ||
2220 | * %o2: pointer to unsigned long num_entries | ||
2221 | * | ||
2222 | * returns %o0: status | ||
2223 | */ | ||
2224 | .globl sun4v_ldc_rx_qinfo | ||
2225 | .type sun4v_ldc_rx_qinfo,#function | ||
2226 | sun4v_ldc_rx_qinfo: | ||
2227 | mov %o1, %g1 | ||
2228 | mov %o2, %g2 | ||
2229 | mov HV_FAST_LDC_RX_QINFO, %o5 | ||
2230 | ta HV_FAST_TRAP | ||
2231 | stx %o1, [%g1] | ||
2232 | stx %o2, [%g2] | ||
2233 | retl | ||
2234 | nop | ||
2235 | .size sun4v_ldc_rx_qinfo, .-sun4v_ldc_rx_qinfo | ||
2236 | |||
2237 | /* %o0: channel | ||
2238 | * %o1: pointer to unsigned long head_off | ||
2239 | * %o2: pointer to unsigned long tail_off | ||
2240 | * %o2: pointer to unsigned long chan_state | ||
2241 | * | ||
2242 | * returns %o0: status | ||
2243 | */ | ||
2244 | .globl sun4v_ldc_rx_get_state | ||
2245 | .type sun4v_ldc_rx_get_state,#function | ||
2246 | sun4v_ldc_rx_get_state: | ||
2247 | mov %o1, %g1 | ||
2248 | mov %o2, %g2 | ||
2249 | mov %o3, %g3 | ||
2250 | mov HV_FAST_LDC_RX_GET_STATE, %o5 | ||
2251 | ta HV_FAST_TRAP | ||
2252 | stx %o1, [%g1] | ||
2253 | stx %o2, [%g2] | ||
2254 | stx %o3, [%g3] | ||
2255 | retl | ||
2256 | nop | ||
2257 | .size sun4v_ldc_rx_get_state, .-sun4v_ldc_rx_get_state | ||
2258 | |||
2259 | /* %o0: channel | ||
2260 | * %o1: head_off | ||
2261 | * | ||
2262 | * returns %o0: status | ||
2263 | */ | ||
2264 | .globl sun4v_ldc_rx_set_qhead | ||
2265 | .type sun4v_ldc_rx_set_qhead,#function | ||
2266 | sun4v_ldc_rx_set_qhead: | ||
2267 | mov HV_FAST_LDC_RX_SET_QHEAD, %o5 | ||
2268 | ta HV_FAST_TRAP | ||
2269 | retl | ||
2270 | nop | ||
2271 | .size sun4v_ldc_rx_set_qhead, .-sun4v_ldc_rx_set_qhead | ||
2272 | |||
2273 | /* %o0: channel | ||
2274 | * %o1: ra | ||
2275 | * %o2: num_entries | ||
2276 | * | ||
2277 | * returns %o0: status | ||
2278 | */ | ||
2279 | .globl sun4v_ldc_set_map_table | ||
2280 | .type sun4v_ldc_set_map_table,#function | ||
2281 | sun4v_ldc_set_map_table: | ||
2282 | mov HV_FAST_LDC_SET_MAP_TABLE, %o5 | ||
2283 | ta HV_FAST_TRAP | ||
2284 | retl | ||
2285 | nop | ||
2286 | .size sun4v_ldc_set_map_table, .-sun4v_ldc_set_map_table | ||
2287 | |||
2288 | /* %o0: channel | ||
2289 | * %o1: pointer to unsigned long ra | ||
2290 | * %o2: pointer to unsigned long num_entries | ||
2291 | * | ||
2292 | * returns %o0: status | ||
2293 | */ | ||
2294 | .globl sun4v_ldc_get_map_table | ||
2295 | .type sun4v_ldc_get_map_table,#function | ||
2296 | sun4v_ldc_get_map_table: | ||
2297 | mov %o1, %g1 | ||
2298 | mov %o2, %g2 | ||
2299 | mov HV_FAST_LDC_GET_MAP_TABLE, %o5 | ||
2300 | ta HV_FAST_TRAP | ||
2301 | stx %o1, [%g1] | ||
2302 | stx %o2, [%g2] | ||
2303 | retl | ||
2304 | nop | ||
2305 | .size sun4v_ldc_get_map_table, .-sun4v_ldc_get_map_table | ||
2306 | |||
2307 | /* %o0: channel | ||
2308 | * %o1: dir_code | ||
2309 | * %o2: tgt_raddr | ||
2310 | * %o3: lcl_raddr | ||
2311 | * %o4: len | ||
2312 | * %o5: pointer to unsigned long actual_len | ||
2313 | * | ||
2314 | * returns %o0: status | ||
2315 | */ | ||
2316 | .globl sun4v_ldc_copy | ||
2317 | .type sun4v_ldc_copy,#function | ||
2318 | sun4v_ldc_copy: | ||
2319 | mov %o5, %g1 | ||
2320 | mov HV_FAST_LDC_COPY, %o5 | ||
2321 | ta HV_FAST_TRAP | ||
2322 | stx %o1, [%g1] | ||
2323 | retl | ||
2324 | nop | ||
2325 | .size sun4v_ldc_copy, .-sun4v_ldc_copy | ||
2326 | |||
2327 | /* %o0: channel | ||
2328 | * %o1: cookie | ||
2329 | * %o2: pointer to unsigned long ra | ||
2330 | * %o3: pointer to unsigned long perm | ||
2331 | * | ||
2332 | * returns %o0: status | ||
2333 | */ | ||
2334 | .globl sun4v_ldc_mapin | ||
2335 | .type sun4v_ldc_mapin,#function | ||
2336 | sun4v_ldc_mapin: | ||
2337 | mov %o2, %g1 | ||
2338 | mov %o3, %g2 | ||
2339 | mov HV_FAST_LDC_MAPIN, %o5 | ||
2340 | ta HV_FAST_TRAP | ||
2341 | stx %o1, [%g1] | ||
2342 | stx %o2, [%g2] | ||
2343 | retl | ||
2344 | nop | ||
2345 | .size sun4v_ldc_mapin, .-sun4v_ldc_mapin | ||
2346 | |||
2347 | /* %o0: ra | ||
2348 | * | ||
2349 | * returns %o0: status | ||
2350 | */ | ||
2351 | .globl sun4v_ldc_unmap | ||
2352 | .type sun4v_ldc_unmap,#function | ||
2353 | sun4v_ldc_unmap: | ||
2354 | mov HV_FAST_LDC_UNMAP, %o5 | ||
2355 | ta HV_FAST_TRAP | ||
2356 | retl | ||
2357 | nop | ||
2358 | .size sun4v_ldc_unmap, .-sun4v_ldc_unmap | ||
2359 | |||
2360 | /* %o0: cookie | ||
2361 | * %o1: mte_cookie | ||
2362 | * | ||
2363 | * returns %o0: status | ||
2364 | */ | ||
2365 | .globl sun4v_ldc_revoke | ||
2366 | .type sun4v_ldc_revoke,#function | ||
2367 | sun4v_ldc_revoke: | ||
2368 | mov HV_FAST_LDC_REVOKE, %o5 | ||
2369 | ta HV_FAST_TRAP | ||
2370 | retl | ||
2371 | nop | ||
2372 | .size sun4v_ldc_revoke, .-sun4v_ldc_revoke | ||
2373 | |||
2374 | /* %o0: device handle | ||
2375 | * %o1: device INO | ||
2376 | * %o2: pointer to unsigned long cookie | ||
2377 | * | ||
2378 | * returns %o0: status | ||
2379 | */ | ||
2380 | .globl sun4v_vintr_get_cookie | ||
2381 | .type sun4v_vintr_get_cookie,#function | ||
2382 | sun4v_vintr_get_cookie: | ||
2383 | mov %o2, %g1 | ||
2384 | mov HV_FAST_VINTR_GET_COOKIE, %o5 | ||
2385 | ta HV_FAST_TRAP | ||
2386 | stx %o1, [%g1] | ||
2387 | retl | ||
2388 | nop | ||
2389 | .size sun4v_vintr_get_cookie, .-sun4v_vintr_get_cookie | ||
2390 | |||
2391 | /* %o0: device handle | ||
2392 | * %o1: device INO | ||
2393 | * %o2: cookie | ||
2394 | * | ||
2395 | * returns %o0: status | ||
2396 | */ | ||
2397 | .globl sun4v_vintr_set_cookie | ||
2398 | .type sun4v_vintr_set_cookie,#function | ||
2399 | sun4v_vintr_set_cookie: | ||
2400 | mov HV_FAST_VINTR_SET_COOKIE, %o5 | ||
2401 | ta HV_FAST_TRAP | ||
2402 | retl | ||
2403 | nop | ||
2404 | .size sun4v_vintr_set_cookie, .-sun4v_vintr_set_cookie | ||
2405 | |||
2406 | /* %o0: device handle | ||
2407 | * %o1: device INO | ||
2408 | * %o2: pointer to unsigned long valid_state | ||
2409 | * | ||
2410 | * returns %o0: status | ||
2411 | */ | ||
2412 | .globl sun4v_vintr_get_valid | ||
2413 | .type sun4v_vintr_get_valid,#function | ||
2414 | sun4v_vintr_get_valid: | ||
2415 | mov %o2, %g1 | ||
2416 | mov HV_FAST_VINTR_GET_VALID, %o5 | ||
2417 | ta HV_FAST_TRAP | ||
2418 | stx %o1, [%g1] | ||
2419 | retl | ||
2420 | nop | ||
2421 | .size sun4v_vintr_get_valid, .-sun4v_vintr_get_valid | ||
2422 | |||
2423 | /* %o0: device handle | ||
2424 | * %o1: device INO | ||
2425 | * %o2: valid_state | ||
2426 | * | ||
2427 | * returns %o0: status | ||
2428 | */ | ||
2429 | .globl sun4v_vintr_set_valid | ||
2430 | .type sun4v_vintr_set_valid,#function | ||
2431 | sun4v_vintr_set_valid: | ||
2432 | mov HV_FAST_VINTR_SET_VALID, %o5 | ||
2433 | ta HV_FAST_TRAP | ||
2434 | retl | ||
2435 | nop | ||
2436 | .size sun4v_vintr_set_valid, .-sun4v_vintr_set_valid | ||
2437 | |||
2438 | /* %o0: device handle | ||
2439 | * %o1: device INO | ||
2440 | * %o2: pointer to unsigned long state | ||
2441 | * | ||
2442 | * returns %o0: status | ||
2443 | */ | ||
2444 | .globl sun4v_vintr_get_state | ||
2445 | .type sun4v_vintr_get_state,#function | ||
2446 | sun4v_vintr_get_state: | ||
2447 | mov %o2, %g1 | ||
2448 | mov HV_FAST_VINTR_GET_STATE, %o5 | ||
2449 | ta HV_FAST_TRAP | ||
2450 | stx %o1, [%g1] | ||
2451 | retl | ||
2452 | nop | ||
2453 | .size sun4v_vintr_get_state, .-sun4v_vintr_get_state | ||
2454 | |||
2455 | /* %o0: device handle | ||
2456 | * %o1: device INO | ||
2457 | * %o2: state | ||
2458 | * | ||
2459 | * returns %o0: status | ||
2460 | */ | ||
2461 | .globl sun4v_vintr_set_state | ||
2462 | .type sun4v_vintr_set_state,#function | ||
2463 | sun4v_vintr_set_state: | ||
2464 | mov HV_FAST_VINTR_SET_STATE, %o5 | ||
2465 | ta HV_FAST_TRAP | ||
2466 | retl | ||
2467 | nop | ||
2468 | .size sun4v_vintr_set_state, .-sun4v_vintr_set_state | ||
2469 | |||
2470 | /* %o0: device handle | ||
2471 | * %o1: device INO | ||
2472 | * %o2: pointer to unsigned long cpuid | ||
2473 | * | ||
2474 | * returns %o0: status | ||
2475 | */ | ||
2476 | .globl sun4v_vintr_get_target | ||
2477 | .type sun4v_vintr_get_target,#function | ||
2478 | sun4v_vintr_get_target: | ||
2479 | mov %o2, %g1 | ||
2480 | mov HV_FAST_VINTR_GET_TARGET, %o5 | ||
2481 | ta HV_FAST_TRAP | ||
2482 | stx %o1, [%g1] | ||
2483 | retl | ||
2484 | nop | ||
2485 | .size sun4v_vintr_get_target, .-sun4v_vintr_get_target | ||
2486 | |||
2487 | /* %o0: device handle | ||
2488 | * %o1: device INO | ||
2489 | * %o2: cpuid | ||
2490 | * | ||
2491 | * returns %o0: status | ||
2492 | */ | ||
2493 | .globl sun4v_vintr_set_target | ||
2494 | .type sun4v_vintr_set_target,#function | ||
2495 | sun4v_vintr_set_target: | ||
2496 | mov HV_FAST_VINTR_SET_TARGET, %o5 | ||
2497 | ta HV_FAST_TRAP | ||
2498 | retl | ||
2499 | nop | ||
2500 | .size sun4v_vintr_set_target, .-sun4v_vintr_set_target | ||
diff --git a/arch/sparc64/kernel/head.S b/arch/sparc64/kernel/head.S index baea10a98196..77259526cb15 100644 --- a/arch/sparc64/kernel/head.S +++ b/arch/sparc64/kernel/head.S | |||
@@ -523,7 +523,7 @@ tlb_fixup_done: | |||
523 | #else | 523 | #else |
524 | mov 0, %o0 | 524 | mov 0, %o0 |
525 | #endif | 525 | #endif |
526 | stb %o0, [%g6 + TI_CPU] | 526 | sth %o0, [%g6 + TI_CPU] |
527 | 527 | ||
528 | /* Off we go.... */ | 528 | /* Off we go.... */ |
529 | call start_kernel | 529 | call start_kernel |
@@ -653,33 +653,54 @@ setup_tba: | |||
653 | restore | 653 | restore |
654 | sparc64_boot_end: | 654 | sparc64_boot_end: |
655 | 655 | ||
656 | #include "ktlb.S" | ||
657 | #include "tsb.S" | ||
658 | #include "etrap.S" | 656 | #include "etrap.S" |
659 | #include "rtrap.S" | 657 | #include "rtrap.S" |
660 | #include "winfixup.S" | 658 | #include "winfixup.S" |
661 | #include "entry.S" | 659 | #include "entry.S" |
662 | #include "sun4v_tlb_miss.S" | 660 | #include "sun4v_tlb_miss.S" |
663 | #include "sun4v_ivec.S" | 661 | #include "sun4v_ivec.S" |
662 | #include "ktlb.S" | ||
663 | #include "tsb.S" | ||
664 | 664 | ||
665 | /* | 665 | /* |
666 | * The following skip makes sure the trap table in ttable.S is aligned | 666 | * The following skip makes sure the trap table in ttable.S is aligned |
667 | * on a 32K boundary as required by the v9 specs for TBA register. | 667 | * on a 32K boundary as required by the v9 specs for TBA register. |
668 | * | 668 | * |
669 | * We align to a 32K boundary, then we have the 32K kernel TSB, | 669 | * We align to a 32K boundary, then we have the 32K kernel TSB, |
670 | * then the 32K aligned trap table. | 670 | * the 64K kernel 4MB TSB, and then the 32K aligned trap table. |
671 | */ | 671 | */ |
672 | 1: | 672 | 1: |
673 | .skip 0x4000 + _start - 1b | 673 | .skip 0x4000 + _start - 1b |
674 | 674 | ||
675 | ! 0x0000000000408000 | ||
676 | |||
675 | .globl swapper_tsb | 677 | .globl swapper_tsb |
676 | swapper_tsb: | 678 | swapper_tsb: |
677 | .skip (32 * 1024) | 679 | .skip (32 * 1024) |
678 | 680 | ||
679 | ! 0x0000000000408000 | 681 | .globl swapper_4m_tsb |
682 | swapper_4m_tsb: | ||
683 | .skip (64 * 1024) | ||
684 | |||
685 | ! 0x0000000000420000 | ||
680 | 686 | ||
687 | /* Some care needs to be exercised if you try to move the | ||
688 | * location of the trap table relative to other things. For | ||
689 | * one thing there are br* instructions in some of the | ||
690 | * trap table entires which branch back to code in ktlb.S | ||
691 | * Those instructions can only handle a signed 16-bit | ||
692 | * displacement. | ||
693 | * | ||
694 | * There is a binutils bug (bugzilla #4558) which causes | ||
695 | * the relocation overflow checks for such instructions to | ||
696 | * not be done correctly. So bintuils will not notice the | ||
697 | * error and will instead write junk into the relocation and | ||
698 | * you'll have an unbootable kernel. | ||
699 | */ | ||
681 | #include "ttable.S" | 700 | #include "ttable.S" |
682 | 701 | ||
702 | ! 0x0000000000428000 | ||
703 | |||
683 | #include "systbls.S" | 704 | #include "systbls.S" |
684 | 705 | ||
685 | .data | 706 | .data |
diff --git a/arch/sparc64/kernel/hvapi.c b/arch/sparc64/kernel/hvapi.c new file mode 100644 index 000000000000..f34f5d6181ef --- /dev/null +++ b/arch/sparc64/kernel/hvapi.c | |||
@@ -0,0 +1,192 @@ | |||
1 | /* hvapi.c: Hypervisor API management. | ||
2 | * | ||
3 | * Copyright (C) 2007 David S. Miller <davem@davemloft.net> | ||
4 | */ | ||
5 | #include <linux/kernel.h> | ||
6 | #include <linux/module.h> | ||
7 | #include <linux/init.h> | ||
8 | #include <linux/slab.h> | ||
9 | |||
10 | #include <asm/hypervisor.h> | ||
11 | #include <asm/oplib.h> | ||
12 | #include <asm/sstate.h> | ||
13 | |||
14 | /* If the hypervisor indicates that the API setting | ||
15 | * calls are unsupported, by returning HV_EBADTRAP or | ||
16 | * HV_ENOTSUPPORTED, we assume that API groups with the | ||
17 | * PRE_API flag set are major 1 minor 0. | ||
18 | */ | ||
19 | struct api_info { | ||
20 | unsigned long group; | ||
21 | unsigned long major; | ||
22 | unsigned long minor; | ||
23 | unsigned int refcnt; | ||
24 | unsigned int flags; | ||
25 | #define FLAG_PRE_API 0x00000001 | ||
26 | }; | ||
27 | |||
28 | static struct api_info api_table[] = { | ||
29 | { .group = HV_GRP_SUN4V, .flags = FLAG_PRE_API }, | ||
30 | { .group = HV_GRP_CORE, .flags = FLAG_PRE_API }, | ||
31 | { .group = HV_GRP_INTR, }, | ||
32 | { .group = HV_GRP_SOFT_STATE, }, | ||
33 | { .group = HV_GRP_PCI, .flags = FLAG_PRE_API }, | ||
34 | { .group = HV_GRP_LDOM, }, | ||
35 | { .group = HV_GRP_SVC_CHAN, .flags = FLAG_PRE_API }, | ||
36 | { .group = HV_GRP_NCS, .flags = FLAG_PRE_API }, | ||
37 | { .group = HV_GRP_NIAG_PERF, .flags = FLAG_PRE_API }, | ||
38 | { .group = HV_GRP_FIRE_PERF, }, | ||
39 | { .group = HV_GRP_DIAG, .flags = FLAG_PRE_API }, | ||
40 | }; | ||
41 | |||
42 | static DEFINE_SPINLOCK(hvapi_lock); | ||
43 | |||
44 | static struct api_info *__get_info(unsigned long group) | ||
45 | { | ||
46 | int i; | ||
47 | |||
48 | for (i = 0; i < ARRAY_SIZE(api_table); i++) { | ||
49 | if (api_table[i].group == group) | ||
50 | return &api_table[i]; | ||
51 | } | ||
52 | return NULL; | ||
53 | } | ||
54 | |||
55 | static void __get_ref(struct api_info *p) | ||
56 | { | ||
57 | p->refcnt++; | ||
58 | } | ||
59 | |||
60 | static void __put_ref(struct api_info *p) | ||
61 | { | ||
62 | if (--p->refcnt == 0) { | ||
63 | unsigned long ignore; | ||
64 | |||
65 | sun4v_set_version(p->group, 0, 0, &ignore); | ||
66 | p->major = p->minor = 0; | ||
67 | } | ||
68 | } | ||
69 | |||
70 | /* Register a hypervisor API specification. It indicates the | ||
71 | * API group and desired major+minor. | ||
72 | * | ||
73 | * If an existing API registration exists '0' (success) will | ||
74 | * be returned if it is compatible with the one being registered. | ||
75 | * Otherwise a negative error code will be returned. | ||
76 | * | ||
77 | * Otherwise an attempt will be made to negotiate the requested | ||
78 | * API group/major/minor with the hypervisor, and errors returned | ||
79 | * if that does not succeed. | ||
80 | */ | ||
81 | int sun4v_hvapi_register(unsigned long group, unsigned long major, | ||
82 | unsigned long *minor) | ||
83 | { | ||
84 | struct api_info *p; | ||
85 | unsigned long flags; | ||
86 | int ret; | ||
87 | |||
88 | spin_lock_irqsave(&hvapi_lock, flags); | ||
89 | p = __get_info(group); | ||
90 | ret = -EINVAL; | ||
91 | if (p) { | ||
92 | if (p->refcnt) { | ||
93 | ret = -EINVAL; | ||
94 | if (p->major == major) { | ||
95 | *minor = p->minor; | ||
96 | ret = 0; | ||
97 | } | ||
98 | } else { | ||
99 | unsigned long actual_minor; | ||
100 | unsigned long hv_ret; | ||
101 | |||
102 | hv_ret = sun4v_set_version(group, major, *minor, | ||
103 | &actual_minor); | ||
104 | ret = -EINVAL; | ||
105 | if (hv_ret == HV_EOK) { | ||
106 | *minor = actual_minor; | ||
107 | p->major = major; | ||
108 | p->minor = actual_minor; | ||
109 | ret = 0; | ||
110 | } else if (hv_ret == HV_EBADTRAP || | ||
111 | hv_ret == HV_ENOTSUPPORTED) { | ||
112 | if (p->flags & FLAG_PRE_API) { | ||
113 | if (major == 1) { | ||
114 | p->major = 1; | ||
115 | p->minor = 0; | ||
116 | *minor = 0; | ||
117 | ret = 0; | ||
118 | } | ||
119 | } | ||
120 | } | ||
121 | } | ||
122 | |||
123 | if (ret == 0) | ||
124 | __get_ref(p); | ||
125 | } | ||
126 | spin_unlock_irqrestore(&hvapi_lock, flags); | ||
127 | |||
128 | return ret; | ||
129 | } | ||
130 | EXPORT_SYMBOL(sun4v_hvapi_register); | ||
131 | |||
132 | void sun4v_hvapi_unregister(unsigned long group) | ||
133 | { | ||
134 | struct api_info *p; | ||
135 | unsigned long flags; | ||
136 | |||
137 | spin_lock_irqsave(&hvapi_lock, flags); | ||
138 | p = __get_info(group); | ||
139 | if (p) | ||
140 | __put_ref(p); | ||
141 | spin_unlock_irqrestore(&hvapi_lock, flags); | ||
142 | } | ||
143 | EXPORT_SYMBOL(sun4v_hvapi_unregister); | ||
144 | |||
145 | int sun4v_hvapi_get(unsigned long group, | ||
146 | unsigned long *major, | ||
147 | unsigned long *minor) | ||
148 | { | ||
149 | struct api_info *p; | ||
150 | unsigned long flags; | ||
151 | int ret; | ||
152 | |||
153 | spin_lock_irqsave(&hvapi_lock, flags); | ||
154 | ret = -EINVAL; | ||
155 | p = __get_info(group); | ||
156 | if (p && p->refcnt) { | ||
157 | *major = p->major; | ||
158 | *minor = p->minor; | ||
159 | ret = 0; | ||
160 | } | ||
161 | spin_unlock_irqrestore(&hvapi_lock, flags); | ||
162 | |||
163 | return ret; | ||
164 | } | ||
165 | EXPORT_SYMBOL(sun4v_hvapi_get); | ||
166 | |||
167 | void __init sun4v_hvapi_init(void) | ||
168 | { | ||
169 | unsigned long group, major, minor; | ||
170 | |||
171 | group = HV_GRP_SUN4V; | ||
172 | major = 1; | ||
173 | minor = 0; | ||
174 | if (sun4v_hvapi_register(group, major, &minor)) | ||
175 | goto bad; | ||
176 | |||
177 | group = HV_GRP_CORE; | ||
178 | major = 1; | ||
179 | minor = 1; | ||
180 | if (sun4v_hvapi_register(group, major, &minor)) | ||
181 | goto bad; | ||
182 | |||
183 | sun4v_sstate_init(); | ||
184 | |||
185 | return; | ||
186 | |||
187 | bad: | ||
188 | prom_printf("HVAPI: Cannot register API group " | ||
189 | "%lx with major(%u) minor(%u)\n", | ||
190 | group, major, minor); | ||
191 | prom_halt(); | ||
192 | } | ||
diff --git a/arch/sparc64/kernel/irq.c b/arch/sparc64/kernel/irq.c index 3edc18e1b818..a36f8dd0c021 100644 --- a/arch/sparc64/kernel/irq.c +++ b/arch/sparc64/kernel/irq.c | |||
@@ -171,8 +171,6 @@ skip: | |||
171 | return 0; | 171 | return 0; |
172 | } | 172 | } |
173 | 173 | ||
174 | extern unsigned long real_hard_smp_processor_id(void); | ||
175 | |||
176 | static unsigned int sun4u_compute_tid(unsigned long imap, unsigned long cpuid) | 174 | static unsigned int sun4u_compute_tid(unsigned long imap, unsigned long cpuid) |
177 | { | 175 | { |
178 | unsigned int tid; | 176 | unsigned int tid; |
@@ -694,9 +692,20 @@ void init_irqwork_curcpu(void) | |||
694 | trap_block[cpu].irq_worklist = 0; | 692 | trap_block[cpu].irq_worklist = 0; |
695 | } | 693 | } |
696 | 694 | ||
697 | static void __cpuinit register_one_mondo(unsigned long paddr, unsigned long type) | 695 | /* Please be very careful with register_one_mondo() and |
696 | * sun4v_register_mondo_queues(). | ||
697 | * | ||
698 | * On SMP this gets invoked from the CPU trampoline before | ||
699 | * the cpu has fully taken over the trap table from OBP, | ||
700 | * and it's kernel stack + %g6 thread register state is | ||
701 | * not fully cooked yet. | ||
702 | * | ||
703 | * Therefore you cannot make any OBP calls, not even prom_printf, | ||
704 | * from these two routines. | ||
705 | */ | ||
706 | static void __cpuinit register_one_mondo(unsigned long paddr, unsigned long type, unsigned long qmask) | ||
698 | { | 707 | { |
699 | unsigned long num_entries = 128; | 708 | unsigned long num_entries = (qmask + 1) / 64; |
700 | unsigned long status; | 709 | unsigned long status; |
701 | 710 | ||
702 | status = sun4v_cpu_qconf(type, paddr, num_entries); | 711 | status = sun4v_cpu_qconf(type, paddr, num_entries); |
@@ -711,44 +720,58 @@ static void __cpuinit sun4v_register_mondo_queues(int this_cpu) | |||
711 | { | 720 | { |
712 | struct trap_per_cpu *tb = &trap_block[this_cpu]; | 721 | struct trap_per_cpu *tb = &trap_block[this_cpu]; |
713 | 722 | ||
714 | register_one_mondo(tb->cpu_mondo_pa, HV_CPU_QUEUE_CPU_MONDO); | 723 | register_one_mondo(tb->cpu_mondo_pa, HV_CPU_QUEUE_CPU_MONDO, |
715 | register_one_mondo(tb->dev_mondo_pa, HV_CPU_QUEUE_DEVICE_MONDO); | 724 | tb->cpu_mondo_qmask); |
716 | register_one_mondo(tb->resum_mondo_pa, HV_CPU_QUEUE_RES_ERROR); | 725 | register_one_mondo(tb->dev_mondo_pa, HV_CPU_QUEUE_DEVICE_MONDO, |
717 | register_one_mondo(tb->nonresum_mondo_pa, HV_CPU_QUEUE_NONRES_ERROR); | 726 | tb->dev_mondo_qmask); |
727 | register_one_mondo(tb->resum_mondo_pa, HV_CPU_QUEUE_RES_ERROR, | ||
728 | tb->resum_qmask); | ||
729 | register_one_mondo(tb->nonresum_mondo_pa, HV_CPU_QUEUE_NONRES_ERROR, | ||
730 | tb->nonresum_qmask); | ||
718 | } | 731 | } |
719 | 732 | ||
720 | static void __cpuinit alloc_one_mondo(unsigned long *pa_ptr, int use_bootmem) | 733 | static void __cpuinit alloc_one_mondo(unsigned long *pa_ptr, unsigned long qmask, int use_bootmem) |
721 | { | 734 | { |
722 | void *page; | 735 | unsigned long size = PAGE_ALIGN(qmask + 1); |
736 | unsigned long order = get_order(size); | ||
737 | void *p = NULL; | ||
723 | 738 | ||
724 | if (use_bootmem) | 739 | if (use_bootmem) { |
725 | page = alloc_bootmem_low_pages(PAGE_SIZE); | 740 | p = __alloc_bootmem_low(size, size, 0); |
726 | else | 741 | } else { |
727 | page = (void *) get_zeroed_page(GFP_ATOMIC); | 742 | struct page *page = alloc_pages(GFP_ATOMIC | __GFP_ZERO, order); |
743 | if (page) | ||
744 | p = page_address(page); | ||
745 | } | ||
728 | 746 | ||
729 | if (!page) { | 747 | if (!p) { |
730 | prom_printf("SUN4V: Error, cannot allocate mondo queue.\n"); | 748 | prom_printf("SUN4V: Error, cannot allocate mondo queue.\n"); |
731 | prom_halt(); | 749 | prom_halt(); |
732 | } | 750 | } |
733 | 751 | ||
734 | *pa_ptr = __pa(page); | 752 | *pa_ptr = __pa(p); |
735 | } | 753 | } |
736 | 754 | ||
737 | static void __cpuinit alloc_one_kbuf(unsigned long *pa_ptr, int use_bootmem) | 755 | static void __cpuinit alloc_one_kbuf(unsigned long *pa_ptr, unsigned long qmask, int use_bootmem) |
738 | { | 756 | { |
739 | void *page; | 757 | unsigned long size = PAGE_ALIGN(qmask + 1); |
758 | unsigned long order = get_order(size); | ||
759 | void *p = NULL; | ||
740 | 760 | ||
741 | if (use_bootmem) | 761 | if (use_bootmem) { |
742 | page = alloc_bootmem_low_pages(PAGE_SIZE); | 762 | p = __alloc_bootmem_low(size, size, 0); |
743 | else | 763 | } else { |
744 | page = (void *) get_zeroed_page(GFP_ATOMIC); | 764 | struct page *page = alloc_pages(GFP_ATOMIC | __GFP_ZERO, order); |
765 | if (page) | ||
766 | p = page_address(page); | ||
767 | } | ||
745 | 768 | ||
746 | if (!page) { | 769 | if (!p) { |
747 | prom_printf("SUN4V: Error, cannot allocate kbuf page.\n"); | 770 | prom_printf("SUN4V: Error, cannot allocate kbuf page.\n"); |
748 | prom_halt(); | 771 | prom_halt(); |
749 | } | 772 | } |
750 | 773 | ||
751 | *pa_ptr = __pa(page); | 774 | *pa_ptr = __pa(p); |
752 | } | 775 | } |
753 | 776 | ||
754 | static void __cpuinit init_cpu_send_mondo_info(struct trap_per_cpu *tb, int use_bootmem) | 777 | static void __cpuinit init_cpu_send_mondo_info(struct trap_per_cpu *tb, int use_bootmem) |
@@ -779,12 +802,12 @@ void __cpuinit sun4v_init_mondo_queues(int use_bootmem, int cpu, int alloc, int | |||
779 | struct trap_per_cpu *tb = &trap_block[cpu]; | 802 | struct trap_per_cpu *tb = &trap_block[cpu]; |
780 | 803 | ||
781 | if (alloc) { | 804 | if (alloc) { |
782 | alloc_one_mondo(&tb->cpu_mondo_pa, use_bootmem); | 805 | alloc_one_mondo(&tb->cpu_mondo_pa, tb->cpu_mondo_qmask, use_bootmem); |
783 | alloc_one_mondo(&tb->dev_mondo_pa, use_bootmem); | 806 | alloc_one_mondo(&tb->dev_mondo_pa, tb->dev_mondo_qmask, use_bootmem); |
784 | alloc_one_mondo(&tb->resum_mondo_pa, use_bootmem); | 807 | alloc_one_mondo(&tb->resum_mondo_pa, tb->resum_qmask, use_bootmem); |
785 | alloc_one_kbuf(&tb->resum_kernel_buf_pa, use_bootmem); | 808 | alloc_one_kbuf(&tb->resum_kernel_buf_pa, tb->resum_qmask, use_bootmem); |
786 | alloc_one_mondo(&tb->nonresum_mondo_pa, use_bootmem); | 809 | alloc_one_mondo(&tb->nonresum_mondo_pa, tb->nonresum_qmask, use_bootmem); |
787 | alloc_one_kbuf(&tb->nonresum_kernel_buf_pa, use_bootmem); | 810 | alloc_one_kbuf(&tb->nonresum_kernel_buf_pa, tb->nonresum_qmask, use_bootmem); |
788 | 811 | ||
789 | init_cpu_send_mondo_info(tb, use_bootmem); | 812 | init_cpu_send_mondo_info(tb, use_bootmem); |
790 | } | 813 | } |
diff --git a/arch/sparc64/kernel/itlb_miss.S b/arch/sparc64/kernel/itlb_miss.S index ad46e2024f4b..5a8377b54955 100644 --- a/arch/sparc64/kernel/itlb_miss.S +++ b/arch/sparc64/kernel/itlb_miss.S | |||
@@ -11,12 +11,12 @@ | |||
11 | /* ITLB ** ICACHE line 2: TSB compare and TLB load */ | 11 | /* ITLB ** ICACHE line 2: TSB compare and TLB load */ |
12 | bne,pn %xcc, tsb_miss_itlb ! Miss | 12 | bne,pn %xcc, tsb_miss_itlb ! Miss |
13 | mov FAULT_CODE_ITLB, %g3 | 13 | mov FAULT_CODE_ITLB, %g3 |
14 | andcc %g5, _PAGE_EXEC_4U, %g0 ! Executable? | 14 | sethi %hi(_PAGE_EXEC_4U), %g4 |
15 | andcc %g5, %g4, %g0 ! Executable? | ||
15 | be,pn %xcc, tsb_do_fault | 16 | be,pn %xcc, tsb_do_fault |
16 | nop ! Delay slot, fill me | 17 | nop ! Delay slot, fill me |
17 | stxa %g5, [%g0] ASI_ITLB_DATA_IN ! Load TLB | 18 | stxa %g5, [%g0] ASI_ITLB_DATA_IN ! Load TLB |
18 | retry ! Trap done | 19 | retry ! Trap done |
19 | nop | ||
20 | 20 | ||
21 | /* ITLB ** ICACHE line 3: */ | 21 | /* ITLB ** ICACHE line 3: */ |
22 | nop | 22 | nop |
diff --git a/arch/sparc64/kernel/mdesc.c b/arch/sparc64/kernel/mdesc.c new file mode 100644 index 000000000000..9246c2cf9574 --- /dev/null +++ b/arch/sparc64/kernel/mdesc.c | |||
@@ -0,0 +1,619 @@ | |||
1 | /* mdesc.c: Sun4V machine description handling. | ||
2 | * | ||
3 | * Copyright (C) 2007 David S. Miller <davem@davemloft.net> | ||
4 | */ | ||
5 | #include <linux/kernel.h> | ||
6 | #include <linux/types.h> | ||
7 | #include <linux/bootmem.h> | ||
8 | #include <linux/log2.h> | ||
9 | |||
10 | #include <asm/hypervisor.h> | ||
11 | #include <asm/mdesc.h> | ||
12 | #include <asm/prom.h> | ||
13 | #include <asm/oplib.h> | ||
14 | #include <asm/smp.h> | ||
15 | |||
16 | /* Unlike the OBP device tree, the machine description is a full-on | ||
17 | * DAG. An arbitrary number of ARCs are possible from one | ||
18 | * node to other nodes and thus we can't use the OBP device_node | ||
19 | * data structure to represent these nodes inside of the kernel. | ||
20 | * | ||
21 | * Actually, it isn't even a DAG, because there are back pointers | ||
22 | * which create cycles in the graph. | ||
23 | * | ||
24 | * mdesc_hdr and mdesc_elem describe the layout of the data structure | ||
25 | * we get from the Hypervisor. | ||
26 | */ | ||
27 | struct mdesc_hdr { | ||
28 | u32 version; /* Transport version */ | ||
29 | u32 node_sz; /* node block size */ | ||
30 | u32 name_sz; /* name block size */ | ||
31 | u32 data_sz; /* data block size */ | ||
32 | }; | ||
33 | |||
34 | struct mdesc_elem { | ||
35 | u8 tag; | ||
36 | #define MD_LIST_END 0x00 | ||
37 | #define MD_NODE 0x4e | ||
38 | #define MD_NODE_END 0x45 | ||
39 | #define MD_NOOP 0x20 | ||
40 | #define MD_PROP_ARC 0x61 | ||
41 | #define MD_PROP_VAL 0x76 | ||
42 | #define MD_PROP_STR 0x73 | ||
43 | #define MD_PROP_DATA 0x64 | ||
44 | u8 name_len; | ||
45 | u16 resv; | ||
46 | u32 name_offset; | ||
47 | union { | ||
48 | struct { | ||
49 | u32 data_len; | ||
50 | u32 data_offset; | ||
51 | } data; | ||
52 | u64 val; | ||
53 | } d; | ||
54 | }; | ||
55 | |||
56 | static struct mdesc_hdr *main_mdesc; | ||
57 | static struct mdesc_node *allnodes; | ||
58 | |||
59 | static struct mdesc_node *allnodes_tail; | ||
60 | static unsigned int unique_id; | ||
61 | |||
62 | static struct mdesc_node **mdesc_hash; | ||
63 | static unsigned int mdesc_hash_size; | ||
64 | |||
65 | static inline unsigned int node_hashfn(u64 node) | ||
66 | { | ||
67 | return ((unsigned int) (node ^ (node >> 8) ^ (node >> 16))) | ||
68 | & (mdesc_hash_size - 1); | ||
69 | } | ||
70 | |||
71 | static inline void hash_node(struct mdesc_node *mp) | ||
72 | { | ||
73 | struct mdesc_node **head = &mdesc_hash[node_hashfn(mp->node)]; | ||
74 | |||
75 | mp->hash_next = *head; | ||
76 | *head = mp; | ||
77 | |||
78 | if (allnodes_tail) { | ||
79 | allnodes_tail->allnodes_next = mp; | ||
80 | allnodes_tail = mp; | ||
81 | } else { | ||
82 | allnodes = allnodes_tail = mp; | ||
83 | } | ||
84 | } | ||
85 | |||
86 | static struct mdesc_node *find_node(u64 node) | ||
87 | { | ||
88 | struct mdesc_node *mp = mdesc_hash[node_hashfn(node)]; | ||
89 | |||
90 | while (mp) { | ||
91 | if (mp->node == node) | ||
92 | return mp; | ||
93 | |||
94 | mp = mp->hash_next; | ||
95 | } | ||
96 | return NULL; | ||
97 | } | ||
98 | |||
99 | struct property *md_find_property(const struct mdesc_node *mp, | ||
100 | const char *name, | ||
101 | int *lenp) | ||
102 | { | ||
103 | struct property *pp; | ||
104 | |||
105 | for (pp = mp->properties; pp != 0; pp = pp->next) { | ||
106 | if (strcasecmp(pp->name, name) == 0) { | ||
107 | if (lenp) | ||
108 | *lenp = pp->length; | ||
109 | break; | ||
110 | } | ||
111 | } | ||
112 | return pp; | ||
113 | } | ||
114 | EXPORT_SYMBOL(md_find_property); | ||
115 | |||
116 | /* | ||
117 | * Find a property with a given name for a given node | ||
118 | * and return the value. | ||
119 | */ | ||
120 | const void *md_get_property(const struct mdesc_node *mp, const char *name, | ||
121 | int *lenp) | ||
122 | { | ||
123 | struct property *pp = md_find_property(mp, name, lenp); | ||
124 | return pp ? pp->value : NULL; | ||
125 | } | ||
126 | EXPORT_SYMBOL(md_get_property); | ||
127 | |||
128 | struct mdesc_node *md_find_node_by_name(struct mdesc_node *from, | ||
129 | const char *name) | ||
130 | { | ||
131 | struct mdesc_node *mp; | ||
132 | |||
133 | mp = from ? from->allnodes_next : allnodes; | ||
134 | for (; mp != NULL; mp = mp->allnodes_next) { | ||
135 | if (strcmp(mp->name, name) == 0) | ||
136 | break; | ||
137 | } | ||
138 | return mp; | ||
139 | } | ||
140 | EXPORT_SYMBOL(md_find_node_by_name); | ||
141 | |||
142 | static unsigned int mdesc_early_allocated; | ||
143 | |||
144 | static void * __init mdesc_early_alloc(unsigned long size) | ||
145 | { | ||
146 | void *ret; | ||
147 | |||
148 | ret = __alloc_bootmem(size, SMP_CACHE_BYTES, 0UL); | ||
149 | if (ret == NULL) { | ||
150 | prom_printf("MDESC: alloc of %lu bytes failed.\n", size); | ||
151 | prom_halt(); | ||
152 | } | ||
153 | |||
154 | memset(ret, 0, size); | ||
155 | |||
156 | mdesc_early_allocated += size; | ||
157 | |||
158 | return ret; | ||
159 | } | ||
160 | |||
161 | static unsigned int __init count_arcs(struct mdesc_elem *ep) | ||
162 | { | ||
163 | unsigned int ret = 0; | ||
164 | |||
165 | ep++; | ||
166 | while (ep->tag != MD_NODE_END) { | ||
167 | if (ep->tag == MD_PROP_ARC) | ||
168 | ret++; | ||
169 | ep++; | ||
170 | } | ||
171 | return ret; | ||
172 | } | ||
173 | |||
174 | static void __init mdesc_node_alloc(u64 node, struct mdesc_elem *ep, const char *names) | ||
175 | { | ||
176 | unsigned int num_arcs = count_arcs(ep); | ||
177 | struct mdesc_node *mp; | ||
178 | |||
179 | mp = mdesc_early_alloc(sizeof(*mp) + | ||
180 | (num_arcs * sizeof(struct mdesc_arc))); | ||
181 | mp->name = names + ep->name_offset; | ||
182 | mp->node = node; | ||
183 | mp->unique_id = unique_id++; | ||
184 | mp->num_arcs = num_arcs; | ||
185 | |||
186 | hash_node(mp); | ||
187 | } | ||
188 | |||
189 | static inline struct mdesc_elem *node_block(struct mdesc_hdr *mdesc) | ||
190 | { | ||
191 | return (struct mdesc_elem *) (mdesc + 1); | ||
192 | } | ||
193 | |||
194 | static inline void *name_block(struct mdesc_hdr *mdesc) | ||
195 | { | ||
196 | return ((void *) node_block(mdesc)) + mdesc->node_sz; | ||
197 | } | ||
198 | |||
199 | static inline void *data_block(struct mdesc_hdr *mdesc) | ||
200 | { | ||
201 | return ((void *) name_block(mdesc)) + mdesc->name_sz; | ||
202 | } | ||
203 | |||
204 | /* In order to avoid recursion (the graph can be very deep) we use a | ||
205 | * two pass algorithm. First we allocate all the nodes and hash them. | ||
206 | * Then we iterate over each node, filling in the arcs and properties. | ||
207 | */ | ||
208 | static void __init build_all_nodes(struct mdesc_hdr *mdesc) | ||
209 | { | ||
210 | struct mdesc_elem *start, *ep; | ||
211 | struct mdesc_node *mp; | ||
212 | const char *names; | ||
213 | void *data; | ||
214 | u64 last_node; | ||
215 | |||
216 | start = ep = node_block(mdesc); | ||
217 | last_node = mdesc->node_sz / 16; | ||
218 | |||
219 | names = name_block(mdesc); | ||
220 | |||
221 | while (1) { | ||
222 | u64 node = ep - start; | ||
223 | |||
224 | if (ep->tag == MD_LIST_END) | ||
225 | break; | ||
226 | |||
227 | if (ep->tag != MD_NODE) { | ||
228 | prom_printf("MDESC: Inconsistent element list.\n"); | ||
229 | prom_halt(); | ||
230 | } | ||
231 | |||
232 | mdesc_node_alloc(node, ep, names); | ||
233 | |||
234 | if (ep->d.val >= last_node) { | ||
235 | printk("MDESC: Warning, early break out of node scan.\n"); | ||
236 | printk("MDESC: Next node [%lu] last_node [%lu].\n", | ||
237 | node, last_node); | ||
238 | break; | ||
239 | } | ||
240 | |||
241 | ep = start + ep->d.val; | ||
242 | } | ||
243 | |||
244 | data = data_block(mdesc); | ||
245 | for (mp = allnodes; mp; mp = mp->allnodes_next) { | ||
246 | struct mdesc_elem *ep = start + mp->node; | ||
247 | struct property **link = &mp->properties; | ||
248 | unsigned int this_arc = 0; | ||
249 | |||
250 | ep++; | ||
251 | while (ep->tag != MD_NODE_END) { | ||
252 | switch (ep->tag) { | ||
253 | case MD_PROP_ARC: { | ||
254 | struct mdesc_node *target; | ||
255 | |||
256 | if (this_arc >= mp->num_arcs) { | ||
257 | prom_printf("MDESC: ARC overrun [%u:%u]\n", | ||
258 | this_arc, mp->num_arcs); | ||
259 | prom_halt(); | ||
260 | } | ||
261 | target = find_node(ep->d.val); | ||
262 | if (!target) { | ||
263 | printk("MDESC: Warning, arc points to " | ||
264 | "missing node, ignoring.\n"); | ||
265 | break; | ||
266 | } | ||
267 | mp->arcs[this_arc].name = | ||
268 | (names + ep->name_offset); | ||
269 | mp->arcs[this_arc].arc = target; | ||
270 | this_arc++; | ||
271 | break; | ||
272 | } | ||
273 | |||
274 | case MD_PROP_VAL: | ||
275 | case MD_PROP_STR: | ||
276 | case MD_PROP_DATA: { | ||
277 | struct property *p = mdesc_early_alloc(sizeof(*p)); | ||
278 | |||
279 | p->unique_id = unique_id++; | ||
280 | p->name = (char *) names + ep->name_offset; | ||
281 | if (ep->tag == MD_PROP_VAL) { | ||
282 | p->value = &ep->d.val; | ||
283 | p->length = 8; | ||
284 | } else { | ||
285 | p->value = data + ep->d.data.data_offset; | ||
286 | p->length = ep->d.data.data_len; | ||
287 | } | ||
288 | *link = p; | ||
289 | link = &p->next; | ||
290 | break; | ||
291 | } | ||
292 | |||
293 | case MD_NOOP: | ||
294 | break; | ||
295 | |||
296 | default: | ||
297 | printk("MDESC: Warning, ignoring unknown tag type %02x\n", | ||
298 | ep->tag); | ||
299 | } | ||
300 | ep++; | ||
301 | } | ||
302 | } | ||
303 | } | ||
304 | |||
305 | static unsigned int __init count_nodes(struct mdesc_hdr *mdesc) | ||
306 | { | ||
307 | struct mdesc_elem *ep = node_block(mdesc); | ||
308 | struct mdesc_elem *end; | ||
309 | unsigned int cnt = 0; | ||
310 | |||
311 | end = ((void *)ep) + mdesc->node_sz; | ||
312 | while (ep < end) { | ||
313 | if (ep->tag == MD_NODE) | ||
314 | cnt++; | ||
315 | ep++; | ||
316 | } | ||
317 | return cnt; | ||
318 | } | ||
319 | |||
320 | static void __init report_platform_properties(void) | ||
321 | { | ||
322 | struct mdesc_node *pn = md_find_node_by_name(NULL, "platform"); | ||
323 | const char *s; | ||
324 | const u64 *v; | ||
325 | |||
326 | if (!pn) { | ||
327 | prom_printf("No platform node in machine-description.\n"); | ||
328 | prom_halt(); | ||
329 | } | ||
330 | |||
331 | s = md_get_property(pn, "banner-name", NULL); | ||
332 | printk("PLATFORM: banner-name [%s]\n", s); | ||
333 | s = md_get_property(pn, "name", NULL); | ||
334 | printk("PLATFORM: name [%s]\n", s); | ||
335 | |||
336 | v = md_get_property(pn, "hostid", NULL); | ||
337 | if (v) | ||
338 | printk("PLATFORM: hostid [%08lx]\n", *v); | ||
339 | v = md_get_property(pn, "serial#", NULL); | ||
340 | if (v) | ||
341 | printk("PLATFORM: serial# [%08lx]\n", *v); | ||
342 | v = md_get_property(pn, "stick-frequency", NULL); | ||
343 | printk("PLATFORM: stick-frequency [%08lx]\n", *v); | ||
344 | v = md_get_property(pn, "mac-address", NULL); | ||
345 | if (v) | ||
346 | printk("PLATFORM: mac-address [%lx]\n", *v); | ||
347 | v = md_get_property(pn, "watchdog-resolution", NULL); | ||
348 | if (v) | ||
349 | printk("PLATFORM: watchdog-resolution [%lu ms]\n", *v); | ||
350 | v = md_get_property(pn, "watchdog-max-timeout", NULL); | ||
351 | if (v) | ||
352 | printk("PLATFORM: watchdog-max-timeout [%lu ms]\n", *v); | ||
353 | v = md_get_property(pn, "max-cpus", NULL); | ||
354 | if (v) | ||
355 | printk("PLATFORM: max-cpus [%lu]\n", *v); | ||
356 | } | ||
357 | |||
358 | static int inline find_in_proplist(const char *list, const char *match, int len) | ||
359 | { | ||
360 | while (len > 0) { | ||
361 | int l; | ||
362 | |||
363 | if (!strcmp(list, match)) | ||
364 | return 1; | ||
365 | l = strlen(list) + 1; | ||
366 | list += l; | ||
367 | len -= l; | ||
368 | } | ||
369 | return 0; | ||
370 | } | ||
371 | |||
372 | static void __init fill_in_one_cache(cpuinfo_sparc *c, struct mdesc_node *mp) | ||
373 | { | ||
374 | const u64 *level = md_get_property(mp, "level", NULL); | ||
375 | const u64 *size = md_get_property(mp, "size", NULL); | ||
376 | const u64 *line_size = md_get_property(mp, "line-size", NULL); | ||
377 | const char *type; | ||
378 | int type_len; | ||
379 | |||
380 | type = md_get_property(mp, "type", &type_len); | ||
381 | |||
382 | switch (*level) { | ||
383 | case 1: | ||
384 | if (find_in_proplist(type, "instn", type_len)) { | ||
385 | c->icache_size = *size; | ||
386 | c->icache_line_size = *line_size; | ||
387 | } else if (find_in_proplist(type, "data", type_len)) { | ||
388 | c->dcache_size = *size; | ||
389 | c->dcache_line_size = *line_size; | ||
390 | } | ||
391 | break; | ||
392 | |||
393 | case 2: | ||
394 | c->ecache_size = *size; | ||
395 | c->ecache_line_size = *line_size; | ||
396 | break; | ||
397 | |||
398 | default: | ||
399 | break; | ||
400 | } | ||
401 | |||
402 | if (*level == 1) { | ||
403 | unsigned int i; | ||
404 | |||
405 | for (i = 0; i < mp->num_arcs; i++) { | ||
406 | struct mdesc_node *t = mp->arcs[i].arc; | ||
407 | |||
408 | if (strcmp(mp->arcs[i].name, "fwd")) | ||
409 | continue; | ||
410 | |||
411 | if (!strcmp(t->name, "cache")) | ||
412 | fill_in_one_cache(c, t); | ||
413 | } | ||
414 | } | ||
415 | } | ||
416 | |||
417 | static void __init mark_core_ids(struct mdesc_node *mp, int core_id) | ||
418 | { | ||
419 | unsigned int i; | ||
420 | |||
421 | for (i = 0; i < mp->num_arcs; i++) { | ||
422 | struct mdesc_node *t = mp->arcs[i].arc; | ||
423 | const u64 *id; | ||
424 | |||
425 | if (strcmp(mp->arcs[i].name, "back")) | ||
426 | continue; | ||
427 | |||
428 | if (!strcmp(t->name, "cpu")) { | ||
429 | id = md_get_property(t, "id", NULL); | ||
430 | if (*id < NR_CPUS) | ||
431 | cpu_data(*id).core_id = core_id; | ||
432 | } else { | ||
433 | unsigned int j; | ||
434 | |||
435 | for (j = 0; j < t->num_arcs; j++) { | ||
436 | struct mdesc_node *n = t->arcs[j].arc; | ||
437 | |||
438 | if (strcmp(t->arcs[j].name, "back")) | ||
439 | continue; | ||
440 | |||
441 | if (strcmp(n->name, "cpu")) | ||
442 | continue; | ||
443 | |||
444 | id = md_get_property(n, "id", NULL); | ||
445 | if (*id < NR_CPUS) | ||
446 | cpu_data(*id).core_id = core_id; | ||
447 | } | ||
448 | } | ||
449 | } | ||
450 | } | ||
451 | |||
452 | static void __init set_core_ids(void) | ||
453 | { | ||
454 | struct mdesc_node *mp; | ||
455 | int idx; | ||
456 | |||
457 | idx = 1; | ||
458 | md_for_each_node_by_name(mp, "cache") { | ||
459 | const u64 *level = md_get_property(mp, "level", NULL); | ||
460 | const char *type; | ||
461 | int len; | ||
462 | |||
463 | if (*level != 1) | ||
464 | continue; | ||
465 | |||
466 | type = md_get_property(mp, "type", &len); | ||
467 | if (!find_in_proplist(type, "instn", len)) | ||
468 | continue; | ||
469 | |||
470 | mark_core_ids(mp, idx); | ||
471 | |||
472 | idx++; | ||
473 | } | ||
474 | } | ||
475 | |||
476 | static void __init get_one_mondo_bits(const u64 *p, unsigned int *mask, unsigned char def) | ||
477 | { | ||
478 | u64 val; | ||
479 | |||
480 | if (!p) | ||
481 | goto use_default; | ||
482 | val = *p; | ||
483 | |||
484 | if (!val || val >= 64) | ||
485 | goto use_default; | ||
486 | |||
487 | *mask = ((1U << val) * 64U) - 1U; | ||
488 | return; | ||
489 | |||
490 | use_default: | ||
491 | *mask = ((1U << def) * 64U) - 1U; | ||
492 | } | ||
493 | |||
494 | static void __init get_mondo_data(struct mdesc_node *mp, struct trap_per_cpu *tb) | ||
495 | { | ||
496 | const u64 *val; | ||
497 | |||
498 | val = md_get_property(mp, "q-cpu-mondo-#bits", NULL); | ||
499 | get_one_mondo_bits(val, &tb->cpu_mondo_qmask, 7); | ||
500 | |||
501 | val = md_get_property(mp, "q-dev-mondo-#bits", NULL); | ||
502 | get_one_mondo_bits(val, &tb->dev_mondo_qmask, 7); | ||
503 | |||
504 | val = md_get_property(mp, "q-resumable-#bits", NULL); | ||
505 | get_one_mondo_bits(val, &tb->resum_qmask, 6); | ||
506 | |||
507 | val = md_get_property(mp, "q-nonresumable-#bits", NULL); | ||
508 | get_one_mondo_bits(val, &tb->nonresum_qmask, 2); | ||
509 | } | ||
510 | |||
511 | static void __init mdesc_fill_in_cpu_data(void) | ||
512 | { | ||
513 | struct mdesc_node *mp; | ||
514 | |||
515 | ncpus_probed = 0; | ||
516 | md_for_each_node_by_name(mp, "cpu") { | ||
517 | const u64 *id = md_get_property(mp, "id", NULL); | ||
518 | const u64 *cfreq = md_get_property(mp, "clock-frequency", NULL); | ||
519 | struct trap_per_cpu *tb; | ||
520 | cpuinfo_sparc *c; | ||
521 | unsigned int i; | ||
522 | int cpuid; | ||
523 | |||
524 | ncpus_probed++; | ||
525 | |||
526 | cpuid = *id; | ||
527 | |||
528 | #ifdef CONFIG_SMP | ||
529 | if (cpuid >= NR_CPUS) | ||
530 | continue; | ||
531 | #else | ||
532 | /* On uniprocessor we only want the values for the | ||
533 | * real physical cpu the kernel booted onto, however | ||
534 | * cpu_data() only has one entry at index 0. | ||
535 | */ | ||
536 | if (cpuid != real_hard_smp_processor_id()) | ||
537 | continue; | ||
538 | cpuid = 0; | ||
539 | #endif | ||
540 | |||
541 | c = &cpu_data(cpuid); | ||
542 | c->clock_tick = *cfreq; | ||
543 | |||
544 | tb = &trap_block[cpuid]; | ||
545 | get_mondo_data(mp, tb); | ||
546 | |||
547 | for (i = 0; i < mp->num_arcs; i++) { | ||
548 | struct mdesc_node *t = mp->arcs[i].arc; | ||
549 | unsigned int j; | ||
550 | |||
551 | if (strcmp(mp->arcs[i].name, "fwd")) | ||
552 | continue; | ||
553 | |||
554 | if (!strcmp(t->name, "cache")) { | ||
555 | fill_in_one_cache(c, t); | ||
556 | continue; | ||
557 | } | ||
558 | |||
559 | for (j = 0; j < t->num_arcs; j++) { | ||
560 | struct mdesc_node *n; | ||
561 | |||
562 | n = t->arcs[j].arc; | ||
563 | if (strcmp(t->arcs[j].name, "fwd")) | ||
564 | continue; | ||
565 | |||
566 | if (!strcmp(n->name, "cache")) | ||
567 | fill_in_one_cache(c, n); | ||
568 | } | ||
569 | } | ||
570 | |||
571 | #ifdef CONFIG_SMP | ||
572 | cpu_set(cpuid, cpu_present_map); | ||
573 | cpu_set(cpuid, phys_cpu_present_map); | ||
574 | #endif | ||
575 | |||
576 | c->core_id = 0; | ||
577 | } | ||
578 | |||
579 | set_core_ids(); | ||
580 | |||
581 | smp_fill_in_sib_core_maps(); | ||
582 | } | ||
583 | |||
584 | void __init sun4v_mdesc_init(void) | ||
585 | { | ||
586 | unsigned long len, real_len, status; | ||
587 | |||
588 | (void) sun4v_mach_desc(0UL, 0UL, &len); | ||
589 | |||
590 | printk("MDESC: Size is %lu bytes.\n", len); | ||
591 | |||
592 | main_mdesc = mdesc_early_alloc(len); | ||
593 | |||
594 | status = sun4v_mach_desc(__pa(main_mdesc), len, &real_len); | ||
595 | if (status != HV_EOK || real_len > len) { | ||
596 | prom_printf("sun4v_mach_desc fails, err(%lu), " | ||
597 | "len(%lu), real_len(%lu)\n", | ||
598 | status, len, real_len); | ||
599 | prom_halt(); | ||
600 | } | ||
601 | |||
602 | len = count_nodes(main_mdesc); | ||
603 | printk("MDESC: %lu nodes.\n", len); | ||
604 | |||
605 | len = roundup_pow_of_two(len); | ||
606 | |||
607 | mdesc_hash = mdesc_early_alloc(len * sizeof(struct mdesc_node *)); | ||
608 | mdesc_hash_size = len; | ||
609 | |||
610 | printk("MDESC: Hash size %lu entries.\n", len); | ||
611 | |||
612 | build_all_nodes(main_mdesc); | ||
613 | |||
614 | printk("MDESC: Built graph with %u bytes of memory.\n", | ||
615 | mdesc_early_allocated); | ||
616 | |||
617 | report_platform_properties(); | ||
618 | mdesc_fill_in_cpu_data(); | ||
619 | } | ||
diff --git a/arch/sparc64/kernel/pci.c b/arch/sparc64/kernel/pci.c index d4c077dc5e85..38a32bc95d22 100644 --- a/arch/sparc64/kernel/pci.c +++ b/arch/sparc64/kernel/pci.c | |||
@@ -306,6 +306,20 @@ static void __init pci_controller_probe(void) | |||
306 | pci_controller_scan(pci_controller_init); | 306 | pci_controller_scan(pci_controller_init); |
307 | } | 307 | } |
308 | 308 | ||
309 | static int ofpci_verbose; | ||
310 | |||
311 | static int __init ofpci_debug(char *str) | ||
312 | { | ||
313 | int val = 0; | ||
314 | |||
315 | get_option(&str, &val); | ||
316 | if (val) | ||
317 | ofpci_verbose = 1; | ||
318 | return 1; | ||
319 | } | ||
320 | |||
321 | __setup("ofpci_debug=", ofpci_debug); | ||
322 | |||
309 | static unsigned long pci_parse_of_flags(u32 addr0) | 323 | static unsigned long pci_parse_of_flags(u32 addr0) |
310 | { | 324 | { |
311 | unsigned long flags = 0; | 325 | unsigned long flags = 0; |
@@ -337,7 +351,9 @@ static void pci_parse_of_addrs(struct of_device *op, | |||
337 | addrs = of_get_property(node, "assigned-addresses", &proplen); | 351 | addrs = of_get_property(node, "assigned-addresses", &proplen); |
338 | if (!addrs) | 352 | if (!addrs) |
339 | return; | 353 | return; |
340 | printk(" parse addresses (%d bytes) @ %p\n", proplen, addrs); | 354 | if (ofpci_verbose) |
355 | printk(" parse addresses (%d bytes) @ %p\n", | ||
356 | proplen, addrs); | ||
341 | op_res = &op->resource[0]; | 357 | op_res = &op->resource[0]; |
342 | for (; proplen >= 20; proplen -= 20, addrs += 5, op_res++) { | 358 | for (; proplen >= 20; proplen -= 20, addrs += 5, op_res++) { |
343 | struct resource *res; | 359 | struct resource *res; |
@@ -348,8 +364,9 @@ static void pci_parse_of_addrs(struct of_device *op, | |||
348 | if (!flags) | 364 | if (!flags) |
349 | continue; | 365 | continue; |
350 | i = addrs[0] & 0xff; | 366 | i = addrs[0] & 0xff; |
351 | printk(" start: %lx, end: %lx, i: %x\n", | 367 | if (ofpci_verbose) |
352 | op_res->start, op_res->end, i); | 368 | printk(" start: %lx, end: %lx, i: %x\n", |
369 | op_res->start, op_res->end, i); | ||
353 | 370 | ||
354 | if (PCI_BASE_ADDRESS_0 <= i && i <= PCI_BASE_ADDRESS_5) { | 371 | if (PCI_BASE_ADDRESS_0 <= i && i <= PCI_BASE_ADDRESS_5) { |
355 | res = &dev->resource[(i - PCI_BASE_ADDRESS_0) >> 2]; | 372 | res = &dev->resource[(i - PCI_BASE_ADDRESS_0) >> 2]; |
@@ -393,8 +410,9 @@ struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm, | |||
393 | if (type == NULL) | 410 | if (type == NULL) |
394 | type = ""; | 411 | type = ""; |
395 | 412 | ||
396 | printk(" create device, devfn: %x, type: %s hostcontroller(%d)\n", | 413 | if (ofpci_verbose) |
397 | devfn, type, host_controller); | 414 | printk(" create device, devfn: %x, type: %s\n", |
415 | devfn, type); | ||
398 | 416 | ||
399 | dev->bus = bus; | 417 | dev->bus = bus; |
400 | dev->sysdata = node; | 418 | dev->sysdata = node; |
@@ -434,8 +452,9 @@ struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm, | |||
434 | sprintf(pci_name(dev), "%04x:%02x:%02x.%d", pci_domain_nr(bus), | 452 | sprintf(pci_name(dev), "%04x:%02x:%02x.%d", pci_domain_nr(bus), |
435 | dev->bus->number, PCI_SLOT(devfn), PCI_FUNC(devfn)); | 453 | dev->bus->number, PCI_SLOT(devfn), PCI_FUNC(devfn)); |
436 | } | 454 | } |
437 | printk(" class: 0x%x device name: %s\n", | 455 | if (ofpci_verbose) |
438 | dev->class, pci_name(dev)); | 456 | printk(" class: 0x%x device name: %s\n", |
457 | dev->class, pci_name(dev)); | ||
439 | 458 | ||
440 | /* I have seen IDE devices which will not respond to | 459 | /* I have seen IDE devices which will not respond to |
441 | * the bmdma simplex check reads if bus mastering is | 460 | * the bmdma simplex check reads if bus mastering is |
@@ -469,7 +488,8 @@ struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm, | |||
469 | } | 488 | } |
470 | pci_parse_of_addrs(sd->op, node, dev); | 489 | pci_parse_of_addrs(sd->op, node, dev); |
471 | 490 | ||
472 | printk(" adding to system ...\n"); | 491 | if (ofpci_verbose) |
492 | printk(" adding to system ...\n"); | ||
473 | 493 | ||
474 | pci_device_add(dev, bus); | 494 | pci_device_add(dev, bus); |
475 | 495 | ||
@@ -547,7 +567,8 @@ static void __devinit of_scan_pci_bridge(struct pci_pbm_info *pbm, | |||
547 | unsigned int flags; | 567 | unsigned int flags; |
548 | u64 size; | 568 | u64 size; |
549 | 569 | ||
550 | printk("of_scan_pci_bridge(%s)\n", node->full_name); | 570 | if (ofpci_verbose) |
571 | printk("of_scan_pci_bridge(%s)\n", node->full_name); | ||
551 | 572 | ||
552 | /* parse bus-range property */ | 573 | /* parse bus-range property */ |
553 | busrange = of_get_property(node, "bus-range", &len); | 574 | busrange = of_get_property(node, "bus-range", &len); |
@@ -632,7 +653,8 @@ static void __devinit of_scan_pci_bridge(struct pci_pbm_info *pbm, | |||
632 | simba_cont: | 653 | simba_cont: |
633 | sprintf(bus->name, "PCI Bus %04x:%02x", pci_domain_nr(bus), | 654 | sprintf(bus->name, "PCI Bus %04x:%02x", pci_domain_nr(bus), |
634 | bus->number); | 655 | bus->number); |
635 | printk(" bus name: %s\n", bus->name); | 656 | if (ofpci_verbose) |
657 | printk(" bus name: %s\n", bus->name); | ||
636 | 658 | ||
637 | pci_of_scan_bus(pbm, node, bus); | 659 | pci_of_scan_bus(pbm, node, bus); |
638 | } | 660 | } |
@@ -646,12 +668,14 @@ static void __devinit pci_of_scan_bus(struct pci_pbm_info *pbm, | |||
646 | int reglen, devfn; | 668 | int reglen, devfn; |
647 | struct pci_dev *dev; | 669 | struct pci_dev *dev; |
648 | 670 | ||
649 | printk("PCI: scan_bus[%s] bus no %d\n", | 671 | if (ofpci_verbose) |
650 | node->full_name, bus->number); | 672 | printk("PCI: scan_bus[%s] bus no %d\n", |
673 | node->full_name, bus->number); | ||
651 | 674 | ||
652 | child = NULL; | 675 | child = NULL; |
653 | while ((child = of_get_next_child(node, child)) != NULL) { | 676 | while ((child = of_get_next_child(node, child)) != NULL) { |
654 | printk(" * %s\n", child->full_name); | 677 | if (ofpci_verbose) |
678 | printk(" * %s\n", child->full_name); | ||
655 | reg = of_get_property(child, "reg", ®len); | 679 | reg = of_get_property(child, "reg", ®len); |
656 | if (reg == NULL || reglen < 20) | 680 | if (reg == NULL || reglen < 20) |
657 | continue; | 681 | continue; |
@@ -661,7 +685,9 @@ static void __devinit pci_of_scan_bus(struct pci_pbm_info *pbm, | |||
661 | dev = of_create_pci_dev(pbm, child, bus, devfn, 0); | 685 | dev = of_create_pci_dev(pbm, child, bus, devfn, 0); |
662 | if (!dev) | 686 | if (!dev) |
663 | continue; | 687 | continue; |
664 | printk("PCI: dev header type: %x\n", dev->hdr_type); | 688 | if (ofpci_verbose) |
689 | printk("PCI: dev header type: %x\n", | ||
690 | dev->hdr_type); | ||
665 | 691 | ||
666 | if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE || | 692 | if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE || |
667 | dev->hdr_type == PCI_HEADER_TYPE_CARDBUS) | 693 | dev->hdr_type == PCI_HEADER_TYPE_CARDBUS) |
diff --git a/arch/sparc64/kernel/pci_sabre.c b/arch/sparc64/kernel/pci_sabre.c index e2377796de89..323d6c278518 100644 --- a/arch/sparc64/kernel/pci_sabre.c +++ b/arch/sparc64/kernel/pci_sabre.c | |||
@@ -762,9 +762,10 @@ void sabre_init(struct device_node *dp, char *model_name) | |||
762 | /* Of course, Sun has to encode things a thousand | 762 | /* Of course, Sun has to encode things a thousand |
763 | * different ways, inconsistently. | 763 | * different ways, inconsistently. |
764 | */ | 764 | */ |
765 | cpu_find_by_instance(0, &dp, NULL); | 765 | for_each_node_by_type(dp, "cpu") { |
766 | if (!strcmp(dp->name, "SUNW,UltraSPARC-IIe")) | 766 | if (!strcmp(dp->name, "SUNW,UltraSPARC-IIe")) |
767 | hummingbird_p = 1; | 767 | hummingbird_p = 1; |
768 | } | ||
768 | } | 769 | } |
769 | } | 770 | } |
770 | 771 | ||
diff --git a/arch/sparc64/kernel/pci_sun4v.c b/arch/sparc64/kernel/pci_sun4v.c index 044e8ec4c0f5..6b3fe2c1d65e 100644 --- a/arch/sparc64/kernel/pci_sun4v.c +++ b/arch/sparc64/kernel/pci_sun4v.c | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <linux/percpu.h> | 12 | #include <linux/percpu.h> |
13 | #include <linux/irq.h> | 13 | #include <linux/irq.h> |
14 | #include <linux/msi.h> | 14 | #include <linux/msi.h> |
15 | #include <linux/log2.h> | ||
15 | 16 | ||
16 | #include <asm/iommu.h> | 17 | #include <asm/iommu.h> |
17 | #include <asm/irq.h> | 18 | #include <asm/irq.h> |
@@ -26,6 +27,9 @@ | |||
26 | 27 | ||
27 | #include "pci_sun4v.h" | 28 | #include "pci_sun4v.h" |
28 | 29 | ||
30 | static unsigned long vpci_major = 1; | ||
31 | static unsigned long vpci_minor = 1; | ||
32 | |||
29 | #define PGLIST_NENTS (PAGE_SIZE / sizeof(u64)) | 33 | #define PGLIST_NENTS (PAGE_SIZE / sizeof(u64)) |
30 | 34 | ||
31 | struct iommu_batch { | 35 | struct iommu_batch { |
@@ -638,9 +642,8 @@ static void pci_sun4v_iommu_init(struct pci_pbm_info *pbm) | |||
638 | { | 642 | { |
639 | struct iommu *iommu = pbm->iommu; | 643 | struct iommu *iommu = pbm->iommu; |
640 | struct property *prop; | 644 | struct property *prop; |
641 | unsigned long num_tsb_entries, sz; | 645 | unsigned long num_tsb_entries, sz, tsbsize; |
642 | u32 vdma[2], dma_mask, dma_offset; | 646 | u32 vdma[2], dma_mask, dma_offset; |
643 | int tsbsize; | ||
644 | 647 | ||
645 | prop = of_find_property(pbm->prom_node, "virtual-dma", NULL); | 648 | prop = of_find_property(pbm->prom_node, "virtual-dma", NULL); |
646 | if (prop) { | 649 | if (prop) { |
@@ -654,31 +657,15 @@ static void pci_sun4v_iommu_init(struct pci_pbm_info *pbm) | |||
654 | vdma[1] = 0x80000000; | 657 | vdma[1] = 0x80000000; |
655 | } | 658 | } |
656 | 659 | ||
657 | dma_mask = vdma[0]; | 660 | if ((vdma[0] | vdma[1]) & ~IO_PAGE_MASK) { |
658 | switch (vdma[1]) { | 661 | prom_printf("PCI-SUN4V: strange virtual-dma[%08x:%08x].\n", |
659 | case 0x20000000: | 662 | vdma[0], vdma[1]); |
660 | dma_mask |= 0x1fffffff; | 663 | prom_halt(); |
661 | tsbsize = 64; | ||
662 | break; | ||
663 | |||
664 | case 0x40000000: | ||
665 | dma_mask |= 0x3fffffff; | ||
666 | tsbsize = 128; | ||
667 | break; | ||
668 | |||
669 | case 0x80000000: | ||
670 | dma_mask |= 0x7fffffff; | ||
671 | tsbsize = 256; | ||
672 | break; | ||
673 | |||
674 | default: | ||
675 | prom_printf("PCI-SUN4V: strange virtual-dma size.\n"); | ||
676 | prom_halt(); | ||
677 | }; | 664 | }; |
678 | 665 | ||
679 | tsbsize *= (8 * 1024); | 666 | dma_mask = (roundup_pow_of_two(vdma[1]) - 1UL); |
680 | 667 | num_tsb_entries = vdma[1] / IO_PAGE_SIZE; | |
681 | num_tsb_entries = tsbsize / sizeof(iopte_t); | 668 | tsbsize = num_tsb_entries * sizeof(iopte_t); |
682 | 669 | ||
683 | dma_offset = vdma[0]; | 670 | dma_offset = vdma[0]; |
684 | 671 | ||
@@ -689,7 +676,7 @@ static void pci_sun4v_iommu_init(struct pci_pbm_info *pbm) | |||
689 | iommu->dma_addr_mask = dma_mask; | 676 | iommu->dma_addr_mask = dma_mask; |
690 | 677 | ||
691 | /* Allocate and initialize the free area map. */ | 678 | /* Allocate and initialize the free area map. */ |
692 | sz = num_tsb_entries / 8; | 679 | sz = (num_tsb_entries + 7) / 8; |
693 | sz = (sz + 7UL) & ~7UL; | 680 | sz = (sz + 7UL) & ~7UL; |
694 | iommu->arena.map = kzalloc(sz, GFP_KERNEL); | 681 | iommu->arena.map = kzalloc(sz, GFP_KERNEL); |
695 | if (!iommu->arena.map) { | 682 | if (!iommu->arena.map) { |
@@ -1178,6 +1165,7 @@ static void pci_sun4v_pbm_init(struct pci_controller_info *p, struct device_node | |||
1178 | 1165 | ||
1179 | void sun4v_pci_init(struct device_node *dp, char *model_name) | 1166 | void sun4v_pci_init(struct device_node *dp, char *model_name) |
1180 | { | 1167 | { |
1168 | static int hvapi_negotiated = 0; | ||
1181 | struct pci_controller_info *p; | 1169 | struct pci_controller_info *p; |
1182 | struct pci_pbm_info *pbm; | 1170 | struct pci_pbm_info *pbm; |
1183 | struct iommu *iommu; | 1171 | struct iommu *iommu; |
@@ -1186,6 +1174,20 @@ void sun4v_pci_init(struct device_node *dp, char *model_name) | |||
1186 | u32 devhandle; | 1174 | u32 devhandle; |
1187 | int i; | 1175 | int i; |
1188 | 1176 | ||
1177 | if (!hvapi_negotiated++) { | ||
1178 | int err = sun4v_hvapi_register(HV_GRP_PCI, | ||
1179 | vpci_major, | ||
1180 | &vpci_minor); | ||
1181 | |||
1182 | if (err) { | ||
1183 | prom_printf("SUN4V_PCI: Could not register hvapi, " | ||
1184 | "err=%d\n", err); | ||
1185 | prom_halt(); | ||
1186 | } | ||
1187 | printk("SUN4V_PCI: Registered hvapi major[%lu] minor[%lu]\n", | ||
1188 | vpci_major, vpci_minor); | ||
1189 | } | ||
1190 | |||
1189 | prop = of_find_property(dp, "reg", NULL); | 1191 | prop = of_find_property(dp, "reg", NULL); |
1190 | regs = prop->value; | 1192 | regs = prop->value; |
1191 | 1193 | ||
diff --git a/arch/sparc64/kernel/power.c b/arch/sparc64/kernel/power.c index 699b24b890df..5d6adea3967f 100644 --- a/arch/sparc64/kernel/power.c +++ b/arch/sparc64/kernel/power.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <asm/prom.h> | 19 | #include <asm/prom.h> |
20 | #include <asm/of_device.h> | 20 | #include <asm/of_device.h> |
21 | #include <asm/io.h> | 21 | #include <asm/io.h> |
22 | #include <asm/sstate.h> | ||
22 | 23 | ||
23 | #include <linux/unistd.h> | 24 | #include <linux/unistd.h> |
24 | 25 | ||
@@ -53,6 +54,7 @@ static void (*poweroff_method)(void) = machine_alt_power_off; | |||
53 | 54 | ||
54 | void machine_power_off(void) | 55 | void machine_power_off(void) |
55 | { | 56 | { |
57 | sstate_poweroff(); | ||
56 | if (!serial_console || scons_pwroff) { | 58 | if (!serial_console || scons_pwroff) { |
57 | #ifdef CONFIG_PCI | 59 | #ifdef CONFIG_PCI |
58 | if (power_reg) { | 60 | if (power_reg) { |
diff --git a/arch/sparc64/kernel/process.c b/arch/sparc64/kernel/process.c index 952762bfb4c0..f5f97e2c669c 100644 --- a/arch/sparc64/kernel/process.c +++ b/arch/sparc64/kernel/process.c | |||
@@ -45,6 +45,7 @@ | |||
45 | #include <asm/mmu_context.h> | 45 | #include <asm/mmu_context.h> |
46 | #include <asm/unistd.h> | 46 | #include <asm/unistd.h> |
47 | #include <asm/hypervisor.h> | 47 | #include <asm/hypervisor.h> |
48 | #include <asm/sstate.h> | ||
48 | 49 | ||
49 | /* #define VERBOSE_SHOWREGS */ | 50 | /* #define VERBOSE_SHOWREGS */ |
50 | 51 | ||
@@ -106,6 +107,7 @@ extern void (*prom_keyboard)(void); | |||
106 | 107 | ||
107 | void machine_halt(void) | 108 | void machine_halt(void) |
108 | { | 109 | { |
110 | sstate_halt(); | ||
109 | if (!serial_console && prom_palette) | 111 | if (!serial_console && prom_palette) |
110 | prom_palette (1); | 112 | prom_palette (1); |
111 | if (prom_keyboard) | 113 | if (prom_keyboard) |
@@ -116,6 +118,7 @@ void machine_halt(void) | |||
116 | 118 | ||
117 | void machine_alt_power_off(void) | 119 | void machine_alt_power_off(void) |
118 | { | 120 | { |
121 | sstate_poweroff(); | ||
119 | if (!serial_console && prom_palette) | 122 | if (!serial_console && prom_palette) |
120 | prom_palette(1); | 123 | prom_palette(1); |
121 | if (prom_keyboard) | 124 | if (prom_keyboard) |
@@ -128,6 +131,7 @@ void machine_restart(char * cmd) | |||
128 | { | 131 | { |
129 | char *p; | 132 | char *p; |
130 | 133 | ||
134 | sstate_reboot(); | ||
131 | p = strchr (reboot_command, '\n'); | 135 | p = strchr (reboot_command, '\n'); |
132 | if (p) *p = 0; | 136 | if (p) *p = 0; |
133 | if (!serial_console && prom_palette) | 137 | if (!serial_console && prom_palette) |
diff --git a/arch/sparc64/kernel/prom.c b/arch/sparc64/kernel/prom.c index 02830e4671f5..dad4b3ba705f 100644 --- a/arch/sparc64/kernel/prom.c +++ b/arch/sparc64/kernel/prom.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include <asm/irq.h> | 28 | #include <asm/irq.h> |
29 | #include <asm/asi.h> | 29 | #include <asm/asi.h> |
30 | #include <asm/upa.h> | 30 | #include <asm/upa.h> |
31 | #include <asm/smp.h> | ||
31 | 32 | ||
32 | static struct device_node *allnodes; | 33 | static struct device_node *allnodes; |
33 | 34 | ||
@@ -1665,6 +1666,150 @@ static struct device_node * __init build_tree(struct device_node *parent, phandl | |||
1665 | return ret; | 1666 | return ret; |
1666 | } | 1667 | } |
1667 | 1668 | ||
1669 | static const char *get_mid_prop(void) | ||
1670 | { | ||
1671 | return (tlb_type == spitfire ? "upa-portid" : "portid"); | ||
1672 | } | ||
1673 | |||
1674 | struct device_node *of_find_node_by_cpuid(int cpuid) | ||
1675 | { | ||
1676 | struct device_node *dp; | ||
1677 | const char *mid_prop = get_mid_prop(); | ||
1678 | |||
1679 | for_each_node_by_type(dp, "cpu") { | ||
1680 | int id = of_getintprop_default(dp, mid_prop, -1); | ||
1681 | const char *this_mid_prop = mid_prop; | ||
1682 | |||
1683 | if (id < 0) { | ||
1684 | this_mid_prop = "cpuid"; | ||
1685 | id = of_getintprop_default(dp, this_mid_prop, -1); | ||
1686 | } | ||
1687 | |||
1688 | if (id < 0) { | ||
1689 | prom_printf("OF: Serious problem, cpu lacks " | ||
1690 | "%s property", this_mid_prop); | ||
1691 | prom_halt(); | ||
1692 | } | ||
1693 | if (cpuid == id) | ||
1694 | return dp; | ||
1695 | } | ||
1696 | return NULL; | ||
1697 | } | ||
1698 | |||
1699 | static void __init of_fill_in_cpu_data(void) | ||
1700 | { | ||
1701 | struct device_node *dp; | ||
1702 | const char *mid_prop = get_mid_prop(); | ||
1703 | |||
1704 | ncpus_probed = 0; | ||
1705 | for_each_node_by_type(dp, "cpu") { | ||
1706 | int cpuid = of_getintprop_default(dp, mid_prop, -1); | ||
1707 | const char *this_mid_prop = mid_prop; | ||
1708 | struct device_node *portid_parent; | ||
1709 | int portid = -1; | ||
1710 | |||
1711 | portid_parent = NULL; | ||
1712 | if (cpuid < 0) { | ||
1713 | this_mid_prop = "cpuid"; | ||
1714 | cpuid = of_getintprop_default(dp, this_mid_prop, -1); | ||
1715 | if (cpuid >= 0) { | ||
1716 | int limit = 2; | ||
1717 | |||
1718 | portid_parent = dp; | ||
1719 | while (limit--) { | ||
1720 | portid_parent = portid_parent->parent; | ||
1721 | if (!portid_parent) | ||
1722 | break; | ||
1723 | portid = of_getintprop_default(portid_parent, | ||
1724 | "portid", -1); | ||
1725 | if (portid >= 0) | ||
1726 | break; | ||
1727 | } | ||
1728 | } | ||
1729 | } | ||
1730 | |||
1731 | if (cpuid < 0) { | ||
1732 | prom_printf("OF: Serious problem, cpu lacks " | ||
1733 | "%s property", this_mid_prop); | ||
1734 | prom_halt(); | ||
1735 | } | ||
1736 | |||
1737 | ncpus_probed++; | ||
1738 | |||
1739 | #ifdef CONFIG_SMP | ||
1740 | if (cpuid >= NR_CPUS) | ||
1741 | continue; | ||
1742 | #else | ||
1743 | /* On uniprocessor we only want the values for the | ||
1744 | * real physical cpu the kernel booted onto, however | ||
1745 | * cpu_data() only has one entry at index 0. | ||
1746 | */ | ||
1747 | if (cpuid != real_hard_smp_processor_id()) | ||
1748 | continue; | ||
1749 | cpuid = 0; | ||
1750 | #endif | ||
1751 | |||
1752 | cpu_data(cpuid).clock_tick = | ||
1753 | of_getintprop_default(dp, "clock-frequency", 0); | ||
1754 | |||
1755 | if (portid_parent) { | ||
1756 | cpu_data(cpuid).dcache_size = | ||
1757 | of_getintprop_default(dp, "l1-dcache-size", | ||
1758 | 16 * 1024); | ||
1759 | cpu_data(cpuid).dcache_line_size = | ||
1760 | of_getintprop_default(dp, "l1-dcache-line-size", | ||
1761 | 32); | ||
1762 | cpu_data(cpuid).icache_size = | ||
1763 | of_getintprop_default(dp, "l1-icache-size", | ||
1764 | 8 * 1024); | ||
1765 | cpu_data(cpuid).icache_line_size = | ||
1766 | of_getintprop_default(dp, "l1-icache-line-size", | ||
1767 | 32); | ||
1768 | cpu_data(cpuid).ecache_size = | ||
1769 | of_getintprop_default(dp, "l2-cache-size", 0); | ||
1770 | cpu_data(cpuid).ecache_line_size = | ||
1771 | of_getintprop_default(dp, "l2-cache-line-size", 0); | ||
1772 | if (!cpu_data(cpuid).ecache_size || | ||
1773 | !cpu_data(cpuid).ecache_line_size) { | ||
1774 | cpu_data(cpuid).ecache_size = | ||
1775 | of_getintprop_default(portid_parent, | ||
1776 | "l2-cache-size", | ||
1777 | (4 * 1024 * 1024)); | ||
1778 | cpu_data(cpuid).ecache_line_size = | ||
1779 | of_getintprop_default(portid_parent, | ||
1780 | "l2-cache-line-size", 64); | ||
1781 | } | ||
1782 | |||
1783 | cpu_data(cpuid).core_id = portid + 1; | ||
1784 | } else { | ||
1785 | cpu_data(cpuid).dcache_size = | ||
1786 | of_getintprop_default(dp, "dcache-size", 16 * 1024); | ||
1787 | cpu_data(cpuid).dcache_line_size = | ||
1788 | of_getintprop_default(dp, "dcache-line-size", 32); | ||
1789 | |||
1790 | cpu_data(cpuid).icache_size = | ||
1791 | of_getintprop_default(dp, "icache-size", 16 * 1024); | ||
1792 | cpu_data(cpuid).icache_line_size = | ||
1793 | of_getintprop_default(dp, "icache-line-size", 32); | ||
1794 | |||
1795 | cpu_data(cpuid).ecache_size = | ||
1796 | of_getintprop_default(dp, "ecache-size", | ||
1797 | (4 * 1024 * 1024)); | ||
1798 | cpu_data(cpuid).ecache_line_size = | ||
1799 | of_getintprop_default(dp, "ecache-line-size", 64); | ||
1800 | |||
1801 | cpu_data(cpuid).core_id = 0; | ||
1802 | } | ||
1803 | |||
1804 | #ifdef CONFIG_SMP | ||
1805 | cpu_set(cpuid, cpu_present_map); | ||
1806 | cpu_set(cpuid, phys_cpu_present_map); | ||
1807 | #endif | ||
1808 | } | ||
1809 | |||
1810 | smp_fill_in_sib_core_maps(); | ||
1811 | } | ||
1812 | |||
1668 | void __init prom_build_devicetree(void) | 1813 | void __init prom_build_devicetree(void) |
1669 | { | 1814 | { |
1670 | struct device_node **nextp; | 1815 | struct device_node **nextp; |
@@ -1679,4 +1824,7 @@ void __init prom_build_devicetree(void) | |||
1679 | &nextp); | 1824 | &nextp); |
1680 | printk("PROM: Built device tree with %u bytes of memory.\n", | 1825 | printk("PROM: Built device tree with %u bytes of memory.\n", |
1681 | prom_early_allocated); | 1826 | prom_early_allocated); |
1827 | |||
1828 | if (tlb_type != hypervisor) | ||
1829 | of_fill_in_cpu_data(); | ||
1682 | } | 1830 | } |
diff --git a/arch/sparc64/kernel/setup.c b/arch/sparc64/kernel/setup.c index 451028341c75..de9b4c13f1c7 100644 --- a/arch/sparc64/kernel/setup.c +++ b/arch/sparc64/kernel/setup.c | |||
@@ -46,11 +46,17 @@ | |||
46 | #include <asm/sections.h> | 46 | #include <asm/sections.h> |
47 | #include <asm/setup.h> | 47 | #include <asm/setup.h> |
48 | #include <asm/mmu.h> | 48 | #include <asm/mmu.h> |
49 | #include <asm/ns87303.h> | ||
49 | 50 | ||
50 | #ifdef CONFIG_IP_PNP | 51 | #ifdef CONFIG_IP_PNP |
51 | #include <net/ipconfig.h> | 52 | #include <net/ipconfig.h> |
52 | #endif | 53 | #endif |
53 | 54 | ||
55 | /* Used to synchronize accesses to NatSemi SUPER I/O chip configure | ||
56 | * operations in asm/ns87303.h | ||
57 | */ | ||
58 | DEFINE_SPINLOCK(ns87303_lock); | ||
59 | |||
54 | struct screen_info screen_info = { | 60 | struct screen_info screen_info = { |
55 | 0, 0, /* orig-x, orig-y */ | 61 | 0, 0, /* orig-x, orig-y */ |
56 | 0, /* unused */ | 62 | 0, /* unused */ |
@@ -269,6 +275,7 @@ void __init per_cpu_patch(void) | |||
269 | 275 | ||
270 | void __init sun4v_patch(void) | 276 | void __init sun4v_patch(void) |
271 | { | 277 | { |
278 | extern void sun4v_hvapi_init(void); | ||
272 | struct sun4v_1insn_patch_entry *p1; | 279 | struct sun4v_1insn_patch_entry *p1; |
273 | struct sun4v_2insn_patch_entry *p2; | 280 | struct sun4v_2insn_patch_entry *p2; |
274 | 281 | ||
@@ -300,6 +307,8 @@ void __init sun4v_patch(void) | |||
300 | 307 | ||
301 | p2++; | 308 | p2++; |
302 | } | 309 | } |
310 | |||
311 | sun4v_hvapi_init(); | ||
303 | } | 312 | } |
304 | 313 | ||
305 | #ifdef CONFIG_SMP | 314 | #ifdef CONFIG_SMP |
@@ -367,8 +376,6 @@ void __init setup_arch(char **cmdline_p) | |||
367 | init_cur_cpu_trap(current_thread_info()); | 376 | init_cur_cpu_trap(current_thread_info()); |
368 | 377 | ||
369 | paging_init(); | 378 | paging_init(); |
370 | |||
371 | smp_setup_cpu_possible_map(); | ||
372 | } | 379 | } |
373 | 380 | ||
374 | static int __init set_preferred_console(void) | 381 | static int __init set_preferred_console(void) |
@@ -421,7 +428,7 @@ extern void mmu_info(struct seq_file *); | |||
421 | unsigned int dcache_parity_tl1_occurred; | 428 | unsigned int dcache_parity_tl1_occurred; |
422 | unsigned int icache_parity_tl1_occurred; | 429 | unsigned int icache_parity_tl1_occurred; |
423 | 430 | ||
424 | static int ncpus_probed; | 431 | int ncpus_probed; |
425 | 432 | ||
426 | static int show_cpuinfo(struct seq_file *m, void *__unused) | 433 | static int show_cpuinfo(struct seq_file *m, void *__unused) |
427 | { | 434 | { |
@@ -513,14 +520,6 @@ static int __init topology_init(void) | |||
513 | 520 | ||
514 | err = -ENOMEM; | 521 | err = -ENOMEM; |
515 | 522 | ||
516 | /* Count the number of physically present processors in | ||
517 | * the machine, even on uniprocessor, so that /proc/cpuinfo | ||
518 | * output is consistent with 2.4.x | ||
519 | */ | ||
520 | ncpus_probed = 0; | ||
521 | while (!cpu_find_by_instance(ncpus_probed, NULL, NULL)) | ||
522 | ncpus_probed++; | ||
523 | |||
524 | for_each_possible_cpu(i) { | 523 | for_each_possible_cpu(i) { |
525 | struct cpu *p = kzalloc(sizeof(*p), GFP_KERNEL); | 524 | struct cpu *p = kzalloc(sizeof(*p), GFP_KERNEL); |
526 | if (p) { | 525 | if (p) { |
diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c index 24fdf1d0adc5..c550bba3490a 100644 --- a/arch/sparc64/kernel/smp.c +++ b/arch/sparc64/kernel/smp.c | |||
@@ -40,6 +40,7 @@ | |||
40 | #include <asm/tlb.h> | 40 | #include <asm/tlb.h> |
41 | #include <asm/sections.h> | 41 | #include <asm/sections.h> |
42 | #include <asm/prom.h> | 42 | #include <asm/prom.h> |
43 | #include <asm/mdesc.h> | ||
43 | 44 | ||
44 | extern void calibrate_delay(void); | 45 | extern void calibrate_delay(void); |
45 | 46 | ||
@@ -75,53 +76,6 @@ void smp_bogo(struct seq_file *m) | |||
75 | i, cpu_data(i).clock_tick); | 76 | i, cpu_data(i).clock_tick); |
76 | } | 77 | } |
77 | 78 | ||
78 | void __init smp_store_cpu_info(int id) | ||
79 | { | ||
80 | struct device_node *dp; | ||
81 | int def; | ||
82 | |||
83 | cpu_data(id).udelay_val = loops_per_jiffy; | ||
84 | |||
85 | cpu_find_by_mid(id, &dp); | ||
86 | cpu_data(id).clock_tick = | ||
87 | of_getintprop_default(dp, "clock-frequency", 0); | ||
88 | |||
89 | def = ((tlb_type == hypervisor) ? (8 * 1024) : (16 * 1024)); | ||
90 | cpu_data(id).dcache_size = | ||
91 | of_getintprop_default(dp, "dcache-size", def); | ||
92 | |||
93 | def = 32; | ||
94 | cpu_data(id).dcache_line_size = | ||
95 | of_getintprop_default(dp, "dcache-line-size", def); | ||
96 | |||
97 | def = 16 * 1024; | ||
98 | cpu_data(id).icache_size = | ||
99 | of_getintprop_default(dp, "icache-size", def); | ||
100 | |||
101 | def = 32; | ||
102 | cpu_data(id).icache_line_size = | ||
103 | of_getintprop_default(dp, "icache-line-size", def); | ||
104 | |||
105 | def = ((tlb_type == hypervisor) ? | ||
106 | (3 * 1024 * 1024) : | ||
107 | (4 * 1024 * 1024)); | ||
108 | cpu_data(id).ecache_size = | ||
109 | of_getintprop_default(dp, "ecache-size", def); | ||
110 | |||
111 | def = 64; | ||
112 | cpu_data(id).ecache_line_size = | ||
113 | of_getintprop_default(dp, "ecache-line-size", def); | ||
114 | |||
115 | printk("CPU[%d]: Caches " | ||
116 | "D[sz(%d):line_sz(%d)] " | ||
117 | "I[sz(%d):line_sz(%d)] " | ||
118 | "E[sz(%d):line_sz(%d)]\n", | ||
119 | id, | ||
120 | cpu_data(id).dcache_size, cpu_data(id).dcache_line_size, | ||
121 | cpu_data(id).icache_size, cpu_data(id).icache_line_size, | ||
122 | cpu_data(id).ecache_size, cpu_data(id).ecache_line_size); | ||
123 | } | ||
124 | |||
125 | extern void setup_sparc64_timer(void); | 79 | extern void setup_sparc64_timer(void); |
126 | 80 | ||
127 | static volatile unsigned long callin_flag = 0; | 81 | static volatile unsigned long callin_flag = 0; |
@@ -145,7 +99,7 @@ void __init smp_callin(void) | |||
145 | local_irq_enable(); | 99 | local_irq_enable(); |
146 | 100 | ||
147 | calibrate_delay(); | 101 | calibrate_delay(); |
148 | smp_store_cpu_info(cpuid); | 102 | cpu_data(cpuid).udelay_val = loops_per_jiffy; |
149 | callin_flag = 1; | 103 | callin_flag = 1; |
150 | __asm__ __volatile__("membar #Sync\n\t" | 104 | __asm__ __volatile__("membar #Sync\n\t" |
151 | "flush %%g6" : : : "memory"); | 105 | "flush %%g6" : : : "memory"); |
@@ -340,9 +294,8 @@ static int __devinit smp_boot_one_cpu(unsigned int cpu) | |||
340 | 294 | ||
341 | prom_startcpu_cpuid(cpu, entry, cookie); | 295 | prom_startcpu_cpuid(cpu, entry, cookie); |
342 | } else { | 296 | } else { |
343 | struct device_node *dp; | 297 | struct device_node *dp = of_find_node_by_cpuid(cpu); |
344 | 298 | ||
345 | cpu_find_by_mid(cpu, &dp); | ||
346 | prom_startcpu(dp->node, entry, cookie); | 299 | prom_startcpu(dp->node, entry, cookie); |
347 | } | 300 | } |
348 | 301 | ||
@@ -447,7 +400,7 @@ static __inline__ void spitfire_xcall_deliver(u64 data0, u64 data1, u64 data2, c | |||
447 | static void cheetah_xcall_deliver(u64 data0, u64 data1, u64 data2, cpumask_t mask) | 400 | static void cheetah_xcall_deliver(u64 data0, u64 data1, u64 data2, cpumask_t mask) |
448 | { | 401 | { |
449 | u64 pstate, ver; | 402 | u64 pstate, ver; |
450 | int nack_busy_id, is_jbus; | 403 | int nack_busy_id, is_jbus, need_more; |
451 | 404 | ||
452 | if (cpus_empty(mask)) | 405 | if (cpus_empty(mask)) |
453 | return; | 406 | return; |
@@ -463,6 +416,7 @@ static void cheetah_xcall_deliver(u64 data0, u64 data1, u64 data2, cpumask_t mas | |||
463 | __asm__ __volatile__("rdpr %%pstate, %0" : "=r" (pstate)); | 416 | __asm__ __volatile__("rdpr %%pstate, %0" : "=r" (pstate)); |
464 | 417 | ||
465 | retry: | 418 | retry: |
419 | need_more = 0; | ||
466 | __asm__ __volatile__("wrpr %0, %1, %%pstate\n\t" | 420 | __asm__ __volatile__("wrpr %0, %1, %%pstate\n\t" |
467 | : : "r" (pstate), "i" (PSTATE_IE)); | 421 | : : "r" (pstate), "i" (PSTATE_IE)); |
468 | 422 | ||
@@ -491,6 +445,10 @@ retry: | |||
491 | : /* no outputs */ | 445 | : /* no outputs */ |
492 | : "r" (target), "i" (ASI_INTR_W)); | 446 | : "r" (target), "i" (ASI_INTR_W)); |
493 | nack_busy_id++; | 447 | nack_busy_id++; |
448 | if (nack_busy_id == 32) { | ||
449 | need_more = 1; | ||
450 | break; | ||
451 | } | ||
494 | } | 452 | } |
495 | } | 453 | } |
496 | 454 | ||
@@ -507,6 +465,16 @@ retry: | |||
507 | if (dispatch_stat == 0UL) { | 465 | if (dispatch_stat == 0UL) { |
508 | __asm__ __volatile__("wrpr %0, 0x0, %%pstate" | 466 | __asm__ __volatile__("wrpr %0, 0x0, %%pstate" |
509 | : : "r" (pstate)); | 467 | : : "r" (pstate)); |
468 | if (unlikely(need_more)) { | ||
469 | int i, cnt = 0; | ||
470 | for_each_cpu_mask(i, mask) { | ||
471 | cpu_clear(i, mask); | ||
472 | cnt++; | ||
473 | if (cnt == 32) | ||
474 | break; | ||
475 | } | ||
476 | goto retry; | ||
477 | } | ||
510 | return; | 478 | return; |
511 | } | 479 | } |
512 | if (!--stuck) | 480 | if (!--stuck) |
@@ -544,6 +512,8 @@ retry: | |||
544 | if ((dispatch_stat & check_mask) == 0) | 512 | if ((dispatch_stat & check_mask) == 0) |
545 | cpu_clear(i, mask); | 513 | cpu_clear(i, mask); |
546 | this_busy_nack += 2; | 514 | this_busy_nack += 2; |
515 | if (this_busy_nack == 64) | ||
516 | break; | ||
547 | } | 517 | } |
548 | 518 | ||
549 | goto retry; | 519 | goto retry; |
@@ -1191,23 +1161,14 @@ int setup_profiling_timer(unsigned int multiplier) | |||
1191 | 1161 | ||
1192 | static void __init smp_tune_scheduling(void) | 1162 | static void __init smp_tune_scheduling(void) |
1193 | { | 1163 | { |
1194 | struct device_node *dp; | 1164 | unsigned int smallest = ~0U; |
1195 | int instance; | 1165 | int i; |
1196 | unsigned int def, smallest = ~0U; | ||
1197 | |||
1198 | def = ((tlb_type == hypervisor) ? | ||
1199 | (3 * 1024 * 1024) : | ||
1200 | (4 * 1024 * 1024)); | ||
1201 | 1166 | ||
1202 | instance = 0; | 1167 | for (i = 0; i < NR_CPUS; i++) { |
1203 | while (!cpu_find_by_instance(instance, &dp, NULL)) { | 1168 | unsigned int val = cpu_data(i).ecache_size; |
1204 | unsigned int val; | ||
1205 | 1169 | ||
1206 | val = of_getintprop_default(dp, "ecache-size", def); | 1170 | if (val && val < smallest) |
1207 | if (val < smallest) | ||
1208 | smallest = val; | 1171 | smallest = val; |
1209 | |||
1210 | instance++; | ||
1211 | } | 1172 | } |
1212 | 1173 | ||
1213 | /* Any value less than 256K is nonsense. */ | 1174 | /* Any value less than 256K is nonsense. */ |
@@ -1230,58 +1191,42 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
1230 | int i; | 1191 | int i; |
1231 | 1192 | ||
1232 | if (num_possible_cpus() > max_cpus) { | 1193 | if (num_possible_cpus() > max_cpus) { |
1233 | int instance, mid; | 1194 | for_each_possible_cpu(i) { |
1234 | 1195 | if (i != boot_cpu_id) { | |
1235 | instance = 0; | 1196 | cpu_clear(i, phys_cpu_present_map); |
1236 | while (!cpu_find_by_instance(instance, NULL, &mid)) { | 1197 | cpu_clear(i, cpu_present_map); |
1237 | if (mid != boot_cpu_id) { | ||
1238 | cpu_clear(mid, phys_cpu_present_map); | ||
1239 | cpu_clear(mid, cpu_present_map); | ||
1240 | if (num_possible_cpus() <= max_cpus) | 1198 | if (num_possible_cpus() <= max_cpus) |
1241 | break; | 1199 | break; |
1242 | } | 1200 | } |
1243 | instance++; | ||
1244 | } | 1201 | } |
1245 | } | 1202 | } |
1246 | 1203 | ||
1247 | for_each_possible_cpu(i) { | 1204 | cpu_data(boot_cpu_id).udelay_val = loops_per_jiffy; |
1248 | if (tlb_type == hypervisor) { | ||
1249 | int j; | ||
1250 | |||
1251 | /* XXX get this mapping from machine description */ | ||
1252 | for_each_possible_cpu(j) { | ||
1253 | if ((j >> 2) == (i >> 2)) | ||
1254 | cpu_set(j, cpu_sibling_map[i]); | ||
1255 | } | ||
1256 | } else { | ||
1257 | cpu_set(i, cpu_sibling_map[i]); | ||
1258 | } | ||
1259 | } | ||
1260 | |||
1261 | smp_store_cpu_info(boot_cpu_id); | ||
1262 | smp_tune_scheduling(); | 1205 | smp_tune_scheduling(); |
1263 | } | 1206 | } |
1264 | 1207 | ||
1265 | /* Set this up early so that things like the scheduler can init | 1208 | void __devinit smp_prepare_boot_cpu(void) |
1266 | * properly. We use the same cpu mask for both the present and | ||
1267 | * possible cpu map. | ||
1268 | */ | ||
1269 | void __init smp_setup_cpu_possible_map(void) | ||
1270 | { | 1209 | { |
1271 | int instance, mid; | ||
1272 | |||
1273 | instance = 0; | ||
1274 | while (!cpu_find_by_instance(instance, NULL, &mid)) { | ||
1275 | if (mid < NR_CPUS) { | ||
1276 | cpu_set(mid, phys_cpu_present_map); | ||
1277 | cpu_set(mid, cpu_present_map); | ||
1278 | } | ||
1279 | instance++; | ||
1280 | } | ||
1281 | } | 1210 | } |
1282 | 1211 | ||
1283 | void __devinit smp_prepare_boot_cpu(void) | 1212 | void __devinit smp_fill_in_sib_core_maps(void) |
1284 | { | 1213 | { |
1214 | unsigned int i; | ||
1215 | |||
1216 | for_each_possible_cpu(i) { | ||
1217 | unsigned int j; | ||
1218 | |||
1219 | if (cpu_data(i).core_id == 0) { | ||
1220 | cpu_set(i, cpu_sibling_map[i]); | ||
1221 | continue; | ||
1222 | } | ||
1223 | |||
1224 | for_each_possible_cpu(j) { | ||
1225 | if (cpu_data(i).core_id == | ||
1226 | cpu_data(j).core_id) | ||
1227 | cpu_set(j, cpu_sibling_map[i]); | ||
1228 | } | ||
1229 | } | ||
1285 | } | 1230 | } |
1286 | 1231 | ||
1287 | int __cpuinit __cpu_up(unsigned int cpu) | 1232 | int __cpuinit __cpu_up(unsigned int cpu) |
@@ -1337,7 +1282,7 @@ unsigned long __per_cpu_shift __read_mostly; | |||
1337 | EXPORT_SYMBOL(__per_cpu_base); | 1282 | EXPORT_SYMBOL(__per_cpu_base); |
1338 | EXPORT_SYMBOL(__per_cpu_shift); | 1283 | EXPORT_SYMBOL(__per_cpu_shift); |
1339 | 1284 | ||
1340 | void __init setup_per_cpu_areas(void) | 1285 | void __init real_setup_per_cpu_areas(void) |
1341 | { | 1286 | { |
1342 | unsigned long goal, size, i; | 1287 | unsigned long goal, size, i; |
1343 | char *ptr; | 1288 | char *ptr; |
diff --git a/arch/sparc64/kernel/sstate.c b/arch/sparc64/kernel/sstate.c new file mode 100644 index 000000000000..5b6e75b7f052 --- /dev/null +++ b/arch/sparc64/kernel/sstate.c | |||
@@ -0,0 +1,104 @@ | |||
1 | /* sstate.c: System soft state support. | ||
2 | * | ||
3 | * Copyright (C) 2007 David S. Miller <davem@davemloft.net> | ||
4 | */ | ||
5 | |||
6 | #include <linux/kernel.h> | ||
7 | #include <linux/notifier.h> | ||
8 | #include <linux/init.h> | ||
9 | |||
10 | #include <asm/hypervisor.h> | ||
11 | #include <asm/sstate.h> | ||
12 | #include <asm/oplib.h> | ||
13 | #include <asm/head.h> | ||
14 | #include <asm/io.h> | ||
15 | |||
16 | static int hv_supports_soft_state; | ||
17 | |||
18 | static unsigned long kimage_addr_to_ra(const char *p) | ||
19 | { | ||
20 | unsigned long val = (unsigned long) p; | ||
21 | |||
22 | return kern_base + (val - KERNBASE); | ||
23 | } | ||
24 | |||
25 | static void do_set_sstate(unsigned long state, const char *msg) | ||
26 | { | ||
27 | unsigned long err; | ||
28 | |||
29 | if (!hv_supports_soft_state) | ||
30 | return; | ||
31 | |||
32 | err = sun4v_mach_set_soft_state(state, kimage_addr_to_ra(msg)); | ||
33 | if (err) { | ||
34 | printk(KERN_WARNING "SSTATE: Failed to set soft-state to " | ||
35 | "state[%lx] msg[%s], err=%lu\n", | ||
36 | state, msg, err); | ||
37 | } | ||
38 | } | ||
39 | |||
40 | static const char booting_msg[32] __attribute__((aligned(32))) = | ||
41 | "Linux booting"; | ||
42 | static const char running_msg[32] __attribute__((aligned(32))) = | ||
43 | "Linux running"; | ||
44 | static const char halting_msg[32] __attribute__((aligned(32))) = | ||
45 | "Linux halting"; | ||
46 | static const char poweroff_msg[32] __attribute__((aligned(32))) = | ||
47 | "Linux powering off"; | ||
48 | static const char rebooting_msg[32] __attribute__((aligned(32))) = | ||
49 | "Linux rebooting"; | ||
50 | static const char panicing_msg[32] __attribute__((aligned(32))) = | ||
51 | "Linux panicing"; | ||
52 | |||
53 | void sstate_booting(void) | ||
54 | { | ||
55 | do_set_sstate(HV_SOFT_STATE_TRANSITION, booting_msg); | ||
56 | } | ||
57 | |||
58 | void sstate_running(void) | ||
59 | { | ||
60 | do_set_sstate(HV_SOFT_STATE_NORMAL, running_msg); | ||
61 | } | ||
62 | |||
63 | void sstate_halt(void) | ||
64 | { | ||
65 | do_set_sstate(HV_SOFT_STATE_TRANSITION, halting_msg); | ||
66 | } | ||
67 | |||
68 | void sstate_poweroff(void) | ||
69 | { | ||
70 | do_set_sstate(HV_SOFT_STATE_TRANSITION, poweroff_msg); | ||
71 | } | ||
72 | |||
73 | void sstate_reboot(void) | ||
74 | { | ||
75 | do_set_sstate(HV_SOFT_STATE_TRANSITION, rebooting_msg); | ||
76 | } | ||
77 | |||
78 | static int sstate_panic_event(struct notifier_block *n, unsigned long event, void *ptr) | ||
79 | { | ||
80 | do_set_sstate(HV_SOFT_STATE_TRANSITION, panicing_msg); | ||
81 | |||
82 | return NOTIFY_DONE; | ||
83 | } | ||
84 | |||
85 | static struct notifier_block sstate_panic_block = { | ||
86 | .notifier_call = sstate_panic_event, | ||
87 | .priority = INT_MAX, | ||
88 | }; | ||
89 | |||
90 | void __init sun4v_sstate_init(void) | ||
91 | { | ||
92 | unsigned long major, minor; | ||
93 | |||
94 | major = 1; | ||
95 | minor = 0; | ||
96 | if (sun4v_hvapi_register(HV_GRP_SOFT_STATE, major, &minor)) | ||
97 | return; | ||
98 | |||
99 | hv_supports_soft_state = 1; | ||
100 | |||
101 | prom_sun4v_guest_soft_state(); | ||
102 | atomic_notifier_chain_register(&panic_notifier_list, | ||
103 | &sstate_panic_block); | ||
104 | } | ||
diff --git a/arch/sparc64/kernel/sun4v_ivec.S b/arch/sparc64/kernel/sun4v_ivec.S index 405855dd886b..574bc248bca6 100644 --- a/arch/sparc64/kernel/sun4v_ivec.S +++ b/arch/sparc64/kernel/sun4v_ivec.S | |||
@@ -22,12 +22,12 @@ sun4v_cpu_mondo: | |||
22 | be,pn %xcc, sun4v_cpu_mondo_queue_empty | 22 | be,pn %xcc, sun4v_cpu_mondo_queue_empty |
23 | nop | 23 | nop |
24 | 24 | ||
25 | /* Get &trap_block[smp_processor_id()] into %g3. */ | 25 | /* Get &trap_block[smp_processor_id()] into %g4. */ |
26 | ldxa [%g0] ASI_SCRATCHPAD, %g3 | 26 | ldxa [%g0] ASI_SCRATCHPAD, %g4 |
27 | sub %g3, TRAP_PER_CPU_FAULT_INFO, %g3 | 27 | sub %g4, TRAP_PER_CPU_FAULT_INFO, %g4 |
28 | 28 | ||
29 | /* Get CPU mondo queue base phys address into %g7. */ | 29 | /* Get CPU mondo queue base phys address into %g7. */ |
30 | ldx [%g3 + TRAP_PER_CPU_CPU_MONDO_PA], %g7 | 30 | ldx [%g4 + TRAP_PER_CPU_CPU_MONDO_PA], %g7 |
31 | 31 | ||
32 | /* Now get the cross-call arguments and handler PC, same | 32 | /* Now get the cross-call arguments and handler PC, same |
33 | * layout as sun4u: | 33 | * layout as sun4u: |
@@ -47,8 +47,7 @@ sun4v_cpu_mondo: | |||
47 | add %g2, 0x40 - 0x8 - 0x8, %g2 | 47 | add %g2, 0x40 - 0x8 - 0x8, %g2 |
48 | 48 | ||
49 | /* Update queue head pointer. */ | 49 | /* Update queue head pointer. */ |
50 | sethi %hi(8192 - 1), %g4 | 50 | lduw [%g4 + TRAP_PER_CPU_CPU_MONDO_QMASK], %g4 |
51 | or %g4, %lo(8192 - 1), %g4 | ||
52 | and %g2, %g4, %g2 | 51 | and %g2, %g4, %g2 |
53 | 52 | ||
54 | mov INTRQ_CPU_MONDO_HEAD, %g4 | 53 | mov INTRQ_CPU_MONDO_HEAD, %g4 |
@@ -71,12 +70,12 @@ sun4v_dev_mondo: | |||
71 | be,pn %xcc, sun4v_dev_mondo_queue_empty | 70 | be,pn %xcc, sun4v_dev_mondo_queue_empty |
72 | nop | 71 | nop |
73 | 72 | ||
74 | /* Get &trap_block[smp_processor_id()] into %g3. */ | 73 | /* Get &trap_block[smp_processor_id()] into %g4. */ |
75 | ldxa [%g0] ASI_SCRATCHPAD, %g3 | 74 | ldxa [%g0] ASI_SCRATCHPAD, %g4 |
76 | sub %g3, TRAP_PER_CPU_FAULT_INFO, %g3 | 75 | sub %g4, TRAP_PER_CPU_FAULT_INFO, %g4 |
77 | 76 | ||
78 | /* Get DEV mondo queue base phys address into %g5. */ | 77 | /* Get DEV mondo queue base phys address into %g5. */ |
79 | ldx [%g3 + TRAP_PER_CPU_DEV_MONDO_PA], %g5 | 78 | ldx [%g4 + TRAP_PER_CPU_DEV_MONDO_PA], %g5 |
80 | 79 | ||
81 | /* Load IVEC into %g3. */ | 80 | /* Load IVEC into %g3. */ |
82 | ldxa [%g5 + %g2] ASI_PHYS_USE_EC, %g3 | 81 | ldxa [%g5 + %g2] ASI_PHYS_USE_EC, %g3 |
@@ -90,8 +89,7 @@ sun4v_dev_mondo: | |||
90 | */ | 89 | */ |
91 | 90 | ||
92 | /* Update queue head pointer, this frees up some registers. */ | 91 | /* Update queue head pointer, this frees up some registers. */ |
93 | sethi %hi(8192 - 1), %g4 | 92 | lduw [%g4 + TRAP_PER_CPU_DEV_MONDO_QMASK], %g4 |
94 | or %g4, %lo(8192 - 1), %g4 | ||
95 | and %g2, %g4, %g2 | 93 | and %g2, %g4, %g2 |
96 | 94 | ||
97 | mov INTRQ_DEVICE_MONDO_HEAD, %g4 | 95 | mov INTRQ_DEVICE_MONDO_HEAD, %g4 |
@@ -143,6 +141,8 @@ sun4v_res_mondo: | |||
143 | brnz,pn %g1, sun4v_res_mondo_queue_full | 141 | brnz,pn %g1, sun4v_res_mondo_queue_full |
144 | nop | 142 | nop |
145 | 143 | ||
144 | lduw [%g3 + TRAP_PER_CPU_RESUM_QMASK], %g4 | ||
145 | |||
146 | /* Remember this entry's offset in %g1. */ | 146 | /* Remember this entry's offset in %g1. */ |
147 | mov %g2, %g1 | 147 | mov %g2, %g1 |
148 | 148 | ||
@@ -173,8 +173,6 @@ sun4v_res_mondo: | |||
173 | add %g2, 0x08, %g2 | 173 | add %g2, 0x08, %g2 |
174 | 174 | ||
175 | /* Update queue head pointer. */ | 175 | /* Update queue head pointer. */ |
176 | sethi %hi(8192 - 1), %g4 | ||
177 | or %g4, %lo(8192 - 1), %g4 | ||
178 | and %g2, %g4, %g2 | 176 | and %g2, %g4, %g2 |
179 | 177 | ||
180 | mov INTRQ_RESUM_MONDO_HEAD, %g4 | 178 | mov INTRQ_RESUM_MONDO_HEAD, %g4 |
@@ -254,6 +252,8 @@ sun4v_nonres_mondo: | |||
254 | brnz,pn %g1, sun4v_nonres_mondo_queue_full | 252 | brnz,pn %g1, sun4v_nonres_mondo_queue_full |
255 | nop | 253 | nop |
256 | 254 | ||
255 | lduw [%g3 + TRAP_PER_CPU_NONRESUM_QMASK], %g4 | ||
256 | |||
257 | /* Remember this entry's offset in %g1. */ | 257 | /* Remember this entry's offset in %g1. */ |
258 | mov %g2, %g1 | 258 | mov %g2, %g1 |
259 | 259 | ||
@@ -284,8 +284,6 @@ sun4v_nonres_mondo: | |||
284 | add %g2, 0x08, %g2 | 284 | add %g2, 0x08, %g2 |
285 | 285 | ||
286 | /* Update queue head pointer. */ | 286 | /* Update queue head pointer. */ |
287 | sethi %hi(8192 - 1), %g4 | ||
288 | or %g4, %lo(8192 - 1), %g4 | ||
289 | and %g2, %g4, %g2 | 287 | and %g2, %g4, %g2 |
290 | 288 | ||
291 | mov INTRQ_NONRESUM_MONDO_HEAD, %g4 | 289 | mov INTRQ_NONRESUM_MONDO_HEAD, %g4 |
diff --git a/arch/sparc64/kernel/time.c b/arch/sparc64/kernel/time.c index 6b9a06e42542..a31a0439244f 100644 --- a/arch/sparc64/kernel/time.c +++ b/arch/sparc64/kernel/time.c | |||
@@ -680,22 +680,14 @@ static int starfire_set_time(u32 val) | |||
680 | 680 | ||
681 | static u32 hypervisor_get_time(void) | 681 | static u32 hypervisor_get_time(void) |
682 | { | 682 | { |
683 | register unsigned long func asm("%o5"); | 683 | unsigned long ret, time; |
684 | register unsigned long arg0 asm("%o0"); | ||
685 | register unsigned long arg1 asm("%o1"); | ||
686 | int retries = 10000; | 684 | int retries = 10000; |
687 | 685 | ||
688 | retry: | 686 | retry: |
689 | func = HV_FAST_TOD_GET; | 687 | ret = sun4v_tod_get(&time); |
690 | arg0 = 0; | 688 | if (ret == HV_EOK) |
691 | arg1 = 0; | 689 | return time; |
692 | __asm__ __volatile__("ta %6" | 690 | if (ret == HV_EWOULDBLOCK) { |
693 | : "=&r" (func), "=&r" (arg0), "=&r" (arg1) | ||
694 | : "0" (func), "1" (arg0), "2" (arg1), | ||
695 | "i" (HV_FAST_TRAP)); | ||
696 | if (arg0 == HV_EOK) | ||
697 | return arg1; | ||
698 | if (arg0 == HV_EWOULDBLOCK) { | ||
699 | if (--retries > 0) { | 691 | if (--retries > 0) { |
700 | udelay(100); | 692 | udelay(100); |
701 | goto retry; | 693 | goto retry; |
@@ -709,20 +701,14 @@ retry: | |||
709 | 701 | ||
710 | static int hypervisor_set_time(u32 secs) | 702 | static int hypervisor_set_time(u32 secs) |
711 | { | 703 | { |
712 | register unsigned long func asm("%o5"); | 704 | unsigned long ret; |
713 | register unsigned long arg0 asm("%o0"); | ||
714 | int retries = 10000; | 705 | int retries = 10000; |
715 | 706 | ||
716 | retry: | 707 | retry: |
717 | func = HV_FAST_TOD_SET; | 708 | ret = sun4v_tod_set(secs); |
718 | arg0 = secs; | 709 | if (ret == HV_EOK) |
719 | __asm__ __volatile__("ta %4" | ||
720 | : "=&r" (func), "=&r" (arg0) | ||
721 | : "0" (func), "1" (arg0), | ||
722 | "i" (HV_FAST_TRAP)); | ||
723 | if (arg0 == HV_EOK) | ||
724 | return 0; | 710 | return 0; |
725 | if (arg0 == HV_EWOULDBLOCK) { | 711 | if (ret == HV_EWOULDBLOCK) { |
726 | if (--retries > 0) { | 712 | if (--retries > 0) { |
727 | udelay(100); | 713 | udelay(100); |
728 | goto retry; | 714 | goto retry; |
@@ -862,7 +848,6 @@ fs_initcall(clock_init); | |||
862 | static unsigned long sparc64_init_timers(void) | 848 | static unsigned long sparc64_init_timers(void) |
863 | { | 849 | { |
864 | struct device_node *dp; | 850 | struct device_node *dp; |
865 | struct property *prop; | ||
866 | unsigned long clock; | 851 | unsigned long clock; |
867 | #ifdef CONFIG_SMP | 852 | #ifdef CONFIG_SMP |
868 | extern void smp_tick_init(void); | 853 | extern void smp_tick_init(void); |
@@ -879,17 +864,15 @@ static unsigned long sparc64_init_timers(void) | |||
879 | if (manuf == 0x17 && impl == 0x13) { | 864 | if (manuf == 0x17 && impl == 0x13) { |
880 | /* Hummingbird, aka Ultra-IIe */ | 865 | /* Hummingbird, aka Ultra-IIe */ |
881 | tick_ops = &hbtick_operations; | 866 | tick_ops = &hbtick_operations; |
882 | prop = of_find_property(dp, "stick-frequency", NULL); | 867 | clock = of_getintprop_default(dp, "stick-frequency", 0); |
883 | } else { | 868 | } else { |
884 | tick_ops = &tick_operations; | 869 | tick_ops = &tick_operations; |
885 | cpu_find_by_instance(0, &dp, NULL); | 870 | clock = local_cpu_data().clock_tick; |
886 | prop = of_find_property(dp, "clock-frequency", NULL); | ||
887 | } | 871 | } |
888 | } else { | 872 | } else { |
889 | tick_ops = &stick_operations; | 873 | tick_ops = &stick_operations; |
890 | prop = of_find_property(dp, "stick-frequency", NULL); | 874 | clock = of_getintprop_default(dp, "stick-frequency", 0); |
891 | } | 875 | } |
892 | clock = *(unsigned int *) prop->value; | ||
893 | 876 | ||
894 | #ifdef CONFIG_SMP | 877 | #ifdef CONFIG_SMP |
895 | smp_tick_init(); | 878 | smp_tick_init(); |
@@ -1030,7 +1013,7 @@ void __devinit setup_sparc64_timer(void) | |||
1030 | clockevents_register_device(sevt); | 1013 | clockevents_register_device(sevt); |
1031 | } | 1014 | } |
1032 | 1015 | ||
1033 | #define SPARC64_NSEC_PER_CYC_SHIFT 32UL | 1016 | #define SPARC64_NSEC_PER_CYC_SHIFT 10UL |
1034 | 1017 | ||
1035 | static struct clocksource clocksource_tick = { | 1018 | static struct clocksource clocksource_tick = { |
1036 | .rating = 100, | 1019 | .rating = 100, |
@@ -1365,6 +1348,7 @@ static int hypervisor_set_rtc_time(struct rtc_time *time) | |||
1365 | return hypervisor_set_time(seconds); | 1348 | return hypervisor_set_time(seconds); |
1366 | } | 1349 | } |
1367 | 1350 | ||
1351 | #ifdef CONFIG_PCI | ||
1368 | static void bq4802_get_rtc_time(struct rtc_time *time) | 1352 | static void bq4802_get_rtc_time(struct rtc_time *time) |
1369 | { | 1353 | { |
1370 | unsigned char val = readb(bq4802_regs + 0x0e); | 1354 | unsigned char val = readb(bq4802_regs + 0x0e); |
@@ -1436,6 +1420,7 @@ static int bq4802_set_rtc_time(struct rtc_time *time) | |||
1436 | 1420 | ||
1437 | return 0; | 1421 | return 0; |
1438 | } | 1422 | } |
1423 | #endif /* CONFIG_PCI */ | ||
1439 | 1424 | ||
1440 | struct mini_rtc_ops { | 1425 | struct mini_rtc_ops { |
1441 | void (*get_rtc_time)(struct rtc_time *); | 1426 | void (*get_rtc_time)(struct rtc_time *); |
@@ -1452,10 +1437,12 @@ static struct mini_rtc_ops hypervisor_rtc_ops = { | |||
1452 | .set_rtc_time = hypervisor_set_rtc_time, | 1437 | .set_rtc_time = hypervisor_set_rtc_time, |
1453 | }; | 1438 | }; |
1454 | 1439 | ||
1440 | #ifdef CONFIG_PCI | ||
1455 | static struct mini_rtc_ops bq4802_rtc_ops = { | 1441 | static struct mini_rtc_ops bq4802_rtc_ops = { |
1456 | .get_rtc_time = bq4802_get_rtc_time, | 1442 | .get_rtc_time = bq4802_get_rtc_time, |
1457 | .set_rtc_time = bq4802_set_rtc_time, | 1443 | .set_rtc_time = bq4802_set_rtc_time, |
1458 | }; | 1444 | }; |
1445 | #endif /* CONFIG_PCI */ | ||
1459 | 1446 | ||
1460 | static struct mini_rtc_ops *mini_rtc_ops; | 1447 | static struct mini_rtc_ops *mini_rtc_ops; |
1461 | 1448 | ||
@@ -1579,8 +1566,10 @@ static int __init rtc_mini_init(void) | |||
1579 | mini_rtc_ops = &hypervisor_rtc_ops; | 1566 | mini_rtc_ops = &hypervisor_rtc_ops; |
1580 | else if (this_is_starfire) | 1567 | else if (this_is_starfire) |
1581 | mini_rtc_ops = &starfire_rtc_ops; | 1568 | mini_rtc_ops = &starfire_rtc_ops; |
1569 | #ifdef CONFIG_PCI | ||
1582 | else if (bq4802_regs) | 1570 | else if (bq4802_regs) |
1583 | mini_rtc_ops = &bq4802_rtc_ops; | 1571 | mini_rtc_ops = &bq4802_rtc_ops; |
1572 | #endif /* CONFIG_PCI */ | ||
1584 | else | 1573 | else |
1585 | return -ENODEV; | 1574 | return -ENODEV; |
1586 | 1575 | ||
diff --git a/arch/sparc64/kernel/traps.c b/arch/sparc64/kernel/traps.c index d0fde36395b4..00a9e3286c83 100644 --- a/arch/sparc64/kernel/traps.c +++ b/arch/sparc64/kernel/traps.c | |||
@@ -795,8 +795,7 @@ extern unsigned int cheetah_deferred_trap_vector[], cheetah_deferred_trap_vector | |||
795 | void __init cheetah_ecache_flush_init(void) | 795 | void __init cheetah_ecache_flush_init(void) |
796 | { | 796 | { |
797 | unsigned long largest_size, smallest_linesize, order, ver; | 797 | unsigned long largest_size, smallest_linesize, order, ver; |
798 | struct device_node *dp; | 798 | int i, sz; |
799 | int i, instance, sz; | ||
800 | 799 | ||
801 | /* Scan all cpu device tree nodes, note two values: | 800 | /* Scan all cpu device tree nodes, note two values: |
802 | * 1) largest E-cache size | 801 | * 1) largest E-cache size |
@@ -805,18 +804,20 @@ void __init cheetah_ecache_flush_init(void) | |||
805 | largest_size = 0UL; | 804 | largest_size = 0UL; |
806 | smallest_linesize = ~0UL; | 805 | smallest_linesize = ~0UL; |
807 | 806 | ||
808 | instance = 0; | 807 | for (i = 0; i < NR_CPUS; i++) { |
809 | while (!cpu_find_by_instance(instance, &dp, NULL)) { | ||
810 | unsigned long val; | 808 | unsigned long val; |
811 | 809 | ||
812 | val = of_getintprop_default(dp, "ecache-size", | 810 | val = cpu_data(i).ecache_size; |
813 | (2 * 1024 * 1024)); | 811 | if (!val) |
812 | continue; | ||
813 | |||
814 | if (val > largest_size) | 814 | if (val > largest_size) |
815 | largest_size = val; | 815 | largest_size = val; |
816 | val = of_getintprop_default(dp, "ecache-line-size", 64); | 816 | |
817 | val = cpu_data(i).ecache_line_size; | ||
817 | if (val < smallest_linesize) | 818 | if (val < smallest_linesize) |
818 | smallest_linesize = val; | 819 | smallest_linesize = val; |
819 | instance++; | 820 | |
820 | } | 821 | } |
821 | 822 | ||
822 | if (largest_size == 0UL || smallest_linesize == ~0UL) { | 823 | if (largest_size == 0UL || smallest_linesize == ~0UL) { |
@@ -2564,7 +2565,15 @@ void __init trap_init(void) | |||
2564 | (TRAP_PER_CPU_TSB_HUGE_TEMP != | 2565 | (TRAP_PER_CPU_TSB_HUGE_TEMP != |
2565 | offsetof(struct trap_per_cpu, tsb_huge_temp)) || | 2566 | offsetof(struct trap_per_cpu, tsb_huge_temp)) || |
2566 | (TRAP_PER_CPU_IRQ_WORKLIST != | 2567 | (TRAP_PER_CPU_IRQ_WORKLIST != |
2567 | offsetof(struct trap_per_cpu, irq_worklist))) | 2568 | offsetof(struct trap_per_cpu, irq_worklist)) || |
2569 | (TRAP_PER_CPU_CPU_MONDO_QMASK != | ||
2570 | offsetof(struct trap_per_cpu, cpu_mondo_qmask)) || | ||
2571 | (TRAP_PER_CPU_DEV_MONDO_QMASK != | ||
2572 | offsetof(struct trap_per_cpu, dev_mondo_qmask)) || | ||
2573 | (TRAP_PER_CPU_RESUM_QMASK != | ||
2574 | offsetof(struct trap_per_cpu, resum_qmask)) || | ||
2575 | (TRAP_PER_CPU_NONRESUM_QMASK != | ||
2576 | offsetof(struct trap_per_cpu, nonresum_qmask))) | ||
2568 | trap_per_cpu_offsets_are_bolixed_dave(); | 2577 | trap_per_cpu_offsets_are_bolixed_dave(); |
2569 | 2578 | ||
2570 | if ((TSB_CONFIG_TSB != | 2579 | if ((TSB_CONFIG_TSB != |
diff --git a/arch/sparc64/kernel/vmlinux.lds.S b/arch/sparc64/kernel/vmlinux.lds.S index 13fa2a2e4513..fb648de18a8d 100644 --- a/arch/sparc64/kernel/vmlinux.lds.S +++ b/arch/sparc64/kernel/vmlinux.lds.S | |||
@@ -14,7 +14,7 @@ SECTIONS | |||
14 | .text 0x0000000000404000 : | 14 | .text 0x0000000000404000 : |
15 | { | 15 | { |
16 | _text = .; | 16 | _text = .; |
17 | *(.text) | 17 | TEXT_TEXT |
18 | SCHED_TEXT | 18 | SCHED_TEXT |
19 | LOCK_TEXT | 19 | LOCK_TEXT |
20 | KPROBES_TEXT | 20 | KPROBES_TEXT |
@@ -27,7 +27,7 @@ SECTIONS | |||
27 | 27 | ||
28 | .data : | 28 | .data : |
29 | { | 29 | { |
30 | *(.data) | 30 | DATA_DATA |
31 | CONSTRUCTORS | 31 | CONSTRUCTORS |
32 | } | 32 | } |
33 | .data1 : { *(.data1) } | 33 | .data1 : { *(.data1) } |
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c index 6e5b01d779d2..3010227fe243 100644 --- a/arch/sparc64/mm/init.c +++ b/arch/sparc64/mm/init.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <linux/kprobes.h> | 23 | #include <linux/kprobes.h> |
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 | 27 | ||
27 | #include <asm/head.h> | 28 | #include <asm/head.h> |
28 | #include <asm/system.h> | 29 | #include <asm/system.h> |
@@ -43,8 +44,8 @@ | |||
43 | #include <asm/tsb.h> | 44 | #include <asm/tsb.h> |
44 | #include <asm/hypervisor.h> | 45 | #include <asm/hypervisor.h> |
45 | #include <asm/prom.h> | 46 | #include <asm/prom.h> |
46 | 47 | #include <asm/sstate.h> | |
47 | extern void device_scan(void); | 48 | #include <asm/mdesc.h> |
48 | 49 | ||
49 | #define MAX_PHYS_ADDRESS (1UL << 42UL) | 50 | #define MAX_PHYS_ADDRESS (1UL << 42UL) |
50 | #define KPTE_BITMAP_CHUNK_SZ (256UL * 1024UL * 1024UL) | 51 | #define KPTE_BITMAP_CHUNK_SZ (256UL * 1024UL * 1024UL) |
@@ -60,8 +61,11 @@ unsigned long kern_linear_pte_xor[2] __read_mostly; | |||
60 | unsigned long kpte_linear_bitmap[KPTE_BITMAP_BYTES / sizeof(unsigned long)]; | 61 | unsigned long kpte_linear_bitmap[KPTE_BITMAP_BYTES / sizeof(unsigned long)]; |
61 | 62 | ||
62 | #ifndef CONFIG_DEBUG_PAGEALLOC | 63 | #ifndef CONFIG_DEBUG_PAGEALLOC |
63 | /* A special kernel TSB for 4MB and 256MB linear mappings. */ | 64 | /* A special kernel TSB for 4MB and 256MB linear mappings. |
64 | struct tsb swapper_4m_tsb[KERNEL_TSB4M_NENTRIES]; | 65 | * Space is allocated for this right after the trap table |
66 | * in arch/sparc64/kernel/head.S | ||
67 | */ | ||
68 | extern struct tsb swapper_4m_tsb[KERNEL_TSB4M_NENTRIES]; | ||
65 | #endif | 69 | #endif |
66 | 70 | ||
67 | #define MAX_BANKS 32 | 71 | #define MAX_BANKS 32 |
@@ -190,12 +194,9 @@ inline void flush_dcache_page_impl(struct page *page) | |||
190 | } | 194 | } |
191 | 195 | ||
192 | #define PG_dcache_dirty PG_arch_1 | 196 | #define PG_dcache_dirty PG_arch_1 |
193 | #define PG_dcache_cpu_shift 24UL | 197 | #define PG_dcache_cpu_shift 32UL |
194 | #define PG_dcache_cpu_mask (256UL - 1UL) | 198 | #define PG_dcache_cpu_mask \ |
195 | 199 | ((1UL<<ilog2(roundup_pow_of_two(NR_CPUS)))-1UL) | |
196 | #if NR_CPUS > 256 | ||
197 | #error D-cache dirty tracking and thread_info->cpu need fixing for > 256 cpus | ||
198 | #endif | ||
199 | 200 | ||
200 | #define dcache_dirty_cpu(page) \ | 201 | #define dcache_dirty_cpu(page) \ |
201 | (((page)->flags >> PG_dcache_cpu_shift) & PG_dcache_cpu_mask) | 202 | (((page)->flags >> PG_dcache_cpu_shift) & PG_dcache_cpu_mask) |
@@ -557,26 +558,11 @@ static void __init hypervisor_tlb_lock(unsigned long vaddr, | |||
557 | unsigned long pte, | 558 | unsigned long pte, |
558 | unsigned long mmu) | 559 | unsigned long mmu) |
559 | { | 560 | { |
560 | register unsigned long func asm("%o5"); | 561 | unsigned long ret = sun4v_mmu_map_perm_addr(vaddr, 0, pte, mmu); |
561 | register unsigned long arg0 asm("%o0"); | 562 | |
562 | register unsigned long arg1 asm("%o1"); | 563 | if (ret != 0) { |
563 | register unsigned long arg2 asm("%o2"); | ||
564 | register unsigned long arg3 asm("%o3"); | ||
565 | |||
566 | func = HV_FAST_MMU_MAP_PERM_ADDR; | ||
567 | arg0 = vaddr; | ||
568 | arg1 = 0; | ||
569 | arg2 = pte; | ||
570 | arg3 = mmu; | ||
571 | __asm__ __volatile__("ta 0x80" | ||
572 | : "=&r" (func), "=&r" (arg0), | ||
573 | "=&r" (arg1), "=&r" (arg2), | ||
574 | "=&r" (arg3) | ||
575 | : "0" (func), "1" (arg0), "2" (arg1), | ||
576 | "3" (arg2), "4" (arg3)); | ||
577 | if (arg0 != 0) { | ||
578 | prom_printf("hypervisor_tlb_lock[%lx:%lx:%lx:%lx]: " | 564 | prom_printf("hypervisor_tlb_lock[%lx:%lx:%lx:%lx]: " |
579 | "errors with %lx\n", vaddr, 0, pte, mmu, arg0); | 565 | "errors with %lx\n", vaddr, 0, pte, mmu, ret); |
580 | prom_halt(); | 566 | prom_halt(); |
581 | } | 567 | } |
582 | } | 568 | } |
@@ -1313,20 +1299,16 @@ static void __init sun4v_ktsb_init(void) | |||
1313 | 1299 | ||
1314 | void __cpuinit sun4v_ktsb_register(void) | 1300 | void __cpuinit sun4v_ktsb_register(void) |
1315 | { | 1301 | { |
1316 | register unsigned long func asm("%o5"); | 1302 | unsigned long pa, ret; |
1317 | register unsigned long arg0 asm("%o0"); | ||
1318 | register unsigned long arg1 asm("%o1"); | ||
1319 | unsigned long pa; | ||
1320 | 1303 | ||
1321 | pa = kern_base + ((unsigned long)&ktsb_descr[0] - KERNBASE); | 1304 | pa = kern_base + ((unsigned long)&ktsb_descr[0] - KERNBASE); |
1322 | 1305 | ||
1323 | func = HV_FAST_MMU_TSB_CTX0; | 1306 | ret = sun4v_mmu_tsb_ctx0(NUM_KTSB_DESCR, pa); |
1324 | arg0 = NUM_KTSB_DESCR; | 1307 | if (ret != 0) { |
1325 | arg1 = pa; | 1308 | prom_printf("hypervisor_mmu_tsb_ctx0[%lx]: " |
1326 | __asm__ __volatile__("ta %6" | 1309 | "errors with %lx\n", pa, ret); |
1327 | : "=&r" (func), "=&r" (arg0), "=&r" (arg1) | 1310 | prom_halt(); |
1328 | : "0" (func), "1" (arg0), "2" (arg1), | 1311 | } |
1329 | "i" (HV_FAST_TRAP)); | ||
1330 | } | 1312 | } |
1331 | 1313 | ||
1332 | /* paging_init() sets up the page tables */ | 1314 | /* paging_init() sets up the page tables */ |
@@ -1334,6 +1316,9 @@ void __cpuinit sun4v_ktsb_register(void) | |||
1334 | extern void cheetah_ecache_flush_init(void); | 1316 | extern void cheetah_ecache_flush_init(void); |
1335 | extern void sun4v_patch_tlb_handlers(void); | 1317 | extern void sun4v_patch_tlb_handlers(void); |
1336 | 1318 | ||
1319 | extern void cpu_probe(void); | ||
1320 | extern void central_probe(void); | ||
1321 | |||
1337 | static unsigned long last_valid_pfn; | 1322 | static unsigned long last_valid_pfn; |
1338 | pgd_t swapper_pg_dir[2048]; | 1323 | pgd_t swapper_pg_dir[2048]; |
1339 | 1324 | ||
@@ -1345,9 +1330,24 @@ void __init paging_init(void) | |||
1345 | unsigned long end_pfn, pages_avail, shift, phys_base; | 1330 | unsigned long end_pfn, pages_avail, shift, phys_base; |
1346 | unsigned long real_end, i; | 1331 | unsigned long real_end, i; |
1347 | 1332 | ||
1333 | /* These build time checkes make sure that the dcache_dirty_cpu() | ||
1334 | * page->flags usage will work. | ||
1335 | * | ||
1336 | * When a page gets marked as dcache-dirty, we store the | ||
1337 | * cpu number starting at bit 32 in the page->flags. Also, | ||
1338 | * functions like clear_dcache_dirty_cpu use the cpu mask | ||
1339 | * in 13-bit signed-immediate instruction fields. | ||
1340 | */ | ||
1341 | BUILD_BUG_ON(FLAGS_RESERVED != 32); | ||
1342 | BUILD_BUG_ON(SECTIONS_WIDTH + NODES_WIDTH + ZONES_WIDTH + | ||
1343 | ilog2(roundup_pow_of_two(NR_CPUS)) > FLAGS_RESERVED); | ||
1344 | BUILD_BUG_ON(NR_CPUS > 4096); | ||
1345 | |||
1348 | kern_base = (prom_boot_mapping_phys_low >> 22UL) << 22UL; | 1346 | kern_base = (prom_boot_mapping_phys_low >> 22UL) << 22UL; |
1349 | kern_size = (unsigned long)&_end - (unsigned long)KERNBASE; | 1347 | kern_size = (unsigned long)&_end - (unsigned long)KERNBASE; |
1350 | 1348 | ||
1349 | sstate_booting(); | ||
1350 | |||
1351 | /* Invalidate both kernel TSBs. */ | 1351 | /* Invalidate both kernel TSBs. */ |
1352 | memset(swapper_tsb, 0x40, sizeof(swapper_tsb)); | 1352 | memset(swapper_tsb, 0x40, sizeof(swapper_tsb)); |
1353 | #ifndef CONFIG_DEBUG_PAGEALLOC | 1353 | #ifndef CONFIG_DEBUG_PAGEALLOC |
@@ -1416,8 +1416,13 @@ void __init paging_init(void) | |||
1416 | 1416 | ||
1417 | kernel_physical_mapping_init(); | 1417 | kernel_physical_mapping_init(); |
1418 | 1418 | ||
1419 | real_setup_per_cpu_areas(); | ||
1420 | |||
1419 | prom_build_devicetree(); | 1421 | prom_build_devicetree(); |
1420 | 1422 | ||
1423 | if (tlb_type == hypervisor) | ||
1424 | sun4v_mdesc_init(); | ||
1425 | |||
1421 | { | 1426 | { |
1422 | unsigned long zones_size[MAX_NR_ZONES]; | 1427 | unsigned long zones_size[MAX_NR_ZONES]; |
1423 | unsigned long zholes_size[MAX_NR_ZONES]; | 1428 | unsigned long zholes_size[MAX_NR_ZONES]; |
@@ -1434,7 +1439,10 @@ void __init paging_init(void) | |||
1434 | zholes_size); | 1439 | zholes_size); |
1435 | } | 1440 | } |
1436 | 1441 | ||
1437 | device_scan(); | 1442 | prom_printf("Booting Linux...\n"); |
1443 | |||
1444 | central_probe(); | ||
1445 | cpu_probe(); | ||
1438 | } | 1446 | } |
1439 | 1447 | ||
1440 | static void __init taint_real_pages(void) | 1448 | static void __init taint_real_pages(void) |
diff --git a/arch/sparc64/prom/misc.c b/arch/sparc64/prom/misc.c index 0b4213720d43..f3e0c14e9eef 100644 --- a/arch/sparc64/prom/misc.c +++ b/arch/sparc64/prom/misc.c | |||
@@ -15,6 +15,25 @@ | |||
15 | #include <asm/oplib.h> | 15 | #include <asm/oplib.h> |
16 | #include <asm/system.h> | 16 | #include <asm/system.h> |
17 | 17 | ||
18 | int prom_service_exists(const char *service_name) | ||
19 | { | ||
20 | int err = p1275_cmd("test", P1275_ARG(0, P1275_ARG_IN_STRING) | | ||
21 | P1275_INOUT(1, 1), service_name); | ||
22 | |||
23 | if (err) | ||
24 | return 0; | ||
25 | return 1; | ||
26 | } | ||
27 | |||
28 | void prom_sun4v_guest_soft_state(void) | ||
29 | { | ||
30 | const char *svc = "SUNW,soft-state-supported"; | ||
31 | |||
32 | if (!prom_service_exists(svc)) | ||
33 | return; | ||
34 | p1275_cmd(svc, P1275_INOUT(0, 0)); | ||
35 | } | ||
36 | |||
18 | /* Reset and reboot the machine with the command 'bcommand'. */ | 37 | /* Reset and reboot the machine with the command 'bcommand'. */ |
19 | void prom_reboot(const char *bcommand) | 38 | void prom_reboot(const char *bcommand) |
20 | { | 39 | { |
diff --git a/arch/um/kernel/dyn.lds.S b/arch/um/kernel/dyn.lds.S index 87a4e4427d8d..24547741b205 100644 --- a/arch/um/kernel/dyn.lds.S +++ b/arch/um/kernel/dyn.lds.S | |||
@@ -62,7 +62,7 @@ SECTIONS | |||
62 | } =0x90909090 | 62 | } =0x90909090 |
63 | .plt : { *(.plt) } | 63 | .plt : { *(.plt) } |
64 | .text : { | 64 | .text : { |
65 | *(.text) | 65 | TEXT_TEXT |
66 | SCHED_TEXT | 66 | SCHED_TEXT |
67 | LOCK_TEXT | 67 | LOCK_TEXT |
68 | *(.fixup) | 68 | *(.fixup) |
@@ -99,7 +99,8 @@ SECTIONS | |||
99 | *(.data.init_task) | 99 | *(.data.init_task) |
100 | . = ALIGN(KERNEL_STACK_SIZE); | 100 | . = ALIGN(KERNEL_STACK_SIZE); |
101 | *(.data.init_irqstack) | 101 | *(.data.init_irqstack) |
102 | *(.data .data.* .gnu.linkonce.d.*) | 102 | DATA_DATA |
103 | *(.data.* .gnu.linkonce.d.*) | ||
103 | SORT(CONSTRUCTORS) | 104 | SORT(CONSTRUCTORS) |
104 | } | 105 | } |
105 | .data1 : { *(.data1) } | 106 | .data1 : { *(.data1) } |
diff --git a/arch/um/kernel/uml.lds.S b/arch/um/kernel/uml.lds.S index bc59f97e34d0..307b9373676b 100644 --- a/arch/um/kernel/uml.lds.S +++ b/arch/um/kernel/uml.lds.S | |||
@@ -37,7 +37,7 @@ SECTIONS | |||
37 | 37 | ||
38 | .text : | 38 | .text : |
39 | { | 39 | { |
40 | *(.text) | 40 | TEXT_TEXT |
41 | SCHED_TEXT | 41 | SCHED_TEXT |
42 | LOCK_TEXT | 42 | LOCK_TEXT |
43 | *(.fixup) | 43 | *(.fixup) |
@@ -61,7 +61,7 @@ SECTIONS | |||
61 | *(.data.init_task) | 61 | *(.data.init_task) |
62 | . = ALIGN(KERNEL_STACK_SIZE); | 62 | . = ALIGN(KERNEL_STACK_SIZE); |
63 | *(.data.init_irqstack) | 63 | *(.data.init_irqstack) |
64 | *(.data) | 64 | DATA_DATA |
65 | *(.gnu.linkonce.d*) | 65 | *(.gnu.linkonce.d*) |
66 | CONSTRUCTORS | 66 | CONSTRUCTORS |
67 | } | 67 | } |
diff --git a/arch/um/os-Linux/start_up.c b/arch/um/os-Linux/start_up.c index 79471f85eb89..3fc13fa8729d 100644 --- a/arch/um/os-Linux/start_up.c +++ b/arch/um/os-Linux/start_up.c | |||
@@ -144,9 +144,7 @@ static int stop_ptraced_child(int pid, void *stack, int exitcode, | |||
144 | int exit_with = WEXITSTATUS(status); | 144 | int exit_with = WEXITSTATUS(status); |
145 | if (exit_with == 2) | 145 | if (exit_with == 2) |
146 | non_fatal("check_ptrace : child exited with status 2. " | 146 | non_fatal("check_ptrace : child exited with status 2. " |
147 | "Serious trouble happening! Try updating " | 147 | "\nDisabling SYSEMU support.\n"); |
148 | "your host skas patch!\nDisabling SYSEMU " | ||
149 | "support."); | ||
150 | non_fatal("check_ptrace : child exited with exitcode %d, while " | 148 | non_fatal("check_ptrace : child exited with exitcode %d, while " |
151 | "expecting %d; status 0x%x\n", exit_with, | 149 | "expecting %d; status 0x%x\n", exit_with, |
152 | exitcode, status); | 150 | exitcode, status); |
@@ -209,6 +207,7 @@ __uml_setup("nosysemu", nosysemu_cmd_param, | |||
209 | static void __init check_sysemu(void) | 207 | static void __init check_sysemu(void) |
210 | { | 208 | { |
211 | void *stack; | 209 | void *stack; |
210 | unsigned long regs[MAX_REG_NR]; | ||
212 | int pid, n, status, count=0; | 211 | int pid, n, status, count=0; |
213 | 212 | ||
214 | non_fatal("Checking syscall emulation patch for ptrace..."); | 213 | non_fatal("Checking syscall emulation patch for ptrace..."); |
@@ -225,11 +224,20 @@ static void __init check_sysemu(void) | |||
225 | fatal("check_sysemu : expected SIGTRAP, got status = %d", | 224 | fatal("check_sysemu : expected SIGTRAP, got status = %d", |
226 | status); | 225 | status); |
227 | 226 | ||
228 | n = ptrace(PTRACE_POKEUSR, pid, PT_SYSCALL_RET_OFFSET, | 227 | if(ptrace(PTRACE_GETREGS, pid, 0, regs) < 0) |
229 | os_getpid()); | 228 | fatal_perror("check_sysemu : PTRACE_GETREGS failed"); |
230 | if(n < 0) | 229 | if(PT_SYSCALL_NR(regs) != __NR_getpid){ |
231 | fatal_perror("check_sysemu : failed to modify system call " | 230 | non_fatal("check_sysemu got system call number %d, " |
232 | "return"); | 231 | "expected %d...", PT_SYSCALL_NR(regs), __NR_getpid); |
232 | goto fail; | ||
233 | } | ||
234 | |||
235 | n = ptrace(PTRACE_POKEUSR, pid, PT_SYSCALL_RET_OFFSET, os_getpid()); | ||
236 | if(n < 0){ | ||
237 | non_fatal("check_sysemu : failed to modify system call " | ||
238 | "return"); | ||
239 | goto fail; | ||
240 | } | ||
233 | 241 | ||
234 | if (stop_ptraced_child(pid, stack, 0, 0) < 0) | 242 | if (stop_ptraced_child(pid, stack, 0, 0) < 0) |
235 | goto fail_stopped; | 243 | goto fail_stopped; |
diff --git a/arch/v850/Kconfig b/arch/v850/Kconfig index 5f54c1236c18..ace479ab273f 100644 --- a/arch/v850/Kconfig +++ b/arch/v850/Kconfig | |||
@@ -240,14 +240,6 @@ menu "Processor type and features" | |||
240 | config RESET_GUARD | 240 | config RESET_GUARD |
241 | bool "Reset Guard" | 241 | bool "Reset Guard" |
242 | 242 | ||
243 | config LARGE_ALLOCS | ||
244 | bool "Allow allocating large blocks (> 1MB) of memory" | ||
245 | help | ||
246 | Allow the slab memory allocator to keep chains for very large | ||
247 | memory sizes - upto 32MB. You may need this if your system has | ||
248 | a lot of RAM, and you need to able to allocate very large | ||
249 | contiguous chunks. If unsure, say N. | ||
250 | |||
251 | source "mm/Kconfig" | 243 | source "mm/Kconfig" |
252 | 244 | ||
253 | endmenu | 245 | endmenu |
diff --git a/arch/v850/kernel/vmlinux.lds.S b/arch/v850/kernel/vmlinux.lds.S index 356308221251..6172599b4ce2 100644 --- a/arch/v850/kernel/vmlinux.lds.S +++ b/arch/v850/kernel/vmlinux.lds.S | |||
@@ -92,7 +92,7 @@ | |||
92 | #define TEXT_CONTENTS \ | 92 | #define TEXT_CONTENTS \ |
93 | _text = .; \ | 93 | _text = .; \ |
94 | __stext = . ; \ | 94 | __stext = . ; \ |
95 | *(.text) \ | 95 | TEXT_TEXT \ |
96 | SCHED_TEXT \ | 96 | SCHED_TEXT \ |
97 | *(.exit.text) /* 2.5 convention */ \ | 97 | *(.exit.text) /* 2.5 convention */ \ |
98 | *(.text.exit) /* 2.4 convention */ \ | 98 | *(.text.exit) /* 2.4 convention */ \ |
@@ -113,7 +113,7 @@ | |||
113 | /* Kernel data segment. */ | 113 | /* Kernel data segment. */ |
114 | #define DATA_CONTENTS \ | 114 | #define DATA_CONTENTS \ |
115 | __sdata = . ; \ | 115 | __sdata = . ; \ |
116 | *(.data) \ | 116 | DATA_DATA \ |
117 | *(.exit.data) /* 2.5 convention */ \ | 117 | *(.exit.data) /* 2.5 convention */ \ |
118 | *(.data.exit) /* 2.4 convention */ \ | 118 | *(.data.exit) /* 2.4 convention */ \ |
119 | . = ALIGN (16) ; \ | 119 | . = ALIGN (16) ; \ |
diff --git a/arch/x86_64/Kconfig b/arch/x86_64/Kconfig index 145bb824b2a8..5ce94430c019 100644 --- a/arch/x86_64/Kconfig +++ b/arch/x86_64/Kconfig | |||
@@ -428,12 +428,15 @@ config NR_CPUS | |||
428 | memory in the static kernel configuration. | 428 | memory in the static kernel configuration. |
429 | 429 | ||
430 | config HOTPLUG_CPU | 430 | config HOTPLUG_CPU |
431 | bool "Support for hot-pluggable CPUs (EXPERIMENTAL)" | 431 | bool "Support for suspend on SMP and hot-pluggable CPUs (EXPERIMENTAL)" |
432 | depends on SMP && HOTPLUG && EXPERIMENTAL | 432 | depends on SMP && HOTPLUG && EXPERIMENTAL |
433 | help | 433 | help |
434 | Say Y here to experiment with turning CPUs off and on. CPUs | 434 | Say Y here to experiment with turning CPUs off and on. CPUs |
435 | can be controlled through /sys/devices/system/cpu/cpu#. | 435 | can be controlled through /sys/devices/system/cpu/cpu#. |
436 | Say N if you want to disable CPU hotplug. | 436 | This is also required for suspend/hibernation on SMP systems. |
437 | |||
438 | Say N if you want to disable CPU hotplug and don't need to | ||
439 | suspend. | ||
437 | 440 | ||
438 | config ARCH_ENABLE_MEMORY_HOTPLUG | 441 | config ARCH_ENABLE_MEMORY_HOTPLUG |
439 | def_bool y | 442 | def_bool y |
diff --git a/arch/x86_64/defconfig b/arch/x86_64/defconfig index 941a7e3aa5fb..40178e5c3104 100644 --- a/arch/x86_64/defconfig +++ b/arch/x86_64/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.21-git3 | 3 | # Linux kernel version: 2.6.22-rc2 |
4 | # Tue May 1 07:30:48 2007 | 4 | # Mon May 21 13:23:40 2007 |
5 | # | 5 | # |
6 | CONFIG_X86_64=y | 6 | CONFIG_X86_64=y |
7 | CONFIG_64BIT=y | 7 | CONFIG_64BIT=y |
@@ -53,6 +53,7 @@ CONFIG_POSIX_MQUEUE=y | |||
53 | # CONFIG_AUDIT is not set | 53 | # CONFIG_AUDIT is not set |
54 | CONFIG_IKCONFIG=y | 54 | CONFIG_IKCONFIG=y |
55 | CONFIG_IKCONFIG_PROC=y | 55 | CONFIG_IKCONFIG_PROC=y |
56 | CONFIG_LOG_BUF_SHIFT=18 | ||
56 | # CONFIG_CPUSETS is not set | 57 | # CONFIG_CPUSETS is not set |
57 | CONFIG_SYSFS_DEPRECATED=y | 58 | CONFIG_SYSFS_DEPRECATED=y |
58 | # CONFIG_RELAY is not set | 59 | # CONFIG_RELAY is not set |
@@ -72,14 +73,19 @@ CONFIG_BUG=y | |||
72 | CONFIG_ELF_CORE=y | 73 | CONFIG_ELF_CORE=y |
73 | CONFIG_BASE_FULL=y | 74 | CONFIG_BASE_FULL=y |
74 | CONFIG_FUTEX=y | 75 | CONFIG_FUTEX=y |
76 | CONFIG_ANON_INODES=y | ||
75 | CONFIG_EPOLL=y | 77 | CONFIG_EPOLL=y |
78 | CONFIG_SIGNALFD=y | ||
79 | CONFIG_TIMERFD=y | ||
80 | CONFIG_EVENTFD=y | ||
76 | CONFIG_SHMEM=y | 81 | CONFIG_SHMEM=y |
77 | CONFIG_SLAB=y | ||
78 | CONFIG_VM_EVENT_COUNTERS=y | 82 | CONFIG_VM_EVENT_COUNTERS=y |
83 | CONFIG_SLAB=y | ||
84 | # CONFIG_SLUB is not set | ||
85 | # CONFIG_SLOB is not set | ||
79 | CONFIG_RT_MUTEXES=y | 86 | CONFIG_RT_MUTEXES=y |
80 | # CONFIG_TINY_SHMEM is not set | 87 | # CONFIG_TINY_SHMEM is not set |
81 | CONFIG_BASE_SMALL=0 | 88 | CONFIG_BASE_SMALL=0 |
82 | # CONFIG_SLOB is not set | ||
83 | 89 | ||
84 | # | 90 | # |
85 | # Loadable module support | 91 | # Loadable module support |
@@ -118,11 +124,11 @@ CONFIG_X86_PC=y | |||
118 | # CONFIG_X86_VSMP is not set | 124 | # CONFIG_X86_VSMP is not set |
119 | # CONFIG_MK8 is not set | 125 | # CONFIG_MK8 is not set |
120 | # CONFIG_MPSC is not set | 126 | # CONFIG_MPSC is not set |
121 | CONFIG_MCORE2=y | 127 | # CONFIG_MCORE2 is not set |
122 | # CONFIG_GENERIC_CPU is not set | 128 | CONFIG_GENERIC_CPU=y |
123 | CONFIG_X86_L1_CACHE_BYTES=64 | 129 | CONFIG_X86_L1_CACHE_BYTES=128 |
124 | CONFIG_X86_L1_CACHE_SHIFT=6 | 130 | CONFIG_X86_L1_CACHE_SHIFT=7 |
125 | CONFIG_X86_INTERNODE_CACHE_BYTES=64 | 131 | CONFIG_X86_INTERNODE_CACHE_BYTES=128 |
126 | CONFIG_X86_TSC=y | 132 | CONFIG_X86_TSC=y |
127 | CONFIG_X86_GOOD_APIC=y | 133 | CONFIG_X86_GOOD_APIC=y |
128 | # CONFIG_MICROCODE is not set | 134 | # CONFIG_MICROCODE is not set |
@@ -174,7 +180,7 @@ CONFIG_X86_MCE_INTEL=y | |||
174 | CONFIG_X86_MCE_AMD=y | 180 | CONFIG_X86_MCE_AMD=y |
175 | # CONFIG_KEXEC is not set | 181 | # CONFIG_KEXEC is not set |
176 | # CONFIG_CRASH_DUMP is not set | 182 | # CONFIG_CRASH_DUMP is not set |
177 | # CONFIG_RELOCATABLE is not set | 183 | CONFIG_RELOCATABLE=y |
178 | CONFIG_PHYSICAL_START=0x200000 | 184 | CONFIG_PHYSICAL_START=0x200000 |
179 | CONFIG_SECCOMP=y | 185 | CONFIG_SECCOMP=y |
180 | # CONFIG_CC_STACKPROTECTOR is not set | 186 | # CONFIG_CC_STACKPROTECTOR is not set |
@@ -242,7 +248,7 @@ CONFIG_CPU_FREQ_GOV_PERFORMANCE=y | |||
242 | # CONFIG_CPU_FREQ_GOV_POWERSAVE is not set | 248 | # CONFIG_CPU_FREQ_GOV_POWERSAVE is not set |
243 | CONFIG_CPU_FREQ_GOV_USERSPACE=y | 249 | CONFIG_CPU_FREQ_GOV_USERSPACE=y |
244 | CONFIG_CPU_FREQ_GOV_ONDEMAND=y | 250 | CONFIG_CPU_FREQ_GOV_ONDEMAND=y |
245 | CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y | 251 | # CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set |
246 | 252 | ||
247 | # | 253 | # |
248 | # CPUFreq processor drivers | 254 | # CPUFreq processor drivers |
@@ -266,6 +272,7 @@ CONFIG_PCI_DIRECT=y | |||
266 | CONFIG_PCI_MMCONFIG=y | 272 | CONFIG_PCI_MMCONFIG=y |
267 | CONFIG_PCIEPORTBUS=y | 273 | CONFIG_PCIEPORTBUS=y |
268 | CONFIG_PCIEAER=y | 274 | CONFIG_PCIEAER=y |
275 | CONFIG_ARCH_SUPPORTS_MSI=y | ||
269 | CONFIG_PCI_MSI=y | 276 | CONFIG_PCI_MSI=y |
270 | # CONFIG_PCI_DEBUG is not set | 277 | # CONFIG_PCI_DEBUG is not set |
271 | # CONFIG_HT_IRQ is not set | 278 | # CONFIG_HT_IRQ is not set |
@@ -274,10 +281,6 @@ CONFIG_PCI_MSI=y | |||
274 | # PCCARD (PCMCIA/CardBus) support | 281 | # PCCARD (PCMCIA/CardBus) support |
275 | # | 282 | # |
276 | # CONFIG_PCCARD is not set | 283 | # CONFIG_PCCARD is not set |
277 | |||
278 | # | ||
279 | # PCI Hotplug Support | ||
280 | # | ||
281 | # CONFIG_HOTPLUG_PCI is not set | 284 | # CONFIG_HOTPLUG_PCI is not set |
282 | 285 | ||
283 | # | 286 | # |
@@ -395,7 +398,9 @@ CONFIG_IPV6_SIT=y | |||
395 | # | 398 | # |
396 | # CONFIG_CFG80211 is not set | 399 | # CONFIG_CFG80211 is not set |
397 | # CONFIG_WIRELESS_EXT is not set | 400 | # CONFIG_WIRELESS_EXT is not set |
401 | # CONFIG_MAC80211 is not set | ||
398 | # CONFIG_IEEE80211 is not set | 402 | # CONFIG_IEEE80211 is not set |
403 | # CONFIG_RFKILL is not set | ||
399 | 404 | ||
400 | # | 405 | # |
401 | # Device Drivers | 406 | # Device Drivers |
@@ -458,14 +463,12 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | |||
458 | # Misc devices | 463 | # Misc devices |
459 | # | 464 | # |
460 | # CONFIG_IBM_ASM is not set | 465 | # CONFIG_IBM_ASM is not set |
466 | # CONFIG_PHANTOM is not set | ||
461 | # CONFIG_SGI_IOC4 is not set | 467 | # CONFIG_SGI_IOC4 is not set |
462 | # CONFIG_TIFM_CORE is not set | 468 | # CONFIG_TIFM_CORE is not set |
463 | # CONFIG_SONY_LAPTOP is not set | 469 | # CONFIG_SONY_LAPTOP is not set |
464 | # CONFIG_THINKPAD_ACPI is not set | 470 | # CONFIG_THINKPAD_ACPI is not set |
465 | 471 | # CONFIG_BLINK is not set | |
466 | # | ||
467 | # ATA/ATAPI/MFM/RLL support | ||
468 | # | ||
469 | CONFIG_IDE=y | 472 | CONFIG_IDE=y |
470 | CONFIG_BLK_DEV_IDE=y | 473 | CONFIG_BLK_DEV_IDE=y |
471 | 474 | ||
@@ -482,6 +485,7 @@ CONFIG_BLK_DEV_IDECD=y | |||
482 | # CONFIG_BLK_DEV_IDESCSI is not set | 485 | # CONFIG_BLK_DEV_IDESCSI is not set |
483 | CONFIG_BLK_DEV_IDEACPI=y | 486 | CONFIG_BLK_DEV_IDEACPI=y |
484 | # CONFIG_IDE_TASK_IOCTL is not set | 487 | # CONFIG_IDE_TASK_IOCTL is not set |
488 | CONFIG_IDE_PROC_FS=y | ||
485 | 489 | ||
486 | # | 490 | # |
487 | # IDE chipset support/bugfixes | 491 | # IDE chipset support/bugfixes |
@@ -491,6 +495,7 @@ CONFIG_IDE_GENERIC=y | |||
491 | # CONFIG_BLK_DEV_IDEPNP is not set | 495 | # CONFIG_BLK_DEV_IDEPNP is not set |
492 | CONFIG_BLK_DEV_IDEPCI=y | 496 | CONFIG_BLK_DEV_IDEPCI=y |
493 | # CONFIG_IDEPCI_SHARE_IRQ is not set | 497 | # CONFIG_IDEPCI_SHARE_IRQ is not set |
498 | CONFIG_IDEPCI_PCIBUS_ORDER=y | ||
494 | # CONFIG_BLK_DEV_OFFBOARD is not set | 499 | # CONFIG_BLK_DEV_OFFBOARD is not set |
495 | # CONFIG_BLK_DEV_GENERIC is not set | 500 | # CONFIG_BLK_DEV_GENERIC is not set |
496 | # CONFIG_BLK_DEV_OPTI621 is not set | 501 | # CONFIG_BLK_DEV_OPTI621 is not set |
@@ -556,6 +561,7 @@ CONFIG_CHR_DEV_SG=y | |||
556 | CONFIG_SCSI_CONSTANTS=y | 561 | CONFIG_SCSI_CONSTANTS=y |
557 | # CONFIG_SCSI_LOGGING is not set | 562 | # CONFIG_SCSI_LOGGING is not set |
558 | # CONFIG_SCSI_SCAN_ASYNC is not set | 563 | # CONFIG_SCSI_SCAN_ASYNC is not set |
564 | CONFIG_SCSI_WAIT_SCAN=m | ||
559 | 565 | ||
560 | # | 566 | # |
561 | # SCSI Transports | 567 | # SCSI Transports |
@@ -579,15 +585,16 @@ CONFIG_SCSI_SAS_ATTRS=y | |||
579 | CONFIG_SCSI_AIC79XX=y | 585 | CONFIG_SCSI_AIC79XX=y |
580 | CONFIG_AIC79XX_CMDS_PER_DEVICE=32 | 586 | CONFIG_AIC79XX_CMDS_PER_DEVICE=32 |
581 | CONFIG_AIC79XX_RESET_DELAY_MS=4000 | 587 | CONFIG_AIC79XX_RESET_DELAY_MS=4000 |
582 | # CONFIG_AIC79XX_ENABLE_RD_STRM is not set | ||
583 | # CONFIG_AIC79XX_DEBUG_ENABLE is not set | 588 | # CONFIG_AIC79XX_DEBUG_ENABLE is not set |
584 | CONFIG_AIC79XX_DEBUG_MASK=0 | 589 | CONFIG_AIC79XX_DEBUG_MASK=0 |
585 | # CONFIG_AIC79XX_REG_PRETTY_PRINT is not set | 590 | # CONFIG_AIC79XX_REG_PRETTY_PRINT is not set |
586 | # CONFIG_SCSI_AIC94XX is not set | 591 | # CONFIG_SCSI_AIC94XX is not set |
587 | # CONFIG_SCSI_ARCMSR is not set | 592 | # CONFIG_SCSI_ARCMSR is not set |
588 | # CONFIG_MEGARAID_NEWGEN is not set | 593 | CONFIG_MEGARAID_NEWGEN=y |
594 | CONFIG_MEGARAID_MM=y | ||
595 | CONFIG_MEGARAID_MAILBOX=y | ||
589 | # CONFIG_MEGARAID_LEGACY is not set | 596 | # CONFIG_MEGARAID_LEGACY is not set |
590 | # CONFIG_MEGARAID_SAS is not set | 597 | CONFIG_MEGARAID_SAS=y |
591 | # CONFIG_SCSI_HPTIOP is not set | 598 | # CONFIG_SCSI_HPTIOP is not set |
592 | # CONFIG_SCSI_BUSLOGIC is not set | 599 | # CONFIG_SCSI_BUSLOGIC is not set |
593 | # CONFIG_SCSI_DMX3191D is not set | 600 | # CONFIG_SCSI_DMX3191D is not set |
@@ -609,12 +616,9 @@ CONFIG_AIC79XX_DEBUG_MASK=0 | |||
609 | # CONFIG_SCSI_DEBUG is not set | 616 | # CONFIG_SCSI_DEBUG is not set |
610 | # CONFIG_SCSI_ESP_CORE is not set | 617 | # CONFIG_SCSI_ESP_CORE is not set |
611 | # CONFIG_SCSI_SRP is not set | 618 | # CONFIG_SCSI_SRP is not set |
612 | |||
613 | # | ||
614 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
615 | # | ||
616 | CONFIG_ATA=y | 619 | CONFIG_ATA=y |
617 | # CONFIG_ATA_NONSTANDARD is not set | 620 | # CONFIG_ATA_NONSTANDARD is not set |
621 | CONFIG_ATA_ACPI=y | ||
618 | CONFIG_SATA_AHCI=y | 622 | CONFIG_SATA_AHCI=y |
619 | CONFIG_SATA_SVW=y | 623 | CONFIG_SATA_SVW=y |
620 | CONFIG_ATA_PIIX=y | 624 | CONFIG_ATA_PIIX=y |
@@ -631,7 +635,6 @@ CONFIG_SATA_SIL=y | |||
631 | CONFIG_SATA_VIA=y | 635 | CONFIG_SATA_VIA=y |
632 | # CONFIG_SATA_VITESSE is not set | 636 | # CONFIG_SATA_VITESSE is not set |
633 | # CONFIG_SATA_INIC162X is not set | 637 | # CONFIG_SATA_INIC162X is not set |
634 | CONFIG_SATA_ACPI=y | ||
635 | # CONFIG_PATA_ALI is not set | 638 | # CONFIG_PATA_ALI is not set |
636 | # CONFIG_PATA_AMD is not set | 639 | # CONFIG_PATA_AMD is not set |
637 | # CONFIG_PATA_ARTOP is not set | 640 | # CONFIG_PATA_ARTOP is not set |
@@ -681,6 +684,7 @@ CONFIG_BLK_DEV_DM=y | |||
681 | # CONFIG_DM_MIRROR is not set | 684 | # CONFIG_DM_MIRROR is not set |
682 | # CONFIG_DM_ZERO is not set | 685 | # CONFIG_DM_ZERO is not set |
683 | # CONFIG_DM_MULTIPATH is not set | 686 | # CONFIG_DM_MULTIPATH is not set |
687 | # CONFIG_DM_DELAY is not set | ||
684 | 688 | ||
685 | # | 689 | # |
686 | # Fusion MPT device support | 690 | # Fusion MPT device support |
@@ -688,13 +692,14 @@ CONFIG_BLK_DEV_DM=y | |||
688 | CONFIG_FUSION=y | 692 | CONFIG_FUSION=y |
689 | CONFIG_FUSION_SPI=y | 693 | CONFIG_FUSION_SPI=y |
690 | # CONFIG_FUSION_FC is not set | 694 | # CONFIG_FUSION_FC is not set |
691 | # CONFIG_FUSION_SAS is not set | 695 | CONFIG_FUSION_SAS=y |
692 | CONFIG_FUSION_MAX_SGE=128 | 696 | CONFIG_FUSION_MAX_SGE=128 |
693 | # CONFIG_FUSION_CTL is not set | 697 | # CONFIG_FUSION_CTL is not set |
694 | 698 | ||
695 | # | 699 | # |
696 | # IEEE 1394 (FireWire) support | 700 | # IEEE 1394 (FireWire) support |
697 | # | 701 | # |
702 | # CONFIG_FIREWIRE is not set | ||
698 | CONFIG_IEEE1394=y | 703 | CONFIG_IEEE1394=y |
699 | 704 | ||
700 | # | 705 | # |
@@ -705,10 +710,7 @@ CONFIG_IEEE1394=y | |||
705 | # | 710 | # |
706 | # Controllers | 711 | # Controllers |
707 | # | 712 | # |
708 | 713 | # CONFIG_IEEE1394_PCILYNX is not set | |
709 | # | ||
710 | # Texas Instruments PCILynx requires I2C | ||
711 | # | ||
712 | CONFIG_IEEE1394_OHCI1394=y | 714 | CONFIG_IEEE1394_OHCI1394=y |
713 | 715 | ||
714 | # | 716 | # |
@@ -725,11 +727,7 @@ CONFIG_IEEE1394_RAWIO=y | |||
725 | # I2O device support | 727 | # I2O device support |
726 | # | 728 | # |
727 | # CONFIG_I2O is not set | 729 | # CONFIG_I2O is not set |
728 | 730 | # CONFIG_MACINTOSH_DRIVERS is not set | |
729 | # | ||
730 | # Macintosh device drivers | ||
731 | # | ||
732 | # CONFIG_MAC_EMUMOUSEBTN is not set | ||
733 | 731 | ||
734 | # | 732 | # |
735 | # Network device support | 733 | # Network device support |
@@ -745,10 +743,6 @@ CONFIG_TUN=y | |||
745 | # ARCnet devices | 743 | # ARCnet devices |
746 | # | 744 | # |
747 | # CONFIG_ARCNET is not set | 745 | # CONFIG_ARCNET is not set |
748 | |||
749 | # | ||
750 | # PHY device support | ||
751 | # | ||
752 | # CONFIG_PHYLIB is not set | 746 | # CONFIG_PHYLIB is not set |
753 | 747 | ||
754 | # | 748 | # |
@@ -779,8 +773,7 @@ CONFIG_TULIP=y | |||
779 | # CONFIG_HP100 is not set | 773 | # CONFIG_HP100 is not set |
780 | CONFIG_NET_PCI=y | 774 | CONFIG_NET_PCI=y |
781 | # CONFIG_PCNET32 is not set | 775 | # CONFIG_PCNET32 is not set |
782 | CONFIG_AMD8111_ETH=y | 776 | # CONFIG_AMD8111_ETH is not set |
783 | # CONFIG_AMD8111E_NAPI is not set | ||
784 | # CONFIG_ADAPTEC_STARFIRE is not set | 777 | # CONFIG_ADAPTEC_STARFIRE is not set |
785 | CONFIG_B44=y | 778 | CONFIG_B44=y |
786 | CONFIG_FORCEDETH=y | 779 | CONFIG_FORCEDETH=y |
@@ -802,10 +795,7 @@ CONFIG_8139TOO=y | |||
802 | # CONFIG_SUNDANCE is not set | 795 | # CONFIG_SUNDANCE is not set |
803 | # CONFIG_VIA_RHINE is not set | 796 | # CONFIG_VIA_RHINE is not set |
804 | # CONFIG_SC92031 is not set | 797 | # CONFIG_SC92031 is not set |
805 | 798 | CONFIG_NETDEV_1000=y | |
806 | # | ||
807 | # Ethernet (1000 Mbit) | ||
808 | # | ||
809 | # CONFIG_ACENIC is not set | 799 | # CONFIG_ACENIC is not set |
810 | # CONFIG_DL2K is not set | 800 | # CONFIG_DL2K is not set |
811 | CONFIG_E1000=y | 801 | CONFIG_E1000=y |
@@ -824,10 +814,7 @@ CONFIG_TIGON3=y | |||
824 | CONFIG_BNX2=y | 814 | CONFIG_BNX2=y |
825 | # CONFIG_QLA3XXX is not set | 815 | # CONFIG_QLA3XXX is not set |
826 | # CONFIG_ATL1 is not set | 816 | # CONFIG_ATL1 is not set |
827 | 817 | CONFIG_NETDEV_10000=y | |
828 | # | ||
829 | # Ethernet (10000 Mbit) | ||
830 | # | ||
831 | # CONFIG_CHELSIO_T1 is not set | 818 | # CONFIG_CHELSIO_T1 is not set |
832 | # CONFIG_CHELSIO_T3 is not set | 819 | # CONFIG_CHELSIO_T3 is not set |
833 | # CONFIG_IXGB is not set | 820 | # CONFIG_IXGB is not set |
@@ -835,6 +822,7 @@ CONFIG_S2IO=m | |||
835 | # CONFIG_S2IO_NAPI is not set | 822 | # CONFIG_S2IO_NAPI is not set |
836 | # CONFIG_MYRI10GE is not set | 823 | # CONFIG_MYRI10GE is not set |
837 | # CONFIG_NETXEN_NIC is not set | 824 | # CONFIG_NETXEN_NIC is not set |
825 | # CONFIG_MLX4_CORE is not set | ||
838 | 826 | ||
839 | # | 827 | # |
840 | # Token Ring devices | 828 | # Token Ring devices |
@@ -848,8 +836,14 @@ CONFIG_S2IO=m | |||
848 | # CONFIG_WLAN_80211 is not set | 836 | # CONFIG_WLAN_80211 is not set |
849 | 837 | ||
850 | # | 838 | # |
851 | # Wan interfaces | 839 | # USB Network Adapters |
852 | # | 840 | # |
841 | # CONFIG_USB_CATC is not set | ||
842 | # CONFIG_USB_KAWETH is not set | ||
843 | # CONFIG_USB_PEGASUS is not set | ||
844 | # CONFIG_USB_RTL8150 is not set | ||
845 | # CONFIG_USB_USBNET_MII is not set | ||
846 | # CONFIG_USB_USBNET is not set | ||
853 | # CONFIG_WAN is not set | 847 | # CONFIG_WAN is not set |
854 | # CONFIG_FDDI is not set | 848 | # CONFIG_FDDI is not set |
855 | # CONFIG_HIPPI is not set | 849 | # CONFIG_HIPPI is not set |
@@ -902,9 +896,17 @@ CONFIG_KEYBOARD_ATKBD=y | |||
902 | # CONFIG_KEYBOARD_STOWAWAY is not set | 896 | # CONFIG_KEYBOARD_STOWAWAY is not set |
903 | CONFIG_INPUT_MOUSE=y | 897 | CONFIG_INPUT_MOUSE=y |
904 | CONFIG_MOUSE_PS2=y | 898 | CONFIG_MOUSE_PS2=y |
899 | CONFIG_MOUSE_PS2_ALPS=y | ||
900 | CONFIG_MOUSE_PS2_LOGIPS2PP=y | ||
901 | CONFIG_MOUSE_PS2_SYNAPTICS=y | ||
902 | CONFIG_MOUSE_PS2_LIFEBOOK=y | ||
903 | CONFIG_MOUSE_PS2_TRACKPOINT=y | ||
904 | # CONFIG_MOUSE_PS2_TOUCHKIT is not set | ||
905 | # CONFIG_MOUSE_SERIAL is not set | 905 | # CONFIG_MOUSE_SERIAL is not set |
906 | # CONFIG_MOUSE_APPLETOUCH is not set | ||
906 | # CONFIG_MOUSE_VSXXXAA is not set | 907 | # CONFIG_MOUSE_VSXXXAA is not set |
907 | # CONFIG_INPUT_JOYSTICK is not set | 908 | # CONFIG_INPUT_JOYSTICK is not set |
909 | # CONFIG_INPUT_TABLET is not set | ||
908 | # CONFIG_INPUT_TOUCHSCREEN is not set | 910 | # CONFIG_INPUT_TOUCHSCREEN is not set |
909 | # CONFIG_INPUT_MISC is not set | 911 | # CONFIG_INPUT_MISC is not set |
910 | 912 | ||
@@ -954,10 +956,6 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
954 | # IPMI | 956 | # IPMI |
955 | # | 957 | # |
956 | # CONFIG_IPMI_HANDLER is not set | 958 | # CONFIG_IPMI_HANDLER is not set |
957 | |||
958 | # | ||
959 | # Watchdog Cards | ||
960 | # | ||
961 | # CONFIG_WATCHDOG is not set | 959 | # CONFIG_WATCHDOG is not set |
962 | CONFIG_HW_RANDOM=y | 960 | CONFIG_HW_RANDOM=y |
963 | CONFIG_HW_RANDOM_INTEL=y | 961 | CONFIG_HW_RANDOM_INTEL=y |
@@ -965,7 +963,6 @@ CONFIG_HW_RANDOM_AMD=y | |||
965 | # CONFIG_HW_RANDOM_GEODE is not set | 963 | # CONFIG_HW_RANDOM_GEODE is not set |
966 | # CONFIG_NVRAM is not set | 964 | # CONFIG_NVRAM is not set |
967 | CONFIG_RTC=y | 965 | CONFIG_RTC=y |
968 | # CONFIG_DTLK is not set | ||
969 | # CONFIG_R3964 is not set | 966 | # CONFIG_R3964 is not set |
970 | # CONFIG_APPLICOM is not set | 967 | # CONFIG_APPLICOM is not set |
971 | CONFIG_AGP=y | 968 | CONFIG_AGP=y |
@@ -988,11 +985,58 @@ CONFIG_HPET_MMAP=y | |||
988 | # | 985 | # |
989 | # CONFIG_TCG_TPM is not set | 986 | # CONFIG_TCG_TPM is not set |
990 | # CONFIG_TELCLOCK is not set | 987 | # CONFIG_TELCLOCK is not set |
991 | 988 | CONFIG_DEVPORT=y | |
992 | # | 989 | CONFIG_I2C=m |
993 | # I2C support | 990 | CONFIG_I2C_BOARDINFO=y |
994 | # | 991 | CONFIG_I2C_CHARDEV=m |
995 | # CONFIG_I2C is not set | 992 | |
993 | # | ||
994 | # I2C Algorithms | ||
995 | # | ||
996 | # CONFIG_I2C_ALGOBIT is not set | ||
997 | # CONFIG_I2C_ALGOPCF is not set | ||
998 | # CONFIG_I2C_ALGOPCA is not set | ||
999 | |||
1000 | # | ||
1001 | # I2C Hardware Bus support | ||
1002 | # | ||
1003 | # CONFIG_I2C_ALI1535 is not set | ||
1004 | # CONFIG_I2C_ALI1563 is not set | ||
1005 | # CONFIG_I2C_ALI15X3 is not set | ||
1006 | # CONFIG_I2C_AMD756 is not set | ||
1007 | # CONFIG_I2C_AMD8111 is not set | ||
1008 | # CONFIG_I2C_I801 is not set | ||
1009 | # CONFIG_I2C_I810 is not set | ||
1010 | # CONFIG_I2C_PIIX4 is not set | ||
1011 | # CONFIG_I2C_NFORCE2 is not set | ||
1012 | # CONFIG_I2C_OCORES is not set | ||
1013 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
1014 | # CONFIG_I2C_PROSAVAGE is not set | ||
1015 | # CONFIG_I2C_SAVAGE4 is not set | ||
1016 | # CONFIG_I2C_SIMTEC is not set | ||
1017 | # CONFIG_I2C_SIS5595 is not set | ||
1018 | # CONFIG_I2C_SIS630 is not set | ||
1019 | # CONFIG_I2C_SIS96X is not set | ||
1020 | # CONFIG_I2C_STUB is not set | ||
1021 | # CONFIG_I2C_TINY_USB is not set | ||
1022 | # CONFIG_I2C_VIA is not set | ||
1023 | # CONFIG_I2C_VIAPRO is not set | ||
1024 | # CONFIG_I2C_VOODOO3 is not set | ||
1025 | |||
1026 | # | ||
1027 | # Miscellaneous I2C Chip support | ||
1028 | # | ||
1029 | # CONFIG_SENSORS_DS1337 is not set | ||
1030 | # CONFIG_SENSORS_DS1374 is not set | ||
1031 | # CONFIG_SENSORS_EEPROM is not set | ||
1032 | # CONFIG_SENSORS_PCF8574 is not set | ||
1033 | # CONFIG_SENSORS_PCA9539 is not set | ||
1034 | # CONFIG_SENSORS_PCF8591 is not set | ||
1035 | # CONFIG_SENSORS_MAX6875 is not set | ||
1036 | # CONFIG_I2C_DEBUG_CORE is not set | ||
1037 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
1038 | # CONFIG_I2C_DEBUG_BUS is not set | ||
1039 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
996 | 1040 | ||
997 | # | 1041 | # |
998 | # SPI support | 1042 | # SPI support |
@@ -1004,12 +1048,58 @@ CONFIG_HPET_MMAP=y | |||
1004 | # Dallas's 1-wire bus | 1048 | # Dallas's 1-wire bus |
1005 | # | 1049 | # |
1006 | # CONFIG_W1 is not set | 1050 | # CONFIG_W1 is not set |
1007 | 1051 | CONFIG_HWMON=y | |
1008 | # | ||
1009 | # Hardware Monitoring support | ||
1010 | # | ||
1011 | # CONFIG_HWMON is not set | ||
1012 | # CONFIG_HWMON_VID is not set | 1052 | # CONFIG_HWMON_VID is not set |
1053 | # CONFIG_SENSORS_ABITUGURU is not set | ||
1054 | # CONFIG_SENSORS_AD7418 is not set | ||
1055 | # CONFIG_SENSORS_ADM1021 is not set | ||
1056 | # CONFIG_SENSORS_ADM1025 is not set | ||
1057 | # CONFIG_SENSORS_ADM1026 is not set | ||
1058 | # CONFIG_SENSORS_ADM1029 is not set | ||
1059 | # CONFIG_SENSORS_ADM1031 is not set | ||
1060 | # CONFIG_SENSORS_ADM9240 is not set | ||
1061 | # CONFIG_SENSORS_K8TEMP is not set | ||
1062 | # CONFIG_SENSORS_ASB100 is not set | ||
1063 | # CONFIG_SENSORS_ATXP1 is not set | ||
1064 | # CONFIG_SENSORS_DS1621 is not set | ||
1065 | # CONFIG_SENSORS_F71805F is not set | ||
1066 | # CONFIG_SENSORS_FSCHER is not set | ||
1067 | # CONFIG_SENSORS_FSCPOS is not set | ||
1068 | # CONFIG_SENSORS_GL518SM is not set | ||
1069 | # CONFIG_SENSORS_GL520SM is not set | ||
1070 | CONFIG_SENSORS_CORETEMP=y | ||
1071 | # CONFIG_SENSORS_IT87 is not set | ||
1072 | # CONFIG_SENSORS_LM63 is not set | ||
1073 | # CONFIG_SENSORS_LM75 is not set | ||
1074 | # CONFIG_SENSORS_LM77 is not set | ||
1075 | # CONFIG_SENSORS_LM78 is not set | ||
1076 | # CONFIG_SENSORS_LM80 is not set | ||
1077 | # CONFIG_SENSORS_LM83 is not set | ||
1078 | # CONFIG_SENSORS_LM85 is not set | ||
1079 | # CONFIG_SENSORS_LM87 is not set | ||
1080 | # CONFIG_SENSORS_LM90 is not set | ||
1081 | # CONFIG_SENSORS_LM92 is not set | ||
1082 | # CONFIG_SENSORS_MAX1619 is not set | ||
1083 | # CONFIG_SENSORS_MAX6650 is not set | ||
1084 | # CONFIG_SENSORS_PC87360 is not set | ||
1085 | # CONFIG_SENSORS_PC87427 is not set | ||
1086 | # CONFIG_SENSORS_SIS5595 is not set | ||
1087 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
1088 | # CONFIG_SENSORS_SMSC47M192 is not set | ||
1089 | CONFIG_SENSORS_SMSC47B397=m | ||
1090 | # CONFIG_SENSORS_VIA686A is not set | ||
1091 | # CONFIG_SENSORS_VT1211 is not set | ||
1092 | # CONFIG_SENSORS_VT8231 is not set | ||
1093 | # CONFIG_SENSORS_W83781D is not set | ||
1094 | # CONFIG_SENSORS_W83791D is not set | ||
1095 | # CONFIG_SENSORS_W83792D is not set | ||
1096 | # CONFIG_SENSORS_W83793 is not set | ||
1097 | # CONFIG_SENSORS_W83L785TS is not set | ||
1098 | # CONFIG_SENSORS_W83627HF is not set | ||
1099 | # CONFIG_SENSORS_W83627EHF is not set | ||
1100 | # CONFIG_SENSORS_HDAPS is not set | ||
1101 | # CONFIG_SENSORS_APPLESMC is not set | ||
1102 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
1013 | 1103 | ||
1014 | # | 1104 | # |
1015 | # Multifunction device drivers | 1105 | # Multifunction device drivers |
@@ -1020,17 +1110,20 @@ CONFIG_HPET_MMAP=y | |||
1020 | # Multimedia devices | 1110 | # Multimedia devices |
1021 | # | 1111 | # |
1022 | # CONFIG_VIDEO_DEV is not set | 1112 | # CONFIG_VIDEO_DEV is not set |
1023 | 1113 | # CONFIG_DVB_CORE is not set | |
1024 | # | 1114 | CONFIG_DAB=y |
1025 | # Digital Video Broadcasting Devices | ||
1026 | # | ||
1027 | # CONFIG_DVB is not set | ||
1028 | # CONFIG_USB_DABUSB is not set | 1115 | # CONFIG_USB_DABUSB is not set |
1029 | 1116 | ||
1030 | # | 1117 | # |
1031 | # Graphics support | 1118 | # Graphics support |
1032 | # | 1119 | # |
1033 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 1120 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
1121 | |||
1122 | # | ||
1123 | # Display device support | ||
1124 | # | ||
1125 | # CONFIG_DISPLAY_SUPPORT is not set | ||
1126 | # CONFIG_VGASTATE is not set | ||
1034 | # CONFIG_FB is not set | 1127 | # CONFIG_FB is not set |
1035 | 1128 | ||
1036 | # | 1129 | # |
@@ -1056,14 +1149,10 @@ CONFIG_SOUND=y | |||
1056 | # Open Sound System | 1149 | # Open Sound System |
1057 | # | 1150 | # |
1058 | CONFIG_SOUND_PRIME=y | 1151 | CONFIG_SOUND_PRIME=y |
1059 | CONFIG_OBSOLETE_OSS=y | 1152 | # CONFIG_OSS_OBSOLETE is not set |
1060 | # CONFIG_SOUND_BT878 is not set | ||
1061 | # CONFIG_SOUND_ES1371 is not set | ||
1062 | CONFIG_SOUND_ICH=y | ||
1063 | # CONFIG_SOUND_TRIDENT is not set | 1153 | # CONFIG_SOUND_TRIDENT is not set |
1064 | # CONFIG_SOUND_MSNDCLAS is not set | 1154 | # CONFIG_SOUND_MSNDCLAS is not set |
1065 | # CONFIG_SOUND_MSNDPIN is not set | 1155 | # CONFIG_SOUND_MSNDPIN is not set |
1066 | # CONFIG_SOUND_VIA82CXXX is not set | ||
1067 | # CONFIG_SOUND_OSS is not set | 1156 | # CONFIG_SOUND_OSS is not set |
1068 | 1157 | ||
1069 | # | 1158 | # |
@@ -1142,37 +1231,10 @@ CONFIG_USB_STORAGE=y | |||
1142 | # CONFIG_USB_LIBUSUAL is not set | 1231 | # CONFIG_USB_LIBUSUAL is not set |
1143 | 1232 | ||
1144 | # | 1233 | # |
1145 | # USB Input Devices | ||
1146 | # | ||
1147 | # CONFIG_USB_AIPTEK is not set | ||
1148 | # CONFIG_USB_WACOM is not set | ||
1149 | # CONFIG_USB_ACECAD is not set | ||
1150 | # CONFIG_USB_KBTAB is not set | ||
1151 | # CONFIG_USB_POWERMATE is not set | ||
1152 | # CONFIG_USB_TOUCHSCREEN is not set | ||
1153 | # CONFIG_USB_YEALINK is not set | ||
1154 | # CONFIG_USB_XPAD is not set | ||
1155 | # CONFIG_USB_ATI_REMOTE is not set | ||
1156 | # CONFIG_USB_ATI_REMOTE2 is not set | ||
1157 | # CONFIG_USB_KEYSPAN_REMOTE is not set | ||
1158 | # CONFIG_USB_APPLETOUCH is not set | ||
1159 | # CONFIG_USB_GTCO is not set | ||
1160 | |||
1161 | # | ||
1162 | # USB Imaging devices | 1234 | # USB Imaging devices |
1163 | # | 1235 | # |
1164 | # CONFIG_USB_MDC800 is not set | 1236 | # CONFIG_USB_MDC800 is not set |
1165 | # CONFIG_USB_MICROTEK is not set | 1237 | # CONFIG_USB_MICROTEK is not set |
1166 | |||
1167 | # | ||
1168 | # USB Network Adapters | ||
1169 | # | ||
1170 | # CONFIG_USB_CATC is not set | ||
1171 | # CONFIG_USB_KAWETH is not set | ||
1172 | # CONFIG_USB_PEGASUS is not set | ||
1173 | # CONFIG_USB_RTL8150 is not set | ||
1174 | # CONFIG_USB_USBNET_MII is not set | ||
1175 | # CONFIG_USB_USBNET is not set | ||
1176 | CONFIG_USB_MON=y | 1238 | CONFIG_USB_MON=y |
1177 | 1239 | ||
1178 | # | 1240 | # |
@@ -1216,10 +1278,6 @@ CONFIG_USB_MON=y | |||
1216 | # USB Gadget Support | 1278 | # USB Gadget Support |
1217 | # | 1279 | # |
1218 | # CONFIG_USB_GADGET is not set | 1280 | # CONFIG_USB_GADGET is not set |
1219 | |||
1220 | # | ||
1221 | # MMC/SD Card support | ||
1222 | # | ||
1223 | # CONFIG_MMC is not set | 1281 | # CONFIG_MMC is not set |
1224 | 1282 | ||
1225 | # | 1283 | # |
@@ -1264,10 +1322,6 @@ CONFIG_USB_MON=y | |||
1264 | # | 1322 | # |
1265 | 1323 | ||
1266 | # | 1324 | # |
1267 | # Auxiliary Display support | ||
1268 | # | ||
1269 | |||
1270 | # | ||
1271 | # Virtualization | 1325 | # Virtualization |
1272 | # | 1326 | # |
1273 | # CONFIG_KVM is not set | 1327 | # CONFIG_KVM is not set |
@@ -1385,6 +1439,7 @@ CONFIG_LOCKD_V4=y | |||
1385 | CONFIG_EXPORTFS=y | 1439 | CONFIG_EXPORTFS=y |
1386 | CONFIG_NFS_COMMON=y | 1440 | CONFIG_NFS_COMMON=y |
1387 | CONFIG_SUNRPC=y | 1441 | CONFIG_SUNRPC=y |
1442 | # CONFIG_SUNRPC_BIND34 is not set | ||
1388 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 1443 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
1389 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1444 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1390 | # CONFIG_SMB_FS is not set | 1445 | # CONFIG_SMB_FS is not set |
@@ -1468,10 +1523,9 @@ CONFIG_DEBUG_FS=y | |||
1468 | # CONFIG_HEADERS_CHECK is not set | 1523 | # CONFIG_HEADERS_CHECK is not set |
1469 | CONFIG_DEBUG_KERNEL=y | 1524 | CONFIG_DEBUG_KERNEL=y |
1470 | # CONFIG_DEBUG_SHIRQ is not set | 1525 | # CONFIG_DEBUG_SHIRQ is not set |
1471 | CONFIG_LOG_BUF_SHIFT=18 | ||
1472 | CONFIG_DETECT_SOFTLOCKUP=y | 1526 | CONFIG_DETECT_SOFTLOCKUP=y |
1473 | # CONFIG_SCHEDSTATS is not set | 1527 | # CONFIG_SCHEDSTATS is not set |
1474 | CONFIG_TIMER_STATS=y | 1528 | # CONFIG_TIMER_STATS is not set |
1475 | # CONFIG_DEBUG_SLAB is not set | 1529 | # CONFIG_DEBUG_SLAB is not set |
1476 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1530 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1477 | # CONFIG_RT_MUTEX_TESTER is not set | 1531 | # CONFIG_RT_MUTEX_TESTER is not set |
@@ -1487,6 +1541,8 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
1487 | # CONFIG_DEBUG_VM is not set | 1541 | # CONFIG_DEBUG_VM is not set |
1488 | # CONFIG_DEBUG_LIST is not set | 1542 | # CONFIG_DEBUG_LIST is not set |
1489 | # CONFIG_FRAME_POINTER is not set | 1543 | # CONFIG_FRAME_POINTER is not set |
1544 | CONFIG_UNWIND_INFO=y | ||
1545 | CONFIG_STACK_UNWIND=y | ||
1490 | # CONFIG_FORCED_INLINING is not set | 1546 | # CONFIG_FORCED_INLINING is not set |
1491 | # CONFIG_RCU_TORTURE_TEST is not set | 1547 | # CONFIG_RCU_TORTURE_TEST is not set |
1492 | # CONFIG_LKDTM is not set | 1548 | # CONFIG_LKDTM is not set |
@@ -1513,9 +1569,11 @@ CONFIG_DEBUG_STACKOVERFLOW=y | |||
1513 | CONFIG_BITREVERSE=y | 1569 | CONFIG_BITREVERSE=y |
1514 | # CONFIG_CRC_CCITT is not set | 1570 | # CONFIG_CRC_CCITT is not set |
1515 | # CONFIG_CRC16 is not set | 1571 | # CONFIG_CRC16 is not set |
1572 | # CONFIG_CRC_ITU_T is not set | ||
1516 | CONFIG_CRC32=y | 1573 | CONFIG_CRC32=y |
1517 | # CONFIG_LIBCRC32C is not set | 1574 | # CONFIG_LIBCRC32C is not set |
1518 | CONFIG_ZLIB_INFLATE=y | 1575 | CONFIG_ZLIB_INFLATE=y |
1519 | CONFIG_PLIST=y | 1576 | CONFIG_PLIST=y |
1520 | CONFIG_HAS_IOMEM=y | 1577 | CONFIG_HAS_IOMEM=y |
1521 | CONFIG_HAS_IOPORT=y | 1578 | CONFIG_HAS_IOPORT=y |
1579 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/x86_64/ia32/mmap32.c b/arch/x86_64/ia32/mmap32.c index 079f4132575c..e4b84b4a417a 100644 --- a/arch/x86_64/ia32/mmap32.c +++ b/arch/x86_64/ia32/mmap32.c | |||
@@ -29,6 +29,7 @@ | |||
29 | #include <linux/personality.h> | 29 | #include <linux/personality.h> |
30 | #include <linux/mm.h> | 30 | #include <linux/mm.h> |
31 | #include <linux/random.h> | 31 | #include <linux/random.h> |
32 | #include <linux/sched.h> | ||
32 | 33 | ||
33 | /* | 34 | /* |
34 | * Top of mmap area (just below the process stack). | 35 | * Top of mmap area (just below the process stack). |
diff --git a/arch/x86_64/kernel/early_printk.c b/arch/x86_64/kernel/early_printk.c index 56eaa259782b..296d2b0c5d88 100644 --- a/arch/x86_64/kernel/early_printk.c +++ b/arch/x86_64/kernel/early_printk.c | |||
@@ -91,9 +91,9 @@ static int early_serial_putc(unsigned char ch) | |||
91 | static void early_serial_write(struct console *con, const char *s, unsigned n) | 91 | static void early_serial_write(struct console *con, const char *s, unsigned n) |
92 | { | 92 | { |
93 | while (*s && n-- > 0) { | 93 | while (*s && n-- > 0) { |
94 | early_serial_putc(*s); | ||
95 | if (*s == '\n') | 94 | if (*s == '\n') |
96 | early_serial_putc('\r'); | 95 | early_serial_putc('\r'); |
96 | early_serial_putc(*s); | ||
97 | s++; | 97 | s++; |
98 | } | 98 | } |
99 | } | 99 | } |
diff --git a/arch/x86_64/kernel/k8.c b/arch/x86_64/kernel/k8.c index bc11b32e8b4d..7377ccb21335 100644 --- a/arch/x86_64/kernel/k8.c +++ b/arch/x86_64/kernel/k8.c | |||
@@ -39,10 +39,10 @@ int cache_k8_northbridges(void) | |||
39 | { | 39 | { |
40 | int i; | 40 | int i; |
41 | struct pci_dev *dev; | 41 | struct pci_dev *dev; |
42 | |||
42 | if (num_k8_northbridges) | 43 | if (num_k8_northbridges) |
43 | return 0; | 44 | return 0; |
44 | 45 | ||
45 | num_k8_northbridges = 0; | ||
46 | dev = NULL; | 46 | dev = NULL; |
47 | while ((dev = next_k8_northbridge(dev)) != NULL) | 47 | while ((dev = next_k8_northbridge(dev)) != NULL) |
48 | num_k8_northbridges++; | 48 | num_k8_northbridges++; |
@@ -52,6 +52,11 @@ int cache_k8_northbridges(void) | |||
52 | if (!k8_northbridges) | 52 | if (!k8_northbridges) |
53 | return -ENOMEM; | 53 | return -ENOMEM; |
54 | 54 | ||
55 | if (!num_k8_northbridges) { | ||
56 | k8_northbridges[0] = NULL; | ||
57 | return 0; | ||
58 | } | ||
59 | |||
55 | flush_words = kmalloc(num_k8_northbridges * sizeof(u32), GFP_KERNEL); | 60 | flush_words = kmalloc(num_k8_northbridges * sizeof(u32), GFP_KERNEL); |
56 | if (!flush_words) { | 61 | if (!flush_words) { |
57 | kfree(k8_northbridges); | 62 | kfree(k8_northbridges); |
diff --git a/arch/x86_64/kernel/reboot.c b/arch/x86_64/kernel/reboot.c index c116b54d422e..7503068e788d 100644 --- a/arch/x86_64/kernel/reboot.c +++ b/arch/x86_64/kernel/reboot.c | |||
@@ -8,6 +8,7 @@ | |||
8 | #include <linux/string.h> | 8 | #include <linux/string.h> |
9 | #include <linux/pm.h> | 9 | #include <linux/pm.h> |
10 | #include <linux/kdebug.h> | 10 | #include <linux/kdebug.h> |
11 | #include <linux/sched.h> | ||
11 | #include <asm/io.h> | 12 | #include <asm/io.h> |
12 | #include <asm/delay.h> | 13 | #include <asm/delay.h> |
13 | #include <asm/hw_irq.h> | 14 | #include <asm/hw_irq.h> |
diff --git a/arch/x86_64/kernel/vmlinux.lds.S b/arch/x86_64/kernel/vmlinux.lds.S index 88cfa50b424d..dbccfda8364f 100644 --- a/arch/x86_64/kernel/vmlinux.lds.S +++ b/arch/x86_64/kernel/vmlinux.lds.S | |||
@@ -31,7 +31,7 @@ SECTIONS | |||
31 | *(.bootstrap.text) | 31 | *(.bootstrap.text) |
32 | _stext = .; | 32 | _stext = .; |
33 | /* Then the rest */ | 33 | /* Then the rest */ |
34 | *(.text) | 34 | TEXT_TEXT |
35 | SCHED_TEXT | 35 | SCHED_TEXT |
36 | LOCK_TEXT | 36 | LOCK_TEXT |
37 | KPROBES_TEXT | 37 | KPROBES_TEXT |
@@ -55,7 +55,7 @@ SECTIONS | |||
55 | . = ALIGN(PAGE_SIZE); /* Align data segment to page size boundary */ | 55 | . = ALIGN(PAGE_SIZE); /* Align data segment to page size boundary */ |
56 | /* Data */ | 56 | /* Data */ |
57 | .data : AT(ADDR(.data) - LOAD_OFFSET) { | 57 | .data : AT(ADDR(.data) - LOAD_OFFSET) { |
58 | *(.data) | 58 | DATA_DATA |
59 | CONSTRUCTORS | 59 | CONSTRUCTORS |
60 | } :data | 60 | } :data |
61 | 61 | ||
diff --git a/arch/x86_64/kernel/vsyscall.c b/arch/x86_64/kernel/vsyscall.c index 51d4c6fa88c8..57660d58d500 100644 --- a/arch/x86_64/kernel/vsyscall.c +++ b/arch/x86_64/kernel/vsyscall.c | |||
@@ -175,10 +175,13 @@ int __vsyscall(0) vgettimeofday(struct timeval * tv, struct timezone * tz) | |||
175 | * unlikely */ | 175 | * unlikely */ |
176 | time_t __vsyscall(1) vtime(time_t *t) | 176 | time_t __vsyscall(1) vtime(time_t *t) |
177 | { | 177 | { |
178 | struct timeval tv; | ||
178 | time_t result; | 179 | time_t result; |
179 | if (unlikely(!__vsyscall_gtod_data.sysctl_enabled)) | 180 | if (unlikely(!__vsyscall_gtod_data.sysctl_enabled)) |
180 | return time_syscall(t); | 181 | return time_syscall(t); |
181 | result = __vsyscall_gtod_data.wall_time_sec; | 182 | |
183 | vgettimeofday(&tv, 0); | ||
184 | result = tv.tv_sec; | ||
182 | if (t) | 185 | if (t) |
183 | *t = result; | 186 | *t = result; |
184 | return result; | 187 | return result; |
diff --git a/arch/xtensa/kernel/vmlinux.lds.S b/arch/xtensa/kernel/vmlinux.lds.S index 4fbd66a52a88..4b7b4ff79973 100644 --- a/arch/xtensa/kernel/vmlinux.lds.S +++ b/arch/xtensa/kernel/vmlinux.lds.S | |||
@@ -84,7 +84,8 @@ SECTIONS | |||
84 | { | 84 | { |
85 | /* The .head.text section must be the first section! */ | 85 | /* The .head.text section must be the first section! */ |
86 | *(.head.text) | 86 | *(.head.text) |
87 | *(.literal .text) | 87 | *(.literal) |
88 | TEXT_TEXT | ||
88 | *(.srom.text) | 89 | *(.srom.text) |
89 | VMLINUX_SYMBOL(__sched_text_start) = .; | 90 | VMLINUX_SYMBOL(__sched_text_start) = .; |
90 | *(.sched.literal .sched.text) | 91 | *(.sched.literal .sched.text) |
@@ -144,7 +145,8 @@ SECTIONS | |||
144 | _fdata = .; | 145 | _fdata = .; |
145 | .data : | 146 | .data : |
146 | { | 147 | { |
147 | *(.data) CONSTRUCTORS | 148 | DATA_DATA |
149 | CONSTRUCTORS | ||
148 | . = ALIGN(XCHAL_ICACHE_LINESIZE); | 150 | . = ALIGN(XCHAL_ICACHE_LINESIZE); |
149 | *(.data.cacheline_aligned) | 151 | *(.data.cacheline_aligned) |
150 | } | 152 | } |