Beispiel #1
0
void tz_dapc_sec_init()
{
#ifdef DBG_PRELOADER
    MSG(DOM, "(B)tz_dapc_sec_init is 0x%x\n", reg_read32(DEVAPC0_APC_CON));
#endif
    reg_set_field(DEVAPC0_APC_CON , DEVAPC_APC_CON_CTRL, DEVAPC_APC_CON_EN);
    tz_dapc_set_master_transaction(MASTER_MSDC0 , SECURE_TRAN);
#ifdef DBG_PRELOADER    
    MSG(DOM, "(E)tz_dapc_sec_init is 0x%x\n", reg_read32(DEVAPC0_APC_CON));
#endif
}
Beispiel #2
0
void device_APC_dom_setup(void)
{
    MSG(DOM, "\nDevice APC domain init setup:\n\n");
    reg_write32(DEVAPC0_APC_CON, 0x0);
#ifdef DBG_PRELOADER
    MSG(DOM, "Domain Setup (0x%x)\n", reg_read32(DEVAPC0_MAS_DOM_0));
    MSG(DOM, "Domain Setup (0x%x)\n", reg_read32(DEVAPC0_MAS_DOM_1));
#endif

	/*Set modem master to DOMAIN1(MD0),DOMAIN5(MD1)*/
    reg_set_field(DEVAPC0_MAS_DOM_0 , MD1_AHB_0, DOMAIN_1);
    reg_set_field(DEVAPC0_MAS_DOM_1 , MD1_AXI_1, DOMAIN_1);
    reg_set_field(DEVAPC0_MAS_DOM_1 , MD1_AXI_2, DOMAIN_1);
    reg_set_field(DEVAPC0_MAS_DOM_1 , MD2_AHB_0, DOMAIN_1);
    reg_set_field(DEVAPC0_MAS_DOM_1 , MD2_AXI_1, DOMAIN_1);
    reg_set_field(DEVAPC0_MAS_DOM_1 , MD2_AXI_2, DOMAIN_1);

    /*Set connsys master to DOMAIN2*/

     reg_set_field(DEVAPC0_MAS_DOM_1 , CONNSYS, DOMAIN_2);

    /*Set MD32 to DOMAIN3*/

     reg_set_field(DEVAPC0_MAS_DOM_0 ,  MD32 , DOMAIN_3);

      /*Set MFG to DOMAIN6*/

     reg_set_field(DEVAPC0_MAS_DOM_1 ,  MFG , DOMAIN_6);



#ifdef DBG_PRELOADER
    MSG(DOM, "Device APC domain after setup:\n");
    MSG(DOM, "Domain Setup (0x%x)\n", reg_read32(DEVAPC0_MAS_DOM_0));
    MSG(DOM, "Domain Setup (0x%x)\n", reg_read32(DEVAPC0_MAS_DOM_1));
#endif
}
Beispiel #3
0
void device_APC_dom_setup(void)
{
    MSG(DOM, "\nDevice APC domain init setup:\n\n");
    reg_write32(DEVAPC0_APC_CON, 0x0);
#ifdef DBG_PRELOADER
	MSG(DOM, "Domain Setup (0x%x)\n", reg_read32(DEVAPC0_APC_CON));
    MSG(DOM, "Domain Setup (0x%x)\n", reg_read32(DEVAPC0_MAS_DOM_0));
    MSG(DOM, "Domain Setup (0x%x)\n", reg_read32(DEVAPC0_MAS_DOM_1));
#endif


#if defined(MACH_TYPE_MT6735)

    /*Set modem0 master to DOMAIN1*/
    reg_set_field(DEVAPC0_MAS_DOM_1 , MD1_DOMAIN, DOMAIN_1);
    /*Set connsys master to DOMAIN2*/
    reg_set_field(DEVAPC0_MAS_DOM_1 , CONN2AP,    DOMAIN_2);
    /*Set modem1 master to DOMAIN5*/
    reg_set_field(DEVAPC0_MAS_DOM_2 , MD3_DOMAIN, DOMAIN_5);
    /*Set gpu master to DOMAIN6*/
    reg_set_field(DEVAPC0_MAS_DOM_2 , GPU,        DOMAIN_6);

#elif defined(MACH_TYPE_MT6735M)

	// Notice: Compare to Denali-2: (1)Denali-2 does not have Master "MD3"  (2)Denali-2 does not have Domain 4, 5, 6, 7.

    /*Set modem0 master to DOMAIN1*/
    reg_set_field(DEVAPC0_MAS_DOM_0 , MD1_DOMAIN, DOMAIN_1);
    /*Set connsys master to DOMAIN2*/
    reg_set_field(DEVAPC0_MAS_DOM_0 , CONN2AP,    DOMAIN_2);
    /*Set gpu master to DOMAIN3*/
    reg_set_field(DEVAPC0_MAS_DOM_1 , GPU,        DOMAIN_3);

#elif defined(MACH_TYPE_MT6753)

    /*Set modem0 master to DOMAIN1*/
    reg_set_field(DEVAPC0_MAS_DOM_1 , MD1_DOMAIN, DOMAIN_1);
    /*Set connsys master to DOMAIN2*/
    reg_set_field(DEVAPC0_MAS_DOM_1 , CONN2AP,    DOMAIN_2);
    /*Set modem1 master to DOMAIN5*/
    reg_set_field(DEVAPC0_MAS_DOM_2 , MD3_DOMAIN, DOMAIN_5);
    /*Set gpu master to DOMAIN6*/
    reg_set_field(DEVAPC0_MAS_DOM_2 , GPU,        DOMAIN_6);

#else

#error "Wrong MACH type"
	
#endif


#ifdef DBG_PRELOADER
    MSG(DOM, "Device APC domain after setup:\n");
    MSG(DOM, "Domain Setup (0x%x)\n", reg_read32(DEVAPC0_MAS_DOM_0));
    MSG(DOM, "Domain Setup (0x%x)\n", reg_read32(DEVAPC0_MAS_DOM_1));
#endif
}
Beispiel #4
0
void tz_dapc_set_master_transaction(unsigned int  master_index , E_TRANSACTION permisssion_control)
{
    reg_set_field(DEVAPC0_MAS_SEC , (0x1 << master_index), permisssion_control);
}