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

ti,keystone-rproc.txt (5992B)


      1TI Keystone DSP devices
      2=======================
      3
      4The TI Keystone 2 family of SoCs usually have one or more (upto 8) TI DSP Core
      5sub-systems that are used to offload some of the processor-intensive tasks or
      6algorithms, for achieving various system level goals.
      7
      8These processor sub-systems usually contain additional sub-modules like L1
      9and/or L2 caches/SRAMs, an Interrupt Controller, an external memory controller,
     10a dedicated local power/sleep controller etc. The DSP processor core in
     11Keystone 2 SoCs is usually a TMS320C66x CorePac processor.
     12
     13DSP Device Node:
     14================
     15Each DSP Core sub-system is represented as a single DT node, and should also
     16have an alias with the stem 'rproc' defined. Each node has a number of required
     17or optional properties that enable the OS running on the host processor (ARM
     18CorePac) to perform the device management of the remote processor and to
     19communicate with the remote processor.
     20
     21Required properties:
     22--------------------
     23The following are the mandatory properties:
     24
     25- compatible:		Should be one of the following,
     26			    "ti,k2hk-dsp" for DSPs on Keystone 2 66AK2H/K SoCs
     27			    "ti,k2l-dsp" for DSPs on Keystone 2 66AK2L SoCs
     28			    "ti,k2e-dsp" for DSPs on Keystone 2 66AK2E SoCs
     29			    "ti,k2g-dsp" for DSPs on Keystone 2 66AK2G SoCs
     30
     31- reg:			Should contain an entry for each value in 'reg-names'.
     32			Each entry should have the memory region's start address
     33			and the size of the region, the representation matching
     34			the parent node's '#address-cells' and '#size-cells' values.
     35
     36- reg-names:		Should contain strings with the following names, each
     37			representing a specific internal memory region, and
     38			should be defined in this order,
     39			     "l2sram", "l1pram", "l1dram"
     40
     41- ti,syscon-dev:	Should be a pair of the phandle to the Keystone Device
     42			State Control node, and the register offset of the DSP
     43			boot address register within that node's address space.
     44
     45- resets:		Should contain the phandle to the reset controller node
     46			managing the resets for this device, and a reset
     47			specifier. Please refer to either of the following reset
     48			bindings for the reset argument specifier as per SoC,
     49			Documentation/devicetree/bindings/reset/ti-syscon-reset.txt
     50			    for 66AK2HK/66AK2L/66AK2E SoCs or,
     51			Documentation/devicetree/bindings/reset/ti,sci-reset.yaml
     52			    for 66AK2G SoCs
     53
     54- interrupts: 		Should contain an entry for each value in 'interrupt-names'.
     55			Each entry should have the interrupt source number used by
     56			the remote processor to the host processor. The values should
     57			follow the interrupt-specifier format as dictated by the
     58			'interrupt-parent' node. The purpose of each is as per the
     59			description in the 'interrupt-names' property.
     60
     61- interrupt-names:	Should contain strings with the following names, each
     62			representing a specific interrupt,
     63			    "vring" - interrupt for virtio based IPC
     64			    "exception" - interrupt for exception notification
     65
     66- kick-gpios: 		Should specify the gpio device needed for the virtio IPC
     67			stack. This will be used to interrupt the remote processor.
     68			The gpio device to be used is as per the bindings in,
     69			Documentation/devicetree/bindings/gpio/gpio-dsp-keystone.txt
     70
     71SoC-specific Required properties:
     72---------------------------------
     73The following are mandatory properties for Keystone 2 66AK2HK, 66AK2L and 66AK2E
     74SoCs only:
     75
     76- clocks: 		Should contain the device's input clock, and should be
     77			defined as per the bindings in,
     78			Documentation/devicetree/bindings/clock/keystone-gate.txt
     79
     80The following are mandatory properties for Keystone 2 66AK2G SoCs only:
     81
     82- power-domains:	Should contain a phandle to a PM domain provider node
     83			and an args specifier containing the DSP device id
     84			value. This property is as per the binding,
     85			Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml
     86
     87Optional properties:
     88--------------------
     89
     90- memory-region:	phandle to the reserved memory node to be associated
     91			with the remoteproc device. The reserved memory node
     92			can be a CMA memory node, and should be defined as
     93			per the bindings in
     94			Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
     95
     96
     97Examples:
     98---------
     99
    1001.
    101	/* 66AK2H/K DSP aliases */
    102	aliases {
    103		rproc0 = &dsp0;
    104		rproc1 = &dsp1;
    105		rproc2 = &dsp2;
    106		rproc3 = &dsp3;
    107		rproc4 = &dsp4;
    108		rproc5 = &dsp5;
    109		rproc6 = &dsp6;
    110		rproc7 = &dsp7;
    111	};
    112
    113	/* 66AK2H/K DSP memory node */
    114	reserved-memory {
    115		#address-cells = <2>;
    116		#size-cells = <2>;
    117		ranges;
    118
    119		dsp_common_memory: dsp-common-memory@81f800000 {
    120			compatible = "shared-dma-pool";
    121			reg = <0x00000008 0x1f800000 0x00000000 0x800000>;
    122			reusable;
    123		};
    124	};
    125
    126	/* 66AK2H/K DSP node */
    127	soc {
    128		dsp0: dsp@10800000 {
    129			compatible = "ti,k2hk-dsp";
    130			reg = <0x10800000 0x00100000>,
    131			      <0x10e00000 0x00008000>,
    132			      <0x10f00000 0x00008000>;
    133			reg-names = "l2sram", "l1pram", "l1dram";
    134			clocks = <&clkgem0>;
    135			ti,syscon-dev = <&devctrl 0x40>;
    136			resets = <&pscrst 0>;
    137			interrupt-parent = <&kirq0>;
    138			interrupts = <0 8>;
    139			interrupt-names = "vring", "exception";
    140			kick-gpios = <&dspgpio0 27 0>;
    141			memory-region = <&dsp_common_memory>;
    142		};
    143
    144	};
    145
    1462.
    147	/* 66AK2G DSP alias */
    148	aliases {
    149		rproc0 = &dsp0;
    150	};
    151
    152	/* 66AK2G DSP memory node */
    153	reserved-memory {
    154		#address-cells = <2>;
    155		#size-cells = <2>;
    156		ranges;
    157
    158		dsp_common_memory: dsp-common-memory@81f800000 {
    159			compatible = "shared-dma-pool";
    160			reg = <0x00000008 0x1f800000 0x00000000 0x800000>;
    161			reusable;
    162		};
    163	};
    164
    165	/* 66AK2G DSP node */
    166	soc {
    167		dsp0: dsp@10800000 {
    168			compatible = "ti,k2g-dsp";
    169			reg = <0x10800000 0x00100000>,
    170			      <0x10e00000 0x00008000>,
    171			      <0x10f00000 0x00008000>;
    172			reg-names = "l2sram", "l1pram", "l1dram";
    173			power-domains = <&k2g_pds 0x0046>;
    174			ti,syscon-dev = <&devctrl 0x40>;
    175			resets = <&k2g_reset 0x0046 0x1>;
    176			interrupt-parent = <&kirq0>;
    177			interrupts = <0 8>;
    178			interrupt-names = "vring", "exception";
    179			kick-gpios = <&dspgpio0 27 0>;
    180			memory-region = <&dsp_common_memory>;
    181		};
    182	};