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");