2 * Copyright (C) 2000 Murray Jensen <Murray.Jensen@cmst.csiro.au>
4 * SPDX-License-Identifier: GPL-2.0+
9 #include <asm/ppc4xx.h>
12 #define CONFIG_405GP 1 /* needed for Linux kernel header files */
14 #include <ppc_asm.tmpl>
17 #include <asm/cache.h>
20 #if defined(CONFIG_CMD_KGDB)
22 * cache flushing routines for kgdb
25 .globl kgdb_flush_cache_all
28 iccci r0,r0 /* iccci invalidates the entire I cache */
30 addi r6,0,0x0000 /* clear GPR 6 */
31 addi r7,r0, 128 /* do loop for # of dcache lines */
32 /* NOTE: dccci invalidates both */
33 mtctr r7 /* ways in the D cache */
35 dccci 0,r6 /* invalidate line */
36 addi r6,r6, 32 /* bump to next line */
40 .globl kgdb_flush_cache_range
41 kgdb_flush_cache_range:
42 li r5,L1_CACHE_BYTES-1
46 srwi. r4,r4,L1_CACHE_SHIFT
51 addi r3,r3,L1_CACHE_BYTES
53 sync /* wait for dcbst's to get to ram */
56 addi r6,r6,L1_CACHE_BYTES