Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / arch / blackfin / include / asm / blackfin.h
1 /*
2  * Common header file for Blackfin family of processors.
3  *
4  * Copyright 2004-2009 Analog Devices Inc.
5  *
6  * Licensed under the GPL-2 or later.
7  */
8
9 #ifndef _BLACKFIN_H_
10 #define _BLACKFIN_H_
11
12 #include <mach/anomaly.h>
13
14 #ifndef __ASSEMBLY__
15
16 /* SSYNC implementation for C file */
17 static inline void SSYNC(void)
18 {
19         int _tmp;
20         if (ANOMALY_05000312 || ANOMALY_05000244)
21                 __asm__ __volatile__(
22                         "cli %0;"
23                         "nop;"
24                         "nop;"
25                         "nop;"
26                         "ssync;"
27                         "sti %0;"
28                         : "=d" (_tmp)
29                 );
30         else
31                 __asm__ __volatile__("ssync;");
32 }
33
34 /* CSYNC implementation for C file */
35 static inline void CSYNC(void)
36 {
37         int _tmp;
38         if (ANOMALY_05000312 || ANOMALY_05000244)
39                 __asm__ __volatile__(
40                         "cli %0;"
41                         "nop;"
42                         "nop;"
43                         "nop;"
44                         "csync;"
45                         "sti %0;"
46                         : "=d" (_tmp)
47                 );
48         else
49                 __asm__ __volatile__("csync;");
50 }
51
52 #else  /* __ASSEMBLY__ */
53
54 #define LO(con32) ((con32) & 0xFFFF)
55 #define lo(con32) ((con32) & 0xFFFF)
56 #define HI(con32) (((con32) >> 16) & 0xFFFF)
57 #define hi(con32) (((con32) >> 16) & 0xFFFF)
58
59 /* SSYNC & CSYNC implementations for assembly files */
60
61 #define ssync(x) SSYNC(x)
62 #define csync(x) CSYNC(x)
63
64 #if ANOMALY_05000312 || ANOMALY_05000244
65 #define SSYNC(scratch)  \
66         cli scratch;    \
67         nop; nop; nop;  \
68         SSYNC;          \
69         sti scratch;
70
71 #define CSYNC(scratch)  \
72         cli scratch;    \
73         nop; nop; nop;  \
74         CSYNC;          \
75         sti scratch;
76
77 #else
78 #define SSYNC(scratch) SSYNC;
79 #define CSYNC(scratch) CSYNC;
80 #endif /* ANOMALY_05000312 & ANOMALY_05000244 handling */
81
82 #endif /* __ASSEMBLY__ */
83
84 #include <asm/mem_map.h>
85 #include <mach/blackfin.h>
86 #include <asm/bfin-global.h>
87
88 #endif                          /* _BLACKFIN_H_ */