diff options
Diffstat (limited to 'core/arch/arm/plat-imx/main.c')
-rw-r--r-- | core/arch/arm/plat-imx/main.c | 51 |
1 files changed, 13 insertions, 38 deletions
diff --git a/core/arch/arm/plat-imx/main.c b/core/arch/arm/plat-imx/main.c index edfbc37..36750a2 100644 --- a/core/arch/arm/plat-imx/main.c +++ b/core/arch/arm/plat-imx/main.c @@ -45,7 +45,8 @@ #include <tee/entry_std.h> #if defined(PLATFORM_FLAVOR_mx6qsabrelite) || \ - defined(PLATFORM_FLAVOR_mx6qsabresd) + defined(PLATFORM_FLAVOR_mx6qsabresd) || \ + defined(PLATFORM_FLAVOR_mx6dlsabresd) #include <kernel/tz_ssvce_pl310.h> #endif @@ -55,7 +56,7 @@ static struct gic_data gic_data; 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, @@ -64,11 +65,14 @@ static const struct thread_handlers handlers = { .system_reset = pm_panic, }; +static struct imx_uart_data console_data __early_bss; + register_phys_mem(MEM_AREA_IO_NSEC, CONSOLE_UART_BASE, CORE_MMU_DEVICE_SIZE); register_phys_mem(MEM_AREA_IO_SEC, GIC_BASE, CORE_MMU_DEVICE_SIZE); #if defined(PLATFORM_FLAVOR_mx6qsabrelite) || \ - defined(PLATFORM_FLAVOR_mx6qsabresd) + defined(PLATFORM_FLAVOR_mx6qsabresd) || \ + defined(PLATFORM_FLAVOR_mx6dlsabresd) register_phys_mem(MEM_AREA_IO_SEC, PL310_BASE, CORE_MMU_DEVICE_SIZE); register_phys_mem(MEM_AREA_IO_SEC, SRC_BASE, CORE_MMU_DEVICE_SIZE); #endif @@ -84,7 +88,8 @@ static void main_fiq(void) } #if defined(PLATFORM_FLAVOR_mx6qsabrelite) || \ - defined(PLATFORM_FLAVOR_mx6qsabresd) + defined(PLATFORM_FLAVOR_mx6qsabresd) || \ + defined(PLATFORM_FLAVOR_mx6dlsabresd) void plat_cpu_reset_late(void) { uintptr_t addr; @@ -126,41 +131,10 @@ void plat_cpu_reset_late(void) } #endif -static vaddr_t console_base(void) -{ - static void *va; - - if (cpu_mmu_enabled()) { - if (!va) - va = phys_to_virt(CONSOLE_UART_BASE, - MEM_AREA_IO_NSEC); - return (vaddr_t)va; - } - return CONSOLE_UART_BASE; -} - void console_init(void) { - vaddr_t base = console_base(); - - imx_uart_init(base); -} - -void console_putc(int ch) -{ - vaddr_t base = console_base(); - - /* If \n, also do \r */ - if (ch == '\n') - imx_uart_putc('\r', base); - imx_uart_putc(ch, base); -} - -void console_flush(void) -{ - vaddr_t base = console_base(); - - imx_uart_flush_tx_fifo(base); + imx_uart_init(&console_data, CONSOLE_UART_BASE); + register_serial_console(&console_data.chip); } void main_init_gic(void) @@ -182,7 +156,8 @@ void main_init_gic(void) } #if defined(PLATFORM_FLAVOR_mx6qsabrelite) || \ - defined(PLATFORM_FLAVOR_mx6qsabresd) + defined(PLATFORM_FLAVOR_mx6qsabresd) || \ + defined(PLATFORM_FLAVOR_mx6dlsabresd) vaddr_t pl310_base(void) { static void *va __early_bss; |