public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* reserve legacy io regions on powermac
@ 2004-07-21  9:12 Olaf Hering
  2004-07-21 14:51 ` Benjamin Herrenschmidt
  2004-07-23 16:44 ` Olaf Hering
  0 siblings, 2 replies; 10+ messages in thread
From: Olaf Hering @ 2004-07-21  9:12 UTC (permalink / raw)
  To: linux-kernel, Paul Mackeras, Benjamin Herrenschmidt; +Cc: Olaf Hering


Anton pointed this out.

ppc32 can boot one single binary on prep, chrp and pmac boards.
pmac has no legacy io, probing for PC style legacy hardware leads to a
hard crash.
Several patches exist to prevent serial, floppy, ps2, parport and other
drivers from probing these io ports.
I think the simplest fix for 2.6 is a request_region of the problematic
areas.
PCMCIA is still missing.
I found that partport_pc.c pokes at varios ports, without claiming the
ports first. Should this be fixed?
smsc_check(), winbond_check(), winbond_check2()


If this approach is acceptable, ppc64 needs something similar.
Maybe we can put that into generic code, hidden inside CONFIG_PPC_PMAC?


--- linux-2.6.8-rc2/arch/ppc/platforms/pmac_pci.c	2004-06-16 07:19:23.000000000 +0200
+++ linux-2.6.8-rc2-legacy/arch/ppc/platforms/pmac_pci.c	2004-07-21 10:46:50.000000000 +0200
@@ -883,11 +883,59 @@ pcibios_fixup_OF_interrupts(void)
 	}
 }
 
+#define I8042_DATA_REG 0x60UL
+#define I8250_2_DATA_REG 0x2e0UL
+#define I8250_3_DATA_REG 0x3e0UL
+
+#define PARPORT_278_DATA_REG 0x278UL
+#define PARPORT_371_DATA_REG 0x371UL
+#define PARPORT_378_DATA_REG 0x378UL
+#define PARPORT_3BC_DATA_REG 0x3bcUL
+#define PARPORT_678_DATA_REG 0x678UL
+#define PARPORT_778_DATA_REG 0x778UL
+#define PARPORT_7BC_DATA_REG 0x7bcUL
+
+#define ISAPNP_WRITE_213_DATA_REG 0x213UL
+#define ISAPNP_WRITE_233_DATA_REG 0x233UL
+#define ISAPNP_WRITE_253_DATA_REG 0x253UL
+#define ISAPNP_WRITE_273_DATA_REG 0x273UL
+#define ISAPNP_WRITE_393_DATA_REG 0x393UL
+#define ISAPNP_WRITE_3B3_DATA_REG 0x3b3UL
+#define ISAPNP_WRITE_3D3_DATA_REG 0x3d3UL
+#define ISAPNP_WRITE_3F3_DATA_REG 0x3f3UL
+#define ISAPNP_WRITE_A19_DATA_REG 0xa19UL
+
+static void __init
+pmac_request_regions(void)
+{
+	printk("%s(%u)\n",__FUNCTION__,__LINE__);
+	request_region(I8042_DATA_REG, 16, "reserved (no i8042)");
+	request_region(I8250_2_DATA_REG, 32, "reserved (no i8250)");
+	request_region(I8250_3_DATA_REG, 32, "reserved (no i8250)");
+	request_region(PARPORT_278_DATA_REG, 8, "reserved (no parport");
+	request_region(PARPORT_371_DATA_REG, 7, "reserved (no parport");
+	request_region(PARPORT_378_DATA_REG, 8, "reserved (no parport");
+	request_region(PARPORT_3BC_DATA_REG, 8, "reserved (no parport");
+	request_region(PARPORT_678_DATA_REG, 8, "reserved (no parport");
+	request_region(PARPORT_778_DATA_REG, 8, "reserved (no parport");
+	request_region(PARPORT_7BC_DATA_REG, 8, "reserved (no parport");
+	request_region(ISAPNP_WRITE_A19_DATA_REG, 1, "reserved (no isa-pnp)");
+	request_region(ISAPNP_WRITE_213_DATA_REG, 1, "reserved (no isa-pnp)");
+	request_region(ISAPNP_WRITE_233_DATA_REG, 1, "reserved (no isa-pnp)");
+	request_region(ISAPNP_WRITE_253_DATA_REG, 1, "reserved (no isa-pnp)");
+	request_region(ISAPNP_WRITE_273_DATA_REG, 1, "reserved (no isa-pnp)");
+	request_region(ISAPNP_WRITE_393_DATA_REG, 1, "reserved (no isa-pnp)");
+	request_region(ISAPNP_WRITE_3B3_DATA_REG, 1, "reserved (no isa-pnp)");
+	request_region(ISAPNP_WRITE_3D3_DATA_REG, 1, "reserved (no isa-pnp)");
+	request_region(ISAPNP_WRITE_3F3_DATA_REG, 1, "reserved (no isa-pnp)");
+}
+
 void __init
 pmac_pcibios_fixup(void)
 {
 	/* Fixup interrupts according to OF tree */
 	pcibios_fixup_OF_interrupts();
+	pmac_request_regions();
 }
 
 int __pmac

