diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-10 17:48:43 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-10 17:48:43 -0400 |
commit | 0f166396e7e8931bb4acfd1a6ea1bd4f0b43f1dd (patch) | |
tree | 6279fa70695a4c56b7e935018a4c0fc1dfa82e68 | |
parent | 5f60cfd932b42c69ed3226400cb5eab152576c3a (diff) | |
parent | 105b1bca4d7bed85bb296f7e7caec2fc643e9fbf (diff) |
Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus
* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: (62 commits)
[MIPS] PNX8550: Cleanup proc code.
[MIPS] WRPPMC: Fix build.
[MIPS] Yosemite: Fix modpost warnings.
[MIPS] Change names of local variables to silence sparse
[MIPS] SB1: Fix modpost warning.
[MIPS] PNX: Fix modpost warnings.
[MIPS] Alchemy: Fix modpost warnings.
[MIPS] Non-FPAFF: Fix warning.
[MIPS] DEC: Fix modpost warning.
[MIPS] MIPSsim: Enable MIPSsim virtual network driver.
[MIPS] Delete Ocelot 3 support.
[MIPS] remove LASAT Networks platforms support
[MIPS] Early check for SMTC kernel on non-MT processor
[MIPS] Add debugfs files to show fpuemu statistics
[MIPS] Add some debugfs files to debug unaligned accesses
[MIPS] rbtx4938: Fix secondary PCIC and glue internal NICs
[MIPS] tc35815: Load MAC address via platform_device
[MIPS] Move FPU affinity code into separate file.
[MIPS] Make ioremap() work on TX39/49 special unmapped segment
[MIPS] rbtx4938: Update and minimize defconfig
...
292 files changed, 10760 insertions, 14142 deletions
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 73455389257a..a00fabe2e4e0 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
@@ -15,6 +15,29 @@ choice | |||
15 | prompt "System type" | 15 | prompt "System type" |
16 | default SGI_IP22 | 16 | default SGI_IP22 |
17 | 17 | ||
18 | config LEMOTE_FULONG | ||
19 | bool "Lemote Fulong mini-PC" | ||
20 | select ARCH_SPARSEMEM_ENABLE | ||
21 | select SYS_HAS_CPU_LOONGSON2 | ||
22 | select DMA_NONCOHERENT | ||
23 | select BOOT_ELF32 | ||
24 | select BOARD_SCACHE | ||
25 | select HAVE_STD_PC_SERIAL_PORT | ||
26 | select HW_HAS_PCI | ||
27 | select I8259 | ||
28 | select ISA | ||
29 | select IRQ_CPU | ||
30 | select SYS_SUPPORTS_32BIT_KERNEL | ||
31 | select SYS_SUPPORTS_64BIT_KERNEL | ||
32 | select SYS_SUPPORTS_LITTLE_ENDIAN | ||
33 | select SYS_SUPPORTS_HIGHMEM | ||
34 | select SYS_HAS_EARLY_PRINTK | ||
35 | select GENERIC_HARDIRQS_NO__DO_IRQ | ||
36 | select CPU_HAS_WB | ||
37 | help | ||
38 | Lemote Fulong mini-PC board based on the Chinese Loongson-2E CPU and | ||
39 | an FPGA northbridge | ||
40 | |||
18 | config MACH_ALCHEMY | 41 | config MACH_ALCHEMY |
19 | bool "Alchemy processor based machines" | 42 | bool "Alchemy processor based machines" |
20 | 43 | ||
@@ -63,7 +86,7 @@ config MACH_DECSTATION | |||
63 | bool "DECstations" | 86 | bool "DECstations" |
64 | select BOOT_ELF32 | 87 | select BOOT_ELF32 |
65 | select DMA_NONCOHERENT | 88 | select DMA_NONCOHERENT |
66 | select SYS_HAS_EARLY_PRINTK | 89 | select NO_IOPORT |
67 | select IRQ_CPU | 90 | select IRQ_CPU |
68 | select SYS_HAS_CPU_R3000 | 91 | select SYS_HAS_CPU_R3000 |
69 | select SYS_HAS_CPU_R4X00 | 92 | select SYS_HAS_CPU_R4X00 |
@@ -88,24 +111,6 @@ config MACH_DECSTATION | |||
88 | 111 | ||
89 | otherwise choose R3000. | 112 | otherwise choose R3000. |
90 | 113 | ||
91 | config MIPS_EV64120 | ||
92 | bool "Galileo EV64120 Evaluation board (EXPERIMENTAL)" | ||
93 | depends on EXPERIMENTAL | ||
94 | select DMA_NONCOHERENT | ||
95 | select HW_HAS_PCI | ||
96 | select PCI_GT64XXX_PCI0 | ||
97 | select SYS_HAS_CPU_R5000 | ||
98 | select SYS_SUPPORTS_32BIT_KERNEL | ||
99 | select SYS_SUPPORTS_64BIT_KERNEL | ||
100 | select SYS_SUPPORTS_BIG_ENDIAN | ||
101 | select SYS_SUPPORTS_KGDB | ||
102 | help | ||
103 | This is an evaluation board based on the Galileo GT-64120 | ||
104 | single-chip system controller that contains a MIPS R5000 compatible | ||
105 | core running at 75/100MHz. Their website is located at | ||
106 | <http://www.marvell.com/>. Say Y here if you wish to build a | ||
107 | kernel for this platform. | ||
108 | |||
109 | config MACH_JAZZ | 114 | config MACH_JAZZ |
110 | bool "Jazz family of machines" | 115 | bool "Jazz family of machines" |
111 | select ARC | 116 | select ARC |
@@ -126,20 +131,6 @@ config MACH_JAZZ | |||
126 | Members include the Acer PICA, MIPS Magnum 4000, MIPS Millenium and | 131 | Members include the Acer PICA, MIPS Magnum 4000, MIPS Millenium and |
127 | Olivetti M700-10 workstations. | 132 | Olivetti M700-10 workstations. |
128 | 133 | ||
129 | config LASAT | ||
130 | bool "LASAT Networks platforms" | ||
131 | select DMA_NONCOHERENT | ||
132 | select SYS_HAS_EARLY_PRINTK | ||
133 | select HW_HAS_PCI | ||
134 | select PCI_GT64XXX_PCI0 | ||
135 | select MIPS_NILE4 | ||
136 | select R5000_CPU_SCACHE | ||
137 | select SYS_HAS_CPU_R5000 | ||
138 | select SYS_SUPPORTS_32BIT_KERNEL | ||
139 | select SYS_SUPPORTS_64BIT_KERNEL if BROKEN | ||
140 | select SYS_SUPPORTS_LITTLE_ENDIAN | ||
141 | select GENERIC_HARDIRQS_NO__DO_IRQ | ||
142 | |||
143 | config MIPS_ATLAS | 134 | config MIPS_ATLAS |
144 | bool "MIPS Atlas board" | 135 | bool "MIPS Atlas board" |
145 | select BOOT_ELF32 | 136 | select BOOT_ELF32 |
@@ -173,7 +164,6 @@ config MIPS_MALTA | |||
173 | bool "MIPS Malta board" | 164 | bool "MIPS Malta board" |
174 | select ARCH_MAY_HAVE_PC_FDC | 165 | select ARCH_MAY_HAVE_PC_FDC |
175 | select BOOT_ELF32 | 166 | select BOOT_ELF32 |
176 | select HAVE_STD_PC_SERIAL_PORT | ||
177 | select DMA_NONCOHERENT | 167 | select DMA_NONCOHERENT |
178 | select GENERIC_ISA_DMA | 168 | select GENERIC_ISA_DMA |
179 | select IRQ_CPU | 169 | select IRQ_CPU |
@@ -246,11 +236,13 @@ config MIPS_SIM | |||
246 | select DMA_NONCOHERENT | 236 | select DMA_NONCOHERENT |
247 | select SYS_HAS_EARLY_PRINTK | 237 | select SYS_HAS_EARLY_PRINTK |
248 | select IRQ_CPU | 238 | select IRQ_CPU |
239 | select BOOT_RAW | ||
249 | select SYS_HAS_CPU_MIPS32_R1 | 240 | select SYS_HAS_CPU_MIPS32_R1 |
250 | select SYS_HAS_CPU_MIPS32_R2 | 241 | select SYS_HAS_CPU_MIPS32_R2 |
251 | select SYS_HAS_EARLY_PRINTK | 242 | select SYS_HAS_EARLY_PRINTK |
252 | select SYS_SUPPORTS_32BIT_KERNEL | 243 | select SYS_SUPPORTS_32BIT_KERNEL |
253 | select SYS_SUPPORTS_BIG_ENDIAN | 244 | select SYS_SUPPORTS_BIG_ENDIAN |
245 | select SYS_SUPPORTS_MULTITHREADING | ||
254 | select SYS_SUPPORTS_LITTLE_ENDIAN | 246 | select SYS_SUPPORTS_LITTLE_ENDIAN |
255 | help | 247 | help |
256 | This option enables support for MIPS Technologies MIPSsim software | 248 | This option enables support for MIPS Technologies MIPSsim software |
@@ -274,43 +266,6 @@ config MOMENCO_OCELOT | |||
274 | The Ocelot is a MIPS-based Single Board Computer (SBC) made by | 266 | The Ocelot is a MIPS-based Single Board Computer (SBC) made by |
275 | Momentum Computer <http://www.momenco.com/>. | 267 | Momentum Computer <http://www.momenco.com/>. |
276 | 268 | ||
277 | config MOMENCO_OCELOT_3 | ||
278 | bool "Momentum Ocelot-3 board" | ||
279 | select BOOT_ELF32 | ||
280 | select DMA_NONCOHERENT | ||
281 | select HW_HAS_PCI | ||
282 | select IRQ_CPU | ||
283 | select IRQ_CPU_RM7K | ||
284 | select IRQ_MV64340 | ||
285 | select PCI_MARVELL | ||
286 | select RM7000_CPU_SCACHE | ||
287 | select SWAP_IO_SPACE | ||
288 | select SYS_HAS_CPU_RM9000 | ||
289 | select SYS_SUPPORTS_32BIT_KERNEL | ||
290 | select SYS_SUPPORTS_64BIT_KERNEL | ||
291 | select SYS_SUPPORTS_BIG_ENDIAN | ||
292 | help | ||
293 | The Ocelot-3 is based off Discovery III System Controller and | ||
294 | PMC-Sierra Rm79000 core. | ||
295 | |||
296 | config MOMENCO_OCELOT_C | ||
297 | bool "Momentum Ocelot-C board" | ||
298 | select DMA_NONCOHERENT | ||
299 | select HW_HAS_PCI | ||
300 | select IRQ_CPU | ||
301 | select IRQ_MV64340 | ||
302 | select PCI_MARVELL | ||
303 | select RM7000_CPU_SCACHE | ||
304 | select SWAP_IO_SPACE | ||
305 | select SYS_HAS_CPU_RM7000 | ||
306 | select SYS_SUPPORTS_32BIT_KERNEL | ||
307 | select SYS_SUPPORTS_64BIT_KERNEL | ||
308 | select SYS_SUPPORTS_BIG_ENDIAN | ||
309 | select GENERIC_HARDIRQS_NO__DO_IRQ | ||
310 | help | ||
311 | The Ocelot is a MIPS-based Single Board Computer (SBC) made by | ||
312 | Momentum Computer <http://www.momenco.com/>. | ||
313 | |||
314 | config PNX8550_JBS | 269 | config PNX8550_JBS |
315 | bool "Philips PNX8550 based JBS board" | 270 | bool "Philips PNX8550 based JBS board" |
316 | select PNX8550 | 271 | select PNX8550 |
@@ -346,6 +301,27 @@ config MACH_VR41XX | |||
346 | select SYS_HAS_CPU_VR41XX | 301 | select SYS_HAS_CPU_VR41XX |
347 | select GENERIC_HARDIRQS_NO__DO_IRQ | 302 | select GENERIC_HARDIRQS_NO__DO_IRQ |
348 | 303 | ||
304 | config PMC_MSP | ||
305 | bool "PMC-Sierra MSP chipsets" | ||
306 | depends on EXPERIMENTAL | ||
307 | select DMA_NONCOHERENT | ||
308 | select SWAP_IO_SPACE | ||
309 | select NO_EXCEPT_FILL | ||
310 | select BOOT_RAW | ||
311 | select SYS_HAS_CPU_MIPS32_R1 | ||
312 | select SYS_HAS_CPU_MIPS32_R2 | ||
313 | select SYS_SUPPORTS_32BIT_KERNEL | ||
314 | select SYS_SUPPORTS_BIG_ENDIAN | ||
315 | select SYS_SUPPORTS_KGDB | ||
316 | select IRQ_CPU | ||
317 | select SERIAL_8250 | ||
318 | select SERIAL_8250_CONSOLE | ||
319 | help | ||
320 | This adds support for the PMC-Sierra family of Multi-Service | ||
321 | Processor System-On-A-Chips. These parts include a number | ||
322 | of integrated peripherals, interfaces and DSPs in addition to | ||
323 | a variety of MIPS cores. | ||
324 | |||
349 | config PMC_YOSEMITE | 325 | config PMC_YOSEMITE |
350 | bool "PMC-Sierra Yosemite eval board" | 326 | bool "PMC-Sierra Yosemite eval board" |
351 | select DMA_COHERENT | 327 | select DMA_COHERENT |
@@ -450,8 +426,7 @@ config SGI_IP27 | |||
450 | here. | 426 | here. |
451 | 427 | ||
452 | config SGI_IP32 | 428 | config SGI_IP32 |
453 | bool "SGI IP32 (O2) (EXPERIMENTAL)" | 429 | bool "SGI IP32 (O2)" |
454 | depends on EXPERIMENTAL | ||
455 | select ARC | 430 | select ARC |
456 | select ARC32 | 431 | select ARC32 |
457 | select BOOT_ELF32 | 432 | select BOOT_ELF32 |
@@ -652,6 +627,7 @@ config TOSHIBA_RBTX4938 | |||
652 | select SYS_SUPPORTS_BIG_ENDIAN | 627 | select SYS_SUPPORTS_BIG_ENDIAN |
653 | select SYS_SUPPORTS_KGDB | 628 | select SYS_SUPPORTS_KGDB |
654 | select GENERIC_HARDIRQS_NO__DO_IRQ | 629 | select GENERIC_HARDIRQS_NO__DO_IRQ |
630 | select GENERIC_GPIO | ||
655 | help | 631 | help |
656 | This Toshiba board is based on the TX4938 processor. Say Y here to | 632 | This Toshiba board is based on the TX4938 processor. Say Y here to |
657 | support this machine type | 633 | support this machine type |
@@ -660,9 +636,7 @@ endchoice | |||
660 | 636 | ||
661 | source "arch/mips/au1000/Kconfig" | 637 | source "arch/mips/au1000/Kconfig" |
662 | source "arch/mips/ddb5xxx/Kconfig" | 638 | source "arch/mips/ddb5xxx/Kconfig" |
663 | source "arch/mips/gt64120/ev64120/Kconfig" | ||
664 | source "arch/mips/jazz/Kconfig" | 639 | source "arch/mips/jazz/Kconfig" |
665 | source "arch/mips/lasat/Kconfig" | ||
666 | source "arch/mips/pmc-sierra/Kconfig" | 640 | source "arch/mips/pmc-sierra/Kconfig" |
667 | source "arch/mips/sgi-ip27/Kconfig" | 641 | source "arch/mips/sgi-ip27/Kconfig" |
668 | source "arch/mips/sibyte/Kconfig" | 642 | source "arch/mips/sibyte/Kconfig" |
@@ -721,6 +695,9 @@ config ARC | |||
721 | config ARCH_MAY_HAVE_PC_FDC | 695 | config ARCH_MAY_HAVE_PC_FDC |
722 | bool | 696 | bool |
723 | 697 | ||
698 | config BOOT_RAW | ||
699 | bool | ||
700 | |||
724 | config DMA_COHERENT | 701 | config DMA_COHERENT |
725 | bool | 702 | bool |
726 | 703 | ||
@@ -768,16 +745,19 @@ config MIPS_BONITO64 | |||
768 | config MIPS_MSC | 745 | config MIPS_MSC |
769 | bool | 746 | bool |
770 | 747 | ||
771 | config MIPS_NILE4 | ||
772 | bool | ||
773 | |||
774 | config MIPS_DISABLE_OBSOLETE_IDE | 748 | config MIPS_DISABLE_OBSOLETE_IDE |
775 | bool | 749 | bool |
776 | 750 | ||
751 | config NO_IOPORT | ||
752 | def_bool n | ||
753 | |||
777 | config GENERIC_ISA_DMA_SUPPORT_BROKEN | 754 | config GENERIC_ISA_DMA_SUPPORT_BROKEN |
778 | bool | 755 | bool |
779 | select ZONE_DMA | 756 | select ZONE_DMA |
780 | 757 | ||
758 | config GENERIC_GPIO | ||
759 | bool | ||
760 | |||
781 | # | 761 | # |
782 | # Endianess selection. Sufficiently obscure so many users don't know what to | 762 | # Endianess selection. Sufficiently obscure so many users don't know what to |
783 | # answer,so we try hard to limit the available choices. Also the use of a | 763 | # answer,so we try hard to limit the available choices. Also the use of a |
@@ -821,7 +801,10 @@ config IRQ_CPU_RM7K | |||
821 | config IRQ_CPU_RM9K | 801 | config IRQ_CPU_RM9K |
822 | bool | 802 | bool |
823 | 803 | ||
824 | config IRQ_MV64340 | 804 | config IRQ_MSP_SLP |
805 | bool | ||
806 | |||
807 | config IRQ_MSP_CIC | ||
825 | bool | 808 | bool |
826 | 809 | ||
827 | config DDB5XXX_COMMON | 810 | config DDB5XXX_COMMON |
@@ -834,6 +817,9 @@ config MIPS_BOARDS_GEN | |||
834 | config PCI_GT64XXX_PCI0 | 817 | config PCI_GT64XXX_PCI0 |
835 | bool | 818 | bool |
836 | 819 | ||
820 | config NO_EXCEPT_FILL | ||
821 | bool | ||
822 | |||
837 | config MIPS_TX3927 | 823 | config MIPS_TX3927 |
838 | bool | 824 | bool |
839 | select HAS_TXX9_SERIAL | 825 | select HAS_TXX9_SERIAL |
@@ -841,14 +827,6 @@ config MIPS_TX3927 | |||
841 | config MIPS_RM9122 | 827 | config MIPS_RM9122 |
842 | bool | 828 | bool |
843 | select SERIAL_RM9000 | 829 | select SERIAL_RM9000 |
844 | select GPI_RM9000 | ||
845 | select WDT_RM9000 | ||
846 | |||
847 | config PCI_MARVELL | ||
848 | bool | ||
849 | |||
850 | config SERIAL_RM9000 | ||
851 | bool | ||
852 | 830 | ||
853 | config PNX8550 | 831 | config PNX8550 |
854 | bool | 832 | bool |
@@ -863,6 +841,7 @@ config SOC_PNX8550 | |||
863 | select SYS_SUPPORTS_32BIT_KERNEL | 841 | select SYS_SUPPORTS_32BIT_KERNEL |
864 | select GENERIC_HARDIRQS_NO__DO_IRQ | 842 | select GENERIC_HARDIRQS_NO__DO_IRQ |
865 | select SYS_SUPPORTS_KGDB | 843 | select SYS_SUPPORTS_KGDB |
844 | select GENERIC_GPIO | ||
866 | 845 | ||
867 | config SWAP_IO_SPACE | 846 | config SWAP_IO_SPACE |
868 | bool | 847 | bool |
@@ -875,31 +854,17 @@ config EMMA2RH | |||
875 | config SERIAL_RM9000 | 854 | config SERIAL_RM9000 |
876 | bool | 855 | bool |
877 | 856 | ||
878 | config GPI_RM9000 | ||
879 | bool | ||
880 | |||
881 | config WDT_RM9000 | ||
882 | bool | ||
883 | |||
884 | # | 857 | # |
885 | # Unfortunately not all GT64120 systems run the chip at the same clock. | 858 | # Unfortunately not all GT64120 systems run the chip at the same clock. |
886 | # As the user for the clock rate and try to minimize the available options. | 859 | # As the user for the clock rate and try to minimize the available options. |
887 | # | 860 | # |
888 | choice | 861 | choice |
889 | prompt "Galileo Chip Clock" | 862 | prompt "Galileo Chip Clock" |
890 | #default SYSCLK_83 if MIPS_EV64120 | 863 | depends on MOMENCO_OCELOT |
891 | depends on MIPS_EV64120 || MOMENCO_OCELOT | ||
892 | default SYSCLK_83 if MIPS_EV64120 | ||
893 | default SYSCLK_100 if MOMENCO_OCELOT | 864 | default SYSCLK_100 if MOMENCO_OCELOT |
894 | 865 | ||
895 | config SYSCLK_75 | ||
896 | bool "75" if MIPS_EV64120 | ||
897 | |||
898 | config SYSCLK_83 | ||
899 | bool "83.3" if MIPS_EV64120 | ||
900 | |||
901 | config SYSCLK_100 | 866 | config SYSCLK_100 |
902 | bool "100" if MIPS_EV64120 || MOMENCO_OCELOT | 867 | bool "100" if MOMENCO_OCELOT |
903 | 868 | ||
904 | endchoice | 869 | endchoice |
905 | 870 | ||
@@ -911,8 +876,9 @@ config BOOT_ELF32 | |||
911 | 876 | ||
912 | config MIPS_L1_CACHE_SHIFT | 877 | config MIPS_L1_CACHE_SHIFT |
913 | int | 878 | int |
914 | default "4" if MACH_DECSTATION || SNI_RM | 879 | default "4" if MACH_DECSTATION |
915 | default "7" if SGI_IP27 | 880 | default "7" if SGI_IP27 || SNI_RM |
881 | default "4" if PMC_MSP4200_EVAL | ||
916 | default "5" | 882 | default "5" |
917 | 883 | ||
918 | config HAVE_STD_PC_SERIAL_PORT | 884 | config HAVE_STD_PC_SERIAL_PORT |
@@ -944,6 +910,16 @@ choice | |||
944 | prompt "CPU type" | 910 | prompt "CPU type" |
945 | default CPU_R4X00 | 911 | default CPU_R4X00 |
946 | 912 | ||
913 | config CPU_LOONGSON2 | ||
914 | bool "Loongson 2" | ||
915 | depends on SYS_HAS_CPU_LOONGSON2 | ||
916 | select CPU_SUPPORTS_32BIT_KERNEL | ||
917 | select CPU_SUPPORTS_64BIT_KERNEL | ||
918 | select CPU_SUPPORTS_HIGHMEM | ||
919 | help | ||
920 | The Loongson 2E processor implements the MIPS III instruction set | ||
921 | with many extensions. | ||
922 | |||
947 | config CPU_MIPS32_R1 | 923 | config CPU_MIPS32_R1 |
948 | bool "MIPS32 Release 1" | 924 | bool "MIPS32 Release 1" |
949 | depends on SYS_HAS_CPU_MIPS32_R1 | 925 | depends on SYS_HAS_CPU_MIPS32_R1 |
@@ -1154,6 +1130,9 @@ config CPU_SB1 | |||
1154 | 1130 | ||
1155 | endchoice | 1131 | endchoice |
1156 | 1132 | ||
1133 | config SYS_HAS_CPU_LOONGSON2 | ||
1134 | bool | ||
1135 | |||
1157 | config SYS_HAS_CPU_MIPS32_R1 | 1136 | config SYS_HAS_CPU_MIPS32_R1 |
1158 | bool | 1137 | bool |
1159 | 1138 | ||
@@ -1488,6 +1467,15 @@ config CPU_HAS_SMARTMIPS | |||
1488 | config CPU_HAS_WB | 1467 | config CPU_HAS_WB |
1489 | bool | 1468 | bool |
1490 | 1469 | ||
1470 | config 64BIT_CONTEXT | ||
1471 | bool "Save 64bit integer registers" | ||
1472 | depends on 32BIT && CPU_LOONGSON2 | ||
1473 | help | ||
1474 | Loongson2 CPU is 64bit , when used in 32BIT mode, its integer | ||
1475 | registers can still be accessed as 64bit, mainly for multimedia | ||
1476 | instructions. We must have all 64bit save/restored to make sure | ||
1477 | those instructions to get correct result. | ||
1478 | |||
1491 | # | 1479 | # |
1492 | # Vectored interrupt mode is an R2 feature | 1480 | # Vectored interrupt mode is an R2 feature |
1493 | # | 1481 | # |
diff --git a/arch/mips/Makefile b/arch/mips/Makefile index f450066b6241..20d19c9b7761 100644 --- a/arch/mips/Makefile +++ b/arch/mips/Makefile | |||
@@ -118,6 +118,7 @@ cflags-$(CONFIG_CPU_R4300) += -march=r4300 -Wa,--trap | |||
118 | cflags-$(CONFIG_CPU_VR41XX) += -march=r4100 -Wa,--trap | 118 | cflags-$(CONFIG_CPU_VR41XX) += -march=r4100 -Wa,--trap |
119 | cflags-$(CONFIG_CPU_R4X00) += -march=r4600 -Wa,--trap | 119 | cflags-$(CONFIG_CPU_R4X00) += -march=r4600 -Wa,--trap |
120 | cflags-$(CONFIG_CPU_TX49XX) += -march=r4600 -Wa,--trap | 120 | cflags-$(CONFIG_CPU_TX49XX) += -march=r4600 -Wa,--trap |
121 | cflags-$(CONFIG_CPU_LOONGSON2) += -march=r4600 -Wa,--trap | ||
121 | cflags-$(CONFIG_CPU_MIPS32_R1) += $(call cc-option,-march=mips32,-mips32 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \ | 122 | cflags-$(CONFIG_CPU_MIPS32_R1) += $(call cc-option,-march=mips32,-mips32 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \ |
122 | -Wa,-mips32 -Wa,--trap | 123 | -Wa,-mips32 -Wa,--trap |
123 | cflags-$(CONFIG_CPU_MIPS32_R2) += $(call cc-option,-march=mips32r2,-mips32r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \ | 124 | cflags-$(CONFIG_CPU_MIPS32_R2) += $(call cc-option,-march=mips32r2,-mips32r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \ |
@@ -283,14 +284,6 @@ load-$(CONFIG_MACH_DECSTATION) += 0xffffffff80040000 | |||
283 | CLEAN_FILES += drivers/tc/lk201-map.c | 284 | CLEAN_FILES += drivers/tc/lk201-map.c |
284 | 285 | ||
285 | # | 286 | # |
286 | # Galileo EV64120 Board | ||
287 | # | ||
288 | core-$(CONFIG_MIPS_EV64120) += arch/mips/gt64120/ev64120/ | ||
289 | core-$(CONFIG_MIPS_EV64120) += arch/mips/gt64120/common/ | ||
290 | cflags-$(CONFIG_MIPS_EV64120) += -Iinclude/asm-mips/mach-ev64120 | ||
291 | load-$(CONFIG_MIPS_EV64120) += 0xffffffff80100000 | ||
292 | |||
293 | # | ||
294 | # Wind River PPMC Board (4KC + GT64120) | 287 | # Wind River PPMC Board (4KC + GT64120) |
295 | # | 288 | # |
296 | core-$(CONFIG_WR_PPMC) += arch/mips/gt64120/wrppmc/ | 289 | core-$(CONFIG_WR_PPMC) += arch/mips/gt64120/wrppmc/ |
@@ -298,6 +291,13 @@ cflags-$(CONFIG_WR_PPMC) += -Iinclude/asm-mips/mach-wrppmc | |||
298 | load-$(CONFIG_WR_PPMC) += 0xffffffff80100000 | 291 | load-$(CONFIG_WR_PPMC) += 0xffffffff80100000 |
299 | 292 | ||
300 | # | 293 | # |
294 | # lemote fulong mini-PC board | ||
295 | # | ||
296 | core-$(CONFIG_LEMOTE_FULONG) +=arch/mips/lemote/lm2e/ | ||
297 | load-$(CONFIG_LEMOTE_FULONG) +=0xffffffff80100000 | ||
298 | cflags-$(CONFIG_LEMOTE_FULONG) += -Iinclude/asm-mips/mach-lemote | ||
299 | |||
300 | # | ||
301 | # For all MIPS, Inc. eval boards | 301 | # For all MIPS, Inc. eval boards |
302 | # | 302 | # |
303 | core-$(CONFIG_MIPS_BOARDS_GEN) += arch/mips/mips-boards/generic/ | 303 | core-$(CONFIG_MIPS_BOARDS_GEN) += arch/mips/mips-boards/generic/ |
@@ -327,7 +327,7 @@ load-$(CONFIG_MIPS_SEAD) += 0xffffffff80100000 | |||
327 | # | 327 | # |
328 | # MIPS SIM | 328 | # MIPS SIM |
329 | # | 329 | # |
330 | core-$(CONFIG_MIPS_SIM) += arch/mips/mips-boards/sim/ | 330 | core-$(CONFIG_MIPS_SIM) += arch/mips/mipssim/ |
331 | cflags-$(CONFIG_MIPS_SIM) += -Iinclude/asm-mips/mach-sim | 331 | cflags-$(CONFIG_MIPS_SIM) += -Iinclude/asm-mips/mach-sim |
332 | load-$(CONFIG_MIPS_SIM) += 0x80100000 | 332 | load-$(CONFIG_MIPS_SIM) += 0x80100000 |
333 | 333 | ||
@@ -343,12 +343,12 @@ cflags-$(CONFIG_MOMENCO_OCELOT) += -Iinclude/asm-mips/mach-ocelot | |||
343 | load-$(CONFIG_MOMENCO_OCELOT) += 0xffffffff80100000 | 343 | load-$(CONFIG_MOMENCO_OCELOT) += 0xffffffff80100000 |
344 | 344 | ||
345 | # | 345 | # |
346 | # Momentum Ocelot-C and -CS boards | 346 | # PMC-Sierra MSP SOCs |
347 | # | 347 | # |
348 | # The Ocelot-C[S] setup.o must be linked early - it does the ioremap() for the | 348 | core-$(CONFIG_PMC_MSP) += arch/mips/pmc-sierra/msp71xx/ |
349 | # mips_io_port_base. | 349 | cflags-$(CONFIG_PMC_MSP) += -Iinclude/asm-mips/pmc-sierra/msp71xx \ |
350 | core-$(CONFIG_MOMENCO_OCELOT_C) += arch/mips/momentum/ocelot_c/ | 350 | -mno-branch-likely |
351 | load-$(CONFIG_MOMENCO_OCELOT_C) += 0xffffffff80100000 | 351 | load-$(CONFIG_PMC_MSP) += 0xffffffff80100000 |
352 | 352 | ||
353 | # | 353 | # |
354 | # PMC-Sierra Yosemite | 354 | # PMC-Sierra Yosemite |
@@ -365,13 +365,6 @@ cflags-$(CONFIG_QEMU) += -Iinclude/asm-mips/mach-qemu | |||
365 | load-$(CONFIG_QEMU) += 0xffffffff80010000 | 365 | load-$(CONFIG_QEMU) += 0xffffffff80010000 |
366 | 366 | ||
367 | # | 367 | # |
368 | # Momentum Ocelot-3 | ||
369 | # | ||
370 | core-$(CONFIG_MOMENCO_OCELOT_3) += arch/mips/momentum/ocelot_3/ | ||
371 | cflags-$(CONFIG_MOMENCO_OCELOT_3) += -Iinclude/asm-mips/mach-ocelot3 | ||
372 | load-$(CONFIG_MOMENCO_OCELOT_3) += 0xffffffff80100000 | ||
373 | |||
374 | # | ||
375 | # Basler eXcite | 368 | # Basler eXcite |
376 | # | 369 | # |
377 | core-$(CONFIG_BASLER_EXCITE) += arch/mips/basler/excite/ | 370 | core-$(CONFIG_BASLER_EXCITE) += arch/mips/basler/excite/ |
@@ -389,10 +382,6 @@ core-$(CONFIG_DDB5XXX_COMMON) += arch/mips/ddb5xxx/common/ | |||
389 | core-$(CONFIG_DDB5477) += arch/mips/ddb5xxx/ddb5477/ | 382 | core-$(CONFIG_DDB5477) += arch/mips/ddb5xxx/ddb5477/ |
390 | load-$(CONFIG_DDB5477) += 0xffffffff80100000 | 383 | load-$(CONFIG_DDB5477) += 0xffffffff80100000 |
391 | 384 | ||
392 | core-$(CONFIG_LASAT) += arch/mips/lasat/ | ||
393 | cflags-$(CONFIG_LASAT) += -Iinclude/asm-mips/mach-lasat | ||
394 | load-$(CONFIG_LASAT) += 0xffffffff80000000 | ||
395 | |||
396 | # | 385 | # |
397 | # Common VR41xx | 386 | # Common VR41xx |
398 | # | 387 | # |
@@ -580,6 +569,7 @@ load-$(CONFIG_TOSHIBA_JMR3927) += 0xffffffff80050000 | |||
580 | # | 569 | # |
581 | core-$(CONFIG_TOSHIBA_RBTX4927) += arch/mips/tx4927/toshiba_rbtx4927/ | 570 | core-$(CONFIG_TOSHIBA_RBTX4927) += arch/mips/tx4927/toshiba_rbtx4927/ |
582 | core-$(CONFIG_TOSHIBA_RBTX4927) += arch/mips/tx4927/common/ | 571 | core-$(CONFIG_TOSHIBA_RBTX4927) += arch/mips/tx4927/common/ |
572 | cflags-$(CONFIG_TOSHIBA_RBTX4927) += -Iinclude/asm-mips/mach-tx49xx | ||
583 | load-$(CONFIG_TOSHIBA_RBTX4927) += 0xffffffff80020000 | 573 | load-$(CONFIG_TOSHIBA_RBTX4927) += 0xffffffff80020000 |
584 | 574 | ||
585 | # | 575 | # |
@@ -587,6 +577,7 @@ load-$(CONFIG_TOSHIBA_RBTX4927) += 0xffffffff80020000 | |||
587 | # | 577 | # |
588 | core-$(CONFIG_TOSHIBA_RBTX4938) += arch/mips/tx4938/toshiba_rbtx4938/ | 578 | core-$(CONFIG_TOSHIBA_RBTX4938) += arch/mips/tx4938/toshiba_rbtx4938/ |
589 | core-$(CONFIG_TOSHIBA_RBTX4938) += arch/mips/tx4938/common/ | 579 | core-$(CONFIG_TOSHIBA_RBTX4938) += arch/mips/tx4938/common/ |
580 | cflags-$(CONFIG_TOSHIBA_RBTX4938) += -Iinclude/asm-mips/mach-tx49xx | ||
590 | load-$(CONFIG_TOSHIBA_RBTX4938) += 0xffffffff80100000 | 581 | load-$(CONFIG_TOSHIBA_RBTX4938) += 0xffffffff80100000 |
591 | 582 | ||
592 | cflags-y += -Iinclude/asm-mips/mach-generic | 583 | cflags-y += -Iinclude/asm-mips/mach-generic |
@@ -603,7 +594,8 @@ JIFFIES = jiffies_64 | |||
603 | endif | 594 | endif |
604 | 595 | ||
605 | AFLAGS += $(cflags-y) | 596 | AFLAGS += $(cflags-y) |
606 | CFLAGS += $(cflags-y) | 597 | CFLAGS += $(cflags-y) \ |
598 | -D"VMLINUX_LOAD_ADDRESS=$(load-y)" | ||
607 | 599 | ||
608 | LDFLAGS += -m $(ld-emul) | 600 | LDFLAGS += -m $(ld-emul) |
609 | 601 | ||
@@ -633,18 +625,11 @@ CPPFLAGS_vmlinux.lds := \ | |||
633 | head-y := arch/mips/kernel/head.o arch/mips/kernel/init_task.o | 625 | head-y := arch/mips/kernel/head.o arch/mips/kernel/init_task.o |
634 | 626 | ||
635 | libs-y += arch/mips/lib/ | 627 | libs-y += arch/mips/lib/ |
636 | libs-$(CONFIG_32BIT) += arch/mips/lib-32/ | ||
637 | libs-$(CONFIG_64BIT) += arch/mips/lib-64/ | ||
638 | 628 | ||
639 | core-y += arch/mips/kernel/ arch/mips/mm/ arch/mips/math-emu/ | 629 | core-y += arch/mips/kernel/ arch/mips/mm/ arch/mips/math-emu/ |
640 | 630 | ||
641 | drivers-$(CONFIG_OPROFILE) += arch/mips/oprofile/ | 631 | drivers-$(CONFIG_OPROFILE) += arch/mips/oprofile/ |
642 | 632 | ||
643 | ifdef CONFIG_LASAT | ||
644 | rom.bin rom.sw: vmlinux | ||
645 | $(Q)$(MAKE) $(build)=arch/mips/lasat/image $@ | ||
646 | endif | ||
647 | |||
648 | # | 633 | # |
649 | # Some machines like the Indy need 32-bit ELF binaries for booting purposes. | 634 | # Some machines like the Indy need 32-bit ELF binaries for booting purposes. |
650 | # Other need ECOFF, so we build a 32-bit ELF binary for them which we then | 635 | # Other need ECOFF, so we build a 32-bit ELF binary for them which we then |
@@ -702,32 +687,19 @@ vmlinux.srec: $(vmlinux-32) | |||
702 | CLEAN_FILES += vmlinux.ecoff \ | 687 | CLEAN_FILES += vmlinux.ecoff \ |
703 | vmlinux.srec | 688 | vmlinux.srec |
704 | 689 | ||
690 | archprepare: | ||
691 | ifdef CONFIG_MIPS32_N32 | ||
692 | @echo ' Checking missing-syscalls for N32' | ||
693 | $(Q)$(MAKE) $(build)=. missing-syscalls EXTRA_CFLAGS="-mabi=n32" | ||
694 | endif | ||
695 | ifdef CONFIG_MIPS32_O32 | ||
696 | @echo ' Checking missing-syscalls for O32' | ||
697 | $(Q)$(MAKE) $(build)=. missing-syscalls EXTRA_CFLAGS="-mabi=32" | ||
698 | endif | ||
699 | |||
705 | archclean: | 700 | archclean: |
706 | @$(MAKE) $(clean)=arch/mips/boot | 701 | @$(MAKE) $(clean)=arch/mips/boot |
707 | @$(MAKE) $(clean)=arch/mips/lasat | ||
708 | 702 | ||
709 | CLEAN_FILES += vmlinux.32 \ | 703 | CLEAN_FILES += vmlinux.32 \ |
710 | vmlinux.64 \ | 704 | vmlinux.64 \ |
711 | vmlinux.ecoff | 705 | vmlinux.ecoff |
712 | |||
713 | quiet_cmd_syscalls_n32 = CALL-N32 $< | ||
714 | cmd_syscalls_n32 = $(CONFIG_SHELL) $< $(CC) $(c_flags) -mabi=n32 | ||
715 | |||
716 | quiet_cmd_syscalls_o32 = CALL-O32 $< | ||
717 | cmd_syscalls_o32 = $(CONFIG_SHELL) $< $(CC) $(c_flags) -mabi=32 | ||
718 | |||
719 | PHONY += missing-syscalls-n32 missing-syscalls-o32 | ||
720 | |||
721 | missing-syscalls-n32: scripts/checksyscalls.sh FORCE | ||
722 | $(call cmd,syscalls_n32) | ||
723 | |||
724 | missing-syscalls-o32: scripts/checksyscalls.sh FORCE | ||
725 | $(call cmd,syscalls_o32) | ||
726 | |||
727 | archprepare: | ||
728 | ifdef CONFIG_MIPS32_N32 | ||
729 | $(Q)$(MAKE) $(build)=arch/mips missing-syscalls-n32 | ||
730 | endif | ||
731 | ifdef CONFIG_MIPS32_O32 | ||
732 | $(Q)$(MAKE) $(build)=arch/mips missing-syscalls-o32 | ||
733 | endif | ||
diff --git a/arch/mips/au1000/common/gpio.c b/arch/mips/au1000/common/gpio.c index ce55297dcb8c..7abe42099439 100644 --- a/arch/mips/au1000/common/gpio.c +++ b/arch/mips/au1000/common/gpio.c | |||
@@ -1,4 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2007, OpenWrt.org, Florian Fainelli <florian@openwrt.org> | ||
3 | * Architecture specific GPIO support | ||
4 | * | ||
2 | * This program is free software; you can redistribute it and/or modify it | 5 | * This program is free software; you can redistribute it and/or modify it |
3 | * under the terms of the GNU General Public License as published by the | 6 | * under the terms of the GNU General Public License as published by the |
4 | * Free Software Foundation; either version 2 of the License, or (at your | 7 | * Free Software Foundation; either version 2 of the License, or (at your |
@@ -18,101 +21,136 @@ | |||
18 | * You should have received a copy of the GNU General Public License along | 21 | * You should have received a copy of the GNU General Public License along |
19 | * with this program; if not, write to the Free Software Foundation, Inc., | 22 | * with this program; if not, write to the Free Software Foundation, Inc., |
20 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 23 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
24 | * | ||
25 | * Notes : | ||
26 | * au1000 SoC have only one GPIO line : GPIO1 | ||
27 | * others have a second one : GPIO2 | ||
21 | */ | 28 | */ |
29 | |||
30 | #include <linux/autoconf.h> | ||
31 | #include <linux/init.h> | ||
32 | #include <linux/io.h> | ||
33 | #include <linux/types.h> | ||
22 | #include <linux/module.h> | 34 | #include <linux/module.h> |
23 | #include <au1000.h> | 35 | |
24 | #include <au1xxx_gpio.h> | 36 | #include <asm/addrspace.h> |
37 | |||
38 | #include <asm/mach-au1x00/au1000.h> | ||
39 | #include <asm/gpio.h> | ||
25 | 40 | ||
26 | #define gpio1 sys | 41 | #define gpio1 sys |
27 | #if !defined(CONFIG_SOC_AU1000) | 42 | #if !defined(CONFIG_SOC_AU1000) |
28 | static AU1X00_GPIO2 * const gpio2 = (AU1X00_GPIO2 *)GPIO2_BASE; | ||
29 | 43 | ||
30 | #define GPIO2_OUTPUT_ENABLE_MASK 0x00010000 | 44 | static struct au1x00_gpio2 *const gpio2 = (struct au1x00_gpio2 *) GPIO2_BASE; |
45 | #define GPIO2_OUTPUT_ENABLE_MASK 0x00010000 | ||
31 | 46 | ||
32 | int au1xxx_gpio2_read(int signal) | 47 | static int au1xxx_gpio2_read(unsigned gpio) |
33 | { | 48 | { |
34 | signal -= 200; | 49 | gpio -= AU1XXX_GPIO_BASE; |
35 | /* gpio2->dir &= ~(0x01 << signal); //Set GPIO to input */ | 50 | return ((gpio2->pinstate >> gpio) & 0x01); |
36 | return ((gpio2->pinstate >> signal) & 0x01); | ||
37 | } | 51 | } |
38 | 52 | ||
39 | void au1xxx_gpio2_write(int signal, int value) | 53 | static void au1xxx_gpio2_write(unsigned gpio, int value) |
40 | { | 54 | { |
41 | signal -= 200; | 55 | gpio -= AU1XXX_GPIO_BASE; |
42 | 56 | ||
43 | gpio2->output = (GPIO2_OUTPUT_ENABLE_MASK << signal) | | 57 | gpio2->output = (GPIO2_OUTPUT_ENABLE_MASK << gpio) | (value << gpio); |
44 | (value << signal); | ||
45 | } | 58 | } |
46 | 59 | ||
47 | void au1xxx_gpio2_tristate(int signal) | 60 | static int au1xxx_gpio2_direction_input(unsigned gpio) |
48 | { | 61 | { |
49 | signal -= 200; | 62 | gpio -= AU1XXX_GPIO_BASE; |
50 | gpio2->dir &= ~(0x01 << signal); /* Set GPIO to input */ | 63 | gpio2->dir &= ~(0x01 << gpio); |
64 | return 0; | ||
51 | } | 65 | } |
52 | #endif | ||
53 | 66 | ||
54 | int au1xxx_gpio1_read(int signal) | 67 | static int au1xxx_gpio2_direction_output(unsigned gpio, int value) |
68 | { | ||
69 | gpio -= AU1XXX_GPIO_BASE; | ||
70 | gpio2->dir = (0x01 << gpio) | (value << gpio); | ||
71 | return 0; | ||
72 | } | ||
73 | |||
74 | #endif /* !defined(CONFIG_SOC_AU1000) */ | ||
75 | |||
76 | static int au1xxx_gpio1_read(unsigned gpio) | ||
55 | { | 77 | { |
56 | /* gpio1->trioutclr |= (0x01 << signal); */ | 78 | return ((gpio1->pinstaterd >> gpio) & 0x01); |
57 | return ((gpio1->pinstaterd >> signal) & 0x01); | ||
58 | } | 79 | } |
59 | 80 | ||
60 | void au1xxx_gpio1_write(int signal, int value) | 81 | static void au1xxx_gpio1_write(unsigned gpio, int value) |
61 | { | 82 | { |
62 | if(value) | 83 | if (value) |
63 | gpio1->outputset = (0x01 << signal); | 84 | gpio1->outputset = (0x01 << gpio); |
64 | else | 85 | else |
65 | gpio1->outputclr = (0x01 << signal); /* Output a Zero */ | 86 | /* Output a zero */ |
87 | gpio1->outputclr = (0x01 << gpio); | ||
66 | } | 88 | } |
67 | 89 | ||
68 | void au1xxx_gpio1_tristate(int signal) | 90 | static int au1xxx_gpio1_direction_input(unsigned gpio) |
69 | { | 91 | { |
70 | gpio1->trioutclr = (0x01 << signal); /* Tristate signal */ | 92 | gpio1->pininputen = (0x01 << gpio); |
93 | return 0; | ||
71 | } | 94 | } |
72 | 95 | ||
96 | static int au1xxx_gpio1_direction_output(unsigned gpio, int value) | ||
97 | { | ||
98 | gpio1->trioutclr = (0x01 & gpio); | ||
99 | return 0; | ||
100 | } | ||
73 | 101 | ||
74 | int au1xxx_gpio_read(int signal) | 102 | int au1xxx_gpio_get_value(unsigned gpio) |
75 | { | 103 | { |
76 | if(signal >= 200) | 104 | if (gpio >= AU1XXX_GPIO_BASE) |
77 | #if defined(CONFIG_SOC_AU1000) | 105 | #if defined(CONFIG_SOC_AU1000) |
78 | return 0; | 106 | return 0; |
79 | #else | 107 | #else |
80 | return au1xxx_gpio2_read(signal); | 108 | return au1xxx_gpio2_read(gpio); |
81 | #endif | 109 | #endif |
82 | else | 110 | else |
83 | return au1xxx_gpio1_read(signal); | 111 | return au1xxx_gpio1_read(gpio); |
84 | } | 112 | } |
85 | 113 | ||
86 | void au1xxx_gpio_write(int signal, int value) | 114 | EXPORT_SYMBOL(au1xxx_gpio_get_value); |
115 | |||
116 | void au1xxx_gpio_set_value(unsigned gpio, int value) | ||
87 | { | 117 | { |
88 | if(signal >= 200) | 118 | if (gpio >= AU1XXX_GPIO_BASE) |
89 | #if defined(CONFIG_SOC_AU1000) | 119 | #if defined(CONFIG_SOC_AU1000) |
90 | ; | 120 | ; |
91 | #else | 121 | #else |
92 | au1xxx_gpio2_write(signal, value); | 122 | au1xxx_gpio2_write(gpio, value); |
93 | #endif | 123 | #endif |
94 | else | 124 | else |
95 | au1xxx_gpio1_write(signal, value); | 125 | au1xxx_gpio1_write(gpio, value); |
96 | } | 126 | } |
97 | 127 | ||
98 | void au1xxx_gpio_tristate(int signal) | 128 | EXPORT_SYMBOL(au1xxx_gpio_set_value); |
129 | |||
130 | int au1xxx_gpio_direction_input(unsigned gpio) | ||
99 | { | 131 | { |
100 | if(signal >= 200) | 132 | if (gpio >= AU1XXX_GPIO_BASE) |
101 | #if defined(CONFIG_SOC_AU1000) | 133 | #if defined(CONFIG_SOC_AU1000) |
102 | ; | 134 | ; |
103 | #else | 135 | #else |
104 | au1xxx_gpio2_tristate(signal); | 136 | return au1xxx_gpio2_direction_input(gpio); |
105 | #endif | 137 | #endif |
106 | else | 138 | else |
107 | au1xxx_gpio1_tristate(signal); | 139 | return au1xxx_gpio1_direction_input(gpio); |
108 | } | 140 | } |
109 | 141 | ||
110 | void au1xxx_gpio1_set_inputs(void) | 142 | EXPORT_SYMBOL(au1xxx_gpio_direction_input); |
143 | |||
144 | int au1xxx_gpio_direction_output(unsigned gpio, int value) | ||
111 | { | 145 | { |
112 | gpio1->pininputen = 0; | 146 | if (gpio >= AU1XXX_GPIO_BASE) |
147 | #if defined(CONFIG_SOC_AU1000) | ||
148 | ; | ||
149 | #else | ||
150 | return au1xxx_gpio2_direction_output(gpio, value); | ||
151 | #endif | ||
152 | else | ||
153 | return au1xxx_gpio1_direction_output(gpio, value); | ||
113 | } | 154 | } |
114 | 155 | ||
115 | EXPORT_SYMBOL(au1xxx_gpio1_set_inputs); | 156 | EXPORT_SYMBOL(au1xxx_gpio_direction_output); |
116 | EXPORT_SYMBOL(au1xxx_gpio_tristate); | ||
117 | EXPORT_SYMBOL(au1xxx_gpio_write); | ||
118 | EXPORT_SYMBOL(au1xxx_gpio_read); | ||
diff --git a/arch/mips/au1000/common/platform.c b/arch/mips/au1000/common/platform.c index 8fd203d4a339..d51e18fb789b 100644 --- a/arch/mips/au1000/common/platform.c +++ b/arch/mips/au1000/common/platform.c | |||
@@ -289,7 +289,7 @@ static struct platform_device *au1xxx_platform_devices[] __initdata = { | |||
289 | #endif | 289 | #endif |
290 | }; | 290 | }; |
291 | 291 | ||
292 | int au1xxx_platform_init(void) | 292 | int __init au1xxx_platform_init(void) |
293 | { | 293 | { |
294 | return platform_add_devices(au1xxx_platform_devices, ARRAY_SIZE(au1xxx_platform_devices)); | 294 | return platform_add_devices(au1xxx_platform_devices, ARRAY_SIZE(au1xxx_platform_devices)); |
295 | } | 295 | } |
diff --git a/arch/mips/configs/atlas_defconfig b/arch/mips/configs/atlas_defconfig index 39e251300c64..129e2c961fec 100644 --- a/arch/mips/configs/atlas_defconfig +++ b/arch/mips/configs/atlas_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | CONFIG_MIPS_ATLAS=y | 29 | CONFIG_MIPS_ATLAS=y |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_MIPS_ATLAS=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/bigsur_defconfig b/arch/mips/configs/bigsur_defconfig index 4713a13211ce..dc3e1bf4e42e 100644 --- a/arch/mips/configs/bigsur_defconfig +++ b/arch/mips/configs/bigsur_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_ZONE_DMA=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/capcella_defconfig b/arch/mips/configs/capcella_defconfig index 5e7ae56b1f3c..4c7031222e64 100644 --- a/arch/mips/configs/capcella_defconfig +++ b/arch/mips/configs/capcella_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_ZONE_DMA=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/cobalt_defconfig b/arch/mips/configs/cobalt_defconfig index 631b2138ad68..c8c05785a86d 100644 --- a/arch/mips/configs/cobalt_defconfig +++ b/arch/mips/configs/cobalt_defconfig | |||
@@ -1,44 +1,24 @@ | |||
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-rc7 | 3 | # Linux kernel version: 2.6.22-rc2 |
4 | # Wed Apr 18 14:25:45 2007 | 4 | # Fri May 25 11:17:29 2007 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
8 | # | 8 | # |
9 | # Machine selection | 9 | # Machine selection |
10 | # | 10 | # |
11 | CONFIG_ZONE_DMA=y | 11 | # CONFIG_MACH_ALCHEMY is not set |
12 | # CONFIG_MIPS_MTX1 is not set | ||
13 | # CONFIG_MIPS_BOSPORUS is not set | ||
14 | # CONFIG_MIPS_PB1000 is not set | ||
15 | # CONFIG_MIPS_PB1100 is not set | ||
16 | # CONFIG_MIPS_PB1500 is not set | ||
17 | # CONFIG_MIPS_PB1550 is not set | ||
18 | # CONFIG_MIPS_PB1200 is not set | ||
19 | # CONFIG_MIPS_DB1000 is not set | ||
20 | # CONFIG_MIPS_DB1100 is not set | ||
21 | # CONFIG_MIPS_DB1500 is not set | ||
22 | # CONFIG_MIPS_DB1550 is not set | ||
23 | # CONFIG_MIPS_DB1200 is not set | ||
24 | # CONFIG_MIPS_MIRAGE is not set | ||
25 | # CONFIG_BASLER_EXCITE is not set | 12 | # CONFIG_BASLER_EXCITE is not set |
26 | CONFIG_MIPS_COBALT=y | 13 | CONFIG_MIPS_COBALT=y |
27 | # CONFIG_MACH_DECSTATION is not set | 14 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 15 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 16 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 17 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 18 | # CONFIG_MIPS_SEAD is not set |
34 | # CONFIG_WR_PPMC is not set | 19 | # CONFIG_WR_PPMC is not set |
35 | # CONFIG_MIPS_SIM is not set | 20 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | ||
37 | # CONFIG_MOMENCO_OCELOT is not set | 21 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | ||
41 | # CONFIG_MIPS_XXS1500 is not set | ||
42 | # CONFIG_PNX8550_JBS is not set | 22 | # CONFIG_PNX8550_JBS is not set |
43 | # CONFIG_PNX8550_STB810 is not set | 23 | # CONFIG_PNX8550_STB810 is not set |
44 | # CONFIG_DDB5477 is not set | 24 | # CONFIG_DDB5477 is not set |
@@ -138,7 +118,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y | |||
138 | # CONFIG_SPARSEMEM_STATIC is not set | 118 | # CONFIG_SPARSEMEM_STATIC is not set |
139 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 119 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
140 | # CONFIG_RESOURCES_64BIT is not set | 120 | # CONFIG_RESOURCES_64BIT is not set |
141 | CONFIG_ZONE_DMA_FLAG=1 | 121 | CONFIG_ZONE_DMA_FLAG=0 |
142 | # CONFIG_HZ_48 is not set | 122 | # CONFIG_HZ_48 is not set |
143 | # CONFIG_HZ_100 is not set | 123 | # CONFIG_HZ_100 is not set |
144 | # CONFIG_HZ_128 is not set | 124 | # CONFIG_HZ_128 is not set |
@@ -178,6 +158,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
178 | # CONFIG_UTS_NS is not set | 158 | # CONFIG_UTS_NS is not set |
179 | # CONFIG_AUDIT is not set | 159 | # CONFIG_AUDIT is not set |
180 | # CONFIG_IKCONFIG is not set | 160 | # CONFIG_IKCONFIG is not set |
161 | CONFIG_LOG_BUF_SHIFT=14 | ||
181 | CONFIG_SYSFS_DEPRECATED=y | 162 | CONFIG_SYSFS_DEPRECATED=y |
182 | CONFIG_RELAY=y | 163 | CONFIG_RELAY=y |
183 | # CONFIG_BLK_DEV_INITRD is not set | 164 | # CONFIG_BLK_DEV_INITRD is not set |
@@ -193,14 +174,19 @@ CONFIG_BUG=y | |||
193 | CONFIG_ELF_CORE=y | 174 | CONFIG_ELF_CORE=y |
194 | CONFIG_BASE_FULL=y | 175 | CONFIG_BASE_FULL=y |
195 | CONFIG_FUTEX=y | 176 | CONFIG_FUTEX=y |
177 | CONFIG_ANON_INODES=y | ||
196 | CONFIG_EPOLL=y | 178 | CONFIG_EPOLL=y |
179 | CONFIG_SIGNALFD=y | ||
180 | CONFIG_TIMERFD=y | ||
181 | CONFIG_EVENTFD=y | ||
197 | CONFIG_SHMEM=y | 182 | CONFIG_SHMEM=y |
198 | CONFIG_SLAB=y | ||
199 | CONFIG_VM_EVENT_COUNTERS=y | 183 | CONFIG_VM_EVENT_COUNTERS=y |
184 | CONFIG_SLAB=y | ||
185 | # CONFIG_SLUB is not set | ||
186 | # CONFIG_SLOB is not set | ||
200 | CONFIG_RT_MUTEXES=y | 187 | CONFIG_RT_MUTEXES=y |
201 | # CONFIG_TINY_SHMEM is not set | 188 | # CONFIG_TINY_SHMEM is not set |
202 | CONFIG_BASE_SMALL=0 | 189 | CONFIG_BASE_SMALL=0 |
203 | # CONFIG_SLOB is not set | ||
204 | 190 | ||
205 | # | 191 | # |
206 | # Loadable module support | 192 | # Loadable module support |
@@ -233,16 +219,13 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
233 | # | 219 | # |
234 | CONFIG_HW_HAS_PCI=y | 220 | CONFIG_HW_HAS_PCI=y |
235 | CONFIG_PCI=y | 221 | CONFIG_PCI=y |
222 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
236 | CONFIG_MMU=y | 223 | CONFIG_MMU=y |
237 | 224 | ||
238 | # | 225 | # |
239 | # PCCARD (PCMCIA/CardBus) support | 226 | # PCCARD (PCMCIA/CardBus) support |
240 | # | 227 | # |
241 | # CONFIG_PCCARD is not set | 228 | # CONFIG_PCCARD is not set |
242 | |||
243 | # | ||
244 | # PCI Hotplug Support | ||
245 | # | ||
246 | # CONFIG_HOTPLUG_PCI is not set | 229 | # CONFIG_HOTPLUG_PCI is not set |
247 | 230 | ||
248 | # | 231 | # |
@@ -268,7 +251,6 @@ CONFIG_NET=y | |||
268 | # | 251 | # |
269 | # Networking options | 252 | # Networking options |
270 | # | 253 | # |
271 | # CONFIG_NETDEBUG is not set | ||
272 | CONFIG_PACKET=y | 254 | CONFIG_PACKET=y |
273 | # CONFIG_PACKET_MMAP is not set | 255 | # CONFIG_PACKET_MMAP is not set |
274 | CONFIG_UNIX=y | 256 | CONFIG_UNIX=y |
@@ -300,11 +282,11 @@ CONFIG_INET_TCP_DIAG=y | |||
300 | # CONFIG_TCP_CONG_ADVANCED is not set | 282 | # CONFIG_TCP_CONG_ADVANCED is not set |
301 | CONFIG_TCP_CONG_CUBIC=y | 283 | CONFIG_TCP_CONG_CUBIC=y |
302 | CONFIG_DEFAULT_TCP_CONG="cubic" | 284 | CONFIG_DEFAULT_TCP_CONG="cubic" |
303 | CONFIG_TCP_MD5SIG=y | 285 | # CONFIG_TCP_MD5SIG is not set |
304 | # CONFIG_IPV6 is not set | 286 | # CONFIG_IPV6 is not set |
305 | # CONFIG_INET6_XFRM_TUNNEL is not set | 287 | # CONFIG_INET6_XFRM_TUNNEL is not set |
306 | # CONFIG_INET6_TUNNEL is not set | 288 | # CONFIG_INET6_TUNNEL is not set |
307 | CONFIG_NETWORK_SECMARK=y | 289 | # CONFIG_NETWORK_SECMARK is not set |
308 | # CONFIG_NETFILTER is not set | 290 | # CONFIG_NETFILTER is not set |
309 | 291 | ||
310 | # | 292 | # |
@@ -345,13 +327,16 @@ CONFIG_NETWORK_SECMARK=y | |||
345 | # CONFIG_HAMRADIO is not set | 327 | # CONFIG_HAMRADIO is not set |
346 | # CONFIG_IRDA is not set | 328 | # CONFIG_IRDA is not set |
347 | # CONFIG_BT is not set | 329 | # CONFIG_BT is not set |
348 | CONFIG_IEEE80211=y | 330 | # CONFIG_AF_RXRPC is not set |
349 | # CONFIG_IEEE80211_DEBUG is not set | 331 | |
350 | CONFIG_IEEE80211_CRYPT_WEP=y | 332 | # |
351 | CONFIG_IEEE80211_CRYPT_CCMP=y | 333 | # Wireless |
352 | CONFIG_IEEE80211_SOFTMAC=y | 334 | # |
353 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | 335 | # CONFIG_CFG80211 is not set |
354 | CONFIG_WIRELESS_EXT=y | 336 | # CONFIG_WIRELESS_EXT is not set |
337 | # CONFIG_MAC80211 is not set | ||
338 | # CONFIG_IEEE80211 is not set | ||
339 | # CONFIG_RFKILL is not set | ||
355 | 340 | ||
356 | # | 341 | # |
357 | # Device Drivers | 342 | # Device Drivers |
@@ -370,10 +355,6 @@ CONFIG_FW_LOADER=y | |||
370 | # | 355 | # |
371 | CONFIG_CONNECTOR=y | 356 | CONFIG_CONNECTOR=y |
372 | CONFIG_PROC_EVENTS=y | 357 | CONFIG_PROC_EVENTS=y |
373 | |||
374 | # | ||
375 | # Memory Technology Devices (MTD) | ||
376 | # | ||
377 | CONFIG_MTD=y | 358 | CONFIG_MTD=y |
378 | # CONFIG_MTD_DEBUG is not set | 359 | # CONFIG_MTD_DEBUG is not set |
379 | # CONFIG_MTD_CONCAT is not set | 360 | # CONFIG_MTD_CONCAT is not set |
@@ -418,7 +399,6 @@ CONFIG_MTD_CFI_UTIL=y | |||
418 | # CONFIG_MTD_RAM is not set | 399 | # CONFIG_MTD_RAM is not set |
419 | # CONFIG_MTD_ROM is not set | 400 | # CONFIG_MTD_ROM is not set |
420 | # CONFIG_MTD_ABSENT is not set | 401 | # CONFIG_MTD_ABSENT is not set |
421 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
422 | 402 | ||
423 | # | 403 | # |
424 | # Mapping drivers for chip access | 404 | # Mapping drivers for chip access |
@@ -445,16 +425,13 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=0 | |||
445 | # CONFIG_MTD_DOC2000 is not set | 425 | # CONFIG_MTD_DOC2000 is not set |
446 | # CONFIG_MTD_DOC2001 is not set | 426 | # CONFIG_MTD_DOC2001 is not set |
447 | # CONFIG_MTD_DOC2001PLUS is not set | 427 | # CONFIG_MTD_DOC2001PLUS is not set |
448 | |||
449 | # | ||
450 | # NAND Flash Device Drivers | ||
451 | # | ||
452 | # CONFIG_MTD_NAND is not set | 428 | # CONFIG_MTD_NAND is not set |
429 | # CONFIG_MTD_ONENAND is not set | ||
453 | 430 | ||
454 | # | 431 | # |
455 | # OneNAND Flash Device Drivers | 432 | # UBI - Unsorted block images |
456 | # | 433 | # |
457 | # CONFIG_MTD_ONENAND is not set | 434 | # CONFIG_MTD_UBI is not set |
458 | 435 | ||
459 | # | 436 | # |
460 | # Parallel port support | 437 | # Parallel port support |
@@ -479,87 +456,145 @@ CONFIG_BLK_DEV_LOOP=y | |||
479 | # CONFIG_BLK_DEV_NBD is not set | 456 | # CONFIG_BLK_DEV_NBD is not set |
480 | # CONFIG_BLK_DEV_SX8 is not set | 457 | # CONFIG_BLK_DEV_SX8 is not set |
481 | # CONFIG_BLK_DEV_RAM is not set | 458 | # CONFIG_BLK_DEV_RAM is not set |
482 | CONFIG_CDROM_PKTCDVD=y | 459 | # CONFIG_CDROM_PKTCDVD is not set |
483 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 460 | # CONFIG_ATA_OVER_ETH is not set |
484 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | ||
485 | CONFIG_ATA_OVER_ETH=y | ||
486 | 461 | ||
487 | # | 462 | # |
488 | # Misc devices | 463 | # Misc devices |
489 | # | 464 | # |
490 | CONFIG_SGI_IOC4=y | 465 | # CONFIG_PHANTOM is not set |
466 | # CONFIG_SGI_IOC4 is not set | ||
491 | # CONFIG_TIFM_CORE is not set | 467 | # CONFIG_TIFM_CORE is not set |
492 | 468 | # CONFIG_BLINK is not set | |
493 | # | 469 | # CONFIG_IDE is not set |
494 | # ATA/ATAPI/MFM/RLL support | ||
495 | # | ||
496 | CONFIG_IDE=y | ||
497 | CONFIG_IDE_MAX_HWIFS=4 | ||
498 | CONFIG_BLK_DEV_IDE=y | ||
499 | |||
500 | # | ||
501 | # Please see Documentation/ide.txt for help/info on IDE drives | ||
502 | # | ||
503 | # CONFIG_BLK_DEV_IDE_SATA is not set | ||
504 | CONFIG_BLK_DEV_IDEDISK=y | ||
505 | # CONFIG_IDEDISK_MULTI_MODE is not set | ||
506 | # CONFIG_BLK_DEV_IDECD is not set | ||
507 | # CONFIG_BLK_DEV_IDETAPE is not set | ||
508 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | ||
509 | # CONFIG_IDE_TASK_IOCTL is not set | ||
510 | |||
511 | # | ||
512 | # IDE chipset support/bugfixes | ||
513 | # | ||
514 | CONFIG_IDE_GENERIC=y | ||
515 | CONFIG_BLK_DEV_IDEPCI=y | ||
516 | # CONFIG_IDEPCI_SHARE_IRQ is not set | ||
517 | # CONFIG_BLK_DEV_OFFBOARD is not set | ||
518 | # CONFIG_BLK_DEV_GENERIC is not set | ||
519 | # CONFIG_BLK_DEV_OPTI621 is not set | ||
520 | CONFIG_BLK_DEV_IDEDMA_PCI=y | ||
521 | # CONFIG_BLK_DEV_IDEDMA_FORCED is not set | ||
522 | # CONFIG_IDEDMA_ONLYDISK is not set | ||
523 | # CONFIG_BLK_DEV_AEC62XX is not set | ||
524 | # CONFIG_BLK_DEV_ALI15X3 is not set | ||
525 | # CONFIG_BLK_DEV_AMD74XX is not set | ||
526 | # CONFIG_BLK_DEV_CMD64X is not set | ||
527 | # CONFIG_BLK_DEV_TRIFLEX is not set | ||
528 | # CONFIG_BLK_DEV_CY82C693 is not set | ||
529 | # CONFIG_BLK_DEV_CS5520 is not set | ||
530 | # CONFIG_BLK_DEV_CS5530 is not set | ||
531 | # CONFIG_BLK_DEV_HPT34X is not set | ||
532 | # CONFIG_BLK_DEV_HPT366 is not set | ||
533 | # CONFIG_BLK_DEV_JMICRON is not set | ||
534 | # CONFIG_BLK_DEV_SC1200 is not set | ||
535 | # CONFIG_BLK_DEV_PIIX is not set | ||
536 | CONFIG_BLK_DEV_IT8213=y | ||
537 | # CONFIG_BLK_DEV_IT821X is not set | ||
538 | # CONFIG_BLK_DEV_NS87415 is not set | ||
539 | # CONFIG_BLK_DEV_PDC202XX_OLD is not set | ||
540 | # CONFIG_BLK_DEV_PDC202XX_NEW is not set | ||
541 | # CONFIG_BLK_DEV_SVWKS is not set | ||
542 | # CONFIG_BLK_DEV_SIIMAGE is not set | ||
543 | # CONFIG_BLK_DEV_SLC90E66 is not set | ||
544 | # CONFIG_BLK_DEV_TRM290 is not set | ||
545 | CONFIG_BLK_DEV_VIA82CXXX=y | ||
546 | CONFIG_BLK_DEV_TC86C001=y | ||
547 | # CONFIG_IDE_ARM is not set | ||
548 | CONFIG_BLK_DEV_IDEDMA=y | ||
549 | # CONFIG_IDEDMA_IVB is not set | ||
550 | # CONFIG_BLK_DEV_HD is not set | ||
551 | 470 | ||
552 | # | 471 | # |
553 | # SCSI device support | 472 | # SCSI device support |
554 | # | 473 | # |
555 | CONFIG_RAID_ATTRS=y | 474 | CONFIG_RAID_ATTRS=y |
556 | # CONFIG_SCSI is not set | 475 | CONFIG_SCSI=y |
476 | # CONFIG_SCSI_TGT is not set | ||
557 | # CONFIG_SCSI_NETLINK is not set | 477 | # CONFIG_SCSI_NETLINK is not set |
558 | 478 | CONFIG_SCSI_PROC_FS=y | |
559 | # | 479 | |
560 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | 480 | # |
561 | # | 481 | # SCSI support type (disk, tape, CD-ROM) |
562 | # CONFIG_ATA is not set | 482 | # |
483 | CONFIG_BLK_DEV_SD=y | ||
484 | # CONFIG_CHR_DEV_ST is not set | ||
485 | # CONFIG_CHR_DEV_OSST is not set | ||
486 | # CONFIG_BLK_DEV_SR is not set | ||
487 | # CONFIG_CHR_DEV_SG is not set | ||
488 | # CONFIG_CHR_DEV_SCH is not set | ||
489 | |||
490 | # | ||
491 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | ||
492 | # | ||
493 | # CONFIG_SCSI_MULTI_LUN is not set | ||
494 | # CONFIG_SCSI_CONSTANTS is not set | ||
495 | # CONFIG_SCSI_LOGGING is not set | ||
496 | # CONFIG_SCSI_SCAN_ASYNC is not set | ||
497 | |||
498 | # | ||
499 | # SCSI Transports | ||
500 | # | ||
501 | # CONFIG_SCSI_SPI_ATTRS is not set | ||
502 | # CONFIG_SCSI_FC_ATTRS is not set | ||
503 | # CONFIG_SCSI_ISCSI_ATTRS is not set | ||
504 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
505 | # CONFIG_SCSI_SAS_LIBSAS is not set | ||
506 | |||
507 | # | ||
508 | # SCSI low-level drivers | ||
509 | # | ||
510 | # CONFIG_ISCSI_TCP is not set | ||
511 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | ||
512 | # CONFIG_SCSI_3W_9XXX is not set | ||
513 | # CONFIG_SCSI_ACARD is not set | ||
514 | # CONFIG_SCSI_AACRAID is not set | ||
515 | # CONFIG_SCSI_AIC7XXX is not set | ||
516 | # CONFIG_SCSI_AIC7XXX_OLD is not set | ||
517 | # CONFIG_SCSI_AIC79XX is not set | ||
518 | # CONFIG_SCSI_AIC94XX is not set | ||
519 | # CONFIG_SCSI_DPT_I2O is not set | ||
520 | # CONFIG_SCSI_ARCMSR is not set | ||
521 | # CONFIG_MEGARAID_NEWGEN is not set | ||
522 | # CONFIG_MEGARAID_LEGACY is not set | ||
523 | # CONFIG_MEGARAID_SAS is not set | ||
524 | # CONFIG_SCSI_HPTIOP is not set | ||
525 | # CONFIG_SCSI_DMX3191D is not set | ||
526 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | ||
527 | # CONFIG_SCSI_IPS is not set | ||
528 | # CONFIG_SCSI_INITIO is not set | ||
529 | # CONFIG_SCSI_INIA100 is not set | ||
530 | # CONFIG_SCSI_STEX is not set | ||
531 | # CONFIG_SCSI_SYM53C8XX_2 is not set | ||
532 | # CONFIG_SCSI_IPR is not set | ||
533 | # CONFIG_SCSI_QLOGIC_1280 is not set | ||
534 | # CONFIG_SCSI_QLA_FC is not set | ||
535 | # CONFIG_SCSI_QLA_ISCSI is not set | ||
536 | # CONFIG_SCSI_LPFC is not set | ||
537 | # CONFIG_SCSI_DC395x is not set | ||
538 | # CONFIG_SCSI_DC390T is not set | ||
539 | # CONFIG_SCSI_NSP32 is not set | ||
540 | # CONFIG_SCSI_DEBUG is not set | ||
541 | # CONFIG_SCSI_ESP_CORE is not set | ||
542 | # CONFIG_SCSI_SRP is not set | ||
543 | CONFIG_ATA=y | ||
544 | # CONFIG_ATA_NONSTANDARD is not set | ||
545 | # CONFIG_SATA_AHCI is not set | ||
546 | # CONFIG_SATA_SVW is not set | ||
547 | # CONFIG_ATA_PIIX is not set | ||
548 | # CONFIG_SATA_MV is not set | ||
549 | # CONFIG_SATA_NV is not set | ||
550 | # CONFIG_PDC_ADMA is not set | ||
551 | # CONFIG_SATA_QSTOR is not set | ||
552 | # CONFIG_SATA_PROMISE is not set | ||
553 | # CONFIG_SATA_SX4 is not set | ||
554 | # CONFIG_SATA_SIL is not set | ||
555 | # CONFIG_SATA_SIL24 is not set | ||
556 | # CONFIG_SATA_SIS is not set | ||
557 | # CONFIG_SATA_ULI is not set | ||
558 | # CONFIG_SATA_VIA is not set | ||
559 | # CONFIG_SATA_VITESSE is not set | ||
560 | # CONFIG_SATA_INIC162X is not set | ||
561 | # CONFIG_PATA_ALI is not set | ||
562 | # CONFIG_PATA_AMD is not set | ||
563 | # CONFIG_PATA_ARTOP is not set | ||
564 | # CONFIG_PATA_ATIIXP is not set | ||
565 | # CONFIG_PATA_CMD640_PCI is not set | ||
566 | # CONFIG_PATA_CMD64X is not set | ||
567 | # CONFIG_PATA_CS5520 is not set | ||
568 | # CONFIG_PATA_CS5530 is not set | ||
569 | # CONFIG_PATA_CYPRESS is not set | ||
570 | # CONFIG_PATA_EFAR is not set | ||
571 | # CONFIG_ATA_GENERIC is not set | ||
572 | # CONFIG_PATA_HPT366 is not set | ||
573 | # CONFIG_PATA_HPT37X is not set | ||
574 | # CONFIG_PATA_HPT3X2N is not set | ||
575 | # CONFIG_PATA_HPT3X3 is not set | ||
576 | # CONFIG_PATA_IT821X is not set | ||
577 | # CONFIG_PATA_IT8213 is not set | ||
578 | # CONFIG_PATA_JMICRON is not set | ||
579 | # CONFIG_PATA_TRIFLEX is not set | ||
580 | # CONFIG_PATA_MARVELL is not set | ||
581 | # CONFIG_PATA_MPIIX is not set | ||
582 | # CONFIG_PATA_OLDPIIX is not set | ||
583 | # CONFIG_PATA_NETCELL is not set | ||
584 | # CONFIG_PATA_NS87410 is not set | ||
585 | # CONFIG_PATA_OPTI is not set | ||
586 | # CONFIG_PATA_OPTIDMA is not set | ||
587 | # CONFIG_PATA_PDC_OLD is not set | ||
588 | # CONFIG_PATA_RADISYS is not set | ||
589 | # CONFIG_PATA_RZ1000 is not set | ||
590 | # CONFIG_PATA_SC1200 is not set | ||
591 | # CONFIG_PATA_SERVERWORKS is not set | ||
592 | # CONFIG_PATA_PDC2027X is not set | ||
593 | # CONFIG_PATA_SIL680 is not set | ||
594 | # CONFIG_PATA_SIS is not set | ||
595 | CONFIG_PATA_VIA=y | ||
596 | # CONFIG_PATA_WINBOND is not set | ||
597 | # CONFIG_PATA_PLATFORM is not set | ||
563 | 598 | ||
564 | # | 599 | # |
565 | # Multi-device support (RAID and LVM) | 600 | # Multi-device support (RAID and LVM) |
@@ -570,10 +605,14 @@ CONFIG_RAID_ATTRS=y | |||
570 | # Fusion MPT device support | 605 | # Fusion MPT device support |
571 | # | 606 | # |
572 | # CONFIG_FUSION is not set | 607 | # CONFIG_FUSION is not set |
608 | # CONFIG_FUSION_SPI is not set | ||
609 | # CONFIG_FUSION_FC is not set | ||
610 | # CONFIG_FUSION_SAS is not set | ||
573 | 611 | ||
574 | # | 612 | # |
575 | # IEEE 1394 (FireWire) support | 613 | # IEEE 1394 (FireWire) support |
576 | # | 614 | # |
615 | # CONFIG_FIREWIRE is not set | ||
577 | # CONFIG_IEEE1394 is not set | 616 | # CONFIG_IEEE1394 is not set |
578 | 617 | ||
579 | # | 618 | # |
@@ -594,24 +633,7 @@ CONFIG_NETDEVICES=y | |||
594 | # ARCnet devices | 633 | # ARCnet devices |
595 | # | 634 | # |
596 | # CONFIG_ARCNET is not set | 635 | # CONFIG_ARCNET is not set |
597 | 636 | # CONFIG_PHYLIB is not set | |
598 | # | ||
599 | # PHY device support | ||
600 | # | ||
601 | CONFIG_PHYLIB=y | ||
602 | |||
603 | # | ||
604 | # MII PHY device drivers | ||
605 | # | ||
606 | CONFIG_MARVELL_PHY=y | ||
607 | CONFIG_DAVICOM_PHY=y | ||
608 | CONFIG_QSEMI_PHY=y | ||
609 | CONFIG_LXT_PHY=y | ||
610 | CONFIG_CICADA_PHY=y | ||
611 | CONFIG_VITESSE_PHY=y | ||
612 | CONFIG_SMSC_PHY=y | ||
613 | # CONFIG_BROADCOM_PHY is not set | ||
614 | # CONFIG_FIXED_PHY is not set | ||
615 | 637 | ||
616 | # | 638 | # |
617 | # Ethernet (10 or 100Mbit) | 639 | # Ethernet (10 or 100Mbit) |
@@ -639,35 +661,8 @@ CONFIG_TULIP=y | |||
639 | # CONFIG_ULI526X is not set | 661 | # CONFIG_ULI526X is not set |
640 | # CONFIG_HP100 is not set | 662 | # CONFIG_HP100 is not set |
641 | # CONFIG_NET_PCI is not set | 663 | # CONFIG_NET_PCI is not set |
642 | 664 | # CONFIG_NETDEV_1000 is not set | |
643 | # | 665 | # CONFIG_NETDEV_10000 is not set |
644 | # Ethernet (1000 Mbit) | ||
645 | # | ||
646 | # CONFIG_ACENIC is not set | ||
647 | # CONFIG_DL2K is not set | ||
648 | # CONFIG_E1000 is not set | ||
649 | # CONFIG_NS83820 is not set | ||
650 | # CONFIG_HAMACHI is not set | ||
651 | # CONFIG_YELLOWFIN is not set | ||
652 | # CONFIG_R8169 is not set | ||
653 | # CONFIG_SIS190 is not set | ||
654 | # CONFIG_SKGE is not set | ||
655 | # CONFIG_SKY2 is not set | ||
656 | # CONFIG_SK98LIN is not set | ||
657 | # CONFIG_TIGON3 is not set | ||
658 | # CONFIG_BNX2 is not set | ||
659 | CONFIG_QLA3XXX=y | ||
660 | # CONFIG_ATL1 is not set | ||
661 | |||
662 | # | ||
663 | # Ethernet (10000 Mbit) | ||
664 | # | ||
665 | # CONFIG_CHELSIO_T1 is not set | ||
666 | CONFIG_CHELSIO_T3=y | ||
667 | # CONFIG_IXGB is not set | ||
668 | # CONFIG_S2IO is not set | ||
669 | # CONFIG_MYRI10GE is not set | ||
670 | CONFIG_NETXEN_NIC=y | ||
671 | 666 | ||
672 | # | 667 | # |
673 | # Token Ring devices | 668 | # Token Ring devices |
@@ -675,18 +670,16 @@ CONFIG_NETXEN_NIC=y | |||
675 | # CONFIG_TR is not set | 670 | # CONFIG_TR is not set |
676 | 671 | ||
677 | # | 672 | # |
678 | # Wireless LAN (non-hamradio) | 673 | # Wireless LAN |
679 | # | ||
680 | # CONFIG_NET_RADIO is not set | ||
681 | |||
682 | # | ||
683 | # Wan interfaces | ||
684 | # | 674 | # |
675 | # CONFIG_WLAN_PRE80211 is not set | ||
676 | # CONFIG_WLAN_80211 is not set | ||
685 | # CONFIG_WAN is not set | 677 | # CONFIG_WAN is not set |
686 | # CONFIG_FDDI is not set | 678 | # CONFIG_FDDI is not set |
687 | # CONFIG_HIPPI is not set | 679 | # CONFIG_HIPPI is not set |
688 | # CONFIG_PPP is not set | 680 | # CONFIG_PPP is not set |
689 | # CONFIG_SLIP is not set | 681 | # CONFIG_SLIP is not set |
682 | # CONFIG_NET_FC is not set | ||
690 | # CONFIG_SHAPER is not set | 683 | # CONFIG_SHAPER is not set |
691 | # CONFIG_NETCONSOLE is not set | 684 | # CONFIG_NETCONSOLE is not set |
692 | # CONFIG_NETPOLL is not set | 685 | # CONFIG_NETPOLL is not set |
@@ -711,10 +704,7 @@ CONFIG_INPUT=y | |||
711 | # | 704 | # |
712 | # Userland interfaces | 705 | # Userland interfaces |
713 | # | 706 | # |
714 | CONFIG_INPUT_MOUSEDEV=y | 707 | # CONFIG_INPUT_MOUSEDEV is not set |
715 | CONFIG_INPUT_MOUSEDEV_PSAUX=y | ||
716 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
717 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
718 | # CONFIG_INPUT_JOYDEV is not set | 708 | # CONFIG_INPUT_JOYDEV is not set |
719 | # CONFIG_INPUT_TSDEV is not set | 709 | # CONFIG_INPUT_TSDEV is not set |
720 | # CONFIG_INPUT_EVDEV is not set | 710 | # CONFIG_INPUT_EVDEV is not set |
@@ -726,18 +716,23 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | |||
726 | # CONFIG_INPUT_KEYBOARD is not set | 716 | # CONFIG_INPUT_KEYBOARD is not set |
727 | # CONFIG_INPUT_MOUSE is not set | 717 | # CONFIG_INPUT_MOUSE is not set |
728 | # CONFIG_INPUT_JOYSTICK is not set | 718 | # CONFIG_INPUT_JOYSTICK is not set |
719 | # CONFIG_INPUT_TABLET is not set | ||
729 | # CONFIG_INPUT_TOUCHSCREEN is not set | 720 | # CONFIG_INPUT_TOUCHSCREEN is not set |
730 | # CONFIG_INPUT_MISC is not set | 721 | CONFIG_INPUT_MISC=y |
722 | # CONFIG_INPUT_PCSPKR is not set | ||
723 | CONFIG_INPUT_COBALT_BTNS=y | ||
724 | # CONFIG_INPUT_ATI_REMOTE is not set | ||
725 | # CONFIG_INPUT_ATI_REMOTE2 is not set | ||
726 | # CONFIG_INPUT_KEYSPAN_REMOTE is not set | ||
727 | # CONFIG_INPUT_POWERMATE is not set | ||
728 | # CONFIG_INPUT_YEALINK is not set | ||
729 | # CONFIG_INPUT_UINPUT is not set | ||
730 | CONFIG_INPUT_POLLDEV=y | ||
731 | 731 | ||
732 | # | 732 | # |
733 | # Hardware I/O ports | 733 | # Hardware I/O ports |
734 | # | 734 | # |
735 | CONFIG_SERIO=y | 735 | # CONFIG_SERIO is not set |
736 | # CONFIG_SERIO_I8042 is not set | ||
737 | CONFIG_SERIO_SERPORT=y | ||
738 | # CONFIG_SERIO_PCIPS2 is not set | ||
739 | # CONFIG_SERIO_LIBPS2 is not set | ||
740 | CONFIG_SERIO_RAW=y | ||
741 | # CONFIG_GAMEPORT is not set | 736 | # CONFIG_GAMEPORT is not set |
742 | 737 | ||
743 | # | 738 | # |
@@ -754,7 +749,7 @@ CONFIG_VT_HW_CONSOLE_BINDING=y | |||
754 | # | 749 | # |
755 | CONFIG_SERIAL_8250=y | 750 | CONFIG_SERIAL_8250=y |
756 | CONFIG_SERIAL_8250_CONSOLE=y | 751 | CONFIG_SERIAL_8250_CONSOLE=y |
757 | CONFIG_SERIAL_8250_PCI=y | 752 | # CONFIG_SERIAL_8250_PCI is not set |
758 | CONFIG_SERIAL_8250_NR_UARTS=4 | 753 | CONFIG_SERIAL_8250_NR_UARTS=4 |
759 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | 754 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 |
760 | # CONFIG_SERIAL_8250_EXTENDED is not set | 755 | # CONFIG_SERIAL_8250_EXTENDED is not set |
@@ -773,16 +768,11 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
773 | # IPMI | 768 | # IPMI |
774 | # | 769 | # |
775 | # CONFIG_IPMI_HANDLER is not set | 770 | # CONFIG_IPMI_HANDLER is not set |
776 | |||
777 | # | ||
778 | # Watchdog Cards | ||
779 | # | ||
780 | # CONFIG_WATCHDOG is not set | 771 | # CONFIG_WATCHDOG is not set |
781 | # CONFIG_HW_RANDOM is not set | 772 | # CONFIG_HW_RANDOM is not set |
782 | # CONFIG_RTC is not set | 773 | # CONFIG_RTC is not set |
783 | # CONFIG_GEN_RTC is not set | 774 | # CONFIG_GEN_RTC is not set |
784 | CONFIG_COBALT_LCD=y | 775 | CONFIG_COBALT_LCD=y |
785 | # CONFIG_DTLK is not set | ||
786 | # CONFIG_R3964 is not set | 776 | # CONFIG_R3964 is not set |
787 | # CONFIG_APPLICOM is not set | 777 | # CONFIG_APPLICOM is not set |
788 | # CONFIG_DRM is not set | 778 | # CONFIG_DRM is not set |
@@ -792,10 +782,7 @@ CONFIG_COBALT_LCD=y | |||
792 | # TPM devices | 782 | # TPM devices |
793 | # | 783 | # |
794 | # CONFIG_TCG_TPM is not set | 784 | # CONFIG_TCG_TPM is not set |
795 | 785 | CONFIG_DEVPORT=y | |
796 | # | ||
797 | # I2C support | ||
798 | # | ||
799 | # CONFIG_I2C is not set | 786 | # CONFIG_I2C is not set |
800 | 787 | ||
801 | # | 788 | # |
@@ -808,12 +795,7 @@ CONFIG_COBALT_LCD=y | |||
808 | # Dallas's 1-wire bus | 795 | # Dallas's 1-wire bus |
809 | # | 796 | # |
810 | # CONFIG_W1 is not set | 797 | # CONFIG_W1 is not set |
811 | |||
812 | # | ||
813 | # Hardware Monitoring support | ||
814 | # | ||
815 | # CONFIG_HWMON is not set | 798 | # CONFIG_HWMON is not set |
816 | # CONFIG_HWMON_VID is not set | ||
817 | 799 | ||
818 | # | 800 | # |
819 | # Multifunction device drivers | 801 | # Multifunction device drivers |
@@ -824,16 +806,19 @@ CONFIG_COBALT_LCD=y | |||
824 | # Multimedia devices | 806 | # Multimedia devices |
825 | # | 807 | # |
826 | # CONFIG_VIDEO_DEV is not set | 808 | # CONFIG_VIDEO_DEV is not set |
809 | # CONFIG_DVB_CORE is not set | ||
810 | # CONFIG_DAB is not set | ||
827 | 811 | ||
828 | # | 812 | # |
829 | # Digital Video Broadcasting Devices | 813 | # Graphics support |
830 | # | 814 | # |
831 | # CONFIG_DVB is not set | 815 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
832 | 816 | ||
833 | # | 817 | # |
834 | # Graphics support | 818 | # Display device support |
835 | # | 819 | # |
836 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 820 | # CONFIG_DISPLAY_SUPPORT is not set |
821 | # CONFIG_VGASTATE is not set | ||
837 | # CONFIG_FB is not set | 822 | # CONFIG_FB is not set |
838 | 823 | ||
839 | # | 824 | # |
@@ -868,10 +853,6 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
868 | # USB Gadget Support | 853 | # USB Gadget Support |
869 | # | 854 | # |
870 | # CONFIG_USB_GADGET is not set | 855 | # CONFIG_USB_GADGET is not set |
871 | |||
872 | # | ||
873 | # MMC/SD Card support | ||
874 | # | ||
875 | # CONFIG_MMC is not set | 856 | # CONFIG_MMC is not set |
876 | 857 | ||
877 | # | 858 | # |
@@ -912,18 +893,30 @@ CONFIG_RTC_INTF_SYSFS=y | |||
912 | CONFIG_RTC_INTF_PROC=y | 893 | CONFIG_RTC_INTF_PROC=y |
913 | CONFIG_RTC_INTF_DEV=y | 894 | CONFIG_RTC_INTF_DEV=y |
914 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | 895 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set |
896 | # CONFIG_RTC_DRV_TEST is not set | ||
915 | 897 | ||
916 | # | 898 | # |
917 | # RTC drivers | 899 | # I2C RTC drivers |
900 | # | ||
901 | |||
902 | # | ||
903 | # SPI RTC drivers | ||
904 | # | ||
905 | |||
906 | # | ||
907 | # Platform RTC drivers | ||
918 | # | 908 | # |
919 | CONFIG_RTC_DRV_CMOS=y | 909 | CONFIG_RTC_DRV_CMOS=y |
920 | # CONFIG_RTC_DRV_DS1553 is not set | 910 | # CONFIG_RTC_DRV_DS1553 is not set |
921 | # CONFIG_RTC_DRV_DS1742 is not set | 911 | # CONFIG_RTC_DRV_DS1742 is not set |
922 | # CONFIG_RTC_DRV_M48T86 is not set | 912 | # CONFIG_RTC_DRV_M48T86 is not set |
923 | # CONFIG_RTC_DRV_TEST is not set | ||
924 | # CONFIG_RTC_DRV_V3020 is not set | 913 | # CONFIG_RTC_DRV_V3020 is not set |
925 | 914 | ||
926 | # | 915 | # |
916 | # on-CPU RTC drivers | ||
917 | # | ||
918 | |||
919 | # | ||
927 | # DMA Engine support | 920 | # DMA Engine support |
928 | # | 921 | # |
929 | # CONFIG_DMA_ENGINE is not set | 922 | # CONFIG_DMA_ENGINE is not set |
@@ -937,14 +930,6 @@ CONFIG_RTC_DRV_CMOS=y | |||
937 | # | 930 | # |
938 | 931 | ||
939 | # | 932 | # |
940 | # Auxiliary Display support | ||
941 | # | ||
942 | |||
943 | # | ||
944 | # Virtualization | ||
945 | # | ||
946 | |||
947 | # | ||
948 | # File systems | 933 | # File systems |
949 | # | 934 | # |
950 | CONFIG_EXT2_FS=y | 935 | CONFIG_EXT2_FS=y |
@@ -952,8 +937,13 @@ CONFIG_EXT2_FS_XATTR=y | |||
952 | CONFIG_EXT2_FS_POSIX_ACL=y | 937 | CONFIG_EXT2_FS_POSIX_ACL=y |
953 | CONFIG_EXT2_FS_SECURITY=y | 938 | CONFIG_EXT2_FS_SECURITY=y |
954 | # CONFIG_EXT2_FS_XIP is not set | 939 | # CONFIG_EXT2_FS_XIP is not set |
955 | # CONFIG_EXT3_FS is not set | 940 | CONFIG_EXT3_FS=y |
941 | CONFIG_EXT3_FS_XATTR=y | ||
942 | CONFIG_EXT3_FS_POSIX_ACL=y | ||
943 | CONFIG_EXT3_FS_SECURITY=y | ||
956 | # CONFIG_EXT4DEV_FS is not set | 944 | # CONFIG_EXT4DEV_FS is not set |
945 | CONFIG_JBD=y | ||
946 | # CONFIG_JBD_DEBUG is not set | ||
957 | CONFIG_FS_MBCACHE=y | 947 | CONFIG_FS_MBCACHE=y |
958 | # CONFIG_REISERFS_FS is not set | 948 | # CONFIG_REISERFS_FS is not set |
959 | # CONFIG_JFS_FS is not set | 949 | # CONFIG_JFS_FS is not set |
@@ -969,7 +959,7 @@ CONFIG_INOTIFY_USER=y | |||
969 | CONFIG_DNOTIFY=y | 959 | CONFIG_DNOTIFY=y |
970 | # CONFIG_AUTOFS_FS is not set | 960 | # CONFIG_AUTOFS_FS is not set |
971 | # CONFIG_AUTOFS4_FS is not set | 961 | # CONFIG_AUTOFS4_FS is not set |
972 | CONFIG_FUSE_FS=y | 962 | # CONFIG_FUSE_FS is not set |
973 | CONFIG_GENERIC_ACL=y | 963 | CONFIG_GENERIC_ACL=y |
974 | 964 | ||
975 | # | 965 | # |
@@ -1003,7 +993,6 @@ CONFIG_CONFIGFS_FS=y | |||
1003 | # | 993 | # |
1004 | # CONFIG_ADFS_FS is not set | 994 | # CONFIG_ADFS_FS is not set |
1005 | # CONFIG_AFFS_FS is not set | 995 | # CONFIG_AFFS_FS is not set |
1006 | # CONFIG_ECRYPT_FS is not set | ||
1007 | # CONFIG_HFS_FS is not set | 996 | # CONFIG_HFS_FS is not set |
1008 | # CONFIG_HFSPLUS_FS is not set | 997 | # CONFIG_HFSPLUS_FS is not set |
1009 | # CONFIG_BEFS_FS is not set | 998 | # CONFIG_BEFS_FS is not set |
@@ -1021,13 +1010,23 @@ CONFIG_CONFIGFS_FS=y | |||
1021 | # Network File Systems | 1010 | # Network File Systems |
1022 | # | 1011 | # |
1023 | CONFIG_NFS_FS=y | 1012 | CONFIG_NFS_FS=y |
1024 | # CONFIG_NFS_V3 is not set | 1013 | CONFIG_NFS_V3=y |
1014 | CONFIG_NFS_V3_ACL=y | ||
1025 | # CONFIG_NFS_V4 is not set | 1015 | # CONFIG_NFS_V4 is not set |
1026 | # CONFIG_NFS_DIRECTIO is not set | 1016 | # CONFIG_NFS_DIRECTIO is not set |
1027 | # CONFIG_NFSD is not set | 1017 | CONFIG_NFSD=y |
1018 | CONFIG_NFSD_V2_ACL=y | ||
1019 | CONFIG_NFSD_V3=y | ||
1020 | CONFIG_NFSD_V3_ACL=y | ||
1021 | # CONFIG_NFSD_V4 is not set | ||
1022 | CONFIG_NFSD_TCP=y | ||
1028 | CONFIG_LOCKD=y | 1023 | CONFIG_LOCKD=y |
1024 | CONFIG_LOCKD_V4=y | ||
1025 | CONFIG_EXPORTFS=y | ||
1026 | CONFIG_NFS_ACL_SUPPORT=y | ||
1029 | CONFIG_NFS_COMMON=y | 1027 | CONFIG_NFS_COMMON=y |
1030 | CONFIG_SUNRPC=y | 1028 | CONFIG_SUNRPC=y |
1029 | # CONFIG_SUNRPC_BIND34 is not set | ||
1031 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 1030 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
1032 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1031 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1033 | # CONFIG_SMB_FS is not set | 1032 | # CONFIG_SMB_FS is not set |
@@ -1051,10 +1050,7 @@ CONFIG_MSDOS_PARTITION=y | |||
1051 | # | 1050 | # |
1052 | # Distributed Lock Manager | 1051 | # Distributed Lock Manager |
1053 | # | 1052 | # |
1054 | CONFIG_DLM=y | 1053 | # CONFIG_DLM is not set |
1055 | CONFIG_DLM_TCP=y | ||
1056 | # CONFIG_DLM_SCTP is not set | ||
1057 | # CONFIG_DLM_DEBUG is not set | ||
1058 | 1054 | ||
1059 | # | 1055 | # |
1060 | # Profiling support | 1056 | # Profiling support |
@@ -1072,72 +1068,30 @@ CONFIG_ENABLE_MUST_CHECK=y | |||
1072 | # CONFIG_DEBUG_FS is not set | 1068 | # CONFIG_DEBUG_FS is not set |
1073 | # CONFIG_HEADERS_CHECK is not set | 1069 | # CONFIG_HEADERS_CHECK is not set |
1074 | # CONFIG_DEBUG_KERNEL is not set | 1070 | # CONFIG_DEBUG_KERNEL is not set |
1075 | CONFIG_LOG_BUF_SHIFT=14 | ||
1076 | CONFIG_CROSSCOMPILE=y | 1071 | CONFIG_CROSSCOMPILE=y |
1077 | CONFIG_CMDLINE="" | 1072 | CONFIG_CMDLINE="" |
1078 | 1073 | ||
1079 | # | 1074 | # |
1080 | # Security options | 1075 | # Security options |
1081 | # | 1076 | # |
1082 | CONFIG_KEYS=y | 1077 | # CONFIG_KEYS is not set |
1083 | CONFIG_KEYS_DEBUG_PROC_KEYS=y | ||
1084 | # CONFIG_SECURITY is not set | 1078 | # CONFIG_SECURITY is not set |
1085 | 1079 | ||
1086 | # | 1080 | # |
1087 | # Cryptographic options | 1081 | # Cryptographic options |
1088 | # | 1082 | # |
1089 | CONFIG_CRYPTO=y | 1083 | # CONFIG_CRYPTO is not set |
1090 | CONFIG_CRYPTO_ALGAPI=y | ||
1091 | CONFIG_CRYPTO_BLKCIPHER=y | ||
1092 | CONFIG_CRYPTO_HASH=y | ||
1093 | CONFIG_CRYPTO_MANAGER=y | ||
1094 | CONFIG_CRYPTO_HMAC=y | ||
1095 | CONFIG_CRYPTO_XCBC=y | ||
1096 | CONFIG_CRYPTO_NULL=y | ||
1097 | CONFIG_CRYPTO_MD4=y | ||
1098 | CONFIG_CRYPTO_MD5=y | ||
1099 | CONFIG_CRYPTO_SHA1=y | ||
1100 | CONFIG_CRYPTO_SHA256=y | ||
1101 | CONFIG_CRYPTO_SHA512=y | ||
1102 | CONFIG_CRYPTO_WP512=y | ||
1103 | CONFIG_CRYPTO_TGR192=y | ||
1104 | CONFIG_CRYPTO_GF128MUL=y | ||
1105 | CONFIG_CRYPTO_ECB=y | ||
1106 | CONFIG_CRYPTO_CBC=y | ||
1107 | CONFIG_CRYPTO_PCBC=y | ||
1108 | CONFIG_CRYPTO_LRW=y | ||
1109 | CONFIG_CRYPTO_DES=y | ||
1110 | CONFIG_CRYPTO_FCRYPT=y | ||
1111 | CONFIG_CRYPTO_BLOWFISH=y | ||
1112 | CONFIG_CRYPTO_TWOFISH=y | ||
1113 | CONFIG_CRYPTO_TWOFISH_COMMON=y | ||
1114 | CONFIG_CRYPTO_SERPENT=y | ||
1115 | CONFIG_CRYPTO_AES=y | ||
1116 | CONFIG_CRYPTO_CAST5=y | ||
1117 | CONFIG_CRYPTO_CAST6=y | ||
1118 | CONFIG_CRYPTO_TEA=y | ||
1119 | CONFIG_CRYPTO_ARC4=y | ||
1120 | CONFIG_CRYPTO_KHAZAD=y | ||
1121 | CONFIG_CRYPTO_ANUBIS=y | ||
1122 | CONFIG_CRYPTO_DEFLATE=y | ||
1123 | CONFIG_CRYPTO_MICHAEL_MIC=y | ||
1124 | CONFIG_CRYPTO_CRC32C=y | ||
1125 | CONFIG_CRYPTO_CAMELLIA=y | ||
1126 | |||
1127 | # | ||
1128 | # Hardware crypto devices | ||
1129 | # | ||
1130 | 1084 | ||
1131 | # | 1085 | # |
1132 | # Library routines | 1086 | # Library routines |
1133 | # | 1087 | # |
1134 | CONFIG_BITREVERSE=y | 1088 | CONFIG_BITREVERSE=y |
1135 | # CONFIG_CRC_CCITT is not set | 1089 | # CONFIG_CRC_CCITT is not set |
1136 | CONFIG_CRC16=y | 1090 | # CONFIG_CRC16 is not set |
1091 | # CONFIG_CRC_ITU_T is not set | ||
1137 | CONFIG_CRC32=y | 1092 | CONFIG_CRC32=y |
1138 | CONFIG_LIBCRC32C=y | 1093 | CONFIG_LIBCRC32C=y |
1139 | CONFIG_ZLIB_INFLATE=y | ||
1140 | CONFIG_ZLIB_DEFLATE=y | ||
1141 | CONFIG_PLIST=y | 1094 | CONFIG_PLIST=y |
1142 | CONFIG_HAS_IOMEM=y | 1095 | CONFIG_HAS_IOMEM=y |
1143 | CONFIG_HAS_IOPORT=y | 1096 | CONFIG_HAS_IOPORT=y |
1097 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/mips/configs/db1000_defconfig b/arch/mips/configs/db1000_defconfig index 10f6af43753d..ec60beb888b2 100644 --- a/arch/mips/configs/db1000_defconfig +++ b/arch/mips/configs/db1000_defconfig | |||
@@ -26,9 +26,7 @@ CONFIG_MIPS_DB1000=y | |||
26 | # CONFIG_BASLER_EXCITE is not set | 26 | # CONFIG_BASLER_EXCITE is not set |
27 | # CONFIG_MIPS_COBALT is not set | 27 | # CONFIG_MIPS_COBALT is not set |
28 | # CONFIG_MACH_DECSTATION is not set | 28 | # CONFIG_MACH_DECSTATION is not set |
29 | # CONFIG_MIPS_EV64120 is not set | ||
30 | # CONFIG_MACH_JAZZ is not set | 29 | # CONFIG_MACH_JAZZ is not set |
31 | # CONFIG_LASAT is not set | ||
32 | # CONFIG_MIPS_ATLAS is not set | 30 | # CONFIG_MIPS_ATLAS is not set |
33 | # CONFIG_MIPS_MALTA is not set | 31 | # CONFIG_MIPS_MALTA is not set |
34 | # CONFIG_MIPS_SEAD is not set | 32 | # CONFIG_MIPS_SEAD is not set |
@@ -36,8 +34,6 @@ CONFIG_MIPS_DB1000=y | |||
36 | # CONFIG_MIPS_SIM is not set | 34 | # CONFIG_MIPS_SIM is not set |
37 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 35 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
38 | # CONFIG_MOMENCO_OCELOT is not set | 36 | # CONFIG_MOMENCO_OCELOT is not set |
39 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
41 | # CONFIG_MOMENCO_OCELOT_G is not set | 37 | # CONFIG_MOMENCO_OCELOT_G is not set |
42 | # CONFIG_MIPS_XXS1500 is not set | 38 | # CONFIG_MIPS_XXS1500 is not set |
43 | # CONFIG_PNX8550_JBS is not set | 39 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/db1100_defconfig b/arch/mips/configs/db1100_defconfig index 4b0862927748..f3c25f08bfad 100644 --- a/arch/mips/configs/db1100_defconfig +++ b/arch/mips/configs/db1100_defconfig | |||
@@ -26,9 +26,7 @@ CONFIG_MIPS_DB1100=y | |||
26 | # CONFIG_BASLER_EXCITE is not set | 26 | # CONFIG_BASLER_EXCITE is not set |
27 | # CONFIG_MIPS_COBALT is not set | 27 | # CONFIG_MIPS_COBALT is not set |
28 | # CONFIG_MACH_DECSTATION is not set | 28 | # CONFIG_MACH_DECSTATION is not set |
29 | # CONFIG_MIPS_EV64120 is not set | ||
30 | # CONFIG_MACH_JAZZ is not set | 29 | # CONFIG_MACH_JAZZ is not set |
31 | # CONFIG_LASAT is not set | ||
32 | # CONFIG_MIPS_ATLAS is not set | 30 | # CONFIG_MIPS_ATLAS is not set |
33 | # CONFIG_MIPS_MALTA is not set | 31 | # CONFIG_MIPS_MALTA is not set |
34 | # CONFIG_MIPS_SEAD is not set | 32 | # CONFIG_MIPS_SEAD is not set |
@@ -36,8 +34,6 @@ CONFIG_MIPS_DB1100=y | |||
36 | # CONFIG_MIPS_SIM is not set | 34 | # CONFIG_MIPS_SIM is not set |
37 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 35 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
38 | # CONFIG_MOMENCO_OCELOT is not set | 36 | # CONFIG_MOMENCO_OCELOT is not set |
39 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
41 | # CONFIG_MOMENCO_OCELOT_G is not set | 37 | # CONFIG_MOMENCO_OCELOT_G is not set |
42 | # CONFIG_MIPS_XXS1500 is not set | 38 | # CONFIG_MIPS_XXS1500 is not set |
43 | # CONFIG_PNX8550_JBS is not set | 39 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/db1200_defconfig b/arch/mips/configs/db1200_defconfig index 820659e810dc..6d400befbacc 100644 --- a/arch/mips/configs/db1200_defconfig +++ b/arch/mips/configs/db1200_defconfig | |||
@@ -26,9 +26,7 @@ CONFIG_MIPS_DB1200=y | |||
26 | # CONFIG_BASLER_EXCITE is not set | 26 | # CONFIG_BASLER_EXCITE is not set |
27 | # CONFIG_MIPS_COBALT is not set | 27 | # CONFIG_MIPS_COBALT is not set |
28 | # CONFIG_MACH_DECSTATION is not set | 28 | # CONFIG_MACH_DECSTATION is not set |
29 | # CONFIG_MIPS_EV64120 is not set | ||
30 | # CONFIG_MACH_JAZZ is not set | 29 | # CONFIG_MACH_JAZZ is not set |
31 | # CONFIG_LASAT is not set | ||
32 | # CONFIG_MIPS_ATLAS is not set | 30 | # CONFIG_MIPS_ATLAS is not set |
33 | # CONFIG_MIPS_MALTA is not set | 31 | # CONFIG_MIPS_MALTA is not set |
34 | # CONFIG_MIPS_SEAD is not set | 32 | # CONFIG_MIPS_SEAD is not set |
@@ -36,8 +34,6 @@ CONFIG_MIPS_DB1200=y | |||
36 | # CONFIG_MIPS_SIM is not set | 34 | # CONFIG_MIPS_SIM is not set |
37 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 35 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
38 | # CONFIG_MOMENCO_OCELOT is not set | 36 | # CONFIG_MOMENCO_OCELOT is not set |
39 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
41 | # CONFIG_MOMENCO_OCELOT_G is not set | 37 | # CONFIG_MOMENCO_OCELOT_G is not set |
42 | # CONFIG_MIPS_XXS1500 is not set | 38 | # CONFIG_MIPS_XXS1500 is not set |
43 | # CONFIG_PNX8550_JBS is not set | 39 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/db1500_defconfig b/arch/mips/configs/db1500_defconfig index 4050b9b91bcb..82aea6e08823 100644 --- a/arch/mips/configs/db1500_defconfig +++ b/arch/mips/configs/db1500_defconfig | |||
@@ -26,9 +26,7 @@ CONFIG_MIPS_DB1500=y | |||
26 | # CONFIG_BASLER_EXCITE is not set | 26 | # CONFIG_BASLER_EXCITE is not set |
27 | # CONFIG_MIPS_COBALT is not set | 27 | # CONFIG_MIPS_COBALT is not set |
28 | # CONFIG_MACH_DECSTATION is not set | 28 | # CONFIG_MACH_DECSTATION is not set |
29 | # CONFIG_MIPS_EV64120 is not set | ||
30 | # CONFIG_MACH_JAZZ is not set | 29 | # CONFIG_MACH_JAZZ is not set |
31 | # CONFIG_LASAT is not set | ||
32 | # CONFIG_MIPS_ATLAS is not set | 30 | # CONFIG_MIPS_ATLAS is not set |
33 | # CONFIG_MIPS_MALTA is not set | 31 | # CONFIG_MIPS_MALTA is not set |
34 | # CONFIG_MIPS_SEAD is not set | 32 | # CONFIG_MIPS_SEAD is not set |
@@ -36,8 +34,6 @@ CONFIG_MIPS_DB1500=y | |||
36 | # CONFIG_MIPS_SIM is not set | 34 | # CONFIG_MIPS_SIM is not set |
37 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 35 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
38 | # CONFIG_MOMENCO_OCELOT is not set | 36 | # CONFIG_MOMENCO_OCELOT is not set |
39 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
41 | # CONFIG_MOMENCO_OCELOT_G is not set | 37 | # CONFIG_MOMENCO_OCELOT_G is not set |
42 | # CONFIG_MIPS_XXS1500 is not set | 38 | # CONFIG_MIPS_XXS1500 is not set |
43 | # CONFIG_PNX8550_JBS is not set | 39 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/db1550_defconfig b/arch/mips/configs/db1550_defconfig index 7b3519058ab8..82697714a9e3 100644 --- a/arch/mips/configs/db1550_defconfig +++ b/arch/mips/configs/db1550_defconfig | |||
@@ -26,9 +26,7 @@ CONFIG_MIPS_DB1550=y | |||
26 | # CONFIG_BASLER_EXCITE is not set | 26 | # CONFIG_BASLER_EXCITE is not set |
27 | # CONFIG_MIPS_COBALT is not set | 27 | # CONFIG_MIPS_COBALT is not set |
28 | # CONFIG_MACH_DECSTATION is not set | 28 | # CONFIG_MACH_DECSTATION is not set |
29 | # CONFIG_MIPS_EV64120 is not set | ||
30 | # CONFIG_MACH_JAZZ is not set | 29 | # CONFIG_MACH_JAZZ is not set |
31 | # CONFIG_LASAT is not set | ||
32 | # CONFIG_MIPS_ATLAS is not set | 30 | # CONFIG_MIPS_ATLAS is not set |
33 | # CONFIG_MIPS_MALTA is not set | 31 | # CONFIG_MIPS_MALTA is not set |
34 | # CONFIG_MIPS_SEAD is not set | 32 | # CONFIG_MIPS_SEAD is not set |
@@ -36,8 +34,6 @@ CONFIG_MIPS_DB1550=y | |||
36 | # CONFIG_MIPS_SIM is not set | 34 | # CONFIG_MIPS_SIM is not set |
37 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 35 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
38 | # CONFIG_MOMENCO_OCELOT is not set | 36 | # CONFIG_MOMENCO_OCELOT is not set |
39 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
41 | # CONFIG_MOMENCO_OCELOT_G is not set | 37 | # CONFIG_MOMENCO_OCELOT_G is not set |
42 | # CONFIG_MIPS_XXS1500 is not set | 38 | # CONFIG_MIPS_XXS1500 is not set |
43 | # CONFIG_PNX8550_JBS is not set | 39 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/ddb5477_defconfig b/arch/mips/configs/ddb5477_defconfig index 5b502a2013fb..a42ab9ae7d4b 100644 --- a/arch/mips/configs/ddb5477_defconfig +++ b/arch/mips/configs/ddb5477_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_ZONE_DMA=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/decstation_defconfig b/arch/mips/configs/decstation_defconfig index 4bbdab078ff1..d6e3fffbc80d 100644 --- a/arch/mips/configs/decstation_defconfig +++ b/arch/mips/configs/decstation_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | CONFIG_MACH_DECSTATION=y | 27 | CONFIG_MACH_DECSTATION=y |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_MACH_DECSTATION=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/e55_defconfig b/arch/mips/configs/e55_defconfig index b5714a6a5398..78f5004fb721 100644 --- a/arch/mips/configs/e55_defconfig +++ b/arch/mips/configs/e55_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_ZONE_DMA=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/emma2rh_defconfig b/arch/mips/configs/emma2rh_defconfig index 2e3e155b4c55..b29bff0f56c3 100644 --- a/arch/mips/configs/emma2rh_defconfig +++ b/arch/mips/configs/emma2rh_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_ZONE_DMA=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/ev64120_defconfig b/arch/mips/configs/ev64120_defconfig deleted file mode 100644 index c10e4e063226..000000000000 --- a/arch/mips/configs/ev64120_defconfig +++ /dev/null | |||
@@ -1,985 +0,0 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.20 | ||
4 | # Tue Feb 20 21:47:30 2007 | ||
5 | # | ||
6 | CONFIG_MIPS=y | ||
7 | |||
8 | # | ||
9 | # Machine selection | ||
10 | # | ||
11 | CONFIG_ZONE_DMA=y | ||
12 | # CONFIG_MIPS_MTX1 is not set | ||
13 | # CONFIG_MIPS_BOSPORUS is not set | ||
14 | # CONFIG_MIPS_PB1000 is not set | ||
15 | # CONFIG_MIPS_PB1100 is not set | ||
16 | # CONFIG_MIPS_PB1500 is not set | ||
17 | # CONFIG_MIPS_PB1550 is not set | ||
18 | # CONFIG_MIPS_PB1200 is not set | ||
19 | # CONFIG_MIPS_DB1000 is not set | ||
20 | # CONFIG_MIPS_DB1100 is not set | ||
21 | # CONFIG_MIPS_DB1500 is not set | ||
22 | # CONFIG_MIPS_DB1550 is not set | ||
23 | # CONFIG_MIPS_DB1200 is not set | ||
24 | # CONFIG_MIPS_MIRAGE is not set | ||
25 | # CONFIG_BASLER_EXCITE is not set | ||
26 | # CONFIG_MIPS_COBALT is not set | ||
27 | # CONFIG_MACH_DECSTATION is not set | ||
28 | CONFIG_MIPS_EV64120=y | ||
29 | # CONFIG_MACH_JAZZ is not set | ||
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | ||
32 | # CONFIG_MIPS_MALTA is not set | ||
33 | # CONFIG_MIPS_SEAD is not set | ||
34 | # CONFIG_WR_PPMC is not set | ||
35 | # CONFIG_MIPS_SIM is not set | ||
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | ||
37 | # CONFIG_MOMENCO_OCELOT is not set | ||
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | ||
41 | # CONFIG_MIPS_XXS1500 is not set | ||
42 | # CONFIG_PNX8550_JBS is not set | ||
43 | # CONFIG_PNX8550_STB810 is not set | ||
44 | # CONFIG_DDB5477 is not set | ||
45 | # CONFIG_MACH_VR41XX is not set | ||
46 | # CONFIG_PMC_YOSEMITE is not set | ||
47 | # CONFIG_QEMU is not set | ||
48 | # CONFIG_MARKEINS is not set | ||
49 | # CONFIG_SGI_IP22 is not set | ||
50 | # CONFIG_SGI_IP27 is not set | ||
51 | # CONFIG_SGI_IP32 is not set | ||
52 | # CONFIG_SIBYTE_BIGSUR is not set | ||
53 | # CONFIG_SIBYTE_SWARM is not set | ||
54 | # CONFIG_SIBYTE_SENTOSA is not set | ||
55 | # CONFIG_SIBYTE_RHONE is not set | ||
56 | # CONFIG_SIBYTE_CARMEL is not set | ||
57 | # CONFIG_SIBYTE_PTSWARM is not set | ||
58 | # CONFIG_SIBYTE_LITTLESUR is not set | ||
59 | # CONFIG_SIBYTE_CRHINE is not set | ||
60 | # CONFIG_SIBYTE_CRHONE is not set | ||
61 | # CONFIG_SNI_RM is not set | ||
62 | # CONFIG_TOSHIBA_JMR3927 is not set | ||
63 | # CONFIG_TOSHIBA_RBTX4927 is not set | ||
64 | # CONFIG_TOSHIBA_RBTX4938 is not set | ||
65 | # CONFIG_EVB_PCI1 is not set | ||
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
67 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
68 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
69 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
70 | CONFIG_GENERIC_HWEIGHT=y | ||
71 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
72 | CONFIG_GENERIC_TIME=y | ||
73 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | ||
74 | # CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set | ||
75 | CONFIG_DMA_NONCOHERENT=y | ||
76 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | ||
77 | CONFIG_CPU_BIG_ENDIAN=y | ||
78 | # CONFIG_CPU_LITTLE_ENDIAN is not set | ||
79 | CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y | ||
80 | CONFIG_MIPS_GT64120=y | ||
81 | # CONFIG_SYSCLK_75 is not set | ||
82 | # CONFIG_SYSCLK_83 is not set | ||
83 | CONFIG_SYSCLK_100=y | ||
84 | CONFIG_MIPS_L1_CACHE_SHIFT=5 | ||
85 | |||
86 | # | ||
87 | # CPU selection | ||
88 | # | ||
89 | # CONFIG_CPU_MIPS32_R1 is not set | ||
90 | # CONFIG_CPU_MIPS32_R2 is not set | ||
91 | # CONFIG_CPU_MIPS64_R1 is not set | ||
92 | # CONFIG_CPU_MIPS64_R2 is not set | ||
93 | # CONFIG_CPU_R3000 is not set | ||
94 | # CONFIG_CPU_TX39XX is not set | ||
95 | # CONFIG_CPU_VR41XX is not set | ||
96 | # CONFIG_CPU_R4300 is not set | ||
97 | # CONFIG_CPU_R4X00 is not set | ||
98 | # CONFIG_CPU_TX49XX is not set | ||
99 | CONFIG_CPU_R5000=y | ||
100 | # CONFIG_CPU_R5432 is not set | ||
101 | # CONFIG_CPU_R6000 is not set | ||
102 | # CONFIG_CPU_NEVADA is not set | ||
103 | # CONFIG_CPU_R8000 is not set | ||
104 | # CONFIG_CPU_R10000 is not set | ||
105 | # CONFIG_CPU_RM7000 is not set | ||
106 | # CONFIG_CPU_RM9000 is not set | ||
107 | # CONFIG_CPU_SB1 is not set | ||
108 | CONFIG_SYS_HAS_CPU_R5000=y | ||
109 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y | ||
110 | CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y | ||
111 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y | ||
112 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y | ||
113 | |||
114 | # | ||
115 | # Kernel type | ||
116 | # | ||
117 | CONFIG_32BIT=y | ||
118 | # CONFIG_64BIT is not set | ||
119 | CONFIG_PAGE_SIZE_4KB=y | ||
120 | # CONFIG_PAGE_SIZE_8KB is not set | ||
121 | # CONFIG_PAGE_SIZE_16KB is not set | ||
122 | # CONFIG_PAGE_SIZE_64KB is not set | ||
123 | CONFIG_MIPS_MT_DISABLED=y | ||
124 | # CONFIG_MIPS_MT_SMP is not set | ||
125 | # CONFIG_MIPS_MT_SMTC is not set | ||
126 | # CONFIG_MIPS_VPE_LOADER is not set | ||
127 | # CONFIG_64BIT_PHYS_ADDR is not set | ||
128 | CONFIG_CPU_HAS_LLSC=y | ||
129 | CONFIG_CPU_HAS_SYNC=y | ||
130 | CONFIG_GENERIC_HARDIRQS=y | ||
131 | CONFIG_GENERIC_IRQ_PROBE=y | ||
132 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
133 | CONFIG_SELECT_MEMORY_MODEL=y | ||
134 | CONFIG_FLATMEM_MANUAL=y | ||
135 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
136 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
137 | CONFIG_FLATMEM=y | ||
138 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
139 | # CONFIG_SPARSEMEM_STATIC is not set | ||
140 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
141 | # CONFIG_RESOURCES_64BIT is not set | ||
142 | CONFIG_ZONE_DMA_FLAG=1 | ||
143 | # CONFIG_HZ_48 is not set | ||
144 | # CONFIG_HZ_100 is not set | ||
145 | # CONFIG_HZ_128 is not set | ||
146 | # CONFIG_HZ_250 is not set | ||
147 | # CONFIG_HZ_256 is not set | ||
148 | CONFIG_HZ_1000=y | ||
149 | # CONFIG_HZ_1024 is not set | ||
150 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y | ||
151 | CONFIG_HZ=1000 | ||
152 | CONFIG_PREEMPT_NONE=y | ||
153 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
154 | # CONFIG_PREEMPT is not set | ||
155 | # CONFIG_KEXEC is not set | ||
156 | CONFIG_LOCKDEP_SUPPORT=y | ||
157 | CONFIG_STACKTRACE_SUPPORT=y | ||
158 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
159 | |||
160 | # | ||
161 | # Code maturity level options | ||
162 | # | ||
163 | CONFIG_EXPERIMENTAL=y | ||
164 | CONFIG_BROKEN_ON_SMP=y | ||
165 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
166 | |||
167 | # | ||
168 | # General setup | ||
169 | # | ||
170 | CONFIG_LOCALVERSION="" | ||
171 | CONFIG_LOCALVERSION_AUTO=y | ||
172 | CONFIG_SWAP=y | ||
173 | CONFIG_SYSVIPC=y | ||
174 | # CONFIG_IPC_NS is not set | ||
175 | CONFIG_SYSVIPC_SYSCTL=y | ||
176 | # CONFIG_POSIX_MQUEUE is not set | ||
177 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
178 | # CONFIG_TASKSTATS is not set | ||
179 | # CONFIG_UTS_NS is not set | ||
180 | # CONFIG_AUDIT is not set | ||
181 | # CONFIG_IKCONFIG is not set | ||
182 | CONFIG_SYSFS_DEPRECATED=y | ||
183 | CONFIG_RELAY=y | ||
184 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
185 | CONFIG_SYSCTL=y | ||
186 | CONFIG_EMBEDDED=y | ||
187 | CONFIG_SYSCTL_SYSCALL=y | ||
188 | CONFIG_KALLSYMS=y | ||
189 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
190 | CONFIG_HOTPLUG=y | ||
191 | CONFIG_PRINTK=y | ||
192 | CONFIG_BUG=y | ||
193 | CONFIG_ELF_CORE=y | ||
194 | CONFIG_BASE_FULL=y | ||
195 | CONFIG_FUTEX=y | ||
196 | CONFIG_EPOLL=y | ||
197 | CONFIG_SHMEM=y | ||
198 | CONFIG_SLAB=y | ||
199 | CONFIG_VM_EVENT_COUNTERS=y | ||
200 | CONFIG_RT_MUTEXES=y | ||
201 | # CONFIG_TINY_SHMEM is not set | ||
202 | CONFIG_BASE_SMALL=0 | ||
203 | # CONFIG_SLOB is not set | ||
204 | |||
205 | # | ||
206 | # Loadable module support | ||
207 | # | ||
208 | CONFIG_MODULES=y | ||
209 | CONFIG_MODULE_UNLOAD=y | ||
210 | # CONFIG_MODULE_FORCE_UNLOAD is not set | ||
211 | CONFIG_MODVERSIONS=y | ||
212 | CONFIG_MODULE_SRCVERSION_ALL=y | ||
213 | # CONFIG_KMOD is not set | ||
214 | |||
215 | # | ||
216 | # Block layer | ||
217 | # | ||
218 | CONFIG_BLOCK=y | ||
219 | # CONFIG_LBD is not set | ||
220 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
221 | # CONFIG_LSF is not set | ||
222 | |||
223 | # | ||
224 | # IO Schedulers | ||
225 | # | ||
226 | CONFIG_IOSCHED_NOOP=y | ||
227 | CONFIG_IOSCHED_AS=y | ||
228 | CONFIG_IOSCHED_DEADLINE=y | ||
229 | CONFIG_IOSCHED_CFQ=y | ||
230 | CONFIG_DEFAULT_AS=y | ||
231 | # CONFIG_DEFAULT_DEADLINE is not set | ||
232 | # CONFIG_DEFAULT_CFQ is not set | ||
233 | # CONFIG_DEFAULT_NOOP is not set | ||
234 | CONFIG_DEFAULT_IOSCHED="anticipatory" | ||
235 | |||
236 | # | ||
237 | # Bus options (PCI, PCMCIA, EISA, ISA, TC) | ||
238 | # | ||
239 | CONFIG_HW_HAS_PCI=y | ||
240 | CONFIG_PCI=y | ||
241 | CONFIG_MMU=y | ||
242 | |||
243 | # | ||
244 | # PCCARD (PCMCIA/CardBus) support | ||
245 | # | ||
246 | # CONFIG_PCCARD is not set | ||
247 | |||
248 | # | ||
249 | # PCI Hotplug Support | ||
250 | # | ||
251 | # CONFIG_HOTPLUG_PCI is not set | ||
252 | |||
253 | # | ||
254 | # Executable file formats | ||
255 | # | ||
256 | CONFIG_BINFMT_ELF=y | ||
257 | # CONFIG_BINFMT_MISC is not set | ||
258 | CONFIG_TRAD_SIGNALS=y | ||
259 | |||
260 | # | ||
261 | # Power management options | ||
262 | # | ||
263 | CONFIG_PM=y | ||
264 | # CONFIG_PM_LEGACY is not set | ||
265 | # CONFIG_PM_DEBUG is not set | ||
266 | # CONFIG_PM_SYSFS_DEPRECATED is not set | ||
267 | |||
268 | # | ||
269 | # Networking | ||
270 | # | ||
271 | CONFIG_NET=y | ||
272 | |||
273 | # | ||
274 | # Networking options | ||
275 | # | ||
276 | # CONFIG_NETDEBUG is not set | ||
277 | # CONFIG_PACKET is not set | ||
278 | CONFIG_UNIX=y | ||
279 | CONFIG_XFRM=y | ||
280 | CONFIG_XFRM_USER=m | ||
281 | # CONFIG_XFRM_SUB_POLICY is not set | ||
282 | CONFIG_XFRM_MIGRATE=y | ||
283 | CONFIG_NET_KEY=y | ||
284 | CONFIG_NET_KEY_MIGRATE=y | ||
285 | CONFIG_INET=y | ||
286 | # CONFIG_IP_MULTICAST is not set | ||
287 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
288 | CONFIG_IP_FIB_HASH=y | ||
289 | CONFIG_IP_PNP=y | ||
290 | # CONFIG_IP_PNP_DHCP is not set | ||
291 | # CONFIG_IP_PNP_BOOTP is not set | ||
292 | # CONFIG_IP_PNP_RARP is not set | ||
293 | # CONFIG_NET_IPIP is not set | ||
294 | # CONFIG_NET_IPGRE is not set | ||
295 | # CONFIG_ARPD is not set | ||
296 | # CONFIG_SYN_COOKIES is not set | ||
297 | # CONFIG_INET_AH is not set | ||
298 | # CONFIG_INET_ESP is not set | ||
299 | # CONFIG_INET_IPCOMP is not set | ||
300 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
301 | # CONFIG_INET_TUNNEL is not set | ||
302 | CONFIG_INET_XFRM_MODE_TRANSPORT=m | ||
303 | CONFIG_INET_XFRM_MODE_TUNNEL=m | ||
304 | CONFIG_INET_XFRM_MODE_BEET=m | ||
305 | CONFIG_INET_DIAG=y | ||
306 | CONFIG_INET_TCP_DIAG=y | ||
307 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
308 | CONFIG_TCP_CONG_CUBIC=y | ||
309 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
310 | CONFIG_TCP_MD5SIG=y | ||
311 | # CONFIG_IPV6 is not set | ||
312 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
313 | # CONFIG_INET6_TUNNEL is not set | ||
314 | CONFIG_NETWORK_SECMARK=y | ||
315 | # CONFIG_NETFILTER is not set | ||
316 | |||
317 | # | ||
318 | # DCCP Configuration (EXPERIMENTAL) | ||
319 | # | ||
320 | # CONFIG_IP_DCCP is not set | ||
321 | |||
322 | # | ||
323 | # SCTP Configuration (EXPERIMENTAL) | ||
324 | # | ||
325 | # CONFIG_IP_SCTP is not set | ||
326 | |||
327 | # | ||
328 | # TIPC Configuration (EXPERIMENTAL) | ||
329 | # | ||
330 | # CONFIG_TIPC is not set | ||
331 | # CONFIG_ATM is not set | ||
332 | # CONFIG_BRIDGE is not set | ||
333 | # CONFIG_VLAN_8021Q is not set | ||
334 | # CONFIG_DECNET is not set | ||
335 | # CONFIG_LLC2 is not set | ||
336 | # CONFIG_IPX is not set | ||
337 | # CONFIG_ATALK is not set | ||
338 | # CONFIG_X25 is not set | ||
339 | # CONFIG_LAPB is not set | ||
340 | # CONFIG_ECONET is not set | ||
341 | # CONFIG_WAN_ROUTER is not set | ||
342 | |||
343 | # | ||
344 | # QoS and/or fair queueing | ||
345 | # | ||
346 | # CONFIG_NET_SCHED is not set | ||
347 | |||
348 | # | ||
349 | # Network testing | ||
350 | # | ||
351 | # CONFIG_NET_PKTGEN is not set | ||
352 | # CONFIG_HAMRADIO is not set | ||
353 | # CONFIG_IRDA is not set | ||
354 | # CONFIG_BT is not set | ||
355 | CONFIG_IEEE80211=m | ||
356 | # CONFIG_IEEE80211_DEBUG is not set | ||
357 | CONFIG_IEEE80211_CRYPT_WEP=m | ||
358 | CONFIG_IEEE80211_CRYPT_CCMP=m | ||
359 | CONFIG_IEEE80211_SOFTMAC=m | ||
360 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
361 | CONFIG_WIRELESS_EXT=y | ||
362 | |||
363 | # | ||
364 | # Device Drivers | ||
365 | # | ||
366 | |||
367 | # | ||
368 | # Generic Driver Options | ||
369 | # | ||
370 | CONFIG_STANDALONE=y | ||
371 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
372 | CONFIG_FW_LOADER=m | ||
373 | # CONFIG_SYS_HYPERVISOR is not set | ||
374 | |||
375 | # | ||
376 | # Connector - unified userspace <-> kernelspace linker | ||
377 | # | ||
378 | CONFIG_CONNECTOR=m | ||
379 | |||
380 | # | ||
381 | # Memory Technology Devices (MTD) | ||
382 | # | ||
383 | # CONFIG_MTD is not set | ||
384 | |||
385 | # | ||
386 | # Parallel port support | ||
387 | # | ||
388 | # CONFIG_PARPORT is not set | ||
389 | |||
390 | # | ||
391 | # Plug and Play support | ||
392 | # | ||
393 | # CONFIG_PNPACPI is not set | ||
394 | |||
395 | # | ||
396 | # Block devices | ||
397 | # | ||
398 | # CONFIG_BLK_CPQ_DA is not set | ||
399 | # CONFIG_BLK_CPQ_CISS_DA is not set | ||
400 | # CONFIG_BLK_DEV_DAC960 is not set | ||
401 | # CONFIG_BLK_DEV_UMEM is not set | ||
402 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
403 | # CONFIG_BLK_DEV_LOOP is not set | ||
404 | # CONFIG_BLK_DEV_NBD is not set | ||
405 | # CONFIG_BLK_DEV_SX8 is not set | ||
406 | # CONFIG_BLK_DEV_RAM is not set | ||
407 | # CONFIG_BLK_DEV_INITRD is not set | ||
408 | CONFIG_CDROM_PKTCDVD=m | ||
409 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | ||
410 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | ||
411 | CONFIG_ATA_OVER_ETH=m | ||
412 | |||
413 | # | ||
414 | # Misc devices | ||
415 | # | ||
416 | CONFIG_SGI_IOC4=m | ||
417 | # CONFIG_TIFM_CORE is not set | ||
418 | |||
419 | # | ||
420 | # ATA/ATAPI/MFM/RLL support | ||
421 | # | ||
422 | # CONFIG_IDE is not set | ||
423 | |||
424 | # | ||
425 | # SCSI device support | ||
426 | # | ||
427 | CONFIG_RAID_ATTRS=m | ||
428 | # CONFIG_SCSI is not set | ||
429 | # CONFIG_SCSI_NETLINK is not set | ||
430 | |||
431 | # | ||
432 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
433 | # | ||
434 | # CONFIG_ATA is not set | ||
435 | |||
436 | # | ||
437 | # Multi-device support (RAID and LVM) | ||
438 | # | ||
439 | # CONFIG_MD is not set | ||
440 | |||
441 | # | ||
442 | # Fusion MPT device support | ||
443 | # | ||
444 | # CONFIG_FUSION is not set | ||
445 | |||
446 | # | ||
447 | # IEEE 1394 (FireWire) support | ||
448 | # | ||
449 | # CONFIG_IEEE1394 is not set | ||
450 | |||
451 | # | ||
452 | # I2O device support | ||
453 | # | ||
454 | # CONFIG_I2O is not set | ||
455 | |||
456 | # | ||
457 | # Network device support | ||
458 | # | ||
459 | CONFIG_NETDEVICES=y | ||
460 | # CONFIG_DUMMY is not set | ||
461 | # CONFIG_BONDING is not set | ||
462 | # CONFIG_EQUALIZER is not set | ||
463 | # CONFIG_TUN is not set | ||
464 | |||
465 | # | ||
466 | # ARCnet devices | ||
467 | # | ||
468 | # CONFIG_ARCNET is not set | ||
469 | |||
470 | # | ||
471 | # PHY device support | ||
472 | # | ||
473 | CONFIG_PHYLIB=m | ||
474 | |||
475 | # | ||
476 | # MII PHY device drivers | ||
477 | # | ||
478 | CONFIG_MARVELL_PHY=m | ||
479 | CONFIG_DAVICOM_PHY=m | ||
480 | CONFIG_QSEMI_PHY=m | ||
481 | CONFIG_LXT_PHY=m | ||
482 | CONFIG_CICADA_PHY=m | ||
483 | CONFIG_VITESSE_PHY=m | ||
484 | CONFIG_SMSC_PHY=m | ||
485 | # CONFIG_BROADCOM_PHY is not set | ||
486 | # CONFIG_FIXED_PHY is not set | ||
487 | |||
488 | # | ||
489 | # Ethernet (10 or 100Mbit) | ||
490 | # | ||
491 | CONFIG_NET_ETHERNET=y | ||
492 | # CONFIG_MII is not set | ||
493 | # CONFIG_HAPPYMEAL is not set | ||
494 | # CONFIG_SUNGEM is not set | ||
495 | # CONFIG_CASSINI is not set | ||
496 | # CONFIG_NET_VENDOR_3COM is not set | ||
497 | # CONFIG_DM9000 is not set | ||
498 | |||
499 | # | ||
500 | # Tulip family network device support | ||
501 | # | ||
502 | # CONFIG_NET_TULIP is not set | ||
503 | # CONFIG_HP100 is not set | ||
504 | # CONFIG_NET_PCI is not set | ||
505 | |||
506 | # | ||
507 | # Ethernet (1000 Mbit) | ||
508 | # | ||
509 | # CONFIG_ACENIC is not set | ||
510 | # CONFIG_DL2K is not set | ||
511 | # CONFIG_E1000 is not set | ||
512 | # CONFIG_NS83820 is not set | ||
513 | # CONFIG_HAMACHI is not set | ||
514 | # CONFIG_YELLOWFIN is not set | ||
515 | # CONFIG_R8169 is not set | ||
516 | # CONFIG_SIS190 is not set | ||
517 | # CONFIG_SKGE is not set | ||
518 | # CONFIG_SKY2 is not set | ||
519 | # CONFIG_SK98LIN is not set | ||
520 | # CONFIG_TIGON3 is not set | ||
521 | # CONFIG_BNX2 is not set | ||
522 | CONFIG_QLA3XXX=m | ||
523 | # CONFIG_ATL1 is not set | ||
524 | |||
525 | # | ||
526 | # Ethernet (10000 Mbit) | ||
527 | # | ||
528 | # CONFIG_CHELSIO_T1 is not set | ||
529 | CONFIG_CHELSIO_T3=m | ||
530 | # CONFIG_IXGB is not set | ||
531 | # CONFIG_S2IO is not set | ||
532 | # CONFIG_MYRI10GE is not set | ||
533 | CONFIG_NETXEN_NIC=m | ||
534 | |||
535 | # | ||
536 | # Token Ring devices | ||
537 | # | ||
538 | # CONFIG_TR is not set | ||
539 | |||
540 | # | ||
541 | # Wireless LAN (non-hamradio) | ||
542 | # | ||
543 | # CONFIG_NET_RADIO is not set | ||
544 | |||
545 | # | ||
546 | # Wan interfaces | ||
547 | # | ||
548 | # CONFIG_WAN is not set | ||
549 | # CONFIG_FDDI is not set | ||
550 | # CONFIG_HIPPI is not set | ||
551 | CONFIG_PPP=y | ||
552 | # CONFIG_PPP_MULTILINK is not set | ||
553 | # CONFIG_PPP_FILTER is not set | ||
554 | CONFIG_PPP_ASYNC=y | ||
555 | # CONFIG_PPP_SYNC_TTY is not set | ||
556 | # CONFIG_PPP_DEFLATE is not set | ||
557 | # CONFIG_PPP_BSDCOMP is not set | ||
558 | CONFIG_PPP_MPPE=m | ||
559 | # CONFIG_PPPOE is not set | ||
560 | # CONFIG_SLIP is not set | ||
561 | CONFIG_SLHC=y | ||
562 | # CONFIG_SHAPER is not set | ||
563 | # CONFIG_NETCONSOLE is not set | ||
564 | # CONFIG_NETPOLL is not set | ||
565 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
566 | |||
567 | # | ||
568 | # ISDN subsystem | ||
569 | # | ||
570 | # CONFIG_ISDN is not set | ||
571 | |||
572 | # | ||
573 | # Telephony Support | ||
574 | # | ||
575 | # CONFIG_PHONE is not set | ||
576 | |||
577 | # | ||
578 | # Input device support | ||
579 | # | ||
580 | CONFIG_INPUT=y | ||
581 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
582 | |||
583 | # | ||
584 | # Userland interfaces | ||
585 | # | ||
586 | CONFIG_INPUT_MOUSEDEV=y | ||
587 | CONFIG_INPUT_MOUSEDEV_PSAUX=y | ||
588 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
589 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
590 | # CONFIG_INPUT_JOYDEV is not set | ||
591 | # CONFIG_INPUT_TSDEV is not set | ||
592 | # CONFIG_INPUT_EVDEV is not set | ||
593 | # CONFIG_INPUT_EVBUG is not set | ||
594 | |||
595 | # | ||
596 | # Input Device Drivers | ||
597 | # | ||
598 | # CONFIG_INPUT_KEYBOARD is not set | ||
599 | # CONFIG_INPUT_MOUSE is not set | ||
600 | # CONFIG_INPUT_JOYSTICK is not set | ||
601 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
602 | # CONFIG_INPUT_MISC is not set | ||
603 | |||
604 | # | ||
605 | # Hardware I/O ports | ||
606 | # | ||
607 | CONFIG_SERIO=y | ||
608 | # CONFIG_SERIO_I8042 is not set | ||
609 | CONFIG_SERIO_SERPORT=y | ||
610 | # CONFIG_SERIO_PCIPS2 is not set | ||
611 | # CONFIG_SERIO_LIBPS2 is not set | ||
612 | CONFIG_SERIO_RAW=m | ||
613 | # CONFIG_GAMEPORT is not set | ||
614 | |||
615 | # | ||
616 | # Character devices | ||
617 | # | ||
618 | CONFIG_VT=y | ||
619 | CONFIG_VT_CONSOLE=y | ||
620 | CONFIG_HW_CONSOLE=y | ||
621 | CONFIG_VT_HW_CONSOLE_BINDING=y | ||
622 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
623 | |||
624 | # | ||
625 | # Serial drivers | ||
626 | # | ||
627 | CONFIG_SERIAL_8250=y | ||
628 | CONFIG_SERIAL_8250_CONSOLE=y | ||
629 | CONFIG_SERIAL_8250_PCI=y | ||
630 | CONFIG_SERIAL_8250_NR_UARTS=4 | ||
631 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | ||
632 | # CONFIG_SERIAL_8250_EXTENDED is not set | ||
633 | |||
634 | # | ||
635 | # Non-8250 serial port support | ||
636 | # | ||
637 | CONFIG_SERIAL_CORE=y | ||
638 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
639 | # CONFIG_SERIAL_JSM is not set | ||
640 | CONFIG_UNIX98_PTYS=y | ||
641 | CONFIG_LEGACY_PTYS=y | ||
642 | CONFIG_LEGACY_PTY_COUNT=256 | ||
643 | |||
644 | # | ||
645 | # IPMI | ||
646 | # | ||
647 | # CONFIG_IPMI_HANDLER is not set | ||
648 | |||
649 | # | ||
650 | # Watchdog Cards | ||
651 | # | ||
652 | # CONFIG_WATCHDOG is not set | ||
653 | # CONFIG_HW_RANDOM is not set | ||
654 | # CONFIG_RTC is not set | ||
655 | # CONFIG_GEN_RTC is not set | ||
656 | # CONFIG_DTLK is not set | ||
657 | # CONFIG_R3964 is not set | ||
658 | # CONFIG_APPLICOM is not set | ||
659 | # CONFIG_DRM is not set | ||
660 | # CONFIG_RAW_DRIVER is not set | ||
661 | |||
662 | # | ||
663 | # TPM devices | ||
664 | # | ||
665 | # CONFIG_TCG_TPM is not set | ||
666 | |||
667 | # | ||
668 | # I2C support | ||
669 | # | ||
670 | # CONFIG_I2C is not set | ||
671 | |||
672 | # | ||
673 | # SPI support | ||
674 | # | ||
675 | # CONFIG_SPI is not set | ||
676 | # CONFIG_SPI_MASTER is not set | ||
677 | |||
678 | # | ||
679 | # Dallas's 1-wire bus | ||
680 | # | ||
681 | # CONFIG_W1 is not set | ||
682 | |||
683 | # | ||
684 | # Hardware Monitoring support | ||
685 | # | ||
686 | # CONFIG_HWMON is not set | ||
687 | # CONFIG_HWMON_VID is not set | ||
688 | |||
689 | # | ||
690 | # Multimedia devices | ||
691 | # | ||
692 | # CONFIG_VIDEO_DEV is not set | ||
693 | |||
694 | # | ||
695 | # Digital Video Broadcasting Devices | ||
696 | # | ||
697 | # CONFIG_DVB is not set | ||
698 | |||
699 | # | ||
700 | # Graphics support | ||
701 | # | ||
702 | # CONFIG_FIRMWARE_EDID is not set | ||
703 | # CONFIG_FB is not set | ||
704 | |||
705 | # | ||
706 | # Console display driver support | ||
707 | # | ||
708 | # CONFIG_VGA_CONSOLE is not set | ||
709 | CONFIG_DUMMY_CONSOLE=y | ||
710 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
711 | |||
712 | # | ||
713 | # Sound | ||
714 | # | ||
715 | # CONFIG_SOUND is not set | ||
716 | |||
717 | # | ||
718 | # HID Devices | ||
719 | # | ||
720 | # CONFIG_HID is not set | ||
721 | |||
722 | # | ||
723 | # USB support | ||
724 | # | ||
725 | CONFIG_USB_ARCH_HAS_HCD=y | ||
726 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
727 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
728 | # CONFIG_USB is not set | ||
729 | |||
730 | # | ||
731 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
732 | # | ||
733 | |||
734 | # | ||
735 | # USB Gadget Support | ||
736 | # | ||
737 | # CONFIG_USB_GADGET is not set | ||
738 | |||
739 | # | ||
740 | # MMC/SD Card support | ||
741 | # | ||
742 | # CONFIG_MMC is not set | ||
743 | |||
744 | # | ||
745 | # LED devices | ||
746 | # | ||
747 | # CONFIG_NEW_LEDS is not set | ||
748 | |||
749 | # | ||
750 | # LED drivers | ||
751 | # | ||
752 | |||
753 | # | ||
754 | # LED Triggers | ||
755 | # | ||
756 | |||
757 | # | ||
758 | # InfiniBand support | ||
759 | # | ||
760 | # CONFIG_INFINIBAND is not set | ||
761 | |||
762 | # | ||
763 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
764 | # | ||
765 | |||
766 | # | ||
767 | # Real Time Clock | ||
768 | # | ||
769 | # CONFIG_RTC_CLASS is not set | ||
770 | |||
771 | # | ||
772 | # DMA Engine support | ||
773 | # | ||
774 | # CONFIG_DMA_ENGINE is not set | ||
775 | |||
776 | # | ||
777 | # DMA Clients | ||
778 | # | ||
779 | |||
780 | # | ||
781 | # DMA Devices | ||
782 | # | ||
783 | |||
784 | # | ||
785 | # Auxiliary Display support | ||
786 | # | ||
787 | |||
788 | # | ||
789 | # Virtualization | ||
790 | # | ||
791 | |||
792 | # | ||
793 | # File systems | ||
794 | # | ||
795 | CONFIG_EXT2_FS=y | ||
796 | # CONFIG_EXT2_FS_XATTR is not set | ||
797 | # CONFIG_EXT2_FS_XIP is not set | ||
798 | # CONFIG_EXT3_FS is not set | ||
799 | # CONFIG_EXT4DEV_FS is not set | ||
800 | # CONFIG_REISERFS_FS is not set | ||
801 | # CONFIG_JFS_FS is not set | ||
802 | # CONFIG_FS_POSIX_ACL is not set | ||
803 | # CONFIG_XFS_FS is not set | ||
804 | # CONFIG_GFS2_FS is not set | ||
805 | # CONFIG_OCFS2_FS is not set | ||
806 | # CONFIG_MINIX_FS is not set | ||
807 | # CONFIG_ROMFS_FS is not set | ||
808 | CONFIG_INOTIFY=y | ||
809 | CONFIG_INOTIFY_USER=y | ||
810 | # CONFIG_QUOTA is not set | ||
811 | CONFIG_DNOTIFY=y | ||
812 | # CONFIG_AUTOFS_FS is not set | ||
813 | # CONFIG_AUTOFS4_FS is not set | ||
814 | CONFIG_FUSE_FS=m | ||
815 | |||
816 | # | ||
817 | # CD-ROM/DVD Filesystems | ||
818 | # | ||
819 | # CONFIG_ISO9660_FS is not set | ||
820 | # CONFIG_UDF_FS is not set | ||
821 | |||
822 | # | ||
823 | # DOS/FAT/NT Filesystems | ||
824 | # | ||
825 | # CONFIG_MSDOS_FS is not set | ||
826 | # CONFIG_VFAT_FS is not set | ||
827 | # CONFIG_NTFS_FS is not set | ||
828 | |||
829 | # | ||
830 | # Pseudo filesystems | ||
831 | # | ||
832 | CONFIG_PROC_FS=y | ||
833 | CONFIG_PROC_KCORE=y | ||
834 | CONFIG_PROC_SYSCTL=y | ||
835 | CONFIG_SYSFS=y | ||
836 | # CONFIG_TMPFS is not set | ||
837 | # CONFIG_HUGETLB_PAGE is not set | ||
838 | CONFIG_RAMFS=y | ||
839 | CONFIG_CONFIGFS_FS=m | ||
840 | |||
841 | # | ||
842 | # Miscellaneous filesystems | ||
843 | # | ||
844 | # CONFIG_ADFS_FS is not set | ||
845 | # CONFIG_AFFS_FS is not set | ||
846 | # CONFIG_ECRYPT_FS is not set | ||
847 | # CONFIG_HFS_FS is not set | ||
848 | # CONFIG_HFSPLUS_FS is not set | ||
849 | # CONFIG_BEFS_FS is not set | ||
850 | # CONFIG_BFS_FS is not set | ||
851 | # CONFIG_EFS_FS is not set | ||
852 | # CONFIG_CRAMFS is not set | ||
853 | # CONFIG_VXFS_FS is not set | ||
854 | # CONFIG_HPFS_FS is not set | ||
855 | # CONFIG_QNX4FS_FS is not set | ||
856 | # CONFIG_SYSV_FS is not set | ||
857 | # CONFIG_UFS_FS is not set | ||
858 | |||
859 | # | ||
860 | # Network File Systems | ||
861 | # | ||
862 | CONFIG_NFS_FS=y | ||
863 | # CONFIG_NFS_V3 is not set | ||
864 | # CONFIG_NFS_V4 is not set | ||
865 | # CONFIG_NFS_DIRECTIO is not set | ||
866 | # CONFIG_NFSD is not set | ||
867 | CONFIG_ROOT_NFS=y | ||
868 | CONFIG_LOCKD=y | ||
869 | CONFIG_NFS_COMMON=y | ||
870 | CONFIG_SUNRPC=y | ||
871 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
872 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
873 | # CONFIG_SMB_FS is not set | ||
874 | # CONFIG_CIFS is not set | ||
875 | # CONFIG_NCP_FS is not set | ||
876 | # CONFIG_CODA_FS is not set | ||
877 | # CONFIG_AFS_FS is not set | ||
878 | # CONFIG_9P_FS is not set | ||
879 | |||
880 | # | ||
881 | # Partition Types | ||
882 | # | ||
883 | # CONFIG_PARTITION_ADVANCED is not set | ||
884 | CONFIG_MSDOS_PARTITION=y | ||
885 | |||
886 | # | ||
887 | # Native Language Support | ||
888 | # | ||
889 | # CONFIG_NLS is not set | ||
890 | |||
891 | # | ||
892 | # Distributed Lock Manager | ||
893 | # | ||
894 | CONFIG_DLM=m | ||
895 | CONFIG_DLM_TCP=y | ||
896 | # CONFIG_DLM_SCTP is not set | ||
897 | # CONFIG_DLM_DEBUG is not set | ||
898 | |||
899 | # | ||
900 | # Profiling support | ||
901 | # | ||
902 | # CONFIG_PROFILING is not set | ||
903 | |||
904 | # | ||
905 | # Kernel hacking | ||
906 | # | ||
907 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
908 | # CONFIG_PRINTK_TIME is not set | ||
909 | CONFIG_ENABLE_MUST_CHECK=y | ||
910 | # CONFIG_MAGIC_SYSRQ is not set | ||
911 | # CONFIG_UNUSED_SYMBOLS is not set | ||
912 | # CONFIG_DEBUG_FS is not set | ||
913 | # CONFIG_HEADERS_CHECK is not set | ||
914 | # CONFIG_DEBUG_KERNEL is not set | ||
915 | CONFIG_LOG_BUF_SHIFT=14 | ||
916 | CONFIG_CROSSCOMPILE=y | ||
917 | CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/nfs rw nfsroot=192.168.1.1:/mnt/disk2/fs.gal ip=192.168.1.211:192.168.1.1:::gt::" | ||
918 | CONFIG_SYS_SUPPORTS_KGDB=y | ||
919 | |||
920 | # | ||
921 | # Security options | ||
922 | # | ||
923 | CONFIG_KEYS=y | ||
924 | CONFIG_KEYS_DEBUG_PROC_KEYS=y | ||
925 | # CONFIG_SECURITY is not set | ||
926 | |||
927 | # | ||
928 | # Cryptographic options | ||
929 | # | ||
930 | CONFIG_CRYPTO=y | ||
931 | CONFIG_CRYPTO_ALGAPI=y | ||
932 | CONFIG_CRYPTO_BLKCIPHER=m | ||
933 | CONFIG_CRYPTO_HASH=y | ||
934 | CONFIG_CRYPTO_MANAGER=y | ||
935 | CONFIG_CRYPTO_HMAC=y | ||
936 | CONFIG_CRYPTO_XCBC=m | ||
937 | CONFIG_CRYPTO_NULL=m | ||
938 | CONFIG_CRYPTO_MD4=m | ||
939 | CONFIG_CRYPTO_MD5=y | ||
940 | CONFIG_CRYPTO_SHA1=m | ||
941 | CONFIG_CRYPTO_SHA256=m | ||
942 | CONFIG_CRYPTO_SHA512=m | ||
943 | CONFIG_CRYPTO_WP512=m | ||
944 | CONFIG_CRYPTO_TGR192=m | ||
945 | CONFIG_CRYPTO_GF128MUL=m | ||
946 | CONFIG_CRYPTO_ECB=m | ||
947 | CONFIG_CRYPTO_CBC=m | ||
948 | CONFIG_CRYPTO_PCBC=m | ||
949 | CONFIG_CRYPTO_LRW=m | ||
950 | CONFIG_CRYPTO_DES=m | ||
951 | CONFIG_CRYPTO_FCRYPT=m | ||
952 | CONFIG_CRYPTO_BLOWFISH=m | ||
953 | CONFIG_CRYPTO_TWOFISH=m | ||
954 | CONFIG_CRYPTO_TWOFISH_COMMON=m | ||
955 | CONFIG_CRYPTO_SERPENT=m | ||
956 | CONFIG_CRYPTO_AES=m | ||
957 | CONFIG_CRYPTO_CAST5=m | ||
958 | CONFIG_CRYPTO_CAST6=m | ||
959 | CONFIG_CRYPTO_TEA=m | ||
960 | CONFIG_CRYPTO_ARC4=m | ||
961 | CONFIG_CRYPTO_KHAZAD=m | ||
962 | CONFIG_CRYPTO_ANUBIS=m | ||
963 | CONFIG_CRYPTO_DEFLATE=m | ||
964 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
965 | CONFIG_CRYPTO_CRC32C=m | ||
966 | CONFIG_CRYPTO_CAMELLIA=m | ||
967 | # CONFIG_CRYPTO_TEST is not set | ||
968 | |||
969 | # | ||
970 | # Hardware crypto devices | ||
971 | # | ||
972 | |||
973 | # | ||
974 | # Library routines | ||
975 | # | ||
976 | CONFIG_BITREVERSE=m | ||
977 | CONFIG_CRC_CCITT=y | ||
978 | CONFIG_CRC16=m | ||
979 | CONFIG_CRC32=m | ||
980 | CONFIG_LIBCRC32C=m | ||
981 | CONFIG_ZLIB_INFLATE=m | ||
982 | CONFIG_ZLIB_DEFLATE=m | ||
983 | CONFIG_PLIST=y | ||
984 | CONFIG_HAS_IOMEM=y | ||
985 | CONFIG_HAS_IOPORT=y | ||
diff --git a/arch/mips/configs/excite_defconfig b/arch/mips/configs/excite_defconfig index 460d7a26a8ba..69810592aa6b 100644 --- a/arch/mips/configs/excite_defconfig +++ b/arch/mips/configs/excite_defconfig | |||
@@ -26,9 +26,7 @@ CONFIG_BASLER_EXCITE=y | |||
26 | # CONFIG_BASLER_EXCITE_PROTOTYPE is not set | 26 | # CONFIG_BASLER_EXCITE_PROTOTYPE is not set |
27 | # CONFIG_MIPS_COBALT is not set | 27 | # CONFIG_MIPS_COBALT is not set |
28 | # CONFIG_MACH_DECSTATION is not set | 28 | # CONFIG_MACH_DECSTATION is not set |
29 | # CONFIG_MIPS_EV64120 is not set | ||
30 | # CONFIG_MACH_JAZZ is not set | 29 | # CONFIG_MACH_JAZZ is not set |
31 | # CONFIG_LASAT is not set | ||
32 | # CONFIG_MIPS_ATLAS is not set | 30 | # CONFIG_MIPS_ATLAS is not set |
33 | # CONFIG_MIPS_MALTA is not set | 31 | # CONFIG_MIPS_MALTA is not set |
34 | # CONFIG_MIPS_SEAD is not set | 32 | # CONFIG_MIPS_SEAD is not set |
@@ -36,8 +34,6 @@ CONFIG_BASLER_EXCITE=y | |||
36 | # CONFIG_MIPS_SIM is not set | 34 | # CONFIG_MIPS_SIM is not set |
37 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 35 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
38 | # CONFIG_MOMENCO_OCELOT is not set | 36 | # CONFIG_MOMENCO_OCELOT is not set |
39 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
41 | # CONFIG_MOMENCO_OCELOT_G is not set | 37 | # CONFIG_MOMENCO_OCELOT_G is not set |
42 | # CONFIG_MIPS_XXS1500 is not set | 38 | # CONFIG_MIPS_XXS1500 is not set |
43 | # CONFIG_PNX8550_JBS is not set | 39 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/fulong_defconfig b/arch/mips/configs/fulong_defconfig new file mode 100644 index 000000000000..6ab94d8cf08b --- /dev/null +++ b/arch/mips/configs/fulong_defconfig | |||
@@ -0,0 +1,1765 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.22-rc4 | ||
4 | # Mon Jun 11 00:23:51 2007 | ||
5 | # | ||
6 | CONFIG_MIPS=y | ||
7 | |||
8 | # | ||
9 | # Machine selection | ||
10 | # | ||
11 | CONFIG_LEMOTE_FULONG=y | ||
12 | # CONFIG_MACH_ALCHEMY is not set | ||
13 | # CONFIG_BASLER_EXCITE is not set | ||
14 | # CONFIG_MIPS_COBALT is not set | ||
15 | # CONFIG_MACH_DECSTATION is not set | ||
16 | # CONFIG_MACH_JAZZ is not set | ||
17 | # CONFIG_MIPS_ATLAS is not set | ||
18 | # CONFIG_MIPS_MALTA is not set | ||
19 | # CONFIG_MIPS_SEAD is not set | ||
20 | # CONFIG_WR_PPMC is not set | ||
21 | # CONFIG_MIPS_SIM is not set | ||
22 | # CONFIG_MOMENCO_OCELOT is not set | ||
23 | # CONFIG_PNX8550_JBS is not set | ||
24 | # CONFIG_PNX8550_STB810 is not set | ||
25 | # CONFIG_DDB5477 is not set | ||
26 | # CONFIG_MACH_VR41XX is not set | ||
27 | # CONFIG_PMC_YOSEMITE is not set | ||
28 | # CONFIG_QEMU is not set | ||
29 | # CONFIG_MARKEINS is not set | ||
30 | # CONFIG_SGI_IP22 is not set | ||
31 | # CONFIG_SGI_IP27 is not set | ||
32 | # CONFIG_SGI_IP32 is not set | ||
33 | # CONFIG_SIBYTE_BIGSUR is not set | ||
34 | # CONFIG_SIBYTE_SWARM is not set | ||
35 | # CONFIG_SIBYTE_SENTOSA is not set | ||
36 | # CONFIG_SIBYTE_RHONE is not set | ||
37 | # CONFIG_SIBYTE_CARMEL is not set | ||
38 | # CONFIG_SIBYTE_PTSWARM is not set | ||
39 | # CONFIG_SIBYTE_LITTLESUR is not set | ||
40 | # CONFIG_SIBYTE_CRHINE is not set | ||
41 | # CONFIG_SIBYTE_CRHONE is not set | ||
42 | # CONFIG_SNI_RM is not set | ||
43 | # CONFIG_TOSHIBA_JMR3927 is not set | ||
44 | # CONFIG_TOSHIBA_RBTX4927 is not set | ||
45 | # CONFIG_TOSHIBA_RBTX4938 is not set | ||
46 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
47 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
48 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
49 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
50 | CONFIG_GENERIC_HWEIGHT=y | ||
51 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
52 | CONFIG_GENERIC_TIME=y | ||
53 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | ||
54 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
55 | CONFIG_DMA_NONCOHERENT=y | ||
56 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | ||
57 | CONFIG_EARLY_PRINTK=y | ||
58 | CONFIG_SYS_HAS_EARLY_PRINTK=y | ||
59 | CONFIG_I8259=y | ||
60 | # CONFIG_NO_IOPORT is not set | ||
61 | # CONFIG_CPU_BIG_ENDIAN is not set | ||
62 | CONFIG_CPU_LITTLE_ENDIAN=y | ||
63 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y | ||
64 | CONFIG_IRQ_CPU=y | ||
65 | CONFIG_BOOT_ELF32=y | ||
66 | CONFIG_MIPS_L1_CACHE_SHIFT=5 | ||
67 | |||
68 | # | ||
69 | # CPU selection | ||
70 | # | ||
71 | CONFIG_CPU_LOONGSON2=y | ||
72 | # CONFIG_CPU_MIPS32_R1 is not set | ||
73 | # CONFIG_CPU_MIPS32_R2 is not set | ||
74 | # CONFIG_CPU_MIPS64_R1 is not set | ||
75 | # CONFIG_CPU_MIPS64_R2 is not set | ||
76 | # CONFIG_CPU_R3000 is not set | ||
77 | # CONFIG_CPU_TX39XX is not set | ||
78 | # CONFIG_CPU_VR41XX is not set | ||
79 | # CONFIG_CPU_R4300 is not set | ||
80 | # CONFIG_CPU_R4X00 is not set | ||
81 | # CONFIG_CPU_TX49XX is not set | ||
82 | # CONFIG_CPU_R5000 is not set | ||
83 | # CONFIG_CPU_R5432 is not set | ||
84 | # CONFIG_CPU_R6000 is not set | ||
85 | # CONFIG_CPU_NEVADA is not set | ||
86 | # CONFIG_CPU_R8000 is not set | ||
87 | # CONFIG_CPU_R10000 is not set | ||
88 | # CONFIG_CPU_RM7000 is not set | ||
89 | # CONFIG_CPU_RM9000 is not set | ||
90 | # CONFIG_CPU_SB1 is not set | ||
91 | CONFIG_SYS_HAS_CPU_LOONGSON2=y | ||
92 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y | ||
93 | CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y | ||
94 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y | ||
95 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y | ||
96 | |||
97 | # | ||
98 | # Kernel type | ||
99 | # | ||
100 | # CONFIG_32BIT is not set | ||
101 | CONFIG_64BIT=y | ||
102 | # CONFIG_PAGE_SIZE_4KB is not set | ||
103 | # CONFIG_PAGE_SIZE_8KB is not set | ||
104 | CONFIG_PAGE_SIZE_16KB=y | ||
105 | # CONFIG_PAGE_SIZE_64KB is not set | ||
106 | CONFIG_BOARD_SCACHE=y | ||
107 | CONFIG_MIPS_MT_DISABLED=y | ||
108 | # CONFIG_MIPS_MT_SMP is not set | ||
109 | # CONFIG_MIPS_MT_SMTC is not set | ||
110 | # CONFIG_MIPS_VPE_LOADER is not set | ||
111 | CONFIG_CPU_HAS_WB=y | ||
112 | CONFIG_CPU_HAS_SYNC=y | ||
113 | CONFIG_GENERIC_HARDIRQS=y | ||
114 | CONFIG_GENERIC_IRQ_PROBE=y | ||
115 | CONFIG_CPU_SUPPORTS_HIGHMEM=y | ||
116 | CONFIG_SYS_SUPPORTS_HIGHMEM=y | ||
117 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
118 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | ||
119 | CONFIG_SELECT_MEMORY_MODEL=y | ||
120 | CONFIG_FLATMEM_MANUAL=y | ||
121 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
122 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
123 | CONFIG_FLATMEM=y | ||
124 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
125 | CONFIG_SPARSEMEM_STATIC=y | ||
126 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
127 | CONFIG_RESOURCES_64BIT=y | ||
128 | CONFIG_ZONE_DMA_FLAG=0 | ||
129 | # CONFIG_HZ_48 is not set | ||
130 | # CONFIG_HZ_100 is not set | ||
131 | # CONFIG_HZ_128 is not set | ||
132 | CONFIG_HZ_250=y | ||
133 | # CONFIG_HZ_256 is not set | ||
134 | # CONFIG_HZ_1000 is not set | ||
135 | # CONFIG_HZ_1024 is not set | ||
136 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y | ||
137 | CONFIG_HZ=250 | ||
138 | # CONFIG_PREEMPT_NONE is not set | ||
139 | CONFIG_PREEMPT_VOLUNTARY=y | ||
140 | # CONFIG_PREEMPT is not set | ||
141 | # CONFIG_KEXEC is not set | ||
142 | CONFIG_LOCKDEP_SUPPORT=y | ||
143 | CONFIG_STACKTRACE_SUPPORT=y | ||
144 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
145 | |||
146 | # | ||
147 | # Code maturity level options | ||
148 | # | ||
149 | CONFIG_EXPERIMENTAL=y | ||
150 | CONFIG_BROKEN_ON_SMP=y | ||
151 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
152 | |||
153 | # | ||
154 | # General setup | ||
155 | # | ||
156 | CONFIG_LOCALVERSION="lm32" | ||
157 | # CONFIG_LOCALVERSION_AUTO is not set | ||
158 | CONFIG_SWAP=y | ||
159 | CONFIG_SYSVIPC=y | ||
160 | # CONFIG_IPC_NS is not set | ||
161 | CONFIG_SYSVIPC_SYSCTL=y | ||
162 | CONFIG_POSIX_MQUEUE=y | ||
163 | CONFIG_BSD_PROCESS_ACCT=y | ||
164 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | ||
165 | # CONFIG_TASKSTATS is not set | ||
166 | # CONFIG_UTS_NS is not set | ||
167 | # CONFIG_AUDIT is not set | ||
168 | CONFIG_IKCONFIG=y | ||
169 | CONFIG_IKCONFIG_PROC=y | ||
170 | CONFIG_LOG_BUF_SHIFT=14 | ||
171 | CONFIG_SYSFS_DEPRECATED=y | ||
172 | # CONFIG_RELAY is not set | ||
173 | # CONFIG_BLK_DEV_INITRD is not set | ||
174 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
175 | CONFIG_SYSCTL=y | ||
176 | CONFIG_EMBEDDED=y | ||
177 | CONFIG_SYSCTL_SYSCALL=y | ||
178 | CONFIG_KALLSYMS=y | ||
179 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
180 | CONFIG_HOTPLUG=y | ||
181 | CONFIG_PRINTK=y | ||
182 | CONFIG_BUG=y | ||
183 | CONFIG_ELF_CORE=y | ||
184 | CONFIG_BASE_FULL=y | ||
185 | CONFIG_FUTEX=y | ||
186 | CONFIG_ANON_INODES=y | ||
187 | CONFIG_EPOLL=y | ||
188 | CONFIG_SIGNALFD=y | ||
189 | CONFIG_TIMERFD=y | ||
190 | CONFIG_EVENTFD=y | ||
191 | CONFIG_SHMEM=y | ||
192 | CONFIG_VM_EVENT_COUNTERS=y | ||
193 | CONFIG_SLAB=y | ||
194 | # CONFIG_SLUB is not set | ||
195 | # CONFIG_SLOB is not set | ||
196 | CONFIG_RT_MUTEXES=y | ||
197 | # CONFIG_TINY_SHMEM is not set | ||
198 | CONFIG_BASE_SMALL=0 | ||
199 | |||
200 | # | ||
201 | # Loadable module support | ||
202 | # | ||
203 | CONFIG_MODULES=y | ||
204 | CONFIG_MODULE_UNLOAD=y | ||
205 | CONFIG_MODULE_FORCE_UNLOAD=y | ||
206 | # CONFIG_MODVERSIONS is not set | ||
207 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
208 | CONFIG_KMOD=y | ||
209 | |||
210 | # | ||
211 | # Block layer | ||
212 | # | ||
213 | CONFIG_BLOCK=y | ||
214 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
215 | |||
216 | # | ||
217 | # IO Schedulers | ||
218 | # | ||
219 | CONFIG_IOSCHED_NOOP=y | ||
220 | CONFIG_IOSCHED_AS=y | ||
221 | CONFIG_IOSCHED_DEADLINE=y | ||
222 | CONFIG_IOSCHED_CFQ=y | ||
223 | # CONFIG_DEFAULT_AS is not set | ||
224 | # CONFIG_DEFAULT_DEADLINE is not set | ||
225 | CONFIG_DEFAULT_CFQ=y | ||
226 | # CONFIG_DEFAULT_NOOP is not set | ||
227 | CONFIG_DEFAULT_IOSCHED="cfq" | ||
228 | |||
229 | # | ||
230 | # Bus options (PCI, PCMCIA, EISA, ISA, TC) | ||
231 | # | ||
232 | CONFIG_HW_HAS_PCI=y | ||
233 | CONFIG_PCI=y | ||
234 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
235 | CONFIG_ISA=y | ||
236 | CONFIG_MMU=y | ||
237 | |||
238 | # | ||
239 | # PCCARD (PCMCIA/CardBus) support | ||
240 | # | ||
241 | # CONFIG_PCCARD is not set | ||
242 | # CONFIG_HOTPLUG_PCI is not set | ||
243 | |||
244 | # | ||
245 | # Executable file formats | ||
246 | # | ||
247 | CONFIG_BINFMT_ELF=y | ||
248 | CONFIG_BINFMT_MISC=y | ||
249 | # CONFIG_BUILD_ELF64 is not set | ||
250 | CONFIG_MIPS32_COMPAT=y | ||
251 | CONFIG_COMPAT=y | ||
252 | CONFIG_SYSVIPC_COMPAT=y | ||
253 | CONFIG_MIPS32_O32=y | ||
254 | CONFIG_MIPS32_N32=y | ||
255 | CONFIG_BINFMT_ELF32=y | ||
256 | |||
257 | # | ||
258 | # Power management options | ||
259 | # | ||
260 | CONFIG_PM=y | ||
261 | # CONFIG_PM_LEGACY is not set | ||
262 | # CONFIG_PM_DEBUG is not set | ||
263 | # CONFIG_PM_SYSFS_DEPRECATED is not set | ||
264 | |||
265 | # | ||
266 | # Networking | ||
267 | # | ||
268 | CONFIG_NET=y | ||
269 | |||
270 | # | ||
271 | # Networking options | ||
272 | # | ||
273 | CONFIG_PACKET=y | ||
274 | CONFIG_PACKET_MMAP=y | ||
275 | CONFIG_UNIX=y | ||
276 | CONFIG_XFRM=y | ||
277 | # CONFIG_XFRM_USER is not set | ||
278 | # CONFIG_XFRM_SUB_POLICY is not set | ||
279 | # CONFIG_XFRM_MIGRATE is not set | ||
280 | # CONFIG_NET_KEY is not set | ||
281 | CONFIG_INET=y | ||
282 | CONFIG_IP_MULTICAST=y | ||
283 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
284 | CONFIG_IP_FIB_HASH=y | ||
285 | CONFIG_IP_PNP=y | ||
286 | # CONFIG_IP_PNP_DHCP is not set | ||
287 | CONFIG_IP_PNP_BOOTP=y | ||
288 | # CONFIG_IP_PNP_RARP is not set | ||
289 | CONFIG_NET_IPIP=m | ||
290 | CONFIG_NET_IPGRE=m | ||
291 | CONFIG_NET_IPGRE_BROADCAST=y | ||
292 | # CONFIG_IP_MROUTE is not set | ||
293 | # CONFIG_ARPD is not set | ||
294 | # CONFIG_SYN_COOKIES is not set | ||
295 | # CONFIG_INET_AH is not set | ||
296 | # CONFIG_INET_ESP is not set | ||
297 | # CONFIG_INET_IPCOMP is not set | ||
298 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
299 | CONFIG_INET_TUNNEL=m | ||
300 | # CONFIG_INET_XFRM_MODE_TRANSPORT is not set | ||
301 | # CONFIG_INET_XFRM_MODE_TUNNEL is not set | ||
302 | CONFIG_INET_XFRM_MODE_BEET=y | ||
303 | # CONFIG_INET_DIAG is not set | ||
304 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
305 | CONFIG_TCP_CONG_CUBIC=y | ||
306 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
307 | # CONFIG_TCP_MD5SIG is not set | ||
308 | # CONFIG_IP_VS is not set | ||
309 | # CONFIG_IPV6 is not set | ||
310 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
311 | # CONFIG_INET6_TUNNEL is not set | ||
312 | # CONFIG_NETWORK_SECMARK is not set | ||
313 | CONFIG_NETFILTER=y | ||
314 | # CONFIG_NETFILTER_DEBUG is not set | ||
315 | |||
316 | # | ||
317 | # Core Netfilter Configuration | ||
318 | # | ||
319 | CONFIG_NETFILTER_NETLINK=m | ||
320 | CONFIG_NETFILTER_NETLINK_QUEUE=m | ||
321 | CONFIG_NETFILTER_NETLINK_LOG=m | ||
322 | # CONFIG_NF_CONNTRACK_ENABLED is not set | ||
323 | # CONFIG_NF_CONNTRACK is not set | ||
324 | CONFIG_NETFILTER_XTABLES=m | ||
325 | CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m | ||
326 | # CONFIG_NETFILTER_XT_TARGET_DSCP is not set | ||
327 | CONFIG_NETFILTER_XT_TARGET_MARK=m | ||
328 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | ||
329 | # CONFIG_NETFILTER_XT_TARGET_NFLOG is not set | ||
330 | # CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set | ||
331 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | ||
332 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | ||
333 | # CONFIG_NETFILTER_XT_MATCH_DSCP is not set | ||
334 | CONFIG_NETFILTER_XT_MATCH_ESP=m | ||
335 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | ||
336 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | ||
337 | CONFIG_NETFILTER_XT_MATCH_MAC=m | ||
338 | CONFIG_NETFILTER_XT_MATCH_MARK=m | ||
339 | # CONFIG_NETFILTER_XT_MATCH_POLICY is not set | ||
340 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m | ||
341 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | ||
342 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m | ||
343 | CONFIG_NETFILTER_XT_MATCH_REALM=m | ||
344 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | ||
345 | CONFIG_NETFILTER_XT_MATCH_STATISTIC=m | ||
346 | CONFIG_NETFILTER_XT_MATCH_STRING=m | ||
347 | CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | ||
348 | # CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set | ||
349 | |||
350 | # | ||
351 | # IP: Netfilter Configuration | ||
352 | # | ||
353 | CONFIG_IP_NF_QUEUE=m | ||
354 | CONFIG_IP_NF_IPTABLES=m | ||
355 | CONFIG_IP_NF_MATCH_IPRANGE=m | ||
356 | CONFIG_IP_NF_MATCH_TOS=m | ||
357 | CONFIG_IP_NF_MATCH_RECENT=m | ||
358 | CONFIG_IP_NF_MATCH_ECN=m | ||
359 | CONFIG_IP_NF_MATCH_AH=m | ||
360 | CONFIG_IP_NF_MATCH_TTL=m | ||
361 | CONFIG_IP_NF_MATCH_OWNER=m | ||
362 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | ||
363 | CONFIG_IP_NF_FILTER=m | ||
364 | CONFIG_IP_NF_TARGET_REJECT=m | ||
365 | CONFIG_IP_NF_TARGET_LOG=m | ||
366 | CONFIG_IP_NF_TARGET_ULOG=m | ||
367 | CONFIG_IP_NF_MANGLE=m | ||
368 | CONFIG_IP_NF_TARGET_TOS=m | ||
369 | CONFIG_IP_NF_TARGET_ECN=m | ||
370 | CONFIG_IP_NF_TARGET_TTL=m | ||
371 | CONFIG_IP_NF_RAW=m | ||
372 | CONFIG_IP_NF_ARPTABLES=m | ||
373 | CONFIG_IP_NF_ARPFILTER=m | ||
374 | CONFIG_IP_NF_ARP_MANGLE=m | ||
375 | # CONFIG_IP_DCCP is not set | ||
376 | # CONFIG_IP_SCTP is not set | ||
377 | # CONFIG_TIPC is not set | ||
378 | # CONFIG_ATM is not set | ||
379 | # CONFIG_BRIDGE is not set | ||
380 | # CONFIG_VLAN_8021Q is not set | ||
381 | # CONFIG_DECNET is not set | ||
382 | # CONFIG_LLC2 is not set | ||
383 | # CONFIG_IPX is not set | ||
384 | # CONFIG_ATALK is not set | ||
385 | # CONFIG_X25 is not set | ||
386 | # CONFIG_LAPB is not set | ||
387 | # CONFIG_ECONET is not set | ||
388 | # CONFIG_WAN_ROUTER is not set | ||
389 | |||
390 | # | ||
391 | # QoS and/or fair queueing | ||
392 | # | ||
393 | # CONFIG_NET_SCHED is not set | ||
394 | CONFIG_NET_CLS_ROUTE=y | ||
395 | |||
396 | # | ||
397 | # Network testing | ||
398 | # | ||
399 | # CONFIG_NET_PKTGEN is not set | ||
400 | # CONFIG_HAMRADIO is not set | ||
401 | # CONFIG_IRDA is not set | ||
402 | # CONFIG_BT is not set | ||
403 | # CONFIG_AF_RXRPC is not set | ||
404 | |||
405 | # | ||
406 | # Wireless | ||
407 | # | ||
408 | # CONFIG_CFG80211 is not set | ||
409 | CONFIG_WIRELESS_EXT=y | ||
410 | # CONFIG_MAC80211 is not set | ||
411 | CONFIG_IEEE80211=m | ||
412 | # CONFIG_IEEE80211_DEBUG is not set | ||
413 | CONFIG_IEEE80211_CRYPT_WEP=m | ||
414 | # CONFIG_IEEE80211_CRYPT_CCMP is not set | ||
415 | # CONFIG_IEEE80211_CRYPT_TKIP is not set | ||
416 | # CONFIG_IEEE80211_SOFTMAC is not set | ||
417 | # CONFIG_RFKILL is not set | ||
418 | |||
419 | # | ||
420 | # Device Drivers | ||
421 | # | ||
422 | |||
423 | # | ||
424 | # Generic Driver Options | ||
425 | # | ||
426 | CONFIG_STANDALONE=y | ||
427 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
428 | CONFIG_FW_LOADER=m | ||
429 | # CONFIG_SYS_HYPERVISOR is not set | ||
430 | |||
431 | # | ||
432 | # Connector - unified userspace <-> kernelspace linker | ||
433 | # | ||
434 | # CONFIG_CONNECTOR is not set | ||
435 | CONFIG_MTD=m | ||
436 | # CONFIG_MTD_DEBUG is not set | ||
437 | # CONFIG_MTD_CONCAT is not set | ||
438 | # CONFIG_MTD_PARTITIONS is not set | ||
439 | |||
440 | # | ||
441 | # User Modules And Translation Layers | ||
442 | # | ||
443 | CONFIG_MTD_CHAR=m | ||
444 | CONFIG_MTD_BLKDEVS=m | ||
445 | CONFIG_MTD_BLOCK=m | ||
446 | # CONFIG_MTD_BLOCK_RO is not set | ||
447 | # CONFIG_FTL is not set | ||
448 | # CONFIG_NFTL is not set | ||
449 | # CONFIG_INFTL is not set | ||
450 | # CONFIG_RFD_FTL is not set | ||
451 | # CONFIG_SSFDC is not set | ||
452 | |||
453 | # | ||
454 | # RAM/ROM/Flash chip drivers | ||
455 | # | ||
456 | CONFIG_MTD_CFI=m | ||
457 | CONFIG_MTD_JEDECPROBE=m | ||
458 | CONFIG_MTD_GEN_PROBE=m | ||
459 | CONFIG_MTD_CFI_ADV_OPTIONS=y | ||
460 | CONFIG_MTD_CFI_NOSWAP=y | ||
461 | # CONFIG_MTD_CFI_BE_BYTE_SWAP is not set | ||
462 | # CONFIG_MTD_CFI_LE_BYTE_SWAP is not set | ||
463 | # CONFIG_MTD_CFI_GEOMETRY is not set | ||
464 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
465 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
466 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
467 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
468 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
469 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
470 | CONFIG_MTD_CFI_I1=y | ||
471 | CONFIG_MTD_CFI_I2=y | ||
472 | # CONFIG_MTD_CFI_I4 is not set | ||
473 | # CONFIG_MTD_CFI_I8 is not set | ||
474 | # CONFIG_MTD_OTP is not set | ||
475 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
476 | CONFIG_MTD_CFI_AMDSTD=m | ||
477 | CONFIG_MTD_CFI_STAA=m | ||
478 | CONFIG_MTD_CFI_UTIL=m | ||
479 | # CONFIG_MTD_RAM is not set | ||
480 | # CONFIG_MTD_ROM is not set | ||
481 | # CONFIG_MTD_ABSENT is not set | ||
482 | |||
483 | # | ||
484 | # Mapping drivers for chip access | ||
485 | # | ||
486 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
487 | CONFIG_MTD_PHYSMAP=m | ||
488 | CONFIG_MTD_PHYSMAP_START=0x1fc00000 | ||
489 | CONFIG_MTD_PHYSMAP_LEN=0x80000 | ||
490 | CONFIG_MTD_PHYSMAP_BANKWIDTH=1 | ||
491 | # CONFIG_MTD_PLATRAM is not set | ||
492 | |||
493 | # | ||
494 | # Self-contained MTD device drivers | ||
495 | # | ||
496 | # CONFIG_MTD_PMC551 is not set | ||
497 | # CONFIG_MTD_SLRAM is not set | ||
498 | # CONFIG_MTD_PHRAM is not set | ||
499 | # CONFIG_MTD_MTDRAM is not set | ||
500 | # CONFIG_MTD_BLOCK2MTD is not set | ||
501 | |||
502 | # | ||
503 | # Disk-On-Chip Device Drivers | ||
504 | # | ||
505 | # CONFIG_MTD_DOC2000 is not set | ||
506 | # CONFIG_MTD_DOC2001 is not set | ||
507 | # CONFIG_MTD_DOC2001PLUS is not set | ||
508 | # CONFIG_MTD_NAND is not set | ||
509 | # CONFIG_MTD_ONENAND is not set | ||
510 | |||
511 | # | ||
512 | # UBI - Unsorted block images | ||
513 | # | ||
514 | # CONFIG_MTD_UBI is not set | ||
515 | |||
516 | # | ||
517 | # Parallel port support | ||
518 | # | ||
519 | # CONFIG_PARPORT is not set | ||
520 | |||
521 | # | ||
522 | # Plug and Play support | ||
523 | # | ||
524 | # CONFIG_PNP is not set | ||
525 | # CONFIG_PNPACPI is not set | ||
526 | |||
527 | # | ||
528 | # Block devices | ||
529 | # | ||
530 | # CONFIG_BLK_CPQ_DA is not set | ||
531 | # CONFIG_BLK_CPQ_CISS_DA is not set | ||
532 | # CONFIG_BLK_DEV_DAC960 is not set | ||
533 | # CONFIG_BLK_DEV_UMEM is not set | ||
534 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
535 | CONFIG_BLK_DEV_LOOP=y | ||
536 | CONFIG_BLK_DEV_CRYPTOLOOP=m | ||
537 | # CONFIG_BLK_DEV_NBD is not set | ||
538 | # CONFIG_BLK_DEV_SX8 is not set | ||
539 | # CONFIG_BLK_DEV_UB is not set | ||
540 | CONFIG_BLK_DEV_RAM=m | ||
541 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
542 | CONFIG_BLK_DEV_RAM_SIZE=4096 | ||
543 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | ||
544 | CONFIG_CDROM_PKTCDVD=m | ||
545 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | ||
546 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | ||
547 | CONFIG_ATA_OVER_ETH=m | ||
548 | |||
549 | # | ||
550 | # Misc devices | ||
551 | # | ||
552 | # CONFIG_PHANTOM is not set | ||
553 | # CONFIG_SGI_IOC4 is not set | ||
554 | # CONFIG_TIFM_CORE is not set | ||
555 | # CONFIG_BLINK is not set | ||
556 | CONFIG_IDE=y | ||
557 | CONFIG_IDE_MAX_HWIFS=4 | ||
558 | CONFIG_BLK_DEV_IDE=y | ||
559 | |||
560 | # | ||
561 | # Please see Documentation/ide.txt for help/info on IDE drives | ||
562 | # | ||
563 | # CONFIG_BLK_DEV_IDE_SATA is not set | ||
564 | CONFIG_BLK_DEV_IDEDISK=y | ||
565 | CONFIG_IDEDISK_MULTI_MODE=y | ||
566 | CONFIG_BLK_DEV_IDECD=y | ||
567 | # CONFIG_BLK_DEV_IDETAPE is not set | ||
568 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | ||
569 | CONFIG_BLK_DEV_IDESCSI=y | ||
570 | CONFIG_IDE_TASK_IOCTL=y | ||
571 | CONFIG_IDE_PROC_FS=y | ||
572 | |||
573 | # | ||
574 | # IDE chipset support/bugfixes | ||
575 | # | ||
576 | CONFIG_IDE_GENERIC=y | ||
577 | CONFIG_BLK_DEV_IDEPCI=y | ||
578 | CONFIG_IDEPCI_SHARE_IRQ=y | ||
579 | CONFIG_IDEPCI_PCIBUS_ORDER=y | ||
580 | # CONFIG_BLK_DEV_OFFBOARD is not set | ||
581 | CONFIG_BLK_DEV_GENERIC=y | ||
582 | # CONFIG_BLK_DEV_OPTI621 is not set | ||
583 | CONFIG_BLK_DEV_IDEDMA_PCI=y | ||
584 | # CONFIG_BLK_DEV_IDEDMA_FORCED is not set | ||
585 | # CONFIG_IDEDMA_ONLYDISK is not set | ||
586 | # CONFIG_BLK_DEV_AEC62XX is not set | ||
587 | # CONFIG_BLK_DEV_ALI15X3 is not set | ||
588 | # CONFIG_BLK_DEV_AMD74XX is not set | ||
589 | # CONFIG_BLK_DEV_CMD64X is not set | ||
590 | # CONFIG_BLK_DEV_TRIFLEX is not set | ||
591 | # CONFIG_BLK_DEV_CY82C693 is not set | ||
592 | # CONFIG_BLK_DEV_CS5520 is not set | ||
593 | # CONFIG_BLK_DEV_CS5530 is not set | ||
594 | # CONFIG_BLK_DEV_HPT34X is not set | ||
595 | # CONFIG_BLK_DEV_HPT366 is not set | ||
596 | # CONFIG_BLK_DEV_JMICRON is not set | ||
597 | # CONFIG_BLK_DEV_SC1200 is not set | ||
598 | # CONFIG_BLK_DEV_PIIX is not set | ||
599 | # CONFIG_BLK_DEV_IT8213 is not set | ||
600 | # CONFIG_BLK_DEV_IT821X is not set | ||
601 | # CONFIG_BLK_DEV_NS87415 is not set | ||
602 | # CONFIG_BLK_DEV_PDC202XX_OLD is not set | ||
603 | # CONFIG_BLK_DEV_PDC202XX_NEW is not set | ||
604 | # CONFIG_BLK_DEV_SVWKS is not set | ||
605 | # CONFIG_BLK_DEV_SIIMAGE is not set | ||
606 | # CONFIG_BLK_DEV_SLC90E66 is not set | ||
607 | # CONFIG_BLK_DEV_TRM290 is not set | ||
608 | CONFIG_BLK_DEV_VIA82CXXX=y | ||
609 | # CONFIG_BLK_DEV_TC86C001 is not set | ||
610 | # CONFIG_IDE_ARM is not set | ||
611 | # CONFIG_IDE_CHIPSETS is not set | ||
612 | CONFIG_BLK_DEV_IDEDMA=y | ||
613 | # CONFIG_IDEDMA_IVB is not set | ||
614 | # CONFIG_BLK_DEV_HD is not set | ||
615 | |||
616 | # | ||
617 | # SCSI device support | ||
618 | # | ||
619 | # CONFIG_RAID_ATTRS is not set | ||
620 | CONFIG_SCSI=y | ||
621 | # CONFIG_SCSI_TGT is not set | ||
622 | # CONFIG_SCSI_NETLINK is not set | ||
623 | CONFIG_SCSI_PROC_FS=y | ||
624 | |||
625 | # | ||
626 | # SCSI support type (disk, tape, CD-ROM) | ||
627 | # | ||
628 | CONFIG_BLK_DEV_SD=y | ||
629 | # CONFIG_CHR_DEV_ST is not set | ||
630 | # CONFIG_CHR_DEV_OSST is not set | ||
631 | CONFIG_BLK_DEV_SR=y | ||
632 | CONFIG_BLK_DEV_SR_VENDOR=y | ||
633 | CONFIG_CHR_DEV_SG=y | ||
634 | # CONFIG_CHR_DEV_SCH is not set | ||
635 | |||
636 | # | ||
637 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | ||
638 | # | ||
639 | # CONFIG_SCSI_MULTI_LUN is not set | ||
640 | CONFIG_SCSI_CONSTANTS=y | ||
641 | # CONFIG_SCSI_LOGGING is not set | ||
642 | # CONFIG_SCSI_SCAN_ASYNC is not set | ||
643 | CONFIG_SCSI_WAIT_SCAN=m | ||
644 | |||
645 | # | ||
646 | # SCSI Transports | ||
647 | # | ||
648 | # CONFIG_SCSI_SPI_ATTRS is not set | ||
649 | # CONFIG_SCSI_FC_ATTRS is not set | ||
650 | # CONFIG_SCSI_ISCSI_ATTRS is not set | ||
651 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
652 | # CONFIG_SCSI_SAS_LIBSAS is not set | ||
653 | |||
654 | # | ||
655 | # SCSI low-level drivers | ||
656 | # | ||
657 | # CONFIG_ISCSI_TCP is not set | ||
658 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | ||
659 | # CONFIG_SCSI_3W_9XXX is not set | ||
660 | # CONFIG_SCSI_ACARD is not set | ||
661 | # CONFIG_SCSI_AACRAID is not set | ||
662 | # CONFIG_SCSI_AIC7XXX is not set | ||
663 | # CONFIG_SCSI_AIC7XXX_OLD is not set | ||
664 | # CONFIG_SCSI_AIC79XX is not set | ||
665 | # CONFIG_SCSI_AIC94XX is not set | ||
666 | # CONFIG_SCSI_IN2000 is not set | ||
667 | # CONFIG_SCSI_ARCMSR is not set | ||
668 | # CONFIG_MEGARAID_NEWGEN is not set | ||
669 | # CONFIG_MEGARAID_LEGACY is not set | ||
670 | # CONFIG_MEGARAID_SAS is not set | ||
671 | # CONFIG_SCSI_HPTIOP is not set | ||
672 | # CONFIG_SCSI_DMX3191D is not set | ||
673 | # CONFIG_SCSI_DTC3280 is not set | ||
674 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | ||
675 | # CONFIG_SCSI_GENERIC_NCR5380 is not set | ||
676 | # CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set | ||
677 | # CONFIG_SCSI_IPS is not set | ||
678 | # CONFIG_SCSI_INITIO is not set | ||
679 | # CONFIG_SCSI_INIA100 is not set | ||
680 | # CONFIG_SCSI_NCR53C406A is not set | ||
681 | # CONFIG_SCSI_STEX is not set | ||
682 | # CONFIG_SCSI_SYM53C8XX_2 is not set | ||
683 | # CONFIG_SCSI_PAS16 is not set | ||
684 | # CONFIG_SCSI_PSI240I is not set | ||
685 | # CONFIG_SCSI_QLOGIC_FAS is not set | ||
686 | # CONFIG_SCSI_QLOGIC_1280 is not set | ||
687 | # CONFIG_SCSI_QLA_FC is not set | ||
688 | # CONFIG_SCSI_QLA_ISCSI is not set | ||
689 | # CONFIG_SCSI_LPFC is not set | ||
690 | # CONFIG_SCSI_SYM53C416 is not set | ||
691 | # CONFIG_SCSI_DC395x is not set | ||
692 | # CONFIG_SCSI_DC390T is not set | ||
693 | # CONFIG_SCSI_T128 is not set | ||
694 | # CONFIG_SCSI_DEBUG is not set | ||
695 | # CONFIG_SCSI_SRP is not set | ||
696 | # CONFIG_ATA is not set | ||
697 | |||
698 | # | ||
699 | # Old CD-ROM drivers (not SCSI, not IDE) | ||
700 | # | ||
701 | # CONFIG_CD_NO_IDESCSI is not set | ||
702 | |||
703 | # | ||
704 | # Multi-device support (RAID and LVM) | ||
705 | # | ||
706 | # CONFIG_MD is not set | ||
707 | |||
708 | # | ||
709 | # Fusion MPT device support | ||
710 | # | ||
711 | # CONFIG_FUSION is not set | ||
712 | # CONFIG_FUSION_SPI is not set | ||
713 | # CONFIG_FUSION_FC is not set | ||
714 | # CONFIG_FUSION_SAS is not set | ||
715 | |||
716 | # | ||
717 | # IEEE 1394 (FireWire) support | ||
718 | # | ||
719 | # CONFIG_FIREWIRE is not set | ||
720 | # CONFIG_IEEE1394 is not set | ||
721 | |||
722 | # | ||
723 | # I2O device support | ||
724 | # | ||
725 | # CONFIG_I2O is not set | ||
726 | |||
727 | # | ||
728 | # Network device support | ||
729 | # | ||
730 | CONFIG_NETDEVICES=y | ||
731 | # CONFIG_DUMMY is not set | ||
732 | # CONFIG_BONDING is not set | ||
733 | # CONFIG_EQUALIZER is not set | ||
734 | # CONFIG_TUN is not set | ||
735 | # CONFIG_ARCNET is not set | ||
736 | CONFIG_PHYLIB=m | ||
737 | |||
738 | # | ||
739 | # MII PHY device drivers | ||
740 | # | ||
741 | CONFIG_MARVELL_PHY=m | ||
742 | CONFIG_DAVICOM_PHY=m | ||
743 | CONFIG_QSEMI_PHY=m | ||
744 | CONFIG_LXT_PHY=m | ||
745 | CONFIG_CICADA_PHY=m | ||
746 | # CONFIG_VITESSE_PHY is not set | ||
747 | # CONFIG_SMSC_PHY is not set | ||
748 | # CONFIG_BROADCOM_PHY is not set | ||
749 | # CONFIG_FIXED_PHY is not set | ||
750 | |||
751 | # | ||
752 | # Ethernet (10 or 100Mbit) | ||
753 | # | ||
754 | CONFIG_NET_ETHERNET=y | ||
755 | CONFIG_MII=y | ||
756 | # CONFIG_HAPPYMEAL is not set | ||
757 | # CONFIG_SUNGEM is not set | ||
758 | # CONFIG_CASSINI is not set | ||
759 | # CONFIG_NET_VENDOR_3COM is not set | ||
760 | # CONFIG_NET_VENDOR_SMC is not set | ||
761 | # CONFIG_DM9000 is not set | ||
762 | # CONFIG_NET_VENDOR_RACAL is not set | ||
763 | |||
764 | # | ||
765 | # Tulip family network device support | ||
766 | # | ||
767 | # CONFIG_NET_TULIP is not set | ||
768 | # CONFIG_AT1700 is not set | ||
769 | # CONFIG_DEPCA is not set | ||
770 | # CONFIG_HP100 is not set | ||
771 | # CONFIG_NET_ISA is not set | ||
772 | CONFIG_NET_PCI=y | ||
773 | # CONFIG_PCNET32 is not set | ||
774 | # CONFIG_AMD8111_ETH is not set | ||
775 | # CONFIG_ADAPTEC_STARFIRE is not set | ||
776 | # CONFIG_AC3200 is not set | ||
777 | # CONFIG_APRICOT is not set | ||
778 | # CONFIG_B44 is not set | ||
779 | # CONFIG_FORCEDETH is not set | ||
780 | # CONFIG_CS89x0 is not set | ||
781 | # CONFIG_TC35815 is not set | ||
782 | # CONFIG_DGRS is not set | ||
783 | # CONFIG_EEPRO100 is not set | ||
784 | # CONFIG_E100 is not set | ||
785 | # CONFIG_FEALNX is not set | ||
786 | # CONFIG_NATSEMI is not set | ||
787 | # CONFIG_NE2K_PCI is not set | ||
788 | # CONFIG_8139CP is not set | ||
789 | CONFIG_8139TOO=y | ||
790 | # CONFIG_8139TOO_PIO is not set | ||
791 | # CONFIG_8139TOO_TUNE_TWISTER is not set | ||
792 | # CONFIG_8139TOO_8129 is not set | ||
793 | # CONFIG_8139_OLD_RX_RESET is not set | ||
794 | # CONFIG_SIS900 is not set | ||
795 | # CONFIG_EPIC100 is not set | ||
796 | # CONFIG_SUNDANCE is not set | ||
797 | # CONFIG_VIA_RHINE is not set | ||
798 | # CONFIG_SC92031 is not set | ||
799 | CONFIG_NETDEV_1000=y | ||
800 | # CONFIG_ACENIC is not set | ||
801 | # CONFIG_DL2K is not set | ||
802 | # CONFIG_E1000 is not set | ||
803 | # CONFIG_NS83820 is not set | ||
804 | # CONFIG_HAMACHI is not set | ||
805 | # CONFIG_YELLOWFIN is not set | ||
806 | # CONFIG_R8169 is not set | ||
807 | # CONFIG_SIS190 is not set | ||
808 | # CONFIG_SKGE is not set | ||
809 | # CONFIG_SKY2 is not set | ||
810 | # CONFIG_SK98LIN is not set | ||
811 | # CONFIG_VIA_VELOCITY is not set | ||
812 | # CONFIG_TIGON3 is not set | ||
813 | # CONFIG_BNX2 is not set | ||
814 | # CONFIG_QLA3XXX is not set | ||
815 | # CONFIG_ATL1 is not set | ||
816 | CONFIG_NETDEV_10000=y | ||
817 | # CONFIG_CHELSIO_T1 is not set | ||
818 | # CONFIG_CHELSIO_T3 is not set | ||
819 | # CONFIG_IXGB is not set | ||
820 | # CONFIG_S2IO is not set | ||
821 | # CONFIG_MYRI10GE is not set | ||
822 | # CONFIG_NETXEN_NIC is not set | ||
823 | # CONFIG_MLX4_CORE is not set | ||
824 | # CONFIG_TR is not set | ||
825 | |||
826 | # | ||
827 | # Wireless LAN | ||
828 | # | ||
829 | # CONFIG_WLAN_PRE80211 is not set | ||
830 | # CONFIG_WLAN_80211 is not set | ||
831 | |||
832 | # | ||
833 | # USB Network Adapters | ||
834 | # | ||
835 | # CONFIG_USB_CATC is not set | ||
836 | # CONFIG_USB_KAWETH is not set | ||
837 | # CONFIG_USB_PEGASUS is not set | ||
838 | # CONFIG_USB_RTL8150 is not set | ||
839 | # CONFIG_USB_USBNET_MII is not set | ||
840 | # CONFIG_USB_USBNET is not set | ||
841 | # CONFIG_WAN is not set | ||
842 | # CONFIG_FDDI is not set | ||
843 | # CONFIG_HIPPI is not set | ||
844 | CONFIG_PPP=m | ||
845 | CONFIG_PPP_MULTILINK=y | ||
846 | CONFIG_PPP_FILTER=y | ||
847 | CONFIG_PPP_ASYNC=m | ||
848 | CONFIG_PPP_SYNC_TTY=m | ||
849 | CONFIG_PPP_DEFLATE=m | ||
850 | CONFIG_PPP_BSDCOMP=m | ||
851 | CONFIG_PPP_MPPE=m | ||
852 | CONFIG_PPPOE=m | ||
853 | CONFIG_SLIP=m | ||
854 | CONFIG_SLIP_COMPRESSED=y | ||
855 | CONFIG_SLHC=m | ||
856 | CONFIG_SLIP_SMART=y | ||
857 | CONFIG_SLIP_MODE_SLIP6=y | ||
858 | CONFIG_NET_FC=y | ||
859 | # CONFIG_SHAPER is not set | ||
860 | # CONFIG_NETCONSOLE is not set | ||
861 | # CONFIG_NETPOLL is not set | ||
862 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
863 | |||
864 | # | ||
865 | # ISDN subsystem | ||
866 | # | ||
867 | # CONFIG_ISDN is not set | ||
868 | |||
869 | # | ||
870 | # Telephony Support | ||
871 | # | ||
872 | # CONFIG_PHONE is not set | ||
873 | |||
874 | # | ||
875 | # Input device support | ||
876 | # | ||
877 | CONFIG_INPUT=y | ||
878 | CONFIG_INPUT_FF_MEMLESS=y | ||
879 | |||
880 | # | ||
881 | # Userland interfaces | ||
882 | # | ||
883 | CONFIG_INPUT_MOUSEDEV=y | ||
884 | CONFIG_INPUT_MOUSEDEV_PSAUX=y | ||
885 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
886 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
887 | # CONFIG_INPUT_JOYDEV is not set | ||
888 | # CONFIG_INPUT_TSDEV is not set | ||
889 | # CONFIG_INPUT_EVDEV is not set | ||
890 | # CONFIG_INPUT_EVBUG is not set | ||
891 | |||
892 | # | ||
893 | # Input Device Drivers | ||
894 | # | ||
895 | CONFIG_INPUT_KEYBOARD=y | ||
896 | CONFIG_KEYBOARD_ATKBD=m | ||
897 | # CONFIG_KEYBOARD_SUNKBD is not set | ||
898 | # CONFIG_KEYBOARD_LKKBD is not set | ||
899 | # CONFIG_KEYBOARD_XTKBD is not set | ||
900 | # CONFIG_KEYBOARD_NEWTON is not set | ||
901 | # CONFIG_KEYBOARD_STOWAWAY is not set | ||
902 | CONFIG_INPUT_MOUSE=y | ||
903 | CONFIG_MOUSE_PS2=y | ||
904 | CONFIG_MOUSE_PS2_ALPS=y | ||
905 | CONFIG_MOUSE_PS2_LOGIPS2PP=y | ||
906 | CONFIG_MOUSE_PS2_SYNAPTICS=y | ||
907 | CONFIG_MOUSE_PS2_LIFEBOOK=y | ||
908 | CONFIG_MOUSE_PS2_TRACKPOINT=y | ||
909 | # CONFIG_MOUSE_PS2_TOUCHKIT is not set | ||
910 | CONFIG_MOUSE_SERIAL=y | ||
911 | # CONFIG_MOUSE_APPLETOUCH is not set | ||
912 | # CONFIG_MOUSE_INPORT is not set | ||
913 | # CONFIG_MOUSE_LOGIBM is not set | ||
914 | # CONFIG_MOUSE_PC110PAD is not set | ||
915 | # CONFIG_MOUSE_VSXXXAA is not set | ||
916 | # CONFIG_INPUT_JOYSTICK is not set | ||
917 | # CONFIG_INPUT_TABLET is not set | ||
918 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
919 | # CONFIG_INPUT_MISC is not set | ||
920 | |||
921 | # | ||
922 | # Hardware I/O ports | ||
923 | # | ||
924 | CONFIG_SERIO=y | ||
925 | CONFIG_SERIO_I8042=y | ||
926 | CONFIG_SERIO_SERPORT=y | ||
927 | # CONFIG_SERIO_PCIPS2 is not set | ||
928 | CONFIG_SERIO_LIBPS2=y | ||
929 | # CONFIG_SERIO_RAW is not set | ||
930 | # CONFIG_GAMEPORT is not set | ||
931 | |||
932 | # | ||
933 | # Character devices | ||
934 | # | ||
935 | CONFIG_VT=y | ||
936 | CONFIG_VT_CONSOLE=y | ||
937 | CONFIG_HW_CONSOLE=y | ||
938 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | ||
939 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
940 | |||
941 | # | ||
942 | # Serial drivers | ||
943 | # | ||
944 | CONFIG_SERIAL_8250=y | ||
945 | CONFIG_SERIAL_8250_CONSOLE=y | ||
946 | CONFIG_SERIAL_8250_PCI=y | ||
947 | CONFIG_SERIAL_8250_NR_UARTS=2 | ||
948 | CONFIG_SERIAL_8250_RUNTIME_UARTS=2 | ||
949 | # CONFIG_SERIAL_8250_EXTENDED is not set | ||
950 | |||
951 | # | ||
952 | # Non-8250 serial port support | ||
953 | # | ||
954 | CONFIG_SERIAL_CORE=y | ||
955 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
956 | # CONFIG_SERIAL_JSM is not set | ||
957 | CONFIG_UNIX98_PTYS=y | ||
958 | CONFIG_LEGACY_PTYS=y | ||
959 | CONFIG_LEGACY_PTY_COUNT=256 | ||
960 | |||
961 | # | ||
962 | # IPMI | ||
963 | # | ||
964 | # CONFIG_IPMI_HANDLER is not set | ||
965 | # CONFIG_WATCHDOG is not set | ||
966 | CONFIG_HW_RANDOM=y | ||
967 | CONFIG_RTC=y | ||
968 | # CONFIG_DTLK is not set | ||
969 | # CONFIG_R3964 is not set | ||
970 | # CONFIG_APPLICOM is not set | ||
971 | # CONFIG_DRM is not set | ||
972 | # CONFIG_RAW_DRIVER is not set | ||
973 | |||
974 | # | ||
975 | # TPM devices | ||
976 | # | ||
977 | # CONFIG_TCG_TPM is not set | ||
978 | CONFIG_DEVPORT=y | ||
979 | CONFIG_I2C=m | ||
980 | CONFIG_I2C_BOARDINFO=y | ||
981 | CONFIG_I2C_CHARDEV=m | ||
982 | |||
983 | # | ||
984 | # I2C Algorithms | ||
985 | # | ||
986 | # CONFIG_I2C_ALGOBIT is not set | ||
987 | # CONFIG_I2C_ALGOPCF is not set | ||
988 | # CONFIG_I2C_ALGOPCA is not set | ||
989 | |||
990 | # | ||
991 | # I2C Hardware Bus support | ||
992 | # | ||
993 | # CONFIG_I2C_ALI1535 is not set | ||
994 | # CONFIG_I2C_ALI1563 is not set | ||
995 | # CONFIG_I2C_ALI15X3 is not set | ||
996 | # CONFIG_I2C_AMD756 is not set | ||
997 | # CONFIG_I2C_AMD8111 is not set | ||
998 | # CONFIG_I2C_ELEKTOR is not set | ||
999 | # CONFIG_I2C_I801 is not set | ||
1000 | # CONFIG_I2C_I810 is not set | ||
1001 | # CONFIG_I2C_PIIX4 is not set | ||
1002 | # CONFIG_I2C_NFORCE2 is not set | ||
1003 | # CONFIG_I2C_OCORES is not set | ||
1004 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
1005 | # CONFIG_I2C_PROSAVAGE is not set | ||
1006 | # CONFIG_I2C_SAVAGE4 is not set | ||
1007 | # CONFIG_I2C_SIMTEC is not set | ||
1008 | # CONFIG_I2C_SIS5595 is not set | ||
1009 | # CONFIG_I2C_SIS630 is not set | ||
1010 | # CONFIG_I2C_SIS96X is not set | ||
1011 | # CONFIG_I2C_STUB is not set | ||
1012 | # CONFIG_I2C_TINY_USB is not set | ||
1013 | # CONFIG_I2C_VIA is not set | ||
1014 | CONFIG_I2C_VIAPRO=m | ||
1015 | # CONFIG_I2C_VOODOO3 is not set | ||
1016 | # CONFIG_I2C_PCA_ISA is not set | ||
1017 | |||
1018 | # | ||
1019 | # Miscellaneous I2C Chip support | ||
1020 | # | ||
1021 | # CONFIG_SENSORS_DS1337 is not set | ||
1022 | # CONFIG_SENSORS_DS1374 is not set | ||
1023 | # CONFIG_SENSORS_EEPROM is not set | ||
1024 | # CONFIG_SENSORS_PCF8574 is not set | ||
1025 | # CONFIG_SENSORS_PCA9539 is not set | ||
1026 | # CONFIG_SENSORS_PCF8591 is not set | ||
1027 | # CONFIG_SENSORS_MAX6875 is not set | ||
1028 | # CONFIG_I2C_DEBUG_CORE is not set | ||
1029 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
1030 | # CONFIG_I2C_DEBUG_BUS is not set | ||
1031 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
1032 | |||
1033 | # | ||
1034 | # SPI support | ||
1035 | # | ||
1036 | # CONFIG_SPI is not set | ||
1037 | # CONFIG_SPI_MASTER is not set | ||
1038 | |||
1039 | # | ||
1040 | # Dallas's 1-wire bus | ||
1041 | # | ||
1042 | # CONFIG_W1 is not set | ||
1043 | # CONFIG_HWMON is not set | ||
1044 | |||
1045 | # | ||
1046 | # Multifunction device drivers | ||
1047 | # | ||
1048 | # CONFIG_MFD_SM501 is not set | ||
1049 | |||
1050 | # | ||
1051 | # Multimedia devices | ||
1052 | # | ||
1053 | CONFIG_VIDEO_DEV=m | ||
1054 | CONFIG_VIDEO_V4L1=y | ||
1055 | CONFIG_VIDEO_V4L1_COMPAT=y | ||
1056 | CONFIG_VIDEO_V4L2=y | ||
1057 | CONFIG_VIDEO_CAPTURE_DRIVERS=y | ||
1058 | # CONFIG_VIDEO_ADV_DEBUG is not set | ||
1059 | CONFIG_VIDEO_HELPER_CHIPS_AUTO=y | ||
1060 | # CONFIG_VIDEO_VIVI is not set | ||
1061 | # CONFIG_VIDEO_BT848 is not set | ||
1062 | # CONFIG_VIDEO_PMS is not set | ||
1063 | # CONFIG_VIDEO_CPIA is not set | ||
1064 | # CONFIG_VIDEO_CPIA2 is not set | ||
1065 | # CONFIG_VIDEO_SAA5246A is not set | ||
1066 | # CONFIG_VIDEO_SAA5249 is not set | ||
1067 | # CONFIG_TUNER_3036 is not set | ||
1068 | # CONFIG_VIDEO_STRADIS is not set | ||
1069 | # CONFIG_VIDEO_SAA7134 is not set | ||
1070 | # CONFIG_VIDEO_MXB is not set | ||
1071 | # CONFIG_VIDEO_DPC is not set | ||
1072 | # CONFIG_VIDEO_HEXIUM_ORION is not set | ||
1073 | # CONFIG_VIDEO_HEXIUM_GEMINI is not set | ||
1074 | # CONFIG_VIDEO_CX88 is not set | ||
1075 | # CONFIG_VIDEO_IVTV is not set | ||
1076 | # CONFIG_VIDEO_CAFE_CCIC is not set | ||
1077 | CONFIG_V4L_USB_DRIVERS=y | ||
1078 | # CONFIG_VIDEO_PVRUSB2 is not set | ||
1079 | # CONFIG_VIDEO_EM28XX is not set | ||
1080 | # CONFIG_VIDEO_USBVISION is not set | ||
1081 | CONFIG_VIDEO_USBVIDEO=m | ||
1082 | CONFIG_USB_VICAM=m | ||
1083 | CONFIG_USB_IBMCAM=m | ||
1084 | CONFIG_USB_KONICAWC=m | ||
1085 | CONFIG_USB_QUICKCAM_MESSENGER=m | ||
1086 | CONFIG_USB_ET61X251=m | ||
1087 | # CONFIG_VIDEO_OVCAMCHIP is not set | ||
1088 | # CONFIG_USB_W9968CF is not set | ||
1089 | CONFIG_USB_OV511=m | ||
1090 | CONFIG_USB_SE401=m | ||
1091 | CONFIG_USB_SN9C102=m | ||
1092 | CONFIG_USB_STV680=m | ||
1093 | CONFIG_USB_ZC0301=m | ||
1094 | CONFIG_USB_PWC=m | ||
1095 | # CONFIG_USB_PWC_DEBUG is not set | ||
1096 | # CONFIG_USB_ZR364XX is not set | ||
1097 | CONFIG_RADIO_ADAPTERS=y | ||
1098 | # CONFIG_RADIO_CADET is not set | ||
1099 | # CONFIG_RADIO_RTRACK is not set | ||
1100 | # CONFIG_RADIO_RTRACK2 is not set | ||
1101 | # CONFIG_RADIO_AZTECH is not set | ||
1102 | # CONFIG_RADIO_GEMTEK is not set | ||
1103 | # CONFIG_RADIO_GEMTEK_PCI is not set | ||
1104 | # CONFIG_RADIO_MAXIRADIO is not set | ||
1105 | # CONFIG_RADIO_MAESTRO is not set | ||
1106 | # CONFIG_RADIO_SF16FMI is not set | ||
1107 | # CONFIG_RADIO_SF16FMR2 is not set | ||
1108 | # CONFIG_RADIO_TERRATEC is not set | ||
1109 | # CONFIG_RADIO_TRUST is not set | ||
1110 | # CONFIG_RADIO_TYPHOON is not set | ||
1111 | # CONFIG_RADIO_ZOLTRIX is not set | ||
1112 | # CONFIG_USB_DSBR is not set | ||
1113 | # CONFIG_DVB_CORE is not set | ||
1114 | CONFIG_DAB=y | ||
1115 | # CONFIG_USB_DABUSB is not set | ||
1116 | |||
1117 | # | ||
1118 | # Graphics support | ||
1119 | # | ||
1120 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | ||
1121 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | ||
1122 | CONFIG_LCD_CLASS_DEVICE=m | ||
1123 | |||
1124 | # | ||
1125 | # Display device support | ||
1126 | # | ||
1127 | # CONFIG_DISPLAY_SUPPORT is not set | ||
1128 | # CONFIG_VGASTATE is not set | ||
1129 | CONFIG_FB=y | ||
1130 | # CONFIG_FIRMWARE_EDID is not set | ||
1131 | # CONFIG_FB_DDC is not set | ||
1132 | CONFIG_FB_CFB_FILLRECT=y | ||
1133 | CONFIG_FB_CFB_COPYAREA=y | ||
1134 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
1135 | # CONFIG_FB_SYS_FILLRECT is not set | ||
1136 | # CONFIG_FB_SYS_COPYAREA is not set | ||
1137 | # CONFIG_FB_SYS_IMAGEBLIT is not set | ||
1138 | # CONFIG_FB_SYS_FOPS is not set | ||
1139 | CONFIG_FB_DEFERRED_IO=y | ||
1140 | # CONFIG_FB_SVGALIB is not set | ||
1141 | # CONFIG_FB_MACMODES is not set | ||
1142 | CONFIG_FB_BACKLIGHT=y | ||
1143 | CONFIG_FB_MODE_HELPERS=y | ||
1144 | # CONFIG_FB_TILEBLITTING is not set | ||
1145 | |||
1146 | # | ||
1147 | # Frame buffer hardware drivers | ||
1148 | # | ||
1149 | # CONFIG_FB_CIRRUS is not set | ||
1150 | # CONFIG_FB_PM2 is not set | ||
1151 | # CONFIG_FB_CYBER2000 is not set | ||
1152 | # CONFIG_FB_ASILIANT is not set | ||
1153 | # CONFIG_FB_IMSTT is not set | ||
1154 | # CONFIG_FB_S1D13XXX is not set | ||
1155 | # CONFIG_FB_NVIDIA is not set | ||
1156 | # CONFIG_FB_RIVA is not set | ||
1157 | # CONFIG_FB_MATROX is not set | ||
1158 | CONFIG_FB_RADEON=y | ||
1159 | # CONFIG_FB_RADEON_I2C is not set | ||
1160 | CONFIG_FB_RADEON_BACKLIGHT=y | ||
1161 | # CONFIG_FB_RADEON_DEBUG is not set | ||
1162 | # CONFIG_FB_ATY128 is not set | ||
1163 | # CONFIG_FB_ATY is not set | ||
1164 | # CONFIG_FB_S3 is not set | ||
1165 | # CONFIG_FB_SAVAGE is not set | ||
1166 | # CONFIG_FB_SIS is not set | ||
1167 | # CONFIG_FB_NEOMAGIC is not set | ||
1168 | # CONFIG_FB_KYRO is not set | ||
1169 | # CONFIG_FB_3DFX is not set | ||
1170 | # CONFIG_FB_VOODOO1 is not set | ||
1171 | # CONFIG_FB_SMIVGX is not set | ||
1172 | # CONFIG_FB_VT8623 is not set | ||
1173 | # CONFIG_FB_TRIDENT is not set | ||
1174 | # CONFIG_FB_ARK is not set | ||
1175 | # CONFIG_FB_PM3 is not set | ||
1176 | # CONFIG_FB_VIRTUAL is not set | ||
1177 | |||
1178 | # | ||
1179 | # Console display driver support | ||
1180 | # | ||
1181 | # CONFIG_VGA_CONSOLE is not set | ||
1182 | # CONFIG_MDA_CONSOLE is not set | ||
1183 | CONFIG_DUMMY_CONSOLE=y | ||
1184 | CONFIG_FRAMEBUFFER_CONSOLE=y | ||
1185 | # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set | ||
1186 | # CONFIG_FONTS is not set | ||
1187 | CONFIG_FONT_8x8=y | ||
1188 | CONFIG_FONT_8x16=y | ||
1189 | # CONFIG_LOGO is not set | ||
1190 | |||
1191 | # | ||
1192 | # Sound | ||
1193 | # | ||
1194 | CONFIG_SOUND=y | ||
1195 | |||
1196 | # | ||
1197 | # Advanced Linux Sound Architecture | ||
1198 | # | ||
1199 | CONFIG_SND=m | ||
1200 | CONFIG_SND_TIMER=m | ||
1201 | CONFIG_SND_PCM=m | ||
1202 | CONFIG_SND_RAWMIDI=m | ||
1203 | CONFIG_SND_SEQUENCER=m | ||
1204 | CONFIG_SND_SEQ_DUMMY=m | ||
1205 | CONFIG_SND_OSSEMUL=y | ||
1206 | CONFIG_SND_MIXER_OSS=m | ||
1207 | CONFIG_SND_PCM_OSS=m | ||
1208 | CONFIG_SND_PCM_OSS_PLUGINS=y | ||
1209 | CONFIG_SND_SEQUENCER_OSS=y | ||
1210 | CONFIG_SND_RTCTIMER=m | ||
1211 | CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y | ||
1212 | # CONFIG_SND_DYNAMIC_MINORS is not set | ||
1213 | CONFIG_SND_SUPPORT_OLD_API=y | ||
1214 | CONFIG_SND_VERBOSE_PROCFS=y | ||
1215 | # CONFIG_SND_VERBOSE_PRINTK is not set | ||
1216 | # CONFIG_SND_DEBUG is not set | ||
1217 | |||
1218 | # | ||
1219 | # Generic devices | ||
1220 | # | ||
1221 | CONFIG_SND_MPU401_UART=m | ||
1222 | CONFIG_SND_AC97_CODEC=m | ||
1223 | # CONFIG_SND_DUMMY is not set | ||
1224 | # CONFIG_SND_VIRMIDI is not set | ||
1225 | # CONFIG_SND_MTPAV is not set | ||
1226 | # CONFIG_SND_SERIAL_U16550 is not set | ||
1227 | # CONFIG_SND_MPU401 is not set | ||
1228 | |||
1229 | # | ||
1230 | # PCI devices | ||
1231 | # | ||
1232 | # CONFIG_SND_AD1889 is not set | ||
1233 | # CONFIG_SND_ALS300 is not set | ||
1234 | # CONFIG_SND_ALI5451 is not set | ||
1235 | # CONFIG_SND_ATIIXP is not set | ||
1236 | # CONFIG_SND_ATIIXP_MODEM is not set | ||
1237 | # CONFIG_SND_AU8810 is not set | ||
1238 | # CONFIG_SND_AU8820 is not set | ||
1239 | # CONFIG_SND_AU8830 is not set | ||
1240 | # CONFIG_SND_AZT3328 is not set | ||
1241 | # CONFIG_SND_BT87X is not set | ||
1242 | # CONFIG_SND_CA0106 is not set | ||
1243 | # CONFIG_SND_CMIPCI is not set | ||
1244 | # CONFIG_SND_CS4281 is not set | ||
1245 | # CONFIG_SND_CS46XX is not set | ||
1246 | # CONFIG_SND_DARLA20 is not set | ||
1247 | # CONFIG_SND_GINA20 is not set | ||
1248 | # CONFIG_SND_LAYLA20 is not set | ||
1249 | # CONFIG_SND_DARLA24 is not set | ||
1250 | # CONFIG_SND_GINA24 is not set | ||
1251 | # CONFIG_SND_LAYLA24 is not set | ||
1252 | # CONFIG_SND_MONA is not set | ||
1253 | # CONFIG_SND_MIA is not set | ||
1254 | # CONFIG_SND_ECHO3G is not set | ||
1255 | # CONFIG_SND_INDIGO is not set | ||
1256 | # CONFIG_SND_INDIGOIO is not set | ||
1257 | # CONFIG_SND_INDIGODJ is not set | ||
1258 | # CONFIG_SND_EMU10K1 is not set | ||
1259 | # CONFIG_SND_EMU10K1X is not set | ||
1260 | # CONFIG_SND_ENS1370 is not set | ||
1261 | # CONFIG_SND_ENS1371 is not set | ||
1262 | # CONFIG_SND_ES1938 is not set | ||
1263 | # CONFIG_SND_ES1968 is not set | ||
1264 | # CONFIG_SND_FM801 is not set | ||
1265 | # CONFIG_SND_HDA_INTEL is not set | ||
1266 | # CONFIG_SND_HDSP is not set | ||
1267 | # CONFIG_SND_HDSPM is not set | ||
1268 | # CONFIG_SND_ICE1712 is not set | ||
1269 | # CONFIG_SND_ICE1724 is not set | ||
1270 | # CONFIG_SND_INTEL8X0 is not set | ||
1271 | # CONFIG_SND_INTEL8X0M is not set | ||
1272 | # CONFIG_SND_KORG1212 is not set | ||
1273 | # CONFIG_SND_MAESTRO3 is not set | ||
1274 | # CONFIG_SND_MIXART is not set | ||
1275 | # CONFIG_SND_NM256 is not set | ||
1276 | # CONFIG_SND_PCXHR is not set | ||
1277 | # CONFIG_SND_RIPTIDE is not set | ||
1278 | # CONFIG_SND_RME32 is not set | ||
1279 | # CONFIG_SND_RME96 is not set | ||
1280 | # CONFIG_SND_RME9652 is not set | ||
1281 | # CONFIG_SND_SONICVIBES is not set | ||
1282 | # CONFIG_SND_TRIDENT is not set | ||
1283 | CONFIG_SND_VIA82XX=m | ||
1284 | # CONFIG_SND_VIA82XX_MODEM is not set | ||
1285 | # CONFIG_SND_VX222 is not set | ||
1286 | # CONFIG_SND_YMFPCI is not set | ||
1287 | # CONFIG_SND_AC97_POWER_SAVE is not set | ||
1288 | |||
1289 | # | ||
1290 | # ALSA MIPS devices | ||
1291 | # | ||
1292 | |||
1293 | # | ||
1294 | # USB devices | ||
1295 | # | ||
1296 | # CONFIG_SND_USB_AUDIO is not set | ||
1297 | # CONFIG_SND_USB_CAIAQ is not set | ||
1298 | |||
1299 | # | ||
1300 | # System on Chip audio support | ||
1301 | # | ||
1302 | # CONFIG_SND_SOC is not set | ||
1303 | |||
1304 | # | ||
1305 | # Open Sound System | ||
1306 | # | ||
1307 | # CONFIG_SOUND_PRIME is not set | ||
1308 | CONFIG_AC97_BUS=m | ||
1309 | |||
1310 | # | ||
1311 | # HID Devices | ||
1312 | # | ||
1313 | CONFIG_HID=y | ||
1314 | # CONFIG_HID_DEBUG is not set | ||
1315 | |||
1316 | # | ||
1317 | # USB Input Devices | ||
1318 | # | ||
1319 | CONFIG_USB_HID=m | ||
1320 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
1321 | # CONFIG_HID_FF is not set | ||
1322 | CONFIG_USB_HIDDEV=y | ||
1323 | |||
1324 | # | ||
1325 | # USB HID Boot Protocol drivers | ||
1326 | # | ||
1327 | # CONFIG_USB_KBD is not set | ||
1328 | # CONFIG_USB_MOUSE is not set | ||
1329 | |||
1330 | # | ||
1331 | # USB support | ||
1332 | # | ||
1333 | CONFIG_USB_ARCH_HAS_HCD=y | ||
1334 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
1335 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
1336 | CONFIG_USB=y | ||
1337 | # CONFIG_USB_DEBUG is not set | ||
1338 | |||
1339 | # | ||
1340 | # Miscellaneous USB options | ||
1341 | # | ||
1342 | CONFIG_USB_DEVICEFS=y | ||
1343 | # CONFIG_USB_DEVICE_CLASS is not set | ||
1344 | # CONFIG_USB_DYNAMIC_MINORS is not set | ||
1345 | # CONFIG_USB_SUSPEND is not set | ||
1346 | # CONFIG_USB_OTG is not set | ||
1347 | |||
1348 | # | ||
1349 | # USB Host Controller Drivers | ||
1350 | # | ||
1351 | CONFIG_USB_EHCI_HCD=y | ||
1352 | CONFIG_USB_EHCI_SPLIT_ISO=y | ||
1353 | CONFIG_USB_EHCI_ROOT_HUB_TT=y | ||
1354 | CONFIG_USB_EHCI_TT_NEWSCHED=y | ||
1355 | # CONFIG_USB_EHCI_BIG_ENDIAN_MMIO is not set | ||
1356 | # CONFIG_USB_ISP116X_HCD is not set | ||
1357 | CONFIG_USB_OHCI_HCD=y | ||
1358 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set | ||
1359 | # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set | ||
1360 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y | ||
1361 | CONFIG_USB_UHCI_HCD=m | ||
1362 | # CONFIG_USB_SL811_HCD is not set | ||
1363 | |||
1364 | # | ||
1365 | # USB Device Class drivers | ||
1366 | # | ||
1367 | CONFIG_USB_ACM=y | ||
1368 | CONFIG_USB_PRINTER=y | ||
1369 | |||
1370 | # | ||
1371 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
1372 | # | ||
1373 | |||
1374 | # | ||
1375 | # may also be needed; see USB_STORAGE Help for more information | ||
1376 | # | ||
1377 | CONFIG_USB_STORAGE=y | ||
1378 | # CONFIG_USB_STORAGE_DEBUG is not set | ||
1379 | # CONFIG_USB_STORAGE_DATAFAB is not set | ||
1380 | # CONFIG_USB_STORAGE_FREECOM is not set | ||
1381 | # CONFIG_USB_STORAGE_ISD200 is not set | ||
1382 | # CONFIG_USB_STORAGE_DPCM is not set | ||
1383 | # CONFIG_USB_STORAGE_USBAT is not set | ||
1384 | # CONFIG_USB_STORAGE_SDDR09 is not set | ||
1385 | # CONFIG_USB_STORAGE_SDDR55 is not set | ||
1386 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | ||
1387 | # CONFIG_USB_STORAGE_ALAUDA is not set | ||
1388 | # CONFIG_USB_STORAGE_KARMA is not set | ||
1389 | CONFIG_USB_LIBUSUAL=y | ||
1390 | |||
1391 | # | ||
1392 | # USB Imaging devices | ||
1393 | # | ||
1394 | # CONFIG_USB_MDC800 is not set | ||
1395 | # CONFIG_USB_MICROTEK is not set | ||
1396 | # CONFIG_USB_MON is not set | ||
1397 | |||
1398 | # | ||
1399 | # USB port drivers | ||
1400 | # | ||
1401 | |||
1402 | # | ||
1403 | # USB Serial Converter support | ||
1404 | # | ||
1405 | # CONFIG_USB_SERIAL is not set | ||
1406 | |||
1407 | # | ||
1408 | # USB Miscellaneous drivers | ||
1409 | # | ||
1410 | # CONFIG_USB_EMI62 is not set | ||
1411 | # CONFIG_USB_EMI26 is not set | ||
1412 | # CONFIG_USB_ADUTUX is not set | ||
1413 | # CONFIG_USB_AUERSWALD is not set | ||
1414 | # CONFIG_USB_RIO500 is not set | ||
1415 | # CONFIG_USB_LEGOTOWER is not set | ||
1416 | # CONFIG_USB_LCD is not set | ||
1417 | # CONFIG_USB_BERRY_CHARGE is not set | ||
1418 | # CONFIG_USB_LED is not set | ||
1419 | # CONFIG_USB_CYPRESS_CY7C63 is not set | ||
1420 | # CONFIG_USB_CYTHERM is not set | ||
1421 | # CONFIG_USB_PHIDGET is not set | ||
1422 | # CONFIG_USB_IDMOUSE is not set | ||
1423 | # CONFIG_USB_FTDI_ELAN is not set | ||
1424 | # CONFIG_USB_APPLEDISPLAY is not set | ||
1425 | # CONFIG_USB_SISUSBVGA is not set | ||
1426 | # CONFIG_USB_LD is not set | ||
1427 | # CONFIG_USB_TRANCEVIBRATOR is not set | ||
1428 | # CONFIG_USB_IOWARRIOR is not set | ||
1429 | # CONFIG_USB_TEST is not set | ||
1430 | |||
1431 | # | ||
1432 | # USB DSL modem support | ||
1433 | # | ||
1434 | |||
1435 | # | ||
1436 | # USB Gadget Support | ||
1437 | # | ||
1438 | # CONFIG_USB_GADGET is not set | ||
1439 | # CONFIG_MMC is not set | ||
1440 | |||
1441 | # | ||
1442 | # LED devices | ||
1443 | # | ||
1444 | # CONFIG_NEW_LEDS is not set | ||
1445 | |||
1446 | # | ||
1447 | # LED drivers | ||
1448 | # | ||
1449 | |||
1450 | # | ||
1451 | # LED Triggers | ||
1452 | # | ||
1453 | |||
1454 | # | ||
1455 | # InfiniBand support | ||
1456 | # | ||
1457 | # CONFIG_INFINIBAND is not set | ||
1458 | |||
1459 | # | ||
1460 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
1461 | # | ||
1462 | |||
1463 | # | ||
1464 | # Real Time Clock | ||
1465 | # | ||
1466 | # CONFIG_RTC_CLASS is not set | ||
1467 | |||
1468 | # | ||
1469 | # DMA Engine support | ||
1470 | # | ||
1471 | # CONFIG_DMA_ENGINE is not set | ||
1472 | |||
1473 | # | ||
1474 | # DMA Clients | ||
1475 | # | ||
1476 | |||
1477 | # | ||
1478 | # DMA Devices | ||
1479 | # | ||
1480 | |||
1481 | # | ||
1482 | # File systems | ||
1483 | # | ||
1484 | CONFIG_EXT2_FS=y | ||
1485 | # CONFIG_EXT2_FS_XATTR is not set | ||
1486 | CONFIG_EXT2_FS_XIP=y | ||
1487 | CONFIG_FS_XIP=y | ||
1488 | CONFIG_EXT3_FS=y | ||
1489 | # CONFIG_EXT3_FS_XATTR is not set | ||
1490 | # CONFIG_EXT4DEV_FS is not set | ||
1491 | CONFIG_JBD=y | ||
1492 | # CONFIG_JBD_DEBUG is not set | ||
1493 | CONFIG_REISERFS_FS=m | ||
1494 | # CONFIG_REISERFS_CHECK is not set | ||
1495 | # CONFIG_REISERFS_PROC_INFO is not set | ||
1496 | # CONFIG_REISERFS_FS_XATTR is not set | ||
1497 | # CONFIG_JFS_FS is not set | ||
1498 | CONFIG_FS_POSIX_ACL=y | ||
1499 | # CONFIG_XFS_FS is not set | ||
1500 | # CONFIG_GFS2_FS is not set | ||
1501 | # CONFIG_OCFS2_FS is not set | ||
1502 | # CONFIG_MINIX_FS is not set | ||
1503 | # CONFIG_ROMFS_FS is not set | ||
1504 | CONFIG_INOTIFY=y | ||
1505 | CONFIG_INOTIFY_USER=y | ||
1506 | # CONFIG_QUOTA is not set | ||
1507 | CONFIG_DNOTIFY=y | ||
1508 | CONFIG_AUTOFS_FS=y | ||
1509 | CONFIG_AUTOFS4_FS=y | ||
1510 | CONFIG_FUSE_FS=y | ||
1511 | |||
1512 | # | ||
1513 | # CD-ROM/DVD Filesystems | ||
1514 | # | ||
1515 | CONFIG_ISO9660_FS=m | ||
1516 | CONFIG_JOLIET=y | ||
1517 | CONFIG_ZISOFS=y | ||
1518 | CONFIG_UDF_FS=m | ||
1519 | CONFIG_UDF_NLS=y | ||
1520 | |||
1521 | # | ||
1522 | # DOS/FAT/NT Filesystems | ||
1523 | # | ||
1524 | CONFIG_FAT_FS=m | ||
1525 | CONFIG_MSDOS_FS=m | ||
1526 | CONFIG_VFAT_FS=m | ||
1527 | CONFIG_FAT_DEFAULT_CODEPAGE=936 | ||
1528 | CONFIG_FAT_DEFAULT_IOCHARSET="utf8" | ||
1529 | CONFIG_NTFS_FS=m | ||
1530 | # CONFIG_NTFS_DEBUG is not set | ||
1531 | CONFIG_NTFS_RW=y | ||
1532 | |||
1533 | # | ||
1534 | # Pseudo filesystems | ||
1535 | # | ||
1536 | CONFIG_PROC_FS=y | ||
1537 | CONFIG_PROC_KCORE=y | ||
1538 | CONFIG_PROC_SYSCTL=y | ||
1539 | CONFIG_SYSFS=y | ||
1540 | CONFIG_TMPFS=y | ||
1541 | # CONFIG_TMPFS_POSIX_ACL is not set | ||
1542 | # CONFIG_HUGETLB_PAGE is not set | ||
1543 | CONFIG_RAMFS=y | ||
1544 | # CONFIG_CONFIGFS_FS is not set | ||
1545 | |||
1546 | # | ||
1547 | # Miscellaneous filesystems | ||
1548 | # | ||
1549 | # CONFIG_ADFS_FS is not set | ||
1550 | # CONFIG_AFFS_FS is not set | ||
1551 | # CONFIG_HFS_FS is not set | ||
1552 | # CONFIG_HFSPLUS_FS is not set | ||
1553 | # CONFIG_BEFS_FS is not set | ||
1554 | # CONFIG_BFS_FS is not set | ||
1555 | # CONFIG_EFS_FS is not set | ||
1556 | # CONFIG_JFFS2_FS is not set | ||
1557 | # CONFIG_CRAMFS is not set | ||
1558 | # CONFIG_VXFS_FS is not set | ||
1559 | # CONFIG_HPFS_FS is not set | ||
1560 | # CONFIG_QNX4FS_FS is not set | ||
1561 | # CONFIG_SYSV_FS is not set | ||
1562 | # CONFIG_UFS_FS is not set | ||
1563 | |||
1564 | # | ||
1565 | # Network File Systems | ||
1566 | # | ||
1567 | CONFIG_NFS_FS=m | ||
1568 | CONFIG_NFS_V3=y | ||
1569 | CONFIG_NFS_V3_ACL=y | ||
1570 | CONFIG_NFS_V4=y | ||
1571 | CONFIG_NFS_DIRECTIO=y | ||
1572 | CONFIG_NFSD=m | ||
1573 | CONFIG_NFSD_V2_ACL=y | ||
1574 | CONFIG_NFSD_V3=y | ||
1575 | CONFIG_NFSD_V3_ACL=y | ||
1576 | CONFIG_NFSD_V4=y | ||
1577 | CONFIG_NFSD_TCP=y | ||
1578 | CONFIG_LOCKD=m | ||
1579 | CONFIG_LOCKD_V4=y | ||
1580 | CONFIG_EXPORTFS=m | ||
1581 | CONFIG_NFS_ACL_SUPPORT=m | ||
1582 | CONFIG_NFS_COMMON=y | ||
1583 | CONFIG_SUNRPC=m | ||
1584 | CONFIG_SUNRPC_GSS=m | ||
1585 | # CONFIG_SUNRPC_BIND34 is not set | ||
1586 | CONFIG_RPCSEC_GSS_KRB5=m | ||
1587 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
1588 | CONFIG_SMB_FS=m | ||
1589 | CONFIG_SMB_NLS_DEFAULT=y | ||
1590 | CONFIG_SMB_NLS_REMOTE="cp936" | ||
1591 | CONFIG_CIFS=m | ||
1592 | CONFIG_CIFS_STATS=y | ||
1593 | CONFIG_CIFS_STATS2=y | ||
1594 | CONFIG_CIFS_WEAK_PW_HASH=y | ||
1595 | CONFIG_CIFS_XATTR=y | ||
1596 | CONFIG_CIFS_POSIX=y | ||
1597 | CONFIG_CIFS_DEBUG2=y | ||
1598 | CONFIG_CIFS_EXPERIMENTAL=y | ||
1599 | # CONFIG_NCP_FS is not set | ||
1600 | # CONFIG_CODA_FS is not set | ||
1601 | # CONFIG_AFS_FS is not set | ||
1602 | # CONFIG_9P_FS is not set | ||
1603 | |||
1604 | # | ||
1605 | # Partition Types | ||
1606 | # | ||
1607 | CONFIG_PARTITION_ADVANCED=y | ||
1608 | # CONFIG_ACORN_PARTITION is not set | ||
1609 | # CONFIG_OSF_PARTITION is not set | ||
1610 | # CONFIG_AMIGA_PARTITION is not set | ||
1611 | # CONFIG_ATARI_PARTITION is not set | ||
1612 | # CONFIG_MAC_PARTITION is not set | ||
1613 | CONFIG_MSDOS_PARTITION=y | ||
1614 | # CONFIG_BSD_DISKLABEL is not set | ||
1615 | # CONFIG_MINIX_SUBPARTITION is not set | ||
1616 | # CONFIG_SOLARIS_X86_PARTITION is not set | ||
1617 | # CONFIG_UNIXWARE_DISKLABEL is not set | ||
1618 | # CONFIG_LDM_PARTITION is not set | ||
1619 | # CONFIG_SGI_PARTITION is not set | ||
1620 | # CONFIG_ULTRIX_PARTITION is not set | ||
1621 | # CONFIG_SUN_PARTITION is not set | ||
1622 | # CONFIG_KARMA_PARTITION is not set | ||
1623 | # CONFIG_EFI_PARTITION is not set | ||
1624 | # CONFIG_SYSV68_PARTITION is not set | ||
1625 | |||
1626 | # | ||
1627 | # Native Language Support | ||
1628 | # | ||
1629 | CONFIG_NLS=y | ||
1630 | CONFIG_NLS_DEFAULT="utf8" | ||
1631 | # CONFIG_NLS_CODEPAGE_437 is not set | ||
1632 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
1633 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
1634 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
1635 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
1636 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
1637 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
1638 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
1639 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
1640 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
1641 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
1642 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
1643 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
1644 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
1645 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
1646 | CONFIG_NLS_CODEPAGE_936=y | ||
1647 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
1648 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
1649 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
1650 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
1651 | # CONFIG_NLS_ISO8859_8 is not set | ||
1652 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
1653 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
1654 | # CONFIG_NLS_ASCII is not set | ||
1655 | CONFIG_NLS_ISO8859_1=y | ||
1656 | # CONFIG_NLS_ISO8859_2 is not set | ||
1657 | # CONFIG_NLS_ISO8859_3 is not set | ||
1658 | # CONFIG_NLS_ISO8859_4 is not set | ||
1659 | # CONFIG_NLS_ISO8859_5 is not set | ||
1660 | # CONFIG_NLS_ISO8859_6 is not set | ||
1661 | # CONFIG_NLS_ISO8859_7 is not set | ||
1662 | # CONFIG_NLS_ISO8859_9 is not set | ||
1663 | # CONFIG_NLS_ISO8859_13 is not set | ||
1664 | # CONFIG_NLS_ISO8859_14 is not set | ||
1665 | # CONFIG_NLS_ISO8859_15 is not set | ||
1666 | # CONFIG_NLS_KOI8_R is not set | ||
1667 | # CONFIG_NLS_KOI8_U is not set | ||
1668 | CONFIG_NLS_UTF8=y | ||
1669 | |||
1670 | # | ||
1671 | # Distributed Lock Manager | ||
1672 | # | ||
1673 | # CONFIG_DLM is not set | ||
1674 | |||
1675 | # | ||
1676 | # Profiling support | ||
1677 | # | ||
1678 | CONFIG_PROFILING=y | ||
1679 | CONFIG_OPROFILE=m | ||
1680 | |||
1681 | # | ||
1682 | # Kernel hacking | ||
1683 | # | ||
1684 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
1685 | # CONFIG_PRINTK_TIME is not set | ||
1686 | # CONFIG_ENABLE_MUST_CHECK is not set | ||
1687 | # CONFIG_MAGIC_SYSRQ is not set | ||
1688 | # CONFIG_UNUSED_SYMBOLS is not set | ||
1689 | # CONFIG_DEBUG_FS is not set | ||
1690 | # CONFIG_HEADERS_CHECK is not set | ||
1691 | # CONFIG_DEBUG_KERNEL is not set | ||
1692 | CONFIG_CROSSCOMPILE=y | ||
1693 | CONFIG_CMDLINE="" | ||
1694 | |||
1695 | # | ||
1696 | # Security options | ||
1697 | # | ||
1698 | # CONFIG_KEYS is not set | ||
1699 | # CONFIG_SECURITY is not set | ||
1700 | |||
1701 | # | ||
1702 | # Cryptographic options | ||
1703 | # | ||
1704 | CONFIG_CRYPTO=y | ||
1705 | CONFIG_CRYPTO_ALGAPI=y | ||
1706 | CONFIG_CRYPTO_BLKCIPHER=m | ||
1707 | CONFIG_CRYPTO_HASH=y | ||
1708 | CONFIG_CRYPTO_MANAGER=y | ||
1709 | CONFIG_CRYPTO_HMAC=y | ||
1710 | # CONFIG_CRYPTO_XCBC is not set | ||
1711 | # CONFIG_CRYPTO_NULL is not set | ||
1712 | # CONFIG_CRYPTO_MD4 is not set | ||
1713 | CONFIG_CRYPTO_MD5=m | ||
1714 | CONFIG_CRYPTO_SHA1=m | ||
1715 | # CONFIG_CRYPTO_SHA256 is not set | ||
1716 | # CONFIG_CRYPTO_SHA512 is not set | ||
1717 | # CONFIG_CRYPTO_WP512 is not set | ||
1718 | # CONFIG_CRYPTO_TGR192 is not set | ||
1719 | # CONFIG_CRYPTO_GF128MUL is not set | ||
1720 | CONFIG_CRYPTO_ECB=m | ||
1721 | CONFIG_CRYPTO_CBC=m | ||
1722 | CONFIG_CRYPTO_PCBC=m | ||
1723 | # CONFIG_CRYPTO_LRW is not set | ||
1724 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1725 | CONFIG_CRYPTO_DES=m | ||
1726 | # CONFIG_CRYPTO_FCRYPT is not set | ||
1727 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
1728 | # CONFIG_CRYPTO_TWOFISH is not set | ||
1729 | # CONFIG_CRYPTO_SERPENT is not set | ||
1730 | # CONFIG_CRYPTO_AES is not set | ||
1731 | # CONFIG_CRYPTO_CAST5 is not set | ||
1732 | # CONFIG_CRYPTO_CAST6 is not set | ||
1733 | # CONFIG_CRYPTO_TEA is not set | ||
1734 | CONFIG_CRYPTO_ARC4=m | ||
1735 | # CONFIG_CRYPTO_KHAZAD is not set | ||
1736 | # CONFIG_CRYPTO_ANUBIS is not set | ||
1737 | CONFIG_CRYPTO_DEFLATE=m | ||
1738 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
1739 | # CONFIG_CRYPTO_CRC32C is not set | ||
1740 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1741 | # CONFIG_CRYPTO_TEST is not set | ||
1742 | |||
1743 | # | ||
1744 | # Hardware crypto devices | ||
1745 | # | ||
1746 | |||
1747 | # | ||
1748 | # Library routines | ||
1749 | # | ||
1750 | CONFIG_BITREVERSE=y | ||
1751 | CONFIG_CRC_CCITT=y | ||
1752 | # CONFIG_CRC16 is not set | ||
1753 | # CONFIG_CRC_ITU_T is not set | ||
1754 | CONFIG_CRC32=y | ||
1755 | # CONFIG_LIBCRC32C is not set | ||
1756 | CONFIG_ZLIB_INFLATE=m | ||
1757 | CONFIG_ZLIB_DEFLATE=m | ||
1758 | CONFIG_TEXTSEARCH=y | ||
1759 | CONFIG_TEXTSEARCH_KMP=m | ||
1760 | CONFIG_TEXTSEARCH_BM=m | ||
1761 | CONFIG_TEXTSEARCH_FSM=m | ||
1762 | CONFIG_PLIST=y | ||
1763 | CONFIG_HAS_IOMEM=y | ||
1764 | CONFIG_HAS_IOPORT=y | ||
1765 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/mips/configs/ip22_defconfig b/arch/mips/configs/ip22_defconfig index 7ec618f3c8b9..405c9f505a77 100644 --- a/arch/mips/configs/ip22_defconfig +++ b/arch/mips/configs/ip22_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_ZONE_DMA=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/ip27_defconfig b/arch/mips/configs/ip27_defconfig index 9ddc3eff4793..a9dcbcf563cb 100644 --- a/arch/mips/configs/ip27_defconfig +++ b/arch/mips/configs/ip27_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_ZONE_DMA=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/ip32_defconfig b/arch/mips/configs/ip32_defconfig index 8fc18809d5ff..a040459bec11 100644 --- a/arch/mips/configs/ip32_defconfig +++ b/arch/mips/configs/ip32_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_ZONE_DMA=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/jazz_defconfig b/arch/mips/configs/jazz_defconfig index 9331cb0a19b1..dd04eece9fd3 100644 --- a/arch/mips/configs/jazz_defconfig +++ b/arch/mips/configs/jazz_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | CONFIG_MACH_JAZZ=y | 28 | CONFIG_MACH_JAZZ=y |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_MACH_JAZZ=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/jmr3927_defconfig b/arch/mips/configs/jmr3927_defconfig index 1b364cf69140..9a25e770abd8 100644 --- a/arch/mips/configs/jmr3927_defconfig +++ b/arch/mips/configs/jmr3927_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_ZONE_DMA=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/lasat200_defconfig b/arch/mips/configs/lasat200_defconfig deleted file mode 100644 index fd4272c1458a..000000000000 --- a/arch/mips/configs/lasat200_defconfig +++ /dev/null | |||
@@ -1,1118 +0,0 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.20 | ||
4 | # Tue Feb 20 21:47:34 2007 | ||
5 | # | ||
6 | CONFIG_MIPS=y | ||
7 | |||
8 | # | ||
9 | # Machine selection | ||
10 | # | ||
11 | CONFIG_ZONE_DMA=y | ||
12 | # CONFIG_MIPS_MTX1 is not set | ||
13 | # CONFIG_MIPS_BOSPORUS is not set | ||
14 | # CONFIG_MIPS_PB1000 is not set | ||
15 | # CONFIG_MIPS_PB1100 is not set | ||
16 | # CONFIG_MIPS_PB1500 is not set | ||
17 | # CONFIG_MIPS_PB1550 is not set | ||
18 | # CONFIG_MIPS_PB1200 is not set | ||
19 | # CONFIG_MIPS_DB1000 is not set | ||
20 | # CONFIG_MIPS_DB1100 is not set | ||
21 | # CONFIG_MIPS_DB1500 is not set | ||
22 | # CONFIG_MIPS_DB1550 is not set | ||
23 | # CONFIG_MIPS_DB1200 is not set | ||
24 | # CONFIG_MIPS_MIRAGE is not set | ||
25 | # CONFIG_BASLER_EXCITE is not set | ||
26 | # CONFIG_MIPS_COBALT is not set | ||
27 | # CONFIG_MACH_DECSTATION is not set | ||
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | ||
30 | CONFIG_LASAT=y | ||
31 | # CONFIG_MIPS_ATLAS is not set | ||
32 | # CONFIG_MIPS_MALTA is not set | ||
33 | # CONFIG_MIPS_SEAD is not set | ||
34 | # CONFIG_WR_PPMC is not set | ||
35 | # CONFIG_MIPS_SIM is not set | ||
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | ||
37 | # CONFIG_MOMENCO_OCELOT is not set | ||
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | ||
41 | # CONFIG_MIPS_XXS1500 is not set | ||
42 | # CONFIG_PNX8550_JBS is not set | ||
43 | # CONFIG_PNX8550_STB810 is not set | ||
44 | # CONFIG_DDB5477 is not set | ||
45 | # CONFIG_MACH_VR41XX is not set | ||
46 | # CONFIG_PMC_YOSEMITE is not set | ||
47 | # CONFIG_QEMU is not set | ||
48 | # CONFIG_MARKEINS is not set | ||
49 | # CONFIG_SGI_IP22 is not set | ||
50 | # CONFIG_SGI_IP27 is not set | ||
51 | # CONFIG_SGI_IP32 is not set | ||
52 | # CONFIG_SIBYTE_BIGSUR is not set | ||
53 | # CONFIG_SIBYTE_SWARM is not set | ||
54 | # CONFIG_SIBYTE_SENTOSA is not set | ||
55 | # CONFIG_SIBYTE_RHONE is not set | ||
56 | # CONFIG_SIBYTE_CARMEL is not set | ||
57 | # CONFIG_SIBYTE_PTSWARM is not set | ||
58 | # CONFIG_SIBYTE_LITTLESUR is not set | ||
59 | # CONFIG_SIBYTE_CRHINE is not set | ||
60 | # CONFIG_SIBYTE_CRHONE is not set | ||
61 | # CONFIG_SNI_RM is not set | ||
62 | # CONFIG_TOSHIBA_JMR3927 is not set | ||
63 | # CONFIG_TOSHIBA_RBTX4927 is not set | ||
64 | # CONFIG_TOSHIBA_RBTX4938 is not set | ||
65 | CONFIG_PICVUE=y | ||
66 | CONFIG_PICVUE_PROC=y | ||
67 | CONFIG_DS1603=y | ||
68 | CONFIG_LASAT_SYSCTL=y | ||
69 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
70 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
71 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
72 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
73 | CONFIG_GENERIC_HWEIGHT=y | ||
74 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
75 | CONFIG_GENERIC_TIME=y | ||
76 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | ||
77 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
78 | CONFIG_DMA_NONCOHERENT=y | ||
79 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | ||
80 | CONFIG_MIPS_NILE4=y | ||
81 | # CONFIG_CPU_BIG_ENDIAN is not set | ||
82 | CONFIG_CPU_LITTLE_ENDIAN=y | ||
83 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y | ||
84 | CONFIG_MIPS_GT64120=y | ||
85 | CONFIG_MIPS_L1_CACHE_SHIFT=5 | ||
86 | |||
87 | # | ||
88 | # CPU selection | ||
89 | # | ||
90 | # CONFIG_CPU_MIPS32_R1 is not set | ||
91 | # CONFIG_CPU_MIPS32_R2 is not set | ||
92 | # CONFIG_CPU_MIPS64_R1 is not set | ||
93 | # CONFIG_CPU_MIPS64_R2 is not set | ||
94 | # CONFIG_CPU_R3000 is not set | ||
95 | # CONFIG_CPU_TX39XX is not set | ||
96 | # CONFIG_CPU_VR41XX is not set | ||
97 | # CONFIG_CPU_R4300 is not set | ||
98 | # CONFIG_CPU_R4X00 is not set | ||
99 | # CONFIG_CPU_TX49XX is not set | ||
100 | CONFIG_CPU_R5000=y | ||
101 | # CONFIG_CPU_R5432 is not set | ||
102 | # CONFIG_CPU_R6000 is not set | ||
103 | # CONFIG_CPU_NEVADA is not set | ||
104 | # CONFIG_CPU_R8000 is not set | ||
105 | # CONFIG_CPU_R10000 is not set | ||
106 | # CONFIG_CPU_RM7000 is not set | ||
107 | # CONFIG_CPU_RM9000 is not set | ||
108 | # CONFIG_CPU_SB1 is not set | ||
109 | CONFIG_SYS_HAS_CPU_R5000=y | ||
110 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y | ||
111 | CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y | ||
112 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y | ||
113 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y | ||
114 | |||
115 | # | ||
116 | # Kernel type | ||
117 | # | ||
118 | CONFIG_32BIT=y | ||
119 | # CONFIG_64BIT is not set | ||
120 | CONFIG_PAGE_SIZE_4KB=y | ||
121 | # CONFIG_PAGE_SIZE_8KB is not set | ||
122 | # CONFIG_PAGE_SIZE_16KB is not set | ||
123 | # CONFIG_PAGE_SIZE_64KB is not set | ||
124 | CONFIG_BOARD_SCACHE=y | ||
125 | CONFIG_R5000_CPU_SCACHE=y | ||
126 | CONFIG_MIPS_MT_DISABLED=y | ||
127 | # CONFIG_MIPS_MT_SMP is not set | ||
128 | # CONFIG_MIPS_MT_SMTC is not set | ||
129 | # CONFIG_MIPS_VPE_LOADER is not set | ||
130 | # CONFIG_64BIT_PHYS_ADDR is not set | ||
131 | CONFIG_CPU_HAS_LLSC=y | ||
132 | CONFIG_CPU_HAS_SYNC=y | ||
133 | CONFIG_GENERIC_HARDIRQS=y | ||
134 | CONFIG_GENERIC_IRQ_PROBE=y | ||
135 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
136 | CONFIG_SELECT_MEMORY_MODEL=y | ||
137 | CONFIG_FLATMEM_MANUAL=y | ||
138 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
139 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
140 | CONFIG_FLATMEM=y | ||
141 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
142 | # CONFIG_SPARSEMEM_STATIC is not set | ||
143 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
144 | # CONFIG_RESOURCES_64BIT is not set | ||
145 | CONFIG_ZONE_DMA_FLAG=1 | ||
146 | # CONFIG_HZ_48 is not set | ||
147 | # CONFIG_HZ_100 is not set | ||
148 | # CONFIG_HZ_128 is not set | ||
149 | # CONFIG_HZ_250 is not set | ||
150 | # CONFIG_HZ_256 is not set | ||
151 | CONFIG_HZ_1000=y | ||
152 | # CONFIG_HZ_1024 is not set | ||
153 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y | ||
154 | CONFIG_HZ=1000 | ||
155 | CONFIG_PREEMPT_NONE=y | ||
156 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
157 | # CONFIG_PREEMPT is not set | ||
158 | # CONFIG_KEXEC is not set | ||
159 | CONFIG_LOCKDEP_SUPPORT=y | ||
160 | CONFIG_STACKTRACE_SUPPORT=y | ||
161 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
162 | |||
163 | # | ||
164 | # Code maturity level options | ||
165 | # | ||
166 | CONFIG_EXPERIMENTAL=y | ||
167 | CONFIG_BROKEN_ON_SMP=y | ||
168 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
169 | |||
170 | # | ||
171 | # General setup | ||
172 | # | ||
173 | CONFIG_LOCALVERSION="" | ||
174 | CONFIG_LOCALVERSION_AUTO=y | ||
175 | CONFIG_SWAP=y | ||
176 | CONFIG_SYSVIPC=y | ||
177 | # CONFIG_IPC_NS is not set | ||
178 | CONFIG_SYSVIPC_SYSCTL=y | ||
179 | # CONFIG_POSIX_MQUEUE is not set | ||
180 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
181 | # CONFIG_TASKSTATS is not set | ||
182 | # CONFIG_UTS_NS is not set | ||
183 | # CONFIG_AUDIT is not set | ||
184 | # CONFIG_IKCONFIG is not set | ||
185 | CONFIG_SYSFS_DEPRECATED=y | ||
186 | CONFIG_RELAY=y | ||
187 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
188 | CONFIG_SYSCTL=y | ||
189 | CONFIG_EMBEDDED=y | ||
190 | CONFIG_SYSCTL_SYSCALL=y | ||
191 | CONFIG_KALLSYMS=y | ||
192 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
193 | CONFIG_HOTPLUG=y | ||
194 | CONFIG_PRINTK=y | ||
195 | CONFIG_BUG=y | ||
196 | CONFIG_ELF_CORE=y | ||
197 | CONFIG_BASE_FULL=y | ||
198 | CONFIG_FUTEX=y | ||
199 | CONFIG_EPOLL=y | ||
200 | CONFIG_SHMEM=y | ||
201 | CONFIG_SLAB=y | ||
202 | CONFIG_VM_EVENT_COUNTERS=y | ||
203 | CONFIG_RT_MUTEXES=y | ||
204 | # CONFIG_TINY_SHMEM is not set | ||
205 | CONFIG_BASE_SMALL=0 | ||
206 | # CONFIG_SLOB is not set | ||
207 | |||
208 | # | ||
209 | # Loadable module support | ||
210 | # | ||
211 | CONFIG_MODULES=y | ||
212 | CONFIG_MODULE_UNLOAD=y | ||
213 | # CONFIG_MODULE_FORCE_UNLOAD is not set | ||
214 | CONFIG_MODVERSIONS=y | ||
215 | CONFIG_MODULE_SRCVERSION_ALL=y | ||
216 | CONFIG_KMOD=y | ||
217 | |||
218 | # | ||
219 | # Block layer | ||
220 | # | ||
221 | CONFIG_BLOCK=y | ||
222 | # CONFIG_LBD is not set | ||
223 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
224 | # CONFIG_LSF is not set | ||
225 | |||
226 | # | ||
227 | # IO Schedulers | ||
228 | # | ||
229 | CONFIG_IOSCHED_NOOP=y | ||
230 | CONFIG_IOSCHED_AS=y | ||
231 | CONFIG_IOSCHED_DEADLINE=y | ||
232 | CONFIG_IOSCHED_CFQ=y | ||
233 | CONFIG_DEFAULT_AS=y | ||
234 | # CONFIG_DEFAULT_DEADLINE is not set | ||
235 | # CONFIG_DEFAULT_CFQ is not set | ||
236 | # CONFIG_DEFAULT_NOOP is not set | ||
237 | CONFIG_DEFAULT_IOSCHED="anticipatory" | ||
238 | |||
239 | # | ||
240 | # Bus options (PCI, PCMCIA, EISA, ISA, TC) | ||
241 | # | ||
242 | CONFIG_HW_HAS_PCI=y | ||
243 | CONFIG_PCI=y | ||
244 | CONFIG_MMU=y | ||
245 | |||
246 | # | ||
247 | # PCCARD (PCMCIA/CardBus) support | ||
248 | # | ||
249 | # CONFIG_PCCARD is not set | ||
250 | |||
251 | # | ||
252 | # PCI Hotplug Support | ||
253 | # | ||
254 | # CONFIG_HOTPLUG_PCI is not set | ||
255 | |||
256 | # | ||
257 | # Executable file formats | ||
258 | # | ||
259 | CONFIG_BINFMT_ELF=y | ||
260 | # CONFIG_BINFMT_MISC is not set | ||
261 | CONFIG_TRAD_SIGNALS=y | ||
262 | |||
263 | # | ||
264 | # Power management options | ||
265 | # | ||
266 | CONFIG_PM=y | ||
267 | # CONFIG_PM_LEGACY is not set | ||
268 | # CONFIG_PM_DEBUG is not set | ||
269 | # CONFIG_PM_SYSFS_DEPRECATED is not set | ||
270 | |||
271 | # | ||
272 | # Networking | ||
273 | # | ||
274 | CONFIG_NET=y | ||
275 | |||
276 | # | ||
277 | # Networking options | ||
278 | # | ||
279 | # CONFIG_NETDEBUG is not set | ||
280 | # CONFIG_PACKET is not set | ||
281 | CONFIG_UNIX=y | ||
282 | CONFIG_XFRM=y | ||
283 | CONFIG_XFRM_USER=m | ||
284 | # CONFIG_XFRM_SUB_POLICY is not set | ||
285 | CONFIG_XFRM_MIGRATE=y | ||
286 | CONFIG_NET_KEY=y | ||
287 | CONFIG_NET_KEY_MIGRATE=y | ||
288 | CONFIG_INET=y | ||
289 | # CONFIG_IP_MULTICAST is not set | ||
290 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
291 | CONFIG_IP_FIB_HASH=y | ||
292 | # CONFIG_IP_PNP is not set | ||
293 | # CONFIG_NET_IPIP is not set | ||
294 | # CONFIG_NET_IPGRE is not set | ||
295 | # CONFIG_ARPD is not set | ||
296 | # CONFIG_SYN_COOKIES is not set | ||
297 | # CONFIG_INET_AH is not set | ||
298 | # CONFIG_INET_ESP is not set | ||
299 | # CONFIG_INET_IPCOMP is not set | ||
300 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
301 | # CONFIG_INET_TUNNEL is not set | ||
302 | CONFIG_INET_XFRM_MODE_TRANSPORT=m | ||
303 | CONFIG_INET_XFRM_MODE_TUNNEL=m | ||
304 | CONFIG_INET_XFRM_MODE_BEET=m | ||
305 | CONFIG_INET_DIAG=y | ||
306 | CONFIG_INET_TCP_DIAG=y | ||
307 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
308 | CONFIG_TCP_CONG_CUBIC=y | ||
309 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
310 | CONFIG_TCP_MD5SIG=y | ||
311 | # CONFIG_IPV6 is not set | ||
312 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
313 | # CONFIG_INET6_TUNNEL is not set | ||
314 | CONFIG_NETWORK_SECMARK=y | ||
315 | # CONFIG_NETFILTER is not set | ||
316 | |||
317 | # | ||
318 | # DCCP Configuration (EXPERIMENTAL) | ||
319 | # | ||
320 | # CONFIG_IP_DCCP is not set | ||
321 | |||
322 | # | ||
323 | # SCTP Configuration (EXPERIMENTAL) | ||
324 | # | ||
325 | # CONFIG_IP_SCTP is not set | ||
326 | |||
327 | # | ||
328 | # TIPC Configuration (EXPERIMENTAL) | ||
329 | # | ||
330 | # CONFIG_TIPC is not set | ||
331 | # CONFIG_ATM is not set | ||
332 | # CONFIG_BRIDGE is not set | ||
333 | # CONFIG_VLAN_8021Q is not set | ||
334 | # CONFIG_DECNET is not set | ||
335 | # CONFIG_LLC2 is not set | ||
336 | # CONFIG_IPX is not set | ||
337 | # CONFIG_ATALK is not set | ||
338 | # CONFIG_X25 is not set | ||
339 | # CONFIG_LAPB is not set | ||
340 | # CONFIG_ECONET is not set | ||
341 | # CONFIG_WAN_ROUTER is not set | ||
342 | |||
343 | # | ||
344 | # QoS and/or fair queueing | ||
345 | # | ||
346 | # CONFIG_NET_SCHED is not set | ||
347 | |||
348 | # | ||
349 | # Network testing | ||
350 | # | ||
351 | # CONFIG_NET_PKTGEN is not set | ||
352 | # CONFIG_HAMRADIO is not set | ||
353 | # CONFIG_IRDA is not set | ||
354 | # CONFIG_BT is not set | ||
355 | CONFIG_IEEE80211=m | ||
356 | # CONFIG_IEEE80211_DEBUG is not set | ||
357 | CONFIG_IEEE80211_CRYPT_WEP=m | ||
358 | CONFIG_IEEE80211_CRYPT_CCMP=m | ||
359 | CONFIG_IEEE80211_SOFTMAC=m | ||
360 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
361 | CONFIG_WIRELESS_EXT=y | ||
362 | |||
363 | # | ||
364 | # Device Drivers | ||
365 | # | ||
366 | |||
367 | # | ||
368 | # Generic Driver Options | ||
369 | # | ||
370 | CONFIG_STANDALONE=y | ||
371 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
372 | CONFIG_FW_LOADER=m | ||
373 | # CONFIG_SYS_HYPERVISOR is not set | ||
374 | |||
375 | # | ||
376 | # Connector - unified userspace <-> kernelspace linker | ||
377 | # | ||
378 | CONFIG_CONNECTOR=m | ||
379 | |||
380 | # | ||
381 | # Memory Technology Devices (MTD) | ||
382 | # | ||
383 | CONFIG_MTD=y | ||
384 | # CONFIG_MTD_DEBUG is not set | ||
385 | # CONFIG_MTD_CONCAT is not set | ||
386 | CONFIG_MTD_PARTITIONS=y | ||
387 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
388 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
389 | |||
390 | # | ||
391 | # User Modules And Translation Layers | ||
392 | # | ||
393 | CONFIG_MTD_CHAR=y | ||
394 | CONFIG_MTD_BLKDEVS=y | ||
395 | CONFIG_MTD_BLOCK=y | ||
396 | # CONFIG_FTL is not set | ||
397 | # CONFIG_NFTL is not set | ||
398 | # CONFIG_INFTL is not set | ||
399 | # CONFIG_RFD_FTL is not set | ||
400 | # CONFIG_SSFDC is not set | ||
401 | |||
402 | # | ||
403 | # RAM/ROM/Flash chip drivers | ||
404 | # | ||
405 | CONFIG_MTD_CFI=y | ||
406 | # CONFIG_MTD_JEDECPROBE is not set | ||
407 | CONFIG_MTD_GEN_PROBE=y | ||
408 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
409 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
410 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
411 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
412 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
413 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
414 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
415 | CONFIG_MTD_CFI_I1=y | ||
416 | CONFIG_MTD_CFI_I2=y | ||
417 | # CONFIG_MTD_CFI_I4 is not set | ||
418 | # CONFIG_MTD_CFI_I8 is not set | ||
419 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
420 | CONFIG_MTD_CFI_AMDSTD=y | ||
421 | # CONFIG_MTD_CFI_STAA is not set | ||
422 | CONFIG_MTD_CFI_UTIL=y | ||
423 | # CONFIG_MTD_RAM is not set | ||
424 | # CONFIG_MTD_ROM is not set | ||
425 | # CONFIG_MTD_ABSENT is not set | ||
426 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
427 | |||
428 | # | ||
429 | # Mapping drivers for chip access | ||
430 | # | ||
431 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
432 | # CONFIG_MTD_PHYSMAP is not set | ||
433 | CONFIG_MTD_LASAT=y | ||
434 | # CONFIG_MTD_PLATRAM is not set | ||
435 | |||
436 | # | ||
437 | # Self-contained MTD device drivers | ||
438 | # | ||
439 | # CONFIG_MTD_PMC551 is not set | ||
440 | # CONFIG_MTD_SLRAM is not set | ||
441 | # CONFIG_MTD_PHRAM is not set | ||
442 | # CONFIG_MTD_MTDRAM is not set | ||
443 | # CONFIG_MTD_BLOCK2MTD is not set | ||
444 | |||
445 | # | ||
446 | # Disk-On-Chip Device Drivers | ||
447 | # | ||
448 | # CONFIG_MTD_DOC2000 is not set | ||
449 | # CONFIG_MTD_DOC2001 is not set | ||
450 | # CONFIG_MTD_DOC2001PLUS is not set | ||
451 | |||
452 | # | ||
453 | # NAND Flash Device Drivers | ||
454 | # | ||
455 | # CONFIG_MTD_NAND is not set | ||
456 | |||
457 | # | ||
458 | # OneNAND Flash Device Drivers | ||
459 | # | ||
460 | # CONFIG_MTD_ONENAND is not set | ||
461 | |||
462 | # | ||
463 | # Parallel port support | ||
464 | # | ||
465 | # CONFIG_PARPORT is not set | ||
466 | |||
467 | # | ||
468 | # Plug and Play support | ||
469 | # | ||
470 | # CONFIG_PNPACPI is not set | ||
471 | |||
472 | # | ||
473 | # Block devices | ||
474 | # | ||
475 | # CONFIG_BLK_CPQ_DA is not set | ||
476 | # CONFIG_BLK_CPQ_CISS_DA is not set | ||
477 | # CONFIG_BLK_DEV_DAC960 is not set | ||
478 | # CONFIG_BLK_DEV_UMEM is not set | ||
479 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
480 | # CONFIG_BLK_DEV_LOOP is not set | ||
481 | # CONFIG_BLK_DEV_NBD is not set | ||
482 | # CONFIG_BLK_DEV_SX8 is not set | ||
483 | # CONFIG_BLK_DEV_RAM is not set | ||
484 | # CONFIG_BLK_DEV_INITRD is not set | ||
485 | CONFIG_CDROM_PKTCDVD=m | ||
486 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | ||
487 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | ||
488 | CONFIG_ATA_OVER_ETH=m | ||
489 | |||
490 | # | ||
491 | # Misc devices | ||
492 | # | ||
493 | CONFIG_SGI_IOC4=m | ||
494 | # CONFIG_TIFM_CORE is not set | ||
495 | |||
496 | # | ||
497 | # ATA/ATAPI/MFM/RLL support | ||
498 | # | ||
499 | CONFIG_IDE=y | ||
500 | CONFIG_IDE_MAX_HWIFS=4 | ||
501 | CONFIG_BLK_DEV_IDE=y | ||
502 | |||
503 | # | ||
504 | # Please see Documentation/ide.txt for help/info on IDE drives | ||
505 | # | ||
506 | # CONFIG_BLK_DEV_IDE_SATA is not set | ||
507 | CONFIG_BLK_DEV_IDEDISK=y | ||
508 | CONFIG_IDEDISK_MULTI_MODE=y | ||
509 | # CONFIG_BLK_DEV_IDECD is not set | ||
510 | # CONFIG_BLK_DEV_IDETAPE is not set | ||
511 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | ||
512 | # CONFIG_IDE_TASK_IOCTL is not set | ||
513 | |||
514 | # | ||
515 | # IDE chipset support/bugfixes | ||
516 | # | ||
517 | CONFIG_IDE_GENERIC=y | ||
518 | CONFIG_BLK_DEV_IDEPCI=y | ||
519 | # CONFIG_IDEPCI_SHARE_IRQ is not set | ||
520 | # CONFIG_BLK_DEV_OFFBOARD is not set | ||
521 | CONFIG_BLK_DEV_GENERIC=y | ||
522 | # CONFIG_BLK_DEV_OPTI621 is not set | ||
523 | CONFIG_BLK_DEV_IDEDMA_PCI=y | ||
524 | # CONFIG_BLK_DEV_IDEDMA_FORCED is not set | ||
525 | CONFIG_IDEDMA_PCI_AUTO=y | ||
526 | # CONFIG_IDEDMA_ONLYDISK is not set | ||
527 | # CONFIG_BLK_DEV_AEC62XX is not set | ||
528 | # CONFIG_BLK_DEV_ALI15X3 is not set | ||
529 | # CONFIG_BLK_DEV_AMD74XX is not set | ||
530 | CONFIG_BLK_DEV_CMD64X=y | ||
531 | # CONFIG_BLK_DEV_TRIFLEX is not set | ||
532 | # CONFIG_BLK_DEV_CY82C693 is not set | ||
533 | # CONFIG_BLK_DEV_CS5520 is not set | ||
534 | # CONFIG_BLK_DEV_CS5530 is not set | ||
535 | # CONFIG_BLK_DEV_HPT34X is not set | ||
536 | # CONFIG_BLK_DEV_HPT366 is not set | ||
537 | # CONFIG_BLK_DEV_JMICRON is not set | ||
538 | # CONFIG_BLK_DEV_SC1200 is not set | ||
539 | # CONFIG_BLK_DEV_PIIX is not set | ||
540 | CONFIG_BLK_DEV_IT8213=m | ||
541 | # CONFIG_BLK_DEV_IT821X is not set | ||
542 | # CONFIG_BLK_DEV_NS87415 is not set | ||
543 | # CONFIG_BLK_DEV_PDC202XX_OLD is not set | ||
544 | # CONFIG_BLK_DEV_PDC202XX_NEW is not set | ||
545 | # CONFIG_BLK_DEV_SVWKS is not set | ||
546 | # CONFIG_BLK_DEV_SIIMAGE is not set | ||
547 | # CONFIG_BLK_DEV_SLC90E66 is not set | ||
548 | # CONFIG_BLK_DEV_TRM290 is not set | ||
549 | # CONFIG_BLK_DEV_VIA82CXXX is not set | ||
550 | CONFIG_BLK_DEV_TC86C001=m | ||
551 | # CONFIG_IDE_ARM is not set | ||
552 | CONFIG_BLK_DEV_IDEDMA=y | ||
553 | # CONFIG_IDEDMA_IVB is not set | ||
554 | CONFIG_IDEDMA_AUTO=y | ||
555 | # CONFIG_BLK_DEV_HD is not set | ||
556 | |||
557 | # | ||
558 | # SCSI device support | ||
559 | # | ||
560 | CONFIG_RAID_ATTRS=m | ||
561 | # CONFIG_SCSI is not set | ||
562 | # CONFIG_SCSI_NETLINK is not set | ||
563 | |||
564 | # | ||
565 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
566 | # | ||
567 | # CONFIG_ATA is not set | ||
568 | |||
569 | # | ||
570 | # Multi-device support (RAID and LVM) | ||
571 | # | ||
572 | # CONFIG_MD is not set | ||
573 | |||
574 | # | ||
575 | # Fusion MPT device support | ||
576 | # | ||
577 | # CONFIG_FUSION is not set | ||
578 | |||
579 | # | ||
580 | # IEEE 1394 (FireWire) support | ||
581 | # | ||
582 | # CONFIG_IEEE1394 is not set | ||
583 | |||
584 | # | ||
585 | # I2O device support | ||
586 | # | ||
587 | # CONFIG_I2O is not set | ||
588 | |||
589 | # | ||
590 | # Network device support | ||
591 | # | ||
592 | CONFIG_NETDEVICES=y | ||
593 | # CONFIG_DUMMY is not set | ||
594 | # CONFIG_BONDING is not set | ||
595 | # CONFIG_EQUALIZER is not set | ||
596 | # CONFIG_TUN is not set | ||
597 | |||
598 | # | ||
599 | # ARCnet devices | ||
600 | # | ||
601 | # CONFIG_ARCNET is not set | ||
602 | |||
603 | # | ||
604 | # PHY device support | ||
605 | # | ||
606 | CONFIG_PHYLIB=m | ||
607 | |||
608 | # | ||
609 | # MII PHY device drivers | ||
610 | # | ||
611 | CONFIG_MARVELL_PHY=m | ||
612 | CONFIG_DAVICOM_PHY=m | ||
613 | CONFIG_QSEMI_PHY=m | ||
614 | CONFIG_LXT_PHY=m | ||
615 | CONFIG_CICADA_PHY=m | ||
616 | CONFIG_VITESSE_PHY=m | ||
617 | CONFIG_SMSC_PHY=m | ||
618 | # CONFIG_BROADCOM_PHY is not set | ||
619 | # CONFIG_FIXED_PHY is not set | ||
620 | |||
621 | # | ||
622 | # Ethernet (10 or 100Mbit) | ||
623 | # | ||
624 | CONFIG_NET_ETHERNET=y | ||
625 | # CONFIG_MII is not set | ||
626 | # CONFIG_HAPPYMEAL is not set | ||
627 | # CONFIG_SUNGEM is not set | ||
628 | # CONFIG_CASSINI is not set | ||
629 | # CONFIG_NET_VENDOR_3COM is not set | ||
630 | # CONFIG_DM9000 is not set | ||
631 | |||
632 | # | ||
633 | # Tulip family network device support | ||
634 | # | ||
635 | # CONFIG_NET_TULIP is not set | ||
636 | # CONFIG_HP100 is not set | ||
637 | # CONFIG_NET_PCI is not set | ||
638 | |||
639 | # | ||
640 | # Ethernet (1000 Mbit) | ||
641 | # | ||
642 | # CONFIG_ACENIC is not set | ||
643 | # CONFIG_DL2K is not set | ||
644 | # CONFIG_E1000 is not set | ||
645 | # CONFIG_NS83820 is not set | ||
646 | # CONFIG_HAMACHI is not set | ||
647 | # CONFIG_YELLOWFIN is not set | ||
648 | # CONFIG_R8169 is not set | ||
649 | # CONFIG_SIS190 is not set | ||
650 | # CONFIG_SKGE is not set | ||
651 | # CONFIG_SKY2 is not set | ||
652 | # CONFIG_SK98LIN is not set | ||
653 | # CONFIG_TIGON3 is not set | ||
654 | # CONFIG_BNX2 is not set | ||
655 | CONFIG_QLA3XXX=m | ||
656 | # CONFIG_ATL1 is not set | ||
657 | |||
658 | # | ||
659 | # Ethernet (10000 Mbit) | ||
660 | # | ||
661 | # CONFIG_CHELSIO_T1 is not set | ||
662 | CONFIG_CHELSIO_T3=m | ||
663 | # CONFIG_IXGB is not set | ||
664 | # CONFIG_S2IO is not set | ||
665 | # CONFIG_MYRI10GE is not set | ||
666 | CONFIG_NETXEN_NIC=m | ||
667 | |||
668 | # | ||
669 | # Token Ring devices | ||
670 | # | ||
671 | # CONFIG_TR is not set | ||
672 | |||
673 | # | ||
674 | # Wireless LAN (non-hamradio) | ||
675 | # | ||
676 | # CONFIG_NET_RADIO is not set | ||
677 | |||
678 | # | ||
679 | # Wan interfaces | ||
680 | # | ||
681 | # CONFIG_WAN is not set | ||
682 | # CONFIG_FDDI is not set | ||
683 | # CONFIG_HIPPI is not set | ||
684 | # CONFIG_PPP is not set | ||
685 | # CONFIG_SLIP is not set | ||
686 | # CONFIG_SHAPER is not set | ||
687 | # CONFIG_NETCONSOLE is not set | ||
688 | # CONFIG_NETPOLL is not set | ||
689 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
690 | |||
691 | # | ||
692 | # ISDN subsystem | ||
693 | # | ||
694 | # CONFIG_ISDN is not set | ||
695 | |||
696 | # | ||
697 | # Telephony Support | ||
698 | # | ||
699 | # CONFIG_PHONE is not set | ||
700 | |||
701 | # | ||
702 | # Input device support | ||
703 | # | ||
704 | CONFIG_INPUT=y | ||
705 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
706 | |||
707 | # | ||
708 | # Userland interfaces | ||
709 | # | ||
710 | CONFIG_INPUT_MOUSEDEV=y | ||
711 | CONFIG_INPUT_MOUSEDEV_PSAUX=y | ||
712 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
713 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
714 | # CONFIG_INPUT_JOYDEV is not set | ||
715 | # CONFIG_INPUT_TSDEV is not set | ||
716 | # CONFIG_INPUT_EVDEV is not set | ||
717 | # CONFIG_INPUT_EVBUG is not set | ||
718 | |||
719 | # | ||
720 | # Input Device Drivers | ||
721 | # | ||
722 | # CONFIG_INPUT_KEYBOARD is not set | ||
723 | # CONFIG_INPUT_MOUSE is not set | ||
724 | # CONFIG_INPUT_JOYSTICK is not set | ||
725 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
726 | # CONFIG_INPUT_MISC is not set | ||
727 | |||
728 | # | ||
729 | # Hardware I/O ports | ||
730 | # | ||
731 | CONFIG_SERIO=y | ||
732 | CONFIG_SERIO_I8042=y | ||
733 | CONFIG_SERIO_SERPORT=y | ||
734 | # CONFIG_SERIO_PCIPS2 is not set | ||
735 | # CONFIG_SERIO_LIBPS2 is not set | ||
736 | CONFIG_SERIO_RAW=m | ||
737 | # CONFIG_GAMEPORT is not set | ||
738 | |||
739 | # | ||
740 | # Character devices | ||
741 | # | ||
742 | CONFIG_VT=y | ||
743 | CONFIG_VT_CONSOLE=y | ||
744 | CONFIG_HW_CONSOLE=y | ||
745 | CONFIG_VT_HW_CONSOLE_BINDING=y | ||
746 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
747 | |||
748 | # | ||
749 | # Serial drivers | ||
750 | # | ||
751 | CONFIG_SERIAL_8250=y | ||
752 | CONFIG_SERIAL_8250_CONSOLE=y | ||
753 | CONFIG_SERIAL_8250_PCI=y | ||
754 | CONFIG_SERIAL_8250_NR_UARTS=4 | ||
755 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | ||
756 | # CONFIG_SERIAL_8250_EXTENDED is not set | ||
757 | |||
758 | # | ||
759 | # Non-8250 serial port support | ||
760 | # | ||
761 | CONFIG_SERIAL_CORE=y | ||
762 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
763 | # CONFIG_SERIAL_JSM is not set | ||
764 | CONFIG_UNIX98_PTYS=y | ||
765 | CONFIG_LEGACY_PTYS=y | ||
766 | CONFIG_LEGACY_PTY_COUNT=256 | ||
767 | |||
768 | # | ||
769 | # IPMI | ||
770 | # | ||
771 | # CONFIG_IPMI_HANDLER is not set | ||
772 | |||
773 | # | ||
774 | # Watchdog Cards | ||
775 | # | ||
776 | # CONFIG_WATCHDOG is not set | ||
777 | # CONFIG_HW_RANDOM is not set | ||
778 | # CONFIG_RTC is not set | ||
779 | # CONFIG_GEN_RTC is not set | ||
780 | # CONFIG_DTLK is not set | ||
781 | # CONFIG_R3964 is not set | ||
782 | # CONFIG_APPLICOM is not set | ||
783 | # CONFIG_DRM is not set | ||
784 | # CONFIG_RAW_DRIVER is not set | ||
785 | |||
786 | # | ||
787 | # TPM devices | ||
788 | # | ||
789 | # CONFIG_TCG_TPM is not set | ||
790 | |||
791 | # | ||
792 | # I2C support | ||
793 | # | ||
794 | # CONFIG_I2C is not set | ||
795 | |||
796 | # | ||
797 | # SPI support | ||
798 | # | ||
799 | # CONFIG_SPI is not set | ||
800 | # CONFIG_SPI_MASTER is not set | ||
801 | |||
802 | # | ||
803 | # Dallas's 1-wire bus | ||
804 | # | ||
805 | # CONFIG_W1 is not set | ||
806 | |||
807 | # | ||
808 | # Hardware Monitoring support | ||
809 | # | ||
810 | # CONFIG_HWMON is not set | ||
811 | # CONFIG_HWMON_VID is not set | ||
812 | |||
813 | # | ||
814 | # Multimedia devices | ||
815 | # | ||
816 | # CONFIG_VIDEO_DEV is not set | ||
817 | |||
818 | # | ||
819 | # Digital Video Broadcasting Devices | ||
820 | # | ||
821 | # CONFIG_DVB is not set | ||
822 | |||
823 | # | ||
824 | # Graphics support | ||
825 | # | ||
826 | # CONFIG_FIRMWARE_EDID is not set | ||
827 | # CONFIG_FB is not set | ||
828 | |||
829 | # | ||
830 | # Console display driver support | ||
831 | # | ||
832 | # CONFIG_VGA_CONSOLE is not set | ||
833 | CONFIG_DUMMY_CONSOLE=y | ||
834 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
835 | |||
836 | # | ||
837 | # Sound | ||
838 | # | ||
839 | # CONFIG_SOUND is not set | ||
840 | |||
841 | # | ||
842 | # HID Devices | ||
843 | # | ||
844 | # CONFIG_HID is not set | ||
845 | |||
846 | # | ||
847 | # USB support | ||
848 | # | ||
849 | CONFIG_USB_ARCH_HAS_HCD=y | ||
850 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
851 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
852 | # CONFIG_USB is not set | ||
853 | |||
854 | # | ||
855 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
856 | # | ||
857 | |||
858 | # | ||
859 | # USB Gadget Support | ||
860 | # | ||
861 | # CONFIG_USB_GADGET is not set | ||
862 | |||
863 | # | ||
864 | # MMC/SD Card support | ||
865 | # | ||
866 | # CONFIG_MMC is not set | ||
867 | |||
868 | # | ||
869 | # LED devices | ||
870 | # | ||
871 | # CONFIG_NEW_LEDS is not set | ||
872 | |||
873 | # | ||
874 | # LED drivers | ||
875 | # | ||
876 | |||
877 | # | ||
878 | # LED Triggers | ||
879 | # | ||
880 | |||
881 | # | ||
882 | # InfiniBand support | ||
883 | # | ||
884 | # CONFIG_INFINIBAND is not set | ||
885 | |||
886 | # | ||
887 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
888 | # | ||
889 | |||
890 | # | ||
891 | # Real Time Clock | ||
892 | # | ||
893 | # CONFIG_RTC_CLASS is not set | ||
894 | |||
895 | # | ||
896 | # DMA Engine support | ||
897 | # | ||
898 | # CONFIG_DMA_ENGINE is not set | ||
899 | |||
900 | # | ||
901 | # DMA Clients | ||
902 | # | ||
903 | |||
904 | # | ||
905 | # DMA Devices | ||
906 | # | ||
907 | |||
908 | # | ||
909 | # Auxiliary Display support | ||
910 | # | ||
911 | |||
912 | # | ||
913 | # Virtualization | ||
914 | # | ||
915 | |||
916 | # | ||
917 | # File systems | ||
918 | # | ||
919 | CONFIG_EXT2_FS=y | ||
920 | # CONFIG_EXT2_FS_XATTR is not set | ||
921 | # CONFIG_EXT2_FS_XIP is not set | ||
922 | CONFIG_EXT3_FS=y | ||
923 | CONFIG_EXT3_FS_XATTR=y | ||
924 | # CONFIG_EXT3_FS_POSIX_ACL is not set | ||
925 | CONFIG_EXT3_FS_SECURITY=y | ||
926 | # CONFIG_EXT4DEV_FS is not set | ||
927 | CONFIG_JBD=y | ||
928 | # CONFIG_JBD_DEBUG is not set | ||
929 | CONFIG_FS_MBCACHE=y | ||
930 | # CONFIG_REISERFS_FS is not set | ||
931 | # CONFIG_JFS_FS is not set | ||
932 | CONFIG_FS_POSIX_ACL=y | ||
933 | # CONFIG_XFS_FS is not set | ||
934 | # CONFIG_GFS2_FS is not set | ||
935 | # CONFIG_OCFS2_FS is not set | ||
936 | # CONFIG_MINIX_FS is not set | ||
937 | # CONFIG_ROMFS_FS is not set | ||
938 | CONFIG_INOTIFY=y | ||
939 | CONFIG_INOTIFY_USER=y | ||
940 | # CONFIG_QUOTA is not set | ||
941 | CONFIG_DNOTIFY=y | ||
942 | # CONFIG_AUTOFS_FS is not set | ||
943 | # CONFIG_AUTOFS4_FS is not set | ||
944 | CONFIG_FUSE_FS=m | ||
945 | CONFIG_GENERIC_ACL=y | ||
946 | |||
947 | # | ||
948 | # CD-ROM/DVD Filesystems | ||
949 | # | ||
950 | # CONFIG_ISO9660_FS is not set | ||
951 | # CONFIG_UDF_FS is not set | ||
952 | |||
953 | # | ||
954 | # DOS/FAT/NT Filesystems | ||
955 | # | ||
956 | # CONFIG_MSDOS_FS is not set | ||
957 | # CONFIG_VFAT_FS is not set | ||
958 | # CONFIG_NTFS_FS is not set | ||
959 | |||
960 | # | ||
961 | # Pseudo filesystems | ||
962 | # | ||
963 | CONFIG_PROC_FS=y | ||
964 | CONFIG_PROC_KCORE=y | ||
965 | CONFIG_PROC_SYSCTL=y | ||
966 | CONFIG_SYSFS=y | ||
967 | CONFIG_TMPFS=y | ||
968 | CONFIG_TMPFS_POSIX_ACL=y | ||
969 | # CONFIG_HUGETLB_PAGE is not set | ||
970 | CONFIG_RAMFS=y | ||
971 | CONFIG_CONFIGFS_FS=m | ||
972 | |||
973 | # | ||
974 | # Miscellaneous filesystems | ||
975 | # | ||
976 | # CONFIG_ADFS_FS is not set | ||
977 | # CONFIG_AFFS_FS is not set | ||
978 | # CONFIG_ECRYPT_FS is not set | ||
979 | # CONFIG_HFS_FS is not set | ||
980 | # CONFIG_HFSPLUS_FS is not set | ||
981 | # CONFIG_BEFS_FS is not set | ||
982 | # CONFIG_BFS_FS is not set | ||
983 | # CONFIG_EFS_FS is not set | ||
984 | # CONFIG_JFFS2_FS is not set | ||
985 | # CONFIG_CRAMFS is not set | ||
986 | # CONFIG_VXFS_FS is not set | ||
987 | # CONFIG_HPFS_FS is not set | ||
988 | # CONFIG_QNX4FS_FS is not set | ||
989 | # CONFIG_SYSV_FS is not set | ||
990 | # CONFIG_UFS_FS is not set | ||
991 | |||
992 | # | ||
993 | # Network File Systems | ||
994 | # | ||
995 | CONFIG_NFS_FS=y | ||
996 | CONFIG_NFS_V3=y | ||
997 | # CONFIG_NFS_V3_ACL is not set | ||
998 | # CONFIG_NFS_V4 is not set | ||
999 | # CONFIG_NFS_DIRECTIO is not set | ||
1000 | # CONFIG_NFSD is not set | ||
1001 | CONFIG_LOCKD=y | ||
1002 | CONFIG_LOCKD_V4=y | ||
1003 | CONFIG_NFS_COMMON=y | ||
1004 | CONFIG_SUNRPC=y | ||
1005 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
1006 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
1007 | # CONFIG_SMB_FS is not set | ||
1008 | # CONFIG_CIFS is not set | ||
1009 | # CONFIG_NCP_FS is not set | ||
1010 | # CONFIG_CODA_FS is not set | ||
1011 | # CONFIG_AFS_FS is not set | ||
1012 | # CONFIG_9P_FS is not set | ||
1013 | |||
1014 | # | ||
1015 | # Partition Types | ||
1016 | # | ||
1017 | # CONFIG_PARTITION_ADVANCED is not set | ||
1018 | CONFIG_MSDOS_PARTITION=y | ||
1019 | |||
1020 | # | ||
1021 | # Native Language Support | ||
1022 | # | ||
1023 | # CONFIG_NLS is not set | ||
1024 | |||
1025 | # | ||
1026 | # Distributed Lock Manager | ||
1027 | # | ||
1028 | CONFIG_DLM=m | ||
1029 | CONFIG_DLM_TCP=y | ||
1030 | # CONFIG_DLM_SCTP is not set | ||
1031 | # CONFIG_DLM_DEBUG is not set | ||
1032 | |||
1033 | # | ||
1034 | # Profiling support | ||
1035 | # | ||
1036 | # CONFIG_PROFILING is not set | ||
1037 | |||
1038 | # | ||
1039 | # Kernel hacking | ||
1040 | # | ||
1041 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
1042 | # CONFIG_PRINTK_TIME is not set | ||
1043 | CONFIG_ENABLE_MUST_CHECK=y | ||
1044 | # CONFIG_MAGIC_SYSRQ is not set | ||
1045 | # CONFIG_UNUSED_SYMBOLS is not set | ||
1046 | # CONFIG_DEBUG_FS is not set | ||
1047 | # CONFIG_HEADERS_CHECK is not set | ||
1048 | # CONFIG_DEBUG_KERNEL is not set | ||
1049 | CONFIG_LOG_BUF_SHIFT=14 | ||
1050 | CONFIG_CROSSCOMPILE=y | ||
1051 | CONFIG_CMDLINE="" | ||
1052 | |||
1053 | # | ||
1054 | # Security options | ||
1055 | # | ||
1056 | CONFIG_KEYS=y | ||
1057 | CONFIG_KEYS_DEBUG_PROC_KEYS=y | ||
1058 | # CONFIG_SECURITY is not set | ||
1059 | |||
1060 | # | ||
1061 | # Cryptographic options | ||
1062 | # | ||
1063 | CONFIG_CRYPTO=y | ||
1064 | CONFIG_CRYPTO_ALGAPI=y | ||
1065 | CONFIG_CRYPTO_BLKCIPHER=m | ||
1066 | CONFIG_CRYPTO_HASH=y | ||
1067 | CONFIG_CRYPTO_MANAGER=y | ||
1068 | CONFIG_CRYPTO_HMAC=y | ||
1069 | CONFIG_CRYPTO_XCBC=m | ||
1070 | CONFIG_CRYPTO_NULL=m | ||
1071 | CONFIG_CRYPTO_MD4=m | ||
1072 | CONFIG_CRYPTO_MD5=y | ||
1073 | CONFIG_CRYPTO_SHA1=m | ||
1074 | CONFIG_CRYPTO_SHA256=m | ||
1075 | CONFIG_CRYPTO_SHA512=m | ||
1076 | CONFIG_CRYPTO_WP512=m | ||
1077 | CONFIG_CRYPTO_TGR192=m | ||
1078 | CONFIG_CRYPTO_GF128MUL=m | ||
1079 | CONFIG_CRYPTO_ECB=m | ||
1080 | CONFIG_CRYPTO_CBC=m | ||
1081 | CONFIG_CRYPTO_PCBC=m | ||
1082 | CONFIG_CRYPTO_LRW=m | ||
1083 | CONFIG_CRYPTO_DES=m | ||
1084 | CONFIG_CRYPTO_FCRYPT=m | ||
1085 | CONFIG_CRYPTO_BLOWFISH=m | ||
1086 | CONFIG_CRYPTO_TWOFISH=m | ||
1087 | CONFIG_CRYPTO_TWOFISH_COMMON=m | ||
1088 | CONFIG_CRYPTO_SERPENT=m | ||
1089 | CONFIG_CRYPTO_AES=m | ||
1090 | CONFIG_CRYPTO_CAST5=m | ||
1091 | CONFIG_CRYPTO_CAST6=m | ||
1092 | CONFIG_CRYPTO_TEA=m | ||
1093 | CONFIG_CRYPTO_ARC4=m | ||
1094 | CONFIG_CRYPTO_KHAZAD=m | ||
1095 | CONFIG_CRYPTO_ANUBIS=m | ||
1096 | CONFIG_CRYPTO_DEFLATE=m | ||
1097 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
1098 | CONFIG_CRYPTO_CRC32C=m | ||
1099 | CONFIG_CRYPTO_CAMELLIA=m | ||
1100 | # CONFIG_CRYPTO_TEST is not set | ||
1101 | |||
1102 | # | ||
1103 | # Hardware crypto devices | ||
1104 | # | ||
1105 | |||
1106 | # | ||
1107 | # Library routines | ||
1108 | # | ||
1109 | CONFIG_BITREVERSE=y | ||
1110 | # CONFIG_CRC_CCITT is not set | ||
1111 | CONFIG_CRC16=m | ||
1112 | CONFIG_CRC32=y | ||
1113 | CONFIG_LIBCRC32C=m | ||
1114 | CONFIG_ZLIB_INFLATE=m | ||
1115 | CONFIG_ZLIB_DEFLATE=m | ||
1116 | CONFIG_PLIST=y | ||
1117 | CONFIG_HAS_IOMEM=y | ||
1118 | CONFIG_HAS_IOPORT=y | ||
diff --git a/arch/mips/configs/malta_defconfig b/arch/mips/configs/malta_defconfig index 1f64d7632a03..546cb243fd09 100644 --- a/arch/mips/configs/malta_defconfig +++ b/arch/mips/configs/malta_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | CONFIG_MIPS_MALTA=y | 30 | CONFIG_MIPS_MALTA=y |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_MIPS_MALTA=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/mipssim_defconfig b/arch/mips/configs/mipssim_defconfig index a2db5c201216..6abad6f88313 100644 --- a/arch/mips/configs/mipssim_defconfig +++ b/arch/mips/configs/mipssim_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_ZONE_DMA=y | |||
35 | CONFIG_MIPS_SIM=y | 33 | CONFIG_MIPS_SIM=y |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
@@ -496,36 +492,23 @@ CONFIG_NETDEVICES=y | |||
496 | # CONFIG_BONDING is not set | 492 | # CONFIG_BONDING is not set |
497 | # CONFIG_EQUALIZER is not set | 493 | # CONFIG_EQUALIZER is not set |
498 | # CONFIG_TUN is not set | 494 | # CONFIG_TUN is not set |
499 | 495 | # CONFIG_PHYLIB is not set | |
500 | # | ||
501 | # PHY device support | ||
502 | # | ||
503 | 496 | ||
504 | # | 497 | # |
505 | # Ethernet (10 or 100Mbit) | 498 | # Ethernet (10 or 100Mbit) |
506 | # | 499 | # |
507 | # CONFIG_NET_ETHERNET is not set | 500 | CONFIG_NET_ETHERNET=y |
508 | 501 | # CONFIG_MII is not set | |
509 | # | 502 | CONFIG_MIPS_SIM_NET=y |
510 | # Ethernet (1000 Mbit) | 503 | # CONFIG_DM9000 is not set |
511 | # | 504 | # CONFIG_NETDEV_1000 is not set |
512 | 505 | # CONFIG_NETDEV_10000 is not set | |
513 | # | ||
514 | # Ethernet (10000 Mbit) | ||
515 | # | ||
516 | |||
517 | # | ||
518 | # Token Ring devices | ||
519 | # | ||
520 | |||
521 | # | ||
522 | # Wireless LAN (non-hamradio) | ||
523 | # | ||
524 | # CONFIG_NET_RADIO is not set | ||
525 | 506 | ||
526 | # | 507 | # |
527 | # Wan interfaces | 508 | # Wireless LAN |
528 | # | 509 | # |
510 | # CONFIG_WLAN_PRE80211 is not set | ||
511 | # CONFIG_WLAN_80211 is not set | ||
529 | # CONFIG_WAN is not set | 512 | # CONFIG_WAN is not set |
530 | # CONFIG_PPP is not set | 513 | # CONFIG_PPP is not set |
531 | # CONFIG_SLIP is not set | 514 | # CONFIG_SLIP is not set |
diff --git a/arch/mips/configs/mpc30x_defconfig b/arch/mips/configs/mpc30x_defconfig index ad5c0bf87b2b..4981ce425d82 100644 --- a/arch/mips/configs/mpc30x_defconfig +++ b/arch/mips/configs/mpc30x_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_ZONE_DMA=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/ocelot_3_defconfig b/arch/mips/configs/msp71xx_defconfig index 28547313ce13..adca5f7ba533 100644 --- a/arch/mips/configs/ocelot_3_defconfig +++ b/arch/mips/configs/msp71xx_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 | 3 | # Linux kernel version: 2.6.21-rc4 |
4 | # Tue Feb 20 21:47:35 2007 | 4 | # Thu Apr 26 18:11:29 2007 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,14 +33,13 @@ CONFIG_ZONE_DMA=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | CONFIG_MOMENCO_OCELOT_3=y | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
43 | # CONFIG_PNX8550_STB810 is not set | 39 | # CONFIG_PNX8550_STB810 is not set |
44 | # CONFIG_DDB5477 is not set | 40 | # CONFIG_DDB5477 is not set |
45 | # CONFIG_MACH_VR41XX is not set | 41 | # CONFIG_MACH_VR41XX is not set |
42 | CONFIG_PMC_MSP=y | ||
46 | # CONFIG_PMC_YOSEMITE is not set | 43 | # CONFIG_PMC_YOSEMITE is not set |
47 | # CONFIG_QEMU is not set | 44 | # CONFIG_QEMU is not set |
48 | # CONFIG_MARKEINS is not set | 45 | # CONFIG_MARKEINS is not set |
@@ -62,6 +59,16 @@ CONFIG_MOMENCO_OCELOT_3=y | |||
62 | # CONFIG_TOSHIBA_JMR3927 is not set | 59 | # CONFIG_TOSHIBA_JMR3927 is not set |
63 | # CONFIG_TOSHIBA_RBTX4927 is not set | 60 | # CONFIG_TOSHIBA_RBTX4927 is not set |
64 | # CONFIG_TOSHIBA_RBTX4938 is not set | 61 | # CONFIG_TOSHIBA_RBTX4938 is not set |
62 | # CONFIG_PMC_MSP4200_EVAL is not set | ||
63 | # CONFIG_PMC_MSP4200_GW is not set | ||
64 | # CONFIG_PMC_MSP7120_EVAL is not set | ||
65 | CONFIG_PMC_MSP7120_GW=y | ||
66 | # CONFIG_PMC_MSP7120_FPGA is not set | ||
67 | |||
68 | # | ||
69 | # Options for PMC-Sierra MSP chipsets | ||
70 | # | ||
71 | CONFIG_PMC_MSP_EMBEDDED_ROOTFS=y | ||
65 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 72 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
66 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 73 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
67 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 74 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
@@ -71,24 +78,24 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y | |||
71 | CONFIG_GENERIC_TIME=y | 78 | CONFIG_GENERIC_TIME=y |
72 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | 79 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
73 | # CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set | 80 | # CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set |
81 | CONFIG_BOOT_RAW=y | ||
74 | CONFIG_DMA_NONCOHERENT=y | 82 | CONFIG_DMA_NONCOHERENT=y |
75 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 83 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
84 | CONFIG_NO_EXCEPT_FILL=y | ||
76 | CONFIG_CPU_BIG_ENDIAN=y | 85 | CONFIG_CPU_BIG_ENDIAN=y |
77 | # CONFIG_CPU_LITTLE_ENDIAN is not set | 86 | # CONFIG_CPU_LITTLE_ENDIAN is not set |
78 | CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y | 87 | CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y |
79 | CONFIG_IRQ_CPU=y | 88 | CONFIG_IRQ_CPU=y |
80 | CONFIG_IRQ_CPU_RM7K=y | 89 | CONFIG_IRQ_MSP_CIC=y |
81 | CONFIG_IRQ_MV64340=y | 90 | CONFIG_MSP_USB=y |
82 | CONFIG_PCI_MARVELL=y | ||
83 | CONFIG_SWAP_IO_SPACE=y | 91 | CONFIG_SWAP_IO_SPACE=y |
84 | CONFIG_BOOT_ELF32=y | ||
85 | CONFIG_MIPS_L1_CACHE_SHIFT=5 | 92 | CONFIG_MIPS_L1_CACHE_SHIFT=5 |
86 | 93 | ||
87 | # | 94 | # |
88 | # CPU selection | 95 | # CPU selection |
89 | # | 96 | # |
90 | # CONFIG_CPU_MIPS32_R1 is not set | 97 | # CONFIG_CPU_MIPS32_R1 is not set |
91 | # CONFIG_CPU_MIPS32_R2 is not set | 98 | CONFIG_CPU_MIPS32_R2=y |
92 | # CONFIG_CPU_MIPS64_R1 is not set | 99 | # CONFIG_CPU_MIPS64_R1 is not set |
93 | # CONFIG_CPU_MIPS64_R2 is not set | 100 | # CONFIG_CPU_MIPS64_R2 is not set |
94 | # CONFIG_CPU_R3000 is not set | 101 | # CONFIG_CPU_R3000 is not set |
@@ -104,14 +111,14 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5 | |||
104 | # CONFIG_CPU_R8000 is not set | 111 | # CONFIG_CPU_R8000 is not set |
105 | # CONFIG_CPU_R10000 is not set | 112 | # CONFIG_CPU_R10000 is not set |
106 | # CONFIG_CPU_RM7000 is not set | 113 | # CONFIG_CPU_RM7000 is not set |
107 | CONFIG_CPU_RM9000=y | 114 | # CONFIG_CPU_RM9000 is not set |
108 | # CONFIG_CPU_SB1 is not set | 115 | # CONFIG_CPU_SB1 is not set |
109 | CONFIG_SYS_HAS_CPU_RM9000=y | 116 | CONFIG_SYS_HAS_CPU_MIPS32_R1=y |
110 | CONFIG_WEAK_ORDERING=y | 117 | CONFIG_SYS_HAS_CPU_MIPS32_R2=y |
118 | CONFIG_CPU_MIPS32=y | ||
119 | CONFIG_CPU_MIPSR2=y | ||
111 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y | 120 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y |
112 | CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y | ||
113 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y | 121 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y |
114 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y | ||
115 | 122 | ||
116 | # | 123 | # |
117 | # Kernel type | 124 | # Kernel type |
@@ -122,13 +129,12 @@ CONFIG_PAGE_SIZE_4KB=y | |||
122 | # CONFIG_PAGE_SIZE_8KB is not set | 129 | # CONFIG_PAGE_SIZE_8KB is not set |
123 | # CONFIG_PAGE_SIZE_16KB is not set | 130 | # CONFIG_PAGE_SIZE_16KB is not set |
124 | # CONFIG_PAGE_SIZE_64KB is not set | 131 | # CONFIG_PAGE_SIZE_64KB is not set |
125 | CONFIG_BOARD_SCACHE=y | ||
126 | CONFIG_RM7000_CPU_SCACHE=y | ||
127 | CONFIG_CPU_HAS_PREFETCH=y | 132 | CONFIG_CPU_HAS_PREFETCH=y |
128 | CONFIG_MIPS_MT_DISABLED=y | 133 | CONFIG_MIPS_MT_DISABLED=y |
129 | # CONFIG_MIPS_MT_SMP is not set | 134 | # CONFIG_MIPS_MT_SMP is not set |
130 | # CONFIG_MIPS_MT_SMTC is not set | 135 | # CONFIG_MIPS_MT_SMTC is not set |
131 | # CONFIG_MIPS_VPE_LOADER is not set | 136 | # CONFIG_MIPS_VPE_LOADER is not set |
137 | CONFIG_SYS_SUPPORTS_MULTITHREADING=y | ||
132 | # CONFIG_64BIT_PHYS_ADDR is not set | 138 | # CONFIG_64BIT_PHYS_ADDR is not set |
133 | CONFIG_CPU_HAS_LLSC=y | 139 | CONFIG_CPU_HAS_LLSC=y |
134 | CONFIG_CPU_HAS_SYNC=y | 140 | CONFIG_CPU_HAS_SYNC=y |
@@ -149,15 +155,16 @@ CONFIG_ZONE_DMA_FLAG=1 | |||
149 | # CONFIG_HZ_48 is not set | 155 | # CONFIG_HZ_48 is not set |
150 | # CONFIG_HZ_100 is not set | 156 | # CONFIG_HZ_100 is not set |
151 | # CONFIG_HZ_128 is not set | 157 | # CONFIG_HZ_128 is not set |
152 | # CONFIG_HZ_250 is not set | 158 | CONFIG_HZ_250=y |
153 | # CONFIG_HZ_256 is not set | 159 | # CONFIG_HZ_256 is not set |
154 | CONFIG_HZ_1000=y | 160 | # CONFIG_HZ_1000 is not set |
155 | # CONFIG_HZ_1024 is not set | 161 | # CONFIG_HZ_1024 is not set |
156 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y | 162 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y |
157 | CONFIG_HZ=1000 | 163 | CONFIG_HZ=250 |
158 | CONFIG_PREEMPT_NONE=y | 164 | # CONFIG_PREEMPT_NONE is not set |
159 | # CONFIG_PREEMPT_VOLUNTARY is not set | 165 | # CONFIG_PREEMPT_VOLUNTARY is not set |
160 | # CONFIG_PREEMPT is not set | 166 | CONFIG_PREEMPT=y |
167 | # CONFIG_PREEMPT_BKL is not set | ||
161 | # CONFIG_KEXEC is not set | 168 | # CONFIG_KEXEC is not set |
162 | CONFIG_LOCKDEP_SUPPORT=y | 169 | CONFIG_LOCKDEP_SUPPORT=y |
163 | CONFIG_STACKTRACE_SUPPORT=y | 170 | CONFIG_STACKTRACE_SUPPORT=y |
@@ -168,14 +175,15 @@ CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | |||
168 | # | 175 | # |
169 | CONFIG_EXPERIMENTAL=y | 176 | CONFIG_EXPERIMENTAL=y |
170 | CONFIG_BROKEN_ON_SMP=y | 177 | CONFIG_BROKEN_ON_SMP=y |
178 | CONFIG_LOCK_KERNEL=y | ||
171 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 179 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
172 | 180 | ||
173 | # | 181 | # |
174 | # General setup | 182 | # General setup |
175 | # | 183 | # |
176 | CONFIG_LOCALVERSION="" | 184 | CONFIG_LOCALVERSION="-pmc" |
177 | CONFIG_LOCALVERSION_AUTO=y | 185 | CONFIG_LOCALVERSION_AUTO=y |
178 | CONFIG_SWAP=y | 186 | # CONFIG_SWAP is not set |
179 | CONFIG_SYSVIPC=y | 187 | CONFIG_SYSVIPC=y |
180 | # CONFIG_IPC_NS is not set | 188 | # CONFIG_IPC_NS is not set |
181 | CONFIG_SYSVIPC_SYSCTL=y | 189 | CONFIG_SYSVIPC_SYSCTL=y |
@@ -184,15 +192,16 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
184 | # CONFIG_TASKSTATS is not set | 192 | # CONFIG_TASKSTATS is not set |
185 | # CONFIG_UTS_NS is not set | 193 | # CONFIG_UTS_NS is not set |
186 | # CONFIG_AUDIT is not set | 194 | # CONFIG_AUDIT is not set |
187 | CONFIG_IKCONFIG=y | 195 | # CONFIG_IKCONFIG is not set |
188 | CONFIG_IKCONFIG_PROC=y | ||
189 | CONFIG_SYSFS_DEPRECATED=y | 196 | CONFIG_SYSFS_DEPRECATED=y |
190 | CONFIG_RELAY=y | 197 | # CONFIG_RELAY is not set |
198 | # CONFIG_BLK_DEV_INITRD is not set | ||
191 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 199 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
192 | CONFIG_SYSCTL=y | 200 | CONFIG_SYSCTL=y |
193 | CONFIG_EMBEDDED=y | 201 | CONFIG_EMBEDDED=y |
194 | CONFIG_SYSCTL_SYSCALL=y | 202 | CONFIG_SYSCTL_SYSCALL=y |
195 | CONFIG_KALLSYMS=y | 203 | CONFIG_KALLSYMS=y |
204 | # CONFIG_KALLSYMS_ALL is not set | ||
196 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 205 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
197 | CONFIG_HOTPLUG=y | 206 | CONFIG_HOTPLUG=y |
198 | CONFIG_PRINTK=y | 207 | CONFIG_PRINTK=y |
@@ -201,11 +210,11 @@ CONFIG_ELF_CORE=y | |||
201 | CONFIG_BASE_FULL=y | 210 | CONFIG_BASE_FULL=y |
202 | CONFIG_FUTEX=y | 211 | CONFIG_FUTEX=y |
203 | CONFIG_EPOLL=y | 212 | CONFIG_EPOLL=y |
204 | CONFIG_SHMEM=y | 213 | # CONFIG_SHMEM is not set |
205 | CONFIG_SLAB=y | 214 | CONFIG_SLAB=y |
206 | CONFIG_VM_EVENT_COUNTERS=y | 215 | CONFIG_VM_EVENT_COUNTERS=y |
207 | CONFIG_RT_MUTEXES=y | 216 | CONFIG_RT_MUTEXES=y |
208 | # CONFIG_TINY_SHMEM is not set | 217 | CONFIG_TINY_SHMEM=y |
209 | CONFIG_BASE_SMALL=0 | 218 | CONFIG_BASE_SMALL=0 |
210 | # CONFIG_SLOB is not set | 219 | # CONFIG_SLOB is not set |
211 | 220 | ||
@@ -232,8 +241,8 @@ CONFIG_BLOCK=y | |||
232 | # | 241 | # |
233 | CONFIG_IOSCHED_NOOP=y | 242 | CONFIG_IOSCHED_NOOP=y |
234 | CONFIG_IOSCHED_AS=y | 243 | CONFIG_IOSCHED_AS=y |
235 | CONFIG_IOSCHED_DEADLINE=y | 244 | # CONFIG_IOSCHED_DEADLINE is not set |
236 | CONFIG_IOSCHED_CFQ=y | 245 | # CONFIG_IOSCHED_CFQ is not set |
237 | CONFIG_DEFAULT_AS=y | 246 | CONFIG_DEFAULT_AS=y |
238 | # CONFIG_DEFAULT_DEADLINE is not set | 247 | # CONFIG_DEFAULT_DEADLINE is not set |
239 | # CONFIG_DEFAULT_CFQ is not set | 248 | # CONFIG_DEFAULT_CFQ is not set |
@@ -245,6 +254,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
245 | # | 254 | # |
246 | CONFIG_HW_HAS_PCI=y | 255 | CONFIG_HW_HAS_PCI=y |
247 | CONFIG_PCI=y | 256 | CONFIG_PCI=y |
257 | # CONFIG_PCI_DEBUG is not set | ||
248 | CONFIG_MMU=y | 258 | CONFIG_MMU=y |
249 | 259 | ||
250 | # | 260 | # |
@@ -267,10 +277,7 @@ CONFIG_TRAD_SIGNALS=y | |||
267 | # | 277 | # |
268 | # Power management options | 278 | # Power management options |
269 | # | 279 | # |
270 | CONFIG_PM=y | 280 | # CONFIG_PM is not set |
271 | # CONFIG_PM_LEGACY is not set | ||
272 | # CONFIG_PM_DEBUG is not set | ||
273 | # CONFIG_PM_SYSFS_DEPRECATED is not set | ||
274 | 281 | ||
275 | # | 282 | # |
276 | # Networking | 283 | # Networking |
@@ -281,17 +288,16 @@ CONFIG_NET=y | |||
281 | # Networking options | 288 | # Networking options |
282 | # | 289 | # |
283 | # CONFIG_NETDEBUG is not set | 290 | # CONFIG_NETDEBUG is not set |
284 | CONFIG_PACKET=y | 291 | # CONFIG_PACKET is not set |
285 | # CONFIG_PACKET_MMAP is not set | ||
286 | CONFIG_UNIX=y | 292 | CONFIG_UNIX=y |
287 | CONFIG_XFRM=y | 293 | CONFIG_XFRM=y |
288 | # CONFIG_XFRM_USER is not set | 294 | CONFIG_XFRM_USER=y |
289 | # CONFIG_XFRM_SUB_POLICY is not set | 295 | # CONFIG_XFRM_SUB_POLICY is not set |
290 | CONFIG_XFRM_MIGRATE=y | 296 | # CONFIG_XFRM_MIGRATE is not set |
291 | CONFIG_NET_KEY=y | 297 | CONFIG_NET_KEY=y |
292 | CONFIG_NET_KEY_MIGRATE=y | 298 | # CONFIG_NET_KEY_MIGRATE is not set |
293 | CONFIG_INET=y | 299 | CONFIG_INET=y |
294 | # CONFIG_IP_MULTICAST is not set | 300 | CONFIG_IP_MULTICAST=y |
295 | # CONFIG_IP_ADVANCED_ROUTER is not set | 301 | # CONFIG_IP_ADVANCED_ROUTER is not set |
296 | CONFIG_IP_FIB_HASH=y | 302 | CONFIG_IP_FIB_HASH=y |
297 | CONFIG_IP_PNP=y | 303 | CONFIG_IP_PNP=y |
@@ -300,122 +306,92 @@ CONFIG_IP_PNP_BOOTP=y | |||
300 | # CONFIG_IP_PNP_RARP is not set | 306 | # CONFIG_IP_PNP_RARP is not set |
301 | # CONFIG_NET_IPIP is not set | 307 | # CONFIG_NET_IPIP is not set |
302 | # CONFIG_NET_IPGRE is not set | 308 | # CONFIG_NET_IPGRE is not set |
309 | # CONFIG_IP_MROUTE is not set | ||
303 | # CONFIG_ARPD is not set | 310 | # CONFIG_ARPD is not set |
304 | # CONFIG_SYN_COOKIES is not set | 311 | # CONFIG_SYN_COOKIES is not set |
305 | # CONFIG_INET_AH is not set | 312 | CONFIG_INET_AH=y |
306 | # CONFIG_INET_ESP is not set | 313 | CONFIG_INET_ESP=y |
307 | # CONFIG_INET_IPCOMP is not set | 314 | CONFIG_INET_IPCOMP=y |
308 | # CONFIG_INET_XFRM_TUNNEL is not set | 315 | CONFIG_INET_XFRM_TUNNEL=y |
309 | CONFIG_INET_TUNNEL=m | 316 | CONFIG_INET_TUNNEL=y |
310 | CONFIG_INET_XFRM_MODE_TRANSPORT=m | 317 | CONFIG_INET_XFRM_MODE_TRANSPORT=y |
311 | CONFIG_INET_XFRM_MODE_TUNNEL=m | 318 | CONFIG_INET_XFRM_MODE_TUNNEL=y |
312 | CONFIG_INET_XFRM_MODE_BEET=m | 319 | CONFIG_INET_XFRM_MODE_BEET=y |
313 | CONFIG_INET_DIAG=y | 320 | CONFIG_INET_DIAG=y |
314 | CONFIG_INET_TCP_DIAG=y | 321 | CONFIG_INET_TCP_DIAG=y |
315 | # CONFIG_TCP_CONG_ADVANCED is not set | 322 | # CONFIG_TCP_CONG_ADVANCED is not set |
316 | CONFIG_TCP_CONG_CUBIC=y | 323 | CONFIG_TCP_CONG_CUBIC=y |
317 | CONFIG_DEFAULT_TCP_CONG="cubic" | 324 | CONFIG_DEFAULT_TCP_CONG="cubic" |
318 | CONFIG_TCP_MD5SIG=y | 325 | # CONFIG_TCP_MD5SIG is not set |
319 | 326 | ||
320 | # | 327 | # |
321 | # IP: Virtual Server Configuration | 328 | # IP: Virtual Server Configuration |
322 | # | 329 | # |
323 | # CONFIG_IP_VS is not set | 330 | # CONFIG_IP_VS is not set |
324 | CONFIG_IPV6=m | 331 | # CONFIG_IPV6 is not set |
325 | # CONFIG_IPV6_PRIVACY is not set | ||
326 | CONFIG_IPV6_ROUTER_PREF=y | ||
327 | CONFIG_IPV6_ROUTE_INFO=y | ||
328 | # CONFIG_INET6_AH is not set | ||
329 | # CONFIG_INET6_ESP is not set | ||
330 | # CONFIG_INET6_IPCOMP is not set | ||
331 | CONFIG_IPV6_MIP6=y | ||
332 | # CONFIG_INET6_XFRM_TUNNEL is not set | 332 | # CONFIG_INET6_XFRM_TUNNEL is not set |
333 | # CONFIG_INET6_TUNNEL is not set | 333 | # CONFIG_INET6_TUNNEL is not set |
334 | CONFIG_INET6_XFRM_MODE_TRANSPORT=m | 334 | # CONFIG_NETWORK_SECMARK is not set |
335 | CONFIG_INET6_XFRM_MODE_TUNNEL=m | ||
336 | CONFIG_INET6_XFRM_MODE_BEET=m | ||
337 | CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m | ||
338 | CONFIG_IPV6_SIT=m | ||
339 | # CONFIG_IPV6_TUNNEL is not set | ||
340 | CONFIG_IPV6_MULTIPLE_TABLES=y | ||
341 | CONFIG_IPV6_SUBTREES=y | ||
342 | CONFIG_NETWORK_SECMARK=y | ||
343 | CONFIG_NETFILTER=y | 335 | CONFIG_NETFILTER=y |
344 | # CONFIG_NETFILTER_DEBUG is not set | 336 | # CONFIG_NETFILTER_DEBUG is not set |
337 | CONFIG_BRIDGE_NETFILTER=y | ||
345 | 338 | ||
346 | # | 339 | # |
347 | # Core Netfilter Configuration | 340 | # Core Netfilter Configuration |
348 | # | 341 | # |
349 | CONFIG_NETFILTER_NETLINK=m | 342 | # CONFIG_NETFILTER_NETLINK is not set |
350 | CONFIG_NETFILTER_NETLINK_QUEUE=m | 343 | # CONFIG_NF_CONNTRACK_ENABLED is not set |
351 | CONFIG_NETFILTER_NETLINK_LOG=m | 344 | CONFIG_NETFILTER_XTABLES=y |
352 | CONFIG_NF_CONNTRACK_ENABLED=m | 345 | # CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set |
353 | CONFIG_NF_CONNTRACK_SUPPORT=y | 346 | # CONFIG_NETFILTER_XT_TARGET_MARK is not set |
354 | # CONFIG_IP_NF_CONNTRACK_SUPPORT is not set | 347 | # CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set |
355 | CONFIG_NF_CONNTRACK=m | 348 | # CONFIG_NETFILTER_XT_TARGET_NFLOG is not set |
356 | CONFIG_NF_CT_ACCT=y | 349 | # CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set |
357 | CONFIG_NF_CONNTRACK_MARK=y | 350 | # CONFIG_NETFILTER_XT_MATCH_COMMENT is not set |
358 | CONFIG_NF_CONNTRACK_SECMARK=y | 351 | # CONFIG_NETFILTER_XT_MATCH_DCCP is not set |
359 | CONFIG_NF_CONNTRACK_EVENTS=y | 352 | # CONFIG_NETFILTER_XT_MATCH_DSCP is not set |
360 | CONFIG_NF_CT_PROTO_GRE=m | 353 | # CONFIG_NETFILTER_XT_MATCH_ESP is not set |
361 | CONFIG_NF_CT_PROTO_SCTP=m | 354 | # CONFIG_NETFILTER_XT_MATCH_LENGTH is not set |
362 | CONFIG_NF_CONNTRACK_AMANDA=m | 355 | # CONFIG_NETFILTER_XT_MATCH_LIMIT is not set |
363 | CONFIG_NF_CONNTRACK_FTP=m | 356 | # CONFIG_NETFILTER_XT_MATCH_MAC is not set |
364 | CONFIG_NF_CONNTRACK_H323=m | 357 | # CONFIG_NETFILTER_XT_MATCH_MARK is not set |
365 | CONFIG_NF_CONNTRACK_IRC=m | 358 | # CONFIG_NETFILTER_XT_MATCH_POLICY is not set |
366 | # CONFIG_NF_CONNTRACK_NETBIOS_NS is not set | 359 | # CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set |
367 | CONFIG_NF_CONNTRACK_PPTP=m | 360 | # CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set |
368 | CONFIG_NF_CONNTRACK_SANE=m | 361 | # CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set |
369 | CONFIG_NF_CONNTRACK_SIP=m | 362 | # CONFIG_NETFILTER_XT_MATCH_QUOTA is not set |
370 | CONFIG_NF_CONNTRACK_TFTP=m | 363 | # CONFIG_NETFILTER_XT_MATCH_REALM is not set |
371 | CONFIG_NF_CT_NETLINK=m | 364 | # CONFIG_NETFILTER_XT_MATCH_SCTP is not set |
372 | CONFIG_NETFILTER_XTABLES=m | 365 | # CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set |
373 | CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m | 366 | # CONFIG_NETFILTER_XT_MATCH_STRING is not set |
374 | CONFIG_NETFILTER_XT_TARGET_MARK=m | 367 | # CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set |
375 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | 368 | # CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set |
376 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m | ||
377 | CONFIG_NETFILTER_XT_TARGET_SECMARK=m | ||
378 | CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m | ||
379 | CONFIG_NETFILTER_XT_TARGET_TCPMSS=m | ||
380 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | ||
381 | CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m | ||
382 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m | ||
383 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m | ||
384 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | ||
385 | CONFIG_NETFILTER_XT_MATCH_DSCP=m | ||
386 | CONFIG_NETFILTER_XT_MATCH_ESP=m | ||
387 | CONFIG_NETFILTER_XT_MATCH_HELPER=m | ||
388 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | ||
389 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | ||
390 | CONFIG_NETFILTER_XT_MATCH_MAC=m | ||
391 | CONFIG_NETFILTER_XT_MATCH_MARK=m | ||
392 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | ||
393 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m | ||
394 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | ||
395 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m | ||
396 | CONFIG_NETFILTER_XT_MATCH_REALM=m | ||
397 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | ||
398 | CONFIG_NETFILTER_XT_MATCH_STATE=m | ||
399 | CONFIG_NETFILTER_XT_MATCH_STATISTIC=m | ||
400 | CONFIG_NETFILTER_XT_MATCH_STRING=m | ||
401 | CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | ||
402 | CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m | ||
403 | 369 | ||
404 | # | 370 | # |
405 | # IP: Netfilter Configuration | 371 | # IP: Netfilter Configuration |
406 | # | 372 | # |
407 | CONFIG_NF_CONNTRACK_IPV4=m | ||
408 | CONFIG_NF_CONNTRACK_PROC_COMPAT=y | ||
409 | # CONFIG_IP_NF_QUEUE is not set | 373 | # CONFIG_IP_NF_QUEUE is not set |
410 | # CONFIG_IP_NF_IPTABLES is not set | 374 | CONFIG_IP_NF_IPTABLES=y |
375 | # CONFIG_IP_NF_MATCH_IPRANGE is not set | ||
376 | # CONFIG_IP_NF_MATCH_TOS is not set | ||
377 | # CONFIG_IP_NF_MATCH_RECENT is not set | ||
378 | # CONFIG_IP_NF_MATCH_ECN is not set | ||
379 | # CONFIG_IP_NF_MATCH_AH is not set | ||
380 | # CONFIG_IP_NF_MATCH_TTL is not set | ||
381 | # CONFIG_IP_NF_MATCH_OWNER is not set | ||
382 | # CONFIG_IP_NF_MATCH_ADDRTYPE is not set | ||
383 | CONFIG_IP_NF_FILTER=y | ||
384 | CONFIG_IP_NF_TARGET_REJECT=y | ||
385 | # CONFIG_IP_NF_TARGET_LOG is not set | ||
386 | # CONFIG_IP_NF_TARGET_ULOG is not set | ||
387 | # CONFIG_IP_NF_MANGLE is not set | ||
388 | # CONFIG_IP_NF_RAW is not set | ||
411 | # CONFIG_IP_NF_ARPTABLES is not set | 389 | # CONFIG_IP_NF_ARPTABLES is not set |
412 | 390 | ||
413 | # | 391 | # |
414 | # IPv6: Netfilter Configuration (EXPERIMENTAL) | 392 | # Bridge: Netfilter Configuration |
415 | # | 393 | # |
416 | CONFIG_NF_CONNTRACK_IPV6=m | 394 | # CONFIG_BRIDGE_NF_EBTABLES is not set |
417 | # CONFIG_IP6_NF_QUEUE is not set | ||
418 | # CONFIG_IP6_NF_IPTABLES is not set | ||
419 | 395 | ||
420 | # | 396 | # |
421 | # DCCP Configuration (EXPERIMENTAL) | 397 | # DCCP Configuration (EXPERIMENTAL) |
@@ -432,9 +408,10 @@ CONFIG_NF_CONNTRACK_IPV6=m | |||
432 | # | 408 | # |
433 | # CONFIG_TIPC is not set | 409 | # CONFIG_TIPC is not set |
434 | # CONFIG_ATM is not set | 410 | # CONFIG_ATM is not set |
435 | # CONFIG_BRIDGE is not set | 411 | CONFIG_BRIDGE=y |
436 | # CONFIG_VLAN_8021Q is not set | 412 | # CONFIG_VLAN_8021Q is not set |
437 | # CONFIG_DECNET is not set | 413 | # CONFIG_DECNET is not set |
414 | CONFIG_LLC=y | ||
438 | # CONFIG_LLC2 is not set | 415 | # CONFIG_LLC2 is not set |
439 | # CONFIG_IPX is not set | 416 | # CONFIG_IPX is not set |
440 | # CONFIG_ATALK is not set | 417 | # CONFIG_ATALK is not set |
@@ -447,7 +424,6 @@ CONFIG_NF_CONNTRACK_IPV6=m | |||
447 | # QoS and/or fair queueing | 424 | # QoS and/or fair queueing |
448 | # | 425 | # |
449 | # CONFIG_NET_SCHED is not set | 426 | # CONFIG_NET_SCHED is not set |
450 | CONFIG_NET_CLS_ROUTE=y | ||
451 | 427 | ||
452 | # | 428 | # |
453 | # Network testing | 429 | # Network testing |
@@ -456,14 +432,8 @@ CONFIG_NET_CLS_ROUTE=y | |||
456 | # CONFIG_HAMRADIO is not set | 432 | # CONFIG_HAMRADIO is not set |
457 | # CONFIG_IRDA is not set | 433 | # CONFIG_IRDA is not set |
458 | # CONFIG_BT is not set | 434 | # CONFIG_BT is not set |
459 | CONFIG_IEEE80211=m | 435 | # CONFIG_IEEE80211 is not set |
460 | # CONFIG_IEEE80211_DEBUG is not set | ||
461 | CONFIG_IEEE80211_CRYPT_WEP=m | ||
462 | CONFIG_IEEE80211_CRYPT_CCMP=m | ||
463 | CONFIG_IEEE80211_SOFTMAC=m | ||
464 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
465 | CONFIG_WIRELESS_EXT=y | 436 | CONFIG_WIRELESS_EXT=y |
466 | CONFIG_FIB_RULES=y | ||
467 | 437 | ||
468 | # | 438 | # |
469 | # Device Drivers | 439 | # Device Drivers |
@@ -473,19 +443,101 @@ CONFIG_FIB_RULES=y | |||
473 | # Generic Driver Options | 443 | # Generic Driver Options |
474 | # | 444 | # |
475 | CONFIG_STANDALONE=y | 445 | CONFIG_STANDALONE=y |
476 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 446 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set |
477 | CONFIG_FW_LOADER=m | 447 | # CONFIG_FW_LOADER is not set |
448 | # CONFIG_DEBUG_DRIVER is not set | ||
449 | # CONFIG_DEBUG_DEVRES is not set | ||
478 | # CONFIG_SYS_HYPERVISOR is not set | 450 | # CONFIG_SYS_HYPERVISOR is not set |
479 | 451 | ||
480 | # | 452 | # |
481 | # Connector - unified userspace <-> kernelspace linker | 453 | # Connector - unified userspace <-> kernelspace linker |
482 | # | 454 | # |
483 | CONFIG_CONNECTOR=m | 455 | # CONFIG_CONNECTOR is not set |
484 | 456 | ||
485 | # | 457 | # |
486 | # Memory Technology Devices (MTD) | 458 | # Memory Technology Devices (MTD) |
487 | # | 459 | # |
488 | # CONFIG_MTD is not set | 460 | CONFIG_MTD=y |
461 | # CONFIG_MTD_DEBUG is not set | ||
462 | # CONFIG_MTD_CONCAT is not set | ||
463 | CONFIG_MTD_PARTITIONS=y | ||
464 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
465 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
466 | |||
467 | # | ||
468 | # User Modules And Translation Layers | ||
469 | # | ||
470 | CONFIG_MTD_CHAR=y | ||
471 | CONFIG_MTD_BLKDEVS=y | ||
472 | CONFIG_MTD_BLOCK=y | ||
473 | # CONFIG_FTL is not set | ||
474 | # CONFIG_NFTL is not set | ||
475 | # CONFIG_INFTL is not set | ||
476 | # CONFIG_RFD_FTL is not set | ||
477 | # CONFIG_SSFDC is not set | ||
478 | |||
479 | # | ||
480 | # RAM/ROM/Flash chip drivers | ||
481 | # | ||
482 | CONFIG_MTD_CFI=y | ||
483 | # CONFIG_MTD_JEDECPROBE is not set | ||
484 | CONFIG_MTD_GEN_PROBE=y | ||
485 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
486 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
487 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
488 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
489 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
490 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
491 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
492 | CONFIG_MTD_CFI_I1=y | ||
493 | CONFIG_MTD_CFI_I2=y | ||
494 | # CONFIG_MTD_CFI_I4 is not set | ||
495 | # CONFIG_MTD_CFI_I8 is not set | ||
496 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
497 | CONFIG_MTD_CFI_AMDSTD=y | ||
498 | # CONFIG_MTD_CFI_STAA is not set | ||
499 | CONFIG_MTD_CFI_UTIL=y | ||
500 | CONFIG_MTD_RAM=y | ||
501 | # CONFIG_MTD_ROM is not set | ||
502 | # CONFIG_MTD_ABSENT is not set | ||
503 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
504 | |||
505 | # | ||
506 | # Mapping drivers for chip access | ||
507 | # | ||
508 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
509 | # CONFIG_MTD_PHYSMAP is not set | ||
510 | CONFIG_MTD_PMC_MSP_EVM=y | ||
511 | CONFIG_MSP_FLASH_MAP_LIMIT_32M=y | ||
512 | CONFIG_MSP_FLASH_MAP_LIMIT=0x02000000 | ||
513 | CONFIG_MTD_PMC_MSP_RAMROOT=y | ||
514 | # CONFIG_MTD_PLATRAM is not set | ||
515 | |||
516 | # | ||
517 | # Self-contained MTD device drivers | ||
518 | # | ||
519 | # CONFIG_MTD_PMC551 is not set | ||
520 | # CONFIG_MTD_SLRAM is not set | ||
521 | # CONFIG_MTD_PHRAM is not set | ||
522 | # CONFIG_MTD_MTDRAM is not set | ||
523 | # CONFIG_MTD_BLOCK2MTD is not set | ||
524 | |||
525 | # | ||
526 | # Disk-On-Chip Device Drivers | ||
527 | # | ||
528 | # CONFIG_MTD_DOC2000 is not set | ||
529 | # CONFIG_MTD_DOC2001 is not set | ||
530 | # CONFIG_MTD_DOC2001PLUS is not set | ||
531 | |||
532 | # | ||
533 | # NAND Flash Device Drivers | ||
534 | # | ||
535 | # CONFIG_MTD_NAND is not set | ||
536 | |||
537 | # | ||
538 | # OneNAND Flash Device Drivers | ||
539 | # | ||
540 | # CONFIG_MTD_ONENAND is not set | ||
489 | 541 | ||
490 | # | 542 | # |
491 | # Parallel port support | 543 | # Parallel port support |
@@ -505,19 +557,21 @@ CONFIG_CONNECTOR=m | |||
505 | # CONFIG_BLK_DEV_DAC960 is not set | 557 | # CONFIG_BLK_DEV_DAC960 is not set |
506 | # CONFIG_BLK_DEV_UMEM is not set | 558 | # CONFIG_BLK_DEV_UMEM is not set |
507 | # CONFIG_BLK_DEV_COW_COMMON is not set | 559 | # CONFIG_BLK_DEV_COW_COMMON is not set |
508 | CONFIG_BLK_DEV_LOOP=y | 560 | # CONFIG_BLK_DEV_LOOP is not set |
509 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
510 | # CONFIG_BLK_DEV_NBD is not set | 561 | # CONFIG_BLK_DEV_NBD is not set |
511 | # CONFIG_BLK_DEV_SX8 is not set | 562 | # CONFIG_BLK_DEV_SX8 is not set |
512 | # CONFIG_BLK_DEV_RAM is not set | 563 | # CONFIG_BLK_DEV_UB is not set |
513 | # CONFIG_BLK_DEV_INITRD is not set | 564 | CONFIG_BLK_DEV_RAM=y |
565 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
566 | CONFIG_BLK_DEV_RAM_SIZE=4096 | ||
567 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | ||
514 | # CONFIG_CDROM_PKTCDVD is not set | 568 | # CONFIG_CDROM_PKTCDVD is not set |
515 | CONFIG_ATA_OVER_ETH=m | 569 | # CONFIG_ATA_OVER_ETH is not set |
516 | 570 | ||
517 | # | 571 | # |
518 | # Misc devices | 572 | # Misc devices |
519 | # | 573 | # |
520 | CONFIG_SGI_IOC4=m | 574 | # CONFIG_SGI_IOC4 is not set |
521 | # CONFIG_TIFM_CORE is not set | 575 | # CONFIG_TIFM_CORE is not set |
522 | 576 | ||
523 | # | 577 | # |
@@ -528,16 +582,16 @@ CONFIG_SGI_IOC4=m | |||
528 | # | 582 | # |
529 | # SCSI device support | 583 | # SCSI device support |
530 | # | 584 | # |
531 | CONFIG_RAID_ATTRS=m | 585 | # CONFIG_RAID_ATTRS is not set |
532 | CONFIG_SCSI=m | 586 | CONFIG_SCSI=y |
533 | CONFIG_SCSI_TGT=m | 587 | # CONFIG_SCSI_TGT is not set |
534 | CONFIG_SCSI_NETLINK=y | 588 | # CONFIG_SCSI_NETLINK is not set |
535 | CONFIG_SCSI_PROC_FS=y | 589 | CONFIG_SCSI_PROC_FS=y |
536 | 590 | ||
537 | # | 591 | # |
538 | # SCSI support type (disk, tape, CD-ROM) | 592 | # SCSI support type (disk, tape, CD-ROM) |
539 | # | 593 | # |
540 | # CONFIG_BLK_DEV_SD is not set | 594 | CONFIG_BLK_DEV_SD=y |
541 | # CONFIG_CHR_DEV_ST is not set | 595 | # CONFIG_CHR_DEV_ST is not set |
542 | # CONFIG_CHR_DEV_OSST is not set | 596 | # CONFIG_CHR_DEV_OSST is not set |
543 | # CONFIG_BLK_DEV_SR is not set | 597 | # CONFIG_BLK_DEV_SR is not set |
@@ -550,22 +604,21 @@ CONFIG_SCSI_PROC_FS=y | |||
550 | # CONFIG_SCSI_MULTI_LUN is not set | 604 | # CONFIG_SCSI_MULTI_LUN is not set |
551 | # CONFIG_SCSI_CONSTANTS is not set | 605 | # CONFIG_SCSI_CONSTANTS is not set |
552 | # CONFIG_SCSI_LOGGING is not set | 606 | # CONFIG_SCSI_LOGGING is not set |
553 | CONFIG_SCSI_SCAN_ASYNC=y | 607 | # CONFIG_SCSI_SCAN_ASYNC is not set |
554 | 608 | ||
555 | # | 609 | # |
556 | # SCSI Transports | 610 | # SCSI Transports |
557 | # | 611 | # |
558 | # CONFIG_SCSI_SPI_ATTRS is not set | 612 | # CONFIG_SCSI_SPI_ATTRS is not set |
559 | CONFIG_SCSI_FC_ATTRS=m | 613 | # CONFIG_SCSI_FC_ATTRS is not set |
560 | CONFIG_SCSI_ISCSI_ATTRS=m | 614 | # CONFIG_SCSI_ISCSI_ATTRS is not set |
561 | CONFIG_SCSI_SAS_ATTRS=m | 615 | # CONFIG_SCSI_SAS_ATTRS is not set |
562 | CONFIG_SCSI_SAS_LIBSAS=m | 616 | # CONFIG_SCSI_SAS_LIBSAS is not set |
563 | # CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set | ||
564 | 617 | ||
565 | # | 618 | # |
566 | # SCSI low-level drivers | 619 | # SCSI low-level drivers |
567 | # | 620 | # |
568 | CONFIG_ISCSI_TCP=m | 621 | # CONFIG_ISCSI_TCP is not set |
569 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 622 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
570 | # CONFIG_SCSI_3W_9XXX is not set | 623 | # CONFIG_SCSI_3W_9XXX is not set |
571 | # CONFIG_SCSI_ACARD is not set | 624 | # CONFIG_SCSI_ACARD is not set |
@@ -573,8 +626,7 @@ CONFIG_ISCSI_TCP=m | |||
573 | # CONFIG_SCSI_AIC7XXX is not set | 626 | # CONFIG_SCSI_AIC7XXX is not set |
574 | # CONFIG_SCSI_AIC7XXX_OLD is not set | 627 | # CONFIG_SCSI_AIC7XXX_OLD is not set |
575 | # CONFIG_SCSI_AIC79XX is not set | 628 | # CONFIG_SCSI_AIC79XX is not set |
576 | CONFIG_SCSI_AIC94XX=m | 629 | # CONFIG_SCSI_AIC94XX is not set |
577 | # CONFIG_AIC94XX_DEBUG is not set | ||
578 | # CONFIG_SCSI_DPT_I2O is not set | 630 | # CONFIG_SCSI_DPT_I2O is not set |
579 | # CONFIG_SCSI_ARCMSR is not set | 631 | # CONFIG_SCSI_ARCMSR is not set |
580 | # CONFIG_MEGARAID_NEWGEN is not set | 632 | # CONFIG_MEGARAID_NEWGEN is not set |
@@ -630,10 +682,10 @@ CONFIG_SCSI_AIC94XX=m | |||
630 | # Network device support | 682 | # Network device support |
631 | # | 683 | # |
632 | CONFIG_NETDEVICES=y | 684 | CONFIG_NETDEVICES=y |
633 | # CONFIG_DUMMY is not set | 685 | CONFIG_DUMMY=y |
634 | # CONFIG_BONDING is not set | 686 | # CONFIG_BONDING is not set |
635 | # CONFIG_EQUALIZER is not set | 687 | # CONFIG_EQUALIZER is not set |
636 | CONFIG_TUN=m | 688 | # CONFIG_TUN is not set |
637 | 689 | ||
638 | # | 690 | # |
639 | # ARCnet devices | 691 | # ARCnet devices |
@@ -643,26 +695,16 @@ CONFIG_TUN=m | |||
643 | # | 695 | # |
644 | # PHY device support | 696 | # PHY device support |
645 | # | 697 | # |
646 | CONFIG_PHYLIB=m | 698 | # CONFIG_PHYLIB is not set |
647 | |||
648 | # | ||
649 | # MII PHY device drivers | ||
650 | # | ||
651 | CONFIG_MARVELL_PHY=m | ||
652 | CONFIG_DAVICOM_PHY=m | ||
653 | CONFIG_QSEMI_PHY=m | ||
654 | CONFIG_LXT_PHY=m | ||
655 | CONFIG_CICADA_PHY=m | ||
656 | CONFIG_VITESSE_PHY=m | ||
657 | CONFIG_SMSC_PHY=m | ||
658 | # CONFIG_BROADCOM_PHY is not set | ||
659 | # CONFIG_FIXED_PHY is not set | ||
660 | 699 | ||
661 | # | 700 | # |
662 | # Ethernet (10 or 100Mbit) | 701 | # Ethernet (10 or 100Mbit) |
663 | # | 702 | # |
664 | CONFIG_NET_ETHERNET=y | 703 | CONFIG_NET_ETHERNET=y |
665 | CONFIG_MII=y | 704 | CONFIG_MII=y |
705 | CONFIG_MSPETH=y | ||
706 | CONFIG_MSPETH_NAPI=y | ||
707 | # CONFIG_MSPETH_SKB_RECYCLE is not set | ||
666 | # CONFIG_HAPPYMEAL is not set | 708 | # CONFIG_HAPPYMEAL is not set |
667 | # CONFIG_SUNGEM is not set | 709 | # CONFIG_SUNGEM is not set |
668 | # CONFIG_CASSINI is not set | 710 | # CONFIG_CASSINI is not set |
@@ -674,26 +716,7 @@ CONFIG_MII=y | |||
674 | # | 716 | # |
675 | # CONFIG_NET_TULIP is not set | 717 | # CONFIG_NET_TULIP is not set |
676 | # CONFIG_HP100 is not set | 718 | # CONFIG_HP100 is not set |
677 | CONFIG_NET_PCI=y | 719 | # CONFIG_NET_PCI is not set |
678 | # CONFIG_PCNET32 is not set | ||
679 | # CONFIG_AMD8111_ETH is not set | ||
680 | # CONFIG_ADAPTEC_STARFIRE is not set | ||
681 | # CONFIG_B44 is not set | ||
682 | # CONFIG_FORCEDETH is not set | ||
683 | # CONFIG_DGRS is not set | ||
684 | # CONFIG_EEPRO100 is not set | ||
685 | CONFIG_E100=y | ||
686 | # CONFIG_FEALNX is not set | ||
687 | # CONFIG_NATSEMI is not set | ||
688 | # CONFIG_NE2K_PCI is not set | ||
689 | # CONFIG_8139CP is not set | ||
690 | # CONFIG_8139TOO is not set | ||
691 | # CONFIG_SIS900 is not set | ||
692 | # CONFIG_EPIC100 is not set | ||
693 | # CONFIG_SUNDANCE is not set | ||
694 | # CONFIG_TLAN is not set | ||
695 | # CONFIG_VIA_RHINE is not set | ||
696 | # CONFIG_SC92031 is not set | ||
697 | 720 | ||
698 | # | 721 | # |
699 | # Ethernet (1000 Mbit) | 722 | # Ethernet (1000 Mbit) |
@@ -709,22 +732,20 @@ CONFIG_E100=y | |||
709 | # CONFIG_SKGE is not set | 732 | # CONFIG_SKGE is not set |
710 | # CONFIG_SKY2 is not set | 733 | # CONFIG_SKY2 is not set |
711 | # CONFIG_SK98LIN is not set | 734 | # CONFIG_SK98LIN is not set |
712 | # CONFIG_VIA_VELOCITY is not set | ||
713 | # CONFIG_TIGON3 is not set | 735 | # CONFIG_TIGON3 is not set |
714 | # CONFIG_BNX2 is not set | 736 | # CONFIG_BNX2 is not set |
715 | CONFIG_MV643XX_ETH=y | 737 | # CONFIG_QLA3XXX is not set |
716 | CONFIG_QLA3XXX=m | ||
717 | # CONFIG_ATL1 is not set | 738 | # CONFIG_ATL1 is not set |
718 | 739 | ||
719 | # | 740 | # |
720 | # Ethernet (10000 Mbit) | 741 | # Ethernet (10000 Mbit) |
721 | # | 742 | # |
722 | # CONFIG_CHELSIO_T1 is not set | 743 | # CONFIG_CHELSIO_T1 is not set |
723 | CONFIG_CHELSIO_T3=m | 744 | # CONFIG_CHELSIO_T3 is not set |
724 | # CONFIG_IXGB is not set | 745 | # CONFIG_IXGB is not set |
725 | # CONFIG_S2IO is not set | 746 | # CONFIG_S2IO is not set |
726 | # CONFIG_MYRI10GE is not set | 747 | # CONFIG_MYRI10GE is not set |
727 | CONFIG_NETXEN_NIC=m | 748 | # CONFIG_NETXEN_NIC is not set |
728 | 749 | ||
729 | # | 750 | # |
730 | # Token Ring devices | 751 | # Token Ring devices |
@@ -734,7 +755,29 @@ CONFIG_NETXEN_NIC=m | |||
734 | # | 755 | # |
735 | # Wireless LAN (non-hamradio) | 756 | # Wireless LAN (non-hamradio) |
736 | # | 757 | # |
737 | # CONFIG_NET_RADIO is not set | 758 | CONFIG_NET_RADIO=y |
759 | # CONFIG_NET_WIRELESS_RTNETLINK is not set | ||
760 | |||
761 | # | ||
762 | # Obsolete Wireless cards support (pre-802.11) | ||
763 | # | ||
764 | # CONFIG_STRIP is not set | ||
765 | |||
766 | # | ||
767 | # Wireless 802.11b ISA/PCI cards support | ||
768 | # | ||
769 | # CONFIG_IPW2100 is not set | ||
770 | # CONFIG_IPW2200 is not set | ||
771 | # CONFIG_HERMES is not set | ||
772 | # CONFIG_ATMEL is not set | ||
773 | |||
774 | # | ||
775 | # Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support | ||
776 | # | ||
777 | # CONFIG_PRISM54 is not set | ||
778 | # CONFIG_USB_ZD1201 is not set | ||
779 | # CONFIG_HOSTAP is not set | ||
780 | CONFIG_NET_WIRELESS=y | ||
738 | 781 | ||
739 | # | 782 | # |
740 | # Wan interfaces | 783 | # Wan interfaces |
@@ -742,17 +785,17 @@ CONFIG_NETXEN_NIC=m | |||
742 | # CONFIG_WAN is not set | 785 | # CONFIG_WAN is not set |
743 | # CONFIG_FDDI is not set | 786 | # CONFIG_FDDI is not set |
744 | # CONFIG_HIPPI is not set | 787 | # CONFIG_HIPPI is not set |
745 | CONFIG_PPP=m | 788 | CONFIG_PPP=y |
746 | # CONFIG_PPP_MULTILINK is not set | 789 | # CONFIG_PPP_MULTILINK is not set |
747 | # CONFIG_PPP_FILTER is not set | 790 | # CONFIG_PPP_FILTER is not set |
748 | CONFIG_PPP_ASYNC=m | 791 | # CONFIG_PPP_ASYNC is not set |
749 | CONFIG_PPP_SYNC_TTY=m | 792 | # CONFIG_PPP_SYNC_TTY is not set |
750 | CONFIG_PPP_DEFLATE=m | 793 | # CONFIG_PPP_DEFLATE is not set |
751 | # CONFIG_PPP_BSDCOMP is not set | 794 | # CONFIG_PPP_BSDCOMP is not set |
752 | CONFIG_PPP_MPPE=m | 795 | # CONFIG_PPP_MPPE is not set |
753 | CONFIG_PPPOE=m | 796 | # CONFIG_PPPOE is not set |
754 | # CONFIG_SLIP is not set | 797 | # CONFIG_SLIP is not set |
755 | CONFIG_SLHC=m | 798 | CONFIG_SLHC=y |
756 | # CONFIG_NET_FC is not set | 799 | # CONFIG_NET_FC is not set |
757 | # CONFIG_SHAPER is not set | 800 | # CONFIG_SHAPER is not set |
758 | # CONFIG_NETCONSOLE is not set | 801 | # CONFIG_NETCONSOLE is not set |
@@ -796,31 +839,24 @@ CONFIG_INPUT=y | |||
796 | # | 839 | # |
797 | # Hardware I/O ports | 840 | # Hardware I/O ports |
798 | # | 841 | # |
799 | CONFIG_SERIO=y | 842 | # CONFIG_SERIO is not set |
800 | # CONFIG_SERIO_I8042 is not set | ||
801 | # CONFIG_SERIO_SERPORT is not set | ||
802 | # CONFIG_SERIO_PCIPS2 is not set | ||
803 | # CONFIG_SERIO_LIBPS2 is not set | ||
804 | # CONFIG_SERIO_RAW is not set | ||
805 | # CONFIG_GAMEPORT is not set | 843 | # CONFIG_GAMEPORT is not set |
806 | 844 | ||
807 | # | 845 | # |
808 | # Character devices | 846 | # Character devices |
809 | # | 847 | # |
810 | CONFIG_VT=y | 848 | # CONFIG_VT is not set |
811 | CONFIG_VT_CONSOLE=y | ||
812 | CONFIG_HW_CONSOLE=y | ||
813 | CONFIG_VT_HW_CONSOLE_BINDING=y | ||
814 | # CONFIG_SERIAL_NONSTANDARD is not set | 849 | # CONFIG_SERIAL_NONSTANDARD is not set |
850 | CONFIG_PMCMSP_GPIO=y | ||
815 | 851 | ||
816 | # | 852 | # |
817 | # Serial drivers | 853 | # Serial drivers |
818 | # | 854 | # |
819 | CONFIG_SERIAL_8250=y | 855 | CONFIG_SERIAL_8250=y |
820 | CONFIG_SERIAL_8250_CONSOLE=y | 856 | CONFIG_SERIAL_8250_CONSOLE=y |
821 | CONFIG_SERIAL_8250_PCI=y | 857 | # CONFIG_SERIAL_8250_PCI is not set |
822 | CONFIG_SERIAL_8250_NR_UARTS=4 | 858 | CONFIG_SERIAL_8250_NR_UARTS=2 |
823 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | 859 | CONFIG_SERIAL_8250_RUNTIME_UARTS=2 |
824 | # CONFIG_SERIAL_8250_EXTENDED is not set | 860 | # CONFIG_SERIAL_8250_EXTENDED is not set |
825 | 861 | ||
826 | # | 862 | # |
@@ -830,8 +866,7 @@ CONFIG_SERIAL_CORE=y | |||
830 | CONFIG_SERIAL_CORE_CONSOLE=y | 866 | CONFIG_SERIAL_CORE_CONSOLE=y |
831 | # CONFIG_SERIAL_JSM is not set | 867 | # CONFIG_SERIAL_JSM is not set |
832 | CONFIG_UNIX98_PTYS=y | 868 | CONFIG_UNIX98_PTYS=y |
833 | CONFIG_LEGACY_PTYS=y | 869 | # CONFIG_LEGACY_PTYS is not set |
834 | CONFIG_LEGACY_PTY_COUNT=256 | ||
835 | 870 | ||
836 | # | 871 | # |
837 | # IPMI | 872 | # IPMI |
@@ -843,7 +878,8 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
843 | # | 878 | # |
844 | # CONFIG_WATCHDOG is not set | 879 | # CONFIG_WATCHDOG is not set |
845 | # CONFIG_HW_RANDOM is not set | 880 | # CONFIG_HW_RANDOM is not set |
846 | CONFIG_RTC=y | 881 | # CONFIG_RTC is not set |
882 | # CONFIG_GEN_RTC is not set | ||
847 | # CONFIG_DTLK is not set | 883 | # CONFIG_DTLK is not set |
848 | # CONFIG_R3964 is not set | 884 | # CONFIG_R3964 is not set |
849 | # CONFIG_APPLICOM is not set | 885 | # CONFIG_APPLICOM is not set |
@@ -858,7 +894,58 @@ CONFIG_RTC=y | |||
858 | # | 894 | # |
859 | # I2C support | 895 | # I2C support |
860 | # | 896 | # |
861 | # CONFIG_I2C is not set | 897 | CONFIG_I2C=y |
898 | CONFIG_I2C_CHARDEV=y | ||
899 | |||
900 | # | ||
901 | # I2C Algorithms | ||
902 | # | ||
903 | # CONFIG_I2C_ALGOBIT is not set | ||
904 | # CONFIG_I2C_ALGOPCF is not set | ||
905 | # CONFIG_I2C_ALGOPCA is not set | ||
906 | |||
907 | # | ||
908 | # I2C Hardware Bus support | ||
909 | # | ||
910 | # CONFIG_I2C_ALI1535 is not set | ||
911 | # CONFIG_I2C_ALI1563 is not set | ||
912 | # CONFIG_I2C_ALI15X3 is not set | ||
913 | # CONFIG_I2C_AMD756 is not set | ||
914 | # CONFIG_I2C_AMD8111 is not set | ||
915 | # CONFIG_I2C_I801 is not set | ||
916 | # CONFIG_I2C_I810 is not set | ||
917 | # CONFIG_I2C_PIIX4 is not set | ||
918 | # CONFIG_I2C_NFORCE2 is not set | ||
919 | # CONFIG_I2C_OCORES is not set | ||
920 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
921 | # CONFIG_I2C_PASEMI is not set | ||
922 | # CONFIG_I2C_PROSAVAGE is not set | ||
923 | # CONFIG_I2C_SAVAGE4 is not set | ||
924 | # CONFIG_I2C_SIS5595 is not set | ||
925 | # CONFIG_I2C_SIS630 is not set | ||
926 | # CONFIG_I2C_SIS96X is not set | ||
927 | # CONFIG_I2C_STUB is not set | ||
928 | # CONFIG_I2C_VIA is not set | ||
929 | # CONFIG_I2C_VIAPRO is not set | ||
930 | # CONFIG_I2C_VOODOO3 is not set | ||
931 | # CONFIG_I2C_PCA_ISA is not set | ||
932 | CONFIG_I2C_PMCMSP=y | ||
933 | |||
934 | # | ||
935 | # Miscellaneous I2C Chip support | ||
936 | # | ||
937 | # CONFIG_SENSORS_DS1337 is not set | ||
938 | # CONFIG_SENSORS_DS1374 is not set | ||
939 | # CONFIG_SENSORS_EEPROM is not set | ||
940 | # CONFIG_SENSORS_PCF8574 is not set | ||
941 | CONFIG_PMCTWILED=y | ||
942 | # CONFIG_SENSORS_PCA9539 is not set | ||
943 | # CONFIG_SENSORS_PCF8591 is not set | ||
944 | # CONFIG_SENSORS_MAX6875 is not set | ||
945 | # CONFIG_I2C_DEBUG_CORE is not set | ||
946 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
947 | # CONFIG_I2C_DEBUG_BUS is not set | ||
948 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
862 | 949 | ||
863 | # | 950 | # |
864 | # SPI support | 951 | # SPI support |
@@ -874,8 +961,57 @@ CONFIG_RTC=y | |||
874 | # | 961 | # |
875 | # Hardware Monitoring support | 962 | # Hardware Monitoring support |
876 | # | 963 | # |
877 | # CONFIG_HWMON is not set | 964 | CONFIG_HWMON=y |
878 | # CONFIG_HWMON_VID is not set | 965 | # CONFIG_HWMON_VID is not set |
966 | # CONFIG_SENSORS_ABITUGURU is not set | ||
967 | # CONFIG_SENSORS_ADM1021 is not set | ||
968 | # CONFIG_SENSORS_ADM1025 is not set | ||
969 | # CONFIG_SENSORS_ADM1026 is not set | ||
970 | # CONFIG_SENSORS_ADM1029 is not set | ||
971 | # CONFIG_SENSORS_ADM1031 is not set | ||
972 | # CONFIG_SENSORS_ADM9240 is not set | ||
973 | # CONFIG_SENSORS_ASB100 is not set | ||
974 | # CONFIG_SENSORS_ATXP1 is not set | ||
975 | # CONFIG_SENSORS_DS1621 is not set | ||
976 | # CONFIG_SENSORS_F71805F is not set | ||
977 | # CONFIG_SENSORS_FSCHER is not set | ||
978 | # CONFIG_SENSORS_FSCPOS is not set | ||
979 | # CONFIG_SENSORS_GL518SM is not set | ||
980 | # CONFIG_SENSORS_GL520SM is not set | ||
981 | # CONFIG_SENSORS_IT87 is not set | ||
982 | # CONFIG_SENSORS_LM63 is not set | ||
983 | # CONFIG_SENSORS_LM75 is not set | ||
984 | # CONFIG_SENSORS_LM77 is not set | ||
985 | # CONFIG_SENSORS_LM78 is not set | ||
986 | # CONFIG_SENSORS_LM80 is not set | ||
987 | # CONFIG_SENSORS_LM83 is not set | ||
988 | # CONFIG_SENSORS_LM85 is not set | ||
989 | # CONFIG_SENSORS_LM87 is not set | ||
990 | # CONFIG_SENSORS_LM90 is not set | ||
991 | # CONFIG_SENSORS_LM92 is not set | ||
992 | # CONFIG_SENSORS_MAX1619 is not set | ||
993 | # CONFIG_SENSORS_PC87360 is not set | ||
994 | # CONFIG_SENSORS_PC87427 is not set | ||
995 | # CONFIG_SENSORS_SIS5595 is not set | ||
996 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
997 | # CONFIG_SENSORS_SMSC47M192 is not set | ||
998 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
999 | # CONFIG_SENSORS_VIA686A is not set | ||
1000 | # CONFIG_SENSORS_VT1211 is not set | ||
1001 | # CONFIG_SENSORS_VT8231 is not set | ||
1002 | # CONFIG_SENSORS_W83781D is not set | ||
1003 | # CONFIG_SENSORS_W83791D is not set | ||
1004 | # CONFIG_SENSORS_W83792D is not set | ||
1005 | # CONFIG_SENSORS_W83793 is not set | ||
1006 | # CONFIG_SENSORS_W83L785TS is not set | ||
1007 | # CONFIG_SENSORS_W83627HF is not set | ||
1008 | # CONFIG_SENSORS_W83627EHF is not set | ||
1009 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
1010 | |||
1011 | # | ||
1012 | # Multifunction device drivers | ||
1013 | # | ||
1014 | # CONFIG_MFD_SM501 is not set | ||
879 | 1015 | ||
880 | # | 1016 | # |
881 | # Multimedia devices | 1017 | # Multimedia devices |
@@ -886,62 +1022,13 @@ CONFIG_RTC=y | |||
886 | # Digital Video Broadcasting Devices | 1022 | # Digital Video Broadcasting Devices |
887 | # | 1023 | # |
888 | # CONFIG_DVB is not set | 1024 | # CONFIG_DVB is not set |
1025 | # CONFIG_USB_DABUSB is not set | ||
889 | 1026 | ||
890 | # | 1027 | # |
891 | # Graphics support | 1028 | # Graphics support |
892 | # | 1029 | # |
893 | # CONFIG_FIRMWARE_EDID is not set | ||
894 | CONFIG_FB=y | ||
895 | # CONFIG_FB_CFB_FILLRECT is not set | ||
896 | # CONFIG_FB_CFB_COPYAREA is not set | ||
897 | # CONFIG_FB_CFB_IMAGEBLIT is not set | ||
898 | # CONFIG_FB_SVGALIB is not set | ||
899 | # CONFIG_FB_MACMODES is not set | ||
900 | # CONFIG_FB_BACKLIGHT is not set | ||
901 | CONFIG_FB_MODE_HELPERS=y | ||
902 | # CONFIG_FB_TILEBLITTING is not set | ||
903 | # CONFIG_FB_CIRRUS is not set | ||
904 | # CONFIG_FB_PM2 is not set | ||
905 | # CONFIG_FB_CYBER2000 is not set | ||
906 | # CONFIG_FB_ASILIANT is not set | ||
907 | # CONFIG_FB_IMSTT is not set | ||
908 | # CONFIG_FB_S1D13XXX is not set | ||
909 | # CONFIG_FB_NVIDIA is not set | ||
910 | # CONFIG_FB_RIVA is not set | ||
911 | # CONFIG_FB_MATROX is not set | ||
912 | # CONFIG_FB_RADEON is not set | ||
913 | # CONFIG_FB_ATY128 is not set | ||
914 | # CONFIG_FB_ATY is not set | ||
915 | # CONFIG_FB_S3 is not set | ||
916 | # CONFIG_FB_SAVAGE is not set | ||
917 | # CONFIG_FB_SIS is not set | ||
918 | # CONFIG_FB_NEOMAGIC is not set | ||
919 | # CONFIG_FB_KYRO is not set | ||
920 | # CONFIG_FB_3DFX is not set | ||
921 | # CONFIG_FB_VOODOO1 is not set | ||
922 | # CONFIG_FB_SMIVGX is not set | ||
923 | # CONFIG_FB_TRIDENT is not set | ||
924 | # CONFIG_FB_VIRTUAL is not set | ||
925 | |||
926 | # | ||
927 | # Console display driver support | ||
928 | # | ||
929 | # CONFIG_VGA_CONSOLE is not set | ||
930 | CONFIG_DUMMY_CONSOLE=y | ||
931 | CONFIG_FRAMEBUFFER_CONSOLE=y | ||
932 | # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set | ||
933 | # CONFIG_FONTS is not set | ||
934 | CONFIG_FONT_8x8=y | ||
935 | CONFIG_FONT_8x16=y | ||
936 | |||
937 | # | ||
938 | # Logo configuration | ||
939 | # | ||
940 | CONFIG_LOGO=y | ||
941 | CONFIG_LOGO_LINUX_MONO=y | ||
942 | CONFIG_LOGO_LINUX_VGA16=y | ||
943 | CONFIG_LOGO_LINUX_CLUT224=y | ||
944 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 1030 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
1031 | # CONFIG_FB is not set | ||
945 | 1032 | ||
946 | # | 1033 | # |
947 | # Sound | 1034 | # Sound |
@@ -960,13 +1047,134 @@ CONFIG_HID=y | |||
960 | CONFIG_USB_ARCH_HAS_HCD=y | 1047 | CONFIG_USB_ARCH_HAS_HCD=y |
961 | CONFIG_USB_ARCH_HAS_OHCI=y | 1048 | CONFIG_USB_ARCH_HAS_OHCI=y |
962 | CONFIG_USB_ARCH_HAS_EHCI=y | 1049 | CONFIG_USB_ARCH_HAS_EHCI=y |
963 | # CONFIG_USB is not set | 1050 | CONFIG_USB=y |
1051 | # CONFIG_USB_DEBUG is not set | ||
1052 | |||
1053 | # | ||
1054 | # Miscellaneous USB options | ||
1055 | # | ||
1056 | CONFIG_USB_DEVICEFS=y | ||
1057 | # CONFIG_USB_DYNAMIC_MINORS is not set | ||
1058 | # CONFIG_USB_OTG is not set | ||
1059 | |||
1060 | # | ||
1061 | # USB Host Controller Drivers | ||
1062 | # | ||
1063 | CONFIG_USB_EHCI_HCD=y | ||
1064 | # CONFIG_USB_EHCI_SPLIT_ISO is not set | ||
1065 | CONFIG_USB_EHCI_ROOT_HUB_TT=y | ||
1066 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | ||
1067 | # CONFIG_USB_EHCI_BIG_ENDIAN_MMIO is not set | ||
1068 | # CONFIG_USB_ISP116X_HCD is not set | ||
1069 | # CONFIG_USB_OHCI_HCD is not set | ||
1070 | # CONFIG_USB_UHCI_HCD is not set | ||
1071 | # CONFIG_USB_SL811_HCD is not set | ||
1072 | |||
1073 | # | ||
1074 | # USB Device Class drivers | ||
1075 | # | ||
1076 | # CONFIG_USB_ACM is not set | ||
1077 | # CONFIG_USB_PRINTER is not set | ||
964 | 1078 | ||
965 | # | 1079 | # |
966 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 1080 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
967 | # | 1081 | # |
968 | 1082 | ||
969 | # | 1083 | # |
1084 | # may also be needed; see USB_STORAGE Help for more information | ||
1085 | # | ||
1086 | CONFIG_USB_STORAGE=y | ||
1087 | # CONFIG_USB_STORAGE_DEBUG is not set | ||
1088 | # CONFIG_USB_STORAGE_DATAFAB is not set | ||
1089 | # CONFIG_USB_STORAGE_FREECOM is not set | ||
1090 | # CONFIG_USB_STORAGE_DPCM is not set | ||
1091 | # CONFIG_USB_STORAGE_USBAT is not set | ||
1092 | # CONFIG_USB_STORAGE_SDDR09 is not set | ||
1093 | # CONFIG_USB_STORAGE_SDDR55 is not set | ||
1094 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | ||
1095 | # CONFIG_USB_STORAGE_ALAUDA is not set | ||
1096 | # CONFIG_USB_STORAGE_KARMA is not set | ||
1097 | # CONFIG_USB_LIBUSUAL is not set | ||
1098 | |||
1099 | # | ||
1100 | # USB Input Devices | ||
1101 | # | ||
1102 | # CONFIG_USB_HID is not set | ||
1103 | |||
1104 | # | ||
1105 | # USB HID Boot Protocol drivers | ||
1106 | # | ||
1107 | # CONFIG_USB_KBD is not set | ||
1108 | # CONFIG_USB_MOUSE is not set | ||
1109 | # CONFIG_USB_AIPTEK is not set | ||
1110 | # CONFIG_USB_WACOM is not set | ||
1111 | # CONFIG_USB_ACECAD is not set | ||
1112 | # CONFIG_USB_KBTAB is not set | ||
1113 | # CONFIG_USB_POWERMATE is not set | ||
1114 | # CONFIG_USB_TOUCHSCREEN is not set | ||
1115 | # CONFIG_USB_YEALINK is not set | ||
1116 | # CONFIG_USB_XPAD is not set | ||
1117 | # CONFIG_USB_ATI_REMOTE is not set | ||
1118 | # CONFIG_USB_ATI_REMOTE2 is not set | ||
1119 | # CONFIG_USB_KEYSPAN_REMOTE is not set | ||
1120 | # CONFIG_USB_APPLETOUCH is not set | ||
1121 | # CONFIG_USB_GTCO is not set | ||
1122 | |||
1123 | # | ||
1124 | # USB Imaging devices | ||
1125 | # | ||
1126 | # CONFIG_USB_MDC800 is not set | ||
1127 | # CONFIG_USB_MICROTEK is not set | ||
1128 | |||
1129 | # | ||
1130 | # USB Network Adapters | ||
1131 | # | ||
1132 | # CONFIG_USB_CATC is not set | ||
1133 | # CONFIG_USB_KAWETH is not set | ||
1134 | # CONFIG_USB_PEGASUS is not set | ||
1135 | # CONFIG_USB_RTL8150 is not set | ||
1136 | # CONFIG_USB_USBNET_MII is not set | ||
1137 | # CONFIG_USB_USBNET is not set | ||
1138 | CONFIG_USB_MON=y | ||
1139 | |||
1140 | # | ||
1141 | # USB port drivers | ||
1142 | # | ||
1143 | |||
1144 | # | ||
1145 | # USB Serial Converter support | ||
1146 | # | ||
1147 | # CONFIG_USB_SERIAL is not set | ||
1148 | |||
1149 | # | ||
1150 | # USB Miscellaneous drivers | ||
1151 | # | ||
1152 | # CONFIG_USB_EMI62 is not set | ||
1153 | # CONFIG_USB_EMI26 is not set | ||
1154 | # CONFIG_USB_ADUTUX is not set | ||
1155 | # CONFIG_USB_AUERSWALD is not set | ||
1156 | # CONFIG_USB_RIO500 is not set | ||
1157 | # CONFIG_USB_LEGOTOWER is not set | ||
1158 | # CONFIG_USB_LCD is not set | ||
1159 | # CONFIG_USB_BERRY_CHARGE is not set | ||
1160 | # CONFIG_USB_LED is not set | ||
1161 | # CONFIG_USB_CYPRESS_CY7C63 is not set | ||
1162 | # CONFIG_USB_CYTHERM is not set | ||
1163 | # CONFIG_USB_PHIDGET is not set | ||
1164 | # CONFIG_USB_IDMOUSE is not set | ||
1165 | # CONFIG_USB_FTDI_ELAN is not set | ||
1166 | # CONFIG_USB_APPLEDISPLAY is not set | ||
1167 | # CONFIG_USB_SISUSBVGA is not set | ||
1168 | # CONFIG_USB_LD is not set | ||
1169 | # CONFIG_USB_TRANCEVIBRATOR is not set | ||
1170 | # CONFIG_USB_IOWARRIOR is not set | ||
1171 | # CONFIG_USB_TEST is not set | ||
1172 | |||
1173 | # | ||
1174 | # USB DSL modem support | ||
1175 | # | ||
1176 | |||
1177 | # | ||
970 | # USB Gadget Support | 1178 | # USB Gadget Support |
971 | # | 1179 | # |
972 | # CONFIG_USB_GADGET is not set | 1180 | # CONFIG_USB_GADGET is not set |
@@ -1030,37 +1238,22 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
1030 | CONFIG_EXT2_FS=y | 1238 | CONFIG_EXT2_FS=y |
1031 | # CONFIG_EXT2_FS_XATTR is not set | 1239 | # CONFIG_EXT2_FS_XATTR is not set |
1032 | # CONFIG_EXT2_FS_XIP is not set | 1240 | # CONFIG_EXT2_FS_XIP is not set |
1033 | CONFIG_EXT3_FS=m | 1241 | # CONFIG_EXT3_FS is not set |
1034 | CONFIG_EXT3_FS_XATTR=y | ||
1035 | # CONFIG_EXT3_FS_POSIX_ACL is not set | ||
1036 | # CONFIG_EXT3_FS_SECURITY is not set | ||
1037 | # CONFIG_EXT4DEV_FS is not set | 1242 | # CONFIG_EXT4DEV_FS is not set |
1038 | CONFIG_JBD=m | 1243 | # CONFIG_REISERFS_FS is not set |
1039 | # CONFIG_JBD_DEBUG is not set | ||
1040 | CONFIG_FS_MBCACHE=y | ||
1041 | CONFIG_REISERFS_FS=m | ||
1042 | # CONFIG_REISERFS_CHECK is not set | ||
1043 | # CONFIG_REISERFS_PROC_INFO is not set | ||
1044 | # CONFIG_REISERFS_FS_XATTR is not set | ||
1045 | # CONFIG_JFS_FS is not set | 1244 | # CONFIG_JFS_FS is not set |
1046 | CONFIG_FS_POSIX_ACL=y | 1245 | # CONFIG_FS_POSIX_ACL is not set |
1047 | CONFIG_XFS_FS=m | 1246 | # CONFIG_XFS_FS is not set |
1048 | # CONFIG_XFS_QUOTA is not set | ||
1049 | # CONFIG_XFS_SECURITY is not set | ||
1050 | # CONFIG_XFS_POSIX_ACL is not set | ||
1051 | # CONFIG_XFS_RT is not set | ||
1052 | # CONFIG_GFS2_FS is not set | 1247 | # CONFIG_GFS2_FS is not set |
1053 | # CONFIG_OCFS2_FS is not set | 1248 | # CONFIG_OCFS2_FS is not set |
1054 | # CONFIG_MINIX_FS is not set | 1249 | # CONFIG_MINIX_FS is not set |
1055 | # CONFIG_ROMFS_FS is not set | 1250 | # CONFIG_ROMFS_FS is not set |
1056 | CONFIG_INOTIFY=y | 1251 | # CONFIG_INOTIFY is not set |
1057 | CONFIG_INOTIFY_USER=y | ||
1058 | # CONFIG_QUOTA is not set | 1252 | # CONFIG_QUOTA is not set |
1059 | CONFIG_DNOTIFY=y | 1253 | # CONFIG_DNOTIFY is not set |
1060 | CONFIG_AUTOFS_FS=y | 1254 | # CONFIG_AUTOFS_FS is not set |
1061 | CONFIG_AUTOFS4_FS=m | 1255 | # CONFIG_AUTOFS4_FS is not set |
1062 | CONFIG_FUSE_FS=m | 1256 | # CONFIG_FUSE_FS is not set |
1063 | CONFIG_GENERIC_ACL=y | ||
1064 | 1257 | ||
1065 | # | 1258 | # |
1066 | # CD-ROM/DVD Filesystems | 1259 | # CD-ROM/DVD Filesystems |
@@ -1071,22 +1264,25 @@ CONFIG_GENERIC_ACL=y | |||
1071 | # | 1264 | # |
1072 | # DOS/FAT/NT Filesystems | 1265 | # DOS/FAT/NT Filesystems |
1073 | # | 1266 | # |
1074 | # CONFIG_MSDOS_FS is not set | 1267 | CONFIG_FAT_FS=y |
1075 | # CONFIG_VFAT_FS is not set | 1268 | CONFIG_MSDOS_FS=y |
1269 | CONFIG_VFAT_FS=y | ||
1270 | CONFIG_FAT_DEFAULT_CODEPAGE=437 | ||
1271 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
1076 | # CONFIG_NTFS_FS is not set | 1272 | # CONFIG_NTFS_FS is not set |
1077 | 1273 | ||
1078 | # | 1274 | # |
1079 | # Pseudo filesystems | 1275 | # Pseudo filesystems |
1080 | # | 1276 | # |
1081 | CONFIG_PROC_FS=y | 1277 | CONFIG_PROC_FS=y |
1082 | CONFIG_PROC_KCORE=y | 1278 | # CONFIG_PROC_KCORE is not set |
1083 | CONFIG_PROC_SYSCTL=y | 1279 | CONFIG_PROC_SYSCTL=y |
1084 | CONFIG_SYSFS=y | 1280 | CONFIG_SYSFS=y |
1085 | CONFIG_TMPFS=y | 1281 | CONFIG_TMPFS=y |
1086 | CONFIG_TMPFS_POSIX_ACL=y | 1282 | # CONFIG_TMPFS_POSIX_ACL is not set |
1087 | # CONFIG_HUGETLB_PAGE is not set | 1283 | # CONFIG_HUGETLB_PAGE is not set |
1088 | CONFIG_RAMFS=y | 1284 | CONFIG_RAMFS=y |
1089 | CONFIG_CONFIGFS_FS=m | 1285 | # CONFIG_CONFIGFS_FS is not set |
1090 | 1286 | ||
1091 | # | 1287 | # |
1092 | # Miscellaneous filesystems | 1288 | # Miscellaneous filesystems |
@@ -1097,8 +1293,21 @@ CONFIG_CONFIGFS_FS=m | |||
1097 | # CONFIG_HFSPLUS_FS is not set | 1293 | # CONFIG_HFSPLUS_FS is not set |
1098 | # CONFIG_BEFS_FS is not set | 1294 | # CONFIG_BEFS_FS is not set |
1099 | # CONFIG_BFS_FS is not set | 1295 | # CONFIG_BFS_FS is not set |
1100 | CONFIG_EFS_FS=y | 1296 | # CONFIG_EFS_FS is not set |
1101 | CONFIG_CRAMFS=y | 1297 | CONFIG_JFFS2_FS=y |
1298 | CONFIG_JFFS2_FS_DEBUG=0 | ||
1299 | CONFIG_JFFS2_FS_WRITEBUFFER=y | ||
1300 | # CONFIG_JFFS2_SUMMARY is not set | ||
1301 | # CONFIG_JFFS2_FS_XATTR is not set | ||
1302 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | ||
1303 | CONFIG_JFFS2_ZLIB=y | ||
1304 | CONFIG_JFFS2_RTIME=y | ||
1305 | # CONFIG_JFFS2_RUBIN is not set | ||
1306 | # CONFIG_CRAMFS is not set | ||
1307 | CONFIG_SQUASHFS=y | ||
1308 | CONFIG_SQUASHFS_EMBEDDED=y | ||
1309 | CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 | ||
1310 | CONFIG_SQUASHFS_VMALLOC=y | ||
1102 | # CONFIG_VXFS_FS is not set | 1311 | # CONFIG_VXFS_FS is not set |
1103 | # CONFIG_HPFS_FS is not set | 1312 | # CONFIG_HPFS_FS is not set |
1104 | # CONFIG_QNX4FS_FS is not set | 1313 | # CONFIG_QNX4FS_FS is not set |
@@ -1108,26 +1317,9 @@ CONFIG_CRAMFS=y | |||
1108 | # | 1317 | # |
1109 | # Network File Systems | 1318 | # Network File Systems |
1110 | # | 1319 | # |
1111 | CONFIG_NFS_FS=y | 1320 | # CONFIG_NFS_FS is not set |
1112 | CONFIG_NFS_V3=y | 1321 | # CONFIG_NFSD is not set |
1113 | # CONFIG_NFS_V3_ACL is not set | 1322 | # CONFIG_SMB_FS is not set |
1114 | # CONFIG_NFS_V4 is not set | ||
1115 | # CONFIG_NFS_DIRECTIO is not set | ||
1116 | CONFIG_NFSD=y | ||
1117 | CONFIG_NFSD_V3=y | ||
1118 | # CONFIG_NFSD_V3_ACL is not set | ||
1119 | # CONFIG_NFSD_V4 is not set | ||
1120 | # CONFIG_NFSD_TCP is not set | ||
1121 | CONFIG_ROOT_NFS=y | ||
1122 | CONFIG_LOCKD=y | ||
1123 | CONFIG_LOCKD_V4=y | ||
1124 | CONFIG_EXPORTFS=y | ||
1125 | CONFIG_NFS_COMMON=y | ||
1126 | CONFIG_SUNRPC=y | ||
1127 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
1128 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
1129 | CONFIG_SMB_FS=m | ||
1130 | # CONFIG_SMB_NLS_DEFAULT is not set | ||
1131 | # CONFIG_CIFS is not set | 1323 | # CONFIG_CIFS is not set |
1132 | # CONFIG_NCP_FS is not set | 1324 | # CONFIG_NCP_FS is not set |
1133 | # CONFIG_CODA_FS is not set | 1325 | # CONFIG_CODA_FS is not set |
@@ -1143,9 +1335,9 @@ CONFIG_MSDOS_PARTITION=y | |||
1143 | # | 1335 | # |
1144 | # Native Language Support | 1336 | # Native Language Support |
1145 | # | 1337 | # |
1146 | CONFIG_NLS=m | 1338 | CONFIG_NLS=y |
1147 | CONFIG_NLS_DEFAULT="iso8859-1" | 1339 | CONFIG_NLS_DEFAULT="iso8859-1" |
1148 | # CONFIG_NLS_CODEPAGE_437 is not set | 1340 | CONFIG_NLS_CODEPAGE_437=y |
1149 | # CONFIG_NLS_CODEPAGE_737 is not set | 1341 | # CONFIG_NLS_CODEPAGE_737 is not set |
1150 | # CONFIG_NLS_CODEPAGE_775 is not set | 1342 | # CONFIG_NLS_CODEPAGE_775 is not set |
1151 | # CONFIG_NLS_CODEPAGE_850 is not set | 1343 | # CONFIG_NLS_CODEPAGE_850 is not set |
@@ -1169,7 +1361,7 @@ CONFIG_NLS_DEFAULT="iso8859-1" | |||
1169 | # CONFIG_NLS_CODEPAGE_1250 is not set | 1361 | # CONFIG_NLS_CODEPAGE_1250 is not set |
1170 | # CONFIG_NLS_CODEPAGE_1251 is not set | 1362 | # CONFIG_NLS_CODEPAGE_1251 is not set |
1171 | # CONFIG_NLS_ASCII is not set | 1363 | # CONFIG_NLS_ASCII is not set |
1172 | # CONFIG_NLS_ISO8859_1 is not set | 1364 | CONFIG_NLS_ISO8859_1=y |
1173 | # CONFIG_NLS_ISO8859_2 is not set | 1365 | # CONFIG_NLS_ISO8859_2 is not set |
1174 | # CONFIG_NLS_ISO8859_3 is not set | 1366 | # CONFIG_NLS_ISO8859_3 is not set |
1175 | # CONFIG_NLS_ISO8859_4 is not set | 1367 | # CONFIG_NLS_ISO8859_4 is not set |
@@ -1187,10 +1379,7 @@ CONFIG_NLS_DEFAULT="iso8859-1" | |||
1187 | # | 1379 | # |
1188 | # Distributed Lock Manager | 1380 | # Distributed Lock Manager |
1189 | # | 1381 | # |
1190 | CONFIG_DLM=m | 1382 | # CONFIG_DLM is not set |
1191 | CONFIG_DLM_TCP=y | ||
1192 | # CONFIG_DLM_SCTP is not set | ||
1193 | # CONFIG_DLM_DEBUG is not set | ||
1194 | 1383 | ||
1195 | # | 1384 | # |
1196 | # Profiling support | 1385 | # Profiling support |
@@ -1203,14 +1392,40 @@ CONFIG_DLM_TCP=y | |||
1203 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 1392 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
1204 | # CONFIG_PRINTK_TIME is not set | 1393 | # CONFIG_PRINTK_TIME is not set |
1205 | CONFIG_ENABLE_MUST_CHECK=y | 1394 | CONFIG_ENABLE_MUST_CHECK=y |
1206 | # CONFIG_MAGIC_SYSRQ is not set | 1395 | CONFIG_MAGIC_SYSRQ=y |
1207 | # CONFIG_UNUSED_SYMBOLS is not set | 1396 | # CONFIG_UNUSED_SYMBOLS is not set |
1208 | # CONFIG_DEBUG_FS is not set | 1397 | # CONFIG_DEBUG_FS is not set |
1209 | # CONFIG_HEADERS_CHECK is not set | 1398 | # CONFIG_HEADERS_CHECK is not set |
1210 | # CONFIG_DEBUG_KERNEL is not set | 1399 | CONFIG_DEBUG_KERNEL=y |
1400 | # CONFIG_DEBUG_SHIRQ is not set | ||
1211 | CONFIG_LOG_BUF_SHIFT=14 | 1401 | CONFIG_LOG_BUF_SHIFT=14 |
1402 | CONFIG_DETECT_SOFTLOCKUP=y | ||
1403 | # CONFIG_SCHEDSTATS is not set | ||
1404 | # CONFIG_TIMER_STATS is not set | ||
1405 | # CONFIG_DEBUG_SLAB is not set | ||
1406 | CONFIG_DEBUG_PREEMPT=y | ||
1407 | # CONFIG_DEBUG_RT_MUTEXES is not set | ||
1408 | # CONFIG_RT_MUTEX_TESTER is not set | ||
1409 | # CONFIG_DEBUG_SPINLOCK is not set | ||
1410 | # CONFIG_DEBUG_MUTEXES is not set | ||
1411 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
1412 | # CONFIG_PROVE_LOCKING is not set | ||
1413 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
1414 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | ||
1415 | # CONFIG_DEBUG_KOBJECT is not set | ||
1416 | # CONFIG_DEBUG_INFO is not set | ||
1417 | # CONFIG_DEBUG_VM is not set | ||
1418 | # CONFIG_DEBUG_LIST is not set | ||
1419 | CONFIG_FORCED_INLINING=y | ||
1420 | # CONFIG_RCU_TORTURE_TEST is not set | ||
1421 | # CONFIG_FAULT_INJECTION is not set | ||
1212 | CONFIG_CROSSCOMPILE=y | 1422 | CONFIG_CROSSCOMPILE=y |
1213 | CONFIG_CMDLINE="ip=any root=nfs" | 1423 | CONFIG_CMDLINE="" |
1424 | # CONFIG_DEBUG_STACK_USAGE is not set | ||
1425 | # CONFIG_KGDB is not set | ||
1426 | CONFIG_SYS_SUPPORTS_KGDB=y | ||
1427 | # CONFIG_RUNTIME_DEBUG is not set | ||
1428 | # CONFIG_MIPS_UNCACHED is not set | ||
1214 | 1429 | ||
1215 | # | 1430 | # |
1216 | # Security options | 1431 | # Security options |
@@ -1223,41 +1438,40 @@ CONFIG_CMDLINE="ip=any root=nfs" | |||
1223 | # | 1438 | # |
1224 | CONFIG_CRYPTO=y | 1439 | CONFIG_CRYPTO=y |
1225 | CONFIG_CRYPTO_ALGAPI=y | 1440 | CONFIG_CRYPTO_ALGAPI=y |
1226 | CONFIG_CRYPTO_BLKCIPHER=m | 1441 | CONFIG_CRYPTO_BLKCIPHER=y |
1227 | CONFIG_CRYPTO_HASH=y | 1442 | CONFIG_CRYPTO_HASH=y |
1228 | CONFIG_CRYPTO_MANAGER=y | 1443 | CONFIG_CRYPTO_MANAGER=y |
1229 | CONFIG_CRYPTO_HMAC=y | 1444 | CONFIG_CRYPTO_HMAC=y |
1230 | CONFIG_CRYPTO_XCBC=m | 1445 | # CONFIG_CRYPTO_XCBC is not set |
1231 | CONFIG_CRYPTO_NULL=m | 1446 | CONFIG_CRYPTO_NULL=y |
1232 | CONFIG_CRYPTO_MD4=m | 1447 | # CONFIG_CRYPTO_MD4 is not set |
1233 | CONFIG_CRYPTO_MD5=y | 1448 | CONFIG_CRYPTO_MD5=y |
1234 | CONFIG_CRYPTO_SHA1=m | 1449 | CONFIG_CRYPTO_SHA1=y |
1235 | CONFIG_CRYPTO_SHA256=m | 1450 | # CONFIG_CRYPTO_SHA256 is not set |
1236 | CONFIG_CRYPTO_SHA512=m | 1451 | # CONFIG_CRYPTO_SHA512 is not set |
1237 | CONFIG_CRYPTO_WP512=m | 1452 | # CONFIG_CRYPTO_WP512 is not set |
1238 | CONFIG_CRYPTO_TGR192=m | 1453 | # CONFIG_CRYPTO_TGR192 is not set |
1239 | CONFIG_CRYPTO_GF128MUL=m | 1454 | # CONFIG_CRYPTO_GF128MUL is not set |
1240 | CONFIG_CRYPTO_ECB=m | 1455 | # CONFIG_CRYPTO_ECB is not set |
1241 | CONFIG_CRYPTO_CBC=m | 1456 | CONFIG_CRYPTO_CBC=y |
1242 | CONFIG_CRYPTO_PCBC=m | 1457 | # CONFIG_CRYPTO_PCBC is not set |
1243 | CONFIG_CRYPTO_LRW=m | 1458 | # CONFIG_CRYPTO_LRW is not set |
1244 | CONFIG_CRYPTO_DES=m | 1459 | CONFIG_CRYPTO_DES=y |
1245 | CONFIG_CRYPTO_FCRYPT=m | 1460 | # CONFIG_CRYPTO_FCRYPT is not set |
1246 | CONFIG_CRYPTO_BLOWFISH=m | 1461 | # CONFIG_CRYPTO_BLOWFISH is not set |
1247 | CONFIG_CRYPTO_TWOFISH=m | 1462 | # CONFIG_CRYPTO_TWOFISH is not set |
1248 | CONFIG_CRYPTO_TWOFISH_COMMON=m | 1463 | # CONFIG_CRYPTO_SERPENT is not set |
1249 | CONFIG_CRYPTO_SERPENT=m | 1464 | CONFIG_CRYPTO_AES=y |
1250 | CONFIG_CRYPTO_AES=m | 1465 | # CONFIG_CRYPTO_CAST5 is not set |
1251 | CONFIG_CRYPTO_CAST5=m | 1466 | # CONFIG_CRYPTO_CAST6 is not set |
1252 | CONFIG_CRYPTO_CAST6=m | 1467 | # CONFIG_CRYPTO_TEA is not set |
1253 | CONFIG_CRYPTO_TEA=m | 1468 | # CONFIG_CRYPTO_ARC4 is not set |
1254 | CONFIG_CRYPTO_ARC4=m | 1469 | # CONFIG_CRYPTO_KHAZAD is not set |
1255 | CONFIG_CRYPTO_KHAZAD=m | 1470 | # CONFIG_CRYPTO_ANUBIS is not set |
1256 | CONFIG_CRYPTO_ANUBIS=m | 1471 | CONFIG_CRYPTO_DEFLATE=y |
1257 | CONFIG_CRYPTO_DEFLATE=m | 1472 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
1258 | CONFIG_CRYPTO_MICHAEL_MIC=m | 1473 | # CONFIG_CRYPTO_CRC32C is not set |
1259 | CONFIG_CRYPTO_CRC32C=m | 1474 | # CONFIG_CRYPTO_CAMELLIA is not set |
1260 | CONFIG_CRYPTO_CAMELLIA=m | ||
1261 | # CONFIG_CRYPTO_TEST is not set | 1475 | # CONFIG_CRYPTO_TEST is not set |
1262 | 1476 | ||
1263 | # | 1477 | # |
@@ -1268,16 +1482,12 @@ CONFIG_CRYPTO_CAMELLIA=m | |||
1268 | # Library routines | 1482 | # Library routines |
1269 | # | 1483 | # |
1270 | CONFIG_BITREVERSE=y | 1484 | CONFIG_BITREVERSE=y |
1271 | CONFIG_CRC_CCITT=m | 1485 | # CONFIG_CRC_CCITT is not set |
1272 | CONFIG_CRC16=m | 1486 | # CONFIG_CRC16 is not set |
1273 | CONFIG_CRC32=y | 1487 | CONFIG_CRC32=y |
1274 | CONFIG_LIBCRC32C=m | 1488 | # CONFIG_LIBCRC32C is not set |
1275 | CONFIG_ZLIB_INFLATE=y | 1489 | CONFIG_ZLIB_INFLATE=y |
1276 | CONFIG_ZLIB_DEFLATE=m | 1490 | CONFIG_ZLIB_DEFLATE=y |
1277 | CONFIG_TEXTSEARCH=y | ||
1278 | CONFIG_TEXTSEARCH_KMP=m | ||
1279 | CONFIG_TEXTSEARCH_BM=m | ||
1280 | CONFIG_TEXTSEARCH_FSM=m | ||
1281 | CONFIG_PLIST=y | 1491 | CONFIG_PLIST=y |
1282 | CONFIG_HAS_IOMEM=y | 1492 | CONFIG_HAS_IOMEM=y |
1283 | CONFIG_HAS_IOPORT=y | 1493 | CONFIG_HAS_IOPORT=y |
diff --git a/arch/mips/configs/ocelot_c_defconfig b/arch/mips/configs/ocelot_c_defconfig deleted file mode 100644 index 82ff6fc0cd41..000000000000 --- a/arch/mips/configs/ocelot_c_defconfig +++ /dev/null | |||
@@ -1,982 +0,0 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.20 | ||
4 | # Tue Feb 20 21:47:36 2007 | ||
5 | # | ||
6 | CONFIG_MIPS=y | ||
7 | |||
8 | # | ||
9 | # Machine selection | ||
10 | # | ||
11 | CONFIG_ZONE_DMA=y | ||
12 | # CONFIG_MIPS_MTX1 is not set | ||
13 | # CONFIG_MIPS_BOSPORUS is not set | ||
14 | # CONFIG_MIPS_PB1000 is not set | ||
15 | # CONFIG_MIPS_PB1100 is not set | ||
16 | # CONFIG_MIPS_PB1500 is not set | ||
17 | # CONFIG_MIPS_PB1550 is not set | ||
18 | # CONFIG_MIPS_PB1200 is not set | ||
19 | # CONFIG_MIPS_DB1000 is not set | ||
20 | # CONFIG_MIPS_DB1100 is not set | ||
21 | # CONFIG_MIPS_DB1500 is not set | ||
22 | # CONFIG_MIPS_DB1550 is not set | ||
23 | # CONFIG_MIPS_DB1200 is not set | ||
24 | # CONFIG_MIPS_MIRAGE is not set | ||
25 | # CONFIG_BASLER_EXCITE is not set | ||
26 | # CONFIG_MIPS_COBALT is not set | ||
27 | # CONFIG_MACH_DECSTATION is not set | ||
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | ||
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | ||
32 | # CONFIG_MIPS_MALTA is not set | ||
33 | # CONFIG_MIPS_SEAD is not set | ||
34 | # CONFIG_WR_PPMC is not set | ||
35 | # CONFIG_MIPS_SIM is not set | ||
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | ||
37 | # CONFIG_MOMENCO_OCELOT is not set | ||
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | CONFIG_MOMENCO_OCELOT_C=y | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | ||
41 | # CONFIG_MIPS_XXS1500 is not set | ||
42 | # CONFIG_PNX8550_JBS is not set | ||
43 | # CONFIG_PNX8550_STB810 is not set | ||
44 | # CONFIG_DDB5477 is not set | ||
45 | # CONFIG_MACH_VR41XX is not set | ||
46 | # CONFIG_PMC_YOSEMITE is not set | ||
47 | # CONFIG_QEMU is not set | ||
48 | # CONFIG_MARKEINS is not set | ||
49 | # CONFIG_SGI_IP22 is not set | ||
50 | # CONFIG_SGI_IP27 is not set | ||
51 | # CONFIG_SGI_IP32 is not set | ||
52 | # CONFIG_SIBYTE_BIGSUR is not set | ||
53 | # CONFIG_SIBYTE_SWARM is not set | ||
54 | # CONFIG_SIBYTE_SENTOSA is not set | ||
55 | # CONFIG_SIBYTE_RHONE is not set | ||
56 | # CONFIG_SIBYTE_CARMEL is not set | ||
57 | # CONFIG_SIBYTE_PTSWARM is not set | ||
58 | # CONFIG_SIBYTE_LITTLESUR is not set | ||
59 | # CONFIG_SIBYTE_CRHINE is not set | ||
60 | # CONFIG_SIBYTE_CRHONE is not set | ||
61 | # CONFIG_SNI_RM is not set | ||
62 | # CONFIG_TOSHIBA_JMR3927 is not set | ||
63 | # CONFIG_TOSHIBA_RBTX4927 is not set | ||
64 | # CONFIG_TOSHIBA_RBTX4938 is not set | ||
65 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
66 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
67 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
68 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
69 | CONFIG_GENERIC_HWEIGHT=y | ||
70 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
71 | CONFIG_GENERIC_TIME=y | ||
72 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | ||
73 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
74 | CONFIG_DMA_NONCOHERENT=y | ||
75 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | ||
76 | CONFIG_CPU_BIG_ENDIAN=y | ||
77 | # CONFIG_CPU_LITTLE_ENDIAN is not set | ||
78 | CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y | ||
79 | CONFIG_IRQ_CPU=y | ||
80 | CONFIG_IRQ_MV64340=y | ||
81 | CONFIG_PCI_MARVELL=y | ||
82 | CONFIG_SWAP_IO_SPACE=y | ||
83 | CONFIG_MIPS_L1_CACHE_SHIFT=5 | ||
84 | |||
85 | # | ||
86 | # CPU selection | ||
87 | # | ||
88 | # CONFIG_CPU_MIPS32_R1 is not set | ||
89 | # CONFIG_CPU_MIPS32_R2 is not set | ||
90 | # CONFIG_CPU_MIPS64_R1 is not set | ||
91 | # CONFIG_CPU_MIPS64_R2 is not set | ||
92 | # CONFIG_CPU_R3000 is not set | ||
93 | # CONFIG_CPU_TX39XX is not set | ||
94 | # CONFIG_CPU_VR41XX is not set | ||
95 | # CONFIG_CPU_R4300 is not set | ||
96 | # CONFIG_CPU_R4X00 is not set | ||
97 | # CONFIG_CPU_TX49XX is not set | ||
98 | # CONFIG_CPU_R5000 is not set | ||
99 | # CONFIG_CPU_R5432 is not set | ||
100 | # CONFIG_CPU_R6000 is not set | ||
101 | # CONFIG_CPU_NEVADA is not set | ||
102 | # CONFIG_CPU_R8000 is not set | ||
103 | # CONFIG_CPU_R10000 is not set | ||
104 | CONFIG_CPU_RM7000=y | ||
105 | # CONFIG_CPU_RM9000 is not set | ||
106 | # CONFIG_CPU_SB1 is not set | ||
107 | CONFIG_SYS_HAS_CPU_RM7000=y | ||
108 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y | ||
109 | CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y | ||
110 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y | ||
111 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y | ||
112 | |||
113 | # | ||
114 | # Kernel type | ||
115 | # | ||
116 | # CONFIG_32BIT is not set | ||
117 | CONFIG_64BIT=y | ||
118 | CONFIG_PAGE_SIZE_4KB=y | ||
119 | # CONFIG_PAGE_SIZE_8KB is not set | ||
120 | # CONFIG_PAGE_SIZE_16KB is not set | ||
121 | # CONFIG_PAGE_SIZE_64KB is not set | ||
122 | CONFIG_BOARD_SCACHE=y | ||
123 | CONFIG_RM7000_CPU_SCACHE=y | ||
124 | CONFIG_CPU_HAS_PREFETCH=y | ||
125 | CONFIG_MIPS_MT_DISABLED=y | ||
126 | # CONFIG_MIPS_MT_SMP is not set | ||
127 | # CONFIG_MIPS_MT_SMTC is not set | ||
128 | # CONFIG_MIPS_VPE_LOADER is not set | ||
129 | CONFIG_CPU_HAS_LLSC=y | ||
130 | CONFIG_CPU_HAS_SYNC=y | ||
131 | CONFIG_GENERIC_HARDIRQS=y | ||
132 | CONFIG_GENERIC_IRQ_PROBE=y | ||
133 | CONFIG_CPU_SUPPORTS_HIGHMEM=y | ||
134 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
135 | CONFIG_SELECT_MEMORY_MODEL=y | ||
136 | CONFIG_FLATMEM_MANUAL=y | ||
137 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
138 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
139 | CONFIG_FLATMEM=y | ||
140 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
141 | # CONFIG_SPARSEMEM_STATIC is not set | ||
142 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
143 | CONFIG_RESOURCES_64BIT=y | ||
144 | CONFIG_ZONE_DMA_FLAG=1 | ||
145 | # CONFIG_HZ_48 is not set | ||
146 | # CONFIG_HZ_100 is not set | ||
147 | # CONFIG_HZ_128 is not set | ||
148 | # CONFIG_HZ_250 is not set | ||
149 | # CONFIG_HZ_256 is not set | ||
150 | CONFIG_HZ_1000=y | ||
151 | # CONFIG_HZ_1024 is not set | ||
152 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y | ||
153 | CONFIG_HZ=1000 | ||
154 | CONFIG_PREEMPT_NONE=y | ||
155 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
156 | # CONFIG_PREEMPT is not set | ||
157 | # CONFIG_KEXEC is not set | ||
158 | CONFIG_LOCKDEP_SUPPORT=y | ||
159 | CONFIG_STACKTRACE_SUPPORT=y | ||
160 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
161 | |||
162 | # | ||
163 | # Code maturity level options | ||
164 | # | ||
165 | CONFIG_EXPERIMENTAL=y | ||
166 | CONFIG_BROKEN_ON_SMP=y | ||
167 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
168 | |||
169 | # | ||
170 | # General setup | ||
171 | # | ||
172 | CONFIG_LOCALVERSION="" | ||
173 | CONFIG_LOCALVERSION_AUTO=y | ||
174 | CONFIG_SWAP=y | ||
175 | CONFIG_SYSVIPC=y | ||
176 | # CONFIG_IPC_NS is not set | ||
177 | CONFIG_SYSVIPC_SYSCTL=y | ||
178 | # CONFIG_POSIX_MQUEUE is not set | ||
179 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
180 | # CONFIG_TASKSTATS is not set | ||
181 | # CONFIG_UTS_NS is not set | ||
182 | # CONFIG_AUDIT is not set | ||
183 | # CONFIG_IKCONFIG is not set | ||
184 | CONFIG_SYSFS_DEPRECATED=y | ||
185 | CONFIG_RELAY=y | ||
186 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
187 | CONFIG_SYSCTL=y | ||
188 | CONFIG_EMBEDDED=y | ||
189 | CONFIG_SYSCTL_SYSCALL=y | ||
190 | CONFIG_KALLSYMS=y | ||
191 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
192 | CONFIG_HOTPLUG=y | ||
193 | CONFIG_PRINTK=y | ||
194 | CONFIG_BUG=y | ||
195 | CONFIG_ELF_CORE=y | ||
196 | CONFIG_BASE_FULL=y | ||
197 | CONFIG_FUTEX=y | ||
198 | CONFIG_EPOLL=y | ||
199 | CONFIG_SHMEM=y | ||
200 | CONFIG_SLAB=y | ||
201 | CONFIG_VM_EVENT_COUNTERS=y | ||
202 | CONFIG_RT_MUTEXES=y | ||
203 | # CONFIG_TINY_SHMEM is not set | ||
204 | CONFIG_BASE_SMALL=0 | ||
205 | # CONFIG_SLOB is not set | ||
206 | |||
207 | # | ||
208 | # Loadable module support | ||
209 | # | ||
210 | # CONFIG_MODULES is not set | ||
211 | |||
212 | # | ||
213 | # Block layer | ||
214 | # | ||
215 | CONFIG_BLOCK=y | ||
216 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
217 | |||
218 | # | ||
219 | # IO Schedulers | ||
220 | # | ||
221 | CONFIG_IOSCHED_NOOP=y | ||
222 | CONFIG_IOSCHED_AS=y | ||
223 | CONFIG_IOSCHED_DEADLINE=y | ||
224 | CONFIG_IOSCHED_CFQ=y | ||
225 | CONFIG_DEFAULT_AS=y | ||
226 | # CONFIG_DEFAULT_DEADLINE is not set | ||
227 | # CONFIG_DEFAULT_CFQ is not set | ||
228 | # CONFIG_DEFAULT_NOOP is not set | ||
229 | CONFIG_DEFAULT_IOSCHED="anticipatory" | ||
230 | |||
231 | # | ||
232 | # Bus options (PCI, PCMCIA, EISA, ISA, TC) | ||
233 | # | ||
234 | CONFIG_HW_HAS_PCI=y | ||
235 | CONFIG_PCI=y | ||
236 | CONFIG_MMU=y | ||
237 | |||
238 | # | ||
239 | # PCCARD (PCMCIA/CardBus) support | ||
240 | # | ||
241 | # CONFIG_PCCARD is not set | ||
242 | |||
243 | # | ||
244 | # PCI Hotplug Support | ||
245 | # | ||
246 | # CONFIG_HOTPLUG_PCI is not set | ||
247 | |||
248 | # | ||
249 | # Executable file formats | ||
250 | # | ||
251 | CONFIG_BINFMT_ELF=y | ||
252 | # CONFIG_BINFMT_MISC is not set | ||
253 | # CONFIG_BUILD_ELF64 is not set | ||
254 | CONFIG_MIPS32_COMPAT=y | ||
255 | CONFIG_COMPAT=y | ||
256 | CONFIG_SYSVIPC_COMPAT=y | ||
257 | CONFIG_MIPS32_O32=y | ||
258 | CONFIG_MIPS32_N32=y | ||
259 | CONFIG_BINFMT_ELF32=y | ||
260 | |||
261 | # | ||
262 | # Power management options | ||
263 | # | ||
264 | CONFIG_PM=y | ||
265 | # CONFIG_PM_LEGACY is not set | ||
266 | # CONFIG_PM_DEBUG is not set | ||
267 | # CONFIG_PM_SYSFS_DEPRECATED is not set | ||
268 | |||
269 | # | ||
270 | # Networking | ||
271 | # | ||
272 | CONFIG_NET=y | ||
273 | |||
274 | # | ||
275 | # Networking options | ||
276 | # | ||
277 | # CONFIG_NETDEBUG is not set | ||
278 | # CONFIG_PACKET is not set | ||
279 | CONFIG_UNIX=y | ||
280 | CONFIG_XFRM=y | ||
281 | CONFIG_XFRM_USER=y | ||
282 | # CONFIG_XFRM_SUB_POLICY is not set | ||
283 | CONFIG_XFRM_MIGRATE=y | ||
284 | CONFIG_NET_KEY=y | ||
285 | CONFIG_NET_KEY_MIGRATE=y | ||
286 | CONFIG_INET=y | ||
287 | # CONFIG_IP_MULTICAST is not set | ||
288 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
289 | CONFIG_IP_FIB_HASH=y | ||
290 | CONFIG_IP_PNP=y | ||
291 | CONFIG_IP_PNP_DHCP=y | ||
292 | # CONFIG_IP_PNP_BOOTP is not set | ||
293 | # CONFIG_IP_PNP_RARP is not set | ||
294 | # CONFIG_NET_IPIP is not set | ||
295 | # CONFIG_NET_IPGRE is not set | ||
296 | # CONFIG_ARPD is not set | ||
297 | # CONFIG_SYN_COOKIES is not set | ||
298 | # CONFIG_INET_AH is not set | ||
299 | # CONFIG_INET_ESP is not set | ||
300 | # CONFIG_INET_IPCOMP is not set | ||
301 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
302 | # CONFIG_INET_TUNNEL is not set | ||
303 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
304 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
305 | CONFIG_INET_XFRM_MODE_BEET=y | ||
306 | CONFIG_INET_DIAG=y | ||
307 | CONFIG_INET_TCP_DIAG=y | ||
308 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
309 | CONFIG_TCP_CONG_CUBIC=y | ||
310 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
311 | CONFIG_TCP_MD5SIG=y | ||
312 | # CONFIG_IPV6 is not set | ||
313 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
314 | # CONFIG_INET6_TUNNEL is not set | ||
315 | CONFIG_NETWORK_SECMARK=y | ||
316 | # CONFIG_NETFILTER is not set | ||
317 | |||
318 | # | ||
319 | # DCCP Configuration (EXPERIMENTAL) | ||
320 | # | ||
321 | # CONFIG_IP_DCCP is not set | ||
322 | |||
323 | # | ||
324 | # SCTP Configuration (EXPERIMENTAL) | ||
325 | # | ||
326 | # CONFIG_IP_SCTP is not set | ||
327 | |||
328 | # | ||
329 | # TIPC Configuration (EXPERIMENTAL) | ||
330 | # | ||
331 | # CONFIG_TIPC is not set | ||
332 | # CONFIG_ATM is not set | ||
333 | # CONFIG_BRIDGE is not set | ||
334 | # CONFIG_VLAN_8021Q is not set | ||
335 | # CONFIG_DECNET is not set | ||
336 | # CONFIG_LLC2 is not set | ||
337 | # CONFIG_IPX is not set | ||
338 | # CONFIG_ATALK is not set | ||
339 | # CONFIG_X25 is not set | ||
340 | # CONFIG_LAPB is not set | ||
341 | # CONFIG_ECONET is not set | ||
342 | # CONFIG_WAN_ROUTER is not set | ||
343 | |||
344 | # | ||
345 | # QoS and/or fair queueing | ||
346 | # | ||
347 | # CONFIG_NET_SCHED is not set | ||
348 | |||
349 | # | ||
350 | # Network testing | ||
351 | # | ||
352 | # CONFIG_NET_PKTGEN is not set | ||
353 | # CONFIG_HAMRADIO is not set | ||
354 | # CONFIG_IRDA is not set | ||
355 | # CONFIG_BT is not set | ||
356 | CONFIG_IEEE80211=y | ||
357 | # CONFIG_IEEE80211_DEBUG is not set | ||
358 | CONFIG_IEEE80211_CRYPT_WEP=y | ||
359 | CONFIG_IEEE80211_CRYPT_CCMP=y | ||
360 | CONFIG_IEEE80211_SOFTMAC=y | ||
361 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
362 | CONFIG_WIRELESS_EXT=y | ||
363 | |||
364 | # | ||
365 | # Device Drivers | ||
366 | # | ||
367 | |||
368 | # | ||
369 | # Generic Driver Options | ||
370 | # | ||
371 | CONFIG_STANDALONE=y | ||
372 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
373 | CONFIG_FW_LOADER=y | ||
374 | # CONFIG_SYS_HYPERVISOR is not set | ||
375 | |||
376 | # | ||
377 | # Connector - unified userspace <-> kernelspace linker | ||
378 | # | ||
379 | CONFIG_CONNECTOR=y | ||
380 | CONFIG_PROC_EVENTS=y | ||
381 | |||
382 | # | ||
383 | # Memory Technology Devices (MTD) | ||
384 | # | ||
385 | # CONFIG_MTD is not set | ||
386 | |||
387 | # | ||
388 | # Parallel port support | ||
389 | # | ||
390 | # CONFIG_PARPORT is not set | ||
391 | |||
392 | # | ||
393 | # Plug and Play support | ||
394 | # | ||
395 | # CONFIG_PNPACPI is not set | ||
396 | |||
397 | # | ||
398 | # Block devices | ||
399 | # | ||
400 | # CONFIG_BLK_CPQ_DA is not set | ||
401 | # CONFIG_BLK_CPQ_CISS_DA is not set | ||
402 | # CONFIG_BLK_DEV_DAC960 is not set | ||
403 | # CONFIG_BLK_DEV_UMEM is not set | ||
404 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
405 | # CONFIG_BLK_DEV_LOOP is not set | ||
406 | # CONFIG_BLK_DEV_NBD is not set | ||
407 | # CONFIG_BLK_DEV_SX8 is not set | ||
408 | # CONFIG_BLK_DEV_RAM is not set | ||
409 | # CONFIG_BLK_DEV_INITRD is not set | ||
410 | CONFIG_CDROM_PKTCDVD=y | ||
411 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | ||
412 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | ||
413 | CONFIG_ATA_OVER_ETH=y | ||
414 | |||
415 | # | ||
416 | # Misc devices | ||
417 | # | ||
418 | CONFIG_SGI_IOC4=y | ||
419 | # CONFIG_TIFM_CORE is not set | ||
420 | |||
421 | # | ||
422 | # ATA/ATAPI/MFM/RLL support | ||
423 | # | ||
424 | # CONFIG_IDE is not set | ||
425 | |||
426 | # | ||
427 | # SCSI device support | ||
428 | # | ||
429 | CONFIG_RAID_ATTRS=y | ||
430 | # CONFIG_SCSI is not set | ||
431 | # CONFIG_SCSI_NETLINK is not set | ||
432 | |||
433 | # | ||
434 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
435 | # | ||
436 | # CONFIG_ATA is not set | ||
437 | |||
438 | # | ||
439 | # Multi-device support (RAID and LVM) | ||
440 | # | ||
441 | # CONFIG_MD is not set | ||
442 | |||
443 | # | ||
444 | # Fusion MPT device support | ||
445 | # | ||
446 | # CONFIG_FUSION is not set | ||
447 | |||
448 | # | ||
449 | # IEEE 1394 (FireWire) support | ||
450 | # | ||
451 | # CONFIG_IEEE1394 is not set | ||
452 | |||
453 | # | ||
454 | # I2O device support | ||
455 | # | ||
456 | # CONFIG_I2O is not set | ||
457 | |||
458 | # | ||
459 | # Network device support | ||
460 | # | ||
461 | CONFIG_NETDEVICES=y | ||
462 | # CONFIG_DUMMY is not set | ||
463 | # CONFIG_BONDING is not set | ||
464 | # CONFIG_EQUALIZER is not set | ||
465 | # CONFIG_TUN is not set | ||
466 | |||
467 | # | ||
468 | # ARCnet devices | ||
469 | # | ||
470 | # CONFIG_ARCNET is not set | ||
471 | |||
472 | # | ||
473 | # PHY device support | ||
474 | # | ||
475 | CONFIG_PHYLIB=y | ||
476 | |||
477 | # | ||
478 | # MII PHY device drivers | ||
479 | # | ||
480 | CONFIG_MARVELL_PHY=y | ||
481 | CONFIG_DAVICOM_PHY=y | ||
482 | CONFIG_QSEMI_PHY=y | ||
483 | CONFIG_LXT_PHY=y | ||
484 | CONFIG_CICADA_PHY=y | ||
485 | CONFIG_VITESSE_PHY=y | ||
486 | CONFIG_SMSC_PHY=y | ||
487 | # CONFIG_BROADCOM_PHY is not set | ||
488 | # CONFIG_FIXED_PHY is not set | ||
489 | |||
490 | # | ||
491 | # Ethernet (10 or 100Mbit) | ||
492 | # | ||
493 | CONFIG_NET_ETHERNET=y | ||
494 | # CONFIG_MII is not set | ||
495 | # CONFIG_HAPPYMEAL is not set | ||
496 | # CONFIG_SUNGEM is not set | ||
497 | # CONFIG_CASSINI is not set | ||
498 | # CONFIG_NET_VENDOR_3COM is not set | ||
499 | # CONFIG_DM9000 is not set | ||
500 | |||
501 | # | ||
502 | # Tulip family network device support | ||
503 | # | ||
504 | # CONFIG_NET_TULIP is not set | ||
505 | # CONFIG_HP100 is not set | ||
506 | # CONFIG_NET_PCI is not set | ||
507 | |||
508 | # | ||
509 | # Ethernet (1000 Mbit) | ||
510 | # | ||
511 | # CONFIG_ACENIC is not set | ||
512 | # CONFIG_DL2K is not set | ||
513 | # CONFIG_E1000 is not set | ||
514 | # CONFIG_NS83820 is not set | ||
515 | # CONFIG_HAMACHI is not set | ||
516 | # CONFIG_YELLOWFIN is not set | ||
517 | # CONFIG_R8169 is not set | ||
518 | # CONFIG_SIS190 is not set | ||
519 | # CONFIG_SKGE is not set | ||
520 | # CONFIG_SKY2 is not set | ||
521 | # CONFIG_SK98LIN is not set | ||
522 | # CONFIG_TIGON3 is not set | ||
523 | # CONFIG_BNX2 is not set | ||
524 | # CONFIG_MV643XX_ETH is not set | ||
525 | CONFIG_QLA3XXX=y | ||
526 | # CONFIG_ATL1 is not set | ||
527 | |||
528 | # | ||
529 | # Ethernet (10000 Mbit) | ||
530 | # | ||
531 | # CONFIG_CHELSIO_T1 is not set | ||
532 | CONFIG_CHELSIO_T3=y | ||
533 | # CONFIG_IXGB is not set | ||
534 | # CONFIG_S2IO is not set | ||
535 | # CONFIG_MYRI10GE is not set | ||
536 | CONFIG_NETXEN_NIC=y | ||
537 | |||
538 | # | ||
539 | # Token Ring devices | ||
540 | # | ||
541 | # CONFIG_TR is not set | ||
542 | |||
543 | # | ||
544 | # Wireless LAN (non-hamradio) | ||
545 | # | ||
546 | # CONFIG_NET_RADIO is not set | ||
547 | |||
548 | # | ||
549 | # Wan interfaces | ||
550 | # | ||
551 | # CONFIG_WAN is not set | ||
552 | # CONFIG_FDDI is not set | ||
553 | # CONFIG_HIPPI is not set | ||
554 | # CONFIG_PPP is not set | ||
555 | # CONFIG_SLIP is not set | ||
556 | # CONFIG_SHAPER is not set | ||
557 | # CONFIG_NETCONSOLE is not set | ||
558 | # CONFIG_NETPOLL is not set | ||
559 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
560 | |||
561 | # | ||
562 | # ISDN subsystem | ||
563 | # | ||
564 | # CONFIG_ISDN is not set | ||
565 | |||
566 | # | ||
567 | # Telephony Support | ||
568 | # | ||
569 | # CONFIG_PHONE is not set | ||
570 | |||
571 | # | ||
572 | # Input device support | ||
573 | # | ||
574 | CONFIG_INPUT=y | ||
575 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
576 | |||
577 | # | ||
578 | # Userland interfaces | ||
579 | # | ||
580 | CONFIG_INPUT_MOUSEDEV=y | ||
581 | CONFIG_INPUT_MOUSEDEV_PSAUX=y | ||
582 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
583 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
584 | # CONFIG_INPUT_JOYDEV is not set | ||
585 | # CONFIG_INPUT_TSDEV is not set | ||
586 | # CONFIG_INPUT_EVDEV is not set | ||
587 | # CONFIG_INPUT_EVBUG is not set | ||
588 | |||
589 | # | ||
590 | # Input Device Drivers | ||
591 | # | ||
592 | # CONFIG_INPUT_KEYBOARD is not set | ||
593 | # CONFIG_INPUT_MOUSE is not set | ||
594 | # CONFIG_INPUT_JOYSTICK is not set | ||
595 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
596 | # CONFIG_INPUT_MISC is not set | ||
597 | |||
598 | # | ||
599 | # Hardware I/O ports | ||
600 | # | ||
601 | CONFIG_SERIO=y | ||
602 | # CONFIG_SERIO_I8042 is not set | ||
603 | CONFIG_SERIO_SERPORT=y | ||
604 | # CONFIG_SERIO_PCIPS2 is not set | ||
605 | # CONFIG_SERIO_LIBPS2 is not set | ||
606 | CONFIG_SERIO_RAW=y | ||
607 | # CONFIG_GAMEPORT is not set | ||
608 | |||
609 | # | ||
610 | # Character devices | ||
611 | # | ||
612 | CONFIG_VT=y | ||
613 | CONFIG_VT_CONSOLE=y | ||
614 | CONFIG_HW_CONSOLE=y | ||
615 | CONFIG_VT_HW_CONSOLE_BINDING=y | ||
616 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
617 | |||
618 | # | ||
619 | # Serial drivers | ||
620 | # | ||
621 | CONFIG_SERIAL_8250=y | ||
622 | CONFIG_SERIAL_8250_CONSOLE=y | ||
623 | CONFIG_SERIAL_8250_PCI=y | ||
624 | CONFIG_SERIAL_8250_NR_UARTS=4 | ||
625 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | ||
626 | # CONFIG_SERIAL_8250_EXTENDED is not set | ||
627 | |||
628 | # | ||
629 | # Non-8250 serial port support | ||
630 | # | ||
631 | CONFIG_SERIAL_CORE=y | ||
632 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
633 | # CONFIG_SERIAL_JSM is not set | ||
634 | CONFIG_UNIX98_PTYS=y | ||
635 | CONFIG_LEGACY_PTYS=y | ||
636 | CONFIG_LEGACY_PTY_COUNT=256 | ||
637 | |||
638 | # | ||
639 | # IPMI | ||
640 | # | ||
641 | # CONFIG_IPMI_HANDLER is not set | ||
642 | |||
643 | # | ||
644 | # Watchdog Cards | ||
645 | # | ||
646 | # CONFIG_WATCHDOG is not set | ||
647 | # CONFIG_HW_RANDOM is not set | ||
648 | # CONFIG_RTC is not set | ||
649 | # CONFIG_GEN_RTC is not set | ||
650 | # CONFIG_DTLK is not set | ||
651 | # CONFIG_R3964 is not set | ||
652 | # CONFIG_APPLICOM is not set | ||
653 | # CONFIG_DRM is not set | ||
654 | # CONFIG_RAW_DRIVER is not set | ||
655 | |||
656 | # | ||
657 | # TPM devices | ||
658 | # | ||
659 | # CONFIG_TCG_TPM is not set | ||
660 | |||
661 | # | ||
662 | # I2C support | ||
663 | # | ||
664 | # CONFIG_I2C is not set | ||
665 | |||
666 | # | ||
667 | # SPI support | ||
668 | # | ||
669 | # CONFIG_SPI is not set | ||
670 | # CONFIG_SPI_MASTER is not set | ||
671 | |||
672 | # | ||
673 | # Dallas's 1-wire bus | ||
674 | # | ||
675 | # CONFIG_W1 is not set | ||
676 | |||
677 | # | ||
678 | # Hardware Monitoring support | ||
679 | # | ||
680 | # CONFIG_HWMON is not set | ||
681 | # CONFIG_HWMON_VID is not set | ||
682 | |||
683 | # | ||
684 | # Multimedia devices | ||
685 | # | ||
686 | # CONFIG_VIDEO_DEV is not set | ||
687 | |||
688 | # | ||
689 | # Digital Video Broadcasting Devices | ||
690 | # | ||
691 | # CONFIG_DVB is not set | ||
692 | |||
693 | # | ||
694 | # Graphics support | ||
695 | # | ||
696 | # CONFIG_FIRMWARE_EDID is not set | ||
697 | # CONFIG_FB is not set | ||
698 | |||
699 | # | ||
700 | # Console display driver support | ||
701 | # | ||
702 | # CONFIG_VGA_CONSOLE is not set | ||
703 | CONFIG_DUMMY_CONSOLE=y | ||
704 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
705 | |||
706 | # | ||
707 | # Sound | ||
708 | # | ||
709 | # CONFIG_SOUND is not set | ||
710 | |||
711 | # | ||
712 | # HID Devices | ||
713 | # | ||
714 | # CONFIG_HID is not set | ||
715 | |||
716 | # | ||
717 | # USB support | ||
718 | # | ||
719 | CONFIG_USB_ARCH_HAS_HCD=y | ||
720 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
721 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
722 | # CONFIG_USB is not set | ||
723 | |||
724 | # | ||
725 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
726 | # | ||
727 | |||
728 | # | ||
729 | # USB Gadget Support | ||
730 | # | ||
731 | # CONFIG_USB_GADGET is not set | ||
732 | |||
733 | # | ||
734 | # MMC/SD Card support | ||
735 | # | ||
736 | # CONFIG_MMC is not set | ||
737 | |||
738 | # | ||
739 | # LED devices | ||
740 | # | ||
741 | # CONFIG_NEW_LEDS is not set | ||
742 | |||
743 | # | ||
744 | # LED drivers | ||
745 | # | ||
746 | |||
747 | # | ||
748 | # LED Triggers | ||
749 | # | ||
750 | |||
751 | # | ||
752 | # InfiniBand support | ||
753 | # | ||
754 | # CONFIG_INFINIBAND is not set | ||
755 | |||
756 | # | ||
757 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
758 | # | ||
759 | |||
760 | # | ||
761 | # Real Time Clock | ||
762 | # | ||
763 | # CONFIG_RTC_CLASS is not set | ||
764 | |||
765 | # | ||
766 | # DMA Engine support | ||
767 | # | ||
768 | # CONFIG_DMA_ENGINE is not set | ||
769 | |||
770 | # | ||
771 | # DMA Clients | ||
772 | # | ||
773 | |||
774 | # | ||
775 | # DMA Devices | ||
776 | # | ||
777 | |||
778 | # | ||
779 | # Auxiliary Display support | ||
780 | # | ||
781 | |||
782 | # | ||
783 | # Virtualization | ||
784 | # | ||
785 | |||
786 | # | ||
787 | # File systems | ||
788 | # | ||
789 | CONFIG_EXT2_FS=y | ||
790 | # CONFIG_EXT2_FS_XATTR is not set | ||
791 | # CONFIG_EXT2_FS_XIP is not set | ||
792 | # CONFIG_EXT3_FS is not set | ||
793 | # CONFIG_EXT4DEV_FS is not set | ||
794 | # CONFIG_REISERFS_FS is not set | ||
795 | # CONFIG_JFS_FS is not set | ||
796 | CONFIG_FS_POSIX_ACL=y | ||
797 | # CONFIG_XFS_FS is not set | ||
798 | # CONFIG_GFS2_FS is not set | ||
799 | # CONFIG_OCFS2_FS is not set | ||
800 | # CONFIG_MINIX_FS is not set | ||
801 | # CONFIG_ROMFS_FS is not set | ||
802 | CONFIG_INOTIFY=y | ||
803 | CONFIG_INOTIFY_USER=y | ||
804 | # CONFIG_QUOTA is not set | ||
805 | CONFIG_DNOTIFY=y | ||
806 | # CONFIG_AUTOFS_FS is not set | ||
807 | # CONFIG_AUTOFS4_FS is not set | ||
808 | CONFIG_FUSE_FS=y | ||
809 | CONFIG_GENERIC_ACL=y | ||
810 | |||
811 | # | ||
812 | # CD-ROM/DVD Filesystems | ||
813 | # | ||
814 | # CONFIG_ISO9660_FS is not set | ||
815 | # CONFIG_UDF_FS is not set | ||
816 | |||
817 | # | ||
818 | # DOS/FAT/NT Filesystems | ||
819 | # | ||
820 | # CONFIG_MSDOS_FS is not set | ||
821 | # CONFIG_VFAT_FS is not set | ||
822 | # CONFIG_NTFS_FS is not set | ||
823 | |||
824 | # | ||
825 | # Pseudo filesystems | ||
826 | # | ||
827 | CONFIG_PROC_FS=y | ||
828 | CONFIG_PROC_KCORE=y | ||
829 | CONFIG_PROC_SYSCTL=y | ||
830 | CONFIG_SYSFS=y | ||
831 | CONFIG_TMPFS=y | ||
832 | CONFIG_TMPFS_POSIX_ACL=y | ||
833 | # CONFIG_HUGETLB_PAGE is not set | ||
834 | CONFIG_RAMFS=y | ||
835 | CONFIG_CONFIGFS_FS=y | ||
836 | |||
837 | # | ||
838 | # Miscellaneous filesystems | ||
839 | # | ||
840 | # CONFIG_ADFS_FS is not set | ||
841 | # CONFIG_AFFS_FS is not set | ||
842 | # CONFIG_ECRYPT_FS is not set | ||
843 | # CONFIG_HFS_FS is not set | ||
844 | # CONFIG_HFSPLUS_FS is not set | ||
845 | # CONFIG_BEFS_FS is not set | ||
846 | # CONFIG_BFS_FS is not set | ||
847 | # CONFIG_EFS_FS is not set | ||
848 | # CONFIG_CRAMFS is not set | ||
849 | # CONFIG_VXFS_FS is not set | ||
850 | # CONFIG_HPFS_FS is not set | ||
851 | # CONFIG_QNX4FS_FS is not set | ||
852 | # CONFIG_SYSV_FS is not set | ||
853 | # CONFIG_UFS_FS is not set | ||
854 | |||
855 | # | ||
856 | # Network File Systems | ||
857 | # | ||
858 | CONFIG_NFS_FS=y | ||
859 | # CONFIG_NFS_V3 is not set | ||
860 | # CONFIG_NFS_V4 is not set | ||
861 | # CONFIG_NFS_DIRECTIO is not set | ||
862 | CONFIG_NFSD=y | ||
863 | # CONFIG_NFSD_V3 is not set | ||
864 | # CONFIG_NFSD_TCP is not set | ||
865 | CONFIG_ROOT_NFS=y | ||
866 | CONFIG_LOCKD=y | ||
867 | CONFIG_EXPORTFS=y | ||
868 | CONFIG_NFS_COMMON=y | ||
869 | CONFIG_SUNRPC=y | ||
870 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
871 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
872 | # CONFIG_SMB_FS is not set | ||
873 | # CONFIG_CIFS is not set | ||
874 | # CONFIG_NCP_FS is not set | ||
875 | # CONFIG_CODA_FS is not set | ||
876 | # CONFIG_AFS_FS is not set | ||
877 | # CONFIG_9P_FS is not set | ||
878 | |||
879 | # | ||
880 | # Partition Types | ||
881 | # | ||
882 | # CONFIG_PARTITION_ADVANCED is not set | ||
883 | CONFIG_MSDOS_PARTITION=y | ||
884 | |||
885 | # | ||
886 | # Native Language Support | ||
887 | # | ||
888 | # CONFIG_NLS is not set | ||
889 | |||
890 | # | ||
891 | # Distributed Lock Manager | ||
892 | # | ||
893 | CONFIG_DLM=y | ||
894 | CONFIG_DLM_TCP=y | ||
895 | # CONFIG_DLM_SCTP is not set | ||
896 | # CONFIG_DLM_DEBUG is not set | ||
897 | |||
898 | # | ||
899 | # Profiling support | ||
900 | # | ||
901 | # CONFIG_PROFILING is not set | ||
902 | |||
903 | # | ||
904 | # Kernel hacking | ||
905 | # | ||
906 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
907 | # CONFIG_PRINTK_TIME is not set | ||
908 | CONFIG_ENABLE_MUST_CHECK=y | ||
909 | # CONFIG_MAGIC_SYSRQ is not set | ||
910 | # CONFIG_UNUSED_SYMBOLS is not set | ||
911 | # CONFIG_DEBUG_FS is not set | ||
912 | # CONFIG_HEADERS_CHECK is not set | ||
913 | # CONFIG_DEBUG_KERNEL is not set | ||
914 | CONFIG_LOG_BUF_SHIFT=14 | ||
915 | CONFIG_CROSSCOMPILE=y | ||
916 | CONFIG_CMDLINE="" | ||
917 | |||
918 | # | ||
919 | # Security options | ||
920 | # | ||
921 | CONFIG_KEYS=y | ||
922 | CONFIG_KEYS_DEBUG_PROC_KEYS=y | ||
923 | # CONFIG_SECURITY is not set | ||
924 | |||
925 | # | ||
926 | # Cryptographic options | ||
927 | # | ||
928 | CONFIG_CRYPTO=y | ||
929 | CONFIG_CRYPTO_ALGAPI=y | ||
930 | CONFIG_CRYPTO_BLKCIPHER=y | ||
931 | CONFIG_CRYPTO_HASH=y | ||
932 | CONFIG_CRYPTO_MANAGER=y | ||
933 | CONFIG_CRYPTO_HMAC=y | ||
934 | CONFIG_CRYPTO_XCBC=y | ||
935 | CONFIG_CRYPTO_NULL=y | ||
936 | CONFIG_CRYPTO_MD4=y | ||
937 | CONFIG_CRYPTO_MD5=y | ||
938 | CONFIG_CRYPTO_SHA1=y | ||
939 | CONFIG_CRYPTO_SHA256=y | ||
940 | CONFIG_CRYPTO_SHA512=y | ||
941 | CONFIG_CRYPTO_WP512=y | ||
942 | CONFIG_CRYPTO_TGR192=y | ||
943 | CONFIG_CRYPTO_GF128MUL=y | ||
944 | CONFIG_CRYPTO_ECB=y | ||
945 | CONFIG_CRYPTO_CBC=y | ||
946 | CONFIG_CRYPTO_PCBC=y | ||
947 | CONFIG_CRYPTO_LRW=y | ||
948 | CONFIG_CRYPTO_DES=y | ||
949 | CONFIG_CRYPTO_FCRYPT=y | ||
950 | CONFIG_CRYPTO_BLOWFISH=y | ||
951 | CONFIG_CRYPTO_TWOFISH=y | ||
952 | CONFIG_CRYPTO_TWOFISH_COMMON=y | ||
953 | CONFIG_CRYPTO_SERPENT=y | ||
954 | CONFIG_CRYPTO_AES=y | ||
955 | CONFIG_CRYPTO_CAST5=y | ||
956 | CONFIG_CRYPTO_CAST6=y | ||
957 | CONFIG_CRYPTO_TEA=y | ||
958 | CONFIG_CRYPTO_ARC4=y | ||
959 | CONFIG_CRYPTO_KHAZAD=y | ||
960 | CONFIG_CRYPTO_ANUBIS=y | ||
961 | CONFIG_CRYPTO_DEFLATE=y | ||
962 | CONFIG_CRYPTO_MICHAEL_MIC=y | ||
963 | CONFIG_CRYPTO_CRC32C=y | ||
964 | CONFIG_CRYPTO_CAMELLIA=y | ||
965 | |||
966 | # | ||
967 | # Hardware crypto devices | ||
968 | # | ||
969 | |||
970 | # | ||
971 | # Library routines | ||
972 | # | ||
973 | CONFIG_BITREVERSE=y | ||
974 | # CONFIG_CRC_CCITT is not set | ||
975 | CONFIG_CRC16=y | ||
976 | CONFIG_CRC32=y | ||
977 | CONFIG_LIBCRC32C=y | ||
978 | CONFIG_ZLIB_INFLATE=y | ||
979 | CONFIG_ZLIB_DEFLATE=y | ||
980 | CONFIG_PLIST=y | ||
981 | CONFIG_HAS_IOMEM=y | ||
982 | CONFIG_HAS_IOPORT=y | ||
diff --git a/arch/mips/configs/ocelot_defconfig b/arch/mips/configs/ocelot_defconfig index 15a027e00eec..e1db1fb80cd0 100644 --- a/arch/mips/configs/ocelot_defconfig +++ b/arch/mips/configs/ocelot_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_ZONE_DMA=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | CONFIG_MOMENCO_OCELOT=y | 35 | CONFIG_MOMENCO_OCELOT=y |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/pb1100_defconfig b/arch/mips/configs/pb1100_defconfig index 37d696c64541..0028aef0af9d 100644 --- a/arch/mips/configs/pb1100_defconfig +++ b/arch/mips/configs/pb1100_defconfig | |||
@@ -26,9 +26,7 @@ CONFIG_MIPS_PB1100=y | |||
26 | # CONFIG_BASLER_EXCITE is not set | 26 | # CONFIG_BASLER_EXCITE is not set |
27 | # CONFIG_MIPS_COBALT is not set | 27 | # CONFIG_MIPS_COBALT is not set |
28 | # CONFIG_MACH_DECSTATION is not set | 28 | # CONFIG_MACH_DECSTATION is not set |
29 | # CONFIG_MIPS_EV64120 is not set | ||
30 | # CONFIG_MACH_JAZZ is not set | 29 | # CONFIG_MACH_JAZZ is not set |
31 | # CONFIG_LASAT is not set | ||
32 | # CONFIG_MIPS_ATLAS is not set | 30 | # CONFIG_MIPS_ATLAS is not set |
33 | # CONFIG_MIPS_MALTA is not set | 31 | # CONFIG_MIPS_MALTA is not set |
34 | # CONFIG_MIPS_SEAD is not set | 32 | # CONFIG_MIPS_SEAD is not set |
@@ -36,8 +34,6 @@ CONFIG_MIPS_PB1100=y | |||
36 | # CONFIG_MIPS_SIM is not set | 34 | # CONFIG_MIPS_SIM is not set |
37 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 35 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
38 | # CONFIG_MOMENCO_OCELOT is not set | 36 | # CONFIG_MOMENCO_OCELOT is not set |
39 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
41 | # CONFIG_MOMENCO_OCELOT_G is not set | 37 | # CONFIG_MOMENCO_OCELOT_G is not set |
42 | # CONFIG_MIPS_XXS1500 is not set | 38 | # CONFIG_MIPS_XXS1500 is not set |
43 | # CONFIG_PNX8550_JBS is not set | 39 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/pb1500_defconfig b/arch/mips/configs/pb1500_defconfig index b11f0e8b6059..8a1d5888739c 100644 --- a/arch/mips/configs/pb1500_defconfig +++ b/arch/mips/configs/pb1500_defconfig | |||
@@ -26,9 +26,7 @@ CONFIG_MIPS_PB1500=y | |||
26 | # CONFIG_BASLER_EXCITE is not set | 26 | # CONFIG_BASLER_EXCITE is not set |
27 | # CONFIG_MIPS_COBALT is not set | 27 | # CONFIG_MIPS_COBALT is not set |
28 | # CONFIG_MACH_DECSTATION is not set | 28 | # CONFIG_MACH_DECSTATION is not set |
29 | # CONFIG_MIPS_EV64120 is not set | ||
30 | # CONFIG_MACH_JAZZ is not set | 29 | # CONFIG_MACH_JAZZ is not set |
31 | # CONFIG_LASAT is not set | ||
32 | # CONFIG_MIPS_ATLAS is not set | 30 | # CONFIG_MIPS_ATLAS is not set |
33 | # CONFIG_MIPS_MALTA is not set | 31 | # CONFIG_MIPS_MALTA is not set |
34 | # CONFIG_MIPS_SEAD is not set | 32 | # CONFIG_MIPS_SEAD is not set |
@@ -36,8 +34,6 @@ CONFIG_MIPS_PB1500=y | |||
36 | # CONFIG_MIPS_SIM is not set | 34 | # CONFIG_MIPS_SIM is not set |
37 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 35 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
38 | # CONFIG_MOMENCO_OCELOT is not set | 36 | # CONFIG_MOMENCO_OCELOT is not set |
39 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
41 | # CONFIG_MOMENCO_OCELOT_G is not set | 37 | # CONFIG_MOMENCO_OCELOT_G is not set |
42 | # CONFIG_MIPS_XXS1500 is not set | 38 | # CONFIG_MIPS_XXS1500 is not set |
43 | # CONFIG_PNX8550_JBS is not set | 39 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/pb1550_defconfig b/arch/mips/configs/pb1550_defconfig index 2927f38f4907..5581ad2ca411 100644 --- a/arch/mips/configs/pb1550_defconfig +++ b/arch/mips/configs/pb1550_defconfig | |||
@@ -26,9 +26,7 @@ CONFIG_MIPS_PB1550=y | |||
26 | # CONFIG_BASLER_EXCITE is not set | 26 | # CONFIG_BASLER_EXCITE is not set |
27 | # CONFIG_MIPS_COBALT is not set | 27 | # CONFIG_MIPS_COBALT is not set |
28 | # CONFIG_MACH_DECSTATION is not set | 28 | # CONFIG_MACH_DECSTATION is not set |
29 | # CONFIG_MIPS_EV64120 is not set | ||
30 | # CONFIG_MACH_JAZZ is not set | 29 | # CONFIG_MACH_JAZZ is not set |
31 | # CONFIG_LASAT is not set | ||
32 | # CONFIG_MIPS_ATLAS is not set | 30 | # CONFIG_MIPS_ATLAS is not set |
33 | # CONFIG_MIPS_MALTA is not set | 31 | # CONFIG_MIPS_MALTA is not set |
34 | # CONFIG_MIPS_SEAD is not set | 32 | # CONFIG_MIPS_SEAD is not set |
@@ -36,8 +34,6 @@ CONFIG_MIPS_PB1550=y | |||
36 | # CONFIG_MIPS_SIM is not set | 34 | # CONFIG_MIPS_SIM is not set |
37 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 35 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
38 | # CONFIG_MOMENCO_OCELOT is not set | 36 | # CONFIG_MOMENCO_OCELOT is not set |
39 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
41 | # CONFIG_MOMENCO_OCELOT_G is not set | 37 | # CONFIG_MOMENCO_OCELOT_G is not set |
42 | # CONFIG_MIPS_XXS1500 is not set | 38 | # CONFIG_MIPS_XXS1500 is not set |
43 | # CONFIG_PNX8550_JBS is not set | 39 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/pnx8550-jbs_defconfig b/arch/mips/configs/pnx8550-jbs_defconfig index fae16c5ec521..821c1cee5639 100644 --- a/arch/mips/configs/pnx8550-jbs_defconfig +++ b/arch/mips/configs/pnx8550-jbs_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_ZONE_DMA=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | CONFIG_PNX8550_JBS=y | 38 | CONFIG_PNX8550_JBS=y |
diff --git a/arch/mips/configs/pnx8550-stb810_defconfig b/arch/mips/configs/pnx8550-stb810_defconfig index cd821e52181d..0e8bd92b38cf 100644 --- a/arch/mips/configs/pnx8550-stb810_defconfig +++ b/arch/mips/configs/pnx8550-stb810_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_ZONE_DMA=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/qemu_defconfig b/arch/mips/configs/qemu_defconfig index 8e8d03157954..6cca105832ca 100644 --- a/arch/mips/configs/qemu_defconfig +++ b/arch/mips/configs/qemu_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_ZONE_DMA=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/rbhma4200_defconfig b/arch/mips/configs/rbhma4200_defconfig index 35d64260917e..20a38526d483 100644 --- a/arch/mips/configs/rbhma4200_defconfig +++ b/arch/mips/configs/rbhma4200_defconfig | |||
@@ -24,17 +24,13 @@ CONFIG_MIPS=y | |||
24 | # CONFIG_BASLER_EXCITE is not set | 24 | # CONFIG_BASLER_EXCITE is not set |
25 | # CONFIG_MIPS_COBALT is not set | 25 | # CONFIG_MIPS_COBALT is not set |
26 | # CONFIG_MACH_DECSTATION is not set | 26 | # CONFIG_MACH_DECSTATION is not set |
27 | # CONFIG_MIPS_EV64120 is not set | ||
28 | # CONFIG_MACH_JAZZ is not set | 27 | # CONFIG_MACH_JAZZ is not set |
29 | # CONFIG_LASAT is not set | ||
30 | # CONFIG_MIPS_ATLAS is not set | 28 | # CONFIG_MIPS_ATLAS is not set |
31 | # CONFIG_MIPS_MALTA is not set | 29 | # CONFIG_MIPS_MALTA is not set |
32 | # CONFIG_MIPS_SEAD is not set | 30 | # CONFIG_MIPS_SEAD is not set |
33 | # CONFIG_WR_PPMC is not set | 31 | # CONFIG_WR_PPMC is not set |
34 | # CONFIG_MIPS_SIM is not set | 32 | # CONFIG_MIPS_SIM is not set |
35 | # CONFIG_MOMENCO_OCELOT is not set | 33 | # CONFIG_MOMENCO_OCELOT is not set |
36 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
37 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
38 | # CONFIG_MIPS_XXS1500 is not set | 34 | # CONFIG_MIPS_XXS1500 is not set |
39 | # CONFIG_PNX8550_JBS is not set | 35 | # CONFIG_PNX8550_JBS is not set |
40 | # CONFIG_PNX8550_STB810 is not set | 36 | # CONFIG_PNX8550_STB810 is not set |
diff --git a/arch/mips/configs/rbhma4500_defconfig b/arch/mips/configs/rbhma4500_defconfig index 41011f770a67..5dbb250f71c7 100644 --- a/arch/mips/configs/rbhma4500_defconfig +++ b/arch/mips/configs/rbhma4500_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 | 3 | # Linux kernel version: 2.6.22-rc5 |
4 | # Tue Feb 20 21:47:39 2007 | 4 | # Fri Jun 22 21:39:45 2007 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -9,40 +9,23 @@ CONFIG_MIPS=y | |||
9 | # Machine selection | 9 | # Machine selection |
10 | # | 10 | # |
11 | CONFIG_ZONE_DMA=y | 11 | CONFIG_ZONE_DMA=y |
12 | # CONFIG_MIPS_MTX1 is not set | 12 | # CONFIG_LEMOTE_FULONG is not set |
13 | # CONFIG_MIPS_BOSPORUS is not set | 13 | # CONFIG_MACH_ALCHEMY is not set |
14 | # CONFIG_MIPS_PB1000 is not set | ||
15 | # CONFIG_MIPS_PB1100 is not set | ||
16 | # CONFIG_MIPS_PB1500 is not set | ||
17 | # CONFIG_MIPS_PB1550 is not set | ||
18 | # CONFIG_MIPS_PB1200 is not set | ||
19 | # CONFIG_MIPS_DB1000 is not set | ||
20 | # CONFIG_MIPS_DB1100 is not set | ||
21 | # CONFIG_MIPS_DB1500 is not set | ||
22 | # CONFIG_MIPS_DB1550 is not set | ||
23 | # CONFIG_MIPS_DB1200 is not set | ||
24 | # CONFIG_MIPS_MIRAGE is not set | ||
25 | # CONFIG_BASLER_EXCITE is not set | 14 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 15 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 16 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 17 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 18 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 19 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 20 | # CONFIG_MIPS_SEAD is not set |
34 | # CONFIG_WR_PPMC is not set | 21 | # CONFIG_WR_PPMC is not set |
35 | # CONFIG_MIPS_SIM is not set | 22 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | ||
37 | # CONFIG_MOMENCO_OCELOT is not set | 23 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | ||
41 | # CONFIG_MIPS_XXS1500 is not set | ||
42 | # CONFIG_PNX8550_JBS is not set | 24 | # CONFIG_PNX8550_JBS is not set |
43 | # CONFIG_PNX8550_STB810 is not set | 25 | # CONFIG_PNX8550_STB810 is not set |
44 | # CONFIG_DDB5477 is not set | 26 | # CONFIG_DDB5477 is not set |
45 | # CONFIG_MACH_VR41XX is not set | 27 | # CONFIG_MACH_VR41XX is not set |
28 | # CONFIG_PMC_MSP is not set | ||
46 | # CONFIG_PMC_YOSEMITE is not set | 29 | # CONFIG_PMC_YOSEMITE is not set |
47 | # CONFIG_QEMU is not set | 30 | # CONFIG_QEMU is not set |
48 | # CONFIG_MARKEINS is not set | 31 | # CONFIG_MARKEINS is not set |
@@ -82,6 +65,8 @@ CONFIG_DMA_NONCOHERENT=y | |||
82 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 65 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
83 | CONFIG_GENERIC_ISA_DMA=y | 66 | CONFIG_GENERIC_ISA_DMA=y |
84 | CONFIG_I8259=y | 67 | CONFIG_I8259=y |
68 | # CONFIG_NO_IOPORT is not set | ||
69 | CONFIG_GENERIC_GPIO=y | ||
85 | # CONFIG_CPU_BIG_ENDIAN is not set | 70 | # CONFIG_CPU_BIG_ENDIAN is not set |
86 | CONFIG_CPU_LITTLE_ENDIAN=y | 71 | CONFIG_CPU_LITTLE_ENDIAN=y |
87 | CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y | 72 | CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y |
@@ -93,6 +78,7 @@ CONFIG_HAVE_STD_PC_SERIAL_PORT=y | |||
93 | # | 78 | # |
94 | # CPU selection | 79 | # CPU selection |
95 | # | 80 | # |
81 | # CONFIG_CPU_LOONGSON2 is not set | ||
96 | # CONFIG_CPU_MIPS32_R1 is not set | 82 | # CONFIG_CPU_MIPS32_R1 is not set |
97 | # CONFIG_CPU_MIPS32_R2 is not set | 83 | # CONFIG_CPU_MIPS32_R2 is not set |
98 | # CONFIG_CPU_MIPS64_R1 is not set | 84 | # CONFIG_CPU_MIPS64_R1 is not set |
@@ -149,12 +135,12 @@ CONFIG_ZONE_DMA_FLAG=1 | |||
149 | # CONFIG_HZ_48 is not set | 135 | # CONFIG_HZ_48 is not set |
150 | # CONFIG_HZ_100 is not set | 136 | # CONFIG_HZ_100 is not set |
151 | # CONFIG_HZ_128 is not set | 137 | # CONFIG_HZ_128 is not set |
152 | # CONFIG_HZ_250 is not set | 138 | CONFIG_HZ_250=y |
153 | # CONFIG_HZ_256 is not set | 139 | # CONFIG_HZ_256 is not set |
154 | CONFIG_HZ_1000=y | 140 | # CONFIG_HZ_1000 is not set |
155 | # CONFIG_HZ_1024 is not set | 141 | # CONFIG_HZ_1024 is not set |
156 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y | 142 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y |
157 | CONFIG_HZ=1000 | 143 | CONFIG_HZ=250 |
158 | CONFIG_PREEMPT_NONE=y | 144 | CONFIG_PREEMPT_NONE=y |
159 | # CONFIG_PREEMPT_VOLUNTARY is not set | 145 | # CONFIG_PREEMPT_VOLUNTARY is not set |
160 | # CONFIG_PREEMPT is not set | 146 | # CONFIG_PREEMPT is not set |
@@ -186,28 +172,35 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
186 | # CONFIG_AUDIT is not set | 172 | # CONFIG_AUDIT is not set |
187 | CONFIG_IKCONFIG=y | 173 | CONFIG_IKCONFIG=y |
188 | CONFIG_IKCONFIG_PROC=y | 174 | CONFIG_IKCONFIG_PROC=y |
175 | CONFIG_LOG_BUF_SHIFT=14 | ||
189 | CONFIG_SYSFS_DEPRECATED=y | 176 | CONFIG_SYSFS_DEPRECATED=y |
190 | CONFIG_RELAY=y | 177 | # CONFIG_RELAY is not set |
178 | CONFIG_BLK_DEV_INITRD=y | ||
191 | CONFIG_INITRAMFS_SOURCE="" | 179 | CONFIG_INITRAMFS_SOURCE="" |
192 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 180 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
193 | CONFIG_SYSCTL=y | 181 | CONFIG_SYSCTL=y |
194 | CONFIG_EMBEDDED=y | 182 | CONFIG_EMBEDDED=y |
195 | CONFIG_SYSCTL_SYSCALL=y | 183 | CONFIG_SYSCTL_SYSCALL=y |
196 | CONFIG_KALLSYMS=y | 184 | CONFIG_KALLSYMS=y |
197 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 185 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
198 | CONFIG_HOTPLUG=y | 186 | # CONFIG_HOTPLUG is not set |
199 | CONFIG_PRINTK=y | 187 | CONFIG_PRINTK=y |
200 | CONFIG_BUG=y | 188 | CONFIG_BUG=y |
201 | CONFIG_ELF_CORE=y | 189 | CONFIG_ELF_CORE=y |
202 | CONFIG_BASE_FULL=y | 190 | CONFIG_BASE_FULL=y |
203 | # CONFIG_FUTEX is not set | 191 | # CONFIG_FUTEX is not set |
192 | CONFIG_ANON_INODES=y | ||
204 | # CONFIG_EPOLL is not set | 193 | # CONFIG_EPOLL is not set |
194 | CONFIG_SIGNALFD=y | ||
195 | CONFIG_TIMERFD=y | ||
196 | CONFIG_EVENTFD=y | ||
205 | CONFIG_SHMEM=y | 197 | CONFIG_SHMEM=y |
206 | CONFIG_SLAB=y | ||
207 | CONFIG_VM_EVENT_COUNTERS=y | 198 | CONFIG_VM_EVENT_COUNTERS=y |
199 | CONFIG_SLAB=y | ||
200 | # CONFIG_SLUB is not set | ||
201 | # CONFIG_SLOB is not set | ||
208 | # CONFIG_TINY_SHMEM is not set | 202 | # CONFIG_TINY_SHMEM is not set |
209 | CONFIG_BASE_SMALL=0 | 203 | CONFIG_BASE_SMALL=0 |
210 | # CONFIG_SLOB is not set | ||
211 | 204 | ||
212 | # | 205 | # |
213 | # Loadable module support | 206 | # Loadable module support |
@@ -244,17 +237,12 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
244 | # | 237 | # |
245 | CONFIG_HW_HAS_PCI=y | 238 | CONFIG_HW_HAS_PCI=y |
246 | CONFIG_PCI=y | 239 | CONFIG_PCI=y |
240 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
247 | CONFIG_MMU=y | 241 | CONFIG_MMU=y |
248 | 242 | ||
249 | # | 243 | # |
250 | # PCCARD (PCMCIA/CardBus) support | 244 | # PCCARD (PCMCIA/CardBus) support |
251 | # | 245 | # |
252 | # CONFIG_PCCARD is not set | ||
253 | |||
254 | # | ||
255 | # PCI Hotplug Support | ||
256 | # | ||
257 | # CONFIG_HOTPLUG_PCI is not set | ||
258 | 246 | ||
259 | # | 247 | # |
260 | # Executable file formats | 248 | # Executable file formats |
@@ -266,10 +254,7 @@ CONFIG_TRAD_SIGNALS=y | |||
266 | # | 254 | # |
267 | # Power management options | 255 | # Power management options |
268 | # | 256 | # |
269 | CONFIG_PM=y | 257 | # CONFIG_PM is not set |
270 | # CONFIG_PM_LEGACY is not set | ||
271 | # CONFIG_PM_DEBUG is not set | ||
272 | # CONFIG_PM_SYSFS_DEPRECATED is not set | ||
273 | 258 | ||
274 | # | 259 | # |
275 | # Networking | 260 | # Networking |
@@ -279,14 +264,9 @@ CONFIG_NET=y | |||
279 | # | 264 | # |
280 | # Networking options | 265 | # Networking options |
281 | # | 266 | # |
282 | # CONFIG_NETDEBUG is not set | ||
283 | CONFIG_PACKET=y | 267 | CONFIG_PACKET=y |
284 | # CONFIG_PACKET_MMAP is not set | 268 | # CONFIG_PACKET_MMAP is not set |
285 | CONFIG_UNIX=y | 269 | CONFIG_UNIX=y |
286 | CONFIG_XFRM=y | ||
287 | # CONFIG_XFRM_USER is not set | ||
288 | # CONFIG_XFRM_SUB_POLICY is not set | ||
289 | CONFIG_XFRM_MIGRATE=y | ||
290 | # CONFIG_NET_KEY is not set | 270 | # CONFIG_NET_KEY is not set |
291 | CONFIG_INET=y | 271 | CONFIG_INET=y |
292 | CONFIG_IP_MULTICAST=y | 272 | CONFIG_IP_MULTICAST=y |
@@ -294,7 +274,7 @@ CONFIG_IP_MULTICAST=y | |||
294 | CONFIG_IP_FIB_HASH=y | 274 | CONFIG_IP_FIB_HASH=y |
295 | CONFIG_IP_PNP=y | 275 | CONFIG_IP_PNP=y |
296 | # CONFIG_IP_PNP_DHCP is not set | 276 | # CONFIG_IP_PNP_DHCP is not set |
297 | CONFIG_IP_PNP_BOOTP=y | 277 | # CONFIG_IP_PNP_BOOTP is not set |
298 | # CONFIG_IP_PNP_RARP is not set | 278 | # CONFIG_IP_PNP_RARP is not set |
299 | # CONFIG_NET_IPIP is not set | 279 | # CONFIG_NET_IPIP is not set |
300 | # CONFIG_NET_IPGRE is not set | 280 | # CONFIG_NET_IPGRE is not set |
@@ -305,130 +285,23 @@ CONFIG_IP_PNP_BOOTP=y | |||
305 | # CONFIG_INET_ESP is not set | 285 | # CONFIG_INET_ESP is not set |
306 | # CONFIG_INET_IPCOMP is not set | 286 | # CONFIG_INET_IPCOMP is not set |
307 | # CONFIG_INET_XFRM_TUNNEL is not set | 287 | # CONFIG_INET_XFRM_TUNNEL is not set |
308 | CONFIG_INET_TUNNEL=m | 288 | # CONFIG_INET_TUNNEL is not set |
309 | CONFIG_INET_XFRM_MODE_TRANSPORT=m | 289 | # CONFIG_INET_XFRM_MODE_TRANSPORT is not set |
310 | CONFIG_INET_XFRM_MODE_TUNNEL=m | 290 | # CONFIG_INET_XFRM_MODE_TUNNEL is not set |
311 | CONFIG_INET_XFRM_MODE_BEET=m | 291 | # CONFIG_INET_XFRM_MODE_BEET is not set |
312 | CONFIG_INET_DIAG=y | 292 | CONFIG_INET_DIAG=y |
313 | CONFIG_INET_TCP_DIAG=y | 293 | CONFIG_INET_TCP_DIAG=y |
314 | # CONFIG_TCP_CONG_ADVANCED is not set | 294 | # CONFIG_TCP_CONG_ADVANCED is not set |
315 | CONFIG_TCP_CONG_CUBIC=y | 295 | CONFIG_TCP_CONG_CUBIC=y |
316 | CONFIG_DEFAULT_TCP_CONG="cubic" | 296 | CONFIG_DEFAULT_TCP_CONG="cubic" |
317 | CONFIG_TCP_MD5SIG=y | 297 | # CONFIG_TCP_MD5SIG is not set |
318 | 298 | # CONFIG_IPV6 is not set | |
319 | # | ||
320 | # IP: Virtual Server Configuration | ||
321 | # | ||
322 | # CONFIG_IP_VS is not set | ||
323 | CONFIG_IPV6=m | ||
324 | # CONFIG_IPV6_PRIVACY is not set | ||
325 | CONFIG_IPV6_ROUTER_PREF=y | ||
326 | CONFIG_IPV6_ROUTE_INFO=y | ||
327 | # CONFIG_INET6_AH is not set | ||
328 | # CONFIG_INET6_ESP is not set | ||
329 | # CONFIG_INET6_IPCOMP is not set | ||
330 | CONFIG_IPV6_MIP6=y | ||
331 | # CONFIG_INET6_XFRM_TUNNEL is not set | 299 | # CONFIG_INET6_XFRM_TUNNEL is not set |
332 | # CONFIG_INET6_TUNNEL is not set | 300 | # CONFIG_INET6_TUNNEL is not set |
333 | CONFIG_INET6_XFRM_MODE_TRANSPORT=m | 301 | # CONFIG_NETWORK_SECMARK is not set |
334 | CONFIG_INET6_XFRM_MODE_TUNNEL=m | 302 | # CONFIG_NETFILTER is not set |
335 | CONFIG_INET6_XFRM_MODE_BEET=m | ||
336 | CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m | ||
337 | CONFIG_IPV6_SIT=m | ||
338 | # CONFIG_IPV6_TUNNEL is not set | ||
339 | CONFIG_IPV6_MULTIPLE_TABLES=y | ||
340 | CONFIG_IPV6_SUBTREES=y | ||
341 | CONFIG_NETWORK_SECMARK=y | ||
342 | CONFIG_NETFILTER=y | ||
343 | # CONFIG_NETFILTER_DEBUG is not set | ||
344 | |||
345 | # | ||
346 | # Core Netfilter Configuration | ||
347 | # | ||
348 | CONFIG_NETFILTER_NETLINK=m | ||
349 | CONFIG_NETFILTER_NETLINK_QUEUE=m | ||
350 | CONFIG_NETFILTER_NETLINK_LOG=m | ||
351 | CONFIG_NF_CONNTRACK_ENABLED=m | ||
352 | CONFIG_NF_CONNTRACK_SUPPORT=y | ||
353 | # CONFIG_IP_NF_CONNTRACK_SUPPORT is not set | ||
354 | CONFIG_NF_CONNTRACK=m | ||
355 | CONFIG_NF_CT_ACCT=y | ||
356 | CONFIG_NF_CONNTRACK_MARK=y | ||
357 | CONFIG_NF_CONNTRACK_SECMARK=y | ||
358 | CONFIG_NF_CONNTRACK_EVENTS=y | ||
359 | CONFIG_NF_CT_PROTO_GRE=m | ||
360 | CONFIG_NF_CT_PROTO_SCTP=m | ||
361 | CONFIG_NF_CONNTRACK_AMANDA=m | ||
362 | CONFIG_NF_CONNTRACK_FTP=m | ||
363 | CONFIG_NF_CONNTRACK_H323=m | ||
364 | CONFIG_NF_CONNTRACK_IRC=m | ||
365 | # CONFIG_NF_CONNTRACK_NETBIOS_NS is not set | ||
366 | CONFIG_NF_CONNTRACK_PPTP=m | ||
367 | CONFIG_NF_CONNTRACK_SANE=m | ||
368 | CONFIG_NF_CONNTRACK_SIP=m | ||
369 | CONFIG_NF_CONNTRACK_TFTP=m | ||
370 | CONFIG_NF_CT_NETLINK=m | ||
371 | CONFIG_NETFILTER_XTABLES=m | ||
372 | CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m | ||
373 | CONFIG_NETFILTER_XT_TARGET_MARK=m | ||
374 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | ||
375 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m | ||
376 | CONFIG_NETFILTER_XT_TARGET_SECMARK=m | ||
377 | CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m | ||
378 | CONFIG_NETFILTER_XT_TARGET_TCPMSS=m | ||
379 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | ||
380 | CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m | ||
381 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m | ||
382 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m | ||
383 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | ||
384 | CONFIG_NETFILTER_XT_MATCH_DSCP=m | ||
385 | CONFIG_NETFILTER_XT_MATCH_ESP=m | ||
386 | CONFIG_NETFILTER_XT_MATCH_HELPER=m | ||
387 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | ||
388 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | ||
389 | CONFIG_NETFILTER_XT_MATCH_MAC=m | ||
390 | CONFIG_NETFILTER_XT_MATCH_MARK=m | ||
391 | # CONFIG_NETFILTER_XT_MATCH_POLICY is not set | ||
392 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m | ||
393 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | ||
394 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m | ||
395 | CONFIG_NETFILTER_XT_MATCH_REALM=m | ||
396 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | ||
397 | CONFIG_NETFILTER_XT_MATCH_STATE=m | ||
398 | CONFIG_NETFILTER_XT_MATCH_STATISTIC=m | ||
399 | CONFIG_NETFILTER_XT_MATCH_STRING=m | ||
400 | CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | ||
401 | CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m | ||
402 | |||
403 | # | ||
404 | # IP: Netfilter Configuration | ||
405 | # | ||
406 | CONFIG_NF_CONNTRACK_IPV4=m | ||
407 | CONFIG_NF_CONNTRACK_PROC_COMPAT=y | ||
408 | # CONFIG_IP_NF_QUEUE is not set | ||
409 | # CONFIG_IP_NF_IPTABLES is not set | ||
410 | # CONFIG_IP_NF_ARPTABLES is not set | ||
411 | |||
412 | # | ||
413 | # IPv6: Netfilter Configuration (EXPERIMENTAL) | ||
414 | # | ||
415 | CONFIG_NF_CONNTRACK_IPV6=m | ||
416 | # CONFIG_IP6_NF_QUEUE is not set | ||
417 | # CONFIG_IP6_NF_IPTABLES is not set | ||
418 | |||
419 | # | ||
420 | # DCCP Configuration (EXPERIMENTAL) | ||
421 | # | ||
422 | # CONFIG_IP_DCCP is not set | 303 | # CONFIG_IP_DCCP is not set |
423 | |||
424 | # | ||
425 | # SCTP Configuration (EXPERIMENTAL) | ||
426 | # | ||
427 | # CONFIG_IP_SCTP is not set | 304 | # CONFIG_IP_SCTP is not set |
428 | |||
429 | # | ||
430 | # TIPC Configuration (EXPERIMENTAL) | ||
431 | # | ||
432 | # CONFIG_TIPC is not set | 305 | # CONFIG_TIPC is not set |
433 | # CONFIG_ATM is not set | 306 | # CONFIG_ATM is not set |
434 | # CONFIG_BRIDGE is not set | 307 | # CONFIG_BRIDGE is not set |
@@ -446,7 +319,6 @@ CONFIG_NF_CONNTRACK_IPV6=m | |||
446 | # QoS and/or fair queueing | 319 | # QoS and/or fair queueing |
447 | # | 320 | # |
448 | # CONFIG_NET_SCHED is not set | 321 | # CONFIG_NET_SCHED is not set |
449 | CONFIG_NET_CLS_ROUTE=y | ||
450 | 322 | ||
451 | # | 323 | # |
452 | # Network testing | 324 | # Network testing |
@@ -455,15 +327,16 @@ CONFIG_NET_CLS_ROUTE=y | |||
455 | # CONFIG_HAMRADIO is not set | 327 | # CONFIG_HAMRADIO is not set |
456 | # CONFIG_IRDA is not set | 328 | # CONFIG_IRDA is not set |
457 | # CONFIG_BT is not set | 329 | # CONFIG_BT is not set |
458 | CONFIG_IEEE80211=m | 330 | # CONFIG_AF_RXRPC is not set |
459 | # CONFIG_IEEE80211_DEBUG is not set | 331 | |
460 | CONFIG_IEEE80211_CRYPT_WEP=m | 332 | # |
461 | CONFIG_IEEE80211_CRYPT_CCMP=m | 333 | # Wireless |
462 | CONFIG_IEEE80211_CRYPT_TKIP=m | 334 | # |
463 | CONFIG_IEEE80211_SOFTMAC=m | 335 | # CONFIG_CFG80211 is not set |
464 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | 336 | # CONFIG_WIRELESS_EXT is not set |
465 | CONFIG_WIRELESS_EXT=y | 337 | # CONFIG_MAC80211 is not set |
466 | CONFIG_FIB_RULES=y | 338 | # CONFIG_IEEE80211 is not set |
339 | # CONFIG_RFKILL is not set | ||
467 | 340 | ||
468 | # | 341 | # |
469 | # Device Drivers | 342 | # Device Drivers |
@@ -474,94 +347,13 @@ CONFIG_FIB_RULES=y | |||
474 | # | 347 | # |
475 | CONFIG_STANDALONE=y | 348 | CONFIG_STANDALONE=y |
476 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 349 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
477 | CONFIG_FW_LOADER=m | ||
478 | # CONFIG_SYS_HYPERVISOR is not set | 350 | # CONFIG_SYS_HYPERVISOR is not set |
479 | 351 | ||
480 | # | 352 | # |
481 | # Connector - unified userspace <-> kernelspace linker | 353 | # Connector - unified userspace <-> kernelspace linker |
482 | # | 354 | # |
483 | CONFIG_CONNECTOR=m | 355 | # CONFIG_CONNECTOR is not set |
484 | 356 | # CONFIG_MTD is not set | |
485 | # | ||
486 | # Memory Technology Devices (MTD) | ||
487 | # | ||
488 | CONFIG_MTD=y | ||
489 | # CONFIG_MTD_DEBUG is not set | ||
490 | # CONFIG_MTD_CONCAT is not set | ||
491 | CONFIG_MTD_PARTITIONS=y | ||
492 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
493 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
494 | |||
495 | # | ||
496 | # User Modules And Translation Layers | ||
497 | # | ||
498 | CONFIG_MTD_CHAR=y | ||
499 | CONFIG_MTD_BLKDEVS=y | ||
500 | CONFIG_MTD_BLOCK=y | ||
501 | # CONFIG_FTL is not set | ||
502 | # CONFIG_NFTL is not set | ||
503 | # CONFIG_INFTL is not set | ||
504 | # CONFIG_RFD_FTL is not set | ||
505 | # CONFIG_SSFDC is not set | ||
506 | |||
507 | # | ||
508 | # RAM/ROM/Flash chip drivers | ||
509 | # | ||
510 | CONFIG_MTD_CFI=y | ||
511 | # CONFIG_MTD_JEDECPROBE is not set | ||
512 | CONFIG_MTD_GEN_PROBE=y | ||
513 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
514 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
515 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
516 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
517 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
518 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
519 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
520 | CONFIG_MTD_CFI_I1=y | ||
521 | CONFIG_MTD_CFI_I2=y | ||
522 | # CONFIG_MTD_CFI_I4 is not set | ||
523 | # CONFIG_MTD_CFI_I8 is not set | ||
524 | CONFIG_MTD_CFI_INTELEXT=y | ||
525 | CONFIG_MTD_CFI_AMDSTD=y | ||
526 | # CONFIG_MTD_CFI_STAA is not set | ||
527 | CONFIG_MTD_CFI_UTIL=y | ||
528 | # CONFIG_MTD_RAM is not set | ||
529 | # CONFIG_MTD_ROM is not set | ||
530 | # CONFIG_MTD_ABSENT is not set | ||
531 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
532 | |||
533 | # | ||
534 | # Mapping drivers for chip access | ||
535 | # | ||
536 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
537 | # CONFIG_MTD_PHYSMAP is not set | ||
538 | # CONFIG_MTD_PLATRAM is not set | ||
539 | |||
540 | # | ||
541 | # Self-contained MTD device drivers | ||
542 | # | ||
543 | # CONFIG_MTD_PMC551 is not set | ||
544 | # CONFIG_MTD_SLRAM is not set | ||
545 | # CONFIG_MTD_PHRAM is not set | ||
546 | # CONFIG_MTD_MTDRAM is not set | ||
547 | # CONFIG_MTD_BLOCK2MTD is not set | ||
548 | |||
549 | # | ||
550 | # Disk-On-Chip Device Drivers | ||
551 | # | ||
552 | # CONFIG_MTD_DOC2000 is not set | ||
553 | # CONFIG_MTD_DOC2001 is not set | ||
554 | # CONFIG_MTD_DOC2001PLUS is not set | ||
555 | |||
556 | # | ||
557 | # NAND Flash Device Drivers | ||
558 | # | ||
559 | # CONFIG_MTD_NAND is not set | ||
560 | |||
561 | # | ||
562 | # OneNAND Flash Device Drivers | ||
563 | # | ||
564 | # CONFIG_MTD_ONENAND is not set | ||
565 | 357 | ||
566 | # | 358 | # |
567 | # Parallel port support | 359 | # Parallel port support |
@@ -583,93 +375,30 @@ CONFIG_MTD_CFI_UTIL=y | |||
583 | # CONFIG_BLK_DEV_COW_COMMON is not set | 375 | # CONFIG_BLK_DEV_COW_COMMON is not set |
584 | CONFIG_BLK_DEV_LOOP=y | 376 | CONFIG_BLK_DEV_LOOP=y |
585 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 377 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
586 | CONFIG_BLK_DEV_NBD=m | 378 | # CONFIG_BLK_DEV_NBD is not set |
587 | # CONFIG_BLK_DEV_SX8 is not set | 379 | # CONFIG_BLK_DEV_SX8 is not set |
588 | # CONFIG_BLK_DEV_UB is not set | ||
589 | CONFIG_BLK_DEV_RAM=y | 380 | CONFIG_BLK_DEV_RAM=y |
590 | CONFIG_BLK_DEV_RAM_COUNT=16 | 381 | CONFIG_BLK_DEV_RAM_COUNT=16 |
591 | CONFIG_BLK_DEV_RAM_SIZE=8192 | 382 | CONFIG_BLK_DEV_RAM_SIZE=8192 |
592 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 383 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 |
593 | CONFIG_BLK_DEV_INITRD=y | ||
594 | # CONFIG_CDROM_PKTCDVD is not set | 384 | # CONFIG_CDROM_PKTCDVD is not set |
595 | # CONFIG_ATA_OVER_ETH is not set | 385 | # CONFIG_ATA_OVER_ETH is not set |
596 | 386 | ||
597 | # | 387 | # |
598 | # Misc devices | 388 | # Misc devices |
599 | # | 389 | # |
600 | CONFIG_SGI_IOC4=m | 390 | # CONFIG_PHANTOM is not set |
391 | # CONFIG_SGI_IOC4 is not set | ||
601 | # CONFIG_TIFM_CORE is not set | 392 | # CONFIG_TIFM_CORE is not set |
602 | 393 | # CONFIG_BLINK is not set | |
603 | # | 394 | # CONFIG_IDE is not set |
604 | # ATA/ATAPI/MFM/RLL support | ||
605 | # | ||
606 | CONFIG_IDE=y | ||
607 | CONFIG_IDE_MAX_HWIFS=4 | ||
608 | CONFIG_BLK_DEV_IDE=y | ||
609 | |||
610 | # | ||
611 | # Please see Documentation/ide.txt for help/info on IDE drives | ||
612 | # | ||
613 | # CONFIG_BLK_DEV_IDE_SATA is not set | ||
614 | CONFIG_BLK_DEV_IDEDISK=y | ||
615 | # CONFIG_IDEDISK_MULTI_MODE is not set | ||
616 | CONFIG_BLK_DEV_IDECD=y | ||
617 | # CONFIG_BLK_DEV_IDETAPE is not set | ||
618 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | ||
619 | # CONFIG_IDE_TASK_IOCTL is not set | ||
620 | |||
621 | # | ||
622 | # IDE chipset support/bugfixes | ||
623 | # | ||
624 | CONFIG_IDE_GENERIC=y | ||
625 | CONFIG_BLK_DEV_IDEPCI=y | ||
626 | CONFIG_IDEPCI_SHARE_IRQ=y | ||
627 | # CONFIG_BLK_DEV_OFFBOARD is not set | ||
628 | # CONFIG_BLK_DEV_GENERIC is not set | ||
629 | # CONFIG_BLK_DEV_OPTI621 is not set | ||
630 | CONFIG_BLK_DEV_IDEDMA_PCI=y | ||
631 | # CONFIG_BLK_DEV_IDEDMA_FORCED is not set | ||
632 | # CONFIG_IDEDMA_PCI_AUTO is not set | ||
633 | # CONFIG_BLK_DEV_AEC62XX is not set | ||
634 | # CONFIG_BLK_DEV_ALI15X3 is not set | ||
635 | # CONFIG_BLK_DEV_AMD74XX is not set | ||
636 | # CONFIG_BLK_DEV_CMD64X is not set | ||
637 | # CONFIG_BLK_DEV_TRIFLEX is not set | ||
638 | # CONFIG_BLK_DEV_CY82C693 is not set | ||
639 | # CONFIG_BLK_DEV_CS5520 is not set | ||
640 | # CONFIG_BLK_DEV_CS5530 is not set | ||
641 | # CONFIG_BLK_DEV_HPT34X is not set | ||
642 | # CONFIG_BLK_DEV_HPT366 is not set | ||
643 | # CONFIG_BLK_DEV_JMICRON is not set | ||
644 | # CONFIG_BLK_DEV_SC1200 is not set | ||
645 | # CONFIG_BLK_DEV_PIIX is not set | ||
646 | CONFIG_BLK_DEV_IT8213=m | ||
647 | # CONFIG_BLK_DEV_IT821X is not set | ||
648 | # CONFIG_BLK_DEV_NS87415 is not set | ||
649 | # CONFIG_BLK_DEV_PDC202XX_OLD is not set | ||
650 | # CONFIG_BLK_DEV_PDC202XX_NEW is not set | ||
651 | # CONFIG_BLK_DEV_SVWKS is not set | ||
652 | # CONFIG_BLK_DEV_SIIMAGE is not set | ||
653 | # CONFIG_BLK_DEV_SLC90E66 is not set | ||
654 | # CONFIG_BLK_DEV_TRM290 is not set | ||
655 | # CONFIG_BLK_DEV_VIA82CXXX is not set | ||
656 | CONFIG_BLK_DEV_TC86C001=m | ||
657 | # CONFIG_IDE_ARM is not set | ||
658 | CONFIG_BLK_DEV_IDEDMA=y | ||
659 | # CONFIG_IDEDMA_IVB is not set | ||
660 | # CONFIG_IDEDMA_AUTO is not set | ||
661 | # CONFIG_BLK_DEV_HD is not set | ||
662 | 395 | ||
663 | # | 396 | # |
664 | # SCSI device support | 397 | # SCSI device support |
665 | # | 398 | # |
666 | CONFIG_RAID_ATTRS=m | 399 | # CONFIG_RAID_ATTRS is not set |
667 | # CONFIG_SCSI is not set | 400 | # CONFIG_SCSI is not set |
668 | # CONFIG_SCSI_NETLINK is not set | 401 | # CONFIG_SCSI_NETLINK is not set |
669 | |||
670 | # | ||
671 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
672 | # | ||
673 | # CONFIG_ATA is not set | 402 | # CONFIG_ATA is not set |
674 | 403 | ||
675 | # | 404 | # |
@@ -685,6 +414,7 @@ CONFIG_RAID_ATTRS=m | |||
685 | # | 414 | # |
686 | # IEEE 1394 (FireWire) support | 415 | # IEEE 1394 (FireWire) support |
687 | # | 416 | # |
417 | # CONFIG_FIREWIRE is not set | ||
688 | # CONFIG_IEEE1394 is not set | 418 | # CONFIG_IEEE1394 is not set |
689 | 419 | ||
690 | # | 420 | # |
@@ -699,36 +429,15 @@ CONFIG_NETDEVICES=y | |||
699 | # CONFIG_DUMMY is not set | 429 | # CONFIG_DUMMY is not set |
700 | # CONFIG_BONDING is not set | 430 | # CONFIG_BONDING is not set |
701 | # CONFIG_EQUALIZER is not set | 431 | # CONFIG_EQUALIZER is not set |
702 | CONFIG_TUN=m | 432 | # CONFIG_TUN is not set |
703 | |||
704 | # | ||
705 | # ARCnet devices | ||
706 | # | ||
707 | # CONFIG_ARCNET is not set | 433 | # CONFIG_ARCNET is not set |
708 | 434 | # CONFIG_PHYLIB is not set | |
709 | # | ||
710 | # PHY device support | ||
711 | # | ||
712 | CONFIG_PHYLIB=m | ||
713 | |||
714 | # | ||
715 | # MII PHY device drivers | ||
716 | # | ||
717 | CONFIG_MARVELL_PHY=m | ||
718 | CONFIG_DAVICOM_PHY=m | ||
719 | CONFIG_QSEMI_PHY=m | ||
720 | CONFIG_LXT_PHY=m | ||
721 | CONFIG_CICADA_PHY=m | ||
722 | CONFIG_VITESSE_PHY=m | ||
723 | CONFIG_SMSC_PHY=m | ||
724 | # CONFIG_BROADCOM_PHY is not set | ||
725 | # CONFIG_FIXED_PHY is not set | ||
726 | 435 | ||
727 | # | 436 | # |
728 | # Ethernet (10 or 100Mbit) | 437 | # Ethernet (10 or 100Mbit) |
729 | # | 438 | # |
730 | CONFIG_NET_ETHERNET=y | 439 | CONFIG_NET_ETHERNET=y |
731 | # CONFIG_MII is not set | 440 | CONFIG_MII=y |
732 | # CONFIG_HAPPYMEAL is not set | 441 | # CONFIG_HAPPYMEAL is not set |
733 | # CONFIG_SUNGEM is not set | 442 | # CONFIG_SUNGEM is not set |
734 | # CONFIG_CASSINI is not set | 443 | # CONFIG_CASSINI is not set |
@@ -747,6 +456,7 @@ CONFIG_NET_PCI=y | |||
747 | # CONFIG_ADAPTEC_STARFIRE is not set | 456 | # CONFIG_ADAPTEC_STARFIRE is not set |
748 | # CONFIG_B44 is not set | 457 | # CONFIG_B44 is not set |
749 | # CONFIG_FORCEDETH is not set | 458 | # CONFIG_FORCEDETH is not set |
459 | CONFIG_TC35815=y | ||
750 | # CONFIG_DGRS is not set | 460 | # CONFIG_DGRS is not set |
751 | # CONFIG_EEPRO100 is not set | 461 | # CONFIG_EEPRO100 is not set |
752 | # CONFIG_E100 is not set | 462 | # CONFIG_E100 is not set |
@@ -761,91 +471,20 @@ CONFIG_NET_PCI=y | |||
761 | # CONFIG_TLAN is not set | 471 | # CONFIG_TLAN is not set |
762 | # CONFIG_VIA_RHINE is not set | 472 | # CONFIG_VIA_RHINE is not set |
763 | # CONFIG_SC92031 is not set | 473 | # CONFIG_SC92031 is not set |
764 | 474 | # CONFIG_NETDEV_1000 is not set | |
765 | # | 475 | # CONFIG_NETDEV_10000 is not set |
766 | # Ethernet (1000 Mbit) | ||
767 | # | ||
768 | # CONFIG_ACENIC is not set | ||
769 | # CONFIG_DL2K is not set | ||
770 | # CONFIG_E1000 is not set | ||
771 | # CONFIG_NS83820 is not set | ||
772 | # CONFIG_HAMACHI is not set | ||
773 | # CONFIG_YELLOWFIN is not set | ||
774 | # CONFIG_R8169 is not set | ||
775 | # CONFIG_SIS190 is not set | ||
776 | # CONFIG_SKGE is not set | ||
777 | # CONFIG_SKY2 is not set | ||
778 | # CONFIG_SK98LIN is not set | ||
779 | # CONFIG_VIA_VELOCITY is not set | ||
780 | # CONFIG_TIGON3 is not set | ||
781 | # CONFIG_BNX2 is not set | ||
782 | CONFIG_QLA3XXX=m | ||
783 | # CONFIG_ATL1 is not set | ||
784 | |||
785 | # | ||
786 | # Ethernet (10000 Mbit) | ||
787 | # | ||
788 | # CONFIG_CHELSIO_T1 is not set | ||
789 | CONFIG_CHELSIO_T3=m | ||
790 | # CONFIG_IXGB is not set | ||
791 | # CONFIG_S2IO is not set | ||
792 | # CONFIG_MYRI10GE is not set | ||
793 | CONFIG_NETXEN_NIC=m | ||
794 | |||
795 | # | ||
796 | # Token Ring devices | ||
797 | # | ||
798 | # CONFIG_TR is not set | 476 | # CONFIG_TR is not set |
799 | 477 | ||
800 | # | 478 | # |
801 | # Wireless LAN (non-hamradio) | 479 | # Wireless LAN |
802 | # | ||
803 | CONFIG_NET_RADIO=y | ||
804 | # CONFIG_NET_WIRELESS_RTNETLINK is not set | ||
805 | |||
806 | # | ||
807 | # Obsolete Wireless cards support (pre-802.11) | ||
808 | # | ||
809 | # CONFIG_STRIP is not set | ||
810 | |||
811 | # | ||
812 | # Wireless 802.11b ISA/PCI cards support | ||
813 | # | ||
814 | # CONFIG_IPW2100 is not set | ||
815 | CONFIG_IPW2200=m | ||
816 | # CONFIG_IPW2200_MONITOR is not set | ||
817 | # CONFIG_IPW2200_QOS is not set | ||
818 | # CONFIG_IPW2200_DEBUG is not set | ||
819 | # CONFIG_HERMES is not set | ||
820 | # CONFIG_ATMEL is not set | ||
821 | |||
822 | # | ||
823 | # Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support | ||
824 | # | ||
825 | # CONFIG_PRISM54 is not set | ||
826 | # CONFIG_USB_ZD1201 is not set | ||
827 | # CONFIG_HOSTAP is not set | ||
828 | # CONFIG_BCM43XX is not set | ||
829 | # CONFIG_ZD1211RW is not set | ||
830 | CONFIG_NET_WIRELESS=y | ||
831 | |||
832 | # | ||
833 | # Wan interfaces | ||
834 | # | 480 | # |
481 | # CONFIG_WLAN_PRE80211 is not set | ||
482 | # CONFIG_WLAN_80211 is not set | ||
835 | # CONFIG_WAN is not set | 483 | # CONFIG_WAN is not set |
836 | # CONFIG_FDDI is not set | 484 | # CONFIG_FDDI is not set |
837 | # CONFIG_HIPPI is not set | 485 | # CONFIG_HIPPI is not set |
838 | CONFIG_PPP=m | 486 | # CONFIG_PPP is not set |
839 | CONFIG_PPP_MULTILINK=y | ||
840 | # CONFIG_PPP_FILTER is not set | ||
841 | CONFIG_PPP_ASYNC=m | ||
842 | CONFIG_PPP_SYNC_TTY=m | ||
843 | CONFIG_PPP_DEFLATE=m | ||
844 | # CONFIG_PPP_BSDCOMP is not set | ||
845 | CONFIG_PPP_MPPE=m | ||
846 | CONFIG_PPPOE=m | ||
847 | # CONFIG_SLIP is not set | 487 | # CONFIG_SLIP is not set |
848 | CONFIG_SLHC=m | ||
849 | # CONFIG_SHAPER is not set | 488 | # CONFIG_SHAPER is not set |
850 | # CONFIG_NETCONSOLE is not set | 489 | # CONFIG_NETCONSOLE is not set |
851 | # CONFIG_NETPOLL is not set | 490 | # CONFIG_NETPOLL is not set |
@@ -864,57 +503,18 @@ CONFIG_SLHC=m | |||
864 | # | 503 | # |
865 | # Input device support | 504 | # Input device support |
866 | # | 505 | # |
867 | CONFIG_INPUT=y | 506 | # CONFIG_INPUT is not set |
868 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
869 | |||
870 | # | ||
871 | # Userland interfaces | ||
872 | # | ||
873 | CONFIG_INPUT_MOUSEDEV=y | ||
874 | CONFIG_INPUT_MOUSEDEV_PSAUX=y | ||
875 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
876 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
877 | # CONFIG_INPUT_JOYDEV is not set | ||
878 | # CONFIG_INPUT_TSDEV is not set | ||
879 | CONFIG_INPUT_EVDEV=y | ||
880 | # CONFIG_INPUT_EVBUG is not set | ||
881 | |||
882 | # | ||
883 | # Input Device Drivers | ||
884 | # | ||
885 | CONFIG_INPUT_KEYBOARD=y | ||
886 | CONFIG_KEYBOARD_ATKBD=y | ||
887 | # CONFIG_KEYBOARD_SUNKBD is not set | ||
888 | # CONFIG_KEYBOARD_LKKBD is not set | ||
889 | # CONFIG_KEYBOARD_XTKBD is not set | ||
890 | # CONFIG_KEYBOARD_NEWTON is not set | ||
891 | # CONFIG_KEYBOARD_STOWAWAY is not set | ||
892 | CONFIG_INPUT_MOUSE=y | ||
893 | CONFIG_MOUSE_PS2=y | ||
894 | # CONFIG_MOUSE_SERIAL is not set | ||
895 | # CONFIG_MOUSE_VSXXXAA is not set | ||
896 | # CONFIG_INPUT_JOYSTICK is not set | ||
897 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
898 | # CONFIG_INPUT_MISC is not set | ||
899 | 507 | ||
900 | # | 508 | # |
901 | # Hardware I/O ports | 509 | # Hardware I/O ports |
902 | # | 510 | # |
903 | CONFIG_SERIO=y | 511 | # CONFIG_SERIO is not set |
904 | CONFIG_SERIO_I8042=y | ||
905 | CONFIG_SERIO_SERPORT=y | ||
906 | # CONFIG_SERIO_PCIPS2 is not set | ||
907 | CONFIG_SERIO_LIBPS2=y | ||
908 | # CONFIG_SERIO_RAW is not set | ||
909 | # CONFIG_GAMEPORT is not set | 512 | # CONFIG_GAMEPORT is not set |
910 | 513 | ||
911 | # | 514 | # |
912 | # Character devices | 515 | # Character devices |
913 | # | 516 | # |
914 | CONFIG_VT=y | 517 | # CONFIG_VT is not set |
915 | CONFIG_VT_CONSOLE=y | ||
916 | CONFIG_HW_CONSOLE=y | ||
917 | CONFIG_VT_HW_CONSOLE_BINDING=y | ||
918 | # CONFIG_SERIAL_NONSTANDARD is not set | 518 | # CONFIG_SERIAL_NONSTANDARD is not set |
919 | 519 | ||
920 | # | 520 | # |
@@ -926,11 +526,12 @@ CONFIG_VT_HW_CONSOLE_BINDING=y | |||
926 | # Non-8250 serial port support | 526 | # Non-8250 serial port support |
927 | # | 527 | # |
928 | CONFIG_SERIAL_CORE=y | 528 | CONFIG_SERIAL_CORE=y |
529 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
929 | CONFIG_SERIAL_TXX9=y | 530 | CONFIG_SERIAL_TXX9=y |
930 | CONFIG_HAS_TXX9_SERIAL=y | 531 | CONFIG_HAS_TXX9_SERIAL=y |
931 | CONFIG_SERIAL_TXX9_NR_UARTS=6 | 532 | CONFIG_SERIAL_TXX9_NR_UARTS=6 |
932 | # CONFIG_SERIAL_TXX9_CONSOLE is not set | 533 | CONFIG_SERIAL_TXX9_CONSOLE=y |
933 | # CONFIG_SERIAL_TXX9_STDSERIAL is not set | 534 | CONFIG_SERIAL_TXX9_STDSERIAL=y |
934 | # CONFIG_SERIAL_JSM is not set | 535 | # CONFIG_SERIAL_JSM is not set |
935 | CONFIG_UNIX98_PTYS=y | 536 | CONFIG_UNIX98_PTYS=y |
936 | CONFIG_LEGACY_PTYS=y | 537 | CONFIG_LEGACY_PTYS=y |
@@ -940,15 +541,10 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
940 | # IPMI | 541 | # IPMI |
941 | # | 542 | # |
942 | # CONFIG_IPMI_HANDLER is not set | 543 | # CONFIG_IPMI_HANDLER is not set |
943 | |||
944 | # | ||
945 | # Watchdog Cards | ||
946 | # | ||
947 | # CONFIG_WATCHDOG is not set | 544 | # CONFIG_WATCHDOG is not set |
948 | # CONFIG_HW_RANDOM is not set | 545 | # CONFIG_HW_RANDOM is not set |
949 | # CONFIG_RTC is not set | 546 | # CONFIG_RTC is not set |
950 | # CONFIG_GEN_RTC is not set | 547 | # CONFIG_GEN_RTC is not set |
951 | # CONFIG_DTLK is not set | ||
952 | # CONFIG_R3964 is not set | 548 | # CONFIG_R3964 is not set |
953 | # CONFIG_APPLICOM is not set | 549 | # CONFIG_APPLICOM is not set |
954 | # CONFIG_DRM is not set | 550 | # CONFIG_DRM is not set |
@@ -958,108 +554,61 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
958 | # TPM devices | 554 | # TPM devices |
959 | # | 555 | # |
960 | # CONFIG_TCG_TPM is not set | 556 | # CONFIG_TCG_TPM is not set |
557 | CONFIG_DEVPORT=y | ||
558 | # CONFIG_I2C is not set | ||
559 | |||
560 | # | ||
561 | # SPI support | ||
562 | # | ||
563 | CONFIG_SPI=y | ||
564 | CONFIG_SPI_MASTER=y | ||
961 | 565 | ||
962 | # | 566 | # |
963 | # I2C support | 567 | # SPI Master Controller Drivers |
964 | # | 568 | # |
965 | # CONFIG_I2C is not set | 569 | # CONFIG_SPI_BITBANG is not set |
570 | CONFIG_SPI_TXX9=y | ||
966 | 571 | ||
967 | # | 572 | # |
968 | # SPI support | 573 | # SPI Protocol Masters |
969 | # | 574 | # |
970 | # CONFIG_SPI is not set | 575 | CONFIG_SPI_AT25=y |
971 | # CONFIG_SPI_MASTER is not set | 576 | # CONFIG_SPI_SPIDEV is not set |
972 | 577 | ||
973 | # | 578 | # |
974 | # Dallas's 1-wire bus | 579 | # Dallas's 1-wire bus |
975 | # | 580 | # |
976 | # CONFIG_W1 is not set | 581 | # CONFIG_W1 is not set |
582 | # CONFIG_HWMON is not set | ||
977 | 583 | ||
978 | # | 584 | # |
979 | # Hardware Monitoring support | 585 | # Multifunction device drivers |
980 | # | 586 | # |
981 | CONFIG_HWMON=y | 587 | # CONFIG_MFD_SM501 is not set |
982 | # CONFIG_HWMON_VID is not set | ||
983 | # CONFIG_SENSORS_ABITUGURU is not set | ||
984 | # CONFIG_SENSORS_F71805F is not set | ||
985 | # CONFIG_SENSORS_PC87427 is not set | ||
986 | # CONFIG_SENSORS_VT1211 is not set | ||
987 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
988 | 588 | ||
989 | # | 589 | # |
990 | # Multimedia devices | 590 | # Multimedia devices |
991 | # | 591 | # |
992 | # CONFIG_VIDEO_DEV is not set | 592 | # CONFIG_VIDEO_DEV is not set |
993 | 593 | # CONFIG_DVB_CORE is not set | |
994 | # | 594 | # CONFIG_DAB is not set |
995 | # Digital Video Broadcasting Devices | ||
996 | # | ||
997 | # CONFIG_DVB is not set | ||
998 | # CONFIG_USB_DABUSB is not set | ||
999 | 595 | ||
1000 | # | 596 | # |
1001 | # Graphics support | 597 | # Graphics support |
1002 | # | 598 | # |
1003 | # CONFIG_FIRMWARE_EDID is not set | ||
1004 | CONFIG_FB=y | ||
1005 | CONFIG_FB_CFB_FILLRECT=y | ||
1006 | CONFIG_FB_CFB_COPYAREA=y | ||
1007 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
1008 | # CONFIG_FB_SVGALIB is not set | ||
1009 | # CONFIG_FB_MACMODES is not set | ||
1010 | # CONFIG_FB_BACKLIGHT is not set | ||
1011 | # CONFIG_FB_MODE_HELPERS is not set | ||
1012 | # CONFIG_FB_TILEBLITTING is not set | ||
1013 | # CONFIG_FB_CIRRUS is not set | ||
1014 | # CONFIG_FB_PM2 is not set | ||
1015 | # CONFIG_FB_CYBER2000 is not set | ||
1016 | # CONFIG_FB_ASILIANT is not set | ||
1017 | # CONFIG_FB_IMSTT is not set | ||
1018 | # CONFIG_FB_S1D13XXX is not set | ||
1019 | # CONFIG_FB_NVIDIA is not set | ||
1020 | # CONFIG_FB_RIVA is not set | ||
1021 | # CONFIG_FB_MATROX is not set | ||
1022 | # CONFIG_FB_RADEON is not set | ||
1023 | # CONFIG_FB_ATY128 is not set | ||
1024 | CONFIG_FB_ATY=y | ||
1025 | CONFIG_FB_ATY_CT=y | ||
1026 | # CONFIG_FB_ATY_GENERIC_LCD is not set | ||
1027 | # CONFIG_FB_ATY_GX is not set | ||
1028 | # CONFIG_FB_S3 is not set | ||
1029 | # CONFIG_FB_SAVAGE is not set | ||
1030 | # CONFIG_FB_SIS is not set | ||
1031 | # CONFIG_FB_NEOMAGIC is not set | ||
1032 | # CONFIG_FB_KYRO is not set | ||
1033 | # CONFIG_FB_3DFX is not set | ||
1034 | # CONFIG_FB_VOODOO1 is not set | ||
1035 | # CONFIG_FB_SMIVGX is not set | ||
1036 | # CONFIG_FB_TRIDENT is not set | ||
1037 | # CONFIG_FB_VIRTUAL is not set | ||
1038 | |||
1039 | # | ||
1040 | # Console display driver support | ||
1041 | # | ||
1042 | CONFIG_VGA_CONSOLE=y | ||
1043 | # CONFIG_VGACON_SOFT_SCROLLBACK is not set | ||
1044 | CONFIG_DUMMY_CONSOLE=y | ||
1045 | # CONFIG_FRAMEBUFFER_CONSOLE is not set | ||
1046 | |||
1047 | # | ||
1048 | # Logo configuration | ||
1049 | # | ||
1050 | # CONFIG_LOGO is not set | ||
1051 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 599 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
1052 | 600 | ||
1053 | # | 601 | # |
1054 | # Sound | 602 | # Display device support |
1055 | # | 603 | # |
1056 | # CONFIG_SOUND is not set | 604 | # CONFIG_DISPLAY_SUPPORT is not set |
605 | # CONFIG_VGASTATE is not set | ||
606 | # CONFIG_FB is not set | ||
1057 | 607 | ||
1058 | # | 608 | # |
1059 | # HID Devices | 609 | # Sound |
1060 | # | 610 | # |
1061 | CONFIG_HID=y | 611 | # CONFIG_SOUND is not set |
1062 | # CONFIG_HID_DEBUG is not set | ||
1063 | 612 | ||
1064 | # | 613 | # |
1065 | # USB support | 614 | # USB support |
@@ -1067,148 +616,80 @@ CONFIG_HID=y | |||
1067 | CONFIG_USB_ARCH_HAS_HCD=y | 616 | CONFIG_USB_ARCH_HAS_HCD=y |
1068 | CONFIG_USB_ARCH_HAS_OHCI=y | 617 | CONFIG_USB_ARCH_HAS_OHCI=y |
1069 | CONFIG_USB_ARCH_HAS_EHCI=y | 618 | CONFIG_USB_ARCH_HAS_EHCI=y |
1070 | CONFIG_USB=y | 619 | # CONFIG_USB is not set |
1071 | # CONFIG_USB_DEBUG is not set | ||
1072 | |||
1073 | # | ||
1074 | # Miscellaneous USB options | ||
1075 | # | ||
1076 | # CONFIG_USB_DEVICEFS is not set | ||
1077 | # CONFIG_USB_DYNAMIC_MINORS is not set | ||
1078 | # CONFIG_USB_SUSPEND is not set | ||
1079 | # CONFIG_USB_OTG is not set | ||
1080 | |||
1081 | # | ||
1082 | # USB Host Controller Drivers | ||
1083 | # | ||
1084 | # CONFIG_USB_EHCI_HCD is not set | ||
1085 | # CONFIG_USB_ISP116X_HCD is not set | ||
1086 | # CONFIG_USB_OHCI_HCD is not set | ||
1087 | # CONFIG_USB_UHCI_HCD is not set | ||
1088 | # CONFIG_USB_SL811_HCD is not set | ||
1089 | |||
1090 | # | ||
1091 | # USB Device Class drivers | ||
1092 | # | ||
1093 | # CONFIG_USB_ACM is not set | ||
1094 | # CONFIG_USB_PRINTER is not set | ||
1095 | 620 | ||
1096 | # | 621 | # |
1097 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 622 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
1098 | # | 623 | # |
1099 | 624 | ||
1100 | # | 625 | # |
1101 | # may also be needed; see USB_STORAGE Help for more information | 626 | # USB Gadget Support |
1102 | # | ||
1103 | # CONFIG_USB_LIBUSUAL is not set | ||
1104 | |||
1105 | # | ||
1106 | # USB Input Devices | ||
1107 | # | ||
1108 | CONFIG_USB_HID=y | ||
1109 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
1110 | # CONFIG_HID_FF is not set | ||
1111 | CONFIG_USB_HIDDEV=y | ||
1112 | # CONFIG_USB_AIPTEK is not set | ||
1113 | # CONFIG_USB_WACOM is not set | ||
1114 | # CONFIG_USB_ACECAD is not set | ||
1115 | # CONFIG_USB_KBTAB is not set | ||
1116 | # CONFIG_USB_POWERMATE is not set | ||
1117 | # CONFIG_USB_TOUCHSCREEN is not set | ||
1118 | CONFIG_USB_YEALINK=m | ||
1119 | # CONFIG_USB_XPAD is not set | ||
1120 | # CONFIG_USB_ATI_REMOTE is not set | ||
1121 | # CONFIG_USB_ATI_REMOTE2 is not set | ||
1122 | # CONFIG_USB_KEYSPAN_REMOTE is not set | ||
1123 | # CONFIG_USB_APPLETOUCH is not set | ||
1124 | # CONFIG_USB_GTCO is not set | ||
1125 | |||
1126 | # | ||
1127 | # USB Imaging devices | ||
1128 | # | ||
1129 | # CONFIG_USB_MDC800 is not set | ||
1130 | |||
1131 | # | ||
1132 | # USB Network Adapters | ||
1133 | # | ||
1134 | # CONFIG_USB_CATC is not set | ||
1135 | # CONFIG_USB_KAWETH is not set | ||
1136 | # CONFIG_USB_PEGASUS is not set | ||
1137 | # CONFIG_USB_RTL8150 is not set | ||
1138 | # CONFIG_USB_USBNET_MII is not set | ||
1139 | # CONFIG_USB_USBNET is not set | ||
1140 | CONFIG_USB_MON=y | ||
1141 | |||
1142 | # | ||
1143 | # USB port drivers | ||
1144 | # | 627 | # |
628 | # CONFIG_USB_GADGET is not set | ||
629 | # CONFIG_MMC is not set | ||
1145 | 630 | ||
1146 | # | 631 | # |
1147 | # USB Serial Converter support | 632 | # LED devices |
1148 | # | 633 | # |
1149 | # CONFIG_USB_SERIAL is not set | 634 | # CONFIG_NEW_LEDS is not set |
1150 | 635 | ||
1151 | # | 636 | # |
1152 | # USB Miscellaneous drivers | 637 | # LED drivers |
1153 | # | 638 | # |
1154 | # CONFIG_USB_EMI62 is not set | ||
1155 | # CONFIG_USB_EMI26 is not set | ||
1156 | # CONFIG_USB_ADUTUX is not set | ||
1157 | # CONFIG_USB_AUERSWALD is not set | ||
1158 | # CONFIG_USB_RIO500 is not set | ||
1159 | # CONFIG_USB_LEGOTOWER is not set | ||
1160 | # CONFIG_USB_LCD is not set | ||
1161 | # CONFIG_USB_BERRY_CHARGE is not set | ||
1162 | # CONFIG_USB_LED is not set | ||
1163 | # CONFIG_USB_CYPRESS_CY7C63 is not set | ||
1164 | # CONFIG_USB_CYTHERM is not set | ||
1165 | # CONFIG_USB_PHIDGET is not set | ||
1166 | # CONFIG_USB_IDMOUSE is not set | ||
1167 | # CONFIG_USB_FTDI_ELAN is not set | ||
1168 | # CONFIG_USB_APPLEDISPLAY is not set | ||
1169 | # CONFIG_USB_LD is not set | ||
1170 | # CONFIG_USB_TRANCEVIBRATOR is not set | ||
1171 | 639 | ||
1172 | # | 640 | # |
1173 | # USB DSL modem support | 641 | # LED Triggers |
1174 | # | 642 | # |
1175 | 643 | ||
1176 | # | 644 | # |
1177 | # USB Gadget Support | 645 | # InfiniBand support |
1178 | # | 646 | # |
1179 | # CONFIG_USB_GADGET is not set | 647 | # CONFIG_INFINIBAND is not set |
1180 | 648 | ||
1181 | # | 649 | # |
1182 | # MMC/SD Card support | 650 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
1183 | # | 651 | # |
1184 | # CONFIG_MMC is not set | ||
1185 | 652 | ||
1186 | # | 653 | # |
1187 | # LED devices | 654 | # Real Time Clock |
1188 | # | 655 | # |
1189 | # CONFIG_NEW_LEDS is not set | 656 | CONFIG_RTC_LIB=y |
657 | CONFIG_RTC_CLASS=y | ||
658 | CONFIG_RTC_HCTOSYS=y | ||
659 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
660 | # CONFIG_RTC_DEBUG is not set | ||
1190 | 661 | ||
1191 | # | 662 | # |
1192 | # LED drivers | 663 | # RTC interfaces |
1193 | # | 664 | # |
665 | CONFIG_RTC_INTF_SYSFS=y | ||
666 | CONFIG_RTC_INTF_PROC=y | ||
667 | CONFIG_RTC_INTF_DEV=y | ||
668 | CONFIG_RTC_INTF_DEV_UIE_EMUL=y | ||
669 | # CONFIG_RTC_DRV_TEST is not set | ||
1194 | 670 | ||
1195 | # | 671 | # |
1196 | # LED Triggers | 672 | # I2C RTC drivers |
1197 | # | 673 | # |
1198 | 674 | ||
1199 | # | 675 | # |
1200 | # InfiniBand support | 676 | # SPI RTC drivers |
1201 | # | 677 | # |
1202 | # CONFIG_INFINIBAND is not set | 678 | CONFIG_RTC_DRV_RS5C348=y |
679 | # CONFIG_RTC_DRV_MAX6902 is not set | ||
1203 | 680 | ||
1204 | # | 681 | # |
1205 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | 682 | # Platform RTC drivers |
1206 | # | 683 | # |
684 | # CONFIG_RTC_DRV_CMOS is not set | ||
685 | # CONFIG_RTC_DRV_DS1553 is not set | ||
686 | # CONFIG_RTC_DRV_DS1742 is not set | ||
687 | # CONFIG_RTC_DRV_M48T86 is not set | ||
688 | # CONFIG_RTC_DRV_V3020 is not set | ||
1207 | 689 | ||
1208 | # | 690 | # |
1209 | # Real Time Clock | 691 | # on-CPU RTC drivers |
1210 | # | 692 | # |
1211 | # CONFIG_RTC_CLASS is not set | ||
1212 | 693 | ||
1213 | # | 694 | # |
1214 | # DMA Engine support | 695 | # DMA Engine support |
@@ -1224,38 +705,15 @@ CONFIG_USB_MON=y | |||
1224 | # | 705 | # |
1225 | 706 | ||
1226 | # | 707 | # |
1227 | # Auxiliary Display support | ||
1228 | # | ||
1229 | |||
1230 | # | ||
1231 | # Virtualization | ||
1232 | # | ||
1233 | |||
1234 | # | ||
1235 | # File systems | 708 | # File systems |
1236 | # | 709 | # |
1237 | CONFIG_EXT2_FS=y | 710 | # CONFIG_EXT2_FS is not set |
1238 | # CONFIG_EXT2_FS_XATTR is not set | 711 | # CONFIG_EXT3_FS is not set |
1239 | # CONFIG_EXT2_FS_XIP is not set | ||
1240 | CONFIG_EXT3_FS=m | ||
1241 | CONFIG_EXT3_FS_XATTR=y | ||
1242 | # CONFIG_EXT3_FS_POSIX_ACL is not set | ||
1243 | # CONFIG_EXT3_FS_SECURITY is not set | ||
1244 | # CONFIG_EXT4DEV_FS is not set | 712 | # CONFIG_EXT4DEV_FS is not set |
1245 | CONFIG_JBD=m | 713 | # CONFIG_REISERFS_FS is not set |
1246 | # CONFIG_JBD_DEBUG is not set | ||
1247 | CONFIG_FS_MBCACHE=y | ||
1248 | CONFIG_REISERFS_FS=m | ||
1249 | # CONFIG_REISERFS_CHECK is not set | ||
1250 | # CONFIG_REISERFS_PROC_INFO is not set | ||
1251 | # CONFIG_REISERFS_FS_XATTR is not set | ||
1252 | # CONFIG_JFS_FS is not set | 714 | # CONFIG_JFS_FS is not set |
1253 | CONFIG_FS_POSIX_ACL=y | 715 | CONFIG_FS_POSIX_ACL=y |
1254 | CONFIG_XFS_FS=m | 716 | # CONFIG_XFS_FS is not set |
1255 | # CONFIG_XFS_QUOTA is not set | ||
1256 | # CONFIG_XFS_SECURITY is not set | ||
1257 | # CONFIG_XFS_POSIX_ACL is not set | ||
1258 | # CONFIG_XFS_RT is not set | ||
1259 | # CONFIG_GFS2_FS is not set | 717 | # CONFIG_GFS2_FS is not set |
1260 | # CONFIG_OCFS2_FS is not set | 718 | # CONFIG_OCFS2_FS is not set |
1261 | # CONFIG_MINIX_FS is not set | 719 | # CONFIG_MINIX_FS is not set |
@@ -1265,26 +723,21 @@ CONFIG_INOTIFY_USER=y | |||
1265 | # CONFIG_QUOTA is not set | 723 | # CONFIG_QUOTA is not set |
1266 | # CONFIG_DNOTIFY is not set | 724 | # CONFIG_DNOTIFY is not set |
1267 | # CONFIG_AUTOFS_FS is not set | 725 | # CONFIG_AUTOFS_FS is not set |
1268 | CONFIG_AUTOFS4_FS=m | 726 | # CONFIG_AUTOFS4_FS is not set |
1269 | CONFIG_FUSE_FS=m | 727 | # CONFIG_FUSE_FS is not set |
1270 | CONFIG_GENERIC_ACL=y | 728 | CONFIG_GENERIC_ACL=y |
1271 | 729 | ||
1272 | # | 730 | # |
1273 | # CD-ROM/DVD Filesystems | 731 | # CD-ROM/DVD Filesystems |
1274 | # | 732 | # |
1275 | CONFIG_ISO9660_FS=y | 733 | # CONFIG_ISO9660_FS is not set |
1276 | # CONFIG_JOLIET is not set | ||
1277 | # CONFIG_ZISOFS is not set | ||
1278 | # CONFIG_UDF_FS is not set | 734 | # CONFIG_UDF_FS is not set |
1279 | 735 | ||
1280 | # | 736 | # |
1281 | # DOS/FAT/NT Filesystems | 737 | # DOS/FAT/NT Filesystems |
1282 | # | 738 | # |
1283 | CONFIG_FAT_FS=y | ||
1284 | # CONFIG_MSDOS_FS is not set | 739 | # CONFIG_MSDOS_FS is not set |
1285 | CONFIG_VFAT_FS=y | 740 | # CONFIG_VFAT_FS is not set |
1286 | CONFIG_FAT_DEFAULT_CODEPAGE=437 | ||
1287 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
1288 | # CONFIG_NTFS_FS is not set | 741 | # CONFIG_NTFS_FS is not set |
1289 | 742 | ||
1290 | # | 743 | # |
@@ -1298,7 +751,7 @@ CONFIG_TMPFS=y | |||
1298 | CONFIG_TMPFS_POSIX_ACL=y | 751 | CONFIG_TMPFS_POSIX_ACL=y |
1299 | # CONFIG_HUGETLB_PAGE is not set | 752 | # CONFIG_HUGETLB_PAGE is not set |
1300 | CONFIG_RAMFS=y | 753 | CONFIG_RAMFS=y |
1301 | CONFIG_CONFIGFS_FS=m | 754 | # CONFIG_CONFIGFS_FS is not set |
1302 | 755 | ||
1303 | # | 756 | # |
1304 | # Miscellaneous filesystems | 757 | # Miscellaneous filesystems |
@@ -1310,16 +763,7 @@ CONFIG_CONFIGFS_FS=m | |||
1310 | # CONFIG_BEFS_FS is not set | 763 | # CONFIG_BEFS_FS is not set |
1311 | # CONFIG_BFS_FS is not set | 764 | # CONFIG_BFS_FS is not set |
1312 | # CONFIG_EFS_FS is not set | 765 | # CONFIG_EFS_FS is not set |
1313 | CONFIG_JFFS2_FS=y | 766 | # CONFIG_CRAMFS is not set |
1314 | CONFIG_JFFS2_FS_DEBUG=0 | ||
1315 | CONFIG_JFFS2_FS_WRITEBUFFER=y | ||
1316 | # CONFIG_JFFS2_SUMMARY is not set | ||
1317 | # CONFIG_JFFS2_FS_XATTR is not set | ||
1318 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | ||
1319 | CONFIG_JFFS2_ZLIB=y | ||
1320 | CONFIG_JFFS2_RTIME=y | ||
1321 | # CONFIG_JFFS2_RUBIN is not set | ||
1322 | CONFIG_CRAMFS=y | ||
1323 | # CONFIG_VXFS_FS is not set | 767 | # CONFIG_VXFS_FS is not set |
1324 | # CONFIG_HPFS_FS is not set | 768 | # CONFIG_HPFS_FS is not set |
1325 | # CONFIG_QNX4FS_FS is not set | 769 | # CONFIG_QNX4FS_FS is not set |
@@ -1334,19 +778,16 @@ CONFIG_NFS_V3=y | |||
1334 | # CONFIG_NFS_V3_ACL is not set | 778 | # CONFIG_NFS_V3_ACL is not set |
1335 | # CONFIG_NFS_V4 is not set | 779 | # CONFIG_NFS_V4 is not set |
1336 | # CONFIG_NFS_DIRECTIO is not set | 780 | # CONFIG_NFS_DIRECTIO is not set |
1337 | CONFIG_NFSD=m | 781 | # CONFIG_NFSD is not set |
1338 | # CONFIG_NFSD_V3 is not set | ||
1339 | # CONFIG_NFSD_TCP is not set | ||
1340 | CONFIG_ROOT_NFS=y | 782 | CONFIG_ROOT_NFS=y |
1341 | CONFIG_LOCKD=y | 783 | CONFIG_LOCKD=y |
1342 | CONFIG_LOCKD_V4=y | 784 | CONFIG_LOCKD_V4=y |
1343 | CONFIG_EXPORTFS=m | ||
1344 | CONFIG_NFS_COMMON=y | 785 | CONFIG_NFS_COMMON=y |
1345 | CONFIG_SUNRPC=y | 786 | CONFIG_SUNRPC=y |
787 | # CONFIG_SUNRPC_BIND34 is not set | ||
1346 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 788 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
1347 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 789 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1348 | CONFIG_SMB_FS=m | 790 | # CONFIG_SMB_FS is not set |
1349 | # CONFIG_SMB_NLS_DEFAULT is not set | ||
1350 | # CONFIG_CIFS is not set | 791 | # CONFIG_CIFS is not set |
1351 | # CONFIG_NCP_FS is not set | 792 | # CONFIG_NCP_FS is not set |
1352 | # CONFIG_CODA_FS is not set | 793 | # CONFIG_CODA_FS is not set |
@@ -1362,54 +803,12 @@ CONFIG_MSDOS_PARTITION=y | |||
1362 | # | 803 | # |
1363 | # Native Language Support | 804 | # Native Language Support |
1364 | # | 805 | # |
1365 | CONFIG_NLS=y | 806 | # CONFIG_NLS is not set |
1366 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
1367 | # CONFIG_NLS_CODEPAGE_437 is not set | ||
1368 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
1369 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
1370 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
1371 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
1372 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
1373 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
1374 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
1375 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
1376 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
1377 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
1378 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
1379 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
1380 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
1381 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
1382 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
1383 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
1384 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
1385 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
1386 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
1387 | # CONFIG_NLS_ISO8859_8 is not set | ||
1388 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
1389 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
1390 | # CONFIG_NLS_ASCII is not set | ||
1391 | # CONFIG_NLS_ISO8859_1 is not set | ||
1392 | # CONFIG_NLS_ISO8859_2 is not set | ||
1393 | # CONFIG_NLS_ISO8859_3 is not set | ||
1394 | # CONFIG_NLS_ISO8859_4 is not set | ||
1395 | # CONFIG_NLS_ISO8859_5 is not set | ||
1396 | # CONFIG_NLS_ISO8859_6 is not set | ||
1397 | # CONFIG_NLS_ISO8859_7 is not set | ||
1398 | # CONFIG_NLS_ISO8859_9 is not set | ||
1399 | # CONFIG_NLS_ISO8859_13 is not set | ||
1400 | # CONFIG_NLS_ISO8859_14 is not set | ||
1401 | # CONFIG_NLS_ISO8859_15 is not set | ||
1402 | # CONFIG_NLS_KOI8_R is not set | ||
1403 | # CONFIG_NLS_KOI8_U is not set | ||
1404 | # CONFIG_NLS_UTF8 is not set | ||
1405 | 807 | ||
1406 | # | 808 | # |
1407 | # Distributed Lock Manager | 809 | # Distributed Lock Manager |
1408 | # | 810 | # |
1409 | CONFIG_DLM=m | 811 | # CONFIG_DLM is not set |
1410 | CONFIG_DLM_TCP=y | ||
1411 | # CONFIG_DLM_SCTP is not set | ||
1412 | # CONFIG_DLM_DEBUG is not set | ||
1413 | 812 | ||
1414 | # | 813 | # |
1415 | # Profiling support | 814 | # Profiling support |
@@ -1427,7 +826,6 @@ CONFIG_ENABLE_MUST_CHECK=y | |||
1427 | # CONFIG_DEBUG_FS is not set | 826 | # CONFIG_DEBUG_FS is not set |
1428 | # CONFIG_HEADERS_CHECK is not set | 827 | # CONFIG_HEADERS_CHECK is not set |
1429 | # CONFIG_DEBUG_KERNEL is not set | 828 | # CONFIG_DEBUG_KERNEL is not set |
1430 | CONFIG_LOG_BUF_SHIFT=14 | ||
1431 | CONFIG_CROSSCOMPILE=y | 829 | CONFIG_CROSSCOMPILE=y |
1432 | CONFIG_CMDLINE="" | 830 | CONFIG_CMDLINE="" |
1433 | CONFIG_SYS_SUPPORTS_KGDB=y | 831 | CONFIG_SYS_SUPPORTS_KGDB=y |
@@ -1441,62 +839,17 @@ CONFIG_SYS_SUPPORTS_KGDB=y | |||
1441 | # | 839 | # |
1442 | # Cryptographic options | 840 | # Cryptographic options |
1443 | # | 841 | # |
1444 | CONFIG_CRYPTO=y | 842 | # CONFIG_CRYPTO is not set |
1445 | CONFIG_CRYPTO_ALGAPI=y | ||
1446 | CONFIG_CRYPTO_BLKCIPHER=m | ||
1447 | CONFIG_CRYPTO_HASH=y | ||
1448 | CONFIG_CRYPTO_MANAGER=y | ||
1449 | CONFIG_CRYPTO_HMAC=y | ||
1450 | CONFIG_CRYPTO_XCBC=m | ||
1451 | CONFIG_CRYPTO_NULL=m | ||
1452 | CONFIG_CRYPTO_MD4=m | ||
1453 | CONFIG_CRYPTO_MD5=y | ||
1454 | CONFIG_CRYPTO_SHA1=m | ||
1455 | CONFIG_CRYPTO_SHA256=m | ||
1456 | CONFIG_CRYPTO_SHA512=m | ||
1457 | CONFIG_CRYPTO_WP512=m | ||
1458 | CONFIG_CRYPTO_TGR192=m | ||
1459 | CONFIG_CRYPTO_GF128MUL=m | ||
1460 | CONFIG_CRYPTO_ECB=m | ||
1461 | CONFIG_CRYPTO_CBC=m | ||
1462 | CONFIG_CRYPTO_PCBC=m | ||
1463 | CONFIG_CRYPTO_LRW=m | ||
1464 | CONFIG_CRYPTO_DES=m | ||
1465 | CONFIG_CRYPTO_FCRYPT=m | ||
1466 | CONFIG_CRYPTO_BLOWFISH=m | ||
1467 | CONFIG_CRYPTO_TWOFISH=m | ||
1468 | CONFIG_CRYPTO_TWOFISH_COMMON=m | ||
1469 | CONFIG_CRYPTO_SERPENT=m | ||
1470 | CONFIG_CRYPTO_AES=m | ||
1471 | CONFIG_CRYPTO_CAST5=m | ||
1472 | CONFIG_CRYPTO_CAST6=m | ||
1473 | CONFIG_CRYPTO_TEA=m | ||
1474 | CONFIG_CRYPTO_ARC4=m | ||
1475 | CONFIG_CRYPTO_KHAZAD=m | ||
1476 | CONFIG_CRYPTO_ANUBIS=m | ||
1477 | CONFIG_CRYPTO_DEFLATE=m | ||
1478 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
1479 | CONFIG_CRYPTO_CRC32C=m | ||
1480 | CONFIG_CRYPTO_CAMELLIA=m | ||
1481 | # CONFIG_CRYPTO_TEST is not set | ||
1482 | |||
1483 | # | ||
1484 | # Hardware crypto devices | ||
1485 | # | ||
1486 | 843 | ||
1487 | # | 844 | # |
1488 | # Library routines | 845 | # Library routines |
1489 | # | 846 | # |
1490 | CONFIG_BITREVERSE=y | 847 | CONFIG_BITREVERSE=y |
1491 | CONFIG_CRC_CCITT=m | 848 | # CONFIG_CRC_CCITT is not set |
1492 | CONFIG_CRC16=m | 849 | # CONFIG_CRC16 is not set |
850 | # CONFIG_CRC_ITU_T is not set | ||
1493 | CONFIG_CRC32=y | 851 | CONFIG_CRC32=y |
1494 | CONFIG_LIBCRC32C=m | 852 | # CONFIG_LIBCRC32C is not set |
1495 | CONFIG_ZLIB_INFLATE=y | ||
1496 | CONFIG_ZLIB_DEFLATE=y | ||
1497 | CONFIG_TEXTSEARCH=y | ||
1498 | CONFIG_TEXTSEARCH_KMP=m | ||
1499 | CONFIG_TEXTSEARCH_BM=m | ||
1500 | CONFIG_TEXTSEARCH_FSM=m | ||
1501 | CONFIG_HAS_IOMEM=y | 853 | CONFIG_HAS_IOMEM=y |
1502 | CONFIG_HAS_IOPORT=y | 854 | CONFIG_HAS_IOPORT=y |
855 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/mips/configs/rm200_defconfig b/arch/mips/configs/rm200_defconfig index 5593cde9f74c..1a67a85aabbb 100644 --- a/arch/mips/configs/rm200_defconfig +++ b/arch/mips/configs/rm200_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_ZONE_DMA=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/sb1250-swarm_defconfig b/arch/mips/configs/sb1250-swarm_defconfig index 6c4f09a381e2..98a914092258 100644 --- a/arch/mips/configs/sb1250-swarm_defconfig +++ b/arch/mips/configs/sb1250-swarm_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_ZONE_DMA=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/sead_defconfig b/arch/mips/configs/sead_defconfig index 988b9cdef01f..69c08b24c82a 100644 --- a/arch/mips/configs/sead_defconfig +++ b/arch/mips/configs/sead_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | CONFIG_MIPS_SEAD=y | 31 | CONFIG_MIPS_SEAD=y |
@@ -35,8 +33,6 @@ CONFIG_MIPS_SEAD=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/tb0219_defconfig b/arch/mips/configs/tb0219_defconfig index 8b1675c07ec4..5d4fc0e4f729 100644 --- a/arch/mips/configs/tb0219_defconfig +++ b/arch/mips/configs/tb0219_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_ZONE_DMA=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/tb0226_defconfig b/arch/mips/configs/tb0226_defconfig index b5be8b74d896..1b92b48de051 100644 --- a/arch/mips/configs/tb0226_defconfig +++ b/arch/mips/configs/tb0226_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_ZONE_DMA=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/tb0287_defconfig b/arch/mips/configs/tb0287_defconfig index 8bb6be4342b6..5b77c7a5d83a 100644 --- a/arch/mips/configs/tb0287_defconfig +++ b/arch/mips/configs/tb0287_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_ZONE_DMA=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/workpad_defconfig b/arch/mips/configs/workpad_defconfig index 8f019ffcc71b..94a4f94a8b24 100644 --- a/arch/mips/configs/workpad_defconfig +++ b/arch/mips/configs/workpad_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_ZONE_DMA=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/wrppmc_defconfig b/arch/mips/configs/wrppmc_defconfig index 52b48c0715d3..e38bd9b0eadc 100644 --- a/arch/mips/configs/wrppmc_defconfig +++ b/arch/mips/configs/wrppmc_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_WR_PPMC=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/configs/yosemite_defconfig b/arch/mips/configs/yosemite_defconfig index 6824606309e5..f1cdb12f7925 100644 --- a/arch/mips/configs/yosemite_defconfig +++ b/arch/mips/configs/yosemite_defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_ZONE_DMA=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/ddb5xxx/ddb5477/Makefile b/arch/mips/ddb5xxx/ddb5477/Makefile index 23fd3b81fe1a..4864b8a659c7 100644 --- a/arch/mips/ddb5xxx/ddb5477/Makefile +++ b/arch/mips/ddb5xxx/ddb5477/Makefile | |||
@@ -2,7 +2,8 @@ | |||
2 | # Makefile for NEC DDB-Vrc5477 board | 2 | # Makefile for NEC DDB-Vrc5477 board |
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y += irq.o irq_5477.o setup.o lcd44780.o | 5 | obj-y += ddb5477-platform.o irq.o irq_5477.o setup.o \ |
6 | lcd44780.o | ||
6 | 7 | ||
7 | obj-$(CONFIG_RUNTIME_DEBUG) += debug.o | 8 | obj-$(CONFIG_RUNTIME_DEBUG) += debug.o |
8 | obj-$(CONFIG_KGDB) += kgdb_io.o | 9 | obj-$(CONFIG_KGDB) += kgdb_io.o |
diff --git a/arch/mips/ddb5xxx/ddb5477/ddb5477-platform.c b/arch/mips/ddb5xxx/ddb5477/ddb5477-platform.c new file mode 100644 index 000000000000..c16020ad54c2 --- /dev/null +++ b/arch/mips/ddb5xxx/ddb5477/ddb5477-platform.c | |||
@@ -0,0 +1,49 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 2007 Ralf Baechle (ralf@linux-mips.org) | ||
7 | */ | ||
8 | #include <linux/init.h> | ||
9 | #include <linux/module.h> | ||
10 | #include <linux/serial_8250.h> | ||
11 | |||
12 | #include <asm/ddb5xxx/ddb5477.h> | ||
13 | |||
14 | #define DDB_UART_FLAGS (UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_IOREMAP) | ||
15 | |||
16 | #define DDB5477_PORT(base, int) \ | ||
17 | { \ | ||
18 | .mapbase = base, \ | ||
19 | .irq = int, \ | ||
20 | .uartclk = 1843200, \ | ||
21 | .iotype = UPIO_MEM, \ | ||
22 | .flags = DDB_UART_FLAGS, \ | ||
23 | .regshift = 3, \ | ||
24 | } | ||
25 | |||
26 | static struct plat_serial8250_port uart8250_data[] = { | ||
27 | DDB5477_PORT(0xbfa04200, VRC5477_IRQ_UART0), | ||
28 | DDB5477_PORT(0xbfa04240, VRC5477_IRQ_UART1), | ||
29 | { }, | ||
30 | }; | ||
31 | |||
32 | static struct platform_device uart8250_device = { | ||
33 | .name = "serial8250", | ||
34 | .id = PLAT8250_DEV_PLATFORM, | ||
35 | .dev = { | ||
36 | .platform_data = uart8250_data, | ||
37 | }, | ||
38 | }; | ||
39 | |||
40 | static int __init uart8250_init(void) | ||
41 | { | ||
42 | return platform_device_register(&uart8250_device); | ||
43 | } | ||
44 | |||
45 | module_init(uart8250_init); | ||
46 | |||
47 | MODULE_AUTHOR("Ralf Baechle <ralf@linux-mips.org>"); | ||
48 | MODULE_LICENSE("GPL"); | ||
49 | MODULE_DESCRIPTION("8250 UART probe driver for the NEC DDB5477"); | ||
diff --git a/arch/mips/dec/prom/console.c b/arch/mips/dec/prom/console.c index 65419bf32441..078e1a12421d 100644 --- a/arch/mips/dec/prom/console.c +++ b/arch/mips/dec/prom/console.c | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * DECstation PROM-based early console support. | 4 | * DECstation PROM-based early console support. |
5 | * | 5 | * |
6 | * Copyright (C) 2004 Maciej W. Rozycki | 6 | * Copyright (C) 2004, 2007 Maciej W. Rozycki |
7 | * | 7 | * |
8 | * This program is free software; you can redistribute it and/or | 8 | * This program is free software; you can redistribute it and/or |
9 | * modify it under the terms of the GNU General Public License | 9 | * modify it under the terms of the GNU General Public License |
@@ -13,15 +13,35 @@ | |||
13 | #include <linux/console.h> | 13 | #include <linux/console.h> |
14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
15 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
16 | #include <linux/string.h> | ||
16 | 17 | ||
17 | #include <asm/dec/prom.h> | 18 | #include <asm/dec/prom.h> |
18 | 19 | ||
19 | void prom_putchar(char c) | 20 | static void __init prom_console_write(struct console *con, const char *s, |
21 | unsigned int c) | ||
20 | { | 22 | { |
21 | char s[2]; | 23 | char buf[81]; |
24 | unsigned int chunk = sizeof(buf) - 1; | ||
22 | 25 | ||
23 | s[0] = c; | 26 | while (c > 0) { |
24 | s[1] = '\0'; | 27 | if (chunk > c) |
28 | chunk = c; | ||
29 | memcpy(buf, s, chunk); | ||
30 | buf[chunk] = '\0'; | ||
31 | prom_printf("%s", buf); | ||
32 | s += chunk; | ||
33 | c -= chunk; | ||
34 | } | ||
35 | } | ||
36 | |||
37 | static struct console promcons __initdata = { | ||
38 | .name = "prom", | ||
39 | .write = prom_console_write, | ||
40 | .flags = CON_BOOT | CON_PRINTBUFFER, | ||
41 | .index = -1, | ||
42 | }; | ||
25 | 43 | ||
26 | prom_printf( s); | 44 | void __init register_prom_console(void) |
45 | { | ||
46 | register_console(&promcons); | ||
27 | } | 47 | } |
diff --git a/arch/mips/dec/prom/init.c b/arch/mips/dec/prom/init.c index a217aafe59f6..808c182fd3fa 100644 --- a/arch/mips/dec/prom/init.c +++ b/arch/mips/dec/prom/init.c | |||
@@ -86,7 +86,7 @@ void __init which_prom(s32 magic, s32 *prom_vec) | |||
86 | 86 | ||
87 | void __init prom_init(void) | 87 | void __init prom_init(void) |
88 | { | 88 | { |
89 | extern void ATTRIB_NORET dec_machine_halt(void); | 89 | extern void dec_machine_halt(void); |
90 | static char cpu_msg[] __initdata = | 90 | static char cpu_msg[] __initdata = |
91 | "Sorry, this kernel is compiled for a wrong CPU type!\n"; | 91 | "Sorry, this kernel is compiled for a wrong CPU type!\n"; |
92 | s32 argc = fw_arg0; | 92 | s32 argc = fw_arg0; |
@@ -103,6 +103,9 @@ void __init prom_init(void) | |||
103 | if (prom_is_rex(magic)) | 103 | if (prom_is_rex(magic)) |
104 | rex_clear_cache(); | 104 | rex_clear_cache(); |
105 | 105 | ||
106 | /* Register the early console. */ | ||
107 | register_prom_console(); | ||
108 | |||
106 | /* Were we compiled with the right CPU option? */ | 109 | /* Were we compiled with the right CPU option? */ |
107 | #if defined(CONFIG_CPU_R3000) | 110 | #if defined(CONFIG_CPU_R3000) |
108 | if ((current_cpu_data.cputype == CPU_R4000SC) || | 111 | if ((current_cpu_data.cputype == CPU_R4000SC) || |
diff --git a/arch/mips/dec/reset.c b/arch/mips/dec/reset.c index 56397227adb0..c15a879046e5 100644 --- a/arch/mips/dec/reset.c +++ b/arch/mips/dec/reset.c | |||
@@ -9,26 +9,26 @@ | |||
9 | 9 | ||
10 | #include <asm/addrspace.h> | 10 | #include <asm/addrspace.h> |
11 | 11 | ||
12 | typedef void ATTRIB_NORET (* noret_func_t)(void); | 12 | typedef void __noreturn (* noret_func_t)(void); |
13 | 13 | ||
14 | static inline void ATTRIB_NORET back_to_prom(void) | 14 | static inline void __noreturn back_to_prom(void) |
15 | { | 15 | { |
16 | noret_func_t func = (void *)CKSEG1ADDR(0x1fc00000); | 16 | noret_func_t func = (void *)CKSEG1ADDR(0x1fc00000); |
17 | 17 | ||
18 | func(); | 18 | func(); |
19 | } | 19 | } |
20 | 20 | ||
21 | void ATTRIB_NORET dec_machine_restart(char *command) | 21 | void __noreturn dec_machine_restart(char *command) |
22 | { | 22 | { |
23 | back_to_prom(); | 23 | back_to_prom(); |
24 | } | 24 | } |
25 | 25 | ||
26 | void ATTRIB_NORET dec_machine_halt(void) | 26 | void __noreturn dec_machine_halt(void) |
27 | { | 27 | { |
28 | back_to_prom(); | 28 | back_to_prom(); |
29 | } | 29 | } |
30 | 30 | ||
31 | void ATTRIB_NORET dec_machine_power_off(void) | 31 | void __noreturn dec_machine_power_off(void) |
32 | { | 32 | { |
33 | /* DECstations don't have a software power switch */ | 33 | /* DECstations don't have a software power switch */ |
34 | back_to_prom(); | 34 | back_to_prom(); |
diff --git a/arch/mips/defconfig b/arch/mips/defconfig index 41211f8b7738..b3b6e58058f6 100644 --- a/arch/mips/defconfig +++ b/arch/mips/defconfig | |||
@@ -25,9 +25,7 @@ CONFIG_ZONE_DMA=y | |||
25 | # CONFIG_BASLER_EXCITE is not set | 25 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 26 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 27 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MIPS_EV64120 is not set | ||
29 | # CONFIG_MACH_JAZZ is not set | 28 | # CONFIG_MACH_JAZZ is not set |
30 | # CONFIG_LASAT is not set | ||
31 | # CONFIG_MIPS_ATLAS is not set | 29 | # CONFIG_MIPS_ATLAS is not set |
32 | # CONFIG_MIPS_MALTA is not set | 30 | # CONFIG_MIPS_MALTA is not set |
33 | # CONFIG_MIPS_SEAD is not set | 31 | # CONFIG_MIPS_SEAD is not set |
@@ -35,8 +33,6 @@ CONFIG_ZONE_DMA=y | |||
35 | # CONFIG_MIPS_SIM is not set | 33 | # CONFIG_MIPS_SIM is not set |
36 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set |
37 | # CONFIG_MOMENCO_OCELOT is not set | 35 | # CONFIG_MOMENCO_OCELOT is not set |
38 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
39 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
40 | # CONFIG_MOMENCO_OCELOT_G is not set | 36 | # CONFIG_MOMENCO_OCELOT_G is not set |
41 | # CONFIG_MIPS_XXS1500 is not set | 37 | # CONFIG_MIPS_XXS1500 is not set |
42 | # CONFIG_PNX8550_JBS is not set | 38 | # CONFIG_PNX8550_JBS is not set |
diff --git a/arch/mips/gt64120/ev64120/Kconfig b/arch/mips/gt64120/ev64120/Kconfig deleted file mode 100644 index d691762cb0f7..000000000000 --- a/arch/mips/gt64120/ev64120/Kconfig +++ /dev/null | |||
@@ -1,3 +0,0 @@ | |||
1 | config EVB_PCI1 | ||
2 | bool "Enable Second PCI (PCI1)" | ||
3 | depends on MIPS_EV64120 | ||
diff --git a/arch/mips/gt64120/ev64120/Makefile b/arch/mips/gt64120/ev64120/Makefile deleted file mode 100644 index 323b2cebc691..000000000000 --- a/arch/mips/gt64120/ev64120/Makefile +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | # | ||
2 | # Copyright 2000 RidgeRun, Inc. | ||
3 | # Author: RidgeRun, Inc. | ||
4 | # glonnon@ridgerun.com, skranz@ridgerun.com, stevej@ridgerun.com | ||
5 | # | ||
6 | # Makefile for the Galileo EV64120 board. | ||
7 | # | ||
8 | |||
9 | obj-y += irq.o promcon.o reset.o serialGT.o setup.o | ||
diff --git a/arch/mips/gt64120/ev64120/irq.c b/arch/mips/gt64120/ev64120/irq.c deleted file mode 100644 index 64e4c80b6139..000000000000 --- a/arch/mips/gt64120/ev64120/irq.c +++ /dev/null | |||
@@ -1,116 +0,0 @@ | |||
1 | /* | ||
2 | * BRIEF MODULE DESCRIPTION | ||
3 | * Code to handle irqs on GT64120A boards | ||
4 | * Derived from mips/orion and Cort <cort@fsmlabs.com> | ||
5 | * | ||
6 | * Copyright (C) 2000 RidgeRun, Inc. | ||
7 | * Author: RidgeRun, Inc. | ||
8 | * glonnon@ridgerun.com, skranz@ridgerun.com, stevej@ridgerun.com | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify it | ||
11 | * under the terms of the GNU General Public License as published by the | ||
12 | * Free Software Foundation; either version 2 of the License, or (at your | ||
13 | * option) any later version. | ||
14 | * | ||
15 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | ||
16 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
17 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN | ||
18 | * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
19 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
20 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | ||
21 | * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||
22 | * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
23 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
24 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
25 | * | ||
26 | * You should have received a copy of the GNU General Public License along | ||
27 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
28 | * 675 Mass Ave, Cambridge, MA 02139, USA. | ||
29 | */ | ||
30 | #include <linux/errno.h> | ||
31 | #include <linux/init.h> | ||
32 | #include <linux/kernel_stat.h> | ||
33 | #include <linux/module.h> | ||
34 | #include <linux/signal.h> | ||
35 | #include <linux/sched.h> | ||
36 | #include <linux/types.h> | ||
37 | #include <linux/interrupt.h> | ||
38 | #include <linux/ioport.h> | ||
39 | #include <linux/timex.h> | ||
40 | #include <linux/slab.h> | ||
41 | #include <linux/random.h> | ||
42 | #include <linux/bitops.h> | ||
43 | #include <asm/bootinfo.h> | ||
44 | #include <asm/io.h> | ||
45 | #include <asm/mipsregs.h> | ||
46 | #include <asm/system.h> | ||
47 | #include <asm/gt64120.h> | ||
48 | |||
49 | asmlinkage void plat_irq_dispatch(void) | ||
50 | { | ||
51 | unsigned int pending = read_c0_status() & read_c0_cause() & ST0_IM; | ||
52 | |||
53 | if (pending & STATUSF_IP4) /* int2 hardware line (timer) */ | ||
54 | do_IRQ(4); | ||
55 | else if (pending & STATUSF_IP2) /* int0 hardware line */ | ||
56 | do_IRQ(GT_INTA); | ||
57 | else if (pending & STATUSF_IP5) /* int3 hardware line */ | ||
58 | do_IRQ(GT_INTD); | ||
59 | else if (pending & STATUSF_IP6) /* int4 hardware line */ | ||
60 | do_IRQ(6); | ||
61 | else if (pending & STATUSF_IP7) /* compare int */ | ||
62 | do_IRQ(7); | ||
63 | else | ||
64 | spurious_interrupt(); | ||
65 | } | ||
66 | |||
67 | static void disable_ev64120_irq(unsigned int irq_nr) | ||
68 | { | ||
69 | if (irq_nr >= 8) { // All PCI interrupts are on line 5 or 2 | ||
70 | clear_c0_status(9 << 10); | ||
71 | } else { | ||
72 | clear_c0_status(1 << (irq_nr + 8)); | ||
73 | } | ||
74 | } | ||
75 | |||
76 | static void enable_ev64120_irq(unsigned int irq_nr) | ||
77 | { | ||
78 | if (irq_nr >= 8) // All PCI interrupts are on line 5 or 2 | ||
79 | set_c0_status(9 << 10); | ||
80 | else | ||
81 | set_c0_status(1 << (irq_nr + 8)); | ||
82 | } | ||
83 | |||
84 | static void end_ev64120_irq(unsigned int irq) | ||
85 | { | ||
86 | if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS))) | ||
87 | enable_ev64120_irq(irq); | ||
88 | } | ||
89 | |||
90 | static struct irq_chip ev64120_irq_type = { | ||
91 | .name = "EV64120", | ||
92 | .ack = disable_ev64120_irq, | ||
93 | .mask = disable_ev64120_irq, | ||
94 | .mask_ack = disable_ev64120_irq, | ||
95 | .unmask = enable_ev64120_irq, | ||
96 | .end = end_ev64120_irq, | ||
97 | }; | ||
98 | |||
99 | void gt64120_irq_setup(void) | ||
100 | { | ||
101 | /* | ||
102 | * Clear all of the interrupts while we change the able around a bit. | ||
103 | */ | ||
104 | clear_c0_status(ST0_IM); | ||
105 | |||
106 | /* | ||
107 | * Enable timer. Other interrupts will be enabled as they are | ||
108 | * registered. | ||
109 | */ | ||
110 | set_c0_status(IE_IRQ2); | ||
111 | } | ||
112 | |||
113 | void __init arch_init_irq(void) | ||
114 | { | ||
115 | gt64120_irq_setup(); | ||
116 | } | ||
diff --git a/arch/mips/gt64120/ev64120/promcon.c b/arch/mips/gt64120/ev64120/promcon.c deleted file mode 100644 index 6e0ecfed9640..000000000000 --- a/arch/mips/gt64120/ev64120/promcon.c +++ /dev/null | |||
@@ -1,48 +0,0 @@ | |||
1 | /* | ||
2 | * Wrap-around code for a console using the | ||
3 | * SGI PROM io-routines. | ||
4 | * | ||
5 | * Copyright (c) 1999 Ulf Carlsson | ||
6 | * | ||
7 | * Derived from DECstation promcon.c | ||
8 | * Copyright (c) 1998 Harald Koerfgen | ||
9 | */ | ||
10 | #include <linux/tty.h> | ||
11 | #include <linux/init.h> | ||
12 | #include <linux/console.h> | ||
13 | |||
14 | static void prom_console_write(struct console *co, const char *s, | ||
15 | unsigned count) | ||
16 | { | ||
17 | extern int CONSOLE_CHANNEL; // The default serial port | ||
18 | unsigned i; | ||
19 | |||
20 | for (i = 0; i < count; i++) { | ||
21 | if (*s == 10) | ||
22 | serial_putc(CONSOLE_CHANNEL, 13); | ||
23 | serial_putc(CONSOLE_CHANNEL, *s++); | ||
24 | } | ||
25 | } | ||
26 | |||
27 | static struct console sercons = { | ||
28 | .name = "ttyS", | ||
29 | .write = prom_console_write, | ||
30 | .flags = CON_PRINTBUFFER, | ||
31 | .index = -1, | ||
32 | }; | ||
33 | |||
34 | /* | ||
35 | * Register console. | ||
36 | */ | ||
37 | |||
38 | static int gal_serial_console_init(void) | ||
39 | { | ||
40 | // serial_init(); | ||
41 | //serial_set(115200); | ||
42 | |||
43 | register_console(&sercons); | ||
44 | |||
45 | return 0; | ||
46 | } | ||
47 | |||
48 | console_initcall(gal_serial_console_init); | ||
diff --git a/arch/mips/gt64120/ev64120/reset.c b/arch/mips/gt64120/ev64120/reset.c deleted file mode 100644 index 7b9f5e5bf21f..000000000000 --- a/arch/mips/gt64120/ev64120/reset.c +++ /dev/null | |||
@@ -1,45 +0,0 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 1997 Ralf Baechle | ||
7 | */ | ||
8 | #include <linux/sched.h> | ||
9 | #include <linux/mm.h> | ||
10 | #include <asm/io.h> | ||
11 | #include <asm/pgtable.h> | ||
12 | #include <asm/processor.h> | ||
13 | #include <asm/reboot.h> | ||
14 | #include <asm/system.h> | ||
15 | |||
16 | void galileo_machine_restart(char *command) | ||
17 | { | ||
18 | *(volatile char *) 0xbc000000 = 0x0f; | ||
19 | /* | ||
20 | * Ouch, we're still alive ... This time we take the silver bullet ... | ||
21 | * ... and find that we leave the hardware in a state in which the | ||
22 | * kernel in the flush locks up somewhen during of after the PCI | ||
23 | * detection stuff. | ||
24 | */ | ||
25 | set_c0_status(ST0_BEV | ST0_ERL); | ||
26 | change_c0_config(CONF_CM_CMASK, CONF_CM_UNCACHED); | ||
27 | flush_cache_all(); | ||
28 | write_c0_wired(0); | ||
29 | __asm__ __volatile__("jr\t%0"::"r"(0xbfc00000)); | ||
30 | } | ||
31 | |||
32 | void galileo_machine_halt(void) | ||
33 | { | ||
34 | printk(KERN_NOTICE "You can safely turn off the power\n"); | ||
35 | while (1) | ||
36 | __asm__(".set\tmips3\n\t" | ||
37 | "wait\n\t" | ||
38 | ".set\tmips0"); | ||
39 | |||
40 | } | ||
41 | |||
42 | void galileo_machine_power_off(void) | ||
43 | { | ||
44 | galileo_machine_halt(); | ||
45 | } | ||
diff --git a/arch/mips/gt64120/ev64120/serialGT.c b/arch/mips/gt64120/ev64120/serialGT.c deleted file mode 100644 index 8f0d835491ff..000000000000 --- a/arch/mips/gt64120/ev64120/serialGT.c +++ /dev/null | |||
@@ -1,212 +0,0 @@ | |||
1 | /* | ||
2 | * serialGT.c | ||
3 | * | ||
4 | * BRIEF MODULE DESCRIPTION | ||
5 | * Low Level Serial Port control for use | ||
6 | * with the Galileo EVB64120A MIPS eval board and | ||
7 | * its on board two channel 16552 Uart. | ||
8 | * | ||
9 | * Copyright (C) 2000 RidgeRun, Inc. | ||
10 | * Author: RidgeRun, Inc. | ||
11 | * glonnon@ridgerun.com, skranz@ridgerun.com, stevej@ridgerun.com | ||
12 | * | ||
13 | * This program is free software; you can redistribute it and/or modify it | ||
14 | * under the terms of the GNU General Public License as published by the | ||
15 | * Free Software Foundation; either version 2 of the License, or (at your | ||
16 | * option) any later version. | ||
17 | * | ||
18 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | ||
19 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
20 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN | ||
21 | * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
22 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
23 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | ||
24 | * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||
25 | * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
27 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
28 | * | ||
29 | * You should have received a copy of the GNU General Public License along | ||
30 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
31 | * 675 Mass Ave, Cambridge, MA 02139, USA. | ||
32 | * | ||
33 | */ | ||
34 | |||
35 | // Note: | ||
36 | // Serial CHANNELS - 0 is the bottom connector of evb64120A. | ||
37 | // (The one that maps to the "B" channel of the | ||
38 | // board's uart) | ||
39 | // 1 is the top connector of evb64120A. | ||
40 | // (The one that maps to the "A" channel of the | ||
41 | // board's uart) | ||
42 | int DEBUG_CHANNEL = 0; // See Note Above | ||
43 | int CONSOLE_CHANNEL = 1; // See Note Above | ||
44 | |||
45 | #define DUART 0xBD000000 /* Base address of Uart. */ | ||
46 | #define CHANNELOFFSET 0x20 /* DUART+CHANNELOFFSET gets you to the ChanA | ||
47 | register set of the 16552 Uart device. | ||
48 | DUART+0 gets you to the ChanB register set. | ||
49 | */ | ||
50 | #define DUART_DELTA 0x4 | ||
51 | #define FIFO_ENABLE 0x07 | ||
52 | #define INT_ENABLE 0x04 /* default interrupt mask */ | ||
53 | |||
54 | #define RBR 0x00 | ||
55 | #define THR 0x00 | ||
56 | #define DLL 0x00 | ||
57 | #define IER 0x01 | ||
58 | #define DLM 0x01 | ||
59 | #define IIR 0x02 | ||
60 | #define FCR 0x02 | ||
61 | #define LCR 0x03 | ||
62 | #define MCR 0x04 | ||
63 | #define LSR 0x05 | ||
64 | #define MSR 0x06 | ||
65 | #define SCR 0x07 | ||
66 | |||
67 | #define LCR_DLAB 0x80 | ||
68 | #define XTAL 1843200 | ||
69 | #define LSR_THRE 0x20 | ||
70 | #define LSR_BI 0x10 | ||
71 | #define LSR_DR 0x01 | ||
72 | #define MCR_LOOP 0x10 | ||
73 | #define ACCESS_DELAY 0x10000 | ||
74 | |||
75 | /****************************** | ||
76 | Routine: | ||
77 | Description: | ||
78 | ******************************/ | ||
79 | int inreg(int channel, int reg) | ||
80 | { | ||
81 | int val; | ||
82 | val = | ||
83 | *((volatile unsigned char *) DUART + | ||
84 | (channel * CHANNELOFFSET) + (reg * DUART_DELTA)); | ||
85 | return val; | ||
86 | } | ||
87 | |||
88 | /****************************** | ||
89 | Routine: | ||
90 | Description: | ||
91 | ******************************/ | ||
92 | void outreg(int channel, int reg, unsigned char val) | ||
93 | { | ||
94 | *((volatile unsigned char *) DUART + (channel * CHANNELOFFSET) | ||
95 | + (reg * DUART_DELTA)) = val; | ||
96 | } | ||
97 | |||
98 | /****************************** | ||
99 | Routine: | ||
100 | Description: | ||
101 | Initialize the device driver. | ||
102 | ******************************/ | ||
103 | void serial_init(int channel) | ||
104 | { | ||
105 | /* | ||
106 | * Configure active port, (CHANNELOFFSET already set.) | ||
107 | * | ||
108 | * Set 8 bits, 1 stop bit, no parity. | ||
109 | * | ||
110 | * LCR<7> 0 divisor latch access bit | ||
111 | * LCR<6> 0 break control (1=send break) | ||
112 | * LCR<5> 0 stick parity (0=space, 1=mark) | ||
113 | * LCR<4> 0 parity even (0=odd, 1=even) | ||
114 | * LCR<3> 0 parity enable (1=enabled) | ||
115 | * LCR<2> 0 # stop bits (0=1, 1=1.5) | ||
116 | * LCR<1:0> 11 bits per character(00=5, 01=6, 10=7, 11=8) | ||
117 | */ | ||
118 | outreg(channel, LCR, 0x3); | ||
119 | |||
120 | outreg(channel, FCR, FIFO_ENABLE); /* Enable the FIFO */ | ||
121 | |||
122 | outreg(channel, IER, INT_ENABLE); /* Enable appropriate interrupts */ | ||
123 | } | ||
124 | |||
125 | /****************************** | ||
126 | Routine: | ||
127 | Description: | ||
128 | Set the baud rate. | ||
129 | ******************************/ | ||
130 | void serial_set(int channel, unsigned long baud) | ||
131 | { | ||
132 | unsigned char sav_lcr; | ||
133 | |||
134 | /* | ||
135 | * Enable access to the divisor latches by setting DLAB in LCR. | ||
136 | * | ||
137 | */ | ||
138 | sav_lcr = inreg(channel, LCR); | ||
139 | |||
140 | #if 0 | ||
141 | /* | ||
142 | * Set baud rate | ||
143 | */ | ||
144 | outreg(channel, LCR, LCR_DLAB | sav_lcr); | ||
145 | // outreg(DLL,(XTAL/(16*2*(baud))-2)); | ||
146 | outreg(channel, DLL, XTAL / (16 * baud)); | ||
147 | // outreg(DLM,(XTAL/(16*2*(baud))-2)>>8); | ||
148 | outreg(channel, DLM, (XTAL / (16 * baud)) >> 8); | ||
149 | #else | ||
150 | /* | ||
151 | * Note: Set baud rate, hardcoded here for rate of 115200 | ||
152 | * since became unsure of above "baud rate" algorithm (??). | ||
153 | */ | ||
154 | outreg(channel, LCR, 0x83); | ||
155 | outreg(channel, DLM, 0x00); // See note above | ||
156 | outreg(channel, DLL, 0x02); // See note above. | ||
157 | outreg(channel, LCR, 0x03); | ||
158 | #endif | ||
159 | |||
160 | /* | ||
161 | * Restore line control register | ||
162 | */ | ||
163 | outreg(channel, LCR, sav_lcr); | ||
164 | } | ||
165 | |||
166 | |||
167 | /****************************** | ||
168 | Routine: | ||
169 | Description: | ||
170 | Transmit a character. | ||
171 | ******************************/ | ||
172 | void serial_putc(int channel, int c) | ||
173 | { | ||
174 | while ((inreg(channel, LSR) & LSR_THRE) == 0); | ||
175 | outreg(channel, THR, c); | ||
176 | } | ||
177 | |||
178 | /****************************** | ||
179 | Routine: | ||
180 | Description: | ||
181 | Read a received character if one is | ||
182 | available. Return -1 otherwise. | ||
183 | ******************************/ | ||
184 | int serial_getc(int channel) | ||
185 | { | ||
186 | if (inreg(channel, LSR) & LSR_DR) { | ||
187 | return inreg(channel, RBR); | ||
188 | } | ||
189 | return -1; | ||
190 | } | ||
191 | |||
192 | /****************************** | ||
193 | Routine: | ||
194 | Description: | ||
195 | Used by embedded gdb client. (example; gdb-stub.c) | ||
196 | ******************************/ | ||
197 | char getDebugChar() | ||
198 | { | ||
199 | int val; | ||
200 | while ((val = serial_getc(DEBUG_CHANNEL)) == -1); // loop until we get a character in. | ||
201 | return (char) val; | ||
202 | } | ||
203 | |||
204 | /****************************** | ||
205 | Routine: | ||
206 | Description: | ||
207 | Used by embedded gdb target. (example; gdb-stub.c) | ||
208 | ******************************/ | ||
209 | void putDebugChar(char c) | ||
210 | { | ||
211 | serial_putc(DEBUG_CHANNEL, (int) c); | ||
212 | } | ||
diff --git a/arch/mips/gt64120/ev64120/setup.c b/arch/mips/gt64120/ev64120/setup.c deleted file mode 100644 index 477848c22a2c..000000000000 --- a/arch/mips/gt64120/ev64120/setup.c +++ /dev/null | |||
@@ -1,99 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2000 RidgeRun, Inc. | ||
3 | * Author: RidgeRun, Inc. | ||
4 | * glonnon@ridgerun.com, skranz@ridgerun.com, stevej@ridgerun.com | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify it | ||
7 | * under the terms of the GNU General Public License as published by the | ||
8 | * Free Software Foundation; either version 2 of the License, or (at your | ||
9 | * option) any later version. | ||
10 | * | ||
11 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | ||
12 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
13 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN | ||
14 | * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
15 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
16 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | ||
17 | * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||
18 | * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
19 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
20 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
21 | * | ||
22 | * You should have received a copy of the GNU General Public License along | ||
23 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
24 | * 675 Mass Ave, Cambridge, MA 02139, USA. | ||
25 | * | ||
26 | */ | ||
27 | #include <linux/init.h> | ||
28 | #include <linux/kernel.h> | ||
29 | #include <linux/types.h> | ||
30 | #include <linux/mm.h> | ||
31 | #include <linux/swap.h> | ||
32 | #include <linux/ioport.h> | ||
33 | #include <linux/sched.h> | ||
34 | #include <linux/interrupt.h> | ||
35 | #include <linux/pci.h> | ||
36 | #include <linux/timex.h> | ||
37 | #include <linux/pm.h> | ||
38 | |||
39 | #include <asm/bootinfo.h> | ||
40 | #include <asm/page.h> | ||
41 | #include <asm/io.h> | ||
42 | #include <asm/irq.h> | ||
43 | #include <asm/pci.h> | ||
44 | #include <asm/processor.h> | ||
45 | #include <asm/time.h> | ||
46 | #include <asm/reboot.h> | ||
47 | #include <asm/traps.h> | ||
48 | #include <linux/bootmem.h> | ||
49 | |||
50 | unsigned long gt64120_base = KSEG1ADDR(0x14000000); | ||
51 | |||
52 | /* These functions are used for rebooting or halting the machine*/ | ||
53 | extern void galileo_machine_restart(char *command); | ||
54 | extern void galileo_machine_halt(void); | ||
55 | extern void galileo_machine_power_off(void); | ||
56 | /* | ||
57 | *This structure holds pointers to the pci configuration space accesses | ||
58 | *and interrupts allocating routine for device over the PCI | ||
59 | */ | ||
60 | extern struct pci_ops galileo_pci_ops; | ||
61 | |||
62 | void __init prom_free_prom_memory(void) | ||
63 | { | ||
64 | } | ||
65 | |||
66 | /* | ||
67 | * Initializes basic routines and structures pointers, memory size (as | ||
68 | * given by the bios and saves the command line. | ||
69 | */ | ||
70 | |||
71 | void __init plat_mem_setup(void) | ||
72 | { | ||
73 | _machine_restart = galileo_machine_restart; | ||
74 | _machine_halt = galileo_machine_halt; | ||
75 | pm_power_off = galileo_machine_power_off; | ||
76 | |||
77 | set_io_port_base(KSEG1); | ||
78 | } | ||
79 | |||
80 | const char *get_system_type(void) | ||
81 | { | ||
82 | return "Galileo EV64120A"; | ||
83 | } | ||
84 | |||
85 | /* | ||
86 | * Kernel arguments passed by the firmware | ||
87 | * | ||
88 | * $a0 - nothing | ||
89 | * $a1 - holds a pointer to the eprom parameters | ||
90 | * $a2 - nothing | ||
91 | */ | ||
92 | |||
93 | void __init prom_init(void) | ||
94 | { | ||
95 | mips_machgroup = MACH_GROUP_GALILEO; | ||
96 | mips_machtype = MACH_EV64120A; | ||
97 | |||
98 | add_memory_region(0, 32 << 20, BOOT_MEM_RAM); | ||
99 | } | ||
diff --git a/arch/mips/gt64120/momenco_ocelot/Makefile b/arch/mips/gt64120/momenco_ocelot/Makefile index 9f9a33fc76b9..1df5fe23c642 100644 --- a/arch/mips/gt64120/momenco_ocelot/Makefile +++ b/arch/mips/gt64120/momenco_ocelot/Makefile | |||
@@ -2,6 +2,6 @@ | |||
2 | # Makefile for Momentum's Ocelot board. | 2 | # Makefile for Momentum's Ocelot board. |
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y += irq.o prom.o reset.o setup.o | 5 | obj-y += irq.o ocelot-platform.o prom.o reset.o setup.o |
6 | 6 | ||
7 | obj-$(CONFIG_KGDB) += dbg_io.o | 7 | obj-$(CONFIG_KGDB) += dbg_io.o |
diff --git a/arch/mips/gt64120/momenco_ocelot/ocelot-platform.c b/arch/mips/gt64120/momenco_ocelot/ocelot-platform.c new file mode 100644 index 000000000000..81d9031a5a2a --- /dev/null +++ b/arch/mips/gt64120/momenco_ocelot/ocelot-platform.c | |||
@@ -0,0 +1,46 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 2007 Ralf Baechle (ralf@linux-mips.org) | ||
7 | * | ||
8 | * A NS16552 DUART with a 20MHz crystal. | ||
9 | * | ||
10 | */ | ||
11 | #include <linux/module.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/serial_8250.h> | ||
14 | |||
15 | #define OCELOT_UART_FLAGS (UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_IOREMAP) | ||
16 | |||
17 | static struct plat_serial8250_port uart8250_data[] = { | ||
18 | { | ||
19 | .mapbase = 0xe0001020, | ||
20 | .irq = 4, | ||
21 | .uartclk = 20000000, | ||
22 | .iotype = UPIO_MEM, | ||
23 | .flags = OCELOT_UART_FLAGS, | ||
24 | .regshift = 2, | ||
25 | }, | ||
26 | { }, | ||
27 | }; | ||
28 | |||
29 | static struct platform_device uart8250_device = { | ||
30 | .name = "serial8250", | ||
31 | .id = PLAT8250_DEV_PLATFORM, | ||
32 | .dev = { | ||
33 | .platform_data = uart8250_data, | ||
34 | }, | ||
35 | }; | ||
36 | |||
37 | static int __init uart8250_init(void) | ||
38 | { | ||
39 | return platform_device_register(&uart8250_device); | ||
40 | } | ||
41 | |||
42 | module_init(uart8250_init); | ||
43 | |||
44 | MODULE_AUTHOR("Ralf Baechle <ralf@linux-mips.org>"); | ||
45 | MODULE_LICENSE("GPL"); | ||
46 | MODULE_DESCRIPTION("8250 UART probe driver for the Momenco Ocelot"); | ||
diff --git a/arch/mips/gt64120/wrppmc/setup.c b/arch/mips/gt64120/wrppmc/setup.c index 121188d5ec4a..ea965529e5e0 100644 --- a/arch/mips/gt64120/wrppmc/setup.c +++ b/arch/mips/gt64120/wrppmc/setup.c | |||
@@ -158,8 +158,8 @@ const char *get_system_type(void) | |||
158 | */ | 158 | */ |
159 | void __init prom_init(void) | 159 | void __init prom_init(void) |
160 | { | 160 | { |
161 | mips_machgroup = MACH_GROUP_GALILEO; | 161 | mips_machgroup = MACH_GROUP_WINDRIVER; |
162 | mips_machtype = MACH_EV64120A; | 162 | mips_machtype = MACH_WRPPMC; |
163 | 163 | ||
164 | add_memory_region(WRPPMC_SDRAM_SCS0_BASE, WRPPMC_SDRAM_SCS0_SIZE, BOOT_MEM_RAM); | 164 | add_memory_region(WRPPMC_SDRAM_SCS0_BASE, WRPPMC_SDRAM_SCS0_SIZE, BOOT_MEM_RAM); |
165 | add_memory_region(WRPPMC_BOOTROM_BASE, WRPPMC_BOOTROM_SIZE, BOOT_MEM_ROM_DATA); | 165 | add_memory_region(WRPPMC_BOOTROM_BASE, WRPPMC_BOOTROM_SIZE, BOOT_MEM_ROM_DATA); |
diff --git a/arch/mips/jazz/Makefile b/arch/mips/jazz/Makefile index dd9d99bfcf7a..ae4c402b5004 100644 --- a/arch/mips/jazz/Makefile +++ b/arch/mips/jazz/Makefile | |||
@@ -2,4 +2,4 @@ | |||
2 | # Makefile for the Jazz family specific parts of the kernel | 2 | # Makefile for the Jazz family specific parts of the kernel |
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y := irq.o jazzdma.o reset.o setup.o | 5 | obj-y := irq.o jazzdma.o jazz-platform.o reset.o setup.o |
diff --git a/arch/mips/jazz/jazz-platform.c b/arch/mips/jazz/jazz-platform.c new file mode 100644 index 000000000000..fd736703eef2 --- /dev/null +++ b/arch/mips/jazz/jazz-platform.c | |||
@@ -0,0 +1,60 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 2007 Ralf Baechle (ralf@linux-mips.org) | ||
7 | */ | ||
8 | #include <linux/init.h> | ||
9 | #include <linux/module.h> | ||
10 | #include <linux/serial_8250.h> | ||
11 | |||
12 | #include <asm/jazz.h> | ||
13 | |||
14 | /* | ||
15 | * Confusion ... It seems the original Microsoft Jazz machine used to have a | ||
16 | * 4.096MHz clock for its UART while the MIPS Magnum and Millenium systems | ||
17 | * had 8MHz. The Olivetti M700-10 and the Acer PICA have 1.8432MHz like PCs. | ||
18 | */ | ||
19 | #ifdef CONFIG_OLIVETTI_M700 | ||
20 | #define JAZZ_BASE_BAUD 1843200 | ||
21 | #else | ||
22 | #define JAZZ_BASE_BAUD 8000000 /* 3072000 */ | ||
23 | #endif | ||
24 | |||
25 | #define JAZZ_UART_FLAGS (UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_IOREMAP) | ||
26 | |||
27 | #define JAZZ_PORT(base, int) \ | ||
28 | { \ | ||
29 | .mapbase = base, \ | ||
30 | .irq = int, \ | ||
31 | .uartclk = JAZZ_BASE_BAUD, \ | ||
32 | .iotype = UPIO_MEM, \ | ||
33 | .flags = JAZZ_UART_FLAGS, \ | ||
34 | .regshift = 0, \ | ||
35 | } | ||
36 | |||
37 | static struct plat_serial8250_port uart8250_data[] = { | ||
38 | JAZZ_PORT(JAZZ_SERIAL1_BASE, JAZZ_SERIAL1_IRQ), | ||
39 | JAZZ_PORT(JAZZ_SERIAL2_BASE, JAZZ_SERIAL2_IRQ), | ||
40 | { }, | ||
41 | }; | ||
42 | |||
43 | static struct platform_device uart8250_device = { | ||
44 | .name = "serial8250", | ||
45 | .id = PLAT8250_DEV_PLATFORM, | ||
46 | .dev = { | ||
47 | .platform_data = uart8250_data, | ||
48 | }, | ||
49 | }; | ||
50 | |||
51 | static int __init uart8250_init(void) | ||
52 | { | ||
53 | return platform_device_register(&uart8250_device); | ||
54 | } | ||
55 | |||
56 | module_init(uart8250_init); | ||
57 | |||
58 | MODULE_AUTHOR("Ralf Baechle <ralf@linux-mips.org>"); | ||
59 | MODULE_LICENSE("GPL"); | ||
60 | MODULE_DESCRIPTION("8250 UART probe driver for the Jazz family"); | ||
diff --git a/arch/mips/kernel/8250-platform.c b/arch/mips/kernel/8250-platform.c new file mode 100644 index 000000000000..cbf3fe20ad17 --- /dev/null +++ b/arch/mips/kernel/8250-platform.c | |||
@@ -0,0 +1,47 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 2007 Ralf Baechle (ralf@linux-mips.org) | ||
7 | */ | ||
8 | #include <linux/module.h> | ||
9 | #include <linux/init.h> | ||
10 | #include <linux/serial_8250.h> | ||
11 | |||
12 | #define PORT(base, int) \ | ||
13 | { \ | ||
14 | .iobase = base, \ | ||
15 | .irq = int, \ | ||
16 | .uartclk = 1843200, \ | ||
17 | .iotype = UPIO_PORT, \ | ||
18 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST, \ | ||
19 | .regshift = 0, \ | ||
20 | } | ||
21 | |||
22 | static struct plat_serial8250_port uart8250_data[] = { | ||
23 | PORT(0x3F8, 4), | ||
24 | PORT(0x2F8, 3), | ||
25 | PORT(0x3E8, 4), | ||
26 | PORT(0x2E8, 3), | ||
27 | { }, | ||
28 | }; | ||
29 | |||
30 | static struct platform_device uart8250_device = { | ||
31 | .name = "serial8250", | ||
32 | .id = PLAT8250_DEV_PLATFORM, | ||
33 | .dev = { | ||
34 | .platform_data = uart8250_data, | ||
35 | }, | ||
36 | }; | ||
37 | |||
38 | static int __init uart8250_init(void) | ||
39 | { | ||
40 | return platform_device_register(&uart8250_device); | ||
41 | } | ||
42 | |||
43 | module_init(uart8250_init); | ||
44 | |||
45 | MODULE_AUTHOR("Ralf Baechle <ralf@linux-mips.org>"); | ||
46 | MODULE_LICENSE("GPL"); | ||
47 | MODULE_DESCRIPTION("Generic 8250 UART probe driver"); | ||
diff --git a/arch/mips/kernel/Makefile b/arch/mips/kernel/Makefile index 49246264cc7c..961594cb5214 100644 --- a/arch/mips/kernel/Makefile +++ b/arch/mips/kernel/Makefile | |||
@@ -14,14 +14,15 @@ binfmt_irix-objs := irixelf.o irixinv.o irixioctl.o irixsig.o \ | |||
14 | obj-$(CONFIG_STACKTRACE) += stacktrace.o | 14 | obj-$(CONFIG_STACKTRACE) += stacktrace.o |
15 | obj-$(CONFIG_MODULES) += mips_ksyms.o module.o | 15 | obj-$(CONFIG_MODULES) += mips_ksyms.o module.o |
16 | 16 | ||
17 | obj-$(CONFIG_CPU_LOONGSON2) += r4k_fpu.o r4k_switch.o | ||
18 | obj-$(CONFIG_CPU_MIPS32) += r4k_fpu.o r4k_switch.o | ||
19 | obj-$(CONFIG_CPU_MIPS64) += r4k_fpu.o r4k_switch.o | ||
17 | obj-$(CONFIG_CPU_R3000) += r2300_fpu.o r2300_switch.o | 20 | obj-$(CONFIG_CPU_R3000) += r2300_fpu.o r2300_switch.o |
18 | obj-$(CONFIG_CPU_TX39XX) += r2300_fpu.o r2300_switch.o | ||
19 | obj-$(CONFIG_CPU_TX49XX) += r4k_fpu.o r4k_switch.o | ||
20 | obj-$(CONFIG_CPU_R4000) += r4k_fpu.o r4k_switch.o | 21 | obj-$(CONFIG_CPU_R4000) += r4k_fpu.o r4k_switch.o |
21 | obj-$(CONFIG_CPU_VR41XX) += r4k_fpu.o r4k_switch.o | ||
22 | obj-$(CONFIG_CPU_R4300) += r4k_fpu.o r4k_switch.o | 22 | obj-$(CONFIG_CPU_R4300) += r4k_fpu.o r4k_switch.o |
23 | obj-$(CONFIG_CPU_R4X00) += r4k_fpu.o r4k_switch.o | 23 | obj-$(CONFIG_CPU_R4X00) += r4k_fpu.o r4k_switch.o |
24 | obj-$(CONFIG_CPU_R5000) += r4k_fpu.o r4k_switch.o | 24 | obj-$(CONFIG_CPU_R5000) += r4k_fpu.o r4k_switch.o |
25 | obj-$(CONFIG_CPU_R6000) += r6000_fpu.o r4k_switch.o | ||
25 | obj-$(CONFIG_CPU_R5432) += r4k_fpu.o r4k_switch.o | 26 | obj-$(CONFIG_CPU_R5432) += r4k_fpu.o r4k_switch.o |
26 | obj-$(CONFIG_CPU_R8000) += r4k_fpu.o r4k_switch.o | 27 | obj-$(CONFIG_CPU_R8000) += r4k_fpu.o r4k_switch.o |
27 | obj-$(CONFIG_CPU_RM7000) += r4k_fpu.o r4k_switch.o | 28 | obj-$(CONFIG_CPU_RM7000) += r4k_fpu.o r4k_switch.o |
@@ -29,13 +30,14 @@ obj-$(CONFIG_CPU_RM9000) += r4k_fpu.o r4k_switch.o | |||
29 | obj-$(CONFIG_CPU_NEVADA) += r4k_fpu.o r4k_switch.o | 30 | obj-$(CONFIG_CPU_NEVADA) += r4k_fpu.o r4k_switch.o |
30 | obj-$(CONFIG_CPU_R10000) += r4k_fpu.o r4k_switch.o | 31 | obj-$(CONFIG_CPU_R10000) += r4k_fpu.o r4k_switch.o |
31 | obj-$(CONFIG_CPU_SB1) += r4k_fpu.o r4k_switch.o | 32 | obj-$(CONFIG_CPU_SB1) += r4k_fpu.o r4k_switch.o |
32 | obj-$(CONFIG_CPU_MIPS32) += r4k_fpu.o r4k_switch.o | 33 | obj-$(CONFIG_CPU_TX39XX) += r2300_fpu.o r2300_switch.o |
33 | obj-$(CONFIG_CPU_MIPS64) += r4k_fpu.o r4k_switch.o | 34 | obj-$(CONFIG_CPU_TX49XX) += r4k_fpu.o r4k_switch.o |
34 | obj-$(CONFIG_CPU_R6000) += r6000_fpu.o r4k_switch.o | 35 | obj-$(CONFIG_CPU_VR41XX) += r4k_fpu.o r4k_switch.o |
35 | 36 | ||
36 | obj-$(CONFIG_SMP) += smp.o | 37 | obj-$(CONFIG_SMP) += smp.o |
37 | 38 | ||
38 | obj-$(CONFIG_MIPS_MT) += mips-mt.o | 39 | obj-$(CONFIG_MIPS_MT) += mips-mt.o |
40 | obj-$(CONFIG_MIPS_MT_FPAFF) += mips-mt-fpaff.o | ||
39 | obj-$(CONFIG_MIPS_MT_SMTC) += smtc.o smtc-asm.o smtc-proc.o | 41 | obj-$(CONFIG_MIPS_MT_SMTC) += smtc.o smtc-asm.o smtc-proc.o |
40 | obj-$(CONFIG_MIPS_MT_SMP) += smp-mt.o | 42 | obj-$(CONFIG_MIPS_MT_SMP) += smp-mt.o |
41 | 43 | ||
@@ -47,7 +49,6 @@ obj-$(CONFIG_I8259) += i8259.o | |||
47 | obj-$(CONFIG_IRQ_CPU) += irq_cpu.o | 49 | obj-$(CONFIG_IRQ_CPU) += irq_cpu.o |
48 | obj-$(CONFIG_IRQ_CPU_RM7K) += irq-rm7000.o | 50 | obj-$(CONFIG_IRQ_CPU_RM7K) += irq-rm7000.o |
49 | obj-$(CONFIG_IRQ_CPU_RM9K) += irq-rm9000.o | 51 | obj-$(CONFIG_IRQ_CPU_RM9K) += irq-rm9000.o |
50 | obj-$(CONFIG_IRQ_MV64340) += irq-mv6434x.o | ||
51 | obj-$(CONFIG_MIPS_BOARDS_GEN) += irq-msc01.o | 52 | obj-$(CONFIG_MIPS_BOARDS_GEN) += irq-msc01.o |
52 | 53 | ||
53 | obj-$(CONFIG_32BIT) += scall32-o32.o | 54 | obj-$(CONFIG_32BIT) += scall32-o32.o |
@@ -68,3 +69,5 @@ obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o | |||
68 | obj-$(CONFIG_EARLY_PRINTK) += early_printk.o | 69 | obj-$(CONFIG_EARLY_PRINTK) += early_printk.o |
69 | 70 | ||
70 | CFLAGS_cpu-bugs64.o = $(shell if $(CC) $(CFLAGS) -Wa,-mdaddi -c -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-DHAVE_AS_SET_DADDI"; fi) | 71 | CFLAGS_cpu-bugs64.o = $(shell if $(CC) $(CFLAGS) -Wa,-mdaddi -c -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-DHAVE_AS_SET_DADDI"; fi) |
72 | |||
73 | obj-$(CONFIG_HAVE_STD_PC_SERIAL_PORT) += 8250-platform.o | ||
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c index b12eeee0e974..c6b8b074a81a 100644 --- a/arch/mips/kernel/cpu-probe.c +++ b/arch/mips/kernel/cpu-probe.c | |||
@@ -186,9 +186,29 @@ static inline void check_wait(void) | |||
186 | } | 186 | } |
187 | } | 187 | } |
188 | 188 | ||
189 | static inline void check_errata(void) | ||
190 | { | ||
191 | struct cpuinfo_mips *c = ¤t_cpu_data; | ||
192 | |||
193 | switch (c->cputype) { | ||
194 | case CPU_34K: | ||
195 | /* | ||
196 | * Erratum "RPS May Cause Incorrect Instruction Execution" | ||
197 | * This code only handles VPE0, any SMP/SMTC/RTOS code | ||
198 | * making use of VPE1 will be responsable for that VPE. | ||
199 | */ | ||
200 | if ((c->processor_id & PRID_REV_MASK) <= PRID_REV_34K_V1_0_2) | ||
201 | write_c0_config7(read_c0_config7() | MIPS_CONF7_RPS); | ||
202 | break; | ||
203 | default: | ||
204 | break; | ||
205 | } | ||
206 | } | ||
207 | |||
189 | void __init check_bugs32(void) | 208 | void __init check_bugs32(void) |
190 | { | 209 | { |
191 | check_wait(); | 210 | check_wait(); |
211 | check_errata(); | ||
192 | } | 212 | } |
193 | 213 | ||
194 | /* | 214 | /* |
@@ -485,6 +505,14 @@ static inline void cpu_probe_legacy(struct cpuinfo_mips *c) | |||
485 | MIPS_CPU_LLSC; | 505 | MIPS_CPU_LLSC; |
486 | c->tlbsize = 64; | 506 | c->tlbsize = 64; |
487 | break; | 507 | break; |
508 | case PRID_IMP_LOONGSON2: | ||
509 | c->cputype = CPU_LOONGSON2; | ||
510 | c->isa_level = MIPS_CPU_ISA_III; | ||
511 | c->options = R4K_OPTS | | ||
512 | MIPS_CPU_FPU | MIPS_CPU_LLSC | | ||
513 | MIPS_CPU_32FPR; | ||
514 | c->tlbsize = 64; | ||
515 | break; | ||
488 | } | 516 | } |
489 | } | 517 | } |
490 | 518 | ||
@@ -588,6 +616,8 @@ static inline unsigned int decode_config3(struct cpuinfo_mips *c) | |||
588 | c->options |= MIPS_CPU_VEIC; | 616 | c->options |= MIPS_CPU_VEIC; |
589 | if (config3 & MIPS_CONF3_MT) | 617 | if (config3 & MIPS_CONF3_MT) |
590 | c->ases |= MIPS_ASE_MIPSMT; | 618 | c->ases |= MIPS_ASE_MIPSMT; |
619 | if (config3 & MIPS_CONF3_ULRI) | ||
620 | c->options |= MIPS_CPU_ULRI; | ||
591 | 621 | ||
592 | return config3 & MIPS_CONF_M; | 622 | return config3 & MIPS_CONF_M; |
593 | } | 623 | } |
diff --git a/arch/mips/kernel/head.S b/arch/mips/kernel/head.S index 6f57ca44291f..f78538eceef7 100644 --- a/arch/mips/kernel/head.S +++ b/arch/mips/kernel/head.S | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
17 | #include <linux/threads.h> | 17 | #include <linux/threads.h> |
18 | 18 | ||
19 | #include <asm/addrspace.h> | ||
19 | #include <asm/asm.h> | 20 | #include <asm/asm.h> |
20 | #include <asm/asmmacro.h> | 21 | #include <asm/asmmacro.h> |
21 | #include <asm/irqflags.h> | 22 | #include <asm/irqflags.h> |
@@ -129,24 +130,25 @@ | |||
129 | #endif | 130 | #endif |
130 | .endm | 131 | .endm |
131 | 132 | ||
133 | #ifndef CONFIG_NO_EXCEPT_FILL | ||
132 | /* | 134 | /* |
133 | * Reserved space for exception handlers. | 135 | * Reserved space for exception handlers. |
134 | * Necessary for machines which link their kernels at KSEG0. | 136 | * Necessary for machines which link their kernels at KSEG0. |
135 | */ | 137 | */ |
136 | .fill 0x400 | 138 | .fill 0x400 |
139 | #endif | ||
137 | 140 | ||
138 | EXPORT(stext) # used for profiling | 141 | EXPORT(stext) # used for profiling |
139 | EXPORT(_stext) | 142 | EXPORT(_stext) |
140 | 143 | ||
141 | #ifdef CONFIG_MIPS_SIM | 144 | #ifdef CONFIG_BOOT_RAW |
142 | /* | 145 | /* |
143 | * Give us a fighting chance of running if execution beings at the | 146 | * Give us a fighting chance of running if execution beings at the |
144 | * kernel load address. This is needed because this platform does | 147 | * kernel load address. This is needed because this platform does |
145 | * not have a ELF loader yet. | 148 | * not have a ELF loader yet. |
146 | */ | 149 | */ |
147 | j kernel_entry | ||
148 | #endif | ||
149 | __INIT | 150 | __INIT |
151 | #endif | ||
150 | 152 | ||
151 | NESTED(kernel_entry, 16, sp) # kernel entry point | 153 | NESTED(kernel_entry, 16, sp) # kernel entry point |
152 | 154 | ||
@@ -197,9 +199,7 @@ NESTED(kernel_entry, 16, sp) # kernel entry point | |||
197 | j start_kernel | 199 | j start_kernel |
198 | END(kernel_entry) | 200 | END(kernel_entry) |
199 | 201 | ||
200 | #ifdef CONFIG_QEMU | ||
201 | __INIT | 202 | __INIT |
202 | #endif | ||
203 | 203 | ||
204 | #ifdef CONFIG_SMP | 204 | #ifdef CONFIG_SMP |
205 | /* | 205 | /* |
diff --git a/arch/mips/kernel/irq-mv6434x.c b/arch/mips/kernel/irq-mv6434x.c deleted file mode 100644 index 3dd561832e4c..000000000000 --- a/arch/mips/kernel/irq-mv6434x.c +++ /dev/null | |||
@@ -1,111 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright 2002 Momentum Computer | ||
3 | * Author: mdharm@momenco.com | ||
4 | * Copyright (C) 2004, 06 Ralf Baechle <ralf@linux-mips.org> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify it | ||
7 | * under the terms of the GNU General Public License as published by the | ||
8 | * Free Software Foundation; either version 2 of the License, or (at your | ||
9 | * option) any later version. | ||
10 | */ | ||
11 | #include <linux/module.h> | ||
12 | #include <linux/interrupt.h> | ||
13 | #include <linux/kernel.h> | ||
14 | #include <linux/kernel_stat.h> | ||
15 | #include <linux/mv643xx.h> | ||
16 | #include <linux/sched.h> | ||
17 | |||
18 | #include <asm/io.h> | ||
19 | #include <asm/irq.h> | ||
20 | #include <asm/marvell.h> | ||
21 | |||
22 | static unsigned int irq_base; | ||
23 | |||
24 | static inline int ls1bit32(unsigned int x) | ||
25 | { | ||
26 | int b = 31, s; | ||
27 | |||
28 | s = 16; if (x << 16 == 0) s = 0; b -= s; x <<= s; | ||
29 | s = 8; if (x << 8 == 0) s = 0; b -= s; x <<= s; | ||
30 | s = 4; if (x << 4 == 0) s = 0; b -= s; x <<= s; | ||
31 | s = 2; if (x << 2 == 0) s = 0; b -= s; x <<= s; | ||
32 | s = 1; if (x << 1 == 0) s = 0; b -= s; | ||
33 | |||
34 | return b; | ||
35 | } | ||
36 | |||
37 | /* mask off an interrupt -- 1 is enable, 0 is disable */ | ||
38 | static inline void mask_mv64340_irq(unsigned int irq) | ||
39 | { | ||
40 | uint32_t value; | ||
41 | |||
42 | if (irq < (irq_base + 32)) { | ||
43 | value = MV_READ(MV64340_INTERRUPT0_MASK_0_LOW); | ||
44 | value &= ~(1 << (irq - irq_base)); | ||
45 | MV_WRITE(MV64340_INTERRUPT0_MASK_0_LOW, value); | ||
46 | } else { | ||
47 | value = MV_READ(MV64340_INTERRUPT0_MASK_0_HIGH); | ||
48 | value &= ~(1 << (irq - irq_base - 32)); | ||
49 | MV_WRITE(MV64340_INTERRUPT0_MASK_0_HIGH, value); | ||
50 | } | ||
51 | } | ||
52 | |||
53 | /* unmask an interrupt -- 1 is enable, 0 is disable */ | ||
54 | static inline void unmask_mv64340_irq(unsigned int irq) | ||
55 | { | ||
56 | uint32_t value; | ||
57 | |||
58 | if (irq < (irq_base + 32)) { | ||
59 | value = MV_READ(MV64340_INTERRUPT0_MASK_0_LOW); | ||
60 | value |= 1 << (irq - irq_base); | ||
61 | MV_WRITE(MV64340_INTERRUPT0_MASK_0_LOW, value); | ||
62 | } else { | ||
63 | value = MV_READ(MV64340_INTERRUPT0_MASK_0_HIGH); | ||
64 | value |= 1 << (irq - irq_base - 32); | ||
65 | MV_WRITE(MV64340_INTERRUPT0_MASK_0_HIGH, value); | ||
66 | } | ||
67 | } | ||
68 | |||
69 | /* | ||
70 | * Interrupt handler for interrupts coming from the Marvell chip. | ||
71 | * It could be built in ethernet ports etc... | ||
72 | */ | ||
73 | void ll_mv64340_irq(void) | ||
74 | { | ||
75 | unsigned int irq_src_low, irq_src_high; | ||
76 | unsigned int irq_mask_low, irq_mask_high; | ||
77 | |||
78 | /* read the interrupt status registers */ | ||
79 | irq_mask_low = MV_READ(MV64340_INTERRUPT0_MASK_0_LOW); | ||
80 | irq_mask_high = MV_READ(MV64340_INTERRUPT0_MASK_0_HIGH); | ||
81 | irq_src_low = MV_READ(MV64340_MAIN_INTERRUPT_CAUSE_LOW); | ||
82 | irq_src_high = MV_READ(MV64340_MAIN_INTERRUPT_CAUSE_HIGH); | ||
83 | |||
84 | /* mask for just the interrupts we want */ | ||
85 | irq_src_low &= irq_mask_low; | ||
86 | irq_src_high &= irq_mask_high; | ||
87 | |||
88 | if (irq_src_low) | ||
89 | do_IRQ(ls1bit32(irq_src_low) + irq_base); | ||
90 | else | ||
91 | do_IRQ(ls1bit32(irq_src_high) + irq_base + 32); | ||
92 | } | ||
93 | |||
94 | struct irq_chip mv64340_irq_type = { | ||
95 | .name = "MV-64340", | ||
96 | .ack = mask_mv64340_irq, | ||
97 | .mask = mask_mv64340_irq, | ||
98 | .mask_ack = mask_mv64340_irq, | ||
99 | .unmask = unmask_mv64340_irq, | ||
100 | }; | ||
101 | |||
102 | void __init mv64340_irq_init(unsigned int base) | ||
103 | { | ||
104 | int i; | ||
105 | |||
106 | for (i = base; i < base + 64; i++) | ||
107 | set_irq_chip_and_handler(i, &mv64340_irq_type, | ||
108 | handle_level_irq); | ||
109 | |||
110 | irq_base = base; | ||
111 | } | ||
diff --git a/arch/mips/kernel/mips-mt-fpaff.c b/arch/mips/kernel/mips-mt-fpaff.c new file mode 100644 index 000000000000..ede5d73d652e --- /dev/null +++ b/arch/mips/kernel/mips-mt-fpaff.c | |||
@@ -0,0 +1,176 @@ | |||
1 | /* | ||
2 | * General MIPS MT support routines, usable in AP/SP, SMVP, or SMTC kernels | ||
3 | * Copyright (C) 2005 Mips Technologies, Inc | ||
4 | */ | ||
5 | #include <linux/cpu.h> | ||
6 | #include <linux/cpumask.h> | ||
7 | #include <linux/delay.h> | ||
8 | #include <linux/kernel.h> | ||
9 | #include <linux/init.h> | ||
10 | #include <linux/sched.h> | ||
11 | #include <linux/security.h> | ||
12 | #include <linux/types.h> | ||
13 | #include <asm/uaccess.h> | ||
14 | |||
15 | /* | ||
16 | * CPU mask used to set process affinity for MT VPEs/TCs with FPUs | ||
17 | */ | ||
18 | cpumask_t mt_fpu_cpumask; | ||
19 | |||
20 | static int fpaff_threshold = -1; | ||
21 | unsigned long mt_fpemul_threshold = 0; | ||
22 | |||
23 | /* | ||
24 | * Replacement functions for the sys_sched_setaffinity() and | ||
25 | * sys_sched_getaffinity() system calls, so that we can integrate | ||
26 | * FPU affinity with the user's requested processor affinity. | ||
27 | * This code is 98% identical with the sys_sched_setaffinity() | ||
28 | * and sys_sched_getaffinity() system calls, and should be | ||
29 | * updated when kernel/sched.c changes. | ||
30 | */ | ||
31 | |||
32 | /* | ||
33 | * find_process_by_pid - find a process with a matching PID value. | ||
34 | * used in sys_sched_set/getaffinity() in kernel/sched.c, so | ||
35 | * cloned here. | ||
36 | */ | ||
37 | static inline struct task_struct *find_process_by_pid(pid_t pid) | ||
38 | { | ||
39 | return pid ? find_task_by_pid(pid) : current; | ||
40 | } | ||
41 | |||
42 | |||
43 | /* | ||
44 | * mipsmt_sys_sched_setaffinity - set the cpu affinity of a process | ||
45 | */ | ||
46 | asmlinkage long mipsmt_sys_sched_setaffinity(pid_t pid, unsigned int len, | ||
47 | unsigned long __user *user_mask_ptr) | ||
48 | { | ||
49 | cpumask_t new_mask; | ||
50 | cpumask_t effective_mask; | ||
51 | int retval; | ||
52 | struct task_struct *p; | ||
53 | |||
54 | if (len < sizeof(new_mask)) | ||
55 | return -EINVAL; | ||
56 | |||
57 | if (copy_from_user(&new_mask, user_mask_ptr, sizeof(new_mask))) | ||
58 | return -EFAULT; | ||
59 | |||
60 | lock_cpu_hotplug(); | ||
61 | read_lock(&tasklist_lock); | ||
62 | |||
63 | p = find_process_by_pid(pid); | ||
64 | if (!p) { | ||
65 | read_unlock(&tasklist_lock); | ||
66 | unlock_cpu_hotplug(); | ||
67 | return -ESRCH; | ||
68 | } | ||
69 | |||
70 | /* | ||
71 | * It is not safe to call set_cpus_allowed with the | ||
72 | * tasklist_lock held. We will bump the task_struct's | ||
73 | * usage count and drop tasklist_lock before invoking | ||
74 | * set_cpus_allowed. | ||
75 | */ | ||
76 | get_task_struct(p); | ||
77 | |||
78 | retval = -EPERM; | ||
79 | if ((current->euid != p->euid) && (current->euid != p->uid) && | ||
80 | !capable(CAP_SYS_NICE)) { | ||
81 | read_unlock(&tasklist_lock); | ||
82 | goto out_unlock; | ||
83 | } | ||
84 | |||
85 | retval = security_task_setscheduler(p, 0, NULL); | ||
86 | if (retval) | ||
87 | goto out_unlock; | ||
88 | |||
89 | /* Record new user-specified CPU set for future reference */ | ||
90 | p->thread.user_cpus_allowed = new_mask; | ||
91 | |||
92 | /* Unlock the task list */ | ||
93 | read_unlock(&tasklist_lock); | ||
94 | |||
95 | /* Compute new global allowed CPU set if necessary */ | ||
96 | if ((p->thread.mflags & MF_FPUBOUND) | ||
97 | && cpus_intersects(new_mask, mt_fpu_cpumask)) { | ||
98 | cpus_and(effective_mask, new_mask, mt_fpu_cpumask); | ||
99 | retval = set_cpus_allowed(p, effective_mask); | ||
100 | } else { | ||
101 | p->thread.mflags &= ~MF_FPUBOUND; | ||
102 | retval = set_cpus_allowed(p, new_mask); | ||
103 | } | ||
104 | |||
105 | |||
106 | out_unlock: | ||
107 | put_task_struct(p); | ||
108 | unlock_cpu_hotplug(); | ||
109 | return retval; | ||
110 | } | ||
111 | |||
112 | /* | ||
113 | * mipsmt_sys_sched_getaffinity - get the cpu affinity of a process | ||
114 | */ | ||
115 | asmlinkage long mipsmt_sys_sched_getaffinity(pid_t pid, unsigned int len, | ||
116 | unsigned long __user *user_mask_ptr) | ||
117 | { | ||
118 | unsigned int real_len; | ||
119 | cpumask_t mask; | ||
120 | int retval; | ||
121 | struct task_struct *p; | ||
122 | |||
123 | real_len = sizeof(mask); | ||
124 | if (len < real_len) | ||
125 | return -EINVAL; | ||
126 | |||
127 | lock_cpu_hotplug(); | ||
128 | read_lock(&tasklist_lock); | ||
129 | |||
130 | retval = -ESRCH; | ||
131 | p = find_process_by_pid(pid); | ||
132 | if (!p) | ||
133 | goto out_unlock; | ||
134 | retval = security_task_getscheduler(p); | ||
135 | if (retval) | ||
136 | goto out_unlock; | ||
137 | |||
138 | cpus_and(mask, p->thread.user_cpus_allowed, cpu_possible_map); | ||
139 | |||
140 | out_unlock: | ||
141 | read_unlock(&tasklist_lock); | ||
142 | unlock_cpu_hotplug(); | ||
143 | if (retval) | ||
144 | return retval; | ||
145 | if (copy_to_user(user_mask_ptr, &mask, real_len)) | ||
146 | return -EFAULT; | ||
147 | return real_len; | ||
148 | } | ||
149 | |||
150 | |||
151 | static int __init fpaff_thresh(char *str) | ||
152 | { | ||
153 | get_option(&str, &fpaff_threshold); | ||
154 | return 1; | ||
155 | } | ||
156 | __setup("fpaff=", fpaff_thresh); | ||
157 | |||
158 | /* | ||
159 | * FPU Use Factor empirically derived from experiments on 34K | ||
160 | */ | ||
161 | #define FPUSEFACTOR 333 | ||
162 | |||
163 | static __init int mt_fp_affinity_init(void) | ||
164 | { | ||
165 | if (fpaff_threshold >= 0) { | ||
166 | mt_fpemul_threshold = fpaff_threshold; | ||
167 | } else { | ||
168 | mt_fpemul_threshold = | ||
169 | (FPUSEFACTOR * (loops_per_jiffy/(500000/HZ))) / HZ; | ||
170 | } | ||
171 | printk(KERN_DEBUG "FPU Affinity set after %ld emulations\n", | ||
172 | mt_fpemul_threshold); | ||
173 | |||
174 | return 0; | ||
175 | } | ||
176 | arch_initcall(mt_fp_affinity_init); | ||
diff --git a/arch/mips/kernel/mips-mt.c b/arch/mips/kernel/mips-mt.c index ba01800b6018..1a7d89231299 100644 --- a/arch/mips/kernel/mips-mt.c +++ b/arch/mips/kernel/mips-mt.c | |||
@@ -6,7 +6,6 @@ | |||
6 | #include <linux/device.h> | 6 | #include <linux/device.h> |
7 | #include <linux/kernel.h> | 7 | #include <linux/kernel.h> |
8 | #include <linux/sched.h> | 8 | #include <linux/sched.h> |
9 | #include <linux/cpumask.h> | ||
10 | #include <linux/module.h> | 9 | #include <linux/module.h> |
11 | #include <linux/interrupt.h> | 10 | #include <linux/interrupt.h> |
12 | #include <linux/security.h> | 11 | #include <linux/security.h> |
@@ -23,149 +22,6 @@ | |||
23 | #include <asm/cacheflush.h> | 22 | #include <asm/cacheflush.h> |
24 | 23 | ||
25 | /* | 24 | /* |
26 | * CPU mask used to set process affinity for MT VPEs/TCs with FPUs | ||
27 | */ | ||
28 | |||
29 | cpumask_t mt_fpu_cpumask; | ||
30 | |||
31 | #ifdef CONFIG_MIPS_MT_FPAFF | ||
32 | |||
33 | #include <linux/cpu.h> | ||
34 | #include <linux/delay.h> | ||
35 | #include <asm/uaccess.h> | ||
36 | |||
37 | unsigned long mt_fpemul_threshold = 0; | ||
38 | |||
39 | /* | ||
40 | * Replacement functions for the sys_sched_setaffinity() and | ||
41 | * sys_sched_getaffinity() system calls, so that we can integrate | ||
42 | * FPU affinity with the user's requested processor affinity. | ||
43 | * This code is 98% identical with the sys_sched_setaffinity() | ||
44 | * and sys_sched_getaffinity() system calls, and should be | ||
45 | * updated when kernel/sched.c changes. | ||
46 | */ | ||
47 | |||
48 | /* | ||
49 | * find_process_by_pid - find a process with a matching PID value. | ||
50 | * used in sys_sched_set/getaffinity() in kernel/sched.c, so | ||
51 | * cloned here. | ||
52 | */ | ||
53 | static inline struct task_struct *find_process_by_pid(pid_t pid) | ||
54 | { | ||
55 | return pid ? find_task_by_pid(pid) : current; | ||
56 | } | ||
57 | |||
58 | |||
59 | /* | ||
60 | * mipsmt_sys_sched_setaffinity - set the cpu affinity of a process | ||
61 | */ | ||
62 | asmlinkage long mipsmt_sys_sched_setaffinity(pid_t pid, unsigned int len, | ||
63 | unsigned long __user *user_mask_ptr) | ||
64 | { | ||
65 | cpumask_t new_mask; | ||
66 | cpumask_t effective_mask; | ||
67 | int retval; | ||
68 | struct task_struct *p; | ||
69 | |||
70 | if (len < sizeof(new_mask)) | ||
71 | return -EINVAL; | ||
72 | |||
73 | if (copy_from_user(&new_mask, user_mask_ptr, sizeof(new_mask))) | ||
74 | return -EFAULT; | ||
75 | |||
76 | lock_cpu_hotplug(); | ||
77 | read_lock(&tasklist_lock); | ||
78 | |||
79 | p = find_process_by_pid(pid); | ||
80 | if (!p) { | ||
81 | read_unlock(&tasklist_lock); | ||
82 | unlock_cpu_hotplug(); | ||
83 | return -ESRCH; | ||
84 | } | ||
85 | |||
86 | /* | ||
87 | * It is not safe to call set_cpus_allowed with the | ||
88 | * tasklist_lock held. We will bump the task_struct's | ||
89 | * usage count and drop tasklist_lock before invoking | ||
90 | * set_cpus_allowed. | ||
91 | */ | ||
92 | get_task_struct(p); | ||
93 | |||
94 | retval = -EPERM; | ||
95 | if ((current->euid != p->euid) && (current->euid != p->uid) && | ||
96 | !capable(CAP_SYS_NICE)) { | ||
97 | read_unlock(&tasklist_lock); | ||
98 | goto out_unlock; | ||
99 | } | ||
100 | |||
101 | retval = security_task_setscheduler(p, 0, NULL); | ||
102 | if (retval) | ||
103 | goto out_unlock; | ||
104 | |||
105 | /* Record new user-specified CPU set for future reference */ | ||
106 | p->thread.user_cpus_allowed = new_mask; | ||
107 | |||
108 | /* Unlock the task list */ | ||
109 | read_unlock(&tasklist_lock); | ||
110 | |||
111 | /* Compute new global allowed CPU set if necessary */ | ||
112 | if( (p->thread.mflags & MF_FPUBOUND) | ||
113 | && cpus_intersects(new_mask, mt_fpu_cpumask)) { | ||
114 | cpus_and(effective_mask, new_mask, mt_fpu_cpumask); | ||
115 | retval = set_cpus_allowed(p, effective_mask); | ||
116 | } else { | ||
117 | p->thread.mflags &= ~MF_FPUBOUND; | ||
118 | retval = set_cpus_allowed(p, new_mask); | ||
119 | } | ||
120 | |||
121 | |||
122 | out_unlock: | ||
123 | put_task_struct(p); | ||
124 | unlock_cpu_hotplug(); | ||
125 | return retval; | ||
126 | } | ||
127 | |||
128 | /* | ||
129 | * mipsmt_sys_sched_getaffinity - get the cpu affinity of a process | ||
130 | */ | ||
131 | asmlinkage long mipsmt_sys_sched_getaffinity(pid_t pid, unsigned int len, | ||
132 | unsigned long __user *user_mask_ptr) | ||
133 | { | ||
134 | unsigned int real_len; | ||
135 | cpumask_t mask; | ||
136 | int retval; | ||
137 | struct task_struct *p; | ||
138 | |||
139 | real_len = sizeof(mask); | ||
140 | if (len < real_len) | ||
141 | return -EINVAL; | ||
142 | |||
143 | lock_cpu_hotplug(); | ||
144 | read_lock(&tasklist_lock); | ||
145 | |||
146 | retval = -ESRCH; | ||
147 | p = find_process_by_pid(pid); | ||
148 | if (!p) | ||
149 | goto out_unlock; | ||
150 | retval = security_task_getscheduler(p); | ||
151 | if (retval) | ||
152 | goto out_unlock; | ||
153 | |||
154 | cpus_and(mask, p->thread.user_cpus_allowed, cpu_possible_map); | ||
155 | |||
156 | out_unlock: | ||
157 | read_unlock(&tasklist_lock); | ||
158 | unlock_cpu_hotplug(); | ||
159 | if (retval) | ||
160 | return retval; | ||
161 | if (copy_to_user(user_mask_ptr, &mask, real_len)) | ||
162 | return -EFAULT; | ||
163 | return real_len; | ||
164 | } | ||
165 | |||
166 | #endif /* CONFIG_MIPS_MT_FPAFF */ | ||
167 | |||
168 | /* | ||
169 | * Dump new MIPS MT state for the core. Does not leave TCs halted. | 25 | * Dump new MIPS MT state for the core. Does not leave TCs halted. |
170 | * Takes an argument which taken to be a pre-call MVPControl value. | 26 | * Takes an argument which taken to be a pre-call MVPControl value. |
171 | */ | 27 | */ |
@@ -195,27 +51,31 @@ void mips_mt_regdump(unsigned long mvpctl) | |||
195 | nvpe = ((mvpconf0 & MVPCONF0_PVPE) >> MVPCONF0_PVPE_SHIFT) + 1; | 51 | nvpe = ((mvpconf0 & MVPCONF0_PVPE) >> MVPCONF0_PVPE_SHIFT) + 1; |
196 | ntc = ((mvpconf0 & MVPCONF0_PTC) >> MVPCONF0_PTC_SHIFT) + 1; | 52 | ntc = ((mvpconf0 & MVPCONF0_PTC) >> MVPCONF0_PTC_SHIFT) + 1; |
197 | printk("-- per-VPE State --\n"); | 53 | printk("-- per-VPE State --\n"); |
198 | for(i = 0; i < nvpe; i++) { | 54 | for (i = 0; i < nvpe; i++) { |
199 | for(tc = 0; tc < ntc; tc++) { | 55 | for (tc = 0; tc < ntc; tc++) { |
200 | settc(tc); | 56 | settc(tc); |
201 | if((read_tc_c0_tcbind() & TCBIND_CURVPE) == i) { | 57 | if ((read_tc_c0_tcbind() & TCBIND_CURVPE) == i) { |
202 | printk(" VPE %d\n", i); | 58 | printk(" VPE %d\n", i); |
203 | printk(" VPEControl : %08lx\n", read_vpe_c0_vpecontrol()); | 59 | printk(" VPEControl : %08lx\n", |
204 | printk(" VPEConf0 : %08lx\n", read_vpe_c0_vpeconf0()); | 60 | read_vpe_c0_vpecontrol()); |
205 | printk(" VPE%d.Status : %08lx\n", | 61 | printk(" VPEConf0 : %08lx\n", |
206 | i, read_vpe_c0_status()); | 62 | read_vpe_c0_vpeconf0()); |
207 | printk(" VPE%d.EPC : %08lx\n", i, read_vpe_c0_epc()); | 63 | printk(" VPE%d.Status : %08lx\n", |
208 | printk(" VPE%d.Cause : %08lx\n", i, read_vpe_c0_cause()); | 64 | i, read_vpe_c0_status()); |
209 | printk(" VPE%d.Config7 : %08lx\n", | 65 | printk(" VPE%d.EPC : %08lx\n", |
210 | i, read_vpe_c0_config7()); | 66 | i, read_vpe_c0_epc()); |
211 | break; /* Next VPE */ | 67 | printk(" VPE%d.Cause : %08lx\n", |
68 | i, read_vpe_c0_cause()); | ||
69 | printk(" VPE%d.Config7 : %08lx\n", | ||
70 | i, read_vpe_c0_config7()); | ||
71 | break; /* Next VPE */ | ||
72 | } | ||
212 | } | 73 | } |
213 | } | ||
214 | } | 74 | } |
215 | printk("-- per-TC State --\n"); | 75 | printk("-- per-TC State --\n"); |
216 | for(tc = 0; tc < ntc; tc++) { | 76 | for (tc = 0; tc < ntc; tc++) { |
217 | settc(tc); | 77 | settc(tc); |
218 | if(read_tc_c0_tcbind() == read_c0_tcbind()) { | 78 | if (read_tc_c0_tcbind() == read_c0_tcbind()) { |
219 | /* Are we dumping ourself? */ | 79 | /* Are we dumping ourself? */ |
220 | haltval = 0; /* Then we're not halted, and mustn't be */ | 80 | haltval = 0; /* Then we're not halted, and mustn't be */ |
221 | tcstatval = flags; /* And pre-dump TCStatus is flags */ | 81 | tcstatval = flags; /* And pre-dump TCStatus is flags */ |
@@ -310,17 +170,6 @@ static int __init ndflush(char *s) | |||
310 | return 1; | 170 | return 1; |
311 | } | 171 | } |
312 | __setup("ndflush=", ndflush); | 172 | __setup("ndflush=", ndflush); |
313 | #ifdef CONFIG_MIPS_MT_FPAFF | ||
314 | static int fpaff_threshold = -1; | ||
315 | |||
316 | static int __init fpaff_thresh(char *str) | ||
317 | { | ||
318 | get_option(&str, &fpaff_threshold); | ||
319 | return 1; | ||
320 | } | ||
321 | |||
322 | __setup("fpaff=", fpaff_thresh); | ||
323 | #endif /* CONFIG_MIPS_MT_FPAFF */ | ||
324 | 173 | ||
325 | static unsigned int itc_base = 0; | 174 | static unsigned int itc_base = 0; |
326 | 175 | ||
@@ -376,20 +225,6 @@ void mips_mt_set_cpuoptions(void) | |||
376 | if (mt_n_dflushes != 1) | 225 | if (mt_n_dflushes != 1) |
377 | printk("D-Cache Flushes Repeated %d times\n", mt_n_dflushes); | 226 | printk("D-Cache Flushes Repeated %d times\n", mt_n_dflushes); |
378 | 227 | ||
379 | #ifdef CONFIG_MIPS_MT_FPAFF | ||
380 | /* FPU Use Factor empirically derived from experiments on 34K */ | ||
381 | #define FPUSEFACTOR 333 | ||
382 | |||
383 | if (fpaff_threshold >= 0) { | ||
384 | mt_fpemul_threshold = fpaff_threshold; | ||
385 | } else { | ||
386 | mt_fpemul_threshold = | ||
387 | (FPUSEFACTOR * (loops_per_jiffy/(500000/HZ))) / HZ; | ||
388 | } | ||
389 | printk("FPU Affinity set after %ld emulations\n", | ||
390 | mt_fpemul_threshold); | ||
391 | #endif /* CONFIG_MIPS_MT_FPAFF */ | ||
392 | |||
393 | if (itc_base != 0) { | 228 | if (itc_base != 0) { |
394 | /* | 229 | /* |
395 | * Configure ITC mapping. This code is very | 230 | * Configure ITC mapping. This code is very |
diff --git a/arch/mips/kernel/proc.c b/arch/mips/kernel/proc.c index 5ddc2e9deecf..ec04f5a1a5ea 100644 --- a/arch/mips/kernel/proc.c +++ b/arch/mips/kernel/proc.c | |||
@@ -14,7 +14,6 @@ | |||
14 | #include <asm/cpu-features.h> | 14 | #include <asm/cpu-features.h> |
15 | #include <asm/mipsregs.h> | 15 | #include <asm/mipsregs.h> |
16 | #include <asm/processor.h> | 16 | #include <asm/processor.h> |
17 | #include <asm/watch.h> | ||
18 | 17 | ||
19 | unsigned int vced_count, vcei_count; | 18 | unsigned int vced_count, vcei_count; |
20 | 19 | ||
@@ -84,6 +83,7 @@ static const char *cpu_name[] = { | |||
84 | [CPU_VR4181A] = "NEC VR4181A", | 83 | [CPU_VR4181A] = "NEC VR4181A", |
85 | [CPU_SR71000] = "Sandcraft SR71000", | 84 | [CPU_SR71000] = "Sandcraft SR71000", |
86 | [CPU_PR4450] = "Philips PR4450", | 85 | [CPU_PR4450] = "Philips PR4450", |
86 | [CPU_LOONGSON2] = "ICT Loongson-2", | ||
87 | }; | 87 | }; |
88 | 88 | ||
89 | 89 | ||
diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c index 6bdfb5a9fa1a..8f4cf27c7157 100644 --- a/arch/mips/kernel/process.c +++ b/arch/mips/kernel/process.c | |||
@@ -46,7 +46,7 @@ | |||
46 | * power and have a low exit latency (ie sit in a loop waiting for somebody to | 46 | * power and have a low exit latency (ie sit in a loop waiting for somebody to |
47 | * say that they'd like to reschedule) | 47 | * say that they'd like to reschedule) |
48 | */ | 48 | */ |
49 | ATTRIB_NORET void cpu_idle(void) | 49 | void __noreturn cpu_idle(void) |
50 | { | 50 | { |
51 | /* endless idle loop with no priority at all */ | 51 | /* endless idle loop with no priority at all */ |
52 | while (1) { | 52 | while (1) { |
@@ -213,7 +213,7 @@ int dump_task_fpu (struct task_struct *t, elf_fpregset_t *fpr) | |||
213 | /* | 213 | /* |
214 | * Create a kernel thread | 214 | * Create a kernel thread |
215 | */ | 215 | */ |
216 | static ATTRIB_NORET void kernel_thread_helper(void *arg, int (*fn)(void *)) | 216 | static void __noreturn kernel_thread_helper(void *arg, int (*fn)(void *)) |
217 | { | 217 | { |
218 | do_exit(fn(arg)); | 218 | do_exit(fn(arg)); |
219 | } | 219 | } |
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c index 4975da0bfb63..316685fca059 100644 --- a/arch/mips/kernel/setup.c +++ b/arch/mips/kernel/setup.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <linux/highmem.h> | 20 | #include <linux/highmem.h> |
21 | #include <linux/console.h> | 21 | #include <linux/console.h> |
22 | #include <linux/pfn.h> | 22 | #include <linux/pfn.h> |
23 | #include <linux/debugfs.h> | ||
23 | 24 | ||
24 | #include <asm/addrspace.h> | 25 | #include <asm/addrspace.h> |
25 | #include <asm/bootinfo.h> | 26 | #include <asm/bootinfo.h> |
@@ -574,3 +575,18 @@ __setup("nodsp", dsp_disable); | |||
574 | 575 | ||
575 | unsigned long kernelsp[NR_CPUS]; | 576 | unsigned long kernelsp[NR_CPUS]; |
576 | unsigned long fw_arg0, fw_arg1, fw_arg2, fw_arg3; | 577 | unsigned long fw_arg0, fw_arg1, fw_arg2, fw_arg3; |
578 | |||
579 | #ifdef CONFIG_DEBUG_FS | ||
580 | struct dentry *mips_debugfs_dir; | ||
581 | static int __init debugfs_mips(void) | ||
582 | { | ||
583 | struct dentry *d; | ||
584 | |||
585 | d = debugfs_create_dir("mips", NULL); | ||
586 | if (IS_ERR(d)) | ||
587 | return PTR_ERR(d); | ||
588 | mips_debugfs_dir = d; | ||
589 | return 0; | ||
590 | } | ||
591 | arch_initcall(debugfs_mips); | ||
592 | #endif | ||
diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c index a1b017f2dbb3..be7362bc2c9a 100644 --- a/arch/mips/kernel/smp.c +++ b/arch/mips/kernel/smp.c | |||
@@ -52,7 +52,7 @@ EXPORT_SYMBOL(phys_cpu_present_map); | |||
52 | EXPORT_SYMBOL(cpu_online_map); | 52 | EXPORT_SYMBOL(cpu_online_map); |
53 | 53 | ||
54 | extern void __init calibrate_delay(void); | 54 | extern void __init calibrate_delay(void); |
55 | extern ATTRIB_NORET void cpu_idle(void); | 55 | extern void cpu_idle(void); |
56 | 56 | ||
57 | /* | 57 | /* |
58 | * First C code run on the secondary CPUs after being started up by | 58 | * First C code run on the secondary CPUs after being started up by |
diff --git a/arch/mips/kernel/smtc.c b/arch/mips/kernel/smtc.c index 046b03b1705a..342d873b2ecc 100644 --- a/arch/mips/kernel/smtc.c +++ b/arch/mips/kernel/smtc.c | |||
@@ -1104,7 +1104,7 @@ void smtc_idle_loop_hook(void) | |||
1104 | mtflags = dmt(); | 1104 | mtflags = dmt(); |
1105 | pdb_msg = &id_ho_db_msg[0]; | 1105 | pdb_msg = &id_ho_db_msg[0]; |
1106 | im = read_c0_status(); | 1106 | im = read_c0_status(); |
1107 | vpe = cpu_data[smp_processor_id()].vpe_id; | 1107 | vpe = current_cpu_data.vpe_id; |
1108 | for (bit = 0; bit < 8; bit++) { | 1108 | for (bit = 0; bit < 8; bit++) { |
1109 | /* | 1109 | /* |
1110 | * In current prototype, I/O interrupts | 1110 | * In current prototype, I/O interrupts |
diff --git a/arch/mips/kernel/syscall.c b/arch/mips/kernel/syscall.c index 9dd5a2df8eac..b947c61c0cc8 100644 --- a/arch/mips/kernel/syscall.c +++ b/arch/mips/kernel/syscall.c | |||
@@ -272,9 +272,8 @@ asmlinkage int sys_set_thread_area(unsigned long addr) | |||
272 | struct thread_info *ti = task_thread_info(current); | 272 | struct thread_info *ti = task_thread_info(current); |
273 | 273 | ||
274 | ti->tp_value = addr; | 274 | ti->tp_value = addr; |
275 | 275 | if (cpu_has_userlocal) | |
276 | /* If some future MIPS implementation has this register in hardware, | 276 | write_c0_userlocal(addr); |
277 | * we will need to update it here (and in context switches). */ | ||
278 | 277 | ||
279 | return 0; | 278 | return 0; |
280 | } | 279 | } |
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c index 3ea7863c4519..80ea4fa95bd9 100644 --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c | |||
@@ -39,7 +39,6 @@ | |||
39 | #include <asm/traps.h> | 39 | #include <asm/traps.h> |
40 | #include <asm/uaccess.h> | 40 | #include <asm/uaccess.h> |
41 | #include <asm/mmu_context.h> | 41 | #include <asm/mmu_context.h> |
42 | #include <asm/watch.h> | ||
43 | #include <asm/types.h> | 42 | #include <asm/types.h> |
44 | #include <asm/stacktrace.h> | 43 | #include <asm/stacktrace.h> |
45 | 44 | ||
@@ -70,6 +69,7 @@ extern asmlinkage void handle_reserved(void); | |||
70 | extern int fpu_emulator_cop1Handler(struct pt_regs *xcp, | 69 | extern int fpu_emulator_cop1Handler(struct pt_regs *xcp, |
71 | struct mips_fpu_struct *ctx, int has_fpu); | 70 | struct mips_fpu_struct *ctx, int has_fpu); |
72 | 71 | ||
72 | void (*board_watchpoint_handler)(struct pt_regs *regs); | ||
73 | void (*board_be_init)(void); | 73 | void (*board_be_init)(void); |
74 | int (*board_be_handler)(struct pt_regs *regs, int is_fixup); | 74 | int (*board_be_handler)(struct pt_regs *regs, int is_fixup); |
75 | void (*board_nmi_handler_setup)(void); | 75 | void (*board_nmi_handler_setup)(void); |
@@ -311,7 +311,7 @@ void show_registers(struct pt_regs *regs) | |||
311 | 311 | ||
312 | static DEFINE_SPINLOCK(die_lock); | 312 | static DEFINE_SPINLOCK(die_lock); |
313 | 313 | ||
314 | NORET_TYPE void ATTRIB_NORET die(const char * str, struct pt_regs * regs) | 314 | void __noreturn die(const char * str, struct pt_regs * regs) |
315 | { | 315 | { |
316 | static int die_counter; | 316 | static int die_counter; |
317 | #ifdef CONFIG_MIPS_MT_SMTC | 317 | #ifdef CONFIG_MIPS_MT_SMTC |
@@ -753,6 +753,33 @@ asmlinkage void do_ri(struct pt_regs *regs) | |||
753 | force_sig(SIGILL, current); | 753 | force_sig(SIGILL, current); |
754 | } | 754 | } |
755 | 755 | ||
756 | /* | ||
757 | * MIPS MT processors may have fewer FPU contexts than CPU threads. If we've | ||
758 | * emulated more than some threshold number of instructions, force migration to | ||
759 | * a "CPU" that has FP support. | ||
760 | */ | ||
761 | static void mt_ase_fp_affinity(void) | ||
762 | { | ||
763 | #ifdef CONFIG_MIPS_MT_FPAFF | ||
764 | if (mt_fpemul_threshold > 0 && | ||
765 | ((current->thread.emulated_fp++ > mt_fpemul_threshold))) { | ||
766 | /* | ||
767 | * If there's no FPU present, or if the application has already | ||
768 | * restricted the allowed set to exclude any CPUs with FPUs, | ||
769 | * we'll skip the procedure. | ||
770 | */ | ||
771 | if (cpus_intersects(current->cpus_allowed, mt_fpu_cpumask)) { | ||
772 | cpumask_t tmask; | ||
773 | |||
774 | cpus_and(tmask, current->thread.user_cpus_allowed, | ||
775 | mt_fpu_cpumask); | ||
776 | set_cpus_allowed(current, tmask); | ||
777 | current->thread.mflags |= MF_FPUBOUND; | ||
778 | } | ||
779 | } | ||
780 | #endif /* CONFIG_MIPS_MT_FPAFF */ | ||
781 | } | ||
782 | |||
756 | asmlinkage void do_cpu(struct pt_regs *regs) | 783 | asmlinkage void do_cpu(struct pt_regs *regs) |
757 | { | 784 | { |
758 | unsigned int cpid; | 785 | unsigned int cpid; |
@@ -786,36 +813,8 @@ asmlinkage void do_cpu(struct pt_regs *regs) | |||
786 | ¤t->thread.fpu, 0); | 813 | ¤t->thread.fpu, 0); |
787 | if (sig) | 814 | if (sig) |
788 | force_sig(sig, current); | 815 | force_sig(sig, current); |
789 | #ifdef CONFIG_MIPS_MT_FPAFF | 816 | else |
790 | else { | 817 | mt_ase_fp_affinity(); |
791 | /* | ||
792 | * MIPS MT processors may have fewer FPU contexts | ||
793 | * than CPU threads. If we've emulated more than | ||
794 | * some threshold number of instructions, force | ||
795 | * migration to a "CPU" that has FP support. | ||
796 | */ | ||
797 | if(mt_fpemul_threshold > 0 | ||
798 | && ((current->thread.emulated_fp++ | ||
799 | > mt_fpemul_threshold))) { | ||
800 | /* | ||
801 | * If there's no FPU present, or if the | ||
802 | * application has already restricted | ||
803 | * the allowed set to exclude any CPUs | ||
804 | * with FPUs, we'll skip the procedure. | ||
805 | */ | ||
806 | if (cpus_intersects(current->cpus_allowed, | ||
807 | mt_fpu_cpumask)) { | ||
808 | cpumask_t tmask; | ||
809 | |||
810 | cpus_and(tmask, | ||
811 | current->thread.user_cpus_allowed, | ||
812 | mt_fpu_cpumask); | ||
813 | set_cpus_allowed(current, tmask); | ||
814 | current->thread.mflags |= MF_FPUBOUND; | ||
815 | } | ||
816 | } | ||
817 | } | ||
818 | #endif /* CONFIG_MIPS_MT_FPAFF */ | ||
819 | } | 818 | } |
820 | 819 | ||
821 | return; | 820 | return; |
@@ -835,6 +834,11 @@ asmlinkage void do_mdmx(struct pt_regs *regs) | |||
835 | 834 | ||
836 | asmlinkage void do_watch(struct pt_regs *regs) | 835 | asmlinkage void do_watch(struct pt_regs *regs) |
837 | { | 836 | { |
837 | if (board_watchpoint_handler) { | ||
838 | (*board_watchpoint_handler)(regs); | ||
839 | return; | ||
840 | } | ||
841 | |||
838 | /* | 842 | /* |
839 | * We use the watch exception where available to detect stack | 843 | * We use the watch exception where available to detect stack |
840 | * overflows. | 844 | * overflows. |
@@ -1343,7 +1347,14 @@ void __init per_cpu_trap_init(void) | |||
1343 | set_c0_status(ST0_MX); | 1347 | set_c0_status(ST0_MX); |
1344 | 1348 | ||
1345 | #ifdef CONFIG_CPU_MIPSR2 | 1349 | #ifdef CONFIG_CPU_MIPSR2 |
1346 | write_c0_hwrena (0x0000000f); /* Allow rdhwr to all registers */ | 1350 | if (cpu_has_mips_r2) { |
1351 | unsigned int enable = 0x0000000f; | ||
1352 | |||
1353 | if (cpu_has_userlocal) | ||
1354 | enable |= (1 << 29); | ||
1355 | |||
1356 | write_c0_hwrena(enable); | ||
1357 | } | ||
1347 | #endif | 1358 | #endif |
1348 | 1359 | ||
1349 | #ifdef CONFIG_MIPS_MT_SMTC | 1360 | #ifdef CONFIG_MIPS_MT_SMTC |
diff --git a/arch/mips/kernel/unaligned.c b/arch/mips/kernel/unaligned.c index 18c4a3c45a31..8b9c34ffae18 100644 --- a/arch/mips/kernel/unaligned.c +++ b/arch/mips/kernel/unaligned.c | |||
@@ -77,6 +77,7 @@ | |||
77 | #include <linux/signal.h> | 77 | #include <linux/signal.h> |
78 | #include <linux/smp.h> | 78 | #include <linux/smp.h> |
79 | #include <linux/sched.h> | 79 | #include <linux/sched.h> |
80 | #include <linux/debugfs.h> | ||
80 | #include <asm/asm.h> | 81 | #include <asm/asm.h> |
81 | #include <asm/branch.h> | 82 | #include <asm/branch.h> |
82 | #include <asm/byteorder.h> | 83 | #include <asm/byteorder.h> |
@@ -87,9 +88,18 @@ | |||
87 | #define STR(x) __STR(x) | 88 | #define STR(x) __STR(x) |
88 | #define __STR(x) #x | 89 | #define __STR(x) #x |
89 | 90 | ||
90 | #ifdef CONFIG_PROC_FS | 91 | enum { |
91 | unsigned long unaligned_instructions; | 92 | UNALIGNED_ACTION_QUIET, |
93 | UNALIGNED_ACTION_SIGNAL, | ||
94 | UNALIGNED_ACTION_SHOW, | ||
95 | }; | ||
96 | #ifdef CONFIG_DEBUG_FS | ||
97 | static u32 unaligned_instructions; | ||
98 | static u32 unaligned_action; | ||
99 | #else | ||
100 | #define unaligned_action UNALIGNED_ACTION_QUIET | ||
92 | #endif | 101 | #endif |
102 | extern void show_registers(struct pt_regs *regs); | ||
93 | 103 | ||
94 | static inline int emulate_load_store_insn(struct pt_regs *regs, | 104 | static inline int emulate_load_store_insn(struct pt_regs *regs, |
95 | void __user *addr, unsigned int __user *pc, | 105 | void __user *addr, unsigned int __user *pc, |
@@ -459,7 +469,7 @@ static inline int emulate_load_store_insn(struct pt_regs *regs, | |||
459 | goto sigill; | 469 | goto sigill; |
460 | } | 470 | } |
461 | 471 | ||
462 | #ifdef CONFIG_PROC_FS | 472 | #ifdef CONFIG_DEBUG_FS |
463 | unaligned_instructions++; | 473 | unaligned_instructions++; |
464 | #endif | 474 | #endif |
465 | 475 | ||
@@ -516,6 +526,10 @@ asmlinkage void do_ade(struct pt_regs *regs) | |||
516 | pc = (unsigned int __user *) exception_epc(regs); | 526 | pc = (unsigned int __user *) exception_epc(regs); |
517 | if (user_mode(regs) && (current->thread.mflags & MF_FIXADE) == 0) | 527 | if (user_mode(regs) && (current->thread.mflags & MF_FIXADE) == 0) |
518 | goto sigbus; | 528 | goto sigbus; |
529 | if (unaligned_action == UNALIGNED_ACTION_SIGNAL) | ||
530 | goto sigbus; | ||
531 | else if (unaligned_action == UNALIGNED_ACTION_SHOW) | ||
532 | show_registers(regs); | ||
519 | 533 | ||
520 | /* | 534 | /* |
521 | * Do branch emulation only if we didn't forward the exception. | 535 | * Do branch emulation only if we didn't forward the exception. |
@@ -546,3 +560,24 @@ sigbus: | |||
546 | * XXX On return from the signal handler we should advance the epc | 560 | * XXX On return from the signal handler we should advance the epc |
547 | */ | 561 | */ |
548 | } | 562 | } |
563 | |||
564 | #ifdef CONFIG_DEBUG_FS | ||
565 | extern struct dentry *mips_debugfs_dir; | ||
566 | static int __init debugfs_unaligned(void) | ||
567 | { | ||
568 | struct dentry *d; | ||
569 | |||
570 | if (!mips_debugfs_dir) | ||
571 | return -ENODEV; | ||
572 | d = debugfs_create_u32("unaligned_instructions", S_IRUGO, | ||
573 | mips_debugfs_dir, &unaligned_instructions); | ||
574 | if (IS_ERR(d)) | ||
575 | return PTR_ERR(d); | ||
576 | d = debugfs_create_u32("unaligned_action", S_IRUGO | S_IWUSR, | ||
577 | mips_debugfs_dir, &unaligned_action); | ||
578 | if (IS_ERR(d)) | ||
579 | return PTR_ERR(d); | ||
580 | return 0; | ||
581 | } | ||
582 | __initcall(debugfs_unaligned); | ||
583 | #endif | ||
diff --git a/arch/mips/lasat/Kconfig b/arch/mips/lasat/Kconfig deleted file mode 100644 index 1d2ee8a9be13..000000000000 --- a/arch/mips/lasat/Kconfig +++ /dev/null | |||
@@ -1,15 +0,0 @@ | |||
1 | config PICVUE | ||
2 | tristate "PICVUE LCD display driver" | ||
3 | depends on LASAT | ||
4 | |||
5 | config PICVUE_PROC | ||
6 | tristate "PICVUE LCD display driver /proc interface" | ||
7 | depends on PICVUE | ||
8 | |||
9 | config DS1603 | ||
10 | bool "DS1603 RTC driver" | ||
11 | depends on LASAT | ||
12 | |||
13 | config LASAT_SYSCTL | ||
14 | bool "LASAT sysctl interface" | ||
15 | depends on LASAT | ||
diff --git a/arch/mips/lasat/Makefile b/arch/mips/lasat/Makefile deleted file mode 100644 index 99f5046fdf49..000000000000 --- a/arch/mips/lasat/Makefile +++ /dev/null | |||
@@ -1,14 +0,0 @@ | |||
1 | # | ||
2 | # Makefile for the LASAT specific kernel interface routines under Linux. | ||
3 | # | ||
4 | |||
5 | obj-y += reset.o setup.o prom.o lasat_board.o \ | ||
6 | at93c.o interrupt.o | ||
7 | |||
8 | obj-$(CONFIG_LASAT_SYSCTL) += sysctl.o | ||
9 | obj-$(CONFIG_DS1603) += ds1603.o | ||
10 | obj-$(CONFIG_PICVUE) += picvue.o | ||
11 | obj-$(CONFIG_PICVUE_PROC) += picvue_proc.o | ||
12 | |||
13 | clean: | ||
14 | make -C image clean | ||
diff --git a/arch/mips/lasat/at93c.c b/arch/mips/lasat/at93c.c deleted file mode 100644 index ca26e554615e..000000000000 --- a/arch/mips/lasat/at93c.c +++ /dev/null | |||
@@ -1,148 +0,0 @@ | |||
1 | /* | ||
2 | * Atmel AT93C46 serial eeprom driver | ||
3 | * | ||
4 | * Brian Murphy <brian.murphy@eicon.com> | ||
5 | * | ||
6 | */ | ||
7 | #include <linux/kernel.h> | ||
8 | #include <linux/delay.h> | ||
9 | #include <asm/lasat/lasat.h> | ||
10 | #include <linux/module.h> | ||
11 | #include <linux/init.h> | ||
12 | |||
13 | #include "at93c.h" | ||
14 | |||
15 | #define AT93C_ADDR_SHIFT 7 | ||
16 | #define AT93C_ADDR_MAX ((1 << AT93C_ADDR_SHIFT) - 1) | ||
17 | #define AT93C_RCMD (0x6 << AT93C_ADDR_SHIFT) | ||
18 | #define AT93C_WCMD (0x5 << AT93C_ADDR_SHIFT) | ||
19 | #define AT93C_WENCMD 0x260 | ||
20 | #define AT93C_WDSCMD 0x200 | ||
21 | |||
22 | struct at93c_defs *at93c; | ||
23 | |||
24 | static void at93c_reg_write(u32 val) | ||
25 | { | ||
26 | *at93c->reg = val; | ||
27 | } | ||
28 | |||
29 | static u32 at93c_reg_read(void) | ||
30 | { | ||
31 | u32 tmp = *at93c->reg; | ||
32 | return tmp; | ||
33 | } | ||
34 | |||
35 | static u32 at93c_datareg_read(void) | ||
36 | { | ||
37 | u32 tmp = *at93c->rdata_reg; | ||
38 | return tmp; | ||
39 | } | ||
40 | |||
41 | static void at93c_cycle_clk(u32 data) | ||
42 | { | ||
43 | at93c_reg_write(data | at93c->clk); | ||
44 | lasat_ndelay(250); | ||
45 | at93c_reg_write(data & ~at93c->clk); | ||
46 | lasat_ndelay(250); | ||
47 | } | ||
48 | |||
49 | static void at93c_write_databit(u8 bit) | ||
50 | { | ||
51 | u32 data = at93c_reg_read(); | ||
52 | if (bit) | ||
53 | data |= 1 << at93c->wdata_shift; | ||
54 | else | ||
55 | data &= ~(1 << at93c->wdata_shift); | ||
56 | |||
57 | at93c_reg_write(data); | ||
58 | lasat_ndelay(100); | ||
59 | at93c_cycle_clk(data); | ||
60 | } | ||
61 | |||
62 | static unsigned int at93c_read_databit(void) | ||
63 | { | ||
64 | u32 data; | ||
65 | |||
66 | at93c_cycle_clk(at93c_reg_read()); | ||
67 | data = (at93c_datareg_read() >> at93c->rdata_shift) & 1; | ||
68 | return data; | ||
69 | } | ||
70 | |||
71 | static u8 at93c_read_byte(void) | ||
72 | { | ||
73 | int i; | ||
74 | u8 data = 0; | ||
75 | |||
76 | for (i = 0; i<=7; i++) { | ||
77 | data <<= 1; | ||
78 | data |= at93c_read_databit(); | ||
79 | } | ||
80 | return data; | ||
81 | } | ||
82 | |||
83 | static void at93c_write_bits(u32 data, int size) | ||
84 | { | ||
85 | int i; | ||
86 | int shift = size - 1; | ||
87 | u32 mask = (1 << shift); | ||
88 | |||
89 | for (i = 0; i < size; i++) { | ||
90 | at93c_write_databit((data & mask) >> shift); | ||
91 | data <<= 1; | ||
92 | } | ||
93 | } | ||
94 | |||
95 | static void at93c_init_op(void) | ||
96 | { | ||
97 | at93c_reg_write((at93c_reg_read() | at93c->cs) & ~at93c->clk & ~(1 << at93c->rdata_shift)); | ||
98 | lasat_ndelay(50); | ||
99 | } | ||
100 | |||
101 | static void at93c_end_op(void) | ||
102 | { | ||
103 | at93c_reg_write(at93c_reg_read() & ~at93c->cs); | ||
104 | lasat_ndelay(250); | ||
105 | } | ||
106 | |||
107 | static void at93c_wait(void) | ||
108 | { | ||
109 | at93c_init_op(); | ||
110 | while (!at93c_read_databit()) | ||
111 | ; | ||
112 | at93c_end_op(); | ||
113 | }; | ||
114 | |||
115 | static void at93c_disable_wp(void) | ||
116 | { | ||
117 | at93c_init_op(); | ||
118 | at93c_write_bits(AT93C_WENCMD, 10); | ||
119 | at93c_end_op(); | ||
120 | } | ||
121 | |||
122 | static void at93c_enable_wp(void) | ||
123 | { | ||
124 | at93c_init_op(); | ||
125 | at93c_write_bits(AT93C_WDSCMD, 10); | ||
126 | at93c_end_op(); | ||
127 | } | ||
128 | |||
129 | u8 at93c_read(u8 addr) | ||
130 | { | ||
131 | u8 byte; | ||
132 | at93c_init_op(); | ||
133 | at93c_write_bits((addr & AT93C_ADDR_MAX)|AT93C_RCMD, 10); | ||
134 | byte = at93c_read_byte(); | ||
135 | at93c_end_op(); | ||
136 | return byte; | ||
137 | } | ||
138 | |||
139 | void at93c_write(u8 addr, u8 data) | ||
140 | { | ||
141 | at93c_disable_wp(); | ||
142 | at93c_init_op(); | ||
143 | at93c_write_bits((addr & AT93C_ADDR_MAX)|AT93C_WCMD, 10); | ||
144 | at93c_write_bits(data, 8); | ||
145 | at93c_end_op(); | ||
146 | at93c_wait(); | ||
147 | at93c_enable_wp(); | ||
148 | } | ||
diff --git a/arch/mips/lasat/at93c.h b/arch/mips/lasat/at93c.h deleted file mode 100644 index cfe2f99b1d44..000000000000 --- a/arch/mips/lasat/at93c.h +++ /dev/null | |||
@@ -1,18 +0,0 @@ | |||
1 | /* | ||
2 | * Atmel AT93C46 serial eeprom driver | ||
3 | * | ||
4 | * Brian Murphy <brian.murphy@eicon.com> | ||
5 | * | ||
6 | */ | ||
7 | |||
8 | extern struct at93c_defs { | ||
9 | volatile u32 *reg; | ||
10 | volatile u32 *rdata_reg; | ||
11 | int rdata_shift; | ||
12 | int wdata_shift; | ||
13 | u32 cs; | ||
14 | u32 clk; | ||
15 | } *at93c; | ||
16 | |||
17 | u8 at93c_read(u8 addr); | ||
18 | void at93c_write(u8 addr, u8 data); | ||
diff --git a/arch/mips/lasat/ds1603.c b/arch/mips/lasat/ds1603.c deleted file mode 100644 index 7dced67c55eb..000000000000 --- a/arch/mips/lasat/ds1603.c +++ /dev/null | |||
@@ -1,183 +0,0 @@ | |||
1 | /* | ||
2 | * Dallas Semiconductors 1603 RTC driver | ||
3 | * | ||
4 | * Brian Murphy <brian@murphy.dk> | ||
5 | * | ||
6 | */ | ||
7 | #include <linux/kernel.h> | ||
8 | #include <asm/lasat/lasat.h> | ||
9 | #include <linux/delay.h> | ||
10 | #include <asm/lasat/ds1603.h> | ||
11 | #include <asm/time.h> | ||
12 | |||
13 | #include "ds1603.h" | ||
14 | |||
15 | #define READ_TIME_CMD 0x81 | ||
16 | #define SET_TIME_CMD 0x80 | ||
17 | #define TRIMMER_SET_CMD 0xC0 | ||
18 | #define TRIMMER_VALUE_MASK 0x38 | ||
19 | #define TRIMMER_SHIFT 3 | ||
20 | |||
21 | struct ds_defs *ds1603 = NULL; | ||
22 | |||
23 | /* HW specific register functions */ | ||
24 | static void rtc_reg_write(unsigned long val) | ||
25 | { | ||
26 | *ds1603->reg = val; | ||
27 | } | ||
28 | |||
29 | static unsigned long rtc_reg_read(void) | ||
30 | { | ||
31 | unsigned long tmp = *ds1603->reg; | ||
32 | return tmp; | ||
33 | } | ||
34 | |||
35 | static unsigned long rtc_datareg_read(void) | ||
36 | { | ||
37 | unsigned long tmp = *ds1603->data_reg; | ||
38 | return tmp; | ||
39 | } | ||
40 | |||
41 | static void rtc_nrst_high(void) | ||
42 | { | ||
43 | rtc_reg_write(rtc_reg_read() | ds1603->rst); | ||
44 | } | ||
45 | |||
46 | static void rtc_nrst_low(void) | ||
47 | { | ||
48 | rtc_reg_write(rtc_reg_read() & ~ds1603->rst); | ||
49 | } | ||
50 | |||
51 | static void rtc_cycle_clock(unsigned long data) | ||
52 | { | ||
53 | data |= ds1603->clk; | ||
54 | rtc_reg_write(data); | ||
55 | lasat_ndelay(250); | ||
56 | if (ds1603->data_reversed) | ||
57 | data &= ~ds1603->data; | ||
58 | else | ||
59 | data |= ds1603->data; | ||
60 | data &= ~ds1603->clk; | ||
61 | rtc_reg_write(data); | ||
62 | lasat_ndelay(250 + ds1603->huge_delay); | ||
63 | } | ||
64 | |||
65 | static void rtc_write_databit(unsigned int bit) | ||
66 | { | ||
67 | unsigned long data = rtc_reg_read(); | ||
68 | if (ds1603->data_reversed) | ||
69 | bit = !bit; | ||
70 | if (bit) | ||
71 | data |= ds1603->data; | ||
72 | else | ||
73 | data &= ~ds1603->data; | ||
74 | |||
75 | rtc_reg_write(data); | ||
76 | lasat_ndelay(50 + ds1603->huge_delay); | ||
77 | rtc_cycle_clock(data); | ||
78 | } | ||
79 | |||
80 | static unsigned int rtc_read_databit(void) | ||
81 | { | ||
82 | unsigned int data; | ||
83 | |||
84 | data = (rtc_datareg_read() & (1 << ds1603->data_read_shift)) | ||
85 | >> ds1603->data_read_shift; | ||
86 | rtc_cycle_clock(rtc_reg_read()); | ||
87 | return data; | ||
88 | } | ||
89 | |||
90 | static void rtc_write_byte(unsigned int byte) | ||
91 | { | ||
92 | int i; | ||
93 | |||
94 | for (i = 0; i<=7; i++) { | ||
95 | rtc_write_databit(byte & 1L); | ||
96 | byte >>= 1; | ||
97 | } | ||
98 | } | ||
99 | |||
100 | static void rtc_write_word(unsigned long word) | ||
101 | { | ||
102 | int i; | ||
103 | |||
104 | for (i = 0; i<=31; i++) { | ||
105 | rtc_write_databit(word & 1L); | ||
106 | word >>= 1; | ||
107 | } | ||
108 | } | ||
109 | |||
110 | static unsigned long rtc_read_word(void) | ||
111 | { | ||
112 | int i; | ||
113 | unsigned long word = 0; | ||
114 | unsigned long shift = 0; | ||
115 | |||
116 | for (i = 0; i<=31; i++) { | ||
117 | word |= rtc_read_databit() << shift; | ||
118 | shift++; | ||
119 | } | ||
120 | return word; | ||
121 | } | ||
122 | |||
123 | static void rtc_init_op(void) | ||
124 | { | ||
125 | rtc_nrst_high(); | ||
126 | |||
127 | rtc_reg_write(rtc_reg_read() & ~ds1603->clk); | ||
128 | |||
129 | lasat_ndelay(50); | ||
130 | } | ||
131 | |||
132 | static void rtc_end_op(void) | ||
133 | { | ||
134 | rtc_nrst_low(); | ||
135 | lasat_ndelay(1000); | ||
136 | } | ||
137 | |||
138 | /* interface */ | ||
139 | unsigned long ds1603_read(void) | ||
140 | { | ||
141 | unsigned long word; | ||
142 | unsigned long flags; | ||
143 | |||
144 | spin_lock_irqsave(&rtc_lock, flags); | ||
145 | rtc_init_op(); | ||
146 | rtc_write_byte(READ_TIME_CMD); | ||
147 | word = rtc_read_word(); | ||
148 | rtc_end_op(); | ||
149 | spin_unlock_irqrestore(&rtc_lock, flags); | ||
150 | return word; | ||
151 | } | ||
152 | |||
153 | int ds1603_set(unsigned long time) | ||
154 | { | ||
155 | unsigned long flags; | ||
156 | |||
157 | spin_lock_irqsave(&rtc_lock, flags); | ||
158 | rtc_init_op(); | ||
159 | rtc_write_byte(SET_TIME_CMD); | ||
160 | rtc_write_word(time); | ||
161 | rtc_end_op(); | ||
162 | spin_unlock_irqrestore(&rtc_lock, flags); | ||
163 | |||
164 | return 0; | ||
165 | } | ||
166 | |||
167 | void ds1603_set_trimmer(unsigned int trimval) | ||
168 | { | ||
169 | rtc_init_op(); | ||
170 | rtc_write_byte(((trimval << TRIMMER_SHIFT) & TRIMMER_VALUE_MASK) | ||
171 | | (TRIMMER_SET_CMD)); | ||
172 | rtc_end_op(); | ||
173 | } | ||
174 | |||
175 | void ds1603_disable(void) | ||
176 | { | ||
177 | ds1603_set_trimmer(TRIMMER_DISABLE_RTC); | ||
178 | } | ||
179 | |||
180 | void ds1603_enable(void) | ||
181 | { | ||
182 | ds1603_set_trimmer(TRIMMER_DEFAULT); | ||
183 | } | ||
diff --git a/arch/mips/lasat/ds1603.h b/arch/mips/lasat/ds1603.h deleted file mode 100644 index c2e5c76a379d..000000000000 --- a/arch/mips/lasat/ds1603.h +++ /dev/null | |||
@@ -1,33 +0,0 @@ | |||
1 | /* | ||
2 | * Dallas Semiconductors 1603 RTC driver | ||
3 | * | ||
4 | * Brian Murphy <brian@murphy.dk> | ||
5 | * | ||
6 | */ | ||
7 | #ifndef __DS1603_H | ||
8 | #define __DS1603_H | ||
9 | |||
10 | struct ds_defs { | ||
11 | volatile u32 *reg; | ||
12 | volatile u32 *data_reg; | ||
13 | u32 rst; | ||
14 | u32 clk; | ||
15 | u32 data; | ||
16 | u32 data_read_shift; | ||
17 | char data_reversed; | ||
18 | u32 huge_delay; | ||
19 | }; | ||
20 | |||
21 | extern struct ds_defs *ds1603; | ||
22 | |||
23 | unsigned long ds1603_read(void); | ||
24 | int ds1603_set(unsigned long); | ||
25 | void ds1603_set_trimmer(unsigned int); | ||
26 | void ds1603_enable(void); | ||
27 | void ds1603_disable(void); | ||
28 | void ds1603_init(struct ds_defs *); | ||
29 | |||
30 | #define TRIMMER_DEFAULT 3 | ||
31 | #define TRIMMER_DISABLE_RTC 0 | ||
32 | |||
33 | #endif | ||
diff --git a/arch/mips/lasat/image/Makefile b/arch/mips/lasat/image/Makefile deleted file mode 100644 index 35ecd6483ef6..000000000000 --- a/arch/mips/lasat/image/Makefile +++ /dev/null | |||
@@ -1,53 +0,0 @@ | |||
1 | # | ||
2 | # MAKEFILE FOR THE MIPS LINUX BOOTLOADER AND ROM DEBUGGER | ||
3 | # | ||
4 | # i-data Networks | ||
5 | # | ||
6 | # Author: Thomas Horsten <thh@i-data.com> | ||
7 | # | ||
8 | |||
9 | ifndef Version | ||
10 | Version = "$(USER)-test" | ||
11 | endif | ||
12 | |||
13 | MKLASATIMG = mklasatimg | ||
14 | MKLASATIMG_ARCH = mq2,mqpro,sp100,sp200 | ||
15 | KERNEL_IMAGE = $(TOPDIR)/vmlinux | ||
16 | KERNEL_START = $(shell $(NM) $(KERNEL_IMAGE) | grep " _text" | cut -f1 -d\ ) | ||
17 | KERNEL_ENTRY = $(shell $(NM) $(KERNEL_IMAGE) | grep kernel_entry | cut -f1 -d\ ) | ||
18 | |||
19 | LDSCRIPT= -L$(obj) -Tromscript.normal | ||
20 | |||
21 | HEAD_DEFINES := -D_kernel_start=0x$(KERNEL_START) \ | ||
22 | -D_kernel_entry=0x$(KERNEL_ENTRY) \ | ||
23 | -D VERSION="\"$(Version)\"" \ | ||
24 | -D TIMESTAMP=$(shell date +%s) | ||
25 | |||
26 | $(obj)/head.o: $(obj)/head.S $(KERNEL_IMAGE) | ||
27 | $(CC) -fno-pic $(HEAD_DEFINES) -I$(TOPDIR)/include -c -o $@ $< | ||
28 | |||
29 | OBJECTS = head.o kImage.o | ||
30 | |||
31 | rom.sw: $(obj)/rom.sw | ||
32 | |||
33 | $(obj)/rom.sw: $(obj)/rom.bin | ||
34 | $(MKLASATIMG) -o $@ -k $^ -m $(MKLASATIMG_ARCH) | ||
35 | |||
36 | $(obj)/rom.bin: $(obj)/rom | ||
37 | $(OBJCOPY) -O binary -S $^ $@ | ||
38 | |||
39 | # Rule to make the bootloader | ||
40 | $(obj)/rom: $(addprefix $(obj)/,$(OBJECTS)) | ||
41 | $(LD) $(LDFLAGS) $(LDSCRIPT) -o $@ $^ | ||
42 | |||
43 | $(obj)/%.o: $(obj)/%.gz | ||
44 | $(LD) -r -o $@ -b binary $< | ||
45 | |||
46 | $(obj)/%.gz: $(obj)/%.bin | ||
47 | gzip -cf -9 $< > $@ | ||
48 | |||
49 | $(obj)/kImage.bin: $(KERNEL_IMAGE) | ||
50 | $(OBJCOPY) -O binary -S $^ $@ | ||
51 | |||
52 | clean: | ||
53 | rm -f rom rom.bin rom.sw kImage.bin kImage.o | ||
diff --git a/arch/mips/lasat/image/head.S b/arch/mips/lasat/image/head.S deleted file mode 100644 index efb95f2609c2..000000000000 --- a/arch/mips/lasat/image/head.S +++ /dev/null | |||
@@ -1,31 +0,0 @@ | |||
1 | #include <asm/lasat/head.h> | ||
2 | |||
3 | .text | ||
4 | .section .text.start, "ax" | ||
5 | .set noreorder | ||
6 | .set mips3 | ||
7 | |||
8 | /* Magic words identifying a software image */ | ||
9 | .word LASAT_K_MAGIC0_VAL | ||
10 | .word LASAT_K_MAGIC1_VAL | ||
11 | |||
12 | /* Image header version */ | ||
13 | .word 0x00000002 | ||
14 | |||
15 | /* image start and size */ | ||
16 | .word _image_start | ||
17 | .word _image_size | ||
18 | |||
19 | /* start of kernel and entrypoint in uncompressed image */ | ||
20 | .word _kernel_start | ||
21 | .word _kernel_entry | ||
22 | |||
23 | /* Here we have room for future flags */ | ||
24 | |||
25 | .org 0x40 | ||
26 | reldate: | ||
27 | .word TIMESTAMP | ||
28 | |||
29 | .org 0x50 | ||
30 | release: | ||
31 | .string VERSION | ||
diff --git a/arch/mips/lasat/image/romscript.normal b/arch/mips/lasat/image/romscript.normal deleted file mode 100644 index 988f8ad189cb..000000000000 --- a/arch/mips/lasat/image/romscript.normal +++ /dev/null | |||
@@ -1,23 +0,0 @@ | |||
1 | OUTPUT_ARCH(mips) | ||
2 | |||
3 | SECTIONS | ||
4 | { | ||
5 | .text : | ||
6 | { | ||
7 | *(.text.start) | ||
8 | } | ||
9 | |||
10 | /* Data in ROM */ | ||
11 | |||
12 | .data ALIGN(0x10) : | ||
13 | { | ||
14 | *(.data) | ||
15 | } | ||
16 | _image_start = ADDR(.data); | ||
17 | _image_size = SIZEOF(.data); | ||
18 | |||
19 | .other : | ||
20 | { | ||
21 | *(.*) | ||
22 | } | ||
23 | } | ||
diff --git a/arch/mips/lasat/interrupt.c b/arch/mips/lasat/interrupt.c deleted file mode 100644 index 9a622b9a1051..000000000000 --- a/arch/mips/lasat/interrupt.c +++ /dev/null | |||
@@ -1,130 +0,0 @@ | |||
1 | /* | ||
2 | * Carsten Langgaard, carstenl@mips.com | ||
3 | * Copyright (C) 1999,2000 MIPS Technologies, Inc. All rights reserved. | ||
4 | * | ||
5 | * This program is free software; you can distribute it and/or modify it | ||
6 | * under the terms of the GNU General Public License (Version 2) as | ||
7 | * published by the Free Software Foundation. | ||
8 | * | ||
9 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
11 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
12 | * for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License along | ||
15 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
16 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | ||
17 | * | ||
18 | * Routines for generic manipulation of the interrupts found on the | ||
19 | * Lasat boards. | ||
20 | */ | ||
21 | #include <linux/init.h> | ||
22 | #include <linux/sched.h> | ||
23 | #include <linux/slab.h> | ||
24 | #include <linux/interrupt.h> | ||
25 | #include <linux/kernel_stat.h> | ||
26 | |||
27 | #include <asm/bootinfo.h> | ||
28 | #include <asm/irq.h> | ||
29 | #include <asm/lasat/lasatint.h> | ||
30 | #include <asm/time.h> | ||
31 | #include <asm/gdb-stub.h> | ||
32 | |||
33 | static volatile int *lasat_int_status = NULL; | ||
34 | static volatile int *lasat_int_mask = NULL; | ||
35 | static volatile int lasat_int_mask_shift; | ||
36 | |||
37 | void disable_lasat_irq(unsigned int irq_nr) | ||
38 | { | ||
39 | *lasat_int_mask &= ~(1 << irq_nr) << lasat_int_mask_shift; | ||
40 | } | ||
41 | |||
42 | void enable_lasat_irq(unsigned int irq_nr) | ||
43 | { | ||
44 | *lasat_int_mask |= (1 << irq_nr) << lasat_int_mask_shift; | ||
45 | } | ||
46 | |||
47 | static struct irq_chip lasat_irq_type = { | ||
48 | .name = "Lasat", | ||
49 | .ack = disable_lasat_irq, | ||
50 | .mask = disable_lasat_irq, | ||
51 | .mask_ack = disable_lasat_irq, | ||
52 | .unmask = enable_lasat_irq, | ||
53 | }; | ||
54 | |||
55 | static inline int ls1bit32(unsigned int x) | ||
56 | { | ||
57 | int b = 31, s; | ||
58 | |||
59 | s = 16; if (x << 16 == 0) s = 0; b -= s; x <<= s; | ||
60 | s = 8; if (x << 8 == 0) s = 0; b -= s; x <<= s; | ||
61 | s = 4; if (x << 4 == 0) s = 0; b -= s; x <<= s; | ||
62 | s = 2; if (x << 2 == 0) s = 0; b -= s; x <<= s; | ||
63 | s = 1; if (x << 1 == 0) s = 0; b -= s; | ||
64 | |||
65 | return b; | ||
66 | } | ||
67 | |||
68 | static unsigned long (* get_int_status)(void); | ||
69 | |||
70 | static unsigned long get_int_status_100(void) | ||
71 | { | ||
72 | return *lasat_int_status & *lasat_int_mask; | ||
73 | } | ||
74 | |||
75 | static unsigned long get_int_status_200(void) | ||
76 | { | ||
77 | unsigned long int_status; | ||
78 | |||
79 | int_status = *lasat_int_status; | ||
80 | int_status &= (int_status >> LASATINT_MASK_SHIFT_200) & 0xffff; | ||
81 | return int_status; | ||
82 | } | ||
83 | |||
84 | asmlinkage void plat_irq_dispatch(void) | ||
85 | { | ||
86 | unsigned long int_status; | ||
87 | unsigned int cause = read_c0_cause(); | ||
88 | int irq; | ||
89 | |||
90 | if (cause & CAUSEF_IP7) { /* R4000 count / compare IRQ */ | ||
91 | ll_timer_interrupt(7); | ||
92 | return; | ||
93 | } | ||
94 | |||
95 | int_status = get_int_status(); | ||
96 | |||
97 | /* if int_status == 0, then the interrupt has already been cleared */ | ||
98 | if (int_status) { | ||
99 | irq = ls1bit32(int_status); | ||
100 | |||
101 | do_IRQ(irq); | ||
102 | } | ||
103 | } | ||
104 | |||
105 | void __init arch_init_irq(void) | ||
106 | { | ||
107 | int i; | ||
108 | |||
109 | switch (mips_machtype) { | ||
110 | case MACH_LASAT_100: | ||
111 | lasat_int_status = (void *)LASAT_INT_STATUS_REG_100; | ||
112 | lasat_int_mask = (void *)LASAT_INT_MASK_REG_100; | ||
113 | lasat_int_mask_shift = LASATINT_MASK_SHIFT_100; | ||
114 | get_int_status = get_int_status_100; | ||
115 | *lasat_int_mask = 0; | ||
116 | break; | ||
117 | case MACH_LASAT_200: | ||
118 | lasat_int_status = (void *)LASAT_INT_STATUS_REG_200; | ||
119 | lasat_int_mask = (void *)LASAT_INT_MASK_REG_200; | ||
120 | lasat_int_mask_shift = LASATINT_MASK_SHIFT_200; | ||
121 | get_int_status = get_int_status_200; | ||
122 | *lasat_int_mask &= 0xffff; | ||
123 | break; | ||
124 | default: | ||
125 | panic("arch_init_irq: mips_machtype incorrect"); | ||
126 | } | ||
127 | |||
128 | for (i = 0; i <= LASATINT_END; i++) | ||
129 | set_irq_chip_and_handler(i, &lasat_irq_type, handle_level_irq); | ||
130 | } | ||
diff --git a/arch/mips/lasat/lasat_board.c b/arch/mips/lasat/lasat_board.c deleted file mode 100644 index fbe9a87bd0ad..000000000000 --- a/arch/mips/lasat/lasat_board.c +++ /dev/null | |||
@@ -1,279 +0,0 @@ | |||
1 | /* | ||
2 | * Thomas Horsten <thh@lasat.com> | ||
3 | * Copyright (C) 2000 LASAT Networks A/S. | ||
4 | * | ||
5 | * This program is free software; you can distribute it and/or modify it | ||
6 | * under the terms of the GNU General Public License (Version 2) as | ||
7 | * published by the Free Software Foundation. | ||
8 | * | ||
9 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
11 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
12 | * for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License along | ||
15 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
16 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | ||
17 | * | ||
18 | * Routines specific to the LASAT boards | ||
19 | */ | ||
20 | #include <linux/types.h> | ||
21 | #include <linux/crc32.h> | ||
22 | #include <asm/lasat/lasat.h> | ||
23 | #include <linux/kernel.h> | ||
24 | #include <linux/string.h> | ||
25 | #include <linux/ctype.h> | ||
26 | #include <asm/bootinfo.h> | ||
27 | #include <asm/addrspace.h> | ||
28 | #include "at93c.h" | ||
29 | /* New model description table */ | ||
30 | #include "lasat_models.h" | ||
31 | |||
32 | #define EEPROM_CRC(data, len) (~0 ^ crc32(~0, data, len)) | ||
33 | |||
34 | struct lasat_info lasat_board_info; | ||
35 | |||
36 | void update_bcastaddr(void); | ||
37 | |||
38 | int EEPROMRead(unsigned int pos, unsigned char *data, int len) | ||
39 | { | ||
40 | int i; | ||
41 | |||
42 | for (i=0; i<len; i++) | ||
43 | *data++ = at93c_read(pos++); | ||
44 | |||
45 | return 0; | ||
46 | } | ||
47 | int EEPROMWrite(unsigned int pos, unsigned char *data, int len) | ||
48 | { | ||
49 | int i; | ||
50 | |||
51 | for (i=0; i<len; i++) | ||
52 | at93c_write(pos++, *data++); | ||
53 | |||
54 | return 0; | ||
55 | } | ||
56 | |||
57 | static void init_flash_sizes(void) | ||
58 | { | ||
59 | int i; | ||
60 | unsigned long *lb = lasat_board_info.li_flashpart_base; | ||
61 | unsigned long *ls = lasat_board_info.li_flashpart_size; | ||
62 | |||
63 | ls[LASAT_MTD_BOOTLOADER] = 0x40000; | ||
64 | ls[LASAT_MTD_SERVICE] = 0xC0000; | ||
65 | ls[LASAT_MTD_NORMAL] = 0x100000; | ||
66 | |||
67 | if (mips_machtype == MACH_LASAT_100) { | ||
68 | lasat_board_info.li_flash_base = 0x1e000000; | ||
69 | |||
70 | lb[LASAT_MTD_BOOTLOADER] = 0x1e400000; | ||
71 | |||
72 | if (lasat_board_info.li_flash_size > 0x200000) { | ||
73 | ls[LASAT_MTD_CONFIG] = 0x100000; | ||
74 | ls[LASAT_MTD_FS] = 0x500000; | ||
75 | } | ||
76 | } else { | ||
77 | lasat_board_info.li_flash_base = 0x10000000; | ||
78 | |||
79 | if (lasat_board_info.li_flash_size < 0x1000000) { | ||
80 | lb[LASAT_MTD_BOOTLOADER] = 0x10000000; | ||
81 | ls[LASAT_MTD_CONFIG] = 0x100000; | ||
82 | if (lasat_board_info.li_flash_size >= 0x400000) { | ||
83 | ls[LASAT_MTD_FS] = lasat_board_info.li_flash_size - 0x300000; | ||
84 | } | ||
85 | } | ||
86 | } | ||
87 | |||
88 | for (i = 1; i < LASAT_MTD_LAST; i++) | ||
89 | lb[i] = lb[i-1] + ls[i-1]; | ||
90 | } | ||
91 | |||
92 | int lasat_init_board_info(void) | ||
93 | { | ||
94 | int c; | ||
95 | unsigned long crc; | ||
96 | unsigned long cfg0, cfg1; | ||
97 | const product_info_t *ppi; | ||
98 | int i_n_base_models = N_BASE_MODELS; | ||
99 | const char * const * i_txt_base_models = txt_base_models; | ||
100 | int i_n_prids = N_PRIDS; | ||
101 | |||
102 | memset(&lasat_board_info, 0, sizeof(lasat_board_info)); | ||
103 | |||
104 | /* First read the EEPROM info */ | ||
105 | EEPROMRead(0, (unsigned char *)&lasat_board_info.li_eeprom_info, | ||
106 | sizeof(struct lasat_eeprom_struct)); | ||
107 | |||
108 | /* Check the CRC */ | ||
109 | crc = EEPROM_CRC((unsigned char *)(&lasat_board_info.li_eeprom_info), | ||
110 | sizeof(struct lasat_eeprom_struct) - 4); | ||
111 | |||
112 | if (crc != lasat_board_info.li_eeprom_info.crc32) { | ||
113 | printk(KERN_WARNING "WARNING...\nWARNING...\nEEPROM CRC does " | ||
114 | "not match calculated, attempting to soldier on...\n"); | ||
115 | } | ||
116 | |||
117 | if (lasat_board_info.li_eeprom_info.version != LASAT_EEPROM_VERSION) { | ||
118 | printk(KERN_WARNING "WARNING...\nWARNING...\nEEPROM version " | ||
119 | "%d, wanted version %d, attempting to soldier on...\n", | ||
120 | (unsigned int)lasat_board_info.li_eeprom_info.version, | ||
121 | LASAT_EEPROM_VERSION); | ||
122 | } | ||
123 | |||
124 | cfg0 = lasat_board_info.li_eeprom_info.cfg[0]; | ||
125 | cfg1 = lasat_board_info.li_eeprom_info.cfg[1]; | ||
126 | |||
127 | if ( LASAT_W0_DSCTYPE(cfg0) != 1) { | ||
128 | printk(KERN_WARNING "WARNING...\nWARNING...\n" | ||
129 | "Invalid configuration read from EEPROM, attempting to " | ||
130 | "soldier on..."); | ||
131 | } | ||
132 | /* We have a valid configuration */ | ||
133 | |||
134 | switch (LASAT_W0_SDRAMBANKSZ(cfg0)) { | ||
135 | case 0: | ||
136 | lasat_board_info.li_memsize = 0x0800000; | ||
137 | break; | ||
138 | case 1: | ||
139 | lasat_board_info.li_memsize = 0x1000000; | ||
140 | break; | ||
141 | case 2: | ||
142 | lasat_board_info.li_memsize = 0x2000000; | ||
143 | break; | ||
144 | case 3: | ||
145 | lasat_board_info.li_memsize = 0x4000000; | ||
146 | break; | ||
147 | case 4: | ||
148 | lasat_board_info.li_memsize = 0x8000000; | ||
149 | break; | ||
150 | default: | ||
151 | lasat_board_info.li_memsize = 0; | ||
152 | } | ||
153 | |||
154 | switch (LASAT_W0_SDRAMBANKS(cfg0)) { | ||
155 | case 0: | ||
156 | break; | ||
157 | case 1: | ||
158 | lasat_board_info.li_memsize *= 2; | ||
159 | break; | ||
160 | default: | ||
161 | break; | ||
162 | } | ||
163 | |||
164 | switch (LASAT_W0_BUSSPEED(cfg0)) { | ||
165 | case 0x0: | ||
166 | lasat_board_info.li_bus_hz = 60000000; | ||
167 | break; | ||
168 | case 0x1: | ||
169 | lasat_board_info.li_bus_hz = 66000000; | ||
170 | break; | ||
171 | case 0x2: | ||
172 | lasat_board_info.li_bus_hz = 66666667; | ||
173 | break; | ||
174 | case 0x3: | ||
175 | lasat_board_info.li_bus_hz = 80000000; | ||
176 | break; | ||
177 | case 0x4: | ||
178 | lasat_board_info.li_bus_hz = 83333333; | ||
179 | break; | ||
180 | case 0x5: | ||
181 | lasat_board_info.li_bus_hz = 100000000; | ||
182 | break; | ||
183 | } | ||
184 | |||
185 | switch (LASAT_W0_CPUCLK(cfg0)) { | ||
186 | case 0x0: | ||
187 | lasat_board_info.li_cpu_hz = | ||
188 | lasat_board_info.li_bus_hz; | ||
189 | break; | ||
190 | case 0x1: | ||
191 | lasat_board_info.li_cpu_hz = | ||
192 | lasat_board_info.li_bus_hz + | ||
193 | (lasat_board_info.li_bus_hz >> 1); | ||
194 | break; | ||
195 | case 0x2: | ||
196 | lasat_board_info.li_cpu_hz = | ||
197 | lasat_board_info.li_bus_hz + | ||
198 | lasat_board_info.li_bus_hz; | ||
199 | break; | ||
200 | case 0x3: | ||
201 | lasat_board_info.li_cpu_hz = | ||
202 | lasat_board_info.li_bus_hz + | ||
203 | lasat_board_info.li_bus_hz + | ||
204 | (lasat_board_info.li_bus_hz >> 1); | ||
205 | break; | ||
206 | case 0x4: | ||
207 | lasat_board_info.li_cpu_hz = | ||
208 | lasat_board_info.li_bus_hz + | ||
209 | lasat_board_info.li_bus_hz + | ||
210 | lasat_board_info.li_bus_hz; | ||
211 | break; | ||
212 | } | ||
213 | |||
214 | /* Flash size */ | ||
215 | switch (LASAT_W1_FLASHSIZE(cfg1)) { | ||
216 | case 0: | ||
217 | lasat_board_info.li_flash_size = 0x200000; | ||
218 | break; | ||
219 | case 1: | ||
220 | lasat_board_info.li_flash_size = 0x400000; | ||
221 | break; | ||
222 | case 2: | ||
223 | lasat_board_info.li_flash_size = 0x800000; | ||
224 | break; | ||
225 | case 3: | ||
226 | lasat_board_info.li_flash_size = 0x1000000; | ||
227 | break; | ||
228 | case 4: | ||
229 | lasat_board_info.li_flash_size = 0x2000000; | ||
230 | break; | ||
231 | } | ||
232 | |||
233 | init_flash_sizes(); | ||
234 | |||
235 | lasat_board_info.li_bmid = LASAT_W0_BMID(cfg0); | ||
236 | lasat_board_info.li_prid = lasat_board_info.li_eeprom_info.prid; | ||
237 | if (lasat_board_info.li_prid == 0xffff || lasat_board_info.li_prid == 0) | ||
238 | lasat_board_info.li_prid = lasat_board_info.li_bmid; | ||
239 | |||
240 | /* Base model stuff */ | ||
241 | if (lasat_board_info.li_bmid > i_n_base_models) | ||
242 | lasat_board_info.li_bmid = i_n_base_models; | ||
243 | strcpy(lasat_board_info.li_bmstr, i_txt_base_models[lasat_board_info.li_bmid]); | ||
244 | |||
245 | /* Product ID dependent values */ | ||
246 | c = lasat_board_info.li_prid; | ||
247 | if (c >= i_n_prids) { | ||
248 | strcpy(lasat_board_info.li_namestr, "Unknown Model"); | ||
249 | strcpy(lasat_board_info.li_typestr, "Unknown Type"); | ||
250 | } else { | ||
251 | ppi = &vendor_info_table[0].vi_product_info[c]; | ||
252 | strcpy(lasat_board_info.li_namestr, ppi->pi_name); | ||
253 | if (ppi->pi_type) | ||
254 | strcpy(lasat_board_info.li_typestr, ppi->pi_type); | ||
255 | else | ||
256 | sprintf(lasat_board_info.li_typestr, "%d",10*c); | ||
257 | } | ||
258 | |||
259 | #if defined(CONFIG_INET) && defined(CONFIG_SYSCTL) | ||
260 | update_bcastaddr(); | ||
261 | #endif | ||
262 | |||
263 | return 0; | ||
264 | } | ||
265 | |||
266 | void lasat_write_eeprom_info(void) | ||
267 | { | ||
268 | unsigned long crc; | ||
269 | |||
270 | /* Generate the CRC */ | ||
271 | crc = EEPROM_CRC((unsigned char *)(&lasat_board_info.li_eeprom_info), | ||
272 | sizeof(struct lasat_eeprom_struct) - 4); | ||
273 | lasat_board_info.li_eeprom_info.crc32 = crc; | ||
274 | |||
275 | /* Write the EEPROM info */ | ||
276 | EEPROMWrite(0, (unsigned char *)&lasat_board_info.li_eeprom_info, | ||
277 | sizeof(struct lasat_eeprom_struct)); | ||
278 | } | ||
279 | |||
diff --git a/arch/mips/lasat/lasat_models.h b/arch/mips/lasat/lasat_models.h deleted file mode 100644 index ae0c5d0bd403..000000000000 --- a/arch/mips/lasat/lasat_models.h +++ /dev/null | |||
@@ -1,63 +0,0 @@ | |||
1 | /* | ||
2 | * Model description tables | ||
3 | */ | ||
4 | |||
5 | typedef struct product_info_t { | ||
6 | const char *pi_name; | ||
7 | const char *pi_type; | ||
8 | } product_info_t; | ||
9 | |||
10 | typedef struct vendor_info_t { | ||
11 | const char *vi_name; | ||
12 | const product_info_t *vi_product_info; | ||
13 | } vendor_info_t; | ||
14 | |||
15 | /* | ||
16 | * Base models | ||
17 | */ | ||
18 | static const char * const txt_base_models[] = { | ||
19 | "MQ 2", "MQ Pro", "SP 25", "SP 50", "SP 100", "SP 5000", "SP 7000", "SP 1000", "Unknown" | ||
20 | }; | ||
21 | #define N_BASE_MODELS (sizeof(txt_base_models)/sizeof(char*)-1) | ||
22 | |||
23 | /* | ||
24 | * Eicon Networks | ||
25 | */ | ||
26 | static const char txt_en_mq[] = "Masquerade"; | ||
27 | static const char txt_en_sp[] = "Safepipe"; | ||
28 | |||
29 | static const product_info_t product_info_eicon[] = { | ||
30 | { txt_en_mq, "II" }, /* 0 */ | ||
31 | { txt_en_mq, "Pro" }, /* 1 */ | ||
32 | { txt_en_sp, "25" }, /* 2 */ | ||
33 | { txt_en_sp, "50" }, /* 3 */ | ||
34 | { txt_en_sp, "100" }, /* 4 */ | ||
35 | { txt_en_sp, "5000" }, /* 5 */ | ||
36 | { txt_en_sp, "7000" }, /* 6 */ | ||
37 | { txt_en_sp, "30" }, /* 7 */ | ||
38 | { txt_en_sp, "5100" }, /* 8 */ | ||
39 | { txt_en_sp, "7100" }, /* 9 */ | ||
40 | { txt_en_sp, "1110" }, /* 10 */ | ||
41 | { txt_en_sp, "3020" }, /* 11 */ | ||
42 | { txt_en_sp, "3030" }, /* 12 */ | ||
43 | { txt_en_sp, "5020" }, /* 13 */ | ||
44 | { txt_en_sp, "5030" }, /* 14 */ | ||
45 | { txt_en_sp, "1120" }, /* 15 */ | ||
46 | { txt_en_sp, "1130" }, /* 16 */ | ||
47 | { txt_en_sp, "6010" }, /* 17 */ | ||
48 | { txt_en_sp, "6110" }, /* 18 */ | ||
49 | { txt_en_sp, "6210" }, /* 19 */ | ||
50 | { txt_en_sp, "1020" }, /* 20 */ | ||
51 | { txt_en_sp, "1040" }, /* 21 */ | ||
52 | { txt_en_sp, "1050" }, /* 22 */ | ||
53 | { txt_en_sp, "1060" }, /* 23 */ | ||
54 | }; | ||
55 | #define N_PRIDS (sizeof(product_info_eicon)/sizeof(product_info_t)) | ||
56 | |||
57 | /* | ||
58 | * The vendor table | ||
59 | */ | ||
60 | static vendor_info_t const vendor_info_table[] = { | ||
61 | { "Eicon Networks", product_info_eicon }, | ||
62 | }; | ||
63 | #define N_VENDORS (sizeof(vendor_info_table)/sizeof(vendor_info_t)) | ||
diff --git a/arch/mips/lasat/picvue.c b/arch/mips/lasat/picvue.c deleted file mode 100644 index 9ae82c3ffb07..000000000000 --- a/arch/mips/lasat/picvue.c +++ /dev/null | |||
@@ -1,240 +0,0 @@ | |||
1 | /* | ||
2 | * Picvue PVC160206 display driver | ||
3 | * | ||
4 | * Brian Murphy <brian@murphy.dk> | ||
5 | * | ||
6 | */ | ||
7 | #include <linux/kernel.h> | ||
8 | #include <linux/delay.h> | ||
9 | #include <asm/bootinfo.h> | ||
10 | #include <asm/lasat/lasat.h> | ||
11 | #include <linux/module.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/errno.h> | ||
14 | #include <linux/string.h> | ||
15 | |||
16 | #include "picvue.h" | ||
17 | |||
18 | #define PVC_BUSY 0x80 | ||
19 | #define PVC_NLINES 2 | ||
20 | #define PVC_DISPMEM 80 | ||
21 | #define PVC_LINELEN PVC_DISPMEM / PVC_NLINES | ||
22 | |||
23 | struct pvc_defs *picvue = NULL; | ||
24 | |||
25 | DECLARE_MUTEX(pvc_sem); | ||
26 | |||
27 | static void pvc_reg_write(u32 val) | ||
28 | { | ||
29 | *picvue->reg = val; | ||
30 | } | ||
31 | |||
32 | static u32 pvc_reg_read(void) | ||
33 | { | ||
34 | u32 tmp = *picvue->reg; | ||
35 | return tmp; | ||
36 | } | ||
37 | |||
38 | static void pvc_write_byte(u32 data, u8 byte) | ||
39 | { | ||
40 | data |= picvue->e; | ||
41 | pvc_reg_write(data); | ||
42 | data &= ~picvue->data_mask; | ||
43 | data |= byte << picvue->data_shift; | ||
44 | pvc_reg_write(data); | ||
45 | ndelay(220); | ||
46 | pvc_reg_write(data & ~picvue->e); | ||
47 | ndelay(220); | ||
48 | } | ||
49 | |||
50 | static u8 pvc_read_byte(u32 data) | ||
51 | { | ||
52 | u8 byte; | ||
53 | |||
54 | data |= picvue->e; | ||
55 | pvc_reg_write(data); | ||
56 | ndelay(220); | ||
57 | byte = (pvc_reg_read() & picvue->data_mask) >> picvue->data_shift; | ||
58 | data &= ~picvue->e; | ||
59 | pvc_reg_write(data); | ||
60 | ndelay(220); | ||
61 | return byte; | ||
62 | } | ||
63 | |||
64 | static u8 pvc_read_data(void) | ||
65 | { | ||
66 | u32 data = pvc_reg_read(); | ||
67 | u8 byte; | ||
68 | data |= picvue->rw; | ||
69 | data &= ~picvue->rs; | ||
70 | pvc_reg_write(data); | ||
71 | ndelay(40); | ||
72 | byte = pvc_read_byte(data); | ||
73 | data |= picvue->rs; | ||
74 | pvc_reg_write(data); | ||
75 | return byte; | ||
76 | } | ||
77 | |||
78 | #define TIMEOUT 1000 | ||
79 | static int pvc_wait(void) | ||
80 | { | ||
81 | int i = TIMEOUT; | ||
82 | int err = 0; | ||
83 | |||
84 | while ((pvc_read_data() & PVC_BUSY) && i) | ||
85 | i--; | ||
86 | if (i == 0) | ||
87 | err = -ETIME; | ||
88 | |||
89 | return err; | ||
90 | } | ||
91 | |||
92 | #define MODE_INST 0 | ||
93 | #define MODE_DATA 1 | ||
94 | static void pvc_write(u8 byte, int mode) | ||
95 | { | ||
96 | u32 data = pvc_reg_read(); | ||
97 | data &= ~picvue->rw; | ||
98 | if (mode == MODE_DATA) | ||
99 | data |= picvue->rs; | ||
100 | else | ||
101 | data &= ~picvue->rs; | ||
102 | pvc_reg_write(data); | ||
103 | ndelay(40); | ||
104 | pvc_write_byte(data, byte); | ||
105 | if (mode == MODE_DATA) | ||
106 | data &= ~picvue->rs; | ||
107 | else | ||
108 | data |= picvue->rs; | ||
109 | pvc_reg_write(data); | ||
110 | pvc_wait(); | ||
111 | } | ||
112 | |||
113 | void pvc_write_string(const unsigned char *str, u8 addr, int line) | ||
114 | { | ||
115 | int i = 0; | ||
116 | |||
117 | if (line > 0 && (PVC_NLINES > 1)) | ||
118 | addr += 0x40 * line; | ||
119 | pvc_write(0x80 | addr, MODE_INST); | ||
120 | |||
121 | while (*str != 0 && i < PVC_LINELEN) { | ||
122 | pvc_write(*str++, MODE_DATA); | ||
123 | i++; | ||
124 | } | ||
125 | } | ||
126 | |||
127 | void pvc_write_string_centered(const unsigned char *str, int line) | ||
128 | { | ||
129 | int len = strlen(str); | ||
130 | u8 addr; | ||
131 | |||
132 | if (len > PVC_VISIBLE_CHARS) | ||
133 | addr = 0; | ||
134 | else | ||
135 | addr = (PVC_VISIBLE_CHARS - strlen(str))/2; | ||
136 | |||
137 | pvc_write_string(str, addr, line); | ||
138 | } | ||
139 | |||
140 | void pvc_dump_string(const unsigned char *str) | ||
141 | { | ||
142 | int len = strlen(str); | ||
143 | |||
144 | pvc_write_string(str, 0, 0); | ||
145 | if (len > PVC_VISIBLE_CHARS) | ||
146 | pvc_write_string(&str[PVC_VISIBLE_CHARS], 0, 1); | ||
147 | } | ||
148 | |||
149 | #define BM_SIZE 8 | ||
150 | #define MAX_PROGRAMMABLE_CHARS 8 | ||
151 | int pvc_program_cg(int charnum, u8 bitmap[BM_SIZE]) | ||
152 | { | ||
153 | int i; | ||
154 | int addr; | ||
155 | |||
156 | if (charnum > MAX_PROGRAMMABLE_CHARS) | ||
157 | return -ENOENT; | ||
158 | |||
159 | addr = charnum * 8; | ||
160 | pvc_write(0x40 | addr, MODE_INST); | ||
161 | |||
162 | for (i=0; i<BM_SIZE; i++) | ||
163 | pvc_write(bitmap[i], MODE_DATA); | ||
164 | return 0; | ||
165 | } | ||
166 | |||
167 | #define FUNC_SET_CMD 0x20 | ||
168 | #define EIGHT_BYTE (1 << 4) | ||
169 | #define FOUR_BYTE 0 | ||
170 | #define TWO_LINES (1 << 3) | ||
171 | #define ONE_LINE 0 | ||
172 | #define LARGE_FONT (1 << 2) | ||
173 | #define SMALL_FONT 0 | ||
174 | static void pvc_funcset(u8 cmd) | ||
175 | { | ||
176 | pvc_write(FUNC_SET_CMD | (cmd & (EIGHT_BYTE|TWO_LINES|LARGE_FONT)), MODE_INST); | ||
177 | } | ||
178 | |||
179 | #define ENTRYMODE_CMD 0x4 | ||
180 | #define AUTO_INC (1 << 1) | ||
181 | #define AUTO_DEC 0 | ||
182 | #define CURSOR_FOLLOWS_DISP (1 << 0) | ||
183 | static void pvc_entrymode(u8 cmd) | ||
184 | { | ||
185 | pvc_write(ENTRYMODE_CMD | (cmd & (AUTO_INC|CURSOR_FOLLOWS_DISP)), MODE_INST); | ||
186 | } | ||
187 | |||
188 | #define DISP_CNT_CMD 0x08 | ||
189 | #define DISP_OFF 0 | ||
190 | #define DISP_ON (1 << 2) | ||
191 | #define CUR_ON (1 << 1) | ||
192 | #define CUR_BLINK (1 << 0) | ||
193 | void pvc_dispcnt(u8 cmd) | ||
194 | { | ||
195 | pvc_write(DISP_CNT_CMD | (cmd & (DISP_ON|CUR_ON|CUR_BLINK)), MODE_INST); | ||
196 | } | ||
197 | |||
198 | #define MOVE_CMD 0x10 | ||
199 | #define DISPLAY (1 << 3) | ||
200 | #define CURSOR 0 | ||
201 | #define RIGHT (1 << 2) | ||
202 | #define LEFT 0 | ||
203 | void pvc_move(u8 cmd) | ||
204 | { | ||
205 | pvc_write(MOVE_CMD | (cmd & (DISPLAY|RIGHT)), MODE_INST); | ||
206 | } | ||
207 | |||
208 | #define CLEAR_CMD 0x1 | ||
209 | void pvc_clear(void) | ||
210 | { | ||
211 | pvc_write(CLEAR_CMD, MODE_INST); | ||
212 | } | ||
213 | |||
214 | #define HOME_CMD 0x2 | ||
215 | void pvc_home(void) | ||
216 | { | ||
217 | pvc_write(HOME_CMD, MODE_INST); | ||
218 | } | ||
219 | |||
220 | int pvc_init(void) | ||
221 | { | ||
222 | u8 cmd = EIGHT_BYTE; | ||
223 | |||
224 | if (PVC_NLINES == 2) | ||
225 | cmd |= (SMALL_FONT|TWO_LINES); | ||
226 | else | ||
227 | cmd |= (LARGE_FONT|ONE_LINE); | ||
228 | pvc_funcset(cmd); | ||
229 | pvc_dispcnt(DISP_ON); | ||
230 | pvc_entrymode(AUTO_INC); | ||
231 | |||
232 | pvc_clear(); | ||
233 | pvc_write_string_centered("Display", 0); | ||
234 | pvc_write_string_centered("Initialized", 1); | ||
235 | |||
236 | return 0; | ||
237 | } | ||
238 | |||
239 | module_init(pvc_init); | ||
240 | MODULE_LICENSE("GPL"); | ||
diff --git a/arch/mips/lasat/picvue.h b/arch/mips/lasat/picvue.h deleted file mode 100644 index 2a96bf971897..000000000000 --- a/arch/mips/lasat/picvue.h +++ /dev/null | |||
@@ -1,48 +0,0 @@ | |||
1 | /* | ||
2 | * Picvue PVC160206 display driver | ||
3 | * | ||
4 | * Brian Murphy <brian.murphy@eicon.com> | ||
5 | * | ||
6 | */ | ||
7 | #include <asm/semaphore.h> | ||
8 | |||
9 | struct pvc_defs { | ||
10 | volatile u32 *reg; | ||
11 | u32 data_shift; | ||
12 | u32 data_mask; | ||
13 | u32 e; | ||
14 | u32 rw; | ||
15 | u32 rs; | ||
16 | }; | ||
17 | |||
18 | extern struct pvc_defs *picvue; | ||
19 | |||
20 | #define PVC_NLINES 2 | ||
21 | #define PVC_DISPMEM 80 | ||
22 | #define PVC_LINELEN PVC_DISPMEM / PVC_NLINES | ||
23 | #define PVC_VISIBLE_CHARS 16 | ||
24 | |||
25 | void pvc_write_string(const unsigned char *str, u8 addr, int line); | ||
26 | void pvc_write_string_centered(const unsigned char *str, int line); | ||
27 | void pvc_dump_string(const unsigned char *str); | ||
28 | |||
29 | #define BM_SIZE 8 | ||
30 | #define MAX_PROGRAMMABLE_CHARS 8 | ||
31 | int pvc_program_cg(int charnum, u8 bitmap[BM_SIZE]); | ||
32 | |||
33 | void pvc_dispcnt(u8 cmd); | ||
34 | #define DISP_OFF 0 | ||
35 | #define DISP_ON (1 << 2) | ||
36 | #define CUR_ON (1 << 1) | ||
37 | #define CUR_BLINK (1 << 0) | ||
38 | |||
39 | void pvc_move(u8 cmd); | ||
40 | #define DISPLAY (1 << 3) | ||
41 | #define CURSOR 0 | ||
42 | #define RIGHT (1 << 2) | ||
43 | #define LEFT 0 | ||
44 | |||
45 | void pvc_clear(void); | ||
46 | void pvc_home(void); | ||
47 | |||
48 | extern struct semaphore pvc_sem; | ||
diff --git a/arch/mips/lasat/picvue_proc.c b/arch/mips/lasat/picvue_proc.c deleted file mode 100644 index cce7cddcdb08..000000000000 --- a/arch/mips/lasat/picvue_proc.c +++ /dev/null | |||
@@ -1,186 +0,0 @@ | |||
1 | /* | ||
2 | * Picvue PVC160206 display driver | ||
3 | * | ||
4 | * Brian Murphy <brian.murphy@eicon.com> | ||
5 | * | ||
6 | */ | ||
7 | #include <linux/kernel.h> | ||
8 | #include <linux/module.h> | ||
9 | #include <linux/init.h> | ||
10 | #include <linux/errno.h> | ||
11 | |||
12 | #include <linux/proc_fs.h> | ||
13 | #include <linux/interrupt.h> | ||
14 | |||
15 | #include <linux/timer.h> | ||
16 | |||
17 | #include "picvue.h" | ||
18 | |||
19 | static char pvc_lines[PVC_NLINES][PVC_LINELEN+1]; | ||
20 | static int pvc_linedata[PVC_NLINES]; | ||
21 | static struct proc_dir_entry *pvc_display_dir; | ||
22 | static char *pvc_linename[PVC_NLINES] = {"line1", "line2"}; | ||
23 | #define DISPLAY_DIR_NAME "display" | ||
24 | static int scroll_dir = 0, scroll_interval = 0; | ||
25 | |||
26 | static struct timer_list timer; | ||
27 | |||
28 | static void pvc_display(unsigned long data) { | ||
29 | int i; | ||
30 | |||
31 | pvc_clear(); | ||
32 | for (i=0; i<PVC_NLINES; i++) | ||
33 | pvc_write_string(pvc_lines[i], 0, i); | ||
34 | } | ||
35 | |||
36 | static DECLARE_TASKLET(pvc_display_tasklet, &pvc_display, 0); | ||
37 | |||
38 | static int pvc_proc_read_line(char *page, char **start, | ||
39 | off_t off, int count, | ||
40 | int *eof, void *data) | ||
41 | { | ||
42 | char *origpage = page; | ||
43 | int lineno = *(int *)data; | ||
44 | |||
45 | if (lineno < 0 || lineno > PVC_NLINES) { | ||
46 | printk("proc_read_line: invalid lineno %d\n", lineno); | ||
47 | return 0; | ||
48 | } | ||
49 | |||
50 | down(&pvc_sem); | ||
51 | page += sprintf(page, "%s\n", pvc_lines[lineno]); | ||
52 | up(&pvc_sem); | ||
53 | |||
54 | return page - origpage; | ||
55 | } | ||
56 | |||
57 | static int pvc_proc_write_line(struct file *file, const char *buffer, | ||
58 | unsigned long count, void *data) | ||
59 | { | ||
60 | int origcount = count; | ||
61 | int lineno = *(int *)data; | ||
62 | |||
63 | if (lineno < 0 || lineno > PVC_NLINES) { | ||
64 | printk("proc_write_line: invalid lineno %d\n", lineno); | ||
65 | return origcount; | ||
66 | } | ||
67 | |||
68 | if (count > PVC_LINELEN) | ||
69 | count = PVC_LINELEN; | ||
70 | |||
71 | if (buffer[count-1] == '\n') | ||
72 | count--; | ||
73 | |||
74 | down(&pvc_sem); | ||
75 | strncpy(pvc_lines[lineno], buffer, count); | ||
76 | pvc_lines[lineno][count] = '\0'; | ||
77 | up(&pvc_sem); | ||
78 | |||
79 | tasklet_schedule(&pvc_display_tasklet); | ||
80 | |||
81 | return origcount; | ||
82 | } | ||
83 | |||
84 | static int pvc_proc_write_scroll(struct file *file, const char *buffer, | ||
85 | unsigned long count, void *data) | ||
86 | { | ||
87 | int origcount = count; | ||
88 | int cmd = simple_strtol(buffer, NULL, 10); | ||
89 | |||
90 | down(&pvc_sem); | ||
91 | if (scroll_interval != 0) | ||
92 | del_timer(&timer); | ||
93 | |||
94 | if (cmd == 0) { | ||
95 | scroll_dir = 0; | ||
96 | scroll_interval = 0; | ||
97 | } else { | ||
98 | if (cmd < 0) { | ||
99 | scroll_dir = -1; | ||
100 | scroll_interval = -cmd; | ||
101 | } else { | ||
102 | scroll_dir = 1; | ||
103 | scroll_interval = cmd; | ||
104 | } | ||
105 | add_timer(&timer); | ||
106 | } | ||
107 | up(&pvc_sem); | ||
108 | |||
109 | return origcount; | ||
110 | } | ||
111 | |||
112 | static int pvc_proc_read_scroll(char *page, char **start, | ||
113 | off_t off, int count, | ||
114 | int *eof, void *data) | ||
115 | { | ||
116 | char *origpage = page; | ||
117 | |||
118 | down(&pvc_sem); | ||
119 | page += sprintf(page, "%d\n", scroll_dir * scroll_interval); | ||
120 | up(&pvc_sem); | ||
121 | |||
122 | return page - origpage; | ||
123 | } | ||
124 | |||
125 | |||
126 | void pvc_proc_timerfunc(unsigned long data) | ||
127 | { | ||
128 | if (scroll_dir < 0) | ||
129 | pvc_move(DISPLAY|RIGHT); | ||
130 | else if (scroll_dir > 0) | ||
131 | pvc_move(DISPLAY|LEFT); | ||
132 | |||
133 | timer.expires = jiffies + scroll_interval; | ||
134 | add_timer(&timer); | ||
135 | } | ||
136 | |||
137 | static void pvc_proc_cleanup(void) | ||
138 | { | ||
139 | int i; | ||
140 | for (i=0; i<PVC_NLINES; i++) | ||
141 | remove_proc_entry(pvc_linename[i], pvc_display_dir); | ||
142 | remove_proc_entry("scroll", pvc_display_dir); | ||
143 | remove_proc_entry(DISPLAY_DIR_NAME, NULL); | ||
144 | |||
145 | del_timer(&timer); | ||
146 | } | ||
147 | |||
148 | static int __init pvc_proc_init(void) | ||
149 | { | ||
150 | struct proc_dir_entry *proc_entry; | ||
151 | int i; | ||
152 | |||
153 | pvc_display_dir = proc_mkdir(DISPLAY_DIR_NAME, NULL); | ||
154 | if (pvc_display_dir == NULL) | ||
155 | goto error; | ||
156 | |||
157 | for (i=0; i<PVC_NLINES; i++) { | ||
158 | strcpy(pvc_lines[i], ""); | ||
159 | pvc_linedata[i] = i; | ||
160 | } | ||
161 | for (i=0; i<PVC_NLINES; i++) { | ||
162 | proc_entry = create_proc_entry(pvc_linename[i], 0644, pvc_display_dir); | ||
163 | if (proc_entry == NULL) | ||
164 | goto error; | ||
165 | proc_entry->read_proc = pvc_proc_read_line; | ||
166 | proc_entry->write_proc = pvc_proc_write_line; | ||
167 | proc_entry->data = &pvc_linedata[i]; | ||
168 | } | ||
169 | proc_entry = create_proc_entry("scroll", 0644, pvc_display_dir); | ||
170 | if (proc_entry == NULL) | ||
171 | goto error; | ||
172 | proc_entry->write_proc = pvc_proc_write_scroll; | ||
173 | proc_entry->read_proc = pvc_proc_read_scroll; | ||
174 | |||
175 | init_timer(&timer); | ||
176 | timer.function = pvc_proc_timerfunc; | ||
177 | |||
178 | return 0; | ||
179 | error: | ||
180 | pvc_proc_cleanup(); | ||
181 | return -ENOMEM; | ||
182 | } | ||
183 | |||
184 | module_init(pvc_proc_init); | ||
185 | module_exit(pvc_proc_cleanup); | ||
186 | MODULE_LICENSE("GPL"); | ||
diff --git a/arch/mips/lasat/prom.c b/arch/mips/lasat/prom.c deleted file mode 100644 index 812c6ac366be..000000000000 --- a/arch/mips/lasat/prom.c +++ /dev/null | |||
@@ -1,117 +0,0 @@ | |||
1 | /* | ||
2 | * PROM interface routines. | ||
3 | */ | ||
4 | #include <linux/types.h> | ||
5 | #include <linux/init.h> | ||
6 | #include <linux/string.h> | ||
7 | #include <linux/ctype.h> | ||
8 | #include <linux/kernel.h> | ||
9 | #include <linux/mm.h> | ||
10 | #include <linux/bootmem.h> | ||
11 | #include <linux/ioport.h> | ||
12 | #include <asm/bootinfo.h> | ||
13 | #include <asm/lasat/lasat.h> | ||
14 | #include <asm/cpu.h> | ||
15 | |||
16 | #include "at93c.h" | ||
17 | #include <asm/lasat/eeprom.h> | ||
18 | #include "prom.h" | ||
19 | |||
20 | #define RESET_VECTOR 0xbfc00000 | ||
21 | #define PROM_JUMP_TABLE_ENTRY(n) (*((u32 *)(RESET_VECTOR + 0x20) + n)) | ||
22 | #define PROM_DISPLAY_ADDR PROM_JUMP_TABLE_ENTRY(0) | ||
23 | #define PROM_PUTC_ADDR PROM_JUMP_TABLE_ENTRY(1) | ||
24 | #define PROM_MONITOR_ADDR PROM_JUMP_TABLE_ENTRY(2) | ||
25 | |||
26 | static void null_prom_display(const char *string, int pos, int clear) | ||
27 | { | ||
28 | } | ||
29 | |||
30 | static void null_prom_monitor(void) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | static void null_prom_putc(char c) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | /* these are functions provided by the bootloader */ | ||
39 | static void (* __prom_putc)(char c) = null_prom_putc; | ||
40 | |||
41 | void prom_putchar(char c) | ||
42 | { | ||
43 | __prom_putc(c); | ||
44 | } | ||
45 | |||
46 | void (* prom_display)(const char *string, int pos, int clear) = | ||
47 | null_prom_display; | ||
48 | void (* prom_monitor)(void) = null_prom_monitor; | ||
49 | |||
50 | unsigned int lasat_ndelay_divider; | ||
51 | |||
52 | static void setup_prom_vectors(void) | ||
53 | { | ||
54 | u32 version = *(u32 *)(RESET_VECTOR + 0x90); | ||
55 | |||
56 | if (version >= 307) { | ||
57 | prom_display = (void *)PROM_DISPLAY_ADDR; | ||
58 | __prom_putc = (void *)PROM_PUTC_ADDR; | ||
59 | prom_monitor = (void *)PROM_MONITOR_ADDR; | ||
60 | } | ||
61 | printk("prom vectors set up\n"); | ||
62 | } | ||
63 | |||
64 | static struct at93c_defs at93c_defs[N_MACHTYPES] = { | ||
65 | {(void *)AT93C_REG_100, (void *)AT93C_RDATA_REG_100, AT93C_RDATA_SHIFT_100, | ||
66 | AT93C_WDATA_SHIFT_100, AT93C_CS_M_100, AT93C_CLK_M_100}, | ||
67 | {(void *)AT93C_REG_200, (void *)AT93C_RDATA_REG_200, AT93C_RDATA_SHIFT_200, | ||
68 | AT93C_WDATA_SHIFT_200, AT93C_CS_M_200, AT93C_CLK_M_200}, | ||
69 | }; | ||
70 | |||
71 | void __init prom_init(void) | ||
72 | { | ||
73 | int argc = fw_arg0; | ||
74 | char **argv = (char **) fw_arg1; | ||
75 | |||
76 | setup_prom_vectors(); | ||
77 | |||
78 | if (current_cpu_data.cputype == CPU_R5000) { | ||
79 | printk("LASAT 200 board\n"); | ||
80 | mips_machtype = MACH_LASAT_200; | ||
81 | lasat_ndelay_divider = LASAT_200_DIVIDER; | ||
82 | } else { | ||
83 | printk("LASAT 100 board\n"); | ||
84 | mips_machtype = MACH_LASAT_100; | ||
85 | lasat_ndelay_divider = LASAT_100_DIVIDER; | ||
86 | } | ||
87 | |||
88 | at93c = &at93c_defs[mips_machtype]; | ||
89 | |||
90 | lasat_init_board_info(); /* Read info from EEPROM */ | ||
91 | |||
92 | mips_machgroup = MACH_GROUP_LASAT; | ||
93 | |||
94 | /* Get the command line */ | ||
95 | if (argc > 0) { | ||
96 | strncpy(arcs_cmdline, argv[0], CL_SIZE-1); | ||
97 | arcs_cmdline[CL_SIZE-1] = '\0'; | ||
98 | } | ||
99 | |||
100 | /* Set the I/O base address */ | ||
101 | set_io_port_base(KSEG1); | ||
102 | |||
103 | /* Set memory regions */ | ||
104 | ioport_resource.start = 0; | ||
105 | ioport_resource.end = 0xffffffff; /* Wrong, fixme. */ | ||
106 | |||
107 | add_memory_region(0, lasat_board_info.li_memsize, BOOT_MEM_RAM); | ||
108 | } | ||
109 | |||
110 | void __init prom_free_prom_memory(void) | ||
111 | { | ||
112 | } | ||
113 | |||
114 | const char *get_system_type(void) | ||
115 | { | ||
116 | return lasat_board_info.li_bmstr; | ||
117 | } | ||
diff --git a/arch/mips/lasat/prom.h b/arch/mips/lasat/prom.h deleted file mode 100644 index 019d45fbd268..000000000000 --- a/arch/mips/lasat/prom.h +++ /dev/null | |||
@@ -1,5 +0,0 @@ | |||
1 | #ifndef PROM_H | ||
2 | #define PROM_H | ||
3 | extern void (* prom_display)(const char *string, int pos, int clear); | ||
4 | extern void (* prom_monitor)(void); | ||
5 | #endif | ||
diff --git a/arch/mips/lasat/reset.c b/arch/mips/lasat/reset.c deleted file mode 100644 index 9e22acf03083..000000000000 --- a/arch/mips/lasat/reset.c +++ /dev/null | |||
@@ -1,69 +0,0 @@ | |||
1 | /* | ||
2 | * Thomas Horsten <thh@lasat.com> | ||
3 | * Copyright (C) 2000 LASAT Networks A/S. | ||
4 | * | ||
5 | * This program is free software; you can distribute it and/or modify it | ||
6 | * under the terms of the GNU General Public License (Version 2) as | ||
7 | * published by the Free Software Foundation. | ||
8 | * | ||
9 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
11 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
12 | * for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License along | ||
15 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
16 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | ||
17 | * | ||
18 | * Reset the LASAT board. | ||
19 | */ | ||
20 | #include <linux/kernel.h> | ||
21 | #include <linux/pm.h> | ||
22 | |||
23 | #include <asm/reboot.h> | ||
24 | #include <asm/system.h> | ||
25 | #include <asm/lasat/lasat.h> | ||
26 | |||
27 | #include "picvue.h" | ||
28 | #include "prom.h" | ||
29 | |||
30 | static void lasat_machine_restart(char *command); | ||
31 | static void lasat_machine_halt(void); | ||
32 | |||
33 | /* Used to set machine to boot in service mode via /proc interface */ | ||
34 | int lasat_boot_to_service = 0; | ||
35 | |||
36 | static void lasat_machine_restart(char *command) | ||
37 | { | ||
38 | local_irq_disable(); | ||
39 | |||
40 | if (lasat_boot_to_service) { | ||
41 | printk("machine_restart: Rebooting to service mode\n"); | ||
42 | *(volatile unsigned int *)0xa0000024 = 0xdeadbeef; | ||
43 | *(volatile unsigned int *)0xa00000fc = 0xfedeabba; | ||
44 | } | ||
45 | *lasat_misc->reset_reg = 0xbedead; | ||
46 | for (;;) ; | ||
47 | } | ||
48 | |||
49 | #define MESSAGE "System halted" | ||
50 | static void lasat_machine_halt(void) | ||
51 | { | ||
52 | local_irq_disable(); | ||
53 | |||
54 | /* Disable interrupts and loop forever */ | ||
55 | printk(KERN_NOTICE MESSAGE "\n"); | ||
56 | #ifdef CONFIG_PICVUE | ||
57 | pvc_clear(); | ||
58 | pvc_write_string(MESSAGE, 0, 0); | ||
59 | #endif | ||
60 | prom_monitor(); | ||
61 | for (;;) ; | ||
62 | } | ||
63 | |||
64 | void lasat_reboot_setup(void) | ||
65 | { | ||
66 | _machine_restart = lasat_machine_restart; | ||
67 | _machine_halt = lasat_machine_halt; | ||
68 | pm_power_off = lasat_machine_halt; | ||
69 | } | ||
diff --git a/arch/mips/lasat/setup.c b/arch/mips/lasat/setup.c deleted file mode 100644 index 488007f13988..000000000000 --- a/arch/mips/lasat/setup.c +++ /dev/null | |||
@@ -1,182 +0,0 @@ | |||
1 | /* | ||
2 | * Carsten Langgaard, carstenl@mips.com | ||
3 | * Copyright (C) 1999 MIPS Technologies, Inc. All rights reserved. | ||
4 | * | ||
5 | * Thomas Horsten <thh@lasat.com> | ||
6 | * Copyright (C) 2000 LASAT Networks A/S. | ||
7 | * | ||
8 | * Brian Murphy <brian@murphy.dk> | ||
9 | * | ||
10 | * This program is free software; you can distribute it and/or modify it | ||
11 | * under the terms of the GNU General Public License (Version 2) as | ||
12 | * published by the Free Software Foundation. | ||
13 | * | ||
14 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
15 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
16 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
17 | * for more details. | ||
18 | * | ||
19 | * You should have received a copy of the GNU General Public License along | ||
20 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
21 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | ||
22 | * | ||
23 | * Lasat specific setup. | ||
24 | */ | ||
25 | #include <linux/init.h> | ||
26 | #include <linux/sched.h> | ||
27 | #include <linux/pci.h> | ||
28 | #include <linux/interrupt.h> | ||
29 | #include <linux/tty.h> | ||
30 | #include <linux/serial.h> | ||
31 | #include <linux/serial_core.h> | ||
32 | |||
33 | #include <asm/time.h> | ||
34 | #include <asm/cpu.h> | ||
35 | #include <asm/bootinfo.h> | ||
36 | #include <asm/irq.h> | ||
37 | #include <asm/lasat/lasat.h> | ||
38 | #include <asm/lasat/serial.h> | ||
39 | |||
40 | #ifdef CONFIG_PICVUE | ||
41 | #include <linux/notifier.h> | ||
42 | #endif | ||
43 | |||
44 | #include "ds1603.h" | ||
45 | #include <asm/lasat/ds1603.h> | ||
46 | #include <asm/lasat/picvue.h> | ||
47 | #include <asm/lasat/eeprom.h> | ||
48 | |||
49 | #include "prom.h" | ||
50 | |||
51 | int lasat_command_line = 0; | ||
52 | void lasatint_init(void); | ||
53 | |||
54 | extern void lasat_reboot_setup(void); | ||
55 | extern void pcisetup(void); | ||
56 | extern void edhac_init(void *, void *, void *); | ||
57 | extern void addrflt_init(void); | ||
58 | |||
59 | struct lasat_misc lasat_misc_info[N_MACHTYPES] = { | ||
60 | {(void *)KSEG1ADDR(0x1c840000), (void *)KSEG1ADDR(0x1c800000), 2}, | ||
61 | {(void *)KSEG1ADDR(0x11080000), (void *)KSEG1ADDR(0x11000000), 6} | ||
62 | }; | ||
63 | |||
64 | struct lasat_misc *lasat_misc = NULL; | ||
65 | |||
66 | #ifdef CONFIG_DS1603 | ||
67 | static struct ds_defs ds_defs[N_MACHTYPES] = { | ||
68 | { (void *)DS1603_REG_100, (void *)DS1603_REG_100, | ||
69 | DS1603_RST_100, DS1603_CLK_100, DS1603_DATA_100, | ||
70 | DS1603_DATA_SHIFT_100, 0, 0 }, | ||
71 | { (void *)DS1603_REG_200, (void *)DS1603_DATA_REG_200, | ||
72 | DS1603_RST_200, DS1603_CLK_200, DS1603_DATA_200, | ||
73 | DS1603_DATA_READ_SHIFT_200, 1, 2000 } | ||
74 | }; | ||
75 | #endif | ||
76 | |||
77 | #ifdef CONFIG_PICVUE | ||
78 | #include "picvue.h" | ||
79 | static struct pvc_defs pvc_defs[N_MACHTYPES] = { | ||
80 | { (void *)PVC_REG_100, PVC_DATA_SHIFT_100, PVC_DATA_M_100, | ||
81 | PVC_E_100, PVC_RW_100, PVC_RS_100 }, | ||
82 | { (void *)PVC_REG_200, PVC_DATA_SHIFT_200, PVC_DATA_M_200, | ||
83 | PVC_E_200, PVC_RW_200, PVC_RS_200 } | ||
84 | }; | ||
85 | #endif | ||
86 | |||
87 | static int lasat_panic_display(struct notifier_block *this, | ||
88 | unsigned long event, void *ptr) | ||
89 | { | ||
90 | #ifdef CONFIG_PICVUE | ||
91 | unsigned char *string = ptr; | ||
92 | if (string == NULL) | ||
93 | string = "Kernel Panic"; | ||
94 | pvc_dump_string(string); | ||
95 | #endif | ||
96 | return NOTIFY_DONE; | ||
97 | } | ||
98 | |||
99 | static int lasat_panic_prom_monitor(struct notifier_block *this, | ||
100 | unsigned long event, void *ptr) | ||
101 | { | ||
102 | prom_monitor(); | ||
103 | return NOTIFY_DONE; | ||
104 | } | ||
105 | |||
106 | static struct notifier_block lasat_panic_block[] = | ||
107 | { | ||
108 | { lasat_panic_display, NULL, INT_MAX }, | ||
109 | { lasat_panic_prom_monitor, NULL, INT_MIN } | ||
110 | }; | ||
111 | |||
112 | static void lasat_time_init(void) | ||
113 | { | ||
114 | mips_hpt_frequency = lasat_board_info.li_cpu_hz / 2; | ||
115 | } | ||
116 | |||
117 | void __init plat_timer_setup(struct irqaction *irq) | ||
118 | { | ||
119 | change_c0_status(ST0_IM, IE_IRQ0 | IE_IRQ5); | ||
120 | } | ||
121 | |||
122 | #define DYNAMIC_SERIAL_INIT | ||
123 | #ifdef DYNAMIC_SERIAL_INIT | ||
124 | void __init serial_init(void) | ||
125 | { | ||
126 | #ifdef CONFIG_SERIAL_8250 | ||
127 | struct uart_port s; | ||
128 | |||
129 | memset(&s, 0, sizeof(s)); | ||
130 | |||
131 | s.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST; | ||
132 | s.iotype = UPIO_MEM; | ||
133 | |||
134 | if (mips_machtype == MACH_LASAT_100) { | ||
135 | s.uartclk = LASAT_BASE_BAUD_100 * 16; | ||
136 | s.irq = LASATINT_UART_100; | ||
137 | s.regshift = LASAT_UART_REGS_SHIFT_100; | ||
138 | s.membase = (char *)KSEG1ADDR(LASAT_UART_REGS_BASE_100); | ||
139 | } else { | ||
140 | s.uartclk = LASAT_BASE_BAUD_200 * 16; | ||
141 | s.irq = LASATINT_UART_200; | ||
142 | s.regshift = LASAT_UART_REGS_SHIFT_200; | ||
143 | s.membase = (char *)KSEG1ADDR(LASAT_UART_REGS_BASE_200); | ||
144 | } | ||
145 | |||
146 | if (early_serial_setup(&s) != 0) | ||
147 | printk(KERN_ERR "Serial setup failed!\n"); | ||
148 | #endif | ||
149 | } | ||
150 | #endif | ||
151 | |||
152 | void __init plat_mem_setup(void) | ||
153 | { | ||
154 | int i; | ||
155 | lasat_misc = &lasat_misc_info[mips_machtype]; | ||
156 | #ifdef CONFIG_PICVUE | ||
157 | picvue = &pvc_defs[mips_machtype]; | ||
158 | #endif | ||
159 | |||
160 | /* Set up panic notifier */ | ||
161 | for (i = 0; i < sizeof(lasat_panic_block) / sizeof(struct notifier_block); i++) | ||
162 | atomic_notifier_chain_register(&panic_notifier_list, | ||
163 | &lasat_panic_block[i]); | ||
164 | |||
165 | lasat_reboot_setup(); | ||
166 | |||
167 | board_time_init = lasat_time_init; | ||
168 | |||
169 | #ifdef CONFIG_DS1603 | ||
170 | ds1603 = &ds_defs[mips_machtype]; | ||
171 | rtc_mips_get_time = ds1603_read; | ||
172 | rtc_mips_set_time = ds1603_set; | ||
173 | #endif | ||
174 | |||
175 | #ifdef DYNAMIC_SERIAL_INIT | ||
176 | serial_init(); | ||
177 | #endif | ||
178 | /* Switch from prom exception handler to normal mode */ | ||
179 | change_c0_status(ST0_BEV,0); | ||
180 | |||
181 | pr_info("Lasat specific initialization complete\n"); | ||
182 | } | ||
diff --git a/arch/mips/lasat/sysctl.c b/arch/mips/lasat/sysctl.c deleted file mode 100644 index 699ab1886ceb..000000000000 --- a/arch/mips/lasat/sysctl.c +++ /dev/null | |||
@@ -1,441 +0,0 @@ | |||
1 | /* | ||
2 | * Thomas Horsten <thh@lasat.com> | ||
3 | * Copyright (C) 2000 LASAT Networks A/S. | ||
4 | * | ||
5 | * This program is free software; you can distribute it and/or modify it | ||
6 | * under the terms of the GNU General Public License (Version 2) as | ||
7 | * published by the Free Software Foundation. | ||
8 | * | ||
9 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
11 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
12 | * for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License along | ||
15 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
16 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | ||
17 | * | ||
18 | * Routines specific to the LASAT boards | ||
19 | */ | ||
20 | #include <linux/types.h> | ||
21 | #include <asm/lasat/lasat.h> | ||
22 | |||
23 | #include <linux/module.h> | ||
24 | #include <linux/sysctl.h> | ||
25 | #include <linux/stddef.h> | ||
26 | #include <linux/init.h> | ||
27 | #include <linux/fs.h> | ||
28 | #include <linux/ctype.h> | ||
29 | #include <linux/string.h> | ||
30 | #include <linux/net.h> | ||
31 | #include <linux/inet.h> | ||
32 | #include <linux/mutex.h> | ||
33 | #include <asm/uaccess.h> | ||
34 | |||
35 | #include "sysctl.h" | ||
36 | #include "ds1603.h" | ||
37 | |||
38 | static DEFINE_MUTEX(lasat_info_mutex); | ||
39 | |||
40 | /* Strategy function to write EEPROM after changing string entry */ | ||
41 | int sysctl_lasatstring(ctl_table *table, int *name, int nlen, | ||
42 | void *oldval, size_t *oldlenp, | ||
43 | void *newval, size_t newlen) | ||
44 | { | ||
45 | int r; | ||
46 | mutex_lock(&lasat_info_mutex); | ||
47 | r = sysctl_string(table, name, | ||
48 | nlen, oldval, oldlenp, newval, newlen); | ||
49 | if (r < 0) { | ||
50 | mutex_unlock(&lasat_info_mutex); | ||
51 | return r; | ||
52 | } | ||
53 | if (newval && newlen) { | ||
54 | lasat_write_eeprom_info(); | ||
55 | } | ||
56 | mutex_unlock(&lasat_info_mutex); | ||
57 | return 1; | ||
58 | } | ||
59 | |||
60 | |||
61 | /* And the same for proc */ | ||
62 | int proc_dolasatstring(ctl_table *table, int write, struct file *filp, | ||
63 | void *buffer, size_t *lenp, loff_t *ppos) | ||
64 | { | ||
65 | int r; | ||
66 | mutex_lock(&lasat_info_mutex); | ||
67 | r = proc_dostring(table, write, filp, buffer, lenp, ppos); | ||
68 | if ( (!write) || r) { | ||
69 | mutex_unlock(&lasat_info_mutex); | ||
70 | return r; | ||
71 | } | ||
72 | lasat_write_eeprom_info(); | ||
73 | mutex_unlock(&lasat_info_mutex); | ||
74 | return 0; | ||
75 | } | ||
76 | |||
77 | /* proc function to write EEPROM after changing int entry */ | ||
78 | int proc_dolasatint(ctl_table *table, int write, struct file *filp, | ||
79 | void *buffer, size_t *lenp, loff_t *ppos) | ||
80 | { | ||
81 | int r; | ||
82 | mutex_lock(&lasat_info_mutex); | ||
83 | r = proc_dointvec(table, write, filp, buffer, lenp, ppos); | ||
84 | if ( (!write) || r) { | ||
85 | mutex_unlock(&lasat_info_mutex); | ||
86 | return r; | ||
87 | } | ||
88 | lasat_write_eeprom_info(); | ||
89 | mutex_unlock(&lasat_info_mutex); | ||
90 | return 0; | ||
91 | } | ||
92 | |||
93 | static int rtctmp; | ||
94 | |||
95 | #ifdef CONFIG_DS1603 | ||
96 | /* proc function to read/write RealTime Clock */ | ||
97 | int proc_dolasatrtc(ctl_table *table, int write, struct file *filp, | ||
98 | void *buffer, size_t *lenp, loff_t *ppos) | ||
99 | { | ||
100 | int r; | ||
101 | mutex_lock(&lasat_info_mutex); | ||
102 | if (!write) { | ||
103 | rtctmp = ds1603_read(); | ||
104 | /* check for time < 0 and set to 0 */ | ||
105 | if (rtctmp < 0) | ||
106 | rtctmp = 0; | ||
107 | } | ||
108 | r = proc_dointvec(table, write, filp, buffer, lenp, ppos); | ||
109 | if ( (!write) || r) { | ||
110 | mutex_unlock(&lasat_info_mutex); | ||
111 | return r; | ||
112 | } | ||
113 | ds1603_set(rtctmp); | ||
114 | mutex_unlock(&lasat_info_mutex); | ||
115 | return 0; | ||
116 | } | ||
117 | #endif | ||
118 | |||
119 | /* Sysctl for setting the IP addresses */ | ||
120 | int sysctl_lasat_intvec(ctl_table *table, int *name, int nlen, | ||
121 | void *oldval, size_t *oldlenp, | ||
122 | void *newval, size_t newlen) | ||
123 | { | ||
124 | int r; | ||
125 | mutex_lock(&lasat_info_mutex); | ||
126 | r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen); | ||
127 | if (r < 0) { | ||
128 | mutex_unlock(&lasat_info_mutex); | ||
129 | return r; | ||
130 | } | ||
131 | if (newval && newlen) { | ||
132 | lasat_write_eeprom_info(); | ||
133 | } | ||
134 | mutex_unlock(&lasat_info_mutex); | ||
135 | return 1; | ||
136 | } | ||
137 | |||
138 | #ifdef CONFIG_DS1603 | ||
139 | /* Same for RTC */ | ||
140 | int sysctl_lasat_rtc(ctl_table *table, int *name, int nlen, | ||
141 | void *oldval, size_t *oldlenp, | ||
142 | void *newval, size_t newlen) | ||
143 | { | ||
144 | int r; | ||
145 | mutex_lock(&lasat_info_mutex); | ||
146 | rtctmp = ds1603_read(); | ||
147 | if (rtctmp < 0) | ||
148 | rtctmp = 0; | ||
149 | r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen); | ||
150 | if (r < 0) { | ||
151 | mutex_unlock(&lasat_info_mutex); | ||
152 | return r; | ||
153 | } | ||
154 | if (newval && newlen) { | ||
155 | ds1603_set(rtctmp); | ||
156 | } | ||
157 | mutex_unlock(&lasat_info_mutex); | ||
158 | return 1; | ||
159 | } | ||
160 | #endif | ||
161 | |||
162 | #ifdef CONFIG_INET | ||
163 | static char lasat_bcastaddr[16]; | ||
164 | |||
165 | void update_bcastaddr(void) | ||
166 | { | ||
167 | unsigned int ip; | ||
168 | |||
169 | ip = (lasat_board_info.li_eeprom_info.ipaddr & | ||
170 | lasat_board_info.li_eeprom_info.netmask) | | ||
171 | ~lasat_board_info.li_eeprom_info.netmask; | ||
172 | |||
173 | sprintf(lasat_bcastaddr, "%d.%d.%d.%d", | ||
174 | (ip ) & 0xff, | ||
175 | (ip >> 8) & 0xff, | ||
176 | (ip >> 16) & 0xff, | ||
177 | (ip >> 24) & 0xff); | ||
178 | } | ||
179 | |||
180 | static char proc_lasat_ipbuf[32]; | ||
181 | /* Parsing of IP address */ | ||
182 | int proc_lasat_ip(ctl_table *table, int write, struct file *filp, | ||
183 | void *buffer, size_t *lenp, loff_t *ppos) | ||
184 | { | ||
185 | int len; | ||
186 | unsigned int ip; | ||
187 | char *p, c; | ||
188 | |||
189 | if (!table->data || !table->maxlen || !*lenp || | ||
190 | (*ppos && !write)) { | ||
191 | *lenp = 0; | ||
192 | return 0; | ||
193 | } | ||
194 | |||
195 | mutex_lock(&lasat_info_mutex); | ||
196 | if (write) { | ||
197 | len = 0; | ||
198 | p = buffer; | ||
199 | while (len < *lenp) { | ||
200 | if(get_user(c, p++)) { | ||
201 | mutex_unlock(&lasat_info_mutex); | ||
202 | return -EFAULT; | ||
203 | } | ||
204 | if (c == 0 || c == '\n') | ||
205 | break; | ||
206 | len++; | ||
207 | } | ||
208 | if (len >= sizeof(proc_lasat_ipbuf)-1) | ||
209 | len = sizeof(proc_lasat_ipbuf) - 1; | ||
210 | if (copy_from_user(proc_lasat_ipbuf, buffer, len)) | ||
211 | { | ||
212 | mutex_unlock(&lasat_info_mutex); | ||
213 | return -EFAULT; | ||
214 | } | ||
215 | proc_lasat_ipbuf[len] = 0; | ||
216 | *ppos += *lenp; | ||
217 | /* Now see if we can convert it to a valid IP */ | ||
218 | ip = in_aton(proc_lasat_ipbuf); | ||
219 | *(unsigned int *)(table->data) = ip; | ||
220 | lasat_write_eeprom_info(); | ||
221 | } else { | ||
222 | ip = *(unsigned int *)(table->data); | ||
223 | sprintf(proc_lasat_ipbuf, "%d.%d.%d.%d", | ||
224 | (ip ) & 0xff, | ||
225 | (ip >> 8) & 0xff, | ||
226 | (ip >> 16) & 0xff, | ||
227 | (ip >> 24) & 0xff); | ||
228 | len = strlen(proc_lasat_ipbuf); | ||
229 | if (len > *lenp) | ||
230 | len = *lenp; | ||
231 | if (len) | ||
232 | if(copy_to_user(buffer, proc_lasat_ipbuf, len)) { | ||
233 | mutex_unlock(&lasat_info_mutex); | ||
234 | return -EFAULT; | ||
235 | } | ||
236 | if (len < *lenp) { | ||
237 | if(put_user('\n', ((char *) buffer) + len)) { | ||
238 | mutex_unlock(&lasat_info_mutex); | ||
239 | return -EFAULT; | ||
240 | } | ||
241 | len++; | ||
242 | } | ||
243 | *lenp = len; | ||
244 | *ppos += len; | ||
245 | } | ||
246 | update_bcastaddr(); | ||
247 | mutex_unlock(&lasat_info_mutex); | ||
248 | return 0; | ||
249 | } | ||
250 | #endif /* defined(CONFIG_INET) */ | ||
251 | |||
252 | static int sysctl_lasat_eeprom_value(ctl_table *table, int *name, int nlen, | ||
253 | void *oldval, size_t *oldlenp, | ||
254 | void *newval, size_t newlen) | ||
255 | { | ||
256 | int r; | ||
257 | |||
258 | mutex_lock(&lasat_info_mutex); | ||
259 | r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen); | ||
260 | if (r < 0) { | ||
261 | mutex_unlock(&lasat_info_mutex); | ||
262 | return r; | ||
263 | } | ||
264 | |||
265 | if (newval && newlen) | ||
266 | { | ||
267 | if (name && *name == LASAT_PRID) | ||
268 | lasat_board_info.li_eeprom_info.prid = *(int*)newval; | ||
269 | |||
270 | lasat_write_eeprom_info(); | ||
271 | lasat_init_board_info(); | ||
272 | } | ||
273 | mutex_unlock(&lasat_info_mutex); | ||
274 | |||
275 | return 0; | ||
276 | } | ||
277 | |||
278 | int proc_lasat_eeprom_value(ctl_table *table, int write, struct file *filp, | ||
279 | void *buffer, size_t *lenp, loff_t *ppos) | ||
280 | { | ||
281 | int r; | ||
282 | mutex_lock(&lasat_info_mutex); | ||
283 | r = proc_dointvec(table, write, filp, buffer, lenp, ppos); | ||
284 | if ( (!write) || r) { | ||
285 | mutex_unlock(&lasat_info_mutex); | ||
286 | return r; | ||
287 | } | ||
288 | if (filp && filp->f_path.dentry) | ||
289 | { | ||
290 | if (!strcmp(filp->f_path.dentry->d_name.name, "prid")) | ||
291 | lasat_board_info.li_eeprom_info.prid = lasat_board_info.li_prid; | ||
292 | if (!strcmp(filp->f_path.dentry->d_name.name, "debugaccess")) | ||
293 | lasat_board_info.li_eeprom_info.debugaccess = lasat_board_info.li_debugaccess; | ||
294 | } | ||
295 | lasat_write_eeprom_info(); | ||
296 | mutex_unlock(&lasat_info_mutex); | ||
297 | return 0; | ||
298 | } | ||
299 | |||
300 | extern int lasat_boot_to_service; | ||
301 | |||
302 | #ifdef CONFIG_SYSCTL | ||
303 | |||
304 | static ctl_table lasat_table[] = { | ||
305 | { | ||
306 | .ctl_name = CTL_UNNUMBERED, | ||
307 | .procname = "cpu-hz", | ||
308 | .data = &lasat_board_info.li_cpu_hz, | ||
309 | .maxlen = sizeof(int), | ||
310 | .mode = 0444, | ||
311 | .proc_handler = &proc_dointvec, | ||
312 | .strategy = &sysctl_intvec | ||
313 | }, | ||
314 | { | ||
315 | .ctl_name = CTL_UNNUMBERED, | ||
316 | .procname = "bus-hz", | ||
317 | .data = &lasat_board_info.li_bus_hz, | ||
318 | .maxlen = sizeof(int), | ||
319 | .mode = 0444, | ||
320 | .proc_handler = &proc_dointvec, | ||
321 | .strategy = &sysctl_intvec | ||
322 | }, | ||
323 | { | ||
324 | .ctl_name = CTL_UNNUMBERED, | ||
325 | .procname = "bmid", | ||
326 | .data = &lasat_board_info.li_bmid, | ||
327 | .maxlen = sizeof(int), | ||
328 | .mode = 0444, | ||
329 | .proc_handler = &proc_dointvec, | ||
330 | .strategy = &sysctl_intvec | ||
331 | }, | ||
332 | { | ||
333 | .ctl_name = CTL_UNNUMBERED, | ||
334 | .procname = "prid", | ||
335 | .data = &lasat_board_info.li_prid, | ||
336 | .maxlen = sizeof(int), | ||
337 | .mode = 0644, | ||
338 | .proc_handler = &proc_lasat_eeprom_value, | ||
339 | .strategy = &sysctl_lasat_eeprom_value | ||
340 | }, | ||
341 | #ifdef CONFIG_INET | ||
342 | { | ||
343 | .ctl_name = CTL_UNNUMBERED, | ||
344 | .procname = "ipaddr", | ||
345 | .data = &lasat_board_info.li_eeprom_info.ipaddr, | ||
346 | .maxlen = sizeof(int), | ||
347 | .mode = 0644, | ||
348 | .proc_handler = &proc_lasat_ip, | ||
349 | .strategy = &sysctl_lasat_intvec | ||
350 | }, | ||
351 | { | ||
352 | .ctl_name = LASAT_NETMASK, | ||
353 | .procname = "netmask", | ||
354 | .data = &lasat_board_info.li_eeprom_info.netmask, | ||
355 | .maxlen = sizeof(int), | ||
356 | .mode = 0644, | ||
357 | .proc_handler = &proc_lasat_ip, | ||
358 | .strategy = &sysctl_lasat_intvec | ||
359 | }, | ||
360 | { | ||
361 | .ctl_name = CTL_UNNUMBERED, | ||
362 | .procname = "bcastaddr", | ||
363 | .data = &lasat_bcastaddr, | ||
364 | .maxlen = sizeof(lasat_bcastaddr), | ||
365 | .mode = 0600, | ||
366 | .proc_handler = &proc_dostring, | ||
367 | .strategy = &sysctl_string | ||
368 | }, | ||
369 | #endif | ||
370 | { | ||
371 | .ctl_name = CTL_UNNUMBERED, | ||
372 | .procname = "passwd_hash", | ||
373 | .data = &lasat_board_info.li_eeprom_info.passwd_hash, | ||
374 | .maxlen = sizeof(lasat_board_info.li_eeprom_info.passwd_hash), | ||
375 | .mode = 0600, | ||
376 | .proc_handler = &proc_dolasatstring, | ||
377 | .strategy = &sysctl_lasatstring | ||
378 | }, | ||
379 | { | ||
380 | .ctl_name = CTL_UNNUMBERED, | ||
381 | .procname = "boot-service", | ||
382 | .data = &lasat_boot_to_service, | ||
383 | .maxlen = sizeof(int), | ||
384 | .mode = 0644, | ||
385 | .proc_handler = &proc_dointvec, | ||
386 | .strategy = &sysctl_intvec | ||
387 | }, | ||
388 | #ifdef CONFIG_DS1603 | ||
389 | { | ||
390 | .ctl_name = CTL_UNNUMBERED, | ||
391 | .procname = "rtc", | ||
392 | .data = &rtctmp, | ||
393 | .maxlen = sizeof(int), | ||
394 | .mode = 0644, | ||
395 | .proc_handler = &proc_dolasatrtc, | ||
396 | .strategy = &sysctl_lasat_rtc | ||
397 | }, | ||
398 | #endif | ||
399 | { | ||
400 | .ctl_name = CTL_UNNUMBERED, | ||
401 | .procname = "namestr", | ||
402 | .data = &lasat_board_info.li_namestr, | ||
403 | .maxlen = sizeof(lasat_board_info.li_namestr), | ||
404 | .mode = 0444, | ||
405 | .proc_handler = &proc_dostring, | ||
406 | .strategy = &sysctl_string | ||
407 | }, | ||
408 | { | ||
409 | .ctl_name = CTL_UNNUMBERED, | ||
410 | .procname = "typestr", | ||
411 | .data = &lasat_board_info.li_typestr, | ||
412 | .maxlen = sizeof(lasat_board_info.li_typestr), | ||
413 | .mode = 0444, | ||
414 | .proc_handler = &proc_dostring, | ||
415 | .strategy = &sysctl_string | ||
416 | }, | ||
417 | {} | ||
418 | }; | ||
419 | |||
420 | static ctl_table lasat_root_table[] = { | ||
421 | { | ||
422 | .ctl_name = CTL_UNNUMBERED, | ||
423 | .procname = "lasat", | ||
424 | .mode = 0555, | ||
425 | .child = lasat_table | ||
426 | }, | ||
427 | {} | ||
428 | }; | ||
429 | |||
430 | static int __init lasat_register_sysctl(void) | ||
431 | { | ||
432 | struct ctl_table_header *lasat_table_header; | ||
433 | |||
434 | lasat_table_header = | ||
435 | register_sysctl_table(lasat_root_table); | ||
436 | |||
437 | return 0; | ||
438 | } | ||
439 | |||
440 | __initcall(lasat_register_sysctl); | ||
441 | #endif /* CONFIG_SYSCTL */ | ||
diff --git a/arch/mips/lasat/sysctl.h b/arch/mips/lasat/sysctl.h deleted file mode 100644 index 4d139d2adbdf..000000000000 --- a/arch/mips/lasat/sysctl.h +++ /dev/null | |||
@@ -1,24 +0,0 @@ | |||
1 | /* | ||
2 | * LASAT sysctl values | ||
3 | */ | ||
4 | |||
5 | #ifndef _LASAT_SYSCTL_H | ||
6 | #define _LASAT_SYSCTL_H | ||
7 | |||
8 | /* /proc/sys/lasat */ | ||
9 | enum { | ||
10 | LASAT_CPU_HZ=1, | ||
11 | LASAT_BUS_HZ, | ||
12 | LASAT_MODEL, | ||
13 | LASAT_PRID, | ||
14 | LASAT_IPADDR, | ||
15 | LASAT_NETMASK, | ||
16 | LASAT_BCAST, | ||
17 | LASAT_PASSWORD, | ||
18 | LASAT_SBOOT, | ||
19 | LASAT_RTC, | ||
20 | LASAT_NAMESTR, | ||
21 | LASAT_TYPESTR, | ||
22 | }; | ||
23 | |||
24 | #endif /* _LASAT_SYSCTL_H */ | ||
diff --git a/arch/mips/lemote/lm2e/Makefile b/arch/mips/lemote/lm2e/Makefile new file mode 100644 index 000000000000..fb1b48c48cb3 --- /dev/null +++ b/arch/mips/lemote/lm2e/Makefile | |||
@@ -0,0 +1,7 @@ | |||
1 | # | ||
2 | # Makefile for Lemote Fulong mini-PC board. | ||
3 | # | ||
4 | |||
5 | obj-y += setup.o prom.o reset.o irq.o pci.o bonito-irq.o dbg_io.o mem.o | ||
6 | EXTRA_AFLAGS := $(CFLAGS) | ||
7 | |||
diff --git a/arch/mips/lemote/lm2e/bonito-irq.c b/arch/mips/lemote/lm2e/bonito-irq.c new file mode 100644 index 000000000000..8fc3bce7075b --- /dev/null +++ b/arch/mips/lemote/lm2e/bonito-irq.c | |||
@@ -0,0 +1,74 @@ | |||
1 | /* | ||
2 | * Copyright 2001 MontaVista Software Inc. | ||
3 | * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net | ||
4 | * Copyright (C) 2000, 2001 Ralf Baechle (ralf@gnu.org) | ||
5 | * | ||
6 | * Copyright (C) 2007 Lemote Inc. & Insititute of Computing Technology | ||
7 | * Author: Fuxin Zhang, zhangfx@lemote.com | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify it | ||
10 | * under the terms of the GNU General Public License as published by the | ||
11 | * Free Software Foundation; either version 2 of the License, or (at your | ||
12 | * option) any later version. | ||
13 | * | ||
14 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | ||
15 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
16 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN | ||
17 | * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
18 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
19 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | ||
20 | * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||
21 | * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
22 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
23 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
24 | * | ||
25 | * You should have received a copy of the GNU General Public License along | ||
26 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
27 | * 675 Mass Ave, Cambridge, MA 02139, USA. | ||
28 | * | ||
29 | */ | ||
30 | #include <linux/errno.h> | ||
31 | #include <linux/init.h> | ||
32 | #include <linux/io.h> | ||
33 | #include <linux/types.h> | ||
34 | #include <linux/interrupt.h> | ||
35 | #include <linux/irq.h> | ||
36 | |||
37 | #include <asm/mips-boards/bonito64.h> | ||
38 | |||
39 | |||
40 | static inline void bonito_irq_enable(unsigned int irq) | ||
41 | { | ||
42 | BONITO_INTENSET = (1 << (irq - BONITO_IRQ_BASE)); | ||
43 | mmiowb(); | ||
44 | } | ||
45 | |||
46 | static inline void bonito_irq_disable(unsigned int irq) | ||
47 | { | ||
48 | BONITO_INTENCLR = (1 << (irq - BONITO_IRQ_BASE)); | ||
49 | mmiowb(); | ||
50 | } | ||
51 | |||
52 | static struct irq_chip bonito_irq_type = { | ||
53 | .name = "bonito_irq", | ||
54 | .ack = bonito_irq_disable, | ||
55 | .mask = bonito_irq_disable, | ||
56 | .mask_ack = bonito_irq_disable, | ||
57 | .unmask = bonito_irq_enable, | ||
58 | }; | ||
59 | |||
60 | static struct irqaction dma_timeout_irqaction = { | ||
61 | .handler = no_action, | ||
62 | .name = "dma_timeout", | ||
63 | }; | ||
64 | |||
65 | void bonito_irq_init(void) | ||
66 | { | ||
67 | u32 i; | ||
68 | |||
69 | for (i = BONITO_IRQ_BASE; i < BONITO_IRQ_BASE + 32; i++) { | ||
70 | set_irq_chip_and_handler(i, &bonito_irq_type, handle_level_irq); | ||
71 | } | ||
72 | |||
73 | setup_irq(BONITO_IRQ_BASE + 10, &dma_timeout_irqaction); | ||
74 | } | ||
diff --git a/arch/mips/lemote/lm2e/dbg_io.c b/arch/mips/lemote/lm2e/dbg_io.c new file mode 100644 index 000000000000..6c95da3ca76f --- /dev/null +++ b/arch/mips/lemote/lm2e/dbg_io.c | |||
@@ -0,0 +1,146 @@ | |||
1 | /* | ||
2 | * Copyright 2001 MontaVista Software Inc. | ||
3 | * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net | ||
4 | * Copyright (C) 2000, 2001 Ralf Baechle (ralf@gnu.org) | ||
5 | * | ||
6 | * Copyright (C) 2007 Lemote Inc. & Insititute of Computing Technology | ||
7 | * Author: Fuxin Zhang, zhangfx@lemote.com | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify it | ||
10 | * under the terms of the GNU General Public License as published by the | ||
11 | * Free Software Foundation; either version 2 of the License, or (at your | ||
12 | * option) any later version. | ||
13 | * | ||
14 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | ||
15 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
16 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN | ||
17 | * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
18 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
19 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | ||
20 | * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||
21 | * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
22 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
23 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
24 | * | ||
25 | * You should have received a copy of the GNU General Public License along | ||
26 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
27 | * 675 Mass Ave, Cambridge, MA 02139, USA. | ||
28 | * | ||
29 | */ | ||
30 | |||
31 | #include <linux/io.h> | ||
32 | #include <linux/init.h> | ||
33 | #include <linux/types.h> | ||
34 | |||
35 | #include <asm/serial.h> | ||
36 | |||
37 | #define UART16550_BAUD_2400 2400 | ||
38 | #define UART16550_BAUD_4800 4800 | ||
39 | #define UART16550_BAUD_9600 9600 | ||
40 | #define UART16550_BAUD_19200 19200 | ||
41 | #define UART16550_BAUD_38400 38400 | ||
42 | #define UART16550_BAUD_57600 57600 | ||
43 | #define UART16550_BAUD_115200 115200 | ||
44 | |||
45 | #define UART16550_PARITY_NONE 0 | ||
46 | #define UART16550_PARITY_ODD 0x08 | ||
47 | #define UART16550_PARITY_EVEN 0x18 | ||
48 | #define UART16550_PARITY_MARK 0x28 | ||
49 | #define UART16550_PARITY_SPACE 0x38 | ||
50 | |||
51 | #define UART16550_DATA_5BIT 0x0 | ||
52 | #define UART16550_DATA_6BIT 0x1 | ||
53 | #define UART16550_DATA_7BIT 0x2 | ||
54 | #define UART16550_DATA_8BIT 0x3 | ||
55 | |||
56 | #define UART16550_STOP_1BIT 0x0 | ||
57 | #define UART16550_STOP_2BIT 0x4 | ||
58 | |||
59 | /* ----------------------------------------------------- */ | ||
60 | |||
61 | /* === CONFIG === */ | ||
62 | #ifdef CONFIG_64BIT | ||
63 | #define BASE (0xffffffffbfd003f8) | ||
64 | #else | ||
65 | #define BASE (0xbfd003f8) | ||
66 | #endif | ||
67 | |||
68 | #define MAX_BAUD BASE_BAUD | ||
69 | /* === END OF CONFIG === */ | ||
70 | |||
71 | #define REG_OFFSET 1 | ||
72 | |||
73 | /* register offset */ | ||
74 | #define OFS_RCV_BUFFER 0 | ||
75 | #define OFS_TRANS_HOLD 0 | ||
76 | #define OFS_SEND_BUFFER 0 | ||
77 | #define OFS_INTR_ENABLE (1*REG_OFFSET) | ||
78 | #define OFS_INTR_ID (2*REG_OFFSET) | ||
79 | #define OFS_DATA_FORMAT (3*REG_OFFSET) | ||
80 | #define OFS_LINE_CONTROL (3*REG_OFFSET) | ||
81 | #define OFS_MODEM_CONTROL (4*REG_OFFSET) | ||
82 | #define OFS_RS232_OUTPUT (4*REG_OFFSET) | ||
83 | #define OFS_LINE_STATUS (5*REG_OFFSET) | ||
84 | #define OFS_MODEM_STATUS (6*REG_OFFSET) | ||
85 | #define OFS_RS232_INPUT (6*REG_OFFSET) | ||
86 | #define OFS_SCRATCH_PAD (7*REG_OFFSET) | ||
87 | |||
88 | #define OFS_DIVISOR_LSB (0*REG_OFFSET) | ||
89 | #define OFS_DIVISOR_MSB (1*REG_OFFSET) | ||
90 | |||
91 | /* memory-mapped read/write of the port */ | ||
92 | #define UART16550_READ(y) readb((char *)BASE + (y)) | ||
93 | #define UART16550_WRITE(y, z) writeb(z, (char *)BASE + (y)) | ||
94 | |||
95 | void debugInit(u32 baud, u8 data, u8 parity, u8 stop) | ||
96 | { | ||
97 | u32 divisor; | ||
98 | |||
99 | /* disable interrupts */ | ||
100 | UART16550_WRITE(OFS_INTR_ENABLE, 0); | ||
101 | |||
102 | /* set up buad rate */ | ||
103 | /* set DIAB bit */ | ||
104 | UART16550_WRITE(OFS_LINE_CONTROL, 0x80); | ||
105 | |||
106 | /* set divisor */ | ||
107 | divisor = MAX_BAUD / baud; | ||
108 | UART16550_WRITE(OFS_DIVISOR_LSB, divisor & 0xff); | ||
109 | UART16550_WRITE(OFS_DIVISOR_MSB, (divisor & 0xff00) >> 8); | ||
110 | |||
111 | /* clear DIAB bit */ | ||
112 | UART16550_WRITE(OFS_LINE_CONTROL, 0x0); | ||
113 | |||
114 | /* set data format */ | ||
115 | UART16550_WRITE(OFS_DATA_FORMAT, data | parity | stop); | ||
116 | } | ||
117 | |||
118 | static int remoteDebugInitialized; | ||
119 | |||
120 | u8 getDebugChar(void) | ||
121 | { | ||
122 | if (!remoteDebugInitialized) { | ||
123 | remoteDebugInitialized = 1; | ||
124 | debugInit(UART16550_BAUD_115200, | ||
125 | UART16550_DATA_8BIT, | ||
126 | UART16550_PARITY_NONE, UART16550_STOP_1BIT); | ||
127 | } | ||
128 | |||
129 | while ((UART16550_READ(OFS_LINE_STATUS) & 0x1) == 0) ; | ||
130 | return UART16550_READ(OFS_RCV_BUFFER); | ||
131 | } | ||
132 | |||
133 | int putDebugChar(u8 byte) | ||
134 | { | ||
135 | if (!remoteDebugInitialized) { | ||
136 | remoteDebugInitialized = 1; | ||
137 | /* | ||
138 | debugInit(UART16550_BAUD_115200, | ||
139 | UART16550_DATA_8BIT, | ||
140 | UART16550_PARITY_NONE, UART16550_STOP_1BIT); */ | ||
141 | } | ||
142 | |||
143 | while ((UART16550_READ(OFS_LINE_STATUS) & 0x20) == 0) ; | ||
144 | UART16550_WRITE(OFS_SEND_BUFFER, byte); | ||
145 | return 1; | ||
146 | } | ||
diff --git a/arch/mips/lemote/lm2e/irq.c b/arch/mips/lemote/lm2e/irq.c new file mode 100644 index 000000000000..05693bceaeaf --- /dev/null +++ b/arch/mips/lemote/lm2e/irq.c | |||
@@ -0,0 +1,145 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2007 Lemote Inc. & Insititute of Computing Technology | ||
3 | * Author: Fuxin Zhang, zhangfx@lemote.com | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it | ||
6 | * under the terms of the GNU General Public License as published by the | ||
7 | * Free Software Foundation; either version 2 of the License, or (at your | ||
8 | * option) any later version. | ||
9 | * | ||
10 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | ||
11 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
12 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN | ||
13 | * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
14 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
15 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | ||
16 | * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||
17 | * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
18 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
19 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
20 | * | ||
21 | * You should have received a copy of the GNU General Public License along | ||
22 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
23 | * 675 Mass Ave, Cambridge, MA 02139, USA. | ||
24 | * | ||
25 | */ | ||
26 | #include <linux/delay.h> | ||
27 | #include <linux/io.h> | ||
28 | #include <linux/irq.h> | ||
29 | #include <linux/init.h> | ||
30 | #include <linux/interrupt.h> | ||
31 | #include <linux/irq.h> | ||
32 | |||
33 | #include <asm/irq_cpu.h> | ||
34 | #include <asm/i8259.h> | ||
35 | #include <asm/mipsregs.h> | ||
36 | #include <asm/mips-boards/bonito64.h> | ||
37 | |||
38 | |||
39 | /* | ||
40 | * the first level int-handler will jump here if it is a bonito irq | ||
41 | */ | ||
42 | static void bonito_irqdispatch(void) | ||
43 | { | ||
44 | u32 int_status; | ||
45 | int i; | ||
46 | |||
47 | /* workaround the IO dma problem: let cpu looping to allow DMA finish */ | ||
48 | int_status = BONITO_INTISR; | ||
49 | if (int_status & (1 << 10)) { | ||
50 | while (int_status & (1 << 10)) { | ||
51 | udelay(1); | ||
52 | int_status = BONITO_INTISR; | ||
53 | } | ||
54 | } | ||
55 | |||
56 | /* Get pending sources, masked by current enables */ | ||
57 | int_status = BONITO_INTISR & BONITO_INTEN; | ||
58 | |||
59 | if (int_status != 0) { | ||
60 | i = __ffs(int_status); | ||
61 | int_status &= ~(1 << i); | ||
62 | do_IRQ(BONITO_IRQ_BASE + i); | ||
63 | } | ||
64 | } | ||
65 | |||
66 | static void i8259_irqdispatch(void) | ||
67 | { | ||
68 | int irq; | ||
69 | |||
70 | irq = i8259_irq(); | ||
71 | if (irq >= 0) { | ||
72 | do_IRQ(irq); | ||
73 | } else { | ||
74 | spurious_interrupt(); | ||
75 | } | ||
76 | |||
77 | } | ||
78 | |||
79 | asmlinkage void plat_irq_dispatch(void) | ||
80 | { | ||
81 | unsigned int pending = read_c0_cause() & read_c0_status() & ST0_IM; | ||
82 | |||
83 | if (pending & CAUSEF_IP7) { | ||
84 | do_IRQ(MIPS_CPU_IRQ_BASE + 7); | ||
85 | } else if (pending & CAUSEF_IP5) { | ||
86 | i8259_irqdispatch(); | ||
87 | } else if (pending & CAUSEF_IP2) { | ||
88 | bonito_irqdispatch(); | ||
89 | } else { | ||
90 | spurious_interrupt(); | ||
91 | } | ||
92 | } | ||
93 | |||
94 | static struct irqaction cascade_irqaction = { | ||
95 | .handler = no_action, | ||
96 | .mask = CPU_MASK_NONE, | ||
97 | .name = "cascade", | ||
98 | }; | ||
99 | |||
100 | void __init arch_init_irq(void) | ||
101 | { | ||
102 | extern void bonito_irq_init(void); | ||
103 | |||
104 | /* | ||
105 | * Clear all of the interrupts while we change the able around a bit. | ||
106 | * int-handler is not on bootstrap | ||
107 | */ | ||
108 | clear_c0_status(ST0_IM | ST0_BEV); | ||
109 | local_irq_disable(); | ||
110 | |||
111 | /* most bonito irq should be level triggered */ | ||
112 | BONITO_INTEDGE = BONITO_ICU_SYSTEMERR | BONITO_ICU_MASTERERR | | ||
113 | BONITO_ICU_RETRYERR | BONITO_ICU_MBOXES; | ||
114 | BONITO_INTSTEER = 0; | ||
115 | |||
116 | /* | ||
117 | * Mask out all interrupt by writing "1" to all bit position in | ||
118 | * the interrupt reset reg. | ||
119 | */ | ||
120 | BONITO_INTENCLR = ~0; | ||
121 | |||
122 | /* init all controller | ||
123 | * 0-15 ------> i8259 interrupt | ||
124 | * 16-23 ------> mips cpu interrupt | ||
125 | * 32-63 ------> bonito irq | ||
126 | */ | ||
127 | |||
128 | /* Sets the first-level interrupt dispatcher. */ | ||
129 | mips_cpu_irq_init(); | ||
130 | init_i8259_irqs(); | ||
131 | bonito_irq_init(); | ||
132 | |||
133 | /* | ||
134 | printk("GPIODATA=%x, GPIOIE=%x\n", BONITO_GPIODATA, BONITO_GPIOIE); | ||
135 | printk("INTEN=%x, INTSET=%x, INTCLR=%x, INTISR=%x\n", | ||
136 | BONITO_INTEN, BONITO_INTENSET, | ||
137 | BONITO_INTENCLR, BONITO_INTISR); | ||
138 | */ | ||
139 | |||
140 | /* bonito irq at IP2 */ | ||
141 | setup_irq(MIPS_CPU_IRQ_BASE + 2, &cascade_irqaction); | ||
142 | /* 8259 irq at IP5 */ | ||
143 | setup_irq(MIPS_CPU_IRQ_BASE + 5, &cascade_irqaction); | ||
144 | |||
145 | } | ||
diff --git a/arch/mips/lemote/lm2e/mem.c b/arch/mips/lemote/lm2e/mem.c new file mode 100644 index 000000000000..16cd21587d34 --- /dev/null +++ b/arch/mips/lemote/lm2e/mem.c | |||
@@ -0,0 +1,23 @@ | |||
1 | /* | ||
2 | * This program is free software; you can redistribute it and/or modify it | ||
3 | * under the terms of the GNU General Public License as published by the | ||
4 | * Free Software Foundation; either version 2 of the License, or (at your | ||
5 | * option) any later version. | ||
6 | */ | ||
7 | #include <linux/fs.h> | ||
8 | #include <linux/fcntl.h> | ||
9 | #include <linux/mm.h> | ||
10 | |||
11 | /* override of arch/mips/mm/cache.c: __uncached_access */ | ||
12 | int __uncached_access(struct file *file, unsigned long addr) | ||
13 | { | ||
14 | if (file->f_flags & O_SYNC) | ||
15 | return 1; | ||
16 | |||
17 | /* | ||
18 | * On the Lemote Loongson 2e system, the peripheral registers | ||
19 | * reside between 0x1000:0000 and 0x2000:0000. | ||
20 | */ | ||
21 | return addr >= __pa(high_memory) || | ||
22 | ((addr >= 0x10000000) && (addr < 0x20000000)); | ||
23 | } | ||
diff --git a/arch/mips/lemote/lm2e/pci.c b/arch/mips/lemote/lm2e/pci.c new file mode 100644 index 000000000000..1ade1cef3899 --- /dev/null +++ b/arch/mips/lemote/lm2e/pci.c | |||
@@ -0,0 +1,93 @@ | |||
1 | /* | ||
2 | * pci.c | ||
3 | * | ||
4 | * Copyright (C) 2007 Lemote, Inc. & Institute of Computing Technology | ||
5 | * Author: Fuxin Zhang, zhangfx@lemote.com | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License as published by the | ||
9 | * Free Software Foundation; either version 2 of the License, or (at your | ||
10 | * option) any later version. | ||
11 | * | ||
12 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | ||
13 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
14 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN | ||
15 | * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
16 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
17 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | ||
18 | * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||
19 | * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
20 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
21 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
22 | * | ||
23 | * You should have received a copy of the GNU General Public License along | ||
24 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
25 | * 675 Mass Ave, Cambridge, MA 02139, USA. | ||
26 | * | ||
27 | */ | ||
28 | #include <linux/types.h> | ||
29 | #include <linux/pci.h> | ||
30 | #include <linux/kernel.h> | ||
31 | #include <linux/init.h> | ||
32 | #include <asm/mips-boards/bonito64.h> | ||
33 | |||
34 | extern struct pci_ops bonito64_pci_ops; | ||
35 | |||
36 | static struct resource loongson2e_pci_mem_resource = { | ||
37 | .name = "LOONGSON2E PCI MEM", | ||
38 | .start = 0x14000000UL, | ||
39 | .end = 0x1fffffffUL, | ||
40 | .flags = IORESOURCE_MEM, | ||
41 | }; | ||
42 | |||
43 | static struct resource loongson2e_pci_io_resource = { | ||
44 | .name = "LOONGSON2E PCI IO MEM", | ||
45 | .start = 0x00004000UL, | ||
46 | .end = IO_SPACE_LIMIT, | ||
47 | .flags = IORESOURCE_IO, | ||
48 | }; | ||
49 | |||
50 | static struct pci_controller loongson2e_pci_controller = { | ||
51 | .pci_ops = &bonito64_pci_ops, | ||
52 | .io_resource = &loongson2e_pci_io_resource, | ||
53 | .mem_resource = &loongson2e_pci_mem_resource, | ||
54 | .mem_offset = 0x00000000UL, | ||
55 | .io_offset = 0x00000000UL, | ||
56 | }; | ||
57 | |||
58 | static void __init ict_pcimap(void) | ||
59 | { | ||
60 | /* | ||
61 | * local to PCI mapping: [256M,512M] -> [256M,512M]; differ from PMON | ||
62 | * | ||
63 | * CPU address space [256M,448M] is window for accessing pci space | ||
64 | * we set pcimap_lo[0,1,2] to map it to pci space [256M,448M] | ||
65 | * pcimap: bit18,pcimap_2; bit[17-12],lo2;bit[11-6],lo1;bit[5-0],lo0 | ||
66 | */ | ||
67 | /* 1,00 0110 ,0001 01,00 0000 */ | ||
68 | BONITO_PCIMAP = 0x46140; | ||
69 | |||
70 | /* 1, 00 0010, 0000,01, 00 0000 */ | ||
71 | /* BONITO_PCIMAP = 0x42040; */ | ||
72 | |||
73 | /* | ||
74 | * PCI to local mapping: [2G,2G+256M] -> [0,256M] | ||
75 | */ | ||
76 | BONITO_PCIBASE0 = 0x80000000; | ||
77 | BONITO_PCIBASE1 = 0x00800000; | ||
78 | BONITO_PCIBASE2 = 0x90000000; | ||
79 | |||
80 | } | ||
81 | |||
82 | static int __init pcibios_init(void) | ||
83 | { | ||
84 | extern int pci_probe_only; | ||
85 | pci_probe_only = 0; | ||
86 | |||
87 | ict_pcimap(); | ||
88 | register_pci_controller(&loongson2e_pci_controller); | ||
89 | |||
90 | return 0; | ||
91 | } | ||
92 | |||
93 | arch_initcall(pcibios_init); | ||
diff --git a/arch/mips/lemote/lm2e/prom.c b/arch/mips/lemote/lm2e/prom.c new file mode 100644 index 000000000000..67312d7acf2a --- /dev/null +++ b/arch/mips/lemote/lm2e/prom.c | |||
@@ -0,0 +1,104 @@ | |||
1 | /* | ||
2 | * Based on Ocelot Linux port, which is | ||
3 | * Copyright 2001 MontaVista Software Inc. | ||
4 | * Author: jsun@mvista.com or jsun@junsun.net | ||
5 | * | ||
6 | * Copyright 2003 ICT CAS | ||
7 | * Author: Michael Guo <guoyi@ict.ac.cn> | ||
8 | * | ||
9 | * Copyright (C) 2007 Lemote Inc. & Insititute of Computing Technology | ||
10 | * Author: Fuxin Zhang, zhangfx@lemote.com | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or modify it | ||
13 | * under the terms of the GNU General Public License as published by the | ||
14 | * Free Software Foundation; either version 2 of the License, or (at your | ||
15 | * option) any later version. | ||
16 | */ | ||
17 | #include <linux/init.h> | ||
18 | #include <linux/mm.h> | ||
19 | #include <linux/sched.h> | ||
20 | #include <linux/bootmem.h> | ||
21 | |||
22 | #include <asm/addrspace.h> | ||
23 | #include <asm/bootinfo.h> | ||
24 | |||
25 | extern unsigned long bus_clock; | ||
26 | extern unsigned long cpu_clock; | ||
27 | extern unsigned int memsize, highmemsize; | ||
28 | extern int putDebugChar(unsigned char byte); | ||
29 | |||
30 | static int argc; | ||
31 | /* pmon passes arguments in 32bit pointers */ | ||
32 | static int *arg; | ||
33 | static int *env; | ||
34 | |||
35 | const char *get_system_type(void) | ||
36 | { | ||
37 | return "lemote-fulong"; | ||
38 | } | ||
39 | |||
40 | void __init prom_init_cmdline(void) | ||
41 | { | ||
42 | int i; | ||
43 | long l; | ||
44 | |||
45 | /* arg[0] is "g", the rest is boot parameters */ | ||
46 | arcs_cmdline[0] = '\0'; | ||
47 | for (i = 1; i < argc; i++) { | ||
48 | l = (long)arg[i]; | ||
49 | if (strlen(arcs_cmdline) + strlen(((char *)l) + 1) | ||
50 | >= sizeof(arcs_cmdline)) | ||
51 | break; | ||
52 | strcat(arcs_cmdline, ((char *)l)); | ||
53 | strcat(arcs_cmdline, " "); | ||
54 | } | ||
55 | } | ||
56 | |||
57 | void __init prom_init(void) | ||
58 | { | ||
59 | long l; | ||
60 | argc = fw_arg0; | ||
61 | arg = (int *)fw_arg1; | ||
62 | env = (int *)fw_arg2; | ||
63 | |||
64 | mips_machgroup = MACH_GROUP_LEMOTE; | ||
65 | mips_machtype = MACH_LEMOTE_FULONG; | ||
66 | |||
67 | prom_init_cmdline(); | ||
68 | |||
69 | if ((strstr(arcs_cmdline, "console=")) == NULL) | ||
70 | strcat(arcs_cmdline, " console=ttyS0,115200"); | ||
71 | if ((strstr(arcs_cmdline, "root=")) == NULL) | ||
72 | strcat(arcs_cmdline, " root=/dev/hda1"); | ||
73 | |||
74 | #define parse_even_earlier(res, option, p) \ | ||
75 | do { \ | ||
76 | if (strncmp(option, (char *)p, strlen(option)) == 0) \ | ||
77 | res = simple_strtol((char *)p + strlen(option"="), \ | ||
78 | NULL, 10); \ | ||
79 | } while (0) | ||
80 | |||
81 | l = (long)*env; | ||
82 | while (l != 0) { | ||
83 | parse_even_earlier(bus_clock, "busclock", l); | ||
84 | parse_even_earlier(cpu_clock, "cpuclock", l); | ||
85 | parse_even_earlier(memsize, "memsize", l); | ||
86 | parse_even_earlier(highmemsize, "highmemsize", l); | ||
87 | env++; | ||
88 | l = (long)*env; | ||
89 | } | ||
90 | if (memsize == 0) | ||
91 | memsize = 256; | ||
92 | |||
93 | pr_info("busclock=%ld, cpuclock=%ld,memsize=%d,highmemsize=%d\n", | ||
94 | bus_clock, cpu_clock, memsize, highmemsize); | ||
95 | } | ||
96 | |||
97 | void __init prom_free_prom_memory(void) | ||
98 | { | ||
99 | } | ||
100 | |||
101 | void prom_putchar(char c) | ||
102 | { | ||
103 | putDebugChar(c); | ||
104 | } | ||
diff --git a/arch/mips/lemote/lm2e/reset.c b/arch/mips/lemote/lm2e/reset.c new file mode 100644 index 000000000000..099387a3827a --- /dev/null +++ b/arch/mips/lemote/lm2e/reset.c | |||
@@ -0,0 +1,41 @@ | |||
1 | /* | ||
2 | * This program is free software; you can redistribute it and/or modify it | ||
3 | * under the terms of the GNU General Public License as published by the | ||
4 | * Free Software Foundation; either version 2 of the License, or (at your | ||
5 | * option) any later version. | ||
6 | * | ||
7 | * Copyright (C) 2007 Lemote, Inc. & Institute of Computing Technology | ||
8 | * Author: Fuxin Zhang, zhangfx@lemote.com | ||
9 | */ | ||
10 | #include <linux/pm.h> | ||
11 | |||
12 | #include <asm/reboot.h> | ||
13 | |||
14 | static void loongson2e_restart(char *command) | ||
15 | { | ||
16 | #ifdef CONFIG_32BIT | ||
17 | *(unsigned long *)0xbfe00104 &= ~(1 << 2); | ||
18 | *(unsigned long *)0xbfe00104 |= (1 << 2); | ||
19 | #else | ||
20 | *(unsigned long *)0xffffffffbfe00104 &= ~(1 << 2); | ||
21 | *(unsigned long *)0xffffffffbfe00104 |= (1 << 2); | ||
22 | #endif | ||
23 | __asm__ __volatile__("jr\t%0"::"r"(0xbfc00000)); | ||
24 | } | ||
25 | |||
26 | static void loongson2e_halt(void) | ||
27 | { | ||
28 | while (1) ; | ||
29 | } | ||
30 | |||
31 | static void loongson2e_power_off(void) | ||
32 | { | ||
33 | loongson2e_halt(); | ||
34 | } | ||
35 | |||
36 | void mips_reboot_setup(void) | ||
37 | { | ||
38 | _machine_restart = loongson2e_restart; | ||
39 | _machine_halt = loongson2e_halt; | ||
40 | pm_power_off = loongson2e_power_off; | ||
41 | } | ||
diff --git a/arch/mips/lemote/lm2e/setup.c b/arch/mips/lemote/lm2e/setup.c new file mode 100644 index 000000000000..0e4d1fa572b5 --- /dev/null +++ b/arch/mips/lemote/lm2e/setup.c | |||
@@ -0,0 +1,134 @@ | |||
1 | /* | ||
2 | * BRIEF MODULE DESCRIPTION | ||
3 | * setup.c - board dependent boot routines | ||
4 | * | ||
5 | * Copyright (C) 2007 Lemote Inc. & Insititute of Computing Technology | ||
6 | * Author: Fuxin Zhang, zhangfx@lemote.com | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify it | ||
9 | * under the terms of the GNU General Public License as published by the | ||
10 | * Free Software Foundation; either version 2 of the License, or (at your | ||
11 | * option) any later version. | ||
12 | * | ||
13 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | ||
14 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
15 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN | ||
16 | * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
17 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
18 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | ||
19 | * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||
20 | * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
21 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
22 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
23 | * | ||
24 | * You should have received a copy of the GNU General Public License along | ||
25 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
26 | * 675 Mass Ave, Cambridge, MA 02139, USA. | ||
27 | * | ||
28 | */ | ||
29 | #include <linux/bootmem.h> | ||
30 | #include <linux/init.h> | ||
31 | #include <linux/io.h> | ||
32 | #include <linux/ioport.h> | ||
33 | #include <linux/interrupt.h> | ||
34 | #include <linux/irq.h> | ||
35 | #include <linux/kernel.h> | ||
36 | #include <linux/mc146818rtc.h> | ||
37 | #include <linux/mm.h> | ||
38 | #include <linux/module.h> | ||
39 | #include <linux/pci.h> | ||
40 | #include <linux/tty.h> | ||
41 | #include <linux/types.h> | ||
42 | |||
43 | #include <asm/bootinfo.h> | ||
44 | #include <asm/mc146818-time.h> | ||
45 | #include <asm/time.h> | ||
46 | #include <asm/wbflush.h> | ||
47 | |||
48 | #ifdef CONFIG_VT | ||
49 | #include <linux/console.h> | ||
50 | #include <linux/screen_info.h> | ||
51 | #endif | ||
52 | |||
53 | extern void mips_reboot_setup(void); | ||
54 | |||
55 | #ifdef CONFIG_64BIT | ||
56 | #define PTR_PAD(p) ((0xffffffff00000000)|((unsigned long long)(p))) | ||
57 | #else | ||
58 | #define PTR_PAD(p) (p) | ||
59 | #endif | ||
60 | |||
61 | unsigned long cpu_clock; | ||
62 | unsigned long bus_clock; | ||
63 | unsigned int memsize; | ||
64 | unsigned int highmemsize = 0; | ||
65 | |||
66 | void __init plat_timer_setup(struct irqaction *irq) | ||
67 | { | ||
68 | setup_irq(MIPS_CPU_IRQ_BASE + 7, irq); | ||
69 | } | ||
70 | |||
71 | static void __init loongson2e_time_init(void) | ||
72 | { | ||
73 | /* setup mips r4k timer */ | ||
74 | mips_hpt_frequency = cpu_clock / 2; | ||
75 | } | ||
76 | |||
77 | static unsigned long __init mips_rtc_get_time(void) | ||
78 | { | ||
79 | return mc146818_get_cmos_time(); | ||
80 | } | ||
81 | |||
82 | void (*__wbflush)(void); | ||
83 | EXPORT_SYMBOL(__wbflush); | ||
84 | |||
85 | static void wbflush_loongson2e(void) | ||
86 | { | ||
87 | asm(".set\tpush\n\t" | ||
88 | ".set\tnoreorder\n\t" | ||
89 | ".set mips3\n\t" | ||
90 | "sync\n\t" | ||
91 | "nop\n\t" | ||
92 | ".set\tpop\n\t" | ||
93 | ".set mips0\n\t"); | ||
94 | } | ||
95 | |||
96 | void __init plat_mem_setup(void) | ||
97 | { | ||
98 | set_io_port_base(PTR_PAD(0xbfd00000)); | ||
99 | |||
100 | mips_reboot_setup(); | ||
101 | |||
102 | board_time_init = loongson2e_time_init; | ||
103 | rtc_mips_get_time = mips_rtc_get_time; | ||
104 | |||
105 | __wbflush = wbflush_loongson2e; | ||
106 | |||
107 | add_memory_region(0x0, (memsize << 20), BOOT_MEM_RAM); | ||
108 | #ifdef CONFIG_64BIT | ||
109 | if (highmemsize > 0) { | ||
110 | add_memory_region(0x20000000, highmemsize << 20, BOOT_MEM_RAM); | ||
111 | } | ||
112 | #endif | ||
113 | |||
114 | #ifdef CONFIG_VT | ||
115 | #if defined(CONFIG_VGA_CONSOLE) | ||
116 | conswitchp = &vga_con; | ||
117 | |||
118 | screen_info = (struct screen_info) { | ||
119 | 0, 25, /* orig-x, orig-y */ | ||
120 | 0, /* unused */ | ||
121 | 0, /* orig-video-page */ | ||
122 | 0, /* orig-video-mode */ | ||
123 | 80, /* orig-video-cols */ | ||
124 | 0, 0, 0, /* ega_ax, ega_bx, ega_cx */ | ||
125 | 25, /* orig-video-lines */ | ||
126 | VIDEO_TYPE_VGAC, /* orig-video-isVGA */ | ||
127 | 16 /* orig-video-points */ | ||
128 | }; | ||
129 | #elif defined(CONFIG_DUMMY_CONSOLE) | ||
130 | conswitchp = &dummy_con; | ||
131 | #endif | ||
132 | #endif | ||
133 | |||
134 | } | ||
diff --git a/arch/mips/lib-32/Makefile b/arch/mips/lib-32/Makefile deleted file mode 100644 index 8b94d4cc5a30..000000000000 --- a/arch/mips/lib-32/Makefile +++ /dev/null | |||
@@ -1,23 +0,0 @@ | |||
1 | # | ||
2 | # Makefile for MIPS-specific library files.. | ||
3 | # | ||
4 | |||
5 | lib-y += watch.o | ||
6 | |||
7 | obj-$(CONFIG_CPU_MIPS32) += dump_tlb.o | ||
8 | obj-$(CONFIG_CPU_MIPS64) += dump_tlb.o | ||
9 | obj-$(CONFIG_CPU_NEVADA) += dump_tlb.o | ||
10 | obj-$(CONFIG_CPU_R10000) += dump_tlb.o | ||
11 | obj-$(CONFIG_CPU_R3000) += r3k_dump_tlb.o | ||
12 | obj-$(CONFIG_CPU_R4300) += dump_tlb.o | ||
13 | obj-$(CONFIG_CPU_R4X00) += dump_tlb.o | ||
14 | obj-$(CONFIG_CPU_R5000) += dump_tlb.o | ||
15 | obj-$(CONFIG_CPU_R5432) += dump_tlb.o | ||
16 | obj-$(CONFIG_CPU_R6000) += | ||
17 | obj-$(CONFIG_CPU_R8000) += | ||
18 | obj-$(CONFIG_CPU_RM7000) += dump_tlb.o | ||
19 | obj-$(CONFIG_CPU_RM9000) += dump_tlb.o | ||
20 | obj-$(CONFIG_CPU_SB1) += dump_tlb.o | ||
21 | obj-$(CONFIG_CPU_TX39XX) += r3k_dump_tlb.o | ||
22 | obj-$(CONFIG_CPU_TX49XX) += dump_tlb.o | ||
23 | obj-$(CONFIG_CPU_VR41XX) += dump_tlb.o | ||
diff --git a/arch/mips/lib-32/dump_tlb.c b/arch/mips/lib-32/dump_tlb.c deleted file mode 100644 index 6a68deb51aae..000000000000 --- a/arch/mips/lib-32/dump_tlb.c +++ /dev/null | |||
@@ -1,242 +0,0 @@ | |||
1 | /* | ||
2 | * Dump R4x00 TLB for debugging purposes. | ||
3 | * | ||
4 | * Copyright (C) 1994, 1995 by Waldorf Electronics, written by Ralf Baechle. | ||
5 | * Copyright (C) 1999 by Silicon Graphics, Inc. | ||
6 | */ | ||
7 | #include <linux/kernel.h> | ||
8 | #include <linux/mm.h> | ||
9 | #include <linux/sched.h> | ||
10 | #include <linux/string.h> | ||
11 | |||
12 | #include <asm/bootinfo.h> | ||
13 | #include <asm/cachectl.h> | ||
14 | #include <asm/cpu.h> | ||
15 | #include <asm/mipsregs.h> | ||
16 | #include <asm/page.h> | ||
17 | #include <asm/pgtable.h> | ||
18 | |||
19 | static inline const char *msk2str(unsigned int mask) | ||
20 | { | ||
21 | switch (mask) { | ||
22 | case PM_4K: | ||
23 | return "4kb"; | ||
24 | case PM_16K: | ||
25 | return "16kb"; | ||
26 | case PM_64K: | ||
27 | return "64kb"; | ||
28 | case PM_256K: | ||
29 | return "256kb"; | ||
30 | #ifndef CONFIG_CPU_VR41XX | ||
31 | case PM_1M: | ||
32 | return "1Mb"; | ||
33 | case PM_4M: | ||
34 | return "4Mb"; | ||
35 | case PM_16M: | ||
36 | return "16Mb"; | ||
37 | case PM_64M: | ||
38 | return "64Mb"; | ||
39 | case PM_256M: | ||
40 | return "256Mb"; | ||
41 | #endif | ||
42 | } | ||
43 | |||
44 | return "unknown"; | ||
45 | } | ||
46 | |||
47 | #define BARRIER() \ | ||
48 | __asm__ __volatile__( \ | ||
49 | ".set\tnoreorder\n\t" \ | ||
50 | "nop;nop;nop;nop;nop;nop;nop\n\t" \ | ||
51 | ".set\treorder"); | ||
52 | |||
53 | void dump_tlb(int first, int last) | ||
54 | { | ||
55 | unsigned int pagemask, c0, c1, asid; | ||
56 | unsigned long long entrylo0, entrylo1; | ||
57 | unsigned long entryhi; | ||
58 | int i; | ||
59 | |||
60 | asid = read_c0_entryhi() & 0xff; | ||
61 | |||
62 | printk("\n"); | ||
63 | for (i = first; i <= last; i++) { | ||
64 | write_c0_index(i); | ||
65 | BARRIER(); | ||
66 | tlb_read(); | ||
67 | BARRIER(); | ||
68 | pagemask = read_c0_pagemask(); | ||
69 | entryhi = read_c0_entryhi(); | ||
70 | entrylo0 = read_c0_entrylo0(); | ||
71 | entrylo1 = read_c0_entrylo1(); | ||
72 | |||
73 | /* Unused entries have a virtual address in KSEG0. */ | ||
74 | if ((entryhi & 0xf0000000) != 0x80000000 | ||
75 | && (entryhi & 0xff) == asid) { | ||
76 | /* | ||
77 | * Only print entries in use | ||
78 | */ | ||
79 | printk("Index: %2d pgmask=%s ", i, msk2str(pagemask)); | ||
80 | |||
81 | c0 = (entrylo0 >> 3) & 7; | ||
82 | c1 = (entrylo1 >> 3) & 7; | ||
83 | |||
84 | printk("va=%08lx asid=%02lx\n", | ||
85 | (entryhi & 0xffffe000), (entryhi & 0xff)); | ||
86 | printk("\t\t\t[pa=%08Lx c=%d d=%d v=%d g=%Ld]\n", | ||
87 | (entrylo0 << 6) & PAGE_MASK, c0, | ||
88 | (entrylo0 & 4) ? 1 : 0, | ||
89 | (entrylo0 & 2) ? 1 : 0, (entrylo0 & 1)); | ||
90 | printk("\t\t\t[pa=%08Lx c=%d d=%d v=%d g=%Ld]\n", | ||
91 | (entrylo1 << 6) & PAGE_MASK, c1, | ||
92 | (entrylo1 & 4) ? 1 : 0, | ||
93 | (entrylo1 & 2) ? 1 : 0, (entrylo1 & 1)); | ||
94 | printk("\n"); | ||
95 | } | ||
96 | } | ||
97 | |||
98 | write_c0_entryhi(asid); | ||
99 | } | ||
100 | |||
101 | void dump_tlb_all(void) | ||
102 | { | ||
103 | dump_tlb(0, current_cpu_data.tlbsize - 1); | ||
104 | } | ||
105 | |||
106 | void dump_tlb_wired(void) | ||
107 | { | ||
108 | int wired; | ||
109 | |||
110 | wired = read_c0_wired(); | ||
111 | printk("Wired: %d", wired); | ||
112 | dump_tlb(0, read_c0_wired()); | ||
113 | } | ||
114 | |||
115 | void dump_tlb_addr(unsigned long addr) | ||
116 | { | ||
117 | unsigned int flags, oldpid; | ||
118 | int index; | ||
119 | |||
120 | local_irq_save(flags); | ||
121 | oldpid = read_c0_entryhi() & 0xff; | ||
122 | BARRIER(); | ||
123 | write_c0_entryhi((addr & PAGE_MASK) | oldpid); | ||
124 | BARRIER(); | ||
125 | tlb_probe(); | ||
126 | BARRIER(); | ||
127 | index = read_c0_index(); | ||
128 | write_c0_entryhi(oldpid); | ||
129 | local_irq_restore(flags); | ||
130 | |||
131 | if (index < 0) { | ||
132 | printk("No entry for address 0x%08lx in TLB\n", addr); | ||
133 | return; | ||
134 | } | ||
135 | |||
136 | printk("Entry %d maps address 0x%08lx\n", index, addr); | ||
137 | dump_tlb(index, index); | ||
138 | } | ||
139 | |||
140 | void dump_tlb_nonwired(void) | ||
141 | { | ||
142 | dump_tlb(read_c0_wired(), current_cpu_data.tlbsize - 1); | ||
143 | } | ||
144 | |||
145 | void dump_list_process(struct task_struct *t, void *address) | ||
146 | { | ||
147 | pgd_t *page_dir, *pgd; | ||
148 | pud_t *pud; | ||
149 | pmd_t *pmd; | ||
150 | pte_t *pte, page; | ||
151 | unsigned long addr, val; | ||
152 | |||
153 | addr = (unsigned long) address; | ||
154 | |||
155 | printk("Addr == %08lx\n", addr); | ||
156 | printk("task == %8p\n", t); | ||
157 | printk("task->mm == %8p\n", t->mm); | ||
158 | //printk("tasks->mm.pgd == %08x\n", (unsigned int) t->mm->pgd); | ||
159 | |||
160 | if (addr > KSEG0) { | ||
161 | page_dir = pgd_offset_k(0); | ||
162 | pgd = pgd_offset_k(addr); | ||
163 | } else if (t->mm) { | ||
164 | page_dir = pgd_offset(t->mm, 0); | ||
165 | pgd = pgd_offset(t->mm, addr); | ||
166 | } else { | ||
167 | printk("Current thread has no mm\n"); | ||
168 | return; | ||
169 | } | ||
170 | printk("page_dir == %08x\n", (unsigned int) page_dir); | ||
171 | printk("pgd == %08x, ", (unsigned int) pgd); | ||
172 | pud = pud_offset(pgd, addr); | ||
173 | printk("pud == %08x, ", (unsigned int) pud); | ||
174 | |||
175 | pmd = pmd_offset(pud, addr); | ||
176 | printk("pmd == %08x, ", (unsigned int) pmd); | ||
177 | |||
178 | pte = pte_offset(pmd, addr); | ||
179 | printk("pte == %08x, ", (unsigned int) pte); | ||
180 | |||
181 | page = *pte; | ||
182 | #ifdef CONFIG_64BIT_PHYS_ADDR | ||
183 | printk("page == %08Lx\n", pte_val(page)); | ||
184 | #else | ||
185 | printk("page == %08lx\n", pte_val(page)); | ||
186 | #endif | ||
187 | |||
188 | val = pte_val(page); | ||
189 | if (val & _PAGE_PRESENT) | ||
190 | printk("present "); | ||
191 | if (val & _PAGE_READ) | ||
192 | printk("read "); | ||
193 | if (val & _PAGE_WRITE) | ||
194 | printk("write "); | ||
195 | if (val & _PAGE_ACCESSED) | ||
196 | printk("accessed "); | ||
197 | if (val & _PAGE_MODIFIED) | ||
198 | printk("modified "); | ||
199 | if (val & _PAGE_R4KBUG) | ||
200 | printk("r4kbug "); | ||
201 | if (val & _PAGE_GLOBAL) | ||
202 | printk("global "); | ||
203 | if (val & _PAGE_VALID) | ||
204 | printk("valid "); | ||
205 | printk("\n"); | ||
206 | } | ||
207 | |||
208 | void dump_list_current(void *address) | ||
209 | { | ||
210 | dump_list_process(current, address); | ||
211 | } | ||
212 | |||
213 | unsigned int vtop(void *address) | ||
214 | { | ||
215 | pgd_t *pgd; | ||
216 | pud_t *pud; | ||
217 | pmd_t *pmd; | ||
218 | pte_t *pte; | ||
219 | unsigned int addr, paddr; | ||
220 | |||
221 | addr = (unsigned long) address; | ||
222 | pgd = pgd_offset(current->mm, addr); | ||
223 | pud = pud_offset(pgd, addr); | ||
224 | pmd = pmd_offset(pud, addr); | ||
225 | pte = pte_offset(pmd, addr); | ||
226 | paddr = (KSEG1 | (unsigned int) pte_val(*pte)) & PAGE_MASK; | ||
227 | paddr |= (addr & ~PAGE_MASK); | ||
228 | |||
229 | return paddr; | ||
230 | } | ||
231 | |||
232 | void dump16(unsigned long *p) | ||
233 | { | ||
234 | int i; | ||
235 | |||
236 | for (i = 0; i < 8; i++) { | ||
237 | printk("*%08lx == %08lx, ", (unsigned long) p, *p); | ||
238 | p++; | ||
239 | printk("*%08lx == %08lx\n", (unsigned long) p, *p); | ||
240 | p++; | ||
241 | } | ||
242 | } | ||
diff --git a/arch/mips/lib-32/r3k_dump_tlb.c b/arch/mips/lib-32/r3k_dump_tlb.c deleted file mode 100644 index 4f2cb74f0766..000000000000 --- a/arch/mips/lib-32/r3k_dump_tlb.c +++ /dev/null | |||
@@ -1,182 +0,0 @@ | |||
1 | /* | ||
2 | * Dump R3000 TLB for debugging purposes. | ||
3 | * | ||
4 | * Copyright (C) 1994, 1995 by Waldorf Electronics, written by Ralf Baechle. | ||
5 | * Copyright (C) 1999 by Silicon Graphics, Inc. | ||
6 | * Copyright (C) 1999 by Harald Koerfgen | ||
7 | */ | ||
8 | #include <linux/kernel.h> | ||
9 | #include <linux/mm.h> | ||
10 | #include <linux/sched.h> | ||
11 | #include <linux/string.h> | ||
12 | |||
13 | #include <asm/bootinfo.h> | ||
14 | #include <asm/cachectl.h> | ||
15 | #include <asm/cpu.h> | ||
16 | #include <asm/mipsregs.h> | ||
17 | #include <asm/page.h> | ||
18 | #include <asm/pgtable.h> | ||
19 | |||
20 | extern int r3k_have_wired_reg; /* defined in tlb-r3k.c */ | ||
21 | |||
22 | void dump_tlb(int first, int last) | ||
23 | { | ||
24 | int i; | ||
25 | unsigned int asid; | ||
26 | unsigned long entryhi, entrylo0; | ||
27 | |||
28 | asid = read_c0_entryhi() & 0xfc0; | ||
29 | |||
30 | for (i = first; i <= last; i++) { | ||
31 | write_c0_index(i<<8); | ||
32 | __asm__ __volatile__( | ||
33 | ".set\tnoreorder\n\t" | ||
34 | "tlbr\n\t" | ||
35 | "nop\n\t" | ||
36 | ".set\treorder"); | ||
37 | entryhi = read_c0_entryhi(); | ||
38 | entrylo0 = read_c0_entrylo0(); | ||
39 | |||
40 | /* Unused entries have a virtual address of KSEG0. */ | ||
41 | if ((entryhi & 0xffffe000) != 0x80000000 | ||
42 | && (entryhi & 0xfc0) == asid) { | ||
43 | /* | ||
44 | * Only print entries in use | ||
45 | */ | ||
46 | printk("Index: %2d ", i); | ||
47 | |||
48 | printk("va=%08lx asid=%08lx" | ||
49 | " [pa=%06lx n=%d d=%d v=%d g=%d]", | ||
50 | (entryhi & 0xffffe000), | ||
51 | entryhi & 0xfc0, | ||
52 | entrylo0 & PAGE_MASK, | ||
53 | (entrylo0 & (1 << 11)) ? 1 : 0, | ||
54 | (entrylo0 & (1 << 10)) ? 1 : 0, | ||
55 | (entrylo0 & (1 << 9)) ? 1 : 0, | ||
56 | (entrylo0 & (1 << 8)) ? 1 : 0); | ||
57 | } | ||
58 | } | ||
59 | printk("\n"); | ||
60 | |||
61 | write_c0_entryhi(asid); | ||
62 | } | ||
63 | |||
64 | void dump_tlb_all(void) | ||
65 | { | ||
66 | dump_tlb(0, current_cpu_data.tlbsize - 1); | ||
67 | } | ||
68 | |||
69 | void dump_tlb_wired(void) | ||
70 | { | ||
71 | int wired = r3k_have_wired_reg ? read_c0_wired() : 8; | ||
72 | |||
73 | printk("Wired: %d", wired); | ||
74 | dump_tlb(0, wired - 1); | ||
75 | } | ||
76 | |||
77 | void dump_tlb_addr(unsigned long addr) | ||
78 | { | ||
79 | unsigned long flags, oldpid; | ||
80 | int index; | ||
81 | |||
82 | local_irq_save(flags); | ||
83 | oldpid = read_c0_entryhi() & 0xff; | ||
84 | write_c0_entryhi((addr & PAGE_MASK) | oldpid); | ||
85 | tlb_probe(); | ||
86 | index = read_c0_index(); | ||
87 | write_c0_entryhi(oldpid); | ||
88 | local_irq_restore(flags); | ||
89 | |||
90 | if (index < 0) { | ||
91 | printk("No entry for address 0x%08lx in TLB\n", addr); | ||
92 | return; | ||
93 | } | ||
94 | |||
95 | printk("Entry %d maps address 0x%08lx\n", index, addr); | ||
96 | dump_tlb(index, index); | ||
97 | } | ||
98 | |||
99 | void dump_tlb_nonwired(void) | ||
100 | { | ||
101 | int wired = r3k_have_wired_reg ? read_c0_wired() : 8; | ||
102 | dump_tlb(wired, current_cpu_data.tlbsize - 1); | ||
103 | } | ||
104 | |||
105 | void dump_list_process(struct task_struct *t, void *address) | ||
106 | { | ||
107 | pgd_t *page_dir, *pgd; | ||
108 | pud_t *pud; | ||
109 | pmd_t *pmd; | ||
110 | pte_t *pte, page; | ||
111 | unsigned int addr; | ||
112 | unsigned long val; | ||
113 | |||
114 | addr = (unsigned int) address; | ||
115 | |||
116 | printk("Addr == %08x\n", addr); | ||
117 | printk("tasks->mm.pgd == %08x\n", (unsigned int) t->mm->pgd); | ||
118 | |||
119 | page_dir = pgd_offset(t->mm, 0); | ||
120 | printk("page_dir == %08x\n", (unsigned int) page_dir); | ||
121 | |||
122 | pgd = pgd_offset(t->mm, addr); | ||
123 | printk("pgd == %08x, ", (unsigned int) pgd); | ||
124 | |||
125 | pud = pud_offset(pgd, addr); | ||
126 | printk("pud == %08x, ", (unsigned int) pud); | ||
127 | |||
128 | pmd = pmd_offset(pud, addr); | ||
129 | printk("pmd == %08x, ", (unsigned int) pmd); | ||
130 | |||
131 | pte = pte_offset(pmd, addr); | ||
132 | printk("pte == %08x, ", (unsigned int) pte); | ||
133 | |||
134 | page = *pte; | ||
135 | printk("page == %08x\n", (unsigned int) pte_val(page)); | ||
136 | |||
137 | val = pte_val(page); | ||
138 | if (val & _PAGE_PRESENT) printk("present "); | ||
139 | if (val & _PAGE_READ) printk("read "); | ||
140 | if (val & _PAGE_WRITE) printk("write "); | ||
141 | if (val & _PAGE_ACCESSED) printk("accessed "); | ||
142 | if (val & _PAGE_MODIFIED) printk("modified "); | ||
143 | if (val & _PAGE_GLOBAL) printk("global "); | ||
144 | if (val & _PAGE_VALID) printk("valid "); | ||
145 | printk("\n"); | ||
146 | } | ||
147 | |||
148 | void dump_list_current(void *address) | ||
149 | { | ||
150 | dump_list_process(current, address); | ||
151 | } | ||
152 | |||
153 | unsigned int vtop(void *address) | ||
154 | { | ||
155 | pgd_t *pgd; | ||
156 | pud_t *pud; | ||
157 | pmd_t *pmd; | ||
158 | pte_t *pte; | ||
159 | unsigned int addr, paddr; | ||
160 | |||
161 | addr = (unsigned long) address; | ||
162 | pgd = pgd_offset(current->mm, addr); | ||
163 | pud = pud_offset(pgd, addr); | ||
164 | pmd = pmd_offset(pud, addr); | ||
165 | pte = pte_offset(pmd, addr); | ||
166 | paddr = (KSEG1 | (unsigned int) pte_val(*pte)) & PAGE_MASK; | ||
167 | paddr |= (addr & ~PAGE_MASK); | ||
168 | |||
169 | return paddr; | ||
170 | } | ||
171 | |||
172 | void dump16(unsigned long *p) | ||
173 | { | ||
174 | int i; | ||
175 | |||
176 | for (i = 0; i < 8; i++) { | ||
177 | printk("*%08lx == %08lx, ", (unsigned long)p, *p); | ||
178 | p++; | ||
179 | printk("*%08lx == %08lx\n", (unsigned long)p, *p); | ||
180 | p++; | ||
181 | } | ||
182 | } | ||
diff --git a/arch/mips/lib-32/watch.S b/arch/mips/lib-32/watch.S deleted file mode 100644 index 808b3af1a605..000000000000 --- a/arch/mips/lib-32/watch.S +++ /dev/null | |||
@@ -1,60 +0,0 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Kernel debug stuff to use the Watch registers. | ||
7 | * Useful to find stack overflows, dangling pointers etc. | ||
8 | * | ||
9 | * Copyright (C) 1995, 1996, 1999 by Ralf Baechle | ||
10 | */ | ||
11 | #include <asm/asm.h> | ||
12 | #include <asm/mipsregs.h> | ||
13 | #include <asm/regdef.h> | ||
14 | |||
15 | .set noreorder | ||
16 | /* | ||
17 | * Parameter: a0 - logic address to watch | ||
18 | * Currently only KSEG0 addresses are allowed! | ||
19 | * a1 - set bit #1 to trap on load references | ||
20 | * bit #0 to trap on store references | ||
21 | * Results : none | ||
22 | */ | ||
23 | LEAF(__watch_set) | ||
24 | li t0, 0x80000000 | ||
25 | subu a0, t0 | ||
26 | ori a0, 7 | ||
27 | xori a0, 7 | ||
28 | or a0, a1 | ||
29 | mtc0 a0, CP0_WATCHLO | ||
30 | sw a0, watch_savelo | ||
31 | |||
32 | jr ra | ||
33 | mtc0 zero, CP0_WATCHHI | ||
34 | END(__watch_set) | ||
35 | |||
36 | /* | ||
37 | * Parameter: none | ||
38 | * Results : none | ||
39 | */ | ||
40 | LEAF(__watch_clear) | ||
41 | jr ra | ||
42 | mtc0 zero, CP0_WATCHLO | ||
43 | END(__watch_clear) | ||
44 | |||
45 | /* | ||
46 | * Parameter: none | ||
47 | * Results : none | ||
48 | */ | ||
49 | LEAF(__watch_reenable) | ||
50 | lw t0, watch_savelo | ||
51 | jr ra | ||
52 | mtc0 t0, CP0_WATCHLO | ||
53 | END(__watch_reenable) | ||
54 | |||
55 | /* | ||
56 | * Saved value of the c0_watchlo register for watch_reenable() | ||
57 | */ | ||
58 | .data | ||
59 | watch_savelo: .word 0 | ||
60 | .text | ||
diff --git a/arch/mips/lib-64/Makefile b/arch/mips/lib-64/Makefile deleted file mode 100644 index 8b94d4cc5a30..000000000000 --- a/arch/mips/lib-64/Makefile +++ /dev/null | |||
@@ -1,23 +0,0 @@ | |||
1 | # | ||
2 | # Makefile for MIPS-specific library files.. | ||
3 | # | ||
4 | |||
5 | lib-y += watch.o | ||
6 | |||
7 | obj-$(CONFIG_CPU_MIPS32) += dump_tlb.o | ||
8 | obj-$(CONFIG_CPU_MIPS64) += dump_tlb.o | ||
9 | obj-$(CONFIG_CPU_NEVADA) += dump_tlb.o | ||
10 | obj-$(CONFIG_CPU_R10000) += dump_tlb.o | ||
11 | obj-$(CONFIG_CPU_R3000) += r3k_dump_tlb.o | ||
12 | obj-$(CONFIG_CPU_R4300) += dump_tlb.o | ||
13 | obj-$(CONFIG_CPU_R4X00) += dump_tlb.o | ||
14 | obj-$(CONFIG_CPU_R5000) += dump_tlb.o | ||
15 | obj-$(CONFIG_CPU_R5432) += dump_tlb.o | ||
16 | obj-$(CONFIG_CPU_R6000) += | ||
17 | obj-$(CONFIG_CPU_R8000) += | ||
18 | obj-$(CONFIG_CPU_RM7000) += dump_tlb.o | ||
19 | obj-$(CONFIG_CPU_RM9000) += dump_tlb.o | ||
20 | obj-$(CONFIG_CPU_SB1) += dump_tlb.o | ||
21 | obj-$(CONFIG_CPU_TX39XX) += r3k_dump_tlb.o | ||
22 | obj-$(CONFIG_CPU_TX49XX) += dump_tlb.o | ||
23 | obj-$(CONFIG_CPU_VR41XX) += dump_tlb.o | ||
diff --git a/arch/mips/lib-64/dump_tlb.c b/arch/mips/lib-64/dump_tlb.c deleted file mode 100644 index 594df1a05ecc..000000000000 --- a/arch/mips/lib-64/dump_tlb.c +++ /dev/null | |||
@@ -1,216 +0,0 @@ | |||
1 | /* | ||
2 | * Dump R4x00 TLB for debugging purposes. | ||
3 | * | ||
4 | * Copyright (C) 1994, 1995 by Waldorf Electronics, written by Ralf Baechle. | ||
5 | * Copyright (C) 1999 by Silicon Graphics, Inc. | ||
6 | */ | ||
7 | #include <linux/kernel.h> | ||
8 | #include <linux/mm.h> | ||
9 | #include <linux/sched.h> | ||
10 | #include <linux/string.h> | ||
11 | |||
12 | #include <asm/bootinfo.h> | ||
13 | #include <asm/cachectl.h> | ||
14 | #include <asm/cpu.h> | ||
15 | #include <asm/mipsregs.h> | ||
16 | #include <asm/page.h> | ||
17 | #include <asm/pgtable.h> | ||
18 | |||
19 | static inline const char *msk2str(unsigned int mask) | ||
20 | { | ||
21 | switch (mask) { | ||
22 | case PM_4K: return "4kb"; | ||
23 | case PM_16K: return "16kb"; | ||
24 | case PM_64K: return "64kb"; | ||
25 | case PM_256K: return "256kb"; | ||
26 | #ifndef CONFIG_CPU_VR41XX | ||
27 | case PM_1M: return "1Mb"; | ||
28 | case PM_4M: return "4Mb"; | ||
29 | case PM_16M: return "16Mb"; | ||
30 | case PM_64M: return "64Mb"; | ||
31 | case PM_256M: return "256Mb"; | ||
32 | #endif | ||
33 | } | ||
34 | |||
35 | return "unknown"; | ||
36 | } | ||
37 | |||
38 | #define BARRIER() \ | ||
39 | __asm__ __volatile__( \ | ||
40 | ".set\tnoreorder\n\t" \ | ||
41 | "nop;nop;nop;nop;nop;nop;nop\n\t" \ | ||
42 | ".set\treorder"); | ||
43 | |||
44 | void dump_tlb(int first, int last) | ||
45 | { | ||
46 | unsigned long s_entryhi, entryhi, entrylo0, entrylo1, asid; | ||
47 | unsigned int s_index, pagemask, c0, c1, i; | ||
48 | |||
49 | s_entryhi = read_c0_entryhi(); | ||
50 | s_index = read_c0_index(); | ||
51 | asid = s_entryhi & 0xff; | ||
52 | |||
53 | for (i = first; i <= last; i++) { | ||
54 | write_c0_index(i); | ||
55 | BARRIER(); | ||
56 | tlb_read(); | ||
57 | BARRIER(); | ||
58 | pagemask = read_c0_pagemask(); | ||
59 | entryhi = read_c0_entryhi(); | ||
60 | entrylo0 = read_c0_entrylo0(); | ||
61 | entrylo1 = read_c0_entrylo1(); | ||
62 | |||
63 | /* Unused entries have a virtual address of CKSEG0. */ | ||
64 | if ((entryhi & ~0x1ffffUL) != CKSEG0 | ||
65 | && (entryhi & 0xff) == asid) { | ||
66 | /* | ||
67 | * Only print entries in use | ||
68 | */ | ||
69 | printk("Index: %2d pgmask=%s ", i, msk2str(pagemask)); | ||
70 | |||
71 | c0 = (entrylo0 >> 3) & 7; | ||
72 | c1 = (entrylo1 >> 3) & 7; | ||
73 | |||
74 | printk("va=%011lx asid=%02lx\n", | ||
75 | (entryhi & ~0x1fffUL), | ||
76 | entryhi & 0xff); | ||
77 | printk("\t[pa=%011lx c=%d d=%d v=%d g=%ld] ", | ||
78 | (entrylo0 << 6) & PAGE_MASK, c0, | ||
79 | (entrylo0 & 4) ? 1 : 0, | ||
80 | (entrylo0 & 2) ? 1 : 0, | ||
81 | (entrylo0 & 1)); | ||
82 | printk("[pa=%011lx c=%d d=%d v=%d g=%ld]\n", | ||
83 | (entrylo1 << 6) & PAGE_MASK, c1, | ||
84 | (entrylo1 & 4) ? 1 : 0, | ||
85 | (entrylo1 & 2) ? 1 : 0, | ||
86 | (entrylo1 & 1)); | ||
87 | } | ||
88 | } | ||
89 | printk("\n"); | ||
90 | |||
91 | write_c0_entryhi(s_entryhi); | ||
92 | write_c0_index(s_index); | ||
93 | } | ||
94 | |||
95 | void dump_tlb_all(void) | ||
96 | { | ||
97 | dump_tlb(0, current_cpu_data.tlbsize - 1); | ||
98 | } | ||
99 | |||
100 | void dump_tlb_wired(void) | ||
101 | { | ||
102 | int wired; | ||
103 | |||
104 | wired = read_c0_wired(); | ||
105 | printk("Wired: %d", wired); | ||
106 | dump_tlb(0, read_c0_wired()); | ||
107 | } | ||
108 | |||
109 | void dump_tlb_addr(unsigned long addr) | ||
110 | { | ||
111 | unsigned int flags, oldpid; | ||
112 | int index; | ||
113 | |||
114 | local_irq_save(flags); | ||
115 | oldpid = read_c0_entryhi() & 0xff; | ||
116 | BARRIER(); | ||
117 | write_c0_entryhi((addr & PAGE_MASK) | oldpid); | ||
118 | BARRIER(); | ||
119 | tlb_probe(); | ||
120 | BARRIER(); | ||
121 | index = read_c0_index(); | ||
122 | write_c0_entryhi(oldpid); | ||
123 | local_irq_restore(flags); | ||
124 | |||
125 | if (index < 0) { | ||
126 | printk("No entry for address 0x%08lx in TLB\n", addr); | ||
127 | return; | ||
128 | } | ||
129 | |||
130 | printk("Entry %d maps address 0x%08lx\n", index, addr); | ||
131 | dump_tlb(index, index); | ||
132 | } | ||
133 | |||
134 | void dump_tlb_nonwired(void) | ||
135 | { | ||
136 | dump_tlb(read_c0_wired(), current_cpu_data.tlbsize - 1); | ||
137 | } | ||
138 | |||
139 | void dump_list_process(struct task_struct *t, void *address) | ||
140 | { | ||
141 | pgd_t *page_dir, *pgd; | ||
142 | pud_t *pud; | ||
143 | pmd_t *pmd; | ||
144 | pte_t *pte, page; | ||
145 | unsigned long addr, val; | ||
146 | |||
147 | addr = (unsigned long) address; | ||
148 | |||
149 | printk("Addr == %08lx\n", addr); | ||
150 | printk("tasks->mm.pgd == %08lx\n", (unsigned long) t->mm->pgd); | ||
151 | |||
152 | page_dir = pgd_offset(t->mm, 0UL); | ||
153 | printk("page_dir == %016lx\n", (unsigned long) page_dir); | ||
154 | |||
155 | pgd = pgd_offset(t->mm, addr); | ||
156 | printk("pgd == %016lx\n", (unsigned long) pgd); | ||
157 | |||
158 | pud = pud_offset(pgd, addr); | ||
159 | printk("pud == %016lx\n", (unsigned long) pud); | ||
160 | |||
161 | pmd = pmd_offset(pud, addr); | ||
162 | printk("pmd == %016lx\n", (unsigned long) pmd); | ||
163 | |||
164 | pte = pte_offset(pmd, addr); | ||
165 | printk("pte == %016lx\n", (unsigned long) pte); | ||
166 | |||
167 | page = *pte; | ||
168 | printk("page == %08lx\n", pte_val(page)); | ||
169 | |||
170 | val = pte_val(page); | ||
171 | if (val & _PAGE_PRESENT) printk("present "); | ||
172 | if (val & _PAGE_READ) printk("read "); | ||
173 | if (val & _PAGE_WRITE) printk("write "); | ||
174 | if (val & _PAGE_ACCESSED) printk("accessed "); | ||
175 | if (val & _PAGE_MODIFIED) printk("modified "); | ||
176 | if (val & _PAGE_R4KBUG) printk("r4kbug "); | ||
177 | if (val & _PAGE_GLOBAL) printk("global "); | ||
178 | if (val & _PAGE_VALID) printk("valid "); | ||
179 | printk("\n"); | ||
180 | } | ||
181 | |||
182 | void dump_list_current(void *address) | ||
183 | { | ||
184 | dump_list_process(current, address); | ||
185 | } | ||
186 | |||
187 | unsigned long vtop(void *address) | ||
188 | { | ||
189 | pgd_t *pgd; | ||
190 | pud_t *pud; | ||
191 | pmd_t *pmd; | ||
192 | pte_t *pte; | ||
193 | unsigned long addr, paddr; | ||
194 | |||
195 | addr = (unsigned long) address; | ||
196 | pgd = pgd_offset(current->mm, addr); | ||
197 | pud = pud_offset(pgd, addr); | ||
198 | pmd = pmd_offset(pud, addr); | ||
199 | pte = pte_offset(pmd, addr); | ||
200 | paddr = (CKSEG1 | (unsigned int) pte_val(*pte)) & PAGE_MASK; | ||
201 | paddr |= (addr & ~PAGE_MASK); | ||
202 | |||
203 | return paddr; | ||
204 | } | ||
205 | |||
206 | void dump16(unsigned long *p) | ||
207 | { | ||
208 | int i; | ||
209 | |||
210 | for (i = 0; i < 8; i++) { | ||
211 | printk("*%08lx == %08lx, ", (unsigned long)p, *p); | ||
212 | p++; | ||
213 | printk("*%08lx == %08lx\n", (unsigned long)p, *p); | ||
214 | p++; | ||
215 | } | ||
216 | } | ||
diff --git a/arch/mips/lib-64/watch.S b/arch/mips/lib-64/watch.S deleted file mode 100644 index f91434013695..000000000000 --- a/arch/mips/lib-64/watch.S +++ /dev/null | |||
@@ -1,57 +0,0 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Kernel debug stuff to use the Watch registers. | ||
7 | * Useful to find stack overflows, dangling pointers etc. | ||
8 | * | ||
9 | * Copyright (C) 1995, 1996, 1999, 2001 by Ralf Baechle | ||
10 | */ | ||
11 | #include <asm/asm.h> | ||
12 | #include <asm/mipsregs.h> | ||
13 | #include <asm/regdef.h> | ||
14 | |||
15 | .set noreorder | ||
16 | /* | ||
17 | * Parameter: a0 - physical address to watch | ||
18 | * a1 - set bit #1 to trap on load references | ||
19 | * bit #0 to trap on store references | ||
20 | * Results : none | ||
21 | */ | ||
22 | LEAF(__watch_set) | ||
23 | ori a0, 7 | ||
24 | xori a0, 7 | ||
25 | or a0, a1 | ||
26 | mtc0 a0, CP0_WATCHLO | ||
27 | sd a0, watch_savelo | ||
28 | dsrl32 a0, a0, 0 | ||
29 | |||
30 | jr ra | ||
31 | mtc0 zero, CP0_WATCHHI | ||
32 | END(__watch_set) | ||
33 | |||
34 | /* | ||
35 | * Parameter: none | ||
36 | * Results : none | ||
37 | */ | ||
38 | LEAF(__watch_clear) | ||
39 | jr ra | ||
40 | mtc0 zero, CP0_WATCHLO | ||
41 | END(__watch_clear) | ||
42 | |||
43 | /* | ||
44 | * Parameter: none | ||
45 | * Results : none | ||
46 | */ | ||
47 | LEAF(__watch_reenable) | ||
48 | ld t0, watch_savelo | ||
49 | jr ra | ||
50 | mtc0 t0, CP0_WATCHLO | ||
51 | END(__watch_reenable) | ||
52 | |||
53 | /* | ||
54 | * Saved value of the c0_watchlo register for watch_reenable() | ||
55 | */ | ||
56 | .local watch_savelo | ||
57 | .comm watch_savelo, 8, 8 | ||
diff --git a/arch/mips/lib/Makefile b/arch/mips/lib/Makefile index 1c1aa9f92f6c..91ed1eb33102 100644 --- a/arch/mips/lib/Makefile +++ b/arch/mips/lib/Makefile | |||
@@ -8,5 +8,24 @@ lib-y += csum_partial.o memcpy.o memcpy-inatomic.o memset.o strlen_user.o \ | |||
8 | obj-y += iomap.o | 8 | obj-y += iomap.o |
9 | obj-$(CONFIG_PCI) += iomap-pci.o | 9 | obj-$(CONFIG_PCI) += iomap-pci.o |
10 | 10 | ||
11 | obj-$(CONFIG_CPU_LOONGSON2) += dump_tlb.o | ||
12 | obj-$(CONFIG_CPU_MIPS32) += dump_tlb.o | ||
13 | obj-$(CONFIG_CPU_MIPS64) += dump_tlb.o | ||
14 | obj-$(CONFIG_CPU_NEVADA) += dump_tlb.o | ||
15 | obj-$(CONFIG_CPU_R10000) += dump_tlb.o | ||
16 | obj-$(CONFIG_CPU_R3000) += r3k_dump_tlb.o | ||
17 | obj-$(CONFIG_CPU_R4300) += dump_tlb.o | ||
18 | obj-$(CONFIG_CPU_R4X00) += dump_tlb.o | ||
19 | obj-$(CONFIG_CPU_R5000) += dump_tlb.o | ||
20 | obj-$(CONFIG_CPU_R5432) += dump_tlb.o | ||
21 | obj-$(CONFIG_CPU_R6000) += | ||
22 | obj-$(CONFIG_CPU_R8000) += | ||
23 | obj-$(CONFIG_CPU_RM7000) += dump_tlb.o | ||
24 | obj-$(CONFIG_CPU_RM9000) += dump_tlb.o | ||
25 | obj-$(CONFIG_CPU_SB1) += dump_tlb.o | ||
26 | obj-$(CONFIG_CPU_TX39XX) += r3k_dump_tlb.o | ||
27 | obj-$(CONFIG_CPU_TX49XX) += dump_tlb.o | ||
28 | obj-$(CONFIG_CPU_VR41XX) += dump_tlb.o | ||
29 | |||
11 | # libgcc-style stuff needed in the kernel | 30 | # libgcc-style stuff needed in the kernel |
12 | obj-y += ashldi3.o ashrdi3.o lshrdi3.o ucmpdi2.o | 31 | obj-y += ashldi3.o ashrdi3.o lshrdi3.o ucmpdi2.o |
diff --git a/arch/mips/lib/dump_tlb.c b/arch/mips/lib/dump_tlb.c new file mode 100644 index 000000000000..1a4db7dc77cb --- /dev/null +++ b/arch/mips/lib/dump_tlb.c | |||
@@ -0,0 +1,100 @@ | |||
1 | /* | ||
2 | * Dump R4x00 TLB for debugging purposes. | ||
3 | * | ||
4 | * Copyright (C) 1994, 1995 by Waldorf Electronics, written by Ralf Baechle. | ||
5 | * Copyright (C) 1999 by Silicon Graphics, Inc. | ||
6 | */ | ||
7 | #include <linux/kernel.h> | ||
8 | #include <linux/mm.h> | ||
9 | |||
10 | #include <asm/mipsregs.h> | ||
11 | #include <asm/page.h> | ||
12 | #include <asm/pgtable.h> | ||
13 | |||
14 | static inline const char *msk2str(unsigned int mask) | ||
15 | { | ||
16 | switch (mask) { | ||
17 | case PM_4K: return "4kb"; | ||
18 | case PM_16K: return "16kb"; | ||
19 | case PM_64K: return "64kb"; | ||
20 | case PM_256K: return "256kb"; | ||
21 | #ifndef CONFIG_CPU_VR41XX | ||
22 | case PM_1M: return "1Mb"; | ||
23 | case PM_4M: return "4Mb"; | ||
24 | case PM_16M: return "16Mb"; | ||
25 | case PM_64M: return "64Mb"; | ||
26 | case PM_256M: return "256Mb"; | ||
27 | #endif | ||
28 | } | ||
29 | return ""; | ||
30 | } | ||
31 | |||
32 | #define BARRIER() \ | ||
33 | __asm__ __volatile__( \ | ||
34 | ".set\tnoreorder\n\t" \ | ||
35 | "nop;nop;nop;nop;nop;nop;nop\n\t" \ | ||
36 | ".set\treorder"); | ||
37 | |||
38 | static void dump_tlb(int first, int last) | ||
39 | { | ||
40 | unsigned long s_entryhi, entryhi, asid; | ||
41 | unsigned long long entrylo0, entrylo1; | ||
42 | unsigned int s_index, pagemask, c0, c1, i; | ||
43 | |||
44 | s_entryhi = read_c0_entryhi(); | ||
45 | s_index = read_c0_index(); | ||
46 | asid = s_entryhi & 0xff; | ||
47 | |||
48 | for (i = first; i <= last; i++) { | ||
49 | write_c0_index(i); | ||
50 | BARRIER(); | ||
51 | tlb_read(); | ||
52 | BARRIER(); | ||
53 | pagemask = read_c0_pagemask(); | ||
54 | entryhi = read_c0_entryhi(); | ||
55 | entrylo0 = read_c0_entrylo0(); | ||
56 | entrylo1 = read_c0_entrylo1(); | ||
57 | |||
58 | /* Unused entries have a virtual address of CKSEG0. */ | ||
59 | if ((entryhi & ~0x1ffffUL) != CKSEG0 | ||
60 | && (entryhi & 0xff) == asid) { | ||
61 | #ifdef CONFIG_32BIT | ||
62 | int width = 8; | ||
63 | #else | ||
64 | int width = 11; | ||
65 | #endif | ||
66 | /* | ||
67 | * Only print entries in use | ||
68 | */ | ||
69 | printk("Index: %2d pgmask=%s ", i, msk2str(pagemask)); | ||
70 | |||
71 | c0 = (entrylo0 >> 3) & 7; | ||
72 | c1 = (entrylo1 >> 3) & 7; | ||
73 | |||
74 | printk("va=%0*lx asid=%02lx\n", | ||
75 | width, (entryhi & ~0x1fffUL), | ||
76 | entryhi & 0xff); | ||
77 | printk("\t[pa=%0*llx c=%d d=%d v=%d g=%d] ", | ||
78 | width, | ||
79 | (entrylo0 << 6) & PAGE_MASK, c0, | ||
80 | (entrylo0 & 4) ? 1 : 0, | ||
81 | (entrylo0 & 2) ? 1 : 0, | ||
82 | (entrylo0 & 1) ? 1 : 0); | ||
83 | printk("[pa=%0*llx c=%d d=%d v=%d g=%d]\n", | ||
84 | width, | ||
85 | (entrylo1 << 6) & PAGE_MASK, c1, | ||
86 | (entrylo1 & 4) ? 1 : 0, | ||
87 | (entrylo1 & 2) ? 1 : 0, | ||
88 | (entrylo1 & 1) ? 1 : 0); | ||
89 | } | ||
90 | } | ||
91 | printk("\n"); | ||
92 | |||
93 | write_c0_entryhi(s_entryhi); | ||
94 | write_c0_index(s_index); | ||
95 | } | ||
96 | |||
97 | void dump_tlb_all(void) | ||
98 | { | ||
99 | dump_tlb(0, current_cpu_data.tlbsize - 1); | ||
100 | } | ||
diff --git a/arch/mips/lib/r3k_dump_tlb.c b/arch/mips/lib/r3k_dump_tlb.c new file mode 100644 index 000000000000..52f87795ecc3 --- /dev/null +++ b/arch/mips/lib/r3k_dump_tlb.c | |||
@@ -0,0 +1,62 @@ | |||
1 | /* | ||
2 | * Dump R3000 TLB for debugging purposes. | ||
3 | * | ||
4 | * Copyright (C) 1994, 1995 by Waldorf Electronics, written by Ralf Baechle. | ||
5 | * Copyright (C) 1999 by Silicon Graphics, Inc. | ||
6 | * Copyright (C) 1999 by Harald Koerfgen | ||
7 | */ | ||
8 | #include <linux/kernel.h> | ||
9 | #include <linux/mm.h> | ||
10 | |||
11 | #include <asm/mipsregs.h> | ||
12 | #include <asm/page.h> | ||
13 | #include <asm/pgtable.h> | ||
14 | |||
15 | extern int r3k_have_wired_reg; /* defined in tlb-r3k.c */ | ||
16 | |||
17 | static void dump_tlb(int first, int last) | ||
18 | { | ||
19 | int i; | ||
20 | unsigned int asid; | ||
21 | unsigned long entryhi, entrylo0; | ||
22 | |||
23 | asid = read_c0_entryhi() & 0xfc0; | ||
24 | |||
25 | for (i = first; i <= last; i++) { | ||
26 | write_c0_index(i<<8); | ||
27 | __asm__ __volatile__( | ||
28 | ".set\tnoreorder\n\t" | ||
29 | "tlbr\n\t" | ||
30 | "nop\n\t" | ||
31 | ".set\treorder"); | ||
32 | entryhi = read_c0_entryhi(); | ||
33 | entrylo0 = read_c0_entrylo0(); | ||
34 | |||
35 | /* Unused entries have a virtual address of KSEG0. */ | ||
36 | if ((entryhi & 0xffffe000) != 0x80000000 | ||
37 | && (entryhi & 0xfc0) == asid) { | ||
38 | /* | ||
39 | * Only print entries in use | ||
40 | */ | ||
41 | printk("Index: %2d ", i); | ||
42 | |||
43 | printk("va=%08lx asid=%08lx" | ||
44 | " [pa=%06lx n=%d d=%d v=%d g=%d]", | ||
45 | (entryhi & 0xffffe000), | ||
46 | entryhi & 0xfc0, | ||
47 | entrylo0 & PAGE_MASK, | ||
48 | (entrylo0 & (1 << 11)) ? 1 : 0, | ||
49 | (entrylo0 & (1 << 10)) ? 1 : 0, | ||
50 | (entrylo0 & (1 << 9)) ? 1 : 0, | ||
51 | (entrylo0 & (1 << 8)) ? 1 : 0); | ||
52 | } | ||
53 | } | ||
54 | printk("\n"); | ||
55 | |||
56 | write_c0_entryhi(asid); | ||
57 | } | ||
58 | |||
59 | void dump_tlb_all(void) | ||
60 | { | ||
61 | dump_tlb(0, current_cpu_data.tlbsize - 1); | ||
62 | } | ||
diff --git a/arch/mips/math-emu/cp1emu.c b/arch/mips/math-emu/cp1emu.c index 80531b35cd61..d7f05b0abe17 100644 --- a/arch/mips/math-emu/cp1emu.c +++ b/arch/mips/math-emu/cp1emu.c | |||
@@ -35,6 +35,7 @@ | |||
35 | * better performance by compiling with -msoft-float! | 35 | * better performance by compiling with -msoft-float! |
36 | */ | 36 | */ |
37 | #include <linux/sched.h> | 37 | #include <linux/sched.h> |
38 | #include <linux/debugfs.h> | ||
38 | 39 | ||
39 | #include <asm/inst.h> | 40 | #include <asm/inst.h> |
40 | #include <asm/bootinfo.h> | 41 | #include <asm/bootinfo.h> |
@@ -1277,3 +1278,36 @@ int fpu_emulator_cop1Handler(struct pt_regs *xcp, struct mips_fpu_struct *ctx, | |||
1277 | 1278 | ||
1278 | return sig; | 1279 | return sig; |
1279 | } | 1280 | } |
1281 | |||
1282 | #ifdef CONFIG_DEBUG_FS | ||
1283 | extern struct dentry *mips_debugfs_dir; | ||
1284 | static int __init debugfs_fpuemu(void) | ||
1285 | { | ||
1286 | struct dentry *d, *dir; | ||
1287 | int i; | ||
1288 | static struct { | ||
1289 | const char *name; | ||
1290 | unsigned int *v; | ||
1291 | } vars[] __initdata = { | ||
1292 | { "emulated", &fpuemustats.emulated }, | ||
1293 | { "loads", &fpuemustats.loads }, | ||
1294 | { "stores", &fpuemustats.stores }, | ||
1295 | { "cp1ops", &fpuemustats.cp1ops }, | ||
1296 | { "cp1xops", &fpuemustats.cp1xops }, | ||
1297 | { "errors", &fpuemustats.errors }, | ||
1298 | }; | ||
1299 | |||
1300 | if (!mips_debugfs_dir) | ||
1301 | return -ENODEV; | ||
1302 | dir = debugfs_create_dir("fpuemustats", mips_debugfs_dir); | ||
1303 | if (IS_ERR(dir)) | ||
1304 | return PTR_ERR(dir); | ||
1305 | for (i = 0; i < ARRAY_SIZE(vars); i++) { | ||
1306 | d = debugfs_create_u32(vars[i].name, S_IRUGO, dir, vars[i].v); | ||
1307 | if (IS_ERR(d)) | ||
1308 | return PTR_ERR(d); | ||
1309 | } | ||
1310 | return 0; | ||
1311 | } | ||
1312 | __initcall(debugfs_fpuemu); | ||
1313 | #endif | ||
diff --git a/arch/mips/mips-boards/malta/Makefile b/arch/mips/mips-boards/malta/Makefile index 377d9e8f250a..a242b0fc377d 100644 --- a/arch/mips/mips-boards/malta/Makefile +++ b/arch/mips/mips-boards/malta/Makefile | |||
@@ -19,6 +19,7 @@ | |||
19 | # under Linux. | 19 | # under Linux. |
20 | # | 20 | # |
21 | 21 | ||
22 | obj-y := malta_int.o malta_setup.o | 22 | obj-y := malta_int.o malta_platform.o malta_setup.o |
23 | |||
23 | obj-$(CONFIG_MTD) += malta_mtd.o | 24 | obj-$(CONFIG_MTD) += malta_mtd.o |
24 | obj-$(CONFIG_MIPS_MT_SMTC) += malta_smtc.o | 25 | obj-$(CONFIG_MIPS_MT_SMTC) += malta_smtc.o |
diff --git a/arch/mips/mips-boards/malta/malta_platform.c b/arch/mips/mips-boards/malta/malta_platform.c new file mode 100644 index 000000000000..83b9bab3cd3f --- /dev/null +++ b/arch/mips/mips-boards/malta/malta_platform.c | |||
@@ -0,0 +1,65 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 2007 MIPS Technologies, Inc. | ||
7 | * written by Ralf Baechle (ralf@linux-mips.org) | ||
8 | * | ||
9 | * Probe driver for the Malta's UART ports: | ||
10 | * | ||
11 | * o 2 ports in the SMC SuperIO | ||
12 | * o 1 port in the CBUS UART, a discrete 16550 which normally is only used | ||
13 | * for bringups. | ||
14 | * | ||
15 | * We don't use 8250_platform.c on Malta as it would result in the CBUS | ||
16 | * UART becoming ttyS0. | ||
17 | */ | ||
18 | #include <linux/module.h> | ||
19 | #include <linux/init.h> | ||
20 | #include <linux/serial_8250.h> | ||
21 | |||
22 | #define SMC_PORT(base, int) \ | ||
23 | { \ | ||
24 | .iobase = base, \ | ||
25 | .irq = int, \ | ||
26 | .uartclk = 1843200, \ | ||
27 | .iotype = UPIO_PORT, \ | ||
28 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST, \ | ||
29 | .regshift = 0, \ | ||
30 | } | ||
31 | |||
32 | #define CBUS_UART_FLAGS (UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_IOREMAP) | ||
33 | |||
34 | static struct plat_serial8250_port uart8250_data[] = { | ||
35 | SMC_PORT(0x3F8, 4), | ||
36 | SMC_PORT(0x2F8, 3), | ||
37 | { | ||
38 | .mapbase = 0x1f000900, /* The CBUS UART */ | ||
39 | .irq = MIPS_CPU_IRQ_BASE + 2, | ||
40 | .uartclk = 3686400, /* Twice the usual clk! */ | ||
41 | .iotype = UPIO_MEM32, | ||
42 | .flags = CBUS_UART_FLAGS, | ||
43 | .regshift = 3, | ||
44 | }, | ||
45 | { }, | ||
46 | }; | ||
47 | |||
48 | static struct platform_device uart8250_device = { | ||
49 | .name = "serial8250", | ||
50 | .id = PLAT8250_DEV_PLATFORM2, | ||
51 | .dev = { | ||
52 | .platform_data = uart8250_data, | ||
53 | }, | ||
54 | }; | ||
55 | |||
56 | static int __init uart8250_init(void) | ||
57 | { | ||
58 | return platform_device_register(&uart8250_device); | ||
59 | } | ||
60 | |||
61 | module_init(uart8250_init); | ||
62 | |||
63 | MODULE_AUTHOR("Ralf Baechle <ralf@linux-mips.org>"); | ||
64 | MODULE_LICENSE("GPL"); | ||
65 | MODULE_DESCRIPTION("8250 UART probe driver for the Malta CBUS UART"); | ||
diff --git a/arch/mips/mips-boards/sim/Makefile b/arch/mips/mipssim/Makefile index dc0bfda11427..dc0bfda11427 100644 --- a/arch/mips/mips-boards/sim/Makefile +++ b/arch/mips/mipssim/Makefile | |||
diff --git a/arch/mips/mips-boards/sim/sim_cmdline.c b/arch/mips/mipssim/sim_cmdline.c index c63021a5dc6c..c63021a5dc6c 100644 --- a/arch/mips/mips-boards/sim/sim_cmdline.c +++ b/arch/mips/mipssim/sim_cmdline.c | |||
diff --git a/arch/mips/mips-boards/sim/sim_console.c b/arch/mips/mipssim/sim_console.c index de595a9ccb27..a2f41672cd5d 100644 --- a/arch/mips/mips-boards/sim/sim_console.c +++ b/arch/mips/mipssim/sim_console.c | |||
@@ -18,8 +18,8 @@ | |||
18 | * written by Ralf Baechle | 18 | * written by Ralf Baechle |
19 | */ | 19 | */ |
20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
21 | #include <linux/io.h> | ||
21 | #include <linux/serial_reg.h> | 22 | #include <linux/serial_reg.h> |
22 | #include <asm/io.h> | ||
23 | 23 | ||
24 | static inline unsigned int serial_in(int offset) | 24 | static inline unsigned int serial_in(int offset) |
25 | { | 25 | { |
diff --git a/arch/mips/mipssim/sim_int.c b/arch/mips/mipssim/sim_int.c new file mode 100644 index 000000000000..d86b37235cf6 --- /dev/null +++ b/arch/mips/mipssim/sim_int.c | |||
@@ -0,0 +1,88 @@ | |||
1 | /* | ||
2 | * Copyright (C) 1999, 2005 MIPS Technologies, Inc. All rights reserved. | ||
3 | * | ||
4 | * This program is free software; you can distribute it and/or modify it | ||
5 | * under the terms of the GNU General Public License (Version 2) as | ||
6 | * published by the Free Software Foundation. | ||
7 | * | ||
8 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
10 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
11 | * for more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License along | ||
14 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
15 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | ||
16 | * | ||
17 | */ | ||
18 | #include <linux/init.h> | ||
19 | #include <linux/sched.h> | ||
20 | #include <linux/slab.h> | ||
21 | #include <linux/interrupt.h> | ||
22 | #include <linux/kernel_stat.h> | ||
23 | #include <asm/mips-boards/simint.h> | ||
24 | #include <asm/irq_cpu.h> | ||
25 | |||
26 | static inline int clz(unsigned long x) | ||
27 | { | ||
28 | __asm__ ( | ||
29 | " .set push \n" | ||
30 | " .set mips32 \n" | ||
31 | " clz %0, %1 \n" | ||
32 | " .set pop \n" | ||
33 | : "=r" (x) | ||
34 | : "r" (x)); | ||
35 | |||
36 | return x; | ||
37 | } | ||
38 | |||
39 | /* | ||
40 | * Version of ffs that only looks at bits 12..15. | ||
41 | */ | ||
42 | static inline unsigned int irq_ffs(unsigned int pending) | ||
43 | { | ||
44 | #if defined(CONFIG_CPU_MIPS32) || defined(CONFIG_CPU_MIPS64) | ||
45 | return -clz(pending) + 31 - CAUSEB_IP; | ||
46 | #else | ||
47 | unsigned int a0 = 7; | ||
48 | unsigned int t0; | ||
49 | |||
50 | t0 = s0 & 0xf000; | ||
51 | t0 = t0 < 1; | ||
52 | t0 = t0 << 2; | ||
53 | a0 = a0 - t0; | ||
54 | s0 = s0 << t0; | ||
55 | |||
56 | t0 = s0 & 0xc000; | ||
57 | t0 = t0 < 1; | ||
58 | t0 = t0 << 1; | ||
59 | a0 = a0 - t0; | ||
60 | s0 = s0 << t0; | ||
61 | |||
62 | t0 = s0 & 0x8000; | ||
63 | t0 = t0 < 1; | ||
64 | /* t0 = t0 << 2; */ | ||
65 | a0 = a0 - t0; | ||
66 | /* s0 = s0 << t0; */ | ||
67 | |||
68 | return a0; | ||
69 | #endif | ||
70 | } | ||
71 | |||
72 | asmlinkage void plat_irq_dispatch(void) | ||
73 | { | ||
74 | unsigned int pending = read_c0_cause() & read_c0_status() & ST0_IM; | ||
75 | int irq; | ||
76 | |||
77 | irq = irq_ffs(pending); | ||
78 | |||
79 | if (irq > 0) | ||
80 | do_IRQ(MIPSCPU_INT_BASE + irq); | ||
81 | else | ||
82 | spurious_interrupt(); | ||
83 | } | ||
84 | |||
85 | void __init arch_init_irq(void) | ||
86 | { | ||
87 | mips_cpu_irq_init(); | ||
88 | } | ||
diff --git a/arch/mips/mips-boards/sim/sim_mem.c b/arch/mips/mipssim/sim_mem.c index e408ef0bcd6e..2312483eb838 100644 --- a/arch/mips/mips-boards/sim/sim_mem.c +++ b/arch/mips/mipssim/sim_mem.c | |||
@@ -95,7 +95,7 @@ void __init prom_meminit(void) | |||
95 | size = p->size; | 95 | size = p->size; |
96 | 96 | ||
97 | add_memory_region(base, size, type); | 97 | add_memory_region(base, size, type); |
98 | p++; | 98 | p++; |
99 | } | 99 | } |
100 | } | 100 | } |
101 | 101 | ||
diff --git a/arch/mips/mips-boards/sim/sim_platform.c b/arch/mips/mipssim/sim_platform.c index 53210a8c5dec..53210a8c5dec 100644 --- a/arch/mips/mips-boards/sim/sim_platform.c +++ b/arch/mips/mipssim/sim_platform.c | |||
diff --git a/arch/mips/mips-boards/sim/sim_setup.c b/arch/mips/mipssim/sim_setup.c index b705f09e57c3..3643582bdade 100644 --- a/arch/mips/mips-boards/sim/sim_setup.c +++ b/arch/mips/mipssim/sim_setup.c | |||
@@ -19,18 +19,18 @@ | |||
19 | #include <linux/init.h> | 19 | #include <linux/init.h> |
20 | #include <linux/string.h> | 20 | #include <linux/string.h> |
21 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
22 | #include <linux/io.h> | ||
23 | #include <linux/irq.h> | ||
22 | #include <linux/ioport.h> | 24 | #include <linux/ioport.h> |
25 | #include <linux/serial.h> | ||
23 | #include <linux/tty.h> | 26 | #include <linux/tty.h> |
24 | #include <linux/serial.h> | 27 | #include <linux/serial.h> |
25 | #include <linux/serial_core.h> | 28 | #include <linux/serial_core.h> |
26 | 29 | ||
27 | #include <asm/cpu.h> | 30 | #include <asm/cpu.h> |
28 | #include <asm/bootinfo.h> | 31 | #include <asm/bootinfo.h> |
29 | #include <asm/irq.h> | ||
30 | #include <asm/mips-boards/generic.h> | 32 | #include <asm/mips-boards/generic.h> |
31 | #include <asm/mips-boards/prom.h> | 33 | #include <asm/mips-boards/prom.h> |
32 | #include <asm/serial.h> | ||
33 | #include <asm/io.h> | ||
34 | #include <asm/time.h> | 34 | #include <asm/time.h> |
35 | #include <asm/mips-boards/sim.h> | 35 | #include <asm/mips-boards/sim.h> |
36 | #include <asm/mips-boards/simint.h> | 36 | #include <asm/mips-boards/simint.h> |
@@ -62,7 +62,7 @@ void __init plat_mem_setup(void) | |||
62 | #endif | 62 | #endif |
63 | } | 63 | } |
64 | 64 | ||
65 | void prom_init(void) | 65 | void __init prom_init(void) |
66 | { | 66 | { |
67 | set_io_port_base(0xbfd00000); | 67 | set_io_port_base(0xbfd00000); |
68 | 68 | ||
diff --git a/arch/mips/mips-boards/sim/sim_smp.c b/arch/mips/mipssim/sim_smp.c index cb47863ecf10..38fa807b99f9 100644 --- a/arch/mips/mips-boards/sim/sim_smp.c +++ b/arch/mips/mipssim/sim_smp.c | |||
@@ -22,13 +22,13 @@ | |||
22 | #include <linux/sched.h> | 22 | #include <linux/sched.h> |
23 | #include <linux/cpumask.h> | 23 | #include <linux/cpumask.h> |
24 | #include <linux/interrupt.h> | 24 | #include <linux/interrupt.h> |
25 | #include <linux/smp.h> | ||
26 | |||
25 | #include <asm/atomic.h> | 27 | #include <asm/atomic.h> |
26 | #include <asm/cpu.h> | 28 | #include <asm/cpu.h> |
27 | #include <asm/processor.h> | 29 | #include <asm/processor.h> |
28 | #include <asm/system.h> | 30 | #include <asm/system.h> |
29 | #include <asm/hardirq.h> | ||
30 | #include <asm/mmu_context.h> | 31 | #include <asm/mmu_context.h> |
31 | #include <asm/smp.h> | ||
32 | #ifdef CONFIG_MIPS_MT_SMTC | 32 | #ifdef CONFIG_MIPS_MT_SMTC |
33 | #include <asm/smtc_ipi.h> | 33 | #include <asm/smtc_ipi.h> |
34 | #endif /* CONFIG_MIPS_MT_SMTC */ | 34 | #endif /* CONFIG_MIPS_MT_SMTC */ |
@@ -73,11 +73,19 @@ void prom_init_secondary(void) | |||
73 | #endif /* CONFIG_MIPS_MT_SMTC */ | 73 | #endif /* CONFIG_MIPS_MT_SMTC */ |
74 | } | 74 | } |
75 | 75 | ||
76 | void plat_smp_setup(void) | ||
77 | { | ||
78 | #ifdef CONFIG_MIPS_MT_SMTC | ||
79 | if (read_c0_config3() & (1 << 2)) | ||
80 | mipsmt_build_cpu_map(0); | ||
81 | #endif /* CONFIG_MIPS_MT_SMTC */ | ||
82 | } | ||
83 | |||
76 | /* | 84 | /* |
77 | * Platform SMP pre-initialization | 85 | * Platform SMP pre-initialization |
78 | */ | 86 | */ |
79 | 87 | ||
80 | void prom_prepare_cpus(unsigned int max_cpus) | 88 | void plat_prepare_cpus(unsigned int max_cpus) |
81 | { | 89 | { |
82 | #ifdef CONFIG_MIPS_MT_SMTC | 90 | #ifdef CONFIG_MIPS_MT_SMTC |
83 | /* | 91 | /* |
@@ -85,8 +93,8 @@ void prom_prepare_cpus(unsigned int max_cpus) | |||
85 | * but it may be multithreaded. | 93 | * but it may be multithreaded. |
86 | */ | 94 | */ |
87 | 95 | ||
88 | if (read_c0_config3() & (1<<2)) { | 96 | if (read_c0_config3() & (1 << 2)) { |
89 | mipsmt_prepare_cpus(max_cpus); | 97 | mipsmt_prepare_cpus(); |
90 | } | 98 | } |
91 | #endif /* CONFIG_MIPS_MT_SMTC */ | 99 | #endif /* CONFIG_MIPS_MT_SMTC */ |
92 | } | 100 | } |
diff --git a/arch/mips/mips-boards/sim/sim_time.c b/arch/mips/mipssim/sim_time.c index 7224ffe31d36..874a18e8ac24 100644 --- a/arch/mips/mips-boards/sim/sim_time.c +++ b/arch/mips/mipssim/sim_time.c | |||
@@ -5,10 +5,10 @@ | |||
5 | #include <linux/spinlock.h> | 5 | #include <linux/spinlock.h> |
6 | #include <linux/interrupt.h> | 6 | #include <linux/interrupt.h> |
7 | #include <linux/mc146818rtc.h> | 7 | #include <linux/mc146818rtc.h> |
8 | #include <linux/mipsregs.h> | ||
9 | #include <linux/smp.h> | ||
8 | #include <linux/timex.h> | 10 | #include <linux/timex.h> |
9 | 11 | ||
10 | #include <asm/mipsregs.h> | ||
11 | #include <asm/ptrace.h> | ||
12 | #include <asm/hardirq.h> | 12 | #include <asm/hardirq.h> |
13 | #include <asm/div64.h> | 13 | #include <asm/div64.h> |
14 | #include <asm/cpu.h> | 14 | #include <asm/cpu.h> |
@@ -16,7 +16,6 @@ | |||
16 | #include <asm/irq.h> | 16 | #include <asm/irq.h> |
17 | #include <asm/mc146818-time.h> | 17 | #include <asm/mc146818-time.h> |
18 | #include <asm/msc01_ic.h> | 18 | #include <asm/msc01_ic.h> |
19 | #include <asm/smp.h> | ||
20 | 19 | ||
21 | #include <asm/mips-boards/generic.h> | 20 | #include <asm/mips-boards/generic.h> |
22 | #include <asm/mips-boards/prom.h> | 21 | #include <asm/mips-boards/prom.h> |
@@ -37,8 +36,7 @@ irqreturn_t sim_timer_interrupt(int irq, void *dev_id) | |||
37 | #ifndef CONFIG_MIPS_MT_SMTC | 36 | #ifndef CONFIG_MIPS_MT_SMTC |
38 | if (cpu == 0) { | 37 | if (cpu == 0) { |
39 | timer_interrupt(irq, dev_id); | 38 | timer_interrupt(irq, dev_id); |
40 | } | 39 | } else { |
41 | else { | ||
42 | /* Everyone else needs to reset the timer int here as | 40 | /* Everyone else needs to reset the timer int here as |
43 | ll_local_timer_interrupt doesn't */ | 41 | ll_local_timer_interrupt doesn't */ |
44 | /* | 42 | /* |
@@ -76,8 +74,10 @@ irqreturn_t sim_timer_interrupt(int irq, void *dev_id) | |||
76 | irq_enable_hazard(); | 74 | irq_enable_hazard(); |
77 | evpe(vpflags); | 75 | evpe(vpflags); |
78 | 76 | ||
79 | if(cpu_data[cpu].vpe_id == 0) timer_interrupt(irq, dev_id); | 77 | if (cpu_data[cpu].vpe_id == 0) |
80 | else write_c0_compare (read_c0_count() + ( mips_hpt_frequency/HZ)); | 78 | timer_interrupt(irq, dev_id); |
79 | else | ||
80 | write_c0_compare (read_c0_count() + ( mips_hpt_frequency/HZ)); | ||
81 | smtc_timer_broadcast(cpu_data[cpu].vpe_id); | 81 | smtc_timer_broadcast(cpu_data[cpu].vpe_id); |
82 | 82 | ||
83 | #endif /* CONFIG_MIPS_MT_SMTC */ | 83 | #endif /* CONFIG_MIPS_MT_SMTC */ |
@@ -85,7 +85,8 @@ irqreturn_t sim_timer_interrupt(int irq, void *dev_id) | |||
85 | /* | 85 | /* |
86 | * every CPU should do profiling and process accounting | 86 | * every CPU should do profiling and process accounting |
87 | */ | 87 | */ |
88 | local_timer_interrupt (irq, dev_id); | 88 | local_timer_interrupt (irq, dev_id); |
89 | |||
89 | return IRQ_HANDLED; | 90 | return IRQ_HANDLED; |
90 | #else | 91 | #else |
91 | return timer_interrupt (irq, dev_id); | 92 | return timer_interrupt (irq, dev_id); |
@@ -152,17 +153,15 @@ void __init sim_time_init(void) | |||
152 | 153 | ||
153 | local_irq_save(flags); | 154 | local_irq_save(flags); |
154 | 155 | ||
155 | 156 | /* Set Data mode - binary. */ | |
156 | /* Set Data mode - binary. */ | ||
157 | CMOS_WRITE(CMOS_READ(RTC_CONTROL) | RTC_DM_BINARY, RTC_CONTROL); | 157 | CMOS_WRITE(CMOS_READ(RTC_CONTROL) | RTC_DM_BINARY, RTC_CONTROL); |
158 | 158 | ||
159 | |||
160 | est_freq = estimate_cpu_frequency (); | 159 | est_freq = estimate_cpu_frequency (); |
161 | 160 | ||
162 | printk("CPU frequency %d.%02d MHz\n", est_freq/1000000, | 161 | printk(KERN_INFO "CPU frequency %d.%02d MHz\n", est_freq / 1000000, |
163 | (est_freq%1000000)*100/1000000); | 162 | (est_freq % 1000000) * 100 / 1000000); |
164 | 163 | ||
165 | cpu_khz = est_freq / 1000; | 164 | cpu_khz = est_freq / 1000; |
166 | 165 | ||
167 | local_irq_restore(flags); | 166 | local_irq_restore(flags); |
168 | } | 167 | } |
@@ -180,8 +179,7 @@ void __init plat_timer_setup(struct irqaction *irq) | |||
180 | if (cpu_has_veic) { | 179 | if (cpu_has_veic) { |
181 | set_vi_handler(MSC01E_INT_CPUCTR, mips_timer_dispatch); | 180 | set_vi_handler(MSC01E_INT_CPUCTR, mips_timer_dispatch); |
182 | mips_cpu_timer_irq = MSC01E_INT_BASE + MSC01E_INT_CPUCTR; | 181 | mips_cpu_timer_irq = MSC01E_INT_BASE + MSC01E_INT_CPUCTR; |
183 | } | 182 | } else { |
184 | else { | ||
185 | if (cpu_has_vint) | 183 | if (cpu_has_vint) |
186 | set_vi_handler(cp0_compare_irq, mips_timer_dispatch); | 184 | set_vi_handler(cp0_compare_irq, mips_timer_dispatch); |
187 | mips_cpu_timer_irq = MIPS_CPU_IRQ_BASE + cp0_compare_irq; | 185 | mips_cpu_timer_irq = MIPS_CPU_IRQ_BASE + cp0_compare_irq; |
diff --git a/arch/mips/mm/Makefile b/arch/mips/mm/Makefile index 293697b15603..19a0e544c4e9 100644 --- a/arch/mips/mm/Makefile +++ b/arch/mips/mm/Makefile | |||
@@ -9,6 +9,7 @@ obj-$(CONFIG_32BIT) += ioremap.o pgtable-32.o | |||
9 | obj-$(CONFIG_64BIT) += pgtable-64.o | 9 | obj-$(CONFIG_64BIT) += pgtable-64.o |
10 | obj-$(CONFIG_HIGHMEM) += highmem.o | 10 | obj-$(CONFIG_HIGHMEM) += highmem.o |
11 | 11 | ||
12 | obj-$(CONFIG_CPU_LOONGSON2) += c-r4k.o cex-gen.o pg-r4k.o tlb-r4k.o | ||
12 | obj-$(CONFIG_CPU_MIPS32) += c-r4k.o cex-gen.o pg-r4k.o tlb-r4k.o | 13 | obj-$(CONFIG_CPU_MIPS32) += c-r4k.o cex-gen.o pg-r4k.o tlb-r4k.o |
13 | obj-$(CONFIG_CPU_MIPS64) += c-r4k.o cex-gen.o pg-r4k.o tlb-r4k.o | 14 | obj-$(CONFIG_CPU_MIPS64) += c-r4k.o cex-gen.o pg-r4k.o tlb-r4k.o |
14 | obj-$(CONFIG_CPU_NEVADA) += c-r4k.o cex-gen.o pg-r4k.o tlb-r4k.o | 15 | obj-$(CONFIG_CPU_NEVADA) += c-r4k.o cex-gen.o pg-r4k.o tlb-r4k.o |
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c index df04a315d830..be96231dccb6 100644 --- a/arch/mips/mm/c-r4k.c +++ b/arch/mips/mm/c-r4k.c | |||
@@ -335,6 +335,10 @@ static void r4k_flush_cache_all(void) | |||
335 | 335 | ||
336 | static inline void local_r4k___flush_cache_all(void * args) | 336 | static inline void local_r4k___flush_cache_all(void * args) |
337 | { | 337 | { |
338 | #if defined(CONFIG_CPU_LOONGSON2) | ||
339 | r4k_blast_scache(); | ||
340 | return; | ||
341 | #endif | ||
338 | r4k_blast_dcache(); | 342 | r4k_blast_dcache(); |
339 | r4k_blast_icache(); | 343 | r4k_blast_icache(); |
340 | 344 | ||
@@ -848,6 +852,24 @@ static void __init probe_pcache(void) | |||
848 | c->options |= MIPS_CPU_PREFETCH; | 852 | c->options |= MIPS_CPU_PREFETCH; |
849 | break; | 853 | break; |
850 | 854 | ||
855 | case CPU_LOONGSON2: | ||
856 | icache_size = 1 << (12 + ((config & CONF_IC) >> 9)); | ||
857 | c->icache.linesz = 16 << ((config & CONF_IB) >> 5); | ||
858 | if (prid & 0x3) | ||
859 | c->icache.ways = 4; | ||
860 | else | ||
861 | c->icache.ways = 2; | ||
862 | c->icache.waybit = 0; | ||
863 | |||
864 | dcache_size = 1 << (12 + ((config & CONF_DC) >> 6)); | ||
865 | c->dcache.linesz = 16 << ((config & CONF_DB) >> 4); | ||
866 | if (prid & 0x3) | ||
867 | c->dcache.ways = 4; | ||
868 | else | ||
869 | c->dcache.ways = 2; | ||
870 | c->dcache.waybit = 0; | ||
871 | break; | ||
872 | |||
851 | default: | 873 | default: |
852 | if (!(config & MIPS_CONF_M)) | 874 | if (!(config & MIPS_CONF_M)) |
853 | panic("Don't know how to probe P-caches on this cpu."); | 875 | panic("Don't know how to probe P-caches on this cpu."); |
@@ -963,6 +985,14 @@ static void __init probe_pcache(void) | |||
963 | break; | 985 | break; |
964 | } | 986 | } |
965 | 987 | ||
988 | #ifdef CONFIG_CPU_LOONGSON2 | ||
989 | /* | ||
990 | * LOONGSON2 has 4 way icache, but when using indexed cache op, | ||
991 | * one op will act on all 4 ways | ||
992 | */ | ||
993 | c->icache.ways = 1; | ||
994 | #endif | ||
995 | |||
966 | printk("Primary instruction cache %ldkB, %s, %s, linesize %d bytes.\n", | 996 | printk("Primary instruction cache %ldkB, %s, %s, linesize %d bytes.\n", |
967 | icache_size >> 10, | 997 | icache_size >> 10, |
968 | cpu_has_vtag_icache ? "virtually tagged" : "physically tagged", | 998 | cpu_has_vtag_icache ? "virtually tagged" : "physically tagged", |
@@ -1036,6 +1066,24 @@ static int __init probe_scache(void) | |||
1036 | return 1; | 1066 | return 1; |
1037 | } | 1067 | } |
1038 | 1068 | ||
1069 | #if defined(CONFIG_CPU_LOONGSON2) | ||
1070 | static void __init loongson2_sc_init(void) | ||
1071 | { | ||
1072 | struct cpuinfo_mips *c = ¤t_cpu_data; | ||
1073 | |||
1074 | scache_size = 512*1024; | ||
1075 | c->scache.linesz = 32; | ||
1076 | c->scache.ways = 4; | ||
1077 | c->scache.waybit = 0; | ||
1078 | c->scache.waysize = scache_size / (c->scache.ways); | ||
1079 | c->scache.sets = scache_size / (c->scache.linesz * c->scache.ways); | ||
1080 | pr_info("Unified secondary cache %ldkB %s, linesize %d bytes.\n", | ||
1081 | scache_size >> 10, way_string[c->scache.ways], c->scache.linesz); | ||
1082 | |||
1083 | c->options |= MIPS_CPU_INCLUSIVE_CACHES; | ||
1084 | } | ||
1085 | #endif | ||
1086 | |||
1039 | extern int r5k_sc_init(void); | 1087 | extern int r5k_sc_init(void); |
1040 | extern int rm7k_sc_init(void); | 1088 | extern int rm7k_sc_init(void); |
1041 | extern int mips_sc_init(void); | 1089 | extern int mips_sc_init(void); |
@@ -1085,6 +1133,12 @@ static void __init setup_scache(void) | |||
1085 | #endif | 1133 | #endif |
1086 | return; | 1134 | return; |
1087 | 1135 | ||
1136 | #if defined(CONFIG_CPU_LOONGSON2) | ||
1137 | case CPU_LOONGSON2: | ||
1138 | loongson2_sc_init(); | ||
1139 | return; | ||
1140 | #endif | ||
1141 | |||
1088 | default: | 1142 | default: |
1089 | if (c->isa_level == MIPS_CPU_ISA_M32R1 || | 1143 | if (c->isa_level == MIPS_CPU_ISA_M32R1 || |
1090 | c->isa_level == MIPS_CPU_ISA_M32R2 || | 1144 | c->isa_level == MIPS_CPU_ISA_M32R2 || |
diff --git a/arch/mips/mm/c-sb1.c b/arch/mips/mm/c-sb1.c index 9ea460b16bda..6f9bd7fbd481 100644 --- a/arch/mips/mm/c-sb1.c +++ b/arch/mips/mm/c-sb1.c | |||
@@ -476,7 +476,7 @@ static __init void probe_cache_sizes(void) | |||
476 | * memory management function pointers, as well as initialize | 476 | * memory management function pointers, as well as initialize |
477 | * the caches and tlbs | 477 | * the caches and tlbs |
478 | */ | 478 | */ |
479 | void sb1_cache_init(void) | 479 | void __init sb1_cache_init(void) |
480 | { | 480 | { |
481 | extern char except_vec2_sb1; | 481 | extern char except_vec2_sb1; |
482 | 482 | ||
diff --git a/arch/mips/mm/cache.c b/arch/mips/mm/cache.c index abf99b1eba13..81f925a9a731 100644 --- a/arch/mips/mm/cache.c +++ b/arch/mips/mm/cache.c | |||
@@ -6,6 +6,8 @@ | |||
6 | * Copyright (C) 1994 - 2003, 07 by Ralf Baechle (ralf@linux-mips.org) | 6 | * Copyright (C) 1994 - 2003, 07 by Ralf Baechle (ralf@linux-mips.org) |
7 | * Copyright (C) 2007 MIPS Technologies, Inc. | 7 | * Copyright (C) 2007 MIPS Technologies, Inc. |
8 | */ | 8 | */ |
9 | #include <linux/fs.h> | ||
10 | #include <linux/fcntl.h> | ||
9 | #include <linux/init.h> | 11 | #include <linux/init.h> |
10 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
11 | #include <linux/module.h> | 13 | #include <linux/module.h> |
@@ -164,3 +166,11 @@ void __init cpu_cache_init(void) | |||
164 | 166 | ||
165 | panic(cache_panic); | 167 | panic(cache_panic); |
166 | } | 168 | } |
169 | |||
170 | int __weak __uncached_access(struct file *file, unsigned long addr) | ||
171 | { | ||
172 | if (file->f_flags & O_SYNC) | ||
173 | return 1; | ||
174 | |||
175 | return addr >= __pa(high_memory); | ||
176 | } | ||
diff --git a/arch/mips/mm/tlb-r4k.c b/arch/mips/mm/tlb-r4k.c index 65160d4984d9..dcd6913dc1ff 100644 --- a/arch/mips/mm/tlb-r4k.c +++ b/arch/mips/mm/tlb-r4k.c | |||
@@ -48,6 +48,22 @@ extern void build_tlb_refill_handler(void); | |||
48 | 48 | ||
49 | #endif /* CONFIG_MIPS_MT_SMTC */ | 49 | #endif /* CONFIG_MIPS_MT_SMTC */ |
50 | 50 | ||
51 | #if defined(CONFIG_CPU_LOONGSON2) | ||
52 | /* | ||
53 | * LOONGSON2 has a 4 entry itlb which is a subset of dtlb, | ||
54 | * unfortrunately, itlb is not totally transparent to software. | ||
55 | */ | ||
56 | #define FLUSH_ITLB write_c0_diag(4); | ||
57 | |||
58 | #define FLUSH_ITLB_VM(vma) { if ((vma)->vm_flags & VM_EXEC) write_c0_diag(4); } | ||
59 | |||
60 | #else | ||
61 | |||
62 | #define FLUSH_ITLB | ||
63 | #define FLUSH_ITLB_VM(vma) | ||
64 | |||
65 | #endif | ||
66 | |||
51 | void local_flush_tlb_all(void) | 67 | void local_flush_tlb_all(void) |
52 | { | 68 | { |
53 | unsigned long flags; | 69 | unsigned long flags; |
@@ -73,6 +89,7 @@ void local_flush_tlb_all(void) | |||
73 | } | 89 | } |
74 | tlbw_use_hazard(); | 90 | tlbw_use_hazard(); |
75 | write_c0_entryhi(old_ctx); | 91 | write_c0_entryhi(old_ctx); |
92 | FLUSH_ITLB; | ||
76 | EXIT_CRITICAL(flags); | 93 | EXIT_CRITICAL(flags); |
77 | } | 94 | } |
78 | 95 | ||
@@ -136,6 +153,7 @@ void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start, | |||
136 | } else { | 153 | } else { |
137 | drop_mmu_context(mm, cpu); | 154 | drop_mmu_context(mm, cpu); |
138 | } | 155 | } |
156 | FLUSH_ITLB; | ||
139 | EXIT_CRITICAL(flags); | 157 | EXIT_CRITICAL(flags); |
140 | } | 158 | } |
141 | } | 159 | } |
@@ -178,6 +196,7 @@ void local_flush_tlb_kernel_range(unsigned long start, unsigned long end) | |||
178 | } else { | 196 | } else { |
179 | local_flush_tlb_all(); | 197 | local_flush_tlb_all(); |
180 | } | 198 | } |
199 | FLUSH_ITLB; | ||
181 | EXIT_CRITICAL(flags); | 200 | EXIT_CRITICAL(flags); |
182 | } | 201 | } |
183 | 202 | ||
@@ -210,6 +229,7 @@ void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page) | |||
210 | 229 | ||
211 | finish: | 230 | finish: |
212 | write_c0_entryhi(oldpid); | 231 | write_c0_entryhi(oldpid); |
232 | FLUSH_ITLB_VM(vma); | ||
213 | EXIT_CRITICAL(flags); | 233 | EXIT_CRITICAL(flags); |
214 | } | 234 | } |
215 | } | 235 | } |
@@ -241,7 +261,7 @@ void local_flush_tlb_one(unsigned long page) | |||
241 | tlbw_use_hazard(); | 261 | tlbw_use_hazard(); |
242 | } | 262 | } |
243 | write_c0_entryhi(oldpid); | 263 | write_c0_entryhi(oldpid); |
244 | 264 | FLUSH_ITLB; | |
245 | EXIT_CRITICAL(flags); | 265 | EXIT_CRITICAL(flags); |
246 | } | 266 | } |
247 | 267 | ||
@@ -293,6 +313,7 @@ void __update_tlb(struct vm_area_struct * vma, unsigned long address, pte_t pte) | |||
293 | else | 313 | else |
294 | tlb_write_indexed(); | 314 | tlb_write_indexed(); |
295 | tlbw_use_hazard(); | 315 | tlbw_use_hazard(); |
316 | FLUSH_ITLB_VM(vma); | ||
296 | EXIT_CRITICAL(flags); | 317 | EXIT_CRITICAL(flags); |
297 | } | 318 | } |
298 | 319 | ||
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c index e7149290d1cb..4ec0964b8394 100644 --- a/arch/mips/mm/tlbex.c +++ b/arch/mips/mm/tlbex.c | |||
@@ -893,6 +893,7 @@ static __init void build_tlb_write_entry(u32 **p, struct label **l, | |||
893 | case CPU_4KSC: | 893 | case CPU_4KSC: |
894 | case CPU_20KC: | 894 | case CPU_20KC: |
895 | case CPU_25KF: | 895 | case CPU_25KF: |
896 | case CPU_LOONGSON2: | ||
896 | tlbw(p); | 897 | tlbw(p); |
897 | break; | 898 | break; |
898 | 899 | ||
@@ -1276,7 +1277,8 @@ static void __init build_r4000_tlb_refill_handler(void) | |||
1276 | * need three, with the second nop'ed and the third being | 1277 | * need three, with the second nop'ed and the third being |
1277 | * unused. | 1278 | * unused. |
1278 | */ | 1279 | */ |
1279 | #ifdef CONFIG_32BIT | 1280 | /* Loongson2 ebase is different than r4k, we have more space */ |
1281 | #if defined(CONFIG_32BIT) || defined(CONFIG_CPU_LOONGSON2) | ||
1280 | if ((p - tlb_handler) > 64) | 1282 | if ((p - tlb_handler) > 64) |
1281 | panic("TLB refill handler space exceeded"); | 1283 | panic("TLB refill handler space exceeded"); |
1282 | #else | 1284 | #else |
@@ -1289,7 +1291,7 @@ static void __init build_r4000_tlb_refill_handler(void) | |||
1289 | /* | 1291 | /* |
1290 | * Now fold the handler in the TLB refill handler space. | 1292 | * Now fold the handler in the TLB refill handler space. |
1291 | */ | 1293 | */ |
1292 | #ifdef CONFIG_32BIT | 1294 | #if defined(CONFIG_32BIT) || defined(CONFIG_CPU_LOONGSON2) |
1293 | f = final_handler; | 1295 | f = final_handler; |
1294 | /* Simplest case, just copy the handler. */ | 1296 | /* Simplest case, just copy the handler. */ |
1295 | copy_handler(relocs, labels, tlb_handler, p, f); | 1297 | copy_handler(relocs, labels, tlb_handler, p, f); |
@@ -1336,7 +1338,7 @@ static void __init build_r4000_tlb_refill_handler(void) | |||
1336 | final_len); | 1338 | final_len); |
1337 | 1339 | ||
1338 | f = final_handler; | 1340 | f = final_handler; |
1339 | #ifdef CONFIG_64BIT | 1341 | #if defined(CONFIG_64BIT) && !defined(CONFIG_CPU_LOONGSON2) |
1340 | if (final_len > 32) | 1342 | if (final_len > 32) |
1341 | final_len = 64; | 1343 | final_len = 64; |
1342 | else | 1344 | else |
diff --git a/arch/mips/momentum/ocelot_3/Makefile b/arch/mips/momentum/ocelot_3/Makefile deleted file mode 100644 index d5a090a85a15..000000000000 --- a/arch/mips/momentum/ocelot_3/Makefile +++ /dev/null | |||
@@ -1,8 +0,0 @@ | |||
1 | # | ||
2 | # Makefile for Momentum Computer's Ocelot-3 board. | ||
3 | # | ||
4 | # Note! Dependencies are done automagically by 'make dep', which also | ||
5 | # removes any old dependencies. DON'T put your own dependencies here | ||
6 | # unless it's something special (ie not a .c file). | ||
7 | # | ||
8 | obj-y += irq.o platform.o prom.o reset.o setup.o | ||
diff --git a/arch/mips/momentum/ocelot_3/irq.c b/arch/mips/momentum/ocelot_3/irq.c deleted file mode 100644 index 3862d1d1add4..000000000000 --- a/arch/mips/momentum/ocelot_3/irq.c +++ /dev/null | |||
@@ -1,109 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2000 RidgeRun, Inc. | ||
3 | * Author: RidgeRun, Inc. | ||
4 | * glonnon@ridgerun.com, skranz@ridgerun.com, stevej@ridgerun.com | ||
5 | * | ||
6 | * Copyright 2001 MontaVista Software Inc. | ||
7 | * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net | ||
8 | * Copyright (C) 2000, 2001 Ralf Baechle (ralf@gnu.org) | ||
9 | * | ||
10 | * Copyright 2004 PMC-Sierra | ||
11 | * Author: Manish Lachwani (lachwani@pmc-sierra.com) | ||
12 | * | ||
13 | * This program is free software; you can redistribute it and/or modify it | ||
14 | * under the terms of the GNU General Public License as published by the | ||
15 | * Free Software Foundation; either version 2 of the License, or (at your | ||
16 | * option) any later version. | ||
17 | * | ||
18 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | ||
19 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
20 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN | ||
21 | * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
22 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
23 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | ||
24 | * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||
25 | * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
27 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
28 | * | ||
29 | * You should have received a copy of the GNU General Public License along | ||
30 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
31 | * 675 Mass Ave, Cambridge, MA 02139, USA. | ||
32 | * | ||
33 | * Copyright (C) 2004 MontaVista Software Inc. | ||
34 | * Author: Manish Lachwani, mlachwani@mvista.com | ||
35 | * | ||
36 | */ | ||
37 | #include <linux/errno.h> | ||
38 | #include <linux/init.h> | ||
39 | #include <linux/kernel_stat.h> | ||
40 | #include <linux/module.h> | ||
41 | #include <linux/signal.h> | ||
42 | #include <linux/sched.h> | ||
43 | #include <linux/types.h> | ||
44 | #include <linux/interrupt.h> | ||
45 | #include <linux/ioport.h> | ||
46 | #include <linux/timex.h> | ||
47 | #include <linux/slab.h> | ||
48 | #include <linux/random.h> | ||
49 | #include <asm/bitops.h> | ||
50 | #include <asm/bootinfo.h> | ||
51 | #include <asm/io.h> | ||
52 | #include <asm/irq.h> | ||
53 | #include <asm/mipsregs.h> | ||
54 | #include <asm/system.h> | ||
55 | |||
56 | static struct irqaction cascade_mv64340 = { | ||
57 | no_action, IRQF_DISABLED, CPU_MASK_NONE, "MV64340-Cascade", NULL, NULL | ||
58 | }; | ||
59 | |||
60 | void __init arch_init_irq(void) | ||
61 | { | ||
62 | /* | ||
63 | * Clear all of the interrupts while we change the able around a bit. | ||
64 | * int-handler is not on bootstrap | ||
65 | */ | ||
66 | clear_c0_status(ST0_IM | ST0_BEV); | ||
67 | |||
68 | rm7k_cpu_irq_init(); | ||
69 | |||
70 | /* set up the cascading interrupts */ | ||
71 | setup_irq(8, &cascade_mv64340); /* unmask intControl IM8, IRQ 9 */ | ||
72 | mv64340_irq_init(16); | ||
73 | |||
74 | set_c0_status(ST0_IM); /* IE in the status register */ | ||
75 | |||
76 | } | ||
77 | |||
78 | asmlinkage void plat_irq_dispatch(void) | ||
79 | { | ||
80 | unsigned int pending = read_c0_cause() & read_c0_status(); | ||
81 | |||
82 | if (pending & STATUSF_IP0) | ||
83 | do_IRQ(0); | ||
84 | else if (pending & STATUSF_IP1) | ||
85 | do_IRQ(1); | ||
86 | else if (pending & STATUSF_IP2) | ||
87 | do_IRQ(2); | ||
88 | else if (pending & STATUSF_IP3) | ||
89 | do_IRQ(3); | ||
90 | else if (pending & STATUSF_IP4) | ||
91 | do_IRQ(4); | ||
92 | else if (pending & STATUSF_IP5) | ||
93 | do_IRQ(5); | ||
94 | else if (pending & STATUSF_IP6) | ||
95 | do_IRQ(6); | ||
96 | else if (pending & STATUSF_IP7) | ||
97 | do_IRQ(7); | ||
98 | else { | ||
99 | /* | ||
100 | * Now look at the extended interrupts | ||
101 | */ | ||
102 | pending = (read_c0_cause() & (read_c0_intcontrol() << 8)) >> 16; | ||
103 | |||
104 | if (pending & STATUSF_IP8) | ||
105 | ll_mv64340_irq(); | ||
106 | else | ||
107 | spurious_interrupt(); | ||
108 | } | ||
109 | } | ||
diff --git a/arch/mips/momentum/ocelot_3/platform.c b/arch/mips/momentum/ocelot_3/platform.c deleted file mode 100644 index 44e4c3fc7403..000000000000 --- a/arch/mips/momentum/ocelot_3/platform.c +++ /dev/null | |||
@@ -1,208 +0,0 @@ | |||
1 | #include <linux/delay.h> | ||
2 | #include <linux/if_ether.h> | ||
3 | #include <linux/ioport.h> | ||
4 | #include <linux/mv643xx.h> | ||
5 | #include <linux/platform_device.h> | ||
6 | |||
7 | #include "ocelot_3_fpga.h" | ||
8 | |||
9 | #if defined(CONFIG_MV643XX_ETH) || defined(CONFIG_MV643XX_ETH_MODULE) | ||
10 | |||
11 | static struct resource mv643xx_eth_shared_resources[] = { | ||
12 | [0] = { | ||
13 | .name = "ethernet shared base", | ||
14 | .start = 0xf1000000 + MV643XX_ETH_SHARED_REGS, | ||
15 | .end = 0xf1000000 + MV643XX_ETH_SHARED_REGS + | ||
16 | MV643XX_ETH_SHARED_REGS_SIZE - 1, | ||
17 | .flags = IORESOURCE_MEM, | ||
18 | }, | ||
19 | }; | ||
20 | |||
21 | static struct platform_device mv643xx_eth_shared_device = { | ||
22 | .name = MV643XX_ETH_SHARED_NAME, | ||
23 | .id = 0, | ||
24 | .num_resources = ARRAY_SIZE(mv643xx_eth_shared_resources), | ||
25 | .resource = mv643xx_eth_shared_resources, | ||
26 | }; | ||
27 | |||
28 | #define MV_SRAM_BASE 0xfe000000UL | ||
29 | #define MV_SRAM_SIZE (256 * 1024) | ||
30 | |||
31 | #define MV_SRAM_RXRING_SIZE (MV_SRAM_SIZE / 4) | ||
32 | #define MV_SRAM_TXRING_SIZE (MV_SRAM_SIZE / 4) | ||
33 | |||
34 | #define MV_SRAM_BASE_ETH0 MV_SRAM_BASE | ||
35 | #define MV_SRAM_BASE_ETH1 (MV_SRAM_BASE + (MV_SRAM_SIZE / 2)) | ||
36 | |||
37 | #define MV64x60_IRQ_ETH_0 48 | ||
38 | #define MV64x60_IRQ_ETH_1 49 | ||
39 | #define MV64x60_IRQ_ETH_2 50 | ||
40 | |||
41 | static struct resource mv64x60_eth0_resources[] = { | ||
42 | [0] = { | ||
43 | .name = "eth0 irq", | ||
44 | .start = MV64x60_IRQ_ETH_0, | ||
45 | .end = MV64x60_IRQ_ETH_0, | ||
46 | .flags = IORESOURCE_IRQ, | ||
47 | }, | ||
48 | }; | ||
49 | |||
50 | static struct mv643xx_eth_platform_data eth0_pd = { | ||
51 | .port_number = 0, | ||
52 | |||
53 | .tx_sram_addr = MV_SRAM_BASE_ETH0, | ||
54 | .tx_sram_size = MV_SRAM_TXRING_SIZE, | ||
55 | .tx_queue_size = MV_SRAM_TXRING_SIZE / 16, | ||
56 | |||
57 | .rx_sram_addr = MV_SRAM_BASE_ETH0 + MV_SRAM_TXRING_SIZE, | ||
58 | .rx_sram_size = MV_SRAM_RXRING_SIZE, | ||
59 | .rx_queue_size = MV_SRAM_RXRING_SIZE / 16, | ||
60 | }; | ||
61 | |||
62 | static struct platform_device eth0_device = { | ||
63 | .name = MV643XX_ETH_NAME, | ||
64 | .id = 0, | ||
65 | .num_resources = ARRAY_SIZE(mv64x60_eth0_resources), | ||
66 | .resource = mv64x60_eth0_resources, | ||
67 | .dev = { | ||
68 | .platform_data = ð0_pd, | ||
69 | }, | ||
70 | }; | ||
71 | |||
72 | static struct resource mv64x60_eth1_resources[] = { | ||
73 | [0] = { | ||
74 | .name = "eth1 irq", | ||
75 | .start = MV64x60_IRQ_ETH_1, | ||
76 | .end = MV64x60_IRQ_ETH_1, | ||
77 | .flags = IORESOURCE_IRQ, | ||
78 | }, | ||
79 | }; | ||
80 | |||
81 | static struct mv643xx_eth_platform_data eth1_pd = { | ||
82 | .port_number = 1, | ||
83 | |||
84 | .tx_sram_addr = MV_SRAM_BASE_ETH1, | ||
85 | .tx_sram_size = MV_SRAM_TXRING_SIZE, | ||
86 | .tx_queue_size = MV_SRAM_TXRING_SIZE / 16, | ||
87 | |||
88 | .rx_sram_addr = MV_SRAM_BASE_ETH1 + MV_SRAM_TXRING_SIZE, | ||
89 | .rx_sram_size = MV_SRAM_RXRING_SIZE, | ||
90 | .rx_queue_size = MV_SRAM_RXRING_SIZE / 16, | ||
91 | }; | ||
92 | |||
93 | static struct platform_device eth1_device = { | ||
94 | .name = MV643XX_ETH_NAME, | ||
95 | .id = 1, | ||
96 | .num_resources = ARRAY_SIZE(mv64x60_eth1_resources), | ||
97 | .resource = mv64x60_eth1_resources, | ||
98 | .dev = { | ||
99 | .platform_data = ð1_pd, | ||
100 | }, | ||
101 | }; | ||
102 | |||
103 | static struct resource mv64x60_eth2_resources[] = { | ||
104 | [0] = { | ||
105 | .name = "eth2 irq", | ||
106 | .start = MV64x60_IRQ_ETH_2, | ||
107 | .end = MV64x60_IRQ_ETH_2, | ||
108 | .flags = IORESOURCE_IRQ, | ||
109 | }, | ||
110 | }; | ||
111 | |||
112 | static struct mv643xx_eth_platform_data eth2_pd = { | ||
113 | .port_number = 2, | ||
114 | }; | ||
115 | |||
116 | static struct platform_device eth2_device = { | ||
117 | .name = MV643XX_ETH_NAME, | ||
118 | .id = 2, | ||
119 | .num_resources = ARRAY_SIZE(mv64x60_eth2_resources), | ||
120 | .resource = mv64x60_eth2_resources, | ||
121 | .dev = { | ||
122 | .platform_data = ð2_pd, | ||
123 | }, | ||
124 | }; | ||
125 | |||
126 | static struct platform_device *mv643xx_eth_pd_devs[] __initdata = { | ||
127 | &mv643xx_eth_shared_device, | ||
128 | ð0_device, | ||
129 | ð1_device, | ||
130 | ð2_device, | ||
131 | }; | ||
132 | |||
133 | static u8 __init exchange_bit(u8 val, u8 cs) | ||
134 | { | ||
135 | /* place the data */ | ||
136 | OCELOT_FPGA_WRITE((val << 2) | cs, EEPROM_MODE); | ||
137 | udelay(1); | ||
138 | |||
139 | /* turn the clock on */ | ||
140 | OCELOT_FPGA_WRITE((val << 2) | cs | 0x2, EEPROM_MODE); | ||
141 | udelay(1); | ||
142 | |||
143 | /* turn the clock off and read-strobe */ | ||
144 | OCELOT_FPGA_WRITE((val << 2) | cs | 0x10, EEPROM_MODE); | ||
145 | |||
146 | /* return the data */ | ||
147 | return (OCELOT_FPGA_READ(EEPROM_MODE) >> 3) & 0x1; | ||
148 | } | ||
149 | |||
150 | static void __init get_mac(char dest[6]) | ||
151 | { | ||
152 | u8 read_opcode[12] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; | ||
153 | int i,j; | ||
154 | |||
155 | for (i = 0; i < 12; i++) | ||
156 | exchange_bit(read_opcode[i], 1); | ||
157 | |||
158 | for (j = 0; j < 6; j++) { | ||
159 | dest[j] = 0; | ||
160 | for (i = 0; i < 8; i++) { | ||
161 | dest[j] <<= 1; | ||
162 | dest[j] |= exchange_bit(0, 1); | ||
163 | } | ||
164 | } | ||
165 | |||
166 | /* turn off CS */ | ||
167 | exchange_bit(0,0); | ||
168 | } | ||
169 | |||
170 | /* | ||
171 | * Copy and increment ethernet MAC address by a small value. | ||
172 | * | ||
173 | * This is useful for systems where the only one MAC address is stored in | ||
174 | * non-volatile memory for multiple ports. | ||
175 | */ | ||
176 | static inline void eth_mac_add(unsigned char *dst, unsigned char *src, | ||
177 | unsigned int add) | ||
178 | { | ||
179 | int i; | ||
180 | |||
181 | BUG_ON(add >= 256); | ||
182 | |||
183 | for (i = ETH_ALEN; i >= 0; i--) { | ||
184 | dst[i] = src[i] + add; | ||
185 | add = dst[i] < src[i]; /* compute carry */ | ||
186 | } | ||
187 | |||
188 | WARN_ON(add); | ||
189 | } | ||
190 | |||
191 | static int __init mv643xx_eth_add_pds(void) | ||
192 | { | ||
193 | unsigned char mac[ETH_ALEN]; | ||
194 | int ret; | ||
195 | |||
196 | get_mac(mac); | ||
197 | eth_mac_add(eth0_pd.mac_addr, mac, 0); | ||
198 | eth_mac_add(eth1_pd.mac_addr, mac, 1); | ||
199 | eth_mac_add(eth2_pd.mac_addr, mac, 2); | ||
200 | ret = platform_add_devices(mv643xx_eth_pd_devs, | ||
201 | ARRAY_SIZE(mv643xx_eth_pd_devs)); | ||
202 | |||
203 | return ret; | ||
204 | } | ||
205 | |||
206 | device_initcall(mv643xx_eth_add_pds); | ||
207 | |||
208 | #endif /* defined(CONFIG_MV643XX_ETH) || defined(CONFIG_MV643XX_ETH_MODULE) */ | ||
diff --git a/arch/mips/momentum/ocelot_3/prom.c b/arch/mips/momentum/ocelot_3/prom.c deleted file mode 100644 index 8e02df63578a..000000000000 --- a/arch/mips/momentum/ocelot_3/prom.c +++ /dev/null | |||
@@ -1,189 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright 2002 Momentum Computer Inc. | ||
3 | * Author: Matthew Dharm <mdharm@momenco.com> | ||
4 | * | ||
5 | * Louis Hamilton, Red Hat, Inc. | ||
6 | * hamilton@redhat.com [MIPS64 modifications] | ||
7 | * | ||
8 | * Copyright 2004 PMC-Sierra | ||
9 | * Author: Manish Lachwani (lachwani@pmc-sierra.com) | ||
10 | * | ||
11 | * Based on Ocelot Linux port, which is | ||
12 | * Copyright 2001 MontaVista Software Inc. | ||
13 | * Author: jsun@mvista.com or jsun@junsun.net | ||
14 | * | ||
15 | * This program is free software; you can redistribute it and/or modify it | ||
16 | * under the terms of the GNU General Public License as published by the | ||
17 | * Free Software Foundation; either version 2 of the License, or (at your | ||
18 | * option) any later version. | ||
19 | * | ||
20 | * Copyright (C) 2004 MontaVista Software Inc. | ||
21 | * Author: Manish Lachwani, mlachwani@mvista.com | ||
22 | * | ||
23 | */ | ||
24 | #include <linux/init.h> | ||
25 | #include <linux/bootmem.h> | ||
26 | #include <linux/mv643xx.h> | ||
27 | |||
28 | #include <asm/addrspace.h> | ||
29 | #include <asm/bootinfo.h> | ||
30 | #include <asm/pmon.h> | ||
31 | #include "ocelot_3_fpga.h" | ||
32 | |||
33 | struct callvectors* debug_vectors; | ||
34 | extern unsigned long marvell_base; | ||
35 | extern unsigned long cpu_clock; | ||
36 | |||
37 | const char *get_system_type(void) | ||
38 | { | ||
39 | return "Momentum Ocelot-3"; | ||
40 | } | ||
41 | |||
42 | #ifdef CONFIG_64BIT | ||
43 | |||
44 | unsigned long signext(unsigned long addr) | ||
45 | { | ||
46 | addr &= 0xffffffff; | ||
47 | return (unsigned long)((int)addr); | ||
48 | } | ||
49 | |||
50 | void *get_arg(unsigned long args, int arc) | ||
51 | { | ||
52 | unsigned long ul; | ||
53 | unsigned char *puc, uc; | ||
54 | |||
55 | args += (arc * 4); | ||
56 | ul = (unsigned long)signext(args); | ||
57 | puc = (unsigned char *)ul; | ||
58 | if (puc == 0) | ||
59 | return (void *)0; | ||
60 | |||
61 | #ifdef CONFIG_CPU_LITTLE_ENDIAN | ||
62 | uc = *puc++; | ||
63 | ul = (unsigned long)uc; | ||
64 | uc = *puc++; | ||
65 | ul |= (((unsigned long)uc) << 8); | ||
66 | uc = *puc++; | ||
67 | ul |= (((unsigned long)uc) << 16); | ||
68 | uc = *puc++; | ||
69 | ul |= (((unsigned long)uc) << 24); | ||
70 | #else /* CONFIG_CPU_LITTLE_ENDIAN */ | ||
71 | uc = *puc++; | ||
72 | ul = ((unsigned long)uc) << 24; | ||
73 | uc = *puc++; | ||
74 | ul |= (((unsigned long)uc) << 16); | ||
75 | uc = *puc++; | ||
76 | ul |= (((unsigned long)uc) << 8); | ||
77 | uc = *puc++; | ||
78 | ul |= ((unsigned long)uc); | ||
79 | #endif /* CONFIG_CPU_LITTLE_ENDIAN */ | ||
80 | ul = signext(ul); | ||
81 | return (void *)ul; | ||
82 | } | ||
83 | |||
84 | char *arg64(unsigned long addrin, int arg_index) | ||
85 | { | ||
86 | unsigned long args; | ||
87 | char *p; | ||
88 | |||
89 | args = signext(addrin); | ||
90 | p = (char *)get_arg(args, arg_index); | ||
91 | |||
92 | return p; | ||
93 | } | ||
94 | #endif /* CONFIG_64BIT */ | ||
95 | |||
96 | void __init prom_init(void) | ||
97 | { | ||
98 | int argc = fw_arg0; | ||
99 | char **arg = (char **) fw_arg1; | ||
100 | char **env = (char **) fw_arg2; | ||
101 | struct callvectors *cv = (struct callvectors *) fw_arg3; | ||
102 | int i; | ||
103 | |||
104 | #ifdef CONFIG_64BIT | ||
105 | char *ptr; | ||
106 | printk("prom_init - MIPS64\n"); | ||
107 | |||
108 | /* save the PROM vectors for debugging use */ | ||
109 | debug_vectors = (struct callvectors *)signext((unsigned long)cv); | ||
110 | |||
111 | /* arg[0] is "g", the rest is boot parameters */ | ||
112 | arcs_cmdline[0] = '\0'; | ||
113 | |||
114 | for (i = 1; i < argc; i++) { | ||
115 | ptr = (char *)arg64((unsigned long)arg, i); | ||
116 | if ((strlen(arcs_cmdline) + strlen(ptr) + 1) >= | ||
117 | sizeof(arcs_cmdline)) | ||
118 | break; | ||
119 | strcat(arcs_cmdline, ptr); | ||
120 | strcat(arcs_cmdline, " "); | ||
121 | } | ||
122 | i = 0; | ||
123 | |||
124 | while (1) { | ||
125 | ptr = (char *)arg64((unsigned long)env, i); | ||
126 | if (! ptr) | ||
127 | break; | ||
128 | |||
129 | if (strncmp("gtbase", ptr, strlen("gtbase")) == 0) { | ||
130 | marvell_base = simple_strtol(ptr + strlen("gtbase="), | ||
131 | NULL, 16); | ||
132 | |||
133 | if ((marvell_base & 0xffffffff00000000) == 0) | ||
134 | marvell_base |= 0xffffffff00000000; | ||
135 | |||
136 | printk("marvell_base set to 0x%016lx\n", marvell_base); | ||
137 | } | ||
138 | if (strncmp("cpuclock", ptr, strlen("cpuclock")) == 0) { | ||
139 | cpu_clock = simple_strtol(ptr + strlen("cpuclock="), | ||
140 | NULL, 10); | ||
141 | printk("cpu_clock set to %d\n", cpu_clock); | ||
142 | } | ||
143 | i++; | ||
144 | } | ||
145 | printk("arcs_cmdline: %s\n", arcs_cmdline); | ||
146 | |||
147 | #else /* CONFIG_64BIT */ | ||
148 | |||
149 | /* save the PROM vectors for debugging use */ | ||
150 | debug_vectors = cv; | ||
151 | |||
152 | /* arg[0] is "g", the rest is boot parameters */ | ||
153 | arcs_cmdline[0] = '\0'; | ||
154 | for (i = 1; i < argc; i++) { | ||
155 | if (strlen(arcs_cmdline) + strlen(arg[i] + 1) | ||
156 | >= sizeof(arcs_cmdline)) | ||
157 | break; | ||
158 | strcat(arcs_cmdline, arg[i]); | ||
159 | strcat(arcs_cmdline, " "); | ||
160 | } | ||
161 | |||
162 | while (*env) { | ||
163 | if (strncmp("gtbase", *env, strlen("gtbase")) == 0) { | ||
164 | marvell_base = simple_strtol(*env + strlen("gtbase="), | ||
165 | NULL, 16); | ||
166 | } | ||
167 | if (strncmp("cpuclock", *env, strlen("cpuclock")) == 0) { | ||
168 | cpu_clock = simple_strtol(*env + strlen("cpuclock="), | ||
169 | NULL, 10); | ||
170 | } | ||
171 | env++; | ||
172 | } | ||
173 | #endif /* CONFIG_64BIT */ | ||
174 | |||
175 | mips_machgroup = MACH_GROUP_MOMENCO; | ||
176 | mips_machtype = MACH_MOMENCO_OCELOT_3; | ||
177 | |||
178 | #ifndef CONFIG_64BIT | ||
179 | debug_vectors->printf("Booting Linux kernel...\n"); | ||
180 | #endif | ||
181 | } | ||
182 | |||
183 | void __init prom_free_prom_memory(void) | ||
184 | { | ||
185 | } | ||
186 | |||
187 | void __init prom_fixup_mem_map(unsigned long start, unsigned long end) | ||
188 | { | ||
189 | } | ||
diff --git a/arch/mips/momentum/ocelot_3/reset.c b/arch/mips/momentum/ocelot_3/reset.c deleted file mode 100644 index 9d86d2468376..000000000000 --- a/arch/mips/momentum/ocelot_3/reset.c +++ /dev/null | |||
@@ -1,59 +0,0 @@ | |||
1 | /* | ||
2 | * This program is free software; you can redistribute it and/or modify it | ||
3 | * under the terms of the GNU General Public License as published by the | ||
4 | * Free Software Foundation; either version 2 of the License, or (at your | ||
5 | * option) any later version. | ||
6 | * | ||
7 | * Copyright (C) 1997, 01, 05 Ralf Baechle | ||
8 | * Copyright 2001 MontaVista Software Inc. | ||
9 | * Author: jsun@mvista.com or jsun@junsun.net | ||
10 | * | ||
11 | * Copyright (C) 2002 Momentum Computer Inc. | ||
12 | * Author: Matthew Dharm <mdharm@momenco.com> | ||
13 | * | ||
14 | * Louis Hamilton, Red Hat, Inc. | ||
15 | * hamilton@redhat.com [MIPS64 modifications] | ||
16 | * | ||
17 | * Copyright 2004 PMC-Sierra | ||
18 | * Author: Manish Lachwani (lachwani@pmc-sierra.com) | ||
19 | * | ||
20 | * Copyright (C) 2004 MontaVista Software Inc. | ||
21 | * Author: Manish Lachwani, mlachwani@mvista.com | ||
22 | */ | ||
23 | #include <linux/sched.h> | ||
24 | #include <linux/mm.h> | ||
25 | #include <linux/delay.h> | ||
26 | #include <asm/io.h> | ||
27 | #include <asm/pgtable.h> | ||
28 | #include <asm/processor.h> | ||
29 | #include <asm/reboot.h> | ||
30 | #include <asm/system.h> | ||
31 | |||
32 | void momenco_ocelot_restart(char *command) | ||
33 | { | ||
34 | /* base address of timekeeper portion of part */ | ||
35 | void *nvram = (void *) 0xfc807000L; | ||
36 | |||
37 | /* Ask the NVRAM/RTC/watchdog chip to assert reset in 1/16 second */ | ||
38 | writeb(0x84, nvram + 0xff7); | ||
39 | |||
40 | /* wait for the watchdog to go off */ | ||
41 | mdelay(100+(1000/16)); | ||
42 | |||
43 | /* if the watchdog fails for some reason, let people know */ | ||
44 | printk(KERN_NOTICE "Watchdog reset failed\n"); | ||
45 | } | ||
46 | |||
47 | void momenco_ocelot_halt(void) | ||
48 | { | ||
49 | printk(KERN_NOTICE "\n** You can safely turn off the power\n"); | ||
50 | while (1) | ||
51 | __asm__(".set\tmips3\n\t" | ||
52 | "wait\n\t" | ||
53 | ".set\tmips0"); | ||
54 | } | ||
55 | |||
56 | void momenco_ocelot_power_off(void) | ||
57 | { | ||
58 | momenco_ocelot_halt(); | ||
59 | } | ||
diff --git a/arch/mips/momentum/ocelot_3/setup.c b/arch/mips/momentum/ocelot_3/setup.c deleted file mode 100644 index ff0829f81116..000000000000 --- a/arch/mips/momentum/ocelot_3/setup.c +++ /dev/null | |||
@@ -1,398 +0,0 @@ | |||
1 | /* | ||
2 | * setup.c | ||
3 | * | ||
4 | * BRIEF MODULE DESCRIPTION | ||
5 | * Momentum Computer Ocelot-3 board dependent boot routines | ||
6 | * | ||
7 | * Copyright (C) 1996, 1997, 01, 05 - 06 Ralf Baechle | ||
8 | * Copyright (C) 2000 RidgeRun, Inc. | ||
9 | * Copyright (C) 2001 Red Hat, Inc. | ||
10 | * Copyright (C) 2002 Momentum Computer | ||
11 | * | ||
12 | * Author: Matthew Dharm, Momentum Computer | ||
13 | * mdharm@momenco.com | ||
14 | * | ||
15 | * Louis Hamilton, Red Hat, Inc. | ||
16 | * hamilton@redhat.com [MIPS64 modifications] | ||
17 | * | ||
18 | * Author: RidgeRun, Inc. | ||
19 | * glonnon@ridgerun.com, skranz@ridgerun.com, stevej@ridgerun.com | ||
20 | * | ||
21 | * Copyright 2001 MontaVista Software Inc. | ||
22 | * Author: jsun@mvista.com or jsun@junsun.net | ||
23 | * | ||
24 | * Copyright 2004 PMC-Sierra | ||
25 | * Author: Manish Lachwani (lachwani@pmc-sierra.com) | ||
26 | * | ||
27 | * Copyright (C) 2004 MontaVista Software Inc. | ||
28 | * Author: Manish Lachwani, mlachwani@mvista.com | ||
29 | * | ||
30 | * This program is free software; you can redistribute it and/or modify it | ||
31 | * under the terms of the GNU General Public License as published by the | ||
32 | * Free Software Foundation; either version 2 of the License, or (at your | ||
33 | * option) any later version. | ||
34 | * | ||
35 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | ||
36 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
37 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN | ||
38 | * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
39 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
40 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | ||
41 | * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||
42 | * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
43 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
44 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
45 | * | ||
46 | * You should have received a copy of the GNU General Public License along | ||
47 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
48 | * 675 Mass Ave, Cambridge, MA 02139, USA. | ||
49 | */ | ||
50 | #include <linux/init.h> | ||
51 | #include <linux/kernel.h> | ||
52 | #include <linux/types.h> | ||
53 | #include <linux/mc146818rtc.h> | ||
54 | #include <linux/ioport.h> | ||
55 | #include <linux/interrupt.h> | ||
56 | #include <linux/pci.h> | ||
57 | #include <linux/timex.h> | ||
58 | #include <linux/bootmem.h> | ||
59 | #include <linux/mv643xx.h> | ||
60 | #include <linux/pm.h> | ||
61 | #include <linux/bcd.h> | ||
62 | |||
63 | #include <asm/time.h> | ||
64 | #include <asm/page.h> | ||
65 | #include <asm/bootinfo.h> | ||
66 | #include <asm/io.h> | ||
67 | #include <asm/irq.h> | ||
68 | #include <asm/pci.h> | ||
69 | #include <asm/processor.h> | ||
70 | #include <asm/reboot.h> | ||
71 | #include <asm/mc146818rtc.h> | ||
72 | #include <asm/tlbflush.h> | ||
73 | #include "ocelot_3_fpga.h" | ||
74 | |||
75 | /* Marvell Discovery Register Base */ | ||
76 | unsigned long marvell_base = (signed)0xf4000000; | ||
77 | |||
78 | /* CPU clock */ | ||
79 | unsigned long cpu_clock; | ||
80 | |||
81 | /* RTC/NVRAM */ | ||
82 | unsigned char* rtc_base = (unsigned char*)(signed)0xfc800000; | ||
83 | |||
84 | /* FPGA Base */ | ||
85 | unsigned long ocelot_fpga_base = (signed)0xfc000000; | ||
86 | |||
87 | /* Serial base */ | ||
88 | unsigned long uart_base = (signed)0xfd000000; | ||
89 | |||
90 | /* | ||
91 | * Marvell Discovery SRAM. This is one place where Ethernet | ||
92 | * Tx and Rx descriptors can be placed to improve performance | ||
93 | */ | ||
94 | extern unsigned long mv64340_sram_base; | ||
95 | |||
96 | /* These functions are used for rebooting or halting the machine*/ | ||
97 | extern void momenco_ocelot_restart(char *command); | ||
98 | extern void momenco_ocelot_halt(void); | ||
99 | extern void momenco_ocelot_power_off(void); | ||
100 | |||
101 | void momenco_time_init(void); | ||
102 | static char reset_reason; | ||
103 | |||
104 | void add_wired_entry(unsigned long entrylo0, unsigned long entrylo1, | ||
105 | unsigned long entryhi, unsigned long pagemask); | ||
106 | |||
107 | static inline unsigned long ENTRYLO(unsigned long paddr) | ||
108 | { | ||
109 | return ((paddr & PAGE_MASK) | | ||
110 | (_PAGE_PRESENT | __READABLE | __WRITEABLE | _PAGE_GLOBAL | | ||
111 | _CACHE_UNCACHED)) >> 6; | ||
112 | } | ||
113 | |||
114 | void __init bus_error_init(void) | ||
115 | { | ||
116 | /* nothing */ | ||
117 | } | ||
118 | |||
119 | /* | ||
120 | * setup code for a handoff from a version 2 PMON 2000 PROM | ||
121 | */ | ||
122 | void setup_wired_tlb_entries(void) | ||
123 | { | ||
124 | write_c0_wired(0); | ||
125 | local_flush_tlb_all(); | ||
126 | |||
127 | /* marvell and extra space */ | ||
128 | add_wired_entry(ENTRYLO(0xf4000000), ENTRYLO(0xf4010000), (signed)0xf4000000, PM_64K); | ||
129 | |||
130 | /* fpga, rtc, and uart */ | ||
131 | add_wired_entry(ENTRYLO(0xfc000000), ENTRYLO(0xfd000000), (signed)0xfc000000, PM_16M); | ||
132 | } | ||
133 | |||
134 | unsigned long m48t37y_get_time(void) | ||
135 | { | ||
136 | unsigned int year, month, day, hour, min, sec; | ||
137 | unsigned long flags; | ||
138 | |||
139 | spin_lock_irqsave(&rtc_lock, flags); | ||
140 | /* stop the update */ | ||
141 | rtc_base[0x7ff8] = 0x40; | ||
142 | |||
143 | year = BCD2BIN(rtc_base[0x7fff]); | ||
144 | year += BCD2BIN(rtc_base[0x7ff1]) * 100; | ||
145 | |||
146 | month = BCD2BIN(rtc_base[0x7ffe]); | ||
147 | |||
148 | day = BCD2BIN(rtc_base[0x7ffd]); | ||
149 | |||
150 | hour = BCD2BIN(rtc_base[0x7ffb]); | ||
151 | min = BCD2BIN(rtc_base[0x7ffa]); | ||
152 | sec = BCD2BIN(rtc_base[0x7ff9]); | ||
153 | |||
154 | /* start the update */ | ||
155 | rtc_base[0x7ff8] = 0x00; | ||
156 | spin_unlock_irqrestore(&rtc_lock, flags); | ||
157 | |||
158 | return mktime(year, month, day, hour, min, sec); | ||
159 | } | ||
160 | |||
161 | int m48t37y_set_time(unsigned long sec) | ||
162 | { | ||
163 | struct rtc_time tm; | ||
164 | unsigned long flags; | ||
165 | |||
166 | /* convert to a more useful format -- note months count from 0 */ | ||
167 | to_tm(sec, &tm); | ||
168 | tm.tm_mon += 1; | ||
169 | |||
170 | spin_lock_irqsave(&rtc_lock, flags); | ||
171 | /* enable writing */ | ||
172 | rtc_base[0x7ff8] = 0x80; | ||
173 | |||
174 | /* year */ | ||
175 | rtc_base[0x7fff] = BIN2BCD(tm.tm_year % 100); | ||
176 | rtc_base[0x7ff1] = BIN2BCD(tm.tm_year / 100); | ||
177 | |||
178 | /* month */ | ||
179 | rtc_base[0x7ffe] = BIN2BCD(tm.tm_mon); | ||
180 | |||
181 | /* day */ | ||
182 | rtc_base[0x7ffd] = BIN2BCD(tm.tm_mday); | ||
183 | |||
184 | /* hour/min/sec */ | ||
185 | rtc_base[0x7ffb] = BIN2BCD(tm.tm_hour); | ||
186 | rtc_base[0x7ffa] = BIN2BCD(tm.tm_min); | ||
187 | rtc_base[0x7ff9] = BIN2BCD(tm.tm_sec); | ||
188 | |||
189 | /* day of week -- not really used, but let's keep it up-to-date */ | ||
190 | rtc_base[0x7ffc] = BIN2BCD(tm.tm_wday + 1); | ||
191 | |||
192 | /* disable writing */ | ||
193 | rtc_base[0x7ff8] = 0x00; | ||
194 | spin_unlock_irqrestore(&rtc_lock, flags); | ||
195 | |||
196 | return 0; | ||
197 | } | ||
198 | |||
199 | void __init plat_timer_setup(struct irqaction *irq) | ||
200 | { | ||
201 | setup_irq(7, irq); /* Timer interrupt, unmask status IM7 */ | ||
202 | } | ||
203 | |||
204 | void momenco_time_init(void) | ||
205 | { | ||
206 | setup_wired_tlb_entries(); | ||
207 | |||
208 | /* | ||
209 | * Ocelot-3 board has been built with both | ||
210 | * the Rm7900 and the Rm7065C | ||
211 | */ | ||
212 | mips_hpt_frequency = cpu_clock / 2; | ||
213 | |||
214 | rtc_mips_get_time = m48t37y_get_time; | ||
215 | rtc_mips_set_time = m48t37y_set_time; | ||
216 | } | ||
217 | |||
218 | /* | ||
219 | * PCI Support for Ocelot-3 | ||
220 | */ | ||
221 | |||
222 | /* Bus #0 IO and MEM space */ | ||
223 | #define OCELOT_3_PCI_IO_0_START 0xe0000000 | ||
224 | #define OCELOT_3_PCI_IO_0_SIZE 0x08000000 | ||
225 | #define OCELOT_3_PCI_MEM_0_START 0xc0000000 | ||
226 | #define OCELOT_3_PCI_MEM_0_SIZE 0x10000000 | ||
227 | |||
228 | /* Bus #1 IO and MEM space */ | ||
229 | #define OCELOT_3_PCI_IO_1_START 0xe8000000 | ||
230 | #define OCELOT_3_PCI_IO_1_SIZE 0x08000000 | ||
231 | #define OCELOT_3_PCI_MEM_1_START 0xd0000000 | ||
232 | #define OCELOT_3_PCI_MEM_1_SIZE 0x10000000 | ||
233 | |||
234 | static struct resource mv_pci_io_mem0_resource = { | ||
235 | .name = "MV64340 PCI0 IO MEM", | ||
236 | .start = OCELOT_3_PCI_IO_0_START, | ||
237 | .end = OCELOT_3_PCI_IO_0_START + OCELOT_3_PCI_IO_0_SIZE - 1, | ||
238 | .flags = IORESOURCE_IO, | ||
239 | }; | ||
240 | |||
241 | static struct resource mv_pci_io_mem1_resource = { | ||
242 | .name = "MV64340 PCI1 IO MEM", | ||
243 | .start = OCELOT_3_PCI_IO_1_START, | ||
244 | .end = OCELOT_3_PCI_IO_1_START + OCELOT_3_PCI_IO_1_SIZE - 1, | ||
245 | .flags = IORESOURCE_IO, | ||
246 | }; | ||
247 | |||
248 | static struct resource mv_pci_mem0_resource = { | ||
249 | .name = "MV64340 PCI0 MEM", | ||
250 | .start = OCELOT_3_PCI_MEM_0_START, | ||
251 | .end = OCELOT_3_PCI_MEM_0_START + OCELOT_3_PCI_MEM_0_SIZE - 1, | ||
252 | .flags = IORESOURCE_MEM, | ||
253 | }; | ||
254 | |||
255 | static struct resource mv_pci_mem1_resource = { | ||
256 | .name = "MV64340 PCI1 MEM", | ||
257 | .start = OCELOT_3_PCI_MEM_1_START, | ||
258 | .end = OCELOT_3_PCI_MEM_1_START + OCELOT_3_PCI_MEM_1_SIZE - 1, | ||
259 | .flags = IORESOURCE_MEM, | ||
260 | }; | ||
261 | |||
262 | static struct mv_pci_controller mv_bus0_controller = { | ||
263 | .pcic = { | ||
264 | .pci_ops = &mv_pci_ops, | ||
265 | .mem_resource = &mv_pci_mem0_resource, | ||
266 | .io_resource = &mv_pci_io_mem0_resource, | ||
267 | }, | ||
268 | .config_addr = MV64340_PCI_0_CONFIG_ADDR, | ||
269 | .config_vreg = MV64340_PCI_0_CONFIG_DATA_VIRTUAL_REG, | ||
270 | }; | ||
271 | |||
272 | static struct mv_pci_controller mv_bus1_controller = { | ||
273 | .pcic = { | ||
274 | .pci_ops = &mv_pci_ops, | ||
275 | .mem_resource = &mv_pci_mem1_resource, | ||
276 | .io_resource = &mv_pci_io_mem1_resource, | ||
277 | }, | ||
278 | .config_addr = MV64340_PCI_1_CONFIG_ADDR, | ||
279 | .config_vreg = MV64340_PCI_1_CONFIG_DATA_VIRTUAL_REG, | ||
280 | }; | ||
281 | |||
282 | static __init int __init ja_pci_init(void) | ||
283 | { | ||
284 | uint32_t enable; | ||
285 | extern int pci_probe_only; | ||
286 | |||
287 | /* PMON will assign PCI resources */ | ||
288 | pci_probe_only = 1; | ||
289 | |||
290 | enable = ~MV_READ(MV64340_BASE_ADDR_ENABLE); | ||
291 | /* | ||
292 | * We require at least one enabled I/O or PCI memory window or we | ||
293 | * will ignore this PCI bus. We ignore PCI windows 1, 2 and 3. | ||
294 | */ | ||
295 | if (enable & (0x01 << 9) || enable & (0x01 << 10)) | ||
296 | register_pci_controller(&mv_bus0_controller.pcic); | ||
297 | |||
298 | if (enable & (0x01 << 14) || enable & (0x01 << 15)) | ||
299 | register_pci_controller(&mv_bus1_controller.pcic); | ||
300 | |||
301 | ioport_resource.end = OCELOT_3_PCI_IO_0_START + OCELOT_3_PCI_IO_0_SIZE + | ||
302 | OCELOT_3_PCI_IO_1_SIZE - 1; | ||
303 | |||
304 | iomem_resource.end = OCELOT_3_PCI_MEM_0_START + OCELOT_3_PCI_MEM_0_SIZE + | ||
305 | OCELOT_3_PCI_MEM_1_SIZE - 1; | ||
306 | |||
307 | set_io_port_base(OCELOT_3_PCI_IO_0_START); /* mips_io_port_base */ | ||
308 | |||
309 | return 0; | ||
310 | } | ||
311 | |||
312 | arch_initcall(ja_pci_init); | ||
313 | |||
314 | void __init plat_mem_setup(void) | ||
315 | { | ||
316 | unsigned int tmpword; | ||
317 | |||
318 | board_time_init = momenco_time_init; | ||
319 | |||
320 | _machine_restart = momenco_ocelot_restart; | ||
321 | _machine_halt = momenco_ocelot_halt; | ||
322 | pm_power_off = momenco_ocelot_power_off; | ||
323 | |||
324 | /* Wired TLB entries */ | ||
325 | setup_wired_tlb_entries(); | ||
326 | |||
327 | /* shut down ethernet ports, just to be sure our memory doesn't get | ||
328 | * corrupted by random ethernet traffic. | ||
329 | */ | ||
330 | MV_WRITE(MV643XX_ETH_TRANSMIT_QUEUE_COMMAND_REG(0), 0xff << 8); | ||
331 | MV_WRITE(MV643XX_ETH_TRANSMIT_QUEUE_COMMAND_REG(1), 0xff << 8); | ||
332 | MV_WRITE(MV643XX_ETH_RECEIVE_QUEUE_COMMAND_REG(0), 0xff << 8); | ||
333 | MV_WRITE(MV643XX_ETH_RECEIVE_QUEUE_COMMAND_REG(1), 0xff << 8); | ||
334 | do {} | ||
335 | while (MV_READ(MV643XX_ETH_RECEIVE_QUEUE_COMMAND_REG(0)) & 0xff); | ||
336 | do {} | ||
337 | while (MV_READ(MV643XX_ETH_RECEIVE_QUEUE_COMMAND_REG(1)) & 0xff); | ||
338 | do {} | ||
339 | while (MV_READ(MV643XX_ETH_TRANSMIT_QUEUE_COMMAND_REG(0)) & 0xff); | ||
340 | do {} | ||
341 | while (MV_READ(MV643XX_ETH_TRANSMIT_QUEUE_COMMAND_REG(1)) & 0xff); | ||
342 | MV_WRITE(MV643XX_ETH_PORT_SERIAL_CONTROL_REG(0), | ||
343 | MV_READ(MV643XX_ETH_PORT_SERIAL_CONTROL_REG(0)) & ~1); | ||
344 | MV_WRITE(MV643XX_ETH_PORT_SERIAL_CONTROL_REG(1), | ||
345 | MV_READ(MV643XX_ETH_PORT_SERIAL_CONTROL_REG(1)) & ~1); | ||
346 | |||
347 | /* Turn off the Bit-Error LED */ | ||
348 | OCELOT_FPGA_WRITE(0x80, CLR); | ||
349 | |||
350 | tmpword = OCELOT_FPGA_READ(BOARDREV); | ||
351 | if (tmpword < 26) | ||
352 | printk("Momenco Ocelot-3: Board Assembly Rev. %c\n", | ||
353 | 'A'+tmpword); | ||
354 | else | ||
355 | printk("Momenco Ocelot-3: Board Assembly Revision #0x%x\n", | ||
356 | tmpword); | ||
357 | |||
358 | tmpword = OCELOT_FPGA_READ(FPGA_REV); | ||
359 | printk("FPGA Rev: %d.%d\n", tmpword>>4, tmpword&15); | ||
360 | tmpword = OCELOT_FPGA_READ(RESET_STATUS); | ||
361 | printk("Reset reason: 0x%x\n", tmpword); | ||
362 | switch (tmpword) { | ||
363 | case 0x1: | ||
364 | printk(" - Power-up reset\n"); | ||
365 | break; | ||
366 | case 0x2: | ||
367 | printk(" - Push-button reset\n"); | ||
368 | break; | ||
369 | case 0x4: | ||
370 | printk(" - cPCI bus reset\n"); | ||
371 | break; | ||
372 | case 0x8: | ||
373 | printk(" - Watchdog reset\n"); | ||
374 | break; | ||
375 | case 0x10: | ||
376 | printk(" - Software reset\n"); | ||
377 | break; | ||
378 | default: | ||
379 | printk(" - Unknown reset cause\n"); | ||
380 | } | ||
381 | reset_reason = tmpword; | ||
382 | OCELOT_FPGA_WRITE(0xff, RESET_STATUS); | ||
383 | |||
384 | tmpword = OCELOT_FPGA_READ(CPCI_ID); | ||
385 | printk("cPCI ID register: 0x%02x\n", tmpword); | ||
386 | printk(" - Slot number: %d\n", tmpword & 0x1f); | ||
387 | printk(" - PCI bus present: %s\n", tmpword & 0x40 ? "yes" : "no"); | ||
388 | printk(" - System Slot: %s\n", tmpword & 0x20 ? "yes" : "no"); | ||
389 | |||
390 | tmpword = OCELOT_FPGA_READ(BOARD_STATUS); | ||
391 | printk("Board Status register: 0x%02x\n", tmpword); | ||
392 | printk(" - User jumper: %s\n", (tmpword & 0x80)?"installed":"absent"); | ||
393 | printk(" - Boot flash write jumper: %s\n", (tmpword&0x40)?"installed":"absent"); | ||
394 | printk(" - L3 cache size: %d MB\n", (1<<((tmpword&12) >> 2))&~1); | ||
395 | |||
396 | /* Support for 128 MB memory */ | ||
397 | add_memory_region(0x0, 0x08000000, BOOT_MEM_RAM); | ||
398 | } | ||
diff --git a/arch/mips/momentum/ocelot_c/Makefile b/arch/mips/momentum/ocelot_c/Makefile deleted file mode 100644 index d69161aa1675..000000000000 --- a/arch/mips/momentum/ocelot_c/Makefile +++ /dev/null | |||
@@ -1,8 +0,0 @@ | |||
1 | # | ||
2 | # Makefile for Momentum Computer's Ocelot-C and -CS boards. | ||
3 | # | ||
4 | |||
5 | obj-y += cpci-irq.o irq.o platform.o prom.o reset.o \ | ||
6 | setup.o uart-irq.o | ||
7 | |||
8 | obj-$(CONFIG_KGDB) += dbg_io.o | ||
diff --git a/arch/mips/momentum/ocelot_c/cpci-irq.c b/arch/mips/momentum/ocelot_c/cpci-irq.c deleted file mode 100644 index 186a140fd2a9..000000000000 --- a/arch/mips/momentum/ocelot_c/cpci-irq.c +++ /dev/null | |||
@@ -1,100 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright 2002 Momentum Computer | ||
3 | * Author: mdharm@momenco.com | ||
4 | * | ||
5 | * arch/mips/momentum/ocelot_c/cpci-irq.c | ||
6 | * Interrupt routines for cpci. Interrupt numbers are assigned from | ||
7 | * CPCI_IRQ_BASE to CPCI_IRQ_BASE+8 (8 interrupt sources). | ||
8 | * | ||
9 | * Note that the high-level software will need to be careful about using | ||
10 | * these interrupts. If this board is asserting a cPCI interrupt, it will | ||
11 | * also see the asserted interrupt. Care must be taken to avoid an | ||
12 | * interrupt flood. | ||
13 | * | ||
14 | * This program is free software; you can redistribute it and/or modify it | ||
15 | * under the terms of the GNU General Public License as published by the | ||
16 | * Free Software Foundation; either version 2 of the License, or (at your | ||
17 | * option) any later version. | ||
18 | */ | ||
19 | |||
20 | #include <linux/module.h> | ||
21 | #include <linux/interrupt.h> | ||
22 | #include <linux/irq.h> | ||
23 | #include <linux/kernel.h> | ||
24 | #include <linux/sched.h> | ||
25 | #include <linux/kernel_stat.h> | ||
26 | #include <asm/io.h> | ||
27 | #include "ocelot_c_fpga.h" | ||
28 | |||
29 | #define CPCI_IRQ_BASE 8 | ||
30 | |||
31 | static inline int ls1bit8(unsigned int x) | ||
32 | { | ||
33 | int b = 7, s; | ||
34 | |||
35 | s = 4; if (((unsigned char)(x << 4)) == 0) s = 0; b -= s; x <<= s; | ||
36 | s = 2; if (((unsigned char)(x << 2)) == 0) s = 0; b -= s; x <<= s; | ||
37 | s = 1; if (((unsigned char)(x << 1)) == 0) s = 0; b -= s; | ||
38 | |||
39 | return b; | ||
40 | } | ||
41 | |||
42 | /* mask off an interrupt -- 0 is enable, 1 is disable */ | ||
43 | static inline void mask_cpci_irq(unsigned int irq) | ||
44 | { | ||
45 | uint32_t value; | ||
46 | |||
47 | value = OCELOT_FPGA_READ(INTMASK); | ||
48 | value |= 1 << (irq - CPCI_IRQ_BASE); | ||
49 | OCELOT_FPGA_WRITE(value, INTMASK); | ||
50 | |||
51 | /* read the value back to assure that it's really been written */ | ||
52 | value = OCELOT_FPGA_READ(INTMASK); | ||
53 | } | ||
54 | |||
55 | /* unmask an interrupt -- 0 is enable, 1 is disable */ | ||
56 | static inline void unmask_cpci_irq(unsigned int irq) | ||
57 | { | ||
58 | uint32_t value; | ||
59 | |||
60 | value = OCELOT_FPGA_READ(INTMASK); | ||
61 | value &= ~(1 << (irq - CPCI_IRQ_BASE)); | ||
62 | OCELOT_FPGA_WRITE(value, INTMASK); | ||
63 | |||
64 | /* read the value back to assure that it's really been written */ | ||
65 | value = OCELOT_FPGA_READ(INTMASK); | ||
66 | } | ||
67 | |||
68 | /* | ||
69 | * Interrupt handler for interrupts coming from the FPGA chip. | ||
70 | * It could be built in ethernet ports etc... | ||
71 | */ | ||
72 | void ll_cpci_irq(void) | ||
73 | { | ||
74 | unsigned int irq_src, irq_mask; | ||
75 | |||
76 | /* read the interrupt status registers */ | ||
77 | irq_src = OCELOT_FPGA_READ(INTSTAT); | ||
78 | irq_mask = OCELOT_FPGA_READ(INTMASK); | ||
79 | |||
80 | /* mask for just the interrupts we want */ | ||
81 | irq_src &= ~irq_mask; | ||
82 | |||
83 | do_IRQ(ls1bit8(irq_src) + CPCI_IRQ_BASE); | ||
84 | } | ||
85 | |||
86 | struct irq_chip cpci_irq_type = { | ||
87 | .name = "CPCI/FPGA", | ||
88 | .ack = mask_cpci_irq, | ||
89 | .mask = mask_cpci_irq, | ||
90 | .mask_ack = mask_cpci_irq, | ||
91 | .unmask = unmask_cpci_irq, | ||
92 | }; | ||
93 | |||
94 | void cpci_irq_init(void) | ||
95 | { | ||
96 | int i; | ||
97 | |||
98 | for (i = CPCI_IRQ_BASE; i < (CPCI_IRQ_BASE + 8); i++) | ||
99 | set_irq_chip_and_handler(i, &cpci_irq_type, handle_level_irq); | ||
100 | } | ||
diff --git a/arch/mips/momentum/ocelot_c/dbg_io.c b/arch/mips/momentum/ocelot_c/dbg_io.c deleted file mode 100644 index 32d6fb4ee679..000000000000 --- a/arch/mips/momentum/ocelot_c/dbg_io.c +++ /dev/null | |||
@@ -1,121 +0,0 @@ | |||
1 | |||
2 | #include <asm/serial.h> /* For the serial port location and base baud */ | ||
3 | |||
4 | /* --- CONFIG --- */ | ||
5 | |||
6 | typedef unsigned char uint8; | ||
7 | typedef unsigned int uint32; | ||
8 | |||
9 | /* --- END OF CONFIG --- */ | ||
10 | |||
11 | #define UART16550_BAUD_2400 2400 | ||
12 | #define UART16550_BAUD_4800 4800 | ||
13 | #define UART16550_BAUD_9600 9600 | ||
14 | #define UART16550_BAUD_19200 19200 | ||
15 | #define UART16550_BAUD_38400 38400 | ||
16 | #define UART16550_BAUD_57600 57600 | ||
17 | #define UART16550_BAUD_115200 115200 | ||
18 | |||
19 | #define UART16550_PARITY_NONE 0 | ||
20 | #define UART16550_PARITY_ODD 0x08 | ||
21 | #define UART16550_PARITY_EVEN 0x18 | ||
22 | #define UART16550_PARITY_MARK 0x28 | ||
23 | #define UART16550_PARITY_SPACE 0x38 | ||
24 | |||
25 | #define UART16550_DATA_5BIT 0x0 | ||
26 | #define UART16550_DATA_6BIT 0x1 | ||
27 | #define UART16550_DATA_7BIT 0x2 | ||
28 | #define UART16550_DATA_8BIT 0x3 | ||
29 | |||
30 | #define UART16550_STOP_1BIT 0x0 | ||
31 | #define UART16550_STOP_2BIT 0x4 | ||
32 | |||
33 | /* ----------------------------------------------------- */ | ||
34 | |||
35 | /* === CONFIG === */ | ||
36 | |||
37 | /* [jsun] we use the second serial port for kdb */ | ||
38 | #define BASE OCELOT_SERIAL1_BASE | ||
39 | #define MAX_BAUD OCELOT_BASE_BAUD | ||
40 | |||
41 | /* === END OF CONFIG === */ | ||
42 | |||
43 | #define REG_OFFSET 4 | ||
44 | |||
45 | /* register offset */ | ||
46 | #define OFS_RCV_BUFFER 0 | ||
47 | #define OFS_TRANS_HOLD 0 | ||
48 | #define OFS_SEND_BUFFER 0 | ||
49 | #define OFS_INTR_ENABLE (1*REG_OFFSET) | ||
50 | #define OFS_INTR_ID (2*REG_OFFSET) | ||
51 | #define OFS_DATA_FORMAT (3*REG_OFFSET) | ||
52 | #define OFS_LINE_CONTROL (3*REG_OFFSET) | ||
53 | #define OFS_MODEM_CONTROL (4*REG_OFFSET) | ||
54 | #define OFS_RS232_OUTPUT (4*REG_OFFSET) | ||
55 | #define OFS_LINE_STATUS (5*REG_OFFSET) | ||
56 | #define OFS_MODEM_STATUS (6*REG_OFFSET) | ||
57 | #define OFS_RS232_INPUT (6*REG_OFFSET) | ||
58 | #define OFS_SCRATCH_PAD (7*REG_OFFSET) | ||
59 | |||
60 | #define OFS_DIVISOR_LSB (0*REG_OFFSET) | ||
61 | #define OFS_DIVISOR_MSB (1*REG_OFFSET) | ||
62 | |||
63 | |||
64 | /* memory-mapped read/write of the port */ | ||
65 | #define UART16550_READ(y) (*((volatile uint8*)(BASE + y))) | ||
66 | #define UART16550_WRITE(y, z) ((*((volatile uint8*)(BASE + y))) = z) | ||
67 | |||
68 | void debugInit(uint32 baud, uint8 data, uint8 parity, uint8 stop) | ||
69 | { | ||
70 | /* disable interrupts */ | ||
71 | UART16550_WRITE(OFS_INTR_ENABLE, 0); | ||
72 | |||
73 | /* set up baud rate */ | ||
74 | { | ||
75 | uint32 divisor; | ||
76 | |||
77 | /* set DIAB bit */ | ||
78 | UART16550_WRITE(OFS_LINE_CONTROL, 0x80); | ||
79 | |||
80 | /* set divisor */ | ||
81 | divisor = MAX_BAUD / baud; | ||
82 | UART16550_WRITE(OFS_DIVISOR_LSB, divisor & 0xff); | ||
83 | UART16550_WRITE(OFS_DIVISOR_MSB, (divisor & 0xff00) >> 8); | ||
84 | |||
85 | /* clear DIAB bit */ | ||
86 | UART16550_WRITE(OFS_LINE_CONTROL, 0x0); | ||
87 | } | ||
88 | |||
89 | /* set data format */ | ||
90 | UART16550_WRITE(OFS_DATA_FORMAT, data | parity | stop); | ||
91 | } | ||
92 | |||
93 | static int remoteDebugInitialized = 0; | ||
94 | |||
95 | uint8 getDebugChar(void) | ||
96 | { | ||
97 | if (!remoteDebugInitialized) { | ||
98 | remoteDebugInitialized = 1; | ||
99 | debugInit(UART16550_BAUD_38400, | ||
100 | UART16550_DATA_8BIT, | ||
101 | UART16550_PARITY_NONE, UART16550_STOP_1BIT); | ||
102 | } | ||
103 | |||
104 | while ((UART16550_READ(OFS_LINE_STATUS) & 0x1) == 0); | ||
105 | return UART16550_READ(OFS_RCV_BUFFER); | ||
106 | } | ||
107 | |||
108 | |||
109 | int putDebugChar(uint8 byte) | ||
110 | { | ||
111 | if (!remoteDebugInitialized) { | ||
112 | remoteDebugInitialized = 1; | ||
113 | debugInit(UART16550_BAUD_38400, | ||
114 | UART16550_DATA_8BIT, | ||
115 | UART16550_PARITY_NONE, UART16550_STOP_1BIT); | ||
116 | } | ||
117 | |||
118 | while ((UART16550_READ(OFS_LINE_STATUS) & 0x20) == 0); | ||
119 | UART16550_WRITE(OFS_SEND_BUFFER, byte); | ||
120 | return 1; | ||
121 | } | ||
diff --git a/arch/mips/momentum/ocelot_c/irq.c b/arch/mips/momentum/ocelot_c/irq.c deleted file mode 100644 index 844d566c9de3..000000000000 --- a/arch/mips/momentum/ocelot_c/irq.c +++ /dev/null | |||
@@ -1,107 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2000 RidgeRun, Inc. | ||
3 | * Author: RidgeRun, Inc. | ||
4 | * glonnon@ridgerun.com, skranz@ridgerun.com, stevej@ridgerun.com | ||
5 | * | ||
6 | * Copyright 2001 MontaVista Software Inc. | ||
7 | * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net | ||
8 | * Copyright (C) 2000, 01, 05 Ralf Baechle (ralf@linux-mips.org) | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify it | ||
11 | * under the terms of the GNU General Public License as published by the | ||
12 | * Free Software Foundation; either version 2 of the License, or (at your | ||
13 | * option) any later version. | ||
14 | * | ||
15 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | ||
16 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
17 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN | ||
18 | * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
19 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
20 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | ||
21 | * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||
22 | * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
23 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
24 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
25 | * | ||
26 | * You should have received a copy of the GNU General Public License along | ||
27 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
28 | * 675 Mass Ave, Cambridge, MA 02139, USA. | ||
29 | * | ||
30 | */ | ||
31 | #include <linux/errno.h> | ||
32 | #include <linux/init.h> | ||
33 | #include <linux/kernel_stat.h> | ||
34 | #include <linux/module.h> | ||
35 | #include <linux/signal.h> | ||
36 | #include <linux/sched.h> | ||
37 | #include <linux/types.h> | ||
38 | #include <linux/interrupt.h> | ||
39 | #include <linux/ioport.h> | ||
40 | #include <linux/timex.h> | ||
41 | #include <linux/slab.h> | ||
42 | #include <linux/random.h> | ||
43 | #include <linux/bitops.h> | ||
44 | #include <linux/mv643xx.h> | ||
45 | #include <asm/bootinfo.h> | ||
46 | #include <asm/io.h> | ||
47 | #include <asm/irq_cpu.h> | ||
48 | #include <asm/mipsregs.h> | ||
49 | #include <asm/system.h> | ||
50 | |||
51 | extern void uart_irq_init(void); | ||
52 | extern void cpci_irq_init(void); | ||
53 | |||
54 | static struct irqaction cascade_fpga = { | ||
55 | no_action, IRQF_DISABLED, CPU_MASK_NONE, "cascade via FPGA", NULL, NULL | ||
56 | }; | ||
57 | |||
58 | static struct irqaction cascade_mv64340 = { | ||
59 | no_action, IRQF_DISABLED, CPU_MASK_NONE, "cascade via MV64340", NULL, NULL | ||
60 | }; | ||
61 | |||
62 | extern void ll_uart_irq(void); | ||
63 | extern void ll_cpci_irq(void); | ||
64 | |||
65 | asmlinkage void plat_irq_dispatch(void) | ||
66 | { | ||
67 | unsigned int pending = read_c0_cause() & read_c0_status() & ST0_IM; | ||
68 | |||
69 | if (pending & STATUSF_IP0) | ||
70 | do_IRQ(0); | ||
71 | else if (pending & STATUSF_IP1) | ||
72 | do_IRQ(1); | ||
73 | else if (pending & STATUSF_IP2) | ||
74 | do_IRQ(2); | ||
75 | else if (pending & STATUSF_IP3) | ||
76 | ll_uart_irq(); | ||
77 | else if (pending & STATUSF_IP4) | ||
78 | do_IRQ(4); | ||
79 | else if (pending & STATUSF_IP5) | ||
80 | ll_cpci_irq(); | ||
81 | else if (pending & STATUSF_IP6) | ||
82 | ll_mv64340_irq(); | ||
83 | else if (pending & STATUSF_IP7) | ||
84 | do_IRQ(7); | ||
85 | else | ||
86 | spurious_interrupt(); | ||
87 | } | ||
88 | |||
89 | void __init arch_init_irq(void) | ||
90 | { | ||
91 | /* | ||
92 | * Clear all of the interrupts while we change the able around a bit. | ||
93 | * int-handler is not on bootstrap | ||
94 | */ | ||
95 | clear_c0_status(ST0_IM); | ||
96 | |||
97 | mips_cpu_irq_init(); | ||
98 | |||
99 | /* set up the cascading interrupts */ | ||
100 | setup_irq(3, &cascade_fpga); | ||
101 | setup_irq(5, &cascade_fpga); | ||
102 | setup_irq(6, &cascade_mv64340); | ||
103 | |||
104 | mv64340_irq_init(16); | ||
105 | uart_irq_init(); | ||
106 | cpci_irq_init(); | ||
107 | } | ||
diff --git a/arch/mips/momentum/ocelot_c/platform.c b/arch/mips/momentum/ocelot_c/platform.c deleted file mode 100644 index 7780aa0c6555..000000000000 --- a/arch/mips/momentum/ocelot_c/platform.c +++ /dev/null | |||
@@ -1,183 +0,0 @@ | |||
1 | #include <linux/delay.h> | ||
2 | #include <linux/if_ether.h> | ||
3 | #include <linux/ioport.h> | ||
4 | #include <linux/mv643xx.h> | ||
5 | #include <linux/platform_device.h> | ||
6 | |||
7 | #include "ocelot_c_fpga.h" | ||
8 | |||
9 | #if defined(CONFIG_MV643XX_ETH) || defined(CONFIG_MV643XX_ETH_MODULE) | ||
10 | |||
11 | static struct resource mv643xx_eth_shared_resources[] = { | ||
12 | [0] = { | ||
13 | .name = "ethernet shared base", | ||
14 | .start = 0xf1000000 + MV643XX_ETH_SHARED_REGS, | ||
15 | .end = 0xf1000000 + MV643XX_ETH_SHARED_REGS + | ||
16 | MV643XX_ETH_SHARED_REGS_SIZE - 1, | ||
17 | .flags = IORESOURCE_MEM, | ||
18 | }, | ||
19 | }; | ||
20 | |||
21 | static struct platform_device mv643xx_eth_shared_device = { | ||
22 | .name = MV643XX_ETH_SHARED_NAME, | ||
23 | .id = 0, | ||
24 | .num_resources = ARRAY_SIZE(mv643xx_eth_shared_resources), | ||
25 | .resource = mv643xx_eth_shared_resources, | ||
26 | }; | ||
27 | |||
28 | #define MV_SRAM_BASE 0xfe000000UL | ||
29 | #define MV_SRAM_SIZE (256 * 1024) | ||
30 | |||
31 | #define MV_SRAM_RXRING_SIZE (MV_SRAM_SIZE / 4) | ||
32 | #define MV_SRAM_TXRING_SIZE (MV_SRAM_SIZE / 4) | ||
33 | |||
34 | #define MV_SRAM_BASE_ETH0 MV_SRAM_BASE | ||
35 | #define MV_SRAM_BASE_ETH1 (MV_SRAM_BASE + (MV_SRAM_SIZE / 2)) | ||
36 | |||
37 | #define MV64x60_IRQ_ETH_0 48 | ||
38 | #define MV64x60_IRQ_ETH_1 49 | ||
39 | |||
40 | static struct resource mv64x60_eth0_resources[] = { | ||
41 | [0] = { | ||
42 | .name = "eth0 irq", | ||
43 | .start = MV64x60_IRQ_ETH_0, | ||
44 | .end = MV64x60_IRQ_ETH_0, | ||
45 | .flags = IORESOURCE_IRQ, | ||
46 | }, | ||
47 | }; | ||
48 | |||
49 | static struct mv643xx_eth_platform_data eth0_pd = { | ||
50 | .port_number = 0, | ||
51 | |||
52 | .tx_sram_addr = MV_SRAM_BASE_ETH0, | ||
53 | .tx_sram_size = MV_SRAM_TXRING_SIZE, | ||
54 | .tx_queue_size = MV_SRAM_TXRING_SIZE / 16, | ||
55 | |||
56 | .rx_sram_addr = MV_SRAM_BASE_ETH0 + MV_SRAM_TXRING_SIZE, | ||
57 | .rx_sram_size = MV_SRAM_RXRING_SIZE, | ||
58 | .rx_queue_size = MV_SRAM_RXRING_SIZE / 16, | ||
59 | }; | ||
60 | |||
61 | static struct platform_device eth0_device = { | ||
62 | .name = MV643XX_ETH_NAME, | ||
63 | .id = 0, | ||
64 | .num_resources = ARRAY_SIZE(mv64x60_eth0_resources), | ||
65 | .resource = mv64x60_eth0_resources, | ||
66 | .dev = { | ||
67 | .platform_data = ð0_pd, | ||
68 | }, | ||
69 | }; | ||
70 | |||
71 | static struct resource mv64x60_eth1_resources[] = { | ||
72 | [0] = { | ||
73 | .name = "eth1 irq", | ||
74 | .start = MV64x60_IRQ_ETH_1, | ||
75 | .end = MV64x60_IRQ_ETH_1, | ||
76 | .flags = IORESOURCE_IRQ, | ||
77 | }, | ||
78 | }; | ||
79 | |||
80 | static struct mv643xx_eth_platform_data eth1_pd = { | ||
81 | .port_number = 1, | ||
82 | |||
83 | .tx_sram_addr = MV_SRAM_BASE_ETH1, | ||
84 | .tx_sram_size = MV_SRAM_TXRING_SIZE, | ||
85 | .tx_queue_size = MV_SRAM_TXRING_SIZE / 16, | ||
86 | |||
87 | .rx_sram_addr = MV_SRAM_BASE_ETH1 + MV_SRAM_TXRING_SIZE, | ||
88 | .rx_sram_size = MV_SRAM_RXRING_SIZE, | ||
89 | .rx_queue_size = MV_SRAM_RXRING_SIZE / 16, | ||
90 | }; | ||
91 | |||
92 | static struct platform_device eth1_device = { | ||
93 | .name = MV643XX_ETH_NAME, | ||
94 | .id = 1, | ||
95 | .num_resources = ARRAY_SIZE(mv64x60_eth1_resources), | ||
96 | .resource = mv64x60_eth1_resources, | ||
97 | .dev = { | ||
98 | .platform_data = ð1_pd, | ||
99 | }, | ||
100 | }; | ||
101 | |||
102 | static struct platform_device *mv643xx_eth_pd_devs[] __initdata = { | ||
103 | &mv643xx_eth_shared_device, | ||
104 | ð0_device, | ||
105 | ð1_device, | ||
106 | /* The third port is not wired up on the Ocelot C */ | ||
107 | }; | ||
108 | |||
109 | static u8 __init exchange_bit(u8 val, u8 cs) | ||
110 | { | ||
111 | /* place the data */ | ||
112 | OCELOT_FPGA_WRITE((val << 2) | cs, EEPROM_MODE); | ||
113 | udelay(1); | ||
114 | |||
115 | /* turn the clock on */ | ||
116 | OCELOT_FPGA_WRITE((val << 2) | cs | 0x2, EEPROM_MODE); | ||
117 | udelay(1); | ||
118 | |||
119 | /* turn the clock off and read-strobe */ | ||
120 | OCELOT_FPGA_WRITE((val << 2) | cs | 0x10, EEPROM_MODE); | ||
121 | |||
122 | /* return the data */ | ||
123 | return (OCELOT_FPGA_READ(EEPROM_MODE) >> 3) & 0x1; | ||
124 | } | ||
125 | |||
126 | static void __init get_mac(char dest[6]) | ||
127 | { | ||
128 | u8 read_opcode[12] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; | ||
129 | int i,j; | ||
130 | |||
131 | for (i = 0; i < 12; i++) | ||
132 | exchange_bit(read_opcode[i], 1); | ||
133 | |||
134 | for (j = 0; j < 6; j++) { | ||
135 | dest[j] = 0; | ||
136 | for (i = 0; i < 8; i++) { | ||
137 | dest[j] <<= 1; | ||
138 | dest[j] |= exchange_bit(0, 1); | ||
139 | } | ||
140 | } | ||
141 | |||
142 | /* turn off CS */ | ||
143 | exchange_bit(0,0); | ||
144 | } | ||
145 | |||
146 | /* | ||
147 | * Copy and increment ethernet MAC address by a small value. | ||
148 | * | ||
149 | * This is useful for systems where the only one MAC address is stored in | ||
150 | * non-volatile memory for multiple ports. | ||
151 | */ | ||
152 | static inline void eth_mac_add(unsigned char *dst, unsigned char *src, | ||
153 | unsigned int add) | ||
154 | { | ||
155 | int i; | ||
156 | |||
157 | BUG_ON(add >= 256); | ||
158 | |||
159 | for (i = ETH_ALEN; i >= 0; i--) { | ||
160 | dst[i] = src[i] + add; | ||
161 | add = dst[i] < src[i]; /* compute carry */ | ||
162 | } | ||
163 | |||
164 | WARN_ON(add); | ||
165 | } | ||
166 | |||
167 | static int __init mv643xx_eth_add_pds(void) | ||
168 | { | ||
169 | unsigned char mac[ETH_ALEN]; | ||
170 | int ret; | ||
171 | |||
172 | get_mac(mac); | ||
173 | eth_mac_add(eth0_pd.mac_addr, mac, 0); | ||
174 | eth_mac_add(eth1_pd.mac_addr, mac, 1); | ||
175 | ret = platform_add_devices(mv643xx_eth_pd_devs, | ||
176 | ARRAY_SIZE(mv643xx_eth_pd_devs)); | ||
177 | |||
178 | return ret; | ||
179 | } | ||
180 | |||
181 | device_initcall(mv643xx_eth_add_pds); | ||
182 | |||
183 | #endif /* defined(CONFIG_MV643XX_ETH) || defined(CONFIG_MV643XX_ETH_MODULE) */ | ||
diff --git a/arch/mips/momentum/ocelot_c/prom.c b/arch/mips/momentum/ocelot_c/prom.c deleted file mode 100644 index b689ceea8cfb..000000000000 --- a/arch/mips/momentum/ocelot_c/prom.c +++ /dev/null | |||
@@ -1,183 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright 2002 Momentum Computer Inc. | ||
3 | * Author: Matthew Dharm <mdharm@momenco.com> | ||
4 | * | ||
5 | * Louis Hamilton, Red Hat, Inc. | ||
6 | * hamilton@redhat.com [MIPS64 modifications] | ||
7 | * | ||
8 | * Based on Ocelot Linux port, which is | ||
9 | * Copyright 2001 MontaVista Software Inc. | ||
10 | * Author: jsun@mvista.com or jsun@junsun.net | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or modify it | ||
13 | * under the terms of the GNU General Public License as published by the | ||
14 | * Free Software Foundation; either version 2 of the License, or (at your | ||
15 | * option) any later version. | ||
16 | */ | ||
17 | #include <linux/init.h> | ||
18 | #include <linux/mm.h> | ||
19 | #include <linux/sched.h> | ||
20 | #include <linux/bootmem.h> | ||
21 | #include <linux/mv643xx.h> | ||
22 | |||
23 | #include <asm/addrspace.h> | ||
24 | #include <asm/bootinfo.h> | ||
25 | #include <asm/pmon.h> | ||
26 | |||
27 | #include "ocelot_c_fpga.h" | ||
28 | |||
29 | struct callvectors* debug_vectors; | ||
30 | |||
31 | extern unsigned long marvell_base; | ||
32 | extern unsigned int cpu_clock; | ||
33 | |||
34 | const char *get_system_type(void) | ||
35 | { | ||
36 | #ifdef CONFIG_CPU_SR71000 | ||
37 | return "Momentum Ocelot-CS"; | ||
38 | #else | ||
39 | return "Momentum Ocelot-C"; | ||
40 | #endif | ||
41 | } | ||
42 | |||
43 | #ifdef CONFIG_64BIT | ||
44 | |||
45 | unsigned long signext(unsigned long addr) | ||
46 | { | ||
47 | addr &= 0xffffffff; | ||
48 | return (unsigned long)((int)addr); | ||
49 | } | ||
50 | |||
51 | void *get_arg(unsigned long args, int arc) | ||
52 | { | ||
53 | unsigned long ul; | ||
54 | unsigned char *puc, uc; | ||
55 | |||
56 | args += (arc * 4); | ||
57 | ul = (unsigned long)signext(args); | ||
58 | puc = (unsigned char *)ul; | ||
59 | if (puc == 0) | ||
60 | return (void *)0; | ||
61 | |||
62 | #ifdef CONFIG_CPU_LITTLE_ENDIAN | ||
63 | uc = *puc++; | ||
64 | ul = (unsigned long)uc; | ||
65 | uc = *puc++; | ||
66 | ul |= (((unsigned long)uc) << 8); | ||
67 | uc = *puc++; | ||
68 | ul |= (((unsigned long)uc) << 16); | ||
69 | uc = *puc++; | ||
70 | ul |= (((unsigned long)uc) << 24); | ||
71 | #else /* CONFIG_CPU_LITTLE_ENDIAN */ | ||
72 | uc = *puc++; | ||
73 | ul = ((unsigned long)uc) << 24; | ||
74 | uc = *puc++; | ||
75 | ul |= (((unsigned long)uc) << 16); | ||
76 | uc = *puc++; | ||
77 | ul |= (((unsigned long)uc) << 8); | ||
78 | uc = *puc++; | ||
79 | ul |= ((unsigned long)uc); | ||
80 | #endif /* CONFIG_CPU_LITTLE_ENDIAN */ | ||
81 | ul = signext(ul); | ||
82 | return (void *)ul; | ||
83 | } | ||
84 | |||
85 | char *arg64(unsigned long addrin, int arg_index) | ||
86 | { | ||
87 | unsigned long args; | ||
88 | char *p; | ||
89 | args = signext(addrin); | ||
90 | p = (char *)get_arg(args, arg_index); | ||
91 | return p; | ||
92 | } | ||
93 | #endif /* CONFIG_64BIT */ | ||
94 | |||
95 | |||
96 | void __init prom_init(void) | ||
97 | { | ||
98 | int argc = fw_arg0; | ||
99 | char **arg = (char **) fw_arg1; | ||
100 | char **env = (char **) fw_arg2; | ||
101 | struct callvectors *cv = (struct callvectors *) fw_arg3; | ||
102 | int i; | ||
103 | |||
104 | #ifdef CONFIG_64BIT | ||
105 | char *ptr; | ||
106 | |||
107 | printk("prom_init - MIPS64\n"); | ||
108 | /* save the PROM vectors for debugging use */ | ||
109 | debug_vectors = (struct callvectors *)signext((unsigned long)cv); | ||
110 | |||
111 | /* arg[0] is "g", the rest is boot parameters */ | ||
112 | arcs_cmdline[0] = '\0'; | ||
113 | |||
114 | for (i = 1; i < argc; i++) { | ||
115 | ptr = (char *)arg64((unsigned long)arg, i); | ||
116 | if ((strlen(arcs_cmdline) + strlen(ptr) + 1) >= | ||
117 | sizeof(arcs_cmdline)) | ||
118 | break; | ||
119 | strcat(arcs_cmdline, ptr); | ||
120 | strcat(arcs_cmdline, " "); | ||
121 | } | ||
122 | i = 0; | ||
123 | while (1) { | ||
124 | ptr = (char *)arg64((unsigned long)env, i); | ||
125 | if (! ptr) | ||
126 | break; | ||
127 | |||
128 | if (strncmp("gtbase", ptr, strlen("gtbase")) == 0) { | ||
129 | marvell_base = simple_strtol(ptr + strlen("gtbase="), | ||
130 | NULL, 16); | ||
131 | |||
132 | if ((marvell_base & 0xffffffff00000000) == 0) | ||
133 | marvell_base |= 0xffffffff00000000; | ||
134 | |||
135 | printk("marvell_base set to 0x%016lx\n", marvell_base); | ||
136 | } | ||
137 | if (strncmp("cpuclock", ptr, strlen("cpuclock")) == 0) { | ||
138 | cpu_clock = simple_strtol(ptr + strlen("cpuclock="), | ||
139 | NULL, 10); | ||
140 | printk("cpu_clock set to %d\n", cpu_clock); | ||
141 | } | ||
142 | i++; | ||
143 | } | ||
144 | printk("arcs_cmdline: %s\n", arcs_cmdline); | ||
145 | |||
146 | #else /* CONFIG_64BIT */ | ||
147 | /* save the PROM vectors for debugging use */ | ||
148 | debug_vectors = cv; | ||
149 | |||
150 | /* arg[0] is "g", the rest is boot parameters */ | ||
151 | arcs_cmdline[0] = '\0'; | ||
152 | for (i = 1; i < argc; i++) { | ||
153 | if (strlen(arcs_cmdline) + strlen(arg[i] + 1) | ||
154 | >= sizeof(arcs_cmdline)) | ||
155 | break; | ||
156 | strcat(arcs_cmdline, arg[i]); | ||
157 | strcat(arcs_cmdline, " "); | ||
158 | } | ||
159 | |||
160 | while (*env) { | ||
161 | if (strncmp("gtbase", *env, strlen("gtbase")) == 0) { | ||
162 | marvell_base = simple_strtol(*env + strlen("gtbase="), | ||
163 | NULL, 16); | ||
164 | } | ||
165 | if (strncmp("cpuclock", *env, strlen("cpuclock")) == 0) { | ||
166 | cpu_clock = simple_strtol(*env + strlen("cpuclock="), | ||
167 | NULL, 10); | ||
168 | } | ||
169 | env++; | ||
170 | } | ||
171 | #endif /* CONFIG_64BIT */ | ||
172 | |||
173 | mips_machgroup = MACH_GROUP_MOMENCO; | ||
174 | mips_machtype = MACH_MOMENCO_OCELOT_C; | ||
175 | |||
176 | #ifndef CONFIG_64BIT | ||
177 | debug_vectors->printf("Booting Linux kernel...\n"); | ||
178 | #endif | ||
179 | } | ||
180 | |||
181 | void __init prom_free_prom_memory(void) | ||
182 | { | ||
183 | } | ||
diff --git a/arch/mips/momentum/ocelot_c/reset.c b/arch/mips/momentum/ocelot_c/reset.c deleted file mode 100644 index 3fdcb64ff1e6..000000000000 --- a/arch/mips/momentum/ocelot_c/reset.c +++ /dev/null | |||
@@ -1,58 +0,0 @@ | |||
1 | /* | ||
2 | * This program is free software; you can redistribute it and/or modify it | ||
3 | * under the terms of the GNU General Public License as published by the | ||
4 | * Free Software Foundation; either version 2 of the License, or (at your | ||
5 | * option) any later version. | ||
6 | * | ||
7 | * Copyright (C) 1997, 2001 Ralf Baechle | ||
8 | * Copyright 2001 MontaVista Software Inc. | ||
9 | * Author: jsun@mvista.com or jsun@junsun.net | ||
10 | * | ||
11 | * Copyright (C) 2002 Momentum Computer Inc. | ||
12 | * Author: Matthew Dharm <mdharm@momenco.com> | ||
13 | * | ||
14 | * Louis Hamilton, Red Hat, Inc. | ||
15 | * hamilton@redhat.com [MIPS64 modifications] | ||
16 | */ | ||
17 | #include <linux/sched.h> | ||
18 | #include <linux/mm.h> | ||
19 | #include <asm/io.h> | ||
20 | #include <asm/pgtable.h> | ||
21 | #include <asm/processor.h> | ||
22 | #include <asm/reboot.h> | ||
23 | #include <asm/system.h> | ||
24 | #include <linux/delay.h> | ||
25 | |||
26 | void momenco_ocelot_restart(char *command) | ||
27 | { | ||
28 | /* base address of timekeeper portion of part */ | ||
29 | void *nvram = (void *) | ||
30 | #ifdef CONFIG_64BIT | ||
31 | 0xfffffffffc807000; | ||
32 | #else | ||
33 | 0xfc807000; | ||
34 | #endif | ||
35 | |||
36 | /* Ask the NVRAM/RTC/watchdog chip to assert reset in 1/16 second */ | ||
37 | writeb(0x84, nvram + 0xff7); | ||
38 | |||
39 | /* wait for the watchdog to go off */ | ||
40 | mdelay(100+(1000/16)); | ||
41 | |||
42 | /* if the watchdog fails for some reason, let people know */ | ||
43 | printk(KERN_NOTICE "Watchdog reset failed\n"); | ||
44 | } | ||
45 | |||
46 | void momenco_ocelot_halt(void) | ||
47 | { | ||
48 | printk(KERN_NOTICE "\n** You can safely turn off the power\n"); | ||
49 | while (1) | ||
50 | __asm__(".set\tmips3\n\t" | ||
51 | "wait\n\t" | ||
52 | ".set\tmips0"); | ||
53 | } | ||
54 | |||
55 | void momenco_ocelot_power_off(void) | ||
56 | { | ||
57 | momenco_ocelot_halt(); | ||
58 | } | ||
diff --git a/arch/mips/momentum/ocelot_c/setup.c b/arch/mips/momentum/ocelot_c/setup.c deleted file mode 100644 index 0b6b2338cfb4..000000000000 --- a/arch/mips/momentum/ocelot_c/setup.c +++ /dev/null | |||
@@ -1,362 +0,0 @@ | |||
1 | /* | ||
2 | * BRIEF MODULE DESCRIPTION | ||
3 | * Momentum Computer Ocelot-C and -CS board dependent boot routines | ||
4 | * | ||
5 | * Copyright (C) 1996, 1997, 2001 Ralf Baechle | ||
6 | * Copyright (C) 2000 RidgeRun, Inc. | ||
7 | * Copyright (C) 2001 Red Hat, Inc. | ||
8 | * Copyright (C) 2002 Momentum Computer | ||
9 | * | ||
10 | * Author: Matthew Dharm, Momentum Computer | ||
11 | * mdharm@momenco.com | ||
12 | * | ||
13 | * Louis Hamilton, Red Hat, Inc. | ||
14 | * hamilton@redhat.com [MIPS64 modifications] | ||
15 | * | ||
16 | * Author: RidgeRun, Inc. | ||
17 | * glonnon@ridgerun.com, skranz@ridgerun.com, stevej@ridgerun.com | ||
18 | * | ||
19 | * Copyright 2001 MontaVista Software Inc. | ||
20 | * Author: jsun@mvista.com or jsun@junsun.net | ||
21 | * | ||
22 | * This program is free software; you can redistribute it and/or modify it | ||
23 | * under the terms of the GNU General Public License as published by the | ||
24 | * Free Software Foundation; either version 2 of the License, or (at your | ||
25 | * option) any later version. | ||
26 | * | ||
27 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | ||
28 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
29 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN | ||
30 | * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
31 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
32 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | ||
33 | * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||
34 | * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
35 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
36 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
37 | * | ||
38 | * You should have received a copy of the GNU General Public License along | ||
39 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
40 | * 675 Mass Ave, Cambridge, MA 02139, USA. | ||
41 | * | ||
42 | */ | ||
43 | #include <linux/bcd.h> | ||
44 | #include <linux/init.h> | ||
45 | #include <linux/kernel.h> | ||
46 | #include <linux/types.h> | ||
47 | #include <linux/mm.h> | ||
48 | #include <linux/swap.h> | ||
49 | #include <linux/ioport.h> | ||
50 | #include <linux/sched.h> | ||
51 | #include <linux/interrupt.h> | ||
52 | #include <linux/pci.h> | ||
53 | #include <linux/pm.h> | ||
54 | #include <linux/timex.h> | ||
55 | #include <linux/vmalloc.h> | ||
56 | #include <linux/mv643xx.h> | ||
57 | |||
58 | #include <asm/time.h> | ||
59 | #include <asm/bootinfo.h> | ||
60 | #include <asm/page.h> | ||
61 | #include <asm/io.h> | ||
62 | #include <asm/irq.h> | ||
63 | #include <asm/pci.h> | ||
64 | #include <asm/processor.h> | ||
65 | #include <asm/reboot.h> | ||
66 | #include <asm/marvell.h> | ||
67 | #include <linux/bootmem.h> | ||
68 | #include <linux/blkdev.h> | ||
69 | #include "ocelot_c_fpga.h" | ||
70 | |||
71 | unsigned long marvell_base; | ||
72 | unsigned int cpu_clock; | ||
73 | |||
74 | /* These functions are used for rebooting or halting the machine*/ | ||
75 | extern void momenco_ocelot_restart(char *command); | ||
76 | extern void momenco_ocelot_halt(void); | ||
77 | extern void momenco_ocelot_power_off(void); | ||
78 | |||
79 | void momenco_time_init(void); | ||
80 | |||
81 | static char reset_reason; | ||
82 | |||
83 | void add_wired_entry(unsigned long entrylo0, unsigned long entrylo1, unsigned long entryhi, unsigned long pagemask); | ||
84 | |||
85 | static unsigned long ENTRYLO(unsigned long paddr) | ||
86 | { | ||
87 | return ((paddr & PAGE_MASK) | | ||
88 | (_PAGE_PRESENT | __READABLE | __WRITEABLE | _PAGE_GLOBAL | | ||
89 | _CACHE_UNCACHED)) >> 6; | ||
90 | } | ||
91 | |||
92 | /* setup code for a handoff from a version 2 PMON 2000 PROM */ | ||
93 | void PMON_v2_setup(void) | ||
94 | { | ||
95 | /* Some wired TLB entries for the MV64340 and perhiperals. The | ||
96 | MV64340 is going to be hit on every IRQ anyway - there's | ||
97 | absolutely no point in letting it be a random TLB entry, as | ||
98 | it'll just cause needless churning of the TLB. And we use | ||
99 | the other half for the serial port, which is just a PITA | ||
100 | otherwise :) | ||
101 | |||
102 | Device Physical Virtual | ||
103 | MV64340 Internal Regs 0xf4000000 0xf4000000 | ||
104 | Ocelot-C[S] PLD (CS0) 0xfc000000 0xfc000000 | ||
105 | NVRAM (CS1) 0xfc800000 0xfc800000 | ||
106 | UARTs (CS2) 0xfd000000 0xfd000000 | ||
107 | Internal SRAM 0xfe000000 0xfe000000 | ||
108 | M-Systems DOC (CS3) 0xff000000 0xff000000 | ||
109 | */ | ||
110 | printk("PMON_v2_setup\n"); | ||
111 | |||
112 | #ifdef CONFIG_64BIT | ||
113 | /* marvell and extra space */ | ||
114 | add_wired_entry(ENTRYLO(0xf4000000), ENTRYLO(0xf4010000), 0xfffffffff4000000, PM_64K); | ||
115 | /* fpga, rtc, and uart */ | ||
116 | add_wired_entry(ENTRYLO(0xfc000000), ENTRYLO(0xfd000000), 0xfffffffffc000000, PM_16M); | ||
117 | /* m-sys and internal SRAM */ | ||
118 | add_wired_entry(ENTRYLO(0xfe000000), ENTRYLO(0xff000000), 0xfffffffffe000000, PM_16M); | ||
119 | |||
120 | marvell_base = 0xfffffffff4000000; | ||
121 | #else | ||
122 | /* marvell and extra space */ | ||
123 | add_wired_entry(ENTRYLO(0xf4000000), ENTRYLO(0xf4010000), 0xf4000000, PM_64K); | ||
124 | /* fpga, rtc, and uart */ | ||
125 | add_wired_entry(ENTRYLO(0xfc000000), ENTRYLO(0xfd000000), 0xfc000000, PM_16M); | ||
126 | /* m-sys and internal SRAM */ | ||
127 | add_wired_entry(ENTRYLO(0xfe000000), ENTRYLO(0xff000000), 0xfe000000, PM_16M); | ||
128 | |||
129 | marvell_base = 0xf4000000; | ||
130 | #endif | ||
131 | } | ||
132 | |||
133 | unsigned long m48t37y_get_time(void) | ||
134 | { | ||
135 | #ifdef CONFIG_64BIT | ||
136 | unsigned char *rtc_base = (unsigned char*)0xfffffffffc800000; | ||
137 | #else | ||
138 | unsigned char* rtc_base = (unsigned char*)0xfc800000; | ||
139 | #endif | ||
140 | unsigned int year, month, day, hour, min, sec; | ||
141 | unsigned long flags; | ||
142 | |||
143 | spin_lock_irqsave(&rtc_lock, flags); | ||
144 | /* stop the update */ | ||
145 | rtc_base[0x7ff8] = 0x40; | ||
146 | |||
147 | year = BCD2BIN(rtc_base[0x7fff]); | ||
148 | year += BCD2BIN(rtc_base[0x7ff1]) * 100; | ||
149 | |||
150 | month = BCD2BIN(rtc_base[0x7ffe]); | ||
151 | |||
152 | day = BCD2BIN(rtc_base[0x7ffd]); | ||
153 | |||
154 | hour = BCD2BIN(rtc_base[0x7ffb]); | ||
155 | min = BCD2BIN(rtc_base[0x7ffa]); | ||
156 | sec = BCD2BIN(rtc_base[0x7ff9]); | ||
157 | |||
158 | /* start the update */ | ||
159 | rtc_base[0x7ff8] = 0x00; | ||
160 | spin_unlock_irqrestore(&rtc_lock, flags); | ||
161 | |||
162 | return mktime(year, month, day, hour, min, sec); | ||
163 | } | ||
164 | |||
165 | int m48t37y_set_time(unsigned long sec) | ||
166 | { | ||
167 | #ifdef CONFIG_64BIT | ||
168 | unsigned char* rtc_base = (unsigned char*)0xfffffffffc800000; | ||
169 | #else | ||
170 | unsigned char* rtc_base = (unsigned char*)0xfc800000; | ||
171 | #endif | ||
172 | struct rtc_time tm; | ||
173 | unsigned long flags; | ||
174 | |||
175 | /* convert to a more useful format -- note months count from 0 */ | ||
176 | to_tm(sec, &tm); | ||
177 | tm.tm_mon += 1; | ||
178 | |||
179 | spin_lock_irqsave(&rtc_lock, flags); | ||
180 | /* enable writing */ | ||
181 | rtc_base[0x7ff8] = 0x80; | ||
182 | |||
183 | /* year */ | ||
184 | rtc_base[0x7fff] = BIN2BCD(tm.tm_year % 100); | ||
185 | rtc_base[0x7ff1] = BIN2BCD(tm.tm_year / 100); | ||
186 | |||
187 | /* month */ | ||
188 | rtc_base[0x7ffe] = BIN2BCD(tm.tm_mon); | ||
189 | |||
190 | /* day */ | ||
191 | rtc_base[0x7ffd] = BIN2BCD(tm.tm_mday); | ||
192 | |||
193 | /* hour/min/sec */ | ||
194 | rtc_base[0x7ffb] = BIN2BCD(tm.tm_hour); | ||
195 | rtc_base[0x7ffa] = BIN2BCD(tm.tm_min); | ||
196 | rtc_base[0x7ff9] = BIN2BCD(tm.tm_sec); | ||
197 | |||
198 | /* day of week -- not really used, but let's keep it up-to-date */ | ||
199 | rtc_base[0x7ffc] = BIN2BCD(tm.tm_wday + 1); | ||
200 | |||
201 | /* disable writing */ | ||
202 | rtc_base[0x7ff8] = 0x00; | ||
203 | spin_unlock_irqrestore(&rtc_lock, flags); | ||
204 | |||
205 | return 0; | ||
206 | } | ||
207 | |||
208 | void __init plat_timer_setup(struct irqaction *irq) | ||
209 | { | ||
210 | setup_irq(7, irq); | ||
211 | } | ||
212 | |||
213 | void momenco_time_init(void) | ||
214 | { | ||
215 | #ifdef CONFIG_CPU_SR71000 | ||
216 | mips_hpt_frequency = cpu_clock; | ||
217 | #elif defined(CONFIG_CPU_RM7000) | ||
218 | mips_hpt_frequency = cpu_clock / 2; | ||
219 | #else | ||
220 | #error Unknown CPU for this board | ||
221 | #endif | ||
222 | printk("momenco_time_init cpu_clock=%d\n", cpu_clock); | ||
223 | |||
224 | rtc_mips_get_time = m48t37y_get_time; | ||
225 | rtc_mips_set_time = m48t37y_set_time; | ||
226 | } | ||
227 | |||
228 | void __init plat_mem_setup(void) | ||
229 | { | ||
230 | unsigned int tmpword; | ||
231 | |||
232 | board_time_init = momenco_time_init; | ||
233 | |||
234 | _machine_restart = momenco_ocelot_restart; | ||
235 | _machine_halt = momenco_ocelot_halt; | ||
236 | pm_power_off = momenco_ocelot_power_off; | ||
237 | |||
238 | /* | ||
239 | * initrd_start = (unsigned long)ocelot_initrd_start; | ||
240 | * initrd_end = (unsigned long)ocelot_initrd_start + (ulong)ocelot_initrd_size; | ||
241 | * initrd_below_start_ok = 1; | ||
242 | */ | ||
243 | |||
244 | /* do handoff reconfiguration */ | ||
245 | PMON_v2_setup(); | ||
246 | |||
247 | /* shut down ethernet ports, just to be sure our memory doesn't get | ||
248 | * corrupted by random ethernet traffic. | ||
249 | */ | ||
250 | MV_WRITE(MV643XX_ETH_TRANSMIT_QUEUE_COMMAND_REG(0), 0xff << 8); | ||
251 | MV_WRITE(MV643XX_ETH_TRANSMIT_QUEUE_COMMAND_REG(1), 0xff << 8); | ||
252 | MV_WRITE(MV643XX_ETH_RECEIVE_QUEUE_COMMAND_REG(0), 0xff << 8); | ||
253 | MV_WRITE(MV643XX_ETH_RECEIVE_QUEUE_COMMAND_REG(1), 0xff << 8); | ||
254 | do {} | ||
255 | while (MV_READ(MV643XX_ETH_RECEIVE_QUEUE_COMMAND_REG(0)) & 0xff); | ||
256 | do {} | ||
257 | while (MV_READ(MV643XX_ETH_RECEIVE_QUEUE_COMMAND_REG(1)) & 0xff); | ||
258 | do {} | ||
259 | while (MV_READ(MV643XX_ETH_TRANSMIT_QUEUE_COMMAND_REG(0)) & 0xff); | ||
260 | do {} | ||
261 | while (MV_READ(MV643XX_ETH_TRANSMIT_QUEUE_COMMAND_REG(1)) & 0xff); | ||
262 | MV_WRITE(MV643XX_ETH_PORT_SERIAL_CONTROL_REG(0), | ||
263 | MV_READ(MV643XX_ETH_PORT_SERIAL_CONTROL_REG(0)) & ~1); | ||
264 | MV_WRITE(MV643XX_ETH_PORT_SERIAL_CONTROL_REG(1), | ||
265 | MV_READ(MV643XX_ETH_PORT_SERIAL_CONTROL_REG(1)) & ~1); | ||
266 | |||
267 | /* Turn off the Bit-Error LED */ | ||
268 | OCELOT_FPGA_WRITE(0x80, CLR); | ||
269 | |||
270 | tmpword = OCELOT_FPGA_READ(BOARDREV); | ||
271 | #ifdef CONFIG_CPU_SR71000 | ||
272 | if (tmpword < 26) | ||
273 | printk("Momenco Ocelot-CS: Board Assembly Rev. %c\n", | ||
274 | 'A'+tmpword); | ||
275 | else | ||
276 | printk("Momenco Ocelot-CS: Board Assembly Revision #0x%x\n", | ||
277 | tmpword); | ||
278 | #else | ||
279 | if (tmpword < 26) | ||
280 | printk("Momenco Ocelot-C: Board Assembly Rev. %c\n", | ||
281 | 'A'+tmpword); | ||
282 | else | ||
283 | printk("Momenco Ocelot-C: Board Assembly Revision #0x%x\n", | ||
284 | tmpword); | ||
285 | #endif | ||
286 | |||
287 | tmpword = OCELOT_FPGA_READ(FPGA_REV); | ||
288 | printk("FPGA Rev: %d.%d\n", tmpword>>4, tmpword&15); | ||
289 | tmpword = OCELOT_FPGA_READ(RESET_STATUS); | ||
290 | printk("Reset reason: 0x%x\n", tmpword); | ||
291 | switch (tmpword) { | ||
292 | case 0x1: | ||
293 | printk(" - Power-up reset\n"); | ||
294 | break; | ||
295 | case 0x2: | ||
296 | printk(" - Push-button reset\n"); | ||
297 | break; | ||
298 | case 0x4: | ||
299 | printk(" - cPCI bus reset\n"); | ||
300 | break; | ||
301 | case 0x8: | ||
302 | printk(" - Watchdog reset\n"); | ||
303 | break; | ||
304 | case 0x10: | ||
305 | printk(" - Software reset\n"); | ||
306 | break; | ||
307 | default: | ||
308 | printk(" - Unknown reset cause\n"); | ||
309 | } | ||
310 | reset_reason = tmpword; | ||
311 | OCELOT_FPGA_WRITE(0xff, RESET_STATUS); | ||
312 | |||
313 | tmpword = OCELOT_FPGA_READ(CPCI_ID); | ||
314 | printk("cPCI ID register: 0x%02x\n", tmpword); | ||
315 | printk(" - Slot number: %d\n", tmpword & 0x1f); | ||
316 | printk(" - PCI bus present: %s\n", tmpword & 0x40 ? "yes" : "no"); | ||
317 | printk(" - System Slot: %s\n", tmpword & 0x20 ? "yes" : "no"); | ||
318 | |||
319 | tmpword = OCELOT_FPGA_READ(BOARD_STATUS); | ||
320 | printk("Board Status register: 0x%02x\n", tmpword); | ||
321 | printk(" - User jumper: %s\n", (tmpword & 0x80)?"installed":"absent"); | ||
322 | printk(" - Boot flash write jumper: %s\n", (tmpword&0x40)?"installed":"absent"); | ||
323 | printk(" - L3 Cache size: %d MiB\n", (1<<((tmpword&12) >> 2))&~1); | ||
324 | printk(" - SDRAM size: %d MiB\n", 1<<(6+(tmpword&3))); | ||
325 | |||
326 | switch(tmpword &3) { | ||
327 | case 3: | ||
328 | /* 512MiB */ | ||
329 | add_memory_region(0x0, 0x200<<20, BOOT_MEM_RAM); | ||
330 | break; | ||
331 | case 2: | ||
332 | /* 256MiB */ | ||
333 | add_memory_region(0x0, 0x100<<20, BOOT_MEM_RAM); | ||
334 | break; | ||
335 | case 1: | ||
336 | /* 128MiB */ | ||
337 | add_memory_region(0x0, 0x80<<20, BOOT_MEM_RAM); | ||
338 | break; | ||
339 | case 0: | ||
340 | /* 1GiB -- needs CONFIG_HIGHMEM */ | ||
341 | add_memory_region(0x0, 0x400<<20, BOOT_MEM_RAM); | ||
342 | break; | ||
343 | } | ||
344 | } | ||
345 | |||
346 | /* | ||
347 | * This needs to be one of the first initcalls, because no I/O port access | ||
348 | * can work before this | ||
349 | */ | ||
350 | static int io_base_ioremap(void) | ||
351 | { | ||
352 | void __iomem * io_remap_range = ioremap(0xc0000000UL, 0x10000); | ||
353 | |||
354 | if (!io_remap_range) | ||
355 | panic("Could not ioremap I/O port range"); | ||
356 | |||
357 | set_io_port_base((unsigned long) io_remap_range); | ||
358 | |||
359 | return 0; | ||
360 | } | ||
361 | |||
362 | module_init(io_base_ioremap); | ||
diff --git a/arch/mips/momentum/ocelot_c/uart-irq.c b/arch/mips/momentum/ocelot_c/uart-irq.c deleted file mode 100644 index de1a31ee52f3..000000000000 --- a/arch/mips/momentum/ocelot_c/uart-irq.c +++ /dev/null | |||
@@ -1,91 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright 2002 Momentum Computer | ||
3 | * Author: mdharm@momenco.com | ||
4 | * | ||
5 | * arch/mips/momentum/ocelot_c/uart-irq.c | ||
6 | * Interrupt routines for UARTs. Interrupt numbers are assigned from | ||
7 | * 80 to 81 (2 interrupt sources). | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify it | ||
10 | * under the terms of the GNU General Public License as published by the | ||
11 | * Free Software Foundation; either version 2 of the License, or (at your | ||
12 | * option) any later version. | ||
13 | */ | ||
14 | |||
15 | #include <linux/module.h> | ||
16 | #include <linux/interrupt.h> | ||
17 | #include <linux/irq.h> | ||
18 | #include <linux/kernel.h> | ||
19 | #include <linux/sched.h> | ||
20 | #include <linux/kernel_stat.h> | ||
21 | #include <asm/io.h> | ||
22 | #include <asm/irq.h> | ||
23 | #include "ocelot_c_fpga.h" | ||
24 | |||
25 | static inline int ls1bit8(unsigned int x) | ||
26 | { | ||
27 | int b = 7, s; | ||
28 | |||
29 | s = 4; if (((unsigned char)(x << 4)) == 0) s = 0; b -= s; x <<= s; | ||
30 | s = 2; if (((unsigned char)(x << 2)) == 0) s = 0; b -= s; x <<= s; | ||
31 | s = 1; if (((unsigned char)(x << 1)) == 0) s = 0; b -= s; | ||
32 | |||
33 | return b; | ||
34 | } | ||
35 | |||
36 | /* mask off an interrupt -- 0 is enable, 1 is disable */ | ||
37 | static inline void mask_uart_irq(unsigned int irq) | ||
38 | { | ||
39 | uint8_t value; | ||
40 | |||
41 | value = OCELOT_FPGA_READ(UART_INTMASK); | ||
42 | value |= 1 << (irq - 74); | ||
43 | OCELOT_FPGA_WRITE(value, UART_INTMASK); | ||
44 | |||
45 | /* read the value back to assure that it's really been written */ | ||
46 | value = OCELOT_FPGA_READ(UART_INTMASK); | ||
47 | } | ||
48 | |||
49 | /* unmask an interrupt -- 0 is enable, 1 is disable */ | ||
50 | static inline void unmask_uart_irq(unsigned int irq) | ||
51 | { | ||
52 | uint8_t value; | ||
53 | |||
54 | value = OCELOT_FPGA_READ(UART_INTMASK); | ||
55 | value &= ~(1 << (irq - 74)); | ||
56 | OCELOT_FPGA_WRITE(value, UART_INTMASK); | ||
57 | |||
58 | /* read the value back to assure that it's really been written */ | ||
59 | value = OCELOT_FPGA_READ(UART_INTMASK); | ||
60 | } | ||
61 | |||
62 | /* | ||
63 | * Interrupt handler for interrupts coming from the FPGA chip. | ||
64 | */ | ||
65 | void ll_uart_irq(void) | ||
66 | { | ||
67 | unsigned int irq_src, irq_mask; | ||
68 | |||
69 | /* read the interrupt status registers */ | ||
70 | irq_src = OCELOT_FPGA_READ(UART_INTSTAT); | ||
71 | irq_mask = OCELOT_FPGA_READ(UART_INTMASK); | ||
72 | |||
73 | /* mask for just the interrupts we want */ | ||
74 | irq_src &= ~irq_mask; | ||
75 | |||
76 | do_IRQ(ls1bit8(irq_src) + 74); | ||
77 | } | ||
78 | |||
79 | struct irq_chip uart_irq_type = { | ||
80 | .name = "UART/FPGA", | ||
81 | .ack = mask_uart_irq, | ||
82 | .mask = mask_uart_irq, | ||
83 | .mask_ack = mask_uart_irq, | ||
84 | .unmask = unmask_uart_irq, | ||
85 | }; | ||
86 | |||
87 | void uart_irq_init(void) | ||
88 | { | ||
89 | set_irq_chip_and_handler(80, &uart_irq_type, handle_level_irq); | ||
90 | set_irq_chip_and_handler(81, &uart_irq_type, handle_level_irq); | ||
91 | } | ||
diff --git a/arch/mips/pci/Makefile b/arch/mips/pci/Makefile index aba3dbf47eda..f26ede001a0b 100644 --- a/arch/mips/pci/Makefile +++ b/arch/mips/pci/Makefile | |||
@@ -9,9 +9,7 @@ obj-y += pci.o pci-dac.o | |||
9 | # | 9 | # |
10 | obj-$(CONFIG_MIPS_BONITO64) += ops-bonito64.o | 10 | obj-$(CONFIG_MIPS_BONITO64) += ops-bonito64.o |
11 | obj-$(CONFIG_PCI_GT64XXX_PCI0) += ops-gt64xxx_pci0.o | 11 | obj-$(CONFIG_PCI_GT64XXX_PCI0) += ops-gt64xxx_pci0.o |
12 | obj-$(CONFIG_PCI_MARVELL) += ops-marvell.o | ||
13 | obj-$(CONFIG_MIPS_MSC) += ops-msc.o | 12 | obj-$(CONFIG_MIPS_MSC) += ops-msc.o |
14 | obj-$(CONFIG_MIPS_NILE4) += ops-nile4.o | ||
15 | obj-$(CONFIG_MIPS_TX3927) += ops-tx3927.o | 13 | obj-$(CONFIG_MIPS_TX3927) += ops-tx3927.o |
16 | obj-$(CONFIG_PCI_VR41XX) += ops-vr41xx.o pci-vr41xx.o | 14 | obj-$(CONFIG_PCI_VR41XX) += ops-vr41xx.o pci-vr41xx.o |
17 | obj-$(CONFIG_NEC_CMBVR4133) += fixup-vr4133.o | 15 | obj-$(CONFIG_NEC_CMBVR4133) += fixup-vr4133.o |
@@ -22,17 +20,17 @@ obj-$(CONFIG_MARKEINS) += ops-emma2rh.o pci-emma2rh.o fixup-emma2rh.o | |||
22 | # | 20 | # |
23 | obj-$(CONFIG_BASLER_EXCITE) += ops-titan.o pci-excite.o fixup-excite.o | 21 | obj-$(CONFIG_BASLER_EXCITE) += ops-titan.o pci-excite.o fixup-excite.o |
24 | obj-$(CONFIG_DDB5477) += fixup-ddb5477.o pci-ddb5477.o ops-ddb5477.o | 22 | obj-$(CONFIG_DDB5477) += fixup-ddb5477.o pci-ddb5477.o ops-ddb5477.o |
25 | obj-$(CONFIG_LASAT) += pci-lasat.o | ||
26 | obj-$(CONFIG_MIPS_ATLAS) += fixup-atlas.o | 23 | obj-$(CONFIG_MIPS_ATLAS) += fixup-atlas.o |
27 | obj-$(CONFIG_MIPS_COBALT) += fixup-cobalt.o | 24 | obj-$(CONFIG_MIPS_COBALT) += fixup-cobalt.o |
28 | obj-$(CONFIG_MIPS_EV64120) += pci-ev64120.o | ||
29 | obj-$(CONFIG_SOC_AU1500) += fixup-au1000.o ops-au1000.o | 25 | obj-$(CONFIG_SOC_AU1500) += fixup-au1000.o ops-au1000.o |
30 | obj-$(CONFIG_SOC_AU1550) += fixup-au1000.o ops-au1000.o | 26 | obj-$(CONFIG_SOC_AU1550) += fixup-au1000.o ops-au1000.o |
31 | obj-$(CONFIG_SOC_PNX8550) += fixup-pnx8550.o ops-pnx8550.o | 27 | obj-$(CONFIG_SOC_PNX8550) += fixup-pnx8550.o ops-pnx8550.o |
28 | obj-$(CONFIG_LEMOTE_FULONG) += fixup-lm2e.o ops-bonito64.o | ||
32 | obj-$(CONFIG_MIPS_MALTA) += fixup-malta.o | 29 | obj-$(CONFIG_MIPS_MALTA) += fixup-malta.o |
33 | obj-$(CONFIG_MOMENCO_OCELOT) += fixup-ocelot.o pci-ocelot.o | 30 | obj-$(CONFIG_MOMENCO_OCELOT) += fixup-ocelot.o pci-ocelot.o |
34 | obj-$(CONFIG_MOMENCO_OCELOT_3) += fixup-ocelot3.o | 31 | obj-$(CONFIG_PMC_MSP7120_GW) += fixup-pmcmsp.o ops-pmcmsp.o |
35 | obj-$(CONFIG_MOMENCO_OCELOT_C) += fixup-ocelot-c.o pci-ocelot-c.o | 32 | obj-$(CONFIG_PMC_MSP7120_EVAL) += fixup-pmcmsp.o ops-pmcmsp.o |
33 | obj-$(CONFIG_PMC_MSP7120_FPGA) += fixup-pmcmsp.o ops-pmcmsp.o | ||
36 | obj-$(CONFIG_PMC_YOSEMITE) += fixup-yosemite.o ops-titan.o ops-titan-ht.o \ | 34 | obj-$(CONFIG_PMC_YOSEMITE) += fixup-yosemite.o ops-titan.o ops-titan-ht.o \ |
37 | pci-yosemite.o | 35 | pci-yosemite.o |
38 | obj-$(CONFIG_SGI_IP27) += ops-bridge.o pci-ip27.o | 36 | obj-$(CONFIG_SGI_IP27) += ops-bridge.o pci-ip27.o |
diff --git a/arch/mips/pci/fixup-atlas.c b/arch/mips/pci/fixup-atlas.c index c6cd6e9cdfbc..45224fd2c7ba 100644 --- a/arch/mips/pci/fixup-atlas.c +++ b/arch/mips/pci/fixup-atlas.c | |||
@@ -58,7 +58,7 @@ static char irq_tab[][5] __initdata = { | |||
58 | {0, 0, 0, 0, 0 } /* 21: Unused */ | 58 | {0, 0, 0, 0, 0 } /* 21: Unused */ |
59 | }; | 59 | }; |
60 | 60 | ||
61 | int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 61 | int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
62 | { | 62 | { |
63 | return irq_tab[slot][pin]; | 63 | return irq_tab[slot][pin]; |
64 | } | 64 | } |
diff --git a/arch/mips/pci/fixup-au1000.c b/arch/mips/pci/fixup-au1000.c index c2f8304fe55b..ca0276c8070a 100644 --- a/arch/mips/pci/fixup-au1000.c +++ b/arch/mips/pci/fixup-au1000.c | |||
@@ -35,7 +35,7 @@ | |||
35 | 35 | ||
36 | extern char irq_tab_alchemy[][5]; | 36 | extern char irq_tab_alchemy[][5]; |
37 | 37 | ||
38 | int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 38 | int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
39 | { | 39 | { |
40 | return irq_tab_alchemy[slot][pin]; | 40 | return irq_tab_alchemy[slot][pin]; |
41 | } | 41 | } |
diff --git a/arch/mips/pci/fixup-capcella.c b/arch/mips/pci/fixup-capcella.c index 1e530751936c..1416bca6d1a3 100644 --- a/arch/mips/pci/fixup-capcella.c +++ b/arch/mips/pci/fixup-capcella.c | |||
@@ -38,7 +38,7 @@ static char irq_tab_capcella[][5] __initdata = { | |||
38 | [14] = { -1, INTA, INTB, INTC, INTD } | 38 | [14] = { -1, INTA, INTB, INTC, INTD } |
39 | }; | 39 | }; |
40 | 40 | ||
41 | int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 41 | int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
42 | { | 42 | { |
43 | return irq_tab_capcella[slot][pin]; | 43 | return irq_tab_capcella[slot][pin]; |
44 | } | 44 | } |
diff --git a/arch/mips/pci/fixup-cobalt.c b/arch/mips/pci/fixup-cobalt.c index d57ffd7242ca..7fc475f7eae5 100644 --- a/arch/mips/pci/fixup-cobalt.c +++ b/arch/mips/pci/fixup-cobalt.c | |||
@@ -161,7 +161,7 @@ static char irq_tab_raq2[] __initdata = { | |||
161 | [COBALT_PCICONF_ETH1] = COBALT_ETH1_IRQ | 161 | [COBALT_PCICONF_ETH1] = COBALT_ETH1_IRQ |
162 | }; | 162 | }; |
163 | 163 | ||
164 | int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 164 | int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
165 | { | 165 | { |
166 | if (cobalt_board_id < COBALT_BRD_ID_QUBE2) | 166 | if (cobalt_board_id < COBALT_BRD_ID_QUBE2) |
167 | return irq_tab_qube1[slot]; | 167 | return irq_tab_qube1[slot]; |
diff --git a/arch/mips/pci/fixup-emma2rh.c b/arch/mips/pci/fixup-emma2rh.c index 7abcfd175d43..a2705895561d 100644 --- a/arch/mips/pci/fixup-emma2rh.c +++ b/arch/mips/pci/fixup-emma2rh.c | |||
@@ -89,7 +89,7 @@ static void __devinit emma2rh_pci_host_fixup(struct pci_dev *dev) | |||
89 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_EMMA2RH, | 89 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_EMMA2RH, |
90 | emma2rh_pci_host_fixup); | 90 | emma2rh_pci_host_fixup); |
91 | 91 | ||
92 | int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 92 | int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
93 | { | 93 | { |
94 | return irq_map[slot][pin]; | 94 | return irq_map[slot][pin]; |
95 | } | 95 | } |
diff --git a/arch/mips/pci/fixup-excite.c b/arch/mips/pci/fixup-excite.c index 1da696d43f00..cd64d9f177c4 100644 --- a/arch/mips/pci/fixup-excite.c +++ b/arch/mips/pci/fixup-excite.c | |||
@@ -21,7 +21,7 @@ | |||
21 | #include <linux/pci.h> | 21 | #include <linux/pci.h> |
22 | #include <excite.h> | 22 | #include <excite.h> |
23 | 23 | ||
24 | int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 24 | int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
25 | { | 25 | { |
26 | if (pin == 0) | 26 | if (pin == 0) |
27 | return -1; | 27 | return -1; |
diff --git a/arch/mips/pci/fixup-ip32.c b/arch/mips/pci/fixup-ip32.c index 3e66b0aa63ca..190fffd08d3e 100644 --- a/arch/mips/pci/fixup-ip32.c +++ b/arch/mips/pci/fixup-ip32.c | |||
@@ -39,7 +39,7 @@ static char irq_tab_mace[][5] __initdata = { | |||
39 | * irqs. I suppose a device without a pin A will thank us for doing it | 39 | * irqs. I suppose a device without a pin A will thank us for doing it |
40 | * right if there exists such a broken piece of crap. | 40 | * right if there exists such a broken piece of crap. |
41 | */ | 41 | */ |
42 | int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 42 | int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
43 | { | 43 | { |
44 | return irq_tab_mace[slot][pin]; | 44 | return irq_tab_mace[slot][pin]; |
45 | } | 45 | } |
diff --git a/arch/mips/pci/fixup-jmr3927.c b/arch/mips/pci/fixup-jmr3927.c index 73d18503517c..e974394be7bc 100644 --- a/arch/mips/pci/fixup-jmr3927.c +++ b/arch/mips/pci/fixup-jmr3927.c | |||
@@ -33,7 +33,7 @@ | |||
33 | 33 | ||
34 | #include <asm/jmr3927/jmr3927.h> | 34 | #include <asm/jmr3927/jmr3927.h> |
35 | 35 | ||
36 | int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 36 | int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
37 | { | 37 | { |
38 | unsigned char irq = pin; | 38 | unsigned char irq = pin; |
39 | 39 | ||
diff --git a/arch/mips/pci/fixup-lm2e.c b/arch/mips/pci/fixup-lm2e.c new file mode 100644 index 000000000000..e18ae4f574c1 --- /dev/null +++ b/arch/mips/pci/fixup-lm2e.c | |||
@@ -0,0 +1,242 @@ | |||
1 | /* | ||
2 | * fixup-lm2e.c | ||
3 | * | ||
4 | * Copyright (C) 2004 ICT CAS | ||
5 | * Author: Li xiaoyu, ICT CAS | ||
6 | * lixy@ict.ac.cn | ||
7 | * | ||
8 | * Copyright (C) 2007 Lemote, Inc. & Institute of Computing Technology | ||
9 | * Author: Fuxin Zhang, zhangfx@lemote.com | ||
10 | * | ||
11 | * This program is free software; you can redistribute it and/or modify it | ||
12 | * under the terms of the GNU General Public License as published by the | ||
13 | * Free Software Foundation; either version 2 of the License, or (at your | ||
14 | * option) any later version. | ||
15 | * | ||
16 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | ||
17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN | ||
19 | * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
20 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
21 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | ||
22 | * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||
23 | * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
25 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
26 | * | ||
27 | * You should have received a copy of the GNU General Public License along | ||
28 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
29 | * 675 Mass Ave, Cambridge, MA 02139, USA. | ||
30 | * | ||
31 | */ | ||
32 | #include <linux/init.h> | ||
33 | #include <linux/pci.h> | ||
34 | #include <asm/mips-boards/bonito64.h> | ||
35 | |||
36 | /* South bridge slot number is set by the pci probe process */ | ||
37 | static u8 sb_slot = 5; | ||
38 | |||
39 | int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) | ||
40 | { | ||
41 | int irq = 0; | ||
42 | |||
43 | if (slot == sb_slot) { | ||
44 | switch (PCI_FUNC(dev->devfn)) { | ||
45 | case 2: | ||
46 | irq = 10; | ||
47 | break; | ||
48 | case 3: | ||
49 | irq = 11; | ||
50 | break; | ||
51 | case 5: | ||
52 | irq = 9; | ||
53 | break; | ||
54 | } | ||
55 | } else { | ||
56 | irq = BONITO_IRQ_BASE + 25 + pin; | ||
57 | } | ||
58 | return irq; | ||
59 | |||
60 | } | ||
61 | |||
62 | /* Do platform specific device initialization at pci_enable_device() time */ | ||
63 | int pcibios_plat_dev_init(struct pci_dev *dev) | ||
64 | { | ||
65 | return 0; | ||
66 | } | ||
67 | |||
68 | static void __init loongson2e_nec_fixup(struct pci_dev *pdev) | ||
69 | { | ||
70 | unsigned int val; | ||
71 | |||
72 | /* Configues port 1, 2, 3, 4 to be validate*/ | ||
73 | pci_read_config_dword(pdev, 0xe0, &val); | ||
74 | pci_write_config_dword(pdev, 0xe0, (val & ~7) | 0x4); | ||
75 | |||
76 | /* System clock is 48-MHz Oscillator. */ | ||
77 | pci_write_config_dword(pdev, 0xe4, 1 << 5); | ||
78 | } | ||
79 | |||
80 | static void __init loongson2e_686b_func0_fixup(struct pci_dev *pdev) | ||
81 | { | ||
82 | unsigned char c; | ||
83 | |||
84 | sb_slot = PCI_SLOT(pdev->devfn); | ||
85 | |||
86 | printk(KERN_INFO "via686b fix: ISA bridge\n"); | ||
87 | |||
88 | /* Enable I/O Recovery time */ | ||
89 | pci_write_config_byte(pdev, 0x40, 0x08); | ||
90 | |||
91 | /* Enable ISA refresh */ | ||
92 | pci_write_config_byte(pdev, 0x41, 0x01); | ||
93 | |||
94 | /* disable ISA line buffer */ | ||
95 | pci_write_config_byte(pdev, 0x45, 0x00); | ||
96 | |||
97 | /* Gate INTR, and flush line buffer */ | ||
98 | pci_write_config_byte(pdev, 0x46, 0xe0); | ||
99 | |||
100 | /* Disable PCI Delay Transaction, Enable EISA ports 4D0/4D1. */ | ||
101 | /* pci_write_config_byte(pdev, 0x47, 0x20); */ | ||
102 | |||
103 | /* | ||
104 | * enable PCI Delay Transaction, Enable EISA ports 4D0/4D1. | ||
105 | * enable time-out timer | ||
106 | */ | ||
107 | pci_write_config_byte(pdev, 0x47, 0xe6); | ||
108 | |||
109 | /* | ||
110 | * enable level trigger on pci irqs: 9,10,11,13 | ||
111 | * important! without this PCI interrupts won't work | ||
112 | */ | ||
113 | outb(0x2e, 0x4d1); | ||
114 | |||
115 | /* 512 K PCI Decode */ | ||
116 | pci_write_config_byte(pdev, 0x48, 0x01); | ||
117 | |||
118 | /* Wait for PGNT before grant to ISA Master/DMA */ | ||
119 | pci_write_config_byte(pdev, 0x4a, 0x84); | ||
120 | |||
121 | /* | ||
122 | * Plug'n'Play | ||
123 | * | ||
124 | * Parallel DRQ 3, Floppy DRQ 2 (default) | ||
125 | */ | ||
126 | pci_write_config_byte(pdev, 0x50, 0x0e); | ||
127 | |||
128 | /* | ||
129 | * IRQ Routing for Floppy and Parallel port | ||
130 | * | ||
131 | * IRQ 6 for floppy, IRQ 7 for parallel port | ||
132 | */ | ||
133 | pci_write_config_byte(pdev, 0x51, 0x76); | ||
134 | |||
135 | /* IRQ Routing for serial ports (take IRQ 3 and 4) */ | ||
136 | pci_write_config_byte(pdev, 0x52, 0x34); | ||
137 | |||
138 | /* All IRQ's level triggered. */ | ||
139 | pci_write_config_byte(pdev, 0x54, 0x00); | ||
140 | |||
141 | /* route PIRQA-D irq */ | ||
142 | pci_write_config_byte(pdev, 0x55, 0x90); /* bit 7-4, PIRQA */ | ||
143 | pci_write_config_byte(pdev, 0x56, 0xba); /* bit 7-4, PIRQC; */ | ||
144 | /* 3-0, PIRQB */ | ||
145 | pci_write_config_byte(pdev, 0x57, 0xd0); /* bit 7-4, PIRQD */ | ||
146 | |||
147 | /* enable function 5/6, audio/modem */ | ||
148 | pci_read_config_byte(pdev, 0x85, &c); | ||
149 | c &= ~(0x3 << 2); | ||
150 | pci_write_config_byte(pdev, 0x85, c); | ||
151 | |||
152 | printk(KERN_INFO"via686b fix: ISA bridge done\n"); | ||
153 | } | ||
154 | |||
155 | static void __init loongson2e_686b_func1_fixup(struct pci_dev *pdev) | ||
156 | { | ||
157 | printk(KERN_INFO"via686b fix: IDE\n"); | ||
158 | |||
159 | /* Modify IDE controller setup */ | ||
160 | pci_write_config_byte(pdev, PCI_LATENCY_TIMER, 48); | ||
161 | pci_write_config_byte(pdev, PCI_COMMAND, | ||
162 | PCI_COMMAND_IO | PCI_COMMAND_MEMORY | | ||
163 | PCI_COMMAND_MASTER); | ||
164 | pci_write_config_byte(pdev, 0x40, 0x0b); | ||
165 | /* legacy mode */ | ||
166 | pci_write_config_byte(pdev, 0x42, 0x09); | ||
167 | |||
168 | #if 1/* play safe, otherwise we may see notebook's usb keyboard lockup */ | ||
169 | /* disable read prefetch/write post buffers */ | ||
170 | pci_write_config_byte(pdev, 0x41, 0x02); | ||
171 | |||
172 | /* use 3/4 as fifo thresh hold */ | ||
173 | pci_write_config_byte(pdev, 0x43, 0x0a); | ||
174 | pci_write_config_byte(pdev, 0x44, 0x00); | ||
175 | |||
176 | pci_write_config_byte(pdev, 0x45, 0x00); | ||
177 | #else | ||
178 | pci_write_config_byte(pdev, 0x41, 0xc2); | ||
179 | pci_write_config_byte(pdev, 0x43, 0x35); | ||
180 | pci_write_config_byte(pdev, 0x44, 0x1c); | ||
181 | |||
182 | pci_write_config_byte(pdev, 0x45, 0x10); | ||
183 | #endif | ||
184 | |||
185 | printk(KERN_INFO"via686b fix: IDE done\n"); | ||
186 | } | ||
187 | |||
188 | static void __init loongson2e_686b_func2_fixup(struct pci_dev *pdev) | ||
189 | { | ||
190 | /* irq routing */ | ||
191 | pci_write_config_byte(pdev, PCI_INTERRUPT_LINE, 10); | ||
192 | } | ||
193 | |||
194 | static void __init loongson2e_686b_func3_fixup(struct pci_dev *pdev) | ||
195 | { | ||
196 | /* irq routing */ | ||
197 | pci_write_config_byte(pdev, PCI_INTERRUPT_LINE, 11); | ||
198 | } | ||
199 | |||
200 | static void __init loongson2e_686b_func5_fixup(struct pci_dev *pdev) | ||
201 | { | ||
202 | unsigned int val; | ||
203 | unsigned char c; | ||
204 | |||
205 | /* enable IO */ | ||
206 | pci_write_config_byte(pdev, PCI_COMMAND, | ||
207 | PCI_COMMAND_IO | PCI_COMMAND_MEMORY | | ||
208 | PCI_COMMAND_MASTER); | ||
209 | pci_read_config_dword(pdev, 0x4, &val); | ||
210 | pci_write_config_dword(pdev, 0x4, val | 1); | ||
211 | |||
212 | /* route ac97 IRQ */ | ||
213 | pci_write_config_byte(pdev, 0x3c, 9); | ||
214 | |||
215 | pci_read_config_byte(pdev, 0x8, &c); | ||
216 | |||
217 | /* link control: enable link & SGD PCM output */ | ||
218 | pci_write_config_byte(pdev, 0x41, 0xcc); | ||
219 | |||
220 | /* disable game port, FM, midi, sb, enable write to reg2c-2f */ | ||
221 | pci_write_config_byte(pdev, 0x42, 0x20); | ||
222 | |||
223 | /* we are using Avance logic codec */ | ||
224 | pci_write_config_word(pdev, 0x2c, 0x1005); | ||
225 | pci_write_config_word(pdev, 0x2e, 0x4710); | ||
226 | pci_read_config_dword(pdev, 0x2c, &val); | ||
227 | |||
228 | pci_write_config_byte(pdev, 0x42, 0x0); | ||
229 | } | ||
230 | |||
231 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686, | ||
232 | loongson2e_686b_func0_fixup); | ||
233 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_1, | ||
234 | loongson2e_686b_func1_fixup); | ||
235 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_2, | ||
236 | loongson2e_686b_func2_fixup); | ||
237 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_3, | ||
238 | loongson2e_686b_func3_fixup); | ||
239 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_5, | ||
240 | loongson2e_686b_func5_fixup); | ||
241 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_USB, | ||
242 | loongson2e_nec_fixup); | ||
diff --git a/arch/mips/pci/fixup-malta.c b/arch/mips/pci/fixup-malta.c index bf2c41d1e9c5..0f48498bc231 100644 --- a/arch/mips/pci/fixup-malta.c +++ b/arch/mips/pci/fixup-malta.c | |||
@@ -36,7 +36,7 @@ static char irq_tab[][5] __initdata = { | |||
36 | {0, PCID, PCIA, PCIB, PCIC } /* 21: PCI Slot 4 */ | 36 | {0, PCID, PCIA, PCIB, PCIC } /* 21: PCI Slot 4 */ |
37 | }; | 37 | }; |
38 | 38 | ||
39 | int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 39 | int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
40 | { | 40 | { |
41 | int virq; | 41 | int virq; |
42 | virq = irq_tab[slot][pin]; | 42 | virq = irq_tab[slot][pin]; |
diff --git a/arch/mips/pci/fixup-mpc30x.c b/arch/mips/pci/fixup-mpc30x.c index 3c9ae41f7517..591159625722 100644 --- a/arch/mips/pci/fixup-mpc30x.c +++ b/arch/mips/pci/fixup-mpc30x.c | |||
@@ -34,7 +34,7 @@ static const int irq_tab_mpc30x[] __initdata = { | |||
34 | [29] = MQ200_IRQ, | 34 | [29] = MQ200_IRQ, |
35 | }; | 35 | }; |
36 | 36 | ||
37 | int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 37 | int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
38 | { | 38 | { |
39 | if (slot == 30) | 39 | if (slot == 30) |
40 | return internal_func_irqs[PCI_FUNC(dev->devfn)]; | 40 | return internal_func_irqs[PCI_FUNC(dev->devfn)]; |
diff --git a/arch/mips/pci/fixup-ocelot-c.c b/arch/mips/pci/fixup-ocelot-c.c deleted file mode 100644 index d45494807a33..000000000000 --- a/arch/mips/pci/fixup-ocelot-c.c +++ /dev/null | |||
@@ -1,41 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright 2002 Momentum Computer Inc. | ||
3 | * Author: Matthew Dharm <mdharm@momenco.com> | ||
4 | * | ||
5 | * Based on work for the Linux port to the Ocelot board, which is | ||
6 | * Copyright 2001 MontaVista Software Inc. | ||
7 | * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net | ||
8 | * | ||
9 | * arch/mips/momentum/ocelot_g/pci.c | ||
10 | * Board-specific PCI routines for mv64340 controller. | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or modify it | ||
13 | * under the terms of the GNU General Public License as published by the | ||
14 | * Free Software Foundation; either version 2 of the License, or (at your | ||
15 | * option) any later version. | ||
16 | */ | ||
17 | #include <linux/types.h> | ||
18 | #include <linux/pci.h> | ||
19 | #include <linux/kernel.h> | ||
20 | #include <linux/init.h> | ||
21 | |||
22 | int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | ||
23 | { | ||
24 | int bus = dev->bus->number; | ||
25 | |||
26 | if (bus == 0 && slot == 1) | ||
27 | return 2; /* PCI-X A */ | ||
28 | if (bus == 1 && slot == 1) | ||
29 | return 12; /* PCI-X B */ | ||
30 | if (bus == 1 && slot == 2) | ||
31 | return 4; /* PCI B */ | ||
32 | |||
33 | return 0; | ||
34 | panic("Whooops in pcibios_map_irq"); | ||
35 | } | ||
36 | |||
37 | /* Do platform specific device initialization at pci_enable_device() time */ | ||
38 | int pcibios_plat_dev_init(struct pci_dev *dev) | ||
39 | { | ||
40 | return 0; | ||
41 | } | ||
diff --git a/arch/mips/pci/fixup-ocelot3.c b/arch/mips/pci/fixup-ocelot3.c deleted file mode 100644 index ececc03ec620..000000000000 --- a/arch/mips/pci/fixup-ocelot3.c +++ /dev/null | |||
@@ -1,41 +0,0 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 2004 Montavista Software Inc. | ||
7 | * Author: Manish Lachwani (mlachwani@mvista.com) | ||
8 | * | ||
9 | * Looking at the schematics for the Ocelot-3 board, there are | ||
10 | * two PCI busses and each bus has two PCI slots. | ||
11 | */ | ||
12 | #include <linux/kernel.h> | ||
13 | #include <linux/init.h> | ||
14 | #include <linux/pci.h> | ||
15 | #include <asm/mipsregs.h> | ||
16 | |||
17 | /* | ||
18 | * Do platform specific device initialization at | ||
19 | * pci_enable_device() time | ||
20 | */ | ||
21 | int pcibios_plat_dev_init(struct pci_dev *dev) | ||
22 | { | ||
23 | return 0; | ||
24 | } | ||
25 | |||
26 | int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | ||
27 | { | ||
28 | int bus = dev->bus->number; | ||
29 | |||
30 | if (bus == 0 && slot == 1) | ||
31 | return 2; /* PCI-X A */ | ||
32 | if (bus == 0 && slot == 2) | ||
33 | return 3; /* PCI-X B */ | ||
34 | if (bus == 1 && slot == 1) | ||
35 | return 4; /* PCI A */ | ||
36 | if (bus == 1 && slot == 2) | ||
37 | return 5; /* PCI B */ | ||
38 | |||
39 | return 0; | ||
40 | panic("Whooops in pcibios_map_irq"); | ||
41 | } | ||
diff --git a/arch/mips/pci/fixup-pmcmsp.c b/arch/mips/pci/fixup-pmcmsp.c new file mode 100644 index 000000000000..00261211dbfa --- /dev/null +++ b/arch/mips/pci/fixup-pmcmsp.c | |||
@@ -0,0 +1,216 @@ | |||
1 | /* | ||
2 | * PMC-Sierra MSP board specific pci fixups. | ||
3 | * | ||
4 | * Copyright 2001 MontaVista Software Inc. | ||
5 | * Copyright 2005-2007 PMC-Sierra, Inc | ||
6 | * | ||
7 | * Author: MontaVista Software, Inc. | ||
8 | * ppopov@mvista.com or source@mvista.com | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify it | ||
11 | * under the terms of the GNU General Public License as published by the | ||
12 | * Free Software Foundation; either version 2 of the License, or (at your | ||
13 | * option) any later version. | ||
14 | * | ||
15 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | ||
16 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
17 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN | ||
18 | * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
19 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
20 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | ||
21 | * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||
22 | * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
23 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
24 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
25 | * | ||
26 | * You should have received a copy of the GNU General Public License along | ||
27 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
28 | * 675 Mass Ave, Cambridge, MA 02139, USA. | ||
29 | */ | ||
30 | |||
31 | #ifdef CONFIG_PCI | ||
32 | |||
33 | #include <linux/types.h> | ||
34 | #include <linux/pci.h> | ||
35 | #include <linux/kernel.h> | ||
36 | #include <linux/init.h> | ||
37 | |||
38 | #include <asm/byteorder.h> | ||
39 | |||
40 | #include <msp_pci.h> | ||
41 | #include <msp_cic_int.h> | ||
42 | |||
43 | /* PCI interrupt pins */ | ||
44 | #define IRQ4 MSP_INT_EXT4 | ||
45 | #define IRQ5 MSP_INT_EXT5 | ||
46 | #define IRQ6 MSP_INT_EXT6 | ||
47 | |||
48 | #if defined(CONFIG_PMC_MSP7120_GW) | ||
49 | /* Garibaldi Board IRQ wiring to PCI slots */ | ||
50 | static char irq_tab[][5] __initdata = { | ||
51 | /* INTA INTB INTC INTD */ | ||
52 | {0, 0, 0, 0, 0 }, /* (AD[0]): Unused */ | ||
53 | {0, 0, 0, 0, 0 }, /* (AD[1]): Unused */ | ||
54 | {0, 0, 0, 0, 0 }, /* (AD[2]): Unused */ | ||
55 | {0, 0, 0, 0, 0 }, /* (AD[3]): Unused */ | ||
56 | {0, 0, 0, 0, 0 }, /* (AD[4]): Unused */ | ||
57 | {0, 0, 0, 0, 0 }, /* (AD[5]): Unused */ | ||
58 | {0, 0, 0, 0, 0 }, /* (AD[6]): Unused */ | ||
59 | {0, 0, 0, 0, 0 }, /* (AD[7]): Unused */ | ||
60 | {0, 0, 0, 0, 0 }, /* (AD[8]): Unused */ | ||
61 | {0, 0, 0, 0, 0 }, /* (AD[9]): Unused */ | ||
62 | {0, 0, 0, 0, 0 }, /* 0 (AD[10]): Unused */ | ||
63 | {0, 0, 0, 0, 0 }, /* 1 (AD[11]): Unused */ | ||
64 | {0, 0, 0, 0, 0 }, /* 2 (AD[12]): Unused */ | ||
65 | {0, 0, 0, 0, 0 }, /* 3 (AD[13]): Unused */ | ||
66 | {0, 0, 0, 0, 0 }, /* 4 (AD[14]): Unused */ | ||
67 | {0, 0, 0, 0, 0 }, /* 5 (AD[15]): Unused */ | ||
68 | {0, 0, 0, 0, 0 }, /* 6 (AD[16]): Unused */ | ||
69 | {0, 0, 0, 0, 0 }, /* 7 (AD[17]): Unused */ | ||
70 | {0, 0, 0, 0, 0 }, /* 8 (AD[18]): Unused */ | ||
71 | {0, 0, 0, 0, 0 }, /* 9 (AD[19]): Unused */ | ||
72 | {0, 0, 0, 0, 0 }, /* 10 (AD[20]): Unused */ | ||
73 | {0, 0, 0, 0, 0 }, /* 11 (AD[21]): Unused */ | ||
74 | {0, 0, 0, 0, 0 }, /* 12 (AD[22]): Unused */ | ||
75 | {0, 0, 0, 0, 0 }, /* 13 (AD[23]): Unused */ | ||
76 | {0, 0, 0, 0, 0 }, /* 14 (AD[24]): Unused */ | ||
77 | {0, 0, 0, 0, 0 }, /* 15 (AD[25]): Unused */ | ||
78 | {0, 0, 0, 0, 0 }, /* 16 (AD[26]): Unused */ | ||
79 | {0, 0, 0, 0, 0 }, /* 17 (AD[27]): Unused */ | ||
80 | {0, IRQ4, IRQ4, 0, 0 }, /* 18 (AD[28]): slot 0 */ | ||
81 | {0, 0, 0, 0, 0 }, /* 19 (AD[29]): Unused */ | ||
82 | {0, IRQ5, IRQ5, 0, 0 }, /* 20 (AD[30]): slot 1 */ | ||
83 | {0, IRQ6, IRQ6, 0, 0 } /* 21 (AD[31]): slot 2 */ | ||
84 | }; | ||
85 | |||
86 | #elif defined(CONFIG_PMC_MSP7120_EVAL) | ||
87 | |||
88 | /* MSP7120 Eval Board IRQ wiring to PCI slots */ | ||
89 | static char irq_tab[][5] __initdata = { | ||
90 | /* INTA INTB INTC INTD */ | ||
91 | {0, 0, 0, 0, 0 }, /* (AD[0]): Unused */ | ||
92 | {0, 0, 0, 0, 0 }, /* (AD[1]): Unused */ | ||
93 | {0, 0, 0, 0, 0 }, /* (AD[2]): Unused */ | ||
94 | {0, 0, 0, 0, 0 }, /* (AD[3]): Unused */ | ||
95 | {0, 0, 0, 0, 0 }, /* (AD[4]): Unused */ | ||
96 | {0, 0, 0, 0, 0 }, /* (AD[5]): Unused */ | ||
97 | {0, 0, 0, 0, 0 }, /* (AD[6]): Unused */ | ||
98 | {0, 0, 0, 0, 0 }, /* (AD[7]): Unused */ | ||
99 | {0, 0, 0, 0, 0 }, /* (AD[8]): Unused */ | ||
100 | {0, 0, 0, 0, 0 }, /* (AD[9]): Unused */ | ||
101 | {0, 0, 0, 0, 0 }, /* 0 (AD[10]): Unused */ | ||
102 | {0, 0, 0, 0, 0 }, /* 1 (AD[11]): Unused */ | ||
103 | {0, 0, 0, 0, 0 }, /* 2 (AD[12]): Unused */ | ||
104 | {0, 0, 0, 0, 0 }, /* 3 (AD[13]): Unused */ | ||
105 | {0, 0, 0, 0, 0 }, /* 4 (AD[14]): Unused */ | ||
106 | {0, 0, 0, 0, 0 }, /* 5 (AD[15]): Unused */ | ||
107 | {0, IRQ6, IRQ6, 0, 0 }, /* 6 (AD[16]): slot 3 (mini) */ | ||
108 | {0, IRQ5, IRQ5, 0, 0 }, /* 7 (AD[17]): slot 2 (mini) */ | ||
109 | {0, IRQ4, IRQ4, IRQ4, IRQ4}, /* 8 (AD[18]): slot 0 (PCI) */ | ||
110 | {0, IRQ5, IRQ5, IRQ5, IRQ5}, /* 9 (AD[19]): slot 1 (PCI) */ | ||
111 | {0, 0, 0, 0, 0 }, /* 10 (AD[20]): Unused */ | ||
112 | {0, 0, 0, 0, 0 }, /* 11 (AD[21]): Unused */ | ||
113 | {0, 0, 0, 0, 0 }, /* 12 (AD[22]): Unused */ | ||
114 | {0, 0, 0, 0, 0 }, /* 13 (AD[23]): Unused */ | ||
115 | {0, 0, 0, 0, 0 }, /* 14 (AD[24]): Unused */ | ||
116 | {0, 0, 0, 0, 0 }, /* 15 (AD[25]): Unused */ | ||
117 | {0, 0, 0, 0, 0 }, /* 16 (AD[26]): Unused */ | ||
118 | {0, 0, 0, 0, 0 }, /* 17 (AD[27]): Unused */ | ||
119 | {0, 0, 0, 0, 0 }, /* 18 (AD[28]): Unused */ | ||
120 | {0, 0, 0, 0, 0 }, /* 19 (AD[29]): Unused */ | ||
121 | {0, 0, 0, 0, 0 }, /* 20 (AD[30]): Unused */ | ||
122 | {0, 0, 0, 0, 0 } /* 21 (AD[31]): Unused */ | ||
123 | }; | ||
124 | |||
125 | #else | ||
126 | |||
127 | /* Unknown board -- don't assign any IRQs */ | ||
128 | static char irq_tab[][5] __initdata = { | ||
129 | /* INTA INTB INTC INTD */ | ||
130 | {0, 0, 0, 0, 0 }, /* (AD[0]): Unused */ | ||
131 | {0, 0, 0, 0, 0 }, /* (AD[1]): Unused */ | ||
132 | {0, 0, 0, 0, 0 }, /* (AD[2]): Unused */ | ||
133 | {0, 0, 0, 0, 0 }, /* (AD[3]): Unused */ | ||
134 | {0, 0, 0, 0, 0 }, /* (AD[4]): Unused */ | ||
135 | {0, 0, 0, 0, 0 }, /* (AD[5]): Unused */ | ||
136 | {0, 0, 0, 0, 0 }, /* (AD[6]): Unused */ | ||
137 | {0, 0, 0, 0, 0 }, /* (AD[7]): Unused */ | ||
138 | {0, 0, 0, 0, 0 }, /* (AD[8]): Unused */ | ||
139 | {0, 0, 0, 0, 0 }, /* (AD[9]): Unused */ | ||
140 | {0, 0, 0, 0, 0 }, /* 0 (AD[10]): Unused */ | ||
141 | {0, 0, 0, 0, 0 }, /* 1 (AD[11]): Unused */ | ||
142 | {0, 0, 0, 0, 0 }, /* 2 (AD[12]): Unused */ | ||
143 | {0, 0, 0, 0, 0 }, /* 3 (AD[13]): Unused */ | ||
144 | {0, 0, 0, 0, 0 }, /* 4 (AD[14]): Unused */ | ||
145 | {0, 0, 0, 0, 0 }, /* 5 (AD[15]): Unused */ | ||
146 | {0, 0, 0, 0, 0 }, /* 6 (AD[16]): Unused */ | ||
147 | {0, 0, 0, 0, 0 }, /* 7 (AD[17]): Unused */ | ||
148 | {0, 0, 0, 0, 0 }, /* 8 (AD[18]): Unused */ | ||
149 | {0, 0, 0, 0, 0 }, /* 9 (AD[19]): Unused */ | ||
150 | {0, 0, 0, 0, 0 }, /* 10 (AD[20]): Unused */ | ||
151 | {0, 0, 0, 0, 0 }, /* 11 (AD[21]): Unused */ | ||
152 | {0, 0, 0, 0, 0 }, /* 12 (AD[22]): Unused */ | ||
153 | {0, 0, 0, 0, 0 }, /* 13 (AD[23]): Unused */ | ||
154 | {0, 0, 0, 0, 0 }, /* 14 (AD[24]): Unused */ | ||
155 | {0, 0, 0, 0, 0 }, /* 15 (AD[25]): Unused */ | ||
156 | {0, 0, 0, 0, 0 }, /* 16 (AD[26]): Unused */ | ||
157 | {0, 0, 0, 0, 0 }, /* 17 (AD[27]): Unused */ | ||
158 | {0, 0, 0, 0, 0 }, /* 18 (AD[28]): Unused */ | ||
159 | {0, 0, 0, 0, 0 }, /* 19 (AD[29]): Unused */ | ||
160 | {0, 0, 0, 0, 0 }, /* 20 (AD[30]): Unused */ | ||
161 | {0, 0, 0, 0, 0 } /* 21 (AD[31]): Unused */ | ||
162 | }; | ||
163 | #endif | ||
164 | |||
165 | /***************************************************************************** | ||
166 | * | ||
167 | * FUNCTION: pcibios_plat_dev_init | ||
168 | * _________________________________________________________________________ | ||
169 | * | ||
170 | * DESCRIPTION: Perform platform specific device initialization at | ||
171 | * pci_enable_device() time. | ||
172 | * None are needed for the MSP7120 PCI Controller. | ||
173 | * | ||
174 | * INPUTS: dev - structure describing the PCI device | ||
175 | * | ||
176 | * OUTPUTS: none | ||
177 | * | ||
178 | * RETURNS: PCIBIOS_SUCCESSFUL | ||
179 | * | ||
180 | ****************************************************************************/ | ||
181 | int pcibios_plat_dev_init(struct pci_dev *dev) | ||
182 | { | ||
183 | return PCIBIOS_SUCCESSFUL; | ||
184 | } | ||
185 | |||
186 | /***************************************************************************** | ||
187 | * | ||
188 | * FUNCTION: pcibios_map_irq | ||
189 | * _________________________________________________________________________ | ||
190 | * | ||
191 | * DESCRIPTION: Perform board supplied PCI IRQ mapping routine. | ||
192 | * | ||
193 | * INPUTS: dev - unused | ||
194 | * slot - PCI slot. Identified by which bit of the AD[] bus | ||
195 | * drives the IDSEL line. AD[10] is 0, AD[31] is | ||
196 | * slot 21. | ||
197 | * pin - numbered using the scheme of the PCI_INTERRUPT_PIN | ||
198 | * field of the config header. | ||
199 | * | ||
200 | * OUTPUTS: none | ||
201 | * | ||
202 | * RETURNS: IRQ number | ||
203 | * | ||
204 | ****************************************************************************/ | ||
205 | int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | ||
206 | { | ||
207 | #if !defined(CONFIG_PMC_MSP7120_GW) && !defined(CONFIG_PMC_MSP7120_EVAL) | ||
208 | printk(KERN_WARNING "PCI: unknown board, no PCI IRQs assigned.\n"); | ||
209 | #endif | ||
210 | printk(KERN_WARNING "PCI: irq_tab returned %d for slot=%d pin=%d\n", | ||
211 | irq_tab[slot][pin], slot, pin); | ||
212 | |||
213 | return irq_tab[slot][pin]; | ||
214 | } | ||
215 | |||
216 | #endif /* CONFIG_PCI */ | ||
diff --git a/arch/mips/pci/fixup-pnx8550.c b/arch/mips/pci/fixup-pnx8550.c index 50546dab6689..96857ac63bf5 100644 --- a/arch/mips/pci/fixup-pnx8550.c +++ b/arch/mips/pci/fixup-pnx8550.c | |||
@@ -45,7 +45,7 @@ void __init pcibios_fixup(void) | |||
45 | /* nothing to do here */ | 45 | /* nothing to do here */ |
46 | } | 46 | } |
47 | 47 | ||
48 | int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 48 | int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
49 | { | 49 | { |
50 | return pnx8550_irq_tab[slot][pin]; | 50 | return pnx8550_irq_tab[slot][pin]; |
51 | } | 51 | } |
diff --git a/arch/mips/pci/fixup-rbtx4927.c b/arch/mips/pci/fixup-rbtx4927.c index ceeb1860895a..3cdbecb8e714 100644 --- a/arch/mips/pci/fixup-rbtx4927.c +++ b/arch/mips/pci/fixup-rbtx4927.c | |||
@@ -119,7 +119,7 @@ int pci_get_irq(struct pci_dev *dev, int pin) | |||
119 | return irq; | 119 | return irq; |
120 | } | 120 | } |
121 | 121 | ||
122 | int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 122 | int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
123 | { | 123 | { |
124 | unsigned char irq; | 124 | unsigned char irq; |
125 | 125 | ||
diff --git a/arch/mips/pci/fixup-sni.c b/arch/mips/pci/fixup-sni.c index 36e5fb1b3786..a45bedd17233 100644 --- a/arch/mips/pci/fixup-sni.c +++ b/arch/mips/pci/fixup-sni.c | |||
@@ -120,7 +120,7 @@ static inline int is_rm300_revd(void) | |||
120 | return (csmsr & 0xa0) == 0x20; | 120 | return (csmsr & 0xa0) == 0x20; |
121 | } | 121 | } |
122 | 122 | ||
123 | int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 123 | int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
124 | { | 124 | { |
125 | switch (sni_brd_type) { | 125 | switch (sni_brd_type) { |
126 | case SNI_BRD_PCI_TOWER: | 126 | case SNI_BRD_PCI_TOWER: |
diff --git a/arch/mips/pci/fixup-tb0219.c b/arch/mips/pci/fixup-tb0219.c index 734f2b71e164..720a2b720c5c 100644 --- a/arch/mips/pci/fixup-tb0219.c +++ b/arch/mips/pci/fixup-tb0219.c | |||
@@ -23,7 +23,7 @@ | |||
23 | 23 | ||
24 | #include <asm/vr41xx/tb0219.h> | 24 | #include <asm/vr41xx/tb0219.h> |
25 | 25 | ||
26 | int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 26 | int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
27 | { | 27 | { |
28 | int irq = -1; | 28 | int irq = -1; |
29 | 29 | ||
diff --git a/arch/mips/pci/fixup-tb0226.c b/arch/mips/pci/fixup-tb0226.c index c9e7cb4361a1..e3eedf4bf9bd 100644 --- a/arch/mips/pci/fixup-tb0226.c +++ b/arch/mips/pci/fixup-tb0226.c | |||
@@ -23,7 +23,7 @@ | |||
23 | #include <asm/vr41xx/giu.h> | 23 | #include <asm/vr41xx/giu.h> |
24 | #include <asm/vr41xx/tb0226.h> | 24 | #include <asm/vr41xx/tb0226.h> |
25 | 25 | ||
26 | int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 26 | int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
27 | { | 27 | { |
28 | int irq = -1; | 28 | int irq = -1; |
29 | 29 | ||
diff --git a/arch/mips/pci/fixup-tb0287.c b/arch/mips/pci/fixup-tb0287.c index fbe6bcb28199..267ab3dc3d42 100644 --- a/arch/mips/pci/fixup-tb0287.c +++ b/arch/mips/pci/fixup-tb0287.c | |||
@@ -22,7 +22,7 @@ | |||
22 | 22 | ||
23 | #include <asm/vr41xx/tb0287.h> | 23 | #include <asm/vr41xx/tb0287.h> |
24 | 24 | ||
25 | int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 25 | int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
26 | { | 26 | { |
27 | unsigned char bus; | 27 | unsigned char bus; |
28 | int irq = -1; | 28 | int irq = -1; |
diff --git a/arch/mips/pci/fixup-tx4938.c b/arch/mips/pci/fixup-tx4938.c index f455520ada88..2485f47dfe6f 100644 --- a/arch/mips/pci/fixup-tx4938.c +++ b/arch/mips/pci/fixup-tx4938.c | |||
@@ -69,7 +69,7 @@ int pci_get_irq(struct pci_dev *dev, int pin) | |||
69 | return irq; | 69 | return irq; |
70 | } | 70 | } |
71 | 71 | ||
72 | int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 72 | int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
73 | { | 73 | { |
74 | unsigned char irq = 0; | 74 | unsigned char irq = 0; |
75 | 75 | ||
diff --git a/arch/mips/pci/fixup-vr4133.c b/arch/mips/pci/fixup-vr4133.c index a8d9d22b13df..de5e5f6bbf4c 100644 --- a/arch/mips/pci/fixup-vr4133.c +++ b/arch/mips/pci/fixup-vr4133.c | |||
@@ -169,7 +169,7 @@ void i8259_init(void) | |||
169 | } | 169 | } |
170 | #endif | 170 | #endif |
171 | 171 | ||
172 | int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 172 | int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
173 | { | 173 | { |
174 | extern int pci_probe_only; | 174 | extern int pci_probe_only; |
175 | pci_probe_only = 1; | 175 | pci_probe_only = 1; |
diff --git a/arch/mips/pci/fixup-wrppmc.c b/arch/mips/pci/fixup-wrppmc.c index 3357c1300bb1..3d277549d5df 100644 --- a/arch/mips/pci/fixup-wrppmc.c +++ b/arch/mips/pci/fixup-wrppmc.c | |||
@@ -25,7 +25,7 @@ static char pci_irq_tab[PCI_SLOT_MAXNR][5] __initdata = { | |||
25 | [6] = {0, WRPPMC_PCI_INTA_IRQ, 0, 0, 0}, | 25 | [6] = {0, WRPPMC_PCI_INTA_IRQ, 0, 0, 0}, |
26 | }; | 26 | }; |
27 | 27 | ||
28 | int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 28 | int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
29 | { | 29 | { |
30 | return pci_irq_tab[slot][pin]; | 30 | return pci_irq_tab[slot][pin]; |
31 | } | 31 | } |
diff --git a/arch/mips/pci/fixup-yosemite.c b/arch/mips/pci/fixup-yosemite.c index 81d77a587a51..fdafb13a793b 100644 --- a/arch/mips/pci/fixup-yosemite.c +++ b/arch/mips/pci/fixup-yosemite.c | |||
@@ -26,7 +26,7 @@ | |||
26 | #include <linux/init.h> | 26 | #include <linux/init.h> |
27 | #include <linux/pci.h> | 27 | #include <linux/pci.h> |
28 | 28 | ||
29 | int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 29 | int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
30 | { | 30 | { |
31 | if (pin == 0) | 31 | if (pin == 0) |
32 | return -1; | 32 | return -1; |
diff --git a/arch/mips/pci/ops-bonito64.c b/arch/mips/pci/ops-bonito64.c index dc35270b65a2..f742c51acf0d 100644 --- a/arch/mips/pci/ops-bonito64.c +++ b/arch/mips/pci/ops-bonito64.c | |||
@@ -29,83 +29,60 @@ | |||
29 | #define PCI_ACCESS_READ 0 | 29 | #define PCI_ACCESS_READ 0 |
30 | #define PCI_ACCESS_WRITE 1 | 30 | #define PCI_ACCESS_WRITE 1 |
31 | 31 | ||
32 | /* | 32 | #ifdef CONFIG_LEMOTE_FULONG |
33 | * PCI configuration cycle AD bus definition | 33 | #define CFG_SPACE_REG(offset) (void *)CKSEG1ADDR(BONITO_PCICFG_BASE | (offset)) |
34 | */ | 34 | #define ID_SEL_BEGIN 11 |
35 | /* Type 0 */ | 35 | #else |
36 | #define PCI_CFG_TYPE0_REG_SHF 0 | 36 | #define CFG_SPACE_REG(offset) (void *)CKSEG1ADDR(_pcictrl_bonito_pcicfg + (offset)) |
37 | #define PCI_CFG_TYPE0_FUNC_SHF 8 | 37 | #define ID_SEL_BEGIN 10 |
38 | #endif | ||
39 | #define MAX_DEV_NUM (31 - ID_SEL_BEGIN) | ||
38 | 40 | ||
39 | /* Type 1 */ | ||
40 | #define PCI_CFG_TYPE1_REG_SHF 0 | ||
41 | #define PCI_CFG_TYPE1_FUNC_SHF 8 | ||
42 | #define PCI_CFG_TYPE1_DEV_SHF 11 | ||
43 | #define PCI_CFG_TYPE1_BUS_SHF 16 | ||
44 | 41 | ||
45 | static int bonito64_pcibios_config_access(unsigned char access_type, | 42 | static int bonito64_pcibios_config_access(unsigned char access_type, |
46 | struct pci_bus *bus, | 43 | struct pci_bus *bus, |
47 | unsigned int devfn, int where, | 44 | unsigned int devfn, int where, |
48 | u32 * data) | 45 | u32 * data) |
49 | { | 46 | { |
50 | unsigned char busnum = bus->number; | 47 | u32 busnum = bus->number; |
48 | u32 addr, type; | ||
51 | u32 dummy; | 49 | u32 dummy; |
52 | u64 pci_addr; | 50 | void *addrp; |
53 | 51 | int device = PCI_SLOT(devfn); | |
54 | /* Algorithmics Bonito64 system controller. */ | 52 | int function = PCI_FUNC(devfn); |
53 | int reg = where & ~3; | ||
55 | 54 | ||
56 | if ((busnum == 0) && (PCI_SLOT(devfn) > 21)) { | ||
57 | /* We number bus 0 devices from 0..21 */ | ||
58 | return -1; | ||
59 | } | ||
60 | |||
61 | /* Clear cause register bits */ | ||
62 | BONITO_PCICMD |= (BONITO_PCICMD_MABORT_CLR | | ||
63 | BONITO_PCICMD_MTABORT_CLR); | ||
64 | |||
65 | /* | ||
66 | * Setup pattern to be used as PCI "address" for | ||
67 | * Type 0 cycle | ||
68 | */ | ||
69 | if (busnum == 0) { | 55 | if (busnum == 0) { |
70 | /* IDSEL */ | 56 | /* Type 0 configuration for onboard PCI bus */ |
71 | pci_addr = (u64) 1 << (PCI_SLOT(devfn) + 10); | 57 | if (device > MAX_DEV_NUM) |
72 | } else { | 58 | return -1; |
73 | /* Bus number */ | ||
74 | pci_addr = busnum << PCI_CFG_TYPE1_BUS_SHF; | ||
75 | |||
76 | /* Device number */ | ||
77 | pci_addr |= | ||
78 | PCI_SLOT(devfn) << PCI_CFG_TYPE1_DEV_SHF; | ||
79 | } | ||
80 | |||
81 | /* Function (same for Type 0/1) */ | ||
82 | pci_addr |= PCI_FUNC(devfn) << PCI_CFG_TYPE0_FUNC_SHF; | ||
83 | |||
84 | /* Register number (same for Type 0/1) */ | ||
85 | pci_addr |= (where & ~0x3) << PCI_CFG_TYPE0_REG_SHF; | ||
86 | 59 | ||
87 | if (busnum == 0) { | 60 | addr = (1 << (device + ID_SEL_BEGIN)) | (function << 8) | reg; |
88 | /* Type 0 */ | 61 | type = 0; |
89 | BONITO_PCIMAP_CFG = pci_addr >> 16; | ||
90 | } else { | 62 | } else { |
91 | /* Type 1 */ | 63 | /* Type 1 configuration for offboard PCI bus */ |
92 | BONITO_PCIMAP_CFG = (pci_addr >> 16) | 0x10000; | 64 | addr = (busnum << 16) | (device << 11) | (function << 8) | reg; |
65 | type = 0x10000; | ||
93 | } | 66 | } |
94 | 67 | ||
95 | pci_addr &= 0xffff; | 68 | /* Clear aborts */ |
69 | BONITO_PCICMD |= BONITO_PCICMD_MABORT_CLR | BONITO_PCICMD_MTABORT_CLR; | ||
70 | |||
71 | BONITO_PCIMAP_CFG = (addr >> 16) | type; | ||
96 | 72 | ||
97 | /* Flush Bonito register block */ | 73 | /* Flush Bonito register block */ |
98 | dummy = BONITO_PCIMAP_CFG; | 74 | dummy = BONITO_PCIMAP_CFG; |
99 | iob(); /* sync */ | 75 | mmiowb(); |
100 | 76 | ||
101 | /* Perform access */ | 77 | addrp = CFG_SPACE_REG(addr & 0xffff); |
102 | if (access_type == PCI_ACCESS_WRITE) { | 78 | if (access_type == PCI_ACCESS_WRITE) { |
103 | *(volatile u32 *) (_pcictrl_bonito_pcicfg + (u32)pci_addr) = *(u32 *) data; | 79 | writel(cpu_to_le32(*data), addrp); |
104 | 80 | #ifndef CONFIG_LEMOTE_FULONG | |
105 | /* Wait till done */ | 81 | /* Wait till done */ |
106 | while (BONITO_PCIMSTAT & 0xF); | 82 | while (BONITO_PCIMSTAT & 0xF); |
83 | #endif | ||
107 | } else { | 84 | } else { |
108 | *(u32 *) data = *(volatile u32 *) (_pcictrl_bonito_pcicfg + (u32)pci_addr); | 85 | *data = le32_to_cpu(readl(addrp)); |
109 | } | 86 | } |
110 | 87 | ||
111 | /* Detect Master/Target abort */ | 88 | /* Detect Master/Target abort */ |
@@ -121,6 +98,7 @@ static int bonito64_pcibios_config_access(unsigned char access_type, | |||
121 | } | 98 | } |
122 | 99 | ||
123 | return 0; | 100 | return 0; |
101 | |||
124 | } | 102 | } |
125 | 103 | ||
126 | 104 | ||
diff --git a/arch/mips/pci/ops-marvell.c b/arch/mips/pci/ops-marvell.c deleted file mode 100644 index 1ac5c59199d1..000000000000 --- a/arch/mips/pci/ops-marvell.c +++ /dev/null | |||
@@ -1,93 +0,0 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 2003, 2004 Ralf Baechle (ralf@linux-mips.org) | ||
7 | */ | ||
8 | #include <linux/kernel.h> | ||
9 | #include <linux/types.h> | ||
10 | #include <linux/pci.h> | ||
11 | |||
12 | #include <asm/marvell.h> | ||
13 | |||
14 | static int mv_read_config(struct pci_bus *bus, unsigned int devfn, | ||
15 | int where, int size, u32 * val) | ||
16 | { | ||
17 | struct mv_pci_controller *mvbc = bus->sysdata; | ||
18 | unsigned long address_reg, data_reg; | ||
19 | u32 address; | ||
20 | |||
21 | address_reg = mvbc->config_addr; | ||
22 | data_reg = mvbc->config_vreg; | ||
23 | |||
24 | /* Accessing device 31 crashes those Marvells. Since years. | ||
25 | Will they ever make sane controllers ... */ | ||
26 | if (PCI_SLOT(devfn) == 31) | ||
27 | return PCIBIOS_DEVICE_NOT_FOUND; | ||
28 | |||
29 | address = (bus->number << 16) | (devfn << 8) | | ||
30 | (where & 0xfc) | 0x80000000; | ||
31 | |||
32 | /* start the configuration cycle */ | ||
33 | MV_WRITE(address_reg, address); | ||
34 | |||
35 | switch (size) { | ||
36 | case 1: | ||
37 | *val = MV_READ_8(data_reg + (where & 0x3)); | ||
38 | break; | ||
39 | |||
40 | case 2: | ||
41 | *val = MV_READ_16(data_reg + (where & 0x3)); | ||
42 | break; | ||
43 | |||
44 | case 4: | ||
45 | *val = MV_READ(data_reg); | ||
46 | break; | ||
47 | } | ||
48 | |||
49 | return PCIBIOS_SUCCESSFUL; | ||
50 | } | ||
51 | |||
52 | static int mv_write_config(struct pci_bus *bus, unsigned int devfn, | ||
53 | int where, int size, u32 val) | ||
54 | { | ||
55 | struct mv_pci_controller *mvbc = bus->sysdata; | ||
56 | unsigned long address_reg, data_reg; | ||
57 | u32 address; | ||
58 | |||
59 | address_reg = mvbc->config_addr; | ||
60 | data_reg = mvbc->config_vreg; | ||
61 | |||
62 | /* Accessing device 31 crashes those Marvells. Since years. | ||
63 | Will they ever make sane controllers ... */ | ||
64 | if (PCI_SLOT(devfn) == 31) | ||
65 | return PCIBIOS_DEVICE_NOT_FOUND; | ||
66 | |||
67 | address = (bus->number << 16) | (devfn << 8) | | ||
68 | (where & 0xfc) | 0x80000000; | ||
69 | |||
70 | /* start the configuration cycle */ | ||
71 | MV_WRITE(address_reg, address); | ||
72 | |||
73 | switch (size) { | ||
74 | case 1: | ||
75 | MV_WRITE_8(data_reg + (where & 0x3), val); | ||
76 | break; | ||
77 | |||
78 | case 2: | ||
79 | MV_WRITE_16(data_reg + (where & 0x3), val); | ||
80 | break; | ||
81 | |||
82 | case 4: | ||
83 | MV_WRITE(data_reg, val); | ||
84 | break; | ||
85 | } | ||
86 | |||
87 | return PCIBIOS_SUCCESSFUL; | ||
88 | } | ||
89 | |||
90 | struct pci_ops mv_pci_ops = { | ||
91 | .read = mv_read_config, | ||
92 | .write = mv_write_config | ||
93 | }; | ||
diff --git a/arch/mips/pci/ops-nile4.c b/arch/mips/pci/ops-nile4.c deleted file mode 100644 index a8d38dc8c504..000000000000 --- a/arch/mips/pci/ops-nile4.c +++ /dev/null | |||
@@ -1,147 +0,0 @@ | |||
1 | #include <linux/kernel.h> | ||
2 | #include <linux/init.h> | ||
3 | #include <linux/pci.h> | ||
4 | #include <asm/bootinfo.h> | ||
5 | |||
6 | #include <asm/lasat/lasat.h> | ||
7 | #include <asm/gt64120.h> | ||
8 | #include <asm/nile4.h> | ||
9 | |||
10 | #define PCI_ACCESS_READ 0 | ||
11 | #define PCI_ACCESS_WRITE 1 | ||
12 | |||
13 | #define LO(reg) (reg / 4) | ||
14 | #define HI(reg) (reg / 4 + 1) | ||
15 | |||
16 | volatile unsigned long *const vrc_pciregs = (void *) Vrc5074_BASE; | ||
17 | |||
18 | static DEFINE_SPINLOCK(nile4_pci_lock); | ||
19 | |||
20 | static int nile4_pcibios_config_access(unsigned char access_type, | ||
21 | struct pci_bus *bus, unsigned int devfn, int where, u32 * val) | ||
22 | { | ||
23 | unsigned char busnum = bus->number; | ||
24 | u32 adr, mask, err; | ||
25 | |||
26 | if ((busnum == 0) && (PCI_SLOT(devfn) > 8)) | ||
27 | /* The addressing scheme chosen leaves room for just | ||
28 | * 8 devices on the first busnum (besides the PCI | ||
29 | * controller itself) */ | ||
30 | return PCIBIOS_DEVICE_NOT_FOUND; | ||
31 | |||
32 | if ((busnum == 0) && (devfn == PCI_DEVFN(0, 0))) { | ||
33 | /* Access controller registers directly */ | ||
34 | if (access_type == PCI_ACCESS_WRITE) { | ||
35 | vrc_pciregs[(0x200 + where) >> 2] = *val; | ||
36 | } else { | ||
37 | *val = vrc_pciregs[(0x200 + where) >> 2]; | ||
38 | } | ||
39 | return PCIBIOS_SUCCESSFUL; | ||
40 | } | ||
41 | |||
42 | /* Temporarily map PCI Window 1 to config space */ | ||
43 | mask = vrc_pciregs[LO(NILE4_PCIINIT1)]; | ||
44 | vrc_pciregs[LO(NILE4_PCIINIT1)] = 0x0000001a | (busnum ? 0x200 : 0); | ||
45 | |||
46 | /* Clear PCI Error register. This also clears the Error Type | ||
47 | * bits in the Control register */ | ||
48 | vrc_pciregs[LO(NILE4_PCIERR)] = 0; | ||
49 | vrc_pciregs[HI(NILE4_PCIERR)] = 0; | ||
50 | |||
51 | /* Setup address */ | ||
52 | if (busnum == 0) | ||
53 | adr = | ||
54 | KSEG1ADDR(PCI_WINDOW1) + | ||
55 | ((1 << (PCI_SLOT(devfn) + 15)) | (PCI_FUNC(devfn) << 8) | ||
56 | | (where & ~3)); | ||
57 | else | ||
58 | adr = KSEG1ADDR(PCI_WINDOW1) | (busnum << 16) | (devfn << 8) | | ||
59 | (where & ~3); | ||
60 | |||
61 | if (access_type == PCI_ACCESS_WRITE) | ||
62 | *(u32 *) adr = *val; | ||
63 | else | ||
64 | *val = *(u32 *) adr; | ||
65 | |||
66 | /* Check for master or target abort */ | ||
67 | err = (vrc_pciregs[HI(NILE4_PCICTRL)] >> 5) & 0x7; | ||
68 | |||
69 | /* Restore PCI Window 1 */ | ||
70 | vrc_pciregs[LO(NILE4_PCIINIT1)] = mask; | ||
71 | |||
72 | if (err) | ||
73 | return PCIBIOS_DEVICE_NOT_FOUND; | ||
74 | |||
75 | return PCIBIOS_SUCCESSFUL; | ||
76 | } | ||
77 | |||
78 | static int nile4_pcibios_read(struct pci_bus *bus, unsigned int devfn, | ||
79 | int where, int size, u32 * val) | ||
80 | { | ||
81 | unsigned long flags; | ||
82 | u32 data = 0; | ||
83 | int err; | ||
84 | |||
85 | if ((size == 2) && (where & 1)) | ||
86 | return PCIBIOS_BAD_REGISTER_NUMBER; | ||
87 | else if ((size == 4) && (where & 3)) | ||
88 | return PCIBIOS_BAD_REGISTER_NUMBER; | ||
89 | |||
90 | spin_lock_irqsave(&nile4_pci_lock, flags); | ||
91 | err = nile4_pcibios_config_access(PCI_ACCESS_READ, bus, devfn, where, | ||
92 | &data); | ||
93 | spin_unlock_irqrestore(&nile4_pci_lock, flags); | ||
94 | |||
95 | if (err) | ||
96 | return err; | ||
97 | |||
98 | if (size == 1) | ||
99 | *val = (data >> ((where & 3) << 3)) & 0xff; | ||
100 | else if (size == 2) | ||
101 | *val = (data >> ((where & 3) << 3)) & 0xffff; | ||
102 | else | ||
103 | *val = data; | ||
104 | |||
105 | return PCIBIOS_SUCCESSFUL; | ||
106 | } | ||
107 | |||
108 | static int nile4_pcibios_write(struct pci_bus *bus, unsigned int devfn, | ||
109 | int where, int size, u32 val) | ||
110 | { | ||
111 | unsigned long flags; | ||
112 | u32 data = 0; | ||
113 | int err; | ||
114 | |||
115 | if ((size == 2) && (where & 1)) | ||
116 | return PCIBIOS_BAD_REGISTER_NUMBER; | ||
117 | else if ((size == 4) && (where & 3)) | ||
118 | return PCIBIOS_BAD_REGISTER_NUMBER; | ||
119 | |||
120 | spin_lock_irqsave(&nile4_pci_lock, flags); | ||
121 | err = nile4_pcibios_config_access(PCI_ACCESS_READ, bus, devfn, where, | ||
122 | &data); | ||
123 | spin_unlock_irqrestore(&nile4_pci_lock, flags); | ||
124 | |||
125 | if (err) | ||
126 | return err; | ||
127 | |||
128 | if (size == 1) | ||
129 | data = (data & ~(0xff << ((where & 3) << 3))) | | ||
130 | (val << ((where & 3) << 3)); | ||
131 | else if (size == 2) | ||
132 | data = (data & ~(0xffff << ((where & 3) << 3))) | | ||
133 | (val << ((where & 3) << 3)); | ||
134 | else | ||
135 | data = val; | ||
136 | |||
137 | if (nile4_pcibios_config_access | ||
138 | (PCI_ACCESS_WRITE, bus, devfn, where, &data)) | ||
139 | return -1; | ||
140 | |||
141 | return PCIBIOS_SUCCESSFUL; | ||
142 | } | ||
143 | |||
144 | struct pci_ops nile4_pci_ops = { | ||
145 | .read = nile4_pcibios_read, | ||
146 | .write = nile4_pcibios_write, | ||
147 | }; | ||
diff --git a/arch/mips/pci/ops-pmcmsp.c b/arch/mips/pci/ops-pmcmsp.c new file mode 100644 index 000000000000..09fa007c1d1b --- /dev/null +++ b/arch/mips/pci/ops-pmcmsp.c | |||
@@ -0,0 +1,994 @@ | |||
1 | /* | ||
2 | * PMC-Sierra MSP board specific pci_ops | ||
3 | * | ||
4 | * Copyright 2001 MontaVista Software Inc. | ||
5 | * Copyright 2005-2007 PMC-Sierra, Inc | ||
6 | * | ||
7 | * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net | ||
8 | * | ||
9 | * Much of the code is derived from the original DDB5074 port by | ||
10 | * Geert Uytterhoeven <geert@sonycom.com> | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or modify it | ||
13 | * under the terms of the GNU General Public License as published by the | ||
14 | * Free Software Foundation; either version 2 of the License, or (at your | ||
15 | * option) any later version. | ||
16 | * | ||
17 | */ | ||
18 | |||
19 | #define PCI_COUNTERS 1 | ||
20 | |||
21 | #include <linux/types.h> | ||
22 | #include <linux/pci.h> | ||
23 | #include <linux/interrupt.h> | ||
24 | |||
25 | #if defined(CONFIG_PROC_FS) && defined(PCI_COUNTERS) | ||
26 | #include <linux/proc_fs.h> | ||
27 | #include <linux/seq_file.h> | ||
28 | #endif /* CONFIG_PROC_FS && PCI_COUNTERS */ | ||
29 | |||
30 | #include <linux/kernel.h> | ||
31 | #include <linux/init.h> | ||
32 | |||
33 | #include <asm/byteorder.h> | ||
34 | #if defined(CONFIG_PMC_MSP7120_GW) || defined(CONFIG_PMC_MSP7120_EVAL) | ||
35 | #include <asm/mipsmtregs.h> | ||
36 | #endif | ||
37 | |||
38 | #include <msp_prom.h> | ||
39 | #include <msp_cic_int.h> | ||
40 | #include <msp_pci.h> | ||
41 | #include <msp_regs.h> | ||
42 | #include <msp_regops.h> | ||
43 | |||
44 | #define PCI_ACCESS_READ 0 | ||
45 | #define PCI_ACCESS_WRITE 1 | ||
46 | |||
47 | #if defined(CONFIG_PROC_FS) && defined(PCI_COUNTERS) | ||
48 | static char proc_init; | ||
49 | extern struct proc_dir_entry *proc_bus_pci_dir; | ||
50 | unsigned int pci_int_count[32]; | ||
51 | |||
52 | static void pci_proc_init(void); | ||
53 | |||
54 | /***************************************************************************** | ||
55 | * | ||
56 | * FUNCTION: read_msp_pci_counts | ||
57 | * _________________________________________________________________________ | ||
58 | * | ||
59 | * DESCRIPTION: Prints the count of how many times each PCI | ||
60 | * interrupt has asserted. Can be invoked by the | ||
61 | * /proc filesystem. | ||
62 | * | ||
63 | * INPUTS: page - part of STDOUT calculation | ||
64 | * off - part of STDOUT calculation | ||
65 | * count - part of STDOUT calculation | ||
66 | * data - unused | ||
67 | * | ||
68 | * OUTPUTS: start - new start location | ||
69 | * eof - end of file pointer | ||
70 | * | ||
71 | * RETURNS: len - STDOUT length | ||
72 | * | ||
73 | ****************************************************************************/ | ||
74 | static int read_msp_pci_counts(char *page, char **start, off_t off, | ||
75 | int count, int *eof, void *data) | ||
76 | { | ||
77 | int i; | ||
78 | int len = 0; | ||
79 | unsigned int intcount, total = 0; | ||
80 | |||
81 | for (i = 0; i < 32; ++i) { | ||
82 | intcount = pci_int_count[i]; | ||
83 | if (intcount != 0) { | ||
84 | len += sprintf(page + len, "[%d] = %u\n", i, intcount); | ||
85 | total += intcount; | ||
86 | } | ||
87 | } | ||
88 | |||
89 | len += sprintf(page + len, "total = %u\n", total); | ||
90 | if (len <= off+count) | ||
91 | *eof = 1; | ||
92 | |||
93 | *start = page + off; | ||
94 | len -= off; | ||
95 | if (len > count) | ||
96 | len = count; | ||
97 | if (len < 0) | ||
98 | len = 0; | ||
99 | |||
100 | return len; | ||
101 | } | ||
102 | |||
103 | /***************************************************************************** | ||
104 | * | ||
105 | * FUNCTION: gen_pci_cfg_wr | ||
106 | * _________________________________________________________________________ | ||
107 | * | ||
108 | * DESCRIPTION: Generates a configuration write cycle for debug purposes. | ||
109 | * The IDSEL line asserted and location and data written are | ||
110 | * immaterial. Just want to be able to prove that a | ||
111 | * configuration write can be correctly generated on the | ||
112 | * PCI bus. Intent is that this function by invocable from | ||
113 | * the /proc filesystem. | ||
114 | * | ||
115 | * INPUTS: page - part of STDOUT calculation | ||
116 | * off - part of STDOUT calculation | ||
117 | * count - part of STDOUT calculation | ||
118 | * data - unused | ||
119 | * | ||
120 | * OUTPUTS: start - new start location | ||
121 | * eof - end of file pointer | ||
122 | * | ||
123 | * RETURNS: len - STDOUT length | ||
124 | * | ||
125 | ****************************************************************************/ | ||
126 | static int gen_pci_cfg_wr(char *page, char **start, off_t off, | ||
127 | int count, int *eof, void *data) | ||
128 | { | ||
129 | unsigned char where = 0; /* Write to static Device/Vendor ID */ | ||
130 | unsigned char bus_num = 0; /* Bus 0 */ | ||
131 | unsigned char dev_fn = 0xF; /* Arbitrary device number */ | ||
132 | u32 wr_data = 0xFF00AA00; /* Arbitrary data */ | ||
133 | struct msp_pci_regs *preg = (void *)PCI_BASE_REG; | ||
134 | int len = 0; | ||
135 | unsigned long value; | ||
136 | int intr; | ||
137 | |||
138 | len += sprintf(page + len, "PMC MSP PCI: Beginning\n"); | ||
139 | |||
140 | if (proc_init == 0) { | ||
141 | pci_proc_init(); | ||
142 | proc_init = ~0; | ||
143 | } | ||
144 | |||
145 | len += sprintf(page + len, "PMC MSP PCI: Before Cfg Wr\n"); | ||
146 | |||
147 | /* | ||
148 | * Generate PCI Configuration Write Cycle | ||
149 | */ | ||
150 | |||
151 | /* Clear cause register bits */ | ||
152 | preg->if_status = ~(BPCI_IFSTATUS_BC0F | BPCI_IFSTATUS_BC1F); | ||
153 | |||
154 | /* Setup address that is to appear on PCI bus */ | ||
155 | preg->config_addr = BPCI_CFGADDR_ENABLE | | ||
156 | (bus_num << BPCI_CFGADDR_BUSNUM_SHF) | | ||
157 | (dev_fn << BPCI_CFGADDR_FUNCTNUM_SHF) | | ||
158 | (where & 0xFC); | ||
159 | |||
160 | value = cpu_to_le32(wr_data); | ||
161 | |||
162 | /* Launch the PCI configuration write cycle */ | ||
163 | *PCI_CONFIG_SPACE_REG = value; | ||
164 | |||
165 | /* | ||
166 | * Check if the PCI configuration cycle (rd or wr) succeeded, by | ||
167 | * checking the status bits for errors like master or target abort. | ||
168 | */ | ||
169 | intr = preg->if_status; | ||
170 | |||
171 | len += sprintf(page + len, "PMC MSP PCI: After Cfg Wr\n"); | ||
172 | |||
173 | /* Handle STDOUT calculations */ | ||
174 | if (len <= off+count) | ||
175 | *eof = 1; | ||
176 | *start = page + off; | ||
177 | len -= off; | ||
178 | if (len > count) | ||
179 | len = count; | ||
180 | if (len < 0) | ||
181 | len = 0; | ||
182 | |||
183 | return len; | ||
184 | } | ||
185 | |||
186 | /***************************************************************************** | ||
187 | * | ||
188 | * FUNCTION: pci_proc_init | ||
189 | * _________________________________________________________________________ | ||
190 | * | ||
191 | * DESCRIPTION: Create entries in the /proc filesystem for debug access. | ||
192 | * | ||
193 | * INPUTS: none | ||
194 | * | ||
195 | * OUTPUTS: none | ||
196 | * | ||
197 | * RETURNS: none | ||
198 | * | ||
199 | ****************************************************************************/ | ||
200 | static void pci_proc_init(void) | ||
201 | { | ||
202 | create_proc_read_entry("pmc_msp_pci_rd_cnt", 0, NULL, | ||
203 | read_msp_pci_counts, NULL); | ||
204 | create_proc_read_entry("pmc_msp_pci_cfg_wr", 0, NULL, | ||
205 | gen_pci_cfg_wr, NULL); | ||
206 | } | ||
207 | #endif /* CONFIG_PROC_FS && PCI_COUNTERS */ | ||
208 | |||
209 | spinlock_t bpci_lock = SPIN_LOCK_UNLOCKED; | ||
210 | |||
211 | /***************************************************************************** | ||
212 | * | ||
213 | * STRUCT: pci_io_resource | ||
214 | * _________________________________________________________________________ | ||
215 | * | ||
216 | * DESCRIPTION: Defines the address range that pciauto() will use to | ||
217 | * assign to the I/O BARs of PCI devices. | ||
218 | * | ||
219 | * Use the start and end addresses of the MSP7120 PCI Host | ||
220 | * Controller I/O space, in the form that they appear on the | ||
221 | * PCI bus AFTER MSP7120 has performed address translation. | ||
222 | * | ||
223 | * For I/O accesses, MSP7120 ignores OATRAN and maps I/O | ||
224 | * accesses into the bottom 0xFFF region of address space, | ||
225 | * so that is the range to put into the pci_io_resource | ||
226 | * struct. | ||
227 | * | ||
228 | * In MSP4200, the start address was 0x04 instead of the | ||
229 | * expected 0x00. Will just assume there was a good reason | ||
230 | * for this! | ||
231 | * | ||
232 | * NOTES: Linux, by default, will assign I/O space to the lowest | ||
233 | * region of address space. Since MSP7120 and Linux, | ||
234 | * by default, have no offset in between how they map, the | ||
235 | * io_offset element of pci_controller struct should be set | ||
236 | * to zero. | ||
237 | * ELEMENTS: | ||
238 | * name - String used for a meaningful name. | ||
239 | * | ||
240 | * start - Start address of MSP7120's I/O space, as MSP7120 presents | ||
241 | * the address on the PCI bus. | ||
242 | * | ||
243 | * end - End address of MSP7120's I/O space, as MSP7120 presents | ||
244 | * the address on the PCI bus. | ||
245 | * | ||
246 | * flags - Attributes indicating the type of resource. In this case, | ||
247 | * indicate I/O space. | ||
248 | * | ||
249 | ****************************************************************************/ | ||
250 | static struct resource pci_io_resource = { | ||
251 | .name = "pci IO space", | ||
252 | .start = 0x04, | ||
253 | .end = 0x0FFF, | ||
254 | .flags = IORESOURCE_IO /* I/O space */ | ||
255 | }; | ||
256 | |||
257 | /***************************************************************************** | ||
258 | * | ||
259 | * STRUCT: pci_mem_resource | ||
260 | * _________________________________________________________________________ | ||
261 | * | ||
262 | * DESCRIPTION: Defines the address range that pciauto() will use to | ||
263 | * assign to the memory BARs of PCI devices. | ||
264 | * | ||
265 | * The .start and .end values are dependent upon how address | ||
266 | * translation is performed by the OATRAN regiser. | ||
267 | * | ||
268 | * The values to use for .start and .end are the values | ||
269 | * in the form they appear on the PCI bus AFTER MSP7120 has | ||
270 | * performed OATRAN address translation. | ||
271 | * | ||
272 | * ELEMENTS: | ||
273 | * name - String used for a meaningful name. | ||
274 | * | ||
275 | * start - Start address of MSP7120's memory space, as MSP7120 presents | ||
276 | * the address on the PCI bus. | ||
277 | * | ||
278 | * end - End address of MSP7120's memory space, as MSP7120 presents | ||
279 | * the address on the PCI bus. | ||
280 | * | ||
281 | * flags - Attributes indicating the type of resource. In this case, | ||
282 | * indicate memory space. | ||
283 | * | ||
284 | ****************************************************************************/ | ||
285 | static struct resource pci_mem_resource = { | ||
286 | .name = "pci memory space", | ||
287 | .start = MSP_PCI_SPACE_BASE, | ||
288 | .end = MSP_PCI_SPACE_END, | ||
289 | .flags = IORESOURCE_MEM /* memory space */ | ||
290 | }; | ||
291 | |||
292 | /***************************************************************************** | ||
293 | * | ||
294 | * FUNCTION: bpci_interrupt | ||
295 | * _________________________________________________________________________ | ||
296 | * | ||
297 | * DESCRIPTION: PCI status interrupt handler. Updates the count of how | ||
298 | * many times each status bit has been set, then clears | ||
299 | * the status bits. If the appropriate macros are defined, | ||
300 | * these counts can be viewed via the /proc filesystem. | ||
301 | * | ||
302 | * INPUTS: irq - unused | ||
303 | * dev_id - unused | ||
304 | * pt_regs - unused | ||
305 | * | ||
306 | * OUTPUTS: none | ||
307 | * | ||
308 | * RETURNS: PCIBIOS_SUCCESSFUL - success | ||
309 | * | ||
310 | ****************************************************************************/ | ||
311 | static int bpci_interrupt(int irq, void *dev_id) | ||
312 | { | ||
313 | struct msp_pci_regs *preg = (void *)PCI_BASE_REG; | ||
314 | unsigned int stat = preg->if_status; | ||
315 | |||
316 | #if defined(CONFIG_PROC_FS) && defined(PCI_COUNTERS) | ||
317 | int i; | ||
318 | for (i = 0; i < 32; ++i) { | ||
319 | if ((1 << i) & stat) | ||
320 | ++pci_int_count[i]; | ||
321 | } | ||
322 | #endif /* PROC_FS && PCI_COUNTERS */ | ||
323 | |||
324 | /* printk("PCI ISR: Status=%08X\n", stat); */ | ||
325 | |||
326 | /* write to clear all asserted interrupts */ | ||
327 | preg->if_status = stat; | ||
328 | |||
329 | return PCIBIOS_SUCCESSFUL; | ||
330 | } | ||
331 | |||
332 | /***************************************************************************** | ||
333 | * | ||
334 | * FUNCTION: msp_pcibios_config_access | ||
335 | * _________________________________________________________________________ | ||
336 | * | ||
337 | * DESCRIPTION: Performs a PCI configuration access (rd or wr), then | ||
338 | * checks that the access succeeded by querying MSP7120's | ||
339 | * PCI status bits. | ||
340 | * | ||
341 | * INPUTS: | ||
342 | * access_type - kind of PCI configuration cycle to perform | ||
343 | * (read or write). Legal values are | ||
344 | * PCI_ACCESS_WRITE and PCI_ACCESS_READ. | ||
345 | * | ||
346 | * bus - pointer to the bus number of the device to | ||
347 | * be targetted for the configuration cycle. | ||
348 | * The only element of the pci_bus structure | ||
349 | * used is bus->number. This argument determines | ||
350 | * if the configuration access will be Type 0 or | ||
351 | * Type 1. Since MSP7120 assumes itself to be the | ||
352 | * PCI Host, any non-zero bus->number generates | ||
353 | * a Type 1 access. | ||
354 | * | ||
355 | * devfn - this is an 8-bit field. The lower three bits | ||
356 | * specify the function number of the device to | ||
357 | * be targetted for the configuration cycle, with | ||
358 | * all three-bit combinations being legal. The | ||
359 | * upper five bits specify the device number, | ||
360 | * with legal values being 10 to 31. | ||
361 | * | ||
362 | * where - address within the Configuration Header | ||
363 | * space to access. | ||
364 | * | ||
365 | * data - for write accesses, contains the data to | ||
366 | * write. | ||
367 | * | ||
368 | * OUTPUTS: | ||
369 | * data - for read accesses, contains the value read. | ||
370 | * | ||
371 | * RETURNS: PCIBIOS_SUCCESSFUL - success | ||
372 | * -1 - access failure | ||
373 | * | ||
374 | ****************************************************************************/ | ||
375 | int msp_pcibios_config_access(unsigned char access_type, | ||
376 | struct pci_bus *bus, | ||
377 | unsigned int devfn, | ||
378 | unsigned char where, | ||
379 | u32 *data) | ||
380 | { | ||
381 | struct msp_pci_regs *preg = (void *)PCI_BASE_REG; | ||
382 | unsigned char bus_num = bus->number; | ||
383 | unsigned char dev_fn = (unsigned char)devfn; | ||
384 | unsigned long flags; | ||
385 | unsigned long intr; | ||
386 | unsigned long value; | ||
387 | static char pciirqflag; | ||
388 | #if defined(CONFIG_PMC_MSP7120_GW) || defined(CONFIG_PMC_MSP7120_EVAL) | ||
389 | unsigned int vpe_status; | ||
390 | #endif | ||
391 | |||
392 | #if defined(CONFIG_PROC_FS) && defined(PCI_COUNTERS) | ||
393 | if (proc_init == 0) { | ||
394 | pci_proc_init(); | ||
395 | proc_init = ~0; | ||
396 | } | ||
397 | #endif /* CONFIG_PROC_FS && PCI_COUNTERS */ | ||
398 | |||
399 | /* | ||
400 | * Just the first time this function invokes, allocate | ||
401 | * an interrupt line for PCI host status interrupts. The | ||
402 | * allocation assigns an interrupt handler to the interrupt. | ||
403 | */ | ||
404 | if (pciirqflag == 0) { | ||
405 | request_irq(MSP_INT_PCI,/* Hardcoded internal MSP7120 wiring */ | ||
406 | bpci_interrupt, | ||
407 | SA_SHIRQ | SA_INTERRUPT, | ||
408 | "PMC MSP PCI Host", | ||
409 | preg); | ||
410 | pciirqflag = ~0; | ||
411 | } | ||
412 | |||
413 | #if defined(CONFIG_PMC_MSP7120_GW) || defined(CONFIG_PMC_MSP7120_EVAL) | ||
414 | local_irq_save(flags); | ||
415 | vpe_status = dvpe(); | ||
416 | #else | ||
417 | spin_lock_irqsave(&bpci_lock, flags); | ||
418 | #endif | ||
419 | |||
420 | /* | ||
421 | * Clear PCI cause register bits. | ||
422 | * | ||
423 | * In Polo, the PCI Host had a dedicated DMA called the | ||
424 | * Block Copy (not to be confused with the general purpose Block | ||
425 | * Copy Engine block). There appear to have been special interrupts | ||
426 | * for this Block Copy, called Block Copy 0 Fault (BC0F) and | ||
427 | * Block Copy 1 Fault (BC1F). MSP4200 and MSP7120 don't have this | ||
428 | * dedicated Block Copy block, so these two interrupts are now | ||
429 | * marked reserved. In case the Block Copy is resurrected in a | ||
430 | * future design, maintain the code that treats these two interrupts | ||
431 | * specially. | ||
432 | * | ||
433 | * Write to clear all interrupts in the PCI status register, aside | ||
434 | * from BC0F and BC1F. | ||
435 | */ | ||
436 | preg->if_status = ~(BPCI_IFSTATUS_BC0F | BPCI_IFSTATUS_BC1F); | ||
437 | |||
438 | /* Setup address that is to appear on PCI bus */ | ||
439 | preg->config_addr = BPCI_CFGADDR_ENABLE | | ||
440 | (bus_num << BPCI_CFGADDR_BUSNUM_SHF) | | ||
441 | (dev_fn << BPCI_CFGADDR_FUNCTNUM_SHF) | | ||
442 | (where & 0xFC); | ||
443 | |||
444 | /* IF access is a PCI configuration write */ | ||
445 | if (access_type == PCI_ACCESS_WRITE) { | ||
446 | value = cpu_to_le32(*data); | ||
447 | *PCI_CONFIG_SPACE_REG = value; | ||
448 | } else { | ||
449 | /* ELSE access is a PCI configuration read */ | ||
450 | value = le32_to_cpu(*PCI_CONFIG_SPACE_REG); | ||
451 | *data = value; | ||
452 | } | ||
453 | |||
454 | /* | ||
455 | * Check if the PCI configuration cycle (rd or wr) succeeded, by | ||
456 | * checking the status bits for errors like master or target abort. | ||
457 | */ | ||
458 | intr = preg->if_status; | ||
459 | |||
460 | /* Clear config access */ | ||
461 | preg->config_addr = 0; | ||
462 | |||
463 | /* IF error occurred */ | ||
464 | if (intr & ~(BPCI_IFSTATUS_BC0F | BPCI_IFSTATUS_BC1F)) { | ||
465 | /* Clear status bits */ | ||
466 | preg->if_status = ~(BPCI_IFSTATUS_BC0F | BPCI_IFSTATUS_BC1F); | ||
467 | |||
468 | #if defined(CONFIG_PMC_MSP7120_GW) || defined(CONFIG_PMC_MSP7120_EVAL) | ||
469 | evpe(vpe_status); | ||
470 | local_irq_restore(flags); | ||
471 | #else | ||
472 | spin_unlock_irqrestore(&bpci_lock, flags); | ||
473 | #endif | ||
474 | |||
475 | return -1; | ||
476 | } | ||
477 | |||
478 | #if defined(CONFIG_PMC_MSP7120_GW) || defined(CONFIG_PMC_MSP7120_EVAL) | ||
479 | evpe(vpe_status); | ||
480 | local_irq_restore(flags); | ||
481 | #else | ||
482 | spin_unlock_irqrestore(&bpci_lock, flags); | ||
483 | #endif | ||
484 | |||
485 | return PCIBIOS_SUCCESSFUL; | ||
486 | } | ||
487 | |||
488 | /***************************************************************************** | ||
489 | * | ||
490 | * FUNCTION: msp_pcibios_read_config_byte | ||
491 | * _________________________________________________________________________ | ||
492 | * | ||
493 | * DESCRIPTION: Read a byte from PCI configuration address spac | ||
494 | * Since the hardware can't address 8 bit chunks | ||
495 | * directly, read a 32-bit chunk, then mask off extraneous | ||
496 | * bits. | ||
497 | * | ||
498 | * INPUTS bus - structure containing attributes for the PCI bus | ||
499 | * that the read is destined for. | ||
500 | * devfn - device/function combination that the read is | ||
501 | * destined for. | ||
502 | * where - register within the Configuration Header space | ||
503 | * to access. | ||
504 | * | ||
505 | * OUTPUTS val - read data | ||
506 | * | ||
507 | * RETURNS: PCIBIOS_SUCCESSFUL - success | ||
508 | * -1 - read access failure | ||
509 | * | ||
510 | ****************************************************************************/ | ||
511 | static int | ||
512 | msp_pcibios_read_config_byte(struct pci_bus *bus, | ||
513 | unsigned int devfn, | ||
514 | int where, | ||
515 | u32 *val) | ||
516 | { | ||
517 | u32 data = 0; | ||
518 | |||
519 | /* | ||
520 | * If the config access did not complete normally (e.g., underwent | ||
521 | * master abort) do the PCI compliant thing, which is to supply an | ||
522 | * all ones value. | ||
523 | */ | ||
524 | if (msp_pcibios_config_access(PCI_ACCESS_READ, bus, devfn, | ||
525 | where, &data)) { | ||
526 | *val = 0xFFFFFFFF; | ||
527 | return -1; | ||
528 | } | ||
529 | |||
530 | *val = (data >> ((where & 3) << 3)) & 0x0ff; | ||
531 | |||
532 | return PCIBIOS_SUCCESSFUL; | ||
533 | } | ||
534 | |||
535 | /***************************************************************************** | ||
536 | * | ||
537 | * FUNCTION: msp_pcibios_read_config_word | ||
538 | * _________________________________________________________________________ | ||
539 | * | ||
540 | * DESCRIPTION: Read a word (16 bits) from PCI configuration address space. | ||
541 | * Since the hardware can't address 16 bit chunks | ||
542 | * directly, read a 32-bit chunk, then mask off extraneous | ||
543 | * bits. | ||
544 | * | ||
545 | * INPUTS bus - structure containing attributes for the PCI bus | ||
546 | * that the read is destined for. | ||
547 | * devfn - device/function combination that the read is | ||
548 | * destined for. | ||
549 | * where - register within the Configuration Header space | ||
550 | * to access. | ||
551 | * | ||
552 | * OUTPUTS val - read data | ||
553 | * | ||
554 | * RETURNS: PCIBIOS_SUCCESSFUL - success | ||
555 | * PCIBIOS_BAD_REGISTER_NUMBER - bad register address | ||
556 | * -1 - read access failure | ||
557 | * | ||
558 | ****************************************************************************/ | ||
559 | static int | ||
560 | msp_pcibios_read_config_word(struct pci_bus *bus, | ||
561 | unsigned int devfn, | ||
562 | int where, | ||
563 | u32 *val) | ||
564 | { | ||
565 | u32 data = 0; | ||
566 | |||
567 | /* if (where & 1) */ /* Commented out non-compliant code. | ||
568 | * Should allow word access to configuration | ||
569 | * registers, with only exception being when | ||
570 | * the word access would wrap around into | ||
571 | * the next dword. | ||
572 | */ | ||
573 | if ((where & 3) == 3) { | ||
574 | *val = 0xFFFFFFFF; | ||
575 | return PCIBIOS_BAD_REGISTER_NUMBER; | ||
576 | } | ||
577 | |||
578 | /* | ||
579 | * If the config access did not complete normally (e.g., underwent | ||
580 | * master abort) do the PCI compliant thing, which is to supply an | ||
581 | * all ones value. | ||
582 | */ | ||
583 | if (msp_pcibios_config_access(PCI_ACCESS_READ, bus, devfn, | ||
584 | where, &data)) { | ||
585 | *val = 0xFFFFFFFF; | ||
586 | return -1; | ||
587 | } | ||
588 | |||
589 | *val = (data >> ((where & 3) << 3)) & 0x0ffff; | ||
590 | |||
591 | return PCIBIOS_SUCCESSFUL; | ||
592 | } | ||
593 | |||
594 | /***************************************************************************** | ||
595 | * | ||
596 | * FUNCTION: msp_pcibios_read_config_dword | ||
597 | * _________________________________________________________________________ | ||
598 | * | ||
599 | * DESCRIPTION: Read a double word (32 bits) from PCI configuration | ||
600 | * address space. | ||
601 | * | ||
602 | * INPUTS bus - structure containing attributes for the PCI bus | ||
603 | * that the read is destined for. | ||
604 | * devfn - device/function combination that the read is | ||
605 | * destined for. | ||
606 | * where - register within the Configuration Header space | ||
607 | * to access. | ||
608 | * | ||
609 | * OUTPUTS val - read data | ||
610 | * | ||
611 | * RETURNS: PCIBIOS_SUCCESSFUL - success | ||
612 | * PCIBIOS_BAD_REGISTER_NUMBER - bad register address | ||
613 | * -1 - read access failure | ||
614 | * | ||
615 | ****************************************************************************/ | ||
616 | static int | ||
617 | msp_pcibios_read_config_dword(struct pci_bus *bus, | ||
618 | unsigned int devfn, | ||
619 | int where, | ||
620 | u32 *val) | ||
621 | { | ||
622 | u32 data = 0; | ||
623 | |||
624 | /* Address must be dword aligned. */ | ||
625 | if (where & 3) { | ||
626 | *val = 0xFFFFFFFF; | ||
627 | return PCIBIOS_BAD_REGISTER_NUMBER; | ||
628 | } | ||
629 | |||
630 | /* | ||
631 | * If the config access did not complete normally (e.g., underwent | ||
632 | * master abort) do the PCI compliant thing, which is to supply an | ||
633 | * all ones value. | ||
634 | */ | ||
635 | if (msp_pcibios_config_access(PCI_ACCESS_READ, bus, devfn, | ||
636 | where, &data)) { | ||
637 | *val = 0xFFFFFFFF; | ||
638 | return -1; | ||
639 | } | ||
640 | |||
641 | *val = data; | ||
642 | |||
643 | return PCIBIOS_SUCCESSFUL; | ||
644 | } | ||
645 | |||
646 | /***************************************************************************** | ||
647 | * | ||
648 | * FUNCTION: msp_pcibios_write_config_byte | ||
649 | * _________________________________________________________________________ | ||
650 | * | ||
651 | * DESCRIPTION: Write a byte to PCI configuration address space. | ||
652 | * Since the hardware can't address 8 bit chunks | ||
653 | * directly, a read-modify-write is performed. | ||
654 | * | ||
655 | * INPUTS bus - structure containing attributes for the PCI bus | ||
656 | * that the write is destined for. | ||
657 | * devfn - device/function combination that the write is | ||
658 | * destined for. | ||
659 | * where - register within the Configuration Header space | ||
660 | * to access. | ||
661 | * val - value to write | ||
662 | * | ||
663 | * OUTPUTS none | ||
664 | * | ||
665 | * RETURNS: PCIBIOS_SUCCESSFUL - success | ||
666 | * -1 - write access failure | ||
667 | * | ||
668 | ****************************************************************************/ | ||
669 | static int | ||
670 | msp_pcibios_write_config_byte(struct pci_bus *bus, | ||
671 | unsigned int devfn, | ||
672 | int where, | ||
673 | u8 val) | ||
674 | { | ||
675 | u32 data = 0; | ||
676 | |||
677 | /* read config space */ | ||
678 | if (msp_pcibios_config_access(PCI_ACCESS_READ, bus, devfn, | ||
679 | where, &data)) | ||
680 | return -1; | ||
681 | |||
682 | /* modify the byte within the dword */ | ||
683 | data = (data & ~(0xff << ((where & 3) << 3))) | | ||
684 | (val << ((where & 3) << 3)); | ||
685 | |||
686 | /* write back the full dword */ | ||
687 | if (msp_pcibios_config_access(PCI_ACCESS_WRITE, bus, devfn, | ||
688 | where, &data)) | ||
689 | return -1; | ||
690 | |||
691 | return PCIBIOS_SUCCESSFUL; | ||
692 | } | ||
693 | |||
694 | /***************************************************************************** | ||
695 | * | ||
696 | * FUNCTION: msp_pcibios_write_config_word | ||
697 | * _________________________________________________________________________ | ||
698 | * | ||
699 | * DESCRIPTION: Write a word (16-bits) to PCI configuration address space. | ||
700 | * Since the hardware can't address 16 bit chunks | ||
701 | * directly, a read-modify-write is performed. | ||
702 | * | ||
703 | * INPUTS bus - structure containing attributes for the PCI bus | ||
704 | * that the write is destined for. | ||
705 | * devfn - device/function combination that the write is | ||
706 | * destined for. | ||
707 | * where - register within the Configuration Header space | ||
708 | * to access. | ||
709 | * val - value to write | ||
710 | * | ||
711 | * OUTPUTS none | ||
712 | * | ||
713 | * RETURNS: PCIBIOS_SUCCESSFUL - success | ||
714 | * PCIBIOS_BAD_REGISTER_NUMBER - bad register address | ||
715 | * -1 - write access failure | ||
716 | * | ||
717 | ****************************************************************************/ | ||
718 | static int | ||
719 | msp_pcibios_write_config_word(struct pci_bus *bus, | ||
720 | unsigned int devfn, | ||
721 | int where, | ||
722 | u16 val) | ||
723 | { | ||
724 | u32 data = 0; | ||
725 | |||
726 | /* Fixed non-compliance: if (where & 1) */ | ||
727 | if ((where & 3) == 3) | ||
728 | return PCIBIOS_BAD_REGISTER_NUMBER; | ||
729 | |||
730 | /* read config space */ | ||
731 | if (msp_pcibios_config_access(PCI_ACCESS_READ, bus, devfn, | ||
732 | where, &data)) | ||
733 | return -1; | ||
734 | |||
735 | /* modify the word within the dword */ | ||
736 | data = (data & ~(0xffff << ((where & 3) << 3))) | | ||
737 | (val << ((where & 3) << 3)); | ||
738 | |||
739 | /* write back the full dword */ | ||
740 | if (msp_pcibios_config_access(PCI_ACCESS_WRITE, bus, devfn, | ||
741 | where, &data)) | ||
742 | return -1; | ||
743 | |||
744 | return PCIBIOS_SUCCESSFUL; | ||
745 | } | ||
746 | |||
747 | /***************************************************************************** | ||
748 | * | ||
749 | * FUNCTION: msp_pcibios_write_config_dword | ||
750 | * _________________________________________________________________________ | ||
751 | * | ||
752 | * DESCRIPTION: Write a double word (32-bits) to PCI configuration address | ||
753 | * space. | ||
754 | * | ||
755 | * INPUTS bus - structure containing attributes for the PCI bus | ||
756 | * that the write is destined for. | ||
757 | * devfn - device/function combination that the write is | ||
758 | * destined for. | ||
759 | * where - register within the Configuration Header space | ||
760 | * to access. | ||
761 | * val - value to write | ||
762 | * | ||
763 | * OUTPUTS none | ||
764 | * | ||
765 | * RETURNS: PCIBIOS_SUCCESSFUL - success | ||
766 | * PCIBIOS_BAD_REGISTER_NUMBER - bad register address | ||
767 | * -1 - write access failure | ||
768 | * | ||
769 | ****************************************************************************/ | ||
770 | static int | ||
771 | msp_pcibios_write_config_dword(struct pci_bus *bus, | ||
772 | unsigned int devfn, | ||
773 | int where, | ||
774 | u32 val) | ||
775 | { | ||
776 | /* check that address is dword aligned */ | ||
777 | if (where & 3) | ||
778 | return PCIBIOS_BAD_REGISTER_NUMBER; | ||
779 | |||
780 | /* perform write */ | ||
781 | if (msp_pcibios_config_access(PCI_ACCESS_WRITE, bus, devfn, | ||
782 | where, &val)) | ||
783 | return -1; | ||
784 | |||
785 | return PCIBIOS_SUCCESSFUL; | ||
786 | } | ||
787 | |||
788 | /***************************************************************************** | ||
789 | * | ||
790 | * FUNCTION: msp_pcibios_read_config | ||
791 | * _________________________________________________________________________ | ||
792 | * | ||
793 | * DESCRIPTION: Interface the PCI configuration read request with | ||
794 | * the appropriate function, based on how many bytes | ||
795 | * the read request is. | ||
796 | * | ||
797 | * INPUTS bus - structure containing attributes for the PCI bus | ||
798 | * that the write is destined for. | ||
799 | * devfn - device/function combination that the write is | ||
800 | * destined for. | ||
801 | * where - register within the Configuration Header space | ||
802 | * to access. | ||
803 | * size - in units of bytes, should be 1, 2, or 4. | ||
804 | * | ||
805 | * OUTPUTS val - value read, with any extraneous bytes masked | ||
806 | * to zero. | ||
807 | * | ||
808 | * RETURNS: PCIBIOS_SUCCESSFUL - success | ||
809 | * -1 - failure | ||
810 | * | ||
811 | ****************************************************************************/ | ||
812 | int | ||
813 | msp_pcibios_read_config(struct pci_bus *bus, | ||
814 | unsigned int devfn, | ||
815 | int where, | ||
816 | int size, | ||
817 | u32 *val) | ||
818 | { | ||
819 | if (size == 1) { | ||
820 | if (msp_pcibios_read_config_byte(bus, devfn, where, val)) { | ||
821 | return -1; | ||
822 | } | ||
823 | } else if (size == 2) { | ||
824 | if (msp_pcibios_read_config_word(bus, devfn, where, val)) { | ||
825 | return -1; | ||
826 | } | ||
827 | } else if (size == 4) { | ||
828 | if (msp_pcibios_read_config_dword(bus, devfn, where, val)) { | ||
829 | return -1; | ||
830 | } | ||
831 | } else { | ||
832 | *val = 0xFFFFFFFF; | ||
833 | return -1; | ||
834 | } | ||
835 | |||
836 | return PCIBIOS_SUCCESSFUL; | ||
837 | } | ||
838 | |||
839 | /***************************************************************************** | ||
840 | * | ||
841 | * FUNCTION: msp_pcibios_write_config | ||
842 | * _________________________________________________________________________ | ||
843 | * | ||
844 | * DESCRIPTION: Interface the PCI configuration write request with | ||
845 | * the appropriate function, based on how many bytes | ||
846 | * the read request is. | ||
847 | * | ||
848 | * INPUTS bus - structure containing attributes for the PCI bus | ||
849 | * that the write is destined for. | ||
850 | * devfn - device/function combination that the write is | ||
851 | * destined for. | ||
852 | * where - register within the Configuration Header space | ||
853 | * to access. | ||
854 | * size - in units of bytes, should be 1, 2, or 4. | ||
855 | * val - value to write | ||
856 | * | ||
857 | * OUTPUTS: none | ||
858 | * | ||
859 | * RETURNS: PCIBIOS_SUCCESSFUL - success | ||
860 | * -1 - failure | ||
861 | * | ||
862 | ****************************************************************************/ | ||
863 | int | ||
864 | msp_pcibios_write_config(struct pci_bus *bus, | ||
865 | unsigned int devfn, | ||
866 | int where, | ||
867 | int size, | ||
868 | u32 val) | ||
869 | { | ||
870 | if (size == 1) { | ||
871 | if (msp_pcibios_write_config_byte(bus, devfn, | ||
872 | where, (u8)(0xFF & val))) { | ||
873 | return -1; | ||
874 | } | ||
875 | } else if (size == 2) { | ||
876 | if (msp_pcibios_write_config_word(bus, devfn, | ||
877 | where, (u16)(0xFFFF & val))) { | ||
878 | return -1; | ||
879 | } | ||
880 | } else if (size == 4) { | ||
881 | if (msp_pcibios_write_config_dword(bus, devfn, where, val)) { | ||
882 | return -1; | ||
883 | } | ||
884 | } else { | ||
885 | return -1; | ||
886 | } | ||
887 | |||
888 | return PCIBIOS_SUCCESSFUL; | ||
889 | } | ||
890 | |||
891 | /***************************************************************************** | ||
892 | * | ||
893 | * STRUCTURE: msp_pci_ops | ||
894 | * _________________________________________________________________________ | ||
895 | * | ||
896 | * DESCRIPTION: structure to abstract the hardware specific PCI | ||
897 | * configuration accesses. | ||
898 | * | ||
899 | * ELEMENTS: | ||
900 | * read - function for Linux to generate PCI Configuration reads. | ||
901 | * write - function for Linux to generate PCI Configuration writes. | ||
902 | * | ||
903 | ****************************************************************************/ | ||
904 | struct pci_ops msp_pci_ops = { | ||
905 | .read = msp_pcibios_read_config, | ||
906 | .write = msp_pcibios_write_config | ||
907 | }; | ||
908 | |||
909 | /***************************************************************************** | ||
910 | * | ||
911 | * STRUCTURE: msp_pci_controller | ||
912 | * _________________________________________________________________________ | ||
913 | * | ||
914 | * Describes the attributes of the MSP7120 PCI Host Controller | ||
915 | * | ||
916 | * ELEMENTS: | ||
917 | * pci_ops - abstracts the hardware specific PCI configuration | ||
918 | * accesses. | ||
919 | * | ||
920 | * mem_resource - address range pciauto() uses to assign to PCI device | ||
921 | * memory BARs. | ||
922 | * | ||
923 | * mem_offset - offset between how MSP7120 outbound PCI memory | ||
924 | * transaction addresses appear on the PCI bus and how Linux | ||
925 | * wants to configure memory BARs of the PCI devices. | ||
926 | * MSP7120 does nothing funky, so just set to zero. | ||
927 | * | ||
928 | * io_resource - address range pciauto() uses to assign to PCI device | ||
929 | * I/O BARs. | ||
930 | * | ||
931 | * io_offset - offset between how MSP7120 outbound PCI I/O | ||
932 | * transaction addresses appear on the PCI bus and how | ||
933 | * Linux defaults to configure I/O BARs of the PCI devices. | ||
934 | * MSP7120 maps outbound I/O accesses into the bottom | ||
935 | * bottom 4K of PCI address space (and ignores OATRAN). | ||
936 | * Since the Linux default is to configure I/O BARs to the | ||
937 | * bottom 4K, no special offset is needed. Just set to zero. | ||
938 | * | ||
939 | ****************************************************************************/ | ||
940 | static struct pci_controller msp_pci_controller = { | ||
941 | .pci_ops = &msp_pci_ops, | ||
942 | .mem_resource = &pci_mem_resource, | ||
943 | .mem_offset = 0, | ||
944 | .io_resource = &pci_io_resource, | ||
945 | .io_offset = 0 | ||
946 | }; | ||
947 | |||
948 | /***************************************************************************** | ||
949 | * | ||
950 | * FUNCTION: msp_pci_init | ||
951 | * _________________________________________________________________________ | ||
952 | * | ||
953 | * DESCRIPTION: Initialize the PCI Host Controller and register it with | ||
954 | * Linux so Linux can seize control of the PCI bus. | ||
955 | * | ||
956 | ****************************************************************************/ | ||
957 | void __init msp_pci_init(void) | ||
958 | { | ||
959 | struct msp_pci_regs *preg = (void *)PCI_BASE_REG; | ||
960 | u32 id; | ||
961 | |||
962 | /* Extract Device ID */ | ||
963 | id = read_reg32(PCI_JTAG_DEVID_REG, 0xFFFF) >> 12; | ||
964 | |||
965 | /* Check if JTAG ID identifies MSP7120 */ | ||
966 | if (!MSP_HAS_PCI(id)) { | ||
967 | printk(KERN_WARNING "PCI: No PCI; id reads as %x\n", id); | ||
968 | goto no_pci; | ||
969 | } | ||
970 | |||
971 | /* | ||
972 | * Enable flushing of the PCI-SDRAM queue upon a read | ||
973 | * of the SDRAM's Memory Configuration Register. | ||
974 | */ | ||
975 | *(unsigned long *)QFLUSH_REG_1 = 3; | ||
976 | |||
977 | /* Configure PCI Host Controller. */ | ||
978 | preg->if_status = ~0; /* Clear cause register bits */ | ||
979 | preg->config_addr = 0; /* Clear config access */ | ||
980 | preg->oatran = MSP_PCI_OATRAN; /* PCI outbound addr translation */ | ||
981 | preg->if_mask = 0xF8BF87C0; /* Enable all PCI status interrupts */ | ||
982 | |||
983 | /* configure so inb(), outb(), and family are functional */ | ||
984 | set_io_port_base(MSP_PCI_IOSPACE_BASE); | ||
985 | |||
986 | /* Tell Linux the details of the MSP7120 PCI Host Controller */ | ||
987 | register_pci_controller(&msp_pci_controller); | ||
988 | |||
989 | return; | ||
990 | |||
991 | no_pci: | ||
992 | /* Disable PCI channel */ | ||
993 | printk(KERN_WARNING "PCI: no host PCI bus detected\n"); | ||
994 | } | ||
diff --git a/arch/mips/pci/ops-tx4938.c b/arch/mips/pci/ops-tx4938.c index 445007084515..a450c4062031 100644 --- a/arch/mips/pci/ops-tx4938.c +++ b/arch/mips/pci/ops-tx4938.c | |||
@@ -46,50 +46,63 @@ struct resource tx4938_pcic1_pci_mem_resource = { | |||
46 | .flags = IORESOURCE_MEM | 46 | .flags = IORESOURCE_MEM |
47 | }; | 47 | }; |
48 | 48 | ||
49 | static int mkaddr(int bus, int dev_fn, int where, int *flagsp) | 49 | static int mkaddr(int bus, int dev_fn, int where, |
50 | struct tx4938_pcic_reg *pcicptr) | ||
50 | { | 51 | { |
51 | if (bus > 0) { | 52 | if (bus > 0) { |
52 | /* Type 1 configuration */ | 53 | /* Type 1 configuration */ |
53 | tx4938_pcicptr->g2pcfgadrs = ((bus & 0xff) << 0x10) | | 54 | pcicptr->g2pcfgadrs = ((bus & 0xff) << 0x10) | |
54 | ((dev_fn & 0xff) << 0x08) | (where & 0xfc) | 1; | 55 | ((dev_fn & 0xff) << 0x08) | (where & 0xfc) | 1; |
55 | } else { | 56 | } else { |
56 | if (dev_fn >= PCI_DEVFN(TX4938_PCIC_MAX_DEVNU, 0)) | 57 | if (dev_fn >= PCI_DEVFN(TX4938_PCIC_MAX_DEVNU, 0)) |
57 | return -1; | 58 | return -1; |
58 | 59 | ||
59 | /* Type 0 configuration */ | 60 | /* Type 0 configuration */ |
60 | tx4938_pcicptr->g2pcfgadrs = ((bus & 0xff) << 0x10) | | 61 | pcicptr->g2pcfgadrs = ((bus & 0xff) << 0x10) | |
61 | ((dev_fn & 0xff) << 0x08) | (where & 0xfc); | 62 | ((dev_fn & 0xff) << 0x08) | (where & 0xfc); |
62 | } | 63 | } |
63 | /* clear M_ABORT and Disable M_ABORT Int. */ | 64 | /* clear M_ABORT and Disable M_ABORT Int. */ |
64 | tx4938_pcicptr->pcistatus = | 65 | pcicptr->pcistatus = |
65 | (tx4938_pcicptr->pcistatus & 0x0000ffff) | | 66 | (pcicptr->pcistatus & 0x0000ffff) | |
66 | (PCI_STATUS_REC_MASTER_ABORT << 16); | 67 | (PCI_STATUS_REC_MASTER_ABORT << 16); |
67 | tx4938_pcicptr->pcimask &= ~PCI_STATUS_REC_MASTER_ABORT; | 68 | pcicptr->pcimask &= ~PCI_STATUS_REC_MASTER_ABORT; |
68 | 69 | ||
69 | return 0; | 70 | return 0; |
70 | } | 71 | } |
71 | 72 | ||
72 | static int check_abort(int flags) | 73 | static int check_abort(struct tx4938_pcic_reg *pcicptr) |
73 | { | 74 | { |
74 | int code = PCIBIOS_SUCCESSFUL; | 75 | int code = PCIBIOS_SUCCESSFUL; |
75 | /* wait write cycle completion before checking error status */ | 76 | /* wait write cycle completion before checking error status */ |
76 | while (tx4938_pcicptr->pcicstatus & TX4938_PCIC_PCICSTATUS_IWB) | 77 | while (pcicptr->pcicstatus & TX4938_PCIC_PCICSTATUS_IWB) |
77 | ; | 78 | ; |
78 | if (tx4938_pcicptr->pcistatus & (PCI_STATUS_REC_MASTER_ABORT << 16)) { | 79 | if (pcicptr->pcistatus & (PCI_STATUS_REC_MASTER_ABORT << 16)) { |
79 | tx4938_pcicptr->pcistatus = | 80 | pcicptr->pcistatus = |
80 | (tx4938_pcicptr-> | 81 | (pcicptr-> |
81 | pcistatus & 0x0000ffff) | (PCI_STATUS_REC_MASTER_ABORT | 82 | pcistatus & 0x0000ffff) | (PCI_STATUS_REC_MASTER_ABORT |
82 | << 16); | 83 | << 16); |
83 | tx4938_pcicptr->pcimask |= PCI_STATUS_REC_MASTER_ABORT; | 84 | pcicptr->pcimask |= PCI_STATUS_REC_MASTER_ABORT; |
84 | code = PCIBIOS_DEVICE_NOT_FOUND; | 85 | code = PCIBIOS_DEVICE_NOT_FOUND; |
85 | } | 86 | } |
86 | return code; | 87 | return code; |
87 | } | 88 | } |
88 | 89 | ||
90 | extern struct pci_controller tx4938_pci_controller[]; | ||
91 | extern struct tx4938_pcic_reg *get_tx4938_pcicptr(int ch); | ||
92 | |||
93 | static struct tx4938_pcic_reg *pci_bus_to_pcicptr(struct pci_bus *bus) | ||
94 | { | ||
95 | struct pci_controller *channel = bus->sysdata; | ||
96 | return get_tx4938_pcicptr(channel - &tx4938_pci_controller[0]); | ||
97 | } | ||
98 | |||
89 | static int tx4938_pcibios_read_config(struct pci_bus *bus, unsigned int devfn, | 99 | static int tx4938_pcibios_read_config(struct pci_bus *bus, unsigned int devfn, |
90 | int where, int size, u32 * val) | 100 | int where, int size, u32 * val) |
91 | { | 101 | { |
92 | int flags, retval, dev, busno, func; | 102 | int retval, dev, busno, func; |
103 | struct tx4938_pcic_reg *pcicptr = pci_bus_to_pcicptr(bus); | ||
104 | void __iomem *cfgdata = | ||
105 | (void __iomem *)(unsigned long)&pcicptr->g2pcfgdata; | ||
93 | 106 | ||
94 | dev = PCI_SLOT(devfn); | 107 | dev = PCI_SLOT(devfn); |
95 | func = PCI_FUNC(devfn); | 108 | func = PCI_FUNC(devfn); |
@@ -101,32 +114,32 @@ static int tx4938_pcibios_read_config(struct pci_bus *bus, unsigned int devfn, | |||
101 | busno = 0; | 114 | busno = 0; |
102 | } | 115 | } |
103 | 116 | ||
104 | if (mkaddr(busno, devfn, where, &flags)) | 117 | if (mkaddr(busno, devfn, where, pcicptr)) |
105 | return -1; | 118 | return -1; |
106 | 119 | ||
107 | switch (size) { | 120 | switch (size) { |
108 | case 1: | 121 | case 1: |
109 | *val = *(volatile u8 *) ((unsigned long) & tx4938_pcicptr->g2pcfgdata | | ||
110 | #ifdef __BIG_ENDIAN | 122 | #ifdef __BIG_ENDIAN |
111 | ((where & 3) ^ 3)); | 123 | cfgdata += (where & 3) ^ 3; |
112 | #else | 124 | #else |
113 | (where & 3)); | 125 | cfgdata += where & 3; |
114 | #endif | 126 | #endif |
127 | *val = __raw_readb(cfgdata); | ||
115 | break; | 128 | break; |
116 | case 2: | 129 | case 2: |
117 | *val = *(volatile u16 *) ((unsigned long) & tx4938_pcicptr->g2pcfgdata | | ||
118 | #ifdef __BIG_ENDIAN | 130 | #ifdef __BIG_ENDIAN |
119 | ((where & 3) ^ 2)); | 131 | cfgdata += (where & 2) ^ 2; |
120 | #else | 132 | #else |
121 | (where & 3)); | 133 | cfgdata += where & 2; |
122 | #endif | 134 | #endif |
135 | *val = __raw_readw(cfgdata); | ||
123 | break; | 136 | break; |
124 | case 4: | 137 | case 4: |
125 | *val = tx4938_pcicptr->g2pcfgdata; | 138 | *val = __raw_readl(cfgdata); |
126 | break; | 139 | break; |
127 | } | 140 | } |
128 | 141 | ||
129 | retval = check_abort(flags); | 142 | retval = check_abort(pcicptr); |
130 | if (retval == PCIBIOS_DEVICE_NOT_FOUND) | 143 | if (retval == PCIBIOS_DEVICE_NOT_FOUND) |
131 | *val = 0xffffffff; | 144 | *val = 0xffffffff; |
132 | 145 | ||
@@ -136,7 +149,10 @@ static int tx4938_pcibios_read_config(struct pci_bus *bus, unsigned int devfn, | |||
136 | static int tx4938_pcibios_write_config(struct pci_bus *bus, unsigned int devfn, int where, | 149 | static int tx4938_pcibios_write_config(struct pci_bus *bus, unsigned int devfn, int where, |
137 | int size, u32 val) | 150 | int size, u32 val) |
138 | { | 151 | { |
139 | int flags, dev, busno, func; | 152 | int dev, busno, func; |
153 | struct tx4938_pcic_reg *pcicptr = pci_bus_to_pcicptr(bus); | ||
154 | void __iomem *cfgdata = | ||
155 | (void __iomem *)(unsigned long)&pcicptr->g2pcfgdata; | ||
140 | 156 | ||
141 | busno = bus->number; | 157 | busno = bus->number; |
142 | dev = PCI_SLOT(devfn); | 158 | dev = PCI_SLOT(devfn); |
@@ -149,32 +165,32 @@ static int tx4938_pcibios_write_config(struct pci_bus *bus, unsigned int devfn, | |||
149 | busno = 0; | 165 | busno = 0; |
150 | } | 166 | } |
151 | 167 | ||
152 | if (mkaddr(busno, devfn, where, &flags)) | 168 | if (mkaddr(busno, devfn, where, pcicptr)) |
153 | return -1; | 169 | return -1; |
154 | 170 | ||
155 | switch (size) { | 171 | switch (size) { |
156 | case 1: | 172 | case 1: |
157 | *(volatile u8 *) ((unsigned long) & tx4938_pcicptr->g2pcfgdata | | ||
158 | #ifdef __BIG_ENDIAN | 173 | #ifdef __BIG_ENDIAN |
159 | ((where & 3) ^ 3)) = val; | 174 | cfgdata += (where & 3) ^ 3; |
160 | #else | 175 | #else |
161 | (where & 3)) = val; | 176 | cfgdata += where & 3; |
162 | #endif | 177 | #endif |
178 | __raw_writeb(val, cfgdata); | ||
163 | break; | 179 | break; |
164 | case 2: | 180 | case 2: |
165 | *(volatile u16 *) ((unsigned long) & tx4938_pcicptr->g2pcfgdata | | ||
166 | #ifdef __BIG_ENDIAN | 181 | #ifdef __BIG_ENDIAN |
167 | ((where & 0x3) ^ 0x2)) = val; | 182 | cfgdata += (where & 2) ^ 2; |
168 | #else | 183 | #else |
169 | (where & 3)) = val; | 184 | cfgdata += where & 2; |
170 | #endif | 185 | #endif |
186 | __raw_writew(val, cfgdata); | ||
171 | break; | 187 | break; |
172 | case 4: | 188 | case 4: |
173 | tx4938_pcicptr->g2pcfgdata = val; | 189 | __raw_writel(val, cfgdata); |
174 | break; | 190 | break; |
175 | } | 191 | } |
176 | 192 | ||
177 | return check_abort(flags); | 193 | return check_abort(pcicptr); |
178 | } | 194 | } |
179 | 195 | ||
180 | struct pci_ops tx4938_pci_ops = { | 196 | struct pci_ops tx4938_pci_ops = { |
diff --git a/arch/mips/pci/pci-bcm1480.c b/arch/mips/pci/pci-bcm1480.c index d7b9e1349f6d..2b4e30c7d105 100644 --- a/arch/mips/pci/pci-bcm1480.c +++ b/arch/mips/pci/pci-bcm1480.c | |||
@@ -74,8 +74,9 @@ static inline void WRITECFG32(u32 addr, u32 data) | |||
74 | *(u32 *)(cfg_space + (addr & ~3)) = data; | 74 | *(u32 *)(cfg_space + (addr & ~3)) = data; |
75 | } | 75 | } |
76 | 76 | ||
77 | int pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 77 | int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
78 | { | 78 | { |
79 | This is b0rked. | ||
79 | return dev->irq; | 80 | return dev->irq; |
80 | } | 81 | } |
81 | 82 | ||
diff --git a/arch/mips/pci/pci-ddb5477.c b/arch/mips/pci/pci-ddb5477.c index d071bc375b11..7363e1877842 100644 --- a/arch/mips/pci/pci-ddb5477.c +++ b/arch/mips/pci/pci-ddb5477.c | |||
@@ -131,7 +131,7 @@ static unsigned char rockhopperII_irq_map[MAX_SLOT_NUM] = { | |||
131 | /* SLOT: 20, AD:31 */ VRC5477_IRQ_IOPCI_INTA, /* vrc5477 usb host */ | 131 | /* SLOT: 20, AD:31 */ VRC5477_IRQ_IOPCI_INTA, /* vrc5477 usb host */ |
132 | }; | 132 | }; |
133 | 133 | ||
134 | int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 134 | int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
135 | { | 135 | { |
136 | int slot_num; | 136 | int slot_num; |
137 | unsigned char *slot_irq_map; | 137 | unsigned char *slot_irq_map; |
diff --git a/arch/mips/pci/pci-ev64120.c b/arch/mips/pci/pci-ev64120.c deleted file mode 100644 index a84f594b5a18..000000000000 --- a/arch/mips/pci/pci-ev64120.c +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
1 | #include <linux/pci.h> | ||
2 | #include <asm/irq.h> | ||
3 | |||
4 | int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | ||
5 | { | ||
6 | int irq; | ||
7 | |||
8 | if (!pin) | ||
9 | return 0; | ||
10 | |||
11 | irq = allocate_irqno(); | ||
12 | if (irq < 0) | ||
13 | return 0; | ||
14 | |||
15 | return irq; | ||
16 | } | ||
17 | |||
18 | /* Do platform specific device initialization at pci_enable_device() time */ | ||
19 | int pcibios_plat_dev_init(struct pci_dev *dev) | ||
20 | { | ||
21 | return 0; | ||
22 | } | ||
diff --git a/arch/mips/pci/pci-ip27.c b/arch/mips/pci/pci-ip27.c index 405ce0152739..a322543ac34e 100644 --- a/arch/mips/pci/pci-ip27.c +++ b/arch/mips/pci/pci-ip27.c | |||
@@ -134,7 +134,7 @@ int __init bridge_probe(nasid_t nasid, int widget_id, int masterwid) | |||
134 | * A given PCI device, in general, should be able to intr any of the cpus | 134 | * A given PCI device, in general, should be able to intr any of the cpus |
135 | * on any one of the hubs connected to its xbow. | 135 | * on any one of the hubs connected to its xbow. |
136 | */ | 136 | */ |
137 | int __devinit pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 137 | int __devinit pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
138 | { | 138 | { |
139 | struct bridge_controller *bc = BRIDGE_CONTROLLER(dev->bus); | 139 | struct bridge_controller *bc = BRIDGE_CONTROLLER(dev->bus); |
140 | int irq = bc->pci_int[slot]; | 140 | int irq = bc->pci_int[slot]; |
diff --git a/arch/mips/pci/pci-lasat.c b/arch/mips/pci/pci-lasat.c deleted file mode 100644 index 985784a3e6f8..000000000000 --- a/arch/mips/pci/pci-lasat.c +++ /dev/null | |||
@@ -1,91 +0,0 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 2000, 2001, 04 Keith M Wesolowski | ||
7 | */ | ||
8 | #include <linux/kernel.h> | ||
9 | #include <linux/init.h> | ||
10 | #include <linux/pci.h> | ||
11 | #include <linux/types.h> | ||
12 | #include <asm/bootinfo.h> | ||
13 | |||
14 | extern struct pci_ops nile4_pci_ops; | ||
15 | extern struct pci_ops gt64xxx_pci0_ops; | ||
16 | static struct resource lasat_pci_mem_resource = { | ||
17 | .name = "LASAT PCI MEM", | ||
18 | .start = 0x18000000, | ||
19 | .end = 0x19ffffff, | ||
20 | .flags = IORESOURCE_MEM, | ||
21 | }; | ||
22 | |||
23 | static struct resource lasat_pci_io_resource = { | ||
24 | .name = "LASAT PCI IO", | ||
25 | .start = 0x1a000000, | ||
26 | .end = 0x1bffffff, | ||
27 | .flags = IORESOURCE_IO, | ||
28 | }; | ||
29 | |||
30 | static struct pci_controller lasat_pci_controller = { | ||
31 | .mem_resource = &lasat_pci_mem_resource, | ||
32 | .io_resource = &lasat_pci_io_resource, | ||
33 | }; | ||
34 | |||
35 | static int __init lasat_pci_setup(void) | ||
36 | { | ||
37 | printk("PCI: starting\n"); | ||
38 | |||
39 | switch (mips_machtype) { | ||
40 | case MACH_LASAT_100: | ||
41 | lasat_pci_controller.pci_ops = >64xxx_pci0_ops; | ||
42 | break; | ||
43 | case MACH_LASAT_200: | ||
44 | lasat_pci_controller.pci_ops = &nile4_pci_ops; | ||
45 | break; | ||
46 | default: | ||
47 | panic("pcibios_init: mips_machtype incorrect"); | ||
48 | } | ||
49 | |||
50 | register_pci_controller(&lasat_pci_controller); | ||
51 | |||
52 | return 0; | ||
53 | } | ||
54 | |||
55 | arch_initcall(lasat_pci_setup); | ||
56 | |||
57 | #define LASATINT_ETH1 0 | ||
58 | #define LASATINT_ETH0 1 | ||
59 | #define LASATINT_HDC 2 | ||
60 | #define LASATINT_COMP 3 | ||
61 | #define LASATINT_HDLC 4 | ||
62 | #define LASATINT_PCIA 5 | ||
63 | #define LASATINT_PCIB 6 | ||
64 | #define LASATINT_PCIC 7 | ||
65 | #define LASATINT_PCID 8 | ||
66 | |||
67 | int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | ||
68 | { | ||
69 | switch (slot) { | ||
70 | case 1: | ||
71 | case 2: | ||
72 | case 3: | ||
73 | return LASATINT_PCIA + (((slot-1) + (pin-1)) % 4); | ||
74 | case 4: | ||
75 | return LASATINT_ETH1; /* Ethernet 1 (LAN 2) */ | ||
76 | case 5: | ||
77 | return LASATINT_ETH0; /* Ethernet 0 (LAN 1) */ | ||
78 | case 6: | ||
79 | return LASATINT_HDC; /* IDE controller */ | ||
80 | default: | ||
81 | return 0xff; /* Illegal */ | ||
82 | } | ||
83 | |||
84 | return -1; | ||
85 | } | ||
86 | |||
87 | /* Do platform specific device initialization at pci_enable_device() time */ | ||
88 | int pcibios_plat_dev_init(struct pci_dev *dev) | ||
89 | { | ||
90 | return 0; | ||
91 | } | ||
diff --git a/arch/mips/pci/pci-ocelot-c.c b/arch/mips/pci/pci-ocelot-c.c deleted file mode 100644 index 027759f7c904..000000000000 --- a/arch/mips/pci/pci-ocelot-c.c +++ /dev/null | |||
@@ -1,145 +0,0 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 2004, 06 by Ralf Baechle (ralf@linux-mips.org) | ||
7 | */ | ||
8 | |||
9 | #include <linux/types.h> | ||
10 | #include <linux/pci.h> | ||
11 | #include <linux/mv643xx.h> | ||
12 | |||
13 | #include <linux/init.h> | ||
14 | |||
15 | #include <asm/marvell.h> | ||
16 | |||
17 | /* | ||
18 | * We assume the address ranges have already been setup appropriately by | ||
19 | * the firmware. PMON in case of the Ocelot C does that. | ||
20 | */ | ||
21 | static struct resource mv_pci_io_mem0_resource = { | ||
22 | .name = "MV64340 PCI0 IO MEM", | ||
23 | .flags = IORESOURCE_IO | ||
24 | }; | ||
25 | |||
26 | static struct resource mv_pci_mem0_resource = { | ||
27 | .name = "MV64340 PCI0 MEM", | ||
28 | .flags = IORESOURCE_MEM | ||
29 | }; | ||
30 | |||
31 | static struct mv_pci_controller mv_bus0_controller = { | ||
32 | .pcic = { | ||
33 | .pci_ops = &mv_pci_ops, | ||
34 | .mem_resource = &mv_pci_mem0_resource, | ||
35 | .io_resource = &mv_pci_io_mem0_resource, | ||
36 | }, | ||
37 | .config_addr = MV64340_PCI_0_CONFIG_ADDR, | ||
38 | .config_vreg = MV64340_PCI_0_CONFIG_DATA_VIRTUAL_REG, | ||
39 | }; | ||
40 | |||
41 | static uint32_t mv_io_base, mv_io_size; | ||
42 | |||
43 | static void mv64340_pci0_init(void) | ||
44 | { | ||
45 | uint32_t mem0_base, mem0_size; | ||
46 | uint32_t io_base, io_size; | ||
47 | |||
48 | io_base = MV_READ(MV64340_PCI_0_IO_BASE_ADDR) << 16; | ||
49 | io_size = (MV_READ(MV64340_PCI_0_IO_SIZE) + 1) << 16; | ||
50 | mem0_base = MV_READ(MV64340_PCI_0_MEMORY0_BASE_ADDR) << 16; | ||
51 | mem0_size = (MV_READ(MV64340_PCI_0_MEMORY0_SIZE) + 1) << 16; | ||
52 | |||
53 | mv_pci_io_mem0_resource.start = 0; | ||
54 | mv_pci_io_mem0_resource.end = io_size - 1; | ||
55 | mv_pci_mem0_resource.start = mem0_base; | ||
56 | mv_pci_mem0_resource.end = mem0_base + mem0_size - 1; | ||
57 | mv_bus0_controller.pcic.mem_offset = mem0_base; | ||
58 | mv_bus0_controller.pcic.io_offset = 0; | ||
59 | |||
60 | ioport_resource.end = io_size - 1; | ||
61 | |||
62 | register_pci_controller(&mv_bus0_controller.pcic); | ||
63 | |||
64 | mv_io_base = io_base; | ||
65 | mv_io_size = io_size; | ||
66 | } | ||
67 | |||
68 | static struct resource mv_pci_io_mem1_resource = { | ||
69 | .name = "MV64340 PCI1 IO MEM", | ||
70 | .flags = IORESOURCE_IO | ||
71 | }; | ||
72 | |||
73 | static struct resource mv_pci_mem1_resource = { | ||
74 | .name = "MV64340 PCI1 MEM", | ||
75 | .flags = IORESOURCE_MEM | ||
76 | }; | ||
77 | |||
78 | static struct mv_pci_controller mv_bus1_controller = { | ||
79 | .pcic = { | ||
80 | .pci_ops = &mv_pci_ops, | ||
81 | .mem_resource = &mv_pci_mem1_resource, | ||
82 | .io_resource = &mv_pci_io_mem1_resource, | ||
83 | }, | ||
84 | .config_addr = MV64340_PCI_1_CONFIG_ADDR, | ||
85 | .config_vreg = MV64340_PCI_1_CONFIG_DATA_VIRTUAL_REG, | ||
86 | }; | ||
87 | |||
88 | static __init void mv64340_pci1_init(void) | ||
89 | { | ||
90 | uint32_t mem0_base, mem0_size; | ||
91 | uint32_t io_base, io_size; | ||
92 | |||
93 | io_base = MV_READ(MV64340_PCI_1_IO_BASE_ADDR) << 16; | ||
94 | io_size = (MV_READ(MV64340_PCI_1_IO_SIZE) + 1) << 16; | ||
95 | mem0_base = MV_READ(MV64340_PCI_1_MEMORY0_BASE_ADDR) << 16; | ||
96 | mem0_size = (MV_READ(MV64340_PCI_1_MEMORY0_SIZE) + 1) << 16; | ||
97 | |||
98 | /* | ||
99 | * Here we assume the I/O window of second bus to be contiguous with | ||
100 | * the first. A gap is no problem but would waste address space for | ||
101 | * remapping the port space. | ||
102 | */ | ||
103 | mv_pci_io_mem1_resource.start = mv_io_size; | ||
104 | mv_pci_io_mem1_resource.end = mv_io_size + io_size - 1; | ||
105 | mv_pci_mem1_resource.start = mem0_base; | ||
106 | mv_pci_mem1_resource.end = mem0_base + mem0_size - 1; | ||
107 | mv_bus1_controller.pcic.mem_offset = mem0_base; | ||
108 | mv_bus1_controller.pcic.io_offset = 0; | ||
109 | |||
110 | ioport_resource.end = io_base + io_size -mv_io_base - 1; | ||
111 | |||
112 | register_pci_controller(&mv_bus1_controller.pcic); | ||
113 | |||
114 | mv_io_size = io_base + io_size - mv_io_base; | ||
115 | } | ||
116 | |||
117 | static __init int __init ocelot_c_pci_init(void) | ||
118 | { | ||
119 | unsigned long io_v_base; | ||
120 | uint32_t enable; | ||
121 | |||
122 | enable = ~MV_READ(MV64340_BASE_ADDR_ENABLE); | ||
123 | |||
124 | /* | ||
125 | * We require at least one enabled I/O or PCI memory window or we | ||
126 | * will ignore this PCI bus. We ignore PCI windows 1, 2 and 3. | ||
127 | */ | ||
128 | if (enable & (0x01 << 9) || enable & (0x01 << 10)) | ||
129 | mv64340_pci0_init(); | ||
130 | |||
131 | if (enable & (0x01 << 14) || enable & (0x01 << 15)) | ||
132 | mv64340_pci1_init(); | ||
133 | |||
134 | if (mv_io_size) { | ||
135 | io_v_base = (unsigned long) ioremap(mv_io_base, mv_io_size); | ||
136 | if (!io_v_base) | ||
137 | panic("Could not ioremap I/O port range"); | ||
138 | |||
139 | set_io_port_base(io_v_base); | ||
140 | } | ||
141 | |||
142 | return 0; | ||
143 | } | ||
144 | |||
145 | arch_initcall(ocelot_c_pci_init); | ||
diff --git a/arch/mips/pci/pci-sb1250.c b/arch/mips/pci/pci-sb1250.c index 75c1246ced5f..c1ac6493155e 100644 --- a/arch/mips/pci/pci-sb1250.c +++ b/arch/mips/pci/pci-sb1250.c | |||
@@ -84,7 +84,7 @@ static inline void WRITECFG32(u32 addr, u32 data) | |||
84 | *(u32 *) (cfg_space + (addr & ~3)) = data; | 84 | *(u32 *) (cfg_space + (addr & ~3)) = data; |
85 | } | 85 | } |
86 | 86 | ||
87 | int pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 87 | int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
88 | { | 88 | { |
89 | return dev->irq; | 89 | return dev->irq; |
90 | } | 90 | } |
diff --git a/arch/mips/philips/pnx8550/common/platform.c b/arch/mips/philips/pnx8550/common/platform.c index d43f56e2cd78..c839436bd012 100644 --- a/arch/mips/philips/pnx8550/common/platform.c +++ b/arch/mips/philips/pnx8550/common/platform.c | |||
@@ -123,7 +123,7 @@ static struct platform_device *pnx8550_platform_devices[] __initdata = { | |||
123 | &pnx8550_uart_device, | 123 | &pnx8550_uart_device, |
124 | }; | 124 | }; |
125 | 125 | ||
126 | int pnx8550_platform_init(void) | 126 | static int __init pnx8550_platform_init(void) |
127 | { | 127 | { |
128 | return platform_add_devices(pnx8550_platform_devices, | 128 | return platform_add_devices(pnx8550_platform_devices, |
129 | ARRAY_SIZE(pnx8550_platform_devices)); | 129 | ARRAY_SIZE(pnx8550_platform_devices)); |
diff --git a/arch/mips/philips/pnx8550/common/proc.c b/arch/mips/philips/pnx8550/common/proc.c index 3f097558ef13..92311e95b700 100644 --- a/arch/mips/philips/pnx8550/common/proc.c +++ b/arch/mips/philips/pnx8550/common/proc.c | |||
@@ -78,29 +78,33 @@ static int pnx8550_proc_init( void ) | |||
78 | { | 78 | { |
79 | 79 | ||
80 | // Create /proc/pnx8550 | 80 | // Create /proc/pnx8550 |
81 | pnx8550_dir = create_proc_entry("pnx8550", S_IFDIR|S_IRUGO, NULL); | 81 | pnx8550_dir = proc_mkdir("pnx8550", NULL); |
82 | if (!pnx8550_dir) { | 82 | if (!pnx8550_dir) { |
83 | printk(KERN_ERR "Can't create pnx8550 proc dir\n"); | 83 | printk(KERN_ERR "Can't create pnx8550 proc dir\n"); |
84 | return -1; | 84 | return -1; |
85 | } | 85 | } |
86 | 86 | ||
87 | // Create /proc/pnx8550/timers | 87 | // Create /proc/pnx8550/timers |
88 | pnx8550_timers = create_proc_entry("timers", S_IFREG|S_IRUGO, pnx8550_dir ); | 88 | pnx8550_timers = create_proc_read_entry( |
89 | if (pnx8550_timers){ | 89 | "timers", |
90 | pnx8550_timers->read_proc = pnx8550_timers_read; | 90 | 0, |
91 | } | 91 | pnx8550_dir, |
92 | else { | 92 | pnx8550_timers_read, |
93 | NULL); | ||
94 | |||
95 | if (!pnx8550_timers) | ||
93 | printk(KERN_ERR "Can't create pnx8550 timers proc file\n"); | 96 | printk(KERN_ERR "Can't create pnx8550 timers proc file\n"); |
94 | } | ||
95 | 97 | ||
96 | // Create /proc/pnx8550/registers | 98 | // Create /proc/pnx8550/registers |
97 | pnx8550_registers = create_proc_entry("registers", S_IFREG|S_IRUGO, pnx8550_dir ); | 99 | pnx8550_registers = create_proc_read_entry( |
98 | if (pnx8550_registers){ | 100 | "registers", |
99 | pnx8550_registers->read_proc = pnx8550_registers_read; | 101 | 0, |
100 | } | 102 | pnx8550_dir, |
101 | else { | 103 | pnx8550_registers_read, |
104 | NULL); | ||
105 | |||
106 | if (!pnx8550_registers) | ||
102 | printk(KERN_ERR "Can't create pnx8550 registers proc file\n"); | 107 | printk(KERN_ERR "Can't create pnx8550 registers proc file\n"); |
103 | } | ||
104 | 108 | ||
105 | return 0; | 109 | return 0; |
106 | } | 110 | } |
diff --git a/arch/mips/pmc-sierra/Kconfig b/arch/mips/pmc-sierra/Kconfig index 24d514c9dff9..abbd0bbfabd7 100644 --- a/arch/mips/pmc-sierra/Kconfig +++ b/arch/mips/pmc-sierra/Kconfig | |||
@@ -1,3 +1,49 @@ | |||
1 | choice | ||
2 | prompt "PMC-Sierra MSP SOC type" | ||
3 | depends on PMC_MSP | ||
4 | |||
5 | config PMC_MSP4200_EVAL | ||
6 | bool "PMC-Sierra MSP4200 Eval Board" | ||
7 | select IRQ_MSP_SLP | ||
8 | select HW_HAS_PCI | ||
9 | |||
10 | config PMC_MSP4200_GW | ||
11 | bool "PMC-Sierra MSP4200 VoIP Gateway" | ||
12 | select IRQ_MSP_SLP | ||
13 | select HW_HAS_PCI | ||
14 | |||
15 | config PMC_MSP7120_EVAL | ||
16 | bool "PMC-Sierra MSP7120 Eval Board" | ||
17 | select SYS_SUPPORTS_MULTITHREADING | ||
18 | select IRQ_MSP_CIC | ||
19 | select HW_HAS_PCI | ||
20 | |||
21 | config PMC_MSP7120_GW | ||
22 | bool "PMC-Sierra MSP7120 Residential Gateway" | ||
23 | select SYS_SUPPORTS_MULTITHREADING | ||
24 | select IRQ_MSP_CIC | ||
25 | select HW_HAS_PCI | ||
26 | |||
27 | config PMC_MSP7120_FPGA | ||
28 | bool "PMC-Sierra MSP7120 FPGA" | ||
29 | select SYS_SUPPORTS_MULTITHREADING | ||
30 | select IRQ_MSP_CIC | ||
31 | select HW_HAS_PCI | ||
32 | |||
33 | endchoice | ||
34 | |||
35 | menu "Options for PMC-Sierra MSP chipsets" | ||
36 | depends on PMC_MSP | ||
37 | |||
38 | config PMC_MSP_EMBEDDED_ROOTFS | ||
39 | bool "Root filesystem embedded in kernel image" | ||
40 | select MTD | ||
41 | select MTD_BLOCK | ||
42 | select MTD_PMC_MSP_RAMROOT | ||
43 | select MTD_RAM | ||
44 | |||
45 | endmenu | ||
46 | |||
1 | config HYPERTRANSPORT | 47 | config HYPERTRANSPORT |
2 | bool "Hypertransport Support for PMC-Sierra Yosemite" | 48 | bool "Hypertransport Support for PMC-Sierra Yosemite" |
3 | depends on PMC_YOSEMITE | 49 | depends on PMC_YOSEMITE |
diff --git a/arch/mips/pmc-sierra/msp71xx/Makefile b/arch/mips/pmc-sierra/msp71xx/Makefile new file mode 100644 index 000000000000..4bba79c1cc79 --- /dev/null +++ b/arch/mips/pmc-sierra/msp71xx/Makefile | |||
@@ -0,0 +1,11 @@ | |||
1 | # | ||
2 | # Makefile for the PMC-Sierra MSP SOCs | ||
3 | # | ||
4 | obj-y += msp_prom.o msp_setup.o msp_irq.o \ | ||
5 | msp_time.o msp_serial.o msp_elb.o | ||
6 | obj-$(CONFIG_PMC_MSP7120_GW) += msp_hwbutton.o | ||
7 | obj-$(CONFIG_IRQ_MSP_SLP) += msp_irq_slp.o | ||
8 | obj-$(CONFIG_IRQ_MSP_CIC) += msp_irq_cic.o | ||
9 | obj-$(CONFIG_PCI) += msp_pci.o | ||
10 | obj-$(CONFIG_MSPETH) += msp_eth.o | ||
11 | obj-$(CONFIG_USB_MSP71XX) += msp_usb.o | ||
diff --git a/arch/mips/momentum/ocelot_c/ocelot_c_fpga.h b/arch/mips/pmc-sierra/msp71xx/msp_elb.c index f0f5581dcb50..3e9641007216 100644 --- a/arch/mips/momentum/ocelot_c/ocelot_c_fpga.h +++ b/arch/mips/pmc-sierra/msp71xx/msp_elb.c | |||
@@ -1,7 +1,9 @@ | |||
1 | /* | 1 | /* |
2 | * Ocelot-C Board Register Definitions | 2 | * Sets up the proper Chip Select configuration registers. It is assumed that |
3 | * PMON sets up the ADDR and MASK registers properly. | ||
3 | * | 4 | * |
4 | * (C) 2002 Momentum Computer Inc. | 5 | * Copyright 2005-2006 PMC-Sierra, Inc. |
6 | * Author: Marc St-Jean, Marc_St-Jean@pmc-sierra.com | ||
5 | * | 7 | * |
6 | * This program is free software; you can redistribute it and/or modify it | 8 | * This program is free software; you can redistribute it and/or modify it |
7 | * under the terms of the GNU General Public License as published by the | 9 | * under the terms of the GNU General Public License as published by the |
@@ -22,40 +24,23 @@ | |||
22 | * You should have received a copy of the GNU General Public License along | 24 | * You should have received a copy of the GNU General Public License along |
23 | * with this program; if not, write to the Free Software Foundation, Inc., | 25 | * with this program; if not, write to the Free Software Foundation, Inc., |
24 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 26 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
25 | * | ||
26 | * Louis Hamilton, Red Hat, Inc. | ||
27 | * hamilton@redhat.com [MIPS64 modifications] | ||
28 | */ | 27 | */ |
29 | 28 | ||
30 | #ifndef __OCELOT_C_FPGA_H__ | 29 | #include <linux/kernel.h> |
31 | #define __OCELOT_C_FPGA_H__ | 30 | #include <linux/init.h> |
32 | 31 | #include <msp_regs.h> | |
33 | 32 | ||
34 | #ifdef CONFIG_64BIT | 33 | static int __init msp_elb_setup(void) |
35 | #define OCELOT_C_CS0_ADDR (0xfffffffffc000000) | 34 | { |
36 | #else | 35 | #if defined(CONFIG_PMC_MSP7120_GW) \ |
37 | #define OCELOT_C_CS0_ADDR (0xfc000000) | 36 | || defined(CONFIG_PMC_MSP7120_EVAL) |
37 | /* | ||
38 | * Force all CNFG to be identical and equal to CS0, | ||
39 | * according to OPS doc | ||
40 | */ | ||
41 | *CS1_CNFG_REG = *CS2_CNFG_REG = *CS3_CNFG_REG = *CS0_CNFG_REG; | ||
38 | #endif | 42 | #endif |
43 | return 0; | ||
44 | } | ||
39 | 45 | ||
40 | #define OCELOT_C_REG_BOARDREV 0x0 | 46 | subsys_initcall(msp_elb_setup); |
41 | #define OCELOT_C_REG_FPGA_REV 0x1 | ||
42 | #define OCELOT_C_REG_FPGA_TYPE 0x2 | ||
43 | #define OCELOT_C_REG_RESET_STATUS 0x3 | ||
44 | #define OCELOT_C_REG_BOARD_STATUS 0x4 | ||
45 | #define OCELOT_C_REG_CPCI_ID 0x5 | ||
46 | #define OCELOT_C_REG_SET 0x6 | ||
47 | #define OCELOT_C_REG_CLR 0x7 | ||
48 | #define OCELOT_C_REG_EEPROM_MODE 0x9 | ||
49 | #define OCELOT_C_REG_INTMASK 0xa | ||
50 | #define OCELOT_C_REG_INTSTAT 0xb | ||
51 | #define OCELOT_C_REG_UART_INTMASK 0xc | ||
52 | #define OCELOT_C_REG_UART_INTSTAT 0xd | ||
53 | #define OCELOT_C_REG_INTSET 0xe | ||
54 | #define OCELOT_C_REG_INTCLR 0xf | ||
55 | |||
56 | #define __FPGA_REG_TO_ADDR(reg) \ | ||
57 | ((void *) OCELOT_C_CS0_ADDR + OCELOT_C_REG_##reg) | ||
58 | #define OCELOT_FPGA_WRITE(x, reg) writeb(x, __FPGA_REG_TO_ADDR(reg)) | ||
59 | #define OCELOT_FPGA_READ(reg) readb(__FPGA_REG_TO_ADDR(reg)) | ||
60 | |||
61 | #endif | ||
diff --git a/arch/mips/pmc-sierra/msp71xx/msp_hwbutton.c b/arch/mips/pmc-sierra/msp71xx/msp_hwbutton.c new file mode 100644 index 000000000000..6fa85728158b --- /dev/null +++ b/arch/mips/pmc-sierra/msp71xx/msp_hwbutton.c | |||
@@ -0,0 +1,179 @@ | |||
1 | /* | ||
2 | * Sets up interrupt handlers for various hardware switches which are | ||
3 | * connected to interrupt lines. | ||
4 | * | ||
5 | * Copyright 2005-2207 PMC-Sierra, Inc. | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License as published by the | ||
9 | * Free Software Foundation; either version 2 of the License, or (at your | ||
10 | * option) any later version. | ||
11 | * | ||
12 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | ||
13 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
14 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN | ||
15 | * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
16 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
17 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | ||
18 | * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||
19 | * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
20 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
21 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
22 | * | ||
23 | * You should have received a copy of the GNU General Public License along | ||
24 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
25 | * 675 Mass Ave, Cambridge, MA 02139, USA. | ||
26 | */ | ||
27 | |||
28 | #include <linux/kernel.h> | ||
29 | #include <linux/init.h> | ||
30 | #include <linux/interrupt.h> | ||
31 | |||
32 | #include <msp_int.h> | ||
33 | #include <msp_regs.h> | ||
34 | #include <msp_regops.h> | ||
35 | #ifdef CONFIG_PMCTWILED | ||
36 | #include <msp_led_macros.h> | ||
37 | #endif | ||
38 | |||
39 | /* For hwbutton_interrupt->initial_state */ | ||
40 | #define HWBUTTON_HI 0x1 | ||
41 | #define HWBUTTON_LO 0x2 | ||
42 | |||
43 | /* | ||
44 | * This struct describes a hardware button | ||
45 | */ | ||
46 | struct hwbutton_interrupt { | ||
47 | char *name; /* Name of button */ | ||
48 | int irq; /* Actual LINUX IRQ */ | ||
49 | int eirq; /* Extended IRQ number (0-7) */ | ||
50 | int initial_state; /* The "normal" state of the switch */ | ||
51 | void (*handle_hi)(void *); /* Handler: switch input has gone HI */ | ||
52 | void (*handle_lo)(void *); /* Handler: switch input has gone LO */ | ||
53 | void *data; /* Optional data to pass to handler */ | ||
54 | }; | ||
55 | |||
56 | #ifdef CONFIG_PMC_MSP7120_GW | ||
57 | extern void msp_restart(char *); | ||
58 | |||
59 | static void softreset_push(void *data) | ||
60 | { | ||
61 | printk(KERN_WARNING "SOFTRESET switch was pushed\n"); | ||
62 | |||
63 | /* | ||
64 | * In the future you could move this to the release handler, | ||
65 | * timing the difference between the 'push' and 'release', and only | ||
66 | * doing this ungraceful restart if the button has been down for | ||
67 | * a certain amount of time; otherwise doing a graceful restart. | ||
68 | */ | ||
69 | |||
70 | msp_restart(NULL); | ||
71 | } | ||
72 | |||
73 | static void softreset_release(void *data) | ||
74 | { | ||
75 | printk(KERN_WARNING "SOFTRESET switch was released\n"); | ||
76 | |||
77 | /* Do nothing */ | ||
78 | } | ||
79 | |||
80 | static void standby_on(void *data) | ||
81 | { | ||
82 | printk(KERN_WARNING "STANDBY switch was set to ON (not implemented)\n"); | ||
83 | |||
84 | /* TODO: Put board in standby mode */ | ||
85 | #ifdef CONFIG_PMCTWILED | ||
86 | msp_led_turn_off(MSP_LED_PWRSTANDBY_GREEN); | ||
87 | msp_led_turn_on(MSP_LED_PWRSTANDBY_RED); | ||
88 | #endif | ||
89 | } | ||
90 | |||
91 | static void standby_off(void *data) | ||
92 | { | ||
93 | printk(KERN_WARNING | ||
94 | "STANDBY switch was set to OFF (not implemented)\n"); | ||
95 | |||
96 | /* TODO: Take out of standby mode */ | ||
97 | #ifdef CONFIG_PMCTWILED | ||
98 | msp_led_turn_on(MSP_LED_PWRSTANDBY_GREEN); | ||
99 | msp_led_turn_off(MSP_LED_PWRSTANDBY_RED); | ||
100 | #endif | ||
101 | } | ||
102 | |||
103 | static struct hwbutton_interrupt softreset_sw = { | ||
104 | .name = "Softreset button", | ||
105 | .irq = MSP_INT_EXT0, | ||
106 | .eirq = 0, | ||
107 | .initial_state = HWBUTTON_HI, | ||
108 | .handle_hi = softreset_release, | ||
109 | .handle_lo = softreset_push, | ||
110 | .data = NULL, | ||
111 | }; | ||
112 | |||
113 | static struct hwbutton_interrupt standby_sw = { | ||
114 | .name = "Standby switch", | ||
115 | .irq = MSP_INT_EXT1, | ||
116 | .eirq = 1, | ||
117 | .initial_state = HWBUTTON_HI, | ||
118 | .handle_hi = standby_off, | ||
119 | .handle_lo = standby_on, | ||
120 | .data = NULL, | ||
121 | }; | ||
122 | #endif /* CONFIG_PMC_MSP7120_GW */ | ||
123 | |||
124 | static irqreturn_t hwbutton_handler(int irq, void *data) | ||
125 | { | ||
126 | struct hwbutton_interrupt *hirq = data; | ||
127 | unsigned long cic_ext = *CIC_EXT_CFG_REG; | ||
128 | |||
129 | if (irq != hirq->irq) | ||
130 | return IRQ_NONE; | ||
131 | |||
132 | if (CIC_EXT_IS_ACTIVE_HI(cic_ext, hirq->eirq)) { | ||
133 | /* Interrupt: pin is now HI */ | ||
134 | CIC_EXT_SET_ACTIVE_LO(cic_ext, hirq->eirq); | ||
135 | hirq->handle_hi(hirq->data); | ||
136 | } else { | ||
137 | /* Interrupt: pin is now LO */ | ||
138 | CIC_EXT_SET_ACTIVE_HI(cic_ext, hirq->eirq); | ||
139 | hirq->handle_lo(hirq->data); | ||
140 | } | ||
141 | |||
142 | /* | ||
143 | * Invert the POLARITY of this level interrupt to ack the interrupt | ||
144 | * Thus next state change will invoke the opposite message | ||
145 | */ | ||
146 | *CIC_EXT_CFG_REG = cic_ext; | ||
147 | |||
148 | return IRQ_HANDLED; | ||
149 | } | ||
150 | |||
151 | static int msp_hwbutton_register(struct hwbutton_interrupt *hirq) | ||
152 | { | ||
153 | unsigned long cic_ext; | ||
154 | |||
155 | if (hirq->handle_hi == NULL || hirq->handle_lo == NULL) | ||
156 | return -EINVAL; | ||
157 | |||
158 | cic_ext = *CIC_EXT_CFG_REG; | ||
159 | CIC_EXT_SET_TRIGGER_LEVEL(cic_ext, hirq->eirq); | ||
160 | if (hirq->initial_state == HWBUTTON_HI) | ||
161 | CIC_EXT_SET_ACTIVE_LO(cic_ext, hirq->eirq); | ||
162 | else | ||
163 | CIC_EXT_SET_ACTIVE_HI(cic_ext, hirq->eirq); | ||
164 | *CIC_EXT_CFG_REG = cic_ext; | ||
165 | |||
166 | return request_irq(hirq->irq, hwbutton_handler, SA_INTERRUPT, | ||
167 | hirq->name, (void *)hirq); | ||
168 | } | ||
169 | |||
170 | static int __init msp_hwbutton_setup(void) | ||
171 | { | ||
172 | #ifdef CONFIG_PMC_MSP7120_GW | ||
173 | msp_hwbutton_register(&softreset_sw); | ||
174 | msp_hwbutton_register(&standby_sw); | ||
175 | #endif | ||
176 | return 0; | ||
177 | } | ||
178 | |||
179 | subsys_initcall(msp_hwbutton_setup); | ||
diff --git a/arch/mips/pmc-sierra/msp71xx/msp_irq.c b/arch/mips/pmc-sierra/msp71xx/msp_irq.c new file mode 100644 index 000000000000..734d598a2e3a --- /dev/null +++ b/arch/mips/pmc-sierra/msp71xx/msp_irq.c | |||
@@ -0,0 +1,124 @@ | |||
1 | /* | ||
2 | * IRQ vector handles | ||
3 | * | ||
4 | * Copyright (C) 1995, 1996, 1997, 2003 by Ralf Baechle | ||
5 | * | ||
6 | * This file is subject to the terms and conditions of the GNU General Public | ||
7 | * License. See the file "COPYING" in the main directory of this archive | ||
8 | * for more details. | ||
9 | */ | ||
10 | |||
11 | #include <linux/kernel.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/irq.h> | ||
14 | #include <linux/interrupt.h> | ||
15 | #include <linux/ptrace.h> | ||
16 | #include <linux/time.h> | ||
17 | |||
18 | #include <asm/irq_cpu.h> | ||
19 | |||
20 | #include <msp_int.h> | ||
21 | |||
22 | extern void msp_int_handle(void); | ||
23 | |||
24 | /* SLP bases systems */ | ||
25 | extern void msp_slp_irq_init(void); | ||
26 | extern void msp_slp_irq_dispatch(void); | ||
27 | |||
28 | /* CIC based systems */ | ||
29 | extern void msp_cic_irq_init(void); | ||
30 | extern void msp_cic_irq_dispatch(void); | ||
31 | |||
32 | /* | ||
33 | * The PMC-Sierra MSP interrupts are arranged in a 3 level cascaded | ||
34 | * hierarchical system. The first level are the direct MIPS interrupts | ||
35 | * and are assigned the interrupt range 0-7. The second level is the SLM | ||
36 | * interrupt controller and is assigned the range 8-39. The third level | ||
37 | * comprises the Peripherial block, the PCI block, the PCI MSI block and | ||
38 | * the SLP. The PCI interrupts and the SLP errors are handled by the | ||
39 | * relevant subsystems so the core interrupt code needs only concern | ||
40 | * itself with the Peripheral block. These are assigned interrupts in | ||
41 | * the range 40-71. | ||
42 | */ | ||
43 | |||
44 | asmlinkage void plat_irq_dispatch(struct pt_regs *regs) | ||
45 | { | ||
46 | u32 pending; | ||
47 | |||
48 | pending = read_c0_status() & read_c0_cause(); | ||
49 | |||
50 | /* | ||
51 | * jump to the correct interrupt routine | ||
52 | * These are arranged in priority order and the timer | ||
53 | * comes first! | ||
54 | */ | ||
55 | |||
56 | #ifdef CONFIG_IRQ_MSP_CIC /* break out the CIC stuff for now */ | ||
57 | if (pending & C_IRQ4) /* do the peripherals first, that's the timer */ | ||
58 | msp_cic_irq_dispatch(); | ||
59 | |||
60 | else if (pending & C_IRQ0) | ||
61 | do_IRQ(MSP_INT_MAC0); | ||
62 | |||
63 | else if (pending & C_IRQ1) | ||
64 | do_IRQ(MSP_INT_MAC1); | ||
65 | |||
66 | else if (pending & C_IRQ2) | ||
67 | do_IRQ(MSP_INT_USB); | ||
68 | |||
69 | else if (pending & C_IRQ3) | ||
70 | do_IRQ(MSP_INT_SAR); | ||
71 | |||
72 | else if (pending & C_IRQ5) | ||
73 | do_IRQ(MSP_INT_SEC); | ||
74 | |||
75 | #else | ||
76 | if (pending & C_IRQ5) | ||
77 | do_IRQ(MSP_INT_TIMER); | ||
78 | |||
79 | else if (pending & C_IRQ0) | ||
80 | do_IRQ(MSP_INT_MAC0); | ||
81 | |||
82 | else if (pending & C_IRQ1) | ||
83 | do_IRQ(MSP_INT_MAC1); | ||
84 | |||
85 | else if (pending & C_IRQ3) | ||
86 | do_IRQ(MSP_INT_VE); | ||
87 | |||
88 | else if (pending & C_IRQ4) | ||
89 | msp_slp_irq_dispatch(); | ||
90 | #endif | ||
91 | |||
92 | else if (pending & C_SW0) /* do software after hardware */ | ||
93 | do_IRQ(MSP_INT_SW0); | ||
94 | |||
95 | else if (pending & C_SW1) | ||
96 | do_IRQ(MSP_INT_SW1); | ||
97 | } | ||
98 | |||
99 | static struct irqaction cascade_msp = { | ||
100 | .handler = no_action, | ||
101 | .name = "MSP cascade" | ||
102 | }; | ||
103 | |||
104 | |||
105 | void __init arch_init_irq(void) | ||
106 | { | ||
107 | /* initialize the 1st-level CPU based interrupt controller */ | ||
108 | mips_cpu_irq_init(); | ||
109 | |||
110 | #ifdef CONFIG_IRQ_MSP_CIC | ||
111 | msp_cic_irq_init(); | ||
112 | |||
113 | /* setup the cascaded interrupts */ | ||
114 | setup_irq(MSP_INT_CIC, &cascade_msp); | ||
115 | setup_irq(MSP_INT_PER, &cascade_msp); | ||
116 | #else | ||
117 | /* setup the 2nd-level SLP register based interrupt controller */ | ||
118 | msp_slp_irq_init(); | ||
119 | |||
120 | /* setup the cascaded SLP/PER interrupts */ | ||
121 | setup_irq(MSP_INT_SLP, &cascade_msp); | ||
122 | setup_irq(MSP_INT_PER, &cascade_msp); | ||
123 | #endif | ||
124 | } | ||
diff --git a/arch/mips/pmc-sierra/msp71xx/msp_irq_cic.c b/arch/mips/pmc-sierra/msp71xx/msp_irq_cic.c new file mode 100644 index 000000000000..5175357d0a25 --- /dev/null +++ b/arch/mips/pmc-sierra/msp71xx/msp_irq_cic.c | |||
@@ -0,0 +1,134 @@ | |||
1 | /* | ||
2 | * This file define the irq handler for MSP SLM subsystem interrupts. | ||
3 | * | ||
4 | * Copyright 2005-2007 PMC-Sierra, Inc, derived from irq_cpu.c | ||
5 | * Author: Andrew Hughes, Andrew_Hughes@pmc-sierra.com | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License as published by the | ||
9 | * Free Software Foundation; either version 2 of the License, or (at your | ||
10 | * option) any later version. | ||
11 | */ | ||
12 | |||
13 | #include <linux/init.h> | ||
14 | #include <linux/interrupt.h> | ||
15 | #include <linux/kernel.h> | ||
16 | #include <linux/bitops.h> | ||
17 | |||
18 | #include <asm/system.h> | ||
19 | |||
20 | #include <msp_cic_int.h> | ||
21 | #include <msp_regs.h> | ||
22 | |||
23 | /* | ||
24 | * NOTE: We are only enabling support for VPE0 right now. | ||
25 | */ | ||
26 | |||
27 | static inline void unmask_msp_cic_irq(unsigned int irq) | ||
28 | { | ||
29 | |||
30 | /* check for PER interrupt range */ | ||
31 | if (irq < MSP_PER_INTBASE) | ||
32 | *CIC_VPE0_MSK_REG |= (1 << (irq - MSP_CIC_INTBASE)); | ||
33 | else | ||
34 | *PER_INT_MSK_REG |= (1 << (irq - MSP_PER_INTBASE)); | ||
35 | } | ||
36 | |||
37 | static inline void mask_msp_cic_irq(unsigned int irq) | ||
38 | { | ||
39 | /* check for PER interrupt range */ | ||
40 | if (irq < MSP_PER_INTBASE) | ||
41 | *CIC_VPE0_MSK_REG &= ~(1 << (irq - MSP_CIC_INTBASE)); | ||
42 | else | ||
43 | *PER_INT_MSK_REG &= ~(1 << (irq - MSP_PER_INTBASE)); | ||
44 | } | ||
45 | |||
46 | /* | ||
47 | * While we ack the interrupt interrupts are disabled and thus we don't need | ||
48 | * to deal with concurrency issues. Same for msp_cic_irq_end. | ||
49 | */ | ||
50 | static inline void ack_msp_cic_irq(unsigned int irq) | ||
51 | { | ||
52 | mask_msp_cic_irq(irq); | ||
53 | |||
54 | /* | ||
55 | * only really necessary for 18, 16-14 and sometimes 3:0 (since | ||
56 | * these can be edge sensitive) but it doesn't hurt for the others. | ||
57 | */ | ||
58 | |||
59 | /* check for PER interrupt range */ | ||
60 | if (irq < MSP_PER_INTBASE) | ||
61 | *CIC_STS_REG = (1 << (irq - MSP_CIC_INTBASE)); | ||
62 | else | ||
63 | *PER_INT_STS_REG = (1 << (irq - MSP_PER_INTBASE)); | ||
64 | } | ||
65 | |||
66 | static struct irq_chip msp_cic_irq_controller = { | ||
67 | .name = "MSP_CIC", | ||
68 | .ack = ack_msp_cic_irq, | ||
69 | .mask = ack_msp_cic_irq, | ||
70 | .mask_ack = ack_msp_cic_irq, | ||
71 | .unmask = unmask_msp_cic_irq, | ||
72 | }; | ||
73 | |||
74 | |||
75 | void __init msp_cic_irq_init(void) | ||
76 | { | ||
77 | int i; | ||
78 | |||
79 | /* Mask/clear interrupts. */ | ||
80 | *CIC_VPE0_MSK_REG = 0x00000000; | ||
81 | *PER_INT_MSK_REG = 0x00000000; | ||
82 | *CIC_STS_REG = 0xFFFFFFFF; | ||
83 | *PER_INT_STS_REG = 0xFFFFFFFF; | ||
84 | |||
85 | #if defined(CONFIG_PMC_MSP7120_GW) || \ | ||
86 | defined(CONFIG_PMC_MSP7120_EVAL) | ||
87 | /* | ||
88 | * The MSP7120 RG and EVBD boards use IRQ[6:4] for PCI. | ||
89 | * These inputs map to EXT_INT_POL[6:4] inside the CIC. | ||
90 | * They are to be active low, level sensitive. | ||
91 | */ | ||
92 | *CIC_EXT_CFG_REG &= 0xFFFF8F8F; | ||
93 | #endif | ||
94 | |||
95 | /* initialize all the IRQ descriptors */ | ||
96 | for (i = MSP_CIC_INTBASE; i < MSP_PER_INTBASE + 32; i++) | ||
97 | set_irq_chip_and_handler(i, &msp_cic_irq_controller, | ||
98 | handle_level_irq); | ||
99 | } | ||
100 | |||
101 | void msp_cic_irq_dispatch(void) | ||
102 | { | ||
103 | u32 pending; | ||
104 | int intbase; | ||
105 | |||
106 | intbase = MSP_CIC_INTBASE; | ||
107 | pending = *CIC_STS_REG & *CIC_VPE0_MSK_REG; | ||
108 | |||
109 | /* check for PER interrupt */ | ||
110 | if (pending == (1 << (MSP_INT_PER - MSP_CIC_INTBASE))) { | ||
111 | intbase = MSP_PER_INTBASE; | ||
112 | pending = *PER_INT_STS_REG & *PER_INT_MSK_REG; | ||
113 | } | ||
114 | |||
115 | /* check for spurious interrupt */ | ||
116 | if (pending == 0x00000000) { | ||
117 | printk(KERN_ERR | ||
118 | "Spurious %s interrupt? status %08x, mask %08x\n", | ||
119 | (intbase == MSP_CIC_INTBASE) ? "CIC" : "PER", | ||
120 | (intbase == MSP_CIC_INTBASE) ? | ||
121 | *CIC_STS_REG : *PER_INT_STS_REG, | ||
122 | (intbase == MSP_CIC_INTBASE) ? | ||
123 | *CIC_VPE0_MSK_REG : *PER_INT_MSK_REG); | ||
124 | return; | ||
125 | } | ||
126 | |||
127 | /* check for the timer and dispatch it first */ | ||
128 | if ((intbase == MSP_CIC_INTBASE) && | ||
129 | (pending & (1 << (MSP_INT_VPE0_TIMER - MSP_CIC_INTBASE)))) | ||
130 | do_IRQ(MSP_INT_VPE0_TIMER); | ||
131 | else | ||
132 | do_IRQ(ffs(pending) + intbase - 1); | ||
133 | } | ||
134 | |||
diff --git a/arch/mips/pmc-sierra/msp71xx/msp_irq_slp.c b/arch/mips/pmc-sierra/msp71xx/msp_irq_slp.c new file mode 100644 index 000000000000..f5f1b8d2bb9a --- /dev/null +++ b/arch/mips/pmc-sierra/msp71xx/msp_irq_slp.c | |||
@@ -0,0 +1,109 @@ | |||
1 | /* | ||
2 | * This file define the irq handler for MSP SLM subsystem interrupts. | ||
3 | * | ||
4 | * Copyright 2005-2006 PMC-Sierra, Inc, derived from irq_cpu.c | ||
5 | * Author: Andrew Hughes, Andrew_Hughes@pmc-sierra.com | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License as published by the | ||
9 | * Free Software Foundation; either version 2 of the License, or (at your | ||
10 | * option) any later version. | ||
11 | */ | ||
12 | |||
13 | #include <linux/init.h> | ||
14 | #include <linux/interrupt.h> | ||
15 | #include <linux/kernel.h> | ||
16 | #include <linux/bitops.h> | ||
17 | |||
18 | #include <asm/mipsregs.h> | ||
19 | #include <asm/system.h> | ||
20 | |||
21 | #include <msp_slp_int.h> | ||
22 | #include <msp_regs.h> | ||
23 | |||
24 | static inline void unmask_msp_slp_irq(unsigned int irq) | ||
25 | { | ||
26 | /* check for PER interrupt range */ | ||
27 | if (irq < MSP_PER_INTBASE) | ||
28 | *SLP_INT_MSK_REG |= (1 << (irq - MSP_SLP_INTBASE)); | ||
29 | else | ||
30 | *PER_INT_MSK_REG |= (1 << (irq - MSP_PER_INTBASE)); | ||
31 | } | ||
32 | |||
33 | static inline void mask_msp_slp_irq(unsigned int irq) | ||
34 | { | ||
35 | /* check for PER interrupt range */ | ||
36 | if (irq < MSP_PER_INTBASE) | ||
37 | *SLP_INT_MSK_REG &= ~(1 << (irq - MSP_SLP_INTBASE)); | ||
38 | else | ||
39 | *PER_INT_MSK_REG &= ~(1 << (irq - MSP_PER_INTBASE)); | ||
40 | } | ||
41 | |||
42 | /* | ||
43 | * While we ack the interrupt interrupts are disabled and thus we don't need | ||
44 | * to deal with concurrency issues. Same for msp_slp_irq_end. | ||
45 | */ | ||
46 | static inline void ack_msp_slp_irq(unsigned int irq) | ||
47 | { | ||
48 | mask_slp_irq(irq); | ||
49 | |||
50 | /* | ||
51 | * only really necessary for 18, 16-14 and sometimes 3:0 (since | ||
52 | * these can be edge sensitive) but it doesn't hurt for the others. | ||
53 | */ | ||
54 | |||
55 | /* check for PER interrupt range */ | ||
56 | if (irq < MSP_PER_INTBASE) | ||
57 | *SLP_INT_STS_REG = (1 << (irq - MSP_SLP_INTBASE)); | ||
58 | else | ||
59 | *PER_INT_STS_REG = (1 << (irq - MSP_PER_INTBASE)); | ||
60 | } | ||
61 | |||
62 | static struct irq_chip msp_slp_irq_controller = { | ||
63 | .name = "MSP_SLP", | ||
64 | .ack = ack_msp_slp_irq, | ||
65 | .mask = ack_msp_slp_irq, | ||
66 | .mask_ack = ack_msp_slp_irq, | ||
67 | .unmask = unmask_msp_slp_irq, | ||
68 | }; | ||
69 | |||
70 | void __init msp_slp_irq_init(void) | ||
71 | { | ||
72 | int i; | ||
73 | |||
74 | /* Mask/clear interrupts. */ | ||
75 | *SLP_INT_MSK_REG = 0x00000000; | ||
76 | *PER_INT_MSK_REG = 0x00000000; | ||
77 | *SLP_INT_STS_REG = 0xFFFFFFFF; | ||
78 | *PER_INT_STS_REG = 0xFFFFFFFF; | ||
79 | |||
80 | /* initialize all the IRQ descriptors */ | ||
81 | for (i = MSP_SLP_INTBASE; i < MSP_PER_INTBASE + 32; i++) | ||
82 | set_irq_chip_and_handler(i, &msp_slp_irq_controller | ||
83 | handle_level_irq); | ||
84 | } | ||
85 | |||
86 | void msp_slp_irq_dispatch(void) | ||
87 | { | ||
88 | u32 pending; | ||
89 | int intbase; | ||
90 | |||
91 | intbase = MSP_SLP_INTBASE; | ||
92 | pending = *SLP_INT_STS_REG & *SLP_INT_MSK_REG; | ||
93 | |||
94 | /* check for PER interrupt */ | ||
95 | if (pending == (1 << (MSP_INT_PER - MSP_SLP_INTBASE))) { | ||
96 | intbase = MSP_PER_INTBASE; | ||
97 | pending = *PER_INT_STS_REG & *PER_INT_MSK_REG; | ||
98 | } | ||
99 | |||
100 | /* check for spurious interrupt */ | ||
101 | if (pending == 0x00000000) { | ||
102 | printk(KERN_ERR "Spurious %s interrupt?\n", | ||
103 | (intbase == MSP_SLP_INTBASE) ? "SLP" : "PER"); | ||
104 | return; | ||
105 | } | ||
106 | |||
107 | /* dispatch the irq */ | ||
108 | do_IRQ(ffs(pending) + intbase - 1); | ||
109 | } | ||
diff --git a/arch/mips/momentum/ocelot_3/ocelot_3_fpga.h b/arch/mips/pmc-sierra/msp71xx/msp_pci.c index 5710a9029f1c..f764fe7748d6 100644 --- a/arch/mips/momentum/ocelot_3/ocelot_3_fpga.h +++ b/arch/mips/pmc-sierra/msp71xx/msp_pci.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Ocelot-3 Board Register Definitions | 2 | * The setup file for PCI related hardware on PMC-Sierra MSP processors. |
3 | * | 3 | * |
4 | * (C) 2002 Momentum Computer Inc. | 4 | * Copyright 2005-2006 PMC-Sierra, Inc. |
5 | * | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify it | 6 | * This program is free software; you can redistribute it and/or modify it |
7 | * under the terms of the GNU General Public License as published by the | 7 | * under the terms of the GNU General Public License as published by the |
@@ -22,38 +22,29 @@ | |||
22 | * You should have received a copy of the GNU General Public License along | 22 | * You should have received a copy of the GNU General Public License along |
23 | * with this program; if not, write to the Free Software Foundation, Inc., | 23 | * with this program; if not, write to the Free Software Foundation, Inc., |
24 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 24 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
25 | * | ||
26 | * Louis Hamilton, Red Hat, Inc. | ||
27 | * hamilton@redhat.com [MIPS64 modifications] | ||
28 | * | ||
29 | * Copyright (C) 2004 MontaVista Software Inc. | ||
30 | * Author: Manish Lachwani, mlachwani@mvista.com | ||
31 | */ | 25 | */ |
32 | 26 | ||
33 | #ifndef __OCELOT_3_FPGA_H__ | 27 | #include <linux/init.h> |
34 | #define __OCELOT_3_FPGA_H__ | 28 | |
35 | 29 | #include <msp_prom.h> | |
36 | #define OCELOT_3_REG_BOARDREV 0x0 | 30 | #include <msp_regs.h> |
37 | #define OCELOT_3_REG_FPGA_REV 0x1 | 31 | |
38 | #define OCELOT_3_REG_FPGA_TYPE 0x2 | 32 | extern void msp_pci_init(void); |
39 | #define OCELOT_3_REG_RESET_STATUS 0x3 | ||
40 | #define OCELOT_3_REG_BOARD_STATUS 0x4 | ||
41 | #define OCELOT_3_REG_CPCI_ID 0x5 | ||
42 | #define OCELOT_3_REG_SET 0x6 | ||
43 | #define OCELOT_3_REG_CLR 0x7 | ||
44 | #define OCELOT_3_REG_EEPROM_MODE 0x9 | ||
45 | #define OCELOT_3_REG_INTMASK 0xa | ||
46 | #define OCELOT_3_REG_INTSTAT 0xb | ||
47 | #define OCELOT_3_REG_UART_INTMASK 0xc | ||
48 | #define OCELOT_3_REG_UART_INTSTAT 0xd | ||
49 | #define OCELOT_3_REG_INTSET 0xe | ||
50 | #define OCELOT_3_REG_INTCLR 0xf | ||
51 | |||
52 | extern unsigned long ocelot_fpga_base; | ||
53 | |||
54 | #define __FPGA_REG_TO_ADDR(reg) \ | ||
55 | ((void *) ocelot_fpga_base + OCELOT_3_REG_##reg) | ||
56 | #define OCELOT_FPGA_WRITE(x, reg) writeb(x, __FPGA_REG_TO_ADDR(reg)) | ||
57 | #define OCELOT_FPGA_READ(reg) readb(__FPGA_REG_TO_ADDR(reg)) | ||
58 | 33 | ||
34 | static int __init msp_pci_setup(void) | ||
35 | { | ||
36 | #if 0 /* Linux 2.6 initialization code to be completed */ | ||
37 | if (getdeviceid() & DEV_ID_SINGLE_PC) { | ||
38 | /* If single card mode */ | ||
39 | slmRegs *sreg = (slmRegs *) SREG_BASE; | ||
40 | |||
41 | sreg->single_pc_enable = SINGLE_PCCARD; | ||
42 | } | ||
59 | #endif | 43 | #endif |
44 | |||
45 | msp_pci_init(); | ||
46 | |||
47 | return 0; | ||
48 | } | ||
49 | |||
50 | subsys_initcall(msp_pci_setup); | ||
diff --git a/arch/mips/pmc-sierra/msp71xx/msp_prom.c b/arch/mips/pmc-sierra/msp71xx/msp_prom.c new file mode 100644 index 000000000000..e5bd5481d8db --- /dev/null +++ b/arch/mips/pmc-sierra/msp71xx/msp_prom.c | |||
@@ -0,0 +1,566 @@ | |||
1 | /* | ||
2 | * BRIEF MODULE DESCRIPTION | ||
3 | * PROM library initialisation code, assuming a version of | ||
4 | * pmon is the boot code. | ||
5 | * | ||
6 | * Copyright 2000,2001 MontaVista Software Inc. | ||
7 | * Author: MontaVista Software, Inc. | ||
8 | * ppopov@mvista.com or source@mvista.com | ||
9 | * | ||
10 | * This file was derived from Carsten Langgaard's | ||
11 | * arch/mips/mips-boards/xx files. | ||
12 | * | ||
13 | * Carsten Langgaard, carstenl@mips.com | ||
14 | * Copyright (C) 1999,2000 MIPS Technologies, Inc. All rights reserved. | ||
15 | * | ||
16 | * This program is free software; you can redistribute it and/or modify it | ||
17 | * under the terms of the GNU General Public License as published by the | ||
18 | * Free Software Foundation; either version 2 of the License, or (at your | ||
19 | * option) any later version. | ||
20 | * | ||
21 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | ||
22 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
23 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN | ||
24 | * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
25 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
26 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | ||
27 | * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||
28 | * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
29 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
30 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
31 | * | ||
32 | * You should have received a copy of the GNU General Public License along | ||
33 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
34 | * 675 Mass Ave, Cambridge, MA 02139, USA. | ||
35 | */ | ||
36 | |||
37 | #include <linux/module.h> | ||
38 | #include <linux/kernel.h> | ||
39 | #include <linux/init.h> | ||
40 | #include <linux/string.h> | ||
41 | #include <linux/interrupt.h> | ||
42 | #include <linux/mm.h> | ||
43 | #ifdef CONFIG_CRAMFS | ||
44 | #include <linux/cramfs_fs.h> | ||
45 | #endif | ||
46 | #ifdef CONFIG_SQUASHFS | ||
47 | #include <linux/squashfs_fs.h> | ||
48 | #endif | ||
49 | |||
50 | #include <asm/addrspace.h> | ||
51 | #include <asm/bootinfo.h> | ||
52 | #include <asm-generic/sections.h> | ||
53 | #include <asm/page.h> | ||
54 | |||
55 | #include <msp_prom.h> | ||
56 | #include <msp_regs.h> | ||
57 | |||
58 | /* global PROM environment variables and pointers */ | ||
59 | int prom_argc; | ||
60 | char **prom_argv, **prom_envp; | ||
61 | int *prom_vec; | ||
62 | |||
63 | /* debug flag */ | ||
64 | int init_debug = 1; | ||
65 | |||
66 | /* memory blocks */ | ||
67 | struct prom_pmemblock mdesc[PROM_MAX_PMEMBLOCKS]; | ||
68 | |||
69 | /* default feature sets */ | ||
70 | static char msp_default_features[] = | ||
71 | #if defined(CONFIG_PMC_MSP4200_EVAL) \ | ||
72 | || defined(CONFIG_PMC_MSP4200_GW) | ||
73 | "ERER"; | ||
74 | #elif defined(CONFIG_PMC_MSP7120_EVAL) \ | ||
75 | || defined(CONFIG_PMC_MSP7120_GW) | ||
76 | "EMEMSP"; | ||
77 | #elif defined(CONFIG_PMC_MSP7120_FPGA) | ||
78 | "EMEM"; | ||
79 | #endif | ||
80 | |||
81 | /* conversion functions */ | ||
82 | static inline unsigned char str2hexnum(unsigned char c) | ||
83 | { | ||
84 | if (c >= '0' && c <= '9') | ||
85 | return c - '0'; | ||
86 | if (c >= 'a' && c <= 'f') | ||
87 | return c - 'a' + 10; | ||
88 | return 0; /* foo */ | ||
89 | } | ||
90 | |||
91 | static inline int str2eaddr(unsigned char *ea, unsigned char *str) | ||
92 | { | ||
93 | int index = 0; | ||
94 | unsigned char num = 0; | ||
95 | |||
96 | while (*str != '\0') { | ||
97 | if ((*str == '.') || (*str == ':')) { | ||
98 | ea[index++] = num; | ||
99 | num = 0; | ||
100 | str++; | ||
101 | } else { | ||
102 | num = num << 4; | ||
103 | num |= str2hexnum(*str++); | ||
104 | } | ||
105 | } | ||
106 | |||
107 | if (index == 5) { | ||
108 | ea[index++] = num; | ||
109 | return 0; | ||
110 | } else | ||
111 | return -1; | ||
112 | } | ||
113 | EXPORT_SYMBOL(str2eaddr); | ||
114 | |||
115 | static inline unsigned long str2hex(unsigned char *str) | ||
116 | { | ||
117 | int value = 0; | ||
118 | |||
119 | while (*str) { | ||
120 | value = value << 4; | ||
121 | value |= str2hexnum(*str++); | ||
122 | } | ||
123 | |||
124 | return value; | ||
125 | } | ||
126 | |||
127 | /* function to query the system information */ | ||
128 | const char *get_system_type(void) | ||
129 | { | ||
130 | #if defined(CONFIG_PMC_MSP4200_EVAL) | ||
131 | return "PMC-Sierra MSP4200 Eval Board"; | ||
132 | #elif defined(CONFIG_PMC_MSP4200_GW) | ||
133 | return "PMC-Sierra MSP4200 VoIP Gateway"; | ||
134 | #elif defined(CONFIG_PMC_MSP7120_EVAL) | ||
135 | return "PMC-Sierra MSP7120 Eval Board"; | ||
136 | #elif defined(CONFIG_PMC_MSP7120_GW) | ||
137 | return "PMC-Sierra MSP7120 Residential Gateway"; | ||
138 | #elif defined(CONFIG_PMC_MSP7120_FPGA) | ||
139 | return "PMC-Sierra MSP7120 FPGA"; | ||
140 | #else | ||
141 | #error "What is the type of *your* MSP?" | ||
142 | #endif | ||
143 | } | ||
144 | |||
145 | int get_ethernet_addr(char *ethaddr_name, char *ethernet_addr) | ||
146 | { | ||
147 | char *ethaddr_str; | ||
148 | |||
149 | ethaddr_str = prom_getenv(ethaddr_name); | ||
150 | if (!ethaddr_str) { | ||
151 | printk(KERN_WARNING "%s not set in boot prom\n", ethaddr_name); | ||
152 | return -1; | ||
153 | } | ||
154 | |||
155 | if (str2eaddr(ethernet_addr, ethaddr_str) == -1) { | ||
156 | printk(KERN_WARNING "%s badly formatted-<%s>\n", | ||
157 | ethaddr_name, ethaddr_str); | ||
158 | return -1; | ||
159 | } | ||
160 | |||
161 | if (init_debug > 1) { | ||
162 | int i; | ||
163 | printk(KERN_DEBUG "get_ethernet_addr: for %s ", ethaddr_name); | ||
164 | for (i = 0; i < 5; i++) | ||
165 | printk(KERN_DEBUG "%02x:", | ||
166 | (unsigned char)*(ethernet_addr+i)); | ||
167 | printk(KERN_DEBUG "%02x\n", *(ethernet_addr+i)); | ||
168 | } | ||
169 | |||
170 | return 0; | ||
171 | } | ||
172 | EXPORT_SYMBOL(get_ethernet_addr); | ||
173 | |||
174 | static char *get_features(void) | ||
175 | { | ||
176 | char *feature = prom_getenv(FEATURES); | ||
177 | |||
178 | if (feature == NULL) { | ||
179 | /* default features based on MACHINE_TYPE */ | ||
180 | feature = msp_default_features; | ||
181 | } | ||
182 | |||
183 | return feature; | ||
184 | } | ||
185 | |||
186 | static char test_feature(char c) | ||
187 | { | ||
188 | char *feature = get_features(); | ||
189 | |||
190 | while (*feature) { | ||
191 | if (*feature++ == c) | ||
192 | return *feature; | ||
193 | feature++; | ||
194 | } | ||
195 | |||
196 | return FEATURE_NOEXIST; | ||
197 | } | ||
198 | |||
199 | unsigned long get_deviceid(void) | ||
200 | { | ||
201 | char *deviceid = prom_getenv(DEVICEID); | ||
202 | |||
203 | if (deviceid == NULL) | ||
204 | return *DEV_ID_REG; | ||
205 | else | ||
206 | return str2hex(deviceid); | ||
207 | } | ||
208 | |||
209 | char identify_pci(void) | ||
210 | { | ||
211 | return test_feature(PCI_KEY); | ||
212 | } | ||
213 | EXPORT_SYMBOL(identify_pci); | ||
214 | |||
215 | char identify_pcimux(void) | ||
216 | { | ||
217 | return test_feature(PCIMUX_KEY); | ||
218 | } | ||
219 | |||
220 | char identify_sec(void) | ||
221 | { | ||
222 | return test_feature(SEC_KEY); | ||
223 | } | ||
224 | EXPORT_SYMBOL(identify_sec); | ||
225 | |||
226 | char identify_spad(void) | ||
227 | { | ||
228 | return test_feature(SPAD_KEY); | ||
229 | } | ||
230 | EXPORT_SYMBOL(identify_spad); | ||
231 | |||
232 | char identify_tdm(void) | ||
233 | { | ||
234 | return test_feature(TDM_KEY); | ||
235 | } | ||
236 | EXPORT_SYMBOL(identify_tdm); | ||
237 | |||
238 | char identify_zsp(void) | ||
239 | { | ||
240 | return test_feature(ZSP_KEY); | ||
241 | } | ||
242 | EXPORT_SYMBOL(identify_zsp); | ||
243 | |||
244 | static char identify_enetfeature(char key, unsigned long interface_num) | ||
245 | { | ||
246 | char *feature = get_features(); | ||
247 | |||
248 | while (*feature) { | ||
249 | if (*feature++ == key && interface_num-- == 0) | ||
250 | return *feature; | ||
251 | feature++; | ||
252 | } | ||
253 | |||
254 | return FEATURE_NOEXIST; | ||
255 | } | ||
256 | |||
257 | char identify_enet(unsigned long interface_num) | ||
258 | { | ||
259 | return identify_enetfeature(ENET_KEY, interface_num); | ||
260 | } | ||
261 | EXPORT_SYMBOL(identify_enet); | ||
262 | |||
263 | char identify_enetTxD(unsigned long interface_num) | ||
264 | { | ||
265 | return identify_enetfeature(ENETTXD_KEY, interface_num); | ||
266 | } | ||
267 | EXPORT_SYMBOL(identify_enetTxD); | ||
268 | |||
269 | unsigned long identify_family(void) | ||
270 | { | ||
271 | unsigned long deviceid; | ||
272 | |||
273 | deviceid = get_deviceid(); | ||
274 | |||
275 | return deviceid & CPU_DEVID_FAMILY; | ||
276 | } | ||
277 | EXPORT_SYMBOL(identify_family); | ||
278 | |||
279 | unsigned long identify_revision(void) | ||
280 | { | ||
281 | unsigned long deviceid; | ||
282 | |||
283 | deviceid = get_deviceid(); | ||
284 | |||
285 | return deviceid & CPU_DEVID_REVISION; | ||
286 | } | ||
287 | EXPORT_SYMBOL(identify_revision); | ||
288 | |||
289 | /* PROM environment functions */ | ||
290 | char *prom_getenv(char *env_name) | ||
291 | { | ||
292 | /* | ||
293 | * Return a pointer to the given environment variable. prom_envp | ||
294 | * points to a null terminated array of pointers to variables. | ||
295 | * Environment variables are stored in the form of "memsize=64" | ||
296 | */ | ||
297 | |||
298 | char **var = prom_envp; | ||
299 | int i = strlen(env_name); | ||
300 | |||
301 | while (*var) { | ||
302 | if (strncmp(env_name, *var, i) == 0) { | ||
303 | return (*var + strlen(env_name) + 1); | ||
304 | } | ||
305 | var++; | ||
306 | } | ||
307 | |||
308 | return NULL; | ||
309 | } | ||
310 | |||
311 | /* PROM commandline functions */ | ||
312 | char *prom_getcmdline(void) | ||
313 | { | ||
314 | return &(arcs_cmdline[0]); | ||
315 | } | ||
316 | EXPORT_SYMBOL(prom_getcmdline); | ||
317 | |||
318 | void __init prom_init_cmdline(void) | ||
319 | { | ||
320 | char *cp; | ||
321 | int actr; | ||
322 | |||
323 | actr = 1; /* Always ignore argv[0] */ | ||
324 | |||
325 | cp = &(arcs_cmdline[0]); | ||
326 | while (actr < prom_argc) { | ||
327 | strcpy(cp, prom_argv[actr]); | ||
328 | cp += strlen(prom_argv[actr]); | ||
329 | *cp++ = ' '; | ||
330 | actr++; | ||
331 | } | ||
332 | if (cp != &(arcs_cmdline[0])) /* get rid of trailing space */ | ||
333 | --cp; | ||
334 | *cp = '\0'; | ||
335 | } | ||
336 | |||
337 | /* memory allocation functions */ | ||
338 | static int __init prom_memtype_classify(unsigned int type) | ||
339 | { | ||
340 | switch (type) { | ||
341 | case yamon_free: | ||
342 | return BOOT_MEM_RAM; | ||
343 | case yamon_prom: | ||
344 | return BOOT_MEM_ROM_DATA; | ||
345 | default: | ||
346 | return BOOT_MEM_RESERVED; | ||
347 | } | ||
348 | } | ||
349 | |||
350 | void __init prom_meminit(void) | ||
351 | { | ||
352 | struct prom_pmemblock *p; | ||
353 | |||
354 | p = prom_getmdesc(); | ||
355 | |||
356 | while (p->size) { | ||
357 | long type; | ||
358 | unsigned long base, size; | ||
359 | |||
360 | type = prom_memtype_classify(p->type); | ||
361 | base = p->base; | ||
362 | size = p->size; | ||
363 | |||
364 | add_memory_region(base, size, type); | ||
365 | p++; | ||
366 | } | ||
367 | } | ||
368 | |||
369 | void __init prom_free_prom_memory(void) | ||
370 | { | ||
371 | int argc; | ||
372 | char **argv; | ||
373 | char **envp; | ||
374 | char *ptr; | ||
375 | int len = 0; | ||
376 | int i; | ||
377 | unsigned long addr; | ||
378 | |||
379 | /* | ||
380 | * preserve environment variables and command line from pmon/bbload | ||
381 | * first preserve the command line | ||
382 | */ | ||
383 | for (argc = 0; argc < prom_argc; argc++) { | ||
384 | len += sizeof(char *); /* length of pointer */ | ||
385 | len += strlen(prom_argv[argc]) + 1; /* length of string */ | ||
386 | } | ||
387 | len += sizeof(char *); /* plus length of null pointer */ | ||
388 | |||
389 | argv = kmalloc(len, GFP_KERNEL); | ||
390 | ptr = (char *) &argv[prom_argc + 1]; /* strings follow array */ | ||
391 | |||
392 | for (argc = 0; argc < prom_argc; argc++) { | ||
393 | argv[argc] = ptr; | ||
394 | strcpy(ptr, prom_argv[argc]); | ||
395 | ptr += strlen(prom_argv[argc]) + 1; | ||
396 | } | ||
397 | argv[prom_argc] = NULL; /* end array with null pointer */ | ||
398 | prom_argv = argv; | ||
399 | |||
400 | /* next preserve the environment variables */ | ||
401 | len = 0; | ||
402 | i = 0; | ||
403 | for (envp = prom_envp; *envp != NULL; envp++) { | ||
404 | i++; /* count number of environment variables */ | ||
405 | len += sizeof(char *); /* length of pointer */ | ||
406 | len += strlen(*envp) + 1; /* length of string */ | ||
407 | } | ||
408 | len += sizeof(char *); /* plus length of null pointer */ | ||
409 | |||
410 | envp = kmalloc(len, GFP_KERNEL); | ||
411 | ptr = (char *) &envp[i+1]; | ||
412 | |||
413 | for (argc = 0; argc < i; argc++) { | ||
414 | envp[argc] = ptr; | ||
415 | strcpy(ptr, prom_envp[argc]); | ||
416 | ptr += strlen(prom_envp[argc]) + 1; | ||
417 | } | ||
418 | envp[i] = NULL; /* end array with null pointer */ | ||
419 | prom_envp = envp; | ||
420 | |||
421 | for (i = 0; i < boot_mem_map.nr_map; i++) { | ||
422 | if (boot_mem_map.map[i].type != BOOT_MEM_ROM_DATA) | ||
423 | continue; | ||
424 | |||
425 | addr = boot_mem_map.map[i].addr; | ||
426 | free_init_pages("prom memory", | ||
427 | addr, addr + boot_mem_map.map[i].size); | ||
428 | } | ||
429 | } | ||
430 | |||
431 | struct prom_pmemblock *__init prom_getmdesc(void) | ||
432 | { | ||
433 | static char memsz_env[] __initdata = "memsize"; | ||
434 | static char heaptop_env[] __initdata = "heaptop"; | ||
435 | char *str; | ||
436 | unsigned int memsize; | ||
437 | unsigned int heaptop; | ||
438 | #ifdef CONFIG_MTD_PMC_MSP_RAMROOT | ||
439 | void *ramroot_start; | ||
440 | unsigned long ramroot_size; | ||
441 | #endif | ||
442 | int i; | ||
443 | |||
444 | str = prom_getenv(memsz_env); | ||
445 | if (!str) { | ||
446 | ppfinit("memsize not set in boot prom, " | ||
447 | "set to default (32Mb)\n"); | ||
448 | memsize = 0x02000000; | ||
449 | } else { | ||
450 | memsize = simple_strtol(str, NULL, 0); | ||
451 | |||
452 | if (memsize == 0) { | ||
453 | /* if memsize is a bad size, use reasonable default */ | ||
454 | memsize = 0x02000000; | ||
455 | } | ||
456 | |||
457 | /* convert to physical address (removing caching bits, etc) */ | ||
458 | memsize = CPHYSADDR(memsize); | ||
459 | } | ||
460 | |||
461 | str = prom_getenv(heaptop_env); | ||
462 | if (!str) { | ||
463 | heaptop = CPHYSADDR((u32)&_text); | ||
464 | ppfinit("heaptop not set in boot prom, " | ||
465 | "set to default 0x%08x\n", heaptop); | ||
466 | } else { | ||
467 | heaptop = simple_strtol(str, NULL, 16); | ||
468 | if (heaptop == 0) { | ||
469 | /* heaptop conversion bad, might have 0xValue */ | ||
470 | heaptop = simple_strtol(str, NULL, 0); | ||
471 | |||
472 | if (heaptop == 0) { | ||
473 | /* heaptop still bad, use reasonable default */ | ||
474 | heaptop = CPHYSADDR((u32)&_text); | ||
475 | } | ||
476 | } | ||
477 | |||
478 | /* convert to physical address (removing caching bits, etc) */ | ||
479 | heaptop = CPHYSADDR((u32)heaptop); | ||
480 | } | ||
481 | |||
482 | /* the base region */ | ||
483 | i = 0; | ||
484 | mdesc[i].type = BOOT_MEM_RESERVED; | ||
485 | mdesc[i].base = 0x00000000; | ||
486 | mdesc[i].size = PAGE_ALIGN(0x300 + 0x80); | ||
487 | /* jtag interrupt vector + sizeof vector */ | ||
488 | |||
489 | /* PMON data */ | ||
490 | if (heaptop > mdesc[i].base + mdesc[i].size) { | ||
491 | i++; /* 1 */ | ||
492 | mdesc[i].type = BOOT_MEM_ROM_DATA; | ||
493 | mdesc[i].base = mdesc[i-1].base + mdesc[i-1].size; | ||
494 | mdesc[i].size = heaptop - mdesc[i].base; | ||
495 | } | ||
496 | |||
497 | /* end of PMON data to start of kernel -- probably zero .. */ | ||
498 | if (heaptop != CPHYSADDR((u32)_text)) { | ||
499 | i++; /* 2 */ | ||
500 | mdesc[i].type = BOOT_MEM_RAM; | ||
501 | mdesc[i].base = heaptop; | ||
502 | mdesc[i].size = CPHYSADDR((u32)_text) - mdesc[i].base; | ||
503 | } | ||
504 | |||
505 | /* kernel proper */ | ||
506 | i++; /* 3 */ | ||
507 | mdesc[i].type = BOOT_MEM_RESERVED; | ||
508 | mdesc[i].base = CPHYSADDR((u32)_text); | ||
509 | #ifdef CONFIG_MTD_PMC_MSP_RAMROOT | ||
510 | if (get_ramroot(&ramroot_start, &ramroot_size)) { | ||
511 | /* | ||
512 | * Rootfs in RAM -- follows kernel | ||
513 | * Combine rootfs image with kernel block so a | ||
514 | * page (4k) isn't wasted between memory blocks | ||
515 | */ | ||
516 | mdesc[i].size = CPHYSADDR(PAGE_ALIGN( | ||
517 | (u32)ramroot_start + ramroot_size)) - mdesc[i].base; | ||
518 | } else | ||
519 | #endif | ||
520 | mdesc[i].size = CPHYSADDR(PAGE_ALIGN( | ||
521 | (u32)_end)) - mdesc[i].base; | ||
522 | |||
523 | /* Remainder of RAM -- under memsize */ | ||
524 | i++; /* 5 */ | ||
525 | mdesc[i].type = yamon_free; | ||
526 | mdesc[i].base = mdesc[i-1].base + mdesc[i-1].size; | ||
527 | mdesc[i].size = memsize - mdesc[i].base; | ||
528 | |||
529 | return &mdesc[0]; | ||
530 | } | ||
531 | |||
532 | /* rootfs functions */ | ||
533 | #ifdef CONFIG_MTD_PMC_MSP_RAMROOT | ||
534 | bool get_ramroot(void **start, unsigned long *size) | ||
535 | { | ||
536 | extern char _end[]; | ||
537 | |||
538 | /* Check for start following the end of the kernel */ | ||
539 | void *check_start = (void *)_end; | ||
540 | |||
541 | /* Check for supported rootfs types */ | ||
542 | #ifdef CONFIG_CRAMFS | ||
543 | if (*(__u32 *)check_start == CRAMFS_MAGIC) { | ||
544 | /* Get CRAMFS size */ | ||
545 | *start = check_start; | ||
546 | *size = PAGE_ALIGN(((struct cramfs_super *) | ||
547 | check_start)->size); | ||
548 | |||
549 | return true; | ||
550 | } | ||
551 | #endif | ||
552 | #ifdef CONFIG_SQUASHFS | ||
553 | if (*((unsigned int *)check_start) == SQUASHFS_MAGIC) { | ||
554 | /* Get SQUASHFS size */ | ||
555 | *start = check_start; | ||
556 | *size = PAGE_ALIGN(((struct squashfs_super_block *) | ||
557 | check_start)->bytes_used); | ||
558 | |||
559 | return true; | ||
560 | } | ||
561 | #endif | ||
562 | |||
563 | return false; | ||
564 | } | ||
565 | EXPORT_SYMBOL(get_ramroot); | ||
566 | #endif | ||
diff --git a/arch/mips/pmc-sierra/msp71xx/msp_setup.c b/arch/mips/pmc-sierra/msp71xx/msp_setup.c new file mode 100644 index 000000000000..8f69b789be90 --- /dev/null +++ b/arch/mips/pmc-sierra/msp71xx/msp_setup.c | |||
@@ -0,0 +1,256 @@ | |||
1 | /* | ||
2 | * The generic setup file for PMC-Sierra MSP processors | ||
3 | * | ||
4 | * Copyright 2005-2007 PMC-Sierra, Inc, | ||
5 | * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License as published by the | ||
9 | * Free Software Foundation; either version 2 of the License, or (at your | ||
10 | * option) any later version. | ||
11 | */ | ||
12 | |||
13 | #include <asm/bootinfo.h> | ||
14 | #include <asm/cacheflush.h> | ||
15 | #include <asm/r4kcache.h> | ||
16 | #include <asm/reboot.h> | ||
17 | #include <asm/time.h> | ||
18 | |||
19 | #include <msp_prom.h> | ||
20 | #include <msp_regs.h> | ||
21 | |||
22 | #if defined(CONFIG_PMC_MSP7120_GW) | ||
23 | #include <msp_regops.h> | ||
24 | #include <msp_gpio.h> | ||
25 | #define MSP_BOARD_RESET_GPIO 9 | ||
26 | #endif | ||
27 | |||
28 | extern void msp_timer_init(void); | ||
29 | extern void msp_serial_setup(void); | ||
30 | extern void pmctwiled_setup(void); | ||
31 | |||
32 | #if defined(CONFIG_PMC_MSP7120_EVAL) || \ | ||
33 | defined(CONFIG_PMC_MSP7120_GW) || \ | ||
34 | defined(CONFIG_PMC_MSP7120_FPGA) | ||
35 | /* | ||
36 | * Performs the reset for MSP7120-based boards | ||
37 | */ | ||
38 | void msp7120_reset(void) | ||
39 | { | ||
40 | void *start, *end, *iptr; | ||
41 | register int i; | ||
42 | |||
43 | /* Diasble all interrupts */ | ||
44 | local_irq_disable(); | ||
45 | #ifdef CONFIG_SYS_SUPPORTS_MULTITHREADING | ||
46 | dvpe(); | ||
47 | #endif | ||
48 | |||
49 | /* Cache the reset code of this function */ | ||
50 | __asm__ __volatile__ ( | ||
51 | " .set push \n" | ||
52 | " .set mips3 \n" | ||
53 | " la %0,startpoint \n" | ||
54 | " la %1,endpoint \n" | ||
55 | " .set pop \n" | ||
56 | : "=r" (start), "=r" (end) | ||
57 | : | ||
58 | ); | ||
59 | |||
60 | for (iptr = (void *)((unsigned int)start & ~(L1_CACHE_BYTES - 1)); | ||
61 | iptr < end; iptr += L1_CACHE_BYTES) | ||
62 | cache_op(Fill, iptr); | ||
63 | |||
64 | __asm__ __volatile__ ( | ||
65 | "startpoint: \n" | ||
66 | ); | ||
67 | |||
68 | /* Put the DDRC into self-refresh mode */ | ||
69 | DDRC_INDIRECT_WRITE(DDRC_CTL(10), 0xb, 1 << 16); | ||
70 | |||
71 | /* | ||
72 | * IMPORTANT! | ||
73 | * DO NOT do anything from here on out that might even | ||
74 | * think about fetching from RAM - i.e., don't call any | ||
75 | * non-inlined functions, and be VERY sure that any inline | ||
76 | * functions you do call do NOT access any sort of RAM | ||
77 | * anywhere! | ||
78 | */ | ||
79 | |||
80 | /* Wait a bit for the DDRC to settle */ | ||
81 | for (i = 0; i < 100000000; i++); | ||
82 | |||
83 | #if defined(CONFIG_PMC_MSP7120_GW) | ||
84 | /* | ||
85 | * Set GPIO 9 HI, (tied to board reset logic) | ||
86 | * GPIO 9 is the 4th GPIO of register 3 | ||
87 | * | ||
88 | * NOTE: We cannot use the higher-level msp_gpio_mode()/out() | ||
89 | * as GPIO char driver may not be enabled and it would look up | ||
90 | * data inRAM! | ||
91 | */ | ||
92 | set_value_reg32(GPIO_CFG3_REG, | ||
93 | basic_mode_mask(MSP_BOARD_RESET_GPIO), | ||
94 | basic_mode(MSP_GPIO_OUTPUT, MSP_BOARD_RESET_GPIO)); | ||
95 | set_reg32(GPIO_DATA3_REG, | ||
96 | basic_data_mask(MSP_BOARD_RESET_GPIO)); | ||
97 | |||
98 | /* | ||
99 | * In case GPIO9 doesn't reset the board (jumper configurable!) | ||
100 | * fallback to device reset below. | ||
101 | */ | ||
102 | #endif | ||
103 | /* Set bit 1 of the MSP7120 reset register */ | ||
104 | *RST_SET_REG = 0x00000001; | ||
105 | |||
106 | __asm__ __volatile__ ( | ||
107 | "endpoint: \n" | ||
108 | ); | ||
109 | } | ||
110 | #endif | ||
111 | |||
112 | void msp_restart(char *command) | ||
113 | { | ||
114 | printk(KERN_WARNING "Now rebooting .......\n"); | ||
115 | |||
116 | #if defined(CONFIG_PMC_MSP7120_EVAL) || \ | ||
117 | defined(CONFIG_PMC_MSP7120_GW) || \ | ||
118 | defined(CONFIG_PMC_MSP7120_FPGA) | ||
119 | msp7120_reset(); | ||
120 | #else | ||
121 | /* No chip-specific reset code, just jump to the ROM reset vector */ | ||
122 | set_c0_status(ST0_BEV | ST0_ERL); | ||
123 | change_c0_config(CONF_CM_CMASK, CONF_CM_UNCACHED); | ||
124 | flush_cache_all(); | ||
125 | write_c0_wired(0); | ||
126 | |||
127 | __asm__ __volatile__("jr\t%0"::"r"(0xbfc00000)); | ||
128 | #endif | ||
129 | } | ||
130 | |||
131 | void msp_halt(void) | ||
132 | { | ||
133 | printk(KERN_WARNING "\n** You can safely turn off the power\n"); | ||
134 | while (1) | ||
135 | /* If possible call official function to get CPU WARs */ | ||
136 | if (cpu_wait) | ||
137 | (*cpu_wait)(); | ||
138 | else | ||
139 | __asm__(".set\tmips3\n\t" "wait\n\t" ".set\tmips0"); | ||
140 | } | ||
141 | |||
142 | void msp_power_off(void) | ||
143 | { | ||
144 | msp_halt(); | ||
145 | } | ||
146 | |||
147 | void __init plat_mem_setup(void) | ||
148 | { | ||
149 | _machine_restart = msp_restart; | ||
150 | _machine_halt = msp_halt; | ||
151 | pm_power_off = msp_power_off; | ||
152 | |||
153 | board_time_init = msp_timer_init; | ||
154 | } | ||
155 | |||
156 | void __init prom_init(void) | ||
157 | { | ||
158 | unsigned long family; | ||
159 | unsigned long revision; | ||
160 | |||
161 | prom_argc = fw_arg0; | ||
162 | prom_argv = (char **)fw_arg1; | ||
163 | prom_envp = (char **)fw_arg2; | ||
164 | |||
165 | /* | ||
166 | * Someday we can use this with PMON2000 to get a | ||
167 | * platform call prom routines for output etc. without | ||
168 | * having to use grody hacks. For now it's unused. | ||
169 | * | ||
170 | * struct callvectors *cv = (struct callvectors *) fw_arg3; | ||
171 | */ | ||
172 | family = identify_family(); | ||
173 | revision = identify_revision(); | ||
174 | |||
175 | switch (family) { | ||
176 | case FAMILY_FPGA: | ||
177 | if (FPGA_IS_MSP4200(revision)) { | ||
178 | /* Old-style revision ID */ | ||
179 | mips_machgroup = MACH_GROUP_MSP; | ||
180 | mips_machtype = MACH_MSP4200_FPGA; | ||
181 | } else { | ||
182 | mips_machgroup = MACH_GROUP_MSP; | ||
183 | mips_machtype = MACH_MSP_OTHER; | ||
184 | } | ||
185 | break; | ||
186 | |||
187 | case FAMILY_MSP4200: | ||
188 | mips_machgroup = MACH_GROUP_MSP; | ||
189 | #if defined(CONFIG_PMC_MSP4200_EVAL) | ||
190 | mips_machtype = MACH_MSP4200_EVAL; | ||
191 | #elif defined(CONFIG_PMC_MSP4200_GW) | ||
192 | mips_machtype = MACH_MSP4200_GW; | ||
193 | #else | ||
194 | mips_machtype = MACH_MSP_OTHER; | ||
195 | #endif | ||
196 | break; | ||
197 | |||
198 | case FAMILY_MSP4200_FPGA: | ||
199 | mips_machgroup = MACH_GROUP_MSP; | ||
200 | mips_machtype = MACH_MSP4200_FPGA; | ||
201 | break; | ||
202 | |||
203 | case FAMILY_MSP7100: | ||
204 | mips_machgroup = MACH_GROUP_MSP; | ||
205 | #if defined(CONFIG_PMC_MSP7120_EVAL) | ||
206 | mips_machtype = MACH_MSP7120_EVAL; | ||
207 | #elif defined(CONFIG_PMC_MSP7120_GW) | ||
208 | mips_machtype = MACH_MSP7120_GW; | ||
209 | #else | ||
210 | mips_machtype = MACH_MSP_OTHER; | ||
211 | #endif | ||
212 | break; | ||
213 | |||
214 | case FAMILY_MSP7100_FPGA: | ||
215 | mips_machgroup = MACH_GROUP_MSP; | ||
216 | mips_machtype = MACH_MSP7120_FPGA; | ||
217 | break; | ||
218 | |||
219 | default: | ||
220 | /* we don't recognize the machine */ | ||
221 | mips_machgroup = MACH_GROUP_UNKNOWN; | ||
222 | mips_machtype = MACH_UNKNOWN; | ||
223 | break; | ||
224 | } | ||
225 | |||
226 | /* make sure we have the right initialization routine - sanity */ | ||
227 | if (mips_machgroup != MACH_GROUP_MSP) { | ||
228 | ppfinit("Unknown machine group in a " | ||
229 | "MSP initialization routine\n"); | ||
230 | panic("***Bogosity factor five***, exiting\n"); | ||
231 | } | ||
232 | |||
233 | prom_init_cmdline(); | ||
234 | |||
235 | prom_meminit(); | ||
236 | |||
237 | /* | ||
238 | * Sub-system setup follows. | ||
239 | * Setup functions can either be called here or using the | ||
240 | * subsys_initcall mechanism (i.e. see msp_pci_setup). The | ||
241 | * order in which they are called can be changed by using the | ||
242 | * link order in arch/mips/pmc-sierra/msp71xx/Makefile. | ||
243 | * | ||
244 | * NOTE: Please keep sub-system specific initialization code | ||
245 | * in separate specific files. | ||
246 | */ | ||
247 | msp_serial_setup(); | ||
248 | |||
249 | #ifdef CONFIG_PMCTWILED | ||
250 | /* | ||
251 | * Setup LED states before the subsys_initcall loads other | ||
252 | * dependant drivers/modules. | ||
253 | */ | ||
254 | pmctwiled_setup(); | ||
255 | #endif | ||
256 | } | ||
diff --git a/arch/mips/pmc-sierra/msp71xx/msp_time.c b/arch/mips/pmc-sierra/msp71xx/msp_time.c new file mode 100644 index 000000000000..2a2beac5a4f8 --- /dev/null +++ b/arch/mips/pmc-sierra/msp71xx/msp_time.c | |||
@@ -0,0 +1,94 @@ | |||
1 | /* | ||
2 | * Setting up the clock on MSP SOCs. No RTC typically. | ||
3 | * | ||
4 | * Carsten Langgaard, carstenl@mips.com | ||
5 | * Copyright (C) 1999,2000 MIPS Technologies, Inc. All rights reserved. | ||
6 | * | ||
7 | * ######################################################################## | ||
8 | * | ||
9 | * This program is free software; you can distribute it and/or modify it | ||
10 | * under the terms of the GNU General Public License (Version 2) as | ||
11 | * published by the Free Software Foundation. | ||
12 | * | ||
13 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
14 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
15 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
16 | * for more details. | ||
17 | * | ||
18 | * You should have received a copy of the GNU General Public License along | ||
19 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
20 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | ||
21 | * | ||
22 | * ######################################################################## | ||
23 | */ | ||
24 | |||
25 | #include <linux/init.h> | ||
26 | #include <linux/kernel_stat.h> | ||
27 | #include <linux/sched.h> | ||
28 | #include <linux/spinlock.h> | ||
29 | #include <linux/module.h> | ||
30 | #include <linux/ptrace.h> | ||
31 | |||
32 | #include <asm/mipsregs.h> | ||
33 | #include <asm/time.h> | ||
34 | |||
35 | #include <msp_prom.h> | ||
36 | #include <msp_int.h> | ||
37 | #include <msp_regs.h> | ||
38 | |||
39 | void __init msp_timer_init(void) | ||
40 | { | ||
41 | char *endp, *s; | ||
42 | unsigned long cpu_rate = 0; | ||
43 | |||
44 | if (cpu_rate == 0) { | ||
45 | s = prom_getenv("clkfreqhz"); | ||
46 | cpu_rate = simple_strtoul(s, &endp, 10); | ||
47 | if (endp != NULL && *endp != 0) { | ||
48 | printk(KERN_ERR | ||
49 | "Clock rate in Hz parse error: %s\n", s); | ||
50 | cpu_rate = 0; | ||
51 | } | ||
52 | } | ||
53 | |||
54 | if (cpu_rate == 0) { | ||
55 | s = prom_getenv("clkfreq"); | ||
56 | cpu_rate = 1000 * simple_strtoul(s, &endp, 10); | ||
57 | if (endp != NULL && *endp != 0) { | ||
58 | printk(KERN_ERR | ||
59 | "Clock rate in MHz parse error: %s\n", s); | ||
60 | cpu_rate = 0; | ||
61 | } | ||
62 | } | ||
63 | |||
64 | if (cpu_rate == 0) { | ||
65 | #if defined(CONFIG_PMC_MSP7120_EVAL) \ | ||
66 | || defined(CONFIG_PMC_MSP7120_GW) | ||
67 | cpu_rate = 400000000; | ||
68 | #elif defined(CONFIG_PMC_MSP7120_FPGA) | ||
69 | cpu_rate = 25000000; | ||
70 | #else | ||
71 | cpu_rate = 150000000; | ||
72 | #endif | ||
73 | printk(KERN_ERR | ||
74 | "Failed to determine CPU clock rate, " | ||
75 | "assuming %ld hz ...\n", cpu_rate); | ||
76 | } | ||
77 | |||
78 | printk(KERN_WARNING "Clock rate set to %ld\n", cpu_rate); | ||
79 | |||
80 | /* timer frequency is 1/2 clock rate */ | ||
81 | mips_hpt_frequency = cpu_rate/2; | ||
82 | } | ||
83 | |||
84 | |||
85 | void __init plat_timer_setup(struct irqaction *irq) | ||
86 | { | ||
87 | #ifdef CONFIG_IRQ_MSP_CIC | ||
88 | /* we are using the vpe0 counter for timer interrupts */ | ||
89 | setup_irq(MSP_INT_VPE0_TIMER, irq); | ||
90 | #else | ||
91 | /* we are using the mips counter for timer interrupts */ | ||
92 | setup_irq(MSP_INT_TIMER, irq); | ||
93 | #endif | ||
94 | } | ||
diff --git a/arch/mips/pmc-sierra/msp71xx/msp_usb.c b/arch/mips/pmc-sierra/msp71xx/msp_usb.c new file mode 100644 index 000000000000..21f9c70b6923 --- /dev/null +++ b/arch/mips/pmc-sierra/msp71xx/msp_usb.c | |||
@@ -0,0 +1,150 @@ | |||
1 | /* | ||
2 | * The setup file for USB related hardware on PMC-Sierra MSP processors. | ||
3 | * | ||
4 | * Copyright 2006-2007 PMC-Sierra, Inc. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify it | ||
7 | * under the terms of the GNU General Public License as published by the | ||
8 | * Free Software Foundation; either version 2 of the License, or (at your | ||
9 | * option) any later version. | ||
10 | * | ||
11 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | ||
12 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
13 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN | ||
14 | * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
15 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
16 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | ||
17 | * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||
18 | * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
19 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
20 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
21 | * | ||
22 | * You should have received a copy of the GNU General Public License along | ||
23 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
24 | * 675 Mass Ave, Cambridge, MA 02139, USA. | ||
25 | */ | ||
26 | |||
27 | #include <linux/dma-mapping.h> | ||
28 | #include <linux/init.h> | ||
29 | #include <linux/ioport.h> | ||
30 | #include <linux/platform_device.h> | ||
31 | |||
32 | #include <asm/mipsregs.h> | ||
33 | |||
34 | #include <msp_regs.h> | ||
35 | #include <msp_int.h> | ||
36 | #include <msp_prom.h> | ||
37 | |||
38 | #if defined(CONFIG_USB_EHCI_HCD) | ||
39 | static struct resource msp_usbhost_resources [] = { | ||
40 | [0] = { | ||
41 | .start = MSP_USB_BASE_START, | ||
42 | .end = MSP_USB_BASE_END, | ||
43 | .flags = IORESOURCE_MEM, | ||
44 | }, | ||
45 | [1] = { | ||
46 | .start = MSP_INT_USB, | ||
47 | .end = MSP_INT_USB, | ||
48 | .flags = IORESOURCE_IRQ, | ||
49 | }, | ||
50 | }; | ||
51 | |||
52 | static u64 msp_usbhost_dma_mask = DMA_32BIT_MASK; | ||
53 | |||
54 | static struct platform_device msp_usbhost_device = { | ||
55 | .name = "pmcmsp-ehci", | ||
56 | .id = 0, | ||
57 | .dev = { | ||
58 | .dma_mask = &msp_usbhost_dma_mask, | ||
59 | .coherent_dma_mask = DMA_32BIT_MASK, | ||
60 | }, | ||
61 | .num_resources = ARRAY_SIZE (msp_usbhost_resources), | ||
62 | .resource = msp_usbhost_resources, | ||
63 | }; | ||
64 | #endif /* CONFIG_USB_EHCI_HCD */ | ||
65 | |||
66 | #if defined(CONFIG_USB_GADGET) | ||
67 | static struct resource msp_usbdev_resources [] = { | ||
68 | [0] = { | ||
69 | .start = MSP_USB_BASE, | ||
70 | .end = MSP_USB_BASE_END, | ||
71 | .flags = IORESOURCE_MEM, | ||
72 | }, | ||
73 | [1] = { | ||
74 | .start = MSP_INT_USB, | ||
75 | .end = MSP_INT_USB, | ||
76 | .flags = IORESOURCE_IRQ, | ||
77 | }, | ||
78 | }; | ||
79 | |||
80 | static u64 msp_usbdev_dma_mask = DMA_32BIT_MASK; | ||
81 | |||
82 | static struct platform_device msp_usbdev_device = { | ||
83 | .name = "msp71xx_udc", | ||
84 | .id = 0, | ||
85 | .dev = { | ||
86 | .dma_mask = &msp_usbdev_dma_mask, | ||
87 | .coherent_dma_mask = DMA_32BIT_MASK, | ||
88 | }, | ||
89 | .num_resources = ARRAY_SIZE (msp_usbdev_resources), | ||
90 | .resource = msp_usbdev_resources, | ||
91 | }; | ||
92 | #endif /* CONFIG_USB_GADGET */ | ||
93 | |||
94 | #if defined(CONFIG_USB_EHCI_HCD) || defined(CONFIG_USB_GADGET) | ||
95 | static struct platform_device *msp_devs[1]; | ||
96 | #endif | ||
97 | |||
98 | |||
99 | static int __init msp_usb_setup(void) | ||
100 | { | ||
101 | #if defined(CONFIG_USB_EHCI_HCD) || defined(CONFIG_USB_GADGET) | ||
102 | char *strp; | ||
103 | char envstr[32]; | ||
104 | unsigned int val = 0; | ||
105 | int result = 0; | ||
106 | |||
107 | /* | ||
108 | * construct environment name usbmode | ||
109 | * set usbmode <host/device> as pmon environment var | ||
110 | */ | ||
111 | snprintf((char *)&envstr[0], sizeof(envstr), "usbmode"); | ||
112 | |||
113 | #if defined(CONFIG_USB_EHCI_HCD) | ||
114 | /* default to host mode */ | ||
115 | val = 1; | ||
116 | #endif | ||
117 | |||
118 | /* get environment string */ | ||
119 | strp = prom_getenv((char *)&envstr[0]); | ||
120 | if (strp) { | ||
121 | if (!strcmp(strp, "device")) | ||
122 | val = 0; | ||
123 | } | ||
124 | |||
125 | if (val) { | ||
126 | #if defined(CONFIG_USB_EHCI_HCD) | ||
127 | /* get host mode device */ | ||
128 | msp_devs[0] = &msp_usbhost_device; | ||
129 | ppfinit("platform add USB HOST done %s.\n", | ||
130 | msp_devs[0]->name); | ||
131 | |||
132 | result = platform_add_devices(msp_devs, ARRAY_SIZE (msp_devs)); | ||
133 | #endif /* CONFIG_USB_EHCI_HCD */ | ||
134 | } | ||
135 | #if defined(CONFIG_USB_GADGET) | ||
136 | else { | ||
137 | /* get device mode structure */ | ||
138 | msp_devs[0] = &msp_usbdev_device; | ||
139 | ppfinit("platform add USB DEVICE done %s.\n", | ||
140 | msp_devs[0]->name); | ||
141 | |||
142 | result = platform_add_devices(msp_devs, ARRAY_SIZE (msp_devs)); | ||
143 | } | ||
144 | #endif /* CONFIG_USB_GADGET */ | ||
145 | #endif /* CONFIG_USB_EHCI_HCD || CONFIG_USB_GADGET */ | ||
146 | |||
147 | return result; | ||
148 | } | ||
149 | |||
150 | subsys_initcall(msp_usb_setup); | ||
diff --git a/arch/mips/pmc-sierra/yosemite/smp.c b/arch/mips/pmc-sierra/yosemite/smp.c index 305491e74dbe..d83c4ada14f3 100644 --- a/arch/mips/pmc-sierra/yosemite/smp.c +++ b/arch/mips/pmc-sierra/yosemite/smp.c | |||
@@ -77,7 +77,7 @@ void __init plat_prepare_cpus(unsigned int max_cpus) | |||
77 | * stack so the first thing we do is throw away that stuff and load useful | 77 | * stack so the first thing we do is throw away that stuff and load useful |
78 | * values into the registers ... | 78 | * values into the registers ... |
79 | */ | 79 | */ |
80 | void prom_boot_secondary(int cpu, struct task_struct *idle) | 80 | void __init prom_boot_secondary(int cpu, struct task_struct *idle) |
81 | { | 81 | { |
82 | unsigned long gp = (unsigned long) task_thread_info(idle); | 82 | unsigned long gp = (unsigned long) task_thread_info(idle); |
83 | unsigned long sp = __KSTK_TOS(idle); | 83 | unsigned long sp = __KSTK_TOS(idle); |
diff --git a/arch/mips/sgi-ip22/ip22-reset.c b/arch/mips/sgi-ip22/ip22-reset.c index 66df5ac8f089..63afd7e44428 100644 --- a/arch/mips/sgi-ip22/ip22-reset.c +++ b/arch/mips/sgi-ip22/ip22-reset.c | |||
@@ -46,7 +46,7 @@ static struct timer_list power_timer, blink_timer, debounce_timer, volume_timer; | |||
46 | 46 | ||
47 | static int machine_state; | 47 | static int machine_state; |
48 | 48 | ||
49 | static void ATTRIB_NORET sgi_machine_power_off(void) | 49 | static void __noreturn sgi_machine_power_off(void) |
50 | { | 50 | { |
51 | unsigned int tmp; | 51 | unsigned int tmp; |
52 | 52 | ||
@@ -68,7 +68,7 @@ static void ATTRIB_NORET sgi_machine_power_off(void) | |||
68 | } | 68 | } |
69 | } | 69 | } |
70 | 70 | ||
71 | static void ATTRIB_NORET sgi_machine_restart(char *command) | 71 | static void __noreturn sgi_machine_restart(char *command) |
72 | { | 72 | { |
73 | if (machine_state & MACHINE_SHUTTING_DOWN) | 73 | if (machine_state & MACHINE_SHUTTING_DOWN) |
74 | sgi_machine_power_off(); | 74 | sgi_machine_power_off(); |
@@ -76,7 +76,7 @@ static void ATTRIB_NORET sgi_machine_restart(char *command) | |||
76 | while (1); | 76 | while (1); |
77 | } | 77 | } |
78 | 78 | ||
79 | static void ATTRIB_NORET sgi_machine_halt(void) | 79 | static void __noreturn sgi_machine_halt(void) |
80 | { | 80 | { |
81 | if (machine_state & MACHINE_SHUTTING_DOWN) | 81 | if (machine_state & MACHINE_SHUTTING_DOWN) |
82 | sgi_machine_power_off(); | 82 | sgi_machine_power_off(); |
diff --git a/arch/mips/sgi-ip27/ip27-berr.c b/arch/mips/sgi-ip27/ip27-berr.c index ce907eda221b..123141ab21a2 100644 --- a/arch/mips/sgi-ip27/ip27-berr.c +++ b/arch/mips/sgi-ip27/ip27-berr.c | |||
@@ -21,7 +21,6 @@ | |||
21 | #include <asm/traps.h> | 21 | #include <asm/traps.h> |
22 | #include <asm/uaccess.h> | 22 | #include <asm/uaccess.h> |
23 | 23 | ||
24 | extern void dump_tlb_addr(unsigned long addr); | ||
25 | extern void dump_tlb_all(void); | 24 | extern void dump_tlb_all(void); |
26 | 25 | ||
27 | static void dump_hub_information(unsigned long errst0, unsigned long errst1) | 26 | static void dump_hub_information(unsigned long errst0, unsigned long errst1) |
diff --git a/arch/mips/sgi-ip32/ip32-platform.c b/arch/mips/sgi-ip32/ip32-platform.c index 120b15932caf..ba3697ee7ff6 100644 --- a/arch/mips/sgi-ip32/ip32-platform.c +++ b/arch/mips/sgi-ip32/ip32-platform.c | |||
@@ -1,5 +1,53 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 2007 Ralf Baechle (ralf@linux-mips.org) | ||
7 | */ | ||
8 | #include <linux/module.h> | ||
1 | #include <linux/init.h> | 9 | #include <linux/init.h> |
2 | #include <linux/platform_device.h> | 10 | #include <linux/platform_device.h> |
11 | #include <linux/serial_8250.h> | ||
12 | |||
13 | #include <asm/ip32/mace.h> | ||
14 | #include <asm/ip32/ip32_ints.h> | ||
15 | |||
16 | /* | ||
17 | * .iobase isn't a constant (in the sense of C) so we fill it in at runtime. | ||
18 | */ | ||
19 | #define MACE_PORT(int) \ | ||
20 | { \ | ||
21 | .irq = int, \ | ||
22 | .uartclk = 1843200, \ | ||
23 | .iotype = UPIO_MEM, \ | ||
24 | .flags = UPF_SKIP_TEST, \ | ||
25 | .regshift = 8, \ | ||
26 | } | ||
27 | |||
28 | static struct plat_serial8250_port uart8250_data[] = { | ||
29 | MACE_PORT(MACEISA_SERIAL1_IRQ), | ||
30 | MACE_PORT(MACEISA_SERIAL2_IRQ), | ||
31 | { }, | ||
32 | }; | ||
33 | |||
34 | static struct platform_device uart8250_device = { | ||
35 | .name = "serial8250", | ||
36 | .id = PLAT8250_DEV_PLATFORM, | ||
37 | .dev = { | ||
38 | .platform_data = uart8250_data, | ||
39 | }, | ||
40 | }; | ||
41 | |||
42 | static int __init uart8250_init(void) | ||
43 | { | ||
44 | uart8250_data[0].iobase = (unsigned long) &mace->isa.serial1; | ||
45 | uart8250_data[1].iobase = (unsigned long) &mace->isa.serial1; | ||
46 | |||
47 | return platform_device_register(&uart8250_device); | ||
48 | } | ||
49 | |||
50 | device_initcall(uart8250_init); | ||
3 | 51 | ||
4 | static __init int meth_devinit(void) | 52 | static __init int meth_devinit(void) |
5 | { | 53 | { |
@@ -18,3 +66,7 @@ static __init int meth_devinit(void) | |||
18 | } | 66 | } |
19 | 67 | ||
20 | device_initcall(meth_devinit); | 68 | device_initcall(meth_devinit); |
69 | |||
70 | MODULE_AUTHOR("Ralf Baechle <ralf@linux-mips.org>"); | ||
71 | MODULE_LICENSE("GPL"); | ||
72 | MODULE_DESCRIPTION("8250 UART probe driver for SGI IP32 aka O2"); | ||
diff --git a/arch/mips/sgi-ip32/ip32-setup.c b/arch/mips/sgi-ip32/ip32-setup.c index 57708fe28bd7..bbba066cb405 100644 --- a/arch/mips/sgi-ip32/ip32-setup.c +++ b/arch/mips/sgi-ip32/ip32-setup.c | |||
@@ -62,12 +62,6 @@ static inline void str2eaddr(unsigned char *ea, unsigned char *str) | |||
62 | } | 62 | } |
63 | #endif | 63 | #endif |
64 | 64 | ||
65 | #ifdef CONFIG_SERIAL_8250 | ||
66 | #include <linux/tty.h> | ||
67 | #include <linux/serial.h> | ||
68 | #include <linux/serial_core.h> | ||
69 | #endif /* CONFIG_SERIAL_8250 */ | ||
70 | |||
71 | /* An arbitrary time; this can be decreased if reliability looks good */ | 65 | /* An arbitrary time; this can be decreased if reliability looks good */ |
72 | #define WAIT_MS 10 | 66 | #define WAIT_MS 10 |
73 | 67 | ||
@@ -96,36 +90,6 @@ void __init plat_mem_setup(void) | |||
96 | 90 | ||
97 | board_time_init = ip32_time_init; | 91 | board_time_init = ip32_time_init; |
98 | 92 | ||
99 | #ifdef CONFIG_SERIAL_8250 | ||
100 | { | ||
101 | static struct uart_port o2_serial[2]; | ||
102 | |||
103 | memset(o2_serial, 0, sizeof(o2_serial)); | ||
104 | o2_serial[0].type = PORT_16550A; | ||
105 | o2_serial[0].line = 0; | ||
106 | o2_serial[0].irq = MACEISA_SERIAL1_IRQ; | ||
107 | o2_serial[0].flags = UPF_SKIP_TEST; | ||
108 | o2_serial[0].uartclk = 1843200; | ||
109 | o2_serial[0].iotype = UPIO_MEM; | ||
110 | o2_serial[0].membase = (char *)&mace->isa.serial1; | ||
111 | o2_serial[0].fifosize = 14; | ||
112 | /* How much to shift register offset by. Each UART register | ||
113 | * is replicated over 256 byte space */ | ||
114 | o2_serial[0].regshift = 8; | ||
115 | o2_serial[1].type = PORT_16550A; | ||
116 | o2_serial[1].line = 1; | ||
117 | o2_serial[1].irq = MACEISA_SERIAL2_IRQ; | ||
118 | o2_serial[1].flags = UPF_SKIP_TEST; | ||
119 | o2_serial[1].uartclk = 1843200; | ||
120 | o2_serial[1].iotype = UPIO_MEM; | ||
121 | o2_serial[1].membase = (char *)&mace->isa.serial2; | ||
122 | o2_serial[1].fifosize = 14; | ||
123 | o2_serial[1].regshift = 8; | ||
124 | |||
125 | early_serial_setup(&o2_serial[0]); | ||
126 | early_serial_setup(&o2_serial[1]); | ||
127 | } | ||
128 | #endif | ||
129 | #ifdef CONFIG_SGI_O2MACE_ETH | 93 | #ifdef CONFIG_SGI_O2MACE_ETH |
130 | { | 94 | { |
131 | char *mac = ArcGetEnvironmentVariable("eaddr"); | 95 | char *mac = ArcGetEnvironmentVariable("eaddr"); |
diff --git a/arch/mips/sibyte/cfe/setup.c b/arch/mips/sibyte/cfe/setup.c index ae4a92c3e529..51898dd1304a 100644 --- a/arch/mips/sibyte/cfe/setup.c +++ b/arch/mips/sibyte/cfe/setup.c | |||
@@ -62,7 +62,7 @@ extern unsigned long initrd_start, initrd_end; | |||
62 | extern int kgdb_port; | 62 | extern int kgdb_port; |
63 | #endif | 63 | #endif |
64 | 64 | ||
65 | static void ATTRIB_NORET cfe_linux_exit(void *arg) | 65 | static void __noreturn cfe_linux_exit(void *arg) |
66 | { | 66 | { |
67 | int warm = *(int *)arg; | 67 | int warm = *(int *)arg; |
68 | 68 | ||
@@ -83,14 +83,14 @@ static void ATTRIB_NORET cfe_linux_exit(void *arg) | |||
83 | while (1); | 83 | while (1); |
84 | } | 84 | } |
85 | 85 | ||
86 | static void ATTRIB_NORET cfe_linux_restart(char *command) | 86 | static void __noreturn cfe_linux_restart(char *command) |
87 | { | 87 | { |
88 | static const int zero; | 88 | static const int zero; |
89 | 89 | ||
90 | cfe_linux_exit((void *)&zero); | 90 | cfe_linux_exit((void *)&zero); |
91 | } | 91 | } |
92 | 92 | ||
93 | static void ATTRIB_NORET cfe_linux_halt(void) | 93 | static void __noreturn cfe_linux_halt(void) |
94 | { | 94 | { |
95 | static const int one = 1; | 95 | static const int one = 1; |
96 | 96 | ||
diff --git a/arch/mips/sni/Makefile b/arch/mips/sni/Makefile index e5777b7e2bc9..471418e4f446 100644 --- a/arch/mips/sni/Makefile +++ b/arch/mips/sni/Makefile | |||
@@ -2,5 +2,5 @@ | |||
2 | # Makefile for the SNI specific part of the kernel | 2 | # Makefile for the SNI specific part of the kernel |
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y += irq.o reset.o setup.o ds1216.o a20r.o rm200.o pcimt.o pcit.o time.o | 5 | obj-y += irq.o reset.o setup.o a20r.o rm200.o pcimt.o pcit.o time.o |
6 | obj-$(CONFIG_CPU_BIG_ENDIAN) += sniprom.o | 6 | obj-$(CONFIG_CPU_BIG_ENDIAN) += sniprom.o |
diff --git a/arch/mips/sni/a20r.c b/arch/mips/sni/a20r.c index 31ab80f1befa..6850a29defcd 100644 --- a/arch/mips/sni/a20r.c +++ b/arch/mips/sni/a20r.c | |||
@@ -15,7 +15,6 @@ | |||
15 | 15 | ||
16 | #include <asm/sni.h> | 16 | #include <asm/sni.h> |
17 | #include <asm/time.h> | 17 | #include <asm/time.h> |
18 | #include <asm/ds1216.h> | ||
19 | 18 | ||
20 | #define PORT(_base,_irq) \ | 19 | #define PORT(_base,_irq) \ |
21 | { \ | 20 | { \ |
@@ -40,20 +39,34 @@ static struct platform_device a20r_serial8250_device = { | |||
40 | }, | 39 | }, |
41 | }; | 40 | }; |
42 | 41 | ||
42 | static struct resource a20r_ds1216_rsrc[] = { | ||
43 | { | ||
44 | .start = 0x1c081ffc, | ||
45 | .end = 0x1c081fff, | ||
46 | .flags = IORESOURCE_MEM | ||
47 | } | ||
48 | }; | ||
49 | |||
50 | static struct platform_device a20r_ds1216_device = { | ||
51 | .name = "rtc-ds1216", | ||
52 | .num_resources = ARRAY_SIZE(a20r_ds1216_rsrc), | ||
53 | .resource = a20r_ds1216_rsrc | ||
54 | }; | ||
55 | |||
43 | static struct resource snirm_82596_rsrc[] = { | 56 | static struct resource snirm_82596_rsrc[] = { |
44 | { | 57 | { |
45 | .start = 0xb8000000, | 58 | .start = 0x18000000, |
46 | .end = 0xb8000004, | 59 | .end = 0x18000004, |
47 | .flags = IORESOURCE_MEM | 60 | .flags = IORESOURCE_MEM |
48 | }, | 61 | }, |
49 | { | 62 | { |
50 | .start = 0xb8010000, | 63 | .start = 0x18010000, |
51 | .end = 0xb8010004, | 64 | .end = 0x18010004, |
52 | .flags = IORESOURCE_MEM | 65 | .flags = IORESOURCE_MEM |
53 | }, | 66 | }, |
54 | { | 67 | { |
55 | .start = 0xbff00000, | 68 | .start = 0x1ff00000, |
56 | .end = 0xbff00020, | 69 | .end = 0x1ff00020, |
57 | .flags = IORESOURCE_MEM | 70 | .flags = IORESOURCE_MEM |
58 | }, | 71 | }, |
59 | { | 72 | { |
@@ -205,8 +218,7 @@ void __init sni_a20r_irq_init(void) | |||
205 | 218 | ||
206 | void sni_a20r_init(void) | 219 | void sni_a20r_init(void) |
207 | { | 220 | { |
208 | ds1216_base = (volatile unsigned char *) SNI_DS1216_A20R_BASE; | 221 | /* FIXME, remove if not needed */ |
209 | rtc_mips_get_time = ds1216_get_cmos_time; | ||
210 | } | 222 | } |
211 | 223 | ||
212 | static int __init snirm_a20r_setup_devinit(void) | 224 | static int __init snirm_a20r_setup_devinit(void) |
@@ -218,6 +230,7 @@ static int __init snirm_a20r_setup_devinit(void) | |||
218 | platform_device_register(&snirm_53c710_pdev); | 230 | platform_device_register(&snirm_53c710_pdev); |
219 | platform_device_register(&sc26xx_pdev); | 231 | platform_device_register(&sc26xx_pdev); |
220 | platform_device_register(&a20r_serial8250_device); | 232 | platform_device_register(&a20r_serial8250_device); |
233 | platform_device_register(&a20r_ds1216_device); | ||
221 | break; | 234 | break; |
222 | } | 235 | } |
223 | 236 | ||
diff --git a/arch/mips/sni/ds1216.c b/arch/mips/sni/ds1216.c deleted file mode 100644 index 1d92732c14f1..000000000000 --- a/arch/mips/sni/ds1216.c +++ /dev/null | |||
@@ -1,81 +0,0 @@ | |||
1 | |||
2 | #include <linux/bcd.h> | ||
3 | #include <linux/time.h> | ||
4 | |||
5 | #include <asm/ds1216.h> | ||
6 | |||
7 | volatile unsigned char *ds1216_base; | ||
8 | |||
9 | /* | ||
10 | * Read the 64 bit we'd like to have - It a series | ||
11 | * of 64 bits showing up in the LSB of the base register. | ||
12 | * | ||
13 | */ | ||
14 | static unsigned char *ds1216_read(void) | ||
15 | { | ||
16 | static unsigned char rdbuf[8]; | ||
17 | unsigned char c; | ||
18 | int i, j; | ||
19 | |||
20 | for (i = 0; i < 8; i++) { | ||
21 | c = 0x0; | ||
22 | for (j = 0; j < 8; j++) { | ||
23 | c |= (*ds1216_base & 0x1) << j; | ||
24 | } | ||
25 | rdbuf[i] = c; | ||
26 | } | ||
27 | |||
28 | return rdbuf; | ||
29 | } | ||
30 | |||
31 | static void ds1216_switch_ds_to_clock(void) | ||
32 | { | ||
33 | unsigned char magic[] = { | ||
34 | 0xc5, 0x3a, 0xa3, 0x5c, 0xc5, 0x3a, 0xa3, 0x5c | ||
35 | }; | ||
36 | int i,j,c; | ||
37 | |||
38 | /* Reset magic pointer */ | ||
39 | c = *ds1216_base; | ||
40 | |||
41 | /* Write 64 bit magic to DS1216 */ | ||
42 | for (i = 0; i < 8; i++) { | ||
43 | c = magic[i]; | ||
44 | for (j = 0; j < 8; j++) { | ||
45 | *ds1216_base = c; | ||
46 | c = c >> 1; | ||
47 | } | ||
48 | } | ||
49 | } | ||
50 | |||
51 | unsigned long ds1216_get_cmos_time(void) | ||
52 | { | ||
53 | unsigned char *rdbuf; | ||
54 | unsigned int year, month, date, hour, min, sec; | ||
55 | |||
56 | ds1216_switch_ds_to_clock(); | ||
57 | rdbuf = ds1216_read(); | ||
58 | |||
59 | sec = BCD2BIN(DS1216_SEC(rdbuf)); | ||
60 | min = BCD2BIN(DS1216_MIN(rdbuf)); | ||
61 | hour = BCD2BIN(DS1216_HOUR(rdbuf)); | ||
62 | date = BCD2BIN(DS1216_DATE(rdbuf)); | ||
63 | month = BCD2BIN(DS1216_MONTH(rdbuf)); | ||
64 | year = BCD2BIN(DS1216_YEAR(rdbuf)); | ||
65 | |||
66 | if (DS1216_1224(rdbuf) && DS1216_AMPM(rdbuf)) | ||
67 | hour+=12; | ||
68 | |||
69 | if (year < 70) | ||
70 | year += 2000; | ||
71 | else | ||
72 | year += 1900; | ||
73 | |||
74 | return mktime(year, month, date, hour, min, sec); | ||
75 | } | ||
76 | |||
77 | int ds1216_set_rtc_mmss(unsigned long nowtime) | ||
78 | { | ||
79 | printk("ds1216_set_rtc_mmss called but not implemented\n"); | ||
80 | return -1; | ||
81 | } | ||
diff --git a/arch/mips/sni/pcimt.c b/arch/mips/sni/pcimt.c index 97b234361b4d..44b1ae62aa4a 100644 --- a/arch/mips/sni/pcimt.c +++ b/arch/mips/sni/pcimt.c | |||
@@ -14,7 +14,6 @@ | |||
14 | #include <linux/pci.h> | 14 | #include <linux/pci.h> |
15 | #include <linux/serial_8250.h> | 15 | #include <linux/serial_8250.h> |
16 | 16 | ||
17 | #include <asm/mc146818-time.h> | ||
18 | #include <asm/sni.h> | 17 | #include <asm/sni.h> |
19 | #include <asm/time.h> | 18 | #include <asm/time.h> |
20 | #include <asm/i8259.h> | 19 | #include <asm/i8259.h> |
@@ -90,6 +89,26 @@ static struct platform_device pcimt_serial8250_device = { | |||
90 | }, | 89 | }, |
91 | }; | 90 | }; |
92 | 91 | ||
92 | static struct resource pcimt_cmos_rsrc[] = { | ||
93 | { | ||
94 | .start = 0x70, | ||
95 | .end = 0x71, | ||
96 | .flags = IORESOURCE_IO | ||
97 | }, | ||
98 | { | ||
99 | .start = 8, | ||
100 | .end = 8, | ||
101 | .flags = IORESOURCE_IRQ | ||
102 | } | ||
103 | }; | ||
104 | |||
105 | static struct platform_device pcimt_cmos_device = { | ||
106 | .name = "rtc_cmos", | ||
107 | .num_resources = ARRAY_SIZE(pcimt_cmos_rsrc), | ||
108 | .resource = pcimt_cmos_rsrc | ||
109 | }; | ||
110 | |||
111 | |||
93 | static struct resource sni_io_resource = { | 112 | static struct resource sni_io_resource = { |
94 | .start = 0x00000000UL, | 113 | .start = 0x00000000UL, |
95 | .end = 0x03bfffffUL, | 114 | .end = 0x03bfffffUL, |
@@ -290,12 +309,10 @@ void __init sni_pcimt_irq_init(void) | |||
290 | change_c0_status(ST0_IM, IE_IRQ1|IE_IRQ3); | 309 | change_c0_status(ST0_IM, IE_IRQ1|IE_IRQ3); |
291 | } | 310 | } |
292 | 311 | ||
293 | void sni_pcimt_init(void) | 312 | void __init sni_pcimt_init(void) |
294 | { | 313 | { |
295 | sni_pcimt_detect(); | 314 | sni_pcimt_detect(); |
296 | sni_pcimt_sc_init(); | 315 | sni_pcimt_sc_init(); |
297 | rtc_mips_get_time = mc146818_get_cmos_time; | ||
298 | rtc_mips_set_time = mc146818_set_rtc_mmss; | ||
299 | board_time_init = sni_cpu_time_init; | 316 | board_time_init = sni_cpu_time_init; |
300 | ioport_resource.end = sni_io_resource.end; | 317 | ioport_resource.end = sni_io_resource.end; |
301 | #ifdef CONFIG_PCI | 318 | #ifdef CONFIG_PCI |
@@ -312,6 +329,7 @@ static int __init snirm_pcimt_setup_devinit(void) | |||
312 | case SNI_BRD_PCI_DESKTOP: | 329 | case SNI_BRD_PCI_DESKTOP: |
313 | case SNI_BRD_PCI_MTOWER_CPLUS: | 330 | case SNI_BRD_PCI_MTOWER_CPLUS: |
314 | platform_device_register(&pcimt_serial8250_device); | 331 | platform_device_register(&pcimt_serial8250_device); |
332 | platform_device_register(&pcimt_cmos_device); | ||
315 | break; | 333 | break; |
316 | } | 334 | } |
317 | 335 | ||
diff --git a/arch/mips/sni/pcit.c b/arch/mips/sni/pcit.c index 00d151f4d121..2480c478dcbd 100644 --- a/arch/mips/sni/pcit.c +++ b/arch/mips/sni/pcit.c | |||
@@ -13,7 +13,6 @@ | |||
13 | #include <linux/pci.h> | 13 | #include <linux/pci.h> |
14 | #include <linux/serial_8250.h> | 14 | #include <linux/serial_8250.h> |
15 | 15 | ||
16 | #include <asm/mc146818-time.h> | ||
17 | #include <asm/sni.h> | 16 | #include <asm/sni.h> |
18 | #include <asm/time.h> | 17 | #include <asm/time.h> |
19 | #include <asm/irq_cpu.h> | 18 | #include <asm/irq_cpu.h> |
@@ -58,6 +57,25 @@ static struct platform_device pcit_cplus_serial8250_device = { | |||
58 | }, | 57 | }, |
59 | }; | 58 | }; |
60 | 59 | ||
60 | static struct resource pcit_cmos_rsrc[] = { | ||
61 | { | ||
62 | .start = 0x70, | ||
63 | .end = 0x71, | ||
64 | .flags = IORESOURCE_IO | ||
65 | }, | ||
66 | { | ||
67 | .start = 8, | ||
68 | .end = 8, | ||
69 | .flags = IORESOURCE_IRQ | ||
70 | } | ||
71 | }; | ||
72 | |||
73 | static struct platform_device pcit_cmos_device = { | ||
74 | .name = "rtc_cmos", | ||
75 | .num_resources = ARRAY_SIZE(pcit_cmos_rsrc), | ||
76 | .resource = pcit_cmos_rsrc | ||
77 | }; | ||
78 | |||
61 | static struct resource sni_io_resource = { | 79 | static struct resource sni_io_resource = { |
62 | .start = 0x00000000UL, | 80 | .start = 0x00000000UL, |
63 | .end = 0x03bfffffUL, | 81 | .end = 0x03bfffffUL, |
@@ -243,10 +261,8 @@ void __init sni_pcit_cplus_irq_init(void) | |||
243 | setup_irq (MIPS_CPU_IRQ_BASE + 3, &sni_isa_irq); | 261 | setup_irq (MIPS_CPU_IRQ_BASE + 3, &sni_isa_irq); |
244 | } | 262 | } |
245 | 263 | ||
246 | void sni_pcit_init(void) | 264 | void __init sni_pcit_init(void) |
247 | { | 265 | { |
248 | rtc_mips_get_time = mc146818_get_cmos_time; | ||
249 | rtc_mips_set_time = mc146818_set_rtc_mmss; | ||
250 | board_time_init = sni_cpu_time_init; | 266 | board_time_init = sni_cpu_time_init; |
251 | ioport_resource.end = sni_io_resource.end; | 267 | ioport_resource.end = sni_io_resource.end; |
252 | #ifdef CONFIG_PCI | 268 | #ifdef CONFIG_PCI |
@@ -261,10 +277,12 @@ static int __init snirm_pcit_setup_devinit(void) | |||
261 | switch (sni_brd_type) { | 277 | switch (sni_brd_type) { |
262 | case SNI_BRD_PCI_TOWER: | 278 | case SNI_BRD_PCI_TOWER: |
263 | platform_device_register(&pcit_serial8250_device); | 279 | platform_device_register(&pcit_serial8250_device); |
280 | platform_device_register(&pcit_cmos_device); | ||
264 | break; | 281 | break; |
265 | 282 | ||
266 | case SNI_BRD_PCI_TOWER_CPLUS: | 283 | case SNI_BRD_PCI_TOWER_CPLUS: |
267 | platform_device_register(&pcit_cplus_serial8250_device); | 284 | platform_device_register(&pcit_cplus_serial8250_device); |
285 | platform_device_register(&pcit_cmos_device); | ||
268 | break; | 286 | break; |
269 | } | 287 | } |
270 | return 0; | 288 | return 0; |
diff --git a/arch/mips/sni/rm200.c b/arch/mips/sni/rm200.c index b82ff129f5ea..4bfda020fdc7 100644 --- a/arch/mips/sni/rm200.c +++ b/arch/mips/sni/rm200.c | |||
@@ -15,7 +15,6 @@ | |||
15 | 15 | ||
16 | #include <asm/sni.h> | 16 | #include <asm/sni.h> |
17 | #include <asm/time.h> | 17 | #include <asm/time.h> |
18 | #include <asm/ds1216.h> | ||
19 | #include <asm/irq_cpu.h> | 18 | #include <asm/irq_cpu.h> |
20 | 19 | ||
21 | #define PORT(_base,_irq) \ | 20 | #define PORT(_base,_irq) \ |
@@ -41,20 +40,34 @@ static struct platform_device rm200_serial8250_device = { | |||
41 | }, | 40 | }, |
42 | }; | 41 | }; |
43 | 42 | ||
43 | static struct resource rm200_ds1216_rsrc[] = { | ||
44 | { | ||
45 | .start = 0x1cd41ffc, | ||
46 | .end = 0x1cd41fff, | ||
47 | .flags = IORESOURCE_MEM | ||
48 | } | ||
49 | }; | ||
50 | |||
51 | static struct platform_device rm200_ds1216_device = { | ||
52 | .name = "rtc-ds1216", | ||
53 | .num_resources = ARRAY_SIZE(rm200_ds1216_rsrc), | ||
54 | .resource = rm200_ds1216_rsrc | ||
55 | }; | ||
56 | |||
44 | static struct resource snirm_82596_rm200_rsrc[] = { | 57 | static struct resource snirm_82596_rm200_rsrc[] = { |
45 | { | 58 | { |
46 | .start = 0xb8000000, | 59 | .start = 0x18000000, |
47 | .end = 0xb80fffff, | 60 | .end = 0x180fffff, |
48 | .flags = IORESOURCE_MEM | 61 | .flags = IORESOURCE_MEM |
49 | }, | 62 | }, |
50 | { | 63 | { |
51 | .start = 0xbb000000, | 64 | .start = 0x1b000000, |
52 | .end = 0xbb000004, | 65 | .end = 0x1b000004, |
53 | .flags = IORESOURCE_MEM | 66 | .flags = IORESOURCE_MEM |
54 | }, | 67 | }, |
55 | { | 68 | { |
56 | .start = 0xbff00000, | 69 | .start = 0x1ff00000, |
57 | .end = 0xbff00020, | 70 | .end = 0x1ff00020, |
58 | .flags = IORESOURCE_MEM | 71 | .flags = IORESOURCE_MEM |
59 | }, | 72 | }, |
60 | { | 73 | { |
@@ -96,6 +109,7 @@ static int __init snirm_setup_devinit(void) | |||
96 | { | 109 | { |
97 | if (sni_brd_type == SNI_BRD_RM200) { | 110 | if (sni_brd_type == SNI_BRD_RM200) { |
98 | platform_device_register(&rm200_serial8250_device); | 111 | platform_device_register(&rm200_serial8250_device); |
112 | platform_device_register(&rm200_ds1216_device); | ||
99 | platform_device_register(&snirm_82596_rm200_pdev); | 113 | platform_device_register(&snirm_82596_rm200_pdev); |
100 | platform_device_register(&snirm_53c710_rm200_pdev); | 114 | platform_device_register(&snirm_53c710_rm200_pdev); |
101 | } | 115 | } |
@@ -176,11 +190,9 @@ void __init sni_rm200_irq_init(void) | |||
176 | setup_irq (SNI_RM200_INT_START + 0, &sni_isa_irq); | 190 | setup_irq (SNI_RM200_INT_START + 0, &sni_isa_irq); |
177 | } | 191 | } |
178 | 192 | ||
179 | void sni_rm200_init(void) | 193 | void __init sni_rm200_init(void) |
180 | { | 194 | { |
181 | set_io_port_base(SNI_PORT_BASE + 0x02000000); | 195 | set_io_port_base(SNI_PORT_BASE + 0x02000000); |
182 | ioport_resource.end += 0x02000000; | 196 | ioport_resource.end += 0x02000000; |
183 | ds1216_base = (volatile unsigned char *) SNI_DS1216_RM200_BASE; | ||
184 | rtc_mips_get_time = ds1216_get_cmos_time; | ||
185 | board_time_init = sni_cpu_time_init; | 197 | board_time_init = sni_cpu_time_init; |
186 | } | 198 | } |
diff --git a/arch/mips/sni/sniprom.c b/arch/mips/sni/sniprom.c index 643366eb854a..00a03a6e8f58 100644 --- a/arch/mips/sni/sniprom.c +++ b/arch/mips/sni/sniprom.c | |||
@@ -146,7 +146,10 @@ static void __init sni_console_setup(void) | |||
146 | } | 146 | } |
147 | if (baud) | 147 | if (baud) |
148 | strcpy(options, baud); | 148 | strcpy(options, baud); |
149 | add_preferred_console("ttyS", port, baud ? options : NULL); | 149 | if (strncmp (cdev, "tty552", 6) == 0) |
150 | add_preferred_console("ttyS", port, baud ? options : NULL); | ||
151 | else | ||
152 | add_preferred_console("ttySC", port, baud ? options : NULL); | ||
150 | } | 153 | } |
151 | } | 154 | } |
152 | 155 | ||
diff --git a/arch/mips/tx4938/common/Makefile b/arch/mips/tx4938/common/Makefile index 2033ae77f632..83cda518f204 100644 --- a/arch/mips/tx4938/common/Makefile +++ b/arch/mips/tx4938/common/Makefile | |||
@@ -6,6 +6,6 @@ | |||
6 | # unless it's something special (ie not a .c file). | 6 | # unless it's something special (ie not a .c file). |
7 | # | 7 | # |
8 | 8 | ||
9 | obj-y += prom.o setup.o irq.o rtc_rx5c348.o | 9 | obj-y += prom.o setup.o irq.o |
10 | obj-$(CONFIG_KGDB) += dbgio.o | 10 | obj-$(CONFIG_KGDB) += dbgio.o |
11 | 11 | ||
diff --git a/arch/mips/tx4938/common/rtc_rx5c348.c b/arch/mips/tx4938/common/rtc_rx5c348.c deleted file mode 100644 index 07f782fc0725..000000000000 --- a/arch/mips/tx4938/common/rtc_rx5c348.c +++ /dev/null | |||
@@ -1,192 +0,0 @@ | |||
1 | /* | ||
2 | * RTC routines for RICOH Rx5C348 SPI chip. | ||
3 | * Copyright (C) 2000-2001 Toshiba Corporation | ||
4 | * | ||
5 | * 2003-2005 (c) MontaVista Software, Inc. This file is licensed under the | ||
6 | * terms of the GNU General Public License version 2. This program is | ||
7 | * licensed "as is" without any warranty of any kind, whether express | ||
8 | * or implied. | ||
9 | * | ||
10 | * Support for TX4938 in 2.6 - Manish Lachwani (mlachwani@mvista.com) | ||
11 | */ | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/kernel.h> | ||
14 | #include <linux/string.h> | ||
15 | #include <linux/rtc.h> | ||
16 | #include <linux/time.h> | ||
17 | #include <linux/bcd.h> | ||
18 | #include <asm/time.h> | ||
19 | #include <asm/tx4938/spi.h> | ||
20 | |||
21 | #define EPOCH 2000 | ||
22 | |||
23 | /* registers */ | ||
24 | #define Rx5C348_REG_SECOND 0 | ||
25 | #define Rx5C348_REG_MINUTE 1 | ||
26 | #define Rx5C348_REG_HOUR 2 | ||
27 | #define Rx5C348_REG_WEEK 3 | ||
28 | #define Rx5C348_REG_DAY 4 | ||
29 | #define Rx5C348_REG_MONTH 5 | ||
30 | #define Rx5C348_REG_YEAR 6 | ||
31 | #define Rx5C348_REG_ADJUST 7 | ||
32 | #define Rx5C348_REG_ALARM_W_MIN 8 | ||
33 | #define Rx5C348_REG_ALARM_W_HOUR 9 | ||
34 | #define Rx5C348_REG_ALARM_W_WEEK 10 | ||
35 | #define Rx5C348_REG_ALARM_D_MIN 11 | ||
36 | #define Rx5C348_REG_ALARM_D_HOUR 12 | ||
37 | #define Rx5C348_REG_CTL1 14 | ||
38 | #define Rx5C348_REG_CTL2 15 | ||
39 | |||
40 | /* register bits */ | ||
41 | #define Rx5C348_BIT_PM 0x20 /* REG_HOUR */ | ||
42 | #define Rx5C348_BIT_Y2K 0x80 /* REG_MONTH */ | ||
43 | #define Rx5C348_BIT_24H 0x20 /* REG_CTL1 */ | ||
44 | #define Rx5C348_BIT_XSTP 0x10 /* REG_CTL2 */ | ||
45 | |||
46 | /* commands */ | ||
47 | #define Rx5C348_CMD_W(addr) (((addr) << 4) | 0x08) /* single write */ | ||
48 | #define Rx5C348_CMD_R(addr) (((addr) << 4) | 0x0c) /* single read */ | ||
49 | #define Rx5C348_CMD_MW(addr) (((addr) << 4) | 0x00) /* burst write */ | ||
50 | #define Rx5C348_CMD_MR(addr) (((addr) << 4) | 0x04) /* burst read */ | ||
51 | |||
52 | static struct spi_dev_desc srtc_dev_desc = { | ||
53 | .baud = 1000000, /* 1.0Mbps @ Vdd 2.0V */ | ||
54 | .tcss = 31, | ||
55 | .tcsh = 1, | ||
56 | .tcsr = 62, | ||
57 | /* 31us for Tcss (62us for Tcsr) is required for carry operation) */ | ||
58 | .byteorder = 1, /* MSB-First */ | ||
59 | .polarity = 0, /* High-Active */ | ||
60 | .phase = 1, /* Shift-Then-Sample */ | ||
61 | |||
62 | }; | ||
63 | static int srtc_chipid; | ||
64 | static int srtc_24h; | ||
65 | |||
66 | static inline int | ||
67 | spi_rtc_io(unsigned char *inbuf, unsigned char *outbuf, unsigned int count) | ||
68 | { | ||
69 | unsigned char *inbufs[1], *outbufs[1]; | ||
70 | unsigned int incounts[2], outcounts[2]; | ||
71 | inbufs[0] = inbuf; | ||
72 | incounts[0] = count; | ||
73 | incounts[1] = 0; | ||
74 | outbufs[0] = outbuf; | ||
75 | outcounts[0] = count; | ||
76 | outcounts[1] = 0; | ||
77 | return txx9_spi_io(srtc_chipid, &srtc_dev_desc, | ||
78 | inbufs, incounts, outbufs, outcounts, 0); | ||
79 | } | ||
80 | |||
81 | /* RTC-dependent code for time.c */ | ||
82 | |||
83 | static int | ||
84 | rtc_rx5c348_set_time(unsigned long t) | ||
85 | { | ||
86 | unsigned char inbuf[8]; | ||
87 | struct rtc_time tm; | ||
88 | u8 year, month, day, hour, minute, second, century; | ||
89 | |||
90 | /* convert */ | ||
91 | to_tm(t, &tm); | ||
92 | |||
93 | year = tm.tm_year % 100; | ||
94 | month = tm.tm_mon+1; /* tm_mon starts from 0 to 11 */ | ||
95 | day = tm.tm_mday; | ||
96 | hour = tm.tm_hour; | ||
97 | minute = tm.tm_min; | ||
98 | second = tm.tm_sec; | ||
99 | century = tm.tm_year / 100; | ||
100 | |||
101 | inbuf[0] = Rx5C348_CMD_MW(Rx5C348_REG_SECOND); | ||
102 | BIN_TO_BCD(second); | ||
103 | inbuf[1] = second; | ||
104 | BIN_TO_BCD(minute); | ||
105 | inbuf[2] = minute; | ||
106 | |||
107 | if (srtc_24h) { | ||
108 | BIN_TO_BCD(hour); | ||
109 | inbuf[3] = hour; | ||
110 | } else { | ||
111 | /* hour 0 is AM12, noon is PM12 */ | ||
112 | inbuf[3] = 0; | ||
113 | if (hour >= 12) | ||
114 | inbuf[3] = Rx5C348_BIT_PM; | ||
115 | hour = (hour + 11) % 12 + 1; | ||
116 | BIN_TO_BCD(hour); | ||
117 | inbuf[3] |= hour; | ||
118 | } | ||
119 | inbuf[4] = 0; /* ignore week */ | ||
120 | BIN_TO_BCD(day); | ||
121 | inbuf[5] = day; | ||
122 | BIN_TO_BCD(month); | ||
123 | inbuf[6] = month; | ||
124 | if (century >= 20) | ||
125 | inbuf[6] |= Rx5C348_BIT_Y2K; | ||
126 | BIN_TO_BCD(year); | ||
127 | inbuf[7] = year; | ||
128 | /* write in one transfer to avoid data inconsistency */ | ||
129 | return spi_rtc_io(inbuf, NULL, 8); | ||
130 | } | ||
131 | |||
132 | static unsigned long | ||
133 | rtc_rx5c348_get_time(void) | ||
134 | { | ||
135 | unsigned char inbuf[8], outbuf[8]; | ||
136 | unsigned int year, month, day, hour, minute, second; | ||
137 | |||
138 | inbuf[0] = Rx5C348_CMD_MR(Rx5C348_REG_SECOND); | ||
139 | memset(inbuf + 1, 0, 7); | ||
140 | /* read in one transfer to avoid data inconsistency */ | ||
141 | if (spi_rtc_io(inbuf, outbuf, 8)) | ||
142 | return 0; | ||
143 | second = outbuf[1]; | ||
144 | BCD_TO_BIN(second); | ||
145 | minute = outbuf[2]; | ||
146 | BCD_TO_BIN(minute); | ||
147 | if (srtc_24h) { | ||
148 | hour = outbuf[3]; | ||
149 | BCD_TO_BIN(hour); | ||
150 | } else { | ||
151 | hour = outbuf[3] & ~Rx5C348_BIT_PM; | ||
152 | BCD_TO_BIN(hour); | ||
153 | hour %= 12; | ||
154 | if (outbuf[3] & Rx5C348_BIT_PM) | ||
155 | hour += 12; | ||
156 | } | ||
157 | day = outbuf[5]; | ||
158 | BCD_TO_BIN(day); | ||
159 | month = outbuf[6] & ~Rx5C348_BIT_Y2K; | ||
160 | BCD_TO_BIN(month); | ||
161 | year = outbuf[7]; | ||
162 | BCD_TO_BIN(year); | ||
163 | year += EPOCH; | ||
164 | |||
165 | return mktime(year, month, day, hour, minute, second); | ||
166 | } | ||
167 | |||
168 | void __init | ||
169 | rtc_rx5c348_init(int chipid) | ||
170 | { | ||
171 | unsigned char inbuf[2], outbuf[2]; | ||
172 | srtc_chipid = chipid; | ||
173 | /* turn on RTC if it is not on */ | ||
174 | inbuf[0] = Rx5C348_CMD_R(Rx5C348_REG_CTL2); | ||
175 | inbuf[1] = 0; | ||
176 | spi_rtc_io(inbuf, outbuf, 2); | ||
177 | if (outbuf[1] & Rx5C348_BIT_XSTP) { | ||
178 | inbuf[0] = Rx5C348_CMD_W(Rx5C348_REG_CTL2); | ||
179 | inbuf[1] = 0; | ||
180 | spi_rtc_io(inbuf, NULL, 2); | ||
181 | } | ||
182 | |||
183 | inbuf[0] = Rx5C348_CMD_R(Rx5C348_REG_CTL1); | ||
184 | inbuf[1] = 0; | ||
185 | spi_rtc_io(inbuf, outbuf, 2); | ||
186 | if (outbuf[1] & Rx5C348_BIT_24H) | ||
187 | srtc_24h = 1; | ||
188 | |||
189 | /* set the function pointers */ | ||
190 | rtc_mips_get_time = rtc_rx5c348_get_time; | ||
191 | rtc_mips_set_time = rtc_rx5c348_set_time; | ||
192 | } | ||
diff --git a/arch/mips/tx4938/toshiba_rbtx4938/Makefile b/arch/mips/tx4938/toshiba_rbtx4938/Makefile index 226941279d75..10c94e62bf5b 100644 --- a/arch/mips/tx4938/toshiba_rbtx4938/Makefile +++ b/arch/mips/tx4938/toshiba_rbtx4938/Makefile | |||
@@ -6,4 +6,4 @@ | |||
6 | # unless it's something special (ie not a .c file). | 6 | # unless it's something special (ie not a .c file). |
7 | # | 7 | # |
8 | 8 | ||
9 | obj-y += prom.o setup.o irq.o spi_eeprom.o spi_txx9.o | 9 | obj-y += prom.o setup.o irq.o spi_eeprom.o |
diff --git a/arch/mips/tx4938/toshiba_rbtx4938/irq.c b/arch/mips/tx4938/toshiba_rbtx4938/irq.c index 2e96dbb248b1..91aea7aff515 100644 --- a/arch/mips/tx4938/toshiba_rbtx4938/irq.c +++ b/arch/mips/tx4938/toshiba_rbtx4938/irq.c | |||
@@ -165,8 +165,6 @@ toshiba_rbtx4938_irq_ioc_disable(unsigned int irq) | |||
165 | TX4938_RD08(TOSHIBA_RBTX4938_IOC_INTR_ENAB); | 165 | TX4938_RD08(TOSHIBA_RBTX4938_IOC_INTR_ENAB); |
166 | } | 166 | } |
167 | 167 | ||
168 | extern void __init txx9_spi_irqinit(int irc_irq); | ||
169 | |||
170 | void __init arch_init_irq(void) | 168 | void __init arch_init_irq(void) |
171 | { | 169 | { |
172 | extern void tx4938_irq_init(void); | 170 | extern void tx4938_irq_init(void); |
@@ -185,9 +183,5 @@ void __init arch_init_irq(void) | |||
185 | /* Onboard 10M Ether: High Active */ | 183 | /* Onboard 10M Ether: High Active */ |
186 | TX4938_WR(TX4938_MKA(TX4938_IRC_IRDM0), 0x00000040); | 184 | TX4938_WR(TX4938_MKA(TX4938_IRC_IRDM0), 0x00000040); |
187 | 185 | ||
188 | if (tx4938_ccfgptr->pcfg & TX4938_PCFG_SPI_SEL) { | ||
189 | txx9_spi_irqinit(RBTX4938_IRQ_IRC_SPI); | ||
190 | } | ||
191 | |||
192 | wbflush(); | 186 | wbflush(); |
193 | } | 187 | } |
diff --git a/arch/mips/tx4938/toshiba_rbtx4938/setup.c b/arch/mips/tx4938/toshiba_rbtx4938/setup.c index f5d1ce739fcc..6ed39a5aea72 100644 --- a/arch/mips/tx4938/toshiba_rbtx4938/setup.c +++ b/arch/mips/tx4938/toshiba_rbtx4938/setup.c | |||
@@ -14,13 +14,13 @@ | |||
14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
15 | #include <linux/types.h> | 15 | #include <linux/types.h> |
16 | #include <linux/ioport.h> | 16 | #include <linux/ioport.h> |
17 | #include <linux/proc_fs.h> | ||
18 | #include <linux/delay.h> | 17 | #include <linux/delay.h> |
19 | #include <linux/interrupt.h> | 18 | #include <linux/interrupt.h> |
20 | #include <linux/console.h> | 19 | #include <linux/console.h> |
21 | #include <linux/pci.h> | 20 | #include <linux/pci.h> |
22 | #include <linux/pm.h> | 21 | #include <linux/pm.h> |
23 | #include <linux/platform_device.h> | 22 | #include <linux/platform_device.h> |
23 | #include <linux/clk.h> | ||
24 | 24 | ||
25 | #include <asm/wbflush.h> | 25 | #include <asm/wbflush.h> |
26 | #include <asm/reboot.h> | 26 | #include <asm/reboot.h> |
@@ -35,6 +35,9 @@ | |||
35 | #include <linux/serial.h> | 35 | #include <linux/serial.h> |
36 | #include <linux/serial_core.h> | 36 | #include <linux/serial_core.h> |
37 | #endif | 37 | #endif |
38 | #include <linux/spi/spi.h> | ||
39 | #include <asm/tx4938/spi.h> | ||
40 | #include <asm/gpio.h> | ||
38 | 41 | ||
39 | extern void rbtx4938_time_init(void) __init; | 42 | extern void rbtx4938_time_init(void) __init; |
40 | extern char * __init prom_getcmdline(void); | 43 | extern char * __init prom_getcmdline(void); |
@@ -349,7 +352,7 @@ static struct pci_dev *fake_pci_dev(struct pci_controller *hose, | |||
349 | static struct pci_dev dev; | 352 | static struct pci_dev dev; |
350 | static struct pci_bus bus; | 353 | static struct pci_bus bus; |
351 | 354 | ||
352 | dev.sysdata = (void *)hose; | 355 | dev.sysdata = bus.sysdata = hose; |
353 | dev.devfn = devfn; | 356 | dev.devfn = devfn; |
354 | bus.number = busnr; | 357 | bus.number = busnr; |
355 | bus.ops = hose->pci_ops; | 358 | bus.ops = hose->pci_ops; |
@@ -382,8 +385,10 @@ int txboard_pci66_check(struct pci_controller *hose, int top_bus, int current_bu | |||
382 | printk("PCI: Checking 66MHz capabilities...\n"); | 385 | printk("PCI: Checking 66MHz capabilities...\n"); |
383 | 386 | ||
384 | for (pci_devfn=devfn_start; pci_devfn<devfn_stop; pci_devfn++) { | 387 | for (pci_devfn=devfn_start; pci_devfn<devfn_stop; pci_devfn++) { |
385 | early_read_config_word(hose, top_bus, current_bus, pci_devfn, | 388 | if (early_read_config_word(hose, top_bus, current_bus, |
386 | PCI_VENDOR_ID, &vid); | 389 | pci_devfn, PCI_VENDOR_ID, |
390 | &vid) != PCIBIOS_SUCCESSFUL) | ||
391 | continue; | ||
387 | 392 | ||
388 | if (vid == 0xffff) continue; | 393 | if (vid == 0xffff) continue; |
389 | 394 | ||
@@ -460,7 +465,6 @@ static int __init tx4938_pcibios_init(void) | |||
460 | int extarb = !(tx4938_ccfgptr->ccfg & TX4938_CCFG_PCIXARB); | 465 | int extarb = !(tx4938_ccfgptr->ccfg & TX4938_CCFG_PCIXARB); |
461 | 466 | ||
462 | PCIBIOS_MIN_IO = 0x00001000UL; | 467 | PCIBIOS_MIN_IO = 0x00001000UL; |
463 | PCIBIOS_MIN_MEM = 0x01000000UL; | ||
464 | 468 | ||
465 | mem_base[0] = txboard_request_phys_region_shrink(&mem_size[0]); | 469 | mem_base[0] = txboard_request_phys_region_shrink(&mem_size[0]); |
466 | io_base[0] = txboard_request_phys_region_shrink(&io_size[0]); | 470 | io_base[0] = txboard_request_phys_region_shrink(&io_size[0]); |
@@ -574,82 +578,43 @@ arch_initcall(tx4938_pcibios_init); | |||
574 | #define SEEPROM3_CS 1 /* IOC */ | 578 | #define SEEPROM3_CS 1 /* IOC */ |
575 | #define SRTC_CS 2 /* IOC */ | 579 | #define SRTC_CS 2 /* IOC */ |
576 | 580 | ||
577 | static int rbtx4938_spi_cs_func(int chipid, int on) | ||
578 | { | ||
579 | unsigned char bit; | ||
580 | switch (chipid) { | ||
581 | case RBTX4938_SEEPROM1_CHIPID: | ||
582 | if (on) | ||
583 | tx4938_pioptr->dout &= ~(1 << SEEPROM1_CS); | ||
584 | else | ||
585 | tx4938_pioptr->dout |= (1 << SEEPROM1_CS); | ||
586 | return 0; | ||
587 | break; | ||
588 | case RBTX4938_SEEPROM2_CHIPID: | ||
589 | bit = (1 << SEEPROM2_CS); | ||
590 | break; | ||
591 | case RBTX4938_SEEPROM3_CHIPID: | ||
592 | bit = (1 << SEEPROM3_CS); | ||
593 | break; | ||
594 | case RBTX4938_SRTC_CHIPID: | ||
595 | bit = (1 << SRTC_CS); | ||
596 | break; | ||
597 | default: | ||
598 | return -ENODEV; | ||
599 | } | ||
600 | /* bit1,2,4 are low active, bit3 is high active */ | ||
601 | *rbtx4938_spics_ptr = | ||
602 | (*rbtx4938_spics_ptr & ~bit) | | ||
603 | ((on ? (bit ^ 0x0b) : ~(bit ^ 0x0b)) & bit); | ||
604 | return 0; | ||
605 | } | ||
606 | |||
607 | #ifdef CONFIG_PCI | 581 | #ifdef CONFIG_PCI |
608 | extern int spi_eeprom_read(int chipid, int address, unsigned char *buf, int len); | 582 | static int __init rbtx4938_ethaddr_init(void) |
609 | |||
610 | int rbtx4938_get_tx4938_ethaddr(struct pci_dev *dev, unsigned char *addr) | ||
611 | { | 583 | { |
612 | struct pci_controller *channel = (struct pci_controller *)dev->bus->sysdata; | 584 | unsigned char dat[17]; |
613 | static unsigned char dat[17]; | 585 | unsigned char sum; |
614 | static int read_dat = 0; | 586 | int i; |
615 | int ch = 0; | ||
616 | 587 | ||
617 | if (channel != &tx4938_pci_controller[1]) | 588 | /* 0-3: "MAC\0", 4-9:eth0, 10-15:eth1, 16:sum */ |
618 | return -ENODEV; | 589 | if (spi_eeprom_read(SEEPROM1_CS, 0, dat, sizeof(dat))) { |
619 | /* TX4938 PCIC1 */ | 590 | printk(KERN_ERR "seeprom: read error.\n"); |
620 | switch (PCI_SLOT(dev->devfn)) { | ||
621 | case TX4938_PCIC_IDSEL_AD_TO_SLOT(31): | ||
622 | ch = 0; | ||
623 | break; | ||
624 | case TX4938_PCIC_IDSEL_AD_TO_SLOT(30): | ||
625 | ch = 1; | ||
626 | break; | ||
627 | default: | ||
628 | return -ENODEV; | 591 | return -ENODEV; |
592 | } else { | ||
593 | if (strcmp(dat, "MAC") != 0) | ||
594 | printk(KERN_WARNING "seeprom: bad signature.\n"); | ||
595 | for (i = 0, sum = 0; i < sizeof(dat); i++) | ||
596 | sum += dat[i]; | ||
597 | if (sum) | ||
598 | printk(KERN_WARNING "seeprom: bad checksum.\n"); | ||
629 | } | 599 | } |
630 | if (!read_dat) { | 600 | for (i = 0; i < 2; i++) { |
631 | unsigned char sum; | 601 | unsigned int slot = TX4938_PCIC_IDSEL_AD_TO_SLOT(31 - i); |
632 | int i; | 602 | unsigned int id = (1 << 8) | PCI_DEVFN(slot, 0); /* bus 1 */ |
633 | read_dat = 1; | 603 | struct platform_device *pdev; |
634 | /* 0-3: "MAC\0", 4-9:eth0, 10-15:eth1, 16:sum */ | 604 | if (!(tx4938_ccfgptr->pcfg & |
635 | if (spi_eeprom_read(RBTX4938_SEEPROM1_CHIPID, | 605 | (i ? TX4938_PCFG_ETH1_SEL : TX4938_PCFG_ETH0_SEL))) |
636 | 0, dat, sizeof(dat))) { | 606 | continue; |
637 | printk(KERN_ERR "seeprom: read error.\n"); | 607 | pdev = platform_device_alloc("tc35815-mac", id); |
638 | } else { | 608 | if (!pdev || |
639 | if (strcmp(dat, "MAC") != 0) | 609 | platform_device_add_data(pdev, &dat[4 + 6 * i], 6) || |
640 | printk(KERN_WARNING "seeprom: bad signature.\n"); | 610 | platform_device_add(pdev)) |
641 | for (i = 0, sum = 0; i < sizeof(dat); i++) | 611 | platform_device_put(pdev); |
642 | sum += dat[i]; | ||
643 | if (sum) | ||
644 | printk(KERN_WARNING "seeprom: bad checksum.\n"); | ||
645 | } | ||
646 | } | 612 | } |
647 | memcpy(addr, &dat[4 + 6 * ch], 6); | ||
648 | return 0; | 613 | return 0; |
649 | } | 614 | } |
615 | device_initcall(rbtx4938_ethaddr_init); | ||
650 | #endif /* CONFIG_PCI */ | 616 | #endif /* CONFIG_PCI */ |
651 | 617 | ||
652 | extern void __init txx9_spi_init(unsigned long base, int (*cs_func)(int chipid, int on)); | ||
653 | static void __init rbtx4938_spi_setup(void) | 618 | static void __init rbtx4938_spi_setup(void) |
654 | { | 619 | { |
655 | /* set SPI_SEL */ | 620 | /* set SPI_SEL */ |
@@ -657,7 +622,6 @@ static void __init rbtx4938_spi_setup(void) | |||
657 | /* chip selects for SPI devices */ | 622 | /* chip selects for SPI devices */ |
658 | tx4938_pioptr->dout |= (1 << SEEPROM1_CS); | 623 | tx4938_pioptr->dout |= (1 << SEEPROM1_CS); |
659 | tx4938_pioptr->dir |= (1 << SEEPROM1_CS); | 624 | tx4938_pioptr->dir |= (1 << SEEPROM1_CS); |
660 | txx9_spi_init(TX4938_SPI_REG, rbtx4938_spi_cs_func); | ||
661 | } | 625 | } |
662 | 626 | ||
663 | static struct resource rbtx4938_fpga_resource; | 627 | static struct resource rbtx4938_fpga_resource; |
@@ -896,10 +860,8 @@ void tx4938_report_pcic_status(void) | |||
896 | /* We use onchip r4k counter or TMR timer as our system wide timer | 860 | /* We use onchip r4k counter or TMR timer as our system wide timer |
897 | * interrupt running at 100HZ. */ | 861 | * interrupt running at 100HZ. */ |
898 | 862 | ||
899 | extern void __init rtc_rx5c348_init(int chipid); | ||
900 | void __init rbtx4938_time_init(void) | 863 | void __init rbtx4938_time_init(void) |
901 | { | 864 | { |
902 | rtc_rx5c348_init(RBTX4938_SRTC_CHIPID); | ||
903 | mips_hpt_frequency = txx9_cpu_clock / 2; | 865 | mips_hpt_frequency = txx9_cpu_clock / 2; |
904 | } | 866 | } |
905 | 867 | ||
@@ -1016,29 +978,6 @@ void __init toshiba_rbtx4938_setup(void) | |||
1016 | *rbtx4938_dipsw_ptr, *rbtx4938_bdipsw_ptr); | 978 | *rbtx4938_dipsw_ptr, *rbtx4938_bdipsw_ptr); |
1017 | } | 979 | } |
1018 | 980 | ||
1019 | #ifdef CONFIG_PROC_FS | ||
1020 | extern void spi_eeprom_proc_create(struct proc_dir_entry *dir, int chipid); | ||
1021 | static int __init tx4938_spi_proc_setup(void) | ||
1022 | { | ||
1023 | struct proc_dir_entry *tx4938_spi_eeprom_dir; | ||
1024 | |||
1025 | tx4938_spi_eeprom_dir = proc_mkdir("spi_eeprom", 0); | ||
1026 | |||
1027 | if (!tx4938_spi_eeprom_dir) | ||
1028 | return -ENOMEM; | ||
1029 | |||
1030 | /* don't allow user access to RBTX4938_SEEPROM1_CHIPID | ||
1031 | * as it contains eth0 and eth1 MAC addresses | ||
1032 | */ | ||
1033 | spi_eeprom_proc_create(tx4938_spi_eeprom_dir, RBTX4938_SEEPROM2_CHIPID); | ||
1034 | spi_eeprom_proc_create(tx4938_spi_eeprom_dir, RBTX4938_SEEPROM3_CHIPID); | ||
1035 | |||
1036 | return 0; | ||
1037 | } | ||
1038 | |||
1039 | __initcall(tx4938_spi_proc_setup); | ||
1040 | #endif | ||
1041 | |||
1042 | static int __init rbtx4938_ne_init(void) | 981 | static int __init rbtx4938_ne_init(void) |
1043 | { | 982 | { |
1044 | struct resource res[] = { | 983 | struct resource res[] = { |
@@ -1057,3 +996,176 @@ static int __init rbtx4938_ne_init(void) | |||
1057 | return IS_ERR(dev) ? PTR_ERR(dev) : 0; | 996 | return IS_ERR(dev) ? PTR_ERR(dev) : 0; |
1058 | } | 997 | } |
1059 | device_initcall(rbtx4938_ne_init); | 998 | device_initcall(rbtx4938_ne_init); |
999 | |||
1000 | /* GPIO support */ | ||
1001 | |||
1002 | static DEFINE_SPINLOCK(rbtx4938_spi_gpio_lock); | ||
1003 | |||
1004 | static void rbtx4938_spi_gpio_set(unsigned gpio, int value) | ||
1005 | { | ||
1006 | u8 val; | ||
1007 | unsigned long flags; | ||
1008 | gpio -= 16; | ||
1009 | spin_lock_irqsave(&rbtx4938_spi_gpio_lock, flags); | ||
1010 | val = *rbtx4938_spics_ptr; | ||
1011 | if (value) | ||
1012 | val |= 1 << gpio; | ||
1013 | else | ||
1014 | val &= ~(1 << gpio); | ||
1015 | *rbtx4938_spics_ptr = val; | ||
1016 | mmiowb(); | ||
1017 | spin_unlock_irqrestore(&rbtx4938_spi_gpio_lock, flags); | ||
1018 | } | ||
1019 | |||
1020 | static int rbtx4938_spi_gpio_dir_out(unsigned gpio, int value) | ||
1021 | { | ||
1022 | rbtx4938_spi_gpio_set(gpio, value); | ||
1023 | return 0; | ||
1024 | } | ||
1025 | |||
1026 | static DEFINE_SPINLOCK(tx4938_gpio_lock); | ||
1027 | |||
1028 | static int tx4938_gpio_get(unsigned gpio) | ||
1029 | { | ||
1030 | return tx4938_pioptr->din & (1 << gpio); | ||
1031 | } | ||
1032 | |||
1033 | static void tx4938_gpio_set_raw(unsigned gpio, int value) | ||
1034 | { | ||
1035 | u32 val; | ||
1036 | val = tx4938_pioptr->dout; | ||
1037 | if (value) | ||
1038 | val |= 1 << gpio; | ||
1039 | else | ||
1040 | val &= ~(1 << gpio); | ||
1041 | tx4938_pioptr->dout = val; | ||
1042 | } | ||
1043 | |||
1044 | static void tx4938_gpio_set(unsigned gpio, int value) | ||
1045 | { | ||
1046 | unsigned long flags; | ||
1047 | spin_lock_irqsave(&tx4938_gpio_lock, flags); | ||
1048 | tx4938_gpio_set_raw(gpio, value); | ||
1049 | mmiowb(); | ||
1050 | spin_unlock_irqrestore(&tx4938_gpio_lock, flags); | ||
1051 | } | ||
1052 | |||
1053 | static int tx4938_gpio_dir_in(unsigned gpio) | ||
1054 | { | ||
1055 | spin_lock_irq(&tx4938_gpio_lock); | ||
1056 | tx4938_pioptr->dir &= ~(1 << gpio); | ||
1057 | mmiowb(); | ||
1058 | spin_unlock_irq(&tx4938_gpio_lock); | ||
1059 | return 0; | ||
1060 | } | ||
1061 | |||
1062 | static int tx4938_gpio_dir_out(unsigned int gpio, int value) | ||
1063 | { | ||
1064 | spin_lock_irq(&tx4938_gpio_lock); | ||
1065 | tx4938_gpio_set_raw(gpio, value); | ||
1066 | tx4938_pioptr->dir |= 1 << gpio; | ||
1067 | mmiowb(); | ||
1068 | spin_unlock_irq(&tx4938_gpio_lock); | ||
1069 | return 0; | ||
1070 | } | ||
1071 | |||
1072 | int gpio_direction_input(unsigned gpio) | ||
1073 | { | ||
1074 | if (gpio < 16) | ||
1075 | return tx4938_gpio_dir_in(gpio); | ||
1076 | return -EINVAL; | ||
1077 | } | ||
1078 | |||
1079 | int gpio_direction_output(unsigned gpio, int value) | ||
1080 | { | ||
1081 | if (gpio < 16) | ||
1082 | return tx4938_gpio_dir_out(gpio, value); | ||
1083 | if (gpio < 16 + 3) | ||
1084 | return rbtx4938_spi_gpio_dir_out(gpio, value); | ||
1085 | return -EINVAL; | ||
1086 | } | ||
1087 | |||
1088 | int gpio_get_value(unsigned gpio) | ||
1089 | { | ||
1090 | if (gpio < 16) | ||
1091 | return tx4938_gpio_get(gpio); | ||
1092 | return 0; | ||
1093 | } | ||
1094 | |||
1095 | void gpio_set_value(unsigned gpio, int value) | ||
1096 | { | ||
1097 | if (gpio < 16) | ||
1098 | tx4938_gpio_set(gpio, value); | ||
1099 | else | ||
1100 | rbtx4938_spi_gpio_set(gpio, value); | ||
1101 | } | ||
1102 | |||
1103 | /* SPI support */ | ||
1104 | |||
1105 | static void __init txx9_spi_init(unsigned long base, int irq) | ||
1106 | { | ||
1107 | struct resource res[] = { | ||
1108 | { | ||
1109 | .start = base, | ||
1110 | .end = base + 0x20 - 1, | ||
1111 | .flags = IORESOURCE_MEM, | ||
1112 | .parent = &tx4938_reg_resource, | ||
1113 | }, { | ||
1114 | .start = irq, | ||
1115 | .flags = IORESOURCE_IRQ, | ||
1116 | }, | ||
1117 | }; | ||
1118 | platform_device_register_simple("txx9spi", 0, | ||
1119 | res, ARRAY_SIZE(res)); | ||
1120 | } | ||
1121 | |||
1122 | static int __init rbtx4938_spi_init(void) | ||
1123 | { | ||
1124 | struct spi_board_info srtc_info = { | ||
1125 | .modalias = "rs5c348", | ||
1126 | .max_speed_hz = 1000000, /* 1.0Mbps @ Vdd 2.0V */ | ||
1127 | .bus_num = 0, | ||
1128 | .chip_select = 16 + SRTC_CS, | ||
1129 | /* Mode 1 (High-Active, Shift-Then-Sample), High Avtive CS */ | ||
1130 | .mode = SPI_MODE_1 | SPI_CS_HIGH, | ||
1131 | }; | ||
1132 | spi_register_board_info(&srtc_info, 1); | ||
1133 | spi_eeprom_register(SEEPROM1_CS); | ||
1134 | spi_eeprom_register(16 + SEEPROM2_CS); | ||
1135 | spi_eeprom_register(16 + SEEPROM3_CS); | ||
1136 | txx9_spi_init(TX4938_SPI_REG & 0xfffffffffULL, RBTX4938_IRQ_IRC_SPI); | ||
1137 | return 0; | ||
1138 | } | ||
1139 | arch_initcall(rbtx4938_spi_init); | ||
1140 | |||
1141 | /* Minimum CLK support */ | ||
1142 | |||
1143 | struct clk *clk_get(struct device *dev, const char *id) | ||
1144 | { | ||
1145 | if (!strcmp(id, "spi-baseclk")) | ||
1146 | return (struct clk *)(txx9_gbus_clock / 2 / 4); | ||
1147 | return ERR_PTR(-ENOENT); | ||
1148 | } | ||
1149 | EXPORT_SYMBOL(clk_get); | ||
1150 | |||
1151 | int clk_enable(struct clk *clk) | ||
1152 | { | ||
1153 | return 0; | ||
1154 | } | ||
1155 | EXPORT_SYMBOL(clk_enable); | ||
1156 | |||
1157 | void clk_disable(struct clk *clk) | ||
1158 | { | ||
1159 | } | ||
1160 | EXPORT_SYMBOL(clk_disable); | ||
1161 | |||
1162 | unsigned long clk_get_rate(struct clk *clk) | ||
1163 | { | ||
1164 | return (unsigned long)clk; | ||
1165 | } | ||
1166 | EXPORT_SYMBOL(clk_get_rate); | ||
1167 | |||
1168 | void clk_put(struct clk *clk) | ||
1169 | { | ||
1170 | } | ||
1171 | EXPORT_SYMBOL(clk_put); | ||
diff --git a/arch/mips/tx4938/toshiba_rbtx4938/spi_eeprom.c b/arch/mips/tx4938/toshiba_rbtx4938/spi_eeprom.c index 89596e62f909..4d6b4ade5e8c 100644 --- a/arch/mips/tx4938/toshiba_rbtx4938/spi_eeprom.c +++ b/arch/mips/tx4938/toshiba_rbtx4938/spi_eeprom.c | |||
@@ -10,209 +10,90 @@ | |||
10 | * Support for TX4938 in 2.6 - Manish Lachwani (mlachwani@mvista.com) | 10 | * Support for TX4938 in 2.6 - Manish Lachwani (mlachwani@mvista.com) |
11 | */ | 11 | */ |
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/delay.h> | 13 | #include <linux/device.h> |
14 | #include <linux/proc_fs.h> | 14 | #include <linux/spi/spi.h> |
15 | #include <linux/spinlock.h> | 15 | #include <linux/spi/eeprom.h> |
16 | #include <asm/tx4938/spi.h> | 16 | #include <asm/tx4938/spi.h> |
17 | #include <asm/tx4938/tx4938.h> | ||
18 | 17 | ||
19 | /* ATMEL 250x0 instructions */ | 18 | #define AT250X0_PAGE_SIZE 8 |
20 | #define ATMEL_WREN 0x06 | ||
21 | #define ATMEL_WRDI 0x04 | ||
22 | #define ATMEL_RDSR 0x05 | ||
23 | #define ATMEL_WRSR 0x01 | ||
24 | #define ATMEL_READ 0x03 | ||
25 | #define ATMEL_WRITE 0x02 | ||
26 | 19 | ||
27 | #define ATMEL_SR_BSY 0x01 | 20 | /* register board information for at25 driver */ |
28 | #define ATMEL_SR_WEN 0x02 | 21 | int __init spi_eeprom_register(int chipid) |
29 | #define ATMEL_SR_BP0 0x04 | ||
30 | #define ATMEL_SR_BP1 0x08 | ||
31 | |||
32 | DEFINE_SPINLOCK(spi_eeprom_lock); | ||
33 | |||
34 | static struct spi_dev_desc seeprom_dev_desc = { | ||
35 | .baud = 1500000, /* 1.5Mbps */ | ||
36 | .tcss = 1, | ||
37 | .tcsh = 1, | ||
38 | .tcsr = 1, | ||
39 | .byteorder = 1, /* MSB-First */ | ||
40 | .polarity = 0, /* High-Active */ | ||
41 | .phase = 0, /* Sample-Then-Shift */ | ||
42 | |||
43 | }; | ||
44 | static inline int | ||
45 | spi_eeprom_io(int chipid, | ||
46 | unsigned char **inbufs, unsigned int *incounts, | ||
47 | unsigned char **outbufs, unsigned int *outcounts) | ||
48 | { | ||
49 | return txx9_spi_io(chipid, &seeprom_dev_desc, | ||
50 | inbufs, incounts, outbufs, outcounts, 0); | ||
51 | } | ||
52 | |||
53 | int spi_eeprom_write_enable(int chipid, int enable) | ||
54 | { | 22 | { |
55 | unsigned char inbuf[1]; | 23 | static struct spi_eeprom eeprom = { |
56 | unsigned char *inbufs[1]; | 24 | .name = "at250x0", |
57 | unsigned int incounts[2]; | 25 | .byte_len = 128, |
58 | unsigned long flags; | 26 | .page_size = AT250X0_PAGE_SIZE, |
59 | int stat; | 27 | .flags = EE_ADDR1, |
60 | inbuf[0] = enable ? ATMEL_WREN : ATMEL_WRDI; | 28 | }; |
61 | inbufs[0] = inbuf; | 29 | struct spi_board_info info = { |
62 | incounts[0] = sizeof(inbuf); | 30 | .modalias = "at25", |
63 | incounts[1] = 0; | 31 | .max_speed_hz = 1500000, /* 1.5Mbps */ |
64 | spin_lock_irqsave(&spi_eeprom_lock, flags); | 32 | .bus_num = 0, |
65 | stat = spi_eeprom_io(chipid, inbufs, incounts, NULL, NULL); | 33 | .chip_select = chipid, |
66 | spin_unlock_irqrestore(&spi_eeprom_lock, flags); | 34 | .platform_data = &eeprom, |
67 | return stat; | 35 | /* Mode 0: High-Active, Sample-Then-Shift */ |
68 | } | 36 | }; |
69 | 37 | ||
70 | static int spi_eeprom_read_status_nolock(int chipid) | 38 | return spi_register_board_info(&info, 1); |
71 | { | ||
72 | unsigned char inbuf[2], outbuf[2]; | ||
73 | unsigned char *inbufs[1], *outbufs[1]; | ||
74 | unsigned int incounts[2], outcounts[2]; | ||
75 | int stat; | ||
76 | inbuf[0] = ATMEL_RDSR; | ||
77 | inbuf[1] = 0; | ||
78 | inbufs[0] = inbuf; | ||
79 | incounts[0] = sizeof(inbuf); | ||
80 | incounts[1] = 0; | ||
81 | outbufs[0] = outbuf; | ||
82 | outcounts[0] = sizeof(outbuf); | ||
83 | outcounts[1] = 0; | ||
84 | stat = spi_eeprom_io(chipid, inbufs, incounts, outbufs, outcounts); | ||
85 | if (stat < 0) | ||
86 | return stat; | ||
87 | return outbuf[1]; | ||
88 | } | 39 | } |
89 | 40 | ||
90 | int spi_eeprom_read_status(int chipid) | 41 | /* simple temporary spi driver to provide early access to seeprom. */ |
91 | { | ||
92 | unsigned long flags; | ||
93 | int stat; | ||
94 | spin_lock_irqsave(&spi_eeprom_lock, flags); | ||
95 | stat = spi_eeprom_read_status_nolock(chipid); | ||
96 | spin_unlock_irqrestore(&spi_eeprom_lock, flags); | ||
97 | return stat; | ||
98 | } | ||
99 | 42 | ||
100 | int spi_eeprom_read(int chipid, int address, unsigned char *buf, int len) | 43 | static struct read_param { |
101 | { | 44 | int chipid; |
102 | unsigned char inbuf[2]; | 45 | int address; |
103 | unsigned char *inbufs[2], *outbufs[2]; | 46 | unsigned char *buf; |
104 | unsigned int incounts[2], outcounts[3]; | 47 | int len; |
105 | unsigned long flags; | 48 | } *read_param; |
106 | int stat; | ||
107 | inbuf[0] = ATMEL_READ; | ||
108 | inbuf[1] = address; | ||
109 | inbufs[0] = inbuf; | ||
110 | inbufs[1] = NULL; | ||
111 | incounts[0] = sizeof(inbuf); | ||
112 | incounts[1] = 0; | ||
113 | outbufs[0] = NULL; | ||
114 | outbufs[1] = buf; | ||
115 | outcounts[0] = 2; | ||
116 | outcounts[1] = len; | ||
117 | outcounts[2] = 0; | ||
118 | spin_lock_irqsave(&spi_eeprom_lock, flags); | ||
119 | stat = spi_eeprom_io(chipid, inbufs, incounts, outbufs, outcounts); | ||
120 | spin_unlock_irqrestore(&spi_eeprom_lock, flags); | ||
121 | return stat; | ||
122 | } | ||
123 | 49 | ||
124 | int spi_eeprom_write(int chipid, int address, unsigned char *buf, int len) | 50 | static int __init early_seeprom_probe(struct spi_device *spi) |
125 | { | 51 | { |
126 | unsigned char inbuf[2]; | 52 | int stat = 0; |
127 | unsigned char *inbufs[2]; | 53 | u8 cmd[2]; |
128 | unsigned int incounts[3]; | 54 | int len = read_param->len; |
129 | unsigned long flags; | 55 | char *buf = read_param->buf; |
130 | int i, stat; | 56 | int address = read_param->address; |
131 | 57 | ||
132 | if (address / 8 != (address + len - 1) / 8) | 58 | dev_info(&spi->dev, "spiclk %u KHz.\n", |
133 | return -EINVAL; | 59 | (spi->max_speed_hz + 500) / 1000); |
134 | stat = spi_eeprom_write_enable(chipid, 1); | 60 | if (read_param->chipid != spi->chip_select) |
135 | if (stat < 0) | 61 | return -ENODEV; |
136 | return stat; | 62 | while (len > 0) { |
137 | stat = spi_eeprom_read_status(chipid); | 63 | /* spi_write_then_read can only work with small chunk */ |
138 | if (stat < 0) | 64 | int c = len < AT250X0_PAGE_SIZE ? len : AT250X0_PAGE_SIZE; |
139 | return stat; | 65 | cmd[0] = 0x03; /* AT25_READ */ |
140 | if (!(stat & ATMEL_SR_WEN)) | 66 | cmd[1] = address; |
141 | return -EPERM; | 67 | stat = spi_write_then_read(spi, cmd, sizeof(cmd), buf, c); |
142 | 68 | buf += c; | |
143 | inbuf[0] = ATMEL_WRITE; | 69 | len -= c; |
144 | inbuf[1] = address; | 70 | address += c; |
145 | inbufs[0] = inbuf; | ||
146 | inbufs[1] = buf; | ||
147 | incounts[0] = sizeof(inbuf); | ||
148 | incounts[1] = len; | ||
149 | incounts[2] = 0; | ||
150 | spin_lock_irqsave(&spi_eeprom_lock, flags); | ||
151 | stat = spi_eeprom_io(chipid, inbufs, incounts, NULL, NULL); | ||
152 | if (stat < 0) | ||
153 | goto unlock_return; | ||
154 | |||
155 | /* write start. max 10ms */ | ||
156 | for (i = 10; i > 0; i--) { | ||
157 | int stat = spi_eeprom_read_status_nolock(chipid); | ||
158 | if (stat < 0) | ||
159 | goto unlock_return; | ||
160 | if (!(stat & ATMEL_SR_BSY)) | ||
161 | break; | ||
162 | mdelay(1); | ||
163 | } | 71 | } |
164 | spin_unlock_irqrestore(&spi_eeprom_lock, flags); | ||
165 | if (i == 0) | ||
166 | return -EIO; | ||
167 | return len; | ||
168 | unlock_return: | ||
169 | spin_unlock_irqrestore(&spi_eeprom_lock, flags); | ||
170 | return stat; | 72 | return stat; |
171 | } | 73 | } |
172 | 74 | ||
173 | #ifdef CONFIG_PROC_FS | 75 | static struct spi_driver early_seeprom_driver __initdata = { |
174 | #define MAX_SIZE 0x80 /* for ATMEL 25010 */ | 76 | .driver = { |
175 | static int spi_eeprom_read_proc(char *page, char **start, off_t off, | 77 | .name = "at25", |
176 | int count, int *eof, void *data) | 78 | .owner = THIS_MODULE, |
177 | { | 79 | }, |
178 | unsigned int size = MAX_SIZE; | 80 | .probe = early_seeprom_probe, |
179 | if (spi_eeprom_read((int)data, 0, (unsigned char *)page, size) < 0) | 81 | }; |
180 | size = 0; | ||
181 | return size; | ||
182 | } | ||
183 | |||
184 | static int spi_eeprom_write_proc(struct file *file, const char *buffer, | ||
185 | unsigned long count, void *data) | ||
186 | { | ||
187 | unsigned int size = MAX_SIZE; | ||
188 | int i; | ||
189 | if (file->f_pos >= size) | ||
190 | return -EIO; | ||
191 | if (file->f_pos + count > size) | ||
192 | count = size - file->f_pos; | ||
193 | for (i = 0; i < count; i += 8) { | ||
194 | int len = count - i < 8 ? count - i : 8; | ||
195 | if (spi_eeprom_write((int)data, file->f_pos, | ||
196 | (unsigned char *)buffer, len) < 0) { | ||
197 | count = -EIO; | ||
198 | break; | ||
199 | } | ||
200 | buffer += len; | ||
201 | file->f_pos += len; | ||
202 | } | ||
203 | return count; | ||
204 | } | ||
205 | 82 | ||
206 | __init void spi_eeprom_proc_create(struct proc_dir_entry *dir, int chipid) | 83 | int __init spi_eeprom_read(int chipid, int address, |
84 | unsigned char *buf, int len) | ||
207 | { | 85 | { |
208 | struct proc_dir_entry *entry; | 86 | int ret; |
209 | char name[128]; | 87 | struct read_param param = { |
210 | sprintf(name, "seeprom-%d", chipid); | 88 | .chipid = chipid, |
211 | entry = create_proc_entry(name, 0600, dir); | 89 | .address = address, |
212 | if (entry) { | 90 | .buf = buf, |
213 | entry->read_proc = spi_eeprom_read_proc; | 91 | .len = len |
214 | entry->write_proc = spi_eeprom_write_proc; | 92 | }; |
215 | entry->data = (void *)chipid; | 93 | |
216 | } | 94 | read_param = ¶m; |
95 | ret = spi_register_driver(&early_seeprom_driver); | ||
96 | if (!ret) | ||
97 | spi_unregister_driver(&early_seeprom_driver); | ||
98 | return ret; | ||
217 | } | 99 | } |
218 | #endif /* CONFIG_PROC_FS */ | ||
diff --git a/arch/mips/tx4938/toshiba_rbtx4938/spi_txx9.c b/arch/mips/tx4938/toshiba_rbtx4938/spi_txx9.c deleted file mode 100644 index 08b20cdfd7b3..000000000000 --- a/arch/mips/tx4938/toshiba_rbtx4938/spi_txx9.c +++ /dev/null | |||
@@ -1,164 +0,0 @@ | |||
1 | /* | ||
2 | * linux/arch/mips/tx4938/toshiba_rbtx4938/spi_txx9.c | ||
3 | * Copyright (C) 2000-2001 Toshiba Corporation | ||
4 | * | ||
5 | * 2003-2005 (c) MontaVista Software, Inc. This file is licensed under the | ||
6 | * terms of the GNU General Public License version 2. This program is | ||
7 | * licensed "as is" without any warranty of any kind, whether express | ||
8 | * or implied. | ||
9 | * | ||
10 | * Support for TX4938 in 2.6 - Manish Lachwani (mlachwani@mvista.com) | ||
11 | */ | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/delay.h> | ||
14 | #include <linux/errno.h> | ||
15 | #include <linux/interrupt.h> | ||
16 | #include <linux/module.h> | ||
17 | #include <linux/sched.h> | ||
18 | #include <linux/spinlock.h> | ||
19 | #include <linux/wait.h> | ||
20 | #include <asm/tx4938/spi.h> | ||
21 | #include <asm/tx4938/tx4938.h> | ||
22 | |||
23 | static int (*txx9_spi_cs_func)(int chipid, int on); | ||
24 | static DEFINE_SPINLOCK(txx9_spi_lock); | ||
25 | |||
26 | extern unsigned int txx9_gbus_clock; | ||
27 | |||
28 | #define SPI_FIFO_SIZE 4 | ||
29 | |||
30 | void __init txx9_spi_init(unsigned long base, int (*cs_func)(int chipid, int on)) | ||
31 | { | ||
32 | txx9_spi_cs_func = cs_func; | ||
33 | /* enter config mode */ | ||
34 | tx4938_spiptr->mcr = TXx9_SPMCR_CONFIG | TXx9_SPMCR_BCLR; | ||
35 | } | ||
36 | |||
37 | static DECLARE_WAIT_QUEUE_HEAD(txx9_spi_wait); | ||
38 | |||
39 | static irqreturn_t txx9_spi_interrupt(int irq, void *dev_id) | ||
40 | { | ||
41 | /* disable rx intr */ | ||
42 | tx4938_spiptr->cr0 &= ~TXx9_SPCR0_RBSIE; | ||
43 | wake_up(&txx9_spi_wait); | ||
44 | |||
45 | return IRQ_HANDLED; | ||
46 | } | ||
47 | |||
48 | static struct irqaction txx9_spi_action = { | ||
49 | .handler = txx9_spi_interrupt, | ||
50 | .name = "spi", | ||
51 | }; | ||
52 | |||
53 | void __init txx9_spi_irqinit(int irc_irq) | ||
54 | { | ||
55 | setup_irq(irc_irq, &txx9_spi_action); | ||
56 | } | ||
57 | |||
58 | int txx9_spi_io(int chipid, struct spi_dev_desc *desc, | ||
59 | unsigned char **inbufs, unsigned int *incounts, | ||
60 | unsigned char **outbufs, unsigned int *outcounts, | ||
61 | int cansleep) | ||
62 | { | ||
63 | unsigned int incount, outcount; | ||
64 | unsigned char *inp, *outp; | ||
65 | int ret; | ||
66 | unsigned long flags; | ||
67 | |||
68 | spin_lock_irqsave(&txx9_spi_lock, flags); | ||
69 | if ((tx4938_spiptr->mcr & TXx9_SPMCR_OPMODE) == TXx9_SPMCR_ACTIVE) { | ||
70 | spin_unlock_irqrestore(&txx9_spi_lock, flags); | ||
71 | return -EBUSY; | ||
72 | } | ||
73 | /* enter config mode */ | ||
74 | tx4938_spiptr->mcr = TXx9_SPMCR_CONFIG | TXx9_SPMCR_BCLR; | ||
75 | tx4938_spiptr->cr0 = | ||
76 | (desc->byteorder ? TXx9_SPCR0_SBOS : 0) | | ||
77 | (desc->polarity ? TXx9_SPCR0_SPOL : 0) | | ||
78 | (desc->phase ? TXx9_SPCR0_SPHA : 0) | | ||
79 | 0x08; | ||
80 | tx4938_spiptr->cr1 = | ||
81 | (((TXX9_IMCLK + desc->baud) / (2 * desc->baud) - 1) << 8) | | ||
82 | 0x08 /* 8 bit only */; | ||
83 | /* enter active mode */ | ||
84 | tx4938_spiptr->mcr = TXx9_SPMCR_ACTIVE; | ||
85 | spin_unlock_irqrestore(&txx9_spi_lock, flags); | ||
86 | |||
87 | /* CS ON */ | ||
88 | if ((ret = txx9_spi_cs_func(chipid, 1)) < 0) { | ||
89 | spin_unlock_irqrestore(&txx9_spi_lock, flags); | ||
90 | return ret; | ||
91 | } | ||
92 | udelay(desc->tcss); | ||
93 | |||
94 | /* do scatter IO */ | ||
95 | inp = inbufs ? *inbufs : NULL; | ||
96 | outp = outbufs ? *outbufs : NULL; | ||
97 | incount = 0; | ||
98 | outcount = 0; | ||
99 | while (1) { | ||
100 | unsigned char data; | ||
101 | unsigned int count; | ||
102 | int i; | ||
103 | if (!incount) { | ||
104 | incount = incounts ? *incounts++ : 0; | ||
105 | inp = (incount && inbufs) ? *inbufs++ : NULL; | ||
106 | } | ||
107 | if (!outcount) { | ||
108 | outcount = outcounts ? *outcounts++ : 0; | ||
109 | outp = (outcount && outbufs) ? *outbufs++ : NULL; | ||
110 | } | ||
111 | if (!inp && !outp) | ||
112 | break; | ||
113 | count = SPI_FIFO_SIZE; | ||
114 | if (incount) | ||
115 | count = min(count, incount); | ||
116 | if (outcount) | ||
117 | count = min(count, outcount); | ||
118 | |||
119 | /* now tx must be idle... */ | ||
120 | while (!(tx4938_spiptr->sr & TXx9_SPSR_SIDLE)) | ||
121 | ; | ||
122 | |||
123 | tx4938_spiptr->cr0 = | ||
124 | (tx4938_spiptr->cr0 & ~TXx9_SPCR0_RXIFL_MASK) | | ||
125 | ((count - 1) << 12); | ||
126 | if (cansleep) { | ||
127 | /* enable rx intr */ | ||
128 | tx4938_spiptr->cr0 |= TXx9_SPCR0_RBSIE; | ||
129 | } | ||
130 | /* send */ | ||
131 | for (i = 0; i < count; i++) | ||
132 | tx4938_spiptr->dr = inp ? *inp++ : 0; | ||
133 | /* wait all rx data */ | ||
134 | if (cansleep) { | ||
135 | wait_event(txx9_spi_wait, | ||
136 | tx4938_spiptr->sr & TXx9_SPSR_SRRDY); | ||
137 | } else { | ||
138 | while (!(tx4938_spiptr->sr & TXx9_SPSR_RBSI)) | ||
139 | ; | ||
140 | } | ||
141 | /* receive */ | ||
142 | for (i = 0; i < count; i++) { | ||
143 | data = tx4938_spiptr->dr; | ||
144 | if (outp) | ||
145 | *outp++ = data; | ||
146 | } | ||
147 | if (incount) | ||
148 | incount -= count; | ||
149 | if (outcount) | ||
150 | outcount -= count; | ||
151 | } | ||
152 | |||
153 | /* CS OFF */ | ||
154 | udelay(desc->tcsh); | ||
155 | txx9_spi_cs_func(chipid, 0); | ||
156 | udelay(desc->tcsr); | ||
157 | |||
158 | spin_lock_irqsave(&txx9_spi_lock, flags); | ||
159 | /* enter config mode */ | ||
160 | tx4938_spiptr->mcr = TXx9_SPMCR_CONFIG | TXx9_SPMCR_BCLR; | ||
161 | spin_unlock_irqrestore(&txx9_spi_lock, flags); | ||
162 | |||
163 | return 0; | ||
164 | } | ||
diff --git a/drivers/char/mem.c b/drivers/char/mem.c index d2e4cfd79f27..bbee97ff355f 100644 --- a/drivers/char/mem.c +++ b/drivers/char/mem.c | |||
@@ -75,6 +75,13 @@ static inline int uncached_access(struct file *file, unsigned long addr) | |||
75 | * On ia64, we ignore O_SYNC because we cannot tolerate memory attribute aliases. | 75 | * On ia64, we ignore O_SYNC because we cannot tolerate memory attribute aliases. |
76 | */ | 76 | */ |
77 | return !(efi_mem_attributes(addr) & EFI_MEMORY_WB); | 77 | return !(efi_mem_attributes(addr) & EFI_MEMORY_WB); |
78 | #elif defined(CONFIG_MIPS) | ||
79 | { | ||
80 | extern int __uncached_access(struct file *file, | ||
81 | unsigned long addr); | ||
82 | |||
83 | return __uncached_access(file, addr); | ||
84 | } | ||
78 | #else | 85 | #else |
79 | /* | 86 | /* |
80 | * Accessing memory above the top the kernel knows about or through a file pointer | 87 | * Accessing memory above the top the kernel knows about or through a file pointer |
diff --git a/drivers/mtd/devices/docprobe.c b/drivers/mtd/devices/docprobe.c index 78872c3f3760..b96ac8e119dc 100644 --- a/drivers/mtd/devices/docprobe.c +++ b/drivers/mtd/devices/docprobe.c | |||
@@ -84,7 +84,7 @@ static unsigned long __initdata doc_locations[] = { | |||
84 | #elif defined(CONFIG_MOMENCO_OCELOT) | 84 | #elif defined(CONFIG_MOMENCO_OCELOT) |
85 | 0x2f000000, | 85 | 0x2f000000, |
86 | 0xff000000, | 86 | 0xff000000, |
87 | #elif defined(CONFIG_MOMENCO_OCELOT_G) || defined (CONFIG_MOMENCO_OCELOT_C) | 87 | #elif defined(CONFIG_MOMENCO_OCELOT_G) |
88 | 0xff000000, | 88 | 0xff000000, |
89 | ##else | 89 | ##else |
90 | #warning Unknown architecture for DiskOnChip. No default probe locations defined | 90 | #warning Unknown architecture for DiskOnChip. No default probe locations defined |
diff --git a/drivers/mtd/maps/Kconfig b/drivers/mtd/maps/Kconfig index b665e4ac2208..f88ebc5b685e 100644 --- a/drivers/mtd/maps/Kconfig +++ b/drivers/mtd/maps/Kconfig | |||
@@ -258,12 +258,6 @@ config MTD_TSUNAMI | |||
258 | help | 258 | help |
259 | Support for the flash chip on Tsunami TIG bus. | 259 | Support for the flash chip on Tsunami TIG bus. |
260 | 260 | ||
261 | config MTD_LASAT | ||
262 | tristate "LASAT flash device" | ||
263 | depends on LASAT && MTD_CFI | ||
264 | help | ||
265 | Support for the flash chips on the Lasat 100 and 200 boards. | ||
266 | |||
267 | config MTD_NETtel | 261 | config MTD_NETtel |
268 | tristate "CFI flash device on SnapGear/SecureEdge" | 262 | tristate "CFI flash device on SnapGear/SecureEdge" |
269 | depends on X86 && MTD_PARTITIONS && MTD_JEDECPROBE | 263 | depends on X86 && MTD_PARTITIONS && MTD_JEDECPROBE |
diff --git a/drivers/mtd/maps/Makefile b/drivers/mtd/maps/Makefile index 3acbb5d01ca4..970b189271a2 100644 --- a/drivers/mtd/maps/Makefile +++ b/drivers/mtd/maps/Makefile | |||
@@ -47,7 +47,6 @@ obj-$(CONFIG_MTD_OCELOT) += ocelot.o | |||
47 | obj-$(CONFIG_MTD_SOLUTIONENGINE)+= solutionengine.o | 47 | obj-$(CONFIG_MTD_SOLUTIONENGINE)+= solutionengine.o |
48 | obj-$(CONFIG_MTD_PCI) += pci.o | 48 | obj-$(CONFIG_MTD_PCI) += pci.o |
49 | obj-$(CONFIG_MTD_ALCHEMY) += alchemy-flash.o | 49 | obj-$(CONFIG_MTD_ALCHEMY) += alchemy-flash.o |
50 | obj-$(CONFIG_MTD_LASAT) += lasat.o | ||
51 | obj-$(CONFIG_MTD_AUTCPU12) += autcpu12-nvram.o | 50 | obj-$(CONFIG_MTD_AUTCPU12) += autcpu12-nvram.o |
52 | obj-$(CONFIG_MTD_EDB7312) += edb7312.o | 51 | obj-$(CONFIG_MTD_EDB7312) += edb7312.o |
53 | obj-$(CONFIG_MTD_IMPA7) += impa7.o | 52 | obj-$(CONFIG_MTD_IMPA7) += impa7.o |
diff --git a/drivers/mtd/maps/lasat.c b/drivers/mtd/maps/lasat.c deleted file mode 100644 index e34376321050..000000000000 --- a/drivers/mtd/maps/lasat.c +++ /dev/null | |||
@@ -1,103 +0,0 @@ | |||
1 | /* | ||
2 | * Flash device on Lasat 100 and 200 boards | ||
3 | * | ||
4 | * (C) 2002 Brian Murphy <brian@murphy.dk> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or | ||
7 | * modify it under the terms of the GNU General Public License version | ||
8 | * 2 as published by the Free Software Foundation. | ||
9 | * | ||
10 | * $Id: lasat.c,v 1.9 2004/11/04 13:24:15 gleixner Exp $ | ||
11 | * | ||
12 | */ | ||
13 | |||
14 | #include <linux/module.h> | ||
15 | #include <linux/types.h> | ||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/init.h> | ||
18 | #include <asm/io.h> | ||
19 | #include <linux/mtd/mtd.h> | ||
20 | #include <linux/mtd/map.h> | ||
21 | #include <linux/mtd/partitions.h> | ||
22 | #include <asm/lasat/lasat.h> | ||
23 | |||
24 | static struct mtd_info *lasat_mtd; | ||
25 | |||
26 | static struct mtd_partition partition_info[LASAT_MTD_LAST]; | ||
27 | static char *lasat_mtd_partnames[] = {"Bootloader", "Service", "Normal", "Filesystem", "Config"}; | ||
28 | |||
29 | static void lasat_set_vpp(struct map_info *map, int vpp) | ||
30 | { | ||
31 | if (vpp) | ||
32 | *lasat_misc->flash_wp_reg |= 1 << lasat_misc->flash_wp_bit; | ||
33 | else | ||
34 | *lasat_misc->flash_wp_reg &= ~(1 << lasat_misc->flash_wp_bit); | ||
35 | } | ||
36 | |||
37 | static struct map_info lasat_map = { | ||
38 | .name = "LASAT flash", | ||
39 | .bankwidth = 4, | ||
40 | .set_vpp = lasat_set_vpp | ||
41 | }; | ||
42 | |||
43 | static int __init init_lasat(void) | ||
44 | { | ||
45 | int i; | ||
46 | /* since we use AMD chips and set_vpp is not implimented | ||
47 | * for these (yet) we still have to permanently enable flash write */ | ||
48 | printk(KERN_NOTICE "Unprotecting flash\n"); | ||
49 | ENABLE_VPP((&lasat_map)); | ||
50 | |||
51 | lasat_map.phys = lasat_flash_partition_start(LASAT_MTD_BOOTLOADER); | ||
52 | lasat_map.virt = ioremap_nocache( | ||
53 | lasat_map.phys, lasat_board_info.li_flash_size); | ||
54 | lasat_map.size = lasat_board_info.li_flash_size; | ||
55 | |||
56 | simple_map_init(&lasat_map); | ||
57 | |||
58 | for (i=0; i < LASAT_MTD_LAST; i++) | ||
59 | partition_info[i].name = lasat_mtd_partnames[i]; | ||
60 | |||
61 | lasat_mtd = do_map_probe("cfi_probe", &lasat_map); | ||
62 | |||
63 | if (!lasat_mtd) | ||
64 | lasat_mtd = do_map_probe("jedec_probe", &lasat_map); | ||
65 | |||
66 | if (lasat_mtd) { | ||
67 | u32 size, offset = 0; | ||
68 | |||
69 | lasat_mtd->owner = THIS_MODULE; | ||
70 | |||
71 | for (i=0; i < LASAT_MTD_LAST; i++) { | ||
72 | size = lasat_flash_partition_size(i); | ||
73 | partition_info[i].size = size; | ||
74 | partition_info[i].offset = offset; | ||
75 | offset += size; | ||
76 | } | ||
77 | |||
78 | add_mtd_partitions( lasat_mtd, partition_info, LASAT_MTD_LAST ); | ||
79 | return 0; | ||
80 | } | ||
81 | |||
82 | iounmap(lasat_map.virt); | ||
83 | return -ENXIO; | ||
84 | } | ||
85 | |||
86 | static void __exit cleanup_lasat(void) | ||
87 | { | ||
88 | if (lasat_mtd) { | ||
89 | del_mtd_partitions(lasat_mtd); | ||
90 | map_destroy(lasat_mtd); | ||
91 | } | ||
92 | if (lasat_map.virt) { | ||
93 | iounmap(lasat_map.virt); | ||
94 | lasat_map.virt = 0; | ||
95 | } | ||
96 | } | ||
97 | |||
98 | module_init(init_lasat); | ||
99 | module_exit(cleanup_lasat); | ||
100 | |||
101 | MODULE_LICENSE("GPL"); | ||
102 | MODULE_AUTHOR("Brian Murphy <brian@murphy.dk>"); | ||
103 | MODULE_DESCRIPTION("Lasat Safepipe/Masquerade MTD map driver"); | ||
diff --git a/drivers/mtd/nand/diskonchip.c b/drivers/mtd/nand/diskonchip.c index 595208f965a5..17c868034aad 100644 --- a/drivers/mtd/nand/diskonchip.c +++ b/drivers/mtd/nand/diskonchip.c | |||
@@ -59,7 +59,7 @@ static unsigned long __initdata doc_locations[] = { | |||
59 | #elif defined(CONFIG_MOMENCO_OCELOT) | 59 | #elif defined(CONFIG_MOMENCO_OCELOT) |
60 | 0x2f000000, | 60 | 0x2f000000, |
61 | 0xff000000, | 61 | 0xff000000, |
62 | #elif defined(CONFIG_MOMENCO_OCELOT_G) || defined (CONFIG_MOMENCO_OCELOT_C) | 62 | #elif defined(CONFIG_MOMENCO_OCELOT_G) |
63 | 0xff000000, | 63 | 0xff000000, |
64 | #else | 64 | #else |
65 | #warning Unknown architecture for DiskOnChip. No default probe locations defined | 65 | #warning Unknown architecture for DiskOnChip. No default probe locations defined |
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 5cc3d517e39b..627316db3744 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig | |||
@@ -2307,7 +2307,7 @@ config UGETH_TX_ON_DEMAND | |||
2307 | 2307 | ||
2308 | config MV643XX_ETH | 2308 | config MV643XX_ETH |
2309 | tristate "MV-643XX Ethernet support" | 2309 | tristate "MV-643XX Ethernet support" |
2310 | depends on MOMENCO_OCELOT_C || MOMENCO_JAGUAR_ATX || MV64360 || MV64X60 || MOMENCO_OCELOT_3 || (PPC_MULTIPLATFORM && PPC32) | 2310 | depends on MV64360 || MV64X60 || (PPC_MULTIPLATFORM && PPC32) |
2311 | select MII | 2311 | select MII |
2312 | help | 2312 | help |
2313 | This driver supports the gigabit Ethernet on the Marvell MV643XX | 2313 | This driver supports the gigabit Ethernet on the Marvell MV643XX |
diff --git a/drivers/net/tc35815.c b/drivers/net/tc35815.c index 463d600ed83d..75655add3f34 100644 --- a/drivers/net/tc35815.c +++ b/drivers/net/tc35815.c | |||
@@ -23,9 +23,9 @@ | |||
23 | */ | 23 | */ |
24 | 24 | ||
25 | #ifdef TC35815_NAPI | 25 | #ifdef TC35815_NAPI |
26 | #define DRV_VERSION "1.35-NAPI" | 26 | #define DRV_VERSION "1.36-NAPI" |
27 | #else | 27 | #else |
28 | #define DRV_VERSION "1.35" | 28 | #define DRV_VERSION "1.36" |
29 | #endif | 29 | #endif |
30 | static const char *version = "tc35815.c:v" DRV_VERSION "\n"; | 30 | static const char *version = "tc35815.c:v" DRV_VERSION "\n"; |
31 | #define MODNAME "tc35815" | 31 | #define MODNAME "tc35815" |
@@ -49,6 +49,7 @@ static const char *version = "tc35815.c:v" DRV_VERSION "\n"; | |||
49 | #include <linux/pci.h> | 49 | #include <linux/pci.h> |
50 | #include <linux/mii.h> | 50 | #include <linux/mii.h> |
51 | #include <linux/ethtool.h> | 51 | #include <linux/ethtool.h> |
52 | #include <linux/platform_device.h> | ||
52 | #include <asm/io.h> | 53 | #include <asm/io.h> |
53 | #include <asm/byteorder.h> | 54 | #include <asm/byteorder.h> |
54 | 55 | ||
@@ -597,13 +598,46 @@ static int tc_mdio_read(struct net_device *dev, int phy_id, int location); | |||
597 | static void tc_mdio_write(struct net_device *dev, int phy_id, int location, | 598 | static void tc_mdio_write(struct net_device *dev, int phy_id, int location, |
598 | int val); | 599 | int val); |
599 | 600 | ||
600 | static void __devinit tc35815_init_dev_addr (struct net_device *dev) | 601 | #ifdef CONFIG_CPU_TX49XX |
602 | /* | ||
603 | * Find a platform_device providing a MAC address. The platform code | ||
604 | * should provide a "tc35815-mac" device with a MAC address in its | ||
605 | * platform_data. | ||
606 | */ | ||
607 | static int __devinit tc35815_mac_match(struct device *dev, void *data) | ||
608 | { | ||
609 | struct platform_device *plat_dev = to_platform_device(dev); | ||
610 | struct pci_dev *pci_dev = data; | ||
611 | unsigned int id = (pci_dev->bus->number << 8) | pci_dev->devfn; | ||
612 | return !strcmp(plat_dev->name, "tc35815-mac") && plat_dev->id == id; | ||
613 | } | ||
614 | |||
615 | static int __devinit tc35815_read_plat_dev_addr(struct net_device *dev) | ||
616 | { | ||
617 | struct tc35815_local *lp = dev->priv; | ||
618 | struct device *pd = bus_find_device(&platform_bus_type, NULL, | ||
619 | lp->pci_dev, tc35815_mac_match); | ||
620 | if (pd) { | ||
621 | if (pd->platform_data) | ||
622 | memcpy(dev->dev_addr, pd->platform_data, ETH_ALEN); | ||
623 | put_device(pd); | ||
624 | return is_valid_ether_addr(dev->dev_addr) ? 0 : -ENODEV; | ||
625 | } | ||
626 | return -ENODEV; | ||
627 | } | ||
628 | #else | ||
629 | static int __devinit tc35815_read_plat_dev_addr(struct device *dev) | ||
630 | { | ||
631 | return -ENODEV; | ||
632 | } | ||
633 | #endif | ||
634 | |||
635 | static int __devinit tc35815_init_dev_addr (struct net_device *dev) | ||
601 | { | 636 | { |
602 | struct tc35815_regs __iomem *tr = | 637 | struct tc35815_regs __iomem *tr = |
603 | (struct tc35815_regs __iomem *)dev->base_addr; | 638 | (struct tc35815_regs __iomem *)dev->base_addr; |
604 | int i; | 639 | int i; |
605 | 640 | ||
606 | /* dev_addr will be overwritten on NETDEV_REGISTER event */ | ||
607 | while (tc_readl(&tr->PROM_Ctl) & PROM_Busy) | 641 | while (tc_readl(&tr->PROM_Ctl) & PROM_Busy) |
608 | ; | 642 | ; |
609 | for (i = 0; i < 6; i += 2) { | 643 | for (i = 0; i < 6; i += 2) { |
@@ -615,6 +649,9 @@ static void __devinit tc35815_init_dev_addr (struct net_device *dev) | |||
615 | dev->dev_addr[i] = data & 0xff; | 649 | dev->dev_addr[i] = data & 0xff; |
616 | dev->dev_addr[i+1] = data >> 8; | 650 | dev->dev_addr[i+1] = data >> 8; |
617 | } | 651 | } |
652 | if (!is_valid_ether_addr(dev->dev_addr)) | ||
653 | return tc35815_read_plat_dev_addr(dev); | ||
654 | return 0; | ||
618 | } | 655 | } |
619 | 656 | ||
620 | static int __devinit tc35815_init_one (struct pci_dev *pdev, | 657 | static int __devinit tc35815_init_one (struct pci_dev *pdev, |
@@ -724,7 +761,10 @@ static int __devinit tc35815_init_one (struct pci_dev *pdev, | |||
724 | tc35815_chip_reset(dev); | 761 | tc35815_chip_reset(dev); |
725 | 762 | ||
726 | /* Retrieve the ethernet address. */ | 763 | /* Retrieve the ethernet address. */ |
727 | tc35815_init_dev_addr(dev); | 764 | if (tc35815_init_dev_addr(dev)) { |
765 | dev_warn(&pdev->dev, "not valid ether addr\n"); | ||
766 | random_ether_addr(dev->dev_addr); | ||
767 | } | ||
728 | 768 | ||
729 | rc = register_netdev (dev); | 769 | rc = register_netdev (dev); |
730 | if (rc) | 770 | if (rc) |
diff --git a/drivers/tc/zs.c b/drivers/tc/zs.c index 61de78a9f6ee..4fff61b32dcb 100644 --- a/drivers/tc/zs.c +++ b/drivers/tc/zs.c | |||
@@ -143,7 +143,7 @@ static struct console sercons; | |||
143 | static unsigned long break_pressed; /* break, really ... */ | 143 | static unsigned long break_pressed; /* break, really ... */ |
144 | #endif | 144 | #endif |
145 | 145 | ||
146 | static unsigned char zs_init_regs[16] __initdata = { | 146 | static unsigned char zs_init_regs[16] = { |
147 | 0, /* write 0 */ | 147 | 0, /* write 0 */ |
148 | 0, /* write 1 */ | 148 | 0, /* write 1 */ |
149 | 0, /* write 2 */ | 149 | 0, /* write 2 */ |
@@ -1581,7 +1581,7 @@ static void __init show_serial_version(void) | |||
1581 | /* Initialize Z8530s zs_channels | 1581 | /* Initialize Z8530s zs_channels |
1582 | */ | 1582 | */ |
1583 | 1583 | ||
1584 | static void __init probe_sccs(void) | 1584 | static void probe_sccs(void) |
1585 | { | 1585 | { |
1586 | struct dec_serial **pp; | 1586 | struct dec_serial **pp; |
1587 | int i, n, n_chips = 0, n_channels, chip, channel; | 1587 | int i, n, n_chips = 0, n_channels, chip, channel; |
@@ -1923,7 +1923,7 @@ static struct tty_driver *serial_console_device(struct console *c, int *index) | |||
1923 | * - initialize the serial port | 1923 | * - initialize the serial port |
1924 | * Return non-zero if we didn't find a serial port. | 1924 | * Return non-zero if we didn't find a serial port. |
1925 | */ | 1925 | */ |
1926 | static int __init serial_console_setup(struct console *co, char *options) | 1926 | static int serial_console_setup(struct console *co, char *options) |
1927 | { | 1927 | { |
1928 | struct dec_serial *info; | 1928 | struct dec_serial *info; |
1929 | int baud = 9600; | 1929 | int baud = 9600; |
diff --git a/include/asm-mips/addrspace.h b/include/asm-mips/addrspace.h index 964c5eddc21b..0b3ff9c48409 100644 --- a/include/asm-mips/addrspace.h +++ b/include/asm-mips/addrspace.h | |||
@@ -129,29 +129,12 @@ | |||
129 | #define PHYS_TO_XKPHYS(cm,a) (_CONST64_(0x8000000000000000) | \ | 129 | #define PHYS_TO_XKPHYS(cm,a) (_CONST64_(0x8000000000000000) | \ |
130 | ((cm)<<59) | (a)) | 130 | ((cm)<<59) | (a)) |
131 | 131 | ||
132 | #if defined (CONFIG_CPU_R4300) \ | 132 | /* |
133 | || defined (CONFIG_CPU_R4X00) \ | 133 | * The ultimate limited of the 64-bit MIPS architecture: 2 bits for selecting |
134 | || defined (CONFIG_CPU_R5000) \ | 134 | * the region, 3 bits for the CCA mode. This leaves 59 bits of which the |
135 | || defined (CONFIG_CPU_RM7000) \ | 135 | * R8000 implements most with its 48-bit physical address space. |
136 | || defined (CONFIG_CPU_RM9000) \ | 136 | */ |
137 | || defined (CONFIG_CPU_NEVADA) \ | 137 | #define TO_PHYS_MASK _CONST64_(0x07ffffffffffffff) /* 2^^59 - 1 */ |
138 | || defined (CONFIG_CPU_TX49XX) \ | ||
139 | || defined (CONFIG_CPU_MIPS64) | ||
140 | #define TO_PHYS_MASK _CONST64_(0x0000000fffffffff) /* 2^^36 - 1 */ | ||
141 | #endif | ||
142 | |||
143 | #if defined (CONFIG_CPU_R8000) | ||
144 | /* We keep KUSIZE consistent with R4000 for now (2^^40) instead of (2^^48) */ | ||
145 | #define TO_PHYS_MASK _CONST64_(0x000000ffffffffff) /* 2^^40 - 1 */ | ||
146 | #endif | ||
147 | |||
148 | #if defined (CONFIG_CPU_R10000) | ||
149 | #define TO_PHYS_MASK _CONST64_(0x000000ffffffffff) /* 2^^40 - 1 */ | ||
150 | #endif | ||
151 | |||
152 | #if defined(CONFIG_CPU_SB1) || defined(CONFIG_CPU_SB1A) | ||
153 | #define TO_PHYS_MASK _CONST64_(0x00000fffffffffff) /* 2^^44 - 1 */ | ||
154 | #endif | ||
155 | 138 | ||
156 | #ifndef CONFIG_CPU_R8000 | 139 | #ifndef CONFIG_CPU_R8000 |
157 | 140 | ||
diff --git a/include/asm-mips/bootinfo.h b/include/asm-mips/bootinfo.h index b0c329783ac5..087126a5faf9 100644 --- a/include/asm-mips/bootinfo.h +++ b/include/asm-mips/bootinfo.h | |||
@@ -109,18 +109,12 @@ | |||
109 | #define MACH_COSINE_ORION 0 | 109 | #define MACH_COSINE_ORION 0 |
110 | 110 | ||
111 | /* | 111 | /* |
112 | * Valid machtype for group GALILEO | ||
113 | */ | ||
114 | #define MACH_GROUP_GALILEO 11 /* Galileo Eval Boards */ | ||
115 | #define MACH_EV64120A 0 /* EV64120A */ | ||
116 | |||
117 | /* | ||
118 | * Valid machtype for group MOMENCO | 112 | * Valid machtype for group MOMENCO |
119 | */ | 113 | */ |
120 | #define MACH_GROUP_MOMENCO 12 /* Momentum Boards */ | 114 | #define MACH_GROUP_MOMENCO 12 /* Momentum Boards */ |
121 | #define MACH_MOMENCO_OCELOT 0 | 115 | #define MACH_MOMENCO_OCELOT 0 |
122 | #define MACH_MOMENCO_OCELOT_G 1 /* no more supported (may 2007) */ | 116 | #define MACH_MOMENCO_OCELOT_G 1 /* no more supported (may 2007) */ |
123 | #define MACH_MOMENCO_OCELOT_C 2 | 117 | #define MACH_MOMENCO_OCELOT_C 2 /* no more supported (jun 2007) */ |
124 | #define MACH_MOMENCO_JAGUAR_ATX 3 /* no more supported (may 2007) */ | 118 | #define MACH_MOMENCO_JAGUAR_ATX 3 /* no more supported (may 2007) */ |
125 | #define MACH_MOMENCO_OCELOT_3 4 | 119 | #define MACH_MOMENCO_OCELOT_3 4 |
126 | 120 | ||
@@ -194,13 +188,6 @@ | |||
194 | #define MACH_HP_LASERJET 1 | 188 | #define MACH_HP_LASERJET 1 |
195 | 189 | ||
196 | /* | 190 | /* |
197 | * Valid machtype for group LASAT | ||
198 | */ | ||
199 | #define MACH_GROUP_LASAT 21 | ||
200 | #define MACH_LASAT_100 0 /* Masquerade II/SP100/SP50/SP25 */ | ||
201 | #define MACH_LASAT_200 1 /* Masquerade PRO/SP200 */ | ||
202 | |||
203 | /* | ||
204 | * Valid machtype for group TITAN | 191 | * Valid machtype for group TITAN |
205 | */ | 192 | */ |
206 | #define MACH_GROUP_TITAN 22 /* PMC-Sierra Titan */ | 193 | #define MACH_GROUP_TITAN 22 /* PMC-Sierra Titan */ |
@@ -213,6 +200,27 @@ | |||
213 | #define MACH_GROUP_NEC_EMMA2RH 25 /* NEC EMMA2RH (was 23) */ | 200 | #define MACH_GROUP_NEC_EMMA2RH 25 /* NEC EMMA2RH (was 23) */ |
214 | #define MACH_NEC_MARKEINS 0 /* NEC EMMA2RH Mark-eins */ | 201 | #define MACH_NEC_MARKEINS 0 /* NEC EMMA2RH Mark-eins */ |
215 | 202 | ||
203 | /* | ||
204 | * Valid machtype for group LEMOTE | ||
205 | */ | ||
206 | #define MACH_GROUP_LEMOTE 27 | ||
207 | #define MACH_LEMOTE_FULONG 0 | ||
208 | |||
209 | /* | ||
210 | * Valid machtype for group PMC-MSP | ||
211 | */ | ||
212 | #define MACH_GROUP_MSP 26 /* PMC-Sierra MSP boards/CPUs */ | ||
213 | #define MACH_MSP4200_EVAL 0 /* PMC-Sierra MSP4200 Evaluation */ | ||
214 | #define MACH_MSP4200_GW 1 /* PMC-Sierra MSP4200 Gateway demo */ | ||
215 | #define MACH_MSP4200_FPGA 2 /* PMC-Sierra MSP4200 Emulation */ | ||
216 | #define MACH_MSP7120_EVAL 3 /* PMC-Sierra MSP7120 Evaluation */ | ||
217 | #define MACH_MSP7120_GW 4 /* PMC-Sierra MSP7120 Residential GW */ | ||
218 | #define MACH_MSP7120_FPGA 5 /* PMC-Sierra MSP7120 Emulation */ | ||
219 | #define MACH_MSP_OTHER 255 /* PMC-Sierra unknown board type */ | ||
220 | |||
221 | #define MACH_GROUP_WINDRIVER 28 /* Windriver boards */ | ||
222 | #define MACH_WRPPMC 1 | ||
223 | |||
216 | #define CL_SIZE COMMAND_LINE_SIZE | 224 | #define CL_SIZE COMMAND_LINE_SIZE |
217 | 225 | ||
218 | const char *get_system_type(void); | 226 | const char *get_system_type(void); |
diff --git a/include/asm-mips/cacheops.h b/include/asm-mips/cacheops.h index c4a1ec31ff6a..df7f2deb3b56 100644 --- a/include/asm-mips/cacheops.h +++ b/include/asm-mips/cacheops.h | |||
@@ -20,7 +20,11 @@ | |||
20 | #define Index_Load_Tag_D 0x05 | 20 | #define Index_Load_Tag_D 0x05 |
21 | #define Index_Store_Tag_I 0x08 | 21 | #define Index_Store_Tag_I 0x08 |
22 | #define Index_Store_Tag_D 0x09 | 22 | #define Index_Store_Tag_D 0x09 |
23 | #if defined(CONFIG_CPU_LOONGSON2) | ||
24 | #define Hit_Invalidate_I 0x00 | ||
25 | #else | ||
23 | #define Hit_Invalidate_I 0x10 | 26 | #define Hit_Invalidate_I 0x10 |
27 | #endif | ||
24 | #define Hit_Invalidate_D 0x11 | 28 | #define Hit_Invalidate_D 0x11 |
25 | #define Hit_Writeback_Inv_D 0x15 | 29 | #define Hit_Writeback_Inv_D 0x15 |
26 | 30 | ||
diff --git a/include/asm-mips/cpu-features.h b/include/asm-mips/cpu-features.h index 5e4bed123b48..d95a83e3e1d7 100644 --- a/include/asm-mips/cpu-features.h +++ b/include/asm-mips/cpu-features.h | |||
@@ -150,6 +150,10 @@ | |||
150 | #define cpu_has_mipsmt (cpu_data[0].ases & MIPS_ASE_MIPSMT) | 150 | #define cpu_has_mipsmt (cpu_data[0].ases & MIPS_ASE_MIPSMT) |
151 | #endif | 151 | #endif |
152 | 152 | ||
153 | #ifndef cpu_has_userlocal | ||
154 | #define cpu_has_userlocal (cpu_data[0].options & MIPS_CPU_ULRI) | ||
155 | #endif | ||
156 | |||
153 | #ifdef CONFIG_32BIT | 157 | #ifdef CONFIG_32BIT |
154 | # ifndef cpu_has_nofpuex | 158 | # ifndef cpu_has_nofpuex |
155 | # define cpu_has_nofpuex (cpu_data[0].options & MIPS_CPU_NOFPUEX) | 159 | # define cpu_has_nofpuex (cpu_data[0].options & MIPS_CPU_NOFPUEX) |
diff --git a/include/asm-mips/cpu.h b/include/asm-mips/cpu.h index 2924069075e0..3857358fb6de 100644 --- a/include/asm-mips/cpu.h +++ b/include/asm-mips/cpu.h | |||
@@ -89,6 +89,8 @@ | |||
89 | #define PRID_IMP_34K 0x9500 | 89 | #define PRID_IMP_34K 0x9500 |
90 | #define PRID_IMP_24KE 0x9600 | 90 | #define PRID_IMP_24KE 0x9600 |
91 | #define PRID_IMP_74K 0x9700 | 91 | #define PRID_IMP_74K 0x9700 |
92 | #define PRID_IMP_LOONGSON1 0x4200 | ||
93 | #define PRID_IMP_LOONGSON2 0x6300 | ||
92 | 94 | ||
93 | /* | 95 | /* |
94 | * These are the PRID's for when 23:16 == PRID_COMP_SIBYTE | 96 | * These are the PRID's for when 23:16 == PRID_COMP_SIBYTE |
@@ -107,6 +109,7 @@ | |||
107 | * Definitions for 7:0 on legacy processors | 109 | * Definitions for 7:0 on legacy processors |
108 | */ | 110 | */ |
109 | 111 | ||
112 | #define PRID_REV_MASK 0x00ff | ||
110 | 113 | ||
111 | #define PRID_REV_TX4927 0x0022 | 114 | #define PRID_REV_TX4927 0x0022 |
112 | #define PRID_REV_TX4937 0x0030 | 115 | #define PRID_REV_TX4937 0x0030 |
@@ -123,6 +126,7 @@ | |||
123 | #define PRID_REV_VR4122 0x0070 | 126 | #define PRID_REV_VR4122 0x0070 |
124 | #define PRID_REV_VR4181A 0x0070 /* Same as VR4122 */ | 127 | #define PRID_REV_VR4181A 0x0070 /* Same as VR4122 */ |
125 | #define PRID_REV_VR4130 0x0080 | 128 | #define PRID_REV_VR4130 0x0080 |
129 | #define PRID_REV_34K_V1_0_2 0x0022 | ||
126 | 130 | ||
127 | /* | 131 | /* |
128 | * Older processors used to encode processor version and revision in two | 132 | * Older processors used to encode processor version and revision in two |
@@ -211,7 +215,10 @@ | |||
211 | #define CPU_SB1A 62 | 215 | #define CPU_SB1A 62 |
212 | #define CPU_74K 63 | 216 | #define CPU_74K 63 |
213 | #define CPU_R14000 64 | 217 | #define CPU_R14000 64 |
214 | #define CPU_LAST 64 | 218 | #define CPU_LOONGSON1 65 |
219 | #define CPU_LOONGSON2 66 | ||
220 | |||
221 | #define CPU_LAST 66 | ||
215 | 222 | ||
216 | /* | 223 | /* |
217 | * ISA Level encodings | 224 | * ISA Level encodings |
@@ -257,6 +264,7 @@ | |||
257 | #define MIPS_CPU_PREFETCH 0x00080000 /* CPU has usable prefetch */ | 264 | #define MIPS_CPU_PREFETCH 0x00080000 /* CPU has usable prefetch */ |
258 | #define MIPS_CPU_VINT 0x00100000 /* CPU supports MIPSR2 vectored interrupts */ | 265 | #define MIPS_CPU_VINT 0x00100000 /* CPU supports MIPSR2 vectored interrupts */ |
259 | #define MIPS_CPU_VEIC 0x00200000 /* CPU supports MIPSR2 external interrupt controller mode */ | 266 | #define MIPS_CPU_VEIC 0x00200000 /* CPU supports MIPSR2 external interrupt controller mode */ |
267 | #define MIPS_CPU_ULRI 0x00400000 /* CPU has ULRI feature */ | ||
260 | 268 | ||
261 | /* | 269 | /* |
262 | * CPU ASE encodings | 270 | * CPU ASE encodings |
diff --git a/include/asm-mips/div64.h b/include/asm-mips/div64.h index 66189f5f6399..716371bd0980 100644 --- a/include/asm-mips/div64.h +++ b/include/asm-mips/div64.h | |||
@@ -20,7 +20,7 @@ | |||
20 | */ | 20 | */ |
21 | 21 | ||
22 | #define do_div64_32(res, high, low, base) ({ \ | 22 | #define do_div64_32(res, high, low, base) ({ \ |
23 | unsigned long __quot, __mod; \ | 23 | unsigned long __quot32, __mod32; \ |
24 | unsigned long __cf, __tmp, __tmp2, __i; \ | 24 | unsigned long __cf, __tmp, __tmp2, __i; \ |
25 | \ | 25 | \ |
26 | __asm__(".set push\n\t" \ | 26 | __asm__(".set push\n\t" \ |
@@ -48,12 +48,13 @@ | |||
48 | "bnez %4, 0b\n\t" \ | 48 | "bnez %4, 0b\n\t" \ |
49 | " srl %5, %1, 0x1f\n\t" \ | 49 | " srl %5, %1, 0x1f\n\t" \ |
50 | ".set pop" \ | 50 | ".set pop" \ |
51 | : "=&r" (__mod), "=&r" (__tmp), "=&r" (__quot), "=&r" (__cf), \ | 51 | : "=&r" (__mod32), "=&r" (__tmp), \ |
52 | "=&r" (__quot32), "=&r" (__cf), \ | ||
52 | "=&r" (__i), "=&r" (__tmp2) \ | 53 | "=&r" (__i), "=&r" (__tmp2) \ |
53 | : "Jr" (base), "0" (high), "1" (low)); \ | 54 | : "Jr" (base), "0" (high), "1" (low)); \ |
54 | \ | 55 | \ |
55 | (res) = __quot; \ | 56 | (res) = __quot32; \ |
56 | __mod; }) | 57 | __mod32; }) |
57 | 58 | ||
58 | #define do_div(n, base) ({ \ | 59 | #define do_div(n, base) ({ \ |
59 | unsigned long long __quot; \ | 60 | unsigned long long __quot; \ |
diff --git a/include/asm-mips/gpio.h b/include/asm-mips/gpio.h new file mode 100644 index 000000000000..06e46faf862d --- /dev/null +++ b/include/asm-mips/gpio.h | |||
@@ -0,0 +1,6 @@ | |||
1 | #ifndef __ASM_MIPS_GPIO_H | ||
2 | #define __ASM_MIPS_GPIO_H | ||
3 | |||
4 | #include <gpio.h> | ||
5 | |||
6 | #endif /* __ASM_MIPS_GPIO_H */ | ||
diff --git a/include/asm-mips/io.h b/include/asm-mips/io.h index 92ec2618560c..12bcc1f9fba9 100644 --- a/include/asm-mips/io.h +++ b/include/asm-mips/io.h | |||
@@ -178,6 +178,11 @@ extern void __iounmap(const volatile void __iomem *addr); | |||
178 | static inline void __iomem * __ioremap_mode(phys_t offset, unsigned long size, | 178 | static inline void __iomem * __ioremap_mode(phys_t offset, unsigned long size, |
179 | unsigned long flags) | 179 | unsigned long flags) |
180 | { | 180 | { |
181 | void __iomem *addr = plat_ioremap(offset, size, flags); | ||
182 | |||
183 | if (addr) | ||
184 | return addr; | ||
185 | |||
181 | #define __IS_LOW512(addr) (!((phys_t)(addr) & (phys_t) ~0x1fffffffULL)) | 186 | #define __IS_LOW512(addr) (!((phys_t)(addr) & (phys_t) ~0x1fffffffULL)) |
182 | 187 | ||
183 | if (cpu_has_64bit_addresses) { | 188 | if (cpu_has_64bit_addresses) { |
@@ -282,6 +287,9 @@ static inline void __iomem * __ioremap_mode(phys_t offset, unsigned long size, | |||
282 | 287 | ||
283 | static inline void iounmap(const volatile void __iomem *addr) | 288 | static inline void iounmap(const volatile void __iomem *addr) |
284 | { | 289 | { |
290 | if (plat_iounmap(addr)) | ||
291 | return; | ||
292 | |||
285 | #define __IS_KSEG1(addr) (((unsigned long)(addr) & ~0x1fffffffUL) == CKSEG1) | 293 | #define __IS_KSEG1(addr) (((unsigned long)(addr) & ~0x1fffffffUL) == CKSEG1) |
286 | 294 | ||
287 | if (cpu_has_64bit_addresses || | 295 | if (cpu_has_64bit_addresses || |
diff --git a/include/asm-mips/lasat/ds1603.h b/include/asm-mips/lasat/ds1603.h deleted file mode 100644 index edcd7544b358..000000000000 --- a/include/asm-mips/lasat/ds1603.h +++ /dev/null | |||
@@ -1,18 +0,0 @@ | |||
1 | #include <asm/addrspace.h> | ||
2 | |||
3 | /* Lasat 100 */ | ||
4 | #define DS1603_REG_100 (KSEG1ADDR(0x1c810000)) | ||
5 | #define DS1603_RST_100 (1 << 2) | ||
6 | #define DS1603_CLK_100 (1 << 0) | ||
7 | #define DS1603_DATA_SHIFT_100 1 | ||
8 | #define DS1603_DATA_100 (1 << DS1603_DATA_SHIFT_100) | ||
9 | |||
10 | /* Lasat 200 */ | ||
11 | #define DS1603_REG_200 (KSEG1ADDR(0x11000000)) | ||
12 | #define DS1603_RST_200 (1 << 3) | ||
13 | #define DS1603_CLK_200 (1 << 4) | ||
14 | #define DS1603_DATA_200 (1 << 5) | ||
15 | |||
16 | #define DS1603_DATA_REG_200 (DS1603_REG_200 + 0x10000) | ||
17 | #define DS1603_DATA_READ_SHIFT_200 9 | ||
18 | #define DS1603_DATA_READ_200 (1 << DS1603_DATA_READ_SHIFT_200) | ||
diff --git a/include/asm-mips/lasat/eeprom.h b/include/asm-mips/lasat/eeprom.h deleted file mode 100644 index 7b53edd5cd5f..000000000000 --- a/include/asm-mips/lasat/eeprom.h +++ /dev/null | |||
@@ -1,17 +0,0 @@ | |||
1 | #include <asm/addrspace.h> | ||
2 | |||
3 | /* lasat 100 */ | ||
4 | #define AT93C_REG_100 KSEG1ADDR(0x1c810000) | ||
5 | #define AT93C_RDATA_REG_100 AT93C_REG_100 | ||
6 | #define AT93C_RDATA_SHIFT_100 4 | ||
7 | #define AT93C_WDATA_SHIFT_100 4 | ||
8 | #define AT93C_CS_M_100 ( 1 << 5 ) | ||
9 | #define AT93C_CLK_M_100 ( 1 << 3 ) | ||
10 | |||
11 | /* lasat 200 */ | ||
12 | #define AT93C_REG_200 KSEG1ADDR(0x11000000) | ||
13 | #define AT93C_RDATA_REG_200 (AT93C_REG_200+0x10000) | ||
14 | #define AT93C_RDATA_SHIFT_200 8 | ||
15 | #define AT93C_WDATA_SHIFT_200 2 | ||
16 | #define AT93C_CS_M_200 ( 1 << 0 ) | ||
17 | #define AT93C_CLK_M_200 ( 1 << 1 ) | ||
diff --git a/include/asm-mips/lasat/head.h b/include/asm-mips/lasat/head.h deleted file mode 100644 index f5589f31a197..000000000000 --- a/include/asm-mips/lasat/head.h +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
1 | /* | ||
2 | * Image header stuff | ||
3 | */ | ||
4 | #ifndef _HEAD_H | ||
5 | #define _HEAD_H | ||
6 | |||
7 | #define LASAT_K_MAGIC0_VAL 0xfedeabba | ||
8 | #define LASAT_K_MAGIC1_VAL 0x00bedead | ||
9 | |||
10 | #ifndef _LANGUAGE_ASSEMBLY | ||
11 | #include <linux/types.h> | ||
12 | struct bootloader_header { | ||
13 | u32 magic[2]; | ||
14 | u32 version; | ||
15 | u32 image_start; | ||
16 | u32 image_size; | ||
17 | u32 kernel_start; | ||
18 | u32 kernel_entry; | ||
19 | }; | ||
20 | #endif | ||
21 | |||
22 | #endif /* _HEAD_H */ | ||
diff --git a/include/asm-mips/lasat/lasat.h b/include/asm-mips/lasat/lasat.h deleted file mode 100644 index 42077e367a5b..000000000000 --- a/include/asm-mips/lasat/lasat.h +++ /dev/null | |||
@@ -1,253 +0,0 @@ | |||
1 | /* | ||
2 | * lasat.h | ||
3 | * | ||
4 | * Thomas Horsten <thh@lasat.com> | ||
5 | * Copyright (C) 2000 LASAT Networks A/S. | ||
6 | * | ||
7 | * This program is free software; you can distribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License (Version 2) as | ||
9 | * published by the Free Software Foundation. | ||
10 | * | ||
11 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
12 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
13 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
14 | * for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License along | ||
17 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
18 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | ||
19 | * | ||
20 | * Configuration for LASAT boards, loads the appropriate include files. | ||
21 | */ | ||
22 | #ifndef _LASAT_H | ||
23 | #define _LASAT_H | ||
24 | |||
25 | #ifndef _LANGUAGE_ASSEMBLY | ||
26 | |||
27 | extern struct lasat_misc { | ||
28 | volatile u32 *reset_reg; | ||
29 | volatile u32 *flash_wp_reg; | ||
30 | u32 flash_wp_bit; | ||
31 | } *lasat_misc; | ||
32 | |||
33 | enum lasat_mtdparts { | ||
34 | LASAT_MTD_BOOTLOADER, | ||
35 | LASAT_MTD_SERVICE, | ||
36 | LASAT_MTD_NORMAL, | ||
37 | LASAT_MTD_CONFIG, | ||
38 | LASAT_MTD_FS, | ||
39 | LASAT_MTD_LAST | ||
40 | }; | ||
41 | |||
42 | /* | ||
43 | * The format of the data record in the EEPROM. | ||
44 | * See Documentation/LASAT/eeprom.txt for a detailed description | ||
45 | * of the fields in this struct, and the LASAT Hardware Configuration | ||
46 | * field specification for a detailed description of the config | ||
47 | * field. | ||
48 | */ | ||
49 | #include <linux/types.h> | ||
50 | |||
51 | #define LASAT_EEPROM_VERSION 7 | ||
52 | struct lasat_eeprom_struct { | ||
53 | unsigned int version; | ||
54 | unsigned int cfg[3]; | ||
55 | unsigned char hwaddr[6]; | ||
56 | unsigned char print_partno[12]; | ||
57 | unsigned char term0; | ||
58 | unsigned char print_serial[14]; | ||
59 | unsigned char term1; | ||
60 | unsigned char prod_partno[12]; | ||
61 | unsigned char term2; | ||
62 | unsigned char prod_serial[14]; | ||
63 | unsigned char term3; | ||
64 | unsigned char passwd_hash[16]; | ||
65 | unsigned char pwdnull; | ||
66 | unsigned char vendid; | ||
67 | unsigned char ts_ref; | ||
68 | unsigned char ts_signoff; | ||
69 | unsigned char reserved[11]; | ||
70 | unsigned char debugaccess; | ||
71 | unsigned short prid; | ||
72 | unsigned int serviceflag; | ||
73 | unsigned int ipaddr; | ||
74 | unsigned int netmask; | ||
75 | unsigned int crc32; | ||
76 | }; | ||
77 | |||
78 | struct lasat_eeprom_struct_pre7 { | ||
79 | unsigned int version; | ||
80 | unsigned int flags[3]; | ||
81 | unsigned char hwaddr0[6]; | ||
82 | unsigned char hwaddr1[6]; | ||
83 | unsigned char print_partno[9]; | ||
84 | unsigned char term0; | ||
85 | unsigned char print_serial[14]; | ||
86 | unsigned char term1; | ||
87 | unsigned char prod_partno[9]; | ||
88 | unsigned char term2; | ||
89 | unsigned char prod_serial[14]; | ||
90 | unsigned char term3; | ||
91 | unsigned char passwd_hash[24]; | ||
92 | unsigned char pwdnull; | ||
93 | unsigned char vendor; | ||
94 | unsigned char ts_ref; | ||
95 | unsigned char ts_signoff; | ||
96 | unsigned char reserved[6]; | ||
97 | unsigned int writecount; | ||
98 | unsigned int ipaddr; | ||
99 | unsigned int netmask; | ||
100 | unsigned int crc32; | ||
101 | }; | ||
102 | |||
103 | /* Configuration descriptor encoding - see the doc for details */ | ||
104 | |||
105 | #define LASAT_W0_DSCTYPE(v) ( ( (v) ) & 0xf ) | ||
106 | #define LASAT_W0_BMID(v) ( ( (v) >> 0x04 ) & 0xf ) | ||
107 | #define LASAT_W0_CPUTYPE(v) ( ( (v) >> 0x08 ) & 0xf ) | ||
108 | #define LASAT_W0_BUSSPEED(v) ( ( (v) >> 0x0c ) & 0xf ) | ||
109 | #define LASAT_W0_CPUCLK(v) ( ( (v) >> 0x10 ) & 0xf ) | ||
110 | #define LASAT_W0_SDRAMBANKSZ(v) ( ( (v) >> 0x14 ) & 0xf ) | ||
111 | #define LASAT_W0_SDRAMBANKS(v) ( ( (v) >> 0x18 ) & 0xf ) | ||
112 | #define LASAT_W0_L2CACHE(v) ( ( (v) >> 0x1c ) & 0xf ) | ||
113 | |||
114 | #define LASAT_W1_EDHAC(v) ( ( (v) ) & 0xf ) | ||
115 | #define LASAT_W1_HIFN(v) ( ( (v) >> 0x04 ) & 0x1 ) | ||
116 | #define LASAT_W1_ISDN(v) ( ( (v) >> 0x05 ) & 0x1 ) | ||
117 | #define LASAT_W1_IDE(v) ( ( (v) >> 0x06 ) & 0x1 ) | ||
118 | #define LASAT_W1_HDLC(v) ( ( (v) >> 0x07 ) & 0x1 ) | ||
119 | #define LASAT_W1_USVERSION(v) ( ( (v) >> 0x08 ) & 0x1 ) | ||
120 | #define LASAT_W1_4MACS(v) ( ( (v) >> 0x09 ) & 0x1 ) | ||
121 | #define LASAT_W1_EXTSERIAL(v) ( ( (v) >> 0x0a ) & 0x1 ) | ||
122 | #define LASAT_W1_FLASHSIZE(v) ( ( (v) >> 0x0c ) & 0xf ) | ||
123 | #define LASAT_W1_PCISLOTS(v) ( ( (v) >> 0x10 ) & 0xf ) | ||
124 | #define LASAT_W1_PCI1OPT(v) ( ( (v) >> 0x14 ) & 0xf ) | ||
125 | #define LASAT_W1_PCI2OPT(v) ( ( (v) >> 0x18 ) & 0xf ) | ||
126 | #define LASAT_W1_PCI3OPT(v) ( ( (v) >> 0x1c ) & 0xf ) | ||
127 | |||
128 | /* Routines specific to LASAT boards */ | ||
129 | |||
130 | #define LASAT_BMID_MASQUERADE2 0 | ||
131 | #define LASAT_BMID_MASQUERADEPRO 1 | ||
132 | #define LASAT_BMID_SAFEPIPE25 2 | ||
133 | #define LASAT_BMID_SAFEPIPE50 3 | ||
134 | #define LASAT_BMID_SAFEPIPE100 4 | ||
135 | #define LASAT_BMID_SAFEPIPE5000 5 | ||
136 | #define LASAT_BMID_SAFEPIPE7000 6 | ||
137 | #define LASAT_BMID_SAFEPIPE1000 7 | ||
138 | //#define LASAT_BMID_SAFEPIPE30 7 | ||
139 | //#define LASAT_BMID_SAFEPIPE5100 8 | ||
140 | //#define LASAT_BMID_SAFEPIPE7100 9 | ||
141 | #define LASAT_BMID_UNKNOWN 0xf | ||
142 | #define LASAT_MAX_BMID_NAMES 9 // no larger than 15! | ||
143 | |||
144 | #define LASAT_HAS_EDHAC ( 1 << 0 ) | ||
145 | #define LASAT_EDHAC_FAST ( 1 << 1 ) | ||
146 | #define LASAT_HAS_EADI ( 1 << 2 ) | ||
147 | #define LASAT_HAS_HIFN ( 1 << 3 ) | ||
148 | #define LASAT_HAS_ISDN ( 1 << 4 ) | ||
149 | #define LASAT_HAS_LEASEDLINE_IF ( 1 << 5 ) | ||
150 | #define LASAT_HAS_HDC ( 1 << 6 ) | ||
151 | |||
152 | #define LASAT_PRID_MASQUERADE2 0 | ||
153 | #define LASAT_PRID_MASQUERADEPRO 1 | ||
154 | #define LASAT_PRID_SAFEPIPE25 2 | ||
155 | #define LASAT_PRID_SAFEPIPE50 3 | ||
156 | #define LASAT_PRID_SAFEPIPE100 4 | ||
157 | #define LASAT_PRID_SAFEPIPE5000 5 | ||
158 | #define LASAT_PRID_SAFEPIPE7000 6 | ||
159 | #define LASAT_PRID_SAFEPIPE30 7 | ||
160 | #define LASAT_PRID_SAFEPIPE5100 8 | ||
161 | #define LASAT_PRID_SAFEPIPE7100 9 | ||
162 | |||
163 | #define LASAT_PRID_SAFEPIPE1110 10 | ||
164 | #define LASAT_PRID_SAFEPIPE3020 11 | ||
165 | #define LASAT_PRID_SAFEPIPE3030 12 | ||
166 | #define LASAT_PRID_SAFEPIPE5020 13 | ||
167 | #define LASAT_PRID_SAFEPIPE5030 14 | ||
168 | #define LASAT_PRID_SAFEPIPE1120 15 | ||
169 | #define LASAT_PRID_SAFEPIPE1130 16 | ||
170 | #define LASAT_PRID_SAFEPIPE6010 17 | ||
171 | #define LASAT_PRID_SAFEPIPE6110 18 | ||
172 | #define LASAT_PRID_SAFEPIPE6210 19 | ||
173 | #define LASAT_PRID_SAFEPIPE1020 20 | ||
174 | #define LASAT_PRID_SAFEPIPE1040 21 | ||
175 | #define LASAT_PRID_SAFEPIPE1060 22 | ||
176 | |||
177 | struct lasat_info { | ||
178 | unsigned int li_cpu_hz; | ||
179 | unsigned int li_bus_hz; | ||
180 | unsigned int li_bmid; | ||
181 | unsigned int li_memsize; | ||
182 | unsigned int li_flash_size; | ||
183 | unsigned int li_prid; | ||
184 | unsigned char li_bmstr[16]; | ||
185 | unsigned char li_namestr[32]; | ||
186 | unsigned char li_typestr[16]; | ||
187 | /* Info on the Flash layout */ | ||
188 | unsigned int li_flash_base; | ||
189 | unsigned long li_flashpart_base[LASAT_MTD_LAST]; | ||
190 | unsigned long li_flashpart_size[LASAT_MTD_LAST]; | ||
191 | struct lasat_eeprom_struct li_eeprom_info; | ||
192 | unsigned int li_eeprom_upgrade_version; | ||
193 | unsigned int li_debugaccess; | ||
194 | }; | ||
195 | |||
196 | extern struct lasat_info lasat_board_info; | ||
197 | |||
198 | static inline unsigned long lasat_flash_partition_start(int partno) | ||
199 | { | ||
200 | if (partno < 0 || partno >= LASAT_MTD_LAST) | ||
201 | return 0; | ||
202 | |||
203 | return lasat_board_info.li_flashpart_base[partno]; | ||
204 | } | ||
205 | |||
206 | static inline unsigned long lasat_flash_partition_size(int partno) | ||
207 | { | ||
208 | if (partno < 0 || partno >= LASAT_MTD_LAST) | ||
209 | return 0; | ||
210 | |||
211 | return lasat_board_info.li_flashpart_size[partno]; | ||
212 | } | ||
213 | |||
214 | /* Called from setup() to initialize the global board_info struct */ | ||
215 | extern int lasat_init_board_info(void); | ||
216 | |||
217 | /* Write the modified EEPROM info struct */ | ||
218 | extern void lasat_write_eeprom_info(void); | ||
219 | |||
220 | #define N_MACHTYPES 2 | ||
221 | /* for calibration of delays */ | ||
222 | |||
223 | /* the lasat_ndelay function is necessary because it is used at an | ||
224 | * early stage of the boot process where ndelay is not calibrated. | ||
225 | * It is used for the bit-banging rtc and eeprom drivers */ | ||
226 | |||
227 | #include <asm/delay.h> | ||
228 | /* calculating with the slowest board with 100 MHz clock */ | ||
229 | #define LASAT_100_DIVIDER 20 | ||
230 | /* All 200's run at 250 MHz clock */ | ||
231 | #define LASAT_200_DIVIDER 8 | ||
232 | |||
233 | extern unsigned int lasat_ndelay_divider; | ||
234 | |||
235 | static inline void lasat_ndelay(unsigned int ns) | ||
236 | { | ||
237 | __delay(ns / lasat_ndelay_divider); | ||
238 | } | ||
239 | |||
240 | #endif /* !defined (_LANGUAGE_ASSEMBLY) */ | ||
241 | |||
242 | #define LASAT_SERVICEMODE_MAGIC_1 0xdeadbeef | ||
243 | #define LASAT_SERVICEMODE_MAGIC_2 0xfedeabba | ||
244 | |||
245 | /* Lasat 100 boards */ | ||
246 | #define LASAT_GT_BASE (KSEG1ADDR(0x14000000)) | ||
247 | |||
248 | /* Lasat 200 boards */ | ||
249 | #define Vrc5074_PHYS_BASE 0x1fa00000 | ||
250 | #define Vrc5074_BASE (KSEG1ADDR(Vrc5074_PHYS_BASE)) | ||
251 | #define PCI_WINDOW1 0x1a000000 | ||
252 | |||
253 | #endif /* _LASAT_H */ | ||
diff --git a/include/asm-mips/lasat/lasatint.h b/include/asm-mips/lasat/lasatint.h deleted file mode 100644 index 065474feeccc..000000000000 --- a/include/asm-mips/lasat/lasatint.h +++ /dev/null | |||
@@ -1,12 +0,0 @@ | |||
1 | #define LASATINT_END 16 | ||
2 | |||
3 | /* lasat 100 */ | ||
4 | #define LASAT_INT_STATUS_REG_100 (KSEG1ADDR(0x1c880000)) | ||
5 | #define LASAT_INT_MASK_REG_100 (KSEG1ADDR(0x1c890000)) | ||
6 | #define LASATINT_MASK_SHIFT_100 0 | ||
7 | |||
8 | /* lasat 200 */ | ||
9 | #define LASAT_INT_STATUS_REG_200 (KSEG1ADDR(0x1104003c)) | ||
10 | #define LASAT_INT_MASK_REG_200 (KSEG1ADDR(0x1104003c)) | ||
11 | #define LASATINT_MASK_SHIFT_200 16 | ||
12 | |||
diff --git a/include/asm-mips/lasat/picvue.h b/include/asm-mips/lasat/picvue.h deleted file mode 100644 index 42a492edc40e..000000000000 --- a/include/asm-mips/lasat/picvue.h +++ /dev/null | |||
@@ -1,15 +0,0 @@ | |||
1 | /* Lasat 100 */ | ||
2 | #define PVC_REG_100 KSEG1ADDR(0x1c820000) | ||
3 | #define PVC_DATA_SHIFT_100 0 | ||
4 | #define PVC_DATA_M_100 0xFF | ||
5 | #define PVC_E_100 (1 << 8) | ||
6 | #define PVC_RW_100 (1 << 9) | ||
7 | #define PVC_RS_100 (1 << 10) | ||
8 | |||
9 | /* Lasat 200 */ | ||
10 | #define PVC_REG_200 KSEG1ADDR(0x11000000) | ||
11 | #define PVC_DATA_SHIFT_200 24 | ||
12 | #define PVC_DATA_M_200 (0xFF << PVC_DATA_SHIFT_200) | ||
13 | #define PVC_E_200 (1 << 16) | ||
14 | #define PVC_RW_200 (1 << 17) | ||
15 | #define PVC_RS_200 (1 << 18) | ||
diff --git a/include/asm-mips/lasat/serial.h b/include/asm-mips/lasat/serial.h deleted file mode 100644 index 9e88c7669c7a..000000000000 --- a/include/asm-mips/lasat/serial.h +++ /dev/null | |||
@@ -1,13 +0,0 @@ | |||
1 | #include <asm/lasat/lasat.h> | ||
2 | |||
3 | /* Lasat 100 boards serial configuration */ | ||
4 | #define LASAT_BASE_BAUD_100 ( 7372800 / 16 ) | ||
5 | #define LASAT_UART_REGS_BASE_100 0x1c8b0000 | ||
6 | #define LASAT_UART_REGS_SHIFT_100 2 | ||
7 | #define LASATINT_UART_100 8 | ||
8 | |||
9 | /* * LASAT 200 boards serial configuration */ | ||
10 | #define LASAT_BASE_BAUD_200 (100000000 / 16 / 12) | ||
11 | #define LASAT_UART_REGS_BASE_200 (Vrc5074_PHYS_BASE + 0x0300) | ||
12 | #define LASAT_UART_REGS_SHIFT_200 3 | ||
13 | #define LASATINT_UART_200 13 | ||
diff --git a/include/asm-mips/mach-au1x00/au1xxx_gpio.h b/include/asm-mips/mach-au1x00/au1xxx_gpio.h deleted file mode 100644 index 27911e054ffc..000000000000 --- a/include/asm-mips/mach-au1x00/au1xxx_gpio.h +++ /dev/null | |||
@@ -1,20 +0,0 @@ | |||
1 | #ifndef __AU1XXX_GPIO_H | ||
2 | #define __AU1XXX_GPIO_H | ||
3 | |||
4 | void au1xxx_gpio1_set_inputs(void); | ||
5 | void au1xxx_gpio_tristate(int signal); | ||
6 | void au1xxx_gpio_write(int signal, int value); | ||
7 | int au1xxx_gpio_read(int signal); | ||
8 | |||
9 | typedef volatile struct | ||
10 | { | ||
11 | u32 dir; | ||
12 | u32 reserved; | ||
13 | u32 output; | ||
14 | u32 pinstate; | ||
15 | u32 inten; | ||
16 | u32 enable; | ||
17 | |||
18 | } AU1X00_GPIO2; | ||
19 | |||
20 | #endif //__AU1XXX_GPIO_H | ||
diff --git a/include/asm-mips/mach-au1x00/gpio.h b/include/asm-mips/mach-au1x00/gpio.h new file mode 100644 index 000000000000..2dc61e009a08 --- /dev/null +++ b/include/asm-mips/mach-au1x00/gpio.h | |||
@@ -0,0 +1,69 @@ | |||
1 | #ifndef _AU1XXX_GPIO_H_ | ||
2 | #define _AU1XXX_GPIO_H_ | ||
3 | |||
4 | #include <linux/types.h> | ||
5 | |||
6 | #define AU1XXX_GPIO_BASE 200 | ||
7 | |||
8 | struct au1x00_gpio2 { | ||
9 | u32 dir; | ||
10 | u32 reserved; | ||
11 | u32 output; | ||
12 | u32 pinstate; | ||
13 | u32 inten; | ||
14 | u32 enable; | ||
15 | }; | ||
16 | |||
17 | extern int au1xxx_gpio_get_value(unsigned gpio); | ||
18 | extern void au1xxx_gpio_set_value(unsigned gpio, int value); | ||
19 | extern int au1xxx_gpio_direction_input(unsigned gpio); | ||
20 | extern int au1xxx_gpio_direction_output(unsigned gpio, int value); | ||
21 | |||
22 | |||
23 | /* Wrappers for the arch-neutral GPIO API */ | ||
24 | |||
25 | static inline int gpio_request(unsigned gpio, const char *label) | ||
26 | { | ||
27 | /* Not yet implemented */ | ||
28 | return 0; | ||
29 | } | ||
30 | |||
31 | static inline void gpio_free(unsigned gpio) | ||
32 | { | ||
33 | /* Not yet implemented */ | ||
34 | } | ||
35 | |||
36 | static inline int gpio_direction_input(unsigned gpio) | ||
37 | { | ||
38 | return au1xxx_gpio_direction_input(gpio); | ||
39 | } | ||
40 | |||
41 | static inline int gpio_direction_output(unsigned gpio, int value) | ||
42 | { | ||
43 | return au1xxx_gpio_direction_output(gpio, value); | ||
44 | } | ||
45 | |||
46 | static inline int gpio_get_value(unsigned gpio) | ||
47 | { | ||
48 | return au1xxx_gpio_get_value(gpio); | ||
49 | } | ||
50 | |||
51 | static inline void gpio_set_value(unsigned gpio, int value) | ||
52 | { | ||
53 | au1xxx_gpio_set_value(gpio, value); | ||
54 | } | ||
55 | |||
56 | static inline int gpio_to_irq(unsigned gpio) | ||
57 | { | ||
58 | return gpio; | ||
59 | } | ||
60 | |||
61 | static inline int irq_to_gpio(unsigned irq) | ||
62 | { | ||
63 | return irq; | ||
64 | } | ||
65 | |||
66 | /* For cansleep */ | ||
67 | #include <asm-generic/gpio.h> | ||
68 | |||
69 | #endif /* _AU1XXX_GPIO_H_ */ | ||
diff --git a/include/asm-mips/mach-au1x00/ioremap.h b/include/asm-mips/mach-au1x00/ioremap.h index 098fca4289bb..364cea2dc71f 100644 --- a/include/asm-mips/mach-au1x00/ioremap.h +++ b/include/asm-mips/mach-au1x00/ioremap.h | |||
@@ -28,4 +28,15 @@ static inline phys_t fixup_bigphys_addr(phys_t phys_addr, phys_t size) | |||
28 | return __fixup_bigphys_addr(phys_addr, size); | 28 | return __fixup_bigphys_addr(phys_addr, size); |
29 | } | 29 | } |
30 | 30 | ||
31 | static inline void __iomem *plat_ioremap(phys_t offset, unsigned long size, | ||
32 | unsigned long flags) | ||
33 | { | ||
34 | return NULL; | ||
35 | } | ||
36 | |||
37 | static inline int plat_iounmap(const volatile void __iomem *addr) | ||
38 | { | ||
39 | return 0; | ||
40 | } | ||
41 | |||
31 | #endif /* __ASM_MACH_AU1X00_IOREMAP_H */ | 42 | #endif /* __ASM_MACH_AU1X00_IOREMAP_H */ |
diff --git a/include/asm-mips/mach-cobalt/cobalt.h b/include/asm-mips/mach-cobalt/cobalt.h index 684a501c04cf..9c9d2b998ca4 100644 --- a/include/asm-mips/mach-cobalt/cobalt.h +++ b/include/asm-mips/mach-cobalt/cobalt.h | |||
@@ -30,7 +30,6 @@ | |||
30 | #define COBALT_CPU_IRQ MIPS_CPU_IRQ_BASE | 30 | #define COBALT_CPU_IRQ MIPS_CPU_IRQ_BASE |
31 | 31 | ||
32 | #define COBALT_GALILEO_IRQ (COBALT_CPU_IRQ + 2) | 32 | #define COBALT_GALILEO_IRQ (COBALT_CPU_IRQ + 2) |
33 | #define COBALT_SCC_IRQ (COBALT_CPU_IRQ + 3) /* pre-production has 85C30 */ | ||
34 | #define COBALT_RAQ_SCSI_IRQ (COBALT_CPU_IRQ + 3) | 33 | #define COBALT_RAQ_SCSI_IRQ (COBALT_CPU_IRQ + 3) |
35 | #define COBALT_ETH0_IRQ (COBALT_CPU_IRQ + 3) | 34 | #define COBALT_ETH0_IRQ (COBALT_CPU_IRQ + 3) |
36 | #define COBALT_QUBE1_ETH0_IRQ (COBALT_CPU_IRQ + 4) | 35 | #define COBALT_QUBE1_ETH0_IRQ (COBALT_CPU_IRQ + 4) |
@@ -71,10 +70,6 @@ | |||
71 | 70 | ||
72 | extern int cobalt_board_id; | 71 | extern int cobalt_board_id; |
73 | 72 | ||
74 | #define PCI_CFG_SET(devfn,where) \ | ||
75 | GT_WRITE(GT_PCI0_CFGADDR_OFS, (0x80000000 | (PCI_SLOT (devfn) << 11) | \ | ||
76 | (PCI_FUNC (devfn) << 8) | (where))) | ||
77 | |||
78 | #define COBALT_LED_PORT (*(volatile unsigned char *) CKSEG1ADDR(0x1c000000)) | 73 | #define COBALT_LED_PORT (*(volatile unsigned char *) CKSEG1ADDR(0x1c000000)) |
79 | # define COBALT_LED_BAR_LEFT (1 << 0) /* Qube */ | 74 | # define COBALT_LED_BAR_LEFT (1 << 0) /* Qube */ |
80 | # define COBALT_LED_BAR_RIGHT (1 << 1) /* Qube */ | 75 | # define COBALT_LED_BAR_RIGHT (1 << 1) /* Qube */ |
diff --git a/include/asm-mips/mach-ev64120/mach-gt64120.h b/include/asm-mips/mach-ev64120/mach-gt64120.h deleted file mode 100644 index 7e272ce57ea3..000000000000 --- a/include/asm-mips/mach-ev64120/mach-gt64120.h +++ /dev/null | |||
@@ -1,62 +0,0 @@ | |||
1 | /* | ||
2 | * This is a direct copy of the ev96100.h file, with a global | ||
3 | * search and replace. The numbers are the same. | ||
4 | * | ||
5 | * The reason I'm duplicating this is so that the 64120/96100 | ||
6 | * defines won't be confusing in the source code. | ||
7 | */ | ||
8 | #ifndef __ASM_GALILEO_BOARDS_MIPS_EV64120_H | ||
9 | #define __ASM_GALILEO_BOARDS_MIPS_EV64120_H | ||
10 | |||
11 | /* | ||
12 | * GT64120 config space base address | ||
13 | */ | ||
14 | extern unsigned long gt64120_base; | ||
15 | |||
16 | #define GT64120_BASE (gt64120_base) | ||
17 | |||
18 | /* | ||
19 | * PCI Bus allocation | ||
20 | */ | ||
21 | #define GT_PCI_MEM_BASE 0x12000000UL | ||
22 | #define GT_PCI_MEM_SIZE 0x02000000UL | ||
23 | #define GT_PCI_IO_BASE 0x10000000UL | ||
24 | #define GT_PCI_IO_SIZE 0x02000000UL | ||
25 | #define GT_ISA_IO_BASE PCI_IO_BASE | ||
26 | |||
27 | /* | ||
28 | * Duart I/O ports. | ||
29 | */ | ||
30 | #define EV64120_COM1_BASE_ADDR (0x1d000000 + 0x20) | ||
31 | #define EV64120_COM2_BASE_ADDR (0x1d000000 + 0x00) | ||
32 | |||
33 | |||
34 | /* | ||
35 | * EV64120 interrupt controller register base. | ||
36 | */ | ||
37 | #define EV64120_ICTRL_REGS_BASE (KSEG1ADDR(0x1f000000)) | ||
38 | |||
39 | /* | ||
40 | * EV64120 UART register base. | ||
41 | */ | ||
42 | #define EV64120_UART0_REGS_BASE (KSEG1ADDR(EV64120_COM1_BASE_ADDR)) | ||
43 | #define EV64120_UART1_REGS_BASE (KSEG1ADDR(EV64120_COM2_BASE_ADDR)) | ||
44 | #define EV64120_BASE_BAUD ( 3686400 / 16 ) | ||
45 | #define EV64120_UART_IRQ 6 | ||
46 | |||
47 | /* | ||
48 | * PCI interrupts will come in on either the INTA or INTD interrups lines, | ||
49 | * which are mapped to the #2 and #5 interrupt pins of the MIPS. On our | ||
50 | * boards, they all either come in on IntD or they all come in on IntA, they | ||
51 | * aren't mixed. There can be numerous PCI interrupts, so we keep a list of the | ||
52 | * "requested" interrupt numbers and go through the list whenever we get an | ||
53 | * IntA/D. | ||
54 | * | ||
55 | * Interrupts < 8 are directly wired to the processor; PCI INTA is 8 and | ||
56 | * INTD is 11. | ||
57 | */ | ||
58 | #define GT_TIMER 4 | ||
59 | #define GT_INTA 2 | ||
60 | #define GT_INTD 5 | ||
61 | |||
62 | #endif /* __ASM_GALILEO_BOARDS_MIPS_EV64120_H */ | ||
diff --git a/include/asm-mips/mach-generic/gpio.h b/include/asm-mips/mach-generic/gpio.h new file mode 100644 index 000000000000..6eaf5efedf3a --- /dev/null +++ b/include/asm-mips/mach-generic/gpio.h | |||
@@ -0,0 +1,15 @@ | |||
1 | #ifndef __ASM_MACH_GENERIC_GPIO_H | ||
2 | #define __ASM_MACH_GENERIC_GPIO_H | ||
3 | |||
4 | int gpio_request(unsigned gpio, const char *label); | ||
5 | void gpio_free(unsigned gpio); | ||
6 | int gpio_direction_input(unsigned gpio); | ||
7 | int gpio_direction_output(unsigned gpio, int value); | ||
8 | int gpio_get_value(unsigned gpio); | ||
9 | void gpio_set_value(unsigned gpio, int value); | ||
10 | int gpio_to_irq(unsigned gpio); | ||
11 | int irq_to_gpio(unsigned irq); | ||
12 | |||
13 | #include <asm-generic/gpio.h> /* cansleep wrappers */ | ||
14 | |||
15 | #endif /* __ASM_MACH_GENERIC_GPIO_H */ | ||
diff --git a/include/asm-mips/mach-generic/ioremap.h b/include/asm-mips/mach-generic/ioremap.h index 9b64ff6e485d..b379938d47f0 100644 --- a/include/asm-mips/mach-generic/ioremap.h +++ b/include/asm-mips/mach-generic/ioremap.h | |||
@@ -20,4 +20,15 @@ static inline phys_t fixup_bigphys_addr(phys_t phys_addr, phys_t size) | |||
20 | return phys_addr; | 20 | return phys_addr; |
21 | } | 21 | } |
22 | 22 | ||
23 | static inline void __iomem *plat_ioremap(phys_t offset, unsigned long size, | ||
24 | unsigned long flags) | ||
25 | { | ||
26 | return NULL; | ||
27 | } | ||
28 | |||
29 | static inline int plat_iounmap(const volatile void __iomem *addr) | ||
30 | { | ||
31 | return 0; | ||
32 | } | ||
33 | |||
23 | #endif /* __ASM_MACH_GENERIC_IOREMAP_H */ | 34 | #endif /* __ASM_MACH_GENERIC_IOREMAP_H */ |
diff --git a/include/asm-mips/mach-generic/spaces.h b/include/asm-mips/mach-generic/spaces.h index 0ae9997bc9a8..c9fa4b14968d 100644 --- a/include/asm-mips/mach-generic/spaces.h +++ b/include/asm-mips/mach-generic/spaces.h | |||
@@ -10,38 +10,54 @@ | |||
10 | #ifndef _ASM_MACH_GENERIC_SPACES_H | 10 | #ifndef _ASM_MACH_GENERIC_SPACES_H |
11 | #define _ASM_MACH_GENERIC_SPACES_H | 11 | #define _ASM_MACH_GENERIC_SPACES_H |
12 | 12 | ||
13 | #include <linux/const.h> | ||
14 | |||
15 | /* | ||
16 | * This gives the physical RAM offset. | ||
17 | */ | ||
18 | #ifndef PHYS_OFFSET | ||
19 | #define PHYS_OFFSET _AC(0, UL) | ||
20 | #endif | ||
13 | 21 | ||
14 | #ifdef CONFIG_32BIT | 22 | #ifdef CONFIG_32BIT |
15 | 23 | ||
16 | #define CAC_BASE 0x80000000 | 24 | #define CAC_BASE _AC(0x80000000, UL) |
17 | #define IO_BASE 0xa0000000 | 25 | #define IO_BASE _AC(0xa0000000, UL) |
18 | #define UNCAC_BASE 0xa0000000 | 26 | #define UNCAC_BASE _AC(0xa0000000, UL) |
19 | #define MAP_BASE 0xc0000000 | ||
20 | 27 | ||
21 | /* | 28 | #ifndef MAP_BASE |
22 | * This handles the memory map. | 29 | #define MAP_BASE _AC(0xc0000000, UL) |
23 | * We handle pages at KSEG0 for kernels with 32 bit address space. | 30 | #endif |
24 | */ | ||
25 | #define PAGE_OFFSET 0x80000000UL | ||
26 | 31 | ||
27 | /* | 32 | /* |
28 | * Memory above this physical address will be considered highmem. | 33 | * Memory above this physical address will be considered highmem. |
29 | */ | 34 | */ |
30 | #ifndef HIGHMEM_START | 35 | #ifndef HIGHMEM_START |
31 | #define HIGHMEM_START 0x20000000UL | 36 | #define HIGHMEM_START _AC(0x20000000, UL) |
32 | #endif | 37 | #endif |
33 | 38 | ||
34 | #endif /* CONFIG_32BIT */ | 39 | #endif /* CONFIG_32BIT */ |
35 | 40 | ||
36 | #ifdef CONFIG_64BIT | 41 | #ifdef CONFIG_64BIT |
37 | 42 | ||
38 | /* | 43 | #ifndef CAC_BASE |
39 | * This handles the memory map. | ||
40 | */ | ||
41 | #ifdef CONFIG_DMA_NONCOHERENT | 44 | #ifdef CONFIG_DMA_NONCOHERENT |
42 | #define PAGE_OFFSET 0x9800000000000000UL | 45 | #define CAC_BASE _AC(0x9800000000000000, UL) |
43 | #else | 46 | #else |
44 | #define PAGE_OFFSET 0xa800000000000000UL | 47 | #define CAC_BASE _AC(0xa800000000000000, UL) |
48 | #endif | ||
49 | #endif | ||
50 | |||
51 | #ifndef IO_BASE | ||
52 | #define IO_BASE _AC(0x9000000000000000, UL) | ||
53 | #endif | ||
54 | |||
55 | #ifndef UNCAC_BASE | ||
56 | #define UNCAC_BASE _AC(0x9000000000000000, UL) | ||
57 | #endif | ||
58 | |||
59 | #ifndef MAP_BASE | ||
60 | #define MAP_BASE _AC(0xc000000000000000, UL) | ||
45 | #endif | 61 | #endif |
46 | 62 | ||
47 | /* | 63 | /* |
@@ -50,22 +66,20 @@ | |||
50 | * in the distant future. Nobody will care for a few years :-) | 66 | * in the distant future. Nobody will care for a few years :-) |
51 | */ | 67 | */ |
52 | #ifndef HIGHMEM_START | 68 | #ifndef HIGHMEM_START |
53 | #define HIGHMEM_START (1UL << 59UL) | 69 | #define HIGHMEM_START (_AC(1, UL) << _AC(59, UL)) |
54 | #endif | 70 | #endif |
55 | 71 | ||
56 | #ifdef CONFIG_DMA_NONCOHERENT | ||
57 | #define CAC_BASE 0x9800000000000000UL | ||
58 | #else | ||
59 | #define CAC_BASE 0xa800000000000000UL | ||
60 | #endif | ||
61 | #define IO_BASE 0x9000000000000000UL | ||
62 | #define UNCAC_BASE 0x9000000000000000UL | ||
63 | #define MAP_BASE 0xc000000000000000UL | ||
64 | |||
65 | #define TO_PHYS(x) ( ((x) & TO_PHYS_MASK)) | 72 | #define TO_PHYS(x) ( ((x) & TO_PHYS_MASK)) |
66 | #define TO_CAC(x) (CAC_BASE | ((x) & TO_PHYS_MASK)) | 73 | #define TO_CAC(x) (CAC_BASE | ((x) & TO_PHYS_MASK)) |
67 | #define TO_UNCAC(x) (UNCAC_BASE | ((x) & TO_PHYS_MASK)) | 74 | #define TO_UNCAC(x) (UNCAC_BASE | ((x) & TO_PHYS_MASK)) |
68 | 75 | ||
69 | #endif /* CONFIG_64BIT */ | 76 | #endif /* CONFIG_64BIT */ |
70 | 77 | ||
78 | /* | ||
79 | * This handles the memory map. | ||
80 | */ | ||
81 | #ifndef PAGE_OFFSET | ||
82 | #define PAGE_OFFSET (CAC_BASE + PHYS_OFFSET) | ||
83 | #endif | ||
84 | |||
71 | #endif /* __ASM_MACH_GENERIC_SPACES_H */ | 85 | #endif /* __ASM_MACH_GENERIC_SPACES_H */ |
diff --git a/include/asm-mips/mach-ip22/spaces.h b/include/asm-mips/mach-ip22/spaces.h index ab20c026fd19..7f9fa6f66059 100644 --- a/include/asm-mips/mach-ip22/spaces.h +++ b/include/asm-mips/mach-ip22/spaces.h | |||
@@ -11,44 +11,17 @@ | |||
11 | #define _ASM_MACH_IP22_SPACES_H | 11 | #define _ASM_MACH_IP22_SPACES_H |
12 | 12 | ||
13 | 13 | ||
14 | #ifdef CONFIG_32BIT | ||
15 | |||
16 | #define CAC_BASE 0x80000000 | ||
17 | #define IO_BASE 0xa0000000 | ||
18 | #define UNCAC_BASE 0xa0000000 | ||
19 | #define MAP_BASE 0xc0000000 | ||
20 | |||
21 | /* | ||
22 | * This handles the memory map. | ||
23 | * We handle pages at KSEG0 for kernels with 32 bit address space. | ||
24 | */ | ||
25 | #define PAGE_OFFSET 0x80000000UL | ||
26 | |||
27 | /* | ||
28 | * Memory above this physical address will be considered highmem. | ||
29 | */ | ||
30 | #ifndef HIGHMEM_START | ||
31 | #define HIGHMEM_START 0x20000000UL | ||
32 | #endif | ||
33 | |||
34 | #endif /* CONFIG_32BIT */ | ||
35 | |||
36 | #ifdef CONFIG_64BIT | 14 | #ifdef CONFIG_64BIT |
37 | #define PAGE_OFFSET 0xffffffff80000000UL | ||
38 | 15 | ||
39 | #ifndef HIGHMEM_START | 16 | #define PAGE_OFFSET 0xffffffff80000000UL |
40 | #define HIGHMEM_START (1UL << 59UL) | ||
41 | #endif | ||
42 | 17 | ||
43 | #define CAC_BASE 0xffffffff80000000 | 18 | #define CAC_BASE 0xffffffff80000000 |
44 | #define IO_BASE 0xffffffffa0000000 | 19 | #define IO_BASE 0xffffffffa0000000 |
45 | #define UNCAC_BASE 0xffffffffa0000000 | 20 | #define UNCAC_BASE 0xffffffffa0000000 |
46 | #define MAP_BASE 0xc000000000000000 | 21 | #define MAP_BASE 0xc000000000000000 |
47 | 22 | ||
48 | #define TO_PHYS(x) ( ((x) & TO_PHYS_MASK)) | ||
49 | #define TO_CAC(x) (CAC_BASE | ((x) & TO_PHYS_MASK)) | ||
50 | #define TO_UNCAC(x) (UNCAC_BASE | ((x) & TO_PHYS_MASK)) | ||
51 | |||
52 | #endif /* CONFIG_64BIT */ | 23 | #endif /* CONFIG_64BIT */ |
53 | 24 | ||
25 | #include <asm/mach-generic/spaces.h> | ||
26 | |||
54 | #endif /* __ASM_MACH_IP22_SPACES_H */ | 27 | #endif /* __ASM_MACH_IP22_SPACES_H */ |
diff --git a/include/asm-mips/mach-ip27/spaces.h b/include/asm-mips/mach-ip27/spaces.h index 45e61785ef42..b18802a0b17e 100644 --- a/include/asm-mips/mach-ip27/spaces.h +++ b/include/asm-mips/mach-ip27/spaces.h | |||
@@ -14,22 +14,17 @@ | |||
14 | * IP27 uses the R10000's uncached attribute feature. Attribute 3 selects | 14 | * IP27 uses the R10000's uncached attribute feature. Attribute 3 selects |
15 | * uncached memory addressing. | 15 | * uncached memory addressing. |
16 | */ | 16 | */ |
17 | #define CAC_BASE 0xa800000000000000 | ||
18 | 17 | ||
19 | #define HSPEC_BASE 0x9000000000000000 | 18 | #define HSPEC_BASE 0x9000000000000000 |
20 | #define IO_BASE 0x9200000000000000 | 19 | #define IO_BASE 0x9200000000000000 |
21 | #define MSPEC_BASE 0x9400000000000000 | 20 | #define MSPEC_BASE 0x9400000000000000 |
22 | #define UNCAC_BASE 0x9600000000000000 | 21 | #define UNCAC_BASE 0x9600000000000000 |
23 | #define MAP_BASE 0xc000000000000000 | ||
24 | 22 | ||
25 | #define TO_PHYS(x) ( ((x) & TO_PHYS_MASK)) | ||
26 | #define TO_CAC(x) (CAC_BASE | ((x) & TO_PHYS_MASK)) | ||
27 | #define TO_UNCAC(x) (UNCAC_BASE | ((x) & TO_PHYS_MASK)) | ||
28 | #define TO_MSPEC(x) (MSPEC_BASE | ((x) & TO_PHYS_MASK)) | 23 | #define TO_MSPEC(x) (MSPEC_BASE | ((x) & TO_PHYS_MASK)) |
29 | #define TO_HSPEC(x) (HSPEC_BASE | ((x) & TO_PHYS_MASK)) | 24 | #define TO_HSPEC(x) (HSPEC_BASE | ((x) & TO_PHYS_MASK)) |
30 | 25 | ||
31 | #define PAGE_OFFSET CAC_BASE | ||
32 | |||
33 | #define HIGHMEM_START (~0UL) | 26 | #define HIGHMEM_START (~0UL) |
34 | 27 | ||
28 | #include <asm/mach-generic/spaces.h> | ||
29 | |||
35 | #endif /* _ASM_MACH_IP27_SPACES_H */ | 30 | #endif /* _ASM_MACH_IP27_SPACES_H */ |
diff --git a/include/asm-mips/mach-ip32/spaces.h b/include/asm-mips/mach-ip32/spaces.h deleted file mode 100644 index 44abe5c02389..000000000000 --- a/include/asm-mips/mach-ip32/spaces.h +++ /dev/null | |||
@@ -1,36 +0,0 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 1994 - 1999, 2000, 03, 04, 05 Ralf Baechle (ralf@linux-mips.org) | ||
7 | * Copyright (C) 2000, 2002 Maciej W. Rozycki | ||
8 | * Copyright (C) 1990, 1999, 2000 Silicon Graphics, Inc. | ||
9 | */ | ||
10 | #ifndef _ASM_MACH_IP32_SPACES_H | ||
11 | #define _ASM_MACH_IP32_SPACES_H | ||
12 | |||
13 | /* | ||
14 | * Memory above this physical address will be considered highmem. | ||
15 | * Fixme: 59 bits is a fictive number and makes assumptions about processors | ||
16 | * in the distant future. Nobody will care for a few years :-) | ||
17 | */ | ||
18 | #ifndef HIGHMEM_START | ||
19 | #define HIGHMEM_START (1UL << 59UL) | ||
20 | #endif | ||
21 | |||
22 | #define CAC_BASE 0x9800000000000000UL | ||
23 | #define IO_BASE 0x9000000000000000UL | ||
24 | #define UNCAC_BASE 0x9000000000000000UL | ||
25 | #define MAP_BASE 0xc000000000000000UL | ||
26 | |||
27 | #define TO_PHYS(x) ( ((x) & TO_PHYS_MASK)) | ||
28 | #define TO_CAC(x) (CAC_BASE | ((x) & TO_PHYS_MASK)) | ||
29 | #define TO_UNCAC(x) (UNCAC_BASE | ((x) & TO_PHYS_MASK)) | ||
30 | |||
31 | /* | ||
32 | * This handles the memory map. | ||
33 | */ | ||
34 | #define PAGE_OFFSET CAC_BASE | ||
35 | |||
36 | #endif /* __ASM_MACH_IP32_SPACES_H */ | ||
diff --git a/include/asm-mips/mach-jmr3927/ioremap.h b/include/asm-mips/mach-jmr3927/ioremap.h new file mode 100644 index 000000000000..aa131ad7f717 --- /dev/null +++ b/include/asm-mips/mach-jmr3927/ioremap.h | |||
@@ -0,0 +1,38 @@ | |||
1 | /* | ||
2 | * include/asm-mips/mach-jmr3927/ioremap.h | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or | ||
5 | * modify it under the terms of the GNU General Public License | ||
6 | * as published by the Free Software Foundation; either version | ||
7 | * 2 of the License, or (at your option) any later version. | ||
8 | */ | ||
9 | #ifndef __ASM_MACH_JMR3927_IOREMAP_H | ||
10 | #define __ASM_MACH_JMR3927_IOREMAP_H | ||
11 | |||
12 | #include <linux/types.h> | ||
13 | |||
14 | /* | ||
15 | * Allow physical addresses to be fixed up to help peripherals located | ||
16 | * outside the low 32-bit range -- generic pass-through version. | ||
17 | */ | ||
18 | static inline phys_t fixup_bigphys_addr(phys_t phys_addr, phys_t size) | ||
19 | { | ||
20 | return phys_addr; | ||
21 | } | ||
22 | |||
23 | static inline void __iomem *plat_ioremap(phys_t offset, unsigned long size, | ||
24 | unsigned long flags) | ||
25 | { | ||
26 | #define TXX9_DIRECTMAP_BASE 0xff000000ul | ||
27 | if (offset >= TXX9_DIRECTMAP_BASE && | ||
28 | offset < TXX9_DIRECTMAP_BASE + 0xf0000) | ||
29 | return (void __iomem *)offset; | ||
30 | return NULL; | ||
31 | } | ||
32 | |||
33 | static inline int plat_iounmap(const volatile void __iomem *addr) | ||
34 | { | ||
35 | return (unsigned long)addr >= TXX9_DIRECTMAP_BASE; | ||
36 | } | ||
37 | |||
38 | #endif /* __ASM_MACH_JMR3927_IOREMAP_H */ | ||
diff --git a/include/asm-mips/mach-lasat/mach-gt64120.h b/include/asm-mips/mach-lasat/mach-gt64120.h deleted file mode 100644 index 1a9ad45cc135..000000000000 --- a/include/asm-mips/mach-lasat/mach-gt64120.h +++ /dev/null | |||
@@ -1,27 +0,0 @@ | |||
1 | /* | ||
2 | * This is a direct copy of the ev96100.h file, with a global | ||
3 | * search and replace. The numbers are the same. | ||
4 | * | ||
5 | * The reason I'm duplicating this is so that the 64120/96100 | ||
6 | * defines won't be confusing in the source code. | ||
7 | */ | ||
8 | #ifndef _ASM_GT64120_LASAT_GT64120_DEP_H | ||
9 | #define _ASM_GT64120_LASAT_GT64120_DEP_H | ||
10 | |||
11 | /* | ||
12 | * GT64120 config space base address on Lasat 100 | ||
13 | */ | ||
14 | #define GT64120_BASE (KSEG1ADDR(0x14000000)) | ||
15 | |||
16 | /* | ||
17 | * PCI Bus allocation | ||
18 | * | ||
19 | * (Guessing ...) | ||
20 | */ | ||
21 | #define GT_PCI_MEM_BASE 0x12000000UL | ||
22 | #define GT_PCI_MEM_SIZE 0x02000000UL | ||
23 | #define GT_PCI_IO_BASE 0x10000000UL | ||
24 | #define GT_PCI_IO_SIZE 0x02000000UL | ||
25 | #define GT_ISA_IO_BASE PCI_IO_BASE | ||
26 | |||
27 | #endif /* _ASM_GT64120_LASAT_GT64120_DEP_H */ | ||
diff --git a/include/asm-mips/mach-lemote/dma-coherence.h b/include/asm-mips/mach-lemote/dma-coherence.h new file mode 100644 index 000000000000..7e914777ebc4 --- /dev/null +++ b/include/asm-mips/mach-lemote/dma-coherence.h | |||
@@ -0,0 +1,42 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 2006, 07 Ralf Baechle <ralf@linux-mips.org> | ||
7 | * Copyright (C) 2007 Lemote, Inc. & Institute of Computing Technology | ||
8 | * Author: Fuxin Zhang, zhangfx@lemote.com | ||
9 | * | ||
10 | */ | ||
11 | #ifndef __ASM_MACH_LEMOTE_DMA_COHERENCE_H | ||
12 | #define __ASM_MACH_LEMOTE_DMA_COHERENCE_H | ||
13 | |||
14 | struct device; | ||
15 | |||
16 | static inline dma_addr_t plat_map_dma_mem(struct device *dev, void *addr, | ||
17 | size_t size) | ||
18 | { | ||
19 | return virt_to_phys(addr) | 0x80000000; | ||
20 | } | ||
21 | |||
22 | static inline dma_addr_t plat_map_dma_mem_page(struct device *dev, | ||
23 | struct page *page) | ||
24 | { | ||
25 | return page_to_phys(page) | 0x80000000; | ||
26 | } | ||
27 | |||
28 | static inline unsigned long plat_dma_addr_to_phys(dma_addr_t dma_addr) | ||
29 | { | ||
30 | return dma_addr & 0x7fffffff; | ||
31 | } | ||
32 | |||
33 | static inline void plat_unmap_dma_mem(dma_addr_t dma_addr) | ||
34 | { | ||
35 | } | ||
36 | |||
37 | static inline int plat_device_is_coherent(struct device *dev) | ||
38 | { | ||
39 | return 0; | ||
40 | } | ||
41 | |||
42 | #endif /* __ASM_MACH_LEMOTE_DMA_COHERENCE_H */ | ||
diff --git a/include/asm-mips/mach-lemote/mc146818rtc.h b/include/asm-mips/mach-lemote/mc146818rtc.h new file mode 100644 index 000000000000..ed5147e11085 --- /dev/null +++ b/include/asm-mips/mach-lemote/mc146818rtc.h | |||
@@ -0,0 +1,36 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 1998, 2001, 03, 07 by Ralf Baechle (ralf@linux-mips.org) | ||
7 | * | ||
8 | * RTC routines for PC style attached Dallas chip. | ||
9 | */ | ||
10 | #ifndef __ASM_MACH_LEMOTE_MC146818RTC_H | ||
11 | #define __ASM_MACH_LEMOTE_MC146818RTC_H | ||
12 | |||
13 | #include <linux/io.h> | ||
14 | |||
15 | #define RTC_PORT(x) (0x70 + (x)) | ||
16 | #define RTC_IRQ 8 | ||
17 | |||
18 | static inline unsigned char CMOS_READ(unsigned long addr) | ||
19 | { | ||
20 | outb_p(addr, RTC_PORT(0)); | ||
21 | return inb_p(RTC_PORT(1)); | ||
22 | } | ||
23 | |||
24 | static inline void CMOS_WRITE(unsigned char data, unsigned long addr) | ||
25 | { | ||
26 | outb_p(addr, RTC_PORT(0)); | ||
27 | outb_p(data, RTC_PORT(1)); | ||
28 | } | ||
29 | |||
30 | #define RTC_ALWAYS_BCD 0 | ||
31 | |||
32 | #ifndef mc146818_decode_year | ||
33 | #define mc146818_decode_year(year) ((year) < 70 ? (year) + 2000 : (year) + 1970) | ||
34 | #endif | ||
35 | |||
36 | #endif /* __ASM_MACH_LEMOTE_MC146818RTC_H */ | ||
diff --git a/include/asm-mips/mach-mips/kernel-entry-init.h b/include/asm-mips/mach-mips/kernel-entry-init.h new file mode 100644 index 000000000000..0b793e7bf67e --- /dev/null +++ b/include/asm-mips/mach-mips/kernel-entry-init.h | |||
@@ -0,0 +1,52 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Chris Dearman (chris@mips.com) | ||
7 | * Copyright (C) 2007 Mips Technologies, Inc. | ||
8 | */ | ||
9 | #ifndef __ASM_MACH_MIPS_KERNEL_ENTRY_INIT_H | ||
10 | #define __ASM_MACH_MIPS_KERNEL_ENTRY_INIT_H | ||
11 | |||
12 | .macro kernel_entry_setup | ||
13 | #ifdef CONFIG_MIPS_MT_SMTC | ||
14 | mfc0 t0, CP0_CONFIG | ||
15 | bgez t0, 9f | ||
16 | mfc0 t0, CP0_CONFIG, 1 | ||
17 | bgez t0, 9f | ||
18 | mfc0 t0, CP0_CONFIG, 2 | ||
19 | bgez t0, 9f | ||
20 | mfc0 t0, CP0_CONFIG, 3 | ||
21 | and t0, 1<<2 | ||
22 | bnez t0, 0f | ||
23 | 9: | ||
24 | /* Assume we came from YAMON... */ | ||
25 | PTR_LA v0, 0x9fc00534 /* YAMON print */ | ||
26 | lw v0, (v0) | ||
27 | move a0, zero | ||
28 | PTR_LA a1, nonmt_processor | ||
29 | jal v0 | ||
30 | |||
31 | PTR_LA v0, 0x9fc00520 /* YAMON exit */ | ||
32 | lw v0, (v0) | ||
33 | li a0, 1 | ||
34 | jal v0 | ||
35 | |||
36 | 1: b 1b | ||
37 | |||
38 | __INITDATA | ||
39 | nonmt_processor: | ||
40 | .asciz "SMTC kernel requires the MT ASE to run\n" | ||
41 | __FINIT | ||
42 | 0: | ||
43 | #endif | ||
44 | .endm | ||
45 | |||
46 | /* | ||
47 | * Do SMP slave processor setup necessary before we can safely execute C code. | ||
48 | */ | ||
49 | .macro smp_slave_setup | ||
50 | .endm | ||
51 | |||
52 | #endif /* __ASM_MACH_MIPS_KERNEL_ENTRY_INIT_H */ | ||
diff --git a/include/asm-mips/mach-sim/cpu-feature-overrides.h b/include/asm-mips/mach-mipssim/cpu-feature-overrides.h index 779b02205737..779b02205737 100644 --- a/include/asm-mips/mach-sim/cpu-feature-overrides.h +++ b/include/asm-mips/mach-mipssim/cpu-feature-overrides.h | |||
diff --git a/include/asm-mips/mach-ocelot3/cpu-feature-overrides.h b/include/asm-mips/mach-ocelot3/cpu-feature-overrides.h deleted file mode 100644 index 57a12ded0613..000000000000 --- a/include/asm-mips/mach-ocelot3/cpu-feature-overrides.h +++ /dev/null | |||
@@ -1,48 +0,0 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 2004 MontaVista Software Inc. | ||
7 | * Author: Manish Lachwani, mlachwani@mvista.com | ||
8 | * Copyright (C) 2004 Ralf Baechle | ||
9 | */ | ||
10 | #ifndef __ASM_MACH_JA_CPU_FEATURE_OVERRIDES_H | ||
11 | #define __ASM_MACH_JA_CPU_FEATURE_OVERRIDES_H | ||
12 | |||
13 | /* | ||
14 | * Momentum Ocelot-3 is based on Rm7900 processor which | ||
15 | * is based on the E9000 core. | ||
16 | */ | ||
17 | #define cpu_has_watch 1 | ||
18 | #define cpu_has_mips16 0 | ||
19 | #define cpu_has_divec 0 | ||
20 | #define cpu_has_vce 0 | ||
21 | #define cpu_has_cache_cdex_p 0 | ||
22 | #define cpu_has_cache_cdex_s 0 | ||
23 | #define cpu_has_prefetch 1 | ||
24 | #define cpu_has_mcheck 0 | ||
25 | #define cpu_has_ejtag 0 | ||
26 | |||
27 | #define cpu_has_llsc 1 | ||
28 | #define cpu_has_vtag_icache 0 | ||
29 | #define cpu_has_dc_aliases 0 | ||
30 | #define cpu_has_ic_fills_f_dc 0 | ||
31 | #define cpu_has_dsp 0 | ||
32 | #define cpu_icache_snoops_remote_store 0 | ||
33 | |||
34 | #define cpu_has_nofpuex 0 | ||
35 | #define cpu_has_64bits 1 | ||
36 | |||
37 | #define cpu_has_inclusive_pcaches 0 | ||
38 | |||
39 | #define cpu_dcache_line_size() 32 | ||
40 | #define cpu_icache_line_size() 32 | ||
41 | #define cpu_scache_line_size() 32 | ||
42 | |||
43 | #define cpu_has_mips32r1 0 | ||
44 | #define cpu_has_mips32r2 0 | ||
45 | #define cpu_has_mips64r1 0 | ||
46 | #define cpu_has_mips64r2 0 | ||
47 | |||
48 | #endif /* __ASM_MACH_JA_CPU_FEATURE_OVERRIDES_H */ | ||
diff --git a/include/asm-mips/mach-tx49xx/ioremap.h b/include/asm-mips/mach-tx49xx/ioremap.h new file mode 100644 index 000000000000..88cf546719b8 --- /dev/null +++ b/include/asm-mips/mach-tx49xx/ioremap.h | |||
@@ -0,0 +1,42 @@ | |||
1 | /* | ||
2 | * include/asm-mips/mach-tx49xx/ioremap.h | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or | ||
5 | * modify it under the terms of the GNU General Public License | ||
6 | * as published by the Free Software Foundation; either version | ||
7 | * 2 of the License, or (at your option) any later version. | ||
8 | */ | ||
9 | #ifndef __ASM_MACH_TX49XX_IOREMAP_H | ||
10 | #define __ASM_MACH_TX49XX_IOREMAP_H | ||
11 | |||
12 | #include <linux/types.h> | ||
13 | |||
14 | /* | ||
15 | * Allow physical addresses to be fixed up to help peripherals located | ||
16 | * outside the low 32-bit range -- generic pass-through version. | ||
17 | */ | ||
18 | static inline phys_t fixup_bigphys_addr(phys_t phys_addr, phys_t size) | ||
19 | { | ||
20 | return phys_addr; | ||
21 | } | ||
22 | |||
23 | static inline void __iomem *plat_ioremap(phys_t offset, unsigned long size, | ||
24 | unsigned long flags) | ||
25 | { | ||
26 | #ifdef CONFIG_64BIT | ||
27 | #define TXX9_DIRECTMAP_BASE 0xfff000000ul | ||
28 | #else | ||
29 | #define TXX9_DIRECTMAP_BASE 0xff000000ul | ||
30 | #endif | ||
31 | if (offset >= TXX9_DIRECTMAP_BASE && | ||
32 | offset < TXX9_DIRECTMAP_BASE + 0x400000) | ||
33 | return (void __iomem *)(unsigned long)(int)offset; | ||
34 | return NULL; | ||
35 | } | ||
36 | |||
37 | static inline int plat_iounmap(const volatile void __iomem *addr) | ||
38 | { | ||
39 | return (unsigned long)addr >= (unsigned long)(int)TXX9_DIRECTMAP_BASE; | ||
40 | } | ||
41 | |||
42 | #endif /* __ASM_MACH_TX49XX_IOREMAP_H */ | ||
diff --git a/include/asm-mips/mips-boards/bonito64.h b/include/asm-mips/mips-boards/bonito64.h index cd7125610100..dc3fc32eedd8 100644 --- a/include/asm-mips/mips-boards/bonito64.h +++ b/include/asm-mips/mips-boards/bonito64.h | |||
@@ -26,7 +26,12 @@ | |||
26 | /* offsets from base register */ | 26 | /* offsets from base register */ |
27 | #define BONITO(x) (x) | 27 | #define BONITO(x) (x) |
28 | 28 | ||
29 | #else /* !__ASSEMBLY__ */ | 29 | #elif defined(CONFIG_LEMOTE_FULONG) |
30 | |||
31 | #define BONITO(x) (*(volatile u32 *)((char *)CKSEG1ADDR(BONITO_REG_BASE) + (x))) | ||
32 | #define BONITO_IRQ_BASE 32 | ||
33 | |||
34 | #else | ||
30 | 35 | ||
31 | /* | 36 | /* |
32 | * Algorithmics Bonito64 system controller register base. | 37 | * Algorithmics Bonito64 system controller register base. |
diff --git a/include/asm-mips/mipsregs.h b/include/asm-mips/mipsregs.h index 89c81922d47c..706b3691f57e 100644 --- a/include/asm-mips/mipsregs.h +++ b/include/asm-mips/mipsregs.h | |||
@@ -7,7 +7,7 @@ | |||
7 | * Copyright (C) 2000 Silicon Graphics, Inc. | 7 | * Copyright (C) 2000 Silicon Graphics, Inc. |
8 | * Modified for further R[236]000 support by Paul M. Antoine, 1996. | 8 | * Modified for further R[236]000 support by Paul M. Antoine, 1996. |
9 | * Kevin D. Kissell, kevink@mips.com and Carsten Langgaard, carstenl@mips.com | 9 | * Kevin D. Kissell, kevink@mips.com and Carsten Langgaard, carstenl@mips.com |
10 | * Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved. | 10 | * Copyright (C) 2000, 07 MIPS Technologies, Inc. |
11 | * Copyright (C) 2003, 2004 Maciej W. Rozycki | 11 | * Copyright (C) 2003, 2004 Maciej W. Rozycki |
12 | */ | 12 | */ |
13 | #ifndef _ASM_MIPSREGS_H | 13 | #ifndef _ASM_MIPSREGS_H |
@@ -15,6 +15,7 @@ | |||
15 | 15 | ||
16 | #include <linux/linkage.h> | 16 | #include <linux/linkage.h> |
17 | #include <asm/hazards.h> | 17 | #include <asm/hazards.h> |
18 | #include <asm/war.h> | ||
18 | 19 | ||
19 | /* | 20 | /* |
20 | * The following macros are especially useful for __asm__ | 21 | * The following macros are especially useful for __asm__ |
@@ -533,9 +534,13 @@ | |||
533 | #define MIPS_CONF3_VEIC (_ULCAST_(1) << 6) | 534 | #define MIPS_CONF3_VEIC (_ULCAST_(1) << 6) |
534 | #define MIPS_CONF3_LPA (_ULCAST_(1) << 7) | 535 | #define MIPS_CONF3_LPA (_ULCAST_(1) << 7) |
535 | #define MIPS_CONF3_DSP (_ULCAST_(1) << 10) | 536 | #define MIPS_CONF3_DSP (_ULCAST_(1) << 10) |
537 | #define MIPS_CONF3_ULRI (_ULCAST_(1) << 13) | ||
536 | 538 | ||
537 | #define MIPS_CONF7_WII (_ULCAST_(1) << 31) | 539 | #define MIPS_CONF7_WII (_ULCAST_(1) << 31) |
538 | 540 | ||
541 | #define MIPS_CONF7_RPS (_ULCAST_(1) << 2) | ||
542 | |||
543 | |||
539 | /* | 544 | /* |
540 | * Bits in the MIPS32/64 coprocessor 1 (FPU) revision register. | 545 | * Bits in the MIPS32/64 coprocessor 1 (FPU) revision register. |
541 | */ | 546 | */ |
@@ -772,6 +777,9 @@ do { \ | |||
772 | #define read_c0_context() __read_ulong_c0_register($4, 0) | 777 | #define read_c0_context() __read_ulong_c0_register($4, 0) |
773 | #define write_c0_context(val) __write_ulong_c0_register($4, 0, val) | 778 | #define write_c0_context(val) __write_ulong_c0_register($4, 0, val) |
774 | 779 | ||
780 | #define read_c0_userlocal() __read_ulong_c0_register($4, 2) | ||
781 | #define write_c0_userlocal(val) __write_ulong_c0_register($4, 2, val) | ||
782 | |||
775 | #define read_c0_pagemask() __read_32bit_c0_register($5, 0) | 783 | #define read_c0_pagemask() __read_32bit_c0_register($5, 0) |
776 | #define write_c0_pagemask(val) __write_32bit_c0_register($5, 0, val) | 784 | #define write_c0_pagemask(val) __write_32bit_c0_register($5, 0, val) |
777 | 785 | ||
@@ -1294,10 +1302,39 @@ static inline void tlb_probe(void) | |||
1294 | 1302 | ||
1295 | static inline void tlb_read(void) | 1303 | static inline void tlb_read(void) |
1296 | { | 1304 | { |
1305 | #if MIPS34K_MISSED_ITLB_WAR | ||
1306 | int res = 0; | ||
1307 | |||
1308 | __asm__ __volatile__( | ||
1309 | " .set push \n" | ||
1310 | " .set noreorder \n" | ||
1311 | " .set noat \n" | ||
1312 | " .set mips32r2 \n" | ||
1313 | " .word 0x41610001 # dvpe $1 \n" | ||
1314 | " move %0, $1 \n" | ||
1315 | " ehb \n" | ||
1316 | " .set pop \n" | ||
1317 | : "=r" (res)); | ||
1318 | |||
1319 | instruction_hazard(); | ||
1320 | #endif | ||
1321 | |||
1297 | __asm__ __volatile__( | 1322 | __asm__ __volatile__( |
1298 | ".set noreorder\n\t" | 1323 | ".set noreorder\n\t" |
1299 | "tlbr\n\t" | 1324 | "tlbr\n\t" |
1300 | ".set reorder"); | 1325 | ".set reorder"); |
1326 | |||
1327 | #if MIPS34K_MISSED_ITLB_WAR | ||
1328 | if ((res & _ULCAST_(1))) | ||
1329 | __asm__ __volatile__( | ||
1330 | " .set push \n" | ||
1331 | " .set noreorder \n" | ||
1332 | " .set noat \n" | ||
1333 | " .set mips32r2 \n" | ||
1334 | " .word 0x41600021 # evpe \n" | ||
1335 | " ehb \n" | ||
1336 | " .set pop \n"); | ||
1337 | #endif | ||
1301 | } | 1338 | } |
1302 | 1339 | ||
1303 | static inline void tlb_write_indexed(void) | 1340 | static inline void tlb_write_indexed(void) |
diff --git a/include/asm-mips/module.h b/include/asm-mips/module.h index c5ef324fd69f..de6d09ebbd80 100644 --- a/include/asm-mips/module.h +++ b/include/asm-mips/module.h | |||
@@ -112,6 +112,8 @@ search_module_dbetables(unsigned long addr) | |||
112 | #define MODULE_PROC_FAMILY "RM9000 " | 112 | #define MODULE_PROC_FAMILY "RM9000 " |
113 | #elif defined CONFIG_CPU_SB1 | 113 | #elif defined CONFIG_CPU_SB1 |
114 | #define MODULE_PROC_FAMILY "SB1 " | 114 | #define MODULE_PROC_FAMILY "SB1 " |
115 | #elif defined CONFIG_CPU_LOONGSON2 | ||
116 | #define MODULE_PROC_FAMILY "LOONGSON2 " | ||
115 | #else | 117 | #else |
116 | #error MODULE_PROC_FAMILY undefined for your processor configuration | 118 | #error MODULE_PROC_FAMILY undefined for your processor configuration |
117 | #endif | 119 | #endif |
diff --git a/include/asm-mips/nile4.h b/include/asm-mips/nile4.h deleted file mode 100644 index c3ca959aa4d9..000000000000 --- a/include/asm-mips/nile4.h +++ /dev/null | |||
@@ -1,310 +0,0 @@ | |||
1 | /* | ||
2 | * asm-mips/nile4.h -- NEC Vrc-5074 Nile 4 definitions | ||
3 | * | ||
4 | * Copyright (C) 2000 Geert Uytterhoeven <geert@sonycom.com> | ||
5 | * Sony Software Development Center Europe (SDCE), Brussels | ||
6 | * | ||
7 | * This file is based on the following documentation: | ||
8 | * | ||
9 | * NEC Vrc 5074 System Controller Data Sheet, June 1998 | ||
10 | */ | ||
11 | |||
12 | #ifndef _ASM_NILE4_H | ||
13 | #define _ASM_NILE4_H | ||
14 | |||
15 | #define NILE4_BASE 0xbfa00000 | ||
16 | #define NILE4_SIZE 0x00200000 /* 2 MB */ | ||
17 | |||
18 | |||
19 | /* | ||
20 | * Physical Device Address Registers (PDARs) | ||
21 | */ | ||
22 | |||
23 | #define NILE4_SDRAM0 0x0000 /* SDRAM Bank 0 [R/W] */ | ||
24 | #define NILE4_SDRAM1 0x0008 /* SDRAM Bank 1 [R/W] */ | ||
25 | #define NILE4_DCS2 0x0010 /* Device Chip-Select 2 [R/W] */ | ||
26 | #define NILE4_DCS3 0x0018 /* Device Chip-Select 3 [R/W] */ | ||
27 | #define NILE4_DCS4 0x0020 /* Device Chip-Select 4 [R/W] */ | ||
28 | #define NILE4_DCS5 0x0028 /* Device Chip-Select 5 [R/W] */ | ||
29 | #define NILE4_DCS6 0x0030 /* Device Chip-Select 6 [R/W] */ | ||
30 | #define NILE4_DCS7 0x0038 /* Device Chip-Select 7 [R/W] */ | ||
31 | #define NILE4_DCS8 0x0040 /* Device Chip-Select 8 [R/W] */ | ||
32 | #define NILE4_PCIW0 0x0060 /* PCI Address Window 0 [R/W] */ | ||
33 | #define NILE4_PCIW1 0x0068 /* PCI Address Window 1 [R/W] */ | ||
34 | #define NILE4_INTCS 0x0070 /* Controller Internal Registers and Devices */ | ||
35 | /* [R/W] */ | ||
36 | #define NILE4_BOOTCS 0x0078 /* Boot ROM Chip-Select [R/W] */ | ||
37 | |||
38 | |||
39 | /* | ||
40 | * CPU Interface Registers | ||
41 | */ | ||
42 | |||
43 | #define NILE4_CPUSTAT 0x0080 /* CPU Status [R/W] */ | ||
44 | #define NILE4_INTCTRL 0x0088 /* Interrupt Control [R/W] */ | ||
45 | #define NILE4_INTSTAT0 0x0090 /* Interrupt Status 0 [R] */ | ||
46 | #define NILE4_INTSTAT1 0x0098 /* Interrupt Status 1 and CPU Interrupt */ | ||
47 | /* Enable [R/W] */ | ||
48 | #define NILE4_INTCLR 0x00A0 /* Interrupt Clear [R/W] */ | ||
49 | #define NILE4_INTPPES 0x00A8 /* PCI Interrupt Control [R/W] */ | ||
50 | |||
51 | |||
52 | /* | ||
53 | * Memory-Interface Registers | ||
54 | */ | ||
55 | |||
56 | #define NILE4_MEMCTRL 0x00C0 /* Memory Control */ | ||
57 | #define NILE4_ACSTIME 0x00C8 /* Memory Access Timing [R/W] */ | ||
58 | #define NILE4_CHKERR 0x00D0 /* Memory Check Error Status [R] */ | ||
59 | |||
60 | |||
61 | /* | ||
62 | * PCI-Bus Registers | ||
63 | */ | ||
64 | |||
65 | #define NILE4_PCICTRL 0x00E0 /* PCI Control [R/W] */ | ||
66 | #define NILE4_PCIARB 0x00E8 /* PCI Arbiter [R/W] */ | ||
67 | #define NILE4_PCIINIT0 0x00F0 /* PCI Master (Initiator) 0 [R/W] */ | ||
68 | #define NILE4_PCIINIT1 0x00F8 /* PCI Master (Initiator) 1 [R/W] */ | ||
69 | #define NILE4_PCIERR 0x00B8 /* PCI Error [R/W] */ | ||
70 | |||
71 | |||
72 | /* | ||
73 | * Local-Bus Registers | ||
74 | */ | ||
75 | |||
76 | #define NILE4_LCNFG 0x0100 /* Local Bus Configuration [R/W] */ | ||
77 | #define NILE4_LCST2 0x0110 /* Local Bus Chip-Select Timing 2 [R/W] */ | ||
78 | #define NILE4_LCST3 0x0118 /* Local Bus Chip-Select Timing 3 [R/W] */ | ||
79 | #define NILE4_LCST4 0x0120 /* Local Bus Chip-Select Timing 4 [R/W] */ | ||
80 | #define NILE4_LCST5 0x0128 /* Local Bus Chip-Select Timing 5 [R/W] */ | ||
81 | #define NILE4_LCST6 0x0130 /* Local Bus Chip-Select Timing 6 [R/W] */ | ||
82 | #define NILE4_LCST7 0x0138 /* Local Bus Chip-Select Timing 7 [R/W] */ | ||
83 | #define NILE4_LCST8 0x0140 /* Local Bus Chip-Select Timing 8 [R/W] */ | ||
84 | #define NILE4_DCSFN 0x0150 /* Device Chip-Select Muxing and Output */ | ||
85 | /* Enables [R/W] */ | ||
86 | #define NILE4_DCSIO 0x0158 /* Device Chip-Selects As I/O Bits [R/W] */ | ||
87 | #define NILE4_BCST 0x0178 /* Local Boot Chip-Select Timing [R/W] */ | ||
88 | |||
89 | |||
90 | /* | ||
91 | * DMA Registers | ||
92 | */ | ||
93 | |||
94 | #define NILE4_DMACTRL0 0x0180 /* DMA Control 0 [R/W] */ | ||
95 | #define NILE4_DMASRCA0 0x0188 /* DMA Source Address 0 [R/W] */ | ||
96 | #define NILE4_DMADESA0 0x0190 /* DMA Destination Address 0 [R/W] */ | ||
97 | #define NILE4_DMACTRL1 0x0198 /* DMA Control 1 [R/W] */ | ||
98 | #define NILE4_DMASRCA1 0x01A0 /* DMA Source Address 1 [R/W] */ | ||
99 | #define NILE4_DMADESA1 0x01A8 /* DMA Destination Address 1 [R/W] */ | ||
100 | |||
101 | |||
102 | /* | ||
103 | * Timer Registers | ||
104 | */ | ||
105 | |||
106 | #define NILE4_T0CTRL 0x01C0 /* SDRAM Refresh Control [R/W] */ | ||
107 | #define NILE4_T0CNTR 0x01C8 /* SDRAM Refresh Counter [R/W] */ | ||
108 | #define NILE4_T1CTRL 0x01D0 /* CPU-Bus Read Time-Out Control [R/W] */ | ||
109 | #define NILE4_T1CNTR 0x01D8 /* CPU-Bus Read Time-Out Counter [R/W] */ | ||
110 | #define NILE4_T2CTRL 0x01E0 /* General-Purpose Timer Control [R/W] */ | ||
111 | #define NILE4_T2CNTR 0x01E8 /* General-Purpose Timer Counter [R/W] */ | ||
112 | #define NILE4_T3CTRL 0x01F0 /* Watchdog Timer Control [R/W] */ | ||
113 | #define NILE4_T3CNTR 0x01F8 /* Watchdog Timer Counter [R/W] */ | ||
114 | |||
115 | |||
116 | /* | ||
117 | * PCI Configuration Space Registers | ||
118 | */ | ||
119 | |||
120 | #define NILE4_PCI_BASE 0x0200 | ||
121 | |||
122 | #define NILE4_VID 0x0200 /* PCI Vendor ID [R] */ | ||
123 | #define NILE4_DID 0x0202 /* PCI Device ID [R] */ | ||
124 | #define NILE4_PCICMD 0x0204 /* PCI Command [R/W] */ | ||
125 | #define NILE4_PCISTS 0x0206 /* PCI Status [R/W] */ | ||
126 | #define NILE4_REVID 0x0208 /* PCI Revision ID [R] */ | ||
127 | #define NILE4_CLASS 0x0209 /* PCI Class Code [R] */ | ||
128 | #define NILE4_CLSIZ 0x020C /* PCI Cache Line Size [R/W] */ | ||
129 | #define NILE4_MLTIM 0x020D /* PCI Latency Timer [R/W] */ | ||
130 | #define NILE4_HTYPE 0x020E /* PCI Header Type [R] */ | ||
131 | #define NILE4_BIST 0x020F /* BIST [R] (unimplemented) */ | ||
132 | #define NILE4_BARC 0x0210 /* PCI Base Address Register Control [R/W] */ | ||
133 | #define NILE4_BAR0 0x0218 /* PCI Base Address Register 0 [R/W] */ | ||
134 | #define NILE4_BAR1 0x0220 /* PCI Base Address Register 1 [R/W] */ | ||
135 | #define NILE4_CIS 0x0228 /* PCI Cardbus CIS Pointer [R] */ | ||
136 | /* (unimplemented) */ | ||
137 | #define NILE4_SSVID 0x022C /* PCI Sub-System Vendor ID [R/W] */ | ||
138 | #define NILE4_SSID 0x022E /* PCI Sub-System ID [R/W] */ | ||
139 | #define NILE4_ROM 0x0230 /* Expansion ROM Base Address [R] */ | ||
140 | /* (unimplemented) */ | ||
141 | #define NILE4_INTLIN 0x023C /* PCI Interrupt Line [R/W] */ | ||
142 | #define NILE4_INTPIN 0x023D /* PCI Interrupt Pin [R] */ | ||
143 | #define NILE4_MINGNT 0x023E /* PCI Min_Gnt [R] (unimplemented) */ | ||
144 | #define NILE4_MAXLAT 0x023F /* PCI Max_Lat [R] (unimplemented) */ | ||
145 | #define NILE4_BAR2 0x0240 /* PCI Base Address Register 2 [R/W] */ | ||
146 | #define NILE4_BAR3 0x0248 /* PCI Base Address Register 3 [R/W] */ | ||
147 | #define NILE4_BAR4 0x0250 /* PCI Base Address Register 4 [R/W] */ | ||
148 | #define NILE4_BAR5 0x0258 /* PCI Base Address Register 5 [R/W] */ | ||
149 | #define NILE4_BAR6 0x0260 /* PCI Base Address Register 6 [R/W] */ | ||
150 | #define NILE4_BAR7 0x0268 /* PCI Base Address Register 7 [R/W] */ | ||
151 | #define NILE4_BAR8 0x0270 /* PCI Base Address Register 8 [R/W] */ | ||
152 | #define NILE4_BARB 0x0278 /* PCI Base Address Register BOOT [R/W] */ | ||
153 | |||
154 | |||
155 | /* | ||
156 | * Serial-Port Registers | ||
157 | */ | ||
158 | |||
159 | #define NILE4_UART_BASE 0x0300 | ||
160 | |||
161 | #define NILE4_UARTRBR 0x0300 /* UART Receiver Data Buffer [R] */ | ||
162 | #define NILE4_UARTTHR 0x0300 /* UART Transmitter Data Holding [W] */ | ||
163 | #define NILE4_UARTIER 0x0308 /* UART Interrupt Enable [R/W] */ | ||
164 | #define NILE4_UARTDLL 0x0300 /* UART Divisor Latch LSB [R/W] */ | ||
165 | #define NILE4_UARTDLM 0x0308 /* UART Divisor Latch MSB [R/W] */ | ||
166 | #define NILE4_UARTIIR 0x0310 /* UART Interrupt ID [R] */ | ||
167 | #define NILE4_UARTFCR 0x0310 /* UART FIFO Control [W] */ | ||
168 | #define NILE4_UARTLCR 0x0318 /* UART Line Control [R/W] */ | ||
169 | #define NILE4_UARTMCR 0x0320 /* UART Modem Control [R/W] */ | ||
170 | #define NILE4_UARTLSR 0x0328 /* UART Line Status [R/W] */ | ||
171 | #define NILE4_UARTMSR 0x0330 /* UART Modem Status [R/W] */ | ||
172 | #define NILE4_UARTSCR 0x0338 /* UART Scratch [R/W] */ | ||
173 | |||
174 | #define NILE4_UART_BASE_BAUD 520833 /* 100 MHz / 12 / 16 */ | ||
175 | |||
176 | |||
177 | /* | ||
178 | * Interrupt Lines | ||
179 | */ | ||
180 | |||
181 | #define NILE4_INT_CPCE 0 /* CPU-Interface Parity-Error Interrupt */ | ||
182 | #define NILE4_INT_CNTD 1 /* CPU No-Target Decode Interrupt */ | ||
183 | #define NILE4_INT_MCE 2 /* Memory-Check Error Interrupt */ | ||
184 | #define NILE4_INT_DMA 3 /* DMA Controller Interrupt */ | ||
185 | #define NILE4_INT_UART 4 /* UART Interrupt */ | ||
186 | #define NILE4_INT_WDOG 5 /* Watchdog Timer Interrupt */ | ||
187 | #define NILE4_INT_GPT 6 /* General-Purpose Timer Interrupt */ | ||
188 | #define NILE4_INT_LBRTD 7 /* Local-Bus Ready Timer Interrupt */ | ||
189 | #define NILE4_INT_INTA 8 /* PCI Interrupt Signal INTA# */ | ||
190 | #define NILE4_INT_INTB 9 /* PCI Interrupt Signal INTB# */ | ||
191 | #define NILE4_INT_INTC 10 /* PCI Interrupt Signal INTC# */ | ||
192 | #define NILE4_INT_INTD 11 /* PCI Interrupt Signal INTD# */ | ||
193 | #define NILE4_INT_INTE 12 /* PCI Interrupt Signal INTE# (ISA cascade) */ | ||
194 | #define NILE4_INT_RESV 13 /* Reserved */ | ||
195 | #define NILE4_INT_PCIS 14 /* PCI SERR# Interrupt */ | ||
196 | #define NILE4_INT_PCIE 15 /* PCI Internal Error Interrupt */ | ||
197 | |||
198 | |||
199 | /* | ||
200 | * Nile 4 Register Access | ||
201 | */ | ||
202 | |||
203 | static inline void nile4_sync(void) | ||
204 | { | ||
205 | volatile u32 *p = (volatile u32 *)0xbfc00000; | ||
206 | (void)(*p); | ||
207 | } | ||
208 | |||
209 | static inline void nile4_out32(u32 offset, u32 val) | ||
210 | { | ||
211 | *(volatile u32 *)(NILE4_BASE+offset) = val; | ||
212 | nile4_sync(); | ||
213 | } | ||
214 | |||
215 | static inline u32 nile4_in32(u32 offset) | ||
216 | { | ||
217 | u32 val = *(volatile u32 *)(NILE4_BASE+offset); | ||
218 | nile4_sync(); | ||
219 | return val; | ||
220 | } | ||
221 | |||
222 | static inline void nile4_out16(u32 offset, u16 val) | ||
223 | { | ||
224 | *(volatile u16 *)(NILE4_BASE+offset) = val; | ||
225 | nile4_sync(); | ||
226 | } | ||
227 | |||
228 | static inline u16 nile4_in16(u32 offset) | ||
229 | { | ||
230 | u16 val = *(volatile u16 *)(NILE4_BASE+offset); | ||
231 | nile4_sync(); | ||
232 | return val; | ||
233 | } | ||
234 | |||
235 | static inline void nile4_out8(u32 offset, u8 val) | ||
236 | { | ||
237 | *(volatile u8 *)(NILE4_BASE+offset) = val; | ||
238 | nile4_sync(); | ||
239 | } | ||
240 | |||
241 | static inline u8 nile4_in8(u32 offset) | ||
242 | { | ||
243 | u8 val = *(volatile u8 *)(NILE4_BASE+offset); | ||
244 | nile4_sync(); | ||
245 | return val; | ||
246 | } | ||
247 | |||
248 | |||
249 | /* | ||
250 | * Physical Device Address Registers | ||
251 | */ | ||
252 | |||
253 | extern void nile4_set_pdar(u32 pdar, u32 phys, u32 size, int width, | ||
254 | int on_memory_bus, int visible); | ||
255 | |||
256 | |||
257 | /* | ||
258 | * PCI Master Registers | ||
259 | */ | ||
260 | |||
261 | #define NILE4_PCICMD_IACK 0 /* PCI Interrupt Acknowledge */ | ||
262 | #define NILE4_PCICMD_IO 1 /* PCI I/O Space */ | ||
263 | #define NILE4_PCICMD_MEM 3 /* PCI Memory Space */ | ||
264 | #define NILE4_PCICMD_CFG 5 /* PCI Configuration Space */ | ||
265 | |||
266 | |||
267 | /* | ||
268 | * PCI Address Spaces | ||
269 | * | ||
270 | * Note that these are multiplexed using PCIINIT[01]! | ||
271 | */ | ||
272 | |||
273 | #define NILE4_PCI_IO_BASE 0xa6000000 | ||
274 | #define NILE4_PCI_MEM_BASE 0xa8000000 | ||
275 | #define NILE4_PCI_CFG_BASE NILE4_PCI_MEM_BASE | ||
276 | #define NILE4_PCI_IACK_BASE NILE4_PCI_IO_BASE | ||
277 | |||
278 | |||
279 | extern void nile4_set_pmr(u32 pmr, u32 type, u32 addr); | ||
280 | |||
281 | |||
282 | /* | ||
283 | * Interrupt Programming | ||
284 | */ | ||
285 | |||
286 | #define NUM_I8259_INTERRUPTS 16 | ||
287 | #define NUM_NILE4_INTERRUPTS 16 | ||
288 | |||
289 | #define IRQ_I8259_CASCADE NILE4_INT_INTE | ||
290 | #define is_i8259_irq(irq) ((irq) < NUM_I8259_INTERRUPTS) | ||
291 | #define nile4_to_irq(n) ((n)+NUM_I8259_INTERRUPTS) | ||
292 | #define irq_to_nile4(n) ((n)-NUM_I8259_INTERRUPTS) | ||
293 | |||
294 | extern void nile4_map_irq(int nile4_irq, int cpu_irq); | ||
295 | extern void nile4_map_irq_all(int cpu_irq); | ||
296 | extern void nile4_enable_irq(unsigned int nile4_irq); | ||
297 | extern void nile4_disable_irq(unsigned int nile4_irq); | ||
298 | extern void nile4_disable_irq_all(void); | ||
299 | extern u16 nile4_get_irq_stat(int cpu_irq); | ||
300 | extern void nile4_enable_irq_output(int cpu_irq); | ||
301 | extern void nile4_disable_irq_output(int cpu_irq); | ||
302 | extern void nile4_set_pci_irq_polarity(int pci_irq, int high); | ||
303 | extern void nile4_set_pci_irq_level_or_edge(int pci_irq, int level); | ||
304 | extern void nile4_clear_irq(int nile4_irq); | ||
305 | extern void nile4_clear_irq_mask(u32 mask); | ||
306 | extern u8 nile4_i8259_iack(void); | ||
307 | extern void nile4_dump_irq_status(void); /* Debug */ | ||
308 | |||
309 | #endif | ||
310 | |||
diff --git a/include/asm-mips/page.h b/include/asm-mips/page.h index 5c3239dad0f2..b92dd8c760da 100644 --- a/include/asm-mips/page.h +++ b/include/asm-mips/page.h | |||
@@ -34,12 +34,8 @@ | |||
34 | 34 | ||
35 | #ifndef __ASSEMBLY__ | 35 | #ifndef __ASSEMBLY__ |
36 | 36 | ||
37 | /* | 37 | #include <linux/pfn.h> |
38 | * This gives the physical RAM offset. | 38 | #include <asm/io.h> |
39 | */ | ||
40 | #ifndef PHYS_OFFSET | ||
41 | #define PHYS_OFFSET 0UL | ||
42 | #endif | ||
43 | 39 | ||
44 | /* | 40 | /* |
45 | * It's normally defined only for FLATMEM config but it's | 41 | * It's normally defined only for FLATMEM config but it's |
@@ -48,9 +44,6 @@ | |||
48 | */ | 44 | */ |
49 | #define ARCH_PFN_OFFSET PFN_UP(PHYS_OFFSET) | 45 | #define ARCH_PFN_OFFSET PFN_UP(PHYS_OFFSET) |
50 | 46 | ||
51 | #include <linux/pfn.h> | ||
52 | #include <asm/io.h> | ||
53 | |||
54 | extern void clear_page(void * page); | 47 | extern void clear_page(void * page); |
55 | extern void copy_page(void * to, void * from); | 48 | extern void copy_page(void * to, void * from); |
56 | 49 | ||
@@ -150,11 +143,15 @@ typedef struct { unsigned long pgprot; } pgprot_t; | |||
150 | * __pa()/__va() should be used only during mem init. | 143 | * __pa()/__va() should be used only during mem init. |
151 | */ | 144 | */ |
152 | #if defined(CONFIG_64BIT) && !defined(CONFIG_BUILD_ELF64) | 145 | #if defined(CONFIG_64BIT) && !defined(CONFIG_BUILD_ELF64) |
153 | #define __pa_page_offset(x) ((unsigned long)(x) < CKSEG0 ? PAGE_OFFSET : CKSEG0) | 146 | #define __pa(x) \ |
147 | ({ \ | ||
148 | unsigned long __x = (unsigned long)(x); \ | ||
149 | __x < CKSEG0 ? XPHYSADDR(__x) : CPHYSADDR(__x); \ | ||
150 | }) | ||
154 | #else | 151 | #else |
155 | #define __pa_page_offset(x) PAGE_OFFSET | 152 | #define __pa(x) \ |
153 | ((unsigned long)(x) - PAGE_OFFSET + PHYS_OFFSET) | ||
156 | #endif | 154 | #endif |
157 | #define __pa(x) ((unsigned long)(x) - __pa_page_offset(x) + PHYS_OFFSET) | ||
158 | #define __va(x) ((void *)((unsigned long)(x) + PAGE_OFFSET - PHYS_OFFSET)) | 155 | #define __va(x) ((void *)((unsigned long)(x) + PAGE_OFFSET - PHYS_OFFSET)) |
159 | #define __pa_symbol(x) __pa(RELOC_HIDE((unsigned long)(x),0)) | 156 | #define __pa_symbol(x) __pa(RELOC_HIDE((unsigned long)(x),0)) |
160 | 157 | ||
diff --git a/include/asm-mips/pci.h b/include/asm-mips/pci.h index 3eea3ba0fca5..a59d54749eef 100644 --- a/include/asm-mips/pci.h +++ b/include/asm-mips/pci.h | |||
@@ -56,7 +56,7 @@ extern void register_pci_controller(struct pci_controller *hose); | |||
56 | /* | 56 | /* |
57 | * board supplied pci irq fixup routine | 57 | * board supplied pci irq fixup routine |
58 | */ | 58 | */ |
59 | extern int pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin); | 59 | extern int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin); |
60 | 60 | ||
61 | 61 | ||
62 | /* Can be used to override the logic in pci_scan_bus for skipping | 62 | /* Can be used to override the logic in pci_scan_bus for skipping |
diff --git a/include/asm-mips/pmc-sierra/msp71xx/msp_cic_int.h b/include/asm-mips/pmc-sierra/msp71xx/msp_cic_int.h new file mode 100644 index 000000000000..c84bcf9570b1 --- /dev/null +++ b/include/asm-mips/pmc-sierra/msp71xx/msp_cic_int.h | |||
@@ -0,0 +1,151 @@ | |||
1 | /* | ||
2 | * Defines for the MSP interrupt controller. | ||
3 | * | ||
4 | * Copyright (C) 1999 MIPS Technologies, Inc. All rights reserved. | ||
5 | * Author: Carsten Langgaard, carstenl@mips.com | ||
6 | * | ||
7 | * ######################################################################## | ||
8 | * | ||
9 | * This program is free software; you can distribute it and/or modify it | ||
10 | * under the terms of the GNU General Public License (Version 2) as | ||
11 | * published by the Free Software Foundation. | ||
12 | * | ||
13 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
14 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
15 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
16 | * for more details. | ||
17 | * | ||
18 | * You should have received a copy of the GNU General Public License along | ||
19 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
20 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | ||
21 | * | ||
22 | * ######################################################################## | ||
23 | */ | ||
24 | |||
25 | #ifndef _MSP_CIC_INT_H | ||
26 | #define _MSP_CIC_INT_H | ||
27 | |||
28 | /* | ||
29 | * The PMC-Sierra CIC interrupts are all centrally managed by the | ||
30 | * CIC sub-system. | ||
31 | * We attempt to keep the interrupt numbers as consistent as possible | ||
32 | * across all of the MSP devices, but some differences will creep in ... | ||
33 | * The interrupts which are directly forwarded to the MIPS core interrupts | ||
34 | * are assigned interrupts in the range 0-7, interrupts cascaded through | ||
35 | * the CIC are assigned interrupts 8-39. The cascade occurs on C_IRQ4 | ||
36 | * (MSP_INT_CIC). Currently we don't really distinguish between VPE1 | ||
37 | * and VPE0 (or thread contexts for that matter). Will have to fix. | ||
38 | * The PER interrupts are assigned interrupts in the range 40-71. | ||
39 | */ | ||
40 | |||
41 | |||
42 | /* | ||
43 | * IRQs directly forwarded to the CPU | ||
44 | */ | ||
45 | #define MSP_MIPS_INTBASE 0 | ||
46 | #define MSP_INT_SW0 0 /* IRQ for swint0, C_SW0 */ | ||
47 | #define MSP_INT_SW1 1 /* IRQ for swint1, C_SW1 */ | ||
48 | #define MSP_INT_MAC0 2 /* IRQ for MAC 0, C_IRQ0 */ | ||
49 | #define MSP_INT_MAC1 3 /* IRQ for MAC 1, C_IRQ1 */ | ||
50 | #define MSP_INT_USB 4 /* IRQ for USB, C_IRQ2 */ | ||
51 | #define MSP_INT_SAR 5 /* IRQ for ADSL2+ SAR, C_IRQ3 */ | ||
52 | #define MSP_INT_CIC 6 /* IRQ for CIC block, C_IRQ4 */ | ||
53 | #define MSP_INT_SEC 7 /* IRQ for Sec engine, C_IRQ5 */ | ||
54 | |||
55 | /* | ||
56 | * IRQs cascaded on CPU interrupt 4 (CAUSE bit 12, C_IRQ4) | ||
57 | * These defines should be tied to the register definitions for the CIC | ||
58 | * interrupt routine. For now, just use hard-coded values. | ||
59 | */ | ||
60 | #define MSP_CIC_INTBASE (MSP_MIPS_INTBASE + 8) | ||
61 | #define MSP_INT_EXT0 (MSP_CIC_INTBASE + 0) | ||
62 | /* External interrupt 0 */ | ||
63 | #define MSP_INT_EXT1 (MSP_CIC_INTBASE + 1) | ||
64 | /* External interrupt 1 */ | ||
65 | #define MSP_INT_EXT2 (MSP_CIC_INTBASE + 2) | ||
66 | /* External interrupt 2 */ | ||
67 | #define MSP_INT_EXT3 (MSP_CIC_INTBASE + 3) | ||
68 | /* External interrupt 3 */ | ||
69 | #define MSP_INT_CPUIF (MSP_CIC_INTBASE + 4) | ||
70 | /* CPU interface interrupt */ | ||
71 | #define MSP_INT_EXT4 (MSP_CIC_INTBASE + 5) | ||
72 | /* External interrupt 4 */ | ||
73 | #define MSP_INT_CIC_USB (MSP_CIC_INTBASE + 6) | ||
74 | /* Cascaded IRQ for USB */ | ||
75 | #define MSP_INT_MBOX (MSP_CIC_INTBASE + 7) | ||
76 | /* Sec engine mailbox IRQ */ | ||
77 | #define MSP_INT_EXT5 (MSP_CIC_INTBASE + 8) | ||
78 | /* External interrupt 5 */ | ||
79 | #define MSP_INT_TDM (MSP_CIC_INTBASE + 9) | ||
80 | /* TDM interrupt */ | ||
81 | #define MSP_INT_CIC_MAC0 (MSP_CIC_INTBASE + 10) | ||
82 | /* Cascaded IRQ for MAC 0 */ | ||
83 | #define MSP_INT_CIC_MAC1 (MSP_CIC_INTBASE + 11) | ||
84 | /* Cascaded IRQ for MAC 1 */ | ||
85 | #define MSP_INT_CIC_SEC (MSP_CIC_INTBASE + 12) | ||
86 | /* Cascaded IRQ for sec engine */ | ||
87 | #define MSP_INT_PER (MSP_CIC_INTBASE + 13) | ||
88 | /* Peripheral interrupt */ | ||
89 | #define MSP_INT_TIMER0 (MSP_CIC_INTBASE + 14) | ||
90 | /* SLP timer 0 */ | ||
91 | #define MSP_INT_TIMER1 (MSP_CIC_INTBASE + 15) | ||
92 | /* SLP timer 1 */ | ||
93 | #define MSP_INT_TIMER2 (MSP_CIC_INTBASE + 16) | ||
94 | /* SLP timer 2 */ | ||
95 | #define MSP_INT_VPE0_TIMER (MSP_CIC_INTBASE + 17) | ||
96 | /* VPE0 MIPS timer */ | ||
97 | #define MSP_INT_BLKCP (MSP_CIC_INTBASE + 18) | ||
98 | /* Block Copy */ | ||
99 | #define MSP_INT_UART0 (MSP_CIC_INTBASE + 19) | ||
100 | /* UART 0 */ | ||
101 | #define MSP_INT_PCI (MSP_CIC_INTBASE + 20) | ||
102 | /* PCI subsystem */ | ||
103 | #define MSP_INT_EXT6 (MSP_CIC_INTBASE + 21) | ||
104 | /* External interrupt 5 */ | ||
105 | #define MSP_INT_PCI_MSI (MSP_CIC_INTBASE + 22) | ||
106 | /* PCI Message Signal */ | ||
107 | #define MSP_INT_CIC_SAR (MSP_CIC_INTBASE + 23) | ||
108 | /* Cascaded ADSL2+ SAR IRQ */ | ||
109 | #define MSP_INT_DSL (MSP_CIC_INTBASE + 24) | ||
110 | /* ADSL2+ IRQ */ | ||
111 | #define MSP_INT_CIC_ERR (MSP_CIC_INTBASE + 25) | ||
112 | /* SLP error condition */ | ||
113 | #define MSP_INT_VPE1_TIMER (MSP_CIC_INTBASE + 26) | ||
114 | /* VPE1 MIPS timer */ | ||
115 | #define MSP_INT_VPE0_PC (MSP_CIC_INTBASE + 27) | ||
116 | /* VPE0 Performance counter */ | ||
117 | #define MSP_INT_VPE1_PC (MSP_CIC_INTBASE + 28) | ||
118 | /* VPE1 Performance counter */ | ||
119 | #define MSP_INT_EXT7 (MSP_CIC_INTBASE + 29) | ||
120 | /* External interrupt 5 */ | ||
121 | #define MSP_INT_VPE0_SW (MSP_CIC_INTBASE + 30) | ||
122 | /* VPE0 Software interrupt */ | ||
123 | #define MSP_INT_VPE1_SW (MSP_CIC_INTBASE + 31) | ||
124 | /* VPE0 Software interrupt */ | ||
125 | |||
126 | /* | ||
127 | * IRQs cascaded on CIC PER interrupt (MSP_INT_PER) | ||
128 | */ | ||
129 | #define MSP_PER_INTBASE (MSP_CIC_INTBASE + 32) | ||
130 | /* Reserved 0-1 */ | ||
131 | #define MSP_INT_UART1 (MSP_PER_INTBASE + 2) | ||
132 | /* UART 1 */ | ||
133 | /* Reserved 3-5 */ | ||
134 | #define MSP_INT_2WIRE (MSP_PER_INTBASE + 6) | ||
135 | /* 2-wire */ | ||
136 | #define MSP_INT_TM0 (MSP_PER_INTBASE + 7) | ||
137 | /* Peripheral timer block out 0 */ | ||
138 | #define MSP_INT_TM1 (MSP_PER_INTBASE + 8) | ||
139 | /* Peripheral timer block out 1 */ | ||
140 | /* Reserved 9 */ | ||
141 | #define MSP_INT_SPRX (MSP_PER_INTBASE + 10) | ||
142 | /* SPI RX complete */ | ||
143 | #define MSP_INT_SPTX (MSP_PER_INTBASE + 11) | ||
144 | /* SPI TX complete */ | ||
145 | #define MSP_INT_GPIO (MSP_PER_INTBASE + 12) | ||
146 | /* GPIO */ | ||
147 | #define MSP_INT_PER_ERR (MSP_PER_INTBASE + 13) | ||
148 | /* Peripheral error */ | ||
149 | /* Reserved 14-31 */ | ||
150 | |||
151 | #endif /* !_MSP_CIC_INT_H */ | ||
diff --git a/include/asm-mips/pmc-sierra/msp71xx/msp_int.h b/include/asm-mips/pmc-sierra/msp71xx/msp_int.h new file mode 100644 index 000000000000..1d9f05474820 --- /dev/null +++ b/include/asm-mips/pmc-sierra/msp71xx/msp_int.h | |||
@@ -0,0 +1,43 @@ | |||
1 | /* | ||
2 | * Defines for the MSP interrupt handlers. | ||
3 | * | ||
4 | * Copyright (C) 2005, PMC-Sierra, Inc. All rights reserved. | ||
5 | * Author: Andrew Hughes, Andrew_Hughes@pmc-sierra.com | ||
6 | * | ||
7 | * ######################################################################## | ||
8 | * | ||
9 | * This program is free software; you can distribute it and/or modify it | ||
10 | * under the terms of the GNU General Public License (Version 2) as | ||
11 | * published by the Free Software Foundation. | ||
12 | * | ||
13 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
14 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
15 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
16 | * for more details. | ||
17 | * | ||
18 | * You should have received a copy of the GNU General Public License along | ||
19 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
20 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | ||
21 | * | ||
22 | * ######################################################################## | ||
23 | */ | ||
24 | |||
25 | #ifndef _MSP_INT_H | ||
26 | #define _MSP_INT_H | ||
27 | |||
28 | /* | ||
29 | * The PMC-Sierra MSP product line has at least two different interrupt | ||
30 | * controllers, the SLP register based scheme and the CIC interrupt | ||
31 | * controller block mechanism. This file distinguishes between them | ||
32 | * so that devices see a uniform interface. | ||
33 | */ | ||
34 | |||
35 | #if defined(CONFIG_IRQ_MSP_SLP) | ||
36 | #include "msp_slp_int.h" | ||
37 | #elif defined(CONFIG_IRQ_MSP_CIC) | ||
38 | #include "msp_cic_int.h" | ||
39 | #else | ||
40 | #error "What sort of interrupt controller does *your* MSP have?" | ||
41 | #endif | ||
42 | |||
43 | #endif /* !_MSP_INT_H */ | ||
diff --git a/include/asm-mips/pmc-sierra/msp71xx/msp_pci.h b/include/asm-mips/pmc-sierra/msp71xx/msp_pci.h new file mode 100644 index 000000000000..415606903617 --- /dev/null +++ b/include/asm-mips/pmc-sierra/msp71xx/msp_pci.h | |||
@@ -0,0 +1,205 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2000-2006 PMC-Sierra INC. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it | ||
5 | * and/or modify it under the terms of the GNU General | ||
6 | * Public License as published by the Free Software | ||
7 | * Foundation; either version 2 of the License, or (at your | ||
8 | * option) any later version. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be | ||
11 | * useful, but WITHOUT ANY WARRANTY; without even the implied | ||
12 | * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||
13 | * PURPOSE. See the GNU General Public License for more | ||
14 | * details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public | ||
17 | * License along with this program; if not, write to the Free | ||
18 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA | ||
19 | * 02139, USA. | ||
20 | * | ||
21 | * PMC-SIERRA INC. DISCLAIMS ANY LIABILITY OF ANY KIND | ||
22 | * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS | ||
23 | * SOFTWARE. | ||
24 | */ | ||
25 | |||
26 | #ifndef _MSP_PCI_H_ | ||
27 | #define _MSP_PCI_H_ | ||
28 | |||
29 | #define MSP_HAS_PCI(ID) (((u32)(ID) <= 0x4236) && ((u32)(ID) >= 0x4220)) | ||
30 | |||
31 | /* | ||
32 | * It is convenient to program the OATRAN register so that | ||
33 | * Athena virtual address space and PCI address space are | ||
34 | * the same. This is not a requirement, just a convenience. | ||
35 | * | ||
36 | * The only hard restrictions on the value of OATRAN is that | ||
37 | * OATRAN must not be programmed to allow translated memory | ||
38 | * addresses to fall within the lowest 512MB of | ||
39 | * PCI address space. This region is hardcoded | ||
40 | * for use as Athena PCI Host Controller target | ||
41 | * access memory space to the Athena's SDRAM. | ||
42 | * | ||
43 | * Note that OATRAN applies only to memory accesses, not | ||
44 | * to I/O accesses. | ||
45 | * | ||
46 | * To program OATRAN to make Athena virtual address space | ||
47 | * and PCI address space have the same values, OATRAN | ||
48 | * is to be programmed to 0xB8000000. The top seven | ||
49 | * bits of the value mimic the seven bits clipped off | ||
50 | * by the PCI Host controller. | ||
51 | * | ||
52 | * With OATRAN at the said value, when the CPU does | ||
53 | * an access to its virtual address at, say 0xB900_5000, | ||
54 | * the address appearing on the PCI bus will be | ||
55 | * 0xB900_5000. | ||
56 | * - Michael Penner | ||
57 | */ | ||
58 | #define MSP_PCI_OATRAN 0xB8000000UL | ||
59 | |||
60 | #define MSP_PCI_SPACE_BASE (MSP_PCI_OATRAN + 0x1002000UL) | ||
61 | #define MSP_PCI_SPACE_SIZE (0x3000000UL - 0x2000) | ||
62 | #define MSP_PCI_SPACE_END \ | ||
63 | (MSP_PCI_SPACE_BASE + MSP_PCI_SPACE_SIZE - 1) | ||
64 | #define MSP_PCI_IOSPACE_BASE (MSP_PCI_OATRAN + 0x1001000UL) | ||
65 | #define MSP_PCI_IOSPACE_SIZE 0x1000 | ||
66 | #define MSP_PCI_IOSPACE_END \ | ||
67 | (MSP_PCI_IOSPACE_BASE + MSP_PCI_IOSPACE_SIZE - 1) | ||
68 | |||
69 | /* IRQ for PCI status interrupts */ | ||
70 | #define PCI_STAT_IRQ 20 | ||
71 | |||
72 | #define QFLUSH_REG_1 0xB7F40000 | ||
73 | |||
74 | typedef volatile unsigned int pcireg; | ||
75 | typedef void * volatile ppcireg; | ||
76 | |||
77 | struct pci_block_copy | ||
78 | { | ||
79 | pcireg unused1; /* +0x00 */ | ||
80 | pcireg unused2; /* +0x04 */ | ||
81 | ppcireg unused3; /* +0x08 */ | ||
82 | ppcireg unused4; /* +0x0C */ | ||
83 | pcireg unused5; /* +0x10 */ | ||
84 | pcireg unused6; /* +0x14 */ | ||
85 | pcireg unused7; /* +0x18 */ | ||
86 | ppcireg unused8; /* +0x1C */ | ||
87 | ppcireg unused9; /* +0x20 */ | ||
88 | pcireg unusedA; /* +0x24 */ | ||
89 | ppcireg unusedB; /* +0x28 */ | ||
90 | ppcireg unusedC; /* +0x2C */ | ||
91 | }; | ||
92 | |||
93 | enum | ||
94 | { | ||
95 | config_device_vendor, /* 0 */ | ||
96 | config_status_command, /* 1 */ | ||
97 | config_class_revision, /* 2 */ | ||
98 | config_BIST_header_latency_cache, /* 3 */ | ||
99 | config_BAR0, /* 4 */ | ||
100 | config_BAR1, /* 5 */ | ||
101 | config_BAR2, /* 6 */ | ||
102 | config_not_used7, /* 7 */ | ||
103 | config_not_used8, /* 8 */ | ||
104 | config_not_used9, /* 9 */ | ||
105 | config_CIS, /* 10 */ | ||
106 | config_subsystem, /* 11 */ | ||
107 | config_not_used12, /* 12 */ | ||
108 | config_capabilities, /* 13 */ | ||
109 | config_not_used14, /* 14 */ | ||
110 | config_lat_grant_irq, /* 15 */ | ||
111 | config_message_control,/* 16 */ | ||
112 | config_message_addr, /* 17 */ | ||
113 | config_message_data, /* 18 */ | ||
114 | config_VPD_addr, /* 19 */ | ||
115 | config_VPD_data, /* 20 */ | ||
116 | config_maxregs /* 21 - number of registers */ | ||
117 | }; | ||
118 | |||
119 | struct msp_pci_regs | ||
120 | { | ||
121 | pcireg hop_unused_00; /* +0x00 */ | ||
122 | pcireg hop_unused_04; /* +0x04 */ | ||
123 | pcireg hop_unused_08; /* +0x08 */ | ||
124 | pcireg hop_unused_0C; /* +0x0C */ | ||
125 | pcireg hop_unused_10; /* +0x10 */ | ||
126 | pcireg hop_unused_14; /* +0x14 */ | ||
127 | pcireg hop_unused_18; /* +0x18 */ | ||
128 | pcireg hop_unused_1C; /* +0x1C */ | ||
129 | pcireg hop_unused_20; /* +0x20 */ | ||
130 | pcireg hop_unused_24; /* +0x24 */ | ||
131 | pcireg hop_unused_28; /* +0x28 */ | ||
132 | pcireg hop_unused_2C; /* +0x2C */ | ||
133 | pcireg hop_unused_30; /* +0x30 */ | ||
134 | pcireg hop_unused_34; /* +0x34 */ | ||
135 | pcireg if_control; /* +0x38 */ | ||
136 | pcireg oatran; /* +0x3C */ | ||
137 | pcireg reset_ctl; /* +0x40 */ | ||
138 | pcireg config_addr; /* +0x44 */ | ||
139 | pcireg hop_unused_48; /* +0x48 */ | ||
140 | pcireg msg_signaled_int_status; /* +0x4C */ | ||
141 | pcireg msg_signaled_int_mask; /* +0x50 */ | ||
142 | pcireg if_status; /* +0x54 */ | ||
143 | pcireg if_mask; /* +0x58 */ | ||
144 | pcireg hop_unused_5C; /* +0x5C */ | ||
145 | pcireg hop_unused_60; /* +0x60 */ | ||
146 | pcireg hop_unused_64; /* +0x64 */ | ||
147 | pcireg hop_unused_68; /* +0x68 */ | ||
148 | pcireg hop_unused_6C; /* +0x6C */ | ||
149 | pcireg hop_unused_70; /* +0x70 */ | ||
150 | |||
151 | struct pci_block_copy pci_bc[2] __attribute__((aligned(64))); | ||
152 | |||
153 | pcireg error_hdr1; /* +0xE0 */ | ||
154 | pcireg error_hdr2; /* +0xE4 */ | ||
155 | |||
156 | pcireg config[config_maxregs] __attribute__((aligned(256))); | ||
157 | |||
158 | }; | ||
159 | |||
160 | #define BPCI_CFGADDR_BUSNUM_SHF 16 | ||
161 | #define BPCI_CFGADDR_FUNCTNUM_SHF 8 | ||
162 | #define BPCI_CFGADDR_REGNUM_SHF 2 | ||
163 | #define BPCI_CFGADDR_ENABLE (1<<31) | ||
164 | |||
165 | #define BPCI_IFCONTROL_RTO (1<<20) /* Retry timeout */ | ||
166 | #define BPCI_IFCONTROL_HCE (1<<16) /* Host configuration enable */ | ||
167 | #define BPCI_IFCONTROL_CTO_SHF 12 /* Shift count for CTO bits */ | ||
168 | #define BPCI_IFCONTROL_SE (1<<5) /* Enable exceptions on errors */ | ||
169 | #define BPCI_IFCONTROL_BIST (1<<4) /* Use BIST in per. mode */ | ||
170 | #define BPCI_IFCONTROL_CAP (1<<3) /* Enable capabilities */ | ||
171 | #define BPCI_IFCONTROL_MMC_SHF 0 /* Shift count for MMC bits */ | ||
172 | |||
173 | #define BPCI_IFSTATUS_MGT (1<<8) /* Master Grant timeout */ | ||
174 | #define BPCI_IFSTATUS_MTT (1<<9) /* Master TRDY timeout */ | ||
175 | #define BPCI_IFSTATUS_MRT (1<<10) /* Master retry timeout */ | ||
176 | #define BPCI_IFSTATUS_BC0F (1<<13) /* Block copy 0 fault */ | ||
177 | #define BPCI_IFSTATUS_BC1F (1<<14) /* Block copy 1 fault */ | ||
178 | #define BPCI_IFSTATUS_PCIU (1<<15) /* PCI unable to respond */ | ||
179 | #define BPCI_IFSTATUS_BSIZ (1<<16) /* PCI access with illegal size */ | ||
180 | #define BPCI_IFSTATUS_BADD (1<<17) /* PCI access with illegal addr */ | ||
181 | #define BPCI_IFSTATUS_RTO (1<<18) /* Retry time out */ | ||
182 | #define BPCI_IFSTATUS_SER (1<<19) /* System error */ | ||
183 | #define BPCI_IFSTATUS_PER (1<<20) /* Parity error */ | ||
184 | #define BPCI_IFSTATUS_LCA (1<<21) /* Local CPU abort */ | ||
185 | #define BPCI_IFSTATUS_MEM (1<<22) /* Memory prot. violation */ | ||
186 | #define BPCI_IFSTATUS_ARB (1<<23) /* Arbiter timed out */ | ||
187 | #define BPCI_IFSTATUS_STA (1<<27) /* Signaled target abort */ | ||
188 | #define BPCI_IFSTATUS_TA (1<<28) /* Target abort */ | ||
189 | #define BPCI_IFSTATUS_MA (1<<29) /* Master abort */ | ||
190 | #define BPCI_IFSTATUS_PEI (1<<30) /* Parity error as initiator */ | ||
191 | #define BPCI_IFSTATUS_PET (1<<31) /* Parity error as target */ | ||
192 | |||
193 | #define BPCI_RESETCTL_PR (1<<0) /* True if reset asserted */ | ||
194 | #define BPCI_RESETCTL_RT (1<<4) /* Release time */ | ||
195 | #define BPCI_RESETCTL_CT (1<<8) /* Config time */ | ||
196 | #define BPCI_RESETCTL_PE (1<<12) /* PCI enabled */ | ||
197 | #define BPCI_RESETCTL_HM (1<<13) /* PCI host mode */ | ||
198 | #define BPCI_RESETCTL_RI (1<<14) /* PCI reset in */ | ||
199 | |||
200 | extern struct msp_pci_regs msp_pci_regs | ||
201 | __attribute__((section(".register"))); | ||
202 | extern unsigned long msp_pci_config_space | ||
203 | __attribute__((section(".register"))); | ||
204 | |||
205 | #endif /* !_MSP_PCI_H_ */ | ||
diff --git a/include/asm-mips/pmc-sierra/msp71xx/msp_prom.h b/include/asm-mips/pmc-sierra/msp71xx/msp_prom.h new file mode 100644 index 000000000000..14ca7dc382a8 --- /dev/null +++ b/include/asm-mips/pmc-sierra/msp71xx/msp_prom.h | |||
@@ -0,0 +1,176 @@ | |||
1 | /* | ||
2 | * MIPS boards bootprom interface for the Linux kernel. | ||
3 | * | ||
4 | * Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved. | ||
5 | * Author: Carsten Langgaard, carstenl@mips.com | ||
6 | * | ||
7 | * ######################################################################## | ||
8 | * | ||
9 | * This program is free software; you can distribute it and/or modify it | ||
10 | * under the terms of the GNU General Public License (Version 2) as | ||
11 | * published by the Free Software Foundation. | ||
12 | * | ||
13 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
14 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
15 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
16 | * for more details. | ||
17 | * | ||
18 | * You should have received a copy of the GNU General Public License along | ||
19 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
20 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | ||
21 | * | ||
22 | * ######################################################################## | ||
23 | */ | ||
24 | |||
25 | #ifndef _ASM_MSP_PROM_H | ||
26 | #define _ASM_MSP_PROM_H | ||
27 | |||
28 | #include <linux/types.h> | ||
29 | |||
30 | #define DEVICEID "deviceid" | ||
31 | #define FEATURES "features" | ||
32 | #define PROM_ENV "prom_env" | ||
33 | #define PROM_ENV_FILE "/proc/"PROM_ENV | ||
34 | #define PROM_ENV_SIZE 256 | ||
35 | |||
36 | #define CPU_DEVID_FAMILY 0x0000ff00 | ||
37 | #define CPU_DEVID_REVISION 0x000000ff | ||
38 | |||
39 | #define FPGA_IS_POLO(revision) \ | ||
40 | (((revision >= 0xb0) && (revision < 0xd0))) | ||
41 | #define FPGA_IS_5000(revision) \ | ||
42 | ((revision >= 0x80) && (revision <= 0x90)) | ||
43 | #define FPGA_IS_ZEUS(revision) ((revision < 0x7f)) | ||
44 | #define FPGA_IS_DUET(revision) \ | ||
45 | (((revision >= 0xa0) && (revision < 0xb0))) | ||
46 | #define FPGA_IS_MSP4200(revision) ((revision >= 0xd0)) | ||
47 | #define FPGA_IS_MSP7100(revision) ((revision >= 0xd0)) | ||
48 | |||
49 | #define MACHINE_TYPE_POLO "POLO" | ||
50 | #define MACHINE_TYPE_DUET "DUET" | ||
51 | #define MACHINE_TYPE_ZEUS "ZEUS" | ||
52 | #define MACHINE_TYPE_MSP2000REVB "MSP2000REVB" | ||
53 | #define MACHINE_TYPE_MSP5000 "MSP5000" | ||
54 | #define MACHINE_TYPE_MSP4200 "MSP4200" | ||
55 | #define MACHINE_TYPE_MSP7120 "MSP7120" | ||
56 | #define MACHINE_TYPE_MSP7130 "MSP7130" | ||
57 | #define MACHINE_TYPE_OTHER "OTHER" | ||
58 | |||
59 | #define MACHINE_TYPE_POLO_FPGA "POLO-FPGA" | ||
60 | #define MACHINE_TYPE_DUET_FPGA "DUET-FPGA" | ||
61 | #define MACHINE_TYPE_ZEUS_FPGA "ZEUS_FPGA" | ||
62 | #define MACHINE_TYPE_MSP2000REVB_FPGA "MSP2000REVB-FPGA" | ||
63 | #define MACHINE_TYPE_MSP5000_FPGA "MSP5000-FPGA" | ||
64 | #define MACHINE_TYPE_MSP4200_FPGA "MSP4200-FPGA" | ||
65 | #define MACHINE_TYPE_MSP7100_FPGA "MSP7100-FPGA" | ||
66 | #define MACHINE_TYPE_OTHER_FPGA "OTHER-FPGA" | ||
67 | |||
68 | /* Device Family definitions */ | ||
69 | #define FAMILY_FPGA 0x0000 | ||
70 | #define FAMILY_ZEUS 0x1000 | ||
71 | #define FAMILY_POLO 0x2000 | ||
72 | #define FAMILY_DUET 0x4000 | ||
73 | #define FAMILY_TRIAD 0x5000 | ||
74 | #define FAMILY_MSP4200 0x4200 | ||
75 | #define FAMILY_MSP4200_FPGA 0x4f00 | ||
76 | #define FAMILY_MSP7100 0x7100 | ||
77 | #define FAMILY_MSP7100_FPGA 0x7f00 | ||
78 | |||
79 | /* Device Type definitions */ | ||
80 | #define TYPE_MSP7120 0x7120 | ||
81 | #define TYPE_MSP7130 0x7130 | ||
82 | |||
83 | #define ENET_KEY 'E' | ||
84 | #define ENETTXD_KEY 'e' | ||
85 | #define PCI_KEY 'P' | ||
86 | #define PCIMUX_KEY 'p' | ||
87 | #define SEC_KEY 'S' | ||
88 | #define SPAD_KEY 'D' | ||
89 | #define TDM_KEY 'T' | ||
90 | #define ZSP_KEY 'Z' | ||
91 | |||
92 | #define FEATURE_NOEXIST '-' | ||
93 | #define FEATURE_EXIST '+' | ||
94 | |||
95 | #define ENET_MII 'M' | ||
96 | #define ENET_RMII 'R' | ||
97 | |||
98 | #define ENETTXD_FALLING 'F' | ||
99 | #define ENETTXD_RISING 'R' | ||
100 | |||
101 | #define PCI_HOST 'H' | ||
102 | #define PCI_PERIPHERAL 'P' | ||
103 | |||
104 | #define PCIMUX_FULL 'F' | ||
105 | #define PCIMUX_SINGLE 'S' | ||
106 | |||
107 | #define SEC_DUET 'D' | ||
108 | #define SEC_POLO 'P' | ||
109 | #define SEC_SLOW 'S' | ||
110 | #define SEC_TRIAD 'T' | ||
111 | |||
112 | #define SPAD_POLO 'P' | ||
113 | |||
114 | #define TDM_DUET 'D' /* DUET TDMs might exist */ | ||
115 | #define TDM_POLO 'P' /* POLO TDMs might exist */ | ||
116 | #define TDM_TRIAD 'T' /* TRIAD TDMs might exist */ | ||
117 | |||
118 | #define ZSP_DUET 'D' /* one DUET zsp engine */ | ||
119 | #define ZSP_TRIAD 'T' /* two TRIAD zsp engines */ | ||
120 | |||
121 | extern char *prom_getcmdline(void); | ||
122 | extern char *prom_getenv(char *name); | ||
123 | extern void prom_init_cmdline(void); | ||
124 | extern void prom_meminit(void); | ||
125 | extern void prom_fixup_mem_map(unsigned long start_mem, | ||
126 | unsigned long end_mem); | ||
127 | |||
128 | #ifdef CONFIG_MTD_PMC_MSP_RAMROOT | ||
129 | extern bool get_ramroot(void **start, unsigned long *size); | ||
130 | #endif | ||
131 | |||
132 | extern int get_ethernet_addr(char *ethaddr_name, char *ethernet_addr); | ||
133 | extern unsigned long get_deviceid(void); | ||
134 | extern char identify_enet(unsigned long interface_num); | ||
135 | extern char identify_enetTxD(unsigned long interface_num); | ||
136 | extern char identify_pci(void); | ||
137 | extern char identify_sec(void); | ||
138 | extern char identify_spad(void); | ||
139 | extern char identify_sec(void); | ||
140 | extern char identify_tdm(void); | ||
141 | extern char identify_zsp(void); | ||
142 | extern unsigned long identify_family(void); | ||
143 | extern unsigned long identify_revision(void); | ||
144 | |||
145 | /* | ||
146 | * The following macro calls prom_printf and puts the format string | ||
147 | * into an init section so it can be reclaimed. | ||
148 | */ | ||
149 | #define ppfinit(f, x...) \ | ||
150 | do { \ | ||
151 | static char _f[] __initdata = KERN_INFO f; \ | ||
152 | printk(_f, ## x); \ | ||
153 | } while (0) | ||
154 | |||
155 | /* Memory descriptor management. */ | ||
156 | #define PROM_MAX_PMEMBLOCKS 7 /* 6 used */ | ||
157 | |||
158 | enum yamon_memtypes { | ||
159 | yamon_dontuse, | ||
160 | yamon_prom, | ||
161 | yamon_free, | ||
162 | }; | ||
163 | |||
164 | struct prom_pmemblock { | ||
165 | unsigned long base; /* Within KSEG0. */ | ||
166 | unsigned int size; /* In bytes. */ | ||
167 | unsigned int type; /* free or prom memory */ | ||
168 | }; | ||
169 | |||
170 | extern int prom_argc; | ||
171 | extern char **prom_argv; | ||
172 | extern char **prom_envp; | ||
173 | extern int *prom_vec; | ||
174 | extern struct prom_pmemblock *prom_getmdesc(void); | ||
175 | |||
176 | #endif /* !_ASM_MSP_PROM_H */ | ||
diff --git a/include/asm-mips/pmc-sierra/msp71xx/msp_regops.h b/include/asm-mips/pmc-sierra/msp71xx/msp_regops.h new file mode 100644 index 000000000000..60a5a38dd5b2 --- /dev/null +++ b/include/asm-mips/pmc-sierra/msp71xx/msp_regops.h | |||
@@ -0,0 +1,236 @@ | |||
1 | /* | ||
2 | * SMP/VPE-safe functions to access "registers" (see note). | ||
3 | * | ||
4 | * NOTES: | ||
5 | * - These macros use ll/sc instructions, so it is your responsibility to | ||
6 | * ensure these are available on your platform before including this file. | ||
7 | * - The MIPS32 spec states that ll/sc results are undefined for uncached | ||
8 | * accesses. This means they can't be used on HW registers accessed | ||
9 | * through kseg1. Code which requires these macros for this purpose must | ||
10 | * front-end the registers with cached memory "registers" and have a single | ||
11 | * thread update the actual HW registers. | ||
12 | * - A maximum of 2k of code can be inserted between ll and sc. Every | ||
13 | * memory accesses between the instructions will increase the chance of | ||
14 | * sc failing and having to loop. | ||
15 | * - When using custom_read_reg32/custom_write_reg32 only perform the | ||
16 | * necessary logical operations on the register value in between these | ||
17 | * two calls. All other logic should be performed before the first call. | ||
18 | * - There is a bug on the R10000 chips which has a workaround. If you | ||
19 | * are affected by this bug, make sure to define the symbol 'R10000_LLSC_WAR' | ||
20 | * to be non-zero. If you are using this header from within linux, you may | ||
21 | * include <asm/war.h> before including this file to have this defined | ||
22 | * appropriately for you. | ||
23 | * | ||
24 | * Copyright 2005-2007 PMC-Sierra, Inc. | ||
25 | * | ||
26 | * This program is free software; you can redistribute it and/or modify it | ||
27 | * under the terms of the GNU General Public License as published by the | ||
28 | * Free Software Foundation; either version 2 of the License, or (at your | ||
29 | * option) any later version. | ||
30 | * | ||
31 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | ||
32 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
33 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO | ||
34 | * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
35 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||
36 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
37 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
38 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
39 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
40 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
41 | * | ||
42 | * You should have received a copy of the GNU General Public License along | ||
43 | * with this program; if not, write to the Free Software Foundation, Inc., 675 | ||
44 | * Mass Ave, Cambridge, MA 02139, USA. | ||
45 | */ | ||
46 | |||
47 | #ifndef __ASM_REGOPS_H__ | ||
48 | #define __ASM_REGOPS_H__ | ||
49 | |||
50 | #include <linux/types.h> | ||
51 | |||
52 | #include <asm/war.h> | ||
53 | |||
54 | #ifndef R10000_LLSC_WAR | ||
55 | #define R10000_LLSC_WAR 0 | ||
56 | #endif | ||
57 | |||
58 | #if R10000_LLSC_WAR == 1 | ||
59 | #define __beqz "beqzl " | ||
60 | #else | ||
61 | #define __beqz "beqz " | ||
62 | #endif | ||
63 | |||
64 | #ifndef _LINUX_TYPES_H | ||
65 | typedef unsigned int u32; | ||
66 | #endif | ||
67 | |||
68 | /* | ||
69 | * Sets all the masked bits to the corresponding value bits | ||
70 | */ | ||
71 | static inline void set_value_reg32(volatile u32 *const addr, | ||
72 | u32 const mask, | ||
73 | u32 const value) | ||
74 | { | ||
75 | u32 temp; | ||
76 | |||
77 | __asm__ __volatile__( | ||
78 | " .set push \n" | ||
79 | " .set mips3 \n" | ||
80 | "1: ll %0, %1 # set_value_reg32 \n" | ||
81 | " and %0, %2 \n" | ||
82 | " or %0, %3 \n" | ||
83 | " sc %0, %1 \n" | ||
84 | " "__beqz"%0, 1b \n" | ||
85 | " nop \n" | ||
86 | " .set pop \n" | ||
87 | : "=&r" (temp), "=m" (*addr) | ||
88 | : "ir" (~mask), "ir" (value), "m" (*addr)); | ||
89 | } | ||
90 | |||
91 | /* | ||
92 | * Sets all the masked bits to '1' | ||
93 | */ | ||
94 | static inline void set_reg32(volatile u32 *const addr, | ||
95 | u32 const mask) | ||
96 | { | ||
97 | u32 temp; | ||
98 | |||
99 | __asm__ __volatile__( | ||
100 | " .set push \n" | ||
101 | " .set mips3 \n" | ||
102 | "1: ll %0, %1 # set_reg32 \n" | ||
103 | " or %0, %2 \n" | ||
104 | " sc %0, %1 \n" | ||
105 | " "__beqz"%0, 1b \n" | ||
106 | " nop \n" | ||
107 | " .set pop \n" | ||
108 | : "=&r" (temp), "=m" (*addr) | ||
109 | : "ir" (mask), "m" (*addr)); | ||
110 | } | ||
111 | |||
112 | /* | ||
113 | * Sets all the masked bits to '0' | ||
114 | */ | ||
115 | static inline void clear_reg32(volatile u32 *const addr, | ||
116 | u32 const mask) | ||
117 | { | ||
118 | u32 temp; | ||
119 | |||
120 | __asm__ __volatile__( | ||
121 | " .set push \n" | ||
122 | " .set mips3 \n" | ||
123 | "1: ll %0, %1 # clear_reg32 \n" | ||
124 | " and %0, %2 \n" | ||
125 | " sc %0, %1 \n" | ||
126 | " "__beqz"%0, 1b \n" | ||
127 | " nop \n" | ||
128 | " .set pop \n" | ||
129 | : "=&r" (temp), "=m" (*addr) | ||
130 | : "ir" (~mask), "m" (*addr)); | ||
131 | } | ||
132 | |||
133 | /* | ||
134 | * Toggles all masked bits from '0' to '1' and '1' to '0' | ||
135 | */ | ||
136 | static inline void toggle_reg32(volatile u32 *const addr, | ||
137 | u32 const mask) | ||
138 | { | ||
139 | u32 temp; | ||
140 | |||
141 | __asm__ __volatile__( | ||
142 | " .set push \n" | ||
143 | " .set mips3 \n" | ||
144 | "1: ll %0, %1 # toggle_reg32 \n" | ||
145 | " xor %0, %2 \n" | ||
146 | " sc %0, %1 \n" | ||
147 | " "__beqz"%0, 1b \n" | ||
148 | " nop \n" | ||
149 | " .set pop \n" | ||
150 | : "=&r" (temp), "=m" (*addr) | ||
151 | : "ir" (mask), "m" (*addr)); | ||
152 | } | ||
153 | |||
154 | /* | ||
155 | * Read all masked bits others are returned as '0' | ||
156 | */ | ||
157 | static inline u32 read_reg32(volatile u32 *const addr, | ||
158 | u32 const mask) | ||
159 | { | ||
160 | u32 temp; | ||
161 | |||
162 | __asm__ __volatile__( | ||
163 | " .set push \n" | ||
164 | " .set noreorder \n" | ||
165 | " lw %0, %1 # read \n" | ||
166 | " and %0, %2 # mask \n" | ||
167 | " .set pop \n" | ||
168 | : "=&r" (temp) | ||
169 | : "m" (*addr), "ir" (mask)); | ||
170 | |||
171 | return temp; | ||
172 | } | ||
173 | |||
174 | /* | ||
175 | * blocking_read_reg32 - Read address with blocking load | ||
176 | * | ||
177 | * Uncached writes need to be read back to ensure they reach RAM. | ||
178 | * The returned value must be 'used' to prevent from becoming a | ||
179 | * non-blocking load. | ||
180 | */ | ||
181 | static inline u32 blocking_read_reg32(volatile u32 *const addr) | ||
182 | { | ||
183 | u32 temp; | ||
184 | |||
185 | __asm__ __volatile__( | ||
186 | " .set push \n" | ||
187 | " .set noreorder \n" | ||
188 | " lw %0, %1 # read \n" | ||
189 | " move %0, %0 # block \n" | ||
190 | " .set pop \n" | ||
191 | : "=&r" (temp) | ||
192 | : "m" (*addr)); | ||
193 | |||
194 | return temp; | ||
195 | } | ||
196 | |||
197 | /* | ||
198 | * For special strange cases only: | ||
199 | * | ||
200 | * If you need custom processing within a ll/sc loop, use the following macros | ||
201 | * VERY CAREFULLY: | ||
202 | * | ||
203 | * u32 tmp; <-- Define a variable to hold the data | ||
204 | * | ||
205 | * custom_read_reg32(address, tmp); <-- Reads the address and put the value | ||
206 | * in the 'tmp' variable given | ||
207 | * | ||
208 | * From here on out, you are (basicly) atomic, so don't do anything too | ||
209 | * fancy! | ||
210 | * Also, this code may loop if the end of this block fails to write | ||
211 | * everything back safely due do the other CPU, so do NOT do anything | ||
212 | * with side-effects! | ||
213 | * | ||
214 | * custom_write_reg32(address, tmp); <-- Writes back 'tmp' safely. | ||
215 | */ | ||
216 | #define custom_read_reg32(address, tmp) \ | ||
217 | __asm__ __volatile__( \ | ||
218 | " .set push \n" \ | ||
219 | " .set mips3 \n" \ | ||
220 | "1: ll %0, %1 #custom_read_reg32 \n" \ | ||
221 | " .set pop \n" \ | ||
222 | : "=r" (tmp), "=m" (*address) \ | ||
223 | : "m" (*address)) | ||
224 | |||
225 | #define custom_write_reg32(address, tmp) \ | ||
226 | __asm__ __volatile__( \ | ||
227 | " .set push \n" \ | ||
228 | " .set mips3 \n" \ | ||
229 | " sc %0, %1 #custom_write_reg32 \n" \ | ||
230 | " "__beqz"%0, 1b \n" \ | ||
231 | " nop \n" \ | ||
232 | " .set pop \n" \ | ||
233 | : "=&r" (tmp), "=m" (*address) \ | ||
234 | : "0" (tmp), "m" (*address)) | ||
235 | |||
236 | #endif /* __ASM_REGOPS_H__ */ | ||
diff --git a/include/asm-mips/pmc-sierra/msp71xx/msp_regs.h b/include/asm-mips/pmc-sierra/msp71xx/msp_regs.h new file mode 100644 index 000000000000..0b56f55206c6 --- /dev/null +++ b/include/asm-mips/pmc-sierra/msp71xx/msp_regs.h | |||
@@ -0,0 +1,667 @@ | |||
1 | /* | ||
2 | * Defines for the address space, registers and register configuration | ||
3 | * (bit masks, access macros etc) for the PMC-Sierra line of MSP products. | ||
4 | * This file contains addess maps for all the devices in the line of | ||
5 | * products but only has register definitions and configuration masks for | ||
6 | * registers which aren't definitely associated with any device. Things | ||
7 | * like clock settings, reset access, the ELB etc. Individual device | ||
8 | * drivers will reference the appropriate XXX_BASE value defined here | ||
9 | * and have individual registers offset from that. | ||
10 | * | ||
11 | * Copyright (C) 2005-2007 PMC-Sierra, Inc. All rights reserved. | ||
12 | * Author: Andrew Hughes, Andrew_Hughes@pmc-sierra.com | ||
13 | * | ||
14 | * ######################################################################## | ||
15 | * | ||
16 | * This program is free software; you can distribute it and/or modify it | ||
17 | * under the terms of the GNU General Public License (Version 2) as | ||
18 | * published by the Free Software Foundation. | ||
19 | * | ||
20 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
21 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
22 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
23 | * for more details. | ||
24 | * | ||
25 | * You should have received a copy of the GNU General Public License along | ||
26 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
27 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | ||
28 | * | ||
29 | * ######################################################################## | ||
30 | */ | ||
31 | |||
32 | #include <asm/addrspace.h> | ||
33 | #include <linux/types.h> | ||
34 | |||
35 | #ifndef _ASM_MSP_REGS_H | ||
36 | #define _ASM_MSP_REGS_H | ||
37 | |||
38 | /* | ||
39 | ######################################################################## | ||
40 | # Address space and device base definitions # | ||
41 | ######################################################################## | ||
42 | */ | ||
43 | |||
44 | /* | ||
45 | *************************************************************************** | ||
46 | * System Logic and Peripherals (ELB, UART0, etc) device address space * | ||
47 | *************************************************************************** | ||
48 | */ | ||
49 | #define MSP_SLP_BASE 0x1c000000 | ||
50 | /* System Logic and Peripherals */ | ||
51 | #define MSP_RST_BASE (MSP_SLP_BASE + 0x10) | ||
52 | /* System reset register base */ | ||
53 | #define MSP_RST_SIZE 0x0C /* System reset register space */ | ||
54 | |||
55 | #define MSP_WTIMER_BASE (MSP_SLP_BASE + 0x04C) | ||
56 | /* watchdog timer base */ | ||
57 | #define MSP_ITIMER_BASE (MSP_SLP_BASE + 0x054) | ||
58 | /* internal timer base */ | ||
59 | #define MSP_UART0_BASE (MSP_SLP_BASE + 0x100) | ||
60 | /* UART0 controller base */ | ||
61 | #define MSP_BCPY_CTRL_BASE (MSP_SLP_BASE + 0x120) | ||
62 | /* Block Copy controller base */ | ||
63 | #define MSP_BCPY_DESC_BASE (MSP_SLP_BASE + 0x160) | ||
64 | /* Block Copy descriptor base */ | ||
65 | |||
66 | /* | ||
67 | *************************************************************************** | ||
68 | * PCI address space * | ||
69 | *************************************************************************** | ||
70 | */ | ||
71 | #define MSP_PCI_BASE 0x19000000 | ||
72 | |||
73 | /* | ||
74 | *************************************************************************** | ||
75 | * MSbus device address space * | ||
76 | *************************************************************************** | ||
77 | */ | ||
78 | #define MSP_MSB_BASE 0x18000000 | ||
79 | /* MSbus address start */ | ||
80 | #define MSP_PER_BASE (MSP_MSB_BASE + 0x400000) | ||
81 | /* Peripheral device registers */ | ||
82 | #define MSP_MAC0_BASE (MSP_MSB_BASE + 0x600000) | ||
83 | /* MAC A device registers */ | ||
84 | #define MSP_MAC1_BASE (MSP_MSB_BASE + 0x700000) | ||
85 | /* MAC B device registers */ | ||
86 | #define MSP_MAC_SIZE 0xE0 /* MAC register space */ | ||
87 | |||
88 | #define MSP_SEC_BASE (MSP_MSB_BASE + 0x800000) | ||
89 | /* Security Engine registers */ | ||
90 | #define MSP_MAC2_BASE (MSP_MSB_BASE + 0x900000) | ||
91 | /* MAC C device registers */ | ||
92 | #define MSP_ADSL2_BASE (MSP_MSB_BASE + 0xA80000) | ||
93 | /* ADSL2 device registers */ | ||
94 | #define MSP_USB_BASE (MSP_MSB_BASE + 0xB40000) | ||
95 | /* USB device registers */ | ||
96 | #define MSP_USB_BASE_START (MSP_MSB_BASE + 0xB40100) | ||
97 | /* USB device registers */ | ||
98 | #define MSP_USB_BASE_END (MSP_MSB_BASE + 0xB401FF) | ||
99 | /* USB device registers */ | ||
100 | #define MSP_CPUIF_BASE (MSP_MSB_BASE + 0xC00000) | ||
101 | /* CPU interface registers */ | ||
102 | |||
103 | /* Devices within the MSbus peripheral block */ | ||
104 | #define MSP_UART1_BASE (MSP_PER_BASE + 0x030) | ||
105 | /* UART1 controller base */ | ||
106 | #define MSP_SPI_BASE (MSP_PER_BASE + 0x058) | ||
107 | /* SPI/MPI control registers */ | ||
108 | #define MSP_TWI_BASE (MSP_PER_BASE + 0x090) | ||
109 | /* Two-wire control registers */ | ||
110 | #define MSP_PTIMER_BASE (MSP_PER_BASE + 0x0F0) | ||
111 | /* Programmable timer control */ | ||
112 | |||
113 | /* | ||
114 | *************************************************************************** | ||
115 | * Physical Memory configuration address space * | ||
116 | *************************************************************************** | ||
117 | */ | ||
118 | #define MSP_MEM_CFG_BASE 0x17f00000 | ||
119 | |||
120 | #define MSP_MEM_INDIRECT_CTL_10 0x10 | ||
121 | |||
122 | /* | ||
123 | * Notes: | ||
124 | * 1) The SPI registers are split into two blocks, one offset from the | ||
125 | * MSP_SPI_BASE by 0x00 and the other offset from the MSP_SPI_BASE by | ||
126 | * 0x68. The SPI driver definitions for the register must be aware | ||
127 | * of this. | ||
128 | * 2) The block copy engine register are divided into two regions, one | ||
129 | * for the control/configuration of the engine proper and one for the | ||
130 | * values of the descriptors used in the copy process. These have | ||
131 | * different base defines (CTRL_BASE vs DESC_BASE) | ||
132 | * 3) These constants are for physical addresses which means that they | ||
133 | * work correctly with "ioremap" and friends. This means that device | ||
134 | * drivers will need to remap these addresses using ioremap and perhaps | ||
135 | * the readw/writew macros. Or they could use the regptr() macro | ||
136 | * defined below, but the readw/writew calls are the correct thing. | ||
137 | * 4) The UARTs have an additional status register offset from the base | ||
138 | * address. This register isn't used in the standard 8250 driver but | ||
139 | * may be used in other software. Consult the hardware datasheet for | ||
140 | * offset details. | ||
141 | * 5) For some unknown reason the security engine (MSP_SEC_BASE) registers | ||
142 | * start at an offset of 0x84 from the base address but the block of | ||
143 | * registers before this is reserved for the security engine. The | ||
144 | * driver will have to be aware of this but it makes the register | ||
145 | * definitions line up better with the documentation. | ||
146 | */ | ||
147 | |||
148 | /* | ||
149 | ######################################################################## | ||
150 | # System register definitions. Not associated with a specific device # | ||
151 | ######################################################################## | ||
152 | */ | ||
153 | |||
154 | /* | ||
155 | * This macro maps the physical register number into uncached space | ||
156 | * and (for C code) casts it into a u32 pointer so it can be dereferenced | ||
157 | * Normally these would be accessed with ioremap and readX/writeX, but | ||
158 | * these are convenient for a lot of internal kernel code. | ||
159 | */ | ||
160 | #ifdef __ASSEMBLER__ | ||
161 | #define regptr(addr) (KSEG1ADDR(addr)) | ||
162 | #else | ||
163 | #define regptr(addr) ((volatile u32 *const)(KSEG1ADDR(addr))) | ||
164 | #endif | ||
165 | |||
166 | /* | ||
167 | *************************************************************************** | ||
168 | * System Logic and Peripherals (RESET, ELB, etc) registers * | ||
169 | *************************************************************************** | ||
170 | */ | ||
171 | |||
172 | /* System Control register definitions */ | ||
173 | #define DEV_ID_REG regptr(MSP_SLP_BASE + 0x00) | ||
174 | /* Device-ID RO */ | ||
175 | #define FWR_ID_REG regptr(MSP_SLP_BASE + 0x04) | ||
176 | /* Firmware-ID Register RW */ | ||
177 | #define SYS_ID_REG0 regptr(MSP_SLP_BASE + 0x08) | ||
178 | /* System-ID Register-0 RW */ | ||
179 | #define SYS_ID_REG1 regptr(MSP_SLP_BASE + 0x0C) | ||
180 | /* System-ID Register-1 RW */ | ||
181 | |||
182 | /* System Reset register definitions */ | ||
183 | #define RST_STS_REG regptr(MSP_SLP_BASE + 0x10) | ||
184 | /* System Reset Status RO */ | ||
185 | #define RST_SET_REG regptr(MSP_SLP_BASE + 0x14) | ||
186 | /* System Set Reset WO */ | ||
187 | #define RST_CLR_REG regptr(MSP_SLP_BASE + 0x18) | ||
188 | /* System Clear Reset WO */ | ||
189 | |||
190 | /* System Clock Registers */ | ||
191 | #define PCI_SLP_REG regptr(MSP_SLP_BASE + 0x1C) | ||
192 | /* PCI clock generator RW */ | ||
193 | #define URT_SLP_REG regptr(MSP_SLP_BASE + 0x20) | ||
194 | /* UART clock generator RW */ | ||
195 | /* reserved (MSP_SLP_BASE + 0x24) */ | ||
196 | /* reserved (MSP_SLP_BASE + 0x28) */ | ||
197 | #define PLL1_SLP_REG regptr(MSP_SLP_BASE + 0x2C) | ||
198 | /* PLL1 clock generator RW */ | ||
199 | #define PLL0_SLP_REG regptr(MSP_SLP_BASE + 0x30) | ||
200 | /* PLL0 clock generator RW */ | ||
201 | #define MIPS_SLP_REG regptr(MSP_SLP_BASE + 0x34) | ||
202 | /* MIPS clock generator RW */ | ||
203 | #define VE_SLP_REG regptr(MSP_SLP_BASE + 0x38) | ||
204 | /* Voice Eng clock generator RW */ | ||
205 | /* reserved (MSP_SLP_BASE + 0x3C) */ | ||
206 | #define MSB_SLP_REG regptr(MSP_SLP_BASE + 0x40) | ||
207 | /* MS-Bus clock generator RW */ | ||
208 | #define SMAC_SLP_REG regptr(MSP_SLP_BASE + 0x44) | ||
209 | /* Sec & MAC clock generator RW */ | ||
210 | #define PERF_SLP_REG regptr(MSP_SLP_BASE + 0x48) | ||
211 | /* Per & TDM clock generator RW */ | ||
212 | |||
213 | /* Interrupt Controller Registers */ | ||
214 | #define SLP_INT_STS_REG regptr(MSP_SLP_BASE + 0x70) | ||
215 | /* Interrupt status register RW */ | ||
216 | #define SLP_INT_MSK_REG regptr(MSP_SLP_BASE + 0x74) | ||
217 | /* Interrupt enable/mask RW */ | ||
218 | #define SE_MBOX_REG regptr(MSP_SLP_BASE + 0x78) | ||
219 | /* Security Engine mailbox RW */ | ||
220 | #define VE_MBOX_REG regptr(MSP_SLP_BASE + 0x7C) | ||
221 | /* Voice Engine mailbox RW */ | ||
222 | |||
223 | /* ELB Controller Registers */ | ||
224 | #define CS0_CNFG_REG regptr(MSP_SLP_BASE + 0x80) | ||
225 | /* ELB CS0 Configuration Reg */ | ||
226 | #define CS0_ADDR_REG regptr(MSP_SLP_BASE + 0x84) | ||
227 | /* ELB CS0 Base Address Reg */ | ||
228 | #define CS0_MASK_REG regptr(MSP_SLP_BASE + 0x88) | ||
229 | /* ELB CS0 Mask Register */ | ||
230 | #define CS0_ACCESS_REG regptr(MSP_SLP_BASE + 0x8C) | ||
231 | /* ELB CS0 access register */ | ||
232 | |||
233 | #define CS1_CNFG_REG regptr(MSP_SLP_BASE + 0x90) | ||
234 | /* ELB CS1 Configuration Reg */ | ||
235 | #define CS1_ADDR_REG regptr(MSP_SLP_BASE + 0x94) | ||
236 | /* ELB CS1 Base Address Reg */ | ||
237 | #define CS1_MASK_REG regptr(MSP_SLP_BASE + 0x98) | ||
238 | /* ELB CS1 Mask Register */ | ||
239 | #define CS1_ACCESS_REG regptr(MSP_SLP_BASE + 0x9C) | ||
240 | /* ELB CS1 access register */ | ||
241 | |||
242 | #define CS2_CNFG_REG regptr(MSP_SLP_BASE + 0xA0) | ||
243 | /* ELB CS2 Configuration Reg */ | ||
244 | #define CS2_ADDR_REG regptr(MSP_SLP_BASE + 0xA4) | ||
245 | /* ELB CS2 Base Address Reg */ | ||
246 | #define CS2_MASK_REG regptr(MSP_SLP_BASE + 0xA8) | ||
247 | /* ELB CS2 Mask Register */ | ||
248 | #define CS2_ACCESS_REG regptr(MSP_SLP_BASE + 0xAC) | ||
249 | /* ELB CS2 access register */ | ||
250 | |||
251 | #define CS3_CNFG_REG regptr(MSP_SLP_BASE + 0xB0) | ||
252 | /* ELB CS3 Configuration Reg */ | ||
253 | #define CS3_ADDR_REG regptr(MSP_SLP_BASE + 0xB4) | ||
254 | /* ELB CS3 Base Address Reg */ | ||
255 | #define CS3_MASK_REG regptr(MSP_SLP_BASE + 0xB8) | ||
256 | /* ELB CS3 Mask Register */ | ||
257 | #define CS3_ACCESS_REG regptr(MSP_SLP_BASE + 0xBC) | ||
258 | /* ELB CS3 access register */ | ||
259 | |||
260 | #define CS4_CNFG_REG regptr(MSP_SLP_BASE + 0xC0) | ||
261 | /* ELB CS4 Configuration Reg */ | ||
262 | #define CS4_ADDR_REG regptr(MSP_SLP_BASE + 0xC4) | ||
263 | /* ELB CS4 Base Address Reg */ | ||
264 | #define CS4_MASK_REG regptr(MSP_SLP_BASE + 0xC8) | ||
265 | /* ELB CS4 Mask Register */ | ||
266 | #define CS4_ACCESS_REG regptr(MSP_SLP_BASE + 0xCC) | ||
267 | /* ELB CS4 access register */ | ||
268 | |||
269 | #define CS5_CNFG_REG regptr(MSP_SLP_BASE + 0xD0) | ||
270 | /* ELB CS5 Configuration Reg */ | ||
271 | #define CS5_ADDR_REG regptr(MSP_SLP_BASE + 0xD4) | ||
272 | /* ELB CS5 Base Address Reg */ | ||
273 | #define CS5_MASK_REG regptr(MSP_SLP_BASE + 0xD8) | ||
274 | /* ELB CS5 Mask Register */ | ||
275 | #define CS5_ACCESS_REG regptr(MSP_SLP_BASE + 0xDC) | ||
276 | /* ELB CS5 access register */ | ||
277 | |||
278 | /* reserved 0xE0 - 0xE8 */ | ||
279 | #define ELB_1PC_EN_REG regptr(MSP_SLP_BASE + 0xEC) | ||
280 | /* ELB single PC card detect */ | ||
281 | |||
282 | /* reserved 0xF0 - 0xF8 */ | ||
283 | #define ELB_CLK_CFG_REG regptr(MSP_SLP_BASE + 0xFC) | ||
284 | /* SDRAM read/ELB timing Reg */ | ||
285 | |||
286 | /* Extended UART status registers */ | ||
287 | #define UART0_STATUS_REG regptr(MSP_UART0_BASE + 0x0c0) | ||
288 | /* UART Status Register 0 */ | ||
289 | #define UART1_STATUS_REG regptr(MSP_UART1_BASE + 0x170) | ||
290 | /* UART Status Register 1 */ | ||
291 | |||
292 | /* Performance monitoring registers */ | ||
293 | #define PERF_MON_CTRL_REG regptr(MSP_SLP_BASE + 0x140) | ||
294 | /* Performance monitor control */ | ||
295 | #define PERF_MON_CLR_REG regptr(MSP_SLP_BASE + 0x144) | ||
296 | /* Performance monitor clear */ | ||
297 | #define PERF_MON_CNTH_REG regptr(MSP_SLP_BASE + 0x148) | ||
298 | /* Perf monitor counter high */ | ||
299 | #define PERF_MON_CNTL_REG regptr(MSP_SLP_BASE + 0x14C) | ||
300 | /* Perf monitor counter low */ | ||
301 | |||
302 | /* System control registers */ | ||
303 | #define SYS_CTRL_REG regptr(MSP_SLP_BASE + 0x150) | ||
304 | /* System control register */ | ||
305 | #define SYS_ERR1_REG regptr(MSP_SLP_BASE + 0x154) | ||
306 | /* System Error status 1 */ | ||
307 | #define SYS_ERR2_REG regptr(MSP_SLP_BASE + 0x158) | ||
308 | /* System Error status 2 */ | ||
309 | #define SYS_INT_CFG_REG regptr(MSP_SLP_BASE + 0x15C) | ||
310 | /* System Interrupt config */ | ||
311 | |||
312 | /* Voice Engine Memory configuration */ | ||
313 | #define VE_MEM_REG regptr(MSP_SLP_BASE + 0x17C) | ||
314 | /* Voice engine memory config */ | ||
315 | |||
316 | /* CPU/SLP Error Status registers */ | ||
317 | #define CPU_ERR1_REG regptr(MSP_SLP_BASE + 0x180) | ||
318 | /* CPU/SLP Error status 1 */ | ||
319 | #define CPU_ERR2_REG regptr(MSP_SLP_BASE + 0x184) | ||
320 | /* CPU/SLP Error status 1 */ | ||
321 | |||
322 | #define EXTENDED_GPIO_REG regptr(MSP_SLP_BASE + 0x188) | ||
323 | /* Extended GPIO register */ | ||
324 | |||
325 | /* System Error registers */ | ||
326 | #define SLP_ERR_STS_REG regptr(MSP_SLP_BASE + 0x190) | ||
327 | /* Int status for SLP errors */ | ||
328 | #define SLP_ERR_MSK_REG regptr(MSP_SLP_BASE + 0x194) | ||
329 | /* Int mask for SLP errors */ | ||
330 | #define SLP_ELB_ERST_REG regptr(MSP_SLP_BASE + 0x198) | ||
331 | /* External ELB reset */ | ||
332 | #define SLP_BOOT_STS_REG regptr(MSP_SLP_BASE + 0x19C) | ||
333 | /* Boot Status */ | ||
334 | |||
335 | /* Extended ELB addressing */ | ||
336 | #define CS0_EXT_ADDR_REG regptr(MSP_SLP_BASE + 0x1A0) | ||
337 | /* CS0 Extended address */ | ||
338 | #define CS1_EXT_ADDR_REG regptr(MSP_SLP_BASE + 0x1A4) | ||
339 | /* CS1 Extended address */ | ||
340 | #define CS2_EXT_ADDR_REG regptr(MSP_SLP_BASE + 0x1A8) | ||
341 | /* CS2 Extended address */ | ||
342 | #define CS3_EXT_ADDR_REG regptr(MSP_SLP_BASE + 0x1AC) | ||
343 | /* CS3 Extended address */ | ||
344 | /* reserved 0x1B0 */ | ||
345 | #define CS5_EXT_ADDR_REG regptr(MSP_SLP_BASE + 0x1B4) | ||
346 | /* CS5 Extended address */ | ||
347 | |||
348 | /* PLL Adjustment registers */ | ||
349 | #define PLL_LOCK_REG regptr(MSP_SLP_BASE + 0x200) | ||
350 | /* PLL0 lock status */ | ||
351 | #define PLL_ARST_REG regptr(MSP_SLP_BASE + 0x204) | ||
352 | /* PLL Analog reset status */ | ||
353 | #define PLL0_ADJ_REG regptr(MSP_SLP_BASE + 0x208) | ||
354 | /* PLL0 Adjustment value */ | ||
355 | #define PLL1_ADJ_REG regptr(MSP_SLP_BASE + 0x20C) | ||
356 | /* PLL1 Adjustment value */ | ||
357 | |||
358 | /* | ||
359 | *************************************************************************** | ||
360 | * Peripheral Register definitions * | ||
361 | *************************************************************************** | ||
362 | */ | ||
363 | |||
364 | /* Peripheral status */ | ||
365 | #define PER_CTRL_REG regptr(MSP_PER_BASE + 0x50) | ||
366 | /* Peripheral control register */ | ||
367 | #define PER_STS_REG regptr(MSP_PER_BASE + 0x54) | ||
368 | /* Peripheral status register */ | ||
369 | |||
370 | /* SPI/MPI Registers */ | ||
371 | #define SMPI_TX_SZ_REG regptr(MSP_PER_BASE + 0x58) | ||
372 | /* SPI/MPI Tx Size register */ | ||
373 | #define SMPI_RX_SZ_REG regptr(MSP_PER_BASE + 0x5C) | ||
374 | /* SPI/MPI Rx Size register */ | ||
375 | #define SMPI_CTL_REG regptr(MSP_PER_BASE + 0x60) | ||
376 | /* SPI/MPI Control register */ | ||
377 | #define SMPI_MS_REG regptr(MSP_PER_BASE + 0x64) | ||
378 | /* SPI/MPI Chip Select reg */ | ||
379 | #define SMPI_CORE_DATA_REG regptr(MSP_PER_BASE + 0xC0) | ||
380 | /* SPI/MPI Core Data reg */ | ||
381 | #define SMPI_CORE_CTRL_REG regptr(MSP_PER_BASE + 0xC4) | ||
382 | /* SPI/MPI Core Control reg */ | ||
383 | #define SMPI_CORE_STAT_REG regptr(MSP_PER_BASE + 0xC8) | ||
384 | /* SPI/MPI Core Status reg */ | ||
385 | #define SMPI_CORE_SSEL_REG regptr(MSP_PER_BASE + 0xCC) | ||
386 | /* SPI/MPI Core Ssel reg */ | ||
387 | #define SMPI_FIFO_REG regptr(MSP_PER_BASE + 0xD0) | ||
388 | /* SPI/MPI Data FIFO reg */ | ||
389 | |||
390 | /* Peripheral Block Error Registers */ | ||
391 | #define PER_ERR_STS_REG regptr(MSP_PER_BASE + 0x70) | ||
392 | /* Error Bit Status Register */ | ||
393 | #define PER_ERR_MSK_REG regptr(MSP_PER_BASE + 0x74) | ||
394 | /* Error Bit Mask Register */ | ||
395 | #define PER_HDR1_REG regptr(MSP_PER_BASE + 0x78) | ||
396 | /* Error Header 1 Register */ | ||
397 | #define PER_HDR2_REG regptr(MSP_PER_BASE + 0x7C) | ||
398 | /* Error Header 2 Register */ | ||
399 | |||
400 | /* Peripheral Block Interrupt Registers */ | ||
401 | #define PER_INT_STS_REG regptr(MSP_PER_BASE + 0x80) | ||
402 | /* Interrupt status register */ | ||
403 | #define PER_INT_MSK_REG regptr(MSP_PER_BASE + 0x84) | ||
404 | /* Interrupt Mask Register */ | ||
405 | #define GPIO_INT_STS_REG regptr(MSP_PER_BASE + 0x88) | ||
406 | /* GPIO interrupt status reg */ | ||
407 | #define GPIO_INT_MSK_REG regptr(MSP_PER_BASE + 0x8C) | ||
408 | /* GPIO interrupt MASK Reg */ | ||
409 | |||
410 | /* POLO GPIO registers */ | ||
411 | #define POLO_GPIO_DAT1_REG regptr(MSP_PER_BASE + 0x0E0) | ||
412 | /* Polo GPIO[8:0] data reg */ | ||
413 | #define POLO_GPIO_CFG1_REG regptr(MSP_PER_BASE + 0x0E4) | ||
414 | /* Polo GPIO[7:0] config reg */ | ||
415 | #define POLO_GPIO_CFG2_REG regptr(MSP_PER_BASE + 0x0E8) | ||
416 | /* Polo GPIO[15:8] config reg */ | ||
417 | #define POLO_GPIO_OD1_REG regptr(MSP_PER_BASE + 0x0EC) | ||
418 | /* Polo GPIO[31:0] output drive */ | ||
419 | #define POLO_GPIO_CFG3_REG regptr(MSP_PER_BASE + 0x170) | ||
420 | /* Polo GPIO[23:16] config reg */ | ||
421 | #define POLO_GPIO_DAT2_REG regptr(MSP_PER_BASE + 0x174) | ||
422 | /* Polo GPIO[15:9] data reg */ | ||
423 | #define POLO_GPIO_DAT3_REG regptr(MSP_PER_BASE + 0x178) | ||
424 | /* Polo GPIO[23:16] data reg */ | ||
425 | #define POLO_GPIO_DAT4_REG regptr(MSP_PER_BASE + 0x17C) | ||
426 | /* Polo GPIO[31:24] data reg */ | ||
427 | #define POLO_GPIO_DAT5_REG regptr(MSP_PER_BASE + 0x180) | ||
428 | /* Polo GPIO[39:32] data reg */ | ||
429 | #define POLO_GPIO_DAT6_REG regptr(MSP_PER_BASE + 0x184) | ||
430 | /* Polo GPIO[47:40] data reg */ | ||
431 | #define POLO_GPIO_DAT7_REG regptr(MSP_PER_BASE + 0x188) | ||
432 | /* Polo GPIO[54:48] data reg */ | ||
433 | #define POLO_GPIO_CFG4_REG regptr(MSP_PER_BASE + 0x18C) | ||
434 | /* Polo GPIO[31:24] config reg */ | ||
435 | #define POLO_GPIO_CFG5_REG regptr(MSP_PER_BASE + 0x190) | ||
436 | /* Polo GPIO[39:32] config reg */ | ||
437 | #define POLO_GPIO_CFG6_REG regptr(MSP_PER_BASE + 0x194) | ||
438 | /* Polo GPIO[47:40] config reg */ | ||
439 | #define POLO_GPIO_CFG7_REG regptr(MSP_PER_BASE + 0x198) | ||
440 | /* Polo GPIO[54:48] config reg */ | ||
441 | #define POLO_GPIO_OD2_REG regptr(MSP_PER_BASE + 0x19C) | ||
442 | /* Polo GPIO[54:32] output drive */ | ||
443 | |||
444 | /* Generic GPIO registers */ | ||
445 | #define GPIO_DATA1_REG regptr(MSP_PER_BASE + 0x170) | ||
446 | /* GPIO[1:0] data register */ | ||
447 | #define GPIO_DATA2_REG regptr(MSP_PER_BASE + 0x174) | ||
448 | /* GPIO[5:2] data register */ | ||
449 | #define GPIO_DATA3_REG regptr(MSP_PER_BASE + 0x178) | ||
450 | /* GPIO[9:6] data register */ | ||
451 | #define GPIO_DATA4_REG regptr(MSP_PER_BASE + 0x17C) | ||
452 | /* GPIO[15:10] data register */ | ||
453 | #define GPIO_CFG1_REG regptr(MSP_PER_BASE + 0x180) | ||
454 | /* GPIO[1:0] config register */ | ||
455 | #define GPIO_CFG2_REG regptr(MSP_PER_BASE + 0x184) | ||
456 | /* GPIO[5:2] config register */ | ||
457 | #define GPIO_CFG3_REG regptr(MSP_PER_BASE + 0x188) | ||
458 | /* GPIO[9:6] config register */ | ||
459 | #define GPIO_CFG4_REG regptr(MSP_PER_BASE + 0x18C) | ||
460 | /* GPIO[15:10] config register */ | ||
461 | #define GPIO_OD_REG regptr(MSP_PER_BASE + 0x190) | ||
462 | /* GPIO[15:0] output drive */ | ||
463 | |||
464 | /* | ||
465 | *************************************************************************** | ||
466 | * CPU Interface register definitions * | ||
467 | *************************************************************************** | ||
468 | */ | ||
469 | #define PCI_FLUSH_REG regptr(MSP_CPUIF_BASE + 0x00) | ||
470 | /* PCI-SDRAM queue flush trigger */ | ||
471 | #define OCP_ERR1_REG regptr(MSP_CPUIF_BASE + 0x04) | ||
472 | /* OCP Error Attribute 1 */ | ||
473 | #define OCP_ERR2_REG regptr(MSP_CPUIF_BASE + 0x08) | ||
474 | /* OCP Error Attribute 2 */ | ||
475 | #define OCP_STS_REG regptr(MSP_CPUIF_BASE + 0x0C) | ||
476 | /* OCP Error Status */ | ||
477 | #define CPUIF_PM_REG regptr(MSP_CPUIF_BASE + 0x10) | ||
478 | /* CPU policy configuration */ | ||
479 | #define CPUIF_CFG_REG regptr(MSP_CPUIF_BASE + 0x10) | ||
480 | /* Misc configuration options */ | ||
481 | |||
482 | /* Central Interrupt Controller Registers */ | ||
483 | #define MSP_CIC_BASE (MSP_CPUIF_BASE + 0x8000) | ||
484 | /* Central Interrupt registers */ | ||
485 | #define CIC_EXT_CFG_REG regptr(MSP_CIC_BASE + 0x00) | ||
486 | /* External interrupt config */ | ||
487 | #define CIC_STS_REG regptr(MSP_CIC_BASE + 0x04) | ||
488 | /* CIC Interrupt Status */ | ||
489 | #define CIC_VPE0_MSK_REG regptr(MSP_CIC_BASE + 0x08) | ||
490 | /* VPE0 Interrupt Mask */ | ||
491 | #define CIC_VPE1_MSK_REG regptr(MSP_CIC_BASE + 0x0C) | ||
492 | /* VPE1 Interrupt Mask */ | ||
493 | #define CIC_TC0_MSK_REG regptr(MSP_CIC_BASE + 0x10) | ||
494 | /* Thread Context 0 Int Mask */ | ||
495 | #define CIC_TC1_MSK_REG regptr(MSP_CIC_BASE + 0x14) | ||
496 | /* Thread Context 1 Int Mask */ | ||
497 | #define CIC_TC2_MSK_REG regptr(MSP_CIC_BASE + 0x18) | ||
498 | /* Thread Context 2 Int Mask */ | ||
499 | #define CIC_TC3_MSK_REG regptr(MSP_CIC_BASE + 0x18) | ||
500 | /* Thread Context 3 Int Mask */ | ||
501 | #define CIC_TC4_MSK_REG regptr(MSP_CIC_BASE + 0x18) | ||
502 | /* Thread Context 4 Int Mask */ | ||
503 | #define CIC_PCIMSI_STS_REG regptr(MSP_CIC_BASE + 0x18) | ||
504 | #define CIC_PCIMSI_MSK_REG regptr(MSP_CIC_BASE + 0x18) | ||
505 | #define CIC_PCIFLSH_REG regptr(MSP_CIC_BASE + 0x18) | ||
506 | #define CIC_VPE0_SWINT_REG regptr(MSP_CIC_BASE + 0x08) | ||
507 | |||
508 | |||
509 | /* | ||
510 | *************************************************************************** | ||
511 | * Memory controller registers * | ||
512 | *************************************************************************** | ||
513 | */ | ||
514 | #define MEM_CFG1_REG regptr(MSP_MEM_CFG_BASE + 0x00) | ||
515 | #define MEM_SS_ADDR regptr(MSP_MEM_CFG_BASE + 0x00) | ||
516 | #define MEM_SS_DATA regptr(MSP_MEM_CFG_BASE + 0x04) | ||
517 | #define MEM_SS_WRITE regptr(MSP_MEM_CFG_BASE + 0x08) | ||
518 | |||
519 | /* | ||
520 | *************************************************************************** | ||
521 | * PCI controller registers * | ||
522 | *************************************************************************** | ||
523 | */ | ||
524 | #define PCI_BASE_REG regptr(MSP_PCI_BASE + 0x00) | ||
525 | #define PCI_CONFIG_SPACE_REG regptr(MSP_PCI_BASE + 0x800) | ||
526 | #define PCI_JTAG_DEVID_REG regptr(MSP_SLP_BASE + 0x13c) | ||
527 | |||
528 | /* | ||
529 | ######################################################################## | ||
530 | # Register content & macro definitions # | ||
531 | ######################################################################## | ||
532 | */ | ||
533 | |||
534 | /* | ||
535 | *************************************************************************** | ||
536 | * DEV_ID defines * | ||
537 | *************************************************************************** | ||
538 | */ | ||
539 | #define DEV_ID_PCI_DIS (1 << 26) /* Set if PCI disabled */ | ||
540 | #define DEV_ID_PCI_HOST (1 << 20) /* Set if PCI host */ | ||
541 | #define DEV_ID_SINGLE_PC (1 << 19) /* Set if single PC Card */ | ||
542 | #define DEV_ID_FAMILY (0xff << 8) /* family ID code */ | ||
543 | #define POLO_ZEUS_SUB_FAMILY (0x7 << 16) /* sub family for Polo/Zeus */ | ||
544 | |||
545 | #define MSPFPGA_ID (0x00 << 8) /* you are on your own here */ | ||
546 | #define MSP5000_ID (0x50 << 8) | ||
547 | #define MSP4F00_ID (0x4f << 8) /* FPGA version of MSP4200 */ | ||
548 | #define MSP4E00_ID (0x4f << 8) /* FPGA version of MSP7120 */ | ||
549 | #define MSP4200_ID (0x42 << 8) | ||
550 | #define MSP4000_ID (0x40 << 8) | ||
551 | #define MSP2XXX_ID (0x20 << 8) | ||
552 | #define MSPZEUS_ID (0x10 << 8) | ||
553 | |||
554 | #define MSP2004_SUB_ID (0x0 << 16) | ||
555 | #define MSP2005_SUB_ID (0x1 << 16) | ||
556 | #define MSP2006_SUB_ID (0x1 << 16) | ||
557 | #define MSP2007_SUB_ID (0x2 << 16) | ||
558 | #define MSP2010_SUB_ID (0x3 << 16) | ||
559 | #define MSP2015_SUB_ID (0x4 << 16) | ||
560 | #define MSP2020_SUB_ID (0x5 << 16) | ||
561 | #define MSP2100_SUB_ID (0x6 << 16) | ||
562 | |||
563 | /* | ||
564 | *************************************************************************** | ||
565 | * RESET defines * | ||
566 | *************************************************************************** | ||
567 | */ | ||
568 | #define MSP_GR_RST (0x01 << 0) /* Global reset bit */ | ||
569 | #define MSP_MR_RST (0x01 << 1) /* MIPS reset bit */ | ||
570 | #define MSP_PD_RST (0x01 << 2) /* PVC DMA reset bit */ | ||
571 | #define MSP_PP_RST (0x01 << 3) /* PVC reset bit */ | ||
572 | /* reserved */ | ||
573 | #define MSP_EA_RST (0x01 << 6) /* Mac A reset bit */ | ||
574 | #define MSP_EB_RST (0x01 << 7) /* Mac B reset bit */ | ||
575 | #define MSP_SE_RST (0x01 << 8) /* Security Eng reset bit */ | ||
576 | #define MSP_PB_RST (0x01 << 9) /* Per block reset bit */ | ||
577 | #define MSP_EC_RST (0x01 << 10) /* Mac C reset bit */ | ||
578 | #define MSP_TW_RST (0x01 << 11) /* TWI reset bit */ | ||
579 | #define MSP_SPI_RST (0x01 << 12) /* SPI/MPI reset bit */ | ||
580 | #define MSP_U1_RST (0x01 << 13) /* UART1 reset bit */ | ||
581 | #define MSP_U0_RST (0x01 << 14) /* UART0 reset bit */ | ||
582 | |||
583 | /* | ||
584 | *************************************************************************** | ||
585 | * UART defines * | ||
586 | *************************************************************************** | ||
587 | */ | ||
588 | #ifndef CONFIG_MSP_FPGA | ||
589 | #define MSP_BASE_BAUD 25000000 | ||
590 | #else | ||
591 | #define MSP_BASE_BAUD 6000000 | ||
592 | #endif | ||
593 | #define MSP_UART_REG_LEN 0x20 | ||
594 | |||
595 | /* | ||
596 | *************************************************************************** | ||
597 | * ELB defines * | ||
598 | *************************************************************************** | ||
599 | */ | ||
600 | #define PCCARD_32 0x02 /* Set if is PCCARD 32 (Cardbus) */ | ||
601 | #define SINGLE_PCCARD 0x01 /* Set to enable single PC card */ | ||
602 | |||
603 | /* | ||
604 | *************************************************************************** | ||
605 | * CIC defines * | ||
606 | *************************************************************************** | ||
607 | */ | ||
608 | |||
609 | /* CIC_EXT_CFG_REG */ | ||
610 | #define EXT_INT_POL(eirq) (1 << (eirq + 8)) | ||
611 | #define EXT_INT_EDGE(eirq) (1 << eirq) | ||
612 | |||
613 | #define CIC_EXT_SET_TRIGGER_LEVEL(reg, eirq) (reg &= ~EXT_INT_EDGE(eirq)) | ||
614 | #define CIC_EXT_SET_TRIGGER_EDGE(reg, eirq) (reg |= EXT_INT_EDGE(eirq)) | ||
615 | #define CIC_EXT_SET_ACTIVE_HI(reg, eirq) (reg |= EXT_INT_POL(eirq)) | ||
616 | #define CIC_EXT_SET_ACTIVE_LO(reg, eirq) (reg &= ~EXT_INT_POL(eirq)) | ||
617 | #define CIC_EXT_SET_ACTIVE_RISING CIC_EXT_SET_ACTIVE_HI | ||
618 | #define CIC_EXT_SET_ACTIVE_FALLING CIC_EXT_SET_ACTIVE_LO | ||
619 | |||
620 | #define CIC_EXT_IS_TRIGGER_LEVEL(reg, eirq) \ | ||
621 | ((reg & EXT_INT_EDGE(eirq)) == 0) | ||
622 | #define CIC_EXT_IS_TRIGGER_EDGE(reg, eirq) (reg & EXT_INT_EDGE(eirq)) | ||
623 | #define CIC_EXT_IS_ACTIVE_HI(reg, eirq) (reg & EXT_INT_POL(eirq)) | ||
624 | #define CIC_EXT_IS_ACTIVE_LO(reg, eirq) \ | ||
625 | ((reg & EXT_INT_POL(eirq)) == 0) | ||
626 | #define CIC_EXT_IS_ACTIVE_RISING CIC_EXT_IS_ACTIVE_HI | ||
627 | #define CIC_EXT_IS_ACTIVE_FALLING CIC_EXT_IS_ACTIVE_LO | ||
628 | |||
629 | /* | ||
630 | *************************************************************************** | ||
631 | * Memory Controller defines * | ||
632 | *************************************************************************** | ||
633 | */ | ||
634 | |||
635 | /* Indirect memory controller registers */ | ||
636 | #define DDRC_CFG(n) (n) | ||
637 | #define DDRC_DEBUG(n) (0x04 + n) | ||
638 | #define DDRC_CTL(n) (0x40 + n) | ||
639 | |||
640 | /* Macro to perform DDRC indirect write */ | ||
641 | #define DDRC_INDIRECT_WRITE(reg, mask, value) \ | ||
642 | ({ \ | ||
643 | *MEM_SS_ADDR = (((mask) & 0xf) << 8) | ((reg) & 0xff); \ | ||
644 | *MEM_SS_DATA = (value); \ | ||
645 | *MEM_SS_WRITE = 1; \ | ||
646 | }) | ||
647 | |||
648 | /* | ||
649 | *************************************************************************** | ||
650 | * SPI/MPI Mode * | ||
651 | *************************************************************************** | ||
652 | */ | ||
653 | #define SPI_MPI_RX_BUSY 0x00008000 /* SPI/MPI Receive Busy */ | ||
654 | #define SPI_MPI_FIFO_EMPTY 0x00004000 /* SPI/MPI Fifo Empty */ | ||
655 | #define SPI_MPI_TX_BUSY 0x00002000 /* SPI/MPI Transmit Busy */ | ||
656 | #define SPI_MPI_FIFO_FULL 0x00001000 /* SPI/MPU FIFO full */ | ||
657 | |||
658 | /* | ||
659 | *************************************************************************** | ||
660 | * SPI/MPI Control Register * | ||
661 | *************************************************************************** | ||
662 | */ | ||
663 | #define SPI_MPI_RX_START 0x00000004 /* Start receive command */ | ||
664 | #define SPI_MPI_FLUSH_Q 0x00000002 /* Flush SPI/MPI Queue */ | ||
665 | #define SPI_MPI_TX_START 0x00000001 /* Start Transmit Command */ | ||
666 | |||
667 | #endif /* !_ASM_MSP_REGS_H */ | ||
diff --git a/include/asm-mips/pmc-sierra/msp71xx/msp_slp_int.h b/include/asm-mips/pmc-sierra/msp71xx/msp_slp_int.h new file mode 100644 index 000000000000..96d4c8ce8c83 --- /dev/null +++ b/include/asm-mips/pmc-sierra/msp71xx/msp_slp_int.h | |||
@@ -0,0 +1,141 @@ | |||
1 | /* | ||
2 | * Defines for the MSP interrupt controller. | ||
3 | * | ||
4 | * Copyright (C) 1999 MIPS Technologies, Inc. All rights reserved. | ||
5 | * Author: Carsten Langgaard, carstenl@mips.com | ||
6 | * | ||
7 | * ######################################################################## | ||
8 | * | ||
9 | * This program is free software; you can distribute it and/or modify it | ||
10 | * under the terms of the GNU General Public License (Version 2) as | ||
11 | * published by the Free Software Foundation. | ||
12 | * | ||
13 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
14 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
15 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
16 | * for more details. | ||
17 | * | ||
18 | * You should have received a copy of the GNU General Public License along | ||
19 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
20 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | ||
21 | * | ||
22 | * ######################################################################## | ||
23 | */ | ||
24 | |||
25 | #ifndef _MSP_SLP_INT_H | ||
26 | #define _MSP_SLP_INT_H | ||
27 | |||
28 | /* | ||
29 | * The PMC-Sierra SLP interrupts are arranged in a 3 level cascaded | ||
30 | * hierarchical system. The first level are the direct MIPS interrupts | ||
31 | * and are assigned the interrupt range 0-7. The second level is the SLM | ||
32 | * interrupt controller and is assigned the range 8-39. The third level | ||
33 | * comprises the Peripherial block, the PCI block, the PCI MSI block and | ||
34 | * the SLP. The PCI interrupts and the SLP errors are handled by the | ||
35 | * relevant subsystems so the core interrupt code needs only concern | ||
36 | * itself with the Peripheral block. These are assigned interrupts in | ||
37 | * the range 40-71. | ||
38 | */ | ||
39 | |||
40 | /* | ||
41 | * IRQs directly connected to CPU | ||
42 | */ | ||
43 | #define MSP_MIPS_INTBASE 0 | ||
44 | #define MSP_INT_SW0 0 /* IRQ for swint0, C_SW0 */ | ||
45 | #define MSP_INT_SW1 1 /* IRQ for swint1, C_SW1 */ | ||
46 | #define MSP_INT_MAC0 2 /* IRQ for MAC 0, C_IRQ0 */ | ||
47 | #define MSP_INT_MAC1 3 /* IRQ for MAC 1, C_IRQ1 */ | ||
48 | #define MSP_INT_C_IRQ2 4 /* Wired off, C_IRQ2 */ | ||
49 | #define MSP_INT_VE 5 /* IRQ for Voice Engine, C_IRQ3 */ | ||
50 | #define MSP_INT_SLP 6 /* IRQ for SLM block, C_IRQ4 */ | ||
51 | #define MSP_INT_TIMER 7 /* IRQ for the MIPS timer, C_IRQ5 */ | ||
52 | |||
53 | /* | ||
54 | * IRQs cascaded on CPU interrupt 4 (CAUSE bit 12, C_IRQ4) | ||
55 | * These defines should be tied to the register definition for the SLM | ||
56 | * interrupt routine. For now, just use hard-coded values. | ||
57 | */ | ||
58 | #define MSP_SLP_INTBASE (MSP_MIPS_INTBASE + 8) | ||
59 | #define MSP_INT_EXT0 (MSP_SLP_INTBASE + 0) | ||
60 | /* External interrupt 0 */ | ||
61 | #define MSP_INT_EXT1 (MSP_SLP_INTBASE + 1) | ||
62 | /* External interrupt 1 */ | ||
63 | #define MSP_INT_EXT2 (MSP_SLP_INTBASE + 2) | ||
64 | /* External interrupt 2 */ | ||
65 | #define MSP_INT_EXT3 (MSP_SLP_INTBASE + 3) | ||
66 | /* External interrupt 3 */ | ||
67 | /* Reserved 4-7 */ | ||
68 | |||
69 | /* | ||
70 | ************************************************************************* | ||
71 | * DANGER/DANGER/DANGER/DANGER/DANGER/DANGER/DANGER/DANGER/DANGER/DANGER * | ||
72 | * Some MSP produces have this interrupt labelled as Voice and some are * | ||
73 | * SEC mbox ... * | ||
74 | ************************************************************************* | ||
75 | */ | ||
76 | #define MSP_INT_SLP_VE (MSP_SLP_INTBASE + 8) | ||
77 | /* Cascaded IRQ for Voice Engine*/ | ||
78 | #define MSP_INT_SLP_TDM (MSP_SLP_INTBASE + 9) | ||
79 | /* TDM interrupt */ | ||
80 | #define MSP_INT_SLP_MAC0 (MSP_SLP_INTBASE + 10) | ||
81 | /* Cascaded IRQ for MAC 0 */ | ||
82 | #define MSP_INT_SLP_MAC1 (MSP_SLP_INTBASE + 11) | ||
83 | /* Cascaded IRQ for MAC 1 */ | ||
84 | #define MSP_INT_SEC (MSP_SLP_INTBASE + 12) | ||
85 | /* IRQ for security engine */ | ||
86 | #define MSP_INT_PER (MSP_SLP_INTBASE + 13) | ||
87 | /* Peripheral interrupt */ | ||
88 | #define MSP_INT_TIMER0 (MSP_SLP_INTBASE + 14) | ||
89 | /* SLP timer 0 */ | ||
90 | #define MSP_INT_TIMER1 (MSP_SLP_INTBASE + 15) | ||
91 | /* SLP timer 1 */ | ||
92 | #define MSP_INT_TIMER2 (MSP_SLP_INTBASE + 16) | ||
93 | /* SLP timer 2 */ | ||
94 | #define MSP_INT_SLP_TIMER (MSP_SLP_INTBASE + 17) | ||
95 | /* Cascaded MIPS timer */ | ||
96 | #define MSP_INT_BLKCP (MSP_SLP_INTBASE + 18) | ||
97 | /* Block Copy */ | ||
98 | #define MSP_INT_UART0 (MSP_SLP_INTBASE + 19) | ||
99 | /* UART 0 */ | ||
100 | #define MSP_INT_PCI (MSP_SLP_INTBASE + 20) | ||
101 | /* PCI subsystem */ | ||
102 | #define MSP_INT_PCI_DBELL (MSP_SLP_INTBASE + 21) | ||
103 | /* PCI doorbell */ | ||
104 | #define MSP_INT_PCI_MSI (MSP_SLP_INTBASE + 22) | ||
105 | /* PCI Message Signal */ | ||
106 | #define MSP_INT_PCI_BC0 (MSP_SLP_INTBASE + 23) | ||
107 | /* PCI Block Copy 0 */ | ||
108 | #define MSP_INT_PCI_BC1 (MSP_SLP_INTBASE + 24) | ||
109 | /* PCI Block Copy 1 */ | ||
110 | #define MSP_INT_SLP_ERR (MSP_SLP_INTBASE + 25) | ||
111 | /* SLP error condition */ | ||
112 | #define MSP_INT_MAC2 (MSP_SLP_INTBASE + 26) | ||
113 | /* IRQ for MAC2 */ | ||
114 | /* Reserved 26-31 */ | ||
115 | |||
116 | /* | ||
117 | * IRQs cascaded on SLP PER interrupt (MSP_INT_PER) | ||
118 | */ | ||
119 | #define MSP_PER_INTBASE (MSP_SLP_INTBASE + 32) | ||
120 | /* Reserved 0-1 */ | ||
121 | #define MSP_INT_UART1 (MSP_PER_INTBASE + 2) | ||
122 | /* UART 1 */ | ||
123 | /* Reserved 3-5 */ | ||
124 | #define MSP_INT_2WIRE (MSP_PER_INTBASE + 6) | ||
125 | /* 2-wire */ | ||
126 | #define MSP_INT_TM0 (MSP_PER_INTBASE + 7) | ||
127 | /* Peripheral timer block out 0 */ | ||
128 | #define MSP_INT_TM1 (MSP_PER_INTBASE + 8) | ||
129 | /* Peripheral timer block out 1 */ | ||
130 | /* Reserved 9 */ | ||
131 | #define MSP_INT_SPRX (MSP_PER_INTBASE + 10) | ||
132 | /* SPI RX complete */ | ||
133 | #define MSP_INT_SPTX (MSP_PER_INTBASE + 11) | ||
134 | /* SPI TX complete */ | ||
135 | #define MSP_INT_GPIO (MSP_PER_INTBASE + 12) | ||
136 | /* GPIO */ | ||
137 | #define MSP_INT_PER_ERR (MSP_PER_INTBASE + 13) | ||
138 | /* Peripheral error */ | ||
139 | /* Reserved 14-31 */ | ||
140 | |||
141 | #endif /* !_MSP_SLP_INT_H */ | ||
diff --git a/include/asm-mips/processor.h b/include/asm-mips/processor.h index 5f80ba71ab92..1d8b9a8ae324 100644 --- a/include/asm-mips/processor.h +++ b/include/asm-mips/processor.h | |||
@@ -82,10 +82,6 @@ struct mips_fpu_struct { | |||
82 | unsigned int fcr31; | 82 | unsigned int fcr31; |
83 | }; | 83 | }; |
84 | 84 | ||
85 | #define INIT_FPU { \ | ||
86 | {0,} \ | ||
87 | } | ||
88 | |||
89 | #define NUM_DSP_REGS 6 | 85 | #define NUM_DSP_REGS 6 |
90 | 86 | ||
91 | typedef __u32 dspreg_t; | 87 | typedef __u32 dspreg_t; |
@@ -95,8 +91,6 @@ struct mips_dsp_state { | |||
95 | unsigned int dspcontrol; | 91 | unsigned int dspcontrol; |
96 | }; | 92 | }; |
97 | 93 | ||
98 | #define INIT_DSP {{0,},} | ||
99 | |||
100 | #define INIT_CPUMASK { \ | 94 | #define INIT_CPUMASK { \ |
101 | {0,} \ | 95 | {0,} \ |
102 | } | 96 | } |
@@ -155,41 +149,63 @@ struct thread_struct { | |||
155 | #define MF_N64 0 | 149 | #define MF_N64 0 |
156 | 150 | ||
157 | #ifdef CONFIG_MIPS_MT_FPAFF | 151 | #ifdef CONFIG_MIPS_MT_FPAFF |
158 | #define FPAFF_INIT 0, INIT_CPUMASK, | 152 | #define FPAFF_INIT \ |
153 | .emulated_fp = 0, \ | ||
154 | .user_cpus_allowed = INIT_CPUMASK, | ||
159 | #else | 155 | #else |
160 | #define FPAFF_INIT | 156 | #define FPAFF_INIT |
161 | #endif /* CONFIG_MIPS_MT_FPAFF */ | 157 | #endif /* CONFIG_MIPS_MT_FPAFF */ |
162 | 158 | ||
163 | #define INIT_THREAD { \ | 159 | #define INIT_THREAD { \ |
164 | /* \ | 160 | /* \ |
165 | * saved main processor registers \ | 161 | * Saved main processor registers \ |
166 | */ \ | 162 | */ \ |
167 | 0, 0, 0, 0, 0, 0, 0, 0, \ | 163 | .reg16 = 0, \ |
168 | 0, 0, 0, \ | 164 | .reg17 = 0, \ |
169 | /* \ | 165 | .reg18 = 0, \ |
170 | * saved cp0 stuff \ | 166 | .reg19 = 0, \ |
171 | */ \ | 167 | .reg20 = 0, \ |
172 | 0, \ | 168 | .reg21 = 0, \ |
173 | /* \ | 169 | .reg22 = 0, \ |
174 | * saved fpu/fpu emulator stuff \ | 170 | .reg23 = 0, \ |
175 | */ \ | 171 | .reg29 = 0, \ |
176 | INIT_FPU, \ | 172 | .reg30 = 0, \ |
177 | /* \ | 173 | .reg31 = 0, \ |
178 | * fpu affinity state (null if not FPAFF) \ | 174 | /* \ |
179 | */ \ | 175 | * Saved cp0 stuff \ |
180 | FPAFF_INIT \ | 176 | */ \ |
181 | /* \ | 177 | .cp0_status = 0, \ |
182 | * saved dsp/dsp emulator stuff \ | 178 | /* \ |
183 | */ \ | 179 | * Saved FPU/FPU emulator stuff \ |
184 | INIT_DSP, \ | 180 | */ \ |
185 | /* \ | 181 | .fpu = { \ |
186 | * Other stuff associated with the process \ | 182 | .fpr = {0,}, \ |
187 | */ \ | 183 | .fcr31 = 0, \ |
188 | 0, 0, 0, 0, \ | 184 | }, \ |
189 | /* \ | 185 | /* \ |
190 | * For now the default is to fix address errors \ | 186 | * FPU affinity state (null if not FPAFF) \ |
191 | */ \ | 187 | */ \ |
192 | MF_FIXADE, 0, 0 \ | 188 | FPAFF_INIT \ |
189 | /* \ | ||
190 | * Saved DSP stuff \ | ||
191 | */ \ | ||
192 | .dsp = { \ | ||
193 | .dspr = {0, }, \ | ||
194 | .dspcontrol = 0, \ | ||
195 | }, \ | ||
196 | /* \ | ||
197 | * Other stuff associated with the process \ | ||
198 | */ \ | ||
199 | .cp0_badvaddr = 0, \ | ||
200 | .cp0_baduaddr = 0, \ | ||
201 | .error_code = 0, \ | ||
202 | .trap_no = 0, \ | ||
203 | /* \ | ||
204 | * For now the default is to fix address errors \ | ||
205 | */ \ | ||
206 | .mflags = MF_FIXADE, \ | ||
207 | .irix_trampoline = 0, \ | ||
208 | .irix_oldctx = 0, \ | ||
193 | } | 209 | } |
194 | 210 | ||
195 | struct task_struct; | 211 | struct task_struct; |
@@ -237,7 +253,7 @@ unsigned long get_wchan(struct task_struct *p); | |||
237 | 253 | ||
238 | #define ARCH_HAS_PREFETCH | 254 | #define ARCH_HAS_PREFETCH |
239 | 255 | ||
240 | extern inline void prefetch(const void *addr) | 256 | static inline void prefetch(const void *addr) |
241 | { | 257 | { |
242 | __asm__ __volatile__( | 258 | __asm__ __volatile__( |
243 | " .set mips4 \n" | 259 | " .set mips4 \n" |
diff --git a/include/asm-mips/serial.h b/include/asm-mips/serial.h index ce51213d84f9..c07ebd8eb9e7 100644 --- a/include/asm-mips/serial.h +++ b/include/asm-mips/serial.h | |||
@@ -19,159 +19,4 @@ | |||
19 | */ | 19 | */ |
20 | #define BASE_BAUD (1843200 / 16) | 20 | #define BASE_BAUD (1843200 / 16) |
21 | 21 | ||
22 | /* Standard COM flags (except for COM4, because of the 8514 problem) */ | ||
23 | #ifdef CONFIG_SERIAL_DETECT_IRQ | ||
24 | #define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST | ASYNC_AUTO_IRQ) | ||
25 | #define STD_COM4_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_AUTO_IRQ) | ||
26 | #else | ||
27 | #define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST) | ||
28 | #define STD_COM4_FLAGS ASYNC_BOOT_AUTOCONF | ||
29 | #endif | ||
30 | |||
31 | #ifdef CONFIG_MACH_JAZZ | ||
32 | #include <asm/jazz.h> | ||
33 | |||
34 | #ifndef CONFIG_OLIVETTI_M700 | ||
35 | /* Some Jazz machines seem to have an 8MHz crystal clock but I don't know | ||
36 | exactly which ones ... XXX */ | ||
37 | #define JAZZ_BASE_BAUD ( 8000000 / 16 ) /* ( 3072000 / 16) */ | ||
38 | #else | ||
39 | /* but the M700 isn't such a strange beast */ | ||
40 | #define JAZZ_BASE_BAUD BASE_BAUD | ||
41 | #endif | ||
42 | |||
43 | #define _JAZZ_SERIAL_INIT(int, base) \ | ||
44 | { .baud_base = JAZZ_BASE_BAUD, .irq = int, .flags = STD_COM_FLAGS, \ | ||
45 | .iomem_base = (u8 *) base, .iomem_reg_shift = 0, \ | ||
46 | .io_type = SERIAL_IO_MEM } | ||
47 | #define JAZZ_SERIAL_PORT_DEFNS \ | ||
48 | _JAZZ_SERIAL_INIT(JAZZ_SERIAL1_IRQ, JAZZ_SERIAL1_BASE), \ | ||
49 | _JAZZ_SERIAL_INIT(JAZZ_SERIAL2_IRQ, JAZZ_SERIAL2_BASE), | ||
50 | #else | ||
51 | #define JAZZ_SERIAL_PORT_DEFNS | ||
52 | #endif | ||
53 | |||
54 | /* | ||
55 | * Galileo EV64120 evaluation board | ||
56 | */ | ||
57 | #ifdef CONFIG_MIPS_EV64120 | ||
58 | #include <mach-gt64120.h> | ||
59 | #define EV64120_SERIAL_PORT_DEFNS \ | ||
60 | { .baud_base = EV64120_BASE_BAUD, .irq = EV64120_UART_IRQ, \ | ||
61 | .flags = STD_COM_FLAGS, \ | ||
62 | .iomem_base = EV64120_UART0_REGS_BASE, .iomem_reg_shift = 2, \ | ||
63 | .io_type = SERIAL_IO_MEM }, \ | ||
64 | { .baud_base = EV64120_BASE_BAUD, .irq = EV64120_UART_IRQ, \ | ||
65 | .flags = STD_COM_FLAGS, \ | ||
66 | .iomem_base = EV64120_UART1_REGS_BASE, .iomem_reg_shift = 2, \ | ||
67 | .io_type = SERIAL_IO_MEM }, | ||
68 | #else | ||
69 | #define EV64120_SERIAL_PORT_DEFNS | ||
70 | #endif | ||
71 | |||
72 | #ifdef CONFIG_HAVE_STD_PC_SERIAL_PORT | ||
73 | #define STD_SERIAL_PORT_DEFNS \ | ||
74 | /* UART CLK PORT IRQ FLAGS */ \ | ||
75 | { 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS }, /* ttyS0 */ \ | ||
76 | { 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS }, /* ttyS1 */ \ | ||
77 | { 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS }, /* ttyS2 */ \ | ||
78 | { 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS }, /* ttyS3 */ | ||
79 | |||
80 | #else /* CONFIG_HAVE_STD_PC_SERIAL_PORTS */ | ||
81 | #define STD_SERIAL_PORT_DEFNS | ||
82 | #endif /* CONFIG_HAVE_STD_PC_SERIAL_PORTS */ | ||
83 | |||
84 | #ifdef CONFIG_MOMENCO_OCELOT_3 | ||
85 | #define OCELOT_3_BASE_BAUD ( 20000000 / 16 ) | ||
86 | #define OCELOT_3_SERIAL_IRQ 6 | ||
87 | #define OCELOT_3_SERIAL_BASE (signed)0xfd000020 | ||
88 | |||
89 | #define _OCELOT_3_SERIAL_INIT(int, base) \ | ||
90 | { .baud_base = OCELOT_3_BASE_BAUD, irq: int, \ | ||
91 | .flags = STD_COM_FLAGS, \ | ||
92 | .iomem_base = (u8 *) base, iomem_reg_shift: 2, \ | ||
93 | io_type: SERIAL_IO_MEM } | ||
94 | |||
95 | #define MOMENCO_OCELOT_3_SERIAL_PORT_DEFNS \ | ||
96 | _OCELOT_3_SERIAL_INIT(OCELOT_3_SERIAL_IRQ, OCELOT_3_SERIAL_BASE) | ||
97 | #else | ||
98 | #define MOMENCO_OCELOT_3_SERIAL_PORT_DEFNS | ||
99 | #endif | ||
100 | |||
101 | #ifdef CONFIG_MOMENCO_OCELOT | ||
102 | /* Ordinary NS16552 duart with a 20MHz crystal. */ | ||
103 | #define OCELOT_BASE_BAUD ( 20000000 / 16 ) | ||
104 | |||
105 | #define OCELOT_SERIAL1_IRQ 4 | ||
106 | #define OCELOT_SERIAL1_BASE 0xe0001020 | ||
107 | |||
108 | #define _OCELOT_SERIAL_INIT(int, base) \ | ||
109 | { .baud_base = OCELOT_BASE_BAUD, .irq = int, .flags = STD_COM_FLAGS, \ | ||
110 | .iomem_base = (u8 *) base, .iomem_reg_shift = 2, \ | ||
111 | .io_type = SERIAL_IO_MEM } | ||
112 | #define MOMENCO_OCELOT_SERIAL_PORT_DEFNS \ | ||
113 | _OCELOT_SERIAL_INIT(OCELOT_SERIAL1_IRQ, OCELOT_SERIAL1_BASE) | ||
114 | #else | ||
115 | #define MOMENCO_OCELOT_SERIAL_PORT_DEFNS | ||
116 | #endif | ||
117 | |||
118 | #ifdef CONFIG_MOMENCO_OCELOT_C | ||
119 | /* Ordinary NS16552 duart with a 20MHz crystal. */ | ||
120 | #define OCELOT_C_BASE_BAUD ( 20000000 / 16 ) | ||
121 | |||
122 | #define OCELOT_C_SERIAL1_IRQ 80 | ||
123 | #define OCELOT_C_SERIAL1_BASE 0xfd000020 | ||
124 | |||
125 | #define OCELOT_C_SERIAL2_IRQ 81 | ||
126 | #define OCELOT_C_SERIAL2_BASE 0xfd000000 | ||
127 | |||
128 | #define _OCELOT_C_SERIAL_INIT(int, base) \ | ||
129 | { .baud_base = OCELOT_C_BASE_BAUD, \ | ||
130 | .irq = (int), \ | ||
131 | .flags = STD_COM_FLAGS, \ | ||
132 | .iomem_base = (u8 *) base, \ | ||
133 | .iomem_reg_shift = 2, \ | ||
134 | .io_type = SERIAL_IO_MEM \ | ||
135 | } | ||
136 | #define MOMENCO_OCELOT_C_SERIAL_PORT_DEFNS \ | ||
137 | _OCELOT_C_SERIAL_INIT(OCELOT_C_SERIAL1_IRQ, OCELOT_C_SERIAL1_BASE), \ | ||
138 | _OCELOT_C_SERIAL_INIT(OCELOT_C_SERIAL2_IRQ, OCELOT_C_SERIAL2_BASE) | ||
139 | #else | ||
140 | #define MOMENCO_OCELOT_C_SERIAL_PORT_DEFNS | ||
141 | #endif | ||
142 | |||
143 | #ifdef CONFIG_DDB5477 | ||
144 | #include <asm/ddb5xxx/ddb5477.h> | ||
145 | #define DDB5477_SERIAL_PORT_DEFNS \ | ||
146 | { .baud_base = BASE_BAUD, .irq = VRC5477_IRQ_UART0, \ | ||
147 | .flags = STD_COM_FLAGS, .iomem_base = (u8*)0xbfa04200, \ | ||
148 | .iomem_reg_shift = 3, .io_type = SERIAL_IO_MEM}, \ | ||
149 | { .baud_base = BASE_BAUD, .irq = VRC5477_IRQ_UART1, \ | ||
150 | .flags = STD_COM_FLAGS, .iomem_base = (u8*)0xbfa04240, \ | ||
151 | .iomem_reg_shift = 3, .io_type = SERIAL_IO_MEM}, | ||
152 | #else | ||
153 | #define DDB5477_SERIAL_PORT_DEFNS | ||
154 | #endif | ||
155 | |||
156 | #ifdef CONFIG_SGI_IP32 | ||
157 | /* | ||
158 | * The IP32 (SGI O2) has standard serial ports (UART 16550A) mapped in memory | ||
159 | * They are initialized in ip32_setup | ||
160 | */ | ||
161 | #define IP32_SERIAL_PORT_DEFNS \ | ||
162 | {},{}, | ||
163 | #else | ||
164 | #define IP32_SERIAL_PORT_DEFNS | ||
165 | #endif /* CONFIG_SGI_IP32 */ | ||
166 | |||
167 | #define SERIAL_PORT_DFNS \ | ||
168 | DDB5477_SERIAL_PORT_DEFNS \ | ||
169 | EV64120_SERIAL_PORT_DEFNS \ | ||
170 | IP32_SERIAL_PORT_DEFNS \ | ||
171 | JAZZ_SERIAL_PORT_DEFNS \ | ||
172 | STD_SERIAL_PORT_DEFNS \ | ||
173 | MOMENCO_OCELOT_C_SERIAL_PORT_DEFNS \ | ||
174 | MOMENCO_OCELOT_SERIAL_PORT_DEFNS \ | ||
175 | MOMENCO_OCELOT_3_SERIAL_PORT_DEFNS | ||
176 | |||
177 | #endif /* _ASM_SERIAL_H */ | 22 | #endif /* _ASM_SERIAL_H */ |
diff --git a/include/asm-mips/smp.h b/include/asm-mips/smp.h index 1608fd71d6f7..13aef6af422c 100644 --- a/include/asm-mips/smp.h +++ b/include/asm-mips/smp.h | |||
@@ -49,13 +49,6 @@ extern struct call_data_struct *call_data; | |||
49 | extern cpumask_t phys_cpu_present_map; | 49 | extern cpumask_t phys_cpu_present_map; |
50 | #define cpu_possible_map phys_cpu_present_map | 50 | #define cpu_possible_map phys_cpu_present_map |
51 | 51 | ||
52 | extern cpumask_t cpu_callout_map; | ||
53 | /* We don't mark CPUs online until __cpu_up(), so we need another measure */ | ||
54 | static inline int num_booting_cpus(void) | ||
55 | { | ||
56 | return cpus_weight(cpu_callout_map); | ||
57 | } | ||
58 | |||
59 | /* | 52 | /* |
60 | * These are defined by the board-specific code. | 53 | * These are defined by the board-specific code. |
61 | */ | 54 | */ |
diff --git a/include/asm-mips/sni.h b/include/asm-mips/sni.h index f257509b914f..ddaf36a1e389 100644 --- a/include/asm-mips/sni.h +++ b/include/asm-mips/sni.h | |||
@@ -146,9 +146,6 @@ extern unsigned int sni_brd_type; | |||
146 | #define SNI_A20R_IRQ_BASE MIPS_CPU_IRQ_BASE | 146 | #define SNI_A20R_IRQ_BASE MIPS_CPU_IRQ_BASE |
147 | #define SNI_A20R_IRQ_TIMER (SNI_A20R_IRQ_BASE+5) | 147 | #define SNI_A20R_IRQ_TIMER (SNI_A20R_IRQ_BASE+5) |
148 | 148 | ||
149 | #define SNI_DS1216_A20R_BASE 0xbc081ffc | ||
150 | #define SNI_DS1216_RM200_BASE 0xbcd41ffc | ||
151 | |||
152 | #define SNI_PCIT_INT_REG 0xbfff000c | 149 | #define SNI_PCIT_INT_REG 0xbfff000c |
153 | 150 | ||
154 | #define SNI_PCIT_INT_START 24 | 151 | #define SNI_PCIT_INT_START 24 |
diff --git a/include/asm-mips/system.h b/include/asm-mips/system.h index bb0b289dbc9e..46bdb3f566f9 100644 --- a/include/asm-mips/system.h +++ b/include/asm-mips/system.h | |||
@@ -44,7 +44,7 @@ struct task_struct; | |||
44 | * different thread. | 44 | * different thread. |
45 | */ | 45 | */ |
46 | 46 | ||
47 | #define switch_to(prev,next,last) \ | 47 | #define __mips_mt_fpaff_switch_to(prev) \ |
48 | do { \ | 48 | do { \ |
49 | if (cpu_has_fpu && \ | 49 | if (cpu_has_fpu && \ |
50 | (prev->thread.mflags & MF_FPUBOUND) && \ | 50 | (prev->thread.mflags & MF_FPUBOUND) && \ |
@@ -52,24 +52,24 @@ do { \ | |||
52 | prev->thread.mflags &= ~MF_FPUBOUND; \ | 52 | prev->thread.mflags &= ~MF_FPUBOUND; \ |
53 | prev->cpus_allowed = prev->thread.user_cpus_allowed; \ | 53 | prev->cpus_allowed = prev->thread.user_cpus_allowed; \ |
54 | } \ | 54 | } \ |
55 | if (cpu_has_dsp) \ | ||
56 | __save_dsp(prev); \ | ||
57 | next->thread.emulated_fp = 0; \ | 55 | next->thread.emulated_fp = 0; \ |
58 | (last) = resume(prev, next, task_thread_info(next)); \ | ||
59 | if (cpu_has_dsp) \ | ||
60 | __restore_dsp(current); \ | ||
61 | } while(0) | 56 | } while(0) |
62 | 57 | ||
63 | #else | 58 | #else |
59 | #define __mips_mt_fpaff_switch_to(prev) do { (void) (prev); } while (0) | ||
60 | #endif | ||
61 | |||
64 | #define switch_to(prev,next,last) \ | 62 | #define switch_to(prev,next,last) \ |
65 | do { \ | 63 | do { \ |
64 | __mips_mt_fpaff_switch_to(prev); \ | ||
66 | if (cpu_has_dsp) \ | 65 | if (cpu_has_dsp) \ |
67 | __save_dsp(prev); \ | 66 | __save_dsp(prev); \ |
68 | (last) = resume(prev, next, task_thread_info(next)); \ | 67 | (last) = resume(prev, next, task_thread_info(next)); \ |
69 | if (cpu_has_dsp) \ | 68 | if (cpu_has_dsp) \ |
70 | __restore_dsp(current); \ | 69 | __restore_dsp(current); \ |
70 | if (cpu_has_userlocal) \ | ||
71 | write_c0_userlocal(task_thread_info(current)->tp_value);\ | ||
71 | } while(0) | 72 | } while(0) |
72 | #endif | ||
73 | 73 | ||
74 | /* | 74 | /* |
75 | * On SMP systems, when the scheduler does migration-cost autodetection, | 75 | * On SMP systems, when the scheduler does migration-cost autodetection, |
diff --git a/include/asm-mips/tx4938/rbtx4938.h b/include/asm-mips/tx4938/rbtx4938.h index 0fbedafdcea8..74e7d8061e58 100644 --- a/include/asm-mips/tx4938/rbtx4938.h +++ b/include/asm-mips/tx4938/rbtx4938.h | |||
@@ -105,12 +105,6 @@ | |||
105 | #define rbtx4938_pcireset_ptr \ | 105 | #define rbtx4938_pcireset_ptr \ |
106 | ((volatile unsigned char *)RBTX4938_PCIRESET_ADDR) | 106 | ((volatile unsigned char *)RBTX4938_PCIRESET_ADDR) |
107 | 107 | ||
108 | /* SPI */ | ||
109 | #define RBTX4938_SEEPROM1_CHIPID 0 | ||
110 | #define RBTX4938_SEEPROM2_CHIPID 1 | ||
111 | #define RBTX4938_SEEPROM3_CHIPID 2 | ||
112 | #define RBTX4938_SRTC_CHIPID 3 | ||
113 | |||
114 | /* | 108 | /* |
115 | * IRQ mappings | 109 | * IRQ mappings |
116 | */ | 110 | */ |
diff --git a/include/asm-mips/tx4938/spi.h b/include/asm-mips/tx4938/spi.h index 0dbbab820a5a..6a60c83e152b 100644 --- a/include/asm-mips/tx4938/spi.h +++ b/include/asm-mips/tx4938/spi.h | |||
@@ -14,61 +14,7 @@ | |||
14 | #ifndef __ASM_TX_BOARDS_TX4938_SPI_H | 14 | #ifndef __ASM_TX_BOARDS_TX4938_SPI_H |
15 | #define __ASM_TX_BOARDS_TX4938_SPI_H | 15 | #define __ASM_TX_BOARDS_TX4938_SPI_H |
16 | 16 | ||
17 | /* SPI */ | 17 | extern int spi_eeprom_register(int chipid); |
18 | struct spi_dev_desc { | ||
19 | unsigned int baud; | ||
20 | unsigned short tcss, tcsh, tcsr; /* CS setup/hold/recovery time */ | ||
21 | unsigned int byteorder:1; /* 0:LSB-First, 1:MSB-First */ | ||
22 | unsigned int polarity:1; /* 0:High-Active */ | ||
23 | unsigned int phase:1; /* 0:Sample-Then-Shift */ | ||
24 | }; | ||
25 | |||
26 | extern void txx9_spi_init(unsigned long base, int (*cs_func)(int chipid, int on)) __init; | ||
27 | extern void txx9_spi_irqinit(int irc_irq) __init; | ||
28 | extern int txx9_spi_io(int chipid, struct spi_dev_desc *desc, | ||
29 | unsigned char **inbufs, unsigned int *incounts, | ||
30 | unsigned char **outbufs, unsigned int *outcounts, | ||
31 | int cansleep); | ||
32 | extern int spi_eeprom_write_enable(int chipid, int enable); | ||
33 | extern int spi_eeprom_read_status(int chipid); | ||
34 | extern int spi_eeprom_read(int chipid, int address, unsigned char *buf, int len); | 18 | extern int spi_eeprom_read(int chipid, int address, unsigned char *buf, int len); |
35 | extern int spi_eeprom_write(int chipid, int address, unsigned char *buf, int len); | ||
36 | extern void spi_eeprom_proc_create(struct proc_dir_entry *dir, int chipid) __init; | ||
37 | |||
38 | #define TXX9_IMCLK (txx9_gbus_clock / 2) | ||
39 | |||
40 | /* | ||
41 | * SPI | ||
42 | */ | ||
43 | |||
44 | /* SPMCR : SPI Master Control */ | ||
45 | #define TXx9_SPMCR_OPMODE 0xc0 | ||
46 | #define TXx9_SPMCR_CONFIG 0x40 | ||
47 | #define TXx9_SPMCR_ACTIVE 0x80 | ||
48 | #define TXx9_SPMCR_SPSTP 0x02 | ||
49 | #define TXx9_SPMCR_BCLR 0x01 | ||
50 | |||
51 | /* SPCR0 : SPI Status */ | ||
52 | #define TXx9_SPCR0_TXIFL_MASK 0xc000 | ||
53 | #define TXx9_SPCR0_RXIFL_MASK 0x3000 | ||
54 | #define TXx9_SPCR0_SIDIE 0x0800 | ||
55 | #define TXx9_SPCR0_SOEIE 0x0400 | ||
56 | #define TXx9_SPCR0_RBSIE 0x0200 | ||
57 | #define TXx9_SPCR0_TBSIE 0x0100 | ||
58 | #define TXx9_SPCR0_IFSPSE 0x0010 | ||
59 | #define TXx9_SPCR0_SBOS 0x0004 | ||
60 | #define TXx9_SPCR0_SPHA 0x0002 | ||
61 | #define TXx9_SPCR0_SPOL 0x0001 | ||
62 | |||
63 | /* SPSR : SPI Status */ | ||
64 | #define TXx9_SPSR_TBSI 0x8000 | ||
65 | #define TXx9_SPSR_RBSI 0x4000 | ||
66 | #define TXx9_SPSR_TBS_MASK 0x3800 | ||
67 | #define TXx9_SPSR_RBS_MASK 0x0700 | ||
68 | #define TXx9_SPSR_SPOE 0x0080 | ||
69 | #define TXx9_SPSR_IFSD 0x0008 | ||
70 | #define TXx9_SPSR_SIDLE 0x0004 | ||
71 | #define TXx9_SPSR_STRDY 0x0002 | ||
72 | #define TXx9_SPSR_SRRDY 0x0001 | ||
73 | 19 | ||
74 | #endif /* __ASM_TX_BOARDS_TX4938_SPI_H */ | 20 | #endif /* __ASM_TX_BOARDS_TX4938_SPI_H */ |
diff --git a/include/asm-mips/war.h b/include/asm-mips/war.h index ec0eeebd8802..9de52a5b0f3d 100644 --- a/include/asm-mips/war.h +++ b/include/asm-mips/war.h | |||
@@ -169,10 +169,9 @@ | |||
169 | 169 | ||
170 | /* | 170 | /* |
171 | * On the RM9000 there is a problem which makes the CreateDirtyExclusive | 171 | * On the RM9000 there is a problem which makes the CreateDirtyExclusive |
172 | * cache operation unusable on SMP systems. | 172 | * eache operation unusable on SMP systems. |
173 | */ | 173 | */ |
174 | #if defined(CONFIG_MOMENCO_JAGUAR_ATX) || defined(CONFIG_PMC_YOSEMITE) || \ | 174 | #if defined(CONFIG_PMC_YOSEMITE) || defined(CONFIG_BASLER_EXCITE) |
175 | defined(CONFIG_BASLER_EXCITE) | ||
176 | #define RM9000_CDEX_SMP_WAR 1 | 175 | #define RM9000_CDEX_SMP_WAR 1 |
177 | #endif | 176 | #endif |
178 | 177 | ||
@@ -182,11 +181,10 @@ | |||
182 | * I-cache line worth of instructions being fetched may case spurious | 181 | * I-cache line worth of instructions being fetched may case spurious |
183 | * exceptions. | 182 | * exceptions. |
184 | */ | 183 | */ |
185 | #if defined(CONFIG_BASLER_EXCITE) || defined(CONFIG_MOMENCO_JAGUAR_ATX) || \ | 184 | #if defined(CONFIG_BASLER_EXCITE) || defined(CONFIG_MIPS_ATLAS) || \ |
186 | defined(CONFIG_MIPS_ATLAS) || defined(CONFIG_MIPS_MALTA) || \ | 185 | defined(CONFIG_MIPS_MALTA) || defined(CONFIG_MOMENCO_OCELOT) || \ |
187 | defined(CONFIG_MOMENCO_OCELOT) || defined(CONFIG_MOMENCO_OCELOT_3) || \ | 186 | defined(CONFIG_PMC_YOSEMITE) || defined(CONFIG_SGI_IP32) || \ |
188 | defined(CONFIG_MOMENCO_OCELOT_C) || defined(CONFIG_PMC_YOSEMITE) || \ | 187 | defined(CONFIG_WR_PPMC) |
189 | defined(CONFIG_SGI_IP32) || defined(CONFIG_WR_PPMC) | ||
190 | #define ICACHE_REFILLS_WORKAROUND_WAR 1 | 188 | #define ICACHE_REFILLS_WORKAROUND_WAR 1 |
191 | #endif | 189 | #endif |
192 | 190 | ||
@@ -200,6 +198,14 @@ | |||
200 | #endif | 198 | #endif |
201 | 199 | ||
202 | /* | 200 | /* |
201 | * 34K core erratum: "Problems Executing the TLBR Instruction" | ||
202 | */ | ||
203 | #if defined(CONFIG_PMC_MSP7120_EVAL) || defined(CONFIG_PMC_MSP7120_GW) || \ | ||
204 | defined(CONFIG_PMC_MSP7120_FPGA) | ||
205 | #define MIPS34K_MISSED_ITLB_WAR 1 | ||
206 | #endif | ||
207 | |||
208 | /* | ||
203 | * Workarounds default to off | 209 | * Workarounds default to off |
204 | */ | 210 | */ |
205 | #ifndef ICACHE_REFILLS_WORKAROUND_WAR | 211 | #ifndef ICACHE_REFILLS_WORKAROUND_WAR |
@@ -238,5 +244,8 @@ | |||
238 | #ifndef R10000_LLSC_WAR | 244 | #ifndef R10000_LLSC_WAR |
239 | #define R10000_LLSC_WAR 0 | 245 | #define R10000_LLSC_WAR 0 |
240 | #endif | 246 | #endif |
247 | #ifndef MIPS34K_MISSED_ITLB_WAR | ||
248 | #define MIPS34K_MISSED_ITLB_WAR 0 | ||
249 | #endif | ||
241 | 250 | ||
242 | #endif /* _ASM_WAR_H */ | 251 | #endif /* _ASM_WAR_H */ |
diff --git a/include/asm-mips/watch.h b/include/asm-mips/watch.h deleted file mode 100644 index 6aa90cae1114..000000000000 --- a/include/asm-mips/watch.h +++ /dev/null | |||
@@ -1,35 +0,0 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 1996, 1997, 1998, 2000, 2001 by Ralf Baechle | ||
7 | */ | ||
8 | #ifndef _ASM_WATCH_H | ||
9 | #define _ASM_WATCH_H | ||
10 | |||
11 | #include <linux/linkage.h> | ||
12 | |||
13 | /* | ||
14 | * Types of reference for watch_set() | ||
15 | */ | ||
16 | enum wref_type { | ||
17 | wr_save = 1, | ||
18 | wr_load = 2 | ||
19 | }; | ||
20 | |||
21 | extern asmlinkage void __watch_set(unsigned long addr, enum wref_type ref); | ||
22 | extern asmlinkage void __watch_clear(void); | ||
23 | extern asmlinkage void __watch_reenable(void); | ||
24 | |||
25 | #define watch_set(addr, ref) \ | ||
26 | if (cpu_has_watch) \ | ||
27 | __watch_set(addr, ref) | ||
28 | #define watch_clear() \ | ||
29 | if (cpu_has_watch) \ | ||
30 | __watch_clear() | ||
31 | #define watch_reenable() \ | ||
32 | if (cpu_has_watch) \ | ||
33 | __watch_reenable() | ||
34 | |||
35 | #endif /* _ASM_WATCH_H */ | ||
diff --git a/include/linux/mv643xx.h b/include/linux/mv643xx.h index c6d4ab86b83c..b021b3a2b65a 100644 --- a/include/linux/mv643xx.h +++ b/include/linux/mv643xx.h | |||
@@ -13,10 +13,6 @@ | |||
13 | #ifndef __ASM_MV643XX_H | 13 | #ifndef __ASM_MV643XX_H |
14 | #define __ASM_MV643XX_H | 14 | #define __ASM_MV643XX_H |
15 | 15 | ||
16 | #ifdef __mips__ | ||
17 | #include <asm/addrspace.h> | ||
18 | #include <asm/marvell.h> | ||
19 | #endif | ||
20 | #include <asm/types.h> | 16 | #include <asm/types.h> |
21 | 17 | ||
22 | /****************************************/ | 18 | /****************************************/ |