Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 /*
0003  * Copyright 2020, Amazon.com, Inc. or its affiliates. All Rights Reserved
0004  */
0005 
0006 /dts-v1/;
0007 
0008 #include <dt-bindings/interrupt-controller/arm-gic.h>
0009 
0010 / {
0011         model = "Amazon's Annapurna Labs Alpine v3";
0012         compatible = "amazon,al-alpine-v3";
0013 
0014         interrupt-parent = <&gic>;
0015 
0016         #address-cells = <2>;
0017         #size-cells = <2>;
0018 
0019         cpus {
0020                 #address-cells = <1>;
0021                 #size-cells = <0>;
0022 
0023                 cpu@0 {
0024                         device_type = "cpu";
0025                         compatible = "arm,cortex-a72";
0026                         reg = <0x0>;
0027                         enable-method = "psci";
0028                         d-cache-size = <0x8000>;
0029                         d-cache-line-size = <64>;
0030                         d-cache-sets = <256>;
0031                         i-cache-size = <0xc000>;
0032                         i-cache-line-size = <64>;
0033                         i-cache-sets = <256>;
0034                         next-level-cache = <&cluster0_l2>;
0035                 };
0036 
0037                 cpu@1 {
0038                         device_type = "cpu";
0039                         compatible = "arm,cortex-a72";
0040                         reg = <0x1>;
0041                         enable-method = "psci";
0042                         d-cache-size = <0x8000>;
0043                         d-cache-line-size = <64>;
0044                         d-cache-sets = <256>;
0045                         i-cache-size = <0xc000>;
0046                         i-cache-line-size = <64>;
0047                         i-cache-sets = <256>;
0048                         next-level-cache = <&cluster0_l2>;
0049                 };
0050 
0051                 cpu@2 {
0052                         device_type = "cpu";
0053                         compatible = "arm,cortex-a72";
0054                         reg = <0x2>;
0055                         enable-method = "psci";
0056                         d-cache-size = <0x8000>;
0057                         d-cache-line-size = <64>;
0058                         d-cache-sets = <256>;
0059                         i-cache-size = <0xc000>;
0060                         i-cache-line-size = <64>;
0061                         i-cache-sets = <256>;
0062                         next-level-cache = <&cluster0_l2>;
0063                 };
0064 
0065                 cpu@3 {
0066                         device_type = "cpu";
0067                         compatible = "arm,cortex-a72";
0068                         reg = <0x3>;
0069                         enable-method = "psci";
0070                         d-cache-size = <0x8000>;
0071                         d-cache-line-size = <64>;
0072                         d-cache-sets = <256>;
0073                         i-cache-size = <0xc000>;
0074                         i-cache-line-size = <64>;
0075                         i-cache-sets = <256>;
0076                         next-level-cache = <&cluster0_l2>;
0077                 };
0078 
0079                 cpu@100 {
0080                         device_type = "cpu";
0081                         compatible = "arm,cortex-a72";
0082                         reg = <0x100>;
0083                         enable-method = "psci";
0084                         d-cache-size = <0x8000>;
0085                         d-cache-line-size = <64>;
0086                         d-cache-sets = <256>;
0087                         i-cache-size = <0xc000>;
0088                         i-cache-line-size = <64>;
0089                         i-cache-sets = <256>;
0090                         next-level-cache = <&cluster1_l2>;
0091                 };
0092 
0093                 cpu@101 {
0094                         device_type = "cpu";
0095                         compatible = "arm,cortex-a72";
0096                         reg = <0x101>;
0097                         enable-method = "psci";
0098                         d-cache-size = <0x8000>;
0099                         d-cache-line-size = <64>;
0100                         d-cache-sets = <256>;
0101                         i-cache-size = <0xc000>;
0102                         i-cache-line-size = <64>;
0103                         i-cache-sets = <256>;
0104                         next-level-cache = <&cluster1_l2>;
0105                 };
0106 
0107                 cpu@102 {
0108                         device_type = "cpu";
0109                         compatible = "arm,cortex-a72";
0110                         reg = <0x102>;
0111                         enable-method = "psci";
0112                         d-cache-size = <0x8000>;
0113                         d-cache-line-size = <64>;
0114                         d-cache-sets = <256>;
0115                         i-cache-size = <0xc000>;
0116                         i-cache-line-size = <64>;
0117                         i-cache-sets = <256>;
0118                         next-level-cache = <&cluster1_l2>;
0119                 };
0120 
0121                 cpu@103 {
0122                         device_type = "cpu";
0123                         compatible = "arm,cortex-a72";
0124                         reg = <0x103>;
0125                         enable-method = "psci";
0126                         d-cache-size = <0x8000>;
0127                         d-cache-line-size = <64>;
0128                         d-cache-sets = <256>;
0129                         i-cache-size = <0xc000>;
0130                         i-cache-line-size = <64>;
0131                         i-cache-sets = <256>;
0132                         next-level-cache = <&cluster1_l2>;
0133                 };
0134 
0135                 cpu@200 {
0136                         device_type = "cpu";
0137                         compatible = "arm,cortex-a72";
0138                         reg = <0x200>;
0139                         enable-method = "psci";
0140                         d-cache-size = <0x8000>;
0141                         d-cache-line-size = <64>;
0142                         d-cache-sets = <256>;
0143                         i-cache-size = <0xc000>;
0144                         i-cache-line-size = <64>;
0145                         i-cache-sets = <256>;
0146                         next-level-cache = <&cluster2_l2>;
0147                 };
0148 
0149                 cpu@201 {
0150                         device_type = "cpu";
0151                         compatible = "arm,cortex-a72";
0152                         reg = <0x201>;
0153                         enable-method = "psci";
0154                         d-cache-size = <0x8000>;
0155                         d-cache-line-size = <64>;
0156                         d-cache-sets = <256>;
0157                         i-cache-size = <0xc000>;
0158                         i-cache-line-size = <64>;
0159                         i-cache-sets = <256>;
0160                         next-level-cache = <&cluster2_l2>;
0161                 };
0162 
0163                 cpu@202 {
0164                         device_type = "cpu";
0165                         compatible = "arm,cortex-a72";
0166                         reg = <0x202>;
0167                         enable-method = "psci";
0168                         d-cache-size = <0x8000>;
0169                         d-cache-line-size = <64>;
0170                         d-cache-sets = <256>;
0171                         i-cache-size = <0xc000>;
0172                         i-cache-line-size = <64>;
0173                         i-cache-sets = <256>;
0174                         next-level-cache = <&cluster2_l2>;
0175                 };
0176 
0177                 cpu@203 {
0178                         device_type = "cpu";
0179                         compatible = "arm,cortex-a72";
0180                         reg = <0x203>;
0181                         enable-method = "psci";
0182                         d-cache-size = <0x8000>;
0183                         d-cache-line-size = <64>;
0184                         d-cache-sets = <256>;
0185                         i-cache-size = <0xc000>;
0186                         i-cache-line-size = <64>;
0187                         i-cache-sets = <256>;
0188                         next-level-cache = <&cluster2_l2>;
0189                 };
0190 
0191                 cpu@300 {
0192                         device_type = "cpu";
0193                         compatible = "arm,cortex-a72";
0194                         reg = <0x300>;
0195                         enable-method = "psci";
0196                         d-cache-size = <0x8000>;
0197                         d-cache-line-size = <64>;
0198                         d-cache-sets = <256>;
0199                         i-cache-size = <0xc000>;
0200                         i-cache-line-size = <64>;
0201                         i-cache-sets = <256>;
0202                         next-level-cache = <&cluster3_l2>;
0203                 };
0204 
0205                 cpu@301 {
0206                         device_type = "cpu";
0207                         compatible = "arm,cortex-a72";
0208                         reg = <0x301>;
0209                         enable-method = "psci";
0210                         d-cache-size = <0x8000>;
0211                         d-cache-line-size = <64>;
0212                         d-cache-sets = <256>;
0213                         i-cache-size = <0xc000>;
0214                         i-cache-line-size = <64>;
0215                         i-cache-sets = <256>;
0216                         next-level-cache = <&cluster3_l2>;
0217                 };
0218 
0219                 cpu@302 {
0220                         device_type = "cpu";
0221                         compatible = "arm,cortex-a72";
0222                         reg = <0x302>;
0223                         enable-method = "psci";
0224                         d-cache-size = <0x8000>;
0225                         d-cache-line-size = <64>;
0226                         d-cache-sets = <256>;
0227                         i-cache-size = <0xc000>;
0228                         i-cache-line-size = <64>;
0229                         i-cache-sets = <256>;
0230                         next-level-cache = <&cluster3_l2>;
0231                 };
0232 
0233                 cpu@303 {
0234                         device_type = "cpu";
0235                         compatible = "arm,cortex-a72";
0236                         reg = <0x303>;
0237                         enable-method = "psci";
0238                         d-cache-size = <0x8000>;
0239                         d-cache-line-size = <64>;
0240                         d-cache-sets = <256>;
0241                         i-cache-size = <0xc000>;
0242                         i-cache-line-size = <64>;
0243                         i-cache-sets = <256>;
0244                         next-level-cache = <&cluster3_l2>;
0245                 };
0246 
0247                 cluster0_l2: cache@0 {
0248                         compatible = "cache";
0249                         cache-size = <0x200000>;
0250                         cache-line-size = <64>;
0251                         cache-sets = <2048>;
0252                         cache-level = <2>;
0253                 };
0254 
0255                 cluster1_l2: cache@100 {
0256                         compatible = "cache";
0257                         cache-size = <0x200000>;
0258                         cache-line-size = <64>;
0259                         cache-sets = <2048>;
0260                         cache-level = <2>;
0261                 };
0262 
0263                 cluster2_l2: cache@200 {
0264                         compatible = "cache";
0265                         cache-size = <0x200000>;
0266                         cache-line-size = <64>;
0267                         cache-sets = <2048>;
0268                         cache-level = <2>;
0269                 };
0270 
0271                 cluster3_l2: cache@300 {
0272                         compatible = "cache";
0273                         cache-size = <0x200000>;
0274                         cache-line-size = <64>;
0275                         cache-sets = <2048>;
0276                         cache-level = <2>;
0277                 };
0278 
0279         };
0280 
0281         reserved-memory {
0282                 #address-cells = <2>;
0283                 #size-cells = <2>;
0284                 ranges;
0285 
0286                 secmon@0 {
0287                         reg = <0x0 0x0 0x0 0x100000>;
0288                         no-map;
0289                 };
0290         };
0291 
0292         psci {
0293                 compatible = "arm,psci-0.2";
0294                 method = "smc";
0295         };
0296 
0297         timer {
0298                 compatible = "arm,armv8-timer";
0299                 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
0300                              <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
0301                              <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
0302                              <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
0303         };
0304 
0305         pmu {
0306                 compatible = "arm,cortex-a72-pmu";
0307                 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
0308         };
0309 
0310 
0311         soc {
0312                 compatible = "simple-bus";
0313                 #address-cells = <2>;
0314                 #size-cells = <2>;
0315                 ranges;
0316 
0317                 gic: interrupt-controller@f0000000 {
0318                         compatible = "arm,gic-v3";
0319                         #interrupt-cells = <3>;
0320                         interrupt-controller;
0321                         reg = <0x0 0xf0800000 0 0x10000>,       /* GICD */
0322                               <0x0 0xf0a00000 0 0x200000>,      /* GICR */
0323                               <0x0 0xf0000000 0 0x2000>,        /* GICC */
0324                               <0x0 0xf0010000 0 0x1000>,        /* GICH */
0325                               <0x0 0xf0020000 0 0x2000>;        /* GICV */
0326                         interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
0327                 };
0328 
0329                 pcie@fbd00000 {
0330                         compatible = "pci-host-ecam-generic";
0331                         device_type = "pci";
0332                         #size-cells = <2>;
0333                         #address-cells = <3>;
0334                         #interrupt-cells = <1>;
0335                         reg = <0x0 0xfbd00000 0x0 0x100000>;
0336                         interrupt-map-mask = <0xf800 0 0 7>;
0337                         /* 8 x legacy interrupts for SATA only */
0338                         interrupt-map = <0x4000 0 0 1 &gic 0 57 IRQ_TYPE_LEVEL_HIGH>,
0339                                         <0x4800 0 0 1 &gic 0 58 IRQ_TYPE_LEVEL_HIGH>,
0340                                         <0x5000 0 0 1 &gic 0 59 IRQ_TYPE_LEVEL_HIGH>,
0341                                         <0x5800 0 0 1 &gic 0 60 IRQ_TYPE_LEVEL_HIGH>,
0342                                         <0x6000 0 0 1 &gic 0 61 IRQ_TYPE_LEVEL_HIGH>,
0343                                         <0x6800 0 0 1 &gic 0 62 IRQ_TYPE_LEVEL_HIGH>,
0344                                         <0x7000 0 0 1 &gic 0 63 IRQ_TYPE_LEVEL_HIGH>,
0345                                         <0x7800 0 0 1 &gic 0 64 IRQ_TYPE_LEVEL_HIGH>;
0346                         ranges = <0x02000000 0x0 0xfe000000 0x0 0xfe000000 0x0 0x1000000>;
0347                         bus-range = <0x00 0x00>;
0348                         msi-parent = <&msix>;
0349                 };
0350 
0351                 msix: msix@fbe00000 {
0352                         compatible = "al,alpine-msix";
0353                         reg = <0x0 0xfbe00000 0x0 0x100000>;
0354                         interrupt-controller;
0355                         msi-controller;
0356                         al,msi-base-spi = <336>;
0357                         al,msi-num-spis = <959>;
0358                         interrupt-parent = <&gic>;
0359                 };
0360 
0361                 io-fabric {
0362                         compatible = "simple-bus";
0363                         #address-cells = <1>;
0364                         #size-cells = <1>;
0365                         ranges = <0x0 0x0 0xfc000000 0x2000000>;
0366 
0367                         uart0: serial@1883000 {
0368                                 compatible = "ns16550a";
0369                                 reg = <0x1883000 0x1000>;
0370                                 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
0371                                 clock-frequency = <0>; /* Filled by firmware */
0372                                 reg-shift = <2>;
0373                                 reg-io-width = <4>;
0374                                 status = "disabled";
0375                         };
0376 
0377                         uart1: serial@1884000 {
0378                                 compatible = "ns16550a";
0379                                 reg = <0x1884000 0x1000>;
0380                                 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
0381                                 clock-frequency = <0>; /* Filled by firmware */
0382                                 reg-shift = <2>;
0383                                 reg-io-width = <4>;
0384                                 status = "disabled";
0385                         };
0386 
0387                         uart2: serial@1885000 {
0388                                 compatible = "ns16550a";
0389                                 reg = <0x1885000 0x1000>;
0390                                 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
0391                                 clock-frequency = <0>; /* Filled by firmware */
0392                                 reg-shift = <2>;
0393                                 reg-io-width = <4>;
0394                                 status = "disabled";
0395                         };
0396 
0397                         uart3: serial@1886000 {
0398                                 compatible = "ns16550a";
0399                                 reg = <0x1886000 0x1000>;
0400                                 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
0401                                 clock-frequency = <0>; /* Filled by firmware */
0402                                 reg-shift = <2>;
0403                                 reg-io-width = <4>;
0404                                 status = "disabled";
0405                         };
0406                 };
0407         };
0408 };