-- 
USB is for mice, FireWire is for men!

sUse lINUX ag, nÜRNBERG

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: reserve legacy io regions on powermac
  2004-07-21  9:12 Olaf Hering
@ 2004-07-21 14:51 ` Benjamin Herrenschmidt
  2004-07-21 14:56   ` Olaf Hering
                     ` (2 more replies)
  2004-07-23 16:44 ` Olaf Hering
  1 sibling, 3 replies; 10+ messages in thread
From: Benjamin Herrenschmidt @ 2004-07-21 14:51 UTC (permalink / raw)
  To: Olaf Hering; +Cc: Linux Kernel list, Paul Mackeras

On Wed, 2004-07-21 at 05:12, Olaf Hering wrote:
> Anton pointed this out.
> 
> ppc32 can boot one single binary on prep, chrp and pmac boards.
> pmac has no legacy io, probing for PC style legacy hardware leads to a
> hard crash.
> Several patches exist to prevent serial, floppy, ps2, parport and other
> drivers from probing these io ports.
> I think the simplest fix for 2.6 is a request_region of the problematic
> areas.
> PCMCIA is still missing.
> I found that partport_pc.c pokes at varios ports, without claiming the
> ports first. Should this be fixed?
> smsc_check(), winbond_check(), winbond_check2()

Note that this is still all workarounds... Nothing prevents you (and some
people actually do that) to put a PCI card with legacy serial ports on it
inside a pmac....

Ben.



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: reserve legacy io regions on powermac
  2004-07-21 14:51 ` Benjamin Herrenschmidt
@ 2004-07-21 14:56   ` Olaf Hering
  2004-07-21 15:48     ` Geert Uytterhoeven
  2004-07-21 20:07   ` Jesse Barnes
  2004-07-23 14:21   ` Olaf Hering
  2 siblings, 1 reply; 10+ messages in thread
From: Olaf Hering @ 2004-07-21 14:56 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: Linux Kernel list, Paul Mackeras

 On Wed, Jul 21, Benjamin Herrenschmidt wrote:

> On Wed, 2004-07-21 at 05:12, Olaf Hering wrote:
> > Anton pointed this out.
> > 
> > ppc32 can boot one single binary on prep, chrp and pmac boards.
> > pmac has no legacy io, probing for PC style legacy hardware leads to a
> > hard crash.
> > Several patches exist to prevent serial, floppy, ps2, parport and other
> > drivers from probing these io ports.
> > I think the simplest fix for 2.6 is a request_region of the problematic
> > areas.
> > PCMCIA is still missing.
> > I found that partport_pc.c pokes at varios ports, without claiming the
> > ports first. Should this be fixed?
> > smsc_check(), winbond_check(), winbond_check2()
> 
> Note that this is still all workarounds... Nothing prevents you (and some
> people actually do that) to put a PCI card with legacy serial ports on it
> inside a pmac....

Sure, but will that use the same io ports? I dont have one to verify it.
How does it look on a pccard modem?

-- 
USB is for mice, FireWire is for men!

sUse lINUX ag, nÜRNBERG

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: reserve legacy io regions on powermac
  2004-07-21 14:56   ` Olaf Hering
@ 2004-07-21 15:48     ` Geert Uytterhoeven
  2004-07-21 17:08       ` Segher Boessenkool
  0 siblings, 1 reply; 10+ messages in thread
From: Geert Uytterhoeven @ 2004-07-21 15:48 UTC (permalink / raw)
  To: Olaf Hering; +Cc: Benjamin Herrenschmidt, Linux Kernel list, Paul Mackeras

