extern void squash_mem_tags(struct tag *tag);
extern void reboot_setup(char *str);
extern int root_mountflags;
-extern void _stext, _text, _etext, __data_start, _edata, _end;
+extern int _stext, _text, _etext, _edata, _end;
unsigned int processor_id;
unsigned int __machine_arch_type;
*/
static struct resource mem_res[] = {
{ "Video RAM", 0, 0, IORESOURCE_MEM },
- { "Kernel text", 0, 0, IORESOURCE_MEM },
+ { "Kernel code", 0, 0, IORESOURCE_MEM },
{ "Kernel data", 0, 0, IORESOURCE_MEM }
};
#define lp2 io_res[2]
static const char *cache_types[16] = {
- "write-through",
- "write-back",
- "write-back",
+ "VIVT write-through",
+ "VIVT write-back",
+ "VIVT write-back",
"undefined 3",
"undefined 4",
"undefined 5",
- "write-back",
- "write-back",
+ "VIVT write-back",
+ "VIVT write-back",
"undefined 8",
"undefined 9",
"undefined 10",
"undefined 11",
"undefined 12",
"undefined 13",
- "write-back",
+ "VIPT write-back",
"undefined 15",
};
unsigned int info = read_cpuid(CPUID_CACHETYPE);
if (info != processor_id) {
- printk("CPU: D %s %s cache\n", cache_is_vivt() ? "VIVT" : "VIPT",
- cache_types[CACHE_TYPE(info)]);
+ printk("CPU: D %s cache\n", cache_types[CACHE_TYPE(info)]);
if (CACHE_S(info)) {
dump_cache("CPU: I cache", CACHE_ISIZE(info));
dump_cache("CPU: D cache", CACHE_DSIZE(info));
} else if ((processor_id & 0x0000f000) == 0x00007000) {
cpu_arch = (processor_id & (1 << 23)) ? CPU_ARCH_ARMv4T : CPU_ARCH_ARMv3;
} else {
- cpu_arch = (processor_id >> 16) & 7;
+ cpu_arch = (processor_id >> 16) & 15;
if (cpu_arch)
cpu_arch += CPU_ARCH_ARMv3;
}
struct resource *res;
int i;
- kernel_code.start = virt_to_phys(&_text);
- kernel_code.end = virt_to_phys(&_etext - 1);
- kernel_data.start = virt_to_phys(&__data_start);
- kernel_data.end = virt_to_phys(&_end - 1);
+ kernel_code.start = __virt_to_phys(init_mm.start_code);
+ kernel_code.end = __virt_to_phys(init_mm.end_code - 1);
+ kernel_data.start = __virt_to_phys(init_mm.end_code);
+ kernel_data.end = __virt_to_phys(init_mm.brk - 1);
for (i = 0; i < mi->nr_banks; i++) {
unsigned long virt_start, virt_end;
* Set up various architecture-specific pointers
*/
init_arch_irq = mdesc->init_irq;
- system_timer = mdesc->timer;
+ init_arch_time = mdesc->init_time;
init_machine = mdesc->init_machine;
#ifdef CONFIG_VT