cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

bcm-hr2.dtsi (9675B)


      1/*
      2 *  BSD LICENSE
      3 *
      4 *  Copyright(c) 2017 Broadcom.  All rights reserved.
      5 *
      6 *  Redistribution and use in source and binary forms, with or without
      7 *  modification, are permitted provided that the following conditions
      8 *  are met:
      9 *
     10 *    * Redistributions of source code must retain the above copyright
     11 *      notice, this list of conditions and the following disclaimer.
     12 *    * Redistributions in binary form must reproduce the above copyright
     13 *      notice, this list of conditions and the following disclaimer in
     14 *      the documentation and/or other materials provided with the
     15 *      distribution.
     16 *    * Neither the name of Broadcom Corporation nor the names of its
     17 *      contributors may be used to endorse or promote products derived
     18 *      from this software without specific prior written permission.
     19 *
     20 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     21 *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     22 *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     23 *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     24 *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     25 *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     26 *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     27 *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     28 *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     29 *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     30 *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     31 */
     32
     33#include <dt-bindings/interrupt-controller/arm-gic.h>
     34#include <dt-bindings/interrupt-controller/irq.h>
     35
     36/ {
     37	compatible = "brcm,hr2";
     38	model = "Broadcom Hurricane 2 SoC";
     39	interrupt-parent = <&gic>;
     40	#address-cells = <1>;
     41	#size-cells = <1>;
     42
     43	cpus {
     44		#address-cells = <1>;
     45		#size-cells = <0>;
     46
     47		cpu0: cpu@0 {
     48			device_type = "cpu";
     49			compatible = "arm,cortex-a9";
     50			next-level-cache = <&L2>;
     51			reg = <0x0>;
     52		};
     53	};
     54
     55	pmu {
     56		compatible = "arm,cortex-a9-pmu";
     57		interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH
     58			      GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
     59		interrupt-affinity = <&cpu0>;
     60	};
     61
     62	mpcore@19000000 {
     63		compatible = "simple-bus";
     64		ranges = <0x00000000 0x19000000 0x00023000>;
     65		#address-cells = <1>;
     66		#size-cells = <1>;
     67
     68		a9pll: arm_clk@0 {
     69			#clock-cells = <0>;
     70			compatible = "brcm,hr2-armpll";
     71			clocks = <&osc>;
     72			reg = <0x0 0x1000>;
     73		};
     74
     75		timer@20200 {
     76			compatible = "arm,cortex-a9-global-timer";
     77			reg = <0x20200 0x100>;
     78			interrupts = <GIC_PPI 11 IRQ_TYPE_EDGE_RISING>;
     79			clocks = <&periph_clk>;
     80		};
     81
     82		twd-timer@20600 {
     83			compatible = "arm,cortex-a9-twd-timer";
     84			reg = <0x20600 0x20>;
     85			interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) |
     86						  IRQ_TYPE_EDGE_RISING)>;
     87			clocks = <&periph_clk>;
     88		};
     89
     90		twd-watchdog@20620 {
     91			compatible = "arm,cortex-a9-twd-wdt";
     92			reg = <0x20620 0x20>;
     93			interrupts = <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) |
     94						  IRQ_TYPE_EDGE_RISING)>;
     95			clocks = <&periph_clk>;
     96		};
     97
     98		gic: interrupt-controller@21000 {
     99			compatible = "arm,cortex-a9-gic";
    100			#interrupt-cells = <3>;
    101			#address-cells = <0>;
    102			interrupt-controller;
    103			reg = <0x21000 0x1000>,
    104			      <0x20100 0x100>;
    105		};
    106
    107		L2: cache-controller@22000 {
    108			compatible = "arm,pl310-cache";
    109			reg = <0x22000 0x1000>;
    110			cache-unified;
    111			cache-level = <2>;
    112		};
    113	};
    114
    115	clocks {
    116		#address-cells = <1>;
    117		#size-cells = <1>;
    118		ranges;
    119
    120		osc: oscillator {
    121			#clock-cells = <0>;
    122			compatible = "fixed-clock";
    123			clock-frequency = <25000000>;
    124		};
    125
    126		periph_clk: periph_clk {
    127			#clock-cells = <0>;
    128			compatible = "fixed-factor-clock";
    129			clocks = <&a9pll>;
    130			clock-div = <2>;
    131			clock-mult = <1>;
    132		};
    133	};
    134
    135	axi@18000000 {
    136		compatible = "simple-bus";
    137		ranges = <0x00000000 0x18000000 0x0011c40c>;
    138		#address-cells = <1>;
    139		#size-cells = <1>;
    140
    141		uart0: serial@300 {
    142			compatible = "ns16550a";
    143			reg = <0x0300 0x100>;
    144			interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
    145			clocks = <&osc>;
    146			status = "disabled";
    147		};
    148
    149		uart1: serial@400 {
    150			compatible = "ns16550a";
    151			reg = <0x0400 0x100>;
    152			interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
    153			clocks = <&osc>;
    154			status = "disabled";
    155		};
    156
    157		dma@20000 {
    158			compatible = "arm,pl330", "arm,primecell";
    159			reg = <0x20000 0x1000>;
    160			interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>,
    161				     <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>,
    162				     <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
    163				     <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>,
    164				     <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
    165				     <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
    166				     <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
    167				     <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
    168				     <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
    169			#dma-cells = <1>;
    170			status = "disabled";
    171		};
    172
    173		amac0: ethernet@22000 {
    174			compatible = "brcm,nsp-amac";
    175			reg = <0x22000 0x1000>,
    176			      <0x110000 0x1000>;
    177			reg-names = "amac_base", "idm_base";
    178			interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>;
    179			status = "disabled";
    180		};
    181
    182		nand_controller: nand-controller@26000 {
    183			compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
    184			reg = <0x26000 0x600>,
    185			      <0x11b408 0x600>,
    186			      <0x026f00 0x20>;
    187			reg-names = "nand", "iproc-idm", "iproc-ext";
    188			interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
    189
    190			#address-cells = <1>;
    191			#size-cells = <0>;
    192
    193			brcm,nand-has-wp;
    194		};
    195
    196		gpiob: gpio@30000 {
    197			compatible = "brcm,iproc-hr2-gpio", "brcm,iproc-gpio";
    198			reg = <0x30000 0x50>;
    199			#gpio-cells = <2>;
    200			gpio-controller;
    201			ngpios = <4>;
    202			interrupt-controller;
    203			interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
    204		};
    205
    206		pwm: pwm@31000 {
    207			compatible = "brcm,iproc-pwm";
    208			reg = <0x31000 0x28>;
    209			clocks = <&osc>;
    210			#pwm-cells = <3>;
    211			status = "disabled";
    212		};
    213
    214		rng: rng@33000 {
    215			compatible = "brcm,bcm-nsp-rng";
    216			reg = <0x33000 0x14>;
    217		};
    218
    219		qspi: spi@27200 {
    220			compatible = "brcm,spi-nsp-qspi", "brcm,spi-bcm-qspi";
    221			reg = <0x027200 0x184>,
    222			      <0x027000 0x124>,
    223			      <0x11c408 0x004>,
    224			      <0x0273a0 0x01c>;
    225			reg-names = "mspi", "bspi", "intr_regs",
    226				    "intr_status_reg";
    227			interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>,
    228				     <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>,
    229				     <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>,
    230				     <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>,
    231				     <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>,
    232				     <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>,
    233				     <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
    234			interrupt-names = "spi_lr_fullness_reached",
    235					  "spi_lr_session_aborted",
    236					  "spi_lr_impatient",
    237					  "spi_lr_session_done",
    238					  "spi_lr_overhead",
    239					  "mspi_done",
    240					  "mspi_halted";
    241			num-cs = <2>;
    242			#address-cells = <1>;
    243			#size-cells = <0>;
    244
    245			/* partitions defined in board DTS */
    246		};
    247
    248		ccbtimer0: timer@34000 {
    249			compatible = "arm,sp804";
    250			reg = <0x34000 0x1000>;
    251			interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
    252				     <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
    253		};
    254
    255		ccbtimer1: timer@35000 {
    256			compatible = "arm,sp804";
    257			reg = <0x35000 0x1000>;
    258			interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
    259				     <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
    260		};
    261
    262		i2c0: i2c@38000 {
    263			compatible = "brcm,iproc-i2c";
    264			reg = <0x38000 0x50>;
    265			#address-cells = <1>;
    266			#size-cells = <0>;
    267			interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
    268			clock-frequency = <100000>;
    269		};
    270
    271		watchdog: watchdog@39000 {
    272			compatible = "arm,sp805", "arm,primecell";
    273			reg = <0x39000 0x1000>;
    274			interrupts = <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>;
    275		};
    276
    277		i2c1: i2c@3b000 {
    278			compatible = "brcm,iproc-i2c";
    279			reg = <0x3b000 0x50>;
    280			#address-cells = <1>;
    281			#size-cells = <0>;
    282			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
    283			clock-frequency = <100000>;
    284		};
    285	};
    286
    287	pflash: nor@20000000 {
    288		compatible = "cfi-flash", "jedec-flash";
    289		reg = <0x20000000 0x04000000>;
    290		status = "disabled";
    291		#address-cells = <1>;
    292		#size-cells = <1>;
    293
    294		/* partitions defined in board DTS */
    295	};
    296
    297	pcie0: pcie@18012000 {
    298		compatible = "brcm,iproc-pcie";
    299		reg = <0x18012000 0x1000>;
    300
    301		#interrupt-cells = <1>;
    302		interrupt-map-mask = <0 0 0 0>;
    303		interrupt-map = <0 0 0 0 &gic GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
    304
    305		linux,pci-domain = <0>;
    306
    307		bus-range = <0x00 0xff>;
    308
    309		#address-cells = <3>;
    310		#size-cells = <2>;
    311		device_type = "pci";
    312
    313		/* Note: The HW does not support I/O resources.  So,
    314		 * only the memory resource range is being specified.
    315		 */
    316		ranges = <0x82000000 0 0x08000000 0x08000000 0 0x8000000>;
    317
    318		status = "disabled";
    319
    320		msi-parent = <&msi0>;
    321		msi0: msi {
    322			compatible = "brcm,iproc-msi";
    323			msi-controller;
    324			interrupt-parent = <&gic>;
    325			interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>,
    326				     <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>,
    327				     <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>,
    328				     <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>;
    329			brcm,pcie-msi-inten;
    330		};
    331	};
    332
    333	pcie1: pcie@18013000 {
    334		compatible = "brcm,iproc-pcie";
    335		reg = <0x18013000 0x1000>;
    336
    337		#interrupt-cells = <1>;
    338		interrupt-map-mask = <0 0 0 0>;
    339		interrupt-map = <0 0 0 0 &gic GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
    340
    341		linux,pci-domain = <1>;
    342
    343		bus-range = <0x00 0xff>;
    344
    345		#address-cells = <3>;
    346		#size-cells = <2>;
    347		device_type = "pci";
    348
    349		/* Note: The HW does not support I/O resources.  So,
    350		 * only the memory resource range is being specified.
    351		 */
    352		ranges = <0x82000000 0 0x40000000 0x40000000 0 0x8000000>;
    353
    354		status = "disabled";
    355
    356		msi-parent = <&msi1>;
    357		msi1: msi {
    358			compatible = "brcm,iproc-msi";
    359			msi-controller;
    360			interrupt-parent = <&gic>;
    361			interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>,
    362				     <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>,
    363				     <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>,
    364				     <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
    365			brcm,pcie-msi-inten;
    366		};
    367	};
    368};