[parisc-linux] Turn off CONFIG_PCI
Helge Deller
deller@gmx.de
Sat, 18 Aug 2001 21:37:06 +0200
Hi Matthew,
I tested your patch sucessfully on my c3k and my 715/64.
I've only added a small security check to setup.c to prevent PA2.x machines
from booting without CONFIG_PCI and to print a small panic-message
at bootup instead of just HPMC'ing.
Please commit if nobody else complains,
Greetings,
Helge
Index: linux/arch/parisc/kernel/setup.c
===================================================================
RCS file: /home/cvs/parisc/linux/arch/parisc/kernel/setup.c,v
retrieving revision 1.88
diff -u -r1.88 setup.c
--- setup.c 2001/08/16 20:57:18 1.88
+++ setup.c 2001/08/18 19:21:47
@@ -401,6 +401,18 @@
cache_init();
paging_init();
+#ifndef CONFIG_PCI
+ /* security check: PA2.x processor machines won't detect their main
+ * PCI-based devices (screen, serial, SCSI, ...), so it's better to
+ * stop them from booting right here. If we would continue we would
+ * only get a HPMC without any other information. */
+ if (boot_cpu_data.cpu_type >= pcxu) { /* >=PA8000 (PCX-U) CPU ? */
+ /* switch back to PDC console for panic */
+ pdc_console_restart();
+ panic("This system will not boot without PCI-support in the kernel !\n");
+ }
+#endif
+
#ifdef CONFIG_CHASSIS_LCD_LED
/* initialize the LCD/LED after boot_cpu_data is available ! */
led_init(); /* LCD/LED initialization */
Index: linux/drivers/char/serial.c
===================================================================
RCS file: /home/cvs/parisc/linux/drivers/char/serial.c,v
retrieving revision 1.25
diff -u -r1.25 serial.c
--- serial.c 2001/08/17 06:10:06 1.25
+++ serial.c 2001/08/18 19:21:56
@@ -414,11 +414,7 @@
return readb((unsigned long) info->iomem_base +
(offset<<info->iomem_reg_shift));
default:
-#if defined(CONFIG_PCI) || defined(CONFIG_ISA)
return inb(info->port + offset);
-#else
- BUG();
-#endif
}
}
@@ -437,11 +433,7 @@
(offset<<info->iomem_reg_shift));
break;
default:
-#if defined(CONFIG_PCI) || defined(CONFIG_ISA)
outb(value, info->port+offset);
-#else
- BUG();
-#endif
}
}
Index: linux/include/asm-parisc/io.h
===================================================================
RCS file: /home/cvs/parisc/linux/include/asm-parisc/io.h,v
retrieving revision 1.22
diff -u -r1.22 io.h
--- io.h 2001/07/15 22:30:29 1.22
+++ io.h 2001/08/18 19:22:08
@@ -43,9 +43,6 @@
#endif /* USE_HPPA_IOREMAP */
#if defined(CONFIG_PCI) || defined(CONFIG_ISA)
-/*
- * So we get clear link errors
- */
extern unsigned char inb(unsigned long addr);
extern unsigned short inw(unsigned long addr);
extern unsigned int inl(unsigned long addr);
@@ -53,7 +50,28 @@
extern void outb(unsigned char b, unsigned long addr);
extern void outw(unsigned short b, unsigned long addr);
extern void outl(unsigned int b, unsigned long addr);
+#else
+static inline char inb(unsigned long addr)
+{
+ BUG();
+ return -1;
+}
+static inline short inw(unsigned long addr)
+{
+ BUG();
+ return -1;
+}
+
+static inline int inl(unsigned long addr)
+{
+ BUG();
+ return -1;
+}
+
+#define outb(x, y) BUG()
+#define outw(x, y) BUG()
+#define outl(x, y) BUG()
#endif
extern void memcpy_fromio(void *dest, unsigned long src, int count);
On Friday 17 August 2001 09:11, Matthew Wilcox wrote:
> A number of people have been asking for the ability to turn off CONFIG_PCI,
> and while I was reviewing the outstanding diff vs 2.4.9, I noticed I could
> take out some of the patch if I just made some slight alterations. Please
> test this patch; it compiles for me.
>
... <original patch deleted>...