//#define PMIC_WRAP_PORTING //only for lk early porting void platform_early_init(void) { #ifdef LK_PROFILING unsigned int time_led_init; unsigned int time_pmic6329_init; unsigned int time_platform_early_init; unsigned int time_repair_sram; unsigned int time_display_early_init; unsigned int time_wdt_early_init; time_platform_early_init = get_timer(0); #endif /* initialize the uart */ uart_init_early(); platform_init_interrupts(); platform_early_init_timer(); mt_gpio_set_default(); #ifdef REPAIR_SRAM_ENABLE_LK_FOR_82_BRINGUP #ifdef LK_PROFILING time_repair_sram = get_timer(0); #endif int repair_ret; repair_ret = repair_sram(); if(repair_ret != 0) { printf("Sram repair failed %d\n", repair_ret); while(1); } #ifdef LK_PROFILING dprintf(INFO,"[PROFILE] ------- Repair SRAM takes %d ms -------- \n",(int) get_timer(time_repair_sram)); #endif #endif //i2c_v1_init(); #ifdef LK_PROFILING time_wdt_early_init = get_timer(0); #endif mtk_wdt_init(); #ifdef LK_PROFILING dprintf(INFO,"[PROFILE] ------- WDT Init takes %d ms -------- \n", (int)get_timer(time_wdt_early_init)); #endif // WDT will be triggered when uncompressing linux image on FPGA #ifdef MACH_FPGA mtk_wdt_disable(); #endif #ifdef MTK_MT8193_SUPPORT mt8193_init(); #endif /* initialize the frame buffet information */ //FIXME: Disable for MT6582 FPGA Ealry Porting #ifndef DISABLE_DISPLAY_IN_LK_FOR_82_BRINGUP #ifdef LK_PROFILING time_display_early_init = get_timer(0); #endif g_fb_size = mt_disp_get_vram_size(); g_fb_base = memory_size() - g_fb_size + DRAM_PHY_ADDR; dprintf(INFO, "FB base = 0x%x, FB size = %d\n", g_fb_base, g_fb_size); #ifdef LK_PROFILING dprintf(INFO,"[PROFILE] ------- Display eraly init takes %d ms -------- \n", (int)get_timer(time_display_early_init)); #endif #endif #ifdef LK_PROFILING time_led_init = get_timer(0); #endif #ifndef MACH_FPGA leds_init(); #endif #ifdef LK_PROFILING printf("[PROFILE] ------- led init takes %d ms -------- \n", get_timer(time_led_init)); #endif isink0_init(); //turn on PMIC6329 isink0 //FIXME: Disable for MT6582 FPGA Ealry Porting #ifndef DISABLE_DISPLAY_IN_LK_FOR_82_BRINGUP if (!(lcm_params->type==LCM_TYPE_DSI && lcm_params->dsi.mode ==CMD_MODE)) mt_disp_init((void *)g_fb_base); #endif #ifdef PMIC_WRAP_PORTING pwrap_init_lk(); pwrap_init_for_early_porting(); #endif #ifdef LK_PROFILING time_pmic6329_init = get_timer(0); #endif pmic_init(); #ifdef LK_PROFILING printf("[PROFILE] ------- pmic_init takes %d ms -------- \n", get_timer(time_pmic6329_init)); printf("[PROFILE] ------- platform_early_init takes %d ms -------- \n", get_timer(time_platform_early_init)); #endif }
void platform_early_init(void) { #ifdef LK_PROFILING unsigned int time_led_init; unsigned int time_pmic6329_init; unsigned int time_i2c_init; unsigned int time_disp_init; unsigned int time_platform_early_init; time_platform_early_init = get_timer(0); #endif /* initialize the uart */ uart_init_early(); /* initialize the frame buffet information */ g_fb_size = mt_disp_get_vram_size(); g_fb_base = memory_size() - g_fb_size; dprintf(INFO, "FB base = 0x%x, FB size = %d\n", g_fb_base, g_fb_size); platform_init_interrupts(); platform_early_init_timer(); mt_gpio_set_default(); #ifdef LK_PROFILING time_i2c_init = get_timer(0); #endif // i2c_v1_init(); #ifdef LK_PROFILING printf("[PROFILE] ------- i2c init takes %d ms -------- \n", get_timer(time_i2c_init)); #endif mtk_wdt_init(); #ifdef LK_PROFILING time_led_init = get_timer(0); #endif leds_init(); #ifdef LK_PROFILING printf("[PROFILE] ------- led init takes %d ms -------- \n", get_timer(time_led_init)); #endif isink0_init(); //turn on PMIC6329 isink0 #ifdef LK_PROFILING time_disp_init = get_timer(0); #endif mt_disp_init((void *)g_fb_base); #ifdef LK_PROFILING printf("[PROFILE] ------- disp init takes %d ms -------- \n", get_timer(time_disp_init)); #endif #ifdef CONFIG_CFB_CONSOLE drv_video_init(); #endif #ifdef LK_PROFILING time_pmic6329_init = get_timer(0); #endif pmic6329_init(); //<2013/01/03-samhuang, improve KPI-0092 to add VIB before show logo. lk_vibr_enable(); //>2013/01/03-samhuang #ifdef LK_PROFILING printf("[PROFILE] ------- pmic6329_init takes %d ms -------- \n", get_timer(time_pmic6329_init)); printf("[PROFILE] ------- platform_early_init takes %d ms -------- \n", get_timer(time_platform_early_init)); #endif }
void platform_early_init(void) { #ifdef LK_PROFILING unsigned int time_led_init; unsigned int time_pmic6329_init; unsigned int time_i2c_init; unsigned int time_disp_init; unsigned int time_platform_early_init; time_platform_early_init = get_timer(0); #endif /* initialize the frame buffet information */ g_fb_size = mt_disp_get_vram_size(); g_fb_base = memory_size() - g_fb_size + DRAM_PHY_ADDR; dprintf(INFO, "FB base = 0x%x, FB size = %d\n", g_fb_base, g_fb_size); platform_init_interrupts(); platform_early_init_timer(); mt_gpio_set_default(); /* initialize the uart */ uart_init_early(); #ifdef LK_PROFILING time_i2c_init = get_timer(0); #endif mt_i2c_init(); #ifdef LK_PROFILING printf("[PROFILE] ------- i2c init takes %d ms -------- \n", get_timer(time_i2c_init)); #endif mtk_wdt_init(); #ifdef LK_PROFILING time_led_init = get_timer(0); #endif #ifndef MACH_FPAG leds_init(); #endif #ifdef LK_PROFILING printf("[PROFILE] ------- led init takes %d ms -------- \n", get_timer(time_led_init)); #endif isink0_init(); //turn on PMIC6329 isink0 #ifdef LK_PROFILING time_disp_init = get_timer(0); #endif mt_disp_init((void *)g_fb_base); #ifdef LK_PROFILING printf("[PROFILE] ------- disp init takes %d ms -------- \n", get_timer(time_disp_init)); #endif #ifdef CONFIG_CFB_CONSOLE drv_video_init(); #endif #ifdef MACH_FPGA pwrap_init_lk(); pwrap_init_for_early_porting(); #endif #ifdef LK_PROFILING time_pmic6329_init = get_timer(0); #endif pmic6320_init(); #ifdef LK_PROFILING printf("[PROFILE] ------- pmic6329_init takes %d ms -------- \n", get_timer(time_pmic6329_init)); printf("[PROFILE] ------- platform_early_init takes %d ms -------- \n", get_timer(time_platform_early_init)); #endif }