You can subscribe to this list here.
| 2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(135) |
Nov
(123) |
Dec
(83) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2002 |
Jan
(244) |
Feb
(72) |
Mar
(221) |
Apr
(91) |
May
(104) |
Jun
(93) |
Jul
(78) |
Aug
(1) |
Sep
(1) |
Oct
(29) |
Nov
(98) |
Dec
(20) |
| 2003 |
Jan
|
Feb
(21) |
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
(18) |
Sep
(18) |
Oct
(23) |
Nov
(12) |
Dec
(6) |
| 2004 |
Jan
(2) |
Feb
(32) |
Mar
|
Apr
(12) |
May
(11) |
Jun
(11) |
Jul
|
Aug
(9) |
Sep
|
Oct
(15) |
Nov
|
Dec
|
| 2005 |
Jan
|
Feb
(2) |
Mar
(11) |
Apr
(6) |
May
(1) |
Jun
(9) |
Jul
(7) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
| 2006 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2007 |
Jan
|
Feb
(2) |
Mar
|
Apr
(25) |
May
(2) |
Jun
|
Jul
(5) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2008 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2009 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(13) |
Oct
|
Nov
(2) |
Dec
(2) |
| 2011 |
Jan
|
Feb
|
Mar
(10) |
Apr
(10) |
May
(1) |
Jun
(6) |
Jul
|
Aug
(2) |
Sep
(5) |
Oct
|
Nov
|
Dec
|
|
From: James S. <jsi...@us...> - 2001-10-06 16:20:24
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/ppc/kernel In directory usw-pr-cvs1:/tmp/cvs-serv27842 Removed Files: ppc_ksyms.c Log Message: Changes in standard tree. --- ppc_ksyms.c DELETED --- |
|
From: James S. <jsi...@us...> - 2001-10-06 16:18:47
|
Update of /cvsroot/linuxconsole/ruby/linux/Documentation/input In directory usw-pr-cvs1:/tmp/cvs-serv27566 Removed Files: cs461x.txt gameport-programming.txt input-programming.txt joystick-api.txt Log Message: Changes in standard tree. --- cs461x.txt DELETED --- --- gameport-programming.txt DELETED --- --- input-programming.txt DELETED --- --- joystick-api.txt DELETED --- |
|
From: James S. <jsi...@us...> - 2001-10-06 16:14:59
|
Update of /cvsroot/linuxconsole/ruby/linux/kernel In directory usw-pr-cvs1:/tmp/cvs-serv26781 Removed Files: ksyms.c panic.c Log Message: Changes in standard tree. --- ksyms.c DELETED --- --- panic.c DELETED --- |
|
From: James S. <jsi...@us...> - 2001-10-06 16:11:44
|
Update of /cvsroot/linuxconsole/ruby/linux/Documentation/DocBook
In directory usw-pr-cvs1:/tmp/cvs-serv25708/linux/Documentation/DocBook
Modified Files:
Makefile kernel-api.tmpl
Log Message:
Synced to 2.4.10
Index: Makefile
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/Documentation/DocBook/Makefile,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- Makefile 2001/07/29 18:24:12 1.3
+++ Makefile 2001/10/06 16:11:11 1.4
@@ -24,10 +24,10 @@
html: $(HTML)
%.eps: %.fig
- -fig2dev -Leps $< $@
+ fig2dev -Leps $< $@
%.jpeg: %.fig
- -fig2dev -Ljpeg $< $@
+ fig2dev -Ljpeg $< $@
%.sgml: %.c
echo "<programlisting>" > $@
@@ -88,6 +88,7 @@
$(TOPDIR)/arch/i386/kernel/mca.c \
$(TOPDIR)/arch/i386/kernel/mtrr.c \
$(TOPDIR)/drivers/char/misc.c \
+ $(TOPDIR)/kernel/printk.c \
$(TOPDIR)/drivers/net/net_init.c \
$(TOPDIR)/drivers/net/8390.c \
$(TOPDIR)/drivers/char/serial.c \
@@ -129,7 +130,7 @@
$(PERL) $(TOPDIR)/scripts/split-man $(TOPDIR)/Documentation/man
parportbook: $(JPG-parportbook)
-parportbook.ps: $(EPS-parportbook)
+parportbook.ps parportbook.pdf: $(EPS-parportbook)
parportbook.sgml: parportbook.tmpl $(TOPDIR)/drivers/parport/init.c
$(TOPDIR)/scripts/docgen $(TOPDIR)/drivers/parport/init.c <$< >$@
Index: kernel-api.tmpl
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/Documentation/DocBook/kernel-api.tmpl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- kernel-api.tmpl 2001/07/04 04:25:05 1.1
+++ kernel-api.tmpl 2001/10/06 16:11:11 1.2
@@ -187,6 +187,11 @@
!Edrivers/block/ll_rw_blk.c
</chapter>
+ <chapter id="part">
+ <title>Partition Handling</title>
+!Edrivers/block/genhd.c
+ </chapter>
+
<chapter id="miscdev">
<title>Miscellaneous Devices</title>
!Edrivers/char/misc.c
|
|
From: James S. <jsi...@us...> - 2001-10-06 16:11:18
|
Update of /cvsroot/linuxconsole/ruby/utils In directory usw-pr-cvs1:/tmp/cvs-serv25708/utils Modified Files: remove-obsolete-files Log Message: Synced to 2.4.10 Index: remove-obsolete-files =================================================================== RCS file: /cvsroot/linuxconsole/ruby/utils/remove-obsolete-files,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- remove-obsolete-files 2001/07/08 22:02:45 1.25 +++ remove-obsolete-files 2001/10/06 16:11:14 1.26 @@ -41,6 +41,7 @@ rm -fv drivers/char/joystick/lightning.c rm -fv drivers/char/joystick/magellan.c rm -fv drivers/char/joystick/ns558.c +rm -fv drivers/char/joystick/emu10k1-gp.c rm -fv drivers/char/joystick/pcigame.c rm -fv drivers/char/joystick/serio.c rm -fv drivers/char/joystick/serport.c |
|
From: James S. <jsi...@us...> - 2001-10-06 16:11:17
|
Update of /cvsroot/linuxconsole/ruby/linux/include/asm-sh
In directory usw-pr-cvs1:/tmp/cvs-serv25708/linux/include/asm-sh
Modified Files:
page.h
Log Message:
Synced to 2.4.10
Index: page.h
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/include/asm-sh/page.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- page.h 2001/09/02 23:21:37 1.1
+++ page.h 2001/10/06 16:11:13 1.2
@@ -24,8 +24,8 @@
#ifdef __KERNEL__
#ifndef __ASSEMBLY__
-#define clear_page(page) memset((void *)(page), 0, PAGE_SIZE)
-#define copy_page(to,from) memcpy((void *)(to), (void *)(from), PAGE_SIZE)
+extern void clear_page(void *to);
+extern void copy_page(void *to, void *from);
#if defined(__sh3__)
#define clear_user_page(page, vaddr) clear_page(page)
@@ -33,6 +33,8 @@
#elif defined(__SH4__)
extern void clear_user_page(void *to, unsigned long address);
extern void copy_user_page(void *to, void *from, unsigned long address);
+extern void __clear_user_page(void *to, void *orig_to);
+extern void __copy_user_page(void *to, void *from, void *orig_to);
#endif
/*
@@ -67,12 +69,24 @@
*/
#define __MEMORY_START CONFIG_MEMORY_START
+#define __MEMORY_SIZE CONFIG_MEMORY_SIZE
+#ifdef CONFIG_DISCONTIGMEM
+/* Just for HP690, for now.. */
+#define __MEMORY_START_2ND (__MEMORY_START+0x02000000)
+#define __MEMORY_SIZE_2ND 0x001000000 /* 16MB */
+#endif
#define PAGE_OFFSET (0x80000000UL)
#define __pa(x) ((unsigned long)(x)-PAGE_OFFSET)
#define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET))
-#define virt_to_page(kaddr) (mem_map + ((__pa(kaddr)-__MEMORY_START) >> PAGE_SHIFT))
+
+#ifndef CONFIG_DISCONTIGMEM
+#define phys_to_page(phys) (mem_map + (((phys)-__MEMORY_START) >> PAGE_SHIFT))
#define VALID_PAGE(page) ((page - mem_map) < max_mapnr)
+#define page_to_phys(page) (((page - mem_map) << PAGE_SHIFT) + __MEMORY_START)
+#endif
+
+#define virt_to_page(kaddr) phys_to_page(__pa(kaddr))
#ifndef __ASSEMBLY__
@@ -89,7 +103,7 @@
} while (0)
/* Pure 2^n version of get_order */
-extern __inline__ int get_order(unsigned long size)
+static __inline__ int get_order(unsigned long size)
{
int order;
|
|
From: James S. <jsi...@us...> - 2001-10-06 16:11:17
|
Update of /cvsroot/linuxconsole/ruby/linux/lib In directory usw-pr-cvs1:/tmp/cvs-serv25708/linux/lib Modified Files: Makefile Log Message: Synced to 2.4.10 Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/lib/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Makefile 2001/05/10 02:42:46 1.1 +++ Makefile 2001/10/06 16:11:14 1.2 @@ -8,9 +8,9 @@ L_TARGET := lib.a -export-objs := cmdline.o rwsem-spinlock.o rwsem.o bust_spinlocks.o +export-objs := cmdline.o dec_and_lock.o rwsem-spinlock.o rwsem.o bust_spinlocks.o -obj-y := errno.o ctype.o string.o vsprintf.o brlock.o cmdline.o bust_spinlocks.o +obj-y := errno.o ctype.o string.o vsprintf.o brlock.o cmdline.o bust_spinlocks.o rbtree.o obj-$(CONFIG_RWSEM_GENERIC_SPINLOCK) += rwsem-spinlock.o obj-$(CONFIG_RWSEM_XCHGADD_ALGORITHM) += rwsem.o |
|
From: James S. <jsi...@us...> - 2001-10-06 16:11:17
|
Update of /cvsroot/linuxconsole/ruby/linux/include/linux
In directory usw-pr-cvs1:/tmp/cvs-serv25708/linux/include/linux
Modified Files:
kernel.h
Log Message:
Synced to 2.4.10
Index: kernel.h
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/include/linux/kernel.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- kernel.h 2001/10/05 03:58:58 1.6
+++ kernel.h 2001/10/06 16:11:13 1.7
@@ -10,6 +10,7 @@
#include <stdarg.h>
#include <linux/linkage.h>
#include <linux/stddef.h>
+#include <linux/types.h>
/* Optimization barrier */
/* The "volatile" is due to gcc bugs */
@@ -61,6 +62,13 @@
extern long long simple_strtoll(const char *,char **,unsigned int);
extern int sprintf(char * buf, const char * fmt, ...);
extern int vsprintf(char *buf, const char *, va_list);
+extern int snprintf(char * buf, size_t size, const char *fmt, ...);
+extern int vsnprintf(char *buf, size_t size, const char *fmt, va_list args);
+
+extern int sscanf(const char *, const char *, ...)
+ __attribute__ ((format (scanf,2,3)));
+extern int vsscanf(const char *, const char *, va_list);
+
extern int get_option(char **str, int *pint);
extern char *get_options(char *str, int nints, int *ints);
extern unsigned long long memparse(char *ptr, char **retptr);
@@ -85,9 +93,8 @@
console_loglevel = 15;
}
-/* If set, an oops, panic(), BUG() or die() is in progress */
extern void bust_spinlocks(int yes);
-extern int oops_in_progress;
+extern int oops_in_progress; /* If set, an oops, panic(), BUG() or die() is in progress */
static inline void do_BUG(const char *file, int line)
{
@@ -122,10 +129,33 @@
((unsigned char *)&addr)[1], \
((unsigned char *)&addr)[0]
-#define min(type,x,y) \
- ({ type __x = (x), __y = (y); __x < __y ? __x: __y; })
-#define max(type,x,y) \
- ({ type __x = (x), __y = (y); __x > __y ? __x: __y; })
+/*
+ * min()/max() macros that also do
+ * strict type-checking.. See the
+ * "unnecessary" pointer comparison.
+ */
+#define min(x,y) ({ \
+ const typeof(x) _x = (x); \
+ const typeof(y) _y = (y); \
+ (void) (&_x == &_y); \
+ _x < _y ? _x : _y; })
+
+#define max(x,y) ({ \
+ const typeof(x) _x = (x); \
+ const typeof(y) _y = (y); \
+ (void) (&_x == &_y); \
+ _x > _y ? _x : _y; })
+
+/*
+ * ..and if you can't take the strict
+ * types, you can specify one yourself.
+ *
+ * Or not use min/max at all, of course.
+ */
+#define min_t(type,x,y) \
+ ({ type __x = (x); type __y = (y); __x < __y ? __x: __y; })
+#define max_t(type,x,y) \
+ ({ type __x = (x); type __y = (y); __x > __y ? __x: __y; })
#endif /* __KERNEL__ */
|
|
From: James S. <jsi...@us...> - 2001-10-06 16:11:17
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/video
In directory usw-pr-cvs1:/tmp/cvs-serv25708/linux/drivers/video
Modified Files:
Config.in Makefile fbmem.c
Log Message:
Synced to 2.4.10
Index: Config.in
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/Config.in,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -d -r1.48 -r1.49
--- Config.in 2001/08/22 11:07:57 1.48
+++ Config.in 2001/10/06 16:11:13 1.49
@@ -86,6 +86,9 @@
bool ' S3 Trio display support' CONFIG_FB_S3TRIO
tristate ' VGA 16-color graphics console' CONFIG_FB_VGA16
fi
+ if [ "$CONFIG_PARISC" = "y" ]; then
+ bool ' Generic STI frame buffer device support' CONFIG_FB_STI
+ fi
if [ "$CONFIG_MAC" = "y" ]; then
define_bool CONFIG_FB_MAC y
bool ' Apple "valkyrie" display support' CONFIG_FB_VALKYRIE
@@ -124,12 +127,16 @@
bool ' CGsix (GX,TurboGX) support' CONFIG_FB_CGSIX
fi
fi
- tristate ' NEC PowerVR 2 display support' CONFIG_FB_PVR2
- dep_bool ' Debug pvr2fb' CONFIG_FB_PVR2_DEBUG $CONFIG_FB_PVR2
+ if [ "$CONFIG_SH_DREAMCAST" = "y" ]; then
+ tristate ' NEC PowerVR 2 display support' CONFIG_FB_PVR2
+ dep_bool ' Debug pvr2fb' CONFIG_FB_PVR2_DEBUG $CONFIG_FB_PVR2
+ fi
bool ' Epson 1355 framebuffer support' CONFIG_FB_E1355
if [ "$CONFIG_FB_E1355" = "y" ]; then
- hex ' Register Base Address' CONFIG_E1355_REG_BASE a8000000
- hex ' Framebuffer Base Address' CONFIG_E1355_FB_BASE a8200000
+ if [ "$CONFIG_SUPERH" = "y" ]; then
+ hex ' Register Base Address' CONFIG_E1355_REG_BASE a8000000
+ hex ' Framebuffer Base Address' CONFIG_E1355_FB_BASE a8200000
+ fi
fi
if [ "$CONFIG_PCI" != "n" ]; then
tristate ' Matrox acceleration (EXPERIMENTAL)' CONFIG_FB_MATROX
@@ -150,14 +157,21 @@
if [ "$CONFIG_FB_ATY" != "n" ]; then
bool ' Mach64 GX support (EXPERIMENTAL)' CONFIG_FB_ATY_GX
bool ' Mach64 CT/VT/GT/LT (incl. 3D RAGE) support' CONFIG_FB_ATY_CT
+ if [ "$CONFIG_FB_ATY_CT" = "y" ]; then
+ bool ' Sony Vaio C1VE 1024x480 LCD support' CONFIG_FB_ATY_CT_VAIO_LCD
+ fi
fi
+ tristate ' ATI Radeon display support (EXPERIMENTAL)' CONFIG_FB_RADEON
tristate ' ATI Rage 128 display support (EXPERIMENTAL)' CONFIG_FB_ATY128
tristate ' 3Dfx acceleration support' CONFIG_FB_TDFX
if [ "$CONFIG_FB_TDFX" != "n" ]; then
bool ' 3Dfx Banshee/Voodoo3 display support (EXPERIMENTAL)' CONFIG_FB_3DFX
- bool ' Voodoo 1 display support (EXPERIMENTAL)' CONFIG_FB_SST
- fi
- tristate ' SIS 630/540 display support (EXPERIMENTAL)' CONFIG_FB_SIS
+ bool ' 3Dfx Voodoo Graphics (sst1) support (EXPERIMENTAL)' CONFIG_FB_VOODOO1
+ fi
+ if [ "$CONFIG_FB_SIS" != "n" ]; then
+ bool ' SIS 630/540/730 support' CONFIG_FB_SIS_300
+ bool ' SIS 315H/315 support' CONFIG_FB_SIS_315
+ fi
fi
if [ "$ARCH" = "sparc" -o "$ARCH" = "sparc64" ]; then
bool ' SBUS and UPA framebuffers' CONFIG_FB_SBUS
@@ -197,6 +211,16 @@
fi
if [ "$CONFIG_HD64461" = "y" ]; then
tristate ' HD64461 Frame Buffer support' CONFIG_FB_HIT
+ fi
+ if [ "$CONFIG_DECSTATION" = "y" ]; then
+ if [ "$CONFIG_TC" = "y" ]; then
+ bool ' PMAG-BA TURBOchannel framebuffer support' CONFIG_FB_PMAG_BA
+ bool ' PMAGB-B TURBOchannel framebuffer spport' CONFIG_FB_PMAGB_B
+ bool ' Maxine (Personal DECstation) onboard framebuffer spport' CONFIG_FB_MAXINE
+ fi
+ fi
+ if [ "$CONFIG_NINO" = "y" ]; then
+ bool ' TMPTX3912/PR31700 frame buffer support' CONFIG_FB_TX3912
fi
if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
tristate ' Virtual Frame Buffer support (ONLY FOR TESTING!)' CONFIG_FB_VIRTUAL
Index: Makefile
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/Makefile,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -d -r1.41 -r1.42
--- Makefile 2001/09/09 16:36:34 1.41
+++ Makefile 2001/10/06 16:11:13 1.42
@@ -17,6 +17,7 @@
obj-$(CONFIG_SGI_NEWPORT_CONSOLE) += newport_con.o
obj-$(CONFIG_PROM_CONSOLE) += promcon.o promcon_tbl.o
+obj-$(CONFIG_STI_CONSOLE) += sticon.o sticon-bmode.o sticore.o
obj-$(CONFIG_VGA_CONSOLE) += vgacon.o vga.o
obj-$(CONFIG_MDA_CONSOLE) += mdacon.o
obj-$(CONFIG_NVIDIA_CONSOLE) += nvvgacon.o
@@ -42,6 +43,7 @@
obj-$(CONFIG_FB_Q40) += q40fb.o
obj-$(CONFIG_FB_ATARI) += atafb.o
obj-$(CONFIG_FB_ATY128) += aty128fb.o
+obj-$(CONFIG_FB_RADEON) += radeonfb.o
obj-$(CONFIG_FB_IGA) += igafb.o
obj-$(CONFIG_FB_CONTROL) += controlfb.o
obj-$(CONFIG_FB_PLATINUM) += platinumfb.o
@@ -72,6 +74,11 @@
obj-$(CONFIG_FB_CGFOURTEEN) += cgfourteenfb.o sbusfb.o
obj-$(CONFIG_FB_P9100) += p9100fb.o sbusfb.o
obj-$(CONFIG_FB_LEO) += leofb.o sbusfb.o
+obj-$(CONFIG_FB_STI) += stifb.o sticore.o fbgen.o
+obj-$(CONFIG_FB_PMAG_BA) += pmag-ba-fb.o
+obj-$(CONFIG_FB_PMAGB_B) += pmagb-b-fb.o
+obj-$(CONFIG_FB_MAXINE) += maxinefb.o
+obj-$(CONFIG_FB_TX3912) += tx3912fb.o
subdir-$(CONFIG_FB_MATROX) += matrox
ifeq ($(CONFIG_FB_MATROX),y)
@@ -106,6 +113,7 @@
obj-$(CONFIG_FB_HIT) += hitfb.o fbgen.o
obj-$(CONFIG_FB_E1355) += epson1355fb.o fbgen.o
obj-$(CONFIG_FB_PVR2) += pvr2fb.o
+obj-$(CONFIG_FB_VOODOO1) += sstfb.o
obj-$(CONFIG_FB_ANAKIN) += anakinfb.o
obj-$(CONFIG_FB_SIMPLE) += sfb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o
obj-$(CONFIG_FB_SED1345) += sed1345fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o
@@ -127,3 +135,4 @@
-e 's/dfont\(_uni.*\]\)/promfont\1 __initdata/' > promcon_tbl.c
promcon_tbl.o: promcon_tbl.c $(TOPDIR)/include/linux/types.h
+
Index: fbmem.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/fbmem.c,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -d -r1.49 -r1.50
--- fbmem.c 2001/10/02 19:39:19 1.49
+++ fbmem.c 2001/10/06 16:11:13 1.50
@@ -650,7 +650,7 @@
pgprot_val(vma->vm_page_prot) |= _PAGE_NO_CACHE|_PAGE_GUARDED;
#elif defined(__alpha__)
/* Caching is off in the I/O space quadrant by design. */
-#elif defined(__i386__)
+#elif defined(__i386__) || defined(__x86_64__)
if (boot_cpu_data.x86 > 3)
pgprot_val(vma->vm_page_prot) |= _PAGE_PCD;
#elif defined(__mips__)
|
|
From: James S. <jsi...@us...> - 2001-10-06 16:11:17
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/char
In directory usw-pr-cvs1:/tmp/cvs-serv25708/linux/drivers/char
Modified Files:
Config.in Makefile keyboard.c mem.c selection.c sysrq.c
tty_io.c vt_ioctl.c
Log Message:
Synced to 2.4.10
Index: Config.in
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/Config.in,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -d -r1.25 -r1.26
--- Config.in 2001/10/05 03:58:58 1.25
+++ Config.in 2001/10/06 16:11:13 1.26
@@ -10,7 +10,7 @@
bool ' Support for console on virtual terminal' CONFIG_VT_CONSOLE
# if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
# bool ' ISO6429 bidirectional support (EXPERIMENTAL)' CONFIG_VT_BDSM
-# fi
+# fi
fi
fi
@@ -30,45 +30,75 @@
bool ' Autodetect IRQ on standard ports (unsafe)' CONFIG_SERIAL_DETECT_IRQ
bool ' Support special multiport boards' CONFIG_SERIAL_MULTIPORT
bool ' Support the Bell Technologies HUB6 card' CONFIG_HUB6
- fi
-fi
-bool 'Non-standard serial port support' CONFIG_SERIAL_NONSTANDARD
-if [ "$CONFIG_SERIAL_NONSTANDARD" = "y" ]; then
- tristate ' Computone IntelliPort Plus serial support' CONFIG_COMPUTONE
- tristate ' Comtrol Rocketport support' CONFIG_ROCKETPORT
- tristate ' Cyclades async mux support' CONFIG_CYCLADES
- if [ "$CONFIG_EXPERIMENTAL" = "y" -a "$CONFIG_CYCLADES" != "n" ]; then
- bool ' Cyclades-Z interrupt mode operation (EXPERIMENTAL)' CONFIG_CYZ_INTR
- fi
- tristate ' Digiboard Intelligent Async Support' CONFIG_DIGIEPCA
- if [ "$CONFIG_DIGIEPCA" = "n" ]; then
- tristate ' Digiboard PC/Xx Support' CONFIG_DIGI
fi
- tristate ' Hayes ESP serial port support' CONFIG_ESPSERIAL
- tristate ' Moxa Intellio support' CONFIG_MOXA_INTELLIO
- tristate ' Moxa SmartIO support' CONFIG_MOXA_SMARTIO
- if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
- dep_tristate ' Multi-Tech multiport card support (EXPERIMENTAL)' CONFIG_ISI m
+ bool 'Non-standard serial port support' CONFIG_SERIAL_NONSTANDARD
+ if [ "$CONFIG_SERIAL_NONSTANDARD" = "y" ]; then
+ tristate ' Computone IntelliPort Plus serial support' CONFIG_COMPUTONE
+ tristate ' Comtrol Rocketport support' CONFIG_ROCKETPORT
+ tristate ' Cyclades async mux support' CONFIG_CYCLADES
+ if [ "$CONFIG_EXPERIMENTAL" = "y" -a "$CONFIG_CYCLADES" != "n" ]; then
+ bool ' Cyclades-Z interrupt mode operation (EXPERIMENTAL)' CONFIG_CYZ_INTR
+ fi
+ tristate ' Digiboard Intelligent Async Support' CONFIG_DIGIEPCA
+ if [ "$CONFIG_DIGIEPCA" = "n" ]; then
+ tristate ' Digiboard PC/Xx Support' CONFIG_DIGI
+ fi
+ tristate ' Hayes ESP serial port support' CONFIG_ESPSERIAL
+ tristate ' Moxa Intellio support' CONFIG_MOXA_INTELLIO
+ tristate ' Moxa SmartIO support' CONFIG_MOXA_SMARTIO
+ if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
+ dep_tristate ' Multi-Tech multiport card support (EXPERIMENTAL)' CONFIG_ISI m
+ fi
+ tristate ' Microgate SyncLink card support' CONFIG_SYNCLINK
+ tristate ' HDLC line discipline support' CONFIG_N_HDLC
+ tristate ' SDL RISCom/8 card support' CONFIG_RISCOM8
+ tristate ' Specialix IO8+ card support' CONFIG_SPECIALIX
+ if [ "$CONFIG_SPECIALIX" != "n" ]; then
+ bool ' Specialix DTR/RTS pin is RTS' CONFIG_SPECIALIX_RTSCTS
+ fi
+ tristate ' Specialix SX (and SI) card support' CONFIG_SX
+ tristate ' Specialix RIO system support' CONFIG_RIO
+ if [ "$CONFIG_RIO" != "n" ]; then
+ bool ' Support really old RIO/PCI cards' CONFIG_RIO_OLDPCI
+ fi
+ bool ' Stallion multiport serial support' CONFIG_STALDRV
+ if [ "$CONFIG_STALDRV" = "y" ]; then
+ tristate ' Stallion EasyIO or EC8/32 support' CONFIG_STALLION
+ tristate ' Stallion EC8/64, ONboard, Brumby support' CONFIG_ISTALLION
+ fi
+ if [ "$CONFIG_MIPS" = "y" ]; then
+ bool ' TMPTX3912/PR31700 serial port support' CONFIG_SERIAL_TX3912
+ dep_bool ' Console on TMPTX3912/PR31700 serial port' CONFIG_SERIAL_TX3912_CONSOLE $CONFIG_SERIAL_TX3912
+ bool ' Enable Au1000 UART Support' CONFIG_AU1000_UART
+ if [ "$CONFIG_AU1000_UART" = "y" ]; then
+ bool ' Enable Au1000 serial console' CONFIG_AU1000_SERIAL_CONSOLE
+ fi
+ fi
fi
- dep_tristate ' Microgate SyncLink card support' CONFIG_SYNCLINK m
- dep_tristate ' HDLC line discipline support' CONFIG_N_HDLC m
- tristate ' SDL RISCom/8 card support' CONFIG_RISCOM8
- tristate ' Specialix IO8+ card support' CONFIG_SPECIALIX
- if [ "$CONFIG_SPECIALIX" != "n" ]; then
- bool ' Specialix DTR/RTS pin is RTS' CONFIG_SPECIALIX_RTSCTS
- fi
- tristate ' Specialix SX (and SI) card support' CONFIG_SX
- tristate ' Specialix RIO system support' CONFIG_RIO
- if [ "$CONFIG_RIO" != "n" ]; then
- bool ' Support really old RIO/PCI cards' CONFIG_RIO_OLDPCI
+fi
+
+if [ "$CONFIG_IT8712" = "y" ]; then
+ bool 'Enable Qtronix 990P Keyboard Support' CONFIG_QTRONIX_KEYBOARD
+ if [ "$CONFIG_QTRONIX_KEYBOARD" = "y" ]; then
+ define_bool CONFIG_IT8172_CIR y
+ else
+ bool ' Enable PS2 Keyboard Support' CONFIG_PC_KEYB
fi
- bool ' Stallion multiport serial support' CONFIG_STALDRV
- if [ "$CONFIG_STALDRV" = "y" ]; then
- tristate ' Stallion EasyIO or EC8/32 support' CONFIG_STALLION
- tristate ' Stallion EC8/64, ONboard, Brumby support' CONFIG_ISTALLION
+ bool 'Enable Smart Card Reader 0 Support ' CONFIG_IT8172_SCR0
+ bool 'Enable Smart Card Reader 1 Support ' CONFIG_IT8172_SCR1
+fi
+if [ "$CONFIG_EXPERIMENTAL" = "y" -a "$CONFIG_ZORRO" = "y" ]; then
+ tristate 'Commodore A2232 serial support (EXPERIMENTAL)' CONFIG_A2232
+fi
+if [ "$CONFIG_FOOTBRIDGE" = "y" ]; then
+ bool 'DC21285 serial port support' CONFIG_SERIAL_21285
+ if [ "$CONFIG_SERIAL_21285" = "y" ]; then
+ if [ "$CONFIG_OBSOLETE" = "y" ]; then
+ bool ' Use /dev/ttyS0 device (OBSOLETE)' CONFIG_SERIAL_21285_OLD
+ fi
+ bool ' Console on DC21285 serial port' CONFIG_SERIAL_21285_CONSOLE
fi
fi
-
bool 'Unix98 PTY support' CONFIG_UNIX98_PTYS
if [ "$CONFIG_UNIX98_PTYS" = "y" ]; then
int 'Maximum number of Unix98 PTYs in use (0-2048)' CONFIG_UNIX98_PTY_COUNT 256
@@ -113,13 +143,15 @@
tristate ' Acquire SBC Watchdog Timer' CONFIG_ACQUIRE_WDT
tristate ' Advantech SBC Watchdog Timer' CONFIG_ADVANTECH_WDT
tristate ' SBC-60XX Watchdog Timer' CONFIG_60XX_WDT
+ tristate ' W83877F (EMACS) Watchdog Timer' CONFIG_W83877F_WDT
tristate ' Mixcom Watchdog' CONFIG_MIXCOMWD
tristate ' Intel i810 TCO timer / Watchdog' CONFIG_I810_TCO
- if [ "$CONFIG_ARM" = "y" ]; then
- dep_tristate ' DC21285 watchdog' CONFIG_21285_WATCHDOG $CONFIG_FOOTBRIDGE
- dep_tristate ' NetWinder WB83C977 watchdog' CONFIG_977_WATCHDOG $CONFIG_ARCH_NETWINDER
- dep_tristate ' SA1100 watchdog' CONFIG_SA1100_WATCHDOG $CONFIG_ARCH_SA1100
- fi
+ if [ "$CONFIG_FOOTBRIDGE" = "y" ]; then
+ tristate ' DC21285 watchdog' CONFIG_21285_WATCHDOG
+ if [ "$CONFIG_ARCH_NETWINDER" = "y" ]; then
+ tristate ' NetWinder WB83C977 watchdog' CONFIG_977_WATCHDOG
+ fi
+ fi
tristate ' ZF MachZ Watchdog' CONFIG_MACHZ_WDT
fi
endmenu
@@ -142,16 +174,13 @@
if [ "$CONFIG_OBSOLETE" = "y" -a "$CONFIG_ALPHA_BOOK1" = "y" ]; then
bool 'Tadpole ANA H8 Support' CONFIG_H8
fi
-if [ "$CONFIG_ARCH_SA1100" = "y" ]; then
- tristate 'SA1100 Real Time Clock' CONFIG_SA1100_RTC
-fi
tristate 'Double Talk PC internal speech card support' CONFIG_DTLK
tristate 'Siemens R3964 line discipline' CONFIG_R3964
tristate 'Applicom intelligent fieldbus card support' CONFIG_APPLICOM
if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
dep_tristate 'Sony Vaio Programmable I/O Control Device support' CONFIG_SONYPI $CONFIG_PCI
-fi
+fi
mainmenu_option next_comment
comment 'Ftape, the floppy tape device driver'
@@ -166,10 +195,10 @@
bool ' Intel 440LX/BX/GX and I815/I840/I850 support' CONFIG_AGP_INTEL
bool ' Intel I810/I815 (on-board) support' CONFIG_AGP_I810
bool ' VIA chipset support' CONFIG_AGP_VIA
- bool ' AMD Irongate support' CONFIG_AGP_AMD
+ bool ' AMD Irongate, 761, and 762 support' CONFIG_AGP_AMD
bool ' Generic SiS support' CONFIG_AGP_SIS
bool ' ALI chipset support' CONFIG_AGP_ALI
- bool ' Serverworks LE/HE support' CONFIG_AGP_SWORKS
+ bool ' Serverworks LE/HE support' CONFIG_AGP_SWORKS
fi
source drivers/char/drm/Config.in
Index: Makefile
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/Makefile,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -d -r1.26 -r1.27
--- Makefile 2001/07/29 18:24:12 1.26
+++ Makefile 2001/10/06 16:11:13 1.27
@@ -22,7 +22,7 @@
# This list comes from 'grep -l EXPORT_SYMBOL *.[hc]'.
export-objs := vt.o keyboard.o sysrq.o misc.o pty.o random.o \
- selection.o serial.o sonypi.o tty_io.o tty_ioctl.o
+ selection.o serial.o sonypi.o tty_io.o tty_ioctl.o
mod-subdirs := ftape drm pcmcia
@@ -30,9 +30,20 @@
SERIAL =serial.o
+ifeq ($(CONFIG_DECSTATION),y)
+ SERIAL = decserial.o
+endif
+
+ifeq ($(CONFIG_QTRONIX_KEYBOARD),y)
+ KEYBD = qtronix.o
+ KEYMAP = qtronixmap.o
+endif
+
obj-$(CONFIG_VT) += vt.o vt_ioctl.o decvte.o vc_screen.o consolemap.o consolemap_deftbl.o selection.o keyboard.o defkeymap.o
obj-$(CONFIG_SERIAL) += $(SERIAL)
obj-$(CONFIG_SERIAL_21285) += serial_21285.o
+obj-$(CONFIG_SERIAL_SA1100) += serial_sa1100.o
+obj-$(CONFIG_SERIAL_AMBA) += serial_amba.o
obj-$(CONFIG_MAGIC_SYSRQ) += sysrq.o
obj-$(CONFIG_ATARI_DSP56K) += dsp56k.o
@@ -60,18 +71,17 @@
obj-$(CONFIG_MVME147_SCC) += generic_serial.o vme_scc.o
obj-$(CONFIG_MVME162_SCC) += generic_serial.o vme_scc.o
obj-$(CONFIG_BVME6000_SCC) += generic_serial.o vme_scc.o
+obj-$(CONFIG_SERIAL_TX3912) += generic_serial.o serial_tx3912.o
subdir-$(CONFIG_RIO) += rio
obj-$(CONFIG_PRINTER) += lp.o
-
obj-$(CONFIG_DTLK) += dtlk.o
obj-$(CONFIG_R3964) += n_r3964.o
obj-$(CONFIG_APPLICOM) += applicom.o
obj-$(CONFIG_SONYPI) += sonypi.o
obj-$(CONFIG_RTC) += rtc.o
obj-$(CONFIG_EFI_RTC) += efirtc.o
-obj-$(CONFIG_SA1100_RTC) += sa1100-rtc.o
ifeq ($(CONFIG_PPC),)
obj-$(CONFIG_NVRAM) += nvram.o
endif
@@ -112,14 +122,8 @@
obj-$(CONFIG_977_WATCHDOG) += wdt977.o
obj-$(CONFIG_I810_TCO) += i810-tco.o
obj-$(CONFIG_MACHZ_WDT) += machzwd.o
-obj-$(CONFIG_SA1100_WATCHDOG) += sa1100_wdt.o
obj-$(CONFIG_SOFT_WATCHDOG) += softdog.o
-ifeq ($(CONFIG_ARCH_ACORN),y)
-mod-subdirs += ../acorn/char
-subdir-y += ../acorn/char
-obj-y += ../acorn/char/acorn-char.o
-endif
include $(TOPDIR)/Rules.make
@@ -133,5 +137,10 @@
consolemap_deftbl.o: consolemap_deftbl.c $(TOPDIR)/include/linux/types.h
+.DELETE_ON_ERROR:
+
defkeymap.c: defkeymap.map
- loadkeys --mktable defkeymap.map > defkeymap.c
+ set -e ; loadkeys --mktable $< | sed -e 's/^static *//' > $@
+
+qtronixmap.c: qtronixmap.map
+ set -e ; loadkeys --mktable $< | sed -e 's/^static *//' > $@
Index: keyboard.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/keyboard.c,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -d -r1.60 -r1.61
--- keyboard.c 2001/09/25 09:37:57 1.60
+++ keyboard.c 2001/10/06 16:11:13 1.61
@@ -144,6 +144,8 @@
static int npadch = -1; /* -1 or number assembled on pad */
static unsigned char diacr;
static char rep; /* flag telling character repeat */
+pm_callback pm_kbd_request_override = NULL;
+typedef void (pm_kbd_func) (void);
static struct pm_dev *pm_kbd;
static unsigned char ledstate = 0xff; /* undefined */
@@ -1133,7 +1135,7 @@
tasklet_enable(&keyboard_tasklet);
tasklet_schedule(&keyboard_tasklet);
- pm_kbd = pm_register(PM_SYS_DEV, PM_SYS_KBC, NULL);
+ pm_kbd = pm_register(PM_SYS_DEV, PM_SYS_KBC, pm_kbd_request_override);
input_register_handler(&kbd_handler);
return 0;
Index: mem.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/mem.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- mem.c 2001/09/09 16:36:33 1.16
+++ mem.c 2001/10/06 16:11:13 1.17
@@ -35,9 +35,6 @@
#if defined(CONFIG_S390_TAPE) && defined(CONFIG_S390_TAPE_CHAR)
extern void tapechar_init(void);
#endif
-#if defined(CONFIG_ADB)
-extern void adbdev_init(void);
-#endif
static ssize_t do_write_mem(struct file * file, void *p, unsigned long realp,
const char * buf, size_t count, loff_t *ppos)
@@ -128,7 +125,7 @@
{
unsigned long prot = pgprot_val(_prot);
-#if defined(__i386__)
+#if defined(__i386__) || defined(__x86_64__)
/* On PPro and successors, PCD alone doesn't always mean
uncached because of interactions with the MTRRs. PCD | PWT
means definitely uncached. */
@@ -147,8 +144,6 @@
/* Use no-cache mode, serialized */
else if (MMU_IS_040 || MMU_IS_060)
prot = (prot & _CACHEMASK040) | _PAGE_NOCACHE_S;
-#elif defined(__mips__)
- prot = (prot & ~_CACHE_MASK) | _CACHE_UNCACHED;
#endif
return __pgprot(prot);
@@ -628,9 +623,6 @@
#endif
#if defined(CONFIG_S390_TAPE) && defined(CONFIG_S390_TAPE_CHAR)
tapechar_init();
-#endif
-#if defined(CONFIG_ADB)
- adbdev_init();
#endif
return 0;
}
Index: selection.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/selection.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- selection.c 2001/03/07 04:42:27 1.12
+++ selection.c 2001/10/06 16:11:13 1.13
@@ -104,11 +104,7 @@
/* set inwordLut contents. Invoked by ioctl(). */
int sel_loadlut(const unsigned long arg)
{
- int err = -EFAULT;
-
- if (!copy_from_user(inwordLut, (u32 *)(arg+4), 32))
- err = 0;
- return err;
+ return copy_from_user(inwordLut, (u32 *)(arg+4), 32) ? -EFAULT : 0;
}
/* does screen address p correspond to character at LH/RH edge of screen? */
@@ -138,15 +134,13 @@
args = (unsigned short *)(arg + 1);
if (user) {
- int err;
- err = verify_area(VERIFY_READ, args, sizeof(short) * 5);
- if (err)
- return err;
- get_user(xs, args++);
- get_user(ys, args++);
- get_user(xe, args++);
- get_user(ye, args++);
- get_user(sel_mode, args);
+ if (verify_area(VERIFY_READ, args, sizeof(short) * 5))
+ return -EFAULT;
+ __get_user(xs, args++);
+ __get_user(ys, args++);
+ __get_user(xe, args++);
+ __get_user(ye, args++);
+ __get_user(sel_mode, args);
} else {
xs = *(args++); /* set selection from kernel */
ys = *(args++);
Index: sysrq.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/sysrq.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- sysrq.c 2001/09/09 16:36:33 1.13
+++ sysrq.c 2001/10/06 16:11:13 1.14
@@ -6,6 +6,10 @@
*
* (c) 1997 Martin Mares <mj...@at...>
* based on ideas by Pavel Machek <pa...@at...>
+ *
+ * (c) 2000 Crutcher Dunnavant <cru...@da...>
+ * overhauled to use key registration
+ * based upon discusions in irc://irc.openprojects.net/#kernelnewbies
*/
#include <linux/config.h>
@@ -22,9 +26,11 @@
#include <linux/quotaops.h>
#include <linux/smp_lock.h>
#include <linux/module.h>
+#include <linux/spinlock.h>
#ifdef CONFIG_VT
#include <linux/vt_kern.h>
#endif
+
#include <asm/ptrace.h>
extern struct list_head super_blocks;
@@ -35,135 +41,86 @@
/* Machine specific power off function */
void (*sysrq_power_off)(void);
-EXPORT_SYMBOL(sysrq_power_off);
+/* Loglevel sysrq handler */
+static void sysrq_handle_loglevel(int key, struct pt_regs *pt_regs,
+ struct kbd_struct *kbd, struct tty_struct *tty) {
+ int i;
+ i = key - '0';
+ console_loglevel = 7;
+ printk("%d\n", i);
+ console_loglevel = i;
+}
+static struct sysrq_key_op sysrq_loglevel_op = {
+ handler: sysrq_handle_loglevel,
+ help_msg: "loglevel0-8",
+ action_msg: "Loglevel set to ",
+};
-/* Send a signal to all user processes */
-static void send_sig_all(int sig, int even_init)
+/* SAK sysrq handler */
+#ifdef CONFIG_VT
+static void sysrq_handle_SAK(int key, struct pt_regs *pt_regs,
+ struct kbd_struct *kbd, struct tty_struct *tty)
{
- struct task_struct *p;
+ struct vc_data *vc = (struct vc_data *) tty->driver_data;
- for_each_task(p) {
- if (p->mm) { /* Not swapper nor kernel thread */
- if (p->pid == 1 && even_init) /* Ugly hack to kill init */
- p->pid = 0x8000;
- force_sig(sig, p);
- }
- }
+ if (tty)
+ do_SAK(tty);
+ reset_vc(vc);
}
+static struct sysrq_key_op sysrq_SAK_op = {
+ handler: sysrq_handle_SAK,
+ help_msg: "saK",
+ action_msg: "SAK\n",
+};
+#endif
-/*
- * This function is called by the keyboard handler when SysRq is pressed
- * and any other keycode arrives.
- */
-
-void handle_sysrq(int key, struct pt_regs *pt_regs,
- struct kbd_struct *kbd, struct tty_struct *tty)
-{
- int orig_log_level = console_loglevel;
- if (!key || !sysrq_enabled)
- return;
+/* unraw sysrq handler */
+static void sysrq_handle_unraw(int key, struct pt_regs *pt_regs,
+ struct kbd_struct *kbd, struct tty_struct *tty) {
+ if (kbd)
+ kbd->kbdmode = VC_XLATE;
+}
+static struct sysrq_key_op sysrq_unraw_op = {
+ handler: sysrq_handle_unraw,
+ help_msg: "unRaw",
+ action_msg: "Keyboard mode set to XLATE\n",
+};
- console_loglevel = 7;
- printk(KERN_INFO "SysRq: ");
- switch (key) {
-#ifdef CONFIG_VT
- case 'r': /* R -- Reset raw mode */
- if (kbd) {
- kbd->kbdmode = VC_XLATE;
- printk("Keyboard mode set to XLATE\n");
- }
- break;
- case 'k': { /* K -- SAK */
- struct vc_data *vc = (struct vc_data *) tty->driver_data;
- printk("SAK\n");
- if (tty)
- do_SAK(tty);
- reset_vc(vc);
- break;
- }
-#endif
- case 'b': /* B -- boot immediately */
- printk("Resetting\n");
- machine_restart(NULL);
- break;
- case 'o': /* O -- power off */
- if (sysrq_power_off) {
- printk("Power off\n");
- sysrq_power_off();
- }
- break;
- case 's': /* S -- emergency sync */
- printk("Emergency Sync\n");
- emergency_sync_scheduled = EMERG_SYNC;
- wakeup_bdflush();
- break;
- case 'u': /* U -- emergency remount R/O */
- printk("Emergency Remount R/O\n");
- emergency_sync_scheduled = EMERG_REMOUNT;
- wakeup_bdflush();
- break;
- case 'p': /* P -- show PC */
- printk("Show Regs\n");
- if (pt_regs)
- show_regs(pt_regs);
- break;
- case 't': /* T -- show task info */
- printk("Show State\n");
- show_state();
- break;
- case 'm': /* M -- show memory info */
- printk("Show Memory\n");
- show_mem();
- break;
- case '0' ... '9': /* 0-9 -- set console logging level */
- orig_log_level = key - '0';
- printk("Log level set to %d\n", orig_log_level);
- break;
- case 'e': /* E -- terminate all user processes */
- printk("Terminate All Tasks\n");
- send_sig_all(SIGTERM, 0);
- orig_log_level = 8; /* We probably have killed syslogd */
- break;
- case 'i': /* I -- kill all user processes */
- printk("Kill All Tasks\n");
- send_sig_all(SIGKILL, 0);
- orig_log_level = 8;
- break;
- case 'l': /* L -- kill all processes including init */
- printk("Kill ALL Tasks (even init)\n");
- send_sig_all(SIGKILL, 1);
- orig_log_level = 8;
- break;
- default: /* Unknown: help */
-#ifdef CONFIG_VT
- if (kbd)
- printk("unRaw ");
- if (tty)
- printk("saK ");
-#endif
- printk("Boot ");
- if (sysrq_power_off)
- printk("Off ");
- printk("Sync Unmount showPc showTasks showMem loglevel0-8 tErm kIll killalL\n");
- /* Don't use 'A' as it's handled specially on the Sparc */
- }
- console_loglevel = orig_log_level;
+/* reboot sysrq handler */
+static void sysrq_handle_reboot(int key, struct pt_regs *pt_regs,
+ struct kbd_struct *kbd, struct tty_struct *tty) {
+ machine_restart(NULL);
}
+static struct sysrq_key_op sysrq_reboot_op = {
+ handler: sysrq_handle_reboot,
+ help_msg: "reBoot",
+ action_msg: "Resetting\n",
+};
-/* Aux routines for the syncer */
-static int is_local_disk(kdev_t dev) /* Guess if the device is a local hard drive */
-{
- unsigned int major = MAJOR(dev);
+
+/* SYNC SYSRQ HANDLERS BLOCK */
+
+/* do_emergency_sync helper function */
+/* Guesses if the device is a local hard drive */
+static int is_local_disk(kdev_t dev) {
+ unsigned int major;
+ major = MAJOR(dev);
switch (major) {
case IDE0_MAJOR:
case IDE1_MAJOR:
case IDE2_MAJOR:
case IDE3_MAJOR:
+ case IDE4_MAJOR:
+ case IDE5_MAJOR:
+ case IDE6_MAJOR:
+ case IDE7_MAJOR:
+ case IDE8_MAJOR:
+ case IDE9_MAJOR:
case SCSI_DISK0_MAJOR:
case SCSI_DISK1_MAJOR:
case SCSI_DISK2_MAJOR:
@@ -172,19 +129,24 @@
case SCSI_DISK5_MAJOR:
case SCSI_DISK6_MAJOR:
case SCSI_DISK7_MAJOR:
+ case XT_DISK_MAJOR:
return 1;
default:
return 0;
}
}
+/* do_emergency_sync helper function */
static void go_sync(struct super_block *sb, int remount_flag)
{
+ int orig_loglevel;
+ orig_loglevel = console_loglevel;
+ console_loglevel = 7;
printk(KERN_INFO "%sing device %s ... ",
remount_flag ? "Remount" : "Sync",
kdevname(sb->s_dev));
- if (remount_flag) { /* Remount R/O */
+ if (remount_flag) { /* Remount R/O */
int ret, flags;
struct list_head *p;
@@ -214,12 +176,12 @@
}
} else
printk("nothing to do\n");
- } else {
- fsync_dev(sb->s_dev); /* Sync only */
+ } else { /* Sync only */
+ fsync_dev(sb->s_dev);
printk("OK\n");
}
+ console_loglevel = orig_loglevel;
}
-
/*
* Emergency Sync or Unmount. We cannot do it directly, so we set a special
* flag and wake up the bdflush kernel thread which immediately calls this function.
@@ -229,10 +191,10 @@
int emergency_sync_scheduled;
-void do_emergency_sync(void)
-{
+void do_emergency_sync(void) {
struct super_block *sb;
int remount_flag;
+ int orig_loglevel;
lock_kernel();
remount_flag = (emergency_sync_scheduled == EMERG_REMOUNT);
@@ -251,5 +213,277 @@
go_sync(sb, remount_flag);
unlock_kernel();
+
+ orig_loglevel = console_loglevel;
+ console_loglevel = 7;
printk(KERN_INFO "Done.\n");
+ console_loglevel = orig_loglevel;
+}
+
+static void sysrq_handle_sync(int key, struct pt_regs *pt_regs,
+ struct kbd_struct *kbd, struct tty_struct *tty) {
+ emergency_sync_scheduled = EMERG_SYNC;
+ wakeup_bdflush();
+}
+static struct sysrq_key_op sysrq_sync_op = {
+ handler: sysrq_handle_sync,
+ help_msg: "Sync",
+ action_msg: "Emergency Sync\n",
+};
+
+static void sysrq_handle_mountro(int key, struct pt_regs *pt_regs,
+ struct kbd_struct *kbd, struct tty_struct *tty) {
+ emergency_sync_scheduled = EMERG_REMOUNT;
+ wakeup_bdflush();
+}
+static struct sysrq_key_op sysrq_mountro_op = {
+ handler: sysrq_handle_mountro,
+ help_msg: "Unmount",
+ action_msg: "Emergency Remount R/0\n",
+};
+
+/* END SYNC SYSRQ HANDLERS BLOCK */
+
+
+/* SHOW SYSRQ HANDLERS BLOCK */
+
+static void sysrq_handle_showregs(int key, struct pt_regs *pt_regs,
+ struct kbd_struct *kbd, struct tty_struct *tty) {
+ if (pt_regs)
+ show_regs(pt_regs);
+}
+static struct sysrq_key_op sysrq_showregs_op = {
+ handler: sysrq_handle_showregs,
+ help_msg: "showPc",
+ action_msg: "Show Regs\n",
+};
+
+
+static void sysrq_handle_showstate(int key, struct pt_regs *pt_regs,
+ struct kbd_struct *kbd, struct tty_struct *tty) {
+ show_state();
+}
+static struct sysrq_key_op sysrq_showstate_op = {
+ handler: sysrq_handle_showstate,
+ help_msg: "showTasks",
+ action_msg: "Show State\n",
+};
+
+
+static void sysrq_handle_showmem(int key, struct pt_regs *pt_regs,
+ struct kbd_struct *kbd, struct tty_struct *tty) {
+ show_mem();
+}
+static struct sysrq_key_op sysrq_showmem_op = {
+ handler: sysrq_handle_showmem,
+ help_msg: "showMem",
+ action_msg: "Show Memory\n",
+};
+
+/* SHOW SYSRQ HANDLERS BLOCK */
+
+
+/* SIGNAL SYSRQ HANDLERS BLOCK */
+
+/* signal sysrq helper function
+ * Sends a signal to all user processes */
+static void send_sig_all(int sig, int even_init)
+{
+ struct task_struct *p;
+
+ for_each_task(p) {
+ if (p->mm) { /* Not swapper nor kernel thread */
+ if (p->pid == 1 && even_init)
+ /* Ugly hack to kill init */
+ p->pid = 0x8000;
+ if (p->pid != 1)
+ force_sig(sig, p);
+ }
+ }
+}
+
+static void sysrq_handle_term(int key, struct pt_regs *pt_regs,
+ struct kbd_struct *kbd, struct tty_struct *tty) {
+ send_sig_all(SIGTERM, 0);
+ console_loglevel = 8;
+}
+static struct sysrq_key_op sysrq_term_op = {
+ handler: sysrq_handle_term,
+ help_msg: "tErm",
+ action_msg: "Terminate All Tasks\n",
+};
+
+static void sysrq_handle_kill(int key, struct pt_regs *pt_regs,
+ struct kbd_struct *kbd, struct tty_struct *tty) {
+ send_sig_all(SIGKILL, 0);
+ console_loglevel = 8;
+}
+static struct sysrq_key_op sysrq_kill_op = {
+ handler: sysrq_handle_kill,
+ help_msg: "kIll",
+ action_msg: "Kill All Tasks\n",
+};
+
+static void sysrq_handle_killall(int key, struct pt_regs *pt_regs,
+ struct kbd_struct *kbd, struct tty_struct *tty) {
+ send_sig_all(SIGKILL, 1);
+ console_loglevel = 8;
+}
+static struct sysrq_key_op sysrq_killall_op = {
+ handler: sysrq_handle_killall,
+ help_msg: "killalL",
+ action_msg: "Kill All Tasks (even init)\n",
+};
+
+/* END SIGNAL SYSRQ HANDLERS BLOCK */
+
+
+/* Key Operations table and lock */
+spinlock_t sysrq_key_table_lock = SPIN_LOCK_UNLOCKED;
+#define SYSRQ_KEY_TABLE_LENGTH 36
+static struct sysrq_key_op *sysrq_key_table[SYSRQ_KEY_TABLE_LENGTH] = {
+/* 0 */ &sysrq_loglevel_op,
+/* 1 */ &sysrq_loglevel_op,
+/* 2 */ &sysrq_loglevel_op,
+/* 3 */ &sysrq_loglevel_op,
+/* 4 */ &sysrq_loglevel_op,
+/* 5 */ &sysrq_loglevel_op,
+/* 6 */ &sysrq_loglevel_op,
+/* 7 */ &sysrq_loglevel_op,
+/* 8 */ &sysrq_loglevel_op,
+/* 9 */ &sysrq_loglevel_op,
+/* a */ NULL, /* Don't use for system provided sysrqs,
+ it is handled specially on the spark
+ and will never arive */
+/* b */ &sysrq_reboot_op,
+/* c */ NULL,
+/* d */ NULL,
+/* e */ &sysrq_term_op,
+/* f */ NULL,
+/* g */ NULL,
+/* h */ NULL,
+/* i */ &sysrq_kill_op,
+/* j */ NULL,
+#ifdef CONFIG_VT
+/* k */ &sysrq_SAK_op,
+#else
+/* k */ NULL,
+#endif
+/* l */ &sysrq_killall_op,
+/* m */ &sysrq_showmem_op,
+/* n */ NULL,
+/* o */ NULL, /* This will often be registered
+ as 'Off' at init time */
+/* p */ &sysrq_showregs_op,
+/* q */ NULL,
+/* r */ &sysrq_unraw_op,
+/* s */ &sysrq_sync_op,
+/* t */ &sysrq_showstate_op,
+/* u */ &sysrq_mountro_op,
+/* v */ NULL,
+/* w */ NULL,
+/* x */ NULL,
+/* w */ NULL,
+/* z */ NULL
+};
+
+/* key2index calculation, -1 on invalid index */
+static __inline__ int sysrq_key_table_key2index(int key) {
+ int retval;
+ if ((key >= '0') & (key <= '9')) {
+ retval = key - '0';
+ } else if ((key >= 'a') & (key <= 'z')) {
+ retval = key + 10 - 'a';
+ } else {
+ retval = -1;
+ }
+ return retval;
}
+
+/*
+ * table lock and unlocking functions, exposed to modules
+ */
+
+void __sysrq_lock_table (void) { spin_lock(&sysrq_key_table_lock); }
+
+void __sysrq_unlock_table (void) { spin_unlock(&sysrq_key_table_lock); }
+
+/*
+ * get and put functions for the table, exposed to modules.
+ */
+
+struct sysrq_key_op *__sysrq_get_key_op (int key) {
+ struct sysrq_key_op *op_p;
+ int i;
+
+ i = sysrq_key_table_key2index(key);
+ op_p = (i == -1) ? NULL : sysrq_key_table[i];
+ return op_p;
+}
+
+void __sysrq_put_key_op (int key, struct sysrq_key_op *op_p) {
+ int i;
+
+ i = sysrq_key_table_key2index(key);
+ if (i != -1)
+ sysrq_key_table[i] = op_p;
+}
+
+/*
+ * This function is called by the keyboard handler when SysRq is pressed
+ * and any other keycode arrives.
+ */
+
+void handle_sysrq(int key, struct pt_regs *pt_regs,
+ struct kbd_struct *kbd, struct tty_struct *tty) {
+ if (!sysrq_enabled)
+ return;
+
+ __sysrq_lock_table();
+ __handle_sysrq_nolock(key, pt_regs, kbd, tty);
+ __sysrq_unlock_table();
+}
+
+/*
+ * This is the non-locking version of handle_sysrq
+ * It must/can only be called by sysrq key handlers,
+ * as they are inside of the lock
+ */
+
+void __handle_sysrq_nolock(int key, struct pt_regs *pt_regs,
+ struct kbd_struct *kbd, struct tty_struct *tty) {
+ struct sysrq_key_op *op_p;
+ int orig_log_level;
+ int i, j;
+
+ if (!sysrq_enabled)
+ return;
+
+ orig_log_level = console_loglevel;
+ console_loglevel = 7;
+ printk(KERN_INFO "SysRq : ");
+
+ op_p = __sysrq_get_key_op(key);
+ if (op_p) {
+ printk ("%s", op_p->action_msg);
+ op_p->handler(key, pt_regs, kbd, tty);
+ } else {
+ printk("HELP : ");
+ /* Only print the help msg once per handler */
+ for (i=0; i<SYSRQ_KEY_TABLE_LENGTH; i++)
+ if (sysrq_key_table[i]) {
+ for (j=0; sysrq_key_table[i] != sysrq_key_table[j]; j++);
+ if (j == i)
+ printk ("%s ", sysrq_key_table[i]->help_msg);
+ }
+ printk ("\n");
+ }
+ console_loglevel = orig_log_level;
+}
+
+EXPORT_SYMBOL(handle_sysrq);
+EXPORT_SYMBOL(__handle_sysrq_nolock);
+EXPORT_SYMBOL(__sysrq_lock_table);
+EXPORT_SYMBOL(__sysrq_unlock_table);
+EXPORT_SYMBOL(__sysrq_get_key_op);
+EXPORT_SYMBOL(__sysrq_put_key_op);
Index: tty_io.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/tty_io.c,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -d -r1.35 -r1.36
--- tty_io.c 2001/10/05 03:58:58 1.35
+++ tty_io.c 2001/10/06 16:11:13 1.36
@@ -95,12 +95,12 @@
#include <asm/system.h>
#include <asm/bitops.h>
-#include <linux/vt_kern.h>
#include <linux/devfs_fs_kernel.h>
-
#include <linux/kmod.h>
#ifdef CONFIG_VT
+#include <linux/vt_kern.h>
+extern void con_init_devfs (void);
#ifdef CONFIG_PROM_CONSOLE
extern void prom_con_init(void);
#endif
@@ -163,6 +163,8 @@
extern void anakin_console_init(void);
extern void sgi_serial_console_init(void);
extern void sci_console_init(void);
+extern void tx3912_console_init(void);
+extern void tx3912_rs_init(void);
#ifndef MIN
#define MIN(a,b) ((a) < (b) ? (a) : (b))
@@ -273,6 +275,8 @@
return 0;
}
+EXPORT_SYMBOL(tty_register_ldisc);
+
/* Set the discipline of a tty line. */
static int tty_set_ldisc(struct tty_struct *tty, int ldisc)
{
@@ -447,9 +451,7 @@
file_list_lock();
for (l = tty->tty_files.next; l != &tty->tty_files; l = l->next) {
struct file * filp = list_entry(l, struct file, f_list);
- if (!filp->f_dentry)
- continue;
- if (filp->f_dentry->d_inode->i_rdev == SYSCONS_DEV) {
+ if (filp->f_dentry->d_inode->i_rdev == SYSCONS_DEV) {
cons_filp = filp;
continue;
}
@@ -749,10 +751,10 @@
return -ESPIPE;
/*
- * For now, we redirect writes from /dev/console.
+ * For now, we redirect writes from /dev/console.
*/
inode = file->f_dentry->d_inode;
- is_console = (inode->i_rdev == SYSCONS_DEV);
+ is_console = (inode->i_rdev == SYSCONS_DEV);
if (is_console && redirect)
tty = redirect;
@@ -1498,12 +1500,12 @@
if (!memcmp(&tmp_ws, &tty->winsize, sizeof(*arg)))
return 0;
#ifdef CONFIG_VT
- if (tty->driver.type == TTY_DRIVER_TYPE_CONSOLE) {
- struct vc_data *vc = (struct vc_data *) tty->driver_data;
+ if (tty->driver.type == TTY_DRIVER_TYPE_CONSOLE) {
+ struct vc_data *vc = (struct vc_data *) tty->driver_data;
- if (!vc || vc_resize(vc, tmp_ws.ws_col, tmp_ws.ws_row))
- return -ENXIO;
- }
+ if (!vc || vc_resize(vc, tmp_ws.ws_col, tmp_ws.ws_row))
+ return -ENXIO;
+ }
#endif
if (tty->pgrp > 0)
kill_pg(tty->pgrp, SIGWINCH, 1);
@@ -2024,7 +2026,7 @@
break;
default:
if (driver->major == PTY_MASTER_MAJOR)
- flags |= DEVFS_FL_AUTO_OWNER;
+ mode |= S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
break;
}
if ( (minor < driver->minor_start) ||
@@ -2190,6 +2192,9 @@
#ifdef CONFIG_VT
vt_console_init();
#endif
+#ifdef CONFIG_AU1000_SERIAL_CONSOLE
+ au1000_serial_console_init();
+#endif
#ifdef CONFIG_SERIAL_CONSOLE
#if (defined(CONFIG_8xx) || defined(CONFIG_8260))
console_8xx_init();
@@ -2231,14 +2236,20 @@
#ifdef CONFIG_SERIAL_SA1100_CONSOLE
sa1100_rs_console_init();
#endif
+#ifdef CONFIG_ARC_CONSOLE
+ arc_console_init();
+#endif
#ifdef CONFIG_SERIAL_AMBA_CONSOLE
ambauart_console_init();
#endif
+#ifdef CONFIG_SERIAL_TX3912_CONSOLE
+ tx3912_console_init();
+#endif
#ifdef CONFIG_SERIAL_CLPS711X_CONSOLE
- clps711xuart_console_init();
+ clps711xuart_console_init();
#endif
#ifdef CONFIG_SERIAL_ANAKIN_CONSOLE
- anakin_console_init();
+ anakin_console_init();
#endif
}
@@ -2254,7 +2265,7 @@
void __init tty_init(void)
{
struct tty_driver *p;
- int i;
+ int i;
/*
* dev_tty_driver and dev_console_driver are actually magic
@@ -2288,8 +2299,8 @@
panic("Couldn't register /dev/console driver\n");
/*
- * Some consoles calls tty_register_driver() before kmalloc() works.
- * Thus, we can't devfs_register() then. Do so now, instead.
+ * Some console calls tty_register_driver() before kmalloc() works.
+ * Thus, we can't devfs_register() then. Do so now, instead.
*/
for (p = tty_drivers; p; p = p->next) {
if (p->flags && TTY_DRIVER_NO_DEVFS) {
@@ -2298,7 +2309,6 @@
}
}
-
#ifdef CONFIG_UNIX98_PTYS
dev_ptmx_driver = dev_tty_driver;
dev_ptmx_driver.driver_name = "/dev/ptmx";
@@ -2314,20 +2324,23 @@
#ifdef CONFIG_VT
#if defined (CONFIG_PROM_CONSOLE)
- prom_con_init();
+ prom_con_init();
#endif
#if defined (CONFIG_FRAMEBUFFER_CONSOLE)
- fb_console_init();
+ fb_console_init();
#endif
kbd_init();
console_map_init();
- vcs_init();
+ vcs_init();
#endif
#ifdef CONFIG_ESPSERIAL /* init ESP before rs, so rs doesn't see the port */
espserial_init();
#endif
#if defined(CONFIG_MVME162_SCC) || defined(CONFIG_BVME6000_SCC) || defined(CONFIG_MVME147_SCC)
vme_scc_init();
+#endif
+#ifdef CONFIG_SERIAL_TX3912
+ tx3912_rs_init();
#endif
#ifdef CONFIG_COMPUTONE
ip2_init();
Index: vt_ioctl.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/vt_ioctl.c,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -d -r1.60 -r1.61
--- vt_ioctl.c 2001/10/05 03:58:58 1.60
+++ vt_ioctl.c 2001/10/06 16:11:13 1.61
@@ -1332,7 +1332,8 @@
vc->vt_mode.frsig = 0;
vc->vt_pid = -1;
vc->vt_newvt = -1;
- reset_palette(vc);
+ if (!in_interrupt()) /* Via keyboard.c:SAK() - akpm */
+ reset_palette(vc);
}
inline void switch_screen(struct vc_data *new_vc, struct vc_data *old_vc)
|
|
From: James S. <jsi...@us...> - 2001-10-06 16:11:17
|
Update of /cvsroot/linuxconsole/ruby/linux/include/asm-ppc In directory usw-pr-cvs1:/tmp/cvs-serv25708/linux/include/asm-ppc Modified Files: page.h Log Message: Synced to 2.4.10 Index: page.h =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/include/asm-ppc/page.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- page.h 2001/09/02 23:21:37 1.1 +++ page.h 2001/10/06 16:11:13 1.2 @@ -12,6 +12,7 @@ #ifdef __KERNEL__ #include <linux/config.h> +/* Be sure to change arch/ppc/Makefile to match */ #define PAGE_OFFSET 0xc0000000 #define KERNELBASE PAGE_OFFSET |
|
From: James S. <jsi...@us...> - 2001-10-06 16:11:17
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/ppc/kernel
In directory usw-pr-cvs1:/tmp/cvs-serv25708/linux/arch/ppc/kernel
Modified Files:
apus_setup.c chrp_setup.c pmac_setup.c prep_setup.c
Log Message:
Synced to 2.4.10
Index: apus_setup.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/arch/ppc/kernel/apus_setup.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- apus_setup.c 2001/10/05 03:58:58 1.3
+++ apus_setup.c 2001/10/06 16:11:12 1.4
@@ -1,5 +1,5 @@
/*
- * BK Id: SCCS/s.apus_setup.c 1.14 07/06/01 09:19:28 trini
+ * BK Id: SCCS/s.apus_setup.c 1.20 09/08/01 15:47:42 paulus
*/
/*
* linux/arch/ppc/kernel/apus_setup.c
@@ -75,7 +75,6 @@
#include <asm/io.h>
#include <asm/dma.h>
#include <asm/machdep.h>
-#include <asm/init.h>
#include "local_irq.h"
@@ -561,32 +560,8 @@
/*
* IDE stuff.
*/
-void ide_insw(ide_ioreg_t port, void *buf, int ns);
-void ide_outsw(ide_ioreg_t port, void *buf, int ns);
-void
-apus_ide_insw(ide_ioreg_t port, void *buf, int ns)
-{
- ide_insw(port, buf, ns);
-}
-
-void
-apus_ide_outsw(ide_ioreg_t port, void *buf, int ns)
-{
- ide_outsw(port, buf, ns);
-}
-int
-apus_ide_default_irq(ide_ioreg_t base)
-{
- return 0;
-}
-
-ide_ioreg_t
-apus_ide_default_io_base(int index)
-{
- return 0;
-}
-
+#if 0 /* no longer used -- paulus */
void
apus_ide_fix_driveid(struct hd_driveid *id)
{
@@ -632,6 +607,7 @@
}
}
}
+#endif /* 0 */
__init
void apus_ide_init_hwif_ports (hw_regs_t *hw, ide_ioreg_t data_port,
@@ -952,6 +928,15 @@
return total;
}
+static void __init
+apus_map_io(void)
+{
+ /* Map PPC exception vectors. */
+ io_block_mapping(0xfff00000, 0xfff00000, 0x00020000, _PAGE_KERNEL);
+ /* Map chip and ZorroII memory */
+ io_block_mapping(zTwoBase, 0x00000000, 0x01000000, _PAGE_IO);
+}
+
__init
void apus_init_IRQ(void)
{
@@ -974,8 +959,8 @@
}
__init
-void apus_init(unsigned long r3, unsigned long r4, unsigned long r5,
- unsigned long r6, unsigned long r7)
+void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
+ unsigned long r6, unsigned long r7)
{
extern int parse_bootinfo(const struct bi_record *);
extern char _end[];
@@ -1026,19 +1011,13 @@
ppc_md.calibrate_decr = apus_calibrate_decr;
ppc_md.find_end_of_memory = apus_find_end_of_memory;
+ ppc_md.setup_io_mappings = apus_map_io;
ppc_md.nvram_read_val = NULL;
ppc_md.nvram_write_val = NULL;
#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)
- ppc_ide_md.insw = apus_ide_insw;
- ppc_ide_md.outsw = apus_ide_outsw;
- ppc_ide_md.default_irq = apus_ide_default_irq;
- ppc_ide_md.default_io_base = apus_ide_default_io_base;
- ppc_ide_md.fix_driveid = apus_ide_fix_driveid;
ppc_ide_md.ide_init_hwif = apus_ide_init_hwif_ports;
-
- ppc_ide_md.io_base = _IO_BASE;
#endif
}
Index: chrp_setup.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/arch/ppc/kernel/chrp_setup.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- chrp_setup.c 2001/07/29 18:24:12 1.2
+++ chrp_setup.c 2001/10/06 16:11:12 1.3
@@ -1,5 +1,5 @@
/*
- * BK Id: %F% %I% %G% %U% %#%
+ * BK Id: SCCS/s.chrp_setup.c 1.36 09/08/01 15:47:42 paulus
*/
/*
* linux/arch/ppc/kernel/setup.c
@@ -31,7 +31,6 @@
#include <linux/init.h>
#include <linux/blk.h>
#include <linux/ioport.h>
-#include <linux/console.h>
#include <linux/pci.h>
#include <linux/version.h>
#include <linux/adb.h>
@@ -50,8 +49,9 @@
#include <asm/machdep.h>
#include <asm/irq.h>
#include <asm/hydra.h>
-#include <asm/init.h>
+#include <asm/sections.h>
#include <asm/time.h>
+#include <asm/btext.h>
#include "local_irq.h"
#include "i8259.h"
@@ -67,19 +67,21 @@
void chrp_event_scan(void);
void rtas_display_progress(char *, unsigned short);
void rtas_indicator_progress(char *, unsigned short);
-void bootx_text_progress(char *, unsigned short);
+void btext_progress(char *, unsigned short);
extern unsigned long pmac_find_end_of_memory(void);
-
extern kdev_t boot_dev;
-
extern PTE *Hash, *Hash_end;
extern unsigned long Hash_size, Hash_mask;
extern int probingmem;
extern unsigned long loops_per_jiffy;
-extern int bootx_text_mapped;
static int max_width;
+#ifdef CONFIG_SMP
+extern struct smp_ops_t chrp_smp_ops;
+extern struct smp_ops_t xics_smp_ops;
+#endif
+
static const char *gg2_memtypes[4] = {
"FPM", "SDRAM", "EDO", "BEDO"
};
@@ -231,9 +233,6 @@
chrp_find_bridges();
#ifndef CONFIG_PPC64BRIDGE
- /* PCI bridge config space access area -
- * appears to be not in devtree on longtrail. */
- ioremap(GG2_PCI_CONFIG_BASE, 0x80000);
/*
* Temporary fixes for PCI devices.
* -- Geert
@@ -242,7 +241,6 @@
#endif /* CONFIG_PPC64BRIDGE */
-#ifndef CONFIG_POWER4
/* Some IBM machines don't have the hydra -- Cort */
if (!OpenPIC_Addr) {
struct device_node *root;
@@ -259,7 +257,6 @@
OpenPIC_Addr = ioremap(opprop[n-1], 0x40000);
}
}
-#endif
/*
* Fix the Super I/O configuration
@@ -390,61 +387,14 @@
/*
* IDE stuff.
*/
-unsigned int chrp_ide_irq = 0;
-int chrp_ide_ports_known = 0;
-ide_ioreg_t chrp_ide_regbase[MAX_HWIFS];
-ide_ioreg_t chrp_idedma_regbase;
-void __chrp
-chrp_ide_probe(void)
-{
- struct pci_dev *pdev = pci_find_device(PCI_VENDOR_ID_WINBOND, PCI_DEVICE_ID_WINBOND_82C105, NULL);
-
- chrp_ide_ports_known = 1;
-
- if(pdev) {
- chrp_ide_regbase[0]=pdev->resource[0].start;
- chrp_ide_regbase[1]=pdev->resource[2].start;
- chrp_idedma_regbase=pdev->resource[4].start;
- chrp_ide_irq=pdev->irq;
- }
-}
-
-void __chrp
-chrp_ide_insw(ide_ioreg_t port, void *buf, int ns)
-{
- ide_insw(port+_IO_BASE, buf, ns);
-}
-
-void __chrp
-chrp_ide_outsw(ide_ioreg_t port, void *buf, int ns)
-{
- ide_outsw(port+_IO_BASE, buf, ns);
-}
-
-int __chrp
-chrp_ide_default_irq(ide_ioreg_t base)
-{
- if (chrp_ide_ports_known == 0)
- chrp_ide_probe();
- return chrp_ide_irq;
-}
-
-ide_ioreg_t __chrp
-chrp_ide_default_io_base(int index)
-{
- if (chrp_ide_ports_known == 0)
- chrp_ide_probe();
- return chrp_ide_regbase[index];
-}
-
-int __chrp
+static int __chrp
chrp_ide_check_region(ide_ioreg_t from, unsigned int extent)
{
return check_region(from, extent);
}
-void __chrp
+static void __chrp
chrp_ide_request_region(ide_ioreg_t from,
unsigned int extent,
const char *name)
@@ -452,14 +402,14 @@
request_region(from, extent, name);
}
-void __chrp
+static void __chrp
chrp_ide_release_region(ide_ioreg_t from,
unsigned int extent)
{
release_region(from, extent);
}
-void __chrp
+static void __chrp
chrp_ide_init_hwif_ports(hw_regs_t *hw, ide_ioreg_t data_port, ide_ioreg_t ctrl_port, int *irq)
{
ide_ioreg_t reg = data_port;
@@ -469,20 +419,42 @@
hw->io_ports[i] = reg;
reg += 1;
}
- if (ctrl_port) {
- hw->io_ports[IDE_CONTROL_OFFSET] = ctrl_port;
+ hw->io_ports[IDE_CONTROL_OFFSET] = ctrl_port;
+}
+#endif
+
+/*
+ * One of the main thing these mappings are needed for is so that
+ * xmon can get to the serial port early on. We probably should
+ * handle the machines with the mpc106 as well as the python (F50)
+ * and the GG2 (longtrail). Actually we should look in the device
+ * tree and do the right thing.
+ */
+static void __init
+chrp_map_io(void)
+{
+ char *name;
+
+ /*
+ * The code below tends to get removed, please don't take it out.
+ * The F50 needs this mapping and it you take it out I'll track you
+ * down and slap your hands. If it causes problems please email me.
+ * -- Cort <co...@fs...>
+ */
+ name = get_property(find_path_device("/"), "name", NULL);
+ if (name && strncmp(name, "IBM-70", 6) == 0
+ && strstr(name, "-F50")) {
+ io_block_mapping(0x80000000, 0x80000000, 0x10000000, _PAGE_IO);
+ io_block_mapping(0x90000000, 0x90000000, 0x10000000, _PAGE_IO);
+ return;
} else {
- hw->io_ports[IDE_CONTROL_OFFSET] = 0;
+ io_block_mapping(0xf8000000, 0xf8000000, 0x04000000, _PAGE_IO);
}
- if (irq != NULL)
- hw->irq = chrp_ide_irq;
}
-#endif
-
void __init
- chrp_init(unsigned long r3, unsigned long r4, unsigned long r5,
- unsigned long r6, unsigned long r7)
+chrp_init(unsigned long r3, unsigned long r4, unsigned long r5,
+ unsigned long r6, unsigned long r7)
{
#ifdef CONFIG_BLK_DEV_INITRD
/* take care of initrd if we have one */
@@ -522,6 +494,7 @@
ppc_md.calibrate_decr = chrp_calibrate_decr;
ppc_md.find_end_of_memory = pmac_find_end_of_memory;
+ ppc_md.setup_io_mappings = chrp_map_io;
if (rtas_data) {
struct device_node *rtas;
@@ -540,22 +513,23 @@
}
}
#ifdef CONFIG_BOOTX_TEXT
- if (ppc_md.progress == NULL && bootx_text_mapped)
- ppc_md.progress = bootx_text_progress;
+ if (ppc_md.progress == NULL && boot_text_mapped)
+ ppc_md.progress = btext_progress;
#endif
+#ifdef CONFIG_SMP
+#ifndef CONFIG_POWER4
+ ppc_md.smp_ops = &chrp_smp_ops;
+#else
+ ppc_md.smp_ops = &xics_smp_ops;
+#endif /* CONFIG_POWER4 */
+#endif /* CONFIG_SMP */
+
#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)
- ppc_ide_md.insw = chrp_ide_insw;
- ppc_ide_md.outsw = chrp_ide_outsw;
- ppc_ide_md.default_irq = chrp_ide_default_irq;
- ppc_ide_md.default_io_base = chrp_ide_default_io_base;
ppc_ide_md.ide_check_region = chrp_ide_check_region;
ppc_ide_md.ide_request_region = chrp_ide_request_region;
ppc_ide_md.ide_release_region = chrp_ide_release_region;
- ppc_ide_md.fix_driveid = ppc_generic_ide_fix_driveid;
ppc_ide_md.ide_init_hwif = chrp_ide_init_hwif_ports;
-
- ppc_ide_md.io_base = _IO_BASE;
#endif
/*
@@ -600,7 +574,7 @@
#ifdef CONFIG_BOOTX_TEXT
void
-bootx_text_progress(char *s, unsigned short hex)
+btext_progress(char *s, unsigned short hex)
{
prom_print(s);
prom_print("\n");
Index: pmac_setup.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/arch/ppc/kernel/pmac_setup.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- pmac_setup.c 2001/10/05 03:58:58 1.4
+++ pmac_setup.c 2001/10/06 16:11:13 1.5
@@ -1,5 +1,5 @@
/*
- * BK Id: SCCS/s.pmac_setup.c 1.24 07/06/01 14:49:51 trini
+ * BK Id: SCCS/s.pmac_setup.c 1.39 09/08/01 15:47:42 paulus
*/
/*
* linux/arch/ppc/kernel/setup.c
@@ -49,7 +49,7 @@
#include <linux/pmu.h>
#include <asm/processor.h>
-#include <asm/init.h>
+#include <asm/sections.h>
#include <asm/prom.h>
#include <asm/system.h>
#include <asm/pgtable.h>
@@ -62,6 +62,8 @@
#include <asm/machdep.h>
#include <asm/dma.h>
#include <asm/bootx.h>
+#include <asm/cputable.h>
+#include <asm/btext.h>
#include <asm/time.h>
#include "local_irq.h"
@@ -107,13 +109,16 @@
sys_ctrler_t sys_ctrler = SYS_CTRLER_UNKNOWN;
#ifdef CONFIG_SMP
+extern struct smp_ops_t psurge_smp_ops;
+extern struct smp_ops_t core99_smp_ops;
+
volatile static long int core99_l2_cache;
-void __pmac
+void __init
core99_init_l2(void)
{
int cpu = smp_processor_id();
- if ( (_get_PVR() >> 16) != 8 && (_get_PVR() >> 16) != 12 )
+ if (!(cur_cpu_spec[0]->cpu_features & CPU_FTR_L2CR))
return;
if (cpu == 0){
@@ -240,6 +245,9 @@
{
struct device_node *cpu;
int *fp;
+ unsigned long pvr;
+
+ pvr = PVR_VER(mfspr(PVR));
/* Set loops_per_jiffy to a half-way reasonable value,
for use until calibrate_delay gets called. */
@@ -247,18 +255,12 @@
if (cpu != 0) {
fp = (int *) get_property(cpu, "clock-frequency", NULL);
if (fp != 0) {
- switch (_get_PVR() >> 16) {
- case 4: /* 604 */
- case 8: /* G3 */
- case 9: /* 604e */
- case 10: /* mach V (604ev5) */
- case 12: /* G4 */
- case 20: /* 620 */
+ if (pvr == 4 || pvr >= 8)
+ /* 604, G3, G4 etc. */
loops_per_jiffy = *fp / HZ;
- break;
- default: /* 601, 603, etc. */
+ else
+ /* 601, 603, etc. */
loops_per_jiffy = *fp / (2*HZ);
- }
} else
loops_per_jiffy = 50000000 / HZ;
}
@@ -266,14 +268,13 @@
/* this area has the CPU identification register
and some registers used by smp boards */
sysctrl_regs = (volatile u32 *) ioremap(0xf8000000, 0x1000);
- __ioremap(0xffc00000, 0x400000, pgprot_val(PAGE_READONLY));
ohare_init();
/* Lookup PCI hosts */
pmac_find_bridges();
/* Checks "l2cr-value" property in the registry */
- if ( (_get_PVR() >> 16) == 8 || (_get_PVR() >> 16) == 12 ) {
+ if (cur_cpu_spec[0]->cpu_features & CPU_FTR_L2CR) {
struct device_node *np = find_devices("cpus");
if (np == 0)
np = find_type_devices("cpu");
@@ -305,9 +306,19 @@
#ifdef CONFIG_ADB_CUDA
find_via_cuda();
+#else
+ if (find_devices("via-cuda")) {
+ printk("WARNING ! Your machine is Cuda based but your kernel\n");
+ printk(" wasn't compiled with CONFIG_ADB_CUDA option !\n");
+ }
#endif
#ifdef CONFIG_ADB_PMU
find_via_pmu();
+#else
+ if (find_devices("via-pmu")) {
+ printk("WARNING ! Your machine is PMU based but your kernel\n");
+ printk(" wasn't compiled with CONFIG_ADB_PMU option !\n");
+ }
#endif
#ifdef CONFIG_NVRAM
pmac_nvram_init();
@@ -318,6 +329,14 @@
else
#endif
ROOT_DEV = to_kdev_t(DEFAULT_ROOT_DEVICE);
+
+#ifdef CONFIG_SMP
+ /* Check for Core99 */
+ if (find_devices("uni-n"))
+ ppc_md.smp_ops = &core99_smp_ops;
+ else
+ ppc_md.smp_ops = &psurge_smp_ops;
+#endif /* CONFIG_SMP */
}
static void __init ohare_init(void)
@@ -432,9 +451,11 @@
static int found_boot = 0;
char *p;
- /* Do nothing if the root has been set already. */
+ /* Do nothing if the root has been mounted already. */
+ if (init_task.fs->rootmnt != NULL)
+ return;
if ((goodness <= current_root_goodness) &&
- (ROOT_DEV != to_kdev_t(DEFAULT_ROOT_DEVICE)))
+ (ROOT_DEV != to_kdev_t(DEFAULT_ROOT_DEVICE)))
return;
p = strstr(saved_command_line, "root=");
if (p != NULL && (p == saved_command_line || p[-1] == ' '))
@@ -520,41 +541,7 @@
/*
* IDE stuff.
*/
-void __pmac
-pmac_ide_insw(ide_ioreg_t port, void *buf, int ns)
-{
- _insw_ns((unsigned short *)(port+_IO_BASE), buf, ns);
-}
-
-void __pmac
-pmac_ide_outsw(ide_ioreg_t port, void *buf, int ns)
-{
- _outsw_ns((unsigned short *)(port+_IO_BASE), buf, ns);
-}
-
-int __pmac
-pmac_ide_default_irq(ide_ioreg_t base)
-{
-#if defined(CONFIG_BLK_DEV_IDE) && defined(CONFIG_BLK_DEV_IDE_PMAC)
- extern int pmac_ide_get_irq(ide_ioreg_t base);
- return pmac_ide_get_irq(base);
-#else
- return 0;
-#endif
-}
-
-ide_ioreg_t __pmac
-pmac_ide_default_io_base(int index)
-{
-#if defined(CONFIG_BLK_DEV_IDE) && defined(CONFIG_BLK_DEV_IDE_PMAC)
- extern ide_ioreg_t pmac_ide_get_base(int index);
- return pmac_ide_get_base(index);
-#else
- return 0;
-#endif
-}
-
-int __pmac
+static int __pmac
pmac_ide_check_region(ide_ioreg_t from, unsigned int extent)
{
/*
@@ -563,11 +550,11 @@
* register, it should be OK.
*/
if (from < ~_IO_BASE)
- return 0;
- return check_region(from, extent);
+ return check_region(from, extent);
+ return 0;
}
-void __pmac
+static void __pmac
pmac_ide_request_region(ide_ioreg_t from,
unsigned int extent,
const char *name)
@@ -576,7 +563,7 @@
request_region(from, extent, name);
}
-void __pmac
+static void __pmac
pmac_ide_release_region(ide_ioreg_t from,
unsigned int extent)
{
@@ -584,21 +571,24 @@
release_region(from, extent);
}
-#if defined(CONFIG_BLK_DEV_IDE) && defined(CONFIG_BLK_DEV_IDE_PMAC)
-/* This is declared in drivers/block/ide-pmac.c */
-void __pmac
-pmac_ide_init_hwif_ports (hw_regs_t *hw, ide_ioreg_t data_port, ide_ioreg_t ctrl_port, int *irq);
-#else
/*
- * This registers the standard ports for this architecture with the IDE
- * driver.
+ * This is only used if we have a PCI IDE controller, not
+ * for the IDE controller in the ohare/paddington/heathrow/keylargo.
*/
-void __pmac
-pmac_ide_init_hwif_ports(hw_regs_t *hw, ide_ioreg_t data_port, ide_ioreg_t ctrl_port, int *irq)
+static void __pmac
+pmac_ide_init_hwif_ports(hw_regs_t *hw, ide_ioreg_t data_port,
+ ide_ioreg_t ctrl_port, int *irq)
{
+ ide_ioreg_t reg = data_port;
+ int i;
+
+ for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) {
+ hw->io_ports[i] = reg;
+ reg += 1;
+ }
+ hw->io_ports[IDE_CONTROL_OFFSET] = ctrl_port;
}
#endif
-#endif
/*
* Read in a property describing some pieces of memory.
@@ -719,19 +709,16 @@
ppc_md.find_end_of_memory = pmac_find_end_of_memory;
#if defined(CONFIG_BLK_DEV_IDE) && defined(CONFIG_BLK_DEV_IDE_PMAC)
- ppc_ide_md.insw = pmac_ide_insw;
- ppc_ide_md.outsw = pmac_ide_outsw;
- ppc_ide_md.default_irq = pmac_ide_default_irq;
- ppc_ide_md.default_io_base = pmac_ide_default_io_base;
ppc_ide_md.ide_check_region = pmac_ide_check_region;
ppc_ide_md.ide_request_region = pmac_ide_request_region;
ppc_ide_md.ide_release_region = pmac_ide_release_region;
- ppc_ide_md.fix_driveid = ppc_generic_ide_fix_driveid;
ppc_ide_md.ide_init_hwif = pmac_ide_init_hwif_ports;
#endif /* CONFIG_BLK_DEV_IDE && CONFIG_BLK_DEV_IDE_PMAC */
+
#ifdef CONFIG_BOOTX_TEXT
ppc_md.progress = pmac_progress;
#endif /* CONFIG_BOOTX_TEXT */
+
if (ppc_md.progress) ppc_md.progress("pmac_init(): exit", 0);
}
@@ -745,7 +732,7 @@
{
if (disp_bi == 0)
return;
- prom_drawstring(s);
- prom_drawchar('\n');
+ btext_drawstring(s);
+ btext_drawchar('\n');
}
#endif /* CONFIG_BOOTX_TEXT */
Index: prep_setup.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/arch/ppc/kernel/prep_setup.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- prep_setup.c 2001/10/05 08:48:44 1.4
+++ prep_setup.c 2001/10/06 16:11:13 1.5
@@ -1,5 +1,5 @@
/*
- * BK Id: SCCS/s.prep_setup.c 1.26 08/05/01 16:18:54 trini
+ * BK Id: SCCS/s.prep_setup.c 1.36 09/08/01 15:47:42 paulus
*/
/*
* linux/arch/ppc/kernel/setup.c
@@ -7,6 +7,9 @@
* Copyright (C) 1995 Linus Torvalds
* Adapted from 'alpha' version by Gary Thomas
* Modified by Cort Dougan (co...@cs...)
+ *
+ * Support for PReP (Motorola MTX/MVME)
+ * by Troy Benjegerdes (ho...@dr...)
*/
/*
@@ -37,7 +40,7 @@
#include <linux/pci.h>
#include <linux/ide.h>
-#include <asm/init.h>
+#include <asm/sections.h>
#include <asm/mmu.h>
#include <asm/processor.h>
#include <asm/residual.h>
@@ -75,6 +78,7 @@
extern unsigned char rs_nvram_read_val(int addr);
extern void rs_nvram_write_val(int addr,
unsigned char val);
+extern void ibm_prep_init(void);
extern void prep_find_bridges(void);
extern char saved_command_line[256];
@@ -316,13 +320,20 @@
/*print_residual_device_info();*/
- raven_init();
+ switch (_prep_type) {
+ case _PREP_Motorola:
+ raven_init();
+ break;
+ case _PREP_IBM:
+ ibm_prep_init();
+ break;
+ }
#ifdef CONFIG_VGA_CONSOLE
/* remap the VGA memory */
vgacon_remap_base = 0xf0000000;
/*vgacon_remap_base = ioremap(0xc0000000, 0xba000);*/
- conswitchp = &vga_con;
+ conswitchp = &vga_con;
#elif defined(CONFIG_DUMMY_CONSOLE)
conswitchp = &dummy_con;
#endif
@@ -649,23 +660,6 @@
}
}
-#if 0
-void __prep
-prep_do_IRQ(struct pt_regs *regs, int cpu)
-{
- int irq;
-
- if ( (irq = i8259_irq(0)) < 0 )
- {
- printk(KERN_DEBUG "Bogus interrupt from PC = %lx\n",
- regs->nip);
- ppc_spurious_interrupts++;
- return;
- }
- ppc_irq_dispatch_handler( regs, irq );
-}
-#endif
-
int __prep
prep_get_irq(struct pt_regs *regs)
{
@@ -688,18 +682,6 @@
/*
* IDE stuff.
*/
-void __prep
-prep_ide_insw(ide_ioreg_t port, void *buf, int ns)
-{
- _insw((unsigned short *)((port)+_IO_BASE), buf, ns);
-}
-
-void __prep
-prep_ide_outsw(ide_ioreg_t port, void *buf, int ns)
-{
- _outsw((unsigned short *)((port)+_IO_BASE), buf, ns);
-}
-
int __prep
prep_ide_default_irq(ide_ioreg_t base)
{
@@ -708,8 +690,9 @@
case 0x170: return 13;
case 0x1e8: return 11;
case 0x168: return 10;
- default:
- return 0;
+ case 0xfff0: return 14; /* MCP(N)750 ide0 */
+ case 0xffe0: return 15; /* MCP(N)750 ide1 */
+ default: return 0;
}
}
@@ -767,6 +750,45 @@
}
#endif
+#ifdef CONFIG_SMP
+/* PReP (MTX) support */
+static int
+smp_prep_probe(void)
+{
+ extern int mot_multi;
+
+ if (mot_multi) {
+ openpic_request_IPIs();
+ smp_hw_index[1] = 1;
+ return 2;
+ }
+
+ return 1;
+}
+
+static void
+smp_prep_kick_cpu(int nr)
+{
+ *(unsigned long *)KERNELBASE = nr;
+ asm volatile("dcbf 0,%0"::"r"(KERNELBASE):"memory");
+ printk("CPU1 reset, waiting\n");
+}
+
+static void
+smp_prep_setup_cpu(int cpu_nr)
+{
+ if (OpenPIC_Addr)
+ do_openpic_setup_cpu();
+}
+
+static struct smp_ops_t prep_smp_ops = {
+ smp_openpic_message_pass,
+ smp_prep_probe,
+ smp_prep_kick_cpu,
+ smp_prep_setup_cpu,
+};
+#endif /* CONFIG_SMP */
+
/*
* This finds the amount of physical ram and does necessary
* setup for prep. This is pretty architecture specific so
@@ -775,29 +797,39 @@
*/
unsigned long __init prep_find_end_of_memory(void)
{
- unsigned long total;
+ unsigned long total = 0;
+ extern unsigned int boot_mem_size;
+
#ifdef CONFIG_PREP_RESIDUAL
total = res->TotalMemory;
-#else
- total = 0;
#endif
- if (total == 0 )
- {
+ if (total == 0 && boot_mem_size != 0)
+ total = boot_mem_size;
+
+ if (total == 0) {
/*
* I need a way to probe the amount of memory if the residual
* data doesn't contain it. -- Cort
*/
- printk("Ramsize from residual data was 0 -- Probing for value\n");
total = 0x02000000;
- printk("Ramsize default to be %ldM\n", total>>20);
+ printk(KERN_INFO "Ramsize from residual data was 0"
+ " -- defaulting to %ldM\n", total>>20);
}
return (total);
}
-unsigned long *MotSave_SmpIar;
-unsigned char *MotSave_CpusState[2];
+/*
+ * Setup the bat mappings we're going to load that cover
+ * the io areas. RAM was mapped by mapin_ram().
+ * -- Cort
+ */
+void __init prep_map_io(void)
+{
+ io_block_mapping(0x80000000, 0x80000000, 0x10000000, _PAGE_IO);
+ io_block_mapping(0xf0000000, 0xc0000000, 0x08000000, _PAGE_IO);
+}
void __init
prep_init2(void)
@@ -825,13 +857,6 @@
{
memcpy((void *)res,(void *)(r3+KERNELBASE),
sizeof(RESIDUAL));
-
- /* These need to be saved for the Motorola Prep
- * MVME4600 and Dual MTX boards.
- */
- MotSave_SmpIar = &old_res->VitalProductData.SmpIar;
- MotSave_CpusState[0] = &old_res->Cpus[0].CpuState;
- MotSave_CpusState[1] = &old_res->Cpus[1].CpuState;
}
#endif
@@ -899,17 +924,18 @@
}
ppc_md.find_end_of_memory = prep_find_end_of_memory;
+ ppc_md.setup_io_mappings = prep_map_io;
#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)
- ppc_ide_md.insw = prep_ide_insw;
- ppc_ide_md.outsw = prep_ide_outsw;
ppc_ide_md.default_irq = prep_ide_default_irq;
ppc_ide_md.default_io_base = prep_ide_default_io_base;
ppc_ide_md.ide_check_region = prep_ide_check_region;
ppc_ide_md.ide_request_region = prep_ide_request_region;
ppc_ide_md.ide_release_region = prep_ide_release_region;
- ppc_ide_md.fix_driveid = NULL;
ppc_ide_md.ide_init_hwif = prep_ide_init_hwif_ports;
-#endif
- ppc_ide_md.io_base = _IO_BASE;
+#endif
+
+#ifdef CONFIG_SMP
+ ppc_md.smp_ops = &prep_smp_ops;
+#endif /* CONFIG_SMP */
}
|
|
From: James S. <jsi...@us...> - 2001-10-06 16:11:16
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/macintosh In directory usw-pr-cvs1:/tmp/cvs-serv25708/linux/drivers/macintosh Modified Files: Makefile Log Message: Synced to 2.4.10 Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/macintosh/Makefile,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Makefile 2001/03/31 00:00:56 1.6 +++ Makefile 2001/10/06 16:11:13 1.7 @@ -15,7 +15,7 @@ # Objects that export symbols. -export-objs := adb.o rtc.o +export-objs := adb.o rtc.o via-pmu.o # Object file lists. |
|
From: James S. <jsi...@us...> - 2001-10-06 16:11:16
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/usb
In directory usw-pr-cvs1:/tmp/cvs-serv25708/linux/drivers/usb
Modified Files:
Config.in Makefile
Log Message:
Synced to 2.4.10
Index: Config.in
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/usb/Config.in,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- Config.in 2001/07/08 00:41:51 1.14
+++ Config.in 2001/10/06 16:11:13 1.15
@@ -32,7 +32,12 @@
if [ "$CONFIG_USB_STORAGE" != "n" ]; then
bool ' USB Mass Storage verbose debug' CONFIG_USB_STORAGE_DEBUG
bool ' Freecom USB/ATAPI Bridge support' CONFIG_USB_STORAGE_FREECOM
- bool ' Microtech CompactFlash/SmartMedia reader' CONFIG_USB_STORAGE_DPCM
+ bool ' ISD-200 USB/ATA Bridge support' CONFIG_USB_STORAGE_ISD200
+ bool ' Microtech CompactFlash/SmartMedia support' CONFIG_USB_STORAGE_DPCM
+ if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
+ bool ' HP CD-Writer 82xx support' CONFIG_USB_STORAGE_HP8200e
+ bool ' SanDisk SDDR-09 (and other SmartMedia) support' CONFIG_USB_STORAGE_SDDR09
+ fi
fi
dep_tristate ' USB Modem (CDC ACM) support' CONFIG_USB_ACM $CONFIG_USB
dep_tristate ' USB Printer support' CONFIG_USB_PRINTER $CONFIG_USB
@@ -52,10 +57,11 @@
dep_tristate ' DABUSB driver' CONFIG_USB_DABUSB $CONFIG_USB
comment 'USB Network adaptors'
- dep_tristate ' PLUSB Prolific USB-Network driver (EXPERIMENTAL)' CONFIG_USB_PLUSB $CONFIG_USB $CONFIG_NET $CONFIG_EXPERIMENTAL
dep_tristate ' USB ADMtek Pegasus-based ethernet device support (EXPERIMENTAL)' CONFIG_USB_PEGASUS $CONFIG_USB $CONFIG_NET $CONFIG_EXPERIMENTAL
dep_tristate ' USB CATC NetMate-based Ethernet driver (EXPERIMENTAL)' CONFIG_USB_CATC $CONFIG_USB $CONFIG_NET $CONFIG_EXPERIMENTAL
- dep_tristate ' NetChip 1080-based USB Host-to-Host Link (EXPERIMENTAL)' CONFIG_USB_NET1080 $CONFIG_USB $CONFIG_NET $CONFIG_EXPERIMENTAL
+ dep_tristate ' USB CDC Ethernet class (USB cable modem) support (EXPERIMENTAL)' CONFIG_USB_CDCETHER $CONFIG_USB $CONFIG_NET $CONFIG_EXPERIMENTAL
+ dep_tristate ' USB KLSI KL5USB101-based ethernet device support (EXPERIMENTAL)' CONFIG_USB_KAWETH $CONFIG_USB $CONFIG_NET $CONFIG_EXPERIMENTAL
+ dep_tristate ' USB-to-USB Networking (NetChip, Prolific, ...) (EXPERIMENTAL)' CONFIG_USB_USBNET $CONFIG_USB $CONFIG_NET $CONFIG_EXPERIMENTAL
comment 'USB port drivers'
dep_tristate ' USS720 parport driver' CONFIG_USB_USS720 $CONFIG_USB $CONFIG_PARPORT
Index: Makefile
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/usb/Makefile,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- Makefile 2001/07/08 00:41:51 1.13
+++ Makefile 2001/10/06 16:11:13 1.14
@@ -17,6 +17,14 @@
list-multi := usbcore.o
usbcore-objs := usb.o usb-debug.o hub.o
+ifneq ($(CONFIG_USB_PWC),n)
+ export-objs += pwc-uncompress.o
+ list-multi += pwc.o
+endif
+
+pwc-objs := pwc-if.o pwc-misc.o pwc-ctrl.o pwc-uncompress.o
+
+
# Optional parts of multipart objects.
ifeq ($(CONFIG_USB_DEVICEFS),y)
@@ -42,20 +50,22 @@
obj-$(CONFIG_USB_PRINTER) += printer.o
obj-$(CONFIG_USB_AUDIO) += audio.o
obj-$(CONFIG_USB_IBMCAM) += ibmcam.o
+obj-$(CONFIG_USB_PWC) += pwc.o
obj-$(CONFIG_USB_DC2XX) += dc2xx.o
obj-$(CONFIG_USB_MDC800) += mdc800.o
obj-$(CONFIG_USB_USS720) += uss720.o
obj-$(CONFIG_USB_DABUSB) += dabusb.o
-obj-$(CONFIG_USB_PLUSB) += plusb.o
obj-$(CONFIG_USB_OV511) += ov511.o
obj-$(CONFIG_USB_SE401) += se401.o
obj-$(CONFIG_USB_PEGASUS) += pegasus.o
obj-$(CONFIG_USB_CATC) += catc.o
+obj-$(CONFIG_USB_KAWETH) += kaweth.o
+obj-$(CONFIG_USB_CDCETHER) += CDCEther.o
obj-$(CONFIG_USB_RIO500) += rio500.o
obj-$(CONFIG_USB_DSBR) += dsbr100.o
obj-$(CONFIG_USB_MICROTEK) += microtek.o
obj-$(CONFIG_USB_BLUETOOTH) += bluetooth.o
-obj-$(CONFIG_USB_NET1080) += net1080.o
+obj-$(CONFIG_USB_USBNET) += usbnet.o
# Object files in subdirectories
@@ -76,3 +86,6 @@
usbcore.o: $(usbcore-objs)
$(LD) -r -o $@ $(usbcore-objs)
+
+pwc.o: $(pwc-objs)
+ $(LD) -r -o $@ $(pwc-objs)
|
|
From: James S. <jsi...@us...> - 2001-10-06 16:11:16
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/block
In directory usw-pr-cvs1:/tmp/cvs-serv25708/linux/drivers/block
Modified Files:
genhd.c
Log Message:
Synced to 2.4.10
Index: genhd.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/block/genhd.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- genhd.c 2001/07/29 18:24:12 1.5
+++ genhd.c 2001/10/06 16:11:13 1.6
@@ -10,13 +10,138 @@
* (li...@ar...)
*/
+/*
+ * TODO: rip out the remaining init crap from this file --hch
+ */
+
#include <linux/config.h>
+#include <linux/module.h>
#include <linux/fs.h>
#include <linux/genhd.h>
#include <linux/kernel.h>
#include <linux/blk.h>
#include <linux/init.h>
+#include <linux/spinlock.h>
+
+
+static rwlock_t gendisk_lock;
+
+/*
+ * Global kernel list of partitioning information.
+ *
+ * XXX: you should _never_ access this directly.
+ * the only reason this is exported is source compatiblity.
+ */
+/*static*/ struct gendisk *gendisk_head;
+
+EXPORT_SYMBOL(gendisk_head);
+
+
+/**
+ * add_gendisk - add partitioning information to kernel list
+ * @gp: per-device partitioning information
+ *
+ * This function registers the partitioning information in @gp
+ * with the kernel.
+ */
+void
+add_gendisk(struct gendisk *gp)
+{
+ write_lock(&gendisk_lock);
+ gp->next = gendisk_head;
+ gendisk_head = gp;
+ write_unlock(&gendisk_lock);
+}
+
+EXPORT_SYMBOL(add_gendisk);
+
+
+/**
+ * del_gendisk - remove partitioning information from kernel list
+ * @gp: per-device partitioning information
+ *
+ * This function unregisters the partitioning information in @gp
+ * with the kernel.
+ */
+void
+del_gendisk(struct gendisk *gp)
+{
+ struct gendisk **gpp;
+
+ write_lock(&gendisk_lock);
+ for (gpp = &gendisk_head; *gpp; gpp = &((*gpp)->next))
+ if (*gpp == gp)
+ break;
+ if (*gpp)
+ *gpp = (*gpp)->next;
+ write_unlock(&gendisk_lock);
+}
+
+EXPORT_SYMBOL(del_gendisk);
+
+/**
+ * get_gendisk - get partitioning information for a given device
+ * @dev: device to get partitioning information for
+ *
+ * This function gets the structure containing partitioning
+ * information for the given device @dev.
+ */
+struct gendisk *
+get_gendisk(kdev_t dev)
+{
+ struct gendisk *gp = NULL;
+ int maj = MAJOR(dev);
+
+ read_lock(&gendisk_lock);
+ for (gp = gendisk_head; gp; gp = gp->next)
+ if (gp->major == maj)
+ break;
+ read_unlock(&gendisk_lock);
+
+ return gp;
+}
+
+EXPORT_SYMBOL(get_gendisk);
+
+
+#ifdef CONFIG_PROC_FS
+int
+get_partition_list(char *page, char **start, off_t offset, int count)
+{
+ struct gendisk *gp;
+ char buf[64];
+ int len, n;
+
+ len = sprintf(page, "major minor #blocks name\n\n");
+ read_lock(&gendisk_lock);
+ for (gp = gendisk_head; gp; gp = gp->next) {
+ for (n = 0; n < (gp->nr_real << gp->minor_shift); n++) {
+ if (gp->part[n].nr_sects == 0)
+ continue;
+
+ len += snprintf(page + len, 63,
+ "%4d %4d %10d %s\n",
+ gp->major, n, gp->sizes[n],
+ disk_name(gp, n, buf));
+ if (len < offset)
+ offset -= len, len = 0;
+ else if (len >= offset + count)
+ goto out;
+ }
+ }
+
+out:
+ read_unlock(&gendisk_lock);
+ *start = page + offset;
+ len -= offset;
+ if (len < 0)
+ len = 0;
+ return len > count ? count : len;
+}
+#endif
+
+
extern int blk_dev_init(void);
#ifdef CONFIG_BLK_DEV_DAC960
extern void DAC960_Initialize(void);
@@ -32,6 +157,7 @@
int __init device_init(void)
{
+ rwlock_init(&gendisk_lock);
blk_dev_init();
sti();
#ifdef CONFIG_I2O
|
|
From: James S. <jsi...@us...> - 2001-10-06 16:11:16
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/sparc64
In directory usw-pr-cvs1:/tmp/cvs-serv25708/linux/arch/sparc64
Modified Files:
config.in
Log Message:
Synced to 2.4.10
Index: config.in
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/arch/sparc64/config.in,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- config.in 2001/10/05 03:58:58 1.18
+++ config.in 2001/10/06 16:11:13 1.19
@@ -194,6 +194,9 @@
fi
dep_tristate 'Qlogic ISP SCSI support' CONFIG_SCSI_QLOGIC_ISP $CONFIG_SCSI
dep_tristate 'Qlogic ISP FC SCSI support' CONFIG_SCSI_QLOGIC_FC $CONFIG_SCSI
+ if [ "$CONFIG_SCSI_QLOGIC_FC" != "n" ]; then
+ define_bool CONFIG_SCSI_QLOGIC_FC_FIRMWARE y
+ fi
fi
endmenu
|
|
From: James S. <jsi...@us...> - 2001-10-06 16:11:16
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/sh/kernel
In directory usw-pr-cvs1:/tmp/cvs-serv25708/linux/arch/sh/kernel
Modified Files:
setup.c
Log Message:
Synced to 2.4.10
Index: setup.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/arch/sh/kernel/setup.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- setup.c 2001/07/30 03:52:10 1.3
+++ setup.c 2001/10/06 16:11:13 1.4
@@ -37,7 +37,6 @@
#include <asm/system.h>
#include <asm/io.h>
#include <asm/io_generic.h>
-#include <asm/smp.h>
#include <asm/machvec.h>
#ifdef CONFIG_SH_EARLY_PRINTK
#include <asm/sh_bios.h>
@@ -47,7 +46,12 @@
* Machine setup..
*/
-struct sh_cpuinfo boot_cpu_data = { CPU_SH_NONE, 0, 0, 0, };
+/*
+ * Initialize loops_per_jiffy as 10000000 (1000MIPS).
+ * This value will be used at the very early stage of serial setup.
+ * The bigger value means no problem.
+ */
+struct sh_cpuinfo boot_cpu_data = { CPU_SH_NONE, 0, 10000000, };
struct screen_info screen_info;
#if defined(CONFIG_SH_GENERIC) || defined(CONFIG_SH_UNKNOWN)
@@ -207,8 +211,7 @@
saved_command_line[COMMAND_LINE_SIZE-1] = '\0';
memory_start = (unsigned long)PAGE_OFFSET+__MEMORY_START;
- /* Default is 4Mbyte. */
- memory_end = (unsigned long)PAGE_OFFSET+0x00400000+__MEMORY_START;
+ memory_end = memory_start + __MEMORY_SIZE;
for (;;) {
/*
@@ -266,7 +269,9 @@
void __init setup_arch(char **cmdline_p)
{
+#if defined(CONFIG_SH_GENERIC) || defined(CONFIG_SH_UNKNOWN)
extern struct sh_machine_vector mv_unknown;
+#endif
struct sh_machine_vector *mv = NULL;
char mv_name[MV_NAME_SIZE] = "";
unsigned long mv_io_base = 0;
@@ -354,6 +359,18 @@
#define PFN_DOWN(x) ((x) >> PAGE_SHIFT)
#define PFN_PHYS(x) ((x) << PAGE_SHIFT)
+#ifdef CONFIG_DISCONTIGMEM
+ NODE_DATA(0)->bdata = &discontig_node_bdata[0];
+ NODE_DATA(1)->bdata = &discontig_node_bdata[1];
+
+ bootmap_size = init_bootmem_node(NODE_DATA(1),
+ PFN_UP(__MEMORY_START_2ND),
+ PFN_UP(__MEMORY_START_2ND),
+ PFN_DOWN(__MEMORY_START_2ND+__MEMORY_SIZE_2ND));
+ free_bootmem_node(NODE_DATA(1), __MEMORY_START_2ND, __MEMORY_SIZE_2ND);
+ reserve_bootmem_node(NODE_DATA(1), __MEMORY_START_2ND, bootmap_size);
+#endif
+
/*
* Find the highest page frame number we have available
*/
@@ -375,7 +392,7 @@
* is intact) must be done via bootmem_alloc().
*/
bootmap_size = init_bootmem_node(NODE_DATA(0), start_pfn,
- __MEMORY_START>>PAGE_SHIFT,
+ __MEMORY_START>>PAGE_SHIFT,
max_low_pfn);
/*
@@ -397,7 +414,8 @@
last_pfn = max_low_pfn;
pages = last_pfn - curr_pfn;
- free_bootmem(PFN_PHYS(curr_pfn), PFN_PHYS(pages));
+ free_bootmem_node(NODE_DATA(0), PFN_PHYS(curr_pfn),
+ PFN_PHYS(pages));
}
/*
@@ -407,19 +425,19 @@
* case of us accidentally initializing the bootmem allocator with
* an invalid RAM area.
*/
- reserve_bootmem(__MEMORY_START+PAGE_SIZE, (PFN_PHYS(start_pfn) +
- bootmap_size + PAGE_SIZE-1) - __MEMORY_START);
+ reserve_bootmem_node(NODE_DATA(0), __MEMORY_START+PAGE_SIZE,
+ (PFN_PHYS(start_pfn)+bootmap_size+PAGE_SIZE-1)-__MEMORY_START);
/*
* reserve physical page 0 - it's a special BIOS page on many boxes,
* enabling clean reboots, SMP operation, laptop functions.
*/
- reserve_bootmem(__MEMORY_START, PAGE_SIZE);
+ reserve_bootmem_node(NODE_DATA(0), __MEMORY_START, PAGE_SIZE);
#ifdef CONFIG_BLK_DEV_INITRD
if (LOADER_TYPE && INITRD_START) {
if (INITRD_START + INITRD_SIZE <= (max_low_pfn << PAGE_SHIFT)) {
- reserve_bootmem(INITRD_START+__MEMORY_START, INITRD_SIZE);
+ reserve_bootmem_node(NODE_DATA(0), INITRD_START+__MEMORY_START, INITRD_SIZE);
initrd_start =
INITRD_START ? INITRD_START + PAGE_OFFSET + __MEMORY_START : 0;
initrd_end = initrd_start + INITRD_SIZE;
@@ -449,7 +467,6 @@
for (i = 0; i < STANDARD_IO_RESOURCES; i++)
request_resource(&ioport_resource, standard_io_resources+i);
#endif
-
/* Perform the machine specific initialisation */
if (sh_mv.mv_init_arch != NULL) {
sh_mv.mv_init_arch();
|
|
From: James S. <jsi...@us...> - 2001-10-06 16:11:16
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/sh
In directory usw-pr-cvs1:/tmp/cvs-serv25708/linux/arch/sh
Modified Files:
config.in
Log Message:
Synced to 2.4.10
Index: config.in
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/arch/sh/config.in,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- config.in 2001/07/08 00:41:51 1.13
+++ config.in 2001/10/06 16:11:13 1.14
@@ -42,6 +42,7 @@
CAT68701 CONFIG_SH_CAT68701 \
BigSur CONFIG_SH_BIGSUR \
SH2000 CONFIG_SH_SH2000 \
+ ADX CONFIG_SH_ADX \
BareCPU CONFIG_SH_UNKNOWN" Generic
# The SH7750 RTC module is disabled in the Dreamcast
@@ -88,24 +89,40 @@
define_bool CONFIG_CPU_SH4 y
fi
bool 'Little Endian' CONFIG_CPU_LITTLE_ENDIAN
+# Platform-specific memory start and size definitions
if [ "$CONFIG_SH_SOLUTION_ENGINE" = "y" -o "$CONFIG_SH_HP600" = "y" -o \
"$CONFIG_SH_BIGSUR" = "y" -o "$CONFIG_SH_7751_SOLUTION_ENGINE" = "y" -o \
"$CONFIG_SH_DREAMCAST" = "y" -o "$CONFIG_SH_SH2000" = "y" ]; then
- define_hex CONFIG_MEMORY_START 0c000000
-else
- if [ "$CONFIG_CPU_SUBTYPE_ST40STB1" = "y" ]; then
- bool 'Memory on LMI' CONFIG_ST40_LMI_MEMORY
- if [ "$CONFIG_ST40_LMI_MEMORY" = "y" ] ; then
+ define_hex CONFIG_MEMORY_START 0c000000
+ define_hex CONFIG_MEMORY_SIZE 00400000
+ define_bool CONFIG_MEMORY_SET y
+fi
+if [ "$CONFIG_CPU_SUBTYPE_ST40STB1" = "y" ]; then
+ bool 'Memory on LMI' CONFIG_ST40_LMI_MEMORY
+ if [ "$CONFIG_ST40_LMI_MEMORY" = "y" ] ; then
define_hex CONFIG_MEMORY_START 08000000
- else
- hex 'EMI physical memory start address' CONFIG_MEMORY_START 08000000
- fi
- else
- hex 'Physical memory start address' CONFIG_MEMORY_START 08000000
- fi
+ define_hex CONFIG_MEMORY_SIZE 00400000
+ define_bool CONFIG_MEMORY_SET y
+ fi
+fi
+if [ "$CONFIG_SH_ADX" = "y" ]; then
+ define_hex CONFIG_MEMORY_START 08000000
+ define_hex CONFIG_MEMORY_SIZE 00400000
+ define_bool CONFIG_MEMORY_SET y
fi
+# If none of the above have set memory start/size, ask the user.
+if [ "$CONFIG_MEMORY_SET" != "y" ]; then
+ hex 'Physical memory start address' CONFIG_MEMORY_START 08000000
+ hex 'Physical memory size' CONFIG_MEMORY_SIZE 00400000
+fi
endmenu
+if [ "$CONFIG_SH_HP690" = "y" ]; then
+ define_bool CONFIG_DISCONTIGMEM y
+else
+ define_bool CONFIG_DISCONTIGMEM n
+fi
+
mainmenu_option next_comment
comment 'General setup'
@@ -120,10 +137,23 @@
bool 'Networking support' CONFIG_NET
if [ "$CONFIG_SH_GENERIC" = "y" -o "$CONFIG_SH_SOLUTION_ENGINE" = "y" -o \
- "$CONFIG_SH_UNKNOWN" = "y" -o "$CONFIG_SH_CAT68701" = "y" ]; then
+ "$CONFIG_SH_UNKNOWN" = "y" -o "$CONFIG_SH_CAT68701" = "y" -o \
+ "$CONFIG_SH_ADX" = "y" ]; then
bool 'Compact Flash Enabler support' CONFIG_CF_ENABLER
fi
+if [ "$CONFIG_CF_ENABLER" = "y" ]; then
+ choice 'Compact Flash Connection Area' \
+ "Area5 CONFIG_CF_AREA5 \
+ Area6 CONFIG_CF_AREA6" Area6
+ if [ "$CONFIG_CF_AREA5" = "y" ]; then
+ define_hex CONFIG_CF_BASE_ADDR b4000000
+ fi
+ if [ "$CONFIG_CF_AREA6" = "y" ]; then
+ define_hex CONFIG_CF_BASE_ADDR b8000000
+ fi
+fi
+
bool 'Hitachi HD64461 companion chip support' CONFIG_HD64461
if [ "$CONFIG_HD64461" = "y" ]; then
int 'HD64461 IRQ' CONFIG_HD64461_IRQ 36
@@ -136,6 +166,8 @@
int 'HD64465 IRQ' CONFIG_HD64465_IRQ 5
fi
+bool 'DMA controller (DMAC) support' CONFIG_SH_DMA
+
bool 'PCI support' CONFIG_PCI
if [ "$CONFIG_PCI" = "y" ]; then
choice ' PCI access mode' \
@@ -148,6 +180,7 @@
if [ "$CONFIG_PCI_GODIRECT" = "y" -o "$CONFIG_PCI_GOANY" = "y" ]; then
define_bool CONFIG_PCI_DIRECT y
fi
+ define_bool CONFIG_SH_PCIDMA_NONCOHERENT n
fi
source drivers/pci/Config.in
@@ -224,13 +257,22 @@
endmenu
fi
+mainmenu_option next_comment
+comment 'Old CD-ROM drivers (not SCSI, not IDE)'
+
+bool 'Support non-SCSI/IDE/ATAPI CDROM drives' CONFIG_CD_NO_IDESCSI
+if [ "$CONFIG_CD_NO_IDESCSI" != "n" ]; then
+ source drivers/cdrom/Config.in
+fi
+endmenu
+
#
# input before char - char/joystick depends on it. As does USB.
#
source drivers/input/Config.in
if [ "$CONFIG_SH_DREAMCAST" = "y" ]; then
-source drivers/maple/Config.in
+ source drivers/maple/Config.in
fi
mainmenu_option next_comment
@@ -261,7 +303,7 @@
"$CONFIG_SH_BIGSUR" = "y" -o \
"$CONFIG_SH_7751_SOLUTION_ENGINE" = "y" -o \
"$CONFIG_SH_SOLUTION_ENGINE" = "y" ]; then
- bool 'Heartbeat LED' CONFIG_HEARTBEAT
+ bool 'Heartbeat LED' CONFIG_HEARTBEAT
fi
if [ "$CONFIG_PARPORT" != "n" ]; then
@@ -297,7 +339,6 @@
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
bool 'Use LinuxSH standard BIOS' CONFIG_SH_STANDARD_BIOS
if [ "$CONFIG_SH_STANDARD_BIOS" = "y" ]; then
- bool 'GDB Stub kernel debug' CONFIG_DEBUG_KERNEL_WITH_GDB_STUB
bool 'Early printk support' CONFIG_SH_EARLY_PRINTK
fi
endmenu
|
|
From: James S. <jsi...@us...> - 2001-10-06 16:11:16
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/mips64/sgi-ip22
In directory usw-pr-cvs1:/tmp/cvs-serv25708/linux/arch/mips64/sgi-ip22
Modified Files:
ip22-setup.c
Log Message:
Synced to 2.4.10
Index: ip22-setup.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/arch/mips64/sgi-ip22/ip22-setup.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- ip22-setup.c 2001/05/12 22:12:06 1.6
+++ ip22-setup.c 2001/10/06 16:11:12 1.7
@@ -1,5 +1,4 @@
-/* $Id$
- *
+/*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
* for more details.
@@ -67,7 +66,7 @@
* graphics console, it is set to "d" for the first serial
* line and "d2" for the second serial line.
*/
- ctype = ArcArcGetEnvironmentVariable("console");
+ ctype = ArcGetEnvironmentVariable("console");
if(*ctype == 'd') {
if(*(ctype+1)=='2')
console_setup ("ttyS1");
@@ -82,7 +81,30 @@
ip22_volume_set(simple_strtoul(ArcGetEnvironmentVariable("volume"),
NULL, 10));
+#ifdef CONFIG_VT
+#ifdef CONFIG_SGI_NEWPORT_CONSOLE
+ conswitchp = &newport_con;
+
+ screen_info = (struct screen_info) {
+ 0, 0, /* orig-x, orig-y */
+ 0, /* unused */
+ 0, /* orig_video_page */
+ 0, /* orig_video_mode */
+ 160, /* orig_video_cols */
+ 0, 0, 0, /* unused, ega_bx, unused */
+ 64, /* orig_video_lines */
+ 0, /* orig_video_isVGA */
+ 16 /* orig_video_points */
+ };
+#else
+ conswitchp = &dummy_con;
+#endif
+#endif
rtc_ops = &indy_rtc_ops;
+ kbd_ops = &sgi_kbd_ops;
+#ifdef CONFIG_PSMOUSE
+ aux_device_present = 0xaa;
+#endif
#ifdef CONFIG_VIDEO_VINO
init_vino();
#endif
|
|
From: James S. <jsi...@us...> - 2001-10-06 16:11:16
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/ppc In directory usw-pr-cvs1:/tmp/cvs-serv25708/linux/arch/ppc Modified Files: config.in Log Message: Synced to 2.4.10 Index: config.in =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/ppc/config.in,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- config.in 2001/07/29 18:24:12 1.19 +++ config.in 2001/10/06 16:11:12 1.20 @@ -1,4 +1,4 @@ -# BK Id: SCCS/s.config.in 1.34 07/08/01 11:39:11 trini +# BK Id: SCCS/s.config.in 1.40 08/24/01 20:31:47 paulus # # For a description of the syntax of this configuration file, # see Documentation/kbuild/config-language.txt. @@ -26,6 +26,7 @@ mainmenu_option next_comment comment 'Platform support' define_bool CONFIG_PPC y +define_bool CONFIG_PPC32 y choice 'Processor Type' \ "6xx/7xx/74xx/8260 CONFIG_6xx \ 4xx CONFIG_4xx \ @@ -42,6 +43,11 @@ define_bool CONFIG_ALL_PPC y fi +if [ "$CONFIG_6xx" = "y" -o "$CONFIG_POWER3" = "y" -o \ + "$CONFIG_POWER4" = "y" ]; then + define_bool CONFIG_PPC_STD_MMU y +fi + if [ "$CONFIG_8260" = "y" ]; then define_bool CONFIG_SERIAL_CONSOLE y bool 'Support for EST8260' CONFIG_EST8260 @@ -93,7 +99,8 @@ bool 'Workarounds for PPC601 bugs' CONFIG_PPC601_SYNC_FIX fi -if [ "$CONFIG_8xx" = "y" -o "$CONFIG_8260" = "y" ]; then +if [ "$CONFIG_POWER3" = "n" -a "$CONFIG_POWER4" = "n" -a \ + "$CONFIG_6xx" = "n" ]; then define_bool CONFIG_ALL_PPC n fi @@ -104,6 +111,11 @@ if [ "$CONFIG_6xx" = "y" -a "$CONFIG_8260" = "n" ];then bool 'AltiVec Support' CONFIG_ALTIVEC + bool 'Thermal Management Support' CONFIG_TAU + if [ "$CONFIG_TAU" = "y" ]; then + bool ' Interrupt driven TAU driver (DANGEROUS)' CONFIG_TAU_INT + bool ' Average high and low temp' CONFIG_TAU_AVERAGE + fi fi if [ "$CONFIG_4xx" = "y" -o "$CONFIG_8xx" = "y" ]; then |
|
From: James S. <jsi...@us...> - 2001-10-06 16:11:15
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/mips64/mm In directory usw-pr-cvs1:/tmp/cvs-serv25708/linux/arch/mips64/mm Modified Files: fault.c Log Message: Synced to 2.4.10 Index: fault.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/mips64/mm/fault.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- fault.c 2001/09/02 23:26:10 1.1 +++ fault.c 2001/10/06 16:11:12 1.2 @@ -32,7 +32,6 @@ #define development_version (LINUX_VERSION_CODE & 0x100) extern void die(char *, struct pt_regs *, unsigned long write); -extern int console_loglevel; /* * Macro for exception fixup code to access integer registers. |
|
From: James S. <jsi...@us...> - 2001-10-06 16:11:15
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/mips/sni
In directory usw-pr-cvs1:/tmp/cvs-serv25708/linux/arch/mips/sni
Modified Files:
setup.c
Log Message:
Synced to 2.4.10
Index: setup.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/arch/mips/sni/setup.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- setup.c 2001/05/12 22:03:50 1.4
+++ setup.c 2001/10/06 16:11:12 1.5
@@ -29,18 +29,6 @@
#include <asm/reboot.h>
#include <asm/sni.h>
-/*
- * Initial irq handlers.
- */
-static void no_action(int cpl, void *dev_id, struct pt_regs *regs) { }
-
-/*
- * IRQ2 is cascade interrupt to second interrupt controller
- */
-static struct irqaction irq2 = { no_action, 0, 0, "cascade", NULL, NULL};
-
-extern asmlinkage void sni_rm200_pci_handle_int(void);
-
extern void sni_machine_restart(char *command);
extern void sni_machine_halt(void);
extern void sni_machine_power_off(void);
@@ -48,20 +36,6 @@
extern struct ide_ops std_ide_ops;
extern struct rtc_ops std_rtc_ops;
-static void __init sni_irq_setup(void)
-{
- set_except_vector(0, sni_rm200_pci_handle_int);
- request_region(0x20,0x20, "pic1");
- request_region(0xa0,0x20, "pic2");
- i8259_setup_irq(2, &irq2);
- /*
- * IRQ0 seems to be the irq for PC style stuff.
- * I don't know how to handle the debug button interrupt, so
- * don't use this button yet or bad things happen ...
- */
- set_cp0_status(ST0_IM, IE_IRQ1 | IE_IRQ3 | IE_IRQ4);
-}
-
void (*board_time_init)(struct irqaction *irq);
static void __init sni_rm200_pci_time_init(struct irqaction *irq)
@@ -70,7 +44,7 @@
outb_p(0x34,0x43); /* binary, mode 2, LSB/MSB, ch 0 */
outb_p(LATCH & 0xff , 0x40); /* LSB */
outb(LATCH >> 8 , 0x40); /* MSB */
- i8259_setup_irq(0, irq);
+ setup_irq(0, irq);
}
unsigned char aux_device_present;
@@ -98,45 +72,11 @@
printk("%s.\n", boardtype);
}
-int __init page_is_ram(unsigned long pagenr)
-{
- return 1;
-}
-
void __init sni_rm200_pci_setup(void)
{
-#if 0 /* XXX Tag me deeper */
- tag *atag;
-
- /*
- * We just check if a tag_screen_info can be gathered
- * in setup_arch(), if yes we don't proceed futher...
- */
- atag = bi_TagFind(tag_screen_info);
- if (!atag) {
- /*
- * If no, we try to find the tag_arc_displayinfo which is
- * always created by Milo for an ARC box (for now Milo only
- * works on ARC boxes :) -Stoned.
- */
- atag = bi_TagFind(tag_arcdisplayinfo);
- if (atag) {
- screen_info.orig_x =
- ((mips_arc_DisplayInfo*)TAGVALPTR(atag))->cursor_x;
- screen_info.orig_y =
- ((mips_arc_DisplayInfo*)TAGVALPTR(atag))->cursor_y;
- screen_info.orig_video_cols =
- ((mips_arc_DisplayInfo*)TAGVALPTR(atag))->columns;
- screen_info.orig_video_lines =
- ((mips_arc_DisplayInfo*)TAGVALPTR(atag))->lines;
- }
- }
-#endif
-
sni_pcimt_detect();
sni_pcimt_sc_init();
- irq_setup = sni_irq_setup;
mips_io_port_base = SNI_PORT_BASE;
/*
|
|
From: James S. <jsi...@us...> - 2001-10-06 16:11:15
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/mips64/kernel In directory usw-pr-cvs1:/tmp/cvs-serv25708/linux/arch/mips64/kernel Modified Files: setup.c Log Message: Synced to 2.4.10 Index: setup.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/mips64/kernel/setup.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- setup.c 2001/07/29 18:24:12 1.2 +++ setup.c 2001/10/06 16:11:12 1.3 @@ -78,7 +78,6 @@ * * These are initialized so they are in the .data section */ -unsigned long mips_memory_upper = KSEG0; unsigned long mips_cputype = CPU_UNKNOWN; unsigned long mips_machtype = MACH_UNKNOWN; unsigned long mips_machgroup = MACH_GROUP_UNKNOWN; |
|
From: James S. <jsi...@us...> - 2001-10-06 16:11:15
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/mips64
In directory usw-pr-cvs1:/tmp/cvs-serv25708/linux/arch/mips64
Modified Files:
config.in
Log Message:
Synced to 2.4.10
Index: config.in
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/arch/mips64/config.in,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- config.in 2001/07/29 18:24:12 1.15
+++ config.in 2001/10/06 16:11:12 1.16
@@ -41,6 +41,7 @@
unset CONFIG_BOOT_ELF64
unset CONFIG_COHERENT_IO
unset CONFIG_ISA
+unset CONFIG_MAPPED_PCI_IO
unset CONFIG_PCI
if [ "$CONFIG_SGI_IP22" = "y" ]; then
@@ -56,6 +57,7 @@
define_bool CONFIG_BOOT_ELF64 y
define_bool CONFIG_ARC64 y
define_bool CONFIG_COHERENT_IO y
+ define_bool CONFIG_MAPPED_PCI_IO y
define_bool CONFIG_PCI y
define_bool CONFIG_QL_ISP_A64 y
define_int CONFIG_L1_CACHE_SHIFT 7
@@ -177,7 +179,7 @@
fi
endmenu
-source drivers/message/i2o/Config.in
+#source drivers/message/i2o/Config.in
if [ "$CONFIG_NET" = "y" ]; then
mainmenu_option next_comment
@@ -255,7 +257,7 @@
fi
bool 'Remote GDB kernel debugging' CONFIG_REMOTE_DEBUG
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
-if [ "$CONFIG_SMP" != "n" ]; then
+if [ "$CONFIG_SMP" != "y" ]; then
bool 'Run uncached' CONFIG_MIPS_UNCACHED
fi
endmenu
|
|
From: James S. <jsi...@us...> - 2001-10-06 16:11:15
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/mips/sgi/kernel
In directory usw-pr-cvs1:/tmp/cvs-serv25708/linux/arch/mips/sgi/kernel
Modified Files:
setup.c
Log Message:
Synced to 2.4.10
Index: setup.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/arch/mips/sgi/kernel/setup.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- setup.c 2001/05/12 22:02:08 1.5
+++ setup.c 2001/10/06 16:11:12 1.6
@@ -23,6 +23,7 @@
#include <asm/sgi/sgimc.h>
#include <asm/sgi/sgihpc.h>
#include <asm/sgi/sgint23.h>
+#include <asm/time.h>
#include <asm/gdb-stub.h>
#ifdef CONFIG_REMOTE_DEBUG
@@ -31,7 +32,7 @@
static int remote_debug = 0;
#endif
-#if defined(CONFIG_SERIAL_CONSOLE) || defined(CONFIG_SGI_PROM_CONSOLE)
+#if defined(CONFIG_SERIAL_CONSOLE) || defined(CONFIG_ARC_CONSOLE)
extern void console_setup(char *);
#endif
@@ -116,28 +117,6 @@
sgi_read_status
};
-static void __init sgi_irq_setup(void)
-{
- sgint_init();
-
-#ifdef CONFIG_REMOTE_DEBUG
- if (remote_debug)
- set_debug_traps();
- breakpoint(); /* you may move this line to whereever you want :-) */
-#endif
-}
-
-int __init page_is_ram(unsigned long pagenr)
-{
- if ((pagenr<<PAGE_SHIFT) < 0x2000UL)
- return 1;
- if ((pagenr<<PAGE_SHIFT) > 0x08002000)
- return 1;
- return 0;
-}
-
-void (*board_time_init)(struct irqaction *irq);
-
static unsigned long dosample(volatile unsigned char *tcwp,
volatile unsigned char *tc2p)
{
@@ -160,14 +139,16 @@
ct1 = read_32bit_cp0_register(CP0_COUNT);
} while(msb);
- /* Stop the counter. */
- *tcwp = (SGINT_TCWORD_CNT2 | SGINT_TCWORD_CALL | SGINT_TCWORD_MSWST);
+ /* Stop the counter. */
+ *tcwp = (SGINT_TCWORD_CNT2 | SGINT_TCWORD_CALL | SGINT_TCWORD_MSWST);
- /* Return the difference, this is how far the r4k counter increments
- * for every 1/HZ seconds. We round off the nearest 1 MHz of
- * master clock (= 1000000 / 100 / 2 = 5000 count).
- */
- return ((ct1 - ct0) / 5000) * 5000;
+ /*
+ * Return the difference, this is how far the r4k counter increments
+ * for every 1/HZ seconds. We round off the nearest 1 MHz of master
+ * clock (= 1000000 / 100 / 2 = 5000 count).
+ */
+
+ return ((ct1 - ct0) / 5000) * 5000;
}
#define ALLINTS (IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3 | IE_IRQ4 | IE_IRQ5)
@@ -179,7 +160,7 @@
*/
struct sgi_ioc_timers *p;
volatile unsigned char *tcwp, *tc2p;
- unsigned long r4k_ticks[3] = { 0, 0, 0 };
+ unsigned long r4k_ticks[3];
unsigned long r4k_next;
/* Figure out the r4k offset, the algorithm is very simple
@@ -200,10 +181,12 @@
dosample(tcwp, tc2p); /* Prime cache. */
dosample(tcwp, tc2p); /* Prime cache. */
/* Zero is NOT an option. */
- while (!r4k_ticks[0])
+ do {
r4k_ticks[0] = dosample (tcwp, tc2p);
- while (!r4k_ticks[1])
+ } while (!r4k_ticks[0]);
+ do {
r4k_ticks[1] = dosample (tcwp, tc2p);
+ } while (!r4k_ticks[1]);
if (r4k_ticks[0] != r4k_ticks[1]) {
printk ("warning: timer counts differ, retrying...");
@@ -225,7 +208,7 @@
/* Set ourselves up for future interrupts */
r4k_next = (read_32bit_cp0_register(CP0_COUNT) + r4k_interval);
write_32bit_cp0_register(CP0_COMPARE, r4k_next);
- set_cp0_status(ST0_IM, ALLINTS);
+ change_cp0_status(ST0_IM, ALLINTS);
sti ();
}
@@ -238,8 +221,6 @@
char *kgdb_ttyd;
#endif
-
- irq_setup = sgi_irq_setup;
board_time_init = sgi_time_init;
/* Init the INDY HPC I/O controller. Need to call this before
@@ -281,7 +262,7 @@
line ? 1 : 2);
rs_kgdb_hook(line);
- prom_printf("KGDB: Using serial line /dev/ttyd%d for session, "
+ printk("KGDB: Using serial line /dev/ttyd%d for session, "
"please connect your debugger\n", line ? 1 : 2);
remote_debug = 1;
@@ -289,7 +270,7 @@
}
#endif
-#ifdef CONFIG_SGI_PROM_CONSOLE
+#ifdef CONFIG_ARC_CONSOLE
console_setup("ttyS0");
#endif
@@ -320,5 +301,4 @@
#ifdef CONFIG_VIDEO_VINO
init_vino();
#endif
-
}
|