diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-12 16:14:30 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-12 16:14:30 -0400 |
| commit | 2b10dc45d15150434d7f206264e912eacbff734b (patch) | |
| tree | fc0ec778fbb563a62e573ad1ec76428ce1223c01 /arch/blackfin/mm/init.c | |
| parent | 47ea421af7479b90c481c94826f1c716fcf672cf (diff) | |
| parent | bf664c0a3a42683b78d74aca2d7cfb6ccc2aa2c3 (diff) | |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin: (62 commits)
Blackfin: fix sparseirq/kstat_irqs fallout
Blackfin: fix unused warnings after nommu update
Blackfin: export the last exception cause via debugfs
Blackfin: fix length checking in kgdb_ebin2mem
Blackfin: kgdb: fix up error return values
Blackfin: push access_ok() L1 attribute down
Blackfin: punt duplicated search_exception_table() prototype
Blackfin: add missing access_ok() checks to user functions
Blackfin: convert early_printk EVT init to a loop
Blackfin: document the lsl variants of the L1 allocator
Blackfin: rename Blackfin relocs according to the toolchain
Blackfin: check SIC defines rather than variant names
Blackfin: add SSYNC to set_dma_sg() for descriptor fetching
Blackfin: convert SMP to only use generic time framework
Blackfin: bf548-ezkit/bf537-stamp: add resources for ADXL345/346
Blackfin: override default uClinux MTD addr/size
Blackfin: fix command line corruption with DEBUG_DOUBLEFAULT
Blackfin: fix handling of initial L1 reservation
Blackfin: merge sram init functions
Blackfin: drop unused reserve_pda() function
...
Diffstat (limited to 'arch/blackfin/mm/init.c')
| -rw-r--r-- | arch/blackfin/mm/init.c | 33 |
1 files changed, 12 insertions, 21 deletions
diff --git a/arch/blackfin/mm/init.c b/arch/blackfin/mm/init.c index 9c3629b9a689..014a55abd09a 100644 --- a/arch/blackfin/mm/init.c +++ b/arch/blackfin/mm/init.c | |||
| @@ -52,9 +52,14 @@ static unsigned long empty_bad_page_table; | |||
| 52 | 52 | ||
| 53 | static unsigned long empty_bad_page; | 53 | static unsigned long empty_bad_page; |
| 54 | 54 | ||
| 55 | unsigned long empty_zero_page; | 55 | static unsigned long empty_zero_page; |
| 56 | 56 | ||
| 57 | extern unsigned long exception_stack[NR_CPUS][1024]; | 57 | #ifndef CONFIG_EXCEPTION_L1_SCRATCH |
| 58 | #if defined CONFIG_SYSCALL_TAB_L1 | ||
| 59 | __attribute__((l1_data)) | ||
| 60 | #endif | ||
| 61 | static unsigned long exception_stack[NR_CPUS][1024]; | ||
| 62 | #endif | ||
| 58 | 63 | ||
| 59 | struct blackfin_pda cpu_pda[NR_CPUS]; | 64 | struct blackfin_pda cpu_pda[NR_CPUS]; |
| 60 | EXPORT_SYMBOL(cpu_pda); | 65 | EXPORT_SYMBOL(cpu_pda); |
| @@ -117,19 +122,18 @@ asmlinkage void __init init_pda(void) | |||
| 117 | cpu_pda[0].next = &cpu_pda[1]; | 122 | cpu_pda[0].next = &cpu_pda[1]; |
| 118 | cpu_pda[1].next = &cpu_pda[0]; | 123 | cpu_pda[1].next = &cpu_pda[0]; |
| 119 | 124 | ||
| 125 | #ifdef CONFIG_EXCEPTION_L1_SCRATCH | ||
| 126 | cpu_pda[cpu].ex_stack = (unsigned long *)(L1_SCRATCH_START + \ | ||
| 127 | L1_SCRATCH_LENGTH); | ||
| 128 | #else | ||
| 120 | cpu_pda[cpu].ex_stack = exception_stack[cpu + 1]; | 129 | cpu_pda[cpu].ex_stack = exception_stack[cpu + 1]; |
| 130 | #endif | ||
| 121 | 131 | ||
| 122 | #ifdef CONFIG_SMP | 132 | #ifdef CONFIG_SMP |
| 123 | cpu_pda[cpu].imask = 0x1f; | 133 | cpu_pda[cpu].imask = 0x1f; |
| 124 | #endif | 134 | #endif |
| 125 | } | 135 | } |
| 126 | 136 | ||
| 127 | void __cpuinit reserve_pda(void) | ||
| 128 | { | ||
| 129 | printk(KERN_INFO "PDA for CPU%u reserved at %p\n", smp_processor_id(), | ||
| 130 | &cpu_pda[smp_processor_id()]); | ||
| 131 | } | ||
| 132 | |||
| 133 | void __init mem_init(void) | 137 | void __init mem_init(void) |
| 134 | { | 138 | { |
| 135 | unsigned int codek = 0, datak = 0, initk = 0; | 139 | unsigned int codek = 0, datak = 0, initk = 0; |
| @@ -171,19 +175,6 @@ void __init mem_init(void) | |||
| 171 | initk, codek, datak, DMA_UNCACHED_REGION >> 10, (reservedpages << (PAGE_SHIFT-10))); | 175 | initk, codek, datak, DMA_UNCACHED_REGION >> 10, (reservedpages << (PAGE_SHIFT-10))); |
| 172 | } | 176 | } |
| 173 | 177 | ||
| 174 | static int __init sram_init(void) | ||
| 175 | { | ||
| 176 | /* Initialize the blackfin L1 Memory. */ | ||
| 177 | bfin_sram_init(); | ||
| 178 | |||
| 179 | /* Reserve the PDA space for the boot CPU right after we | ||
| 180 | * initialized the scratch memory allocator. | ||
| 181 | */ | ||
| 182 | reserve_pda(); | ||
| 183 | return 0; | ||
| 184 | } | ||
| 185 | pure_initcall(sram_init); | ||
| 186 | |||
| 187 | static void __init free_init_pages(const char *what, unsigned long begin, unsigned long end) | 178 | static void __init free_init_pages(const char *what, unsigned long begin, unsigned long end) |
| 188 | { | 179 | { |
| 189 | unsigned long addr; | 180 | unsigned long addr; |
