diff options
author | Michael Ellerman <mpe@ellerman.id.au> | 2016-03-14 05:05:14 -0400 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2016-03-14 05:05:14 -0400 |
commit | a1b5344620a3e6291afaf7542714ba9c391ef1c7 (patch) | |
tree | b79b51bc4019ea50efbbac4a7f7717b6e6d749c0 | |
parent | d8c0282f4da6d5335fee56141ca92284026f4818 (diff) | |
parent | fba4e9f9898ab181703723b9890ba29345edfe08 (diff) |
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux into next
Freescale updates from Scott:
"Highlights include 8xx optimizations, 32-bit checksum optimizations,
86xx consolidation, e5500/e6500 cpu hotplug, more fman and other dt
bits, and minor fixes/cleanup."
153 files changed, 5691 insertions, 4736 deletions
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/fman.txt b/Documentation/devicetree/bindings/powerpc/fsl/fman.txt index 1fc5328c0651..55c2c03fc81e 100644 --- a/Documentation/devicetree/bindings/powerpc/fsl/fman.txt +++ b/Documentation/devicetree/bindings/powerpc/fsl/fman.txt | |||
@@ -315,6 +315,16 @@ PROPERTIES | |||
315 | Value type: <phandle> | 315 | Value type: <phandle> |
316 | Definition: A phandle for 1EEE1588 timer. | 316 | Definition: A phandle for 1EEE1588 timer. |
317 | 317 | ||
318 | - pcsphy-handle | ||
319 | Usage required for "fsl,fman-memac" MACs | ||
320 | Value type: <phandle> | ||
321 | Definition: A phandle for pcsphy. | ||
322 | |||
323 | - tbi-handle | ||
324 | Usage required for "fsl,fman-dtsec" MACs | ||
325 | Value type: <phandle> | ||
326 | Definition: A phandle for tbiphy. | ||
327 | |||
318 | EXAMPLE | 328 | EXAMPLE |
319 | 329 | ||
320 | fman1_tx28: port@a8000 { | 330 | fman1_tx28: port@a8000 { |
@@ -340,6 +350,7 @@ ethernet@e0000 { | |||
340 | reg = <0xe0000 0x1000>; | 350 | reg = <0xe0000 0x1000>; |
341 | fsl,fman-ports = <&fman1_rx8 &fman1_tx28>; | 351 | fsl,fman-ports = <&fman1_rx8 &fman1_tx28>; |
342 | ptp-timer = <&ptp-timer>; | 352 | ptp-timer = <&ptp-timer>; |
353 | tbi-handle = <&tbi0>; | ||
343 | }; | 354 | }; |
344 | 355 | ||
345 | ============================================================================ | 356 | ============================================================================ |
@@ -415,6 +426,13 @@ PROPERTIES | |||
415 | The settings and programming routines for internal/external | 426 | The settings and programming routines for internal/external |
416 | MDIO are different. Must be included for internal MDIO. | 427 | MDIO are different. Must be included for internal MDIO. |
417 | 428 | ||
429 | For internal PHY device on internal mdio bus, a PHY node should be created. | ||
430 | See the definition of the PHY node in booting-without-of.txt for an | ||
431 | example of how to define a PHY (Internal PHY has no interrupt line). | ||
432 | - For "fsl,fman-mdio" compatible internal mdio bus, the PHY is TBI PHY. | ||
433 | - For "fsl,fman-memac-mdio" compatible internal mdio bus, the PHY is PCS PHY, | ||
434 | PCS PHY addr must be '0'. | ||
435 | |||
418 | EXAMPLE | 436 | EXAMPLE |
419 | 437 | ||
420 | Example for FMan v2 external MDIO: | 438 | Example for FMan v2 external MDIO: |
@@ -425,12 +443,29 @@ mdio@f1000 { | |||
425 | interrupts = <101 2 0 0>; | 443 | interrupts = <101 2 0 0>; |
426 | }; | 444 | }; |
427 | 445 | ||
446 | Example for FMan v2 internal MDIO: | ||
447 | |||
448 | mdio@e3120 { | ||
449 | compatible = "fsl,fman-mdio"; | ||
450 | reg = <0xe3120 0xee0>; | ||
451 | fsl,fman-internal-mdio; | ||
452 | |||
453 | tbi1: tbi-phy@8 { | ||
454 | reg = <0x8>; | ||
455 | device_type = "tbi-phy"; | ||
456 | }; | ||
457 | }; | ||
458 | |||
428 | Example for FMan v3 internal MDIO: | 459 | Example for FMan v3 internal MDIO: |
429 | 460 | ||
430 | mdio@f1000 { | 461 | mdio@f1000 { |
431 | compatible = "fsl,fman-memac-mdio"; | 462 | compatible = "fsl,fman-memac-mdio"; |
432 | reg = <0xf1000 0x1000>; | 463 | reg = <0xf1000 0x1000>; |
433 | fsl,fman-internal-mdio; | 464 | fsl,fman-internal-mdio; |
465 | |||
466 | pcsphy6: ethernet-phy@0 { | ||
467 | reg = <0x0>; | ||
468 | }; | ||
434 | }; | 469 | }; |
435 | 470 | ||
436 | ============================================================================= | 471 | ============================================================================= |
@@ -568,6 +603,7 @@ fman@400000 { | |||
568 | cell-index = <0>; | 603 | cell-index = <0>; |
569 | reg = <0xe0000 0x1000>; | 604 | reg = <0xe0000 0x1000>; |
570 | fsl,fman-ports = <&fman1_rx_0x8 &fman1_tx_0x28>; | 605 | fsl,fman-ports = <&fman1_rx_0x8 &fman1_tx_0x28>; |
606 | tbi-handle = <&tbi5>; | ||
571 | }; | 607 | }; |
572 | 608 | ||
573 | ethernet@e2000 { | 609 | ethernet@e2000 { |
@@ -575,6 +611,7 @@ fman@400000 { | |||
575 | cell-index = <1>; | 611 | cell-index = <1>; |
576 | reg = <0xe2000 0x1000>; | 612 | reg = <0xe2000 0x1000>; |
577 | fsl,fman-ports = <&fman1_rx_0x9 &fman1_tx_0x29>; | 613 | fsl,fman-ports = <&fman1_rx_0x9 &fman1_tx_0x29>; |
614 | tbi-handle = <&tbi6>; | ||
578 | }; | 615 | }; |
579 | 616 | ||
580 | ethernet@e4000 { | 617 | ethernet@e4000 { |
@@ -582,6 +619,7 @@ fman@400000 { | |||
582 | cell-index = <2>; | 619 | cell-index = <2>; |
583 | reg = <0xe4000 0x1000>; | 620 | reg = <0xe4000 0x1000>; |
584 | fsl,fman-ports = <&fman1_rx_0xa &fman1_tx_0x2a>; | 621 | fsl,fman-ports = <&fman1_rx_0xa &fman1_tx_0x2a>; |
622 | tbi-handle = <&tbi7>; | ||
585 | }; | 623 | }; |
586 | 624 | ||
587 | ethernet@e6000 { | 625 | ethernet@e6000 { |
@@ -589,6 +627,7 @@ fman@400000 { | |||
589 | cell-index = <3>; | 627 | cell-index = <3>; |
590 | reg = <0xe6000 0x1000>; | 628 | reg = <0xe6000 0x1000>; |
591 | fsl,fman-ports = <&fman1_rx_0xb &fman1_tx_0x2b>; | 629 | fsl,fman-ports = <&fman1_rx_0xb &fman1_tx_0x2b>; |
630 | tbi-handle = <&tbi8>; | ||
592 | }; | 631 | }; |
593 | 632 | ||
594 | ethernet@e8000 { | 633 | ethernet@e8000 { |
@@ -596,6 +635,7 @@ fman@400000 { | |||
596 | cell-index = <4>; | 635 | cell-index = <4>; |
597 | reg = <0xf0000 0x1000>; | 636 | reg = <0xf0000 0x1000>; |
598 | fsl,fman-ports = <&fman1_rx_0xc &fman1_tx_0x2c>; | 637 | fsl,fman-ports = <&fman1_rx_0xc &fman1_tx_0x2c>; |
638 | tbi-handle = <&tbi9>; | ||
599 | 639 | ||
600 | ethernet@f0000 { | 640 | ethernet@f0000 { |
601 | cell-index = <8>; | 641 | cell-index = <8>; |
diff --git a/Documentation/devicetree/bindings/soc/fsl/rcpm.txt b/Documentation/devicetree/bindings/soc/fsl/rcpm.txt new file mode 100644 index 000000000000..e284e4e1ccd5 --- /dev/null +++ b/Documentation/devicetree/bindings/soc/fsl/rcpm.txt | |||
@@ -0,0 +1,63 @@ | |||
1 | * Run Control and Power Management | ||
2 | ------------------------------------------- | ||
3 | The RCPM performs all device-level tasks associated with device run control | ||
4 | and power management. | ||
5 | |||
6 | Required properites: | ||
7 | - reg : Offset and length of the register set of the RCPM block. | ||
8 | - fsl,#rcpm-wakeup-cells : The number of IPPDEXPCR register cells in the | ||
9 | fsl,rcpm-wakeup property. | ||
10 | - compatible : Must contain a chip-specific RCPM block compatible string | ||
11 | and (if applicable) may contain a chassis-version RCPM compatible | ||
12 | string. Chip-specific strings are of the form "fsl,<chip>-rcpm", | ||
13 | such as: | ||
14 | * "fsl,p2041-rcpm" | ||
15 | * "fsl,p5020-rcpm" | ||
16 | * "fsl,t4240-rcpm" | ||
17 | |||
18 | Chassis-version strings are of the form "fsl,qoriq-rcpm-<version>", | ||
19 | such as: | ||
20 | * "fsl,qoriq-rcpm-1.0": for chassis 1.0 rcpm | ||
21 | * "fsl,qoriq-rcpm-2.0": for chassis 2.0 rcpm | ||
22 | * "fsl,qoriq-rcpm-2.1": for chassis 2.1 rcpm | ||
23 | |||
24 | All references to "1.0" and "2.0" refer to the QorIQ chassis version to | ||
25 | which the chip complies. | ||
26 | Chassis Version Example Chips | ||
27 | --------------- ------------------------------- | ||
28 | 1.0 p4080, p5020, p5040, p2041, p3041 | ||
29 | 2.0 t4240, b4860, b4420 | ||
30 | 2.1 t1040, ls1021 | ||
31 | |||
32 | Example: | ||
33 | The RCPM node for T4240: | ||
34 | rcpm: global-utilities@e2000 { | ||
35 | compatible = "fsl,t4240-rcpm", "fsl,qoriq-rcpm-2.0"; | ||
36 | reg = <0xe2000 0x1000>; | ||
37 | fsl,#rcpm-wakeup-cells = <2>; | ||
38 | }; | ||
39 | |||
40 | * Freescale RCPM Wakeup Source Device Tree Bindings | ||
41 | ------------------------------------------- | ||
42 | Required fsl,rcpm-wakeup property should be added to a device node if the device | ||
43 | can be used as a wakeup source. | ||
44 | |||
45 | - fsl,rcpm-wakeup: Consists of a phandle to the rcpm node and the IPPDEXPCR | ||
46 | register cells. The number of IPPDEXPCR register cells is defined in | ||
47 | "fsl,#rcpm-wakeup-cells" in the rcpm node. The first register cell is | ||
48 | the bit mask that should be set in IPPDEXPCR0, and the second register | ||
49 | cell is for IPPDEXPCR1, and so on. | ||
50 | |||
51 | Note: IPPDEXPCR(IP Powerdown Exception Control Register) provides a | ||
52 | mechanism for keeping certain blocks awake during STANDBY and MEM, in | ||
53 | order to use them as wake-up sources. | ||
54 | |||
55 | Example: | ||
56 | lpuart0: serial@2950000 { | ||
57 | compatible = "fsl,ls1021a-lpuart"; | ||
58 | reg = <0x0 0x2950000 0x0 0x1000>; | ||
59 | interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; | ||
60 | clocks = <&sysclk>; | ||
61 | clock-names = "ipg"; | ||
62 | fsl,rcpm-wakeup = <&rcpm 0x0 0x40000000>; | ||
63 | }; | ||
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 551ecf09c8dd..516d4300e313 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -2582,7 +2582,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
2582 | nolapic_timer [X86-32,APIC] Do not use the local APIC timer. | 2582 | nolapic_timer [X86-32,APIC] Do not use the local APIC timer. |
2583 | 2583 | ||
2584 | noltlbs [PPC] Do not use large page/tlb entries for kernel | 2584 | noltlbs [PPC] Do not use large page/tlb entries for kernel |
2585 | lowmem mapping on PPC40x. | 2585 | lowmem mapping on PPC40x and PPC8xx |
2586 | 2586 | ||
2587 | nomca [IA-64] Disable machine check abort handling | 2587 | nomca [IA-64] Disable machine check abort handling |
2588 | 2588 | ||
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 5130fa166a93..b580ce0c25a8 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig | |||
@@ -408,7 +408,7 @@ config SWIOTLB | |||
408 | config HOTPLUG_CPU | 408 | config HOTPLUG_CPU |
409 | bool "Support for enabling/disabling CPUs" | 409 | bool "Support for enabling/disabling CPUs" |
410 | depends on SMP && (PPC_PSERIES || \ | 410 | depends on SMP && (PPC_PSERIES || \ |
411 | PPC_PMAC || PPC_POWERNV || (PPC_85xx && !PPC_E500MC)) | 411 | PPC_PMAC || PPC_POWERNV || FSL_SOC_BOOKE) |
412 | ---help--- | 412 | ---help--- |
413 | Say Y here to be able to disable and re-enable individual | 413 | Say Y here to be able to disable and re-enable individual |
414 | CPUs at runtime on SMP machines. | 414 | CPUs at runtime on SMP machines. |
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile index f4e49a4153cb..709a22a3e824 100644 --- a/arch/powerpc/Makefile +++ b/arch/powerpc/Makefile | |||
@@ -325,6 +325,16 @@ corenet64_smp_defconfig: | |||
325 | $(call merge_into_defconfig,corenet_basic_defconfig,\ | 325 | $(call merge_into_defconfig,corenet_basic_defconfig,\ |
326 | 85xx-64bit 85xx-smp altivec 85xx-hw fsl-emb-nonhw) | 326 | 85xx-64bit 85xx-smp altivec 85xx-hw fsl-emb-nonhw) |
327 | 327 | ||
328 | PHONY += mpc86xx_defconfig | ||
329 | mpc86xx_defconfig: | ||
330 | $(call merge_into_defconfig,mpc86xx_basic_defconfig,\ | ||
331 | 86xx-hw fsl-emb-nonhw) | ||
332 | |||
333 | PHONY += mpc86xx_smp_defconfig | ||
334 | mpc86xx_smp_defconfig: | ||
335 | $(call merge_into_defconfig,mpc86xx_basic_defconfig,\ | ||
336 | 86xx-smp 86xx-hw fsl-emb-nonhw) | ||
337 | |||
328 | define archhelp | 338 | define archhelp |
329 | @echo '* zImage - Build default images selected by kernel config' | 339 | @echo '* zImage - Build default images selected by kernel config' |
330 | @echo ' zImage.* - Compressed kernel image (arch/$(ARCH)/boot/zImage.*)' | 340 | @echo ' zImage.* - Compressed kernel image (arch/$(ARCH)/boot/zImage.*)' |
diff --git a/arch/powerpc/boot/dts/fsl/b4860qds.dts b/arch/powerpc/boot/dts/fsl/b4860qds.dts index ba8c9bea33ac..a8bc419959ca 100644 --- a/arch/powerpc/boot/dts/fsl/b4860qds.dts +++ b/arch/powerpc/boot/dts/fsl/b4860qds.dts | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * B4860DS Device Tree Source | 2 | * B4860DS Device Tree Source |
3 | * | 3 | * |
4 | * Copyright 2012 Freescale Semiconductor Inc. | 4 | * Copyright 2012 - 2015 Freescale Semiconductor Inc. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
@@ -39,12 +39,69 @@ | |||
39 | model = "fsl,B4860QDS"; | 39 | model = "fsl,B4860QDS"; |
40 | compatible = "fsl,B4860QDS"; | 40 | compatible = "fsl,B4860QDS"; |
41 | 41 | ||
42 | aliases { | ||
43 | phy_sgmii_1e = &phy_sgmii_1e; | ||
44 | phy_sgmii_1f = &phy_sgmii_1f; | ||
45 | phy_xaui_slot1 = &phy_xaui_slot1; | ||
46 | phy_xaui_slot2 = &phy_xaui_slot2; | ||
47 | }; | ||
48 | |||
42 | ifc: localbus@ffe124000 { | 49 | ifc: localbus@ffe124000 { |
43 | board-control@3,0 { | 50 | board-control@3,0 { |
44 | compatible = "fsl,b4860qds-fpga", "fsl,fpga-qixis"; | 51 | compatible = "fsl,b4860qds-fpga", "fsl,fpga-qixis"; |
45 | }; | 52 | }; |
46 | }; | 53 | }; |
47 | 54 | ||
55 | soc@ffe000000 { | ||
56 | fman@400000 { | ||
57 | ethernet@e8000 { | ||
58 | phy-handle = <&phy_sgmii_1e>; | ||
59 | phy-connection-type = "sgmii"; | ||
60 | }; | ||
61 | |||
62 | ethernet@ea000 { | ||
63 | phy-handle = <&phy_sgmii_1f>; | ||
64 | phy-connection-type = "sgmii"; | ||
65 | }; | ||
66 | |||
67 | ethernet@f0000 { | ||
68 | phy-handle = <&phy_xaui_slot1>; | ||
69 | phy-connection-type = "xgmii"; | ||
70 | }; | ||
71 | |||
72 | ethernet@f2000 { | ||
73 | phy-handle = <&phy_xaui_slot2>; | ||
74 | phy-connection-type = "xgmii"; | ||
75 | }; | ||
76 | |||
77 | mdio@fc000 { | ||
78 | phy_sgmii_1e: ethernet-phy@1e { | ||
79 | reg = <0x1e>; | ||
80 | status = "disabled"; | ||
81 | }; | ||
82 | |||
83 | phy_sgmii_1f: ethernet-phy@1f { | ||
84 | reg = <0x1f>; | ||
85 | status = "disabled"; | ||
86 | }; | ||
87 | }; | ||
88 | |||
89 | mdio@fd000 { | ||
90 | phy_xaui_slot1: xaui-phy@slot1 { | ||
91 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
92 | reg = <0x7>; | ||
93 | status = "disabled"; | ||
94 | }; | ||
95 | |||
96 | phy_xaui_slot2: xaui-phy@slot2 { | ||
97 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
98 | reg = <0x6>; | ||
99 | status = "disabled"; | ||
100 | }; | ||
101 | }; | ||
102 | }; | ||
103 | }; | ||
104 | |||
48 | rio: rapidio@ffe0c0000 { | 105 | rio: rapidio@ffe0c0000 { |
49 | reg = <0xf 0xfe0c0000 0 0x11000>; | 106 | reg = <0xf 0xfe0c0000 0 0x11000>; |
50 | 107 | ||
@@ -55,7 +112,6 @@ | |||
55 | ranges = <0 0 0xc 0x30000000 0 0x10000000>; | 112 | ranges = <0 0 0xc 0x30000000 0 0x10000000>; |
56 | }; | 113 | }; |
57 | }; | 114 | }; |
58 | |||
59 | }; | 115 | }; |
60 | 116 | ||
61 | /include/ "b4860si-post.dtsi" | 117 | /include/ "b4860si-post.dtsi" |
diff --git a/arch/powerpc/boot/dts/fsl/b4qds.dtsi b/arch/powerpc/boot/dts/fsl/b4qds.dtsi index 64557742fb99..3785ef826d07 100644 --- a/arch/powerpc/boot/dts/fsl/b4qds.dtsi +++ b/arch/powerpc/boot/dts/fsl/b4qds.dtsi | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * B4420DS Device Tree Source | 2 | * B4420DS Device Tree Source |
3 | * | 3 | * |
4 | * Copyright 2012 - 2014 Freescale Semiconductor, Inc. | 4 | * Copyright 2012 - 2015 Freescale Semiconductor, Inc. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
@@ -39,6 +39,13 @@ | |||
39 | #size-cells = <2>; | 39 | #size-cells = <2>; |
40 | interrupt-parent = <&mpic>; | 40 | interrupt-parent = <&mpic>; |
41 | 41 | ||
42 | aliases { | ||
43 | phy_sgmii_10 = &phy_sgmii_10; | ||
44 | phy_sgmii_11 = &phy_sgmii_11; | ||
45 | phy_sgmii_1c = &phy_sgmii_1c; | ||
46 | phy_sgmii_1d = &phy_sgmii_1d; | ||
47 | }; | ||
48 | |||
42 | ifc: localbus@ffe124000 { | 49 | ifc: localbus@ffe124000 { |
43 | reg = <0xf 0xfe124000 0 0x2000>; | 50 | reg = <0xf 0xfe124000 0 0x2000>; |
44 | ranges = <0 0 0xf 0xe8000000 0x08000000 | 51 | ranges = <0 0 0xf 0xe8000000 0x08000000 |
@@ -135,7 +142,7 @@ | |||
135 | flash@0 { | 142 | flash@0 { |
136 | #address-cells = <1>; | 143 | #address-cells = <1>; |
137 | #size-cells = <1>; | 144 | #size-cells = <1>; |
138 | compatible = "sst,sst25wf040"; | 145 | compatible = "sst,sst25wf040", "jedec,spi-nor"; |
139 | reg = <0>; | 146 | reg = <0>; |
140 | spi-max-frequency = <40000000>; /* input clock */ | 147 | spi-max-frequency = <40000000>; /* input clock */ |
141 | }; | 148 | }; |
@@ -210,6 +217,47 @@ | |||
210 | phy_type = "ulpi"; | 217 | phy_type = "ulpi"; |
211 | }; | 218 | }; |
212 | 219 | ||
220 | fman@400000 { | ||
221 | ethernet@e0000 { | ||
222 | phy-handle = <&phy_sgmii_10>; | ||
223 | phy-connection-type = "sgmii"; | ||
224 | }; | ||
225 | |||
226 | ethernet@e2000 { | ||
227 | phy-handle = <&phy_sgmii_11>; | ||
228 | phy-connection-type = "sgmii"; | ||
229 | }; | ||
230 | |||
231 | ethernet@e4000 { | ||
232 | phy-handle = <&phy_sgmii_1c>; | ||
233 | phy-connection-type = "sgmii"; | ||
234 | }; | ||
235 | |||
236 | ethernet@e6000 { | ||
237 | phy-handle = <&phy_sgmii_1d>; | ||
238 | phy-connection-type = "sgmii"; | ||
239 | }; | ||
240 | |||
241 | mdio@fc000 { | ||
242 | phy_sgmii_10: ethernet-phy@10 { | ||
243 | reg = <0x10>; | ||
244 | }; | ||
245 | |||
246 | phy_sgmii_11: ethernet-phy@11 { | ||
247 | reg = <0x11>; | ||
248 | }; | ||
249 | |||
250 | phy_sgmii_1c: ethernet-phy@1c { | ||
251 | reg = <0x1c>; | ||
252 | status = "disabled"; | ||
253 | }; | ||
254 | |||
255 | phy_sgmii_1d: ethernet-phy@1d { | ||
256 | reg = <0x1d>; | ||
257 | status = "disabled"; | ||
258 | }; | ||
259 | }; | ||
260 | }; | ||
213 | }; | 261 | }; |
214 | 262 | ||
215 | pci0: pcie@ffe200000 { | 263 | pci0: pcie@ffe200000 { |
@@ -226,7 +274,6 @@ | |||
226 | 0 0x00010000>; | 274 | 0 0x00010000>; |
227 | }; | 275 | }; |
228 | }; | 276 | }; |
229 | |||
230 | }; | 277 | }; |
231 | 278 | ||
232 | /include/ "b4si-post.dtsi" | 279 | /include/ "b4si-post.dtsi" |
diff --git a/arch/powerpc/boot/dts/fsl/bsc9131rdb.dtsi b/arch/powerpc/boot/dts/fsl/bsc9131rdb.dtsi index f4d96d277ed5..53f8b956340f 100644 --- a/arch/powerpc/boot/dts/fsl/bsc9131rdb.dtsi +++ b/arch/powerpc/boot/dts/fsl/bsc9131rdb.dtsi | |||
@@ -53,7 +53,7 @@ | |||
53 | flash@0 { | 53 | flash@0 { |
54 | #address-cells = <1>; | 54 | #address-cells = <1>; |
55 | #size-cells = <1>; | 55 | #size-cells = <1>; |
56 | compatible = "spansion,s25sl12801"; | 56 | compatible = "spansion,s25sl12801", "jedec,spi-nor"; |
57 | reg = <0>; | 57 | reg = <0>; |
58 | spi-max-frequency = <50000000>; | 58 | spi-max-frequency = <50000000>; |
59 | 59 | ||
diff --git a/arch/powerpc/boot/dts/fsl/bsc9132qds.dtsi b/arch/powerpc/boot/dts/fsl/bsc9132qds.dtsi index 7a13bf2aa439..fead484a8180 100644 --- a/arch/powerpc/boot/dts/fsl/bsc9132qds.dtsi +++ b/arch/powerpc/boot/dts/fsl/bsc9132qds.dtsi | |||
@@ -55,7 +55,7 @@ | |||
55 | flash@0 { | 55 | flash@0 { |
56 | #address-cells = <1>; | 56 | #address-cells = <1>; |
57 | #size-cells = <1>; | 57 | #size-cells = <1>; |
58 | compatible = "spansion,s25sl12801"; | 58 | compatible = "spansion,s25sl12801", "jedec,spi-nor"; |
59 | reg = <0>; | 59 | reg = <0>; |
60 | spi-max-frequency = <30000000>; | 60 | spi-max-frequency = <30000000>; |
61 | }; | 61 | }; |
diff --git a/arch/powerpc/boot/dts/fsl/c293pcie.dts b/arch/powerpc/boot/dts/fsl/c293pcie.dts index 53ab4db9e79c..66709788429d 100644 --- a/arch/powerpc/boot/dts/fsl/c293pcie.dts +++ b/arch/powerpc/boot/dts/fsl/c293pcie.dts | |||
@@ -167,7 +167,7 @@ | |||
167 | flash@0 { | 167 | flash@0 { |
168 | #address-cells = <1>; | 168 | #address-cells = <1>; |
169 | #size-cells = <1>; | 169 | #size-cells = <1>; |
170 | compatible = "spansion,s25sl12801"; | 170 | compatible = "spansion,s25sl12801", "jedec,spi-nor"; |
171 | reg = <0>; | 171 | reg = <0>; |
172 | spi-max-frequency = <50000000>; | 172 | spi-max-frequency = <50000000>; |
173 | 173 | ||
diff --git a/arch/powerpc/boot/dts/fsl/gef_ppc9a.dts b/arch/powerpc/boot/dts/fsl/gef_ppc9a.dts new file mode 100644 index 000000000000..0424fc2bd0e0 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/gef_ppc9a.dts | |||
@@ -0,0 +1,216 @@ | |||
1 | /* | ||
2 | * GE PPC9A Device Tree Source | ||
3 | * | ||
4 | * Copyright 2008 GE Intelligent Platforms Embedded Systems, 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 | * Based on: SBS CM6 Device Tree Source | ||
12 | * Copyright 2007 SBS Technologies GmbH & Co. KG | ||
13 | * And: mpc8641_hpcn.dts (MPC8641 HPCN Device Tree Source) | ||
14 | * Copyright 2006 Freescale Semiconductor Inc. | ||
15 | */ | ||
16 | |||
17 | /* | ||
18 | * Compiled with dtc -I dts -O dtb -o gef_ppc9a.dtb gef_ppc9a.dts | ||
19 | */ | ||
20 | |||
21 | /include/ "mpc8641si-pre.dtsi" | ||
22 | |||
23 | / { | ||
24 | model = "GEF_PPC9A"; | ||
25 | compatible = "gef,ppc9a"; | ||
26 | |||
27 | memory { | ||
28 | device_type = "memory"; | ||
29 | reg = <0x0 0x40000000>; // set by uboot | ||
30 | }; | ||
31 | |||
32 | lbc: localbus@fef05000 { | ||
33 | reg = <0xfef05000 0x1000>; | ||
34 | |||
35 | ranges = <0 0 0xff000000 0x01000000 // 16MB Boot flash | ||
36 | 1 0 0xe8000000 0x08000000 // Paged Flash 0 | ||
37 | 2 0 0xe0000000 0x08000000 // Paged Flash 1 | ||
38 | 3 0 0xfc100000 0x00020000 // NVRAM | ||
39 | 4 0 0xfc000000 0x00008000 // FPGA | ||
40 | 5 0 0xfc008000 0x00008000 // AFIX FPGA | ||
41 | 6 0 0xfd000000 0x00800000 // IO FPGA (8-bit) | ||
42 | 7 0 0xfd800000 0x00800000>; // IO FPGA (32-bit) | ||
43 | |||
44 | /* flash@0,0 is a mirror of part of the memory in flash@1,0 | ||
45 | flash@0,0 { | ||
46 | compatible = "gef,ppc9a-firmware-mirror", "cfi-flash"; | ||
47 | reg = <0x0 0x0 0x1000000>; | ||
48 | bank-width = <4>; | ||
49 | device-width = <2>; | ||
50 | #address-cells = <1>; | ||
51 | #size-cells = <1>; | ||
52 | partition@0 { | ||
53 | label = "firmware"; | ||
54 | reg = <0x0 0x1000000>; | ||
55 | read-only; | ||
56 | }; | ||
57 | }; | ||
58 | */ | ||
59 | |||
60 | flash@1,0 { | ||
61 | compatible = "gef,ppc9a-paged-flash", "cfi-flash"; | ||
62 | reg = <0x1 0x0 0x8000000>; | ||
63 | bank-width = <4>; | ||
64 | device-width = <2>; | ||
65 | #address-cells = <1>; | ||
66 | #size-cells = <1>; | ||
67 | partition@0 { | ||
68 | label = "user"; | ||
69 | reg = <0x0 0x7800000>; | ||
70 | }; | ||
71 | partition@7800000 { | ||
72 | label = "firmware"; | ||
73 | reg = <0x7800000 0x800000>; | ||
74 | read-only; | ||
75 | }; | ||
76 | }; | ||
77 | |||
78 | nvram@3,0 { | ||
79 | device_type = "nvram"; | ||
80 | compatible = "simtek,stk14ca8"; | ||
81 | reg = <0x3 0x0 0x20000>; | ||
82 | }; | ||
83 | |||
84 | fpga@4,0 { | ||
85 | compatible = "gef,ppc9a-fpga-regs"; | ||
86 | reg = <0x4 0x0 0x40>; | ||
87 | }; | ||
88 | |||
89 | wdt@4,2000 { | ||
90 | compatible = "gef,ppc9a-fpga-wdt", "gef,fpga-wdt-1.00", | ||
91 | "gef,fpga-wdt"; | ||
92 | reg = <0x4 0x2000 0x8>; | ||
93 | interrupts = <0x1a 0x4>; | ||
94 | interrupt-parent = <&gef_pic>; | ||
95 | }; | ||
96 | /* Second watchdog available, driver currently supports one. | ||
97 | wdt@4,2010 { | ||
98 | compatible = "gef,ppc9a-fpga-wdt", "gef,fpga-wdt-1.00", | ||
99 | "gef,fpga-wdt"; | ||
100 | reg = <0x4 0x2010 0x8>; | ||
101 | interrupts = <0x1b 0x4>; | ||
102 | interrupt-parent = <&gef_pic>; | ||
103 | }; | ||
104 | */ | ||
105 | gef_pic: pic@4,4000 { | ||
106 | #interrupt-cells = <1>; | ||
107 | interrupt-controller; | ||
108 | compatible = "gef,ppc9a-fpga-pic", "gef,fpga-pic-1.00"; | ||
109 | reg = <0x4 0x4000 0x20>; | ||
110 | interrupts = <0x8 0x9 0 0>; | ||
111 | |||
112 | }; | ||
113 | gef_gpio: gpio@7,14000 { | ||
114 | #gpio-cells = <2>; | ||
115 | compatible = "gef,ppc9a-gpio", "gef,sbc610-gpio"; | ||
116 | reg = <0x7 0x14000 0x24>; | ||
117 | gpio-controller; | ||
118 | }; | ||
119 | }; | ||
120 | |||
121 | soc: soc@fef00000 { | ||
122 | ranges = <0x0 0xfef00000 0x00100000>; | ||
123 | |||
124 | i2c@3000 { | ||
125 | hwmon@48 { | ||
126 | compatible = "national,lm92"; | ||
127 | reg = <0x48>; | ||
128 | }; | ||
129 | |||
130 | hwmon@4c { | ||
131 | compatible = "adi,adt7461"; | ||
132 | reg = <0x4c>; | ||
133 | }; | ||
134 | |||
135 | rtc@51 { | ||
136 | compatible = "epson,rx8581"; | ||
137 | reg = <0x00000051>; | ||
138 | }; | ||
139 | |||
140 | eti@6b { | ||
141 | compatible = "dallas,ds1682"; | ||
142 | reg = <0x6b>; | ||
143 | }; | ||
144 | }; | ||
145 | |||
146 | enet0: ethernet@24000 { | ||
147 | tbi-handle = <&tbi0>; | ||
148 | phy-handle = <&phy0>; | ||
149 | phy-connection-type = "gmii"; | ||
150 | }; | ||
151 | |||
152 | mdio@24520 { | ||
153 | phy0: ethernet-phy@0 { | ||
154 | interrupt-parent = <&gef_pic>; | ||
155 | interrupts = <0x9 0x4>; | ||
156 | reg = <1>; | ||
157 | }; | ||
158 | phy2: ethernet-phy@2 { | ||
159 | interrupt-parent = <&gef_pic>; | ||
160 | interrupts = <0x8 0x4>; | ||
161 | reg = <3>; | ||
162 | }; | ||
163 | tbi0: tbi-phy@11 { | ||
164 | reg = <0x11>; | ||
165 | device_type = "tbi-phy"; | ||
166 | }; | ||
167 | }; | ||
168 | |||
169 | enet1: ethernet@26000 { | ||
170 | tbi-handle = <&tbi2>; | ||
171 | phy-handle = <&phy2>; | ||
172 | phy-connection-type = "gmii"; | ||
173 | }; | ||
174 | |||
175 | mdio@26520 { | ||
176 | tbi2: tbi-phy@11 { | ||
177 | reg = <0x11>; | ||
178 | device_type = "tbi-phy"; | ||
179 | }; | ||
180 | }; | ||
181 | |||
182 | enet2: ethernet@25000 { | ||
183 | status = "disabled"; | ||
184 | }; | ||
185 | |||
186 | mdio@25520 { | ||
187 | status = "disabled"; | ||
188 | }; | ||
189 | |||
190 | enet3: ethernet@27000 { | ||
191 | status = "disabled"; | ||
192 | }; | ||
193 | |||
194 | mdio@27520 { | ||
195 | status = "disabled"; | ||
196 | }; | ||
197 | }; | ||
198 | |||
199 | pci0: pcie@fef08000 { | ||
200 | reg = <0xfef08000 0x1000>; | ||
201 | ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x40000000 | ||
202 | 0x01000000 0x0 0x00000000 0xfe000000 0x0 0x00400000>; | ||
203 | |||
204 | pcie@0 { | ||
205 | ranges = <0x02000000 0x0 0x80000000 | ||
206 | 0x02000000 0x0 0x80000000 | ||
207 | 0x0 0x40000000 | ||
208 | |||
209 | 0x01000000 0x0 0x00000000 | ||
210 | 0x01000000 0x0 0x00000000 | ||
211 | 0x0 0x00400000>; | ||
212 | }; | ||
213 | }; | ||
214 | }; | ||
215 | |||
216 | /include/ "mpc8641si-post.dtsi" | ||
diff --git a/arch/powerpc/boot/dts/fsl/gef_sbc310.dts b/arch/powerpc/boot/dts/fsl/gef_sbc310.dts new file mode 100644 index 000000000000..84b3d38f880e --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/gef_sbc310.dts | |||
@@ -0,0 +1,260 @@ | |||
1 | /* | ||
2 | * GE SBC310 Device Tree Source | ||
3 | * | ||
4 | * Copyright 2008 GE Intelligent Platforms Embedded Systems, 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 | * Based on: SBS CM6 Device Tree Source | ||
12 | * Copyright 2007 SBS Technologies GmbH & Co. KG | ||
13 | * And: mpc8641_hpcn.dts (MPC8641 HPCN Device Tree Source) | ||
14 | * Copyright 2006 Freescale Semiconductor Inc. | ||
15 | */ | ||
16 | |||
17 | /* | ||
18 | * Compiled with dtc -I dts -O dtb -o gef_sbc310.dtb gef_sbc310.dts | ||
19 | */ | ||
20 | |||
21 | /include/ "mpc8641si-pre.dtsi" | ||
22 | |||
23 | / { | ||
24 | model = "GEF_SBC310"; | ||
25 | compatible = "gef,sbc310"; | ||
26 | |||
27 | aliases { | ||
28 | pci1 = &pci1; | ||
29 | }; | ||
30 | |||
31 | memory { | ||
32 | device_type = "memory"; | ||
33 | reg = <0x0 0x40000000>; // set by uboot | ||
34 | }; | ||
35 | |||
36 | lbc: localbus@fef05000 { | ||
37 | reg = <0xfef05000 0x1000>; | ||
38 | |||
39 | ranges = <0 0 0xff000000 0x01000000 // 16MB Boot flash | ||
40 | 1 0 0xe0000000 0x08000000 // Paged Flash 0 | ||
41 | 2 0 0xe8000000 0x08000000 // Paged Flash 1 | ||
42 | 3 0 0xfc100000 0x00020000 // NVRAM | ||
43 | 4 0 0xfc000000 0x00010000>; // FPGA | ||
44 | |||
45 | /* flash@0,0 is a mirror of part of the memory in flash@1,0 | ||
46 | flash@0,0 { | ||
47 | compatible = "gef,sbc310-firmware-mirror", "cfi-flash"; | ||
48 | reg = <0x0 0x0 0x01000000>; | ||
49 | bank-width = <2>; | ||
50 | device-width = <2>; | ||
51 | #address-cells = <1>; | ||
52 | #size-cells = <1>; | ||
53 | partition@0 { | ||
54 | label = "firmware"; | ||
55 | reg = <0x0 0x01000000>; | ||
56 | read-only; | ||
57 | }; | ||
58 | }; | ||
59 | */ | ||
60 | |||
61 | flash@1,0 { | ||
62 | compatible = "gef,sbc310-paged-flash", "cfi-flash"; | ||
63 | reg = <0x1 0x0 0x8000000>; | ||
64 | bank-width = <2>; | ||
65 | device-width = <2>; | ||
66 | #address-cells = <1>; | ||
67 | #size-cells = <1>; | ||
68 | partition@0 { | ||
69 | label = "user"; | ||
70 | reg = <0x0 0x7800000>; | ||
71 | }; | ||
72 | partition@7800000 { | ||
73 | label = "firmware"; | ||
74 | reg = <0x7800000 0x800000>; | ||
75 | read-only; | ||
76 | }; | ||
77 | }; | ||
78 | |||
79 | nvram@3,0 { | ||
80 | device_type = "nvram"; | ||
81 | compatible = "simtek,stk14ca8"; | ||
82 | reg = <0x3 0x0 0x20000>; | ||
83 | }; | ||
84 | |||
85 | fpga@4,0 { | ||
86 | compatible = "gef,fpga-regs"; | ||
87 | reg = <0x4 0x0 0x40>; | ||
88 | }; | ||
89 | |||
90 | wdt@4,2000 { | ||
91 | compatible = "gef,sbc310-fpga-wdt", "gef,fpga-wdt-1.00", | ||
92 | "gef,fpga-wdt"; | ||
93 | reg = <0x4 0x2000 0x8>; | ||
94 | interrupts = <0x1a 0x4>; | ||
95 | interrupt-parent = <&gef_pic>; | ||
96 | }; | ||
97 | /* | ||
98 | wdt@4,2010 { | ||
99 | compatible = "gef,sbc310-fpga-wdt", "gef,fpga-wdt-1.00", | ||
100 | "gef,fpga-wdt"; | ||
101 | reg = <0x4 0x2010 0x8>; | ||
102 | interrupts = <0x1b 0x4>; | ||
103 | interrupt-parent = <&gef_pic>; | ||
104 | }; | ||
105 | */ | ||
106 | gef_pic: pic@4,4000 { | ||
107 | #interrupt-cells = <1>; | ||
108 | interrupt-controller; | ||
109 | compatible = "gef,sbc310-fpga-pic", "gef,fpga-pic"; | ||
110 | reg = <0x4 0x4000 0x20>; | ||
111 | interrupts = <0x8 0x9 0 0>; | ||
112 | |||
113 | }; | ||
114 | gef_gpio: gpio@4,8000 { | ||
115 | #gpio-cells = <2>; | ||
116 | compatible = "gef,sbc310-gpio"; | ||
117 | reg = <0x4 0x8000 0x24>; | ||
118 | gpio-controller; | ||
119 | }; | ||
120 | }; | ||
121 | |||
122 | soc: soc@fef00000 { | ||
123 | ranges = <0x0 0xfef00000 0x00100000>; | ||
124 | |||
125 | i2c@3000 { | ||
126 | rtc@51 { | ||
127 | compatible = "epson,rx8581"; | ||
128 | reg = <0x00000051>; | ||
129 | }; | ||
130 | }; | ||
131 | |||
132 | i2c@3100 { | ||
133 | hwmon@48 { | ||
134 | compatible = "national,lm92"; | ||
135 | reg = <0x48>; | ||
136 | }; | ||
137 | |||
138 | hwmon@4c { | ||
139 | compatible = "adi,adt7461"; | ||
140 | reg = <0x4c>; | ||
141 | }; | ||
142 | |||
143 | eti@6b { | ||
144 | compatible = "dallas,ds1682"; | ||
145 | reg = <0x6b>; | ||
146 | }; | ||
147 | }; | ||
148 | |||
149 | enet0: ethernet@24000 { | ||
150 | tbi-handle = <&tbi0>; | ||
151 | phy-handle = <&phy0>; | ||
152 | phy-connection-type = "gmii"; | ||
153 | }; | ||
154 | |||
155 | mdio@24520 { | ||
156 | phy0: ethernet-phy@0 { | ||
157 | interrupt-parent = <&gef_pic>; | ||
158 | interrupts = <0x9 0x4>; | ||
159 | reg = <1>; | ||
160 | }; | ||
161 | phy2: ethernet-phy@2 { | ||
162 | interrupt-parent = <&gef_pic>; | ||
163 | interrupts = <0x8 0x4>; | ||
164 | reg = <3>; | ||
165 | }; | ||
166 | tbi0: tbi-phy@11 { | ||
167 | reg = <0x11>; | ||
168 | device_type = "tbi-phy"; | ||
169 | }; | ||
170 | }; | ||
171 | |||
172 | enet1: ethernet@26000 { | ||
173 | tbi-handle = <&tbi2>; | ||
174 | phy-handle = <&phy2>; | ||
175 | phy-connection-type = "gmii"; | ||
176 | }; | ||
177 | |||
178 | mdio@26520 { | ||
179 | tbi2: tbi-phy@11 { | ||
180 | reg = <0x11>; | ||
181 | device_type = "tbi-phy"; | ||
182 | }; | ||
183 | }; | ||
184 | |||
185 | enet2: ethernet@25000 { | ||
186 | status = "disabled"; | ||
187 | }; | ||
188 | |||
189 | mdio@25520 { | ||
190 | status = "disabled"; | ||
191 | }; | ||
192 | |||
193 | enet3: ethernet@27000 { | ||
194 | status = "disabled"; | ||
195 | }; | ||
196 | |||
197 | mdio@27520 { | ||
198 | status = "disabled"; | ||
199 | }; | ||
200 | }; | ||
201 | |||
202 | pci0: pcie@fef08000 { | ||
203 | reg = <0xfef08000 0x1000>; | ||
204 | ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x40000000 | ||
205 | 0x01000000 0x0 0x00000000 0xfe000000 0x0 0x00400000>; | ||
206 | interrupt-map-mask = <0xff00 0x0 0x0 0x7>; | ||
207 | interrupt-map = < | ||
208 | 0x0000 0x0 0x0 0x1 &mpic 0x0 0x2 | ||
209 | 0x0000 0x0 0x0 0x2 &mpic 0x1 0x2 | ||
210 | 0x0000 0x0 0x0 0x3 &mpic 0x2 0x2 | ||
211 | 0x0000 0x0 0x0 0x4 &mpic 0x3 0x2 | ||
212 | >; | ||
213 | |||
214 | pcie@0 { | ||
215 | ranges = <0x02000000 0x0 0x80000000 | ||
216 | 0x02000000 0x0 0x80000000 | ||
217 | 0x0 0x40000000 | ||
218 | |||
219 | 0x01000000 0x0 0x00000000 | ||
220 | 0x01000000 0x0 0x00000000 | ||
221 | 0x0 0x00400000>; | ||
222 | }; | ||
223 | }; | ||
224 | |||
225 | pci1: pcie@fef09000 { | ||
226 | compatible = "fsl,mpc8641-pcie"; | ||
227 | device_type = "pci"; | ||
228 | #size-cells = <2>; | ||
229 | #address-cells = <3>; | ||
230 | reg = <0xfef09000 0x1000>; | ||
231 | bus-range = <0x0 0xff>; | ||
232 | ranges = <0x02000000 0x0 0xc0000000 0xc0000000 0x0 0x20000000 | ||
233 | 0x01000000 0x0 0x00000000 0xfe400000 0x0 0x00400000>; | ||
234 | clock-frequency = <100000000>; | ||
235 | interrupts = <0x19 0x2 0 0>; | ||
236 | interrupt-map-mask = <0xf800 0x0 0x0 0x7>; | ||
237 | interrupt-map = < | ||
238 | 0x0000 0x0 0x0 0x1 &mpic 0x4 0x2 | ||
239 | 0x0000 0x0 0x0 0x2 &mpic 0x5 0x2 | ||
240 | 0x0000 0x0 0x0 0x3 &mpic 0x6 0x2 | ||
241 | 0x0000 0x0 0x0 0x4 &mpic 0x7 0x2 | ||
242 | >; | ||
243 | |||
244 | pcie@0 { | ||
245 | reg = <0 0 0 0 0>; | ||
246 | #size-cells = <2>; | ||
247 | #address-cells = <3>; | ||
248 | device_type = "pci"; | ||
249 | ranges = <0x02000000 0x0 0xc0000000 | ||
250 | 0x02000000 0x0 0xc0000000 | ||
251 | 0x0 0x20000000 | ||
252 | |||
253 | 0x01000000 0x0 0x00000000 | ||
254 | 0x01000000 0x0 0x00000000 | ||
255 | 0x0 0x00400000>; | ||
256 | }; | ||
257 | }; | ||
258 | }; | ||
259 | |||
260 | /include/ "mpc8641si-post.dtsi" | ||
diff --git a/arch/powerpc/boot/dts/fsl/gef_sbc610.dts b/arch/powerpc/boot/dts/fsl/gef_sbc610.dts new file mode 100644 index 000000000000..974446acce23 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/gef_sbc610.dts | |||
@@ -0,0 +1,214 @@ | |||
1 | /* | ||
2 | * GE SBC610 Device Tree Source | ||
3 | * | ||
4 | * Copyright 2008 GE Intelligent Platforms Embedded Systems, 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 | * Based on: SBS CM6 Device Tree Source | ||
12 | * Copyright 2007 SBS Technologies GmbH & Co. KG | ||
13 | * And: mpc8641_hpcn.dts (MPC8641 HPCN Device Tree Source) | ||
14 | * Copyright 2006 Freescale Semiconductor Inc. | ||
15 | */ | ||
16 | |||
17 | /* | ||
18 | * Compiled with dtc -I dts -O dtb -o gef_sbc610.dtb gef_sbc610.dts | ||
19 | */ | ||
20 | |||
21 | /include/ "mpc8641si-pre.dtsi" | ||
22 | |||
23 | / { | ||
24 | model = "GEF_SBC610"; | ||
25 | compatible = "gef,sbc610"; | ||
26 | |||
27 | memory { | ||
28 | device_type = "memory"; | ||
29 | reg = <0x0 0x40000000>; // set by uboot | ||
30 | }; | ||
31 | |||
32 | lbc: localbus@fef05000 { | ||
33 | reg = <0xfef05000 0x1000>; | ||
34 | |||
35 | ranges = <0 0 0xff000000 0x01000000 // 16MB Boot flash | ||
36 | 1 0 0xe8000000 0x08000000 // Paged Flash 0 | ||
37 | 2 0 0xe0000000 0x08000000 // Paged Flash 1 | ||
38 | 3 0 0xfc100000 0x00020000 // NVRAM | ||
39 | 4 0 0xfc000000 0x00008000 // FPGA | ||
40 | 5 0 0xfc008000 0x00008000 // AFIX FPGA | ||
41 | 6 0 0xfd000000 0x00800000 // IO FPGA (8-bit) | ||
42 | 7 0 0xfd800000 0x00800000>; // IO FPGA (32-bit) | ||
43 | |||
44 | /* flash@0,0 is a mirror of part of the memory in flash@1,0 | ||
45 | flash@0,0 { | ||
46 | compatible = "gef,sbc610-firmware-mirror", "cfi-flash"; | ||
47 | reg = <0x0 0x0 0x1000000>; | ||
48 | bank-width = <4>; | ||
49 | device-width = <2>; | ||
50 | #address-cells = <1>; | ||
51 | #size-cells = <1>; | ||
52 | partition@0 { | ||
53 | label = "firmware"; | ||
54 | reg = <0x0 0x1000000>; | ||
55 | read-only; | ||
56 | }; | ||
57 | }; | ||
58 | */ | ||
59 | |||
60 | flash@1,0 { | ||
61 | compatible = "gef,sbc610-paged-flash", "cfi-flash"; | ||
62 | reg = <0x1 0x0 0x8000000>; | ||
63 | bank-width = <4>; | ||
64 | device-width = <2>; | ||
65 | #address-cells = <1>; | ||
66 | #size-cells = <1>; | ||
67 | partition@0 { | ||
68 | label = "user"; | ||
69 | reg = <0x0 0x7800000>; | ||
70 | }; | ||
71 | partition@7800000 { | ||
72 | label = "firmware"; | ||
73 | reg = <0x7800000 0x800000>; | ||
74 | read-only; | ||
75 | }; | ||
76 | }; | ||
77 | |||
78 | nvram@3,0 { | ||
79 | device_type = "nvram"; | ||
80 | compatible = "simtek,stk14ca8"; | ||
81 | reg = <0x3 0x0 0x20000>; | ||
82 | }; | ||
83 | |||
84 | fpga@4,0 { | ||
85 | compatible = "gef,fpga-regs"; | ||
86 | reg = <0x4 0x0 0x40>; | ||
87 | }; | ||
88 | |||
89 | wdt@4,2000 { | ||
90 | compatible = "gef,fpga-wdt"; | ||
91 | reg = <0x4 0x2000 0x8>; | ||
92 | interrupts = <0x1a 0x4>; | ||
93 | interrupt-parent = <&gef_pic>; | ||
94 | }; | ||
95 | /* Second watchdog available, driver currently supports one. | ||
96 | wdt@4,2010 { | ||
97 | compatible = "gef,fpga-wdt"; | ||
98 | reg = <0x4 0x2010 0x8>; | ||
99 | interrupts = <0x1b 0x4>; | ||
100 | interrupt-parent = <&gef_pic>; | ||
101 | }; | ||
102 | */ | ||
103 | gef_pic: pic@4,4000 { | ||
104 | #interrupt-cells = <1>; | ||
105 | interrupt-controller; | ||
106 | compatible = "gef,fpga-pic"; | ||
107 | reg = <0x4 0x4000 0x20>; | ||
108 | interrupts = <0x8 0x9 0 0>; | ||
109 | |||
110 | }; | ||
111 | gef_gpio: gpio@7,14000 { | ||
112 | #gpio-cells = <2>; | ||
113 | compatible = "gef,sbc610-gpio"; | ||
114 | reg = <0x7 0x14000 0x24>; | ||
115 | gpio-controller; | ||
116 | }; | ||
117 | }; | ||
118 | |||
119 | soc: soc@fef00000 { | ||
120 | ranges = <0x0 0xfef00000 0x00100000>; | ||
121 | |||
122 | i2c@3000 { | ||
123 | hwmon@48 { | ||
124 | compatible = "national,lm92"; | ||
125 | reg = <0x48>; | ||
126 | }; | ||
127 | |||
128 | hwmon@4c { | ||
129 | compatible = "adi,adt7461"; | ||
130 | reg = <0x4c>; | ||
131 | }; | ||
132 | |||
133 | rtc@51 { | ||
134 | compatible = "epson,rx8581"; | ||
135 | reg = <0x00000051>; | ||
136 | }; | ||
137 | |||
138 | eti@6b { | ||
139 | compatible = "dallas,ds1682"; | ||
140 | reg = <0x6b>; | ||
141 | }; | ||
142 | }; | ||
143 | |||
144 | enet0: ethernet@24000 { | ||
145 | tbi-handle = <&tbi0>; | ||
146 | phy-handle = <&phy0>; | ||
147 | phy-connection-type = "gmii"; | ||
148 | }; | ||
149 | |||
150 | mdio@24520 { | ||
151 | phy0: ethernet-phy@0 { | ||
152 | interrupt-parent = <&gef_pic>; | ||
153 | interrupts = <0x9 0x4>; | ||
154 | reg = <1>; | ||
155 | }; | ||
156 | phy2: ethernet-phy@2 { | ||
157 | interrupt-parent = <&gef_pic>; | ||
158 | interrupts = <0x8 0x4>; | ||
159 | reg = <3>; | ||
160 | }; | ||
161 | tbi0: tbi-phy@11 { | ||
162 | reg = <0x11>; | ||
163 | device_type = "tbi-phy"; | ||
164 | }; | ||
165 | }; | ||
166 | |||
167 | enet1: ethernet@26000 { | ||
168 | tbi-handle = <&tbi2>; | ||
169 | phy-handle = <&phy2>; | ||
170 | phy-connection-type = "gmii"; | ||
171 | }; | ||
172 | |||
173 | mdio@26520 { | ||
174 | tbi2: tbi-phy@11 { | ||
175 | reg = <0x11>; | ||
176 | device_type = "tbi-phy"; | ||
177 | }; | ||
178 | }; | ||
179 | |||
180 | enet2: ethernet@25000 { | ||
181 | status = "disabled"; | ||
182 | }; | ||
183 | |||
184 | mdio@25520 { | ||
185 | status = "disabled"; | ||
186 | }; | ||
187 | |||
188 | enet3: ethernet@27000 { | ||
189 | status = "disabled"; | ||
190 | }; | ||
191 | |||
192 | mdio@27520 { | ||
193 | status = "disabled"; | ||
194 | }; | ||
195 | }; | ||
196 | |||
197 | pci0: pcie@fef08000 { | ||
198 | reg = <0xfef08000 0x1000>; | ||
199 | ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x40000000 | ||
200 | 0x01000000 0x0 0x00000000 0xfe000000 0x0 0x00400000>; | ||
201 | |||
202 | pcie@0 { | ||
203 | ranges = <0x02000000 0x0 0x80000000 | ||
204 | 0x02000000 0x0 0x80000000 | ||
205 | 0x0 0x40000000 | ||
206 | |||
207 | 0x01000000 0x0 0x00000000 | ||
208 | 0x01000000 0x0 0x00000000 | ||
209 | 0x0 0x00400000>; | ||
210 | }; | ||
211 | }; | ||
212 | }; | ||
213 | |||
214 | /include/ "mpc8641si-post.dtsi" | ||
diff --git a/arch/powerpc/boot/dts/fsl/kmcoge4.dts b/arch/powerpc/boot/dts/fsl/kmcoge4.dts index 6858ec9ef295..2d4b64fcee88 100644 --- a/arch/powerpc/boot/dts/fsl/kmcoge4.dts +++ b/arch/powerpc/boot/dts/fsl/kmcoge4.dts | |||
@@ -63,7 +63,7 @@ | |||
63 | flash@0 { | 63 | flash@0 { |
64 | #address-cells = <1>; | 64 | #address-cells = <1>; |
65 | #size-cells = <1>; | 65 | #size-cells = <1>; |
66 | compatible = "spansion,s25fl256s1"; | 66 | compatible = "spansion,s25fl256s1", "jedec,spi-nor"; |
67 | reg = <0>; | 67 | reg = <0>; |
68 | spi-max-frequency = <20000000>; /* input clock */ | 68 | spi-max-frequency = <20000000>; /* input clock */ |
69 | }; | 69 | }; |
@@ -77,7 +77,7 @@ | |||
77 | flash@2 { | 77 | flash@2 { |
78 | #address-cells = <1>; | 78 | #address-cells = <1>; |
79 | #size-cells = <1>; | 79 | #size-cells = <1>; |
80 | compatible = "micron,m25p32"; | 80 | compatible = "micron,m25p32", "jedec,spi-nor"; |
81 | reg = <2>; | 81 | reg = <2>; |
82 | spi-max-frequency = <15000000>; | 82 | spi-max-frequency = <15000000>; |
83 | }; | 83 | }; |
diff --git a/arch/powerpc/boot/dts/fsl/mpc8536ds.dtsi b/arch/powerpc/boot/dts/fsl/mpc8536ds.dtsi index 937ad7e46119..a925fe49a73e 100644 --- a/arch/powerpc/boot/dts/fsl/mpc8536ds.dtsi +++ b/arch/powerpc/boot/dts/fsl/mpc8536ds.dtsi | |||
@@ -142,7 +142,7 @@ | |||
142 | flash@0 { | 142 | flash@0 { |
143 | #address-cells = <1>; | 143 | #address-cells = <1>; |
144 | #size-cells = <1>; | 144 | #size-cells = <1>; |
145 | compatible = "spansion,s25sl12801"; | 145 | compatible = "spansion,s25sl12801", "jedec,spi-nor"; |
146 | reg = <0>; | 146 | reg = <0>; |
147 | spi-max-frequency = <40000000>; | 147 | spi-max-frequency = <40000000>; |
148 | partition@u-boot { | 148 | partition@u-boot { |
@@ -166,17 +166,17 @@ | |||
166 | }; | 166 | }; |
167 | }; | 167 | }; |
168 | flash@1 { | 168 | flash@1 { |
169 | compatible = "spansion,s25sl12801"; | 169 | compatible = "spansion,s25sl12801", "jedec,spi-nor"; |
170 | reg = <1>; | 170 | reg = <1>; |
171 | spi-max-frequency = <40000000>; | 171 | spi-max-frequency = <40000000>; |
172 | }; | 172 | }; |
173 | flash@2 { | 173 | flash@2 { |
174 | compatible = "spansion,s25sl12801"; | 174 | compatible = "spansion,s25sl12801", "jedec,spi-nor"; |
175 | reg = <2>; | 175 | reg = <2>; |
176 | spi-max-frequency = <40000000>; | 176 | spi-max-frequency = <40000000>; |
177 | }; | 177 | }; |
178 | flash@3 { | 178 | flash@3 { |
179 | compatible = "spansion,s25sl12801"; | 179 | compatible = "spansion,s25sl12801", "jedec,spi-nor"; |
180 | reg = <3>; | 180 | reg = <3>; |
181 | spi-max-frequency = <40000000>; | 181 | spi-max-frequency = <40000000>; |
182 | }; | 182 | }; |
diff --git a/arch/powerpc/boot/dts/mpc8641_hpcn.dts b/arch/powerpc/boot/dts/fsl/mpc8641_hpcn.dts index 1c03060dd0b8..554001f2e96a 100644 --- a/arch/powerpc/boot/dts/mpc8641_hpcn.dts +++ b/arch/powerpc/boot/dts/fsl/mpc8641_hpcn.dts | |||
@@ -9,65 +9,23 @@ | |||
9 | * option) any later version. | 9 | * option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | /dts-v1/; | 12 | /include/ "mpc8641si-pre.dtsi" |
13 | 13 | ||
14 | / { | 14 | / { |
15 | model = "MPC8641HPCN"; | 15 | model = "MPC8641HPCN"; |
16 | compatible = "fsl,mpc8641hpcn"; | 16 | compatible = "fsl,mpc8641hpcn"; |
17 | #address-cells = <1>; | ||
18 | #size-cells = <1>; | ||
19 | 17 | ||
20 | aliases { | 18 | aliases { |
21 | ethernet0 = &enet0; | ||
22 | ethernet1 = &enet1; | ||
23 | ethernet2 = &enet2; | ||
24 | ethernet3 = &enet3; | ||
25 | serial0 = &serial0; | ||
26 | serial1 = &serial1; | ||
27 | pci0 = &pci0; | ||
28 | pci1 = &pci1; | 19 | pci1 = &pci1; |
29 | }; | 20 | }; |
30 | 21 | ||
31 | cpus { | ||
32 | #address-cells = <1>; | ||
33 | #size-cells = <0>; | ||
34 | |||
35 | PowerPC,8641@0 { | ||
36 | device_type = "cpu"; | ||
37 | reg = <0>; | ||
38 | d-cache-line-size = <32>; | ||
39 | i-cache-line-size = <32>; | ||
40 | d-cache-size = <32768>; // L1 | ||
41 | i-cache-size = <32768>; // L1 | ||
42 | timebase-frequency = <0>; // From uboot | ||
43 | bus-frequency = <0>; // From uboot | ||
44 | clock-frequency = <0>; // From uboot | ||
45 | }; | ||
46 | PowerPC,8641@1 { | ||
47 | device_type = "cpu"; | ||
48 | reg = <1>; | ||
49 | d-cache-line-size = <32>; | ||
50 | i-cache-line-size = <32>; | ||
51 | d-cache-size = <32768>; | ||
52 | i-cache-size = <32768>; | ||
53 | timebase-frequency = <0>; // From uboot | ||
54 | bus-frequency = <0>; // From uboot | ||
55 | clock-frequency = <0>; // From uboot | ||
56 | }; | ||
57 | }; | ||
58 | |||
59 | memory { | 22 | memory { |
60 | device_type = "memory"; | 23 | device_type = "memory"; |
61 | reg = <0x00000000 0x40000000>; // 1G at 0x0 | 24 | reg = <0x00000000 0x40000000>; // 1G at 0x0 |
62 | }; | 25 | }; |
63 | 26 | ||
64 | localbus@ffe05000 { | 27 | lbc: localbus@ffe05000 { |
65 | #address-cells = <2>; | ||
66 | #size-cells = <1>; | ||
67 | compatible = "fsl,mpc8641-localbus", "simple-bus"; | ||
68 | reg = <0xffe05000 0x1000>; | 28 | reg = <0xffe05000 0x1000>; |
69 | interrupts = <19 2>; | ||
70 | interrupt-parent = <&mpic>; | ||
71 | 29 | ||
72 | ranges = <0 0 0xef800000 0x00800000 | 30 | ranges = <0 0 0xef800000 0x00800000 |
73 | 2 0 0xffdf8000 0x00008000 | 31 | 2 0 0xffdf8000 0x00008000 |
@@ -101,253 +59,75 @@ | |||
101 | }; | 59 | }; |
102 | }; | 60 | }; |
103 | 61 | ||
104 | soc8641@ffe00000 { | 62 | soc: soc8641@ffe00000 { |
105 | #address-cells = <1>; | ||
106 | #size-cells = <1>; | ||
107 | device_type = "soc"; | ||
108 | compatible = "simple-bus"; | ||
109 | ranges = <0x00000000 0xffe00000 0x00100000>; | 63 | ranges = <0x00000000 0xffe00000 0x00100000>; |
110 | bus-frequency = <0>; | ||
111 | |||
112 | mcm-law@0 { | ||
113 | compatible = "fsl,mcm-law"; | ||
114 | reg = <0x0 0x1000>; | ||
115 | fsl,num-laws = <10>; | ||
116 | }; | ||
117 | |||
118 | mcm@1000 { | ||
119 | compatible = "fsl,mpc8641-mcm", "fsl,mcm"; | ||
120 | reg = <0x1000 0x1000>; | ||
121 | interrupts = <17 2>; | ||
122 | interrupt-parent = <&mpic>; | ||
123 | }; | ||
124 | 64 | ||
125 | i2c@3000 { | 65 | enet0: ethernet@24000 { |
126 | #address-cells = <1>; | 66 | tbi-handle = <&tbi0>; |
127 | #size-cells = <0>; | 67 | phy-handle = <&phy0>; |
128 | cell-index = <0>; | 68 | phy-connection-type = "rgmii-id"; |
129 | compatible = "fsl-i2c"; | ||
130 | reg = <0x3000 0x100>; | ||
131 | interrupts = <43 2>; | ||
132 | interrupt-parent = <&mpic>; | ||
133 | dfsrr; | ||
134 | }; | ||
135 | |||
136 | i2c@3100 { | ||
137 | #address-cells = <1>; | ||
138 | #size-cells = <0>; | ||
139 | cell-index = <1>; | ||
140 | compatible = "fsl-i2c"; | ||
141 | reg = <0x3100 0x100>; | ||
142 | interrupts = <43 2>; | ||
143 | interrupt-parent = <&mpic>; | ||
144 | dfsrr; | ||
145 | }; | 69 | }; |
146 | 70 | ||
147 | dma@21300 { | 71 | mdio@24520 { |
148 | #address-cells = <1>; | 72 | phy0: ethernet-phy@0 { |
149 | #size-cells = <1>; | 73 | interrupts = <10 1 0 0>; |
150 | compatible = "fsl,mpc8641-dma", "fsl,eloplus-dma"; | 74 | reg = <0>; |
151 | reg = <0x21300 0x4>; | ||
152 | ranges = <0x0 0x21100 0x200>; | ||
153 | cell-index = <0>; | ||
154 | dma-channel@0 { | ||
155 | compatible = "fsl,mpc8641-dma-channel", | ||
156 | "fsl,eloplus-dma-channel"; | ||
157 | reg = <0x0 0x80>; | ||
158 | cell-index = <0>; | ||
159 | interrupt-parent = <&mpic>; | ||
160 | interrupts = <20 2>; | ||
161 | }; | 75 | }; |
162 | dma-channel@80 { | 76 | phy1: ethernet-phy@1 { |
163 | compatible = "fsl,mpc8641-dma-channel", | 77 | interrupts = <10 1 0 0>; |
164 | "fsl,eloplus-dma-channel"; | 78 | reg = <1>; |
165 | reg = <0x80 0x80>; | ||
166 | cell-index = <1>; | ||
167 | interrupt-parent = <&mpic>; | ||
168 | interrupts = <21 2>; | ||
169 | }; | 79 | }; |
170 | dma-channel@100 { | 80 | phy2: ethernet-phy@2 { |
171 | compatible = "fsl,mpc8641-dma-channel", | 81 | interrupts = <10 1 0 0>; |
172 | "fsl,eloplus-dma-channel"; | 82 | reg = <2>; |
173 | reg = <0x100 0x80>; | ||
174 | cell-index = <2>; | ||
175 | interrupt-parent = <&mpic>; | ||
176 | interrupts = <22 2>; | ||
177 | }; | 83 | }; |
178 | dma-channel@180 { | 84 | phy3: ethernet-phy@3 { |
179 | compatible = "fsl,mpc8641-dma-channel", | 85 | interrupts = <10 1 0 0>; |
180 | "fsl,eloplus-dma-channel"; | 86 | reg = <3>; |
181 | reg = <0x180 0x80>; | ||
182 | cell-index = <3>; | ||
183 | interrupt-parent = <&mpic>; | ||
184 | interrupts = <23 2>; | ||
185 | }; | 87 | }; |
186 | }; | 88 | tbi0: tbi-phy@11 { |
187 | 89 | reg = <0x11>; | |
188 | enet0: ethernet@24000 { | 90 | device_type = "tbi-phy"; |
189 | #address-cells = <1>; | ||
190 | #size-cells = <1>; | ||
191 | cell-index = <0>; | ||
192 | device_type = "network"; | ||
193 | model = "TSEC"; | ||
194 | compatible = "gianfar"; | ||
195 | reg = <0x24000 0x1000>; | ||
196 | ranges = <0x0 0x24000 0x1000>; | ||
197 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
198 | interrupts = <29 2 30 2 34 2>; | ||
199 | interrupt-parent = <&mpic>; | ||
200 | tbi-handle = <&tbi0>; | ||
201 | phy-handle = <&phy0>; | ||
202 | phy-connection-type = "rgmii-id"; | ||
203 | |||
204 | mdio@520 { | ||
205 | #address-cells = <1>; | ||
206 | #size-cells = <0>; | ||
207 | compatible = "fsl,gianfar-mdio"; | ||
208 | reg = <0x520 0x20>; | ||
209 | |||
210 | phy0: ethernet-phy@0 { | ||
211 | interrupt-parent = <&mpic>; | ||
212 | interrupts = <10 1>; | ||
213 | reg = <0>; | ||
214 | }; | ||
215 | phy1: ethernet-phy@1 { | ||
216 | interrupt-parent = <&mpic>; | ||
217 | interrupts = <10 1>; | ||
218 | reg = <1>; | ||
219 | }; | ||
220 | phy2: ethernet-phy@2 { | ||
221 | interrupt-parent = <&mpic>; | ||
222 | interrupts = <10 1>; | ||
223 | reg = <2>; | ||
224 | }; | ||
225 | phy3: ethernet-phy@3 { | ||
226 | interrupt-parent = <&mpic>; | ||
227 | interrupts = <10 1>; | ||
228 | reg = <3>; | ||
229 | }; | ||
230 | tbi0: tbi-phy@11 { | ||
231 | reg = <0x11>; | ||
232 | device_type = "tbi-phy"; | ||
233 | }; | ||
234 | }; | 91 | }; |
235 | }; | 92 | }; |
236 | 93 | ||
237 | enet1: ethernet@25000 { | 94 | enet1: ethernet@25000 { |
238 | #address-cells = <1>; | ||
239 | #size-cells = <1>; | ||
240 | cell-index = <1>; | ||
241 | device_type = "network"; | ||
242 | model = "TSEC"; | ||
243 | compatible = "gianfar"; | ||
244 | reg = <0x25000 0x1000>; | ||
245 | ranges = <0x0 0x25000 0x1000>; | ||
246 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
247 | interrupts = <35 2 36 2 40 2>; | ||
248 | interrupt-parent = <&mpic>; | ||
249 | tbi-handle = <&tbi1>; | 95 | tbi-handle = <&tbi1>; |
250 | phy-handle = <&phy1>; | 96 | phy-handle = <&phy1>; |
251 | phy-connection-type = "rgmii-id"; | 97 | phy-connection-type = "rgmii-id"; |
98 | }; | ||
252 | 99 | ||
253 | mdio@520 { | 100 | mdio@25520 { |
254 | #address-cells = <1>; | 101 | tbi1: tbi-phy@11 { |
255 | #size-cells = <0>; | 102 | reg = <0x11>; |
256 | compatible = "fsl,gianfar-tbi"; | 103 | device_type = "tbi-phy"; |
257 | reg = <0x520 0x20>; | ||
258 | |||
259 | tbi1: tbi-phy@11 { | ||
260 | reg = <0x11>; | ||
261 | device_type = "tbi-phy"; | ||
262 | }; | ||
263 | }; | 104 | }; |
264 | }; | 105 | }; |
265 | 106 | ||
266 | enet2: ethernet@26000 { | 107 | enet2: ethernet@26000 { |
267 | #address-cells = <1>; | ||
268 | #size-cells = <1>; | ||
269 | cell-index = <2>; | ||
270 | device_type = "network"; | ||
271 | model = "TSEC"; | ||
272 | compatible = "gianfar"; | ||
273 | reg = <0x26000 0x1000>; | ||
274 | ranges = <0x0 0x26000 0x1000>; | ||
275 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
276 | interrupts = <31 2 32 2 33 2>; | ||
277 | interrupt-parent = <&mpic>; | ||
278 | tbi-handle = <&tbi2>; | 108 | tbi-handle = <&tbi2>; |
279 | phy-handle = <&phy2>; | 109 | phy-handle = <&phy2>; |
280 | phy-connection-type = "rgmii-id"; | 110 | phy-connection-type = "rgmii-id"; |
111 | }; | ||
281 | 112 | ||
282 | mdio@520 { | 113 | mdio@26520 { |
283 | #address-cells = <1>; | 114 | tbi2: tbi-phy@11 { |
284 | #size-cells = <0>; | 115 | reg = <0x11>; |
285 | compatible = "fsl,gianfar-tbi"; | 116 | device_type = "tbi-phy"; |
286 | reg = <0x520 0x20>; | ||
287 | |||
288 | tbi2: tbi-phy@11 { | ||
289 | reg = <0x11>; | ||
290 | device_type = "tbi-phy"; | ||
291 | }; | ||
292 | }; | 117 | }; |
293 | }; | 118 | }; |
294 | 119 | ||
295 | enet3: ethernet@27000 { | 120 | enet3: ethernet@27000 { |
296 | #address-cells = <1>; | ||
297 | #size-cells = <1>; | ||
298 | cell-index = <3>; | ||
299 | device_type = "network"; | ||
300 | model = "TSEC"; | ||
301 | compatible = "gianfar"; | ||
302 | reg = <0x27000 0x1000>; | ||
303 | ranges = <0x0 0x27000 0x1000>; | ||
304 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
305 | interrupts = <37 2 38 2 39 2>; | ||
306 | interrupt-parent = <&mpic>; | ||
307 | tbi-handle = <&tbi3>; | 121 | tbi-handle = <&tbi3>; |
308 | phy-handle = <&phy3>; | 122 | phy-handle = <&phy3>; |
309 | phy-connection-type = "rgmii-id"; | 123 | phy-connection-type = "rgmii-id"; |
310 | |||
311 | mdio@520 { | ||
312 | #address-cells = <1>; | ||
313 | #size-cells = <0>; | ||
314 | compatible = "fsl,gianfar-tbi"; | ||
315 | reg = <0x520 0x20>; | ||
316 | |||
317 | tbi3: tbi-phy@11 { | ||
318 | reg = <0x11>; | ||
319 | device_type = "tbi-phy"; | ||
320 | }; | ||
321 | }; | ||
322 | }; | 124 | }; |
323 | 125 | ||
324 | serial0: serial@4500 { | 126 | mdio@27520 { |
325 | cell-index = <0>; | 127 | tbi3: tbi-phy@11 { |
326 | device_type = "serial"; | 128 | reg = <0x11>; |
327 | compatible = "fsl,ns16550", "ns16550"; | 129 | device_type = "tbi-phy"; |
328 | reg = <0x4500 0x100>; | 130 | }; |
329 | clock-frequency = <0>; | ||
330 | interrupts = <42 2>; | ||
331 | interrupt-parent = <&mpic>; | ||
332 | }; | ||
333 | |||
334 | serial1: serial@4600 { | ||
335 | cell-index = <1>; | ||
336 | device_type = "serial"; | ||
337 | compatible = "fsl,ns16550", "ns16550"; | ||
338 | reg = <0x4600 0x100>; | ||
339 | clock-frequency = <0>; | ||
340 | interrupts = <28 2>; | ||
341 | interrupt-parent = <&mpic>; | ||
342 | }; | ||
343 | |||
344 | mpic: pic@40000 { | ||
345 | interrupt-controller; | ||
346 | #address-cells = <0>; | ||
347 | #interrupt-cells = <2>; | ||
348 | reg = <0x40000 0x40000>; | ||
349 | compatible = "chrp,open-pic"; | ||
350 | device_type = "open-pic"; | ||
351 | }; | 131 | }; |
352 | 132 | ||
353 | rmu: rmu@d3000 { | 133 | rmu: rmu@d3000 { |
@@ -361,50 +141,35 @@ | |||
361 | compatible = "fsl,srio-msg-unit"; | 141 | compatible = "fsl,srio-msg-unit"; |
362 | reg = <0x0 0x100>; | 142 | reg = <0x0 0x100>; |
363 | interrupts = < | 143 | interrupts = < |
364 | 53 2 /* msg1_tx_irq */ | 144 | 53 2 0 0 /* msg1_tx_irq */ |
365 | 54 2>;/* msg1_rx_irq */ | 145 | 54 2 0 0>;/* msg1_rx_irq */ |
366 | }; | 146 | }; |
367 | message-unit@100 { | 147 | message-unit@100 { |
368 | compatible = "fsl,srio-msg-unit"; | 148 | compatible = "fsl,srio-msg-unit"; |
369 | reg = <0x100 0x100>; | 149 | reg = <0x100 0x100>; |
370 | interrupts = < | 150 | interrupts = < |
371 | 55 2 /* msg2_tx_irq */ | 151 | 55 2 0 0 /* msg2_tx_irq */ |
372 | 56 2>;/* msg2_rx_irq */ | 152 | 56 2 0 0>;/* msg2_rx_irq */ |
373 | }; | 153 | }; |
374 | doorbell-unit@400 { | 154 | doorbell-unit@400 { |
375 | compatible = "fsl,srio-dbell-unit"; | 155 | compatible = "fsl,srio-dbell-unit"; |
376 | reg = <0x400 0x80>; | 156 | reg = <0x400 0x80>; |
377 | interrupts = < | 157 | interrupts = < |
378 | 49 2 /* bell_outb_irq */ | 158 | 49 2 0 0 /* bell_outb_irq */ |
379 | 50 2>;/* bell_inb_irq */ | 159 | 50 2 0 0>;/* bell_inb_irq */ |
380 | }; | 160 | }; |
381 | port-write-unit@4e0 { | 161 | port-write-unit@4e0 { |
382 | compatible = "fsl,srio-port-write-unit"; | 162 | compatible = "fsl,srio-port-write-unit"; |
383 | reg = <0x4e0 0x20>; | 163 | reg = <0x4e0 0x20>; |
384 | interrupts = <48 2>; | 164 | interrupts = <48 2 0 0>; |
385 | }; | 165 | }; |
386 | }; | 166 | }; |
387 | |||
388 | global-utilities@e0000 { | ||
389 | compatible = "fsl,mpc8641-guts"; | ||
390 | reg = <0xe0000 0x1000>; | ||
391 | fsl,has-rstcr; | ||
392 | }; | ||
393 | }; | 167 | }; |
394 | 168 | ||
395 | pci0: pcie@ffe08000 { | 169 | pci0: pcie@ffe08000 { |
396 | compatible = "fsl,mpc8641-pcie"; | ||
397 | device_type = "pci"; | ||
398 | #interrupt-cells = <1>; | ||
399 | #size-cells = <2>; | ||
400 | #address-cells = <3>; | ||
401 | reg = <0xffe08000 0x1000>; | 170 | reg = <0xffe08000 0x1000>; |
402 | bus-range = <0x0 0xff>; | ||
403 | ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x20000000 | 171 | ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x20000000 |
404 | 0x01000000 0x0 0x00000000 0xffc00000 0x0 0x00010000>; | 172 | 0x01000000 0x0 0x00000000 0xffc00000 0x0 0x00010000>; |
405 | clock-frequency = <33333333>; | ||
406 | interrupt-parent = <&mpic>; | ||
407 | interrupts = <24 2>; | ||
408 | interrupt-map-mask = <0xff00 0 0 7>; | 173 | interrupt-map-mask = <0xff00 0 0 7>; |
409 | interrupt-map = < | 174 | interrupt-map = < |
410 | /* IDSEL 0x11 func 0 - PCI slot 1 */ | 175 | /* IDSEL 0x11 func 0 - PCI slot 1 */ |
@@ -522,10 +287,6 @@ | |||
522 | >; | 287 | >; |
523 | 288 | ||
524 | pcie@0 { | 289 | pcie@0 { |
525 | reg = <0 0 0 0 0>; | ||
526 | #size-cells = <2>; | ||
527 | #address-cells = <3>; | ||
528 | device_type = "pci"; | ||
529 | ranges = <0x02000000 0x0 0x80000000 | 290 | ranges = <0x02000000 0x0 0x80000000 |
530 | 0x02000000 0x0 0x80000000 | 291 | 0x02000000 0x0 0x80000000 |
531 | 0x0 0x20000000 | 292 | 0x0 0x20000000 |
@@ -545,7 +306,6 @@ | |||
545 | 0x0 0x00010000>; | 306 | 0x0 0x00010000>; |
546 | isa@1e { | 307 | isa@1e { |
547 | device_type = "isa"; | 308 | device_type = "isa"; |
548 | #interrupt-cells = <2>; | ||
549 | #size-cells = <1>; | 309 | #size-cells = <1>; |
550 | #address-cells = <2>; | 310 | #address-cells = <2>; |
551 | reg = <0xf000 0 0 0 0>; | 311 | reg = <0xf000 0 0 0 0>; |
@@ -562,8 +322,7 @@ | |||
562 | #address-cells = <0>; | 322 | #address-cells = <0>; |
563 | #interrupt-cells = <2>; | 323 | #interrupt-cells = <2>; |
564 | compatible = "chrp,iic"; | 324 | compatible = "chrp,iic"; |
565 | interrupts = <9 2>; | 325 | interrupts = <9 2 0 0>; |
566 | interrupt-parent = <&mpic>; | ||
567 | }; | 326 | }; |
568 | 327 | ||
569 | i8042@60 { | 328 | i8042@60 { |
@@ -571,8 +330,7 @@ | |||
571 | #address-cells = <1>; | 330 | #address-cells = <1>; |
572 | reg = <1 0x60 1 1 0x64 1>; | 331 | reg = <1 0x60 1 1 0x64 1>; |
573 | interrupts = <1 3 12 3>; | 332 | interrupts = <1 3 12 3>; |
574 | interrupt-parent = | 333 | interrupt-parent = <&i8259>; |
575 | <&i8259>; | ||
576 | 334 | ||
577 | keyboard@0 { | 335 | keyboard@0 { |
578 | reg = <0>; | 336 | reg = <0>; |
@@ -603,16 +361,14 @@ | |||
603 | pci1: pcie@ffe09000 { | 361 | pci1: pcie@ffe09000 { |
604 | compatible = "fsl,mpc8641-pcie"; | 362 | compatible = "fsl,mpc8641-pcie"; |
605 | device_type = "pci"; | 363 | device_type = "pci"; |
606 | #interrupt-cells = <1>; | ||
607 | #size-cells = <2>; | 364 | #size-cells = <2>; |
608 | #address-cells = <3>; | 365 | #address-cells = <3>; |
609 | reg = <0xffe09000 0x1000>; | 366 | reg = <0xffe09000 0x1000>; |
610 | bus-range = <0 0xff>; | 367 | bus-range = <0 0xff>; |
611 | ranges = <0x02000000 0x0 0xa0000000 0xa0000000 0x0 0x20000000 | 368 | ranges = <0x02000000 0x0 0xa0000000 0xa0000000 0x0 0x20000000 |
612 | 0x01000000 0x0 0x00000000 0xffc10000 0x0 0x00010000>; | 369 | 0x01000000 0x0 0x00000000 0xffc10000 0x0 0x00010000>; |
613 | clock-frequency = <33333333>; | 370 | clock-frequency = <100000000>; |
614 | interrupt-parent = <&mpic>; | 371 | interrupts = <25 2 0 0>; |
615 | interrupts = <25 2>; | ||
616 | interrupt-map-mask = <0xf800 0 0 7>; | 372 | interrupt-map-mask = <0xf800 0 0 7>; |
617 | interrupt-map = < | 373 | interrupt-map = < |
618 | /* IDSEL 0x0 */ | 374 | /* IDSEL 0x0 */ |
@@ -644,8 +400,7 @@ | |||
644 | rapidio@ffec0000 { | 400 | rapidio@ffec0000 { |
645 | reg = <0xffec0000 0x11000>; | 401 | reg = <0xffec0000 0x11000>; |
646 | compatible = "fsl,srio"; | 402 | compatible = "fsl,srio"; |
647 | interrupt-parent = <&mpic>; | 403 | interrupts = <48 2 0 0>; |
648 | interrupts = <48 2>; | ||
649 | #address-cells = <2>; | 404 | #address-cells = <2>; |
650 | #size-cells = <2>; | 405 | #size-cells = <2>; |
651 | fsl,srio-rmu-handle = <&rmu>; | 406 | fsl,srio-rmu-handle = <&rmu>; |
@@ -661,3 +416,5 @@ | |||
661 | */ | 416 | */ |
662 | 417 | ||
663 | }; | 418 | }; |
419 | |||
420 | /include/ "mpc8641si-post.dtsi" | ||
diff --git a/arch/powerpc/boot/dts/mpc8641_hpcn_36b.dts b/arch/powerpc/boot/dts/fsl/mpc8641_hpcn_36b.dts index bb575e28042a..fec58671a6d6 100644 --- a/arch/powerpc/boot/dts/mpc8641_hpcn_36b.dts +++ b/arch/powerpc/boot/dts/fsl/mpc8641_hpcn_36b.dts | |||
@@ -9,7 +9,7 @@ | |||
9 | * option) any later version. | 9 | * option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | /dts-v1/; | 12 | /include/ "mpc8641si-pre.dtsi" |
13 | 13 | ||
14 | / { | 14 | / { |
15 | model = "MPC8641HPCN"; | 15 | model = "MPC8641HPCN"; |
@@ -18,56 +18,16 @@ | |||
18 | #size-cells = <2>; | 18 | #size-cells = <2>; |
19 | 19 | ||
20 | aliases { | 20 | aliases { |
21 | ethernet0 = &enet0; | ||
22 | ethernet1 = &enet1; | ||
23 | ethernet2 = &enet2; | ||
24 | ethernet3 = &enet3; | ||
25 | serial0 = &serial0; | ||
26 | serial1 = &serial1; | ||
27 | pci0 = &pci0; | ||
28 | pci1 = &pci1; | 21 | pci1 = &pci1; |
29 | }; | 22 | }; |
30 | 23 | ||
31 | cpus { | ||
32 | #address-cells = <1>; | ||
33 | #size-cells = <0>; | ||
34 | |||
35 | PowerPC,8641@0 { | ||
36 | device_type = "cpu"; | ||
37 | reg = <0>; | ||
38 | d-cache-line-size = <32>; // 32 bytes | ||
39 | i-cache-line-size = <32>; // 32 bytes | ||
40 | d-cache-size = <32768>; // L1, 32K | ||
41 | i-cache-size = <32768>; // L1, 32K | ||
42 | timebase-frequency = <0>; // 33 MHz, from uboot | ||
43 | bus-frequency = <0>; // From uboot | ||
44 | clock-frequency = <0>; // From uboot | ||
45 | }; | ||
46 | PowerPC,8641@1 { | ||
47 | device_type = "cpu"; | ||
48 | reg = <1>; | ||
49 | d-cache-line-size = <32>; // 32 bytes | ||
50 | i-cache-line-size = <32>; // 32 bytes | ||
51 | d-cache-size = <32768>; // L1, 32K | ||
52 | i-cache-size = <32768>; // L1, 32K | ||
53 | timebase-frequency = <0>; // 33 MHz, from uboot | ||
54 | bus-frequency = <0>; // From uboot | ||
55 | clock-frequency = <0>; // From uboot | ||
56 | }; | ||
57 | }; | ||
58 | |||
59 | memory { | 24 | memory { |
60 | device_type = "memory"; | 25 | device_type = "memory"; |
61 | reg = <0x0 0x00000000 0x0 0x40000000>; // 1G at 0x0 | 26 | reg = <0x0 0x00000000 0x0 0x40000000>; // 1G at 0x0 |
62 | }; | 27 | }; |
63 | 28 | ||
64 | localbus@fffe05000 { | 29 | lbc: localbus@fffe05000 { |
65 | #address-cells = <2>; | ||
66 | #size-cells = <1>; | ||
67 | compatible = "fsl,mpc8641-localbus", "simple-bus"; | ||
68 | reg = <0x0f 0xffe05000 0x0 0x1000>; | 30 | reg = <0x0f 0xffe05000 0x0 0x1000>; |
69 | interrupts = <19 2>; | ||
70 | interrupt-parent = <&mpic>; | ||
71 | 31 | ||
72 | ranges = <0 0 0xf 0xef800000 0x00800000 | 32 | ranges = <0 0 0xf 0xef800000 0x00800000 |
73 | 2 0 0xf 0xffdf8000 0x00008000 | 33 | 2 0 0xf 0xffdf8000 0x00008000 |
@@ -101,276 +61,82 @@ | |||
101 | }; | 61 | }; |
102 | }; | 62 | }; |
103 | 63 | ||
104 | soc8641@fffe00000 { | 64 | soc: soc8641@fffe00000 { |
105 | #address-cells = <1>; | ||
106 | #size-cells = <1>; | ||
107 | device_type = "soc"; | ||
108 | compatible = "simple-bus"; | ||
109 | ranges = <0x00000000 0x0f 0xffe00000 0x00100000>; | 65 | ranges = <0x00000000 0x0f 0xffe00000 0x00100000>; |
110 | bus-frequency = <0>; | ||
111 | 66 | ||
112 | mcm-law@0 { | 67 | enet0: ethernet@24000 { |
113 | compatible = "fsl,mcm-law"; | 68 | tbi-handle = <&tbi0>; |
114 | reg = <0x0 0x1000>; | 69 | phy-handle = <&phy0>; |
115 | fsl,num-laws = <10>; | 70 | phy-connection-type = "rgmii-id"; |
116 | }; | ||
117 | |||
118 | mcm@1000 { | ||
119 | compatible = "fsl,mpc8641-mcm", "fsl,mcm"; | ||
120 | reg = <0x1000 0x1000>; | ||
121 | interrupts = <17 2>; | ||
122 | interrupt-parent = <&mpic>; | ||
123 | }; | ||
124 | |||
125 | i2c@3000 { | ||
126 | #address-cells = <1>; | ||
127 | #size-cells = <0>; | ||
128 | cell-index = <0>; | ||
129 | compatible = "fsl-i2c"; | ||
130 | reg = <0x3000 0x100>; | ||
131 | interrupts = <43 2>; | ||
132 | interrupt-parent = <&mpic>; | ||
133 | dfsrr; | ||
134 | }; | ||
135 | |||
136 | i2c@3100 { | ||
137 | #address-cells = <1>; | ||
138 | #size-cells = <0>; | ||
139 | cell-index = <1>; | ||
140 | compatible = "fsl-i2c"; | ||
141 | reg = <0x3100 0x100>; | ||
142 | interrupts = <43 2>; | ||
143 | interrupt-parent = <&mpic>; | ||
144 | dfsrr; | ||
145 | }; | 71 | }; |
146 | 72 | ||
147 | dma@21300 { | 73 | mdio@24520 { |
148 | #address-cells = <1>; | 74 | phy0: ethernet-phy@0 { |
149 | #size-cells = <1>; | 75 | interrupts = <10 1 0 0>; |
150 | compatible = "fsl,mpc8641-dma", "fsl,eloplus-dma"; | 76 | reg = <0>; |
151 | reg = <0x21300 0x4>; | ||
152 | ranges = <0x0 0x21100 0x200>; | ||
153 | cell-index = <0>; | ||
154 | dma-channel@0 { | ||
155 | compatible = "fsl,mpc8641-dma-channel", | ||
156 | "fsl,eloplus-dma-channel"; | ||
157 | reg = <0x0 0x80>; | ||
158 | cell-index = <0>; | ||
159 | interrupt-parent = <&mpic>; | ||
160 | interrupts = <20 2>; | ||
161 | }; | 77 | }; |
162 | dma-channel@80 { | 78 | phy1: ethernet-phy@1 { |
163 | compatible = "fsl,mpc8641-dma-channel", | 79 | interrupts = <10 1 0 0>; |
164 | "fsl,eloplus-dma-channel"; | 80 | reg = <1>; |
165 | reg = <0x80 0x80>; | ||
166 | cell-index = <1>; | ||
167 | interrupt-parent = <&mpic>; | ||
168 | interrupts = <21 2>; | ||
169 | }; | 81 | }; |
170 | dma-channel@100 { | 82 | phy2: ethernet-phy@2 { |
171 | compatible = "fsl,mpc8641-dma-channel", | 83 | interrupts = <10 1 0 0>; |
172 | "fsl,eloplus-dma-channel"; | 84 | reg = <2>; |
173 | reg = <0x100 0x80>; | ||
174 | cell-index = <2>; | ||
175 | interrupt-parent = <&mpic>; | ||
176 | interrupts = <22 2>; | ||
177 | }; | 85 | }; |
178 | dma-channel@180 { | 86 | phy3: ethernet-phy@3 { |
179 | compatible = "fsl,mpc8641-dma-channel", | 87 | interrupts = <10 1 0 0>; |
180 | "fsl,eloplus-dma-channel"; | 88 | reg = <3>; |
181 | reg = <0x180 0x80>; | ||
182 | cell-index = <3>; | ||
183 | interrupt-parent = <&mpic>; | ||
184 | interrupts = <23 2>; | ||
185 | }; | 89 | }; |
186 | }; | 90 | tbi0: tbi-phy@11 { |
187 | 91 | reg = <0x11>; | |
188 | enet0: ethernet@24000 { | 92 | device_type = "tbi-phy"; |
189 | #address-cells = <1>; | ||
190 | #size-cells = <1>; | ||
191 | cell-index = <0>; | ||
192 | device_type = "network"; | ||
193 | model = "TSEC"; | ||
194 | compatible = "gianfar"; | ||
195 | reg = <0x24000 0x1000>; | ||
196 | ranges = <0x0 0x24000 0x1000>; | ||
197 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
198 | interrupts = <29 2 30 2 34 2>; | ||
199 | interrupt-parent = <&mpic>; | ||
200 | tbi-handle = <&tbi0>; | ||
201 | phy-handle = <&phy0>; | ||
202 | phy-connection-type = "rgmii-id"; | ||
203 | |||
204 | mdio@520 { | ||
205 | #address-cells = <1>; | ||
206 | #size-cells = <0>; | ||
207 | compatible = "fsl,gianfar-mdio"; | ||
208 | reg = <0x520 0x20>; | ||
209 | |||
210 | phy0: ethernet-phy@0 { | ||
211 | interrupt-parent = <&mpic>; | ||
212 | interrupts = <10 1>; | ||
213 | reg = <0>; | ||
214 | }; | ||
215 | phy1: ethernet-phy@1 { | ||
216 | interrupt-parent = <&mpic>; | ||
217 | interrupts = <10 1>; | ||
218 | reg = <1>; | ||
219 | }; | ||
220 | phy2: ethernet-phy@2 { | ||
221 | interrupt-parent = <&mpic>; | ||
222 | interrupts = <10 1>; | ||
223 | reg = <2>; | ||
224 | }; | ||
225 | phy3: ethernet-phy@3 { | ||
226 | interrupt-parent = <&mpic>; | ||
227 | interrupts = <10 1>; | ||
228 | reg = <3>; | ||
229 | }; | ||
230 | tbi0: tbi-phy@11 { | ||
231 | reg = <0x11>; | ||
232 | device_type = "tbi-phy"; | ||
233 | }; | ||
234 | }; | 93 | }; |
235 | }; | 94 | }; |
236 | 95 | ||
237 | enet1: ethernet@25000 { | 96 | enet1: ethernet@25000 { |
238 | #address-cells = <1>; | ||
239 | #size-cells = <1>; | ||
240 | cell-index = <1>; | ||
241 | device_type = "network"; | ||
242 | model = "TSEC"; | ||
243 | compatible = "gianfar"; | ||
244 | reg = <0x25000 0x1000>; | ||
245 | ranges = <0x0 0x25000 0x1000>; | ||
246 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
247 | interrupts = <35 2 36 2 40 2>; | ||
248 | interrupt-parent = <&mpic>; | ||
249 | tbi-handle = <&tbi1>; | 97 | tbi-handle = <&tbi1>; |
250 | phy-handle = <&phy1>; | 98 | phy-handle = <&phy1>; |
251 | phy-connection-type = "rgmii-id"; | 99 | phy-connection-type = "rgmii-id"; |
100 | }; | ||
252 | 101 | ||
253 | mdio@520 { | 102 | mdio@25520 { |
254 | #address-cells = <1>; | 103 | tbi1: tbi-phy@11 { |
255 | #size-cells = <0>; | 104 | reg = <0x11>; |
256 | compatible = "fsl,gianfar-tbi"; | 105 | device_type = "tbi-phy"; |
257 | reg = <0x520 0x20>; | ||
258 | |||
259 | tbi1: tbi-phy@11 { | ||
260 | reg = <0x11>; | ||
261 | device_type = "tbi-phy"; | ||
262 | }; | ||
263 | }; | 106 | }; |
264 | }; | 107 | }; |
265 | 108 | ||
266 | enet2: ethernet@26000 { | 109 | enet2: ethernet@26000 { |
267 | #address-cells = <1>; | ||
268 | #size-cells = <1>; | ||
269 | cell-index = <2>; | ||
270 | device_type = "network"; | ||
271 | model = "TSEC"; | ||
272 | compatible = "gianfar"; | ||
273 | reg = <0x26000 0x1000>; | ||
274 | ranges = <0x0 0x26000 0x1000>; | ||
275 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
276 | interrupts = <31 2 32 2 33 2>; | ||
277 | interrupt-parent = <&mpic>; | ||
278 | tbi-handle = <&tbi2>; | 110 | tbi-handle = <&tbi2>; |
279 | phy-handle = <&phy2>; | 111 | phy-handle = <&phy2>; |
280 | phy-connection-type = "rgmii-id"; | 112 | phy-connection-type = "rgmii-id"; |
113 | }; | ||
281 | 114 | ||
282 | mdio@520 { | 115 | mdio@26520 { |
283 | #address-cells = <1>; | 116 | tbi2: tbi-phy@11 { |
284 | #size-cells = <0>; | 117 | reg = <0x11>; |
285 | compatible = "fsl,gianfar-tbi"; | 118 | device_type = "tbi-phy"; |
286 | reg = <0x520 0x20>; | ||
287 | |||
288 | tbi2: tbi-phy@11 { | ||
289 | reg = <0x11>; | ||
290 | device_type = "tbi-phy"; | ||
291 | }; | ||
292 | }; | 119 | }; |
293 | }; | 120 | }; |
294 | 121 | ||
295 | enet3: ethernet@27000 { | 122 | enet3: ethernet@27000 { |
296 | #address-cells = <1>; | ||
297 | #size-cells = <1>; | ||
298 | cell-index = <3>; | ||
299 | device_type = "network"; | ||
300 | model = "TSEC"; | ||
301 | compatible = "gianfar"; | ||
302 | reg = <0x27000 0x1000>; | ||
303 | ranges = <0x0 0x27000 0x1000>; | ||
304 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
305 | interrupts = <37 2 38 2 39 2>; | ||
306 | interrupt-parent = <&mpic>; | ||
307 | tbi-handle = <&tbi3>; | 123 | tbi-handle = <&tbi3>; |
308 | phy-handle = <&phy3>; | 124 | phy-handle = <&phy3>; |
309 | phy-connection-type = "rgmii-id"; | 125 | phy-connection-type = "rgmii-id"; |
310 | |||
311 | mdio@520 { | ||
312 | #address-cells = <1>; | ||
313 | #size-cells = <0>; | ||
314 | compatible = "fsl,gianfar-tbi"; | ||
315 | reg = <0x520 0x20>; | ||
316 | |||
317 | tbi3: tbi-phy@11 { | ||
318 | reg = <0x11>; | ||
319 | device_type = "tbi-phy"; | ||
320 | }; | ||
321 | }; | ||
322 | }; | 126 | }; |
323 | 127 | ||
324 | serial0: serial@4500 { | 128 | mdio@27520 { |
325 | cell-index = <0>; | 129 | tbi3: tbi-phy@11 { |
326 | device_type = "serial"; | 130 | reg = <0x11>; |
327 | compatible = "fsl,ns16550", "ns16550"; | 131 | device_type = "tbi-phy"; |
328 | reg = <0x4500 0x100>; | 132 | }; |
329 | clock-frequency = <0>; | ||
330 | interrupts = <42 2>; | ||
331 | interrupt-parent = <&mpic>; | ||
332 | }; | ||
333 | |||
334 | serial1: serial@4600 { | ||
335 | cell-index = <1>; | ||
336 | device_type = "serial"; | ||
337 | compatible = "fsl,ns16550", "ns16550"; | ||
338 | reg = <0x4600 0x100>; | ||
339 | clock-frequency = <0>; | ||
340 | interrupts = <28 2>; | ||
341 | interrupt-parent = <&mpic>; | ||
342 | }; | ||
343 | |||
344 | mpic: pic@40000 { | ||
345 | interrupt-controller; | ||
346 | #address-cells = <0>; | ||
347 | #interrupt-cells = <2>; | ||
348 | reg = <0x40000 0x40000>; | ||
349 | compatible = "chrp,open-pic"; | ||
350 | device_type = "open-pic"; | ||
351 | }; | ||
352 | |||
353 | global-utilities@e0000 { | ||
354 | compatible = "fsl,mpc8641-guts"; | ||
355 | reg = <0xe0000 0x1000>; | ||
356 | fsl,has-rstcr; | ||
357 | }; | 133 | }; |
358 | }; | 134 | }; |
359 | 135 | ||
360 | pci0: pcie@fffe08000 { | 136 | pci0: pcie@fffe08000 { |
361 | cell-index = <0>; | ||
362 | compatible = "fsl,mpc8641-pcie"; | ||
363 | device_type = "pci"; | ||
364 | #interrupt-cells = <1>; | ||
365 | #size-cells = <2>; | ||
366 | #address-cells = <3>; | ||
367 | reg = <0x0f 0xffe08000 0x0 0x1000>; | 137 | reg = <0x0f 0xffe08000 0x0 0x1000>; |
368 | bus-range = <0x0 0xff>; | ||
369 | ranges = <0x02000000 0x0 0xe0000000 0x0c 0x00000000 0x0 0x20000000 | 138 | ranges = <0x02000000 0x0 0xe0000000 0x0c 0x00000000 0x0 0x20000000 |
370 | 0x01000000 0x0 0x00000000 0x0f 0xffc00000 0x0 0x00010000>; | 139 | 0x01000000 0x0 0x00000000 0x0f 0xffc00000 0x0 0x00010000>; |
371 | clock-frequency = <33333333>; | ||
372 | interrupt-parent = <&mpic>; | ||
373 | interrupts = <24 2>; | ||
374 | interrupt-map-mask = <0xff00 0 0 7>; | 140 | interrupt-map-mask = <0xff00 0 0 7>; |
375 | interrupt-map = < | 141 | interrupt-map = < |
376 | /* IDSEL 0x11 func 0 - PCI slot 1 */ | 142 | /* IDSEL 0x11 func 0 - PCI slot 1 */ |
@@ -488,10 +254,6 @@ | |||
488 | >; | 254 | >; |
489 | 255 | ||
490 | pcie@0 { | 256 | pcie@0 { |
491 | reg = <0 0 0 0 0>; | ||
492 | #size-cells = <2>; | ||
493 | #address-cells = <3>; | ||
494 | device_type = "pci"; | ||
495 | ranges = <0x02000000 0x0 0xe0000000 | 257 | ranges = <0x02000000 0x0 0xe0000000 |
496 | 0x02000000 0x0 0xe0000000 | 258 | 0x02000000 0x0 0xe0000000 |
497 | 0x0 0x20000000 | 259 | 0x0 0x20000000 |
@@ -511,7 +273,6 @@ | |||
511 | 0x0 0x00010000>; | 273 | 0x0 0x00010000>; |
512 | isa@1e { | 274 | isa@1e { |
513 | device_type = "isa"; | 275 | device_type = "isa"; |
514 | #interrupt-cells = <2>; | ||
515 | #size-cells = <1>; | 276 | #size-cells = <1>; |
516 | #address-cells = <2>; | 277 | #address-cells = <2>; |
517 | reg = <0xf000 0 0 0 0>; | 278 | reg = <0xf000 0 0 0 0>; |
@@ -528,8 +289,7 @@ | |||
528 | #address-cells = <0>; | 289 | #address-cells = <0>; |
529 | #interrupt-cells = <2>; | 290 | #interrupt-cells = <2>; |
530 | compatible = "chrp,iic"; | 291 | compatible = "chrp,iic"; |
531 | interrupts = <9 2>; | 292 | interrupts = <9 2 0 0>; |
532 | interrupt-parent = <&mpic>; | ||
533 | }; | 293 | }; |
534 | 294 | ||
535 | i8042@60 { | 295 | i8042@60 { |
@@ -537,8 +297,7 @@ | |||
537 | #address-cells = <1>; | 297 | #address-cells = <1>; |
538 | reg = <1 0x60 1 1 0x64 1>; | 298 | reg = <1 0x60 1 1 0x64 1>; |
539 | interrupts = <1 3 12 3>; | 299 | interrupts = <1 3 12 3>; |
540 | interrupt-parent = | 300 | interrupt-parent = <&i8259>; |
541 | <&i8259>; | ||
542 | 301 | ||
543 | keyboard@0 { | 302 | keyboard@0 { |
544 | reg = <0>; | 303 | reg = <0>; |
@@ -567,19 +326,16 @@ | |||
567 | }; | 326 | }; |
568 | 327 | ||
569 | pci1: pcie@fffe09000 { | 328 | pci1: pcie@fffe09000 { |
570 | cell-index = <1>; | ||
571 | compatible = "fsl,mpc8641-pcie"; | 329 | compatible = "fsl,mpc8641-pcie"; |
572 | device_type = "pci"; | 330 | device_type = "pci"; |
573 | #interrupt-cells = <1>; | ||
574 | #size-cells = <2>; | 331 | #size-cells = <2>; |
575 | #address-cells = <3>; | 332 | #address-cells = <3>; |
576 | reg = <0x0f 0xffe09000 0x0 0x1000>; | 333 | reg = <0x0f 0xffe09000 0x0 0x1000>; |
577 | bus-range = <0x0 0xff>; | 334 | bus-range = <0x0 0xff>; |
578 | ranges = <0x02000000 0x0 0xe0000000 0x0c 0x20000000 0x0 0x20000000 | 335 | ranges = <0x02000000 0x0 0xe0000000 0x0c 0x20000000 0x0 0x20000000 |
579 | 0x01000000 0x0 0x00000000 0x0f 0xffc10000 0x0 0x00010000>; | 336 | 0x01000000 0x0 0x00000000 0x0f 0xffc10000 0x0 0x00010000>; |
580 | clock-frequency = <33333333>; | 337 | clock-frequency = <100000000>; |
581 | interrupt-parent = <&mpic>; | 338 | interrupts = <25 2 0 0>; |
582 | interrupts = <25 2>; | ||
583 | interrupt-map-mask = <0xf800 0 0 7>; | 339 | interrupt-map-mask = <0xf800 0 0 7>; |
584 | interrupt-map = < | 340 | interrupt-map = < |
585 | /* IDSEL 0x0 */ | 341 | /* IDSEL 0x0 */ |
@@ -603,3 +359,5 @@ | |||
603 | }; | 359 | }; |
604 | }; | 360 | }; |
605 | }; | 361 | }; |
362 | |||
363 | /include/ "mpc8641si-post.dtsi" | ||
diff --git a/arch/powerpc/boot/dts/fsl/mpc8641si-post.dtsi b/arch/powerpc/boot/dts/fsl/mpc8641si-post.dtsi new file mode 100644 index 000000000000..70889d8e8850 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/mpc8641si-post.dtsi | |||
@@ -0,0 +1,120 @@ | |||
1 | /* | ||
2 | * MPC8641 Silicon/SoC Device Tree Source (post include) | ||
3 | * | ||
4 | * Copyright 2016 Elettra-Sincrotrone Trieste S.C.p.A. | ||
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 | */ | ||
12 | |||
13 | &lbc { | ||
14 | #address-cells = <2>; | ||
15 | #size-cells = <1>; | ||
16 | compatible = "fsl,mpc8641-localbus", "simple-bus"; | ||
17 | interrupts = <19 2 0 0>; | ||
18 | }; | ||
19 | |||
20 | &soc { | ||
21 | #address-cells = <1>; | ||
22 | #size-cells = <1>; | ||
23 | device_type = "soc"; | ||
24 | compatible = "fsl,mpc8641-soc", "simple-bus"; | ||
25 | bus-frequency = <0>; | ||
26 | |||
27 | mcm-law@0 { | ||
28 | compatible = "fsl,mcm-law"; | ||
29 | reg = <0x0 0x1000>; | ||
30 | fsl,num-laws = <10>; | ||
31 | }; | ||
32 | |||
33 | mcm@1000 { | ||
34 | compatible = "fsl,mpc8641-mcm", "fsl,mcm"; | ||
35 | reg = <0x1000 0x1000>; | ||
36 | interrupts = <17 2 0 0>; | ||
37 | }; | ||
38 | |||
39 | /include/ "pq3-i2c-0.dtsi" | ||
40 | /include/ "pq3-i2c-1.dtsi" | ||
41 | /include/ "pq3-duart-0.dtsi" | ||
42 | serial@4600 { | ||
43 | interrupts = <28 2 0 0>; | ||
44 | }; | ||
45 | /include/ "pq3-dma-0.dtsi" | ||
46 | dma@21300 { | ||
47 | compatible = "fsl,mpc8641-dma", "fsl,eloplus-dma"; | ||
48 | }; | ||
49 | dma-channel@0 { | ||
50 | compatible = "fsl,mpc8641-dma-channel", "fsl,eloplus-dma-channel"; | ||
51 | }; | ||
52 | dma-channel@80 { | ||
53 | compatible = "fsl,mpc8641-dma-channel", "fsl,eloplus-dma-channel"; | ||
54 | }; | ||
55 | dma-channel@100 { | ||
56 | compatible = "fsl,mpc8641-dma-channel", "fsl,eloplus-dma-channel"; | ||
57 | }; | ||
58 | dma-channel@180 { | ||
59 | compatible = "fsl,mpc8641-dma-channel", "fsl,eloplus-dma-channel"; | ||
60 | }; | ||
61 | |||
62 | /include/ "pq3-etsec1-0.dtsi" | ||
63 | ethernet@24000 { | ||
64 | model = "TSEC"; | ||
65 | }; | ||
66 | /include/ "pq3-etsec1-1.dtsi" | ||
67 | ethernet@25000 { | ||
68 | model = "TSEC"; | ||
69 | }; | ||
70 | /include/ "pq3-etsec1-2.dtsi" | ||
71 | ethernet@26000 { | ||
72 | model = "TSEC"; | ||
73 | }; | ||
74 | /include/ "pq3-etsec1-3.dtsi" | ||
75 | ethernet@27000 { | ||
76 | model = "TSEC"; | ||
77 | }; | ||
78 | |||
79 | /include/ "qoriq-mpic.dtsi" | ||
80 | msi@41600 { | ||
81 | compatible = "fsl,mpc8641-msi", "fsl,mpic-msi"; | ||
82 | }; | ||
83 | msi@41800 { | ||
84 | compatible = "fsl,mpc8641-msi", "fsl,mpic-msi"; | ||
85 | }; | ||
86 | msi@41a00 { | ||
87 | compatible = "fsl,mpc8641-msi", "fsl,mpic-msi"; | ||
88 | }; | ||
89 | |||
90 | global-utilities@e0000 { | ||
91 | compatible = "fsl,mpc8641-guts"; | ||
92 | reg = <0xe0000 0x1000>; | ||
93 | fsl,has-rstcr; | ||
94 | }; | ||
95 | }; | ||
96 | |||
97 | &pci0 { | ||
98 | compatible = "fsl,mpc8641-pcie"; | ||
99 | device_type = "pci"; | ||
100 | #size-cells = <2>; | ||
101 | #address-cells = <3>; | ||
102 | bus-range = <0x0 0xff>; | ||
103 | clock-frequency = <100000000>; | ||
104 | interrupts = <24 2 0 0>; | ||
105 | interrupt-map-mask = <0xf800 0x0 0x0 0x7>; | ||
106 | |||
107 | interrupt-map = < | ||
108 | 0x0000 0x0 0x0 0x1 &mpic 0x0 0x1 | ||
109 | 0x0000 0x0 0x0 0x2 &mpic 0x1 0x1 | ||
110 | 0x0000 0x0 0x0 0x3 &mpic 0x2 0x1 | ||
111 | 0x0000 0x0 0x0 0x4 &mpic 0x3 0x1 | ||
112 | >; | ||
113 | |||
114 | pcie@0 { | ||
115 | reg = <0 0 0 0 0>; | ||
116 | #size-cells = <2>; | ||
117 | #address-cells = <3>; | ||
118 | device_type = "pci"; | ||
119 | }; | ||
120 | }; | ||
diff --git a/arch/powerpc/boot/dts/fsl/mpc8641si-pre.dtsi b/arch/powerpc/boot/dts/fsl/mpc8641si-pre.dtsi new file mode 100644 index 000000000000..9e03328561d3 --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/mpc8641si-pre.dtsi | |||
@@ -0,0 +1,58 @@ | |||
1 | /* | ||
2 | * MPC8641 Silicon/SoC Device Tree Source (pre include) | ||
3 | * | ||
4 | * Copyright 2016 Elettra-Sincrotrone Trieste S.C.p.A. | ||
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 | */ | ||
12 | |||
13 | /dts-v1/; | ||
14 | |||
15 | / { | ||
16 | #address-cells = <1>; | ||
17 | #size-cells = <1>; | ||
18 | interrupt-parent = <&mpic>; | ||
19 | |||
20 | aliases { | ||
21 | ethernet0 = &enet0; | ||
22 | ethernet1 = &enet1; | ||
23 | ethernet2 = &enet2; | ||
24 | ethernet3 = &enet3; | ||
25 | serial0 = &serial0; | ||
26 | serial1 = &serial1; | ||
27 | pci0 = &pci0; | ||
28 | }; | ||
29 | |||
30 | cpus { | ||
31 | #address-cells = <1>; | ||
32 | #size-cells = <0>; | ||
33 | |||
34 | PowerPC,8641@0 { | ||
35 | device_type = "cpu"; | ||
36 | reg = <0>; | ||
37 | d-cache-line-size = <32>; | ||
38 | i-cache-line-size = <32>; | ||
39 | d-cache-size = <32768>; | ||
40 | i-cache-size = <32768>; | ||
41 | timebase-frequency = <0>; | ||
42 | bus-frequency = <0>; | ||
43 | clock-frequency = <0>; | ||
44 | }; | ||
45 | |||
46 | PowerPC,8641@1 { | ||
47 | device_type = "cpu"; | ||
48 | reg = <1>; | ||
49 | d-cache-line-size = <32>; | ||
50 | i-cache-line-size = <32>; | ||
51 | d-cache-size = <32768>; | ||
52 | i-cache-size = <32768>; | ||
53 | timebase-frequency = <0>; | ||
54 | bus-frequency = <0>; | ||
55 | clock-frequency = <0>; | ||
56 | }; | ||
57 | }; | ||
58 | }; | ||
diff --git a/arch/powerpc/boot/dts/fsl/mvme2500.dts b/arch/powerpc/boot/dts/fsl/mvme2500.dts index c7bc1a0c7194..69559e970e99 100644 --- a/arch/powerpc/boot/dts/fsl/mvme2500.dts +++ b/arch/powerpc/boot/dts/fsl/mvme2500.dts | |||
@@ -70,12 +70,12 @@ | |||
70 | fsl,espi-num-chipselects = <2>; | 70 | fsl,espi-num-chipselects = <2>; |
71 | 71 | ||
72 | flash@0 { | 72 | flash@0 { |
73 | compatible = "atmel,at25df641"; | 73 | compatible = "atmel,at25df641", "jedec,spi-nor"; |
74 | reg = <0>; | 74 | reg = <0>; |
75 | spi-max-frequency = <10000000>; | 75 | spi-max-frequency = <10000000>; |
76 | }; | 76 | }; |
77 | flash@1 { | 77 | flash@1 { |
78 | compatible = "atmel,at25df641"; | 78 | compatible = "atmel,at25df641", "jedec,spi-nor"; |
79 | reg = <1>; | 79 | reg = <1>; |
80 | spi-max-frequency = <10000000>; | 80 | spi-max-frequency = <10000000>; |
81 | }; | 81 | }; |
diff --git a/arch/powerpc/boot/dts/fsl/p1010rdb.dtsi b/arch/powerpc/boot/dts/fsl/p1010rdb.dtsi index 14b629505038..a8e4ba070104 100644 --- a/arch/powerpc/boot/dts/fsl/p1010rdb.dtsi +++ b/arch/powerpc/boot/dts/fsl/p1010rdb.dtsi | |||
@@ -110,7 +110,7 @@ | |||
110 | flash@0 { | 110 | flash@0 { |
111 | #address-cells = <1>; | 111 | #address-cells = <1>; |
112 | #size-cells = <1>; | 112 | #size-cells = <1>; |
113 | compatible = "spansion,s25sl12801"; | 113 | compatible = "spansion,s25sl12801", "jedec,spi-nor"; |
114 | reg = <0>; | 114 | reg = <0>; |
115 | spi-max-frequency = <40000000>; | 115 | spi-max-frequency = <40000000>; |
116 | 116 | ||
diff --git a/arch/powerpc/boot/dts/fsl/p1020rdb-pc.dtsi b/arch/powerpc/boot/dts/fsl/p1020rdb-pc.dtsi index c952cd37cf6d..25f81eea60e0 100644 --- a/arch/powerpc/boot/dts/fsl/p1020rdb-pc.dtsi +++ b/arch/powerpc/boot/dts/fsl/p1020rdb-pc.dtsi | |||
@@ -151,7 +151,7 @@ | |||
151 | flash@0 { | 151 | flash@0 { |
152 | #address-cells = <1>; | 152 | #address-cells = <1>; |
153 | #size-cells = <1>; | 153 | #size-cells = <1>; |
154 | compatible = "spansion,s25sl12801"; | 154 | compatible = "spansion,s25sl12801", "jedec,spi-nor"; |
155 | reg = <0>; | 155 | reg = <0>; |
156 | spi-max-frequency = <40000000>; /* input clock */ | 156 | spi-max-frequency = <40000000>; /* input clock */ |
157 | 157 | ||
diff --git a/arch/powerpc/boot/dts/fsl/p1020rdb-pd.dts b/arch/powerpc/boot/dts/fsl/p1020rdb-pd.dts index 740553c090a3..f2dc6c09be52 100644 --- a/arch/powerpc/boot/dts/fsl/p1020rdb-pd.dts +++ b/arch/powerpc/boot/dts/fsl/p1020rdb-pd.dts | |||
@@ -155,7 +155,7 @@ | |||
155 | flash@0 { | 155 | flash@0 { |
156 | #address-cells = <1>; | 156 | #address-cells = <1>; |
157 | #size-cells = <1>; | 157 | #size-cells = <1>; |
158 | compatible = "spansion,s25sl12801"; | 158 | compatible = "spansion,s25sl12801", "jedec,spi-nor"; |
159 | reg = <0>; | 159 | reg = <0>; |
160 | /* input clock */ | 160 | /* input clock */ |
161 | spi-max-frequency = <40000000>; | 161 | spi-max-frequency = <40000000>; |
diff --git a/arch/powerpc/boot/dts/fsl/p1020rdb.dtsi b/arch/powerpc/boot/dts/fsl/p1020rdb.dtsi index 1fb7e0e0940f..703142ee6627 100644 --- a/arch/powerpc/boot/dts/fsl/p1020rdb.dtsi +++ b/arch/powerpc/boot/dts/fsl/p1020rdb.dtsi | |||
@@ -148,7 +148,7 @@ | |||
148 | flash@0 { | 148 | flash@0 { |
149 | #address-cells = <1>; | 149 | #address-cells = <1>; |
150 | #size-cells = <1>; | 150 | #size-cells = <1>; |
151 | compatible = "spansion,s25sl12801"; | 151 | compatible = "spansion,s25sl12801", "jedec,spi-nor"; |
152 | reg = <0>; | 152 | reg = <0>; |
153 | spi-max-frequency = <40000000>; /* input clock */ | 153 | spi-max-frequency = <40000000>; /* input clock */ |
154 | 154 | ||
diff --git a/arch/powerpc/boot/dts/fsl/p1021mds.dts b/arch/powerpc/boot/dts/fsl/p1021mds.dts index 27fdfd7dc7c7..291454c75dda 100644 --- a/arch/powerpc/boot/dts/fsl/p1021mds.dts +++ b/arch/powerpc/boot/dts/fsl/p1021mds.dts | |||
@@ -123,7 +123,7 @@ | |||
123 | flash@0 { | 123 | flash@0 { |
124 | #address-cells = <1>; | 124 | #address-cells = <1>; |
125 | #size-cells = <1>; | 125 | #size-cells = <1>; |
126 | compatible = "spansion,s25sl12801"; | 126 | compatible = "spansion,s25sl12801", "jedec,spi-nor"; |
127 | reg = <0>; | 127 | reg = <0>; |
128 | spi-max-frequency = <40000000>; /* input clock */ | 128 | spi-max-frequency = <40000000>; /* input clock */ |
129 | 129 | ||
diff --git a/arch/powerpc/boot/dts/fsl/p1021rdb-pc.dtsi b/arch/powerpc/boot/dts/fsl/p1021rdb-pc.dtsi index e8a0f95fb24a..18f9b31602d0 100644 --- a/arch/powerpc/boot/dts/fsl/p1021rdb-pc.dtsi +++ b/arch/powerpc/boot/dts/fsl/p1021rdb-pc.dtsi | |||
@@ -150,7 +150,7 @@ | |||
150 | flash@0 { | 150 | flash@0 { |
151 | #address-cells = <1>; | 151 | #address-cells = <1>; |
152 | #size-cells = <1>; | 152 | #size-cells = <1>; |
153 | compatible = "spansion,s25sl12801"; | 153 | compatible = "spansion,s25sl12801", "jedec,spi-nor"; |
154 | reg = <0>; | 154 | reg = <0>; |
155 | spi-max-frequency = <40000000>; /* input clock */ | 155 | spi-max-frequency = <40000000>; /* input clock */ |
156 | 156 | ||
diff --git a/arch/powerpc/boot/dts/fsl/p1022ds.dtsi b/arch/powerpc/boot/dts/fsl/p1022ds.dtsi index 149da0f123ee..ddefbf64f7f8 100644 --- a/arch/powerpc/boot/dts/fsl/p1022ds.dtsi +++ b/arch/powerpc/boot/dts/fsl/p1022ds.dtsi | |||
@@ -160,7 +160,7 @@ | |||
160 | flash@0 { | 160 | flash@0 { |
161 | #address-cells = <1>; | 161 | #address-cells = <1>; |
162 | #size-cells = <1>; | 162 | #size-cells = <1>; |
163 | compatible = "spansion,s25sl12801"; | 163 | compatible = "spansion,s25sl12801", "jedec,spi-nor"; |
164 | reg = <0>; | 164 | reg = <0>; |
165 | spi-max-frequency = <40000000>; /* input clock */ | 165 | spi-max-frequency = <40000000>; /* input clock */ |
166 | 166 | ||
diff --git a/arch/powerpc/boot/dts/fsl/p1022rdk.dts b/arch/powerpc/boot/dts/fsl/p1022rdk.dts index 04c16337268a..d505d7c51903 100644 --- a/arch/powerpc/boot/dts/fsl/p1022rdk.dts +++ b/arch/powerpc/boot/dts/fsl/p1022rdk.dts | |||
@@ -86,7 +86,7 @@ | |||
86 | flash@0 { | 86 | flash@0 { |
87 | #address-cells = <1>; | 87 | #address-cells = <1>; |
88 | #size-cells = <1>; | 88 | #size-cells = <1>; |
89 | compatible = "spansion,m25p80"; | 89 | compatible = "spansion,m25p80", "jedec,spi-nor"; |
90 | reg = <0>; | 90 | reg = <0>; |
91 | spi-max-frequency = <1000000>; | 91 | spi-max-frequency = <1000000>; |
92 | partition@0 { | 92 | partition@0 { |
diff --git a/arch/powerpc/boot/dts/fsl/p1024rdb.dtsi b/arch/powerpc/boot/dts/fsl/p1024rdb.dtsi index b05dcb40f800..b4d05867f707 100644 --- a/arch/powerpc/boot/dts/fsl/p1024rdb.dtsi +++ b/arch/powerpc/boot/dts/fsl/p1024rdb.dtsi | |||
@@ -129,7 +129,7 @@ | |||
129 | flash@0 { | 129 | flash@0 { |
130 | #address-cells = <1>; | 130 | #address-cells = <1>; |
131 | #size-cells = <1>; | 131 | #size-cells = <1>; |
132 | compatible = "spansion,m25p80"; | 132 | compatible = "spansion,m25p80", "jedec,spi-nor"; |
133 | reg = <0>; | 133 | reg = <0>; |
134 | spi-max-frequency = <40000000>; | 134 | spi-max-frequency = <40000000>; |
135 | 135 | ||
diff --git a/arch/powerpc/boot/dts/fsl/p1025rdb.dtsi b/arch/powerpc/boot/dts/fsl/p1025rdb.dtsi index f50256482297..d44bb12debb0 100644 --- a/arch/powerpc/boot/dts/fsl/p1025rdb.dtsi +++ b/arch/powerpc/boot/dts/fsl/p1025rdb.dtsi | |||
@@ -137,7 +137,7 @@ | |||
137 | flash@0 { | 137 | flash@0 { |
138 | #address-cells = <1>; | 138 | #address-cells = <1>; |
139 | #size-cells = <1>; | 139 | #size-cells = <1>; |
140 | compatible = "spansion,s25sl12801"; | 140 | compatible = "spansion,s25sl12801", "jedec,spi-nor"; |
141 | reg = <0>; | 141 | reg = <0>; |
142 | spi-max-frequency = <40000000>; /* input clock */ | 142 | spi-max-frequency = <40000000>; /* input clock */ |
143 | 143 | ||
diff --git a/arch/powerpc/boot/dts/fsl/p2020rdb-pc.dtsi b/arch/powerpc/boot/dts/fsl/p2020rdb-pc.dtsi index ad2e242365cc..03c9afc82436 100644 --- a/arch/powerpc/boot/dts/fsl/p2020rdb-pc.dtsi +++ b/arch/powerpc/boot/dts/fsl/p2020rdb-pc.dtsi | |||
@@ -151,7 +151,7 @@ | |||
151 | flash@0 { | 151 | flash@0 { |
152 | #address-cells = <1>; | 152 | #address-cells = <1>; |
153 | #size-cells = <1>; | 153 | #size-cells = <1>; |
154 | compatible = "spansion,m25p80"; | 154 | compatible = "spansion,m25p80", "jedec,spi-nor"; |
155 | reg = <0>; | 155 | reg = <0>; |
156 | spi-max-frequency = <40000000>; | 156 | spi-max-frequency = <40000000>; |
157 | 157 | ||
diff --git a/arch/powerpc/boot/dts/fsl/p2020rdb.dts b/arch/powerpc/boot/dts/fsl/p2020rdb.dts index 70cf09019ce5..435a319958cb 100644 --- a/arch/powerpc/boot/dts/fsl/p2020rdb.dts +++ b/arch/powerpc/boot/dts/fsl/p2020rdb.dts | |||
@@ -155,7 +155,7 @@ | |||
155 | flash@0 { | 155 | flash@0 { |
156 | #address-cells = <1>; | 156 | #address-cells = <1>; |
157 | #size-cells = <1>; | 157 | #size-cells = <1>; |
158 | compatible = "spansion,s25sl12801"; | 158 | compatible = "spansion,s25sl12801", "jedec,spi-nor"; |
159 | reg = <0>; | 159 | reg = <0>; |
160 | spi-max-frequency = <40000000>; | 160 | spi-max-frequency = <40000000>; |
161 | 161 | ||
diff --git a/arch/powerpc/boot/dts/fsl/p2041rdb.dts b/arch/powerpc/boot/dts/fsl/p2041rdb.dts index e9bd89406c4c..e50fea95a853 100644 --- a/arch/powerpc/boot/dts/fsl/p2041rdb.dts +++ b/arch/powerpc/boot/dts/fsl/p2041rdb.dts | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * P2041RDB Device Tree Source | 2 | * P2041RDB Device Tree Source |
3 | * | 3 | * |
4 | * Copyright 2011 - 2014 Freescale Semiconductor Inc. | 4 | * Copyright 2011 - 2015 Freescale Semiconductor Inc. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
@@ -41,6 +41,19 @@ | |||
41 | #size-cells = <2>; | 41 | #size-cells = <2>; |
42 | interrupt-parent = <&mpic>; | 42 | interrupt-parent = <&mpic>; |
43 | 43 | ||
44 | aliases { | ||
45 | phy_rgmii_0 = &phy_rgmii_0; | ||
46 | phy_rgmii_1 = &phy_rgmii_1; | ||
47 | phy_sgmii_2 = &phy_sgmii_2; | ||
48 | phy_sgmii_3 = &phy_sgmii_3; | ||
49 | phy_sgmii_4 = &phy_sgmii_4; | ||
50 | phy_sgmii_1c = &phy_sgmii_1c; | ||
51 | phy_sgmii_1d = &phy_sgmii_1d; | ||
52 | phy_sgmii_1e = &phy_sgmii_1e; | ||
53 | phy_sgmii_1f = &phy_sgmii_1f; | ||
54 | phy_xgmii_2 = &phy_xgmii_2; | ||
55 | }; | ||
56 | |||
44 | memory { | 57 | memory { |
45 | device_type = "memory"; | 58 | device_type = "memory"; |
46 | }; | 59 | }; |
@@ -83,7 +96,7 @@ | |||
83 | flash@0 { | 96 | flash@0 { |
84 | #address-cells = <1>; | 97 | #address-cells = <1>; |
85 | #size-cells = <1>; | 98 | #size-cells = <1>; |
86 | compatible = "spansion,s25sl12801"; | 99 | compatible = "spansion,s25sl12801", "jedec,spi-nor"; |
87 | reg = <0>; | 100 | reg = <0>; |
88 | spi-max-frequency = <40000000>; /* input clock */ | 101 | spi-max-frequency = <40000000>; /* input clock */ |
89 | partition@u-boot { | 102 | partition@u-boot { |
@@ -137,6 +150,83 @@ | |||
137 | usb1: usb@211000 { | 150 | usb1: usb@211000 { |
138 | dr_mode = "host"; | 151 | dr_mode = "host"; |
139 | }; | 152 | }; |
153 | |||
154 | fman@400000 { | ||
155 | ethernet@e0000 { | ||
156 | phy-handle = <&phy_sgmii_2>; | ||
157 | phy-connection-type = "sgmii"; | ||
158 | }; | ||
159 | |||
160 | mdio@e1120 { | ||
161 | phy_rgmii_0: ethernet-phy@0 { | ||
162 | reg = <0x0>; | ||
163 | }; | ||
164 | |||
165 | phy_rgmii_1: ethernet-phy@1 { | ||
166 | reg = <0x1>; | ||
167 | }; | ||
168 | |||
169 | phy_sgmii_2: ethernet-phy@2 { | ||
170 | reg = <0x2>; | ||
171 | }; | ||
172 | |||
173 | phy_sgmii_3: ethernet-phy@3 { | ||
174 | reg = <0x3>; | ||
175 | }; | ||
176 | |||
177 | phy_sgmii_4: ethernet-phy@4 { | ||
178 | reg = <0x4>; | ||
179 | }; | ||
180 | |||
181 | phy_sgmii_1c: ethernet-phy@1c { | ||
182 | reg = <0x1c>; | ||
183 | }; | ||
184 | |||
185 | phy_sgmii_1d: ethernet-phy@1d { | ||
186 | reg = <0x1d>; | ||
187 | }; | ||
188 | |||
189 | phy_sgmii_1e: ethernet-phy@1e { | ||
190 | reg = <0x1e>; | ||
191 | }; | ||
192 | |||
193 | phy_sgmii_1f: ethernet-phy@1f { | ||
194 | reg = <0x1f>; | ||
195 | }; | ||
196 | }; | ||
197 | |||
198 | ethernet@e2000 { | ||
199 | phy-handle = <&phy_sgmii_3>; | ||
200 | phy-connection-type = "sgmii"; | ||
201 | }; | ||
202 | |||
203 | ethernet@e4000 { | ||
204 | phy-handle = <&phy_sgmii_4>; | ||
205 | phy-connection-type = "sgmii"; | ||
206 | }; | ||
207 | |||
208 | ethernet@e6000 { | ||
209 | phy-handle = <&phy_rgmii_1>; | ||
210 | phy-connection-type = "rgmii"; | ||
211 | }; | ||
212 | |||
213 | ethernet@e8000 { | ||
214 | phy-handle = <&phy_rgmii_0>; | ||
215 | phy-connection-type = "rgmii"; | ||
216 | }; | ||
217 | |||
218 | ethernet@f0000 { | ||
219 | phy-handle = <&phy_xgmii_2>; | ||
220 | phy-connection-type = "xgmii"; | ||
221 | }; | ||
222 | |||
223 | mdio@f1000 { | ||
224 | phy_xgmii_2: ethernet-phy@0 { | ||
225 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
226 | reg = <0x0>; | ||
227 | }; | ||
228 | }; | ||
229 | }; | ||
140 | }; | 230 | }; |
141 | 231 | ||
142 | rio: rapidio@ffe0c0000 { | 232 | rio: rapidio@ffe0c0000 { |
diff --git a/arch/powerpc/boot/dts/fsl/p3041ds.dts b/arch/powerpc/boot/dts/fsl/p3041ds.dts index f2b1d40334d4..40748e415adb 100644 --- a/arch/powerpc/boot/dts/fsl/p3041ds.dts +++ b/arch/powerpc/boot/dts/fsl/p3041ds.dts | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * P3041DS Device Tree Source | 2 | * P3041DS Device Tree Source |
3 | * | 3 | * |
4 | * Copyright 2010 - 2014 Freescale Semiconductor Inc. | 4 | * Copyright 2010 - 2015 Freescale Semiconductor Inc. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
@@ -41,6 +41,20 @@ | |||
41 | #size-cells = <2>; | 41 | #size-cells = <2>; |
42 | interrupt-parent = <&mpic>; | 42 | interrupt-parent = <&mpic>; |
43 | 43 | ||
44 | aliases{ | ||
45 | phy_rgmii_0 = &phy_rgmii_0; | ||
46 | phy_rgmii_1 = &phy_rgmii_1; | ||
47 | phy_sgmii_1c = &phy_sgmii_1c; | ||
48 | phy_sgmii_1d = &phy_sgmii_1d; | ||
49 | phy_sgmii_1e = &phy_sgmii_1e; | ||
50 | phy_sgmii_1f = &phy_sgmii_1f; | ||
51 | phy_xgmii_1 = &phy_xgmii_1; | ||
52 | phy_xgmii_2 = &phy_xgmii_2; | ||
53 | emi1_rgmii = &hydra_mdio_rgmii; | ||
54 | emi1_sgmii = &hydra_mdio_sgmii; | ||
55 | emi2_xgmii = &hydra_mdio_xgmii; | ||
56 | }; | ||
57 | |||
44 | memory { | 58 | memory { |
45 | device_type = "memory"; | 59 | device_type = "memory"; |
46 | }; | 60 | }; |
@@ -83,7 +97,7 @@ | |||
83 | flash@0 { | 97 | flash@0 { |
84 | #address-cells = <1>; | 98 | #address-cells = <1>; |
85 | #size-cells = <1>; | 99 | #size-cells = <1>; |
86 | compatible = "spansion,s25sl12801"; | 100 | compatible = "spansion,s25sl12801", "jedec,spi-nor"; |
87 | reg = <0>; | 101 | reg = <0>; |
88 | spi-max-frequency = <35000000>; /* input clock */ | 102 | spi-max-frequency = <35000000>; /* input clock */ |
89 | partition@u-boot { | 103 | partition@u-boot { |
@@ -150,6 +164,52 @@ | |||
150 | reg = <0x4c>; | 164 | reg = <0x4c>; |
151 | }; | 165 | }; |
152 | }; | 166 | }; |
167 | |||
168 | fman@400000{ | ||
169 | ethernet@e0000 { | ||
170 | phy-handle = <&phy_sgmii_1c>; | ||
171 | phy-connection-type = "sgmii"; | ||
172 | }; | ||
173 | |||
174 | ethernet@e2000 { | ||
175 | phy-handle = <&phy_sgmii_1d>; | ||
176 | phy-connection-type = "sgmii"; | ||
177 | }; | ||
178 | |||
179 | ethernet@e4000 { | ||
180 | phy-handle = <&phy_sgmii_1e>; | ||
181 | phy-connection-type = "sgmii"; | ||
182 | }; | ||
183 | |||
184 | ethernet@e6000 { | ||
185 | phy-handle = <&phy_sgmii_1f>; | ||
186 | phy-connection-type = "sgmii"; | ||
187 | }; | ||
188 | |||
189 | ethernet@e8000 { | ||
190 | phy-handle = <&phy_rgmii_1>; | ||
191 | phy-connection-type = "rgmii"; | ||
192 | }; | ||
193 | |||
194 | ethernet@f0000 { | ||
195 | phy-handle = <&phy_xgmii_1>; | ||
196 | phy-connection-type = "xgmii"; | ||
197 | }; | ||
198 | |||
199 | hydra_mdio_xgmii: mdio@f1000 { | ||
200 | status = "disabled"; | ||
201 | |||
202 | phy_xgmii_1: ethernet-phy@4 { | ||
203 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
204 | reg = <0x4>; | ||
205 | }; | ||
206 | |||
207 | phy_xgmii_2: ethernet-phy@0 { | ||
208 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
209 | reg = <0x0>; | ||
210 | }; | ||
211 | }; | ||
212 | }; | ||
153 | }; | 213 | }; |
154 | 214 | ||
155 | rio: rapidio@ffe0c0000 { | 215 | rio: rapidio@ffe0c0000 { |
@@ -215,8 +275,58 @@ | |||
215 | }; | 275 | }; |
216 | 276 | ||
217 | board-control@3,0 { | 277 | board-control@3,0 { |
278 | #address-cells = <1>; | ||
279 | #size-cells = <1>; | ||
218 | compatible = "fsl,p3041ds-fpga", "fsl,fpga-ngpixis"; | 280 | compatible = "fsl,p3041ds-fpga", "fsl,fpga-ngpixis"; |
219 | reg = <3 0 0x30>; | 281 | reg = <3 0 0x30>; |
282 | ranges = <0 3 0 0x30>; | ||
283 | |||
284 | mdio-mux-emi1 { | ||
285 | #address-cells = <1>; | ||
286 | #size-cells = <0>; | ||
287 | compatible = "mdio-mux-mmioreg", "mdio-mux"; | ||
288 | mdio-parent-bus = <&mdio0>; | ||
289 | reg = <9 1>; | ||
290 | mux-mask = <0x78>; | ||
291 | |||
292 | hydra_mdio_rgmii: rgmii-mdio@8 { | ||
293 | #address-cells = <1>; | ||
294 | #size-cells = <0>; | ||
295 | reg = <8>; | ||
296 | status = "disabled"; | ||
297 | |||
298 | phy_rgmii_0: ethernet-phy@0 { | ||
299 | reg = <0x0>; | ||
300 | }; | ||
301 | |||
302 | phy_rgmii_1: ethernet-phy@1 { | ||
303 | reg = <0x1>; | ||
304 | }; | ||
305 | }; | ||
306 | |||
307 | hydra_mdio_sgmii: sgmii-mdio@28 { | ||
308 | #address-cells = <1>; | ||
309 | #size-cells = <0>; | ||
310 | reg = <0x28>; | ||
311 | status = "disabled"; | ||
312 | |||
313 | phy_sgmii_1c: ethernet-phy@1c { | ||
314 | reg = <0x1c>; | ||
315 | }; | ||
316 | |||
317 | phy_sgmii_1d: ethernet-phy@1d { | ||
318 | reg = <0x1d>; | ||
319 | }; | ||
320 | |||
321 | phy_sgmii_1e: ethernet-phy@1e { | ||
322 | reg = <0x1e>; | ||
323 | }; | ||
324 | |||
325 | phy_sgmii_1f: ethernet-phy@1f { | ||
326 | reg = <0x1f>; | ||
327 | }; | ||
328 | }; | ||
329 | }; | ||
220 | }; | 330 | }; |
221 | }; | 331 | }; |
222 | 332 | ||
diff --git a/arch/powerpc/boot/dts/fsl/p4080ds.dts b/arch/powerpc/boot/dts/fsl/p4080ds.dts index 28a55c5e7099..816b9788d5f6 100644 --- a/arch/powerpc/boot/dts/fsl/p4080ds.dts +++ b/arch/powerpc/boot/dts/fsl/p4080ds.dts | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * P4080DS Device Tree Source | 2 | * P4080DS Device Tree Source |
3 | * | 3 | * |
4 | * Copyright 2009 - 2014 Freescale Semiconductor Inc. | 4 | * Copyright 2009 - 2015 Freescale Semiconductor Inc. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
@@ -41,6 +41,20 @@ | |||
41 | #size-cells = <2>; | 41 | #size-cells = <2>; |
42 | interrupt-parent = <&mpic>; | 42 | interrupt-parent = <&mpic>; |
43 | 43 | ||
44 | aliases { | ||
45 | phy_rgmii = &phyrgmii; | ||
46 | phy5_slot3 = &phy5slot3; | ||
47 | phy6_slot3 = &phy6slot3; | ||
48 | phy7_slot3 = &phy7slot3; | ||
49 | phy8_slot3 = &phy8slot3; | ||
50 | emi1_slot3 = &p4080mdio2; | ||
51 | emi1_slot4 = &p4080mdio1; | ||
52 | emi1_slot5 = &p4080mdio3; | ||
53 | emi1_rgmii = &p4080mdio0; | ||
54 | emi2_slot4 = &p4080xmdio1; | ||
55 | emi2_slot5 = &p4080xmdio3; | ||
56 | }; | ||
57 | |||
44 | memory { | 58 | memory { |
45 | device_type = "memory"; | 59 | device_type = "memory"; |
46 | }; | 60 | }; |
@@ -84,7 +98,7 @@ | |||
84 | flash@0 { | 98 | flash@0 { |
85 | #address-cells = <1>; | 99 | #address-cells = <1>; |
86 | #size-cells = <1>; | 100 | #size-cells = <1>; |
87 | compatible = "spansion,s25sl12801"; | 101 | compatible = "spansion,s25sl12801", "jedec,spi-nor"; |
88 | reg = <0>; | 102 | reg = <0>; |
89 | spi-max-frequency = <40000000>; /* input clock */ | 103 | spi-max-frequency = <40000000>; /* input clock */ |
90 | partition@u-boot { | 104 | partition@u-boot { |
@@ -137,6 +151,60 @@ | |||
137 | dr_mode = "host"; | 151 | dr_mode = "host"; |
138 | phy_type = "ulpi"; | 152 | phy_type = "ulpi"; |
139 | }; | 153 | }; |
154 | |||
155 | fman@400000 { | ||
156 | ethernet@e0000 { | ||
157 | phy-handle = <&phy0>; | ||
158 | phy-connection-type = "sgmii"; | ||
159 | }; | ||
160 | |||
161 | ethernet@e2000 { | ||
162 | phy-handle = <&phy1>; | ||
163 | phy-connection-type = "sgmii"; | ||
164 | }; | ||
165 | |||
166 | ethernet@e4000 { | ||
167 | phy-handle = <&phy2>; | ||
168 | phy-connection-type = "sgmii"; | ||
169 | }; | ||
170 | |||
171 | ethernet@e6000 { | ||
172 | phy-handle = <&phy3>; | ||
173 | phy-connection-type = "sgmii"; | ||
174 | }; | ||
175 | |||
176 | ethernet@f0000 { | ||
177 | phy-handle = <&phy10>; | ||
178 | phy-connection-type = "xgmii"; | ||
179 | }; | ||
180 | }; | ||
181 | |||
182 | fman@500000 { | ||
183 | ethernet@e0000 { | ||
184 | phy-handle = <&phy5>; | ||
185 | phy-connection-type = "sgmii"; | ||
186 | }; | ||
187 | |||
188 | ethernet@e2000 { | ||
189 | phy-handle = <&phy6>; | ||
190 | phy-connection-type = "sgmii"; | ||
191 | }; | ||
192 | |||
193 | ethernet@e4000 { | ||
194 | phy-handle = <&phy7>; | ||
195 | phy-connection-type = "sgmii"; | ||
196 | }; | ||
197 | |||
198 | ethernet@e6000 { | ||
199 | phy-handle = <&phy8>; | ||
200 | phy-connection-type = "sgmii"; | ||
201 | }; | ||
202 | |||
203 | ethernet@f0000 { | ||
204 | phy-handle = <&phy11>; | ||
205 | phy-connection-type = "xgmii"; | ||
206 | }; | ||
207 | }; | ||
140 | }; | 208 | }; |
141 | 209 | ||
142 | rio: rapidio@ffe0c0000 { | 210 | rio: rapidio@ffe0c0000 { |
@@ -213,6 +281,120 @@ | |||
213 | }; | 281 | }; |
214 | }; | 282 | }; |
215 | 283 | ||
284 | mdio-mux-emi1 { | ||
285 | #address-cells = <1>; | ||
286 | #size-cells = <0>; | ||
287 | compatible = "mdio-mux-gpio", "mdio-mux"; | ||
288 | mdio-parent-bus = <&mdio0>; | ||
289 | gpios = <&gpio0 1 0>, <&gpio0 0 0>; | ||
290 | |||
291 | p4080mdio0: mdio@0 { | ||
292 | #address-cells = <1>; | ||
293 | #size-cells = <0>; | ||
294 | reg = <0>; | ||
295 | |||
296 | phyrgmii: ethernet-phy@0 { | ||
297 | reg = <0x0>; | ||
298 | }; | ||
299 | }; | ||
300 | |||
301 | p4080mdio1: mdio@1 { | ||
302 | #address-cells = <1>; | ||
303 | #size-cells = <0>; | ||
304 | reg = <1>; | ||
305 | |||
306 | phy5: ethernet-phy@1c { | ||
307 | reg = <0x1c>; | ||
308 | }; | ||
309 | |||
310 | phy6: ethernet-phy@1d { | ||
311 | reg = <0x1d>; | ||
312 | }; | ||
313 | |||
314 | phy7: ethernet-phy@1e { | ||
315 | reg = <0x1e>; | ||
316 | }; | ||
317 | |||
318 | phy8: ethernet-phy@1f { | ||
319 | reg = <0x1f>; | ||
320 | }; | ||
321 | }; | ||
322 | |||
323 | p4080mdio2: mdio@2 { | ||
324 | #address-cells = <1>; | ||
325 | #size-cells = <0>; | ||
326 | reg = <2>; | ||
327 | status = "disabled"; | ||
328 | |||
329 | phy5slot3: ethernet-phy@1c { | ||
330 | reg = <0x1c>; | ||
331 | }; | ||
332 | |||
333 | phy6slot3: ethernet-phy@1d { | ||
334 | reg = <0x1d>; | ||
335 | }; | ||
336 | |||
337 | phy7slot3: ethernet-phy@1e { | ||
338 | reg = <0x1e>; | ||
339 | }; | ||
340 | |||
341 | phy8slot3: ethernet-phy@1f { | ||
342 | reg = <0x1f>; | ||
343 | }; | ||
344 | }; | ||
345 | |||
346 | p4080mdio3: mdio@3 { | ||
347 | #address-cells = <1>; | ||
348 | #size-cells = <0>; | ||
349 | reg = <3>; | ||
350 | |||
351 | phy0: ethernet-phy@1c { | ||
352 | reg = <0x1c>; | ||
353 | }; | ||
354 | |||
355 | phy1: ethernet-phy@1d { | ||
356 | reg = <0x1d>; | ||
357 | }; | ||
358 | |||
359 | phy2: ethernet-phy@1e { | ||
360 | reg = <0x1e>; | ||
361 | }; | ||
362 | |||
363 | phy3: ethernet-phy@1f { | ||
364 | reg = <0x1f>; | ||
365 | }; | ||
366 | }; | ||
367 | }; | ||
368 | |||
369 | mdio-mux-emi2 { | ||
370 | #address-cells = <1>; | ||
371 | #size-cells = <0>; | ||
372 | compatible = "mdio-mux-gpio", "mdio-mux"; | ||
373 | mdio-parent-bus = <&xmdio0>; | ||
374 | gpios = <&gpio0 3 0>, <&gpio0 2 0>; | ||
375 | |||
376 | p4080xmdio1: mdio@1 { | ||
377 | #address-cells = <1>; | ||
378 | #size-cells = <0>; | ||
379 | reg = <1>; | ||
380 | |||
381 | phy11: ethernet-phy@0 { | ||
382 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
383 | reg = <0x0>; | ||
384 | }; | ||
385 | }; | ||
386 | |||
387 | p4080xmdio3: mdio@3 { | ||
388 | #address-cells = <1>; | ||
389 | #size-cells = <0>; | ||
390 | reg = <3>; | ||
391 | |||
392 | phy10: ethernet-phy@4 { | ||
393 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
394 | reg = <0x4>; | ||
395 | }; | ||
396 | }; | ||
397 | }; | ||
216 | }; | 398 | }; |
217 | 399 | ||
218 | /include/ "p4080si-post.dtsi" | 400 | /include/ "p4080si-post.dtsi" |
diff --git a/arch/powerpc/boot/dts/fsl/p5020ds.dts b/arch/powerpc/boot/dts/fsl/p5020ds.dts index 920dc77b9c43..cd6f37386111 100644 --- a/arch/powerpc/boot/dts/fsl/p5020ds.dts +++ b/arch/powerpc/boot/dts/fsl/p5020ds.dts | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * P5020DS Device Tree Source | 2 | * P5020DS Device Tree Source |
3 | * | 3 | * |
4 | * Copyright 2010 - 2014 Freescale Semiconductor Inc. | 4 | * Copyright 2010 - 2015 Freescale Semiconductor Inc. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
@@ -41,6 +41,20 @@ | |||
41 | #size-cells = <2>; | 41 | #size-cells = <2>; |
42 | interrupt-parent = <&mpic>; | 42 | interrupt-parent = <&mpic>; |
43 | 43 | ||
44 | aliases { | ||
45 | phy_rgmii_0 = &phy_rgmii_0; | ||
46 | phy_rgmii_1 = &phy_rgmii_1; | ||
47 | phy_sgmii_1c = &phy_sgmii_1c; | ||
48 | phy_sgmii_1d = &phy_sgmii_1d; | ||
49 | phy_sgmii_1e = &phy_sgmii_1e; | ||
50 | phy_sgmii_1f = &phy_sgmii_1f; | ||
51 | phy_xgmii_1 = &phy_xgmii_1; | ||
52 | phy_xgmii_2 = &phy_xgmii_2; | ||
53 | emi1_rgmii = &hydra_mdio_rgmii; | ||
54 | emi1_sgmii = &hydra_mdio_sgmii; | ||
55 | emi2_xgmii = &hydra_mdio_xgmii; | ||
56 | }; | ||
57 | |||
44 | memory { | 58 | memory { |
45 | device_type = "memory"; | 59 | device_type = "memory"; |
46 | }; | 60 | }; |
@@ -83,7 +97,7 @@ | |||
83 | flash@0 { | 97 | flash@0 { |
84 | #address-cells = <1>; | 98 | #address-cells = <1>; |
85 | #size-cells = <1>; | 99 | #size-cells = <1>; |
86 | compatible = "spansion,s25sl12801"; | 100 | compatible = "spansion,s25sl12801", "jedec,spi-nor"; |
87 | reg = <0>; | 101 | reg = <0>; |
88 | spi-max-frequency = <40000000>; /* input clock */ | 102 | spi-max-frequency = <40000000>; /* input clock */ |
89 | partition@u-boot { | 103 | partition@u-boot { |
@@ -150,6 +164,52 @@ | |||
150 | reg = <0x4c>; | 164 | reg = <0x4c>; |
151 | }; | 165 | }; |
152 | }; | 166 | }; |
167 | |||
168 | fman@400000 { | ||
169 | ethernet@e0000 { | ||
170 | phy-handle = <&phy_sgmii_1c>; | ||
171 | phy-connection-type = "sgmii"; | ||
172 | }; | ||
173 | |||
174 | ethernet@e2000 { | ||
175 | phy-handle = <&phy_sgmii_1d>; | ||
176 | phy-connection-type = "sgmii"; | ||
177 | }; | ||
178 | |||
179 | ethernet@e4000 { | ||
180 | phy-handle = <&phy_sgmii_1e>; | ||
181 | phy-connection-type = "sgmii"; | ||
182 | }; | ||
183 | |||
184 | ethernet@e6000 { | ||
185 | phy-handle = <&phy_sgmii_1f>; | ||
186 | phy-connection-type = "sgmii"; | ||
187 | }; | ||
188 | |||
189 | ethernet@e8000 { | ||
190 | phy-handle = <&phy_rgmii_1>; | ||
191 | phy-connection-type = "rgmii"; | ||
192 | }; | ||
193 | |||
194 | ethernet@f0000 { | ||
195 | phy-handle = <&phy_xgmii_1>; | ||
196 | phy-connection-type = "xgmii"; | ||
197 | }; | ||
198 | |||
199 | hydra_mdio_xgmii: mdio@f1000 { | ||
200 | status = "disabled"; | ||
201 | |||
202 | phy_xgmii_1: ethernet-phy@4 { | ||
203 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
204 | reg = <0x4>; | ||
205 | }; | ||
206 | |||
207 | phy_xgmii_2: ethernet-phy@0 { | ||
208 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
209 | reg = <0x0>; | ||
210 | }; | ||
211 | }; | ||
212 | }; | ||
153 | }; | 213 | }; |
154 | 214 | ||
155 | rio: rapidio@ffe0c0000 { | 215 | rio: rapidio@ffe0c0000 { |
@@ -215,8 +275,58 @@ | |||
215 | }; | 275 | }; |
216 | 276 | ||
217 | board-control@3,0 { | 277 | board-control@3,0 { |
278 | #address-cells = <1>; | ||
279 | #size-cells = <1>; | ||
218 | compatible = "fsl,p5020ds-fpga", "fsl,fpga-ngpixis"; | 280 | compatible = "fsl,p5020ds-fpga", "fsl,fpga-ngpixis"; |
219 | reg = <3 0 0x30>; | 281 | reg = <3 0 0x30>; |
282 | ranges = <0 3 0 0x30>; | ||
283 | |||
284 | mdio-mux-emi1 { | ||
285 | #address-cells = <1>; | ||
286 | #size-cells = <0>; | ||
287 | compatible = "mdio-mux-mmioreg", "mdio-mux"; | ||
288 | mdio-parent-bus = <&mdio0>; | ||
289 | reg = <9 1>; | ||
290 | mux-mask = <0x78>; | ||
291 | |||
292 | hydra_mdio_rgmii: rgmii-mdio@8 { | ||
293 | #address-cells = <1>; | ||
294 | #size-cells = <0>; | ||
295 | reg = <8>; | ||
296 | status = "disabled"; | ||
297 | |||
298 | phy_rgmii_0: ethernet-phy@0 { | ||
299 | reg = <0x0>; | ||
300 | }; | ||
301 | |||
302 | phy_rgmii_1: ethernet-phy@1 { | ||
303 | reg = <0x1>; | ||
304 | }; | ||
305 | }; | ||
306 | |||
307 | hydra_mdio_sgmii: sgmii-mdio@28 { | ||
308 | #address-cells = <1>; | ||
309 | #size-cells = <0>; | ||
310 | reg = <0x28>; | ||
311 | status = "disabled"; | ||
312 | |||
313 | phy_sgmii_1c: ethernet-phy@1c { | ||
314 | reg = <0x1c>; | ||
315 | }; | ||
316 | |||
317 | phy_sgmii_1d: ethernet-phy@1d { | ||
318 | reg = <0x1d>; | ||
319 | }; | ||
320 | |||
321 | phy_sgmii_1e: ethernet-phy@1e { | ||
322 | reg = <0x1e>; | ||
323 | }; | ||
324 | |||
325 | phy_sgmii_1f: ethernet-phy@1f { | ||
326 | reg = <0x1f>; | ||
327 | }; | ||
328 | }; | ||
329 | }; | ||
220 | }; | 330 | }; |
221 | }; | 331 | }; |
222 | 332 | ||
diff --git a/arch/powerpc/boot/dts/fsl/p5040ds.dts b/arch/powerpc/boot/dts/fsl/p5040ds.dts index e169cc297ea3..45084738cf4e 100644 --- a/arch/powerpc/boot/dts/fsl/p5040ds.dts +++ b/arch/powerpc/boot/dts/fsl/p5040ds.dts | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * P5040DS Device Tree Source | 2 | * P5040DS Device Tree Source |
3 | * | 3 | * |
4 | * Copyright 2012 - 2014 Freescale Semiconductor Inc. | 4 | * Copyright 2012 - 2015 Freescale Semiconductor Inc. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
@@ -41,6 +41,32 @@ | |||
41 | #size-cells = <2>; | 41 | #size-cells = <2>; |
42 | interrupt-parent = <&mpic>; | 42 | interrupt-parent = <&mpic>; |
43 | 43 | ||
44 | aliases{ | ||
45 | phy_sgmii_slot2_1c = &phy_sgmii_slot2_1c; | ||
46 | phy_sgmii_slot2_1d = &phy_sgmii_slot2_1d; | ||
47 | phy_sgmii_slot2_1e = &phy_sgmii_slot2_1e; | ||
48 | phy_sgmii_slot2_1f = &phy_sgmii_slot2_1f; | ||
49 | phy_sgmii_slot3_1c = &phy_sgmii_slot3_1c; | ||
50 | phy_sgmii_slot3_1d = &phy_sgmii_slot3_1d; | ||
51 | phy_sgmii_slot3_1e = &phy_sgmii_slot3_1e; | ||
52 | phy_sgmii_slot3_1f = &phy_sgmii_slot3_1f; | ||
53 | phy_sgmii_slot5_1c = &phy_sgmii_slot5_1c; | ||
54 | phy_sgmii_slot5_1d = &phy_sgmii_slot5_1d; | ||
55 | phy_sgmii_slot5_1e = &phy_sgmii_slot5_1e; | ||
56 | phy_sgmii_slot5_1f = &phy_sgmii_slot5_1f; | ||
57 | phy_sgmii_slot6_1c = &phy_sgmii_slot6_1c; | ||
58 | phy_sgmii_slot6_1d = &phy_sgmii_slot6_1d; | ||
59 | phy_sgmii_slot6_1e = &phy_sgmii_slot6_1e; | ||
60 | phy_sgmii_slot6_1f = &phy_sgmii_slot6_1f; | ||
61 | hydra_rg = &hydra_rg; | ||
62 | hydra_sg_slot2 = &hydra_sg_slot2; | ||
63 | hydra_sg_slot3 = &hydra_sg_slot3; | ||
64 | hydra_sg_slot5 = &hydra_sg_slot5; | ||
65 | hydra_sg_slot6 = &hydra_sg_slot6; | ||
66 | hydra_xg_slot1 = &hydra_xg_slot1; | ||
67 | hydra_xg_slot2 = &hydra_xg_slot2; | ||
68 | }; | ||
69 | |||
44 | memory { | 70 | memory { |
45 | device_type = "memory"; | 71 | device_type = "memory"; |
46 | }; | 72 | }; |
@@ -83,7 +109,7 @@ | |||
83 | flash@0 { | 109 | flash@0 { |
84 | #address-cells = <1>; | 110 | #address-cells = <1>; |
85 | #size-cells = <1>; | 111 | #size-cells = <1>; |
86 | compatible = "spansion,s25sl12801"; | 112 | compatible = "spansion,s25sl12801", "jedec,spi-nor"; |
87 | reg = <0>; | 113 | reg = <0>; |
88 | spi-max-frequency = <40000000>; /* input clock */ | 114 | spi-max-frequency = <40000000>; /* input clock */ |
89 | partition@u-boot { | 115 | partition@u-boot { |
@@ -147,6 +173,62 @@ | |||
147 | reg = <0x4c>; | 173 | reg = <0x4c>; |
148 | }; | 174 | }; |
149 | }; | 175 | }; |
176 | |||
177 | fman@400000 { | ||
178 | ethernet@e0000 { | ||
179 | phy-connection-type = "sgmii"; | ||
180 | }; | ||
181 | |||
182 | ethernet@e2000 { | ||
183 | phy-connection-type = "sgmii"; | ||
184 | }; | ||
185 | |||
186 | ethernet@e4000 { | ||
187 | phy-connection-type = "sgmii"; | ||
188 | }; | ||
189 | |||
190 | ethernet@e6000 { | ||
191 | phy-connection-type = "sgmii"; | ||
192 | }; | ||
193 | |||
194 | ethernet@e8000 { | ||
195 | phy-handle = <&phy_rgmii_0>; | ||
196 | phy-connection-type = "rgmii"; | ||
197 | }; | ||
198 | |||
199 | ethernet@f0000 { | ||
200 | phy-handle = <&phy_xgmii_slot_2>; | ||
201 | phy-connection-type = "xgmii"; | ||
202 | }; | ||
203 | }; | ||
204 | |||
205 | fman@500000 { | ||
206 | ethernet@e0000 { | ||
207 | phy-connection-type = "sgmii"; | ||
208 | }; | ||
209 | |||
210 | ethernet@e2000 { | ||
211 | phy-connection-type = "sgmii"; | ||
212 | }; | ||
213 | |||
214 | ethernet@e4000 { | ||
215 | phy-connection-type = "sgmii"; | ||
216 | }; | ||
217 | |||
218 | ethernet@e6000 { | ||
219 | phy-connection-type = "sgmii"; | ||
220 | }; | ||
221 | |||
222 | ethernet@e8000 { | ||
223 | phy-handle = <&phy_rgmii_1>; | ||
224 | phy-connection-type = "rgmii"; | ||
225 | }; | ||
226 | |||
227 | ethernet@f0000 { | ||
228 | phy-handle = <&phy_xgmii_slot_1>; | ||
229 | phy-connection-type = "xgmii"; | ||
230 | }; | ||
231 | }; | ||
150 | }; | 232 | }; |
151 | 233 | ||
152 | lbc: localbus@ffe124000 { | 234 | lbc: localbus@ffe124000 { |
@@ -200,8 +282,158 @@ | |||
200 | }; | 282 | }; |
201 | 283 | ||
202 | board-control@3,0 { | 284 | board-control@3,0 { |
285 | #address-cells = <1>; | ||
286 | #size-cells = <1>; | ||
203 | compatible = "fsl,p5040ds-fpga", "fsl,fpga-ngpixis"; | 287 | compatible = "fsl,p5040ds-fpga", "fsl,fpga-ngpixis"; |
204 | reg = <3 0 0x40>; | 288 | reg = <3 0 0x40>; |
289 | ranges = <0 3 0 0x40>; | ||
290 | |||
291 | mdio-mux-emi1 { | ||
292 | #address-cells = <1>; | ||
293 | #size-cells = <0>; | ||
294 | compatible = "mdio-mux-mmioreg", "mdio-mux"; | ||
295 | mdio-parent-bus = <&mdio0>; | ||
296 | reg = <9 1>; | ||
297 | mux-mask = <0x78>; | ||
298 | |||
299 | hydra_rg:rgmii-mdio@8 { | ||
300 | #address-cells = <1>; | ||
301 | #size-cells = <0>; | ||
302 | reg = <8>; | ||
303 | status = "disabled"; | ||
304 | |||
305 | phy_rgmii_0: ethernet-phy@0 { | ||
306 | reg = <0x0>; | ||
307 | }; | ||
308 | |||
309 | phy_rgmii_1: ethernet-phy@1 { | ||
310 | reg = <0x1>; | ||
311 | }; | ||
312 | }; | ||
313 | |||
314 | hydra_sg_slot2: sgmii-mdio@28 { | ||
315 | #address-cells = <1>; | ||
316 | #size-cells = <0>; | ||
317 | reg = <0x28>; | ||
318 | status = "disabled"; | ||
319 | |||
320 | phy_sgmii_slot2_1c: ethernet-phy@1c { | ||
321 | reg = <0x1c>; | ||
322 | }; | ||
323 | |||
324 | phy_sgmii_slot2_1d: ethernet-phy@1d { | ||
325 | reg = <0x1d>; | ||
326 | }; | ||
327 | |||
328 | phy_sgmii_slot2_1e: ethernet-phy@1e { | ||
329 | reg = <0x1e>; | ||
330 | }; | ||
331 | |||
332 | phy_sgmii_slot2_1f: ethernet-phy@1f { | ||
333 | reg = <0x1f>; | ||
334 | }; | ||
335 | }; | ||
336 | |||
337 | hydra_sg_slot3: sgmii-mdio@68 { | ||
338 | #address-cells = <1>; | ||
339 | #size-cells = <0>; | ||
340 | reg = <0x68>; | ||
341 | status = "disabled"; | ||
342 | |||
343 | phy_sgmii_slot3_1c: ethernet-phy@1c { | ||
344 | reg = <0x1c>; | ||
345 | }; | ||
346 | |||
347 | phy_sgmii_slot3_1d: ethernet-phy@1d { | ||
348 | reg = <0x1d>; | ||
349 | }; | ||
350 | |||
351 | phy_sgmii_slot3_1e: ethernet-phy@1e { | ||
352 | reg = <0x1e>; | ||
353 | }; | ||
354 | |||
355 | phy_sgmii_slot3_1f: ethernet-phy@1f { | ||
356 | reg = <0x1f>; | ||
357 | }; | ||
358 | }; | ||
359 | |||
360 | hydra_sg_slot5: sgmii-mdio@38 { | ||
361 | #address-cells = <1>; | ||
362 | #size-cells = <0>; | ||
363 | reg = <0x38>; | ||
364 | status = "disabled"; | ||
365 | |||
366 | phy_sgmii_slot5_1c: ethernet-phy@1c { | ||
367 | reg = <0x1c>; | ||
368 | }; | ||
369 | |||
370 | phy_sgmii_slot5_1d: ethernet-phy@1d { | ||
371 | reg = <0x1d>; | ||
372 | }; | ||
373 | |||
374 | phy_sgmii_slot5_1e: ethernet-phy@1e { | ||
375 | reg = <0x1e>; | ||
376 | }; | ||
377 | |||
378 | phy_sgmii_slot5_1f: ethernet-phy@1f { | ||
379 | reg = <0x1f>; | ||
380 | }; | ||
381 | }; | ||
382 | hydra_sg_slot6: sgmii-mdio@48 { | ||
383 | #address-cells = <1>; | ||
384 | #size-cells = <0>; | ||
385 | reg = <0x48>; | ||
386 | status = "disabled"; | ||
387 | |||
388 | phy_sgmii_slot6_1c: ethernet-phy@1c { | ||
389 | reg = <0x1c>; | ||
390 | }; | ||
391 | |||
392 | phy_sgmii_slot6_1d: ethernet-phy@1d { | ||
393 | reg = <0x1d>; | ||
394 | }; | ||
395 | |||
396 | phy_sgmii_slot6_1e: ethernet-phy@1e { | ||
397 | reg = <0x1e>; | ||
398 | }; | ||
399 | |||
400 | phy_sgmii_slot6_1f: ethernet-phy@1f { | ||
401 | reg = <0x1f>; | ||
402 | }; | ||
403 | }; | ||
404 | }; | ||
405 | |||
406 | mdio-mux-emi2 { | ||
407 | #address-cells = <1>; | ||
408 | #size-cells = <0>; | ||
409 | compatible = "mdio-mux-mmioreg", "mdio-mux"; | ||
410 | mdio-parent-bus = <&xmdio0>; | ||
411 | reg = <9 1>; | ||
412 | mux-mask = <0x06>; | ||
413 | |||
414 | hydra_xg_slot1: hydra-xg-slot1@0 { | ||
415 | #address-cells = <1>; | ||
416 | #size-cells = <0>; | ||
417 | reg = <0>; | ||
418 | status = "disabled"; | ||
419 | |||
420 | phy_xgmii_slot_1: ethernet-phy@0 { | ||
421 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
422 | reg = <4>; | ||
423 | }; | ||
424 | }; | ||
425 | |||
426 | hydra_xg_slot2: hydra-xg-slot2@2 { | ||
427 | #address-cells = <1>; | ||
428 | #size-cells = <0>; | ||
429 | reg = <2>; | ||
430 | |||
431 | phy_xgmii_slot_2: ethernet-phy@4 { | ||
432 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
433 | reg = <0>; | ||
434 | }; | ||
435 | }; | ||
436 | }; | ||
205 | }; | 437 | }; |
206 | }; | 438 | }; |
207 | 439 | ||
diff --git a/arch/powerpc/boot/dts/fsl/p5040si-post.dtsi b/arch/powerpc/boot/dts/fsl/p5040si-post.dtsi index 2f227b1345ad..e2bd9313e632 100644 --- a/arch/powerpc/boot/dts/fsl/p5040si-post.dtsi +++ b/arch/powerpc/boot/dts/fsl/p5040si-post.dtsi | |||
@@ -420,6 +420,7 @@ | |||
420 | fsl,iommu-parent = <&pamu4>; | 420 | fsl,iommu-parent = <&pamu4>; |
421 | }; | 421 | }; |
422 | 422 | ||
423 | /include/ "qoriq-raid1.0-0.dtsi" | ||
423 | /include/ "qoriq-qman1.dtsi" | 424 | /include/ "qoriq-qman1.dtsi" |
424 | /include/ "qoriq-bman1.dtsi" | 425 | /include/ "qoriq-bman1.dtsi" |
425 | 426 | ||
diff --git a/arch/powerpc/boot/dts/fsl/p5040si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p5040si-pre.dtsi index 0659d5bb69b8..dbd57750fc02 100644 --- a/arch/powerpc/boot/dts/fsl/p5040si-pre.dtsi +++ b/arch/powerpc/boot/dts/fsl/p5040si-pre.dtsi | |||
@@ -73,6 +73,12 @@ | |||
73 | rtic_d = &rtic_d; | 73 | rtic_d = &rtic_d; |
74 | sec_mon = &sec_mon; | 74 | sec_mon = &sec_mon; |
75 | 75 | ||
76 | raideng = &raideng; | ||
77 | raideng_jr0 = &raideng_jr0; | ||
78 | raideng_jr1 = &raideng_jr1; | ||
79 | raideng_jr2 = &raideng_jr2; | ||
80 | raideng_jr3 = &raideng_jr3; | ||
81 | |||
76 | fman0 = &fman0; | 82 | fman0 = &fman0; |
77 | fman1 = &fman1; | 83 | fman1 = &fman1; |
78 | ethernet0 = &enet0; | 84 | ethernet0 = &enet0; |
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0-best-effort.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0-best-effort.dtsi index 2e441fab6d8f..e1a961f05dcd 100644 --- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0-best-effort.dtsi +++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0-best-effort.dtsi | |||
@@ -55,6 +55,7 @@ fman@400000 { | |||
55 | reg = <0xe0000 0x1000>; | 55 | reg = <0xe0000 0x1000>; |
56 | fsl,fman-ports = <&fman0_rx_0x08 &fman0_tx_0x28>; | 56 | fsl,fman-ports = <&fman0_rx_0x08 &fman0_tx_0x28>; |
57 | ptp-timer = <&ptp_timer0>; | 57 | ptp-timer = <&ptp_timer0>; |
58 | pcsphy-handle = <&pcsphy0>; | ||
58 | }; | 59 | }; |
59 | 60 | ||
60 | mdio@e1000 { | 61 | mdio@e1000 { |
@@ -62,5 +63,9 @@ fman@400000 { | |||
62 | #size-cells = <0>; | 63 | #size-cells = <0>; |
63 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; | 64 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; |
64 | reg = <0xe1000 0x1000>; | 65 | reg = <0xe1000 0x1000>; |
66 | |||
67 | pcsphy0: ethernet-phy@0 { | ||
68 | reg = <0x0>; | ||
69 | }; | ||
65 | }; | 70 | }; |
66 | }; | 71 | }; |
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0.dtsi index 0b8f87f79d15..c288f3c6c637 100644 --- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0.dtsi +++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0.dtsi | |||
@@ -52,6 +52,7 @@ fman@400000 { | |||
52 | compatible = "fsl,fman-memac"; | 52 | compatible = "fsl,fman-memac"; |
53 | reg = <0xf0000 0x1000>; | 53 | reg = <0xf0000 0x1000>; |
54 | fsl,fman-ports = <&fman0_rx_0x10 &fman0_tx_0x30>; | 54 | fsl,fman-ports = <&fman0_rx_0x10 &fman0_tx_0x30>; |
55 | pcsphy-handle = <&pcsphy6>; | ||
55 | }; | 56 | }; |
56 | 57 | ||
57 | mdio@f1000 { | 58 | mdio@f1000 { |
@@ -59,5 +60,9 @@ fman@400000 { | |||
59 | #size-cells = <0>; | 60 | #size-cells = <0>; |
60 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; | 61 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; |
61 | reg = <0xf1000 0x1000>; | 62 | reg = <0xf1000 0x1000>; |
63 | |||
64 | pcsphy6: ethernet-phy@0 { | ||
65 | reg = <0x0>; | ||
66 | }; | ||
62 | }; | 67 | }; |
63 | }; | 68 | }; |
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1-best-effort.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1-best-effort.dtsi index ba6f2275d3f6..94f3e7175012 100644 --- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1-best-effort.dtsi +++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1-best-effort.dtsi | |||
@@ -55,6 +55,7 @@ fman@400000 { | |||
55 | reg = <0xe2000 0x1000>; | 55 | reg = <0xe2000 0x1000>; |
56 | fsl,fman-ports = <&fman0_rx_0x09 &fman0_tx_0x29>; | 56 | fsl,fman-ports = <&fman0_rx_0x09 &fman0_tx_0x29>; |
57 | ptp-timer = <&ptp_timer0>; | 57 | ptp-timer = <&ptp_timer0>; |
58 | pcsphy-handle = <&pcsphy1>; | ||
58 | }; | 59 | }; |
59 | 60 | ||
60 | mdio@e3000 { | 61 | mdio@e3000 { |
@@ -62,5 +63,9 @@ fman@400000 { | |||
62 | #size-cells = <0>; | 63 | #size-cells = <0>; |
63 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; | 64 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; |
64 | reg = <0xe3000 0x1000>; | 65 | reg = <0xe3000 0x1000>; |
66 | |||
67 | pcsphy1: ethernet-phy@0 { | ||
68 | reg = <0x0>; | ||
69 | }; | ||
65 | }; | 70 | }; |
66 | }; | 71 | }; |
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1.dtsi index 886003805592..94a76982d214 100644 --- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1.dtsi +++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1.dtsi | |||
@@ -52,6 +52,7 @@ fman@400000 { | |||
52 | compatible = "fsl,fman-memac"; | 52 | compatible = "fsl,fman-memac"; |
53 | reg = <0xf2000 0x1000>; | 53 | reg = <0xf2000 0x1000>; |
54 | fsl,fman-ports = <&fman0_rx_0x11 &fman0_tx_0x31>; | 54 | fsl,fman-ports = <&fman0_rx_0x11 &fman0_tx_0x31>; |
55 | pcsphy-handle = <&pcsphy7>; | ||
55 | }; | 56 | }; |
56 | 57 | ||
57 | mdio@f3000 { | 58 | mdio@f3000 { |
@@ -59,5 +60,9 @@ fman@400000 { | |||
59 | #size-cells = <0>; | 60 | #size-cells = <0>; |
60 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; | 61 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; |
61 | reg = <0xf3000 0x1000>; | 62 | reg = <0xf3000 0x1000>; |
63 | |||
64 | pcsphy7: ethernet-phy@0 { | ||
65 | reg = <0x0>; | ||
66 | }; | ||
62 | }; | 67 | }; |
63 | }; | 68 | }; |
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-0.dtsi index ace9c13648ce..b5ff5f71c6b8 100644 --- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-0.dtsi +++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-0.dtsi | |||
@@ -51,6 +51,7 @@ fman@400000 { | |||
51 | reg = <0xe0000 0x1000>; | 51 | reg = <0xe0000 0x1000>; |
52 | fsl,fman-ports = <&fman0_rx_0x08 &fman0_tx_0x28>; | 52 | fsl,fman-ports = <&fman0_rx_0x08 &fman0_tx_0x28>; |
53 | ptp-timer = <&ptp_timer0>; | 53 | ptp-timer = <&ptp_timer0>; |
54 | pcsphy-handle = <&pcsphy0>; | ||
54 | }; | 55 | }; |
55 | 56 | ||
56 | mdio@e1000 { | 57 | mdio@e1000 { |
@@ -58,5 +59,9 @@ fman@400000 { | |||
58 | #size-cells = <0>; | 59 | #size-cells = <0>; |
59 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; | 60 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; |
60 | reg = <0xe1000 0x1000>; | 61 | reg = <0xe1000 0x1000>; |
62 | |||
63 | pcsphy0: ethernet-phy@0 { | ||
64 | reg = <0x0>; | ||
65 | }; | ||
61 | }; | 66 | }; |
62 | }; | 67 | }; |
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-1.dtsi index a4fc28654b31..ee44182c6348 100644 --- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-1.dtsi +++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-1.dtsi | |||
@@ -51,6 +51,7 @@ fman@400000 { | |||
51 | reg = <0xe2000 0x1000>; | 51 | reg = <0xe2000 0x1000>; |
52 | fsl,fman-ports = <&fman0_rx_0x09 &fman0_tx_0x29>; | 52 | fsl,fman-ports = <&fman0_rx_0x09 &fman0_tx_0x29>; |
53 | ptp-timer = <&ptp_timer0>; | 53 | ptp-timer = <&ptp_timer0>; |
54 | pcsphy-handle = <&pcsphy1>; | ||
54 | }; | 55 | }; |
55 | 56 | ||
56 | mdio@e3000 { | 57 | mdio@e3000 { |
@@ -58,5 +59,9 @@ fman@400000 { | |||
58 | #size-cells = <0>; | 59 | #size-cells = <0>; |
59 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; | 60 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; |
60 | reg = <0xe3000 0x1000>; | 61 | reg = <0xe3000 0x1000>; |
62 | |||
63 | pcsphy1: ethernet-phy@0 { | ||
64 | reg = <0x0>; | ||
65 | }; | ||
61 | }; | 66 | }; |
62 | }; | 67 | }; |
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-2.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-2.dtsi index 78596faadf99..f05f0d775039 100644 --- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-2.dtsi +++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-2.dtsi | |||
@@ -51,6 +51,7 @@ fman@400000 { | |||
51 | reg = <0xe4000 0x1000>; | 51 | reg = <0xe4000 0x1000>; |
52 | fsl,fman-ports = <&fman0_rx_0x0a &fman0_tx_0x2a>; | 52 | fsl,fman-ports = <&fman0_rx_0x0a &fman0_tx_0x2a>; |
53 | ptp-timer = <&ptp_timer0>; | 53 | ptp-timer = <&ptp_timer0>; |
54 | pcsphy-handle = <&pcsphy2>; | ||
54 | }; | 55 | }; |
55 | 56 | ||
56 | mdio@e5000 { | 57 | mdio@e5000 { |
@@ -58,5 +59,9 @@ fman@400000 { | |||
58 | #size-cells = <0>; | 59 | #size-cells = <0>; |
59 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; | 60 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; |
60 | reg = <0xe5000 0x1000>; | 61 | reg = <0xe5000 0x1000>; |
62 | |||
63 | pcsphy2: ethernet-phy@0 { | ||
64 | reg = <0x0>; | ||
65 | }; | ||
61 | }; | 66 | }; |
62 | }; | 67 | }; |
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-3.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-3.dtsi index af93abd86d78..a9114ec51075 100644 --- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-3.dtsi +++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-3.dtsi | |||
@@ -51,6 +51,7 @@ fman@400000 { | |||
51 | reg = <0xe6000 0x1000>; | 51 | reg = <0xe6000 0x1000>; |
52 | fsl,fman-ports = <&fman0_rx_0x0b &fman0_tx_0x2b>; | 52 | fsl,fman-ports = <&fman0_rx_0x0b &fman0_tx_0x2b>; |
53 | ptp-timer = <&ptp_timer0>; | 53 | ptp-timer = <&ptp_timer0>; |
54 | pcsphy-handle = <&pcsphy3>; | ||
54 | }; | 55 | }; |
55 | 56 | ||
56 | mdio@e7000 { | 57 | mdio@e7000 { |
@@ -58,5 +59,9 @@ fman@400000 { | |||
58 | #size-cells = <0>; | 59 | #size-cells = <0>; |
59 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; | 60 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; |
60 | reg = <0xe7000 0x1000>; | 61 | reg = <0xe7000 0x1000>; |
62 | |||
63 | pcsphy3: ethernet-phy@0 { | ||
64 | reg = <0x0>; | ||
65 | }; | ||
61 | }; | 66 | }; |
62 | }; | 67 | }; |
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-4.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-4.dtsi index 97cffd74bf3d..44dd00ac7367 100644 --- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-4.dtsi +++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-4.dtsi | |||
@@ -51,6 +51,7 @@ fman@400000 { | |||
51 | reg = <0xe8000 0x1000>; | 51 | reg = <0xe8000 0x1000>; |
52 | fsl,fman-ports = <&fman0_rx_0x0c &fman0_tx_0x2c>; | 52 | fsl,fman-ports = <&fman0_rx_0x0c &fman0_tx_0x2c>; |
53 | ptp-timer = <&ptp_timer0>; | 53 | ptp-timer = <&ptp_timer0>; |
54 | pcsphy-handle = <&pcsphy4>; | ||
54 | }; | 55 | }; |
55 | 56 | ||
56 | mdio@e9000 { | 57 | mdio@e9000 { |
@@ -58,5 +59,9 @@ fman@400000 { | |||
58 | #size-cells = <0>; | 59 | #size-cells = <0>; |
59 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; | 60 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; |
60 | reg = <0xe9000 0x1000>; | 61 | reg = <0xe9000 0x1000>; |
62 | |||
63 | pcsphy4: ethernet-phy@0 { | ||
64 | reg = <0x0>; | ||
65 | }; | ||
61 | }; | 66 | }; |
62 | }; | 67 | }; |
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-5.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-5.dtsi index 232c5c277bdb..5b1b84b58602 100644 --- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-5.dtsi +++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-5.dtsi | |||
@@ -51,6 +51,7 @@ fman@400000 { | |||
51 | reg = <0xea000 0x1000>; | 51 | reg = <0xea000 0x1000>; |
52 | fsl,fman-ports = <&fman0_rx_0x0d &fman0_tx_0x2d>; | 52 | fsl,fman-ports = <&fman0_rx_0x0d &fman0_tx_0x2d>; |
53 | ptp-timer = <&ptp_timer0>; | 53 | ptp-timer = <&ptp_timer0>; |
54 | pcsphy-handle = <&pcsphy5>; | ||
54 | }; | 55 | }; |
55 | 56 | ||
56 | mdio@eb000 { | 57 | mdio@eb000 { |
@@ -58,5 +59,9 @@ fman@400000 { | |||
58 | #size-cells = <0>; | 59 | #size-cells = <0>; |
59 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; | 60 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; |
60 | reg = <0xeb000 0x1000>; | 61 | reg = <0xeb000 0x1000>; |
62 | |||
63 | pcsphy5: ethernet-phy@0 { | ||
64 | reg = <0x0>; | ||
65 | }; | ||
61 | }; | 66 | }; |
62 | }; | 67 | }; |
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-0.dtsi index 89d64ee282b0..0e1daaef9e74 100644 --- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-0.dtsi +++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-0.dtsi | |||
@@ -52,6 +52,7 @@ fman@500000 { | |||
52 | compatible = "fsl,fman-memac"; | 52 | compatible = "fsl,fman-memac"; |
53 | reg = <0xf0000 0x1000>; | 53 | reg = <0xf0000 0x1000>; |
54 | fsl,fman-ports = <&fman1_rx_0x10 &fman1_tx_0x30>; | 54 | fsl,fman-ports = <&fman1_rx_0x10 &fman1_tx_0x30>; |
55 | pcsphy-handle = <&pcsphy14>; | ||
55 | }; | 56 | }; |
56 | 57 | ||
57 | mdio@f1000 { | 58 | mdio@f1000 { |
@@ -59,5 +60,9 @@ fman@500000 { | |||
59 | #size-cells = <0>; | 60 | #size-cells = <0>; |
60 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; | 61 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; |
61 | reg = <0xf1000 0x1000>; | 62 | reg = <0xf1000 0x1000>; |
63 | |||
64 | pcsphy14: ethernet-phy@0 { | ||
65 | reg = <0x0>; | ||
66 | }; | ||
62 | }; | 67 | }; |
63 | }; | 68 | }; |
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-1.dtsi index 7fa9260889c6..68c5ef779266 100644 --- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-1.dtsi +++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-1.dtsi | |||
@@ -52,6 +52,7 @@ fman@500000 { | |||
52 | compatible = "fsl,fman-memac"; | 52 | compatible = "fsl,fman-memac"; |
53 | reg = <0xf2000 0x1000>; | 53 | reg = <0xf2000 0x1000>; |
54 | fsl,fman-ports = <&fman1_rx_0x11 &fman1_tx_0x31>; | 54 | fsl,fman-ports = <&fman1_rx_0x11 &fman1_tx_0x31>; |
55 | pcsphy-handle = <&pcsphy15>; | ||
55 | }; | 56 | }; |
56 | 57 | ||
57 | mdio@f3000 { | 58 | mdio@f3000 { |
@@ -59,5 +60,9 @@ fman@500000 { | |||
59 | #size-cells = <0>; | 60 | #size-cells = <0>; |
60 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; | 61 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; |
61 | reg = <0xf3000 0x1000>; | 62 | reg = <0xf3000 0x1000>; |
63 | |||
64 | pcsphy15: ethernet-phy@0 { | ||
65 | reg = <0x0>; | ||
66 | }; | ||
62 | }; | 67 | }; |
63 | }; | 68 | }; |
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-0.dtsi index 3d236662bf07..605363cc1117 100644 --- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-0.dtsi +++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-0.dtsi | |||
@@ -51,6 +51,7 @@ fman@500000 { | |||
51 | reg = <0xe0000 0x1000>; | 51 | reg = <0xe0000 0x1000>; |
52 | fsl,fman-ports = <&fman1_rx_0x08 &fman1_tx_0x28>; | 52 | fsl,fman-ports = <&fman1_rx_0x08 &fman1_tx_0x28>; |
53 | ptp-timer = <&ptp_timer1>; | 53 | ptp-timer = <&ptp_timer1>; |
54 | pcsphy-handle = <&pcsphy8>; | ||
54 | }; | 55 | }; |
55 | 56 | ||
56 | mdio@e1000 { | 57 | mdio@e1000 { |
@@ -58,5 +59,9 @@ fman@500000 { | |||
58 | #size-cells = <0>; | 59 | #size-cells = <0>; |
59 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; | 60 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; |
60 | reg = <0xe1000 0x1000>; | 61 | reg = <0xe1000 0x1000>; |
62 | |||
63 | pcsphy8: ethernet-phy@0 { | ||
64 | reg = <0x0>; | ||
65 | }; | ||
61 | }; | 66 | }; |
62 | }; | 67 | }; |
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-1.dtsi index 97dc2eedd462..1955dfa13634 100644 --- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-1.dtsi +++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-1.dtsi | |||
@@ -51,6 +51,7 @@ fman@500000 { | |||
51 | reg = <0xe2000 0x1000>; | 51 | reg = <0xe2000 0x1000>; |
52 | fsl,fman-ports = <&fman1_rx_0x09 &fman1_tx_0x29>; | 52 | fsl,fman-ports = <&fman1_rx_0x09 &fman1_tx_0x29>; |
53 | ptp-timer = <&ptp_timer1>; | 53 | ptp-timer = <&ptp_timer1>; |
54 | pcsphy-handle = <&pcsphy9>; | ||
54 | }; | 55 | }; |
55 | 56 | ||
56 | mdio@e3000 { | 57 | mdio@e3000 { |
@@ -58,5 +59,9 @@ fman@500000 { | |||
58 | #size-cells = <0>; | 59 | #size-cells = <0>; |
59 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; | 60 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; |
60 | reg = <0xe3000 0x1000>; | 61 | reg = <0xe3000 0x1000>; |
62 | |||
63 | pcsphy9: ethernet-phy@0 { | ||
64 | reg = <0x0>; | ||
65 | }; | ||
61 | }; | 66 | }; |
62 | }; | 67 | }; |
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-2.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-2.dtsi index f084dd2f0bec..2c1476454ee0 100644 --- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-2.dtsi +++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-2.dtsi | |||
@@ -51,6 +51,7 @@ fman@500000 { | |||
51 | reg = <0xe4000 0x1000>; | 51 | reg = <0xe4000 0x1000>; |
52 | fsl,fman-ports = <&fman1_rx_0x0a &fman1_tx_0x2a>; | 52 | fsl,fman-ports = <&fman1_rx_0x0a &fman1_tx_0x2a>; |
53 | ptp-timer = <&ptp_timer1>; | 53 | ptp-timer = <&ptp_timer1>; |
54 | pcsphy-handle = <&pcsphy10>; | ||
54 | }; | 55 | }; |
55 | 56 | ||
56 | mdio@e5000 { | 57 | mdio@e5000 { |
@@ -58,5 +59,9 @@ fman@500000 { | |||
58 | #size-cells = <0>; | 59 | #size-cells = <0>; |
59 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; | 60 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; |
60 | reg = <0xe5000 0x1000>; | 61 | reg = <0xe5000 0x1000>; |
62 | |||
63 | pcsphy10: ethernet-phy@0 { | ||
64 | reg = <0x0>; | ||
65 | }; | ||
61 | }; | 66 | }; |
62 | }; | 67 | }; |
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-3.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-3.dtsi index bb627b3bf3db..b8b541ff5fb0 100644 --- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-3.dtsi +++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-3.dtsi | |||
@@ -51,6 +51,7 @@ fman@500000 { | |||
51 | reg = <0xe6000 0x1000>; | 51 | reg = <0xe6000 0x1000>; |
52 | fsl,fman-ports = <&fman1_rx_0x0b &fman1_tx_0x2b>; | 52 | fsl,fman-ports = <&fman1_rx_0x0b &fman1_tx_0x2b>; |
53 | ptp-timer = <&ptp_timer1>; | 53 | ptp-timer = <&ptp_timer1>; |
54 | pcsphy-handle = <&pcsphy11>; | ||
54 | }; | 55 | }; |
55 | 56 | ||
56 | mdio@e7000 { | 57 | mdio@e7000 { |
@@ -58,5 +59,9 @@ fman@500000 { | |||
58 | #size-cells = <0>; | 59 | #size-cells = <0>; |
59 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; | 60 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; |
60 | reg = <0xe7000 0x1000>; | 61 | reg = <0xe7000 0x1000>; |
62 | |||
63 | pcsphy11: ethernet-phy@0 { | ||
64 | reg = <0x0>; | ||
65 | }; | ||
61 | }; | 66 | }; |
62 | }; | 67 | }; |
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-4.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-4.dtsi index 821ed12225d4..4b2cfddd1b15 100644 --- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-4.dtsi +++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-4.dtsi | |||
@@ -51,6 +51,7 @@ fman@500000 { | |||
51 | reg = <0xe8000 0x1000>; | 51 | reg = <0xe8000 0x1000>; |
52 | fsl,fman-ports = <&fman1_rx_0x0c &fman1_tx_0x2c>; | 52 | fsl,fman-ports = <&fman1_rx_0x0c &fman1_tx_0x2c>; |
53 | ptp-timer = <&ptp_timer1>; | 53 | ptp-timer = <&ptp_timer1>; |
54 | pcsphy-handle = <&pcsphy12>; | ||
54 | }; | 55 | }; |
55 | 56 | ||
56 | mdio@e9000 { | 57 | mdio@e9000 { |
@@ -58,5 +59,9 @@ fman@500000 { | |||
58 | #size-cells = <0>; | 59 | #size-cells = <0>; |
59 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; | 60 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; |
60 | reg = <0xe9000 0x1000>; | 61 | reg = <0xe9000 0x1000>; |
62 | |||
63 | pcsphy12: ethernet-phy@0 { | ||
64 | reg = <0x0>; | ||
65 | }; | ||
61 | }; | 66 | }; |
62 | }; | 67 | }; |
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-5.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-5.dtsi index e245f1a1e42a..0a52ddf7cc17 100644 --- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-5.dtsi +++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-5.dtsi | |||
@@ -51,6 +51,7 @@ fman@500000 { | |||
51 | reg = <0xea000 0x1000>; | 51 | reg = <0xea000 0x1000>; |
52 | fsl,fman-ports = <&fman1_rx_0x0d &fman1_tx_0x2d>; | 52 | fsl,fman-ports = <&fman1_rx_0x0d &fman1_tx_0x2d>; |
53 | ptp-timer = <&ptp_timer1>; | 53 | ptp-timer = <&ptp_timer1>; |
54 | pcsphy-handle = <&pcsphy13>; | ||
54 | }; | 55 | }; |
55 | 56 | ||
56 | mdio@eb000 { | 57 | mdio@eb000 { |
@@ -58,5 +59,9 @@ fman@500000 { | |||
58 | #size-cells = <0>; | 59 | #size-cells = <0>; |
59 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; | 60 | compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; |
60 | reg = <0xeb000 0x1000>; | 61 | reg = <0xeb000 0x1000>; |
62 | |||
63 | pcsphy13: ethernet-phy@0 { | ||
64 | reg = <0x0>; | ||
65 | }; | ||
61 | }; | 66 | }; |
62 | }; | 67 | }; |
diff --git a/arch/powerpc/boot/dts/fsl/sbc8641d.dts b/arch/powerpc/boot/dts/fsl/sbc8641d.dts new file mode 100644 index 000000000000..0a9733cd418d --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/sbc8641d.dts | |||
@@ -0,0 +1,203 @@ | |||
1 | /* | ||
2 | * SBC8641D Device Tree Source | ||
3 | * | ||
4 | * Copyright 2008 Wind River Systems Inc. | ||
5 | * | ||
6 | * Paul Gortmaker (see MAINTAINERS for contact information) | ||
7 | * | ||
8 | * Based largely on the mpc8641_hpcn.dts by Freescale Semiconductor Inc. | ||
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 | |||
16 | /include/ "mpc8641si-pre.dtsi" | ||
17 | |||
18 | / { | ||
19 | model = "SBC8641D"; | ||
20 | compatible = "wind,sbc8641"; | ||
21 | |||
22 | aliases { | ||
23 | pci1 = &pci1; | ||
24 | }; | ||
25 | |||
26 | memory { | ||
27 | device_type = "memory"; | ||
28 | reg = <0x00000000 0x20000000>; // 512M at 0x0 | ||
29 | }; | ||
30 | |||
31 | lbc: localbus@f8005000 { | ||
32 | reg = <0xf8005000 0x1000>; | ||
33 | |||
34 | ranges = <0 0 0xff000000 0x01000000 // 16MB Boot flash | ||
35 | 1 0 0xf0000000 0x00010000 // 64KB EEPROM | ||
36 | 2 0 0xf1000000 0x00100000 // EPLD (1MB) | ||
37 | 3 0 0xe0000000 0x04000000 // 64MB LB SDRAM (CS3) | ||
38 | 4 0 0xe4000000 0x04000000 // 64MB LB SDRAM (CS4) | ||
39 | 6 0 0xf4000000 0x00100000 // LCD display (1MB) | ||
40 | 7 0 0xe8000000 0x04000000>; // 64MB OneNAND | ||
41 | |||
42 | flash@0,0 { | ||
43 | compatible = "cfi-flash"; | ||
44 | reg = <0 0 0x01000000>; | ||
45 | bank-width = <2>; | ||
46 | device-width = <2>; | ||
47 | #address-cells = <1>; | ||
48 | #size-cells = <1>; | ||
49 | partition@0 { | ||
50 | label = "dtb"; | ||
51 | reg = <0x00000000 0x00100000>; | ||
52 | read-only; | ||
53 | }; | ||
54 | partition@300000 { | ||
55 | label = "kernel"; | ||
56 | reg = <0x00100000 0x00400000>; | ||
57 | read-only; | ||
58 | }; | ||
59 | partition@400000 { | ||
60 | label = "fs"; | ||
61 | reg = <0x00500000 0x00a00000>; | ||
62 | }; | ||
63 | partition@700000 { | ||
64 | label = "firmware"; | ||
65 | reg = <0x00f00000 0x00100000>; | ||
66 | read-only; | ||
67 | }; | ||
68 | }; | ||
69 | |||
70 | epld@2,0 { | ||
71 | compatible = "wrs,epld-localbus"; | ||
72 | #address-cells = <2>; | ||
73 | #size-cells = <1>; | ||
74 | reg = <2 0 0x100000>; | ||
75 | ranges = <0 0 5 0 1 // User switches | ||
76 | 1 0 5 1 1 // Board ID/Rev | ||
77 | 3 0 5 3 1>; // LEDs | ||
78 | }; | ||
79 | }; | ||
80 | |||
81 | soc: soc@f8000000 { | ||
82 | ranges = <0x00000000 0xf8000000 0x00100000>; | ||
83 | |||
84 | enet0: ethernet@24000 { | ||
85 | tbi-handle = <&tbi0>; | ||
86 | phy-handle = <&phy0>; | ||
87 | phy-connection-type = "rgmii-id"; | ||
88 | }; | ||
89 | |||
90 | mdio@24520 { | ||
91 | phy0: ethernet-phy@1f { | ||
92 | reg = <0x1f>; | ||
93 | }; | ||
94 | phy1: ethernet-phy@0 { | ||
95 | reg = <0>; | ||
96 | }; | ||
97 | phy2: ethernet-phy@1 { | ||
98 | reg = <1>; | ||
99 | }; | ||
100 | phy3: ethernet-phy@2 { | ||
101 | reg = <2>; | ||
102 | }; | ||
103 | tbi0: tbi-phy@11 { | ||
104 | reg = <0x11>; | ||
105 | device_type = "tbi-phy"; | ||
106 | }; | ||
107 | }; | ||
108 | |||
109 | enet1: ethernet@25000 { | ||
110 | tbi-handle = <&tbi1>; | ||
111 | phy-handle = <&phy1>; | ||
112 | phy-connection-type = "rgmii-id"; | ||
113 | }; | ||
114 | |||
115 | mdio@25520 { | ||
116 | tbi1: tbi-phy@11 { | ||
117 | reg = <0x11>; | ||
118 | device_type = "tbi-phy"; | ||
119 | }; | ||
120 | }; | ||
121 | |||
122 | enet2: ethernet@26000 { | ||
123 | tbi-handle = <&tbi2>; | ||
124 | phy-handle = <&phy2>; | ||
125 | phy-connection-type = "rgmii-id"; | ||
126 | }; | ||
127 | |||
128 | mdio@26520 { | ||
129 | tbi2: tbi-phy@11 { | ||
130 | reg = <0x11>; | ||
131 | device_type = "tbi-phy"; | ||
132 | }; | ||
133 | }; | ||
134 | |||
135 | enet3: ethernet@27000 { | ||
136 | tbi-handle = <&tbi3>; | ||
137 | phy-handle = <&phy3>; | ||
138 | phy-connection-type = "rgmii-id"; | ||
139 | }; | ||
140 | |||
141 | mdio@27520 { | ||
142 | tbi3: tbi-phy@11 { | ||
143 | reg = <0x11>; | ||
144 | device_type = "tbi-phy"; | ||
145 | }; | ||
146 | }; | ||
147 | }; | ||
148 | |||
149 | pci0: pcie@f8008000 { | ||
150 | reg = <0xf8008000 0x1000>; | ||
151 | ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x20000000 | ||
152 | 0x01000000 0x0 0x00000000 0xe2000000 0x0 0x00100000>; | ||
153 | interrupt-map-mask = <0xff00 0 0 7>; | ||
154 | |||
155 | pcie@0 { | ||
156 | ranges = <0x02000000 0x0 0x80000000 | ||
157 | 0x02000000 0x0 0x80000000 | ||
158 | 0x0 0x20000000 | ||
159 | |||
160 | 0x01000000 0x0 0x00000000 | ||
161 | 0x01000000 0x0 0x00000000 | ||
162 | 0x0 0x00100000>; | ||
163 | }; | ||
164 | |||
165 | }; | ||
166 | |||
167 | pci1: pcie@f8009000 { | ||
168 | compatible = "fsl,mpc8641-pcie"; | ||
169 | device_type = "pci"; | ||
170 | #size-cells = <2>; | ||
171 | #address-cells = <3>; | ||
172 | reg = <0xf8009000 0x1000>; | ||
173 | bus-range = <0 0xff>; | ||
174 | ranges = <0x02000000 0x0 0xa0000000 0xa0000000 0x0 0x20000000 | ||
175 | 0x01000000 0x0 0x00000000 0xe3000000 0x0 0x00100000>; | ||
176 | clock-frequency = <100000000>; | ||
177 | interrupts = <25 2 0 0>; | ||
178 | interrupt-map-mask = <0xf800 0 0 7>; | ||
179 | interrupt-map = < | ||
180 | /* IDSEL 0x0 */ | ||
181 | 0x0000 0 0 1 &mpic 4 1 | ||
182 | 0x0000 0 0 2 &mpic 5 1 | ||
183 | 0x0000 0 0 3 &mpic 6 1 | ||
184 | 0x0000 0 0 4 &mpic 7 1 | ||
185 | >; | ||
186 | |||
187 | pcie@0 { | ||
188 | reg = <0 0 0 0 0>; | ||
189 | #size-cells = <2>; | ||
190 | #address-cells = <3>; | ||
191 | device_type = "pci"; | ||
192 | ranges = <0x02000000 0x0 0xa0000000 | ||
193 | 0x02000000 0x0 0xa0000000 | ||
194 | 0x0 0x20000000 | ||
195 | |||
196 | 0x01000000 0x0 0x00000000 | ||
197 | 0x01000000 0x0 0x00000000 | ||
198 | 0x0 0x00100000>; | ||
199 | }; | ||
200 | }; | ||
201 | }; | ||
202 | |||
203 | /include/ "mpc8641si-post.dtsi" | ||
diff --git a/arch/powerpc/boot/dts/fsl/t1023rdb.dts b/arch/powerpc/boot/dts/fsl/t1023rdb.dts index 6bd842beb1dc..29757623e5ba 100644 --- a/arch/powerpc/boot/dts/fsl/t1023rdb.dts +++ b/arch/powerpc/boot/dts/fsl/t1023rdb.dts | |||
@@ -79,7 +79,7 @@ | |||
79 | flash@0 { | 79 | flash@0 { |
80 | #address-cells = <1>; | 80 | #address-cells = <1>; |
81 | #size-cells = <1>; | 81 | #size-cells = <1>; |
82 | compatible = "spansion,s25fl512s"; | 82 | compatible = "spansion,s25fl512s", "jedec,spi-nor"; |
83 | reg = <0>; | 83 | reg = <0>; |
84 | spi-max-frequency = <10000000>; /* input clk */ | 84 | spi-max-frequency = <10000000>; /* input clk */ |
85 | }; | 85 | }; |
@@ -111,6 +111,47 @@ | |||
111 | shunt-resistor = <1000>; | 111 | shunt-resistor = <1000>; |
112 | }; | 112 | }; |
113 | }; | 113 | }; |
114 | |||
115 | fman@400000 { | ||
116 | fm1mac1: ethernet@e0000 { | ||
117 | phy-handle = <&sgmii_rtk_phy2>; | ||
118 | phy-connection-type = "sgmii"; | ||
119 | sleep = <&rcpm 0x80000000>; | ||
120 | }; | ||
121 | |||
122 | fm1mac2: ethernet@e2000 { | ||
123 | sleep = <&rcpm 0x40000000>; | ||
124 | }; | ||
125 | |||
126 | fm1mac3: ethernet@e4000 { | ||
127 | phy-handle = <&sgmii_aqr_phy3>; | ||
128 | phy-connection-type = "sgmii-2500"; | ||
129 | sleep = <&rcpm 0x20000000>; | ||
130 | }; | ||
131 | |||
132 | fm1mac4: ethernet@e6000 { | ||
133 | phy-handle = <&rgmii_rtk_phy1>; | ||
134 | phy-connection-type = "rgmii"; | ||
135 | sleep = <&rcpm 0x10000000>; | ||
136 | }; | ||
137 | |||
138 | |||
139 | mdio0: mdio@fc000 { | ||
140 | rgmii_rtk_phy1: ethernet-phy@1 { | ||
141 | reg = <0x1>; | ||
142 | }; | ||
143 | sgmii_rtk_phy2: ethernet-phy@3 { | ||
144 | reg = <0x3>; | ||
145 | }; | ||
146 | }; | ||
147 | |||
148 | xmdio0: mdio@fd000 { | ||
149 | sgmii_aqr_phy3: ethernet-phy@2 { | ||
150 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
151 | reg = <0x2>; | ||
152 | }; | ||
153 | }; | ||
154 | }; | ||
114 | }; | 155 | }; |
115 | 156 | ||
116 | pci0: pcie@ffe240000 { | 157 | pci0: pcie@ffe240000 { |
diff --git a/arch/powerpc/boot/dts/fsl/t1024qds.dts b/arch/powerpc/boot/dts/fsl/t1024qds.dts index 6a3581b8e1f8..772143da367f 100644 --- a/arch/powerpc/boot/dts/fsl/t1024qds.dts +++ b/arch/powerpc/boot/dts/fsl/t1024qds.dts | |||
@@ -87,7 +87,7 @@ | |||
87 | flash@0 { | 87 | flash@0 { |
88 | #address-cells = <1>; | 88 | #address-cells = <1>; |
89 | #size-cells = <1>; | 89 | #size-cells = <1>; |
90 | compatible = "micron,n25q128a11"; /* 16MB */ | 90 | compatible = "micron,n25q128a11", "jedec,spi-nor"; /* 16MB */ |
91 | reg = <0>; | 91 | reg = <0>; |
92 | spi-max-frequency = <10000000>; | 92 | spi-max-frequency = <10000000>; |
93 | }; | 93 | }; |
@@ -95,7 +95,7 @@ | |||
95 | flash@1 { | 95 | flash@1 { |
96 | #address-cells = <1>; | 96 | #address-cells = <1>; |
97 | #size-cells = <1>; | 97 | #size-cells = <1>; |
98 | compatible = "sst,sst25wf040"; /* 512KB */ | 98 | compatible = "sst,sst25wf040", "jedec,spi-nor"; /* 512KB */ |
99 | reg = <1>; | 99 | reg = <1>; |
100 | spi-max-frequency = <10000000>; | 100 | spi-max-frequency = <10000000>; |
101 | }; | 101 | }; |
@@ -103,7 +103,7 @@ | |||
103 | flash@2 { | 103 | flash@2 { |
104 | #address-cells = <1>; | 104 | #address-cells = <1>; |
105 | #size-cells = <1>; | 105 | #size-cells = <1>; |
106 | compatible = "eon,en25s64"; /* 8MB */ | 106 | compatible = "eon,en25s64", "jedec,spi-nor"; /* 8MB */ |
107 | reg = <2>; | 107 | reg = <2>; |
108 | spi-max-frequency = <10000000>; | 108 | spi-max-frequency = <10000000>; |
109 | }; | 109 | }; |
diff --git a/arch/powerpc/boot/dts/fsl/t1024rdb.dts b/arch/powerpc/boot/dts/fsl/t1024rdb.dts index 0ccc7d03335e..302cdd22b4bb 100644 --- a/arch/powerpc/boot/dts/fsl/t1024rdb.dts +++ b/arch/powerpc/boot/dts/fsl/t1024rdb.dts | |||
@@ -89,7 +89,7 @@ | |||
89 | flash@0 { | 89 | flash@0 { |
90 | #address-cells = <1>; | 90 | #address-cells = <1>; |
91 | #size-cells = <1>; | 91 | #size-cells = <1>; |
92 | compatible = "micron,n25q512ax3"; | 92 | compatible = "micron,n25q512ax3", "jedec,spi-nor"; |
93 | reg = <0>; | 93 | reg = <0>; |
94 | spi-max-frequency = <10000000>; /* input clk */ | 94 | spi-max-frequency = <10000000>; /* input clk */ |
95 | }; | 95 | }; |
@@ -140,6 +140,51 @@ | |||
140 | #size-cells = <0>; | 140 | #size-cells = <0>; |
141 | }; | 141 | }; |
142 | }; | 142 | }; |
143 | |||
144 | fman@400000 { | ||
145 | fm1mac1: ethernet@e0000 { | ||
146 | phy-handle = <&xg_aqr105_phy3>; | ||
147 | phy-connection-type = "xgmii"; | ||
148 | sleep = <&rcpm 0x80000000>; | ||
149 | }; | ||
150 | |||
151 | fm1mac2: ethernet@e2000 { | ||
152 | sleep = <&rcpm 0x40000000>; | ||
153 | }; | ||
154 | |||
155 | fm1mac3: ethernet@e4000 { | ||
156 | phy-handle = <&rgmii_phy2>; | ||
157 | phy-connection-type = "rgmii"; | ||
158 | sleep = <&rcpm 0x20000000>; | ||
159 | }; | ||
160 | |||
161 | fm1mac4: ethernet@e6000 { | ||
162 | phy-handle = <&rgmii_phy1>; | ||
163 | phy-connection-type = "rgmii"; | ||
164 | sleep = <&rcpm 0x10000000>; | ||
165 | }; | ||
166 | |||
167 | |||
168 | mdio0: mdio@fc000 { | ||
169 | rgmii_phy1: ethernet-phy@2 { | ||
170 | reg = <0x2>; | ||
171 | }; | ||
172 | rgmii_phy2: ethernet-phy@6 { | ||
173 | reg = <0x6>; | ||
174 | }; | ||
175 | }; | ||
176 | |||
177 | xmdio0: mdio@fd000 { | ||
178 | xg_aqr105_phy3: ethernet-phy@1 { | ||
179 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
180 | reg = <0x1>; | ||
181 | }; | ||
182 | sg_2500_aqr105_phy4: ethernet-phy@2 { | ||
183 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
184 | reg = <0x2>; | ||
185 | }; | ||
186 | }; | ||
187 | }; | ||
143 | }; | 188 | }; |
144 | 189 | ||
145 | pci0: pcie@ffe240000 { | 190 | pci0: pcie@ffe240000 { |
diff --git a/arch/powerpc/boot/dts/fsl/t1040rdb.dts b/arch/powerpc/boot/dts/fsl/t1040rdb.dts index cf194154bbdc..621f2c6ee6ad 100644 --- a/arch/powerpc/boot/dts/fsl/t1040rdb.dts +++ b/arch/powerpc/boot/dts/fsl/t1040rdb.dts | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * T1040RDB Device Tree Source | 2 | * T1040RDB Device Tree Source |
3 | * | 3 | * |
4 | * Copyright 2014 Freescale Semiconductor Inc. | 4 | * Copyright 2014 - 2015 Freescale Semiconductor Inc. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
@@ -38,6 +38,36 @@ | |||
38 | / { | 38 | / { |
39 | model = "fsl,T1040RDB"; | 39 | model = "fsl,T1040RDB"; |
40 | compatible = "fsl,T1040RDB"; | 40 | compatible = "fsl,T1040RDB"; |
41 | |||
42 | aliases { | ||
43 | phy_sgmii_2 = &phy_sgmii_2; | ||
44 | }; | ||
45 | |||
46 | soc@ffe000000 { | ||
47 | fman@400000 { | ||
48 | ethernet@e0000 { | ||
49 | fixed-link = <0 1 1000 0 0>; | ||
50 | phy-connection-type = "sgmii"; | ||
51 | }; | ||
52 | |||
53 | ethernet@e2000 { | ||
54 | fixed-link = <1 1 1000 0 0>; | ||
55 | phy-connection-type = "sgmii"; | ||
56 | }; | ||
57 | |||
58 | ethernet@e4000 { | ||
59 | phy-handle = <&phy_sgmii_2>; | ||
60 | phy-connection-type = "sgmii"; | ||
61 | }; | ||
62 | |||
63 | mdio@fc000 { | ||
64 | phy_sgmii_2: ethernet-phy@03 { | ||
65 | reg = <0x03>; | ||
66 | }; | ||
67 | }; | ||
68 | }; | ||
69 | }; | ||
70 | |||
41 | ifc: localbus@ffe124000 { | 71 | ifc: localbus@ffe124000 { |
42 | cpld@3,0 { | 72 | cpld@3,0 { |
43 | compatible = "fsl,t1040rdb-cpld"; | 73 | compatible = "fsl,t1040rdb-cpld"; |
diff --git a/arch/powerpc/boot/dts/fsl/t1042rdb.dts b/arch/powerpc/boot/dts/fsl/t1042rdb.dts index 8d908e795e4d..2c138627b1b4 100644 --- a/arch/powerpc/boot/dts/fsl/t1042rdb.dts +++ b/arch/powerpc/boot/dts/fsl/t1042rdb.dts | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * T1042RDB Device Tree Source | 2 | * T1042RDB Device Tree Source |
3 | * | 3 | * |
4 | * Copyright 2014 Freescale Semiconductor Inc. | 4 | * Copyright 2014 - 2015 Freescale Semiconductor Inc. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
@@ -38,6 +38,34 @@ | |||
38 | / { | 38 | / { |
39 | model = "fsl,T1042RDB"; | 39 | model = "fsl,T1042RDB"; |
40 | compatible = "fsl,T1042RDB"; | 40 | compatible = "fsl,T1042RDB"; |
41 | |||
42 | aliases { | ||
43 | phy_sgmii_2 = &phy_sgmii_2; | ||
44 | }; | ||
45 | |||
46 | soc@ffe000000 { | ||
47 | fman@400000 { | ||
48 | ethernet@e0000 { | ||
49 | status = "disabled"; | ||
50 | }; | ||
51 | |||
52 | ethernet@e2000 { | ||
53 | status = "disabled"; | ||
54 | }; | ||
55 | |||
56 | ethernet@e4000 { | ||
57 | phy-handle = <&phy_sgmii_2>; | ||
58 | phy-connection-type = "sgmii"; | ||
59 | }; | ||
60 | |||
61 | mdio@fc000 { | ||
62 | phy_sgmii_2: ethernet-phy@03 { | ||
63 | reg = <0x03>; | ||
64 | }; | ||
65 | }; | ||
66 | }; | ||
67 | }; | ||
68 | |||
41 | ifc: localbus@ffe124000 { | 69 | ifc: localbus@ffe124000 { |
42 | cpld@3,0 { | 70 | cpld@3,0 { |
43 | compatible = "fsl,t1042rdb-cpld"; | 71 | compatible = "fsl,t1042rdb-cpld"; |
diff --git a/arch/powerpc/boot/dts/fsl/t1042rdb_pi.dts b/arch/powerpc/boot/dts/fsl/t1042rdb_pi.dts index 98c001019d6a..8ec3ff45e6fc 100644 --- a/arch/powerpc/boot/dts/fsl/t1042rdb_pi.dts +++ b/arch/powerpc/boot/dts/fsl/t1042rdb_pi.dts | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * T1042RDB_PI Device Tree Source | 2 | * T1042RDB_PI Device Tree Source |
3 | * | 3 | * |
4 | * Copyright 2014 Freescale Semiconductor Inc. | 4 | * Copyright 2014 - 2015 Freescale Semiconductor Inc. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
@@ -38,11 +38,13 @@ | |||
38 | / { | 38 | / { |
39 | model = "fsl,T1042RDB_PI"; | 39 | model = "fsl,T1042RDB_PI"; |
40 | compatible = "fsl,T1042RDB_PI"; | 40 | compatible = "fsl,T1042RDB_PI"; |
41 | |||
41 | ifc: localbus@ffe124000 { | 42 | ifc: localbus@ffe124000 { |
42 | cpld@3,0 { | 43 | cpld@3,0 { |
43 | compatible = "fsl,t1042rdb_pi-cpld"; | 44 | compatible = "fsl,t1042rdb_pi-cpld"; |
44 | }; | 45 | }; |
45 | }; | 46 | }; |
47 | |||
46 | soc: soc@ffe000000 { | 48 | soc: soc@ffe000000 { |
47 | i2c@118000 { | 49 | i2c@118000 { |
48 | rtc@68 { | 50 | rtc@68 { |
@@ -51,6 +53,20 @@ | |||
51 | interrupts = <0x2 0x1 0 0>; | 53 | interrupts = <0x2 0x1 0 0>; |
52 | }; | 54 | }; |
53 | }; | 55 | }; |
56 | |||
57 | fman@400000 { | ||
58 | ethernet@e0000 { | ||
59 | status = "disabled"; | ||
60 | }; | ||
61 | |||
62 | ethernet@e2000 { | ||
63 | status = "disabled"; | ||
64 | }; | ||
65 | |||
66 | ethernet@e4000 { | ||
67 | status = "disabled"; | ||
68 | }; | ||
69 | }; | ||
54 | }; | 70 | }; |
55 | }; | 71 | }; |
56 | 72 | ||
diff --git a/arch/powerpc/boot/dts/fsl/t104xd4rdb.dtsi b/arch/powerpc/boot/dts/fsl/t104xd4rdb.dtsi index 3f6d7c6a106b..8c7ea6c05de9 100644 --- a/arch/powerpc/boot/dts/fsl/t104xd4rdb.dtsi +++ b/arch/powerpc/boot/dts/fsl/t104xd4rdb.dtsi | |||
@@ -104,7 +104,7 @@ | |||
104 | flash@0 { | 104 | flash@0 { |
105 | #address-cells = <1>; | 105 | #address-cells = <1>; |
106 | #size-cells = <1>; | 106 | #size-cells = <1>; |
107 | compatible = "micron,n25q512ax3"; | 107 | compatible = "micron,n25q512ax3", "jedec,spi-nor"; |
108 | reg = <0>; | 108 | reg = <0>; |
109 | /* input clock */ | 109 | /* input clock */ |
110 | spi-max-frequency = <10000000>; | 110 | spi-max-frequency = <10000000>; |
diff --git a/arch/powerpc/boot/dts/fsl/t104xqds.dtsi b/arch/powerpc/boot/dts/fsl/t104xqds.dtsi index 1498d1e4aecf..977af355b388 100644 --- a/arch/powerpc/boot/dts/fsl/t104xqds.dtsi +++ b/arch/powerpc/boot/dts/fsl/t104xqds.dtsi | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * T104xQDS Device Tree Source | 2 | * T104xQDS Device Tree Source |
3 | * | 3 | * |
4 | * Copyright 2013 - 2014 Freescale Semiconductor Inc. | 4 | * Copyright 2013 - 2015 Freescale Semiconductor Inc. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
@@ -38,6 +38,33 @@ | |||
38 | #size-cells = <2>; | 38 | #size-cells = <2>; |
39 | interrupt-parent = <&mpic>; | 39 | interrupt-parent = <&mpic>; |
40 | 40 | ||
41 | aliases { | ||
42 | emi1_rgmii0 = &t1040mdio0; | ||
43 | emi1_rgmii1 = &t1040mdio1; | ||
44 | emi1_slot3 = &t1040mdio3; | ||
45 | emi1_slot5 = &t1040mdio5; | ||
46 | emi1_slot6 = &t1040mdio6; | ||
47 | emi1_slot7 = &t1040mdio7; | ||
48 | rgmii_phy1 = &rgmii_phy1; | ||
49 | rgmii_phy2 = &rgmii_phy2; | ||
50 | phy_s3_01 = &phy_s3_01; | ||
51 | phy_s3_02 = &phy_s3_02; | ||
52 | phy_s3_03 = &phy_s3_03; | ||
53 | phy_s3_04 = &phy_s3_04; | ||
54 | phy_s5_01 = &phy_s5_01; | ||
55 | phy_s5_02 = &phy_s5_02; | ||
56 | phy_s5_03 = &phy_s5_03; | ||
57 | phy_s5_04 = &phy_s5_04; | ||
58 | phy_s6_01 = &phy_s6_01; | ||
59 | phy_s6_02 = &phy_s6_02; | ||
60 | phy_s6_03 = &phy_s6_03; | ||
61 | phy_s6_04 = &phy_s6_04; | ||
62 | phy_s7_01 = &phy_s7_01; | ||
63 | phy_s7_02 = &phy_s7_02; | ||
64 | phy_s7_03 = &phy_s7_03; | ||
65 | phy_s7_04 = &phy_s7_04; | ||
66 | }; | ||
67 | |||
41 | reserved-memory { | 68 | reserved-memory { |
42 | #address-cells = <2>; | 69 | #address-cells = <2>; |
43 | #size-cells = <2>; | 70 | #size-cells = <2>; |
@@ -85,6 +112,128 @@ | |||
85 | #size-cells = <1>; | 112 | #size-cells = <1>; |
86 | compatible = "fsl,fpga-qixis"; | 113 | compatible = "fsl,fpga-qixis"; |
87 | reg = <3 0 0x300>; | 114 | reg = <3 0 0x300>; |
115 | ranges = <0 3 0 0x300>; | ||
116 | |||
117 | mdio-mux-emi1 { | ||
118 | #address-cells = <1>; | ||
119 | #size-cells = <0>; | ||
120 | compatible = "mdio-mux-mmioreg", "mdio-mux"; | ||
121 | mdio-parent-bus = <&mdio0>; | ||
122 | reg = <0x54 1>; | ||
123 | mux-mask = <0xe0>; | ||
124 | |||
125 | t1040mdio0: mdio@0 { | ||
126 | #address-cells = <1>; | ||
127 | #size-cells = <0>; | ||
128 | reg = <0x00>; | ||
129 | status = "disabled"; | ||
130 | |||
131 | rgmii_phy1: ethernet-phy@1 { | ||
132 | reg = <0x1>; | ||
133 | }; | ||
134 | }; | ||
135 | |||
136 | t1040mdio1: mdio@20 { | ||
137 | #address-cells = <1>; | ||
138 | #size-cells = <0>; | ||
139 | reg = <0x20>; | ||
140 | status = "disabled"; | ||
141 | |||
142 | rgmii_phy2: ethernet-phy@2 { | ||
143 | reg = <0x2>; | ||
144 | }; | ||
145 | }; | ||
146 | |||
147 | t1040mdio3: mdio@60 { | ||
148 | #address-cells = <1>; | ||
149 | #size-cells = <0>; | ||
150 | reg = <0x60>; | ||
151 | status = "disabled"; | ||
152 | |||
153 | phy_s3_01: ethernet-phy@1c { | ||
154 | reg = <0x1c>; | ||
155 | }; | ||
156 | |||
157 | phy_s3_02: ethernet-phy@1d { | ||
158 | reg = <0x1d>; | ||
159 | }; | ||
160 | |||
161 | phy_s3_03: ethernet-phy@1e { | ||
162 | reg = <0x1e>; | ||
163 | }; | ||
164 | |||
165 | phy_s3_04: ethernet-phy@1f { | ||
166 | reg = <0x1f>; | ||
167 | }; | ||
168 | }; | ||
169 | |||
170 | t1040mdio5: mdio@a0 { | ||
171 | #address-cells = <1>; | ||
172 | #size-cells = <0>; | ||
173 | reg = <0xa0>; | ||
174 | |||
175 | phy_s5_01: ethernet-phy@1c { | ||
176 | reg = <0x14>; | ||
177 | }; | ||
178 | |||
179 | phy_s5_02: ethernet-phy@1d { | ||
180 | reg = <0x15>; | ||
181 | }; | ||
182 | |||
183 | phy_s5_03: ethernet-phy@1e { | ||
184 | reg = <0x16>; | ||
185 | }; | ||
186 | |||
187 | phy_s5_04: ethernet-phy@1f { | ||
188 | reg = <0x17>; | ||
189 | }; | ||
190 | }; | ||
191 | |||
192 | t1040mdio6: mdio@c0 { | ||
193 | #address-cells = <1>; | ||
194 | #size-cells = <0>; | ||
195 | reg = <0xc0>; | ||
196 | |||
197 | phy_s6_01: ethernet-phy@1c { | ||
198 | reg = <0x18>; | ||
199 | }; | ||
200 | |||
201 | phy_s6_02: ethernet-phy@1d { | ||
202 | reg = <0x19>; | ||
203 | }; | ||
204 | |||
205 | phy_s6_03: ethernet-phy@1e { | ||
206 | reg = <0x1a>; | ||
207 | }; | ||
208 | |||
209 | phy_s6_04: ethernet-phy@1f { | ||
210 | reg = <0x1b>; | ||
211 | }; | ||
212 | }; | ||
213 | |||
214 | t1040mdio7: mdio@e0 { | ||
215 | #address-cells = <1>; | ||
216 | #size-cells = <0>; | ||
217 | reg = <0xe0>; | ||
218 | status = "disabled"; | ||
219 | |||
220 | phy_s7_01: ethernet-phy@1c { | ||
221 | reg = <0x1c>; | ||
222 | }; | ||
223 | |||
224 | phy_s7_02: ethernet-phy@1d { | ||
225 | reg = <0x1d>; | ||
226 | }; | ||
227 | |||
228 | phy_s7_03: ethernet-phy@1e { | ||
229 | reg = <0x1e>; | ||
230 | }; | ||
231 | |||
232 | phy_s7_04: ethernet-phy@1f { | ||
233 | reg = <0x1f>; | ||
234 | }; | ||
235 | }; | ||
236 | }; | ||
88 | }; | 237 | }; |
89 | }; | 238 | }; |
90 | 239 | ||
@@ -112,7 +261,7 @@ | |||
112 | flash@0 { | 261 | flash@0 { |
113 | #address-cells = <1>; | 262 | #address-cells = <1>; |
114 | #size-cells = <1>; | 263 | #size-cells = <1>; |
115 | compatible = "micron,n25q128a11"; | 264 | compatible = "micron,n25q128a11", "jedec,spi-nor"; |
116 | reg = <0>; | 265 | reg = <0>; |
117 | spi-max-frequency = <10000000>; /* input clock */ | 266 | spi-max-frequency = <10000000>; /* input clock */ |
118 | }; | 267 | }; |
@@ -129,6 +278,33 @@ | |||
129 | interrupts = <0x1 0x1 0 0>; | 278 | interrupts = <0x1 0x1 0 0>; |
130 | }; | 279 | }; |
131 | }; | 280 | }; |
281 | |||
282 | fman@400000 { | ||
283 | ethernet@e0000 { | ||
284 | fixed-link = <0 1 1000 0 0>; | ||
285 | phy-connection-type = "sgmii"; | ||
286 | }; | ||
287 | |||
288 | ethernet@e2000 { | ||
289 | fixed-link = <1 1 1000 0 0>; | ||
290 | phy-connection-type = "sgmii"; | ||
291 | }; | ||
292 | |||
293 | ethernet@e4000 { | ||
294 | phy-handle = <&phy_s7_03>; | ||
295 | phy-connection-type = "sgmii"; | ||
296 | }; | ||
297 | |||
298 | ethernet@e6000 { | ||
299 | phy-handle = <&rgmii_phy1>; | ||
300 | phy-connection-type = "rgmii"; | ||
301 | }; | ||
302 | |||
303 | ethernet@e8000 { | ||
304 | phy-handle = <&rgmii_phy2>; | ||
305 | phy-connection-type = "rgmii"; | ||
306 | }; | ||
307 | }; | ||
132 | }; | 308 | }; |
133 | 309 | ||
134 | pci0: pcie@ffe240000 { | 310 | pci0: pcie@ffe240000 { |
diff --git a/arch/powerpc/boot/dts/fsl/t104xrdb.dtsi b/arch/powerpc/boot/dts/fsl/t104xrdb.dtsi index 830ea484295b..72691ef102ee 100644 --- a/arch/powerpc/boot/dts/fsl/t104xrdb.dtsi +++ b/arch/powerpc/boot/dts/fsl/t104xrdb.dtsi | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * T1040RDB/T1042RDB Device Tree Source | 2 | * T1040RDB/T1042RDB Device Tree Source |
3 | * | 3 | * |
4 | * Copyright 2014 Freescale Semiconductor Inc. | 4 | * Copyright 2014 - 2015 Freescale Semiconductor Inc. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
@@ -33,6 +33,12 @@ | |||
33 | */ | 33 | */ |
34 | 34 | ||
35 | / { | 35 | / { |
36 | aliases { | ||
37 | phy_rgmii_0 = &phy_rgmii_0; | ||
38 | phy_rgmii_1 = &phy_rgmii_1; | ||
39 | phy_sgmii_2 = &phy_sgmii_2; | ||
40 | }; | ||
41 | |||
36 | reserved-memory { | 42 | reserved-memory { |
37 | #address-cells = <2>; | 43 | #address-cells = <2>; |
38 | #size-cells = <2>; | 44 | #size-cells = <2>; |
@@ -103,10 +109,15 @@ | |||
103 | flash@0 { | 109 | flash@0 { |
104 | #address-cells = <1>; | 110 | #address-cells = <1>; |
105 | #size-cells = <1>; | 111 | #size-cells = <1>; |
106 | compatible = "micron,n25q512a"; | 112 | compatible = "micron,n25q512a", "jedec,spi-nor"; |
107 | reg = <0>; | 113 | reg = <0>; |
108 | spi-max-frequency = <10000000>; /* input clock */ | 114 | spi-max-frequency = <10000000>; /* input clock */ |
109 | }; | 115 | }; |
116 | slic@3 { | ||
117 | compatible = "maxim,ds26522"; | ||
118 | reg = <3>; | ||
119 | spi-max-frequency = <2000000>; /* input clock */ | ||
120 | }; | ||
110 | }; | 121 | }; |
111 | 122 | ||
112 | i2c@118000 { | 123 | i2c@118000 { |
@@ -125,6 +136,31 @@ | |||
125 | }; | 136 | }; |
126 | }; | 137 | }; |
127 | 138 | ||
139 | fman@400000 { | ||
140 | ethernet@e6000 { | ||
141 | phy-handle = <&phy_rgmii_0>; | ||
142 | phy-connection-type = "rgmii"; | ||
143 | }; | ||
144 | |||
145 | ethernet@e8000 { | ||
146 | phy-handle = <&phy_rgmii_1>; | ||
147 | phy-connection-type = "rgmii"; | ||
148 | }; | ||
149 | |||
150 | mdio0: mdio@fc000 { | ||
151 | phy_sgmii_2: ethernet-phy@03 { | ||
152 | reg = <0x03>; | ||
153 | }; | ||
154 | |||
155 | phy_rgmii_0: ethernet-phy@01 { | ||
156 | reg = <0x01>; | ||
157 | }; | ||
158 | |||
159 | phy_rgmii_1: ethernet-phy@02 { | ||
160 | reg = <0x02>; | ||
161 | }; | ||
162 | }; | ||
163 | }; | ||
128 | }; | 164 | }; |
129 | 165 | ||
130 | pci0: pcie@ffe240000 { | 166 | pci0: pcie@ffe240000 { |
diff --git a/arch/powerpc/boot/dts/fsl/t2080qds.dts b/arch/powerpc/boot/dts/fsl/t2080qds.dts index 9c8e10fe04cb..8d190e8c62ce 100644 --- a/arch/powerpc/boot/dts/fsl/t2080qds.dts +++ b/arch/powerpc/boot/dts/fsl/t2080qds.dts | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * T2080QDS Device Tree Source | 2 | * T2080QDS Device Tree Source |
3 | * | 3 | * |
4 | * Copyright 2013 Freescale Semiconductor Inc. | 4 | * Copyright 2013 - 2015 Freescale Semiconductor Inc. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
@@ -42,6 +42,12 @@ | |||
42 | #size-cells = <2>; | 42 | #size-cells = <2>; |
43 | interrupt-parent = <&mpic>; | 43 | interrupt-parent = <&mpic>; |
44 | 44 | ||
45 | aliases { | ||
46 | emi1_slot1 = &t2080mdio2; | ||
47 | emi1_slot2 = &t2080mdio3; | ||
48 | emi1_slot3 = &t2080mdio4; | ||
49 | }; | ||
50 | |||
45 | rio: rapidio@ffe0c0000 { | 51 | rio: rapidio@ffe0c0000 { |
46 | reg = <0xf 0xfe0c0000 0 0x11000>; | 52 | reg = <0xf 0xfe0c0000 0 0x11000>; |
47 | 53 | ||
@@ -54,4 +60,154 @@ | |||
54 | }; | 60 | }; |
55 | }; | 61 | }; |
56 | 62 | ||
63 | &soc { | ||
64 | fman@400000 { | ||
65 | ethernet@e0000 { | ||
66 | phy-handle = <&phy_sgmii_s3_1e>; | ||
67 | phy-connection-type = "xgmii"; | ||
68 | }; | ||
69 | |||
70 | ethernet@e2000 { | ||
71 | phy-handle = <&phy_sgmii_s3_1f>; | ||
72 | phy-connection-type = "xgmii"; | ||
73 | }; | ||
74 | |||
75 | ethernet@e4000 { | ||
76 | phy-handle = <&rgmii_phy1>; | ||
77 | phy-connection-type = "rgmii"; | ||
78 | }; | ||
79 | |||
80 | ethernet@e6000 { | ||
81 | phy-handle = <&rgmii_phy2>; | ||
82 | phy-connection-type = "rgmii"; | ||
83 | }; | ||
84 | |||
85 | ethernet@e8000 { | ||
86 | phy-handle = <&phy_sgmii_s2_1e>; | ||
87 | phy-connection-type = "sgmii"; | ||
88 | }; | ||
89 | |||
90 | ethernet@ea000 { | ||
91 | phy-handle = <&phy_sgmii_s2_1d>; | ||
92 | phy-connection-type = "sgmii"; | ||
93 | }; | ||
94 | |||
95 | ethernet@f0000 { | ||
96 | phy-handle = <&phy_xaui_slot3>; | ||
97 | phy-connection-type = "xgmii"; | ||
98 | }; | ||
99 | |||
100 | ethernet@f2000 { | ||
101 | phy-handle = <&phy_sgmii_s3_1f>; | ||
102 | phy-connection-type = "xgmii"; | ||
103 | }; | ||
104 | |||
105 | mdio@fd000 { | ||
106 | phy_xaui_slot3: ethernet-phy@3 { | ||
107 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
108 | reg = <0x3>; | ||
109 | }; | ||
110 | }; | ||
111 | }; | ||
112 | }; | ||
113 | |||
114 | &boardctrl { | ||
115 | mdio-mux-emi1 { | ||
116 | compatible = "mdio-mux-mmioreg", "mdio-mux"; | ||
117 | mdio-parent-bus = <&mdio0>; | ||
118 | #address-cells = <1>; | ||
119 | #size-cells = <0>; | ||
120 | reg = <0x54 1>; | ||
121 | mux-mask = <0xe0>; | ||
122 | |||
123 | t2080mdio0: mdio@0 { | ||
124 | #address-cells = <1>; | ||
125 | #size-cells = <0>; | ||
126 | reg = <0>; | ||
127 | |||
128 | rgmii_phy1: ethernet-phy@1 { | ||
129 | reg = <0x1>; | ||
130 | }; | ||
131 | }; | ||
132 | |||
133 | t2080mdio1: mdio@20 { | ||
134 | #address-cells = <1>; | ||
135 | #size-cells = <0>; | ||
136 | reg = <0x20>; | ||
137 | |||
138 | rgmii_phy2: ethernet-phy@2 { | ||
139 | reg = <0x2>; | ||
140 | }; | ||
141 | }; | ||
142 | |||
143 | t2080mdio2: mdio@40 { | ||
144 | #address-cells = <1>; | ||
145 | #size-cells = <0>; | ||
146 | reg = <0x40>; | ||
147 | status = "disabled"; | ||
148 | |||
149 | phy_sgmii_s1_1c: ethernet-phy@1c { | ||
150 | reg = <0x1c>; | ||
151 | }; | ||
152 | |||
153 | phy_sgmii_s1_1d: ethernet-phy@1d { | ||
154 | reg = <0x1d>; | ||
155 | }; | ||
156 | |||
157 | phy_sgmii_s1_1e: ethernet-phy@1e { | ||
158 | reg = <0x1e>; | ||
159 | }; | ||
160 | |||
161 | phy_sgmii_s1_1f: ethernet-phy@1f { | ||
162 | reg = <0x1f>; | ||
163 | }; | ||
164 | }; | ||
165 | |||
166 | t2080mdio3: mdio@c0 { | ||
167 | #address-cells = <1>; | ||
168 | #size-cells = <0>; | ||
169 | reg = <0xc0>; | ||
170 | |||
171 | phy_sgmii_s2_1c: ethernet-phy@1c { | ||
172 | reg = <0x1c>; | ||
173 | }; | ||
174 | |||
175 | phy_sgmii_s2_1d: ethernet-phy@1d { | ||
176 | reg = <0x1d>; | ||
177 | }; | ||
178 | |||
179 | phy_sgmii_s2_1e: ethernet-phy@1e { | ||
180 | reg = <0x1e>; | ||
181 | }; | ||
182 | |||
183 | phy_sgmii_s2_1f: ethernet-phy@1f { | ||
184 | reg = <0x1f>; | ||
185 | }; | ||
186 | }; | ||
187 | |||
188 | t2080mdio4: mdio@60 { | ||
189 | #address-cells = <1>; | ||
190 | #size-cells = <0>; | ||
191 | reg = <0x60>; | ||
192 | status = "disabled"; | ||
193 | |||
194 | phy_sgmii_s3_1c: ethernet-phy@1c { | ||
195 | reg = <0x1c>; | ||
196 | }; | ||
197 | |||
198 | phy_sgmii_s3_1d: ethernet-phy@1d { | ||
199 | reg = <0x1d>; | ||
200 | }; | ||
201 | |||
202 | phy_sgmii_s3_1e: ethernet-phy@1e { | ||
203 | reg = <0x1e>; | ||
204 | }; | ||
205 | |||
206 | phy_sgmii_s3_1f: ethernet-phy@1f { | ||
207 | reg = <0x1f>; | ||
208 | }; | ||
209 | }; | ||
210 | }; | ||
211 | }; | ||
212 | |||
57 | /include/ "t2080si-post.dtsi" | 213 | /include/ "t2080si-post.dtsi" |
diff --git a/arch/powerpc/boot/dts/fsl/t2080rdb.dts b/arch/powerpc/boot/dts/fsl/t2080rdb.dts index 33205bf08919..836e4c965b22 100644 --- a/arch/powerpc/boot/dts/fsl/t2080rdb.dts +++ b/arch/powerpc/boot/dts/fsl/t2080rdb.dts | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * T2080PCIe-RDB Board Device Tree Source | 2 | * T2080PCIe-RDB Board Device Tree Source |
3 | * | 3 | * |
4 | * Copyright 2014 Freescale Semiconductor Inc. | 4 | * Copyright 2014 - 2015 Freescale Semiconductor Inc. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
@@ -54,4 +54,69 @@ | |||
54 | }; | 54 | }; |
55 | }; | 55 | }; |
56 | 56 | ||
57 | &soc { | ||
58 | fman@400000 { | ||
59 | ethernet@e0000 { | ||
60 | phy-handle = <&xg_aq1202_phy3>; | ||
61 | phy-connection-type = "xgmii"; | ||
62 | }; | ||
63 | |||
64 | ethernet@e2000 { | ||
65 | phy-handle = <&xg_aq1202_phy4>; | ||
66 | phy-connection-type = "xgmii"; | ||
67 | }; | ||
68 | |||
69 | ethernet@e4000 { | ||
70 | phy-handle = <&rgmii_phy1>; | ||
71 | phy-connection-type = "rgmii"; | ||
72 | }; | ||
73 | |||
74 | ethernet@e6000 { | ||
75 | phy-handle = <&rgmii_phy2>; | ||
76 | phy-connection-type = "rgmii"; | ||
77 | }; | ||
78 | |||
79 | ethernet@f0000 { | ||
80 | phy-handle = <&xg_cs4315_phy1>; | ||
81 | phy-connection-type = "xgmii"; | ||
82 | }; | ||
83 | |||
84 | ethernet@f2000 { | ||
85 | phy-handle = <&xg_cs4315_phy2>; | ||
86 | phy-connection-type = "xgmii"; | ||
87 | }; | ||
88 | |||
89 | mdio@fc000 { | ||
90 | rgmii_phy1: ethernet-phy@1 { | ||
91 | reg = <0x1>; | ||
92 | }; | ||
93 | rgmii_phy2: ethernet-phy@2 { | ||
94 | reg = <0x2>; | ||
95 | }; | ||
96 | }; | ||
97 | |||
98 | mdio@fd000 { | ||
99 | xg_cs4315_phy1: ethernet-phy@c { | ||
100 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
101 | reg = <0xc>; | ||
102 | }; | ||
103 | |||
104 | xg_cs4315_phy2: ethernet-phy@d { | ||
105 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
106 | reg = <0xd>; | ||
107 | }; | ||
108 | |||
109 | xg_aq1202_phy3: ethernet-phy@0 { | ||
110 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
111 | reg = <0x0>; | ||
112 | }; | ||
113 | |||
114 | xg_aq1202_phy4: ethernet-phy@1 { | ||
115 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
116 | reg = <0x1>; | ||
117 | }; | ||
118 | }; | ||
119 | }; | ||
120 | }; | ||
121 | |||
57 | /include/ "t2080si-post.dtsi" | 122 | /include/ "t2080si-post.dtsi" |
diff --git a/arch/powerpc/boot/dts/fsl/t2081qds.dts b/arch/powerpc/boot/dts/fsl/t2081qds.dts index b81213596dbf..fc5c4a30f7ad 100644 --- a/arch/powerpc/boot/dts/fsl/t2081qds.dts +++ b/arch/powerpc/boot/dts/fsl/t2081qds.dts | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * T2081QDS Device Tree Source | 2 | * T2081QDS Device Tree Source |
3 | * | 3 | * |
4 | * Copyright 2013 Freescale Semiconductor Inc. | 4 | * Copyright 2013 - 2015 Freescale Semiconductor Inc. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
@@ -41,6 +41,225 @@ | |||
41 | #address-cells = <2>; | 41 | #address-cells = <2>; |
42 | #size-cells = <2>; | 42 | #size-cells = <2>; |
43 | interrupt-parent = <&mpic>; | 43 | interrupt-parent = <&mpic>; |
44 | |||
45 | aliases { | ||
46 | emi1_slot1 = &t2081mdio2; | ||
47 | emi1_slot2 = &t2081mdio3; | ||
48 | emi1_slot3 = &t2081mdio4; | ||
49 | emi1_slot5 = &t2081mdio5; | ||
50 | emi1_slot6 = &t2081mdio6; | ||
51 | emi1_slot7 = &t2081mdio7; | ||
52 | }; | ||
53 | }; | ||
54 | |||
55 | &soc { | ||
56 | fman@400000 { | ||
57 | ethernet@e0000 { | ||
58 | phy-handle = <&phy_sgmii_s7_1c>; | ||
59 | phy-connection-type = "sgmii"; | ||
60 | }; | ||
61 | |||
62 | ethernet@e2000 { | ||
63 | phy-handle = <&phy_sgmii_s7_1d>; | ||
64 | phy-connection-type = "sgmii"; | ||
65 | }; | ||
66 | |||
67 | ethernet@e4000 { | ||
68 | phy-handle = <&rgmii_phy1>; | ||
69 | phy-connection-type = "rgmii"; | ||
70 | }; | ||
71 | |||
72 | ethernet@e6000 { | ||
73 | phy-handle = <&rgmii_phy2>; | ||
74 | phy-connection-type = "rgmii"; | ||
75 | }; | ||
76 | |||
77 | ethernet@e8000 { | ||
78 | phy-handle = <&phy_sgmii_s3_1c>; | ||
79 | phy-connection-type = "sgmii"; | ||
80 | }; | ||
81 | |||
82 | ethernet@ea000 { | ||
83 | phy-handle = <&phy_sgmii_s7_1f>; | ||
84 | phy-connection-type = "sgmii"; | ||
85 | }; | ||
86 | |||
87 | ethernet@f0000 { | ||
88 | phy-handle = <&phy_sgmii_s2_1c>; | ||
89 | phy-connection-type = "xgmii"; | ||
90 | }; | ||
91 | |||
92 | ethernet@f2000 { | ||
93 | phy-handle = <&phy_sgmii_s7_1e>; | ||
94 | phy-connection-type = "xgmii"; | ||
95 | }; | ||
96 | }; | ||
97 | }; | ||
98 | |||
99 | &boardctrl { | ||
100 | mdio-mux-emi1 { | ||
101 | compatible = "mdio-mux-mmioreg", "mdio-mux"; | ||
102 | mdio-parent-bus = <&mdio0>; | ||
103 | #address-cells = <1>; | ||
104 | #size-cells = <0>; | ||
105 | reg = <0x54 1>; | ||
106 | mux-mask = <0xe0>; | ||
107 | |||
108 | t2081mdio0: mdio@0 { | ||
109 | #address-cells = <1>; | ||
110 | #size-cells = <0>; | ||
111 | reg = <0>; | ||
112 | |||
113 | rgmii_phy1: ethernet-phy@1 { | ||
114 | reg = <0x1>; | ||
115 | }; | ||
116 | }; | ||
117 | |||
118 | t2081mdio1: mdio@20 { | ||
119 | #address-cells = <1>; | ||
120 | #size-cells = <0>; | ||
121 | reg = <0x20>; | ||
122 | |||
123 | rgmii_phy2: ethernet-phy@2 { | ||
124 | reg = <0x2>; | ||
125 | }; | ||
126 | }; | ||
127 | |||
128 | t2081mdio2: mdio@40 { | ||
129 | #address-cells = <1>; | ||
130 | #size-cells = <0>; | ||
131 | reg = <0x40>; | ||
132 | |||
133 | phy_sgmii_s1_1c: ethernet-phy@1c { | ||
134 | reg = <0x1c>; | ||
135 | }; | ||
136 | |||
137 | phy_sgmii_s1_1d: ethernet-phy@1d { | ||
138 | reg = <0x1d>; | ||
139 | }; | ||
140 | |||
141 | phy_sgmii_s1_1e: ethernet-phy@1e { | ||
142 | reg = <0x1e>; | ||
143 | }; | ||
144 | |||
145 | phy_sgmii_s1_1f: ethernet-phy@1f { | ||
146 | reg = <0x1f>; | ||
147 | }; | ||
148 | }; | ||
149 | |||
150 | t2081mdio3: mdio@60 { | ||
151 | #address-cells = <1>; | ||
152 | #size-cells = <0>; | ||
153 | reg = <0x60>; | ||
154 | |||
155 | phy_sgmii_s2_1c: ethernet-phy@1c { | ||
156 | reg = <0x1c>; | ||
157 | }; | ||
158 | |||
159 | phy_sgmii_s2_1d: ethernet-phy@1d { | ||
160 | reg = <0x1d>; | ||
161 | }; | ||
162 | |||
163 | phy_sgmii_s2_1e: ethernet-phy@1e { | ||
164 | reg = <0x1e>; | ||
165 | }; | ||
166 | |||
167 | phy_sgmii_s2_1f: ethernet-phy@1f { | ||
168 | reg = <0x1f>; | ||
169 | }; | ||
170 | }; | ||
171 | |||
172 | t2081mdio4: mdio@80 { | ||
173 | #address-cells = <1>; | ||
174 | #size-cells = <0>; | ||
175 | reg = <0x80>; | ||
176 | status = "disabled"; | ||
177 | |||
178 | phy_sgmii_s3_1c: ethernet-phy@1c { | ||
179 | reg = <0x1c>; | ||
180 | }; | ||
181 | |||
182 | phy_sgmii_s3_1d: ethernet-phy@1d { | ||
183 | reg = <0x1d>; | ||
184 | }; | ||
185 | |||
186 | phy_sgmii_s3_1e: ethernet-phy@1e { | ||
187 | reg = <0x1e>; | ||
188 | }; | ||
189 | |||
190 | phy_sgmii_s3_1f: ethernet-phy@1f { | ||
191 | reg = <0x1f>; | ||
192 | }; | ||
193 | }; | ||
194 | |||
195 | t2081mdio5: mdio@a0 { | ||
196 | #address-cells = <1>; | ||
197 | #size-cells = <0>; | ||
198 | reg = <0xa0>; | ||
199 | status = "disabled"; | ||
200 | |||
201 | phy_sgmii_s5_1c: ethernet-phy@1c { | ||
202 | reg = <0x1c>; | ||
203 | }; | ||
204 | |||
205 | phy_sgmii_s5_1d: ethernet-phy@1d { | ||
206 | reg = <0x1d>; | ||
207 | }; | ||
208 | |||
209 | phy_sgmii_s5_1e: ethernet-phy@1e { | ||
210 | reg = <0x1e>; | ||
211 | }; | ||
212 | |||
213 | phy_sgmii_s5_1f: ethernet-phy@1f { | ||
214 | reg = <0x1f>; | ||
215 | }; | ||
216 | }; | ||
217 | |||
218 | t2081mdio6: mdio@c0 { | ||
219 | #address-cells = <1>; | ||
220 | #size-cells = <0>; | ||
221 | reg = <0xc0>; | ||
222 | status = "disabled"; | ||
223 | |||
224 | phy_sgmii_s6_1c: ethernet-phy@1c { | ||
225 | reg = <0x1c>; | ||
226 | }; | ||
227 | |||
228 | phy_sgmii_s6_1d: ethernet-phy@1d { | ||
229 | reg = <0x1d>; | ||
230 | }; | ||
231 | |||
232 | phy_sgmii_s6_1e: ethernet-phy@1e { | ||
233 | reg = <0x1e>; | ||
234 | }; | ||
235 | |||
236 | phy_sgmii_s6_1f: ethernet-phy@1f { | ||
237 | reg = <0x1f>; | ||
238 | }; | ||
239 | }; | ||
240 | |||
241 | t2081mdio7: mdio@e0 { | ||
242 | #address-cells = <1>; | ||
243 | #size-cells = <0>; | ||
244 | reg = <0xe0>; | ||
245 | |||
246 | phy_sgmii_s7_1c: ethernet-phy@1c { | ||
247 | reg = <0x1c>; | ||
248 | }; | ||
249 | |||
250 | phy_sgmii_s7_1d: ethernet-phy@1d { | ||
251 | reg = <0x1d>; | ||
252 | }; | ||
253 | |||
254 | phy_sgmii_s7_1e: ethernet-phy@1e { | ||
255 | reg = <0x1e>; | ||
256 | }; | ||
257 | |||
258 | phy_sgmii_s7_1f: ethernet-phy@1f { | ||
259 | reg = <0x1f>; | ||
260 | }; | ||
261 | }; | ||
262 | }; | ||
44 | }; | 263 | }; |
45 | 264 | ||
46 | /include/ "t2081si-post.dtsi" | 265 | /include/ "t2081si-post.dtsi" |
diff --git a/arch/powerpc/boot/dts/fsl/t208xqds.dtsi b/arch/powerpc/boot/dts/fsl/t208xqds.dtsi index 869f9159b4d1..ec080bd01b09 100644 --- a/arch/powerpc/boot/dts/fsl/t208xqds.dtsi +++ b/arch/powerpc/boot/dts/fsl/t208xqds.dtsi | |||
@@ -112,7 +112,7 @@ | |||
112 | flash@0 { | 112 | flash@0 { |
113 | #address-cells = <1>; | 113 | #address-cells = <1>; |
114 | #size-cells = <1>; | 114 | #size-cells = <1>; |
115 | compatible = "micron,n25q128a11"; /* 16MB */ | 115 | compatible = "micron,n25q128a11", "jedec,spi-nor"; /* 16MB */ |
116 | reg = <0>; | 116 | reg = <0>; |
117 | spi-max-frequency = <40000000>; /* input clock */ | 117 | spi-max-frequency = <40000000>; /* input clock */ |
118 | }; | 118 | }; |
@@ -120,7 +120,7 @@ | |||
120 | flash@1 { | 120 | flash@1 { |
121 | #address-cells = <1>; | 121 | #address-cells = <1>; |
122 | #size-cells = <1>; | 122 | #size-cells = <1>; |
123 | compatible = "sst,sst25wf040"; | 123 | compatible = "sst,sst25wf040", "jedec,spi-nor"; |
124 | reg = <1>; | 124 | reg = <1>; |
125 | spi-max-frequency = <35000000>; | 125 | spi-max-frequency = <35000000>; |
126 | }; | 126 | }; |
@@ -128,7 +128,7 @@ | |||
128 | flash@2 { | 128 | flash@2 { |
129 | #address-cells = <1>; | 129 | #address-cells = <1>; |
130 | #size-cells = <1>; | 130 | #size-cells = <1>; |
131 | compatible = "eon,en25s64"; | 131 | compatible = "eon,en25s64", "jedec,spi-nor"; |
132 | reg = <2>; | 132 | reg = <2>; |
133 | spi-max-frequency = <35000000>; | 133 | spi-max-frequency = <35000000>; |
134 | }; | 134 | }; |
diff --git a/arch/powerpc/boot/dts/fsl/t208xrdb.dtsi b/arch/powerpc/boot/dts/fsl/t208xrdb.dtsi index 693d2a8fa01c..dc9326875778 100644 --- a/arch/powerpc/boot/dts/fsl/t208xrdb.dtsi +++ b/arch/powerpc/boot/dts/fsl/t208xrdb.dtsi | |||
@@ -113,7 +113,7 @@ | |||
113 | flash@0 { | 113 | flash@0 { |
114 | #address-cells = <1>; | 114 | #address-cells = <1>; |
115 | #size-cells = <1>; | 115 | #size-cells = <1>; |
116 | compatible = "micron,n25q512a"; | 116 | compatible = "micron,n25q512a", "jedec,spi-nor"; |
117 | reg = <0>; | 117 | reg = <0>; |
118 | spi-max-frequency = <10000000>; /* input clock */ | 118 | spi-max-frequency = <10000000>; /* input clock */ |
119 | }; | 119 | }; |
diff --git a/arch/powerpc/boot/dts/fsl/t4240qds.dts b/arch/powerpc/boot/dts/fsl/t4240qds.dts index c067a6533809..9573ceada07c 100644 --- a/arch/powerpc/boot/dts/fsl/t4240qds.dts +++ b/arch/powerpc/boot/dts/fsl/t4240qds.dts | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * T4240QDS Device Tree Source | 2 | * T4240QDS Device Tree Source |
3 | * | 3 | * |
4 | * Copyright 2012 - 2014 Freescale Semiconductor Inc. | 4 | * Copyright 2012 - 2015 Freescale Semiconductor Inc. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
@@ -41,6 +41,44 @@ | |||
41 | #size-cells = <2>; | 41 | #size-cells = <2>; |
42 | interrupt-parent = <&mpic>; | 42 | interrupt-parent = <&mpic>; |
43 | 43 | ||
44 | aliases{ | ||
45 | phy_rgmii1 = &phyrgmii1; | ||
46 | phy_rgmii2 = &phyrgmii2; | ||
47 | phy_sgmii3 = &phy3; | ||
48 | phy_sgmii4 = &phy4; | ||
49 | phy_sgmii11 = &phy11; | ||
50 | phy_sgmii12 = &phy12; | ||
51 | sgmii_phy11 = &sgmiiphy11; | ||
52 | sgmii_phy12 = &sgmiiphy12; | ||
53 | sgmii_phy13 = &sgmiiphy13; | ||
54 | sgmii_phy14 = &sgmiiphy14; | ||
55 | sgmii_phy21 = &sgmiiphy21; | ||
56 | sgmii_phy22 = &sgmiiphy22; | ||
57 | sgmii_phy23 = &sgmiiphy23; | ||
58 | sgmii_phy24 = &sgmiiphy24; | ||
59 | sgmii_phy31 = &sgmiiphy31; | ||
60 | sgmii_phy32 = &sgmiiphy32; | ||
61 | sgmii_phy33 = &sgmiiphy33; | ||
62 | sgmii_phy34 = &sgmiiphy34; | ||
63 | sgmii_phy41 = &sgmiiphy41; | ||
64 | sgmii_phy42 = &sgmiiphy42; | ||
65 | sgmii_phy43 = &sgmiiphy43; | ||
66 | sgmii_phy44 = &sgmiiphy44; | ||
67 | phy_xfi1 = &xfiphy1; | ||
68 | phy_xfi2 = &xfiphy2; | ||
69 | phy_xfi3 = &xfiphy3; | ||
70 | phy_xfi4 = &xfiphy4; | ||
71 | xfi_pcs_mdio1 = &xfimdio0; | ||
72 | xfi_pcs_mdio2 = &xfimdio1; | ||
73 | xfi_pcs_mdio3 = &xfimdio2; | ||
74 | xfi_pcs_mdio4 = &xfimdio3; | ||
75 | emi1_rgmii = &t4240mdio0; | ||
76 | emi1_slot1 = &t4240mdio1; | ||
77 | emi1_slot2 = &t4240mdio2; | ||
78 | emi1_slot3 = &t4240mdio3; | ||
79 | emi1_slot4 = &t4240mdio4; | ||
80 | }; | ||
81 | |||
44 | ifc: localbus@ffe124000 { | 82 | ifc: localbus@ffe124000 { |
45 | reg = <0xf 0xfe124000 0 0x2000>; | 83 | reg = <0xf 0xfe124000 0 0x2000>; |
46 | ranges = <0 0 0xf 0xe8000000 0x08000000 | 84 | ranges = <0 0 0xf 0xe8000000 0x08000000 |
@@ -91,8 +129,190 @@ | |||
91 | }; | 129 | }; |
92 | 130 | ||
93 | board-control@3,0 { | 131 | board-control@3,0 { |
132 | #address-cells = <1>; | ||
133 | #size-cells = <1>; | ||
94 | compatible = "fsl,t4240qds-fpga", "fsl,fpga-qixis"; | 134 | compatible = "fsl,t4240qds-fpga", "fsl,fpga-qixis"; |
95 | reg = <3 0 0x300>; | 135 | reg = <3 0 0x300>; |
136 | ranges = <0 3 0 0x300>; | ||
137 | |||
138 | mdio-mux-emi1 { | ||
139 | #address-cells = <1>; | ||
140 | #size-cells = <0>; | ||
141 | compatible = "mdio-mux-mmioreg", "mdio-mux"; | ||
142 | mdio-parent-bus = <&mdio1>; | ||
143 | reg = <0x54 1>; | ||
144 | mux-mask = <0xe0>; | ||
145 | |||
146 | t4240mdio0: mdio@0 { | ||
147 | #address-cells = <1>; | ||
148 | #size-cells = <0>; | ||
149 | reg = <0>; | ||
150 | |||
151 | phyrgmii1: ethernet-phy@1 { | ||
152 | reg = <0x1>; | ||
153 | }; | ||
154 | |||
155 | phyrgmii2: ethernet-phy@2 { | ||
156 | reg = <0x2>; | ||
157 | }; | ||
158 | }; | ||
159 | |||
160 | t4240mdio1: mdio@20 { | ||
161 | #address-cells = <1>; | ||
162 | #size-cells = <0>; | ||
163 | reg = <0x20>; | ||
164 | status = "disabled"; | ||
165 | |||
166 | phy1: ethernet-phy@0 { | ||
167 | reg = <0x0>; | ||
168 | }; | ||
169 | |||
170 | phy2: ethernet-phy@1 { | ||
171 | reg = <0x1>; | ||
172 | }; | ||
173 | |||
174 | phy3: ethernet-phy@2 { | ||
175 | reg = <0x2>; | ||
176 | }; | ||
177 | |||
178 | phy4: ethernet-phy@3 { | ||
179 | reg = <0x3>; | ||
180 | }; | ||
181 | |||
182 | sgmiiphy11: ethernet-phy@1c { | ||
183 | reg = <0x1c>; | ||
184 | }; | ||
185 | |||
186 | sgmiiphy12: ethernet-phy@1d { | ||
187 | reg = <0x1d>; | ||
188 | }; | ||
189 | |||
190 | sgmiiphy13: ethernet-phy@1e { | ||
191 | reg = <0x1e>; | ||
192 | }; | ||
193 | |||
194 | sgmiiphy14: ethernet-phy@1f { | ||
195 | reg = <0x1f>; | ||
196 | }; | ||
197 | }; | ||
198 | |||
199 | t4240mdio2: mdio@40 { | ||
200 | #address-cells = <1>; | ||
201 | #size-cells = <0>; | ||
202 | reg = <0x40>; | ||
203 | status = "disabled"; | ||
204 | |||
205 | phy5: ethernet-phy@4 { | ||
206 | reg = <0x4>; | ||
207 | }; | ||
208 | |||
209 | phy6: ethernet-phy@5 { | ||
210 | reg = <0x5>; | ||
211 | }; | ||
212 | |||
213 | phy7: ethernet-phy@6 { | ||
214 | reg = <0x6>; | ||
215 | }; | ||
216 | |||
217 | phy8: ethernet-phy@7 { | ||
218 | reg = <0x7>; | ||
219 | }; | ||
220 | |||
221 | sgmiiphy21: ethernet-phy@1c { | ||
222 | reg = <0x1c>; | ||
223 | }; | ||
224 | |||
225 | sgmiiphy22: ethernet-phy@1d { | ||
226 | reg = <0x1d>; | ||
227 | }; | ||
228 | |||
229 | sgmiiphy23: ethernet-phy@1e { | ||
230 | reg = <0x1e>; | ||
231 | }; | ||
232 | |||
233 | sgmiiphy24: ethernet-phy@1f { | ||
234 | reg = <0x1f>; | ||
235 | }; | ||
236 | }; | ||
237 | |||
238 | t4240mdio3: mdio@60 { | ||
239 | #address-cells = <1>; | ||
240 | #size-cells = <0>; | ||
241 | reg = <0x60>; | ||
242 | status = "disabled"; | ||
243 | |||
244 | phy9: ethernet-phy@8 { | ||
245 | reg = <0x8>; | ||
246 | }; | ||
247 | |||
248 | phy10: ethernet-phy@9 { | ||
249 | reg = <0x9>; | ||
250 | }; | ||
251 | |||
252 | phy11: ethernet-phy@a { | ||
253 | reg = <0xa>; | ||
254 | }; | ||
255 | |||
256 | phy12: ethernet-phy@b { | ||
257 | reg = <0xb>; | ||
258 | }; | ||
259 | |||
260 | sgmiiphy31: ethernet-phy@1c { | ||
261 | reg = <0x1c>; | ||
262 | }; | ||
263 | |||
264 | sgmiiphy32: ethernet-phy@1d { | ||
265 | reg = <0x1d>; | ||
266 | }; | ||
267 | |||
268 | sgmiiphy33: ethernet-phy@1e { | ||
269 | reg = <0x1e>; | ||
270 | }; | ||
271 | |||
272 | sgmiiphy34: ethernet-phy@1f { | ||
273 | reg = <0x1f>; | ||
274 | }; | ||
275 | }; | ||
276 | |||
277 | t4240mdio4: mdio@80 { | ||
278 | #address-cells = <1>; | ||
279 | #size-cells = <0>; | ||
280 | reg = <0x80>; | ||
281 | status = "disabled"; | ||
282 | |||
283 | phy13: ethernet-phy@c { | ||
284 | reg = <0xc>; | ||
285 | }; | ||
286 | |||
287 | phy14: ethernet-phy@d { | ||
288 | reg = <0xd>; | ||
289 | }; | ||
290 | |||
291 | phy15: ethernet-phy@e { | ||
292 | reg = <0xe>; | ||
293 | }; | ||
294 | |||
295 | phy16: ethernet-phy@f { | ||
296 | reg = <0xf>; | ||
297 | }; | ||
298 | |||
299 | sgmiiphy41: ethernet-phy@1c { | ||
300 | reg = <0x1c>; | ||
301 | }; | ||
302 | |||
303 | sgmiiphy42: ethernet-phy@1d { | ||
304 | reg = <0x1d>; | ||
305 | }; | ||
306 | |||
307 | sgmiiphy43: ethernet-phy@1e { | ||
308 | reg = <0x1e>; | ||
309 | }; | ||
310 | |||
311 | sgmiiphy44: ethernet-phy@1f { | ||
312 | reg = <0x1f>; | ||
313 | }; | ||
314 | }; | ||
315 | }; | ||
96 | }; | 316 | }; |
97 | }; | 317 | }; |
98 | 318 | ||
@@ -138,7 +358,7 @@ | |||
138 | flash@0 { | 358 | flash@0 { |
139 | #address-cells = <1>; | 359 | #address-cells = <1>; |
140 | #size-cells = <1>; | 360 | #size-cells = <1>; |
141 | compatible = "sst,sst25wf040"; | 361 | compatible = "sst,sst25wf040", "jedec,spi-nor"; |
142 | reg = <0>; | 362 | reg = <0>; |
143 | spi-max-frequency = <40000000>; /* input clock */ | 363 | spi-max-frequency = <40000000>; /* input clock */ |
144 | }; | 364 | }; |
@@ -234,6 +454,184 @@ | |||
234 | sdhc@114000 { | 454 | sdhc@114000 { |
235 | voltage-ranges = <1800 1800 3300 3300>; | 455 | voltage-ranges = <1800 1800 3300 3300>; |
236 | }; | 456 | }; |
457 | |||
458 | fman@400000 { | ||
459 | port@83000 { | ||
460 | status = "disabled"; | ||
461 | }; | ||
462 | |||
463 | port@84000 { | ||
464 | status = "disabled"; | ||
465 | }; | ||
466 | |||
467 | port@85000 { | ||
468 | status = "disabled"; | ||
469 | }; | ||
470 | |||
471 | port@86000 { | ||
472 | status = "disabled"; | ||
473 | }; | ||
474 | |||
475 | port@87000 { | ||
476 | status = "disabled"; | ||
477 | }; | ||
478 | |||
479 | ethernet@e0000 { | ||
480 | phy-handle = <&phy5>; | ||
481 | phy-connection-type = "sgmii"; | ||
482 | }; | ||
483 | |||
484 | ethernet@e2000 { | ||
485 | phy-handle = <&phy6>; | ||
486 | phy-connection-type = "sgmii"; | ||
487 | }; | ||
488 | |||
489 | ethernet@e4000 { | ||
490 | phy-handle = <&phy7>; | ||
491 | phy-connection-type = "sgmii"; | ||
492 | }; | ||
493 | |||
494 | ethernet@e6000 { | ||
495 | phy-handle = <&phy8>; | ||
496 | phy-connection-type = "sgmii"; | ||
497 | }; | ||
498 | |||
499 | ethernet@e8000 { | ||
500 | phy-handle = <&phyrgmii2>; | ||
501 | phy-connection-type = "rgmii"; | ||
502 | }; | ||
503 | |||
504 | ethernet@ea000 { | ||
505 | phy-handle = <&phy2>; | ||
506 | phy-connection-type = "sgmii"; | ||
507 | }; | ||
508 | |||
509 | ethernet@f0000 { | ||
510 | phy-handle = <&xauiphy1>; | ||
511 | phy-connection-type = "xgmii"; | ||
512 | }; | ||
513 | |||
514 | ethernet@f2000 { | ||
515 | phy-handle = <&xauiphy2>; | ||
516 | phy-connection-type = "xgmii"; | ||
517 | }; | ||
518 | |||
519 | xfimdio0: mdio@f1000 { | ||
520 | status = "disabled"; | ||
521 | |||
522 | xfiphy1: ethernet-phy@0 { | ||
523 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
524 | reg = <0x0>; | ||
525 | }; | ||
526 | }; | ||
527 | |||
528 | xfimdio1: mdio@f3000 { | ||
529 | status = "disabled"; | ||
530 | |||
531 | xfiphy2: ethernet-phy@0 { | ||
532 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
533 | reg = <0x0>; | ||
534 | }; | ||
535 | }; | ||
536 | }; | ||
537 | |||
538 | fman@500000 { | ||
539 | port@84000 { | ||
540 | status = "disabled"; | ||
541 | }; | ||
542 | |||
543 | port@85000 { | ||
544 | status = "disabled"; | ||
545 | }; | ||
546 | |||
547 | port@86000 { | ||
548 | status = "disabled"; | ||
549 | }; | ||
550 | |||
551 | port@87000 { | ||
552 | status = "disabled"; | ||
553 | }; | ||
554 | |||
555 | ethernet@e0000 { | ||
556 | phy-handle = <&phy13>; | ||
557 | phy-connection-type = "sgmii"; | ||
558 | }; | ||
559 | |||
560 | ethernet@e2000 { | ||
561 | phy-handle = <&phy14>; | ||
562 | phy-connection-type = "sgmii"; | ||
563 | }; | ||
564 | |||
565 | ethernet@e4000 { | ||
566 | phy-handle = <&phy15>; | ||
567 | phy-connection-type = "sgmii"; | ||
568 | }; | ||
569 | |||
570 | ethernet@e6000 { | ||
571 | phy-handle = <&phy16>; | ||
572 | phy-connection-type = "sgmii"; | ||
573 | }; | ||
574 | |||
575 | ethernet@e8000 { | ||
576 | phy-handle = <&phyrgmii1>; | ||
577 | phy-connection-type = "rgmii"; | ||
578 | }; | ||
579 | |||
580 | ethernet@ea000 { | ||
581 | phy-handle = <&phy10>; | ||
582 | phy-connection-type = "sgmii"; | ||
583 | }; | ||
584 | |||
585 | ethernet@f0000 { | ||
586 | phy-handle = <&xauiphy3>; | ||
587 | phy-connection-type = "xgmii"; | ||
588 | }; | ||
589 | |||
590 | ethernet@f2000 { | ||
591 | phy-handle = <&xauiphy4>; | ||
592 | phy-connection-type = "xgmii"; | ||
593 | }; | ||
594 | |||
595 | xfimdio2: mdio@f1000 { | ||
596 | status = "disabled"; | ||
597 | |||
598 | xfiphy3: ethernet-phy@0 { | ||
599 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
600 | reg = <0x0>; | ||
601 | }; | ||
602 | }; | ||
603 | |||
604 | xfimdio3: mdio@f3000 { | ||
605 | status = "disabled"; | ||
606 | |||
607 | xfiphy4: ethernet-phy@0 { | ||
608 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
609 | reg = <0x0>; | ||
610 | }; | ||
611 | }; | ||
612 | |||
613 | mdio@fd000 { | ||
614 | xauiphy1: ethernet-phy@0 { | ||
615 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
616 | reg = <0x0>; | ||
617 | }; | ||
618 | |||
619 | xauiphy2: ethernet-phy@1 { | ||
620 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
621 | reg = <0x1>; | ||
622 | }; | ||
623 | |||
624 | xauiphy3: ethernet-phy@2 { | ||
625 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
626 | reg = <0x2>; | ||
627 | }; | ||
628 | |||
629 | xauiphy4: ethernet-phy@3 { | ||
630 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
631 | reg = <0x3>; | ||
632 | }; | ||
633 | }; | ||
634 | }; | ||
237 | }; | 635 | }; |
238 | 636 | ||
239 | pci0: pcie@ffe240000 { | 637 | pci0: pcie@ffe240000 { |
diff --git a/arch/powerpc/boot/dts/fsl/t4240rdb.dts b/arch/powerpc/boot/dts/fsl/t4240rdb.dts index 6e820a875621..cc0a264b8acb 100644 --- a/arch/powerpc/boot/dts/fsl/t4240rdb.dts +++ b/arch/powerpc/boot/dts/fsl/t4240rdb.dts | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * T4240RDB Device Tree Source | 2 | * T4240RDB Device Tree Source |
3 | * | 3 | * |
4 | * Copyright 2014 Freescale Semiconductor Inc. | 4 | * Copyright 2014 - 2015 Freescale Semiconductor Inc. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
@@ -41,6 +41,17 @@ | |||
41 | #size-cells = <2>; | 41 | #size-cells = <2>; |
42 | interrupt-parent = <&mpic>; | 42 | interrupt-parent = <&mpic>; |
43 | 43 | ||
44 | aliases { | ||
45 | sgmii_phy21 = &sgmiiphy21; | ||
46 | sgmii_phy22 = &sgmiiphy22; | ||
47 | sgmii_phy23 = &sgmiiphy23; | ||
48 | sgmii_phy24 = &sgmiiphy24; | ||
49 | sgmii_phy41 = &sgmiiphy41; | ||
50 | sgmii_phy42 = &sgmiiphy42; | ||
51 | sgmii_phy43 = &sgmiiphy43; | ||
52 | sgmii_phy44 = &sgmiiphy44; | ||
53 | }; | ||
54 | |||
44 | ifc: localbus@ffe124000 { | 55 | ifc: localbus@ffe124000 { |
45 | reg = <0xf 0xfe124000 0 0x2000>; | 56 | reg = <0xf 0xfe124000 0 0x2000>; |
46 | ranges = <0 0 0xf 0xe8000000 0x08000000 | 57 | ranges = <0 0 0xf 0xe8000000 0x08000000 |
@@ -107,7 +118,7 @@ | |||
107 | flash@0 { | 118 | flash@0 { |
108 | #address-cells = <1>; | 119 | #address-cells = <1>; |
109 | #size-cells = <1>; | 120 | #size-cells = <1>; |
110 | compatible = "sst,sst25wf040"; | 121 | compatible = "sst,sst25wf040", "jedec,spi-nor"; |
111 | reg = <0>; | 122 | reg = <0>; |
112 | spi-max-frequency = <40000000>; /* input clock */ | 123 | spi-max-frequency = <40000000>; /* input clock */ |
113 | }; | 124 | }; |
@@ -136,6 +147,142 @@ | |||
136 | sdhc@114000 { | 147 | sdhc@114000 { |
137 | voltage-ranges = <1800 1800 3300 3300>; | 148 | voltage-ranges = <1800 1800 3300 3300>; |
138 | }; | 149 | }; |
150 | |||
151 | fman@400000 { | ||
152 | ethernet@e0000 { | ||
153 | phy-handle = <&sgmiiphy21>; | ||
154 | phy-connection-type = "sgmii"; | ||
155 | }; | ||
156 | |||
157 | ethernet@e2000 { | ||
158 | phy-handle = <&sgmiiphy22>; | ||
159 | phy-connection-type = "sgmii"; | ||
160 | }; | ||
161 | |||
162 | ethernet@e4000 { | ||
163 | phy-handle = <&sgmiiphy23>; | ||
164 | phy-connection-type = "sgmii"; | ||
165 | }; | ||
166 | |||
167 | ethernet@e6000 { | ||
168 | phy-handle = <&sgmiiphy24>; | ||
169 | phy-connection-type = "sgmii"; | ||
170 | }; | ||
171 | |||
172 | ethernet@e8000 { | ||
173 | status = "disabled"; | ||
174 | }; | ||
175 | |||
176 | ethernet@ea000 { | ||
177 | status = "disabled"; | ||
178 | }; | ||
179 | |||
180 | ethernet@f0000 { | ||
181 | phy-handle = <&xfiphy1>; | ||
182 | phy-connection-type = "xgmii"; | ||
183 | }; | ||
184 | |||
185 | ethernet@f2000 { | ||
186 | phy-handle = <&xfiphy2>; | ||
187 | phy-connection-type = "xgmii"; | ||
188 | }; | ||
189 | }; | ||
190 | |||
191 | fman@500000 { | ||
192 | ethernet@e0000 { | ||
193 | phy-handle = <&sgmiiphy41>; | ||
194 | phy-connection-type = "sgmii"; | ||
195 | }; | ||
196 | |||
197 | ethernet@e2000 { | ||
198 | phy-handle = <&sgmiiphy42>; | ||
199 | phy-connection-type = "sgmii"; | ||
200 | }; | ||
201 | |||
202 | ethernet@e4000 { | ||
203 | phy-handle = <&sgmiiphy43>; | ||
204 | phy-connection-type = "sgmii"; | ||
205 | }; | ||
206 | |||
207 | ethernet@e6000 { | ||
208 | phy-handle = <&sgmiiphy44>; | ||
209 | phy-connection-type = "sgmii"; | ||
210 | }; | ||
211 | |||
212 | ethernet@e8000 { | ||
213 | status = "disabled"; | ||
214 | }; | ||
215 | |||
216 | ethernet@ea000 { | ||
217 | status = "disabled"; | ||
218 | }; | ||
219 | |||
220 | ethernet@f0000 { | ||
221 | phy-handle = <&xfiphy3>; | ||
222 | phy-connection-type = "xgmii"; | ||
223 | }; | ||
224 | |||
225 | ethernet@f2000 { | ||
226 | phy-handle = <&xfiphy4>; | ||
227 | phy-connection-type = "xgmii"; | ||
228 | }; | ||
229 | |||
230 | mdio@fc000 { | ||
231 | sgmiiphy21: ethernet-phy@0 { | ||
232 | reg = <0x0>; | ||
233 | }; | ||
234 | |||
235 | sgmiiphy22: ethernet-phy@1 { | ||
236 | reg = <0x1>; | ||
237 | }; | ||
238 | |||
239 | sgmiiphy23: ethernet-phy@2 { | ||
240 | reg = <0x2>; | ||
241 | }; | ||
242 | |||
243 | sgmiiphy24: ethernet-phy@3 { | ||
244 | reg = <0x3>; | ||
245 | }; | ||
246 | |||
247 | sgmiiphy41: ethernet-phy@4 { | ||
248 | reg = <0x4>; | ||
249 | }; | ||
250 | |||
251 | sgmiiphy42: ethernet-phy@5 { | ||
252 | reg = <0x5>; | ||
253 | }; | ||
254 | |||
255 | sgmiiphy43: ethernet-phy@6 { | ||
256 | reg = <0x6>; | ||
257 | }; | ||
258 | |||
259 | sgmiiphy44: ethernet-phy@7 { | ||
260 | reg = <0x7>; | ||
261 | }; | ||
262 | }; | ||
263 | |||
264 | mdio@fd000 { | ||
265 | xfiphy1: ethernet-phy@10 { | ||
266 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
267 | reg = <0x10>; | ||
268 | }; | ||
269 | |||
270 | xfiphy2: ethernet-phy@11 { | ||
271 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
272 | reg = <0x11>; | ||
273 | }; | ||
274 | |||
275 | xfiphy3: ethernet-phy@13 { | ||
276 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
277 | reg = <0x13>; | ||
278 | }; | ||
279 | |||
280 | xfiphy4: ethernet-phy@12 { | ||
281 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
282 | reg = <0x12>; | ||
283 | }; | ||
284 | }; | ||
285 | }; | ||
139 | }; | 286 | }; |
140 | 287 | ||
141 | pci0: pcie@ffe240000 { | 288 | pci0: pcie@ffe240000 { |
diff --git a/arch/powerpc/boot/dts/gef_ppc9a.dts b/arch/powerpc/boot/dts/gef_ppc9a.dts deleted file mode 100644 index 83eb0fda2666..000000000000 --- a/arch/powerpc/boot/dts/gef_ppc9a.dts +++ /dev/null | |||
@@ -1,425 +0,0 @@ | |||
1 | /* | ||
2 | * GE PPC9A Device Tree Source | ||
3 | * | ||
4 | * Copyright 2008 GE Intelligent Platforms Embedded Systems, 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 | * Based on: SBS CM6 Device Tree Source | ||
12 | * Copyright 2007 SBS Technologies GmbH & Co. KG | ||
13 | * And: mpc8641_hpcn.dts (MPC8641 HPCN Device Tree Source) | ||
14 | * Copyright 2006 Freescale Semiconductor Inc. | ||
15 | */ | ||
16 | |||
17 | /* | ||
18 | * Compiled with dtc -I dts -O dtb -o gef_ppc9a.dtb gef_ppc9a.dts | ||
19 | */ | ||
20 | |||
21 | /dts-v1/; | ||
22 | |||
23 | / { | ||
24 | model = "GEF_PPC9A"; | ||
25 | compatible = "gef,ppc9a"; | ||
26 | #address-cells = <1>; | ||
27 | #size-cells = <1>; | ||
28 | |||
29 | aliases { | ||
30 | ethernet0 = &enet0; | ||
31 | ethernet1 = &enet1; | ||
32 | serial0 = &serial0; | ||
33 | serial1 = &serial1; | ||
34 | pci0 = &pci0; | ||
35 | }; | ||
36 | |||
37 | cpus { | ||
38 | #address-cells = <1>; | ||
39 | #size-cells = <0>; | ||
40 | |||
41 | PowerPC,8641@0 { | ||
42 | device_type = "cpu"; | ||
43 | reg = <0>; | ||
44 | d-cache-line-size = <32>; // 32 bytes | ||
45 | i-cache-line-size = <32>; // 32 bytes | ||
46 | d-cache-size = <32768>; // L1, 32K | ||
47 | i-cache-size = <32768>; // L1, 32K | ||
48 | timebase-frequency = <0>; // From uboot | ||
49 | bus-frequency = <0>; // From uboot | ||
50 | clock-frequency = <0>; // From uboot | ||
51 | }; | ||
52 | PowerPC,8641@1 { | ||
53 | device_type = "cpu"; | ||
54 | reg = <1>; | ||
55 | d-cache-line-size = <32>; // 32 bytes | ||
56 | i-cache-line-size = <32>; // 32 bytes | ||
57 | d-cache-size = <32768>; // L1, 32K | ||
58 | i-cache-size = <32768>; // L1, 32K | ||
59 | timebase-frequency = <0>; // From uboot | ||
60 | bus-frequency = <0>; // From uboot | ||
61 | clock-frequency = <0>; // From uboot | ||
62 | }; | ||
63 | }; | ||
64 | |||
65 | memory { | ||
66 | device_type = "memory"; | ||
67 | reg = <0x0 0x40000000>; // set by uboot | ||
68 | }; | ||
69 | |||
70 | localbus@fef05000 { | ||
71 | #address-cells = <2>; | ||
72 | #size-cells = <1>; | ||
73 | compatible = "fsl,mpc8641-localbus", "simple-bus"; | ||
74 | reg = <0xfef05000 0x1000>; | ||
75 | interrupts = <19 2>; | ||
76 | interrupt-parent = <&mpic>; | ||
77 | |||
78 | ranges = <0 0 0xff000000 0x01000000 // 16MB Boot flash | ||
79 | 1 0 0xe8000000 0x08000000 // Paged Flash 0 | ||
80 | 2 0 0xe0000000 0x08000000 // Paged Flash 1 | ||
81 | 3 0 0xfc100000 0x00020000 // NVRAM | ||
82 | 4 0 0xfc000000 0x00008000 // FPGA | ||
83 | 5 0 0xfc008000 0x00008000 // AFIX FPGA | ||
84 | 6 0 0xfd000000 0x00800000 // IO FPGA (8-bit) | ||
85 | 7 0 0xfd800000 0x00800000>; // IO FPGA (32-bit) | ||
86 | |||
87 | /* flash@0,0 is a mirror of part of the memory in flash@1,0 | ||
88 | flash@0,0 { | ||
89 | compatible = "gef,ppc9a-firmware-mirror", "cfi-flash"; | ||
90 | reg = <0x0 0x0 0x1000000>; | ||
91 | bank-width = <4>; | ||
92 | device-width = <2>; | ||
93 | #address-cells = <1>; | ||
94 | #size-cells = <1>; | ||
95 | partition@0 { | ||
96 | label = "firmware"; | ||
97 | reg = <0x0 0x1000000>; | ||
98 | read-only; | ||
99 | }; | ||
100 | }; | ||
101 | */ | ||
102 | |||
103 | flash@1,0 { | ||
104 | compatible = "gef,ppc9a-paged-flash", "cfi-flash"; | ||
105 | reg = <0x1 0x0 0x8000000>; | ||
106 | bank-width = <4>; | ||
107 | device-width = <2>; | ||
108 | #address-cells = <1>; | ||
109 | #size-cells = <1>; | ||
110 | partition@0 { | ||
111 | label = "user"; | ||
112 | reg = <0x0 0x7800000>; | ||
113 | }; | ||
114 | partition@7800000 { | ||
115 | label = "firmware"; | ||
116 | reg = <0x7800000 0x800000>; | ||
117 | read-only; | ||
118 | }; | ||
119 | }; | ||
120 | |||
121 | nvram@3,0 { | ||
122 | device_type = "nvram"; | ||
123 | compatible = "simtek,stk14ca8"; | ||
124 | reg = <0x3 0x0 0x20000>; | ||
125 | }; | ||
126 | |||
127 | fpga@4,0 { | ||
128 | compatible = "gef,ppc9a-fpga-regs"; | ||
129 | reg = <0x4 0x0 0x40>; | ||
130 | }; | ||
131 | |||
132 | wdt@4,2000 { | ||
133 | compatible = "gef,ppc9a-fpga-wdt", "gef,fpga-wdt-1.00", | ||
134 | "gef,fpga-wdt"; | ||
135 | reg = <0x4 0x2000 0x8>; | ||
136 | interrupts = <0x1a 0x4>; | ||
137 | interrupt-parent = <&gef_pic>; | ||
138 | }; | ||
139 | /* Second watchdog available, driver currently supports one. | ||
140 | wdt@4,2010 { | ||
141 | compatible = "gef,ppc9a-fpga-wdt", "gef,fpga-wdt-1.00", | ||
142 | "gef,fpga-wdt"; | ||
143 | reg = <0x4 0x2010 0x8>; | ||
144 | interrupts = <0x1b 0x4>; | ||
145 | interrupt-parent = <&gef_pic>; | ||
146 | }; | ||
147 | */ | ||
148 | gef_pic: pic@4,4000 { | ||
149 | #interrupt-cells = <1>; | ||
150 | interrupt-controller; | ||
151 | compatible = "gef,ppc9a-fpga-pic", "gef,fpga-pic-1.00"; | ||
152 | reg = <0x4 0x4000 0x20>; | ||
153 | interrupts = <0x8 | ||
154 | 0x9>; | ||
155 | interrupt-parent = <&mpic>; | ||
156 | |||
157 | }; | ||
158 | gef_gpio: gpio@7,14000 { | ||
159 | #gpio-cells = <2>; | ||
160 | compatible = "gef,ppc9a-gpio", "gef,sbc610-gpio"; | ||
161 | reg = <0x7 0x14000 0x24>; | ||
162 | gpio-controller; | ||
163 | }; | ||
164 | }; | ||
165 | |||
166 | soc@fef00000 { | ||
167 | #address-cells = <1>; | ||
168 | #size-cells = <1>; | ||
169 | #interrupt-cells = <2>; | ||
170 | device_type = "soc"; | ||
171 | compatible = "fsl,mpc8641-soc", "simple-bus"; | ||
172 | ranges = <0x0 0xfef00000 0x00100000>; | ||
173 | bus-frequency = <33333333>; | ||
174 | |||
175 | mcm-law@0 { | ||
176 | compatible = "fsl,mcm-law"; | ||
177 | reg = <0x0 0x1000>; | ||
178 | fsl,num-laws = <10>; | ||
179 | }; | ||
180 | |||
181 | mcm@1000 { | ||
182 | compatible = "fsl,mpc8641-mcm", "fsl,mcm"; | ||
183 | reg = <0x1000 0x1000>; | ||
184 | interrupts = <17 2>; | ||
185 | interrupt-parent = <&mpic>; | ||
186 | }; | ||
187 | |||
188 | i2c1: i2c@3000 { | ||
189 | #address-cells = <1>; | ||
190 | #size-cells = <0>; | ||
191 | compatible = "fsl-i2c"; | ||
192 | reg = <0x3000 0x100>; | ||
193 | interrupts = <0x2b 0x2>; | ||
194 | interrupt-parent = <&mpic>; | ||
195 | dfsrr; | ||
196 | |||
197 | hwmon@48 { | ||
198 | compatible = "national,lm92"; | ||
199 | reg = <0x48>; | ||
200 | }; | ||
201 | |||
202 | hwmon@4c { | ||
203 | compatible = "adi,adt7461"; | ||
204 | reg = <0x4c>; | ||
205 | }; | ||
206 | |||
207 | rtc@51 { | ||
208 | compatible = "epson,rx8581"; | ||
209 | reg = <0x00000051>; | ||
210 | }; | ||
211 | |||
212 | eti@6b { | ||
213 | compatible = "dallas,ds1682"; | ||
214 | reg = <0x6b>; | ||
215 | }; | ||
216 | }; | ||
217 | |||
218 | i2c2: i2c@3100 { | ||
219 | #address-cells = <1>; | ||
220 | #size-cells = <0>; | ||
221 | compatible = "fsl-i2c"; | ||
222 | reg = <0x3100 0x100>; | ||
223 | interrupts = <0x2b 0x2>; | ||
224 | interrupt-parent = <&mpic>; | ||
225 | dfsrr; | ||
226 | }; | ||
227 | |||
228 | dma@21300 { | ||
229 | #address-cells = <1>; | ||
230 | #size-cells = <1>; | ||
231 | compatible = "fsl,mpc8641-dma", "fsl,eloplus-dma"; | ||
232 | reg = <0x21300 0x4>; | ||
233 | ranges = <0x0 0x21100 0x200>; | ||
234 | cell-index = <0>; | ||
235 | dma-channel@0 { | ||
236 | compatible = "fsl,mpc8641-dma-channel", | ||
237 | "fsl,eloplus-dma-channel"; | ||
238 | reg = <0x0 0x80>; | ||
239 | cell-index = <0>; | ||
240 | interrupt-parent = <&mpic>; | ||
241 | interrupts = <20 2>; | ||
242 | }; | ||
243 | dma-channel@80 { | ||
244 | compatible = "fsl,mpc8641-dma-channel", | ||
245 | "fsl,eloplus-dma-channel"; | ||
246 | reg = <0x80 0x80>; | ||
247 | cell-index = <1>; | ||
248 | interrupt-parent = <&mpic>; | ||
249 | interrupts = <21 2>; | ||
250 | }; | ||
251 | dma-channel@100 { | ||
252 | compatible = "fsl,mpc8641-dma-channel", | ||
253 | "fsl,eloplus-dma-channel"; | ||
254 | reg = <0x100 0x80>; | ||
255 | cell-index = <2>; | ||
256 | interrupt-parent = <&mpic>; | ||
257 | interrupts = <22 2>; | ||
258 | }; | ||
259 | dma-channel@180 { | ||
260 | compatible = "fsl,mpc8641-dma-channel", | ||
261 | "fsl,eloplus-dma-channel"; | ||
262 | reg = <0x180 0x80>; | ||
263 | cell-index = <3>; | ||
264 | interrupt-parent = <&mpic>; | ||
265 | interrupts = <23 2>; | ||
266 | }; | ||
267 | }; | ||
268 | |||
269 | enet0: ethernet@24000 { | ||
270 | #address-cells = <1>; | ||
271 | #size-cells = <1>; | ||
272 | cell-index = <0>; | ||
273 | device_type = "network"; | ||
274 | model = "TSEC"; | ||
275 | compatible = "gianfar"; | ||
276 | reg = <0x24000 0x1000>; | ||
277 | ranges = <0x0 0x24000 0x1000>; | ||
278 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
279 | interrupts = <29 2 30 2 34 2>; | ||
280 | interrupt-parent = <&mpic>; | ||
281 | tbi-handle = <&tbi0>; | ||
282 | phy-handle = <&phy0>; | ||
283 | phy-connection-type = "gmii"; | ||
284 | |||
285 | mdio@520 { | ||
286 | #address-cells = <1>; | ||
287 | #size-cells = <0>; | ||
288 | compatible = "fsl,gianfar-mdio"; | ||
289 | reg = <0x520 0x20>; | ||
290 | |||
291 | phy0: ethernet-phy@0 { | ||
292 | interrupt-parent = <&gef_pic>; | ||
293 | interrupts = <0x9 0x4>; | ||
294 | reg = <1>; | ||
295 | }; | ||
296 | phy2: ethernet-phy@2 { | ||
297 | interrupt-parent = <&gef_pic>; | ||
298 | interrupts = <0x8 0x4>; | ||
299 | reg = <3>; | ||
300 | }; | ||
301 | tbi0: tbi-phy@11 { | ||
302 | reg = <0x11>; | ||
303 | device_type = "tbi-phy"; | ||
304 | }; | ||
305 | }; | ||
306 | }; | ||
307 | |||
308 | enet1: ethernet@26000 { | ||
309 | #address-cells = <1>; | ||
310 | #size-cells = <1>; | ||
311 | cell-index = <2>; | ||
312 | device_type = "network"; | ||
313 | model = "TSEC"; | ||
314 | compatible = "gianfar"; | ||
315 | reg = <0x26000 0x1000>; | ||
316 | ranges = <0x0 0x26000 0x1000>; | ||
317 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
318 | interrupts = <31 2 32 2 33 2>; | ||
319 | interrupt-parent = <&mpic>; | ||
320 | tbi-handle = <&tbi2>; | ||
321 | phy-handle = <&phy2>; | ||
322 | phy-connection-type = "gmii"; | ||
323 | |||
324 | mdio@520 { | ||
325 | #address-cells = <1>; | ||
326 | #size-cells = <0>; | ||
327 | compatible = "fsl,gianfar-tbi"; | ||
328 | reg = <0x520 0x20>; | ||
329 | |||
330 | tbi2: tbi-phy@11 { | ||
331 | reg = <0x11>; | ||
332 | device_type = "tbi-phy"; | ||
333 | }; | ||
334 | }; | ||
335 | }; | ||
336 | |||
337 | serial0: serial@4500 { | ||
338 | cell-index = <0>; | ||
339 | device_type = "serial"; | ||
340 | compatible = "fsl,ns16550", "ns16550"; | ||
341 | reg = <0x4500 0x100>; | ||
342 | clock-frequency = <0>; | ||
343 | interrupts = <0x2a 0x2>; | ||
344 | interrupt-parent = <&mpic>; | ||
345 | }; | ||
346 | |||
347 | serial1: serial@4600 { | ||
348 | cell-index = <1>; | ||
349 | device_type = "serial"; | ||
350 | compatible = "fsl,ns16550", "ns16550"; | ||
351 | reg = <0x4600 0x100>; | ||
352 | clock-frequency = <0>; | ||
353 | interrupts = <0x1c 0x2>; | ||
354 | interrupt-parent = <&mpic>; | ||
355 | }; | ||
356 | |||
357 | mpic: pic@40000 { | ||
358 | clock-frequency = <0>; | ||
359 | interrupt-controller; | ||
360 | #address-cells = <0>; | ||
361 | #interrupt-cells = <2>; | ||
362 | reg = <0x40000 0x40000>; | ||
363 | compatible = "chrp,open-pic"; | ||
364 | device_type = "open-pic"; | ||
365 | }; | ||
366 | |||
367 | msi@41600 { | ||
368 | compatible = "fsl,mpc8641-msi", "fsl,mpic-msi"; | ||
369 | reg = <0x41600 0x80>; | ||
370 | msi-available-ranges = <0 0x100>; | ||
371 | interrupts = < | ||
372 | 0xe0 0 | ||
373 | 0xe1 0 | ||
374 | 0xe2 0 | ||
375 | 0xe3 0 | ||
376 | 0xe4 0 | ||
377 | 0xe5 0 | ||
378 | 0xe6 0 | ||
379 | 0xe7 0>; | ||
380 | interrupt-parent = <&mpic>; | ||
381 | }; | ||
382 | |||
383 | global-utilities@e0000 { | ||
384 | compatible = "fsl,mpc8641-guts"; | ||
385 | reg = <0xe0000 0x1000>; | ||
386 | fsl,has-rstcr; | ||
387 | }; | ||
388 | }; | ||
389 | |||
390 | pci0: pcie@fef08000 { | ||
391 | compatible = "fsl,mpc8641-pcie"; | ||
392 | device_type = "pci"; | ||
393 | #interrupt-cells = <1>; | ||
394 | #size-cells = <2>; | ||
395 | #address-cells = <3>; | ||
396 | reg = <0xfef08000 0x1000>; | ||
397 | bus-range = <0x0 0xff>; | ||
398 | ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x40000000 | ||
399 | 0x01000000 0x0 0x00000000 0xfe000000 0x0 0x00400000>; | ||
400 | clock-frequency = <33333333>; | ||
401 | interrupt-parent = <&mpic>; | ||
402 | interrupts = <0x18 0x2>; | ||
403 | interrupt-map-mask = <0xf800 0x0 0x0 0x7>; | ||
404 | interrupt-map = < | ||
405 | 0x0000 0x0 0x0 0x1 &mpic 0x0 0x1 | ||
406 | 0x0000 0x0 0x0 0x2 &mpic 0x1 0x1 | ||
407 | 0x0000 0x0 0x0 0x3 &mpic 0x2 0x1 | ||
408 | 0x0000 0x0 0x0 0x4 &mpic 0x3 0x1 | ||
409 | >; | ||
410 | |||
411 | pcie@0 { | ||
412 | reg = <0 0 0 0 0>; | ||
413 | #size-cells = <2>; | ||
414 | #address-cells = <3>; | ||
415 | device_type = "pci"; | ||
416 | ranges = <0x02000000 0x0 0x80000000 | ||
417 | 0x02000000 0x0 0x80000000 | ||
418 | 0x0 0x40000000 | ||
419 | |||
420 | 0x01000000 0x0 0x00000000 | ||
421 | 0x01000000 0x0 0x00000000 | ||
422 | 0x0 0x00400000>; | ||
423 | }; | ||
424 | }; | ||
425 | }; | ||
diff --git a/arch/powerpc/boot/dts/gef_sbc310.dts b/arch/powerpc/boot/dts/gef_sbc310.dts deleted file mode 100644 index d426dd3de9ef..000000000000 --- a/arch/powerpc/boot/dts/gef_sbc310.dts +++ /dev/null | |||
@@ -1,459 +0,0 @@ | |||
1 | /* | ||
2 | * GE SBC310 Device Tree Source | ||
3 | * | ||
4 | * Copyright 2008 GE Intelligent Platforms Embedded Systems, 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 | * Based on: SBS CM6 Device Tree Source | ||
12 | * Copyright 2007 SBS Technologies GmbH & Co. KG | ||
13 | * And: mpc8641_hpcn.dts (MPC8641 HPCN Device Tree Source) | ||
14 | * Copyright 2006 Freescale Semiconductor Inc. | ||
15 | */ | ||
16 | |||
17 | /* | ||
18 | * Compiled with dtc -I dts -O dtb -o gef_sbc310.dtb gef_sbc310.dts | ||
19 | */ | ||
20 | |||
21 | /dts-v1/; | ||
22 | |||
23 | / { | ||
24 | model = "GEF_SBC310"; | ||
25 | compatible = "gef,sbc310"; | ||
26 | #address-cells = <1>; | ||
27 | #size-cells = <1>; | ||
28 | |||
29 | aliases { | ||
30 | ethernet0 = &enet0; | ||
31 | ethernet1 = &enet1; | ||
32 | serial0 = &serial0; | ||
33 | serial1 = &serial1; | ||
34 | pci0 = &pci0; | ||
35 | pci1 = &pci1; | ||
36 | }; | ||
37 | |||
38 | cpus { | ||
39 | #address-cells = <1>; | ||
40 | #size-cells = <0>; | ||
41 | |||
42 | PowerPC,8641@0 { | ||
43 | device_type = "cpu"; | ||
44 | reg = <0>; | ||
45 | d-cache-line-size = <32>; // 32 bytes | ||
46 | i-cache-line-size = <32>; // 32 bytes | ||
47 | d-cache-size = <32768>; // L1, 32K | ||
48 | i-cache-size = <32768>; // L1, 32K | ||
49 | timebase-frequency = <0>; // From uboot | ||
50 | bus-frequency = <0>; // From uboot | ||
51 | clock-frequency = <0>; // From uboot | ||
52 | }; | ||
53 | PowerPC,8641@1 { | ||
54 | device_type = "cpu"; | ||
55 | reg = <1>; | ||
56 | d-cache-line-size = <32>; // 32 bytes | ||
57 | i-cache-line-size = <32>; // 32 bytes | ||
58 | d-cache-size = <32768>; // L1, 32K | ||
59 | i-cache-size = <32768>; // L1, 32K | ||
60 | timebase-frequency = <0>; // From uboot | ||
61 | bus-frequency = <0>; // From uboot | ||
62 | clock-frequency = <0>; // From uboot | ||
63 | }; | ||
64 | }; | ||
65 | |||
66 | memory { | ||
67 | device_type = "memory"; | ||
68 | reg = <0x0 0x40000000>; // set by uboot | ||
69 | }; | ||
70 | |||
71 | localbus@fef05000 { | ||
72 | #address-cells = <2>; | ||
73 | #size-cells = <1>; | ||
74 | compatible = "fsl,mpc8641-localbus", "simple-bus"; | ||
75 | reg = <0xfef05000 0x1000>; | ||
76 | interrupts = <19 2>; | ||
77 | interrupt-parent = <&mpic>; | ||
78 | |||
79 | ranges = <0 0 0xff000000 0x01000000 // 16MB Boot flash | ||
80 | 1 0 0xe0000000 0x08000000 // Paged Flash 0 | ||
81 | 2 0 0xe8000000 0x08000000 // Paged Flash 1 | ||
82 | 3 0 0xfc100000 0x00020000 // NVRAM | ||
83 | 4 0 0xfc000000 0x00010000>; // FPGA | ||
84 | |||
85 | /* flash@0,0 is a mirror of part of the memory in flash@1,0 | ||
86 | flash@0,0 { | ||
87 | compatible = "gef,sbc310-firmware-mirror", "cfi-flash"; | ||
88 | reg = <0x0 0x0 0x01000000>; | ||
89 | bank-width = <2>; | ||
90 | device-width = <2>; | ||
91 | #address-cells = <1>; | ||
92 | #size-cells = <1>; | ||
93 | partition@0 { | ||
94 | label = "firmware"; | ||
95 | reg = <0x0 0x01000000>; | ||
96 | read-only; | ||
97 | }; | ||
98 | }; | ||
99 | */ | ||
100 | |||
101 | flash@1,0 { | ||
102 | compatible = "gef,sbc310-paged-flash", "cfi-flash"; | ||
103 | reg = <0x1 0x0 0x8000000>; | ||
104 | bank-width = <2>; | ||
105 | device-width = <2>; | ||
106 | #address-cells = <1>; | ||
107 | #size-cells = <1>; | ||
108 | partition@0 { | ||
109 | label = "user"; | ||
110 | reg = <0x0 0x7800000>; | ||
111 | }; | ||
112 | partition@7800000 { | ||
113 | label = "firmware"; | ||
114 | reg = <0x7800000 0x800000>; | ||
115 | read-only; | ||
116 | }; | ||
117 | }; | ||
118 | |||
119 | nvram@3,0 { | ||
120 | device_type = "nvram"; | ||
121 | compatible = "simtek,stk14ca8"; | ||
122 | reg = <0x3 0x0 0x20000>; | ||
123 | }; | ||
124 | |||
125 | fpga@4,0 { | ||
126 | compatible = "gef,fpga-regs"; | ||
127 | reg = <0x4 0x0 0x40>; | ||
128 | }; | ||
129 | |||
130 | wdt@4,2000 { | ||
131 | compatible = "gef,sbc310-fpga-wdt", "gef,fpga-wdt-1.00", | ||
132 | "gef,fpga-wdt"; | ||
133 | reg = <0x4 0x2000 0x8>; | ||
134 | interrupts = <0x1a 0x4>; | ||
135 | interrupt-parent = <&gef_pic>; | ||
136 | }; | ||
137 | /* | ||
138 | wdt@4,2010 { | ||
139 | compatible = "gef,sbc310-fpga-wdt", "gef,fpga-wdt-1.00", | ||
140 | "gef,fpga-wdt"; | ||
141 | reg = <0x4 0x2010 0x8>; | ||
142 | interrupts = <0x1b 0x4>; | ||
143 | interrupt-parent = <&gef_pic>; | ||
144 | }; | ||
145 | */ | ||
146 | gef_pic: pic@4,4000 { | ||
147 | #interrupt-cells = <1>; | ||
148 | interrupt-controller; | ||
149 | compatible = "gef,sbc310-fpga-pic", "gef,fpga-pic"; | ||
150 | reg = <0x4 0x4000 0x20>; | ||
151 | interrupts = <0x8 | ||
152 | 0x9>; | ||
153 | interrupt-parent = <&mpic>; | ||
154 | |||
155 | }; | ||
156 | gef_gpio: gpio@4,8000 { | ||
157 | #gpio-cells = <2>; | ||
158 | compatible = "gef,sbc310-gpio"; | ||
159 | reg = <0x4 0x8000 0x24>; | ||
160 | gpio-controller; | ||
161 | }; | ||
162 | }; | ||
163 | |||
164 | soc@fef00000 { | ||
165 | #address-cells = <1>; | ||
166 | #size-cells = <1>; | ||
167 | #interrupt-cells = <2>; | ||
168 | device_type = "soc"; | ||
169 | compatible = "fsl,mpc8641-soc", "simple-bus"; | ||
170 | ranges = <0x0 0xfef00000 0x00100000>; | ||
171 | bus-frequency = <33333333>; | ||
172 | |||
173 | mcm-law@0 { | ||
174 | compatible = "fsl,mcm-law"; | ||
175 | reg = <0x0 0x1000>; | ||
176 | fsl,num-laws = <10>; | ||
177 | }; | ||
178 | |||
179 | mcm@1000 { | ||
180 | compatible = "fsl,mpc8641-mcm", "fsl,mcm"; | ||
181 | reg = <0x1000 0x1000>; | ||
182 | interrupts = <17 2>; | ||
183 | interrupt-parent = <&mpic>; | ||
184 | }; | ||
185 | |||
186 | i2c1: i2c@3000 { | ||
187 | #address-cells = <1>; | ||
188 | #size-cells = <0>; | ||
189 | compatible = "fsl-i2c"; | ||
190 | reg = <0x3000 0x100>; | ||
191 | interrupts = <0x2b 0x2>; | ||
192 | interrupt-parent = <&mpic>; | ||
193 | dfsrr; | ||
194 | |||
195 | rtc@51 { | ||
196 | compatible = "epson,rx8581"; | ||
197 | reg = <0x00000051>; | ||
198 | }; | ||
199 | }; | ||
200 | |||
201 | i2c2: i2c@3100 { | ||
202 | #address-cells = <1>; | ||
203 | #size-cells = <0>; | ||
204 | compatible = "fsl-i2c"; | ||
205 | reg = <0x3100 0x100>; | ||
206 | interrupts = <0x2b 0x2>; | ||
207 | interrupt-parent = <&mpic>; | ||
208 | dfsrr; | ||
209 | |||
210 | hwmon@48 { | ||
211 | compatible = "national,lm92"; | ||
212 | reg = <0x48>; | ||
213 | }; | ||
214 | |||
215 | hwmon@4c { | ||
216 | compatible = "adi,adt7461"; | ||
217 | reg = <0x4c>; | ||
218 | }; | ||
219 | |||
220 | eti@6b { | ||
221 | compatible = "dallas,ds1682"; | ||
222 | reg = <0x6b>; | ||
223 | }; | ||
224 | }; | ||
225 | |||
226 | dma@21300 { | ||
227 | #address-cells = <1>; | ||
228 | #size-cells = <1>; | ||
229 | compatible = "fsl,mpc8641-dma", "fsl,eloplus-dma"; | ||
230 | reg = <0x21300 0x4>; | ||
231 | ranges = <0x0 0x21100 0x200>; | ||
232 | cell-index = <0>; | ||
233 | dma-channel@0 { | ||
234 | compatible = "fsl,mpc8641-dma-channel", | ||
235 | "fsl,eloplus-dma-channel"; | ||
236 | reg = <0x0 0x80>; | ||
237 | cell-index = <0>; | ||
238 | interrupt-parent = <&mpic>; | ||
239 | interrupts = <20 2>; | ||
240 | }; | ||
241 | dma-channel@80 { | ||
242 | compatible = "fsl,mpc8641-dma-channel", | ||
243 | "fsl,eloplus-dma-channel"; | ||
244 | reg = <0x80 0x80>; | ||
245 | cell-index = <1>; | ||
246 | interrupt-parent = <&mpic>; | ||
247 | interrupts = <21 2>; | ||
248 | }; | ||
249 | dma-channel@100 { | ||
250 | compatible = "fsl,mpc8641-dma-channel", | ||
251 | "fsl,eloplus-dma-channel"; | ||
252 | reg = <0x100 0x80>; | ||
253 | cell-index = <2>; | ||
254 | interrupt-parent = <&mpic>; | ||
255 | interrupts = <22 2>; | ||
256 | }; | ||
257 | dma-channel@180 { | ||
258 | compatible = "fsl,mpc8641-dma-channel", | ||
259 | "fsl,eloplus-dma-channel"; | ||
260 | reg = <0x180 0x80>; | ||
261 | cell-index = <3>; | ||
262 | interrupt-parent = <&mpic>; | ||
263 | interrupts = <23 2>; | ||
264 | }; | ||
265 | }; | ||
266 | |||
267 | enet0: ethernet@24000 { | ||
268 | #address-cells = <1>; | ||
269 | #size-cells = <1>; | ||
270 | cell-index = <0>; | ||
271 | device_type = "network"; | ||
272 | model = "TSEC"; | ||
273 | compatible = "gianfar"; | ||
274 | reg = <0x24000 0x1000>; | ||
275 | ranges = <0x0 0x24000 0x1000>; | ||
276 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
277 | interrupts = <29 2 30 2 34 2>; | ||
278 | interrupt-parent = <&mpic>; | ||
279 | tbi-handle = <&tbi0>; | ||
280 | phy-handle = <&phy0>; | ||
281 | phy-connection-type = "gmii"; | ||
282 | |||
283 | mdio@520 { | ||
284 | #address-cells = <1>; | ||
285 | #size-cells = <0>; | ||
286 | compatible = "fsl,gianfar-mdio"; | ||
287 | reg = <0x520 0x20>; | ||
288 | |||
289 | phy0: ethernet-phy@0 { | ||
290 | interrupt-parent = <&gef_pic>; | ||
291 | interrupts = <0x9 0x4>; | ||
292 | reg = <1>; | ||
293 | }; | ||
294 | phy2: ethernet-phy@2 { | ||
295 | interrupt-parent = <&gef_pic>; | ||
296 | interrupts = <0x8 0x4>; | ||
297 | reg = <3>; | ||
298 | }; | ||
299 | tbi0: tbi-phy@11 { | ||
300 | reg = <0x11>; | ||
301 | device_type = "tbi-phy"; | ||
302 | }; | ||
303 | }; | ||
304 | }; | ||
305 | |||
306 | enet1: ethernet@26000 { | ||
307 | #address-cells = <1>; | ||
308 | #size-cells = <1>; | ||
309 | cell-index = <2>; | ||
310 | device_type = "network"; | ||
311 | model = "TSEC"; | ||
312 | compatible = "gianfar"; | ||
313 | reg = <0x26000 0x1000>; | ||
314 | ranges = <0x0 0x26000 0x1000>; | ||
315 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
316 | interrupts = <31 2 32 2 33 2>; | ||
317 | interrupt-parent = <&mpic>; | ||
318 | tbi-handle = <&tbi2>; | ||
319 | phy-handle = <&phy2>; | ||
320 | phy-connection-type = "gmii"; | ||
321 | |||
322 | mdio@520 { | ||
323 | #address-cells = <1>; | ||
324 | #size-cells = <0>; | ||
325 | compatible = "fsl,gianfar-tbi"; | ||
326 | reg = <0x520 0x20>; | ||
327 | |||
328 | tbi2: tbi-phy@11 { | ||
329 | reg = <0x11>; | ||
330 | device_type = "tbi-phy"; | ||
331 | }; | ||
332 | }; | ||
333 | }; | ||
334 | |||
335 | serial0: serial@4500 { | ||
336 | cell-index = <0>; | ||
337 | device_type = "serial"; | ||
338 | compatible = "fsl,ns16550", "ns16550"; | ||
339 | reg = <0x4500 0x100>; | ||
340 | clock-frequency = <0>; | ||
341 | interrupts = <0x2a 0x2>; | ||
342 | interrupt-parent = <&mpic>; | ||
343 | }; | ||
344 | |||
345 | serial1: serial@4600 { | ||
346 | cell-index = <1>; | ||
347 | device_type = "serial"; | ||
348 | compatible = "fsl,ns16550", "ns16550"; | ||
349 | reg = <0x4600 0x100>; | ||
350 | clock-frequency = <0>; | ||
351 | interrupts = <0x1c 0x2>; | ||
352 | interrupt-parent = <&mpic>; | ||
353 | }; | ||
354 | |||
355 | mpic: pic@40000 { | ||
356 | clock-frequency = <0>; | ||
357 | interrupt-controller; | ||
358 | #address-cells = <0>; | ||
359 | #interrupt-cells = <2>; | ||
360 | reg = <0x40000 0x40000>; | ||
361 | compatible = "chrp,open-pic"; | ||
362 | device_type = "open-pic"; | ||
363 | }; | ||
364 | |||
365 | msi@41600 { | ||
366 | compatible = "fsl,mpc8641-msi", "fsl,mpic-msi"; | ||
367 | reg = <0x41600 0x80>; | ||
368 | msi-available-ranges = <0 0x100>; | ||
369 | interrupts = < | ||
370 | 0xe0 0 | ||
371 | 0xe1 0 | ||
372 | 0xe2 0 | ||
373 | 0xe3 0 | ||
374 | 0xe4 0 | ||
375 | 0xe5 0 | ||
376 | 0xe6 0 | ||
377 | 0xe7 0>; | ||
378 | interrupt-parent = <&mpic>; | ||
379 | }; | ||
380 | |||
381 | global-utilities@e0000 { | ||
382 | compatible = "fsl,mpc8641-guts"; | ||
383 | reg = <0xe0000 0x1000>; | ||
384 | fsl,has-rstcr; | ||
385 | }; | ||
386 | }; | ||
387 | |||
388 | pci0: pcie@fef08000 { | ||
389 | compatible = "fsl,mpc8641-pcie"; | ||
390 | device_type = "pci"; | ||
391 | #interrupt-cells = <1>; | ||
392 | #size-cells = <2>; | ||
393 | #address-cells = <3>; | ||
394 | reg = <0xfef08000 0x1000>; | ||
395 | bus-range = <0x0 0xff>; | ||
396 | ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x40000000 | ||
397 | 0x01000000 0x0 0x00000000 0xfe000000 0x0 0x00400000>; | ||
398 | clock-frequency = <33333333>; | ||
399 | interrupt-parent = <&mpic>; | ||
400 | interrupts = <0x18 0x2>; | ||
401 | interrupt-map-mask = <0xff00 0x0 0x0 0x7>; | ||
402 | interrupt-map = < | ||
403 | 0x0000 0x0 0x0 0x1 &mpic 0x0 0x2 | ||
404 | 0x0000 0x0 0x0 0x2 &mpic 0x1 0x2 | ||
405 | 0x0000 0x0 0x0 0x3 &mpic 0x2 0x2 | ||
406 | 0x0000 0x0 0x0 0x4 &mpic 0x3 0x2 | ||
407 | >; | ||
408 | |||
409 | pcie@0 { | ||
410 | reg = <0 0 0 0 0>; | ||
411 | #size-cells = <2>; | ||
412 | #address-cells = <3>; | ||
413 | device_type = "pci"; | ||
414 | ranges = <0x02000000 0x0 0x80000000 | ||
415 | 0x02000000 0x0 0x80000000 | ||
416 | 0x0 0x40000000 | ||
417 | |||
418 | 0x01000000 0x0 0x00000000 | ||
419 | 0x01000000 0x0 0x00000000 | ||
420 | 0x0 0x00400000>; | ||
421 | }; | ||
422 | }; | ||
423 | |||
424 | pci1: pcie@fef09000 { | ||
425 | compatible = "fsl,mpc8641-pcie"; | ||
426 | device_type = "pci"; | ||
427 | #interrupt-cells = <1>; | ||
428 | #size-cells = <2>; | ||
429 | #address-cells = <3>; | ||
430 | reg = <0xfef09000 0x1000>; | ||
431 | bus-range = <0x0 0xff>; | ||
432 | ranges = <0x02000000 0x0 0xc0000000 0xc0000000 0x0 0x20000000 | ||
433 | 0x01000000 0x0 0x00000000 0xfe400000 0x0 0x00400000>; | ||
434 | clock-frequency = <33333333>; | ||
435 | interrupt-parent = <&mpic>; | ||
436 | interrupts = <0x19 0x2>; | ||
437 | interrupt-map-mask = <0xf800 0x0 0x0 0x7>; | ||
438 | interrupt-map = < | ||
439 | 0x0000 0x0 0x0 0x1 &mpic 0x4 0x2 | ||
440 | 0x0000 0x0 0x0 0x2 &mpic 0x5 0x2 | ||
441 | 0x0000 0x0 0x0 0x3 &mpic 0x6 0x2 | ||
442 | 0x0000 0x0 0x0 0x4 &mpic 0x7 0x2 | ||
443 | >; | ||
444 | |||
445 | pcie@0 { | ||
446 | reg = <0 0 0 0 0>; | ||
447 | #size-cells = <2>; | ||
448 | #address-cells = <3>; | ||
449 | device_type = "pci"; | ||
450 | ranges = <0x02000000 0x0 0xc0000000 | ||
451 | 0x02000000 0x0 0xc0000000 | ||
452 | 0x0 0x20000000 | ||
453 | |||
454 | 0x01000000 0x0 0x00000000 | ||
455 | 0x01000000 0x0 0x00000000 | ||
456 | 0x0 0x00400000>; | ||
457 | }; | ||
458 | }; | ||
459 | }; | ||
diff --git a/arch/powerpc/boot/dts/gef_sbc610.dts b/arch/powerpc/boot/dts/gef_sbc610.dts deleted file mode 100644 index 5db3399b76b7..000000000000 --- a/arch/powerpc/boot/dts/gef_sbc610.dts +++ /dev/null | |||
@@ -1,423 +0,0 @@ | |||
1 | /* | ||
2 | * GE SBC610 Device Tree Source | ||
3 | * | ||
4 | * Copyright 2008 GE Intelligent Platforms Embedded Systems, 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 | * Based on: SBS CM6 Device Tree Source | ||
12 | * Copyright 2007 SBS Technologies GmbH & Co. KG | ||
13 | * And: mpc8641_hpcn.dts (MPC8641 HPCN Device Tree Source) | ||
14 | * Copyright 2006 Freescale Semiconductor Inc. | ||
15 | */ | ||
16 | |||
17 | /* | ||
18 | * Compiled with dtc -I dts -O dtb -o gef_sbc610.dtb gef_sbc610.dts | ||
19 | */ | ||
20 | |||
21 | /dts-v1/; | ||
22 | |||
23 | / { | ||
24 | model = "GEF_SBC610"; | ||
25 | compatible = "gef,sbc610"; | ||
26 | #address-cells = <1>; | ||
27 | #size-cells = <1>; | ||
28 | |||
29 | aliases { | ||
30 | ethernet0 = &enet0; | ||
31 | ethernet1 = &enet1; | ||
32 | serial0 = &serial0; | ||
33 | serial1 = &serial1; | ||
34 | pci0 = &pci0; | ||
35 | }; | ||
36 | |||
37 | cpus { | ||
38 | #address-cells = <1>; | ||
39 | #size-cells = <0>; | ||
40 | |||
41 | PowerPC,8641@0 { | ||
42 | device_type = "cpu"; | ||
43 | reg = <0>; | ||
44 | d-cache-line-size = <32>; // 32 bytes | ||
45 | i-cache-line-size = <32>; // 32 bytes | ||
46 | d-cache-size = <32768>; // L1, 32K | ||
47 | i-cache-size = <32768>; // L1, 32K | ||
48 | timebase-frequency = <0>; // From uboot | ||
49 | bus-frequency = <0>; // From uboot | ||
50 | clock-frequency = <0>; // From uboot | ||
51 | }; | ||
52 | PowerPC,8641@1 { | ||
53 | device_type = "cpu"; | ||
54 | reg = <1>; | ||
55 | d-cache-line-size = <32>; // 32 bytes | ||
56 | i-cache-line-size = <32>; // 32 bytes | ||
57 | d-cache-size = <32768>; // L1, 32K | ||
58 | i-cache-size = <32768>; // L1, 32K | ||
59 | timebase-frequency = <0>; // From uboot | ||
60 | bus-frequency = <0>; // From uboot | ||
61 | clock-frequency = <0>; // From uboot | ||
62 | }; | ||
63 | }; | ||
64 | |||
65 | memory { | ||
66 | device_type = "memory"; | ||
67 | reg = <0x0 0x40000000>; // set by uboot | ||
68 | }; | ||
69 | |||
70 | localbus@fef05000 { | ||
71 | #address-cells = <2>; | ||
72 | #size-cells = <1>; | ||
73 | compatible = "fsl,mpc8641-localbus", "simple-bus"; | ||
74 | reg = <0xfef05000 0x1000>; | ||
75 | interrupts = <19 2>; | ||
76 | interrupt-parent = <&mpic>; | ||
77 | |||
78 | ranges = <0 0 0xff000000 0x01000000 // 16MB Boot flash | ||
79 | 1 0 0xe8000000 0x08000000 // Paged Flash 0 | ||
80 | 2 0 0xe0000000 0x08000000 // Paged Flash 1 | ||
81 | 3 0 0xfc100000 0x00020000 // NVRAM | ||
82 | 4 0 0xfc000000 0x00008000 // FPGA | ||
83 | 5 0 0xfc008000 0x00008000 // AFIX FPGA | ||
84 | 6 0 0xfd000000 0x00800000 // IO FPGA (8-bit) | ||
85 | 7 0 0xfd800000 0x00800000>; // IO FPGA (32-bit) | ||
86 | |||
87 | /* flash@0,0 is a mirror of part of the memory in flash@1,0 | ||
88 | flash@0,0 { | ||
89 | compatible = "gef,sbc610-firmware-mirror", "cfi-flash"; | ||
90 | reg = <0x0 0x0 0x1000000>; | ||
91 | bank-width = <4>; | ||
92 | device-width = <2>; | ||
93 | #address-cells = <1>; | ||
94 | #size-cells = <1>; | ||
95 | partition@0 { | ||
96 | label = "firmware"; | ||
97 | reg = <0x0 0x1000000>; | ||
98 | read-only; | ||
99 | }; | ||
100 | }; | ||
101 | */ | ||
102 | |||
103 | flash@1,0 { | ||
104 | compatible = "gef,sbc610-paged-flash", "cfi-flash"; | ||
105 | reg = <0x1 0x0 0x8000000>; | ||
106 | bank-width = <4>; | ||
107 | device-width = <2>; | ||
108 | #address-cells = <1>; | ||
109 | #size-cells = <1>; | ||
110 | partition@0 { | ||
111 | label = "user"; | ||
112 | reg = <0x0 0x7800000>; | ||
113 | }; | ||
114 | partition@7800000 { | ||
115 | label = "firmware"; | ||
116 | reg = <0x7800000 0x800000>; | ||
117 | read-only; | ||
118 | }; | ||
119 | }; | ||
120 | |||
121 | nvram@3,0 { | ||
122 | device_type = "nvram"; | ||
123 | compatible = "simtek,stk14ca8"; | ||
124 | reg = <0x3 0x0 0x20000>; | ||
125 | }; | ||
126 | |||
127 | fpga@4,0 { | ||
128 | compatible = "gef,fpga-regs"; | ||
129 | reg = <0x4 0x0 0x40>; | ||
130 | }; | ||
131 | |||
132 | wdt@4,2000 { | ||
133 | compatible = "gef,fpga-wdt"; | ||
134 | reg = <0x4 0x2000 0x8>; | ||
135 | interrupts = <0x1a 0x4>; | ||
136 | interrupt-parent = <&gef_pic>; | ||
137 | }; | ||
138 | /* Second watchdog available, driver currently supports one. | ||
139 | wdt@4,2010 { | ||
140 | compatible = "gef,fpga-wdt"; | ||
141 | reg = <0x4 0x2010 0x8>; | ||
142 | interrupts = <0x1b 0x4>; | ||
143 | interrupt-parent = <&gef_pic>; | ||
144 | }; | ||
145 | */ | ||
146 | gef_pic: pic@4,4000 { | ||
147 | #interrupt-cells = <1>; | ||
148 | interrupt-controller; | ||
149 | compatible = "gef,fpga-pic"; | ||
150 | reg = <0x4 0x4000 0x20>; | ||
151 | interrupts = <0x8 | ||
152 | 0x9>; | ||
153 | interrupt-parent = <&mpic>; | ||
154 | |||
155 | }; | ||
156 | gef_gpio: gpio@7,14000 { | ||
157 | #gpio-cells = <2>; | ||
158 | compatible = "gef,sbc610-gpio"; | ||
159 | reg = <0x7 0x14000 0x24>; | ||
160 | gpio-controller; | ||
161 | }; | ||
162 | }; | ||
163 | |||
164 | soc@fef00000 { | ||
165 | #address-cells = <1>; | ||
166 | #size-cells = <1>; | ||
167 | #interrupt-cells = <2>; | ||
168 | device_type = "soc"; | ||
169 | compatible = "simple-bus"; | ||
170 | ranges = <0x0 0xfef00000 0x00100000>; | ||
171 | bus-frequency = <33333333>; | ||
172 | |||
173 | mcm-law@0 { | ||
174 | compatible = "fsl,mcm-law"; | ||
175 | reg = <0x0 0x1000>; | ||
176 | fsl,num-laws = <10>; | ||
177 | }; | ||
178 | |||
179 | mcm@1000 { | ||
180 | compatible = "fsl,mpc8641-mcm", "fsl,mcm"; | ||
181 | reg = <0x1000 0x1000>; | ||
182 | interrupts = <17 2>; | ||
183 | interrupt-parent = <&mpic>; | ||
184 | }; | ||
185 | |||
186 | i2c1: i2c@3000 { | ||
187 | #address-cells = <1>; | ||
188 | #size-cells = <0>; | ||
189 | compatible = "fsl-i2c"; | ||
190 | reg = <0x3000 0x100>; | ||
191 | interrupts = <0x2b 0x2>; | ||
192 | interrupt-parent = <&mpic>; | ||
193 | dfsrr; | ||
194 | |||
195 | hwmon@48 { | ||
196 | compatible = "national,lm92"; | ||
197 | reg = <0x48>; | ||
198 | }; | ||
199 | |||
200 | hwmon@4c { | ||
201 | compatible = "adi,adt7461"; | ||
202 | reg = <0x4c>; | ||
203 | }; | ||
204 | |||
205 | rtc@51 { | ||
206 | compatible = "epson,rx8581"; | ||
207 | reg = <0x00000051>; | ||
208 | }; | ||
209 | |||
210 | eti@6b { | ||
211 | compatible = "dallas,ds1682"; | ||
212 | reg = <0x6b>; | ||
213 | }; | ||
214 | }; | ||
215 | |||
216 | i2c2: i2c@3100 { | ||
217 | #address-cells = <1>; | ||
218 | #size-cells = <0>; | ||
219 | compatible = "fsl-i2c"; | ||
220 | reg = <0x3100 0x100>; | ||
221 | interrupts = <0x2b 0x2>; | ||
222 | interrupt-parent = <&mpic>; | ||
223 | dfsrr; | ||
224 | }; | ||
225 | |||
226 | dma@21300 { | ||
227 | #address-cells = <1>; | ||
228 | #size-cells = <1>; | ||
229 | compatible = "fsl,mpc8641-dma", "fsl,eloplus-dma"; | ||
230 | reg = <0x21300 0x4>; | ||
231 | ranges = <0x0 0x21100 0x200>; | ||
232 | cell-index = <0>; | ||
233 | dma-channel@0 { | ||
234 | compatible = "fsl,mpc8641-dma-channel", | ||
235 | "fsl,eloplus-dma-channel"; | ||
236 | reg = <0x0 0x80>; | ||
237 | cell-index = <0>; | ||
238 | interrupt-parent = <&mpic>; | ||
239 | interrupts = <20 2>; | ||
240 | }; | ||
241 | dma-channel@80 { | ||
242 | compatible = "fsl,mpc8641-dma-channel", | ||
243 | "fsl,eloplus-dma-channel"; | ||
244 | reg = <0x80 0x80>; | ||
245 | cell-index = <1>; | ||
246 | interrupt-parent = <&mpic>; | ||
247 | interrupts = <21 2>; | ||
248 | }; | ||
249 | dma-channel@100 { | ||
250 | compatible = "fsl,mpc8641-dma-channel", | ||
251 | "fsl,eloplus-dma-channel"; | ||
252 | reg = <0x100 0x80>; | ||
253 | cell-index = <2>; | ||
254 | interrupt-parent = <&mpic>; | ||
255 | interrupts = <22 2>; | ||
256 | }; | ||
257 | dma-channel@180 { | ||
258 | compatible = "fsl,mpc8641-dma-channel", | ||
259 | "fsl,eloplus-dma-channel"; | ||
260 | reg = <0x180 0x80>; | ||
261 | cell-index = <3>; | ||
262 | interrupt-parent = <&mpic>; | ||
263 | interrupts = <23 2>; | ||
264 | }; | ||
265 | }; | ||
266 | |||
267 | enet0: ethernet@24000 { | ||
268 | #address-cells = <1>; | ||
269 | #size-cells = <1>; | ||
270 | cell-index = <0>; | ||
271 | device_type = "network"; | ||
272 | model = "TSEC"; | ||
273 | compatible = "gianfar"; | ||
274 | reg = <0x24000 0x1000>; | ||
275 | ranges = <0x0 0x24000 0x1000>; | ||
276 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
277 | interrupts = <29 2 30 2 34 2>; | ||
278 | interrupt-parent = <&mpic>; | ||
279 | tbi-handle = <&tbi0>; | ||
280 | phy-handle = <&phy0>; | ||
281 | phy-connection-type = "gmii"; | ||
282 | |||
283 | mdio@520 { | ||
284 | #address-cells = <1>; | ||
285 | #size-cells = <0>; | ||
286 | compatible = "fsl,gianfar-mdio"; | ||
287 | reg = <0x520 0x20>; | ||
288 | |||
289 | phy0: ethernet-phy@0 { | ||
290 | interrupt-parent = <&gef_pic>; | ||
291 | interrupts = <0x9 0x4>; | ||
292 | reg = <1>; | ||
293 | }; | ||
294 | phy2: ethernet-phy@2 { | ||
295 | interrupt-parent = <&gef_pic>; | ||
296 | interrupts = <0x8 0x4>; | ||
297 | reg = <3>; | ||
298 | }; | ||
299 | tbi0: tbi-phy@11 { | ||
300 | reg = <0x11>; | ||
301 | device_type = "tbi-phy"; | ||
302 | }; | ||
303 | }; | ||
304 | }; | ||
305 | |||
306 | enet1: ethernet@26000 { | ||
307 | #address-cells = <1>; | ||
308 | #size-cells = <1>; | ||
309 | cell-index = <2>; | ||
310 | device_type = "network"; | ||
311 | model = "TSEC"; | ||
312 | compatible = "gianfar"; | ||
313 | reg = <0x26000 0x1000>; | ||
314 | ranges = <0x0 0x26000 0x1000>; | ||
315 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
316 | interrupts = <31 2 32 2 33 2>; | ||
317 | interrupt-parent = <&mpic>; | ||
318 | tbi-handle = <&tbi2>; | ||
319 | phy-handle = <&phy2>; | ||
320 | phy-connection-type = "gmii"; | ||
321 | |||
322 | mdio@520 { | ||
323 | #address-cells = <1>; | ||
324 | #size-cells = <0>; | ||
325 | compatible = "fsl,gianfar-tbi"; | ||
326 | reg = <0x520 0x20>; | ||
327 | |||
328 | tbi2: tbi-phy@11 { | ||
329 | reg = <0x11>; | ||
330 | device_type = "tbi-phy"; | ||
331 | }; | ||
332 | }; | ||
333 | }; | ||
334 | |||
335 | serial0: serial@4500 { | ||
336 | cell-index = <0>; | ||
337 | device_type = "serial"; | ||
338 | compatible = "fsl,ns16550", "ns16550"; | ||
339 | reg = <0x4500 0x100>; | ||
340 | clock-frequency = <0>; | ||
341 | interrupts = <0x2a 0x2>; | ||
342 | interrupt-parent = <&mpic>; | ||
343 | }; | ||
344 | |||
345 | serial1: serial@4600 { | ||
346 | cell-index = <1>; | ||
347 | device_type = "serial"; | ||
348 | compatible = "fsl,ns16550", "ns16550"; | ||
349 | reg = <0x4600 0x100>; | ||
350 | clock-frequency = <0>; | ||
351 | interrupts = <0x1c 0x2>; | ||
352 | interrupt-parent = <&mpic>; | ||
353 | }; | ||
354 | |||
355 | mpic: pic@40000 { | ||
356 | clock-frequency = <0>; | ||
357 | interrupt-controller; | ||
358 | #address-cells = <0>; | ||
359 | #interrupt-cells = <2>; | ||
360 | reg = <0x40000 0x40000>; | ||
361 | compatible = "chrp,open-pic"; | ||
362 | device_type = "open-pic"; | ||
363 | }; | ||
364 | |||
365 | msi@41600 { | ||
366 | compatible = "fsl,mpc8641-msi", "fsl,mpic-msi"; | ||
367 | reg = <0x41600 0x80>; | ||
368 | msi-available-ranges = <0 0x100>; | ||
369 | interrupts = < | ||
370 | 0xe0 0 | ||
371 | 0xe1 0 | ||
372 | 0xe2 0 | ||
373 | 0xe3 0 | ||
374 | 0xe4 0 | ||
375 | 0xe5 0 | ||
376 | 0xe6 0 | ||
377 | 0xe7 0>; | ||
378 | interrupt-parent = <&mpic>; | ||
379 | }; | ||
380 | |||
381 | global-utilities@e0000 { | ||
382 | compatible = "fsl,mpc8641-guts"; | ||
383 | reg = <0xe0000 0x1000>; | ||
384 | fsl,has-rstcr; | ||
385 | }; | ||
386 | }; | ||
387 | |||
388 | pci0: pcie@fef08000 { | ||
389 | compatible = "fsl,mpc8641-pcie"; | ||
390 | device_type = "pci"; | ||
391 | #interrupt-cells = <1>; | ||
392 | #size-cells = <2>; | ||
393 | #address-cells = <3>; | ||
394 | reg = <0xfef08000 0x1000>; | ||
395 | bus-range = <0x0 0xff>; | ||
396 | ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x40000000 | ||
397 | 0x01000000 0x0 0x00000000 0xfe000000 0x0 0x00400000>; | ||
398 | clock-frequency = <33333333>; | ||
399 | interrupt-parent = <&mpic>; | ||
400 | interrupts = <0x18 0x2>; | ||
401 | interrupt-map-mask = <0xf800 0x0 0x0 0x7>; | ||
402 | interrupt-map = < | ||
403 | 0x0000 0x0 0x0 0x1 &mpic 0x0 0x1 | ||
404 | 0x0000 0x0 0x0 0x2 &mpic 0x1 0x1 | ||
405 | 0x0000 0x0 0x0 0x3 &mpic 0x2 0x1 | ||
406 | 0x0000 0x0 0x0 0x4 &mpic 0x3 0x1 | ||
407 | >; | ||
408 | |||
409 | pcie@0 { | ||
410 | reg = <0 0 0 0 0>; | ||
411 | #size-cells = <2>; | ||
412 | #address-cells = <3>; | ||
413 | device_type = "pci"; | ||
414 | ranges = <0x02000000 0x0 0x80000000 | ||
415 | 0x02000000 0x0 0x80000000 | ||
416 | 0x0 0x40000000 | ||
417 | |||
418 | 0x01000000 0x0 0x00000000 | ||
419 | 0x01000000 0x0 0x00000000 | ||
420 | 0x0 0x00400000>; | ||
421 | }; | ||
422 | }; | ||
423 | }; | ||
diff --git a/arch/powerpc/boot/dts/sbc8641d.dts b/arch/powerpc/boot/dts/sbc8641d.dts deleted file mode 100644 index 68f0ed7626bd..000000000000 --- a/arch/powerpc/boot/dts/sbc8641d.dts +++ /dev/null | |||
@@ -1,447 +0,0 @@ | |||
1 | /* | ||
2 | * SBC8641D Device Tree Source | ||
3 | * | ||
4 | * Copyright 2008 Wind River Systems Inc. | ||
5 | * | ||
6 | * Paul Gortmaker (see MAINTAINERS for contact information) | ||
7 | * | ||
8 | * Based largely on the mpc8641_hpcn.dts by Freescale Semiconductor Inc. | ||
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 | |||
16 | /dts-v1/; | ||
17 | |||
18 | / { | ||
19 | model = "SBC8641D"; | ||
20 | compatible = "wind,sbc8641"; | ||
21 | #address-cells = <1>; | ||
22 | #size-cells = <1>; | ||
23 | |||
24 | aliases { | ||
25 | ethernet0 = &enet0; | ||
26 | ethernet1 = &enet1; | ||
27 | ethernet2 = &enet2; | ||
28 | ethernet3 = &enet3; | ||
29 | serial0 = &serial0; | ||
30 | serial1 = &serial1; | ||
31 | pci0 = &pci0; | ||
32 | pci1 = &pci1; | ||
33 | }; | ||
34 | |||
35 | cpus { | ||
36 | #address-cells = <1>; | ||
37 | #size-cells = <0>; | ||
38 | |||
39 | PowerPC,8641@0 { | ||
40 | device_type = "cpu"; | ||
41 | reg = <0>; | ||
42 | d-cache-line-size = <32>; | ||
43 | i-cache-line-size = <32>; | ||
44 | d-cache-size = <32768>; // L1 | ||
45 | i-cache-size = <32768>; // L1 | ||
46 | timebase-frequency = <0>; // From uboot | ||
47 | bus-frequency = <0>; // From uboot | ||
48 | clock-frequency = <0>; // From uboot | ||
49 | }; | ||
50 | PowerPC,8641@1 { | ||
51 | device_type = "cpu"; | ||
52 | reg = <1>; | ||
53 | d-cache-line-size = <32>; | ||
54 | i-cache-line-size = <32>; | ||
55 | d-cache-size = <32768>; | ||
56 | i-cache-size = <32768>; | ||
57 | timebase-frequency = <0>; // From uboot | ||
58 | bus-frequency = <0>; // From uboot | ||
59 | clock-frequency = <0>; // From uboot | ||
60 | }; | ||
61 | }; | ||
62 | |||
63 | memory { | ||
64 | device_type = "memory"; | ||
65 | reg = <0x00000000 0x20000000>; // 512M at 0x0 | ||
66 | }; | ||
67 | |||
68 | localbus@f8005000 { | ||
69 | #address-cells = <2>; | ||
70 | #size-cells = <1>; | ||
71 | compatible = "fsl,mpc8641-localbus", "simple-bus"; | ||
72 | reg = <0xf8005000 0x1000>; | ||
73 | interrupts = <19 2>; | ||
74 | interrupt-parent = <&mpic>; | ||
75 | |||
76 | ranges = <0 0 0xff000000 0x01000000 // 16MB Boot flash | ||
77 | 1 0 0xf0000000 0x00010000 // 64KB EEPROM | ||
78 | 2 0 0xf1000000 0x00100000 // EPLD (1MB) | ||
79 | 3 0 0xe0000000 0x04000000 // 64MB LB SDRAM (CS3) | ||
80 | 4 0 0xe4000000 0x04000000 // 64MB LB SDRAM (CS4) | ||
81 | 6 0 0xf4000000 0x00100000 // LCD display (1MB) | ||
82 | 7 0 0xe8000000 0x04000000>; // 64MB OneNAND | ||
83 | |||
84 | flash@0,0 { | ||
85 | compatible = "cfi-flash"; | ||
86 | reg = <0 0 0x01000000>; | ||
87 | bank-width = <2>; | ||
88 | device-width = <2>; | ||
89 | #address-cells = <1>; | ||
90 | #size-cells = <1>; | ||
91 | partition@0 { | ||
92 | label = "dtb"; | ||
93 | reg = <0x00000000 0x00100000>; | ||
94 | read-only; | ||
95 | }; | ||
96 | partition@300000 { | ||
97 | label = "kernel"; | ||
98 | reg = <0x00100000 0x00400000>; | ||
99 | read-only; | ||
100 | }; | ||
101 | partition@400000 { | ||
102 | label = "fs"; | ||
103 | reg = <0x00500000 0x00a00000>; | ||
104 | }; | ||
105 | partition@700000 { | ||
106 | label = "firmware"; | ||
107 | reg = <0x00f00000 0x00100000>; | ||
108 | read-only; | ||
109 | }; | ||
110 | }; | ||
111 | |||
112 | epld@2,0 { | ||
113 | compatible = "wrs,epld-localbus"; | ||
114 | #address-cells = <2>; | ||
115 | #size-cells = <1>; | ||
116 | reg = <2 0 0x100000>; | ||
117 | ranges = <0 0 5 0 1 // User switches | ||
118 | 1 0 5 1 1 // Board ID/Rev | ||
119 | 3 0 5 3 1>; // LEDs | ||
120 | }; | ||
121 | }; | ||
122 | |||
123 | soc@f8000000 { | ||
124 | #address-cells = <1>; | ||
125 | #size-cells = <1>; | ||
126 | device_type = "soc"; | ||
127 | compatible = "simple-bus"; | ||
128 | ranges = <0x00000000 0xf8000000 0x00100000>; | ||
129 | bus-frequency = <0>; | ||
130 | |||
131 | mcm-law@0 { | ||
132 | compatible = "fsl,mcm-law"; | ||
133 | reg = <0x0 0x1000>; | ||
134 | fsl,num-laws = <10>; | ||
135 | }; | ||
136 | |||
137 | mcm@1000 { | ||
138 | compatible = "fsl,mpc8641-mcm", "fsl,mcm"; | ||
139 | reg = <0x1000 0x1000>; | ||
140 | interrupts = <17 2>; | ||
141 | interrupt-parent = <&mpic>; | ||
142 | }; | ||
143 | |||
144 | i2c@3000 { | ||
145 | #address-cells = <1>; | ||
146 | #size-cells = <0>; | ||
147 | cell-index = <0>; | ||
148 | compatible = "fsl-i2c"; | ||
149 | reg = <0x3000 0x100>; | ||
150 | interrupts = <43 2>; | ||
151 | interrupt-parent = <&mpic>; | ||
152 | dfsrr; | ||
153 | }; | ||
154 | |||
155 | i2c@3100 { | ||
156 | #address-cells = <1>; | ||
157 | #size-cells = <0>; | ||
158 | cell-index = <1>; | ||
159 | compatible = "fsl-i2c"; | ||
160 | reg = <0x3100 0x100>; | ||
161 | interrupts = <43 2>; | ||
162 | interrupt-parent = <&mpic>; | ||
163 | dfsrr; | ||
164 | }; | ||
165 | |||
166 | dma@21300 { | ||
167 | #address-cells = <1>; | ||
168 | #size-cells = <1>; | ||
169 | compatible = "fsl,mpc8641-dma", "fsl,eloplus-dma"; | ||
170 | reg = <0x21300 0x4>; | ||
171 | ranges = <0x0 0x21100 0x200>; | ||
172 | cell-index = <0>; | ||
173 | dma-channel@0 { | ||
174 | compatible = "fsl,mpc8641-dma-channel", | ||
175 | "fsl,eloplus-dma-channel"; | ||
176 | reg = <0x0 0x80>; | ||
177 | cell-index = <0>; | ||
178 | interrupt-parent = <&mpic>; | ||
179 | interrupts = <20 2>; | ||
180 | }; | ||
181 | dma-channel@80 { | ||
182 | compatible = "fsl,mpc8641-dma-channel", | ||
183 | "fsl,eloplus-dma-channel"; | ||
184 | reg = <0x80 0x80>; | ||
185 | cell-index = <1>; | ||
186 | interrupt-parent = <&mpic>; | ||
187 | interrupts = <21 2>; | ||
188 | }; | ||
189 | dma-channel@100 { | ||
190 | compatible = "fsl,mpc8641-dma-channel", | ||
191 | "fsl,eloplus-dma-channel"; | ||
192 | reg = <0x100 0x80>; | ||
193 | cell-index = <2>; | ||
194 | interrupt-parent = <&mpic>; | ||
195 | interrupts = <22 2>; | ||
196 | }; | ||
197 | dma-channel@180 { | ||
198 | compatible = "fsl,mpc8641-dma-channel", | ||
199 | "fsl,eloplus-dma-channel"; | ||
200 | reg = <0x180 0x80>; | ||
201 | cell-index = <3>; | ||
202 | interrupt-parent = <&mpic>; | ||
203 | interrupts = <23 2>; | ||
204 | }; | ||
205 | }; | ||
206 | |||
207 | enet0: ethernet@24000 { | ||
208 | #address-cells = <1>; | ||
209 | #size-cells = <1>; | ||
210 | cell-index = <0>; | ||
211 | device_type = "network"; | ||
212 | model = "TSEC"; | ||
213 | compatible = "gianfar"; | ||
214 | reg = <0x24000 0x1000>; | ||
215 | ranges = <0x0 0x24000 0x1000>; | ||
216 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
217 | interrupts = <29 2 30 2 34 2>; | ||
218 | interrupt-parent = <&mpic>; | ||
219 | tbi-handle = <&tbi0>; | ||
220 | phy-handle = <&phy0>; | ||
221 | phy-connection-type = "rgmii-id"; | ||
222 | |||
223 | mdio@520 { | ||
224 | #address-cells = <1>; | ||
225 | #size-cells = <0>; | ||
226 | compatible = "fsl,gianfar-mdio"; | ||
227 | reg = <0x520 0x20>; | ||
228 | |||
229 | phy0: ethernet-phy@1f { | ||
230 | reg = <0x1f>; | ||
231 | }; | ||
232 | phy1: ethernet-phy@0 { | ||
233 | reg = <0>; | ||
234 | }; | ||
235 | phy2: ethernet-phy@1 { | ||
236 | reg = <1>; | ||
237 | }; | ||
238 | phy3: ethernet-phy@2 { | ||
239 | reg = <2>; | ||
240 | }; | ||
241 | tbi0: tbi-phy@11 { | ||
242 | reg = <0x11>; | ||
243 | device_type = "tbi-phy"; | ||
244 | }; | ||
245 | }; | ||
246 | }; | ||
247 | |||
248 | enet1: ethernet@25000 { | ||
249 | #address-cells = <1>; | ||
250 | #size-cells = <1>; | ||
251 | cell-index = <1>; | ||
252 | device_type = "network"; | ||
253 | model = "TSEC"; | ||
254 | compatible = "gianfar"; | ||
255 | reg = <0x25000 0x1000>; | ||
256 | ranges = <0x0 0x25000 0x1000>; | ||
257 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
258 | interrupts = <35 2 36 2 40 2>; | ||
259 | interrupt-parent = <&mpic>; | ||
260 | tbi-handle = <&tbi1>; | ||
261 | phy-handle = <&phy1>; | ||
262 | phy-connection-type = "rgmii-id"; | ||
263 | |||
264 | mdio@520 { | ||
265 | #address-cells = <1>; | ||
266 | #size-cells = <0>; | ||
267 | compatible = "fsl,gianfar-tbi"; | ||
268 | reg = <0x520 0x20>; | ||
269 | |||
270 | tbi1: tbi-phy@11 { | ||
271 | reg = <0x11>; | ||
272 | device_type = "tbi-phy"; | ||
273 | }; | ||
274 | }; | ||
275 | }; | ||
276 | |||
277 | enet2: ethernet@26000 { | ||
278 | #address-cells = <1>; | ||
279 | #size-cells = <1>; | ||
280 | cell-index = <2>; | ||
281 | device_type = "network"; | ||
282 | model = "TSEC"; | ||
283 | compatible = "gianfar"; | ||
284 | reg = <0x26000 0x1000>; | ||
285 | ranges = <0x0 0x26000 0x1000>; | ||
286 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
287 | interrupts = <31 2 32 2 33 2>; | ||
288 | interrupt-parent = <&mpic>; | ||
289 | tbi-handle = <&tbi2>; | ||
290 | phy-handle = <&phy2>; | ||
291 | phy-connection-type = "rgmii-id"; | ||
292 | |||
293 | mdio@520 { | ||
294 | #address-cells = <1>; | ||
295 | #size-cells = <0>; | ||
296 | compatible = "fsl,gianfar-tbi"; | ||
297 | reg = <0x520 0x20>; | ||
298 | |||
299 | tbi2: tbi-phy@11 { | ||
300 | reg = <0x11>; | ||
301 | device_type = "tbi-phy"; | ||
302 | }; | ||
303 | }; | ||
304 | }; | ||
305 | |||
306 | enet3: ethernet@27000 { | ||
307 | #address-cells = <1>; | ||
308 | #size-cells = <1>; | ||
309 | cell-index = <3>; | ||
310 | device_type = "network"; | ||
311 | model = "TSEC"; | ||
312 | compatible = "gianfar"; | ||
313 | reg = <0x27000 0x1000>; | ||
314 | ranges = <0x0 0x27000 0x1000>; | ||
315 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
316 | interrupts = <37 2 38 2 39 2>; | ||
317 | interrupt-parent = <&mpic>; | ||
318 | tbi-handle = <&tbi3>; | ||
319 | phy-handle = <&phy3>; | ||
320 | phy-connection-type = "rgmii-id"; | ||
321 | |||
322 | mdio@520 { | ||
323 | #address-cells = <1>; | ||
324 | #size-cells = <0>; | ||
325 | compatible = "fsl,gianfar-tbi"; | ||
326 | reg = <0x520 0x20>; | ||
327 | |||
328 | tbi3: tbi-phy@11 { | ||
329 | reg = <0x11>; | ||
330 | device_type = "tbi-phy"; | ||
331 | }; | ||
332 | }; | ||
333 | }; | ||
334 | |||
335 | serial0: serial@4500 { | ||
336 | cell-index = <0>; | ||
337 | device_type = "serial"; | ||
338 | compatible = "fsl,ns16550", "ns16550"; | ||
339 | reg = <0x4500 0x100>; | ||
340 | clock-frequency = <0>; | ||
341 | interrupts = <42 2>; | ||
342 | interrupt-parent = <&mpic>; | ||
343 | }; | ||
344 | |||
345 | serial1: serial@4600 { | ||
346 | cell-index = <1>; | ||
347 | device_type = "serial"; | ||
348 | compatible = "fsl,ns16550", "ns16550"; | ||
349 | reg = <0x4600 0x100>; | ||
350 | clock-frequency = <0>; | ||
351 | interrupts = <28 2>; | ||
352 | interrupt-parent = <&mpic>; | ||
353 | }; | ||
354 | |||
355 | mpic: pic@40000 { | ||
356 | clock-frequency = <0>; | ||
357 | interrupt-controller; | ||
358 | #address-cells = <0>; | ||
359 | #interrupt-cells = <2>; | ||
360 | reg = <0x40000 0x40000>; | ||
361 | compatible = "chrp,open-pic"; | ||
362 | device_type = "open-pic"; | ||
363 | big-endian; | ||
364 | }; | ||
365 | |||
366 | global-utilities@e0000 { | ||
367 | compatible = "fsl,mpc8641-guts"; | ||
368 | reg = <0xe0000 0x1000>; | ||
369 | fsl,has-rstcr; | ||
370 | }; | ||
371 | }; | ||
372 | |||
373 | pci0: pcie@f8008000 { | ||
374 | compatible = "fsl,mpc8641-pcie"; | ||
375 | device_type = "pci"; | ||
376 | #interrupt-cells = <1>; | ||
377 | #size-cells = <2>; | ||
378 | #address-cells = <3>; | ||
379 | reg = <0xf8008000 0x1000>; | ||
380 | bus-range = <0x0 0xff>; | ||
381 | ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x20000000 | ||
382 | 0x01000000 0x0 0x00000000 0xe2000000 0x0 0x00100000>; | ||
383 | clock-frequency = <33333333>; | ||
384 | interrupt-parent = <&mpic>; | ||
385 | interrupts = <24 2>; | ||
386 | interrupt-map-mask = <0xff00 0 0 7>; | ||
387 | interrupt-map = < | ||
388 | /* IDSEL 0x0 */ | ||
389 | 0x0000 0 0 1 &mpic 0 1 | ||
390 | 0x0000 0 0 2 &mpic 1 1 | ||
391 | 0x0000 0 0 3 &mpic 2 1 | ||
392 | 0x0000 0 0 4 &mpic 3 1 | ||
393 | >; | ||
394 | |||
395 | pcie@0 { | ||
396 | reg = <0 0 0 0 0>; | ||
397 | #size-cells = <2>; | ||
398 | #address-cells = <3>; | ||
399 | device_type = "pci"; | ||
400 | ranges = <0x02000000 0x0 0x80000000 | ||
401 | 0x02000000 0x0 0x80000000 | ||
402 | 0x0 0x20000000 | ||
403 | |||
404 | 0x01000000 0x0 0x00000000 | ||
405 | 0x01000000 0x0 0x00000000 | ||
406 | 0x0 0x00100000>; | ||
407 | }; | ||
408 | |||
409 | }; | ||
410 | |||
411 | pci1: pcie@f8009000 { | ||
412 | compatible = "fsl,mpc8641-pcie"; | ||
413 | device_type = "pci"; | ||
414 | #interrupt-cells = <1>; | ||
415 | #size-cells = <2>; | ||
416 | #address-cells = <3>; | ||
417 | reg = <0xf8009000 0x1000>; | ||
418 | bus-range = <0 0xff>; | ||
419 | ranges = <0x02000000 0x0 0xa0000000 0xa0000000 0x0 0x20000000 | ||
420 | 0x01000000 0x0 0x00000000 0xe3000000 0x0 0x00100000>; | ||
421 | clock-frequency = <33333333>; | ||
422 | interrupt-parent = <&mpic>; | ||
423 | interrupts = <25 2>; | ||
424 | interrupt-map-mask = <0xf800 0 0 7>; | ||
425 | interrupt-map = < | ||
426 | /* IDSEL 0x0 */ | ||
427 | 0x0000 0 0 1 &mpic 4 1 | ||
428 | 0x0000 0 0 2 &mpic 5 1 | ||
429 | 0x0000 0 0 3 &mpic 6 1 | ||
430 | 0x0000 0 0 4 &mpic 7 1 | ||
431 | >; | ||
432 | |||
433 | pcie@0 { | ||
434 | reg = <0 0 0 0 0>; | ||
435 | #size-cells = <2>; | ||
436 | #address-cells = <3>; | ||
437 | device_type = "pci"; | ||
438 | ranges = <0x02000000 0x0 0xa0000000 | ||
439 | 0x02000000 0x0 0xa0000000 | ||
440 | 0x0 0x20000000 | ||
441 | |||
442 | 0x01000000 0x0 0x00000000 | ||
443 | 0x01000000 0x0 0x00000000 | ||
444 | 0x0 0x00100000>; | ||
445 | }; | ||
446 | }; | ||
447 | }; | ||
diff --git a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig b/arch/powerpc/configs/83xx/mpc834x_itx_defconfig index 2a5fdcbabcdd..87fc15bce407 100644 --- a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig +++ b/arch/powerpc/configs/83xx/mpc834x_itx_defconfig | |||
@@ -35,7 +35,6 @@ CONFIG_MTD_PHYSMAP=y | |||
35 | CONFIG_BLK_DEV_LOOP=y | 35 | CONFIG_BLK_DEV_LOOP=y |
36 | CONFIG_BLK_DEV_RAM=y | 36 | CONFIG_BLK_DEV_RAM=y |
37 | CONFIG_BLK_DEV_RAM_SIZE=32768 | 37 | CONFIG_BLK_DEV_RAM_SIZE=32768 |
38 | CONFIG_IDE=y | ||
39 | CONFIG_BLK_DEV_SD=y | 38 | CONFIG_BLK_DEV_SD=y |
40 | CONFIG_CHR_DEV_SG=y | 39 | CONFIG_CHR_DEV_SG=y |
41 | CONFIG_SCSI_SPI_ATTRS=y | 40 | CONFIG_SCSI_SPI_ATTRS=y |
diff --git a/arch/powerpc/configs/85xx/ksi8560_defconfig b/arch/powerpc/configs/85xx/ksi8560_defconfig index 3be85c5f1a2a..6f753a71fe5d 100644 --- a/arch/powerpc/configs/85xx/ksi8560_defconfig +++ b/arch/powerpc/configs/85xx/ksi8560_defconfig | |||
@@ -34,7 +34,6 @@ CONFIG_MTD_PHYSMAP_OF=y | |||
34 | CONFIG_BLK_DEV_LOOP=y | 34 | CONFIG_BLK_DEV_LOOP=y |
35 | CONFIG_BLK_DEV_RAM=y | 35 | CONFIG_BLK_DEV_RAM=y |
36 | CONFIG_BLK_DEV_RAM_SIZE=32768 | 36 | CONFIG_BLK_DEV_RAM_SIZE=32768 |
37 | CONFIG_IDE=y | ||
38 | CONFIG_NETDEVICES=y | 37 | CONFIG_NETDEVICES=y |
39 | CONFIG_FS_ENET=y | 38 | CONFIG_FS_ENET=y |
40 | # CONFIG_FS_ENET_HAS_SCC is not set | 39 | # CONFIG_FS_ENET_HAS_SCC is not set |
diff --git a/arch/powerpc/configs/85xx/stx_gp3_defconfig b/arch/powerpc/configs/85xx/stx_gp3_defconfig index f66d16ba8c58..b45190556c0c 100644 --- a/arch/powerpc/configs/85xx/stx_gp3_defconfig +++ b/arch/powerpc/configs/85xx/stx_gp3_defconfig | |||
@@ -31,8 +31,6 @@ CONFIG_BLK_DEV_LOOP=m | |||
31 | CONFIG_BLK_DEV_NBD=m | 31 | CONFIG_BLK_DEV_NBD=m |
32 | CONFIG_BLK_DEV_RAM=y | 32 | CONFIG_BLK_DEV_RAM=y |
33 | CONFIG_BLK_DEV_RAM_SIZE=32768 | 33 | CONFIG_BLK_DEV_RAM_SIZE=32768 |
34 | CONFIG_IDE=y | ||
35 | CONFIG_BLK_DEV_IDECD=m | ||
36 | CONFIG_SCSI=m | 34 | CONFIG_SCSI=m |
37 | CONFIG_BLK_DEV_SD=m | 35 | CONFIG_BLK_DEV_SD=m |
38 | CONFIG_CHR_DEV_ST=m | 36 | CONFIG_CHR_DEV_ST=m |
diff --git a/arch/powerpc/configs/86xx-hw.config b/arch/powerpc/configs/86xx-hw.config new file mode 100644 index 000000000000..f91f8895fc93 --- /dev/null +++ b/arch/powerpc/configs/86xx-hw.config | |||
@@ -0,0 +1,104 @@ | |||
1 | CONFIG_ATA=y | ||
2 | CONFIG_BLK_DEV_SD=y | ||
3 | CONFIG_BLK_DEV_SR=y | ||
4 | CONFIG_BROADCOM_PHY=y | ||
5 | # CONFIG_CARDBUS is not set | ||
6 | CONFIG_CHR_DEV_SG=y | ||
7 | CONFIG_CHR_DEV_ST=y | ||
8 | CONFIG_CRC_T10DIF=y | ||
9 | CONFIG_CRYPTO_HMAC=y | ||
10 | CONFIG_DS1682=y | ||
11 | CONFIG_EEPROM_LEGACY=y | ||
12 | CONFIG_GEF_WDT=y | ||
13 | CONFIG_GIANFAR=y | ||
14 | CONFIG_GPIO_GE_FPGA=y | ||
15 | CONFIG_GPIO_SYSFS=y | ||
16 | CONFIG_HID_A4TECH=y | ||
17 | CONFIG_HID_APPLE=y | ||
18 | CONFIG_HID_BELKIN=y | ||
19 | CONFIG_HID_CHERRY=y | ||
20 | CONFIG_HID_CHICONY=y | ||
21 | CONFIG_HID_CYPRESS=y | ||
22 | CONFIG_HID_EZKEY=y | ||
23 | CONFIG_HID_GYRATION=y | ||
24 | CONFIG_HID_LOGITECH=y | ||
25 | CONFIG_HID_MICROSOFT=y | ||
26 | CONFIG_HID_MONTEREY=y | ||
27 | CONFIG_HID_PANTHERLORD=y | ||
28 | CONFIG_HID_PETALYNX=y | ||
29 | CONFIG_HID_SAMSUNG=y | ||
30 | CONFIG_HID_SUNPLUS=y | ||
31 | CONFIG_HW_RANDOM=y | ||
32 | CONFIG_HZ_1000=y | ||
33 | CONFIG_I2C_MPC=y | ||
34 | CONFIG_I2C=y | ||
35 | # CONFIG_INET_XFRM_MODE_TRANSPORT is not set | ||
36 | # CONFIG_INET_XFRM_MODE_TUNNEL is not set | ||
37 | CONFIG_INPUT_FF_MEMLESS=m | ||
38 | # CONFIG_INPUT_KEYBOARD is not set | ||
39 | # CONFIG_INPUT_MOUSEDEV is not set | ||
40 | # CONFIG_INPUT_MOUSE is not set | ||
41 | CONFIG_MTD_BLOCK=y | ||
42 | CONFIG_MTD_CFI_ADV_OPTIONS=y | ||
43 | CONFIG_MTD_CFI_AMDSTD=y | ||
44 | CONFIG_MTD_CFI_INTELEXT=y | ||
45 | CONFIG_MTD_CFI_LE_BYTE_SWAP=y | ||
46 | CONFIG_MTD_CFI=y | ||
47 | CONFIG_MTD_CMDLINE_PARTS=y | ||
48 | CONFIG_MTD_JEDECPROBE=y | ||
49 | CONFIG_MTD_NAND_FSL_ELBC=y | ||
50 | CONFIG_MTD_NAND=y | ||
51 | CONFIG_MTD_PHYSMAP_OF=y | ||
52 | CONFIG_NETDEVICES=y | ||
53 | CONFIG_NET_TULIP=y | ||
54 | CONFIG_NVRAM=y | ||
55 | CONFIG_PATA_ALI=y | ||
56 | CONFIG_PCCARD=y | ||
57 | CONFIG_PCI_DEBUG=y | ||
58 | # CONFIG_PCIEASPM is not set | ||
59 | CONFIG_PCIEPORTBUS=y | ||
60 | CONFIG_PCI=y | ||
61 | # CONFIG_PCMCIA_LOAD_CIS is not set | ||
62 | # CONFIG_PPC_CHRP is not set | ||
63 | # CONFIG_PPC_PMAC is not set | ||
64 | CONFIG_RTC_CLASS=y | ||
65 | CONFIG_RTC_DRV_CMOS=y | ||
66 | CONFIG_RTC_DRV_RX8581=y | ||
67 | CONFIG_SATA_AHCI=y | ||
68 | CONFIG_SATA_SIL24=y | ||
69 | CONFIG_SATA_SIL=y | ||
70 | CONFIG_SCSI_LOGGING=y | ||
71 | CONFIG_SENSORS_LM90=y | ||
72 | CONFIG_SENSORS_LM92=y | ||
73 | CONFIG_SERIAL_8250_CONSOLE=y | ||
74 | CONFIG_SERIAL_8250_DETECT_IRQ=y | ||
75 | CONFIG_SERIAL_8250_EXTENDED=y | ||
76 | CONFIG_SERIAL_8250_MANY_PORTS=y | ||
77 | CONFIG_SERIAL_8250_NR_UARTS=2 | ||
78 | CONFIG_SERIAL_8250_RSA=y | ||
79 | CONFIG_SERIAL_8250_RUNTIME_UARTS=2 | ||
80 | CONFIG_SERIAL_8250_SHARE_IRQ=y | ||
81 | CONFIG_SERIAL_8250=y | ||
82 | CONFIG_SERIO_LIBPS2=y | ||
83 | CONFIG_SND_INTEL8X0=y | ||
84 | CONFIG_SND_MIXER_OSS=y | ||
85 | CONFIG_SND_PCM_OSS=y | ||
86 | # CONFIG_SND_SUPPORT_OLD_API is not set | ||
87 | CONFIG_SND=y | ||
88 | CONFIG_SOUND=y | ||
89 | CONFIG_ULI526X=y | ||
90 | CONFIG_USB_EHCI_HCD=y | ||
91 | CONFIG_USB_MON=y | ||
92 | CONFIG_USB_OHCI_HCD_PPC_OF_BE=y | ||
93 | CONFIG_USB_OHCI_HCD_PPC_OF_LE=y | ||
94 | CONFIG_USB_OHCI_HCD=y | ||
95 | CONFIG_USB_STORAGE=y | ||
96 | CONFIG_USB=y | ||
97 | CONFIG_VITESSE_PHY=y | ||
98 | CONFIG_VME_BUS=y | ||
99 | CONFIG_VME_TSI148=y | ||
100 | CONFIG_WATCHDOG=y | ||
101 | # CONFIG_YENTA_O2 is not set | ||
102 | # CONFIG_YENTA_RICOH is not set | ||
103 | # CONFIG_YENTA_TOSHIBA is not set | ||
104 | CONFIG_YENTA=y | ||
diff --git a/arch/powerpc/configs/86xx-smp.config b/arch/powerpc/configs/86xx-smp.config new file mode 100644 index 000000000000..40ac38d3038c --- /dev/null +++ b/arch/powerpc/configs/86xx-smp.config | |||
@@ -0,0 +1,2 @@ | |||
1 | CONFIG_NR_CPUS=2 | ||
2 | CONFIG_SMP=y | ||
diff --git a/arch/powerpc/configs/86xx/gef_ppc9a_defconfig b/arch/powerpc/configs/86xx/gef_ppc9a_defconfig deleted file mode 100644 index 9792a2cb9b20..000000000000 --- a/arch/powerpc/configs/86xx/gef_ppc9a_defconfig +++ /dev/null | |||
@@ -1,216 +0,0 @@ | |||
1 | CONFIG_SMP=y | ||
2 | CONFIG_NR_CPUS=2 | ||
3 | CONFIG_SYSVIPC=y | ||
4 | CONFIG_POSIX_MQUEUE=y | ||
5 | CONFIG_HIGH_RES_TIMERS=y | ||
6 | CONFIG_BSD_PROCESS_ACCT=y | ||
7 | CONFIG_BSD_PROCESS_ACCT_V3=y | ||
8 | CONFIG_IKCONFIG=y | ||
9 | CONFIG_IKCONFIG_PROC=y | ||
10 | CONFIG_LOG_BUF_SHIFT=14 | ||
11 | CONFIG_RELAY=y | ||
12 | CONFIG_BLK_DEV_INITRD=y | ||
13 | CONFIG_EXPERT=y | ||
14 | CONFIG_SLAB=y | ||
15 | CONFIG_MODULES=y | ||
16 | CONFIG_MODULE_UNLOAD=y | ||
17 | # CONFIG_BLK_DEV_BSG is not set | ||
18 | # CONFIG_PPC_CHRP is not set | ||
19 | # CONFIG_PPC_PMAC is not set | ||
20 | CONFIG_PPC_86xx=y | ||
21 | CONFIG_GEF_PPC9A=y | ||
22 | CONFIG_HIGHMEM=y | ||
23 | CONFIG_HZ_1000=y | ||
24 | CONFIG_PREEMPT=y | ||
25 | CONFIG_BINFMT_MISC=m | ||
26 | CONFIG_PCI=y | ||
27 | CONFIG_PCIEPORTBUS=y | ||
28 | # CONFIG_PCIEASPM is not set | ||
29 | CONFIG_PCCARD=y | ||
30 | # CONFIG_PCMCIA_LOAD_CIS is not set | ||
31 | # CONFIG_CARDBUS is not set | ||
32 | CONFIG_YENTA=y | ||
33 | # CONFIG_YENTA_O2 is not set | ||
34 | # CONFIG_YENTA_RICOH is not set | ||
35 | # CONFIG_YENTA_TOSHIBA is not set | ||
36 | CONFIG_NET=y | ||
37 | CONFIG_PACKET=y | ||
38 | CONFIG_UNIX=y | ||
39 | CONFIG_XFRM_USER=m | ||
40 | CONFIG_NET_KEY=m | ||
41 | CONFIG_INET=y | ||
42 | CONFIG_IP_MULTICAST=y | ||
43 | CONFIG_IP_ADVANCED_ROUTER=y | ||
44 | CONFIG_IP_MULTIPLE_TABLES=y | ||
45 | CONFIG_IP_ROUTE_MULTIPATH=y | ||
46 | CONFIG_IP_ROUTE_VERBOSE=y | ||
47 | CONFIG_IP_PNP=y | ||
48 | CONFIG_IP_PNP_DHCP=y | ||
49 | CONFIG_IP_PNP_BOOTP=y | ||
50 | CONFIG_IP_PNP_RARP=y | ||
51 | CONFIG_NET_IPIP=m | ||
52 | CONFIG_IP_MROUTE=y | ||
53 | CONFIG_IP_PIMSM_V1=y | ||
54 | CONFIG_IP_PIMSM_V2=y | ||
55 | CONFIG_SYN_COOKIES=y | ||
56 | CONFIG_INET_AH=m | ||
57 | CONFIG_INET_ESP=m | ||
58 | CONFIG_INET_IPCOMP=m | ||
59 | # CONFIG_INET_XFRM_MODE_BEET is not set | ||
60 | CONFIG_INET6_AH=m | ||
61 | CONFIG_INET6_ESP=m | ||
62 | CONFIG_INET6_IPCOMP=m | ||
63 | CONFIG_IPV6_TUNNEL=m | ||
64 | CONFIG_NET_PKTGEN=m | ||
65 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
66 | CONFIG_MTD=y | ||
67 | CONFIG_MTD_BLOCK=y | ||
68 | CONFIG_MTD_CFI=y | ||
69 | CONFIG_MTD_JEDECPROBE=y | ||
70 | CONFIG_MTD_CFI_INTELEXT=y | ||
71 | CONFIG_MTD_CFI_AMDSTD=y | ||
72 | CONFIG_MTD_PHYSMAP_OF=y | ||
73 | CONFIG_BLK_DEV_LOOP=m | ||
74 | CONFIG_BLK_DEV_CRYPTOLOOP=m | ||
75 | CONFIG_BLK_DEV_NBD=m | ||
76 | CONFIG_BLK_DEV_RAM=y | ||
77 | CONFIG_BLK_DEV_RAM_SIZE=131072 | ||
78 | CONFIG_DS1682=y | ||
79 | CONFIG_IDE=y | ||
80 | CONFIG_BLK_DEV_IDECS=y | ||
81 | CONFIG_BLK_DEV_SD=y | ||
82 | CONFIG_CHR_DEV_ST=y | ||
83 | CONFIG_BLK_DEV_SR=y | ||
84 | CONFIG_ATA=y | ||
85 | CONFIG_SATA_SIL=y | ||
86 | CONFIG_NETDEVICES=y | ||
87 | CONFIG_BONDING=m | ||
88 | CONFIG_DUMMY=m | ||
89 | CONFIG_NETCONSOLE=y | ||
90 | CONFIG_TUN=m | ||
91 | CONFIG_GIANFAR=y | ||
92 | CONFIG_PPP=m | ||
93 | CONFIG_PPP_BSDCOMP=m | ||
94 | CONFIG_PPP_DEFLATE=m | ||
95 | CONFIG_PPP_FILTER=y | ||
96 | CONFIG_PPP_MULTILINK=y | ||
97 | CONFIG_PPPOE=m | ||
98 | CONFIG_PPP_ASYNC=m | ||
99 | CONFIG_PPP_SYNC_TTY=m | ||
100 | CONFIG_SLIP=m | ||
101 | CONFIG_SLIP_COMPRESSED=y | ||
102 | CONFIG_SLIP_SMART=y | ||
103 | CONFIG_SLIP_MODE_SLIP6=y | ||
104 | # CONFIG_INPUT_KEYBOARD is not set | ||
105 | # CONFIG_INPUT_MOUSE is not set | ||
106 | # CONFIG_SERIO is not set | ||
107 | # CONFIG_LEGACY_PTYS is not set | ||
108 | CONFIG_SERIAL_8250=y | ||
109 | CONFIG_SERIAL_8250_CONSOLE=y | ||
110 | # CONFIG_SERIAL_8250_PCI is not set | ||
111 | CONFIG_SERIAL_8250_NR_UARTS=2 | ||
112 | CONFIG_SERIAL_8250_RUNTIME_UARTS=2 | ||
113 | CONFIG_HW_RANDOM=y | ||
114 | CONFIG_NVRAM=y | ||
115 | CONFIG_I2C=y | ||
116 | CONFIG_I2C_CHARDEV=y | ||
117 | CONFIG_I2C_MPC=y | ||
118 | CONFIG_GPIO_SYSFS=y | ||
119 | CONFIG_GPIO_GE_FPGA=y | ||
120 | CONFIG_SENSORS_LM90=y | ||
121 | CONFIG_SENSORS_LM92=y | ||
122 | CONFIG_WATCHDOG=y | ||
123 | CONFIG_GEF_WDT=y | ||
124 | CONFIG_HID_A4TECH=y | ||
125 | CONFIG_HID_APPLE=y | ||
126 | CONFIG_HID_BELKIN=y | ||
127 | CONFIG_HID_CHERRY=y | ||
128 | CONFIG_HID_CHICONY=y | ||
129 | CONFIG_HID_CYPRESS=y | ||
130 | CONFIG_HID_EZKEY=y | ||
131 | CONFIG_HID_GYRATION=y | ||
132 | CONFIG_HID_LOGITECH=y | ||
133 | CONFIG_HID_MICROSOFT=y | ||
134 | CONFIG_HID_MONTEREY=y | ||
135 | CONFIG_HID_PANTHERLORD=y | ||
136 | CONFIG_HID_PETALYNX=y | ||
137 | CONFIG_HID_SAMSUNG=y | ||
138 | CONFIG_HID_SUNPLUS=y | ||
139 | CONFIG_USB=y | ||
140 | CONFIG_USB_EHCI_HCD=y | ||
141 | # CONFIG_USB_EHCI_HCD_PPC_OF is not set | ||
142 | CONFIG_USB_OHCI_HCD=y | ||
143 | CONFIG_USB_STORAGE=y | ||
144 | CONFIG_RTC_CLASS=y | ||
145 | # CONFIG_RTC_INTF_PROC is not set | ||
146 | CONFIG_RTC_DRV_RX8581=y | ||
147 | CONFIG_STAGING=y | ||
148 | CONFIG_VME_BUS=y | ||
149 | CONFIG_VME_TSI148=y | ||
150 | CONFIG_EXT2_FS=y | ||
151 | CONFIG_EXT2_FS_XATTR=y | ||
152 | CONFIG_EXT2_FS_POSIX_ACL=y | ||
153 | CONFIG_EXT3_FS=y | ||
154 | # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set | ||
155 | CONFIG_EXT3_FS_POSIX_ACL=y | ||
156 | CONFIG_ISO9660_FS=y | ||
157 | CONFIG_JOLIET=y | ||
158 | CONFIG_ZISOFS=y | ||
159 | CONFIG_UDF_FS=y | ||
160 | CONFIG_MSDOS_FS=y | ||
161 | CONFIG_VFAT_FS=y | ||
162 | CONFIG_FAT_DEFAULT_CODEPAGE=850 | ||
163 | CONFIG_FAT_DEFAULT_IOCHARSET="ascii" | ||
164 | CONFIG_PROC_KCORE=y | ||
165 | CONFIG_TMPFS=y | ||
166 | CONFIG_JFFS2_FS=y | ||
167 | CONFIG_NFS_FS=y | ||
168 | CONFIG_NFS_V4=y | ||
169 | CONFIG_ROOT_NFS=y | ||
170 | CONFIG_CIFS=m | ||
171 | CONFIG_CIFS_XATTR=y | ||
172 | CONFIG_CIFS_POSIX=y | ||
173 | CONFIG_NLS_CODEPAGE_437=m | ||
174 | CONFIG_NLS_CODEPAGE_737=m | ||
175 | CONFIG_NLS_CODEPAGE_775=m | ||
176 | CONFIG_NLS_CODEPAGE_850=m | ||
177 | CONFIG_NLS_CODEPAGE_852=m | ||
178 | CONFIG_NLS_CODEPAGE_855=m | ||
179 | CONFIG_NLS_CODEPAGE_857=m | ||
180 | CONFIG_NLS_CODEPAGE_860=m | ||
181 | CONFIG_NLS_CODEPAGE_861=m | ||
182 | CONFIG_NLS_CODEPAGE_862=m | ||
183 | CONFIG_NLS_CODEPAGE_863=m | ||
184 | CONFIG_NLS_CODEPAGE_864=m | ||
185 | CONFIG_NLS_CODEPAGE_865=m | ||
186 | CONFIG_NLS_CODEPAGE_866=m | ||
187 | CONFIG_NLS_CODEPAGE_869=m | ||
188 | CONFIG_NLS_CODEPAGE_936=m | ||
189 | CONFIG_NLS_CODEPAGE_950=m | ||
190 | CONFIG_NLS_CODEPAGE_932=m | ||
191 | CONFIG_NLS_CODEPAGE_949=m | ||
192 | CONFIG_NLS_CODEPAGE_874=m | ||
193 | CONFIG_NLS_ISO8859_8=m | ||
194 | CONFIG_NLS_CODEPAGE_1250=m | ||
195 | CONFIG_NLS_CODEPAGE_1251=m | ||
196 | CONFIG_NLS_ASCII=m | ||
197 | CONFIG_NLS_ISO8859_1=m | ||
198 | CONFIG_NLS_ISO8859_2=m | ||
199 | CONFIG_NLS_ISO8859_3=m | ||
200 | CONFIG_NLS_ISO8859_4=m | ||
201 | CONFIG_NLS_ISO8859_5=m | ||
202 | CONFIG_NLS_ISO8859_6=m | ||
203 | CONFIG_NLS_ISO8859_7=m | ||
204 | CONFIG_NLS_ISO8859_9=m | ||
205 | CONFIG_NLS_ISO8859_13=m | ||
206 | CONFIG_NLS_ISO8859_14=m | ||
207 | CONFIG_NLS_ISO8859_15=m | ||
208 | CONFIG_NLS_KOI8_R=m | ||
209 | CONFIG_NLS_KOI8_U=m | ||
210 | CONFIG_NLS_UTF8=m | ||
211 | CONFIG_CRC_CCITT=y | ||
212 | CONFIG_CRC_T10DIF=y | ||
213 | CONFIG_LIBCRC32C=y | ||
214 | CONFIG_MAGIC_SYSRQ=y | ||
215 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
216 | # CONFIG_CRYPTO_HW is not set | ||
diff --git a/arch/powerpc/configs/86xx/gef_sbc310_defconfig b/arch/powerpc/configs/86xx/gef_sbc310_defconfig deleted file mode 100644 index cadc36682bb4..000000000000 --- a/arch/powerpc/configs/86xx/gef_sbc310_defconfig +++ /dev/null | |||
@@ -1,214 +0,0 @@ | |||
1 | CONFIG_SMP=y | ||
2 | CONFIG_NR_CPUS=2 | ||
3 | CONFIG_SYSVIPC=y | ||
4 | CONFIG_POSIX_MQUEUE=y | ||
5 | CONFIG_HIGH_RES_TIMERS=y | ||
6 | CONFIG_BSD_PROCESS_ACCT=y | ||
7 | CONFIG_BSD_PROCESS_ACCT_V3=y | ||
8 | CONFIG_IKCONFIG=y | ||
9 | CONFIG_IKCONFIG_PROC=y | ||
10 | CONFIG_LOG_BUF_SHIFT=14 | ||
11 | CONFIG_RELAY=y | ||
12 | CONFIG_BLK_DEV_INITRD=y | ||
13 | CONFIG_EXPERT=y | ||
14 | CONFIG_SLAB=y | ||
15 | CONFIG_MODULES=y | ||
16 | CONFIG_MODULE_UNLOAD=y | ||
17 | # CONFIG_BLK_DEV_BSG is not set | ||
18 | # CONFIG_PPC_CHRP is not set | ||
19 | # CONFIG_PPC_PMAC is not set | ||
20 | CONFIG_PPC_86xx=y | ||
21 | CONFIG_GEF_SBC310=y | ||
22 | CONFIG_HIGHMEM=y | ||
23 | CONFIG_HZ_1000=y | ||
24 | CONFIG_PREEMPT=y | ||
25 | CONFIG_BINFMT_MISC=y | ||
26 | CONFIG_PCI=y | ||
27 | CONFIG_PCIEPORTBUS=y | ||
28 | # CONFIG_PCIEASPM is not set | ||
29 | CONFIG_PCCARD=y | ||
30 | # CONFIG_PCMCIA_LOAD_CIS is not set | ||
31 | # CONFIG_CARDBUS is not set | ||
32 | CONFIG_YENTA=y | ||
33 | # CONFIG_YENTA_O2 is not set | ||
34 | # CONFIG_YENTA_RICOH is not set | ||
35 | # CONFIG_YENTA_TOSHIBA is not set | ||
36 | CONFIG_NET=y | ||
37 | CONFIG_PACKET=y | ||
38 | CONFIG_UNIX=y | ||
39 | CONFIG_XFRM_USER=m | ||
40 | CONFIG_NET_KEY=m | ||
41 | CONFIG_INET=y | ||
42 | CONFIG_IP_MULTICAST=y | ||
43 | CONFIG_IP_ADVANCED_ROUTER=y | ||
44 | CONFIG_IP_MULTIPLE_TABLES=y | ||
45 | CONFIG_IP_ROUTE_MULTIPATH=y | ||
46 | CONFIG_IP_ROUTE_VERBOSE=y | ||
47 | CONFIG_IP_PNP=y | ||
48 | CONFIG_IP_PNP_DHCP=y | ||
49 | CONFIG_IP_PNP_BOOTP=y | ||
50 | CONFIG_IP_PNP_RARP=y | ||
51 | CONFIG_NET_IPIP=m | ||
52 | CONFIG_IP_MROUTE=y | ||
53 | CONFIG_IP_PIMSM_V1=y | ||
54 | CONFIG_IP_PIMSM_V2=y | ||
55 | CONFIG_SYN_COOKIES=y | ||
56 | CONFIG_INET_AH=m | ||
57 | CONFIG_INET_ESP=m | ||
58 | CONFIG_INET_IPCOMP=m | ||
59 | # CONFIG_INET_XFRM_MODE_BEET is not set | ||
60 | CONFIG_INET6_AH=m | ||
61 | CONFIG_INET6_ESP=m | ||
62 | CONFIG_INET6_IPCOMP=m | ||
63 | CONFIG_IPV6_TUNNEL=m | ||
64 | CONFIG_NET_PKTGEN=m | ||
65 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
66 | CONFIG_MTD=y | ||
67 | CONFIG_MTD_BLOCK=y | ||
68 | CONFIG_MTD_CFI=y | ||
69 | CONFIG_MTD_JEDECPROBE=y | ||
70 | CONFIG_MTD_CFI_INTELEXT=y | ||
71 | CONFIG_MTD_CFI_AMDSTD=y | ||
72 | CONFIG_MTD_PHYSMAP_OF=y | ||
73 | CONFIG_BLK_DEV_LOOP=m | ||
74 | CONFIG_BLK_DEV_CRYPTOLOOP=m | ||
75 | CONFIG_BLK_DEV_NBD=m | ||
76 | CONFIG_BLK_DEV_RAM=y | ||
77 | CONFIG_BLK_DEV_RAM_SIZE=131072 | ||
78 | CONFIG_DS1682=y | ||
79 | CONFIG_IDE=y | ||
80 | CONFIG_BLK_DEV_IDECS=y | ||
81 | CONFIG_BLK_DEV_SD=y | ||
82 | CONFIG_CHR_DEV_ST=y | ||
83 | CONFIG_BLK_DEV_SR=y | ||
84 | CONFIG_ATA=y | ||
85 | CONFIG_SATA_SIL24=y | ||
86 | # CONFIG_ATA_SFF is not set | ||
87 | CONFIG_NETDEVICES=y | ||
88 | CONFIG_BONDING=m | ||
89 | CONFIG_DUMMY=m | ||
90 | CONFIG_NETCONSOLE=y | ||
91 | CONFIG_TUN=m | ||
92 | CONFIG_GIANFAR=y | ||
93 | CONFIG_PPP=m | ||
94 | CONFIG_PPP_BSDCOMP=m | ||
95 | CONFIG_PPP_DEFLATE=m | ||
96 | CONFIG_PPP_FILTER=y | ||
97 | CONFIG_PPP_MULTILINK=y | ||
98 | CONFIG_PPPOE=m | ||
99 | CONFIG_PPP_ASYNC=m | ||
100 | CONFIG_PPP_SYNC_TTY=m | ||
101 | CONFIG_SLIP=m | ||
102 | CONFIG_SLIP_COMPRESSED=y | ||
103 | CONFIG_SLIP_SMART=y | ||
104 | CONFIG_SLIP_MODE_SLIP6=y | ||
105 | # CONFIG_INPUT_KEYBOARD is not set | ||
106 | # CONFIG_INPUT_MOUSE is not set | ||
107 | # CONFIG_SERIO is not set | ||
108 | # CONFIG_LEGACY_PTYS is not set | ||
109 | CONFIG_SERIAL_8250=y | ||
110 | CONFIG_SERIAL_8250_CONSOLE=y | ||
111 | # CONFIG_SERIAL_8250_PCI is not set | ||
112 | CONFIG_SERIAL_8250_NR_UARTS=2 | ||
113 | CONFIG_SERIAL_8250_RUNTIME_UARTS=2 | ||
114 | CONFIG_HW_RANDOM=y | ||
115 | CONFIG_NVRAM=y | ||
116 | CONFIG_I2C=y | ||
117 | CONFIG_I2C_CHARDEV=y | ||
118 | CONFIG_I2C_MPC=y | ||
119 | CONFIG_GPIO_SYSFS=y | ||
120 | CONFIG_GPIO_GE_FPGA=y | ||
121 | CONFIG_SENSORS_LM90=y | ||
122 | CONFIG_SENSORS_LM92=y | ||
123 | CONFIG_WATCHDOG=y | ||
124 | CONFIG_GEF_WDT=y | ||
125 | CONFIG_HID_A4TECH=y | ||
126 | CONFIG_HID_APPLE=y | ||
127 | CONFIG_HID_BELKIN=y | ||
128 | CONFIG_HID_CHERRY=y | ||
129 | CONFIG_HID_CHICONY=y | ||
130 | CONFIG_HID_CYPRESS=y | ||
131 | CONFIG_HID_EZKEY=y | ||
132 | CONFIG_HID_GYRATION=y | ||
133 | CONFIG_HID_LOGITECH=y | ||
134 | CONFIG_HID_MICROSOFT=y | ||
135 | CONFIG_HID_MONTEREY=y | ||
136 | CONFIG_HID_PANTHERLORD=y | ||
137 | CONFIG_HID_PETALYNX=y | ||
138 | CONFIG_HID_SAMSUNG=y | ||
139 | CONFIG_HID_SUNPLUS=y | ||
140 | CONFIG_USB=y | ||
141 | CONFIG_USB_EHCI_HCD=y | ||
142 | # CONFIG_USB_EHCI_HCD_PPC_OF is not set | ||
143 | CONFIG_USB_OHCI_HCD=y | ||
144 | CONFIG_USB_STORAGE=y | ||
145 | CONFIG_RTC_CLASS=y | ||
146 | # CONFIG_RTC_INTF_PROC is not set | ||
147 | CONFIG_RTC_DRV_RX8581=y | ||
148 | CONFIG_EXT2_FS=y | ||
149 | CONFIG_EXT2_FS_XATTR=y | ||
150 | CONFIG_EXT2_FS_POSIX_ACL=y | ||
151 | CONFIG_EXT3_FS=y | ||
152 | # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set | ||
153 | CONFIG_EXT3_FS_POSIX_ACL=y | ||
154 | CONFIG_ISO9660_FS=y | ||
155 | CONFIG_JOLIET=y | ||
156 | CONFIG_ZISOFS=y | ||
157 | CONFIG_UDF_FS=y | ||
158 | CONFIG_MSDOS_FS=y | ||
159 | CONFIG_VFAT_FS=y | ||
160 | CONFIG_FAT_DEFAULT_CODEPAGE=850 | ||
161 | CONFIG_FAT_DEFAULT_IOCHARSET="ascii" | ||
162 | CONFIG_PROC_KCORE=y | ||
163 | CONFIG_TMPFS=y | ||
164 | CONFIG_JFFS2_FS=y | ||
165 | CONFIG_NFS_FS=y | ||
166 | CONFIG_NFS_V4=y | ||
167 | CONFIG_ROOT_NFS=y | ||
168 | CONFIG_CIFS=m | ||
169 | CONFIG_CIFS_XATTR=y | ||
170 | CONFIG_CIFS_POSIX=y | ||
171 | CONFIG_NLS_CODEPAGE_437=m | ||
172 | CONFIG_NLS_CODEPAGE_737=m | ||
173 | CONFIG_NLS_CODEPAGE_775=m | ||
174 | CONFIG_NLS_CODEPAGE_850=m | ||
175 | CONFIG_NLS_CODEPAGE_852=m | ||
176 | CONFIG_NLS_CODEPAGE_855=m | ||
177 | CONFIG_NLS_CODEPAGE_857=m | ||
178 | CONFIG_NLS_CODEPAGE_860=m | ||
179 | CONFIG_NLS_CODEPAGE_861=m | ||
180 | CONFIG_NLS_CODEPAGE_862=m | ||
181 | CONFIG_NLS_CODEPAGE_863=m | ||
182 | CONFIG_NLS_CODEPAGE_864=m | ||
183 | CONFIG_NLS_CODEPAGE_865=m | ||
184 | CONFIG_NLS_CODEPAGE_866=m | ||
185 | CONFIG_NLS_CODEPAGE_869=m | ||
186 | CONFIG_NLS_CODEPAGE_936=m | ||
187 | CONFIG_NLS_CODEPAGE_950=m | ||
188 | CONFIG_NLS_CODEPAGE_932=m | ||
189 | CONFIG_NLS_CODEPAGE_949=m | ||
190 | CONFIG_NLS_CODEPAGE_874=m | ||
191 | CONFIG_NLS_ISO8859_8=m | ||
192 | CONFIG_NLS_CODEPAGE_1250=m | ||
193 | CONFIG_NLS_CODEPAGE_1251=m | ||
194 | CONFIG_NLS_ASCII=m | ||
195 | CONFIG_NLS_ISO8859_1=m | ||
196 | CONFIG_NLS_ISO8859_2=m | ||
197 | CONFIG_NLS_ISO8859_3=m | ||
198 | CONFIG_NLS_ISO8859_4=m | ||
199 | CONFIG_NLS_ISO8859_5=m | ||
200 | CONFIG_NLS_ISO8859_6=m | ||
201 | CONFIG_NLS_ISO8859_7=m | ||
202 | CONFIG_NLS_ISO8859_9=m | ||
203 | CONFIG_NLS_ISO8859_13=m | ||
204 | CONFIG_NLS_ISO8859_14=m | ||
205 | CONFIG_NLS_ISO8859_15=m | ||
206 | CONFIG_NLS_KOI8_R=m | ||
207 | CONFIG_NLS_KOI8_U=m | ||
208 | CONFIG_NLS_UTF8=m | ||
209 | CONFIG_CRC_CCITT=y | ||
210 | CONFIG_CRC_T10DIF=y | ||
211 | CONFIG_LIBCRC32C=y | ||
212 | CONFIG_MAGIC_SYSRQ=y | ||
213 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
214 | # CONFIG_CRYPTO_HW is not set | ||
diff --git a/arch/powerpc/configs/86xx/gef_sbc610_defconfig b/arch/powerpc/configs/86xx/gef_sbc610_defconfig deleted file mode 100644 index 2aa7d9737e43..000000000000 --- a/arch/powerpc/configs/86xx/gef_sbc610_defconfig +++ /dev/null | |||
@@ -1,273 +0,0 @@ | |||
1 | CONFIG_SMP=y | ||
2 | CONFIG_NR_CPUS=2 | ||
3 | CONFIG_SYSVIPC=y | ||
4 | CONFIG_POSIX_MQUEUE=y | ||
5 | CONFIG_HIGH_RES_TIMERS=y | ||
6 | CONFIG_BSD_PROCESS_ACCT=y | ||
7 | CONFIG_BSD_PROCESS_ACCT_V3=y | ||
8 | CONFIG_IKCONFIG=y | ||
9 | CONFIG_IKCONFIG_PROC=y | ||
10 | CONFIG_LOG_BUF_SHIFT=14 | ||
11 | CONFIG_RELAY=y | ||
12 | CONFIG_BLK_DEV_INITRD=y | ||
13 | CONFIG_EXPERT=y | ||
14 | CONFIG_SLAB=y | ||
15 | CONFIG_MODULES=y | ||
16 | CONFIG_MODULE_UNLOAD=y | ||
17 | # CONFIG_BLK_DEV_BSG is not set | ||
18 | # CONFIG_PPC_CHRP is not set | ||
19 | # CONFIG_PPC_PMAC is not set | ||
20 | CONFIG_PPC_86xx=y | ||
21 | CONFIG_GEF_SBC610=y | ||
22 | CONFIG_HIGHMEM=y | ||
23 | CONFIG_HZ_1000=y | ||
24 | CONFIG_PREEMPT=y | ||
25 | CONFIG_BINFMT_MISC=m | ||
26 | CONFIG_PCI=y | ||
27 | CONFIG_PCIEPORTBUS=y | ||
28 | # CONFIG_PCIEASPM is not set | ||
29 | CONFIG_PCI_DEBUG=y | ||
30 | CONFIG_NET=y | ||
31 | CONFIG_PACKET=y | ||
32 | CONFIG_UNIX=y | ||
33 | CONFIG_XFRM_USER=m | ||
34 | CONFIG_NET_KEY=m | ||
35 | CONFIG_INET=y | ||
36 | CONFIG_IP_MULTICAST=y | ||
37 | CONFIG_IP_ADVANCED_ROUTER=y | ||
38 | CONFIG_IP_MULTIPLE_TABLES=y | ||
39 | CONFIG_IP_ROUTE_MULTIPATH=y | ||
40 | CONFIG_IP_ROUTE_VERBOSE=y | ||
41 | CONFIG_IP_PNP=y | ||
42 | CONFIG_IP_PNP_DHCP=y | ||
43 | CONFIG_IP_PNP_BOOTP=y | ||
44 | CONFIG_IP_PNP_RARP=y | ||
45 | CONFIG_NET_IPIP=m | ||
46 | CONFIG_IP_MROUTE=y | ||
47 | CONFIG_IP_PIMSM_V1=y | ||
48 | CONFIG_IP_PIMSM_V2=y | ||
49 | CONFIG_SYN_COOKIES=y | ||
50 | CONFIG_INET_AH=m | ||
51 | CONFIG_INET_ESP=m | ||
52 | CONFIG_INET_IPCOMP=m | ||
53 | # CONFIG_INET_LRO is not set | ||
54 | CONFIG_INET6_AH=m | ||
55 | CONFIG_INET6_ESP=m | ||
56 | CONFIG_INET6_IPCOMP=m | ||
57 | CONFIG_IPV6_TUNNEL=m | ||
58 | CONFIG_NETFILTER=y | ||
59 | # CONFIG_NETFILTER_XT_MATCH_SCTP is not set | ||
60 | CONFIG_IP_NF_IPTABLES=m | ||
61 | CONFIG_IP_NF_MATCH_ECN=m | ||
62 | CONFIG_IP_NF_MATCH_TTL=m | ||
63 | CONFIG_IP_NF_FILTER=m | ||
64 | CONFIG_IP_NF_TARGET_REJECT=m | ||
65 | CONFIG_IP_NF_MANGLE=m | ||
66 | CONFIG_IP_NF_TARGET_ECN=m | ||
67 | CONFIG_IP_NF_RAW=m | ||
68 | CONFIG_IP_NF_ARPTABLES=m | ||
69 | CONFIG_IP_NF_ARPFILTER=m | ||
70 | CONFIG_IP_NF_ARP_MANGLE=m | ||
71 | CONFIG_IP6_NF_IPTABLES=m | ||
72 | CONFIG_IP6_NF_MATCH_EUI64=m | ||
73 | CONFIG_IP6_NF_MATCH_FRAG=m | ||
74 | CONFIG_IP6_NF_MATCH_OPTS=m | ||
75 | CONFIG_IP6_NF_MATCH_HL=m | ||
76 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m | ||
77 | CONFIG_IP6_NF_MATCH_RT=m | ||
78 | CONFIG_IP6_NF_FILTER=m | ||
79 | CONFIG_IP6_NF_MANGLE=m | ||
80 | CONFIG_IP6_NF_RAW=m | ||
81 | CONFIG_IP_SCTP=m | ||
82 | CONFIG_TIPC=m | ||
83 | CONFIG_ATM=m | ||
84 | CONFIG_ATM_CLIP=m | ||
85 | CONFIG_ATM_LANE=m | ||
86 | CONFIG_ATM_MPOA=m | ||
87 | CONFIG_ATM_BR2684=m | ||
88 | CONFIG_BRIDGE=m | ||
89 | CONFIG_VLAN_8021Q=m | ||
90 | CONFIG_NET_SCHED=y | ||
91 | CONFIG_NET_SCH_CBQ=m | ||
92 | CONFIG_NET_SCH_HTB=m | ||
93 | CONFIG_NET_SCH_HFSC=m | ||
94 | CONFIG_NET_SCH_ATM=m | ||
95 | CONFIG_NET_SCH_PRIO=m | ||
96 | CONFIG_NET_SCH_RED=m | ||
97 | CONFIG_NET_SCH_SFQ=m | ||
98 | CONFIG_NET_SCH_TEQL=m | ||
99 | CONFIG_NET_SCH_TBF=m | ||
100 | CONFIG_NET_SCH_GRED=m | ||
101 | CONFIG_NET_SCH_DSMARK=m | ||
102 | CONFIG_NET_SCH_NETEM=m | ||
103 | CONFIG_NET_CLS_TCINDEX=m | ||
104 | CONFIG_NET_CLS_ROUTE4=m | ||
105 | CONFIG_NET_CLS_FW=m | ||
106 | CONFIG_NET_CLS_U32=m | ||
107 | CONFIG_NET_CLS_RSVP=m | ||
108 | CONFIG_NET_CLS_RSVP6=m | ||
109 | CONFIG_NET_PKTGEN=m | ||
110 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
111 | # CONFIG_FW_LOADER is not set | ||
112 | CONFIG_MTD=y | ||
113 | CONFIG_MTD_BLOCK=y | ||
114 | CONFIG_MTD_CFI=y | ||
115 | CONFIG_MTD_JEDECPROBE=y | ||
116 | CONFIG_MTD_CFI_INTELEXT=y | ||
117 | CONFIG_MTD_CFI_AMDSTD=y | ||
118 | CONFIG_MTD_PHYSMAP_OF=y | ||
119 | CONFIG_BLK_DEV_LOOP=m | ||
120 | CONFIG_BLK_DEV_CRYPTOLOOP=m | ||
121 | CONFIG_BLK_DEV_NBD=m | ||
122 | CONFIG_BLK_DEV_RAM=y | ||
123 | CONFIG_BLK_DEV_RAM_SIZE=131072 | ||
124 | CONFIG_DS1682=y | ||
125 | CONFIG_BLK_DEV_SD=y | ||
126 | CONFIG_CHR_DEV_ST=y | ||
127 | CONFIG_BLK_DEV_SR=y | ||
128 | CONFIG_ATA=y | ||
129 | CONFIG_SATA_SIL=y | ||
130 | CONFIG_NETDEVICES=y | ||
131 | CONFIG_BONDING=m | ||
132 | CONFIG_DUMMY=m | ||
133 | CONFIG_NETCONSOLE=y | ||
134 | CONFIG_TUN=m | ||
135 | CONFIG_GIANFAR=y | ||
136 | CONFIG_PPP=m | ||
137 | CONFIG_PPP_BSDCOMP=m | ||
138 | CONFIG_PPP_DEFLATE=m | ||
139 | CONFIG_PPP_FILTER=y | ||
140 | CONFIG_PPP_MULTILINK=y | ||
141 | CONFIG_PPPOATM=m | ||
142 | CONFIG_PPPOE=m | ||
143 | CONFIG_PPP_ASYNC=m | ||
144 | CONFIG_PPP_SYNC_TTY=m | ||
145 | CONFIG_SLIP=m | ||
146 | CONFIG_SLIP_COMPRESSED=y | ||
147 | CONFIG_SLIP_SMART=y | ||
148 | CONFIG_SLIP_MODE_SLIP6=y | ||
149 | CONFIG_INPUT_FF_MEMLESS=m | ||
150 | # CONFIG_INPUT_KEYBOARD is not set | ||
151 | # CONFIG_INPUT_MOUSE is not set | ||
152 | # CONFIG_SERIO is not set | ||
153 | # CONFIG_LEGACY_PTYS is not set | ||
154 | CONFIG_SERIAL_8250=y | ||
155 | CONFIG_SERIAL_8250_CONSOLE=y | ||
156 | # CONFIG_SERIAL_8250_PCI is not set | ||
157 | CONFIG_SERIAL_8250_NR_UARTS=2 | ||
158 | CONFIG_SERIAL_8250_RUNTIME_UARTS=2 | ||
159 | CONFIG_HW_RANDOM=y | ||
160 | CONFIG_NVRAM=y | ||
161 | CONFIG_I2C=y | ||
162 | CONFIG_I2C_CHARDEV=y | ||
163 | CONFIG_I2C_MPC=y | ||
164 | CONFIG_GPIO_SYSFS=y | ||
165 | CONFIG_GPIO_GE_FPGA=y | ||
166 | CONFIG_SENSORS_LM90=y | ||
167 | CONFIG_SENSORS_LM92=y | ||
168 | CONFIG_WATCHDOG=y | ||
169 | CONFIG_GEF_WDT=y | ||
170 | CONFIG_HID_A4TECH=y | ||
171 | CONFIG_HID_APPLE=y | ||
172 | CONFIG_HID_BELKIN=y | ||
173 | CONFIG_HID_CHERRY=y | ||
174 | CONFIG_HID_CHICONY=y | ||
175 | CONFIG_HID_CYPRESS=y | ||
176 | CONFIG_HID_EZKEY=y | ||
177 | CONFIG_HID_GYRATION=y | ||
178 | CONFIG_HID_LOGITECH=y | ||
179 | CONFIG_HID_MICROSOFT=y | ||
180 | CONFIG_HID_MONTEREY=y | ||
181 | CONFIG_HID_PANTHERLORD=y | ||
182 | CONFIG_HID_PETALYNX=y | ||
183 | CONFIG_HID_SAMSUNG=y | ||
184 | CONFIG_HID_SUNPLUS=y | ||
185 | CONFIG_USB=y | ||
186 | CONFIG_USB_EHCI_HCD=y | ||
187 | # CONFIG_USB_EHCI_HCD_PPC_OF is not set | ||
188 | CONFIG_USB_OHCI_HCD=y | ||
189 | CONFIG_USB_STORAGE=y | ||
190 | CONFIG_RTC_CLASS=y | ||
191 | # CONFIG_RTC_INTF_PROC is not set | ||
192 | CONFIG_RTC_DRV_RX8581=y | ||
193 | CONFIG_STAGING=y | ||
194 | CONFIG_VME_BUS=y | ||
195 | CONFIG_VME_TSI148=y | ||
196 | CONFIG_EXT2_FS=y | ||
197 | CONFIG_EXT2_FS_XATTR=y | ||
198 | CONFIG_EXT2_FS_POSIX_ACL=y | ||
199 | CONFIG_EXT3_FS=y | ||
200 | # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set | ||
201 | CONFIG_EXT3_FS_POSIX_ACL=y | ||
202 | CONFIG_MSDOS_FS=y | ||
203 | CONFIG_VFAT_FS=y | ||
204 | CONFIG_PROC_KCORE=y | ||
205 | CONFIG_TMPFS=y | ||
206 | CONFIG_JFFS2_FS=y | ||
207 | CONFIG_NFS_FS=y | ||
208 | CONFIG_NFS_V4=y | ||
209 | CONFIG_ROOT_NFS=y | ||
210 | CONFIG_CIFS=m | ||
211 | CONFIG_CIFS_XATTR=y | ||
212 | CONFIG_CIFS_POSIX=y | ||
213 | CONFIG_NLS_CODEPAGE_437=m | ||
214 | CONFIG_NLS_CODEPAGE_737=m | ||
215 | CONFIG_NLS_CODEPAGE_775=m | ||
216 | CONFIG_NLS_CODEPAGE_850=m | ||
217 | CONFIG_NLS_CODEPAGE_852=m | ||
218 | CONFIG_NLS_CODEPAGE_855=m | ||
219 | CONFIG_NLS_CODEPAGE_857=m | ||
220 | CONFIG_NLS_CODEPAGE_860=m | ||
221 | CONFIG_NLS_CODEPAGE_861=m | ||
222 | CONFIG_NLS_CODEPAGE_862=m | ||
223 | CONFIG_NLS_CODEPAGE_863=m | ||
224 | CONFIG_NLS_CODEPAGE_864=m | ||
225 | CONFIG_NLS_CODEPAGE_865=m | ||
226 | CONFIG_NLS_CODEPAGE_866=m | ||
227 | CONFIG_NLS_CODEPAGE_869=m | ||
228 | CONFIG_NLS_CODEPAGE_936=m | ||
229 | CONFIG_NLS_CODEPAGE_950=m | ||
230 | CONFIG_NLS_CODEPAGE_932=m | ||
231 | CONFIG_NLS_CODEPAGE_949=m | ||
232 | CONFIG_NLS_CODEPAGE_874=m | ||
233 | CONFIG_NLS_ISO8859_8=m | ||
234 | CONFIG_NLS_CODEPAGE_1250=m | ||
235 | CONFIG_NLS_CODEPAGE_1251=m | ||
236 | CONFIG_NLS_ASCII=m | ||
237 | CONFIG_NLS_ISO8859_1=m | ||
238 | CONFIG_NLS_ISO8859_2=m | ||
239 | CONFIG_NLS_ISO8859_3=m | ||
240 | CONFIG_NLS_ISO8859_4=m | ||
241 | CONFIG_NLS_ISO8859_5=m | ||
242 | CONFIG_NLS_ISO8859_6=m | ||
243 | CONFIG_NLS_ISO8859_7=m | ||
244 | CONFIG_NLS_ISO8859_9=m | ||
245 | CONFIG_NLS_ISO8859_13=m | ||
246 | CONFIG_NLS_ISO8859_14=m | ||
247 | CONFIG_NLS_ISO8859_15=m | ||
248 | CONFIG_NLS_KOI8_R=m | ||
249 | CONFIG_NLS_KOI8_U=m | ||
250 | CONFIG_NLS_UTF8=m | ||
251 | CONFIG_DEBUG_INFO=y | ||
252 | CONFIG_MAGIC_SYSRQ=y | ||
253 | CONFIG_DETECT_HUNG_TASK=y | ||
254 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
255 | CONFIG_SECURITY=y | ||
256 | CONFIG_SECURITY_NETWORK=y | ||
257 | CONFIG_CRYPTO_NULL=m | ||
258 | CONFIG_CRYPTO_TEST=m | ||
259 | CONFIG_CRYPTO_PCBC=m | ||
260 | CONFIG_CRYPTO_HMAC=y | ||
261 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
262 | CONFIG_CRYPTO_SHA512=m | ||
263 | CONFIG_CRYPTO_WP512=m | ||
264 | CONFIG_CRYPTO_ANUBIS=m | ||
265 | CONFIG_CRYPTO_BLOWFISH=m | ||
266 | CONFIG_CRYPTO_CAST5=m | ||
267 | CONFIG_CRYPTO_CAST6=m | ||
268 | CONFIG_CRYPTO_KHAZAD=m | ||
269 | CONFIG_CRYPTO_SERPENT=m | ||
270 | CONFIG_CRYPTO_TEA=m | ||
271 | CONFIG_CRYPTO_TWOFISH=m | ||
272 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
273 | # CONFIG_CRYPTO_HW is not set | ||
diff --git a/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig b/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig deleted file mode 100644 index e32207de2b77..000000000000 --- a/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig +++ /dev/null | |||
@@ -1,110 +0,0 @@ | |||
1 | # CONFIG_SWAP is not set | ||
2 | CONFIG_SYSVIPC=y | ||
3 | CONFIG_NO_HZ=y | ||
4 | CONFIG_HIGH_RES_TIMERS=y | ||
5 | CONFIG_IKCONFIG=y | ||
6 | CONFIG_IKCONFIG_PROC=y | ||
7 | CONFIG_LOG_BUF_SHIFT=14 | ||
8 | CONFIG_BLK_DEV_INITRD=y | ||
9 | CONFIG_EXPERT=y | ||
10 | # CONFIG_ELF_CORE is not set | ||
11 | CONFIG_MODULES=y | ||
12 | CONFIG_MODULE_UNLOAD=y | ||
13 | # CONFIG_BLK_DEV_BSG is not set | ||
14 | CONFIG_PARTITION_ADVANCED=y | ||
15 | CONFIG_LDM_PARTITION=y | ||
16 | # CONFIG_IOSCHED_CFQ is not set | ||
17 | # CONFIG_PPC_CHRP is not set | ||
18 | # CONFIG_PPC_PMAC is not set | ||
19 | CONFIG_PPC_86xx=y | ||
20 | CONFIG_MPC8610_HPCD=y | ||
21 | CONFIG_HIGHMEM=y | ||
22 | CONFIG_HZ_1000=y | ||
23 | CONFIG_FORCE_MAX_ZONEORDER=12 | ||
24 | # CONFIG_SECCOMP is not set | ||
25 | CONFIG_PCI=y | ||
26 | CONFIG_PCIEPORTBUS=y | ||
27 | # CONFIG_PCIEASPM is not set | ||
28 | CONFIG_PCI_DEBUG=y | ||
29 | CONFIG_NET=y | ||
30 | CONFIG_PACKET=y | ||
31 | CONFIG_UNIX=y | ||
32 | CONFIG_XFRM_USER=y | ||
33 | CONFIG_INET=y | ||
34 | CONFIG_IP_PNP=y | ||
35 | CONFIG_IP_PNP_DHCP=y | ||
36 | CONFIG_IP_PNP_BOOTP=y | ||
37 | CONFIG_IP_PNP_RARP=y | ||
38 | # CONFIG_INET_LRO is not set | ||
39 | CONFIG_IPV6=y | ||
40 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
41 | CONFIG_MTD=y | ||
42 | CONFIG_MTD_CMDLINE_PARTS=y | ||
43 | CONFIG_MTD_BLOCK=y | ||
44 | CONFIG_MTD_CFI=y | ||
45 | CONFIG_MTD_CFI_AMDSTD=y | ||
46 | CONFIG_MTD_PHYSMAP_OF=y | ||
47 | CONFIG_MTD_NAND=y | ||
48 | CONFIG_MTD_NAND_FSL_ELBC=y | ||
49 | CONFIG_BLK_DEV_LOOP=y | ||
50 | CONFIG_BLK_DEV_RAM=y | ||
51 | CONFIG_BLK_DEV_RAM_SIZE=131072 | ||
52 | CONFIG_IDE=y | ||
53 | CONFIG_BLK_DEV_SD=y | ||
54 | CONFIG_CHR_DEV_SG=y | ||
55 | CONFIG_ATA=y | ||
56 | CONFIG_SATA_AHCI=y | ||
57 | CONFIG_PATA_ALI=y | ||
58 | CONFIG_NETDEVICES=y | ||
59 | CONFIG_DUMMY=y | ||
60 | CONFIG_NET_TULIP=y | ||
61 | CONFIG_ULI526X=y | ||
62 | # CONFIG_INPUT_MOUSEDEV is not set | ||
63 | # CONFIG_INPUT_KEYBOARD is not set | ||
64 | # CONFIG_INPUT_MOUSE is not set | ||
65 | CONFIG_SERIO_LIBPS2=y | ||
66 | # CONFIG_LEGACY_PTYS is not set | ||
67 | CONFIG_SERIAL_8250=y | ||
68 | CONFIG_SERIAL_8250_CONSOLE=y | ||
69 | CONFIG_SERIAL_8250_NR_UARTS=2 | ||
70 | CONFIG_SERIAL_8250_RUNTIME_UARTS=2 | ||
71 | CONFIG_SERIAL_8250_EXTENDED=y | ||
72 | CONFIG_SERIAL_8250_MANY_PORTS=y | ||
73 | CONFIG_SERIAL_8250_SHARE_IRQ=y | ||
74 | CONFIG_SERIAL_8250_DETECT_IRQ=y | ||
75 | CONFIG_SERIAL_8250_RSA=y | ||
76 | # CONFIG_HW_RANDOM is not set | ||
77 | CONFIG_I2C=y | ||
78 | CONFIG_I2C_MPC=y | ||
79 | # CONFIG_HWMON is not set | ||
80 | CONFIG_FB=y | ||
81 | CONFIG_FB_FSL_DIU=y | ||
82 | CONFIG_VGACON_SOFT_SCROLLBACK=y | ||
83 | CONFIG_FRAMEBUFFER_CONSOLE=y | ||
84 | CONFIG_SOUND=y | ||
85 | CONFIG_SND=y | ||
86 | CONFIG_SND_MIXER_OSS=y | ||
87 | CONFIG_SND_PCM_OSS=y | ||
88 | # CONFIG_SND_SUPPORT_OLD_API is not set | ||
89 | CONFIG_SND_SOC=y | ||
90 | CONFIG_SND_POWERPC_SOC=y | ||
91 | CONFIG_RTC_CLASS=y | ||
92 | CONFIG_RTC_DRV_CMOS=y | ||
93 | CONFIG_EXT2_FS=y | ||
94 | CONFIG_EXT3_FS=y | ||
95 | # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set | ||
96 | # CONFIG_DNOTIFY is not set | ||
97 | CONFIG_PROC_KCORE=y | ||
98 | CONFIG_TMPFS=y | ||
99 | CONFIG_NFS_FS=y | ||
100 | CONFIG_ROOT_NFS=y | ||
101 | CONFIG_NFSD=y | ||
102 | CONFIG_NLS=y | ||
103 | CONFIG_CRC_T10DIF=y | ||
104 | CONFIG_FONTS=y | ||
105 | CONFIG_FONT_8x8=y | ||
106 | CONFIG_FONT_8x16=y | ||
107 | CONFIG_DEBUG_INFO=y | ||
108 | CONFIG_DEBUG_SHIRQ=y | ||
109 | CONFIG_DETECT_HUNG_TASK=y | ||
110 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
diff --git a/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig b/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig deleted file mode 100644 index a36e11ddaebd..000000000000 --- a/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig +++ /dev/null | |||
@@ -1,156 +0,0 @@ | |||
1 | CONFIG_SMP=y | ||
2 | CONFIG_NR_CPUS=2 | ||
3 | CONFIG_SYSVIPC=y | ||
4 | CONFIG_POSIX_MQUEUE=y | ||
5 | CONFIG_AUDIT=y | ||
6 | CONFIG_NO_HZ=y | ||
7 | CONFIG_HIGH_RES_TIMERS=y | ||
8 | CONFIG_BSD_PROCESS_ACCT=y | ||
9 | CONFIG_IKCONFIG=y | ||
10 | CONFIG_IKCONFIG_PROC=y | ||
11 | CONFIG_LOG_BUF_SHIFT=14 | ||
12 | CONFIG_BLK_DEV_INITRD=y | ||
13 | CONFIG_EXPERT=y | ||
14 | CONFIG_KALLSYMS_ALL=y | ||
15 | CONFIG_MODULES=y | ||
16 | CONFIG_MODULE_UNLOAD=y | ||
17 | CONFIG_MODULE_FORCE_UNLOAD=y | ||
18 | CONFIG_MODVERSIONS=y | ||
19 | # CONFIG_BLK_DEV_BSG is not set | ||
20 | CONFIG_PARTITION_ADVANCED=y | ||
21 | CONFIG_MAC_PARTITION=y | ||
22 | # CONFIG_PPC_CHRP is not set | ||
23 | # CONFIG_PPC_PMAC is not set | ||
24 | CONFIG_PPC_86xx=y | ||
25 | CONFIG_MPC8641_HPCN=y | ||
26 | CONFIG_HIGHMEM=y | ||
27 | CONFIG_HZ_1000=y | ||
28 | CONFIG_BINFMT_MISC=m | ||
29 | CONFIG_PCI=y | ||
30 | CONFIG_NET=y | ||
31 | CONFIG_PACKET=y | ||
32 | CONFIG_UNIX=y | ||
33 | CONFIG_XFRM_USER=y | ||
34 | CONFIG_NET_KEY=m | ||
35 | CONFIG_INET=y | ||
36 | CONFIG_IP_MULTICAST=y | ||
37 | CONFIG_IP_ADVANCED_ROUTER=y | ||
38 | CONFIG_IP_MULTIPLE_TABLES=y | ||
39 | CONFIG_IP_ROUTE_MULTIPATH=y | ||
40 | CONFIG_IP_ROUTE_VERBOSE=y | ||
41 | CONFIG_IP_PNP=y | ||
42 | CONFIG_IP_PNP_DHCP=y | ||
43 | CONFIG_IP_PNP_BOOTP=y | ||
44 | CONFIG_IP_PNP_RARP=y | ||
45 | CONFIG_NET_IPIP=y | ||
46 | CONFIG_IP_MROUTE=y | ||
47 | CONFIG_IP_PIMSM_V1=y | ||
48 | CONFIG_IP_PIMSM_V2=y | ||
49 | # CONFIG_INET_XFRM_MODE_TRANSPORT is not set | ||
50 | # CONFIG_INET_XFRM_MODE_TUNNEL is not set | ||
51 | # CONFIG_INET_XFRM_MODE_BEET is not set | ||
52 | # CONFIG_INET_LRO is not set | ||
53 | CONFIG_IPV6=y | ||
54 | CONFIG_IP_SCTP=m | ||
55 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
56 | CONFIG_BLK_DEV_LOOP=y | ||
57 | CONFIG_BLK_DEV_NBD=y | ||
58 | CONFIG_BLK_DEV_RAM=y | ||
59 | CONFIG_BLK_DEV_RAM_SIZE=131072 | ||
60 | CONFIG_EEPROM_LEGACY=y | ||
61 | CONFIG_BLK_DEV_SD=y | ||
62 | CONFIG_CHR_DEV_ST=y | ||
63 | CONFIG_BLK_DEV_SR=y | ||
64 | CONFIG_CHR_DEV_SG=y | ||
65 | CONFIG_SCSI_LOGGING=y | ||
66 | CONFIG_ATA=y | ||
67 | CONFIG_SATA_AHCI=y | ||
68 | CONFIG_PATA_ALI=y | ||
69 | CONFIG_NETDEVICES=y | ||
70 | CONFIG_DUMMY=y | ||
71 | CONFIG_GIANFAR=y | ||
72 | CONFIG_VITESSE_PHY=y | ||
73 | CONFIG_INPUT_FF_MEMLESS=m | ||
74 | # CONFIG_INPUT_MOUSEDEV is not set | ||
75 | # CONFIG_INPUT_KEYBOARD is not set | ||
76 | # CONFIG_INPUT_MOUSE is not set | ||
77 | CONFIG_SERIO_LIBPS2=y | ||
78 | CONFIG_SERIAL_8250=y | ||
79 | CONFIG_SERIAL_8250_CONSOLE=y | ||
80 | CONFIG_SERIAL_8250_NR_UARTS=2 | ||
81 | CONFIG_SERIAL_8250_RUNTIME_UARTS=2 | ||
82 | CONFIG_SERIAL_8250_EXTENDED=y | ||
83 | CONFIG_SERIAL_8250_MANY_PORTS=y | ||
84 | CONFIG_SERIAL_8250_SHARE_IRQ=y | ||
85 | CONFIG_SERIAL_8250_DETECT_IRQ=y | ||
86 | CONFIG_SERIAL_8250_RSA=y | ||
87 | # CONFIG_HW_RANDOM is not set | ||
88 | CONFIG_NVRAM=y | ||
89 | CONFIG_I2C=y | ||
90 | CONFIG_I2C_MPC=y | ||
91 | # CONFIG_HWMON is not set | ||
92 | CONFIG_SOUND=y | ||
93 | CONFIG_SND=y | ||
94 | CONFIG_SND_MIXER_OSS=y | ||
95 | CONFIG_SND_PCM_OSS=y | ||
96 | # CONFIG_SND_SUPPORT_OLD_API is not set | ||
97 | CONFIG_SND_INTEL8X0=y | ||
98 | CONFIG_HID_A4TECH=y | ||
99 | CONFIG_HID_APPLE=y | ||
100 | CONFIG_HID_BELKIN=y | ||
101 | CONFIG_HID_CHERRY=y | ||
102 | CONFIG_HID_CHICONY=y | ||
103 | CONFIG_HID_CYPRESS=y | ||
104 | CONFIG_HID_EZKEY=y | ||
105 | CONFIG_HID_GYRATION=y | ||
106 | CONFIG_HID_LOGITECH=y | ||
107 | CONFIG_HID_MICROSOFT=y | ||
108 | CONFIG_HID_MONTEREY=y | ||
109 | CONFIG_HID_PANTHERLORD=y | ||
110 | CONFIG_HID_PETALYNX=y | ||
111 | CONFIG_HID_SAMSUNG=y | ||
112 | CONFIG_HID_SUNPLUS=y | ||
113 | CONFIG_USB=y | ||
114 | CONFIG_USB_MON=y | ||
115 | CONFIG_USB_EHCI_HCD=y | ||
116 | CONFIG_USB_OHCI_HCD=y | ||
117 | CONFIG_USB_OHCI_HCD_PPC_OF_BE=y | ||
118 | CONFIG_USB_OHCI_HCD_PPC_OF_LE=y | ||
119 | CONFIG_USB_STORAGE=y | ||
120 | CONFIG_RTC_CLASS=y | ||
121 | CONFIG_RTC_DRV_CMOS=y | ||
122 | CONFIG_EXT2_FS=y | ||
123 | CONFIG_EXT3_FS=y | ||
124 | # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set | ||
125 | CONFIG_ISO9660_FS=m | ||
126 | CONFIG_JOLIET=y | ||
127 | CONFIG_ZISOFS=y | ||
128 | CONFIG_UDF_FS=m | ||
129 | CONFIG_MSDOS_FS=m | ||
130 | CONFIG_VFAT_FS=y | ||
131 | CONFIG_NTFS_FS=y | ||
132 | CONFIG_PROC_KCORE=y | ||
133 | CONFIG_TMPFS=y | ||
134 | CONFIG_ADFS_FS=m | ||
135 | CONFIG_AFFS_FS=m | ||
136 | CONFIG_HFS_FS=m | ||
137 | CONFIG_HFSPLUS_FS=m | ||
138 | CONFIG_BEFS_FS=m | ||
139 | CONFIG_BFS_FS=m | ||
140 | CONFIG_EFS_FS=m | ||
141 | CONFIG_CRAMFS=y | ||
142 | CONFIG_VXFS_FS=m | ||
143 | CONFIG_HPFS_FS=m | ||
144 | CONFIG_QNX4FS_FS=m | ||
145 | CONFIG_SYSV_FS=m | ||
146 | CONFIG_UFS_FS=m | ||
147 | CONFIG_NFS_FS=y | ||
148 | CONFIG_NFS_V4=y | ||
149 | CONFIG_ROOT_NFS=y | ||
150 | CONFIG_NFSD=y | ||
151 | CONFIG_CRC_T10DIF=y | ||
152 | CONFIG_DEBUG_INFO=y | ||
153 | CONFIG_DETECT_HUNG_TASK=y | ||
154 | CONFIG_CRYPTO_PCBC=m | ||
155 | CONFIG_CRYPTO_HMAC=y | ||
156 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
diff --git a/arch/powerpc/configs/86xx/sbc8641d_defconfig b/arch/powerpc/configs/86xx/sbc8641d_defconfig deleted file mode 100644 index db79bdee844b..000000000000 --- a/arch/powerpc/configs/86xx/sbc8641d_defconfig +++ /dev/null | |||
@@ -1,246 +0,0 @@ | |||
1 | CONFIG_SMP=y | ||
2 | CONFIG_NR_CPUS=2 | ||
3 | CONFIG_SYSVIPC=y | ||
4 | CONFIG_POSIX_MQUEUE=y | ||
5 | CONFIG_HIGH_RES_TIMERS=y | ||
6 | CONFIG_BSD_PROCESS_ACCT=y | ||
7 | CONFIG_BSD_PROCESS_ACCT_V3=y | ||
8 | CONFIG_IKCONFIG=y | ||
9 | CONFIG_IKCONFIG_PROC=y | ||
10 | CONFIG_LOG_BUF_SHIFT=14 | ||
11 | CONFIG_RELAY=y | ||
12 | CONFIG_BLK_DEV_INITRD=y | ||
13 | CONFIG_EXPERT=y | ||
14 | CONFIG_SLAB=y | ||
15 | CONFIG_MODULES=y | ||
16 | CONFIG_MODULE_UNLOAD=y | ||
17 | # CONFIG_BLK_DEV_BSG is not set | ||
18 | # CONFIG_PPC_CHRP is not set | ||
19 | # CONFIG_PPC_PMAC is not set | ||
20 | CONFIG_PPC_86xx=y | ||
21 | CONFIG_SBC8641D=y | ||
22 | CONFIG_PREEMPT=y | ||
23 | CONFIG_BINFMT_MISC=m | ||
24 | CONFIG_PCI=y | ||
25 | CONFIG_PCIEPORTBUS=y | ||
26 | # CONFIG_PCIEASPM is not set | ||
27 | CONFIG_NET=y | ||
28 | CONFIG_PACKET=y | ||
29 | CONFIG_UNIX=y | ||
30 | CONFIG_XFRM_USER=m | ||
31 | CONFIG_NET_KEY=m | ||
32 | CONFIG_INET=y | ||
33 | CONFIG_IP_MULTICAST=y | ||
34 | CONFIG_IP_ADVANCED_ROUTER=y | ||
35 | CONFIG_IP_MULTIPLE_TABLES=y | ||
36 | CONFIG_IP_ROUTE_MULTIPATH=y | ||
37 | CONFIG_IP_ROUTE_VERBOSE=y | ||
38 | CONFIG_IP_PNP=y | ||
39 | CONFIG_IP_PNP_DHCP=y | ||
40 | CONFIG_IP_PNP_BOOTP=y | ||
41 | CONFIG_IP_PNP_RARP=y | ||
42 | CONFIG_NET_IPIP=m | ||
43 | CONFIG_IP_MROUTE=y | ||
44 | CONFIG_IP_PIMSM_V1=y | ||
45 | CONFIG_IP_PIMSM_V2=y | ||
46 | CONFIG_SYN_COOKIES=y | ||
47 | CONFIG_INET_AH=m | ||
48 | CONFIG_INET_ESP=m | ||
49 | CONFIG_INET_IPCOMP=m | ||
50 | # CONFIG_INET_LRO is not set | ||
51 | CONFIG_INET6_AH=m | ||
52 | CONFIG_INET6_ESP=m | ||
53 | CONFIG_INET6_IPCOMP=m | ||
54 | CONFIG_IPV6_TUNNEL=m | ||
55 | CONFIG_NETFILTER=y | ||
56 | # CONFIG_NETFILTER_XT_MATCH_SCTP is not set | ||
57 | CONFIG_IP_NF_IPTABLES=m | ||
58 | CONFIG_IP_NF_MATCH_ECN=m | ||
59 | CONFIG_IP_NF_MATCH_TTL=m | ||
60 | CONFIG_IP_NF_FILTER=m | ||
61 | CONFIG_IP_NF_TARGET_REJECT=m | ||
62 | CONFIG_IP_NF_MANGLE=m | ||
63 | CONFIG_IP_NF_TARGET_ECN=m | ||
64 | CONFIG_IP_NF_RAW=m | ||
65 | CONFIG_IP_NF_ARPTABLES=m | ||
66 | CONFIG_IP_NF_ARPFILTER=m | ||
67 | CONFIG_IP_NF_ARP_MANGLE=m | ||
68 | CONFIG_IP6_NF_IPTABLES=m | ||
69 | CONFIG_IP6_NF_MATCH_EUI64=m | ||
70 | CONFIG_IP6_NF_MATCH_FRAG=m | ||
71 | CONFIG_IP6_NF_MATCH_OPTS=m | ||
72 | CONFIG_IP6_NF_MATCH_HL=m | ||
73 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m | ||
74 | CONFIG_IP6_NF_MATCH_RT=m | ||
75 | CONFIG_IP6_NF_FILTER=m | ||
76 | CONFIG_IP6_NF_MANGLE=m | ||
77 | CONFIG_IP6_NF_RAW=m | ||
78 | CONFIG_IP_SCTP=m | ||
79 | CONFIG_TIPC=m | ||
80 | CONFIG_ATM=m | ||
81 | CONFIG_ATM_CLIP=m | ||
82 | CONFIG_ATM_LANE=m | ||
83 | CONFIG_ATM_MPOA=m | ||
84 | CONFIG_ATM_BR2684=m | ||
85 | CONFIG_BRIDGE=m | ||
86 | CONFIG_VLAN_8021Q=m | ||
87 | CONFIG_NET_SCHED=y | ||
88 | CONFIG_NET_SCH_CBQ=m | ||
89 | CONFIG_NET_SCH_HTB=m | ||
90 | CONFIG_NET_SCH_HFSC=m | ||
91 | CONFIG_NET_SCH_ATM=m | ||
92 | CONFIG_NET_SCH_PRIO=m | ||
93 | CONFIG_NET_SCH_RED=m | ||
94 | CONFIG_NET_SCH_SFQ=m | ||
95 | CONFIG_NET_SCH_TEQL=m | ||
96 | CONFIG_NET_SCH_TBF=m | ||
97 | CONFIG_NET_SCH_GRED=m | ||
98 | CONFIG_NET_SCH_DSMARK=m | ||
99 | CONFIG_NET_SCH_NETEM=m | ||
100 | CONFIG_NET_CLS_TCINDEX=m | ||
101 | CONFIG_NET_CLS_ROUTE4=m | ||
102 | CONFIG_NET_CLS_FW=m | ||
103 | CONFIG_NET_CLS_U32=m | ||
104 | CONFIG_NET_CLS_RSVP=m | ||
105 | CONFIG_NET_CLS_RSVP6=m | ||
106 | CONFIG_NET_PKTGEN=m | ||
107 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
108 | # CONFIG_FW_LOADER is not set | ||
109 | CONFIG_MTD=y | ||
110 | CONFIG_MTD_BLOCK=y | ||
111 | CONFIG_MTD_CFI=y | ||
112 | CONFIG_MTD_CFI_ADV_OPTIONS=y | ||
113 | CONFIG_MTD_CFI_LE_BYTE_SWAP=y | ||
114 | CONFIG_MTD_CFI_INTELEXT=y | ||
115 | CONFIG_MTD_PHYSMAP_OF=y | ||
116 | CONFIG_BLK_DEV_LOOP=m | ||
117 | CONFIG_BLK_DEV_CRYPTOLOOP=m | ||
118 | CONFIG_BLK_DEV_NBD=m | ||
119 | CONFIG_BLK_DEV_RAM=y | ||
120 | CONFIG_MD=y | ||
121 | CONFIG_BLK_DEV_MD=y | ||
122 | CONFIG_MD_LINEAR=y | ||
123 | CONFIG_MD_RAID0=y | ||
124 | CONFIG_MD_RAID1=y | ||
125 | CONFIG_MD_RAID10=y | ||
126 | CONFIG_MD_MULTIPATH=y | ||
127 | CONFIG_MD_FAULTY=y | ||
128 | CONFIG_BLK_DEV_DM=y | ||
129 | CONFIG_DM_CRYPT=y | ||
130 | CONFIG_DM_SNAPSHOT=y | ||
131 | CONFIG_DM_MIRROR=y | ||
132 | CONFIG_DM_ZERO=y | ||
133 | CONFIG_NETDEVICES=y | ||
134 | CONFIG_BONDING=m | ||
135 | CONFIG_DUMMY=m | ||
136 | CONFIG_NETCONSOLE=y | ||
137 | CONFIG_TUN=m | ||
138 | CONFIG_GIANFAR=y | ||
139 | CONFIG_BROADCOM_PHY=y | ||
140 | CONFIG_PPP=m | ||
141 | CONFIG_PPP_BSDCOMP=m | ||
142 | CONFIG_PPP_DEFLATE=m | ||
143 | CONFIG_PPP_FILTER=y | ||
144 | CONFIG_PPP_MULTILINK=y | ||
145 | CONFIG_PPPOATM=m | ||
146 | CONFIG_PPPOE=m | ||
147 | CONFIG_PPP_ASYNC=m | ||
148 | CONFIG_PPP_SYNC_TTY=m | ||
149 | CONFIG_SLIP=m | ||
150 | CONFIG_SLIP_COMPRESSED=y | ||
151 | CONFIG_SLIP_SMART=y | ||
152 | CONFIG_SLIP_MODE_SLIP6=y | ||
153 | # CONFIG_INPUT_KEYBOARD is not set | ||
154 | # CONFIG_INPUT_MOUSE is not set | ||
155 | # CONFIG_SERIO is not set | ||
156 | CONFIG_SERIAL_8250=y | ||
157 | CONFIG_SERIAL_8250_CONSOLE=y | ||
158 | # CONFIG_SERIAL_8250_PCI is not set | ||
159 | CONFIG_SERIAL_8250_NR_UARTS=2 | ||
160 | CONFIG_SERIAL_8250_RUNTIME_UARTS=2 | ||
161 | CONFIG_I2C=y | ||
162 | CONFIG_I2C_CHARDEV=y | ||
163 | CONFIG_I2C_MPC=y | ||
164 | CONFIG_WATCHDOG=y | ||
165 | CONFIG_SOFT_WATCHDOG=m | ||
166 | CONFIG_EXT2_FS=y | ||
167 | CONFIG_EXT2_FS_XATTR=y | ||
168 | CONFIG_EXT2_FS_POSIX_ACL=y | ||
169 | CONFIG_EXT3_FS=y | ||
170 | # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set | ||
171 | CONFIG_EXT3_FS_POSIX_ACL=y | ||
172 | CONFIG_REISERFS_FS=m | ||
173 | CONFIG_REISERFS_FS_XATTR=y | ||
174 | CONFIG_REISERFS_FS_POSIX_ACL=y | ||
175 | CONFIG_AUTOFS4_FS=m | ||
176 | CONFIG_PROC_KCORE=y | ||
177 | CONFIG_TMPFS=y | ||
178 | CONFIG_MINIX_FS=m | ||
179 | CONFIG_ROMFS_FS=m | ||
180 | CONFIG_NFS_FS=y | ||
181 | CONFIG_NFS_V4=y | ||
182 | CONFIG_ROOT_NFS=y | ||
183 | CONFIG_CIFS=m | ||
184 | CONFIG_CIFS_XATTR=y | ||
185 | CONFIG_CIFS_POSIX=y | ||
186 | CONFIG_NLS_CODEPAGE_437=m | ||
187 | CONFIG_NLS_CODEPAGE_737=m | ||
188 | CONFIG_NLS_CODEPAGE_775=m | ||
189 | CONFIG_NLS_CODEPAGE_850=m | ||
190 | CONFIG_NLS_CODEPAGE_852=m | ||
191 | CONFIG_NLS_CODEPAGE_855=m | ||
192 | CONFIG_NLS_CODEPAGE_857=m | ||
193 | CONFIG_NLS_CODEPAGE_860=m | ||
194 | CONFIG_NLS_CODEPAGE_861=m | ||
195 | CONFIG_NLS_CODEPAGE_862=m | ||
196 | CONFIG_NLS_CODEPAGE_863=m | ||
197 | CONFIG_NLS_CODEPAGE_864=m | ||
198 | CONFIG_NLS_CODEPAGE_865=m | ||
199 | CONFIG_NLS_CODEPAGE_866=m | ||
200 | CONFIG_NLS_CODEPAGE_869=m | ||
201 | CONFIG_NLS_CODEPAGE_936=m | ||
202 | CONFIG_NLS_CODEPAGE_950=m | ||
203 | CONFIG_NLS_CODEPAGE_932=m | ||
204 | CONFIG_NLS_CODEPAGE_949=m | ||
205 | CONFIG_NLS_CODEPAGE_874=m | ||
206 | CONFIG_NLS_ISO8859_8=m | ||
207 | CONFIG_NLS_CODEPAGE_1250=m | ||
208 | CONFIG_NLS_CODEPAGE_1251=m | ||
209 | CONFIG_NLS_ASCII=m | ||
210 | CONFIG_NLS_ISO8859_1=m | ||
211 | CONFIG_NLS_ISO8859_2=m | ||
212 | CONFIG_NLS_ISO8859_3=m | ||
213 | CONFIG_NLS_ISO8859_4=m | ||
214 | CONFIG_NLS_ISO8859_5=m | ||
215 | CONFIG_NLS_ISO8859_6=m | ||
216 | CONFIG_NLS_ISO8859_7=m | ||
217 | CONFIG_NLS_ISO8859_9=m | ||
218 | CONFIG_NLS_ISO8859_13=m | ||
219 | CONFIG_NLS_ISO8859_14=m | ||
220 | CONFIG_NLS_ISO8859_15=m | ||
221 | CONFIG_NLS_KOI8_R=m | ||
222 | CONFIG_NLS_KOI8_U=m | ||
223 | CONFIG_NLS_UTF8=m | ||
224 | CONFIG_DEBUG_INFO=y | ||
225 | CONFIG_DEBUG_FS=y | ||
226 | CONFIG_MAGIC_SYSRQ=y | ||
227 | CONFIG_DETECT_HUNG_TASK=y | ||
228 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
229 | CONFIG_SECURITY=y | ||
230 | CONFIG_SECURITY_NETWORK=y | ||
231 | CONFIG_CRYPTO_NULL=m | ||
232 | CONFIG_CRYPTO_TEST=m | ||
233 | CONFIG_CRYPTO_PCBC=m | ||
234 | CONFIG_CRYPTO_HMAC=y | ||
235 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
236 | CONFIG_CRYPTO_SHA512=m | ||
237 | CONFIG_CRYPTO_WP512=m | ||
238 | CONFIG_CRYPTO_ANUBIS=m | ||
239 | CONFIG_CRYPTO_BLOWFISH=m | ||
240 | CONFIG_CRYPTO_CAST5=m | ||
241 | CONFIG_CRYPTO_CAST6=m | ||
242 | CONFIG_CRYPTO_KHAZAD=m | ||
243 | CONFIG_CRYPTO_SERPENT=m | ||
244 | CONFIG_CRYPTO_TEA=m | ||
245 | CONFIG_CRYPTO_TWOFISH=m | ||
246 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
diff --git a/arch/powerpc/configs/mpc86xx_basic_defconfig b/arch/powerpc/configs/mpc86xx_basic_defconfig new file mode 100644 index 000000000000..33af5c5de105 --- /dev/null +++ b/arch/powerpc/configs/mpc86xx_basic_defconfig | |||
@@ -0,0 +1,10 @@ | |||
1 | CONFIG_HIGHMEM=y | ||
2 | CONFIG_KEXEC=y | ||
3 | CONFIG_PPC_86xx=y | ||
4 | CONFIG_PROC_KCORE=y | ||
5 | CONFIG_GEF_PPC9A=y | ||
6 | CONFIG_GEF_SBC310=y | ||
7 | CONFIG_GEF_SBC610=y | ||
8 | CONFIG_MPC8610_HPCD=y | ||
9 | CONFIG_MPC8641_HPCN=y | ||
10 | CONFIG_SBC8641D=y | ||
diff --git a/arch/powerpc/configs/mpc86xx_defconfig b/arch/powerpc/configs/mpc86xx_defconfig deleted file mode 100644 index a4572563681c..000000000000 --- a/arch/powerpc/configs/mpc86xx_defconfig +++ /dev/null | |||
@@ -1,162 +0,0 @@ | |||
1 | CONFIG_SMP=y | ||
2 | CONFIG_NR_CPUS=2 | ||
3 | CONFIG_SYSVIPC=y | ||
4 | CONFIG_POSIX_MQUEUE=y | ||
5 | CONFIG_AUDIT=y | ||
6 | CONFIG_NO_HZ=y | ||
7 | CONFIG_HIGH_RES_TIMERS=y | ||
8 | CONFIG_BSD_PROCESS_ACCT=y | ||
9 | CONFIG_IKCONFIG=y | ||
10 | CONFIG_IKCONFIG_PROC=y | ||
11 | CONFIG_LOG_BUF_SHIFT=14 | ||
12 | CONFIG_BLK_DEV_INITRD=y | ||
13 | CONFIG_EXPERT=y | ||
14 | CONFIG_KALLSYMS_ALL=y | ||
15 | CONFIG_MODULES=y | ||
16 | CONFIG_MODULE_UNLOAD=y | ||
17 | CONFIG_MODULE_FORCE_UNLOAD=y | ||
18 | CONFIG_MODVERSIONS=y | ||
19 | # CONFIG_BLK_DEV_BSG is not set | ||
20 | CONFIG_PARTITION_ADVANCED=y | ||
21 | CONFIG_MAC_PARTITION=y | ||
22 | # CONFIG_PPC_CHRP is not set | ||
23 | # CONFIG_PPC_PMAC is not set | ||
24 | CONFIG_PPC_86xx=y | ||
25 | CONFIG_MPC8641_HPCN=y | ||
26 | CONFIG_SBC8641D=y | ||
27 | CONFIG_MPC8610_HPCD=y | ||
28 | CONFIG_GEF_SBC610=y | ||
29 | CONFIG_HIGHMEM=y | ||
30 | CONFIG_HZ_1000=y | ||
31 | CONFIG_BINFMT_MISC=m | ||
32 | CONFIG_PCI=y | ||
33 | CONFIG_NET=y | ||
34 | CONFIG_PACKET=y | ||
35 | CONFIG_UNIX=y | ||
36 | CONFIG_XFRM_USER=y | ||
37 | CONFIG_NET_KEY=m | ||
38 | CONFIG_INET=y | ||
39 | CONFIG_IP_MULTICAST=y | ||
40 | CONFIG_IP_ADVANCED_ROUTER=y | ||
41 | CONFIG_IP_MULTIPLE_TABLES=y | ||
42 | CONFIG_IP_ROUTE_MULTIPATH=y | ||
43 | CONFIG_IP_ROUTE_VERBOSE=y | ||
44 | CONFIG_IP_PNP=y | ||
45 | CONFIG_IP_PNP_DHCP=y | ||
46 | CONFIG_IP_PNP_BOOTP=y | ||
47 | CONFIG_IP_PNP_RARP=y | ||
48 | CONFIG_NET_IPIP=y | ||
49 | CONFIG_IP_MROUTE=y | ||
50 | CONFIG_IP_PIMSM_V1=y | ||
51 | CONFIG_IP_PIMSM_V2=y | ||
52 | # CONFIG_INET_XFRM_MODE_TRANSPORT is not set | ||
53 | # CONFIG_INET_XFRM_MODE_TUNNEL is not set | ||
54 | # CONFIG_INET_XFRM_MODE_BEET is not set | ||
55 | # CONFIG_INET_LRO is not set | ||
56 | CONFIG_IPV6=y | ||
57 | CONFIG_IP_SCTP=m | ||
58 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
59 | CONFIG_BLK_DEV_LOOP=y | ||
60 | CONFIG_BLK_DEV_NBD=y | ||
61 | CONFIG_BLK_DEV_RAM=y | ||
62 | CONFIG_BLK_DEV_RAM_SIZE=131072 | ||
63 | CONFIG_EEPROM_LEGACY=y | ||
64 | CONFIG_BLK_DEV_SD=y | ||
65 | CONFIG_CHR_DEV_ST=y | ||
66 | CONFIG_BLK_DEV_SR=y | ||
67 | CONFIG_CHR_DEV_SG=y | ||
68 | CONFIG_SCSI_LOGGING=y | ||
69 | CONFIG_ATA=y | ||
70 | CONFIG_SATA_AHCI=y | ||
71 | CONFIG_PATA_ALI=y | ||
72 | CONFIG_NETDEVICES=y | ||
73 | CONFIG_DUMMY=y | ||
74 | CONFIG_GIANFAR=y | ||
75 | CONFIG_VITESSE_PHY=y | ||
76 | CONFIG_INPUT_FF_MEMLESS=m | ||
77 | # CONFIG_INPUT_MOUSEDEV is not set | ||
78 | # CONFIG_INPUT_KEYBOARD is not set | ||
79 | # CONFIG_INPUT_MOUSE is not set | ||
80 | CONFIG_SERIO_LIBPS2=y | ||
81 | CONFIG_SERIAL_8250=y | ||
82 | CONFIG_SERIAL_8250_CONSOLE=y | ||
83 | CONFIG_SERIAL_8250_NR_UARTS=2 | ||
84 | CONFIG_SERIAL_8250_RUNTIME_UARTS=2 | ||
85 | CONFIG_SERIAL_8250_EXTENDED=y | ||
86 | CONFIG_SERIAL_8250_MANY_PORTS=y | ||
87 | CONFIG_SERIAL_8250_SHARE_IRQ=y | ||
88 | CONFIG_SERIAL_8250_DETECT_IRQ=y | ||
89 | CONFIG_SERIAL_8250_RSA=y | ||
90 | # CONFIG_HW_RANDOM is not set | ||
91 | CONFIG_NVRAM=y | ||
92 | CONFIG_I2C=y | ||
93 | CONFIG_I2C_MPC=y | ||
94 | # CONFIG_HWMON is not set | ||
95 | CONFIG_SOUND=y | ||
96 | CONFIG_SND=y | ||
97 | CONFIG_SND_MIXER_OSS=y | ||
98 | CONFIG_SND_PCM_OSS=y | ||
99 | # CONFIG_SND_SUPPORT_OLD_API is not set | ||
100 | CONFIG_SND_INTEL8X0=y | ||
101 | CONFIG_HID_A4TECH=y | ||
102 | CONFIG_HID_APPLE=y | ||
103 | CONFIG_HID_BELKIN=y | ||
104 | CONFIG_HID_CHERRY=y | ||
105 | CONFIG_HID_CHICONY=y | ||
106 | CONFIG_HID_CYPRESS=y | ||
107 | CONFIG_HID_EZKEY=y | ||
108 | CONFIG_HID_GYRATION=y | ||
109 | CONFIG_HID_LOGITECH=y | ||
110 | CONFIG_HID_MICROSOFT=y | ||
111 | CONFIG_HID_MONTEREY=y | ||
112 | CONFIG_HID_PANTHERLORD=y | ||
113 | CONFIG_HID_PETALYNX=y | ||
114 | CONFIG_HID_SAMSUNG=y | ||
115 | CONFIG_HID_SUNPLUS=y | ||
116 | CONFIG_USB=y | ||
117 | CONFIG_USB_MON=y | ||
118 | CONFIG_USB_EHCI_HCD=y | ||
119 | CONFIG_USB_OHCI_HCD=y | ||
120 | CONFIG_USB_OHCI_HCD_PPC_OF_BE=y | ||
121 | CONFIG_USB_OHCI_HCD_PPC_OF_LE=y | ||
122 | CONFIG_USB_STORAGE=y | ||
123 | CONFIG_RTC_CLASS=y | ||
124 | CONFIG_RTC_DRV_CMOS=y | ||
125 | CONFIG_EXT2_FS=y | ||
126 | CONFIG_EXT3_FS=y | ||
127 | # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set | ||
128 | CONFIG_ISO9660_FS=m | ||
129 | CONFIG_JOLIET=y | ||
130 | CONFIG_ZISOFS=y | ||
131 | CONFIG_UDF_FS=m | ||
132 | CONFIG_MSDOS_FS=m | ||
133 | CONFIG_VFAT_FS=y | ||
134 | CONFIG_NTFS_FS=y | ||
135 | CONFIG_PROC_KCORE=y | ||
136 | CONFIG_TMPFS=y | ||
137 | CONFIG_ADFS_FS=m | ||
138 | CONFIG_AFFS_FS=m | ||
139 | CONFIG_HFS_FS=m | ||
140 | CONFIG_HFSPLUS_FS=m | ||
141 | CONFIG_BEFS_FS=m | ||
142 | CONFIG_BFS_FS=m | ||
143 | CONFIG_EFS_FS=m | ||
144 | CONFIG_CRAMFS=y | ||
145 | CONFIG_VXFS_FS=m | ||
146 | CONFIG_HPFS_FS=m | ||
147 | CONFIG_QNX4FS_FS=m | ||
148 | CONFIG_SYSV_FS=m | ||
149 | CONFIG_UFS_FS=m | ||
150 | CONFIG_NFS_FS=y | ||
151 | CONFIG_NFS_V4=y | ||
152 | CONFIG_ROOT_NFS=y | ||
153 | CONFIG_NFSD=y | ||
154 | CONFIG_NLS_CODEPAGE_437=y | ||
155 | CONFIG_NLS_CODEPAGE_850=y | ||
156 | CONFIG_NLS_ISO8859_1=y | ||
157 | CONFIG_CRC_T10DIF=y | ||
158 | CONFIG_DEBUG_INFO=y | ||
159 | CONFIG_DETECT_HUNG_TASK=y | ||
160 | CONFIG_CRYPTO_PCBC=m | ||
161 | CONFIG_CRYPTO_HMAC=y | ||
162 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
diff --git a/arch/powerpc/include/asm/cache.h b/arch/powerpc/include/asm/cache.h index 5f8229e24fe6..ffbafbf76b19 100644 --- a/arch/powerpc/include/asm/cache.h +++ b/arch/powerpc/include/asm/cache.h | |||
@@ -69,6 +69,25 @@ extern void _set_L3CR(unsigned long); | |||
69 | #define _set_L3CR(val) do { } while(0) | 69 | #define _set_L3CR(val) do { } while(0) |
70 | #endif | 70 | #endif |
71 | 71 | ||
72 | static inline void dcbz(void *addr) | ||
73 | { | ||
74 | __asm__ __volatile__ ("dcbz 0, %0" : : "r"(addr) : "memory"); | ||
75 | } | ||
76 | |||
77 | static inline void dcbi(void *addr) | ||
78 | { | ||
79 | __asm__ __volatile__ ("dcbi 0, %0" : : "r"(addr) : "memory"); | ||
80 | } | ||
81 | |||
82 | static inline void dcbf(void *addr) | ||
83 | { | ||
84 | __asm__ __volatile__ ("dcbf 0, %0" : : "r"(addr) : "memory"); | ||
85 | } | ||
86 | |||
87 | static inline void dcbst(void *addr) | ||
88 | { | ||
89 | __asm__ __volatile__ ("dcbst 0, %0" : : "r"(addr) : "memory"); | ||
90 | } | ||
72 | #endif /* !__ASSEMBLY__ */ | 91 | #endif /* !__ASSEMBLY__ */ |
73 | #endif /* __KERNEL__ */ | 92 | #endif /* __KERNEL__ */ |
74 | #endif /* _ASM_POWERPC_CACHE_H */ | 93 | #endif /* _ASM_POWERPC_CACHE_H */ |
diff --git a/arch/powerpc/include/asm/cacheflush.h b/arch/powerpc/include/asm/cacheflush.h index 6229e6b6037b..69fb16d7a811 100644 --- a/arch/powerpc/include/asm/cacheflush.h +++ b/arch/powerpc/include/asm/cacheflush.h | |||
@@ -30,8 +30,6 @@ extern void flush_dcache_page(struct page *page); | |||
30 | #define flush_dcache_mmap_lock(mapping) do { } while (0) | 30 | #define flush_dcache_mmap_lock(mapping) do { } while (0) |
31 | #define flush_dcache_mmap_unlock(mapping) do { } while (0) | 31 | #define flush_dcache_mmap_unlock(mapping) do { } while (0) |
32 | 32 | ||
33 | extern void __flush_disable_L1(void); | ||
34 | |||
35 | extern void flush_icache_range(unsigned long, unsigned long); | 33 | extern void flush_icache_range(unsigned long, unsigned long); |
36 | extern void flush_icache_user_range(struct vm_area_struct *vma, | 34 | extern void flush_icache_user_range(struct vm_area_struct *vma, |
37 | struct page *page, unsigned long addr, | 35 | struct page *page, unsigned long addr, |
@@ -47,12 +45,58 @@ static inline void __flush_dcache_icache_phys(unsigned long physaddr) | |||
47 | } | 45 | } |
48 | #endif | 46 | #endif |
49 | 47 | ||
50 | extern void flush_dcache_range(unsigned long start, unsigned long stop); | ||
51 | #ifdef CONFIG_PPC32 | 48 | #ifdef CONFIG_PPC32 |
52 | extern void clean_dcache_range(unsigned long start, unsigned long stop); | 49 | /* |
53 | extern void invalidate_dcache_range(unsigned long start, unsigned long stop); | 50 | * Write any modified data cache blocks out to memory and invalidate them. |
51 | * Does not invalidate the corresponding instruction cache blocks. | ||
52 | */ | ||
53 | static inline void flush_dcache_range(unsigned long start, unsigned long stop) | ||
54 | { | ||
55 | void *addr = (void *)(start & ~(L1_CACHE_BYTES - 1)); | ||
56 | unsigned long size = stop - (unsigned long)addr + (L1_CACHE_BYTES - 1); | ||
57 | unsigned long i; | ||
58 | |||
59 | for (i = 0; i < size >> L1_CACHE_SHIFT; i++, addr += L1_CACHE_BYTES) | ||
60 | dcbf(addr); | ||
61 | mb(); /* sync */ | ||
62 | } | ||
63 | |||
64 | /* | ||
65 | * Write any modified data cache blocks out to memory. | ||
66 | * Does not invalidate the corresponding cache lines (especially for | ||
67 | * any corresponding instruction cache). | ||
68 | */ | ||
69 | static inline void clean_dcache_range(unsigned long start, unsigned long stop) | ||
70 | { | ||
71 | void *addr = (void *)(start & ~(L1_CACHE_BYTES - 1)); | ||
72 | unsigned long size = stop - (unsigned long)addr + (L1_CACHE_BYTES - 1); | ||
73 | unsigned long i; | ||
74 | |||
75 | for (i = 0; i < size >> L1_CACHE_SHIFT; i++, addr += L1_CACHE_BYTES) | ||
76 | dcbst(addr); | ||
77 | mb(); /* sync */ | ||
78 | } | ||
79 | |||
80 | /* | ||
81 | * Like above, but invalidate the D-cache. This is used by the 8xx | ||
82 | * to invalidate the cache so the PPC core doesn't get stale data | ||
83 | * from the CPM (no cache snooping here :-). | ||
84 | */ | ||
85 | static inline void invalidate_dcache_range(unsigned long start, | ||
86 | unsigned long stop) | ||
87 | { | ||
88 | void *addr = (void *)(start & ~(L1_CACHE_BYTES - 1)); | ||
89 | unsigned long size = stop - (unsigned long)addr + (L1_CACHE_BYTES - 1); | ||
90 | unsigned long i; | ||
91 | |||
92 | for (i = 0; i < size >> L1_CACHE_SHIFT; i++, addr += L1_CACHE_BYTES) | ||
93 | dcbi(addr); | ||
94 | mb(); /* sync */ | ||
95 | } | ||
96 | |||
54 | #endif /* CONFIG_PPC32 */ | 97 | #endif /* CONFIG_PPC32 */ |
55 | #ifdef CONFIG_PPC64 | 98 | #ifdef CONFIG_PPC64 |
99 | extern void flush_dcache_range(unsigned long start, unsigned long stop); | ||
56 | extern void flush_inval_dcache_range(unsigned long start, unsigned long stop); | 100 | extern void flush_inval_dcache_range(unsigned long start, unsigned long stop); |
57 | extern void flush_dcache_phys_range(unsigned long start, unsigned long stop); | 101 | extern void flush_dcache_phys_range(unsigned long start, unsigned long stop); |
58 | #endif | 102 | #endif |
diff --git a/arch/powerpc/include/asm/checksum.h b/arch/powerpc/include/asm/checksum.h index e8d9ef4755a4..ee655ed1ff1b 100644 --- a/arch/powerpc/include/asm/checksum.h +++ b/arch/powerpc/include/asm/checksum.h | |||
@@ -9,30 +9,9 @@ | |||
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | /* | ||
13 | * This is a version of ip_compute_csum() optimized for IP headers, | ||
14 | * which always checksum on 4 octet boundaries. ihl is the number | ||
15 | * of 32-bit words and is always >= 5. | ||
16 | */ | ||
17 | #ifdef CONFIG_GENERIC_CSUM | 12 | #ifdef CONFIG_GENERIC_CSUM |
18 | #include <asm-generic/checksum.h> | 13 | #include <asm-generic/checksum.h> |
19 | #else | 14 | #else |
20 | extern __sum16 ip_fast_csum(const void *iph, unsigned int ihl); | ||
21 | |||
22 | /* | ||
23 | * computes the checksum of a memory block at buff, length len, | ||
24 | * and adds in "sum" (32-bit) | ||
25 | * | ||
26 | * returns a 32-bit number suitable for feeding into itself | ||
27 | * or csum_tcpudp_magic | ||
28 | * | ||
29 | * this function must be called with even lengths, except | ||
30 | * for the last fragment, which may be odd | ||
31 | * | ||
32 | * it's best to have buff aligned on a 32-bit boundary | ||
33 | */ | ||
34 | extern __wsum csum_partial(const void *buff, int len, __wsum sum); | ||
35 | |||
36 | /* | 15 | /* |
37 | * Computes the checksum of a memory block at src, length len, | 16 | * Computes the checksum of a memory block at src, length len, |
38 | * and adds in "sum" (32-bit), while copying the block to dst. | 17 | * and adds in "sum" (32-bit), while copying the block to dst. |
@@ -47,21 +26,12 @@ extern __wsum csum_partial_copy_generic(const void *src, void *dst, | |||
47 | int len, __wsum sum, | 26 | int len, __wsum sum, |
48 | int *src_err, int *dst_err); | 27 | int *src_err, int *dst_err); |
49 | 28 | ||
50 | #ifdef __powerpc64__ | ||
51 | #define _HAVE_ARCH_COPY_AND_CSUM_FROM_USER | 29 | #define _HAVE_ARCH_COPY_AND_CSUM_FROM_USER |
52 | extern __wsum csum_and_copy_from_user(const void __user *src, void *dst, | 30 | extern __wsum csum_and_copy_from_user(const void __user *src, void *dst, |
53 | int len, __wsum sum, int *err_ptr); | 31 | int len, __wsum sum, int *err_ptr); |
54 | #define HAVE_CSUM_COPY_USER | 32 | #define HAVE_CSUM_COPY_USER |
55 | extern __wsum csum_and_copy_to_user(const void *src, void __user *dst, | 33 | extern __wsum csum_and_copy_to_user(const void *src, void __user *dst, |
56 | int len, __wsum sum, int *err_ptr); | 34 | int len, __wsum sum, int *err_ptr); |
57 | #else | ||
58 | /* | ||
59 | * the same as csum_partial, but copies from src to dst while it | ||
60 | * checksums. | ||
61 | */ | ||
62 | #define csum_partial_copy_from_user(src, dst, len, sum, errp) \ | ||
63 | csum_partial_copy_generic((__force const void *)(src), (dst), (len), (sum), (errp), NULL) | ||
64 | #endif | ||
65 | 35 | ||
66 | #define csum_partial_copy_nocheck(src, dst, len, sum) \ | 36 | #define csum_partial_copy_nocheck(src, dst, len, sum) \ |
67 | csum_partial_copy_generic((src), (dst), (len), (sum), NULL, NULL) | 37 | csum_partial_copy_generic((src), (dst), (len), (sum), NULL, NULL) |
@@ -83,15 +53,6 @@ static inline __sum16 csum_fold(__wsum sum) | |||
83 | return (__force __sum16)(~((__force u32)sum + tmp) >> 16); | 53 | return (__force __sum16)(~((__force u32)sum + tmp) >> 16); |
84 | } | 54 | } |
85 | 55 | ||
86 | /* | ||
87 | * this routine is used for miscellaneous IP-like checksums, mainly | ||
88 | * in icmp.c | ||
89 | */ | ||
90 | static inline __sum16 ip_compute_csum(const void *buff, int len) | ||
91 | { | ||
92 | return csum_fold(csum_partial(buff, len, 0)); | ||
93 | } | ||
94 | |||
95 | static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr, | 56 | static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr, |
96 | unsigned short len, | 57 | unsigned short len, |
97 | unsigned short proto, | 58 | unsigned short proto, |
@@ -135,17 +96,117 @@ static inline __wsum csum_add(__wsum csum, __wsum addend) | |||
135 | { | 96 | { |
136 | #ifdef __powerpc64__ | 97 | #ifdef __powerpc64__ |
137 | u64 res = (__force u64)csum; | 98 | u64 res = (__force u64)csum; |
99 | #endif | ||
100 | if (__builtin_constant_p(csum) && csum == 0) | ||
101 | return addend; | ||
102 | if (__builtin_constant_p(addend) && addend == 0) | ||
103 | return csum; | ||
138 | 104 | ||
105 | #ifdef __powerpc64__ | ||
139 | res += (__force u64)addend; | 106 | res += (__force u64)addend; |
140 | return (__force __wsum)((u32)res + (res >> 32)); | 107 | return (__force __wsum)((u32)res + (res >> 32)); |
141 | #else | 108 | #else |
142 | asm("addc %0,%0,%1;" | 109 | asm("addc %0,%0,%1;" |
143 | "addze %0,%0;" | 110 | "addze %0,%0;" |
144 | : "+r" (csum) : "r" (addend)); | 111 | : "+r" (csum) : "r" (addend) : "xer"); |
145 | return csum; | 112 | return csum; |
146 | #endif | 113 | #endif |
147 | } | 114 | } |
148 | 115 | ||
116 | /* | ||
117 | * This is a version of ip_compute_csum() optimized for IP headers, | ||
118 | * which always checksum on 4 octet boundaries. ihl is the number | ||
119 | * of 32-bit words and is always >= 5. | ||
120 | */ | ||
121 | static inline __wsum ip_fast_csum_nofold(const void *iph, unsigned int ihl) | ||
122 | { | ||
123 | const u32 *ptr = (const u32 *)iph + 1; | ||
124 | #ifdef __powerpc64__ | ||
125 | unsigned int i; | ||
126 | u64 s = *(const u32 *)iph; | ||
127 | |||
128 | for (i = 0; i < ihl - 1; i++, ptr++) | ||
129 | s += *ptr; | ||
130 | s += (s >> 32); | ||
131 | return (__force __wsum)s; | ||
132 | #else | ||
133 | __wsum sum, tmp; | ||
134 | |||
135 | asm("mtctr %3;" | ||
136 | "addc %0,%4,%5;" | ||
137 | "1: lwzu %1, 4(%2);" | ||
138 | "adde %0,%0,%1;" | ||
139 | "bdnz 1b;" | ||
140 | "addze %0,%0;" | ||
141 | : "=r" (sum), "=r" (tmp), "+b" (ptr) | ||
142 | : "r" (ihl - 2), "r" (*(const u32 *)iph), "r" (*ptr) | ||
143 | : "ctr", "xer", "memory"); | ||
144 | |||
145 | return sum; | ||
146 | #endif | ||
147 | } | ||
148 | |||
149 | static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl) | ||
150 | { | ||
151 | return csum_fold(ip_fast_csum_nofold(iph, ihl)); | ||
152 | } | ||
153 | |||
154 | /* | ||
155 | * computes the checksum of a memory block at buff, length len, | ||
156 | * and adds in "sum" (32-bit) | ||
157 | * | ||
158 | * returns a 32-bit number suitable for feeding into itself | ||
159 | * or csum_tcpudp_magic | ||
160 | * | ||
161 | * this function must be called with even lengths, except | ||
162 | * for the last fragment, which may be odd | ||
163 | * | ||
164 | * it's best to have buff aligned on a 32-bit boundary | ||
165 | */ | ||
166 | __wsum __csum_partial(const void *buff, int len, __wsum sum); | ||
167 | |||
168 | static inline __wsum csum_partial(const void *buff, int len, __wsum sum) | ||
169 | { | ||
170 | if (__builtin_constant_p(len) && len <= 16 && (len & 1) == 0) { | ||
171 | if (len == 2) | ||
172 | sum = csum_add(sum, (__force __wsum)*(const u16 *)buff); | ||
173 | if (len >= 4) | ||
174 | sum = csum_add(sum, (__force __wsum)*(const u32 *)buff); | ||
175 | if (len == 6) | ||
176 | sum = csum_add(sum, (__force __wsum) | ||
177 | *(const u16 *)(buff + 4)); | ||
178 | if (len >= 8) | ||
179 | sum = csum_add(sum, (__force __wsum) | ||
180 | *(const u32 *)(buff + 4)); | ||
181 | if (len == 10) | ||
182 | sum = csum_add(sum, (__force __wsum) | ||
183 | *(const u16 *)(buff + 8)); | ||
184 | if (len >= 12) | ||
185 | sum = csum_add(sum, (__force __wsum) | ||
186 | *(const u32 *)(buff + 8)); | ||
187 | if (len == 14) | ||
188 | sum = csum_add(sum, (__force __wsum) | ||
189 | *(const u16 *)(buff + 12)); | ||
190 | if (len >= 16) | ||
191 | sum = csum_add(sum, (__force __wsum) | ||
192 | *(const u32 *)(buff + 12)); | ||
193 | } else if (__builtin_constant_p(len) && (len & 3) == 0) { | ||
194 | sum = csum_add(sum, ip_fast_csum_nofold(buff, len >> 2)); | ||
195 | } else { | ||
196 | sum = __csum_partial(buff, len, sum); | ||
197 | } | ||
198 | return sum; | ||
199 | } | ||
200 | |||
201 | /* | ||
202 | * this routine is used for miscellaneous IP-like checksums, mainly | ||
203 | * in icmp.c | ||
204 | */ | ||
205 | static inline __sum16 ip_compute_csum(const void *buff, int len) | ||
206 | { | ||
207 | return csum_fold(csum_partial(buff, len, 0)); | ||
208 | } | ||
209 | |||
149 | #endif | 210 | #endif |
150 | #endif /* __KERNEL__ */ | 211 | #endif /* __KERNEL__ */ |
151 | #endif | 212 | #endif |
diff --git a/arch/powerpc/include/asm/cputable.h b/arch/powerpc/include/asm/cputable.h index 94ace9b4c4e1..df4fb5faba43 100644 --- a/arch/powerpc/include/asm/cputable.h +++ b/arch/powerpc/include/asm/cputable.h | |||
@@ -43,6 +43,11 @@ extern int machine_check_e500(struct pt_regs *regs); | |||
43 | extern int machine_check_e200(struct pt_regs *regs); | 43 | extern int machine_check_e200(struct pt_regs *regs); |
44 | extern int machine_check_47x(struct pt_regs *regs); | 44 | extern int machine_check_47x(struct pt_regs *regs); |
45 | 45 | ||
46 | extern void cpu_down_flush_e500v2(void); | ||
47 | extern void cpu_down_flush_e500mc(void); | ||
48 | extern void cpu_down_flush_e5500(void); | ||
49 | extern void cpu_down_flush_e6500(void); | ||
50 | |||
46 | /* NOTE WELL: Update identify_cpu() if fields are added or removed! */ | 51 | /* NOTE WELL: Update identify_cpu() if fields are added or removed! */ |
47 | struct cpu_spec { | 52 | struct cpu_spec { |
48 | /* CPU is matched via (PVR & pvr_mask) == pvr_value */ | 53 | /* CPU is matched via (PVR & pvr_mask) == pvr_value */ |
@@ -59,6 +64,9 @@ struct cpu_spec { | |||
59 | unsigned int icache_bsize; | 64 | unsigned int icache_bsize; |
60 | unsigned int dcache_bsize; | 65 | unsigned int dcache_bsize; |
61 | 66 | ||
67 | /* flush caches inside the current cpu */ | ||
68 | void (*cpu_down_flush)(void); | ||
69 | |||
62 | /* number of performance monitor counters */ | 70 | /* number of performance monitor counters */ |
63 | unsigned int num_pmcs; | 71 | unsigned int num_pmcs; |
64 | enum powerpc_pmc_type pmc_type; | 72 | enum powerpc_pmc_type pmc_type; |
diff --git a/arch/powerpc/include/asm/cputhreads.h b/arch/powerpc/include/asm/cputhreads.h index ba42e46ea58e..666bef4ebfae 100644 --- a/arch/powerpc/include/asm/cputhreads.h +++ b/arch/powerpc/include/asm/cputhreads.h | |||
@@ -1,6 +1,7 @@ | |||
1 | #ifndef _ASM_POWERPC_CPUTHREADS_H | 1 | #ifndef _ASM_POWERPC_CPUTHREADS_H |
2 | #define _ASM_POWERPC_CPUTHREADS_H | 2 | #define _ASM_POWERPC_CPUTHREADS_H |
3 | 3 | ||
4 | #ifndef __ASSEMBLY__ | ||
4 | #include <linux/cpumask.h> | 5 | #include <linux/cpumask.h> |
5 | 6 | ||
6 | /* | 7 | /* |
@@ -94,7 +95,21 @@ static inline int cpu_last_thread_sibling(int cpu) | |||
94 | return cpu | (threads_per_core - 1); | 95 | return cpu | (threads_per_core - 1); |
95 | } | 96 | } |
96 | 97 | ||
98 | static inline u32 get_tensr(void) | ||
99 | { | ||
100 | #ifdef CONFIG_BOOKE | ||
101 | if (cpu_has_feature(CPU_FTR_SMT)) | ||
102 | return mfspr(SPRN_TENSR); | ||
103 | #endif | ||
104 | return 1; | ||
105 | } | ||
106 | |||
107 | void book3e_start_thread(int thread, unsigned long addr); | ||
108 | void book3e_stop_thread(int thread); | ||
109 | |||
110 | #endif /* __ASSEMBLY__ */ | ||
97 | 111 | ||
112 | #define INVALID_THREAD_HWID 0x0fff | ||
98 | 113 | ||
99 | #endif /* _ASM_POWERPC_CPUTHREADS_H */ | 114 | #endif /* _ASM_POWERPC_CPUTHREADS_H */ |
100 | 115 | ||
diff --git a/arch/powerpc/include/asm/fsl_pm.h b/arch/powerpc/include/asm/fsl_pm.h new file mode 100644 index 000000000000..47df55e36d4f --- /dev/null +++ b/arch/powerpc/include/asm/fsl_pm.h | |||
@@ -0,0 +1,51 @@ | |||
1 | /* | ||
2 | * Support Power Management | ||
3 | * | ||
4 | * Copyright 2014-2015 Freescale Semiconductor 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 | #ifndef __PPC_FSL_PM_H | ||
12 | #define __PPC_FSL_PM_H | ||
13 | |||
14 | #define E500_PM_PH10 1 | ||
15 | #define E500_PM_PH15 2 | ||
16 | #define E500_PM_PH20 3 | ||
17 | #define E500_PM_PH30 4 | ||
18 | #define E500_PM_DOZE E500_PM_PH10 | ||
19 | #define E500_PM_NAP E500_PM_PH15 | ||
20 | |||
21 | #define PLAT_PM_SLEEP 20 | ||
22 | #define PLAT_PM_LPM20 30 | ||
23 | |||
24 | #define FSL_PM_SLEEP (1 << 0) | ||
25 | #define FSL_PM_DEEP_SLEEP (1 << 1) | ||
26 | |||
27 | struct fsl_pm_ops { | ||
28 | /* mask pending interrupts to the RCPM from MPIC */ | ||
29 | void (*irq_mask)(int cpu); | ||
30 | |||
31 | /* unmask pending interrupts to the RCPM from MPIC */ | ||
32 | void (*irq_unmask)(int cpu); | ||
33 | void (*cpu_enter_state)(int cpu, int state); | ||
34 | void (*cpu_exit_state)(int cpu, int state); | ||
35 | void (*cpu_up_prepare)(int cpu); | ||
36 | void (*cpu_die)(int cpu); | ||
37 | int (*plat_enter_sleep)(void); | ||
38 | void (*freeze_time_base)(bool freeze); | ||
39 | |||
40 | /* keep the power of IP blocks during sleep/deep sleep */ | ||
41 | void (*set_ip_power)(bool enable, u32 mask); | ||
42 | |||
43 | /* get platform supported power management modes */ | ||
44 | unsigned int (*get_pm_modes)(void); | ||
45 | }; | ||
46 | |||
47 | extern const struct fsl_pm_ops *qoriq_pm_ops; | ||
48 | |||
49 | int __init fsl_rcpm_init(void); | ||
50 | |||
51 | #endif /* __PPC_FSL_PM_H */ | ||
diff --git a/arch/powerpc/include/asm/mmu-8xx.h b/arch/powerpc/include/asm/mmu-8xx.h index f05500a29a60..0a566f15f985 100644 --- a/arch/powerpc/include/asm/mmu-8xx.h +++ b/arch/powerpc/include/asm/mmu-8xx.h | |||
@@ -171,9 +171,9 @@ typedef struct { | |||
171 | } mm_context_t; | 171 | } mm_context_t; |
172 | #endif /* !__ASSEMBLY__ */ | 172 | #endif /* !__ASSEMBLY__ */ |
173 | 173 | ||
174 | #if (PAGE_SHIFT == 12) | 174 | #if defined(CONFIG_PPC_4K_PAGES) |
175 | #define mmu_virtual_psize MMU_PAGE_4K | 175 | #define mmu_virtual_psize MMU_PAGE_4K |
176 | #elif (PAGE_SHIFT == 14) | 176 | #elif defined(CONFIG_PPC_16K_PAGES) |
177 | #define mmu_virtual_psize MMU_PAGE_16K | 177 | #define mmu_virtual_psize MMU_PAGE_16K |
178 | #else | 178 | #else |
179 | #error "Unsupported PAGE_SIZE" | 179 | #error "Unsupported PAGE_SIZE" |
diff --git a/arch/powerpc/include/asm/nohash/32/pgtable.h b/arch/powerpc/include/asm/nohash/32/pgtable.h index c82cbf52d19e..780847597514 100644 --- a/arch/powerpc/include/asm/nohash/32/pgtable.h +++ b/arch/powerpc/include/asm/nohash/32/pgtable.h | |||
@@ -86,7 +86,7 @@ extern int icache_44x_need_flush; | |||
86 | * We no longer map larger than phys RAM with the BATs so we don't have | 86 | * We no longer map larger than phys RAM with the BATs so we don't have |
87 | * to worry about the VMALLOC_OFFSET causing problems. We do have to worry | 87 | * to worry about the VMALLOC_OFFSET causing problems. We do have to worry |
88 | * about clashes between our early calls to ioremap() that start growing down | 88 | * about clashes between our early calls to ioremap() that start growing down |
89 | * from ioremap_base being run into the VM area allocations (growing upwards | 89 | * from IOREMAP_TOP being run into the VM area allocations (growing upwards |
90 | * from VMALLOC_START). For this reason we have ioremap_bot to check when | 90 | * from VMALLOC_START). For this reason we have ioremap_bot to check when |
91 | * we actually run into our mappings setup in the early boot with the VM | 91 | * we actually run into our mappings setup in the early boot with the VM |
92 | * system. This really does become a problem for machines with good amounts | 92 | * system. This really does become a problem for machines with good amounts |
@@ -309,7 +309,8 @@ static inline void __ptep_set_access_flags(pte_t *ptep, pte_t entry) | |||
309 | #define pte_index(address) \ | 309 | #define pte_index(address) \ |
310 | (((address) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1)) | 310 | (((address) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1)) |
311 | #define pte_offset_kernel(dir, addr) \ | 311 | #define pte_offset_kernel(dir, addr) \ |
312 | ((pte_t *) pmd_page_vaddr(*(dir)) + pte_index(addr)) | 312 | (pmd_bad(*(dir)) ? NULL : (pte_t *)pmd_page_vaddr(*(dir)) + \ |
313 | pte_index(addr)) | ||
313 | #define pte_offset_map(dir, addr) \ | 314 | #define pte_offset_map(dir, addr) \ |
314 | ((pte_t *) kmap_atomic(pmd_page(*(dir))) + pte_index(addr)) | 315 | ((pte_t *) kmap_atomic(pmd_page(*(dir))) + pte_index(addr)) |
315 | #define pte_unmap(pte) kunmap_atomic(pte) | 316 | #define pte_unmap(pte) kunmap_atomic(pte) |
diff --git a/arch/powerpc/include/asm/page_32.h b/arch/powerpc/include/asm/page_32.h index 68d73b2a7bfc..6a8e1797f223 100644 --- a/arch/powerpc/include/asm/page_32.h +++ b/arch/powerpc/include/asm/page_32.h | |||
@@ -1,6 +1,8 @@ | |||
1 | #ifndef _ASM_POWERPC_PAGE_32_H | 1 | #ifndef _ASM_POWERPC_PAGE_32_H |
2 | #define _ASM_POWERPC_PAGE_32_H | 2 | #define _ASM_POWERPC_PAGE_32_H |
3 | 3 | ||
4 | #include <asm/cache.h> | ||
5 | |||
4 | #if defined(CONFIG_PHYSICAL_ALIGN) && (CONFIG_PHYSICAL_START != 0) | 6 | #if defined(CONFIG_PHYSICAL_ALIGN) && (CONFIG_PHYSICAL_START != 0) |
5 | #if (CONFIG_PHYSICAL_START % CONFIG_PHYSICAL_ALIGN) != 0 | 7 | #if (CONFIG_PHYSICAL_START % CONFIG_PHYSICAL_ALIGN) != 0 |
6 | #error "CONFIG_PHYSICAL_START must be a multiple of CONFIG_PHYSICAL_ALIGN" | 8 | #error "CONFIG_PHYSICAL_START must be a multiple of CONFIG_PHYSICAL_ALIGN" |
@@ -36,9 +38,18 @@ typedef unsigned long long pte_basic_t; | |||
36 | typedef unsigned long pte_basic_t; | 38 | typedef unsigned long pte_basic_t; |
37 | #endif | 39 | #endif |
38 | 40 | ||
39 | struct page; | 41 | /* |
40 | extern void clear_pages(void *page, int order); | 42 | * Clear page using the dcbz instruction, which doesn't cause any |
41 | static inline void clear_page(void *page) { clear_pages(page, 0); } | 43 | * memory traffic (except to write out any cache lines which get |
44 | * displaced). This only works on cacheable memory. | ||
45 | */ | ||
46 | static inline void clear_page(void *addr) | ||
47 | { | ||
48 | unsigned int i; | ||
49 | |||
50 | for (i = 0; i < PAGE_SIZE / L1_CACHE_BYTES; i++, addr += L1_CACHE_BYTES) | ||
51 | dcbz(addr); | ||
52 | } | ||
42 | extern void copy_page(void *to, void *from); | 53 | extern void copy_page(void *to, void *from); |
43 | 54 | ||
44 | #include <asm-generic/getorder.h> | 55 | #include <asm-generic/getorder.h> |
diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h index 52ed654d01ba..f5f4c66bbbc9 100644 --- a/arch/powerpc/include/asm/reg.h +++ b/arch/powerpc/include/asm/reg.h | |||
@@ -1219,9 +1219,11 @@ static inline void mtmsr_isync(unsigned long val) | |||
1219 | #define mfspr(rn) ({unsigned long rval; \ | 1219 | #define mfspr(rn) ({unsigned long rval; \ |
1220 | asm volatile("mfspr %0," __stringify(rn) \ | 1220 | asm volatile("mfspr %0," __stringify(rn) \ |
1221 | : "=r" (rval)); rval;}) | 1221 | : "=r" (rval)); rval;}) |
1222 | #ifndef mtspr | ||
1222 | #define mtspr(rn, v) asm volatile("mtspr " __stringify(rn) ",%0" : \ | 1223 | #define mtspr(rn, v) asm volatile("mtspr " __stringify(rn) ",%0" : \ |
1223 | : "r" ((unsigned long)(v)) \ | 1224 | : "r" ((unsigned long)(v)) \ |
1224 | : "memory") | 1225 | : "memory") |
1226 | #endif | ||
1225 | 1227 | ||
1226 | extern void msr_check_and_set(unsigned long bits); | 1228 | extern void msr_check_and_set(unsigned long bits); |
1227 | extern bool strict_msr_control; | 1229 | extern bool strict_msr_control; |
diff --git a/arch/powerpc/include/asm/reg_8xx.h b/arch/powerpc/include/asm/reg_8xx.h index e8ea346b21d3..d41412c7748b 100644 --- a/arch/powerpc/include/asm/reg_8xx.h +++ b/arch/powerpc/include/asm/reg_8xx.h | |||
@@ -4,6 +4,8 @@ | |||
4 | #ifndef _ASM_POWERPC_REG_8xx_H | 4 | #ifndef _ASM_POWERPC_REG_8xx_H |
5 | #define _ASM_POWERPC_REG_8xx_H | 5 | #define _ASM_POWERPC_REG_8xx_H |
6 | 6 | ||
7 | #include <asm/mmu-8xx.h> | ||
8 | |||
7 | /* Cache control on the MPC8xx is provided through some additional | 9 | /* Cache control on the MPC8xx is provided through some additional |
8 | * special purpose registers. | 10 | * special purpose registers. |
9 | */ | 11 | */ |
@@ -14,6 +16,15 @@ | |||
14 | #define SPRN_DC_ADR 569 /* Address needed for some commands */ | 16 | #define SPRN_DC_ADR 569 /* Address needed for some commands */ |
15 | #define SPRN_DC_DAT 570 /* Read-only data register */ | 17 | #define SPRN_DC_DAT 570 /* Read-only data register */ |
16 | 18 | ||
19 | /* Misc Debug */ | ||
20 | #define SPRN_DPDR 630 | ||
21 | #define SPRN_MI_CAM 816 | ||
22 | #define SPRN_MI_RAM0 817 | ||
23 | #define SPRN_MI_RAM1 818 | ||
24 | #define SPRN_MD_CAM 824 | ||
25 | #define SPRN_MD_RAM0 825 | ||
26 | #define SPRN_MD_RAM1 826 | ||
27 | |||
17 | /* Commands. Only the first few are available to the instruction cache. | 28 | /* Commands. Only the first few are available to the instruction cache. |
18 | */ | 29 | */ |
19 | #define IDC_ENABLE 0x02000000 /* Cache enable */ | 30 | #define IDC_ENABLE 0x02000000 /* Cache enable */ |
@@ -39,4 +50,86 @@ | |||
39 | #define DC_DFWT 0x40000000 /* Data cache is forced write through */ | 50 | #define DC_DFWT 0x40000000 /* Data cache is forced write through */ |
40 | #define DC_LES 0x20000000 /* Caches are little endian mode */ | 51 | #define DC_LES 0x20000000 /* Caches are little endian mode */ |
41 | 52 | ||
53 | #ifdef CONFIG_8xx_CPU6 | ||
54 | #define do_mtspr_cpu6(rn, rn_addr, v) \ | ||
55 | do { \ | ||
56 | int _reg_cpu6 = rn_addr, _tmp_cpu6[1]; \ | ||
57 | asm volatile("stw %0, %1;" \ | ||
58 | "lwz %0, %1;" \ | ||
59 | "mtspr " __stringify(rn) ",%2" : \ | ||
60 | : "r" (_reg_cpu6), "m"(_tmp_cpu6), \ | ||
61 | "r" ((unsigned long)(v)) \ | ||
62 | : "memory"); \ | ||
63 | } while (0) | ||
64 | |||
65 | #define do_mtspr(rn, v) asm volatile("mtspr " __stringify(rn) ",%0" : \ | ||
66 | : "r" ((unsigned long)(v)) \ | ||
67 | : "memory") | ||
68 | #define mtspr(rn, v) \ | ||
69 | do { \ | ||
70 | if (rn == SPRN_IMMR) \ | ||
71 | do_mtspr_cpu6(rn, 0x3d30, v); \ | ||
72 | else if (rn == SPRN_IC_CST) \ | ||
73 | do_mtspr_cpu6(rn, 0x2110, v); \ | ||
74 | else if (rn == SPRN_IC_ADR) \ | ||
75 | do_mtspr_cpu6(rn, 0x2310, v); \ | ||
76 | else if (rn == SPRN_IC_DAT) \ | ||
77 | do_mtspr_cpu6(rn, 0x2510, v); \ | ||
78 | else if (rn == SPRN_DC_CST) \ | ||
79 | do_mtspr_cpu6(rn, 0x3110, v); \ | ||
80 | else if (rn == SPRN_DC_ADR) \ | ||
81 | do_mtspr_cpu6(rn, 0x3310, v); \ | ||
82 | else if (rn == SPRN_DC_DAT) \ | ||
83 | do_mtspr_cpu6(rn, 0x3510, v); \ | ||
84 | else if (rn == SPRN_MI_CTR) \ | ||
85 | do_mtspr_cpu6(rn, 0x2180, v); \ | ||
86 | else if (rn == SPRN_MI_AP) \ | ||
87 | do_mtspr_cpu6(rn, 0x2580, v); \ | ||
88 | else if (rn == SPRN_MI_EPN) \ | ||
89 | do_mtspr_cpu6(rn, 0x2780, v); \ | ||
90 | else if (rn == SPRN_MI_TWC) \ | ||
91 | do_mtspr_cpu6(rn, 0x2b80, v); \ | ||
92 | else if (rn == SPRN_MI_RPN) \ | ||
93 | do_mtspr_cpu6(rn, 0x2d80, v); \ | ||
94 | else if (rn == SPRN_MI_CAM) \ | ||
95 | do_mtspr_cpu6(rn, 0x2190, v); \ | ||
96 | else if (rn == SPRN_MI_RAM0) \ | ||
97 | do_mtspr_cpu6(rn, 0x2390, v); \ | ||
98 | else if (rn == SPRN_MI_RAM1) \ | ||
99 | do_mtspr_cpu6(rn, 0x2590, v); \ | ||
100 | else if (rn == SPRN_MD_CTR) \ | ||
101 | do_mtspr_cpu6(rn, 0x3180, v); \ | ||
102 | else if (rn == SPRN_M_CASID) \ | ||
103 | do_mtspr_cpu6(rn, 0x3380, v); \ | ||
104 | else if (rn == SPRN_MD_AP) \ | ||
105 | do_mtspr_cpu6(rn, 0x3580, v); \ | ||
106 | else if (rn == SPRN_MD_EPN) \ | ||
107 | do_mtspr_cpu6(rn, 0x3780, v); \ | ||
108 | else if (rn == SPRN_M_TWB) \ | ||
109 | do_mtspr_cpu6(rn, 0x3980, v); \ | ||
110 | else if (rn == SPRN_MD_TWC) \ | ||
111 | do_mtspr_cpu6(rn, 0x3b80, v); \ | ||
112 | else if (rn == SPRN_MD_RPN) \ | ||
113 | do_mtspr_cpu6(rn, 0x3d80, v); \ | ||
114 | else if (rn == SPRN_M_TW) \ | ||
115 | do_mtspr_cpu6(rn, 0x3f80, v); \ | ||
116 | else if (rn == SPRN_MD_CAM) \ | ||
117 | do_mtspr_cpu6(rn, 0x3190, v); \ | ||
118 | else if (rn == SPRN_MD_RAM0) \ | ||
119 | do_mtspr_cpu6(rn, 0x3390, v); \ | ||
120 | else if (rn == SPRN_MD_RAM1) \ | ||
121 | do_mtspr_cpu6(rn, 0x3590, v); \ | ||
122 | else if (rn == SPRN_DEC) \ | ||
123 | do_mtspr_cpu6(rn, 0x2c00, v); \ | ||
124 | else if (rn == SPRN_TBWL) \ | ||
125 | do_mtspr_cpu6(rn, 0x3880, v); \ | ||
126 | else if (rn == SPRN_TBWU) \ | ||
127 | do_mtspr_cpu6(rn, 0x3a80, v); \ | ||
128 | else if (rn == SPRN_DPDR) \ | ||
129 | do_mtspr_cpu6(rn, 0x2d30, v); \ | ||
130 | else \ | ||
131 | do_mtspr(rn, v); \ | ||
132 | } while (0) | ||
133 | #endif | ||
134 | |||
42 | #endif /* _ASM_POWERPC_REG_8xx_H */ | 135 | #endif /* _ASM_POWERPC_REG_8xx_H */ |
diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h index 825663c30945..174271ef2767 100644 --- a/arch/powerpc/include/asm/smp.h +++ b/arch/powerpc/include/asm/smp.h | |||
@@ -67,6 +67,9 @@ void generic_cpu_die(unsigned int cpu); | |||
67 | void generic_set_cpu_dead(unsigned int cpu); | 67 | void generic_set_cpu_dead(unsigned int cpu); |
68 | void generic_set_cpu_up(unsigned int cpu); | 68 | void generic_set_cpu_up(unsigned int cpu); |
69 | int generic_check_cpu_restart(unsigned int cpu); | 69 | int generic_check_cpu_restart(unsigned int cpu); |
70 | int is_cpu_dead(unsigned int cpu); | ||
71 | #else | ||
72 | #define generic_set_cpu_up(i) do { } while (0) | ||
70 | #endif | 73 | #endif |
71 | 74 | ||
72 | #ifdef CONFIG_PPC64 | 75 | #ifdef CONFIG_PPC64 |
@@ -197,6 +200,7 @@ extern void generic_secondary_thread_init(void); | |||
197 | extern unsigned long __secondary_hold_spinloop; | 200 | extern unsigned long __secondary_hold_spinloop; |
198 | extern unsigned long __secondary_hold_acknowledge; | 201 | extern unsigned long __secondary_hold_acknowledge; |
199 | extern char __secondary_hold; | 202 | extern char __secondary_hold; |
203 | extern unsigned int booting_thread_hwid; | ||
200 | 204 | ||
201 | extern void __early_start(void); | 205 | extern void __early_start(void); |
202 | #endif /* __ASSEMBLY__ */ | 206 | #endif /* __ASSEMBLY__ */ |
diff --git a/arch/powerpc/include/asm/time.h b/arch/powerpc/include/asm/time.h index 2d7109a8d296..1092fdd7e737 100644 --- a/arch/powerpc/include/asm/time.h +++ b/arch/powerpc/include/asm/time.h | |||
@@ -31,8 +31,6 @@ extern void tick_broadcast_ipi_handler(void); | |||
31 | 31 | ||
32 | extern void generic_calibrate_decr(void); | 32 | extern void generic_calibrate_decr(void); |
33 | 33 | ||
34 | extern void set_dec_cpu6(unsigned int val); | ||
35 | |||
36 | /* Some sane defaults: 125 MHz timebase, 1GHz processor */ | 34 | /* Some sane defaults: 125 MHz timebase, 1GHz processor */ |
37 | extern unsigned long ppc_proc_freq; | 35 | extern unsigned long ppc_proc_freq; |
38 | #define DEFAULT_PROC_FREQ (DEFAULT_TB_FREQ * 8) | 36 | #define DEFAULT_PROC_FREQ (DEFAULT_TB_FREQ * 8) |
@@ -166,14 +164,12 @@ static inline void set_dec(int val) | |||
166 | { | 164 | { |
167 | #if defined(CONFIG_40x) | 165 | #if defined(CONFIG_40x) |
168 | mtspr(SPRN_PIT, val); | 166 | mtspr(SPRN_PIT, val); |
169 | #elif defined(CONFIG_8xx_CPU6) | ||
170 | set_dec_cpu6(val - 1); | ||
171 | #else | 167 | #else |
172 | #ifndef CONFIG_BOOKE | 168 | #ifndef CONFIG_BOOKE |
173 | --val; | 169 | --val; |
174 | #endif | 170 | #endif |
175 | mtspr(SPRN_DEC, val); | 171 | mtspr(SPRN_DEC, val); |
176 | #endif /* not 40x or 8xx_CPU6 */ | 172 | #endif /* not 40x */ |
177 | } | 173 | } |
178 | 174 | ||
179 | static inline unsigned long tb_ticks_since(unsigned long tstamp) | 175 | static inline unsigned long tb_ticks_since(unsigned long tstamp) |
diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c index 10d5eab19458..0d0183d3180a 100644 --- a/arch/powerpc/kernel/asm-offsets.c +++ b/arch/powerpc/kernel/asm-offsets.c | |||
@@ -376,6 +376,7 @@ int main(void) | |||
376 | DEFINE(CPU_SPEC_FEATURES, offsetof(struct cpu_spec, cpu_features)); | 376 | DEFINE(CPU_SPEC_FEATURES, offsetof(struct cpu_spec, cpu_features)); |
377 | DEFINE(CPU_SPEC_SETUP, offsetof(struct cpu_spec, cpu_setup)); | 377 | DEFINE(CPU_SPEC_SETUP, offsetof(struct cpu_spec, cpu_setup)); |
378 | DEFINE(CPU_SPEC_RESTORE, offsetof(struct cpu_spec, cpu_restore)); | 378 | DEFINE(CPU_SPEC_RESTORE, offsetof(struct cpu_spec, cpu_restore)); |
379 | DEFINE(CPU_DOWN_FLUSH, offsetof(struct cpu_spec, cpu_down_flush)); | ||
379 | 380 | ||
380 | DEFINE(pbe_address, offsetof(struct pbe, address)); | 381 | DEFINE(pbe_address, offsetof(struct pbe, address)); |
381 | DEFINE(pbe_orig_address, offsetof(struct pbe, orig_address)); | 382 | DEFINE(pbe_orig_address, offsetof(struct pbe, orig_address)); |
diff --git a/arch/powerpc/kernel/cpu_setup_fsl_booke.S b/arch/powerpc/kernel/cpu_setup_fsl_booke.S index dddba3e94260..462aed9bcf51 100644 --- a/arch/powerpc/kernel/cpu_setup_fsl_booke.S +++ b/arch/powerpc/kernel/cpu_setup_fsl_booke.S | |||
@@ -13,11 +13,13 @@ | |||
13 | * | 13 | * |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <asm/page.h> | ||
16 | #include <asm/processor.h> | 17 | #include <asm/processor.h> |
17 | #include <asm/cputable.h> | 18 | #include <asm/cputable.h> |
18 | #include <asm/ppc_asm.h> | 19 | #include <asm/ppc_asm.h> |
19 | #include <asm/mmu-book3e.h> | 20 | #include <asm/mmu-book3e.h> |
20 | #include <asm/asm-offsets.h> | 21 | #include <asm/asm-offsets.h> |
22 | #include <asm/mpc85xx.h> | ||
21 | 23 | ||
22 | _GLOBAL(__e500_icache_setup) | 24 | _GLOBAL(__e500_icache_setup) |
23 | mfspr r0, SPRN_L1CSR1 | 25 | mfspr r0, SPRN_L1CSR1 |
@@ -233,3 +235,113 @@ _GLOBAL(__setup_cpu_e5500) | |||
233 | mtlr r5 | 235 | mtlr r5 |
234 | blr | 236 | blr |
235 | #endif | 237 | #endif |
238 | |||
239 | /* flush L1 date cache, it can apply to e500v2, e500mc and e5500 */ | ||
240 | _GLOBAL(flush_dcache_L1) | ||
241 | mfmsr r10 | ||
242 | wrteei 0 | ||
243 | |||
244 | mfspr r3,SPRN_L1CFG0 | ||
245 | rlwinm r5,r3,9,3 /* Extract cache block size */ | ||
246 | twlgti r5,1 /* Only 32 and 64 byte cache blocks | ||
247 | * are currently defined. | ||
248 | */ | ||
249 | li r4,32 | ||
250 | subfic r6,r5,2 /* r6 = log2(1KiB / cache block size) - | ||
251 | * log2(number of ways) | ||
252 | */ | ||
253 | slw r5,r4,r5 /* r5 = cache block size */ | ||
254 | |||
255 | rlwinm r7,r3,0,0xff /* Extract number of KiB in the cache */ | ||
256 | mulli r7,r7,13 /* An 8-way cache will require 13 | ||
257 | * loads per set. | ||
258 | */ | ||
259 | slw r7,r7,r6 | ||
260 | |||
261 | /* save off HID0 and set DCFA */ | ||
262 | mfspr r8,SPRN_HID0 | ||
263 | ori r9,r8,HID0_DCFA@l | ||
264 | mtspr SPRN_HID0,r9 | ||
265 | isync | ||
266 | |||
267 | LOAD_REG_IMMEDIATE(r6, KERNELBASE) | ||
268 | mr r4, r6 | ||
269 | mtctr r7 | ||
270 | |||
271 | 1: lwz r3,0(r4) /* Load... */ | ||
272 | add r4,r4,r5 | ||
273 | bdnz 1b | ||
274 | |||
275 | msync | ||
276 | mr r4, r6 | ||
277 | mtctr r7 | ||
278 | |||
279 | 1: dcbf 0,r4 /* ...and flush. */ | ||
280 | add r4,r4,r5 | ||
281 | bdnz 1b | ||
282 | |||
283 | /* restore HID0 */ | ||
284 | mtspr SPRN_HID0,r8 | ||
285 | isync | ||
286 | |||
287 | wrtee r10 | ||
288 | |||
289 | blr | ||
290 | |||
291 | has_L2_cache: | ||
292 | /* skip L2 cache on P2040/P2040E as they have no L2 cache */ | ||
293 | mfspr r3, SPRN_SVR | ||
294 | /* shift right by 8 bits and clear E bit of SVR */ | ||
295 | rlwinm r4, r3, 24, ~0x800 | ||
296 | |||
297 | lis r3, SVR_P2040@h | ||
298 | ori r3, r3, SVR_P2040@l | ||
299 | cmpw r4, r3 | ||
300 | beq 1f | ||
301 | |||
302 | li r3, 1 | ||
303 | blr | ||
304 | 1: | ||
305 | li r3, 0 | ||
306 | blr | ||
307 | |||
308 | /* flush backside L2 cache */ | ||
309 | flush_backside_L2_cache: | ||
310 | mflr r10 | ||
311 | bl has_L2_cache | ||
312 | mtlr r10 | ||
313 | cmpwi r3, 0 | ||
314 | beq 2f | ||
315 | |||
316 | /* Flush the L2 cache */ | ||
317 | mfspr r3, SPRN_L2CSR0 | ||
318 | ori r3, r3, L2CSR0_L2FL@l | ||
319 | msync | ||
320 | isync | ||
321 | mtspr SPRN_L2CSR0,r3 | ||
322 | isync | ||
323 | |||
324 | /* check if it is complete */ | ||
325 | 1: mfspr r3,SPRN_L2CSR0 | ||
326 | andi. r3, r3, L2CSR0_L2FL@l | ||
327 | bne 1b | ||
328 | 2: | ||
329 | blr | ||
330 | |||
331 | _GLOBAL(cpu_down_flush_e500v2) | ||
332 | mflr r0 | ||
333 | bl flush_dcache_L1 | ||
334 | mtlr r0 | ||
335 | blr | ||
336 | |||
337 | _GLOBAL(cpu_down_flush_e500mc) | ||
338 | _GLOBAL(cpu_down_flush_e5500) | ||
339 | mflr r0 | ||
340 | bl flush_dcache_L1 | ||
341 | bl flush_backside_L2_cache | ||
342 | mtlr r0 | ||
343 | blr | ||
344 | |||
345 | /* L1 Data Cache of e6500 contains no modified data, no flush is required */ | ||
346 | _GLOBAL(cpu_down_flush_e6500) | ||
347 | blr | ||
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c index be4d73053bed..6c662b8de90d 100644 --- a/arch/powerpc/kernel/cputable.c +++ b/arch/powerpc/kernel/cputable.c | |||
@@ -2050,6 +2050,7 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
2050 | .cpu_setup = __setup_cpu_e500v2, | 2050 | .cpu_setup = __setup_cpu_e500v2, |
2051 | .machine_check = machine_check_e500, | 2051 | .machine_check = machine_check_e500, |
2052 | .platform = "ppc8548", | 2052 | .platform = "ppc8548", |
2053 | .cpu_down_flush = cpu_down_flush_e500v2, | ||
2053 | }, | 2054 | }, |
2054 | #else | 2055 | #else |
2055 | { /* e500mc */ | 2056 | { /* e500mc */ |
@@ -2069,6 +2070,7 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
2069 | .cpu_setup = __setup_cpu_e500mc, | 2070 | .cpu_setup = __setup_cpu_e500mc, |
2070 | .machine_check = machine_check_e500mc, | 2071 | .machine_check = machine_check_e500mc, |
2071 | .platform = "ppce500mc", | 2072 | .platform = "ppce500mc", |
2073 | .cpu_down_flush = cpu_down_flush_e500mc, | ||
2072 | }, | 2074 | }, |
2073 | #endif /* CONFIG_PPC_E500MC */ | 2075 | #endif /* CONFIG_PPC_E500MC */ |
2074 | #endif /* CONFIG_PPC32 */ | 2076 | #endif /* CONFIG_PPC32 */ |
@@ -2093,6 +2095,7 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
2093 | #endif | 2095 | #endif |
2094 | .machine_check = machine_check_e500mc, | 2096 | .machine_check = machine_check_e500mc, |
2095 | .platform = "ppce5500", | 2097 | .platform = "ppce5500", |
2098 | .cpu_down_flush = cpu_down_flush_e5500, | ||
2096 | }, | 2099 | }, |
2097 | { /* e6500 */ | 2100 | { /* e6500 */ |
2098 | .pvr_mask = 0xffff0000, | 2101 | .pvr_mask = 0xffff0000, |
@@ -2115,6 +2118,7 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
2115 | #endif | 2118 | #endif |
2116 | .machine_check = machine_check_e500mc, | 2119 | .machine_check = machine_check_e500mc, |
2117 | .platform = "ppce6500", | 2120 | .platform = "ppce6500", |
2121 | .cpu_down_flush = cpu_down_flush_e6500, | ||
2118 | }, | 2122 | }, |
2119 | #endif /* CONFIG_PPC_E500MC */ | 2123 | #endif /* CONFIG_PPC_E500MC */ |
2120 | #ifdef CONFIG_PPC32 | 2124 | #ifdef CONFIG_PPC32 |
diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S index 1b779560728f..291628320fbe 100644 --- a/arch/powerpc/kernel/head_64.S +++ b/arch/powerpc/kernel/head_64.S | |||
@@ -40,6 +40,7 @@ | |||
40 | #include <asm/kvm_book3s_asm.h> | 40 | #include <asm/kvm_book3s_asm.h> |
41 | #include <asm/ptrace.h> | 41 | #include <asm/ptrace.h> |
42 | #include <asm/hw_irq.h> | 42 | #include <asm/hw_irq.h> |
43 | #include <asm/cputhreads.h> | ||
43 | 44 | ||
44 | /* The physical memory is laid out such that the secondary processor | 45 | /* The physical memory is laid out such that the secondary processor |
45 | * spin code sits at 0x0000...0x00ff. On server, the vectors follow | 46 | * spin code sits at 0x0000...0x00ff. On server, the vectors follow |
@@ -181,6 +182,64 @@ exception_marker: | |||
181 | #endif | 182 | #endif |
182 | 183 | ||
183 | #ifdef CONFIG_PPC_BOOK3E | 184 | #ifdef CONFIG_PPC_BOOK3E |
185 | /* | ||
186 | * The booting_thread_hwid holds the thread id we want to boot in cpu | ||
187 | * hotplug case. It is set by cpu hotplug code, and is invalid by default. | ||
188 | * The thread id is the same as the initial value of SPRN_PIR[THREAD_ID] | ||
189 | * bit field. | ||
190 | */ | ||
191 | .globl booting_thread_hwid | ||
192 | booting_thread_hwid: | ||
193 | .long INVALID_THREAD_HWID | ||
194 | .align 3 | ||
195 | /* | ||
196 | * start a thread in the same core | ||
197 | * input parameters: | ||
198 | * r3 = the thread physical id | ||
199 | * r4 = the entry point where thread starts | ||
200 | */ | ||
201 | _GLOBAL(book3e_start_thread) | ||
202 | LOAD_REG_IMMEDIATE(r5, MSR_KERNEL) | ||
203 | cmpi 0, r3, 0 | ||
204 | beq 10f | ||
205 | cmpi 0, r3, 1 | ||
206 | beq 11f | ||
207 | /* If the thread id is invalid, just exit. */ | ||
208 | b 13f | ||
209 | 10: | ||
210 | mttmr TMRN_IMSR0, r5 | ||
211 | mttmr TMRN_INIA0, r4 | ||
212 | b 12f | ||
213 | 11: | ||
214 | mttmr TMRN_IMSR1, r5 | ||
215 | mttmr TMRN_INIA1, r4 | ||
216 | 12: | ||
217 | isync | ||
218 | li r6, 1 | ||
219 | sld r6, r6, r3 | ||
220 | mtspr SPRN_TENS, r6 | ||
221 | 13: | ||
222 | blr | ||
223 | |||
224 | /* | ||
225 | * stop a thread in the same core | ||
226 | * input parameter: | ||
227 | * r3 = the thread physical id | ||
228 | */ | ||
229 | _GLOBAL(book3e_stop_thread) | ||
230 | cmpi 0, r3, 0 | ||
231 | beq 10f | ||
232 | cmpi 0, r3, 1 | ||
233 | beq 10f | ||
234 | /* If the thread id is invalid, just exit. */ | ||
235 | b 13f | ||
236 | 10: | ||
237 | li r4, 1 | ||
238 | sld r4, r4, r3 | ||
239 | mtspr SPRN_TENC, r4 | ||
240 | 13: | ||
241 | blr | ||
242 | |||
184 | _GLOBAL(fsl_secondary_thread_init) | 243 | _GLOBAL(fsl_secondary_thread_init) |
185 | mfspr r4,SPRN_BUCSR | 244 | mfspr r4,SPRN_BUCSR |
186 | 245 | ||
@@ -261,6 +320,44 @@ _GLOBAL(generic_secondary_smp_init) | |||
261 | mr r3,r24 | 320 | mr r3,r24 |
262 | mr r4,r25 | 321 | mr r4,r25 |
263 | bl book3e_secondary_core_init | 322 | bl book3e_secondary_core_init |
323 | |||
324 | /* | ||
325 | * After common core init has finished, check if the current thread is the | ||
326 | * one we wanted to boot. If not, start the specified thread and stop the | ||
327 | * current thread. | ||
328 | */ | ||
329 | LOAD_REG_ADDR(r4, booting_thread_hwid) | ||
330 | lwz r3, 0(r4) | ||
331 | li r5, INVALID_THREAD_HWID | ||
332 | cmpw r3, r5 | ||
333 | beq 20f | ||
334 | |||
335 | /* | ||
336 | * The value of booting_thread_hwid has been stored in r3, | ||
337 | * so make it invalid. | ||
338 | */ | ||
339 | stw r5, 0(r4) | ||
340 | |||
341 | /* | ||
342 | * Get the current thread id and check if it is the one we wanted. | ||
343 | * If not, start the one specified in booting_thread_hwid and stop | ||
344 | * the current thread. | ||
345 | */ | ||
346 | mfspr r8, SPRN_TIR | ||
347 | cmpw r3, r8 | ||
348 | beq 20f | ||
349 | |||
350 | /* start the specified thread */ | ||
351 | LOAD_REG_ADDR(r5, fsl_secondary_thread_init) | ||
352 | ld r4, 0(r5) | ||
353 | bl book3e_start_thread | ||
354 | |||
355 | /* stop the current thread */ | ||
356 | mr r3, r8 | ||
357 | bl book3e_stop_thread | ||
358 | 10: | ||
359 | b 10b | ||
360 | 20: | ||
264 | #endif | 361 | #endif |
265 | 362 | ||
266 | generic_secondary_common_init: | 363 | generic_secondary_common_init: |
diff --git a/arch/powerpc/kernel/head_8xx.S b/arch/powerpc/kernel/head_8xx.S index 78c1eba4c04a..80c69472314e 100644 --- a/arch/powerpc/kernel/head_8xx.S +++ b/arch/powerpc/kernel/head_8xx.S | |||
@@ -329,7 +329,7 @@ InstructionTLBMiss: | |||
329 | /* If we are faulting a kernel address, we have to use the | 329 | /* If we are faulting a kernel address, we have to use the |
330 | * kernel page tables. | 330 | * kernel page tables. |
331 | */ | 331 | */ |
332 | #ifdef CONFIG_MODULES | 332 | #if defined(CONFIG_MODULES) || defined (CONFIG_DEBUG_PAGEALLOC) |
333 | /* Only modules will cause ITLB Misses as we always | 333 | /* Only modules will cause ITLB Misses as we always |
334 | * pin the first 8MB of kernel memory */ | 334 | * pin the first 8MB of kernel memory */ |
335 | mfspr r11, SPRN_SRR0 /* Get effective address of fault */ | 335 | mfspr r11, SPRN_SRR0 /* Get effective address of fault */ |
@@ -385,27 +385,26 @@ InstructionTLBMiss: | |||
385 | 385 | ||
386 | . = 0x1200 | 386 | . = 0x1200 |
387 | DataStoreTLBMiss: | 387 | DataStoreTLBMiss: |
388 | #ifdef CONFIG_8xx_CPU6 | ||
389 | mtspr SPRN_SPRG_SCRATCH2, r3 | 388 | mtspr SPRN_SPRG_SCRATCH2, r3 |
390 | #endif | ||
391 | EXCEPTION_PROLOG_0 | 389 | EXCEPTION_PROLOG_0 |
392 | mfcr r10 | 390 | mfcr r3 |
393 | 391 | ||
394 | /* If we are faulting a kernel address, we have to use the | 392 | /* If we are faulting a kernel address, we have to use the |
395 | * kernel page tables. | 393 | * kernel page tables. |
396 | */ | 394 | */ |
397 | mfspr r11, SPRN_MD_EPN | 395 | mfspr r10, SPRN_MD_EPN |
398 | IS_KERNEL(r11, r11) | 396 | IS_KERNEL(r11, r10) |
399 | mfspr r11, SPRN_M_TW /* Get level 1 table */ | 397 | mfspr r11, SPRN_M_TW /* Get level 1 table */ |
400 | BRANCH_UNLESS_KERNEL(3f) | 398 | BRANCH_UNLESS_KERNEL(3f) |
401 | lis r11, (swapper_pg_dir-PAGE_OFFSET)@ha | 399 | lis r11, (swapper_pg_dir-PAGE_OFFSET)@ha |
402 | 3: | 400 | 3: |
403 | mtcr r10 | ||
404 | mfspr r10, SPRN_MD_EPN | ||
405 | 401 | ||
406 | /* Insert level 1 index */ | 402 | /* Insert level 1 index */ |
407 | rlwimi r11, r10, 32 - ((PAGE_SHIFT - 2) << 1), (PAGE_SHIFT - 2) << 1, 29 | 403 | rlwimi r11, r10, 32 - ((PAGE_SHIFT - 2) << 1), (PAGE_SHIFT - 2) << 1, 29 |
408 | lwz r11, (swapper_pg_dir-PAGE_OFFSET)@l(r11) /* Get the level 1 entry */ | 404 | lwz r11, (swapper_pg_dir-PAGE_OFFSET)@l(r11) /* Get the level 1 entry */ |
405 | mtcr r11 | ||
406 | bt- 28,DTLBMiss8M /* bit 28 = Large page (8M) */ | ||
407 | mtcr r3 | ||
409 | 408 | ||
410 | /* We have a pte table, so load fetch the pte from the table. | 409 | /* We have a pte table, so load fetch the pte from the table. |
411 | */ | 410 | */ |
@@ -453,13 +452,34 @@ DataStoreTLBMiss: | |||
453 | MTSPR_CPU6(SPRN_MD_RPN, r10, r3) /* Update TLB entry */ | 452 | MTSPR_CPU6(SPRN_MD_RPN, r10, r3) /* Update TLB entry */ |
454 | 453 | ||
455 | /* Restore registers */ | 454 | /* Restore registers */ |
456 | #ifdef CONFIG_8xx_CPU6 | ||
457 | mfspr r3, SPRN_SPRG_SCRATCH2 | 455 | mfspr r3, SPRN_SPRG_SCRATCH2 |
456 | mtspr SPRN_DAR, r11 /* Tag DAR */ | ||
457 | EXCEPTION_EPILOG_0 | ||
458 | rfi | ||
459 | |||
460 | DTLBMiss8M: | ||
461 | mtcr r3 | ||
462 | ori r11, r11, MD_SVALID | ||
463 | MTSPR_CPU6(SPRN_MD_TWC, r11, r3) | ||
464 | #ifdef CONFIG_PPC_16K_PAGES | ||
465 | /* | ||
466 | * In 16k pages mode, each PGD entry defines a 64M block. | ||
467 | * Here we select the 8M page within the block. | ||
468 | */ | ||
469 | rlwimi r11, r10, 0, 0x03800000 | ||
458 | #endif | 470 | #endif |
471 | rlwinm r10, r11, 0, 0xff800000 | ||
472 | ori r10, r10, 0xf0 | MD_SPS16K | _PAGE_SHARED | _PAGE_DIRTY | \ | ||
473 | _PAGE_PRESENT | ||
474 | MTSPR_CPU6(SPRN_MD_RPN, r10, r3) /* Update TLB entry */ | ||
475 | |||
476 | li r11, RPN_PATTERN | ||
477 | mfspr r3, SPRN_SPRG_SCRATCH2 | ||
459 | mtspr SPRN_DAR, r11 /* Tag DAR */ | 478 | mtspr SPRN_DAR, r11 /* Tag DAR */ |
460 | EXCEPTION_EPILOG_0 | 479 | EXCEPTION_EPILOG_0 |
461 | rfi | 480 | rfi |
462 | 481 | ||
482 | |||
463 | /* This is an instruction TLB error on the MPC8xx. This could be due | 483 | /* This is an instruction TLB error on the MPC8xx. This could be due |
464 | * to many reasons, such as executing guarded memory or illegal instruction | 484 | * to many reasons, such as executing guarded memory or illegal instruction |
465 | * addresses. There is nothing to do but handle a big time error fault. | 485 | * addresses. There is nothing to do but handle a big time error fault. |
@@ -537,13 +557,15 @@ FixupDAR:/* Entry point for dcbx workaround. */ | |||
537 | /* Insert level 1 index */ | 557 | /* Insert level 1 index */ |
538 | 3: rlwimi r11, r10, 32 - ((PAGE_SHIFT - 2) << 1), (PAGE_SHIFT - 2) << 1, 29 | 558 | 3: rlwimi r11, r10, 32 - ((PAGE_SHIFT - 2) << 1), (PAGE_SHIFT - 2) << 1, 29 |
539 | lwz r11, (swapper_pg_dir-PAGE_OFFSET)@l(r11) /* Get the level 1 entry */ | 559 | lwz r11, (swapper_pg_dir-PAGE_OFFSET)@l(r11) /* Get the level 1 entry */ |
560 | mtcr r11 | ||
561 | bt 28,200f /* bit 28 = Large page (8M) */ | ||
540 | rlwinm r11, r11,0,0,19 /* Extract page descriptor page address */ | 562 | rlwinm r11, r11,0,0,19 /* Extract page descriptor page address */ |
541 | /* Insert level 2 index */ | 563 | /* Insert level 2 index */ |
542 | rlwimi r11, r10, 32 - (PAGE_SHIFT - 2), 32 - PAGE_SHIFT, 29 | 564 | rlwimi r11, r10, 32 - (PAGE_SHIFT - 2), 32 - PAGE_SHIFT, 29 |
543 | lwz r11, 0(r11) /* Get the pte */ | 565 | lwz r11, 0(r11) /* Get the pte */ |
544 | /* concat physical page address(r11) and page offset(r10) */ | 566 | /* concat physical page address(r11) and page offset(r10) */ |
545 | rlwimi r11, r10, 0, 32 - PAGE_SHIFT, 31 | 567 | rlwimi r11, r10, 0, 32 - PAGE_SHIFT, 31 |
546 | lwz r11,0(r11) | 568 | 201: lwz r11,0(r11) |
547 | /* Check if it really is a dcbx instruction. */ | 569 | /* Check if it really is a dcbx instruction. */ |
548 | /* dcbt and dcbtst does not generate DTLB Misses/Errors, | 570 | /* dcbt and dcbtst does not generate DTLB Misses/Errors, |
549 | * no need to include them here */ | 571 | * no need to include them here */ |
@@ -562,6 +584,10 @@ FixupDAR:/* Entry point for dcbx workaround. */ | |||
562 | 141: mfspr r10,SPRN_SPRG_SCRATCH2 | 584 | 141: mfspr r10,SPRN_SPRG_SCRATCH2 |
563 | b DARFixed /* Nope, go back to normal TLB processing */ | 585 | b DARFixed /* Nope, go back to normal TLB processing */ |
564 | 586 | ||
587 | /* concat physical page address(r11) and page offset(r10) */ | ||
588 | 200: rlwimi r11, r10, 0, 32 - (PAGE_SHIFT << 1), 31 | ||
589 | b 201b | ||
590 | |||
565 | 144: mfspr r10, SPRN_DSISR | 591 | 144: mfspr r10, SPRN_DSISR |
566 | rlwinm r10, r10,0,7,5 /* Clear store bit for buggy dcbst insn */ | 592 | rlwinm r10, r10,0,7,5 /* Clear store bit for buggy dcbst insn */ |
567 | mtspr SPRN_DSISR, r10 | 593 | mtspr SPRN_DSISR, r10 |
@@ -857,68 +883,6 @@ initial_mmu: | |||
857 | 883 | ||
858 | 884 | ||
859 | /* | 885 | /* |
860 | * Set up to use a given MMU context. | ||
861 | * r3 is context number, r4 is PGD pointer. | ||
862 | * | ||
863 | * We place the physical address of the new task page directory loaded | ||
864 | * into the MMU base register, and set the ASID compare register with | ||
865 | * the new "context." | ||
866 | */ | ||
867 | _GLOBAL(set_context) | ||
868 | |||
869 | #ifdef CONFIG_BDI_SWITCH | ||
870 | /* Context switch the PTE pointer for the Abatron BDI2000. | ||
871 | * The PGDIR is passed as second argument. | ||
872 | */ | ||
873 | lis r5, KERNELBASE@h | ||
874 | lwz r5, 0xf0(r5) | ||
875 | stw r4, 0x4(r5) | ||
876 | #endif | ||
877 | |||
878 | /* Register M_TW will contain base address of level 1 table minus the | ||
879 | * lower part of the kernel PGDIR base address, so that all accesses to | ||
880 | * level 1 table are done relative to lower part of kernel PGDIR base | ||
881 | * address. | ||
882 | */ | ||
883 | li r5, (swapper_pg_dir-PAGE_OFFSET)@l | ||
884 | sub r4, r4, r5 | ||
885 | tophys (r4, r4) | ||
886 | #ifdef CONFIG_8xx_CPU6 | ||
887 | lis r6, cpu6_errata_word@h | ||
888 | ori r6, r6, cpu6_errata_word@l | ||
889 | li r7, 0x3f80 | ||
890 | stw r7, 12(r6) | ||
891 | lwz r7, 12(r6) | ||
892 | #endif | ||
893 | mtspr SPRN_M_TW, r4 /* Update pointeur to level 1 table */ | ||
894 | #ifdef CONFIG_8xx_CPU6 | ||
895 | li r7, 0x3380 | ||
896 | stw r7, 12(r6) | ||
897 | lwz r7, 12(r6) | ||
898 | #endif | ||
899 | mtspr SPRN_M_CASID, r3 /* Update context */ | ||
900 | SYNC | ||
901 | blr | ||
902 | |||
903 | #ifdef CONFIG_8xx_CPU6 | ||
904 | /* It's here because it is unique to the 8xx. | ||
905 | * It is important we get called with interrupts disabled. I used to | ||
906 | * do that, but it appears that all code that calls this already had | ||
907 | * interrupt disabled. | ||
908 | */ | ||
909 | .globl set_dec_cpu6 | ||
910 | set_dec_cpu6: | ||
911 | lis r7, cpu6_errata_word@h | ||
912 | ori r7, r7, cpu6_errata_word@l | ||
913 | li r4, 0x2c00 | ||
914 | stw r4, 8(r7) | ||
915 | lwz r4, 8(r7) | ||
916 | mtspr 22, r3 /* Update Decrementer */ | ||
917 | SYNC | ||
918 | blr | ||
919 | #endif | ||
920 | |||
921 | /* | ||
922 | * We put a few things here that have to be page-aligned. | 886 | * We put a few things here that have to be page-aligned. |
923 | * This stuff goes at the beginning of the data segment, | 887 | * This stuff goes at the beginning of the data segment, |
924 | * which is page-aligned. | 888 | * which is page-aligned. |
diff --git a/arch/powerpc/kernel/head_fsl_booke.S b/arch/powerpc/kernel/head_fsl_booke.S index f705171b924b..3bfa3150911f 100644 --- a/arch/powerpc/kernel/head_fsl_booke.S +++ b/arch/powerpc/kernel/head_fsl_booke.S | |||
@@ -1037,80 +1037,6 @@ _GLOBAL(set_context) | |||
1037 | isync /* Force context change */ | 1037 | isync /* Force context change */ |
1038 | blr | 1038 | blr |
1039 | 1039 | ||
1040 | _GLOBAL(flush_dcache_L1) | ||
1041 | mfspr r3,SPRN_L1CFG0 | ||
1042 | |||
1043 | rlwinm r5,r3,9,3 /* Extract cache block size */ | ||
1044 | twlgti r5,1 /* Only 32 and 64 byte cache blocks | ||
1045 | * are currently defined. | ||
1046 | */ | ||
1047 | li r4,32 | ||
1048 | subfic r6,r5,2 /* r6 = log2(1KiB / cache block size) - | ||
1049 | * log2(number of ways) | ||
1050 | */ | ||
1051 | slw r5,r4,r5 /* r5 = cache block size */ | ||
1052 | |||
1053 | rlwinm r7,r3,0,0xff /* Extract number of KiB in the cache */ | ||
1054 | mulli r7,r7,13 /* An 8-way cache will require 13 | ||
1055 | * loads per set. | ||
1056 | */ | ||
1057 | slw r7,r7,r6 | ||
1058 | |||
1059 | /* save off HID0 and set DCFA */ | ||
1060 | mfspr r8,SPRN_HID0 | ||
1061 | ori r9,r8,HID0_DCFA@l | ||
1062 | mtspr SPRN_HID0,r9 | ||
1063 | isync | ||
1064 | |||
1065 | lis r4,KERNELBASE@h | ||
1066 | mtctr r7 | ||
1067 | |||
1068 | 1: lwz r3,0(r4) /* Load... */ | ||
1069 | add r4,r4,r5 | ||
1070 | bdnz 1b | ||
1071 | |||
1072 | msync | ||
1073 | lis r4,KERNELBASE@h | ||
1074 | mtctr r7 | ||
1075 | |||
1076 | 1: dcbf 0,r4 /* ...and flush. */ | ||
1077 | add r4,r4,r5 | ||
1078 | bdnz 1b | ||
1079 | |||
1080 | /* restore HID0 */ | ||
1081 | mtspr SPRN_HID0,r8 | ||
1082 | isync | ||
1083 | |||
1084 | blr | ||
1085 | |||
1086 | /* Flush L1 d-cache, invalidate and disable d-cache and i-cache */ | ||
1087 | _GLOBAL(__flush_disable_L1) | ||
1088 | mflr r10 | ||
1089 | bl flush_dcache_L1 /* Flush L1 d-cache */ | ||
1090 | mtlr r10 | ||
1091 | |||
1092 | mfspr r4, SPRN_L1CSR0 /* Invalidate and disable d-cache */ | ||
1093 | li r5, 2 | ||
1094 | rlwimi r4, r5, 0, 3 | ||
1095 | |||
1096 | msync | ||
1097 | isync | ||
1098 | mtspr SPRN_L1CSR0, r4 | ||
1099 | isync | ||
1100 | |||
1101 | 1: mfspr r4, SPRN_L1CSR0 /* Wait for the invalidate to finish */ | ||
1102 | andi. r4, r4, 2 | ||
1103 | bne 1b | ||
1104 | |||
1105 | mfspr r4, SPRN_L1CSR1 /* Invalidate and disable i-cache */ | ||
1106 | li r5, 2 | ||
1107 | rlwimi r4, r5, 0, 3 | ||
1108 | |||
1109 | mtspr SPRN_L1CSR1, r4 | ||
1110 | isync | ||
1111 | |||
1112 | blr | ||
1113 | |||
1114 | #ifdef CONFIG_SMP | 1040 | #ifdef CONFIG_SMP |
1115 | /* When we get here, r24 needs to hold the CPU # */ | 1041 | /* When we get here, r24 needs to hold the CPU # */ |
1116 | .globl __secondary_start | 1042 | .globl __secondary_start |
diff --git a/arch/powerpc/kernel/misc_32.S b/arch/powerpc/kernel/misc_32.S index be8edd67f05b..bf5160fbf9d8 100644 --- a/arch/powerpc/kernel/misc_32.S +++ b/arch/powerpc/kernel/misc_32.S | |||
@@ -91,17 +91,16 @@ _GLOBAL(mulhdu) | |||
91 | addc r7,r0,r7 | 91 | addc r7,r0,r7 |
92 | addze r4,r4 | 92 | addze r4,r4 |
93 | 1: beqlr cr1 /* all done if high part of A is 0 */ | 93 | 1: beqlr cr1 /* all done if high part of A is 0 */ |
94 | mr r10,r3 | ||
95 | mullw r9,r3,r5 | 94 | mullw r9,r3,r5 |
96 | mulhwu r3,r3,r5 | 95 | mulhwu r10,r3,r5 |
97 | beq 2f | 96 | beq 2f |
98 | mullw r0,r10,r6 | 97 | mullw r0,r3,r6 |
99 | mulhwu r8,r10,r6 | 98 | mulhwu r8,r3,r6 |
100 | addc r7,r0,r7 | 99 | addc r7,r0,r7 |
101 | adde r4,r4,r8 | 100 | adde r4,r4,r8 |
102 | addze r3,r3 | 101 | addze r10,r10 |
103 | 2: addc r4,r4,r9 | 102 | 2: addc r4,r4,r9 |
104 | addze r3,r3 | 103 | addze r3,r10 |
105 | blr | 104 | blr |
106 | 105 | ||
107 | /* | 106 | /* |
@@ -296,12 +295,9 @@ _GLOBAL(real_writeb) | |||
296 | * Flush instruction cache. | 295 | * Flush instruction cache. |
297 | * This is a no-op on the 601. | 296 | * This is a no-op on the 601. |
298 | */ | 297 | */ |
298 | #ifndef CONFIG_PPC_8xx | ||
299 | _GLOBAL(flush_instruction_cache) | 299 | _GLOBAL(flush_instruction_cache) |
300 | #if defined(CONFIG_8xx) | 300 | #if defined(CONFIG_4xx) |
301 | isync | ||
302 | lis r5, IDC_INVALL@h | ||
303 | mtspr SPRN_IC_CST, r5 | ||
304 | #elif defined(CONFIG_4xx) | ||
305 | #ifdef CONFIG_403GCX | 301 | #ifdef CONFIG_403GCX |
306 | li r3, 512 | 302 | li r3, 512 |
307 | mtctr r3 | 303 | mtctr r3 |
@@ -334,9 +330,10 @@ END_FTR_SECTION_IFSET(CPU_FTR_UNIFIED_ID_CACHE) | |||
334 | mfspr r3,SPRN_HID0 | 330 | mfspr r3,SPRN_HID0 |
335 | ori r3,r3,HID0_ICFI | 331 | ori r3,r3,HID0_ICFI |
336 | mtspr SPRN_HID0,r3 | 332 | mtspr SPRN_HID0,r3 |
337 | #endif /* CONFIG_8xx/4xx */ | 333 | #endif /* CONFIG_4xx */ |
338 | isync | 334 | isync |
339 | blr | 335 | blr |
336 | #endif /* CONFIG_PPC_8xx */ | ||
340 | 337 | ||
341 | /* | 338 | /* |
342 | * Write any modified data cache blocks out to memory | 339 | * Write any modified data cache blocks out to memory |
@@ -350,10 +347,9 @@ BEGIN_FTR_SECTION | |||
350 | PURGE_PREFETCHED_INS | 347 | PURGE_PREFETCHED_INS |
351 | blr /* for 601, do nothing */ | 348 | blr /* for 601, do nothing */ |
352 | END_FTR_SECTION_IFSET(CPU_FTR_COHERENT_ICACHE) | 349 | END_FTR_SECTION_IFSET(CPU_FTR_COHERENT_ICACHE) |
353 | li r5,L1_CACHE_BYTES-1 | 350 | rlwinm r3,r3,0,0,31 - L1_CACHE_SHIFT |
354 | andc r3,r3,r5 | ||
355 | subf r4,r3,r4 | 351 | subf r4,r3,r4 |
356 | add r4,r4,r5 | 352 | addi r4,r4,L1_CACHE_BYTES - 1 |
357 | srwi. r4,r4,L1_CACHE_SHIFT | 353 | srwi. r4,r4,L1_CACHE_SHIFT |
358 | beqlr | 354 | beqlr |
359 | mtctr r4 | 355 | mtctr r4 |
@@ -377,71 +373,6 @@ END_FTR_SECTION_IFSET(CPU_FTR_COHERENT_ICACHE) | |||
377 | isync | 373 | isync |
378 | blr | 374 | blr |
379 | /* | 375 | /* |
380 | * Write any modified data cache blocks out to memory. | ||
381 | * Does not invalidate the corresponding cache lines (especially for | ||
382 | * any corresponding instruction cache). | ||
383 | * | ||
384 | * clean_dcache_range(unsigned long start, unsigned long stop) | ||
385 | */ | ||
386 | _GLOBAL(clean_dcache_range) | ||
387 | li r5,L1_CACHE_BYTES-1 | ||
388 | andc r3,r3,r5 | ||
389 | subf r4,r3,r4 | ||
390 | add r4,r4,r5 | ||
391 | srwi. r4,r4,L1_CACHE_SHIFT | ||
392 | beqlr | ||
393 | mtctr r4 | ||
394 | |||
395 | 1: dcbst 0,r3 | ||
396 | addi r3,r3,L1_CACHE_BYTES | ||
397 | bdnz 1b | ||
398 | sync /* wait for dcbst's to get to ram */ | ||
399 | blr | ||
400 | |||
401 | /* | ||
402 | * Write any modified data cache blocks out to memory and invalidate them. | ||
403 | * Does not invalidate the corresponding instruction cache blocks. | ||
404 | * | ||
405 | * flush_dcache_range(unsigned long start, unsigned long stop) | ||
406 | */ | ||
407 | _GLOBAL(flush_dcache_range) | ||
408 | li r5,L1_CACHE_BYTES-1 | ||
409 | andc r3,r3,r5 | ||
410 | subf r4,r3,r4 | ||
411 | add r4,r4,r5 | ||
412 | srwi. r4,r4,L1_CACHE_SHIFT | ||
413 | beqlr | ||
414 | mtctr r4 | ||
415 | |||
416 | 1: dcbf 0,r3 | ||
417 | addi r3,r3,L1_CACHE_BYTES | ||
418 | bdnz 1b | ||
419 | sync /* wait for dcbst's to get to ram */ | ||
420 | blr | ||
421 | |||
422 | /* | ||
423 | * Like above, but invalidate the D-cache. This is used by the 8xx | ||
424 | * to invalidate the cache so the PPC core doesn't get stale data | ||
425 | * from the CPM (no cache snooping here :-). | ||
426 | * | ||
427 | * invalidate_dcache_range(unsigned long start, unsigned long stop) | ||
428 | */ | ||
429 | _GLOBAL(invalidate_dcache_range) | ||
430 | li r5,L1_CACHE_BYTES-1 | ||
431 | andc r3,r3,r5 | ||
432 | subf r4,r3,r4 | ||
433 | add r4,r4,r5 | ||
434 | srwi. r4,r4,L1_CACHE_SHIFT | ||
435 | beqlr | ||
436 | mtctr r4 | ||
437 | |||
438 | 1: dcbi 0,r3 | ||
439 | addi r3,r3,L1_CACHE_BYTES | ||
440 | bdnz 1b | ||
441 | sync /* wait for dcbi's to get to ram */ | ||
442 | blr | ||
443 | |||
444 | /* | ||
445 | * Flush a particular page from the data cache to RAM. | 376 | * Flush a particular page from the data cache to RAM. |
446 | * Note: this is necessary because the instruction cache does *not* | 377 | * Note: this is necessary because the instruction cache does *not* |
447 | * snoop from the data cache. | 378 | * snoop from the data cache. |
@@ -519,22 +450,6 @@ END_FTR_SECTION_IFSET(CPU_FTR_COHERENT_ICACHE) | |||
519 | #endif /* CONFIG_BOOKE */ | 450 | #endif /* CONFIG_BOOKE */ |
520 | 451 | ||
521 | /* | 452 | /* |
522 | * Clear pages using the dcbz instruction, which doesn't cause any | ||
523 | * memory traffic (except to write out any cache lines which get | ||
524 | * displaced). This only works on cacheable memory. | ||
525 | * | ||
526 | * void clear_pages(void *page, int order) ; | ||
527 | */ | ||
528 | _GLOBAL(clear_pages) | ||
529 | li r0,PAGE_SIZE/L1_CACHE_BYTES | ||
530 | slw r0,r0,r4 | ||
531 | mtctr r0 | ||
532 | 1: dcbz 0,r3 | ||
533 | addi r3,r3,L1_CACHE_BYTES | ||
534 | bdnz 1b | ||
535 | blr | ||
536 | |||
537 | /* | ||
538 | * Copy a whole page. We use the dcbz instruction on the destination | 453 | * Copy a whole page. We use the dcbz instruction on the destination |
539 | * to reduce memory traffic (it eliminates the unnecessary reads of | 454 | * to reduce memory traffic (it eliminates the unnecessary reads of |
540 | * the destination into cache). This requires that the destination | 455 | * the destination into cache). This requires that the destination |
diff --git a/arch/powerpc/kernel/ppc_ksyms.c b/arch/powerpc/kernel/ppc_ksyms.c index ef7024dacff7..9f01e28ecef3 100644 --- a/arch/powerpc/kernel/ppc_ksyms.c +++ b/arch/powerpc/kernel/ppc_ksyms.c | |||
@@ -6,7 +6,9 @@ | |||
6 | #include <asm/cacheflush.h> | 6 | #include <asm/cacheflush.h> |
7 | #include <asm/epapr_hcalls.h> | 7 | #include <asm/epapr_hcalls.h> |
8 | 8 | ||
9 | #ifdef CONFIG_PPC64 | ||
9 | EXPORT_SYMBOL(flush_dcache_range); | 10 | EXPORT_SYMBOL(flush_dcache_range); |
11 | #endif | ||
10 | EXPORT_SYMBOL(flush_icache_range); | 12 | EXPORT_SYMBOL(flush_icache_range); |
11 | 13 | ||
12 | EXPORT_SYMBOL(empty_zero_page); | 14 | EXPORT_SYMBOL(empty_zero_page); |
diff --git a/arch/powerpc/kernel/ppc_ksyms_32.c b/arch/powerpc/kernel/ppc_ksyms_32.c index 30ddd8a24eee..2bfaafe5be99 100644 --- a/arch/powerpc/kernel/ppc_ksyms_32.c +++ b/arch/powerpc/kernel/ppc_ksyms_32.c | |||
@@ -10,7 +10,6 @@ | |||
10 | #include <asm/pgtable.h> | 10 | #include <asm/pgtable.h> |
11 | #include <asm/dcr.h> | 11 | #include <asm/dcr.h> |
12 | 12 | ||
13 | EXPORT_SYMBOL(clear_pages); | ||
14 | EXPORT_SYMBOL(ISA_DMA_THRESHOLD); | 13 | EXPORT_SYMBOL(ISA_DMA_THRESHOLD); |
15 | EXPORT_SYMBOL(DMA_MODE_READ); | 14 | EXPORT_SYMBOL(DMA_MODE_READ); |
16 | EXPORT_SYMBOL(DMA_MODE_WRITE); | 15 | EXPORT_SYMBOL(DMA_MODE_WRITE); |
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c index ec9ec2058d2d..8575d044775d 100644 --- a/arch/powerpc/kernel/smp.c +++ b/arch/powerpc/kernel/smp.c | |||
@@ -427,7 +427,7 @@ void generic_cpu_die(unsigned int cpu) | |||
427 | 427 | ||
428 | for (i = 0; i < 100; i++) { | 428 | for (i = 0; i < 100; i++) { |
429 | smp_rmb(); | 429 | smp_rmb(); |
430 | if (per_cpu(cpu_state, cpu) == CPU_DEAD) | 430 | if (is_cpu_dead(cpu)) |
431 | return; | 431 | return; |
432 | msleep(100); | 432 | msleep(100); |
433 | } | 433 | } |
@@ -454,6 +454,11 @@ int generic_check_cpu_restart(unsigned int cpu) | |||
454 | return per_cpu(cpu_state, cpu) == CPU_UP_PREPARE; | 454 | return per_cpu(cpu_state, cpu) == CPU_UP_PREPARE; |
455 | } | 455 | } |
456 | 456 | ||
457 | int is_cpu_dead(unsigned int cpu) | ||
458 | { | ||
459 | return per_cpu(cpu_state, cpu) == CPU_DEAD; | ||
460 | } | ||
461 | |||
457 | static bool secondaries_inhibited(void) | 462 | static bool secondaries_inhibited(void) |
458 | { | 463 | { |
459 | return kvm_hv_mode_active(); | 464 | return kvm_hv_mode_active(); |
diff --git a/arch/powerpc/lib/Makefile b/arch/powerpc/lib/Makefile index 4513d1a706be..ba21be15310f 100644 --- a/arch/powerpc/lib/Makefile +++ b/arch/powerpc/lib/Makefile | |||
@@ -22,8 +22,7 @@ obj64-$(CONFIG_SMP) += locks.o | |||
22 | obj64-$(CONFIG_ALTIVEC) += vmx-helper.o | 22 | obj64-$(CONFIG_ALTIVEC) += vmx-helper.o |
23 | 23 | ||
24 | ifeq ($(CONFIG_GENERIC_CSUM),) | 24 | ifeq ($(CONFIG_GENERIC_CSUM),) |
25 | obj-y += checksum_$(CONFIG_WORD_SIZE).o | 25 | obj-y += checksum_$(CONFIG_WORD_SIZE).o checksum_wrappers.o |
26 | obj-$(CONFIG_PPC64) += checksum_wrappers_64.o | ||
27 | endif | 26 | endif |
28 | 27 | ||
29 | obj-$(CONFIG_PPC_EMULATE_SSTEP) += sstep.o ldstfp.o | 28 | obj-$(CONFIG_PPC_EMULATE_SSTEP) += sstep.o ldstfp.o |
diff --git a/arch/powerpc/lib/checksum_32.S b/arch/powerpc/lib/checksum_32.S index 6d67e057f15e..d90870a66b60 100644 --- a/arch/powerpc/lib/checksum_32.S +++ b/arch/powerpc/lib/checksum_32.S | |||
@@ -14,68 +14,59 @@ | |||
14 | 14 | ||
15 | #include <linux/sys.h> | 15 | #include <linux/sys.h> |
16 | #include <asm/processor.h> | 16 | #include <asm/processor.h> |
17 | #include <asm/cache.h> | ||
17 | #include <asm/errno.h> | 18 | #include <asm/errno.h> |
18 | #include <asm/ppc_asm.h> | 19 | #include <asm/ppc_asm.h> |
19 | 20 | ||
20 | .text | 21 | .text |
21 | 22 | ||
22 | /* | 23 | /* |
23 | * ip_fast_csum(buf, len) -- Optimized for IP header | ||
24 | * len is in words and is always >= 5. | ||
25 | */ | ||
26 | _GLOBAL(ip_fast_csum) | ||
27 | lwz r0,0(r3) | ||
28 | lwzu r5,4(r3) | ||
29 | addic. r4,r4,-2 | ||
30 | addc r0,r0,r5 | ||
31 | mtctr r4 | ||
32 | blelr- | ||
33 | 1: lwzu r4,4(r3) | ||
34 | adde r0,r0,r4 | ||
35 | bdnz 1b | ||
36 | addze r0,r0 /* add in final carry */ | ||
37 | rlwinm r3,r0,16,0,31 /* fold two halves together */ | ||
38 | add r3,r0,r3 | ||
39 | not r3,r3 | ||
40 | srwi r3,r3,16 | ||
41 | blr | ||
42 | |||
43 | /* | ||
44 | * computes the checksum of a memory block at buff, length len, | 24 | * computes the checksum of a memory block at buff, length len, |
45 | * and adds in "sum" (32-bit) | 25 | * and adds in "sum" (32-bit) |
46 | * | 26 | * |
47 | * csum_partial(buff, len, sum) | 27 | * __csum_partial(buff, len, sum) |
48 | */ | 28 | */ |
49 | _GLOBAL(csum_partial) | 29 | _GLOBAL(__csum_partial) |
50 | addic r0,r5,0 | ||
51 | subi r3,r3,4 | 30 | subi r3,r3,4 |
52 | srwi. r6,r4,2 | 31 | srawi. r6,r4,2 /* Divide len by 4 and also clear carry */ |
53 | beq 3f /* if we're doing < 4 bytes */ | 32 | beq 3f /* if we're doing < 4 bytes */ |
54 | andi. r5,r3,2 /* Align buffer to longword boundary */ | 33 | andi. r0,r3,2 /* Align buffer to longword boundary */ |
55 | beq+ 1f | 34 | beq+ 1f |
56 | lhz r5,4(r3) /* do 2 bytes to get aligned */ | 35 | lhz r0,4(r3) /* do 2 bytes to get aligned */ |
57 | addi r3,r3,2 | ||
58 | subi r4,r4,2 | 36 | subi r4,r4,2 |
59 | addc r0,r0,r5 | 37 | addi r3,r3,2 |
60 | srwi. r6,r4,2 /* # words to do */ | 38 | srwi. r6,r4,2 /* # words to do */ |
39 | adde r5,r5,r0 | ||
61 | beq 3f | 40 | beq 3f |
62 | 1: mtctr r6 | 41 | 1: andi. r6,r6,3 /* Prepare to handle words 4 by 4 */ |
63 | 2: lwzu r5,4(r3) /* the bdnz has zero overhead, so it should */ | 42 | beq 21f |
64 | adde r0,r0,r5 /* be unnecessary to unroll this loop */ | 43 | mtctr r6 |
44 | 2: lwzu r0,4(r3) | ||
45 | adde r5,r5,r0 | ||
65 | bdnz 2b | 46 | bdnz 2b |
66 | andi. r4,r4,3 | 47 | 21: srwi. r6,r4,4 /* # blocks of 4 words to do */ |
67 | 3: cmpwi 0,r4,2 | 48 | beq 3f |
68 | blt+ 4f | 49 | mtctr r6 |
69 | lhz r5,4(r3) | 50 | 22: lwz r0,4(r3) |
51 | lwz r6,8(r3) | ||
52 | lwz r7,12(r3) | ||
53 | lwzu r8,16(r3) | ||
54 | adde r5,r5,r0 | ||
55 | adde r5,r5,r6 | ||
56 | adde r5,r5,r7 | ||
57 | adde r5,r5,r8 | ||
58 | bdnz 22b | ||
59 | 3: andi. r0,r4,2 | ||
60 | beq+ 4f | ||
61 | lhz r0,4(r3) | ||
70 | addi r3,r3,2 | 62 | addi r3,r3,2 |
71 | subi r4,r4,2 | 63 | adde r5,r5,r0 |
72 | adde r0,r0,r5 | 64 | 4: andi. r0,r4,1 |
73 | 4: cmpwi 0,r4,1 | 65 | beq+ 5f |
74 | bne+ 5f | 66 | lbz r0,4(r3) |
75 | lbz r5,4(r3) | 67 | slwi r0,r0,8 /* Upper byte of word */ |
76 | slwi r5,r5,8 /* Upper byte of word */ | 68 | adde r5,r5,r0 |
77 | adde r0,r0,r5 | 69 | 5: addze r3,r5 /* add in final carry */ |
78 | 5: addze r3,r0 /* add in final carry */ | ||
79 | blr | 70 | blr |
80 | 71 | ||
81 | /* | 72 | /* |
@@ -87,123 +78,220 @@ _GLOBAL(csum_partial) | |||
87 | * | 78 | * |
88 | * csum_partial_copy_generic(src, dst, len, sum, src_err, dst_err) | 79 | * csum_partial_copy_generic(src, dst, len, sum, src_err, dst_err) |
89 | */ | 80 | */ |
81 | #define CSUM_COPY_16_BYTES_WITHEX(n) \ | ||
82 | 8 ## n ## 0: \ | ||
83 | lwz r7,4(r4); \ | ||
84 | 8 ## n ## 1: \ | ||
85 | lwz r8,8(r4); \ | ||
86 | 8 ## n ## 2: \ | ||
87 | lwz r9,12(r4); \ | ||
88 | 8 ## n ## 3: \ | ||
89 | lwzu r10,16(r4); \ | ||
90 | 8 ## n ## 4: \ | ||
91 | stw r7,4(r6); \ | ||
92 | adde r12,r12,r7; \ | ||
93 | 8 ## n ## 5: \ | ||
94 | stw r8,8(r6); \ | ||
95 | adde r12,r12,r8; \ | ||
96 | 8 ## n ## 6: \ | ||
97 | stw r9,12(r6); \ | ||
98 | adde r12,r12,r9; \ | ||
99 | 8 ## n ## 7: \ | ||
100 | stwu r10,16(r6); \ | ||
101 | adde r12,r12,r10 | ||
102 | |||
103 | #define CSUM_COPY_16_BYTES_EXCODE(n) \ | ||
104 | .section __ex_table,"a"; \ | ||
105 | .align 2; \ | ||
106 | .long 8 ## n ## 0b,src_error; \ | ||
107 | .long 8 ## n ## 1b,src_error; \ | ||
108 | .long 8 ## n ## 2b,src_error; \ | ||
109 | .long 8 ## n ## 3b,src_error; \ | ||
110 | .long 8 ## n ## 4b,dst_error; \ | ||
111 | .long 8 ## n ## 5b,dst_error; \ | ||
112 | .long 8 ## n ## 6b,dst_error; \ | ||
113 | .long 8 ## n ## 7b,dst_error; \ | ||
114 | .text | ||
115 | |||
116 | .text | ||
117 | .stabs "arch/powerpc/lib/",N_SO,0,0,0f | ||
118 | .stabs "checksum_32.S",N_SO,0,0,0f | ||
119 | 0: | ||
120 | |||
121 | CACHELINE_BYTES = L1_CACHE_BYTES | ||
122 | LG_CACHELINE_BYTES = L1_CACHE_SHIFT | ||
123 | CACHELINE_MASK = (L1_CACHE_BYTES-1) | ||
124 | |||
90 | _GLOBAL(csum_partial_copy_generic) | 125 | _GLOBAL(csum_partial_copy_generic) |
91 | addic r0,r6,0 | 126 | stwu r1,-16(r1) |
92 | subi r3,r3,4 | 127 | stw r7,12(r1) |
93 | subi r4,r4,4 | 128 | stw r8,8(r1) |
94 | srwi. r6,r5,2 | 129 | |
95 | beq 3f /* if we're doing < 4 bytes */ | 130 | andi. r0,r4,1 /* is destination address even ? */ |
96 | andi. r9,r4,2 /* Align dst to longword boundary */ | 131 | cmplwi cr7,r0,0 |
97 | beq+ 1f | 132 | addic r12,r6,0 |
98 | 81: lhz r6,4(r3) /* do 2 bytes to get aligned */ | 133 | addi r6,r4,-4 |
99 | addi r3,r3,2 | 134 | neg r0,r4 |
100 | subi r5,r5,2 | 135 | addi r4,r3,-4 |
101 | 91: sth r6,4(r4) | 136 | andi. r0,r0,CACHELINE_MASK /* # bytes to start of cache line */ |
102 | addi r4,r4,2 | 137 | beq 58f |
103 | addc r0,r0,r6 | 138 | |
104 | srwi. r6,r5,2 /* # words to do */ | 139 | cmplw 0,r5,r0 /* is this more than total to do? */ |
105 | beq 3f | 140 | blt 63f /* if not much to do */ |
106 | 1: srwi. r6,r5,4 /* # groups of 4 words to do */ | 141 | andi. r8,r0,3 /* get it word-aligned first */ |
107 | beq 10f | 142 | mtctr r8 |
108 | mtctr r6 | 143 | beq+ 61f |
109 | 71: lwz r6,4(r3) | 144 | li r3,0 |
110 | 72: lwz r9,8(r3) | 145 | 70: lbz r9,4(r4) /* do some bytes */ |
111 | 73: lwz r10,12(r3) | 146 | addi r4,r4,1 |
112 | 74: lwzu r11,16(r3) | 147 | slwi r3,r3,8 |
113 | adde r0,r0,r6 | 148 | rlwimi r3,r9,0,24,31 |
114 | 75: stw r6,4(r4) | 149 | 71: stb r9,4(r6) |
115 | adde r0,r0,r9 | 150 | addi r6,r6,1 |
116 | 76: stw r9,8(r4) | 151 | bdnz 70b |
117 | adde r0,r0,r10 | 152 | adde r12,r12,r3 |
118 | 77: stw r10,12(r4) | 153 | 61: subf r5,r0,r5 |
119 | adde r0,r0,r11 | 154 | srwi. r0,r0,2 |
120 | 78: stwu r11,16(r4) | 155 | mtctr r0 |
121 | bdnz 71b | 156 | beq 58f |
122 | 10: rlwinm. r6,r5,30,30,31 /* # words left to do */ | 157 | 72: lwzu r9,4(r4) /* do some words */ |
123 | beq 13f | 158 | adde r12,r12,r9 |
124 | mtctr r6 | 159 | 73: stwu r9,4(r6) |
125 | 82: lwzu r9,4(r3) | 160 | bdnz 72b |
126 | 92: stwu r9,4(r4) | 161 | |
127 | adde r0,r0,r9 | 162 | 58: srwi. r0,r5,LG_CACHELINE_BYTES /* # complete cachelines */ |
128 | bdnz 82b | 163 | clrlwi r5,r5,32-LG_CACHELINE_BYTES |
129 | 13: andi. r5,r5,3 | 164 | li r11,4 |
130 | 3: cmpwi 0,r5,2 | 165 | beq 63f |
131 | blt+ 4f | 166 | |
132 | 83: lhz r6,4(r3) | 167 | /* Here we decide how far ahead to prefetch the source */ |
133 | addi r3,r3,2 | 168 | li r3,4 |
134 | subi r5,r5,2 | 169 | cmpwi r0,1 |
135 | 93: sth r6,4(r4) | 170 | li r7,0 |
171 | ble 114f | ||
172 | li r7,1 | ||
173 | #if MAX_COPY_PREFETCH > 1 | ||
174 | /* Heuristically, for large transfers we prefetch | ||
175 | MAX_COPY_PREFETCH cachelines ahead. For small transfers | ||
176 | we prefetch 1 cacheline ahead. */ | ||
177 | cmpwi r0,MAX_COPY_PREFETCH | ||
178 | ble 112f | ||
179 | li r7,MAX_COPY_PREFETCH | ||
180 | 112: mtctr r7 | ||
181 | 111: dcbt r3,r4 | ||
182 | addi r3,r3,CACHELINE_BYTES | ||
183 | bdnz 111b | ||
184 | #else | ||
185 | dcbt r3,r4 | ||
186 | addi r3,r3,CACHELINE_BYTES | ||
187 | #endif /* MAX_COPY_PREFETCH > 1 */ | ||
188 | |||
189 | 114: subf r8,r7,r0 | ||
190 | mr r0,r7 | ||
191 | mtctr r8 | ||
192 | |||
193 | 53: dcbt r3,r4 | ||
194 | 54: dcbz r11,r6 | ||
195 | /* the main body of the cacheline loop */ | ||
196 | CSUM_COPY_16_BYTES_WITHEX(0) | ||
197 | #if L1_CACHE_BYTES >= 32 | ||
198 | CSUM_COPY_16_BYTES_WITHEX(1) | ||
199 | #if L1_CACHE_BYTES >= 64 | ||
200 | CSUM_COPY_16_BYTES_WITHEX(2) | ||
201 | CSUM_COPY_16_BYTES_WITHEX(3) | ||
202 | #if L1_CACHE_BYTES >= 128 | ||
203 | CSUM_COPY_16_BYTES_WITHEX(4) | ||
204 | CSUM_COPY_16_BYTES_WITHEX(5) | ||
205 | CSUM_COPY_16_BYTES_WITHEX(6) | ||
206 | CSUM_COPY_16_BYTES_WITHEX(7) | ||
207 | #endif | ||
208 | #endif | ||
209 | #endif | ||
210 | bdnz 53b | ||
211 | cmpwi r0,0 | ||
212 | li r3,4 | ||
213 | li r7,0 | ||
214 | bne 114b | ||
215 | |||
216 | 63: srwi. r0,r5,2 | ||
217 | mtctr r0 | ||
218 | beq 64f | ||
219 | 30: lwzu r0,4(r4) | ||
220 | adde r12,r12,r0 | ||
221 | 31: stwu r0,4(r6) | ||
222 | bdnz 30b | ||
223 | |||
224 | 64: andi. r0,r5,2 | ||
225 | beq+ 65f | ||
226 | 40: lhz r0,4(r4) | ||
136 | addi r4,r4,2 | 227 | addi r4,r4,2 |
137 | adde r0,r0,r6 | 228 | 41: sth r0,4(r6) |
138 | 4: cmpwi 0,r5,1 | 229 | adde r12,r12,r0 |
139 | bne+ 5f | 230 | addi r6,r6,2 |
140 | 84: lbz r6,4(r3) | 231 | 65: andi. r0,r5,1 |
141 | 94: stb r6,4(r4) | 232 | beq+ 66f |
142 | slwi r6,r6,8 /* Upper byte of word */ | 233 | 50: lbz r0,4(r4) |
143 | adde r0,r0,r6 | 234 | 51: stb r0,4(r6) |
144 | 5: addze r3,r0 /* add in final carry */ | 235 | slwi r0,r0,8 |
236 | adde r12,r12,r0 | ||
237 | 66: addze r3,r12 | ||
238 | addi r1,r1,16 | ||
239 | beqlr+ cr7 | ||
240 | rlwinm r3,r3,8,0,31 /* swap bytes for odd destination */ | ||
145 | blr | 241 | blr |
146 | 242 | ||
147 | /* These shouldn't go in the fixup section, since that would | 243 | /* read fault */ |
148 | cause the ex_table addresses to get out of order. */ | ||
149 | |||
150 | src_error_4: | ||
151 | mfctr r6 /* update # bytes remaining from ctr */ | ||
152 | rlwimi r5,r6,4,0,27 | ||
153 | b 79f | ||
154 | src_error_1: | ||
155 | li r6,0 | ||
156 | subi r5,r5,2 | ||
157 | 95: sth r6,4(r4) | ||
158 | addi r4,r4,2 | ||
159 | 79: srwi. r6,r5,2 | ||
160 | beq 3f | ||
161 | mtctr r6 | ||
162 | src_error_2: | ||
163 | li r6,0 | ||
164 | 96: stwu r6,4(r4) | ||
165 | bdnz 96b | ||
166 | 3: andi. r5,r5,3 | ||
167 | beq src_error | ||
168 | src_error_3: | ||
169 | li r6,0 | ||
170 | mtctr r5 | ||
171 | addi r4,r4,3 | ||
172 | 97: stbu r6,1(r4) | ||
173 | bdnz 97b | ||
174 | src_error: | 244 | src_error: |
175 | cmpwi 0,r7,0 | 245 | lwz r7,12(r1) |
176 | beq 1f | 246 | addi r1,r1,16 |
177 | li r6,-EFAULT | 247 | cmpwi cr0,r7,0 |
178 | stw r6,0(r7) | 248 | beqlr |
179 | 1: addze r3,r0 | 249 | li r0,-EFAULT |
250 | stw r0,0(r7) | ||
180 | blr | 251 | blr |
181 | 252 | /* write fault */ | |
182 | dst_error: | 253 | dst_error: |
183 | cmpwi 0,r8,0 | 254 | lwz r8,8(r1) |
184 | beq 1f | 255 | addi r1,r1,16 |
185 | li r6,-EFAULT | 256 | cmpwi cr0,r8,0 |
186 | stw r6,0(r8) | 257 | beqlr |
187 | 1: addze r3,r0 | 258 | li r0,-EFAULT |
259 | stw r0,0(r8) | ||
188 | blr | 260 | blr |
189 | 261 | ||
190 | .section __ex_table,"a" | 262 | .section __ex_table,"a" |
191 | .long 81b,src_error_1 | 263 | .align 2 |
192 | .long 91b,dst_error | 264 | .long 70b,src_error |
193 | .long 71b,src_error_4 | 265 | .long 71b,dst_error |
194 | .long 72b,src_error_4 | 266 | .long 72b,src_error |
195 | .long 73b,src_error_4 | 267 | .long 73b,dst_error |
196 | .long 74b,src_error_4 | 268 | .long 54b,dst_error |
197 | .long 75b,dst_error | 269 | .text |
198 | .long 76b,dst_error | 270 | |
199 | .long 77b,dst_error | 271 | /* |
200 | .long 78b,dst_error | 272 | * this stuff handles faults in the cacheline loop and branches to either |
201 | .long 82b,src_error_2 | 273 | * src_error (if in read part) or dst_error (if in write part) |
202 | .long 92b,dst_error | 274 | */ |
203 | .long 83b,src_error_3 | 275 | CSUM_COPY_16_BYTES_EXCODE(0) |
204 | .long 93b,dst_error | 276 | #if L1_CACHE_BYTES >= 32 |
205 | .long 84b,src_error_3 | 277 | CSUM_COPY_16_BYTES_EXCODE(1) |
206 | .long 94b,dst_error | 278 | #if L1_CACHE_BYTES >= 64 |
207 | .long 95b,dst_error | 279 | CSUM_COPY_16_BYTES_EXCODE(2) |
208 | .long 96b,dst_error | 280 | CSUM_COPY_16_BYTES_EXCODE(3) |
209 | .long 97b,dst_error | 281 | #if L1_CACHE_BYTES >= 128 |
282 | CSUM_COPY_16_BYTES_EXCODE(4) | ||
283 | CSUM_COPY_16_BYTES_EXCODE(5) | ||
284 | CSUM_COPY_16_BYTES_EXCODE(6) | ||
285 | CSUM_COPY_16_BYTES_EXCODE(7) | ||
286 | #endif | ||
287 | #endif | ||
288 | #endif | ||
289 | |||
290 | .section __ex_table,"a" | ||
291 | .align 2 | ||
292 | .long 30b,src_error | ||
293 | .long 31b,dst_error | ||
294 | .long 40b,src_error | ||
295 | .long 41b,dst_error | ||
296 | .long 50b,src_error | ||
297 | .long 51b,dst_error | ||
diff --git a/arch/powerpc/lib/checksum_64.S b/arch/powerpc/lib/checksum_64.S index f3ef35436612..8e6e51016cc5 100644 --- a/arch/powerpc/lib/checksum_64.S +++ b/arch/powerpc/lib/checksum_64.S | |||
@@ -18,39 +18,12 @@ | |||
18 | #include <asm/ppc_asm.h> | 18 | #include <asm/ppc_asm.h> |
19 | 19 | ||
20 | /* | 20 | /* |
21 | * ip_fast_csum(r3=buf, r4=len) -- Optimized for IP header | ||
22 | * len is in words and is always >= 5. | ||
23 | * | ||
24 | * In practice len == 5, but this is not guaranteed. So this code does not | ||
25 | * attempt to use doubleword instructions. | ||
26 | */ | ||
27 | _GLOBAL(ip_fast_csum) | ||
28 | lwz r0,0(r3) | ||
29 | lwzu r5,4(r3) | ||
30 | addic. r4,r4,-2 | ||
31 | addc r0,r0,r5 | ||
32 | mtctr r4 | ||
33 | blelr- | ||
34 | 1: lwzu r4,4(r3) | ||
35 | adde r0,r0,r4 | ||
36 | bdnz 1b | ||
37 | addze r0,r0 /* add in final carry */ | ||
38 | rldicl r4,r0,32,0 /* fold two 32-bit halves together */ | ||
39 | add r0,r0,r4 | ||
40 | srdi r0,r0,32 | ||
41 | rlwinm r3,r0,16,0,31 /* fold two halves together */ | ||
42 | add r3,r0,r3 | ||
43 | not r3,r3 | ||
44 | srwi r3,r3,16 | ||
45 | blr | ||
46 | |||
47 | /* | ||
48 | * Computes the checksum of a memory block at buff, length len, | 21 | * Computes the checksum of a memory block at buff, length len, |
49 | * and adds in "sum" (32-bit). | 22 | * and adds in "sum" (32-bit). |
50 | * | 23 | * |
51 | * csum_partial(r3=buff, r4=len, r5=sum) | 24 | * __csum_partial(r3=buff, r4=len, r5=sum) |
52 | */ | 25 | */ |
53 | _GLOBAL(csum_partial) | 26 | _GLOBAL(__csum_partial) |
54 | addic r0,r5,0 /* clear carry */ | 27 | addic r0,r5,0 /* clear carry */ |
55 | 28 | ||
56 | srdi. r6,r4,3 /* less than 8 bytes? */ | 29 | srdi. r6,r4,3 /* less than 8 bytes? */ |
diff --git a/arch/powerpc/lib/checksum_wrappers_64.c b/arch/powerpc/lib/checksum_wrappers.c index 08e3a3356c40..08e3a3356c40 100644 --- a/arch/powerpc/lib/checksum_wrappers_64.c +++ b/arch/powerpc/lib/checksum_wrappers.c | |||
diff --git a/arch/powerpc/lib/ppc_ksyms.c b/arch/powerpc/lib/ppc_ksyms.c index c7f8e9586316..c422812f7405 100644 --- a/arch/powerpc/lib/ppc_ksyms.c +++ b/arch/powerpc/lib/ppc_ksyms.c | |||
@@ -17,10 +17,8 @@ EXPORT_SYMBOL(strcmp); | |||
17 | EXPORT_SYMBOL(strncmp); | 17 | EXPORT_SYMBOL(strncmp); |
18 | 18 | ||
19 | #ifndef CONFIG_GENERIC_CSUM | 19 | #ifndef CONFIG_GENERIC_CSUM |
20 | EXPORT_SYMBOL(csum_partial); | 20 | EXPORT_SYMBOL(__csum_partial); |
21 | EXPORT_SYMBOL(csum_partial_copy_generic); | 21 | EXPORT_SYMBOL(csum_partial_copy_generic); |
22 | EXPORT_SYMBOL(ip_fast_csum); | ||
23 | EXPORT_SYMBOL(csum_tcpudp_magic); | ||
24 | #endif | 22 | #endif |
25 | 23 | ||
26 | EXPORT_SYMBOL(__copy_tofrom_user); | 24 | EXPORT_SYMBOL(__copy_tofrom_user); |
diff --git a/arch/powerpc/mm/8xx_mmu.c b/arch/powerpc/mm/8xx_mmu.c new file mode 100644 index 000000000000..949100577db5 --- /dev/null +++ b/arch/powerpc/mm/8xx_mmu.c | |||
@@ -0,0 +1,141 @@ | |||
1 | /* | ||
2 | * This file contains the routines for initializing the MMU | ||
3 | * on the 8xx series of chips. | ||
4 | * -- christophe | ||
5 | * | ||
6 | * Derived from arch/powerpc/mm/40x_mmu.c: | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or | ||
9 | * modify it under the terms of the GNU General Public License | ||
10 | * as published by the Free Software Foundation; either version | ||
11 | * 2 of the License, or (at your option) any later version. | ||
12 | * | ||
13 | */ | ||
14 | |||
15 | #include <linux/memblock.h> | ||
16 | |||
17 | #include "mmu_decl.h" | ||
18 | |||
19 | extern int __map_without_ltlbs; | ||
20 | /* | ||
21 | * MMU_init_hw does the chip-specific initialization of the MMU hardware. | ||
22 | */ | ||
23 | void __init MMU_init_hw(void) | ||
24 | { | ||
25 | /* Nothing to do for the time being but keep it similar to other PPC */ | ||
26 | } | ||
27 | |||
28 | #define LARGE_PAGE_SIZE_4M (1<<22) | ||
29 | #define LARGE_PAGE_SIZE_8M (1<<23) | ||
30 | #define LARGE_PAGE_SIZE_64M (1<<26) | ||
31 | |||
32 | unsigned long __init mmu_mapin_ram(unsigned long top) | ||
33 | { | ||
34 | unsigned long v, s, mapped; | ||
35 | phys_addr_t p; | ||
36 | |||
37 | v = KERNELBASE; | ||
38 | p = 0; | ||
39 | s = top; | ||
40 | |||
41 | if (__map_without_ltlbs) | ||
42 | return 0; | ||
43 | |||
44 | #ifdef CONFIG_PPC_4K_PAGES | ||
45 | while (s >= LARGE_PAGE_SIZE_8M) { | ||
46 | pmd_t *pmdp; | ||
47 | unsigned long val = p | MD_PS8MEG; | ||
48 | |||
49 | pmdp = pmd_offset(pud_offset(pgd_offset_k(v), v), v); | ||
50 | *pmdp++ = __pmd(val); | ||
51 | *pmdp++ = __pmd(val + LARGE_PAGE_SIZE_4M); | ||
52 | |||
53 | v += LARGE_PAGE_SIZE_8M; | ||
54 | p += LARGE_PAGE_SIZE_8M; | ||
55 | s -= LARGE_PAGE_SIZE_8M; | ||
56 | } | ||
57 | #else /* CONFIG_PPC_16K_PAGES */ | ||
58 | while (s >= LARGE_PAGE_SIZE_64M) { | ||
59 | pmd_t *pmdp; | ||
60 | unsigned long val = p | MD_PS8MEG; | ||
61 | |||
62 | pmdp = pmd_offset(pud_offset(pgd_offset_k(v), v), v); | ||
63 | *pmdp++ = __pmd(val); | ||
64 | |||
65 | v += LARGE_PAGE_SIZE_64M; | ||
66 | p += LARGE_PAGE_SIZE_64M; | ||
67 | s -= LARGE_PAGE_SIZE_64M; | ||
68 | } | ||
69 | #endif | ||
70 | |||
71 | mapped = top - s; | ||
72 | |||
73 | /* If the size of RAM is not an exact power of two, we may not | ||
74 | * have covered RAM in its entirety with 8 MiB | ||
75 | * pages. Consequently, restrict the top end of RAM currently | ||
76 | * allocable so that calls to the MEMBLOCK to allocate PTEs for "tail" | ||
77 | * coverage with normal-sized pages (or other reasons) do not | ||
78 | * attempt to allocate outside the allowed range. | ||
79 | */ | ||
80 | memblock_set_current_limit(mapped); | ||
81 | |||
82 | return mapped; | ||
83 | } | ||
84 | |||
85 | void setup_initial_memory_limit(phys_addr_t first_memblock_base, | ||
86 | phys_addr_t first_memblock_size) | ||
87 | { | ||
88 | /* We don't currently support the first MEMBLOCK not mapping 0 | ||
89 | * physical on those processors | ||
90 | */ | ||
91 | BUG_ON(first_memblock_base != 0); | ||
92 | |||
93 | #ifdef CONFIG_PIN_TLB | ||
94 | /* 8xx can only access 24MB at the moment */ | ||
95 | memblock_set_current_limit(min_t(u64, first_memblock_size, 0x01800000)); | ||
96 | #else | ||
97 | /* 8xx can only access 8MB at the moment */ | ||
98 | memblock_set_current_limit(min_t(u64, first_memblock_size, 0x00800000)); | ||
99 | #endif | ||
100 | } | ||
101 | |||
102 | /* | ||
103 | * Set up to use a given MMU context. | ||
104 | * id is context number, pgd is PGD pointer. | ||
105 | * | ||
106 | * We place the physical address of the new task page directory loaded | ||
107 | * into the MMU base register, and set the ASID compare register with | ||
108 | * the new "context." | ||
109 | */ | ||
110 | void set_context(unsigned long id, pgd_t *pgd) | ||
111 | { | ||
112 | s16 offset = (s16)(__pa(swapper_pg_dir)); | ||
113 | |||
114 | #ifdef CONFIG_BDI_SWITCH | ||
115 | pgd_t **ptr = *(pgd_t ***)(KERNELBASE + 0xf0); | ||
116 | |||
117 | /* Context switch the PTE pointer for the Abatron BDI2000. | ||
118 | * The PGDIR is passed as second argument. | ||
119 | */ | ||
120 | *(ptr + 1) = pgd; | ||
121 | #endif | ||
122 | |||
123 | /* Register M_TW will contain base address of level 1 table minus the | ||
124 | * lower part of the kernel PGDIR base address, so that all accesses to | ||
125 | * level 1 table are done relative to lower part of kernel PGDIR base | ||
126 | * address. | ||
127 | */ | ||
128 | mtspr(SPRN_M_TW, __pa(pgd) - offset); | ||
129 | |||
130 | /* Update context */ | ||
131 | mtspr(SPRN_M_CASID, id); | ||
132 | /* sync */ | ||
133 | mb(); | ||
134 | } | ||
135 | |||
136 | void flush_instruction_cache(void) | ||
137 | { | ||
138 | isync(); | ||
139 | mtspr(SPRN_IC_CST, IDC_INVALL); | ||
140 | isync(); | ||
141 | } | ||
diff --git a/arch/powerpc/mm/Makefile b/arch/powerpc/mm/Makefile index 1ffeda85c086..adfee3f1aeb9 100644 --- a/arch/powerpc/mm/Makefile +++ b/arch/powerpc/mm/Makefile | |||
@@ -25,6 +25,7 @@ obj-$(CONFIG_PPC_ICSWX) += icswx.o | |||
25 | obj-$(CONFIG_PPC_ICSWX_PID) += icswx_pid.o | 25 | obj-$(CONFIG_PPC_ICSWX_PID) += icswx_pid.o |
26 | obj-$(CONFIG_40x) += 40x_mmu.o | 26 | obj-$(CONFIG_40x) += 40x_mmu.o |
27 | obj-$(CONFIG_44x) += 44x_mmu.o | 27 | obj-$(CONFIG_44x) += 44x_mmu.o |
28 | obj-$(CONFIG_PPC_8xx) += 8xx_mmu.o | ||
28 | obj-$(CONFIG_PPC_FSL_BOOK3E) += fsl_booke_mmu.o | 29 | obj-$(CONFIG_PPC_FSL_BOOK3E) += fsl_booke_mmu.o |
29 | obj-$(CONFIG_NEED_MULTIPLE_NODES) += numa.o | 30 | obj-$(CONFIG_NEED_MULTIPLE_NODES) += numa.o |
30 | obj-$(CONFIG_PPC_SPLPAR) += vphn.o | 31 | obj-$(CONFIG_PPC_SPLPAR) += vphn.o |
diff --git a/arch/powerpc/mm/dma-noncoherent.c b/arch/powerpc/mm/dma-noncoherent.c index 169aba446a74..2dc74e5c6458 100644 --- a/arch/powerpc/mm/dma-noncoherent.c +++ b/arch/powerpc/mm/dma-noncoherent.c | |||
@@ -327,7 +327,7 @@ void __dma_sync(void *vaddr, size_t size, int direction) | |||
327 | * invalidate only when cache-line aligned otherwise there is | 327 | * invalidate only when cache-line aligned otherwise there is |
328 | * the potential for discarding uncommitted data from the cache | 328 | * the potential for discarding uncommitted data from the cache |
329 | */ | 329 | */ |
330 | if ((start & (L1_CACHE_BYTES - 1)) || (size & (L1_CACHE_BYTES - 1))) | 330 | if ((start | end) & (L1_CACHE_BYTES - 1)) |
331 | flush_dcache_range(start, end); | 331 | flush_dcache_range(start, end); |
332 | else | 332 | else |
333 | invalidate_dcache_range(start, end); | 333 | invalidate_dcache_range(start, end); |
diff --git a/arch/powerpc/mm/fsl_booke_mmu.c b/arch/powerpc/mm/fsl_booke_mmu.c index f3afe3d97f6b..a1b2713f6e96 100644 --- a/arch/powerpc/mm/fsl_booke_mmu.c +++ b/arch/powerpc/mm/fsl_booke_mmu.c | |||
@@ -72,10 +72,11 @@ unsigned long tlbcam_sz(int idx) | |||
72 | return tlbcam_addrs[idx].limit - tlbcam_addrs[idx].start + 1; | 72 | return tlbcam_addrs[idx].limit - tlbcam_addrs[idx].start + 1; |
73 | } | 73 | } |
74 | 74 | ||
75 | #ifdef CONFIG_FSL_BOOKE | ||
75 | /* | 76 | /* |
76 | * Return PA for this VA if it is mapped by a CAM, or 0 | 77 | * Return PA for this VA if it is mapped by a CAM, or 0 |
77 | */ | 78 | */ |
78 | phys_addr_t v_mapped_by_tlbcam(unsigned long va) | 79 | phys_addr_t v_block_mapped(unsigned long va) |
79 | { | 80 | { |
80 | int b; | 81 | int b; |
81 | for (b = 0; b < tlbcam_index; ++b) | 82 | for (b = 0; b < tlbcam_index; ++b) |
@@ -87,7 +88,7 @@ phys_addr_t v_mapped_by_tlbcam(unsigned long va) | |||
87 | /* | 88 | /* |
88 | * Return VA for a given PA or 0 if not mapped | 89 | * Return VA for a given PA or 0 if not mapped |
89 | */ | 90 | */ |
90 | unsigned long p_mapped_by_tlbcam(phys_addr_t pa) | 91 | unsigned long p_block_mapped(phys_addr_t pa) |
91 | { | 92 | { |
92 | int b; | 93 | int b; |
93 | for (b = 0; b < tlbcam_index; ++b) | 94 | for (b = 0; b < tlbcam_index; ++b) |
@@ -97,6 +98,7 @@ unsigned long p_mapped_by_tlbcam(phys_addr_t pa) | |||
97 | return tlbcam_addrs[b].start+(pa-tlbcam_addrs[b].phys); | 98 | return tlbcam_addrs[b].start+(pa-tlbcam_addrs[b].phys); |
98 | return 0; | 99 | return 0; |
99 | } | 100 | } |
101 | #endif | ||
100 | 102 | ||
101 | /* | 103 | /* |
102 | * Set up a variable-size TLB entry (tlbcam). The parameters are not checked; | 104 | * Set up a variable-size TLB entry (tlbcam). The parameters are not checked; |
diff --git a/arch/powerpc/mm/init_32.c b/arch/powerpc/mm/init_32.c index a10be665b645..4eb1b8f5667c 100644 --- a/arch/powerpc/mm/init_32.c +++ b/arch/powerpc/mm/init_32.c | |||
@@ -178,10 +178,6 @@ void __init MMU_init(void) | |||
178 | /* Initialize early top-down ioremap allocator */ | 178 | /* Initialize early top-down ioremap allocator */ |
179 | ioremap_bot = IOREMAP_TOP; | 179 | ioremap_bot = IOREMAP_TOP; |
180 | 180 | ||
181 | /* Map in I/O resources */ | ||
182 | if (ppc_md.progress) | ||
183 | ppc_md.progress("MMU:setio", 0x302); | ||
184 | |||
185 | if (ppc_md.progress) | 181 | if (ppc_md.progress) |
186 | ppc_md.progress("MMU:exit", 0x211); | 182 | ppc_md.progress("MMU:exit", 0x211); |
187 | 183 | ||
@@ -193,22 +189,3 @@ void __init MMU_init(void) | |||
193 | /* Shortly after that, the entire linear mapping will be available */ | 189 | /* Shortly after that, the entire linear mapping will be available */ |
194 | memblock_set_current_limit(lowmem_end_addr); | 190 | memblock_set_current_limit(lowmem_end_addr); |
195 | } | 191 | } |
196 | |||
197 | #ifdef CONFIG_8xx /* No 8xx specific .c file to put that in ... */ | ||
198 | void setup_initial_memory_limit(phys_addr_t first_memblock_base, | ||
199 | phys_addr_t first_memblock_size) | ||
200 | { | ||
201 | /* We don't currently support the first MEMBLOCK not mapping 0 | ||
202 | * physical on those processors | ||
203 | */ | ||
204 | BUG_ON(first_memblock_base != 0); | ||
205 | |||
206 | #ifdef CONFIG_PIN_TLB | ||
207 | /* 8xx can only access 24MB at the moment */ | ||
208 | memblock_set_current_limit(min_t(u64, first_memblock_size, 0x01800000)); | ||
209 | #else | ||
210 | /* 8xx can only access 8MB at the moment */ | ||
211 | memblock_set_current_limit(min_t(u64, first_memblock_size, 0x00800000)); | ||
212 | #endif | ||
213 | } | ||
214 | #endif /* CONFIG_8xx */ | ||
diff --git a/arch/powerpc/mm/mmu_decl.h b/arch/powerpc/mm/mmu_decl.h index 898d63365cdd..bfb7c0bcabd5 100644 --- a/arch/powerpc/mm/mmu_decl.h +++ b/arch/powerpc/mm/mmu_decl.h | |||
@@ -100,7 +100,6 @@ extern void setbat(int index, unsigned long virt, phys_addr_t phys, | |||
100 | 100 | ||
101 | extern int __map_without_bats; | 101 | extern int __map_without_bats; |
102 | extern int __allow_ioremap_reserved; | 102 | extern int __allow_ioremap_reserved; |
103 | extern unsigned long ioremap_base; | ||
104 | extern unsigned int rtas_data, rtas_size; | 103 | extern unsigned int rtas_data, rtas_size; |
105 | 104 | ||
106 | struct hash_pte; | 105 | struct hash_pte; |
@@ -133,22 +132,17 @@ extern void wii_memory_fixups(void); | |||
133 | /* ...and now those things that may be slightly different between processor | 132 | /* ...and now those things that may be slightly different between processor |
134 | * architectures. -- Dan | 133 | * architectures. -- Dan |
135 | */ | 134 | */ |
136 | #if defined(CONFIG_8xx) | 135 | #ifdef CONFIG_PPC32 |
137 | #define MMU_init_hw() do { } while(0) | ||
138 | #define mmu_mapin_ram(top) (0UL) | ||
139 | |||
140 | #elif defined(CONFIG_4xx) | ||
141 | extern void MMU_init_hw(void); | 136 | extern void MMU_init_hw(void); |
142 | extern unsigned long mmu_mapin_ram(unsigned long top); | 137 | extern unsigned long mmu_mapin_ram(unsigned long top); |
138 | #endif | ||
143 | 139 | ||
144 | #elif defined(CONFIG_PPC_FSL_BOOK3E) | 140 | #ifdef CONFIG_PPC_FSL_BOOK3E |
145 | extern unsigned long map_mem_in_cams(unsigned long ram, int max_cam_idx, | 141 | extern unsigned long map_mem_in_cams(unsigned long ram, int max_cam_idx, |
146 | bool dryrun); | 142 | bool dryrun); |
147 | extern unsigned long calc_cam_sz(unsigned long ram, unsigned long virt, | 143 | extern unsigned long calc_cam_sz(unsigned long ram, unsigned long virt, |
148 | phys_addr_t phys); | 144 | phys_addr_t phys); |
149 | #ifdef CONFIG_PPC32 | 145 | #ifdef CONFIG_PPC32 |
150 | extern void MMU_init_hw(void); | ||
151 | extern unsigned long mmu_mapin_ram(unsigned long top); | ||
152 | extern void adjust_total_lowmem(void); | 146 | extern void adjust_total_lowmem(void); |
153 | extern int switch_to_as1(void); | 147 | extern int switch_to_as1(void); |
154 | extern void restore_to_as0(int esel, int offset, void *dt_ptr, int bootcpu); | 148 | extern void restore_to_as0(int esel, int offset, void *dt_ptr, int bootcpu); |
@@ -163,8 +157,14 @@ struct tlbcam { | |||
163 | u32 MAS3; | 157 | u32 MAS3; |
164 | u32 MAS7; | 158 | u32 MAS7; |
165 | }; | 159 | }; |
166 | #elif defined(CONFIG_PPC32) | 160 | #endif |
167 | /* anything 32-bit except 4xx or 8xx */ | 161 | |
168 | extern void MMU_init_hw(void); | 162 | #if defined(CONFIG_6xx) || defined(CONFIG_FSL_BOOKE) |
169 | extern unsigned long mmu_mapin_ram(unsigned long top); | 163 | /* 6xx have BATS */ |
164 | /* FSL_BOOKE have TLBCAM */ | ||
165 | phys_addr_t v_block_mapped(unsigned long va); | ||
166 | unsigned long p_block_mapped(phys_addr_t pa); | ||
167 | #else | ||
168 | static inline phys_addr_t v_block_mapped(unsigned long va) { return 0; } | ||
169 | static inline unsigned long p_block_mapped(phys_addr_t pa) { return 0; } | ||
170 | #endif | 170 | #endif |
diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c index 7692d1bb1bc6..bf7bf32b54f8 100644 --- a/arch/powerpc/mm/pgtable_32.c +++ b/arch/powerpc/mm/pgtable_32.c | |||
@@ -37,35 +37,10 @@ | |||
37 | 37 | ||
38 | #include "mmu_decl.h" | 38 | #include "mmu_decl.h" |
39 | 39 | ||
40 | unsigned long ioremap_base; | ||
41 | unsigned long ioremap_bot; | 40 | unsigned long ioremap_bot; |
42 | EXPORT_SYMBOL(ioremap_bot); /* aka VMALLOC_END */ | 41 | EXPORT_SYMBOL(ioremap_bot); /* aka VMALLOC_END */ |
43 | 42 | ||
44 | #ifdef CONFIG_6xx | 43 | extern char etext[], _stext[], _sinittext[], _einittext[]; |
45 | #define HAVE_BATS 1 | ||
46 | #endif | ||
47 | |||
48 | #if defined(CONFIG_FSL_BOOKE) | ||
49 | #define HAVE_TLBCAM 1 | ||
50 | #endif | ||
51 | |||
52 | extern char etext[], _stext[]; | ||
53 | |||
54 | #ifdef HAVE_BATS | ||
55 | extern phys_addr_t v_mapped_by_bats(unsigned long va); | ||
56 | extern unsigned long p_mapped_by_bats(phys_addr_t pa); | ||
57 | #else /* !HAVE_BATS */ | ||
58 | #define v_mapped_by_bats(x) (0UL) | ||
59 | #define p_mapped_by_bats(x) (0UL) | ||
60 | #endif /* HAVE_BATS */ | ||
61 | |||
62 | #ifdef HAVE_TLBCAM | ||
63 | extern phys_addr_t v_mapped_by_tlbcam(unsigned long va); | ||
64 | extern unsigned long p_mapped_by_tlbcam(phys_addr_t pa); | ||
65 | #else /* !HAVE_TLBCAM */ | ||
66 | #define v_mapped_by_tlbcam(x) (0UL) | ||
67 | #define p_mapped_by_tlbcam(x) (0UL) | ||
68 | #endif /* HAVE_TLBCAM */ | ||
69 | 44 | ||
70 | #define PGDIR_ORDER (32 + PGD_T_LOG2 - PGDIR_SHIFT) | 45 | #define PGDIR_ORDER (32 + PGD_T_LOG2 - PGDIR_SHIFT) |
71 | 46 | ||
@@ -197,7 +172,7 @@ __ioremap_caller(phys_addr_t addr, unsigned long size, unsigned long flags, | |||
197 | /* | 172 | /* |
198 | * Choose an address to map it to. | 173 | * Choose an address to map it to. |
199 | * Once the vmalloc system is running, we use it. | 174 | * Once the vmalloc system is running, we use it. |
200 | * Before then, we use space going down from ioremap_base | 175 | * Before then, we use space going down from IOREMAP_TOP |
201 | * (ioremap_bot records where we're up to). | 176 | * (ioremap_bot records where we're up to). |
202 | */ | 177 | */ |
203 | p = addr & PAGE_MASK; | 178 | p = addr & PAGE_MASK; |
@@ -228,19 +203,10 @@ __ioremap_caller(phys_addr_t addr, unsigned long size, unsigned long flags, | |||
228 | 203 | ||
229 | /* | 204 | /* |
230 | * Is it already mapped? Perhaps overlapped by a previous | 205 | * Is it already mapped? Perhaps overlapped by a previous |
231 | * BAT mapping. If the whole area is mapped then we're done, | 206 | * mapping. |
232 | * otherwise remap it since we want to keep the virt addrs for | ||
233 | * each request contiguous. | ||
234 | * | ||
235 | * We make the assumption here that if the bottom and top | ||
236 | * of the range we want are mapped then it's mapped to the | ||
237 | * same virt address (and this is contiguous). | ||
238 | * -- Cort | ||
239 | */ | 207 | */ |
240 | if ((v = p_mapped_by_bats(p)) /*&& p_mapped_by_bats(p+size-1)*/ ) | 208 | v = p_block_mapped(p); |
241 | goto out; | 209 | if (v) |
242 | |||
243 | if ((v = p_mapped_by_tlbcam(p))) | ||
244 | goto out; | 210 | goto out; |
245 | 211 | ||
246 | if (slab_is_available()) { | 212 | if (slab_is_available()) { |
@@ -278,7 +244,8 @@ void iounmap(volatile void __iomem *addr) | |||
278 | * If mapped by BATs then there is nothing to do. | 244 | * If mapped by BATs then there is nothing to do. |
279 | * Calling vfree() generates a benign warning. | 245 | * Calling vfree() generates a benign warning. |
280 | */ | 246 | */ |
281 | if (v_mapped_by_bats((unsigned long)addr)) return; | 247 | if (v_block_mapped((unsigned long)addr)) |
248 | return; | ||
282 | 249 | ||
283 | if (addr > high_memory && (unsigned long) addr < ioremap_bot) | 250 | if (addr > high_memory && (unsigned long) addr < ioremap_bot) |
284 | vunmap((void *) (PAGE_MASK & (unsigned long)addr)); | 251 | vunmap((void *) (PAGE_MASK & (unsigned long)addr)); |
@@ -322,7 +289,8 @@ void __init __mapin_ram_chunk(unsigned long offset, unsigned long top) | |||
322 | v = PAGE_OFFSET + s; | 289 | v = PAGE_OFFSET + s; |
323 | p = memstart_addr + s; | 290 | p = memstart_addr + s; |
324 | for (; s < top; s += PAGE_SIZE) { | 291 | for (; s < top; s += PAGE_SIZE) { |
325 | ktext = ((char *) v >= _stext && (char *) v < etext); | 292 | ktext = ((char *)v >= _stext && (char *)v < etext) || |
293 | ((char *)v >= _sinittext && (char *)v < _einittext); | ||
326 | f = ktext ? pgprot_val(PAGE_KERNEL_TEXT) : pgprot_val(PAGE_KERNEL); | 294 | f = ktext ? pgprot_val(PAGE_KERNEL_TEXT) : pgprot_val(PAGE_KERNEL); |
327 | map_page(v, p, f); | 295 | map_page(v, p, f); |
328 | #ifdef CONFIG_PPC_STD_MMU_32 | 296 | #ifdef CONFIG_PPC_STD_MMU_32 |
@@ -403,7 +371,7 @@ static int __change_page_attr(struct page *page, pgprot_t prot) | |||
403 | BUG_ON(PageHighMem(page)); | 371 | BUG_ON(PageHighMem(page)); |
404 | address = (unsigned long)page_address(page); | 372 | address = (unsigned long)page_address(page); |
405 | 373 | ||
406 | if (v_mapped_by_bats(address) || v_mapped_by_tlbcam(address)) | 374 | if (v_block_mapped(address)) |
407 | return 0; | 375 | return 0; |
408 | if (!get_pteptr(&init_mm, address, &kpte, &kpmd)) | 376 | if (!get_pteptr(&init_mm, address, &kpte, &kpmd)) |
409 | return -EINVAL; | 377 | return -EINVAL; |
diff --git a/arch/powerpc/mm/ppc_mmu_32.c b/arch/powerpc/mm/ppc_mmu_32.c index 6b2f3e457171..2a049fb8523d 100644 --- a/arch/powerpc/mm/ppc_mmu_32.c +++ b/arch/powerpc/mm/ppc_mmu_32.c | |||
@@ -49,7 +49,7 @@ struct batrange { /* stores address ranges mapped by BATs */ | |||
49 | /* | 49 | /* |
50 | * Return PA for this VA if it is mapped by a BAT, or 0 | 50 | * Return PA for this VA if it is mapped by a BAT, or 0 |
51 | */ | 51 | */ |
52 | phys_addr_t v_mapped_by_bats(unsigned long va) | 52 | phys_addr_t v_block_mapped(unsigned long va) |
53 | { | 53 | { |
54 | int b; | 54 | int b; |
55 | for (b = 0; b < 4; ++b) | 55 | for (b = 0; b < 4; ++b) |
@@ -61,7 +61,7 @@ phys_addr_t v_mapped_by_bats(unsigned long va) | |||
61 | /* | 61 | /* |
62 | * Return VA for a given PA or 0 if not mapped | 62 | * Return VA for a given PA or 0 if not mapped |
63 | */ | 63 | */ |
64 | unsigned long p_mapped_by_bats(phys_addr_t pa) | 64 | unsigned long p_block_mapped(phys_addr_t pa) |
65 | { | 65 | { |
66 | int b; | 66 | int b; |
67 | for (b = 0; b < 4; ++b) | 67 | for (b = 0; b < 4; ++b) |
diff --git a/arch/powerpc/mm/tlb_nohash.c b/arch/powerpc/mm/tlb_nohash.c index bb04e4df3100..f4668488512c 100644 --- a/arch/powerpc/mm/tlb_nohash.c +++ b/arch/powerpc/mm/tlb_nohash.c | |||
@@ -640,9 +640,7 @@ static void early_init_this_mmu(void) | |||
640 | * transient mapping would cause problems. | 640 | * transient mapping would cause problems. |
641 | */ | 641 | */ |
642 | #ifdef CONFIG_SMP | 642 | #ifdef CONFIG_SMP |
643 | if (cpu != boot_cpuid && | 643 | if (hweight32(get_tensr()) > 1) |
644 | (cpu != cpu_first_thread_sibling(cpu) || | ||
645 | cpu == cpu_first_thread_sibling(boot_cpuid))) | ||
646 | map = false; | 644 | map = false; |
647 | #endif | 645 | #endif |
648 | 646 | ||
diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig index 97915feffd42..e626461a63bd 100644 --- a/arch/powerpc/platforms/85xx/Kconfig +++ b/arch/powerpc/platforms/85xx/Kconfig | |||
@@ -8,6 +8,7 @@ menuconfig FSL_SOC_BOOKE | |||
8 | select FSL_PCI if PCI | 8 | select FSL_PCI if PCI |
9 | select SERIAL_8250_EXTENDED if SERIAL_8250 | 9 | select SERIAL_8250_EXTENDED if SERIAL_8250 |
10 | select SERIAL_8250_SHARE_IRQ if SERIAL_8250 | 10 | select SERIAL_8250_SHARE_IRQ if SERIAL_8250 |
11 | select FSL_CORENET_RCPM if PPC_E500MC | ||
11 | default y | 12 | default y |
12 | 13 | ||
13 | if FSL_SOC_BOOKE | 14 | if FSL_SOC_BOOKE |
diff --git a/arch/powerpc/platforms/85xx/Makefile b/arch/powerpc/platforms/85xx/Makefile index 1fe7fb95175a..7bc86dae9517 100644 --- a/arch/powerpc/platforms/85xx/Makefile +++ b/arch/powerpc/platforms/85xx/Makefile | |||
@@ -2,6 +2,7 @@ | |||
2 | # Makefile for the PowerPC 85xx linux kernel. | 2 | # Makefile for the PowerPC 85xx linux kernel. |
3 | # | 3 | # |
4 | obj-$(CONFIG_SMP) += smp.o | 4 | obj-$(CONFIG_SMP) += smp.o |
5 | obj-$(CONFIG_FSL_PMC) += mpc85xx_pm_ops.o | ||
5 | 6 | ||
6 | obj-y += common.o | 7 | obj-y += common.o |
7 | 8 | ||
diff --git a/arch/powerpc/platforms/85xx/common.c b/arch/powerpc/platforms/85xx/common.c index 949f22c86e61..28720a4ded7b 100644 --- a/arch/powerpc/platforms/85xx/common.c +++ b/arch/powerpc/platforms/85xx/common.c | |||
@@ -9,11 +9,14 @@ | |||
9 | #include <linux/of_irq.h> | 9 | #include <linux/of_irq.h> |
10 | #include <linux/of_platform.h> | 10 | #include <linux/of_platform.h> |
11 | 11 | ||
12 | #include <asm/fsl_pm.h> | ||
12 | #include <soc/fsl/qe/qe.h> | 13 | #include <soc/fsl/qe/qe.h> |
13 | #include <sysdev/cpm2_pic.h> | 14 | #include <sysdev/cpm2_pic.h> |
14 | 15 | ||
15 | #include "mpc85xx.h" | 16 | #include "mpc85xx.h" |
16 | 17 | ||
18 | const struct fsl_pm_ops *qoriq_pm_ops; | ||
19 | |||
17 | static const struct of_device_id mpc85xx_common_ids[] __initconst = { | 20 | static const struct of_device_id mpc85xx_common_ids[] __initconst = { |
18 | { .type = "soc", }, | 21 | { .type = "soc", }, |
19 | { .compatible = "soc", }, | 22 | { .compatible = "soc", }, |
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_pm_ops.c b/arch/powerpc/platforms/85xx/mpc85xx_pm_ops.c new file mode 100644 index 000000000000..f05325f0cc03 --- /dev/null +++ b/arch/powerpc/platforms/85xx/mpc85xx_pm_ops.c | |||
@@ -0,0 +1,106 @@ | |||
1 | /* | ||
2 | * MPC85xx PM operators | ||
3 | * | ||
4 | * Copyright 2015 Freescale Semiconductor 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 | |||
12 | #define pr_fmt(fmt) "%s: " fmt, __func__ | ||
13 | |||
14 | #include <linux/kernel.h> | ||
15 | #include <linux/of.h> | ||
16 | #include <linux/of_address.h> | ||
17 | #include <linux/fsl/guts.h> | ||
18 | |||
19 | #include <asm/io.h> | ||
20 | #include <asm/fsl_pm.h> | ||
21 | |||
22 | static struct ccsr_guts __iomem *guts; | ||
23 | |||
24 | static void mpc85xx_irq_mask(int cpu) | ||
25 | { | ||
26 | |||
27 | } | ||
28 | |||
29 | static void mpc85xx_irq_unmask(int cpu) | ||
30 | { | ||
31 | |||
32 | } | ||
33 | |||
34 | static void mpc85xx_cpu_die(int cpu) | ||
35 | { | ||
36 | u32 tmp; | ||
37 | |||
38 | tmp = (mfspr(SPRN_HID0) & ~(HID0_DOZE|HID0_SLEEP)) | HID0_NAP; | ||
39 | mtspr(SPRN_HID0, tmp); | ||
40 | |||
41 | /* Enter NAP mode. */ | ||
42 | tmp = mfmsr(); | ||
43 | tmp |= MSR_WE; | ||
44 | asm volatile( | ||
45 | "msync\n" | ||
46 | "mtmsr %0\n" | ||
47 | "isync\n" | ||
48 | : | ||
49 | : "r" (tmp)); | ||
50 | } | ||
51 | |||
52 | static void mpc85xx_cpu_up_prepare(int cpu) | ||
53 | { | ||
54 | |||
55 | } | ||
56 | |||
57 | static void mpc85xx_freeze_time_base(bool freeze) | ||
58 | { | ||
59 | uint32_t mask; | ||
60 | |||
61 | mask = CCSR_GUTS_DEVDISR_TB0 | CCSR_GUTS_DEVDISR_TB1; | ||
62 | if (freeze) | ||
63 | setbits32(&guts->devdisr, mask); | ||
64 | else | ||
65 | clrbits32(&guts->devdisr, mask); | ||
66 | |||
67 | in_be32(&guts->devdisr); | ||
68 | } | ||
69 | |||
70 | static const struct of_device_id mpc85xx_smp_guts_ids[] = { | ||
71 | { .compatible = "fsl,mpc8572-guts", }, | ||
72 | { .compatible = "fsl,p1020-guts", }, | ||
73 | { .compatible = "fsl,p1021-guts", }, | ||
74 | { .compatible = "fsl,p1022-guts", }, | ||
75 | { .compatible = "fsl,p1023-guts", }, | ||
76 | { .compatible = "fsl,p2020-guts", }, | ||
77 | { .compatible = "fsl,bsc9132-guts", }, | ||
78 | {}, | ||
79 | }; | ||
80 | |||
81 | static const struct fsl_pm_ops mpc85xx_pm_ops = { | ||
82 | .freeze_time_base = mpc85xx_freeze_time_base, | ||
83 | .irq_mask = mpc85xx_irq_mask, | ||
84 | .irq_unmask = mpc85xx_irq_unmask, | ||
85 | .cpu_die = mpc85xx_cpu_die, | ||
86 | .cpu_up_prepare = mpc85xx_cpu_up_prepare, | ||
87 | }; | ||
88 | |||
89 | int __init mpc85xx_setup_pmc(void) | ||
90 | { | ||
91 | struct device_node *np; | ||
92 | |||
93 | np = of_find_matching_node(NULL, mpc85xx_smp_guts_ids); | ||
94 | if (np) { | ||
95 | guts = of_iomap(np, 0); | ||
96 | of_node_put(np); | ||
97 | if (!guts) { | ||
98 | pr_err("Could not map guts node address\n"); | ||
99 | return -ENOMEM; | ||
100 | } | ||
101 | } | ||
102 | |||
103 | qoriq_pm_ops = &mpc85xx_pm_ops; | ||
104 | |||
105 | return 0; | ||
106 | } | ||
diff --git a/arch/powerpc/platforms/85xx/smp.c b/arch/powerpc/platforms/85xx/smp.c index 6b107cea1c08..fe9f19e5e935 100644 --- a/arch/powerpc/platforms/85xx/smp.c +++ b/arch/powerpc/platforms/85xx/smp.c | |||
@@ -2,7 +2,7 @@ | |||
2 | * Author: Andy Fleming <afleming@freescale.com> | 2 | * Author: Andy Fleming <afleming@freescale.com> |
3 | * Kumar Gala <galak@kernel.crashing.org> | 3 | * Kumar Gala <galak@kernel.crashing.org> |
4 | * | 4 | * |
5 | * Copyright 2006-2008, 2011-2012 Freescale Semiconductor Inc. | 5 | * Copyright 2006-2008, 2011-2012, 2015 Freescale Semiconductor Inc. |
6 | * | 6 | * |
7 | * This program is free software; you can redistribute it and/or modify it | 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 | 8 | * under the terms of the GNU General Public License as published by the |
@@ -15,7 +15,6 @@ | |||
15 | #include <linux/init.h> | 15 | #include <linux/init.h> |
16 | #include <linux/delay.h> | 16 | #include <linux/delay.h> |
17 | #include <linux/of.h> | 17 | #include <linux/of.h> |
18 | #include <linux/of_address.h> | ||
19 | #include <linux/kexec.h> | 18 | #include <linux/kexec.h> |
20 | #include <linux/highmem.h> | 19 | #include <linux/highmem.h> |
21 | #include <linux/cpu.h> | 20 | #include <linux/cpu.h> |
@@ -29,6 +28,7 @@ | |||
29 | #include <asm/dbell.h> | 28 | #include <asm/dbell.h> |
30 | #include <asm/code-patching.h> | 29 | #include <asm/code-patching.h> |
31 | #include <asm/cputhreads.h> | 30 | #include <asm/cputhreads.h> |
31 | #include <asm/fsl_pm.h> | ||
32 | 32 | ||
33 | #include <sysdev/fsl_soc.h> | 33 | #include <sysdev/fsl_soc.h> |
34 | #include <sysdev/mpic.h> | 34 | #include <sysdev/mpic.h> |
@@ -43,35 +43,23 @@ struct epapr_spin_table { | |||
43 | u32 pir; | 43 | u32 pir; |
44 | }; | 44 | }; |
45 | 45 | ||
46 | static struct ccsr_guts __iomem *guts; | 46 | #ifdef CONFIG_HOTPLUG_CPU |
47 | static u64 timebase; | 47 | static u64 timebase; |
48 | static int tb_req; | 48 | static int tb_req; |
49 | static int tb_valid; | 49 | static int tb_valid; |
50 | 50 | ||
51 | static void mpc85xx_timebase_freeze(int freeze) | ||
52 | { | ||
53 | uint32_t mask; | ||
54 | |||
55 | mask = CCSR_GUTS_DEVDISR_TB0 | CCSR_GUTS_DEVDISR_TB1; | ||
56 | if (freeze) | ||
57 | setbits32(&guts->devdisr, mask); | ||
58 | else | ||
59 | clrbits32(&guts->devdisr, mask); | ||
60 | |||
61 | in_be32(&guts->devdisr); | ||
62 | } | ||
63 | |||
64 | static void mpc85xx_give_timebase(void) | 51 | static void mpc85xx_give_timebase(void) |
65 | { | 52 | { |
66 | unsigned long flags; | 53 | unsigned long flags; |
67 | 54 | ||
68 | local_irq_save(flags); | 55 | local_irq_save(flags); |
56 | hard_irq_disable(); | ||
69 | 57 | ||
70 | while (!tb_req) | 58 | while (!tb_req) |
71 | barrier(); | 59 | barrier(); |
72 | tb_req = 0; | 60 | tb_req = 0; |
73 | 61 | ||
74 | mpc85xx_timebase_freeze(1); | 62 | qoriq_pm_ops->freeze_time_base(true); |
75 | #ifdef CONFIG_PPC64 | 63 | #ifdef CONFIG_PPC64 |
76 | /* | 64 | /* |
77 | * e5500/e6500 have a workaround for erratum A-006958 in place | 65 | * e5500/e6500 have a workaround for erratum A-006958 in place |
@@ -104,7 +92,7 @@ static void mpc85xx_give_timebase(void) | |||
104 | while (tb_valid) | 92 | while (tb_valid) |
105 | barrier(); | 93 | barrier(); |
106 | 94 | ||
107 | mpc85xx_timebase_freeze(0); | 95 | qoriq_pm_ops->freeze_time_base(false); |
108 | 96 | ||
109 | local_irq_restore(flags); | 97 | local_irq_restore(flags); |
110 | } | 98 | } |
@@ -114,6 +102,7 @@ static void mpc85xx_take_timebase(void) | |||
114 | unsigned long flags; | 102 | unsigned long flags; |
115 | 103 | ||
116 | local_irq_save(flags); | 104 | local_irq_save(flags); |
105 | hard_irq_disable(); | ||
117 | 106 | ||
118 | tb_req = 1; | 107 | tb_req = 1; |
119 | while (!tb_valid) | 108 | while (!tb_valid) |
@@ -126,36 +115,54 @@ static void mpc85xx_take_timebase(void) | |||
126 | local_irq_restore(flags); | 115 | local_irq_restore(flags); |
127 | } | 116 | } |
128 | 117 | ||
129 | #ifdef CONFIG_HOTPLUG_CPU | ||
130 | static void smp_85xx_mach_cpu_die(void) | 118 | static void smp_85xx_mach_cpu_die(void) |
131 | { | 119 | { |
132 | unsigned int cpu = smp_processor_id(); | 120 | unsigned int cpu = smp_processor_id(); |
133 | u32 tmp; | ||
134 | 121 | ||
135 | local_irq_disable(); | 122 | local_irq_disable(); |
123 | hard_irq_disable(); | ||
124 | /* mask all irqs to prevent cpu wakeup */ | ||
125 | qoriq_pm_ops->irq_mask(cpu); | ||
126 | |||
136 | idle_task_exit(); | 127 | idle_task_exit(); |
137 | generic_set_cpu_dead(cpu); | ||
138 | mb(); | ||
139 | 128 | ||
140 | mtspr(SPRN_TCR, 0); | 129 | mtspr(SPRN_TCR, 0); |
130 | mtspr(SPRN_TSR, mfspr(SPRN_TSR)); | ||
141 | 131 | ||
142 | __flush_disable_L1(); | 132 | generic_set_cpu_dead(cpu); |
143 | tmp = (mfspr(SPRN_HID0) & ~(HID0_DOZE|HID0_SLEEP)) | HID0_NAP; | ||
144 | mtspr(SPRN_HID0, tmp); | ||
145 | isync(); | ||
146 | 133 | ||
147 | /* Enter NAP mode. */ | 134 | cur_cpu_spec->cpu_down_flush(); |
148 | tmp = mfmsr(); | 135 | |
149 | tmp |= MSR_WE; | 136 | qoriq_pm_ops->cpu_die(cpu); |
150 | mb(); | ||
151 | mtmsr(tmp); | ||
152 | isync(); | ||
153 | 137 | ||
154 | while (1) | 138 | while (1) |
155 | ; | 139 | ; |
156 | } | 140 | } |
141 | |||
142 | static void qoriq_cpu_kill(unsigned int cpu) | ||
143 | { | ||
144 | int i; | ||
145 | |||
146 | for (i = 0; i < 500; i++) { | ||
147 | if (is_cpu_dead(cpu)) { | ||
148 | #ifdef CONFIG_PPC64 | ||
149 | paca[cpu].cpu_start = 0; | ||
150 | #endif | ||
151 | return; | ||
152 | } | ||
153 | msleep(20); | ||
154 | } | ||
155 | pr_err("CPU%d didn't die...\n", cpu); | ||
156 | } | ||
157 | #endif | 157 | #endif |
158 | 158 | ||
159 | /* | ||
160 | * To keep it compatible with old boot program which uses | ||
161 | * cache-inhibit spin table, we need to flush the cache | ||
162 | * before accessing spin table to invalidate any staled data. | ||
163 | * We also need to flush the cache after writing to spin | ||
164 | * table to push data out. | ||
165 | */ | ||
159 | static inline void flush_spin_table(void *spin_table) | 166 | static inline void flush_spin_table(void *spin_table) |
160 | { | 167 | { |
161 | flush_dcache_range((ulong)spin_table, | 168 | flush_dcache_range((ulong)spin_table, |
@@ -173,78 +180,28 @@ static inline u32 read_spin_table_addr_l(void *spin_table) | |||
173 | static void wake_hw_thread(void *info) | 180 | static void wake_hw_thread(void *info) |
174 | { | 181 | { |
175 | void fsl_secondary_thread_init(void); | 182 | void fsl_secondary_thread_init(void); |
176 | unsigned long imsr, inia; | 183 | unsigned long inia; |
177 | int nr = *(const int *)info; | 184 | int cpu = *(const int *)info; |
178 | 185 | ||
179 | imsr = MSR_KERNEL; | ||
180 | inia = *(unsigned long *)fsl_secondary_thread_init; | 186 | inia = *(unsigned long *)fsl_secondary_thread_init; |
181 | 187 | book3e_start_thread(cpu_thread_in_core(cpu), inia); | |
182 | if (cpu_thread_in_core(nr) == 0) { | ||
183 | /* For when we boot on a secondary thread with kdump */ | ||
184 | mttmr(TMRN_IMSR0, imsr); | ||
185 | mttmr(TMRN_INIA0, inia); | ||
186 | mtspr(SPRN_TENS, TEN_THREAD(0)); | ||
187 | } else { | ||
188 | mttmr(TMRN_IMSR1, imsr); | ||
189 | mttmr(TMRN_INIA1, inia); | ||
190 | mtspr(SPRN_TENS, TEN_THREAD(1)); | ||
191 | } | ||
192 | |||
193 | smp_generic_kick_cpu(nr); | ||
194 | } | 188 | } |
195 | #endif | 189 | #endif |
196 | 190 | ||
197 | static int smp_85xx_kick_cpu(int nr) | 191 | static int smp_85xx_start_cpu(int cpu) |
198 | { | 192 | { |
199 | unsigned long flags; | 193 | int ret = 0; |
200 | const u64 *cpu_rel_addr; | ||
201 | __iomem struct epapr_spin_table *spin_table; | ||
202 | struct device_node *np; | 194 | struct device_node *np; |
203 | int hw_cpu = get_hard_smp_processor_id(nr); | 195 | const u64 *cpu_rel_addr; |
196 | unsigned long flags; | ||
204 | int ioremappable; | 197 | int ioremappable; |
205 | int ret = 0; | 198 | int hw_cpu = get_hard_smp_processor_id(cpu); |
206 | 199 | struct epapr_spin_table __iomem *spin_table; | |
207 | WARN_ON(nr < 0 || nr >= NR_CPUS); | ||
208 | WARN_ON(hw_cpu < 0 || hw_cpu >= NR_CPUS); | ||
209 | |||
210 | pr_debug("smp_85xx_kick_cpu: kick CPU #%d\n", nr); | ||
211 | |||
212 | #ifdef CONFIG_PPC64 | ||
213 | /* Threads don't use the spin table */ | ||
214 | if (cpu_thread_in_core(nr) != 0) { | ||
215 | int primary = cpu_first_thread_sibling(nr); | ||
216 | |||
217 | if (WARN_ON_ONCE(!cpu_has_feature(CPU_FTR_SMT))) | ||
218 | return -ENOENT; | ||
219 | |||
220 | if (cpu_thread_in_core(nr) != 1) { | ||
221 | pr_err("%s: cpu %d: invalid hw thread %d\n", | ||
222 | __func__, nr, cpu_thread_in_core(nr)); | ||
223 | return -ENOENT; | ||
224 | } | ||
225 | 200 | ||
226 | if (!cpu_online(primary)) { | 201 | np = of_get_cpu_node(cpu, NULL); |
227 | pr_err("%s: cpu %d: primary %d not online\n", | ||
228 | __func__, nr, primary); | ||
229 | return -ENOENT; | ||
230 | } | ||
231 | |||
232 | smp_call_function_single(primary, wake_hw_thread, &nr, 0); | ||
233 | return 0; | ||
234 | } else if (cpu_thread_in_core(boot_cpuid) != 0 && | ||
235 | cpu_first_thread_sibling(boot_cpuid) == nr) { | ||
236 | if (WARN_ON_ONCE(!cpu_has_feature(CPU_FTR_SMT))) | ||
237 | return -ENOENT; | ||
238 | |||
239 | smp_call_function_single(boot_cpuid, wake_hw_thread, &nr, 0); | ||
240 | } | ||
241 | #endif | ||
242 | |||
243 | np = of_get_cpu_node(nr, NULL); | ||
244 | cpu_rel_addr = of_get_property(np, "cpu-release-addr", NULL); | 202 | cpu_rel_addr = of_get_property(np, "cpu-release-addr", NULL); |
245 | 203 | if (!cpu_rel_addr) { | |
246 | if (cpu_rel_addr == NULL) { | 204 | pr_err("No cpu-release-addr for cpu %d\n", cpu); |
247 | printk(KERN_ERR "No cpu-release-addr for cpu %d\n", nr); | ||
248 | return -ENOENT; | 205 | return -ENOENT; |
249 | } | 206 | } |
250 | 207 | ||
@@ -264,28 +221,18 @@ static int smp_85xx_kick_cpu(int nr) | |||
264 | spin_table = phys_to_virt(*cpu_rel_addr); | 221 | spin_table = phys_to_virt(*cpu_rel_addr); |
265 | 222 | ||
266 | local_irq_save(flags); | 223 | local_irq_save(flags); |
267 | #ifdef CONFIG_PPC32 | 224 | hard_irq_disable(); |
268 | #ifdef CONFIG_HOTPLUG_CPU | ||
269 | /* Corresponding to generic_set_cpu_dead() */ | ||
270 | generic_set_cpu_up(nr); | ||
271 | 225 | ||
272 | if (system_state == SYSTEM_RUNNING) { | 226 | if (qoriq_pm_ops) |
273 | /* | 227 | qoriq_pm_ops->cpu_up_prepare(cpu); |
274 | * To keep it compatible with old boot program which uses | ||
275 | * cache-inhibit spin table, we need to flush the cache | ||
276 | * before accessing spin table to invalidate any staled data. | ||
277 | * We also need to flush the cache after writing to spin | ||
278 | * table to push data out. | ||
279 | */ | ||
280 | flush_spin_table(spin_table); | ||
281 | out_be32(&spin_table->addr_l, 0); | ||
282 | flush_spin_table(spin_table); | ||
283 | 228 | ||
229 | /* if cpu is not spinning, reset it */ | ||
230 | if (read_spin_table_addr_l(spin_table) != 1) { | ||
284 | /* | 231 | /* |
285 | * We don't set the BPTR register here since it already points | 232 | * We don't set the BPTR register here since it already points |
286 | * to the boot page properly. | 233 | * to the boot page properly. |
287 | */ | 234 | */ |
288 | mpic_reset_core(nr); | 235 | mpic_reset_core(cpu); |
289 | 236 | ||
290 | /* | 237 | /* |
291 | * wait until core is ready... | 238 | * wait until core is ready... |
@@ -295,40 +242,23 @@ static int smp_85xx_kick_cpu(int nr) | |||
295 | if (!spin_event_timeout( | 242 | if (!spin_event_timeout( |
296 | read_spin_table_addr_l(spin_table) == 1, | 243 | read_spin_table_addr_l(spin_table) == 1, |
297 | 10000, 100)) { | 244 | 10000, 100)) { |
298 | pr_err("%s: timeout waiting for core %d to reset\n", | 245 | pr_err("timeout waiting for cpu %d to reset\n", |
299 | __func__, hw_cpu); | 246 | hw_cpu); |
300 | ret = -ENOENT; | 247 | ret = -EAGAIN; |
301 | goto out; | 248 | goto err; |
302 | } | 249 | } |
303 | |||
304 | /* clear the acknowledge status */ | ||
305 | __secondary_hold_acknowledge = -1; | ||
306 | } | 250 | } |
307 | #endif | ||
308 | flush_spin_table(spin_table); | ||
309 | out_be32(&spin_table->pir, hw_cpu); | ||
310 | out_be32(&spin_table->addr_l, __pa(__early_start)); | ||
311 | flush_spin_table(spin_table); | ||
312 | |||
313 | /* Wait a bit for the CPU to ack. */ | ||
314 | if (!spin_event_timeout(__secondary_hold_acknowledge == hw_cpu, | ||
315 | 10000, 100)) { | ||
316 | pr_err("%s: timeout waiting for core %d to ack\n", | ||
317 | __func__, hw_cpu); | ||
318 | ret = -ENOENT; | ||
319 | goto out; | ||
320 | } | ||
321 | out: | ||
322 | #else | ||
323 | smp_generic_kick_cpu(nr); | ||
324 | 251 | ||
325 | flush_spin_table(spin_table); | 252 | flush_spin_table(spin_table); |
326 | out_be32(&spin_table->pir, hw_cpu); | 253 | out_be32(&spin_table->pir, hw_cpu); |
254 | #ifdef CONFIG_PPC64 | ||
327 | out_be64((u64 *)(&spin_table->addr_h), | 255 | out_be64((u64 *)(&spin_table->addr_h), |
328 | __pa(ppc_function_entry(generic_secondary_smp_init))); | 256 | __pa(ppc_function_entry(generic_secondary_smp_init))); |
329 | flush_spin_table(spin_table); | 257 | #else |
258 | out_be32(&spin_table->addr_l, __pa(__early_start)); | ||
330 | #endif | 259 | #endif |
331 | 260 | flush_spin_table(spin_table); | |
261 | err: | ||
332 | local_irq_restore(flags); | 262 | local_irq_restore(flags); |
333 | 263 | ||
334 | if (ioremappable) | 264 | if (ioremappable) |
@@ -337,6 +267,81 @@ out: | |||
337 | return ret; | 267 | return ret; |
338 | } | 268 | } |
339 | 269 | ||
270 | static int smp_85xx_kick_cpu(int nr) | ||
271 | { | ||
272 | int ret = 0; | ||
273 | #ifdef CONFIG_PPC64 | ||
274 | int primary = nr; | ||
275 | #endif | ||
276 | |||
277 | WARN_ON(nr < 0 || nr >= num_possible_cpus()); | ||
278 | |||
279 | pr_debug("kick CPU #%d\n", nr); | ||
280 | |||
281 | #ifdef CONFIG_PPC64 | ||
282 | if (threads_per_core == 2) { | ||
283 | if (WARN_ON_ONCE(!cpu_has_feature(CPU_FTR_SMT))) | ||
284 | return -ENOENT; | ||
285 | |||
286 | booting_thread_hwid = cpu_thread_in_core(nr); | ||
287 | primary = cpu_first_thread_sibling(nr); | ||
288 | |||
289 | if (qoriq_pm_ops) | ||
290 | qoriq_pm_ops->cpu_up_prepare(nr); | ||
291 | |||
292 | /* | ||
293 | * If either thread in the core is online, use it to start | ||
294 | * the other. | ||
295 | */ | ||
296 | if (cpu_online(primary)) { | ||
297 | smp_call_function_single(primary, | ||
298 | wake_hw_thread, &nr, 1); | ||
299 | goto done; | ||
300 | } else if (cpu_online(primary + 1)) { | ||
301 | smp_call_function_single(primary + 1, | ||
302 | wake_hw_thread, &nr, 1); | ||
303 | goto done; | ||
304 | } | ||
305 | |||
306 | /* | ||
307 | * If getting here, it means both threads in the core are | ||
308 | * offline. So start the primary thread, then it will start | ||
309 | * the thread specified in booting_thread_hwid, the one | ||
310 | * corresponding to nr. | ||
311 | */ | ||
312 | |||
313 | } else if (threads_per_core == 1) { | ||
314 | /* | ||
315 | * If one core has only one thread, set booting_thread_hwid to | ||
316 | * an invalid value. | ||
317 | */ | ||
318 | booting_thread_hwid = INVALID_THREAD_HWID; | ||
319 | |||
320 | } else if (threads_per_core > 2) { | ||
321 | pr_err("Do not support more than 2 threads per CPU."); | ||
322 | return -EINVAL; | ||
323 | } | ||
324 | |||
325 | ret = smp_85xx_start_cpu(primary); | ||
326 | if (ret) | ||
327 | return ret; | ||
328 | |||
329 | done: | ||
330 | paca[nr].cpu_start = 1; | ||
331 | generic_set_cpu_up(nr); | ||
332 | |||
333 | return ret; | ||
334 | #else | ||
335 | ret = smp_85xx_start_cpu(nr); | ||
336 | if (ret) | ||
337 | return ret; | ||
338 | |||
339 | generic_set_cpu_up(nr); | ||
340 | |||
341 | return ret; | ||
342 | #endif | ||
343 | } | ||
344 | |||
340 | struct smp_ops_t smp_85xx_ops = { | 345 | struct smp_ops_t smp_85xx_ops = { |
341 | .kick_cpu = smp_85xx_kick_cpu, | 346 | .kick_cpu = smp_85xx_kick_cpu, |
342 | .cpu_bootable = smp_generic_cpu_bootable, | 347 | .cpu_bootable = smp_generic_cpu_bootable, |
@@ -359,7 +364,7 @@ void mpc85xx_smp_kexec_cpu_down(int crash_shutdown, int secondary) | |||
359 | local_irq_disable(); | 364 | local_irq_disable(); |
360 | 365 | ||
361 | if (secondary) { | 366 | if (secondary) { |
362 | __flush_disable_L1(); | 367 | cur_cpu_spec->cpu_down_flush(); |
363 | atomic_inc(&kexec_down_cpus); | 368 | atomic_inc(&kexec_down_cpus); |
364 | /* loop forever */ | 369 | /* loop forever */ |
365 | while (1); | 370 | while (1); |
@@ -467,16 +472,6 @@ static void smp_85xx_setup_cpu(int cpu_nr) | |||
467 | smp_85xx_basic_setup(cpu_nr); | 472 | smp_85xx_basic_setup(cpu_nr); |
468 | } | 473 | } |
469 | 474 | ||
470 | static const struct of_device_id mpc85xx_smp_guts_ids[] = { | ||
471 | { .compatible = "fsl,mpc8572-guts", }, | ||
472 | { .compatible = "fsl,p1020-guts", }, | ||
473 | { .compatible = "fsl,p1021-guts", }, | ||
474 | { .compatible = "fsl,p1022-guts", }, | ||
475 | { .compatible = "fsl,p1023-guts", }, | ||
476 | { .compatible = "fsl,p2020-guts", }, | ||
477 | {}, | ||
478 | }; | ||
479 | |||
480 | void __init mpc85xx_smp_init(void) | 475 | void __init mpc85xx_smp_init(void) |
481 | { | 476 | { |
482 | struct device_node *np; | 477 | struct device_node *np; |
@@ -500,22 +495,21 @@ void __init mpc85xx_smp_init(void) | |||
500 | smp_85xx_ops.probe = NULL; | 495 | smp_85xx_ops.probe = NULL; |
501 | } | 496 | } |
502 | 497 | ||
503 | np = of_find_matching_node(NULL, mpc85xx_smp_guts_ids); | 498 | #ifdef CONFIG_HOTPLUG_CPU |
504 | if (np) { | 499 | #ifdef CONFIG_FSL_CORENET_RCPM |
505 | guts = of_iomap(np, 0); | 500 | fsl_rcpm_init(); |
506 | of_node_put(np); | 501 | #endif |
507 | if (!guts) { | 502 | |
508 | pr_err("%s: Could not map guts node address\n", | 503 | #ifdef CONFIG_FSL_PMC |
509 | __func__); | 504 | mpc85xx_setup_pmc(); |
510 | return; | 505 | #endif |
511 | } | 506 | if (qoriq_pm_ops) { |
512 | smp_85xx_ops.give_timebase = mpc85xx_give_timebase; | 507 | smp_85xx_ops.give_timebase = mpc85xx_give_timebase; |
513 | smp_85xx_ops.take_timebase = mpc85xx_take_timebase; | 508 | smp_85xx_ops.take_timebase = mpc85xx_take_timebase; |
514 | #ifdef CONFIG_HOTPLUG_CPU | ||
515 | ppc_md.cpu_die = smp_85xx_mach_cpu_die; | 509 | ppc_md.cpu_die = smp_85xx_mach_cpu_die; |
516 | #endif | 510 | smp_85xx_ops.cpu_die = qoriq_cpu_kill; |
517 | } | 511 | } |
518 | 512 | #endif | |
519 | smp_ops = &smp_85xx_ops; | 513 | smp_ops = &smp_85xx_ops; |
520 | 514 | ||
521 | #ifdef CONFIG_KEXEC | 515 | #ifdef CONFIG_KEXEC |
diff --git a/arch/powerpc/platforms/85xx/smp.h b/arch/powerpc/platforms/85xx/smp.h index e2b44933ff19..0b20ae315c53 100644 --- a/arch/powerpc/platforms/85xx/smp.h +++ b/arch/powerpc/platforms/85xx/smp.h | |||
@@ -5,6 +5,7 @@ | |||
5 | 5 | ||
6 | #ifdef CONFIG_SMP | 6 | #ifdef CONFIG_SMP |
7 | void __init mpc85xx_smp_init(void); | 7 | void __init mpc85xx_smp_init(void); |
8 | int __init mpc85xx_setup_pmc(void); | ||
8 | #else | 9 | #else |
9 | static inline void mpc85xx_smp_init(void) | 10 | static inline void mpc85xx_smp_init(void) |
10 | { | 11 | { |
diff --git a/arch/powerpc/platforms/86xx/Makefile b/arch/powerpc/platforms/86xx/Makefile index ede815d6489d..2d889ad7dc89 100644 --- a/arch/powerpc/platforms/86xx/Makefile +++ b/arch/powerpc/platforms/86xx/Makefile | |||
@@ -2,7 +2,7 @@ | |||
2 | # Makefile for the PowerPC 86xx linux kernel. | 2 | # Makefile for the PowerPC 86xx linux kernel. |
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y := pic.o | 5 | obj-y := pic.o common.o |
6 | obj-$(CONFIG_SMP) += mpc86xx_smp.o | 6 | obj-$(CONFIG_SMP) += mpc86xx_smp.o |
7 | obj-$(CONFIG_MPC8641_HPCN) += mpc86xx_hpcn.o | 7 | obj-$(CONFIG_MPC8641_HPCN) += mpc86xx_hpcn.o |
8 | obj-$(CONFIG_SBC8641D) += sbc8641d.o | 8 | obj-$(CONFIG_SBC8641D) += sbc8641d.o |
diff --git a/arch/powerpc/platforms/86xx/common.c b/arch/powerpc/platforms/86xx/common.c new file mode 100644 index 000000000000..0f7b7fcf1ba2 --- /dev/null +++ b/arch/powerpc/platforms/86xx/common.c | |||
@@ -0,0 +1,43 @@ | |||
1 | /* | ||
2 | * Routines common to most mpc86xx-based boards. | ||
3 | * | ||
4 | * This is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 as | ||
6 | * published by the Free Software Foundation. | ||
7 | */ | ||
8 | |||
9 | #include <linux/of_platform.h> | ||
10 | #include <asm/synch.h> | ||
11 | |||
12 | #include "mpc86xx.h" | ||
13 | |||
14 | static const struct of_device_id mpc86xx_common_ids[] __initconst = { | ||
15 | { .type = "soc", }, | ||
16 | { .compatible = "soc", }, | ||
17 | { .compatible = "simple-bus", }, | ||
18 | { .name = "localbus", }, | ||
19 | { .compatible = "gianfar", }, | ||
20 | { .compatible = "fsl,mpc8641-pcie", }, | ||
21 | {}, | ||
22 | }; | ||
23 | |||
24 | int __init mpc86xx_common_publish_devices(void) | ||
25 | { | ||
26 | return of_platform_bus_probe(NULL, mpc86xx_common_ids, NULL); | ||
27 | } | ||
28 | |||
29 | long __init mpc86xx_time_init(void) | ||
30 | { | ||
31 | unsigned int temp; | ||
32 | |||
33 | /* Set the time base to zero */ | ||
34 | mtspr(SPRN_TBWL, 0); | ||
35 | mtspr(SPRN_TBWU, 0); | ||
36 | |||
37 | temp = mfspr(SPRN_HID0); | ||
38 | temp |= HID0_TBEN; | ||
39 | mtspr(SPRN_HID0, temp); | ||
40 | isync(); | ||
41 | |||
42 | return 0; | ||
43 | } | ||
diff --git a/arch/powerpc/platforms/86xx/gef_ppc9a.c b/arch/powerpc/platforms/86xx/gef_ppc9a.c index bf17933b20f3..8e63b752712c 100644 --- a/arch/powerpc/platforms/86xx/gef_ppc9a.c +++ b/arch/powerpc/platforms/86xx/gef_ppc9a.c | |||
@@ -197,37 +197,7 @@ static int __init gef_ppc9a_probe(void) | |||
197 | return 0; | 197 | return 0; |
198 | } | 198 | } |
199 | 199 | ||
200 | static long __init mpc86xx_time_init(void) | 200 | machine_arch_initcall(gef_ppc9a, mpc86xx_common_publish_devices); |
201 | { | ||
202 | unsigned int temp; | ||
203 | |||
204 | /* Set the time base to zero */ | ||
205 | mtspr(SPRN_TBWL, 0); | ||
206 | mtspr(SPRN_TBWU, 0); | ||
207 | |||
208 | temp = mfspr(SPRN_HID0); | ||
209 | temp |= HID0_TBEN; | ||
210 | mtspr(SPRN_HID0, temp); | ||
211 | asm volatile("isync"); | ||
212 | |||
213 | return 0; | ||
214 | } | ||
215 | |||
216 | static const struct of_device_id of_bus_ids[] __initconst = { | ||
217 | { .compatible = "simple-bus", }, | ||
218 | { .compatible = "gianfar", }, | ||
219 | { .compatible = "fsl,mpc8641-pcie", }, | ||
220 | {}, | ||
221 | }; | ||
222 | |||
223 | static int __init declare_of_platform_devices(void) | ||
224 | { | ||
225 | printk(KERN_DEBUG "Probe platform devices\n"); | ||
226 | of_platform_bus_probe(NULL, of_bus_ids, NULL); | ||
227 | |||
228 | return 0; | ||
229 | } | ||
230 | machine_arch_initcall(gef_ppc9a, declare_of_platform_devices); | ||
231 | 201 | ||
232 | define_machine(gef_ppc9a) { | 202 | define_machine(gef_ppc9a) { |
233 | .name = "GE PPC9A", | 203 | .name = "GE PPC9A", |
diff --git a/arch/powerpc/platforms/86xx/gef_sbc310.c b/arch/powerpc/platforms/86xx/gef_sbc310.c index 8facf5873866..0e0be94f551f 100644 --- a/arch/powerpc/platforms/86xx/gef_sbc310.c +++ b/arch/powerpc/platforms/86xx/gef_sbc310.c | |||
@@ -184,37 +184,7 @@ static int __init gef_sbc310_probe(void) | |||
184 | return 0; | 184 | return 0; |
185 | } | 185 | } |
186 | 186 | ||
187 | static long __init mpc86xx_time_init(void) | 187 | machine_arch_initcall(gef_sbc310, mpc86xx_common_publish_devices); |
188 | { | ||
189 | unsigned int temp; | ||
190 | |||
191 | /* Set the time base to zero */ | ||
192 | mtspr(SPRN_TBWL, 0); | ||
193 | mtspr(SPRN_TBWU, 0); | ||
194 | |||
195 | temp = mfspr(SPRN_HID0); | ||
196 | temp |= HID0_TBEN; | ||
197 | mtspr(SPRN_HID0, temp); | ||
198 | asm volatile("isync"); | ||
199 | |||
200 | return 0; | ||
201 | } | ||
202 | |||
203 | static const struct of_device_id of_bus_ids[] __initconst = { | ||
204 | { .compatible = "simple-bus", }, | ||
205 | { .compatible = "gianfar", }, | ||
206 | { .compatible = "fsl,mpc8641-pcie", }, | ||
207 | {}, | ||
208 | }; | ||
209 | |||
210 | static int __init declare_of_platform_devices(void) | ||
211 | { | ||
212 | printk(KERN_DEBUG "Probe platform devices\n"); | ||
213 | of_platform_bus_probe(NULL, of_bus_ids, NULL); | ||
214 | |||
215 | return 0; | ||
216 | } | ||
217 | machine_arch_initcall(gef_sbc310, declare_of_platform_devices); | ||
218 | 188 | ||
219 | define_machine(gef_sbc310) { | 189 | define_machine(gef_sbc310) { |
220 | .name = "GE SBC310", | 190 | .name = "GE SBC310", |
diff --git a/arch/powerpc/platforms/86xx/gef_sbc610.c b/arch/powerpc/platforms/86xx/gef_sbc610.c index 8c9058df5642..e8292b492d7e 100644 --- a/arch/powerpc/platforms/86xx/gef_sbc610.c +++ b/arch/powerpc/platforms/86xx/gef_sbc610.c | |||
@@ -174,37 +174,7 @@ static int __init gef_sbc610_probe(void) | |||
174 | return 0; | 174 | return 0; |
175 | } | 175 | } |
176 | 176 | ||
177 | static long __init mpc86xx_time_init(void) | 177 | machine_arch_initcall(gef_sbc610, mpc86xx_common_publish_devices); |
178 | { | ||
179 | unsigned int temp; | ||
180 | |||
181 | /* Set the time base to zero */ | ||
182 | mtspr(SPRN_TBWL, 0); | ||
183 | mtspr(SPRN_TBWU, 0); | ||
184 | |||
185 | temp = mfspr(SPRN_HID0); | ||
186 | temp |= HID0_TBEN; | ||
187 | mtspr(SPRN_HID0, temp); | ||
188 | asm volatile("isync"); | ||
189 | |||
190 | return 0; | ||
191 | } | ||
192 | |||
193 | static const struct of_device_id of_bus_ids[] __initconst = { | ||
194 | { .compatible = "simple-bus", }, | ||
195 | { .compatible = "gianfar", }, | ||
196 | { .compatible = "fsl,mpc8641-pcie", }, | ||
197 | {}, | ||
198 | }; | ||
199 | |||
200 | static int __init declare_of_platform_devices(void) | ||
201 | { | ||
202 | printk(KERN_DEBUG "Probe platform devices\n"); | ||
203 | of_platform_bus_probe(NULL, of_bus_ids, NULL); | ||
204 | |||
205 | return 0; | ||
206 | } | ||
207 | machine_arch_initcall(gef_sbc610, declare_of_platform_devices); | ||
208 | 178 | ||
209 | define_machine(gef_sbc610) { | 179 | define_machine(gef_sbc610) { |
210 | .name = "GE SBC610", | 180 | .name = "GE SBC610", |
diff --git a/arch/powerpc/platforms/86xx/mpc8610_hpcd.c b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c index 437a9c372ae1..957473e5c8e5 100644 --- a/arch/powerpc/platforms/86xx/mpc8610_hpcd.c +++ b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c | |||
@@ -88,12 +88,10 @@ static inline void mpc8610_suspend_init(void) { } | |||
88 | static const struct of_device_id mpc8610_ids[] __initconst = { | 88 | static const struct of_device_id mpc8610_ids[] __initconst = { |
89 | { .compatible = "fsl,mpc8610-immr", }, | 89 | { .compatible = "fsl,mpc8610-immr", }, |
90 | { .compatible = "fsl,mpc8610-guts", }, | 90 | { .compatible = "fsl,mpc8610-guts", }, |
91 | { .compatible = "simple-bus", }, | ||
92 | /* So that the DMA channel nodes can be probed individually: */ | 91 | /* So that the DMA channel nodes can be probed individually: */ |
93 | { .compatible = "fsl,eloplus-dma", }, | 92 | { .compatible = "fsl,eloplus-dma", }, |
94 | /* PCI controllers */ | 93 | /* PCI controllers */ |
95 | { .compatible = "fsl,mpc8610-pci", }, | 94 | { .compatible = "fsl,mpc8610-pci", }, |
96 | { .compatible = "fsl,mpc8641-pcie", }, | ||
97 | {} | 95 | {} |
98 | }; | 96 | }; |
99 | 97 | ||
@@ -105,6 +103,8 @@ static int __init mpc8610_declare_of_platform_devices(void) | |||
105 | /* Enable wakeup on PIXIS' event IRQ. */ | 103 | /* Enable wakeup on PIXIS' event IRQ. */ |
106 | mpc8610_suspend_init(); | 104 | mpc8610_suspend_init(); |
107 | 105 | ||
106 | mpc86xx_common_publish_devices(); | ||
107 | |||
108 | /* Without this call, the SSI device driver won't get probed. */ | 108 | /* Without this call, the SSI device driver won't get probed. */ |
109 | of_platform_bus_probe(NULL, mpc8610_ids, NULL); | 109 | of_platform_bus_probe(NULL, mpc8610_ids, NULL); |
110 | 110 | ||
@@ -327,22 +327,6 @@ static int __init mpc86xx_hpcd_probe(void) | |||
327 | return 0; | 327 | return 0; |
328 | } | 328 | } |
329 | 329 | ||
330 | static long __init mpc86xx_time_init(void) | ||
331 | { | ||
332 | unsigned int temp; | ||
333 | |||
334 | /* Set the time base to zero */ | ||
335 | mtspr(SPRN_TBWL, 0); | ||
336 | mtspr(SPRN_TBWU, 0); | ||
337 | |||
338 | temp = mfspr(SPRN_HID0); | ||
339 | temp |= HID0_TBEN; | ||
340 | mtspr(SPRN_HID0, temp); | ||
341 | asm volatile("isync"); | ||
342 | |||
343 | return 0; | ||
344 | } | ||
345 | |||
346 | define_machine(mpc86xx_hpcd) { | 330 | define_machine(mpc86xx_hpcd) { |
347 | .name = "MPC86xx HPCD", | 331 | .name = "MPC86xx HPCD", |
348 | .probe = mpc86xx_hpcd_probe, | 332 | .probe = mpc86xx_hpcd_probe, |
diff --git a/arch/powerpc/platforms/86xx/mpc86xx.h b/arch/powerpc/platforms/86xx/mpc86xx.h index 08efb57559d1..53500db6b644 100644 --- a/arch/powerpc/platforms/86xx/mpc86xx.h +++ b/arch/powerpc/platforms/86xx/mpc86xx.h | |||
@@ -17,5 +17,7 @@ | |||
17 | 17 | ||
18 | extern void mpc86xx_smp_init(void); | 18 | extern void mpc86xx_smp_init(void); |
19 | extern void mpc86xx_init_irq(void); | 19 | extern void mpc86xx_init_irq(void); |
20 | extern long mpc86xx_time_init(void); | ||
21 | extern int mpc86xx_common_publish_devices(void); | ||
20 | 22 | ||
21 | #endif /* __MPC86XX_H__ */ | 23 | #endif /* __MPC86XX_H__ */ |
diff --git a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c index 07ccb1b0cc7d..e5084811b9c6 100644 --- a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c +++ b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c | |||
@@ -110,33 +110,14 @@ static int __init mpc86xx_hpcn_probe(void) | |||
110 | return 0; | 110 | return 0; |
111 | } | 111 | } |
112 | 112 | ||
113 | static long __init | ||
114 | mpc86xx_time_init(void) | ||
115 | { | ||
116 | unsigned int temp; | ||
117 | |||
118 | /* Set the time base to zero */ | ||
119 | mtspr(SPRN_TBWL, 0); | ||
120 | mtspr(SPRN_TBWU, 0); | ||
121 | |||
122 | temp = mfspr(SPRN_HID0); | ||
123 | temp |= HID0_TBEN; | ||
124 | mtspr(SPRN_HID0, temp); | ||
125 | asm volatile("isync"); | ||
126 | |||
127 | return 0; | ||
128 | } | ||
129 | |||
130 | static const struct of_device_id of_bus_ids[] __initconst = { | 113 | static const struct of_device_id of_bus_ids[] __initconst = { |
131 | { .compatible = "simple-bus", }, | ||
132 | { .compatible = "fsl,srio", }, | 114 | { .compatible = "fsl,srio", }, |
133 | { .compatible = "gianfar", }, | ||
134 | { .compatible = "fsl,mpc8641-pcie", }, | ||
135 | {}, | 115 | {}, |
136 | }; | 116 | }; |
137 | 117 | ||
138 | static int __init declare_of_platform_devices(void) | 118 | static int __init declare_of_platform_devices(void) |
139 | { | 119 | { |
120 | mpc86xx_common_publish_devices(); | ||
140 | of_platform_bus_probe(NULL, of_bus_ids, NULL); | 121 | of_platform_bus_probe(NULL, of_bus_ids, NULL); |
141 | 122 | ||
142 | return 0; | 123 | return 0; |
diff --git a/arch/powerpc/platforms/86xx/sbc8641d.c b/arch/powerpc/platforms/86xx/sbc8641d.c index 6810b71d54a7..2a9cf278c12a 100644 --- a/arch/powerpc/platforms/86xx/sbc8641d.c +++ b/arch/powerpc/platforms/86xx/sbc8641d.c | |||
@@ -75,37 +75,7 @@ static int __init sbc8641_probe(void) | |||
75 | return 0; | 75 | return 0; |
76 | } | 76 | } |
77 | 77 | ||
78 | static long __init | 78 | machine_arch_initcall(sbc8641, mpc86xx_common_publish_devices); |
79 | mpc86xx_time_init(void) | ||
80 | { | ||
81 | unsigned int temp; | ||
82 | |||
83 | /* Set the time base to zero */ | ||
84 | mtspr(SPRN_TBWL, 0); | ||
85 | mtspr(SPRN_TBWU, 0); | ||
86 | |||
87 | temp = mfspr(SPRN_HID0); | ||
88 | temp |= HID0_TBEN; | ||
89 | mtspr(SPRN_HID0, temp); | ||
90 | asm volatile("isync"); | ||
91 | |||
92 | return 0; | ||
93 | } | ||
94 | |||
95 | static const struct of_device_id of_bus_ids[] __initconst = { | ||
96 | { .compatible = "simple-bus", }, | ||
97 | { .compatible = "gianfar", }, | ||
98 | { .compatible = "fsl,mpc8641-pcie", }, | ||
99 | {}, | ||
100 | }; | ||
101 | |||
102 | static int __init declare_of_platform_devices(void) | ||
103 | { | ||
104 | of_platform_bus_probe(NULL, of_bus_ids, NULL); | ||
105 | |||
106 | return 0; | ||
107 | } | ||
108 | machine_arch_initcall(sbc8641, declare_of_platform_devices); | ||
109 | 79 | ||
110 | define_machine(sbc8641) { | 80 | define_machine(sbc8641) { |
111 | .name = "SBC8641D", | 81 | .name = "SBC8641D", |
diff --git a/arch/powerpc/platforms/embedded6xx/mpc10x.h b/arch/powerpc/platforms/embedded6xx/mpc10x.h index b290b63661f1..5ad12023e562 100644 --- a/arch/powerpc/platforms/embedded6xx/mpc10x.h +++ b/arch/powerpc/platforms/embedded6xx/mpc10x.h | |||
@@ -24,13 +24,11 @@ | |||
24 | * Processor: 0x80000000 - 0x807fffff -> PCI I/O: 0x00000000 - 0x007fffff | 24 | * Processor: 0x80000000 - 0x807fffff -> PCI I/O: 0x00000000 - 0x007fffff |
25 | * Processor: 0xc0000000 - 0xdfffffff -> PCI MEM: 0x00000000 - 0x1fffffff | 25 | * Processor: 0xc0000000 - 0xdfffffff -> PCI MEM: 0x00000000 - 0x1fffffff |
26 | * PCI MEM: 0x80000000 -> Processor System Memory: 0x00000000 | 26 | * PCI MEM: 0x80000000 -> Processor System Memory: 0x00000000 |
27 | * EUMB mapped to: ioremap_base - 0x00100000 (ioremap_base - 1 MB) | ||
28 | * | 27 | * |
29 | * MAP B (CHRP Map) | 28 | * MAP B (CHRP Map) |
30 | * Processor: 0xfe000000 - 0xfebfffff -> PCI I/O: 0x00000000 - 0x00bfffff | 29 | * Processor: 0xfe000000 - 0xfebfffff -> PCI I/O: 0x00000000 - 0x00bfffff |
31 | * Processor: 0x80000000 - 0xbfffffff -> PCI MEM: 0x80000000 - 0xbfffffff | 30 | * Processor: 0x80000000 - 0xbfffffff -> PCI MEM: 0x80000000 - 0xbfffffff |
32 | * PCI MEM: 0x00000000 -> Processor System Memory: 0x00000000 | 31 | * PCI MEM: 0x00000000 -> Processor System Memory: 0x00000000 |
33 | * EUMB mapped to: ioremap_base - 0x00100000 (ioremap_base - 1 MB) | ||
34 | */ | 32 | */ |
35 | 33 | ||
36 | /* | 34 | /* |
@@ -138,14 +136,6 @@ | |||
138 | #define MPC10X_EUMB_WP_OFFSET 0x000ff000 /* Data path diagnostic, watchpoint reg offset */ | 136 | #define MPC10X_EUMB_WP_OFFSET 0x000ff000 /* Data path diagnostic, watchpoint reg offset */ |
139 | #define MPC10X_EUMB_WP_SIZE 0x00001000 /* Data path diagnostic, watchpoint reg size */ | 137 | #define MPC10X_EUMB_WP_SIZE 0x00001000 /* Data path diagnostic, watchpoint reg size */ |
140 | 138 | ||
141 | /* | ||
142 | * Define some recommended places to put the EUMB regs. | ||
143 | * For both maps, recommend putting the EUMB from 0xeff00000 to 0xefffffff. | ||
144 | */ | ||
145 | extern unsigned long ioremap_base; | ||
146 | #define MPC10X_MAPA_EUMB_BASE (ioremap_base - MPC10X_EUMB_SIZE) | ||
147 | #define MPC10X_MAPB_EUMB_BASE MPC10X_MAPA_EUMB_BASE | ||
148 | |||
149 | enum ppc_sys_devices { | 139 | enum ppc_sys_devices { |
150 | MPC10X_IIC1, | 140 | MPC10X_IIC1, |
151 | MPC10X_DMA0, | 141 | MPC10X_DMA0, |
diff --git a/arch/powerpc/sysdev/Kconfig b/arch/powerpc/sysdev/Kconfig index a19332a38715..52dc165c0efb 100644 --- a/arch/powerpc/sysdev/Kconfig +++ b/arch/powerpc/sysdev/Kconfig | |||
@@ -40,3 +40,8 @@ config SCOM_DEBUGFS | |||
40 | config GE_FPGA | 40 | config GE_FPGA |
41 | bool | 41 | bool |
42 | default n | 42 | default n |
43 | |||
44 | config FSL_CORENET_RCPM | ||
45 | bool | ||
46 | help | ||
47 | This option enables support for RCPM (Run Control/Power Management). | ||
diff --git a/arch/powerpc/sysdev/Makefile b/arch/powerpc/sysdev/Makefile index bd6bd729969c..a254824719f1 100644 --- a/arch/powerpc/sysdev/Makefile +++ b/arch/powerpc/sysdev/Makefile | |||
@@ -20,6 +20,7 @@ obj-$(CONFIG_MMIO_NVRAM) += mmio_nvram.o | |||
20 | obj-$(CONFIG_FSL_SOC) += fsl_soc.o fsl_mpic_err.o | 20 | obj-$(CONFIG_FSL_SOC) += fsl_soc.o fsl_mpic_err.o |
21 | obj-$(CONFIG_FSL_PCI) += fsl_pci.o $(fsl-msi-obj-y) | 21 | obj-$(CONFIG_FSL_PCI) += fsl_pci.o $(fsl-msi-obj-y) |
22 | obj-$(CONFIG_FSL_PMC) += fsl_pmc.o | 22 | obj-$(CONFIG_FSL_PMC) += fsl_pmc.o |
23 | obj-$(CONFIG_FSL_CORENET_RCPM) += fsl_rcpm.o | ||
23 | obj-$(CONFIG_FSL_LBC) += fsl_lbc.o | 24 | obj-$(CONFIG_FSL_LBC) += fsl_lbc.o |
24 | obj-$(CONFIG_FSL_GTM) += fsl_gtm.o | 25 | obj-$(CONFIG_FSL_GTM) += fsl_gtm.o |
25 | obj-$(CONFIG_FSL_85XX_CACHE_SRAM) += fsl_85xx_l2ctlr.o fsl_85xx_cache_sram.o | 26 | obj-$(CONFIG_FSL_85XX_CACHE_SRAM) += fsl_85xx_l2ctlr.o fsl_85xx_cache_sram.o |
diff --git a/arch/powerpc/sysdev/cpm1.c b/arch/powerpc/sysdev/cpm1.c index 5e6ff38ea69f..8ed65365be50 100644 --- a/arch/powerpc/sysdev/cpm1.c +++ b/arch/powerpc/sysdev/cpm1.c | |||
@@ -228,7 +228,10 @@ void __init cpm_reset(void) | |||
228 | * Bit 25, FAM can also be set to use FEC aggressive mode (860T). | 228 | * Bit 25, FAM can also be set to use FEC aggressive mode (860T). |
229 | */ | 229 | */ |
230 | siu_conf = immr_map(im_siu_conf); | 230 | siu_conf = immr_map(im_siu_conf); |
231 | out_be32(&siu_conf->sc_sdcr, 1); | 231 | if ((mfspr(SPRN_IMMR) & 0xffff) == 0x0900) /* MPC885 */ |
232 | out_be32(&siu_conf->sc_sdcr, 0x40); | ||
233 | else | ||
234 | out_be32(&siu_conf->sc_sdcr, 1); | ||
232 | immr_unmap(siu_conf); | 235 | immr_unmap(siu_conf); |
233 | 236 | ||
234 | cpm_muram_init(); | 237 | cpm_muram_init(); |
diff --git a/arch/powerpc/sysdev/fsl_lbc.c b/arch/powerpc/sysdev/fsl_lbc.c index 47f781059eeb..424b67fdb57f 100644 --- a/arch/powerpc/sysdev/fsl_lbc.c +++ b/arch/powerpc/sysdev/fsl_lbc.c | |||
@@ -27,6 +27,7 @@ | |||
27 | #include <linux/platform_device.h> | 27 | #include <linux/platform_device.h> |
28 | #include <linux/interrupt.h> | 28 | #include <linux/interrupt.h> |
29 | #include <linux/mod_devicetable.h> | 29 | #include <linux/mod_devicetable.h> |
30 | #include <linux/syscore_ops.h> | ||
30 | #include <asm/prom.h> | 31 | #include <asm/prom.h> |
31 | #include <asm/fsl_lbc.h> | 32 | #include <asm/fsl_lbc.h> |
32 | 33 | ||
@@ -352,24 +353,42 @@ err: | |||
352 | #ifdef CONFIG_SUSPEND | 353 | #ifdef CONFIG_SUSPEND |
353 | 354 | ||
354 | /* save lbc registers */ | 355 | /* save lbc registers */ |
355 | static int fsl_lbc_suspend(struct platform_device *pdev, pm_message_t state) | 356 | static int fsl_lbc_syscore_suspend(void) |
356 | { | 357 | { |
357 | struct fsl_lbc_ctrl *ctrl = dev_get_drvdata(&pdev->dev); | 358 | struct fsl_lbc_ctrl *ctrl; |
358 | struct fsl_lbc_regs __iomem *lbc = ctrl->regs; | 359 | struct fsl_lbc_regs __iomem *lbc; |
360 | |||
361 | ctrl = fsl_lbc_ctrl_dev; | ||
362 | if (!ctrl) | ||
363 | goto out; | ||
364 | |||
365 | lbc = ctrl->regs; | ||
366 | if (!lbc) | ||
367 | goto out; | ||
359 | 368 | ||
360 | ctrl->saved_regs = kmalloc(sizeof(struct fsl_lbc_regs), GFP_KERNEL); | 369 | ctrl->saved_regs = kmalloc(sizeof(struct fsl_lbc_regs), GFP_KERNEL); |
361 | if (!ctrl->saved_regs) | 370 | if (!ctrl->saved_regs) |
362 | return -ENOMEM; | 371 | return -ENOMEM; |
363 | 372 | ||
364 | _memcpy_fromio(ctrl->saved_regs, lbc, sizeof(struct fsl_lbc_regs)); | 373 | _memcpy_fromio(ctrl->saved_regs, lbc, sizeof(struct fsl_lbc_regs)); |
374 | |||
375 | out: | ||
365 | return 0; | 376 | return 0; |
366 | } | 377 | } |
367 | 378 | ||
368 | /* restore lbc registers */ | 379 | /* restore lbc registers */ |
369 | static int fsl_lbc_resume(struct platform_device *pdev) | 380 | static void fsl_lbc_syscore_resume(void) |
370 | { | 381 | { |
371 | struct fsl_lbc_ctrl *ctrl = dev_get_drvdata(&pdev->dev); | 382 | struct fsl_lbc_ctrl *ctrl; |
372 | struct fsl_lbc_regs __iomem *lbc = ctrl->regs; | 383 | struct fsl_lbc_regs __iomem *lbc; |
384 | |||
385 | ctrl = fsl_lbc_ctrl_dev; | ||
386 | if (!ctrl) | ||
387 | goto out; | ||
388 | |||
389 | lbc = ctrl->regs; | ||
390 | if (!lbc) | ||
391 | goto out; | ||
373 | 392 | ||
374 | if (ctrl->saved_regs) { | 393 | if (ctrl->saved_regs) { |
375 | _memcpy_toio(lbc, ctrl->saved_regs, | 394 | _memcpy_toio(lbc, ctrl->saved_regs, |
@@ -377,7 +396,9 @@ static int fsl_lbc_resume(struct platform_device *pdev) | |||
377 | kfree(ctrl->saved_regs); | 396 | kfree(ctrl->saved_regs); |
378 | ctrl->saved_regs = NULL; | 397 | ctrl->saved_regs = NULL; |
379 | } | 398 | } |
380 | return 0; | 399 | |
400 | out: | ||
401 | return; | ||
381 | } | 402 | } |
382 | #endif /* CONFIG_SUSPEND */ | 403 | #endif /* CONFIG_SUSPEND */ |
383 | 404 | ||
@@ -389,20 +410,26 @@ static const struct of_device_id fsl_lbc_match[] = { | |||
389 | {}, | 410 | {}, |
390 | }; | 411 | }; |
391 | 412 | ||
413 | #ifdef CONFIG_SUSPEND | ||
414 | static struct syscore_ops lbc_syscore_pm_ops = { | ||
415 | .suspend = fsl_lbc_syscore_suspend, | ||
416 | .resume = fsl_lbc_syscore_resume, | ||
417 | }; | ||
418 | #endif | ||
419 | |||
392 | static struct platform_driver fsl_lbc_ctrl_driver = { | 420 | static struct platform_driver fsl_lbc_ctrl_driver = { |
393 | .driver = { | 421 | .driver = { |
394 | .name = "fsl-lbc", | 422 | .name = "fsl-lbc", |
395 | .of_match_table = fsl_lbc_match, | 423 | .of_match_table = fsl_lbc_match, |
396 | }, | 424 | }, |
397 | .probe = fsl_lbc_ctrl_probe, | 425 | .probe = fsl_lbc_ctrl_probe, |
398 | #ifdef CONFIG_SUSPEND | ||
399 | .suspend = fsl_lbc_suspend, | ||
400 | .resume = fsl_lbc_resume, | ||
401 | #endif | ||
402 | }; | 426 | }; |
403 | 427 | ||
404 | static int __init fsl_lbc_init(void) | 428 | static int __init fsl_lbc_init(void) |
405 | { | 429 | { |
430 | #ifdef CONFIG_SUSPEND | ||
431 | register_syscore_ops(&lbc_syscore_pm_ops); | ||
432 | #endif | ||
406 | return platform_driver_register(&fsl_lbc_ctrl_driver); | 433 | return platform_driver_register(&fsl_lbc_ctrl_driver); |
407 | } | 434 | } |
408 | subsys_initcall(fsl_lbc_init); | 435 | subsys_initcall(fsl_lbc_init); |
diff --git a/arch/powerpc/sysdev/fsl_rcpm.c b/arch/powerpc/sysdev/fsl_rcpm.c new file mode 100644 index 000000000000..656d9ca057e5 --- /dev/null +++ b/arch/powerpc/sysdev/fsl_rcpm.c | |||
@@ -0,0 +1,385 @@ | |||
1 | /* | ||
2 | * RCPM(Run Control/Power Management) support | ||
3 | * | ||
4 | * Copyright 2012-2015 Freescale Semiconductor Inc. | ||
5 | * | ||
6 | * Author: Chenhui Zhao <chenhui.zhao@freescale.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 | |||
14 | #define pr_fmt(fmt) "%s: " fmt, __func__ | ||
15 | |||
16 | #include <linux/types.h> | ||
17 | #include <linux/errno.h> | ||
18 | #include <linux/of_address.h> | ||
19 | #include <linux/export.h> | ||
20 | |||
21 | #include <asm/io.h> | ||
22 | #include <linux/fsl/guts.h> | ||
23 | #include <asm/cputhreads.h> | ||
24 | #include <asm/fsl_pm.h> | ||
25 | |||
26 | static struct ccsr_rcpm_v1 __iomem *rcpm_v1_regs; | ||
27 | static struct ccsr_rcpm_v2 __iomem *rcpm_v2_regs; | ||
28 | static unsigned int fsl_supported_pm_modes; | ||
29 | |||
30 | static void rcpm_v1_irq_mask(int cpu) | ||
31 | { | ||
32 | int hw_cpu = get_hard_smp_processor_id(cpu); | ||
33 | unsigned int mask = 1 << hw_cpu; | ||
34 | |||
35 | setbits32(&rcpm_v1_regs->cpmimr, mask); | ||
36 | setbits32(&rcpm_v1_regs->cpmcimr, mask); | ||
37 | setbits32(&rcpm_v1_regs->cpmmcmr, mask); | ||
38 | setbits32(&rcpm_v1_regs->cpmnmimr, mask); | ||
39 | } | ||
40 | |||
41 | static void rcpm_v2_irq_mask(int cpu) | ||
42 | { | ||
43 | int hw_cpu = get_hard_smp_processor_id(cpu); | ||
44 | unsigned int mask = 1 << hw_cpu; | ||
45 | |||
46 | setbits32(&rcpm_v2_regs->tpmimr0, mask); | ||
47 | setbits32(&rcpm_v2_regs->tpmcimr0, mask); | ||
48 | setbits32(&rcpm_v2_regs->tpmmcmr0, mask); | ||
49 | setbits32(&rcpm_v2_regs->tpmnmimr0, mask); | ||
50 | } | ||
51 | |||
52 | static void rcpm_v1_irq_unmask(int cpu) | ||
53 | { | ||
54 | int hw_cpu = get_hard_smp_processor_id(cpu); | ||
55 | unsigned int mask = 1 << hw_cpu; | ||
56 | |||
57 | clrbits32(&rcpm_v1_regs->cpmimr, mask); | ||
58 | clrbits32(&rcpm_v1_regs->cpmcimr, mask); | ||
59 | clrbits32(&rcpm_v1_regs->cpmmcmr, mask); | ||
60 | clrbits32(&rcpm_v1_regs->cpmnmimr, mask); | ||
61 | } | ||
62 | |||
63 | static void rcpm_v2_irq_unmask(int cpu) | ||
64 | { | ||
65 | int hw_cpu = get_hard_smp_processor_id(cpu); | ||
66 | unsigned int mask = 1 << hw_cpu; | ||
67 | |||
68 | clrbits32(&rcpm_v2_regs->tpmimr0, mask); | ||
69 | clrbits32(&rcpm_v2_regs->tpmcimr0, mask); | ||
70 | clrbits32(&rcpm_v2_regs->tpmmcmr0, mask); | ||
71 | clrbits32(&rcpm_v2_regs->tpmnmimr0, mask); | ||
72 | } | ||
73 | |||
74 | static void rcpm_v1_set_ip_power(bool enable, u32 mask) | ||
75 | { | ||
76 | if (enable) | ||
77 | setbits32(&rcpm_v1_regs->ippdexpcr, mask); | ||
78 | else | ||
79 | clrbits32(&rcpm_v1_regs->ippdexpcr, mask); | ||
80 | } | ||
81 | |||
82 | static void rcpm_v2_set_ip_power(bool enable, u32 mask) | ||
83 | { | ||
84 | if (enable) | ||
85 | setbits32(&rcpm_v2_regs->ippdexpcr[0], mask); | ||
86 | else | ||
87 | clrbits32(&rcpm_v2_regs->ippdexpcr[0], mask); | ||
88 | } | ||
89 | |||
90 | static void rcpm_v1_cpu_enter_state(int cpu, int state) | ||
91 | { | ||
92 | int hw_cpu = get_hard_smp_processor_id(cpu); | ||
93 | unsigned int mask = 1 << hw_cpu; | ||
94 | |||
95 | switch (state) { | ||
96 | case E500_PM_PH10: | ||
97 | setbits32(&rcpm_v1_regs->cdozcr, mask); | ||
98 | break; | ||
99 | case E500_PM_PH15: | ||
100 | setbits32(&rcpm_v1_regs->cnapcr, mask); | ||
101 | break; | ||
102 | default: | ||
103 | pr_warn("Unknown cpu PM state (%d)\n", state); | ||
104 | break; | ||
105 | } | ||
106 | } | ||
107 | |||
108 | static void rcpm_v2_cpu_enter_state(int cpu, int state) | ||
109 | { | ||
110 | int hw_cpu = get_hard_smp_processor_id(cpu); | ||
111 | u32 mask = 1 << cpu_core_index_of_thread(cpu); | ||
112 | |||
113 | switch (state) { | ||
114 | case E500_PM_PH10: | ||
115 | /* one bit corresponds to one thread for PH10 of 6500 */ | ||
116 | setbits32(&rcpm_v2_regs->tph10setr0, 1 << hw_cpu); | ||
117 | break; | ||
118 | case E500_PM_PH15: | ||
119 | setbits32(&rcpm_v2_regs->pcph15setr, mask); | ||
120 | break; | ||
121 | case E500_PM_PH20: | ||
122 | setbits32(&rcpm_v2_regs->pcph20setr, mask); | ||
123 | break; | ||
124 | case E500_PM_PH30: | ||
125 | setbits32(&rcpm_v2_regs->pcph30setr, mask); | ||
126 | break; | ||
127 | default: | ||
128 | pr_warn("Unknown cpu PM state (%d)\n", state); | ||
129 | } | ||
130 | } | ||
131 | |||
132 | static void rcpm_v1_cpu_die(int cpu) | ||
133 | { | ||
134 | rcpm_v1_cpu_enter_state(cpu, E500_PM_PH15); | ||
135 | } | ||
136 | |||
137 | #ifdef CONFIG_PPC64 | ||
138 | static void qoriq_disable_thread(int cpu) | ||
139 | { | ||
140 | int thread = cpu_thread_in_core(cpu); | ||
141 | |||
142 | book3e_stop_thread(thread); | ||
143 | } | ||
144 | #endif | ||
145 | |||
146 | static void rcpm_v2_cpu_die(int cpu) | ||
147 | { | ||
148 | #ifdef CONFIG_PPC64 | ||
149 | int primary; | ||
150 | |||
151 | if (threads_per_core == 2) { | ||
152 | primary = cpu_first_thread_sibling(cpu); | ||
153 | if (cpu_is_offline(primary) && cpu_is_offline(primary + 1)) { | ||
154 | /* if both threads are offline, put the cpu in PH20 */ | ||
155 | rcpm_v2_cpu_enter_state(cpu, E500_PM_PH20); | ||
156 | } else { | ||
157 | /* if only one thread is offline, disable the thread */ | ||
158 | qoriq_disable_thread(cpu); | ||
159 | } | ||
160 | } | ||
161 | #endif | ||
162 | |||
163 | if (threads_per_core == 1) | ||
164 | rcpm_v2_cpu_enter_state(cpu, E500_PM_PH20); | ||
165 | } | ||
166 | |||
167 | static void rcpm_v1_cpu_exit_state(int cpu, int state) | ||
168 | { | ||
169 | int hw_cpu = get_hard_smp_processor_id(cpu); | ||
170 | unsigned int mask = 1 << hw_cpu; | ||
171 | |||
172 | switch (state) { | ||
173 | case E500_PM_PH10: | ||
174 | clrbits32(&rcpm_v1_regs->cdozcr, mask); | ||
175 | break; | ||
176 | case E500_PM_PH15: | ||
177 | clrbits32(&rcpm_v1_regs->cnapcr, mask); | ||
178 | break; | ||
179 | default: | ||
180 | pr_warn("Unknown cpu PM state (%d)\n", state); | ||
181 | break; | ||
182 | } | ||
183 | } | ||
184 | |||
185 | static void rcpm_v1_cpu_up_prepare(int cpu) | ||
186 | { | ||
187 | rcpm_v1_cpu_exit_state(cpu, E500_PM_PH15); | ||
188 | rcpm_v1_irq_unmask(cpu); | ||
189 | } | ||
190 | |||
191 | static void rcpm_v2_cpu_exit_state(int cpu, int state) | ||
192 | { | ||
193 | int hw_cpu = get_hard_smp_processor_id(cpu); | ||
194 | u32 mask = 1 << cpu_core_index_of_thread(cpu); | ||
195 | |||
196 | switch (state) { | ||
197 | case E500_PM_PH10: | ||
198 | setbits32(&rcpm_v2_regs->tph10clrr0, 1 << hw_cpu); | ||
199 | break; | ||
200 | case E500_PM_PH15: | ||
201 | setbits32(&rcpm_v2_regs->pcph15clrr, mask); | ||
202 | break; | ||
203 | case E500_PM_PH20: | ||
204 | setbits32(&rcpm_v2_regs->pcph20clrr, mask); | ||
205 | break; | ||
206 | case E500_PM_PH30: | ||
207 | setbits32(&rcpm_v2_regs->pcph30clrr, mask); | ||
208 | break; | ||
209 | default: | ||
210 | pr_warn("Unknown cpu PM state (%d)\n", state); | ||
211 | } | ||
212 | } | ||
213 | |||
214 | static void rcpm_v2_cpu_up_prepare(int cpu) | ||
215 | { | ||
216 | rcpm_v2_cpu_exit_state(cpu, E500_PM_PH20); | ||
217 | rcpm_v2_irq_unmask(cpu); | ||
218 | } | ||
219 | |||
220 | static int rcpm_v1_plat_enter_state(int state) | ||
221 | { | ||
222 | u32 *pmcsr_reg = &rcpm_v1_regs->powmgtcsr; | ||
223 | int ret = 0; | ||
224 | int result; | ||
225 | |||
226 | switch (state) { | ||
227 | case PLAT_PM_SLEEP: | ||
228 | setbits32(pmcsr_reg, RCPM_POWMGTCSR_SLP); | ||
229 | |||
230 | /* Upon resume, wait for RCPM_POWMGTCSR_SLP bit to be clear. */ | ||
231 | result = spin_event_timeout( | ||
232 | !(in_be32(pmcsr_reg) & RCPM_POWMGTCSR_SLP), 10000, 10); | ||
233 | if (!result) { | ||
234 | pr_err("timeout waiting for SLP bit to be cleared\n"); | ||
235 | ret = -ETIMEDOUT; | ||
236 | } | ||
237 | break; | ||
238 | default: | ||
239 | pr_warn("Unknown platform PM state (%d)", state); | ||
240 | ret = -EINVAL; | ||
241 | } | ||
242 | |||
243 | return ret; | ||
244 | } | ||
245 | |||
246 | static int rcpm_v2_plat_enter_state(int state) | ||
247 | { | ||
248 | u32 *pmcsr_reg = &rcpm_v2_regs->powmgtcsr; | ||
249 | int ret = 0; | ||
250 | int result; | ||
251 | |||
252 | switch (state) { | ||
253 | case PLAT_PM_LPM20: | ||
254 | /* clear previous LPM20 status */ | ||
255 | setbits32(pmcsr_reg, RCPM_POWMGTCSR_P_LPM20_ST); | ||
256 | /* enter LPM20 status */ | ||
257 | setbits32(pmcsr_reg, RCPM_POWMGTCSR_LPM20_RQ); | ||
258 | |||
259 | /* At this point, the device is in LPM20 status. */ | ||
260 | |||
261 | /* resume ... */ | ||
262 | result = spin_event_timeout( | ||
263 | !(in_be32(pmcsr_reg) & RCPM_POWMGTCSR_LPM20_ST), 10000, 10); | ||
264 | if (!result) { | ||
265 | pr_err("timeout waiting for LPM20 bit to be cleared\n"); | ||
266 | ret = -ETIMEDOUT; | ||
267 | } | ||
268 | break; | ||
269 | default: | ||
270 | pr_warn("Unknown platform PM state (%d)\n", state); | ||
271 | ret = -EINVAL; | ||
272 | } | ||
273 | |||
274 | return ret; | ||
275 | } | ||
276 | |||
277 | static int rcpm_v1_plat_enter_sleep(void) | ||
278 | { | ||
279 | return rcpm_v1_plat_enter_state(PLAT_PM_SLEEP); | ||
280 | } | ||
281 | |||
282 | static int rcpm_v2_plat_enter_sleep(void) | ||
283 | { | ||
284 | return rcpm_v2_plat_enter_state(PLAT_PM_LPM20); | ||
285 | } | ||
286 | |||
287 | static void rcpm_common_freeze_time_base(u32 *tben_reg, int freeze) | ||
288 | { | ||
289 | static u32 mask; | ||
290 | |||
291 | if (freeze) { | ||
292 | mask = in_be32(tben_reg); | ||
293 | clrbits32(tben_reg, mask); | ||
294 | } else { | ||
295 | setbits32(tben_reg, mask); | ||
296 | } | ||
297 | |||
298 | /* read back to push the previous write */ | ||
299 | in_be32(tben_reg); | ||
300 | } | ||
301 | |||
302 | static void rcpm_v1_freeze_time_base(bool freeze) | ||
303 | { | ||
304 | rcpm_common_freeze_time_base(&rcpm_v1_regs->ctbenr, freeze); | ||
305 | } | ||
306 | |||
307 | static void rcpm_v2_freeze_time_base(bool freeze) | ||
308 | { | ||
309 | rcpm_common_freeze_time_base(&rcpm_v2_regs->pctbenr, freeze); | ||
310 | } | ||
311 | |||
312 | static unsigned int rcpm_get_pm_modes(void) | ||
313 | { | ||
314 | return fsl_supported_pm_modes; | ||
315 | } | ||
316 | |||
317 | static const struct fsl_pm_ops qoriq_rcpm_v1_ops = { | ||
318 | .irq_mask = rcpm_v1_irq_mask, | ||
319 | .irq_unmask = rcpm_v1_irq_unmask, | ||
320 | .cpu_enter_state = rcpm_v1_cpu_enter_state, | ||
321 | .cpu_exit_state = rcpm_v1_cpu_exit_state, | ||
322 | .cpu_up_prepare = rcpm_v1_cpu_up_prepare, | ||
323 | .cpu_die = rcpm_v1_cpu_die, | ||
324 | .plat_enter_sleep = rcpm_v1_plat_enter_sleep, | ||
325 | .set_ip_power = rcpm_v1_set_ip_power, | ||
326 | .freeze_time_base = rcpm_v1_freeze_time_base, | ||
327 | .get_pm_modes = rcpm_get_pm_modes, | ||
328 | }; | ||
329 | |||
330 | static const struct fsl_pm_ops qoriq_rcpm_v2_ops = { | ||
331 | .irq_mask = rcpm_v2_irq_mask, | ||
332 | .irq_unmask = rcpm_v2_irq_unmask, | ||
333 | .cpu_enter_state = rcpm_v2_cpu_enter_state, | ||
334 | .cpu_exit_state = rcpm_v2_cpu_exit_state, | ||
335 | .cpu_up_prepare = rcpm_v2_cpu_up_prepare, | ||
336 | .cpu_die = rcpm_v2_cpu_die, | ||
337 | .plat_enter_sleep = rcpm_v2_plat_enter_sleep, | ||
338 | .set_ip_power = rcpm_v2_set_ip_power, | ||
339 | .freeze_time_base = rcpm_v2_freeze_time_base, | ||
340 | .get_pm_modes = rcpm_get_pm_modes, | ||
341 | }; | ||
342 | |||
343 | static const struct of_device_id rcpm_matches[] = { | ||
344 | { | ||
345 | .compatible = "fsl,qoriq-rcpm-1.0", | ||
346 | .data = &qoriq_rcpm_v1_ops, | ||
347 | }, | ||
348 | { | ||
349 | .compatible = "fsl,qoriq-rcpm-2.0", | ||
350 | .data = &qoriq_rcpm_v2_ops, | ||
351 | }, | ||
352 | { | ||
353 | .compatible = "fsl,qoriq-rcpm-2.1", | ||
354 | .data = &qoriq_rcpm_v2_ops, | ||
355 | }, | ||
356 | {}, | ||
357 | }; | ||
358 | |||
359 | int __init fsl_rcpm_init(void) | ||
360 | { | ||
361 | struct device_node *np; | ||
362 | const struct of_device_id *match; | ||
363 | void __iomem *base; | ||
364 | |||
365 | np = of_find_matching_node_and_match(NULL, rcpm_matches, &match); | ||
366 | if (!np) | ||
367 | return 0; | ||
368 | |||
369 | base = of_iomap(np, 0); | ||
370 | of_node_put(np); | ||
371 | if (!base) { | ||
372 | pr_err("of_iomap() error.\n"); | ||
373 | return -ENOMEM; | ||
374 | } | ||
375 | |||
376 | rcpm_v1_regs = base; | ||
377 | rcpm_v2_regs = base; | ||
378 | |||
379 | /* support sleep by default */ | ||
380 | fsl_supported_pm_modes = FSL_PM_SLEEP; | ||
381 | |||
382 | qoriq_pm_ops = match->data; | ||
383 | |||
384 | return 0; | ||
385 | } | ||
diff --git a/drivers/soc/fsl/qe/qe_common.c b/drivers/soc/fsl/qe/qe_common.c index 419fa5b7be4d..41eff805a904 100644 --- a/drivers/soc/fsl/qe/qe_common.c +++ b/drivers/soc/fsl/qe/qe_common.c | |||
@@ -103,6 +103,39 @@ out_muram: | |||
103 | } | 103 | } |
104 | 104 | ||
105 | /* | 105 | /* |
106 | * cpm_muram_alloc_common - cpm_muram_alloc common code | ||
107 | * @size: number of bytes to allocate | ||
108 | * @algo: algorithm for alloc. | ||
109 | * @data: data for genalloc's algorithm. | ||
110 | * | ||
111 | * This function returns an offset into the muram area. | ||
112 | */ | ||
113 | static unsigned long cpm_muram_alloc_common(unsigned long size, | ||
114 | genpool_algo_t algo, void *data) | ||
115 | { | ||
116 | struct muram_block *entry; | ||
117 | unsigned long start; | ||
118 | |||
119 | start = gen_pool_alloc_algo(muram_pool, size, algo, data); | ||
120 | if (!start) | ||
121 | goto out2; | ||
122 | start = start - GENPOOL_OFFSET; | ||
123 | memset_io(cpm_muram_addr(start), 0, size); | ||
124 | entry = kmalloc(sizeof(*entry), GFP_ATOMIC); | ||
125 | if (!entry) | ||
126 | goto out1; | ||
127 | entry->start = start; | ||
128 | entry->size = size; | ||
129 | list_add(&entry->head, &muram_block_list); | ||
130 | |||
131 | return start; | ||
132 | out1: | ||
133 | gen_pool_free(muram_pool, start, size); | ||
134 | out2: | ||
135 | return (unsigned long)-ENOMEM; | ||
136 | } | ||
137 | |||
138 | /* | ||
106 | * cpm_muram_alloc - allocate the requested size worth of multi-user ram | 139 | * cpm_muram_alloc - allocate the requested size worth of multi-user ram |
107 | * @size: number of bytes to allocate | 140 | * @size: number of bytes to allocate |
108 | * @align: requested alignment, in bytes | 141 | * @align: requested alignment, in bytes |
@@ -175,39 +208,6 @@ unsigned long cpm_muram_alloc_fixed(unsigned long offset, unsigned long size) | |||
175 | } | 208 | } |
176 | EXPORT_SYMBOL(cpm_muram_alloc_fixed); | 209 | EXPORT_SYMBOL(cpm_muram_alloc_fixed); |
177 | 210 | ||
178 | /* | ||
179 | * cpm_muram_alloc_common - cpm_muram_alloc common code | ||
180 | * @size: number of bytes to allocate | ||
181 | * @algo: algorithm for alloc. | ||
182 | * @data: data for genalloc's algorithm. | ||
183 | * | ||
184 | * This function returns an offset into the muram area. | ||
185 | */ | ||
186 | unsigned long cpm_muram_alloc_common(unsigned long size, genpool_algo_t algo, | ||
187 | void *data) | ||
188 | { | ||
189 | struct muram_block *entry; | ||
190 | unsigned long start; | ||
191 | |||
192 | start = gen_pool_alloc_algo(muram_pool, size, algo, data); | ||
193 | if (!start) | ||
194 | goto out2; | ||
195 | start = start - GENPOOL_OFFSET; | ||
196 | memset_io(cpm_muram_addr(start), 0, size); | ||
197 | entry = kmalloc(sizeof(*entry), GFP_KERNEL); | ||
198 | if (!entry) | ||
199 | goto out1; | ||
200 | entry->start = start; | ||
201 | entry->size = size; | ||
202 | list_add(&entry->head, &muram_block_list); | ||
203 | |||
204 | return start; | ||
205 | out1: | ||
206 | gen_pool_free(muram_pool, start, size); | ||
207 | out2: | ||
208 | return (unsigned long)-ENOMEM; | ||
209 | } | ||
210 | |||
211 | /** | 211 | /** |
212 | * cpm_muram_addr - turn a muram offset into a virtual address | 212 | * cpm_muram_addr - turn a muram offset into a virtual address |
213 | * @offset: muram offset to convert | 213 | * @offset: muram offset to convert |
diff --git a/drivers/soc/fsl/qe/qe_ic.c b/drivers/soc/fsl/qe/qe_ic.c index b77d01ff8330..ec2ca864b0c5 100644 --- a/drivers/soc/fsl/qe/qe_ic.c +++ b/drivers/soc/fsl/qe/qe_ic.c | |||
@@ -259,6 +259,11 @@ static int qe_ic_host_map(struct irq_domain *h, unsigned int virq, | |||
259 | struct qe_ic *qe_ic = h->host_data; | 259 | struct qe_ic *qe_ic = h->host_data; |
260 | struct irq_chip *chip; | 260 | struct irq_chip *chip; |
261 | 261 | ||
262 | if (hw >= ARRAY_SIZE(qe_ic_info)) { | ||
263 | pr_err("%s: Invalid hw irq number for QEIC\n", __func__); | ||
264 | return -EINVAL; | ||
265 | } | ||
266 | |||
262 | if (qe_ic_info[hw].mask == 0) { | 267 | if (qe_ic_info[hw].mask == 0) { |
263 | printk(KERN_ERR "Can't map reserved IRQ\n"); | 268 | printk(KERN_ERR "Can't map reserved IRQ\n"); |
264 | return -EINVAL; | 269 | return -EINVAL; |
@@ -407,7 +412,8 @@ int qe_ic_set_priority(unsigned int virq, unsigned int priority) | |||
407 | 412 | ||
408 | if (priority > 8 || priority == 0) | 413 | if (priority > 8 || priority == 0) |
409 | return -EINVAL; | 414 | return -EINVAL; |
410 | if (src > 127) | 415 | if (WARN_ONCE(src >= ARRAY_SIZE(qe_ic_info), |
416 | "%s: Invalid hw irq number for QEIC\n", __func__)) | ||
411 | return -EINVAL; | 417 | return -EINVAL; |
412 | if (qe_ic_info[src].pri_reg == 0) | 418 | if (qe_ic_info[src].pri_reg == 0) |
413 | return -EINVAL; | 419 | return -EINVAL; |
@@ -436,6 +442,9 @@ int qe_ic_set_high_priority(unsigned int virq, unsigned int priority, int high) | |||
436 | 442 | ||
437 | if (priority > 2 || priority == 0) | 443 | if (priority > 2 || priority == 0) |
438 | return -EINVAL; | 444 | return -EINVAL; |
445 | if (WARN_ONCE(src >= ARRAY_SIZE(qe_ic_info), | ||
446 | "%s: Invalid hw irq number for QEIC\n", __func__)) | ||
447 | return -EINVAL; | ||
439 | 448 | ||
440 | switch (qe_ic_info[src].pri_reg) { | 449 | switch (qe_ic_info[src].pri_reg) { |
441 | case QEIC_CIPZCC: | 450 | case QEIC_CIPZCC: |
diff --git a/include/linux/fsl/guts.h b/include/linux/fsl/guts.h index 84d971ff3fba..649e9171a9b3 100644 --- a/include/linux/fsl/guts.h +++ b/include/linux/fsl/guts.h | |||
@@ -189,4 +189,109 @@ static inline void guts_set_pmuxcr_dma(struct ccsr_guts __iomem *guts, | |||
189 | 189 | ||
190 | #endif | 190 | #endif |
191 | 191 | ||
192 | struct ccsr_rcpm_v1 { | ||
193 | u8 res0000[4]; | ||
194 | __be32 cdozsr; /* 0x0004 Core Doze Status Register */ | ||
195 | u8 res0008[4]; | ||
196 | __be32 cdozcr; /* 0x000c Core Doze Control Register */ | ||
197 | u8 res0010[4]; | ||
198 | __be32 cnapsr; /* 0x0014 Core Nap Status Register */ | ||
199 | u8 res0018[4]; | ||
200 | __be32 cnapcr; /* 0x001c Core Nap Control Register */ | ||
201 | u8 res0020[4]; | ||
202 | __be32 cdozpsr; /* 0x0024 Core Doze Previous Status Register */ | ||
203 | u8 res0028[4]; | ||
204 | __be32 cnappsr; /* 0x002c Core Nap Previous Status Register */ | ||
205 | u8 res0030[4]; | ||
206 | __be32 cwaitsr; /* 0x0034 Core Wait Status Register */ | ||
207 | u8 res0038[4]; | ||
208 | __be32 cwdtdsr; /* 0x003c Core Watchdog Detect Status Register */ | ||
209 | __be32 powmgtcsr; /* 0x0040 PM Control&Status Register */ | ||
210 | #define RCPM_POWMGTCSR_SLP 0x00020000 | ||
211 | u8 res0044[12]; | ||
212 | __be32 ippdexpcr; /* 0x0050 IP Powerdown Exception Control Register */ | ||
213 | u8 res0054[16]; | ||
214 | __be32 cpmimr; /* 0x0064 Core PM IRQ Mask Register */ | ||
215 | u8 res0068[4]; | ||
216 | __be32 cpmcimr; /* 0x006c Core PM Critical IRQ Mask Register */ | ||
217 | u8 res0070[4]; | ||
218 | __be32 cpmmcmr; /* 0x0074 Core PM Machine Check Mask Register */ | ||
219 | u8 res0078[4]; | ||
220 | __be32 cpmnmimr; /* 0x007c Core PM NMI Mask Register */ | ||
221 | u8 res0080[4]; | ||
222 | __be32 ctbenr; /* 0x0084 Core Time Base Enable Register */ | ||
223 | u8 res0088[4]; | ||
224 | __be32 ctbckselr; /* 0x008c Core Time Base Clock Select Register */ | ||
225 | u8 res0090[4]; | ||
226 | __be32 ctbhltcr; /* 0x0094 Core Time Base Halt Control Register */ | ||
227 | u8 res0098[4]; | ||
228 | __be32 cmcpmaskcr; /* 0x00a4 Core Machine Check Mask Register */ | ||
229 | }; | ||
230 | |||
231 | struct ccsr_rcpm_v2 { | ||
232 | u8 res_00[12]; | ||
233 | __be32 tph10sr0; /* Thread PH10 Status Register */ | ||
234 | u8 res_10[12]; | ||
235 | __be32 tph10setr0; /* Thread PH10 Set Control Register */ | ||
236 | u8 res_20[12]; | ||
237 | __be32 tph10clrr0; /* Thread PH10 Clear Control Register */ | ||
238 | u8 res_30[12]; | ||
239 | __be32 tph10psr0; /* Thread PH10 Previous Status Register */ | ||
240 | u8 res_40[12]; | ||
241 | __be32 twaitsr0; /* Thread Wait Status Register */ | ||
242 | u8 res_50[96]; | ||
243 | __be32 pcph15sr; /* Physical Core PH15 Status Register */ | ||
244 | __be32 pcph15setr; /* Physical Core PH15 Set Control Register */ | ||
245 | __be32 pcph15clrr; /* Physical Core PH15 Clear Control Register */ | ||
246 | __be32 pcph15psr; /* Physical Core PH15 Prev Status Register */ | ||
247 | u8 res_c0[16]; | ||
248 | __be32 pcph20sr; /* Physical Core PH20 Status Register */ | ||
249 | __be32 pcph20setr; /* Physical Core PH20 Set Control Register */ | ||
250 | __be32 pcph20clrr; /* Physical Core PH20 Clear Control Register */ | ||
251 | __be32 pcph20psr; /* Physical Core PH20 Prev Status Register */ | ||
252 | __be32 pcpw20sr; /* Physical Core PW20 Status Register */ | ||
253 | u8 res_e0[12]; | ||
254 | __be32 pcph30sr; /* Physical Core PH30 Status Register */ | ||
255 | __be32 pcph30setr; /* Physical Core PH30 Set Control Register */ | ||
256 | __be32 pcph30clrr; /* Physical Core PH30 Clear Control Register */ | ||
257 | __be32 pcph30psr; /* Physical Core PH30 Prev Status Register */ | ||
258 | u8 res_100[32]; | ||
259 | __be32 ippwrgatecr; /* IP Power Gating Control Register */ | ||
260 | u8 res_124[12]; | ||
261 | __be32 powmgtcsr; /* Power Management Control & Status Reg */ | ||
262 | #define RCPM_POWMGTCSR_LPM20_RQ 0x00100000 | ||
263 | #define RCPM_POWMGTCSR_LPM20_ST 0x00000200 | ||
264 | #define RCPM_POWMGTCSR_P_LPM20_ST 0x00000100 | ||
265 | u8 res_134[12]; | ||
266 | __be32 ippdexpcr[4]; /* IP Powerdown Exception Control Reg */ | ||
267 | u8 res_150[12]; | ||
268 | __be32 tpmimr0; /* Thread PM Interrupt Mask Reg */ | ||
269 | u8 res_160[12]; | ||
270 | __be32 tpmcimr0; /* Thread PM Crit Interrupt Mask Reg */ | ||
271 | u8 res_170[12]; | ||
272 | __be32 tpmmcmr0; /* Thread PM Machine Check Interrupt Mask Reg */ | ||
273 | u8 res_180[12]; | ||
274 | __be32 tpmnmimr0; /* Thread PM NMI Mask Reg */ | ||
275 | u8 res_190[12]; | ||
276 | __be32 tmcpmaskcr0; /* Thread Machine Check Mask Control Reg */ | ||
277 | __be32 pctbenr; /* Physical Core Time Base Enable Reg */ | ||
278 | __be32 pctbclkselr; /* Physical Core Time Base Clock Select */ | ||
279 | __be32 tbclkdivr; /* Time Base Clock Divider Register */ | ||
280 | u8 res_1ac[4]; | ||
281 | __be32 ttbhltcr[4]; /* Thread Time Base Halt Control Register */ | ||
282 | __be32 clpcl10sr; /* Cluster PCL10 Status Register */ | ||
283 | __be32 clpcl10setr; /* Cluster PCL30 Set Control Register */ | ||
284 | __be32 clpcl10clrr; /* Cluster PCL30 Clear Control Register */ | ||
285 | __be32 clpcl10psr; /* Cluster PCL30 Prev Status Register */ | ||
286 | __be32 cddslpsetr; /* Core Domain Deep Sleep Set Register */ | ||
287 | __be32 cddslpclrr; /* Core Domain Deep Sleep Clear Register */ | ||
288 | __be32 cdpwroksetr; /* Core Domain Power OK Set Register */ | ||
289 | __be32 cdpwrokclrr; /* Core Domain Power OK Clear Register */ | ||
290 | __be32 cdpwrensr; /* Core Domain Power Enable Status Register */ | ||
291 | __be32 cddslsr; /* Core Domain Deep Sleep Status Register */ | ||
292 | u8 res_1e8[8]; | ||
293 | __be32 dslpcntcr[8]; /* Deep Sleep Counter Cfg Register */ | ||
294 | u8 res_300[3568]; | ||
295 | }; | ||
296 | |||
192 | #endif | 297 | #endif |
diff --git a/include/soc/fsl/qe/qe.h b/include/soc/fsl/qe/qe.h index c7fa36c335c9..33b29ead3d55 100644 --- a/include/soc/fsl/qe/qe.h +++ b/include/soc/fsl/qe/qe.h | |||
@@ -103,8 +103,6 @@ int cpm_muram_init(void); | |||
103 | unsigned long cpm_muram_alloc(unsigned long size, unsigned long align); | 103 | unsigned long cpm_muram_alloc(unsigned long size, unsigned long align); |
104 | int cpm_muram_free(unsigned long offset); | 104 | int cpm_muram_free(unsigned long offset); |
105 | unsigned long cpm_muram_alloc_fixed(unsigned long offset, unsigned long size); | 105 | unsigned long cpm_muram_alloc_fixed(unsigned long offset, unsigned long size); |
106 | unsigned long cpm_muram_alloc_common(unsigned long size, genpool_algo_t algo, | ||
107 | void *data); | ||
108 | void __iomem *cpm_muram_addr(unsigned long offset); | 106 | void __iomem *cpm_muram_addr(unsigned long offset); |
109 | unsigned long cpm_muram_offset(void __iomem *addr); | 107 | unsigned long cpm_muram_offset(void __iomem *addr); |
110 | dma_addr_t cpm_muram_dma(void __iomem *addr); | 108 | dma_addr_t cpm_muram_dma(void __iomem *addr); |