On Wed, 21 Jul 2004, Olaf Hering wrote:
>  On Wed, Jul 21, Benjamin Herrenschmidt wrote:
> > On Wed, 2004-07-21 at 05:12, Olaf Hering wrote:
> > > I think the simplest fix for 2.6 is a request_region of the problematic
> > > areas.
> >
> > Note that this is still all workarounds... Nothing prevents you (and some
> > people actually do that) to put a PCI card with legacy serial ports on it
> > inside a pmac....
>
> Sure, but will that use the same io ports? I dont have one to verify it.

If it's a `clean' PCI card, it will use the PCI BARs, and there's no problem.

> How does it look on a pccard modem?

PCMCIA is hidden ISA. You can e.g. put the PCMCIA CD-ROM drive that came with
my Vaio (it behaves like a legacy second IDE card) in a Mac laptop.

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: reserve legacy io regions on powermac
  2004-07-21 15:48     ` Geert Uytterhoeven
@ 2004-07-21 17:08       ` Segher Boessenkool
  0 siblings, 0 replies; 10+ messages in thread
From: Segher Boessenkool @ 2004-07-21 17:08 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Olaf Hering, Linux Kernel list, Paul Mackeras,
	Benjamin Herrenschmidt

>>>> I think the simplest fix for 2.6 is a request_region of the 
>>>> problematic
>>>> areas.
>>>
>>> Note that this is still all workarounds... Nothing prevents you (and 
>>> some
>>> people actually do that) to put a PCI card with legacy serial ports 
>>> on it
>>> inside a pmac....
>>
>> Sure, but will that use the same io ports? I dont have one to verify 
>> it.
>
> If it's a `clean' PCI card, it will use the PCI BARs, and there's no 
> problem.

