| .. | .. |
|---|
| 11 | 11 | * Copyright (C) 2000, 2001, 2002, 2007 Maciej W. Rozycki |
|---|
| 12 | 12 | */ |
|---|
| 13 | 13 | #include <linux/init.h> |
|---|
| 14 | +#include <linux/cpu.h> |
|---|
| 15 | +#include <linux/delay.h> |
|---|
| 14 | 16 | #include <linux/ioport.h> |
|---|
| 15 | 17 | #include <linux/export.h> |
|---|
| 16 | 18 | #include <linux/screen_info.h> |
|---|
| .. | .. |
|---|
| 154 | 156 | pr_err("initrd start must be page aligned\n"); |
|---|
| 155 | 157 | goto disable; |
|---|
| 156 | 158 | } |
|---|
| 157 | | - if (initrd_start < PAGE_OFFSET) { |
|---|
| 158 | | - pr_err("initrd start < PAGE_OFFSET\n"); |
|---|
| 159 | | - goto disable; |
|---|
| 160 | | - } |
|---|
| 161 | 159 | |
|---|
| 162 | 160 | /* |
|---|
| 163 | 161 | * Sanitize initrd addresses. For example firmware |
|---|
| .. | .. |
|---|
| 169 | 167 | end = __pa(initrd_end); |
|---|
| 170 | 168 | initrd_end = (unsigned long)__va(end); |
|---|
| 171 | 169 | initrd_start = (unsigned long)__va(__pa(initrd_start)); |
|---|
| 170 | + |
|---|
| 171 | + if (initrd_start < PAGE_OFFSET) { |
|---|
| 172 | + pr_err("initrd start < PAGE_OFFSET\n"); |
|---|
| 173 | + goto disable; |
|---|
| 174 | + } |
|---|
| 172 | 175 | |
|---|
| 173 | 176 | ROOT_DEV = Root_RAM0; |
|---|
| 174 | 177 | return PFN_UP(end); |
|---|
| .. | .. |
|---|
| 828 | 831 | } |
|---|
| 829 | 832 | early_param("nocoherentio", setnocoherentio); |
|---|
| 830 | 833 | #endif |
|---|
| 834 | + |
|---|
| 835 | +void __init arch_cpu_finalize_init(void) |
|---|
| 836 | +{ |
|---|
| 837 | + unsigned int cpu = smp_processor_id(); |
|---|
| 838 | + |
|---|
| 839 | + cpu_data[cpu].udelay_val = loops_per_jiffy; |
|---|
| 840 | + check_bugs32(); |
|---|
| 841 | + |
|---|
| 842 | + if (IS_ENABLED(CONFIG_CPU_R4X00_BUGS64)) |
|---|
| 843 | + check_bugs64(); |
|---|
| 844 | +} |
|---|