aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/blackfin/cache-lock.txt
blob: 88ba1e6c31c3a0e66d09b43dde07cc139112cb05 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/*
 * File:         Documentation/blackfin/cache-lock.txt
 * Based on:
 * Author:
 *
 * Created:
 * Description:  This file contains the simple DMA Implementation for Blackfin
 *
 * Rev:          $Id: cache-lock.txt 2384 2006-11-01 04:12:43Z magicyang $
 *
 * Modified:
 *               Copyright 2004-2006 Analog Devices Inc.
 *
 * Bugs:         Enter bugs at http://blackfin.uclinux.org/
 *
 */

How to lock your code in cache in uClinux/blackfin
--------------------------------------------------

There are only a few steps required to lock your code into the cache.
Currently you can lock the code by Way.

Below are the interface provided for locking the cache.


1. cache_grab_lock(int Ways);

This function grab the lock for locking your code into the cache specified
by Ways.


2. cache_lock(int Ways);

This function should be called after your critical code has been executed.
Once the critical code exits, the code is now loaded into the cache. This
function locks the code into the cache.


So, the example sequence will be:

	cache_grab_lock(WAY0_L);	/* Grab the lock */

	critical_code();		/* Execute the code of interest */

	cache_lock(WAY0_L);		/* Lock the cache */

Where WAY0_L signifies WAY0 locking.