diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/mips/Kconfig | 13 | ||||
-rw-r--r-- | arch/mips/bcm63xx/irq.c | 22 | ||||
-rw-r--r-- | arch/mips/bcm63xx/setup.c | 6 | ||||
-rw-r--r-- | arch/mips/configs/nlm_xlp_defconfig | 133 | ||||
-rw-r--r-- | arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h | 8 | ||||
-rw-r--r-- | arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h | 1 | ||||
-rw-r--r-- | arch/mips/include/asm/octeon/cvmx-mpi-defs.h | 328 | ||||
-rw-r--r-- | arch/mips/kernel/Makefile | 19 | ||||
-rw-r--r-- | arch/mips/kernel/smp-mt.c | 2 | ||||
-rw-r--r-- | arch/mips/lantiq/xway/sysctrl.c | 2 | ||||
-rw-r--r-- | arch/mips/lib/Makefile | 21 | ||||
-rw-r--r-- | arch/mips/mm/Makefile | 17 | ||||
-rw-r--r-- | arch/mips/netlogic/Kconfig | 15 | ||||
-rw-r--r-- | arch/mips/netlogic/Makefile | 1 | ||||
-rw-r--r-- | arch/mips/netlogic/dts/Makefile | 4 | ||||
-rw-r--r-- | arch/mips/netlogic/dts/xlp_evp.dts | 124 | ||||
-rw-r--r-- | arch/mips/netlogic/xlp/Makefile | 3 | ||||
-rw-r--r-- | arch/mips/netlogic/xlp/of.c | 34 | ||||
-rw-r--r-- | arch/mips/netlogic/xlp/platform.c | 108 | ||||
-rw-r--r-- | arch/mips/netlogic/xlp/setup.c | 32 |
20 files changed, 642 insertions, 251 deletions
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index bbd193b9dfbb..4cd538b42a3f 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
@@ -844,6 +844,7 @@ config NLM_XLP_BOARD | |||
844 | select ZONE_DMA if 64BIT | 844 | select ZONE_DMA if 64BIT |
845 | select SYNC_R4K | 845 | select SYNC_R4K |
846 | select SYS_HAS_EARLY_PRINTK | 846 | select SYS_HAS_EARLY_PRINTK |
847 | select USE_OF | ||
847 | help | 848 | help |
848 | This board is based on Netlogic XLP Processor. | 849 | This board is based on Netlogic XLP Processor. |
849 | Say Y here if you have a XLP based board. | 850 | Say Y here if you have a XLP based board. |
@@ -1892,6 +1893,18 @@ config SIBYTE_DMA_PAGEOPS | |||
1892 | config CPU_HAS_PREFETCH | 1893 | config CPU_HAS_PREFETCH |
1893 | bool | 1894 | bool |
1894 | 1895 | ||
1896 | config CPU_GENERIC_DUMP_TLB | ||
1897 | bool | ||
1898 | default y if !(CPU_R3000 || CPU_R6000 || CPU_R8000 || CPU_TX39XX) | ||
1899 | |||
1900 | config CPU_R4K_FPU | ||
1901 | bool | ||
1902 | default y if !(CPU_R3000 || CPU_R6000 || CPU_TX39XX || CPU_CAVIUM_OCTEON) | ||
1903 | |||
1904 | config CPU_R4K_CACHE_TLB | ||
1905 | bool | ||
1906 | default y if !(CPU_R3000 || CPU_R8000 || CPU_SB1 || CPU_TX39XX || CPU_CAVIUM_OCTEON) | ||
1907 | |||
1895 | choice | 1908 | choice |
1896 | prompt "MIPS MT options" | 1909 | prompt "MIPS MT options" |
1897 | 1910 | ||
diff --git a/arch/mips/bcm63xx/irq.c b/arch/mips/bcm63xx/irq.c index 18e051ad18a5..da24c2bd9b7c 100644 --- a/arch/mips/bcm63xx/irq.c +++ b/arch/mips/bcm63xx/irq.c | |||
@@ -56,8 +56,8 @@ static void __internal_irq_unmask_64(unsigned int irq) __maybe_unused; | |||
56 | #define is_ext_irq_cascaded 0 | 56 | #define is_ext_irq_cascaded 0 |
57 | #define ext_irq_start 0 | 57 | #define ext_irq_start 0 |
58 | #define ext_irq_end 0 | 58 | #define ext_irq_end 0 |
59 | #define ext_irq_count 0 | 59 | #define ext_irq_count 4 |
60 | #define ext_irq_cfg_reg1 0 | 60 | #define ext_irq_cfg_reg1 PERF_EXTIRQ_CFG_REG_6345 |
61 | #define ext_irq_cfg_reg2 0 | 61 | #define ext_irq_cfg_reg2 0 |
62 | #endif | 62 | #endif |
63 | #ifdef CONFIG_BCM63XX_CPU_6348 | 63 | #ifdef CONFIG_BCM63XX_CPU_6348 |
@@ -143,11 +143,15 @@ static void bcm63xx_init_irq(void) | |||
143 | irq_stat_addr += PERF_IRQSTAT_6338_REG; | 143 | irq_stat_addr += PERF_IRQSTAT_6338_REG; |
144 | irq_mask_addr += PERF_IRQMASK_6338_REG; | 144 | irq_mask_addr += PERF_IRQMASK_6338_REG; |
145 | irq_bits = 32; | 145 | irq_bits = 32; |
146 | ext_irq_count = 4; | ||
147 | ext_irq_cfg_reg1 = PERF_EXTIRQ_CFG_REG_6338; | ||
146 | break; | 148 | break; |
147 | case BCM6345_CPU_ID: | 149 | case BCM6345_CPU_ID: |
148 | irq_stat_addr += PERF_IRQSTAT_6345_REG; | 150 | irq_stat_addr += PERF_IRQSTAT_6345_REG; |
149 | irq_mask_addr += PERF_IRQMASK_6345_REG; | 151 | irq_mask_addr += PERF_IRQMASK_6345_REG; |
150 | irq_bits = 32; | 152 | irq_bits = 32; |
153 | ext_irq_count = 4; | ||
154 | ext_irq_cfg_reg1 = PERF_EXTIRQ_CFG_REG_6345; | ||
151 | break; | 155 | break; |
152 | case BCM6348_CPU_ID: | 156 | case BCM6348_CPU_ID: |
153 | irq_stat_addr += PERF_IRQSTAT_6348_REG; | 157 | irq_stat_addr += PERF_IRQSTAT_6348_REG; |
@@ -434,7 +438,8 @@ static int bcm63xx_external_irq_set_type(struct irq_data *d, | |||
434 | reg = bcm_perf_readl(regaddr); | 438 | reg = bcm_perf_readl(regaddr); |
435 | irq %= 4; | 439 | irq %= 4; |
436 | 440 | ||
437 | if (BCMCPU_IS_6348()) { | 441 | switch (bcm63xx_get_cpu_id()) { |
442 | case BCM6348_CPU_ID: | ||
438 | if (levelsense) | 443 | if (levelsense) |
439 | reg |= EXTIRQ_CFG_LEVELSENSE_6348(irq); | 444 | reg |= EXTIRQ_CFG_LEVELSENSE_6348(irq); |
440 | else | 445 | else |
@@ -447,9 +452,13 @@ static int bcm63xx_external_irq_set_type(struct irq_data *d, | |||
447 | reg |= EXTIRQ_CFG_BOTHEDGE_6348(irq); | 452 | reg |= EXTIRQ_CFG_BOTHEDGE_6348(irq); |
448 | else | 453 | else |
449 | reg &= ~EXTIRQ_CFG_BOTHEDGE_6348(irq); | 454 | reg &= ~EXTIRQ_CFG_BOTHEDGE_6348(irq); |
450 | } | 455 | break; |
451 | 456 | ||
452 | if (BCMCPU_IS_6338() || BCMCPU_IS_6358() || BCMCPU_IS_6368()) { | 457 | case BCM6328_CPU_ID: |
458 | case BCM6338_CPU_ID: | ||
459 | case BCM6345_CPU_ID: | ||
460 | case BCM6358_CPU_ID: | ||
461 | case BCM6368_CPU_ID: | ||
453 | if (levelsense) | 462 | if (levelsense) |
454 | reg |= EXTIRQ_CFG_LEVELSENSE(irq); | 463 | reg |= EXTIRQ_CFG_LEVELSENSE(irq); |
455 | else | 464 | else |
@@ -462,6 +471,9 @@ static int bcm63xx_external_irq_set_type(struct irq_data *d, | |||
462 | reg |= EXTIRQ_CFG_BOTHEDGE(irq); | 471 | reg |= EXTIRQ_CFG_BOTHEDGE(irq); |
463 | else | 472 | else |
464 | reg &= ~EXTIRQ_CFG_BOTHEDGE(irq); | 473 | reg &= ~EXTIRQ_CFG_BOTHEDGE(irq); |
474 | break; | ||
475 | default: | ||
476 | BUG(); | ||
465 | } | 477 | } |
466 | 478 | ||
467 | bcm_perf_writel(reg, regaddr); | 479 | bcm_perf_writel(reg, regaddr); |
diff --git a/arch/mips/bcm63xx/setup.c b/arch/mips/bcm63xx/setup.c index 0e74a13639cd..314231be788c 100644 --- a/arch/mips/bcm63xx/setup.c +++ b/arch/mips/bcm63xx/setup.c | |||
@@ -74,6 +74,9 @@ void bcm63xx_machine_reboot(void) | |||
74 | case BCM6338_CPU_ID: | 74 | case BCM6338_CPU_ID: |
75 | perf_regs[0] = PERF_EXTIRQ_CFG_REG_6338; | 75 | perf_regs[0] = PERF_EXTIRQ_CFG_REG_6338; |
76 | break; | 76 | break; |
77 | case BCM6345_CPU_ID: | ||
78 | perf_regs[0] = PERF_EXTIRQ_CFG_REG_6345; | ||
79 | break; | ||
77 | case BCM6348_CPU_ID: | 80 | case BCM6348_CPU_ID: |
78 | perf_regs[0] = PERF_EXTIRQ_CFG_REG_6348; | 81 | perf_regs[0] = PERF_EXTIRQ_CFG_REG_6348; |
79 | break; | 82 | break; |
@@ -83,6 +86,9 @@ void bcm63xx_machine_reboot(void) | |||
83 | } | 86 | } |
84 | 87 | ||
85 | for (i = 0; i < 2; i++) { | 88 | for (i = 0; i < 2; i++) { |
89 | if (!perf_regs[i]) | ||
90 | break; | ||
91 | |||
86 | reg = bcm_perf_readl(perf_regs[i]); | 92 | reg = bcm_perf_readl(perf_regs[i]); |
87 | if (BCMCPU_IS_6348()) { | 93 | if (BCMCPU_IS_6348()) { |
88 | reg &= ~EXTIRQ_CFG_MASK_ALL_6348; | 94 | reg &= ~EXTIRQ_CFG_MASK_ALL_6348; |
diff --git a/arch/mips/configs/nlm_xlp_defconfig b/arch/mips/configs/nlm_xlp_defconfig index 28c6b276c216..43b67a7bb279 100644 --- a/arch/mips/configs/nlm_xlp_defconfig +++ b/arch/mips/configs/nlm_xlp_defconfig | |||
@@ -1,14 +1,12 @@ | |||
1 | CONFIG_NLM_XLP_BOARD=y | 1 | CONFIG_NLM_XLP_BOARD=y |
2 | CONFIG_64BIT=y | 2 | CONFIG_64BIT=y |
3 | CONFIG_PAGE_SIZE_16KB=y | ||
4 | # CONFIG_HW_PERF_EVENTS is not set | ||
3 | CONFIG_KSM=y | 5 | CONFIG_KSM=y |
4 | CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 | 6 | CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 |
5 | CONFIG_SMP=y | 7 | CONFIG_SMP=y |
6 | CONFIG_NO_HZ=y | ||
7 | CONFIG_HIGH_RES_TIMERS=y | ||
8 | # CONFIG_SECCOMP is not set | 8 | # CONFIG_SECCOMP is not set |
9 | CONFIG_USE_OF=y | ||
10 | CONFIG_EXPERIMENTAL=y | 9 | CONFIG_EXPERIMENTAL=y |
11 | CONFIG_CROSS_COMPILE="" | ||
12 | # CONFIG_LOCALVERSION_AUTO is not set | 10 | # CONFIG_LOCALVERSION_AUTO is not set |
13 | CONFIG_SYSVIPC=y | 11 | CONFIG_SYSVIPC=y |
14 | CONFIG_POSIX_MQUEUE=y | 12 | CONFIG_POSIX_MQUEUE=y |
@@ -19,13 +17,13 @@ CONFIG_TASK_DELAY_ACCT=y | |||
19 | CONFIG_TASK_XACCT=y | 17 | CONFIG_TASK_XACCT=y |
20 | CONFIG_TASK_IO_ACCOUNTING=y | 18 | CONFIG_TASK_IO_ACCOUNTING=y |
21 | CONFIG_AUDIT=y | 19 | CONFIG_AUDIT=y |
20 | CONFIG_NO_HZ=y | ||
21 | CONFIG_HIGH_RES_TIMERS=y | ||
22 | CONFIG_CGROUPS=y | 22 | CONFIG_CGROUPS=y |
23 | CONFIG_NAMESPACES=y | 23 | CONFIG_NAMESPACES=y |
24 | CONFIG_BLK_DEV_INITRD=y | 24 | CONFIG_BLK_DEV_INITRD=y |
25 | CONFIG_INITRAMFS_SOURCE="" | ||
26 | CONFIG_RD_BZIP2=y | 25 | CONFIG_RD_BZIP2=y |
27 | CONFIG_RD_LZMA=y | 26 | CONFIG_RD_LZMA=y |
28 | CONFIG_INITRAMFS_COMPRESSION_LZMA=y | ||
29 | CONFIG_KALLSYMS_ALL=y | 27 | CONFIG_KALLSYMS_ALL=y |
30 | CONFIG_EMBEDDED=y | 28 | CONFIG_EMBEDDED=y |
31 | # CONFIG_COMPAT_BRK is not set | 29 | # CONFIG_COMPAT_BRK is not set |
@@ -35,6 +33,29 @@ CONFIG_MODULE_UNLOAD=y | |||
35 | CONFIG_MODVERSIONS=y | 33 | CONFIG_MODVERSIONS=y |
36 | CONFIG_MODULE_SRCVERSION_ALL=y | 34 | CONFIG_MODULE_SRCVERSION_ALL=y |
37 | CONFIG_BLK_DEV_INTEGRITY=y | 35 | CONFIG_BLK_DEV_INTEGRITY=y |
36 | CONFIG_PARTITION_ADVANCED=y | ||
37 | CONFIG_ACORN_PARTITION=y | ||
38 | CONFIG_ACORN_PARTITION_ICS=y | ||
39 | CONFIG_ACORN_PARTITION_RISCIX=y | ||
40 | CONFIG_OSF_PARTITION=y | ||
41 | CONFIG_AMIGA_PARTITION=y | ||
42 | CONFIG_ATARI_PARTITION=y | ||
43 | CONFIG_MAC_PARTITION=y | ||
44 | CONFIG_BSD_DISKLABEL=y | ||
45 | CONFIG_MINIX_SUBPARTITION=y | ||
46 | CONFIG_SOLARIS_X86_PARTITION=y | ||
47 | CONFIG_UNIXWARE_DISKLABEL=y | ||
48 | CONFIG_LDM_PARTITION=y | ||
49 | CONFIG_SGI_PARTITION=y | ||
50 | CONFIG_ULTRIX_PARTITION=y | ||
51 | CONFIG_SUN_PARTITION=y | ||
52 | CONFIG_KARMA_PARTITION=y | ||
53 | CONFIG_EFI_PARTITION=y | ||
54 | CONFIG_SYSV68_PARTITION=y | ||
55 | CONFIG_PCI=y | ||
56 | CONFIG_PCI_DEBUG=y | ||
57 | CONFIG_PCI_REALLOC_ENABLE_AUTO=y | ||
58 | CONFIG_PCI_STUB=y | ||
38 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | 59 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set |
39 | CONFIG_BINFMT_MISC=y | 60 | CONFIG_BINFMT_MISC=y |
40 | CONFIG_MIPS32_COMPAT=y | 61 | CONFIG_MIPS32_COMPAT=y |
@@ -170,7 +191,6 @@ CONFIG_IP_NF_MATCH_ECN=m | |||
170 | CONFIG_IP_NF_MATCH_TTL=m | 191 | CONFIG_IP_NF_MATCH_TTL=m |
171 | CONFIG_IP_NF_FILTER=m | 192 | CONFIG_IP_NF_FILTER=m |
172 | CONFIG_IP_NF_TARGET_REJECT=m | 193 | CONFIG_IP_NF_TARGET_REJECT=m |
173 | CONFIG_IP_NF_TARGET_LOG=m | ||
174 | CONFIG_IP_NF_TARGET_ULOG=m | 194 | CONFIG_IP_NF_TARGET_ULOG=m |
175 | CONFIG_NF_NAT=m | 195 | CONFIG_NF_NAT=m |
176 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 196 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
@@ -186,7 +206,6 @@ CONFIG_IP_NF_ARPTABLES=m | |||
186 | CONFIG_IP_NF_ARPFILTER=m | 206 | CONFIG_IP_NF_ARPFILTER=m |
187 | CONFIG_IP_NF_ARP_MANGLE=m | 207 | CONFIG_IP_NF_ARP_MANGLE=m |
188 | CONFIG_NF_CONNTRACK_IPV6=m | 208 | CONFIG_NF_CONNTRACK_IPV6=m |
189 | CONFIG_IP6_NF_QUEUE=m | ||
190 | CONFIG_IP6_NF_IPTABLES=m | 209 | CONFIG_IP6_NF_IPTABLES=m |
191 | CONFIG_IP6_NF_MATCH_AH=m | 210 | CONFIG_IP6_NF_MATCH_AH=m |
192 | CONFIG_IP6_NF_MATCH_EUI64=m | 211 | CONFIG_IP6_NF_MATCH_EUI64=m |
@@ -197,7 +216,6 @@ CONFIG_IP6_NF_MATCH_IPV6HEADER=m | |||
197 | CONFIG_IP6_NF_MATCH_MH=m | 216 | CONFIG_IP6_NF_MATCH_MH=m |
198 | CONFIG_IP6_NF_MATCH_RT=m | 217 | CONFIG_IP6_NF_MATCH_RT=m |
199 | CONFIG_IP6_NF_TARGET_HL=m | 218 | CONFIG_IP6_NF_TARGET_HL=m |
200 | CONFIG_IP6_NF_TARGET_LOG=m | ||
201 | CONFIG_IP6_NF_FILTER=m | 219 | CONFIG_IP6_NF_FILTER=m |
202 | CONFIG_IP6_NF_TARGET_REJECT=m | 220 | CONFIG_IP6_NF_TARGET_REJECT=m |
203 | CONFIG_IP6_NF_MANGLE=m | 221 | CONFIG_IP6_NF_MANGLE=m |
@@ -248,9 +266,6 @@ CONFIG_IPDDP_ENCAP=y | |||
248 | CONFIG_IPDDP_DECAP=y | 266 | CONFIG_IPDDP_DECAP=y |
249 | CONFIG_X25=m | 267 | CONFIG_X25=m |
250 | CONFIG_LAPB=m | 268 | CONFIG_LAPB=m |
251 | CONFIG_ECONET=m | ||
252 | CONFIG_ECONET_AUNUDP=y | ||
253 | CONFIG_ECONET_NATIVE=y | ||
254 | CONFIG_WAN_ROUTER=m | 269 | CONFIG_WAN_ROUTER=m |
255 | CONFIG_PHONET=m | 270 | CONFIG_PHONET=m |
256 | CONFIG_IEEE802154=m | 271 | CONFIG_IEEE802154=m |
@@ -297,11 +312,21 @@ CONFIG_NET_ACT_SIMP=m | |||
297 | CONFIG_NET_ACT_SKBEDIT=m | 312 | CONFIG_NET_ACT_SKBEDIT=m |
298 | CONFIG_DCB=y | 313 | CONFIG_DCB=y |
299 | CONFIG_NET_PKTGEN=m | 314 | CONFIG_NET_PKTGEN=m |
300 | # CONFIG_WIRELESS is not set | ||
301 | CONFIG_DEVTMPFS=y | 315 | CONFIG_DEVTMPFS=y |
302 | CONFIG_DEVTMPFS_MOUNT=y | 316 | CONFIG_DEVTMPFS_MOUNT=y |
303 | # CONFIG_STANDALONE is not set | 317 | # CONFIG_STANDALONE is not set |
304 | CONFIG_CONNECTOR=y | 318 | CONFIG_CONNECTOR=y |
319 | CONFIG_MTD=y | ||
320 | CONFIG_MTD_CMDLINE_PARTS=y | ||
321 | CONFIG_MTD_CHAR=y | ||
322 | CONFIG_MTD_BLOCK=y | ||
323 | CONFIG_MTD_CFI=y | ||
324 | CONFIG_MTD_CFI_ADV_OPTIONS=y | ||
325 | CONFIG_MTD_CFI_LE_BYTE_SWAP=y | ||
326 | CONFIG_MTD_CFI_GEOMETRY=y | ||
327 | CONFIG_MTD_CFI_INTELEXT=y | ||
328 | CONFIG_MTD_PHYSMAP=y | ||
329 | CONFIG_MTD_PHYSMAP_OF=y | ||
305 | CONFIG_BLK_DEV_LOOP=y | 330 | CONFIG_BLK_DEV_LOOP=y |
306 | CONFIG_BLK_DEV_CRYPTOLOOP=m | 331 | CONFIG_BLK_DEV_CRYPTOLOOP=m |
307 | CONFIG_BLK_DEV_NBD=m | 332 | CONFIG_BLK_DEV_NBD=m |
@@ -310,7 +335,6 @@ CONFIG_BLK_DEV_RAM=y | |||
310 | CONFIG_BLK_DEV_RAM_SIZE=65536 | 335 | CONFIG_BLK_DEV_RAM_SIZE=65536 |
311 | CONFIG_CDROM_PKTCDVD=y | 336 | CONFIG_CDROM_PKTCDVD=y |
312 | CONFIG_RAID_ATTRS=m | 337 | CONFIG_RAID_ATTRS=m |
313 | CONFIG_SCSI=y | ||
314 | CONFIG_SCSI_TGT=m | 338 | CONFIG_SCSI_TGT=m |
315 | CONFIG_BLK_DEV_SD=y | 339 | CONFIG_BLK_DEV_SD=y |
316 | CONFIG_CHR_DEV_ST=m | 340 | CONFIG_CHR_DEV_ST=m |
@@ -337,6 +361,48 @@ CONFIG_SCSI_DH_EMC=m | |||
337 | CONFIG_SCSI_DH_ALUA=m | 361 | CONFIG_SCSI_DH_ALUA=m |
338 | CONFIG_SCSI_OSD_INITIATOR=m | 362 | CONFIG_SCSI_OSD_INITIATOR=m |
339 | CONFIG_SCSI_OSD_ULD=m | 363 | CONFIG_SCSI_OSD_ULD=m |
364 | CONFIG_ATA=y | ||
365 | CONFIG_SATA_AHCI=y | ||
366 | CONFIG_SATA_SIL24=y | ||
367 | # CONFIG_ATA_SFF is not set | ||
368 | CONFIG_NETDEVICES=y | ||
369 | # CONFIG_NET_VENDOR_3COM is not set | ||
370 | # CONFIG_NET_VENDOR_ADAPTEC is not set | ||
371 | # CONFIG_NET_VENDOR_ALTEON is not set | ||
372 | # CONFIG_NET_VENDOR_AMD is not set | ||
373 | # CONFIG_NET_VENDOR_ATHEROS is not set | ||
374 | # CONFIG_NET_VENDOR_BROADCOM is not set | ||
375 | # CONFIG_NET_VENDOR_BROCADE is not set | ||
376 | # CONFIG_NET_VENDOR_CHELSIO is not set | ||
377 | # CONFIG_NET_VENDOR_DEC is not set | ||
378 | # CONFIG_NET_VENDOR_DLINK is not set | ||
379 | # CONFIG_NET_VENDOR_EMULEX is not set | ||
380 | # CONFIG_NET_VENDOR_EXAR is not set | ||
381 | # CONFIG_NET_VENDOR_HP is not set | ||
382 | CONFIG_E1000E=y | ||
383 | # CONFIG_NET_VENDOR_I825XX is not set | ||
384 | CONFIG_SKY2=y | ||
385 | # CONFIG_NET_VENDOR_MELLANOX is not set | ||
386 | # CONFIG_NET_VENDOR_MICREL is not set | ||
387 | # CONFIG_NET_VENDOR_MYRI is not set | ||
388 | # CONFIG_NET_VENDOR_NATSEMI is not set | ||
389 | # CONFIG_NET_VENDOR_NVIDIA is not set | ||
390 | # CONFIG_NET_VENDOR_OKI is not set | ||
391 | # CONFIG_NET_PACKET_ENGINE is not set | ||
392 | # CONFIG_NET_VENDOR_QLOGIC is not set | ||
393 | # CONFIG_NET_VENDOR_REALTEK is not set | ||
394 | # CONFIG_NET_VENDOR_RDC is not set | ||
395 | # CONFIG_NET_VENDOR_SEEQ is not set | ||
396 | # CONFIG_NET_VENDOR_SILAN is not set | ||
397 | # CONFIG_NET_VENDOR_SIS is not set | ||
398 | # CONFIG_NET_VENDOR_SMSC is not set | ||
399 | # CONFIG_NET_VENDOR_STMICRO is not set | ||
400 | # CONFIG_NET_VENDOR_SUN is not set | ||
401 | # CONFIG_NET_VENDOR_TEHUTI is not set | ||
402 | # CONFIG_NET_VENDOR_TI is not set | ||
403 | # CONFIG_NET_VENDOR_TOSHIBA is not set | ||
404 | # CONFIG_NET_VENDOR_VIA is not set | ||
405 | # CONFIG_NET_VENDOR_WIZNET is not set | ||
340 | # CONFIG_INPUT_MOUSEDEV is not set | 406 | # CONFIG_INPUT_MOUSEDEV is not set |
341 | CONFIG_INPUT_EVDEV=y | 407 | CONFIG_INPUT_EVDEV=y |
342 | CONFIG_INPUT_EVBUG=m | 408 | CONFIG_INPUT_EVBUG=m |
@@ -360,16 +426,23 @@ CONFIG_SERIAL_8250_EXTENDED=y | |||
360 | CONFIG_SERIAL_8250_MANY_PORTS=y | 426 | CONFIG_SERIAL_8250_MANY_PORTS=y |
361 | CONFIG_SERIAL_8250_SHARE_IRQ=y | 427 | CONFIG_SERIAL_8250_SHARE_IRQ=y |
362 | CONFIG_SERIAL_8250_RSA=y | 428 | CONFIG_SERIAL_8250_RSA=y |
429 | CONFIG_SERIAL_OF_PLATFORM=y | ||
363 | CONFIG_HW_RANDOM=y | 430 | CONFIG_HW_RANDOM=y |
364 | CONFIG_HW_RANDOM_TIMERIOMEM=m | 431 | CONFIG_HW_RANDOM_TIMERIOMEM=m |
365 | CONFIG_RAW_DRIVER=m | 432 | CONFIG_RAW_DRIVER=m |
366 | # CONFIG_HWMON is not set | 433 | CONFIG_I2C=y |
434 | CONFIG_I2C_CHARDEV=y | ||
435 | CONFIG_I2C_OCORES=y | ||
436 | CONFIG_SENSORS_LM90=y | ||
437 | CONFIG_THERMAL=y | ||
367 | # CONFIG_VGA_CONSOLE is not set | 438 | # CONFIG_VGA_CONSOLE is not set |
368 | # CONFIG_HID_SUPPORT is not set | ||
369 | # CONFIG_USB_SUPPORT is not set | 439 | # CONFIG_USB_SUPPORT is not set |
440 | CONFIG_RTC_CLASS=y | ||
441 | CONFIG_RTC_DRV_DS1374=y | ||
370 | CONFIG_UIO=y | 442 | CONFIG_UIO=y |
371 | CONFIG_UIO_PDRV=m | 443 | CONFIG_UIO_PDRV=m |
372 | CONFIG_UIO_PDRV_GENIRQ=m | 444 | CONFIG_UIO_PDRV_GENIRQ=m |
445 | # CONFIG_IOMMU_SUPPORT is not set | ||
373 | CONFIG_EXT2_FS=y | 446 | CONFIG_EXT2_FS=y |
374 | CONFIG_EXT2_FS_XATTR=y | 447 | CONFIG_EXT2_FS_XATTR=y |
375 | CONFIG_EXT2_FS_POSIX_ACL=y | 448 | CONFIG_EXT2_FS_POSIX_ACL=y |
@@ -381,15 +454,10 @@ CONFIG_EXT4_FS=y | |||
381 | CONFIG_EXT4_FS_POSIX_ACL=y | 454 | CONFIG_EXT4_FS_POSIX_ACL=y |
382 | CONFIG_EXT4_FS_SECURITY=y | 455 | CONFIG_EXT4_FS_SECURITY=y |
383 | CONFIG_GFS2_FS=m | 456 | CONFIG_GFS2_FS=m |
384 | CONFIG_GFS2_FS_LOCKING_DLM=y | ||
385 | CONFIG_OCFS2_FS=m | ||
386 | CONFIG_BTRFS_FS=m | 457 | CONFIG_BTRFS_FS=m |
387 | CONFIG_BTRFS_FS_POSIX_ACL=y | 458 | CONFIG_BTRFS_FS_POSIX_ACL=y |
388 | CONFIG_NILFS2_FS=m | 459 | CONFIG_NILFS2_FS=m |
389 | CONFIG_QUOTA_NETLINK_INTERFACE=y | 460 | CONFIG_QUOTA_NETLINK_INTERFACE=y |
390 | # CONFIG_PRINT_QUOTA_WARNING is not set | ||
391 | CONFIG_QFMT_V1=m | ||
392 | CONFIG_QFMT_V2=m | ||
393 | CONFIG_AUTOFS4_FS=m | 461 | CONFIG_AUTOFS4_FS=m |
394 | CONFIG_FUSE_FS=y | 462 | CONFIG_FUSE_FS=y |
395 | CONFIG_CUSE=m | 463 | CONFIG_CUSE=m |
@@ -415,6 +483,7 @@ CONFIG_HFSPLUS_FS=m | |||
415 | CONFIG_BEFS_FS=m | 483 | CONFIG_BEFS_FS=m |
416 | CONFIG_BFS_FS=m | 484 | CONFIG_BFS_FS=m |
417 | CONFIG_EFS_FS=m | 485 | CONFIG_EFS_FS=m |
486 | CONFIG_JFFS2_FS=y | ||
418 | CONFIG_CRAMFS=m | 487 | CONFIG_CRAMFS=m |
419 | CONFIG_SQUASHFS=m | 488 | CONFIG_SQUASHFS=m |
420 | CONFIG_VXFS_FS=m | 489 | CONFIG_VXFS_FS=m |
@@ -427,7 +496,6 @@ CONFIG_SYSV_FS=m | |||
427 | CONFIG_UFS_FS=m | 496 | CONFIG_UFS_FS=m |
428 | CONFIG_EXOFS_FS=m | 497 | CONFIG_EXOFS_FS=m |
429 | CONFIG_NFS_FS=m | 498 | CONFIG_NFS_FS=m |
430 | CONFIG_NFS_V3=y | ||
431 | CONFIG_NFS_V3_ACL=y | 499 | CONFIG_NFS_V3_ACL=y |
432 | CONFIG_NFS_V4=y | 500 | CONFIG_NFS_V4=y |
433 | CONFIG_NFS_FSCACHE=y | 501 | CONFIG_NFS_FSCACHE=y |
@@ -450,25 +518,6 @@ CONFIG_NCPFS_NLS=y | |||
450 | CONFIG_NCPFS_EXTRAS=y | 518 | CONFIG_NCPFS_EXTRAS=y |
451 | CONFIG_CODA_FS=m | 519 | CONFIG_CODA_FS=m |
452 | CONFIG_AFS_FS=m | 520 | CONFIG_AFS_FS=m |
453 | CONFIG_PARTITION_ADVANCED=y | ||
454 | CONFIG_ACORN_PARTITION=y | ||
455 | CONFIG_ACORN_PARTITION_ICS=y | ||
456 | CONFIG_ACORN_PARTITION_RISCIX=y | ||
457 | CONFIG_OSF_PARTITION=y | ||
458 | CONFIG_AMIGA_PARTITION=y | ||
459 | CONFIG_ATARI_PARTITION=y | ||
460 | CONFIG_MAC_PARTITION=y | ||
461 | CONFIG_BSD_DISKLABEL=y | ||
462 | CONFIG_MINIX_SUBPARTITION=y | ||
463 | CONFIG_SOLARIS_X86_PARTITION=y | ||
464 | CONFIG_UNIXWARE_DISKLABEL=y | ||
465 | CONFIG_LDM_PARTITION=y | ||
466 | CONFIG_SGI_PARTITION=y | ||
467 | CONFIG_ULTRIX_PARTITION=y | ||
468 | CONFIG_SUN_PARTITION=y | ||
469 | CONFIG_KARMA_PARTITION=y | ||
470 | CONFIG_EFI_PARTITION=y | ||
471 | CONFIG_SYSV68_PARTITION=y | ||
472 | CONFIG_NLS=y | 521 | CONFIG_NLS=y |
473 | CONFIG_NLS_DEFAULT="cp437" | 522 | CONFIG_NLS_DEFAULT="cp437" |
474 | CONFIG_NLS_CODEPAGE_437=m | 523 | CONFIG_NLS_CODEPAGE_437=m |
@@ -518,12 +567,10 @@ CONFIG_SCHEDSTATS=y | |||
518 | CONFIG_TIMER_STATS=y | 567 | CONFIG_TIMER_STATS=y |
519 | CONFIG_DEBUG_INFO=y | 568 | CONFIG_DEBUG_INFO=y |
520 | CONFIG_DEBUG_MEMORY_INIT=y | 569 | CONFIG_DEBUG_MEMORY_INIT=y |
521 | CONFIG_SYSCTL_SYSCALL_CHECK=y | ||
522 | CONFIG_SCHED_TRACER=y | 570 | CONFIG_SCHED_TRACER=y |
523 | CONFIG_BLK_DEV_IO_TRACE=y | 571 | CONFIG_BLK_DEV_IO_TRACE=y |
524 | CONFIG_KGDB=y | 572 | CONFIG_KGDB=y |
525 | CONFIG_SECURITY=y | 573 | CONFIG_SECURITY=y |
526 | CONFIG_SECURITY_NETWORK=y | ||
527 | CONFIG_LSM_MMAP_MIN_ADDR=0 | 574 | CONFIG_LSM_MMAP_MIN_ADDR=0 |
528 | CONFIG_SECURITY_SELINUX=y | 575 | CONFIG_SECURITY_SELINUX=y |
529 | CONFIG_SECURITY_SELINUX_BOOTPARAM=y | 576 | CONFIG_SECURITY_SELINUX_BOOTPARAM=y |
diff --git a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h index 1ac5704623f2..dbd5b5ad07a5 100644 --- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h +++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h | |||
@@ -646,10 +646,10 @@ enum bcm63xx_irq { | |||
646 | #define BCM_6328_ENETSW_RXDMA1_IRQ (BCM_6328_HIGH_IRQ_BASE + 1) | 646 | #define BCM_6328_ENETSW_RXDMA1_IRQ (BCM_6328_HIGH_IRQ_BASE + 1) |
647 | #define BCM_6328_ENETSW_RXDMA2_IRQ (BCM_6328_HIGH_IRQ_BASE + 2) | 647 | #define BCM_6328_ENETSW_RXDMA2_IRQ (BCM_6328_HIGH_IRQ_BASE + 2) |
648 | #define BCM_6328_ENETSW_RXDMA3_IRQ (BCM_6328_HIGH_IRQ_BASE + 3) | 648 | #define BCM_6328_ENETSW_RXDMA3_IRQ (BCM_6328_HIGH_IRQ_BASE + 3) |
649 | #define BCM_6328_ENETSW_TXDMA0_IRQ (BCM_6328_HIGH_IRQ_BASE + 4) | 649 | #define BCM_6328_ENETSW_TXDMA0_IRQ 0 |
650 | #define BCM_6328_ENETSW_TXDMA1_IRQ (BCM_6328_HIGH_IRQ_BASE + 5) | 650 | #define BCM_6328_ENETSW_TXDMA1_IRQ 0 |
651 | #define BCM_6328_ENETSW_TXDMA2_IRQ (BCM_6328_HIGH_IRQ_BASE + 6) | 651 | #define BCM_6328_ENETSW_TXDMA2_IRQ 0 |
652 | #define BCM_6328_ENETSW_TXDMA3_IRQ (BCM_6328_HIGH_IRQ_BASE + 7) | 652 | #define BCM_6328_ENETSW_TXDMA3_IRQ 0 |
653 | #define BCM_6328_XTM_IRQ (BCM_6328_HIGH_IRQ_BASE + 31) | 653 | #define BCM_6328_XTM_IRQ (BCM_6328_HIGH_IRQ_BASE + 31) |
654 | #define BCM_6328_XTM_DMA0_IRQ (BCM_6328_HIGH_IRQ_BASE + 11) | 654 | #define BCM_6328_XTM_DMA0_IRQ (BCM_6328_HIGH_IRQ_BASE + 11) |
655 | 655 | ||
diff --git a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h index 5e4b91866586..12963d05da86 100644 --- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h +++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h | |||
@@ -161,6 +161,7 @@ | |||
161 | /* External Interrupt Configuration register */ | 161 | /* External Interrupt Configuration register */ |
162 | #define PERF_EXTIRQ_CFG_REG_6328 0x18 | 162 | #define PERF_EXTIRQ_CFG_REG_6328 0x18 |
163 | #define PERF_EXTIRQ_CFG_REG_6338 0x14 | 163 | #define PERF_EXTIRQ_CFG_REG_6338 0x14 |
164 | #define PERF_EXTIRQ_CFG_REG_6345 0x14 | ||
164 | #define PERF_EXTIRQ_CFG_REG_6348 0x14 | 165 | #define PERF_EXTIRQ_CFG_REG_6348 0x14 |
165 | #define PERF_EXTIRQ_CFG_REG_6358 0x14 | 166 | #define PERF_EXTIRQ_CFG_REG_6358 0x14 |
166 | #define PERF_EXTIRQ_CFG_REG_6368 0x18 | 167 | #define PERF_EXTIRQ_CFG_REG_6368 0x18 |
diff --git a/arch/mips/include/asm/octeon/cvmx-mpi-defs.h b/arch/mips/include/asm/octeon/cvmx-mpi-defs.h new file mode 100644 index 000000000000..4615b102625b --- /dev/null +++ b/arch/mips/include/asm/octeon/cvmx-mpi-defs.h | |||
@@ -0,0 +1,328 @@ | |||
1 | /***********************license start*************** | ||
2 | * Author: Cavium Networks | ||
3 | * | ||
4 | * Contact: support@caviumnetworks.com | ||
5 | * This file is part of the OCTEON SDK | ||
6 | * | ||
7 | * Copyright (c) 2003-2012 Cavium Networks | ||
8 | * | ||
9 | * This file is free software; you can redistribute it and/or modify | ||
10 | * it under the terms of the GNU General Public License, Version 2, as | ||
11 | * published by the Free Software Foundation. | ||
12 | * | ||
13 | * This file is distributed in the hope that it will be useful, but | ||
14 | * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty | ||
15 | * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or | ||
16 | * NONINFRINGEMENT. See the GNU General Public License for more | ||
17 | * details. | ||
18 | * | ||
19 | * You should have received a copy of the GNU General Public License | ||
20 | * along with this file; if not, write to the Free Software | ||
21 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
22 | * or visit http://www.gnu.org/licenses/. | ||
23 | * | ||
24 | * This file may also be available under a different license from Cavium. | ||
25 | * Contact Cavium Networks for more information | ||
26 | ***********************license end**************************************/ | ||
27 | |||
28 | #ifndef __CVMX_MPI_DEFS_H__ | ||
29 | #define __CVMX_MPI_DEFS_H__ | ||
30 | |||
31 | #define CVMX_MPI_CFG (CVMX_ADD_IO_SEG(0x0001070000001000ull)) | ||
32 | #define CVMX_MPI_DATX(offset) (CVMX_ADD_IO_SEG(0x0001070000001080ull) + ((offset) & 15) * 8) | ||
33 | #define CVMX_MPI_STS (CVMX_ADD_IO_SEG(0x0001070000001008ull)) | ||
34 | #define CVMX_MPI_TX (CVMX_ADD_IO_SEG(0x0001070000001010ull)) | ||
35 | |||
36 | union cvmx_mpi_cfg { | ||
37 | uint64_t u64; | ||
38 | struct cvmx_mpi_cfg_s { | ||
39 | #ifdef __BIG_ENDIAN_BITFIELD | ||
40 | uint64_t reserved_29_63:35; | ||
41 | uint64_t clkdiv:13; | ||
42 | uint64_t csena3:1; | ||
43 | uint64_t csena2:1; | ||
44 | uint64_t csena1:1; | ||
45 | uint64_t csena0:1; | ||
46 | uint64_t cslate:1; | ||
47 | uint64_t tritx:1; | ||
48 | uint64_t idleclks:2; | ||
49 | uint64_t cshi:1; | ||
50 | uint64_t csena:1; | ||
51 | uint64_t int_ena:1; | ||
52 | uint64_t lsbfirst:1; | ||
53 | uint64_t wireor:1; | ||
54 | uint64_t clk_cont:1; | ||
55 | uint64_t idlelo:1; | ||
56 | uint64_t enable:1; | ||
57 | #else | ||
58 | uint64_t enable:1; | ||
59 | uint64_t idlelo:1; | ||
60 | uint64_t clk_cont:1; | ||
61 | uint64_t wireor:1; | ||
62 | uint64_t lsbfirst:1; | ||
63 | uint64_t int_ena:1; | ||
64 | uint64_t csena:1; | ||
65 | uint64_t cshi:1; | ||
66 | uint64_t idleclks:2; | ||
67 | uint64_t tritx:1; | ||
68 | uint64_t cslate:1; | ||
69 | uint64_t csena0:1; | ||
70 | uint64_t csena1:1; | ||
71 | uint64_t csena2:1; | ||
72 | uint64_t csena3:1; | ||
73 | uint64_t clkdiv:13; | ||
74 | uint64_t reserved_29_63:35; | ||
75 | #endif | ||
76 | } s; | ||
77 | struct cvmx_mpi_cfg_cn30xx { | ||
78 | #ifdef __BIG_ENDIAN_BITFIELD | ||
79 | uint64_t reserved_29_63:35; | ||
80 | uint64_t clkdiv:13; | ||
81 | uint64_t reserved_12_15:4; | ||
82 | uint64_t cslate:1; | ||
83 | uint64_t tritx:1; | ||
84 | uint64_t idleclks:2; | ||
85 | uint64_t cshi:1; | ||
86 | uint64_t csena:1; | ||
87 | uint64_t int_ena:1; | ||
88 | uint64_t lsbfirst:1; | ||
89 | uint64_t wireor:1; | ||
90 | uint64_t clk_cont:1; | ||
91 | uint64_t idlelo:1; | ||
92 | uint64_t enable:1; | ||
93 | #else | ||
94 | uint64_t enable:1; | ||
95 | uint64_t idlelo:1; | ||
96 | uint64_t clk_cont:1; | ||
97 | uint64_t wireor:1; | ||
98 | uint64_t lsbfirst:1; | ||
99 | uint64_t int_ena:1; | ||
100 | uint64_t csena:1; | ||
101 | uint64_t cshi:1; | ||
102 | uint64_t idleclks:2; | ||
103 | uint64_t tritx:1; | ||
104 | uint64_t cslate:1; | ||
105 | uint64_t reserved_12_15:4; | ||
106 | uint64_t clkdiv:13; | ||
107 | uint64_t reserved_29_63:35; | ||
108 | #endif | ||
109 | } cn30xx; | ||
110 | struct cvmx_mpi_cfg_cn31xx { | ||
111 | #ifdef __BIG_ENDIAN_BITFIELD | ||
112 | uint64_t reserved_29_63:35; | ||
113 | uint64_t clkdiv:13; | ||
114 | uint64_t reserved_11_15:5; | ||
115 | uint64_t tritx:1; | ||
116 | uint64_t idleclks:2; | ||
117 | uint64_t cshi:1; | ||
118 | uint64_t csena:1; | ||
119 | uint64_t int_ena:1; | ||
120 | uint64_t lsbfirst:1; | ||
121 | uint64_t wireor:1; | ||
122 | uint64_t clk_cont:1; | ||
123 | uint64_t idlelo:1; | ||
124 | uint64_t enable:1; | ||
125 | #else | ||
126 | uint64_t enable:1; | ||
127 | uint64_t idlelo:1; | ||
128 | uint64_t clk_cont:1; | ||
129 | uint64_t wireor:1; | ||
130 | uint64_t lsbfirst:1; | ||
131 | uint64_t int_ena:1; | ||
132 | uint64_t csena:1; | ||
133 | uint64_t cshi:1; | ||
134 | uint64_t idleclks:2; | ||
135 | uint64_t tritx:1; | ||
136 | uint64_t reserved_11_15:5; | ||
137 | uint64_t clkdiv:13; | ||
138 | uint64_t reserved_29_63:35; | ||
139 | #endif | ||
140 | } cn31xx; | ||
141 | struct cvmx_mpi_cfg_cn30xx cn50xx; | ||
142 | struct cvmx_mpi_cfg_cn61xx { | ||
143 | #ifdef __BIG_ENDIAN_BITFIELD | ||
144 | uint64_t reserved_29_63:35; | ||
145 | uint64_t clkdiv:13; | ||
146 | uint64_t reserved_14_15:2; | ||
147 | uint64_t csena1:1; | ||
148 | uint64_t csena0:1; | ||
149 | uint64_t cslate:1; | ||
150 | uint64_t tritx:1; | ||
151 | uint64_t idleclks:2; | ||
152 | uint64_t cshi:1; | ||
153 | uint64_t reserved_6_6:1; | ||
154 | uint64_t int_ena:1; | ||
155 | uint64_t lsbfirst:1; | ||
156 | uint64_t wireor:1; | ||
157 | uint64_t clk_cont:1; | ||
158 | uint64_t idlelo:1; | ||
159 | uint64_t enable:1; | ||
160 | #else | ||
161 | uint64_t enable:1; | ||
162 | uint64_t idlelo:1; | ||
163 | uint64_t clk_cont:1; | ||
164 | uint64_t wireor:1; | ||
165 | uint64_t lsbfirst:1; | ||
166 | uint64_t int_ena:1; | ||
167 | uint64_t reserved_6_6:1; | ||
168 | uint64_t cshi:1; | ||
169 | uint64_t idleclks:2; | ||
170 | uint64_t tritx:1; | ||
171 | uint64_t cslate:1; | ||
172 | uint64_t csena0:1; | ||
173 | uint64_t csena1:1; | ||
174 | uint64_t reserved_14_15:2; | ||
175 | uint64_t clkdiv:13; | ||
176 | uint64_t reserved_29_63:35; | ||
177 | #endif | ||
178 | } cn61xx; | ||
179 | struct cvmx_mpi_cfg_cn66xx { | ||
180 | #ifdef __BIG_ENDIAN_BITFIELD | ||
181 | uint64_t reserved_29_63:35; | ||
182 | uint64_t clkdiv:13; | ||
183 | uint64_t csena3:1; | ||
184 | uint64_t csena2:1; | ||
185 | uint64_t reserved_12_13:2; | ||
186 | uint64_t cslate:1; | ||
187 | uint64_t tritx:1; | ||
188 | uint64_t idleclks:2; | ||
189 | uint64_t cshi:1; | ||
190 | uint64_t reserved_6_6:1; | ||
191 | uint64_t int_ena:1; | ||
192 | uint64_t lsbfirst:1; | ||
193 | uint64_t wireor:1; | ||
194 | uint64_t clk_cont:1; | ||
195 | uint64_t idlelo:1; | ||
196 | uint64_t enable:1; | ||
197 | #else | ||
198 | uint64_t enable:1; | ||
199 | uint64_t idlelo:1; | ||
200 | uint64_t clk_cont:1; | ||
201 | uint64_t wireor:1; | ||
202 | uint64_t lsbfirst:1; | ||
203 | uint64_t int_ena:1; | ||
204 | uint64_t reserved_6_6:1; | ||
205 | uint64_t cshi:1; | ||
206 | uint64_t idleclks:2; | ||
207 | uint64_t tritx:1; | ||
208 | uint64_t cslate:1; | ||
209 | uint64_t reserved_12_13:2; | ||
210 | uint64_t csena2:1; | ||
211 | uint64_t csena3:1; | ||
212 | uint64_t clkdiv:13; | ||
213 | uint64_t reserved_29_63:35; | ||
214 | #endif | ||
215 | } cn66xx; | ||
216 | struct cvmx_mpi_cfg_cn61xx cnf71xx; | ||
217 | }; | ||
218 | |||
219 | union cvmx_mpi_datx { | ||
220 | uint64_t u64; | ||
221 | struct cvmx_mpi_datx_s { | ||
222 | #ifdef __BIG_ENDIAN_BITFIELD | ||
223 | uint64_t reserved_8_63:56; | ||
224 | uint64_t data:8; | ||
225 | #else | ||
226 | uint64_t data:8; | ||
227 | uint64_t reserved_8_63:56; | ||
228 | #endif | ||
229 | } s; | ||
230 | struct cvmx_mpi_datx_s cn30xx; | ||
231 | struct cvmx_mpi_datx_s cn31xx; | ||
232 | struct cvmx_mpi_datx_s cn50xx; | ||
233 | struct cvmx_mpi_datx_s cn61xx; | ||
234 | struct cvmx_mpi_datx_s cn66xx; | ||
235 | struct cvmx_mpi_datx_s cnf71xx; | ||
236 | }; | ||
237 | |||
238 | union cvmx_mpi_sts { | ||
239 | uint64_t u64; | ||
240 | struct cvmx_mpi_sts_s { | ||
241 | #ifdef __BIG_ENDIAN_BITFIELD | ||
242 | uint64_t reserved_13_63:51; | ||
243 | uint64_t rxnum:5; | ||
244 | uint64_t reserved_1_7:7; | ||
245 | uint64_t busy:1; | ||
246 | #else | ||
247 | uint64_t busy:1; | ||
248 | uint64_t reserved_1_7:7; | ||
249 | uint64_t rxnum:5; | ||
250 | uint64_t reserved_13_63:51; | ||
251 | #endif | ||
252 | } s; | ||
253 | struct cvmx_mpi_sts_s cn30xx; | ||
254 | struct cvmx_mpi_sts_s cn31xx; | ||
255 | struct cvmx_mpi_sts_s cn50xx; | ||
256 | struct cvmx_mpi_sts_s cn61xx; | ||
257 | struct cvmx_mpi_sts_s cn66xx; | ||
258 | struct cvmx_mpi_sts_s cnf71xx; | ||
259 | }; | ||
260 | |||
261 | union cvmx_mpi_tx { | ||
262 | uint64_t u64; | ||
263 | struct cvmx_mpi_tx_s { | ||
264 | #ifdef __BIG_ENDIAN_BITFIELD | ||
265 | uint64_t reserved_22_63:42; | ||
266 | uint64_t csid:2; | ||
267 | uint64_t reserved_17_19:3; | ||
268 | uint64_t leavecs:1; | ||
269 | uint64_t reserved_13_15:3; | ||
270 | uint64_t txnum:5; | ||
271 | uint64_t reserved_5_7:3; | ||
272 | uint64_t totnum:5; | ||
273 | #else | ||
274 | uint64_t totnum:5; | ||
275 | uint64_t reserved_5_7:3; | ||
276 | uint64_t txnum:5; | ||
277 | uint64_t reserved_13_15:3; | ||
278 | uint64_t leavecs:1; | ||
279 | uint64_t reserved_17_19:3; | ||
280 | uint64_t csid:2; | ||
281 | uint64_t reserved_22_63:42; | ||
282 | #endif | ||
283 | } s; | ||
284 | struct cvmx_mpi_tx_cn30xx { | ||
285 | #ifdef __BIG_ENDIAN_BITFIELD | ||
286 | uint64_t reserved_17_63:47; | ||
287 | uint64_t leavecs:1; | ||
288 | uint64_t reserved_13_15:3; | ||
289 | uint64_t txnum:5; | ||
290 | uint64_t reserved_5_7:3; | ||
291 | uint64_t totnum:5; | ||
292 | #else | ||
293 | uint64_t totnum:5; | ||
294 | uint64_t reserved_5_7:3; | ||
295 | uint64_t txnum:5; | ||
296 | uint64_t reserved_13_15:3; | ||
297 | uint64_t leavecs:1; | ||
298 | uint64_t reserved_17_63:47; | ||
299 | #endif | ||
300 | } cn30xx; | ||
301 | struct cvmx_mpi_tx_cn30xx cn31xx; | ||
302 | struct cvmx_mpi_tx_cn30xx cn50xx; | ||
303 | struct cvmx_mpi_tx_cn61xx { | ||
304 | #ifdef __BIG_ENDIAN_BITFIELD | ||
305 | uint64_t reserved_21_63:43; | ||
306 | uint64_t csid:1; | ||
307 | uint64_t reserved_17_19:3; | ||
308 | uint64_t leavecs:1; | ||
309 | uint64_t reserved_13_15:3; | ||
310 | uint64_t txnum:5; | ||
311 | uint64_t reserved_5_7:3; | ||
312 | uint64_t totnum:5; | ||
313 | #else | ||
314 | uint64_t totnum:5; | ||
315 | uint64_t reserved_5_7:3; | ||
316 | uint64_t txnum:5; | ||
317 | uint64_t reserved_13_15:3; | ||
318 | uint64_t leavecs:1; | ||
319 | uint64_t reserved_17_19:3; | ||
320 | uint64_t csid:1; | ||
321 | uint64_t reserved_21_63:43; | ||
322 | #endif | ||
323 | } cn61xx; | ||
324 | struct cvmx_mpi_tx_s cn66xx; | ||
325 | struct cvmx_mpi_tx_cn61xx cnf71xx; | ||
326 | }; | ||
327 | |||
328 | #endif | ||
diff --git a/arch/mips/kernel/Makefile b/arch/mips/kernel/Makefile index fdaf65e1a99d..ab51dc99c03f 100644 --- a/arch/mips/kernel/Makefile +++ b/arch/mips/kernel/Makefile | |||
@@ -34,28 +34,11 @@ obj-$(CONFIG_MODULES) += mips_ksyms.o module.o | |||
34 | 34 | ||
35 | obj-$(CONFIG_FUNCTION_TRACER) += mcount.o ftrace.o | 35 | obj-$(CONFIG_FUNCTION_TRACER) += mcount.o ftrace.o |
36 | 36 | ||
37 | obj-$(CONFIG_CPU_LOONGSON2) += r4k_fpu.o r4k_switch.o | 37 | obj-$(CONFIG_CPU_R4K_FPU) += r4k_fpu.o r4k_switch.o |
38 | obj-$(CONFIG_CPU_MIPS32) += r4k_fpu.o r4k_switch.o | ||
39 | obj-$(CONFIG_CPU_MIPS64) += r4k_fpu.o r4k_switch.o | ||
40 | obj-$(CONFIG_CPU_R3000) += r2300_fpu.o r2300_switch.o | 38 | obj-$(CONFIG_CPU_R3000) += r2300_fpu.o r2300_switch.o |
41 | obj-$(CONFIG_CPU_R4300) += r4k_fpu.o r4k_switch.o | ||
42 | obj-$(CONFIG_CPU_R4X00) += r4k_fpu.o r4k_switch.o | ||
43 | obj-$(CONFIG_CPU_R5000) += r4k_fpu.o r4k_switch.o | ||
44 | obj-$(CONFIG_CPU_R6000) += r6000_fpu.o r4k_switch.o | 39 | obj-$(CONFIG_CPU_R6000) += r6000_fpu.o r4k_switch.o |
45 | obj-$(CONFIG_CPU_R5432) += r4k_fpu.o r4k_switch.o | ||
46 | obj-$(CONFIG_CPU_R5500) += r4k_fpu.o r4k_switch.o | ||
47 | obj-$(CONFIG_CPU_R8000) += r4k_fpu.o r4k_switch.o | ||
48 | obj-$(CONFIG_CPU_RM7000) += r4k_fpu.o r4k_switch.o | ||
49 | obj-$(CONFIG_CPU_RM9000) += r4k_fpu.o r4k_switch.o | ||
50 | obj-$(CONFIG_CPU_NEVADA) += r4k_fpu.o r4k_switch.o | ||
51 | obj-$(CONFIG_CPU_R10000) += r4k_fpu.o r4k_switch.o | ||
52 | obj-$(CONFIG_CPU_SB1) += r4k_fpu.o r4k_switch.o | ||
53 | obj-$(CONFIG_CPU_TX39XX) += r2300_fpu.o r2300_switch.o | 40 | obj-$(CONFIG_CPU_TX39XX) += r2300_fpu.o r2300_switch.o |
54 | obj-$(CONFIG_CPU_TX49XX) += r4k_fpu.o r4k_switch.o | ||
55 | obj-$(CONFIG_CPU_VR41XX) += r4k_fpu.o r4k_switch.o | ||
56 | obj-$(CONFIG_CPU_CAVIUM_OCTEON) += octeon_switch.o | 41 | obj-$(CONFIG_CPU_CAVIUM_OCTEON) += octeon_switch.o |
57 | obj-$(CONFIG_CPU_XLR) += r4k_fpu.o r4k_switch.o | ||
58 | obj-$(CONFIG_CPU_XLP) += r4k_fpu.o r4k_switch.o | ||
59 | 42 | ||
60 | obj-$(CONFIG_SMP) += smp.o | 43 | obj-$(CONFIG_SMP) += smp.o |
61 | obj-$(CONFIG_SMP_UP) += smp-up.o | 44 | obj-$(CONFIG_SMP_UP) += smp-up.o |
diff --git a/arch/mips/kernel/smp-mt.c b/arch/mips/kernel/smp-mt.c index ff17868734cf..2defa2bbdaa7 100644 --- a/arch/mips/kernel/smp-mt.c +++ b/arch/mips/kernel/smp-mt.c | |||
@@ -150,6 +150,7 @@ static void vsmp_send_ipi_mask(const struct cpumask *mask, unsigned int action) | |||
150 | 150 | ||
151 | static void __cpuinit vsmp_init_secondary(void) | 151 | static void __cpuinit vsmp_init_secondary(void) |
152 | { | 152 | { |
153 | #ifdef CONFIG_IRQ_GIC | ||
153 | extern int gic_present; | 154 | extern int gic_present; |
154 | 155 | ||
155 | /* This is Malta specific: IPI,performance and timer interrupts */ | 156 | /* This is Malta specific: IPI,performance and timer interrupts */ |
@@ -157,6 +158,7 @@ static void __cpuinit vsmp_init_secondary(void) | |||
157 | change_c0_status(ST0_IM, STATUSF_IP3 | STATUSF_IP4 | | 158 | change_c0_status(ST0_IM, STATUSF_IP3 | STATUSF_IP4 | |
158 | STATUSF_IP6 | STATUSF_IP7); | 159 | STATUSF_IP6 | STATUSF_IP7); |
159 | else | 160 | else |
161 | #endif | ||
160 | change_c0_status(ST0_IM, STATUSF_IP0 | STATUSF_IP1 | | 162 | change_c0_status(ST0_IM, STATUSF_IP0 | STATUSF_IP1 | |
161 | STATUSF_IP6 | STATUSF_IP7); | 163 | STATUSF_IP6 | STATUSF_IP7); |
162 | } | 164 | } |
diff --git a/arch/mips/lantiq/xway/sysctrl.c b/arch/mips/lantiq/xway/sysctrl.c index 67c3a91e54e7..2917b56b6b25 100644 --- a/arch/mips/lantiq/xway/sysctrl.c +++ b/arch/mips/lantiq/xway/sysctrl.c | |||
@@ -188,10 +188,12 @@ static int clkout_enable(struct clk *clk) | |||
188 | for (i = 0; i < 4; i++) { | 188 | for (i = 0; i < 4; i++) { |
189 | if (clk->rates[i] == clk->rate) { | 189 | if (clk->rates[i] == clk->rate) { |
190 | int shift = 14 - (2 * clk->module); | 190 | int shift = 14 - (2 * clk->module); |
191 | int enable = 7 - clk->module; | ||
191 | unsigned int val = ltq_cgu_r32(ifccr); | 192 | unsigned int val = ltq_cgu_r32(ifccr); |
192 | 193 | ||
193 | val &= ~(3 << shift); | 194 | val &= ~(3 << shift); |
194 | val |= i << shift; | 195 | val |= i << shift; |
196 | val |= enable; | ||
195 | ltq_cgu_w32(val, ifccr); | 197 | ltq_cgu_w32(val, ifccr); |
196 | return 0; | 198 | return 0; |
197 | } | 199 | } |
diff --git a/arch/mips/lib/Makefile b/arch/mips/lib/Makefile index 399a50a541d4..c4a82e841c73 100644 --- a/arch/mips/lib/Makefile +++ b/arch/mips/lib/Makefile | |||
@@ -8,28 +8,9 @@ lib-y += csum_partial.o delay.o memcpy.o memset.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 | 11 | obj-$(CONFIG_CPU_GENERIC_DUMP_TLB) += 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 | 12 | 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_R5500) += dump_tlb.o | ||
22 | obj-$(CONFIG_CPU_R6000) += | ||
23 | obj-$(CONFIG_CPU_R8000) += | ||
24 | obj-$(CONFIG_CPU_RM7000) += dump_tlb.o | ||
25 | obj-$(CONFIG_CPU_RM9000) += dump_tlb.o | ||
26 | obj-$(CONFIG_CPU_SB1) += dump_tlb.o | ||
27 | obj-$(CONFIG_CPU_TX39XX) += r3k_dump_tlb.o | 13 | obj-$(CONFIG_CPU_TX39XX) += r3k_dump_tlb.o |
28 | obj-$(CONFIG_CPU_TX49XX) += dump_tlb.o | ||
29 | obj-$(CONFIG_CPU_VR41XX) += dump_tlb.o | ||
30 | obj-$(CONFIG_CPU_CAVIUM_OCTEON) += dump_tlb.o | ||
31 | obj-$(CONFIG_CPU_XLR) += dump_tlb.o | ||
32 | obj-$(CONFIG_CPU_XLP) += dump_tlb.o | ||
33 | 14 | ||
34 | # libgcc-style stuff needed in the kernel | 15 | # libgcc-style stuff needed in the kernel |
35 | obj-y += ashldi3.o ashrdi3.o cmpdi2.o lshrdi3.o ucmpdi2.o | 16 | obj-y += ashldi3.o ashrdi3.o cmpdi2.o lshrdi3.o ucmpdi2.o |
diff --git a/arch/mips/mm/Makefile b/arch/mips/mm/Makefile index fd6203f14f1f..90ceb963aaf1 100644 --- a/arch/mips/mm/Makefile +++ b/arch/mips/mm/Makefile | |||
@@ -11,27 +11,12 @@ obj-$(CONFIG_64BIT) += pgtable-64.o | |||
11 | obj-$(CONFIG_HIGHMEM) += highmem.o | 11 | obj-$(CONFIG_HIGHMEM) += highmem.o |
12 | obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o | 12 | obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o |
13 | 13 | ||
14 | obj-$(CONFIG_CPU_LOONGSON2) += c-r4k.o cex-gen.o tlb-r4k.o | 14 | obj-$(CONFIG_CPU_R4K_CACHE_TLB) += c-r4k.o cex-gen.o tlb-r4k.o |
15 | obj-$(CONFIG_CPU_MIPS32) += c-r4k.o cex-gen.o tlb-r4k.o | ||
16 | obj-$(CONFIG_CPU_MIPS64) += c-r4k.o cex-gen.o tlb-r4k.o | ||
17 | obj-$(CONFIG_CPU_NEVADA) += c-r4k.o cex-gen.o tlb-r4k.o | ||
18 | obj-$(CONFIG_CPU_R10000) += c-r4k.o cex-gen.o tlb-r4k.o | ||
19 | obj-$(CONFIG_CPU_R3000) += c-r3k.o tlb-r3k.o | 15 | obj-$(CONFIG_CPU_R3000) += c-r3k.o tlb-r3k.o |
20 | obj-$(CONFIG_CPU_R4300) += c-r4k.o cex-gen.o tlb-r4k.o | ||
21 | obj-$(CONFIG_CPU_R4X00) += c-r4k.o cex-gen.o tlb-r4k.o | ||
22 | obj-$(CONFIG_CPU_R5000) += c-r4k.o cex-gen.o tlb-r4k.o | ||
23 | obj-$(CONFIG_CPU_R5432) += c-r4k.o cex-gen.o tlb-r4k.o | ||
24 | obj-$(CONFIG_CPU_R5500) += c-r4k.o cex-gen.o tlb-r4k.o | ||
25 | obj-$(CONFIG_CPU_R8000) += c-r4k.o cex-gen.o tlb-r8k.o | 16 | obj-$(CONFIG_CPU_R8000) += c-r4k.o cex-gen.o tlb-r8k.o |
26 | obj-$(CONFIG_CPU_RM7000) += c-r4k.o cex-gen.o tlb-r4k.o | ||
27 | obj-$(CONFIG_CPU_RM9000) += c-r4k.o cex-gen.o tlb-r4k.o | ||
28 | obj-$(CONFIG_CPU_SB1) += c-r4k.o cerr-sb1.o cex-sb1.o tlb-r4k.o | 17 | obj-$(CONFIG_CPU_SB1) += c-r4k.o cerr-sb1.o cex-sb1.o tlb-r4k.o |
29 | obj-$(CONFIG_CPU_TX39XX) += c-tx39.o tlb-r3k.o | 18 | obj-$(CONFIG_CPU_TX39XX) += c-tx39.o tlb-r3k.o |
30 | obj-$(CONFIG_CPU_TX49XX) += c-r4k.o cex-gen.o tlb-r4k.o | ||
31 | obj-$(CONFIG_CPU_VR41XX) += c-r4k.o cex-gen.o tlb-r4k.o | ||
32 | obj-$(CONFIG_CPU_CAVIUM_OCTEON) += c-octeon.o cex-oct.o tlb-r4k.o | 19 | obj-$(CONFIG_CPU_CAVIUM_OCTEON) += c-octeon.o cex-oct.o tlb-r4k.o |
33 | obj-$(CONFIG_CPU_XLR) += c-r4k.o tlb-r4k.o cex-gen.o | ||
34 | obj-$(CONFIG_CPU_XLP) += c-r4k.o tlb-r4k.o cex-gen.o | ||
35 | 20 | ||
36 | obj-$(CONFIG_IP22_CPU_SCACHE) += sc-ip22.o | 21 | obj-$(CONFIG_IP22_CPU_SCACHE) += sc-ip22.o |
37 | obj-$(CONFIG_R5000_CPU_SCACHE) += sc-r5k.o | 22 | obj-$(CONFIG_R5000_CPU_SCACHE) += sc-r5k.o |
diff --git a/arch/mips/netlogic/Kconfig b/arch/mips/netlogic/Kconfig index 75bec44b5856..8059eb76f8eb 100644 --- a/arch/mips/netlogic/Kconfig +++ b/arch/mips/netlogic/Kconfig | |||
@@ -1,2 +1,17 @@ | |||
1 | if NLM_XLP_BOARD || NLM_XLR_BOARD | ||
2 | |||
3 | if NLM_XLP_BOARD | ||
4 | config DT_XLP_EVP | ||
5 | bool "Built-in device tree for XLP EVP/SVP boards" | ||
6 | default y | ||
7 | help | ||
8 | Add an FDT blob for XLP EVP and SVP boards into the kernel. | ||
9 | This DTB will be used if the firmware does not pass in a DTB | ||
10 | pointer to the kernel. The corresponding DTS file is at | ||
11 | arch/mips/netlogic/dts/xlp_evp.dts | ||
12 | endif | ||
13 | |||
1 | config NLM_COMMON | 14 | config NLM_COMMON |
2 | bool | 15 | bool |
16 | |||
17 | endif | ||
diff --git a/arch/mips/netlogic/Makefile b/arch/mips/netlogic/Makefile index 36d169b2ca6d..7602d1386614 100644 --- a/arch/mips/netlogic/Makefile +++ b/arch/mips/netlogic/Makefile | |||
@@ -1,3 +1,4 @@ | |||
1 | obj-$(CONFIG_NLM_COMMON) += common/ | 1 | obj-$(CONFIG_NLM_COMMON) += common/ |
2 | obj-$(CONFIG_CPU_XLR) += xlr/ | 2 | obj-$(CONFIG_CPU_XLR) += xlr/ |
3 | obj-$(CONFIG_CPU_XLP) += xlp/ | 3 | obj-$(CONFIG_CPU_XLP) += xlp/ |
4 | obj-$(CONFIG_CPU_XLP) += dts/ | ||
diff --git a/arch/mips/netlogic/dts/Makefile b/arch/mips/netlogic/dts/Makefile new file mode 100644 index 000000000000..67ae3fe296f0 --- /dev/null +++ b/arch/mips/netlogic/dts/Makefile | |||
@@ -0,0 +1,4 @@ | |||
1 | obj-$(CONFIG_DT_XLP_EVP) := xlp_evp.dtb.o | ||
2 | |||
3 | $(obj)/%.dtb: $(obj)/%.dts | ||
4 | $(call if_changed,dtc) | ||
diff --git a/arch/mips/netlogic/dts/xlp_evp.dts b/arch/mips/netlogic/dts/xlp_evp.dts new file mode 100644 index 000000000000..e14f42308064 --- /dev/null +++ b/arch/mips/netlogic/dts/xlp_evp.dts | |||
@@ -0,0 +1,124 @@ | |||
1 | /* | ||
2 | * XLP8XX Device Tree Source for EVP boards | ||
3 | */ | ||
4 | |||
5 | /dts-v1/; | ||
6 | / { | ||
7 | model = "netlogic,XLP-EVP"; | ||
8 | compatible = "netlogic,xlp"; | ||
9 | #address-cells = <2>; | ||
10 | #size-cells = <2>; | ||
11 | |||
12 | memory { | ||
13 | device_type = "memory"; | ||
14 | reg = <0 0x00100000 0 0x0FF00000 // 255M at 1M | ||
15 | 0 0x20000000 0 0xa0000000 // 2560M at 512M | ||
16 | 0 0xe0000000 1 0x00000000>; | ||
17 | }; | ||
18 | |||
19 | soc { | ||
20 | #address-cells = <2>; | ||
21 | #size-cells = <1>; | ||
22 | compatible = "simple-bus"; | ||
23 | ranges = <0 0 0 0x18000000 0x04000000 // PCIe CFG | ||
24 | 1 0 0 0x16000000 0x01000000>; // GBU chipselects | ||
25 | |||
26 | serial0: serial@30000 { | ||
27 | device_type = "serial"; | ||
28 | compatible = "ns16550"; | ||
29 | reg = <0 0x30100 0xa00>; | ||
30 | reg-shift = <2>; | ||
31 | reg-io-width = <4>; | ||
32 | clock-frequency = <133333333>; | ||
33 | interrupt-parent = <&pic>; | ||
34 | interrupts = <17>; | ||
35 | }; | ||
36 | serial1: serial@31000 { | ||
37 | device_type = "serial"; | ||
38 | compatible = "ns16550"; | ||
39 | reg = <0 0x31100 0xa00>; | ||
40 | reg-shift = <2>; | ||
41 | reg-io-width = <4>; | ||
42 | clock-frequency = <133333333>; | ||
43 | interrupt-parent = <&pic>; | ||
44 | interrupts = <18>; | ||
45 | }; | ||
46 | i2c0: ocores@32000 { | ||
47 | compatible = "opencores,i2c-ocores"; | ||
48 | #address-cells = <1>; | ||
49 | #size-cells = <0>; | ||
50 | reg = <0 0x32100 0xa00>; | ||
51 | reg-shift = <2>; | ||
52 | reg-io-width = <4>; | ||
53 | clock-frequency = <32000000>; | ||
54 | interrupt-parent = <&pic>; | ||
55 | interrupts = <30>; | ||
56 | }; | ||
57 | i2c1: ocores@33000 { | ||
58 | compatible = "opencores,i2c-ocores"; | ||
59 | #address-cells = <1>; | ||
60 | #size-cells = <0>; | ||
61 | reg = <0 0x33100 0xa00>; | ||
62 | reg-shift = <2>; | ||
63 | reg-io-width = <4>; | ||
64 | clock-frequency = <32000000>; | ||
65 | interrupt-parent = <&pic>; | ||
66 | interrupts = <31>; | ||
67 | |||
68 | rtc@68 { | ||
69 | compatible = "dallas,ds1374"; | ||
70 | reg = <0x68>; | ||
71 | }; | ||
72 | |||
73 | dtt@4c { | ||
74 | compatible = "national,lm90"; | ||
75 | reg = <0x4c>; | ||
76 | }; | ||
77 | }; | ||
78 | pic: pic@4000 { | ||
79 | interrupt-controller; | ||
80 | #address-cells = <0>; | ||
81 | #interrupt-cells = <1>; | ||
82 | reg = <0 0x4000 0x200>; | ||
83 | }; | ||
84 | |||
85 | nor_flash@1,0 { | ||
86 | compatible = "cfi-flash"; | ||
87 | #address-cells = <1>; | ||
88 | #size-cells = <1>; | ||
89 | bank-width = <2>; | ||
90 | reg = <1 0 0x1000000>; | ||
91 | |||
92 | partition@0 { | ||
93 | label = "x-loader"; | ||
94 | reg = <0x0 0x100000>; /* 1M */ | ||
95 | read-only; | ||
96 | }; | ||
97 | |||
98 | partition@100000 { | ||
99 | label = "u-boot"; | ||
100 | reg = <0x100000 0x100000>; /* 1M */ | ||
101 | }; | ||
102 | |||
103 | partition@200000 { | ||
104 | label = "kernel"; | ||
105 | reg = <0x200000 0x500000>; /* 5M */ | ||
106 | }; | ||
107 | |||
108 | partition@700000 { | ||
109 | label = "rootfs"; | ||
110 | reg = <0x700000 0x800000>; /* 8M */ | ||
111 | }; | ||
112 | |||
113 | partition@f00000 { | ||
114 | label = "env"; | ||
115 | reg = <0xf00000 0x100000>; /* 1M */ | ||
116 | read-only; | ||
117 | }; | ||
118 | }; | ||
119 | }; | ||
120 | |||
121 | chosen { | ||
122 | bootargs = "console=ttyS0,115200 rdinit=/sbin/init"; | ||
123 | }; | ||
124 | }; | ||
diff --git a/arch/mips/netlogic/xlp/Makefile b/arch/mips/netlogic/xlp/Makefile index 6b4b972218f0..a84d6ed3746c 100644 --- a/arch/mips/netlogic/xlp/Makefile +++ b/arch/mips/netlogic/xlp/Makefile | |||
@@ -1,4 +1,3 @@ | |||
1 | obj-y += setup.o platform.o nlm_hal.o | 1 | obj-y += setup.o nlm_hal.o |
2 | obj-$(CONFIG_OF) += of.o | ||
3 | obj-$(CONFIG_SMP) += wakeup.o | 2 | obj-$(CONFIG_SMP) += wakeup.o |
4 | obj-$(CONFIG_USB) += usb-init.o | 3 | obj-$(CONFIG_USB) += usb-init.o |
diff --git a/arch/mips/netlogic/xlp/of.c b/arch/mips/netlogic/xlp/of.c deleted file mode 100644 index 8e3921c0c201..000000000000 --- a/arch/mips/netlogic/xlp/of.c +++ /dev/null | |||
@@ -1,34 +0,0 @@ | |||
1 | #include <linux/bootmem.h> | ||
2 | #include <linux/init.h> | ||
3 | #include <linux/io.h> | ||
4 | #include <linux/of_fdt.h> | ||
5 | #include <asm/byteorder.h> | ||
6 | |||
7 | static int __init reserve_mem_mach(unsigned long addr, unsigned long size) | ||
8 | { | ||
9 | return reserve_bootmem(addr, size, BOOTMEM_DEFAULT); | ||
10 | } | ||
11 | |||
12 | void __init free_mem_mach(unsigned long addr, unsigned long size) | ||
13 | { | ||
14 | return free_bootmem(addr, size); | ||
15 | } | ||
16 | |||
17 | void __init device_tree_init(void) | ||
18 | { | ||
19 | unsigned long base, size; | ||
20 | |||
21 | if (!initial_boot_params) | ||
22 | return; | ||
23 | |||
24 | base = virt_to_phys((void *)initial_boot_params); | ||
25 | size = be32_to_cpu(initial_boot_params->totalsize); | ||
26 | |||
27 | /* Before we do anything, lets reserve the dt blob */ | ||
28 | reserve_mem_mach(base, size); | ||
29 | |||
30 | unflatten_device_tree(); | ||
31 | |||
32 | /* free the space reserved for the dt blob */ | ||
33 | free_mem_mach(base, size); | ||
34 | } | ||
diff --git a/arch/mips/netlogic/xlp/platform.c b/arch/mips/netlogic/xlp/platform.c deleted file mode 100644 index 2c510d585447..000000000000 --- a/arch/mips/netlogic/xlp/platform.c +++ /dev/null | |||
@@ -1,108 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright 2003-2011 NetLogic Microsystems, Inc. (NetLogic). All rights | ||
3 | * reserved. | ||
4 | * | ||
5 | * This software is available to you under a choice of one of two | ||
6 | * licenses. You may choose to be licensed under the terms of the GNU | ||
7 | * General Public License (GPL) Version 2, available from the file | ||
8 | * COPYING in the main directory of this source tree, or the NetLogic | ||
9 | * license below: | ||
10 | * | ||
11 | * Redistribution and use in source and binary forms, with or without | ||
12 | * modification, are permitted provided that the following conditions | ||
13 | * are met: | ||
14 | * | ||
15 | * 1. Redistributions of source code must retain the above copyright | ||
16 | * notice, this list of conditions and the following disclaimer. | ||
17 | * 2. Redistributions in binary form must reproduce the above copyright | ||
18 | * notice, this list of conditions and the following disclaimer in | ||
19 | * the documentation and/or other materials provided with the | ||
20 | * distribution. | ||
21 | * | ||
22 | * THIS SOFTWARE IS PROVIDED BY NETLOGIC ``AS IS'' AND ANY EXPRESS OR | ||
23 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
24 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
25 | * ARE DISCLAIMED. IN NO EVENT SHALL NETLOGIC OR CONTRIBUTORS BE LIABLE | ||
26 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | ||
27 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | ||
28 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR | ||
29 | * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | ||
30 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE | ||
31 | * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN | ||
32 | * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
33 | */ | ||
34 | |||
35 | #include <linux/dma-mapping.h> | ||
36 | #include <linux/kernel.h> | ||
37 | #include <linux/delay.h> | ||
38 | #include <linux/init.h> | ||
39 | #include <linux/platform_device.h> | ||
40 | #include <linux/serial.h> | ||
41 | #include <linux/serial_8250.h> | ||
42 | #include <linux/pci.h> | ||
43 | #include <linux/serial_reg.h> | ||
44 | #include <linux/spinlock.h> | ||
45 | |||
46 | #include <asm/time.h> | ||
47 | #include <asm/addrspace.h> | ||
48 | #include <asm/netlogic/haldefs.h> | ||
49 | #include <asm/netlogic/xlp-hal/iomap.h> | ||
50 | #include <asm/netlogic/xlp-hal/xlp.h> | ||
51 | #include <asm/netlogic/xlp-hal/pic.h> | ||
52 | #include <asm/netlogic/xlp-hal/uart.h> | ||
53 | |||
54 | static unsigned int nlm_xlp_uart_in(struct uart_port *p, int offset) | ||
55 | { | ||
56 | return nlm_read_reg(p->iobase, offset); | ||
57 | } | ||
58 | |||
59 | static void nlm_xlp_uart_out(struct uart_port *p, int offset, int value) | ||
60 | { | ||
61 | nlm_write_reg(p->iobase, offset, value); | ||
62 | } | ||
63 | |||
64 | #define PORT(_irq) \ | ||
65 | { \ | ||
66 | .irq = _irq, \ | ||
67 | .regshift = 2, \ | ||
68 | .iotype = UPIO_MEM32, \ | ||
69 | .flags = (UPF_SKIP_TEST|UPF_FIXED_TYPE|\ | ||
70 | UPF_BOOT_AUTOCONF), \ | ||
71 | .uartclk = XLP_IO_CLK, \ | ||
72 | .type = PORT_16550A, \ | ||
73 | .serial_in = nlm_xlp_uart_in, \ | ||
74 | .serial_out = nlm_xlp_uart_out, \ | ||
75 | } | ||
76 | |||
77 | static struct plat_serial8250_port xlp_uart_data[] = { | ||
78 | PORT(PIC_UART_0_IRQ), | ||
79 | PORT(PIC_UART_1_IRQ), | ||
80 | {}, | ||
81 | }; | ||
82 | |||
83 | static struct platform_device uart_device = { | ||
84 | .name = "serial8250", | ||
85 | .id = PLAT8250_DEV_PLATFORM, | ||
86 | .dev = { | ||
87 | .platform_data = xlp_uart_data, | ||
88 | }, | ||
89 | }; | ||
90 | |||
91 | static int __init nlm_platform_uart_init(void) | ||
92 | { | ||
93 | unsigned long mmio; | ||
94 | |||
95 | mmio = (unsigned long)nlm_get_uart_regbase(0, 0); | ||
96 | xlp_uart_data[0].iobase = mmio; | ||
97 | xlp_uart_data[0].membase = (void __iomem *)mmio; | ||
98 | xlp_uart_data[0].mapbase = mmio; | ||
99 | |||
100 | mmio = (unsigned long)nlm_get_uart_regbase(0, 1); | ||
101 | xlp_uart_data[1].iobase = mmio; | ||
102 | xlp_uart_data[1].membase = (void __iomem *)mmio; | ||
103 | xlp_uart_data[1].mapbase = mmio; | ||
104 | |||
105 | return platform_device_register(&uart_device); | ||
106 | } | ||
107 | |||
108 | arch_initcall(nlm_platform_uart_init); | ||
diff --git a/arch/mips/netlogic/xlp/setup.c b/arch/mips/netlogic/xlp/setup.c index 3dec9f28b65b..d8997098defd 100644 --- a/arch/mips/netlogic/xlp/setup.c +++ b/arch/mips/netlogic/xlp/setup.c | |||
@@ -35,6 +35,7 @@ | |||
35 | #include <linux/kernel.h> | 35 | #include <linux/kernel.h> |
36 | #include <linux/serial_8250.h> | 36 | #include <linux/serial_8250.h> |
37 | #include <linux/pm.h> | 37 | #include <linux/pm.h> |
38 | #include <linux/bootmem.h> | ||
38 | 39 | ||
39 | #include <asm/reboot.h> | 40 | #include <asm/reboot.h> |
40 | #include <asm/time.h> | 41 | #include <asm/time.h> |
@@ -56,6 +57,7 @@ unsigned long nlm_common_ebase = 0x0; | |||
56 | /* default to uniprocessor */ | 57 | /* default to uniprocessor */ |
57 | uint32_t nlm_coremask = 1, nlm_cpumask = 1; | 58 | uint32_t nlm_coremask = 1, nlm_cpumask = 1; |
58 | int nlm_threads_per_core = 1; | 59 | int nlm_threads_per_core = 1; |
60 | extern u32 __dtb_start[]; | ||
59 | 61 | ||
60 | static void nlm_linux_exit(void) | 62 | static void nlm_linux_exit(void) |
61 | { | 63 | { |
@@ -96,9 +98,18 @@ void __init prom_init(void) | |||
96 | { | 98 | { |
97 | void *fdtp; | 99 | void *fdtp; |
98 | 100 | ||
99 | fdtp = (void *)(long)fw_arg0; | ||
100 | xlp_mmu_init(); | 101 | xlp_mmu_init(); |
101 | nlm_hal_init(); | 102 | nlm_hal_init(); |
103 | |||
104 | /* | ||
105 | * If no FDT pointer is passed in, use the built-in FDT. | ||
106 | * device_tree_init() does not handle CKSEG0 pointers in | ||
107 | * 64-bit, so convert pointer. | ||
108 | */ | ||
109 | fdtp = (void *)(long)fw_arg0; | ||
110 | if (!fdtp) | ||
111 | fdtp = __dtb_start; | ||
112 | fdtp = phys_to_virt(__pa(fdtp)); | ||
102 | early_init_devtree(fdtp); | 113 | early_init_devtree(fdtp); |
103 | 114 | ||
104 | nlm_common_ebase = read_c0_ebase() & (~((1 << 12) - 1)); | 115 | nlm_common_ebase = read_c0_ebase() & (~((1 << 12) - 1)); |
@@ -112,6 +123,25 @@ void __init prom_init(void) | |||
112 | #endif | 123 | #endif |
113 | } | 124 | } |
114 | 125 | ||
126 | void __init device_tree_init(void) | ||
127 | { | ||
128 | unsigned long base, size; | ||
129 | |||
130 | if (!initial_boot_params) | ||
131 | return; | ||
132 | |||
133 | base = virt_to_phys((void *)initial_boot_params); | ||
134 | size = be32_to_cpu(initial_boot_params->totalsize); | ||
135 | |||
136 | /* Before we do anything, lets reserve the dt blob */ | ||
137 | reserve_bootmem(base, size, BOOTMEM_DEFAULT); | ||
138 | |||
139 | unflatten_device_tree(); | ||
140 | |||
141 | /* free the space reserved for the dt blob */ | ||
142 | free_bootmem(base, size); | ||
143 | } | ||
144 | |||
115 | static struct of_device_id __initdata xlp_ids[] = { | 145 | static struct of_device_id __initdata xlp_ids[] = { |
116 | { .compatible = "simple-bus", }, | 146 | { .compatible = "simple-bus", }, |
117 | {}, | 147 | {}, |