Linux Kernel Patch v2.2, patch-2.2.8 (00/33)

7 views
Skip to first unread message

Thomas...@ciw.uni-karlsruhe.de

unread,
May 12, 1999, 3:00:00 AM5/12/99
to
Archive-name: v2.2/patch-2.2.8/part00

lines added deleted
linux/CREDITS : 23 10 0
linux/Documentation/00-INDEX : 49 6 6
linux/Documentation/ARM-README : 35 7 7
linux/Documentation/Changes : 28 4 4
linux/Documentation/Configure.help : 1293 522 258
linux/Documentation/arm/Netwinder : 78 78 0
linux/Documentation/arm/README : 139 139 0
linux/Documentation/arm/nwfpe/NOTES : 29 29 0
linux/Documentation/arm/nwfpe/README : 70 70 0
linux/Documentation/arm/nwfpe/README.FPE : 156 156 0
linux/Documentation/arm/nwfpe/TODO : 67 67 0
linux/Documentation/digiboard.txt : 29 4 4
linux/Documentation/digiepca.txt : 17 2 2
linux/Documentation/fb/matroxfb.txt : 137 27 27
linux/Documentation/fb/vesafb.txt : 51 8 8
linux/Documentation/filesystems/00-INDEX : 7 2 0
linux/Documentation/filesystems/adfs.txt : 57 57 0
linux/Documentation/filesystems/coda.txt : 8 1 1
linux/Documentation/filesystems/smbfs.txt : 8 1 1
linux/Documentation/filesystems/vfat.txt : 8 1 1
linux/Documentation/ftape.txt : 12 3 3
linux/Documentation/kernel-docs.txt : 48 7 7
linux/Documentation/m68k/kernel-options.txt : 192 83 29
linux/Documentation/mtrr.txt : 23 17 0
linux/Documentation/networking/filter.txt : 8 1 1
linux/Documentation/networking/ip-sysctl.txt : 32 4 4
linux/Documentation/networking/ipddp.txt : 59 13 13
linux/Documentation/networking/lapb-module.txt : 8 1 1
linux/Documentation/networking/pt.txt : 8 1 1
linux/Documentation/networking/routing.txt : 7 1 1
linux/Documentation/powerpc/smp.txt : 22 7 4
linux/Documentation/sound/AD1816 : 32 12 3
linux/Documentation/sound/AWE32 : 8 1 1
linux/Documentation/sound/AudioExcelDSP16 : 8 1 1
linux/Documentation/sound/ChangeLog.awe : 8 1 1
linux/Documentation/sound/INSTALL.awe : 35 4 4
linux/Documentation/sound/Introduction : 17 2 2
linux/Documentation/sound/MAD16 : 12 9 0
linux/Documentation/sound/OPL3-SA : 36 6 6
linux/Documentation/sound/README.OSS : 28 4 4
linux/Documentation/sound/README.awe : 86 14 14
linux/Documentation/sound/Wavefront : 8 1 1
linux/Documentation/sysctl/vm.txt : 8 1 1
linux/Documentation/video4linux/bttv/INSTALL : 8 1 1
linux/MAINTAINERS : 16 2 2
linux/Makefile : 7 1 1
linux/REPORTING-BUGS : 21 3 3
linux/arch/alpha/config.in : 33 1 8
linux/arch/alpha/kernel/entry.S : 757 269 277
linux/arch/alpha/kernel/osf_sys.c : 84 28 10
linux/arch/alpha/kernel/process.c : 78 19 12
linux/arch/alpha/kernel/smp.c : 73 21 4
linux/arch/alpha/kernel/traps.c : 138 29 37
linux/arch/alpha/lib/copy_user.S : 8 1 1
linux/arch/alpha/math-emu/fp-emul.c : 170 50 39
linux/arch/alpha/math-emu/ieee-math.c : 50 39 0
linux/arch/alpha/math-emu/ieee-math.h : 7 2 0
linux/arch/arm/kernel/sys_arm.c : 16 4 2
linux/arch/arm/mm/Makefile : 47 10 17
linux/arch/arm/mm/fault-armo.c : 234 26 135
linux/arch/arm/mm/fault-armv.c : 642 353 172
linux/arch/arm/mm/fault-common.c : 188 188 0
linux/arch/arm/mm/init.c : 172 66 24
linux/arch/arm/mm/ioremap.c : 149 149 0
linux/arch/arm/mm/mm-arc.c : 82 0 82
linux/arch/arm/mm/mm-armv.c : 19 4 2
linux/arch/arm/mm/mm-ebsa285.c : 39 0 39
linux/arch/arm/mm/mm-footbridge.c : 91 91 0
linux/arch/arm/mm/mm-vnc.c : 31 0 31
linux/arch/arm/mm/proc-arm2,3.S : 72 12 8
linux/arch/arm/mm/proc-arm6,7.S : 102 48 13
linux/arch/arm/mm/proc-sa110.S : 301 71 51
linux/arch/arm/mm/small_page.c : 165 49 24
linux/arch/i386/kernel/entry.S : 9 2 0
linux/arch/i386/kernel/i386_ksyms.c : 16 2 1
linux/arch/i386/kernel/io_apic.c : 39 6 4
linux/arch/i386/kernel/irq.c : 133 30 17
linux/arch/i386/kernel/irq.h : 24 2 2
linux/arch/i386/kernel/mca.c : 171 32 19
linux/arch/i386/kernel/mtrr.c : 1249 696 211
linux/arch/i386/kernel/process.c : 17 4 0
linux/arch/i386/kernel/setup.c : 129 24 17
linux/arch/i386/kernel/smp.c : 207 99 26
linux/arch/i386/kernel/time.c : 43 7 5
linux/arch/i386/kernel/visws_apic.c : 16 5 3
linux/arch/m68k/Makefile : 35 15 0
linux/arch/m68k/bvme6000/config.c : 12 2 2
linux/arch/m68k/config.in : 214 101 12
linux/arch/m68k/kernel/entry.S : 42 19 1
linux/arch/m68k/kernel/head.S : 300 139 9
linux/arch/m68k/kernel/ints.c : 35 14 0
linux/arch/m68k/kernel/m68k_defs.h : 50 44 3
linux/arch/m68k/kernel/m68k_ksyms.c : 22 4 0
linux/arch/m68k/kernel/process.c : 25 2 10
linux/arch/m68k/kernel/ptrace.c : 42 6 5
linux/arch/m68k/kernel/setup.c : 148 85 3
linux/arch/m68k/kernel/time.c : 6 1 1
linux/arch/m68k/lib/semaphore.S : 16 10 0
linux/arch/m68k/mm/init.c : 70 13 9
linux/arch/m68k/mm/kmap.c : 83 21 6
linux/arch/m68k/mm/memory.c : 52 7 7
linux/arch/m68k/mvme147/147ints.c : 142 142 0
linux/arch/m68k/mvme147/Makefile : 14 14 0
linux/arch/m68k/mvme147/config.c : 240 240 0
linux/arch/m68k/mvme16x/config.c : 12 2 2
linux/arch/m68k/q40/Makefile : 14 14 0
linux/arch/m68k/q40/README : 121 121 0
linux/arch/m68k/q40/config.c : 425 425 0
linux/arch/m68k/q40/q40ints.c : 347 347 0
linux/arch/m68k/sun3x/Makefile : 14 14 0
linux/arch/m68k/sun3x/config.c : 128 128 0
linux/arch/m68k/sun3x/dvma.c : 162 162 0
linux/arch/m68k/sun3x/sbus.c : 44 44 0
linux/arch/m68k/sun3x/time.c : 83 83 0
linux/arch/m68k/sun3x/time.h : 9 9 0
linux/arch/mips/kernel/irixioctl.c : 17 4 2
linux/arch/mips/kernel/sysirix.c : 481 90 91
linux/arch/ppc/boot/Makefile : 35 4 4
linux/arch/ppc/boot/head.S : 42 16 6
linux/arch/ppc/boot/kbd.c : 11 5 0
linux/arch/ppc/boot/misc.c : 157 46 17
linux/arch/ppc/boot/mkprep.c : 28 2 9
linux/arch/ppc/common_defconfig : 235 91 15
linux/arch/ppc/config.in : 56 20 7
linux/arch/ppc/defconfig : 232 73 24
linux/arch/ppc/kernel/Makefile : 18 3 2
linux/arch/ppc/kernel/align.c : 45 4 20
linux/arch/ppc/kernel/apus_setup.c : 255 231 0
linux/arch/ppc/kernel/chrp_pci.c : 382 145 128
linux/arch/ppc/kernel/chrp_setup.c : 568 431 48
linux/arch/ppc/kernel/head.S : 268 87 65
linux/arch/ppc/kernel/i8259.c : 130 130 0
linux/arch/ppc/kernel/i8259.h : 12 12 0
linux/arch/ppc/kernel/idle.c : 22 9 2
linux/arch/ppc/kernel/indirect_pci.c : 121 121 0
linux/arch/ppc/kernel/irq.c : 1012 81 800
linux/arch/ppc/kernel/local_irq.h : 45 45 0
linux/arch/ppc/kernel/mbx_pci.c : 20 17 0
linux/arch/ppc/kernel/mbx_setup.c : 404 351 26
linux/arch/ppc/kernel/misc.S : 93 31 14
linux/arch/ppc/kernel/mk_defs.c : 16 1 2
linux/arch/ppc/kernel/open_pic.c : 48 48 0
linux/arch/ppc/kernel/open_pic.h : 11 11 0
linux/arch/ppc/kernel/openpic.c : 9 3 0
linux/arch/ppc/kernel/pci.c : 301 14 235
linux/arch/ppc/kernel/pci.h : 36 36 0
linux/arch/ppc/kernel/pmac_pci.c : 59 47 0
linux/arch/ppc/kernel/pmac_pic.c : 362 362 0
linux/arch/ppc/kernel/pmac_pic.h : 15 15 0
linux/arch/ppc/kernel/pmac_setup.c : 242 206 6
linux/arch/ppc/kernel/ppc8xx_pic.c : 49 49 0
linux/arch/ppc/kernel/ppc8xx_pic.h : 9 9 0
linux/arch/ppc/kernel/ppc_ksyms.c : 89 14 12
linux/arch/ppc/kernel/prep_nvram.c : 173 173 0
linux/arch/ppc/kernel/prep_pci.c : 910 559 180
linux/arch/ppc/kernel/prep_setup.c : 625 562 1
linux/arch/ppc/kernel/prep_time.c : 360 136 167
linux/arch/ppc/kernel/process.c : 207 53 44
linux/arch/ppc/kernel/prom.c : 63 10 3
linux/arch/ppc/kernel/ptrace.c : 32 4 15
linux/arch/ppc/kernel/setup.c : 761 225 370
linux/arch/ppc/kernel/signal.c : 40 5 15
linux/arch/ppc/kernel/smp.c : 22 5 1
linux/arch/ppc/kernel/syscalls.c : 16 4 1
linux/arch/ppc/kernel/time.c : 290 20 211
linux/arch/ppc/kernel/time.h : 40 2 19
linux/arch/ppc/kernel/traps.c : 15 2 7
linux/arch/ppc/lib/strcase.c : 14 11 0
linux/arch/ppc/mbxboot/head.S : 17 2 2
linux/arch/ppc/mm/fault.c : 9 2 1
linux/arch/ppc/mm/init.c : 226 92 29
linux/arch/sparc/kernel/entry.S : 14 2 2
linux/arch/sparc/kernel/process.c : 23 5 1
linux/arch/sparc/kernel/sun4d_smp.c : 15 2 0
linux/arch/sparc/kernel/sun4m_smp.c : 15 2 0
linux/arch/sparc/kernel/sys_sparc.c : 14 2 2
linux/arch/sparc/mm/iommu.c : 85 9 54
linux/arch/sparc64/kernel/cpu.c : 8 1 1
linux/arch/sparc64/kernel/devices.c : 10 4 1
linux/arch/sparc64/kernel/ebus.c : 25 1 7
linux/arch/sparc64/kernel/entry.S : 13 2 1
linux/arch/sparc64/kernel/ioctl32.c : 321 282 1
linux/arch/sparc64/kernel/process.c : 23 5 1
linux/arch/sparc64/kernel/smp.c : 50 3 7
linux/arch/sparc64/kernel/sparc64_ksyms.c : 21 1 3
linux/arch/sparc64/mm/init.c : 15 2 3
linux/drivers/Makefile : 12 5 1
linux/drivers/block/Config.in : 22 9 7
linux/drivers/block/ide-cd.h : 8 1 1
linux/drivers/block/ide.c : 8 1 1
linux/drivers/block/rd.c : 273 90 29
linux/drivers/cdrom/cdrom.c : 69 14 9
linux/drivers/cdrom/mcdx.h : 10 2 0
linux/drivers/char/Config.in : 9 3 0
linux/drivers/char/Makefile : 29 10 2
linux/drivers/char/adbmouse.c : 8 1 1
linux/drivers/char/isicom.c : 23 17 0
linux/drivers/char/lp.c : 38 7 7
linux/drivers/char/mem.c : 28 9 1
linux/drivers/char/planb.c : 2389 2389 0
linux/drivers/char/planb.h : 229 229 0
linux/drivers/char/radio-cadet.c : 426 241 30
linux/drivers/char/radio-typhoon.c : 10 4 0
linux/drivers/char/radio-zoltrix.c : 134 26 30
linux/drivers/char/saa7196.h : 117 117 0
linux/drivers/char/specialix.c : 9 3 0
linux/drivers/isdn/act2000/act2000.h : 8 1 1
linux/drivers/isdn/act2000/module.c : 81 12 12
linux/drivers/macintosh/Makefile : 23 9 1
linux/drivers/macintosh/adb.c : 281 134 50
linux/drivers/macintosh/mac_keyb.c : 431 240 71
linux/drivers/macintosh/macio-adb.c : 61 25 7
linux/drivers/macintosh/macserial.c : 233 150 12
linux/drivers/macintosh/nvram.c : 70 30 2
linux/drivers/macintosh/via-cuda.c : 141 41 16
linux/drivers/macintosh/via-pmu.c : 385 125 99
linux/drivers/misc/Makefile : 43 30 0
linux/drivers/misc/multiface.h : 20 20 0
linux/drivers/misc/parport_amiga.c : 322 322 0
linux/drivers/misc/parport_atari.c : 263 263 0
linux/drivers/misc/parport_ieee1284.c : 30 5 8
linux/drivers/misc/parport_init.c : 15 9 0
linux/drivers/misc/parport_mfc3.c : 420 420 0
linux/drivers/misc/parport_pc.c : 148 72 11
linux/drivers/net/3c507.c : 68 14 0
linux/drivers/net/3c509.c : 8 1 1
linux/drivers/net/8390.c : 19 2 4
linux/drivers/net/de4x5.c : 199 69 44
linux/drivers/net/de4x5.h : 5 2 0
linux/drivers/net/eexpress.c : 96 28 0
linux/drivers/net/epic100.c : 7 1 0
linux/drivers/net/eql.c : 9 1 1
linux/drivers/net/ethertap.c : 24 13 3
linux/drivers/net/ibmtr.c : 43 5 3
linux/drivers/net/ppp.c : 215 69 17
linux/drivers/net/via-rhine.c : 19 3 2
linux/drivers/net/wavelan.c : 593 108 124
linux/drivers/net/wavelan.p.h : 121 48 28
linux/drivers/sbus/char/pcikbd.c : 13 2 1
linux/drivers/scsi/Config.in : 10 1 3
linux/drivers/scsi/Makefile : 12 4 1
linux/drivers/scsi/README.ibmmca : 979 979 0
linux/drivers/scsi/ibmmca.c : 3983 1923 1618
linux/drivers/scsi/ibmmca.h : 94 52 11
linux/drivers/scsi/imm.c : 18 3 0
linux/drivers/scsi/megaraid.c : 1130 420 255
linux/drivers/scsi/megaraid.h : 107 29 25
linux/drivers/scsi/ppa.c : 18 4 0
linux/drivers/scsi/scsi.c : 26 9 1
linux/drivers/scsi/scsi_ioctl.c : 19 4 3
linux/drivers/scsi/sd.c : 43 16 0
linux/drivers/scsi/sg.c : 499 91 96
linux/drivers/scsi/sr_ioctl.c : 47 9 5
linux/drivers/scsi/sr_vendor.c : 44 5 5
linux/drivers/sound/ad1816.c : 83 23 7
linux/drivers/sound/sb_ess.c : 81 29 4
linux/drivers/usb/CREDITS : 151 132 1
linux/drivers/usb/Config.in : 10 4 0
linux/drivers/usb/Makefile : 25 14 1
linux/drivers/usb/README.ohci : 30 22 4
linux/drivers/usb/README.ohci_hcd : 112 112 0
linux/drivers/usb/hub.c : 42 15 2
linux/drivers/usb/inits.h : 5 2 0
linux/drivers/usb/mouse.c : 33 5 11
linux/drivers/usb/ohci-debug.c : 236 113 74
linux/drivers/usb/ohci-hcd.c : 1489 1489 0
linux/drivers/usb/ohci-hcd.h : 404 404 0
linux/drivers/usb/ohci-root-hub.c : 604 604 0
linux/drivers/usb/ohci-root-hub.h : 71 71 0
linux/drivers/usb/ohci.c : 1662 896 267
linux/drivers/usb/ohci.h : 190 76 28
linux/drivers/usb/restart : 37 12 9
linux/drivers/usb/stopusb : 11 3 4
linux/drivers/usb/uhci.c : 56 14 3
linux/drivers/usb/usb.c : 127 73 16
linux/drivers/usb/usb.h : 100 21 16
linux/drivers/video/matroxfb.c : 36 3 10
linux/drivers/video/offb.c : 18 2 3
linux/drivers/video/vesafb.c : 18 0 3
linux/fs/adfs/namei.c : 8 1 1
linux/fs/autofs/root.c : 17 2 2
linux/fs/binfmt_aout.c : 21 13 2
linux/fs/binfmt_elf.c : 12 5 1
linux/fs/buffer.c : 397 136 174
linux/fs/coda/dir.c : 17 2 2
linux/fs/devpts/root.c : 17 2 2
linux/fs/dquot.c : 128 38 59
linux/fs/exec.c : 7 0 1
linux/fs/ext2/inode.c : 36 15 5
linux/fs/ext2/namei.c : 8 0 2
linux/fs/hfs/sysdep.c : 17 2 2
linux/fs/inode.c : 7 1 0
linux/fs/isofs/namei.c : 7 0 1
linux/fs/locks.c : 20 4 2
linux/fs/minix/namei.c : 63 1 28
linux/fs/namei.c : 63 6 18
linux/fs/ncpfs/dir.c : 25 3 3
linux/fs/nfs/dir.c : 130 57 22
linux/fs/nfs/file.c : 11 2 2
linux/fs/nfs/inode.c : 22 16 0
linux/fs/proc/array.c : 18 3 2
linux/fs/qnx4/namei.c : 14 2 6
linux/fs/smbfs/dir.c : 25 3 3
linux/fs/super.c : 32 13 2
linux/fs/sysv/namei.c : 8 0 2
linux/fs/ufs/namei.c : 8 0 2
linux/fs/umsdos/dir.c : 17 2 2
linux/fs/vfat/namei.c : 17 2 2
linux/include/asm-alpha/fpu.h : 18 12 0
linux/include/asm-alpha/pgtable.h : 19 0 13
linux/include/asm-alpha/semaphore.h : 8 1 1
linux/include/asm-alpha/system.h : 62 36 4
linux/include/asm-arm/a.out.h : 9 2 0
linux/include/asm-arm/arch-arc/a.out.h : 20 4 6
linux/include/asm-arm/arch-arc/hardware.h : 72 17 7
linux/include/asm-arm/arch-arc/irq.h : 28 11 1
linux/include/asm-arm/arch-arc/keyboard.h : 20 1 6
linux/include/asm-arm/arch-arc/memory.h : 41 41 0
linux/include/asm-arm/arch-arc/mmu.h : 29 0 29
linux/include/asm-arm/arch-arc/oldlatches.h : 8 2 0
linux/include/asm-arm/arch-arc/processor.h : 38 5 10
linux/include/asm-arm/arch-arc/time.h : 181 128 31
linux/include/asm-arm/arch-arc/uncompress.h : 8 0 2
linux/include/asm-arm/arch-ebsa110/a.out.h : 21 6 5
linux/include/asm-arm/arch-ebsa110/hardware.h : 56 8 14
linux/include/asm-arm/arch-ebsa110/irq.h : 8 2 0
linux/include/asm-arm/arch-ebsa110/memory.h : 35 35 0
linux/include/asm-arm/arch-ebsa110/mm-init.h : 5 0 5
linux/include/asm-arm/arch-ebsa110/mmu.h : 23 0 23
linux/include/asm-arm/arch-ebsa110/oldlatches.h : 9 0 9
linux/include/asm-arm/arch-ebsa110/processor.h : 36 6 9
linux/include/asm-arm/arch-ebsa110/time.h : 97 34 30
linux/include/asm-arm/arch-ebsa285/a.out.h : 21 6 5
linux/include/asm-arm/arch-ebsa285/dma.h : 31 10 6
linux/include/asm-arm/arch-ebsa285/hardware.h : 149 102 14
linux/include/asm-arm/arch-ebsa285/io.h : 303 123 128
linux/include/asm-arm/arch-ebsa285/irq.h : 300 164 94
linux/include/asm-arm/arch-ebsa285/irqs.h : 127 72 42
linux/include/asm-arm/arch-ebsa285/keyboard.h : 98 41 35
linux/include/asm-arm/arch-ebsa285/memory.h : 74 74 0
linux/include/asm-arm/arch-ebsa285/mm-init.h : 5 0 5
linux/include/asm-arm/arch-ebsa285/mmu.h : 28 0 28
linux/include/asm-arm/arch-ebsa285/oldlatches.h : 9 0 9
linux/include/asm-arm/arch-ebsa285/processor.h : 36 6 9
linux/include/asm-arm/arch-ebsa285/serial.h : 24 2 9
linux/include/asm-arm/arch-ebsa285/system.h : 53 32 7
linux/include/asm-arm/arch-ebsa285/time.h : 425 309 79
linux/include/asm-arm/arch-ebsa285/timex.h : 11 3 3
linux/include/asm-arm/arch-ebsa285/uncompress.h : 13 4 1
linux/include/asm-arm/arch-nexuspci/a.out.h : 21 6 5
linux/include/asm-arm/arch-nexuspci/hardware.h : 43 5 13
linux/include/asm-arm/arch-nexuspci/irq.h : 8 2 0
linux/include/asm-arm/arch-nexuspci/memory.h : 37 37 0
linux/include/asm-arm/arch-nexuspci/mm-init.h : 5 0 5
linux/include/asm-arm/arch-nexuspci/mmu.h : 26 0 26
linux/include/asm-arm/arch-nexuspci/processor.h : 38 7 10
linux/include/asm-arm/arch-nexuspci/time.h : 59 22 6
linux/include/asm-arm/arch-rpc/a.out.h : 21 6 5
linux/include/asm-arm/arch-rpc/hardware.h : 84 9 11
linux/include/asm-arm/arch-rpc/irq.h : 9 3 0
linux/include/asm-arm/arch-rpc/keyboard.h : 24 1 10
linux/include/asm-arm/arch-rpc/memory.h : 41 41 0
linux/include/asm-arm/arch-rpc/mmu.h : 27 0 27
linux/include/asm-arm/arch-rpc/oldlatches.h : 9 0 9
linux/include/asm-arm/arch-rpc/processor.h : 38 5 10
linux/include/asm-arm/arch-rpc/system.h : 8 1 1
linux/include/asm-arm/arch-rpc/time.h : 189 136 31
linux/include/asm-arm/arch-rpc/uncompress.h : 7 0 1
linux/include/asm-arm/arch-vnc/a.out.h : 14 0 14
linux/include/asm-arm/arch-vnc/dma.h : 19 0 19
linux/include/asm-arm/arch-vnc/hardware.h : 74 0 74
linux/include/asm-arm/arch-vnc/ide.h : 42 0 42
linux/include/asm-arm/arch-vnc/io.h : 176 0 176
linux/include/asm-arm/arch-vnc/irq.h : 156 0 156
linux/include/asm-arm/arch-vnc/irqs.h : 67 0 67
linux/include/asm-arm/arch-vnc/keyboard.h : 36 0 36
linux/include/asm-arm/arch-vnc/mm-init.h : 5 0 5
linux/include/asm-arm/arch-vnc/mmu.h : 26 0 26
linux/include/asm-arm/arch-vnc/oldlatches.h : 9 0 9
linux/include/asm-arm/arch-vnc/param.h : 8 0 8
linux/include/asm-arm/arch-vnc/processor.h : 31 0 31
linux/include/asm-arm/arch-vnc/serial.h : 43 0 43
linux/include/asm-arm/arch-vnc/shmparam.h : 5 0 5
linux/include/asm-arm/arch-vnc/system.h : 37 0 37
linux/include/asm-arm/arch-vnc/time.h : 232 0 232
linux/include/asm-arm/arch-vnc/timex.h : 13 0 13
linux/include/asm-arm/arch-vnc/uncompress.h : 34 0 34
linux/include/asm-arm/dec21285.h : 55 31 1
linux/include/asm-arm/dma.h : 26 6 6
linux/include/asm-arm/ecard.h : 52 12 5
linux/include/asm-arm/fiq.h : 6 1 0
linux/include/asm-arm/floppy.h : 20 15 0
linux/include/asm-arm/hardware.h : 10 0 4
linux/include/asm-arm/init.h : 8 1 1
linux/include/asm-arm/io.h : 94 56 15
linux/include/asm-arm/ioc.h : 13 3 0
linux/include/asm-arm/iomd.h : 16 3 0
linux/include/asm-arm/irq.h : 11 3 1
linux/include/asm-arm/leds.h : 34 19 2
linux/include/asm-arm/memc.h : 14 4 0
linux/include/asm-arm/mm-init.h : 46 0 46
linux/include/asm-arm/page.h : 18 3 3
linux/include/asm-arm/posix_types.h : 16 4 0
linux/include/asm-arm/proc-armo/mm-init-flat.h : 82 0 82
linux/include/asm-arm/proc-armo/mm-init.h : 49 7 12
linux/include/asm-arm/proc-armo/page.h : 7 0 1
linux/include/asm-arm/proc-armo/pgtable-flat.h : 307 0 307
linux/include/asm-arm/proc-armo/pgtable.h : 148 47 8
linux/include/asm-arm/proc-armo/processor.h : 93 8 47
linux/include/asm-arm/proc-armo/ptrace.h : 15 7 2
linux/include/asm-arm/proc-armo/semaphore.h : 115 56 27
linux/include/asm-arm/proc-armv/io.h : 26 9 12
linux/include/asm-arm/proc-armv/mm-init.h : 122 43 30
linux/include/asm-arm/proc-armv/pgtable.h : 884 311 379
linux/include/asm-arm/proc-armv/processor.h : 83 7 50
linux/include/asm-arm/proc-armv/ptrace.h : 36 18 2
linux/include/asm-arm/proc-armv/semaphore.h : 32 26 0
linux/include/asm-arm/proc-armv/uaccess.h : 23 3 0
linux/include/asm-arm/proc-fns.h : 52 13 5
linux/include/asm-arm/processor.h : 106 57 19
linux/include/asm-arm/semaphore-helper.h : 84 84 0
linux/include/asm-arm/semaphore.h : 51 2 36
linux/include/asm-arm/system.h : 164 104 15
linux/include/asm-arm/unistd.h : 58 6 29
linux/include/asm-arm/vga.h : 11 2 1
linux/include/asm-i386/bugs.h : 116 56 2
linux/include/asm-i386/irq.h : 7 1 0
linux/include/asm-i386/msr.h : 30 30 0
linux/include/asm-i386/mtrr.h : 31 6 5
linux/include/asm-i386/processor.h : 33 7 0
linux/include/asm-i386/system.h : 37 7 13
linux/include/asm-i386/timex.h : 16 2 1
linux/include/asm-m68k/atari_SCCserial.h : 8 2 0
linux/include/asm-m68k/bootinfo.h : 11 2 1
linux/include/asm-m68k/dvma.h : 165 165 0
linux/include/asm-m68k/floppy.h : 239 239 0
linux/include/asm-m68k/ide.h : 176 65 10
linux/include/asm-m68k/keyboard.h : 46 20 0
linux/include/asm-m68k/mvme147hw.h : 110 110 0
linux/include/asm-m68k/oplib.h : 8 8 0
linux/include/asm-m68k/page.h : 23 16 1
linux/include/asm-m68k/pgtable.h : 34 17 4
linux/include/asm-m68k/q40_keyboard.h : 54 54 0
linux/include/asm-m68k/q40_master.h : 75 75 0
linux/include/asm-m68k/q40ints.h : 29 29 0
linux/include/asm-m68k/scatterlist.h : 14 8 0
linux/include/asm-m68k/semaphore-helper.h : 136 136 0
linux/include/asm-m68k/semaphore.h : 162 33 69
linux/include/asm-m68k/serial.h : 518 70 434
linux/include/asm-m68k/setup.h : 133 63 8
linux/include/asm-m68k/sun3x.h : 24 24 0
linux/include/asm-m68k/system.h : 25 6 2
linux/include/asm-m68k/uaccess.h : 10 4 0
linux/include/asm-ppc/adb.h : 72 39 7
linux/include/asm-ppc/cuda.h : 24 1 10
linux/include/asm-ppc/dma.h : 58 4 32
linux/include/asm-ppc/hardirq.h : 44 7 7
linux/include/asm-ppc/ide.h : 308 40 196
linux/include/asm-ppc/io.h : 26 2 4
linux/include/asm-ppc/irq.h : 24 9 2
linux/include/asm-ppc/keyboard.h : 161 21 109
linux/include/asm-ppc/machdep.h : 75 65 1
linux/include/asm-ppc/mk48t59.h : 35 35 0
linux/include/asm-ppc/page.h : 8 1 1
linux/include/asm-ppc/pgtable.h : 34 11 7
linux/include/asm-ppc/pmu.h : 21 3 1
linux/include/asm-ppc/posix_types.h : 9 2 1
linux/include/asm-ppc/prep_nvram.h : 146 146 0
linux/include/asm-ppc/processor.h : 107 9 68
linux/include/asm-ppc/raven.h : 33 33 0
linux/include/asm-ppc/smp.h : 7 1 0
linux/include/asm-ppc/softirq.h : 70 12 11
linux/include/asm-ppc/string.h : 6 1 0
linux/include/asm-ppc/system.h : 51 13 7
linux/include/asm-ppc/vga.h : 9 2 1
linux/include/asm-sparc/siginfo.h : 5 1 1
linux/include/asm-sparc/smp.h : 7 1 0
linux/include/asm-sparc/system.h : 68 21 11
linux/include/asm-sparc64/mmu_context.h : 35 1 6
linux/include/asm-sparc64/system.h : 90 20 30
linux/include/asm-sparc64/uaccess.h : 26 1 5
linux/include/linux/capability.h : 7 0 1
linux/include/linux/dcache.h : 8 1 1
linux/include/linux/fs.h : 18 12 0
linux/include/linux/nfs_fs.h : 8 2 0
linux/include/linux/pagemap.h : 27 21 0
linux/include/linux/parport_pc.h : 44 16 4
linux/include/linux/sched.h : 11 1 1
linux/include/linux/smp.h : 40 13 6
linux/include/linux/videodev.h : 16 3 0
linux/include/net/tcp.h : 30 17 0
linux/include/scsi/sg.h : 46 14 2
linux/init/main.c : 74 14 5
linux/ipc/shm.c : 8 1 1
linux/kernel/exit.c : 11 2 2
linux/kernel/sched.c : 878 383 275
linux/kernel/signal.c : 8 1 1
linux/mm/filemap.c : 483 67 72
linux/mm/mmap.c : 19 3 3
linux/mm/page_alloc.c : 18 6 6
linux/net/TUNABLE : 29 0 12
linux/net/core/iovec.c : 16 8 1
linux/net/core/sock.c : 17 2 2
linux/net/ipv4/devinet.c : 16 2 1
linux/net/ipv4/route.c : 30 9 6
linux/net/ipv4/tcp_input.c : 18 2 3
linux/net/ipv4/tcp_ipv4.c : 17 2 2
linux/net/ipv4/tcp_output.c : 55 23 8
linux/net/ipv4/tcp_timer.c : 90 26 27
linux/net/ipv4/udp.c : 17 2 2
linux/net/ipv6/udp.c : 26 3 3
linux/net/irda/ircomm/ircomm_common.c : 32 3 9
linux/net/irda/irlan/irlan_common.c : 35 4 11
linux/net/irda/irlpt/irlpt_cli.c : 34 4 10
linux/net/irda/irlpt/irlpt_srvr.c : 34 4 10
linux/net/irda/irproc.c : 298 21 235
linux/net/sunrpc/sched.c : 27 5 2
linux/net/sunrpc/svcsock.c : 19 4 2
linux/net/sunrpc/xprt.c : 23 3 0
linux/net/unix/af_unix.c : 29 6 3
linux/scripts/Menuconfig : 8 1 1
linux/scripts/tkgen.c : 12 4 1
linux/scripts/tkparse.c : 16 6 1
--
Thomas Koenig, Thomas...@ciw.uni-karlsruhe.de, ig...@dkauni2.bitnet.
The joy of engineering is to find a straight line on a double
logarithmic diagram.

Thomas...@ciw.uni-karlsruhe.de

unread,
May 12, 1999, 3:00:00 AM5/12/99
to
Archive-name: v2.2/patch-2.2.8/part01

