bsp/qoriq: Move L1 cache invalidate function

This commit is contained in:
Sebastian Huber
2016-04-22 13:09:39 +02:00
parent 0ac0632b5c
commit 582e427280
3 changed files with 45 additions and 19 deletions

View File

@@ -70,6 +70,7 @@ libbsp_a_SOURCES += \
../shared/startup/bspidle.c \
../shared/uboot_getenv.c \
../shared/uboot_dump_bdinfo.c \
startup/l1cache.S \
startup/l2cache.S \
startup/mmu.c \
startup/mmu-tlb1.S \

View File

@@ -60,25 +60,7 @@ _start:
bl bsp_fdt_copy
#endif /* U_BOOT_USE_FDT */
/* Invalidate L1 data cache */
mfspr r3, FSL_EIS_L1CSR0
ori r3, r3, FSL_EIS_L1CSR0_CFI
mtspr FSL_EIS_L1CSR0, r3
1:
mfspr r3, FSL_EIS_L1CSR0
andi. r3, r3, FSL_EIS_L1CSR0_CFI
bne 1b
isync
/* Invalidate L1 instruction cache */
mfspr r3, FSL_EIS_L1CSR1
ori r3, r3, FSL_EIS_L1CSR1_ICFI
mtspr FSL_EIS_L1CSR1, r3
1:
mfspr r3, FSL_EIS_L1CSR1
andi. r3, r3, FSL_EIS_L1CSR1_ICFI
bne 1b
isync
bl qoriq_l1cache_invalidate
#ifdef QORIQ_CLUSTER_1_L2CSR0
LWI r3, QORIQ_CLUSTER_1_L2CSR0

View File

@@ -0,0 +1,43 @@
/*
* Copyright (c) 2015, 2016 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Dornierstr. 4
* 82178 Puchheim
* Germany
* <rtems@embedded-brains.de>
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.org/license/LICENSE.
*/
#include <libcpu/powerpc-utility.h>
.global qoriq_l1cache_invalidate
.section ".bsp_start_text", "ax"
qoriq_l1cache_invalidate:
/* Invalidate L1 data cache */
mfspr r3, FSL_EIS_L1CSR0
ori r3, r3, FSL_EIS_L1CSR0_CFI
mtspr FSL_EIS_L1CSR0, r3
1:
mfspr r3, FSL_EIS_L1CSR0
andi. r3, r3, FSL_EIS_L1CSR0_CFI
bne 1b
isync
/* Invalidate L1 instruction cache */
mfspr r3, FSL_EIS_L1CSR1
ori r3, r3, FSL_EIS_L1CSR1_ICFI
mtspr FSL_EIS_L1CSR1, r3
1:
mfspr r3, FSL_EIS_L1CSR1
andi. r3, r3, FSL_EIS_L1CSR1_ICFI
bne 1b
isync
blr