diff options
Diffstat (limited to 'core/arch/arm/plat-ti/main.c')
-rw-r--r-- | core/arch/arm/plat-ti/main.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/core/arch/arm/plat-ti/main.c b/core/arch/arm/plat-ti/main.c index c811862..be3bf3a 100644 --- a/core/arch/arm/plat-ti/main.c +++ b/core/arch/arm/plat-ti/main.c @@ -26,11 +26,12 @@ */ #include <platform_config.h> - +#include <console.h> #include <stdint.h> #include <string.h> #include <assert.h> #include <drivers/gic.h> +#include <drivers/serial8250_uart.h> #include <arm.h> #include <kernel/generic_boot.h> #include <kernel/panic.h> @@ -47,9 +48,12 @@ #include <sm/sm.h> static struct gic_data gic_data; +static struct serial8250_uart_data console_data __early_bss; register_phys_mem(MEM_AREA_IO_SEC, GICC_BASE, GICC_SIZE); register_phys_mem(MEM_AREA_IO_SEC, GICD_BASE, GICD_SIZE); +register_phys_mem(MEM_AREA_IO_NSEC, CONSOLE_UART_BASE, + SERIAL8250_UART_REG_SIZE); void main_init_gic(void) { @@ -79,7 +83,7 @@ static void main_fiq(void) static const struct thread_handlers handlers = { .std_smc = tee_entry_std, .fast_smc = tee_entry_fast, - .fiq = main_fiq, + .nintr = main_fiq, .cpu_on = pm_panic, .cpu_off = pm_panic, .cpu_suspend = pm_panic, @@ -126,8 +130,8 @@ void init_sec_mon(unsigned long nsec_entry) panic(); /* Invalidate cache to fetch data from external memory */ - cache_maintenance_l1(DCACHE_AREA_INVALIDATE, - plat_ctx, sizeof(*plat_ctx)); + cache_op_inner(DCACHE_AREA_INVALIDATE, + plat_ctx, sizeof(*plat_ctx)); /* Initialize secure monitor */ nsec_ctx = sm_get_nsec_ctx(); @@ -149,3 +153,10 @@ void init_sec_mon(unsigned long nsec_entry) nsec_ctx->mon_lr = plat_ctx->mon_lr; nsec_ctx->mon_spsr = plat_ctx->mon_spsr; } + +void console_init(void) +{ + serial8250_uart_init(&console_data, CONSOLE_UART_BASE, + CONSOLE_UART_CLK_IN_HZ, CONSOLE_BAUDRATE); + register_serial_console(&console_data.chip); +} |