[Linux-ia64] [PATCH] set ar.k0 on APs

From: Bjorn Helgaas <bjorn_helgaas_at_hp.com>
Date: 2002-04-02 09:54:20
We currently set ar.k0 on the BP, but not on the APs.  The following
patch does it for APs as well.

Apparently Intel firmware sets ar.k0, but HP firmware doesn't.
If the kernel doesn't set ar.k0, X won't start up on APs because
it uses ar.k0 to access I/O port space.
-- 
Bjorn Helgaas - bjorn_helgaas@hp.com
Linux Systems Operation R&D
Hewlett-Packard


diff -u -r linux-2.4.18-ia64-020226-orig/arch/ia64/kernel/smpboot.c linux-2.4.18-ia64-020226/arch/ia64/kernel/smpboot.c
--- linux-2.4.18-ia64-020226-orig/arch/ia64/kernel/smpboot.c	Mon Apr  1 16:43:58 2002
+++ linux-2.4.18-ia64-020226/arch/ia64/kernel/smpboot.c	Mon Apr  1 16:44:51 2002
@@ -68,6 +68,7 @@
 
 extern void __init calibrate_delay(void);
 extern void start_ap(void);
+extern unsigned long ia64_iobase;
 
 int cpucount;
 
@@ -343,6 +344,11 @@
 	 * Get our bogomips.
 	 */
 	ia64_init_itm();
+
+	/*
+	 * Set I/O port base per CPU
+	 */
+	ia64_set_kr(IA64_KR_IO_BASE, ia64_iobase & ~PAGE_OFFSET);
 
 #ifdef CONFIG_IA64_MCA
 	ia64_mca_cmc_vector_setup();	/* Setup vector on AP & enable */
Received on Mon Apr 01 15:52:13 2002

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:07 EST