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;
}
|