There is nothing that prevents the OF to allocate addresses in the 
"legacy"
range to the PCI cards.  In fact, the normal strategy is to allocate
starting at zero, and going upward, so 0x60 (which is one of the 
"disallowed"
addresses in Olaf's patch) is pretty easy to hit.


Segher


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: reserve legacy io regions on powermac
  2004-07-21 14:51 ` Benjamin Herrenschmidt
  2004-07-21 14:56   ` Olaf Hering
@ 2004-07-21 20:07   ` Jesse Barnes
  2004-07-22  8:21     ` Segher Boessenkool
  2004-07-23 14:21   ` Olaf Hering
  2 siblings, 1 reply; 10+ messages in thread
From: Jesse Barnes @ 2004-07-21 20:07 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: Olaf Hering, Linux Kernel list, Paul Mackeras

On Wednesday, July 21, 2004 10:51 am, Benjamin Herrenschmidt wrote:
> On Wed, 2004-07-21 at 05:12, Olaf Hering wrote:
> > Anton pointed this out.
> >
> > ppc32 can boot one single binary on prep, chrp and pmac boards.
> > pmac has no legacy io, probing for PC style legacy hardware leads to a
> > hard crash.
> > Several patches exist to prevent serial, floppy, ps2, parport and other
> > drivers from probing these io ports.
> > I think the simplest fix for 2.6 is a request_region of the problematic
> > areas.
> > PCMCIA is still missing.
> > I found that partport_pc.c pokes at varios ports, without claiming the
> > ports first. Should this be fixed?
> > smsc_check(), winbond_check(), winbond_check2()
>
> Note that this is still all workarounds... Nothing prevents you (and some
> people actually do that) to put a PCI card with legacy serial ports on it
> inside a pmac....

Can you actually support this?  Will it work?

As for the patch, why not just reserve the first 64k of address space 
altogether instead of the individual ports?

Jesse

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: reserve legacy io regions on powermac
@ 2004-07-22  0:59 Albert Cahalan
  0 siblings, 0 replies; 10+ messages in thread
From: Albert Cahalan @ 2004-07-22  0:59 UTC (permalink / raw)
  To: linux-kernel mailing list; +Cc: olh, benh, geert

I think a great many drivers could be cleaned up
by making IO fail if the proper IO address cookies
haven't been obtained. This might be done with
byteswapping, XOR, addition, putting a checksum in
the top 2 bytes of a 64-bit cookie, or simply
tracking where an ioremap has been done. Then the
read and write operations can check this.

In general, make IO fail if a driver doesn't play
by the rules.

Perhaps some of the low memory-mapped stuff on
x86 could be moved.



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: reserve legacy io regions on powermac
  2004-07-21 20:07   ` Jesse Barnes
@ 2004-07-22  8:21     ` Segher Boessenkool
  0 siblings, 0 replies; 10+ messages in thread
From: Segher Boessenkool @ 2004-07-22  8:21 UTC (permalink / raw)
  To: Jesse Barnes
  Cc: Olaf Hering, Linux Kernel list, Paul Mackeras,
	Benjamin Herrenschmidt

>> Note that this is still all workarounds... Nothing prevents you (and 
>> some
>> people actually do that) to put a PCI card with legacy serial ports 
>> on it
>> inside a pmac....
>
> Can you actually support this?  Will it work?

It works fine with Darwin, so it should work with Linux, too...

I don't know if Linux likes to have a device sit at I/O address
0x0 -- this might give some problems.


Segher


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: reserve legacy io regions on powermac
  2004-07-21 14:51 ` Benjamin Herrenschmidt
  2004-07-21 14:56   ` Olaf Hering
  2004-07-21 20:07   ` Jesse Barnes
@ 2004-07-23 14:21   ` Olaf Hering
  2 siblings, 0 replies; 10+ messages in thread
From: Olaf Hering @ 2004-07-23 14:21 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: Linux Kernel list, Paul Mackeras

 On Wed, Jul 21, Benjamin Herrenschmidt wrote:

> Note that this is still all workarounds... Nothing prevents you (and some
> people actually do that) to put a PCI card with legacy serial ports on it
> inside a pmac....

I just tried it on a powerbook pismo, its a pccard combo card, network
and modem. Unmodified 2.6.8-rc2 kernel.

putting this into pmac_pcibios_fixup() will break pcmcia.

request_region(0x0UL, 0x1000UL, "reserved legacy io");


0001:01:1a.0 CardBus bridge: Texas Instruments PCI1211
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
        Latency: 168, cache line size 08
        Interrupt: pin A routed to IRQ 58
        Region 0: Memory at a0000000 (32-bit, non-prefetchable)
        Bus: primary=01, secondary=02, subordinate=05, sec-latency=176
        Memory window 0: 90000000-9ffff000 (prefetchable)
        Memory window 1: f3000000-f31ff000
        I/O window 0: 00001000-00008fff
        I/O window 1: 00009000-000090ff
        BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset+ 16bInt+ PostWrite+
        16-bit legacy interface ports at 0001


Linux Kernel Card Services
  options:  [pci] [cardbus] [pm]
Yenta: CardBus bridge found at 0001:01:1a.0 [0000:0000]
Yenta: Enabling burst memory read transactions
Yenta: Using CSCINT to route CSC interrupts to PCI
Yenta: Routing CardBus interrupts to PCI
Yenta TI: socket 0001:01:1a.0, mfunc 0x00000002, devctl 0x60
Yenta: ISA IRQ mask 0x0000, PCI irq 58
Socket status: 30000006

cs: memory probe 0x0c0000-0x0fffff: excluding 0xc0000-0xfffff
cs: memory probe 0x60000000-0x60ffffff: excluding 0x60000000-0x60ffffff
cs: memory probe 0xa0000000-0xa0ffffff: excluding 0xa0000000-0xa00fffff
Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing disabled
IN from bad port 3f9 at cdc1b030
IN from bad port 3f9 at cdc1b030
IN from bad port 3f9 at cdc1b030
IN from bad port 2f9 at cdc1b030
IN from bad port 2f9 at cdc1b030
IN from bad port 2f9 at cdc1b030
IN from bad port 3e9 at cdc1b030
IN from bad port 3e9 at cdc1b030
IN from bad port 3e9 at cdc1b030
IN from bad port 2e9 at cdc1b030
IN from bad port 2e9 at cdc1b030
IN from bad port 2e9 at cdc1b030
eth%d: autonegotiation failed; using 10mbs
eth%d: MII selected
eth%d: media 10BaseT, silicon revision 5
eth1: Compaq: port 0x300, irq 58, hwaddr 00:08:C7:64:68:7B
ttyS3 at I/O 0x2e8 (irq = 58) is a 16550A

Module                  Size  Used by
serial_cs              11484  1 
8250                   24036  1 serial_cs
serial_core            26752  1 8250
xirc2ps_cs             29904  1 
sg                     38756  0 
st                     43004  0 
sd_mod                 22176  0 
sr_mod                 20068  0 
scsi_mod              139276  4 sg,st,sd_mod,sr_mod
ohci1394               40036  0 
ieee1394              125128  1 ohci1394
ohci_hcd               25476  0 
sungem                 34788  0 
crc32                   4736  1 sungem
sungem_phy              9856  1 sungem
ds                     22916  4 serial_cs,xirc2ps_cs
yenta_socket           22688  1 
pcmcia_core            73876  4 serial_cs,xirc2ps_cs,ds,yenta_socket

 /proc/ioports 
00000000-007fffff : /pci@f2000000
  000002e8-000002ef : pcmcia_socket0
    000002e8-000002ef : serial
  00000300-0000030f : pcmcia_socket0
  00001000-00008fff : PCI CardBus #02
  00009000-000090ff : PCI CardBus #02
00802000-01001fff : /pci@f0000000
  00802400-008024ff : 0000:00:10.0
ff7fe000-ffffdfff : /pci@f4000000
 /proc/iomem
80000000-afffffff : /pci@f2000000
  80000000-8007ffff : 0001:01:17.0
    80000034-80000034 : media-bay
    80008a00-80008aff : ide-pmac (dma)
    80008b00-80008bff : ide-pmac (dma)
    80008c00-80008cff : ide-pmac (dma)
    80016000-80017fff : via-pmu
    8001f000-8001ffff : ide-pmac (ports)
    80020000-80020fff : ide-pmac (ports)
    80040000-8007ffff : interrupt-controller
  90000000-9fffffff : PCI CardBus #02
  a0000000-a0000fff : 0001:01:1a.0
    a0000000-a0000fff : yenta_socket
  a0001000-a0001fff : 0001:01:19.0
    a0001000-a0001fff : ohci_hcd
  a0002000-a0002fff : 0001:01:18.0
    a0002000-a0002fff : ohci_hcd
  a0100000-a0100fff : pcmcia_socket0
  a0101000-a0101fff : pcmcia_socket0
b0000000-bfffffff : /pci@f0000000
  b0000000-b0003fff : 0000:00:10.0
    b0000000-b0003fff : aty128fb MMIO
  b4000000-b7ffffff : 0000:00:10.0
    b4000000-b7ffffff : aty128fb FB
f1000000-f1ffffff : /pci@f0000000
f3000000-f3ffffff : /pci@f2000000
  f3000000-f31fffff : PCI CardBus #02
f5000000-f5ffffff : /pci@f4000000
  f5000000-f5000fff : 0002:06:0e.0
    f5000000-f50007ff : ohci1394
  f5200000-f53fffff : 0002:06:0f.0
    f5200000-f53fffff : sungem
f8000000-f8ffffff : uni-n


-- 
USB is for mice, FireWire is for men!

sUse lINUX ag, nÜRNBERG

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: reserve legacy io regions on powermac
  2004-07-21  9:12 Olaf Hering
  2004-07-21 14:51 ` Benjamin Herrenschmidt
@ 2004-07-23 16:44 ` Olaf Hering
  1 sibling, 0 replies; 10+ messages in thread
From: Olaf Hering @ 2004-07-23 16:44 UTC (permalink / raw)
  To: linux-kernel, Paul Mackeras, Benjamin Herrenschmidt; +Cc: Olaf Hering

 On Wed, Jul 21, Olaf Hering wrote:

> 
> Anton pointed this out.
> 
> ppc32 can boot one single binary on prep, chrp and pmac boards.
> pmac has no legacy io, probing for PC style legacy hardware leads to a
> hard crash.
> Several patches exist to prevent serial, floppy, ps2, parport and other
> drivers from probing these io ports.
> I think the simplest fix for 2.6 is a request_region of the problematic
> areas.

This one works for me with serial console and a pccard modem.


diff -purN linux-2.6.7/arch/ppc/kernel/setup.c linux-2.6.8-rc2/arch/ppc/kernel/setup.c
--- linux-2.6.7/arch/ppc/kernel/setup.c	2004-07-23 18:30:32.983641453 +0200
+++ linux-2.6.8-rc2/arch/ppc/kernel/setup.c	2004-07-23 18:25:40.371381030 +0200
@@ -477,6 +477,8 @@ platform_init(unsigned long r3, unsigned
 
 #ifdef CONFIG_SERIAL_CORE_CONSOLE
 extern char *of_stdout_device;
+int do_not_try_pc_legacy_8250_console;
+EXPORT_SYMBOL(do_not_try_pc_legacy_8250_console);
 
 static int __init set_preferred_console(void)
 {
@@ -518,10 +520,14 @@ static int __init set_preferred_console(
 					return -ENODEV;
 			}
 		}
-	} else if (strcmp(name, "ch-a") == 0)
+	} else if (strcmp(name, "ch-a") == 0) {
+		do_not_try_pc_legacy_8250_console = 1;
 		offset = 0;
-	else if (strcmp(name, "ch-b") == 0)
+	}
+	else if (strcmp(name, "ch-b") == 0) {
+		do_not_try_pc_legacy_8250_console = 1;
 		offset = 1;
+	}
 	else
 		return -ENODEV;
 	return add_preferred_console("ttyS", offset, NULL);
diff -purN linux-2.6.7/arch/ppc/platforms/pmac_pci.c linux-2.6.8-rc2/arch/ppc/platforms/pmac_pci.c
--- linux-2.6.7/arch/ppc/platforms/pmac_pci.c	2004-06-16 07:19:23.000000000 +0200
+++ linux-2.6.8-rc2/arch/ppc/platforms/pmac_pci.c	2004-07-23 16:40:18.092808076 +0200
@@ -888,6 +888,9 @@ pmac_pcibios_fixup(void)
 {
 	/* Fixup interrupts according to OF tree */
 	pcibios_fixup_OF_interrupts();
+	request_region(0x0UL, 0x2e0UL, "reserved legacy io");
+	request_region(0x300UL, 0xe0UL, "reserved legacy io");
+	request_region(0x400UL, 0x10000UL-0x400UL, "reserved legacy io");
 }
 
 int __pmac
diff -purN linux-2.6.7/drivers/serial/8250.c linux-2.6.8-rc2/drivers/serial/8250.c
--- linux-2.6.7/drivers/serial/8250.c	2004-07-23 18:30:39.200571363 +0200
+++ linux-2.6.8-rc2/drivers/serial/8250.c	2004-07-23 18:22:22.607426922 +0200
@@ -36,6 +36,10 @@
 #include <asm/io.h>
 #include <asm/irq.h>
 
+#ifndef NO_PC_LEGACY_SERIAL_8250_CONSOLE
+#define do_not_try_pc_legacy_8250_console (0)
+#endif
+
 #if defined(CONFIG_SERIAL_8250_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
 #define SUPPORT_SYSRQ
 #endif
@@ -2017,6 +2021,10 @@ static struct console serial8250_console
 
 static int __init serial8250_console_init(void)
 {
+	if(do_not_try_pc_legacy_8250_console) {
+		printk("%s: nothing to do on this board\n",__FUNCTION__);
+		return -ENODEV;
+	}
 	serial8250_isa_init_ports();
 	register_console(&serial8250_console);
 	return 0;
@@ -2166,6 +2174,11 @@ static int __init serial8250_init(void)
 {
 	int ret, i;
 
+	if(do_not_try_pc_legacy_8250_console) {
+		printk("%s: nothing to do on this board\n",__FUNCTION__);
+		return -ENODEV;
+	}
+
 	printk(KERN_INFO "Serial: 8250/16550 driver $Revision: 1.90 $ "
 		"%d ports, IRQ sharing %sabled\n", (int) UART_NR,
 		share_irqs ? "en" : "dis");
diff -purN linux-2.6.7/include/asm-ppc/io.h linux-2.6.8-rc2/include/asm-ppc/io.h
--- linux-2.6.7/include/asm-ppc/io.h	2004-07-23 18:30:41.815545307 +0200
+++ linux-2.6.8-rc2/include/asm-ppc/io.h	2004-07-23 18:21:56.999578333 +0200
@@ -399,6 +399,10 @@ static inline int isa_check_signature(un
 	return 0;
 }
 
+#define NO_PC_LEGACY_SERIAL_8250_CONSOLE 1
+extern int do_not_try_pc_legacy_8250_console;
+
+
 #endif /* _PPC_IO_H */
 
 #ifdef CONFIG_8260_PCI9

-- 
USB is for mice, FireWire is for men!

sUse lINUX ag, nÜRNBERG

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2004-07-23 16:48 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-07-22  0:59 reserve legacy io regions on powermac Albert Cahalan
  -- strict thread matches above, loose matches on Subject: below --
2004-07-21  9:12 Olaf Hering
2004-07-21 14:51 ` Benjamin Herrenschmidt
2004-07-21 14:56   ` Olaf Hering
2004-07-21 15:48     ` Geert Uytterhoeven
2004-07-21 17:08       ` Segher Boessenkool
2004-07-21 20:07   ` Jesse Barnes
2004-07-22  8:21     ` Segher Boessenkool
2004-07-23 14:21   ` Olaf Hering
2004-07-23 16:44 ` Olaf Hering

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox