From: James S. <jsi...@us...> - 2002-04-24 18:56:57
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/ia64/kernel In directory usw-pr-cvs1:/tmp/cvs-serv8328/linux/arch/ia64/kernel Modified Files: setup.c traps.c Log Message: Synced to 2.5.9. Note some of the fb changes went into 2.5.9. Yeah :-) Index: setup.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/ia64/kernel/setup.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- setup.c 22 Mar 2002 20:13:57 -0000 1.4 +++ setup.c 24 Apr 2002 18:56:50 -0000 1.5 @@ -19,6 +19,7 @@ #include <linux/config.h> #include <linux/init.h> +#include <linux/acpi.h> #include <linux/bootmem.h> #include <linux/delay.h> #include <linux/kernel.h> @@ -29,7 +30,6 @@ #include <linux/threads.h> #include <linux/tty.h> -#include <asm/acpi-ext.h> #include <asm/ia32.h> #include <asm/page.h> #include <asm/machvec.h> @@ -53,7 +53,10 @@ extern char _end; +#ifdef CONFIG_SMP unsigned long __per_cpu_offset[NR_CPUS]; +#endif + struct cpuinfo_ia64 cpu_info __per_cpu_data; unsigned long ia64_phys_stacked_size_p8; @@ -281,6 +284,7 @@ setup_arch (char **cmdline_p) { extern unsigned long ia64_iobase; + unsigned long phys_iobase; unw_init(); @@ -313,24 +317,23 @@ #endif /* - * Set `iobase' to the appropriate address in region 6 - * (uncached access range) + * Set `iobase' to the appropriate address in region 6 (uncached access range). * - * The EFI memory map is the "prefered" location to get the I/O port - * space base, rather the relying on AR.KR0. This should become more - * clear in future SAL specs. We'll fall back to getting it out of - * AR.KR0 if no appropriate entry is found in the memory map. + * The EFI memory map is the "preferred" location to get the I/O port space base, + * rather the relying on AR.KR0. This should become more clear in future SAL + * specs. We'll fall back to getting it out of AR.KR0 if no appropriate entry is + * found in the memory map. */ - ia64_iobase = efi_get_iobase(); - if (ia64_iobase) + phys_iobase = efi_get_iobase(); + if (phys_iobase) /* set AR.KR0 since this is all we use it for anyway */ - ia64_set_kr(IA64_KR_IO_BASE, ia64_iobase); + ia64_set_kr(IA64_KR_IO_BASE, phys_iobase); else { - ia64_iobase = ia64_get_kr(IA64_KR_IO_BASE); + phys_iobase = ia64_get_kr(IA64_KR_IO_BASE); printk("No I/O port range found in EFI memory map, falling back to AR.KR0\n"); - printk("I/O port base = 0x%lx\n", ia64_iobase); + printk("I/O port base = 0x%lx\n", phys_iobase); } - ia64_iobase = __IA64_UNCACHED_OFFSET | (ia64_iobase & ~PAGE_OFFSET); + ia64_iobase = (unsigned long) ioremap(phys_iobase, 0); #ifdef CONFIG_SMP cpu_physical_id(0) = hard_smp_processor_id(); @@ -338,13 +341,9 @@ cpu_init(); /* initialize the bootstrap CPU */ - if (efi.acpi20) { - /* Parse the ACPI 2.0 tables */ - acpi20_parse(efi.acpi20); - } else if (efi.acpi) { - /* Parse the ACPI tables */ - acpi_parse(efi.acpi); - } +#ifdef CONFIG_ACPI_BOOT + acpi_boot_init(*cmdline_p); +#endif #ifdef CONFIG_IA64_MCA /* enable IA-64 Machine Check Abort Handling */ @@ -513,20 +512,25 @@ void cpu_init (void) { - extern char __per_cpu_start[], __phys_per_cpu_start[], __per_cpu_end[]; + extern char __per_cpu_start[], __phys_per_cpu_start[]; extern void __init ia64_mmu_init (void *); unsigned long num_phys_stacked; pal_vm_info_2_u_t vmi; unsigned int max_ctx; struct cpuinfo_ia64 *my_cpu_info; void *my_cpu_data; + +#ifdef CONFIG_SMP + extern char __per_cpu_end[]; int cpu = smp_processor_id(); my_cpu_data = alloc_bootmem_pages(__per_cpu_end - __per_cpu_start); memcpy(my_cpu_data, __phys_per_cpu_start, __per_cpu_end - __per_cpu_start); - __per_cpu_offset[cpu] = (char *) my_cpu_data - __per_cpu_start; - + my_cpu_info = my_cpu_data + ((char *) &cpu_info - __per_cpu_start); +#else + my_cpu_data = __phys_per_cpu_start; +#endif my_cpu_info = my_cpu_data + ((char *) &cpu_info - __per_cpu_start); /* Index: traps.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/ia64/kernel/traps.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- traps.c 22 Mar 2002 20:13:57 -0000 1.2 +++ traps.c 24 Apr 2002 18:56:50 -0000 1.3 @@ -211,7 +211,8 @@ { struct pt_regs *regs = (struct pt_regs *) &stack; - printk("<sc%ld(%lx,%lx,%lx,%lx)>\n", regs->r15, arg0, arg1, arg2, arg3); + printk("%s(%d): <sc%ld(%lx,%lx,%lx,%lx)>\n", current->comm, current->pid, + regs->r15, arg0, arg1, arg2, arg3); return -ENOSYS; } |