/** * dts file for Hisilicon D05 Development Board * * Copyright (C) 2016 Hisilicon Ltd. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * publishhed by the Free Software Foundation. * */ #include / { compatible = "hisilicon,hip07-d05"; interrupt-parent = <&gic>; #address-cells = <2>; #size-cells = <2>; psci { compatible = "arm,psci-0.2"; method = "smc"; }; cpus { #address-cells = <1>; #size-cells = <0>; cpu-map { cluster0 { core0 { cpu = <&cpu0>; }; core1 { cpu = <&cpu1>; }; core2 { cpu = <&cpu2>; }; core3 { cpu = <&cpu3>; }; }; cluster1 { core0 { cpu = <&cpu4>; }; core1 { cpu = <&cpu5>; }; core2 { cpu = <&cpu6>; }; core3 { cpu = <&cpu7>; }; }; cluster2 { core0 { cpu = <&cpu8>; }; core1 { cpu = <&cpu9>; }; core2 { cpu = <&cpu10>; }; core3 { cpu = <&cpu11>; }; }; cluster3 { core0 { cpu = <&cpu12>; }; core1 { cpu = <&cpu13>; }; core2 { cpu = <&cpu14>; }; core3 { cpu = <&cpu15>; }; }; cluster4 { core0 { cpu = <&cpu16>; }; core1 { cpu = <&cpu17>; }; core2 { cpu = <&cpu18>; }; core3 { cpu = <&cpu19>; }; }; cluster5 { core0 { cpu = <&cpu20>; }; core1 { cpu = <&cpu21>; }; core2 { cpu = <&cpu22>; }; core3 { cpu = <&cpu23>; }; }; cluster6 { core0 { cpu = <&cpu24>; }; core1 { cpu = <&cpu25>; }; core2 { cpu = <&cpu26>; }; core3 { cpu = <&cpu27>; }; }; cluster7 { core0 { cpu = <&cpu28>; }; core1 { cpu = <&cpu29>; }; core2 { cpu = <&cpu30>; }; core3 { cpu = <&cpu31>; }; }; cluster8 { core0 { cpu = <&cpu32>; }; core1 { cpu = <&cpu33>; }; core2 { cpu = <&cpu34>; }; core3 { cpu = <&cpu35>; }; }; cluster9 { core0 { cpu = <&cpu36>; }; core1 { cpu = <&cpu37>; }; core2 { cpu = <&cpu38>; }; core3 { cpu = <&cpu39>; }; }; cluster10 { core0 { cpu = <&cpu40>; }; core1 { cpu = <&cpu41>; }; core2 { cpu = <&cpu42>; }; core3 { cpu = <&cpu43>; }; }; cluster11 { core0 { cpu = <&cpu44>; }; core1 { cpu = <&cpu45>; }; core2 { cpu = <&cpu46>; }; core3 { cpu = <&cpu47>; }; }; cluster12 { core0 { cpu = <&cpu48>; }; core1 { cpu = <&cpu49>; }; core2 { cpu = <&cpu50>; }; core3 { cpu = <&cpu51>; }; }; cluster13 { core0 { cpu = <&cpu52>; }; core1 { cpu = <&cpu53>; }; core2 { cpu = <&cpu54>; }; core3 { cpu = <&cpu55>; }; }; cluster14 { core0 { cpu = <&cpu56>; }; core1 { cpu = <&cpu57>; }; core2 { cpu = <&cpu58>; }; core3 { cpu = <&cpu59>; }; }; cluster15 { core0 { cpu = <&cpu60>; }; core1 { cpu = <&cpu61>; }; core2 { cpu = <&cpu62>; }; core3 { cpu = <&cpu63>; }; }; }; cpu0: cpu@10000 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x10000>; enable-method = "psci"; next-level-cache = <&cluster0_l2>; numa-node-id = <0>; }; cpu1: cpu@10001 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x10001>; enable-method = "psci"; next-level-cache = <&cluster0_l2>; numa-node-id = <0>; }; cpu2: cpu@10002 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x10002>; enable-method = "psci"; next-level-cache = <&cluster0_l2>; numa-node-id = <0>; }; cpu3: cpu@10003 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x10003>; enable-method = "psci"; next-level-cache = <&cluster0_l2>; numa-node-id = <0>; }; cpu4: cpu@10100 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x10100>; enable-method = "psci"; next-level-cache = <&cluster1_l2>; numa-node-id = <0>; }; cpu5: cpu@10101 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x10101>; enable-method = "psci"; next-level-cache = <&cluster1_l2>; numa-node-id = <0>; }; cpu6: cpu@10102 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x10102>; enable-method = "psci"; next-level-cache = <&cluster1_l2>; numa-node-id = <0>; }; cpu7: cpu@10103 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x10103>; enable-method = "psci"; next-level-cache = <&cluster1_l2>; numa-node-id = <0>; }; cpu8: cpu@10200 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x10200>; enable-method = "psci"; next-level-cache = <&cluster2_l2>; numa-node-id = <0>; }; cpu9: cpu@10201 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x10201>; enable-method = "psci"; next-level-cache = <&cluster2_l2>; numa-node-id = <0>; }; cpu10: cpu@10202 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x10202>; enable-method = "psci"; next-level-cache = <&cluster2_l2>; numa-node-id = <0>; }; cpu11: cpu@10203 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x10203>; enable-method = "psci"; next-level-cache = <&cluster2_l2>; numa-node-id = <0>; }; cpu12: cpu@10300 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x10300>; enable-method = "psci"; next-level-cache = <&cluster3_l2>; numa-node-id = <0>; }; cpu13: cpu@10301 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x10301>; enable-method = "psci"; next-level-cache = <&cluster3_l2>; numa-node-id = <0>; }; cpu14: cpu@10302 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x10302>; enable-method = "psci"; next-level-cache = <&cluster3_l2>; numa-node-id = <0>; }; cpu15: cpu@10303 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x10303>; enable-method = "psci"; next-level-cache = <&cluster3_l2>; numa-node-id = <0>; }; cpu16: cpu@30000 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x30000>; enable-method = "psci"; next-level-cache = <&cluster4_l2>; numa-node-id = <1>; }; cpu17: cpu@30001 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x30001>; enable-method = "psci"; next-level-cache = <&cluster4_l2>; numa-node-id = <1>; }; cpu18: cpu@30002 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x30002>; enable-method = "psci"; next-level-cache = <&cluster4_l2>; numa-node-id = <1>; }; cpu19: cpu@30003 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x30003>; enable-method = "psci"; next-level-cache = <&cluster4_l2>; numa-node-id = <1>; }; cpu20: cpu@30100 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x30100>; enable-method = "psci"; next-level-cache = <&cluster5_l2>; numa-node-id = <1>; }; cpu21: cpu@30101 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x30101>; enable-method = "psci"; next-level-cache = <&cluster5_l2>; numa-node-id = <1>; }; cpu22: cpu@30102 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x30102>; enable-method = "psci"; next-level-cache = <&cluster5_l2>; numa-node-id = <1>; }; cpu23: cpu@30103 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x30103>; enable-method = "psci"; next-level-cache = <&cluster5_l2>; numa-node-id = <1>; }; cpu24: cpu@30200 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x30200>; enable-method = "psci"; next-level-cache = <&cluster6_l2>; numa-node-id = <1>; }; cpu25: cpu@30201 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x30201>; enable-method = "psci"; next-level-cache = <&cluster6_l2>; numa-node-id = <1>; }; cpu26: cpu@30202 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x30202>; enable-method = "psci"; next-level-cache = <&cluster6_l2>; numa-node-id = <1>; }; cpu27: cpu@30203 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x30203>; enable-method = "psci"; next-level-cache = <&cluster6_l2>; numa-node-id = <1>; }; cpu28: cpu@30300 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x30300>; enable-method = "psci"; next-level-cache = <&cluster7_l2>; numa-node-id = <1>; }; cpu29: cpu@30301 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x30301>; enable-method = "psci"; next-level-cache = <&cluster7_l2>; numa-node-id = <1>; }; cpu30: cpu@30302 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x30302>; enable-method = "psci"; next-level-cache = <&cluster7_l2>; numa-node-id = <1>; }; cpu31: cpu@30303 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x30303>; enable-method = "psci"; next-level-cache = <&cluster7_l2>; numa-node-id = <1>; }; cpu32: cpu@50000 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x50000>; enable-method = "psci"; next-level-cache = <&cluster8_l2>; numa-node-id = <2>; }; cpu33: cpu@50001 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x50001>; enable-method = "psci"; next-level-cache = <&cluster8_l2>; numa-node-id = <2>; }; cpu34: cpu@50002 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x50002>; enable-method = "psci"; next-level-cache = <&cluster8_l2>; numa-node-id = <2>; }; cpu35: cpu@50003 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x50003>; enable-method = "psci"; next-level-cache = <&cluster8_l2>; numa-node-id = <2>; }; cpu36: cpu@50100 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x50100>; enable-method = "psci"; next-level-cache = <&cluster9_l2>; numa-node-id = <2>; }; cpu37: cpu@50101 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x50101>; enable-method = "psci"; next-level-cache = <&cluster9_l2>; numa-node-id = <2>; }; cpu38: cpu@50102 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x50102>; enable-method = "psci"; next-level-cache = <&cluster9_l2>; numa-node-id = <2>; }; cpu39: cpu@50103 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x50103>; enable-method = "psci"; next-level-cache = <&cluster9_l2>; numa-node-id = <2>; }; cpu40: cpu@50200 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x50200>; enable-method = "psci"; next-level-cache = <&cluster10_l2>; numa-node-id = <2>; }; cpu41: cpu@50201 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x50201>; enable-method = "psci"; next-level-cache = <&cluster10_l2>; numa-node-id = <2>; }; cpu42: cpu@50202 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x50202>; enable-method = "psci"; next-level-cache = <&cluster10_l2>; numa-node-id = <2>; }; cpu43: cpu@50203 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x50203>; enable-method = "psci"; next-level-cache = <&cluster10_l2>; numa-node-id = <2>; }; cpu44: cpu@50300 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x50300>; enable-method = "psci"; next-level-cache = <&cluster11_l2>; numa-node-id = <2>; }; cpu45: cpu@50301 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x50301>; enable-method = "psci"; next-level-cache = <&cluster11_l2>; numa-node-id = <2>; }; cpu46: cpu@50302 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x50302>; enable-method = "psci"; next-level-cache = <&cluster11_l2>; numa-node-id = <2>; }; cpu47: cpu@50303 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x50303>; enable-method = "psci"; next-level-cache = <&cluster11_l2>; numa-node-id = <2>; }; cpu48: cpu@70000 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x70000>; enable-method = "psci"; next-level-cache = <&cluster12_l2>; numa-node-id = <3>; }; cpu49: cpu@70001 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x70001>; enable-method = "psci"; next-level-cache = <&cluster12_l2>; numa-node-id = <3>; }; cpu50: cpu@70002 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x70002>; enable-method = "psci"; next-level-cache = <&cluster12_l2>; numa-node-id = <3>; }; cpu51: cpu@70003 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x70003>; enable-method = "psci"; next-level-cache = <&cluster12_l2>; numa-node-id = <3>; }; cpu52: cpu@70100 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x70100>; enable-method = "psci"; next-level-cache = <&cluster13_l2>; numa-node-id = <3>; }; cpu53: cpu@70101 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x70101>; enable-method = "psci"; next-level-cache = <&cluster13_l2>; numa-node-id = <3>; }; cpu54: cpu@70102 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x70102>; enable-method = "psci"; next-level-cache = <&cluster13_l2>; numa-node-id = <3>; }; cpu55: cpu@70103 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x70103>; enable-method = "psci"; next-level-cache = <&cluster13_l2>; numa-node-id = <3>; }; cpu56: cpu@70200 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x70200>; enable-method = "psci"; next-level-cache = <&cluster14_l2>; numa-node-id = <3>; }; cpu57: cpu@70201 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x70201>; enable-method = "psci"; next-level-cache = <&cluster14_l2>; numa-node-id = <3>; }; cpu58: cpu@70202 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x70202>; enable-method = "psci"; next-level-cache = <&cluster14_l2>; numa-node-id = <3>; }; cpu59: cpu@70203 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x70203>; enable-method = "psci"; next-level-cache = <&cluster14_l2>; numa-node-id = <3>; }; cpu60: cpu@70300 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x70300>; enable-method = "psci"; next-level-cache = <&cluster15_l2>; numa-node-id = <3>; }; cpu61: cpu@70301 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x70301>; enable-method = "psci"; next-level-cache = <&cluster15_l2>; numa-node-id = <3>; }; cpu62: cpu@70302 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x70302>; enable-method = "psci"; next-level-cache = <&cluster15_l2>; numa-node-id = <3>; }; cpu63: cpu@70303 { device_type = "cpu"; compatible = "arm,cortex-a72", "arm,armv8"; reg = <0x70303>; enable-method = "psci"; next-level-cache = <&cluster15_l2>; numa-node-id = <3>; }; cluster0_l2: l2-cache0 { compatible = "cache"; }; cluster1_l2: l2-cache1 { compatible = "cache"; }; cluster2_l2: l2-cache2 { compatible = "cache"; }; cluster3_l2: l2-cache3 { compatible = "cache"; }; cluster4_l2: l2-cache4 { compatible = "cache"; }; cluster5_l2: l2-cache5 { compatible = "cache"; }; cluster6_l2: l2-cache6 { compatible = "cache"; }; cluster7_l2: l2-cache7 { compatible = "cache"; }; cluster8_l2: l2-cache8 { compatible = "cache"; }; cluster9_l2: l2-cache9 { compatible = "cache"; }; cluster10_l2: l2-cache10 { compatible = "cache"; }; cluster11_l2: l2-cache11 { compatible = "cache"; }; cluster12_l2: l2-cache12 { compatible = "cache"; }; cluster13_l2: l2-cache13 { compatible = "cache"; }; cluster14_l2: l2-cache14 { compatible = "cache"; }; cluster15_l2: l2-cache15 { compatible = "cache"; }; }; gic: interrupt-controller@4d000000 { compatible = "arm,gic-v3"; #interrupt-cells = <3>; #address-cells = <2>; #size-cells = <2>; ranges; interrupt-controller; #redistributor-regions = <4>; redistributor-stride = <0x0 0x40000>; reg = <0x0 0x4d000000 0x0 0x10000>, /* GICD */ <0x0 0x4d100000 0x0 0x400000>, /* p0 GICR node 0 */ <0x0 0x6d100000 0x0 0x400000>, /* p0 GICR node 1 */ <0x400 0x4d100000 0x0 0x400000>, /* p1 GICR node 2 */ <0x400 0x6d100000 0x0 0x400000>, /* p1 GICR node 3 */ <0x0 0xfe000000 0x0 0x10000>, /* GICC */ <0x0 0xfe010000 0x0 0x10000>, /* GICH */ <0x0 0xfe020000 0x0 0x10000>; /* GICV */ interrupts = ; p0_its_peri_a: interrupt-controller@4c000000 { compatible = "arm,gic-v3-its"; msi-controller; #msi-cells = <1>; reg = <0x0 0x4c000000 0x0 0x40000>; }; p0_its_peri_b: interrupt-controller@6c000000 { compatible = "arm,gic-v3-its"; msi-controller; #msi-cells = <1>; reg = <0x0 0x6c000000 0x0 0x40000>; }; p0_its_dsa_a: interrupt-controller@c6000000 { compatible = "arm,gic-v3-its"; msi-controller; #msi-cells = <1>; reg = <0x0 0xc6000000 0x0 0x40000>; }; p0_its_dsa_b: interrupt-controller@8,c6000000 { compatible = "arm,gic-v3-its"; msi-controller; #msi-cells = <1>; reg = <0x8 0xc6000000 0x0 0x40000>; }; p1_its_peri_a: interrupt-controller@400,4c000000 { compatible = "arm,gic-v3-its"; msi-controller; #msi-cells = <1>; reg = <0x400 0x4c000000 0x0 0x40000>; }; p1_its_peri_b: interrupt-controller@400,6c000000 { compatible = "arm,gic-v3-its"; msi-controller; #msi-cells = <1>; reg = <0x400 0x6c000000 0x0 0x40000>; }; p1_its_dsa_a: interrupt-controller@400,c6000000 { compatible = "arm,gic-v3-its"; msi-controller; #msi-cells = <1>; reg = <0x400 0xc6000000 0x0 0x40000>; }; p1_its_dsa_b: interrupt-controller@408,c6000000 { compatible = "arm,gic-v3-its"; msi-controller; #msi-cells = <1>; reg = <0x408 0xc6000000 0x0 0x40000>; }; }; timer { compatible = "arm,armv8-timer"; interrupts = , , , ; }; pmu { compatible = "arm,cortex-a72-pmu"; interrupts = ; }; p0_mbigen_peri_b: interrupt-controller@60080000 { compatible = "hisilicon,mbigen-v2"; reg = <0x0 0x60080000 0x0 0x10000>; mbigen_uart: uart_intc { msi-parent = <&p0_its_peri_b 0x120c7>; interrupt-controller; #interrupt-cells = <2>; num-pins = <1>; }; }; p0_mbigen_pcie_a: interrupt-controller@a0080000 { compatible = "hisilicon,mbigen-v2"; reg = <0x0 0xa0080000 0x0 0x10000>; mbigen_usb: intc_usb { msi-parent = <&p0_its_dsa_a 0x40080>; interrupt-controller; #interrupt-cells = <2>; num-pins = <2>; }; }; soc { compatible = "simple-bus"; #address-cells = <2>; #size-cells = <2>; ranges; uart0: uart@602b0000 { compatible = "arm,sbsa-uart"; reg = <0x0 0x602b0000 0x0 0x1000>; interrupt-parent = <&mbigen_uart>; interrupts = <807 4>; current-speed = <115200>; reg-io-width = <4>; status = "disabled"; }; usb_ohci: ohci@a7030000 { compatible = "generic-ohci"; reg = <0x0 0xa7030000 0x0 0x10000>; interrupt-parent = <&mbigen_usb>; interrupts = <640 4>; dma-coherent; status = "disabled"; }; usb_ehci: ehci@a7020000 { compatible = "generic-ehci"; reg = <0x0 0xa7020000 0x0 0x10000>; interrupt-parent = <&mbigen_usb>; interrupts = <641 4>; dma-coherent; status = "disabled"; }; }; };