| .. | .. |
|---|
| 232 | 232 | }; |
|---|
| 233 | 233 | }; |
|---|
| 234 | 234 | |
|---|
| 235 | | -Stratix10 SoCFPGA ECC Manager |
|---|
| 235 | +Stratix10 SoCFPGA ECC Manager (ARM64) |
|---|
| 236 | 236 | The Stratix10 SoC ECC Manager handles the IRQs for each peripheral |
|---|
| 237 | | -in a shared register similar to the Arria10. However, ECC requires |
|---|
| 238 | | -access to registers that can only be read from Secure Monitor with |
|---|
| 239 | | -SMC calls. Therefore the device tree is slightly different. |
|---|
| 237 | +in a shared register similar to the Arria10. However, Stratix10 ECC |
|---|
| 238 | +requires access to registers that can only be read from Secure Monitor |
|---|
| 239 | +with SMC calls. Therefore the device tree is slightly different. Note |
|---|
| 240 | +that only 1 interrupt is sent in Stratix10 because the double bit errors |
|---|
| 241 | +are treated as SErrors in ARM64 instead of IRQs in ARM32. |
|---|
| 240 | 242 | |
|---|
| 241 | 243 | Required Properties: |
|---|
| 242 | 244 | - compatible : Should be "altr,socfpga-s10-ecc-manager" |
|---|
| 243 | | -- interrupts : Should be single bit error interrupt, then double bit error |
|---|
| 244 | | - interrupt. |
|---|
| 245 | +- altr,sysgr-syscon : phandle to Stratix10 System Manager Block |
|---|
| 246 | + containing the ECC manager registers. |
|---|
| 247 | +- interrupts : Should be single bit error interrupt. |
|---|
| 245 | 248 | - interrupt-controller : boolean indicator that ECC Manager is an interrupt controller |
|---|
| 246 | 249 | - #interrupt-cells : must be set to 2. |
|---|
| 250 | +- #address-cells: must be 1 |
|---|
| 251 | +- #size-cells: must be 1 |
|---|
| 252 | +- ranges : standard definition, should translate from local addresses |
|---|
| 247 | 253 | |
|---|
| 248 | 254 | Subcomponents: |
|---|
| 249 | 255 | |
|---|
| 250 | 256 | SDRAM ECC |
|---|
| 251 | 257 | Required Properties: |
|---|
| 252 | 258 | - compatible : Should be "altr,sdram-edac-s10" |
|---|
| 253 | | -- interrupts : Should be single bit error interrupt, then double bit error |
|---|
| 254 | | - interrupt, in this order. |
|---|
| 259 | +- interrupts : Should be single bit error interrupt. |
|---|
| 260 | + |
|---|
| 261 | +On-Chip RAM ECC |
|---|
| 262 | +Required Properties: |
|---|
| 263 | +- compatible : Should be "altr,socfpga-s10-ocram-ecc" |
|---|
| 264 | +- reg : Address and size for ECC block registers. |
|---|
| 265 | +- altr,ecc-parent : phandle to parent OCRAM node. |
|---|
| 266 | +- interrupts : Should be single bit error interrupt. |
|---|
| 267 | + |
|---|
| 268 | +Ethernet FIFO ECC |
|---|
| 269 | +Required Properties: |
|---|
| 270 | +- compatible : Should be "altr,socfpga-s10-eth-mac-ecc" |
|---|
| 271 | +- reg : Address and size for ECC block registers. |
|---|
| 272 | +- altr,ecc-parent : phandle to parent Ethernet node. |
|---|
| 273 | +- interrupts : Should be single bit error interrupt. |
|---|
| 274 | + |
|---|
| 275 | +NAND FIFO ECC |
|---|
| 276 | +Required Properties: |
|---|
| 277 | +- compatible : Should be "altr,socfpga-s10-nand-ecc" |
|---|
| 278 | +- reg : Address and size for ECC block registers. |
|---|
| 279 | +- altr,ecc-parent : phandle to parent NAND node. |
|---|
| 280 | +- interrupts : Should be single bit error interrupt. |
|---|
| 281 | + |
|---|
| 282 | +DMA FIFO ECC |
|---|
| 283 | +Required Properties: |
|---|
| 284 | +- compatible : Should be "altr,socfpga-s10-dma-ecc" |
|---|
| 285 | +- reg : Address and size for ECC block registers. |
|---|
| 286 | +- altr,ecc-parent : phandle to parent DMA node. |
|---|
| 287 | +- interrupts : Should be single bit error interrupt. |
|---|
| 288 | + |
|---|
| 289 | +USB FIFO ECC |
|---|
| 290 | +Required Properties: |
|---|
| 291 | +- compatible : Should be "altr,socfpga-s10-usb-ecc" |
|---|
| 292 | +- reg : Address and size for ECC block registers. |
|---|
| 293 | +- altr,ecc-parent : phandle to parent USB node. |
|---|
| 294 | +- interrupts : Should be single bit error interrupt. |
|---|
| 295 | + |
|---|
| 296 | +SDMMC FIFO ECC |
|---|
| 297 | +Required Properties: |
|---|
| 298 | +- compatible : Should be "altr,socfpga-s10-sdmmc-ecc" |
|---|
| 299 | +- reg : Address and size for ECC block registers. |
|---|
| 300 | +- altr,ecc-parent : phandle to parent SD/MMC node. |
|---|
| 301 | +- interrupts : Should be single bit error interrupt for port A |
|---|
| 302 | + and then single bit error interrupt for port B. |
|---|
| 255 | 303 | |
|---|
| 256 | 304 | Example: |
|---|
| 257 | 305 | |
|---|
| 258 | 306 | eccmgr { |
|---|
| 259 | 307 | compatible = "altr,socfpga-s10-ecc-manager"; |
|---|
| 260 | | - interrupts = <0 15 4>, <0 95 4>; |
|---|
| 308 | + altr,sysmgr-syscon = <&sysmgr>; |
|---|
| 309 | + #address-cells = <1>; |
|---|
| 310 | + #size-cells = <1>; |
|---|
| 311 | + interrupts = <0 15 4>; |
|---|
| 261 | 312 | interrupt-controller; |
|---|
| 262 | 313 | #interrupt-cells = <2>; |
|---|
| 314 | + ranges; |
|---|
| 263 | 315 | |
|---|
| 264 | 316 | sdramedac { |
|---|
| 265 | 317 | compatible = "altr,sdram-edac-s10"; |
|---|
| 266 | | - interrupts = <16 4>, <48 4>; |
|---|
| 318 | + interrupts = <16 IRQ_TYPE_LEVEL_HIGH>; |
|---|
| 319 | + }; |
|---|
| 320 | + |
|---|
| 321 | + ocram-ecc@ff8cc000 { |
|---|
| 322 | + compatible = "altr,socfpga-s10-ocram-ecc"; |
|---|
| 323 | + reg = <ff8cc000 0x100>; |
|---|
| 324 | + altr,ecc-parent = <&ocram>; |
|---|
| 325 | + interrupts = <1 IRQ_TYPE_LEVEL_HIGH>; |
|---|
| 326 | + }; |
|---|
| 327 | + |
|---|
| 328 | + emac0-rx-ecc@ff8c0000 { |
|---|
| 329 | + compatible = "altr,socfpga-s10-eth-mac-ecc"; |
|---|
| 330 | + reg = <0xff8c0000 0x100>; |
|---|
| 331 | + altr,ecc-parent = <&gmac0>; |
|---|
| 332 | + interrupts = <4 IRQ_TYPE_LEVEL_HIGH>; |
|---|
| 333 | + }; |
|---|
| 334 | + |
|---|
| 335 | + emac0-tx-ecc@ff8c0400 { |
|---|
| 336 | + compatible = "altr,socfpga-s10-eth-mac-ecc"; |
|---|
| 337 | + reg = <0xff8c0400 0x100>; |
|---|
| 338 | + altr,ecc-parent = <&gmac0>; |
|---|
| 339 | + interrupts = <5 IRQ_TYPE_LEVEL_HIGH>' |
|---|
| 340 | + }; |
|---|
| 341 | + |
|---|
| 342 | + nand-buf-ecc@ff8c8000 { |
|---|
| 343 | + compatible = "altr,socfpga-s10-nand-ecc"; |
|---|
| 344 | + reg = <0xff8c8000 0x100>; |
|---|
| 345 | + altr,ecc-parent = <&nand>; |
|---|
| 346 | + interrupts = <11 IRQ_TYPE_LEVEL_HIGH>; |
|---|
| 347 | + }; |
|---|
| 348 | + |
|---|
| 349 | + nand-rd-ecc@ff8c8400 { |
|---|
| 350 | + compatible = "altr,socfpga-s10-nand-ecc"; |
|---|
| 351 | + reg = <0xff8c8400 0x100>; |
|---|
| 352 | + altr,ecc-parent = <&nand>; |
|---|
| 353 | + interrupts = <13 IRQ_TYPE_LEVEL_HIGH>; |
|---|
| 354 | + }; |
|---|
| 355 | + |
|---|
| 356 | + nand-wr-ecc@ff8c8800 { |
|---|
| 357 | + compatible = "altr,socfpga-s10-nand-ecc"; |
|---|
| 358 | + reg = <0xff8c8800 0x100>; |
|---|
| 359 | + altr,ecc-parent = <&nand>; |
|---|
| 360 | + interrupts = <12 IRQ_TYPE_LEVEL_HIGH>; |
|---|
| 361 | + }; |
|---|
| 362 | + |
|---|
| 363 | + dma-ecc@ff8c9000 { |
|---|
| 364 | + compatible = "altr,socfpga-s10-dma-ecc"; |
|---|
| 365 | + reg = <0xff8c9000 0x100>; |
|---|
| 366 | + altr,ecc-parent = <&pdma>; |
|---|
| 367 | + interrupts = <10 IRQ_TYPE_LEVEL_HIGH>; |
|---|
| 368 | + |
|---|
| 369 | + usb0-ecc@ff8c4000 { |
|---|
| 370 | + compatible = "altr,socfpga-s10-usb-ecc"; |
|---|
| 371 | + reg = <0xff8c4000 0x100>; |
|---|
| 372 | + altr,ecc-parent = <&usb0>; |
|---|
| 373 | + interrupts = <2 IRQ_TYPE_LEVEL_HIGH>; |
|---|
| 374 | + }; |
|---|
| 375 | + |
|---|
| 376 | + sdmmc-ecc@ff8c8c00 { |
|---|
| 377 | + compatible = "altr,socfpga-s10-sdmmc-ecc"; |
|---|
| 378 | + reg = <0xff8c8c00 0x100>; |
|---|
| 379 | + altr,ecc-parent = <&mmc>; |
|---|
| 380 | + interrupts = <14 IRQ_TYPE_LEVEL_HIGH>, |
|---|
| 381 | + <15 IRQ_TYPE_LEVEL_HIGH>; |
|---|
| 267 | 382 | }; |
|---|
| 268 | 383 | }; |
|---|