1*609496afSBen Zong-You Xie// SPDX-License-Identifier: (GPL-2.0 OR MIT) 2*609496afSBen Zong-You Xie/* 3*609496afSBen Zong-You Xie * Copyright (C) 2025 Andes Technology Corporation. All rights reserved. 4*609496afSBen Zong-You Xie */ 5*609496afSBen Zong-You Xie 6*609496afSBen Zong-You Xie/dts-v1/; 7*609496afSBen Zong-You Xie 8*609496afSBen Zong-You Xie#include <dt-bindings/interrupt-controller/irq.h> 9*609496afSBen Zong-You Xie 10*609496afSBen Zong-You Xie/ { 11*609496afSBen Zong-You Xie #address-cells = <2>; 12*609496afSBen Zong-You Xie #size-cells = <2>; 13*609496afSBen Zong-You Xie 14*609496afSBen Zong-You Xie cpus { 15*609496afSBen Zong-You Xie #address-cells = <1>; 16*609496afSBen Zong-You Xie #size-cells = <0>; 17*609496afSBen Zong-You Xie timebase-frequency = <62500000>; 18*609496afSBen Zong-You Xie 19*609496afSBen Zong-You Xie cpu0: cpu@0 { 20*609496afSBen Zong-You Xie compatible = "andestech,ax45mp", "riscv"; 21*609496afSBen Zong-You Xie device_type = "cpu"; 22*609496afSBen Zong-You Xie reg = <0>; 23*609496afSBen Zong-You Xie riscv,isa-base = "rv64i"; 24*609496afSBen Zong-You Xie riscv,isa-extensions = "i", "m", "a", "f", "d", "c", 25*609496afSBen Zong-You Xie "zicntr", "zicsr", "zifencei", 26*609496afSBen Zong-You Xie "zihpm", "xandespmu"; 27*609496afSBen Zong-You Xie mmu-type = "riscv,sv39"; 28*609496afSBen Zong-You Xie clock-frequency = <100000000>; 29*609496afSBen Zong-You Xie i-cache-size = <0x8000>; 30*609496afSBen Zong-You Xie i-cache-sets = <256>; 31*609496afSBen Zong-You Xie i-cache-line-size = <64>; 32*609496afSBen Zong-You Xie d-cache-size = <0x8000>; 33*609496afSBen Zong-You Xie d-cache-sets = <128>; 34*609496afSBen Zong-You Xie d-cache-line-size = <64>; 35*609496afSBen Zong-You Xie next-level-cache = <&l2_cache>; 36*609496afSBen Zong-You Xie 37*609496afSBen Zong-You Xie cpu0_intc: interrupt-controller { 38*609496afSBen Zong-You Xie compatible = "andestech,cpu-intc", "riscv,cpu-intc"; 39*609496afSBen Zong-You Xie #interrupt-cells = <1>; 40*609496afSBen Zong-You Xie interrupt-controller; 41*609496afSBen Zong-You Xie }; 42*609496afSBen Zong-You Xie }; 43*609496afSBen Zong-You Xie 44*609496afSBen Zong-You Xie cpu1: cpu@1 { 45*609496afSBen Zong-You Xie compatible = "andestech,ax45mp", "riscv"; 46*609496afSBen Zong-You Xie device_type = "cpu"; 47*609496afSBen Zong-You Xie reg = <1>; 48*609496afSBen Zong-You Xie riscv,isa-base = "rv64i"; 49*609496afSBen Zong-You Xie riscv,isa-extensions = "i", "m", "a", "f", "d", "c", 50*609496afSBen Zong-You Xie "zicntr", "zicsr", "zifencei", 51*609496afSBen Zong-You Xie "zihpm", "xandespmu"; 52*609496afSBen Zong-You Xie mmu-type = "riscv,sv39"; 53*609496afSBen Zong-You Xie clock-frequency = <100000000>; 54*609496afSBen Zong-You Xie i-cache-size = <0x8000>; 55*609496afSBen Zong-You Xie i-cache-sets = <256>; 56*609496afSBen Zong-You Xie i-cache-line-size = <64>; 57*609496afSBen Zong-You Xie d-cache-size = <0x8000>; 58*609496afSBen Zong-You Xie d-cache-sets = <128>; 59*609496afSBen Zong-You Xie d-cache-line-size = <64>; 60*609496afSBen Zong-You Xie next-level-cache = <&l2_cache>; 61*609496afSBen Zong-You Xie 62*609496afSBen Zong-You Xie cpu1_intc: interrupt-controller { 63*609496afSBen Zong-You Xie compatible = "andestech,cpu-intc", 64*609496afSBen Zong-You Xie "riscv,cpu-intc"; 65*609496afSBen Zong-You Xie #interrupt-cells = <1>; 66*609496afSBen Zong-You Xie interrupt-controller; 67*609496afSBen Zong-You Xie }; 68*609496afSBen Zong-You Xie }; 69*609496afSBen Zong-You Xie 70*609496afSBen Zong-You Xie cpu2: cpu@2 { 71*609496afSBen Zong-You Xie compatible = "andestech,ax45mp", "riscv"; 72*609496afSBen Zong-You Xie device_type = "cpu"; 73*609496afSBen Zong-You Xie reg = <2>; 74*609496afSBen Zong-You Xie riscv,isa-base = "rv64i"; 75*609496afSBen Zong-You Xie riscv,isa-extensions = "i", "m", "a", "f", "d", "c", 76*609496afSBen Zong-You Xie "zicntr", "zicsr", "zifencei", 77*609496afSBen Zong-You Xie "zihpm", "xandespmu"; 78*609496afSBen Zong-You Xie mmu-type = "riscv,sv39"; 79*609496afSBen Zong-You Xie clock-frequency = <100000000>; 80*609496afSBen Zong-You Xie i-cache-size = <0x8000>; 81*609496afSBen Zong-You Xie i-cache-sets = <256>; 82*609496afSBen Zong-You Xie i-cache-line-size = <64>; 83*609496afSBen Zong-You Xie d-cache-size = <0x8000>; 84*609496afSBen Zong-You Xie d-cache-sets = <128>; 85*609496afSBen Zong-You Xie d-cache-line-size = <64>; 86*609496afSBen Zong-You Xie next-level-cache = <&l2_cache>; 87*609496afSBen Zong-You Xie 88*609496afSBen Zong-You Xie cpu2_intc: interrupt-controller { 89*609496afSBen Zong-You Xie compatible = "andestech,cpu-intc", 90*609496afSBen Zong-You Xie "riscv,cpu-intc"; 91*609496afSBen Zong-You Xie #interrupt-cells = <1>; 92*609496afSBen Zong-You Xie interrupt-controller; 93*609496afSBen Zong-You Xie }; 94*609496afSBen Zong-You Xie }; 95*609496afSBen Zong-You Xie 96*609496afSBen Zong-You Xie cpu3: cpu@3 { 97*609496afSBen Zong-You Xie compatible = "andestech,ax45mp", "riscv"; 98*609496afSBen Zong-You Xie device_type = "cpu"; 99*609496afSBen Zong-You Xie reg = <3>; 100*609496afSBen Zong-You Xie riscv,isa-base = "rv64i"; 101*609496afSBen Zong-You Xie riscv,isa-extensions = "i", "m", "a", "f", "d", "c", 102*609496afSBen Zong-You Xie "zicntr", "zicsr", "zifencei", 103*609496afSBen Zong-You Xie "zihpm", "xandespmu"; 104*609496afSBen Zong-You Xie mmu-type = "riscv,sv39"; 105*609496afSBen Zong-You Xie clock-frequency = <100000000>; 106*609496afSBen Zong-You Xie i-cache-size = <0x8000>; 107*609496afSBen Zong-You Xie i-cache-sets = <256>; 108*609496afSBen Zong-You Xie i-cache-line-size = <64>; 109*609496afSBen Zong-You Xie d-cache-size = <0x8000>; 110*609496afSBen Zong-You Xie d-cache-sets = <128>; 111*609496afSBen Zong-You Xie d-cache-line-size = <64>; 112*609496afSBen Zong-You Xie next-level-cache = <&l2_cache>; 113*609496afSBen Zong-You Xie 114*609496afSBen Zong-You Xie cpu3_intc: interrupt-controller { 115*609496afSBen Zong-You Xie compatible = "andestech,cpu-intc", 116*609496afSBen Zong-You Xie "riscv,cpu-intc"; 117*609496afSBen Zong-You Xie #interrupt-cells = <1>; 118*609496afSBen Zong-You Xie interrupt-controller; 119*609496afSBen Zong-You Xie }; 120*609496afSBen Zong-You Xie }; 121*609496afSBen Zong-You Xie }; 122*609496afSBen Zong-You Xie 123*609496afSBen Zong-You Xie soc { 124*609496afSBen Zong-You Xie compatible = "simple-bus"; 125*609496afSBen Zong-You Xie ranges; 126*609496afSBen Zong-You Xie interrupt-parent = <&plic>; 127*609496afSBen Zong-You Xie #address-cells = <2>; 128*609496afSBen Zong-You Xie #size-cells = <2>; 129*609496afSBen Zong-You Xie 130*609496afSBen Zong-You Xie plmt: timer@100000 { 131*609496afSBen Zong-You Xie compatible = "andestech,qilai-plmt", "andestech,plmt0"; 132*609496afSBen Zong-You Xie reg = <0x0 0x00100000 0x0 0x100000>; 133*609496afSBen Zong-You Xie interrupts-extended = <&cpu0_intc 7>, 134*609496afSBen Zong-You Xie <&cpu1_intc 7>, 135*609496afSBen Zong-You Xie <&cpu2_intc 7>, 136*609496afSBen Zong-You Xie <&cpu3_intc 7>; 137*609496afSBen Zong-You Xie }; 138*609496afSBen Zong-You Xie 139*609496afSBen Zong-You Xie l2_cache: cache-controller@200000 { 140*609496afSBen Zong-You Xie compatible = "andestech,qilai-ax45mp-cache", 141*609496afSBen Zong-You Xie "andestech,ax45mp-cache", "cache"; 142*609496afSBen Zong-You Xie reg = <0x0 0x00200000 0x0 0x100000>; 143*609496afSBen Zong-You Xie interrupts = <16 IRQ_TYPE_LEVEL_HIGH>; 144*609496afSBen Zong-You Xie cache-line-size = <64>; 145*609496afSBen Zong-You Xie cache-level = <2>; 146*609496afSBen Zong-You Xie cache-sets = <2048>; 147*609496afSBen Zong-You Xie cache-size = <0x200000>; 148*609496afSBen Zong-You Xie cache-unified; 149*609496afSBen Zong-You Xie }; 150*609496afSBen Zong-You Xie 151*609496afSBen Zong-You Xie plic_sw: interrupt-controller@400000 { 152*609496afSBen Zong-You Xie compatible = "andestech,qilai-plicsw", 153*609496afSBen Zong-You Xie "andestech,plicsw"; 154*609496afSBen Zong-You Xie reg = <0x0 0x00400000 0x0 0x400000>; 155*609496afSBen Zong-You Xie interrupts-extended = <&cpu0_intc 3>, 156*609496afSBen Zong-You Xie <&cpu1_intc 3>, 157*609496afSBen Zong-You Xie <&cpu2_intc 3>, 158*609496afSBen Zong-You Xie <&cpu3_intc 3>; 159*609496afSBen Zong-You Xie }; 160*609496afSBen Zong-You Xie 161*609496afSBen Zong-You Xie plic: interrupt-controller@2000000 { 162*609496afSBen Zong-You Xie compatible = "andestech,qilai-plic", 163*609496afSBen Zong-You Xie "andestech,nceplic100"; 164*609496afSBen Zong-You Xie reg = <0x0 0x02000000 0x0 0x2000000>; 165*609496afSBen Zong-You Xie #address-cells = <0>; 166*609496afSBen Zong-You Xie #interrupt-cells = <2>; 167*609496afSBen Zong-You Xie interrupt-controller; 168*609496afSBen Zong-You Xie interrupts-extended = <&cpu0_intc 11>, <&cpu0_intc 9>, 169*609496afSBen Zong-You Xie <&cpu1_intc 11>, <&cpu1_intc 9>, 170*609496afSBen Zong-You Xie <&cpu2_intc 11>, <&cpu2_intc 9>, 171*609496afSBen Zong-You Xie <&cpu3_intc 11>, <&cpu3_intc 9>; 172*609496afSBen Zong-You Xie riscv,ndev = <71>; 173*609496afSBen Zong-You Xie }; 174*609496afSBen Zong-You Xie 175*609496afSBen Zong-You Xie uart0: serial@30300000 { 176*609496afSBen Zong-You Xie compatible = "andestech,uart16550", "ns16550a"; 177*609496afSBen Zong-You Xie reg = <0x0 0x30300000 0x0 0x100000>; 178*609496afSBen Zong-You Xie interrupts = <9 IRQ_TYPE_LEVEL_HIGH>; 179*609496afSBen Zong-You Xie clock-frequency = <50000000>; 180*609496afSBen Zong-You Xie reg-offset = <32>; 181*609496afSBen Zong-You Xie reg-shift = <2>; 182*609496afSBen Zong-You Xie reg-io-width = <4>; 183*609496afSBen Zong-You Xie no-loopback-test; 184*609496afSBen Zong-You Xie }; 185*609496afSBen Zong-You Xie }; 186*609496afSBen Zong-You Xie}; 187