/* * Copyright (c) 2017, Linaro Limited * SPDX-License-Identifier: BSD-2-Clause */ #include #include #ifdef CFG_PL061 #include #endif #include #include #include #include #include #include #include #include #include static void main_fiq(void); static const struct thread_handlers handlers = { .std_smc = tee_entry_std, .fast_smc = tee_entry_fast, .nintr = main_fiq, .cpu_on = cpu_on_handler, .cpu_off = pm_do_nothing, .cpu_suspend = pm_do_nothing, .cpu_resume = pm_do_nothing, .system_off = pm_do_nothing, .system_reset = pm_do_nothing, }; static struct pl011_data console_data; register_phys_mem_pgdir(MEM_AREA_IO_NSEC, CONSOLE_UART_BASE, PL011_REG_SIZE); /* for dynamic shared memory */ register_dynamic_shm(DRAM0_BASE_NSEC, DRAM0_SIZE_NSEC); const struct thread_handlers *generic_boot_get_handlers(void) { return &handlers; } static void main_fiq(void) { panic(); } void console_init(void) { pl011_init(&console_data, CONSOLE_UART_BASE, CONSOLE_UART_CLK_IN_HZ, CONSOLE_BAUDRATE); register_serial_console(&console_data.chip); }