Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge remote branch 'kumar/next' into next

+1954 -1378
+61
Documentation/devicetree/bindings/net/can/fsl-flexcan.txt
··· 1 + CAN Device Tree Bindings 2 + ------------------------ 3 + 2011 Freescale Semiconductor, Inc. 4 + 5 + fsl,flexcan-v1.0 nodes 6 + ----------------------- 7 + In addition to the required compatible-, reg- and interrupt-properties, you can 8 + also specify which clock source shall be used for the controller. 9 + 10 + CPI Clock- Can Protocol Interface Clock 11 + This CLK_SRC bit of CTRL(control register) selects the clock source to 12 + the CAN Protocol Interface(CPI) to be either the peripheral clock 13 + (driven by the PLL) or the crystal oscillator clock. The selected clock 14 + is the one fed to the prescaler to generate the Serial Clock (Sclock). 15 + The PRESDIV field of CTRL(control register) controls a prescaler that 16 + generates the Serial Clock (Sclock), whose period defines the 17 + time quantum used to compose the CAN waveform. 18 + 19 + Can Engine Clock Source 20 + There are two sources for CAN clock 21 + - Platform Clock It represents the bus clock 22 + - Oscillator Clock 23 + 24 + Peripheral Clock (PLL) 25 + -------------- 26 + | 27 + --------- ------------- 28 + | |CPI Clock | Prescaler | Sclock 29 + | |---------------->| (1.. 256) |------------> 30 + --------- ------------- 31 + | | 32 + -------------- ---------------------CLK_SRC 33 + Oscillator Clock 34 + 35 + - fsl,flexcan-clock-source : CAN Engine Clock Source.This property selects 36 + the peripheral clock. PLL clock is fed to the 37 + prescaler to generate the Serial Clock (Sclock). 38 + Valid values are "oscillator" and "platform" 39 + "oscillator": CAN engine clock source is oscillator clock. 40 + "platform" The CAN engine clock source is the bus clock 41 + (platform clock). 42 + 43 + - fsl,flexcan-clock-divider : for the reference and system clock, an additional 44 + clock divider can be specified. 45 + - clock-frequency: frequency required to calculate the bitrate for FlexCAN. 46 + 47 + Note: 48 + - v1.0 of flexcan-v1.0 represent the IP block version for P1010 SOC. 49 + - P1010 does not have oscillator as the Clock Source.So the default 50 + Clock Source is platform clock. 51 + Examples: 52 + 53 + can0@1c000 { 54 + compatible = "fsl,flexcan-v1.0"; 55 + reg = <0x1c000 0x1000>; 56 + interrupts = <48 0x2>; 57 + interrupt-parent = <&mpic>; 58 + fsl,flexcan-clock-source = "platform"; 59 + fsl,flexcan-clock-divider = <2>; 60 + clock-frequency = <fixed by u-boot>; 61 + };
+76
Documentation/devicetree/bindings/powerpc/fsl/ifc.txt
··· 1 + Integrated Flash Controller 2 + 3 + Properties: 4 + - name : Should be ifc 5 + - compatible : should contain "fsl,ifc". The version of the integrated 6 + flash controller can be found in the IFC_REV register at 7 + offset zero. 8 + 9 + - #address-cells : Should be either two or three. The first cell is the 10 + chipselect number, and the remaining cells are the 11 + offset into the chipselect. 12 + - #size-cells : Either one or two, depending on how large each chipselect 13 + can be. 14 + - reg : Offset and length of the register set for the device 15 + - interrupts : IFC has two interrupts. The first one is the "common" 16 + interrupt(CM_EVTER_STAT), and second is the NAND interrupt 17 + (NAND_EVTER_STAT). 18 + 19 + - ranges : Each range corresponds to a single chipselect, and covers 20 + the entire access window as configured. 21 + 22 + Child device nodes describe the devices connected to IFC such as NOR (e.g. 23 + cfi-flash) and NAND (fsl,ifc-nand). There might be board specific devices 24 + like FPGAs, CPLDs, etc. 25 + 26 + Example: 27 + 28 + ifc@ffe1e000 { 29 + compatible = "fsl,ifc", "simple-bus"; 30 + #address-cells = <2>; 31 + #size-cells = <1>; 32 + reg = <0x0 0xffe1e000 0 0x2000>; 33 + interrupts = <16 2 19 2>; 34 + 35 + /* NOR, NAND Flashes and CPLD on board */ 36 + ranges = <0x0 0x0 0x0 0xee000000 0x02000000 37 + 0x1 0x0 0x0 0xffa00000 0x00010000 38 + 0x3 0x0 0x0 0xffb00000 0x00020000>; 39 + 40 + flash@0,0 { 41 + #address-cells = <1>; 42 + #size-cells = <1>; 43 + compatible = "cfi-flash"; 44 + reg = <0x0 0x0 0x2000000>; 45 + bank-width = <2>; 46 + device-width = <1>; 47 + 48 + partition@0 { 49 + /* 32MB for user data */ 50 + reg = <0x0 0x02000000>; 51 + label = "NOR Data"; 52 + }; 53 + }; 54 + 55 + flash@1,0 { 56 + #address-cells = <1>; 57 + #size-cells = <1>; 58 + compatible = "fsl,ifc-nand"; 59 + reg = <0x1 0x0 0x10000>; 60 + 61 + partition@0 { 62 + /* This location must not be altered */ 63 + /* 1MB for u-boot Bootloader Image */ 64 + reg = <0x0 0x00100000>; 65 + label = "NAND U-Boot Image"; 66 + read-only; 67 + }; 68 + }; 69 + 70 + cpld@3,0 { 71 + #address-cells = <1>; 72 + #size-cells = <1>; 73 + compatible = "fsl,p1010rdb-cpld"; 74 + reg = <0x3 0x0 0x000001f>; 75 + }; 76 + };
+38
Documentation/devicetree/bindings/powerpc/fsl/mpic-timer.txt
··· 1 + * Freescale MPIC timers 2 + 3 + Required properties: 4 + - compatible: "fsl,mpic-global-timer" 5 + 6 + - reg : Contains two regions. The first is the main timer register bank 7 + (GTCCRxx, GTBCRxx, GTVPRxx, GTDRxx). The second is the timer control 8 + register (TCRx) for the group. 9 + 10 + - fsl,available-ranges: use <start count> style section to define which 11 + timer interrupts can be used. This property is optional; without this, 12 + all timers within the group can be used. 13 + 14 + - interrupts: one interrupt per timer in the group, in order, starting 15 + with timer zero. If timer-available-ranges is present, only the 16 + interrupts that correspond to available timers shall be present. 17 + 18 + Example: 19 + /* Note that this requires #interrupt-cells to be 4 */ 20 + timer0: timer@41100 { 21 + compatible = "fsl,mpic-global-timer"; 22 + reg = <0x41100 0x100 0x41300 4>; 23 + 24 + /* Another AMP partition is using timers 0 and 1 */ 25 + fsl,available-ranges = <2 2>; 26 + 27 + interrupts = <2 0 3 0 28 + 3 0 3 0>; 29 + }; 30 + 31 + timer1: timer@42100 { 32 + compatible = "fsl,mpic-global-timer"; 33 + reg = <0x42100 0x100 0x42300 4>; 34 + interrupts = <4 0 3 0 35 + 5 0 3 0 36 + 6 0 3 0 37 + 7 0 3 0>; 38 + };
+1 -1
Documentation/devicetree/bindings/powerpc/fsl/mpic.txt
··· 190 190 */ 191 191 timer0: timer@41100 { 192 192 compatible = "fsl,mpic-global-timer"; 193 - reg = <0x41100 0x100>; 193 + reg = <0x41100 0x100 0x41300 4>; 194 194 interrupts = <0 0 3 0 195 195 1 0 3 0 196 196 2 0 3 0
+19 -313
arch/powerpc/boot/dts/p1020rdb.dts
··· 9 9 * option) any later version. 10 10 */ 11 11 12 - /dts-v1/; 12 + /include/ "p1020si.dtsi" 13 + 13 14 / { 14 - model = "fsl,P1020"; 15 + model = "fsl,P1020RDB"; 15 16 compatible = "fsl,P1020RDB"; 16 - #address-cells = <2>; 17 - #size-cells = <2>; 18 17 19 18 aliases { 20 19 serial0 = &serial0; ··· 25 26 pci1 = &pci1; 26 27 }; 27 28 28 - cpus { 29 - #address-cells = <1>; 30 - #size-cells = <0>; 31 - 32 - PowerPC,P1020@0 { 33 - device_type = "cpu"; 34 - reg = <0x0>; 35 - next-level-cache = <&L2>; 36 - }; 37 - 38 - PowerPC,P1020@1 { 39 - device_type = "cpu"; 40 - reg = <0x1>; 41 - next-level-cache = <&L2>; 42 - }; 43 - }; 44 - 45 29 memory { 46 30 device_type = "memory"; 47 31 }; 48 32 49 33 localbus@ffe05000 { 50 - #address-cells = <2>; 51 - #size-cells = <1>; 52 - compatible = "fsl,p1020-elbc", "fsl,elbc", "simple-bus"; 53 - reg = <0 0xffe05000 0 0x1000>; 54 - interrupts = <19 2>; 55 - interrupt-parent = <&mpic>; 56 34 57 35 /* NOR, NAND Flashes and Vitesse 5 port L2 switch */ 58 36 ranges = <0x0 0x0 0x0 0xef000000 0x01000000 ··· 141 165 }; 142 166 143 167 soc@ffe00000 { 144 - #address-cells = <1>; 145 - #size-cells = <1>; 146 - device_type = "soc"; 147 - compatible = "fsl,p1020-immr", "simple-bus"; 148 - ranges = <0x0 0x0 0xffe00000 0x100000>; 149 - bus-frequency = <0>; // Filled out by uboot. 150 - 151 - ecm-law@0 { 152 - compatible = "fsl,ecm-law"; 153 - reg = <0x0 0x1000>; 154 - fsl,num-laws = <12>; 155 - }; 156 - 157 - ecm@1000 { 158 - compatible = "fsl,p1020-ecm", "fsl,ecm"; 159 - reg = <0x1000 0x1000>; 160 - interrupts = <16 2>; 161 - interrupt-parent = <&mpic>; 162 - }; 163 - 164 - memory-controller@2000 { 165 - compatible = "fsl,p1020-memory-controller"; 166 - reg = <0x2000 0x1000>; 167 - interrupt-parent = <&mpic>; 168 - interrupts = <16 2>; 169 - }; 170 - 171 168 i2c@3000 { 172 - #address-cells = <1>; 173 - #size-cells = <0>; 174 - cell-index = <0>; 175 - compatible = "fsl-i2c"; 176 - reg = <0x3000 0x100>; 177 - interrupts = <43 2>; 178 - interrupt-parent = <&mpic>; 179 - dfsrr; 180 169 rtc@68 { 181 170 compatible = "dallas,ds1339"; 182 171 reg = <0x68>; 183 172 }; 184 173 }; 185 174 186 - i2c@3100 { 187 - #address-cells = <1>; 188 - #size-cells = <0>; 189 - cell-index = <1>; 190 - compatible = "fsl-i2c"; 191 - reg = <0x3100 0x100>; 192 - interrupts = <43 2>; 193 - interrupt-parent = <&mpic>; 194 - dfsrr; 195 - }; 196 - 197 - serial0: serial@4500 { 198 - cell-index = <0>; 199 - device_type = "serial"; 200 - compatible = "ns16550"; 201 - reg = <0x4500 0x100>; 202 - clock-frequency = <0>; 203 - interrupts = <42 2>; 204 - interrupt-parent = <&mpic>; 205 - }; 206 - 207 - serial1: serial@4600 { 208 - cell-index = <1>; 209 - device_type = "serial"; 210 - compatible = "ns16550"; 211 - reg = <0x4600 0x100>; 212 - clock-frequency = <0>; 213 - interrupts = <42 2>; 214 - interrupt-parent = <&mpic>; 215 - }; 216 - 217 175 spi@7000 { 218 - cell-index = <0>; 219 - #address-cells = <1>; 220 - #size-cells = <0>; 221 - compatible = "fsl,espi"; 222 - reg = <0x7000 0x1000>; 223 - interrupts = <59 0x2>; 224 - interrupt-parent = <&mpic>; 225 - mode = "cpu"; 226 176 227 177 fsl_m25p80@0 { 228 178 #address-cells = <1>; ··· 196 294 }; 197 295 }; 198 296 199 - gpio: gpio-controller@f000 { 200 - #gpio-cells = <2>; 201 - compatible = "fsl,mpc8572-gpio"; 202 - reg = <0xf000 0x100>; 203 - interrupts = <47 0x2>; 204 - interrupt-parent = <&mpic>; 205 - gpio-controller; 206 - }; 207 - 208 - L2: l2-cache-controller@20000 { 209 - compatible = "fsl,p1020-l2-cache-controller"; 210 - reg = <0x20000 0x1000>; 211 - cache-line-size = <32>; // 32 bytes 212 - cache-size = <0x40000>; // L2,256K 213 - interrupt-parent = <&mpic>; 214 - interrupts = <16 2>; 215 - }; 216 - 217 - dma@21300 { 218 - #address-cells = <1>; 219 - #size-cells = <1>; 220 - compatible = "fsl,eloplus-dma"; 221 - reg = <0x21300 0x4>; 222 - ranges = <0x0 0x21100 0x200>; 223 - cell-index = <0>; 224 - dma-channel@0 { 225 - compatible = "fsl,eloplus-dma-channel"; 226 - reg = <0x0 0x80>; 227 - cell-index = <0>; 228 - interrupt-parent = <&mpic>; 229 - interrupts = <20 2>; 230 - }; 231 - dma-channel@80 { 232 - compatible = "fsl,eloplus-dma-channel"; 233 - reg = <0x80 0x80>; 234 - cell-index = <1>; 235 - interrupt-parent = <&mpic>; 236 - interrupts = <21 2>; 237 - }; 238 - dma-channel@100 { 239 - compatible = "fsl,eloplus-dma-channel"; 240 - reg = <0x100 0x80>; 241 - cell-index = <2>; 242 - interrupt-parent = <&mpic>; 243 - interrupts = <22 2>; 244 - }; 245 - dma-channel@180 { 246 - compatible = "fsl,eloplus-dma-channel"; 247 - reg = <0x180 0x80>; 248 - cell-index = <3>; 249 - interrupt-parent = <&mpic>; 250 - interrupts = <23 2>; 251 - }; 252 - }; 253 - 254 297 mdio@24000 { 255 - #address-cells = <1>; 256 - #size-cells = <0>; 257 - compatible = "fsl,etsec2-mdio"; 258 - reg = <0x24000 0x1000 0xb0030 0x4>; 259 298 260 299 phy0: ethernet-phy@0 { 261 300 interrupt-parent = <&mpic>; ··· 212 369 }; 213 370 214 371 mdio@25000 { 215 - #address-cells = <1>; 216 - #size-cells = <0>; 217 - compatible = "fsl,etsec2-tbi"; 218 - reg = <0x25000 0x1000 0xb1030 0x4>; 219 372 220 373 tbi0: tbi-phy@11 { 221 374 reg = <0x11>; ··· 220 381 }; 221 382 222 383 enet0: ethernet@b0000 { 223 - #address-cells = <1>; 224 - #size-cells = <1>; 225 - device_type = "network"; 226 - model = "eTSEC"; 227 - compatible = "fsl,etsec2"; 228 - fsl,num_rx_queues = <0x8>; 229 - fsl,num_tx_queues = <0x8>; 230 - local-mac-address = [ 00 00 00 00 00 00 ]; 231 - interrupt-parent = <&mpic>; 232 384 fixed-link = <1 1 1000 0 0>; 233 385 phy-connection-type = "rgmii-id"; 234 386 235 - queue-group@0 { 236 - #address-cells = <1>; 237 - #size-cells = <1>; 238 - reg = <0xb0000 0x1000>; 239 - interrupts = <29 2 30 2 34 2>; 240 - }; 241 - 242 - queue-group@1 { 243 - #address-cells = <1>; 244 - #size-cells = <1>; 245 - reg = <0xb4000 0x1000>; 246 - interrupts = <17 2 18 2 24 2>; 247 - }; 248 387 }; 249 388 250 389 enet1: ethernet@b1000 { 251 - #address-cells = <1>; 252 - #size-cells = <1>; 253 - device_type = "network"; 254 - model = "eTSEC"; 255 - compatible = "fsl,etsec2"; 256 - fsl,num_rx_queues = <0x8>; 257 - fsl,num_tx_queues = <0x8>; 258 - local-mac-address = [ 00 00 00 00 00 00 ]; 259 - interrupt-parent = <&mpic>; 260 390 phy-handle = <&phy0>; 261 391 tbi-handle = <&tbi0>; 262 392 phy-connection-type = "sgmii"; 263 393 264 - queue-group@0 { 265 - #address-cells = <1>; 266 - #size-cells = <1>; 267 - reg = <0xb1000 0x1000>; 268 - interrupts = <35 2 36 2 40 2>; 269 - }; 270 - 271 - queue-group@1 { 272 - #address-cells = <1>; 273 - #size-cells = <1>; 274 - reg = <0xb5000 0x1000>; 275 - interrupts = <51 2 52 2 67 2>; 276 - }; 277 394 }; 278 395 279 396 enet2: ethernet@b2000 { 280 - #address-cells = <1>; 281 - #size-cells = <1>; 282 - device_type = "network"; 283 - model = "eTSEC"; 284 - compatible = "fsl,etsec2"; 285 - fsl,num_rx_queues = <0x8>; 286 - fsl,num_tx_queues = <0x8>; 287 - local-mac-address = [ 00 00 00 00 00 00 ]; 288 - interrupt-parent = <&mpic>; 289 397 phy-handle = <&phy1>; 290 398 phy-connection-type = "rgmii-id"; 291 399 292 - queue-group@0 { 293 - #address-cells = <1>; 294 - #size-cells = <1>; 295 - reg = <0xb2000 0x1000>; 296 - interrupts = <31 2 32 2 33 2>; 297 - }; 298 - 299 - queue-group@1 { 300 - #address-cells = <1>; 301 - #size-cells = <1>; 302 - reg = <0xb6000 0x1000>; 303 - interrupts = <25 2 26 2 27 2>; 304 - }; 305 400 }; 306 401 307 402 usb@22000 { 308 - #address-cells = <1>; 309 - #size-cells = <0>; 310 - compatible = "fsl-usb2-dr"; 311 - reg = <0x22000 0x1000>; 312 - interrupt-parent = <&mpic>; 313 - interrupts = <28 0x2>; 314 403 phy_type = "ulpi"; 315 404 }; 316 405 ··· 248 481 it enables USB2. OTOH, U-Boot does create a new node 249 482 when there isn't any. So, just comment it out. 250 483 usb@23000 { 251 - #address-cells = <1>; 252 - #size-cells = <0>; 253 - compatible = "fsl-usb2-dr"; 254 - reg = <0x23000 0x1000>; 255 - interrupt-parent = <&mpic>; 256 - interrupts = <46 0x2>; 257 484 phy_type = "ulpi"; 258 485 }; 259 486 */ 260 487 261 - sdhci@2e000 { 262 - compatible = "fsl,p1020-esdhc", "fsl,esdhc"; 263 - reg = <0x2e000 0x1000>; 264 - interrupts = <72 0x2>; 265 - interrupt-parent = <&mpic>; 266 - /* Filled in by U-Boot */ 267 - clock-frequency = <0>; 268 - }; 269 - 270 - crypto@30000 { 271 - compatible = "fsl,sec3.1", "fsl,sec3.0", "fsl,sec2.4", 272 - "fsl,sec2.2", "fsl,sec2.1", "fsl,sec2.0"; 273 - reg = <0x30000 0x10000>; 274 - interrupts = <45 2 58 2>; 275 - interrupt-parent = <&mpic>; 276 - fsl,num-channels = <4>; 277 - fsl,channel-fifo-len = <24>; 278 - fsl,exec-units-mask = <0xbfe>; 279 - fsl,descriptor-types-mask = <0x3ab0ebf>; 280 - }; 281 - 282 - mpic: pic@40000 { 283 - interrupt-controller; 284 - #address-cells = <0>; 285 - #interrupt-cells = <2>; 286 - reg = <0x40000 0x40000>; 287 - compatible = "chrp,open-pic"; 288 - device_type = "open-pic"; 289 - }; 290 - 291 - msi@41600 { 292 - compatible = "fsl,p1020-msi", "fsl,mpic-msi"; 293 - reg = <0x41600 0x80>; 294 - msi-available-ranges = <0 0x100>; 295 - interrupts = < 296 - 0xe0 0 297 - 0xe1 0 298 - 0xe2 0 299 - 0xe3 0 300 - 0xe4 0 301 - 0xe5 0 302 - 0xe6 0 303 - 0xe7 0>; 304 - interrupt-parent = <&mpic>; 305 - }; 306 - 307 - global-utilities@e0000 { //global utilities block 308 - compatible = "fsl,p1020-guts"; 309 - reg = <0xe0000 0x1000>; 310 - fsl,has-rstcr; 311 - }; 312 488 }; 313 489 314 490 pci0: pcie@ffe09000 { 315 - compatible = "fsl,mpc8548-pcie"; 316 - device_type = "pci"; 317 - #interrupt-cells = <1>; 318 - #size-cells = <2>; 319 - #address-cells = <3>; 320 - reg = <0 0xffe09000 0 0x1000>; 321 - bus-range = <0 255>; 322 491 ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000 323 492 0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>; 324 - clock-frequency = <33333333>; 325 - interrupt-parent = <&mpic>; 326 - interrupts = <16 2>; 493 + interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 494 + interrupt-map = < 495 + /* IDSEL 0x0 */ 496 + 0000 0x0 0x0 0x1 &mpic 0x4 0x1 497 + 0000 0x0 0x0 0x2 &mpic 0x5 0x1 498 + 0000 0x0 0x0 0x3 &mpic 0x6 0x1 499 + 0000 0x0 0x0 0x4 &mpic 0x7 0x1 500 + >; 327 501 pcie@0 { 328 502 reg = <0x0 0x0 0x0 0x0 0x0>; 329 503 #size-cells = <2>; ··· 281 573 }; 282 574 283 575 pci1: pcie@ffe0a000 { 284 - compatible = "fsl,mpc8548-pcie"; 285 - device_type = "pci"; 286 - #interrupt-cells = <1>; 287 - #size-cells = <2>; 288 - #address-cells = <3>; 289 - reg = <0 0xffe0a000 0 0x1000>; 290 - bus-range = <0 255>; 291 576 ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000 292 577 0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>; 293 - clock-frequency = <33333333>; 294 - interrupt-parent = <&mpic>; 295 - interrupts = <16 2>; 578 + interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 579 + interrupt-map = < 580 + /* IDSEL 0x0 */ 581 + 0000 0x0 0x0 0x1 &mpic 0x0 0x1 582 + 0000 0x0 0x0 0x2 &mpic 0x1 0x1 583 + 0000 0x0 0x0 0x3 &mpic 0x2 0x1 584 + 0000 0x0 0x0 0x4 &mpic 0x3 0x1 585 + >; 296 586 pcie@0 { 297 587 reg = <0x0 0x0 0x0 0x0 0x0>; 298 588 #size-cells = <2>;
+213
arch/powerpc/boot/dts/p1020rdb_camp_core0.dts
··· 1 + /* 2 + * P1020 RDB Core0 Device Tree Source in CAMP mode. 3 + * 4 + * In CAMP mode, each core needs to have its own dts. Only mpic and L2 cache 5 + * can be shared, all the other devices must be assigned to one core only. 6 + * This dts file allows core0 to have memory, l2, i2c, spi, gpio, tdm, dma, usb, 7 + * eth1, eth2, sdhc, crypto, global-util, message, pci0, pci1, msi. 8 + * 9 + * Please note to add "-b 0" for core0's dts compiling. 10 + * 11 + * Copyright 2011 Freescale Semiconductor Inc. 12 + * 13 + * This program is free software; you can redistribute it and/or modify it 14 + * under the terms of the GNU General Public License as published by the 15 + * Free Software Foundation; either version 2 of the License, or (at your 16 + * option) any later version. 17 + */ 18 + 19 + /include/ "p1020si.dtsi" 20 + 21 + / { 22 + model = "fsl,P1020RDB"; 23 + compatible = "fsl,P1020RDB", "fsl,MPC85XXRDB-CAMP"; 24 + 25 + aliases { 26 + ethernet1 = &enet1; 27 + ethernet2 = &enet2; 28 + serial0 = &serial0; 29 + pci0 = &pci0; 30 + pci1 = &pci1; 31 + }; 32 + 33 + cpus { 34 + PowerPC,P1020@1 { 35 + status = "disabled"; 36 + }; 37 + }; 38 + 39 + memory { 40 + device_type = "memory"; 41 + }; 42 + 43 + localbus@ffe05000 { 44 + status = "disabled"; 45 + }; 46 + 47 + soc@ffe00000 { 48 + i2c@3000 { 49 + rtc@68 { 50 + compatible = "dallas,ds1339"; 51 + reg = <0x68>; 52 + }; 53 + }; 54 + 55 + serial1: serial@4600 { 56 + status = "disabled"; 57 + }; 58 + 59 + spi@7000 { 60 + fsl_m25p80@0 { 61 + #address-cells = <1>; 62 + #size-cells = <1>; 63 + compatible = "fsl,espi-flash"; 64 + reg = <0>; 65 + linux,modalias = "fsl_m25p80"; 66 + spi-max-frequency = <40000000>; 67 + 68 + partition@0 { 69 + /* 512KB for u-boot Bootloader Image */ 70 + reg = <0x0 0x00080000>; 71 + label = "SPI (RO) U-Boot Image"; 72 + read-only; 73 + }; 74 + 75 + partition@80000 { 76 + /* 512KB for DTB Image */ 77 + reg = <0x00080000 0x00080000>; 78 + label = "SPI (RO) DTB Image"; 79 + read-only; 80 + }; 81 + 82 + partition@100000 { 83 + /* 4MB for Linux Kernel Image */ 84 + reg = <0x00100000 0x00400000>; 85 + label = "SPI (RO) Linux Kernel Image"; 86 + read-only; 87 + }; 88 + 89 + partition@500000 { 90 + /* 4MB for Compressed RFS Image */ 91 + reg = <0x00500000 0x00400000>; 92 + label = "SPI (RO) Compressed RFS Image"; 93 + read-only; 94 + }; 95 + 96 + partition@900000 { 97 + /* 7MB for JFFS2 based RFS */ 98 + reg = <0x00900000 0x00700000>; 99 + label = "SPI (RW) JFFS2 RFS"; 100 + }; 101 + }; 102 + }; 103 + 104 + mdio@24000 { 105 + phy0: ethernet-phy@0 { 106 + interrupt-parent = <&mpic>; 107 + interrupts = <3 1>; 108 + reg = <0x0>; 109 + }; 110 + phy1: ethernet-phy@1 { 111 + interrupt-parent = <&mpic>; 112 + interrupts = <2 1>; 113 + reg = <0x1>; 114 + }; 115 + }; 116 + 117 + mdio@25000 { 118 + tbi0: tbi-phy@11 { 119 + reg = <0x11>; 120 + device_type = "tbi-phy"; 121 + }; 122 + }; 123 + 124 + enet0: ethernet@b0000 { 125 + status = "disabled"; 126 + }; 127 + 128 + enet1: ethernet@b1000 { 129 + phy-handle = <&phy0>; 130 + tbi-handle = <&tbi0>; 131 + phy-connection-type = "sgmii"; 132 + }; 133 + 134 + enet2: ethernet@b2000 { 135 + phy-handle = <&phy1>; 136 + phy-connection-type = "rgmii-id"; 137 + }; 138 + 139 + usb@22000 { 140 + phy_type = "ulpi"; 141 + }; 142 + 143 + /* USB2 is shared with localbus, so it must be disabled 144 + by default. We can't put 'status = "disabled";' here 145 + since U-Boot doesn't clear the status property when 146 + it enables USB2. OTOH, U-Boot does create a new node 147 + when there isn't any. So, just comment it out. 148 + usb@23000 { 149 + phy_type = "ulpi"; 150 + }; 151 + */ 152 + 153 + mpic: pic@40000 { 154 + protected-sources = < 155 + 42 29 30 34 /* serial1, enet0-queue-group0 */ 156 + 17 18 24 45 /* enet0-queue-group1, crypto */ 157 + >; 158 + }; 159 + 160 + }; 161 + 162 + pci0: pcie@ffe09000 { 163 + ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000 164 + 0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>; 165 + interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 166 + interrupt-map = < 167 + /* IDSEL 0x0 */ 168 + 0000 0x0 0x0 0x1 &mpic 0x4 0x1 169 + 0000 0x0 0x0 0x2 &mpic 0x5 0x1 170 + 0000 0x0 0x0 0x3 &mpic 0x6 0x1 171 + 0000 0x0 0x0 0x4 &mpic 0x7 0x1 172 + >; 173 + pcie@0 { 174 + reg = <0x0 0x0 0x0 0x0 0x0>; 175 + #size-cells = <2>; 176 + #address-cells = <3>; 177 + device_type = "pci"; 178 + ranges = <0x2000000 0x0 0xa0000000 179 + 0x2000000 0x0 0xa0000000 180 + 0x0 0x20000000 181 + 182 + 0x1000000 0x0 0x0 183 + 0x1000000 0x0 0x0 184 + 0x0 0x100000>; 185 + }; 186 + }; 187 + 188 + pci1: pcie@ffe0a000 { 189 + ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000 190 + 0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>; 191 + interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 192 + interrupt-map = < 193 + /* IDSEL 0x0 */ 194 + 0000 0x0 0x0 0x1 &mpic 0x0 0x1 195 + 0000 0x0 0x0 0x2 &mpic 0x1 0x1 196 + 0000 0x0 0x0 0x3 &mpic 0x2 0x1 197 + 0000 0x0 0x0 0x4 &mpic 0x3 0x1 198 + >; 199 + pcie@0 { 200 + reg = <0x0 0x0 0x0 0x0 0x0>; 201 + #size-cells = <2>; 202 + #address-cells = <3>; 203 + device_type = "pci"; 204 + ranges = <0x2000000 0x0 0x80000000 205 + 0x2000000 0x0 0x80000000 206 + 0x0 0x20000000 207 + 208 + 0x1000000 0x0 0x0 209 + 0x1000000 0x0 0x0 210 + 0x0 0x100000>; 211 + }; 212 + }; 213 + };
+148
arch/powerpc/boot/dts/p1020rdb_camp_core1.dts
··· 1 + /* 2 + * P1020 RDB Core1 Device Tree Source in CAMP mode. 3 + * 4 + * In CAMP mode, each core needs to have its own dts. Only mpic and L2 cache 5 + * can be shared, all the other devices must be assigned to one core only. 6 + * This dts allows core1 to have l2, eth0, crypto. 7 + * 8 + * Please note to add "-b 1" for core1's dts compiling. 9 + * 10 + * Copyright 2011 Freescale Semiconductor Inc. 11 + * 12 + * This program is free software; you can redistribute it and/or modify it 13 + * under the terms of the GNU General Public License as published by the 14 + * Free Software Foundation; either version 2 of the License, or (at your 15 + * option) any later version. 16 + */ 17 + 18 + /include/ "p1020si.dtsi" 19 + 20 + / { 21 + model = "fsl,P1020RDB"; 22 + compatible = "fsl,P1020RDB", "fsl,MPC85XXRDB-CAMP"; 23 + 24 + aliases { 25 + ethernet0 = &enet0; 26 + serial0 = &serial1; 27 + }; 28 + 29 + cpus { 30 + PowerPC,P1020@0 { 31 + status = "disabled"; 32 + }; 33 + }; 34 + 35 + memory { 36 + device_type = "memory"; 37 + }; 38 + 39 + localbus@ffe05000 { 40 + status = "disabled"; 41 + }; 42 + 43 + soc@ffe00000 { 44 + ecm-law@0 { 45 + status = "disabled"; 46 + }; 47 + 48 + ecm@1000 { 49 + status = "disabled"; 50 + }; 51 + 52 + memory-controller@2000 { 53 + status = "disabled"; 54 + }; 55 + 56 + i2c@3000 { 57 + status = "disabled"; 58 + }; 59 + 60 + i2c@3100 { 61 + status = "disabled"; 62 + }; 63 + 64 + serial0: serial@4500 { 65 + status = "disabled"; 66 + }; 67 + 68 + spi@7000 { 69 + status = "disabled"; 70 + }; 71 + 72 + gpio: gpio-controller@f000 { 73 + status = "disabled"; 74 + }; 75 + 76 + dma@21300 { 77 + status = "disabled"; 78 + }; 79 + 80 + mdio@24000 { 81 + status = "disabled"; 82 + }; 83 + 84 + mdio@25000 { 85 + status = "disabled"; 86 + }; 87 + 88 + enet0: ethernet@b0000 { 89 + fixed-link = <1 1 1000 0 0>; 90 + phy-connection-type = "rgmii-id"; 91 + 92 + }; 93 + 94 + enet1: ethernet@b1000 { 95 + status = "disabled"; 96 + }; 97 + 98 + enet2: ethernet@b2000 { 99 + status = "disabled"; 100 + }; 101 + 102 + usb@22000 { 103 + status = "disabled"; 104 + }; 105 + 106 + sdhci@2e000 { 107 + status = "disabled"; 108 + }; 109 + 110 + mpic: pic@40000 { 111 + protected-sources = < 112 + 16 /* ecm, mem, L2, pci0, pci1 */ 113 + 43 42 59 /* i2c, serial0, spi */ 114 + 47 63 62 /* gpio, tdm */ 115 + 20 21 22 23 /* dma */ 116 + 03 02 /* mdio */ 117 + 35 36 40 /* enet1-queue-group0 */ 118 + 51 52 67 /* enet1-queue-group1 */ 119 + 31 32 33 /* enet2-queue-group0 */ 120 + 25 26 27 /* enet2-queue-group1 */ 121 + 28 72 58 /* usb, sdhci, crypto */ 122 + 0xb0 0xb1 0xb2 /* message */ 123 + 0xb3 0xb4 0xb5 124 + 0xb6 0xb7 125 + 0xe0 0xe1 0xe2 /* msi */ 126 + 0xe3 0xe4 0xe5 127 + 0xe6 0xe7 /* sdhci, crypto , pci */ 128 + >; 129 + }; 130 + 131 + msi@41600 { 132 + status = "disabled"; 133 + }; 134 + 135 + global-utilities@e0000 { //global utilities block 136 + status = "disabled"; 137 + }; 138 + 139 + }; 140 + 141 + pci0: pcie@ffe09000 { 142 + status = "disabled"; 143 + }; 144 + 145 + pci1: pcie@ffe0a000 { 146 + status = "disabled"; 147 + }; 148 + };
+377
arch/powerpc/boot/dts/p1020si.dtsi
··· 1 + /* 2 + * P1020si Device Tree Source 3 + * 4 + * Copyright 2011 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 + /dts-v1/; 13 + / { 14 + compatible = "fsl,P1020"; 15 + #address-cells = <2>; 16 + #size-cells = <2>; 17 + 18 + cpus { 19 + #address-cells = <1>; 20 + #size-cells = <0>; 21 + 22 + PowerPC,P1020@0 { 23 + device_type = "cpu"; 24 + reg = <0x0>; 25 + next-level-cache = <&L2>; 26 + }; 27 + 28 + PowerPC,P1020@1 { 29 + device_type = "cpu"; 30 + reg = <0x1>; 31 + next-level-cache = <&L2>; 32 + }; 33 + }; 34 + 35 + localbus@ffe05000 { 36 + #address-cells = <2>; 37 + #size-cells = <1>; 38 + compatible = "fsl,p1020-elbc", "fsl,elbc", "simple-bus"; 39 + reg = <0 0xffe05000 0 0x1000>; 40 + interrupts = <19 2>; 41 + interrupt-parent = <&mpic>; 42 + }; 43 + 44 + soc@ffe00000 { 45 + #address-cells = <1>; 46 + #size-cells = <1>; 47 + device_type = "soc"; 48 + compatible = "fsl,p1020-immr", "simple-bus"; 49 + ranges = <0x0 0x0 0xffe00000 0x100000>; 50 + bus-frequency = <0>; // Filled out by uboot. 51 + 52 + ecm-law@0 { 53 + compatible = "fsl,ecm-law"; 54 + reg = <0x0 0x1000>; 55 + fsl,num-laws = <12>; 56 + }; 57 + 58 + ecm@1000 { 59 + compatible = "fsl,p1020-ecm", "fsl,ecm"; 60 + reg = <0x1000 0x1000>; 61 + interrupts = <16 2>; 62 + interrupt-parent = <&mpic>; 63 + }; 64 + 65 + memory-controller@2000 { 66 + compatible = "fsl,p1020-memory-controller"; 67 + reg = <0x2000 0x1000>; 68 + interrupt-parent = <&mpic>; 69 + interrupts = <16 2>; 70 + }; 71 + 72 + i2c@3000 { 73 + #address-cells = <1>; 74 + #size-cells = <0>; 75 + cell-index = <0>; 76 + compatible = "fsl-i2c"; 77 + reg = <0x3000 0x100>; 78 + interrupts = <43 2>; 79 + interrupt-parent = <&mpic>; 80 + dfsrr; 81 + }; 82 + 83 + i2c@3100 { 84 + #address-cells = <1>; 85 + #size-cells = <0>; 86 + cell-index = <1>; 87 + compatible = "fsl-i2c"; 88 + reg = <0x3100 0x100>; 89 + interrupts = <43 2>; 90 + interrupt-parent = <&mpic>; 91 + dfsrr; 92 + }; 93 + 94 + serial0: serial@4500 { 95 + cell-index = <0>; 96 + device_type = "serial"; 97 + compatible = "ns16550"; 98 + reg = <0x4500 0x100>; 99 + clock-frequency = <0>; 100 + interrupts = <42 2>; 101 + interrupt-parent = <&mpic>; 102 + }; 103 + 104 + serial1: serial@4600 { 105 + cell-index = <1>; 106 + device_type = "serial"; 107 + compatible = "ns16550"; 108 + reg = <0x4600 0x100>; 109 + clock-frequency = <0>; 110 + interrupts = <42 2>; 111 + interrupt-parent = <&mpic>; 112 + }; 113 + 114 + spi@7000 { 115 + cell-index = <0>; 116 + #address-cells = <1>; 117 + #size-cells = <0>; 118 + compatible = "fsl,espi"; 119 + reg = <0x7000 0x1000>; 120 + interrupts = <59 0x2>; 121 + interrupt-parent = <&mpic>; 122 + mode = "cpu"; 123 + }; 124 + 125 + gpio: gpio-controller@f000 { 126 + #gpio-cells = <2>; 127 + compatible = "fsl,mpc8572-gpio"; 128 + reg = <0xf000 0x100>; 129 + interrupts = <47 0x2>; 130 + interrupt-parent = <&mpic>; 131 + gpio-controller; 132 + }; 133 + 134 + L2: l2-cache-controller@20000 { 135 + compatible = "fsl,p1020-l2-cache-controller"; 136 + reg = <0x20000 0x1000>; 137 + cache-line-size = <32>; // 32 bytes 138 + cache-size = <0x40000>; // L2,256K 139 + interrupt-parent = <&mpic>; 140 + interrupts = <16 2>; 141 + }; 142 + 143 + dma@21300 { 144 + #address-cells = <1>; 145 + #size-cells = <1>; 146 + compatible = "fsl,eloplus-dma"; 147 + reg = <0x21300 0x4>; 148 + ranges = <0x0 0x21100 0x200>; 149 + cell-index = <0>; 150 + dma-channel@0 { 151 + compatible = "fsl,eloplus-dma-channel"; 152 + reg = <0x0 0x80>; 153 + cell-index = <0>; 154 + interrupt-parent = <&mpic>; 155 + interrupts = <20 2>; 156 + }; 157 + dma-channel@80 { 158 + compatible = "fsl,eloplus-dma-channel"; 159 + reg = <0x80 0x80>; 160 + cell-index = <1>; 161 + interrupt-parent = <&mpic>; 162 + interrupts = <21 2>; 163 + }; 164 + dma-channel@100 { 165 + compatible = "fsl,eloplus-dma-channel"; 166 + reg = <0x100 0x80>; 167 + cell-index = <2>; 168 + interrupt-parent = <&mpic>; 169 + interrupts = <22 2>; 170 + }; 171 + dma-channel@180 { 172 + compatible = "fsl,eloplus-dma-channel"; 173 + reg = <0x180 0x80>; 174 + cell-index = <3>; 175 + interrupt-parent = <&mpic>; 176 + interrupts = <23 2>; 177 + }; 178 + }; 179 + 180 + mdio@24000 { 181 + #address-cells = <1>; 182 + #size-cells = <0>; 183 + compatible = "fsl,etsec2-mdio"; 184 + reg = <0x24000 0x1000 0xb0030 0x4>; 185 + 186 + }; 187 + 188 + mdio@25000 { 189 + #address-cells = <1>; 190 + #size-cells = <0>; 191 + compatible = "fsl,etsec2-tbi"; 192 + reg = <0x25000 0x1000 0xb1030 0x4>; 193 + 194 + }; 195 + 196 + enet0: ethernet@b0000 { 197 + #address-cells = <1>; 198 + #size-cells = <1>; 199 + device_type = "network"; 200 + model = "eTSEC"; 201 + compatible = "fsl,etsec2"; 202 + fsl,num_rx_queues = <0x8>; 203 + fsl,num_tx_queues = <0x8>; 204 + local-mac-address = [ 00 00 00 00 00 00 ]; 205 + interrupt-parent = <&mpic>; 206 + 207 + queue-group@0 { 208 + #address-cells = <1>; 209 + #size-cells = <1>; 210 + reg = <0xb0000 0x1000>; 211 + interrupts = <29 2 30 2 34 2>; 212 + }; 213 + 214 + queue-group@1 { 215 + #address-cells = <1>; 216 + #size-cells = <1>; 217 + reg = <0xb4000 0x1000>; 218 + interrupts = <17 2 18 2 24 2>; 219 + }; 220 + }; 221 + 222 + enet1: ethernet@b1000 { 223 + #address-cells = <1>; 224 + #size-cells = <1>; 225 + device_type = "network"; 226 + model = "eTSEC"; 227 + compatible = "fsl,etsec2"; 228 + fsl,num_rx_queues = <0x8>; 229 + fsl,num_tx_queues = <0x8>; 230 + local-mac-address = [ 00 00 00 00 00 00 ]; 231 + interrupt-parent = <&mpic>; 232 + 233 + queue-group@0 { 234 + #address-cells = <1>; 235 + #size-cells = <1>; 236 + reg = <0xb1000 0x1000>; 237 + interrupts = <35 2 36 2 40 2>; 238 + }; 239 + 240 + queue-group@1 { 241 + #address-cells = <1>; 242 + #size-cells = <1>; 243 + reg = <0xb5000 0x1000>; 244 + interrupts = <51 2 52 2 67 2>; 245 + }; 246 + }; 247 + 248 + enet2: ethernet@b2000 { 249 + #address-cells = <1>; 250 + #size-cells = <1>; 251 + device_type = "network"; 252 + model = "eTSEC"; 253 + compatible = "fsl,etsec2"; 254 + fsl,num_rx_queues = <0x8>; 255 + fsl,num_tx_queues = <0x8>; 256 + local-mac-address = [ 00 00 00 00 00 00 ]; 257 + interrupt-parent = <&mpic>; 258 + 259 + queue-group@0 { 260 + #address-cells = <1>; 261 + #size-cells = <1>; 262 + reg = <0xb2000 0x1000>; 263 + interrupts = <31 2 32 2 33 2>; 264 + }; 265 + 266 + queue-group@1 { 267 + #address-cells = <1>; 268 + #size-cells = <1>; 269 + reg = <0xb6000 0x1000>; 270 + interrupts = <25 2 26 2 27 2>; 271 + }; 272 + }; 273 + 274 + usb@22000 { 275 + #address-cells = <1>; 276 + #size-cells = <0>; 277 + compatible = "fsl-usb2-dr"; 278 + reg = <0x22000 0x1000>; 279 + interrupt-parent = <&mpic>; 280 + interrupts = <28 0x2>; 281 + }; 282 + 283 + /* USB2 is shared with localbus, so it must be disabled 284 + by default. We can't put 'status = "disabled";' here 285 + since U-Boot doesn't clear the status property when 286 + it enables USB2. OTOH, U-Boot does create a new node 287 + when there isn't any. So, just comment it out. 288 + usb@23000 { 289 + #address-cells = <1>; 290 + #size-cells = <0>; 291 + compatible = "fsl-usb2-dr"; 292 + reg = <0x23000 0x1000>; 293 + interrupt-parent = <&mpic>; 294 + interrupts = <46 0x2>; 295 + phy_type = "ulpi"; 296 + }; 297 + */ 298 + 299 + sdhci@2e000 { 300 + compatible = "fsl,p1020-esdhc", "fsl,esdhc"; 301 + reg = <0x2e000 0x1000>; 302 + interrupts = <72 0x2>; 303 + interrupt-parent = <&mpic>; 304 + /* Filled in by U-Boot */ 305 + clock-frequency = <0>; 306 + }; 307 + 308 + crypto@30000 { 309 + compatible = "fsl,sec3.1", "fsl,sec3.0", "fsl,sec2.4", 310 + "fsl,sec2.2", "fsl,sec2.1", "fsl,sec2.0"; 311 + reg = <0x30000 0x10000>; 312 + interrupts = <45 2 58 2>; 313 + interrupt-parent = <&mpic>; 314 + fsl,num-channels = <4>; 315 + fsl,channel-fifo-len = <24>; 316 + fsl,exec-units-mask = <0xbfe>; 317 + fsl,descriptor-types-mask = <0x3ab0ebf>; 318 + }; 319 + 320 + mpic: pic@40000 { 321 + interrupt-controller; 322 + #address-cells = <0>; 323 + #interrupt-cells = <2>; 324 + reg = <0x40000 0x40000>; 325 + compatible = "chrp,open-pic"; 326 + device_type = "open-pic"; 327 + }; 328 + 329 + msi@41600 { 330 + compatible = "fsl,p1020-msi", "fsl,mpic-msi"; 331 + reg = <0x41600 0x80>; 332 + msi-available-ranges = <0 0x100>; 333 + interrupts = < 334 + 0xe0 0 335 + 0xe1 0 336 + 0xe2 0 337 + 0xe3 0 338 + 0xe4 0 339 + 0xe5 0 340 + 0xe6 0 341 + 0xe7 0>; 342 + interrupt-parent = <&mpic>; 343 + }; 344 + 345 + global-utilities@e0000 { //global utilities block 346 + compatible = "fsl,p1020-guts","fsl,p2020-guts"; 347 + reg = <0xe0000 0x1000>; 348 + fsl,has-rstcr; 349 + }; 350 + }; 351 + 352 + pci0: pcie@ffe09000 { 353 + compatible = "fsl,mpc8548-pcie"; 354 + device_type = "pci"; 355 + #interrupt-cells = <1>; 356 + #size-cells = <2>; 357 + #address-cells = <3>; 358 + reg = <0 0xffe09000 0 0x1000>; 359 + bus-range = <0 255>; 360 + clock-frequency = <33333333>; 361 + interrupt-parent = <&mpic>; 362 + interrupts = <16 2>; 363 + }; 364 + 365 + pci1: pcie@ffe0a000 { 366 + compatible = "fsl,mpc8548-pcie"; 367 + device_type = "pci"; 368 + #interrupt-cells = <1>; 369 + #size-cells = <2>; 370 + #address-cells = <3>; 371 + reg = <0 0xffe0a000 0 0x1000>; 372 + bus-range = <0 255>; 373 + clock-frequency = <33333333>; 374 + interrupt-parent = <&mpic>; 375 + interrupts = <16 2>; 376 + }; 377 + };
+59 -47
arch/powerpc/boot/dts/p1022ds.dts
··· 52 52 #size-cells = <1>; 53 53 compatible = "fsl,p1022-elbc", "fsl,elbc", "simple-bus"; 54 54 reg = <0 0xffe05000 0 0x1000>; 55 - interrupts = <19 2>; 55 + interrupts = <19 2 0 0>; 56 56 57 57 ranges = <0x0 0x0 0xf 0xe8000000 0x08000000 58 58 0x1 0x0 0xf 0xe0000000 0x08000000 ··· 157 157 * IRQ8 is generated if the "EVENT" switch is pressed 158 158 * and PX_CTL[EVESEL] is set to 00. 159 159 */ 160 - interrupts = <8 8>; 160 + interrupts = <8 8 0 0>; 161 161 }; 162 162 }; 163 163 ··· 178 178 ecm@1000 { 179 179 compatible = "fsl,p1022-ecm", "fsl,ecm"; 180 180 reg = <0x1000 0x1000>; 181 - interrupts = <16 2>; 181 + interrupts = <16 2 0 0>; 182 182 }; 183 183 184 184 memory-controller@2000 { 185 185 compatible = "fsl,p1022-memory-controller"; 186 186 reg = <0x2000 0x1000>; 187 - interrupts = <16 2>; 187 + interrupts = <16 2 0 0>; 188 188 }; 189 189 190 190 i2c@3000 { ··· 193 193 cell-index = <0>; 194 194 compatible = "fsl-i2c"; 195 195 reg = <0x3000 0x100>; 196 - interrupts = <43 2>; 196 + interrupts = <43 2 0 0>; 197 197 dfsrr; 198 198 }; 199 199 ··· 203 203 cell-index = <1>; 204 204 compatible = "fsl-i2c"; 205 205 reg = <0x3100 0x100>; 206 - interrupts = <43 2>; 206 + interrupts = <43 2 0 0>; 207 207 dfsrr; 208 208 209 209 wm8776:codec@1a { ··· 220 220 compatible = "ns16550"; 221 221 reg = <0x4500 0x100>; 222 222 clock-frequency = <0>; 223 - interrupts = <42 2>; 223 + interrupts = <42 2 0 0>; 224 224 }; 225 225 226 226 serial1: serial@4600 { ··· 229 229 compatible = "ns16550"; 230 230 reg = <0x4600 0x100>; 231 231 clock-frequency = <0>; 232 - interrupts = <42 2>; 232 + interrupts = <42 2 0 0>; 233 233 }; 234 234 235 235 spi@7000 { ··· 238 238 #size-cells = <0>; 239 239 compatible = "fsl,espi"; 240 240 reg = <0x7000 0x1000>; 241 - interrupts = <59 0x2>; 241 + interrupts = <59 0x2 0 0>; 242 242 espi,num-ss-bits = <4>; 243 243 mode = "cpu"; 244 244 ··· 275 275 compatible = "fsl,mpc8610-ssi"; 276 276 cell-index = <0>; 277 277 reg = <0x15000 0x100>; 278 - interrupts = <75 2>; 278 + interrupts = <75 2 0 0>; 279 279 fsl,mode = "i2s-slave"; 280 280 codec-handle = <&wm8776>; 281 281 fsl,playback-dma = <&dma00>; ··· 294 294 compatible = "fsl,ssi-dma-channel"; 295 295 reg = <0x0 0x80>; 296 296 cell-index = <0>; 297 - interrupts = <76 2>; 297 + interrupts = <76 2 0 0>; 298 298 }; 299 299 dma01: dma-channel@80 { 300 300 compatible = "fsl,ssi-dma-channel"; 301 301 reg = <0x80 0x80>; 302 302 cell-index = <1>; 303 - interrupts = <77 2>; 303 + interrupts = <77 2 0 0>; 304 304 }; 305 305 dma-channel@100 { 306 306 compatible = "fsl,eloplus-dma-channel"; 307 307 reg = <0x100 0x80>; 308 308 cell-index = <2>; 309 - interrupts = <78 2>; 309 + interrupts = <78 2 0 0>; 310 310 }; 311 311 dma-channel@180 { 312 312 compatible = "fsl,eloplus-dma-channel"; 313 313 reg = <0x180 0x80>; 314 314 cell-index = <3>; 315 - interrupts = <79 2>; 315 + interrupts = <79 2 0 0>; 316 316 }; 317 317 }; 318 318 ··· 320 320 #gpio-cells = <2>; 321 321 compatible = "fsl,mpc8572-gpio"; 322 322 reg = <0xf000 0x100>; 323 - interrupts = <47 0x2>; 323 + interrupts = <47 0x2 0 0>; 324 324 gpio-controller; 325 325 }; 326 326 ··· 329 329 reg = <0x20000 0x1000>; 330 330 cache-line-size = <32>; // 32 bytes 331 331 cache-size = <0x40000>; // L2, 256K 332 - interrupts = <16 2>; 332 + interrupts = <16 2 0 0>; 333 333 }; 334 334 335 335 dma@21300 { ··· 343 343 compatible = "fsl,eloplus-dma-channel"; 344 344 reg = <0x0 0x80>; 345 345 cell-index = <0>; 346 - interrupts = <20 2>; 346 + interrupts = <20 2 0 0>; 347 347 }; 348 348 dma-channel@80 { 349 349 compatible = "fsl,eloplus-dma-channel"; 350 350 reg = <0x80 0x80>; 351 351 cell-index = <1>; 352 - interrupts = <21 2>; 352 + interrupts = <21 2 0 0>; 353 353 }; 354 354 dma-channel@100 { 355 355 compatible = "fsl,eloplus-dma-channel"; 356 356 reg = <0x100 0x80>; 357 357 cell-index = <2>; 358 - interrupts = <22 2>; 358 + interrupts = <22 2 0 0>; 359 359 }; 360 360 dma-channel@180 { 361 361 compatible = "fsl,eloplus-dma-channel"; 362 362 reg = <0x180 0x80>; 363 363 cell-index = <3>; 364 - interrupts = <23 2>; 364 + interrupts = <23 2 0 0>; 365 365 }; 366 366 }; 367 367 ··· 370 370 #size-cells = <0>; 371 371 compatible = "fsl-usb2-dr"; 372 372 reg = <0x22000 0x1000>; 373 - interrupts = <28 0x2>; 373 + interrupts = <28 0x2 0 0>; 374 374 phy_type = "ulpi"; 375 375 }; 376 376 ··· 381 381 reg = <0x24000 0x1000 0xb0030 0x4>; 382 382 383 383 phy0: ethernet-phy@0 { 384 - interrupts = <3 1>; 384 + interrupts = <3 1 0 0>; 385 385 reg = <0x1>; 386 386 }; 387 387 phy1: ethernet-phy@1 { 388 - interrupts = <9 1>; 388 + interrupts = <9 1 0 0>; 389 389 reg = <0x2>; 390 390 }; 391 391 }; ··· 416 416 #address-cells = <1>; 417 417 #size-cells = <1>; 418 418 reg = <0xB0000 0x1000>; 419 - interrupts = <29 2 30 2 34 2>; 419 + interrupts = <29 2 0 0 30 2 0 0 34 2 0 0>; 420 420 }; 421 421 queue-group@1{ 422 422 #address-cells = <1>; 423 423 #size-cells = <1>; 424 424 reg = <0xB4000 0x1000>; 425 - interrupts = <17 2 18 2 24 2>; 425 + interrupts = <17 2 0 0 18 2 0 0 24 2 0 0>; 426 426 }; 427 427 }; 428 428 ··· 443 443 #address-cells = <1>; 444 444 #size-cells = <1>; 445 445 reg = <0xB1000 0x1000>; 446 - interrupts = <35 2 36 2 40 2>; 446 + interrupts = <35 2 0 0 36 2 0 0 40 2 0 0>; 447 447 }; 448 448 queue-group@1{ 449 449 #address-cells = <1>; 450 450 #size-cells = <1>; 451 451 reg = <0xB5000 0x1000>; 452 - interrupts = <51 2 52 2 67 2>; 452 + interrupts = <51 2 0 0 52 2 0 0 67 2 0 0>; 453 453 }; 454 454 }; 455 455 456 456 sdhci@2e000 { 457 457 compatible = "fsl,p1022-esdhc", "fsl,esdhc"; 458 458 reg = <0x2e000 0x1000>; 459 - interrupts = <72 0x2>; 459 + interrupts = <72 0x2 0 0>; 460 460 fsl,sdhci-auto-cmd12; 461 461 /* Filled in by U-Boot */ 462 462 clock-frequency = <0>; ··· 467 467 "fsl,sec2.4", "fsl,sec2.2", "fsl,sec2.1", 468 468 "fsl,sec2.0"; 469 469 reg = <0x30000 0x10000>; 470 - interrupts = <45 2 58 2>; 470 + interrupts = <45 2 0 0 58 2 0 0>; 471 471 fsl,num-channels = <4>; 472 472 fsl,channel-fifo-len = <24>; 473 473 fsl,exec-units-mask = <0x97c>; ··· 478 478 compatible = "fsl,p1022-sata", "fsl,pq-sata-v2"; 479 479 reg = <0x18000 0x1000>; 480 480 cell-index = <1>; 481 - interrupts = <74 0x2>; 481 + interrupts = <74 0x2 0 0>; 482 482 }; 483 483 484 484 sata@19000 { 485 485 compatible = "fsl,p1022-sata", "fsl,pq-sata-v2"; 486 486 reg = <0x19000 0x1000>; 487 487 cell-index = <2>; 488 - interrupts = <41 0x2>; 488 + interrupts = <41 0x2 0 0>; 489 489 }; 490 490 491 491 power@e0070{ ··· 496 496 display@10000 { 497 497 compatible = "fsl,diu", "fsl,p1022-diu"; 498 498 reg = <0x10000 1000>; 499 - interrupts = <64 2>; 499 + interrupts = <64 2 0 0>; 500 500 }; 501 501 502 502 timer@41100 { 503 503 compatible = "fsl,mpic-global-timer"; 504 - reg = <0x41100 0x204>; 505 - interrupts = <0xf7 0x2>; 504 + reg = <0x41100 0x100 0x41300 4>; 505 + interrupts = <0 0 3 0 506 + 1 0 3 0 507 + 2 0 3 0 508 + 3 0 3 0>; 509 + }; 510 + 511 + timer@42100 { 512 + compatible = "fsl,mpic-global-timer"; 513 + reg = <0x42100 0x100 0x42300 4>; 514 + interrupts = <4 0 3 0 515 + 5 0 3 0 516 + 6 0 3 0 517 + 7 0 3 0>; 506 518 }; 507 519 508 520 mpic: pic@40000 { 509 521 interrupt-controller; 510 522 #address-cells = <0>; 511 - #interrupt-cells = <2>; 523 + #interrupt-cells = <4>; 512 524 reg = <0x40000 0x40000>; 513 - compatible = "chrp,open-pic"; 525 + compatible = "fsl,mpic"; 514 526 device_type = "open-pic"; 515 527 }; 516 528 ··· 531 519 reg = <0x41600 0x80>; 532 520 msi-available-ranges = <0 0x100>; 533 521 interrupts = < 534 - 0xe0 0 535 - 0xe1 0 536 - 0xe2 0 537 - 0xe3 0 538 - 0xe4 0 539 - 0xe5 0 540 - 0xe6 0 541 - 0xe7 0>; 522 + 0xe0 0 0 0 523 + 0xe1 0 0 0 524 + 0xe2 0 0 0 525 + 0xe3 0 0 0 526 + 0xe4 0 0 0 527 + 0xe5 0 0 0 528 + 0xe6 0 0 0 529 + 0xe7 0 0 0>; 542 530 }; 543 531 544 532 global-utilities@e0000 { //global utilities block ··· 559 547 ranges = <0x2000000 0x0 0xa0000000 0xc 0x20000000 0x0 0x20000000 560 548 0x1000000 0x0 0x00000000 0xf 0xffc10000 0x0 0x10000>; 561 549 clock-frequency = <33333333>; 562 - interrupts = <16 2>; 550 + interrupts = <16 2 0 0>; 563 551 interrupt-map-mask = <0xf800 0 0 7>; 564 552 interrupt-map = < 565 553 /* IDSEL 0x0 */ ··· 594 582 ranges = <0x2000000 0x0 0xc0000000 0xc 0x40000000 0x0 0x20000000 595 583 0x1000000 0x0 0x00000000 0xf 0xffc20000 0x0 0x10000>; 596 584 clock-frequency = <33333333>; 597 - interrupts = <16 2>; 585 + interrupts = <16 2 0 0>; 598 586 interrupt-map-mask = <0xf800 0 0 7>; 599 587 interrupt-map = < 600 588 /* IDSEL 0x0 */ ··· 630 618 ranges = <0x2000000 0x0 0x80000000 0xc 0x00000000 0x0 0x20000000 631 619 0x1000000 0x0 0x00000000 0xf 0xffc00000 0x0 0x10000>; 632 620 clock-frequency = <33333333>; 633 - interrupts = <16 2>; 621 + interrupts = <16 2 0 0>; 634 622 interrupt-map-mask = <0xf800 0 0 7>; 635 623 interrupt-map = < 636 624 /* IDSEL 0x0 */
+43 -361
arch/powerpc/boot/dts/p2020ds.dts
··· 1 1 /* 2 2 * P2020 DS Device Tree Source 3 3 * 4 - * Copyright 2009 Freescale Semiconductor Inc. 4 + * Copyright 2009-2011 Freescale Semiconductor Inc. 5 5 * 6 6 * This program is free software; you can redistribute it and/or modify it 7 7 * under the terms of the GNU General Public License as published by the ··· 9 9 * option) any later version. 10 10 */ 11 11 12 - /dts-v1/; 12 + /include/ "p2020si.dtsi" 13 + 13 14 / { 14 - model = "fsl,P2020"; 15 + model = "fsl,P2020DS"; 15 16 compatible = "fsl,P2020DS"; 16 - #address-cells = <2>; 17 - #size-cells = <2>; 18 17 19 18 aliases { 20 19 ethernet0 = &enet0; ··· 26 27 pci2 = &pci2; 27 28 }; 28 29 29 - cpus { 30 - #address-cells = <1>; 31 - #size-cells = <0>; 32 - 33 - PowerPC,P2020@0 { 34 - device_type = "cpu"; 35 - reg = <0x0>; 36 - next-level-cache = <&L2>; 37 - }; 38 - 39 - PowerPC,P2020@1 { 40 - device_type = "cpu"; 41 - reg = <0x1>; 42 - next-level-cache = <&L2>; 43 - }; 44 - }; 45 30 46 31 memory { 47 32 device_type = "memory"; 48 33 }; 49 34 50 35 localbus@ffe05000 { 51 - #address-cells = <2>; 52 - #size-cells = <1>; 53 36 compatible = "fsl,elbc", "simple-bus"; 54 - reg = <0 0xffe05000 0 0x1000>; 55 - interrupts = <19 2>; 56 - interrupt-parent = <&mpic>; 57 - 58 37 ranges = <0x0 0x0 0x0 0xe8000000 0x08000000 59 38 0x1 0x0 0x0 0xe0000000 0x08000000 60 39 0x2 0x0 0x0 0xffa00000 0x00040000 ··· 135 158 }; 136 159 137 160 soc@ffe00000 { 138 - #address-cells = <1>; 139 - #size-cells = <1>; 140 - device_type = "soc"; 141 - compatible = "fsl,p2020-immr", "simple-bus"; 142 - ranges = <0x0 0 0xffe00000 0x100000>; 143 - bus-frequency = <0>; // Filled out by uboot. 144 - 145 - ecm-law@0 { 146 - compatible = "fsl,ecm-law"; 147 - reg = <0x0 0x1000>; 148 - fsl,num-laws = <12>; 149 - }; 150 - 151 - ecm@1000 { 152 - compatible = "fsl,p2020-ecm", "fsl,ecm"; 153 - reg = <0x1000 0x1000>; 154 - interrupts = <17 2>; 155 - interrupt-parent = <&mpic>; 156 - }; 157 - 158 - memory-controller@2000 { 159 - compatible = "fsl,p2020-memory-controller"; 160 - reg = <0x2000 0x1000>; 161 - interrupt-parent = <&mpic>; 162 - interrupts = <18 2>; 163 - }; 164 - 165 - i2c@3000 { 166 - #address-cells = <1>; 167 - #size-cells = <0>; 168 - cell-index = <0>; 169 - compatible = "fsl-i2c"; 170 - reg = <0x3000 0x100>; 171 - interrupts = <43 2>; 172 - interrupt-parent = <&mpic>; 173 - dfsrr; 174 - }; 175 - 176 - i2c@3100 { 177 - #address-cells = <1>; 178 - #size-cells = <0>; 179 - cell-index = <1>; 180 - compatible = "fsl-i2c"; 181 - reg = <0x3100 0x100>; 182 - interrupts = <43 2>; 183 - interrupt-parent = <&mpic>; 184 - dfsrr; 185 - }; 186 - 187 - serial0: serial@4500 { 188 - cell-index = <0>; 189 - device_type = "serial"; 190 - compatible = "ns16550"; 191 - reg = <0x4500 0x100>; 192 - clock-frequency = <0>; 193 - interrupts = <42 2>; 194 - interrupt-parent = <&mpic>; 195 - }; 196 - 197 - serial1: serial@4600 { 198 - cell-index = <1>; 199 - device_type = "serial"; 200 - compatible = "ns16550"; 201 - reg = <0x4600 0x100>; 202 - clock-frequency = <0>; 203 - interrupts = <42 2>; 204 - interrupt-parent = <&mpic>; 205 - }; 206 - 207 - spi@7000 { 208 - compatible = "fsl,espi"; 209 - reg = <0x7000 0x1000>; 210 - interrupts = <59 0x2>; 211 - interrupt-parent = <&mpic>; 212 - }; 213 - 214 - dma@c300 { 215 - #address-cells = <1>; 216 - #size-cells = <1>; 217 - compatible = "fsl,eloplus-dma"; 218 - reg = <0xc300 0x4>; 219 - ranges = <0x0 0xc100 0x200>; 220 - cell-index = <1>; 221 - dma-channel@0 { 222 - compatible = "fsl,eloplus-dma-channel"; 223 - reg = <0x0 0x80>; 224 - cell-index = <0>; 225 - interrupt-parent = <&mpic>; 226 - interrupts = <76 2>; 227 - }; 228 - dma-channel@80 { 229 - compatible = "fsl,eloplus-dma-channel"; 230 - reg = <0x80 0x80>; 231 - cell-index = <1>; 232 - interrupt-parent = <&mpic>; 233 - interrupts = <77 2>; 234 - }; 235 - dma-channel@100 { 236 - compatible = "fsl,eloplus-dma-channel"; 237 - reg = <0x100 0x80>; 238 - cell-index = <2>; 239 - interrupt-parent = <&mpic>; 240 - interrupts = <78 2>; 241 - }; 242 - dma-channel@180 { 243 - compatible = "fsl,eloplus-dma-channel"; 244 - reg = <0x180 0x80>; 245 - cell-index = <3>; 246 - interrupt-parent = <&mpic>; 247 - interrupts = <79 2>; 248 - }; 249 - }; 250 - 251 - gpio: gpio-controller@f000 { 252 - #gpio-cells = <2>; 253 - compatible = "fsl,mpc8572-gpio"; 254 - reg = <0xf000 0x100>; 255 - interrupts = <47 0x2>; 256 - interrupt-parent = <&mpic>; 257 - gpio-controller; 258 - }; 259 - 260 - L2: l2-cache-controller@20000 { 261 - compatible = "fsl,p2020-l2-cache-controller"; 262 - reg = <0x20000 0x1000>; 263 - cache-line-size = <32>; // 32 bytes 264 - cache-size = <0x80000>; // L2, 512k 265 - interrupt-parent = <&mpic>; 266 - interrupts = <16 2>; 267 - }; 268 - 269 - dma@21300 { 270 - #address-cells = <1>; 271 - #size-cells = <1>; 272 - compatible = "fsl,eloplus-dma"; 273 - reg = <0x21300 0x4>; 274 - ranges = <0x0 0x21100 0x200>; 275 - cell-index = <0>; 276 - dma-channel@0 { 277 - compatible = "fsl,eloplus-dma-channel"; 278 - reg = <0x0 0x80>; 279 - cell-index = <0>; 280 - interrupt-parent = <&mpic>; 281 - interrupts = <20 2>; 282 - }; 283 - dma-channel@80 { 284 - compatible = "fsl,eloplus-dma-channel"; 285 - reg = <0x80 0x80>; 286 - cell-index = <1>; 287 - interrupt-parent = <&mpic>; 288 - interrupts = <21 2>; 289 - }; 290 - dma-channel@100 { 291 - compatible = "fsl,eloplus-dma-channel"; 292 - reg = <0x100 0x80>; 293 - cell-index = <2>; 294 - interrupt-parent = <&mpic>; 295 - interrupts = <22 2>; 296 - }; 297 - dma-channel@180 { 298 - compatible = "fsl,eloplus-dma-channel"; 299 - reg = <0x180 0x80>; 300 - cell-index = <3>; 301 - interrupt-parent = <&mpic>; 302 - interrupts = <23 2>; 303 - }; 304 - }; 305 161 306 162 usb@22000 { 307 - #address-cells = <1>; 308 - #size-cells = <0>; 309 - compatible = "fsl-usb2-dr"; 310 - reg = <0x22000 0x1000>; 311 - interrupt-parent = <&mpic>; 312 - interrupts = <28 0x2>; 313 163 phy_type = "ulpi"; 314 164 }; 315 165 316 - enet0: ethernet@24000 { 317 - #address-cells = <1>; 318 - #size-cells = <1>; 319 - cell-index = <0>; 320 - device_type = "network"; 321 - model = "eTSEC"; 322 - compatible = "gianfar"; 323 - reg = <0x24000 0x1000>; 324 - ranges = <0x0 0x24000 0x1000>; 325 - local-mac-address = [ 00 00 00 00 00 00 ]; 326 - interrupts = <29 2 30 2 34 2>; 327 - interrupt-parent = <&mpic>; 328 - tbi-handle = <&tbi0>; 329 - phy-handle = <&phy0>; 330 - phy-connection-type = "rgmii-id"; 166 + mdio@24520 { 167 + phy0: ethernet-phy@0 { 168 + interrupt-parent = <&mpic>; 169 + interrupts = <3 1>; 170 + reg = <0x0>; 171 + }; 172 + phy1: ethernet-phy@1 { 173 + interrupt-parent = <&mpic>; 174 + interrupts = <3 1>; 175 + reg = <0x1>; 176 + }; 177 + phy2: ethernet-phy@2 { 178 + interrupt-parent = <&mpic>; 179 + interrupts = <3 1>; 180 + reg = <0x2>; 181 + }; 182 + tbi0: tbi-phy@11 { 183 + reg = <0x11>; 184 + device_type = "tbi-phy"; 185 + }; 331 186 332 - mdio@520 { 333 - #address-cells = <1>; 334 - #size-cells = <0>; 335 - compatible = "fsl,gianfar-mdio"; 336 - reg = <0x520 0x20>; 187 + }; 337 188 338 - phy0: ethernet-phy@0 { 339 - interrupt-parent = <&mpic>; 340 - interrupts = <3 1>; 341 - reg = <0x0>; 342 - }; 343 - phy1: ethernet-phy@1 { 344 - interrupt-parent = <&mpic>; 345 - interrupts = <3 1>; 346 - reg = <0x1>; 347 - }; 348 - phy2: ethernet-phy@2 { 349 - interrupt-parent = <&mpic>; 350 - interrupts = <3 1>; 351 - reg = <0x2>; 352 - }; 353 - tbi0: tbi-phy@11 { 354 - reg = <0x11>; 355 - device_type = "tbi-phy"; 356 - }; 189 + mdio@25520 { 190 + tbi1: tbi-phy@11 { 191 + reg = <0x11>; 192 + device_type = "tbi-phy"; 357 193 }; 358 194 }; 359 195 196 + mdio@26520 { 197 + tbi2: tbi-phy@11 { 198 + reg = <0x11>; 199 + device_type = "tbi-phy"; 200 + }; 201 + 202 + }; 203 + 204 + enet0: ethernet@24000 { 205 + tbi-handle = <&tbi0>; 206 + phy-handle = <&phy0>; 207 + phy-connection-type = "rgmii-id"; 208 + }; 209 + 360 210 enet1: ethernet@25000 { 361 - #address-cells = <1>; 362 - #size-cells = <1>; 363 - cell-index = <1>; 364 - device_type = "network"; 365 - model = "eTSEC"; 366 - compatible = "gianfar"; 367 - reg = <0x25000 0x1000>; 368 - ranges = <0x0 0x25000 0x1000>; 369 - local-mac-address = [ 00 00 00 00 00 00 ]; 370 - interrupts = <35 2 36 2 40 2>; 371 - interrupt-parent = <&mpic>; 372 211 tbi-handle = <&tbi1>; 373 212 phy-handle = <&phy1>; 374 213 phy-connection-type = "rgmii-id"; 375 214 376 - mdio@520 { 377 - #address-cells = <1>; 378 - #size-cells = <0>; 379 - compatible = "fsl,gianfar-tbi"; 380 - reg = <0x520 0x20>; 381 - 382 - tbi1: tbi-phy@11 { 383 - reg = <0x11>; 384 - device_type = "tbi-phy"; 385 - }; 386 - }; 387 215 }; 388 216 389 217 enet2: ethernet@26000 { 390 - #address-cells = <1>; 391 - #size-cells = <1>; 392 - cell-index = <2>; 393 - device_type = "network"; 394 - model = "eTSEC"; 395 - compatible = "gianfar"; 396 - reg = <0x26000 0x1000>; 397 - ranges = <0x0 0x26000 0x1000>; 398 - local-mac-address = [ 00 00 00 00 00 00 ]; 399 - interrupts = <31 2 32 2 33 2>; 400 - interrupt-parent = <&mpic>; 401 218 tbi-handle = <&tbi2>; 402 219 phy-handle = <&phy2>; 403 220 phy-connection-type = "rgmii-id"; 404 - 405 - mdio@520 { 406 - #address-cells = <1>; 407 - #size-cells = <0>; 408 - compatible = "fsl,gianfar-tbi"; 409 - reg = <0x520 0x20>; 410 - 411 - tbi2: tbi-phy@11 { 412 - reg = <0x11>; 413 - device_type = "tbi-phy"; 414 - }; 415 - }; 416 221 }; 417 222 418 - sdhci@2e000 { 419 - compatible = "fsl,p2020-esdhc", "fsl,esdhc"; 420 - reg = <0x2e000 0x1000>; 421 - interrupts = <72 0x2>; 422 - interrupt-parent = <&mpic>; 423 - /* Filled in by U-Boot */ 424 - clock-frequency = <0>; 425 - }; 426 - 427 - crypto@30000 { 428 - compatible = "fsl,sec3.1", "fsl,sec3.0", "fsl,sec2.4", 429 - "fsl,sec2.2", "fsl,sec2.1", "fsl,sec2.0"; 430 - reg = <0x30000 0x10000>; 431 - interrupts = <45 2 58 2>; 432 - interrupt-parent = <&mpic>; 433 - fsl,num-channels = <4>; 434 - fsl,channel-fifo-len = <24>; 435 - fsl,exec-units-mask = <0xbfe>; 436 - fsl,descriptor-types-mask = <0x3ab0ebf>; 437 - }; 438 - 439 - mpic: pic@40000 { 440 - interrupt-controller; 441 - #address-cells = <0>; 442 - #interrupt-cells = <2>; 443 - reg = <0x40000 0x40000>; 444 - compatible = "chrp,open-pic"; 445 - device_type = "open-pic"; 446 - }; 447 223 448 224 msi@41600 { 449 225 compatible = "fsl,mpic-msi"; 450 - reg = <0x41600 0x80>; 451 - msi-available-ranges = <0 0x100>; 452 - interrupts = < 453 - 0xe0 0 454 - 0xe1 0 455 - 0xe2 0 456 - 0xe3 0 457 - 0xe4 0 458 - 0xe5 0 459 - 0xe6 0 460 - 0xe7 0>; 461 - interrupt-parent = <&mpic>; 462 - }; 463 - 464 - global-utilities@e0000 { //global utilities block 465 - compatible = "fsl,p2020-guts"; 466 - reg = <0xe0000 0x1000>; 467 - fsl,has-rstcr; 468 226 }; 469 227 }; 470 228 471 229 pci0: pcie@ffe08000 { 472 - compatible = "fsl,mpc8548-pcie"; 473 - device_type = "pci"; 474 - #interrupt-cells = <1>; 475 - #size-cells = <2>; 476 - #address-cells = <3>; 477 - reg = <0 0xffe08000 0 0x1000>; 478 - bus-range = <0 255>; 479 230 ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000 480 231 0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>; 481 - clock-frequency = <33333333>; 482 - interrupt-parent = <&mpic>; 483 - interrupts = <24 2>; 484 232 interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 485 233 interrupt-map = < 486 234 /* IDSEL 0x0 */ ··· 230 528 }; 231 529 232 530 pci1: pcie@ffe09000 { 233 - compatible = "fsl,mpc8548-pcie"; 234 - device_type = "pci"; 235 - #interrupt-cells = <1>; 236 - #size-cells = <2>; 237 - #address-cells = <3>; 238 - reg = <0 0xffe09000 0 0x1000>; 239 - bus-range = <0 255>; 240 531 ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000 241 532 0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>; 242 - clock-frequency = <33333333>; 243 - interrupt-parent = <&mpic>; 244 - interrupts = <25 2>; 245 533 interrupt-map-mask = <0xff00 0x0 0x0 0x7>; 246 534 interrupt-map = < 247 535 ··· 359 667 }; 360 668 361 669 pci2: pcie@ffe0a000 { 362 - compatible = "fsl,mpc8548-pcie"; 363 - device_type = "pci"; 364 - #interrupt-cells = <1>; 365 - #size-cells = <2>; 366 - #address-cells = <3>; 367 - reg = <0 0xffe0a000 0 0x1000>; 368 - bus-range = <0 255>; 369 670 ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000 370 671 0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x10000>; 371 - clock-frequency = <33333333>; 372 - interrupt-parent = <&mpic>; 373 - interrupts = <26 2>; 374 672 interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 375 673 interrupt-map = < 376 674 /* IDSEL 0x0 */
+52 -338
arch/powerpc/boot/dts/p2020rdb.dts
··· 9 9 * option) any later version. 10 10 */ 11 11 12 - /dts-v1/; 12 + /include/ "p2020si.dtsi" 13 + 13 14 / { 14 - model = "fsl,P2020"; 15 + model = "fsl,P2020RDB"; 15 16 compatible = "fsl,P2020RDB"; 16 - #address-cells = <2>; 17 - #size-cells = <2>; 18 17 19 18 aliases { 20 19 ethernet0 = &enet0; ··· 25 26 pci1 = &pci1; 26 27 }; 27 28 28 - cpus { 29 - #address-cells = <1>; 30 - #size-cells = <0>; 31 - 32 - PowerPC,P2020@0 { 33 - device_type = "cpu"; 34 - reg = <0x0>; 35 - next-level-cache = <&L2>; 36 - }; 37 - 38 - PowerPC,P2020@1 { 39 - device_type = "cpu"; 40 - reg = <0x1>; 41 - next-level-cache = <&L2>; 42 - }; 43 - }; 44 - 45 29 memory { 46 30 device_type = "memory"; 47 31 }; 48 32 49 33 localbus@ffe05000 { 50 - #address-cells = <2>; 51 - #size-cells = <1>; 52 - compatible = "fsl,p2020-elbc", "fsl,elbc", "simple-bus"; 53 - reg = <0 0xffe05000 0 0x1000>; 54 - interrupts = <19 2>; 55 - interrupt-parent = <&mpic>; 56 34 57 35 /* NOR and NAND Flashes */ 58 36 ranges = <0x0 0x0 0x0 0xef000000 0x01000000 ··· 141 165 }; 142 166 143 167 soc@ffe00000 { 144 - #address-cells = <1>; 145 - #size-cells = <1>; 146 - device_type = "soc"; 147 - compatible = "fsl,p2020-immr", "simple-bus"; 148 - ranges = <0x0 0x0 0xffe00000 0x100000>; 149 - bus-frequency = <0>; // Filled out by uboot. 150 - 151 - ecm-law@0 { 152 - compatible = "fsl,ecm-law"; 153 - reg = <0x0 0x1000>; 154 - fsl,num-laws = <12>; 155 - }; 156 - 157 - ecm@1000 { 158 - compatible = "fsl,p2020-ecm", "fsl,ecm"; 159 - reg = <0x1000 0x1000>; 160 - interrupts = <17 2>; 161 - interrupt-parent = <&mpic>; 162 - }; 163 - 164 - memory-controller@2000 { 165 - compatible = "fsl,p2020-memory-controller"; 166 - reg = <0x2000 0x1000>; 167 - interrupt-parent = <&mpic>; 168 - interrupts = <18 2>; 169 - }; 170 - 171 168 i2c@3000 { 172 - #address-cells = <1>; 173 - #size-cells = <0>; 174 - cell-index = <0>; 175 - compatible = "fsl-i2c"; 176 - reg = <0x3000 0x100>; 177 - interrupts = <43 2>; 178 - interrupt-parent = <&mpic>; 179 - dfsrr; 180 169 rtc@68 { 181 170 compatible = "dallas,ds1339"; 182 171 reg = <0x68>; 183 172 }; 184 173 }; 185 174 186 - i2c@3100 { 187 - #address-cells = <1>; 188 - #size-cells = <0>; 189 - cell-index = <1>; 190 - compatible = "fsl-i2c"; 191 - reg = <0x3100 0x100>; 192 - interrupts = <43 2>; 193 - interrupt-parent = <&mpic>; 194 - dfsrr; 195 - }; 175 + spi@7000 { 196 176 197 - serial0: serial@4500 { 198 - cell-index = <0>; 199 - device_type = "serial"; 200 - compatible = "ns16550"; 201 - reg = <0x4500 0x100>; 202 - clock-frequency = <0>; 203 - interrupts = <42 2>; 204 - interrupt-parent = <&mpic>; 205 - }; 206 - 207 - serial1: serial@4600 { 208 - cell-index = <1>; 209 - device_type = "serial"; 210 - compatible = "ns16550"; 211 - reg = <0x4600 0x100>; 212 - clock-frequency = <0>; 213 - interrupts = <42 2>; 214 - interrupt-parent = <&mpic>; 215 - }; 216 - 217 - spi@7000 { 218 - cell-index = <0>; 219 - #address-cells = <1>; 220 - #size-cells = <0>; 221 - compatible = "fsl,espi"; 222 - reg = <0x7000 0x1000>; 223 - interrupts = <59 0x2>; 224 - interrupt-parent = <&mpic>; 225 - mode = "cpu"; 226 - 227 - fsl_m25p80@0 { 177 + fsl_m25p80@0 { 228 178 #address-cells = <1>; 229 179 #size-cells = <1>; 230 180 compatible = "fsl,espi-flash"; ··· 196 294 }; 197 295 }; 198 296 199 - dma@c300 { 200 - #address-cells = <1>; 201 - #size-cells = <1>; 202 - compatible = "fsl,eloplus-dma"; 203 - reg = <0xc300 0x4>; 204 - ranges = <0x0 0xc100 0x200>; 205 - cell-index = <1>; 206 - dma-channel@0 { 207 - compatible = "fsl,eloplus-dma-channel"; 208 - reg = <0x0 0x80>; 209 - cell-index = <0>; 210 - interrupt-parent = <&mpic>; 211 - interrupts = <76 2>; 212 - }; 213 - dma-channel@80 { 214 - compatible = "fsl,eloplus-dma-channel"; 215 - reg = <0x80 0x80>; 216 - cell-index = <1>; 217 - interrupt-parent = <&mpic>; 218 - interrupts = <77 2>; 219 - }; 220 - dma-channel@100 { 221 - compatible = "fsl,eloplus-dma-channel"; 222 - reg = <0x100 0x80>; 223 - cell-index = <2>; 224 - interrupt-parent = <&mpic>; 225 - interrupts = <78 2>; 226 - }; 227 - dma-channel@180 { 228 - compatible = "fsl,eloplus-dma-channel"; 229 - reg = <0x180 0x80>; 230 - cell-index = <3>; 231 - interrupt-parent = <&mpic>; 232 - interrupts = <79 2>; 233 - }; 234 - }; 235 - 236 - gpio: gpio-controller@f000 { 237 - #gpio-cells = <2>; 238 - compatible = "fsl,mpc8572-gpio"; 239 - reg = <0xf000 0x100>; 240 - interrupts = <47 0x2>; 241 - interrupt-parent = <&mpic>; 242 - gpio-controller; 243 - }; 244 - 245 - L2: l2-cache-controller@20000 { 246 - compatible = "fsl,p2020-l2-cache-controller"; 247 - reg = <0x20000 0x1000>; 248 - cache-line-size = <32>; // 32 bytes 249 - cache-size = <0x80000>; // L2,512K 250 - interrupt-parent = <&mpic>; 251 - interrupts = <16 2>; 252 - }; 253 - 254 - dma@21300 { 255 - #address-cells = <1>; 256 - #size-cells = <1>; 257 - compatible = "fsl,eloplus-dma"; 258 - reg = <0x21300 0x4>; 259 - ranges = <0x0 0x21100 0x200>; 260 - cell-index = <0>; 261 - dma-channel@0 { 262 - compatible = "fsl,eloplus-dma-channel"; 263 - reg = <0x0 0x80>; 264 - cell-index = <0>; 265 - interrupt-parent = <&mpic>; 266 - interrupts = <20 2>; 267 - }; 268 - dma-channel@80 { 269 - compatible = "fsl,eloplus-dma-channel"; 270 - reg = <0x80 0x80>; 271 - cell-index = <1>; 272 - interrupt-parent = <&mpic>; 273 - interrupts = <21 2>; 274 - }; 275 - dma-channel@100 { 276 - compatible = "fsl,eloplus-dma-channel"; 277 - reg = <0x100 0x80>; 278 - cell-index = <2>; 279 - interrupt-parent = <&mpic>; 280 - interrupts = <22 2>; 281 - }; 282 - dma-channel@180 { 283 - compatible = "fsl,eloplus-dma-channel"; 284 - reg = <0x180 0x80>; 285 - cell-index = <3>; 286 - interrupt-parent = <&mpic>; 287 - interrupts = <23 2>; 288 - }; 289 - }; 290 - 291 297 usb@22000 { 292 - #address-cells = <1>; 293 - #size-cells = <0>; 294 - compatible = "fsl-usb2-dr"; 295 - reg = <0x22000 0x1000>; 296 - interrupt-parent = <&mpic>; 297 - interrupts = <28 0x2>; 298 298 phy_type = "ulpi"; 299 299 }; 300 300 301 + mdio@24520 { 302 + phy0: ethernet-phy@0 { 303 + interrupt-parent = <&mpic>; 304 + interrupts = <3 1>; 305 + reg = <0x0>; 306 + }; 307 + phy1: ethernet-phy@1 { 308 + interrupt-parent = <&mpic>; 309 + interrupts = <3 1>; 310 + reg = <0x1>; 311 + }; 312 + }; 313 + 314 + mdio@25520 { 315 + tbi0: tbi-phy@11 { 316 + reg = <0x11>; 317 + device_type = "tbi-phy"; 318 + }; 319 + }; 320 + 321 + mdio@26520 { 322 + status = "disabled"; 323 + }; 324 + 301 325 enet0: ethernet@24000 { 302 - #address-cells = <1>; 303 - #size-cells = <1>; 304 - cell-index = <0>; 305 - device_type = "network"; 306 - model = "eTSEC"; 307 - compatible = "gianfar"; 308 - reg = <0x24000 0x1000>; 309 - ranges = <0x0 0x24000 0x1000>; 310 - local-mac-address = [ 00 00 00 00 00 00 ]; 311 - interrupts = <29 2 30 2 34 2>; 312 - interrupt-parent = <&mpic>; 313 326 fixed-link = <1 1 1000 0 0>; 314 327 phy-connection-type = "rgmii-id"; 315 - 316 - mdio@520 { 317 - #address-cells = <1>; 318 - #size-cells = <0>; 319 - compatible = "fsl,gianfar-mdio"; 320 - reg = <0x520 0x20>; 321 - 322 - phy0: ethernet-phy@0 { 323 - interrupt-parent = <&mpic>; 324 - interrupts = <3 1>; 325 - reg = <0x0>; 326 - }; 327 - phy1: ethernet-phy@1 { 328 - interrupt-parent = <&mpic>; 329 - interrupts = <3 1>; 330 - reg = <0x1>; 331 - }; 332 - }; 333 328 }; 334 329 335 330 enet1: ethernet@25000 { 336 - #address-cells = <1>; 337 - #size-cells = <1>; 338 - cell-index = <1>; 339 - device_type = "network"; 340 - model = "eTSEC"; 341 - compatible = "gianfar"; 342 - reg = <0x25000 0x1000>; 343 - ranges = <0x0 0x25000 0x1000>; 344 - local-mac-address = [ 00 00 00 00 00 00 ]; 345 - interrupts = <35 2 36 2 40 2>; 346 - interrupt-parent = <&mpic>; 347 331 tbi-handle = <&tbi0>; 348 332 phy-handle = <&phy0>; 349 333 phy-connection-type = "sgmii"; 350 - 351 - mdio@520 { 352 - #address-cells = <1>; 353 - #size-cells = <0>; 354 - compatible = "fsl,gianfar-tbi"; 355 - reg = <0x520 0x20>; 356 - 357 - tbi0: tbi-phy@11 { 358 - reg = <0x11>; 359 - device_type = "tbi-phy"; 360 - }; 361 - }; 362 334 }; 363 335 364 336 enet2: ethernet@26000 { 365 - #address-cells = <1>; 366 - #size-cells = <1>; 367 - cell-index = <2>; 368 - device_type = "network"; 369 - model = "eTSEC"; 370 - compatible = "gianfar"; 371 - reg = <0x26000 0x1000>; 372 - ranges = <0x0 0x26000 0x1000>; 373 - local-mac-address = [ 00 00 00 00 00 00 ]; 374 - interrupts = <31 2 32 2 33 2>; 375 - interrupt-parent = <&mpic>; 376 337 phy-handle = <&phy1>; 377 338 phy-connection-type = "rgmii-id"; 378 339 }; 379 340 380 - sdhci@2e000 { 381 - compatible = "fsl,p2020-esdhc", "fsl,esdhc"; 382 - reg = <0x2e000 0x1000>; 383 - interrupts = <72 0x2>; 384 - interrupt-parent = <&mpic>; 385 - /* Filled in by U-Boot */ 386 - clock-frequency = <0>; 387 - }; 388 - 389 - crypto@30000 { 390 - compatible = "fsl,sec3.1", "fsl,sec3.0", "fsl,sec2.4", 391 - "fsl,sec2.2", "fsl,sec2.1", "fsl,sec2.0"; 392 - reg = <0x30000 0x10000>; 393 - interrupts = <45 2 58 2>; 394 - interrupt-parent = <&mpic>; 395 - fsl,num-channels = <4>; 396 - fsl,channel-fifo-len = <24>; 397 - fsl,exec-units-mask = <0xbfe>; 398 - fsl,descriptor-types-mask = <0x3ab0ebf>; 399 - }; 400 - 401 - mpic: pic@40000 { 402 - interrupt-controller; 403 - #address-cells = <0>; 404 - #interrupt-cells = <2>; 405 - reg = <0x40000 0x40000>; 406 - compatible = "chrp,open-pic"; 407 - device_type = "open-pic"; 408 - }; 409 - 410 - msi@41600 { 411 - compatible = "fsl,p2020-msi", "fsl,mpic-msi"; 412 - reg = <0x41600 0x80>; 413 - msi-available-ranges = <0 0x100>; 414 - interrupts = < 415 - 0xe0 0 416 - 0xe1 0 417 - 0xe2 0 418 - 0xe3 0 419 - 0xe4 0 420 - 0xe5 0 421 - 0xe6 0 422 - 0xe7 0>; 423 - interrupt-parent = <&mpic>; 424 - }; 425 - 426 - global-utilities@e0000 { //global utilities block 427 - compatible = "fsl,p2020-guts"; 428 - reg = <0xe0000 0x1000>; 429 - fsl,has-rstcr; 430 - }; 431 341 }; 432 342 433 - pci0: pcie@ffe09000 { 434 - compatible = "fsl,mpc8548-pcie"; 435 - device_type = "pci"; 436 - #interrupt-cells = <1>; 437 - #size-cells = <2>; 438 - #address-cells = <3>; 439 - reg = <0 0xffe09000 0 0x1000>; 440 - bus-range = <0 255>; 343 + pci0: pcie@ffe08000 { 344 + status = "disabled"; 345 + }; 346 + 347 + pci1: pcie@ffe09000 { 441 348 ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000 442 349 0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>; 443 - clock-frequency = <33333333>; 444 - interrupt-parent = <&mpic>; 445 - interrupts = <25 2>; 446 - pcie@0 { 350 + interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 351 + interrupt-map = < 352 + /* IDSEL 0x0 */ 353 + 0000 0x0 0x0 0x1 &mpic 0x4 0x1 354 + 0000 0x0 0x0 0x2 &mpic 0x5 0x1 355 + 0000 0x0 0x0 0x3 &mpic 0x6 0x1 356 + 0000 0x0 0x0 0x4 &mpic 0x7 0x1 357 + >; 358 + pcie@0 { 447 359 reg = <0x0 0x0 0x0 0x0 0x0>; 448 360 #size-cells = <2>; 449 361 #address-cells = <3>; ··· 272 556 }; 273 557 }; 274 558 275 - pci1: pcie@ffe0a000 { 276 - compatible = "fsl,mpc8548-pcie"; 277 - device_type = "pci"; 278 - #interrupt-cells = <1>; 279 - #size-cells = <2>; 280 - #address-cells = <3>; 281 - reg = <0 0xffe0a000 0 0x1000>; 282 - bus-range = <0 255>; 559 + pci2: pcie@ffe0a000 { 283 560 ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000 284 561 0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>; 285 - clock-frequency = <33333333>; 286 - interrupt-parent = <&mpic>; 287 - interrupts = <26 2>; 562 + interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 563 + interrupt-map = < 564 + /* IDSEL 0x0 */ 565 + 0000 0x0 0x0 0x1 &mpic 0x0 0x1 566 + 0000 0x0 0x0 0x2 &mpic 0x1 0x1 567 + 0000 0x0 0x0 0x3 &mpic 0x2 0x1 568 + 0000 0x0 0x0 0x4 &mpic 0x3 0x1 569 + >; 288 570 pcie@0 { 289 571 reg = <0x0 0x0 0x0 0x0 0x0>; 290 572 #size-cells = <2>;
+43 -202
arch/powerpc/boot/dts/p2020rdb_camp_core0.dts
··· 14 14 * option) any later version. 15 15 */ 16 16 17 - /dts-v1/; 17 + /include/ "p2020si.dtsi" 18 + 18 19 / { 19 - model = "fsl,P2020"; 20 + model = "fsl,P2020RDB"; 20 21 compatible = "fsl,P2020RDB", "fsl,MPC85XXRDB-CAMP"; 21 - #address-cells = <2>; 22 - #size-cells = <2>; 23 22 24 23 aliases { 25 24 ethernet1 = &enet1; ··· 28 29 }; 29 30 30 31 cpus { 31 - #address-cells = <1>; 32 - #size-cells = <0>; 33 - 34 - PowerPC,P2020@0 { 35 - device_type = "cpu"; 36 - reg = <0x0>; 37 - next-level-cache = <&L2>; 32 + PowerPC,P2020@1 { 33 + status = "disabled"; 38 34 }; 35 + 39 36 }; 40 37 41 38 memory { 42 39 device_type = "memory"; 43 40 }; 44 41 42 + localbus@ffe05000 { 43 + status = "disabled"; 44 + }; 45 + 45 46 soc@ffe00000 { 46 - #address-cells = <1>; 47 - #size-cells = <1>; 48 - device_type = "soc"; 49 - compatible = "fsl,p2020-immr", "simple-bus"; 50 - ranges = <0x0 0x0 0xffe00000 0x100000>; 51 - bus-frequency = <0>; // Filled out by uboot. 52 - 53 - ecm-law@0 { 54 - compatible = "fsl,ecm-law"; 55 - reg = <0x0 0x1000>; 56 - fsl,num-laws = <12>; 57 - }; 58 - 59 - ecm@1000 { 60 - compatible = "fsl,p2020-ecm", "fsl,ecm"; 61 - reg = <0x1000 0x1000>; 62 - interrupts = <17 2>; 63 - interrupt-parent = <&mpic>; 64 - }; 65 - 66 - memory-controller@2000 { 67 - compatible = "fsl,p2020-memory-controller"; 68 - reg = <0x2000 0x1000>; 69 - interrupt-parent = <&mpic>; 70 - interrupts = <18 2>; 71 - }; 72 - 73 47 i2c@3000 { 74 - #address-cells = <1>; 75 - #size-cells = <0>; 76 - cell-index = <0>; 77 - compatible = "fsl-i2c"; 78 - reg = <0x3000 0x100>; 79 - interrupts = <43 2>; 80 - interrupt-parent = <&mpic>; 81 - dfsrr; 82 48 rtc@68 { 83 49 compatible = "dallas,ds1339"; 84 50 reg = <0x68>; 85 51 }; 86 52 }; 87 53 88 - i2c@3100 { 89 - #address-cells = <1>; 90 - #size-cells = <0>; 91 - cell-index = <1>; 92 - compatible = "fsl-i2c"; 93 - reg = <0x3100 0x100>; 94 - interrupts = <43 2>; 95 - interrupt-parent = <&mpic>; 96 - dfsrr; 97 - }; 98 - 99 - serial0: serial@4500 { 100 - cell-index = <0>; 101 - device_type = "serial"; 102 - compatible = "ns16550"; 103 - reg = <0x4500 0x100>; 104 - clock-frequency = <0>; 54 + serial1: serial@4600 { 55 + status = "disabled"; 105 56 }; 106 57 107 58 spi@7000 { 108 - cell-index = <0>; 109 - #address-cells = <1>; 110 - #size-cells = <0>; 111 - compatible = "fsl,espi"; 112 - reg = <0x7000 0x1000>; 113 - interrupts = <59 0x2>; 114 - interrupt-parent = <&mpic>; 115 - mode = "cpu"; 116 59 117 60 fsl_m25p80@0 { 118 61 #address-cells = <1>; ··· 102 161 }; 103 162 }; 104 163 105 - gpio: gpio-controller@f000 { 106 - #gpio-cells = <2>; 107 - compatible = "fsl,mpc8572-gpio"; 108 - reg = <0xf000 0x100>; 109 - interrupts = <47 0x2>; 110 - interrupt-parent = <&mpic>; 111 - gpio-controller; 112 - }; 113 - 114 - L2: l2-cache-controller@20000 { 115 - compatible = "fsl,p2020-l2-cache-controller"; 116 - reg = <0x20000 0x1000>; 117 - cache-line-size = <32>; // 32 bytes 118 - cache-size = <0x80000>; // L2,512K 119 - interrupt-parent = <&mpic>; 120 - interrupts = <16 2>; 121 - }; 122 - 123 - dma@21300 { 124 - #address-cells = <1>; 125 - #size-cells = <1>; 126 - compatible = "fsl,eloplus-dma"; 127 - reg = <0x21300 0x4>; 128 - ranges = <0x0 0x21100 0x200>; 129 - cell-index = <0>; 130 - dma-channel@0 { 131 - compatible = "fsl,eloplus-dma-channel"; 132 - reg = <0x0 0x80>; 133 - cell-index = <0>; 134 - interrupt-parent = <&mpic>; 135 - interrupts = <20 2>; 136 - }; 137 - dma-channel@80 { 138 - compatible = "fsl,eloplus-dma-channel"; 139 - reg = <0x80 0x80>; 140 - cell-index = <1>; 141 - interrupt-parent = <&mpic>; 142 - interrupts = <21 2>; 143 - }; 144 - dma-channel@100 { 145 - compatible = "fsl,eloplus-dma-channel"; 146 - reg = <0x100 0x80>; 147 - cell-index = <2>; 148 - interrupt-parent = <&mpic>; 149 - interrupts = <22 2>; 150 - }; 151 - dma-channel@180 { 152 - compatible = "fsl,eloplus-dma-channel"; 153 - reg = <0x180 0x80>; 154 - cell-index = <3>; 155 - interrupt-parent = <&mpic>; 156 - interrupts = <23 2>; 157 - }; 164 + dma@c300 { 165 + status = "disabled"; 158 166 }; 159 167 160 168 usb@22000 { 161 - #address-cells = <1>; 162 - #size-cells = <0>; 163 - compatible = "fsl-usb2-dr"; 164 - reg = <0x22000 0x1000>; 165 - interrupt-parent = <&mpic>; 166 - interrupts = <28 0x2>; 167 169 phy_type = "ulpi"; 168 170 }; 169 171 170 172 mdio@24520 { 171 - #address-cells = <1>; 172 - #size-cells = <0>; 173 - compatible = "fsl,gianfar-mdio"; 174 - reg = <0x24520 0x20>; 175 173 176 174 phy0: ethernet-phy@0 { 177 175 interrupt-parent = <&mpic>; ··· 125 245 }; 126 246 127 247 mdio@25520 { 128 - #address-cells = <1>; 129 - #size-cells = <0>; 130 - compatible = "fsl,gianfar-tbi"; 131 - reg = <0x26520 0x20>; 132 - 133 248 tbi0: tbi-phy@11 { 134 249 reg = <0x11>; 135 250 device_type = "tbi-phy"; 136 251 }; 137 252 }; 138 253 254 + mdio@26520 { 255 + status = "disabled"; 256 + }; 257 + 258 + enet0: ethernet@24000 { 259 + status = "disabled"; 260 + }; 261 + 139 262 enet1: ethernet@25000 { 140 - #address-cells = <1>; 141 - #size-cells = <1>; 142 - cell-index = <1>; 143 - device_type = "network"; 144 - model = "eTSEC"; 145 - compatible = "gianfar"; 146 - reg = <0x25000 0x1000>; 147 - ranges = <0x0 0x25000 0x1000>; 148 - local-mac-address = [ 00 00 00 00 00 00 ]; 149 - interrupts = <35 2 36 2 40 2>; 150 - interrupt-parent = <&mpic>; 151 263 tbi-handle = <&tbi0>; 152 264 phy-handle = <&phy0>; 153 265 phy-connection-type = "sgmii"; ··· 147 275 }; 148 276 149 277 enet2: ethernet@26000 { 150 - #address-cells = <1>; 151 - #size-cells = <1>; 152 - cell-index = <2>; 153 - device_type = "network"; 154 - model = "eTSEC"; 155 - compatible = "gianfar"; 156 - reg = <0x26000 0x1000>; 157 - ranges = <0x0 0x26000 0x1000>; 158 - local-mac-address = [ 00 00 00 00 00 00 ]; 159 - interrupts = <31 2 32 2 33 2>; 160 - interrupt-parent = <&mpic>; 161 278 phy-handle = <&phy1>; 162 279 phy-connection-type = "rgmii-id"; 163 280 }; 164 281 165 - sdhci@2e000 { 166 - compatible = "fsl,p2020-esdhc", "fsl,esdhc"; 167 - reg = <0x2e000 0x1000>; 168 - interrupts = <72 0x2>; 169 - interrupt-parent = <&mpic>; 170 - /* Filled in by U-Boot */ 171 - clock-frequency = <0>; 172 - }; 173 - 174 - crypto@30000 { 175 - compatible = "fsl,sec3.1", "fsl,sec3.0", "fsl,sec2.4", 176 - "fsl,sec2.2", "fsl,sec2.1", "fsl,sec2.0"; 177 - reg = <0x30000 0x10000>; 178 - interrupts = <45 2 58 2>; 179 - interrupt-parent = <&mpic>; 180 - fsl,num-channels = <4>; 181 - fsl,channel-fifo-len = <24>; 182 - fsl,exec-units-mask = <0xbfe>; 183 - fsl,descriptor-types-mask = <0x3ab0ebf>; 184 - }; 185 282 186 283 mpic: pic@40000 { 187 - interrupt-controller; 188 - #address-cells = <0>; 189 - #interrupt-cells = <2>; 190 - reg = <0x40000 0x40000>; 191 - compatible = "chrp,open-pic"; 192 - device_type = "open-pic"; 193 284 protected-sources = < 194 285 42 76 77 78 79 /* serial1 , dma2 */ 195 286 29 30 34 26 /* enet0, pci1 */ ··· 161 326 >; 162 327 }; 163 328 164 - global-utilities@e0000 { 165 - compatible = "fsl,p2020-guts"; 166 - reg = <0xe0000 0x1000>; 167 - fsl,has-rstcr; 329 + msi@41600 { 330 + status = "disabled"; 168 331 }; 332 + 333 + 169 334 }; 170 335 171 - pci0: pcie@ffe09000 { 172 - compatible = "fsl,mpc8548-pcie"; 173 - device_type = "pci"; 174 - #interrupt-cells = <1>; 175 - #size-cells = <2>; 176 - #address-cells = <3>; 177 - reg = <0 0xffe09000 0 0x1000>; 178 - bus-range = <0 255>; 336 + pci0: pcie@ffe08000 { 337 + status = "disabled"; 338 + }; 339 + 340 + pci1: pcie@ffe09000 { 179 341 ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000 180 342 0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>; 181 - clock-frequency = <33333333>; 182 - interrupt-parent = <&mpic>; 183 - interrupts = <25 2>; 343 + interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 344 + interrupt-map = < 345 + /* IDSEL 0x0 */ 346 + 0000 0x0 0x0 0x1 &mpic 0x4 0x1 347 + 0000 0x0 0x0 0x2 &mpic 0x5 0x1 348 + 0000 0x0 0x0 0x3 &mpic 0x6 0x1 349 + 0000 0x0 0x0 0x4 &mpic 0x7 0x1 350 + >; 184 351 pcie@0 { 185 352 reg = <0x0 0x0 0x0 0x0 0x0>; 186 353 #size-cells = <2>; ··· 196 359 0x1000000 0x0 0x0 197 360 0x0 0x100000>; 198 361 }; 362 + }; 363 + 364 + pci2: pcie@ffe0a000 { 365 + status = "disabled"; 199 366 }; 200 367 };
+97 -53
arch/powerpc/boot/dts/p2020rdb_camp_core1.dts
··· 15 15 * option) any later version. 16 16 */ 17 17 18 - /dts-v1/; 18 + /include/ "p2020si.dtsi" 19 + 19 20 / { 20 - model = "fsl,P2020"; 21 + model = "fsl,P2020RDB"; 21 22 compatible = "fsl,P2020RDB", "fsl,MPC85XXRDB-CAMP"; 22 - #address-cells = <2>; 23 - #size-cells = <2>; 24 23 25 24 aliases { 26 25 ethernet0 = &enet0; 27 - serial0 = &serial0; 26 + serial0 = &serial1; 28 27 pci1 = &pci1; 29 28 }; 30 29 31 30 cpus { 32 - #address-cells = <1>; 33 - #size-cells = <0>; 34 - 35 - PowerPC,P2020@1 { 36 - device_type = "cpu"; 37 - reg = <0x1>; 38 - next-level-cache = <&L2>; 31 + PowerPC,P2020@0 { 32 + status = "disabled"; 39 33 }; 40 34 }; 41 35 ··· 37 43 device_type = "memory"; 38 44 }; 39 45 40 - soc@ffe00000 { 41 - #address-cells = <1>; 42 - #size-cells = <1>; 43 - device_type = "soc"; 44 - compatible = "fsl,p2020-immr", "simple-bus"; 45 - ranges = <0x0 0x0 0xffe00000 0x100000>; 46 - bus-frequency = <0>; // Filled out by uboot. 46 + localbus@ffe05000 { 47 + status = "disabled"; 48 + }; 47 49 48 - serial0: serial@4600 { 49 - cell-index = <1>; 50 - device_type = "serial"; 51 - compatible = "ns16550"; 52 - reg = <0x4600 0x100>; 53 - clock-frequency = <0>; 50 + soc@ffe00000 { 51 + ecm-law@0 { 52 + status = "disabled"; 53 + }; 54 + 55 + ecm@1000 { 56 + status = "disabled"; 57 + }; 58 + 59 + memory-controller@2000 { 60 + status = "disabled"; 61 + }; 62 + 63 + i2c@3000 { 64 + status = "disabled"; 65 + }; 66 + 67 + i2c@3100 { 68 + status = "disabled"; 69 + }; 70 + 71 + serial0: serial@4500 { 72 + status = "disabled"; 73 + }; 74 + 75 + spi@7000 { 76 + status = "disabled"; 54 77 }; 55 78 56 79 dma@c300 { ··· 107 96 }; 108 97 }; 109 98 99 + gpio: gpio-controller@f000 { 100 + status = "disabled"; 101 + }; 102 + 110 103 L2: l2-cache-controller@20000 { 111 104 compatible = "fsl,p2020-l2-cache-controller"; 112 105 reg = <0x20000 0x1000>; ··· 119 104 interrupt-parent = <&mpic>; 120 105 }; 121 106 107 + dma@21300 { 108 + status = "disabled"; 109 + }; 110 + 111 + usb@22000 { 112 + status = "disabled"; 113 + }; 114 + 115 + mdio@24520 { 116 + status = "disabled"; 117 + }; 118 + 119 + mdio@25520 { 120 + status = "disabled"; 121 + }; 122 + 123 + mdio@26520 { 124 + status = "disabled"; 125 + }; 122 126 123 127 enet0: ethernet@24000 { 124 - #address-cells = <1>; 125 - #size-cells = <1>; 126 - cell-index = <0>; 127 - device_type = "network"; 128 - model = "eTSEC"; 129 - compatible = "gianfar"; 130 - reg = <0x24000 0x1000>; 131 - ranges = <0x0 0x24000 0x1000>; 132 - local-mac-address = [ 00 00 00 00 00 00 ]; 133 - interrupts = <29 2 30 2 34 2>; 134 - interrupt-parent = <&mpic>; 135 128 fixed-link = <1 1 1000 0 0>; 136 129 phy-connection-type = "rgmii-id"; 137 130 138 131 }; 139 132 133 + enet1: ethernet@25000 { 134 + status = "disabled"; 135 + }; 136 + 137 + enet2: ethernet@26000 { 138 + status = "disabled"; 139 + }; 140 + 141 + sdhci@2e000 { 142 + status = "disabled"; 143 + }; 144 + 145 + crypto@30000 { 146 + status = "disabled"; 147 + }; 148 + 140 149 mpic: pic@40000 { 141 - interrupt-controller; 142 - #address-cells = <0>; 143 - #interrupt-cells = <2>; 144 - reg = <0x40000 0x40000>; 145 - compatible = "chrp,open-pic"; 146 - device_type = "open-pic"; 147 150 protected-sources = < 148 151 17 18 43 42 59 47 /*ecm, mem, i2c, serial0, spi,gpio */ 149 152 16 20 21 22 23 28 /* L2, dma1, USB */ ··· 185 152 0xe7 0>; 186 153 interrupt-parent = <&mpic>; 187 154 }; 155 + 156 + global-utilities@e0000 { //global utilities block 157 + status = "disabled"; 158 + }; 159 + 188 160 }; 189 161 190 - pci1: pcie@ffe0a000 { 191 - compatible = "fsl,mpc8548-pcie"; 192 - device_type = "pci"; 193 - #interrupt-cells = <1>; 194 - #size-cells = <2>; 195 - #address-cells = <3>; 196 - reg = <0 0xffe0a000 0 0x1000>; 197 - bus-range = <0 255>; 162 + pci0: pcie@ffe08000 { 163 + status = "disabled"; 164 + }; 165 + 166 + pci1: pcie@ffe09000 { 167 + status = "disabled"; 168 + }; 169 + 170 + pci2: pcie@ffe0a000 { 198 171 ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000 199 172 0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>; 200 - clock-frequency = <33333333>; 201 - interrupt-parent = <&mpic>; 202 - interrupts = <26 2>; 173 + interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 174 + interrupt-map = < 175 + /* IDSEL 0x0 */ 176 + 0000 0x0 0x0 0x1 &mpic 0x0 0x1 177 + 0000 0x0 0x0 0x2 &mpic 0x1 0x1 178 + 0000 0x0 0x0 0x3 &mpic 0x2 0x1 179 + 0000 0x0 0x0 0x4 &mpic 0x3 0x1 180 + >; 203 181 pcie@0 { 204 182 reg = <0x0 0x0 0x0 0x0 0x0>; 205 183 #size-cells = <2>;
+382
arch/powerpc/boot/dts/p2020si.dtsi
··· 1 + /* 2 + * P2020 Device Tree Source 3 + * 4 + * Copyright 2011 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 + /dts-v1/; 13 + / { 14 + compatible = "fsl,P2020"; 15 + #address-cells = <2>; 16 + #size-cells = <2>; 17 + 18 + cpus { 19 + #address-cells = <1>; 20 + #size-cells = <0>; 21 + 22 + PowerPC,P2020@0 { 23 + device_type = "cpu"; 24 + reg = <0x0>; 25 + next-level-cache = <&L2>; 26 + }; 27 + 28 + PowerPC,P2020@1 { 29 + device_type = "cpu"; 30 + reg = <0x1>; 31 + next-level-cache = <&L2>; 32 + }; 33 + }; 34 + 35 + localbus@ffe05000 { 36 + #address-cells = <2>; 37 + #size-cells = <1>; 38 + compatible = "fsl,p2020-elbc", "fsl,elbc", "simple-bus"; 39 + reg = <0 0xffe05000 0 0x1000>; 40 + interrupts = <19 2>; 41 + interrupt-parent = <&mpic>; 42 + }; 43 + 44 + soc@ffe00000 { 45 + #address-cells = <1>; 46 + #size-cells = <1>; 47 + device_type = "soc"; 48 + compatible = "fsl,p2020-immr", "simple-bus"; 49 + ranges = <0x0 0x0 0xffe00000 0x100000>; 50 + bus-frequency = <0>; // Filled out by uboot. 51 + 52 + ecm-law@0 { 53 + compatible = "fsl,ecm-law"; 54 + reg = <0x0 0x1000>; 55 + fsl,num-laws = <12>; 56 + }; 57 + 58 + ecm@1000 { 59 + compatible = "fsl,p2020-ecm", "fsl,ecm"; 60 + reg = <0x1000 0x1000>; 61 + interrupts = <17 2>; 62 + interrupt-parent = <&mpic>; 63 + }; 64 + 65 + memory-controller@2000 { 66 + compatible = "fsl,p2020-memory-controller"; 67 + reg = <0x2000 0x1000>; 68 + interrupt-parent = <&mpic>; 69 + interrupts = <18 2>; 70 + }; 71 + 72 + i2c@3000 { 73 + #address-cells = <1>; 74 + #size-cells = <0>; 75 + cell-index = <0>; 76 + compatible = "fsl-i2c"; 77 + reg = <0x3000 0x100>; 78 + interrupts = <43 2>; 79 + interrupt-parent = <&mpic>; 80 + dfsrr; 81 + }; 82 + 83 + i2c@3100 { 84 + #address-cells = <1>; 85 + #size-cells = <0>; 86 + cell-index = <1>; 87 + compatible = "fsl-i2c"; 88 + reg = <0x3100 0x100>; 89 + interrupts = <43 2>; 90 + interrupt-parent = <&mpic>; 91 + dfsrr; 92 + }; 93 + 94 + serial0: serial@4500 { 95 + cell-index = <0>; 96 + device_type = "serial"; 97 + compatible = "ns16550"; 98 + reg = <0x4500 0x100>; 99 + clock-frequency = <0>; 100 + interrupts = <42 2>; 101 + interrupt-parent = <&mpic>; 102 + }; 103 + 104 + serial1: serial@4600 { 105 + cell-index = <1>; 106 + device_type = "serial"; 107 + compatible = "ns16550"; 108 + reg = <0x4600 0x100>; 109 + clock-frequency = <0>; 110 + interrupts = <42 2>; 111 + interrupt-parent = <&mpic>; 112 + }; 113 + 114 + spi@7000 { 115 + cell-index = <0>; 116 + #address-cells = <1>; 117 + #size-cells = <0>; 118 + compatible = "fsl,espi"; 119 + reg = <0x7000 0x1000>; 120 + interrupts = <59 0x2>; 121 + interrupt-parent = <&mpic>; 122 + mode = "cpu"; 123 + }; 124 + 125 + dma@c300 { 126 + #address-cells = <1>; 127 + #size-cells = <1>; 128 + compatible = "fsl,eloplus-dma"; 129 + reg = <0xc300 0x4>; 130 + ranges = <0x0 0xc100 0x200>; 131 + cell-index = <1>; 132 + dma-channel@0 { 133 + compatible = "fsl,eloplus-dma-channel"; 134 + reg = <0x0 0x80>; 135 + cell-index = <0>; 136 + interrupt-parent = <&mpic>; 137 + interrupts = <76 2>; 138 + }; 139 + dma-channel@80 { 140 + compatible = "fsl,eloplus-dma-channel"; 141 + reg = <0x80 0x80>; 142 + cell-index = <1>; 143 + interrupt-parent = <&mpic>; 144 + interrupts = <77 2>; 145 + }; 146 + dma-channel@100 { 147 + compatible = "fsl,eloplus-dma-channel"; 148 + reg = <0x100 0x80>; 149 + cell-index = <2>; 150 + interrupt-parent = <&mpic>; 151 + interrupts = <78 2>; 152 + }; 153 + dma-channel@180 { 154 + compatible = "fsl,eloplus-dma-channel"; 155 + reg = <0x180 0x80>; 156 + cell-index = <3>; 157 + interrupt-parent = <&mpic>; 158 + interrupts = <79 2>; 159 + }; 160 + }; 161 + 162 + gpio: gpio-controller@f000 { 163 + #gpio-cells = <2>; 164 + compatible = "fsl,mpc8572-gpio"; 165 + reg = <0xf000 0x100>; 166 + interrupts = <47 0x2>; 167 + interrupt-parent = <&mpic>; 168 + gpio-controller; 169 + }; 170 + 171 + L2: l2-cache-controller@20000 { 172 + compatible = "fsl,p2020-l2-cache-controller"; 173 + reg = <0x20000 0x1000>; 174 + cache-line-size = <32>; // 32 bytes 175 + cache-size = <0x80000>; // L2,512K 176 + interrupt-parent = <&mpic>; 177 + interrupts = <16 2>; 178 + }; 179 + 180 + dma@21300 { 181 + #address-cells = <1>; 182 + #size-cells = <1>; 183 + compatible = "fsl,eloplus-dma"; 184 + reg = <0x21300 0x4>; 185 + ranges = <0x0 0x21100 0x200>; 186 + cell-index = <0>; 187 + dma-channel@0 { 188 + compatible = "fsl,eloplus-dma-channel"; 189 + reg = <0x0 0x80>; 190 + cell-index = <0>; 191 + interrupt-parent = <&mpic>; 192 + interrupts = <20 2>; 193 + }; 194 + dma-channel@80 { 195 + compatible = "fsl,eloplus-dma-channel"; 196 + reg = <0x80 0x80>; 197 + cell-index = <1>; 198 + interrupt-parent = <&mpic>; 199 + interrupts = <21 2>; 200 + }; 201 + dma-channel@100 { 202 + compatible = "fsl,eloplus-dma-channel"; 203 + reg = <0x100 0x80>; 204 + cell-index = <2>; 205 + interrupt-parent = <&mpic>; 206 + interrupts = <22 2>; 207 + }; 208 + dma-channel@180 { 209 + compatible = "fsl,eloplus-dma-channel"; 210 + reg = <0x180 0x80>; 211 + cell-index = <3>; 212 + interrupt-parent = <&mpic>; 213 + interrupts = <23 2>; 214 + }; 215 + }; 216 + 217 + usb@22000 { 218 + #address-cells = <1>; 219 + #size-cells = <0>; 220 + compatible = "fsl-usb2-dr"; 221 + reg = <0x22000 0x1000>; 222 + interrupt-parent = <&mpic>; 223 + interrupts = <28 0x2>; 224 + }; 225 + 226 + mdio@24520 { 227 + #address-cells = <1>; 228 + #size-cells = <0>; 229 + compatible = "fsl,gianfar-mdio"; 230 + reg = <0x24520 0x20>; 231 + }; 232 + 233 + mdio@25520 { 234 + #address-cells = <1>; 235 + #size-cells = <0>; 236 + compatible = "fsl,gianfar-tbi"; 237 + reg = <0x26520 0x20>; 238 + }; 239 + 240 + mdio@26520 { 241 + #address-cells = <1>; 242 + #size-cells = <0>; 243 + compatible = "fsl,gianfar-tbi"; 244 + reg = <0x520 0x20>; 245 + }; 246 + 247 + enet0: ethernet@24000 { 248 + #address-cells = <1>; 249 + #size-cells = <1>; 250 + cell-index = <0>; 251 + device_type = "network"; 252 + model = "eTSEC"; 253 + compatible = "gianfar"; 254 + reg = <0x24000 0x1000>; 255 + ranges = <0x0 0x24000 0x1000>; 256 + local-mac-address = [ 00 00 00 00 00 00 ]; 257 + interrupts = <29 2 30 2 34 2>; 258 + interrupt-parent = <&mpic>; 259 + }; 260 + 261 + enet1: ethernet@25000 { 262 + #address-cells = <1>; 263 + #size-cells = <1>; 264 + cell-index = <1>; 265 + device_type = "network"; 266 + model = "eTSEC"; 267 + compatible = "gianfar"; 268 + reg = <0x25000 0x1000>; 269 + ranges = <0x0 0x25000 0x1000>; 270 + local-mac-address = [ 00 00 00 00 00 00 ]; 271 + interrupts = <35 2 36 2 40 2>; 272 + interrupt-parent = <&mpic>; 273 + 274 + }; 275 + 276 + enet2: ethernet@26000 { 277 + #address-cells = <1>; 278 + #size-cells = <1>; 279 + cell-index = <2>; 280 + device_type = "network"; 281 + model = "eTSEC"; 282 + compatible = "gianfar"; 283 + reg = <0x26000 0x1000>; 284 + ranges = <0x0 0x26000 0x1000>; 285 + local-mac-address = [ 00 00 00 00 00 00 ]; 286 + interrupts = <31 2 32 2 33 2>; 287 + interrupt-parent = <&mpic>; 288 + 289 + }; 290 + 291 + sdhci@2e000 { 292 + compatible = "fsl,p2020-esdhc", "fsl,esdhc"; 293 + reg = <0x2e000 0x1000>; 294 + interrupts = <72 0x2>; 295 + interrupt-parent = <&mpic>; 296 + /* Filled in by U-Boot */ 297 + clock-frequency = <0>; 298 + }; 299 + 300 + crypto@30000 { 301 + compatible = "fsl,sec3.1", "fsl,sec3.0", "fsl,sec2.4", 302 + "fsl,sec2.2", "fsl,sec2.1", "fsl,sec2.0"; 303 + reg = <0x30000 0x10000>; 304 + interrupts = <45 2 58 2>; 305 + interrupt-parent = <&mpic>; 306 + fsl,num-channels = <4>; 307 + fsl,channel-fifo-len = <24>; 308 + fsl,exec-units-mask = <0xbfe>; 309 + fsl,descriptor-types-mask = <0x3ab0ebf>; 310 + }; 311 + 312 + mpic: pic@40000 { 313 + interrupt-controller; 314 + #address-cells = <0>; 315 + #interrupt-cells = <2>; 316 + reg = <0x40000 0x40000>; 317 + compatible = "chrp,open-pic"; 318 + device_type = "open-pic"; 319 + }; 320 + 321 + msi@41600 { 322 + compatible = "fsl,p2020-msi", "fsl,mpic-msi"; 323 + reg = <0x41600 0x80>; 324 + msi-available-ranges = <0 0x100>; 325 + interrupts = < 326 + 0xe0 0 327 + 0xe1 0 328 + 0xe2 0 329 + 0xe3 0 330 + 0xe4 0 331 + 0xe5 0 332 + 0xe6 0 333 + 0xe7 0>; 334 + interrupt-parent = <&mpic>; 335 + }; 336 + 337 + global-utilities@e0000 { //global utilities block 338 + compatible = "fsl,p2020-guts"; 339 + reg = <0xe0000 0x1000>; 340 + fsl,has-rstcr; 341 + }; 342 + }; 343 + 344 + pci0: pcie@ffe08000 { 345 + compatible = "fsl,mpc8548-pcie"; 346 + device_type = "pci"; 347 + #interrupt-cells = <1>; 348 + #size-cells = <2>; 349 + #address-cells = <3>; 350 + reg = <0 0xffe08000 0 0x1000>; 351 + bus-range = <0 255>; 352 + clock-frequency = <33333333>; 353 + interrupt-parent = <&mpic>; 354 + interrupts = <24 2>; 355 + }; 356 + 357 + pci1: pcie@ffe09000 { 358 + compatible = "fsl,mpc8548-pcie"; 359 + device_type = "pci"; 360 + #interrupt-cells = <1>; 361 + #size-cells = <2>; 362 + #address-cells = <3>; 363 + reg = <0 0xffe09000 0 0x1000>; 364 + bus-range = <0 255>; 365 + clock-frequency = <33333333>; 366 + interrupt-parent = <&mpic>; 367 + interrupts = <25 2>; 368 + }; 369 + 370 + pci2: pcie@ffe0a000 { 371 + compatible = "fsl,mpc8548-pcie"; 372 + device_type = "pci"; 373 + #interrupt-cells = <1>; 374 + #size-cells = <2>; 375 + #address-cells = <3>; 376 + reg = <0 0xffe0a000 0 0x1000>; 377 + bus-range = <0 255>; 378 + clock-frequency = <33333333>; 379 + interrupt-parent = <&mpic>; 380 + interrupts = <26 2>; 381 + }; 382 + };
-1
arch/powerpc/configs/83xx/mpc8313_rdb_defconfig
··· 104 104 CONFIG_PARTITION_ADVANCED=y 105 105 CONFIG_DEBUG_KERNEL=y 106 106 CONFIG_DETECT_HUNG_TASK=y 107 - # CONFIG_DEBUG_BUGVERBOSE is not set 108 107 # CONFIG_RCU_CPU_STALL_DETECTOR is not set 109 108 CONFIG_SYSCTL_SYSCALL_CHECK=y 110 109 CONFIG_CRYPTO_PCBC=m
-1
arch/powerpc/configs/83xx/mpc8315_rdb_defconfig
··· 101 101 CONFIG_PARTITION_ADVANCED=y 102 102 CONFIG_DEBUG_KERNEL=y 103 103 CONFIG_DETECT_HUNG_TASK=y 104 - # CONFIG_DEBUG_BUGVERBOSE is not set 105 104 # CONFIG_RCU_CPU_STALL_DETECTOR is not set 106 105 CONFIG_SYSCTL_SYSCALL_CHECK=y 107 106 CONFIG_CRYPTO_PCBC=m
-1
arch/powerpc/configs/85xx/mpc8540_ads_defconfig
··· 58 58 CONFIG_DEBUG_KERNEL=y 59 59 CONFIG_DETECT_HUNG_TASK=y 60 60 CONFIG_DEBUG_MUTEXES=y 61 - # CONFIG_DEBUG_BUGVERBOSE is not set 62 61 # CONFIG_RCU_CPU_STALL_DETECTOR is not set 63 62 CONFIG_SYSCTL_SYSCALL_CHECK=y 64 63 # CONFIG_CRYPTO_ANSI_CPRNG is not set
-1
arch/powerpc/configs/85xx/mpc8560_ads_defconfig
··· 59 59 CONFIG_DEBUG_KERNEL=y 60 60 CONFIG_DETECT_HUNG_TASK=y 61 61 CONFIG_DEBUG_MUTEXES=y 62 - # CONFIG_DEBUG_BUGVERBOSE is not set 63 62 # CONFIG_RCU_CPU_STALL_DETECTOR is not set 64 63 CONFIG_SYSCTL_SYSCALL_CHECK=y 65 64 # CONFIG_CRYPTO_ANSI_CPRNG is not set
-1
arch/powerpc/configs/85xx/mpc85xx_cds_defconfig
··· 63 63 CONFIG_DEBUG_KERNEL=y 64 64 CONFIG_DETECT_HUNG_TASK=y 65 65 CONFIG_DEBUG_MUTEXES=y 66 - # CONFIG_DEBUG_BUGVERBOSE is not set 67 66 # CONFIG_RCU_CPU_STALL_DETECTOR is not set 68 67 CONFIG_SYSCTL_SYSCALL_CHECK=y 69 68 # CONFIG_CRYPTO_ANSI_CPRNG is not set
-1
arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig
··· 168 168 CONFIG_CRC_T10DIF=y 169 169 CONFIG_DEBUG_KERNEL=y 170 170 CONFIG_DETECT_HUNG_TASK=y 171 - # CONFIG_DEBUG_BUGVERBOSE is not set 172 171 CONFIG_DEBUG_INFO=y 173 172 # CONFIG_RCU_CPU_STALL_DETECTOR is not set 174 173 CONFIG_SYSCTL_SYSCALL_CHECK=y
+29 -10
arch/powerpc/configs/e55xx_smp_defconfig
··· 6 6 CONFIG_EXPERIMENTAL=y 7 7 CONFIG_SYSVIPC=y 8 8 CONFIG_BSD_PROCESS_ACCT=y 9 + CONFIG_SPARSE_IRQ=y 9 10 CONFIG_IKCONFIG=y 10 11 CONFIG_IKCONFIG_PROC=y 11 12 CONFIG_LOG_BUF_SHIFT=14 12 - CONFIG_SYSFS_DEPRECATED_V2=y 13 13 CONFIG_BLK_DEV_INITRD=y 14 14 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 15 15 CONFIG_EXPERT=y ··· 25 25 CONFIG_NO_HZ=y 26 26 CONFIG_HIGH_RES_TIMERS=y 27 27 CONFIG_BINFMT_MISC=m 28 - CONFIG_SPARSE_IRQ=y 29 28 # CONFIG_PCI is not set 29 + CONFIG_NET=y 30 + CONFIG_PACKET=y 31 + CONFIG_UNIX=y 32 + CONFIG_XFRM_USER=y 33 + CONFIG_NET_KEY=y 34 + CONFIG_INET=y 35 + CONFIG_IP_MULTICAST=y 36 + CONFIG_IP_ADVANCED_ROUTER=y 37 + CONFIG_IP_MULTIPLE_TABLES=y 38 + CONFIG_IP_ROUTE_MULTIPATH=y 39 + CONFIG_IP_ROUTE_VERBOSE=y 40 + CONFIG_IP_PNP=y 41 + CONFIG_IP_PNP_DHCP=y 42 + CONFIG_IP_PNP_BOOTP=y 43 + CONFIG_IP_PNP_RARP=y 44 + CONFIG_NET_IPIP=y 45 + CONFIG_IP_MROUTE=y 46 + CONFIG_IP_PIMSM_V1=y 47 + CONFIG_IP_PIMSM_V2=y 48 + CONFIG_ARPD=y 49 + CONFIG_INET_ESP=y 50 + # CONFIG_INET_XFRM_MODE_BEET is not set 51 + # CONFIG_INET_LRO is not set 52 + CONFIG_IPV6=y 53 + CONFIG_IP_SCTP=m 30 54 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 31 55 CONFIG_PROC_DEVICETREE=y 32 56 CONFIG_BLK_DEV_LOOP=y ··· 58 34 CONFIG_BLK_DEV_RAM_SIZE=131072 59 35 CONFIG_MISC_DEVICES=y 60 36 CONFIG_EEPROM_LEGACY=y 37 + CONFIG_NETDEVICES=y 38 + CONFIG_DUMMY=y 39 + CONFIG_NET_ETHERNET=y 61 40 CONFIG_INPUT_FF_MEMLESS=m 62 41 # CONFIG_INPUT_MOUSEDEV is not set 63 42 # CONFIG_INPUT_KEYBOARD is not set ··· 91 64 CONFIG_NLS_UTF8=m 92 65 CONFIG_CRC_T10DIF=y 93 66 CONFIG_CRC_ITU_T=m 94 - CONFIG_LIBCRC32C=m 95 67 CONFIG_FRAME_WARN=1024 96 68 CONFIG_DEBUG_FS=y 97 69 CONFIG_DEBUG_KERNEL=y 98 70 CONFIG_DETECT_HUNG_TASK=y 99 - # CONFIG_DEBUG_BUGVERBOSE is not set 100 71 CONFIG_DEBUG_INFO=y 101 72 # CONFIG_RCU_CPU_STALL_DETECTOR is not set 102 73 CONFIG_SYSCTL_SYSCALL_CHECK=y 103 74 CONFIG_VIRQ_DEBUG=y 104 - CONFIG_CRYPTO=y 105 - CONFIG_CRYPTO_CBC=y 106 75 CONFIG_CRYPTO_PCBC=m 107 - CONFIG_CRYPTO_HMAC=y 108 - CONFIG_CRYPTO_MD5=y 109 - CONFIG_CRYPTO_SHA1=m 110 - CONFIG_CRYPTO_DES=y 111 76 # CONFIG_CRYPTO_ANSI_CPRNG is not set 112 77 CONFIG_CRYPTO_DEV_TALITOS=y
-1
arch/powerpc/configs/mpc85xx_defconfig
··· 204 204 CONFIG_DEBUG_FS=y 205 205 CONFIG_DEBUG_KERNEL=y 206 206 CONFIG_DETECT_HUNG_TASK=y 207 - # CONFIG_DEBUG_BUGVERBOSE is not set 208 207 CONFIG_DEBUG_INFO=y 209 208 # CONFIG_RCU_CPU_STALL_DETECTOR is not set 210 209 CONFIG_SYSCTL_SYSCALL_CHECK=y
-1
arch/powerpc/configs/mpc85xx_smp_defconfig
··· 206 206 CONFIG_DEBUG_FS=y 207 207 CONFIG_DEBUG_KERNEL=y 208 208 CONFIG_DETECT_HUNG_TASK=y 209 - # CONFIG_DEBUG_BUGVERBOSE is not set 210 209 CONFIG_DEBUG_INFO=y 211 210 # CONFIG_RCU_CPU_STALL_DETECTOR is not set 212 211 CONFIG_SYSCTL_SYSCALL_CHECK=y
-1
arch/powerpc/configs/mpc86xx_defconfig
··· 171 171 CONFIG_CRC_T10DIF=y 172 172 CONFIG_DEBUG_KERNEL=y 173 173 CONFIG_DETECT_HUNG_TASK=y 174 - # CONFIG_DEBUG_BUGVERBOSE is not set 175 174 CONFIG_DEBUG_INFO=y 176 175 # CONFIG_RCU_CPU_STALL_DETECTOR is not set 177 176 CONFIG_SYSCTL_SYSCALL_CHECK=y
+3 -1
arch/powerpc/include/asm/cputable.h
··· 157 157 #define CPU_FTR_476_DD2 ASM_CONST(0x0000000000010000) 158 158 #define CPU_FTR_NEED_COHERENT ASM_CONST(0x0000000000020000) 159 159 #define CPU_FTR_NO_BTIC ASM_CONST(0x0000000000040000) 160 + #define CPU_FTR_DEBUG_LVL_EXC ASM_CONST(0x0000000000080000) 160 161 #define CPU_FTR_NODSISRALIGN ASM_CONST(0x0000000000100000) 161 162 #define CPU_FTR_PPC_LE ASM_CONST(0x0000000000200000) 162 163 #define CPU_FTR_REAL_LE ASM_CONST(0x0000000000400000) ··· 386 385 CPU_FTR_DBELL) 387 386 #define CPU_FTRS_E5500 (CPU_FTR_USE_TB | CPU_FTR_NODSISRALIGN | \ 388 387 CPU_FTR_L2CSR | CPU_FTR_LWSYNC | CPU_FTR_NOEXECUTE | \ 389 - CPU_FTR_DBELL | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD) 388 + CPU_FTR_DBELL | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \ 389 + CPU_FTR_DEBUG_LVL_EXC) 390 390 #define CPU_FTRS_GENERIC_32 (CPU_FTR_COMMON | CPU_FTR_NODSISRALIGN) 391 391 392 392 /* 64-bit CPUs */
+4 -1
arch/powerpc/include/asm/mpic.h
··· 263 263 #ifdef CONFIG_SMP 264 264 struct irq_chip hc_ipi; 265 265 #endif 266 + struct irq_chip hc_tm; 266 267 const char *name; 267 268 /* Flags */ 268 269 unsigned int flags; ··· 282 281 283 282 /* vector numbers used for internal sources (ipi/timers) */ 284 283 unsigned int ipi_vecs[4]; 285 - unsigned int timer_vecs[4]; 284 + unsigned int timer_vecs[8]; 286 285 287 286 /* Spurious vector to program into unused sources */ 288 287 unsigned int spurious_vec; ··· 372 371 * NOTE: This flag trumps MPIC_WANTS_RESET. 373 372 */ 374 373 #define MPIC_NO_RESET 0x00004000 374 + /* Freescale MPIC (compatible includes "fsl,mpic") */ 375 + #define MPIC_FSL 0x00008000 375 376 376 377 /* MPIC HW modification ID */ 377 378 #define MPIC_REGSET_MASK 0xf0000000
+4
arch/powerpc/include/asm/reg_booke.h
··· 83 83 #define SPRN_IVOR13 0x19D /* Interrupt Vector Offset Register 13 */ 84 84 #define SPRN_IVOR14 0x19E /* Interrupt Vector Offset Register 14 */ 85 85 #define SPRN_IVOR15 0x19F /* Interrupt Vector Offset Register 15 */ 86 + #define SPRN_IVOR38 0x1B0 /* Interrupt Vector Offset Register 38 */ 87 + #define SPRN_IVOR39 0x1B1 /* Interrupt Vector Offset Register 39 */ 88 + #define SPRN_IVOR40 0x1B2 /* Interrupt Vector Offset Register 40 */ 89 + #define SPRN_IVOR41 0x1B3 /* Interrupt Vector Offset Register 41 */ 86 90 #define SPRN_SPEFSCR 0x200 /* SPE & Embedded FP Status & Control */ 87 91 #define SPRN_BBEAR 0x201 /* Branch Buffer Entry Address Register */ 88 92 #define SPRN_BBTAR 0x202 /* Branch Buffer Target Address Register */
+3
arch/powerpc/kernel/cpu_setup_fsl_booke.S
··· 88 88 bl __e500_dcache_setup 89 89 #ifdef CONFIG_PPC_BOOK3E_64 90 90 bl .__setup_base_ivors 91 + bl .setup_perfmon_ivor 92 + bl .setup_doorbell_ivors 93 + bl .setup_ehv_ivors 91 94 #else 92 95 bl __setup_e500mc_ivors 93 96 #endif
+109 -3
arch/powerpc/kernel/exceptions-64e.S
··· 253 253 .balign 0x1000 254 254 .globl interrupt_base_book3e 255 255 interrupt_base_book3e: /* fake trap */ 256 - /* Note: If real debug exceptions are supported by the HW, the vector 257 - * below will have to be patched up to point to an appropriate handler 258 - */ 259 256 EXCEPTION_STUB(0x000, machine_check) /* 0x0200 */ 260 257 EXCEPTION_STUB(0x020, critical_input) /* 0x0580 */ 261 258 EXCEPTION_STUB(0x040, debug_crit) /* 0x0d00 */ ··· 269 272 EXCEPTION_STUB(0x1a0, watchdog) /* 0x09f0 */ 270 273 EXCEPTION_STUB(0x1c0, data_tlb_miss) 271 274 EXCEPTION_STUB(0x1e0, instruction_tlb_miss) 275 + EXCEPTION_STUB(0x260, perfmon) 272 276 EXCEPTION_STUB(0x280, doorbell) 273 277 EXCEPTION_STUB(0x2a0, doorbell_crit) 278 + EXCEPTION_STUB(0x2c0, guest_doorbell) 279 + EXCEPTION_STUB(0x2e0, guest_doorbell_crit) 280 + EXCEPTION_STUB(0x300, hypercall) 281 + EXCEPTION_STUB(0x320, ehpriv) 274 282 275 283 .globl interrupt_end_book3e 276 284 interrupt_end_book3e: ··· 457 455 kernel_dbg_exc: 458 456 b . /* NYI */ 459 457 458 + /* Debug exception as a debug interrupt*/ 459 + START_EXCEPTION(debug_debug); 460 + DBG_EXCEPTION_PROLOG(0xd00, PROLOG_ADDITION_2REGS) 461 + 462 + /* 463 + * If there is a single step or branch-taken exception in an 464 + * exception entry sequence, it was probably meant to apply to 465 + * the code where the exception occurred (since exception entry 466 + * doesn't turn off DE automatically). We simulate the effect 467 + * of turning off DE on entry to an exception handler by turning 468 + * off DE in the DSRR1 value and clearing the debug status. 469 + */ 470 + 471 + mfspr r14,SPRN_DBSR /* check single-step/branch taken */ 472 + andis. r15,r14,DBSR_IC@h 473 + beq+ 1f 474 + 475 + LOAD_REG_IMMEDIATE(r14,interrupt_base_book3e) 476 + LOAD_REG_IMMEDIATE(r15,interrupt_end_book3e) 477 + cmpld cr0,r10,r14 478 + cmpld cr1,r10,r15 479 + blt+ cr0,1f 480 + bge+ cr1,1f 481 + 482 + /* here it looks like we got an inappropriate debug exception. */ 483 + lis r14,DBSR_IC@h /* clear the IC event */ 484 + rlwinm r11,r11,0,~MSR_DE /* clear DE in the DSRR1 value */ 485 + mtspr SPRN_DBSR,r14 486 + mtspr SPRN_DSRR1,r11 487 + lwz r10,PACA_EXDBG+EX_CR(r13) /* restore registers */ 488 + ld r1,PACA_EXDBG+EX_R1(r13) 489 + ld r14,PACA_EXDBG+EX_R14(r13) 490 + ld r15,PACA_EXDBG+EX_R15(r13) 491 + mtcr r10 492 + ld r10,PACA_EXDBG+EX_R10(r13) /* restore registers */ 493 + ld r11,PACA_EXDBG+EX_R11(r13) 494 + mfspr r13,SPRN_SPRG_DBG_SCRATCH 495 + rfdi 496 + 497 + /* Normal debug exception */ 498 + /* XXX We only handle coming from userspace for now since we can't 499 + * quite save properly an interrupted kernel state yet 500 + */ 501 + 1: andi. r14,r11,MSR_PR; /* check for userspace again */ 502 + beq kernel_dbg_exc; /* if from kernel mode */ 503 + 504 + /* Now we mash up things to make it look like we are coming on a 505 + * normal exception 506 + */ 507 + mfspr r15,SPRN_SPRG_DBG_SCRATCH 508 + mtspr SPRN_SPRG_GEN_SCRATCH,r15 509 + mfspr r14,SPRN_DBSR 510 + EXCEPTION_COMMON(0xd00, PACA_EXDBG, INTS_DISABLE_ALL) 511 + std r14,_DSISR(r1) 512 + addi r3,r1,STACK_FRAME_OVERHEAD 513 + mr r4,r14 514 + ld r14,PACA_EXDBG+EX_R14(r13) 515 + ld r15,PACA_EXDBG+EX_R15(r13) 516 + bl .save_nvgprs 517 + bl .DebugException 518 + b .ret_from_except 519 + 520 + MASKABLE_EXCEPTION(0x260, perfmon, .performance_monitor_exception, ACK_NONE) 521 + 460 522 /* Doorbell interrupt */ 461 523 MASKABLE_EXCEPTION(0x2070, doorbell, .doorbell_exception, ACK_NONE) 462 524 ··· 534 468 // bl .doorbell_critical_exception 535 469 // b ret_from_crit_except 536 470 b . 471 + 472 + MASKABLE_EXCEPTION(0x2c0, guest_doorbell, .unknown_exception, ACK_NONE) 473 + MASKABLE_EXCEPTION(0x2e0, guest_doorbell_crit, .unknown_exception, ACK_NONE) 474 + MASKABLE_EXCEPTION(0x310, hypercall, .unknown_exception, ACK_NONE) 475 + MASKABLE_EXCEPTION(0x320, ehpriv, .unknown_exception, ACK_NONE) 537 476 538 477 539 478 /* ··· 659 588 BAD_STACK_TRAMPOLINE(0x000) 660 589 BAD_STACK_TRAMPOLINE(0x100) 661 590 BAD_STACK_TRAMPOLINE(0x200) 591 + BAD_STACK_TRAMPOLINE(0x260) 592 + BAD_STACK_TRAMPOLINE(0x2c0) 593 + BAD_STACK_TRAMPOLINE(0x2e0) 662 594 BAD_STACK_TRAMPOLINE(0x300) 595 + BAD_STACK_TRAMPOLINE(0x310) 596 + BAD_STACK_TRAMPOLINE(0x320) 663 597 BAD_STACK_TRAMPOLINE(0x400) 664 598 BAD_STACK_TRAMPOLINE(0x500) 665 599 BAD_STACK_TRAMPOLINE(0x600) ··· 1199 1123 1200 1124 sync 1201 1125 1126 + blr 1127 + 1128 + _GLOBAL(setup_perfmon_ivor) 1129 + SET_IVOR(35, 0x260) /* Performance Monitor */ 1130 + blr 1131 + 1132 + _GLOBAL(setup_doorbell_ivors) 1133 + SET_IVOR(36, 0x280) /* Processor Doorbell */ 1134 + SET_IVOR(37, 0x2a0) /* Processor Doorbell Crit */ 1135 + 1136 + /* Check MMUCFG[LPIDSIZE] to determine if we have category E.HV */ 1137 + mfspr r10,SPRN_MMUCFG 1138 + rlwinm. r10,r10,0,MMUCFG_LPIDSIZE 1139 + beqlr 1140 + 1141 + SET_IVOR(38, 0x2c0) /* Guest Processor Doorbell */ 1142 + SET_IVOR(39, 0x2e0) /* Guest Processor Doorbell Crit/MC */ 1143 + blr 1144 + 1145 + _GLOBAL(setup_ehv_ivors) 1146 + /* 1147 + * We may be running as a guest and lack E.HV even on a chip 1148 + * that normally has it. 1149 + */ 1150 + mfspr r10,SPRN_MMUCFG 1151 + rlwinm. r10,r10,0,MMUCFG_LPIDSIZE 1152 + beqlr 1153 + 1154 + SET_IVOR(40, 0x300) /* Embedded Hypervisor System Call */ 1155 + SET_IVOR(41, 0x320) /* Embedded Hypervisor Privilege */ 1202 1156 blr
+8
arch/powerpc/kernel/setup_64.c
··· 62 62 #include <asm/udbg.h> 63 63 #include <asm/kexec.h> 64 64 #include <asm/mmu_context.h> 65 + #include <asm/code-patching.h> 65 66 66 67 #include "setup.h" 67 68 ··· 478 477 #ifdef CONFIG_PPC_BOOK3E 479 478 static void __init exc_lvl_early_init(void) 480 479 { 480 + extern unsigned int interrupt_base_book3e; 481 + extern unsigned int exc_debug_debug_book3e; 482 + 481 483 unsigned int i; 482 484 483 485 for_each_possible_cpu(i) { ··· 491 487 mcheckirq_ctx[i] = (struct thread_info *) 492 488 __va(memblock_alloc(THREAD_SIZE, THREAD_SIZE)); 493 489 } 490 + 491 + if (cpu_has_feature(CPU_FTR_DEBUG_LVL_EXC)) 492 + patch_branch(&interrupt_base_book3e + (0x040 / 4) + 1, 493 + (unsigned long)&exc_debug_debug_book3e, 0); 494 494 } 495 495 #else 496 496 #define exc_lvl_early_init()
+63 -32
arch/powerpc/platforms/86xx/mpc8610_hpcd.c
··· 66 66 return; 67 67 } 68 68 69 - ret = request_irq(irq, mpc8610_sw9_irq, 0, "sw9/wakeup", NULL); 69 + ret = request_irq(irq, mpc8610_sw9_irq, 0, "sw9:wakeup", NULL); 70 70 if (ret) { 71 71 pr_err("%s: can't request pixis event IRQ: %d\n", 72 72 __func__, ret); ··· 105 105 106 106 #if defined(CONFIG_FB_FSL_DIU) || defined(CONFIG_FB_FSL_DIU_MODULE) 107 107 108 - static u32 get_busfreq(void) 109 - { 110 - struct device_node *node; 108 + /* 109 + * DIU Area Descriptor 110 + * 111 + * The MPC8610 reference manual shows the bits of the AD register in 112 + * little-endian order, which causes the BLUE_C field to be split into two 113 + * parts. To simplify the definition of the MAKE_AD() macro, we define the 114 + * fields in big-endian order and byte-swap the result. 115 + * 116 + * So even though the registers don't look like they're in the 117 + * same bit positions as they are on the P1022, the same value is written to 118 + * the AD register on the MPC8610 and on the P1022. 119 + */ 120 + #define AD_BYTE_F 0x10000000 121 + #define AD_ALPHA_C_MASK 0x0E000000 122 + #define AD_ALPHA_C_SHIFT 25 123 + #define AD_BLUE_C_MASK 0x01800000 124 + #define AD_BLUE_C_SHIFT 23 125 + #define AD_GREEN_C_MASK 0x00600000 126 + #define AD_GREEN_C_SHIFT 21 127 + #define AD_RED_C_MASK 0x00180000 128 + #define AD_RED_C_SHIFT 19 129 + #define AD_PALETTE 0x00040000 130 + #define AD_PIXEL_S_MASK 0x00030000 131 + #define AD_PIXEL_S_SHIFT 16 132 + #define AD_COMP_3_MASK 0x0000F000 133 + #define AD_COMP_3_SHIFT 12 134 + #define AD_COMP_2_MASK 0x00000F00 135 + #define AD_COMP_2_SHIFT 8 136 + #define AD_COMP_1_MASK 0x000000F0 137 + #define AD_COMP_1_SHIFT 4 138 + #define AD_COMP_0_MASK 0x0000000F 139 + #define AD_COMP_0_SHIFT 0 111 140 112 - u32 fs_busfreq = 0; 113 - node = of_find_node_by_type(NULL, "cpu"); 114 - if (node) { 115 - unsigned int size; 116 - const unsigned int *prop = 117 - of_get_property(node, "bus-frequency", &size); 118 - if (prop) 119 - fs_busfreq = *prop; 120 - of_node_put(node); 121 - }; 122 - return fs_busfreq; 123 - } 141 + #define MAKE_AD(alpha, red, blue, green, size, c0, c1, c2, c3) \ 142 + cpu_to_le32(AD_BYTE_F | (alpha << AD_ALPHA_C_SHIFT) | \ 143 + (blue << AD_BLUE_C_SHIFT) | (green << AD_GREEN_C_SHIFT) | \ 144 + (red << AD_RED_C_SHIFT) | (c3 << AD_COMP_3_SHIFT) | \ 145 + (c2 << AD_COMP_2_SHIFT) | (c1 << AD_COMP_1_SHIFT) | \ 146 + (c0 << AD_COMP_0_SHIFT) | (size << AD_PIXEL_S_SHIFT)) 124 147 125 148 unsigned int mpc8610hpcd_get_pixel_format(unsigned int bits_per_pixel, 126 149 int monitor_port) 127 150 { 128 151 static const unsigned long pixelformat[][3] = { 129 - {0x88882317, 0x88083218, 0x65052119}, 130 - {0x88883316, 0x88082219, 0x65053118}, 152 + { 153 + MAKE_AD(3, 0, 2, 1, 3, 8, 8, 8, 8), 154 + MAKE_AD(4, 2, 0, 1, 2, 8, 8, 8, 0), 155 + MAKE_AD(4, 0, 2, 1, 1, 5, 6, 5, 0) 156 + }, 157 + { 158 + MAKE_AD(3, 2, 0, 1, 3, 8, 8, 8, 8), 159 + MAKE_AD(4, 0, 2, 1, 2, 8, 8, 8, 0), 160 + MAKE_AD(4, 2, 0, 1, 1, 5, 6, 5, 0) 161 + }, 131 162 }; 132 - unsigned int pix_fmt, arch_monitor; 163 + unsigned int arch_monitor; 133 164 165 + /* The DVI port is mis-wired on revision 1 of this board. */ 134 166 arch_monitor = ((*pixis_arch == 0x01) && (monitor_port == 0))? 0 : 1; 135 - /* DVI port for board version 0x01 */ 136 167 137 - if (bits_per_pixel == 32) 138 - pix_fmt = pixelformat[arch_monitor][0]; 139 - else if (bits_per_pixel == 24) 140 - pix_fmt = pixelformat[arch_monitor][1]; 141 - else if (bits_per_pixel == 16) 142 - pix_fmt = pixelformat[arch_monitor][2]; 143 - else 144 - pix_fmt = pixelformat[1][0]; 145 - 146 - return pix_fmt; 168 + switch (bits_per_pixel) { 169 + case 32: 170 + return pixelformat[arch_monitor][0]; 171 + case 24: 172 + return pixelformat[arch_monitor][1]; 173 + case 16: 174 + return pixelformat[arch_monitor][2]; 175 + default: 176 + pr_err("fsl-diu: unsupported pixel depth %u\n", bits_per_pixel); 177 + return 0; 178 + } 147 179 } 148 180 149 181 void mpc8610hpcd_set_gamma_table(int monitor_port, char *gamma_table_base) ··· 222 190 } 223 191 224 192 /* Pixel Clock configuration */ 225 - pr_debug("DIU: Bus Frequency = %d\n", get_busfreq()); 226 - speed_ccb = get_busfreq(); 193 + speed_ccb = fsl_get_sys_freq(); 227 194 228 195 /* Calculate the pixel clock with the smallest error */ 229 196 /* calculate the following in steps to avoid overflow */
+122 -7
arch/powerpc/sysdev/mpic.c
··· 6 6 * with various broken implementations of this HW. 7 7 * 8 8 * Copyright (C) 2004 Benjamin Herrenschmidt, IBM Corp. 9 + * Copyright 2010-2011 Freescale Semiconductor, Inc. 9 10 * 10 11 * This file is subject to the terms and conditions of the GNU General Public 11 12 * License. See the file COPYING in the main directory of this archive ··· 219 218 _mpic_write(mpic->reg_type, &mpic->gregs, offset, value); 220 219 } 221 220 221 + static inline u32 _mpic_tm_read(struct mpic *mpic, unsigned int tm) 222 + { 223 + unsigned int offset = MPIC_INFO(TIMER_VECTOR_PRI) + 224 + ((tm & 3) * MPIC_INFO(TIMER_STRIDE)); 225 + 226 + if (tm >= 4) 227 + offset += 0x1000 / 4; 228 + 229 + return _mpic_read(mpic->reg_type, &mpic->tmregs, offset); 230 + } 231 + 232 + static inline void _mpic_tm_write(struct mpic *mpic, unsigned int tm, u32 value) 233 + { 234 + unsigned int offset = MPIC_INFO(TIMER_VECTOR_PRI) + 235 + ((tm & 3) * MPIC_INFO(TIMER_STRIDE)); 236 + 237 + if (tm >= 4) 238 + offset += 0x1000 / 4; 239 + 240 + _mpic_write(mpic->reg_type, &mpic->tmregs, offset, value); 241 + } 242 + 222 243 static inline u32 _mpic_cpu_read(struct mpic *mpic, unsigned int reg) 223 244 { 224 245 unsigned int cpu = mpic_processor_id(mpic); ··· 291 268 #define mpic_write(b,r,v) _mpic_write(mpic->reg_type,&(b),(r),(v)) 292 269 #define mpic_ipi_read(i) _mpic_ipi_read(mpic,(i)) 293 270 #define mpic_ipi_write(i,v) _mpic_ipi_write(mpic,(i),(v)) 271 + #define mpic_tm_read(i) _mpic_tm_read(mpic,(i)) 272 + #define mpic_tm_write(i,v) _mpic_tm_write(mpic,(i),(v)) 294 273 #define mpic_cpu_read(i) _mpic_cpu_read(mpic,(i)) 295 274 #define mpic_cpu_write(i,v) _mpic_cpu_write(mpic,(i),(v)) 296 275 #define mpic_irq_read(s,r) _mpic_irq_read(mpic,(s),(r)) ··· 649 624 return (src >= mpic->ipi_vecs[0] && src <= mpic->ipi_vecs[3]); 650 625 } 651 626 627 + /* Determine if the linux irq is a timer */ 628 + static unsigned int mpic_is_tm(struct mpic *mpic, unsigned int irq) 629 + { 630 + unsigned int src = virq_to_hw(irq); 631 + 632 + return (src >= mpic->timer_vecs[0] && src <= mpic->timer_vecs[7]); 633 + } 652 634 653 635 /* Convert a cpu mask from logical to physical cpu numbers. */ 654 636 static inline u32 mpic_physmask(u32 cpumask) ··· 842 810 843 811 #endif /* CONFIG_SMP */ 844 812 813 + static void mpic_unmask_tm(struct irq_data *d) 814 + { 815 + struct mpic *mpic = mpic_from_irq_data(d); 816 + unsigned int src = virq_to_hw(d->irq) - mpic->timer_vecs[0]; 817 + 818 + DBG("%s: enable_tm: %d (tm %d)\n", mpic->name, irq, src); 819 + mpic_tm_write(src, mpic_tm_read(src) & ~MPIC_VECPRI_MASK); 820 + mpic_tm_read(src); 821 + } 822 + 823 + static void mpic_mask_tm(struct irq_data *d) 824 + { 825 + struct mpic *mpic = mpic_from_irq_data(d); 826 + unsigned int src = virq_to_hw(d->irq) - mpic->timer_vecs[0]; 827 + 828 + mpic_tm_write(src, mpic_tm_read(src) | MPIC_VECPRI_MASK); 829 + mpic_tm_read(src); 830 + } 831 + 845 832 int mpic_set_affinity(struct irq_data *d, const struct cpumask *cpumask, 846 833 bool force) 847 834 { ··· 987 936 }; 988 937 #endif /* CONFIG_SMP */ 989 938 939 + static struct irq_chip mpic_tm_chip = { 940 + .irq_mask = mpic_mask_tm, 941 + .irq_unmask = mpic_unmask_tm, 942 + .irq_eoi = mpic_end_irq, 943 + }; 944 + 990 945 #ifdef CONFIG_MPIC_U3_HT_IRQS 991 946 static struct irq_chip mpic_irq_ht_chip = { 992 947 .irq_startup = mpic_startup_ht_irq, ··· 1036 979 } 1037 980 #endif /* CONFIG_SMP */ 1038 981 982 + if (hw >= mpic->timer_vecs[0] && hw <= mpic->timer_vecs[7]) { 983 + WARN_ON(!(mpic->flags & MPIC_PRIMARY)); 984 + 985 + DBG("mpic: mapping as timer\n"); 986 + irq_set_chip_data(virq, mpic); 987 + irq_set_chip_and_handler(virq, &mpic->hc_tm, 988 + handle_fasteoi_irq); 989 + return 0; 990 + } 991 + 1039 992 if (hw >= mpic->irq_count) 1040 993 return -EINVAL; 1041 994 ··· 1086 1019 irq_hw_number_t *out_hwirq, unsigned int *out_flags) 1087 1020 1088 1021 { 1022 + struct mpic *mpic = h->host_data; 1089 1023 static unsigned char map_mpic_senses[4] = { 1090 1024 IRQ_TYPE_EDGE_RISING, 1091 1025 IRQ_TYPE_LEVEL_LOW, ··· 1095 1027 }; 1096 1028 1097 1029 *out_hwirq = intspec[0]; 1098 - if (intsize > 1) { 1030 + if (intsize >= 4 && (mpic->flags & MPIC_FSL)) { 1031 + /* 1032 + * Freescale MPIC with extended intspec: 1033 + * First two cells are as usual. Third specifies 1034 + * an "interrupt type". Fourth is type-specific data. 1035 + * 1036 + * See Documentation/devicetree/bindings/powerpc/fsl/mpic.txt 1037 + */ 1038 + switch (intspec[2]) { 1039 + case 0: 1040 + case 1: /* no EISR/EIMR support for now, treat as shared IRQ */ 1041 + break; 1042 + case 2: 1043 + if (intspec[0] >= ARRAY_SIZE(mpic->ipi_vecs)) 1044 + return -EINVAL; 1045 + 1046 + *out_hwirq = mpic->ipi_vecs[intspec[0]]; 1047 + break; 1048 + case 3: 1049 + if (intspec[0] >= ARRAY_SIZE(mpic->timer_vecs)) 1050 + return -EINVAL; 1051 + 1052 + *out_hwirq = mpic->timer_vecs[intspec[0]]; 1053 + break; 1054 + default: 1055 + pr_debug("%s: unknown irq type %u\n", 1056 + __func__, intspec[2]); 1057 + return -EINVAL; 1058 + } 1059 + 1060 + *out_flags = map_mpic_senses[intspec[1] & 3]; 1061 + } else if (intsize > 1) { 1099 1062 u32 mask = 0x3; 1100 1063 1101 1064 /* Apple invented a new race of encoding on machines with ··· 1202 1103 mpic->hc_ipi.name = name; 1203 1104 #endif /* CONFIG_SMP */ 1204 1105 1106 + mpic->hc_tm = mpic_tm_chip; 1107 + mpic->hc_tm.name = name; 1108 + 1205 1109 mpic->flags = flags; 1206 1110 mpic->isu_size = isu_size; 1207 1111 mpic->irq_count = irq_count; ··· 1215 1113 else 1216 1114 intvec_top = 255; 1217 1115 1218 - mpic->timer_vecs[0] = intvec_top - 8; 1219 - mpic->timer_vecs[1] = intvec_top - 7; 1220 - mpic->timer_vecs[2] = intvec_top - 6; 1221 - mpic->timer_vecs[3] = intvec_top - 5; 1116 + mpic->timer_vecs[0] = intvec_top - 12; 1117 + mpic->timer_vecs[1] = intvec_top - 11; 1118 + mpic->timer_vecs[2] = intvec_top - 10; 1119 + mpic->timer_vecs[3] = intvec_top - 9; 1120 + mpic->timer_vecs[4] = intvec_top - 8; 1121 + mpic->timer_vecs[5] = intvec_top - 7; 1122 + mpic->timer_vecs[6] = intvec_top - 6; 1123 + mpic->timer_vecs[7] = intvec_top - 5; 1222 1124 mpic->ipi_vecs[0] = intvec_top - 4; 1223 1125 mpic->ipi_vecs[1] = intvec_top - 3; 1224 1126 mpic->ipi_vecs[2] = intvec_top - 2; ··· 1232 1126 /* Check for "big-endian" in device-tree */ 1233 1127 if (node && of_get_property(node, "big-endian", NULL) != NULL) 1234 1128 mpic->flags |= MPIC_BIG_ENDIAN; 1129 + if (node && of_device_is_compatible(node, "fsl,mpic")) 1130 + mpic->flags |= MPIC_FSL; 1235 1131 1236 1132 /* Look for protected sources */ 1237 1133 if (node) { ··· 1425 1317 /* Set current processor priority to max */ 1426 1318 mpic_cpu_write(MPIC_INFO(CPU_CURRENT_TASK_PRI), 0xf); 1427 1319 1428 - /* Initialize timers: just disable them all */ 1320 + /* Initialize timers to our reserved vectors and mask them for now */ 1429 1321 for (i = 0; i < 4; i++) { 1430 1322 mpic_write(mpic->tmregs, 1431 1323 i * MPIC_INFO(TIMER_STRIDE) + 1432 - MPIC_INFO(TIMER_DESTINATION), 0); 1324 + MPIC_INFO(TIMER_DESTINATION), 1325 + 1 << hard_smp_processor_id()); 1433 1326 mpic_write(mpic->tmregs, 1434 1327 i * MPIC_INFO(TIMER_STRIDE) + 1435 1328 MPIC_INFO(TIMER_VECTOR_PRI), 1436 1329 MPIC_VECPRI_MASK | 1330 + (9 << MPIC_VECPRI_PRIORITY_SHIFT) | 1437 1331 (mpic->timer_vecs[0] + i)); 1438 1332 } 1439 1333 ··· 1544 1434 ~MPIC_VECPRI_PRIORITY_MASK; 1545 1435 mpic_ipi_write(src - mpic->ipi_vecs[0], 1546 1436 reg | (pri << MPIC_VECPRI_PRIORITY_SHIFT)); 1437 + } else if (mpic_is_tm(mpic, irq)) { 1438 + reg = mpic_tm_read(src - mpic->timer_vecs[0]) & 1439 + ~MPIC_VECPRI_PRIORITY_MASK; 1440 + mpic_tm_write(src - mpic->timer_vecs[0], 1441 + reg | (pri << MPIC_VECPRI_PRIORITY_SHIFT)); 1547 1442 } else { 1548 1443 reg = mpic_irq_read(src, MPIC_INFO(IRQ_VECTOR_PRI)) 1549 1444 & ~MPIC_VECPRI_PRIORITY_MASK;