summaryrefslogtreecommitdiff
path: root/core/arch/arm/plat-imx/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'core/arch/arm/plat-imx/main.c')
-rw-r--r--core/arch/arm/plat-imx/main.c51
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;