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

taishan.dts (10834B)


      1/*
      2 * Device Tree Source for IBM/AMCC Taishan
      3 *
      4 * Copyright 2007 IBM Corp.
      5 * Hugh Blemings <hugh@au.ibm.com> based off code by
      6 * Josh Boyer <jwboyer@linux.vnet.ibm.com>, David Gibson <dwg@au1.ibm.com>
      7 *
      8 * This file is licensed under the terms of the GNU General Public
      9 * License version 2.  This program is licensed "as is" without
     10 * any warranty of any kind, whether express or implied.
     11 */
     12
     13/dts-v1/;
     14
     15/ {
     16	#address-cells = <2>;
     17	#size-cells = <1>;
     18	model = "amcc,taishan";
     19	compatible = "amcc,taishan";
     20	dcr-parent = <&{/cpus/cpu@0}>;
     21
     22	aliases {
     23		ethernet0 = &EMAC2;
     24		ethernet1 = &EMAC3;
     25		serial0 = &UART0;
     26		serial1 = &UART1;
     27	};
     28
     29	cpus {
     30		#address-cells = <1>;
     31		#size-cells = <0>;
     32
     33		cpu@0 {
     34			device_type = "cpu";
     35			model = "PowerPC,440GX";
     36			reg = <0x00000000>;
     37			clock-frequency = <800000000>; // 800MHz
     38			timebase-frequency = <0>; // Filled in by zImage
     39			i-cache-line-size = <50>;
     40			d-cache-line-size = <50>;
     41			i-cache-size = <32768>; /* 32 kB */
     42			d-cache-size = <32768>; /* 32 kB */
     43			dcr-controller;
     44			dcr-access-method = "native";
     45		};
     46	};
     47
     48	memory {
     49		device_type = "memory";
     50		reg = <0x00000000 0x00000000 0x00000000>; // Filled in by zImage
     51	};
     52
     53
     54	UICB0: interrupt-controller-base {
     55		compatible = "ibm,uic-440gx", "ibm,uic";
     56		interrupt-controller;
     57		cell-index = <3>;
     58		dcr-reg = <0x200 0x009>;
     59		#address-cells = <0>;
     60		#size-cells = <0>;
     61		#interrupt-cells = <2>;
     62	};
     63
     64
     65	UIC0: interrupt-controller0 {
     66		compatible = "ibm,uic-440gx", "ibm,uic";
     67		interrupt-controller;
     68		cell-index = <0>;
     69		dcr-reg = <0x0c0 0x009>;
     70		#address-cells = <0>;
     71		#size-cells = <0>;
     72		#interrupt-cells = <2>;
     73		interrupts = <0x1 0x4 0x0 0x4>; /* cascade - first non-critical */
     74		interrupt-parent = <&UICB0>;
     75
     76	};
     77
     78	UIC1: interrupt-controller1 {
     79		compatible = "ibm,uic-440gx", "ibm,uic";
     80		interrupt-controller;
     81		cell-index = <1>;
     82		dcr-reg = <0x0d0 0x009>;
     83		#address-cells = <0>;
     84		#size-cells = <0>;
     85		#interrupt-cells = <2>;
     86		interrupts = <0x3 0x4 0x2 0x4>; /* cascade */
     87		interrupt-parent = <&UICB0>;
     88	};
     89
     90	UIC2: interrupt-controller2 {
     91		compatible = "ibm,uic-440gx", "ibm,uic";
     92		interrupt-controller;
     93		cell-index = <2>; /* was 1 */
     94		dcr-reg = <0x210 0x009>;
     95		#address-cells = <0>;
     96		#size-cells = <0>;
     97		#interrupt-cells = <2>;
     98		interrupts = <0x5 0x4 0x4 0x4>; /* cascade */
     99		interrupt-parent = <&UICB0>;
    100	};
    101
    102
    103	CPC0: cpc {
    104		compatible = "ibm,cpc-440gp";
    105		dcr-reg = <0x0b0 0x003 0x0e0 0x010>;
    106		// FIXME: anything else?
    107	};
    108
    109	L2C0: l2c {
    110		compatible = "ibm,l2-cache-440gx", "ibm,l2-cache";
    111		dcr-reg = <0x020 0x008			/* Internal SRAM DCR's */
    112			   0x030 0x008>;		/* L2 cache DCR's */
    113		cache-line-size = <32>;		/* 32 bytes */
    114		cache-size = <262144>;		/* L2, 256K */
    115		interrupt-parent = <&UIC2>;
    116		interrupts = <0x17 0x1>;
    117	};
    118
    119	plb {
    120		compatible = "ibm,plb-440gx", "ibm,plb4";
    121		#address-cells = <2>;
    122		#size-cells = <1>;
    123		ranges;
    124		clock-frequency = <160000000>; // 160MHz
    125
    126		SDRAM0: memory-controller {
    127			compatible = "ibm,sdram-440gp";
    128			dcr-reg = <0x010 0x002>;
    129			// FIXME: anything else?
    130		};
    131
    132		SRAM0: sram {
    133			compatible = "ibm,sram-440gp";
    134			dcr-reg = <0x020 0x008 0x00a 0x001>;
    135		};
    136
    137		DMA0: dma {
    138			// FIXME: ???
    139			compatible = "ibm,dma-440gp";
    140			dcr-reg = <0x100 0x027>;
    141		};
    142
    143		MAL0: mcmal {
    144			compatible = "ibm,mcmal-440gx", "ibm,mcmal2";
    145			dcr-reg = <0x180 0x062>;
    146			num-tx-chans = <4>;
    147			num-rx-chans = <4>;
    148			interrupt-parent = <&MAL0>;
    149			interrupts = <0x0 0x1 0x2 0x3 0x4>;
    150			#interrupt-cells = <1>;
    151			#address-cells = <0>;
    152			#size-cells = <0>;
    153			interrupt-map = </*TXEOB*/ 0x0 &UIC0 0xa 0x4
    154					 /*RXEOB*/ 0x1 &UIC0 0xb 0x4
    155					 /*SERR*/  0x2 &UIC1 0x0 0x4
    156					 /*TXDE*/  0x3 &UIC1 0x1 0x4
    157					 /*RXDE*/  0x4 &UIC1 0x2 0x4>;
    158			interrupt-map-mask = <0xffffffff>;
    159		};
    160
    161		POB0: opb {
    162			compatible = "ibm,opb-440gx", "ibm,opb";
    163			#address-cells = <1>;
    164			#size-cells = <1>;
    165			/* Wish there was a nicer way of specifying a full 32-bit
    166			   range */
    167			ranges = <0x00000000 0x00000001 0x00000000 0x80000000
    168				  0x80000000 0x00000001 0x80000000 0x80000000>;
    169			dcr-reg = <0x090 0x00b>;
    170			interrupt-parent = <&UIC1>;
    171			interrupts = <0x7 0x4>;
    172			clock-frequency = <80000000>; // 80MHz
    173
    174
    175			EBC0: ebc {
    176				compatible = "ibm,ebc-440gx", "ibm,ebc";
    177				dcr-reg = <0x012 0x002>;
    178				#address-cells = <2>;
    179				#size-cells = <1>;
    180				clock-frequency = <80000000>; // 80MHz
    181
    182				/* ranges property is supplied by zImage
    183				 * based on firmware's configuration of the
    184				 * EBC bridge */
    185
    186				interrupts = <0x5 0x4>;
    187				interrupt-parent = <&UIC1>;
    188
    189				nor_flash@0,0 {
    190					compatible = "cfi-flash";
    191					bank-width = <4>;
    192					device-width = <2>;
    193					reg = <0x0 0x0 0x4000000>;
    194					#address-cells = <1>;
    195					#size-cells = <1>;
    196					partition@0 {
    197						label = "kernel";
    198						reg = <0x0 0x180000>;
    199					};
    200					partition@180000 {
    201						label = "root";
    202						reg = <0x180000 0x200000>;
    203					};
    204					partition@380000 {
    205						label = "user";
    206						reg = <0x380000 0x3bc0000>;
    207					};
    208					partition@3f40000 {
    209						label = "env";
    210						reg = <0x3f40000 0x80000>;
    211					};
    212					partition@3fc0000 {
    213						label = "u-boot";
    214						reg = <0x3fc0000 0x40000>;
    215					};
    216				};
    217			};
    218
    219
    220
    221			UART0: serial@40000200 {
    222				device_type = "serial";
    223				compatible = "ns16550";
    224				reg = <0x40000200 0x00000008>;
    225				virtual-reg = <0xe0000200>;
    226 				clock-frequency = <11059200>;
    227				current-speed = <115200>; /* 115200 */
    228				interrupt-parent = <&UIC0>;
    229				interrupts = <0x0 0x4>;
    230			};
    231
    232			UART1: serial@40000300 {
    233				device_type = "serial";
    234				compatible = "ns16550";
    235				reg = <0x40000300 0x00000008>;
    236				virtual-reg = <0xe0000300>;
    237				clock-frequency = <11059200>;
    238				current-speed = <115200>; /* 115200 */
    239				interrupt-parent = <&UIC0>;
    240				interrupts = <0x1 0x4>;
    241			};
    242
    243			IIC0: i2c@40000400 {
    244				/* FIXME */
    245				compatible = "ibm,iic-440gp", "ibm,iic";
    246				reg = <0x40000400 0x00000014>;
    247				interrupt-parent = <&UIC0>;
    248				interrupts = <0x2 0x4>;
    249			};
    250			IIC1: i2c@40000500 {
    251				/* FIXME */
    252				compatible = "ibm,iic-440gp", "ibm,iic";
    253				reg = <0x40000500 0x00000014>;
    254				interrupt-parent = <&UIC0>;
    255				interrupts = <0x3 0x4>;
    256			};
    257
    258			GPIO0: gpio@40000700 {
    259				/* FIXME */
    260				compatible = "ibm,gpio-440gp";
    261				reg = <0x40000700 0x00000020>;
    262			};
    263
    264			ZMII0: emac-zmii@40000780 {
    265				compatible = "ibm,zmii-440gx", "ibm,zmii";
    266				reg = <0x40000780 0x0000000c>;
    267			};
    268
    269			RGMII0: emac-rgmii@40000790 {
    270				compatible = "ibm,rgmii";
    271				reg = <0x40000790 0x00000008>;
    272			};
    273
    274			TAH0: emac-tah@40000b50 {
    275				compatible = "ibm,tah-440gx", "ibm,tah";
    276				reg = <0x40000b50 0x00000030>;
    277			};
    278
    279			TAH1: emac-tah@40000d50 {
    280				compatible = "ibm,tah-440gx", "ibm,tah";
    281				reg = <0x40000d50 0x00000030>;
    282			};
    283
    284			EMAC0: ethernet@40000800 {
    285				unused = <0x1>;
    286				device_type = "network";
    287				compatible = "ibm,emac-440gx", "ibm,emac4";
    288				interrupt-parent = <&UIC1>;
    289				interrupts = <0x1c 0x4 0x1d 0x4>;
    290				reg = <0x40000800 0x00000074>;
    291				local-mac-address = [000000000000]; // Filled in by zImage
    292				mal-device = <&MAL0>;
    293				mal-tx-channel = <0>;
    294				mal-rx-channel = <0>;
    295				cell-index = <0>;
    296				max-frame-size = <1500>;
    297				rx-fifo-size = <4096>;
    298				tx-fifo-size = <2048>;
    299				phy-mode = "rmii";
    300				phy-map = <0x00000001>;
    301				zmii-device = <&ZMII0>;
    302				zmii-channel = <0>;
    303			};
    304		 	EMAC1: ethernet@40000900 {
    305				unused = <0x1>;
    306				device_type = "network";
    307				compatible = "ibm,emac-440gx", "ibm,emac4";
    308				interrupt-parent = <&UIC1>;
    309				interrupts = <0x1e 0x4 0x1f 0x4>;
    310				reg = <0x40000900 0x00000074>;
    311				local-mac-address = [000000000000]; // Filled in by zImage
    312				mal-device = <&MAL0>;
    313				mal-tx-channel = <1>;
    314				mal-rx-channel = <1>;
    315				cell-index = <1>;
    316				max-frame-size = <1500>;
    317				rx-fifo-size = <4096>;
    318				tx-fifo-size = <2048>;
    319				phy-mode = "rmii";
    320				phy-map = <0x00000001>;
    321 				zmii-device = <&ZMII0>;
    322				zmii-channel = <1>;
    323			};
    324
    325		 	EMAC2: ethernet@40000c00 {
    326				device_type = "network";
    327				compatible = "ibm,emac-440gx", "ibm,emac4";
    328				interrupt-parent = <&UIC2>;
    329				interrupts = <0x0 0x4 0x1 0x4>;
    330				reg = <0x40000c00 0x00000074>;
    331				local-mac-address = [000000000000]; // Filled in by zImage
    332				mal-device = <&MAL0>;
    333				mal-tx-channel = <2>;
    334				mal-rx-channel = <2>;
    335				cell-index = <2>;
    336				max-frame-size = <9000>;
    337				rx-fifo-size = <4096>;
    338				tx-fifo-size = <2048>;
    339				phy-mode = "rgmii";
    340				phy-address = <1>;
    341				rgmii-device = <&RGMII0>;
    342				rgmii-channel = <0>;
    343 				zmii-device = <&ZMII0>;
    344				zmii-channel = <2>;
    345				tah-device = <&TAH0>;
    346				tah-channel = <0>;
    347			};
    348
    349		 	EMAC3: ethernet@40000e00 {
    350				device_type = "network";
    351				compatible = "ibm,emac-440gx", "ibm,emac4";
    352				interrupt-parent = <&UIC2>;
    353				interrupts = <0x2 0x4 0x3 0x4>;
    354				reg = <0x40000e00 0x00000074>;
    355				local-mac-address = [000000000000]; // Filled in by zImage
    356				mal-device = <&MAL0>;
    357				mal-tx-channel = <3>;
    358				mal-rx-channel = <3>;
    359				cell-index = <3>;
    360				max-frame-size = <9000>;
    361				rx-fifo-size = <4096>;
    362				tx-fifo-size = <2048>;
    363				phy-mode = "rgmii";
    364				phy-address = <3>;
    365				rgmii-device = <&RGMII0>;
    366				rgmii-channel = <1>;
    367 				zmii-device = <&ZMII0>;
    368				zmii-channel = <3>;
    369				tah-device = <&TAH1>;
    370				tah-channel = <0>;
    371			};
    372
    373
    374			GPT0: gpt@40000a00 {
    375				/* FIXME */
    376				reg = <0x40000a00 0x000000d4>;
    377				interrupt-parent = <&UIC0>;
    378				interrupts = <0x12 0x4 0x13 0x4 0x14 0x4 0x15 0x4 0x16 0x4>;
    379			};
    380
    381		};
    382
    383		PCIX0: pci@20ec00000 {
    384			device_type = "pci";
    385			#interrupt-cells = <1>;
    386			#size-cells = <2>;
    387			#address-cells = <3>;
    388			compatible = "ibm,plb440gp-pcix", "ibm,plb-pcix";
    389			primary;
    390			large-inbound-windows;
    391			enable-msi-hole;
    392			reg = <0x00000002 0x0ec00000   0x00000008	/* Config space access */
    393			       0x00000000 0x00000000 0x00000000		/* no IACK cycles */
    394			       0x00000002 0x0ed00000   0x00000004   /* Special cycles */
    395			       0x00000002 0x0ec80000 0x00000100	/* Internal registers */
    396			       0x00000002 0x0ec80100  0x000000fc>;	/* Internal messaging registers */
    397
    398			/* Outbound ranges, one memory and one IO,
    399			 * later cannot be changed
    400			 */
    401			ranges = <0x02000000 0x00000000 0x80000000 0x00000003 0x80000000 0x00000000 0x80000000
    402				  0x01000000 0x00000000 0x00000000 0x00000002 0x08000000 0x00000000 0x00010000>;
    403
    404			/* Inbound 2GB range starting at 0 */
    405			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>;
    406
    407			interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
    408			interrupt-map = <
    409				/* IDSEL 1 */
    410				0x800 0x0 0x0 0x1 &UIC0 0x17 0x8
    411				0x800 0x0 0x0 0x2 &UIC0 0x18 0x8
    412				0x800 0x0 0x0 0x3 &UIC0 0x19 0x8
    413				0x800 0x0 0x0 0x4 &UIC0 0x1a 0x8
    414
    415				/* IDSEL 2 */
    416				0x1000 0x0 0x0 0x1 &UIC0 0x18 0x8
    417				0x1000 0x0 0x0 0x2 &UIC0 0x19 0x8
    418				0x1000 0x0 0x0 0x3 &UIC0 0x1a 0x8
    419				0x1000 0x0 0x0 0x4 &UIC0 0x17 0x8
    420			>;
    421		};
    422	};
    423
    424	chosen {
    425		stdout-path = "/plb/opb/serial@40000300";
    426	};
    427};