[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Debian non-x86 kernel arches



On Sun, May 23, 2004 at 12:20:40PM -0500, Troy Benjegerdes wrote:
> The legacy-peecee 16550 uart serial driver probes IO addresses blindly.
> You need the driver built in for IBM pSeries machines, and the G5 gets
> real unhappy when the driver probes nonexistant IO addresses.
> 
> G4's had the same problem, except paulus/benh came up with a nice hack
> to trap the machine-check exception that occured and just print a
> warning.

Ugly patch from SuSE that should fix it.   The real problem here is that
the kernel doesn't have an abstraction for the isa bus and isa drivers
just randomly poke into I/O area.  Fix is expected for 2.7.x.

BTW, Jens did you mean this issue or a problem with the mac serial
driver (pmac_zilog)? That's how I read the initial mail..


--- linux-2.6.0-test11.orig/drivers/serial/8250.c	2003-11-26 20:42:55.000000000 +0000
+++ linux-2.6.0-test11.SuSE/drivers/serial/8250.c	2003-11-29 15:57:50.000000000 +0000
@@ -45,6 +45,10 @@
 #include <linux/serial_core.h>
 #include "8250.h"
 
+#ifdef CONFIG_PPC_MULTIPLATFORM
+#include <asm/processor.h>
+#endif
+
 /*
  * Configuration:
  *   share_irqs - whether we pass SA_SHIRQ to request_irq().  This option
@@ -2008,6 +2044,12 @@ static struct console serial8250_console
 
 static int __init serial8250_console_init(void)
 {
+#ifdef CONFIG_PPC_MULTIPLATFORM
+	if(_machine == _MACH_Pmac) {
+		printk("%s: nothing to do on PowerMac\n",__FUNCTION__);
+		return -ENODEV;
+	}
+#endif
 	serial8250_isa_init_ports();
 	register_console(&serial8250_console);
 	return 0;
@@ -2149,6 +2191,12 @@ static int __init serial8250_init(void)
 {
 	int ret, i;
 
+#ifdef CONFIG_PPC_MULTIPLATFORM
+	if(_machine == _MACH_Pmac) {
+		printk("%s: nothing to do on PowerMac\n",__FUNCTION__);
+		return -ENODEV;
+	}
+#endif
 	printk(KERN_INFO "Serial: 8250/16550 driver $Revision: 1.90 $ "
 		"%d ports, IRQ sharing %sabled\n", (int) UART_NR,
 		share_irqs ? "en" : "dis");



Reply to: