.. | .. |
---|
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 | }; |
---|