diff options
| author | Graf Yang <graf.yang@analog.com> | 2009-01-07 10:14:39 -0500 |
|---|---|---|
| committer | Bryan Wu <cooloney@kernel.org> | 2009-01-07 10:14:39 -0500 |
| commit | dbc895f95500a73ebf1ff12fe85f2e2b3790f52f (patch) | |
| tree | 8b60024a7725c559767295b2b3ef143a39111f8b /arch/blackfin | |
| parent | f994607a2e118aedf1116a58ecd16126dbb83d28 (diff) | |
Blackfin arch: smp patch cleanup from LKML review
1. Use inline get_l1_... functions instead of macro
2. Fix compile issue about smp barrier functions
Signed-off-by: Graf Yang <graf.yang@analog.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
Diffstat (limited to 'arch/blackfin')
| -rw-r--r-- | arch/blackfin/include/asm/mem_map.h | 75 | ||||
| -rw-r--r-- | arch/blackfin/include/asm/smp.h | 2 | ||||
| -rw-r--r-- | arch/blackfin/include/asm/system.h | 6 | ||||
| -rw-r--r-- | arch/blackfin/kernel/bfin_ksyms.c | 2 | ||||
| -rw-r--r-- | arch/blackfin/kernel/cplb-mpu/cplbinit.c | 1 | ||||
| -rw-r--r-- | arch/blackfin/kernel/cplb-nompu/cplbinit.c | 1 | ||||
| -rw-r--r-- | arch/blackfin/kernel/process.c | 1 | ||||
| -rw-r--r-- | arch/blackfin/kernel/ptrace.c | 1 | ||||
| -rw-r--r-- | arch/blackfin/mach-bf518/include/mach/mem_map.h | 9 | ||||
| -rw-r--r-- | arch/blackfin/mach-bf527/include/mach/mem_map.h | 9 | ||||
| -rw-r--r-- | arch/blackfin/mach-bf533/include/mach/mem_map.h | 9 | ||||
| -rw-r--r-- | arch/blackfin/mach-bf537/include/mach/mem_map.h | 9 | ||||
| -rw-r--r-- | arch/blackfin/mach-bf538/include/mach/mem_map.h | 9 | ||||
| -rw-r--r-- | arch/blackfin/mach-bf548/include/mach/mem_map.h | 9 | ||||
| -rw-r--r-- | arch/blackfin/mach-bf561/include/mach/mem_map.h | 42 | ||||
| -rw-r--r-- | arch/blackfin/mach-bf561/smp.c | 11 | ||||
| -rw-r--r-- | arch/blackfin/mm/sram-alloc.c | 1 |
17 files changed, 92 insertions, 105 deletions
diff --git a/arch/blackfin/include/asm/mem_map.h b/arch/blackfin/include/asm/mem_map.h index 88d04a70770..e92b31051bb 100644 --- a/arch/blackfin/include/asm/mem_map.h +++ b/arch/blackfin/include/asm/mem_map.h | |||
| @@ -9,4 +9,79 @@ | |||
| 9 | 9 | ||
| 10 | #include <mach/mem_map.h> | 10 | #include <mach/mem_map.h> |
| 11 | 11 | ||
| 12 | #ifndef __ASSEMBLY__ | ||
| 13 | |||
| 14 | #ifdef CONFIG_SMP | ||
| 15 | static inline ulong get_l1_scratch_start_cpu(int cpu) | ||
| 16 | { | ||
| 17 | return (cpu) ? COREB_L1_SCRATCH_START : COREA_L1_SCRATCH_START; | ||
| 18 | } | ||
| 19 | static inline ulong get_l1_code_start_cpu(int cpu) | ||
| 20 | { | ||
| 21 | return (cpu) ? COREB_L1_CODE_START : COREA_L1_CODE_START; | ||
| 22 | } | ||
| 23 | static inline ulong get_l1_data_a_start_cpu(int cpu) | ||
| 24 | { | ||
| 25 | return (cpu) ? COREB_L1_DATA_A_START : COREA_L1_DATA_A_START; | ||
| 26 | } | ||
| 27 | static inline ulong get_l1_data_b_start_cpu(int cpu) | ||
| 28 | { | ||
| 29 | return (cpu) ? COREB_L1_DATA_B_START : COREA_L1_DATA_B_START; | ||
| 30 | } | ||
| 31 | |||
| 32 | static inline ulong get_l1_scratch_start(void) | ||
| 33 | { | ||
| 34 | return get_l1_scratch_start_cpu(blackfin_core_id()); | ||
| 35 | } | ||
| 36 | static inline ulong get_l1_code_start(void) | ||
| 37 | { | ||
| 38 | return get_l1_code_start_cpu(blackfin_core_id()); | ||
| 39 | } | ||
| 40 | static inline ulong get_l1_data_a_start(void) | ||
| 41 | { | ||
| 42 | return get_l1_data_a_start_cpu(blackfin_core_id()); | ||
| 43 | } | ||
| 44 | static inline ulong get_l1_data_b_start(void) | ||
| 45 | { | ||
| 46 | return get_l1_data_b_start_cpu(blackfin_core_id()); | ||
| 47 | } | ||
| 48 | |||
| 49 | #else /* !CONFIG_SMP */ | ||
| 50 | |||
| 51 | static inline ulong get_l1_scratch_start_cpu(int cpu) | ||
| 52 | { | ||
| 53 | return L1_SCRATCH_START; | ||
| 54 | } | ||
| 55 | static inline ulong get_l1_code_start_cpu(int cpu) | ||
| 56 | { | ||
| 57 | return L1_CODE_START; | ||
| 58 | } | ||
| 59 | static inline ulong get_l1_data_a_start_cpu(int cpu) | ||
| 60 | { | ||
| 61 | return L1_DATA_A_START; | ||
| 62 | } | ||
| 63 | static inline ulong get_l1_data_b_start_cpu(int cpu) | ||
| 64 | { | ||
| 65 | return L1_DATA_B_START; | ||
| 66 | } | ||
| 67 | static inline ulong get_l1_scratch_start(void) | ||
| 68 | { | ||
| 69 | return get_l1_scratch_start_cpu(0); | ||
| 70 | } | ||
| 71 | static inline ulong get_l1_code_start(void) | ||
| 72 | { | ||
| 73 | return get_l1_code_start_cpu(0); | ||
| 74 | } | ||
| 75 | static inline ulong get_l1_data_a_start(void) | ||
| 76 | { | ||
| 77 | return get_l1_data_a_start_cpu(0); | ||
| 78 | } | ||
| 79 | static inline ulong get_l1_data_b_start(void) | ||
| 80 | { | ||
| 81 | return get_l1_data_b_start_cpu(0); | ||
| 82 | } | ||
| 83 | |||
| 84 | #endif /* CONFIG_SMP */ | ||
| 85 | #endif /* __ASSEMBLY__ */ | ||
| 86 | |||
| 12 | #endif /* _MEM_MAP_H_ */ | 87 | #endif /* _MEM_MAP_H_ */ |
diff --git a/arch/blackfin/include/asm/smp.h b/arch/blackfin/include/asm/smp.h index 233cb8c3cfb..118deeeae7c 100644 --- a/arch/blackfin/include/asm/smp.h +++ b/arch/blackfin/include/asm/smp.h | |||
| @@ -32,6 +32,8 @@ | |||
| 32 | 32 | ||
| 33 | #define raw_smp_processor_id() blackfin_core_id() | 33 | #define raw_smp_processor_id() blackfin_core_id() |
| 34 | 34 | ||
| 35 | extern char coreb_trampoline_start, coreb_trampoline_end; | ||
| 36 | |||
| 35 | struct corelock_slot { | 37 | struct corelock_slot { |
| 36 | int lock; | 38 | int lock; |
| 37 | }; | 39 | }; |
diff --git a/arch/blackfin/include/asm/system.h b/arch/blackfin/include/asm/system.h index e8bcfa4ee5c..dea92037dff 100644 --- a/arch/blackfin/include/asm/system.h +++ b/arch/blackfin/include/asm/system.h | |||
| @@ -66,10 +66,13 @@ asmlinkage unsigned long __raw_cmpxchg_4_asm(volatile void *ptr, | |||
| 66 | # define smp_mb() do { barrier(); smp_check_barrier(); smp_mark_barrier(); } while (0) | 66 | # define smp_mb() do { barrier(); smp_check_barrier(); smp_mark_barrier(); } while (0) |
| 67 | # define smp_rmb() do { barrier(); smp_check_barrier(); } while (0) | 67 | # define smp_rmb() do { barrier(); smp_check_barrier(); } while (0) |
| 68 | # define smp_wmb() do { barrier(); smp_mark_barrier(); } while (0) | 68 | # define smp_wmb() do { barrier(); smp_mark_barrier(); } while (0) |
| 69 | #define smp_read_barrier_depends() do { barrier(); smp_check_barrier(); } while (0) | ||
| 70 | |||
| 69 | #else | 71 | #else |
| 70 | # define smp_mb() barrier() | 72 | # define smp_mb() barrier() |
| 71 | # define smp_rmb() barrier() | 73 | # define smp_rmb() barrier() |
| 72 | # define smp_wmb() barrier() | 74 | # define smp_wmb() barrier() |
| 75 | #define smp_read_barrier_depends() barrier() | ||
| 73 | #endif | 76 | #endif |
| 74 | 77 | ||
| 75 | static inline unsigned long __xchg(unsigned long x, volatile void *ptr, | 78 | static inline unsigned long __xchg(unsigned long x, volatile void *ptr, |
| @@ -120,8 +123,6 @@ static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old, | |||
| 120 | ((__typeof__(*(ptr)))__cmpxchg((ptr), (unsigned long)(o), \ | 123 | ((__typeof__(*(ptr)))__cmpxchg((ptr), (unsigned long)(o), \ |
| 121 | (unsigned long)(n), sizeof(*(ptr)))) | 124 | (unsigned long)(n), sizeof(*(ptr)))) |
| 122 | 125 | ||
| 123 | #define smp_read_barrier_depends() smp_check_barrier() | ||
| 124 | |||
| 125 | #else /* !CONFIG_SMP */ | 126 | #else /* !CONFIG_SMP */ |
| 126 | 127 | ||
| 127 | #define smp_mb() barrier() | 128 | #define smp_mb() barrier() |
| @@ -192,6 +193,7 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, | |||
| 192 | */ | 193 | */ |
| 193 | 194 | ||
| 194 | #include <asm/l1layout.h> | 195 | #include <asm/l1layout.h> |
| 196 | #include <asm/mem_map.h> | ||
| 195 | 197 | ||
| 196 | asmlinkage struct task_struct *resume(struct task_struct *prev, struct task_struct *next); | 198 | asmlinkage struct task_struct *resume(struct task_struct *prev, struct task_struct *next); |
| 197 | 199 | ||
diff --git a/arch/blackfin/kernel/bfin_ksyms.c b/arch/blackfin/kernel/bfin_ksyms.c index 763c31531e9..01f917d58b5 100644 --- a/arch/blackfin/kernel/bfin_ksyms.c +++ b/arch/blackfin/kernel/bfin_ksyms.c | |||
| @@ -99,6 +99,8 @@ EXPORT_SYMBOL(__raw_bit_test_set_asm); | |||
| 99 | EXPORT_SYMBOL(__raw_bit_test_clear_asm); | 99 | EXPORT_SYMBOL(__raw_bit_test_clear_asm); |
| 100 | EXPORT_SYMBOL(__raw_bit_test_toggle_asm); | 100 | EXPORT_SYMBOL(__raw_bit_test_toggle_asm); |
| 101 | EXPORT_SYMBOL(__raw_uncached_fetch_asm); | 101 | EXPORT_SYMBOL(__raw_uncached_fetch_asm); |
| 102 | #ifdef __ARCH_SYNC_CORE_DCACHE | ||
| 102 | EXPORT_SYMBOL(__raw_smp_mark_barrier_asm); | 103 | EXPORT_SYMBOL(__raw_smp_mark_barrier_asm); |
| 103 | EXPORT_SYMBOL(__raw_smp_check_barrier_asm); | 104 | EXPORT_SYMBOL(__raw_smp_check_barrier_asm); |
| 104 | #endif | 105 | #endif |
| 106 | #endif | ||
diff --git a/arch/blackfin/kernel/cplb-mpu/cplbinit.c b/arch/blackfin/kernel/cplb-mpu/cplbinit.c index 269d2a3530a..1ea7c18435a 100644 --- a/arch/blackfin/kernel/cplb-mpu/cplbinit.c +++ b/arch/blackfin/kernel/cplb-mpu/cplbinit.c | |||
| @@ -25,6 +25,7 @@ | |||
| 25 | #include <asm/blackfin.h> | 25 | #include <asm/blackfin.h> |
| 26 | #include <asm/cplb.h> | 26 | #include <asm/cplb.h> |
| 27 | #include <asm/cplbinit.h> | 27 | #include <asm/cplbinit.h> |
| 28 | #include <asm/mem_map.h> | ||
| 28 | 29 | ||
| 29 | #if ANOMALY_05000263 | 30 | #if ANOMALY_05000263 |
| 30 | # error the MPU will not function safely while Anomaly 05000263 applies | 31 | # error the MPU will not function safely while Anomaly 05000263 applies |
diff --git a/arch/blackfin/kernel/cplb-nompu/cplbinit.c b/arch/blackfin/kernel/cplb-nompu/cplbinit.c index 735413d2c22..4c010ba50a8 100644 --- a/arch/blackfin/kernel/cplb-nompu/cplbinit.c +++ b/arch/blackfin/kernel/cplb-nompu/cplbinit.c | |||
| @@ -27,6 +27,7 @@ | |||
| 27 | #include <asm/cacheflush.h> | 27 | #include <asm/cacheflush.h> |
| 28 | #include <asm/cplb.h> | 28 | #include <asm/cplb.h> |
| 29 | #include <asm/cplbinit.h> | 29 | #include <asm/cplbinit.h> |
| 30 | #include <asm/mem_map.h> | ||
| 30 | 31 | ||
| 31 | u_long icplb_tables[NR_CPUS][CPLB_TBL_ENTRIES+1]; | 32 | u_long icplb_tables[NR_CPUS][CPLB_TBL_ENTRIES+1]; |
| 32 | u_long dcplb_tables[NR_CPUS][CPLB_TBL_ENTRIES+1]; | 33 | u_long dcplb_tables[NR_CPUS][CPLB_TBL_ENTRIES+1]; |
diff --git a/arch/blackfin/kernel/process.c b/arch/blackfin/kernel/process.c index 4359ea25301..1ec0faa8c68 100644 --- a/arch/blackfin/kernel/process.c +++ b/arch/blackfin/kernel/process.c | |||
| @@ -39,6 +39,7 @@ | |||
| 39 | 39 | ||
| 40 | #include <asm/blackfin.h> | 40 | #include <asm/blackfin.h> |
| 41 | #include <asm/fixed_code.h> | 41 | #include <asm/fixed_code.h> |
| 42 | #include <asm/mem_map.h> | ||
| 42 | 43 | ||
| 43 | asmlinkage void ret_from_fork(void); | 44 | asmlinkage void ret_from_fork(void); |
| 44 | 45 | ||
diff --git a/arch/blackfin/kernel/ptrace.c b/arch/blackfin/kernel/ptrace.c index d5e6be2d5ed..d2d38853663 100644 --- a/arch/blackfin/kernel/ptrace.c +++ b/arch/blackfin/kernel/ptrace.c | |||
| @@ -45,6 +45,7 @@ | |||
| 45 | #include <asm/asm-offsets.h> | 45 | #include <asm/asm-offsets.h> |
| 46 | #include <asm/dma.h> | 46 | #include <asm/dma.h> |
| 47 | #include <asm/fixed_code.h> | 47 | #include <asm/fixed_code.h> |
| 48 | #include <asm/mem_map.h> | ||
| 48 | 49 | ||
| 49 | #define TEXT_OFFSET 0 | 50 | #define TEXT_OFFSET 0 |
| 50 | /* | 51 | /* |
diff --git a/arch/blackfin/mach-bf518/include/mach/mem_map.h b/arch/blackfin/mach-bf518/include/mach/mem_map.h index ac95d334d08..62bcc781bfa 100644 --- a/arch/blackfin/mach-bf518/include/mach/mem_map.h +++ b/arch/blackfin/mach-bf518/include/mach/mem_map.h | |||
| @@ -99,15 +99,6 @@ | |||
| 99 | #define L1_SCRATCH_START 0xFFB00000 | 99 | #define L1_SCRATCH_START 0xFFB00000 |
| 100 | #define L1_SCRATCH_LENGTH 0x1000 | 100 | #define L1_SCRATCH_LENGTH 0x1000 |
| 101 | 101 | ||
| 102 | #define get_l1_scratch_start_cpu(cpu) L1_SCRATCH_START | ||
| 103 | #define get_l1_code_start_cpu(cpu) L1_CODE_START | ||
| 104 | #define get_l1_data_a_start_cpu(cpu) L1_DATA_A_START | ||
| 105 | #define get_l1_data_b_start_cpu(cpu) L1_DATA_B_START | ||
| 106 | #define get_l1_scratch_start() L1_SCRATCH_START | ||
| 107 | #define get_l1_code_start() L1_CODE_START | ||
| 108 | #define get_l1_data_a_start() L1_DATA_A_START | ||
| 109 | #define get_l1_data_b_start() L1_DATA_B_START | ||
| 110 | |||
| 111 | #define GET_PDA_SAFE(preg) \ | 102 | #define GET_PDA_SAFE(preg) \ |
| 112 | preg.l = _cpu_pda; \ | 103 | preg.l = _cpu_pda; \ |
| 113 | preg.h = _cpu_pda; | 104 | preg.h = _cpu_pda; |
diff --git a/arch/blackfin/mach-bf527/include/mach/mem_map.h b/arch/blackfin/mach-bf527/include/mach/mem_map.h index bd7fe0fda9e..019e0017ad8 100644 --- a/arch/blackfin/mach-bf527/include/mach/mem_map.h +++ b/arch/blackfin/mach-bf527/include/mach/mem_map.h | |||
| @@ -99,15 +99,6 @@ | |||
| 99 | #define L1_SCRATCH_START 0xFFB00000 | 99 | #define L1_SCRATCH_START 0xFFB00000 |
| 100 | #define L1_SCRATCH_LENGTH 0x1000 | 100 | #define L1_SCRATCH_LENGTH 0x1000 |
| 101 | 101 | ||
| 102 | #define get_l1_scratch_start_cpu(cpu) L1_SCRATCH_START | ||
| 103 | #define get_l1_code_start_cpu(cpu) L1_CODE_START | ||
| 104 | #define get_l1_data_a_start_cpu(cpu) L1_DATA_A_START | ||
| 105 | #define get_l1_data_b_start_cpu(cpu) L1_DATA_B_START | ||
| 106 | #define get_l1_scratch_start() L1_SCRATCH_START | ||
| 107 | #define get_l1_code_start() L1_CODE_START | ||
| 108 | #define get_l1_data_a_start() L1_DATA_A_START | ||
| 109 | #define get_l1_data_b_start() L1_DATA_B_START | ||
| 110 | |||
| 111 | #define GET_PDA_SAFE(preg) \ | 102 | #define GET_PDA_SAFE(preg) \ |
| 112 | preg.l = _cpu_pda; \ | 103 | preg.l = _cpu_pda; \ |
| 113 | preg.h = _cpu_pda; | 104 | preg.h = _cpu_pda; |
diff --git a/arch/blackfin/mach-bf533/include/mach/mem_map.h b/arch/blackfin/mach-bf533/include/mach/mem_map.h index d5eaef21edb..fc33b7cb993 100644 --- a/arch/blackfin/mach-bf533/include/mach/mem_map.h +++ b/arch/blackfin/mach-bf533/include/mach/mem_map.h | |||
| @@ -168,15 +168,6 @@ | |||
| 168 | #define L1_SCRATCH_START 0xFFB00000 | 168 | #define L1_SCRATCH_START 0xFFB00000 |
| 169 | #define L1_SCRATCH_LENGTH 0x1000 | 169 | #define L1_SCRATCH_LENGTH 0x1000 |
| 170 | 170 | ||
| 171 | #define get_l1_scratch_start_cpu(cpu) L1_SCRATCH_START | ||
| 172 | #define get_l1_code_start_cpu(cpu) L1_CODE_START | ||
| 173 | #define get_l1_data_a_start_cpu(cpu) L1_DATA_A_START | ||
| 174 | #define get_l1_data_b_start_cpu(cpu) L1_DATA_B_START | ||
| 175 | #define get_l1_scratch_start() L1_SCRATCH_START | ||
| 176 | #define get_l1_code_start() L1_CODE_START | ||
| 177 | #define get_l1_data_a_start() L1_DATA_A_START | ||
| 178 | #define get_l1_data_b_start() L1_DATA_B_START | ||
| 179 | |||
| 180 | #define GET_PDA_SAFE(preg) \ | 171 | #define GET_PDA_SAFE(preg) \ |
| 181 | preg.l = _cpu_pda; \ | 172 | preg.l = _cpu_pda; \ |
| 182 | preg.h = _cpu_pda; | 173 | preg.h = _cpu_pda; |
diff --git a/arch/blackfin/mach-bf537/include/mach/mem_map.h b/arch/blackfin/mach-bf537/include/mach/mem_map.h index be4de761be9..f9010c4b4bf 100644 --- a/arch/blackfin/mach-bf537/include/mach/mem_map.h +++ b/arch/blackfin/mach-bf537/include/mach/mem_map.h | |||
| @@ -176,15 +176,6 @@ | |||
| 176 | #define L1_SCRATCH_START 0xFFB00000 | 176 | #define L1_SCRATCH_START 0xFFB00000 |
| 177 | #define L1_SCRATCH_LENGTH 0x1000 | 177 | #define L1_SCRATCH_LENGTH 0x1000 |
| 178 | 178 | ||
| 179 | #define get_l1_scratch_start_cpu(cpu) L1_SCRATCH_START | ||
| 180 | #define get_l1_code_start_cpu(cpu) L1_CODE_START | ||
| 181 | #define get_l1_data_a_start_cpu(cpu) L1_DATA_A_START | ||
| 182 | #define get_l1_data_b_start_cpu(cpu) L1_DATA_B_START | ||
| 183 | #define get_l1_scratch_start() L1_SCRATCH_START | ||
| 184 | #define get_l1_code_start() L1_CODE_START | ||
| 185 | #define get_l1_data_a_start() L1_DATA_A_START | ||
| 186 | #define get_l1_data_b_start() L1_DATA_B_START | ||
| 187 | |||
| 188 | #define GET_PDA_SAFE(preg) \ | 179 | #define GET_PDA_SAFE(preg) \ |
| 189 | preg.l = _cpu_pda; \ | 180 | preg.l = _cpu_pda; \ |
| 190 | preg.h = _cpu_pda; | 181 | preg.h = _cpu_pda; |
diff --git a/arch/blackfin/mach-bf538/include/mach/mem_map.h b/arch/blackfin/mach-bf538/include/mach/mem_map.h index c134057c91f..76811966690 100644 --- a/arch/blackfin/mach-bf538/include/mach/mem_map.h +++ b/arch/blackfin/mach-bf538/include/mach/mem_map.h | |||
| @@ -104,15 +104,6 @@ | |||
| 104 | #define L1_SCRATCH_START 0xFFB00000 | 104 | #define L1_SCRATCH_START 0xFFB00000 |
| 105 | #define L1_SCRATCH_LENGTH 0x1000 | 105 | #define L1_SCRATCH_LENGTH 0x1000 |
| 106 | 106 | ||
| 107 | #define get_l1_scratch_start_cpu(cpu) L1_SCRATCH_START | ||
| 108 | #define get_l1_code_start_cpu(cpu) L1_CODE_START | ||
| 109 | #define get_l1_data_a_start_cpu(cpu) L1_DATA_A_START | ||
| 110 | #define get_l1_data_b_start_cpu(cpu) L1_DATA_B_START | ||
| 111 | #define get_l1_scratch_start() L1_SCRATCH_START | ||
| 112 | #define get_l1_code_start() L1_CODE_START | ||
| 113 | #define get_l1_data_a_start() L1_DATA_A_START | ||
| 114 | #define get_l1_data_b_start() L1_DATA_B_START | ||
| 115 | |||
| 116 | #define GET_PDA_SAFE(preg) \ | 107 | #define GET_PDA_SAFE(preg) \ |
| 117 | preg.l = _cpu_pda; \ | 108 | preg.l = _cpu_pda; \ |
| 118 | preg.h = _cpu_pda; | 109 | preg.h = _cpu_pda; |
diff --git a/arch/blackfin/mach-bf548/include/mach/mem_map.h b/arch/blackfin/mach-bf548/include/mach/mem_map.h index 361eb0e85bc..70b9c119402 100644 --- a/arch/blackfin/mach-bf548/include/mach/mem_map.h +++ b/arch/blackfin/mach-bf548/include/mach/mem_map.h | |||
| @@ -108,15 +108,6 @@ | |||
| 108 | #define L1_SCRATCH_START 0xFFB00000 | 108 | #define L1_SCRATCH_START 0xFFB00000 |
| 109 | #define L1_SCRATCH_LENGTH 0x1000 | 109 | #define L1_SCRATCH_LENGTH 0x1000 |
| 110 | 110 | ||
| 111 | #define get_l1_scratch_start_cpu(cpu) L1_SCRATCH_START | ||
| 112 | #define get_l1_code_start_cpu(cpu) L1_CODE_START | ||
| 113 | #define get_l1_data_a_start_cpu(cpu) L1_DATA_A_START | ||
| 114 | #define get_l1_data_b_start_cpu(cpu) L1_DATA_B_START | ||
| 115 | #define get_l1_scratch_start() L1_SCRATCH_START | ||
| 116 | #define get_l1_code_start() L1_CODE_START | ||
| 117 | #define get_l1_data_a_start() L1_DATA_A_START | ||
| 118 | #define get_l1_data_b_start() L1_DATA_B_START | ||
| 119 | |||
| 120 | #define GET_PDA_SAFE(preg) \ | 111 | #define GET_PDA_SAFE(preg) \ |
| 121 | preg.l = _cpu_pda; \ | 112 | preg.l = _cpu_pda; \ |
| 122 | preg.h = _cpu_pda; | 113 | preg.h = _cpu_pda; |
diff --git a/arch/blackfin/mach-bf561/include/mach/mem_map.h b/arch/blackfin/mach-bf561/include/mach/mem_map.h index 488c3bda65b..419dffdc96e 100644 --- a/arch/blackfin/mach-bf561/include/mach/mem_map.h +++ b/arch/blackfin/mach-bf561/include/mach/mem_map.h | |||
| @@ -85,47 +85,7 @@ | |||
| 85 | #define L1_SCRATCH_START COREA_L1_SCRATCH_START | 85 | #define L1_SCRATCH_START COREA_L1_SCRATCH_START |
| 86 | #define L1_SCRATCH_LENGTH 0x1000 | 86 | #define L1_SCRATCH_LENGTH 0x1000 |
| 87 | 87 | ||
| 88 | #ifndef __ASSEMBLY__ | 88 | #ifdef __ASSEMBLY__ |
| 89 | |||
| 90 | #ifdef CONFIG_SMP | ||
| 91 | |||
| 92 | #define get_l1_scratch_start_cpu(cpu) \ | ||
| 93 | ({ unsigned long __addr; \ | ||
| 94 | __addr = (cpu) ? COREB_L1_SCRATCH_START : COREA_L1_SCRATCH_START;\ | ||
| 95 | __addr; }) | ||
| 96 | |||
| 97 | #define get_l1_code_start_cpu(cpu) \ | ||
| 98 | ({ unsigned long __addr; \ | ||
| 99 | __addr = (cpu) ? COREB_L1_CODE_START : COREA_L1_CODE_START; \ | ||
| 100 | __addr; }) | ||
| 101 | |||
| 102 | #define get_l1_data_a_start_cpu(cpu) \ | ||
| 103 | ({ unsigned long __addr; \ | ||
| 104 | __addr = (cpu) ? COREB_L1_DATA_A_START : COREA_L1_DATA_A_START;\ | ||
| 105 | __addr; }) | ||
| 106 | |||
| 107 | #define get_l1_data_b_start_cpu(cpu) \ | ||
| 108 | ({ unsigned long __addr; \ | ||
| 109 | __addr = (cpu) ? COREB_L1_DATA_B_START : COREA_L1_DATA_B_START;\ | ||
| 110 | __addr; }) | ||
| 111 | |||
| 112 | #define get_l1_scratch_start() get_l1_scratch_start_cpu(blackfin_core_id()) | ||
| 113 | #define get_l1_code_start() get_l1_code_start_cpu(blackfin_core_id()) | ||
| 114 | #define get_l1_data_a_start() get_l1_data_a_start_cpu(blackfin_core_id()) | ||
| 115 | #define get_l1_data_b_start() get_l1_data_b_start_cpu(blackfin_core_id()) | ||
| 116 | |||
| 117 | #else /* !CONFIG_SMP */ | ||
| 118 | #define get_l1_scratch_start_cpu(cpu) L1_SCRATCH_START | ||
| 119 | #define get_l1_code_start_cpu(cpu) L1_CODE_START | ||
| 120 | #define get_l1_data_a_start_cpu(cpu) L1_DATA_A_START | ||
| 121 | #define get_l1_data_b_start_cpu(cpu) L1_DATA_B_START | ||
| 122 | #define get_l1_scratch_start() L1_SCRATCH_START | ||
| 123 | #define get_l1_code_start() L1_CODE_START | ||
| 124 | #define get_l1_data_a_start() L1_DATA_A_START | ||
| 125 | #define get_l1_data_b_start() L1_DATA_B_START | ||
| 126 | #endif /* !CONFIG_SMP */ | ||
| 127 | |||
| 128 | #else /* __ASSEMBLY__ */ | ||
| 129 | 89 | ||
| 130 | /* | 90 | /* |
| 131 | * The following macros both return the address of the PDA for the | 91 | * The following macros both return the address of the PDA for the |
diff --git a/arch/blackfin/mach-bf561/smp.c b/arch/blackfin/mach-bf561/smp.c index 23fd4c13897..9b27e698c0b 100644 --- a/arch/blackfin/mach-bf561/smp.c +++ b/arch/blackfin/mach-bf561/smp.c | |||
| @@ -27,11 +27,6 @@ | |||
| 27 | #include <asm/smp.h> | 27 | #include <asm/smp.h> |
| 28 | #include <asm/dma.h> | 28 | #include <asm/dma.h> |
| 29 | 29 | ||
| 30 | #define COREB_SRAM_BASE 0xff600000 | ||
| 31 | #define COREB_SRAM_SIZE 0x4000 | ||
| 32 | |||
| 33 | extern char coreb_trampoline_start, coreb_trampoline_end; | ||
| 34 | |||
| 35 | static DEFINE_SPINLOCK(boot_lock); | 30 | static DEFINE_SPINLOCK(boot_lock); |
| 36 | 31 | ||
| 37 | static cpumask_t cpu_callin_map; | 32 | static cpumask_t cpu_callin_map; |
| @@ -54,15 +49,15 @@ void __init platform_prepare_cpus(unsigned int max_cpus) | |||
| 54 | int len; | 49 | int len; |
| 55 | 50 | ||
| 56 | len = &coreb_trampoline_end - &coreb_trampoline_start + 1; | 51 | len = &coreb_trampoline_end - &coreb_trampoline_start + 1; |
| 57 | BUG_ON(len > COREB_SRAM_SIZE); | 52 | BUG_ON(len > L1_CODE_LENGTH); |
| 58 | 53 | ||
| 59 | dma_memcpy((void *)COREB_SRAM_BASE, &coreb_trampoline_start, len); | 54 | dma_memcpy((void *)COREB_L1_CODE_START, &coreb_trampoline_start, len); |
| 60 | 55 | ||
| 61 | /* Both cores ought to be present on a bf561! */ | 56 | /* Both cores ought to be present on a bf561! */ |
| 62 | cpu_set(0, cpu_present_map); /* CoreA */ | 57 | cpu_set(0, cpu_present_map); /* CoreA */ |
| 63 | cpu_set(1, cpu_present_map); /* CoreB */ | 58 | cpu_set(1, cpu_present_map); /* CoreB */ |
| 64 | 59 | ||
| 65 | printk(KERN_INFO "CoreB bootstrap code to SRAM %p via DMA.\n", (void *)COREB_SRAM_BASE); | 60 | printk(KERN_INFO "CoreB bootstrap code to SRAM %p via DMA.\n", (void *)COREB_L1_CODE_START); |
| 66 | } | 61 | } |
| 67 | 62 | ||
| 68 | int __init setup_profiling_timer(unsigned int multiplier) /* not supported */ | 63 | int __init setup_profiling_timer(unsigned int multiplier) /* not supported */ |
diff --git a/arch/blackfin/mm/sram-alloc.c b/arch/blackfin/mm/sram-alloc.c index 1ca5deb7934..834cab7438a 100644 --- a/arch/blackfin/mm/sram-alloc.c +++ b/arch/blackfin/mm/sram-alloc.c | |||
| @@ -39,6 +39,7 @@ | |||
| 39 | #include <linux/spinlock.h> | 39 | #include <linux/spinlock.h> |
| 40 | #include <linux/rtc.h> | 40 | #include <linux/rtc.h> |
| 41 | #include <asm/blackfin.h> | 41 | #include <asm/blackfin.h> |
| 42 | #include <asm/mem_map.h> | ||
| 42 | #include "blackfin_sram.h" | 43 | #include "blackfin_sram.h" |
| 43 | 44 | ||
| 44 | static DEFINE_PER_CPU(spinlock_t, l1sram_lock) ____cacheline_aligned_in_smp; | 45 | static DEFINE_PER_CPU(spinlock_t, l1sram_lock) ____cacheline_aligned_in_smp; |
