void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1, u_register_t arg2, u_register_t arg3) { static console_uart_t console; int i; /* Enable CSU NS access permission */ for (i = 0; i < 64; i++) { mmio_write_32(IMX_CSU_BASE + i * 4, 0x00ff00ff); } console_imx_uart_register(IMX_BOOT_UART_BASE, IMX_BOOT_UART_CLK_IN_HZ, IMX_CONSOLE_BAUDRATE, &console); /* This console is only used for boot stage */ console_set_scope(&console.console, CONSOLE_FLAG_BOOT); /* * tell BL3-1 where the non-secure software image is located * and the entry state information. */ bl33_image_ep_info.pc = PLAT_NS_IMAGE_OFFSET; bl33_image_ep_info.spsr = get_spsr_for_bl33_entry(); SET_SECURITY_STATE(bl33_image_ep_info.h.attr, NON_SECURE); bl31_tzc380_setup(); }
void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1, u_register_t arg2, u_register_t arg3) { /* Initialize the console to provide early debug support */ (void)console_pl011_register(PLAT_SQ_BOOT_UART_BASE, PLAT_SQ_BOOT_UART_CLK_IN_HZ, SQ_CONSOLE_BAUDRATE, &console); console_set_scope(&console.console, CONSOLE_FLAG_BOOT | CONSOLE_FLAG_RUNTIME); /* There are no parameters from BL2 if BL31 is a reset vector */ assert(arg0 == 0U); assert(arg1 == 0U); /* Initialize power controller before setting up topology */ plat_sq_pwrc_setup(); #ifdef SPD_opteed struct draminfo di = {0}; sq_scp_get_draminfo(&di); /* * Check if OP-TEE has been loaded in Secure RAM allocated * from DRAM1 region */ if ((di.base1 + di.size1) <= BL32_BASE) { NOTICE("OP-TEE has been loaded by SCP firmware\n"); /* Populate entry point information for BL32 */ SET_PARAM_HEAD(&bl32_image_ep_info, PARAM_EP, VERSION_1, 0); SET_SECURITY_STATE(bl32_image_ep_info.h.attr, SECURE); bl32_image_ep_info.pc = BL32_BASE; bl32_image_ep_info.spsr = sq_get_spsr_for_bl32_entry(); } else { NOTICE("OP-TEE has not been loaded by SCP firmware\n"); } #endif /* SPD_opteed */ /* Populate entry point information for BL33 */ SET_PARAM_HEAD(&bl33_image_ep_info, PARAM_EP, VERSION_1, 0); /* * Tell BL31 where the non-trusted software image * is located and the entry state information */ bl33_image_ep_info.pc = PRELOADED_BL33_BASE; bl33_image_ep_info.spsr = sq_get_spsr_for_bl33_entry(); SET_SECURITY_STATE(bl33_image_ep_info.h.attr, NON_SECURE); }
static void setup_cbmem_console(uintptr_t baseaddr) { static console_cbmc_t console; assert(!console.base); /* should only have one CBMEM console */ /* CBMEM console structure stores its size in first header field. */ uint32_t size = *(uint32_t *)baseaddr; expand_and_mmap(baseaddr, size); console_cbmc_register(baseaddr, &console); console_set_scope(&console.console, CONSOLE_FLAG_BOOT | CONSOLE_FLAG_RUNTIME | CONSOLE_FLAG_CRASH); }
/* Initialize the runtime console */ void arm_console_runtime_init(void) { #if MULTI_CONSOLE_API int rc = console_pl011_register(PLAT_ARM_BL31_RUN_UART_BASE, PLAT_ARM_BL31_RUN_UART_CLK_IN_HZ, ARM_CONSOLE_BAUDRATE, &arm_runtime_console); if (rc == 0) panic(); console_set_scope(&arm_runtime_console.console, CONSOLE_FLAG_RUNTIME); #else (void)console_init(PLAT_ARM_BL31_RUN_UART_BASE, PLAT_ARM_BL31_RUN_UART_CLK_IN_HZ, ARM_CONSOLE_BAUDRATE); #endif /* MULTI_CONSOLE_API */ }
void gxbb_console_init(void) { int rc = console_meson_register(GXBB_UART0_AO_BASE, GXBB_UART0_AO_CLK_IN_HZ, GXBB_UART_BAUDRATE, &gxbb_console); if (rc == 0) { /* * The crash console doesn't use the multi console API, it uses * the core console functions directly. It is safe to call panic * and let it print debug information. */ panic(); } console_set_scope(&gxbb_console.console, CONSOLE_FLAG_BOOT | CONSOLE_FLAG_RUNTIME); }
/* Initialize the console to provide early debug support */ void __init arm_console_boot_init(void) { #if MULTI_CONSOLE_API int rc = console_pl011_register(PLAT_ARM_BOOT_UART_BASE, PLAT_ARM_BOOT_UART_CLK_IN_HZ, ARM_CONSOLE_BAUDRATE, &arm_boot_console); if (rc == 0) { /* * The crash console doesn't use the multi console API, it uses * the core console functions directly. It is safe to call panic * and let it print debug information. */ panic(); } console_set_scope(&arm_boot_console.console, CONSOLE_FLAG_BOOT); #else (void)console_init(PLAT_ARM_BOOT_UART_BASE, PLAT_ARM_BOOT_UART_CLK_IN_HZ, ARM_CONSOLE_BAUDRATE); #endif /* MULTI_CONSOLE_API */ }