/dts-v1/;

/* Keystone II policy containing reserving resources used by Linux Kernel */

/ {
    /* Valid instance list contains instance names used within TI example projects
     * utilizing RM.  The list can be modified as needed by applications integrating
     * RM.  For an RM instance to be given permissions the name used to initialize it
     * must be present in this list */
    valid-instances = "RM_Server",
                      "RM_Client0",
                      "RM_Client1",
                      "RM_Client2",
                      "RM_Client3",
                      "RM_Client_NETAPI";
	
    qmss {
        control-qm1 {
            assignments = <0 1>, "iu = (*)";
        };
        
        linkram-control-qm1 {
            assignments = <0 1>, "(*)";             /* Used by Kernel */
        };
        
        linkram-int-qm1 {
            assignments = <0x00000000 0x00002000>, "(*)",
			              <0x00002000 0x00002000>, "iu = (*)";
        };
        linkram-ext-qm1 {
            /* linux provided 0x14000 descriptors of linking RAM but uses 0x4000 to 0x8000 */
            assignments = <0x00004000 0x00063000>, "(*)", /* used by Huawei */
                          <0x00067000 0x00019000>, "iu = (*)";
        };
        
        memory-regions-qm1 {
            assignments = <0  4>, "(*)",
			              <4  5>, "iu = (*)",
						  <9  11>, "(*)", 
                          <20 44>, "(*)";
        };

        LOW_PRIORITY_QUEUE-qm1 {
            /* this is loosely coupled with accumulator-ch channels 32-47.  These queues are
             * just suggested to be paired with these channels, the accumulator can be sw
             * configured to use any queue */
            assignments = <0 128>,   "(*)", /* suggested for channels 32-35 */
                          <128 128>, "     (*)", /* used by linux (accumulator-low-#); linux pairs these to channels 36-39 */
                          <256 256>, "iu = (*)"; /* suggested for channels 40-47 */
        };
        GIC400_QUEUE-qm1 {
            assignments = <528 32>,   "iu = (RM_Client_NETAPI)";             /* Used by Kernel */
        };
        EDMA_0_QUEUE-qm1 {
            assignments = <560 6>, "iu = (*)";
        };
        INTC_QUEUE-qm1 {
            assignments = <570 18>, "iu = (*)";           /* Used by Kernel and DSP */
        }; 
        INTC_EDMA_SET0_QUEUE-qm1 {
            assignments = <589 2>,  "iu = (*)";
        }; 
        INTC_EDMA_SET1_QUEUE-qm1 {
            assignments = <591 8>,  "iu = (*)";
        }; 
        INTC_SET5_QUEUE-qm1 {
            assignments = <599 4>,  "iu = (*)";
        }; 
        INTC_EDMA_SET2_QUEUE-qm1 {
            assignments = <603 2>,  "iu = (*)";
        }; 
        INTC_SET2_QUEUE-qm1 {
            assignments = <605 32>, "iu = (*)";
        }; 
        SOC_SET0_QUEUE-qm1 {
            assignments = <637 15>, "iu = (*)";
        };
        INTC_SET3_QUEUE-qm1 {
            assignments = <652 6>,  "iu = (*)";
        }; 
        SOC_SET1_QUEUE-qm1 {
            assignments = <658 8>,  "     (*)"; /* used by linux */
        };
        INTC_SET4_QUEUE-qm1 {
            assignments = <666 22>, "iu = (*)";
        }; 
        FFTC_A_QUEUE-qm1 {
            assignments = <688 4>, "iu = (*)";
        }; 
        FFTC_B_QUEUE-qm1 {
            assignments = <692 4>, "iu = (*)";
        }; 
        BCP_QUEUE-qm1 {
            assignments = <696 8>, "iu = (*)";
        };         
        HIGH_PRIORITY_QUEUE-qm1 {
            /* this is loosely coupled with accumulator-ch channels 0-15.  These queues are
             * just suggested to be paired with these channels, the accumulator can be sw
             * configured to use any queue */
            assignments = <704 16>, "iu = (*)", /* suggested for channels 0-15 */
                          <720 8>,  "iu = (*)", /* Declared, but not used, by linux (accumulator-high.values). */ 
                          <728 8>,  "iu = (*)"; /* suggested for channels 24-31 */
        };       
        STARVATION_COUNTER_QUEUE-qm1 {
            assignments = <736 9>, "iu = (*)";
        };  
        INFRASTRUCTURE_QUEUE-qm1 {
            assignments = <800  8>,   "(*)",      /* Used by Kernel - 8 (data channel usage irrespective of device) +  1 (channel per DSP core) */
                          <808  8>,   "iu = (*)",
                          <816  16>,   "(*)";
        }; 
        IQNET_QUEUE-qm1 {
            assignments = <832 48>, "(*)";
        };
        PASS_QUEUE-qm1 {
            assignments = <896 21>, "iu = (*)";       /* used by both kernel and DSP */
        };
        GENERAL_PURPOSE_QUEUE-qm1 {
            assignments = <1024 1536>,  "(*)",
                          <2560 128>,   "iu = (*)",   
                          <2688 5504>,  "(*)";

        };    
        
        firmware-pdsp {
            assignments = <0 1>, "     (*)", /* pdsp0: accumulator 0 downloaded by linux */
                          <1 1>, "iu = (*)", /* pdsp1: for em scheduler if event machine is used (not downloaded by linux) */
                          <2 1>, "iu = (*)", /* pdsp2: for accumulator 1 on second intd (not downloaded by linux) */
                          <3 1>, "     (*)", /* pdsp3: qostree downloaded by linux */
                          <4 1>, "iu = (*)", /* pdsp4: for em scheduler if event machine is used (not downloaded by linux) */
                          <5 1>, "iu = (*)", /* pdsp5: for em scheduler if event machine is used (not downloaded by linux) */
                          <6 1>, "iu = (*)", /* pdsp6: for em router if event machine is used (not downloaded by linux) */
                          <7 1>, "     (*)"; /* pdsp7: qostree2 downloaded by linux */
        };        
        accumulator0-ch { /* accumulator using first INTD */
            assignments = <0 16>, "iu = (*)",    /* high priority 0-15 available for everyone */      
                          <16 8>, "iu = (*)",    /* declared but not used by linux, subject to change */
                          <24 8>, "iu = (*)",    /* last 8 high priority are used by event machine, available in non EM use case */
                          <32 4>, "iu = (*)",    /* first 4 low priority are used by event machine, available in non EM use case */
                          <36 4>, "     (*)",    /* next 4 low priority are used by linux (accumulator-low-#) */
                          <40 8>, "iu = (*)";    /* available for all */
        };             
        accumulator1-ch { /* accumulator using second INTD */
            assignments = <0 48>, "iu = (*)";    /* linux doesn't use it */
        };             

        netss-control-qm1 {
            assignments = <0 1>, "(*)";
        };
        netss-linkram-control-qm1 {
            assignments = <0 1>, " (*)";
        };
        netss-linkram-qm1 {
            assignments = <0x00000000 0x00004000>, "(*)";
        };
        netss-memory-regions-qm1 {
            assignments = <0 16>, "(*)";
        };

        netss-control-qm2 {
            assignments = <0 1>, "(*)";
        };
        netss-linkram-control-qm2 {
            assignments = <0 1>, "(*)";
        };
        netss-linkram-qm2 {
            assignments = <0x00000000 0x00004000>, "(*)";
        };
        netss-memory-regions-qm2 {
            assignments = <0 16>, " (*)";
        };

        NETSS_PASS_QUEUE-qm1 {
            assignments = <0 21>, " (*)";
        };
        NETSS_GENERAL_PURPOSE_QUEUE-qm1 {
            assignments = <21 43>, "(*)";
        };
        NETSS_GENERAL_PURPOSE_QUEUE-qm2 {
            assignments = <0 64>, " (*)";
        };
    }; /* qmss */

    cppi {
        fftc-a-rx-ch {
            assignments = <0 4>, "iu = (*)";
        };
        fftc-a-tx-ch {
            assignments = <0 4>, "iu = (*)";
        };
        fftc-a-rx-flow-id {
            assignments = <0 8>, "iu = (*)";
        };   

        fftc-b-rx-ch {
            assignments = <0 4>, "iu = (*)";
        };
        fftc-b-tx-ch {
            assignments = <0 4>, "iu = (*)";
        };
        fftc-b-rx-flow-id {
            assignments = <0 8>, "iu = (*)";
        };   

        netcp-rx-ch {
            assignments = <0 91>, "     (*)"; /* initialized by kernel */
        };
        netcp-tx-ch {
            assignments = <0  19>, "     (*)", /* initialized by kernel, can directly open queuse */
                          <19  1>, "(*)", /* SA channel.  Linux initializes, but some applications need to enable/disable on fly */
                          <20  1>, "     (*)"; /* initialized by kernel, can directly open queuse */

        };
        netcp-rx-flow-id {
            assignments = <0  32>, "(*)";  /* Used by kernel - netrx0 */
         };   

        qmss-qm1-rx-ch {
            assignments = <0   8>, "(*)",    /* Used by kernel - 8 (data channel usage irrespective of device) +  1 (channel per DSP core) */
                          <8   8>, "iu = (*)",
                          <16 16>, "(*)";
        };
        qmss-qm1-tx-ch {
            assignments = <0   8>, "(*)",    /* Used by kernel - 8 (data channel usage irrespective of device) +  1 (channel per DSP core) */
                          <8   8>, "iu = (*)",
                          <16 16>, "(*)";
        };
        qmss-qm1-rx-flow-id {
            assignments = <0  14>, "(*)",    /* Used by kernel - 8 (data channel usage irrespective of device) +  1 (channel per DSP core) */
                          <14 14>, "iu = (*)", 
                          <28 36>, "(*)"; 
						  
        };   

        bcp-rx-ch {
            assignments = <0 8>, "iu = (*)";
        };
        bcp-tx-ch {
            assignments = <0 8>, "iu = (*)";
        };
        bcp-rx-flow-id {
            assignments = <0 64>, "iu = (*)";
        };           
        
        netcp-local-rx-ch {
            assignments = <0 91>, "iu = (*)";
        };
        netcp-local-tx-ch {
            assignments = <0 21>, "iu = (*)";
        };
        netcp-local-rx-flow-id {
            assignments = <0 32>, "iu = (*)";
        };           

        iqn-rx-ch {
            assignments = <0 47>, "iu = (*)";
        };
        iqn-tx-ch {
            assignments = <0 47>, "iu = (*)";
        };
        iqn-rx-flow-id {
            assignments = <0 47>, "iu = (*)";
        };           
    }; /* cppi */

    pa {
        pa-lut { 
            assignments = <0 8>, "iu = (*)";
        };
        pa-firmware {
            assignments = <0 1>, "(*)"; /* linux downloads PA firmware */
        };
        pa-32bUsrStats {
            assignments = <0 512>, "iu = (*)";
        };
        pa-64bUsrStats {
            assignments = <0 256>, "iu = (*)";
        };
    }; /* pa */
};
