diff options
| author | Vitaly Bordug <vbordug@ru.mvista.com> | 2007-01-24 14:42:10 -0500 |
|---|---|---|
| committer | Paul Mackerras <paulus@samba.org> | 2007-02-06 22:03:17 -0500 |
| commit | 29f1530f1958dc74f021186c9f31ed66a0c7b8ad (patch) | |
| tree | 15f60316419135f1e05b0dc03b6b0fd7c7f50a5d | |
| parent | df34403dcaacef541a67c955aebc37c51f53ca7c (diff) | |
[POWERPC] Add mpc866ads board-specific bits to arch/powerpc
This add support of the Freescale mpc86xads reference board to
arch/powerpc. Supported SMC1 and SMC2 (UART and serial console), FEC
100Mbps Ethernet, SCC1 Ethernet (10Mbps hdx)
Signed-off-by: Vitaly Bordug <vbordug@ru.mvista.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
| -rw-r--r-- | arch/powerpc/boot/dts/mpc866ads.dts | 162 | ||||
| -rw-r--r-- | arch/powerpc/configs/mpc866_ads_defconfig | 829 | ||||
| -rw-r--r-- | arch/powerpc/platforms/8xx/Makefile | 1 | ||||
| -rw-r--r-- | arch/powerpc/platforms/8xx/mpc86xads.h | 95 | ||||
| -rw-r--r-- | arch/powerpc/platforms/8xx/mpc86xads_setup.c | 301 | ||||
| -rw-r--r-- | include/asm-powerpc/mpc8xx.h | 4 |
6 files changed, 1392 insertions, 0 deletions
diff --git a/arch/powerpc/boot/dts/mpc866ads.dts b/arch/powerpc/boot/dts/mpc866ads.dts new file mode 100644 index 000000000000..5d4005239b83 --- /dev/null +++ b/arch/powerpc/boot/dts/mpc866ads.dts | |||
| @@ -0,0 +1,162 @@ | |||
| 1 | /* | ||
| 2 | * MPC866 ADS Device Tree Source | ||
| 3 | * | ||
| 4 | * Copyright 2006 MontaVista Software, 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 | |||
| 13 | / { | ||
| 14 | model = "MPC866ADS"; | ||
| 15 | compatible = "mpc8xx"; | ||
| 16 | #address-cells = <1>; | ||
| 17 | #size-cells = <1>; | ||
| 18 | linux,phandle = <100>; | ||
| 19 | |||
| 20 | cpus { | ||
| 21 | #cpus = <1>; | ||
| 22 | #address-cells = <1>; | ||
| 23 | #size-cells = <0>; | ||
| 24 | linux,phandle = <200>; | ||
| 25 | |||
| 26 | PowerPC,866@0 { | ||
| 27 | device_type = "cpu"; | ||
| 28 | reg = <0>; | ||
| 29 | d-cache-line-size = <20>; // 32 bytes | ||
| 30 | i-cache-line-size = <20>; // 32 bytes | ||
| 31 | d-cache-size = <2000>; // L1, 8K | ||
| 32 | i-cache-size = <4000>; // L1, 16K | ||
| 33 | timebase-frequency = <0>; | ||
| 34 | bus-frequency = <0>; | ||
| 35 | clock-frequency = <0>; | ||
| 36 | 32-bit; | ||
| 37 | interrupts = <f 2>; // decrementer interrupt | ||
| 38 | interrupt-parent = <ff000000>; | ||
| 39 | linux,phandle = <201>; | ||
| 40 | linux,boot-cpu; | ||
| 41 | }; | ||
| 42 | }; | ||
| 43 | |||
| 44 | memory { | ||
| 45 | device_type = "memory"; | ||
| 46 | linux,phandle = <300>; | ||
| 47 | reg = <00000000 800000>; | ||
| 48 | }; | ||
| 49 | |||
| 50 | soc866@ff000000 { | ||
| 51 | #address-cells = <1>; | ||
| 52 | #size-cells = <1>; | ||
| 53 | #interrupt-cells = <2>; | ||
| 54 | device_type = "soc"; | ||
| 55 | ranges = <0 ff000000 00100000>; | ||
| 56 | reg = <ff000000 00000200>; | ||
| 57 | bus-frequency = <0>; | ||
| 58 | mdio@e80 { | ||
| 59 | device_type = "mdio"; | ||
| 60 | compatible = "fs_enet"; | ||
| 61 | reg = <e80 8>; | ||
| 62 | linux,phandle = <e80>; | ||
| 63 | #address-cells = <1>; | ||
| 64 | #size-cells = <0>; | ||
| 65 | ethernet-phy@f { | ||
| 66 | linux,phandle = <e800f>; | ||
| 67 | reg = <f>; | ||
| 68 | device_type = "ethernet-phy"; | ||
| 69 | }; | ||
| 70 | }; | ||
| 71 | |||
| 72 | fec@e00 { | ||
| 73 | device_type = "network"; | ||
| 74 | compatible = "fs_enet"; | ||
| 75 | model = "FEC"; | ||
| 76 | device-id = <1>; | ||
| 77 | reg = <e00 188>; | ||
| 78 | mac-address = [ 00 00 0C 00 01 FD ]; | ||
| 79 | interrupts = <3 1>; | ||
| 80 | interrupt-parent = <ff000000>; | ||
| 81 | phy-handle = <e800f>; | ||
| 82 | }; | ||
| 83 | |||
| 84 | pic@ff000000 { | ||
| 85 | linux,phandle = <ff000000>; | ||
| 86 | interrupt-controller; | ||
| 87 | #address-cells = <0>; | ||
| 88 | #interrupt-cells = <2>; | ||
| 89 | reg = <0 24>; | ||
| 90 | built-in; | ||
| 91 | device_type = "mpc8xx-pic"; | ||
| 92 | compatible = "CPM"; | ||
| 93 | }; | ||
| 94 | |||
| 95 | cpm@ff000000 { | ||
| 96 | linux,phandle = <ff000000>; | ||
| 97 | #address-cells = <1>; | ||
| 98 | #size-cells = <1>; | ||
| 99 | #interrupt-cells = <2>; | ||
| 100 | device_type = "cpm"; | ||
| 101 | model = "CPM"; | ||
| 102 | ranges = <0 0 4000>; | ||
| 103 | reg = <860 f0>; | ||
| 104 | command-proc = <9c0>; | ||
| 105 | brg-frequency = <0>; | ||
| 106 | interrupts = <0 2>; // cpm error interrupt | ||
| 107 | interrupt-parent = <930>; | ||
| 108 | |||
| 109 | pic@930 { | ||
| 110 | linux,phandle = <930>; | ||
| 111 | interrupt-controller; | ||
| 112 | #address-cells = <0>; | ||
| 113 | #interrupt-cells = <2>; | ||
| 114 | interrupts = <5 2 0 2>; | ||
| 115 | interrupt-parent = <ff000000>; | ||
| 116 | reg = <930 20>; | ||
| 117 | built-in; | ||
| 118 | device_type = "cpm-pic"; | ||
| 119 | compatible = "CPM"; | ||
| 120 | }; | ||
| 121 | |||
| 122 | smc@a80 { | ||
| 123 | device_type = "serial"; | ||
| 124 | compatible = "cpm_uart"; | ||
| 125 | model = "SMC"; | ||
| 126 | device-id = <1>; | ||
| 127 | reg = <a80 10 3e80 40>; | ||
| 128 | clock-setup = <00ffffff 0>; | ||
| 129 | rx-clock = <1>; | ||
| 130 | tx-clock = <1>; | ||
| 131 | current-speed = <0>; | ||
| 132 | interrupts = <4 3>; | ||
| 133 | interrupt-parent = <930>; | ||
| 134 | }; | ||
| 135 | |||
| 136 | smc@a90 { | ||
| 137 | device_type = "serial"; | ||
| 138 | compatible = "cpm_uart"; | ||
| 139 | model = "SMC"; | ||
| 140 | device-id = <2>; | ||
| 141 | reg = <a90 20 3f80 40>; | ||
| 142 | clock-setup = <ff00ffff 90000>; | ||
| 143 | rx-clock = <2>; | ||
| 144 | tx-clock = <2>; | ||
| 145 | current-speed = <0>; | ||
| 146 | interrupts = <3 3>; | ||
| 147 | interrupt-parent = <930>; | ||
| 148 | }; | ||
| 149 | |||
| 150 | scc@a00 { | ||
| 151 | device_type = "network"; | ||
| 152 | compatible = "fs_enet"; | ||
| 153 | model = "SCC"; | ||
| 154 | device-id = <1>; | ||
| 155 | reg = <a00 18 3c00 80>; | ||
| 156 | mac-address = [ 00 00 0C 00 03 FD ]; | ||
| 157 | interrupts = <1e 3>; | ||
| 158 | interrupt-parent = <930>; | ||
| 159 | }; | ||
| 160 | }; | ||
| 161 | }; | ||
| 162 | }; | ||
diff --git a/arch/powerpc/configs/mpc866_ads_defconfig b/arch/powerpc/configs/mpc866_ads_defconfig new file mode 100644 index 000000000000..539d9e3d3668 --- /dev/null +++ b/arch/powerpc/configs/mpc866_ads_defconfig | |||
| @@ -0,0 +1,829 @@ | |||
| 1 | # | ||
| 2 | # Automatically generated make config: don't edit | ||
| 3 | # Linux kernel version: 2.6.19-rc6 | ||
| 4 | # Fri Nov 24 21:13:55 2006 | ||
| 5 | # | ||
| 6 | # CONFIG_PPC64 is not set | ||
| 7 | CONFIG_PPC32=y | ||
| 8 | CONFIG_PPC_MERGE=y | ||
| 9 | CONFIG_MMU=y | ||
| 10 | CONFIG_GENERIC_HARDIRQS=y | ||
| 11 | CONFIG_IRQ_PER_CPU=y | ||
| 12 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | ||
| 13 | CONFIG_GENERIC_HWEIGHT=y | ||
| 14 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
| 15< | |||
