cache.h revision 6b3087c64a92a36ae20d33479b4df6d7afc910d4
11394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* 21394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * include/asm-blackfin/cache.h 31394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu */ 41394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#ifndef __ARCH_BLACKFIN_CACHE_H 51394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define __ARCH_BLACKFIN_CACHE_H 61394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 71394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* 81394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * Bytes per L1 cache line 91394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * Blackfin loads 32 bytes for cache 101394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu */ 111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define L1_CACHE_SHIFT 5 121394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT) 131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define SMP_CACHE_BYTES L1_CACHE_BYTES 141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 156b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yang#ifdef CONFIG_SMP 166b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yang#define __cacheline_aligned 176b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yang#else 186b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yang#define ____cacheline_aligned 196b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yang 201394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* 211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * Put cacheline_aliged data to L1 data memory 221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu */ 231394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#ifdef CONFIG_CACHELINE_ALIGNED_L1 241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define __cacheline_aligned \ 251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu __attribute__((__aligned__(L1_CACHE_BYTES), \ 261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu __section__(".data_l1.cacheline_aligned"))) 271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 296b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yang#endif 306b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yang 311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* 321394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * largest L1 which this arch supports 331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu */ 341394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define L1_CACHE_SHIFT_MAX 5 351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 366b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yang#if defined(CONFIG_SMP) && \ 376b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yang !defined(CONFIG_BFIN_CACHE_COHERENT) && \ 386b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yang defined(CONFIG_BFIN_DCACHE) 396b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yang#define __ARCH_SYNC_CORE_DCACHE 406b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yang#ifndef __ASSEMBLY__ 416b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yangasmlinkage void __raw_smp_mark_barrier_asm(void); 426b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yangasmlinkage void __raw_smp_check_barrier_asm(void); 436b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yang 446b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yangstatic inline void smp_mark_barrier(void) 456b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yang{ 466b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yang __raw_smp_mark_barrier_asm(); 476b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yang} 486b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yangstatic inline void smp_check_barrier(void) 496b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yang{ 506b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yang __raw_smp_check_barrier_asm(); 516b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yang} 526b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yang 536b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yangvoid resync_core_dcache(void); 546b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yang#endif 556b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yang#endif 566b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yang 576b3087c64a92a36ae20d33479b4df6d7afc910d4Graf Yang 581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 59