1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- /*
- * Common header file for Blackfin family of processors.
- *
- * Copyright 2004-2009 Analog Devices Inc.
- *
- * Licensed under the GPL-2 or later.
- */
- #ifndef _BLACKFIN_H_
- #define _BLACKFIN_H_
- #include <mach/anomaly.h>
- #ifndef __ASSEMBLY__
- /* SSYNC implementation for C file */
- static inline void SSYNC(void)
- {
- int _tmp;
- if (ANOMALY_05000312 || ANOMALY_05000244)
- __asm__ __volatile__(
- "cli %0;"
- "nop;"
- "nop;"
- "nop;"
- "ssync;"
- "sti %0;"
- : "=d" (_tmp)
- );
- else
- __asm__ __volatile__("ssync;");
- }
- /* CSYNC implementation for C file */
- static inline void CSYNC(void)
- {
- int _tmp;
- if (ANOMALY_05000312 || ANOMALY_05000244)
- __asm__ __volatile__(
- "cli %0;"
- "nop;"
- "nop;"
- "nop;"
- "csync;"
- "sti %0;"
- : "=d" (_tmp)
- );
- else
- __asm__ __volatile__("csync;");
- }
- #else /* __ASSEMBLY__ */
- #define LO(con32) ((con32) & 0xFFFF)
- #define lo(con32) ((con32) & 0xFFFF)
- #define HI(con32) (((con32) >> 16) & 0xFFFF)
- #define hi(con32) (((con32) >> 16) & 0xFFFF)
- /* SSYNC & CSYNC implementations for assembly files */
- #define ssync(x) SSYNC(x)
- #define csync(x) CSYNC(x)
- #if ANOMALY_05000312 || ANOMALY_05000244
- #define SSYNC(scratch) \
- cli scratch; \
- nop; nop; nop; \
- SSYNC; \
- sti scratch;
- #define CSYNC(scratch) \
- cli scratch; \
- nop; nop; nop; \
- CSYNC; \
- sti scratch;
- #else
- #define SSYNC(scratch) SSYNC;
- #define CSYNC(scratch) CSYNC;
- #endif /* ANOMALY_05000312 & ANOMALY_05000244 handling */
- #endif /* __ASSEMBLY__ */
- #include <asm/mem_map.h>
- #include <mach/blackfin.h>
- #include <asm/bfin-global.h>
- #endif /* _BLACKFIN_H_ */
|