You can subscribe to this list here.
| 2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(6) |
Sep
(2) |
Oct
(43) |
Nov
(4) |
Dec
(12) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2001 |
Jan
(78) |
Feb
(97) |
Mar
(29) |
Apr
(2) |
May
(22) |
Jun
(38) |
Jul
(11) |
Aug
(27) |
Sep
(40) |
Oct
(2) |
Nov
(17) |
Dec
(8) |
| 2002 |
Jan
|
Feb
(2) |
Mar
(1) |
Apr
(480) |
May
(456) |
Jun
(12) |
Jul
|
Aug
(1) |
Sep
|
Oct
(18) |
Nov
(3) |
Dec
(6) |
| 2003 |
Jan
|
Feb
(18) |
Mar
(1) |
Apr
|
May
(6) |
Jun
(147) |
Jul
(7) |
Aug
(3) |
Sep
(235) |
Oct
(10) |
Nov
(2) |
Dec
(1) |
| 2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Andy P. <at...@us...> - 2002-04-11 14:31:33
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/s390
In directory usw-pr-cvs1:/tmp/cvs-serv8509/s390
Modified Files:
Config.in Makefile ccwcache.c idals.c s390dyn.c s390io.c
s390mach.c
Log Message:
synch 2.4.15 commit 52
Index: Config.in
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/s390/Config.in,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- Config.in 25 Feb 2001 23:15:14 -0000 1.1.1.2
+++ Config.in 11 Apr 2002 12:55:53 -0000 1.2
@@ -7,19 +7,28 @@
if [ "$CONFIG_BLK_DEV_RAM" = "y" -o "$CONFIG_BLK_DEV_RAM" = "m" ]; then
int ' Default RAM disk size' CONFIG_BLK_DEV_RAM_SIZE 24576
fi
-dep_bool ' Initial RAM disk (initrd) support' CONFIG_BLK_DEV_INITRD
+dep_bool ' Initial RAM disk (initrd) support' CONFIG_BLK_DEV_INITRD $CONFIG_BLK_DEV_RAM
tristate 'XPRAM disk support' CONFIG_BLK_DEV_XPRAM
comment 'S/390 block device drivers'
tristate 'Support for DASD devices' CONFIG_DASD
if [ "$CONFIG_DASD" != "n" ]; then
- bool ' Support for ECKD Disks' CONFIG_DASD_ECKD
- bool ' Support for FBA Disks' CONFIG_DASD_FBA
-# bool ' Support for CKD Disks' CONFIG_DASD_CKD
- if [ "$CONFIG_ARCH_S390" = "y" ]; then
- bool ' Support for DIAG access to CMS reserved Disks' CONFIG_DASD_MDSK
+ dep_tristate ' Support for ECKD Disks' CONFIG_DASD_ECKD $CONFIG_DASD
+ if [ "$CONFIG_DASD_ECKD" = "m" ]; then
+ bool ' Automatic activation of ECKD module' CONFIG_DASD_AUTO_ECKD
fi;
+ dep_tristate ' Support for FBA Disks' CONFIG_DASD_FBA $CONFIG_DASD
+ if [ "$CONFIG_DASD_FBA" = "m" ]; then
+ bool ' Automatic activation of FBA module' CONFIG_DASD_AUTO_FBA
+ fi;
+# dep_tristate ' Support for CKD Disks' CONFIG_DASD_CKD $CONFIG_DASD
+ if [ "$CONFIG_ARCH_S390X" != "y" ]; then
+ dep_tristate ' Support for DIAG access to CMS reserved Disks' CONFIG_DASD_DIAG $CONFIG_DASD
+ if [ "$CONFIG_DASD_DIAG" = "m" ]; then
+ bool ' Automatic activation of DIAG module' CONFIG_DASD_AUTO_DIAG
+ fi;
+ fi;
fi
endmenu
@@ -35,13 +44,18 @@
comment 'S/390 character device drivers'
-bool 'Support for 3215 line mode terminal' CONFIG_3215
-if [ "$CONFIG_3215" = "y" ]; then
- bool 'Support for console on 3215 line mode terminal' CONFIG_3215_CONSOLE
+tristate 'Support for locally attached 3270 tubes' CONFIG_TN3270
+if [ "$CONFIG_TN3270" = "y" ]; then
+ bool 'Support for console on 3270 line mode terminal' CONFIG_TN3270_CONSOLE
+fi
+bool 'Support for 3215 line mode terminal' CONFIG_TN3215
+if [ "$CONFIG_TN3215" = "y" ]; then
+ bool 'Support for console on 3215 line mode terminal' CONFIG_TN3215_CONSOLE
fi
bool 'Support for HWC line mode terminal' CONFIG_HWC
if [ "$CONFIG_HWC" = "y" ]; then
- bool 'console on HWC line mode terminal' CONFIG_HWC_CONSOLE
+ bool ' console on HWC line mode terminal' CONFIG_HWC_CONSOLE
+ tristate ' Control-Program Identification' CONFIG_HWC_CPI
fi
tristate 'S/390 tape device support' CONFIG_S390_TAPE
if [ "$CONFIG_S390_TAPE" != "n" ]; then
@@ -61,11 +75,18 @@
if [ "$CONFIG_NETDEVICES" = "y" ]; then
tristate 'Dummy net driver support' CONFIG_DUMMY
+ tristate 'Bonding driver support' CONFIG_BONDING
+ tristate 'EQL (serial line load balancing) support' CONFIG_EQUALIZER
+ tristate 'Universal TUN/TAP device driver support' CONFIG_TUN
bool 'Ethernet (10 or 100Mbit)' CONFIG_NET_ETHERNET
bool 'Token Ring driver support' CONFIG_TR
bool 'FDDI driver support' CONFIG_FDDI
comment 'S/390 network device drivers'
- bool 'Channel Device Configuration (Temporary Option)' CONFIG_CHANDEV
+ bool 'Channel Device Configuration' CONFIG_CHANDEV
+ if [ "$CONFIG_CHANDEV" = "y" ]; then
+ define_bool CONFIG_HOTPLUG y
+ fi
+
tristate 'CTC device support' CONFIG_CTC
tristate 'IUCV device support (VM only)' CONFIG_IUCV
fi
Index: Makefile
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/s390/Makefile,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- Makefile 25 Feb 2001 23:15:14 -0000 1.1.1.2
+++ Makefile 11 Apr 2002 12:55:53 -0000 1.2
@@ -1,39 +1,15 @@
#
-# Makefile for the linux i386-specific parts of the memory manager.
+# Makefile for the S/390 specific device drivers
#
-# Note! Dependencies are done automagically by 'make dep', which also
-# removes any old dependencies. DON'T put your own dependencies here
-# unless it's something special (ie not a .c file).
-#
-# Note 2! The CFLAGS definition is now in the main makefile...
-
-all: io.o
-CFLAGS +=
O_TARGET := io.o
-obj-y := s390io.o s390mach.o s390dyn.o idals.o ccwcache.o
-
subdir-y := block char misc net
subdir-m := $(subdir-y)
-obj-y += block/s390-block.o \
- char/s390-char.o \
- misc/s390-misc.o \
- net/s390-net.o
-
-io.o: $(obj-y)
-
-block/s390-block.o: dummy
- $(MAKE) -C block
-
-char/s390-char.o: dummy
- $(MAKE) -C char
-
-misc/s390-misc.o: dummy
- $(MAKE) -C misc
+obj-y := s390io.o s390mach.o s390dyn.o idals.o ccwcache.o
+export-objs += ccwcache.o idals.o s390dyn.o s390io.o
-net/s390-net.o: dummy
- $(MAKE) -C net
+obj-y += $(foreach dir,$(subdir-y),$(dir)/s390-$(dir).o)
include $(TOPDIR)/Rules.make
Index: ccwcache.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/s390/ccwcache.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- ccwcache.c 25 Feb 2001 23:15:14 -0000 1.1.1.1
+++ ccwcache.c 11 Apr 2002 12:55:53 -0000 1.2
@@ -9,7 +9,8 @@
* 11/14/00 redesign by Martin Schwidefsky
*/
-#include <linux/malloc.h>
+#include <linux/module.h>
+#include <linux/slab.h>
#include <linux/version.h>
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,3,98))
@@ -31,9 +32,7 @@
#define kmem_cache_destroy(x) do {} while(0)
#endif
-#ifdef PRINTK_HEADER
#undef PRINTK_HEADER
-#endif
#define PRINTK_HEADER "ccwcache"
/* pointer to list of allocated requests */
@@ -300,4 +299,7 @@
}
debug_unregister( debug_area );
}
+
+EXPORT_SYMBOL(ccw_alloc_request);
+EXPORT_SYMBOL(ccw_free_request);
Index: idals.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/s390/idals.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- idals.c 25 Feb 2001 23:15:14 -0000 1.1.1.1
+++ idals.c 11 Apr 2002 12:55:53 -0000 1.2
@@ -9,39 +9,35 @@
* 12/13/00 changed IDALs to 4kByte-IDALs
*/
+#include <linux/module.h>
#include <linux/config.h>
-#include <linux/malloc.h>
+#include <linux/slab.h>
#include <asm/irq.h>
#include <asm/idals.h>
#ifdef CONFIG_ARCH_S390X
-void
-set_normalized_cda ( ccw1_t * cp, unsigned long address )
+
+unsigned long __create_idal (unsigned long address, int count)
{
int nridaws;
- idaw_t *idal;
- int count = cp->count;
+ unsigned long *idal, *tmp;
- if (cp->flags & CCW_FLAG_IDA)
- BUG();
- if (((address + count) >> 31) == 0) { /* do we really need '+count'? */
- cp -> cda = address;
- return;
- }
- nridaws = ((address & 4095L) + count + 4095L) >> 12;
+ nridaws = ((address & (IDA_BLOCK_SIZE-1)) + count +
+ (IDA_BLOCK_SIZE-1)) >> IDA_SIZE_LOG;
idal = idal_alloc(nridaws);
- if ( idal == NULL ) {
- /* probably we should have a fallback here */
- panic ("Cannot allocate memory for IDAL\n");
+ if (idal != NULL) {
+ tmp = idal;
+ *tmp++ = address;
+ address &= -IDA_BLOCK_SIZE;
+ while (--nridaws > 0) {
+ address += IDA_BLOCK_SIZE;
+ *tmp++ = address;
+ }
}
- cp->flags |= CCW_FLAG_IDA;
- cp->cda = (__u32)(unsigned long)(idaw_t *)idal;
- do {
- *idal++ = address;
- address = (address & -4096L) + 4096;
- nridaws --;
- } while ( nridaws > 0 );
- return;
+ return (unsigned long) idal;
}
+
+EXPORT_SYMBOL (__create_idal);
+
#endif
Index: s390dyn.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/s390/s390dyn.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- s390dyn.c 25 Feb 2001 23:15:14 -0000 1.1.1.1
+++ s390dyn.c 11 Apr 2002 12:55:53 -0000 1.2
@@ -7,6 +7,7 @@
* Author(s): Ingo Adlung (ad...@de...)
*/
+#include <linux/module.h>
#include <linux/init.h>
#include <linux/smp_lock.h>
@@ -14,200 +15,140 @@
#include <asm/s390io.h>
#include <asm/s390dyn.h>
-static devreg_t *devreg_anchor = NULL;
-static spinlock_t dyn_lock = SPIN_LOCK_UNLOCKED;
+static struct list_head devreg_anchor = LIST_HEAD_INIT(devreg_anchor);
+static spinlock_t dyn_lock = SPIN_LOCK_UNLOCKED;
-
-int s390_device_register( devreg_t *drinfo )
+static inline int s390_device_register_internal(devreg_t *drinfo)
{
- unsigned long flags;
- int pdevflag,drflag;
-
- int ret = 0;
- devreg_t *pdevreg = devreg_anchor;
-
- if ( drinfo == NULL )
- return( -EINVAL );
-
- drflag = drinfo->flag;
-
- if ( (drflag & DEVREG_TYPE_DEVNO) == (drflag & DEVREG_TYPE_DEVCHARS) )
- return( -EINVAL );
-
- spin_lock_irqsave( &dyn_lock, flags );
-
- while ( (pdevreg != NULL) && (ret ==0) )
- {
- if ( pdevreg == drinfo )
- {
- ret = -EINVAL;
- }
- else
- {
- pdevflag = pdevreg->flag;
-
- /*
- * we don't allow multiple drivers to register
- * for the same device number
- */
- if ( ( (pdevflag & DEVREG_TYPE_DEVNO)
- && (pdevreg->ci.devno ) )
- && ( (drflag & DEVREG_TYPE_DEVNO )
- && (drinfo->ci.devno ) ) )
- {
- ret = -EBUSY;
- }
- else if ( drflag == ( DEVREG_TYPE_DEVCHARS
- | DEVREG_EXACT_MATCH ))
- {
- if ( !memcmp(&drinfo->ci.hc,
- &pdevreg->ci.hc,
- sizeof(devreg_hc_t)))
- ret=-EBUSY;
- } /* endif */
+ struct list_head *p;
- } /* endif */
-
- pdevreg = pdevreg->next;
+ list_for_each(p, &devreg_anchor) {
+ devreg_t *pdevreg = list_entry(p, devreg_t, list);
+
+ if (pdevreg == drinfo)
+ return -EINVAL;
+ /*
+ * We don't allow multiple drivers to register
+ * for the same device number
+ */
+ if (pdevreg->ci.devno == drinfo->ci.devno &&
+ (pdevreg->flag & DEVREG_TYPE_DEVNO) &&
+ (drinfo->flag & DEVREG_TYPE_DEVNO))
+ return -EBUSY;
+
+ if (drinfo->flag == (DEVREG_TYPE_DEVCHARS |
+ DEVREG_EXACT_MATCH) &&
+ !memcmp(&drinfo->ci.hc, &pdevreg->ci.hc,
+ sizeof(devreg_hc_t)))
+ return -EBUSY;
+ }
+
+ /*
+ * no collision found, enqueue
+ */
+ list_add (&drinfo->list, &devreg_anchor);
- } /* endwhile */
-
- /*
- * only enqueue if no collision was found ...
- */
- if(ret==0)
- {
- drinfo->next = devreg_anchor;
- drinfo->prev = NULL;
-
- if ( devreg_anchor != NULL )
- {
- devreg_anchor->prev = drinfo;
+ return 0;
+}
- } /* endif */
-
- devreg_anchor=drinfo;
+int s390_device_register( devreg_t *drinfo )
+{
+ unsigned long flags;
+ int ret;
- } /* endif */
+ if (drinfo == NULL ||
+ !(drinfo->flag & (DEVREG_TYPE_DEVNO | DEVREG_TYPE_DEVCHARS)))
+ return -EINVAL;
+ spin_lock_irqsave (&dyn_lock, flags);
+ ret = s390_device_register_internal(drinfo);
spin_unlock_irqrestore( &dyn_lock, flags );
- return( ret);
+ return ret;
}
-
-int s390_device_unregister( devreg_t *dreg )
+static inline int s390_device_unregister_internal(devreg_t *dreg)
{
- unsigned long flags;
-
- int ret = -EINVAL;
- devreg_t *pdevreg = devreg_anchor;
+ struct list_head *p;
- if ( dreg == NULL )
- return( -EINVAL );
+ list_for_each(p, &devreg_anchor) {
+ devreg_t *pdevreg = list_entry(p, devreg_t, list);
- spin_lock_irqsave( &dyn_lock, flags );
-
- while ( (pdevreg != NULL )
- && ( ret != 0 ) )
- {
- if ( pdevreg == dreg )
- {
- devreg_t *dprev = pdevreg->prev;
- devreg_t *dnext = pdevreg->next;
-
- if ( (dprev != NULL) && (dnext != NULL) )
- {
- dnext->prev = dprev;
- dprev->next = dnext;
- }
- if ( (dprev != NULL) && (dnext == NULL) )
- {
- dprev->next = NULL;
- }
- if ( (dprev == NULL) && (dnext != NULL) )
- {
- dnext->prev = NULL;
-
- } /* else */
-
- ret = 0;
+ if (pdevreg == dreg) {
+ list_del (&dreg->list);
+ return 0;
}
- else
- {
- pdevreg = pdevreg->next;
+ }
+ return -EINVAL;
+}
- } /* endif */
+int s390_device_unregister(devreg_t *dreg)
+{
+ unsigned long flags;
+ int ret;
- } /* endwhile */
+ if (dreg == NULL)
+ return -EINVAL;
- spin_unlock_irqrestore( &dyn_lock, flags );
+ spin_lock_irqsave(&dyn_lock, flags);
+ ret = s390_device_unregister_internal(dreg);
+ spin_unlock_irqrestore(&dyn_lock, flags);
- return( ret);
+ return ret;
}
+static inline devreg_t *s390_search_devreg_internal(ioinfo_t *ioinfo)
+{
+ struct list_head *p;
+
+ list_for_each(p, &devreg_anchor) {
+ devreg_t *pdevreg = list_entry(p, devreg_t, list);
+ senseid_t *sid;
+ int flag;
+
+ flag = pdevreg->flag;
+ sid = &ioinfo->senseid;
+ if (flag & DEVREG_TYPE_DEVNO) {
+ if (ioinfo->ui.flags.dval != 1 ||
+ ioinfo->devno != pdevreg->ci.devno)
+ continue;
+ } else if (flag & DEVREG_TYPE_DEVCHARS) {
+ if ( (flag & DEVREG_MATCH_CU_TYPE) &&
+ pdevreg->ci.hc.ctype != sid->cu_type )
+ continue;
+ if ( (flag & DEVREG_MATCH_CU_MODEL) &&
+ pdevreg->ci.hc.cmode != sid->cu_model )
+ continue;
+ if ( (flag & DEVREG_MATCH_DEV_TYPE) &&
+ pdevreg->ci.hc.dtype != sid->dev_type )
+ continue;
+ if ( (flag & DEVREG_MATCH_DEV_MODEL) &&
+ pdevreg->ci.hc.dmode != sid->dev_model )
+ continue;
+ } else {
+ continue;
+ }
+
+ return pdevreg;
+ }
+ return NULL;
+}
devreg_t * s390_search_devreg( ioinfo_t *ioinfo )
{
unsigned long flags;
- devreg_hc_t match;
- devreg_t *pdevreg = devreg_anchor;
-
- if ( ioinfo == NULL )
- return( NULL );
-
- spin_lock_irqsave( &dyn_lock, flags );
+ devreg_t *pdevreg;
- while ( pdevreg != NULL )
- {
- int flag = pdevreg->flag;
-
- if ( (flag & DEVREG_TYPE_DEVNO )
- && (ioinfo->ui.flags.dval == 1 )
- && (ioinfo->devno == pdevreg->ci.devno) )
- {
- break;
- }
- else if (flag & DEVREG_TYPE_DEVCHARS )
- {
- if ( flag & DEVREG_EXACT_MATCH )
- {
- if ( !memcmp( &pdevreg->ci.hc,
- &ioinfo->senseid.cu_type,
- sizeof(devreg_hc_t)))
- break;
- }
- else
- {
- memcpy( &match, &ioinfo->senseid.cu_type,
- sizeof(match));
-
- if( flag & DEVREG_NO_CU_INFO )
- {
- match.ctype = pdevreg->ci.hc.ctype;
- match.cmode = pdevreg->ci.hc.cmode;
- }
- if( flag & DEVREG_NO_DEV_INFO )
- {
- match.dtype = pdevreg->ci.hc.dtype;
- match.dmode = pdevreg->ci.hc.dmode;
- }
- if ( flag & DEVREG_MATCH_CU_TYPE )
- match.cmode = pdevreg->ci.hc.cmode;
- if( flag & DEVREG_MATCH_DEV_TYPE)
- match.dmode = pdevreg->ci.hc.dmode;
- if ( !memcmp( &pdevreg->ci.hc,
- &match, sizeof(match)))
- break;
- } /* endif */
- } /* endif */
+ if (ioinfo == NULL)
+ return NULL;
- pdevreg = pdevreg->next;
-
- } /* endwhile */
-
- spin_unlock_irqrestore( &dyn_lock, flags );
+ spin_lock_irqsave(&dyn_lock, flags);
+ pdevreg = s390_search_devreg_internal(ioinfo);
+ spin_unlock_irqrestore(&dyn_lock, flags);
- return( pdevreg);
+ return pdevreg;
}
+
+EXPORT_SYMBOL(s390_device_register);
+EXPORT_SYMBOL(s390_device_unregister);
Index: s390io.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/s390/s390io.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- s390io.c 25 Feb 2001 23:15:14 -0000 1.1.1.1
+++ s390io.c 11 Apr 2002 12:55:53 -0000 1.2
@@ -1,29 +1,48 @@
/*
- * arch/s390/kernel/s390io.c
+ * drivers/s390/s390io.c
* S/390 common I/O routines
*
* S390 version
* Copyright (C) 1999, 2000 IBM Deutschland Entwicklung GmbH,
* IBM Corporation
* Author(s): Ingo Adlung (ad...@de...)
- * ChangeLog: 01/04/2001 Holger Smolinski (smo...@de...)
+ * ChangeLog: 01/07/2001 Blacklist cleanup (djb...@de...,bar...@ya...)
[...5290 lines suppressed...]
+}
+
+
+EXPORT_SYMBOL(halt_IO);
+EXPORT_SYMBOL(clear_IO);
+EXPORT_SYMBOL(do_IO);
+EXPORT_SYMBOL(resume_IO);
+EXPORT_SYMBOL(ioinfo);
+EXPORT_SYMBOL(get_dev_info_by_irq);
+EXPORT_SYMBOL(get_dev_info_by_devno);
+EXPORT_SYMBOL(get_irq_by_devno);
+EXPORT_SYMBOL(get_devno_by_irq);
+EXPORT_SYMBOL(get_irq_first);
+EXPORT_SYMBOL(get_irq_next);
+EXPORT_SYMBOL(read_conf_data);
+EXPORT_SYMBOL(read_dev_chars);
+EXPORT_SYMBOL(s390_request_irq_special);
+EXPORT_SYMBOL(s390_get_schib);
+EXPORT_SYMBOL(s390_register_adapter_interrupt);
+EXPORT_SYMBOL(s390_unregister_adapter_interrupt);
Index: s390mach.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/s390/s390mach.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- s390mach.c 25 Feb 2001 23:15:14 -0000 1.1.1.1
+++ s390mach.c 11 Apr 2002 12:55:53 -0000 1.2
@@ -11,7 +11,7 @@
#include <linux/config.h>
#include <linux/spinlock.h>
#include <linux/init.h>
-#include <linux/malloc.h>
+#include <linux/slab.h>
#ifdef CONFIG_SMP
#include <linux/smp.h>
#endif
@@ -139,7 +139,7 @@
#endif
memcpy( &mcic,
- &S390_lowcore.mcck_interuption_code,
+ &S390_lowcore.mcck_interruption_code,
sizeof(__u64));
if ( mcic.mcc.mcd.cp ) // CRW pending ?
@@ -170,7 +170,7 @@
static int s390_machine_check_handler( void *parm)
{
struct semaphore *sem = parm;
- int flags;
+ unsigned long flags;
mache_t *pmache;
int found = 0;
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/sound/dmasound
In directory usw-pr-cvs1:/tmp/cvs-serv12946/sound/dmasound
Modified Files:
dmasound.h dmasound_atari.c dmasound_awacs.c dmasound_core.c
dmasound_paula.c dmasound_q40.c
Log Message:
synch 2.4.15 commit 54
Index: dmasound.h
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/sound/dmasound/dmasound.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- dmasound.h 14 Jan 2001 18:35:11 -0000 1.1.1.1
+++ dmasound.h 11 Apr 2002 13:26:50 -0000 1.2
@@ -47,7 +47,6 @@
#define MAX_BUFSIZE 128 /* Limit for Amiga in KB */
-#define min(x, y) ((x) < (y) ? (x) : (y))
#define le2be16(x) (((x)<<8 & 0xff00) | ((x)>>8 & 0x00ff))
#define le2be16dbl(x) (((x)<<8 & 0xff00ff00) | ((x)>>8 & 0x00ff00ff))
Index: dmasound_atari.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/sound/dmasound/dmasound_atari.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- dmasound_atari.c 14 Jan 2001 18:35:16 -0000 1.1.1.1
+++ dmasound_atari.c 11 Apr 2002 13:26:50 -0000 1.2
@@ -154,7 +154,7 @@
ssize_t count, used;
u_char *p = &frame[*frameUsed];
- count = min(userCount, frameLeft);
+ count = min_t(unsigned long, userCount, frameLeft);
if (dmasound.soft.stereo)
count &= ~1;
used = count;
@@ -177,7 +177,7 @@
ssize_t count, used;
void *p = &frame[*frameUsed];
- count = min(userCount, frameLeft);
+ count = min_t(unsigned long, userCount, frameLeft);
if (dmasound.soft.stereo)
count &= ~1;
used = count;
@@ -196,7 +196,7 @@
if (!dmasound.soft.stereo) {
u_char *p = &frame[*frameUsed];
- count = min(userCount, frameLeft);
+ count = min_t(unsigned long, userCount, frameLeft);
used = count;
while (count > 0) {
u_char data;
@@ -207,7 +207,7 @@
}
} else {
u_short *p = (u_short *)&frame[*frameUsed];
- count = min(userCount, frameLeft)>>1;
+ count = min_t(unsigned long, userCount, frameLeft)>>1;
used = count*2;
while (count > 0) {
u_short data;
@@ -230,7 +230,7 @@
if (!dmasound.soft.stereo) {
u_short *p = (u_short *)&frame[*frameUsed];
- count = min(userCount, frameLeft)>>1;
+ count = min_t(unsigned long, userCount, frameLeft)>>1;
used = count*2;
while (count > 0) {
u_short data;
@@ -243,7 +243,7 @@
*frameUsed += used*2;
} else {
void *p = (u_short *)&frame[*frameUsed];
- count = min(userCount, frameLeft) & ~3;
+ count = min_t(unsigned long, userCount, frameLeft) & ~3;
used = count;
if (copy_from_user(p, userPtr, count))
return -EFAULT;
@@ -261,7 +261,7 @@
if (!dmasound.soft.stereo) {
u_short *p = (u_short *)&frame[*frameUsed];
- count = min(userCount, frameLeft)>>1;
+ count = min_t(unsigned long, userCount, frameLeft)>>1;
used = count*2;
while (count > 0) {
u_short data;
@@ -275,7 +275,7 @@
*frameUsed += used*2;
} else {
u_long *p = (u_long *)&frame[*frameUsed];
- count = min(userCount, frameLeft)>>2;
+ count = min_t(unsigned long, userCount, frameLeft)>>2;
used = count*4;
while (count > 0) {
u_long data;
@@ -299,7 +299,7 @@
count = frameLeft;
if (!dmasound.soft.stereo) {
u_short *p = (u_short *)&frame[*frameUsed];
- count = min(userCount, frameLeft)>>1;
+ count = min_t(unsigned long, userCount, frameLeft)>>1;
used = count*2;
while (count > 0) {
u_short data;
@@ -313,7 +313,7 @@
*frameUsed += used*2;
} else {
u_long *p = (u_long *)&frame[*frameUsed];
- count = min(userCount, frameLeft)>>2;
+ count = min_t(unsigned long, userCount, frameLeft)>>2;
used = count*4;
while (count > 0) {
u_long data;
@@ -338,7 +338,7 @@
count = frameLeft;
if (!dmasound.soft.stereo) {
u_short *p = (u_short *)&frame[*frameUsed];
- count = min(userCount, frameLeft)>>1;
+ count = min_t(unsigned long, userCount, frameLeft)>>1;
used = count*2;
while (count > 0) {
u_short data;
@@ -351,7 +351,7 @@
*frameUsed += used*2;
} else {
u_long *p = (u_long *)&frame[*frameUsed];
- count = min(userCount, frameLeft)>>2;
+ count = min_t(unsigned long, userCount, frameLeft)>>2;
used = count;
while (count > 0) {
u_long data;
@@ -1559,3 +1559,4 @@
module_init(dmasound_atari_init);
module_exit(dmasound_atari_cleanup);
+MODULE_LICENSE("GPL");
Index: dmasound_awacs.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/sound/dmasound/dmasound_awacs.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- dmasound_awacs.c 25 Feb 2001 23:15:09 -0000 1.1.1.2
+++ dmasound_awacs.c 11 Apr 2002 13:26:50 -0000 1.2
@@ -267,7 +267,7 @@
frameLeft >>= 2;
if (stereo)
userCount >>= 1;
- used = count = min(userCount, frameLeft);
+ used = count = min_t(unsigned long, userCount, frameLeft);
while (count > 0) {
u_char data;
if (get_user(data, userPtr++))
@@ -298,7 +298,7 @@
frameLeft >>= 2;
if (stereo)
userCount >>= 1;
- used = count = min(userCount, frameLeft);
+ used = count = min_t(unsigned long, userCount, frameLeft);
while (count > 0) {
u_char data;
if (get_user(data, userPtr++))
@@ -329,7 +329,7 @@
frameLeft >>= 2;
if (stereo)
userCount >>= 1;
- used = count = min(userCount, frameLeft);
+ used = count = min_t(unsigned long, userCount, frameLeft);
while (count > 0) {
u_char data;
if (get_user(data, userPtr++))
@@ -359,7 +359,7 @@
frameLeft >>= 2;
userCount >>= (stereo? 2: 1);
- used = count = min(userCount, frameLeft);
+ used = count = min_t(unsigned long, userCount, frameLeft);
if (!stereo) {
short *up = (short *) userPtr;
while (count > 0) {
@@ -390,7 +390,7 @@
frameLeft >>= 2;
userCount >>= (stereo? 2: 1);
- used = count = min(userCount, frameLeft);
+ used = count = min_t(unsigned long, userCount, frameLeft);
while (count > 0) {
int data;
if (get_user(data, up++))
@@ -648,7 +648,7 @@
frameLeft >>= 2;
if (stereo)
userCount >>= 1;
- used = count = min(userCount, frameLeft);
+ used = count = min_t(unsigned long, userCount, frameLeft);
while (count > 0) {
u_char data;
@@ -681,7 +681,7 @@
frameLeft >>= 2;
if (stereo)
userCount >>= 1;
- used = count = min(userCount, frameLeft);
+ used = count = min_t(unsigned long, userCount, frameLeft);
while (count > 0) {
u_char data;
@@ -713,7 +713,7 @@
frameLeft >>= 2;
userCount >>= (stereo? 2: 1);
- used = count = min(userCount, frameLeft);
+ used = count = min_t(unsigned long, userCount, frameLeft);
if (!stereo) {
short *up = (short *) userPtr;
while (count > 0) {
@@ -744,7 +744,7 @@
frameLeft >>= 2;
userCount >>= (stereo? 2: 1);
- used = count = min(userCount, frameLeft);
+ used = count = min_t(unsigned long, userCount, frameLeft);
while (count > 0) {
int data;
@@ -2180,3 +2180,4 @@
module_init(dmasound_awacs_init);
module_exit(dmasound_awacs_cleanup);
+MODULE_LICENSE("GPL");
Index: dmasound_core.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/sound/dmasound/dmasound_core.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- dmasound_core.c 25 Feb 2001 23:15:09 -0000 1.1.1.2
+++ dmasound_core.c 11 Apr 2002 13:26:50 -0000 1.2
@@ -135,6 +135,7 @@
MODULE_PARM(writeBufSize, "i");
MODULE_PARM(numReadBufs, "i");
MODULE_PARM(readBufSize, "i");
+MODULE_LICENSE("GPL");
#ifdef MODULE
static int sq_unit = -1;
@@ -385,16 +386,6 @@
/*
- * Common stuff
- */
-
-static long long sound_lseek(struct file *file, long long offset, int orig)
-{
- return -ESPIPE;
-}
-
-
- /*
* Mid level stuff
*/
@@ -536,7 +527,7 @@
static struct file_operations mixer_fops =
{
owner: THIS_MODULE,
- llseek: sound_lseek,
+ llseek: no_llseek,
ioctl: mixer_ioctl,
open: mixer_open,
release: mixer_release,
@@ -1036,7 +1027,7 @@
static struct file_operations sq_fops =
{
owner: THIS_MODULE,
- llseek: sound_lseek,
+ llseek: no_llseek,
write: sq_write,
ioctl: sq_ioctl,
open: sq_open,
@@ -1174,7 +1165,7 @@
static struct file_operations state_fops = {
owner: THIS_MODULE,
- llseek: sound_lseek,
+ llseek: no_llseek,
read: state_read,
open: state_open,
release: state_release,
Index: dmasound_paula.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/sound/dmasound/dmasound_paula.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- dmasound_paula.c 14 Jan 2001 18:35:31 -0000 1.1.1.1
+++ dmasound_paula.c 11 Apr 2002 13:26:50 -0000 1.2
@@ -155,14 +155,14 @@
if (!dmasound.soft.stereo) {
void *p = &frame[*frameUsed];
- count = min(userCount, frameLeft) & ~1;
+ count = min_t(unsigned long, userCount, frameLeft) & ~1;
used = count;
if (copy_from_user(p, userPtr, count))
return -EFAULT;
} else {
u_char *left = &frame[*frameUsed>>1];
u_char *right = left+write_sq_block_size_half;
- count = min(userCount, frameLeft)>>1 & ~1;
+ count = min_t(unsigned long, userCount, frameLeft)>>1 & ~1;
used = count*2;
while (count > 0) {
if (get_user(*left++, userPtr++)
@@ -189,7 +189,7 @@
\
if (!dmasound.soft.stereo) { \
u_char *p = &frame[*frameUsed]; \
- count = min(userCount, frameLeft) & ~1; \
+ count = min_t(size_t, userCount, frameLeft) & ~1; \
used = count; \
while (count > 0) { \
u_char data; \
@@ -201,7 +201,7 @@
} else { \
u_char *left = &frame[*frameUsed>>1]; \
u_char *right = left+write_sq_block_size_half; \
- count = min(userCount, frameLeft)>>1 & ~1; \
+ count = min_t(size_t, userCount, frameLeft)>>1 & ~1; \
used = count*2; \
while (count > 0) { \
u_char data; \
@@ -242,7 +242,7 @@
if (!dmasound.soft.stereo) { \
u_char *high = &frame[*frameUsed>>1]; \
u_char *low = high+write_sq_block_size_half; \
- count = min(userCount, frameLeft)>>1 & ~1; \
+ count = min_t(size_t, userCount, frameLeft)>>1 & ~1; \
used = count*2; \
while (count > 0) { \
if (get_user(data, ((u_short *)userPtr)++)) \
@@ -257,7 +257,7 @@
u_char *leftl = lefth+write_sq_block_size_quarter; \
u_char *righth = lefth+write_sq_block_size_half; \
u_char *rightl = righth+write_sq_block_size_quarter; \
- count = min(userCount, frameLeft)>>2 & ~1; \
+ count = min_t(size_t, userCount, frameLeft)>>2 & ~1; \
used = count*4; \
while (count > 0) { \
if (get_user(data, ((u_short *)userPtr)++)) \
@@ -720,3 +720,4 @@
module_init(dmasound_paula_init);
module_exit(dmasound_paula_cleanup);
+MODULE_LICENSE("GPL");
Index: dmasound_q40.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/sound/dmasound/dmasound_q40.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- dmasound_q40.c 25 Feb 2001 23:15:09 -0000 1.1.1.2
+++ dmasound_q40.c 11 Apr 2002 13:26:50 -0000 1.2
@@ -58,7 +58,7 @@
ssize_t count, used;
u_char *p = (u_char *) &frame[*frameUsed];
- used = count = min(userCount, frameLeft);
+ used = count = min_t(size_t, userCount, frameLeft);
if (copy_from_user(p,userPtr,count))
return -EFAULT;
while (count > 0) {
@@ -84,7 +84,7 @@
frameLeft >>= 1;
if (stereo)
userCount >>= 1;
- used = count = min(userCount, frameLeft);
+ used = count = min_t(size_t, userCount, frameLeft);
while (count > 0) {
u_char data;
if (get_user(data, userPtr++))
@@ -112,7 +112,7 @@
ssize_t count, used;
u_char *p = (u_char *) &frame[*frameUsed];
- used = count = min(userCount, frameLeft);
+ used = count = min_t(size_t, userCount, frameLeft);
if (copy_from_user(p,userPtr,count))
return -EFAULT;
while (count > 0) {
@@ -136,7 +136,7 @@
frameLeft >>= 1;
if (stereo)
userCount >>= 1;
- used = count = min(userCount, frameLeft);
+ used = count = min_t(size_t, userCount, frameLeft);
while (count > 0) {
u_char data;
if (get_user(data, userPtr++))
@@ -164,7 +164,7 @@
ssize_t count, used;
u_char *p = (u_char *) &frame[*frameUsed];
- used = count = min(userCount, frameLeft);
+ used = count = min_t(size_t, userCount, frameLeft);
if (copy_from_user(p,userPtr,count))
return -EFAULT;
*frameUsed += used;
@@ -184,7 +184,7 @@
frameLeft >>= 1;
if (stereo)
userCount >>= 1;
- used = count = min(userCount, frameLeft);
+ used = count = min_t(size_t, userCount, frameLeft);
while (count > 0) {
u_char data;
if (get_user(data, userPtr++))
@@ -585,3 +585,4 @@
module_init(dmasound_q40_init);
module_exit(dmasound_q40_cleanup);
+MODULE_LICENSE("GPL");
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/net/appletalk
In directory usw-pr-cvs1:/tmp/cvs-serv30336/net/appletalk
Modified Files:
Config.in cops.c cops.h cops_ffdrv.h cops_ltdrv.h ipddp.c
ltpc.c
Log Message:
synch 2.4.15 commit 50
Index: Config.in
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/net/appletalk/Config.in,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- Config.in 14 Jan 2001 17:47:17 -0000 1.1.1.1
+++ Config.in 11 Apr 2002 12:37:47 -0000 1.2
@@ -6,14 +6,14 @@
mainmenu_option next_comment
comment 'Appletalk devices'
bool 'Appletalk interfaces support' CONFIG_APPLETALK
- if [ "$CONFIG_APPLETALK" != "n" ]; then
- dep_tristate ' Apple/Farallon LocalTalk PC support' CONFIG_LTPC $CONFIG_APPLETALK
- dep_tristate ' COPS LocalTalk PC support' CONFIG_COPS $CONFIG_APPLETALK
+ if [ "$CONFIG_ATALK" != "n" ]; then
+ dep_tristate ' Apple/Farallon LocalTalk PC support' CONFIG_LTPC $CONFIG_DEV_APPLETALK
+ dep_tristate ' COPS LocalTalk PC support' CONFIG_COPS $CONFIG_DEV_APPLETALK
if [ "$CONFIG_COPS" != "n" ]; then
bool ' Dayna firmware support' CONFIG_COPS_DAYNA
bool ' Tangent firmware support' CONFIG_COPS_TANGENT
fi
- dep_tristate ' Appletalk-IP driver support' CONFIG_IPDDP $CONFIG_APPLETALK
+ dep_tristate ' Appletalk-IP driver support' CONFIG_IPDDP $CONFIG_DEV_APPLETALK
if [ "$CONFIG_IPDDP" != "n" ]; then
bool ' IP to Appletalk-IP Encapsulation support' CONFIG_IPDDP_ENCAP
bool ' Appletalk-IP to IP Decapsulation support' CONFIG_IPDDP_DECAP
Index: cops.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/net/appletalk/cops.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- cops.c 25 Feb 2001 23:15:01 -0000 1.1.1.2
+++ cops.c 11 Apr 2002 12:37:47 -0000 1.2
@@ -1,7 +1,7 @@
/* cops.c: LocalTalk driver for Linux.
*
* Authors:
- * - Jay Schulist <js...@tu...>
+ * - Jay Schulist <js...@sa...>
*
* With more than a little help from;
* - Alan Cox <Ala...@li...>
@@ -34,7 +34,7 @@
*/
static const char *version =
-"cops.c:v0.04 6/7/98 Jay Schulist <js...@tu...>\n";
+"cops.c:v0.04 6/7/98 Jay Schulist <js...@sa...>\n";
/*
* Sources:
* COPS Localtalk SDK. This provides almost all of the information
@@ -98,7 +98,7 @@
static int io = 0x240; /* Default IO for Dayna */
static int irq = 5; /* Default IRQ */
#else
-static int io = 0; /* Default IO for Dayna */
+static int io; /* Default IO for Dayna */
#endif
/*
@@ -181,7 +181,7 @@
int board; /* Holds what board type is. */
int nodeid; /* Set to 1 once have nodeid. */
unsigned char node_acquire; /* Node ID when acquired. */
- struct at_addr node_addr; /* Full node addres */
+ struct at_addr node_addr; /* Full node address */
};
/* Index to functions, as function prototypes. */
@@ -752,8 +752,8 @@
{
int pkt_len = 0;
int rsp_type = 0;
- struct sk_buff *skb;
- struct cops_local *lp = (struct cops_local *)dev->priv;
+ struct sk_buff *skb = NULL;
+ struct cops_local *lp = dev->priv;
int ioaddr = dev->base_addr;
int boguscount = 0;
unsigned long flags;
@@ -771,6 +771,7 @@
/* Wait for DMA to turn around. */
while(++boguscount<1000000)
{
+ barrier();
if((inb(ioaddr+DAYNA_CARD_STATUS)&0x03)==DAYNA_RX_READY)
break;
}
@@ -801,6 +802,7 @@
lp->stats.rx_dropped++;
while(pkt_len--) /* Discard packet */
inb(ioaddr);
+ restore_flags(flags);
return;
}
skb->dev = dev;
@@ -820,7 +822,7 @@
printk(KERN_WARNING "%s: Bad packet length of %d bytes.\n",
dev->name, pkt_len);
lp->stats.tx_errors++;
- kfree_skb(skb);
+ dev_kfree_skb_any(skb);
return;
}
@@ -828,7 +830,7 @@
if(rsp_type == LAP_INIT_RSP)
{ /* Nodeid taken from received packet. */
lp->node_acquire = skb->data[0];
- kfree_skb(skb);
+ dev_kfree_skb_any(skb);
return;
}
@@ -837,7 +839,7 @@
{
printk(KERN_WARNING "%s: Bad packet type %d.\n", dev->name, rsp_type);
lp->stats.tx_errors++;
- kfree_skb(skb);
+ dev_kfree_skb_any(skb);
return;
}
@@ -1011,6 +1013,8 @@
#ifdef MODULE
static struct net_device cops0_dev = { init: cops_probe };
+
+MODULE_LICENSE("GPL");
MODULE_PARM(io, "i");
MODULE_PARM(irq, "i");
MODULE_PARM(board_type, "i");
Index: cops.h
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/net/appletalk/cops.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- cops.h 14 Jan 2001 17:47:21 -0000 1.1.1.1
+++ cops.h 11 Apr 2002 12:37:47 -0000 1.2
@@ -1,7 +1,7 @@
/* cops.h: LocalTalk driver for Linux.
*
* Authors:
- * - Jay Schulist <js...@tu...>
+ * - Jay Schulist <js...@sa...>
*/
#ifndef __LINUX_COPSLTALK_H
Index: cops_ffdrv.h
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/net/appletalk/cops_ffdrv.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- cops_ffdrv.h 14 Jan 2001 17:47:24 -0000 1.1.1.1
+++ cops_ffdrv.h 11 Apr 2002 12:37:47 -0000 1.2
@@ -21,7 +21,7 @@
/* cops_ffdrv.h: LocalTalk driver firmware dump for Linux.
*
* Authors:
- * - Jay Schulist <js...@tu...>
+ * - Jay Schulist <js...@sa...>
*/
#include <linux/config.h>
Index: cops_ltdrv.h
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/net/appletalk/cops_ltdrv.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- cops_ltdrv.h 14 Jan 2001 17:47:25 -0000 1.1.1.1
+++ cops_ltdrv.h 11 Apr 2002 12:37:47 -0000 1.2
@@ -20,7 +20,7 @@
/* cops_ltdrv.h: LocalTalk driver firmware dump for Linux.
*
* Authors:
- * - Jay Schulist <js...@tu...>
+ * - Jay Schulist <js...@sa...>
*/
#include <linux/config.h>
Index: ipddp.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/net/appletalk/ipddp.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- ipddp.c 14 Jan 2001 17:47:26 -0000 1.1.1.1
+++ ipddp.c 11 Apr 2002 12:37:47 -0000 1.2
@@ -4,7 +4,7 @@
*
* Authors:
* - DDP-IP Encap by: Bradford W. Johnson <joh...@ma...>
- * - DDP-IP Decap by: Jay Schulist <js...@tu...>
+ * - DDP-IP Decap by: Jay Schulist <js...@sa...>
*
* Derived from:
* - Almost all code already existed in net/appletalk/ddp.c I just
@@ -14,18 +14,15 @@
* Written 1993-94 by Donald Becker.
* - dummy.c: A dummy net driver. By Nick Holloway.
* - MacGate: A user space Daemon for Appletalk-IP Decap for
- * Linux by Jay Schulist <js...@tu...>
+ * Linux by Jay Schulist <js...@sa...>
*
* Copyright 1993 United States Government as represented by the
* Director, National Security Agency.
*
* This software may be used and distributed according to the terms
- * of the GNU Public License, incorporated herein by reference.
+ * of the GNU General Public License, incorporated herein by reference.
*/
-static const char *version =
- "ipddp.c:v0.01 8/28/97 Bradford W. Johnson <joh...@ma...>\n";
-
#include <linux/config.h>
#include <linux/module.h>
#include <linux/kernel.h>
@@ -39,7 +36,9 @@
#include "ipddp.h" /* Our stuff */
-static struct ipddp_route *ipddp_route_list = NULL;
+static const char version[] = KERN_INFO "ipddp.c:v0.01 8/28/97 Bradford W. Johnson <joh...@ma...>\n";
+
+static struct ipddp_route *ipddp_route_list;
#ifdef CONFIG_IPDDP_ENCAP
static int ipddp_mode = IPDDP_ENCAP;
@@ -47,12 +46,6 @@
static int ipddp_mode = IPDDP_DECAP;
#endif
-/* Use 0 for production, 1 for verification, 2 for debug, 3 for verbose debug */
-#ifndef IPDDP_DEBUG
-#define IPDDP_DEBUG 1
-#endif
-static unsigned int ipddp_debug = IPDDP_DEBUG;
-
/* Index to functions, as function prototypes. */
static int ipddp_xmit(struct sk_buff *skb, struct net_device *dev);
static struct net_device_stats *ipddp_get_stats(struct net_device *dev);
@@ -64,19 +57,19 @@
static int __init ipddp_init(struct net_device *dev)
{
- static unsigned version_printed = 0;
+ static unsigned version_printed;
SET_MODULE_OWNER(dev);
- if (ipddp_debug && version_printed++ == 0)
- printk("%s", version);
+ if (version_printed++ == 0)
+ printk(version);
/* Let the user now what mode we are in */
if(ipddp_mode == IPDDP_ENCAP)
printk("%s: Appletalk-IP Encap. mode by Bradford W. Johnson <joh...@ma...>\n",
dev->name);
if(ipddp_mode == IPDDP_DECAP)
- printk("%s: Appletalk-IP Decap. mode by Jay Schulist <js...@tu...>\n",
+ printk("%s: Appletalk-IP Decap. mode by Jay Schulist <js...@sa...>\n",
dev->name);
/* Fill in the device structure with ethernet-generic values. */
@@ -193,25 +186,23 @@
static int ipddp_create(struct ipddp_route *new_rt)
{
struct ipddp_route *rt =(struct ipddp_route*) kmalloc(sizeof(*rt), GFP_KERNEL);
- struct ipddp_route *test;
- if(rt == NULL)
+ if (rt == NULL)
return -ENOMEM;
rt->ip = new_rt->ip;
rt->at = new_rt->at;
rt->next = NULL;
- rt->dev = atrtr_get_dev(&rt->at);
- if(rt->dev == NULL)
- {
- kfree(rt);
- return (-ENETUNREACH);
+ if ((rt->dev = atrtr_get_dev(&rt->at)) == NULL) {
+ kfree(rt);
+ return -ENETUNREACH;
}
- test = ipddp_find_route(rt);
- if(test != NULL)
- return (-EEXIST);
-
+ if (ipddp_find_route(rt)) {
+ kfree(rt);
+ return -EEXIST;
+ }
+
rt->next = ipddp_route_list;
ipddp_route_list = rt;
@@ -264,22 +255,26 @@
static int ipddp_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
{
struct ipddp_route *rt = (struct ipddp_route *)ifr->ifr_data;
+ struct ipddp_route rcp;
if(!capable(CAP_NET_ADMIN))
return -EPERM;
+ if(copy_from_user(&rcp, rt, sizeof(rcp)))
+ return -EFAULT;
+
switch(cmd)
{
case SIOCADDIPDDPRT:
- return (ipddp_create(rt));
+ return (ipddp_create(&rcp));
case SIOCFINDIPDDPRT:
- if(copy_to_user(rt, ipddp_find_route(rt), sizeof(struct ipddp_route)))
+ if(copy_to_user(rt, ipddp_find_route(&rcp), sizeof(struct ipddp_route)))
return -EFAULT;
return 0;
case SIOCDELIPDDPRT:
- return (ipddp_delete(rt));
+ return (ipddp_delete(&rcp));
default:
return -EINVAL;
@@ -288,6 +283,7 @@
static struct net_device dev_ipddp;
+MODULE_LICENSE("GPL");
MODULE_PARM(ipddp_mode, "i");
static int __init ipddp_init_module(void)
@@ -307,11 +303,16 @@
static void __exit ipddp_cleanup_module(void)
{
+ struct ipddp_route *p;
+
unregister_netdev(&dev_ipddp);
kfree(dev_ipddp.priv);
- memset(&dev_ipddp, 0, sizeof(dev_ipddp));
- dev_ipddp.init = ipddp_init;
+ while (ipddp_route_list) {
+ p = ipddp_route_list->next;
+ kfree(ipddp_route_list);
+ ipddp_route_list = p;
+ }
}
module_init(ipddp_init_module);
Index: ltpc.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/net/appletalk/ltpc.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- ltpc.c 25 Feb 2001 23:15:01 -0000 1.1.1.2
+++ ltpc.c 11 Apr 2002 12:37:47 -0000 1.2
@@ -62,8 +62,8 @@
/***
*
* $Log$
- * Revision 1.1.1.2 2001/02/25 23:15:01 kenn
- * Import official 2.4.2 Linus tree
+ * Revision 1.2 2002/04/11 12:37:47 atp
+ * synch 2.4.15 commit 50
*
* Revision 1.1.2.1 2000/03/01 05:35:07 jgarzik
* at and tr cleanup
@@ -200,14 +200,14 @@
*/
/* insmod-tweakable variables */
-static int debug=0;
+static int debug;
#define DEBUG_VERBOSE 1
#define DEBUG_UPPER 2
#define DEBUG_LOWER 4
-static int io=0;
-static int irq=0;
-static int dma=0;
+static int io;
+static int irq;
+static int dma;
#include <linux/module.h>
#include <linux/kernel.h>
@@ -284,7 +284,7 @@
/* the transmit queue itself */
-static struct xmitQel *xmQhd=NULL,*xmQtl=NULL;
+static struct xmitQel *xmQhd, *xmQtl;
static void enQ(struct xmitQel *qel)
{
@@ -492,7 +492,7 @@
static unsigned char rescbuf[2] = {LT_GETRESULT,0};
static unsigned char resdbuf[2];
-static int QInIdle=0;
+static int QInIdle;
/* idle expects to be called with the IRQ line high -- either because of
* an interrupt, or because the line is tri-stated
@@ -913,7 +913,7 @@
return 0;
}
-static int ltpc_poll_counter = 0;
+static int ltpc_poll_counter;
static void ltpc_poll(unsigned long l)
{
@@ -1258,6 +1258,8 @@
static struct net_device dev_ltpc;
#ifdef MODULE
+
+MODULE_LICENSE("GPL");
MODULE_PARM(debug, "i");
MODULE_PARM(io, "i");
MODULE_PARM(irq, "i");
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/net/arcnet
In directory usw-pr-cvs1:/tmp/cvs-serv30336/net/arcnet
Modified Files:
Config.in arc-rimi.c arcnet.c com20020-isa.c com20020-pci.c
com20020.c com90io.c com90xx.c
Log Message:
synch 2.4.15 commit 50
Index: Config.in
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/net/arcnet/Config.in,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- Config.in 14 Jan 2001 17:40:02 -0000 1.1.1.1
+++ Config.in 11 Apr 2002 12:37:47 -0000 1.2
@@ -14,10 +14,8 @@
dep_tristate 'ARCnet COM90xx (IO mapped) chipset driver' CONFIG_ARCNET_COM90xxIO $CONFIG_ARCNET
dep_tristate 'ARCnet COM90xx (RIM I) chipset driver' CONFIG_ARCNET_RIM_I $CONFIG_ARCNET
dep_tristate 'ARCnet COM20020 chipset driver' CONFIG_ARCNET_COM20020 $CONFIG_ARCNET
- if [ "$CONFIG_ARCNET_COM20020" != "n" ]; then
- dep_tristate ' Support for COM20020 on ISA' CONFIG_ARCNET_COM20020_ISA $CONFIG_ARCNET_COM20020 $CONFIG_ARCNET
- dep_tristate ' Support for COM20020 on PCI' CONFIG_ARCNET_COM20020_PCI $CONFIG_ARCNET_COM20020 $CONFIG_ARCNET
- fi
+ dep_tristate ' Support for COM20020 on ISA' CONFIG_ARCNET_COM20020_ISA $CONFIG_ARCNET_COM20020 $CONFIG_ISA
+ dep_tristate ' Support for COM20020 on PCI' CONFIG_ARCNET_COM20020_PCI $CONFIG_ARCNET_COM20020 $CONFIG_PCI
fi
endmenu
Index: arc-rimi.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/net/arcnet/arc-rimi.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- arc-rimi.c 25 Feb 2001 23:15:00 -0000 1.1.1.2
+++ arc-rimi.c 11 Apr 2002 12:37:47 -0000 1.2
@@ -2,7 +2,7 @@
* Linux ARCnet driver - "RIM I" (entirely mem-mapped) cards
*
* Written 1994-1999 by Avery Pennarun.
- * Written 1999-2000 by Martin Mares <mj...@su...>.
+ * Written 1999-2000 by Martin Mares <mj...@uc...>.
* Derived from skeleton.c by Donald Becker.
*
* Special thanks to Contemporary Controls, Inc. (www.ccontrols.com)
Index: arcnet.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/net/arcnet/arcnet.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- arcnet.c 25 Feb 2001 23:15:00 -0000 1.1.1.2
+++ arcnet.c 11 Apr 2002 12:37:47 -0000 1.2
@@ -3,7 +3,7 @@
*
* Written 1997 by David Woodhouse.
* Written 1994-1999 by Avery Pennarun.
- * Written 1999-2000 by Martin Mares <mj...@su...>.
+ * Written 1999-2000 by Martin Mares <mj...@uc...>.
* Derived from skeleton.c by Donald Becker.
*
* Special thanks to Contemporary Controls, Inc. (www.ccontrols.com)
@@ -107,7 +107,7 @@
void __init arcnet_init(void)
{
- static int arcnet_inited = 0;
+ static int arcnet_inited;
int count;
if (arcnet_inited++)
@@ -361,8 +361,6 @@
dev->get_stats = arcnet_get_stats;
dev->hard_header = arcnet_header;
dev->rebuild_header = arcnet_rebuild_header;
-
- dev_init_buffers(dev);
}
@@ -528,7 +526,7 @@
struct arcnet_local *lp = (struct arcnet_local *) dev->priv;
int status = 0; /* default is failure */
unsigned short type;
- uint8_t daddr;
+ uint8_t daddr=0;
if (skb->nh.raw - skb->mac.raw != 2) {
BUGMSG(D_NORMAL,
@@ -696,6 +694,9 @@
msg, status, lp->intmask, lp->lasttrans_dest);
lp->last_timeout = jiffies;
}
+
+ if (lp->cur_tx == -1)
+ netif_wake_queue(dev);
}
Index: com20020-isa.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/net/arcnet/com20020-isa.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- com20020-isa.c 25 Feb 2001 23:15:00 -0000 1.1.1.2
+++ com20020-isa.c 11 Apr 2002 12:37:47 -0000 1.2
@@ -3,7 +3,7 @@
*
* Written 1997 by David Woodhouse.
* Written 1994-1999 by Avery Pennarun.
- * Written 1999-2000 by Martin Mares <mj...@su...>.
+ * Written 1999-2000 by Martin Mares <mj...@uc...>.
* Derived from skeleton.c by Donald Becker.
*
* Special thanks to Contemporary Controls, Inc. (www.ccontrols.com)
Index: com20020-pci.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/net/arcnet/com20020-pci.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- com20020-pci.c 25 Feb 2001 23:15:00 -0000 1.1.1.2
+++ com20020-pci.c 11 Apr 2002 12:37:47 -0000 1.2
@@ -3,7 +3,7 @@
*
* Written 1994-1999 by Avery Pennarun,
* based on an ISA version by David Woodhouse.
- * Written 1999-2000 by Martin Mares <mj...@su...>.
+ * Written 1999-2000 by Martin Mares <mj...@uc...>.
* Derived from skeleton.c by Donald Becker.
*
* Special thanks to Contemporary Controls, Inc. (www.ccontrols.com)
@@ -44,12 +44,12 @@
/* Module parameters */
-static int node = 0;
+static int node;
static char *device; /* use eg. device="arc1" to change name */
static int timeout = 3;
-static int backplane = 0;
-static int clockp = 0;
-static int clockm = 0;
+static int backplane;
+static int clockp;
+static int clockm;
MODULE_PARM(node, "i");
MODULE_PARM(device, "s");
@@ -78,10 +78,12 @@
if (!dev)
return err;
lp = dev->priv = kmalloc(sizeof(struct arcnet_local), GFP_KERNEL);
- if (!lp)
- return -ENOMEM;
+ if (!lp) {
+ err = -ENOMEM;
+ goto out_dev;
+ }
memset(lp, 0, sizeof(struct arcnet_local));
- pdev->driver_data = dev;
+ pci_set_drvdata(pdev, dev);
ioaddr = pci_resource_start(pdev, 2);
dev->base_addr = ioaddr;
@@ -98,22 +100,35 @@
if (check_region(ioaddr, ARCNET_TOTAL_SIZE)) {
BUGMSG(D_INIT, "IO region %xh-%xh already allocated.\n",
ioaddr, ioaddr + ARCNET_TOTAL_SIZE - 1);
- return -EBUSY;
+ err = -EBUSY;
+ goto out_priv;
}
if (ASTATUS() == 0xFF) {
BUGMSG(D_NORMAL, "IO address %Xh was reported by PCI BIOS, "
"but seems empty!\n", ioaddr);
- return -EIO;
+ err = -EIO;
+ goto out_priv;
}
- if (com20020_check(dev))
- return -EIO;
+ if (com20020_check(dev)) {
+ err = -EIO;
+ goto out_priv;
+ }
+
+ if ((err = com20020_found(dev, SA_SHIRQ)) != 0)
+ goto out_priv;
+
+ return 0;
- return com20020_found(dev, SA_SHIRQ);
+out_priv:
+ kfree(dev->priv);
+out_dev:
+ kfree(dev);
+ return err;
}
static void __devexit com20020pci_remove(struct pci_dev *pdev)
{
- com20020_remove(pdev->driver_data);
+ com20020_remove(pci_get_drvdata(pdev));
}
static struct pci_device_id com20020pci_id_table[] __devinitdata = {
Index: com20020.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/net/arcnet/com20020.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- com20020.c 25 Feb 2001 23:15:00 -0000 1.1.1.2
+++ com20020.c 11 Apr 2002 12:37:47 -0000 1.2
@@ -3,7 +3,7 @@
*
* Written 1997 by David Woodhouse.
* Written 1994-1999 by Avery Pennarun.
- * Written 1999 by Martin Mares <mj...@su...>.
+ * Written 1999 by Martin Mares <mj...@uc...>.
* Derived from skeleton.c by Donald Becker.
*
* Special thanks to Contemporary Controls, Inc. (www.ccontrols.com)
Index: com90io.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/net/arcnet/com90io.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- com90io.c 25 Feb 2001 23:15:00 -0000 1.1.1.2
+++ com90io.c 11 Apr 2002 12:37:47 -0000 1.2
@@ -3,7 +3,7 @@
*
* Written 1997 by David Woodhouse.
* Written 1994-1999 by Avery Pennarun.
- * Written 1999-2000 by Martin Mares <mj...@su...>.
+ * Written 1999-2000 by Martin Mares <mj...@uc...>.
* Derived from skeleton.c by Donald Becker.
*
* Special thanks to Contemporary Controls, Inc. (www.ccontrols.com)
@@ -373,8 +373,8 @@
/* Module parameters */
-static int io = 0x0; /* use the insmod io= irq= shmem= options */
-static int irq = 0;
+static int io; /* use the insmod io= irq= shmem= options */
+static int irq;
static char *device; /* use eg. device=arc1 to change name */
MODULE_PARM(io, "i");
Index: com90xx.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/net/arcnet/com90xx.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- com90xx.c 25 Feb 2001 23:15:00 -0000 1.1.1.2
+++ com90xx.c 11 Apr 2002 12:37:47 -0000 1.2
@@ -2,7 +2,7 @@
* Linux ARCnet driver - COM90xx chipset (memory-mapped buffers)
*
* Written 1994-1999 by Avery Pennarun.
- * Written 1999 by Martin Mares <mj...@su...>.
+ * Written 1999 by Martin Mares <mj...@uc...>.
* Derived from skeleton.c by Donald Becker.
*
* Special thanks to Contemporary Controls, Inc. (www.ccontrols.com)
@@ -610,9 +610,9 @@
/* Module parameters */
-static int io = 0x0; /* use the insmod io= irq= shmem= options */
-static int irq = 0;
-static int shmem = 0;
+static int io; /* use the insmod io= irq= shmem= options */
+static int irq;
+static int shmem;
static char *device; /* use eg. device=arc1 to change name */
MODULE_PARM(io, "i");
|
|
From: Andy P. <at...@us...> - 2002-04-11 14:31:22
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/net/fc
In directory usw-pr-cvs1:/tmp/cvs-serv30336/net/fc
Modified Files:
iph5526.c tach.h
Log Message:
synch 2.4.15 commit 50
Index: iph5526.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/net/fc/iph5526.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- iph5526.c 25 Feb 2001 23:15:01 -0000 1.1.1.2
+++ iph5526.c 11 Apr 2002 12:37:47 -0000 1.2
@@ -118,6 +118,8 @@
};
MODULE_DEVICE_TABLE(pci, iph5526_pci_tbl);
+MODULE_LICENSE("GPL");
+
#define MAX_FC_CARDS 2
static struct fc_info *fc[MAX_FC_CARDS+1];
static unsigned int pci_irq_line;
@@ -222,7 +224,7 @@
static int get_scsi_oxid(struct fc_info *fi);
static void update_scsi_oxid(struct fc_info *fi);
-Scsi_Host_Template driver_template = IPH5526_SCSI_FC;
+static Scsi_Host_Template driver_template = IPH5526_SCSI_FC;
static void iph5526_timeout(struct net_device *dev);
@@ -241,7 +243,7 @@
struct fc_info *fi = (struct fc_info *)dev->priv;
#else
struct fc_info *fi;
- static int count = 0;
+ static int count;
if(fc[count] != NULL) {
if (dev == NULL) {
@@ -1074,11 +1076,11 @@
fi->fc_stats.rx_dropped++;
fi->g.mfs_buffer_count += no_of_buffers;
if (fi->g.mfs_buffer_count >= NO_OF_ENTRIES) {
- int count = fi->g.mfs_buffer_count / NO_OF_ENTRIES;
+ int count = fi->g.mfs_buffer_count / NO_OF_ENTRIES;
fi->g.mfs_buffer_count -= NO_OF_ENTRIES * count;
update_MFSBQ_indx(fi, count);
- return;
}
+ return;
}
if (wrap_around) {
int wrap_size = no_of_wrap_buffs * MFS_BUFFER_SIZE;
@@ -1930,7 +1932,7 @@
fi->g.name_server = FALSE;
fi->g.alpa_list_index = 0;
fi->g.ox_id = NOT_SCSI_XID;
- fi->g.my_mtu = FRAME_SIZE;
+ fi->g.my_mtu = TACH_FRAME_SIZE;
/* Implicitly LOGO with all logged-in nodes.
*/
@@ -2809,7 +2811,7 @@
else
if (logi == ELS_FLOGI)
fi->g.login.common_features = htons(FLOGI_C_F);
- fi->g.login.recv_data_field_size = htons(FRAME_SIZE);
+ fi->g.login.recv_data_field_size = htons(TACH_FRAME_SIZE);
fi->g.login.n_port_total_conc_seq = htons(CONCURRENT_SEQUENCES);
fi->g.login.rel_off_by_info_cat = htons(RO_INFO_CATEGORY);
fi->g.login.ED_TOV = htonl(E_D_TOV);
@@ -2845,7 +2847,7 @@
fi->g.login.c_of_s[2].service_options = htons(SERVICE_VALID);
fi->g.login.c_of_s[2].initiator_ctl = htons(0);
fi->g.login.c_of_s[2].recipient_ctl = htons(0);
- fi->g.login.c_of_s[2].recv_data_field_size = htons(FRAME_SIZE);
+ fi->g.login.c_of_s[2].recv_data_field_size = htons(TACH_FRAME_SIZE);
fi->g.login.c_of_s[2].concurrent_sequences = htons(CLASS3_CONCURRENT_SEQUENCE);
fi->g.login.c_of_s[2].n_port_end_to_end_credit = htons(0);
fi->g.login.c_of_s[2].open_seq_per_exchange = htons(CLASS3_OPEN_SEQUENCE);
@@ -4523,9 +4525,9 @@
static struct net_device *dev_fc[MAX_FC_CARDS];
-static int io = 0;
-static int irq = 0;
-static int bad = 0; /* 0xbad = bad sig or no reset ack */
+static int io;
+static int irq;
+static int bad; /* 0xbad = bad sig or no reset ack */
static int scsi_registered;
Index: tach.h
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/net/fc/tach.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- tach.h 14 Jan 2001 17:45:18 -0000 1.1.1.1
+++ tach.h 11 Apr 2002 12:37:47 -0000 1.2
@@ -94,9 +94,9 @@
/* Size of the various buffers.
*/
-#define FRAME_SIZE 2048
-#define MFS_BUFFER_SIZE FRAME_SIZE
-#define SFS_BUFFER_SIZE (FRAME_SIZE + TACHYON_HEADER_LEN)
+#define TACH_FRAME_SIZE 2048
+#define MFS_BUFFER_SIZE TACH_FRAME_SIZE
+#define SFS_BUFFER_SIZE (TACH_FRAME_SIZE + TACHYON_HEADER_LEN)
#define SEST_BUFFER_SIZE 512
#define TACH_HEADER_SIZE 64
#define NO_OF_TACH_HEADERS ((MY_PAGE_SIZE)/TACH_HEADER_SIZE)
|
|
From: Andy P. <at...@us...> - 2002-04-11 14:31:12
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/scsi/pcmcia
In directory usw-pr-cvs1:/tmp/cvs-serv7445/scsi/pcmcia
Modified Files:
Config.in Makefile aha152x_stub.c fdomain_stub.c qlogic_stub.c
Added Files:
nsp_cs.c nsp_cs.h nsp_debug.c nsp_io.h nsp_message.c
Removed Files:
apa1480_stub.c
Log Message:
synch 2.4.15 commit 51
--- NEW FILE ---
/*======================================================================
NinjaSCSI-3 / NinjaSCSI-32Bi PCMCIA SCSI hostadapter card driver
By: YOKOTA Hiroshi <yo...@ne...>
Ver.2.0 Support 32bit PIO mode
Ver.1.1.2 Fix for scatter list buffer exceeds
Ver.1.1 Support scatter list
Ver.0.1 Initial version
This software may be used and distributed according to the terms of
the GNU General Public License.
======================================================================*/
/***********************************************************************
This driver is for these PCcards.
I-O DATA PCSC-F (Workbit NinjaSCSI-3)
[...1711 lines suppressed...]
{
DEBUG(0, __FUNCTION__ "() unloading\n");
unregister_pcmcia_driver(&dev_info);
while (dev_list != NULL) {
if (dev_list->state & DEV_CONFIG) {
nsp_cs_release((u_long)dev_list);
}
nsp_cs_detach(dev_list);
}
}
module_init(nsp_cs_init);
module_exit(nsp_cs_cleanup);
/*
*
*
*/
/* end */
--- NEW FILE ---
/*=======================================================/
Header file for nsp_cs.c
By: YOKOTA Hiroshi <yo...@ne...>
Ver.1.0 : Cut unused lines.
Ver 0.1 : Initial version.
This software may be used and distributed according to the terms of
the GNU General Public License.
=========================================================*/
/* $Id: nsp_cs.h,v 1.1 2002/04/11 13:06:02 atp Exp $ */
#ifndef __nsp_cs__
#define __nsp_cs__
/* for debugging */
/*#define PCMCIA_DEBUG 9*/
/*
#define static
#define inline
*/
/************************************
* Some useful macros...
*/
#define Number(arr) ((int) (sizeof(arr) / sizeof(arr[0])))
#define BIT(x) (1<<(x))
#define MIN(a,b) ((a) > (b) ? (b) : (a))
/* SCSI initiator must be 7 */
#define SCSI_INITIATOR_ID 7
#define NSP_SELTIMEOUT 200
/* base register */
#define IRQCONTROL 0x00
# define IRQCONTROL_RESELECT_CLEAR BIT(0)
# define IRQCONTROL_PHASE_CHANGE_CLEAR BIT(1)
# define IRQCONTROL_TIMER_CLEAR BIT(2)
# define IRQCONTROL_FIFO_CLEAR BIT(3)
# define IRQCONTROL_ALLMASK 0xff
# define IRQCONTROL_ALLCLEAR 0x0f
# define IRQCONTROL_IRQDISABLE 0xf0
#define IRQSTATUS 0x00
# define IRQSTATUS_SCSI BIT(0)
# define IRQSTATUS_TIMER BIT(2)
# define IRQSTATUS_FIFO BIT(3)
# define IRQSTATUS_MASK 0x0f
#define IFSELECT 0x01
# define IF_IFSEL BIT(0)
# define IF_REGSEL BIT(2)
#define FIFOSTATUS 0x01
# define FIFOSTATUS_CHIP_REVISION 0x0f
# define FIFOSTATUS_CHIP_ID 0x70
# define FIFOSTATUS_FULL_EMPTY 0x80
#define INDEXREG 0x02
#define DATAREG 0x03
#define FIFODATA 0x04
#define FIFODATA1 0x05
#define FIFODATA2 0x06
#define FIFODATA3 0x07
/* indexed register */
#define EXTBUSCTRL 0x10
#define CLOCKDIV 0x11
# define CLOCK_40M 0x02
# define CLOCK_20M 0x01
#define TERMPWRCTRL 0x13
# define POWER_ON BIT(0)
#define SCSIIRQMODE 0x15
# define SCSI_PHASE_CHANGE_EI BIT(0)
# define RESELECT_EI BIT(4)
# define FIFO_IRQ_EI BIT(5)
# define SCSI_RESET_IRQ_EI BIT(6)
#define IRQPHASESENCE 0x16
# define LATCHED_MSG BIT(0)
# define LATCHED_IO BIT(1)
# define LATCHED_CD BIT(2)
# define LATCHED_BUS_FREE BIT(3)
# define PHASE_CHANGE_IRQ BIT(4)
# define RESELECT_IRQ BIT(5)
# define FIFO_IRQ BIT(6)
# define SCSI_RESET_IRQ BIT(7)
#define TIMERCOUNT 0x17
#define SCSIBUSCTRL 0x18
# define SCSI_SEL BIT(0)
# define SCSI_RST BIT(1)
# define SCSI_DATAOUT_ENB BIT(2)
# define SCSI_ATN BIT(3)
# define SCSI_ACK BIT(4)
# define SCSI_BSY BIT(5)
# define AUTODIRECTION BIT(6)
# define ACKENB BIT(7)
#define SCSIBUSMON 0x19
#define SETARBIT 0x1A
# define ARBIT_GO BIT(0)
# define ARBIT_FLAG_CLEAR BIT(1)
#define ARBITSTATUS 0x1A
/*# define ARBIT_GO BIT(0)*/
# define ARBIT_WIN BIT(1)
# define ARBIT_FAIL BIT(2)
# define RESELECT_FLAG BIT(3)
#define PARITYCTRL 0x1B /* W */
#define PARITYSTATUS 0x1B /* R */
#define COMMANDCTRL 0x1C /* W */
# define CLEAR_COMMAND_POINTER BIT(0)
# define AUTO_COMMAND_GO BIT(1)
#define RESELECTID 0x1C /* R */
#define COMMANDDATA 0x1D
#define POINTERCLR 0x1E /* W */
# define POINTER_CLEAR BIT(0)
# define ACK_COUNTER_CLEAR BIT(1)
# define REQ_COUNTER_CLEAR BIT(2)
# define HOST_COUNTER_CLEAR BIT(3)
# define READ_SOURCE 0x30
#define TRANSFERCOUNT 0x1E /* R */
#define TRANSFERMODE 0x20
# define MODE_MEM8 BIT(0)
# define MODE_MEM32 BIT(1)
# define MODE_ADR24 BIT(2)
# define MODE_ADR32 BIT(3)
# define MODE_IO8 BIT(4)
# define MODE_IO32 BIT(5)
# define TRANSFER_GO BIT(6)
# define BRAIND BIT(7)
#define SYNCREG 0x21
# define SYNCREG_OFFSET_MASK 0x0f
# define SYNCREG_PERIOD_MASK 0xf0
# define SYNCREG_PERIOD_SHIFT 4
#define SCSIDATALATCH 0x22
#define SCSIDATAIN 0x22
#define SCSIDATAWITHACK 0x23
#define SCAMCONTROL 0x24
#define SCAMSTATUS 0x24
#define SCAMDATA 0x25
#define OTHERCONTROL 0x26
# define TPL_ROM_WRITE_EN BIT(0)
# define TPWR_OUT BIT(1)
# define TPWR_SENSE BIT(2)
# define RA8_CONTROL BIT(3)
#define ACKWIDTH 0x27
#define CLRTESTPNT 0x28
#define ACKCNTLD 0x29
#define REQCNTLD 0x2A
#define HSTCNTLD 0x2B
#define CHECKSUM 0x2C
/*
* Input status bit definitions.
*/
#define S_ATN 0x80 /**/
#define S_SELECT 0x40 /**/
#define S_REQUEST 0x20 /* Request line from SCSI bus*/
#define S_ACK 0x10 /* Acknowlege line from SCSI bus*/
#define S_BUSY 0x08 /* Busy line from SCSI bus*/
#define S_CD 0x04 /* Command/Data line from SCSI bus*/
#define S_IO 0x02 /* Input/Output line from SCSI bus*/
#define S_MESSAGE 0x01 /* Message line from SCSI bus*/
/*
* Useful Bus Monitor status combinations.
*/
#define BUSMON_SEL S_SELECT
#define BUSMON_BSY S_BUSY
#define BUSMON_REQ S_REQUEST
#define BUSMON_IO S_IO
#define BUSMON_ACK S_ACK
#define BUSMON_BUS_FREE 0
#define BUSMON_COMMAND ( S_BUSY | S_CD | S_REQUEST )
#define BUSMON_MESSAGE_IN ( S_BUSY | S_MESSAGE | S_IO | S_CD | S_REQUEST )
#define BUSMON_MESSAGE_OUT ( S_BUSY | S_MESSAGE | S_CD | S_REQUEST )
#define BUSMON_DATA_IN ( S_BUSY | S_IO | S_REQUEST )
#define BUSMON_DATA_OUT ( S_BUSY | S_REQUEST )
#define BUSMON_STATUS ( S_BUSY | S_IO | S_CD | S_REQUEST )
#define BUSMON_RESELECT ( S_SELECT | S_IO )
#define BUSMON_PHASE_MASK ( S_SELECT | S_CD | S_MESSAGE | S_IO )
#define BUSPHASE_COMMAND ( BUSMON_COMMAND & BUSMON_PHASE_MASK )
#define BUSPHASE_MESSAGE_IN ( BUSMON_MESSAGE_IN & BUSMON_PHASE_MASK )
#define BUSPHASE_MESSAGE_OUT ( BUSMON_MESSAGE_OUT & BUSMON_PHASE_MASK )
#define BUSPHASE_DATA_IN ( BUSMON_DATA_IN & BUSMON_PHASE_MASK )
#define BUSPHASE_DATA_OUT ( BUSMON_DATA_OUT & BUSMON_PHASE_MASK )
#define BUSPHASE_STATUS ( BUSMON_STATUS & BUSMON_PHASE_MASK )
#define BUSPHASE_SELECT ( S_SELECT | S_IO )
/* synchronous transfer negotiation data */
typedef struct _sync_data {
unsigned int SyncNegotiation;
#define SYNC_NOT_YET 0
#define SYNC_OK 1
#define SYNC_NG 2
unsigned int SyncPeriod;
unsigned int SyncOffset;
unsigned char SyncRegister;
unsigned char AckWidth;
} sync_data;
typedef struct _nsp_data {
unsigned int BaseAddress;
unsigned int NumAddress;
unsigned int IrqNumber;
unsigned char ScsiClockDiv;
unsigned char TransferMode;
int TimerCount;
int SelectionTimeOut;
Scsi_Cmnd *CurrentSC;
int FifoCount;
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,0))
int Residual;
#define RESID data->Residual
#else
#define RESID SCpnt->resid
#endif
#define MSGBUF_SIZE 20
unsigned char MsgBuffer[MSGBUF_SIZE];
int MsgLen;
#define N_TARGET 8
#define N_LUN 8
sync_data Sync[N_TARGET][N_LUN];
} nsp_hw_data;
static void nsp_cs_release(u_long arg);
static int nsp_cs_event(event_t event, int priority, event_callback_args_t *args);
static dev_link_t *nsp_cs_attach(void);
static void nsp_cs_detach(dev_link_t *);
static unsigned int nsphw_start_selection(Scsi_Cmnd *SCpnt, nsp_hw_data *data);
static void nsp_start_timer(Scsi_Cmnd *SCpnt, nsp_hw_data *data, int time);
static int nsp_detect(Scsi_Host_Template * );
static int nsp_release(struct Scsi_Host *shpnt);
static const char * nsp_info(struct Scsi_Host *shpnt);
static int nsp_queuecommand(Scsi_Cmnd *, void (* done)(Scsi_Cmnd *));
static int nsp_abort(Scsi_Cmnd *);
static int nsp_reset(Scsi_Cmnd *, unsigned int);
static int nsp_eh_abort(Scsi_Cmnd * SCpnt);
static int nsp_eh_device_reset(Scsi_Cmnd *SCpnt);
static int nsp_eh_bus_reset(Scsi_Cmnd *SCpnt);
static int nsp_eh_host_reset(Scsi_Cmnd *SCpnt);
static int nsp_fifo_count(Scsi_Cmnd *SCpnt);
static void nsp_pio_read(Scsi_Cmnd *SCpnt, nsp_hw_data *data);
static int nsp_nexus(Scsi_Cmnd *SCpnt, nsp_hw_data *data);
#ifdef PCMCIA_DEBUG
static void show_command(Scsi_Cmnd *ptr);
static void show_phase(Scsi_Cmnd *SCpnt);
static void show_busphase(unsigned char stat);
static void show_message(nsp_hw_data *data);
#else
# define show_command(ptr) /* */
# define show_phase(SCpnt) /* */
# define show_busphase(stat) /* */
# define show_message(data) /* */
#endif
/*
* SCSI phase
*/
enum _scsi_phase {
PH_UNDETERMINED,
PH_ARBSTART,
PH_SELSTART,
PH_SELECTED,
PH_COMMAND,
PH_DATA,
PH_STATUS,
PH_MSG_IN,
PH_MSG_OUT,
PH_DISCONNECT,
PH_RESELECT
};
enum _data_in_out {
IO_UNKNOWN,
IO_IN,
IO_OUT
};
/* SCSI messaage */
#define MSG_COMMAND_COMPLETE 0x00
#define MSG_EXTENDED 0x01
#define MSG_NO_OPERATION 0x08
#define MSG_EXT_SDTR 0x01
#endif /*__nsp_cs__*/
--- NEW FILE ---
/*========================================================================
Debug routines for nsp_cs
By: YOKOTA Hiroshi <yo...@ne...>
This software may be used and distributed according to the terms of
the GNU General Public License.
=========================================================================*/
/* $Id: nsp_debug.c,v 1.1 2002/04/11 13:06:03 atp Exp $ */
/*
* Show the command data of a command
*/
static const char unknown[] = "UNKNOWN";
static const char * group_0_commands[] = {
/* 00-03 */ "Test Unit Ready", "Rezero Unit", unknown, "Request Sense",
/* 04-07 */ "Format Unit", "Read Block Limits", unknown, "Reasssign Blocks",
/* 08-0d */ "Read (6)", unknown, "Write (6)", "Seek (6)", unknown, unknown,
/* 0e-12 */ unknown, "Read Reverse", "Write Filemarks", "Space", "Inquiry",
/* 13-16 */ unknown, "Recover Buffered Data", "Mode Select", "Reserve",
/* 17-1b */ "Release", "Copy", "Erase", "Mode Sense", "Start/Stop Unit",
/* 1c-1d */ "Receive Diagnostic", "Send Diagnostic",
/* 1e-1f */ "Prevent/Allow Medium Removal", unknown,
};
static const char *group_1_commands[] = {
/* 20-22 */ unknown, unknown, unknown,
/* 23-28 */ unknown, unknown, "Read Capacity", unknown, unknown, "Read (10)",
/* 29-2d */ unknown, "Write (10)", "Seek (10)", unknown, unknown,
/* 2e-31 */ "Write Verify","Verify", "Search High", "Search Equal",
/* 32-34 */ "Search Low", "Set Limits", "Prefetch or Read Position",
/* 35-37 */ "Synchronize Cache","Lock/Unlock Cache", "Read Defect Data",
/* 38-3c */ "Medium Scan", "Compare","Copy Verify", "Write Buffer", "Read Buffer",
/* 3d-3f */ "Update Block", "Read Long", "Write Long",
};
static const char *group_2_commands[] = {
/* 40-41 */ "Change Definition", "Write Same",
/* 42-48 */ "Read Sub-Ch(cd)", "Read TOC", "Read Header(cd)", "Play Audio(cd)", unknown, "Play Audio MSF(cd)", "Play Audio Track/Index(cd)",
/* 49-4f */ "Play Track Relative(10)(cd)", unknown, "Pause/Resume(cd)", "Log Select", "Log Sense", unknown, unknown,
/* 50-55 */ unknown, unknown, unknown, unknown, unknown, "Mode Select (10)",
/* 56-5b */ unknown, unknown, unknown, unknown, "Mode Sense (10)", unknown,
/* 5c-5f */ unknown, unknown, unknown,
};
#define group(opcode) (((opcode) >> 5) & 7)
#define RESERVED_GROUP 0
#define VENDOR_GROUP 1
#define NOTEXT_GROUP 2
static const char **commands[] = {
group_0_commands, group_1_commands, group_2_commands,
(const char **) RESERVED_GROUP, (const char **) RESERVED_GROUP,
(const char **) NOTEXT_GROUP, (const char **) VENDOR_GROUP,
(const char **) VENDOR_GROUP
};
static const char reserved[] = "RESERVED";
static const char vendor[] = "VENDOR SPECIFIC";
static void print_opcodek(unsigned char opcode)
{
const char **table = commands[ group(opcode) ];
switch ((unsigned long) table) {
case RESERVED_GROUP:
printk("%s[%02x] ", reserved, opcode);
break;
case NOTEXT_GROUP:
printk("%s(notext)[%02x] ", unknown, opcode);
break;
case VENDOR_GROUP:
printk("%s[%02x] ", vendor, opcode);
break;
default:
if (table[opcode & 0x1f] != unknown)
printk("%s[%02x] ", table[opcode & 0x1f], opcode);
else
printk("%s[%02x] ", unknown, opcode);
break;
}
}
static void print_commandk (unsigned char *command)
{
int i,s;
printk(KERN_DEBUG);
print_opcodek(command[0]);
/*printk(KERN_DEBUG __FUNCTION__ " ");*/
for ( i = 1, s = COMMAND_SIZE(command[0]); i < s; ++i) {
printk("%02x ", command[i]);
}
switch (COMMAND_SIZE(command[0])) {
case 6:
printk("LBA=%d len=%d",
(((unsigned int)command[1] & 0x0f) << 16) |
( (unsigned int)command[2] << 8) |
( (unsigned int)command[3] ),
(unsigned int)command[4]
);
break;
case 10:
printk("LBA=%d len=%d",
((unsigned int)command[2] << 24) |
((unsigned int)command[3] << 16) |
((unsigned int)command[4] << 8) |
((unsigned int)command[5] ),
((unsigned int)command[7] << 8) |
((unsigned int)command[8] )
);
break;
case 12:
printk("LBA=%d len=%d",
((unsigned int)command[2] << 24) |
((unsigned int)command[3] << 16) |
((unsigned int)command[4] << 8) |
((unsigned int)command[5] ),
((unsigned int)command[6] << 24) |
((unsigned int)command[7] << 16) |
((unsigned int)command[8] << 8) |
((unsigned int)command[9] )
);
break;
default:
break;
}
printk("\n");
}
static void show_command(Scsi_Cmnd *ptr)
{
print_commandk(ptr->cmnd);
}
static void show_phase(Scsi_Cmnd *SCpnt)
{
int i = SCpnt->SCp.phase;
char *ph[] = {
"PH_UNDETERMINED",
"PH_ARBSTART",
"PH_SELSTART",
"PH_SELECTED",
"PH_COMMAND",
"PH_DATA",
"PH_STATUS",
"PH_MSG_IN",
"PH_MSG_OUT",
"PH_DISCONNECT",
"PH_RESELECT"
};
if ( i < PH_UNDETERMINED || i > PH_RESELECT ) {
printk(KERN_DEBUG "scsi phase: unknown(%d)\n", i);
return;
}
printk(KERN_DEBUG "scsi phase: %s\n", ph[i]);
return;
}
static void show_busphase(unsigned char stat)
{
switch(stat) {
case BUSPHASE_COMMAND:
printk(KERN_DEBUG "BUSPHASE_COMMAND\n");
break;
case BUSPHASE_MESSAGE_IN:
printk(KERN_DEBUG "BUSPHASE_MESSAGE_IN\n");
break;
case BUSPHASE_MESSAGE_OUT:
printk(KERN_DEBUG "BUSPHASE_MESSAGE_OUT\n");
break;
case BUSPHASE_DATA_IN:
printk(KERN_DEBUG "BUSPHASE_DATA_IN\n");
break;
case BUSPHASE_DATA_OUT:
printk(KERN_DEBUG "BUSPHASE_DATA_OUT\n");
break;
case BUSPHASE_STATUS:
printk(KERN_DEBUG "BUSPHASE_STATUS\n");
break;
case BUSPHASE_SELECT:
printk(KERN_DEBUG "BUSPHASE_SELECT\n");
break;
default:
printk(KERN_DEBUG "BUSPHASE_other\n");
break;
}
}
static void show_message(nsp_hw_data *data)
{
int i;
printk(KERN_DEBUG "msg:");
for(i=0; i < data->MsgLen; i++) {
printk(" %02x", data->MsgBuffer[i]);
}
printk("\n");
}
/* end */
--- NEW FILE ---
/*
NinjaSCSI I/O funtions
By: YOKOTA Hiroshi <yo...@ne...>
This software may be used and distributed according to the terms of
the GNU General Public License.
*/
/* $Id: nsp_io.h,v 1.1 2002/04/11 13:06:03 atp Exp $ */
#ifndef __NSP_IO_H__
#define __NSP_IO_H__
static inline void nsp_write(unsigned int base,
unsigned int index,
unsigned char val);
static inline unsigned char nsp_read(unsigned int base,
unsigned int index);
static inline void nsp_index_write(unsigned int BaseAddr,
unsigned int Register,
unsigned char Value);
static inline unsigned char nsp_index_read(unsigned int BaseAddr,
unsigned int Register);
/*******************************************************************
* Basic IO
*/
static inline void nsp_write(unsigned int base,
unsigned int index,
unsigned char val)
{
outb(val, (base + index));
}
static inline unsigned char nsp_read(unsigned int base,
unsigned int index)
{
return inb(base + index);
}
/**********************************************************************
* Indexed IO
*/
static inline unsigned char nsp_index_read(unsigned int BaseAddr,
unsigned int Register)
{
outb(Register, BaseAddr + INDEXREG);
return inb(BaseAddr + DATAREG);
}
static inline void nsp_index_write(unsigned int BaseAddr,
unsigned int Register,
unsigned char Value)
{
outb(Register, BaseAddr + INDEXREG);
outb(Value, BaseAddr + DATAREG);
}
/*********************************************************************
* fifo func
*/
/* read 8 bit FIFO */
static inline void nsp_multi_read_1(unsigned int BaseAddr,
unsigned int Register,
void *buf,
unsigned long count)
{
insb(BaseAddr + Register, buf, count);
}
static inline void nsp_fifo8_read(unsigned int base,
void *buf,
unsigned long count)
{
//DEBUG(0, __FUNCTION__ "() buf=0x%p, count=0x%lx\n", buf, count);
nsp_multi_read_1(base, FIFODATA, buf, count);
}
/*--------------------------------------------------------------*/
/* read 16 bit FIFO */
static inline void nsp_multi_read_2(unsigned int BaseAddr,
unsigned int Register,
void *buf,
unsigned long count)
{
insw(BaseAddr + Register, buf, count);
}
static inline void nsp_fifo16_read(unsigned int base,
void *buf,
unsigned long count)
{
//DEBUG(0, __FUNCTION__ "() buf=0x%p, count=0x%lx*2\n", buf, count);
nsp_multi_read_2(base, FIFODATA, buf, count);
}
/*--------------------------------------------------------------*/
/* read 32bit FIFO */
static inline void nsp_multi_read_4(unsigned int BaseAddr,
unsigned int Register,
void *buf,
unsigned long count)
{
insl(BaseAddr + Register, buf, count);
}
static inline void nsp_fifo32_read(unsigned int base,
void *buf,
unsigned long count)
{
//DEBUG(0, __FUNCTION__ "() buf=0x%p, count=0x%lx*4\n", buf, count);
nsp_multi_read_4(base, FIFODATA, buf, count);
}
/*----------------------------------------------------------*/
/* write 8bit FIFO */
static inline void nsp_multi_write_1(unsigned int BaseAddr,
unsigned int Register,
void *buf,
unsigned long count)
{
outsb(BaseAddr + Register, buf, count);
}
static inline void nsp_fifo8_write(unsigned int base,
void *buf,
unsigned long count)
{
nsp_multi_write_1(base, FIFODATA, buf, count);
}
/*---------------------------------------------------------*/
/* write 16bit FIFO */
static inline void nsp_multi_write_2(unsigned int BaseAddr,
unsigned int Register,
void *buf,
unsigned long count)
{
outsw(BaseAddr + Register, buf, count);
}
static inline void nsp_fifo16_write(unsigned int base,
void *buf,
unsigned long count)
{
nsp_multi_write_2(base, FIFODATA, buf, count);
}
/*---------------------------------------------------------*/
/* write 32bit FIFO */
static inline void nsp_multi_write_4(unsigned int BaseAddr,
unsigned int Register,
void *buf,
unsigned long count)
{
outsl(BaseAddr + Register, buf, count);
}
static inline void nsp_fifo32_write(unsigned int base,
void *buf,
unsigned long count)
{
nsp_multi_write_4(base, FIFODATA, buf, count);
}
#endif
/* end */
--- NEW FILE ---
/*==========================================================================
NinjaSCSI-3 message handler
By: YOKOTA Hiroshi <yo...@ne...>
This software may be used and distributed according to the terms of
the GNU General Public License.
*/
/* $Id: nsp_message.c,v 1.1 2002/04/11 13:06:03 atp Exp $ */
static void nsp_message_in(Scsi_Cmnd *SCpnt, nsp_hw_data *data)
{
unsigned int base = SCpnt->host->io_port;
unsigned char data_reg, control_reg;
int ret, len;
/*
* XXX: NSP QUIRK
* NSP invoke interrupts only in the case of scsi phase changes,
* therefore we should poll the scsi phase here to catch
* the next "msg in" if exists (no scsi phase changes).
*/
ret = 16;
len = 0;
DEBUG(0, " msgin loop\n");
do {
/* read data */
data_reg = nsp_index_read(base, SCSIDATAIN);
/* assert ACK */
control_reg = nsp_index_read(base, SCSIBUSCTRL);
control_reg |= SCSI_ACK;
nsp_index_write(base, SCSIBUSCTRL, control_reg);
nsp_negate_signal(SCpnt, BUSMON_REQ, "msgin<REQ>");
data->MsgBuffer[len] = data_reg; len++;
/* deassert ACK */
control_reg = nsp_index_read(base, SCSIBUSCTRL);
control_reg &= ~SCSI_ACK;
nsp_index_write(base, SCSIBUSCTRL, control_reg);
/* catch a next signal */
ret = nsp_expect_signal(SCpnt, BUSPHASE_MESSAGE_IN, BUSMON_REQ);
} while (ret > 0 && MSGBUF_SIZE > len);
data->MsgLen = len;
}
static void nsp_message_out(Scsi_Cmnd *SCpnt, nsp_hw_data *data)
{
int ret = 1;
int len = data->MsgLen;
/*
* XXX: NSP QUIRK
* NSP invoke interrupts only in the case of scsi phase changes,
* therefore we should poll the scsi phase here to catch
* the next "msg out" if exists (no scsi phase changes).
*/
DEBUG(0, " msgout loop\n");
do {
if (nsp_xfer(SCpnt, data, BUSPHASE_MESSAGE_OUT)) {
printk(KERN_DEBUG " " __FUNCTION__ " msgout: xfer short\n");
}
/* catch a next signal */
ret = nsp_expect_signal(SCpnt, BUSPHASE_MESSAGE_OUT, BUSMON_REQ);
} while (ret > 0 && len-- > 0);
}
/* end */
Index: Config.in
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/scsi/pcmcia/Config.in,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- Config.in 14 Jan 2001 18:27:05 -0000 1.1.1.1
+++ Config.in 11 Apr 2002 13:06:01 -0000 1.2
@@ -8,15 +8,13 @@
bool 'PCMCIA SCSI adapter support' CONFIG_SCSI_PCMCIA
if [ "$CONFIG_SCSI_PCMCIA" = "y" ]; then
dep_tristate ' Adaptec AHA152X PCMCIA support' CONFIG_PCMCIA_AHA152X m
- dep_tristate ' Qlogic PCMCIA support' CONFIG_PCMCIA_QLOGIC m
dep_tristate ' Future Domain PCMCIA support' CONFIG_PCMCIA_FDOMAIN m
- if [ "$CONFIG_CARDBUS" = "y" ]; then
- dep_tristate ' Adaptec APA1480 CardBus support' CONFIG_PCMCIA_APA1480 m
- fi
+ dep_tristate ' NinjaSCSI-3 / NinjaSCSI-32Bi (16bit) PCMCIA support' CONFIG_PCMCIA_NINJA_SCSI m
+ dep_tristate ' Qlogic PCMCIA support' CONFIG_PCMCIA_QLOGIC m
fi
if [ "$CONFIG_PCMCIA_QLOGIC" = "y" -o "$CONFIG_PCMCIA_AHA152X" = "y" -o \
- "$CONFIG_PCMCIA_FDOMAIN" = "y" -o "$CONFIG_PCMCIA_APA1480" = "y" ]; then
+ "$CONFIG_PCMCIA_FDOMAIN" = "y" -o "$CONFIG_PCMCIA_NINJA_SCSI" = "y" ]; then
define_bool CONFIG_PCMCIA_SCSICARD y
fi
Index: Makefile
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/scsi/pcmcia/Makefile,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- Makefile 14 Jan 2001 18:27:05 -0000 1.1.1.1
+++ Makefile 11 Apr 2002 13:06:01 -0000 1.2
@@ -12,7 +12,6 @@
vpath %c ..
CFLAGS_aha152x.o = -DPCMCIA -D__NO_VERSION__ -DAHA152X_STAT
-CFLAGS_aic7xxx.o = -DPCMCIA -D__NO_VERSION__
CFLAGS_fdomain.o = -DPCMCIA -D__NO_VERSION__
CFLAGS_qlogicfas.o = -DPCMCIA -D__NO_VERSION__
@@ -20,26 +19,20 @@
obj-$(CONFIG_PCMCIA_QLOGIC) += qlogic_cs.o
obj-$(CONFIG_PCMCIA_FDOMAIN) += fdomain_cs.o
obj-$(CONFIG_PCMCIA_AHA152X) += aha152x_cs.o
+obj-$(CONFIG_PCMCIA_NINJA_SCSI) += nsp_cs.o
-# Cardbus client drivers
-obj-$(CONFIG_PCMCIA_APA1480) += apa1480_cb.o
-
-list-multi := qlogic_cs.o fdomain_cs.o aha152x_cs.o apa1480_cb.o
-aha152x-objs := aha152x_stub.o aha152x.o
-apa1480-objs := apa1480_stub.o aic7xxx.o
-fdomain-objs := fdomain_stub.o fdomain.o
-qlogic-objs := qlogic_stub.o qlogicfas.o
+list-multi := qlogic_cs.o fdomain_cs.o aha152x_cs.o
+aha152x_cs-objs := aha152x_stub.o aha152x.o
+fdomain_cs-objs := fdomain_stub.o fdomain.o
+qlogic_cs-objs := qlogic_stub.o qlogicfas.o
include $(TOPDIR)/Rules.make
-aha152x_cs.o: $(aha152x-objs)
- $(LD) -r -o $@ $(aha152x-objs)
-
-apa1480_cb.o: $(apa1480-objs)
- $(LD) -r -o $@ $(apa1480-objs)
+aha152x_cs.o: $(aha152x_cs-objs)
+ $(LD) -r -o $@ $(aha152x_cs-objs)
-fdomain_cs.o: $(fdomain-objs)
- $(LD) -r -o $@ $(fdomain-objs)
+fdomain_cs.o: $(fdomain_cs-objs)
+ $(LD) -r -o $@ $(fdomain_cs-objs)
-qlogic_cs.o: $(qlogic-objs)
- $(LD) -r -o $@ $(qlogic-objs)
+qlogic_cs.o: $(qlogic_cs-objs)
+ $(LD) -r -o $@ $(qlogic_cs-objs)
Index: aha152x_stub.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/scsi/pcmcia/aha152x_stub.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- aha152x_stub.c 25 Feb 2001 23:15:08 -0000 1.1.1.2
+++ aha152x_stub.c 11 Apr 2002 13:06:01 -0000 1.2
@@ -22,7 +22,7 @@
are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
Alternatively, the contents of this file may be used under the
- terms of the GNU Public License version 2 (the "GPL"), in which
+ terms of the GNU General Public License version 2 (the "GPL"), in which
case the provisions of the GPL are applicable instead of the
above. If you wish to allow the use of your version of this file
only under the terms of the GPL and not to allow others to use
@@ -91,6 +91,8 @@
MODULE_PARM(synchronous, "i");
MODULE_PARM(reset_delay, "i");
MODULE_PARM(ext_trans, "i");
+
+MODULE_LICENSE("Dual MPL/GPL");
/*====================================================================*/
Index: fdomain_stub.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/scsi/pcmcia/fdomain_stub.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- fdomain_stub.c 25 Feb 2001 23:15:08 -0000 1.1.1.2
+++ fdomain_stub.c 11 Apr 2002 13:06:02 -0000 1.2
@@ -19,7 +19,7 @@
are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
Alternatively, the contents of this file may be used under the
- terms of the GNU Public License version 2 (the "GPL"), in which
+ terms of the GNU General Public License version 2 (the "GPL"), in which
case the provisions of the GPL are applicable instead of the
above. If you wish to allow the use of your version of this file
only under the terms of the GPL and not to allow others to use
Index: qlogic_stub.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/scsi/pcmcia/qlogic_stub.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- qlogic_stub.c 25 Feb 2001 23:15:08 -0000 1.1.1.2
+++ qlogic_stub.c 11 Apr 2002 13:06:03 -0000 1.2
@@ -19,7 +19,7 @@
are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
Alternatively, the contents of this file may be used under the
- terms of the GNU Public License version 2 (the "GPL"), in which
+ terms of the GNU General Public License version 2 (the "GPL"), in which
case the provisions of the GPL are applicable instead of the
above. If you wish to allow the use of your version of this file
only under the terms of the GPL and not to allow others to use
--- apa1480_stub.c DELETED ---
|
|
From: Andy P. <at...@us...> - 2002-04-11 14:31:07
|
Update of /cvsroot/linux-vax/kernel-2.4/net In directory usw-pr-cvs1:/tmp/cvs-serv26834/net Removed Files: Changes Log Message: synch 2.4.15 commit 56 --- Changes DELETED --- |
|
From: Andy P. <at...@us...> - 2002-04-11 14:30:54
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/sound/cs4281
In directory usw-pr-cvs1:/tmp/cvs-serv12946/sound/cs4281
Modified Files:
cs4281_wrapper-24.c cs4281m.c
Log Message:
synch 2.4.15 commit 54
Index: cs4281_wrapper-24.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/sound/cs4281/cs4281_wrapper-24.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- cs4281_wrapper-24.c 25 Feb 2001 23:15:09 -0000 1.1.1.1
+++ cs4281_wrapper-24.c 11 Apr 2002 13:26:50 -0000 1.2
@@ -40,12 +40,3 @@
(state)->tmpbuff, (state)->dmaaddr_tmpbuff);
#define cs4x_pgoff(vma) ((vma)->vm_pgoff)
-#define RSRCISIOREGION(dev,num) ((dev)->resource[(num)].start != 0 && \
- ((dev)->resource[(num)].flags & PCI_BASE_ADDRESS_SPACE) == PCI_BASE_ADDRESS_SPACE_IO)
-#define RSRCISMEMORYREGION(dev,num) ((dev)->resource[(num)].start != 0 && \
- ((dev)->resource[(num)].flags & PCI_BASE_ADDRESS_SPACE) == PCI_BASE_ADDRESS_SPACE_MEMORY)
-#define RSRCADDRESS(dev,num) ((dev)->resource[(num)].start)
-#define PCI_GET_DRIVER_DATA pci_get_drvdata
-#define PCI_SET_DRIVER_DATA pci_set_drvdata
-#define PCI_SET_DMA_MASK(pcidev,mask) pcidev->dma_mask = mask
-
Index: cs4281m.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/sound/cs4281/cs4281m.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- cs4281m.c 25 Feb 2001 23:15:09 -0000 1.1.1.1
+++ cs4281m.c 11 Apr 2002 13:26:50 -0000 1.2
@@ -65,7 +65,7 @@
#include <linux/sched.h>
#include <linux/delay.h>
#include <linux/sound.h>
-#include <linux/malloc.h>
+#include <linux/slab.h>
#include <linux/soundcard.h>
#include <linux/pci.h>
#include <linux/bitops.h>
@@ -194,9 +194,6 @@
} \
})
-#define list_for_each(pos, head) \
- for (pos = (head)->next; pos != (head); pos = pos->next)
-
//LIST_HEAD(cs4281_devs);
struct list_head cs4281_devs = { &cs4281_devs, &cs4281_devs };
@@ -661,7 +658,7 @@
card->pBA0 + BA0_ACCTL);
// Wait for the write to occur.
- for (count = 0; count < 10; count++) {
+ for (count = 0; count < 100; count++) {
// First, we want to wait for a short time.
udelay(25);
// Now, check to see if the write has completed.
@@ -949,7 +946,7 @@
}
#ifndef NOT_CS4281_PM
-void printpm(struct cs4281_state *s)
+static void printpm(struct cs4281_state *s)
{
CS_DBGOUT(CS_PM, 9, printk("pm struct:\n"));
CS_DBGOUT(CS_PM, 9, printk("flags:0x%x u32CLKCR1_SAVE: 0%x u32SSPMValue: 0x%x\n",
@@ -970,7 +967,7 @@
s->pm.u32MIDCR_Save));
}
-void printpipe(struct cs4281_pipeline *pl)
+static void printpipe(struct cs4281_pipeline *pl)
{
CS_DBGOUT(CS_PM, 9, printk("pm struct:\n"));
@@ -1003,7 +1000,7 @@
CS_DBGOUT(CS_PM, 9, printk("u32FPDRnValue: 0x%x u32FPDRnAddress: 0x%x\n",
pl->u32FPDRnValue,pl->u32FPDRnAddress));
}
-void printpipelines(struct cs4281_state *s)
+static void printpipelines(struct cs4281_state *s)
{
int i;
for(i=0;i<CS4281_NUMBER_OF_PIPELINES;i++)
@@ -2570,14 +2567,6 @@
// ---------------------------------------------------------------------
-static loff_t cs4281_llseek(struct file *file, loff_t offset, int origin)
-{
- return -ESPIPE;
-}
-
-
-// ---------------------------------------------------------------------
-
static int cs4281_open_mixdev(struct inode *inode, struct file *file)
{
int minor = MINOR(inode->i_rdev);
@@ -2633,7 +2622,7 @@
// Mixer file operations struct.
// ******************************************************************************************
static /*const */ struct file_operations cs4281_mixer_fops = {
- llseek:cs4281_llseek,
+ llseek:no_llseek,
ioctl:cs4281_ioctl_mixdev,
open:cs4281_open_mixdev,
release:cs4281_release_mixdev,
@@ -3750,7 +3739,7 @@
// Wave (audio) file operations struct.
// ******************************************************************************************
static /*const */ struct file_operations cs4281_audio_fops = {
- llseek:cs4281_llseek,
+ llseek:no_llseek,
read:cs4281_read,
write:cs4281_write,
poll:cs4281_poll,
@@ -4099,7 +4088,7 @@
// Midi file operations struct.
// ******************************************************************************************
static /*const */ struct file_operations cs4281_midi_fops = {
- llseek:cs4281_llseek,
+ llseek:no_llseek,
read:cs4281_midi_read,
write:cs4281_midi_write,
poll:cs4281_midi_poll,
@@ -4289,23 +4278,29 @@
CS_DBGOUT(CS_FUNCTION | CS_INIT, 2,
printk(KERN_INFO "cs4281: probe()+\n"));
- if (!RSRCISMEMORYREGION(pcidev, 0) ||
- !RSRCISMEMORYREGION(pcidev, 1)) {
+ if (pci_enable_device(pcidev)) {
+ CS_DBGOUT(CS_INIT | CS_ERROR, 1, printk(KERN_ERR
+ "cs4281: pci_enable_device() failed\n"));
+ return -1;
+ }
+ if (!(pci_resource_flags(pcidev, 0) & IORESOURCE_MEM) ||
+ !(pci_resource_flags(pcidev, 1) & IORESOURCE_MEM)) {
CS_DBGOUT(CS_ERROR, 1, printk(KERN_ERR
"cs4281: probe()- Memory region not assigned\n"));
- return -1;
+ return -ENODEV;
}
if (pcidev->irq == 0) {
CS_DBGOUT(CS_ERROR, 1, printk(KERN_ERR
"cs4281: probe() IRQ not assigned\n"));
- return -1;
+ return -ENODEV;
}
- if (!pci_dma_supported(pcidev, 0xffffffff)) {
+ dma_mask = 0xffffffff; /* this enables playback and recording */
+ i = pci_set_dma_mask(pcidev, dma_mask);
+ if (i) {
CS_DBGOUT(CS_ERROR, 1, printk(KERN_ERR
"cs4281: probe() architecture does not support 32bit PCI busmaster DMA\n"));
- return -1;
+ return i;
}
- dma_mask = 0xffffffff; /* this enables playback and recording */
if (!(s = kmalloc(sizeof(struct cs4281_state), GFP_KERNEL))) {
CS_DBGOUT(CS_ERROR, 1, printk(KERN_ERR
"cs4281: probe() no memory for state struct.\n"));
@@ -4323,8 +4318,8 @@
init_MUTEX(&s->open_sem_adc);
init_MUTEX(&s->open_sem_dac);
spin_lock_init(&s->lock);
- s->pBA0phys = RSRCADDRESS(pcidev, 0);
- s->pBA1phys = RSRCADDRESS(pcidev, 1);
+ s->pBA0phys = pci_resource_start(pcidev, 0);
+ s->pBA1phys = pci_resource_start(pcidev, 1);
/* Convert phys to linear. */
s->pBA0 = ioremap_nocache(s->pBA0phys, 4096);
@@ -4366,11 +4361,6 @@
s->magic = CS4281_MAGIC;
s->pcidev = pcidev;
s->irq = pcidev->irq;
- if (pci_enable_device(pcidev)) {
- CS_DBGOUT(CS_INIT | CS_ERROR, 1, printk(KERN_ERR
- "cs4281: pci_enable_device() failed\n"));
- goto err_irq;
- }
if (request_irq
(s->irq, cs4281_interrupt, SA_SHIRQ, "Crystal CS4281", s)) {
CS_DBGOUT(CS_INIT | CS_ERROR, 1,
@@ -4427,8 +4417,7 @@
mixer_ioctl(s, SOUND_MIXER_PRIVATE1, (unsigned long) &val);
set_fs(fs);
- PCI_SET_DRIVER_DATA(pcidev, s);
- PCI_SET_DMA_MASK(pcidev, dma_mask);
+ pci_set_drvdata(pcidev, s);
list_add(&s->list, &cs4281_devs);
CS_DBGOUT(CS_INIT | CS_FUNCTION, 2, printk(KERN_INFO
"cs4281: probe()- device allocated successfully\n"));
@@ -4457,7 +4446,7 @@
static void __devinit cs4281_remove(struct pci_dev *pci_dev)
{
- struct cs4281_state *s = PCI_GET_DRIVER_DATA(pci_dev);
+ struct cs4281_state *s = pci_get_drvdata(pci_dev);
// stop DMA controller
synchronize_irq();
free_irq(s->irq, s);
@@ -4466,9 +4455,9 @@
unregister_sound_midi(s->dev_midi);
iounmap(s->pBA1);
iounmap(s->pBA0);
- kfree(s);
- PCI_SET_DRIVER_DATA(pci_dev,NULL);
+ pci_set_drvdata(pci_dev,NULL);
list_del(&s->list);
+ kfree(s);
CS_DBGOUT(CS_INIT | CS_FUNCTION, 2, printk(KERN_INFO
"cs4281: cs4281_remove()-: remove successful\n"));
}
@@ -4523,6 +4512,7 @@
MODULE_AUTHOR("gw boynton, au...@cr...");
MODULE_DESCRIPTION("Cirrus Logic CS4281 Driver");
+MODULE_LICENSE("GPL");
// ---------------------------------------------------------------------
|
|
From: Andy P. <at...@us...> - 2002-04-11 14:27:51
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/nubus
In directory usw-pr-cvs1:/tmp/cvs-serv26834/drivers/nubus
Modified Files:
nubus.c nubus_syms.c
Log Message:
synch 2.4.15 commit 56
Index: nubus.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/nubus/nubus.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- nubus.c 14 Jan 2001 18:58:37 -0000 1.1.1.1
+++ nubus.c 11 Apr 2002 14:27:12 -0000 1.2
@@ -574,7 +574,7 @@
/* Now clobber the whole thing */
if (size > sizeof(mode) - 1)
size = sizeof(mode) - 1;
- memset(&mode, sizeof(mode), 0);
+ memset(&mode, 0, sizeof(mode));
nubus_get_rsrc_mem(&mode, &ent, size);
printk (KERN_INFO " %02X: (%02X) %s\n", ent.type,
mode.id, mode.name);
Index: nubus_syms.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/nubus/nubus_syms.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- nubus_syms.c 14 Jan 2001 18:58:37 -0000 1.1.1.1
+++ nubus_syms.c 11 Apr 2002 14:27:12 -0000 1.2
@@ -12,6 +12,8 @@
EXPORT_SYMBOL(nubus_proc_detach_device);
#endif
+MODULE_LICENSE("GPL");
+
EXPORT_SYMBOL(nubus_find_device);
EXPORT_SYMBOL(nubus_find_type);
EXPORT_SYMBOL(nubus_find_slot);
|
|
From: Andy P. <at...@us...> - 2002-04-11 14:27:44
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/fc4
In directory usw-pr-cvs1:/tmp/cvs-serv26834/drivers/fc4
Modified Files:
Makefile fc.c soc.c socal.c
Log Message:
synch 2.4.15 commit 56
Index: Makefile
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/fc4/Makefile,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- Makefile 14 Jan 2001 18:58:22 -0000 1.1.1.1
+++ Makefile 11 Apr 2002 14:27:00 -0000 1.2
@@ -14,7 +14,7 @@
obj-$(CONFIG_FC4_SOC) += soc.o
obj-$(CONFIG_FC4_SOCAL) += socal.o
+include $(TOPDIR)/Rules.make
+
fc4.o: $(fc4-objs)
$(LD) -r -o $@ $(fc4-objs)
-
-include $(TOPDIR)/Rules.make
Index: fc.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/fc4/fc.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- fc.c 25 Feb 2001 23:15:12 -0000 1.1.1.2
+++ fc.c 11 Apr 2002 14:27:00 -0000 1.2
@@ -1155,14 +1155,3 @@
kfree(p);
return status;
}
-
-#ifdef MODULE
-int init_module(void)
-{
- return 0;
-}
-
-void cleanup_module(void)
-{
-}
-#endif
Index: soc.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/fc4/soc.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- soc.c 25 Feb 2001 23:15:12 -0000 1.1.1.2
+++ soc.c 11 Apr 2002 14:27:00 -0000 1.2
@@ -565,14 +565,10 @@
(long)socs, (long)soc_intr, (long)soc_hw_enque))
if (version_printed++ == 0)
printk (version);
-#ifdef MODULE
- s->port[0].fc.module = &__this_module;
- s->port[1].fc.module = &__this_module;
-#else
- s->port[0].fc.module = NULL;
- s->port[1].fc.module = NULL;
-#endif
-
+
+ s->port[0].fc.module = THIS_MODULE;
+ s->port[1].fc.module = THIS_MODULE;
+
s->next = socs;
socs = s;
s->port[0].fc.dev = sdev;
@@ -713,11 +709,7 @@
SOD(("Enabled SOC\n"))
}
-#ifndef MODULE
-int __init soc_probe(void)
-#else
-int init_module(void)
-#endif
+static int __init soc_probe(void)
{
struct sbus_bus *sbus;
struct sbus_dev *sdev = 0;
@@ -741,10 +733,7 @@
return 0;
}
-EXPORT_NO_SYMBOLS;
-
-#ifdef MODULE
-void cleanup_module(void)
+static void __exit soc_cleanup(void)
{
struct soc *s;
int irq;
@@ -770,4 +759,9 @@
s->req_cpu, s->req_dvma);
}
}
-#endif
+
+EXPORT_NO_SYMBOLS;
+
+module_init(soc_probe);
+module_exit(soc_cleanup);
+MODULE_LICENSE("GPL");
Index: socal.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/fc4/socal.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- socal.c 25 Feb 2001 23:15:12 -0000 1.1.1.2
+++ socal.c 11 Apr 2002 14:27:00 -0000 1.2
@@ -673,14 +673,10 @@
(long)socals, (long)socal_intr, (long)socal_hw_enque))
if (version_printed++ == 0)
printk (version);
-#ifdef MODULE
- s->port[0].fc.module = &__this_module;
- s->port[1].fc.module = &__this_module;
-#else
- s->port[0].fc.module = NULL;
- s->port[1].fc.module = NULL;
-#endif
-
+
+ s->port[0].fc.module = THIS_MODULE;
+ s->port[1].fc.module = THIS_MODULE;
+
s->next = socals;
socals = s;
s->port[0].fc.dev = sdev;
@@ -850,11 +846,7 @@
SOD(("Enabled SOCAL\n"))
}
-#ifndef MODULE
-int __init socal_probe(void)
-#else
-int init_module(void)
-#endif
+static int __init socal_probe(void)
{
struct sbus_bus *sbus;
struct sbus_dev *sdev = 0;
@@ -880,10 +872,7 @@
return 0;
}
-EXPORT_NO_SYMBOLS;
-
-#ifdef MODULE
-void cleanup_module(void)
+static void __exit socal_cleanup(void)
{
struct socal *s;
int irq;
@@ -910,4 +899,9 @@
s->req_cpu, s->req_dvma);
}
}
-#endif
+
+EXPORT_NO_SYMBOLS;
+
+module_init(socal_probe);
+module_exit(socal_cleanup);
+MODULE_LICENSE("GPL");
|
|
From: Andy P. <at...@us...> - 2002-04-11 14:27:38
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers In directory usw-pr-cvs1:/tmp/cvs-serv26834/drivers Modified Files: Makefile Log Message: synch 2.4.15 commit 56 Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/Makefile,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- Makefile 22 Feb 2001 22:15:07 -0000 1.3 +++ Makefile 11 Apr 2002 14:26:57 -0000 1.4 @@ -6,10 +6,11 @@ # -mod-subdirs := dio mtd sbus video macintosh usb input telephony sgi i2o ide \ - scsi md ieee1394 pnp isdn atm fc4 net/hamradio i2c acpi +mod-subdirs := dio mtd sbus video macintosh usb input telephony sgi ide \ + message/i2o message/fusion scsi md ieee1394 pnp isdn atm \ + fc4 net/hamradio i2c acpi bluetooth -subdir-y := block char net parport sound misc media cdrom +subdir-y := parport char block net sound misc media cdrom hotplug subdir-m := $(subdir-y) @@ -30,7 +31,8 @@ subdir-$(CONFIG_SGI) += sgi subdir-$(CONFIG_IDE) += ide subdir-$(CONFIG_SCSI) += scsi -subdir-$(CONFIG_I2O) += i2o +subdir-$(CONFIG_I2O) += message/i2o +subdir-$(CONFIG_FUSION) += message/fusion subdir-$(CONFIG_MD) += md subdir-$(CONFIG_IEEE1394) += ieee1394 subdir-$(CONFIG_PNP) += pnp @@ -44,5 +46,6 @@ subdir-$(CONFIG_I2C) += i2c subdir-$(CONFIG_ACPI) += acpi -include $(TOPDIR)/Rules.make +subdir-$(CONFIG_BLUEZ) += bluetooth +include $(TOPDIR)/Rules.make |
|
From: Andy P. <at...@us...> - 2002-04-11 14:27:32
|
Update of /cvsroot/linux-vax/kernel-2.4 In directory usw-pr-cvs1:/tmp/cvs-serv26834 Modified Files: COPYING CREDITS MAINTAINERS Makefile README REPORTING-BUGS Rules.make Log Message: synch 2.4.15 commit 56 Index: COPYING =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/COPYING,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- COPYING 14 Jan 2001 16:24:25 -0000 1.1.1.1 +++ COPYING 11 Apr 2002 14:26:54 -0000 1.2 @@ -7,8 +7,8 @@ kernel) is copyrighted by me and others who actually wrote it. Also note that the only valid version of the GPL as far as the kernel - is concerned is _this_ license (ie v2), unless explicitly otherwise - stated. + is concerned is _this_ particular version of the license (ie v2, not + v2.2 or v3.x or whatever), unless explicitly otherwise stated. Linus Torvalds Index: CREDITS =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/CREDITS,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- CREDITS 25 Feb 2001 23:14:45 -0000 1.1.1.2 +++ CREDITS 11 Apr 2002 14:26:54 -0000 1.2 @@ -78,8 +78,8 @@ D: Unix98 pty support. D: APM update to 1.2 spec. D: /devfs hacking. -S: 322 N. Riverside Dr. -S: Neptune, NJ 07753 +S: 7 Kiwi Loop +S: Howell, NJ 07731 S: USA N: Erik Andersen @@ -221,6 +221,14 @@ S: 62-300 Wrzesnia S: Poland +N: Fred Barnes +E: fr...@uk... +D: Various parport/ppdev hacks and fixes +S: Computing Lab, The University +S: Canterbury, KENT +S: CT2 7NF +S: England + N: Paul Barton-Davis E: pb...@op... D: Driver for WaveFront soundcards (Turtle Beach Maui, Tropez, Tropez+) @@ -307,17 +315,14 @@ D: Original author of the Linux networking code N: Anton Blanchard -E: an...@li... -W: http://linuxcare.com.au/anton/ +E: an...@sa... +W: http://samba.org/~anton/ P: 1024/8462A731 4C 55 86 34 44 59 A7 99 2B 97 88 4A 88 9A 0D 97 D: sun4 port, Sparc hacker -S: 47 Robert Street -S: Marrickville NSW 2204 -S: Australia N: Hugh Blemings -E: hu...@li... -W: http://www.linuxcare.com.au/hugh/ +E: hu...@mi... +W: http://misc.nu/hugh/ D: Author and maintainer of the Keyspan USB to Serial drivers S: Po Box 234 S: Belconnen ACT 2616 @@ -395,13 +400,12 @@ S: USA N: Peter Braam -E: br...@cs... -W: http://coda.cs.cmu.edu/~braam -D: Coda Filesystem -S: Dept of Computer Science -S: 5000 Forbes Avenue -S: Pittsburgh, Pennsylvania 15213 -S: USA +E: br...@cl... +W: http://www.clusterfs.com/ +D: Coda & InterMezzo filesystems +S: 181 McNeil +S: Canmore, AB +S: Canada, T1W 2R9 N: Ryan Bradetich E: rbr...@us... @@ -449,6 +453,11 @@ E: xa...@ix... D: USB Serial Empeg Empeg-car Mark I/II Driver +N: Matthias Bruestle +E: m...@mb... +D: REINER SCT cyberJack pinpad/e-com USB chipcard reader driver +S: Germany + N: Ray Burr E: ry...@ni... D: Original author of Amiga FFS filesystem @@ -525,6 +534,12 @@ S: Stanford, California 94305 S: USA +N: Randolph Chung +E: ta...@de... +D: Linux/PA-RISC hacker +S: Fremont, CA 94538 +S: USA + N: Juan Jose Ciarlante W: http://juanjox.kernelnotes.org/ E: jjc...@ra... @@ -588,6 +603,13 @@ S: Guildford, GU1 3DA S: United Kingdom +N: Cristian Mihail Craciunescu +W: http://www.dnt.ro/~cristi/ +E: cr...@dn... +D: Support for Xircom PGSDB9 (firmware and host driver) +S: Bucharest +S: Romania + N: Laurence Culhane E: lo...@ho... D: Wrote the initial alpha SLIP code @@ -623,10 +645,11 @@ S: USA N: Frank Davis +E: fd...@si... E: fda...@ju... D: Various kernel patches S: 8 Lakeview Terr. -S: Kerhonskon, NY 12446 +S: Kerhonkson, NY 12446 S: USA N: Wayne Davison @@ -669,6 +692,25 @@ S: K1N 6Z9 S: CANADA +N: Jeff Dike +E: jd...@ka... +W: http://user-mode-linux.sourceforge.net +D: User mode kernel port +S: RR1 Box 67C +S: Deering NH 03244 +S: USA + +N: Matt Domsch +E: Mat...@de... +W: http://www.dell.com/linux +W: http://domsch.com/linux +D: Linux/IA-64 +D: Dell PowerEdge server, SCSI layer, misc drivers, and other patches +S: Dell Computer Corporation +S: One Dell Way +S: Round Rock, TX 78681 +S: USA + N: Eddie C. Dost E: ec...@sk... D: Linux/Sparc kernel hacker @@ -679,17 +721,13 @@ N: Cort Dougan E: co...@fs... -W: http://www.ppc.kernel.org/~cort/ +W: http://www.fsmlabs.com/linuxppcbk.html D: PowerPC -S: Finite State Machine Labs -S: P.O. 1829 -S: Socorro, New Mexico 87801 -S: USA N: Oleg Drokin E: gr...@cc... W: http://www.ccssu.crimea.ua/~green -D: Cleaning up sound drivers. +D: Cleaning up sound drivers, SA1100 Watchdog. S: Skvoznoy per., 14a S: Evpatoria S: Crimea @@ -718,14 +756,27 @@ S: USA N: Randy Dunlap -E: ran...@in... +E: rdd...@os... W: http://home.att.net/~randy.dunlap/ +W: http://home.att.net/~rddunlap/ W: http://www.linux-usb.org D: Linux-USB subsystem, USB core/UHCI/printer/storage drivers -S: 5200 NE Elam Young Pkwy., M/S HF3-77 -S: Hillsboro, Oregon 97124 +D: x86 SMP, ACPI, bootflag hacking +S: 15275 SW Koll Parkway, Suite H +S: Beaverton, Oregon 97006 S: USA +N: Bob Dunlop +E: rj...@xy... +E: bob...@fa... +W: www.farsite.co.uk +D: FarSync card device driver +S: FarSite Communications Ltd +S: Tempus Business Centre +S: 60 Kingsclere Road +S: Basingstoke RG21 6XG +S: UK + N: Cyrus Durgin E: ci...@sp... W: http://www.speakeasy.org/~cider/ @@ -773,6 +824,11 @@ S: S-114 53 Stockholm S: Sweden +N: Michael Engel +E: en...@un... +D: DECstation framebuffer drivers +S: Germany + N: Paal-Kristian Engstad E: en...@in... D: Kernel smbfs (to mount WfW, NT and OS/2 network drives.) @@ -788,7 +844,6 @@ S: USA N: Johannes Erdfelt -E: jer...@va... E: joh...@er... D: Linux/IA-64 bootloader and kernel goop, USB S: 6350 Stoneridge Mall Road @@ -905,6 +960,15 @@ S: San Jose, California 95131 S: USA +N: Fernando Fuganti +E: fu...@co... +E: fu...@ne... +D: random kernel hacker, ZF MachZ Watchdog driver +S: Conectiva S.A. +S: R. Tocantins, 89 - Cristo Rei +S: 80050-430 - Curitiba - Paraná +S: Brazil + N: Nigel Gamble E: ni...@nr... E: ni...@sg... @@ -935,6 +999,11 @@ E: ph...@ra... D: Kernel / timekeeping stuff +N: Jan-Benedict Glaw +E: jb...@lu... +D: SRM environment driver (for Alpha systems) +P: 1024D/8399E1BB 250D 3BCF 7127 0D8C A444 A961 1DBD 5E75 8399 E1BB + N: Richard E. Gooch E: rg...@at... D: parent process death signal to children @@ -946,6 +1015,12 @@ S: New South Wales, 2121 S: Australia +N: Carlos E. Gorges +E: ca...@te... +D: fix smp support on cmpci driver +P: 2048G/EA3C4B19 FF31 33A6 0362 4915 B7EB E541 17D0 0379 EA3C 4B19 +S: Brazil + N: Dmitry S. Gorodchanin E: pg...@ib... D: RISCom/8 driver, misc kernel fixes. @@ -1026,11 +1101,11 @@ S: Canada N: Richard Günther -E: ric...@st... +E: rg...@ta... +W: http://www.tat.physik.uni-tuebingen.de/~rguenth P: 2048/2E829319 2F 83 FC 93 E9 E4 19 E2 93 7A 32 42 45 37 23 57 D: binfmt_misc -S: Fichtenweg 3/511 -S: 72076 Tübingen +S: 72074 Tübingen S: Germany N: Justin Guyett @@ -1045,6 +1120,11 @@ S: 2400 AG, Alphen aan den Rijn S: The Netherlands +N: Enver Haase +E: eh...@in... +W: http://www.inf.fu-berlin.de/~ehaase +D: Driver for the Commodore A2232 serial board + N: Bruno Haible E: ha...@ma... D: SysV FS, shm swapping, memory management fixes @@ -1084,7 +1164,7 @@ N: Andre Hedrick E: an...@li... -E: ahe...@at... +E: an...@as... E: an...@su... W: http://www.linux-ide.org/ D: Random SMP kernel hacker... @@ -1095,8 +1175,8 @@ D: ATA-Smart Kernel Daemon S: Linux ATA Development (LAD) S: Concord, CA -S: Atipa Linux Solutions -S: 6000 Connecticut Kansas City, MO 64120 +S: ASL, Inc. 1-877-ASL-3535 +S: 1757 Houret Court, Milpitas, CA 95035 S: SuSE Linux, Inc. S: 580 Second Street, Suite 210 Oakland, CA 94607 S: USA @@ -1113,8 +1193,10 @@ S: Germany N: Christoph Hellwig -E: chh...@gm... -D: Sound/OSS hacking +E: hc...@ca... +E: hc...@in... +D: misc driver & makefile hacking +D: freevxfs driver S: Triftstraße 26 S: 38644 Goslar S: Germany @@ -1123,18 +1205,16 @@ E: rt...@tw... E: rt...@cy... D: Alpha hacker, kernel and userland -S: 50 E. Middlefield #10 -S: Mountain View, California 94043 +S: 1668 California St. +S: Mountain View, California 94041 S: USA N: Benjamin Herrenschmidt -E: bh...@ca... +E: be...@ke... E: be...@mi... -D: PowerMac booter (BootX) -D: Additional PowerBook support -D: Apple "Core99" machines support (ibook,g4,...) -S: 22, rue des Marguettes -S: 75012 Paris +D: Various parts of PPC & PowerMac +S: 122, boulevard Baille +S: 13005 Marseille S: France N: Sebastian Hetze @@ -1227,13 +1307,12 @@ S: USA N: Harald Hoyer -E: Ha...@Ro... -W: http://hot.spotline.de/ -W: http://home.pages.de/~saturn +E: har...@pa... +W: http://parzelle.de/ D: ip_masq_quake D: md boot support -S: Alleenstrasse 27 -S: D-71679 Asperg +S: Hohe Strasse 30 +S: D-70176 Stuttgart S: Germany N: Jan Hubicka @@ -1259,12 +1338,11 @@ S: USA N: Gareth Hughes -E: ga...@va... -E: ga...@pr... +E: gar...@ac... D: Pentium III FXSR, SSE support -S: 11/187 West Street -S: Crows Nest NSW 2065 -S: Australia +D: Author/maintainer of most DRM drivers (especially ATI, MGA) +D: Core DRM templates, general DRM and 3D-related hacking +S: No fixed address N: Kenn Humborg E: ke...@wo... @@ -1347,17 +1425,17 @@ N: Dave Jones E: da...@su... -E: da...@po... -E: dj...@gl... -W: http://powertweak.sourceforge.net +W: http://www.suse.de/~davej D: Moved PCI bridge tuning to userspace (Powertweak). -D: Centaur/IDT Winchip/Winchip 2 tweaks. +D: Various x86 (& clones) setup code hacking. D: AFFS fixes for 2.3.x -D: Misc clean ups and other random hacking. -S: 28, Laura Street, -S: Treforest, Pontypridd, -S: Mid Glamorgan, CF37 1NW, -S: Wales, United Kingdom +D: Various Janitorial hacks. (kernel-janitor.sourceforge.net) +S: c/o SuSE Linux UK Ltd +S: The Kinetic Centre +S: Theobald Street +S: Borehamwood +S: Herts, WD6 4PJ +S: United Kingdom N: Ani Joshi E: aj...@sh... @@ -1488,8 +1566,9 @@ D: 6pack driver for AX.25 N: Harald Koerfgen -E: ha...@un... -D: DECstation port +E: hk...@we... +D: Linux/MIPS kernel hacks and fixes, +D: DECstation port, Sharp Mobilon port S: D-50931 Koeln S: Germany @@ -1512,6 +1591,17 @@ S: L3R 8B2 S: Canada +N: Maxim Krasnyansky +E: ma...@qu... +W: http://vtun.sf.net +W: http://bluez.sf.net +D: Author of the Universal TUN/TAP driver +D: Author of the Linux Bluetooth Subsystem (BlueZ) +D: Various other kernel patches, cleanups and fixes +S: 2213 La Terrace Circle +S: San Jose, CA 95123 +S: USA + N: Andreas S. Krebs E: ak...@al... D: CYPRESS CY82C693 chipset IDE, Digital's PC-Alpha 164SX boards @@ -1521,8 +1611,10 @@ W: http://www.kroah.com/linux-usb/ D: USB Serial Converter driver framework, USB Handspring Visor driver D: ConnectTech WHITEHeat USB driver, Generic USB Serial driver -D: USB Bluetooth driver +D: USB I/O Edgeport driver, USB Serial IrDA driver +D: USB Bluetooth driver, USB Skeleton driver D: bits and pieces of USB core code. +D: PCI Hotplug core, PCI Hotplug Compaq driver modifications N: Russell Kroll E: rk...@ex... @@ -1667,6 +1759,7 @@ N: Jamie Lokier E: ja...@im... D: Reboot-through-BIOS for broken 486 motherboards +D: Some parport fixes S: 11 Goodson Walk S: Marston S: Oxford @@ -1734,12 +1827,10 @@ S: Czech Republic N: Paul Mackerras -E: pa...@li... +E: pa...@sa... +D: PPP driver +D: Linux for PowerPC D: Linux port for PCI Power Macintosh -S: Linuxcare, Inc. -S: 24 Marcus Clarke Street -S: Canberra ACT 2601 -S: Australia N: Pat Mackinlay E: pa...@it... @@ -1779,9 +1870,8 @@ S: Bulgaria N: Martin Mares -E: mj...@su... E: mj...@uc... -W: http://atrey.karlin.mff.cuni.cz/~mj/ +W: http://www.ucw.cz/~mj/ D: BIOS video mode handling code D: MOXA C-218 serial board driver D: Network autoconfiguration @@ -1877,10 +1967,13 @@ N: Arnaldo Carvalho de Melo E: ac...@co... -W: http://www.conectiva.com.br/~acme +E: ac...@gn... +W: http://bazar.conectiva.com.br/~acme +W: http://advogato.org/person/acme +P: 1024D/9224DF01 D5DF E3BB E3C8 BCBB F8AD 841A B6AB 4681 9224 DF01 D: wanrouter hacking -D: USB hacking -D: miscellaneous Makefile & Config.in fixes +D: misc Makefile, Config.in, drivers and network stacks fixes +D: IPX Maintainer D: Cyclom 2X synchronous card driver D: i18n for minicom, net-tools, util-linux, fetchmail, etc S: Conectiva S.A. @@ -1888,6 +1981,11 @@ S: 80050-430 - Curitiba - Paraná S: Brazil +N: Karsten Merker +E: me...@li... +D: DECstation framebuffer drivers +S: Germany + N: Michael Meskes E: me...@de... P: 1024/04B6E8F5 6C 77 33 CA CC D6 22 03 AB AB 15 A3 AE AD 39 7D @@ -1964,6 +2062,14 @@ S: Richardson, Texas 75081 S: USA +N: Patrick Mochel +E: pa...@os... +E: mo...@in... +D: PCI Power Management, ACPI work +S: 15275 SW Koll Parkway, Suite H +S: Beaverton, OR 97006 +S: USA + N: Eberhard Moenkeberg E: em...@gw... D: CDROM driver "sbpcd" (Matsushita/Panasonic/Soundblaster) @@ -2191,15 +2297,15 @@ S: USA N: Kai Petzke -E: wp...@ma... -W: http://physik.tu-berlin.de/~wpp -P: 1024/B42868C1 D9 59 B9 98 BB 93 05 38 2E 3E 31 79 C3 65 5D E1 +E: pe...@te... +W: http://www.teltarif.de/ +P: 1024/B42868C1 D9 59 B9 98 BB 93 05 38 2E 3E 31 79 C3 65 5D E1 D: Driver for Laser Magnetic Storage CD-ROM D: Some kernel bug fixes D: Port of the database Postgres -D: "Unix fuer Jedermann" a German introduction to linux (see my web page) -S: M"ullerstr. 69 -S: 13349 Berlin +D: Book: "Linux verstehen und anwenden" (Hanser-Verlag) +S: Triftstra=DFe 55 +S: 13353 Berlin S: Germany N: Emanuel Pirker @@ -2217,6 +2323,15 @@ E: ke...@ha... D: CDROM driver "sonycd535" (Sony CDU-535/531) +N: Stelian Pop +E: ste...@fr... +P: 1024D/EDBB6147 7B36 0E07 04BC 11DC A7A0 D3F7 7185 9E7A EDBB 6147 +D: sonypi, meye drivers, mct_u232 usb serial hacks +S: Alcôve +S: 153, bd. Anatole France +S: 93200 Saint Denis +S: France + N: Frederic Potter E: fp...@ci... D: Some PCI kernel support @@ -2313,14 +2428,15 @@ S: France N: Rik van Riel -E: ri...@nl... -W: http://www.nl.linux.org/~riel/ +E: ri...@co... +W: http://www.surriel.com/ D: Linux-MM site, Documentation/sysctl/*, swap/mm readaround D: clustering contributor, kswapd fixes, random kernel hacker, -D: nl.linux.org maintainer, minor scheduler additions -S: IJsselstraat 23a -S: 9725 GA Groningen -S: The Netherlands +D: nl.linux.org administrator, minor scheduler additions +S: Conectiva S.A. +S: R. Tocantins, 89 - Cristo Rei +S: 80050-430 - Curitiba - Paraná +S: Brazil N: Pekka Riikonen E: pri...@po... @@ -2368,8 +2484,8 @@ S: Brazil N: Stephen Rothwell -E: sf...@li... -W: http://linuxcare.com.au/sfr +E: sf...@ca... +W: http://www.canb.auug.org.au/~sfr P: 1024/BD8C7805 CD A4 9D 01 10 6E 7E 3B 91 88 FA D9 C8 40 AA 02 D: Boot/setup/build work for setup > 2K D: Author, APM driver @@ -2412,14 +2528,23 @@ S: Germany N: Paul `Rusty' Russell -E: ru...@li... +E: ru...@ru... W: http://www.samba.org/netfilter D: Ruggedly handsome. D: netfilter, ipchains with Michael Neuling. -S: 301/222 City Walk -S: Canberra ACT 2601 +S: 52 Moore St +S: Turner ACT 2612 S: Australia +N: Richard Russon (FlatCap) +E: ke...@fl... +W: http://www.flatcap.org +D: NTFS support +D: LDM support (Win2000/XP Logical Disk Manager/Dynamic Disks) +S: 50 Swansea Road +S: Reading +S: United Kingdom + N: Bill Ryder E: br...@sg... D: FTDI_SIO usb/serial converter driver @@ -2438,11 +2563,11 @@ S: Finland N: Thomas Sailer -E: sa...@if... +E: t.s...@al... E: HB...@HB... (packet radio) D: hfmodem, Baycom and sound card radio modem driver -S: Weinbergstrasse 76 -S: 8408 Winterthur +S: Markusstrasse 18 +S: 8006 Zuerich S: Switzerland N: Robert Sanders @@ -2525,6 +2650,14 @@ S: San Jose, California S: USA +N: Robert Siemer +E: Rob...@gm... +P: 2048/C99A4289 2F DC 17 2E 56 62 01 C8 3D F2 AC 09 F2 E5 DD EE +D: miroSOUND PCM20 radio RDS driver, ACI rewrite +S: Klosterweg 28 / i309 +S: 76131 Karlsruhe +S: Germany + N: Jaspreet Singh E: jas...@sa... W: www.sangoma.com @@ -2678,9 +2811,7 @@ N: Marcelo W. Tosatti E: ma...@co... W: http://bazar.conectiva.com.br/~marcelo/ -D: Miscellaneous kernel hacker -D: Cyclom 2X driver, drbd hacker -D: linuxconf apache & proftpd module maintainer +D: Miscellaneous kernel hacker (mostly VM/MM work) S: Conectiva S.A. S: R. Tocantins, 89 - Cristo Rei S: 80050-430 - Curitiba - Paraná @@ -2705,7 +2836,7 @@ N: Andrew Tridgell E: tr...@sa... -W: http://linuxcare.com.au/tridge/ +W: http://samba.org/tridge/ D: dosemu, networking, samba S: 3 Ballow Crescent S: MacGregor A.C.T 2615 @@ -2820,6 +2951,7 @@ N: Petr Vandrovec E: van...@vc... D: Small contributions to ncpfs +D: Matrox framebuffer driver S: Chudenicka 8 S: 10200 Prague 10, Hostivar S: Czech Republic @@ -2866,6 +2998,14 @@ S: 1098 VA Amsterdam S: The Netherlands +N: Jeroen Vreeken +E: pe...@am... +W: http://www.chello.nl/~j.vreeken/ +D: SE401 usb webcam driver +S: Maastrichterweg 63 +S: 5554 GG Valkenswaard +S: The Netherlands + N: Peter Shaobo Wang E: pw...@mm... W: http://www.mmdcorp.com/pw/linux @@ -2875,7 +3015,7 @@ S: USA N: Tim Waugh -E: ti...@cy... +E: ti...@cy... D: Co-architect of the parallel-port sharing system S: 17 Curling Vale S: GUILDFORD @@ -3006,8 +3146,8 @@ E: jw...@ph... W: http://www.physics.adelaide.edu.au/~jwoithe D: ALS-007 sound card extensions to Sound Blaster driver -S: 4/36 Trevelyan St -S: Wayville SA 5034 +S: 20 Jordan St +S: Valley View, SA 5093 S: Australia N: Clifford Wolf Index: MAINTAINERS =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/MAINTAINERS,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- MAINTAINERS 25 Feb 2001 23:14:45 -0000 1.1.1.2 +++ MAINTAINERS 11 Apr 2002 14:26:55 -0000 1.2 @@ -81,13 +81,24 @@ L: lin...@vg... S: Maintained +53C700 AND 53C700-66 SCSI DRIVER +P: James E.J. Bottomley +M: Jam...@Ha... +L: lin...@vg... +S: Maintained + 6PACK NETWORK DRIVER FOR AX.25 P: Andreas Koensgen [...1041 lines suppressed...] +L: lin...@vg... +S: Maintained + Z85230 SYNCHRONOUS DRIVER P: Alan Cox M: al...@re... @@ -1466,6 +1756,13 @@ W: http://yaina.de/jreuter/ W: http://www.qsl.net/dl1bke/ L: lin...@vg... +S: Maintained + +ZF MACHZ WATCHDOG +P: Fernando Fuganti +M: fu...@co... +M: fu...@ne... +W: http://cvs.conectiva.com.br/drivers/ZFL-watchdog/ S: Maintained ZR36120 VIDEO FOR LINUX DRIVER Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/Makefile,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- Makefile 13 Nov 2001 23:34:21 -0000 1.13 +++ Makefile 11 Apr 2002 14:26:55 -0000 1.14 @@ -1,17 +1,18 @@ VERSION = 2 PATCHLEVEL = 4 -SUBLEVEL = 2 -EXTRAVERSION = -20011113 +SUBLEVEL = 15 +EXTRAVERSION =-greased-turkey KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) #ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/) ARCH=vax +KERNELPATH=kernel-$(shell echo $(KERNELRELEASE) | sed -e "s/-//") CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ else if [ -x /bin/bash ]; then echo /bin/bash; \ else echo sh; fi ; fi) -TOPDIR := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi) +TOPDIR := $(shell /bin/pwd) HPATH = $(TOPDIR)/include FINDHPATH = $(HPATH)/asm $(HPATH)/linux $(HPATH)/scsi $(HPATH)/net @@ -89,7 +90,8 @@ CPPFLAGS := -D__KERNEL__ -I$(HPATH) -CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing +CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \ + -fomit-frame-pointer -fno-strict-aliasing -fno-common AFLAGS := -D__ASSEMBLY__ $(CPPFLAGS) # @@ -120,11 +122,7 @@ CORE_FILES =kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o NETWORKS =net/network.o -DRIVERS =drivers/block/block.o \ - drivers/char/char.o \ - drivers/misc/misc.o \ - drivers/net/net.o \ - drivers/media/media.o + LIBS =$(TOPDIR)/lib/lib.a SUBDIRS =kernel drivers mm fs net ipc lib @@ -133,7 +131,13 @@ DRIVERS-m := DRIVERS- := +DRIVERS-$(CONFIG_ACPI) += drivers/acpi/acpi.o DRIVERS-$(CONFIG_PARPORT) += drivers/parport/driver.o +DRIVERS-y += drivers/char/char.o \ + drivers/block/block.o \ + drivers/misc/misc.o \ + drivers/net/net.o \ + drivers/media/media.o DRIVERS-$(CONFIG_AGP) += drivers/char/agp/agp.o DRIVERS-$(CONFIG_DRM) += drivers/char/drm/drm.o DRIVERS-$(CONFIG_NUBUS) += drivers/nubus/nubus.a @@ -145,7 +149,9 @@ DRIVERS-$(CONFIG_ARCNET) += drivers/net/arcnet/arcnetdrv.o DRIVERS-$(CONFIG_ATM) += drivers/atm/atm.o DRIVERS-$(CONFIG_IDE) += drivers/ide/idedriver.o +DRIVERS-$(CONFIG_FC4) += drivers/fc4/fc4.a DRIVERS-$(CONFIG_SCSI) += drivers/scsi/scsidrv.o +DRIVERS-$(CONFIG_FUSION_BOOT) += drivers/message/fusion/fusion.o DRIVERS-$(CONFIG_IEEE1394) += drivers/ieee1394/ieee1394drv.o ifneq ($(CONFIG_CD_NO_IDESCSI)$(CONFIG_BLK_DEV_IDECD)$(CONFIG_BLK_DEV_SR)$(CONFIG_PARIDE_PCD),) @@ -156,7 +162,8 @@ DRIVERS-$(CONFIG_PCI) += drivers/pci/driver.o DRIVERS-$(CONFIG_MTD) += drivers/mtd/mtdlink.o DRIVERS-$(CONFIG_PCMCIA) += drivers/pcmcia/pcmcia.o -DRIVERS-$(CONFIG_PCMCIA_NETCARD) += drivers/net/pcmcia/pcmcia_net.o +DRIVERS-$(CONFIG_NET_PCMCIA) += drivers/net/pcmcia/pcmcia_net.o +DRIVERS-$(CONFIG_NET_WIRELESS) += drivers/net/wireless/wireless_net.o DRIVERS-$(CONFIG_PCMCIA_CHRDEV) += drivers/char/pcmcia/pcmcia_char.o DRIVERS-$(CONFIG_DIO) += drivers/dio/dio.a DRIVERS-$(CONFIG_SBUS) += drivers/sbus/sbus_all.o @@ -172,15 +179,16 @@ DRIVERS-$(CONFIG_TC) += drivers/tc/tc.a DRIVERS-$(CONFIG_USB) += drivers/usb/usbdrv.o DRIVERS-$(CONFIG_INPUT) += drivers/input/inputdrv.o -DRIVERS-$(CONFIG_I2O) += drivers/i2o/i2o.o +DRIVERS-$(CONFIG_I2O) += drivers/message/i2o/i2o.o DRIVERS-$(CONFIG_IRDA) += drivers/net/irda/irda.o DRIVERS-$(CONFIG_I2C) += drivers/i2c/i2c.o DRIVERS-$(CONFIG_PHONE) += drivers/telephony/telephony.o -DRIVERS-$(CONFIG_ACPI) += drivers/acpi/acpi.o DRIVERS-$(CONFIG_MD) += drivers/md/mddev.o +DRIVERS-$(CONFIG_BLUEZ) += drivers/bluetooth/bluetooth.o +DRIVERS-$(CONFIG_HOTPLUG_PCI) += drivers/hotplug/vmlinux-obj.o DRIVERS-$(CONFIG_VSBUS) += drivers/vsbus/vsbus.a -DRIVERS += $(DRIVERS-y) +DRIVERS := $(DRIVERS-y) # files removed with 'make clean' @@ -195,6 +203,11 @@ drivers/zorro/devlist.h drivers/zorro/gen-devlist \ drivers/sound/bin2hex drivers/sound/hex2hex \ drivers/atm/fore200e_mkfirm drivers/atm/{pca,sba}*{.bin,.bin1,.bin2} \ + drivers/scsi/aic7xxx/aicasm/aicasm_gram.c \ + drivers/scsi/aic7xxx/aicasm/aicasm_scan.c \ + drivers/scsi/aic7xxx/aicasm/y.tab.h \ + drivers/scsi/aic7xxx/aicasm/aicasm \ + drivers/scsi/53c700-mem.c \ net/khttpd/make_times_h \ net/khttpd/times.h \ submenu* @@ -221,7 +234,9 @@ .menuconfig.log \ include/asm \ .hdepend scripts/mkdep scripts/split-include scripts/docproc \ - $(TOPDIR)/include/linux/modversions.h + $(TOPDIR)/include/linux/modversions.h \ + kernel.spec + # directories removed with 'make mrproper' MRPROPER_DIRS = \ include/config \ @@ -245,7 +260,7 @@ boot: vmlinux @$(MAKE) CFLAGS="$(CFLAGS) $(CFLAGS_KERNEL)" -C arch/$(ARCH)/boot -vmlinux: $(CONFIGURATION) init/main.o init/version.o linuxsubdirs +vmlinux: include/linux/version.h $(CONFIGURATION) init/main.o init/version.o linuxsubdirs $(LD) $(LINKFLAGS) $(HEAD) init/main.o init/version.o \ --start-group \ $(CORE_FILES) \ @@ -290,11 +305,8 @@ $(TOPDIR)/include/linux/compile.h: include/linux/compile.h newversion: - @if [ ! -f .version ]; then \ - echo 1 > .version; \ - else \ - expr 0`cat .version` + 1 > .version; \ - fi + . scripts/mkversion > .tmpversion + @mv -f .tmpversion .version include/linux/compile.h: $(CONFIGURATION) include/linux/version.h newversion @echo -n \#define UTS_VERSION \"\#`cat .version` > .ver @@ -336,14 +348,14 @@ TAGS: dummy etags `find include/asm-$(ARCH) -name '*.h'` find include -type d \( -name "asm-*" -o -name config \) -prune -o -name '*.h' -print | xargs etags -a - find $(SUBDIRS) init -name '*.c' | xargs etags -a + find $(SUBDIRS) init -name '*.[ch]' | xargs etags -a # Exuberant ctags works better with -I tags: dummy CTAGSF=`ctags --version | grep -i exuberant >/dev/null && echo "-I __initdata,__exitdata,EXPORT_SYMBOL,EXPORT_SYMBOL_NOVERS"`; \ ctags $$CTAGSF `find include/asm-$(ARCH) -name '*.h'` && \ find include -type d \( -name "asm-*" -o -name config \) -prune -o -name '*.h' -print | xargs ctags $$CTAGSF -a && \ - find $(SUBDIRS) init -name '*.c' | xargs ctags $$CTAGSF -a + find $(SUBDIRS) init -name '*.[ch]' | xargs ctags $$CTAGSF -a ifdef CONFIG_MODULES ifdef CONFIG_MODVERSIONS @@ -420,9 +432,10 @@ $(MAKE) -C Documentation/DocBook mrproper distclean: mrproper - rm -f core `find . \( -name '*.orig' -o -name '*.rej' -o -name '*~' \ + rm -f core `find . \( -not -type d \) -and \ + \( -name '*.orig' -o -name '*.rej' -o -name '*~' \ -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \ - -o -name '.*.rej' -o -name '.SUMS' -o -size 0 \) -print` TAGS tags + -o -name '.*.rej' -o -name '.SUMS' -o -size 0 \) -type f -print` TAGS tags backup: mrproper cd .. && tar cf - linux/ | gzip -9 > backup.gz @@ -447,8 +460,8 @@ find . -type f -print | sort | xargs sum > .SUMS dep-files: scripts/mkdep archdep include/linux/version.h - scripts/mkdep init/*.c > .depend - scripts/mkdep `find $(FINDHPATH) -name SCCS -prune -o -follow -name \*.h ! -name modversions.h -print` > .hdepend + scripts/mkdep -- init/*.c > .depend + scripts/mkdep -- `find $(FINDHPATH) -name SCCS -prune -o -follow -name \*.h ! -name modversions.h -print` > .hdepend $(MAKE) $(patsubst %,_sfdep_%,$(SUBDIRS)) _FASTDEP_ALL_SUB_DIRS="$(SUBDIRS)" ifdef CONFIG_MODVERSIONS $(MAKE) update-modverfile @@ -503,3 +516,30 @@ scripts/split-include: scripts/split-include.c $(HOSTCC) $(HOSTCFLAGS) -o scripts/split-include scripts/split-include.c + +# +# RPM target +# +# If you do a make spec before packing the tarball you can rpm -ta it +# +spec: + . scripts/mkspec >kernel.spec + +# +# Build a tar ball, generate an rpm from it and pack the result +# There arw two bits of magic here +# 1) The use of /. to avoid tar packing just the symlink +# 2) Removing the .dep files as they have source paths in them that +# will become invalid +# +rpm: clean spec + find . \( -size 0 -o -name .depend -o -name .hdepend \) -type f -print | xargs rm -f + set -e; \ + cd $(TOPDIR)/.. ; \ + ln -sf $(TOPDIR) $(KERNELPATH) ; \ + tar -cvz --exclude CVS -f $(KERNELPATH).tar.gz $(KERNELPATH)/. ; \ + rm $(KERNELPATH) ; \ + cd $(TOPDIR) ; \ + . scripts/mkversion > .version ; \ + rpm -ta $(TOPDIR)/../$(KERNELPATH).tar.gz ; \ + rm $(TOPDIR)/../$(KERNELPATH).tar.gz Index: README =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/README,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- README 14 Jan 2001 16:24:27 -0000 1.1.1.1 +++ README 11 Apr 2002 14:26:55 -0000 1.2 @@ -40,6 +40,12 @@ contains information about the problems, which may result by upgrading your kernel. + - The Documentation/DocBook/ subdirectory contains several guides for + kernel developers and users. These guides can be rendered in a + number of formats: PostScript (.ps), PDF, and HTML, among others. + After installation, "make psdocs", "make pdfdocs", or "make htmldocs" + will render the documentation in the requested format. + INSTALLING the kernel: - If you install the full sources, put the kernel tarball in a @@ -186,11 +192,7 @@ to the place where your regular bootable kernel is found. For some, this is on a floppy disk, in which case you can copy the - kernel bzImage file to /dev/fd0 to make a bootable floppy. Please note - that you can not boot a kernel by directly dumping it to a 720k - double-density 3.5" floppy. In this case, it is highly recommended - that you install LILO on your double-density boot floppy or switch to - high-density floppies. + kernel bzImage file to /dev/fd0 to make a bootable floppy. If you boot Linux from the hard drive, chances are you use LILO which uses the kernel image as specified in the file /etc/lilo.conf. The Index: REPORTING-BUGS =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/REPORTING-BUGS,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- REPORTING-BUGS 14 Jan 2001 16:24:32 -0000 1.1.1.1 +++ REPORTING-BUGS 11 Apr 2002 14:26:55 -0000 1.2 @@ -25,10 +25,9 @@ overlook things, and easier for the developers to find the pieces of information they're really interested in. Don't feel you have to follow it. - First run the ver_linux script included as scripts/ver_linux or -at <URL:ftp://ftp.sai.msu.su/pub/Linux/ver_linux> It checks out -the version of some important subsystems. Run it with the command -"sh scripts/ver_linux" + First run the ver_linux script included as scripts/ver_linux, which +reports the version of some important subsystems. Run this script with +the command "sh scripts/ver_linux". Use that information to fill in all fields of the bug report form, and post it to the mailing list with a subject of "PROBLEM: <one line Index: Rules.make =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/Rules.make,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- Rules.make 4 Mar 2001 23:42:52 -0000 1.3 +++ Rules.make 11 Apr 2002 14:26:55 -0000 1.4 @@ -124,7 +124,7 @@ # This make dependencies quickly # fastdep: dummy - $(TOPDIR)/scripts/mkdep $(wildcard *.[chS] local.h.master) > .depend + $(TOPDIR)/scripts/mkdep $(CFLAGS) $(EXTRA_CFLAGS) -- $(wildcard *.[chS]) > .depend ifdef ALL_SUB_DIRS $(MAKE) $(patsubst %,_sfdep_%,$(ALL_SUB_DIRS)) _FASTDEP_ALL_SUB_DIRS="$(ALL_SUB_DIRS)" endif @@ -151,7 +151,7 @@ # ALL_MOBJS = $(filter-out $(obj-y), $(obj-m)) ifneq "$(strip $(ALL_MOBJS))" "" -PDWN=$(shell $(CONFIG_SHELL) $(TOPDIR)/scripts/pathdown.sh) +MOD_DESTDIR := $(shell $(CONFIG_SHELL) $(TOPDIR)/scripts/pathdown.sh) endif unexport MOD_DIRS @@ -173,8 +173,8 @@ .PHONY: _modinst__ _modinst__: dummy ifneq "$(strip $(ALL_MOBJS))" "" - mkdir -p $(MODLIB)/kernel/$(PDWN) - cp $(ALL_MOBJS) $(MODLIB)/kernel/$(PDWN) + mkdir -p $(MODLIB)/kernel/$(MOD_DESTDIR) + cp $(ALL_MOBJS) $(MODLIB)/kernel/$(MOD_DESTDIR)$(MOD_TARGET) endif .PHONY: modules_install @@ -223,9 +223,9 @@ $(MODINCL)/%.ver: %.c @if [ ! -r $(MODINCL)/$*.stamp -o $(MODINCL)/$*.stamp -ot $< ]; then \ - echo '$(CC) $(CFLAGS) -E -D__GENKSYMS__ $<'; \ + echo '$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -E -D__GENKSYMS__ $<'; \ echo '| $(GENKSYMS) $(genksyms_smp_prefix) -k $(VERSION).$(PATCHLEVEL).$(SUBLEVEL) > $@.tmp'; \ - $(CC) $(CFLAGS) -E -D__GENKSYMS__ $< \ + $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -E -D__GENKSYMS__ $< \ | $(GENKSYMS) $(genksyms_smp_prefix) -k $(VERSION).$(PATCHLEVEL).$(SUBLEVEL) > $@.tmp; \ if [ -r $@ ] && cmp -s $@ $@.tmp; then echo $@ is unchanged; rm -f $@.tmp; \ else echo mv $@.tmp $@; mv -f $@.tmp $@; fi; \ |
|
From: Andy P. <at...@us...> - 2002-04-11 14:27:05
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/acpi/include/platform
In directory usw-pr-cvs1:/tmp/cvs-serv26834/drivers/acpi/include/platform
Added Files:
acenv.h acgcc.h aclinux.h
Log Message:
synch 2.4.15 commit 56
--- NEW FILE ---
/******************************************************************************
*
* Name: acenv.h - Generation environment specific items
* $Revision: 1.1 $
*
*****************************************************************************/
/*
* Copyright (C) 2000, 2001 R. Byron Moore
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __ACENV_H__
#define __ACENV_H__
/*
* Configuration for ACPI tools and utilities
*/
#ifdef _ACPI_DUMP_APP
#define ACPI_DEBUG
#define ACPI_APPLICATION
#define ENABLE_DEBUGGER
#define ACPI_USE_SYSTEM_CLIBRARY
#define PARSER_ONLY
#endif
#ifdef _ACPI_EXEC_APP
#undef DEBUGGER_THREADING
#define DEBUGGER_THREADING DEBUGGER_SINGLE_THREADED
#define ACPI_DEBUG
#define ACPI_APPLICATION
#define ENABLE_DEBUGGER
#define ACPI_USE_SYSTEM_CLIBRARY
#endif
#ifdef _ACPI_ASL_COMPILER
#define ACPI_DEBUG
#define ACPI_APPLICATION
#define ENABLE_DEBUGGER
#define ACPI_USE_SYSTEM_CLIBRARY
#endif
/*
* Memory allocation tracking. Used only if
* 1) This is the debug version
* 2) This is NOT a 16-bit version of the code (not enough real-mode memory)
*/
#ifdef ACPI_DEBUG
#ifndef _IA16
#define ACPI_DBG_TRACK_ALLOCATIONS
#endif
#endif
/*
* Environment configuration. The purpose of this file is to interface to the
* local generation environment.
*
* 1) ACPI_USE_SYSTEM_CLIBRARY - Define this if linking to an actual C library.
* Otherwise, local versions of string/memory functions will be used.
* 2) ACPI_USE_STANDARD_HEADERS - Define this if linking to a C library and
* the standard header files may be used.
*
* The ACPI subsystem only uses low level C library functions that do not call
* operating system services and may therefore be inlined in the code.
*
* It may be necessary to tailor these include files to the target
* generation environment.
*
*
* Functions and constants used from each header:
*
* string.h: memcpy
* memset
* strcat
* strcmp
* strcpy
* strlen
* strncmp
* strncat
* strncpy
*
* stdlib.h: strtoul
*
* stdarg.h: va_list
* va_arg
* va_start
* va_end
*
*/
/*! [Begin] no source code translation */
#ifdef _LINUX
#include "aclinux.h"
#elif _AED_EFI
#include "acefi.h"
#elif WIN32
#include "acwin.h"
#elif __FreeBSD__
#include "acfreebsd.h"
#else
/* All other environments */
#define ACPI_USE_STANDARD_HEADERS
/* Name of host operating system (returned by the _OS_ namespace object) */
#define ACPI_OS_NAME "Intel ACPI/CA Core Subsystem"
/* This macro is used to tag functions as "printf-like" because
* some compilers can catch printf format string problems. MSVC
* doesn't, so this is proprocessed away.
*/
#define ACPI_PRINTF_LIKE_FUNC
#endif
/*! [End] no source code translation !*/
/******************************************************************************
*
* C library configuration
*
*****************************************************************************/
#ifdef ACPI_USE_SYSTEM_CLIBRARY
/*
* Use the standard C library headers.
* We want to keep these to a minimum.
*
*/
#ifdef ACPI_USE_STANDARD_HEADERS
/*
* Use the standard headers from the standard locations
*/
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#endif /* ACPI_USE_STANDARD_HEADERS */
/*
* We will be linking to the standard Clib functions
*/
#define STRSTR(s1,s2) strstr((s1), (s2))
#define STRUPR(s) acpi_ut_strupr ((s))
#define STRLEN(s) (u32) strlen((s))
#define STRCPY(d,s) strcpy((d), (s))
#define STRNCPY(d,s,n) strncpy((d), (s), (NATIVE_INT)(n))
#define STRNCMP(d,s,n) strncmp((d), (s), (NATIVE_INT)(n))
#define STRCMP(d,s) strcmp((d), (s))
#define STRCAT(d,s) strcat((d), (s))
#define STRNCAT(d,s,n) strncat((d), (s), (NATIVE_INT)(n))
#define STRTOUL(d,s,n) strtoul((d), (s), (NATIVE_INT)(n))
#define MEMCPY(d,s,n) memcpy((d), (s), (NATIVE_INT)(n))
#define MEMSET(d,s,n) memset((d), (s), (NATIVE_INT)(n))
#define TOUPPER toupper
#define TOLOWER tolower
#define IS_XDIGIT isxdigit
/******************************************************************************
*
* Not using native C library, use local implementations
*
*****************************************************************************/
#else
/*
* Use local definitions of C library macros and functions
* NOTE: The function implementations may not be as efficient
* as an inline or assembly code implementation provided by a
* native C library.
*/
#ifndef va_arg
#ifndef _VALIST
#define _VALIST
typedef char *va_list;
#endif /* _VALIST */
/*
* Storage alignment properties
*/
#define _AUPBND (sizeof (NATIVE_INT) - 1)
#define _ADNBND (sizeof (NATIVE_INT) - 1)
/*
* Variable argument list macro definitions
*/
#define _bnd(X, bnd) (((sizeof (X)) + (bnd)) & (~(bnd)))
#define va_arg(ap, T) (*(T *)(((ap) += (_bnd (T, _AUPBND))) - (_bnd (T,_ADNBND))))
#define va_end(ap) (void) 0
#define va_start(ap, A) (void) ((ap) = (((char *) &(A)) + (_bnd (A,_AUPBND))))
#endif /* va_arg */
#define STRSTR(s1,s2) acpi_ut_strstr ((s1), (s2))
#define STRUPR(s) acpi_ut_strupr ((s))
#define STRLEN(s) acpi_ut_strlen ((s))
#define STRCPY(d,s) acpi_ut_strcpy ((d), (s))
#define STRNCPY(d,s,n) acpi_ut_strncpy ((d), (s), (n))
#define STRNCMP(d,s,n) acpi_ut_strncmp ((d), (s), (n))
#define STRCMP(d,s) acpi_ut_strcmp ((d), (s))
#define STRCAT(d,s) acpi_ut_strcat ((d), (s))
#define STRNCAT(d,s,n) acpi_ut_strncat ((d), (s), (n))
#define STRTOUL(d,s,n) acpi_ut_strtoul ((d), (s),(n))
#define MEMCPY(d,s,n) acpi_ut_memcpy ((d), (s), (n))
#define MEMSET(d,v,n) acpi_ut_memset ((d), (v), (n))
#define TOUPPER acpi_ut_to_upper
#define TOLOWER acpi_ut_to_lower
#endif /* ACPI_USE_SYSTEM_CLIBRARY */
/******************************************************************************
*
* Assembly code macros
*
*****************************************************************************/
/*
* Handle platform- and compiler-specific assembly language differences.
* These should already have been defined by the platform includes above.
*
* Notes:
* 1) Interrupt 3 is used to break into a debugger
* 2) Interrupts are turned off during ACPI register setup
*/
/* Unrecognized compiler, use defaults */
#ifndef ACPI_ASM_MACROS
#define ACPI_ASM_MACROS
#define causeinterrupt(level)
#define BREAKPOINT3
#define disable()
#define enable()
#define halt()
#define ACPI_ACQUIRE_GLOBAL_LOCK(Glptr, acq)
#define ACPI_RELEASE_GLOBAL_LOCK(Glptr, acq)
#endif /* ACPI_ASM_MACROS */
#ifdef ACPI_APPLICATION
/* Don't want software interrupts within a ring3 application */
#undef causeinterrupt
#undef BREAKPOINT3
#define causeinterrupt(level)
#define BREAKPOINT3
#endif
/******************************************************************************
*
* Compiler-specific
*
*****************************************************************************/
/* this has been moved to compiler-specific headers, which are included from the
platform header. */
#endif /* __ACENV_H__ */
--- NEW FILE ---
/******************************************************************************
*
* Name: acgcc.h - GCC specific defines, etc.
* $Revision: 1.1 $
*
*****************************************************************************/
/*
* Copyright (C) 2000, 2001 R. Byron Moore
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __ACGCC_H__
#define __ACGCC_H__
#ifdef __ia64__
#define _IA64
#define COMPILER_DEPENDENT_UINT64 unsigned long
/* Single threaded */
#define ACPI_APPLICATION
#define ACPI_ASM_MACROS
#define causeinterrupt(level)
#define BREAKPOINT3
#define disable() __cli()
#define enable() __sti()
/*! [Begin] no source code translation */
#include <asm/pal.h>
#define halt() ia64_pal_halt_light() /* PAL_HALT[_LIGHT] */
#define safe_halt() ia64_pal_halt(1) /* PAL_HALT */
#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) \
do { \
__asm__ volatile ("1: ld4 r29=%1\n" \
";;\n" \
"mov ar.ccv=r29\n" \
"mov r2=r29\n" \
"shr.u r30=r29,1\n" \
"and r29=-4,r29\n" \
";;\n" \
"add r29=2,r29\n" \
"and r30=1,r30\n" \
";;\n" \
"add r29=r29,r30\n" \
";;\n" \
"cmpxchg4.acq r30=%1,r29,ar.ccv\n" \
";;\n" \
"cmp.eq p6,p7=r2,r30\n" \
"(p7) br.dpnt.few 1b\n" \
"cmp.gt p8,p9=3,r29\n" \
";;\n" \
"(p8) mov %0=-1\n" \
"(p9) mov %0=r0\n" \
:"=r"(Acq):"m"(GLptr):"r2","r29","r30","memory"); \
} while (0)
#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Acq) \
do { \
__asm__ volatile ("1: ld4 r29=%1\n" \
";;\n" \
"mov ar.ccv=r29\n" \
"mov r2=r29\n" \
"and r29=-4,r29\n" \
";;\n" \
"cmpxchg4.acq r30=%1,r29,ar.ccv\n" \
";;\n" \
"cmp.eq p6,p7=r2,r30\n" \
"(p7) br.dpnt.few 1b\n" \
"and %0=1,r2\n" \
";;\n" \
:"=r"(Acq):"m"(GLptr):"r2","r29","r30","memory"); \
} while (0)
/*! [End] no source code translation !*/
#else /* DO IA32 */
#define COMPILER_DEPENDENT_UINT64 unsigned long long
#define ACPI_ASM_MACROS
#define causeinterrupt(level)
#define BREAKPOINT3
#define disable() __cli()
#define enable() __sti()
#define halt() __asm__ __volatile__ ("sti; hlt":::"memory")
/*! [Begin] no source code translation
*
* A brief explanation as GNU inline assembly is a bit hairy
* %0 is the output parameter in EAX ("=a")
* %1 and %2 are the input parameters in ECX ("c")
* and an immediate value ("i") respectively
* All actual register references are preceded with "%%" as in "%%edx"
* Immediate values in the assembly are preceded by "$" as in "$0x1"
* The final asm parameter are the operation altered non-output registers.
*/
#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) \
do { \
int dummy; \
asm("1: movl (%1),%%eax;" \
"movl %%eax,%%edx;" \
"andl %2,%%edx;" \
"btsl $0x1,%%edx;" \
"adcl $0x0,%%edx;" \
"lock; cmpxchgl %%edx,(%1);" \
"jnz 1b;" \
"cmpb $0x3,%%dl;" \
"sbbl %%eax,%%eax" \
:"=a"(Acq),"=c"(dummy):"c"(GLptr),"i"(~1L):"dx"); \
} while(0)
#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Acq) \
do { \
int dummy; \
asm("1: movl (%1),%%eax;" \
"movl %%eax,%%edx;" \
"andl %2,%%edx;" \
"lock; cmpxchgl %%edx,(%1);" \
"jnz 1b;" \
"andl $0x1,%%eax" \
:"=a"(Acq),"=c"(dummy):"c"(GLptr),"i"(~3L):"dx"); \
} while(0)
/*
* Math helper asm macros
*/
#define ACPI_DIV_64_BY_32(n_hi, n_lo, d32, q32, r32) \
asm("divl %2;" \
:"=a"(q32), "=d"(r32) \
:"r"(d32), \
"0"(n_lo), "1"(n_hi))
#define ACPI_SHIFT_RIGHT_64(n_hi, n_lo) \
asm("shrl $1,%2;" \
"rcrl $1,%3;" \
:"=r"(n_hi), "=r"(n_lo) \
:"0"(n_hi), "1"(n_lo))
/*! [End] no source code translation !*/
#endif /* IA 32 */
/* This macro is used to tag functions as "printf-like" because
* some compilers (like GCC) can catch printf format string problems.
*/
#define ACPI_PRINTF_LIKE_FUNC __attribute__ ((__format__ (__printf__, 4, 5)))
#endif /* __ACGCC_H__ */
--- NEW FILE ---
/******************************************************************************
*
* Name: aclinux.h - OS specific defines, etc.
* $Revision: 1.1 $
*
*****************************************************************************/
/*
* Copyright (C) 2000, 2001 R. Byron Moore
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __ACLINUX_H__
#define __ACLINUX_H__
#define ACPI_OS_NAME "Linux"
#define ACPI_USE_SYSTEM_CLIBRARY
#ifdef __KERNEL__
#include <linux/config.h>
#include <linux/string.h>
#include <linux/kernel.h>
#include <linux/ctype.h>
#include <asm/system.h>
#include <asm/atomic.h>
#include <asm/div64.h>
#define strtoul simple_strtoul
#else
#include <stdarg.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#endif
/* Linux uses GCC */
#include "acgcc.h"
#undef DEBUGGER_THREADING
#define DEBUGGER_THREADING DEBUGGER_SINGLE_THREADED
#endif /* __ACLINUX_H__ */
|
|
From: Andy P. <at...@us...> - 2002-04-10 19:00:40
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/ppc/xmon
In directory usw-pr-cvs1:/tmp/cvs-serv25860/ppc/xmon
Modified Files:
Makefile adb.c ansidecl.h nonstdio.h ppc-dis.c ppc-opc.c ppc.h
privinst.h setjmp.c start.c start_8xx.c subr_prf.c xmon.c
Log Message:
synch 2.4.15 commit 43
Index: Makefile
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/xmon/Makefile,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- Makefile 14 Jan 2001 19:33:14 -0000 1.1.1.1
+++ Makefile 10 Apr 2002 15:04:13 -0000 1.2
@@ -1,11 +1,14 @@
+# BK Id: SCCS/s.Makefile 1.6 06/27/01 14:49:58 trini
+#
# Makefile for xmon
O_TARGET := x.o
-ifeq ($(CONFIG_8xx),y)
-obj-y := start_8xx.o xmon.o ppc-dis.o ppc-opc.o subr_prf.o setjmp.o
+ifdef CONFIG_8xx
+obj-y := start_8xx.o
else
-obj-y := start.o xmon.o ppc-dis.o ppc-opc.o subr_prf.o setjmp.o
+obj-y := start.o
endif
+obj-y += xmon.o ppc-dis.o ppc-opc.o subr_prf.o setjmp.o
include $(TOPDIR)/Rules.make
Index: adb.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/xmon/adb.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- adb.c 14 Jan 2001 19:33:15 -0000 1.1.1.1
+++ adb.c 10 Apr 2002 15:04:13 -0000 1.2
@@ -1,4 +1,7 @@
/*
+ * BK Id: SCCS/s.adb.c 1.5 05/17/01 18:14:23 cort
+ */
+/*
* Copyright (C) 1996 Paul Mackerras.
*/
#include "nonstdio.h"
Index: ansidecl.h
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/xmon/ansidecl.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- ansidecl.h 14 Jan 2001 19:33:15 -0000 1.1.1.1
+++ ansidecl.h 10 Apr 2002 15:04:13 -0000 1.2
@@ -1,3 +1,6 @@
+/*
+ * BK Id: SCCS/s.ansidecl.h 1.5 05/17/01 18:14:23 cort
+ */
/* ANSI and traditional C compatability macros
Copyright 1991, 1992 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Index: nonstdio.h
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/xmon/nonstdio.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- nonstdio.h 14 Jan 2001 19:33:16 -0000 1.1.1.1
+++ nonstdio.h 10 Apr 2002 15:04:13 -0000 1.2
@@ -1,3 +1,6 @@
+/*
+ * BK Id: SCCS/s.nonstdio.h 1.5 05/17/01 18:14:23 cort
+ */
typedef int FILE;
extern FILE *xmon_stdin, *xmon_stdout;
#define EOF (-1)
Index: ppc-dis.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/xmon/ppc-dis.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- ppc-dis.c 14 Jan 2001 19:33:16 -0000 1.1.1.1
+++ ppc-dis.c 10 Apr 2002 15:04:13 -0000 1.2
@@ -1,3 +1,6 @@
+/*
+ * BK Id: SCCS/s.ppc-dis.c 1.5 05/17/01 18:14:23 cort
+ */
/* ppc-dis.c -- Disassemble PowerPC instructions
Copyright 1994 Free Software Foundation, Inc.
Written by Ian Lance Taylor, Cygnus Support
Index: ppc-opc.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/xmon/ppc-opc.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- ppc-opc.c 14 Jan 2001 19:33:32 -0000 1.1.1.1
+++ ppc-opc.c 10 Apr 2002 15:04:13 -0000 1.2
@@ -1,3 +1,6 @@
+/*
+ * BK Id: SCCS/s.ppc-opc.c 1.5 05/17/01 18:14:23 cort
+ */
/* ppc-opc.c -- PowerPC opcode list
Copyright 1994 Free Software Foundation, Inc.
Written by Ian Lance Taylor, Cygnus Support
Index: ppc.h
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/xmon/ppc.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- ppc.h 14 Jan 2001 19:33:33 -0000 1.1.1.1
+++ ppc.h 10 Apr 2002 15:04:13 -0000 1.2
@@ -1,3 +1,6 @@
+/*
+ * BK Id: SCCS/s.ppc.h 1.5 05/17/01 18:14:23 cort
+ */
/* ppc.h -- Header file for PowerPC opcode table
Copyright 1994 Free Software Foundation, Inc.
Written by Ian Lance Taylor, Cygnus Support
Index: privinst.h
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/xmon/privinst.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- privinst.h 14 Jan 2001 19:33:34 -0000 1.1.1.1
+++ privinst.h 10 Apr 2002 15:04:13 -0000 1.2
@@ -1,4 +1,7 @@
/*
+ * BK Id: SCCS/s.privinst.h 1.5 05/17/01 18:14:23 cort
+ */
+/*
* Copyright (C) 1996 Paul Mackerras.
*/
#include <linux/config.h>
Index: setjmp.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/xmon/setjmp.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- setjmp.c 14 Jan 2001 19:33:34 -0000 1.1.1.1
+++ setjmp.c 10 Apr 2002 15:04:13 -0000 1.2
@@ -1,4 +1,7 @@
/*
+ * BK Id: SCCS/s.setjmp.c 1.5 05/17/01 18:14:23 cort
+ */
+/*
* Copyright (C) 1996 Paul Mackerras.
*
* NB this file must be compiled with -O2.
Index: start.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/xmon/start.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- start.c 25 Feb 2001 23:15:18 -0000 1.1.1.2
+++ start.c 10 Apr 2002 15:04:13 -0000 1.2
@@ -1,4 +1,7 @@
/*
+ * BK Id: SCCS/s.start.c 1.16 08/20/01 22:17:58 paulus
+ */
+/*
* Copyright (C) 1996 Paul Mackerras.
*/
#include <linux/config.h>
@@ -15,6 +18,7 @@
#include <asm/feature.h>
#include <asm/processor.h>
#include <asm/delay.h>
+#include <asm/btext.h>
#ifdef CONFIG_SMP
#include <asm/bitops.h>
#endif
@@ -22,13 +26,11 @@
static volatile unsigned char *sccc, *sccd;
unsigned long TXRDY, RXRDY;
extern void xmon_printf(const char *fmt, ...);
-extern void prom_drawchar(char);
-extern void prom_drawstring(const char *str);
static int xmon_expect(const char *str, unsigned int timeout);
static int console;
static int use_screen;
-static int via_modem = 1;
+static int via_modem;
static int xmon_use_sccb;
static struct device_node *macio_node;
@@ -53,6 +55,7 @@
void
xmon_map_scc(void)
{
+#ifdef CONFIG_ALL_PPC
volatile unsigned char *base;
use_screen = 0;
@@ -61,27 +64,57 @@
struct device_node *np;
unsigned long addr;
#ifdef CONFIG_BOOTX_TEXT
- extern boot_infos_t *disp_bi;
+ if (!machine_is_compatible("iMac")) {
+ extern boot_infos_t *disp_bi;
- /* see if there is a keyboard in the device tree
- with a parent of type "adb" */
- for (np = find_devices("keyboard"); np; np = np->next)
- if (np->parent && np->parent->type
- && strcmp(np->parent->type, "adb") == 0)
- break;
+ /* see if there is a keyboard in the device tree
+ with a parent of type "adb" */
+ for (np = find_devices("keyboard"); np; np = np->next)
+ if (np->parent && np->parent->type
+ && strcmp(np->parent->type, "adb") == 0)
+ break;
- /* needs to be hacked if xmon_printk is to be used
- from within find_via_pmu() */
+ /* needs to be hacked if xmon_printk is to be used
+ from within find_via_pmu() */
#ifdef CONFIG_ADB_PMU
- if (np != NULL && disp_bi && find_via_pmu())
- use_screen = 1;
+ if (np != NULL && disp_bi && find_via_pmu())
+ use_screen = 1;
#endif
#ifdef CONFIG_ADB_CUDA
- if (np != NULL && disp_bi && find_via_cuda())
- use_screen = 1;
+ if (np != NULL && disp_bi && find_via_cuda())
+ use_screen = 1;
#endif
+ }
+ if (!use_screen && (np = find_devices("escc")) != NULL) {
+ /*
+ * look for the device node for the serial port
+ * we're using and see if it says it has a modem
+ */
+ char *name = xmon_use_sccb? "ch-b": "ch-a";
+ char *slots;
+ int l;
+
+ np = np->child;
+ while (np != NULL && strcmp(np->name, name) != 0)
+ np = np->sibling;
+ if (np != NULL) {
+ /* XXX should parse this properly */
+ slots = get_property(np, "slot-names", &l);
+ if (slots != NULL && l >= 10
+ && strcmp(slots+4, "Modem") == 0)
+ via_modem = 1;
+ }
+ }
+ btext_drawstring("xmon uses ");
if (use_screen)
- prom_drawstring("xmon uses screen and keyboard\n");
+ btext_drawstring("screen and keyboard\n");
+ else {
+ if (via_modem)
+ btext_drawstring("modem on ");
+ btext_drawstring(xmon_use_sccb? "printer": "modem");
+ btext_drawstring(" port\n");
+ }
+
#endif /* CONFIG_BOOTX_TEXT */
#ifdef CHRP_ESCC
@@ -113,6 +146,14 @@
TXRDY = 0x20;
RXRDY = 1;
}
+#elif defined(CONFIG_GEMINI)
+ /* should already be mapped by the kernel boot */
+ sccc = (volatile unsigned char *) 0xffeffb0d;
+ sccd = (volatile unsigned char *) 0xffeffb08;
+ TXRDY = 0x20;
+ RXRDY = 1;
+ console = 1;
+#endif /* platform */
}
static int scc_initialized = 0;
@@ -153,7 +194,7 @@
if (use_screen) {
/* write it on the screen */
for (i = 0; i < nb; ++i)
- prom_drawchar(*p++);
+ btext_drawchar(*p++);
goto out;
}
#endif
@@ -194,7 +235,7 @@
static unsigned char xmon_keytab[128] =
"asdfhgzxcv\000bqwer" /* 0x00 - 0x0f */
- "yt123465=97-80o]" /* 0x10 - 0x1f */
+ "yt123465=97-80]o" /* 0x10 - 0x1f */
"u[ip\rlj'k;\\,/nm." /* 0x20 - 0x2f */
"\t `\177\0\033\0\0\0\0\0\0\0\0\0\0" /* 0x30 - 0x3f */
"\0.\0*\0+\0\0\0\0\0/\r\0-\0" /* 0x40 - 0x4f */
@@ -202,7 +243,7 @@
static unsigned char xmon_shift_keytab[128] =
"ASDFHGZXCV\000BQWER" /* 0x00 - 0x0f */
- "YT!@#$^%+(&=*)}O" /* 0x10 - 0x1f */
+ "YT!@#$^%+(&_*)}O" /* 0x10 - 0x1f */
"U{IP\rLJ\"K:|<?NM>" /* 0x20 - 0x2f */
"\t ~\177\0\033\0\0\0\0\0\0\0\0\0\0" /* 0x30 - 0x3f */
"\0.\0*\0+\0\0\0\0\0/\r\0-\0" /* 0x40 - 0x4f */
@@ -221,15 +262,15 @@
do {
if (--t < 0) {
on = 1 - on;
- prom_drawchar(on? 0xdb: 0x20);
- prom_drawchar('\b');
+ btext_drawchar(on? 0xdb: 0x20);
+ btext_drawchar('\b');
t = 200000;
}
do_poll_adb();
} while (xmon_adb_keycode == -1);
k = xmon_adb_keycode;
if (on)
- prom_drawstring(" \b");
+ btext_drawstring(" \b");
/* test for shift keys */
if ((k & 0x7f) == 0x38 || (k & 0x7f) == 0x7b) {
@@ -522,7 +563,9 @@
xmon_enter(void)
{
#ifdef CONFIG_ADB_PMU
- pmu_suspend();
+ if (_machine == _MACH_Pmac) {
+ pmu_suspend();
+ }
#endif
}
@@ -530,6 +573,8 @@
xmon_leave(void)
{
#ifdef CONFIG_ADB_PMU
- pmu_resume();
+ if (_machine == _MACH_Pmac) {
+ pmu_resume();
+ }
#endif
}
Index: start_8xx.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/xmon/start_8xx.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- start_8xx.c 14 Jan 2001 19:33:40 -0000 1.1.1.1
+++ start_8xx.c 10 Apr 2002 15:04:13 -0000 1.2
@@ -1,4 +1,7 @@
/*
+ * BK Id: SCCS/s.start_8xx.c 1.10 09/14/01 18:01:17 trini
+ */
+/*
* Copyright (C) 1996 Paul Mackerras.
* Copyright (C) 2000 Dan Malek.
* Quick hack of Paul's code to make XMON work on 8xx processors. Lots
@@ -15,7 +18,7 @@
#include <asm/processor.h>
#include <asm/8xx_immap.h>
#include <asm/mpc8xx.h>
-#include "commproc.h"
+#include <asm/commproc.h>
extern void xmon_printf(const char *fmt, ...);
extern int xmon_8xx_write(char *str, int nb);
Index: subr_prf.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/xmon/subr_prf.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- subr_prf.c 14 Jan 2001 19:33:35 -0000 1.1.1.1
+++ subr_prf.c 10 Apr 2002 15:04:13 -0000 1.2
@@ -1,4 +1,7 @@
/*
+ * BK Id: SCCS/s.subr_prf.c 1.5 05/17/01 18:14:23 cort
+ */
+/*
* Written by Cort Dougan to replace the version originally used
* by Paul Mackerras, which came from NetBSD and thus had copyright
* conflicts with Linux.
Index: xmon.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/xmon/xmon.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- xmon.c 25 Feb 2001 23:15:18 -0000 1.1.1.2
+++ xmon.c 10 Apr 2002 15:04:13 -0000 1.2
@@ -1,4 +1,7 @@
/*
+ * BK Id: SCCS/s.xmon.c 1.16 09/22/01 15:25:10 trini
+ */
+/*
* Routines providing a simple monitor for use on the PowerMac.
*
* Copyright (C) 1996 Paul Mackerras.
@@ -208,10 +211,11 @@
xmon_irq(int irq, void *d, struct pt_regs *regs)
{
unsigned long flags;
- save_flags(flags);cli();
+ __save_flags(flags);
+ __cli();
printf("Keyboard interrupt\n");
xmon(regs);
- restore_flags(flags);
+ __restore_flags(flags);
}
int
@@ -657,8 +661,7 @@
unsigned stack[2];
struct pt_regs regs;
extern char ret_from_intercept, ret_from_syscall_1, ret_from_syscall_2;
- extern char lost_irq_ret, do_bottom_half_ret, do_signal_ret;
- extern char ret_from_except;
+ extern char do_signal_ret, ret_from_except;
printf("backtrace:\n");
@@ -676,8 +679,6 @@
|| stack[1] == (unsigned) &ret_from_except
|| stack[1] == (unsigned) &ret_from_syscall_1
|| stack[1] == (unsigned) &ret_from_syscall_2
- || stack[1] == (unsigned) &lost_irq_ret
- || stack[1] == (unsigned) &do_bottom_half_ret
|| stack[1] == (unsigned) &do_signal_ret) {
if (mread(sp+16, ®s, sizeof(regs)) != sizeof(regs))
break;
@@ -812,10 +813,12 @@
printf("sprg0-3 = %x %x %x %x\n", get_sprg0(), get_sprg1(),
get_sprg2(), get_sprg3());
printf("srr0 = %x, srr1 = %x\n", get_srr0(), get_srr1());
+#ifdef CONFIG_PPC_STD_MMU
printf("sr0-15 =");
for (i = 0; i < 16; ++i)
printf(" %x", get_sr(i));
printf("\n");
+#endif
asm("mr %0,1" : "=r" (i) :);
printf("sp = %x ", i);
asm("mr %0,2" : "=r" (i) :);
@@ -1016,7 +1019,8 @@
seg_end = (seg << 28) | 0x0ffff000;
if (seg_end > hash_end)
seg_end = hash_end;
- dump_hash_table_seg((hash_ctx << 4) + seg, seg_start, seg_end);
+ dump_hash_table_seg((hash_ctx << 4) + (seg * 0x111),
+ seg_start, seg_end);
seg_start = seg_end + 0x1000;
}
}
|
|
From: Andy P. <at...@us...> - 2002-04-10 19:00:37
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/ppc/mbxboot In directory usw-pr-cvs1:/tmp/cvs-serv25860/ppc/mbxboot Removed Files: Makefile embed_config.c gzimage.c head.S head_8260.S iic.c m8260_tty.c m8xx_tty.c misc.c offset pci.c qspan_pci.c rdimage.c size vmlinux.lds Log Message: synch 2.4.15 commit 43 --- Makefile DELETED --- --- embed_config.c DELETED --- --- gzimage.c DELETED --- --- head.S DELETED --- --- head_8260.S DELETED --- --- iic.c DELETED --- --- m8260_tty.c DELETED --- --- m8xx_tty.c DELETED --- --- misc.c DELETED --- --- offset DELETED --- --- pci.c DELETED --- --- qspan_pci.c DELETED --- --- rdimage.c DELETED --- --- size DELETED --- --- vmlinux.lds DELETED --- |
|
From: Andy P. <at...@us...> - 2002-04-10 19:00:34
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/mtd/nand
In directory usw-pr-cvs1:/tmp/cvs-serv22769/mtd/nand
Added Files:
Config.in Makefile nand.c nand_ecc.c spia.c
Log Message:
synch 2.4.15 commit 42
--- NEW FILE ---
# drivers/mtd/nand/Config.in
# $Id: Config.in,v 1.1 2002/04/10 14:57:59 atp Exp $
mainmenu_option next_comment
comment 'NAND Flash Device Drivers'
dep_tristate ' NAND Device Support' CONFIG_MTD_NAND $CONFIG_MTD
if [ "$CONFIG_MTD_NAND" = "y" -o "$CONFIG_MTD_NAND" = "m" ]; then
bool ' Enable ECC correction algorithm' CONFIG_MTD_NAND_ECC
bool ' Verify NAND page writes' CONFIG_MTD_NAND_VERIFY_WRITE
fi
if [ "$CONFIG_ARM" = "y" -a "$CONFIG_ARCH_P720T" = "y" ]; then
dep_tristate ' NAND Flash device on SPIA board' CONFIG_MTD_NAND_SPIA $CONFIG_MTD_NAND
fi
endmenu
--- NEW FILE ---
#
# linux/drivers/nand/Makefile
#
# $Id: Makefile,v 1.1 2002/04/10 14:57:59 atp Exp $
O_TARGET := nandlink.o
export-objs := nand.o nand_ecc.o
nandobjs-y := nand.o
nandobjs-$(CONFIG_MTD_NAND_ECC) += nand_ecc.o
obj-$(CONFIG_MTD_NAND) += $(nandobjs-y)
obj-$(CONFIG_MTD_NAND_SPIA) += spia.o
include $(TOPDIR)/Rules.make
--- NEW FILE ---
/*
* drivers/mtd/nand.c
*
* Copyright (C) 2000 Steven J. Hill (sj...@co...)
*
* $Id: nand.c,v 1.1 2002/04/10 14:57:59 atp Exp $
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* Overview:
* This is the generic MTD driver for NAND flash devices. It should be
* capable of working with almost all NAND chips currently available.
*/
#include <linux/delay.h>
#include <linux/errno.h>
#include <linux/sched.h>
[...1335 lines suppressed...]
mtd->write_ecc = nand_write_ecc;
mtd->read_oob = nand_read_oob;
mtd->write_oob = nand_write_oob;
mtd->readv = NULL;
mtd->writev = nand_writev;
mtd->sync = nand_sync;
mtd->lock = NULL;
mtd->unlock = NULL;
mtd->suspend = NULL;
mtd->resume = NULL;
/* Return happy */
return 0;
}
EXPORT_SYMBOL(nand_scan);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Steven J. Hill <sj...@co...");
MODULE_DESCRIPTION("Generic NAND flash driver code");
--- NEW FILE ---
/*
* drivers/mtd/nand_ecc.c
*
* Copyright (C) 2000 Steven J. Hill (sj...@co...)
* Toshiba America Electronics Components, Inc.
*
* $Id: nand_ecc.c,v 1.1 2002/04/10 14:57:59 atp Exp $
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This file contains an ECC algorithm from Toshiba that detects and
* corrects 1 bit errors in a 256 byte block of data.
*/
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/module.h>
/*
* Pre-calculated 256-way 1 byte column parity
*/
static const u_char nand_ecc_precalc_table[] = {
0x00, 0x55, 0x56, 0x03, 0x59, 0x0c, 0x0f, 0x5a, 0x5a, 0x0f, 0x0c, 0x59, 0x03, 0x56, 0x55, 0x00,
0x65, 0x30, 0x33, 0x66, 0x3c, 0x69, 0x6a, 0x3f, 0x3f, 0x6a, 0x69, 0x3c, 0x66, 0x33, 0x30, 0x65,
0x66, 0x33, 0x30, 0x65, 0x3f, 0x6a, 0x69, 0x3c, 0x3c, 0x69, 0x6a, 0x3f, 0x65, 0x30, 0x33, 0x66,
0x03, 0x56, 0x55, 0x00, 0x5a, 0x0f, 0x0c, 0x59, 0x59, 0x0c, 0x0f, 0x5a, 0x00, 0x55, 0x56, 0x03,
0x69, 0x3c, 0x3f, 0x6a, 0x30, 0x65, 0x66, 0x33, 0x33, 0x66, 0x65, 0x30, 0x6a, 0x3f, 0x3c, 0x69,
0x0c, 0x59, 0x5a, 0x0f, 0x55, 0x00, 0x03, 0x56, 0x56, 0x03, 0x00, 0x55, 0x0f, 0x5a, 0x59, 0x0c,
0x0f, 0x5a, 0x59, 0x0c, 0x56, 0x03, 0x00, 0x55, 0x55, 0x00, 0x03, 0x56, 0x0c, 0x59, 0x5a, 0x0f,
0x6a, 0x3f, 0x3c, 0x69, 0x33, 0x66, 0x65, 0x30, 0x30, 0x65, 0x66, 0x33, 0x69, 0x3c, 0x3f, 0x6a,
0x6a, 0x3f, 0x3c, 0x69, 0x33, 0x66, 0x65, 0x30, 0x30, 0x65, 0x66, 0x33, 0x69, 0x3c, 0x3f, 0x6a,
0x0f, 0x5a, 0x59, 0x0c, 0x56, 0x03, 0x00, 0x55, 0x55, 0x00, 0x03, 0x56, 0x0c, 0x59, 0x5a, 0x0f,
0x0c, 0x59, 0x5a, 0x0f, 0x55, 0x00, 0x03, 0x56, 0x56, 0x03, 0x00, 0x55, 0x0f, 0x5a, 0x59, 0x0c,
0x69, 0x3c, 0x3f, 0x6a, 0x30, 0x65, 0x66, 0x33, 0x33, 0x66, 0x65, 0x30, 0x6a, 0x3f, 0x3c, 0x69,
0x03, 0x56, 0x55, 0x00, 0x5a, 0x0f, 0x0c, 0x59, 0x59, 0x0c, 0x0f, 0x5a, 0x00, 0x55, 0x56, 0x03,
0x66, 0x33, 0x30, 0x65, 0x3f, 0x6a, 0x69, 0x3c, 0x3c, 0x69, 0x6a, 0x3f, 0x65, 0x30, 0x33, 0x66,
0x65, 0x30, 0x33, 0x66, 0x3c, 0x69, 0x6a, 0x3f, 0x3f, 0x6a, 0x69, 0x3c, 0x66, 0x33, 0x30, 0x65,
0x00, 0x55, 0x56, 0x03, 0x59, 0x0c, 0x0f, 0x5a, 0x5a, 0x0f, 0x0c, 0x59, 0x03, 0x56, 0x55, 0x00
};
/*
* Creates non-inverted ECC code from line parity
*/
static void nand_trans_result(u_char reg2, u_char reg3,
u_char *ecc_code)
{
u_char a, b, i, tmp1, tmp2;
/* Initialize variables */
a = b = 0x80;
tmp1 = tmp2 = 0;
/* Calculate first ECC byte */
for (i = 0; i < 4; i++) {
if (reg3 & a) /* LP15,13,11,9 --> ecc_code[0] */
tmp1 |= b;
b >>= 1;
if (reg2 & a) /* LP14,12,10,8 --> ecc_code[0] */
tmp1 |= b;
b >>= 1;
a >>= 1;
}
/* Calculate second ECC byte */
b = 0x80;
for (i = 0; i < 4; i++) {
if (reg3 & a) /* LP7,5,3,1 --> ecc_code[1] */
tmp2 |= b;
b >>= 1;
if (reg2 & a) /* LP6,4,2,0 --> ecc_code[1] */
tmp2 |= b;
b >>= 1;
a >>= 1;
}
/* Store two of the ECC bytes */
ecc_code[0] = tmp1;
ecc_code[1] = tmp2;
}
/*
* Calculate 3 byte ECC code for 256 byte block
*/
void nand_calculate_ecc (const u_char *dat, u_char *ecc_code)
{
u_char idx, reg1, reg2, reg3;
int j;
/* Initialize variables */
reg1 = reg2 = reg3 = 0;
ecc_code[0] = ecc_code[1] = ecc_code[2] = 0;
/* Build up column parity */
for(j = 0; j < 256; j++) {
/* Get CP0 - CP5 from table */
idx = nand_ecc_precalc_table[dat[j]];
reg1 ^= (idx & 0x3f);
/* All bit XOR = 1 ? */
if (idx & 0x40) {
reg3 ^= (u_char) j;
reg2 ^= ~((u_char) j);
}
}
/* Create non-inverted ECC code from line parity */
nand_trans_result(reg2, reg3, ecc_code);
/* Calculate final ECC code */
ecc_code[0] = ~ecc_code[0];
ecc_code[1] = ~ecc_code[1];
ecc_code[2] = ((~reg1) << 2) | 0x03;
}
/*
* Detect and correct a 1 bit error for 256 byte block
*/
int nand_correct_data (u_char *dat, u_char *read_ecc, u_char *calc_ecc)
{
u_char a, b, c, d1, d2, d3, add, bit, i;
/* Do error detection */
d1 = calc_ecc[0] ^ read_ecc[0];
d2 = calc_ecc[1] ^ read_ecc[1];
d3 = calc_ecc[2] ^ read_ecc[2];
if ((d1 | d2 | d3) == 0) {
/* No errors */
return 0;
}
else {
a = (d1 ^ (d1 >> 1)) & 0x55;
b = (d2 ^ (d2 >> 1)) & 0x55;
c = (d3 ^ (d3 >> 1)) & 0x54;
/* Found and will correct single bit error in the data */
if ((a == 0x55) && (b == 0x55) && (c == 0x54)) {
c = 0x80;
add = 0;
a = 0x80;
for (i=0; i<4; i++) {
if (d1 & c)
add |= a;
c >>= 2;
a >>= 1;
}
c = 0x80;
for (i=0; i<4; i++) {
if (d2 & c)
add |= a;
c >>= 2;
a >>= 1;
}
bit = 0;
b = 0x04;
c = 0x80;
for (i=0; i<3; i++) {
if (d3 & c)
bit |= b;
c >>= 2;
b >>= 1;
}
b = 0x01;
a = dat[add];
a ^= (b << bit);
dat[add] = a;
return 1;
}
else {
i = 0;
while (d1) {
if (d1 & 0x01)
++i;
d1 >>= 1;
}
while (d2) {
if (d2 & 0x01)
++i;
d2 >>= 1;
}
while (d3) {
if (d3 & 0x01)
++i;
d3 >>= 1;
}
if (i == 1) {
/* ECC Code Error Correction */
read_ecc[0] = calc_ecc[0];
read_ecc[1] = calc_ecc[1];
read_ecc[2] = calc_ecc[2];
return 2;
}
else {
/* Uncorrectable Error */
return -1;
}
}
}
/* Should never happen */
return -1;
}
EXPORT_SYMBOL(nand_calculate_ecc);
EXPORT_SYMBOL(nand_correct_data);
--- NEW FILE ---
/*
* drivers/mtd/nand/spia.c
*
* Copyright (C) 2000 Steven J. Hill (sj...@co...)
*
* $Id: spia.c,v 1.1 2002/04/10 14:57:59 atp Exp $
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* Overview:
* This is a device driver for the NAND flash device found on the
* SPIA board which utilizes the Toshiba TC58V64AFT part. This is
* a 64Mibit (8MiB x 8 bits) NAND flash device.
*/
#include <linux/slab.h>
#include <linux/module.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/nand.h>
#include <linux/mtd/partitions.h>
#include <asm/io.h>
/*
* MTD structure for SPIA board
*/
static struct mtd_info *spia_mtd = NULL;
/*
* Values specific to the SPIA board (used with EP7212 processor)
*/
#define SPIA_IO_ADDR = 0xd0000000 /* Start of EP7212 IO address space */
#define SPIA_FIO_ADDR = 0xf0000000 /* Address where flash is mapped */
#define SPIA_PEDR = 0x0080 /*
* IO offset to Port E data register
* where the CLE, ALE and NCE pins
* are wired to.
*/
#define SPIA_PEDDR = 0x00c0 /*
* IO offset to Port E data direction
* register so we can control the IO
* lines.
*/
/*
* Module stuff
*/
static int spia_io_base = SPIA_IO_BASE;
static int spia_fio_base = SPIA_FIO_BASE;
static int spia_pedr = SPIA_PEDR;
static int spia_peddr = SPIA_PEDDR;
MODULE_PARM(spia_io_base, "i");
MODULE_PARM(spia_fio_base, "i");
MODULE_PARM(spia_pedr, "i");
MODULE_PARM(spia_peddr, "i");
__setup("spia_io_base=",spia_io_base);
__setup("spia_fio_base=",spia_fio_base);
__setup("spia_pedr=",spia_pedr);
__setup("spia_peddr=",spia_peddr);
/*
* Define partitions for flash device
*/
const static struct mtd_partition partition_info[] = {
{ name: "SPIA flash partition 1",
offset: 0,
size: 2*1024*1024 },
{ name: "SPIA flash partition 2",
offset: 2*1024*1024,
size: 6*1024*1024 }
};
#define NUM_PARTITIONS 2
/*
* Main initialization routine
*/
int __init spia_init (void)
{
struct nand_chip *this;
/* Allocate memory for MTD device structure and private data */
spia_mtd = kmalloc (sizeof(struct mtd_info) + sizeof (struct nand_chip),
GFP_KERNEL);
if (!spia_mtd) {
printk ("Unable to allocate SPIA NAND MTD device structure.\n");
return -ENOMEM;
}
/* Get pointer to private data */
this = (struct nand_chip *) (&spia_mtd[1]);
/* Initialize structures */
memset((char *) spia_mtd, 0, sizeof(struct mtd_info));
memset((char *) this, 0, sizeof(struct nand_chip));
/* Link the private data with the MTD structure */
spia_mtd->priv = this;
/*
* Set GPIO Port E control register so that the pins are configured
* to be outputs for controlling the NAND flash.
*/
(*(volatile unsigned char *) (spia_io_base + spia_peddr)) = 0x07;
/* Set address of NAND IO lines */
this->IO_ADDR = spia_fio_base;
this->CTRL_ADDR = spia_io_base + spia_pedr;
this->CLE = 0x01;
this->ALE = 0x02;
this->NCE = 0x04;
/* Scan to find existance of the device */
if (nand_scan (spia_mtd)) {
kfree (spia_mtd);
return -ENXIO;
}
/* Allocate memory for internal data buffer */
this->data_buf = kmalloc (sizeof(u_char) * (spia_mtd->oobblock + spia_mtd->oobsize), GFP_KERNEL);
if (!this->data_buf) {
printk ("Unable to allocate NAND data buffer for SPIA.\n");
kfree (spia_mtd);
return -ENOMEM;
}
/* Register the partitions */
add_mtd_partitions(spia_mtd, partition_info, NUM_PARTITIONS);
/* Return happy */
return 0;
}
module_init(spia_init);
/*
* Clean up routine
*/
#ifdef MODULE
static void __exit spia_cleanup (void)
{
struct nand_chip *this = (struct nand_chip *) &spia_mtd[1];
/* Unregister the device */
del_mtd_device (spia_mtd);
/* Free internal data buffer */
kfree (this->data_buf);
/* Free the MTD device structure */
kfree (spia_mtd);
}
module_exit(spia_cleanup);
#endif
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Steven J. Hill <sj...@co...");
MODULE_DESCRIPTION("Board-specific glue layer for NAND flash on SPIA board");
|
|
From: Andy P. <at...@us...> - 2002-04-10 19:00:34
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/sparc/math-emu In directory usw-pr-cvs1:/tmp/cvs-serv31330/sparc/math-emu Modified Files: ashldi3.S Log Message: synch 2.4.15 commit 45 Index: ashldi3.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/math-emu/ashldi3.S,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 |
|
From: Andy P. <at...@us...> - 2002-04-10 19:00:26
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/mips64/lib
In directory usw-pr-cvs1:/tmp/cvs-serv18937/mips64/lib
Modified Files:
csum_partial.S csum_partial_copy.c dump_tlb.c floppy-no.c
ide-no.c ide-std.c kbd-no.c kbd-std.c memcpy.S memset.S
rtc-no.c rtc-std.c strlen_user.S strncpy_user.S strnlen_user.S
watch.S
Log Message:
synch 2.4.15 commit 38
Index: csum_partial.S
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/lib/csum_partial.S,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- csum_partial.S 14 Jan 2001 19:54:10 -0000 1.1.1.1
+++ csum_partial.S 10 Apr 2002 14:43:20 -0000 1.2
@@ -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.
Index: csum_partial_copy.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/lib/csum_partial_copy.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- csum_partial_copy.c 14 Jan 2001 19:54:10 -0000 1.1.1.1
+++ csum_partial_copy.c 10 Apr 2002 14:43:20 -0000 1.2
@@ -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.
Index: dump_tlb.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/lib/dump_tlb.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- dump_tlb.c 14 Jan 2001 19:54:11 -0000 1.1.1.1
+++ dump_tlb.c 10 Apr 2002 14:43:20 -0000 1.2
@@ -168,14 +168,12 @@
printk("\n");
}
-void
-dump_list_current(void *address)
+void dump_list_current(void *address)
{
dump_list_process(current, address);
}
-unsigned int
-vtop(void *address)
+unsigned int vtop(void *address)
{
pgd_t *pgd;
pmd_t *pmd;
@@ -192,16 +190,17 @@
return paddr;
}
-void
-dump16(unsigned long *p)
+void dump16(unsigned long *p)
{
int i;
for(i=0;i<8;i++)
{
printk("*%08lx == %08lx, ",
- (unsigned long)p, (unsigned long)*p++);
+ (unsigned long)p, (unsigned long)*p);
+ p++;
printk("*%08lx == %08lx\n",
- (unsigned long)p, (unsigned long)*p++);
+ (unsigned long)p, (unsigned long)*p);
+ p++;
}
}
Index: floppy-no.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/lib/floppy-no.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- floppy-no.c 14 Jan 2001 19:54:11 -0000 1.1.1.1
+++ floppy-no.c 10 Apr 2002 14:43:20 -0000 1.2
@@ -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.
Index: ide-no.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/lib/ide-no.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- ide-no.c 14 Jan 2001 19:54:12 -0000 1.1.1.1
+++ ide-no.c 10 Apr 2002 14:43:20 -0000 1.2
@@ -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.
Index: ide-std.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/lib/ide-std.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- ide-std.c 14 Jan 2001 19:54:12 -0000 1.1.1.1
+++ ide-std.c 10 Apr 2002 14:43:20 -0000 1.2
@@ -1,12 +1,11 @@
-/* $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.
*
* IDE routines for typical pc-like standard configurations.
*
- * Copyright (C) 1998, 1999 by Ralf Baechle
+ * Copyright (C) 1998, 1999, 2001 by Ralf Baechle
*/
#include <linux/sched.h>
#include <linux/ide.h>
@@ -60,6 +59,7 @@
}
if (irq != NULL)
*irq = 0;
+ hw->io_ports[IDE_IRQ_OFFSET] = 0;
}
static int std_ide_request_irq(unsigned int irq,
Index: kbd-no.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/lib/kbd-no.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- kbd-no.c 14 Jan 2001 19:54:13 -0000 1.1.1.1
+++ kbd-no.c 10 Apr 2002 14:43:20 -0000 1.2
@@ -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.
Index: kbd-std.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/lib/kbd-std.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- kbd-std.c 14 Jan 2001 19:54:13 -0000 1.1.1.1
+++ kbd-std.c 10 Apr 2002 14:43:20 -0000 1.2
@@ -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.
Index: memcpy.S
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/lib/memcpy.S,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- memcpy.S 14 Jan 2001 19:54:15 -0000 1.1.1.1
+++ memcpy.S 10 Apr 2002 14:43:20 -0000 1.2
@@ -5,7 +5,7 @@
*
* Unified implementation of memcpy, memmove and the __copy_user backend.
*
- * Copyright (C) 1998, 1999, 2000 Ralf Baechle
+ * Copyright (C) 1998, 1999, 2000, 2001 Ralf Baechle
* Copyright (C) 1999, 2000 Silicon Graphics, Inc.
*
* For __rmemcpy and memmove an exception is always a kernel bug, therefore
@@ -238,8 +238,8 @@
andi ta2, a2, 0x40
move_128bytes:
- pref 0, 2*128(a0)
- pref 1, 2*128(a1)
+ PREF (0, 2*128(a0))
+ PREF (1, 2*128(a1))
MOVE_BIGGERCHUNK(a1, a0, 0x00, ta0, ta1, ta3, t0)
MOVE_BIGGERCHUNK(a1, a0, 0x40, ta0, ta1, ta3, t0)
dsubu t8, t8, 0x01
@@ -452,16 +452,21 @@
.align 5
LEAF(memmove)
- sltu ta0, a0, a1 # dst < src -> memcpy
- bnez ta0, memcpy
- daddu v0, a0, a2
- sltu ta0, v0, a1 # dst + len < src -> non-
- bnez ta0, __memcpy # overlapping, can use memcpy
+ daddu t0, a0, a2
+ sltu t0, a1, t0 # dst + len <= src -> memcpy
+ daddu t1, a1, a2
+ sltu t1, a0, t1 # dst >= src + len -> memcpy
+ and t0, t1
+ beqz t0, __memcpy
+
move v0, a0 /* return value */
beqz a2, r_out
END(memmove)
LEAF(__rmemcpy) /* a0=dst a1=src a2=len */
+ sltu t0, a1, a0
+ beqz t0, r_end_bytes_up # src >= dst
+ nop
daddu a0, a2 # dst = dst + len
daddu a1, a2 # src = src + len
@@ -613,6 +618,17 @@
dsubu a0, a0, 0x1
r_out:
+ jr ra
+ move a2, zero
+
+r_end_bytes_up:
+ lb t0, (a1)
+ dsubu a2, a2, 0x1
+ sb t0, (a0)
+ daddu a1, a1, 0x1
+ bnez a2, r_end_bytes_up
+ daddu a0, a0, 0x1
+
jr ra
move a2, zero
Index: memset.S
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/lib/memset.S,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- memset.S 14 Jan 2001 19:54:15 -0000 1.1.1.1
+++ memset.S 10 Apr 2002 14:43:20 -0000 1.2
@@ -52,6 +52,7 @@
1:
FEXPORT(__bzero)
+ .type __bzero, @function
sltiu t0, a2, 8 /* very small region? */
bnez t0, small_memset
andi t0, a0, 7 /* aligned? */
Index: rtc-no.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/lib/rtc-no.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- rtc-no.c 25 Feb 2001 23:15:22 -0000 1.1.1.2
+++ rtc-no.c 10 Apr 2002 14:43:20 -0000 1.2
@@ -9,7 +9,6 @@
* Copyright (C) 1998, 2001 by Ralf Baechle
*/
#include <linux/kernel.h>
-#include <linux/spinlock.h>
#include <linux/mc146818rtc.h>
static unsigned char no_rtc_read_data(unsigned long addr)
Index: rtc-std.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/lib/rtc-std.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- rtc-std.c 25 Feb 2001 23:15:22 -0000 1.1.1.2
+++ rtc-std.c 10 Apr 2002 14:43:20 -0000 1.2
@@ -7,7 +7,6 @@
*
* Copyright (C) 1998 by Ralf Baechle
*/
-#include <linux/spinlock.h>
#include <linux/mc146818rtc.h>
#include <asm/io.h>
Index: strlen_user.S
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/lib/strlen_user.S,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- strlen_user.S 14 Jan 2001 19:54:16 -0000 1.1.1.1
+++ strlen_user.S 10 Apr 2002 14:43:20 -0000 1.2
@@ -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.
Index: strncpy_user.S
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/lib/strncpy_user.S,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- strncpy_user.S 14 Jan 2001 19:54:16 -0000 1.1.1.1
+++ strncpy_user.S 10 Apr 2002 14:43:20 -0000 1.2
@@ -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.
Index: strnlen_user.S
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/lib/strnlen_user.S,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- strnlen_user.S 14 Jan 2001 19:54:16 -0000 1.1.1.1
+++ strnlen_user.S 10 Apr 2002 14:43:20 -0000 1.2
@@ -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.
Index: watch.S
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/lib/watch.S,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- watch.S 14 Jan 2001 19:54:16 -0000 1.1.1.1
+++ watch.S 10 Apr 2002 14:43:20 -0000 1.2
@@ -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.
@@ -7,7 +6,7 @@
* Kernel debug stuff to use the Watch registers.
* Useful to find stack overflows, dangling pointers etc.
*
- * Copyright (C) 1995, 1996, 1999 by Ralf Baechle
+ * Copyright (C) 1995, 1996, 1999, 2001 by Ralf Baechle
*/
#include <asm/asm.h>
#include <asm/mipsregs.h>
@@ -15,23 +14,21 @@
.set noreorder
/*
- * Parameter: a0 - logic address to watch
- * Currently only KSEG0 addresses are allowed!
+ * Parameter: a0 - physical address to watch
* a1 - set bit #1 to trap on load references
* bit #0 to trap on store references
* Results : none
*/
LEAF(__watch_set)
- li t0,0x80000000
- subu a0,t0
- ori a0,7
- xori a0,7
- or a0,a1
- mtc0 a0,CP0_WATCHLO
- sw a0,watch_savelo
+ ori a0, 7
+ xori a0, 7
+ or a0, a1
+ mtc0 a0, CP0_WATCHLO
+ sd a0, watch_savelo
+ dsrl32 a0, a0, 0
jr ra
- mtc0 zero,CP0_WATCHHI
+ mtc0 zero, CP0_WATCHHI
END(__watch_set)
/*
@@ -40,7 +37,7 @@
*/
LEAF(__watch_clear)
jr ra
- mtc0 zero,CP0_WATCHLO
+ mtc0 zero, CP0_WATCHLO
END(__watch_clear)
/*
@@ -48,14 +45,13 @@
* Results : none
*/
LEAF(__watch_reenable)
- lw t0,watch_savelo
+ ld t0, watch_savelo
jr ra
- mtc0 t0,CP0_WATCHLO
+ mtc0 t0, CP0_WATCHLO
END(__watch_reenable)
/*
* Saved value of the c0_watchlo register for watch_reenable()
*/
- .data
-watch_savelo: .word 0
- .text
+ .local watch_savelo
+ .comm watch_savelo, 8, 8
|
|
From: Andy P. <at...@us...> - 2002-04-10 18:40:57
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/s390/math-emu
In directory usw-pr-cvs1:/tmp/cvs-serv28245/s390/math-emu
Added Files:
Makefile math.c qrnnd.S sfp-util.h
Log Message:
synch 2.4.15 commit 43
--- NEW FILE ---
#
# Makefile for the FPU instruction emulation.
#
O_TARGET := math-emu.o
obj-$(CONFIG_MATHEMU) := math.o qrnnd.o
EXTRA_CFLAGS = -I. -I$(TOPDIR)/include/math-emu -w
include $(TOPDIR)/Rules.make
--- NEW FILE ---
/*
* arch/s390/math-emu/math.c
*
* S390 version
* Copyright (C) 1999-2001 IBM Deutschland Entwicklung GmbH, IBM Corporation
* Author(s): Martin Schwidefsky (sch...@de...),
*
* 'math.c' emulates IEEE instructions on a S390 processor
* that does not have the IEEE fpu (all processors before G5).
*/
#include <linux/config.h>
#include <linux/types.h>
#include <linux/sched.h>
#include <linux/mm.h>
#include <asm/uaccess.h>
#include "sfp-util.h"
#include <math-emu/soft-fp.h>
[...2192 lines suppressed...]
/* broken compiler ... */
long long
__negdi2 (long long u)
{
union lll {
long long ll;
long s[2];
};
union lll w,uu;
uu.ll = u;
w.s[1] = -uu.s[1];
w.s[0] = -uu.s[0] - ((int) w.s[1] != 0);
return w.ll;
}
--- NEW FILE ---
# S/390 __udiv_qrnnd
# r2 : &__r
# r3 : upper half of 64 bit word n
# r4 : lower half of 64 bit word n
# r5 : divisor d
# the reminder r of the division is to be stored to &__r and
# the quotient q is to be returned
.text
.globl __udiv_qrnnd
__udiv_qrnnd:
st %r2,24(%r15) # store pointer to reminder for later
lr %r0,%r3 # reload n
lr %r1,%r4
ltr %r2,%r5 # reload and test divisor
jp 5f
# divisor >= 0x80000000
srdl %r0,2 # n/4
srl %r2,1 # d/2
slr %r1,%r2 # special case if last bit of d is set
brc 3,0f # (n/4) div (n/2) can overflow by 1
ahi %r0,-1 # trick: subtract n/2, then divide
0: dr %r0,%r2 # signed division
ahi %r1,1 # trick part 2: add 1 to the quotient
# now (n >> 2) = (d >> 1) * %r1 + %r0
lhi %r3,1
nr %r3,%r1 # test last bit of q
jz 1f
alr %r0,%r2 # add (d>>1) to r
1: srl %r1,1 # q >>= 1
# now (n >> 2) = (d&-2) * %r1 + %r0
lhi %r3,1
nr %r3,%r5 # test last bit of d
jz 2f
slr %r0,%r1 # r -= q
brc 3,2f # borrow ?
alr %r0,%r5 # r += d
ahi %r1,-1
2: # now (n >> 2) = d * %r1 + %r0
alr %r1,%r1 # q <<= 1
alr %r0,%r0 # r <<= 1
brc 12,3f # overflow on r ?
slr %r0,%r5 # r -= d
ahi %r1,1 # q += 1
3: lhi %r3,2
nr %r3,%r4 # test next to last bit of n
jz 4f
ahi %r0,1 # r += 1
4: clr %r0,%r5 # r >= d ?
jl 6f
slr %r0,%r5 # r -= d
ahi %r1,1 # q += 1
# now (n >> 1) = d * %r1 + %r0
j 6f
5: # divisor < 0x80000000
srdl %r0,1
dr %r0,%r2 # signed division
# now (n >> 1) = d * %r1 + %r0
6: alr %r1,%r1 # q <<= 1
alr %r0,%r0 # r <<= 1
brc 12,7f # overflow on r ?
slr %r0,%r5 # r -= d
ahi %r1,1 # q += 1
7: lhi %r3,1
nr %r3,%r4 # isolate last bit of n
alr %r0,%r3 # r += (n & 1)
clr %r0,%r5 # r >= d ?
jl 8f
slr %r0,%r5 # r -= d
ahi %r1,1 # q += 1
8: # now n = d * %r1 + %r0
l %r2,24(%r15)
st %r0,0(%r2)
lr %r2,%r1
br %r14
.end __udiv_qrnnd
--- NEW FILE ---
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/types.h>
#include <asm/byteorder.h>
#define add_ssaaaa(sh, sl, ah, al, bh, bl) ({ \
unsigned int __sh = (ah); \
unsigned int __sl = (al); \
__asm__ (" alr %1,%3\n" \
" brc 12,0f\n" \
" ahi %0,1\n" \
"0: alr %0,%2" \
: "+&d" (__sh), "+d" (__sl) \
: "d" (bh), "d" (bl) : "cc" ); \
(sh) = __sh; \
(sl) = __sl; \
})
#define sub_ddmmss(sh, sl, ah, al, bh, bl) ({ \
unsigned int __sh = (ah); \
unsigned int __sl = (al); \
__asm__ (" slr %1,%3\n" \
" brc 3,0f\n" \
" ahi %0,-1\n" \
"0: slr %0,%2" \
: "+&d" (__sh), "+d" (__sl) \
: "d" (bh), "d" (bl) : "cc" ); \
(sh) = __sh; \
(sl) = __sl; \
})
/* a umul b = a mul b + (a>=2<<31) ? b<<32:0 + (b>=2<<31) ? a<<32:0 */
#define umul_ppmm(wh, wl, u, v) ({ \
unsigned int __wh = u; \
unsigned int __wl = v; \
__asm__ (" ltr 1,%0\n" \
" mr 0,%1\n" \
" jnm 0f\n" \
" alr 0,%1\n" \
"0: ltr %1,%1\n" \
" jnm 1f\n" \
" alr 0,%0\n" \
"1: lr %0,0\n" \
" lr %1,1\n" \
: "+d" (__wh), "+d" (__wl) \
: : "0", "1", "cc" ); \
wh = __wh; \
wl = __wl; \
})
#define udiv_qrnnd(q, r, n1, n0, d) \
do { unsigned long __r; \
(q) = __udiv_qrnnd (&__r, (n1), (n0), (d)); \
(r) = __r; \
} while (0)
extern unsigned long __udiv_qrnnd (unsigned long *, unsigned long,
unsigned long , unsigned long);
#define UDIV_NEEDS_NORMALIZATION 0
#define abort() return 0
#define __BYTE_ORDER __BIG_ENDIAN
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/arm/mach-integrator
In directory usw-pr-cvs1:/tmp/cvs-serv24336/arm/mach-integrator
Added Files:
Makefile arch.c cpu.c dma.c irq.c leds.c mm.c pci.c pci_v3.c
time.c
Log Message:
synch 2.4.15 commit 32
--- NEW FILE ---
#
# Makefile for the linux kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
USE_STANDARD_AS_RULE := true
O_TARGET := integrator.o
# Object file lists.
obj-y := arch.o cpu.o irq.o mm.o time.o
obj-m :=
obj-n :=
obj- :=
export-objs := leds.o
obj-$(CONFIG_LEDS) += leds.o
obj-$(CONFIG_PCI) += pci_v3.o pci.o
include $(TOPDIR)/Rules.make
--- NEW FILE ---
/*
* linux/arch/arm/mach-integrator/arch.c
*
* Copyright (C) 2000 Deep Blue Solutions Ltd
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <linux/config.h>
#include <linux/types.h>
#include <linux/sched.h>
#include <linux/interrupt.h>
#include <linux/init.h>
#include <asm/hardware.h>
#include <asm/irq.h>
#include <asm/setup.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/mach/amba_kmi.h>
extern void integrator_map_io(void);
extern void integrator_init_irq(void);
#ifdef CONFIG_KMI_KEYB
static struct kmi_info integrator_keyboard __initdata = {
base: IO_ADDRESS(KMI0_BASE),
irq: IRQ_KMIINT0,
divisor: 24 / 8 - 1,
type: KMI_KEYBOARD,
};
static struct kmi_info integrator_mouse __initdata = {
base: IO_ADDRESS(KMI1_BASE),
irq: IRQ_KMIINT1,
divisor: 24 / 8 - 1,
type: KMI_MOUSE,
};
#endif
static void __init
integrator_fixup(struct machine_desc *desc, struct param_struct *unused,
char **cmdline, struct meminfo *mi)
{
#ifdef CONFIG_KMI_KEYB
register_kmi(&integrator_keyboard);
register_kmi(&integrator_mouse);
#endif
}
MACHINE_START(INTEGRATOR, "ARM-Integrator")
MAINTAINER("ARM Ltd/Deep Blue Solutions Ltd")
BOOT_MEM(0x00000000, 0x16000000, 0xf1600000)
BOOT_PARAMS(0x00000100)
FIXUP(integrator_fixup)
MAPIO(integrator_map_io)
INITIRQ(integrator_init_irq)
MACHINE_END
--- NEW FILE ---
/*
* linux/arch/arm/mach-integrator/cpu.c
*
* Copyright (C) 2001 Deep Blue Solutions Ltd.
*
* $Id: cpu.c,v 1.1 2002/04/10 13:51:22 atp Exp $
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* CPU support functions
*/
#include <linux/config.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/cpufreq.h>
#include <linux/init.h>
#include <asm/hardware.h>
#include <asm/io.h>
#define CM_ID (IO_ADDRESS(INTEGRATOR_HDR_BASE)+INTEGRATOR_HDR_ID_OFFSET)
#define CM_OSC (IO_ADDRESS(INTEGRATOR_HDR_BASE)+INTEGRATOR_HDR_OSC_OFFSET)
#define CM_STAT (IO_ADDRESS(INTEGRATOR_HDR_BASE)+INTEGRATOR_HDR_STAT_OFFSET)
#define CM_LOCK (IO_ADDRESS(INTEGRATOR_HDR_BASE)+INTEGRATOR_HDR_LOCK_OFFSET)
struct vco {
unsigned char vdw;
unsigned char od;
};
/*
* Divisors for each OD setting.
*/
static unsigned char cc_divisor[8] = { 10, 2, 8, 4, 5, 7, 9, 6 };
static unsigned int vco_to_freq(struct vco vco, int factor)
{
return 2000 * (vco.vdw + 8) / cc_divisor[vco.od] / factor;
}
#ifdef CONFIG_CPU_FREQ
/*
* Divisor indexes for in ascending divisor order
*/
static unsigned char s2od[] = { 1, 3, 4, 7, 5, 2, 6, 0 };
static struct vco freq_to_vco(unsigned int freq_khz, int factor)
{
struct vco vco = {0, 0};
unsigned int i, f;
freq_khz *= factor;
for (i = 0; i < 8; i++) {
f = freq_khz * cc_divisor[s2od[i]];
/* f must be between 10MHz and 320MHz */
if (f > 10000 && f <= 320000)
break;
}
vco.od = s2od[i];
vco.vdw = f / 2000 - 8;
return vco;
}
/*
* Validate the speed in khz. If it is outside our
* range, then return the lowest.
*/
unsigned int integrator_validatespeed(unsigned int freq_khz)
{
struct vco vco;
if (freq_khz < 12000)
freq_khz = 12000;
if (freq_khz > 160000)
freq_khz = 160000;
vco = freq_to_vco(freq_khz, 1);
if (vco.vdw < 4 || vco.vdw > 152)
return -EINVAL;
return vco_to_freq(vco, 1);
}
void integrator_setspeed(unsigned int freq_khz)
{
struct vco vco = freq_to_vco(freq_khz, 1);
u_int cm_osc;
cm_osc = __raw_readl(CM_OSC);
cm_osc &= 0xfffff800;
cm_osc |= vco.vdw | vco.od << 8;
__raw_writel(0xa05f, CM_LOCK);
__raw_writel(cm_osc, CM_OSC);
__raw_writel(0, CM_LOCK);
}
#endif
static int __init cpu_init(void)
{
u_int cm_osc, cm_stat, cpu_freq_khz, mem_freq_khz;
struct vco vco;
cm_osc = __raw_readl(CM_OSC);
vco.od = (cm_osc >> 20) & 7;
vco.vdw = (cm_osc >> 12) & 255;
mem_freq_khz = vco_to_freq(vco, 2);
printk(KERN_INFO "Memory clock = %d.%03d MHz\n",
mem_freq_khz / 1000, mem_freq_khz % 1000);
vco.od = (cm_osc >> 8) & 7;
vco.vdw = cm_osc & 255;
cpu_freq_khz = vco_to_freq(vco, 1);
#ifdef CONFIG_CPU_FREQ
cpufreq_init(cpu_freq_khz);
cpufreq_setfunctions(integrator_validatespeed, integrator_setspeed);
#endif
cm_stat = __raw_readl(CM_STAT);
printk("Module id: %d\n", cm_stat & 255);
return 0;
}
__initcall(cpu_init);
--- NEW FILE ---
/*
* linux/arch/arm/mach-integrator/dma.c
*
* Copyright (C) 1999 ARM Limited
* Copyright (C) 2000 Deep Blue Solutions Ltd
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <linux/sched.h>
#include <linux/slab.h>
#include <linux/mman.h>
#include <linux/init.h>
#include <asm/page.h>
#include <asm/pgtable.h>
#include <asm/dma.h>
#include <asm/io.h>
#include <asm/hardware.h>
#include <asm/mach/dma.h>
void __init arch_dma_init(dma_t *dma)
{
}
--- NEW FILE ---
/*
* linux/arch/arm/mach-integrator/irq.c
*
* Copyright (C) 1999 ARM Limited
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <linux/init.h>
#include <asm/hardware.h>
#include <asm/irq.h>
#include <asm/io.h>
#include <asm/mach/irq.h>
/*
* All IO addresses are mapped onto VA 0xFFFx.xxxx, where x.xxxx
* is the (PA >> 12).
*
* Setup a VA for the Integrator interrupt controller (for header #0,
* just for now).
*/
#define VA_IC_BASE IO_ADDRESS(INTEGRATOR_IC_BASE)
#define VA_CMIC_BASE IO_ADDRESS(INTEGRATOR_HDR_BASE) + INTEGRATOR_HDR_IC_OFFSET
#define ALLPCI ( (1 << IRQ_PCIINT0) | (1 << IRQ_PCIINT1) | (1 << IRQ_PCIINT2) | (1 << IRQ_PCIINT3) )
static void sc_mask_irq(unsigned int irq)
{
__raw_writel(1 << irq, VA_IC_BASE + IRQ_ENABLE_CLEAR);
}
static void sc_unmask_irq(unsigned int irq)
{
__raw_writel(1 << irq, VA_IC_BASE + IRQ_ENABLE_SET);
}
void __init integrator_init_irq(void)
{
unsigned int i;
for (i = 0; i < NR_IRQS; i++) {
if (((1 << i) && INTEGRATOR_SC_VALID_INT) != 0) {
irq_desc[i].valid = 1;
irq_desc[i].probe_ok = 1;
irq_desc[i].mask_ack = sc_mask_irq;
irq_desc[i].mask = sc_mask_irq;
irq_desc[i].unmask = sc_unmask_irq;
}
}
/* Disable all interrupts initially. */
/* Do the core module ones */
__raw_writel(-1, VA_CMIC_BASE + IRQ_ENABLE_CLEAR);
/* do the header card stuff next */
__raw_writel(-1, VA_IC_BASE + IRQ_ENABLE_CLEAR);
__raw_writel(-1, VA_IC_BASE + FIQ_ENABLE_CLEAR);
}
--- NEW FILE ---
/*
* linux/arch/arm/mach-integrator/leds.c
*
* Integrator LED control routines
*
* Copyright (C) 1999 ARM Limited
* Copyright (C) 2000 Deep Blue Solutions Ltd
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <linux/kernel.h>
#include <linux/init.h>
#include <asm/hardware.h>
#include <asm/io.h>
#include <asm/leds.h>
#include <asm/system.h>
#include <asm/mach-types.h>
static int saved_leds;
static void integrator_leds_event(led_event_t ledevt)
{
unsigned long flags;
const unsigned int dbg_base = IO_ADDRESS(INTEGRATOR_DBG_BASE);
const unsigned int hdr_ctrl = IO_ADDRESS(INTEGRATOR_HDR_BASE) +
INTEGRATOR_HDR_CTRL_OFFSET;
unsigned int ctrl;
unsigned int update_alpha_leds;
// yup, change the LEDs
local_irq_save(flags);
update_alpha_leds = 0;
switch(ledevt) {
case led_idle_start:
ctrl = __raw_readl(hdr_ctrl);
ctrl &= ~INTEGRATOR_HDR_CTRL_LED;
__raw_writel(ctrl, hdr_ctrl);
break;
case led_idle_end:
ctrl = __raw_readl(hdr_ctrl);
ctrl |= INTEGRATOR_HDR_CTRL_LED;
__raw_writel(ctrl, hdr_ctrl);
break;
case led_timer:
saved_leds ^= GREEN_LED;
update_alpha_leds = 1;
break;
case led_red_on:
saved_leds |= RED_LED;
update_alpha_leds = 1;
break;
case led_red_off:
saved_leds &= ~RED_LED;
update_alpha_leds = 1;
break;
default:
break;
}
if (update_alpha_leds) {
while (__raw_readl(dbg_base + INTEGRATOR_DBG_ALPHA_OFFSET) & 1);
__raw_writel(saved_leds, dbg_base + INTEGRATOR_DBG_LEDS_OFFSET);
}
local_irq_restore(flags);
}
static int __init leds_init(void)
{
if (machine_is_integrator())
leds_event = integrator_leds_event;
return 0;
}
__initcall(leds_init);
--- NEW FILE ---
/*
* linux/arch/arm/mach-integrator/mm.c
*
* Extra MM routines for the ARM Integrator board
*
* Copyright (C) 1999,2000 Arm Limited
* Copyright (C) 2000 Deep Blue Solutions Ltd
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <linux/sched.h>
#include <linux/mm.h>
#include <linux/init.h>
#include <asm/hardware.h>
#include <asm/io.h>
#include <asm/pgtable.h>
#include <asm/page.h>
#include <asm/mach/map.h>
/*
* Logical Physical
* e8000000 40000000 PCI memory
* ec000000 62000000 PCI config space
* ed000000 61000000 PCI V3 regs
* ee000000 60000000 PCI IO
* ef000000 Cache flush
* f1000000 10000000 Core module registers
* f1100000 11000000 System controller registers
* f1200000 12000000 EBI registers
* f1300000 13000000 Counter/Timer
* f1400000 14000000 Interrupt controller
* f1500000 15000000 RTC
* f1600000 16000000 UART 0
* f1700000 17000000 UART 1
* f1800000 18000000 Keyboard
* f1900000 19000000 Mouse
* f1a00000 1a000000 Debug LEDs
* f1b00000 1b000000 GPIO
*/
static struct map_desc integrator_io_desc[] __initdata = {
{ IO_ADDRESS(INTEGRATOR_HDR_BASE), INTEGRATOR_HDR_BASE, SZ_4K , DOMAIN_IO, 0, 1},
{ IO_ADDRESS(INTEGRATOR_SC_BASE), INTEGRATOR_SC_BASE, SZ_4K , DOMAIN_IO, 0, 1},
{ IO_ADDRESS(INTEGRATOR_EBI_BASE), INTEGRATOR_EBI_BASE, SZ_4K , DOMAIN_IO, 0, 1},
{ IO_ADDRESS(INTEGRATOR_CT_BASE), INTEGRATOR_CT_BASE, SZ_4K , DOMAIN_IO, 0, 1},
{ IO_ADDRESS(INTEGRATOR_IC_BASE), INTEGRATOR_IC_BASE, SZ_4K , DOMAIN_IO, 0, 1},
{ IO_ADDRESS(INTEGRATOR_RTC_BASE), INTEGRATOR_RTC_BASE, SZ_4K , DOMAIN_IO, 0, 1},
{ IO_ADDRESS(INTEGRATOR_UART0_BASE), INTEGRATOR_UART0_BASE, SZ_4K , DOMAIN_IO, 0, 1},
{ IO_ADDRESS(INTEGRATOR_UART1_BASE), INTEGRATOR_UART1_BASE, SZ_4K , DOMAIN_IO, 0, 1},
{ IO_ADDRESS(INTEGRATOR_KBD_BASE), INTEGRATOR_KBD_BASE, SZ_4K , DOMAIN_IO, 0, 1},
{ IO_ADDRESS(INTEGRATOR_MOUSE_BASE), INTEGRATOR_MOUSE_BASE, SZ_4K , DOMAIN_IO, 0, 1},
{ IO_ADDRESS(INTEGRATOR_DBG_BASE), INTEGRATOR_DBG_BASE, SZ_4K , DOMAIN_IO, 0, 1},
{ IO_ADDRESS(INTEGRATOR_GPIO_BASE), INTEGRATOR_GPIO_BASE, SZ_4K , DOMAIN_IO, 0, 1},
{ PCI_MEMORY_VADDR, PHYS_PCI_MEM_BASE, SZ_16M , DOMAIN_IO, 0, 1},
{ PCI_CONFIG_VADDR, PHYS_PCI_CONFIG_BASE, SZ_16M , DOMAIN_IO, 0, 1},
{ PCI_V3_VADDR, PHYS_PCI_V3_BASE, SZ_512K , DOMAIN_IO, 0, 1},
{ PCI_IO_VADDR, PHYS_PCI_IO_BASE, SZ_64K , DOMAIN_IO, 0, 1},
LAST_DESC
};
void __init integrator_map_io(void)
{
iotable_init(integrator_io_desc);
}
--- NEW FILE ---
/*
* linux/arch/arm/mach-integrator/pci-integrator.c
*
* Copyright (C) 1999 ARM Limited
* Copyright (C) 2000 Deep Blue Solutions Ltd
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*
* PCI functions for Integrator
*/
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/pci.h>
#include <linux/ptrace.h>
#include <linux/interrupt.h>
#include <linux/init.h>
#include <asm/irq.h>
#include <asm/system.h>
#include <asm/mach/pci.h>
/*
* A small note about bridges and interrupts. The DECchip 21050 (and
* later) adheres to the PCI-PCI bridge specification. This says that
* the interrupts on the other side of a bridge are swizzled in the
* following manner:
*
* Dev Interrupt Interrupt
* Pin on Pin on
* Device Connector
*
* 4 A A
* B B
* C C
* D D
*
* 5 A B
* B C
* C D
* D A
*
* 6 A C
* B D
* C A
* D B
*
* 7 A D
* B A
* C B
* D C
*
* Where A = pin 1, B = pin 2 and so on and pin=0 = default = A.
* Thus, each swizzle is ((pin-1) + (device#-4)) % 4
*
* The following code swizzles for exactly one bridge.
*/
static inline int bridge_swizzle(int pin, unsigned int slot)
{
return (pin + slot) & 3;
}
/*
* This routine handles multiple bridges.
*/
static u8 __init integrator_swizzle(struct pci_dev *dev, u8 *pinp)
{
int pin = *pinp;
if (pin == 0)
pin = 1;
pin -= 1;
while (dev->bus->self) {
pin = bridge_swizzle(pin, PCI_SLOT(dev->devfn));
/*
* move up the chain of bridges, swizzling as we go.
*/
dev = dev->bus->self;
}
*pinp = pin + 1;
return PCI_SLOT(dev->devfn);
}
static int irq_tab[4] __initdata = {
IRQ_PCIINT0, IRQ_PCIINT1, IRQ_PCIINT2, IRQ_PCIINT3
};
/*
* map the specified device/slot/pin to an IRQ. This works out such
* that slot 9 pin 1 is INT0, pin 2 is INT1, and slot 10 pin 1 is INT1.
*/
static int __init integrator_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
{
int intnr = ((slot - 9) + (pin - 1)) & 3;
return irq_tab[intnr];
}
extern void pci_v3_setup_resources(struct resource **res);
extern void pci_v3_init(void *);
struct hw_pci integrator_pci __initdata = {
setup_resources: pci_v3_setup_resources,
init: pci_v3_init,
mem_offset: 0x40000000,
swizzle: integrator_swizzle,
map_irq: integrator_map_irq,
};
--- NEW FILE ---
/*
* linux/arch/arm/mach-integrator/pci_v3.c
*
* PCI functions for V3 host PCI bridge
*
* Copyright (C) 1999 ARM Limited
* Copyright (C) 2000-2001 Deep Blue Solutions Ltd
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/pci.h>
#include <linux/ptrace.h>
#include <linux/slab.h>
#include <linux/ioport.h>
#include <linux/interrupt.h>
#include <linux/spinlock.h>
#include <linux/init.h>
#include <asm/hardware.h>
#include <asm/irq.h>
#include <asm/system.h>
#include <asm/mach/pci.h>
#include <asm/hardware/pci_v3.h>
/*
* The V3 PCI interface chip in Integrator provides several windows from
* local bus memory into the PCI memory areas. Unfortunately, there
* are not really enough windows for our usage, therefore we reuse
* one of the windows for access to PCI configuration space. The
* memory map is as follows:
*
* Local Bus Memory Usage
*
* 40000000 - 4FFFFFFF PCI memory. 256M non-prefetchable
* 50000000 - 5FFFFFFF PCI memory. 256M prefetchable
* 60000000 - 60FFFFFF PCI IO. 16M
* 68000000 - 68FFFFFF PCI Configuration. 16M
*
* There are three V3 windows, each described by a pair of V3 registers.
* These are LB_BASE0/LB_MAP0, LB_BASE1/LB_MAP1 and LB_BASE2/LB_MAP2.
* Base0 and Base1 can be used for any type of PCI memory access. Base2
* can be used either for PCI I/O or for I20 accesses. By default, uHAL
* uses this only for PCI IO space.
*
* PCI Memory is mapped so that assigned addresses in PCI Memory match
* local bus memory addresses. In other words, if a PCI device is assigned
* address 80200000 then that address is a valid local bus address as well
* as a valid PCI Memory address. PCI IO addresses are mapped to start
* at zero. This means that local bus address 60000000 maps to PCI IO address
* 00000000 and so on. Device driver writers need to be aware of this
* distinction.
*
* Normally these spaces are mapped using the following base registers:
*
* Usage Local Bus Memory Base/Map registers used
*
* Mem 40000000 - 4FFFFFFF LB_BASE0/LB_MAP0
* Mem 50000000 - 5FFFFFFF LB_BASE1/LB_MAP1
* IO 60000000 - 60FFFFFF LB_BASE2/LB_MAP2
* Cfg 68000000 - 68FFFFFF
*
* This means that I20 and PCI configuration space accesses will fail.
* When PCI configuration accesses are needed (via the uHAL PCI
* configuration space primitives) we must remap the spaces as follows:
*
* Usage Local Bus Memory Base/Map registers used
*
* Mem 40000000 - 4FFFFFFF LB_BASE0/LB_MAP0
* Mem 50000000 - 5FFFFFFF LB_BASE0/LB_MAP0
* IO 60000000 - 60FFFFFF LB_BASE2/LB_MAP2
* Cfg 68000000 - 68FFFFFF LB_BASE1/LB_MAP1
*
* To make this work, the code depends on overlapping windows working.
* The V3 chip translates an address by checking its range within
* each of the BASE/MAP pairs in turn (in ascending register number
* order). It will use the first matching pair. So, for example,
* if the same address is mapped by both LB_BASE0/LB_MAP0 and
* LB_BASE1/LB_MAP1, the V3 will use the translation from
* LB_BASE0/LB_MAP0.
*
* To allow PCI Configuration space access, the code enlarges the
* window mapped by LB_BASE0/LB_MAP0 from 256M to 512M. This occludes
* the windows currently mapped by LB_BASE1/LB_MAP1 so that it can
* be remapped for use by configuration cycles.
*
* At the end of the PCI Configuration space accesses,
* LB_BASE1/LB_MAP1 is reset to map PCI Memory. Finally the window
* mapped by LB_BASE0/LB_MAP0 is reduced in size from 512M to 256M to
* reveal the now restored LB_BASE1/LB_MAP1 window.
*
* NOTE: We do not set up I2O mapping. I suspect that this is only
* for an intelligent (target) device. Using I2O disables most of
* the mappings into PCI memory.
*/
// V3 access routines
#define v3_writeb(o,v) __raw_writeb(v, PCI_V3_VADDR + (unsigned int)(o))
#define v3_readb(o) (__raw_readb(PCI_V3_VADDR + (unsigned int)(o)))
#define v3_writew(o,v) __raw_writew(v, PCI_V3_VADDR + (unsigned int)(o))
#define v3_readw(o) (__raw_readw(PCI_V3_VADDR + (unsigned int)(o)))
#define v3_writel(o,v) __raw_writel(v, PCI_V3_VADDR + (unsigned int)(o))
#define v3_readl(o) (__raw_readl(PCI_V3_VADDR + (unsigned int)(o)))
/*============================================================================
*
* routine: uHALir_PCIMakeConfigAddress()
*
* parameters: bus = which bus
* device = which device
* function = which function
* offset = configuration space register we are interested in
*
* description: this routine will generate a platform dependant config
* address.
*
* calls: none
*
* returns: configuration address to play on the PCI bus
*
* To generate the appropriate PCI configuration cycles in the PCI
* configuration address space, you present the V3 with the following pattern
* (which is very nearly a type 1 (except that the lower two bits are 00 and
* not 01). In order for this mapping to work you need to set up one of
* the local to PCI aperatures to 16Mbytes in length translating to
* PCI configuration space starting at 0x0000.0000.
*
* PCI configuration cycles look like this:
*
* Type 0:
*
* 3 3|3 3 2 2|2 2 2 2|2 2 2 2|1 1 1 1|1 1 1 1|1 1
* 3 2|1 0 9 8|7 6 5 4|3 2 1 0|9 8 7 6|5 4 3 2|1 0 9 8|7 6 5 4|3 2 1 0
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | | |D|D|D|D|D|D|D|D|D|D|D|D|D|D|D|D|D|D|D|D|D|F|F|F|R|R|R|R|R|R|0|0|
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
*
* 31:11 Device select bit.
* 10:8 Function number
* 7:2 Register number
*
* Type 1:
*
* 3 3|3 3 2 2|2 2 2 2|2 2 2 2|1 1 1 1|1 1 1 1|1 1
* 3 2|1 0 9 8|7 6 5 4|3 2 1 0|9 8 7 6|5 4 3 2|1 0 9 8|7 6 5 4|3 2 1 0
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | | | | | | | | | | |B|B|B|B|B|B|B|B|D|D|D|D|D|F|F|F|R|R|R|R|R|R|0|1|
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
*
* 31:24 reserved
* 23:16 bus number (8 bits = 128 possible buses)
* 15:11 Device number (5 bits)
* 10:8 function number
* 7:2 register number
*
*/
static spinlock_t v3_lock = SPIN_LOCK_UNLOCKED;
#define PCI_BUS_NONMEM_START 0x00000000
#define PCI_BUS_NONMEM_SIZE 0x10000000
#define PCI_BUS_PREMEM_START 0x10000000
#define PCI_BUS_PREMEM_SIZE 0x10000000
#if PCI_BUS_NONMEM_START & 0x000fffff
#error PCI_BUS_NONMEM_START must be megabyte aligned
#endif
#if PCI_BUS_PREMEM_START & 0x000fffff
#error PCI_BUS_PREMEM_START must be megabyte aligned
#endif
#undef V3_LB_BASE_PREFETCH
#define V3_LB_BASE_PREFETCH 0
static unsigned long v3_open_config_window(struct pci_dev *dev, int offset)
{
unsigned int address, mapaddress, busnr;
busnr = dev->bus->number;
/*
* Trap out illegal values
*/
if (offset > 255)
BUG();
if (busnr > 255)
BUG();
if (dev->devfn > 255)
BUG();
if (busnr == 0) {
int slot = PCI_SLOT(dev->devfn);
/*
* local bus segment so need a type 0 config cycle
*
* build the PCI configuration "address" with one-hot in
* A31-A11
*
* mapaddress:
* 3:1 = config cycle (101)
* 0 = PCI A1 & A0 are 0 (0)
*/
address = PCI_FUNC(dev->devfn) << 8;
mapaddress = V3_LB_MAP_TYPE_CONFIG;
if (slot > 12)
/*
* high order bits are handled by the MAP register
*/
mapaddress |= 1 << (slot - 5);
else
/*
* low order bits handled directly in the address
*/
address |= 1 << (slot + 11);
} else {
/*
* not the local bus segment so need a type 1 config cycle
*
* address:
* 23:16 = bus number
* 15:11 = slot number (7:3 of devfn)
* 10:8 = func number (2:0 of devfn)
*
* mapaddress:
* 3:1 = config cycle (101)
* 0 = PCI A1 & A0 from host bus (1)
*/
mapaddress = V3_LB_MAP_TYPE_CONFIG | V3_LB_MAP_AD_LOW_EN;
address = (busnr << 16) | (dev->devfn << 8);
}
/*
* Set up base0 to see all 512Mbytes of memory space (not
* prefetchable), this frees up base1 for re-use by
* configuration memory
*/
v3_writel(V3_LB_BASE0, v3_addr_to_lb_base(PHYS_PCI_MEM_BASE) |
V3_LB_BASE_ADR_SIZE_512MB | V3_LB_BASE_ENABLE);
/*
* Set up base1/map1 to point into configuration space.
*/
v3_writel(V3_LB_BASE1, v3_addr_to_lb_base(PHYS_PCI_CONFIG_BASE) |
V3_LB_BASE_ADR_SIZE_16MB | V3_LB_BASE_ENABLE);
v3_writew(V3_LB_MAP1, mapaddress);
return PCI_CONFIG_VADDR + address + offset;
}
static void v3_close_config_window(void)
{
/*
* Reassign base1 for use by prefetchable PCI memory
*/
v3_writel(V3_LB_BASE1, v3_addr_to_lb_base(PHYS_PCI_MEM_BASE + SZ_256M) |
V3_LB_BASE_ADR_SIZE_256MB | V3_LB_BASE_PREFETCH |
V3_LB_BASE_ENABLE);
v3_writew(V3_LB_MAP1, v3_addr_to_lb_map(PCI_BUS_PREMEM_START) |
V3_LB_MAP_TYPE_MEM_MULTIPLE);
/*
* And shrink base0 back to a 256M window (NOTE: MAP0 already correct)
*/
v3_writel(V3_LB_BASE0, v3_addr_to_lb_base(PHYS_PCI_MEM_BASE) |
V3_LB_BASE_ADR_SIZE_256MB | V3_LB_BASE_ENABLE);
}
static int v3_read_config_byte(struct pci_dev *dev, int where, u8 *val)
{
unsigned long addr;
unsigned long flags;
u8 v;
spin_lock_irqsave(&v3_lock, flags);
addr = v3_open_config_window(dev, where);
v = __raw_readb(addr);
v3_close_config_window();
spin_unlock_irqrestore(&v3_lock, flags);
*val = v;
return PCIBIOS_SUCCESSFUL;
}
static int v3_read_config_word(struct pci_dev *dev, int where, u16 *val)
{
unsigned long addr;
unsigned long flags;
u16 v;
spin_lock_irqsave(&v3_lock, flags);
addr = v3_open_config_window(dev, where);
v = __raw_readw(addr);
v3_close_config_window();
spin_unlock_irqrestore(&v3_lock, flags);
*val = v;
return PCIBIOS_SUCCESSFUL;
}
static int v3_read_config_dword(struct pci_dev *dev, int where, u32 *val)
{
unsigned long addr;
unsigned long flags;
u32 v;
spin_lock_irqsave(&v3_lock, flags);
addr = v3_open_config_window(dev, where);
v = __raw_readl(addr);
v3_close_config_window();
spin_unlock_irqrestore(&v3_lock, flags);
*val = v;
return PCIBIOS_SUCCESSFUL;
}
static int v3_write_config_byte(struct pci_dev *dev, int where, u8 val)
{
unsigned long addr;
unsigned long flags;
spin_lock_irqsave(&v3_lock, flags);
addr = v3_open_config_window(dev, where);
__raw_writeb(val, addr);
__raw_readb(addr);
v3_close_config_window();
spin_unlock_irqrestore(&v3_lock, flags);
return PCIBIOS_SUCCESSFUL;
}
static int v3_write_config_word(struct pci_dev *dev, int where, u16 val)
{
unsigned long addr;
unsigned long flags;
spin_lock_irqsave(&v3_lock, flags);
addr = v3_open_config_window(dev, where);
__raw_writew(val, addr);
__raw_readw(addr);
v3_close_config_window();
spin_unlock_irqrestore(&v3_lock, flags);
return PCIBIOS_SUCCESSFUL;
}
static int v3_write_config_dword(struct pci_dev *dev, int where, u32 val)
{
unsigned long addr;
unsigned long flags;
spin_lock_irqsave(&v3_lock, flags);
addr = v3_open_config_window(dev, where);
__raw_writel(val, addr);
__raw_readl(addr);
v3_close_config_window();
spin_unlock_irqrestore(&v3_lock, flags);
return PCIBIOS_SUCCESSFUL;
}
static struct pci_ops pci_v3_ops = {
read_byte: v3_read_config_byte,
read_word: v3_read_config_word,
read_dword: v3_read_config_dword,
write_byte: v3_write_config_byte,
write_word: v3_write_config_word,
write_dword: v3_write_config_dword,
};
static struct resource non_mem = {
name: "PCI non-prefetchable",
start: 0x40000000 + PCI_BUS_NONMEM_START,
end: 0x40000000 + PCI_BUS_NONMEM_START + PCI_BUS_NONMEM_SIZE - 1,
flags: IORESOURCE_MEM,
};
static struct resource pre_mem = {
name: "PCI prefetchable",
start: 0x40000000 + PCI_BUS_PREMEM_START,
end: 0x40000000 + PCI_BUS_PREMEM_START + PCI_BUS_PREMEM_SIZE - 1,
flags: IORESOURCE_MEM | IORESOURCE_PREFETCH,
};
void __init pci_v3_setup_resources(struct resource **resource)
{
if (request_resource(&iomem_resource, &non_mem))
printk("PCI: unable to allocate non-prefetchable memory region\n");
if (request_resource(&iomem_resource, &pre_mem))
printk("PCI: unable to allocate prefetchable memory region\n");
/*
* bus->resource[0] is the IO resource for this bus
* bus->resource[1] is the mem resource for this bus
* bus->resource[2] is the prefetch mem resource for this bus
*/
resource[0] = &ioport_resource;
resource[1] = &non_mem;
resource[2] = &pre_mem;
}
/*
* These don't seem to be implemented on the Integrator I have, which
* means I can't get additional information on the reason for the pm2fb
* problems. I suppose I'll just have to mind-meld with the machine. ;)
*/
#define SC_PCI (IO_ADDRESS(INTEGRATOR_SC_PCIENABLE))
#define SC_LBFADDR (IO_ADDRESS(INTEGRATOR_SC_BASE+0x20))
#define SC_LBFCODE (IO_ADDRESS(INTEGRATOR_SC_BASE+0x24))
static int v3_fault(unsigned long addr, struct pt_regs *regs)
{
unsigned long pc = instruction_pointer(regs);
unsigned long instr = *(unsigned long *)pc;
printk("V3 fault: address=0x%08lx, pc=0x%08lx [%08lx] LBFADDR=%08x LBFCODE=%02x ISTAT=%02x\n",
addr, pc, instr, __raw_readl(SC_LBFADDR), __raw_readl(SC_LBFCODE) & 255,
v3_readb(V3_LB_ISTAT));
v3_writeb(V3_LB_ISTAT, 0);
__raw_writel(3, SC_PCI);
/*
* If the instruction being executed was a read,
* make it look like it read all-ones.
*/
if ((instr & 0x0c100000) == 0x04100000) {
int reg = (instr >> 12) & 15;
unsigned long val;
if (instr & 0x00400000)
val = 255;
else
val = -1;
regs->uregs[reg] = val;
regs->ARM_pc += 4;
return 0;
}
return 1;
}
static void v3_irq(int irq, void *devid, struct pt_regs *regs)
{
unsigned long pc = instruction_pointer(regs);
unsigned long instr = *(unsigned long *)pc;
char buf[128];
sprintf(buf, "V3 int %d: pc=0x%08lx [%08lx] LBFADDR=%08x LBFCODE=%02x ISTAT=%02x\n", irq,
pc, instr, __raw_readl(SC_LBFADDR), __raw_readl(SC_LBFCODE) & 255,
v3_readb(V3_LB_ISTAT));
printascii(buf);
v3_writeb(V3_LB_ISTAT, 0);
__raw_writel(3, SC_PCI);
/*
* If the instruction being executed was a read,
* make it look like it read all-ones.
*/
if ((instr & 0x0c100000) == 0x04100000) {
int reg = (instr >> 16) & 15;
sprintf(buf, " reg%d = %08lx\n", reg, regs->uregs[reg]);
printascii(buf);
}
}
static struct irqaction v3_int = {
name: "V3",
handler: v3_irq,
};
static struct irqaction v3_int2 = {
name: "V3TM",
handler: v3_irq,
};
extern int (*external_fault)(unsigned long addr, struct pt_regs *regs);
/*
* V3_LB_BASE? - local bus address
* V3_LB_MAP? - pci bus address
*/
void __init pci_v3_init(void *sysdata)
{
unsigned int pci_cmd;
unsigned long flags;
/*
* Hook in our fault handler for PCI errors
*/
external_fault = v3_fault;
spin_lock_irqsave(&v3_lock, flags);
/*
* Setup window 0 - PCI non-prefetchable memory
* Local: 0x40000000 Bus: 0x00000000 Size: 256MB
*/
v3_writel(V3_LB_BASE0, v3_addr_to_lb_base(PHYS_PCI_MEM_BASE) |
V3_LB_BASE_ADR_SIZE_256MB | V3_LB_BASE_ENABLE);
v3_writew(V3_LB_MAP0, v3_addr_to_lb_map(PCI_BUS_NONMEM_START) |
V3_LB_MAP_TYPE_MEM);
/*
* Setup window 1 - PCI prefetchable memory
* Local: 0x50000000 Bus: 0x10000000 Size: 256MB
*/
v3_writel(V3_LB_BASE1, v3_addr_to_lb_base(PHYS_PCI_MEM_BASE + SZ_256M) |
V3_LB_BASE_ADR_SIZE_256MB | V3_LB_BASE_PREFETCH |
V3_LB_BASE_ENABLE);
v3_writew(V3_LB_MAP1, v3_addr_to_lb_map(PCI_BUS_PREMEM_START) |
V3_LB_MAP_TYPE_MEM_MULTIPLE);
/*
* Setup window 2 - PCI IO
*/
v3_writel(V3_LB_BASE2, v3_addr_to_lb_base2(PHYS_PCI_IO_BASE) |
V3_LB_BASE_ENABLE);
v3_writew(V3_LB_MAP2, v3_addr_to_lb_map2(0));
spin_unlock_irqrestore(&v3_lock, flags);
pci_scan_bus(0, &pci_v3_ops, sysdata);
pci_cmd = PCI_COMMAND_MEMORY |
PCI_COMMAND_MASTER | PCI_COMMAND_INVALIDATE;
v3_writew(V3_PCI_CMD, pci_cmd);
/*
* Clear any error conditions.
*/
__raw_writel(3, SC_PCI);
v3_writew(V3_LB_CFG, v3_readw(V3_LB_CFG) | (1 << 10));
v3_writeb(V3_LB_ISTAT, 0);
v3_writeb(V3_LB_IMASK, 0x68);
printk("LB_CFG: %04x LB_ISTAT: %02x LB_IMASK: %02x\n",
v3_readw(V3_LB_CFG),
v3_readb(V3_LB_ISTAT),
v3_readb(V3_LB_IMASK));
setup_arm_irq(IRQ_V3INT, &v3_int);
// setup_arm_irq(IRQ_LBUSTIMEOUT, &v3_int2);
}
--- NEW FILE ---
/*
* linux/arch/arm/mach-integrator/time.c
*
* Copyright (C) 2000-2001 Deep Blue Solutions
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/init.h>
#include <asm/hardware.h>
#include <asm/io.h>
#define RTC_DR (IO_ADDRESS(INTEGRATOR_RTC_BASE) + 0)
#define RTC_MR (IO_ADDRESS(INTEGRATOR_RTC_BASE) + 4)
#define RTC_STAT (IO_ADDRESS(INTEGRATOR_RTC_BASE) + 8)
#define RTC_EOI (IO_ADDRESS(INTEGRATOR_RTC_BASE) + 8)
#define RTC_LR (IO_ADDRESS(INTEGRATOR_RTC_BASE) + 12)
#define RTC_CR (IO_ADDRESS(INTEGRATOR_RTC_BASE) + 16)
#define RTC_CR_MIE 0x00000001
extern int (*set_rtc)(void);
static int integrator_set_rtc(void)
{
__raw_writel(xtime.tv_sec, RTC_LR);
return 1;
}
static int integrator_rtc_init(void)
{
__raw_writel(0, RTC_CR);
__raw_writel(0, RTC_EOI);
xtime.tv_sec = __raw_readl(RTC_DR);
set_rtc = integrator_set_rtc;
return 0;
}
__initcall(integrator_rtc_init);
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/arm/mach-footbridge
In directory usw-pr-cvs1:/tmp/cvs-serv24336/arm/mach-footbridge
Modified Files:
Makefile arch.c cats-pci.c ebsa285-pci.c netwinder-pci.c
personal-pci.c
Added Files:
irq.c mm.c
Log Message:
synch 2.4.15 commit 32
--- NEW FILE ---
/*
* linux/arch/arm/mach-footbridge/irq.c
*
* Copyright (C) 1996-2000 Russell King
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* Changelog:
* 22-Aug-1998 RMK Restructured IRQ routines
* 03-Sep-1998 PJB Merged CATS support
* 20-Jan-1998 RMK Started merge of EBSA286, CATS and NetWinder
* 26-Jan-1999 PJB Don't use IACK on CATS
* 16-Mar-1999 RMK Added autodetect of ISA PICs
*/
#include <linux/sched.h>
#include <linux/ioport.h>
#include <linux/interrupt.h>
#include <linux/init.h>
#include <asm/mach/irq.h>
#include <asm/hardware.h>
#include <asm/hardware/dec21285.h>
#include <asm/irq.h>
#include <asm/io.h>
#include <asm/mach-types.h>
/*
* Footbridge IRQ translation table
* Converts from our IRQ numbers into FootBridge masks
*/
static const int fb_irq_mask[] = {
IRQ_MASK_UART_RX, /* 0 */
IRQ_MASK_UART_TX, /* 1 */
IRQ_MASK_TIMER1, /* 2 */
IRQ_MASK_TIMER2, /* 3 */
IRQ_MASK_TIMER3, /* 4 */
IRQ_MASK_IN0, /* 5 */
IRQ_MASK_IN1, /* 6 */
IRQ_MASK_IN2, /* 7 */
IRQ_MASK_IN3, /* 8 */
IRQ_MASK_DOORBELLHOST, /* 9 */
IRQ_MASK_DMA1, /* 10 */
IRQ_MASK_DMA2, /* 11 */
IRQ_MASK_PCI, /* 12 */
IRQ_MASK_SDRAMPARITY, /* 13 */
IRQ_MASK_I2OINPOST, /* 14 */
IRQ_MASK_PCI_ABORT, /* 15 */
IRQ_MASK_PCI_SERR, /* 16 */
IRQ_MASK_DISCARD_TIMER, /* 17 */
IRQ_MASK_PCI_DPERR, /* 18 */
IRQ_MASK_PCI_PERR, /* 19 */
};
static void fb_mask_irq(unsigned int irq)
{
*CSR_IRQ_DISABLE = fb_irq_mask[_DC21285_INR(irq)];
}
static void fb_unmask_irq(unsigned int irq)
{
*CSR_IRQ_ENABLE = fb_irq_mask[_DC21285_INR(irq)];
}
static void __init __fb_init_irq(void)
{
int irq;
/*
* setup DC21285 IRQs
*/
*CSR_IRQ_DISABLE = -1;
*CSR_FIQ_DISABLE = -1;
for (irq = _DC21285_IRQ(0); irq < _DC21285_IRQ(20); irq++) {
irq_desc[irq].valid = 1;
irq_desc[irq].probe_ok = 1;
irq_desc[irq].mask_ack = fb_mask_irq;
irq_desc[irq].mask = fb_mask_irq;
irq_desc[irq].unmask = fb_unmask_irq;
}
}
extern int isa_irq;
static void isa_mask_pic_lo_irq(unsigned int irq)
{
unsigned int mask = 1 << (irq & 7);
outb(inb(PIC_MASK_LO) | mask, PIC_MASK_LO);
}
static void isa_mask_ack_pic_lo_irq(unsigned int irq)
{
unsigned int mask = 1 << (irq & 7);
outb(inb(PIC_MASK_LO) | mask, PIC_MASK_LO);
outb(0x20, PIC_LO);
}
static void isa_unmask_pic_lo_irq(unsigned int irq)
{
unsigned int mask = 1 << (irq & 7);
outb(inb(PIC_MASK_LO) & ~mask, PIC_MASK_LO);
}
static void isa_mask_pic_hi_irq(unsigned int irq)
{
unsigned int mask = 1 << (irq & 7);
outb(inb(PIC_MASK_HI) | mask, PIC_MASK_HI);
}
static void isa_mask_ack_pic_hi_irq(unsigned int irq)
{
unsigned int mask = 1 << (irq & 7);
outb(inb(PIC_MASK_HI) | mask, PIC_MASK_HI);
outb(0x62, PIC_LO);
outb(0x20, PIC_HI);
}
static void isa_unmask_pic_hi_irq(unsigned int irq)
{
unsigned int mask = 1 << (irq & 7);
outb(inb(PIC_MASK_HI) & ~mask, PIC_MASK_HI);
}
static void no_action(int irq, void *dev_id, struct pt_regs *regs)
{
}
static struct irqaction irq_cascade = { handler: no_action, name: "cascade", };
static struct resource pic1_resource = { "pic1", 0x20, 0x3f };
static struct resource pic2_resource = { "pic2", 0xa0, 0xbf };
static void __init isa_init_irq(int irq)
{
/*
* Setup, and then probe for an ISA PIC
* If the PIC is not there, then we
* ignore the PIC.
*/
outb(0x11, PIC_LO);
outb(_ISA_IRQ(0), PIC_MASK_LO); /* IRQ number */
outb(0x04, PIC_MASK_LO); /* Slave on Ch2 */
outb(0x01, PIC_MASK_LO); /* x86 */
outb(0xf5, PIC_MASK_LO); /* pattern: 11110101 */
outb(0x11, PIC_HI);
outb(_ISA_IRQ(8), PIC_MASK_HI); /* IRQ number */
outb(0x02, PIC_MASK_HI); /* Slave on Ch1 */
outb(0x01, PIC_MASK_HI); /* x86 */
outb(0xfa, PIC_MASK_HI); /* pattern: 11111010 */
outb(0x0b, PIC_LO);
outb(0x0b, PIC_HI);
if (inb(PIC_MASK_LO) == 0xf5 && inb(PIC_MASK_HI) == 0xfa) {
outb(0xff, PIC_MASK_LO);/* mask all IRQs */
outb(0xff, PIC_MASK_HI);/* mask all IRQs */
isa_irq = irq;
} else
isa_irq = -1;
if (isa_irq != -1) {
for (irq = _ISA_IRQ(0); irq < _ISA_IRQ(8); irq++) {
irq_desc[irq].valid = 1;
irq_desc[irq].probe_ok = 1;
irq_desc[irq].mask_ack = isa_mask_ack_pic_lo_irq;
irq_desc[irq].mask = isa_mask_pic_lo_irq;
irq_desc[irq].unmask = isa_unmask_pic_lo_irq;
}
for (irq = _ISA_IRQ(8); irq < _ISA_IRQ(16); irq++) {
irq_desc[irq].valid = 1;
irq_desc[irq].probe_ok = 1;
irq_desc[irq].mask_ack = isa_mask_ack_pic_hi_irq;
irq_desc[irq].mask = isa_mask_pic_hi_irq;
irq_desc[irq].unmask = isa_unmask_pic_hi_irq;
}
request_resource(&ioport_resource, &pic1_resource);
request_resource(&ioport_resource, &pic2_resource);
setup_arm_irq(IRQ_ISA_CASCADE, &irq_cascade);
setup_arm_irq(isa_irq, &irq_cascade);
/*
* On the NetWinder, don't automatically
* enable ISA IRQ11 when it is requested.
* There appears to be a missing pull-up
* resistor on this line.
*/
if (machine_is_netwinder())
irq_desc[_ISA_IRQ(11)].noautoenable = 1;
}
}
void __init footbridge_init_irq(void)
{
__fb_init_irq();
if (!footbridge_cfn_mode())
return;
if (machine_is_ebsa285())
/* The following is dependent on which slot
* you plug the Southbridge card into. We
* currently assume that you plug it into
* the right-hand most slot.
*/
isa_init_irq(IRQ_PCI);
if (machine_is_cats())
isa_init_irq(IRQ_IN2);
if (machine_is_netwinder())
isa_init_irq(IRQ_IN3);
}
--- NEW FILE ---
/*
* linux/arch/arm/mach-footbridge/mm.c
*
* Copyright (C) 1998-2000 Russell King, Dave Gilbert.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* Extra MM routines for the EBSA285 architecture
*/
#include <linux/config.h>
#include <linux/sched.h>
#include <linux/mm.h>
#include <linux/init.h>
#include <asm/pgtable.h>
#include <asm/page.h>
#include <asm/io.h>
#include <asm/hardware/dec21285.h>
#include <asm/mach-types.h>
#include <asm/mach/map.h>
/*
* Common mapping for all systems. Note that the outbound write flush is
* commented out since there is a "No Fix" problem with it. Not mapping
* it means that we have extra bullet protection on our feet.
*/
static struct map_desc fb_common_io_desc[] __initdata = {
{ ARMCSR_BASE, DC21285_ARMCSR_BASE, ARMCSR_SIZE, DOMAIN_IO, 0, 1, 0, 0 },
{ XBUS_BASE, 0x40000000, XBUS_SIZE, DOMAIN_IO, 0, 1, 0, 0 },
LAST_DESC
};
/*
* The mapping when the footbridge is in host mode. We don't map any of
* this when we are in add-in mode.
*/
static struct map_desc ebsa285_host_io_desc[] __initdata = {
#if defined(CONFIG_ARCH_FOOTBRIDGE) && defined(CONFIG_FOOTBRIDGE_HOST)
{ PCIMEM_BASE, DC21285_PCI_MEM, PCIMEM_SIZE, DOMAIN_IO, 0, 1, 0, 0 },
{ PCICFG0_BASE, DC21285_PCI_TYPE_0_CONFIG, PCICFG0_SIZE, DOMAIN_IO, 0, 1, 0, 0 },
{ PCICFG1_BASE, DC21285_PCI_TYPE_1_CONFIG, PCICFG1_SIZE, DOMAIN_IO, 0, 1, 0, 0 },
{ PCIIACK_BASE, DC21285_PCI_IACK, PCIIACK_SIZE, DOMAIN_IO, 0, 1, 0, 0 },
{ PCIO_BASE, DC21285_PCI_IO, PCIO_SIZE, DOMAIN_IO, 0, 1, 0, 0 },
#endif
LAST_DESC
};
/*
* The CO-ebsa285 mapping.
*/
static struct map_desc co285_io_desc[] __initdata = {
#ifdef CONFIG_ARCH_CO285
{ PCIO_BASE, DC21285_PCI_IO, PCIO_SIZE, DOMAIN_IO, 0, 1, 0, 0 },
{ PCIMEM_BASE, DC21285_PCI_MEM, PCIMEM_SIZE, DOMAIN_IO, 0, 1, 0, 0 },
#endif
LAST_DESC
};
void __init footbridge_map_io(void)
{
struct map_desc *desc = NULL;
/*
* Set up the common mapping first; we need this to
* determine whether we're in host mode or not.
*/
iotable_init(fb_common_io_desc);
/*
* Now, work out what we've got to map in addition on this
* platform.
*/
if (machine_is_co285())
desc = co285_io_desc;
else if (footbridge_cfn_mode())
desc = ebsa285_host_io_desc;
if (desc)
iotable_init(desc);
}
#ifdef CONFIG_FOOTBRIDGE_ADDIN
/*
* These two functions convert virtual addresses to PCI addresses and PCI
* addresses to virtual addresses. Note that it is only legal to use these
* on memory obtained via get_free_page or kmalloc.
*/
unsigned long __virt_to_bus(unsigned long res)
{
#ifdef CONFIG_DEBUG_ERRORS
if (res < PAGE_OFFSET || res >= (unsigned long)high_memory) {
printk("__virt_to_bus: invalid virtual address 0x%08lx\n", res);
__backtrace();
}
#endif
return (res - PAGE_OFFSET) + (*CSR_PCISDRAMBASE & 0xfffffff0);
}
unsigned long __bus_to_virt(unsigned long res)
{
res -= (*CSR_PCISDRAMBASE & 0xfffffff0);
res += PAGE_OFFSET;
#ifdef CONFIG_DEBUG_ERRORS
if (res < PAGE_OFFSET || res >= (unsigned long)high_memory) {
printk("__bus_to_virt: invalid virtual address 0x%08lx\n", res);
__backtrace();
}
#endif
return res;
}
#endif
Index: Makefile
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/arm/mach-footbridge/Makefile,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- Makefile 14 Jan 2001 19:48:12 -0000 1.1.1.1
+++ Makefile 10 Apr 2002 13:51:22 -0000 1.2
@@ -5,42 +5,32 @@
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
+USE_STANDARD_AS_RULE := true
+
O_TARGET := footbridge.o
# Object file lists.
-obj-y := arch.o #dma.o mm.o
+obj-y := arch.o irq.o mm.o #dma.o
obj-m :=
obj-n :=
obj- :=
-export-objs := netwinder-hw.o
+export-objs := arch.o netwinder-hw.o
-ifeq ($(CONFIG_PCI),y)
-obj-$(CONFIG_ARCH_CATS) += cats-pci.o
-obj-$(CONFIG_ARCH_EBSA285) += ebsa285-pci.o
-obj-$(CONFIG_ARCH_NETWINDER) += netwinder-pci.o
-obj-$(CONFIG_ARCH_PERSONAL_SERVER) += personal-pci.o
-endif
-
-ifeq ($(CONFIG_LEDS),y)
-obj-$(CONFIG_ARCH_CO285) += ebsa285-leds.o
-obj-$(CONFIG_ARCH_EBSA285) += ebsa285-leds.o
-obj-$(CONFIG_ARCH_NETWINDER) += netwinder-leds.o
-endif
+pci-$(CONFIG_ARCH_CATS) += cats-pci.o
+pci-$(CONFIG_ARCH_EBSA285) += ebsa285-pci.o
+pci-$(CONFIG_ARCH_NETWINDER) += netwinder-pci.o
+pci-$(CONFIG_ARCH_PERSONAL_SERVER) += personal-pci.o
+
+leds-$(CONFIG_ARCH_CO285) += ebsa285-leds.o
+leds-$(CONFIG_ARCH_EBSA285) += ebsa285-leds.o
+leds-$(CONFIG_ARCH_NETWINDER) += netwinder-leds.o
obj-$(CONFIG_ARCH_CATS) += cats-hw.o
obj-$(CONFIG_ARCH_NETWINDER) += netwinder-hw.o
-# Files that are both resident and modular; remove from modular.
-
-obj-m := $(filter-out $(obj-y), $(obj-m))
-
-# Translate to Rules.make lists.
-
-O_OBJS := $(filter-out $(export-objs), $(obj-y))
-OX_OBJS := $(filter $(export-objs), $(obj-y))
-M_OBJS := $(sort $(filter-out $(export-objs), $(obj-m)))
-MX_OBJS := $(sort $(filter $(export-objs), $(obj-m)))
+obj-$(CONFIG_PCI) +=$(pci-y)
+obj-$(CONFIG_LEDS) +=$(leds-y)
include $(TOPDIR)/Rules.make
Index: arch.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/arm/mach-footbridge/arch.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- arch.c 14 Jan 2001 19:48:12 -0000 1.1.1.1
+++ arch.c 10 Apr 2002 13:51:22 -0000 1.2
@@ -7,6 +7,7 @@
* is pulled from the params struct.
*/
#include <linux/config.h>
+#include <linux/module.h>
#include <linux/tty.h>
#include <linux/delay.h>
#include <linux/pm.h>
@@ -19,9 +20,20 @@
#include <asm/mach/arch.h>
-extern void setup_initrd(unsigned int start, unsigned int size);
-extern void setup_ramdisk(int doload, int prompt, int start, unsigned int rd_sz);
-extern void __init footbridge_map_io(void);
+extern void footbridge_map_io(void);
+extern void footbridge_init_irq(void);
+
+unsigned int mem_fclk_21285 = 50000000;
+
+EXPORT_SYMBOL(mem_fclk_21285);
+
+static int __init parse_tag_memclk(const struct tag *tag)
+{
+ mem_fclk_21285 = tag->u.memclk.fmemclk;
+ return 0;
+}
+
+__tagtable(ATAG_MEMCLK, parse_tag_memclk);
#ifdef CONFIG_ARCH_EBSA285
@@ -42,6 +54,7 @@
VIDEO(0x000a0000, 0x000bffff)
FIXUP(fixup_ebsa285)
MAPIO(footbridge_map_io)
+ INITIRQ(footbridge_init_irq)
MACHINE_END
#endif
@@ -73,7 +86,7 @@
printk(KERN_WARNING "Warning: bad NeTTrom parameters "
"detected, using defaults\n");
- params->u1.s.nr_pages = 0x2000; /* 32MB */
+ params->u1.s.nr_pages = 0x1000; /* 16MB */
params->u1.s.ramdisk_size = 0;
params->u1.s.flags = FLAG_READONLY;
params->u1.s.initrd_start = 0;
@@ -91,6 +104,7 @@
DISABLE_PARPORT(2)
FIXUP(fixup_netwinder)
MAPIO(footbridge_map_io)
+ INITIRQ(footbridge_init_irq)
MACHINE_END
#endif
@@ -100,7 +114,7 @@
* hard reboots fail on early boards.
*/
static void __init
-fixup_cats(struct machine_desc *desc, struct param_struct *params,
+fixup_cats(struct machine_desc *desc, struct param_struct *unused,
char **cmdline, struct meminfo *mi)
{
ORIG_VIDEO_LINES = 25;
@@ -111,16 +125,18 @@
MACHINE_START(CATS, "Chalice-CATS")
MAINTAINER("Philip Blundell")
BOOT_MEM(0x00000000, DC21285_ARMCSR_BASE, 0xfe000000)
+ BOOT_PARAMS(0x00000100)
SOFT_REBOOT
FIXUP(fixup_cats)
MAPIO(footbridge_map_io)
+ INITIRQ(footbridge_init_irq)
MACHINE_END
#endif
#ifdef CONFIG_ARCH_CO285
static void __init
-fixup_coebsa285(struct machine_desc *desc, struct param_struct *params,
+fixup_coebsa285(struct machine_desc *desc, struct param_struct *unused,
char **cmdline, struct meminfo *mi)
{
extern unsigned long boot_memory_end;
@@ -139,6 +155,7 @@
BOOT_MEM(0x00000000, DC21285_ARMCSR_BASE, 0x7cf00000)
FIXUP(fixup_coebsa285)
MAPIO(footbridge_map_io)
+ INITIRQ(footbridge_init_irq)
MACHINE_END
#endif
@@ -148,5 +165,6 @@
BOOT_MEM(0x00000000, DC21285_ARMCSR_BASE, 0xfe000000)
BOOT_PARAMS(0x00000100)
MAPIO(footbridge_map_io)
+ INITIRQ(footbridge_init_irq)
MACHINE_END
#endif
Index: cats-pci.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/arm/mach-footbridge/cats-pci.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- cats-pci.c 14 Jan 2001 19:48:13 -0000 1.1.1.1
+++ cats-pci.c 10 Apr 2002 13:51:22 -0000 1.2
@@ -11,6 +11,7 @@
#include <asm/irq.h>
#include <asm/mach/pci.h>
+#include <asm/hardware/dec21285.h>
/* cats host-specific stuff */
static int irqmap_cats[] __initdata = { IRQ_PCI, IRQ_IN0, IRQ_IN1, IRQ_IN3 };
@@ -31,7 +32,9 @@
}
struct hw_pci cats_pci __initdata = {
- init: dc21285_init,
- swizzle: no_swizzle,
- map_irq: cats_map_irq,
+ setup_resources: dc21285_setup_resources,
+ init: dc21285_init,
+ mem_offset: DC21285_PCI_MEM,
+ swizzle: no_swizzle,
+ map_irq: cats_map_irq,
};
Index: ebsa285-pci.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/arm/mach-footbridge/ebsa285-pci.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- ebsa285-pci.c 14 Jan 2001 19:48:13 -0000 1.1.1.1
+++ ebsa285-pci.c 10 Apr 2002 13:51:22 -0000 1.2
@@ -11,6 +11,7 @@
#include <asm/irq.h>
#include <asm/mach/pci.h>
+#include <asm/hardware/dec21285.h>
static int irqmap_ebsa285[] __initdata = { IRQ_IN3, IRQ_IN1, IRQ_IN0, IRQ_PCI };
@@ -33,7 +34,9 @@
}
struct hw_pci ebsa285_pci __initdata = {
- init: dc21285_init,
- swizzle: ebsa285_swizzle,
- map_irq: ebsa285_map_irq,
+ setup_resources: dc21285_setup_resources,
+ init: dc21285_init,
+ mem_offset: DC21285_PCI_MEM,
+ swizzle: ebsa285_swizzle,
+ map_irq: ebsa285_map_irq,
};
Index: netwinder-pci.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/arm/mach-footbridge/netwinder-pci.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- netwinder-pci.c 14 Jan 2001 19:48:15 -0000 1.1.1.1
+++ netwinder-pci.c 10 Apr 2002 13:51:22 -0000 1.2
@@ -11,6 +11,7 @@
#include <asm/irq.h>
#include <asm/mach/pci.h>
+#include <asm/hardware/dec21285.h>
/* netwinder host-specific stuff */
static int __init netwinder_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
@@ -48,7 +49,9 @@
}
struct hw_pci netwinder_pci __initdata = {
- init: dc21285_init,
- swizzle: no_swizzle,
- map_irq: netwinder_map_irq,
+ setup_resources: dc21285_setup_resources,
+ init: dc21285_init,
+ mem_offset: DC21285_PCI_MEM,
+ swizzle: no_swizzle,
+ map_irq: netwinder_map_irq,
};
Index: personal-pci.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/arm/mach-footbridge/personal-pci.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- personal-pci.c 14 Jan 2001 19:48:16 -0000 1.1.1.1
+++ personal-pci.c 10 Apr 2002 13:51:22 -0000 1.2
@@ -11,6 +11,7 @@
#include <asm/irq.h>
#include <asm/mach/pci.h>
+#include <asm/hardware/dec21285.h>
static int irqmap_personal_server[] __initdata = {
IRQ_IN0, IRQ_IN1, IRQ_IN2, IRQ_IN3, 0, 0, 0,
@@ -37,7 +38,9 @@
}
struct hw_pci personal_server_pci __initdata = {
- init: dc21285_init,
- swizzle: no_swizzle,
- map_irq: personal_server_map_irq,
+ setup_resources: dc21285_setup_resources,
+ init: dc21285_init,
+ mem_offset: DC21285_PCI_MEM,
+ swizzle: no_swizzle,
+ map_irq: personal_server_map_irq,
};
|
|
From: Andy P. <at...@us...> - 2002-04-10 18:40:56
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/arm/mach-epxa10db
In directory usw-pr-cvs1:/tmp/cvs-serv24336/arm/mach-epxa10db
Added Files:
Makefile arch.c dma.c irq.c mm.c time.c
Log Message:
synch 2.4.15 commit 32
--- NEW FILE ---
#
# Makefile for the linux kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
USE_STANDARD_AS_RULE := true
O_TARGET := epxa10db.o
# Object file lists.
obj-y := arch.o irq.o mm.o time.o
obj-m :=
obj-n :=
obj- :=
export-objs :=
include $(TOPDIR)/Rules.make
--- NEW FILE ---
/*
* linux/arch/arm/mach-epxa10db/arch.c
*
* Copyright (C) 2000 Deep Blue Solutions Ltd
* Copyright (C) 2001 Altera Corporation
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <linux/config.h>
#include <linux/types.h>
#include <linux/sched.h>
#include <linux/interrupt.h>
#include <linux/init.h>
#include <asm/hardware.h>
#include <asm/irq.h>
#include <asm/setup.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
extern void epxa10db_map_io(void);
extern void epxa10db_init_irq(void);
static void __init
epxa10db_fixup(struct machine_desc *desc, struct param_struct *params,
char **cmdline, struct meminfo *mi)
{
mi->nr_banks = 1;
mi->bank[0].start = 0;
mi->bank[0].size = (32*1024*1024);
mi->bank[0].node = 0;
/*
ROOT_DEV = MKDEV(RAMDISK_MAJOR,0);
setup_ramdisk( 1, 0, 0, 8192 );
setup_initrd(0xc0200000, 6*1024*1024);
*/
}
MACHINE_START(CAMELOT, "Altera Epxa10db")
MAINTAINER("Altera Corporation")
BOOT_MEM(0x00000000, 0x7fffc000, 0xffffc000)
FIXUP(epxa10db_fixup)
MAPIO(epxa10db_map_io)
INITIRQ(epxa10db_init_irq)
MACHINE_END
--- NEW FILE ---
/*
* linux/arch/arm/mach-epxa10db/dma.c
*
* Copyright (C) 1999 ARM Limited
* Copyright (C) 2000 Deep Blue Solutions Ltd
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <linux/sched.h>
#include <linux/slab.h>
#include <linux/mman.h>
#include <linux/init.h>
#include <asm/page.h>
#include <asm/pgtable.h>
#include <asm/dma.h>
#include <asm/io.h>
#include <asm/hardware.h>
#include <asm/mach/dma.h>
void __init arch_dma_init(dma_t *dma)
{
}
--- NEW FILE ---
/*
* linux/arch/arm/mach-epxa10db/irq.c
*
* Copyright (C) 2001 Altera Corporation
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <linux/init.h>
#include <asm/hardware.h>
#include <asm/irq.h>
#include <asm/io.h>
#include <asm/mach/irq.h>
#include <asm/arch/platform.h>
#include <asm/arch/int_ctrl00.h>
static void mask_irq(unsigned int irq)
{
__raw_writel(1 << irq, INT_MC(IO_ADDRESS(EXC_INT_CTRL00_BASE)));
}
static void unmask_irq(unsigned int irq)
{
__raw_writel(1 << irq, INT_MS(IO_ADDRESS(EXC_INT_CTRL00_BASE)));
}
void __init epxa10db_init_irq(void)
{
unsigned int i;
/*
* This bit sets up the interrupt controller using
* the 6 PLD interrupts mode (the default) each
* irqs is assigned a priority which is the same
* as its interrupt number. This scheme is used because
* its easy, but you may want to change it depending
* on the contents of your PLD
*/
__raw_writel(3,INT_MODE(IO_ADDRESS(EXC_INT_CTRL00_BASE)));
for (i = 0; i < NR_IRQS; i++){
__raw_writel(i+1, INT_PRIORITY_P0(IO_ADDRESS(EXC_INT_CTRL00_BASE)) + (4*i));
}
for (i = 0; i < NR_IRQS; i++) {
irq_desc[i].valid = 1;
irq_desc[i].probe_ok = 1;
irq_desc[i].mask_ack = mask_irq;
irq_desc[i].mask = mask_irq;
irq_desc[i].unmask = unmask_irq;
}
/* Disable all interrupt */
__raw_writel(-1,INT_MC(IO_ADDRESS(EXC_INT_CTRL00_BASE)));
}
--- NEW FILE ---
/*
* linux/arch/arm/mach-epxa10db/mm.c
*
* MM routines for Altera'a Epxa10db board
*
* Copyright (C) 2001 Altera Corporation
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <linux/sched.h>
#include <linux/mm.h>
#include <linux/init.h>
#include <asm/hardware.h>
#include <asm/io.h>
#include <asm/pgtable.h>
#include <asm/page.h>
#include <asm/mach/map.h>
/* Page table mapping for I/O region */
static struct map_desc epxa10db_io_desc[] __initdata = {
{ IO_ADDRESS(EXC_REGISTERS_BASE), EXC_REGISTERS_BASE, SZ_16K , DOMAIN_IO, 0, 1},
{IO_ADDRESS(EXC_PLD_BLOCK0_BASE), EXC_PLD_BLOCK0_BASE, SZ_16K , DOMAIN_IO, 0, 1},
{IO_ADDRESS(EXC_PLD_BLOCK1_BASE), EXC_PLD_BLOCK1_BASE, SZ_16K , DOMAIN_IO, 0, 1},
{IO_ADDRESS(EXC_PLD_BLOCK2_BASE), EXC_PLD_BLOCK2_BASE, SZ_16K , DOMAIN_IO, 0, 1},
{IO_ADDRESS(EXC_PLD_BLOCK3_BASE), EXC_PLD_BLOCK3_BASE, SZ_16K , DOMAIN_IO, 0, 1},
{ FLASH_VADDR(EXC_EBI_BLOCK0_BASE), EXC_EBI_BLOCK0_BASE, SZ_16M , DOMAIN_IO, 0, 1},
LAST_DESC
};
void __init epxa10db_map_io(void)
{
iotable_init(epxa10db_io_desc);
}
--- NEW FILE ---
/*
* linux/arch/arm/mach-epxa10db/time.c
*
* Copyright (C) 2000 Deep Blue Solutions
* Copyright (C) 2001 Altera Corporation
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/init.h>
#include <asm/hardware.h>
extern int (*set_rtc)(void);
static int epxa10db_set_rtc(void)
{
return 1;
}
static int epxa10db_rtc_init(void)
{
set_rtc = epxa10db_set_rtc;
return 0;
}
__initcall(epxa10db_rtc_init);
|
|
From: Andy P. <at...@us...> - 2002-04-10 18:40:48
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/ppc/lib
In directory usw-pr-cvs1:/tmp/cvs-serv25860/ppc/lib
Modified Files:
Makefile checksum.S locks.c strcase.c string.S
Added Files:
dec_and_lock.c
Log Message:
synch 2.4.15 commit 43
--- NEW FILE ---
#include <linux/module.h>
#include <linux/spinlock.h>
#include <asm/atomic.h>
#include <asm/system.h>
/*
* This is an implementation of the notion of "decrement a
* reference count, and return locked if it decremented to zero".
*
* This implementation can be used on any architecture that
* has a cmpxchg, and where atomic->value is an int holding
* the value of the atomic (i.e. the high bits aren't used
* for a lock or anything like that).
*
* N.B. ATOMIC_DEC_AND_LOCK gets defined in include/linux/spinlock.h
* if spinlocks are empty and thus atomic_dec_and_lock is defined
* to be atomic_dec_and_test - in that case we don't need it
* defined here as well.
*/
#ifndef ATOMIC_DEC_AND_LOCK
int atomic_dec_and_lock(atomic_t *atomic, spinlock_t *lock)
{
int counter;
int newcount;
for (;;) {
counter = atomic_read(atomic);
newcount = counter - 1;
if (!newcount)
break; /* do it the slow way */
newcount = cmpxchg(&atomic->counter, counter, newcount);
if (newcount == counter)
return 0;
}
spin_lock(lock);
if (atomic_dec_and_test(atomic))
return 1;
spin_unlock(lock);
return 0;
}
EXPORT_SYMBOL(atomic_dec_and_lock);
#endif /* ATOMIC_DEC_AND_LOCK */
Index: Makefile
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/lib/Makefile,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- Makefile 25 Feb 2001 23:15:18 -0000 1.1.1.2
+++ Makefile 10 Apr 2002 15:04:10 -0000 1.2
@@ -1,13 +1,16 @@
+# BK Id: SCCS/s.Makefile 1.10 11/08/01 07:57:40 paulus
+#
#
# Makefile for ppc-specific library files..
#
-.S.o:
- $(CC) $(AFLAGS) -c $< -o $*.o
+USE_STANDARD_AS_RULE := true
O_TARGET := lib.o
-obj-y := checksum.o string.o strcase.o
+export-objs := dec_and_lock.o
+
+obj-y := checksum.o string.o strcase.o dec_and_lock.o
obj-$(CONFIG_SMP) += locks.o
Index: checksum.S
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/lib/checksum.S,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- checksum.S 14 Jan 2001 19:31:36 -0000 1.1.1.1
+++ checksum.S 10 Apr 2002 15:04:10 -0000 1.2
@@ -1,4 +1,7 @@
/*
+ * BK Id: SCCS/s.checksum.S 1.8 08/20/01 22:09:34 paulus
+ */
+/*
* This file contains assembly-language implementations
* of IP-style 1's complement checksum routines.
*
@@ -119,12 +122,30 @@
addc r0,r0,r6
srwi. r6,r5,2 /* # words to do */
beq 3f
-1: mtctr r6
-82: lwzu r6,4(r3) /* the bdnz has zero overhead, so it should */
-92: stwu r6,4(r4) /* be unnecessary to unroll this loop */
+1: srwi. r6,r5,4 /* # groups of 4 words to do */
+ beq 10f
+ mtctr r6
+71: lwz r6,4(r3)
+72: lwz r9,8(r3)
+73: lwz r10,12(r3)
+74: lwzu r11,16(r3)
adde r0,r0,r6
+75: stw r6,4(r4)
+ adde r0,r0,r9
+76: stw r9,8(r4)
+ adde r0,r0,r10
+77: stw r10,12(r4)
+ adde r0,r0,r11
+78: stwu r11,16(r4)
+ bdnz 71b
+10: rlwinm. r6,r5,30,30,31 /* # words left to do */
+ beq 13f
+ mtctr r6
+82: lwzu r9,4(r3)
+92: stwu r9,4(r4)
+ adde r0,r0,r9
bdnz 82b
- andi. r5,r5,3
+13: andi. r5,r5,3
3: cmpi 0,r5,2
blt+ 4f
83: lhz r6,4(r3)
@@ -145,12 +166,16 @@
/* These shouldn't go in the fixup section, since that would
cause the ex_table addresses to get out of order. */
+src_error_4:
+ mfctr r6 /* update # bytes remaining from ctr */
+ rlwimi r5,r6,4,0,27
+ b 79f
src_error_1:
li r6,0
subi r5,r5,2
95: sth r6,4(r4)
addi r4,r4,2
- srwi. r6,r5,2
+79: srwi. r6,r5,2
beq 3f
mtctr r6
src_error_2:
@@ -184,6 +209,14 @@
.section __ex_table,"a"
.long 81b,src_error_1
.long 91b,dst_error
+ .long 71b,src_error_4
+ .long 72b,src_error_4
+ .long 73b,src_error_4
+ .long 74b,src_error_4
+ .long 75b,dst_error
+ .long 76b,dst_error
+ .long 77b,dst_error
+ .long 78b,dst_error
.long 82b,src_error_2
.long 92b,dst_error
.long 83b,src_error_3
Index: locks.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/lib/locks.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- locks.c 25 Feb 2001 23:15:18 -0000 1.1.1.2
+++ locks.c 10 Apr 2002 15:04:10 -0000 1.2
@@ -1,6 +1,7 @@
/*
- * $Id$
- *
+ * BK Id: SCCS/s.locks.c 1.11 08/19/01 22:27:32 paulus
+ */
+/*
* Locks for smp ppc
*
* Written by Cort Dougan (co...@cs...)
@@ -15,29 +16,53 @@
#include <asm/system.h>
#include <asm/io.h>
-#define DEBUG_LOCKS 1
+#ifdef SPINLOCK_DEBUG
#undef INIT_STUCK
#define INIT_STUCK 200000000 /*0xffffffff*/
+/*
+ * Try to acquire a spinlock.
+ * Only does the stwcx. if the load returned 0 - the Programming
+ * Environments Manual suggests not doing unnecessary stcwx.'s
+ * since they may inhibit forward progress by other CPUs in getting
+ * a lock.
+ */
+static unsigned long __spin_trylock(volatile unsigned long *lock)
+{
+ unsigned long ret;
+
+ __asm__ __volatile__ ("\n\
+1: lwarx %0,0,%1\n\
+ cmpwi 0,%0,0\n\
+ bne 2f\n\
+ stwcx. %2,0,%1\n\
+ bne- 1b\n\
+ isync\n\
+2:"
+ : "=&r"(ret)
+ : "r"(lock), "r"(1)
+ : "cr0", "memory");
+
+ return ret;
+}
+
void _spin_lock(spinlock_t *lock)
{
int cpu = smp_processor_id();
-#ifdef DEBUG_LOCKS
unsigned int stuck = INIT_STUCK;
-#endif /* DEBUG_LOCKS */
while (__spin_trylock(&lock->lock)) {
-#ifdef DEBUG_LOCKS
- if(!--stuck) {
- printk("_spin_lock(%p) CPU#%d NIP %p"
- " holder: cpu %ld pc %08lX\n",
- lock, cpu, __builtin_return_address(0),
- lock->owner_cpu,lock->owner_pc);
- stuck = INIT_STUCK;
- /* steal the lock */
- /*xchg_u32((void *)&lock->lock,0);*/
+ while ((unsigned volatile long)lock->lock != 0) {
+ if (!--stuck) {
+ printk("_spin_lock(%p) CPU#%d NIP %p"
+ " holder: cpu %ld pc %08lX\n",
+ lock, cpu, __builtin_return_address(0),
+ lock->owner_cpu,lock->owner_pc);
+ stuck = INIT_STUCK;
+ /* steal the lock */
+ /*xchg_u32((void *)&lock->lock,0);*/
+ }
}
-#endif /* DEBUG_LOCKS */
}
lock->owner_pc = (unsigned long)__builtin_return_address(0);
lock->owner_cpu = cpu;
@@ -52,11 +77,8 @@
return 1;
}
-
-
void _spin_unlock(spinlock_t *lp)
{
-#ifdef DEBUG_LOCKS
if ( !lp->lock )
printk("_spin_unlock(%p): no lock cpu %d curr PC %p %s/%d\n",
lp, smp_processor_id(), __builtin_return_address(0),
@@ -65,13 +87,12 @@
printk("_spin_unlock(%p): cpu %d trying clear of cpu %d pc %lx val %lx\n",
lp, smp_processor_id(), (int)lp->owner_cpu,
lp->owner_pc,lp->lock);
-#endif /* DEBUG_LOCKS */
lp->owner_pc = lp->owner_cpu = 0;
wmb();
lp->lock = 0;
- wmb();
}
+
/*
* Just like x86, implement read-write locks as a 32-bit counter
* with the high bit (sign) being the "write" bit.
@@ -79,14 +100,11 @@
*/
void _read_lock(rwlock_t *rw)
{
-#ifdef DEBUG_LOCKS
unsigned long stuck = INIT_STUCK;
int cpu = smp_processor_id();
-#endif /* DEBUG_LOCKS */
again:
/* get our read lock in there */
- wmb();
atomic_inc((atomic_t *) &(rw)->lock);
if ( (signed long)((rw)->lock) < 0) /* someone has a write lock */
{
@@ -95,13 +113,11 @@
/* wait for the write lock to go away */
while ((signed long)((rw)->lock) < 0)
{
-#ifdef DEBUG_LOCKS
if(!--stuck)
{
printk("_read_lock(%p) CPU#%d\n", rw, cpu);
stuck = INIT_STUCK;
}
-#endif /* DEBUG_LOCKS */
}
/* try to get the read lock again */
goto again;
@@ -111,38 +127,30 @@
void _read_unlock(rwlock_t *rw)
{
-#ifdef DEBUG_LOCKS
if ( rw->lock == 0 )
printk("_read_unlock(): %s/%d (nip %08lX) lock %lx\n",
current->comm,current->pid,current->thread.regs->nip,
rw->lock);
-#endif /* DEBUG_LOCKS */
wmb();
atomic_dec((atomic_t *) &(rw)->lock);
- wmb();
}
void _write_lock(rwlock_t *rw)
{
-#ifdef DEBUG_LOCKS
unsigned long stuck = INIT_STUCK;
int cpu = smp_processor_id();
-#endif /* DEBUG_LOCKS */
again:
- wmb();
if ( test_and_set_bit(31,&(rw)->lock) ) /* someone has a write lock */
{
while ( (rw)->lock & (1<<31) ) /* wait for write lock */
{
-#ifdef DEBUG_LOCKS
if(!--stuck)
{
printk("write_lock(%p) CPU#%d lock %lx)\n",
rw, cpu,rw->lock);
stuck = INIT_STUCK;
}
-#endif /* DEBUG_LOCKS */
barrier();
}
goto again;
@@ -154,14 +162,12 @@
clear_bit(31,&(rw)->lock);
while ( (rw)->lock & ~(1<<31) )
{
-#ifdef DEBUG_LOCKS
if(!--stuck)
{
printk("write_lock(%p) 2 CPU#%d lock %lx)\n",
rw, cpu,rw->lock);
stuck = INIT_STUCK;
}
-#endif /* DEBUG_LOCKS */
barrier();
}
goto again;
@@ -171,79 +177,12 @@
void _write_unlock(rwlock_t *rw)
{
-#ifdef DEBUG_LOCKS
if ( !(rw->lock & (1<<31)) )
printk("_write_lock(): %s/%d (nip %08lX) lock %lx\n",
current->comm,current->pid,current->thread.regs->nip,
rw->lock);
-#endif /* DEBUG_LOCKS */
wmb();
clear_bit(31,&(rw)->lock);
- wmb();
-}
-
-void __lock_kernel(struct task_struct *task)
-{
-#ifdef DEBUG_LOCKS
- unsigned long stuck = INIT_STUCK;
-
- if ( (signed long)(task->lock_depth) < 0 )
- {
- printk("__lock_kernel(): %s/%d (nip %08lX) lock depth %x\n",
- task->comm,task->pid,task->thread.regs->nip,
- task->lock_depth);
- }
-#endif /* DEBUG_LOCKS */
-
- if (atomic_inc_return((atomic_t *) &task->lock_depth) != 1)
- return;
- /* mine! */
- while (__spin_trylock(&klock_info.kernel_flag)) {
-#ifdef DEBUG_LOCKS
- if(!--stuck) {
- printk("_lock_kernel() CPU#%d NIP %p\n",
- smp_processor_id(),
- __builtin_return_address(0));
- stuck = INIT_STUCK;
- }
-#endif /* DEBUG_LOCKS */
- }
-
- klock_info.akp = smp_processor_id();
- /* my kernel mode! mine!!! */
}
-void __unlock_kernel(struct task_struct *task)
-{
-#ifdef DEBUG_LOCKS
- if ((task->lock_depth == 0) || (klock_info.kernel_flag != KLOCK_HELD))
- {
- printk("__unlock_kernel(): %s/%d (nip %08lX) "
- "lock depth %x flags %lx\n",
- task->comm,task->pid,task->thread.regs->nip,
- task->lock_depth, klock_info.kernel_flag);
- klock_info.akp = NO_PROC_ID;
- klock_info.kernel_flag = 0;
- return;
- }
-#endif /* DEBUG_LOCKS */
- if (atomic_dec_and_test((atomic_t *) &task->lock_depth))
- {
- wmb();
- klock_info.akp = NO_PROC_ID;
- wmb();
- klock_info.kernel_flag = KLOCK_CLEAR;
- wmb();
- }
-}
-
-void reacquire_kernel_lock(struct task_struct *task, int cpu,int depth)
-{
- if (depth)
- {
- __cli();
- __lock_kernel(task);
- task->lock_depth = depth;
- __sti();
- }
-}
+#endif
Index: strcase.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/lib/strcase.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- strcase.c 14 Jan 2001 19:31:36 -0000 1.1.1.1
+++ strcase.c 10 Apr 2002 15:04:10 -0000 1.2
@@ -1,3 +1,6 @@
+/*
+ * BK Id: SCCS/s.strcase.c 1.5 05/17/01 18:14:22 cort
+ */
#include <linux/ctype.h>
int strcasecmp(const char *s1, const char *s2)
Index: string.S
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ppc/lib/string.S,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- string.S 14 Jan 2001 19:31:35 -0000 1.1.1.1
+++ string.S 10 Apr 2002 15:04:10 -0000 1.2
@@ -1,4 +1,7 @@
/*
+ * BK Id: SCCS/s.string.S 1.9 10/25/01 10:08:51 trini
+ */
+/*
* String handling functions for PowerPC.
*
* Copyright (C) 1996 Paul Mackerras.
@@ -11,22 +14,9 @@
#include "../kernel/ppc_asm.tmpl"
#include <linux/config.h>
#include <asm/processor.h>
+#include <asm/cache.h>
#include <asm/errno.h>
-#if defined(CONFIG_4xx) || defined(CONFIG_8xx)
-#define CACHE_LINE_SIZE 16
-#define LG_CACHE_LINE_SIZE 4
-#define MAX_COPY_PREFETCH 1
-#elif !defined(CONFIG_PPC64BRIDGE)
-#define CACHE_LINE_SIZE 32
-#define LG_CACHE_LINE_SIZE 5
-#define MAX_COPY_PREFETCH 4
-#else
-#define CACHE_LINE_SIZE 128
-#define LG_CACHE_LINE_SIZE 7
-#define MAX_COPY_PREFETCH 1
-#endif /* CONFIG_4xx || CONFIG_8xx */
-
#define COPY_16_BYTES \
lwz r7,4(r4); \
lwz r8,8(r4); \
@@ -72,11 +62,13 @@
.long 8 ## n ## 5b,9 ## n ## 1b; \
.long 8 ## n ## 6b,9 ## n ## 1b; \
.long 8 ## n ## 7b,9 ## n ## 1b; \
-.text
+ .text
+
+ .text
-CACHELINE_BYTES = CACHE_LINE_SIZE
-LG_CACHELINE_BYTES = LG_CACHE_LINE_SIZE
-CACHELINE_MASK = (CACHE_LINE_SIZE-1)
+CACHELINE_BYTES = L1_CACHE_LINE_SIZE
+LG_CACHELINE_BYTES = LG_L1_CACHE_LINE_SIZE
+CACHELINE_MASK = (L1_CACHE_LINE_SIZE-1)
.globl strcpy
strcpy:
@@ -275,12 +267,12 @@
dcbz r11,r6
#endif
COPY_16_BYTES
-#if CACHE_LINE_SIZE >= 32
+#if L1_CACHE_LINE_SIZE >= 32
COPY_16_BYTES
-#if CACHE_LINE_SIZE >= 64
+#if L1_CACHE_LINE_SIZE >= 64
COPY_16_BYTES
COPY_16_BYTES
-#if CACHE_LINE_SIZE >= 128
+#if L1_CACHE_LINE_SIZE >= 128
COPY_16_BYTES
COPY_16_BYTES
COPY_16_BYTES
@@ -453,23 +445,23 @@
#if !defined(CONFIG_8xx)
/* Here we decide how far ahead to prefetch the source */
-#if MAX_COPY_PREFETCH > 1
+#if MAX_L1_COPY_PREFETCH > 1
/* Heuristically, for large transfers we prefetch
- MAX_COPY_PREFETCH cachelines ahead. For small transfers
+ MAX_L1_COPY_PREFETCH cachelines ahead. For small transfers
we prefetch 1 cacheline ahead. */
- cmpwi r0,MAX_COPY_PREFETCH
+ cmpwi r0,MAX_L1_COPY_PREFETCH
li r7,1
li r3,4
ble 111f
- li r7,MAX_COPY_PREFETCH
+ li r7,MAX_L1_COPY_PREFETCH
111: mtctr r7
112: dcbt r3,r4
addi r3,r3,CACHELINE_BYTES
bdnz 112b
-#else /* MAX_COPY_PREFETCH == 1 */
+#else /* MAX_L1_COPY_PREFETCH == 1 */
li r3,CACHELINE_BYTES + 4
dcbt r11,r4
-#endif /* MAX_COPY_PREFETCH */
+#endif /* MAX_L1_COPY_PREFETCH */
#endif /* CONFIG_8xx */
mtctr r0
@@ -489,12 +481,12 @@
.text
/* the main body of the cacheline loop */
COPY_16_BYTES_WITHEX(0)
-#if CACHE_LINE_SIZE >= 32
+#if L1_CACHE_LINE_SIZE >= 32
COPY_16_BYTES_WITHEX(1)
-#if CACHE_LINE_SIZE >= 64
+#if L1_CACHE_LINE_SIZE >= 64
COPY_16_BYTES_WITHEX(2)
COPY_16_BYTES_WITHEX(3)
-#if CACHE_LINE_SIZE >= 128
+#if L1_CACHE_LINE_SIZE >= 128
COPY_16_BYTES_WITHEX(4)
COPY_16_BYTES_WITHEX(5)
COPY_16_BYTES_WITHEX(6)
@@ -543,12 +535,12 @@
* 104f (if in read part) or 105f (if in write part), after updating r5
*/
COPY_16_BYTES_EXCODE(0)
-#if CACHE_LINE_SIZE >= 32
+#if L1_CACHE_LINE_SIZE >= 32
COPY_16_BYTES_EXCODE(1)
-#if CACHE_LINE_SIZE >= 64
+#if L1_CACHE_LINE_SIZE >= 64
COPY_16_BYTES_EXCODE(2)
COPY_16_BYTES_EXCODE(3)
-#if CACHE_LINE_SIZE >= 128
+#if L1_CACHE_LINE_SIZE >= 128
COPY_16_BYTES_EXCODE(4)
COPY_16_BYTES_EXCODE(5)
COPY_16_BYTES_EXCODE(6)
|
|
From: Andy P. <at...@us...> - 2002-04-10 18:40:38
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/ia64
In directory usw-pr-cvs1:/tmp/cvs-serv12040/ia64
Modified Files:
Makefile config.in defconfig vmlinux.lds.S
Log Message:
synch 2.4.15 commit 36
Index: Makefile
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ia64/Makefile,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- Makefile 14 Jan 2001 19:48:55 -0000 1.1.1.1
+++ Makefile 10 Apr 2002 14:27:19 -0000 1.2
@@ -5,7 +5,7 @@
# License. See the file "COPYING" in the main directory of this archive
# for more details.
#
-# Copyright (C) 1998-2000 by David Mosberger-Tang <da...@hp...>
+# Copyright (C) 1998-2001 by David Mosberger-Tang <da...@hp...>
#
NM := $(CROSS_COMPILE)nm -B
@@ -14,25 +14,27 @@
export AWK
LINKFLAGS = -static -T arch/$(ARCH)/vmlinux.lds
-AFLAGS += -Wa,-x
AFLAGS_KERNEL := -mconstant-gp
EXTRA =
-CFLAGS := $(CFLAGS) -pipe $(EXTRA) -Wa,-x -ffixed-r13 -mfixed-range=f10-f15,f32-f127 \
- -funwind-tables -falign-functions=32
-# -frename-registers
+CFLAGS := $(CFLAGS) -pipe $(EXTRA) -ffixed-r13 -mfixed-range=f10-f15,f32-f127 \
+ -falign-functions=32
+# -ffunction-sections
CFLAGS_KERNEL := -mconstant-gp
-ifeq ($(CONFIG_ITANIUM_ASTEP_SPECIFIC),y)
- CFLAGS += -ma-step
+GCC_VERSION=$(shell $(CROSS_COMPILE)$(HOSTCC) -v 2>&1 | fgrep 'gcc version' | cut -f3 -d' ' | cut -f1 -d'.')
+
+ifneq ($(GCC_VERSION),2)
+ CFLAGS += -frename-registers --param max-inline-insns=400
endif
+
ifeq ($(CONFIG_ITANIUM_BSTEP_SPECIFIC),y)
CFLAGS += -mb-step
endif
ifdef CONFIG_IA64_GENERIC
CORE_FILES := arch/$(ARCH)/hp/hp.a \
- arch/$(ARCH)/sn/sn.a \
+ arch/$(ARCH)/sn/sn.o \
arch/$(ARCH)/dig/dig.a \
arch/$(ARCH)/sn/io/sgiio.o \
$(CORE_FILES)
@@ -52,15 +54,14 @@
$(CORE_FILES)
endif
-ifdef CONFIG_IA64_SGI_SN1
-CFLAGS += -DBRINGUP
- SUBDIRS := arch/$(ARCH)/sn/sn1 \
- arch/$(ARCH)/sn \
+ifdef CONFIG_IA64_SGI_SN
+ CFLAGS += -DBRINGUP
+ SUBDIRS := arch/$(ARCH)/sn/kernel \
arch/$(ARCH)/sn/io \
arch/$(ARCH)/sn/fprom \
$(SUBDIRS)
- CORE_FILES := arch/$(ARCH)/sn/sn.a \
- arch/$(ARCH)/sn/io/sgiio.o\
+ CORE_FILES := arch/$(ARCH)/sn/kernel/sn.o \
+ arch/$(ARCH)/sn/io/sgiio.o \
$(CORE_FILES)
endif
@@ -103,6 +104,11 @@
FORCE: ;
+compressed: vmlinux
+ $(OBJCOPY) --strip-all vmlinux vmlinux-tmp
+ gzip vmlinux-tmp
+ mv vmlinux-tmp.gz vmlinux.gz
+
rawboot:
@$(MAKEBOOT) rawboot
@@ -120,8 +126,6 @@
@$(MAKEBOOT) srmboot
archclean:
- @$(MAKE) -C arch/$(ARCH)/kernel clean
- @$(MAKE) -C arch/$(ARCH)/tools clean
@$(MAKEBOOT) clean
archmrproper:
Index: config.in
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ia64/config.in,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- config.in 25 Feb 2001 23:15:21 -0000 1.1.1.2
+++ config.in 10 Apr 2002 14:27:19 -0000 1.2
@@ -23,12 +23,26 @@
define_bool CONFIG_EISA n
define_bool CONFIG_MCA n
define_bool CONFIG_SBUS n
+define_bool CONFIG_RWSEM_GENERIC_SPINLOCK y
+define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM n
+
+if [ "$CONFIG_IA64_HP_SIM" = "n" ]; then
+ define_bool CONFIG_ACPI y
+ define_bool CONFIG_ACPI_EFI y
+ define_bool CONFIG_ACPI_INTERPRETER y
+ define_bool CONFIG_ACPI_KERNEL_CONFIG y
+fi
+
+choice 'IA-64 processor type' \
+ "Itanium CONFIG_ITANIUM \
+ McKinley CONFIG_MCKINLEY" Itanium
choice 'IA-64 system type' \
"generic CONFIG_IA64_GENERIC \
DIG-compliant CONFIG_IA64_DIG \
HP-simulator CONFIG_IA64_HP_SIM \
- SGI-SN1 CONFIG_IA64_SGI_SN1" generic
+ SGI-SN1 CONFIG_IA64_SGI_SN1 \
+ SGI-SN2 CONFIG_IA64_SGI_SN2" generic
choice 'Kernel page size' \
"4KB CONFIG_IA64_PAGE_SIZE_4KB \
@@ -36,58 +50,54 @@
16KB CONFIG_IA64_PAGE_SIZE_16KB \
64KB CONFIG_IA64_PAGE_SIZE_64KB" 16KB
-if [ "$CONFIG_IA64_DIG" = "y" ]; then
- define_bool CONFIG_ITANIUM y
+if [ "$CONFIG_ITANIUM" = "y" ]; then
define_bool CONFIG_IA64_BRL_EMU y
- bool ' Enable Itanium A-step specific code' CONFIG_ITANIUM_ASTEP_SPECIFIC
bool ' Enable Itanium B-step specific code' CONFIG_ITANIUM_BSTEP_SPECIFIC
- if [ "$CONFIG_ITANIUM_BSTEP_SPECIFIC" = "y" ]; then
- bool ' Enable Itanium B0-step specific code' CONFIG_ITANIUM_B0_SPECIFIC
- bool ' Enable Itanium B1-step specific code' CONFIG_ITANIUM_B1_SPECIFIC
- bool ' Enable Itanium B2-step specific code' CONFIG_ITANIUM_B2_SPECIFIC
+ if [ "$CONFIG_IA64_SGI_SN1" = "y" ]; then
+ define_int CONFIG_IA64_L1_CACHE_SHIFT 7 # align cache-sensitive data to 128 bytes
+ else
+ define_int CONFIG_IA64_L1_CACHE_SHIFT 6 # align cache-sensitive data to 64 bytes
fi
- bool ' Enable Itanium C-step specific code' CONFIG_ITANIUM_CSTEP_SPECIFIC
- if [ "$CONFIG_ITANIUM_CSTEP_SPECIFIC" = "y" ]; then
- bool ' Enable Itanium C0-step specific code' CONFIG_ITANIUM_C0_SPECIFIC
+fi
+
+if [ "$CONFIG_MCKINLEY" = "y" ]; then
+ define_int CONFIG_IA64_L1_CACHE_SHIFT 7
+ bool ' Enable McKinley A-step specific code' CONFIG_MCKINLEY_ASTEP_SPECIFIC
+ if [ "$CONFIG_MCKINLEY_ASTEP_SPECIFIC" = "y" ]; then
+ bool ' Enable McKinley A0/A1-step specific code' CONFIG_MCKINLEY_A0_SPECIFIC
fi
- bool ' Force interrupt redirection' CONFIG_IA64_HAVE_IRQREDIR
- bool ' Enable use of global TLB purge instruction (ptc.g)' CONFIG_ITANIUM_PTCG
- bool ' Enable SoftSDV hacks' CONFIG_IA64_SOFTSDV_HACKS
- bool ' Enable AzusA hacks' CONFIG_IA64_AZUSA_HACKS
+fi
+
+if [ "$CONFIG_IA64_DIG" = "y" ]; then
bool ' Enable IA-64 Machine Check Abort' CONFIG_IA64_MCA
- bool ' Enable ACPI 2.0 with errata 1.3' CONFIG_ACPI20
- bool ' ACPI kernel configuration manager (EXPERIMENTAL)' CONFIG_ACPI_KERNEL_CONFIG
- if [ "$CONFIG_ACPI_KERNEL_CONFIG" = "y" ]; then
- define_bool CONFIG_PM y
- define_bool CONFIG_ACPI y
- define_bool CONFIG_ACPI_INTERPRETER y
- fi
+ define_bool CONFIG_PM y
fi
-if [ "$CONFIG_IA64_SGI_SN1" = "y" ]; then
- bool ' Enable use of global TLB purge instruction (ptc.g)' CONFIG_ITANIUM_PTCG
- bool ' Enable Itanium B-step specific code' CONFIG_ITANIUM_BSTEP_SPECIFIC
- if [ "$CONFIG_ITANIUM_BSTEP_SPECIFIC" = "y" ]; then
- bool ' Enable Itanium B0-step specific code' CONFIG_ITANIUM_B0_SPECIFIC
- fi
- bool ' Enable SGI Medusa Simulator Support' CONFIG_IA64_SGI_SN1_SIM
- define_bool CONFIG_DEVFS_DEBUG y
+if [ "$CONFIG_IA64_SGI_SN1" = "y" ] || [ "$CONFIG_IA64_SGI_SN2" = "y" ]; then
+ define_bool CONFIG_IA64_SGI_SN y
+ bool ' Enable extra debugging code' CONFIG_IA64_SGI_SN_DEBUG n
+ bool ' Enable SGI Medusa Simulator Support' CONFIG_IA64_SGI_SN_SIM
+ bool ' Enable autotest (llsc). Option to run cache test instead of booting' \
+ CONFIG_IA64_SGI_AUTOTEST n
define_bool CONFIG_DEVFS_FS y
- define_bool CONFIG_IA64_BRL_EMU y
+ if [ "$CONFIG_DEVFS_FS" = "y" ]; then
+ bool ' Enable DEVFS Debug Code' CONFIG_DEVFS_DEBUG n
+ fi
+ bool ' Enable protocol mode for the L1 console' CONFIG_SERIAL_SGI_L1_PROTOCOL y
+ define_bool CONFIG_DISCONTIGMEM y
define_bool CONFIG_IA64_MCA y
- define_bool CONFIG_ITANIUM y
- define_bool CONFIG_SGI_IOC3_ETH y
+ define_bool CONFIG_NUMA y
define_bool CONFIG_PERCPU_IRQ y
- define_int CONFIG_CACHE_LINE_SHIFT 7
- bool ' Enable DISCONTIGMEM support' CONFIG_DISCONTIGMEM
- bool ' Enable NUMA support' CONFIG_NUMA
+ tristate ' PCIBA support' CONFIG_PCIBA
fi
define_bool CONFIG_KCORE_ELF y # On IA-64, we always want an ELF /proc/kcore.
bool 'SMP support' CONFIG_SMP
+tristate 'Support running of Linux/x86 binaries' CONFIG_IA32_SUPPORT
bool 'Performance monitor support' CONFIG_PERFMON
-bool '/proc/pal support' CONFIG_IA64_PALINFO
+tristate '/proc/pal support' CONFIG_IA64_PALINFO
+tristate '/proc/efi/vars support' CONFIG_EFI_VARS
bool 'Networking support' CONFIG_NET
bool 'System V IPC' CONFIG_SYSVIPC
@@ -98,6 +108,8 @@
if [ "$CONFIG_IA64_HP_SIM" = "n" ]; then
+source drivers/acpi/Config.in
+
bool 'PCI support' CONFIG_PCI
source drivers/pci/Config.in
@@ -123,7 +135,7 @@
source drivers/mtd/Config.in
source drivers/pnp/Config.in
source drivers/block/Config.in
-source drivers/i2o/Config.in
+source drivers/message/i2o/Config.in
source drivers/md/Config.in
mainmenu_option next_comment
@@ -222,6 +234,10 @@
source drivers/usb/Config.in
+if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
+ source net/bluetooth/Config.in
+fi
+
fi # !HP_SIM
if [ "$CONFIG_IA64_HP_SIM" != "n" -o "$CONFIG_IA64_GENERIC" != "n" ]; then
@@ -240,20 +256,23 @@
mainmenu_option next_comment
comment 'Kernel hacking'
-#bool 'Debug kmalloc/kfree' CONFIG_DEBUG_MALLOC
-if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
- tristate 'Kernel support for IA-32 emulation' CONFIG_IA32_SUPPORT
- tristate 'Kernel FP software completion' CONFIG_MATHEMU
-else
- define_bool CONFIG_MATHEMU y
+choice 'Physical memory granularity' \
+ "16MB CONFIG_IA64_GRANULE_16MB \
+ 64MB CONFIG_IA64_GRANULE_64MB" 64MB
+
+bool 'Kernel debugging' CONFIG_DEBUG_KERNEL
+if [ "$CONFIG_DEBUG_KERNEL" != "n" ]; then
+ bool ' Print possible IA64 hazards to console' CONFIG_IA64_PRINT_HAZARDS
+ bool ' Disable VHPT' CONFIG_DISABLE_VHPT
+ bool ' Magic SysRq key' CONFIG_MAGIC_SYSRQ
+
+# early printk is currently broken for SMP: the secondary processors get stuck...
+# bool ' Early printk support (requires VGA!)' CONFIG_IA64_EARLY_PRINTK
+
+ bool ' Debug memory allocations' CONFIG_DEBUG_SLAB
+ bool ' Spinlock debugging' CONFIG_DEBUG_SPINLOCK
+ bool ' Turn on compare-and-exchange bug checking (slow!)' CONFIG_IA64_DEBUG_CMPXCHG
+ bool ' Turn on irq debug checks (slow!)' CONFIG_IA64_DEBUG_IRQ
fi
-
-bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
-bool 'Early printk support (requires VGA!)' CONFIG_IA64_EARLY_PRINTK
-bool 'Turn on compare-and-exchange bug checking (slow!)' CONFIG_IA64_DEBUG_CMPXCHG
-bool 'Turn on irq debug checks (slow!)' CONFIG_IA64_DEBUG_IRQ
-bool 'Print possible IA64 hazards to console' CONFIG_IA64_PRINT_HAZARDS
-bool 'Enable new unwind support' CONFIG_IA64_NEW_UNWIND
-bool 'Disable VHPT' CONFIG_DISABLE_VHPT
endmenu
Index: defconfig
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ia64/defconfig,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- defconfig 14 Jan 2001 19:48:57 -0000 1.1.1.1
+++ defconfig 10 Apr 2002 14:27:19 -0000 1.2
@@ -3,47 +3,125 @@
#
#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODVERSIONS=y
+# CONFIG_KMOD is not set
+
+#
# General setup
#
CONFIG_IA64=y
# CONFIG_ISA is not set
+# CONFIG_EISA is not set
+# CONFIG_MCA is not set
# CONFIG_SBUS is not set
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
+CONFIG_ACPI=y
+CONFIG_ACPI_EFI=y
+CONFIG_ACPI_INTERPRETER=y
+CONFIG_ACPI_KERNEL_CONFIG=y
+CONFIG_ITANIUM=y
+# CONFIG_MCKINLEY is not set
# CONFIG_IA64_GENERIC is not set
-CONFIG_IA64_HP_SIM=y
-# CONFIG_IA64_SGI_SN1_SIM is not set
-# CONFIG_IA64_DIG is not set
+CONFIG_IA64_DIG=y
+# CONFIG_IA64_HP_SIM is not set
+# CONFIG_IA64_SGI_SN1 is not set
+# CONFIG_IA64_SGI_SN2 is not set
# CONFIG_IA64_PAGE_SIZE_4KB is not set
# CONFIG_IA64_PAGE_SIZE_8KB is not set
CONFIG_IA64_PAGE_SIZE_16KB=y
# CONFIG_IA64_PAGE_SIZE_64KB is not set
+CONFIG_IA64_BRL_EMU=y
+# CONFIG_ITANIUM_BSTEP_SPECIFIC is not set
+CONFIG_IA64_L1_CACHE_SHIFT=6
+CONFIG_IA64_MCA=y
+CONFIG_PM=y
CONFIG_KCORE_ELF=y
-# CONFIG_SMP is not set
-# CONFIG_PERFMON is not set
-# CONFIG_NET is not set
-# CONFIG_SYSVIPC is not set
+CONFIG_SMP=y
+CONFIG_IA32_SUPPORT=y
+CONFIG_PERFMON=y
+CONFIG_IA64_PALINFO=y
+CONFIG_EFI_VARS=y
+CONFIG_NET=y
+CONFIG_SYSVIPC=y
# CONFIG_BSD_PROCESS_ACCT is not set
-# CONFIG_SYSCTL is not set
-# CONFIG_BINFMT_ELF is not set
+CONFIG_SYSCTL=y
+CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
+# CONFIG_ACPI_DEBUG is not set
+# CONFIG_ACPI_BUSMGR is not set
+# CONFIG_ACPI_SYS is not set
+# CONFIG_ACPI_CPU is not set
+# CONFIG_ACPI_BUTTON is not set
+# CONFIG_ACPI_AC is not set
+# CONFIG_ACPI_EC is not set
+# CONFIG_ACPI_CMBATT is not set
+# CONFIG_ACPI_THERMAL is not set
CONFIG_PCI=y
CONFIG_PCI_NAMES=y
# CONFIG_HOTPLUG is not set
# CONFIG_PCMCIA is not set
#
-# Code maturity level options
+# Parallel port support
#
-CONFIG_EXPERIMENTAL=y
+# CONFIG_PARPORT is not set
#
-# Loadable module support
+# Networking options
#
-# CONFIG_MODULES is not set
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+# CONFIG_NETLINK is not set
+# CONFIG_NETFILTER is not set
+CONFIG_FILTER=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_INET_ECN is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_IPV6 is not set
+# CONFIG_KHTTPD is not set
+# CONFIG_ATM is not set
+# CONFIG_VLAN_8021Q is not set
+
+#
+#
+#
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_DECNET is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_LLC is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_FASTROUTE is not set
+# CONFIG_NET_HW_FLOWCONTROL is not set
#
-# Parallel port support
+# QoS and/or fair queueing
#
-# CONFIG_PARPORT is not set
+# CONFIG_NET_SCHED is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
#
# Plug and Play configuration
@@ -58,14 +136,12 @@
# CONFIG_BLK_DEV_XD is not set
# CONFIG_PARIDE is not set
# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
-
-#
-# Additional Block Devices
-#
-# CONFIG_BLK_DEV_LOOP is not set
-# CONFIG_BLK_DEV_MD is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_BLK_DEV_INITRD is not set
#
# I2O device support
@@ -73,10 +149,23 @@
# CONFIG_I2O is not set
# CONFIG_I2O_PCI is not set
# CONFIG_I2O_BLOCK is not set
+# CONFIG_I2O_LAN is not set
# CONFIG_I2O_SCSI is not set
# CONFIG_I2O_PROC is not set
#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+# CONFIG_BLK_DEV_MD is not set
+# CONFIG_MD_LINEAR is not set
+# CONFIG_MD_RAID0 is not set
+# CONFIG_MD_RAID1 is not set
+# CONFIG_MD_RAID5 is not set
+# CONFIG_MD_MULTIPATH is not set
+# CONFIG_BLK_DEV_LVM is not set
+
+#
# ATA/IDE/MFM/RLL support
#
CONFIG_IDE=y
@@ -92,12 +181,21 @@
# CONFIG_BLK_DEV_HD_IDE is not set
# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_IDEDISK=y
-# CONFIG_IDEDISK_MULTI_MODE is not set
+CONFIG_IDEDISK_MULTI_MODE=y
+# CONFIG_BLK_DEV_IDEDISK_VENDOR is not set
+# CONFIG_BLK_DEV_IDEDISK_FUJITSU is not set
+# CONFIG_BLK_DEV_IDEDISK_IBM is not set
+# CONFIG_BLK_DEV_IDEDISK_MAXTOR is not set
+# CONFIG_BLK_DEV_IDEDISK_QUANTUM is not set
+# CONFIG_BLK_DEV_IDEDISK_SEAGATE is not set
+# CONFIG_BLK_DEV_IDEDISK_WD is not set
+# CONFIG_BLK_DEV_COMMERIAL is not set
+# CONFIG_BLK_DEV_TIVO is not set
# CONFIG_BLK_DEV_IDECS is not set
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
-# CONFIG_BLK_DEV_IDEFLOPPY is not set
-# CONFIG_BLK_DEV_IDESCSI is not set
+CONFIG_BLK_DEV_IDEFLOPPY=y
+CONFIG_BLK_DEV_IDESCSI=y
#
# IDE chipset support/bugfixes
@@ -109,45 +207,208 @@
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
+CONFIG_BLK_DEV_ADMA=y
# CONFIG_BLK_DEV_OFFBOARD is not set
-CONFIG_IDEDMA_PCI_AUTO=y
+# CONFIG_IDEDMA_PCI_AUTO is not set
CONFIG_BLK_DEV_IDEDMA=y
-CONFIG_IDEDMA_PCI_EXPERIMENTAL=y
# CONFIG_IDEDMA_PCI_WIP is not set
# CONFIG_IDEDMA_NEW_DRIVE_LISTINGS is not set
-# CONFIG_BLK_DEV_AEC6210 is not set
-# CONFIG_AEC6210_TUNING is not set
+# CONFIG_BLK_DEV_AEC62XX is not set
+# CONFIG_AEC62XX_TUNING is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_WDC_ALI15X3 is not set
-# CONFIG_BLK_DEV_AMD7409 is not set
-# CONFIG_AMD7409_OVERRIDE is not set
+# CONFIG_BLK_DEV_AMD74XX is not set
+# CONFIG_AMD74XX_OVERRIDE is not set
# CONFIG_BLK_DEV_CMD64X is not set
-# CONFIG_CMD64X_RAID is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CS5530 is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_HPT34X_AUTODMA is not set
# CONFIG_BLK_DEV_HPT366 is not set
-# CONFIG_HPT366_FIP is not set
-# CONFIG_HPT366_MODE3 is not set
CONFIG_BLK_DEV_PIIX=y
-CONFIG_PIIX_TUNING=y
+# CONFIG_PIIX_TUNING is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_OPTI621 is not set
# CONFIG_BLK_DEV_PDC202XX is not set
# CONFIG_PDC202XX_BURST is not set
-# CONFIG_PDC202XX_MASTER is not set
+# CONFIG_PDC202XX_FORCE is not set
+# CONFIG_BLK_DEV_SVWKS is not set
# CONFIG_BLK_DEV_SIS5513 is not set
+# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_VIA82CXXX is not set
# CONFIG_IDE_CHIPSETS is not set
-CONFIG_IDEDMA_AUTO=y
+# CONFIG_IDEDMA_AUTO is not set
+# CONFIG_IDEDMA_IVB is not set
+# CONFIG_DMA_NONPCI is not set
CONFIG_BLK_DEV_IDE_MODES=y
+# CONFIG_BLK_DEV_ATARAID is not set
+# CONFIG_BLK_DEV_ATARAID_PDC is not set
+# CONFIG_BLK_DEV_ATARAID_HPT is not set
#
# SCSI support
#
-# CONFIG_SCSI is not set
+CONFIG_SCSI=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+CONFIG_SD_EXTRA_DEVS=40
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+# CONFIG_BLK_DEV_SR is not set
+# CONFIG_CHR_DEV_SG is not set
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+CONFIG_SCSI_DEBUG_QUEUES=y
+# CONFIG_SCSI_MULTI_LUN is not set
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+
+#
+# SCSI low-level drivers
+#
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_7000FASST is not set
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_AHA152X is not set
+# CONFIG_SCSI_AHA1542 is not set
+# CONFIG_SCSI_AHA1740 is not set
+# CONFIG_SCSI_AIC7XXX is not set
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+# CONFIG_SCSI_DPT_I2O is not set
+# CONFIG_SCSI_ADVANSYS is not set
+# CONFIG_SCSI_IN2000 is not set
+# CONFIG_SCSI_AM53C974 is not set
+# CONFIG_SCSI_MEGARAID is not set
+# CONFIG_SCSI_BUSLOGIC is not set
+# CONFIG_SCSI_CPQFCTS is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_DTC3280 is not set
+# CONFIG_SCSI_EATA is not set
+# CONFIG_SCSI_EATA_DMA is not set
+# CONFIG_SCSI_EATA_PIO is not set
+# CONFIG_SCSI_FUTURE_DOMAIN is not set
+# CONFIG_SCSI_GDTH is not set
+# CONFIG_SCSI_GENERIC_NCR5380 is not set
+# CONFIG_SCSI_INITIO is not set
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_NCR53C406A is not set
+# CONFIG_SCSI_NCR53C7xx is not set
+# CONFIG_SCSI_NCR53C8XX is not set
+# CONFIG_SCSI_SYM53C8XX is not set
+# CONFIG_SCSI_PAS16 is not set
+# CONFIG_SCSI_PCI2000 is not set
+# CONFIG_SCSI_PCI2220I is not set
+# CONFIG_SCSI_PSI240I is not set
+# CONFIG_SCSI_QLOGIC_FAS is not set
+# CONFIG_SCSI_QLOGIC_ISP is not set
+# CONFIG_SCSI_QLOGIC_FC is not set
+CONFIG_SCSI_QLOGIC_1280=y
+# CONFIG_SCSI_QLOGIC_QLA2100 is not set
+# CONFIG_SCSI_SIM710 is not set
+# CONFIG_SCSI_SYM53C416 is not set
+# CONFIG_SCSI_DC390T is not set
+# CONFIG_SCSI_T128 is not set
+# CONFIG_SCSI_U14_34F is not set
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+CONFIG_DUMMY=y
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+# CONFIG_SUNLANCE is not set
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNBMAC is not set
+# CONFIG_SUNQE is not set
+# CONFIG_SUNLANCE is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_LANCE is not set
+# CONFIG_NET_VENDOR_SMC is not set
+# CONFIG_NET_VENDOR_RACAL is not set
+# CONFIG_HP100 is not set
+# CONFIG_NET_ISA is not set
+CONFIG_NET_PCI=y
+# CONFIG_PCNET32 is not set
+# CONFIG_ADAPTEC_STARFIRE is not set
+# CONFIG_APRICOT is not set
+# CONFIG_CS89x0 is not set
+# CONFIG_TULIP is not set
+# CONFIG_DE4X5 is not set
+# CONFIG_DGRS is not set
+# CONFIG_DM9102 is not set
+CONFIG_EEPRO100=y
+# CONFIG_LNE390 is not set
+# CONFIG_FEALNX is not set
+# CONFIG_NATSEMI is not set
+# CONFIG_NE2K_PCI is not set
+# CONFIG_NE3210 is not set
+# CONFIG_ES3210 is not set
+# CONFIG_8139CP is not set
+# CONFIG_8139TOO is not set
+# CONFIG_8139TOO_PIO is not set
+# CONFIG_8139TOO_TUNE_TWISTER is not set
+# CONFIG_8139TOO_8129 is not set
+# CONFIG_SIS900 is not set
+# CONFIG_EPIC100 is not set
+# CONFIG_SUNDANCE is not set
+# CONFIG_TLAN is not set
+# CONFIG_VIA_RHINE is not set
+# CONFIG_WINBOND_840 is not set
+# CONFIG_NET_POCKET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+# CONFIG_ACENIC is not set
+# CONFIG_DL2K is not set
+# CONFIG_MYRI_SBUS is not set
+# CONFIG_NS83820 is not set
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+# CONFIG_SK98LIN is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PLIP is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+# CONFIG_NET_RADIO is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+# CONFIG_NET_FC is not set
+# CONFIG_RCPCI is not set
+# CONFIG_SHAPER is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
#
# Amateur Radio support
@@ -165,13 +426,28 @@
# CONFIG_CD_NO_IDESCSI is not set
#
+# Input core support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_KEYBDEV=y
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+
+#
# Character devices
#
-# CONFIG_VT is not set
-# CONFIG_SERIAL is not set
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_SERIAL=y
+CONFIG_SERIAL_CONSOLE=y
+# CONFIG_SERIAL_ACPI is not set
# CONFIG_SERIAL_EXTENDED is not set
# CONFIG_SERIAL_NONSTANDARD is not set
-# CONFIG_UNIX98_PTYS is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNIX98_PTY_COUNT=256
#
# I2C support
@@ -182,26 +458,55 @@
# Mice
#
# CONFIG_BUSMOUSE is not set
-# CONFIG_MOUSE is not set
+CONFIG_MOUSE=y
+CONFIG_PSMOUSE=y
+# CONFIG_82C710_MOUSE is not set
+# CONFIG_PC110_PAD is not set
+
+#
+# Joysticks
+#
+# CONFIG_INPUT_GAMEPORT is not set
+# CONFIG_INPUT_NS558 is not set
+# CONFIG_INPUT_LIGHTNING is not set
+# CONFIG_INPUT_PCIGAME is not set
+# CONFIG_INPUT_CS461X is not set
+# CONFIG_INPUT_EMU10K1 is not set
+CONFIG_INPUT_SERIO=y
+CONFIG_INPUT_SERPORT=y
#
# Joysticks
#
-# CONFIG_JOYSTICK is not set
+# CONFIG_INPUT_ANALOG is not set
+# CONFIG_INPUT_A3D is not set
+# CONFIG_INPUT_ADI is not set
+# CONFIG_INPUT_COBRA is not set
+# CONFIG_INPUT_GF2K is not set
+# CONFIG_INPUT_GRIP is not set
+# CONFIG_INPUT_INTERACT is not set
+# CONFIG_INPUT_TMDC is not set
+# CONFIG_INPUT_SIDEWINDER is not set
+# CONFIG_INPUT_IFORCE_USB is not set
+# CONFIG_INPUT_IFORCE_232 is not set
+# CONFIG_INPUT_WARRIOR is not set
+# CONFIG_INPUT_MAGELLAN is not set
+# CONFIG_INPUT_SPACEORB is not set
+# CONFIG_INPUT_SPACEBALL is not set
+# CONFIG_INPUT_STINGER is not set
+# CONFIG_INPUT_DB9 is not set
+# CONFIG_INPUT_GAMECON is not set
+# CONFIG_INPUT_TURBOGRAFX is not set
# CONFIG_QIC02_TAPE is not set
#
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
+# CONFIG_INTEL_RNG is not set
# CONFIG_NVRAM is not set
# CONFIG_RTC is not set
CONFIG_EFI_RTC=y
-
-#
-# Video For Linux
-#
-# CONFIG_VIDEO_DEV is not set
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
@@ -210,69 +515,366 @@
# Ftape, the floppy tape device driver
#
# CONFIG_FTAPE is not set
-# CONFIG_DRM is not set
-# CONFIG_DRM_TDFX is not set
-# CONFIG_AGP is not set
+CONFIG_AGP=y
+# CONFIG_AGP_INTEL is not set
+CONFIG_AGP_I460=y
+# CONFIG_AGP_I810 is not set
+# CONFIG_AGP_VIA is not set
+# CONFIG_AGP_AMD is not set
+# CONFIG_AGP_SIS is not set
+# CONFIG_AGP_ALI is not set
+# CONFIG_AGP_SWORKS is not set
+CONFIG_DRM=y
+# CONFIG_DRM_NEW is not set
+CONFIG_DRM_OLD=y
+CONFIG_DRM40_TDFX=y
+# CONFIG_DRM40_GAMMA is not set
+# CONFIG_DRM40_R128 is not set
+# CONFIG_DRM40_RADEON is not set
+# CONFIG_DRM40_I810 is not set
+# CONFIG_DRM40_MGA is not set
#
-# USB support
+# Multimedia devices
+#
+CONFIG_VIDEO_DEV=y
+
+#
+# Video For Linux
#
-# CONFIG_USB is not set
+CONFIG_VIDEO_PROC_FS=y
+# CONFIG_I2C_PARPORT is not set
+
+#
+# Video Adapters
+#
+# CONFIG_VIDEO_PMS is not set
+# CONFIG_VIDEO_CPIA is not set
+# CONFIG_VIDEO_SAA5249 is not set
+# CONFIG_TUNER_3036 is not set
+# CONFIG_VIDEO_STRADIS is not set
+# CONFIG_VIDEO_ZORAN is not set
+# CONFIG_VIDEO_ZR36120 is not set
+# CONFIG_VIDEO_MEYE is not set
+
+#
+# Radio Adapters
+#
+# CONFIG_RADIO_CADET is not set
+# CONFIG_RADIO_RTRACK is not set
+# CONFIG_RADIO_RTRACK2 is not set
+# CONFIG_RADIO_AZTECH is not set
+# CONFIG_RADIO_GEMTEK is not set
+# CONFIG_RADIO_GEMTEK_PCI is not set
+# CONFIG_RADIO_MAXIRADIO is not set
+# CONFIG_RADIO_MAESTRO is not set
+# CONFIG_RADIO_MIROPCM20 is not set
+# CONFIG_RADIO_MIROPCM20_RDS is not set
+# CONFIG_RADIO_SF16FMI is not set
+# CONFIG_RADIO_TERRATEC is not set
+# CONFIG_RADIO_TRUST is not set
+# CONFIG_RADIO_TYPHOON is not set
+# CONFIG_RADIO_ZOLTRIX is not set
#
# File systems
#
# CONFIG_QUOTA is not set
-# CONFIG_AUTOFS_FS is not set
+CONFIG_AUTOFS_FS=y
# CONFIG_AUTOFS4_FS is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_REISERFS_CHECK is not set
# CONFIG_ADFS_FS is not set
+# CONFIG_ADFS_FS_RW is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_BFS_FS is not set
-# CONFIG_FAT_FS is not set
-# CONFIG_MSDOS_FS is not set
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
# CONFIG_UMSDOS_FS is not set
-# CONFIG_VFAT_FS is not set
+CONFIG_VFAT_FS=y
# CONFIG_EFS_FS is not set
+# CONFIG_JFFS_FS is not set
+# CONFIG_JFFS2_FS is not set
# CONFIG_CRAMFS is not set
-# CONFIG_ISO9660_FS is not set
+# CONFIG_TMPFS is not set
+# CONFIG_RAMFS is not set
+CONFIG_ISO9660_FS=y
# CONFIG_JOLIET is not set
+# CONFIG_ZISOFS is not set
# CONFIG_MINIX_FS is not set
+# CONFIG_VXFS_FS is not set
# CONFIG_NTFS_FS is not set
+# CONFIG_NTFS_RW is not set
# CONFIG_HPFS_FS is not set
-# CONFIG_PROC_FS is not set
+CONFIG_PROC_FS=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVFS_MOUNT is not set
# CONFIG_DEVFS_DEBUG is not set
-# CONFIG_DEVPTS_FS is not set
+CONFIG_DEVPTS_FS=y
# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX4FS_RW is not set
# CONFIG_ROMFS_FS is not set
-# CONFIG_EXT2_FS is not set
+CONFIG_EXT2_FS=y
# CONFIG_SYSV_FS is not set
# CONFIG_UDF_FS is not set
+# CONFIG_UDF_RW is not set
# CONFIG_UFS_FS is not set
+# CONFIG_UFS_FS_WRITE is not set
+
+#
+# Network File Systems
+#
+# CONFIG_CODA_FS is not set
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+# CONFIG_ROOT_NFS is not set
+CONFIG_NFSD=y
+CONFIG_NFSD_V3=y
+CONFIG_SUNRPC=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+# CONFIG_SMB_FS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+# CONFIG_NCPFS_NFS_NS is not set
+# CONFIG_NCPFS_OS2_NS is not set
+# CONFIG_NCPFS_SMALLDOS is not set
+# CONFIG_NCPFS_NLS is not set
+# CONFIG_NCPFS_EXTRAS is not set
+# CONFIG_ZISOFS_FS is not set
+# CONFIG_ZLIB_FS_INFLATE is not set
#
# Partition Types
#
-# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
CONFIG_MSDOS_PARTITION=y
-# CONFIG_NLS is not set
-# CONFIG_NLS is not set
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+CONFIG_EFI_PARTITION=y
+# CONFIG_DEVFS_GUID is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_SMB_NLS is not set
+CONFIG_NLS=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS_DEFAULT="iso8859-1"
+# CONFIG_NLS_CODEPAGE_437 is not set
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ISO8859_1 is not set
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+
+#
+# Console drivers
+#
+CONFIG_VGA_CONSOLE=y
+
+#
+# Frame-buffer support
+#
+# CONFIG_FB is not set
#
# Sound
#
-# CONFIG_SOUND is not set
+CONFIG_SOUND=y
+# CONFIG_SOUND_BT878 is not set
+# CONFIG_SOUND_CMPCI is not set
+# CONFIG_SOUND_EMU10K1 is not set
+# CONFIG_MIDI_EMU10K1 is not set
+# CONFIG_SOUND_FUSION is not set
+CONFIG_SOUND_CS4281=y
+# CONFIG_SOUND_ES1370 is not set
+# CONFIG_SOUND_ES1371 is not set
+# CONFIG_SOUND_ESSSOLO1 is not set
+# CONFIG_SOUND_MAESTRO is not set
+# CONFIG_SOUND_MAESTRO3 is not set
+# CONFIG_SOUND_ICH is not set
+# CONFIG_SOUND_RME96XX is not set
+# CONFIG_SOUND_SONICVIBES is not set
+# CONFIG_SOUND_TRIDENT is not set
+# CONFIG_SOUND_MSNDCLAS is not set
+# CONFIG_SOUND_MSNDPIN is not set
+# CONFIG_SOUND_VIA82CXXX is not set
+# CONFIG_MIDI_VIA82CXXX is not set
+# CONFIG_SOUND_OSS is not set
+# CONFIG_SOUND_TVMIXER is not set
+
+#
+# USB support
+#
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_BANDWIDTH is not set
+# CONFIG_USB_LONG_TIMEOUT is not set
+
+#
+# USB Controllers
+#
+CONFIG_USB_UHCI=m
+# CONFIG_USB_UHCI_ALT is not set
+# CONFIG_USB_OHCI is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_AUDIO is not set
+# CONFIG_USB_BLUETOOTH is not set
+# CONFIG_USB_STORAGE is not set
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_DPCM is not set
+# CONFIG_USB_STORAGE_HP8200e is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+
+#
+# USB Human Interface Devices (HID)
+#
+CONFIG_USB_HID=m
+CONFIG_USB_HIDDEV=y
+CONFIG_USB_KBD=m
+CONFIG_USB_MOUSE=m
+# CONFIG_USB_WACOM is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_DC2XX is not set
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_SCANNER is not set
+# CONFIG_USB_MICROTEK is not set
+# CONFIG_USB_HPUSBSCSI is not set
+
+#
+# USB Multimedia devices
+#
+# CONFIG_USB_IBMCAM is not set
+# CONFIG_USB_OV511 is not set
+# CONFIG_USB_PWC is not set
+# CONFIG_USB_SE401 is not set
+# CONFIG_USB_DSBR is not set
+# CONFIG_USB_DABUSB is not set
+
+#
+# USB Network adaptors
+#
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_CDCETHER is not set
+# CONFIG_USB_USBNET is not set
+
+#
+# USB port drivers
+#
+# CONFIG_USB_USS720 is not set
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+# CONFIG_USB_SERIAL_GENERIC is not set
+# CONFIG_USB_SERIAL_BELKIN is not set
+# CONFIG_USB_SERIAL_WHITEHEAT is not set
+# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
+# CONFIG_USB_SERIAL_EMPEG is not set
+# CONFIG_USB_SERIAL_FTDI_SIO is not set
+# CONFIG_USB_SERIAL_VISOR is not set
+# CONFIG_USB_SERIAL_IR is not set
+# CONFIG_USB_SERIAL_EDGEPORT is not set
+# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
+# CONFIG_USB_SERIAL_KEYSPAN is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set
+# CONFIG_USB_SERIAL_MCT_U232 is not set
+# CONFIG_USB_SERIAL_PL2303 is not set
+# CONFIG_USB_SERIAL_CYBERJACK is not set
+# CONFIG_USB_SERIAL_XIRCOM is not set
+# CONFIG_USB_SERIAL_OMNINET is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_RIO500 is not set
+
+#
+# Bluetooth support
+#
+# CONFIG_BLUEZ is not set
#
# Kernel hacking
#
-# CONFIG_IA32_SUPPORT is not set
-# CONFIG_MATHEMU is not set
-# CONFIG_MAGIC_SYSRQ is not set
-# CONFIG_IA64_EARLY_PRINTK is not set
+# CONFIG_IA64_GRANULE_16MB is not set
+CONFIG_IA64_GRANULE_64MB=y
+CONFIG_DEBUG_KERNEL=y
+CONFIG_IA64_PRINT_HAZARDS=y
+# CONFIG_DISABLE_VHPT is not set
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_DEBUG_SLAB is not set
+# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_IA64_DEBUG_CMPXCHG is not set
# CONFIG_IA64_DEBUG_IRQ is not set
-# CONFIG_IA64_PRINT_HAZARDS is not set
-# CONFIG_KDB is not set
Index: vmlinux.lds.S
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ia64/vmlinux.lds.S,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- vmlinux.lds.S 14 Jan 2001 19:48:58 -0000 1.1.1.1
+++ vmlinux.lds.S 10 Apr 2002 14:27:19 -0000 1.2
@@ -5,10 +5,18 @@
OUTPUT_FORMAT("elf64-ia64-little")
OUTPUT_ARCH(ia64)
-ENTRY(_start)
+ENTRY(phys_start)
SECTIONS
{
+ /* Sections to be discarded */
+ /DISCARD/ : {
+ *(.text.exit)
+ *(.data.exit)
+ *(.exitcall.exit)
+ }
+
v = PAGE_OFFSET; /* this symbol is here to make debugging easier... */
+ phys_start = _start - PAGE_OFFSET;
. = KERNEL_START;
@@ -16,11 +24,11 @@
_stext = .;
.text : AT(ADDR(.text) - PAGE_OFFSET)
{
- *(__ivt_section)
- /* these are not really text pages, but the zero page needs to be in a fixed location: */
+ *(.text.ivt)
+ /* these are not really text pages, but they need to be page aligned: */
*(__special_page_section)
__start_gate_section = .;
- *(__gate_section)
+ *(.text.gate)
__stop_gate_section = .;
*(.text)
}
@@ -34,7 +42,7 @@
/* Read-only data */
- __gp = ALIGN(8) + 0x200000;
+ __gp = ALIGN(16) + 0x200000; /* gp must be 16-byte aligned for exc. table */
/* Global data */
_data = .;
@@ -60,16 +68,22 @@
{ *(__ksymtab) }
__stop___ksymtab = .;
- /* Unwind table */
+ __start___kallsyms = .; /* All kernel symbols for debugging */
+ __kallsyms : AT(ADDR(__kallsyms) - PAGE_OFFSET)
+ { *(__kallsyms) }
+ __stop___kallsyms = .;
+
+ /* Unwind info & table: */
+ . = ALIGN(8);
+ .IA_64.unwind_info : AT(ADDR(.IA_64.unwind_info) - PAGE_OFFSET)
+ { *(.IA_64.unwind_info*) }
ia64_unw_start = .;
.IA_64.unwind : AT(ADDR(.IA_64.unwind) - PAGE_OFFSET)
- { *(.IA_64.unwind) }
+ { *(.IA_64.unwind*) }
ia64_unw_end = .;
- .IA_64.unwind_info : AT(ADDR(.IA_64.unwind_info) - PAGE_OFFSET)
- { *(.IA_64.unwind_info) }
.rodata : AT(ADDR(.rodata) - PAGE_OFFSET)
- { *(.rodata) }
+ { *(.rodata) *(.rodata.*) }
.kstrtab : AT(ADDR(.kstrtab) - PAGE_OFFSET)
{ *(.kstrtab) }
.opd : AT(ADDR(.opd) - PAGE_OFFSET)
@@ -129,13 +143,6 @@
{ *(.bss) *(COMMON) }
. = ALIGN(64 / 8);
_end = .;
-
- /* Sections to be discarded */
- /DISCARD/ : {
- *(.text.exit)
- *(.data.exit)
- *(.exitcall.exit)
- }
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
|
|
From: Andy P. <at...@us...> - 2002-04-10 18:40:36
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/mips/philips/nino/ramdisk In directory usw-pr-cvs1:/tmp/cvs-serv20641/mips/philips/nino/ramdisk Log Message: Directory /cvsroot/linux-vax/kernel-2.4/arch/mips/philips/nino/ramdisk added to the repository |