From b1ef3674c0bffdd169e070f039d413cceb5e706c Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 27 Jul 2016 11:30:09 +0200 Subject: [PATCH] bsp/qoriq: Add QORIQ_HAS_WRITE_BACK_L1_CACHE Fixes start via U-Boot on P1020. --- c/src/lib/libbsp/powerpc/qoriq/configure.ac | 4 ++++ c/src/lib/libbsp/powerpc/qoriq/start/start.S | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/c/src/lib/libbsp/powerpc/qoriq/configure.ac b/c/src/lib/libbsp/powerpc/qoriq/configure.ac index 10dd17c0f9..9e63763b9e 100644 --- a/c/src/lib/libbsp/powerpc/qoriq/configure.ac +++ b/c/src/lib/libbsp/powerpc/qoriq/configure.ac @@ -172,6 +172,10 @@ RTEMS_BSPOPTS_SET([QORIQ_HAS_HYPERVISOR_MODE],[qoriq_t*],[1]) RTEMS_BSPOPTS_SET([QORIQ_HAS_HYPERVISOR_MODE],[*],[]) RTEMS_BSPOPTS_HELP([QORIQ_HAS_HYPERVISOR_MODE],[defined if the processor core has a hypervisor mode]) +RTEMS_BSPOPTS_SET([QORIQ_HAS_WRITE_BACK_L1_CACHE],[qoriq_t*],[]) +RTEMS_BSPOPTS_SET([QORIQ_HAS_WRITE_BACK_L1_CACHE],[*],[1]) +RTEMS_BSPOPTS_HELP([QORIQ_HAS_WRITE_BACK_L1_CACHE],[defined if the L1 cache supports write-back]) + RTEMS_BSPOPTS_SET([QORIQ_CLUSTER_1_L2CSR0],[qoriq_t*],[0xfec20000]) RTEMS_BSPOPTS_SET([QORIQ_CLUSTER_1_L2CSR0],[*],[]) RTEMS_BSPOPTS_HELP([QORIQ_CLUSTER_1_L2CSR0],[address of Cluster 1 L2CSR0 register]) diff --git a/c/src/lib/libbsp/powerpc/qoriq/start/start.S b/c/src/lib/libbsp/powerpc/qoriq/start/start.S index 959347c61e..6d6cd9400a 100644 --- a/c/src/lib/libbsp/powerpc/qoriq/start/start.S +++ b/c/src/lib/libbsp/powerpc/qoriq/start/start.S @@ -60,7 +60,14 @@ _start: bl bsp_fdt_copy #endif /* U_BOOT_USE_FDT */ +#ifdef QORIQ_HAS_WRITE_BACK_L1_CACHE + LWI r3, bsp_section_start_begin + LWI r4, bsp_section_data_load_end + sub r4, r4, r3 + bl rtems_cache_flush_multiple_data_lines +#else bl qoriq_l1cache_invalidate +#endif #ifdef QORIQ_CLUSTER_1_L2CSR0 LWI r3, QORIQ_CLUSTER_1_L2CSR0