#!/bin/sh
# This is a shell archive
# To extract the files from this archive, save it to a file, remove
# everything above the "!/bin/sh" line above, and type "sh file_name".
# existing files will NOT be overwritten unless -c is specified
#
# This is part 01 of a 33 - part archive
# do not concatenate these parts, unpack them in order with /bin/sh
#
if test -r _shar_seq_.tmp; then
echo 'Must unpack archives in sequence!'
echo Please unpack part `cat _shar_seq_.tmp` next
exit 1
fi
# ============= patch-2.2.8 ==============
if test -f 'patch-2.2.8' -a X"$1" != X"-c"; then
echo 'x - skipping patch-2.2.8 (File already exists)'
rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting patch-2.2.8 (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'patch-2.2.8' &&
diff -u --recursive --new-file v2.2.7/linux/CREDITS linux/CREDITS
--- v2.2.7/linux/CREDITS Wed Apr 28 11:37:29 1999
+++ linux/CREDITS Tue May 11 09:57:14 1999
@@ -256,6 +256,10 @@
X D: Configuration help text support
X D: Linux CD and Support Giveaway List
X
+N: Zoltan Boszormenyi
+E: zbo...@mol.hu
+D: MTRR emulation with Cyrix style ARR registers
+
X N: John Boyd
X E: bo...@cis.ohio-state.edu
X D: Co-author of wd7000 SCSI driver
@@ -2217,6 +2221,12 @@
X S: 1507 145th Place SE #B5
X S: Bellevue, Washington 98007
X S: USA
+
+N: Richard Zidlicky
+E: rdzi...@geocities.com,rdzi...@cip.informatik.uni-erlangen.de
+W: http://www.geocities.com/SiliconValley/Bay/2602/
+D: Q40 port - see arch/m68k/q40/README
+S: Germany
X
X N: Werner Zimmermann
X E: Werner.Z...@fht-esslingen.de
diff -u --recursive --new-file v2.2.7/linux/Documentation/00-INDEX linux/Documentation/00-INDEX
--- v2.2.7/linux/Documentation/00-INDEX Tue Feb 23 15:21:31 1999
+++ linux/Documentation/00-INDEX Thu Apr 29 11:53:41 1999
@@ -38,7 +38,7 @@
X digiepca.txt
X - info on Digi Intl. {PC,PCI,EISA}Xx and Xem series cards.
X exception.txt
- - how linux v2.1 handles exceptions without verify_area etc.
+ - how Linux v2.2 handles exceptions without verify_area etc.
X filesystems/
X - directory with info on the various filesystems that Linux supports.
X ftape.txt
@@ -52,11 +52,11 @@
X ioctl-number.txt
X - how to implement and register device/driver ioctl calls.
X isdn/
- - directory with info on the linux ISDN support, and supported cards.
+ - directory with info on the Linux ISDN support, and supported cards.
X java.txt
X - info on the in-kernel binary support for Java(tm)
X joystick.txt
- - info on using joystick devices (and driver) with linux.
+ - info on using joystick devices (and driver) with Linux.
X kbuild/
X - directory with info about the kernel build process
X kmod.txt
@@ -72,7 +72,7 @@
X magic-number.txt
X - list of magic numbers used to mark/protect kernel data structures.
X mandatory.txt
- - info on the linux implementation of Sys V mandatory file locking.
+ - info on the Linux implementation of Sys V mandatory file locking.
X mca.txt
X - info on supporting Micro Channel Architecture (e.g. PS/2) systems.
X md.txt
@@ -100,7 +100,7 @@
X pcwd-watchdog.txt
X - info and sample code for using with the PC Watchdog reset card.
X powerpc/
- - directory with info on using linux with the PowerPC.
+ - directory with info on using Linux with the PowerPC.
X ramdisk.txt
X - short guide on how to set up and use the RAM disk.
X riscom8.txt
@@ -110,7 +110,7 @@
X scsi.txt
X - short blurb on using SCSI support as a module.
X serial-console.txt
- - how to set up linux with a serial line console as the default.
+ - how to set up Linux with a serial line console as the default.
X smart-config.txt
X - description of the Smart Config makefile feature.
X smp.tex
diff -u --recursive --new-file v2.2.7/linux/Documentation/ARM-README linux/Documentation/ARM-README
--- v2.2.7/linux/Documentation/ARM-README Sun Jun 7 11:16:25 1998
+++ linux/Documentation/ARM-README Thu Apr 29 11:53:41 1999
@@ -70,8 +70,8 @@
X a 'make zImage' instead of 'make all'.
X
X
-Bug reports etc
----------------
+Bug reports etc.
+----------------
X
X Please send patches, bug reports and code for the ARM Linux project
X to li...@arm.uk.linux.org. Patches will not be included into future
@@ -116,7 +116,7 @@
X at the top of the screen. The colours have the following significance
X when run in a 16 colour mode with the default palette:
X
- Stripes of White,Red,Yellow,Green:
+ Stripes of white, red, yellow, and green:
X Kernel does not support the processor architecture detected.
X
X
@@ -142,11 +142,11 @@
X HDC base to the source.
X
X As of 31/3/96 it works with two drives (you should get the ADFS
- *configure harddrive set to 2). I've got an internal 20MB and a great
- big external 5.25" FH 64MB drive (who could ever want more :-) ).
+ *configure hard drive set to 2). I've got an internal 20 MB and a great
+ big external 5.25" FH 64 MB drive (who could ever want more :-) ).
X
- I've just got 240K/s off it (a dd with bs=128k); thats about half of what
- RiscOS gets; but it's a heck of a lot better than the 50K/s I was getting
+ I've just got 240 K/s off it (a dd with bs=128k); that's about half of what
+ RiscOS gets, but it's a heck of a lot better than the 50 K/s I was getting
X last week :-)
X
X Known bug: Drive data errors can cause a hang; including cases where
diff -u --recursive --new-file v2.2.7/linux/Documentation/Changes linux/Documentation/Changes
--- v2.2.7/linux/Documentation/Changes Fri Apr 16 14:47:30 1999
+++ linux/Documentation/Changes Fri May 7 09:31:25 1999
@@ -105,7 +105,7 @@
X
X none /dev/pts devpts gid=5,mode=620 0 0
X
- (Note: gid=5 is applicable for RedHat systems for which group "tty" has
+ (Note: gid=5 is applicable for Red Hat systems for which group "tty" has
X gid 5. Adjust according to your distribution. Use mode=600 if you want
X "mesg n" to be default.)
X - Mount /dev/pts
@@ -433,7 +433,7 @@
X Xosview
X =======
X
- /proc interface changes require a recent xosview.
+ Changes to the /proc interface require a recent xosview.
X
X RealPlayer
X ==========
@@ -444,8 +444,8 @@
X software available shortly. In the mean time, you can always try
X backing up your copy of rvplayer, and then editing it by:
X
- dd if=/dev/zero of=rvplayer bs=1 count=1 seek=657586 conv=notrunc dd
-if=/dev/zero of=rvplayer bs=1 count=1 seek=665986 conv=notrunc
+ dd if=/dev/zero of=rvplayer bs=1 count=1 seek=657586 conv=notrunc
+ dd if=/dev/zero of=rvplayer bs=1 count=1 seek=665986 conv=notrunc
X
X If you're lucky, you'll then have sound....
X
diff -u --recursive --new-file v2.2.7/linux/Documentation/Configure.help linux/Documentation/Configure.help
--- v2.2.7/linux/Documentation/Configure.help Wed Apr 28 11:37:29 1999
+++ linux/Documentation/Configure.help Tue May 11 09:57:14 1999
@@ -17,6 +17,8 @@
X # ftp://ftp-pavia1.linux.it/pub/linux/Configure.help
X # - Polish, by Cezar Cichocki (ce...@cs.net.pl), at
X # http://www.cs.net.pl/~cezar/Kernel
+# - German, by Jörg Strebel (jstr...@suse.de) and Karl Eichwalder
+# (k...@suse.de), at http://www.suse.de/~ke/kernel/Configure.de.help.gz
X #
X # Information about what a kernel is, what it does, how to patch and
X # compile it and much more is contained in the Kernel-HOWTO, available
@@ -69,7 +71,7 @@
X in some special cases. Detailed bug reports from people familiar
X with the kernel internals are usually welcomed by the developers
X (before submitting bug reports, please read the documents README,
- MAINTAINERS, Documentation/BUG-HUNTING, and
+ MAINTAINERS, REPORTING_BUGS, Documentation/BUG-HUNTING, and
X Documentation/oops-tracing.txt in the kernel source).
X
X Unless you intend to help test and develop a feature or driver that
@@ -127,12 +129,38 @@
X available via FTP (user: anonymous) in
X ftp://metalab.unc.edu/pub/Linux/docs/HOWTO.) This means that it is a
X good idea to say Y here if you intend to use this kernel on
- different machines. More information about the internals of Linux
- math coprocessor emulation can be found in
- arch/i386/math-emu/README.
+ different machines.
+
+ More information about the internals of the Linux math coprocessor
+ emulation can be found in arch/i386/math-emu/README.
X
X If you are not sure, say Y; apart from resulting in a 45 KB bigger
X kernel, it won't hurt.
+
+Timer and CPU usage LEDs
+CONFIG_LEDS
+ If you define this option, the LEDs on your machine will be used
+ to provide useful information about your current system status.
+
+ If you are compiling a kernel for a NetWinder or EBSA-285, you
+ will be able to select which LEDs are active using the options
+ below. If you are compiling a kernel for the EBSA-110 however,
+ the red LED will simply flash regularly to indicate that the
+ system is still functional. It is still safe to say yes here if
+ you have a CATS system, but the driver will do nothing.
+
+Timer LED
+CONFIG_LEDS_TIMER
+ If you say yes here, one of the system LEDs (the green one on the
+ NetWinder or the amber one on the EBSA285) will flash regularly to
+ indicate that the system is still operational. This is mainly
+ useful to kernel hackers who are debugging unstable kernels.
+
+CPU usage LED
+CONFIG_LEDS_CPU
+ If you say yes here, the red LED will be used to give a good real
+ time indication of CPU usage, by lighting whenever the idle task
+ is not currently executing.
X
X Kernel FP software completion
X CONFIG_MATHEMU
@@ -218,8 +246,8 @@
X
X To use the loop device, you need the losetup utility and a recent
X version of the mount program, both contained in the util-linux
- package (available via FTP (user: anonymous) from
- ftp://ftp.win.tue.nl/pub/linux/util/).
+ package. The location and current version number of util-linux is
+ contained in the file Documentation/Changes.
X
X Note that this loop device has nothing to do with the loopback
X device used for network connections from the machine to itself.
@@ -276,7 +304,7 @@
X
X To fine-tune IDE drive/interface parameters for improved
X performance, look for the hdparm package at
- ftp://metalab.unc.edu:/pub/Linux/kernel/patches/diskdrives/
+ ftp://metalab.unc.edu/pub/Linux/kernel/patches/diskdrives/
X
X If you want to compile this driver as a module ( = code which can be
X inserted in and removed from the running kernel whenever you want),
@@ -475,7 +503,7 @@
X
X Generic PCI IDE chipset support
X CONFIG_BLK_DEV_IDEPCI
- Enable this for PCI systems which use IDE drive(s).
+ Say Y here for PCI systems which use IDE drive(s).
X This option helps the IDE driver to automatically detect and
X configure all PCI-based IDE interfaces in your system.
X
@@ -560,15 +588,16 @@
X This driver is enabled at runtime using the "ide0=dtc2278" kernel
X boot parameter. It enables support for the secondary IDE interface
X of the DTC-2278 card, and permits faster I/O speeds to be set as
- well. See the Documentation/ide.txt and dtc2278.c files for more
- info.
+ well. See the Documentation/ide.txt and drivers/block/dtc2278.c
+ files for more info.
X
X Holtek HT6560B support
X CONFIG_BLK_DEV_HT6560B
X This driver is enabled at runtime using the "ide0=ht6560b" kernel
X boot parameter. It enables support for the secondary IDE interface
X of the Holtek card, and permits faster I/O speeds to be set as well.
- See the Documentation/ide.txt and ht6560b.c files for more info.
+ See the Documentation/ide.txt and drivers/block/ht6560b.c files for
+ more info.
X
X PROMISE DC4030 support (EXPERIMENTAL)
X CONFIG_BLK_DEV_PDC4030
@@ -618,36 +647,26 @@
X If you say Y here, you also need to say Y to "Use DMA by default
X when available", above.
X
- Please read the comments at the top of drivers/block/via82C586.c
-
X If unsure, say N.
X
X CMD646 chipset support (EXPERIMENTAL)
X CONFIG_BLK_DEV_CMD646
X Say Y here if you have an IDE controller like this.
X
-HPT343 chipset support (EXPERIMENTAL)
-CONFIG_BLK_DEV_HPT343
- This driver adds up to 4 more EIDE devices sharing a single
- interrupt. The HPT343 chipset in its current form is a non-bootable
- PCI UDMA controller. This driver requires dynamic tuning of the
- chipset during the ide-probe at boot. It is reported to support DVD
- II drives, by the manufacturer.
-
- Please read the comments at the top of drivers/block/hpt343.c
-
X QDI QD6580 support
X CONFIG_BLK_DEV_QD6580
X This driver is enabled at runtime using the "ide0=qd6580" kernel
X boot parameter. It permits faster I/O speeds to be set. See the
- files Documentation/ide.txt and qd6580.c for more info.
+ files Documentation/ide.txt and drivers/block/qd6580.c for more
+ info.
X
X UMC 8672 support
X CONFIG_BLK_DEV_UMC8672
X This driver is enabled at runtime using the "ide0=umc8672" kernel
X boot parameter. It enables support for the secondary IDE interface
X of the UMC-8672, and permits faster I/O speeds to be set as well.
- See the files Documentation/ide.txt and umc8672.c for more info.
+ See the files Documentation/ide.txt and drivers/block/umc8672.c for
+ more info.
X
X ALI M14xx support
X CONFIG_BLK_DEV_ALI14XX
@@ -655,7 +674,7 @@
X boot parameter. It enables support for the secondary IDE interface
X of the ALI M1439/1443/1445/1487/1489 chipsets, and permits faster
X I/O speeds to be set as well. See the files Documentation/ide.txt
- and ali14xx.c for more info.
+ and drivers/block/ali14xx.c for more info.
X
X XT hard disk support
X CONFIG_BLK_DEV_XD
@@ -1034,6 +1053,24 @@
X board uses the R4300 and a R5230 CPUs. For more information about
X this board see http://www.algor.co.uk.
X
+IDE card support
+CONFIG_BLK_DEV_IDE_CARDS
+ On Acorn systems, enable this if you wish to use an IDE interface
+ expansion card. If you do not or are unsure, say N to this.
+
+ICS IDE interface
+CONFIG_BLK_DEV_IDE_ICS
+ On Acorn systems, enable this if you wish to use the ICS IDE
+ interface card. This is not required for ICS partition support.
+ If you are unsure, say N to this.
+
+ADFS partition support
+CONFIG_BLK_DEV_PART
+ This allows Linux on Acorn systems to determine its partitions in
+ the 'non-ADFS' partition area of the hard disk - usually located
+ after the ADFS partition. You are probably using this system, so
+ you should enable it.
+
X Support for Mips Magnum 4000
X CONFIG_MIPS_MAGNUM_4000
X This is a machine with a R4000 100 MHz CPU. To compile a Linux
@@ -1870,7 +1907,7 @@
X card. You do this by inserting several instances of the module
X matroxfb.o into the kernel with insmod, supplying the parameter
X "dev=N" where N is 0, 1, etc. for the different Matrox devices.
-
+
X MDA text console (dual-headed)
X CONFIG_MDA_CONSOLE
X Say Y here if you have an old MDA or monochrome Hercules graphics
@@ -2030,7 +2067,7 @@
X Parallel-port support
X CONFIG_PARPORT
X If you want to use devices connected to your machine's parallel port
- (the connector at the computer with 25 holes), e.g. printer, Zip
+ (the connector at the computer with 25 holes), e.g. printer, ZIP
X drive, PLIP link (Parallel Line Internet Protocol is mainly used to
X create a mini network by connecting the parallel ports of two local
X machines) etc., then you need to say Y here; please read
@@ -2057,10 +2094,13 @@
X CONFIG_PARPORT_PC
X You should say Y here if you have a PC-style parallel port. All IBM
X PC compatible computers and some Alphas have PC-style parallel
- ports. This code is also available as a module. If you want to it as
- a module ( = code which can be inserted in and removed from the
+ ports.
+
+ This code is also available as a module. If you want to compile it
+ as a module ( = code which can be inserted in and removed from the
X running kernel whenever you want), say M here and read
X Documentation/modules.txt. The module will be called parport_pc.o.
+
X If unsure, say Y.
X
X Support foreign hardware
@@ -2231,8 +2271,18 @@
X the Linux router will also be able to take the packet's source
X address into account. Furthermore, if you also say Y to "IP: use TOS
X value as routing key" below, the TOS (Type-Of-Service) field of the
- packet can be used for routing decisions as well.
-
+ packet can be used for routing decisions as well. In addition, if
+ you say Y here and to "IP: fast network address translation" below,
+ the router will also be able to modify source and destination
+ addresses of forwarded packets.
+
+ If you are interested in this, please see the preliminary
+ documentation at http://www.compendium.com.ar/policy-routing.txt and
+ ftp://post.tepkom.ru/pub/vol2/Linux/docs/advanced-routing.tex. You
+ will need supporting software from ftp://ftp.inr.ac.ru/ip-routing/
+
+ If unsure, say N.
+
X IP: equal cost multipath
X CONFIG_IP_ROUTE_MULTIPATH
X Normally, the routing tables specify a single action to be taken in
@@ -2275,9 +2325,9 @@
X CONFIG_IP_ROUTE_NAT
X If you say Y here, your router will be able to modify source and
X destination addresses of packets that pass through it, in a manner
- you specify. Please see
- http://www.csn.tu-chemnitz.de/HyperNews/get/linux-ip-nat.html for
- details.
+ you specify. General information about Network Address Translation
+ can be gotten from the document
+ http://www.csn.tu-chemnitz.de/~mha/linux-ip-nat/diplom/nat.html
X
X IP: optimize as router not host
X CONFIG_IP_ROUTER
@@ -2601,12 +2651,12 @@
X Sometimes it is useful to give several IP addresses to a single
X physical network interface (serial port or Ethernet card). The most
X common case is that you want to serve different WWW or ftp documents
- to the outside according to which of your host names was used to
+ to the outside depending on which of your host names was used to
X connect to you. This is called "multihosting" or "virtual domains"
X or "virtual hosting services" and is explained in detail on the WWW
X at http://www.thesphere.com/~dlp/TwoServers/ (to browse the WWW, you
X need to have access to a machine on the Internet that has a program
- like lynx or netscape) and also in the Virtual-Hosting-HOWTO,
+ like lynx or netscape) and also in the Virtual-Services-HOWTO,
X available via FTP (user: anonymous) from
X ftp://metalab.unc.edu/pub/Linux/docs/HOWTO.
X
@@ -2920,36 +2970,45 @@
X CONFIG_IPDDP
X This allows IP networking for users who only have AppleTalk
X networking available. This feature is experimental. With this
- driver, you can either encapsulate IP inside AppleTalk (e.g. if your
- Linux box is stuck on an AppleTalk only network) or decapsulate
- (e.g. if you want your Linux box to act as an Internet gateway for a
- zoo of AppleTalk connected Macs). You decide which one of the two
- you want in the following two questions; you can say Y to only one
- of them. Please see Documentation/networking/ipddp.txt for more
- information.
+ driver, you can encapsulate IP inside AppleTalk (e.g. if your Linux
+ box is stuck on an AppleTalk only network) or decapsulate (e.g. if
+ you want your Linux box to act as an Internet gateway for a zoo of
+ AppleTalk connected Macs). Please see the file
+ Documentation/networking/ipddp.txt for more information.
+
+ If you say Y here, the AppleTalk-IP support will be compiled into
+ the kernel. In this case, you can either use encapsulation or
+ decapsulation, but not both. With the following two questions, you
+ decide which one you want.
X
- This driver is also available as a module ( = code which can be
- inserted in and removed from the running kernel whenever you want).
- The module is called ipddp.o. If you want to compile it as a module,
- say M here and read Documentation/modules.txt.
+ If you say M here, the AppleTalk-IP support will be compiled as a
+ module ( = code which can be inserted in and removed from the
+ running kernel whenever you want, read Documentation/modules.txt).
+ The module is called ipddp.o. In this case, you will be able to use
+ both encapsulation and decapsulation simultaneously, by loading two
+ copies of the module and specifying different values for the module
+ option ipddp_mode.
X
X IP to AppleTalk-IP Encapsulation support
X CONFIG_IPDDP_ENCAP
- If you say Y here, the kernel will be able to encapsulate IP packets
- inside AppleTalk frames; this is useful if your Linux box is stuck
- on an AppleTalk network (which hopefully contains a decapsulator
- somewhere). Please see Documentation/networking/ipddp.txt for more
- information. If you say Y here, you cannot say Y to "AppleTalk-IP to
- IP Decapsulation support", below.
+ If you say Y here, the AppleTalk-IP code will be able to encapsulate
+ IP packets inside AppleTalk frames; this is useful if your Linux box
+ is stuck on an AppleTalk network (which hopefully contains a
+ decapsulator somewhere). Please see
+ Documentation/networking/ipddp.txt for more information. If you said
+ Y to "AppleTalk-IP driver support" above and you say Y here, then
+ you cannot say Y to "AppleTalk-IP to IP Decapsulation support",
+ below.
X
X AppleTalk-IP to IP Decapsulation support
X CONFIG_IPDDP_DECAP
- If you say Y here, the kernel will be able to decapsulate
+ If you say Y here, the AppleTalk-IP code will be able to decapsulate
X AppleTalk-IP frames to IP packets; this is useful if you want your
- Linux box to act as an Internet gateway for an AppleTalk
- network. Please see Documentation/networking/ipddp.txt for more
- information. If you say Y here, you cannot say Y to "IP to
- AppleTalk-IP Encapsulation support", above.
+ Linux box to act as an Internet gateway for an AppleTalk network.
+ Please see Documentation/networking/ipddp.txt for more information.
+ If you said Y to "AppleTalk-IP driver support" above and you say Y
+ here, then you cannot say Y to "IP to AppleTalk-IP Encapsulation
+ support", above.
X
X Apple/Farallon LocalTalk PC card support
X CONFIG_LTPC
@@ -3526,7 +3585,7 @@
X CONFIG_BLK_DEV_SR
X If you want to use a SCSI CDROM under Linux, say Y and read the
X SCSI-HOWTO and the CDROM-HOWTO from
- ftp://metalab.unc.edu:/pub/Linux/docs/HOWTO. Also make sure to say Y
+ ftp://metalab.unc.edu/pub/Linux/docs/HOWTO. Also make sure to say Y
X or M to "ISO 9660 CDROM filesystem support" later.
X
X This driver is also available as a module ( = code which can be
@@ -3554,7 +3613,8 @@
X other devices, it's possible that you'll have to write the driver
X software yourself, so have a look at the SCSI-HOWTO and at the
X SCSI-Programming-HOWTO, both available via FTP (user: anonymous) in
- ftp://metalab.unc.edu:/pub/Linux/docs/HOWTO.
+ ftp://metalab.unc.edu/pub/Linux/docs/HOWTO. Please read the file
+ Documentation/scsi-generic.txt for more information.
X
X If you want to compile this as a module ( = code which can be
X inserted in and removed from the running kernel whenever you want),
@@ -3956,33 +4016,33 @@
X tagged command queuing and fast synchronous data transfers up to 80
X MB/s with wide FAST-40 LVD devices and controllers.
X
- An additionnal driver named SYM53C8XX (a.k.a 896 driver) can also be
- configured. See the help on the SYM53C8XX driver for more information.
+ Recent versions of the 53C8XX chips are better supported by the
+ option "SYM53C8XX SCSI support", below.
X
- Note: there is another driver for the 53c8xx family of controllers
+ Note: there is yet another driver for the 53c8xx family of controllers
X ("NCR53c7,8xx SCSI support" above). If you want to use them both,
X you need to say M to both and build them as modules, but only one
- may be active at a time. If you have a 53c8xx board, it's best to
- use this driver.
+ may be active at a time. If you have a 53c8xx board, you probably do
+ not want to use the "NCR53c7,8xx SCSI support".
X
X Please read drivers/scsi/README.ncr53c8xx for more information.
X
X SYM53C8XX SCSI support
X CONFIG_SCSI_SYM53C8XX
- The 896 driver for Linux (a.k.a. sym53c8xx) is derivated from the
- ncr53c8xx driver and has been heavily reworked and enhanced to
- fully support all the features of recent 53C8XX chips, notably the
- hardware phase mismatch feature of the SYM53C896.
-
- For that to be achieved without additionnal complexity, support of
- old 8XX chips has been dropped. If your system uses either a
- 810 rev. < 16, a 815, or a 825 rev. < 16 PCI SCSI processor, you must
- use the generic NCR53C8XX driver or configure both the NCR53C8XX and
- the SYM53C8XX drivers either as module or linked to the kernel image.
+ This driver supports all the features of recent 53C8XX chips (used
+ in PCI SCSI controllers), notably the hardware phase mismatch
+ feature of the SYM53C896.
+
+ Older versions of the 53C8XX chips are not supported by this
+ driver. If your system uses either a 810 rev. < 16, a 815, or a 825
+ rev. < 16 PCI SCSI processor, you must use the generic NCR53C8XX
+ driver ("NCR53C8XX SCSI support" above) or configure both the
+ NCR53C8XX and this SYM53C8XX drivers either as module or linked to
+ the kernel image.
X
X When both drivers are linked to the kernel, the SYM53C8XX driver is
X called first at initialization and you can use the 'excl=ioaddr'
- driver boot option to exclude attachement of adapters by the SYM53C8XX
+ driver boot option to exclude attachment of adapters by the SYM53C8XX
X driver. For instance, entering 'sym53c8xx=excl:0xb400,excl=0xc000' at
X lilo prompt prevents adapters at io address 0xb400 and 0xc000 from
X being attached by the SYM53C8XX driver, thus allowing the NCR53C8XX
@@ -4105,12 +4165,11 @@
X
X include support for the NCR PQS/PDS SCSI card
X CONFIG_SCSI_NCR53C8XX_PQS_PDS
- This allows the driver to detect a special adapter produced by NCR
+ Say Y here if you have a special SCSI adapter produced by NCR
X corporation called a PCI Quad SCSI or PCI Dual SCSI. You do not need
- this if you do not have one of these adapters. However, since this
- device is detected as a specific PCI device, this option is quite
- safe. This option is only supported by the SYM53C8XX driver (not
- by the NCR53C8XX driver).
+ this if you do not have one of these adapters. However, since this
+ device is detected as a specific PCI device, this option is quite
+ safe.
X
X The common answer here is N, but answering Y is safe.
X
@@ -4215,17 +4274,6 @@
X say M here and read Documentation/modules.txt. The module will be
X called initio.o
X
-Initio 91XXU(W) SCSI support
-CONFIG_SCSI_INITIO
- This is support for the Initio 91XXU(W) SCSI host adapter.
- Please read the SCSI-HOWTO, available via FTP (user: anonymous) at
- ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO.
-
- If you want to compile this as a module ( = code which can be
- inserted in and removed from the running kernel whenever you want),
- say M here and read Documentation/modules.txt. The module will be
- called initio.o
-
X PAS16 SCSI support
X CONFIG_SCSI_PAS16
X This is support for a SCSI host adapter. It is explained in section
@@ -4243,7 +4291,7 @@
X CONFIG_SCSI_INIA100
X This is support for the Initio INI-A100U2W SCSI host adapter.
X Please read the SCSI-HOWTO, available via FTP (user: anonymous) at
- ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO.
+ ftp://metalab.unc.edu/pub/Linux/docs/HOWTO.
X
X If you want to compile this as a module ( = code which can be
X inserted in and removed from the running kernel whenever you want),
@@ -4309,8 +4357,8 @@
X IQ-PCI-10, IQ_PCI-D) except for the PCI-basic card. (This latter
X card is supported by the "AM53/79C974 PCI SCSI" driver).
X
- If you say Y here, make sure to say Y to choose "BIOS" at the
- question "PCI access mode".
+ If you say Y here, make sure to choose "BIOS" at the question "PCI
+ access mode".
X
X Please read the file drivers/scsi/README.qlogicisp. You should also
X read the SCSI-HOWTO, available via FTP (user: anonymous) at
@@ -4321,6 +4369,15 @@
X The module will be called qlogicisp.o. If you want to compile it as
X a module, say M here and read Documentation/modules.txt.
X
+Qlogic ISP FC SCSI support
+CONFIG_SCSI_QLOGIC_FC
+ This is a driver for the QLogic ISP2100 SCSI-FCP host adapter.
+
+ This driver is also available as a module ( = code which can be
+ inserted in and removed from the running kernel whenever you want).
+ The module will be called qlogicfc.o. If you want to compile it as
+ a module, say M here and read Documentation/modules.txt.
+
X Seagate ST-02 and Future Domain TMC-8xx SCSI support
X CONFIG_SCSI_SEAGATE
X These are 8-bit SCSI controllers; the ST-01 is also supported by
@@ -4444,20 +4501,22 @@
X
X Symbios Logic sym53c416 support
X CONFIG_SCSI_SYM53C416
- This is support for the sym53c416 SCSI host adapter. This is the
- SCSI adapter that comes with some hp scanners. This driver requires that
- the sym53c416 is configured first using some sort of pnp configuration
- program (e.g. isapnp) or by a PnP aware BIOS. If you are using isapnp then
- you need to compile it as a module and then load it using insmod after
- isapnp has run. The parameters of the configured card(s) should be passed
- to the driver. The format is:
+ This is support for the sym53c416 SCSI host adapter, the SCSI
+ adapter that comes with some HP scanners. This driver requires that
+ the sym53c416 is configured first using some sort of pnp
+ configuration program (e.g. isapnp) or by a PnP aware BIOS. If you
+ are using isapnp then you need to compile this driver as a module
+ and then load it using insmod after isapnp has run. The parameters
+ of the configured card(s) should be passed to the driver. The format
+ is:
X
X insmod sym53c416 sym53c416=<base>,<irq> [sym53c416_1=<base>,<irq>]
X
- There is support for up to four adapters. If you want to compile this
- driver as a module ( = code which can be inserted in and removed from
- the running kernel whenever you want), say M here and read
- Documentation/modules.txt.
+ There is support for up to four adapters. If you want to compile
+ this driver as a module ( = code which can be inserted in and
+ removed from the running kernel whenever you want), say M here and
+ read Documentation/modules.txt. The module will be called
+ sym53c416.o.
X
X Tekram DC390(T) and Am53/79C974 (PCscsi) SCSI support
X CONFIG_SCSI_DC390T
@@ -4518,6 +4577,12 @@
X say M here and read Documentation/modules.txt. The module will be
X called megaraid.o.
X
+###
+### What is this?
+###
+#Concurrent IO commands on MegaRAID
+#CONFIG_MEGARAID_MULTI_IO
+
X GDT SCSI Disk Array Controller support
X CONFIG_SCSI_GDTH
X This is a driver for all SCSI Disk Array Controllers (EISA/ISA/PCI)
@@ -4710,7 +4775,7 @@
X you want to use under Linux (make sure you know its name because you
X will be asked for it and read the Ethernet-HOWTO (especially if you
X plan to use more than one network card under Linux), available from
- ftp://metalab.unc.edu:/pub/Linux/docs/HOWTO/mini) or if you want to
+ ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/mini) or if you want to
X use SLIP (Serial Line Internet Protocol is the protocol used to send
X Internet traffic over telephone lines or null modem cables) or CSLIP
X (compressed SLIP) or PPP (Point to Point Protocol, a better and
@@ -4721,7 +4786,7 @@
X
X Make sure to read the NET-3-HOWTO. Eventually, you will have to read
X Olaf Kirch's excellent and free book "Network Administrator's
- Guide", to be found in ftp://metalab.unc.edu:/pub/Linux/docs/LDP. If
+ Guide", to be found in ftp://metalab.unc.edu/pub/Linux/docs/LDP. If
X unsure, say Y.
X
X Dummy net driver support
@@ -4827,7 +4892,7 @@
X
X To use PPP, you need an additional program called pppd as described
X in Documentation/networking/ppp.txt and in the PPP-HOWTO, available
- from ftp://metalab.unc.edu:/pub/Linux/docs/HOWTO. If you upgrade
+ from ftp://metalab.unc.edu/pub/Linux/docs/HOWTO. If you upgrade
X from an older kernel, you might need to upgrade pppd as well. The
X PPP option enlarges your kernel by about 16 KB.
X
@@ -5142,11 +5207,13 @@
X
X *** This option is NOT COMPATIBLE with several important ***
X *** networking options: especially CONFIG*FIREWALL. ***
+ *** Say N here if you intend to use Linux as a firewall. ***
X
X However, it will work with all options in CONFIG_IP_ADVANCED_ROUTER
- section (except for CONFIG_IP_ROUTE_TOS&FWMARK). At the moment, few devices
- support fast switching (tulip is one of them, modified 8390 can be
- found at ftp://ftp.inr.ac.ru/ip-routing/fastroute-8390.tar.gz).
+ section (except for CONFIG_IP_ROUTE_TOS and CONFIG_IP_ROUTE_FWMARK).
+ At the moment, few devices support fast switching (tulip is one of
+ them, modified 8390 can be found at
+ ftp://ftp.inr.ac.ru/ip-routing/fastroute-8390.tar.gz).
X
X If unsure, say N.
X
@@ -5752,6 +5819,18 @@
X module, say M here and read Documentation/modules.txt as well as
X Documentation/networking/net-modules.txt.
X
+3c527 support
+CONFIG_ELMC_II
+ If you have a network (Ethernet) card of this type, say Y and read
+ the Ethernet-HOWTO, available via FTP (user: anonymous) in
+ ftp://metalab.unc.edu/pub/Linux/docs/HOWTO.
+
+ This driver is also available as a module ( = code which can be
+ inserted in and removed from the running kernel whenever you want).
+ The module will be called 3c527.o. If you want to compile it as a
+ module, say M here and read Documentation/modules.txt as well as
+ Documentation/networking/net-modules.txt.
+
X 3c509/3c579 support
X CONFIG_EL3
X If you have a network (Ethernet) card belonging to the 3Com
@@ -6560,6 +6639,20 @@
X The module will be called mcd.o. If you want to compile it as a
X module, say M here and read Documentation/modules.txt.
X
+IRQ channel for Mitsumi CD-ROM
+CONFIG_MCD_IRQ
+ This allows you to specify the default value of the IRQ used by the
+ driver. This setting can be overridden by passing the "mcd="
+ parameter to the kernel at boot time (or at module load time if you
+ said M to "Standard Mitsumi CDROM support").
+
+I/O base address for Mitsumi CD-ROM
+CONFIG_MCD_BASE
+ This allows you to specify the default value of the I/O base address
+ used by the driver. This setting can be overridden by passing the
+ "mcd=" parameter to the kernel at boot time (or at module load time
+ if you said M to "Standard Mitsumi CDROM support").
+
X Mitsumi [XA/MultiSession] support
X CONFIG_MCDX
X Use this driver if you want to be able to read XA or MultiSession
@@ -6750,6 +6843,13 @@
X ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/mini. Probably the quota
X support is only useful for multi user systems. If unsure, say N.
X
+Acorn's ADFS filesystem support (read only) (EXPERIMENTAL)
+CONFIG_ADFS_FS
+ The Advanced Disk File System is the filesystem used on floppy and
+ hard disks by Acorn Systems. Currently in development, as a read-
+ only driver for hard disks. These should be the first partition
+ (eg. /dev/[sh]d?1) on each of your drives. If unsure, say N.
+
X Minix fs support
X CONFIG_MINIX_FS
X Minix is a simple operating system used in many classes about OS's.
@@ -7032,10 +7132,13 @@
X should say N here, or you can say Y and use this new experimental
X kernel based NFS server. The advantage of the kernel based solution
X is that it is faster; it might not be completely stable yet, though.
- You will need the support software from the linux-nfs package
- available at ftp://ftp.mathematik.th-darmstadt.de/pub/linux/okir/.
+
+ In either case, you will need support software; the respective
+ locations are given in the file Documentation/Changes in the NFS
+ section.
+
X Please read the NFS-HOWTO, available via FTP (user: anonymous) from
- ftp://metalab.unc.edu:/pub/Linux/docs/HOWTO.
+ ftp://metalab.unc.edu/pub/Linux/docs/HOWTO.
X
X The NFS server is also available as a module ( = code which can be
X inserted in and removed from the running kernel whenever you want).
@@ -7213,7 +7316,8 @@
X Unixes can create and mount hard disk partitions and diskettes using
X this filesystem as well. Saying Y here will allow you to read from
X these partitions; if you also want to write to them, say Y to the
- experimental "UFS filesystem write support", below.
+ experimental "UFS filesystem write support", below. Please read the
+ file Documentation/filesystems/ufs.txt for more information.
X
X If you only intend to mount files from some other Unix over the
X network using NFS, you don't need the UFS filesystem support (but
@@ -7333,7 +7437,7 @@
X SMB filesystem support (to mount Windows shares etc...)
X CONFIG_SMB_FS
X SMB (Server Message Block) is the protocol Windows for Workgroups
- (WfW), Windows 95, Windows NT and OS/2 Lan Manager use to share
+ (WfW), Windows 95/98, Windows NT and OS/2 Lan Manager use to share
X files and printers over local networks. Saying Y here allows you to
X mount their filesystems (often called "shares" in this context) and
X access them just like any other Unix directory. Currently, this
@@ -7397,7 +7501,7 @@
X mount NetWare file server volumes and to access them just like any
X other Unix directory. For details, please read the file
X Documentation/filesystems/ncpfs.txt in the kernel source and the
- IPX-HOWTO on ftp://metalab.unc.edu:/pub/Linux/docs/howto.
+ IPX-HOWTO on ftp://metalab.unc.edu/pub/Linux/docs/howto.
X
X You do not have to say Y here if you want your Linux box to act as a
X file *server* for Novell NetWare clients.
@@ -7445,23 +7549,22 @@
X
X Lowercase DOS filenames on LONG namespace volume
X CONFIG_NCPFS_SMALLDOS
- Saying Y here will convert every filename with creator/owner DOS
- namespace on NetWare servers to lowercase characters as silently
- kernel does when you mount NetWare file server volumes with DOS
- namespace without OS2/LONG namespace support. Saying N here will
- give you these filenames with uppercase characters.
-
- This is only cosmetic option because of OS2/LONG namespace is
- case insensitive. The only major reason for this option is
- backward compatibility when you want to do step from DOS to
- OS2/LONG namespace support. Long filenames (created by Win95)
- will not be affected.
-
- This option does not solve a problem that filenames appear
- differently in Linux box and in MS environment because of MS
- does an additional conversions on client side. You can achieve
- simillar effects enabling ncpfs option "Allow using of Native
- Language Support" below.
+ If you say Y here, every filename on a NetWare server volume using
+ the OS2/LONG namespace will be converted to lowercase characters.
+ (For regular NetWare file server volumes with DOS namespace, this is
+ done automatically, even if you say N here.) Saying N here will give
+ you these filenames in uppercase.
+
+ This is only a cosmetic option since the OS2/LONG namespace is case
+ insensitive. The only major reason for this option is backward
+ compatibility when moving from DOS to OS2/LONG namespace support.
+ Long filenames (created by Win95) will not be affected.
+
+ This option does not solve the problem that filenames appear
+ differently under Linux and under Windows, since Windows does an
+ additional conversions on the client side. You can achieve similar
+ effects by saying Y to "Allow using of Native Language Support"
+ below.
X
X Allow mounting of volume subdirectories
X CONFIG_NCPFS_MOUNT_SUBDIR
@@ -7483,10 +7586,10 @@
X
X Allow using of Native Language Support
X CONFIG_NCPFS_NLS
- Allows you to use codepages and I/O charsets for file name translation
- between file system on server and input/output. This may be useful,
- if you want to access to the server with other operating systems,
- e.g. Windows 95. See also NLS for more Information.
+ Allows you to use codepages and I/O charsets for file name
+ translation between the server file system and input/output. This
+ may be useful, if you want to access the server with other operating
+ systems, e.g. Windows 95. See also NLS for more Information.
X
X To select codepages and I/O charsets use ncpfs-2.2.0.13 or newer.
X
@@ -7494,12 +7597,11 @@
X CONFIG_NCPFS_EXTRAS
X This enables the use of symbolic links and an execute permission
X bit on NCPFS. The file server need not have long name space or NFS
- name space loaded for these to work, they are stored using rarely
- found combinations of Hidden, System and Shared flags.
+ name space loaded for these to work.
+
+ To use the new attributes, it is recommended to use the flags
+ '-f 600 -d 755' on the ncpmount command line.
X
- To use the new attributes, you are recommended to use the flags
- '-f 600 -d 755' on the ncpmount commandline.
-
X nls codepage 437
X CONFIG_NLS_CODEPAGE_437
X The Microsoft fat filesystem family can deal with filenames in
@@ -8035,14 +8137,24 @@
X Provides support for the SyncLink ISA and PCI
X multiprotocol serial adapters. These adapters
X support asynchronous and HDLC bit synchronous
- communication up to 10Mbps (PCI adapter)
+ communication up to 10Mbps (PCI adapter).
+
+ This driver can only be built as a module ( = code which can be
+ inserted in and removed from the running kernel whenever you want).
+ The module will be called synclink.o. If you want to do that, say M
+ here.
X
X Synchronous HDLC line discipline support
X CONFIG_N_HDLC
X Allows synchronous HDLC communications with
X tty device drivers that support synchronous
X HDLC such as the Microgate SyncLink adapter.
-
+
+ This driver can only be built as a module ( = code which can be
+ inserted in and removed from the running kernel whenever you want).
+ The module will be called n_hdlc.o. If you want to do that, say M
+ here.
+
X Hayes ESP serial port support
X CONFIG_ESPSERIAL
X This is a driver which supports Hayes ESP serial ports. Both single
@@ -8087,7 +8199,7 @@
X If you want to say Y here, you need to have the C library glibc 2.1
X or later (equal to libc-6.1, check with "ls -l /lib/libc.so.*").
X Read the instructions in Documentation/Changes pertaining to pseudo
- terminals. It's save to say N.
+ terminals. It's safe to say N.
X
X Maximum number of Unix98 PTYs in use (0-2048)
X CONFIG_UNIX98_PTY_COUNT
@@ -8183,7 +8295,7 @@
X When using a PS/2 mouse, you can get problems if you want to use the
X mouse both on the Linux console and under X. Using the "-R" option
X of the Linux mouse managing program gpm (available from
- ftp://metalab.unc.edu:/pub/Linux/system/Daemons) solves this
+ ftp://metalab.unc.edu/pub/Linux/system/Daemons) solves this
X problem, or you can get the "mconv" utility also from metalab.
X
X C&T 82C710 mouse port support (as on TI Travelmate)
@@ -8554,17 +8666,24 @@
X
X MTRR control and configuration
X CONFIG_MTRR
- On Intel Pentium Pro and Pentium II systems the Memory Type Range
- Registers (MTRRs) may be used to control processor access to memory
- ranges. This is most useful when you have a video (VGA) card on a
- PCI or AGP bus. Enabling write-combining allows bus write transfers
- to be combined into a larger transfer before bursting over the
- PCI/AGP bus. This can increase performance of image write operations
- 2.5 times or more. This option creates a /proc/mtrr file which may
- be used to manipulate your MTRRs. Typically the X server should use
- this. This should have a reasonably generic interface so that
- similar control registers on other processors can be easily
- supported.
+ On Intel P6 family processors (Pentium Pro, Pentium II and later)
+ the Memory Type Range Registers (MTRRs) may be used to control
+ processor access to memory ranges. This is most useful when you have
+ a video (VGA) card on a PCI or AGP bus. Enabling write-combining
+ allows bus write transfers to be combined into a larger transfer
+ before bursting over the PCI/AGP bus. This can increase performance
+ of image write operations 2.5 times or more. This option creates a
+ /proc/mtrr file which may be used to manipulate your
+ MTRRs. Typically the X server should use this. This should have a
+ reasonably generic interface so that similar control registers on
+ other processors can be easily supported.
+
+ The Cyrix 6x86, 6x86MX and M II processors have Address Range
+ Registers (ARRs) which provide a similar functionality to MTRRs. For
+ these, the ARRs are used to emulate the MTRRs.
+
+ The AMD K6-2 (stepping 8 and above) and K6-3 processors have two
+ MTRRs. These are supported.
X
X Saying Y here also fixes a problem with buggy SMP BIOSes which only
X set the MTRRs for the boot CPU and not the secondary CPUs. This can
@@ -8893,6 +9012,17 @@
X The module will be called nvram.o. If you want to compile it as a
X module, say M here and read Documentation/modules.txt.
X
+Atomwide Serial Support
+CONFIG_ATOMWIDE_SERIAL
+ If you have an Atomwide Serial card for an Acorn system, say Y to
+ this option. The driver can handle 1, 2, or 3 port cards.
+ If unsure, say N
+
+The Serial Port Dual Serial Port
+CONFIG_DUALSP_SERIAL
+ If you have the Serial Port's dual serial card for an Acorn system,
+ say Y to this option. If unsure, say N
+
X Joystick support
X CONFIG_JOYSTICK
X If you have a joystick, you can say Y here to enable generic
@@ -8996,6 +9126,35 @@
X If you have the Serial Port's dual serial card for an Acorn system,
X say Y to this option. If unsure, say N
X
+NetWinder Button
+CONFIG_NWBUTTON
+ If you enable this driver and create a character device node
+ /dev/nwbutton with major and minor numbers 10 and 158 ("man mknod"),
+ then every time the orange button is pressed a number of times, the
+ number of times the button was pressed will be written to that device.
+ This is most useful for applications, as yet unwritten, which perform
+ actions based on how many times the button is pressed in a row.
+ Do not hold the button down for too long, as the driver does not alter
+ the behaviour of the hardware reset circuitry attached to the button;
+ it will still execute a hard reset if the button is held down for
+ longer than approximately five seconds.
+ This driver is also available as a module ( = code which can be
+ inserted in and removed from the running kernel whenever you want).
+ If you want to compile it as a module, say M here and read
+ Documentation/modules.txt. The module will be called nwbutton.o.
+ Most people will answer Y to this question and "Reboot Using Button"
+ below to be able to initiate a system shutdown from the button.
+
+Reboot Using Button
+CONFIG_NWBUTTON_REBOOT
+ If you enable this option, then you will be able to initiate a system
+ shutdown and reboot by pressing the orange button a number of times.
+ The number of presses to initiate the shutdown is two by default, but
+ this can be altered by modifying the value of NUM_PRESSES_REBOOT in
+ nwbutton.h and recompiling the driver or, if you compile the driver as
+ a module, you can specify the number of presses at load time with
+ "insmod button reboot_count=<something>".
+
X Sound card support
X CONFIG_SOUND
X If you have a sound card in your computer, i.e. if it can say more
@@ -9037,18 +9196,19 @@
X
X Persistent DMA buffers
X CONFIG_SOUND_DMAP
- Linux can often have problems allocating DMA buffers for ISA cards on
- machines with more than 16MB of RAM. This is because ISA DMA buffers
- must exist below the 16MB boundry and it is quite possible that we
- can't find a large enough free block in this region after the machine
- has been running for any amount of time. If you say Y here the DMA
- buffers (64Kb) will be allocated at boot time and kept until the
- shutdown. This option is only usefull if you say Y to OSS sound
- modules. If you say M to OSS sound modules then you can just pass to
- the sound.o module a "dmabuf=1" command-line argument.
+ Linux can often have problems allocating DMA buffers for ISA sound
+ cards on machines with more than 16MB of RAM. This is because ISA
+ DMA buffers must exist below the 16MB boundary and it is quite
+ possible that a large enough free block in this region cannot be
+ found after the machine has been running for a while. If you say Y
+ here the DMA buffers (64Kb) will be allocated at boot time and kept
+ until the shutdown. This option is only useful if you said Y to
+ "OSS sound modules", above. If you said M to "OSS sound modules"
+ then you can get the persistent DMA buffer functionality by passing
+ the command-line argument "dmabuf=1" to the sound.o module.
X
X Say Y unless you have 16MB or less RAM or a PCI sound card.
-
+
X Support for Aztech Sound Galaxy (non-PnP) cards
X CONFIG_SOUND_SGALAXY
X This module initializes the older non Plug and Play sound galaxy
@@ -9556,6 +9716,11 @@
X differs slightly from OSS/Free, so PLEASE READ
X Documentation/sound/sonicvibes.
X
+Rockwell WaveArtist
+CONFIG_SOUND_WAVEARTIST
+ Say Y here to include support for the Rockwell WaveArtist sound
+ system. This driver is mainly for the NetWinder.
+
X Are you using a crosscompiler
X CONFIG_CROSSCOMPILE
X Say Y here if you are compiling the kernel on a different
@@ -10005,27 +10170,11 @@
X MC68EC040 will not work, as it does not include an MMU (Memory
X Management Unit).
X
-Use -m68040 flag for 68040 specific optimizations
-CONFIG_OPTIMIZE_040
- If you will only be running this kernel on a 68040-series processor,
- this will make the kernel run somewhat faster. However, it will no
- longer run on a 68020 or 68030, no matter whether you included 68020
- and 68030 support or not. Say N unless the only processor you are
- compiling support for is the 68040 (or 68LC040).
-
X 68060 support
X CONFIG_M68060
X If you anticipate running this kernel on a computer with a MC68060
X processor, say Y. Otherwise, say N.
X
-Use -m68060 flag for 68060 specific optimizations
-CONFIG_OPTIMIZE_060
- If you will only be running this kernel on a 68060-series processor,
- this will make the kernel run somewhat faster. However, it will no
- longer run on a 68020, 68030 or 68040, no matter whether you
- included support for those processors or not. Say N unless the only
- processor you are compiling support for is the 68060.
-
X Advanced processor options
X CONFIG_ADVANCED_CPU
X This gives you access to some advanced options for the CPU. The
@@ -10058,25 +10207,9 @@
X Note that even if you say N here, you can still use your expansion
X cards. If in doubt, say Y.
X
-Amiga OCS chipset support
-CONFIG_AMIFB_OCS
- This enables support for the original Agnus and Denise video chips,
- found in the Amiga 1000 and most A500's and A2000's. If you intend
- to run Linux on any of these systems, say Y; otherwise say N.
-
-Amiga ECS chipset support
-CONFIG_AMIFB_ECS
- This enables support for the Enhanced Chip Set, found in later
- A500's, later A2000's, the A600, the A3000, the A3000T and CDTV. If
- you intend to run Linux on any of these systems, say Y; otherwise
- say N.
-
-Amiga AGA chipset support
-CONFIG_AMIFB_AGA
- This enables support for the Advanced Graphics Architecture (also
- known as the AGA or AA) Chip Set, found in the A1200, A4000, A4000T
- and CD32. If you intend to run Linux on any of these systems, say Y;
- otherwise say N.
+CONFIG_AMIGA_PCMCIA
+ Include support in the kernel for pcmcia on Amiga 1200 and Amiga 600.
+ If you intend to use pcmcia cards say Y; otherwise say N.
X
X Amiga GSP (TMS340x0) support
X CONFIG_AMIGA_GSP
@@ -10282,6 +10415,16 @@
X want). The module is called hydra.o. If you want to compile it as a
X module, say M here and read Documentation/modules.txt.
X
+Pcmcia NE2000 compatible support
+CONFIG_APNE
+ If you have a pcmcia ne2000 compatible adapter, say Y. Otherwise,
+ say N.
+
+ This driver is also available as a module ( = code which can be
+ inserted in and removed from the running kernel whenever you
+ want). The module is called apne.o. If you want to compile it as a
+ module, say M here and read Documentation/modules.txt.
+
X Atari Lance support
X CONFIG_ATARILANCE
X Say Y to include support for several Atari Ethernet adapters based
@@ -10513,11 +10656,21 @@
X motherboard will usually use a MACE (Medium Access Control for
X Ethernet) interface. Say Y to include support for the MACE chip.
X
+ This driver is also available as a module called mace.o ( = code
+ which can be inserted in and removed from the running kernel
+ whenever you want). If you want to compile it as a module, say M
+ here and read Documentation/modules.txt.
+
X BMAC (G3 ethernet) support
X CONFIG_BMAC
X Say Y for support of BMAC Ethernet interfaces. These are used on G3
X computers.
X
+ This driver is also available as a module called bmac.o ( = code
+ which can be inserted in and removed from the running kernel
+ whenever you want). If you want to compile it as a module, say M
+ here and read Documentation/modules.txt.
+
X Video For Linux
X CONFIG_VIDEO_DEV
X Support for audio/video capture and overlay devices and FM radio
@@ -10686,11 +10839,27 @@
X CONFIG_RADIO_ZOLTRIX_PORT
X Enter the I/O port of your Zoltrix radio card.
X
+ADS Cadet AM/FM Tuner
+CONFIG_RADIO_CADET
+ Say Y here if this is your AM/FM radio card.
+
+ In order to control your radio card, you will need to use programs
+ that are compatible with the Video for Linux API. Information on
+ this API and pointers to "v4l" programs may be found on the WWW at
+ http://roadrunner.swansea.uk.linux.org/v4l.shtml; to browse the WWW,
+ you need to have access to a machine on the Internet that has a
+ program like lynx or netscape.
+
+ If you want to compile this driver as a module ( = code which can be
+ inserted in and removed from the running kernel whenever you want),
+ say M here and read Documentation/modules.txt. The module will be
+ called radio-cadet.o
+
X Miro PCM20 Radio
X CONFIG_RADIO_MIROPCM20
- Choose Y here if you have this FM radio card. You also need the
- PCM12/PCM20 ACI mixer in additional low level sound drivers for this
- to work.
+ Choose Y here if you have this FM radio card. You also need to say Y
+ to "ACI mixer (miroPCM12/PCM20)" (in "additional low level sound
+ drivers") for this to work.
X
X In order to control your radio card, you will need to use programs
X that are compatible with the Video for Linux API. Information on
@@ -10772,6 +10941,9 @@
X from the running kernel whenever you want). If you want to compile
X it as a module, say M here and read Documentation/modules.txt.
X
+#
+# ARM options
+#
X CPU Optimization
X CONFIG_CPU_ARM2
X This selects the processor type of your CPU. This is only used to
@@ -10788,40 +10960,154 @@
X to set this option to, please consult any information supplied with
X your system.
X
-Include support for CATS boards
+Include support for Chalice CATS boards
X CONFIG_CATS
- Say Y here if you wish to include support for the extra hardware
- found in Chalice CATS machines. The resulting kernel will still run
- on an EBSA-285 but will be slightly larger. If in doubt say N.
+ Say Y here if you intend to run this kernel on a CATS system.
+
+Include support for Intel EBSA285
+CONFIG_ARCH_EBSA285
+ Say Y here if you intend to run this kernel on an EBSA-285 evaluation
+ board.
+
+Include support for the NetWinder
+CONFIG_ARCH_NETWINDER
+ Say Y here if you intend to run this kernel on the NetWinder.
+
+Math emulation
+CONFIG_NWFPE
+ Say Y to include the NWFPE floating point emulator in the kernel. This
+ is necessary to run most binaries. Linux does not currently support
+ floating point hardware so you need to say Y here even if your machine
+ has an FPA or floating point co-processor podule.
+
+ It is also possible to say M to build the emulator as a module
+ (nwfpe.o) or indeed to leave it out altogether. However, unless you
+ know what you are doing this can easily render your machine unbootable.
+ Saying Y is the safe option.
+
+ You may say N here if you are going to load the Acorn FPEmulator
+ early in the bootup.
+
+DS1620 Thermometer support
+CONFIG_DS1620
+ Say Y here to include support for the thermal management hardware
+ found in the NetWinder. This driver allows the user to control the
+ temperature set points and to read the current temperature.
+
+ It is also possible to say M here to build it as a module (ds1620.o)
+ It is recommended to be used on a NetWinder, but it is not a
+ necessity.
X
-Debug kernel errors
+Verbose kernel error messages
X CONFIG_DEBUG_ERRORS
X This option controls verbose debugging information which can be
- printed when the kernel detects an internal error. Verbose debugging
- information is useful when tracking down kernel problems, but it
- will be meaning less for non-kernel hackers. It's safe for everyone
- to say Y.
-
-Build Tools Selection
-CONFIG_BINUTILS_NEW
- Say Y here if and only if you're using GCC 2.8.1/EGCS with a
- binutils version >= 2.8.1 to compile the kernel (check with "gcc
- --version" and "ld -v").
+ printed when the kernel detects an internal error. This debugging
+ information is useful to kernel hackers when tracking down problems,
+ but mostly meaningless to other people. It's safe to say Y unless
+ you are concerned with the code size or don't want to see these
+ messages.
X
X Compile kernel with frame pointer
X CONFIG_FRAME_POINTER
- If you say Y here, the resulting kernel will be slightly larger, but
- it will give useful debugging/error results. If you don't debug the
- kernel, you can say N.
+ If you say Y here, the resulting kernel will be slightly larger and
+ slower, but it will give useful debugging information. If you don't
+ debug the kernel, you can say N.
+
+User fault debugging
+CONFIG_DEBUG_USER
+ When a user program crashes due to an exception, the kernel can print
+ a brief message explaining what the problem was. This is sometimes
+ helpful for debugging but serves no purpose on a production system.
+ Most people should say N here.
+
+Include gdb debugging information in kernel binary
+CONFIG_DEBUG_INFO
+ Say Y here to include source-level debugging information in the
+ `vmlinux' binary image. This is handy if you want to use gdb or
+ addr2line to debug the kernel. It has no impact on the in-memory
+ footprint of the running kernel but it can increase the amount of
+ time and disk space needed for compilation. If in doubt say N.
+
+Split initialisation functions into discardable section
+CONFIG_TEXT_SECTIONS
+ Normally code that is only used during initialisation is collected
+ into a special area of the kernel so that it can be discarded and
+ the memory reclaimed when initialisation is complete. In addition,
SHAR_EOF
true || echo 'restore of patch-2.2.8 failed'
fi
echo 'End of part 01'
echo 'File patch-2.2.8 is continued in part 02'
echo 02 > _shar_seq_.tmp
exit 0

Thomas...@ciw.uni-karlsruhe.de

unread,
May 12, 1999, 3:00:00 AM5/12/99
to
Archive-name: v2.2/patch-2.2.8/part02

#!/bin/sh
# this is part 02 of a 33 - part archive


# do not concatenate these parts, unpack them in order with /bin/sh

# file patch-2.2.8 continued
if test ! -r _shar_seq_.tmp; then
echo 'Please unpack part 1 first!'
exit 1
fi
(read Scheck
if test "$Scheck" != 02; then
echo Please unpack part "$Scheck" next!
exit 1
else
exit 0
fi
) < _shar_seq_.tmp || exit 1
if test ! -f _shar_wnt_.tmp; then
echo 'x - still skipping patch-2.2.8'
else
echo 'x - continuing with patch-2.2.8'


sed 's/^X//' << 'SHAR_EOF' >> 'patch-2.2.8' &&

+ if the kernel you wish to build is able to run on multiple
+ architectures, it allows the unused code to be discarded. Some
+ versions of binutils, however, have a bug that causes the kernel
+ to crash during startup when this option is enabled. Say Y unless
+ you experience problems that you suspect may be caused by this.
+
+Disable pgtable cache
+CONFIG_NO_PGT_CACHE
+ Normally the kernel maintains a `quicklist' of preallocated pagetable
+ structures in order to increase performance. On machines with very
+ few pages this may however be a loss. Say Y here to disable the pgtable
+ cache.
+
+RISC OS personality
+CONFIG_ARTHUR
+ Say Y here to include the kernel code necessary if you want to run
+ Acorn RISC OS/Arthur binaries under Linux. This code is still very
+ experimental; if this sounds frightening, say N and sleep in peace.
+ You can also say M here to compile this support as a module (which
+ will be called arthur.o).
X
X Initial kernel command line
X CONFIG_CMDLINE
- On some architectures (EBSA285, EBSA110 and Corel NetWinder), there
- is currently no way for the boot loader to pass arguments to the
- kernel. For these architectures, you should supply some command-line
- options at build time by entering them here. As a minimum, you
- should specify the memory size and the root device (e.g., mem=64M
- root=/dev/nfs)
+ On some architectures (EBSA110 and CATS), there is currently no way
+ for the boot loader to pass arguments to the kernel. For these
+ architectures, you should supply some command-line options at build
+ time by entering them here. As a minimum, you should specify the
+ memory size and the root device (eg, mem=64M root=/dev/nfs)
+
+Hardware alignment trap
+CONFIG_ALIGNMENT_TRAP
+ ARM processors can not fetch/store information which is not naturally
+ aligned on the bus, ie, a 4 byte fetch must start at an address divisable
+ by 4. On 32-bit ARM processors, these instructions can be emulated in
+ software with a severe performance impact. This is necessary for correct
+ operation of some network protocols. With an IP-only configuration
+ it is safe to say N, otherwise say Y.
+
+21285 serial port support
+CONFIG_SERIAL_21285
+ If you have a machine based on a 21285 (Footbridge) StrongARM/PCI
+ bridge you can enable its onboard serial port by enabling this
+ option. The device has major ID 4, minor 64.
+
+Console on 21285 serial port
+CONFIG_SERIAL_21285_CONSOLE
+ If you have enabled the serial port on the 21285 footbridge you can
+ make it the console by answering 'Y' to this option.
+
+Footbridge Mode
+CONFIG_HOST_FOOTBRIDGE
+ The 21285 Footbridge chip can operate in either `host mode' or
+ `add-in' mode. Say Y if your 21285 is in host mode, and therefore
+ is the configuration master, otherwise say N.
+
+MFM harddisk support
+CONFIG_BLK_DEV_MFM
+ Support the MFM hard drives on the Acorn Archimedes both
+ on-board the A4x0 motherboards and via the Acorn MFM podules.
+ Drives upto 64MB are supported. If you haven't got one of these
+ machines or drives just say 'N'.
+
+Old Archimedes floppy (1772) support
+CONFIG_BLK_DEV_FD1772
+ Support the floppy drive on the Acorn Archimedes (A300, A4x0, A540,
+ R140 and R260) series of computers; it supports only 720K floppies
+ at the moment. If you don't have one of these machines just answer
+ 'N'.
+
+Autodetect hard drive geometry
+CONFIG_BLK_DEV_MFM_AUTODETECT
+ If you answer 'Y' the MFM code will attempt to automatically detect
+ the cylinders/heads/sectors count on your hard drive. WARNING: This
+ sometimes doesn't work and it also does some dodgy stuff which
+ potentially might damage your drive.
X
X IrDA Protocols
X CONFIG_IRDA
@@ -10834,7 +11120,7 @@
X as well. For more information, see the file
X Documentation/networking/irda.txt. You also want to read the
X IR-HOWTO, available from


- ftp://metalab.unc.edu:/pub/Linux/docs/HOWTO.
+ ftp://metalab.unc.edu/pub/Linux/docs/HOWTO.
X

X This support is also available as a module. If you want to compile
X it as a module, say M here and read Documentation/modules.txt. The
@@ -10864,17 +11150,6 @@


X
X If unsure, say N.
X

-IrDA Recycle RR's
-CONFIG_IRDA_RECYCLE_RR
- In the normal life of the IrLAP protocol, it sends a lot of small RR
- (Receive Ready) frames over the link (at least when it has nothing
- else to do). Saying Y to this option will make IrLAP recycle these
- frames thus avoiding many alloc_skb's and kfree_skb's. To do this it
- will only buffer one of these frame which is enough for the normal
- case.
-
- If unsure, say Y.
-
X IrDA Debug
X CONFIG_IRDA_DEBUG
X Say Y here if you want the IrDA subsystem to write debug information
@@ -10912,21 +11187,9 @@
X
X The IrLAN protocol can be used to talk with infrared access points
X like the HP NetbeamIR, or the ESI JetEye NET. You can also connect
- to another Linux machine running the IrLAN protocol for ac-hoc
+ to another Linux machine running the IrLAN protocol for ad-hoc
X networking!
X
-IrOBEX Protocol
-CONFIG_IROBEX
- Say Y here if you want to build support for the IrOBEX protocol. If
- you want to compile it as a module, say M here and read
- Documentation/modules.txt. The module does not actually implement
- the IrOBEX protocol since that protocol lives in user space, but it
- contains the necessary functions to interface the user-space stuff
- with the kernel. So you will need to have the user-space library and
- programs that can use this library installed as well to be able to
- use the IrOBEX protocol. This module will hopefully be replaced by
- IrDA sockets in the future.
-
X IrCOMM Protocol
X CONFIG_IRCOMM
X Say Y here if you want to build support for the IrCOMM protocol. If
@@ -11331,7 +11594,7 @@
X # LocalWords: COSA SRP muni cz kas cosa Alteon AceNIC acenic VTOC OSes GMT SAx
X # LocalWords: Inspiron localtime INTS Thinkpads Ralf Brown's Flightstick NNN
X # LocalWords: Xterminator Blackhawk NN mpu ioports DCA HPDCA HPLANCE DIO Corel
-# LocalWords: GemTek gemtek CMDLINE IrDA PDA's irmanager irattach RR AVA DN
+# LocalWords: GemTek gemtek CMDLINE IrDA PDA's irmanager irattach RR AVA DN rg
X # LocalWords: uit dagb irda LSAP IrLMP RR's IrLAP IR alloc skb's kfree skb's
X # LocalWords: GZIP IrLAN NetbeamIR ESI JetEye IrOBEX IrCOMM TTY's minicom dti
X # LocalWords: ircomm ircomm pluto thiguchi IrTTY Linux's bps NetWinder MIR NSC
@@ -11340,3 +11603,4 @@
X # LocalWords: alphalinux GOBIOS csn chemnitz nat ACARD AMI MegaRAID megaraid
X # LocalWords: QNXFS ISI isicom xterms Apollos VPN RCPCI rcpci sgi visws pcmcia
X # LocalWords: IrLPT UIRCC Tecra
+
diff -u --recursive --new-file v2.2.7/linux/Documentation/arm/Netwinder linux/Documentation/arm/Netwinder
--- v2.2.7/linux/Documentation/arm/Netwinder Wed Dec 31 16:00:00 1969
+++ linux/Documentation/arm/Netwinder Sun May 2 09:51:16 1999
@@ -0,0 +1,78 @@
+NetWinder specific documentation
+================================
+
+The NetWinder is a small low-power computer, primarily designed
+to run Linux. It is based around the StrongARM RISC processor,
+DC21285 PCI bridge, with PC-type hardware glued around it.
+
+Port usage
+==========
+
+Min - Max Description
+---------------------------
+0x0000 - 0x000f DMA1
+0x0020 - 0x0021 PIC1
+0x0060 - 0x006f Keyboard
+0x0070 - 0x007f RTC
+0x0080 - 0x0087 DMA1
+0x0088 - 0x008f DMA2
+0x00a0 - 0x00a3 PIC2
+0x00c0 - 0x00df DMA2
+0x0180 - 0x0187 IRDA
+0x01f0 - 0x01f6 ide0
+0x0201 Game port
+0x0203 RWA010 configuration read
+0x0220 - ? SoundBlaster
+0x0250 - ? WaveArtist
+0x0279 RWA010 configuration index
+0x02f8 - 0x02ff Serial ttyS1
+0x0300 - 0x031f Ether10
+0x0338 GPIO1
+0x033a GPIO2
+0x0370 - 0x0371 W83977F configuration registers
+0x0388 - ? AdLib
+0x03c0 - 0x03df VGA
+0x03f6 ide0
+0x03f8 - 0x03ff Serial ttyS0
+0x0400 - 0x0408 DC21143
+0x0480 - 0x0487 DMA1
+0x0488 - 0x048f DMA2
+0x0a79 RWA010 configuration write
+0xe800 - 0xe80f ide0/ide1 BM DMA
+
+
+Interrupt usage
+===============
+
+IRQ type Description
+---------------------------
+ 0 ISA 100Hz timer
+ 1 ISA Keyboard
+ 2 ISA cascade
+ 3 ISA Serial ttyS1
+ 4 ISA Serial ttyS0
+ 5 ISA PS/2 mouse
+ 6 ISA IRDA
+ 7 ISA Printer
+ 8 ISA RTC alarm
+ 9 ISA
+10 ISA GP10 (Orange reset button)
+11 ISA
+12 ISA WaveArtist
+13 ISA
+14 ISA hda1
+15 ISA
+
+DMA usage
+=========
+
+DMA type Description
+---------------------------
+ 0 ISA IRDA
+ 1 ISA
+ 2 ISA cascade
+ 3 ISA WaveArtist
+ 4 ISA
+ 5 ISA
+ 6 ISA
+ 7 ISA WaveArtist
diff -u --recursive --new-file v2.2.7/linux/Documentation/arm/README linux/Documentation/arm/README
--- v2.2.7/linux/Documentation/arm/README Wed Dec 31 16:00:00 1969
+++ linux/Documentation/arm/README Sun May 2 09:51:16 1999
@@ -0,0 +1,139 @@
+ ARM Linux 2.2.3
+ ===============
+
+ * NOTE * The ARM support in the mainstream Linux kernel sources
+ is not up to date. Please check ftp.arm.uk.linux.org:/pub/armlinux
+ for latest updates.
+
+Compilation of kernel
+---------------------
+
+ In order to compile ARM Linux, you will need a compiler capable of
+ generating ARM ELF code with GNU extensions. GCC-2.7.2.2 ELF, GCC 2.8.1
+ and EGCS are good compilers. Note that GCC-2.7.2.2 ELF is rare, and
+ you probably don't have it.
+
+ To build ARM Linux natively, you shouldn't have to alter the ARCH = line in
+ the top level Makefile. However, if you don't have the ARM Linux ELF tools
+ installed as default, then you should change the CROSS_COMPILE line as
+ detailed below.
+
+ If you wish to cross-compile, then alter the following lines in the top
+ level make file:
+
+ ARCH = <whatever>
+ with
+ ARCH = arm
+
+ and
+
+ CROSS_COMPILE=
+ to
+ CROSS_COMPILE=<your-path-to-your-compiler-without-gcc>
+ eg.
+ CROSS_COMPILE=arm-linux-
+
+ Do a 'make config', followed by 'make dep', and finally 'make Image' to
+ build the kernel (arch/arm/boot/Image). A compressed image can be built
+ by doing a 'make zImage' instead of 'make Image'.
+
+
+Bug reports etc
+---------------
+
+ Please send patches, bug reports and code for the ARM Linux project
+ to li...@arm.linux.org.uk Patches will not be included into future
+ kernels unless they come to me (or the relevant person concerned).
+
+ When sending bug reports, please ensure that they contain all relevant
+ information, eg. the kernel messages that were printed before/during
+ the problem, what you were doing, etc.
+
+ For patches, please include some explanation as to what the patch does
+ and why (if relevant).
+
+
+Modules
+-------
+
+ Although modularisation is supported (and required for the FP emulator),
+ each module on an arm2/arm250/arm3 machine when is loaded will take
+ memory up to the next 32k boundary due to the size of the pages. Hence is
+ modularisation on these machines really worth it?
+
+ However, arm6 and up machines allow modules to take multiples of 4k, and
+ as such Acorn RiscPCs and other architectures using these processors can
+ make good use of modularisation.
+
+
+ADFS Image files
+----------------
+
+ You can access image files on your ADFS partitions by mounting the ADFS
+ partition, and then using the loopback device driver. You must have
+ losetup installed.
+
+ Please note that the PCEmulator DOS partitions have a partition table at
+ the start, and as such, you will have to give '-o offset' to losetup.
+
+
+Request to developers
+---------------------
+
+ When writing device drivers which include a separate assembler file, please
+ include it in with the C file, and not the arch/arm/lib directory. This
+ allows the driver to be compiled as a loadable module without requiring
+ half the code to be compiled into the kernel image.
+
+ In general, try to avoid using assembler unless it is really necessary. It
+ makes drivers far less easy to port to other hardware.
+
+
+ST506 hard drives
+-----------------
+
+ The ST506 hard drive controllers seem to be working fine (if a little
+ slowly). At the moment they will only work off the controllers on an
+ A4x0's motherboard, but for it to work off a Podule just requires
+ someone with a podule to add the addresses for the IRQ mask and the
+ HDC base to the source.
+
+ As of 31/3/96 it works with two drives (you should get the ADFS
+ *configure harddrive set to 2). I've got an internal 20MB and a great
+ big external 5.25" FH 64MB drive (who could ever want more :-) ).
+
+ I've just got 240K/s off it (a dd with bs=128k); thats about half of what
+ RiscOS gets; but it's a heck of a lot better than the 50K/s I was getting
+ last week :-)
+
+ Known bug: Drive data errors can cause a hang; including cases where
+ the controller has fixed the error using ECC. (Possibly ONLY
+ in that case...hmm).
+
+
+1772 Floppy
+-----------
+ This also seems to work OK, but hasn't been stressed much lately. It
+ hasn't got any code for disc change detection in there at the moment which
+ could be a bit of a problem! Suggestions on the correct way to do this
+ are welcome.
+
+
+Kernel entry (head-armv.S)
+--------------------------
+ The initial entry into the kernel made via head-armv.S uses architecture
+ independent code. The architecture is selected by the value of 'r1' on
+ entry, which must be kept unique. You can register a new architecture
+ by mailing the following details to r...@arm.uk.linux.org. Please give
+ the mail a subject of 'Register new architecture':
+
+ Name: <name of your architecture>
+ ARCHDIR: <name of include/asm-arm/arch-* directory>
+ Description:
+ <description of your architecture>
+
+ Please follow this format - it is an automated system. You should
+ receive a reply the next day.
+
+---
+Russell King (27/03/1999)
diff -u --recursive --new-file v2.2.7/linux/Documentation/arm/nwfpe/NOTES linux/Documentation/arm/nwfpe/NOTES
--- v2.2.7/linux/Documentation/arm/nwfpe/NOTES Wed Dec 31 16:00:00 1969
+++ linux/Documentation/arm/nwfpe/NOTES Sun May 2 09:51:16 1999
@@ -0,0 +1,29 @@
+There seems to be a problem with exp(double) and our emulator. I haven't
+been able to track it down yet. This does not occur with the emulator
+supplied by Russell King.
+
+I also found one oddity in the emulator. I don't think it is serious but
+will point it out. The ARM calling conventions require floating point
+registers f4-f7 to be preserved over a function call. The compiler quite
+often uses an stfe instruction to save f4 on the stack upon entry to a
+function, and an ldfe instruction to restore it before returning.
+
+I was looking at some code, that calculated a double result, stored it in f4
+then made a function call. Upon return from the function call the number in
+f4 had been converted to an extended value in the emulator.
+
+This is a side effect of the stfe instruction. The double in f4 had to be
+converted to extended, then stored. If an lfm/sfm combination had been used,
+then no conversion would occur. This has performance considerations. The
+result from the function call and f4 were used in a multiplication. If the
+emulator sees a multiply of a double and extended, it promotes the double to
+extended, then does the multiply in extended precision.
+
+This code will cause this problem:
+
+double x, y, z;
+z = log(x)/log(y);
+
+The result of log(x) (a double) will be calculated, returned in f0, then
+moved to f4 to preserve it over the log(y) call. The division will be done
+in extended precision, due to the stfe instruction used to save f4 in log(y).
diff -u --recursive --new-file v2.2.7/linux/Documentation/arm/nwfpe/README linux/Documentation/arm/nwfpe/README
--- v2.2.7/linux/Documentation/arm/nwfpe/README Wed Dec 31 16:00:00 1969
+++ linux/Documentation/arm/nwfpe/README Sun May 2 09:51:16 1999
@@ -0,0 +1,70 @@
+This directory contains the version 0.92 test release of the NetWinder
+Floating Point Emulator.
+
+The majority of the code was written by me, Scott Bambrough It is
+written in C, with a small number of routines in inline assembler
+where required. It was written quickly, with a goal of implementing a
+working version of all the floating point instructions the compiler
+emits as the first target. I have attempted to be as optimal as
+possible, but there remains much room for improvement.
+
+I have attempted to make the emulator as portable as possible. One of
+the problems is with leading underscores on kernel symbols. Elf
+kernels have no leading underscores, a.out compiled kernels do. I
+have attempted to use the C_SYMBOL_NAME macro wherever this may be
+important.
+
+Another choice I made was in the file structure. I have attempted to
+contain all operating system specfic code in one module (fpmodule.*).
+All the other files contain emulator specific code. This should allow
+others to port the emulator to NetBSD for instance relatively easily.
+
+The floating point operations are based on SoftFloat Release 2, by
+John Hauser. SoftFloat is a software implementation of floating-point
+that conforms to the IEC/IEEE Standard for Binary Floating-point
+Arithmetic. As many as four formats are supported: single precision,
+double precision, extended double precision, and quadruple precision.
+All operations required by the standard are implemented, except for
+conversions to and from decimal. We use only the single precision,
+double precision and extended double precision formats. The port of
+SoftFloat to the ARM was done by Phil Blundell, based on an earlier
+port of SoftFloat version 1 by Neil Carson for NetBSD/arm32.
+
+The file README.FPE contains a description of what has been implemented
+so far in the emulator. The file TODO contains a information on what
+remains to be done, and other ideas for the emulator.
+
+Bug reports, comments, suggestions should be directed to me at
+<sco...@corelcomputer.com>. General reports of "this program doesn't
+work correctly when your emulator is installed" are useful for
+determining that bugs still exist; but are virtually useless when
+attempting to isolate the problem. Please report them, but don't
+expect quick action. Bugs still exist. The problem remains in isolating
+which instruction contains the bug. Small programs illustrating a specific
+problem are a godsend.
+
+Legal Notices
+-------------
+
+The NetWinder Floating Point Emulator is free software. Everything Corel
+has written is provided under the GNU GPL. See the file COPYING for copying
+conditions. Excluded from the above is the SoftFloat code. John Hauser's
+legal notice for SoftFloat is included below.
+
+-------------------------------------------------------------------------------
+SoftFloat Legal Notice
+
+SoftFloat was written by John R. Hauser. This work was made possible in
+part by the International Computer Science Institute, located at Suite 600,
+1947 Center Street, Berkeley, California 94704. Funding was partially
+provided by the National Science Foundation under grant MIP-9311980. The
+original version of this code was written as part of a project to build
+a fixed-point vector processor in collaboration with the University of
+California at Berkeley, overseen by Profs. Nelson Morgan and John Wawrzynek.
+
+THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort
+has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT
+TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO
+PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ANY
+AND ALL LOSSES, COSTS, OR OTHER PROBLEMS ARISING FROM ITS USE.
+-------------------------------------------------------------------------------
diff -u --recursive --new-file v2.2.7/linux/Documentation/arm/nwfpe/README.FPE linux/Documentation/arm/nwfpe/README.FPE
--- v2.2.7/linux/Documentation/arm/nwfpe/README.FPE Wed Dec 31 16:00:00 1969
+++ linux/Documentation/arm/nwfpe/README.FPE Sun May 2 09:51:16 1999
@@ -0,0 +1,156 @@
+The following describes the current state of the NetWinder's floating point
+emulator.
+
+In the following nomenclature is used to describe the floating point
+instructions. It follows the conventions in the ARM manual.
+
+<S|D|E> = <single|double|extended>, no default
+{P|M|Z} = {round to +infinity,round to -infinity,round to zero},
+ default = round to nearest
+
+Note: items enclosed in {} are optional.
+
+Floating Point Coprocessor Data Transfer Instructions (CPDT)
+------------------------------------------------------------
+
+LDF/STF - load and store floating
+
+<LDF|STF>{cond}<S|D|E> Fd, Rn
+<LDF|STF>{cond}<S|D|E> Fd, [Rn, #<expression>]{!}
+<LDF|STF>{cond}<S|D|E> Fd, [Rn], #<expression>
+
+These instructions are fully implemented.
+
+LFM/SFM - load and store multiple floating
+
+Form 1 syntax:
+<LFM|SFM>{cond}<S|D|E> Fd, <count>, [Rn]
+<LFM|SFM>{cond}<S|D|E> Fd, <count>, [Rn, #<expression>]{!}
+<LFM|SFM>{cond}<S|D|E> Fd, <count>, [Rn], #<expression>
+
+Form 2 syntax:
+<LFM|SFM>{cond}<FD,EA> Fd, <count>, [Rn]{!}
+
+These instructions are fully implemented. They store/load three words
+for each floating point register into the memory location given in the
+instruction. The format in memory is unlikely to be compatible with
+other implementations, in particular the actual hardware. Specific
+mention of this is made in the ARM manuals.
+
+Floating Point Coprocessor Register Transfer Instructions (CPRT)
+----------------------------------------------------------------
+
+Conversions, read/write status/control register instructions
+
+FLT{cond}<S,D,E>{P,M,Z} Fn, Rd Convert integer to floating point
+FIX{cond}{P,M,Z} Rd, Fn Convert floating point to integer
+WFS{cond} Rd Write floating point status register
+RFS{cond} Rd Read floating point status register
+WFC{cond} Rd Write floating point control register
+RFC{cond} Rd Read floating point control register
+
+FLT/FIX are fully implemented.
+
+RFS/WFS are fully implemented.
+
+RFC/WFC are fully implemented. RFC/WFC are supervisor only instructions, and
+presently check the CPU mode, and do an invalid instruction trap if not called
+from supervisor mode.
+
+Compare instructions
+
+CMF{cond} Fn, Fm Compare floating
+CMFE{cond} Fn, Fm Compare floating with exception
+CNF{cond} Fn, Fm Compare negated floating
+CNFE{cond} Fn, Fm Compare negated floating with exception
+
+These are fully implemented.
+
+Floating Point Coprocessor Data Instructions (CPDT)
+---------------------------------------------------
+
+Dyadic operations:
+
+ADF{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - add
+SUF{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - subtract
+RSF{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - reverse subtract
+MUF{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - multiply
+DVF{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - divide
+RDV{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - reverse divide
+
+These are fully implemented.
+
+FML{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - fast multiply
+FDV{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - fast divide
+FRD{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - fast reverse divide
+
+These are fully implemented as well. They use the same algorithm as the
+non-fast versions. Hence, in this implementation their performance is
+equivalent to the MUF/DVF/RDV instructions. This is acceptable according
+to the ARM manual. The manual notes these are defined only for single
+operands, on the actual FPA11 hardware they do not work for double or
+extended precision operands. The emulator currently does not check
+the requested permissions conditions, and performs the requested operation.
+
+RMF{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - IEEE remainder
+
+This is fully implemented.
+
+Monadic operations:
+
+MVF{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - move
+MNF{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - move negated
+
+These are fully implemented.
+
+ABS{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - absolute value
+SQT{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - square root
+RND{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - round
+
+These are fully implemented.
+
+URD{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - unnormalized round
+NRM{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - normalize
+
+These are implemented. URD is implemented using the same code as the RND
+instruction. Since URD cannot return a unnormalized number, NRM becomes
+a NOP.
+
+Library calls:
+
+POW{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - power
+RPW{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - reverse power
+POL{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - polar angle (arctan2)
+
+LOG{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - logarithm to base 10
+LGN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - logarithm to base e
+EXP{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - exponent
+SIN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - sine
+COS{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - cosine
+TAN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - tangent
+ASN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - arcsine
+ACS{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - arccosine
+ATN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - arctangent
+
+These are not implemented. They are not currently issued by the compiler,
+and are handled by routines in libc. These are not implemented by the FPA11
+hardware, but are handled by the floating point support code. They should
+be implemented in future versions.
+
+Signalling:
+
+Signals are implemented. However current ELF kernels produced by Corel
+Computer have a bug in them that prevents the module from generating a
+SIGFPE. This is caused by a failure to alias fp_current to the kernel
+variable current_set[0] correctly.
+
+The kernel provided with this distribution (vmlinux-nwfpe-0.93) contains
+a fix for this problem and also incorporates the current version of the
+emulator directly. It is possible to run with no floating point module
+loaded with this kernel. It is provided as a demonstration of the
+technology and for those who want to do floating point work that depends
+on signals. It is not strictly necessary to use the module.
+
+A module (either the one provided by Russell King, or the one in this
+distribution) can be loaded to replace the functionality of the emulator
+built into the kernel.
diff -u --recursive --new-file v2.2.7/linux/Documentation/arm/nwfpe/TODO linux/Documentation/arm/nwfpe/TODO
--- v2.2.7/linux/Documentation/arm/nwfpe/TODO Wed Dec 31 16:00:00 1969
+++ linux/Documentation/arm/nwfpe/TODO Sun May 2 09:51:16 1999
@@ -0,0 +1,67 @@
+TODO LIST
+---------
+
+POW{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - power
+RPW{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - reverse power
+POL{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - polar angle (arctan2)
+
+LOG{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - logarithm to base 10
+LGN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - logarithm to base e
+EXP{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - exponent
+SIN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - sine
+COS{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - cosine
+TAN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - tangent
+ASN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - arcsine
+ACS{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - arccosine
+ATN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - arctangent
+
+These are not implemented. They are not currently issued by the compiler,
+and are handled by routines in libc. These are not implemented by the FPA11
+hardware, but are handled by the floating point support code. They should
+be implemented in future versions.
+
+There are a couple of ways to approach the implementation of these. One
+method would be to use accurate table methods for these routines. I have
+a couple of papers by S. Gal from IBM's research labs in Haifa, Israel that
+seem to promise extreme accuracy (in the order of 99.8%) and reasonable speed.
+These methods are used in GLIBC for some of the transcendental functions.
+
+Another approach, which I know little about is CORDIC. This stands for
+Coordinate Rotation Digital Computer, and is a method of computing
+transcendental functions using mostly shifts and adds and a few
+multiplications and divisions. The ARM excels at shifts and adds,
+so such a method could be promising, but requires more research to
+determine if it is feasible.
+
+Rounding Methods
+
+The IEEE standard defines 4 rounding modes. Round to nearest is the
+default, but rounding to + or - infinity or round to zero are also allowed.
+Many architectures allow the rounding mode to be specified by modifying bits
+in a control register. Not so with the ARM FPA11 architecture. To change
+the rounding mode one must specify it with each instruction.
+
+This has made porting some benchmarks difficult. It is possible to
+introduce such a capability into the emulator. The FPCR contains
+bits describing the rounding mode. The emulator could be altered to
+examine a flag, which if set forced it to ignore the rounding mode in
+the instruction, and use the mode specified in the bits in the FPCR.
+
+This would require a method of getting/setting the flag, and the bits
+in the FPCR. This requires a kernel call in ArmLinux, as WFC/RFC are
+supervisor only instructions. If anyone has any ideas or comments I
+would like to hear them.
+
+[NOTE: pulled out from some docs on ARM floating point, specifically
+ for the Acorn FPE, but not limited to it:
+
+ The floating point control register (FPCR) may only be present in some
+ implementations: it is there to control the hardware in an implementation-
+ specific manner, for example to disable the floating point system. The user
+ mode of the ARM is not permitted to use this register (since the right is
+ reserved to alter it between implementations) and the WFC and RFC
+ instructions will trap if tried in user mode.
+
+ Hence, the answer is yes, you could do this, but then you will run a high
+ risk of becoming isolated if and when hardware FP emulation comes out
+ -- Russell].
diff -u --recursive --new-file v2.2.7/linux/Documentation/digiboard.txt linux/Documentation/digiboard.txt
--- v2.2.7/linux/Documentation/digiboard.txt Fri Jan 8 22:35:58 1999
+++ linux/Documentation/digiboard.txt Thu Apr 29 11:53:41 1999
@@ -111,7 +111,7 @@
X Boot-time configuration when linked into the kernel
X ---------------------------------------------------
X
-Per Board to be configured, pass a digi= commandline parameter to the
+Per board to be configured, pass a digi= command-line parameter to the
X kernel using lilo or loadlin. It consists of a string of comma separated
X identifiers or integers. The 6 values in order are:
X
@@ -142,7 +142,7 @@
X
X append="digi=1,0,0,16,512,851968"
X
-If you don't give a digi= commandline, the compiled-in defaults of
+If you don't give a digi= command line, the compiled-in defaults of
X board 1: io=0x200, membase=0xd0000, altpin=off and numports=16 are used.
X
X If you have the resources (io&mem) free for use, configure your board to
@@ -153,9 +153,9 @@
X Sources of Information
X ----------------------
X
-Webpage: http://private.fuller.edu/clameter/digi.html
+Web page: http://private.fuller.edu/clameter/digi.html
X
-Mailing List: digi...@list.fuller.edu
+Mailing list: digi...@list.fuller.edu
X
X (Write e-mail to that address to subscribe. Common ListServ commands work.
X Archive of messages available)
diff -u --recursive --new-file v2.2.7/linux/Documentation/digiepca.txt linux/Documentation/digiepca.txt
--- v2.2.7/linux/Documentation/digiepca.txt Fri Jan 8 22:35:58 1999
+++ linux/Documentation/digiepca.txt Thu Apr 29 11:53:41 1999
@@ -11,7 +11,7 @@
X
X The Linux MAKEDEV command does not support generating the Digiboard
X Devices. Users executing digiConfig to setup EISA and PC series cards
-will have their device nodes automaticly constructed (cud?? for ~CLOCAL,
+will have their device nodes automatically constructed (cud?? for ~CLOCAL,
X and ttyD?? for CLOCAL). Users wishing to boot their board from the LILO
X prompt, or those users booting PCI cards may use buildDIGI to construct
X the necessary nodes.
@@ -19,7 +19,7 @@
X Notes:
X ------
X This driver may be configured via LILO. For users who have already configured
-their driver using digiConfig, configuring from lilo will override previous
+their driver using digiConfig, configuring from LILO will override previous
X settings. Multiple boards may be configured by issuing multiple LILO command
X lines. For examples see the bottom of this document.
X
diff -u --recursive --new-file v2.2.7/linux/Documentation/fb/matroxfb.txt linux/Documentation/fb/matroxfb.txt
--- v2.2.7/linux/Documentation/fb/matroxfb.txt Wed Apr 28 11:37:29 1999
+++ linux/Documentation/fb/matroxfb.txt Thu Apr 29 11:53:41 1999
@@ -95,11 +95,11 @@
X =======
X
X Driver contains SVGALib compatibility code. It is turned on by choosing textual
-mode for console. You can do it at boottime by using videomode
+mode for console. You can do it at boot time by using videomode
X 2,3,7,0x108-0x10C or 0x1C0. At runtime, `fbset -depth 0' does this work.
X Unfortunately, after SVGALib application exits, screen contents is corrupted.
-Switching to another console and back fixes it. I hope that it is SVGALib and
-not mine problem, but I'm not sure.
+Switching to another console and back fixes it. I hope that it is SVGALib's
+problem and not mine, but I'm not sure.
X
X
X Configuration
@@ -113,7 +113,7 @@
X mem:X - size of memory (X can be in megabytes, kilobytes or bytes)
X You can only decrease value determined by driver because of
X it always probe for memory. Default is to use whole detected
- memory usable for on-screen display (i.e. max. 8MB).
+ memory usable for on-screen display (i.e. max. 8 MB).
X disabled - do not load driver; you can use also `off', but `disabled'
X is here too.
X enabled - load driver, if you have `video=matrox:disabled' in LILO
@@ -159,7 +159,7 @@
X inv24 - change timings parameters for 24bpp modes on Millenium and
X Millenium II. Specify this if you see strange color shadows around
X characters.
-noinv24 - use standard timmings. It is default.
+noinv24 - use standard timings. It is the default.
X inverse - invert colors on screen (for LCD displays)
X noinverse - show true colors on screen. It is default.
X dev:X - bind driver to device X. Driver numbers device from 0 up to N,
@@ -252,25 +252,25 @@
X access to /dev/fb* - everyone with access to this device can destroy
X your monitor, believe me...).
X + 24bpp does not support correctly XF-FBDev on big-endian architectures.
- + interlaced text mode is not supported; it looks like hardware limitiation,
+ + interlaced text mode is not supported; it looks like hardware limitation,
X but I'm not sure.
X + G200 SGRAM/SDRAM is not autodetected.
X + maybe more...
X And following misfeatures:
X + SVGALib does not restore screen on exit.
X + pixclock for text modes is limited by hardware to
- 83MHz on G200
- 66MHz on Millenium I
- 60MHz on Millenium II
- Because of I have not access to other devices, I do not know specific
+ 83 MHz on G200
+ 66 MHz on Millennium I
+ 60 MHz on Millennium II
+ Because I have no access to other devices, I do not know specific
X frequencies for them. So driver does not check this and allows you to
- set frequency higher that this. It cause sparks, black holes and other
- pretty effects on screen. Device was not destroyed during tests :-)
- + my Millenium G200 oscillator has frequency range from 35MHz to 380MHz
- (and it works with 8bpp on about 320MHz dotclocks (and changed mclk)).
- But Matrox says on product sheet that VCO limit is 50-250MHz, so I believe
- them (maybe that chip overheates, but it has very big cooler (G100 has
- not one), so it should work).
+ set frequency higher that this. It causes sparks, black holes and other
+ pretty effects on screen. Device was not destroyed during tests. :-)
+ + my Millennium G200 oscillator has frequency range from 35 MHz to 380 MHz
+ (and it works with 8bpp on about 320 MHz dotclocks (and changed mclk)).
+ But Matrox says on product sheet that VCO limit is 50-250 MHz, so I believe
+ them (maybe that chip overheats, but it has a very big cooler (G100 has
+ none), so it should work).
X + special mixed video/graphics videomodes of Mystique and Gx00 - 2G8V16 and
X G16V16 are not supported
X + color keying is not supported
@@ -281,14 +281,14 @@
X specify vslen=4000 and so on).
X + maybe more...
X And following features:
- + 4bpp is available only on Millenium I and Millenium II. It is hardware
- limitiation.
+ + 4bpp is available only on Millennium I and Millennium II. It is hardware
+ limitation.
X + current fbset is not able to set 15bpp videomode: you must specify
X depth==16 and green.length==5. fbset does not allow you to set
X green.length.
X + text mode uses 6 bit VGA palette instead of 8 bit (one of 262144 colors
X instead of one of 16M colors). It is due to hardware limitation of
- MilleniumI/II and SVGALib compatibility.
+ Millennium I/II and SVGALib compatibility.
X
X
X Benchmarks
@@ -296,14 +296,14 @@
X It is time to redraw whole screen 1000 times in 1024x768, 60Hz. It is
X time for draw 6144000 characters on screen through /dev/vcsa
X (for 32bpp it is about 3GB of data (exactly 3000 MB); for 8x16 font in
-16 seconds, i.e. 187MBps).
+16 seconds, i.e. 187 MBps).
X Times were obtained from one older version of driver, now they are about 3%
-faster, it is kernel-space only time on P-II/350MHz, Millenium I in 33MHz
+faster, it is kernel-space only time on P-II/350 MHz, Millennium I in 33 MHz
X PCI slot, G200 in AGP 2x slot. I did not test vgacon.
X
X NOACCEL
X 8x16 12x22
- MilleniumI G200 MilleniumI G200
+ Millennium I G200 Millennium I G200
X 8bpp 16.42 9.54 12.33 9.13
X 16bpp 21.00 15.70 19.11 15.02
X 24bpp 36.66 36.66 35.00 35.00
@@ -311,7 +311,7 @@
X
X ACCEL, nofastfont
X 8x16 12x22 6x11
- MilleniumI G200 MilleniumI G200 MilleniumI G200
+ Millennium I G200 Millennium I G200 Millennium I G200
X 8bpp 7.79 7.24 13.55 7.78 30.00 21.01
X 16bpp 9.13 7.78 16.16 7.78 30.00 21.01
X 24bpp 14.17 10.72 18.69 10.24 34.99 21.01
@@ -319,7 +319,7 @@
X
X ACCEL, fastfont
X 8x16 12x22 6x11
- MilleniumI G200 MilleniumI G200 MilleniumI G200
+ Millennium I G200 Millennium I G200 Millennium I G200
X 8bpp 8.41 6.01 6.54 4.37 16.00 10.51
X 16bpp 9.54 9.12 8.76 6.17 17.52 14.01
X 24bpp 15.00 12.36 11.67 10.00 22.01 18.32
@@ -327,10 +327,10 @@
X
X TEXT
X 8x16
- MilleniumI G200
+ Millennium I G200
X TEXT 3.29 1.50
X
X
-* Yes, it is slower than Millenium I.
+* Yes, it is slower than Millennium I.
X --
X Petr Vandrovec <vand...@vc.cvut.cz>
diff -u --recursive --new-file v2.2.7/linux/Documentation/fb/vesafb.txt linux/Documentation/fb/vesafb.txt
--- v2.2.7/linux/Documentation/fb/vesafb.txt Fri Apr 16 14:47:30 1999
+++ linux/Documentation/fb/vesafb.txt Thu Apr 29 11:53:41 1999
@@ -10,7 +10,7 @@
X
X This means we decide at boot time whenever we want to run in text or
X graphics mode. Switching mode later on (in protected mode) is
-impossible; BIOS calls work in real mode only. VESA BIOS Extentions
+impossible; BIOS calls work in real mode only. VESA BIOS Extensions
X Version 2.0 are required, because we need a linear frame buffer.
X
X Advantages:
@@ -66,10 +66,10 @@
X mode at the "vga=ask" prompt. For example if you like to use
X 1024x768x256 colors you have to say "305" at this prompt.
X
-If this does not work, this might be becauce your BIOS does not support
-linear framebuffers or becauce it does not support this mode at all.
+If this does not work, this might be because your BIOS does not support
+linear framebuffers or because it does not support this mode at all.
X Even if your board does, it might be the BIOS which does not. VESA BIOS
-Extentions v2.0 are required, 1.2 is NOT sufficient. You will get a
+Extensions v2.0 are required, 1.2 is NOT sufficient. You will get a
X "bad mode number" message if something goes wrong.
X
X 1. Note: LILO cannot handle hex, for booting directly with
@@ -99,8 +99,8 @@
X available) and boot linux with loadlin.
X * use a native driver (matroxfb/atyfb) instead if vesafb. If none
X is available, write a new one!
- * VBE 3.0 might work too. I havn't neither a gfx board with VBE 3.0
- support nor the specs, so I havn't checked this yet. But maybe...
+ * VBE 3.0 might work too. I have neither a gfx board with VBE 3.0
+ support nor the specs, so I have not checked this yet.
X
X
X Configuration
@@ -108,7 +108,7 @@
X
X The VESA BIOS provides protected mode interface for changing
X some parameters. vesafb can use it for palette changes and
-to pan the display. It is turned off by default becauce it
+to pan the display. It is turned off by default because it
X seems not to work with some BIOS versions, but there are options
X to turn it on.
X
@@ -124,7 +124,7 @@
X interface. The visible screen is just a window of the
X video memory, console scrolling is done by changing the
X start of the window.
- pro: * scrolling (fullscreen) is fast, becauce there is
+ pro: * scrolling (fullscreen) is fast, because there is
X no need to copy around data.
X * You'll get scrollback (the Shift-PgUp thing),
X the video memory can be used as scrollback buffer
diff -u --recursive --new-file v2.2.7/linux/Documentation/filesystems/00-INDEX linux/Documentation/filesystems/00-INDEX
--- v2.2.7/linux/Documentation/filesystems/00-INDEX Fri Apr 16 14:47:30 1999
+++ linux/Documentation/filesystems/00-INDEX Sun May 2 09:51:16 1999
@@ -1,5 +1,7 @@
X 00-INDEX
X - this file (info on some of the filesystems supported by linux).
+adfs.txt
+ - info and mount options for the Acorn Advanced Disc Filing System.
X affs.txt
X - info and mount options for the Amiga Fast File System.
X coda.txt
diff -u --recursive --new-file v2.2.7/linux/Documentation/filesystems/adfs.txt linux/Documentation/filesystems/adfs.txt
--- v2.2.7/linux/Documentation/filesystems/adfs.txt Wed Dec 31 16:00:00 1969
+++ linux/Documentation/filesystems/adfs.txt Sun May 2 09:51:16 1999
@@ -0,0 +1,57 @@
+Mount options for ADFS
+----------------------
+
+ uid=nnn All files in the partition will be owned by
+ user id nnn. Default 0 (root).
+ gid=nnn All files in the partition willbe in group
+ nnn. Default 0 (root).
+ ownmask=nnn The permission mask for ADFS 'owner' permissions
+ will be nnn. Default 0700.
+ othmask=nnn The permission mask for ADFS 'other' permissions
+ will be nnn. Default 0077.
+
+Mapping of ADFS permissions to Linux permissions
+------------------------------------------------
+
+ ADFS permissions consist of the following:
+
+ Owner read
+ Owner write
+ Other read
+ Other write
+
+ (In older versions, an 'execute' permission did exist, but this
+ does not hold the same meaning as the Linux 'execute' permission
+ and is now obsolete).
+
+ The mapping is performed as follows:
+
+ Owner read -> -r--r--r--
+ Owner write -> --w--w---w
+ Owner read and filetype UnixExec -> ---x--x--x
+ These are then masked by ownmask, eg 700 -> -rwx------
+ Possible owner mode permissions -> -rwx------
+
+ Other read -> -r--r--r--
+ Other write -> --w--w--w-
+ Other read and filetype UnixExec -> ---x--x--x
+ These are then masked by othmask, eg 077 -> ----rwxrwx
+ Possible other mode permissions -> ----rwxrwx
+
+ Hence, with the default masks, if a file is owner read/write, and
+ not a UnixExec filetype, then the permissions will be:
+
+ -rw-------
+
+ However, if the masks were ownmask=0770,othmask=0007, then this would
+ be modified to:
+ -rw-rw----
+
+ There is no restriction on what you can do with these masks. You may
+ wish that either read bits give read access to the file for all, but
+ keep the default write protection (ownmask=0755,othmask=0577):
+
+ -rw-r--r--
+
+ You can therefore tailor the permission translation to whatever you
+ desire the permissions should be under Linux.
diff -u --recursive --new-file v2.2.7/linux/Documentation/filesystems/coda.txt linux/Documentation/filesystems/coda.txt
--- v2.2.7/linux/Documentation/filesystems/coda.txt Wed Jun 24 22:54:02 1998
+++ linux/Documentation/filesystems/coda.txt Thu Apr 29 11:53:41 1999
@@ -776,7 +776,7 @@
X indicate confusion between the system call creat and the VFS operation
X create. The VFS operation create is only called to create new objects.
X This create call differs from the Unix one in that it is not invoked
- to return a file descriptor. The trunctate and exclusive options,
+ to return a file descriptor. The truncate and exclusive options,
X together with the mode, could simply be part of the mode as it is
X under Unix. There should be no flags argument; this is used in open
X (2) to return a file descriptor for READ or WRITE mode.
diff -u --recursive --new-file v2.2.7/linux/Documentation/filesystems/smbfs.txt linux/Documentation/filesystems/smbfs.txt
--- v2.2.7/linux/Documentation/filesystems/smbfs.txt Fri Jan 23 18:10:31 1998
+++ linux/Documentation/filesystems/smbfs.txt Thu Apr 29 11:53:41 1999
@@ -1,7 +1,7 @@
X Smbfs is a filesystem that implements the SMB protocol, which is the
X protocol used by Windows for Workgroups, Windows 95 and Windows NT.
X Smbfs was inspired by Samba, the program written by Andrew Tridgell
-that turns any unix host into a file server for DOS or Windows clients.
+that turns any Unix host into a file server for DOS or Windows clients.
X See ftp://nimbus.anu.edu.au/pub/tridge/samba/ for this interesting
X program suite and much more information on SMB, NetBIOS over TCP/IP,
X and explanations for concepts like netbios name or share.
diff -u --recursive --new-file v2.2.7/linux/Documentation/filesystems/vfat.txt linux/Documentation/filesystems/vfat.txt
--- v2.2.7/linux/Documentation/filesystems/vfat.txt Wed Jun 24 22:54:02 1998
+++ linux/Documentation/filesystems/vfat.txt Thu Apr 29 11:53:41 1999
@@ -177,7 +177,7 @@
X
X Because the extended FAT system is backward compatible, it is
X possible for old software to modify directory entries. Measures must
-be taken to insure the validity of slots. An extended FAT system can
+be taken to ensure the validity of slots. An extended FAT system can
X verify that a slot does in fact belong to an 8.3 directory entry by
X the following:
X
diff -u --recursive --new-file v2.2.7/linux/Documentation/ftape.txt linux/Documentation/ftape.txt
--- v2.2.7/linux/Documentation/ftape.txt Sun Jun 7 11:16:25 1998
+++ linux/Documentation/ftape.txt Mon May 10 13:00:10 1999
@@ -267,9 +267,9 @@
X
X ii. Hardware setup
X BASE is the base address of your floppy disk controller,
- IRQ and DMA give its interrupt and dma channel, respectively.
- BOOL is an integer, "0" means: "NO!", any other value means:
- "YES!". You don't need to specify anything if connecting your tape
+ IRQ and DMA give its interrupt and DMA channel, respectively.
+ BOOL is an integer, "0" means "no"; any other value means
+ "yes". You don't need to specify anything if connecting your tape
X drive to the standard floppy disk controller. All of these
X values have reasonable defaults. The defaults can be modified
X during kernel configuration, i.e. while running "make config",
diff -u --recursive --new-file v2.2.7/linux/Documentation/kernel-docs.txt linux/Documentation/kernel-docs.txt
--- v2.2.7/linux/Documentation/kernel-docs.txt Thu Jan 7 15:11:35 1999
+++ linux/Documentation/kernel-docs.txt Mon May 10 13:00:10 1999
@@ -18,7 +18,7 @@
X Fortunately, as more and more people get to GNU/Linux, more and more
X get interested in the Kernel. But reading the sources is not always
X enough. It is easy to understand the code, but miss the concepts, the
- philosophy and design decissions behind this code.
+ philosophy and design decisions behind this code.
X
X Unfortunately, not many documents are available for beginners to
X start. And, even if they exist, there was no "well-known" place which
@@ -33,7 +33,7 @@
X The papers that follow are listed in no particular order. All are
X catalogued with the following fields: the document's "Title", the
X "Author"/s, the "URL" where they can be found, some "Keywords"
- helpfull when searching for specific topics, and a brief "Description"
+ helpful when searching for specific topics, and a brief "Description"
X of the Document.
X
X Enjoy!
@@ -170,9 +170,9 @@
X http://anchor.cs.binghamton.edu/courses/cs628/linux-net.html
X Keywords: files, sk_buffs.
X Description: A short description of files under the net/
- directory. Each file has a one or two lines paragrahp
- description. sk_buffs explained, too, with some beatiful
- pictures. A little bit outdated.
+ directory. Each file has a one- or two-line paragraph to
+ describe it. Also, sk_buffs is explained with some
+ beautiful pictures. A little bit outdated.
X
X + Title: "Linux ioctl() Primer"
X Author: Vipul Gupta.
@@ -222,7 +222,7 @@
X ftp://ftp.llp.fu-berlin.de/pub/linux/LINUX-LAB/whitepapers/dr
X ivers.ps.gz
X Keywords: character device drivers, I/O, signals, DMA,
- accesing ports in user space, kernel environment.
+ accessing ports in user space, kernel environment.
X Description: 68 pages paper on writing character drivers. A
X little bit old (1.993, 1.994) although still useful.
X
@@ -298,7 +298,7 @@
X Description: The title says it all. There's a fixed kernel
X section summarizing developers' work, bug fixes, new features
X and versions produced during the week. Published every
- thursday.
+ Thursday.
X
X + Name: CuTTiNG.eDGe.LiNuX.
X URL: http://edge.linuxhq.com
diff -u --recursive --new-file v2.2.7/linux/Documentation/m68k/kernel-options.txt linux/Documentation/m68k/kernel-options.txt
--- v2.2.7/linux/Documentation/m68k/kernel-options.txt Fri Jan 8 22:35:59 1999
+++ linux/Documentation/m68k/kernel-options.txt Tue May 11 09:57:14 1999
@@ -3,10 +3,10 @@
X Command Line Options for Linux/m68k
X ===================================
X
-Last Update: Nov 28, 1997
-Linux/m68k version: 2.1.64
+Last Update: 2 May 1999
+Linux/m68k version: 2.2.6
X Author: Roman...@informatik.uni-erlangen.de (Roman Hodek)
-Update: j...@kom.auc.dk (Jes Sorensen)
+Update: j...@kom.auc.dk (Jes Sorensen) and f...@linux-m68k.org (Chris Lawrence)
X
X 0) Introduction
X ===============
@@ -145,7 +145,7 @@
X
X These two options tell the kernel whether it should mount the root
X filesystem read-only or read-write. The default is read-only, except
-for ramdisks which are read-write.
+for ramdisks, which default to read-write.
X
X
X 2.3) debug
@@ -216,23 +216,10 @@
X
X
X 2.7) swap=
------------
-
-Syntax: swap=<max_age>,<adv>,<decl>,<init_age>,<cl_fract>,<cl_min>,\
- <pgout_wgt>,<bfout_wgt>
-(All optional)
-
-TODO
-
-
X 2.8) buff=
X -----------
X
-Syntax: buff=<max_age>,<adv>,<decl>,<init_age>,<bfout_wgt>,<mem_grace>
-(All optional)
-
-TODO
-
+ I can't find any sign of these options in 2.2.6.
X
X
X 3) General Device Options (Amiga and Atari)
@@ -311,7 +298,7 @@
X =========================
X
X 4.1) video=
---------------
+-----------
X
X Syntax: video=<fbname>:<sub-options...>
X
@@ -322,8 +309,8 @@
X
X NB: Please notice that this option was renamed from `atavideo' to
X `video' during the development of the 1.3.x kernels, thus you
- might need to update your boot-scripts if upgrading to 2.0.x from
- an 1.2.13ply kernel.
+ might need to update your boot-scripts if upgrading to 2.x from
+ an 1.2.x kernel.
X
X NBB: The behavior of video= was changed in 2.1.57 so the recommended
X option is to specify the name of the frame buffer.
@@ -705,10 +692,11 @@
X Syntax: video=<fbname>:<sub-options...>
X
X The <fbname> parameter specifies the name of the frame buffer, valid
-options are `amifb', `cyberfb', `retz3' and `clgen', provided that the
-respective frame buffer devices have been compiled into the kernel (or
-compiled as loadable modules). The behavior of the <fbname> option was
-changed in 2.1.57 so it is now recommended to specify this option.
+options are `amifb', `cyber', 'virge', `retz3' and `clgen', provided
+that the respective frame buffer devices have been compiled into the
+kernel (or compiled as loadable modules). The behavior of the <fbname>
+option was changed in 2.1.57 so it is now recommended to specify this
+option.
X
X The <sub-options> is a comma-separated list of the sub-options listed
X below. This option is organized similar to the Atari version of the
@@ -762,8 +750,8 @@
X 5.1.3) inverse
X --------------
X
-Use inverted display. Functionally the same as the "inverse"
-sub-option for the Atari.
+Use inverted display (black on white). Functionally the same as the
+"inverse" sub-option for the Atari.
X
X 5.1.4) font
X -----------
@@ -787,7 +775,7 @@
X your monitor can work with, in Hz. <hmin> and <hmax> are the same for
X the horizontal frequency, in kHz.
X
- The defaults are 50;90;15;38 (Generic Amiga monitor).
+ The defaults are 50;90;15;38 (Generic Amiga multisync monitor).
X
X
X 5.2) fd_def_df0=
@@ -804,6 +792,9 @@
X
X Syntax: wd33c93=<sub-options...>
X
+These options affect the A590/A2091, A3000 and GVP Series II SCSI
+controllers.
+
X The <sub-options> is a comma-separated list of the sub-options listed
X below.
X
@@ -861,7 +852,7 @@
X -----------
X
X No argument. Used to separate blocks of keywords when there's more
-than one host adapter in the system.
+than one wd33c93-based host adapter in the system.
X
X 5.3.7) nodma
X ------------
@@ -903,6 +894,69 @@
X 32 bit address range for DMA. The correct setting depends on your
X controller and should be autodetected by the driver. An example is the
X 24 bit region which is specified by a mask of 0x00fffffe.
+
+
+5.5) 53c7xx=
+------------
+
+Syntax: 53c7xx=<sub-options...>
+
+These options affect the A4000T, A4091, WarpEngine, Blizzard 603e+,
+and GForce 040/060 SCSI controllers on the Amiga, as well as the
+builtin MVME 16x SCSI controller.
+
+The <sub-options> is a comma-separated list of the sub-options listed
+below.
+
+5.5.1) nosync
+-------------
+
+Syntax: nosync:0
+
+ Disables sync negotiation for all devices. Any value after the
+ colon is acceptable (and has the same effect).
+
+5.5.2) noasync
+--------------
+
+Syntax: noasync:0
+
+ Disables async and sync negotiation for all devices. Any value
+ after the colon is acceptable (and has the same effect).
+
+5.5.3) nodisconnect
+-------------------
+
+Syntax: nodisconnect:0
+
+ Disables SCSI disconnects. Any value after the colon is acceptable
+ (and has the same effect).
+
+5.5.4) validids
+---------------
+
+Syntax: validids:0xNN
+
+ Specify which SCSI ids the driver should pay attention to. This is
+ a bitmask (i.e. to only pay attention to ID#4, you'd use 0x10).
+ Default is 0x7f (devices 0-6).
+
+5.5.5) opthi
+5.5.6) optlo
+------------
+
+Syntax: opthi:M,optlo:N
+
+ Specify options for "hostdata->options". The acceptable definitions
+ are listed in drivers/scsi/53c7xx.h; the 32 high bits should be in
+ opthi and the 32 low bits in optlo. They must be specified in the
+ order opthi=M,optlo=N.
+
+5.5.7) next
+-----------
+
+ No argument. Used to separate blocks of keywords when there's more
+ than one 53c7xx host adapter in the system.
X
X
X /* Local Variables: */
diff -u --recursive --new-file v2.2.7/linux/Documentation/mtrr.txt linux/Documentation/mtrr.txt
--- v2.2.7/linux/Documentation/mtrr.txt Thu May 7 22:51:46 1998
+++ linux/Documentation/mtrr.txt Mon May 10 10:32:45 1999
@@ -62,6 +62,23 @@
X ioctl() interface, so users won't have to do anything. If you use a
X commercial X server, lobby your vendor to add support for MTRRs.
X ===============================================================================
+Creating overlapping MTRRs:
+
+%echo "base=0xfb000000 size=0x1000000 type=write-combining" >/proc/mtrr
+%echo "base=0xfb000000 size=0x1000 type=uncachable" >/proc/mtrr
+
+And the results: cat /proc/mtrr
+reg00: base=0x00000000 ( 0MB), size= 64MB: write-back, count=1
+reg01: base=0xfb000000 (4016MB), size= 16MB: write-combining, count=1
+reg02: base=0xfb000000 (4016MB), size= 4kB: uncachable, count=1
+
+Some cards (especially Voodoo Graphics boards) need this 4 kB area
+excluded from the beginning of the region because it is used for
+registers.
+
+NOTE: You can only create type=uncachable region, if the first
+region that you created is type=write-combining.
+===============================================================================
X Removing MTRRs from the shell:
X % echo "disable=2" >! /proc/mtrr
X ===============================================================================
diff -u --recursive --new-file v2.2.7/linux/Documentation/networking/filter.txt linux/Documentation/networking/filter.txt
--- v2.2.7/linux/Documentation/networking/filter.txt Sun Jun 7 11:16:26 1998
+++ linux/Documentation/networking/filter.txt Thu Apr 29 11:53:41 1999
@@ -12,7 +12,7 @@
X attach a filter onto any socket and allow or disallow certain
X types of data to come through the socket. LSF follows exactly
X the same filter code structure as the BSD Berkeley Packet Filter
-(BPF), so refering to the BSD bpf.4 manpage is very helpful in


SHAR_EOF
true || echo 'restore of patch-2.2.8 failed'
fi

echo 'End of part 02'
echo 'File patch-2.2.8 is continued in part 03'
echo 03 > _shar_seq_.tmp

Thomas...@ciw.uni-karlsruhe.de

unread,
May 12, 1999, 3:00:00 AM5/12/99
to
Archive-name: v2.2/patch-2.2.8/part03

#!/bin/sh
# this is part 03 of a 33 - part archive


# do not concatenate these parts, unpack them in order with /bin/sh
# file patch-2.2.8 continued
if test ! -r _shar_seq_.tmp; then
echo 'Please unpack part 1 first!'
exit 1
fi
(read Scheck

if test "$Scheck" != 03; then


echo Please unpack part "$Scheck" next!
exit 1
else
exit 0
fi
) < _shar_seq_.tmp || exit 1
if test ! -f _shar_wnt_.tmp; then
echo 'x - still skipping patch-2.2.8'
else
echo 'x - continuing with patch-2.2.8'
sed 's/^X//' << 'SHAR_EOF' >> 'patch-2.2.8' &&

+(BPF), so referring to the BSD bpf.4 manpage is very helpful in
X creating filters.
X
X LSF is much simpler than BPF. One does not have to worry about
diff -u --recursive --new-file v2.2.7/linux/Documentation/networking/ip-sysctl.txt linux/Documentation/networking/ip-sysctl.txt
--- v2.2.7/linux/Documentation/networking/ip-sysctl.txt Thu Jan 7 15:11:35 1999
+++ linux/Documentation/networking/ip-sysctl.txt Mon May 10 09:55:25 1999
@@ -96,7 +96,7 @@
X Enable timestamps as defined in RFC1323.
X
X tcp_sack - BOOLEAN
- Enable select acknowledgements.
+ Enable select acknowledgments.
X
X tcp_retrans_collapse - BOOLEAN
X Bug-to-bug compatibility with some broken printers.
@@ -119,7 +119,7 @@
X icmp_paramprob_rate - INTEGER
X icmp_timeexceed_rate - INTEGER
X icmp_echoreply_rate - INTEGER (not enabled per default)
- Limit the maximal rates for sending ICMP packets to specifc targets.
+ Limit the maximal rates for sending ICMP packets to specific targets.
X 0 to disable any limiting, otherwise the maximal rate in jiffies(1)
X See the source for more information.
X
@@ -173,7 +173,7 @@
X bootp_relay - BOOLEAN
X Accept packets with source address 0.b.c.d destined
X not to this host as local ones. It is supposed, that
- BOOTP relay deamon will catch and forward such packets.
+ BOOTP relay daemon will catch and forward such packets.
X
X default FALSE
X Not Implemented Yet.
@@ -211,4 +211,4 @@
X Updated by:
X Andi Kleen
X a...@muc.de
-$Id: ip-sysctl.txt,v 1.8 1999/01/02 16:37:06 davem Exp $
+$Id: ip-sysctl.txt,v 1.9 1999/05/08 02:58:44 davem Exp $
diff -u --recursive --new-file v2.2.7/linux/Documentation/networking/ipddp.txt linux/Documentation/networking/ipddp.txt
--- v2.2.7/linux/Documentation/networking/ipddp.txt Sat May 2 14:19:51 1998
+++ linux/Documentation/networking/ipddp.txt Thu Apr 29 11:53:41 1999
@@ -14,7 +14,7 @@
X IP over an AppleTalk network or you can provide IP gatewaying functions
X for your AppleTalk users.
X
-You can currently Encapsulate or Decapsulate AppleTalk-IP on LocalTalk,
+You can currently encapsulate or decapsulate AppleTalk-IP on LocalTalk,
X EtherTalk and PPPTalk. The only limit on the protocol is that of what
X kernel AppleTalk layer and drivers are available.
X
@@ -23,22 +23,22 @@
X Compiling AppleTalk-IP Decapsulation/Encapsulation
X =================================================
X
-AppleTalk-IP Decapsulation needs to be compiled into your kernel. You
-will need to turn on Appletalk-IP driver support. Then you will need to
-select ONE of the two options; IP to AppleTalk-IP Encapsulation support or
-AppleTalk-IP to IP Decapsulation support. If you compile the driver
+AppleTalk-IP decapsulation needs to be compiled into your kernel. You
+will need to turn on AppleTalk-IP driver support. Then you will need to
+select ONE of the two options; IP to AppleTalk-IP encapsulation support or
+AppleTalk-IP to IP decapsulation support. If you compile the driver
X statically you will only be able to use the driver for the function you have
X enabled in the kernel. If you compile the driver as a module you can
X select what mode you want it to run in via a module loading param.
-ipddp_mode=1 for AppleTalk-IP Encapsulation and ipddp_mode=2 for
-AppleTalk-IP to IP Decapsulation.
+ipddp_mode=1 for AppleTalk-IP encapsulation and ipddp_mode=2 for
+AppleTalk-IP to IP decapsulation.
X
X Basic instructions for user space tools
X =======================================
X
-To enable AppleTalk-IP Decapsulation/Encapsulation you will need the
-proper tools. You can get the tools for Decapsulation from
-http://spacs1.spacs.k12.wi.us/~jschlst/MacGate and for Encapsulation
+To enable AppleTalk-IP decapsulation/encapsulation you will need the
+proper tools. You can get the tools for decapsulation from
+http://spacs1.spacs.k12.wi.us/~jschlst/MacGate and for encapsulation
X from http://www.maths.unm.edu/~bradford/ltpc.html
X
X I will briefly describe the operation of the tools, but you will
@@ -61,8 +61,8 @@
X
X Common Uses of ipddp.c
X ----------------------
-Of course AppleTalk-IP Decapsulation and Encapsulation, but specificly
-Decapsulation is being used most for connecting LocalTalk networks to
+Of course AppleTalk-IP decapsulation and encapsulation, but specifically
+decapsulation is being used most for connecting LocalTalk networks to
X IP networks. Although it has been used on EtherTalk networks to allow
X Macs that are only able to tunnel IP over EtherTalk.
X
@@ -73,6 +73,6 @@
X Further Assistance
X -------------------
X You can contact me (Jay Schulist <Jay.Sc...@spacs.k12.wi.us>) with any
-questions reguarding Decapsulation or Encapsulation. Bradford W. Johnson
+questions regarding decapsulation or encapsulation. Bradford W. Johnson
X <john...@maroon.tc.umn.edu> originally wrote the ipddp.c driver for IP
X encapsulation in AppleTalk.
diff -u --recursive --new-file v2.2.7/linux/Documentation/networking/lapb-module.txt linux/Documentation/networking/lapb-module.txt
--- v2.2.7/linux/Documentation/networking/lapb-module.txt Sun Jun 7 11:16:26 1998
+++ linux/Documentation/networking/lapb-module.txt Mon May 10 13:00:10 1999
@@ -216,7 +216,7 @@
X
X This is called by the LAPB module when an event occurs after the device
X driver has called lapb_disconnect_request (see above). The reason indicates
-what has happended. In all cases the LAPB link can be regarded as being
+what has happened. In all cases the LAPB link can be regarded as being
X terminated. The values for reason are:
X
X LAPB_OK The LAPB link was terminated normally.
diff -u --recursive --new-file v2.2.7/linux/Documentation/networking/pt.txt linux/Documentation/networking/pt.txt
--- v2.2.7/linux/Documentation/networking/pt.txt Sat May 2 14:19:51 1998
+++ linux/Documentation/networking/pt.txt Mon May 10 13:00:10 1999
@@ -2,7 +2,7 @@
X ALPHA for Linux 1.3.43.
X
X These files will allow you to talk to the PackeTwin (now know as PT) and
-connect through it just like a pair of TNC's. To do this you will also
+connect through it just like a pair of TNCs. To do this you will also
X require the AX.25 code in the kernel enabled.
X
X There are four files in this archive; this readme, a patch file, a .c file
diff -u --recursive --new-file v2.2.7/linux/Documentation/networking/routing.txt linux/Documentation/networking/routing.txt
--- v2.2.7/linux/Documentation/networking/routing.txt Thu May 14 19:47:37 1998
+++ linux/Documentation/networking/routing.txt Mon May 10 13:00:10 1999
@@ -1,6 +1,6 @@
X The directory ftp.inr.ac.ru:/ip-routing contains:
X
-- iproute.c - "professional" routing table maintainance utility.
+- iproute.c - "professional" routing table maintenance utility.
X
X - rdisc.tar.gz - rdisc daemon, ported from Sun.
X STRONGLY RECOMMENDED FOR ALL HOSTS.
diff -u --recursive --new-file v2.2.7/linux/Documentation/powerpc/smp.txt linux/Documentation/powerpc/smp.txt
--- v2.2.7/linux/Documentation/powerpc/smp.txt Fri Oct 23 22:01:18 1998
+++ linux/Documentation/powerpc/smp.txt Thu Apr 29 12:39:07 1999
@@ -5,11 +5,10 @@
X (Cort Dougan, co...@cs.nmt.edu) please email me if you have questions,
X comments or corrections.
X
-Last Change: 10.8.98
+Last Change: 3.31.99
X
-SMP support for Linux/PPC is still in its early stages and likely to
-be buggy for a while. If you want to help by writing code or testing
-different hardware please email me!
+If you want to help by writing code or testing different hardware please
+email me!
X
X 1. State of Supported Hardware
X
@@ -29,3 +28,7 @@
X BeBox
X BeBox support hasn't been added to the 2.1.X kernels from 2.0.X
X but work is being done and SMP support for BeBox is in the works.
+
+ CHRP
+ CHRP SMP works and is fairly solid. It's been tested on the IBM F50
+ with 4 processors for quite some time now.
diff -u --recursive --new-file v2.2.7/linux/Documentation/sound/AD1816 linux/Documentation/sound/AD1816
--- v2.2.7/linux/Documentation/sound/AD1816 Tue Dec 22 14:16:53 1998
+++ linux/Documentation/sound/AD1816 Mon May 10 13:00:10 1999
@@ -70,7 +70,16 @@
X - Acer FX-3D
X - SY-1816
X - Highscreen Sound-Boostar 32 Wave 3D
-- ...
+- Highscreen Sound-Boostar 16
+- AVM Apex Pro card
+- (Aztech SC-16 3D)
+- (Newcom SC-16 3D)
+- (Terratec EWS64S)
+
+Cards listed in brackets are not supported reliable. If you have such a card
+you should add the extra parameter:
+ options=1
+when loading the ad1816 module via modprobe.
X
X
X Troubleshooting:
@@ -105,7 +114,7 @@
X
X As the driver is still experimental and under development, you should
X watch out for updates. Updates of the driver are available on the
-internet from one of my home pages:
+Internet from one of my home pages:
X http://www.student.informatik.tu-darmstadt.de/~tek/projects/linux.html
X or:
X http://www.tu-darmstadt.de/~tek01/projects/linux.html
@@ -115,4 +124,4 @@
X
X
X Thorsten Knabe <t...@rbg.informatik.tu-darmstadt.de>
- Last modified: 1998/11/06
+ Last modified: 1999/05/02
diff -u --recursive --new-file v2.2.7/linux/Documentation/sound/AWE32 linux/Documentation/sound/AWE32
--- v2.2.7/linux/Documentation/sound/AWE32 Thu Jan 7 15:11:35 1999
+++ linux/Documentation/sound/AWE32 Thu Apr 29 11:53:41 1999
@@ -53,7 +53,7 @@
X (IO 2 (BASE 0x0E20)) (ACT Y) ))"
X
X Resources 0x0620, 0x0A20 and 0x0E20 should work. Other on-board devices:
-Gameport and StereoEnhance are not required to be inited.
+Gameport and StereoEnhance are not required to be initialized.
X
X Now you can execute "isapnp /etc/isapnp.conf". No errors should be reported.
X If you correctly installed isapnptools, then isapnp will run every boot time.
diff -u --recursive --new-file v2.2.7/linux/Documentation/sound/AudioExcelDSP16 linux/Documentation/sound/AudioExcelDSP16
--- v2.2.7/linux/Documentation/sound/AudioExcelDSP16 Fri Jan 8 22:35:59 1999
+++ linux/Documentation/sound/AudioExcelDSP16 Thu Apr 29 11:53:41 1999
@@ -80,7 +80,7 @@
X 2) Install your new kernel as the default boot kernel.
X 3) Boot MS-DOS and configure the audio card with the boot time device
X driver, for MSS irq10 dma3 in our example.
-4) <ctrl>-<alt>-<del> and boot Linux. This will mantain the DOS configuration
+4) <ctrl>-<alt>-<del> and boot Linux. This will maintain the DOS configuration
X and will boot the new kernel with sound driver. The sound driver will find
X the audio card and will recognize and attach it.
X
diff -u --recursive --new-file v2.2.7/linux/Documentation/sound/ChangeLog.awe linux/Documentation/sound/ChangeLog.awe
--- v2.2.7/linux/Documentation/sound/ChangeLog.awe Tue Dec 22 14:16:53 1998
+++ linux/Documentation/sound/ChangeLog.awe Thu Apr 29 11:53:41 1999
@@ -81,7 +81,7 @@
X
X ver.0.3.3b
X - Fix version number in awe_version.h
- - Fix a small bug in noteoff/relese all
+ - Fix a small bug in noteoff/release all
X
X ver.0.3.3a
X - Fix all notes/sounds off
diff -u --recursive --new-file v2.2.7/linux/Documentation/sound/INSTALL.awe linux/Documentation/sound/INSTALL.awe
--- v2.2.7/linux/Documentation/sound/INSTALL.awe Tue Dec 22 14:16:53 1998
+++ linux/Documentation/sound/INSTALL.awe Thu Apr 29 11:53:41 1999
@@ -17,7 +17,7 @@
X http://www-jcr.lmh.ox.ac.uk/~pnp/
X
X ----------------------------------------------------------------
-* Installation on RedHat 5.0 Sound Driver
+* Installation on Red Hat 5.0 Sound Driver
X
X Please use install-rh.sh under RedHat5.0 directory.
X DO NOT USE install.sh below.
@@ -31,7 +31,7 @@
X % su
X
X 2. If you have never configured the kernel tree yet, run make config
- once (to make depencies and symlinks).
+ once (to make dependencies and symlinks).
X
X # cd /usr/src/linux
X # make xconfig
@@ -40,7 +40,7 @@
X
X # sh ./install.sh
X
- 4. Configure your kenrel
+ 4. Configure your kernel
X
X (for Linux 2.[01].x user)
X # cd /usr/src/linux
@@ -77,7 +77,7 @@
X do it by isapnp tools. Otherwise, skip to 8.
X
X This section described only a brief explanation. For more
- detaills, please see AWE64-Mini-HOWTO or isapnp tools FAQ.
+ details, please see the AWE64-Mini-HOWTO or isapnp tools FAQ.
X
X 7a. If you have no isapnp.conf file, generate it by pnpdump.
X Otherwise, skip to 7d.
diff -u --recursive --new-file v2.2.7/linux/Documentation/sound/Introduction linux/Documentation/sound/Introduction
--- v2.2.7/linux/Documentation/sound/Introduction Tue Dec 22 14:16:53 1998
+++ linux/Documentation/sound/Introduction Thu Apr 29 11:53:41 1999
@@ -214,7 +214,7 @@
X
X 3) In /etc/conf.modules when using modprobe.
X
-4) Via RedHat's /usr/sbin/sndconfig program (text based).
+4) Via Red Hat's /usr/sbin/sndconfig program (text based).
X
X 5) Via the OSS soundconf program (with the commercial version
X of the OSS driver.
@@ -240,7 +240,7 @@
X
X 6) The comments and code in linux/drivers/sound.
X
-7) The sndconfig and rhsound documentation from RedHat.
+7) The sndconfig and rhsound documentation from Red Hat.
X
X 8) The Linux-sound mailing list: sound...@redhat.com
X
diff -u --recursive --new-file v2.2.7/linux/Documentation/sound/MAD16 linux/Documentation/sound/MAD16
--- v2.2.7/linux/Documentation/sound/MAD16 Wed Apr 8 19:36:24 1998
+++ linux/Documentation/sound/MAD16 Thu Apr 29 11:53:41 1999
@@ -23,3 +23,12 @@
X alias char-major-14 mad16
X options sb mad16=1
X options mad16 io=0x530 irq=7 dma=0 dma16=1 && /usr/local/bin/aumix -w 15 -p 20 -m 0 -1 0 -2 0 -3 0 -i 0
+
+
+To get the built in mixer to work this needs to be:
+
+options adlib_card io=0x388 # FM synthesizer
+options sb mad16=1
+options mad16 io=0x530 irq=7 dma=0 dma16=1 mpu_io=816 mpu_irq=5 && /usr/local/bin/aumix -w 15 -p 20 -m 0 -1 0 -2 0 -3 0 -i 0
+
+The addition of the "mpu_io=816 mpu_irq=5" to the mad16 options line is
diff -u --recursive --new-file v2.2.7/linux/Documentation/sound/OPL3-SA linux/Documentation/sound/OPL3-SA
--- v2.2.7/linux/Documentation/sound/OPL3-SA Tue Feb 23 15:21:32 1999
+++ linux/Documentation/sound/OPL3-SA Thu Apr 29 11:53:41 1999
@@ -15,7 +15,7 @@
X You'll need to know all of the relevant info (irq, dma, and io port) for the
X chip's WSS mode, since that is the mode the kernel sound driver uses, and of
X course you'll also need to know about where the MPU401 and OPL3 ports and
-irq's are if you want to use those.
+IRQs are if you want to use those.
X
X Here's the skinny on how to load it as a module:
X
@@ -24,14 +24,14 @@
X Module options in detail:
X
X io: This is the WSS's port base.
- irq: This is the WSS's irq.
- dma: This is the WSS's dma line. In my BIOS setup screen this was
+ irq: This is the WSS's IRQ.
+ dma: This is the WSS's DMA line. In my BIOS setup screen this was
X listed as "WSS Play DMA"
- dma2: This is the WSS's secondary dma line. My BIOS calls it the
+ dma2: This is the WSS's secondary DMA line. My BIOS calls it the
X "WSS capture DMA"
X
X mpu_io: This is the MPU401's port base.
- mpu_irq: This is the MPU401's irq.
+ mpu_irq: This is the MPU401's IRQ.
X
X If you'd like to use the OPL3 FM Synthesizer, make sure you enable
X CONFIG_YM3812 (in 'make config'). That'll build the opl3.o module.
@@ -43,7 +43,7 @@
X
X Say 'y' or 'm' to "SoftOSS software wave table engine" in make config.
X
-If you said yes, the software synth is availible once you boot your new
+If you said yes, the software synth is available once you boot your new
X kernel.
X
X If you chose to build it as a module, just insmod the resulting softoss2.o
diff -u --recursive --new-file v2.2.7/linux/Documentation/sound/README.OSS linux/Documentation/sound/README.OSS
--- v2.2.7/linux/Documentation/sound/README.OSS Tue Jan 19 11:32:50 1999
+++ linux/Documentation/sound/README.OSS Thu Apr 29 11:53:41 1999
@@ -58,7 +58,7 @@
X Mika Liljeberg uLaw encoding and decoding routines
X Jeff Tranter Linux SOUND HOWTO document
X Greg Lee Volume computation algorithm for the GUS and
- lot's of valuable suggestions.
+ lots of valuable suggestions.
X Andy Warner ISC port
X Jim Lowe,
X Amancio Hasty Jr FreeBSD/NetBSD port
@@ -96,7 +96,7 @@
X or before even starting to do any work. Tell me what you suggest to be
X changed or what you have planned to do. Also ensure you are using the
X very latest (development) version of OSS/Free since the change may already be
-implemented there. In general it's major waste of time to try to improve
+implemented there. In general it's a major waste of time to try to improve a
X several months old version. Information about the latest version can be found
X from http://www.opensound.com/ossfree. In general there is no point in
X sending me patches relative to production kernels.
@@ -1314,8 +1314,8 @@
X This ESS proprietary feature is supported only by OSS/Linux.
X
X There are ES1688 based cards which use different interrupt pin assignment than
-recommended by ESS (5, 7, 9/2 and 10). In this case all IRQ's don't work.
-At least a card called (Pearl?) Hypersound 16 supports IRQ15 but it doesn't
+recommended by ESS (5, 7, 9/2 and 10). In this case all IRQs don't work.
+At least a card called (Pearl?) Hypersound 16 supports IRQ 15 but it doesn't
X work.
X
X ES1868 is a PnP chip which is (supposed to be) compatible with ESS1688
diff -u --recursive --new-file v2.2.7/linux/Documentation/sound/README.awe linux/Documentation/sound/README.awe
--- v2.2.7/linux/Documentation/sound/README.awe Tue Dec 22 14:16:53 1998
+++ linux/Documentation/sound/README.awe Thu Apr 29 11:53:41 1999
@@ -9,8 +9,8 @@
X
X This is a sound driver extension for SoundBlaster AWE32 and other
X compatible cards (AWE32-PnP, SB32, SB32-PnP, AWE64 & etc) to enable
-the wave synth operations. The driver is provided for both Linux
-1.2.x and 2.[01].x kernels, and also FreeBSD, on Intel x86 and DEC
+the wave synth operations. The driver is provided for Linux 1.2.x
+and 2.[012].x kernels, as well as FreeBSD, on Intel x86 and DEC
X Alpha systems.
X
X This driver was written by Takashi Iwai <iw...@ww.uni-erlangen.de>,
@@ -76,7 +76,7 @@
X % sfxload synthgm
X % drvmidi -L 2mbgmgs foo.mid
X
-This makes a big differece (believe me)! For more details, please
+This makes a big difference (believe me)! For more details, please
X refer to the FAQ list which is available on the URL above.
X
X The current chorus, reverb and equalizer status can be changed by
@@ -97,14 +97,14 @@
X shell script.
X
X - AWE_MODULE_SUPPORT
- indicates your linux kernel supports module for each soundcard
- (in recent 2.1 kernels and unofficial patched 2.0 kernels as
- distributed in the RH5.0 package).
+ indicates your Linux kernel supports module for each sound card
+ (in recent 2.1 or 2.2 kernels and unofficial patched 2.0 kernels
+ as distributed in the RH5.0 package).
X This flag is automatically set when you're using 2.1.x kernels.
X You can pass the base address and memory size via the following
X module options,
X io = base I/O port address (eg. 0x620)
- memsize = DRAM size in Kbyes (eg. 512)
+ memsize = DRAM size in kilobytes (eg. 512)
X As default, AWE driver probes these values automatically.
X
X
@@ -117,15 +117,15 @@
X 0 means to autodetect the address.
X
X - AWE_DEFAULT_MEM_SIZE (default: not defined)
- specifies the memory size of your AWE32 card in kilo bytes.
+ specifies the memory size of your AWE32 card in kilobytes.
X -1 means to autodetect its size.
X
X
X [Sample Table Size]
X From ver.0.4.0, sample tables are allocated dynamically (except
X Linux-1.2.x system), so you need NOT to touch these parameters.
-Linux-1.2.x users may need to increase these values to apropriate size
-if larger DRAM is equipped with the soundcard.
+Linux-1.2.x users may need to increase these values to appropriate size
+if the sound card is equipped with more DRAM.
X
X - AWE_MAX_SF_LISTS, AWE_MAX_SAMPLES, AWE_MAX_INFOS
X
@@ -139,7 +139,7 @@
X passthrough channels.
X
X - AWE_DEBUG_ON (default: defined)
- turns on debuggin messages if defined.
+ turns on debugging messages if defined.
X
X - AWE_HAS_GUS_COMPATIBILITY (default: defined)
X Enables GUS compatibility mode if defined, reading GUS patches and
@@ -170,7 +170,7 @@
X - AWE_ALLOW_SAMPLE_SHARING (default: defined)
X Allow sample sharing for differently loaded patches.
X This function is available only together with awesfx-0.4.3p3.
- Note that this is still an experimantal option.
+ Note that this is still an experimental option.
X
X - DEF_FM_CHORUS_DEPTH (default: 0x10)
X The default strength to be sent to the chorus effect engine.
@@ -183,8 +183,8 @@
X
X * ACKNOWLEDGMENTS
X
-Thanks to Witold Jachimczyk (wi...@xfactor.wpi.edu) for many advices
-to programming of AWE32. Many codes are brought from his AWE32-native
+Thanks to Witold Jachimczyk (wi...@xfactor.wpi.edu) for much advice
+on programming of AWE32. Much code is brought from his AWE32-native
X MOD player, ALMP.
X The port of awedrv to FreeBSD is done by Randall Hopper
X (r...@ct.picker.com).
diff -u --recursive --new-file v2.2.7/linux/Documentation/sound/Wavefront linux/Documentation/sound/Wavefront
--- v2.2.7/linux/Documentation/sound/Wavefront Thu Sep 17 17:53:34 1998
+++ linux/Documentation/sound/Wavefront Thu Apr 29 11:53:41 1999
@@ -149,7 +149,7 @@
X .
X .
X .
- make modules_isntall
+ make modules_install
X
X Here's my autoconf.h SOUND section:
X
diff -u --recursive --new-file v2.2.7/linux/Documentation/sysctl/vm.txt linux/Documentation/sysctl/vm.txt
--- v2.2.7/linux/Documentation/sysctl/vm.txt Fri Apr 16 14:47:30 1999
+++ linux/Documentation/sysctl/vm.txt Thu Apr 29 11:53:41 1999
@@ -178,7 +178,7 @@
X
X The Linux VM subsystem avoids excessive disk seeks by reading
X multiple pages on a page fault. The number of pages it reads
-is dependant on the amount of memory in your machine.
+is dependent on the amount of memory in your machine.
X
X The number of pages the kernel reads in at once is equal to
X 2 ^ page-cluster. Values above 2 ^ 5 don't make much sense
diff -u --recursive --new-file v2.2.7/linux/Documentation/video4linux/bttv/INSTALL linux/Documentation/video4linux/bttv/INSTALL
--- v2.2.7/linux/Documentation/video4linux/bttv/INSTALL Tue Feb 23 15:21:32 1999
+++ linux/Documentation/video4linux/bttv/INSTALL Mon May 10 13:00:10 1999
@@ -38,7 +38,7 @@
X 7: Matrix Vision MV-Delta
X 8: Fly Video II
X 9: TurboTV
- 10: Newer Hauppage (Bt878)
+ 10: Newer Hauppauge (Bt878)
X 11: Miro PCTV Pro
X 12: ADS Tech Channel Surfer TV (and maybe TV+FM)
X 13: AVerMedia TVCapture 98
diff -u --recursive --new-file v2.2.7/linux/MAINTAINERS linux/MAINTAINERS
--- v2.2.7/linux/MAINTAINERS Wed Apr 28 11:37:29 1999
+++ linux/MAINTAINERS Sat May 8 12:49:46 1999
@@ -779,14 +779,14 @@
X USB HUB AND UHCI DRIVERS
X P: Johannes Erdfelt
X M: jerd...@sventech.com
-L: linu...@peloncho.fis.ucm.es
+L: linu...@suse.com
X S: Maintained
X
X USB OHCI DRIVER
X P: Gregory P. Smith
X M: gr...@electricrain.com
X M: gr...@suitenine.com
-L: linu...@peloncho.fis.ucm.es
+L: linu...@suse.com
X S: Maintained (not yet usable)
X W: http://suitenine.com/usb/
X
diff -u --recursive --new-file v2.2.7/linux/Makefile linux/Makefile
--- v2.2.7/linux/Makefile Wed Apr 28 11:37:29 1999
+++ linux/Makefile Wed Apr 28 11:38:52 1999
@@ -1,6 +1,6 @@
X VERSION = 2
X PATCHLEVEL = 2
-SUBLEVEL = 7
+SUBLEVEL = 8
X EXTRAVERSION =
X
X ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
diff -u --recursive --new-file v2.2.7/linux/REPORTING-BUGS linux/REPORTING-BUGS
--- v2.2.7/linux/REPORTING-BUGS Tue Jan 19 11:32:50 1999
+++ linux/REPORTING-BUGS Thu Apr 29 11:53:41 1999
@@ -1,6 +1,6 @@
X [Some of this is taken from Frohwalt Egerer's original linux-kernel FAQ]
X
- What follows is a suggested proceedure for reporting Linux bugs. You
+ What follows is a suggested procedure for reporting Linux bugs. You
X aren't obliged to use the bug reporting format, it is provided as a guide
X to the kind of information that can be useful to developers - no more.
X
@@ -23,11 +23,11 @@
X This is a suggested format for a bug report sent to the Linux kernel mailing
X list. Having a standardized bug report form makes it easier for you not to
X overlook things, and easier for the developers to find the pieces of
-information they're really interested in.
+information they're really interested in. Don't feel you have to follow it.
X
X First run the ver_linux script included as scripts/ver_linux or
X at <URL:ftp://ftp.sai.msu.su/pub/Linux/ver_linux> It checks out
-the version of some important subsystems. Run it with the commnd
+the version of some important subsystems. Run it with the command
X "sh scripts/ver_linux"
X
X Use that information to fill in all fields of the bug report form, and
diff -u --recursive --new-file v2.2.7/linux/arch/alpha/config.in linux/arch/alpha/config.in
--- v2.2.7/linux/arch/alpha/config.in Tue Feb 23 15:21:32 1999
+++ linux/arch/alpha/config.in Mon May 10 09:55:21 1999
@@ -54,12 +54,10 @@
X unset CONFIG_ALPHA_LCA CONFIG_ALPHA_APECS CONFIG_ALPHA_CIA
X unset CONFIG_ALPHA_T2 CONFIG_ALPHA_PYXIS CONFIG_ALPHA_POLARIS
X unset CONFIG_ALPHA_TSUNAMI CONFIG_ALPHA_MCPCIA
-unset CONFIG_ALPHA_NEED_ROUNDING_EMULATION
X
X if [ "$CONFIG_ALPHA_GENERIC" = "y" ]
X then
X define_bool CONFIG_PCI y
- define_bool CONFIG_ALPHA_NEED_ROUNDING_EMULATION y
X fi
X if [ "$CONFIG_ALPHA_BOOK1" = "y" ]
X then
@@ -108,7 +106,7 @@
X then
X define_bool CONFIG_ALPHA_EV5 y
X else
- define_bool CONFIG_ALPHA_EV4 y
+ define_bool CONFIG_ALPHA_EV4 y
X fi
X define_bool CONFIG_ALPHA_T2 y
X fi
@@ -140,11 +138,6 @@
X if [ "$CONFIG_ALPHA_JENSEN" = "y" ]
X then
X define_bool CONFIG_ALPHA_EV4 y
-fi
-if [ "$CONFIG_ALPHA_EV4" = "y" ]
-then
- # EV45 and older do not support all rounding modes in hw:
- define_bool CONFIG_ALPHA_NEED_ROUNDING_EMULATION y
X fi
X
X if [ "$CONFIG_ALPHA_CABRIOLET" = "y" -o "$CONFIG_ALPHA_AVANTI" = "y" \
diff -u --recursive --new-file v2.2.7/linux/arch/alpha/kernel/entry.S linux/arch/alpha/kernel/entry.S
--- v2.2.7/linux/arch/alpha/kernel/entry.S Tue Feb 23 15:21:32 1999
+++ linux/arch/alpha/kernel/entry.S Mon May 10 09:55:21 1999
@@ -6,8 +6,6 @@
X
X #include <asm/system.h>
X
-#define halt .long PAL_halt
-#define rti .long PAL_rti
X #define SIGCHLD 20
X
X #define NR_SYSCALLS 371
@@ -98,7 +96,7 @@
X call_pal PAL_swpipl; \
X stq $21,HAE_CACHE($19); \
X stq $21,0($20); \
- bis $0,$0,$16; \
+ mov $0,$16; \
X call_pal PAL_swpipl; \
X ldq $0,0($30); \
X ldq $1,8($30); \
@@ -127,8 +125,8 @@
X entInt:
X SAVE_ALL
X lda $8,0x3fff
- bic $30,$8,$8
X lda $26,ret_from_sys_call
+ bic $30,$8,$8
X jsr $31,do_entInt
X .end entInt
X
@@ -170,8 +168,8 @@
X entArith:
X SAVE_ALL
X lda $8,0x3fff
- bic $30,$8,$8
X lda $26,ret_from_sys_call
+ bic $30,$8,$8
X jsr $31,do_entArith
X .end entArith
X
@@ -181,8 +179,8 @@
X entIF:
X SAVE_ALL
X lda $8,0x3fff
- bic $30,$8,$8
X lda $26,ret_from_sys_call
+ bic $30,$8,$8
X jsr $31,do_entIF
X .end entIF
X
@@ -192,8 +190,8 @@
X entDbg:
X SAVE_ALL
X lda $8,0x3fff
- bic $30,$8,$8
X lda $26,ret_from_sys_call
+ bic $30,$8,$8
X jsr $31,do_entDbg
X .end entDbg
X
@@ -212,18 +210,18 @@
X kernel_clone:
X .frame $30, 0, $26
X .prologue 0
- subq $30,6*8,$30
- stq $31,0($30)
- stq $26,8($30)
- stq $29,16($30)
- stq $16,24($30)
- stq $17,32($30)
- stq $18,40($30)
- bis $31,2,$0 /* Register v0: syscall nr for fork() */
+ subq $30,6*8,$30
+ stq $31,0($30)
+ stq $26,8($30)
+ stq $29,16($30)
+ stq $16,24($30)
+ stq $17,32($30)
+ stq $18,40($30)
+ bis $31,2,$0 /* Register v0: syscall nr for fork() */
X SAVE_ALL
- bsr $26,sys_clone
- stq $0,0($30)
- br $31,ret_from_sys_call
+ bsr $26,sys_clone
+ stq $0,0($30)
+ br ret_from_sys_call
X .end kernel_clone
X
X /*
@@ -233,32 +231,32 @@
X .globl __kernel_thread
X .ent __kernel_thread
X __kernel_thread:
- ldgp $29,0($27) /* we can be called from a module */
+ ldgp $29,0($27) /* we can be called from a module */
X .frame $30, 4*8, $26
- subq $30,4*8,$30
- stq $10,16($30)
- stq $9,8($30)
- stq $26,0($30)
+ subq $30,4*8,$30
+ stq $10,16($30)
+ stq $9,8($30)
+ stq $26,0($30)
X .prologue 1
- bis $17,$17,$9 /* save fn */
- bis $18,$18,$10 /* save arg */
- bsr $26,kernel_clone
- bne $20,1f /* $20 is non-zero in child */
- ldq $26,0($30)
- ldq $9,8($30)
- ldq $10,16($30)
- addq $30,4*8,$30
- ret $31,($26),1
+ mov $17,$9 /* save fn */
+ mov $18,$10 /* save arg */
+ bsr $26,kernel_clone
+ bne $20,1f /* $20 is non-zero in child */
+ ldq $26,0($30)
+ ldq $9,8($30)
+ ldq $10,16($30)
+ addq $30,4*8,$30
+ ret $31,($26),1
X /* this is in child: look out as we don't have any stack here.. */
-1: bis $9,$9,$27 /* get fn */
- lda $8,0x3fff
- bis $10,$10,$16 /* get arg */
- bic $30,$8,$8 /* get current */
- jsr $26,($27)
+1: mov $9,$27 /* get fn */
+ lda $8,0x3fff
+ mov $10,$16 /* get arg */
+ bic $30,$8,$8 /* get current */
+ jsr $26,($27)
X ldgp $29,0($26)
- bis $0,$0,$16
- jsr $26,sys_exit
- call_pal PAL_halt
+ mov $0,$16
+ mov $31,$26
+ jsr $31,sys_exit
X .end __kernel_thread
X
X /*
@@ -286,202 +284,199 @@
X .align 3
X .ent do_switch_stack
X do_switch_stack:
- lda $30,-SWITCH_STACK_SIZE($30)
- stq $9,0($30)
- stq $10,8($30)
- stq $11,16($30)
- stq $12,24($30)
- stq $13,32($30)
- stq $14,40($30)
- stq $15,48($30)
- stq $26,56($30)
- stt $f0,64($30)
- stt $f1,72($30)
- stt $f2,80($30)
- stt $f3,88($30)
- stt $f4,96($30)
- stt $f5,104($30)
- stt $f6,112($30)
- stt $f7,120($30)
- stt $f8,128($30)
- stt $f9,136($30)
- stt $f10,144($30)
- stt $f11,152($30)
- stt $f12,160($30)
- stt $f13,168($30)
- stt $f14,176($30)
- stt $f15,184($30)
- stt $f16,192($30)
- stt $f17,200($30)
- stt $f18,208($30)
- stt $f19,216($30)
- stt $f20,224($30)
- stt $f21,232($30)
- stt $f22,240($30)
- stt $f23,248($30)
- stt $f24,256($30)
- stt $f25,264($30)
- stt $f26,272($30)
- stt $f27,280($30)
- mf_fpcr $f0 # get fpcr
- stt $f28,288($30)
- stt $f29,296($30)
- stt $f30,304($30)
- stt $f0,312($30) # save fpcr in slot of $f31
- ldt $f0,64($30) # dont let "do_switch_stack" change fp state.
- ret $31,($1),1
+ lda $30,-SWITCH_STACK_SIZE($30)
+ stq $9,0($30)
+ stq $10,8($30)
+ stq $11,16($30)
+ stq $12,24($30)
+ stq $13,32($30)
+ stq $14,40($30)
+ stq $15,48($30)
+ stq $26,56($30)
+ stt $f0,64($30)
+ stt $f1,72($30)
+ stt $f2,80($30)
+ stt $f3,88($30)
+ stt $f4,96($30)
+ stt $f5,104($30)
+ stt $f6,112($30)
+ stt $f7,120($30)
+ stt $f8,128($30)
+ stt $f9,136($30)
+ stt $f10,144($30)
+ stt $f11,152($30)
+ stt $f12,160($30)
+ stt $f13,168($30)
+ stt $f14,176($30)
+ stt $f15,184($30)
+ stt $f16,192($30)
+ stt $f17,200($30)
+ stt $f18,208($30)
+ stt $f19,216($30)
+ stt $f20,224($30)
+ stt $f21,232($30)
+ stt $f22,240($30)
+ stt $f23,248($30)
+ stt $f24,256($30)
+ stt $f25,264($30)
+ stt $f26,272($30)
+ stt $f27,280($30)
+ mf_fpcr $f0 # get fpcr
+ stt $f28,288($30)
+ stt $f29,296($30)
+ stt $f30,304($30)
+ stt $f0,312($30) # save fpcr in slot of $f31
+ ldt $f0,64($30) # dont let "do_switch_stack" change fp state.
+ ret $31,($1),1
X .end do_switch_stack
X
X .align 3
X .ent undo_switch_stack
X undo_switch_stack:
- ldq $9,0($30)
- ldq $10,8($30)
- ldq $11,16($30)
- ldq $12,24($30)
- ldq $13,32($30)
- ldq $14,40($30)
- ldq $15,48($30)
- ldq $26,56($30)
- ldt $f30,312($30) # get saved fpcr
- ldt $f0,64($30)
- ldt $f1,72($30)
- ldt $f2,80($30)
- ldt $f3,88($30)
- mt_fpcr $f30 # install saved fpcr
- ldt $f4,96($30)
- ldt $f5,104($30)
- ldt $f6,112($30)
- ldt $f7,120($30)
- ldt $f8,128($30)
- ldt $f9,136($30)
- ldt $f10,144($30)
- ldt $f11,152($30)
- ldt $f12,160($30)
- ldt $f13,168($30)
- ldt $f14,176($30)
- ldt $f15,184($30)
- ldt $f16,192($30)
- ldt $f17,200($30)
- ldt $f18,208($30)
- ldt $f19,216($30)
- ldt $f20,224($30)
- ldt $f21,232($30)
- ldt $f22,240($30)
- ldt $f23,248($30)
- ldt $f24,256($30)
- ldt $f25,264($30)
- ldt $f26,272($30)
- ldt $f27,280($30)
- ldt $f28,288($30)
- ldt $f29,296($30)
- ldt $f30,304($30)
- lda $30,SWITCH_STACK_SIZE($30)
- ret $31,($1),1
+ ldq $9,0($30)
+ ldq $10,8($30)
+ ldq $11,16($30)
+ ldq $12,24($30)
+ ldq $13,32($30)
+ ldq $14,40($30)
+ ldq $15,48($30)
+ ldq $26,56($30)
+ ldt $f30,312($30) # get saved fpcr
+ ldt $f0,64($30)
+ ldt $f1,72($30)
+ ldt $f2,80($30)
+ ldt $f3,88($30)
+ mt_fpcr $f30 # install saved fpcr
+ ldt $f4,96($30)
+ ldt $f5,104($30)
+ ldt $f6,112($30)
+ ldt $f7,120($30)
+ ldt $f8,128($30)
+ ldt $f9,136($30)
+ ldt $f10,144($30)
+ ldt $f11,152($30)
+ ldt $f12,160($30)
+ ldt $f13,168($30)
+ ldt $f14,176($30)
+ ldt $f15,184($30)
+ ldt $f16,192($30)
+ ldt $f17,200($30)
+ ldt $f18,208($30)
+ ldt $f19,216($30)
+ ldt $f20,224($30)
+ ldt $f21,232($30)
+ ldt $f22,240($30)
+ ldt $f23,248($30)
+ ldt $f24,256($30)
+ ldt $f25,264($30)
+ ldt $f26,272($30)
+ ldt $f27,280($30)
+ ldt $f28,288($30)
+ ldt $f29,296($30)
+ ldt $f30,304($30)
+ lda $30,SWITCH_STACK_SIZE($30)
+ ret $31,($1),1
X .end undo_switch_stack
X
X .align 3
X .globl entUna
X .ent entUna
X entUna:
- lda $30,-256($30)
- stq $0,0($30)
- ldq $0,256($30) /* get PS */
- stq $1,8($30)
- stq $2,16($30)
- stq $3,24($30)
- and $0,8,$0 /* user mode? */
- stq $4,32($30)
- bne $0,entUnaUser /* yup -> do user-level unaligned fault */
- stq $5,40($30)
- stq $6,48($30)
- stq $7,56($30)
- stq $8,64($30)
- stq $9,72($30)
- stq $10,80($30)
- stq $11,88($30)
- stq $12,96($30)
- stq $13,104($30)
- stq $14,112($30)
- stq $15,120($30)
+ lda $30,-256($30)
+ stq $0,0($30)
+ ldq $0,256($30) /* get PS */
+ stq $1,8($30)
+ stq $2,16($30)
+ stq $3,24($30)
+ and $0,8,$0 /* user mode? */
+ stq $4,32($30)
+ bne $0,entUnaUser /* yup -> do user-level unaligned fault */
+ stq $5,40($30)
+ stq $6,48($30)
+ stq $7,56($30)
+ stq $8,64($30)
+ stq $9,72($30)
+ stq $10,80($30)
+ stq $11,88($30)
+ stq $12,96($30)
+ stq $13,104($30)
+ stq $14,112($30)
+ stq $15,120($30)
X /* 16-18 PAL-saved */
- stq $19,152($30)
- stq $20,160($30)
- stq $21,168($30)
- stq $22,176($30)
- stq $23,184($30)
- stq $24,192($30)
- stq $25,200($30)
- stq $26,208($30)
- stq $27,216($30)
- stq $28,224($30)
- stq $29,232($30)
- stq $30,240($30)
- stq $31,248($30)
- lda $8,0x3fff
- bic $30,$8,$8
- jsr $26,do_entUna
- ldq $0,0($30)
- ldq $1,8($30)
- ldq $2,16($30)
- ldq $3,24($30)
- ldq $4,32($30)
- ldq $5,40($30)
- ldq $6,48($30)
- ldq $7,56($30)
- ldq $8,64($30)
- ldq $9,72($30)
- ldq $10,80($30)
- ldq $11,88($30)
- ldq $12,96($30)
- ldq $13,104($30)
- ldq $14,112($30)
- ldq $15,120($30)
+ stq $19,152($30)
+ stq $20,160($30)
+ stq $21,168($30)
+ stq $22,176($30)
+ stq $23,184($30)
+ stq $24,192($30)
+ stq $25,200($30)
+ stq $26,208($30)
+ stq $27,216($30)
+ stq $28,224($30)
+ stq $29,232($30)
+ lda $8,0x3fff
+ stq $31,248($30)
+ bic $30,$8,$8
+ jsr $26,do_entUna
+ ldq $0,0($30)
+ ldq $1,8($30)
+ ldq $2,16($30)
+ ldq $3,24($30)
+ ldq $4,32($30)
+ ldq $5,40($30)
+ ldq $6,48($30)
+ ldq $7,56($30)
+ ldq $8,64($30)
+ ldq $9,72($30)
+ ldq $10,80($30)
+ ldq $11,88($30)
+ ldq $12,96($30)
+ ldq $13,104($30)
+ ldq $14,112($30)
+ ldq $15,120($30)
X /* 16-18 PAL-saved */
- ldq $19,152($30)
- ldq $20,160($30)
- ldq $21,168($30)
- ldq $22,176($30)
- ldq $23,184($30)
- ldq $24,192($30)
- ldq $25,200($30)
- ldq $26,208($30)
- ldq $27,216($30)
- ldq $28,224($30)
- ldq $29,232($30)
- ldq $30,240($30)
- lda $30,256($30)
- rti
+ ldq $19,152($30)
+ ldq $20,160($30)
+ ldq $21,168($30)
+ ldq $22,176($30)
+ ldq $23,184($30)
+ ldq $24,192($30)
+ ldq $25,200($30)
+ ldq $26,208($30)
+ ldq $27,216($30)
+ ldq $28,224($30)
+ ldq $29,232($30)
+ lda $30,256($30)
+ call_pal PAL_rti
X .end entUna
X
X .align 3
X .ent entUnaUser
X entUnaUser:
- ldq $0,0($30) /* restore original $0 */
- lda $30,256($30) /* pop entUna's stack frame */
- SAVE_ALL /* setup normal kernel stack */
- lda $30,-56($30)
- stq $9,0($30)
- stq $10,8($30)
- stq $11,16($30)
- stq $12,24($30)
- stq $13,32($30)
- stq $14,40($30)
- stq $15,48($30)
- lda $8,0x3fff
- addq $30,56,$19
- bic $30,$8,$8
- jsr $26,do_entUnaUser
- ldq $9,0($30)
- ldq $10,8($30)
- ldq $11,16($30)
- ldq $12,24($30)
- ldq $13,32($30)
- ldq $14,40($30)
- ldq $15,48($30)
- lda $30,56($30)
- br $31,ret_from_sys_call
-
+ ldq $0,0($30) /* restore original $0 */
+ lda $30,256($30) /* pop entUna's stack frame */
+ SAVE_ALL /* setup normal kernel stack */
+ lda $30,-56($30)
+ stq $9,0($30)
+ stq $10,8($30)
+ stq $11,16($30)
+ stq $12,24($30)
+ stq $13,32($30)
+ stq $14,40($30)
+ stq $15,48($30)
+ lda $8,0x3fff
+ addq $30,56,$19
+ bic $30,$8,$8
+ jsr $26,do_entUnaUser
+ ldq $9,0($30)
+ ldq $10,8($30)
+ ldq $11,16($30)
+ ldq $12,24($30)
+ ldq $13,32($30)
+ ldq $14,40($30)
+ ldq $15,48($30)
+ lda $30,56($30)
+ br ret_from_sys_call
X .end entUnaUser
X
X /*
@@ -491,36 +486,36 @@
X .globl sys_fork
X .ent sys_fork
X sys_fork:
- bsr $1,do_switch_stack
- bis $31,SIGCHLD,$16
- bis $31,$31,$17
- bis $30,$30,$18
- jsr $26,alpha_clone
- bsr $1,undo_switch_stack
- ret $31,($26),1
+ bsr $1,do_switch_stack
+ bis $31,SIGCHLD,$16
+ mov $31,$17
+ mov $30,$18
+ jsr $26,alpha_clone
+ bsr $1,undo_switch_stack
+ ret $31,($26),1
X .end sys_fork
X
X .align 3
X .globl sys_clone
X .ent sys_clone
X sys_clone:
- bsr $1,do_switch_stack
+ bsr $1,do_switch_stack
X /* arg1 and arg2 come from the user */
- bis $30,$30,$18
- jsr $26,alpha_clone
- bsr $1,undo_switch_stack
- ret $31,($26),1
+ mov $30,$18
+ jsr $26,alpha_clone
+ bsr $1,undo_switch_stack
+ ret $31,($26),1
X .end sys_clone
X
X .align 3
X .globl sys_vfork
X .ent sys_vfork
X sys_vfork:
- bsr $1,do_switch_stack
- bis $30,$30,$16
- jsr $26,alpha_vfork
- bsr $1,undo_switch_stack
- ret $31,($26),1
+ bsr $1,do_switch_stack
+ mov $30,$16
+ jsr $26,alpha_vfork
+ bsr $1,undo_switch_stack
+ ret $31,($26),1
X .end sys_vfork
X
X .align 3
@@ -528,12 +523,12 @@
X .ent alpha_switch_to
X alpha_switch_to:
X .prologue 0
- bsr $1,do_switch_stack
+ bsr $1,do_switch_stack
X call_pal PAL_swpctx
- lda $16,-2($31)
- call_pal PAL_tbi
- bsr $1,undo_switch_stack
- ret $31,($26),1
+ unop
+ bsr $1,undo_switch_stack
+ mov $17,$0
+ ret $31,($26),1
X .end alpha_switch_to
X
X /*
@@ -592,7 +587,7 @@
X bne $5,signal_return
X restore_all:
X RESTORE_ALL
- rti
+ call_pal PAL_rti
X
X
X /* PTRACE syscall handler */
@@ -620,7 +615,7 @@
X s8addq $0,$2,$2
X beq $1,1f
X ldq $27,0($2)
-1: jsr $26,($27),alpha_ni_syscall
+1: jsr $26,($27),sys_gettimeofday
X ldgp $29,0($26)
X
X /* check return.. */
@@ -646,15 +641,15 @@
X stq $1,72($30) /* a3 for return */
X
X bsr $1,do_switch_stack
- bis $19,$19,$9 /* save old syscall number */
- bis $20,$20,$10 /* save old a3 */
+ mov $19,$9 /* save old syscall number */
+ mov $20,$10 /* save old a3 */
X jsr $26,syscall_trace
- bis $9,$9,$19
- bis $10,$10,$20
+ mov $9,$19
+ mov $10,$20
X bsr $1,undo_switch_stack
X
- bis $31,$31,$26 /* tell "ret_from_sys_call" that we can restart */
- br $31,ret_from_sys_call
+ mov $31,$26 /* tell "ret_from_sys_call" we can restart */
+ br ret_from_sys_call
X
X .align 3
X handle_bottom_half:
@@ -665,7 +660,7 @@
X ldq $19,0($30)
X ldq $20,8($30)
X addq $30,16,$30
- br $31,ret_from_handle_bh
+ br ret_from_handle_bh
X
X .align 3
X syscall_error:
@@ -683,38 +678,35 @@
X subq $31,$0,$0 /* with error in v0 */
X addq $31,1,$1 /* set a3 for errno return */
X stq $0,0($30)
- bis $31,$31,$26 /* tell "ret_from_sys_call" we can restart */
+ mov $31,$26 /* tell "ret_from_sys_call" we can restart */
X stq $1,72($30) /* a3 for return */
- br $31,ret_from_sys_call
+ br ret_from_sys_call
X
X ret_success:
X stq $0,0($30)
X stq $31,72($30) /* a3=0 => no error */
- br $31,ret_from_sys_call
+ br ret_from_sys_call
X
X .align 3
X signal_return:
- bis $30,$30,$17
+ mov $30,$17
X br $1,do_switch_stack
- bis $30,$30,$18
- bis $31,$31,$16
+ mov $30,$18
+ mov $31,$16
X jsr $26,do_signal
X bsr $1,undo_switch_stack
- br $31,restore_all
+ br restore_all
X .end entSys
X
X #ifdef __SMP__
- .globl ret_from_smpfork
+ .globl ret_from_smp_fork
X .align 3
-.ent ret_from_smpfork
-ret_from_smpfork:
- .set at
- mb /* Make the changed data visible before the freed lock. */
- stq $31,scheduler_lock
+.ent ret_from_smp_fork
+ret_from_smp_fork:
X lda $26,ret_from_sys_call
+ mov $17,$16
X jsr $31,schedule_tail
- .set noat
-.end ret_from_smpfork
+.end ret_from_smp_fork
X #endif /* __SMP__ */
X
X .align 3
@@ -727,51 +719,51 @@
X ldq $19,0($30)
X ldq $20,8($30)
X addq $30,16,$30
- br $31,ret_from_reschedule
+ br ret_from_reschedule
X .end reschedule
X
X .align 3
X .ent sys_sigreturn
X sys_sigreturn:
- bis $30,$30,$17
+ mov $30,$17
+ lda $18,-SWITCH_STACK_SIZE($30)
X lda $30,-SWITCH_STACK_SIZE($30)
- bis $30,$30,$18
X jsr $26,do_sigreturn
X br $1,undo_switch_stack
- br $31,ret_from_sys_call
+ br ret_from_sys_call
X .end sys_sigreturn
X
X .align 3
X .ent sys_rt_sigreturn
X sys_rt_sigreturn:
- bis $30,$30,$17
+ mov $30,$17
+ lda $18,-SWITCH_STACK_SIZE($30)
X lda $30,-SWITCH_STACK_SIZE($30)
- bis $30,$30,$18
X jsr $26,do_rt_sigreturn
X br $1,undo_switch_stack
- br $31,ret_from_sys_call
+ br ret_from_sys_call
X .end sys_rt_sigreturn
X
X .align 3
X .ent sys_sigsuspend
X sys_sigsuspend:
- bis $30,$30,$17
+ mov $30,$17
X br $1,do_switch_stack
- bis $30,$30,$18
+ mov $30,$18
X jsr $26,do_sigsuspend
X lda $30,SWITCH_STACK_SIZE($30)
- br $31,ret_from_sys_call
+ br ret_from_sys_call
X .end sys_sigsuspend
X
X .align 3
X .ent sys_rt_sigsuspend
X sys_rt_sigsuspend:
- bis $30,$30,$18
+ mov $30,$18
X br $1,do_switch_stack
- bis $30,$30,$19
+ mov $30,$19
X jsr $26,do_rt_sigsuspend
X lda $30,SWITCH_STACK_SIZE($30)
- br $31,ret_from_sys_call
+ br ret_from_sys_call
X .end sys_rt_sigsuspend
X
X .data
diff -u --recursive --new-file v2.2.7/linux/arch/alpha/kernel/osf_sys.c linux/arch/alpha/kernel/osf_sys.c
--- v2.2.7/linux/arch/alpha/kernel/osf_sys.c Tue Mar 23 14:35:46 1999
+++ linux/arch/alpha/kernel/osf_sys.c Mon May 10 09:55:21 1999
@@ -141,6 +141,7 @@
X struct inode *inode;
X struct osf_dirent_callback buf;
X
+ lock_kernel();
X error = -EBADF;
X file = fget(fd);
X if (!file)
@@ -173,6 +174,7 @@
X out_putf:
X fput(file);
X out:
+ unlock_kernel();
X return error;
X }
X
@@ -883,7 +885,21 @@
X case GSI_IEEE_FP_CONTROL:
X /* Return current software fp control & status bits. */
X /* Note that DU doesn't verify available space here. */
- w = current->tss.flags & IEEE_SW_MASK;
+
+ /* EV6 implements most of the bits in hardware. If
+ UNDZ is not set, UNFD is maintained in software. */
+ if (implver() == IMPLVER_EV6) {
+ unsigned long fpcr = rdfpcr();
+ w = ieee_fpcr_to_swcr(fpcr);
+ if (!(fpcr & FPCR_UNDZ)) {
+ w &= ~IEEE_TRAP_ENABLE_UNF;
+ w |= current->tss.flags & IEEE_TRAP_ENABLE_UNF;
+ }
+ } else {
+ /* Otherwise we are forced to do everything in sw. */
+ w = current->tss.flags & IEEE_SW_MASK;
+ }
+
X if (put_user(w, (unsigned long *) buffer))
X return -EFAULT;
X return 0;
@@ -933,7 +949,7 @@
X {
X switch (op) {
X case SSI_IEEE_FP_CONTROL: {
- unsigned long swcr, fpcr;
+ unsigned long swcr, fpcr, undz;
X
X /*
X * Alpha Architecture Handbook 4.7.7.3:
@@ -948,11 +964,12 @@
X current->tss.flags &= ~IEEE_SW_MASK;
X current->tss.flags |= swcr & IEEE_SW_MASK;
X
- /* Update the real fpcr. For exceptions that are disabled in
- software but have not been seen, enable the exception in
- hardware so that we can update our software status mask. */
- fpcr = rdfpcr() & (~FPCR_MASK | FPCR_DYN_MASK);
- fpcr |= ieee_swcr_to_fpcr(swcr | (~swcr & IEEE_STATUS_MASK)>>16);
+ /* Update the real fpcr. Keep UNFD off if not UNDZ. */
+ fpcr = rdfpcr();
+ undz = (fpcr & FPCR_UNDZ);
+ fpcr &= ~(FPCR_MASK | FPCR_DYN_MASK | FPCR_UNDZ);
+ fpcr |= ieee_swcr_to_fpcr(swcr);
+ fpcr &= ~(undz << 1);
X wrfpcr(fpcr);
X
X return 0;
@@ -1407,8 +1424,9 @@
X copy_from_user(&txc.tick, &txc_p->tick, sizeof(struct timex32) -
X offsetof(struct timex32, time)))
X return -EFAULT;
-
- if ((ret = do_adjtimex(&txc)))
+
+ ret = do_adjtimex(&txc);
+ if (ret < 0)
X return ret;
X
X /* copy back to timex32 */
@@ -1418,5 +1436,5 @@
X (put_tv32(&txc_p->time, &txc.time)))
X return -EFAULT;
X
- return 0;
+ return ret;
X }
diff -u --recursive --new-file v2.2.7/linux/arch/alpha/kernel/process.c linux/arch/alpha/kernel/process.c
--- v2.2.7/linux/arch/alpha/kernel/process.c Wed Jan 20 23:14:04 1999
+++ linux/arch/alpha/kernel/process.c Mon May 10 09:55:21 1999
@@ -237,10 +237,13 @@
X
X void flush_thread(void)
X {
- /* Arrange for each exec'ed process to start off with a
- clean slate with respect to the FPU. */
+ /* Arrange for each exec'ed process to start off with a clean slate
+ with respect to the FPU. This is all exceptions disabled. Note
+ that EV6 defines UNFD valid only with UNDZ, which we don't want
+ for IEEE conformance -- so that disabled bit remains in software. */
+
X current->tss.flags &= ~IEEE_SW_MASK;
- wrfpcr(FPCR_DYN_NORMAL);
+ wrfpcr(FPCR_DYN_NORMAL | FPCR_INVD | FPCR_DZED | FPCR_OVFD | FPCR_INED);
X }
X
X void release_thread(struct task_struct *dead_task)
@@ -270,8 +273,6 @@
X (struct pt_regs *) (swstack+1));
X }
X
-extern void ret_from_sys_call(void);
-extern void ret_from_smpfork(void);
X /*
X * Copy an alpha thread..
X *
@@ -282,9 +283,13 @@
X * Use the passed "regs" pointer to determine how much space we need
X * for a kernel fork().
X */
+
X int copy_thread(int nr, unsigned long clone_flags, unsigned long usp,
X struct task_struct * p, struct pt_regs * regs)
X {
+ extern void ret_from_sys_call(void);
+ extern void ret_from_smp_fork(void);
+
X struct pt_regs * childregs;
X struct switch_stack * childstack, *stack;
X unsigned long stack_offset;
@@ -292,18 +297,18 @@
X stack_offset = PAGE_SIZE - sizeof(struct pt_regs);
X if (!(regs->ps & 8))
X stack_offset = (PAGE_SIZE-1) & (unsigned long) regs;
- childregs = (struct pt_regs *) (stack_offset + PAGE_SIZE + (unsigned long)p);
+ childregs = (struct pt_regs *) (stack_offset + PAGE_SIZE + (long)p);
X
X *childregs = *regs;
X childregs->r0 = 0;
X childregs->r19 = 0;
- childregs->r20 = 1; /* OSF/1 has some strange fork() semantics.. */
+ childregs->r20 = 1; /* OSF/1 has some strange fork() semantics. */
X regs->r20 = 0;
X stack = ((struct switch_stack *) regs) - 1;
X childstack = ((struct switch_stack *) childregs) - 1;
X *childstack = *stack;
X #ifdef __SMP__
- childstack->r26 = (unsigned long) ret_from_smpfork;
+ childstack->r26 = (unsigned long) ret_from_smp_fork;
X #else
X childstack->r26 = (unsigned long) ret_from_sys_call;
X #endif
@@ -328,10 +333,12 @@
X dump->start_code = current->mm->start_code;
X dump->start_data = current->mm->start_data;
X dump->start_stack = rdusp() & ~(PAGE_SIZE - 1);
- dump->u_tsize = (current->mm->end_code - dump->start_code) >> PAGE_SHIFT;
- dump->u_dsize = (current->mm->brk + (PAGE_SIZE - 1) - dump->start_data) >> PAGE_SHIFT;
- dump->u_ssize =
- (current->mm->start_stack - dump->start_stack + PAGE_SIZE - 1) >> PAGE_SHIFT;
+ dump->u_tsize = ((current->mm->end_code - dump->start_code)
+ >> PAGE_SHIFT);
+ dump->u_dsize = ((current->mm->brk + PAGE_SIZE-1 - dump->start_data)
+ >> PAGE_SHIFT);
+ dump->u_ssize = (current->mm->start_stack - dump->start_stack
+ + PAGE_SIZE-1) >> PAGE_SHIFT;
X
X /*
X * We store the registers in an order/format that is
diff -u --recursive --new-file v2.2.7/linux/arch/alpha/kernel/smp.c linux/arch/alpha/kernel/smp.c
--- v2.2.7/linux/arch/alpha/kernel/smp.c Mon Mar 29 11:09:11 1999
+++ linux/arch/alpha/kernel/smp.c Mon May 10 09:55:21 1999
@@ -37,7 +37,18 @@
X #define DBGS(args)
X #endif
X
-struct ipi_msg_flush_tb_struct ipi_msg_flush_tb __cacheline_aligned;
+struct ipi_msg_flush_tb_struct {
+ volatile unsigned int flush_tb_mask;
+ union {
+ struct mm_struct * flush_mm;
+ struct vm_area_struct * flush_vma;
+ } p;
+ unsigned long flush_addr;
+ unsigned long flush_end;
+};
+
+static struct ipi_msg_flush_tb_struct ipi_msg_flush_tb __cacheline_aligned;
+static spinlock_t flush_tb_lock = SPIN_LOCK_UNLOCKED;
X
X struct cpuinfo_alpha cpu_data[NR_CPUS];
X
@@ -786,7 +797,7 @@
X unsigned long to_whom = cpu_present_map ^ (1 << smp_processor_id());
X long timeout = 1000000;
X
- spin_lock_own(&kernel_flag, "flush_tlb_all");
+ spin_lock(&flush_tb_lock);
X
X ipi_msg_flush_tb.flush_tb_mask = to_whom;
X send_ipi_message(to_whom, IPI_TLB_ALL);
@@ -803,6 +814,8 @@
X ipi_msg_flush_tb.flush_tb_mask);
X ipi_msg_flush_tb.flush_tb_mask = 0;
X }
+
+ spin_unlock(&flush_tb_lock);
X }
X
X void
@@ -811,7 +824,7 @@
X unsigned long to_whom = cpu_present_map ^ (1 << smp_processor_id());
X long timeout = 1000000;
X
- spin_lock_own(&kernel_flag, "flush_tlb_mm");
+ spin_lock(&flush_tb_lock);
X
X ipi_msg_flush_tb.flush_tb_mask = to_whom;
X ipi_msg_flush_tb.p.flush_mm = mm;
@@ -833,6 +846,8 @@
X ipi_msg_flush_tb.flush_tb_mask);
X ipi_msg_flush_tb.flush_tb_mask = 0;
X }
+
+ spin_unlock(&flush_tb_lock);
X }
X
X void
@@ -843,7 +858,7 @@
X struct mm_struct * mm = vma->vm_mm;
X int timeout = 1000000;
X
- spin_lock_own(&kernel_flag, "flush_tlb_page");
+ spin_lock(&flush_tb_lock);
X
X ipi_msg_flush_tb.flush_tb_mask = to_whom;
X ipi_msg_flush_tb.p.flush_vma = vma;
@@ -866,6 +881,8 @@
X ipi_msg_flush_tb.flush_tb_mask);
X ipi_msg_flush_tb.flush_tb_mask = 0;
X }
+
+ spin_unlock(&flush_tb_lock);
X }
X
X void
diff -u --recursive --new-file v2.2.7/linux/arch/alpha/kernel/traps.c linux/arch/alpha/kernel/traps.c
--- v2.2.7/linux/arch/alpha/kernel/traps.c Tue Feb 23 15:21:32 1999
+++ linux/arch/alpha/kernel/traps.c Mon May 10 09:55:21 1999
@@ -125,13 +125,16 @@
X unsigned long a2, unsigned long a3, unsigned long a4,
X unsigned long a5, struct pt_regs regs)
X {
- if ((summary & 1)) {
- /*
- * Software-completion summary bit is set, so try to
- * emulate the instruction.
- */
- if (alpha_fp_emul_imprecise(&regs, write_mask)) {
- return; /* emulation was successful */
+ if (summary & 1) {
+ /* Software-completion summary bit is set, so try to
+ emulate the instruction. */
+ if (implver() == IMPLVER_EV6) {
+ /* Whee! EV6 has precice exceptions. */
+ if (alpha_fp_emul(regs.pc - 4))
+ return;
+ } else {
+ if (alpha_fp_emul_imprecise(&regs, write_mask))
+ return;
X }
X }
X
@@ -141,7 +144,7 @@
X current->comm, regs.pc, summary, write_mask);
X #endif
X die_if_kernel("Arithmetic fault", &regs, 0, 0);
- force_sig(SIGFPE, current);
+ send_sig(SIGFPE, current, 1);
X unlock_kernel();
X }
X
@@ -150,14 +153,17 @@
X unsigned long a2, unsigned long a3, unsigned long a4,
X unsigned long a5, struct pt_regs regs)
X {
- lock_kernel();
X die_if_kernel("Instruction fault", &regs, type, 0);
X switch (type) {
X case 0: /* breakpoint */
X if (ptrace_cancel_bpt(current)) {
X regs.pc -= 4; /* make pc point to former bpt */
X }
- force_sig(SIGTRAP, current);
+ send_sig(SIGTRAP, current, 1);
+ break;
+
+ case 1: /* bugcheck */
+ send_sig(SIGTRAP, current, 1);
X break;
X
X case 2: /* gentrap */
@@ -171,14 +177,13 @@
X switch ((long) regs.r16) {
X case GEN_INTOVF: case GEN_INTDIV: case GEN_FLTOVF:
X case GEN_FLTDIV: case GEN_FLTUND: case GEN_FLTINV:
- case GEN_FLTINE:
- force_sig(SIGFPE, current);
+ case GEN_FLTINE: case GEN_ROPRAND:
+ send_sig(SIGFPE, current, 1);
X break;
X
X case GEN_DECOVF:
X case GEN_DECDIV:
X case GEN_DECINV:
- case GEN_ROPRAND:
X case GEN_ASSERTERR:
X case GEN_NULPTRERR:
X case GEN_STKOVF:
@@ -193,42 +198,29 @@
X case GEN_SUBRNG5:
X case GEN_SUBRNG6:
X case GEN_SUBRNG7:
- force_sig(SIGILL, current);
+ send_sig(SIGTRAP, current, 1);
X break;
X }
X break;
X
- case 1: /* bugcheck */
X case 3: /* FEN fault */
- force_sig(SIGILL, current);
+ send_sig(SIGILL, current, 1);
X break;
X
X case 4: /* opDEC */
-#ifdef CONFIG_ALPHA_NEED_ROUNDING_EMULATION
- {
- unsigned int opcode;
-
- /* get opcode of faulting instruction: */
- get_user(opcode, (__u32*)(regs.pc - 4));
- opcode >>= 26;
- if (opcode == 0x16) {
- /*
- * It's a FLTI instruction, emulate it
- * (we don't do no stinkin' VAX fp...)
- */
- if (!alpha_fp_emul(regs.pc - 4))
- force_sig(SIGFPE, current);
- break;
- }
+ if (implver() == IMPLVER_EV4) {
+ /* EV4 does not implement anything except normal
+ rounding. Everything else will come here as
+ an illegal instruction. Emulate them. */
+ if (alpha_fp_emul(regs.pc - 4))
+ return;
X }
-#endif
- force_sig(SIGILL, current);
+ send_sig(SIGILL, current, 1);
X break;
X
X default:
X panic("do_entIF: unexpected instruction-fault type");
X }
- unlock_kernel();
X }
X
X /* There is an ifdef in the PALcode in MILO that enables a
@@ -877,14 +869,14 @@
X give_sigsegv:
X regs->pc -= 4; /* make pc point to faulting insn */
X lock_kernel();
- force_sig(SIGSEGV, current);
+ send_sig(SIGSEGV, current, 1);
X unlock_kernel();
X return;
X
X give_sigbus:
X regs->pc -= 4;
X lock_kernel();
- force_sig(SIGBUS, current);
+ send_sig(SIGBUS, current, 1);
X unlock_kernel();
X return;
X }
diff -u --recursive --new-file v2.2.7/linux/arch/alpha/lib/copy_user.S linux/arch/alpha/lib/copy_user.S
--- v2.2.7/linux/arch/alpha/lib/copy_user.S Wed Apr 28 11:37:29 1999
+++ linux/arch/alpha/lib/copy_user.S Fri Apr 30 08:22:19 1999
@@ -109,7 +109,7 @@
X $66:
X EXI( ldq $1,0($7) )
X subq $4,8,$4
- stq $1,0($6)
+ EXO( stq $1,0($6) )
X addq $7,8,$7
X subq $0,8,$0
X addq $6,8,$6
diff -u --recursive --new-file v2.2.7/linux/arch/alpha/math-emu/fp-emul.c linux/arch/alpha/math-emu/fp-emul.c
--- v2.2.7/linux/arch/alpha/math-emu/fp-emul.c Tue Aug 18 22:02:02 1998
+++ linux/arch/alpha/math-emu/fp-emul.c Mon May 10 09:55:21 1999
@@ -13,6 +13,7 @@
X #define OPC_INTL 0x11
X #define OPC_INTS 0x12
X #define OPC_INTM 0x13
+#define OPC_FLTC 0x14
X #define OPC_FLTV 0x15
X #define OPC_FLTI 0x16
X #define OPC_FLTL 0x17
@@ -21,33 +22,37 @@
X
X #define OPC_JSR 0x1a
X
+#define OP_FUN(OP,FUN) ((OP << 26) | (FUN << 5))
+
X /*
- * "Base" function codes for the FLTI-class instructions. These
- * instructions all have opcode 0x16. Note that in most cases these
- * actually correspond to the "chopped" form of the instruction. Not
- * to worry---we extract the qualifier bits separately and deal with
- * them separately. Notice that base function code 0x2c is used for
- * both CVTTS and CVTST. The other bits in the function code are used
- * to distinguish the two.
+ * "Base" function codes for the FLTI-class instructions.
+ * Note that in most cases these actually correspond to the "chopped"
+ * form of the instruction. Not to worry---we extract the qualifier
+ * bits separately and deal with them separately. Notice that base
+ * function code 0x2c is used for both CVTTS and CVTST. The other bits
+ * in the function code are used to distinguish the two.
X */
-#define FLTI_FUNC_ADDS 0x000
-#define FLTI_FUNC_ADDT 0x020
-#define FLTI_FUNC_CMPTEQ 0x025
-#define FLTI_FUNC_CMPTLT 0x026
-#define FLTI_FUNC_CMPTLE 0x027
-#define FLTI_FUNC_CMPTUN 0x024
-#define FLTI_FUNC_CVTTS_or_CVTST 0x02c
-#define FLTI_FUNC_CVTTQ 0x02f
-#define FLTI_FUNC_CVTQS 0x03c
-#define FLTI_FUNC_CVTQT 0x03e
-#define FLTI_FUNC_DIVS 0x003
-#define FLTI_FUNC_DIVT 0x023
-#define FLTI_FUNC_MULS 0x002
-#define FLTI_FUNC_MULT 0x022
-#define FLTI_FUNC_SUBS 0x001
-#define FLTI_FUNC_SUBT 0x021
+#define FLTI_FUNC_ADDS OP_FUN(OPC_FLTI, 0x000)
+#define FLTI_FUNC_ADDT OP_FUN(OPC_FLTI, 0x020)
+#define FLTI_FUNC_CMPTEQ OP_FUN(OPC_FLTI, 0x025)
+#define FLTI_FUNC_CMPTLT OP_FUN(OPC_FLTI, 0x026)
+#define FLTI_FUNC_CMPTLE OP_FUN(OPC_FLTI, 0x027)
+#define FLTI_FUNC_CMPTUN OP_FUN(OPC_FLTI, 0x024)
+#define FLTI_FUNC_CVTTS_or_CVTST OP_FUN(OPC_FLTI, 0x02c)
+#define FLTI_FUNC_CVTTQ OP_FUN(OPC_FLTI, 0x02f)
+#define FLTI_FUNC_CVTQS OP_FUN(OPC_FLTI, 0x03c)
+#define FLTI_FUNC_CVTQT OP_FUN(OPC_FLTI, 0x03e)
+#define FLTI_FUNC_DIVS OP_FUN(OPC_FLTI, 0x003)
+#define FLTI_FUNC_DIVT OP_FUN(OPC_FLTI, 0x023)
+#define FLTI_FUNC_MULS OP_FUN(OPC_FLTI, 0x002)
+#define FLTI_FUNC_MULT OP_FUN(OPC_FLTI, 0x022)
+#define FLTI_FUNC_SUBS OP_FUN(OPC_FLTI, 0x001)
+#define FLTI_FUNC_SUBT OP_FUN(OPC_FLTI, 0x021)
+
+#define FLTC_FUNC_SQRTS OP_FUN(OPC_FLTC, 0x00B)
+#define FLTC_FUNC_SQRTT OP_FUN(OPC_FLTC, 0x02B)
X
-#define FLTI_FUNC_CVTQL 0x030 /* opcode 0x17 */
+#define FLTL_FUNC_CVTQL OP_FUN(OPC_FLTL, 0x030)
X
X #define MISC_TRAPB 0x0000
X #define MISC_EXCB 0x0400
@@ -101,7 +106,7 @@
X long
X alpha_fp_emul (unsigned long pc)
X {
- unsigned long opcode, fa, fb, fc, func, mode;
+ unsigned long op_fun, fa, fb, fc, func, mode;
X unsigned long fpcw = current->tss.flags;
X unsigned long va, vb, vc, res, fpcr;
X __u32 insn;
@@ -110,10 +115,11 @@
X
X get_user(insn, (__u32*)pc);
X fc = (insn >> 0) & 0x1f; /* destination register */
- func = (insn >> 5) & 0x7ff;
X fb = (insn >> 16) & 0x1f;
X fa = (insn >> 21) & 0x1f;
- opcode = insn >> 26;
+ func = (insn >> 5) & 0x7ff;
+ mode = (insn >> 5) & 0xc0;
+ op_fun = insn & OP_FUN(0x3f, 0x3f);
X
X va = alpha_read_fp_reg(fa);
X vb = alpha_read_fp_reg(fb);
@@ -123,7 +129,6 @@
X * Try the operation in software. First, obtain the rounding
X * mode...
X */
- mode = func & 0xc0;
X if (mode == 0xc0) {
X /* dynamic---get rounding mode from fpcr: */
X mode = ((fpcr & FPCR_DYN_MASK) >> FPCR_DYN_SHIFT) << ROUND_SHIFT;
@@ -135,8 +140,7 @@
X something_is_wrong();
X }
X
- /* least 6 bits contain operation code: */
- switch (func & 0x3f) {
+ switch (op_fun) {
X case FLTI_FUNC_CMPTEQ:
X res = ieee_CMPTEQ(va, vb, &vc);
X break;
@@ -153,7 +157,7 @@
X res = ieee_CMPTUN(va, vb, &vc);
X break;
X
- case FLTI_FUNC_CVTQL:
+ case FLTL_FUNC_CVTQL:
X /*
X * Notice: We can get here only due to an integer
X * overflow. Such overflows are reported as invalid
@@ -222,6 +226,14 @@
X res = ieee_CVTTQ(mode, vb, &vc);
X break;
X
+ case FLTC_FUNC_SQRTS:
+ res = ieee_SQRTS(mode, vb, &vc);
+ break;
+
+ case FLTC_FUNC_SQRTT:
+ res = ieee_SQRTT(mode, vb, &vc);
+ break;
+
X default:


SHAR_EOF
true || echo 'restore of patch-2.2.8 failed'
fi

echo 'End of part 03'
echo 'File patch-2.2.8 is continued in part 04'
echo 04 > _shar_seq_.tmp

Thomas...@ciw.uni-karlsruhe.de

unread,
May 12, 1999, 3:00:00 AM5/12/99
to
Archive-name: v2.2/patch-2.2.8/part04

#!/bin/sh
# this is part 04 of a 33 - part archive


# do not concatenate these parts, unpack them in order with /bin/sh
# file patch-2.2.8 continued
if test ! -r _shar_seq_.tmp; then
echo 'Please unpack part 1 first!'
exit 1
fi
(read Scheck

if test "$Scheck" != 04; then


echo Please unpack part "$Scheck" next!
exit 1
else
exit 0
fi
) < _shar_seq_.tmp || exit 1
if test ! -f _shar_wnt_.tmp; then
echo 'x - still skipping patch-2.2.8'
else
echo 'x - continuing with patch-2.2.8'
sed 's/^X//' << 'SHAR_EOF' >> 'patch-2.2.8' &&

X printk("alpha_fp_emul: unexpected function code %#lx at %#lx\n",
X func & 0x3f, pc);
@@ -247,7 +259,7 @@
X
X /* Update hardware control register */
X fpcr &= (~FPCR_MASK | FPCR_DYN_MASK);
- fpcr |= ieee_swcr_to_fpcr(fpcw | (~fpcw&IEEE_STATUS_MASK)>>16);
+ fpcr |= ieee_swcr_to_fpcr(fpcw);
X wrfpcr(fpcr);
X
X /* Do we generate a signal? */
@@ -319,6 +331,7 @@
X write_mask &= ~(1UL << rc);
X break;
X
+ case OPC_FLTC:
X case OPC_FLTV:
X case OPC_FLTI:
X case OPC_FLTL:
@@ -326,13 +339,11 @@
X break;
X }
X if (!write_mask) {
- if ((opcode == OPC_FLTI || opcode == OPC_FLTL)
- && alpha_fp_emul(trigger_pc))
- {
- /* re-execute insns in trap-shadow: */
- regs->pc = trigger_pc + 4;
- MOD_DEC_USE_COUNT;
- return 1;
+ if (alpha_fp_emul(trigger_pc)) {
+ /* re-execute insns in trap-shadow: */
+ regs->pc = trigger_pc + 4;
+ MOD_DEC_USE_COUNT;
+ return 1;
X }
X break;
X }
diff -u --recursive --new-file v2.2.7/linux/arch/alpha/math-emu/ieee-math.c linux/arch/alpha/math-emu/ieee-math.c
--- v2.2.7/linux/arch/alpha/math-emu/ieee-math.c Wed Sep 9 14:51:04 1998
+++ linux/arch/alpha/math-emu/ieee-math.c Mon May 10 09:55:21 1999
@@ -22,6 +22,7 @@
X * functions are used on exceptional numbers only (well, assuming you
X * don't turn on the "trap on inexact"...).
X */
+#include <linux/sched.h>
X #include "ieee-math.h"
X
X #define STICKY_S 0x20000000 /* both in longword 0 of fraction */
@@ -1339,4 +1340,42 @@
X normalize(&op_c);
X op_c.e -= 9; /* remove excess exp from original shift */
X return round_t_ieee(f, &op_c, c);
+}
+
+/*
+ * Sqrt a = b, where a and b are ieee s-floating numbers. "f"
+ * contains the rounding mode etc.
+ */
+unsigned long
+ieee_SQRTS (int f, unsigned long a, unsigned long *b)
+{
+ fpclass_t a_type;
+ EXTENDED op_a, op_b;
+
+ *b = IEEE_QNaN;
+ a_type = extend_ieee(a, &op_a, SINGLE);
+ if (op_a.s == 0) {
+ /* FIXME -- handle positive denormals. */
+ send_sig(SIGFPE, current, 1);
+ }
+ return FPCR_INV;
+}
+
+/*
+ * Sqrt a = b, where a and b are ieee t-floating numbers. "f"
+ * contains the rounding mode etc.
+ */
+unsigned long
+ieee_SQRTT (int f, unsigned long a, unsigned long *b)
+{
+ fpclass_t a_type;
+ EXTENDED op_a, op_b;
+
+ *b = IEEE_QNaN;
+ a_type = extend_ieee(a, &op_a, DOUBLE);
+ if (op_a.s == 0) {
+ /* FIXME -- handle positive denormals. */
+ send_sig(SIGFPE, current, 1);
+ }
+ return FPCR_INV;
X }
diff -u --recursive --new-file v2.2.7/linux/arch/alpha/math-emu/ieee-math.h linux/arch/alpha/math-emu/ieee-math.h
--- v2.2.7/linux/arch/alpha/math-emu/ieee-math.h Thu Dec 21 22:22:05 1995
+++ linux/arch/alpha/math-emu/ieee-math.h Mon May 10 09:55:21 1999
@@ -48,5 +48,7 @@
X unsigned long *c);
X extern unsigned long ieee_DIVT (int rm, unsigned long a, unsigned long b,
X unsigned long *c);
+extern unsigned long ieee_SQRTS (int rm, unsigned long a, unsigned long *b);
+extern unsigned long ieee_SQRTT (int rm, unsigned long a, unsigned long *b);
X
X #endif /* __ieee_math_h__ */
diff -u --recursive --new-file v2.2.7/linux/arch/arm/kernel/sys_arm.c linux/arch/arm/kernel/sys_arm.c
--- v2.2.7/linux/arch/arm/kernel/sys_arm.c Tue Dec 22 14:16:53 1998
+++ linux/arch/arm/kernel/sys_arm.c Sat May 8 11:14:01 1999
@@ -77,12 +77,14 @@
X goto out;
X if (!(a.flags & MAP_ANONYMOUS)) {
X error = -EBADF;
- if (a.fd >= current->files->max_fds ||
- !(file = current->files->fd[a.fd]))
+ file = fget(a.fd);
+ if (!file)
X goto out;
X }
X a.flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE);
X error = do_mmap(file, a.addr, a.len, a.prot, a.flags, a.offset);
+ if (file)
+ fput(file);
X out:
X unlock_kernel();
X return error;
diff -u --recursive --new-file v2.2.7/linux/arch/arm/mm/Makefile linux/arch/arm/mm/Makefile
--- v2.2.7/linux/arch/arm/mm/Makefile Fri May 8 23:14:42 1998
+++ linux/arch/arm/mm/Makefile Sat May 8 11:06:56 1999
@@ -8,37 +8,30 @@
X # Note 2! The CFLAGS definition is now in the main makefile...
X
X all: lib first_rule
-ifeq ($(MACHINE),a5k)
-MMARCH=arc
-else
-MMARCH=$(MACHINE)
-endif
X
X O_TARGET := mm.o
-O_OBJS := init.o extable.o fault-$(PROCESSOR).o mm-$(MMARCH).o
+O_OBJS := init.o extable.o fault-$(PROCESSOR).o small_page.o
X
X ifeq ($(PROCESSOR),armo)
X O_OBJS += proc-arm2,3.o
X endif
X
X ifeq ($(PROCESSOR),armv)
- O_OBJS += small_page.o proc-arm6,7.o proc-sa110.o
+ O_OBJS += mm-$(MACHINE).o proc-arm6,7.o proc-sa110.o ioremap.o
X endif
X
X include $(TOPDIR)/Rules.make
X
-proc-arm2,3.o: ../lib/constants.h
-proc-arm6,7.o: ../lib/constants.h
-proc-sa110.o: ../lib/constants.h
-
X %.o: %.S
-ifneq ($(CONFIG_BINUTILS_NEW),y)
- $(CC) $(CFLAGS) -D__ASSEMBLY__ -E $< | tr ';$$' '\n#' > ..$@.tmp.s
- $(CC) $(CFLAGS:-pipe=) -c -o $@ ..$@.tmp.s
- $(RM) ..$@.tmp.s
-else
X $(CC) $(CFLAGS) -D__ASSEMBLY__ -c -o $@ $<
-endif
X
X .PHONY: lib
X lib:; @$(MAKE) -C ../lib constants.h
+
+# Special dependencies
+fault-armv.o: fault-common.c
+fault-armo.o: fault-common.c
+proc-arm2,3.o: ../lib/constants.h
+proc-arm6,7.o: ../lib/constants.h
+proc-sa110.o: ../lib/constants.h
+
diff -u --recursive --new-file v2.2.7/linux/arch/arm/mm/fault-armo.c linux/arch/arm/mm/fault-armo.c
--- v2.2.7/linux/arch/arm/mm/fault-armo.c Tue Dec 22 14:16:53 1998
+++ linux/arch/arm/mm/fault-armo.c Sat May 8 11:06:56 1999
@@ -1,11 +1,10 @@
X /*
- * linux/arch/arm/mm/fault.c
+ * linux/arch/arm/mm/fault-armo.c
X *
X * Copyright (C) 1995 Linus Torvalds
- * Modifications for ARM processor (c) 1995, 1996 Russell King
+ * Modifications for ARM processor (c) 1995-1999 Russell King
X */
X
-#include <linux/config.h>
X #include <linux/signal.h>
X #include <linux/sched.h>
X #include <linux/kernel.h>
@@ -15,8 +14,7 @@
X #include <linux/ptrace.h>
X #include <linux/mman.h>
X #include <linux/mm.h>
-#include <linux/smp.h>
-#include <linux/smp_lock.h>
+#include <linux/interrupt.h>
X
X #include <asm/system.h>
X #include <asm/uaccess.h>
@@ -27,35 +25,32 @@
X #define FAULT_CODE_WRITE 0x02
X #define FAULT_CODE_USER 0x01
X
-struct pgtable_cache_struct quicklists;
+#define DO_COW(m) ((m) & (FAULT_CODE_WRITE|FAULT_CODE_FORCECOW))
+#define READ_FAULT(m) (!((m) & FAULT_CODE_WRITE))
X
-void __bad_pmd(pmd_t *pmd)
+#include "fault-common.c"
+
+static void *alloc_table(int size, int prio)
X {
- printk("Bad pmd in pte_alloc: %08lx\n", pmd_val(*pmd));
-#ifdef CONFIG_DEBUG_ERRORS
- __backtrace();
-#endif
- set_pmd(pmd, mk_pmd(BAD_PAGETABLE));
+ if (size != 128)
+ printk("invalid table size\n");
+ return (void *)get_page_8k(prio);
X }
X
-void __bad_pmd_kernel(pmd_t *pmd)
+void free_table(void *table)
X {
- printk("Bad pmd in pte_alloc_kernel: %08lx\n", pmd_val(*pmd));
-#ifdef CONFIG_DEBUG_ERRORS
- __backtrace();
-#endif
- set_pmd(pmd, mk_pmd(BAD_PAGETABLE));
+ free_page_8k((unsigned long)table);
X }
X
X pgd_t *get_pgd_slow(void)
X {
- pgd_t *pgd = (pgd_t *) kmalloc(PTRS_PER_PGD * BYTES_PER_PTR, GFP_KERNEL);
+ pgd_t *pgd = (pgd_t *)alloc_table(PTRS_PER_PGD * BYTES_PER_PTR, GFP_KERNEL);
X pgd_t *init;
-
+
X if (pgd) {
X init = pgd_offset(&init_mm, 0);
- memzero (pgd, USER_PTRS_PER_PGD * BYTES_PER_PTR);
- memcpy (pgd + USER_PTRS_PER_PGD, init + USER_PTRS_PER_PGD,
+ memzero(pgd, USER_PTRS_PER_PGD * BYTES_PER_PTR);
+ memcpy(pgd + USER_PTRS_PER_PGD, init + USER_PTRS_PER_PGD,
X (PTRS_PER_PGD - USER_PTRS_PER_PGD) * BYTES_PER_PTR);
X }
X return pgd;
@@ -65,17 +60,17 @@
X {
X pte_t *pte;
X
- pte = (pte_t *) kmalloc (PTRS_PER_PTE * BYTES_PER_PTR, GFP_KERNEL);
+ pte = (pte_t *)alloc_table(PTRS_PER_PTE * BYTES_PER_PTR, GFP_KERNEL);
X if (pmd_none(*pmd)) {
X if (pte) {
- memzero (pte, PTRS_PER_PTE * BYTES_PER_PTR);
+ memzero(pte, PTRS_PER_PTE * BYTES_PER_PTR);
X set_pmd(pmd, mk_pmd(pte));
X return pte + offset;
X }
X set_pmd(pmd, mk_pmd(BAD_PAGETABLE));
X return NULL;
X }
- kfree (pte);
+ free_table((void *)pte);
X if (pmd_bad(*pmd)) {
X __bad_pmd(pmd);
X return NULL;
@@ -83,126 +78,22 @@
X return (pte_t *) pmd_page(*pmd) + offset;
X }
X
-extern void die_if_kernel(char *msg, struct pt_regs *regs, unsigned int err, unsigned int ret);
-
-static void kernel_page_fault (unsigned long addr, int mode, struct pt_regs *regs,
- struct task_struct *tsk, struct mm_struct *mm)
-{
- /*
- * Oops. The kernel tried to access some bad page. We'll have to
- * terminate things with extreme prejudice.
- */
- pgd_t *pgd;
- if (addr < PAGE_SIZE)
- printk (KERN_ALERT "Unable to handle kernel NULL pointer dereference");
- else
- printk (KERN_ALERT "Unable to handle kernel paging request");
- printk (" at virtual address %08lx\n", addr);
- printk (KERN_ALERT "current->tss.memmap = %08lX\n", tsk->tss.memmap);
- pgd = pgd_offset (mm, addr);
- printk (KERN_ALERT "*pgd = %08lx", pgd_val (*pgd));
- if (!pgd_none (*pgd)) {
- pmd_t *pmd;
- pmd = pmd_offset (pgd, addr);
- printk (", *pmd = %08lx", pmd_val (*pmd));
- if (!pmd_none (*pmd))
- printk (", *pte = %08lx", pte_val (*pte_offset (pmd, addr)));
- }
- printk ("\n");
- die_if_kernel ("Oops", regs, mode, SIGKILL);
- do_exit (SIGKILL);
-}
-
-static void
-handle_dataabort (unsigned long addr, int mode, struct pt_regs *regs)
-{
- struct task_struct *tsk;
- struct mm_struct *mm;
- struct vm_area_struct *vma;
- unsigned long fixup;
-
- lock_kernel();
- tsk = current;
- mm = tsk->mm;
-
- down(&mm->mmap_sem);
- vma = find_vma (mm, addr);
- if (!vma)
- goto bad_area;
- if (addr >= vma->vm_start)
- goto good_area;
- if (!(vma->vm_flags & VM_GROWSDOWN) || expand_stack (vma, addr))
- goto bad_area;
-
- /*
- * Ok, we have a good vm_area for this memory access, so
- * we can handle it..
- */
-good_area:
- if (!(mode & FAULT_CODE_WRITE)) { /* write? */
- if (!(vma->vm_flags & (VM_READ|VM_EXEC)))
- goto bad_area;
- } else {
- if (!(vma->vm_flags & VM_WRITE))
- goto bad_area;
- }
- handle_mm_fault (tsk, vma, addr, mode & (FAULT_CODE_WRITE|FAULT_CODE_FORCECOW));
- up(&mm->mmap_sem);
- goto out;
-
- /*
- * Something tried to access memory that isn't in our memory map..
- * Fix it, but check if it's kernel or user first..
- */
-bad_area:
- up(&mm->mmap_sem);
- if (mode & FAULT_CODE_USER) {
-//extern int console_loglevel;
-//cli();
- tsk->tss.error_code = mode;
- tsk->tss.trap_no = 14;
-//console_loglevel = 9;
- printk ("%s: memory violation at pc=0x%08lx, lr=0x%08lx (bad address=0x%08lx, code %d)\n",
- tsk->comm, regs->ARM_pc, regs->ARM_lr, addr, mode);
-//#ifdef DEBUG
- show_regs (regs);
- c_backtrace (regs->ARM_fp, 0);
-//#endif
- force_sig(SIGSEGV, tsk);
-//while (1);
- goto out;
- }
-
- /* Are we prepared to handle this kernel fault? */
- if ((fixup = search_exception_table(instruction_pointer(regs))) != 0) {
- printk(KERN_DEBUG "%s: Exception at [<%lx>] addr=%lx (fixup: %lx)\n",
- tsk->comm, regs->ARM_pc, addr, fixup);
- regs->ARM_pc = fixup;
- goto out;
- }
-
-
- kernel_page_fault (addr, mode, regs, tsk, mm);
-out:
- unlock_kernel();
-}
-
X /*
X * Handle a data abort. Note that we have to handle a range of addresses
X * on ARM2/3 for ldm. If both pages are zero-mapped, then we have to force
- * a copy-on-write
+ * a copy-on-write. However, on the second page, we always force COW.
X */
X asmlinkage void
-do_DataAbort (unsigned long min_addr, unsigned long max_addr, int mode, struct pt_regs *regs)
+do_DataAbort(unsigned long min_addr, unsigned long max_addr, int mode, struct pt_regs *regs)
X {
- handle_dataabort (min_addr, mode, regs);
+ do_page_fault(min_addr, mode, regs);
X
X if ((min_addr ^ max_addr) >> PAGE_SHIFT)
- handle_dataabort (max_addr, mode | FAULT_CODE_FORCECOW, regs);
+ do_page_fault(max_addr, mode | FAULT_CODE_FORCECOW, regs);
X }
X
X asmlinkage int
-do_PrefetchAbort (unsigned long addr, int mode, struct pt_regs *regs)
+do_PrefetchAbort(unsigned long addr, struct pt_regs *regs)
X {
X #if 0
X if (the memc mapping for this page exists - can check now...) {
@@ -210,6 +101,6 @@
X return 0;
X }
X #endif
- handle_dataabort (addr, mode, regs);
+ do_page_fault(addr, FAULT_CODE_USER|FAULT_CODE_PREFETCH, regs);
X return 1;
X }
diff -u --recursive --new-file v2.2.7/linux/arch/arm/mm/fault-armv.c linux/arch/arm/mm/fault-armv.c
--- v2.2.7/linux/arch/arm/mm/fault-armv.c Tue Dec 22 14:16:53 1998
+++ linux/arch/arm/mm/fault-armv.c Sat May 8 11:06:56 1999
@@ -1,10 +1,11 @@
X /*
- * linux/arch/arm/mm/fault.c
+ * linux/arch/arm/mm/fault-armv.c
X *
X * Copyright (C) 1995 Linus Torvalds
- * Modifications for ARM processor (c) 1995, 1996 Russell King
+ * Modifications for ARM processor (c) 1995-1999 Russell King
X */
X
+#include <linux/config.h>
X #include <linux/signal.h>
X #include <linux/sched.h>
X #include <linux/kernel.h>
@@ -14,43 +15,37 @@
X #include <linux/ptrace.h>
X #include <linux/mman.h>
X #include <linux/mm.h>
-#include <linux/smp.h>
-#include <linux/smp_lock.h>
+#include <linux/interrupt.h>
+#include <linux/proc_fs.h>
+#include <linux/init.h>
X
X #include <asm/system.h>
X #include <asm/uaccess.h>
X #include <asm/pgtable.h>
+#include <asm/unaligned.h>
X
X #define FAULT_CODE_READ 0x02
X #define FAULT_CODE_USER 0x01
X
-struct pgtable_cache_struct quicklists;
+#define DO_COW(m) (!((m) & FAULT_CODE_READ))
+#define READ_FAULT(m) ((m) & FAULT_CODE_READ)
X
-void __bad_pmd(pmd_t *pmd)
-{
- printk("Bad pmd in pte_alloc: %08lx\n", pmd_val(*pmd));
- set_pmd(pmd, mk_user_pmd(BAD_PAGETABLE));
-}
-
-void __bad_pmd_kernel(pmd_t *pmd)
-{
- printk("Bad pmd in pte_alloc: %08lx\n", pmd_val(*pmd));
- set_pmd(pmd, mk_kernel_pmd(BAD_PAGETABLE));
-}
+#include "fault-common.c"
X
X pgd_t *get_pgd_slow(void)
X {
X /*
X * need to get a 16k page for level 1
X */
- pgd_t *pgd = (pgd_t *) __get_free_pages(GFP_KERNEL,2);
+ pgd_t *pgd = (pgd_t *)__get_free_pages(GFP_KERNEL,2);
X pgd_t *init;
-
+
X if (pgd) {
X init = pgd_offset(&init_mm, 0);
- memzero ((void *)pgd, USER_PTRS_PER_PGD * BYTES_PER_PTR);
- memcpy (pgd + USER_PTRS_PER_PGD, init + USER_PTRS_PER_PGD,
+ memzero(pgd, USER_PTRS_PER_PGD * BYTES_PER_PTR);
+ memcpy(pgd + USER_PTRS_PER_PGD, init + USER_PTRS_PER_PGD,
X (PTRS_PER_PGD - USER_PTRS_PER_PGD) * BYTES_PER_PTR);
+ clean_cache_area(pgd, PTRS_PER_PGD * BYTES_PER_PTR);
X }
X return pgd;
X }
@@ -59,17 +54,19 @@
X {
X pte_t *pte;
X
- pte = (pte_t *) get_small_page(GFP_KERNEL);
+ pte = (pte_t *)get_page_2k(GFP_KERNEL);
X if (pmd_none(*pmd)) {
X if (pte) {
- memzero (pte, PTRS_PER_PTE * BYTES_PER_PTR);
+ memzero(pte, 2 * PTRS_PER_PTE * BYTES_PER_PTR);
+ clean_cache_area(pte, PTRS_PER_PTE * BYTES_PER_PTR);
+ pte += PTRS_PER_PTE;
X set_pmd(pmd, mk_user_pmd(pte));
X return pte + offset;
X }
X set_pmd(pmd, mk_user_pmd(BAD_PAGETABLE));
X return NULL;
X }
- free_small_page ((unsigned long) pte);
+ free_page_2k((unsigned long)pte);
X if (pmd_bad(*pmd)) {
X __bad_pmd(pmd);
X return NULL;
@@ -81,17 +78,19 @@
X {
X pte_t *pte;
X
- pte = (pte_t *) get_small_page(GFP_KERNEL);
+ pte = (pte_t *)get_page_2k(GFP_KERNEL);
X if (pmd_none(*pmd)) {
X if (pte) {
- memzero (pte, PTRS_PER_PTE * BYTES_PER_PTR);
+ memzero(pte, 2 * PTRS_PER_PTE * BYTES_PER_PTR);
+ clean_cache_area(pte, PTRS_PER_PTE * BYTES_PER_PTR);
+ pte += PTRS_PER_PTE;
X set_pmd(pmd, mk_kernel_pmd(pte));
X return pte + offset;
X }
X set_pmd(pmd, mk_kernel_pmd(BAD_PAGETABLE));
X return NULL;
X }
- free_small_page ((unsigned long) pte);
+ free_page_2k((unsigned long)pte);
X if (pmd_bad(*pmd)) {
X __bad_pmd_kernel(pmd);
X return NULL;
@@ -99,10 +98,8 @@
X return (pte_t *) pmd_page(*pmd) + offset;
X }
X
-extern void die_if_kernel(char *msg, struct pt_regs *regs, unsigned int err, unsigned int ret);
-
X #ifdef DEBUG
-static int sp_valid (unsigned long *sp)
+static int sp_valid(unsigned long *sp)
X {
X unsigned long addr = (unsigned long) sp;
X
@@ -114,187 +111,371 @@
X }
X #endif
X
-static void kernel_page_fault (unsigned long addr, int mode, struct pt_regs *regs,
- struct task_struct *tsk, struct mm_struct *mm)
+#ifdef CONFIG_ALIGNMENT_TRAP
+/*
+ * 32-bit misaligned trap handler (c) 1998 San Mehat (CCC) -July 1998
+ * /proc/sys/debug/alignment, modified and integrated into
+ * Linux 2.1 by Russell King
+ *
+ * NOTE!!! This is not portable onto the ARM6/ARM7 processors yet. Also,
+ * it seems to give a severe performance impact (1 abort/ms - NW runs at
+ * ARM6 speeds) with GCC 2.7.2.2 - needs checking with a later GCC/EGCS.
+ *
+ * IMHO, I don't think that the trap handler is advantageous on ARM6,7
+ * processors (they'll run like an ARM3). We'll see.
+ */
+#define CODING_BITS(i) (i & 0x0e000000)
+
+#define LDST_I_BIT(i) (i & (1 << 26)) /* Immediate constant */
+#define LDST_P_BIT(i) (i & (1 << 24)) /* Preindex */
+#define LDST_U_BIT(i) (i & (1 << 23)) /* Add offset */
+#define LDST_W_BIT(i) (i & (1 << 21)) /* Writeback */
+#define LDST_L_BIT(i) (i & (1 << 20)) /* Load */
+
+#define LDSTH_I_BIT(i) (i & (1 << 22)) /* half-word immed */
+#define LDM_S_BIT(i) (i & (1 << 22)) /* write CPSR from SPSR */
+
+#define RN_BITS(i) ((i >> 16) & 15) /* Rn */
+#define RD_BITS(i) ((i >> 12) & 15) /* Rd */
+#define RM_BITS(i) (i & 15) /* Rm */
+
+#define REGMASK_BITS(i) (i & 0xffff)
+#define OFFSET_BITS(i) (i & 0x0fff)
+
+#define IS_SHIFT(i) (i & 0x0ff0)
+#define SHIFT_BITS(i) ((i >> 7) & 0x1f)
+#define SHIFT_TYPE(i) (i & 0x60)
+#define SHIFT_LSL 0x00
+#define SHIFT_LSR 0x20
+#define SHIFT_ASR 0x40
+#define SHIFT_RORRRX 0x60
+
+static unsigned long ai_user;
+static unsigned long ai_sys;
+static unsigned long ai_skipped;
+static unsigned long ai_half;
+static unsigned long ai_word;
+static unsigned long ai_multi;
+
+static int proc_alignment_read(char *page, char **start, off_t off,
+ int count, int *eof, void *data)
X {
- /*
- * Oops. The kernel tried to access some bad page. We'll have to
- * terminate things with extreme prejudice.
- */
- pgd_t *pgd;
- if (addr < PAGE_SIZE)
- printk (KERN_ALERT "Unable to handle kernel NULL pointer dereference");
- else
- printk (KERN_ALERT "Unable to handle kernel paging request");
- printk (" at virtual address %08lx\n", addr);
- printk (KERN_ALERT "current->tss.memmap = %08lX\n", tsk->tss.memmap);
- pgd = pgd_offset (mm, addr);
- printk (KERN_ALERT "*pgd = %08lx", pgd_val (*pgd));
- if (!pgd_none (*pgd)) {
- pmd_t *pmd;
- pmd = pmd_offset (pgd, addr);
- printk (", *pmd = %08lx", pmd_val (*pmd));
- if (!pmd_none (*pmd))
- printk (", *pte = %08lx", pte_val (*pte_offset (pmd, addr)));
- }
- printk ("\n");
- die_if_kernel ("Oops", regs, mode, SIGKILL);
- do_exit (SIGKILL);
+ char *p = page;
+ int len;
+
+ p += sprintf(p, "User:\t\t%li\n", ai_user);
+ p += sprintf(p, "System:\t\t%li\n", ai_sys);
+ p += sprintf(p, "Skipped:\t%li\n", ai_skipped);
+ p += sprintf(p, "Half:\t\t%li\n", ai_half);
+ p += sprintf(p, "Word:\t\t%li\n", ai_word);
+ p += sprintf(p, "Multi:\t\t%li\n", ai_multi);
+
+ len = (p - page) - off;
+ if (len < 0)
+ len = 0;
+
+ *eof = (len <= count) ? 1 : 0;
+ *start = page + off;
+
+ return len;
X }
X
-static void page_fault (unsigned long addr, int mode, struct pt_regs *regs)
+/*
+ * This needs to be done after sysctl_init, otherwise sys/
+ * will be overwritten.
+ */
+void __init alignment_init(void)
X {
- struct task_struct *tsk;
- struct mm_struct *mm;
- struct vm_area_struct *vma;
- unsigned long fixup;
-
- lock_kernel();
- tsk = current;
- mm = tsk->mm;
-
- down(&mm->mmap_sem);
- vma = find_vma (mm, addr);
- if (!vma)
- goto bad_area;
- if (vma->vm_start <= addr)
- goto good_area;
- if (!(vma->vm_flags & VM_GROWSDOWN) || expand_stack (vma, addr))
- goto bad_area;
+ struct proc_dir_entry *e;
X
- /*
- * Ok, we have a good vm_area for this memory access, so
- * we can handle it..
- */
-good_area:
- if (mode & FAULT_CODE_READ) { /* read? */
- if (!(vma->vm_flags & (VM_READ|VM_EXEC)))
- goto bad_area;
- } else {
- if (!(vma->vm_flags & VM_WRITE))
- goto bad_area;
+ e = create_proc_entry("sys/debug/alignment", S_IFREG | S_IRUGO, NULL);
+
+ if (e)
+ e->read_proc = proc_alignment_read;
+}
+
+static int
+do_alignment_exception(struct pt_regs *regs)
+{
+ unsigned int instr, rd, rn, correction, nr_regs, regbits;
+ unsigned long eaddr;
+ union { unsigned long un; signed long sn; } offset;
+
+ if (user_mode(regs)) {
+ set_cr(cr_no_alignment);
+ ai_user += 1;
+ return 0;
X }
- handle_mm_fault (tsk, vma, addr & PAGE_MASK, !(mode & FAULT_CODE_READ));
- up(&mm->mmap_sem);
- goto out;
X
- /*
- * Something tried to access memory that isn't in our memory map..
- * Fix it, but check if it's kernel or user first..
- */
-bad_area:
- up(&mm->mmap_sem);
- if (mode & FAULT_CODE_USER) {
- tsk->tss.error_code = mode;
- tsk->tss.trap_no = 14;
- printk ("%s: memory violation at pc=0x%08lx, lr=0x%08lx (bad address=0x%08lx, code %d)\n",
- tsk->comm, regs->ARM_pc, regs->ARM_lr, addr, mode);
-#ifdef DEBUG
- {
- unsigned int i, j;
- unsigned long *sp = (unsigned long *) (regs->ARM_sp - 128);
- for (j = 0; j < 20 && sp_valid (sp); j++) {
- printk ("%p: ", sp);
- for (i = 0; i < 8 && sp_valid (sp); i += 1, sp++)
- printk ("%08lx ", *sp);
- printk ("\n");
+ ai_sys += 1;
+
+ instr = *(unsigned long *)instruction_pointer(regs);
+ correction = 4; /* sometimes 8 on ARMv3 */
+ regs->ARM_pc += correction + 4;
+
+ rd = RD_BITS(instr);
+ rn = RN_BITS(instr);
+ eaddr = regs->uregs[rn];
+
+ switch(CODING_BITS(instr)) {
+ case 0x00000000:
+ if ((instr & 0x0ff00ff0) == 0x01000090) {
+ ai_skipped += 1;
+ printk(KERN_ERR "Unaligned trap: not handling swp instruction\n");
+ return 1;
+ }
+
+ if (((instr & 0x0e000090) == 0x00000090) && (instr & 0x60) != 0) {
+ ai_half += 1;
+ if (LDSTH_I_BIT(instr))
+ offset.un = (instr & 0xf00) >> 4 | (instr & 15);
+ else
+ offset.un = regs->uregs[RM_BITS(instr)];
+
+ if (LDST_P_BIT(instr)) {
+ if (LDST_U_BIT(instr))
+ eaddr += offset.un;
+ else
+ eaddr -= offset.un;
X }
+
+ if (LDST_L_BIT(instr))
+ regs->uregs[rd] = get_unaligned((unsigned short *)eaddr);
+ else
+ put_unaligned(regs->uregs[rd], (unsigned short *)eaddr);
+
+ /* signed half-word? */
+ if (instr & 0x40)
+ regs->uregs[rd] = (long)((short) regs->uregs[rd]);
+
+ if (!LDST_P_BIT(instr)) {
+ if (LDST_U_BIT(instr))
+ eaddr += offset.un;
+ else
+ eaddr -= offset.un;
+ regs->uregs[rn] = eaddr;
+ } else if (LDST_W_BIT(instr))
+ regs->uregs[rn] = eaddr;
+ break;
X }
- show_regs (regs);
- c_backtrace (regs->ARM_fp, regs->ARM_cpsr);
-#endif
- force_sig(SIGSEGV, tsk);
- goto out;
- }
X
- /* Are we prepared to handle this kernel fault? */
- if ((fixup = search_exception_table(instruction_pointer(regs))) != 0) {
- printk(KERN_DEBUG "%s: Exception at [<%lx>] addr=%lx (fixup: %lx)\n",
- tsk->comm, regs->ARM_pc, addr, fixup);
- regs->ARM_pc = fixup;
- goto out;
+ default:
+ ai_skipped += 1;
+ panic("Alignment trap: not handling instruction %08X at %08lX",
+ instr, regs->ARM_pc - correction - 4);
+ break;
+
+ case 0x04000000:
+ offset.un = OFFSET_BITS(instr);
+ goto ldr_str;
+
+ case 0x06000000:
+ offset.un = regs->uregs[RM_BITS(instr)];
+
+ if (IS_SHIFT(instr)) {
+ unsigned int shiftval = SHIFT_BITS(instr);
+
+ switch(SHIFT_TYPE(instr)) {
+ case SHIFT_LSL:
+ offset.un <<= shiftval;
+ break;
+
+ case SHIFT_LSR:
+ offset.un >>= shiftval;
+ break;
+
+ case SHIFT_ASR:
+ offset.sn >>= shiftval;
+ break;
+
+ case SHIFT_RORRRX:
+ if (shiftval == 0) {
+ offset.un >>= 1;
+ if (regs->ARM_cpsr & CC_C_BIT)
+ offset.un |= 1 << 31;
+ } else
+ offset.un = offset.un >> shiftval |
+ offset.un << (32 - shiftval);
+ break;
+ }
+ }
+
+ ldr_str:
+ ai_word += 1;
+ if (LDST_P_BIT(instr)) {
+ if (LDST_U_BIT(instr))
+ eaddr += offset.un;
+ else
+ eaddr -= offset.un;
+ } else {
+ if (LDST_W_BIT(instr)) {
+ printk(KERN_ERR "Not handling ldrt/strt correctly\n");
+ return 1;
+ }
+ }
+
+ if (LDST_L_BIT(instr)) {
+ regs->uregs[rd] = get_unaligned((unsigned long *)eaddr);
+ if (rd == 15)
+ correction = 0;
+ } else
+ put_unaligned(regs->uregs[rd], (unsigned long *)eaddr);
+
+ if (!LDST_P_BIT(instr)) {
+ if (LDST_U_BIT(instr))
+ eaddr += offset.un;
+ else
+ eaddr -= offset.un;
+
+ regs->uregs[rn] = eaddr;
+ } else if (LDST_W_BIT(instr))
+ regs->uregs[rn] = eaddr;
+ break;
+
+ case 0x08000000:
+ if (LDM_S_BIT(instr))
+ panic("Alignment trap: not handling LDM with s-bit\n");
+ ai_multi += 1;
+
+ for (regbits = REGMASK_BITS(instr), nr_regs = 0; regbits; regbits >>= 1)
+ nr_regs += 4;
+
+ if (!LDST_U_BIT(instr))
+ eaddr -= nr_regs;
+
+ if ((LDST_U_BIT(instr) == 0 && LDST_P_BIT(instr) == 0) ||
+ (LDST_U_BIT(instr) && LDST_P_BIT(instr)))
+ eaddr += 4;
+
+ for (regbits = REGMASK_BITS(instr), rd = 0; regbits; regbits >>= 1, rd += 1)
+ if (regbits & 1) {
+ if (LDST_L_BIT(instr)) {
+ regs->uregs[rd] = get_unaligned((unsigned long *)eaddr);
+ if (rd == 15)
+ correction = 0;
+ } else
+ put_unaligned(regs->uregs[rd], (unsigned long *)eaddr);
+ eaddr += 4;
+ }
+
+ if (LDST_W_BIT(instr)) {
+ if (LDST_P_BIT(instr) && !LDST_U_BIT(instr))
+ eaddr -= nr_regs;
+ else if (LDST_P_BIT(instr))
+ eaddr -= 4;
+ else if (!LDST_U_BIT(instr))
+ eaddr -= 4 + nr_regs;
+ regs->uregs[rn] = eaddr;
+ }
+ break;
X }
X
- kernel_page_fault (addr, mode, regs, tsk, mm);
-out:
- unlock_kernel();
+ regs->ARM_pc -= correction;
+
+ return 0;
X }
X
-/*
- * Handle a data abort. Note that we have to handle a range of addresses
- * on ARM2/3 for ldm. If both pages are zero-mapped, then we have to force
- * a copy-on-write
- */
+#endif
+
X asmlinkage void
-do_DataAbort (unsigned long addr, int fsr, int error_code, struct pt_regs *regs)
+do_DataAbort(unsigned long addr, int fsr, int error_code, struct pt_regs *regs)
X {
X if (user_mode(regs))
X error_code |= FAULT_CODE_USER;
+
X #define DIE(signr,nam)\
X force_sig(signr, current);\
- die_if_kernel(nam, regs, fsr, signr);\
- break;
+ die(nam, regs, fsr);\
+ do_exit(signr);\
+ break
X
X switch (fsr & 15) {
- case 2:
- DIE(SIGKILL, "Terminal exception")
+ /*
+ * 0 - vector exception
+ */
X case 0:
- DIE(SIGSEGV, "Vector exception")
+ force_sig(SIGSEGV, current);
+ if (!user_mode(regs)) {
+ die("vector exception", regs, fsr);
+ do_exit(SIGSEGV);
+ }
+ break;
+
+ /*
+ * 15 - permission fault on page
+ * 5 - page-table entry descriptor fault
+ * 7 - first-level descriptor fault
+ */
+ case 15: case 5: case 7:
+ do_page_fault(addr, error_code, regs);
+ break;
+
+ /*
+ * 13 - permission fault on section
+ */
+ case 13:
+ force_sig(SIGSEGV, current);
+ if (!user_mode(regs)) {
+ die("section permission fault", regs, fsr);
+ do_exit(SIGSEGV);
+ } else {
+#ifdef CONFIG_DEBUG_USER
+ printk("%s: permission fault on section, "
+ "address=0x%08lx, code %d\n",
+ current->comm, addr, error_code);
+#ifdef DEBUG
+ {
+ unsigned int i, j;
+ unsigned long *sp;
+
+ sp = (unsigned long *) (regs->ARM_sp - 128);
+ for (j = 0; j < 20 && sp_valid(sp); j++) {
+ printk("%p: ", sp);
+ for (i = 0; i < 8 && sp_valid(sp); i += 1, sp++)
+ printk("%08lx ", *sp);
+ printk("\n");
+ }
+ show_regs(regs);
+ c_backtrace(regs->ARM_fp, regs->ARM_cpsr);
+ }
+#endif
+#endif
+ }
+ break;
+
X case 1:
X case 3:
- DIE(SIGBUS, "Alignment exception")
+#ifdef CONFIG_ALIGNMENT_TRAP
+ if (!do_alignment_exception(regs))
+ break;
+#endif
+ /*
+ * this should never happen
+ */
+ DIE(SIGBUS, "Alignment exception");
+ break;
+
+ case 2:
+ DIE(SIGKILL, "Terminal exception");
X case 12:
X case 14:
- DIE(SIGBUS, "External abort on translation")
+ DIE(SIGBUS, "External abort on translation");
X case 9:
X case 11:
- DIE(SIGSEGV, "Domain fault")
- case 13:/* permission fault on section */
-#ifdef DEBUG
- {
- unsigned int i, j;
- unsigned long *sp;
-
- printk ("%s: section permission fault (bad address=0x%08lx, code %d)\n",
- current->comm, addr, error_code);
- sp = (unsigned long *) (regs->ARM_sp - 128);
- for (j = 0; j < 20 && sp_valid (sp); j++) {
- printk ("%p: ", sp);
- for (i = 0; i < 8 && sp_valid (sp); i += 1, sp++)
- printk ("%08lx ", *sp);
- printk ("\n");
- }
- show_regs (regs);
- c_backtrace(regs->ARM_fp, regs->ARM_cpsr);
- }
-#endif
- DIE(SIGSEGV, "Permission fault")
+ DIE(SIGSEGV, "Domain fault");
X
- case 15:/* permission fault on page */
- case 5: /* page-table entry descriptor fault */
- case 7: /* first-level descriptor fault */
- page_fault (addr, error_code, regs);
- break;
X case 4:
X case 6:
- DIE(SIGBUS, "External abort on linefetch")
+ DIE(SIGBUS, "External abort on linefetch");
X case 8:
X case 10:
- DIE(SIGBUS, "External abort on non-linefetch")
+ DIE(SIGBUS, "External abort on non-linefetch");
X }
X }
X
X asmlinkage int
-do_PrefetchAbort (unsigned long addr, struct pt_regs *regs)
+do_PrefetchAbort(unsigned long addr, struct pt_regs *regs)
X {
-#if 0
- /* does this still apply ? */
- if (the memc mapping for this page exists - can check now...) {
- printk ("Page in, but got abort (undefined instruction?)\n");
- return 0;
- }
-#endif
- page_fault (addr, FAULT_CODE_USER|FAULT_CODE_READ, regs);
+ do_page_fault(addr, FAULT_CODE_USER|FAULT_CODE_READ, regs);
X return 1;
X }
-
diff -u --recursive --new-file v2.2.7/linux/arch/arm/mm/fault-common.c linux/arch/arm/mm/fault-common.c
--- v2.2.7/linux/arch/arm/mm/fault-common.c Wed Dec 31 16:00:00 1969
+++ linux/arch/arm/mm/fault-common.c Sat May 8 11:06:56 1999
@@ -0,0 +1,188 @@
+/*
+ * linux/arch/arm/mm/fault-common.c
+ *
+ * Copyright (C) 1995 Linus Torvalds
+ * Modifications for ARM processor (c) 1995-1999 Russell King
+ */
+#include <linux/config.h>
+
+extern void die(char *msg, struct pt_regs *regs, unsigned int err);
+
+void __bad_pmd(pmd_t *pmd)
+{
+ printk("Bad pmd in pte_alloc: %08lx\n", pmd_val(*pmd));
+#ifdef CONFIG_DEBUG_ERRORS
+ __backtrace();
+#endif
+ set_pmd(pmd, mk_user_pmd(BAD_PAGETABLE));
+}
+
+void __bad_pmd_kernel(pmd_t *pmd)
+{
+ printk("Bad pmd in pte_alloc_kernel: %08lx\n", pmd_val(*pmd));
+#ifdef CONFIG_DEBUG_ERRORS
+ __backtrace();
+#endif
+ set_pmd(pmd, mk_kernel_pmd(BAD_PAGETABLE));
+}
+
+static void
+kernel_page_fault(unsigned long addr, int mode, struct pt_regs *regs,
+ struct task_struct *tsk, struct mm_struct *mm)
+{
+ char *reason;
+ /*
+ * Oops. The kernel tried to access some bad page. We'll have to
+ * terminate things with extreme prejudice.
+ */
+ pgd_t *pgd;
+
+ if (addr < PAGE_SIZE)
+ reason = "NULL pointer dereference";
+ else
+ reason = "paging request";
+
+ printk(KERN_ALERT "Unable to handle kernel %s at virtual address %08lx\n",
+ reason, addr);
+ printk(KERN_ALERT "memmap = %08lX, pgd = %p\n", tsk->tss.memmap, mm->pgd);
+ pgd = pgd_offset(mm, addr);
+ printk(KERN_ALERT "*pgd = %08lx", pgd_val(*pgd));
+
+ do {
+ pmd_t *pmd;
+ pte_t *pte;
+
+ if (pgd_none(*pgd))
+ break;
+
+ if (pgd_bad(*pgd)) {
+ printk("(bad)\n");
+ break;
+ }
+
+ pmd = pmd_offset(pgd, addr);
+ printk(", *pmd = %08lx", pmd_val(*pmd));
+
+ if (pmd_none(*pmd))
+ break;
+
+ if (pmd_bad(*pmd)) {
+ printk("(bad)\n");
+ break;
+ }
+
+ pte = pte_offset(pmd, addr);
+ printk(", *pte = %08lx", pte_val(*pte));
+ printk(", *ppte = %08lx", pte_val(pte[-PTRS_PER_PTE]));
+ } while(0);
+
+ printk("\n");
+ die("Oops", regs, mode);
+
+ do_exit(SIGKILL);
+}
+
+static void do_page_fault(unsigned long addr, int mode, struct pt_regs *regs)
+{
+ struct task_struct *tsk;
+ struct mm_struct *mm;
+ struct vm_area_struct *vma;
+ unsigned long fixup;
+
+ tsk = current;
+ mm = tsk->mm;
+
+ /*
+ * If we're in an interrupt or have no user
+ * context, we must not take the fault..
+ */
+ if (in_interrupt() || mm == &init_mm)
+ goto no_context;
+
+ down(&mm->mmap_sem);
+ vma = find_vma(mm, addr);
+ if (!vma)
+ goto bad_area;
+ if (vma->vm_start <= addr)
+ goto good_area;
+ if (!(vma->vm_flags & VM_GROWSDOWN) || expand_stack(vma, addr))
+ goto bad_area;
+
+ /*
+ * Ok, we have a good vm_area for this memory access, so
+ * we can handle it..
+ */
+good_area:
+ if (READ_FAULT(mode)) { /* read? */
+ if (!(vma->vm_flags & (VM_READ|VM_EXEC)))
+ goto bad_area;
+ } else {
+ if (!(vma->vm_flags & VM_WRITE))
+ goto bad_area;
+ }
+
+ /*
+ * If for any reason at all we couldn't handle the fault,
+ * make sure we exit gracefully rather than endlessly redo
+ * the fault.
+ */
+ if (!handle_mm_fault(tsk, vma, addr & PAGE_MASK, DO_COW(mode)))
+ goto do_sigbus;
+
+ up(&mm->mmap_sem);
+ return;
+
+ /*
+ * Something tried to access memory that isn't in our memory map..
+ * Fix it, but check if it's kernel or user first..
+ */
+bad_area:
+ up(&mm->mmap_sem);
+
+ /* User mode accesses just cause a SIGSEGV */
+ if (mode & FAULT_CODE_USER) {
+ tsk->tss.error_code = mode;
+ tsk->tss.trap_no = 14;
+#ifdef CONFIG_DEBUG_USER
+ printk("%s: memory violation at pc=0x%08lx, lr=0x%08lx (bad address=0x%08lx, code %d)\n",
+ tsk->comm, regs->ARM_pc, regs->ARM_lr, addr, mode);
+#endif
+ force_sig(SIGSEGV, tsk);
+ return;
+ }
+
+no_context:
+ /* Are we prepared to handle this kernel fault? */
+ if ((fixup = search_exception_table(instruction_pointer(regs))) != 0) {
+#ifdef DEBUG
+ printk(KERN_DEBUG "%s: Exception at [<%lx>] addr=%lx (fixup: %lx)\n",
+ tsk->comm, regs->ARM_pc, addr, fixup);
+#endif
+ regs->ARM_pc = fixup;
+ return;
+ }
+
+ kernel_page_fault(addr, mode, regs, tsk, mm);
+ return;
+
+do_sigbus:
+ /*
+ * We ran out of memory, or some other thing happened to us that made
+ * us unable to handle the page fault gracefully.
+ */
+ up(&mm->mmap_sem);
+
+ /*
+ * Send a sigbus, regardless of whether we were in kernel
+ * or user mode.
+ */
+ tsk->tss.error_code = mode;
+ tsk->tss.trap_no = 14;
+ force_sig(SIGBUS, tsk);
+
+ /* Kernel mode? Handle exceptions or die */
+ if (!(mode & FAULT_CODE_USER))
+ goto no_context;
+}
+
+
diff -u --recursive --new-file v2.2.7/linux/arch/arm/mm/init.c linux/arch/arm/mm/init.c
--- v2.2.7/linux/arch/arm/mm/init.c Tue Dec 22 14:16:53 1998
+++ linux/arch/arm/mm/init.c Sat May 8 11:06:56 1999
@@ -29,6 +29,9 @@
X #include <asm/proc/mm-init.h>
X
X pgd_t swapper_pg_dir[PTRS_PER_PGD];
+#ifndef CONFIG_NO_PGT_CACHE
+struct pgtable_cache_struct quicklists;
+#endif
X
X extern char _etext, _stext, _edata, __bss_start, _end;
X extern char __init_begin, __init_end;
@@ -36,6 +39,7 @@
X int do_check_pgt_cache(int low, int high)
X {
X int freed = 0;
+#ifndef CONFIG_NO_PGT_CACHE
X if(pgtable_cache_size > high) {
X do {
X if(pgd_quicklist)
@@ -46,6 +50,7 @@
X free_pte_slow(get_pte_fast()), freed++;
X } while(pgtable_cache_size > low);
X }
+#endif
X return freed;
X }
X
@@ -63,17 +68,18 @@
X * data and COW.
X */
X #if PTRS_PER_PTE != 1
-unsigned long *empty_bad_page_table;
+pte_t *empty_bad_page_table;
X
X pte_t *__bad_pagetable(void)
X {
- int i;
X pte_t bad_page;
+ int i;
X
X bad_page = BAD_PAGE;
X for (i = 0; i < PTRS_PER_PTE; i++)
- empty_bad_page_table[i] = (unsigned long)pte_val(bad_page);
- return (pte_t *) empty_bad_page_table;
+ set_pte(empty_bad_page_table + i, bad_page);
+
+ return empty_bad_page_table;
X }
X #endif
X
@@ -128,8 +134,11 @@
X empty_bad_page = (unsigned long *)start_mem;
X start_mem += PAGE_SIZE;
X #if PTRS_PER_PTE != 1
- empty_bad_page_table = (unsigned long *)start_mem;
- start_mem += PTRS_PER_PTE * sizeof (void *);
+#ifdef CONFIG_CPU_32
+ start_mem += PTRS_PER_PTE * BYTES_PER_PTR;
+#endif
+ empty_bad_page_table = (pte_t *)start_mem;
+ start_mem += PTRS_PER_PTE * BYTES_PER_PTR;
X #endif
X memzero (empty_zero_page, PAGE_SIZE);
X start_mem = setup_pagetables (start_mem, end_mem);
@@ -137,6 +146,9 @@
X flush_tlb_all();
X update_memc_all();
X
+ end_mem &= PAGE_MASK;
+ high_memory = (void *)end_mem;
+
X return free_area_init(start_mem, end_mem);
X }
X
@@ -161,19 +173,18 @@
X /* mark usable pages in the mem_map[] */
X mark_usable_memory_areas(&start_mem, end_mem);
X
+#define BETWEEN(w,min,max) ((w) >= (unsigned long)(min) && \
+ (w) < (unsigned long)(max))
+
X for (tmp = PAGE_OFFSET; tmp < end_mem ; tmp += PAGE_SIZE) {
X if (PageReserved(mem_map+MAP_NR(tmp))) {
- if (tmp >= KERNTOPHYS(_stext) &&
- tmp < KERNTOPHYS(_edata)) {
- if (tmp < KERNTOPHYS(_etext))
- codepages++;
- else
- datapages++;
- } else if (tmp >= KERNTOPHYS(__init_begin)
- && tmp < KERNTOPHYS(__init_end))
+ if (BETWEEN(tmp, &__init_begin, &__init_end))
X initpages++;
- else if (tmp >= KERNTOPHYS(__bss_start)
- && tmp < (unsigned long) start_mem)
+ else if (BETWEEN(tmp, &_stext, &_etext))
+ codepages++;
+ else if (BETWEEN(tmp, &_etext, &_edata))
+ datapages++;
+ else if (BETWEEN(tmp, &__bss_start, start_mem))
X datapages++;
X else
X reservedpages++;
@@ -181,13 +192,16 @@
X }
X atomic_set(&mem_map[MAP_NR(tmp)].count, 1);
X #ifdef CONFIG_BLK_DEV_INITRD
- if (!initrd_start || (tmp < initrd_start || tmp >= initrd_end))
+ if (!initrd_start || !BETWEEN(tmp, initrd_start, initrd_end))
X #endif
X free_page(tmp);
X }
- printk ("Memory: %luk/%luk available (%dk kernel code, %dk reserved, %dk data, %dk init)\n",
+
+#undef BETWEEN
+
+ printk ("Memory: %luk/%luM available (%dk code, %dk reserved, %dk data, %dk init)\n",
X (unsigned long) nr_free_pages << (PAGE_SHIFT-10),
- max_mapnr << (PAGE_SHIFT-10),
+ max_mapnr >> (20 - PAGE_SHIFT),
X codepages << (PAGE_SHIFT-10),
X reservedpages << (PAGE_SHIFT-10),
X datapages << (PAGE_SHIFT-10),
@@ -203,17 +217,45 @@
X #endif
X }
X
-void free_initmem (void)
+static void free_area(unsigned long addr, unsigned long end, char *s)
X {
- unsigned long addr;
+ unsigned int size = (end - addr) >> 10;
X
- addr = (unsigned long)(&__init_begin);
- for (; addr < (unsigned long)(&__init_end); addr += PAGE_SIZE) {
+ for (; addr < end; addr += PAGE_SIZE) {
X mem_map[MAP_NR(addr)].flags &= ~(1 << PG_reserved);
X atomic_set(&mem_map[MAP_NR(addr)].count, 1);
X free_page(addr);
X }
- printk ("Freeing unused kernel memory: %dk freed\n", (&__init_end - &__init_begin) >> 10);
+
+ if (size)
+ printk(" %dk %s", size, s);
+}
+
+void free_initmem (void)
+{
+ printk("Freeing unused kernel memory:");
+
+ free_area((unsigned long)(&__init_begin),
+ (unsigned long)(&__init_end),
+ "init");
+
+#ifdef CONFIG_FOOTBRIDGE
+ {
+ extern int __netwinder_begin, __netwinder_end, __ebsa285_begin, __ebsa285_end;
+
+ if (!machine_is_netwinder())
+ free_area((unsigned long)(&__netwinder_begin),
+ (unsigned long)(&__netwinder_end),
+ "netwinder");
+
+ if (!machine_is_ebsa285() && !machine_is_cats())
+ free_area((unsigned long)(&__ebsa285_begin),
+ (unsigned long)(&__ebsa285_end),
+ "ebsa285/cats");
+ }
+#endif
+
+ printk("\n");
X }
X
X void si_meminfo(struct sysinfo *val)
diff -u --recursive --new-file v2.2.7/linux/arch/arm/mm/ioremap.c linux/arch/arm/mm/ioremap.c
--- v2.2.7/linux/arch/arm/mm/ioremap.c Wed Dec 31 16:00:00 1969
+++ linux/arch/arm/mm/ioremap.c Sat May 8 11:06:56 1999
@@ -0,0 +1,149 @@
+/*
+ * arch/arm/mm/ioremap.c
+ *
+ * Re-map IO memory to kernel address space so that we can access it.
+ *
+ * (C) Copyright 1995 1996 Linus Torvalds
+ *
+ * Hacked for ARM by Phil Blundell <ph...@gnu.org>
+ * Hacked to allow all architectures to build, and various cleanups
+ * by Russell King
+ */
+
+/*
+ * This allows a driver to remap an arbitrary region of bus memory into
+ * virtual space. One should *only* use readl, writel, memcpy_toio and
+ * so on with such remapped areas.
+ *
+ * Because the ARM only has a 32-bit address space we can't address the
+ * whole of the (physical) PCI space at once. PCI huge-mode addressing
+ * allows us to circumvent this restriction by splitting PCI space into
+ * two 2GB chunks and mapping only one at a time into processor memory.
+ * We use MMU protection domains to trap any attempt to access the bank
+ * that is not currently mapped. (This isn't fully implemented yet.)
+ *
+ * DC21285 currently has a bug in that the PCI address extension
+ * register affects the address of any writes waiting in the outbound
+ * FIFO. Unfortunately, it is not possible to tell the DC21285 to
+ * flush this - flushing the area causes the bus to lock.
+ */
+
+#include <linux/vmalloc.h>
+#include <asm/io.h>
+
+static inline void remap_area_pte(pte_t * pte, unsigned long address, unsigned long size,
+ unsigned long phys_addr, pgprot_t pgprot)
+{
+ unsigned long end;
+
+ address &= ~PMD_MASK;
+ end = address + size;
+ if (end > PMD_SIZE)
+ end = PMD_SIZE;
+ do {
+ if (!pte_none(*pte))
+ printk("remap_area_pte: page already exists\n");
+ set_pte(pte, mk_pte_phys(phys_addr, pgprot));
+ address += PAGE_SIZE;
+ phys_addr += PAGE_SIZE;
+ pte++;
+ } while (address < end);
+}
+
+static inline int remap_area_pmd(pmd_t * pmd, unsigned long address, unsigned long size,
+ unsigned long phys_addr, unsigned long flags)
+{
+ unsigned long end;
+ pgprot_t pgprot;
+
+ address &= ~PGDIR_MASK;
+ end = address + size;
+
+ if (end > PGDIR_SIZE)
+ end = PGDIR_SIZE;
+
+ phys_addr -= address;
+ pgprot = __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY | L_PTE_WRITE | flags);
+ do {
+ pte_t * pte = pte_alloc_kernel(pmd, address);
+ if (!pte)
+ return -ENOMEM;
+ remap_area_pte(pte, address, end - address, address + phys_addr, pgprot);
+ address = (address + PMD_SIZE) & PMD_MASK;
+ pmd++;
+ } while (address < end);
+ return 0;
+}
+
+static int remap_area_pages(unsigned long address, unsigned long phys_addr,
+ unsigned long size, unsigned long flags)
+{
+ pgd_t * dir;
+ unsigned long end = address + size;
+
+ phys_addr -= address;
+ dir = pgd_offset(&init_mm, address);
+ flush_cache_all();
+ while (address < end) {
+ pmd_t *pmd = pmd_alloc_kernel(dir, address);
+ if (!pmd)
+ return -ENOMEM;
+ if (remap_area_pmd(pmd, address, end - address,
+ phys_addr + address, flags))
+ return -ENOMEM;
+ set_pgdir(address, *dir);
+ address = (address + PGDIR_SIZE) & PGDIR_MASK;
+ dir++;
+ }
+ flush_tlb_all();
+ return 0;
+}
+
+/*
+ * Remap an arbitrary physical address space into the kernel virtual
+ * address space. Needed when the kernel wants to access high addresses
+ * directly.
+ *
+ * NOTE! We need to allow non-page-aligned mappings too: we will obviously
+ * have to convert them into an offset in a page-aligned mapping, but the
+ * caller shouldn't need to know that small detail.
+ *
+ * 'flags' are the extra L_PTE_ flags that you want to specify for this
+ * mapping. See include/asm-arm/proc-armv/pgtable.h for more information.
+ */
+void * __ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags)
+{
+ void * addr;
+ struct vm_struct * area;
+ unsigned long offset;
+
+ /*
+ * Mappings have to be page-aligned
+ */
+ offset = phys_addr & ~PAGE_MASK;
+ size = PAGE_ALIGN(size + offset);
+
+ /*
+ * Don't allow mappings that wrap..
+ */
+ if (!size || size > phys_addr + size)
+ return NULL;
+
+ /*
+ * Ok, go for it..
+ */
+ area = get_vm_area(size);
+ if (!area)
+ return NULL;
+ addr = area->addr;
+ if (remap_area_pages(VMALLOC_VMADDR(addr), phys_addr, size, flags)) {
+ vfree(addr);
+ return NULL;
+ }
+ return (void *) (offset + (char *)addr);
+}
+
+void iounmap(void *addr)
+{
+ return vfree((void *) (PAGE_MASK & (unsigned long) addr));
+}
diff -u --recursive --new-file v2.2.7/linux/arch/arm/mm/mm-arc.c linux/arch/arm/mm/mm-arc.c
--- v2.2.7/linux/arch/arm/mm/mm-arc.c Tue Jul 21 00:15:30 1998
+++ linux/arch/arm/mm/mm-arc.c Wed Dec 31 16:00:00 1969
@@ -1,82 +0,0 @@
-/*
- * arch/arm/mm/mm-arc.c
- *
- * Extra MM routines for the Archimedes architecture
- *
- * Copyright (C) 1998 Russell King
- */
-#include <linux/init.h>
-#include <asm/hardware.h>
-#include <asm/pgtable.h>
-
-unsigned long phys_screen_end;
-
-/*
- * This routine needs more work to make it dynamically release/allocate mem!
- */
-__initfunc(unsigned long map_screen_mem(unsigned long log_start, unsigned long kmem, int update))
-{
- static int updated = 0;
-
- if (updated)
- return 0;
-
- updated = update;
-
- if (update) {
- unsigned long address = log_start, offset;
- pgd_t *pgdp;
-
- kmem = (kmem + 3) & ~3;
-
- pgdp = pgd_offset (&init_mm, address); /* +31 */
- offset = SCREEN_START;
- while (address < SCREEN1_END) {
- unsigned long addr_pmd, end_pmd;
- pmd_t *pmdp;
-
- /* if (pgd_none (*pgdp)) alloc pmd */
- pmdp = pmd_offset (pgdp, address); /* +0 */
- addr_pmd = address & ~PGDIR_MASK; /* 088000 */
- end_pmd = addr_pmd + SCREEN1_END - address; /* 100000 */
- if (end_pmd > PGDIR_SIZE)
- end_pmd = PGDIR_SIZE;
-
- do {
- unsigned long addr_pte, end_pte;
- pte_t *ptep;
-
- if (pmd_none (*pmdp)) {
- pte_t *new_pte = (pte_t *)kmem;
- kmem += PTRS_PER_PTE * BYTES_PER_PTR;
- memzero (new_pte, PTRS_PER_PTE * BYTES_PER_PTR);
- set_pmd (pmdp, mk_pmd(new_pte));
- }
-
- ptep = pte_offset (pmdp, addr_pmd); /* +11 */
- addr_pte = addr_pmd & ~PMD_MASK; /* 088000 */
- end_pte = addr_pte + end_pmd - addr_pmd; /* 100000 */
- if (end_pte > PMD_SIZE)
- end_pte = PMD_SIZE;
-
- do {
- set_pte (ptep, mk_pte(offset, PAGE_KERNEL));
- addr_pte += PAGE_SIZE;
- offset += PAGE_SIZE;
- ptep++;
- } while (addr_pte < end_pte);
-
- pmdp++;
- addr_pmd = (addr_pmd + PMD_SIZE) & PMD_MASK;
- } while (addr_pmd < end_pmd);
-
- address = (address + PGDIR_SIZE) & PGDIR_MASK;
- pgdp ++;
- }
-
- phys_screen_end = offset;
- flush_tlb_all ();
- update_memc_all ();
- }
- return kmem;
-}
diff -u --recursive --new-file v2.2.7/linux/arch/arm/mm/mm-armv.c linux/arch/arm/mm/mm-armv.c
--- v2.2.7/linux/arch/arm/mm/mm-armv.c Wed Sep 9 14:51:05 1998
+++ linux/arch/arm/mm/mm-armv.c Sat May 8 11:06:57 1999
@@ -37,7 +37,8 @@
X virtual = mp->virtual;
X physical = mp->physical;
X length = mp->length;
- prot = (mp->prot_read ? PTE_AP_READ : 0) | (mp->prot_write ? PTE_AP_WRITE : 0);
+ prot = (mp->prot_read ? L_PTE_USER : 0) | (mp->prot_write ? L_PTE_WRITE : 0)
+ | L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY;
X
X while ((virtual & 1048575 || physical & 1048575) && length >= PAGE_SIZE) {
X alloc_init_page(&start_mem, virtual, physical, mp->domain, prot);
@@ -56,7 +57,8 @@
X physical += 1048576;
X }
X
- prot = (mp->prot_read ? PTE_AP_READ : 0) | (mp->prot_write ? PTE_AP_WRITE : 0);
+ prot = (mp->prot_read ? L_PTE_USER : 0) | (mp->prot_write ? L_PTE_WRITE : 0)
+ | L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY;
X
X while (length >= PAGE_SIZE) {
X alloc_init_page(&start_mem, virtual, physical, mp->domain, prot);
diff -u --recursive --new-file v2.2.7/linux/arch/arm/mm/mm-ebsa285.c linux/arch/arm/mm/mm-ebsa285.c
--- v2.2.7/linux/arch/arm/mm/mm-ebsa285.c Tue Dec 22 14:16:53 1998
+++ linux/arch/arm/mm/mm-ebsa285.c Wed Dec 31 16:00:00 1969
@@ -1,39 +0,0 @@
-/*
- * arch/arm/mm/mm-ebsa285.c
- *
- * Extra MM routines for the EBSA285 architecture
- *
- * Copyright (C) 1998 Russell King, Dave Gilbert.
- */
-#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/proc/mm-init.h>
-#include <asm/dec21285.h>
-
-/*
- * This is to allow us to fiddle with the EEPROM
- * This entry will go away in time, once the fmu
- * can mmap() the flash.
- *
- * These ones are so that we can fiddle
- * with the various cards (eg VGA)
- * until we're happy with them...
- */
-#define MAPPING \
- { 0xd8000000, DC21285_FLASH, 0x00400000, DOMAIN_USER, 1, 1 }, /* EEPROM */ \
- { 0xdc000000, 0x7c000000, 0x00100000, DOMAIN_USER, 1, 1 }, /* VGA */ \
- { 0xe0000000, DC21285_PCI_MEM, 0x18000000, DOMAIN_USER, 1, 1 }, /* VGA */ \
- { 0xf8000000, DC21285_PCI_TYPE_0_CONFIG, 0x01000000, DOMAIN_IO , 0, 1 }, /* Type 0 Config */ \
- { 0xf9000000, DC21285_PCI_TYPE_1_CONFIG, 0x01000000, DOMAIN_IO , 0, 1 }, /* Type 1 Config */ \
- { PCI_IACK, DC21285_PCI_IACK, 0x01000000, DOMAIN_IO , 0, 1 }, /* PCI IACK */ \
- { 0xfd000000, DC21285_OUTBOUND_WRITE_FLUSH, 0x01000000, DOMAIN_IO , 0, 1 }, /* Out wrflsh */ \
- { 0xfe000000, DC21285_ARMCSR_BASE, 0x01000000, DOMAIN_IO , 0, 1 }, /* CSR */ \
- { 0xffe00000, DC21285_PCI_IO, 0x00100000, DOMAIN_IO , 0, 1 }, /* PCI I/O */ \
- { 0xfff00000, 0x40000000, 0x00100000, DOMAIN_IO , 0, 1 }, /* X-Bus */
-
-#include "mm-armv.c"
diff -u --recursive --new-file v2.2.7/linux/arch/arm/mm/mm-footbridge.c linux/arch/arm/mm/mm-footbridge.c
--- v2.2.7/linux/arch/arm/mm/mm-footbridge.c Wed Dec 31 16:00:00 1969
+++ linux/arch/arm/mm/mm-footbridge.c Sat May 8 11:06:57 1999
@@ -0,0 +1,91 @@
+/*
+ * arch/arm/mm/mm-ebsa285.c
+ *
+ * Extra MM routines for the EBSA285 architecture
+ *
+ * Copyright (C) 1998 Russell King, Dave Gilbert.
+ */
+#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/proc/mm-init.h>
+#include <asm/dec21285.h>
+
+/*
+ * The first entry allows us to fiddle with the EEPROM from user-space.
+ * This entry will go away in time, once the fmu32 can mmap() the
+ * flash. It can't at the moment.
+ *
+ * If you want to fiddle with PCI VGA cards from user space, then
+ * change the '0, 1 }' for the PCI MEM and PCI IO to '1, 1 }'
+ * You can then access the PCI bus at 0xe0000000 and 0xffe00000.
+ */
+
+#ifdef CONFIG_HOST_FOOTBRIDGE
+
+/*
+ * The mapping when the footbridge is in host mode.
+ */
+#define MAPPING \
+ { FLASH_BASE, DC21285_FLASH, FLASH_SIZE, DOMAIN_IO, 0, 1 }, \
+ { PCIMEM_BASE, DC21285_PCI_MEM, PCIMEM_SIZE, DOMAIN_IO, 0, 1 }, \
+ { PCICFG0_BASE, DC21285_PCI_TYPE_0_CONFIG, PCICFG0_SIZE, DOMAIN_IO, 0, 1 }, \
+ { PCICFG1_BASE, DC21285_PCI_TYPE_1_CONFIG, PCICFG1_SIZE, DOMAIN_IO, 0, 1 }, \
+ { PCIIACK_BASE, DC21285_PCI_IACK, PCIIACK_SIZE, DOMAIN_IO, 0, 1 }, \
+ { WFLUSH_BASE, DC21285_OUTBOUND_WRITE_FLUSH, WFLUSH_SIZE, DOMAIN_IO, 0, 1 }, \
+ { ARMCSR_BASE, DC21285_ARMCSR_BASE, ARMCSR_SIZE, DOMAIN_IO, 0, 1 }, \
+ { PCIO_BASE, DC21285_PCI_IO, PCIO_SIZE, DOMAIN_IO, 0, 1 }, \
+ { XBUS_BASE, 0x40000000, XBUS_SIZE, DOMAIN_IO, 0, 1 }
+
+#else
+
+/*
+ * 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_phys: 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("__phys_to_virt: invalid virtual address 0x%08lx\n", res);
+ __backtrace();
+ }
+#endif
+ return res;
+}
+
+/*
+ * The mapping when the footbridge is in add-in mode.
+ */
+#define MAPPING \
+ { PCIO_BASE, DC21285_PCI_IO, PCIO_SIZE, DOMAIN_IO, 0, 1 }, \
+ { XBUS_BASE, 0x40000000, XBUS_SIZE, DOMAIN_IO, 0, 1 }, \
+ { ARMCSR_BASE, DC21285_ARMCSR_BASE, ARMCSR_SIZE, DOMAIN_IO, 0, 1 }, \
+ { WFLUSH_BASE, DC21285_OUTBOUND_WRITE_FLUSH, WFLUSH_SIZE, DOMAIN_IO, 0, 1 }, \
+ { FLASH_BASE, DC21285_FLASH, FLASH_SIZE, DOMAIN_IO, 0, 1 }, \
+ { PCIMEM_BASE, DC21285_PCI_MEM, PCIMEM_SIZE, DOMAIN_IO, 0, 1 }
+
+#endif
+
+#include "mm-armv.c"
diff -u --recursive --new-file v2.2.7/linux/arch/arm/mm/mm-vnc.c linux/arch/arm/mm/mm-vnc.c
--- v2.2.7/linux/arch/arm/mm/mm-vnc.c Tue Dec 22 14:16:53 1998
+++ linux/arch/arm/mm/mm-vnc.c Wed Dec 31 16:00:00 1969
@@ -1,31 +0,0 @@
-/*
- * arch/arm/mm/mm-vnc.c
- *
- * Extra MM routines for the Corel VNC architecture
- *
- * Copyright (C) 1998 Russell King
- */
-#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/proc/mm-init.h>
-#include <asm/dec21285.h>
-
-/* Table describing the MMU translation mapping
- * mainly used to set up the I/O mappings.
- */
-#define MAPPING \
- { 0xd0000000, DC21285_FLASH, 0x00800000, DOMAIN_IO , 0, 1 }, /* Flash */ \
- { 0xe0000000, DC21285_PCI_MEM, 0x18000000, DOMAIN_IO , 0, 1 }, /* PCI Mem */ \
- { 0xf8000000, DC21285_PCI_TYPE_0_CONFIG, 0x01000000, DOMAIN_IO , 0, 1 }, /* Type 0 Config */ \
- { 0xf9000000, DC21285_PCI_TYPE_1_CONFIG, 0x01000000, DOMAIN_IO , 0, 1 }, /* Type 1 Config */ \
- { PCI_IACK, DC21285_PCI_IACK, 0x01000000, DOMAIN_IO , 0, 1 }, /* PCI IACK */ \
- { 0xfd000000, DC21285_OUTBOUND_WRITE_FLUSH, 0x01000000, DOMAIN_IO , 0, 1 }, /* Out wrflsh */ \
- { 0xfe000000, DC21285_ARMCSR_BASE, 0x01000000, DOMAIN_IO , 0, 1 }, /* CSR */ \
- { 0xffe00000, DC21285_PCI_IO, 0x00100000, DOMAIN_IO , 0, 1 }, /* PCI I/O */ \
-
-#include "mm-armv.c"
diff -u --recursive --new-file v2.2.7/linux/arch/arm/mm/proc-arm2,3.S linux/arch/arm/mm/proc-arm2,3.S
--- v2.2.7/linux/arch/arm/mm/proc-arm2,3.S Sun Jun 7 11:16:26 1998
+++ linux/arch/arm/mm/proc-arm2,3.S Sat May 8 11:07:16 1999
@@ -193,7 +193,7 @@
X movs pc, lr
X
X _arm2_3_check_bugs:
- movs pc, lr
+ bics pc, lr, #0x04000000 @ Clear FIQ disable bit
X
X /*
X * Processor specific - ARM2
@@ -206,6 +206,8 @@
X * Params : prev Old task structure
X * : next New task structure for process to run
X *
+ * Returns : prev
+ *
X * Purpose : Perform a task switch, saving the old processes state, and restoring
X * the new.
X *
@@ -218,15 +220,15 @@
X str sp, [r0, #TSS_SAVE] @ Save sp_SVC
X ldr sp, [r1, #TSS_SAVE] @ Get saved sp_SVC
X mov r4, r1
- add r0, r1, #TSS_MEMCMAP @ Remap MEMC
+ add r7, r1, #TSS_MEMCMAP @ Remap MEMC
X ldr r1, LC0
X ldr r1, [r1]
-1: ldmia r0!, {r2, r3, r5, r6}
+1: ldmia r7!, {r2, r3, r5, r6}
X strb r2, [r2]
X strb r3, [r3]
X strb r5, [r5]
X strb r6, [r6]
- ldmia r0!, {r2, r3, r5, r6}
+ ldmia r7!, {r2, r3, r5, r6}
X strb r2, [r2]
X strb r3, [r3]
X strb r5, [r5]
@@ -318,6 +320,8 @@
X * Params : prev Old task structure
X * : next New task structure for process to run
X *
+ * Returns : prev
+ *
X * Purpose : Perform a task switch, saving the old processes state, and restoring
X * the new.
X *
@@ -330,22 +334,22 @@
X str sp, [r0, #TSS_SAVE] @ Save sp_SVC
X ldr sp, [r1, #TSS_SAVE] @ Get saved sp_SVC
X mov r4, r1
- add r0, r1, #TSS_MEMCMAP @ Remap MEMC
+ add r7, r1, #TSS_MEMCMAP @ Remap MEMC
X ldr r1, LC0
X ldr r1, [r1]
-1: ldmia r0!, {r2, r3, r5, r6}
+1: ldmia r7!, {r2, r3, r5, r6}
X strb r2, [r2]
X strb r3, [r3]
X strb r5, [r5]
X strb r6, [r6]
- ldmia r0!, {r2, r3, r5, r6}
+ ldmia r7!, {r2, r3, r5, r6}
X strb r2, [r2]
X strb r3, [r3]
X strb r5, [r5]
X strb r6, [r6]
X subs r1, r1, #8
X bhi 1b
- mcr p15, 0, r0, c1, c0, 0 @ flush cache
+ mcr p15, 0, r7, c1, c0, 0 @ flush cache
X ldmfd sp!, {r4 - r9, fp, pc}^ @ Load all regs saved previously
X /*
X * Function: arm3_remap_memc (struct task_struct *tsk)
diff -u --recursive --new-file v2.2.7/linux/arch/arm/mm/proc-arm6,7.S linux/arch/arm/mm/proc-arm6,7.S
--- v2.2.7/linux/arch/arm/mm/proc-arm6,7.S Wed Sep 9 14:51:05 1998
+++ linux/arch/arm/mm/proc-arm6,7.S Sat May 8 11:07:16 1999
@@ -52,13 +52,14 @@
X blt 1b
X mov pc, lr
X
-@LC0: .word _current
X /*
X * Function: arm6_7_switch_to (struct task_struct *prev, struct task_struct *next)
X *
X * Params : prev Old task structure
X * : next New task structure for process to run
X *
+ * Returns : prev
+ *
X * Purpose : Perform a task switch, saving the old processes state, and restoring
X * the new.
X *
@@ -72,15 +73,15 @@
X stmfd sp!, {ip} @ Save cpsr_SVC
X str sp, [r0, #TSS_SAVE] @ Save sp_SVC
X ldr sp, [r1, #TSS_SAVE] @ Get saved sp_SVC
- ldr r0, [r1, #TSK_ADDR_LIMIT]
- teq r0, #0
- moveq r0, #DOM_KERNELDOMAIN
- movne r0, #DOM_USERDOMAIN
- mcr p15, 0, r0, c3, c0 @ Set domain reg
- ldr r0, [r1, #TSS_MEMMAP] @ Page table pointer
+ ldr r2, [r1, #TSK_ADDR_LIMIT]
+ teq r2, #0
+ moveq r2, #DOM_KERNELDOMAIN
+ movne r2, #DOM_USERDOMAIN
+ mcr p15, 0, r2, c3, c0 @ Set domain reg
+ ldr r2, [r1, #TSS_MEMMAP] @ Page table pointer
X mov r1, #0
X mcr p15, 0, r1, c7, c0, 0 @ flush cache
- mcr p15, 0, r0, c2, c0, 0 @ update page table ptr
+ mcr p15, 0, r2, c2, c0, 0 @ update page table ptr
X mcr p15, 0, r1, c5, c0, 0 @ flush TLBs
X ldmfd sp!, {ip}
X msr spsr, ip @ Save tasks CPSR into SPSR for this return
@@ -369,6 +370,35 @@
X mov pc, lr
X
X /*
+ * Function: arm6_7_set_pte(pte_t *ptep, pte_t pte)
+ * Params : r0 = Address to set
+ * : r1 = value to set
+ * Purpose : Set a PTE and flush it out of any WB cache
+ */
+ .align 5
+_arm6_7_set_pte:
+ str r1, [r0], #-1024 @ linux version
+
+ bic r2, r1, #0xff0
+ bic r2, r2, #3
+ orr r2, r2, #HPTE_TYPE_SMALL
+
+ tst r1, #LPTE_USER | LPTE_EXEC
+ orrne r2, r2, #HPTE_AP_READ
+
+ tst r1, #LPTE_WRITE
+ tstne r1, #LPTE_DIRTY
+ orrne r2, r2, #HPTE_AP_WRITE
+
+ tst r1, #LPTE_PRESENT
+ tstne r1, #LPTE_YOUNG
+ moveq r2, #0
+
+ str r2, [r0] @ hardware version
+ mcr p15, 0, r0, c7, c10, 1 @ clean D entry (drain is done by TLB fns)
+ mov pc, lr
+
+/*
X * Function: _arm6_7_reset
X *
X * Notes : This sets up everything for a reset
@@ -405,8 +435,12 @@
X .word _arm6_7_flush_tlb_all @ 44
X .word _arm6_7_flush_tlb_area @ 48
X .word _arm6_set_pmd @ 52
- .word _arm6_7_reset @ 54
- .word _arm6_7_flush_cache @ 58
+ .word _arm6_7_set_pte @ 56
+ .word _arm6_7_reset @ 60
+ .word _arm6_7_flush_cache @ 64
+
+ .word _arm6_7_flush_cache @ 68
+ .word _arm6_7_flush_cache @ 72
X
X /*
X * Purpose : Function pointers used to access above functions - all calls
@@ -431,8 +465,9 @@


SHAR_EOF
true || echo 'restore of patch-2.2.8 failed'
fi

echo 'End of part 04'
echo 'File patch-2.2.8 is continued in part 05'
echo 05 > _shar_seq_.tmp

Reply all
Reply to author
Forward
0 new messages