diff options
Diffstat (limited to 'arch/blackfin/Kconfig')
-rw-r--r-- | arch/blackfin/Kconfig | 365 |
1 files changed, 270 insertions, 95 deletions
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig index 017defaa525b..b24f4535ffe0 100644 --- a/arch/blackfin/Kconfig +++ b/arch/blackfin/Kconfig | |||
@@ -57,7 +57,7 @@ config GENERIC_TIME | |||
57 | bool | 57 | bool |
58 | default n | 58 | default n |
59 | 59 | ||
60 | config GENERIC_CALIBRATE_DELAY | 60 | config GENERIC_GPIO |
61 | bool | 61 | bool |
62 | default y | 62 | default y |
63 | 63 | ||
@@ -323,7 +323,7 @@ config CMDLINE | |||
323 | to the kernel, you may specify one here. As a minimum, you should specify | 323 | to the kernel, you may specify one here. As a minimum, you should specify |
324 | the memory size and the root device (e.g., mem=8M, root=/dev/nfs). | 324 | the memory size and the root device (e.g., mem=8M, root=/dev/nfs). |
325 | 325 | ||
326 | comment "Board Setup" | 326 | comment "Clock/PLL Setup" |
327 | 327 | ||
328 | config CLKIN_HZ | 328 | config CLKIN_HZ |
329 | int "Crystal Frequency in Hz" | 329 | int "Crystal Frequency in Hz" |
@@ -335,6 +335,118 @@ config CLKIN_HZ | |||
335 | help | 335 | help |
336 | The frequency of CLKIN crystal oscillator on the board in Hz. | 336 | The frequency of CLKIN crystal oscillator on the board in Hz. |
337 | 337 | ||
338 | config BFIN_KERNEL_CLOCK | ||
339 | bool "Re-program Clocks while Kernel boots?" | ||
340 | default n | ||
341 | help | ||
342 | This option decides if kernel clocks are re-programed from the | ||
343 | bootloader settings. If the clocks are not set, the SDRAM settings | ||
344 | are also not changed, and the Bootloader does 100% of the hardware | ||
345 | configuration. | ||
346 | |||
347 | config PLL_BYPASS | ||
348 | bool "Bypass PLL" | ||
349 | depends on BFIN_KERNEL_CLOCK | ||
350 | default n | ||
351 | |||
352 | config CLKIN_HALF | ||
353 | bool "Half Clock In" | ||
354 | depends on BFIN_KERNEL_CLOCK && (! PLL_BYPASS) | ||
355 | default n | ||
356 | help | ||
357 | If this is set the clock will be divided by 2, before it goes to the PLL. | ||
358 | |||
359 | config VCO_MULT | ||
360 | int "VCO Multiplier" | ||
361 | depends on BFIN_KERNEL_CLOCK && (! PLL_BYPASS) | ||
362 | range 1 64 | ||
363 | default "22" if BFIN533_EZKIT | ||
364 | default "45" if BFIN533_STAMP | ||
365 | default "20" if BFIN537_STAMP | ||
366 | default "22" if BFIN533_BLUETECHNIX_CM | ||
367 | default "20" if BFIN537_BLUETECHNIX_CM | ||
368 | default "20" if BFIN561_BLUETECHNIX_CM | ||
369 | default "20" if BFIN561_EZKIT | ||
370 | help | ||
371 | This controls the frequency of the on-chip PLL. This can be between 1 and 64. | ||
372 | PLL Frequency = (Crystal Frequency) * (this setting) | ||
373 | |||
374 | choice | ||
375 | prompt "Core Clock Divider" | ||
376 | depends on BFIN_KERNEL_CLOCK | ||
377 | default CCLK_DIV_1 | ||
378 | help | ||
379 | This sets the frequency of the core. It can be 1, 2, 4 or 8 | ||
380 | Core Frequency = (PLL frequency) / (this setting) | ||
381 | |||
382 | config CCLK_DIV_1 | ||
383 | bool "1" | ||
384 | |||
385 | config CCLK_DIV_2 | ||
386 | bool "2" | ||
387 | |||
388 | config CCLK_DIV_4 | ||
389 | bool "4" | ||
390 | |||
391 | config CCLK_DIV_8 | ||
392 | bool "8" | ||
393 | endchoice | ||
394 | |||
395 | config SCLK_DIV | ||
396 | int "System Clock Divider" | ||
397 | depends on BFIN_KERNEL_CLOCK | ||
398 | range 1 15 | ||
399 | default 5 if BFIN533_EZKIT | ||
400 | default 5 if BFIN533_STAMP | ||
401 | default 4 if BFIN537_STAMP | ||
402 | default 5 if BFIN533_BLUETECHNIX_CM | ||
403 | default 4 if BFIN537_BLUETECHNIX_CM | ||
404 | default 4 if BFIN561_BLUETECHNIX_CM | ||
405 | default 5 if BFIN561_EZKIT | ||
406 | help | ||
407 | This sets the frequency of the system clock (including SDRAM or DDR). | ||
408 | This can be between 1 and 15 | ||
409 | System Clock = (PLL frequency) / (this setting) | ||
410 | |||
411 | # | ||
412 | # Max & Min Speeds for various Chips | ||
413 | # | ||
414 | config MAX_VCO_HZ | ||
415 | int | ||
416 | default 600000000 if BF522 | ||
417 | default 600000000 if BF525 | ||
418 | default 600000000 if BF527 | ||
419 | default 400000000 if BF531 | ||
420 | default 400000000 if BF532 | ||
421 | default 750000000 if BF533 | ||
422 | default 500000000 if BF534 | ||
423 | default 400000000 if BF536 | ||
424 | default 600000000 if BF537 | ||
425 | default 533000000 if BF538 | ||
426 | default 533000000 if BF539 | ||
427 | default 600000000 if BF542 | ||
428 | default 533000000 if BF544 | ||
429 | default 533000000 if BF549 | ||
430 | default 600000000 if BF561 | ||
431 | |||
432 | config MIN_VCO_HZ | ||
433 | int | ||
434 | default 50000000 | ||
435 | |||
436 | config MAX_SCLK_HZ | ||
437 | int | ||
438 | default 133000000 | ||
439 | |||
440 | config MIN_SCLK_HZ | ||
441 | int | ||
442 | default 27000000 | ||
443 | |||
444 | comment "Kernel Timer/Scheduler" | ||
445 | |||
446 | source kernel/Kconfig.hz | ||
447 | |||
448 | comment "Memory Setup" | ||
449 | |||
338 | config MEM_SIZE | 450 | config MEM_SIZE |
339 | int "SDRAM Memory Size in MBytes" | 451 | int "SDRAM Memory Size in MBytes" |
340 | default 32 if BFIN533_EZKIT | 452 | default 32 if BFIN533_EZKIT |
@@ -364,15 +476,16 @@ config ENET_FLASH_PIN | |||
364 | config BOOT_LOAD | 476 | config BOOT_LOAD |
365 | hex "Kernel load address for booting" | 477 | hex "Kernel load address for booting" |
366 | default "0x1000" | 478 | default "0x1000" |
479 | range 0x1000 0x20000000 | ||
367 | help | 480 | help |
368 | This option allows you to set the load address of the kernel. | 481 | This option allows you to set the load address of the kernel. |
369 | This can be useful if you are on a board which has a small amount | 482 | This can be useful if you are on a board which has a small amount |
370 | of memory or you wish to reserve some memory at the beginning of | 483 | of memory or you wish to reserve some memory at the beginning of |
371 | the address space. | 484 | the address space. |
372 | 485 | ||
373 | Note that you generally want to keep this value at or above 4k | 486 | Note that you need to keep this value above 4k (0x1000) as this |
374 | (0x1000) as this will allow the kernel to capture NULL pointer | 487 | memory region is used to capture NULL pointer references as well |
375 | references. | 488 | as some core kernel functions. |
376 | 489 | ||
377 | comment "LED Status Indicators" | 490 | comment "LED Status Indicators" |
378 | depends on (BFIN533_STAMP || BFIN533_BLUETECHNIX_CM) | 491 | depends on (BFIN533_STAMP || BFIN533_BLUETECHNIX_CM) |
@@ -408,6 +521,52 @@ config BFIN_IDLE_LED_NUM | |||
408 | help | 521 | help |
409 | Select the LED (marked on the board) for you to blink. | 522 | Select the LED (marked on the board) for you to blink. |
410 | 523 | ||
524 | choice | ||
525 | prompt "Blackfin Exception Scratch Register" | ||
526 | default BFIN_SCRATCH_REG_RETN | ||
527 | help | ||
528 | Select the resource to reserve for the Exception handler: | ||
529 | - RETN: Non-Maskable Interrupt (NMI) | ||
530 | - RETE: Exception Return (JTAG/ICE) | ||
531 | - CYCLES: Performance counter | ||
532 | |||
533 | If you are unsure, please select "RETN". | ||
534 | |||
535 | config BFIN_SCRATCH_REG_RETN | ||
536 | bool "RETN" | ||
537 | help | ||
538 | Use the RETN register in the Blackfin exception handler | ||
539 | as a stack scratch register. This means you cannot | ||
540 | safely use NMI on the Blackfin while running Linux, but | ||
541 | you can debug the system with a JTAG ICE and use the | ||
542 | CYCLES performance registers. | ||
543 | |||
544 | If you are unsure, please select "RETN". | ||
545 | |||
546 | config BFIN_SCRATCH_REG_RETE | ||
547 | bool "RETE" | ||
548 | help | ||
549 | Use the RETE register in the Blackfin exception handler | ||
550 | as a stack scratch register. This means you cannot | ||
551 | safely use a JTAG ICE while debugging a Blackfin board, | ||
552 | but you can safely use the CYCLES performance registers | ||
553 | and the NMI. | ||
554 | |||
555 | If you are unsure, please select "RETN". | ||
556 | |||
557 | config BFIN_SCRATCH_REG_CYCLES | ||
558 | bool "CYCLES" | ||
559 | help | ||
560 | Use the CYCLES register in the Blackfin exception handler | ||
561 | as a stack scratch register. This means you cannot | ||
562 | safely use the CYCLES performance registers on a Blackfin | ||
563 | board at anytime, but you can debug the system with a JTAG | ||
564 | ICE and use the NMI. | ||
565 | |||
566 | If you are unsure, please select "RETN". | ||
567 | |||
568 | endchoice | ||
569 | |||
411 | # | 570 | # |
412 | # Sorry - but you need to put the hex address here - | 571 | # Sorry - but you need to put the hex address here - |
413 | # | 572 | # |
@@ -448,10 +607,6 @@ endmenu | |||
448 | 607 | ||
449 | menu "Blackfin Kernel Optimizations" | 608 | menu "Blackfin Kernel Optimizations" |
450 | 609 | ||
451 | comment "Timer Tick" | ||
452 | |||
453 | source kernel/Kconfig.hz | ||
454 | |||
455 | comment "Memory Optimizations" | 610 | comment "Memory Optimizations" |
456 | 611 | ||
457 | config I_ENTRY_L1 | 612 | config I_ENTRY_L1 |
@@ -614,22 +769,22 @@ endchoice | |||
614 | 769 | ||
615 | 770 | ||
616 | comment "Cache Support" | 771 | comment "Cache Support" |
617 | config BLKFIN_CACHE | 772 | config BFIN_ICACHE |
618 | bool "Enable ICACHE" | 773 | bool "Enable ICACHE" |
619 | config BLKFIN_DCACHE | 774 | config BFIN_DCACHE |
620 | bool "Enable DCACHE" | 775 | bool "Enable DCACHE" |
621 | config BLKFIN_DCACHE_BANKA | 776 | config BFIN_DCACHE_BANKA |
622 | bool "Enable only 16k BankA DCACHE - BankB is SRAM" | 777 | bool "Enable only 16k BankA DCACHE - BankB is SRAM" |
623 | depends on BLKFIN_DCACHE && !BF531 | 778 | depends on BFIN_DCACHE && !BF531 |
624 | default n | 779 | default n |
625 | config BLKFIN_CACHE_LOCK | 780 | config BFIN_ICACHE_LOCK |
626 | bool "Enable Cache Locking" | 781 | bool "Enable Instruction Cache Locking" |
627 | 782 | ||
628 | choice | 783 | choice |
629 | prompt "Policy" | 784 | prompt "Policy" |
630 | depends on BLKFIN_DCACHE | 785 | depends on BFIN_DCACHE |
631 | default BLKFIN_WB | 786 | default BFIN_WB |
632 | config BLKFIN_WB | 787 | config BFIN_WB |
633 | bool "Write back" | 788 | bool "Write back" |
634 | help | 789 | help |
635 | Write Back Policy: | 790 | Write Back Policy: |
@@ -646,7 +801,7 @@ config BLKFIN_WB | |||
646 | If you are unsure of the options and you want to be safe, | 801 | If you are unsure of the options and you want to be safe, |
647 | then go with Write Through. | 802 | then go with Write Through. |
648 | 803 | ||
649 | config BLKFIN_WT | 804 | config BFIN_WT |
650 | bool "Write through" | 805 | bool "Write through" |
651 | help | 806 | help |
652 | Write Back Policy: | 807 | Write Back Policy: |
@@ -672,66 +827,9 @@ config L1_MAX_PIECE | |||
672 | Set the max memory pieces for the L1 SRAM allocation algorithm. | 827 | Set the max memory pieces for the L1 SRAM allocation algorithm. |
673 | Min value is 16. Max value is 1024. | 828 | Min value is 16. Max value is 1024. |
674 | 829 | ||
675 | menu "Clock Settings" | ||
676 | |||
677 | |||
678 | config BFIN_KERNEL_CLOCK | ||
679 | bool "Re-program Clocks while Kernel boots?" | ||
680 | default n | ||
681 | help | ||
682 | This option decides if kernel clocks are re-programed from the | ||
683 | bootloader settings. If the clocks are not set, the SDRAM settings | ||
684 | are also not changed, and the Bootloader does 100% of the hardware | ||
685 | configuration. | ||
686 | |||
687 | config VCO_MULT | ||
688 | int "VCO Multiplier" | ||
689 | depends on BFIN_KERNEL_CLOCK | ||
690 | default "22" if BFIN533_EZKIT | ||
691 | default "45" if BFIN533_STAMP | ||
692 | default "20" if BFIN537_STAMP | ||
693 | default "22" if BFIN533_BLUETECHNIX_CM | ||
694 | default "20" if BFIN537_BLUETECHNIX_CM | ||
695 | default "20" if BFIN561_BLUETECHNIX_CM | ||
696 | default "20" if BFIN561_EZKIT | ||
697 | |||
698 | config CCLK_DIV | ||
699 | int "Core Clock Divider" | ||
700 | depends on BFIN_KERNEL_CLOCK | ||
701 | default 1 if BFIN533_EZKIT | ||
702 | default 1 if BFIN533_STAMP | ||
703 | default 1 if BFIN537_STAMP | ||
704 | default 1 if BFIN533_BLUETECHNIX_CM | ||
705 | default 1 if BFIN537_BLUETECHNIX_CM | ||
706 | default 1 if BFIN561_BLUETECHNIX_CM | ||
707 | default 1 if BFIN561_EZKIT | ||
708 | |||
709 | config SCLK_DIV | ||
710 | int "System Clock Divider" | ||
711 | depends on BFIN_KERNEL_CLOCK | ||
712 | default 5 if BFIN533_EZKIT | ||
713 | default 5 if BFIN533_STAMP | ||
714 | default 4 if BFIN537_STAMP | ||
715 | default 5 if BFIN533_BLUETECHNIX_CM | ||
716 | default 4 if BFIN537_BLUETECHNIX_CM | ||
717 | default 4 if BFIN561_BLUETECHNIX_CM | ||
718 | default 5 if BFIN561_EZKIT | ||
719 | |||
720 | config CLKIN_HALF | ||
721 | bool "Half ClockIn" | ||
722 | depends on BFIN_KERNEL_CLOCK | ||
723 | default n | ||
724 | |||
725 | config PLL_BYPASS | ||
726 | bool "Bypass PLL" | ||
727 | depends on BFIN_KERNEL_CLOCK | ||
728 | default n | ||
729 | |||
730 | endmenu | ||
731 | |||
732 | comment "Asynchonous Memory Configuration" | 830 | comment "Asynchonous Memory Configuration" |
733 | 831 | ||
734 | menu "EBIU_AMBCTL Global Control" | 832 | menu "EBIU_AMGCTL Global Control" |
735 | config C_AMCKEN | 833 | config C_AMCKEN |
736 | bool "Enable CLKOUT" | 834 | bool "Enable CLKOUT" |
737 | default y | 835 | default y |
@@ -941,24 +1039,6 @@ config DEBUG_ICACHE_CHECK | |||
941 | also relocates the irq_panic() function to L1 memory, (which is | 1039 | also relocates the irq_panic() function to L1 memory, (which is |
942 | un-cached). | 1040 | un-cached). |
943 | 1041 | ||
944 | config DEBUG_KERNEL_START | ||
945 | bool "Debug Kernel Startup" | ||
946 | depends on DEBUG_KERNEL | ||
947 | help | ||
948 | Say Y here to put in an mini-execption handler before the kernel | ||
949 | replaces the bootloader exception handler. This will stop kernels | ||
950 | from dieing at startup with no visible error messages. | ||
951 | |||
952 | config DEBUG_SERIAL_EARLY_INIT | ||
953 | bool "Initialize serial driver early" | ||
954 | default n | ||
955 | depends on SERIAL_BFIN | ||
956 | help | ||
957 | Say Y here if you want to get kernel output early when kernel | ||
958 | crashes before the normal console initialization. If this option | ||
959 | is enable, console output will always go to the ttyBF0, no matter | ||
960 | what kernel boot paramters you set. | ||
961 | |||
962 | config DEBUG_HUNT_FOR_ZERO | 1042 | config DEBUG_HUNT_FOR_ZERO |
963 | bool "Catch NULL pointer reads/writes" | 1043 | bool "Catch NULL pointer reads/writes" |
964 | default y | 1044 | default y |
@@ -973,8 +1053,89 @@ config DEBUG_HUNT_FOR_ZERO | |||
973 | Enabling this option will take up an extra entry in CPLB table. | 1053 | Enabling this option will take up an extra entry in CPLB table. |
974 | Otherwise, there is no extra overhead. | 1054 | Otherwise, there is no extra overhead. |
975 | 1055 | ||
1056 | config DEBUG_BFIN_HWTRACE_ON | ||
1057 | bool "Turn on Blackfin's Hardware Trace" | ||
1058 | default y | ||
1059 | help | ||
1060 | All Blackfins include a Trace Unit which stores a history of the last | ||
1061 | 16 changes in program flow taken by the program sequencer. The history | ||
1062 | allows the user to recreate the program sequencer’s recent path. This | ||
1063 | can be handy when an application dies - we print out the execution | ||
1064 | path of how it got to the offending instruction. | ||
1065 | |||
1066 | By turning this off, you may save a tiny amount of power. | ||
1067 | |||
1068 | choice | ||
1069 | prompt "Omit loop Tracing" | ||
1070 | default DEBUG_BFIN_HWTRACE_COMPRESSION_OFF | ||
1071 | depends on DEBUG_BFIN_HWTRACE_ON | ||
1072 | help | ||
1073 | The trace buffer can be configured to omit recording of changes in | ||
1074 | program flow that match either the last entry or one of the last | ||
1075 | two entries. Omitting one of these entries from the record prevents | ||
1076 | the trace buffer from overflowing because of any sort of loop (for, do | ||
1077 | while, etc) in the program. | ||
1078 | |||
1079 | Because zero-overhead Hardware loops are not recorded in the trace buffer, | ||
1080 | this feature can be used to prevent trace overflow from loops that | ||
1081 | are nested four deep. | ||
1082 | |||
1083 | config DEBUG_BFIN_HWTRACE_COMPRESSION_OFF | ||
1084 | bool "Trace all Loops" | ||
1085 | help | ||
1086 | The trace buffer records all changes of flow | ||
1087 | |||
1088 | config DEBUG_BFIN_HWTRACE_COMPRESSION_ONE | ||
1089 | bool "Compress single-level loops" | ||
1090 | help | ||
1091 | The trace buffer does not record single loops - helpful if trace | ||
1092 | is spinning on a while or do loop. | ||
1093 | |||
1094 | config DEBUG_BFIN_HWTRACE_COMPRESSION_TWO | ||
1095 | bool "Compress two-level loops" | ||
1096 | help | ||
1097 | The trace buffer does not record loops two levels deep. Helpful if | ||
1098 | the trace is spinning in a nested loop | ||
1099 | |||
1100 | endchoice | ||
1101 | |||
1102 | config DEBUG_BFIN_HWTRACE_COMPRESSION | ||
1103 | int | ||
1104 | depends on DEBUG_BFIN_HWTRACE_ON | ||
1105 | default 0 if DEBUG_BFIN_HWTRACE_COMPRESSION_OFF | ||
1106 | default 1 if DEBUG_BFIN_HWTRACE_COMPRESSION_ONE | ||
1107 | default 2 if DEBUG_BFIN_HWTRACE_COMPRESSION_TWO | ||
1108 | |||
1109 | |||
1110 | config DEBUG_BFIN_HWTRACE_EXPAND | ||
1111 | bool "Expand Trace Buffer greater than 16 entries" | ||
1112 | depends on DEBUG_BFIN_HWTRACE_ON | ||
1113 | default n | ||
1114 | help | ||
1115 | By selecting this option, every time the 16 hardware entries in | ||
1116 | the Blackfin's HW Trace buffer are full, the kernel will move them | ||
1117 | into a software buffer, for dumping when there is an issue. This | ||
1118 | has a great impact on performance, (an interrupt every 16 change of | ||
1119 | flows) and should normally be turned off, except in those nasty | ||
1120 | debugging sessions | ||
1121 | |||
1122 | config DEBUG_BFIN_HWTRACE_EXPAND_LEN | ||
1123 | int "Size of Trace buffer (in power of 2k)" | ||
1124 | range 0 4 | ||
1125 | depends on DEBUG_BFIN_HWTRACE_EXPAND | ||
1126 | default 1 | ||
1127 | help | ||
1128 | This sets the size of the software buffer that the trace information | ||
1129 | is kept in. | ||
1130 | 0 for (2^0) 1k, or 256 entries, | ||
1131 | 1 for (2^1) 2k, or 512 entries, | ||
1132 | 2 for (2^2) 4k, or 1024 entries, | ||
1133 | 3 for (2^3) 8k, or 2048 entries, | ||
1134 | 4 for (2^4) 16k, or 4096 entries | ||
1135 | |||
976 | config DEBUG_BFIN_NO_KERN_HWTRACE | 1136 | config DEBUG_BFIN_NO_KERN_HWTRACE |
977 | bool "Trace user apps (turn off hwtrace in kernel)" | 1137 | bool "Trace user apps (turn off hwtrace in kernel)" |
1138 | depends on DEBUG_BFIN_HWTRACE_ON | ||
978 | default n | 1139 | default n |
979 | help | 1140 | help |
980 | Some pieces of the kernel contain a lot of flow changes which can | 1141 | Some pieces of the kernel contain a lot of flow changes which can |
@@ -985,6 +1146,20 @@ config DEBUG_BFIN_NO_KERN_HWTRACE | |||
985 | Say Y here to disable hardware tracing in some known "jumpy" pieces | 1146 | Say Y here to disable hardware tracing in some known "jumpy" pieces |
986 | of code so that the trace buffer will extend further back. | 1147 | of code so that the trace buffer will extend further back. |
987 | 1148 | ||
1149 | config EARLY_PRINTK | ||
1150 | bool "Early printk" | ||
1151 | default n | ||
1152 | help | ||
1153 | This option enables special console drivers which allow the kernel | ||
1154 | to print messages very early in the bootup process. | ||
1155 | |||
1156 | This is useful for kernel debugging when your machine crashes very | ||
1157 | early before the console code is initialized. After enabling this | ||
1158 | feature, you must add "earlyprintk=serial,uart0,57600" to the | ||
1159 | command line (bootargs). It is safe to say Y here in all cases, as | ||
1160 | all of this lives in the init section and is thrown away after the | ||
1161 | kernel boots completely. | ||
1162 | |||
988 | config DUAL_CORE_TEST_MODULE | 1163 | config DUAL_CORE_TEST_MODULE |
989 | tristate "Dual Core Test Module" | 1164 | tristate "Dual Core Test Module" |
990 | depends on (BF561) | 1165 | depends on (BF561) |