[IA64] Altix: ioremap vga_console_iobase
authorJohn Keller <jpk@sgi.com>
Tue, 20 Mar 2007 18:50:10 +0000 (13:50 -0500)
committerTony Luck <tony.luck@intel.com>
Tue, 20 Mar 2007 20:49:53 +0000 (13:49 -0700)
When booting an SN system without specifing a console
(i.e., no "console=" on boot line), the system will hang during
boot at the point where /sbin/init is run.

The problem is that vga_console_iobase is not converted to a
virtual address before storing in io_space[0].mmio_base.
The conversion was happening in sn_scan_pcdp(), but not in
setup_vga_console().

Signed-off-by: John Keller <jpk@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/sn/kernel/setup.c

index bd5373d593e1034a3999c94ba2529f3c94087c36..a9bed5ca2ed8a566617434d08e96d91aff4c5ee9 100644 (file)
@@ -348,8 +348,7 @@ sn_scan_pcdp(void)
                        continue;       /* not PCI interconnect */
 
                if (if_pci.translation & PCDP_PCI_TRANS_IOPORT)
-                       vga_console_iobase =
-                               if_pci.ioport_tra | __IA64_UNCACHED_OFFSET;
+                       vga_console_iobase = if_pci.ioport_tra;
 
                if (if_pci.translation & PCDP_PCI_TRANS_MMIO)
                        vga_console_membase =
@@ -429,7 +428,8 @@ void __init sn_setup(char **cmdline_p)
         *      bus containing the VGA console.
         */
        if (vga_console_iobase) {
-               io_space[0].mmio_base = vga_console_iobase;
+               io_space[0].mmio_base =
+                       (unsigned long) ioremap(vga_console_iobase, 0);
                io_space[0].sparse = 0;
        }