# This is a BitKeeper generated patch for the following project: # Project Name: Linux 2.4 # This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas: # ChangeSet v2.4.6-pre3 -> 1.141 # arch/ppc/kernel/ppc4xx_pic.h 1.1.1.1 -> 1.8 # arch/ppc/boot/chrp/main.c 1.1.1.1 -> 1.9 # include/asm-ppc/ptrace.h 1.1.1.1 -> 1.7 # include/asm-ppc/unaligned.h 1.1.1.1 -> 1.7 # include/asm-ppc/system.h 1.1.1.3 -> 1.12 # arch/ppc/kernel/head_8xx.S 1.1.1.3 -> 1.13 # arch/ppc/lib/locks.c 1.1.1.2 -> 1.10 # arch/ppc/math-emu/fsqrt.c 1.1.1.1 -> 1.8 # arch/ppc/math-emu/mtfsf.c 1.1.1.1 -> 1.8 # drivers/char/tty_io.c 1.1.1.4 -> 1.7 # CREDITS 1.1.1.17 -> 1.21 # arch/sparc64/kernel/ioctl32.c 1.4.1.5 -> 1.10 # arch/ppc/boot/lib/zlib.c 1.1.1.1 -> 1.9 # include/asm-ppc/traps.h 1.1.1.1 -> 1.7 # arch/ppc/kernel/pci.h 1.1.1.2 -> 1.9 # arch/ppc/boot/mbx/head_8260.S 1.1.1.1 -> 1.9 # include/asm-ppc/mc146818rtc.h 1.1.1.1 -> 1.7 # arch/ppc/kernel/chrp_pci.c 1.1.1.4 -> 1.16 # arch/ppc/kernel/i8259.h 1.1.1.1 -> 1.7 # arch/ppc/math-emu/fneg.c 1.1.1.1 -> 1.8 # BitKeeper/etc/COPYING 1.1 -> (deleted) # drivers/ide/ide-features.c 1.1.1.1 -> 1.3 # drivers/video/controlfb.c 1.1.1.1 -> 1.3 # include/asm-ppc/bootinfo.h 1.1.1.2 -> 1.9 # arch/ppc/boot/utils/addnote.c 1.1.1.1 -> 1.8 # include/asm-ppc/dbdma.h 1.1.1.1 -> 1.7 # include/asm-ppc/m48t35.h 1.1.1.1 -> 1.7 # arch/ppc/kernel/pmac_pic.h 1.1.1.1 -> 1.7 # arch/ppc/kernel/sleep.S 1.1.1.2 -> 1.9 # arch/ppc/configs/mbx_defconfig 1.1.1.3 -> 1.9 # arch/ppc/xmon/subr_prf.c 1.1.1.1 -> 1.7 # arch/ppc/math-emu/fnmsub.c 1.1.1.1 -> 1.8 # include/asm-ppc/param.h 1.1.1.1 -> 1.7 # arch/ppc/configs/apus_defconfig 1.1.1.4 -> 1.10 # arch/ppc/amiga/config.c 1.1.1.2 -> 1.9 # include/asm-ppc/poll.h 1.1.1.1 -> 1.7 # include/asm-ppc/msgbuf.h 1.1.1.1 -> 1.7 # arch/ppc/xmon/nonstdio.h 1.1.1.1 -> 1.7 # arch/ppc/xmon/xmon.c 1.1.1.4 -> 1.13 # arch/ppc/kernel/time.c 1.1.1.5 -> 1.19 # arch/ppc/boot/tree/ld.script 1.1.1.1 -> 1.3 # include/asm-ppc/pgtable.h 1.1.1.3 -> 1.11 # include/asm-ppc/est8260.h 1.1.1.1 -> 1.7 # drivers/macintosh/mac_hid.c 1.1 -> 1.4 # arch/ppc/boot/common/Makefile 1.1 -> (deleted) # arch/ppc/boot/utils/mkevimg 1.1.1.2 -> 1.8 # drivers/char/keyboard.c 1.1 -> 1.2 # include/asm-ppc/ioctls.h 1.1.1.2 -> 1.9 # arch/ppc/configs/bseip_defconfig 1.1.1.3 -> 1.9 # arch/ppc/8260_io/enet.c 1.1.1.3 -> 1.8 # drivers/net/3c515.c 1.3.1.3 -> 1.7 # drivers/sound/dmasound/dmasound_atari.c 1.1 -> 1.2 # arch/ppc/boot/prep/misc.c 1.1.1.2 -> 1.13 # include/asm-ppc/machdep.h 1.1.1.3 -> 1.13 # include/asm-ppc/mmu_context.h 1.1.1.3 -> 1.11 # arch/ppc/kernel/mk_defs.c 1.1.1.1 -> 1.7 # include/asm-ppc/ohare.h 1.1.1.1 -> 1.7 # drivers/ide/ide-pmac.c 1.1.1.1 -> 1.4 # include/asm-ppc/8xx_immap.h 1.1.1.1 -> 1.7 # include/asm-ppc/raven.h 1.1.1.2 -> 1.9 # include/asm-ppc/vc_ioctl.h 1.1.1.1 -> 1.7 # include/asm-ppc/immap_8260.h 1.1.1.1 -> 1.7 # arch/ppc/mm/mem_pieces.c 1.1.1.1 -> 1.7 # arch/ppc/kernel/indirect_pci.c 1.1.1.2 -> 1.9 # arch/ppc/math-emu/fmsub.c 1.1.1.1 -> 1.8 # arch/ppc/boot/include/zlib.h 1.1.1.1 -> 1.9 # arch/ppc/boot/prep/head.S 1.1.1.1 -> 1.9 # include/asm-ppc/scatterlist.h 1.1.1.1 -> 1.7 # include/asm-ppc/div64.h 1.1.1.1 -> 1.7 # arch/ppc/mm/init.c 1.1.2.6 -> 1.26 # arch/ppc/kernel/proc_rtas.c 1.1.1.1 -> (deleted) # arch/ppc/amiga/Makefile 1.1.1.2 -> 1.7 # arch/ppc/boot/include/nonstdio.h 1.1.1.1 -> 1.8 # include/asm-ppc/termbits.h 1.1.1.1 -> 1.7 # include/asm-ppc/pgalloc.h 1.1.1.4 -> 1.11 # arch/ppc/math-emu/mcrfs.c 1.1.1.1 -> 1.8 # include/asm-ppc/heathrow.h 1.1.1.2 -> 1.9 # include/asm-ppc/vga.h 1.1.1.1 -> 1.7 # include/asm-ppc/hdreg.h 1.1.1.1 -> 1.7 # arch/ppc/math-emu/mtfsb1.c 1.1.1.1 -> 1.8 # include/asm-ppc/irq.h 1.1.1.3 -> 1.11 # arch/ppc/kernel/oak_setup.c 1.1.1.1 -> 1.7 # arch/ppc/amiga/bootinfo.c 1.1.1.1 -> 1.7 # arch/ppc/config.in 1.1.2.7 -> 1.29 # include/asm-ppc/elf.h 1.1.1.3 -> 1.12 # include/asm-ppc/timex.h 1.1.1.1 -> 1.7 # arch/ppc/kernel/align.c 1.1.1.1 -> 1.7 # arch/ppc/math-emu/fnmadd.c 1.1.1.1 -> 1.8 # include/linux/blkdev.h 1.2.1.2 -> 1.5 # arch/ppc/boot/chrp/start.c 1.1.1.1 -> 1.7 # arch/ppc/kernel/prep_nvram.c 1.1.1.3 -> 1.11 # arch/ppc/8xx_io/fec.c 1.1.1.5 -> 1.14 # include/linux/proc_fs.h 1.1.1.4 -> 1.6 # arch/ppc/defconfig 1.1.1.4 -> 1.10 # include/asm-ppc/mbx.h 1.1.1.2 -> 1.10 # include/asm-ppc/resource.h 1.1.1.1 -> 1.7 # include/asm-ppc/mk48t59.h 1.1.1.1 -> 1.7 # fs/dcache.c 1.5.1.6 -> 1.12 # arch/ppc/boot/mbx/embed_config.c 1.1.1.1 -> 1.8 # arch/ppc/boot/mbx/rdimage.c 1.1.1.1 -> 1.7 # include/asm-ppc/serial.h 1.1.1.3 -> 1.14 # include/asm-ppc/rwsem.h 1.1.1.1 -> (deleted) # arch/ppc/boot/utils/mkprep.c 1.1.1.1 -> 1.8 # include/asm-ppc/init.h 1.1.1.1 -> 1.7 # include/asm-ppc/amigayle.h 1.1.1.1 -> 1.7 # drivers/net/ncr885e.c 1.1 -> (deleted) # include/asm-ppc/posix_types.h 1.1.1.1 -> 1.7 # include/asm-ppc/amigappc.h 1.1.1.1 -> 1.7 # arch/ppc/kernel/chrp_time.c 1.1.1.2 -> 1.9 # arch/ppc/math-emu/fcmpo.c 1.1.1.1 -> 1.8 # include/asm-ppc/amipcmcia.h 1.1.1.1 -> 1.7 # arch/ppc/kernel/pmac_setup.c 1.1.1.6 -> 1.23 # arch/ppc/kernel/smp.c 1.1.2.5 -> 1.26 # include/linux/dcache.h 1.3.1.3 -> 1.7 # arch/ppc/kernel/pmac_pic.c 1.1.1.4 -> 1.16 # arch/ppc/8xx_io/uart.c 1.2.1.3 -> 1.13 # arch/ppc/math-emu/Makefile 1.1.1.1 -> 1.5 # drivers/input/keybdev.c 1.1.1.4 -> 1.10 # arch/ppc/boot/common/ns16550.c 1.1.1.1 -> 1.8 # include/asm-ppc/backlight.h 1.1.1.1 -> 1.7 # drivers/block/swim3.c 1.1.1.1 -> 1.4 # arch/ppc/xmon/start.c 1.1.1.3 -> 1.14 # include/asm-ppc/linux_logo.h 1.1.1.3 -> 1.10 # arch/ppc/xmon/ppc-dis.c 1.1.1.1 -> 1.7 # arch/ppc/math-emu/stfiwx.c 1.1.1.1 -> 1.8 # drivers/ide/ide-pnp.c 1.1.1.1 -> 1.10 # fs/smbfs/cache.c 1.3.1.2 -> 1.6 # arch/ppc/boot/utils/Makefile 1.1 -> (deleted) # include/asm-ppc/uninorth.h 1.1.1.2 -> 1.9 # drivers/char/serial.c 1.1.1.7 -> 1.10 # arch/ppc/configs/gemini_defconfig 1.1.1.1 -> (deleted) # include/asm-ppc/mpc8xx.h 1.1.1.3 -> 1.12 # include/asm-ppc/gg2.h 1.1.1.1 -> 1.7 # include/asm-ppc/pci-bridge.h 1.1.1.4 -> 1.13 # arch/ppc/kernel/apus_setup.c 1.1.1.3 -> 1.13 # arch/ppc/kernel/ppc8xx_pic.c 1.1.1.3 -> 1.12 # drivers/macintosh/via-pmu.c 1.1.1.2 -> 1.4 # arch/ppc/amiga/amiga_ksyms.c 1.1.1.1 -> 1.7 # drivers/video/aty128.h 1.1 -> 1.2 # include/asm-ppc/page.h 1.1.1.1 -> 1.7 # include/asm-ppc/prep_nvram.h 1.1.1.2 -> 1.9 # include/asm-ppc/sembuf.h 1.1.1.1 -> 1.7 # arch/ppc/kernel/bitops.c 1.1.1.2 -> 1.9 # arch/ppc/amiga/chipram.c 1.1.1.2 -> 1.9 # BitKeeper/etc/ignore 1.1 -> 1.6 # arch/ppc/boot/common/crt0.S 1.1.2.1 -> 1.11 # arch/ppc/kernel/i8259.c 1.1.1.2 -> 1.9 # arch/ppc/configs/SM850_defconfig 1.1.2.1 -> (deleted) # drivers/net/Config.in 1.1.1.11 -> 1.18 # arch/ppc/boot/tree/main.c 1.1.1.1 -> 1.9 # Documentation/sysrq.txt 1.2.1.1 -> 1.4 # drivers/ide/Config.in 1.1.1.1 -> 1.3 # arch/ppc/boot/common/misc-simple.c 1.1 -> (deleted) # arch/ppc/mm/4xx_tlb.h 1.1.1.1 -> 1.7 # drivers/scsi/aic7xxx/aicasm/Makefile 1.1.1.2 -> 1.5 # include/asm-ppc/feature.h 1.1.1.3 -> 1.11 # arch/ppc/math-emu/types.c 1.1.1.1 -> 1.7 # arch/ppc/boot/utils/offset 1.1.1.1 -> 1.3 # include/asm-ppc/setup.h 1.1.1.1 -> 1.7 # arch/ppc/kernel/error_log.h 1.1.1.1 -> (deleted) # arch/ppc/math-emu/fadds.c 1.1.1.1 -> 1.8 # arch/ppc/boot/pmac/coffmain.c 1.1.1.1 -> (deleted) # arch/ppc/boot/pmac/misc.S 1.1.1.1 -> 1.7 # arch/ppc/kernel/pmac_backlight.c 1.1.1.1 -> 1.7 # arch/ppc/configs/rpxcllf_defconfig 1.1.1.3 -> 1.9 # include/video/macmodes.h 1.1 -> 1.2 # include/asm-ppc/ipcbuf.h 1.1.1.1 -> 1.7 # include/asm-ppc/mpc8260.h 1.1.1.1 -> 1.9 # arch/ppc/kernel/open_pic.h 1.1.1.3 -> 1.10 # arch/ppc/kernel/gemini_pci.c 1.1.1.1 -> (deleted) # kernel/ksyms.c 1.14.1.1 -> 1.17 # include/asm-ppc/siginfo.h 1.1.1.1 -> 1.7 # arch/ppc/amiga/time.c 1.1.1.1 -> 1.7 # arch/ppc/configs/common_defconfig 1.1.1.3 -> 1.8 # arch/ppc/kernel/setup.c 1.1.2.6 -> 1.42 # drivers/video/chipsfb.c 1.1.1.2 -> 1.6 # drivers/net/bmac.c 1.1.1.2 -> 1.10 # drivers/net/ne2k-pci.c 1.1.1.3 -> 1.7 # MAINTAINERS 1.1.1.15 -> 1.20 # (new) -> 1.12 arch/ppc/boot/pmac/coffmain.c # arch/ppc/boot/mbx/gzimage.c 1.1.1.1 -> 1.7 # include/asm-ppc/shmparam.h 1.1.1.1 -> 1.7 # arch/ppc/8xx_io/Makefile 1.1.1.1 -> 1.5 # arch/ppc/math-emu/fcmpu.c 1.1.1.1 -> 1.8 # arch/ppc/math-emu/fsubs.c 1.1.1.1 -> 1.8 # include/asm-ppc/atomic.h 1.1.1.2 -> 1.10 # include/asm-ppc/pci.h 1.1.1.5 -> 1.14 # include/asm-ppc/shmbuf.h 1.1.1.1 -> 1.7 # arch/ppc/kernel/oak_setup.h 1.1.1.1 -> 1.7 # include/asm-ppc/smplock.h 1.1.1.2 -> 1.9 # arch/ppc/kernel/idle.c 1.1.1.4 -> 1.13 # arch/ppc/kernel/walnut_setup.c 1.1.1.1 -> 1.7 # arch/ppc/configs/rpxlite_defconfig 1.1.1.3 -> 1.9 # include/asm-ppc/unistd.h 1.1.1.2 -> 1.9 # drivers/ide/ide-pci.c 1.4.1.1 -> 1.6 # drivers/video/macmodes.c 1.2 -> 1.3 # drivers/macintosh/mac_keyb.c 1.1 -> 1.2 # include/asm-ppc/processor.h 1.1.2.5 -> 1.24 # drivers/md/md.c 1.5.1.6 -> 1.12 # arch/ppc/kernel/signal.c 1.1.1.2 -> 1.9 # fs/nfsd/nfsproc.c 1.2.1.2 -> 1.5 # arch/ppc/kernel/pci-dma.c 1.1.1.1 -> 1.7 # arch/ppc/math-emu/fmuls.c 1.1.1.1 -> 1.8 # include/asm-ppc/mediabay.h 1.1.1.1 -> 1.7 # include/asm-ppc/ppc4xx.h 1.1.1.1 -> (deleted) # arch/ppc/8xx_io/commproc.c 1.1.1.2 -> 1.11 # scripts/mkdep.c 1.1.1.1 -> 1.4 # include/asm-ppc/nvram.h 1.1.1.1 -> 1.7 # include/asm-ppc/gemini_serial.h 1.1.1.1 -> (deleted) # arch/ppc/configs/IVMS8_defconfig 1.1.2.1 -> (deleted) # arch/ppc/math-emu/frsp.c 1.1.1.1 -> 1.8 # drivers/net/ncr885_debug.h 1.1 -> (deleted) # include/asm-ppc/termios.h 1.1.1.4 -> 1.11 # include/asm-ppc/checksum.h 1.1.1.2 -> 1.10 # arch/ppc/xmon/ppc-opc.c 1.1.1.1 -> 1.7 # arch/ppc/math-emu/fmul.c 1.1.1.1 -> 1.8 # arch/ppc/math-emu/lfd.c 1.1.1.1 -> 1.8 # include/asm-ppc/io.h 1.1.1.2 -> 1.9 # include/asm-ppc/socket.h 1.2.1.1 -> 1.8 # arch/i386/kernel/pci-pc.c 1.3.1.4 -> 1.8 # include/asm-ppc/smp.h 1.1.1.3 -> 1.11 # arch/ppc/kernel/process.c 1.1.1.4 -> 1.19 # include/asm-ppc/ipc.h 1.1.1.1 -> 1.7 # arch/ppc/math-emu/op-common.h 1.1.1.1 -> 1.7 # arch/ppc/boot/tree/misc.S 1.1.1.1 -> 1.8 # include/asm-ppc/ide.h 1.1.1.3 -> 1.12 # arch/ppc/lib/Makefile 1.1.1.3 -> 1.9 # arch/ppc/amiga/cia.c 1.1.1.2 -> 1.9 # Documentation/powerpc/ppc_htab.txt 1.1.1.1 -> 1.3 # arch/ppc/boot/prep/of1275.h 1.1.1.1 -> 1.7 # include/asm-ppc/bootx.h 1.1.1.1 -> 1.7 # arch/ppc/kernel/open_pic_defs.h 1.1.2.1 -> (deleted) # arch/ppc/boot/common/no_initrd.c 1.1.1.1 -> 1.8 # include/asm-ppc/amigahw.h 1.1.1.1 -> 1.7 # arch/ppc/math-emu/mtfsfi.c 1.1.1.1 -> 1.8 # Documentation/Configure.help 1.1.2.13 -> 1.30 # arch/ppc/boot/images/Makefile 1.1 -> (deleted) # include/asm-ppc/walnut.h 1.1.1.2 -> 1.9 # arch/ppc/kernel/semaphore.c 1.1.1.3 -> 1.14 # arch/ppc/xmon/start_8xx.c 1.1.1.2 -> 1.9 # arch/ppc/boot/mbx/misc.c 1.1.1.1 -> 1.10 # arch/ppc/amiga/amiints.c 1.2.1.2 -> 1.10 # fs/nfsd/vfs.c 1.2.1.2 -> 1.5 # include/asm-ppc/time.h 1.1.1.3 -> 1.12 # arch/ppc/kernel/gemini_prom.S 1.1.1.1 -> (deleted) # fs/proc/root.c 1.1.1.2 -> 1.4 # arch/ppc/boot/utils/piggyback.c 1.1.1.1 -> 1.8 # include/asm-ppc/mmu.h 1.1.1.2 -> 1.9 # drivers/net/gmac.c 1.1.1.2 -> 1.12 # arch/ppc/boot/tree/Makefile 1.1.1.1 -> 1.7 # include/asm-ppc/fads.h 1.1.1.2 -> 1.10 # arch/ppc/kernel/local_irq.h 1.1.1.2 -> 1.9 # arch/ppc/amiga/pcmcia.c 1.1.1.1 -> 1.7 # Makefile 1.19.1.23 -> 1.44 # arch/ppc/kernel/irq.c 1.1.1.6 -> 1.27 # include/asm-ppc/uaccess.h 1.1.1.1 -> 1.7 # arch/ppc/kernel/prep_time.c 1.1.1.2 -> 1.9 # arch/ppc/8xx_io/enet.c 1.1.1.4 -> 1.12 # arch/ppc/kernel/Makefile 1.1.2.6 -> 1.20 # arch/ppc/mm/fault.c 1.1.1.4 -> 1.12 # arch/ppc/boot/mbx/head.S 1.1.1.1 -> 1.10 # include/asm-ppc/kgdb.h 1.1.1.1 -> 1.7 # arch/ppc/8260_io/commproc.c 1.1.1.1 -> 1.9 # arch/ppc/math-emu/mffs.c 1.1.1.1 -> 1.8 # arch/ppc/kernel/chrp_setup.c 1.1.1.8 -> 1.21 # include/asm-ppc/semaphore.h 1.1.1.5 -> 1.17 # arch/ppc/kernel/misc.S 1.1.1.3 -> 1.19 # arch/ppc/8260_io/Makefile 1.1.1.1 -> 1.5 # arch/ppc/math-emu/fnmadds.c 1.1.1.1 -> 1.8 # drivers/net/Makefile 1.1.1.7 -> 1.13 # arch/ppc/kernel/entry.S 1.1.1.4 -> 1.16 # arch/ppc/boot/mbx/Makefile 1.1.1.2 -> 1.8 # arch/ppc/boot/prep/of1275.c 1.1.1.1 -> 1.7 # arch/ppc/kernel/prep_setup.c 1.1.1.6 -> 1.22 # arch/ppc/kernel/xics.h 1.1.1.1 -> 1.7 # arch/ppc/math-emu/math.c 1.1.1.1 -> 1.8 # drivers/net/3c509.c 1.3.1.3 -> 1.7 # drivers/sound/dmasound/dmasound.h 1.1 -> 1.2 # arch/ppc/boot/mbx/pci.c 1.1.1.1 -> 1.7 # include/asm-ppc/stat.h 1.1.1.1 -> 1.7 # arch/ppc/math-emu/fdiv.c 1.1.1.1 -> 1.8 # arch/ppc/math-emu/fres.c 1.1.1.1 -> 1.8 # drivers/video/aty128fb.c 1.1.1.1 -> 1.6 # arch/ppc/xmon/ansidecl.h 1.1.1.1 -> 1.7 # arch/ppc/math-emu/op-1.h 1.1.1.1 -> 1.7 # arch/ppc/math-emu/fdivs.c 1.1.1.1 -> 1.8 # include/asm-ppc/keylargo.h 1.1.1.3 -> 1.11 # include/asm-ppc/prom.h 1.1.1.3 -> 1.14 # arch/ppc/math-emu/fmadd.c 1.1.1.1 -> 1.8 # arch/ppc/boot/lib/Makefile 1.1 -> (deleted) # arch/ppc/boot/prep/vreset.c 1.1.1.2 -> 1.10 # include/asm-ppc/spd8xx.h 1.1.1.1 -> (deleted) # drivers/video/offb.c 1.1.1.1 -> 1.5 # arch/ppc/kernel/ppc_ksyms.c 1.1.1.6 -> 1.35 # arch/ppc/boot/prep/kbd.c 1.1.1.1 -> 1.8 # include/asm-ppc/floppy.h 1.1.1.1 -> 1.7 # arch/ppc/boot/include/rs6000.h 1.1.1.1 -> 1.8 # include/asm-ppc/fcntl.h 1.1.1.1 -> 1.7 # arch/ppc/xmon/setjmp.c 1.1.1.1 -> 1.7 # drivers/video/clgenfb.c 1.1.1.2 -> 1.5 # drivers/video/atyfb.c 1.1.1.4 -> 1.6 # arch/ppc/boot/mbx/m8260_tty.c 1.1.1.1 -> 1.8 # include/asm-ppc/rpxhiox.h 1.1.1.1 -> (deleted) # arch/ppc/kernel/open_pic.c 1.1.2.4 -> 1.22 # arch/ppc/kernel/error_log.c 1.1.1.1 -> (deleted) # arch/ppc/math-emu/fmsubs.c 1.1.1.1 -> 1.8 # arch/ppc/math-emu/soft-fp.h 1.1.1.1 -> 1.7 # arch/ppc/boot/utils/elf.pl 1.1.1.1 -> 1.4 # arch/ppc/8xx_io/commproc.h 1.2.1.2 -> 1.13 # arch/ppc/math-emu/fctiw.c 1.1.1.1 -> 1.8 # include/asm-ppc/amigaints.h 1.1.1.1 -> 1.7 # include/asm-ppc/md.h 1.1.1.1 -> 1.7 # arch/ppc/kernel/find_name.c 1.1.1.1 -> 1.7 # arch/ppc/math-emu/mtfsb0.c 1.1.1.1 -> 1.8 # include/asm-ppc/bitops.h 1.1.1.3 -> 1.10 # arch/ppc/boot/pmac/ld.script 1.1.1.1 -> 1.3 # include/asm-ppc/sockios.h 1.1.1.1 -> 1.7 # arch/ppc/lib/string.S 1.1.1.1 -> 1.7 # arch/ppc/configs/TQM850L_defconfig 1.1.2.1 -> (deleted) # include/asm-ppc/signal.h 1.1.1.1 -> 1.7 # include/asm-ppc/hw_irq.h 1.1.1.3 -> 1.12 # arch/ppc/lib/strcase.c 1.1.1.1 -> 1.7 # arch/ppc/configs/TQM860L_defconfig 1.1.2.1 -> (deleted) # drivers/scsi/sym53c8xx_defs.h 1.2 -> 1.3 # drivers/usb/hid.c 1.1.1.4 -> 1.6 # arch/ppc/boot/pmac/chrpmain.c 1.1.1.2 -> 1.12 # arch/ppc/boot/utils/hack-coff.c 1.1.1.1 -> 1.9 # arch/ppc/kernel/ppc8xx_pic.h 1.1.1.2 -> 1.9 # arch/ppc/lib/checksum.S 1.1.1.1 -> 1.7 # arch/ppc/math-emu/sfp-machine.h 1.1.1.1 -> 1.7 # include/asm-ppc/board.h 1.1.1.1 -> 1.7 # arch/ppc/kernel/ptrace.c 1.1.1.1 -> 1.7 # arch/ppc/math-emu/fsqrts.c 1.1.1.1 -> 1.8 # arch/ppc/kernel/head.S 1.1.2.5 -> 1.22 # arch/ppc/boot/mbx/m8xx_tty.c 1.1.1.1 -> 1.9 # include/asm-ppc/hydra.h 1.1.1.1 -> 1.7 # arch/ppc/configs/oak_defconfig 1.1.1.3 -> 1.8 # arch/ppc/kernel/pmac_time.c 1.1.1.2 -> 1.10 # arch/ppc/math-emu/fmadds.c 1.1.1.1 -> 1.8 # fs/binfmt_elf.c 1.4.1.1 -> 1.7 # arch/ppc/kernel/prom.c 1.1.2.6 -> 1.25 # arch/ppc/kernel/hashtable.S 1.1.1.3 -> 1.13 # arch/ppc/math-emu/fnabs.c 1.1.1.1 -> 1.8 # arch/ppc/8260_io/uart.c 1.2.1.1 -> 1.10 # arch/ppc/boot/pmac/dummy.c 1.1.1.1 -> 1.7 # arch/ppc/kernel/ppc4xx_pic.c 1.1.1.1 -> 1.7 # drivers/macintosh/macserial.c 1.1.1.1 -> 1.5 # include/asm-ppc/statfs.h 1.1.1.1 -> 1.7 # arch/ppc/boot/utils/mknote.c 1.1.1.1 -> 1.8 # arch/ppc/kernel/apus_pci.h 1.1.1.1 -> (deleted) # arch/ppc/math-emu/fsub.c 1.1.1.1 -> 1.8 # include/asm-ppc/ppc4xx_serial.h 1.1.1.1 -> (deleted) # arch/ppc/math-emu/single.h 1.1.1.1 -> 1.7 # drivers/scsi/sym53c8xx.c 1.1.1.6 -> 1.10 # drivers/net/mace.c 1.1.1.5 -> 1.9 # arch/ppc/math-emu/fmr.c 1.1.1.1 -> 1.8 # drivers/pci/pci.ids 1.2.1.2 -> 1.5 # drivers/net/gmac.h 1.1.1.1 -> 1.6 # Documentation/powerpc/zImage_layout.txt 1.1.1.1 -> 1.4 # arch/ppc/boot/chrp/Makefile 1.1.1.2 -> 1.9 # arch/ppc/boot/utils/sisize 1.1.1.1 -> (deleted) # arch/ppc/kernel/checks.c 1.2.1.1 -> 1.8 # arch/ppc/kernel/apus_pci.c 1.1.1.1 -> (deleted) # include/linux/pci_ids.h 1.1.1.6 -> 1.10 # arch/ppc/boot/pmac/Makefile 1.1.1.3 -> 1.11 # arch/ppc/kernel/residual.c 1.2.1.1 -> 1.9 # arch/ppc/amiga/amisound.c 1.1.1.1 -> 1.7 # arch/ppc/math-emu/stfs.c 1.1.1.1 -> 1.8 # BitKeeper/etc/logging_ok 1.1.1.9 -> 1.28 # arch/ppc/boot/tree/irSect.h 1.1.1.1 -> 1.7 # include/asm-ppc/bugs.h 1.1.1.1 -> 1.7 # include/asm-ppc/tqm8xx.h 1.1.2.1 -> (deleted) # net/sunrpc/svcsock.c 1.2.1.3 -> 1.6 # include/asm-ppc/softirq.h 1.1.1.3 -> 1.11 # include/asm-ppc/dma.h 1.1.2.2 -> 1.10 # include/asm-ppc/kmap_types.h 1.1.1.2 -> 1.8 # include/asm-ppc/module.h 1.1.1.1 -> 1.7 # include/asm-ppc/gemini.h 1.1.1.1 -> (deleted) # arch/ppc/kernel/m8260_setup.c 1.1.1.6 -> 1.19 # include/linux/rwsem.h 1.4.1.2 -> 1.7 # include/asm-ppc/sigcontext.h 1.1.1.1 -> 1.7 # arch/ppc/kernel/traps.c 1.1.1.4 -> 1.14 # arch/ppc/kernel/gemini_setup.c 1.1.1.1 -> (deleted) # arch/ppc/configs/ibmchrp_defconfig 1.1.1.1 -> (deleted) # kernel/ptrace.c 1.1.1.1 -> 1.3 # Documentation/powerpc/sound.txt 1.1.1.1 -> 1.3 # arch/ppc/kernel/ppc-stub.c 1.1.1.1 -> 1.8 # arch/ppc/kernel/qspan_pci.c 1.1.1.1 -> 1.7 # arch/ppc/configs/walnut_defconfig 1.1.1.3 -> 1.8 # drivers/block/ll_rw_blk.c 1.1.1.13 -> 1.16 # include/asm-ppc/errno.h 1.1.1.1 -> 1.9 # include/asm-ppc/string.h 1.1.1.1 -> 1.7 # arch/ppc/8260_io/fcc_enet.c 1.1.1.4 -> 1.11 # arch/ppc/math-emu/frsqrte.c 1.1.1.1 -> 1.8 # arch/ppc/boot/prep/Makefile 1.1 -> (deleted) # arch/ppc/xmon/Makefile 1.1.1.1 -> 1.5 # drivers/pci/Makefile 1.1.1.3 -> 1.5 # arch/ppc/math-emu/lfs.c 1.1.1.1 -> 1.8 # fs/ncpfs/dir.c 1.3.1.1 -> 1.5 # drivers/macintosh/Makefile 1.1.1.1 -> 1.4 # arch/ppc/kernel/feature.c 1.1.1.4 -> 1.13 # include/asm-ppc/bseip.h 1.1.1.2 -> 1.9 # include/asm-ppc/parport.h 1.1.1.1 -> (deleted) # arch/ppc/kernel/ppc_asm.h 1.1.1.3 -> 1.12 # arch/ppc/kernel/ppc8260_pic.c 1.1.1.1 -> 1.7 # arch/ppc/math-emu/fsel.c 1.1.1.1 -> 1.8 # include/asm-ppc/segment.h 1.1.1.2 -> 1.9 # arch/ppc/kernel/pmac_nvram.c 1.1.1.1 -> 1.7 # arch/ppc/xmon/ppc.h 1.1.1.1 -> 1.7 # arch/ppc/boot/tree/irSect.c 1.1.1.1 -> 1.7 # include/asm-ppc/byteorder.h 1.1.1.1 -> 1.7 # include/asm-ppc/namei.h 1.1.1.1 -> 1.7 # include/asm-ppc/xor.h 1.1.1.1 -> 1.7 # arch/ppc/kernel/pci.c 1.1.1.6 -> 1.23 # arch/ppc/math-emu/double.h 1.1.1.1 -> 1.7 # arch/ppc/math-emu/fnmsubs.c 1.1.1.1 -> 1.8 # drivers/net/ncr885e.h 1.1 -> (deleted) # (new) -> 1.9 arch/ppc/boot/common/string.S # arch/ppc/boot/common/string.S 1.1.1.1 -> (deleted) # arch/ppc/boot/utils/mkirimg 1.1.1.1 -> 1.5 # arch/ppc/mm/mem_pieces.h 1.1.1.1 -> 1.7 # include/asm-ppc/hardirq.h 1.1.1.3 -> 1.11 # arch/ppc/kernel/galaxy_pci.c 1.1.1.2 -> 1.9 # arch/ppc/configs/est8260_defconfig 1.1.1.3 -> 1.8 # arch/ppc/math-emu/stfd.c 1.1.1.1 -> 1.8 # drivers/sound/dmasound/dmasound_awacs.c 1.1.1.1 -> 1.6 # arch/ppc/amiga/ints.c 1.1.1.1 -> 1.7 # arch/ppc/xmon/privinst.h 1.1.1.1 -> 1.7 # arch/ppc/8xx_io/Config.in 1.1.1.2 -> 1.5 # arch/ppc/boot/mbx/qspan_pci.c 1.1.1.1 -> 1.7 # include/asm-ppc/cpm_8260.h 1.1.1.2 -> 1.11 # include/asm-ppc/mman.h 1.1.1.2 -> 1.9 # include/asm-ppc/keyboard.h 1.1.1.1 -> 1.7 # arch/ppc/boot/prep/iso_font.h 1.1.1.1 -> 1.7 # arch/ppc/mm/4xx_tlb.c 1.1.1.1 -> 1.7 # arch/ppc/Makefile 1.1.1.5 -> 1.16 # arch/ppc/boot/chrp/misc.S 1.1.1.1 -> 1.7 # arch/ppc/boot/utils/mksimage.c 1.1.1.1 -> (deleted) # drivers/net/pcnet32.c 1.1.1.6 -> 1.9 # include/asm-ppc/cache.h 1.1.1.1 -> 1.9 # arch/ppc/math-emu/op-4.h 1.1.1.1 -> 1.7 # drivers/sound/dmasound/Makefile 1.1 -> 1.2 # arch/ppc/boot/utils/sioffset 1.1.1.1 -> (deleted) # arch/ppc/kernel/ppc_htab.c 1.1.1.2 -> 1.10 # arch/ppc/math-emu/op-2.h 1.1.1.1 -> 1.7 # drivers/scsi/sr.c 1.3.1.2 -> 1.6 # arch/ppc/8260_io/Config.in 1.1 -> 1.3 # include/asm-ppc/ioctl.h 1.1.1.1 -> 1.7 # arch/ppc/mm/extable.c 1.1.1.1 -> 1.7 # arch/ppc/kernel/head_4xx.S 1.1.1.1 -> 1.8 # Documentation/powerpc/smp.txt 1.1.1.1 -> 1.3 # drivers/sound/dmasound/dmasound_core.c 1.1.1.1 -> 1.5 # include/asm-ppc/a.out.h 1.1.1.1 -> 1.7 # include/asm-ppc/pnp.h 1.1.1.1 -> 1.7 # include/asm-ppc/ivms8.h 1.1.1.1 -> (deleted) # arch/ppc/kernel/prep_pci.c 1.1.1.5 -> 1.20 # arch/ppc/math-emu/fabs.c 1.1.1.1 -> 1.8 # arch/ppc/boot/utils/size 1.1.1.1 -> 1.3 # include/asm-ppc/residual.h 1.1.1.1 -> 1.7 # include/asm-ppc/rpxlite.h 1.1.1.2 -> 1.10 # arch/ppc/kernel/ppc8260_pic.h 1.1.1.2 -> 1.9 # arch/ppc/math-emu/udivmodti4.c 1.1.1.1 -> 1.7 # arch/ppc/configs/power3_defconfig 1.1.1.1 -> (deleted) # include/asm-ppc/spinlock.h 1.1.1.1 -> 1.7 # include/asm-ppc/tlb.h 1.1.1.1 -> (deleted) # arch/ppc/mm/Makefile 1.1.1.1 -> 1.5 # arch/ppc/kernel/m8xx_setup.c 1.1.1.6 -> 1.19 # arch/ppc/kernel/pmac_pci.c 1.1.1.4 -> 1.16 # arch/ppc/configs/SPD823TS_defconfig 1.1.2.1 -> (deleted) # arch/ppc/configs/TQM823L_defconfig 1.1.2.1 -> (deleted) # arch/ppc/math-emu/fadd.c 1.1.1.1 -> 1.8 # arch/ppc/math-emu/fctiwz.c 1.1.1.1 -> 1.8 # arch/ppc/boot/Makefile 1.1.2.3 -> 1.17 arch/ppc/boot/prep/Makefile (moved) # arch/ppc/boot/mbx/iic.c 1.1.1.1 -> 1.9 # include/asm-ppc/current.h 1.1.1.1 -> 1.7 # arch/ppc/kernel/xics.c 1.1.1.1 -> 1.7 # arch/ppc/kernel/walnut_setup.h 1.1.1.1 -> 1.7 # arch/ppc/xmon/adb.c 1.1.1.1 -> 1.7 # arch/ppc/boot/common/misc-common.c 1.1.1.1 -> (deleted) # include/linux/mmzone.h 1.1.1.3 -> 1.5 # include/asm-ppc/user.h 1.1.1.1 -> 1.7 # include/asm-ppc/highmem.h 1.1.1.2 -> 1.9 # include/asm-ppc/oak.h 1.1.1.2 -> 1.9 # include/asm-ppc/ucontext.h 1.1.1.1 -> 1.7 # arch/ppc/kernel/softemu8xx.c 1.1.1.3 -> 1.10 # arch/ppc/kernel/syscalls.c 1.2.1.2 -> 1.10 # arch/ppc/boot/pmac/start.c 1.1.1.2 -> 1.9 # include/asm-ppc/delay.h 1.1.1.2 -> 1.9 # include/asm-ppc/types.h 1.1.1.1 -> 1.7 # include/asm-ppc/rpxclassic.h 1.1.1.2 -> 1.10 # drivers/macintosh/macserial.h 1.1.1.1 -> 1.4 # drivers/net/bmac.h 1.1 -> 1.3 # (new) -> 1.2 arch/ppc/boot/utils/sioffset # (new) -> 1.5 include/asm-ppc/tlb.h # (new) -> 1.3 arch/ppc/configs/gemini_defconfig # (new) -> 1.1 arch/ppc/boot/lib/Makefile # (new) -> 1.2 arch/ppc/configs/power3_defconfig # (new) -> 1.1 BitKeeper/etc/COPYING # (new) -> 1.2 arch/ppc/configs/ibmchrp_defconfig # (new) -> 1.3 drivers/net/ncr885e.h # (new) -> 1.4 arch/ppc/configs/SPD823TS_defconfig # (new) -> 1.1 arch/ppc/boot/utils/Makefile # (new) -> 1.3 arch/ppc/kernel/apus_pci.c # (new) -> 1.6 BitKeeper/triggers/post-incoming # (new) -> 1.2 arch/ppc/boot/utils/sisize # (new) -> 1.2 BitKeeper/etc/gone # (new) -> 1.5 include/asm-ppc/spd8xx.h # (new) -> 1.5 arch/ppc/kernel/gemini_prom.S # (new) -> 1.4 arch/ppc/boot/Makefile # (new) -> 1.4 arch/ppc/configs/TQM860L_defconfig # (new) -> 1.1 arch/ppc/boot/common/misc-simple.c # (new) -> 1.4 arch/ppc/configs/SM850_defconfig # (new) -> 1.3 include/asm-ppc/ppc4xx.h # (new) -> 1.5 include/asm-ppc/gemini_serial.h # (new) -> 1.3 drivers/net/ncr885e.c # (new) -> 1.5 include/asm-ppc/parport.h # (new) -> 1.5 include/asm-ppc/gemini.h # (new) -> 1.5 arch/ppc/kernel/error_log.h # (new) -> 1.1 drivers/sgi/char/linux_logo.h # (new) -> 1.4 arch/ppc/configs/TQM823L_defconfig # (new) -> 1.3 arch/ppc/configs/IVMS8_defconfig # (new) -> 1.6 arch/ppc/boot/utils/mksimage.c # (new) -> 1.3 drivers/net/ncr885_debug.h # (new) -> 1.1 arch/ppc/boot/common/Makefile # (new) -> 1.6 arch/ppc/kernel/error_log.c # (new) -> 1.5 include/asm-ppc/ivms8.h # (new) -> 1.6 include/asm-ppc/rwsem.h # (new) -> 1.5 arch/ppc/kernel/proc_rtas.c # (new) -> 1.3 include/asm-ppc/ppc4xx_serial.h # (new) -> 1.5 arch/ppc/kernel/gemini_pci.c # (new) -> 1.6 include/asm-ppc/tqm8xx.h # (new) -> 1.3 include/asm-ppc/rpxhiox.h # (new) -> 1.7 arch/ppc/kernel/gemini_setup.c # (new) -> 1.7 arch/ppc/kernel/open_pic_defs.h # (new) -> 1.4 arch/ppc/configs/TQM850L_defconfig # (new) -> 1.4 arch/ppc/kernel/apus_pci.h # (new) -> 1.3 arch/ppc/boot/common/misc-common.c # (new) -> 1.1 arch/ppc/boot/images/Makefile # # The following is the BitKeeper ChangeSet Log # -------------------------------------------- # 01/06/15 paulus@tango.paulus.ozlabs.org 1.2.2.24 # bk-work-patch-pre3.8622.new # -------------------------------------------- # 01/06/15 paulus@tango.paulus.ozlabs.org 1.135 # merge to 2.4.6-pre3 # -------------------------------------------- # 01/06/15 paulus@cargo.(none) 1.136 # Patches 02-printbt.patch, 03-sysrq.patch and 04-prepboot.patch # from Tom Rini # -------------------------------------------- # 01/06/15 paulus@cargo.(none) 1.137 # 4xx boot patch from Tom Rini (05-4xxboot.patch) # -------------------------------------------- # 01/06/15 paulus@cargo.(none) 1.138 # 4xx update from Montavista via Tom Rini # -------------------------------------------- # 01/06/16 paulus@cargo.(none) 1.139 # update rs/6000 and PPP entries # -------------------------------------------- # 01/06/16 paulus@cargo.(none) 1.140 # Add support for changing the colormap on the IBM GXT2000P card # Fix the bug where unblank would trash the colormap # -------------------------------------------- # 01/06/16 paulus@cargo.(none) 1.141 # use module_init to initialize macserial # -------------------------------------------- # diff -Nru a/BitKeeper/etc/gone b/BitKeeper/etc/gone --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/BitKeeper/etc/gone Sat Jun 16 06:00:13 2001 @@ -0,0 +1,2 @@ +include/linux/openpic.h +arch/ppc/coffboot/main.c diff -Nru a/BitKeeper/etc/ignore b/BitKeeper/etc/ignore --- a/BitKeeper/etc/ignore Sat Jun 16 06:00:04 2001 +++ b/BitKeeper/etc/ignore Sat Jun 16 06:00:04 2001 @@ -1 +1,58 @@ -BitKeeper/*/* +*.a +*.o +*.stamp +*.ver +.*.a.flags +.*.o.flags +.config +.config.old +.depend +.hdepend +.version +BitKeeper/etc/.cached_proxy +BitKeeper/etc/csets-in +BitKeeper/etc/csets-out +PENDING/* +System.map +arch/ppc/boot/images/miboot.* +arch/ppc/boot/images/sImage +arch/ppc/boot/images/vmlinux* +arch/ppc/boot/images/zImage* +arch/ppc/boot/images/zvmlinux* +arch/ppc/boot/utils/addnote +arch/ppc/boot/utils/coffboot +arch/ppc/boot/utils/hack-coff +arch/ppc/boot/utils/mknote +arch/ppc/boot/utils/mkprep +arch/ppc/boot/utils/mksimage +arch/ppc/boot/utils/note +arch/ppc/boot/utils/piggyback +arch/ppc/kernel/checks +arch/ppc/kernel/ppc_defs.h +drivers/char/conmakehash +drivers/char/consolemap_deftbl.c +drivers/net/hamradio/soundmodem/gentbl +drivers/net/hamradio/soundmodem/sm_tbl_afsk1200.h +drivers/net/hamradio/soundmodem/sm_tbl_afsk2400_7.h +drivers/net/hamradio/soundmodem/sm_tbl_afsk2400_8.h +drivers/net/hamradio/soundmodem/sm_tbl_afsk2666.h +drivers/net/hamradio/soundmodem/sm_tbl_fsk9600.h +drivers/net/hamradio/soundmodem/sm_tbl_hapn4800.h +drivers/net/hamradio/soundmodem/sm_tbl_psk4800.h +drivers/pci/classlist.h +drivers/pci/devlist.h +drivers/pci/gen-devlist +drivers/scsi/aic7xxx/aicasm/aicasm +drivers/scsi/aic7xxx/aicasm/aicasm_gram.c +drivers/scsi/aic7xxx/aicasm/aicasm_scan.c +drivers/scsi/aic7xxx/aicasm/y.tab.h +include/asm +include/config/* +include/linux/autoconf.h +include/linux/compile.h +include/linux/modversions.h +include/linux/version.h +scripts/lxdialog/lxdialog +scripts/mkdep +scripts/split-include +vmlinux diff -Nru a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok --- a/BitKeeper/etc/logging_ok Sat Jun 16 06:00:08 2001 +++ b/BitKeeper/etc/logging_ok Sat Jun 16 06:00:08 2001 @@ -1,10 +1,29 @@ +benh@sawtooth.wanadoo.fr +benh@streumon.mipsys.com +benh@zion.wanadoo.fr +cort@cort. +cort@cort.fsmlabs.com +cort@f50.fsmlabs.com cort@ftsoj.fsmlabs.com -paulus@diego.linuxcare.com.au -paulus@argo.linuxcare.com.au -paulus@tango.linuxcare.com.au cort@hq.fsmlabs.com +danc@phong.az.mvista.com +dmalek@dp500.netx4.com +geert@callisto.of.borg +geert@tux.home +geert@tux.of.borg +geert@tux.sonytel.be +hozer@narn.drgw.net +hozer@narn.local.drgw.net +mporter@beef.az.mvista.com +paulus@argo.canberra.net.au +paulus@argo.linuxcare.com.au +paulus@argo.ozlabs.ibm.com paulus@argo.ozlabs.ibm.com.au -cort@cort.fsmlabs.com -cort@f50.fsmlabs.com -cort@cort. +paulus@diego.linuxcare.com.au +paulus@tango.linuxcare.com.au paulus@tango.paulus.ozlabs.org +tgall@vorlon.rchland.ibm.com +trini@bill-the-cat.bloom.county +trini@entropy.crashing.org +trini@opus.bloom.county +paulus@cargo.(none) diff -Nru a/BitKeeper/triggers/post-incoming b/BitKeeper/triggers/post-incoming --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/BitKeeper/triggers/post-incoming Sat Jun 16 06:00:13 2001 @@ -0,0 +1,12 @@ +#!/bin/sh + +REPO=`bk gethost`:`pwd` +if [ "$BK_STATUS" = OK -a -f BitKeeper/etc/csets-in -a `hostname` = "hq.fsmlabs.com" ] +then ( + echo ${USER} + echo "" + bk changes -v - < BitKeeper/etc/csets-in + bk prs -d ":KEY:\n" -r+ ChangeSet + ) | mail -s "Incoming to $REPO" linuxppc-commit@fsmlabs.com +fi + diff -Nru a/CREDITS b/CREDITS --- a/CREDITS Sat Jun 16 06:00:02 2001 +++ b/CREDITS Sat Jun 16 06:00:02 2001 @@ -1136,13 +1136,11 @@ S: USA N: Benjamin Herrenschmidt -E: bh40@calva.net +E: benh@kernel.crashing.org E: benh@mipsys.com -D: PowerMac booter (BootX) -D: Additional PowerBook support -D: Apple "Core99" machines support (ibook,g4,...) -S: 22, rue des Marguettes -S: 75012 Paris +D: Various parts of PPC & PowerMac +S: 122, boulevard Baille +S: 13005 Marseille S: France N: Sebastian Hetze @@ -1755,6 +1753,8 @@ N: Paul Mackerras E: paulus@samba.org +D: PPP driver +D: Linux for PowerPC D: Linux port for PCI Power Macintosh N: Pat Mackinlay diff -Nru a/MAINTAINERS b/MAINTAINERS --- a/MAINTAINERS Sat Jun 16 06:00:04 2001 +++ b/MAINTAINERS Sat Jun 16 06:00:04 2001 @@ -784,15 +784,23 @@ L: linux-x25@vger.kernel.org S: Maintained +LINUX FOR IBM pSERIES (RS/6000) +P: Paul Mackerras +M: paulus@au.ibm.com +W: http://www.ibm.com/linux/ltc/projects/ppc +S: Supported + LINUX FOR POWERPC P: Cort Dougan M: cort@fsmlabs.com +P: Paul Mackerras +M: paulus@samba.org W: http://www.fsmlabs.com/linuxppcbk.html -S: Maintained +S: Supported LINUX FOR POWER MACINTOSH -P: Paul Mackerras -M: paulus@samba.org +P: Benjamin Herrenschmidt +M: benh@kernel.crashing.org W: http://www.linuxppc.org/ L: linuxppc-dev@lists.linuxppc.org S: Maintained diff -Nru a/arch/ppc/8260_io/Makefile b/arch/ppc/8260_io/Makefile --- a/arch/ppc/8260_io/Makefile Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/8260_io/Makefile Sat Jun 16 06:00:06 2001 @@ -1,4 +1,4 @@ -# BK Id: SCCS/s.Makefile 1.3 05/17/01 18:14:19 cort +# BK Id: %F% %I% %G% %U% %#% # # # Makefile for the linux MPC8xx ppc-specific parts of comm processor diff -Nru a/arch/ppc/8260_io/commproc.c b/arch/ppc/8260_io/commproc.c --- a/arch/ppc/8260_io/commproc.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/8260_io/commproc.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.commproc.c 1.5 05/17/01 18:14:19 cort + * BK Id: %F% %I% %G% %U% %#% */ /* diff -Nru a/arch/ppc/8260_io/enet.c b/arch/ppc/8260_io/enet.c --- a/arch/ppc/8260_io/enet.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/8260_io/enet.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.enet.c 1.6 05/17/01 18:14:19 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Ethernet driver for Motorola MPC8260. diff -Nru a/arch/ppc/8260_io/fcc_enet.c b/arch/ppc/8260_io/fcc_enet.c --- a/arch/ppc/8260_io/fcc_enet.c Sat Jun 16 06:00:08 2001 +++ b/arch/ppc/8260_io/fcc_enet.c Sat Jun 16 06:00:08 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fcc_enet.c 1.7 05/17/01 18:14:20 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Fast Ethernet Controller (FCC) driver for Motorola MPC8260. diff -Nru a/arch/ppc/8260_io/uart.c b/arch/ppc/8260_io/uart.c --- a/arch/ppc/8260_io/uart.c Sat Jun 16 06:00:07 2001 +++ b/arch/ppc/8260_io/uart.c Sat Jun 16 06:00:07 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.uart.c 1.6 05/17/01 18:14:20 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * UART driver for MPC8260 CPM SCC or SMC diff -Nru a/arch/ppc/8xx_io/Makefile b/arch/ppc/8xx_io/Makefile --- a/arch/ppc/8xx_io/Makefile Sat Jun 16 06:00:05 2001 +++ b/arch/ppc/8xx_io/Makefile Sat Jun 16 06:00:05 2001 @@ -1,4 +1,4 @@ -# BK Id: SCCS/s.Makefile 1.3 05/17/01 18:14:20 cort +# BK Id: %F% %I% %G% %U% %#% # # # Makefile for the linux MPC8xx ppc-specific parts of comm processor diff -Nru a/arch/ppc/8xx_io/commproc.c b/arch/ppc/8xx_io/commproc.c --- a/arch/ppc/8xx_io/commproc.c Sat Jun 16 06:00:05 2001 +++ b/arch/ppc/8xx_io/commproc.c Sat Jun 16 06:00:05 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.commproc.c 1.8 05/18/01 07:54:04 patch + * BK Id: %F% %I% %G% %U% %#% */ /* @@ -47,12 +47,12 @@ /* CPM interrupt vector functions. */ struct cpm_action { - void (*handler)(void *); + void (*handler)(void *, struct pt_regs * regs); void *dev_id; }; static struct cpm_action cpm_vecs[CPMVEC_NR]; static void cpm_interrupt(int irq, void * dev, struct pt_regs * regs); -static void cpm_error_interrupt(void *); +static void cpm_error_interrupt(void *, struct pt_regs * regs); void m8xx_cpm_reset(uint host_page_addr) @@ -129,7 +129,7 @@ vec >>= 11; if (cpm_vecs[vec].handler != 0) - (*cpm_vecs[vec].handler)(cpm_vecs[vec].dev_id); + (*cpm_vecs[vec].handler)(cpm_vecs[vec].dev_id, regs); else ((immap_t *)IMAP_ADDR)->im_cpic.cpic_cimr &= ~(1 << vec); @@ -146,14 +146,15 @@ * tests in the interrupt handler. */ static void -cpm_error_interrupt(void *dev) +cpm_error_interrupt(void *dev, struct pt_regs *regs) { } /* Install a CPM interrupt handler. */ void -cpm_install_handler(int vec, void (*handler)(void *), void *dev_id) +cpm_install_handler(int vec, void (*handler)(void *, struct pt_regs *regs), + void *dev_id) { /* If null handler, assume we are trying to free the IRQ. diff -Nru a/arch/ppc/8xx_io/commproc.h b/arch/ppc/8xx_io/commproc.h --- a/arch/ppc/8xx_io/commproc.h Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/8xx_io/commproc.h Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.commproc.h 1.8 05/17/01 18:14:20 cort + * BK Id: %F% %I% %G% %U% %#% */ /* @@ -789,7 +789,8 @@ #define CICR_IEN ((uint)0x00000080) /* Int. enable */ #define CICR_SPS ((uint)0x00000001) /* SCC Spread */ -extern void cpm_install_handler(int vec, void (*handler)(void *), void *dev_id); +extern void cpm_install_handler(int vec, + void (*handler)(void *, struct pt_regs *regs), void *dev_id); extern void cpm_free_handler(int vec); #endif /* __CPM_8XX__ */ diff -Nru a/arch/ppc/8xx_io/enet.c b/arch/ppc/8xx_io/enet.c --- a/arch/ppc/8xx_io/enet.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/8xx_io/enet.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.enet.c 1.10 05/17/01 18:14:20 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Ethernet driver for Motorola MPC8xx. diff -Nru a/arch/ppc/8xx_io/fec.c b/arch/ppc/8xx_io/fec.c --- a/arch/ppc/8xx_io/fec.c Sat Jun 16 06:00:03 2001 +++ b/arch/ppc/8xx_io/fec.c Sat Jun 16 06:00:03 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fec.c 1.12 05/18/01 07:54:04 patch + * BK Id: %F% %I% %G% %U% %#% */ /* * Fast Ethernet Controller (FEC) driver for Motorola MPC8xx. diff -Nru a/arch/ppc/8xx_io/uart.c b/arch/ppc/8xx_io/uart.c --- a/arch/ppc/8xx_io/uart.c Sat Jun 16 06:00:03 2001 +++ b/arch/ppc/8xx_io/uart.c Sat Jun 16 06:00:03 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.uart.c 1.10 05/17/01 18:14:20 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * UART driver for MPC860 CPM SCC or SMC @@ -44,6 +44,9 @@ #include #include #include "commproc.h" +#ifdef CONFIG_MAGIC_SYSRQ +#include +#endif #ifdef CONFIG_KGDB extern void breakpoint(void); @@ -91,6 +94,15 @@ static int serial_refcount; static int serial_console_setup(struct console *co, char *options); +static int serial_console_wait_key(struct console *co); +static void serial_console_write(struct console *c, const char *s, + unsigned count); +static kdev_t serial_console_device(struct console *c); + +#if defined(CONFIG_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) +static unsigned long break_pressed; /* break, really ... */ +#endif + /* * Serial driver configuration section. Here are the various options: */ @@ -202,6 +214,16 @@ cbd_t *tx_cur; } ser_info_t; +static struct console sercons = { + name: "ttyS", + write: serial_console_write, + device: serial_console_device, + wait_key: serial_console_wait_key, + setup: serial_console_setup, + flags: CON_PRINTBUFFER, + index: CONFIG_SERIAL_CONSOLE_PORT, +}; + static void change_speed(ser_info_t *info); static void rs_8xx_wait_until_sent(struct tty_struct *tty, int timeout); @@ -325,7 +347,7 @@ mark_bh(SERIAL_BH); } -static _INLINE_ void receive_chars(ser_info_t *info) +static _INLINE_ void receive_chars(ser_info_t *info, struct pt_regs *regs) { struct tty_struct *tty = info->tty; unsigned char ch, *cp; @@ -413,7 +435,7 @@ } */ status &= info->read_status_mask; - + if (status & (BD_SC_BR)) { #ifdef SERIAL_DEBUG_INTR printk("handling break...."); @@ -440,6 +462,17 @@ } } } +#if defined(CONFIG_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) + if (break_pressed && info->line == sercons.index) { + if (ch != 0 && time_before(jiffies, + break_pressed + HZ*5)) { + handle_sysrq(ch, regs, NULL, NULL); + break_pressed = 0; + goto ignore_char; + } else + break_pressed = 0; + } +#endif if (tty->flip.count >= TTY_FLIPBUF_SIZE) break; @@ -448,6 +481,7 @@ tty->flip.count++; } + ignore_char: /* This BD is ready to be used again. Clear status. * Get next BD. */ @@ -459,17 +493,27 @@ else bdp++; } - info->rx_cur = (cbd_t *)bdp; queue_task(&tty->flip.tqueue, &tq_timer); } -static _INLINE_ void receive_break(ser_info_t *info) +static _INLINE_ void receive_break(ser_info_t *info, struct pt_regs *regs) { struct tty_struct *tty = info->tty; info->state->icount.brk++; + +#if defined(CONFIG_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) + if (info->line == sercons.index) { + if (!break_pressed) { + break_pressed = jiffies; + return; + } else + break_pressed = 0; + } +#endif + /* Check to see if there is room in the tty buffer for * the break. If not, we exit now, losing the break. FIXME */ @@ -482,7 +526,7 @@ queue_task(&tty->flip.tqueue, &tq_timer); } -static _INLINE_ void transmit_chars(ser_info_t *info) +static _INLINE_ void transmit_chars(ser_info_t *info, struct pt_regs *regs) { if ((info->flags & TX_WAKEUP) || @@ -571,7 +615,7 @@ /* * This is the serial driver's interrupt routine for a single port */ -static void rs_8xx_interrupt(void *dev_id) +static void rs_8xx_interrupt(void *dev_id, struct pt_regs *regs) { u_char events; int idx; @@ -585,21 +629,23 @@ if (info->state->smc_scc_num & NUM_IS_SCC) { sccp = &cpmp->cp_scc[idx]; events = sccp->scc_scce; + if (events & SMCM_BRKE) + receive_break(info, regs); if (events & SCCM_RX) - receive_chars(info); + receive_chars(info, regs); if (events & SCCM_TX) - transmit_chars(info); + transmit_chars(info, regs); sccp->scc_scce = events; } else { smcp = &cpmp->cp_smc[idx]; events = smcp->smc_smce; if (events & SMCM_BRKE) - receive_break(info); + receive_break(info, regs); if (events & SMCM_RX) - receive_chars(info); + receive_chars(info, regs); if (events & SMCM_TX) - transmit_chars(info); + transmit_chars(info, regs); smcp->smc_smce = events; } @@ -2427,17 +2473,6 @@ { return MKDEV(TTY_MAJOR, 64 + c->index); } - - -static struct console sercons = { - name: "ttyS", - write: serial_console_write, - device: serial_console_device, - wait_key: serial_console_wait_key, - setup: serial_console_setup, - flags: CON_PRINTBUFFER, - index: CONFIG_SERIAL_CONSOLE_PORT, -}; /* * Register console. diff -Nru a/arch/ppc/Makefile b/arch/ppc/Makefile --- a/arch/ppc/Makefile Sat Jun 16 06:00:11 2001 +++ b/arch/ppc/Makefile Sat Jun 16 06:00:11 2001 @@ -1,4 +1,4 @@ -# BK Id: SCCS/s.Makefile 1.13 05/21/01 00:48:24 cort +# BK Id: %F% %I% %G% %U% %#% # # This file is included by the global makefile so that you can add your own # architecture-specific flags and dependencies. Remember to do have actions diff -Nru a/arch/ppc/amiga/Makefile b/arch/ppc/amiga/Makefile --- a/arch/ppc/amiga/Makefile Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/amiga/Makefile Sat Jun 16 06:00:02 2001 @@ -1,4 +1,4 @@ -# BK Id: SCCS/s.Makefile 1.5 05/21/01 00:48:24 cort +# BK Id: %F% %I% %G% %U% %#% # # # Makefile for Linux arch/m68k/amiga source directory diff -Nru a/arch/ppc/amiga/amiga_ksyms.c b/arch/ppc/amiga/amiga_ksyms.c --- a/arch/ppc/amiga/amiga_ksyms.c Sat Jun 16 06:00:04 2001 +++ b/arch/ppc/amiga/amiga_ksyms.c Sat Jun 16 06:00:04 2001 @@ -1,4 +1,4 @@ /* - * BK Id: SCCS/s.amiga_ksyms.c 1.5 05/17/01 18:14:20 cort + * BK Id: %F% %I% %G% %U% %#% */ #include "../../m68k/amiga/amiga_ksyms.c" diff -Nru a/arch/ppc/amiga/amiints.c b/arch/ppc/amiga/amiints.c --- a/arch/ppc/amiga/amiints.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/amiga/amiints.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.amiints.c 1.8 05/21/01 00:48:24 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * linux/arch/m68k/amiga/amiints.c -- Amiga Linux interrupt handling code diff -Nru a/arch/ppc/amiga/amisound.c b/arch/ppc/amiga/amisound.c --- a/arch/ppc/amiga/amisound.c Sat Jun 16 06:00:08 2001 +++ b/arch/ppc/amiga/amisound.c Sat Jun 16 06:00:08 2001 @@ -1,4 +1,4 @@ /* - * BK Id: SCCS/s.amisound.c 1.5 05/17/01 18:14:20 cort + * BK Id: %F% %I% %G% %U% %#% */ #include "../../m68k/amiga/amisound.c" diff -Nru a/arch/ppc/amiga/bootinfo.c b/arch/ppc/amiga/bootinfo.c --- a/arch/ppc/amiga/bootinfo.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/amiga/bootinfo.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.bootinfo.c 1.5 05/17/01 18:14:20 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * linux/arch/ppc/amiga/bootinfo.c diff -Nru a/arch/ppc/amiga/chipram.c b/arch/ppc/amiga/chipram.c --- a/arch/ppc/amiga/chipram.c Sat Jun 16 06:00:04 2001 +++ b/arch/ppc/amiga/chipram.c Sat Jun 16 06:00:04 2001 @@ -1,4 +1,4 @@ /* - * BK Id: SCCS/s.chipram.c 1.7 05/21/01 00:49:49 cort + * BK Id: %F% %I% %G% %U% %#% */ #include "../../m68k/amiga/chipram.c" diff -Nru a/arch/ppc/amiga/cia.c b/arch/ppc/amiga/cia.c --- a/arch/ppc/amiga/cia.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/amiga/cia.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.cia.c 1.7 05/21/01 00:48:24 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * linux/arch/m68k/amiga/cia.c - CIA support diff -Nru a/arch/ppc/amiga/config.c b/arch/ppc/amiga/config.c --- a/arch/ppc/amiga/config.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/amiga/config.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.config.c 1.7 05/21/01 00:48:24 cort + * BK Id: %F% %I% %G% %U% %#% */ #define m68k_debug_device debug_device diff -Nru a/arch/ppc/amiga/ints.c b/arch/ppc/amiga/ints.c --- a/arch/ppc/amiga/ints.c Sat Jun 16 06:00:11 2001 +++ b/arch/ppc/amiga/ints.c Sat Jun 16 06:00:11 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.ints.c 1.5 05/17/01 18:14:20 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * linux/arch/ppc/amiga/ints.c diff -Nru a/arch/ppc/amiga/pcmcia.c b/arch/ppc/amiga/pcmcia.c --- a/arch/ppc/amiga/pcmcia.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/amiga/pcmcia.c Sat Jun 16 06:00:06 2001 @@ -1,4 +1,4 @@ /* - * BK Id: SCCS/s.pcmcia.c 1.5 05/17/01 18:14:20 cort + * BK Id: %F% %I% %G% %U% %#% */ #include "../../m68k/amiga/pcmcia.c" diff -Nru a/arch/ppc/amiga/time.c b/arch/ppc/amiga/time.c --- a/arch/ppc/amiga/time.c Sat Jun 16 06:00:04 2001 +++ b/arch/ppc/amiga/time.c Sat Jun 16 06:00:04 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.time.c 1.5 05/17/01 18:14:20 cort + * BK Id: %F% %I% %G% %U% %#% */ #include /* CONFIG_HEARTBEAT */ #include diff -Nru a/arch/ppc/boot/chrp/Makefile b/arch/ppc/boot/chrp/Makefile --- a/arch/ppc/boot/chrp/Makefile Sat Jun 16 06:00:07 2001 +++ b/arch/ppc/boot/chrp/Makefile Sat Jun 16 06:00:07 2001 @@ -1,4 +1,4 @@ -# BK Id: SCCS/s.Makefile 1.8 05/18/01 06:20:29 patch +# BK Id: %F% %I% %G% %U% %#% # # Makefile for making ELF bootable images for booting on CHRP # using Open Firmware. diff -Nru a/arch/ppc/boot/chrp/main.c b/arch/ppc/boot/chrp/main.c --- a/arch/ppc/boot/chrp/main.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/boot/chrp/main.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.main.c 1.7 05/18/01 06:20:29 patch + * BK Id: %F% %I% %G% %U% %#% */ /* * Copyright (C) Paul Mackerras 1997. @@ -100,13 +100,13 @@ rec->tag = BI_MACHTYPE; rec->data[0] = _MACH_chrp; rec->data[1] = 1; - rec->size = sizeof(struct bi_record) + sizeof(unsigned long); + rec->size = sizeof(struct bi_record) + 2 * sizeof(unsigned long); rec = (struct bi_record *)((unsigned long)rec + rec->size); #if 0 rec->tag = BI_SYSMAP; rec->data[0] = (unsigned long)sysmap_data; rec->data[1] = sysmap_len; - rec->size = sizeof(struct bi_record) + sizeof(unsigned long); + rec->size = sizeof(struct bi_record) + 2 * sizeof(unsigned long); rec = (struct bi_record *)((unsigned long)rec + rec->size); #endif rec->tag = BI_LAST; diff -Nru a/arch/ppc/boot/chrp/misc.S b/arch/ppc/boot/chrp/misc.S --- a/arch/ppc/boot/chrp/misc.S Sat Jun 16 06:00:11 2001 +++ b/arch/ppc/boot/chrp/misc.S Sat Jun 16 06:00:11 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.misc.S 1.6 05/18/01 15:16:59 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Copyright (C) Paul Mackerras 1997. diff -Nru a/arch/ppc/boot/chrp/start.c b/arch/ppc/boot/chrp/start.c --- a/arch/ppc/boot/chrp/start.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/boot/chrp/start.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.start.c 1.6 05/18/01 15:16:59 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Copyright (C) Paul Mackerras 1997. diff -Nru a/arch/ppc/boot/common/crt0.S b/arch/ppc/boot/common/crt0.S --- a/arch/ppc/boot/common/crt0.S Sat Jun 16 06:00:04 2001 +++ b/arch/ppc/boot/common/crt0.S Sat Jun 16 06:00:04 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.crt0.S 1.10 05/21/01 00:49:49 cort + * BK Id: %F% %I% %G% %U% %#% */ /* Copyright (c) 1997 Paul Mackerras * Initial Power Macintosh COFF version. diff -Nru a/arch/ppc/boot/common/misc-common.c b/arch/ppc/boot/common/misc-common.c --- a/arch/ppc/boot/common/misc-common.c Sat Jun 16 06:00:12 2001 +++ b/arch/ppc/boot/common/misc-common.c Sat Jun 16 06:00:13 2001 @@ -38,7 +38,7 @@ /* If we're on a ALL_PPC, assume we have a keyboard controller * Also note, if we're not ALL_PPC, we assume you are a serial * console - Tom */ -#ifdef CONFIG_ALL_PPC +#if defined(CONFIG_ALL_PPC) && defined(CONFIG_VGA_CONSOLE) extern void cursor(int x, int y); extern void scroll(void); extern char *vidmem; diff -Nru a/arch/ppc/boot/common/no_initrd.c b/arch/ppc/boot/common/no_initrd.c --- a/arch/ppc/boot/common/no_initrd.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/boot/common/no_initrd.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.no_initrd.c 1.7 05/18/01 15:17:23 cort + * BK Id: %F% %I% %G% %U% %#% */ char initrd_data[1]; int initrd_len = 0; diff -Nru a/arch/ppc/boot/common/ns16550.c b/arch/ppc/boot/common/ns16550.c --- a/arch/ppc/boot/common/ns16550.c Sat Jun 16 06:00:03 2001 +++ b/arch/ppc/boot/common/ns16550.c Sat Jun 16 06:00:03 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.ns16550.c 1.7 05/18/01 06:20:29 patch + * BK Id: %F% %I% %G% %U% %#% */ /* * COM1 NS16550 support diff -Nru a/arch/ppc/boot/common/string.S b/arch/ppc/boot/common/string.S --- a/arch/ppc/boot/common/string.S Sat Jun 16 06:00:09 2001 +++ b/arch/ppc/boot/common/string.S Sat Jun 16 06:00:09 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.string.S 1.8 05/18/01 06:20:29 patch + * BK Id: %F% %I% %G% %U% %#% */ /* * String handling functions for PowerPC. diff -Nru a/arch/ppc/boot/include/nonstdio.h b/arch/ppc/boot/include/nonstdio.h --- a/arch/ppc/boot/include/nonstdio.h Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/boot/include/nonstdio.h Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.nonstdio.h 1.7 05/18/01 15:17:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Copyright (C) Paul Mackerras 1997. diff -Nru a/arch/ppc/boot/include/rs6000.h b/arch/ppc/boot/include/rs6000.h --- a/arch/ppc/boot/include/rs6000.h Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/boot/include/rs6000.h Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.rs6000.h 1.7 05/18/01 15:17:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* IBM RS/6000 "XCOFF" file definitions for BFD. Copyright (C) 1990, 1991 Free Software Foundation, Inc. diff -Nru a/arch/ppc/boot/include/zlib.h b/arch/ppc/boot/include/zlib.h --- a/arch/ppc/boot/include/zlib.h Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/boot/include/zlib.h Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.zlib.h 1.8 05/18/01 15:17:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * This file is derived from zlib.h and zconf.h from the zlib-0.95 diff -Nru a/arch/ppc/boot/lib/zlib.c b/arch/ppc/boot/lib/zlib.c --- a/arch/ppc/boot/lib/zlib.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/boot/lib/zlib.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.zlib.c 1.8 05/18/01 15:17:24 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * This file is derived from various .h and .c files from the zlib-0.95 diff -Nru a/arch/ppc/boot/mbx/Makefile b/arch/ppc/boot/mbx/Makefile --- a/arch/ppc/boot/mbx/Makefile Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/boot/mbx/Makefile Sat Jun 16 06:00:06 2001 @@ -1,4 +1,4 @@ -# BK Id: SCCS/s.Makefile 1.7 06/05/01 20:20:05 paulus +# BK Id: %F% %I% %G% %U% %#% # # # arch/ppc/mbxboot/Makefile diff -Nru a/arch/ppc/boot/mbx/embed_config.c b/arch/ppc/boot/mbx/embed_config.c --- a/arch/ppc/boot/mbx/embed_config.c Sat Jun 16 06:00:03 2001 +++ b/arch/ppc/boot/mbx/embed_config.c Sat Jun 16 06:00:03 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.embed_config.c 1.7 05/18/01 07:54:04 patch + * BK Id: %F% %I% %G% %U% %#% */ /* Board specific functions for those embedded 8xx boards that do diff -Nru a/arch/ppc/boot/mbx/gzimage.c b/arch/ppc/boot/mbx/gzimage.c --- a/arch/ppc/boot/mbx/gzimage.c Sat Jun 16 06:00:05 2001 +++ b/arch/ppc/boot/mbx/gzimage.c Sat Jun 16 06:00:05 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.gzimage.c 1.6 05/18/01 15:17:06 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * gzimage.c diff -Nru a/arch/ppc/boot/mbx/head.S b/arch/ppc/boot/mbx/head.S --- a/arch/ppc/boot/mbx/head.S Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/boot/mbx/head.S Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.head.S 1.9 05/18/01 07:54:04 patch + * BK Id: %F% %I% %G% %U% %#% */ #include #include "../../kernel/ppc_defs.h" diff -Nru a/arch/ppc/boot/mbx/head_8260.S b/arch/ppc/boot/mbx/head_8260.S --- a/arch/ppc/boot/mbx/head_8260.S Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/boot/mbx/head_8260.S Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.head_8260.S 1.8 05/18/01 07:54:04 patch + * BK Id: %F% %I% %G% %U% %#% */ #include "../../kernel/ppc_defs.h" #include "../../kernel/ppc_asm.tmpl" diff -Nru a/arch/ppc/boot/mbx/iic.c b/arch/ppc/boot/mbx/iic.c --- a/arch/ppc/boot/mbx/iic.c Sat Jun 16 06:00:12 2001 +++ b/arch/ppc/boot/mbx/iic.c Sat Jun 16 06:00:12 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.iic.c 1.8 05/18/01 07:54:04 patch + * BK Id: %F% %I% %G% %U% %#% */ /* Minimal support functions to read configuration from IIC EEPROMS diff -Nru a/arch/ppc/boot/mbx/m8260_tty.c b/arch/ppc/boot/mbx/m8260_tty.c --- a/arch/ppc/boot/mbx/m8260_tty.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/boot/mbx/m8260_tty.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.m8260_tty.c 1.7 05/18/01 07:54:04 patch + * BK Id: %F% %I% %G% %U% %#% */ diff -Nru a/arch/ppc/boot/mbx/m8xx_tty.c b/arch/ppc/boot/mbx/m8xx_tty.c --- a/arch/ppc/boot/mbx/m8xx_tty.c Sat Jun 16 06:00:07 2001 +++ b/arch/ppc/boot/mbx/m8xx_tty.c Sat Jun 16 06:00:07 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.m8xx_tty.c 1.8 05/18/01 07:54:04 patch + * BK Id: %F% %I% %G% %U% %#% */ diff -Nru a/arch/ppc/boot/mbx/misc.c b/arch/ppc/boot/mbx/misc.c --- a/arch/ppc/boot/mbx/misc.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/boot/mbx/misc.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.misc.c 1.9 05/18/01 07:54:04 patch + * BK Id: %F% %I% %G% %U% %#% */ /* * Adapted for PowerPC by Gary Thomas diff -Nru a/arch/ppc/boot/mbx/pci.c b/arch/ppc/boot/mbx/pci.c --- a/arch/ppc/boot/mbx/pci.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/boot/mbx/pci.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.pci.c 1.6 05/18/01 15:17:06 cort + * BK Id: %F% %I% %G% %U% %#% */ /* Stand alone funtions for QSpan Tundra support. */ diff -Nru a/arch/ppc/boot/mbx/qspan_pci.c b/arch/ppc/boot/mbx/qspan_pci.c --- a/arch/ppc/boot/mbx/qspan_pci.c Sat Jun 16 06:00:11 2001 +++ b/arch/ppc/boot/mbx/qspan_pci.c Sat Jun 16 06:00:11 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.qspan_pci.c 1.6 05/18/01 15:17:06 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * LinuxPPC arch/ppc/kernel/qspan_pci.c Dan Malek (dmalek@jlc.net) diff -Nru a/arch/ppc/boot/mbx/rdimage.c b/arch/ppc/boot/mbx/rdimage.c --- a/arch/ppc/boot/mbx/rdimage.c Sat Jun 16 06:00:03 2001 +++ b/arch/ppc/boot/mbx/rdimage.c Sat Jun 16 06:00:03 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.rdimage.c 1.6 05/18/01 15:17:06 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * rdimage.c diff -Nru a/arch/ppc/boot/pmac/Makefile b/arch/ppc/boot/pmac/Makefile --- a/arch/ppc/boot/pmac/Makefile Sat Jun 16 06:00:08 2001 +++ b/arch/ppc/boot/pmac/Makefile Sat Jun 16 06:00:08 2001 @@ -1,4 +1,4 @@ -# BK Id: SCCS/s.Makefile 1.10 06/05/01 20:22:51 paulus +# BK Id: %F% %I% %G% %U% %#% # # Makefile for making XCOFF bootable images for booting on PowerMacs # using Open Firmware. diff -Nru a/arch/ppc/boot/pmac/chrpmain.c b/arch/ppc/boot/pmac/chrpmain.c --- a/arch/ppc/boot/pmac/chrpmain.c Sat Jun 16 06:00:07 2001 +++ b/arch/ppc/boot/pmac/chrpmain.c Sat Jun 16 06:00:07 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.chrpmain.c 1.9 05/18/01 06:20:29 patch + * BK Id: %F% %I% %G% %U% %#% */ /* * Copyright (C) Paul Mackerras 1997. @@ -34,15 +34,6 @@ #define SCRATCH_SIZE (128 << 10) -#ifdef CONFIG_CMDLINE -#define CMDLINE CONFIG_CMDLINE -#else -#define CMDLINE "" -#endif -char cmd_preset[] = CMDLINE; -char cmd_buf[256]; -char *cmd_line = cmd_buf; - char *avail_ram; char *begin_avail, *end_avail; char *avail_high; @@ -98,7 +89,6 @@ } flush_cache(dst, len); - memcpy (cmd_line, cmd_preset, sizeof(cmd_preset)); make_bi_recs((unsigned long) dst + len); sa = (unsigned long)PROG_START; @@ -133,19 +123,14 @@ rec->tag = BI_MACHTYPE; rec->data[0] = _MACH_Pmac; rec->data[1] = 1; - rec->size = sizeof(struct bi_record) + sizeof(unsigned long); - rec = (struct bi_record *)((unsigned long)rec + rec->size); - - rec->tag = BI_CMD_LINE; - memcpy( (char *)rec->data, cmd_line, strlen(cmd_line)+1); - rec->size = sizeof(struct bi_record) + strlen(cmd_line) + 1; + rec->size = sizeof(struct bi_record) + 2 * sizeof(unsigned long); rec = (struct bi_record *)((unsigned long)rec + rec->size); #ifdef SYSMAP_OFFSET rec->tag = BI_SYSMAP; rec->data[0] = SYSMAP_OFFSET; rec->data[1] = SYSMAP_SIZE; - rec->size = sizeof(struct bi_record) + sizeof(unsigned long); + rec->size = sizeof(struct bi_record) + 2 * sizeof(unsigned long); rec = (struct bi_record *)((unsigned long)rec + rec->size); #endif /* SYSMAP_OFFSET */ diff -Nru a/arch/ppc/boot/pmac/coffmain.c b/arch/ppc/boot/pmac/coffmain.c --- a/arch/ppc/boot/pmac/coffmain.c Sat Jun 16 06:00:04 2001 +++ b/arch/ppc/boot/pmac/coffmain.c Sat Jun 16 06:00:04 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.coffmain.c 1.9 05/18/01 06:20:29 patch + * BK Id: %F% %I% %G% %U% %#% */ /* * Copyright (C) Paul Mackerras 1997. @@ -24,7 +24,7 @@ #define get_16be(x) (*(unsigned short *)(x)) #define get_32be(x) (*(unsigned *)(x)) -#define RAM_START 0xc0000000 +#define RAM_START 0 #define RAM_END (RAM_START + 0x800000) /* only 8M mapped with BATs */ #define PROG_START RAM_START @@ -32,15 +32,6 @@ #define SCRATCH_SIZE (128 << 10) -#ifdef CONFIG_CMDLINE -#define CMDLINE CONFIG_CMDLINE -#else -#define CMDLINE "" -#endif -char cmd_preset[] = CMDLINE; -char cmd_buf[256]; -char *cmd_line = cmd_buf; - char *avail_ram; char *begin_avail, *end_avail; char *avail_high; @@ -81,7 +72,7 @@ claim(0, PROG_SIZE, 0); dst = (void *) RAM_START; if (im[0] == 0x1f && im[1] == 0x8b) { - /* claim some memory for scratch space */ + /* set up scratch space */ begin_avail = avail_high = avail_ram = heap; end_avail = heap + sizeof(heap); printf("heap at 0x%x\n", avail_ram); @@ -95,7 +86,6 @@ } flush_cache(dst, len); - memcpy (cmd_line, cmd_preset, sizeof(cmd_preset)); make_bi_recs((unsigned long)dst + len); sa = (unsigned long)PROG_START; @@ -127,18 +117,13 @@ sprintf( (char *)rec->data, "coffboot"); rec->size = sizeof(struct bi_record) + strlen("coffboot") + 1; rec = (struct bi_record *)((unsigned long)rec + rec->size); - + rec->tag = BI_MACHTYPE; rec->data[0] = _MACH_Pmac; rec->data[1] = 1; - rec->size = sizeof(struct bi_record) + sizeof(unsigned long); + rec->size = sizeof(struct bi_record) + 2 * sizeof(unsigned long); rec = (struct bi_record *)((unsigned long)rec + rec->size); - - rec->tag = BI_CMD_LINE; - memcpy( (char *)rec->data, cmd_line, strlen(cmd_line)+1); - rec->size = sizeof(struct bi_record) + strlen(cmd_line) + 1; - rec = (struct bi_record *)((unsigned long)rec + rec->size); - + rec->tag = BI_LAST; rec->size = sizeof(struct bi_record); rec = (struct bi_record *)((unsigned long)rec + rec->size); diff -Nru a/arch/ppc/boot/pmac/dummy.c b/arch/ppc/boot/pmac/dummy.c --- a/arch/ppc/boot/pmac/dummy.c Sat Jun 16 06:00:07 2001 +++ b/arch/ppc/boot/pmac/dummy.c Sat Jun 16 06:00:07 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.dummy.c 1.6 05/18/01 15:17:15 cort + * BK Id: %F% %I% %G% %U% %#% */ int main(void) { diff -Nru a/arch/ppc/boot/pmac/misc.S b/arch/ppc/boot/pmac/misc.S --- a/arch/ppc/boot/pmac/misc.S Sat Jun 16 06:00:04 2001 +++ b/arch/ppc/boot/pmac/misc.S Sat Jun 16 06:00:04 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.misc.S 1.6 05/18/01 15:17:15 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Copyright (C) Paul Mackerras 1997. diff -Nru a/arch/ppc/boot/pmac/start.c b/arch/ppc/boot/pmac/start.c --- a/arch/ppc/boot/pmac/start.c Sat Jun 16 06:00:12 2001 +++ b/arch/ppc/boot/pmac/start.c Sat Jun 16 06:00:12 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.start.c 1.8 05/18/01 15:17:15 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Copyright (C) Paul Mackerras 1997. diff -Nru a/arch/ppc/boot/prep/Makefile b/arch/ppc/boot/prep/Makefile --- a/arch/ppc/boot/prep/Makefile Sat Jun 16 06:00:08 2001 +++ b/arch/ppc/boot/prep/Makefile Sat Jun 16 06:00:12 2001 @@ -1,4 +1,4 @@ -# BK Id: SCCS/s.Makefile 1.15 05/21/01 11:51:32 trini +# BK Id: %F% %I% %G% %U% %#% # # arch/ppc/boot/Makefile # @@ -33,13 +33,17 @@ endif ZLINKFLAGS = -T $(TOPDIR)/arch/$(ARCH)/vmlinux.lds -Ttext 0x00800000 -OBJECTS := head.o misc.o vreset.o kbd.o ../common/misc-common.o \ +OBJECTS := head.o misc.o ../common/misc-common.o \ ../common/string.o of1275.o OBJCOPY_ARGS = -O elf32-powerpc LIBS = ../lib/zlib.a ifeq ($(CONFIG_SERIAL_CONSOLE),y) OBJECTS += ns16550.o +endif + +ifeq ($(CONFIG_VGA_CONSOLE),y) +OBJECTS += vreset.o kbd.o endif # Tools diff -Nru a/arch/ppc/boot/prep/head.S b/arch/ppc/boot/prep/head.S --- a/arch/ppc/boot/prep/head.S Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/boot/prep/head.S Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.head.S 1.8 05/18/01 06:20:29 patch + * BK Id: %F% %I% %G% %U% %#% */ #include "../../kernel/ppc_defs.h" #include "../../kernel/ppc_asm.tmpl" diff -Nru a/arch/ppc/boot/prep/iso_font.h b/arch/ppc/boot/prep/iso_font.h --- a/arch/ppc/boot/prep/iso_font.h Sat Jun 16 06:00:11 2001 +++ b/arch/ppc/boot/prep/iso_font.h Sat Jun 16 06:00:11 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.iso_font.h 1.6 05/18/01 15:16:42 cort + * BK Id: %F% %I% %G% %U% %#% */ static const unsigned char font[] = { /* 0x00 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, diff -Nru a/arch/ppc/boot/prep/kbd.c b/arch/ppc/boot/prep/kbd.c --- a/arch/ppc/boot/prep/kbd.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/boot/prep/kbd.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.kbd.c 1.7 05/18/01 06:20:29 patch + * BK Id: %F% %I% %G% %U% %#% */ #include diff -Nru a/arch/ppc/boot/prep/misc.c b/arch/ppc/boot/prep/misc.c --- a/arch/ppc/boot/prep/misc.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/boot/prep/misc.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.misc.c 1.10 06/05/01 20:20:05 paulus + * BK Id: %F% %I% %G% %U% %#% */ /* * misc.c @@ -13,8 +13,9 @@ #include #include "zlib.h" #include -#include #include +#include +#include #include #include #include @@ -102,6 +103,7 @@ return; } +#ifdef CONFIG_VGA_CONSOLE void scroll() { @@ -111,6 +113,7 @@ for ( i = ( lines - 1 ) * cols * 2; i < lines * cols * 2; i += 2 ) vidmem[i] = ' '; } +#endif /* CONFIG_VGA_CONSOLE */ /* * This routine is used to control the second processor on the @@ -170,7 +173,9 @@ #if defined(CONFIG_SERIAL_CONSOLE) com_port = serial_init(0); #endif /* CONFIG_SERIAL_CONSOLE */ +#if defined(CONFIG_VGA_CONSOLE) vga_init((char)0xC0000000); +#endif /* CONFIG_VGA_CONSOLE */ if (residual) { @@ -360,8 +365,15 @@ while (timer++ < 5*1000) { if (tstc()) { while ((ch = getc()) != '\n' && ch != '\r') { - if (ch == '\b') { + /* Test for backspace/delete */ + if (ch == '\b' || ch == '\177') { if (cp != cmd_line) { + cp--; + puts("\b \b"); + } + /* Test for ^x/^u (and wipe the line) */ + } else if (ch == '\030' || ch == '\025') { + while (cp != cmd_line) { cp--; puts("\b \b"); } diff -Nru a/arch/ppc/boot/prep/of1275.c b/arch/ppc/boot/prep/of1275.c --- a/arch/ppc/boot/prep/of1275.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/boot/prep/of1275.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.of1275.c 1.6 05/18/01 15:16:42 cort + * BK Id: %F% %I% %G% %U% %#% */ /* Open Firmware Client Interface */ diff -Nru a/arch/ppc/boot/prep/of1275.h b/arch/ppc/boot/prep/of1275.h --- a/arch/ppc/boot/prep/of1275.h Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/boot/prep/of1275.h Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.of1275.h 1.6 05/18/01 15:16:42 cort + * BK Id: %F% %I% %G% %U% %#% */ /* 6.3.2.1 Client interface */ diff -Nru a/arch/ppc/boot/prep/vreset.c b/arch/ppc/boot/prep/vreset.c --- a/arch/ppc/boot/prep/vreset.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/boot/prep/vreset.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.vreset.c 1.9 05/18/01 06:20:29 patch + * BK Id: %F% %I% %G% %U% %#% */ /* * vreset.c diff -Nru a/arch/ppc/boot/tree/Makefile b/arch/ppc/boot/tree/Makefile --- a/arch/ppc/boot/tree/Makefile Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/boot/tree/Makefile Sat Jun 16 06:00:06 2001 @@ -1,4 +1,4 @@ -# BK Id: SCCS/s.Makefile 1.5 05/18/01 06:20:29 patch +# BK Id: %F% %I% %G% %U% %#% # # # Module name: Makefile @@ -26,12 +26,13 @@ GZIP = gzip -vf9 RM = rm -f -MKEVIMG = ../utils/mkevimg -l +MKEVIMG = ../utils/mkevimg -l -c MKIRIMG = ../utils/mkirimg +CFLAGS += -I$(TOPDIR)/drivers/net LD_ARGS = -e _start -T ld.script -Ttext 0x00200000 -Bstatic OBJS = ../common/crt0.o main.o misc.o irSect.o ../common/string.o \ - ../common/misc-common.o + ../common/misc-common.o ../common/ns16550.o LIBS = ../lib/zlib.a treeboot: $(OBJS) $(LIBS) ld.script diff -Nru a/arch/ppc/boot/tree/irSect.c b/arch/ppc/boot/tree/irSect.c --- a/arch/ppc/boot/tree/irSect.c Sat Jun 16 06:00:09 2001 +++ b/arch/ppc/boot/tree/irSect.c Sat Jun 16 06:00:09 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.irSect.c 1.6 05/18/01 15:17:22 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * diff -Nru a/arch/ppc/boot/tree/irSect.h b/arch/ppc/boot/tree/irSect.h --- a/arch/ppc/boot/tree/irSect.h Sat Jun 16 06:00:08 2001 +++ b/arch/ppc/boot/tree/irSect.h Sat Jun 16 06:00:08 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.irSect.h 1.6 05/18/01 15:17:22 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * diff -Nru a/arch/ppc/boot/tree/main.c b/arch/ppc/boot/tree/main.c --- a/arch/ppc/boot/tree/main.c Sat Jun 16 06:00:04 2001 +++ b/arch/ppc/boot/tree/main.c Sat Jun 16 06:00:04 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.main.c 1.7 05/18/01 06:20:29 patch + * BK Id: %F% %I% %G% %U% %#% */ /* * Copyright (c) 1997 Paul Mackerras @@ -74,16 +74,6 @@ #define ALIGN_UP(x, align) (((x) + ((align) - 1)) & ~((align) - 1)) -#define stringify(s) tostring(s) -#define tostring(s) #s - -#define mtdcr(rn, v) asm volatile("mtdcr " stringify(rn) ",%0" : : "r" (v)) -#define mfdcr(rn) ({unsigned int rval; \ - asm volatile("mfdcr %0," stringify(rn) \ - : "=r" (rval)); rval;}) -#define DCRN_MALCR 0x180 /* MAL Configuration */ -#define MALCR_SR 0x80000000 /* Software Reset */ - /* Global Variables */ /* Needed by zalloc and zfree for allocating memory */ @@ -91,15 +81,11 @@ char *avail_ram; /* Indicates start of RAM available for heap */ char *end_avail; /* Indicates end of RAM available for heap */ -bd_t board_info; - -/* - * XXX - Until either the IBM boot ROM provides a way of passing arguments to - * the program it launches or until I/O is working in the boot loader, - * this is a good spot to pass in command line arguments to the kernel - * (e.g. console=tty0). - */ +/* Needed for serial I/O. +*/ +extern unsigned long *com_port; +bd_t board_info; /* ** The bootrom may change bootrom_cmdline to point to a buffer in the @@ -116,35 +102,16 @@ /* Function Prototypes */ -extern void *zalloc(void *x, unsigned items, unsigned size); - -/* serial I/O functions. - * These should have generic names, although this is similar to 16550.... - */ -static volatile unsigned char *uart0_lsr = (unsigned char *)0xef600305; -static volatile unsigned char *uart0_xcvr = (unsigned char *)0xef600300; +extern void gunzip(void *dst, int dstlen, unsigned char *src, int *lenp); void -serial_putc(void *unused, unsigned char c) -{ - while ((*uart0_lsr & LSR_THRE) == 0); - *uart0_xcvr = c; -} - -unsigned char -serial_getc(void *unused) -{ - while ((*uart0_lsr & LSR_DR) == 0); - return (*uart0_xcvr); -} - -int -serial_tstc(void *unused) +kick_watchdog(void) { - return ((*uart0_lsr & LSR_DR) != 0); +#ifdef CONFIG_405GP + mtspr(SPRN_TSR, (TSR_ENW | TSR_WIS)); +#endif } - void start(void) { void *options; @@ -156,40 +123,34 @@ bd_t *(*get_board_info)(void) = (bd_t *(*)(void))(*(unsigned long *)BOARD_INFO_VECTOR); bd_t *bip = NULL; - volatile unsigned long *em0mr0 = (long *)0xEF600800; /* ftr fixup */ + com_port = (struct NS16550 *)serial_init(0); -#if defined(CONFIG_WALNUT) - /* turn off ethernet */ +#ifdef CONFIG_405GP + /* turn off on-chip ethernet */ /* This is to fix a problem with early walnut bootrom. */ - - mtdcr(DCRN_MALCR, MALCR_SR); /* 1st reset MAL */ - - while (mfdcr(DCRN_MALCR) & MALCR_SR) {}; /* wait for the reset */ - - *em0mr0 = 0x20000000; /* then reset EMAC */ -#endif - - -#if 0 - /* ftr revisit - remove printf()s */ - - printf("\n\nbootrom_cmdline = >%s<\n\n", bootrom_cmdline); - if (*bootrom_cmdline != '\0') { - printf("bootrom_cmdline != NULL, copying it into cmdline\n\n"); - *treeboot_bootrom_cmdline = '\0'; - strcat(treeboot_bootrom_cmdline, bootrom_cmdline); - cmdline = treeboot_bootrom_cmdline; + + { + /* Physical mapping of ethernet register space. */ + static struct ppc405_enet_regs *ppc405_enet_regp = + (struct ppc405_enet_regs *)PPC405_EM0_REG_ADDR; + + mtdcr(DCRN_MALCR, MALCR_MMSR); /* 1st reset MAL */ + + while (mfdcr(DCRN_MALCR) & MALCR_MMSR) {}; /* wait for the reset */ + + ppc405_enet_regp->em0mr0 = 0x20000000; /* then reset EMAC */ } #endif - if ((bip = get_board_info()) != NULL) memcpy(&board_info, bip, sizeof(bd_t)); /* Init RAM disk (initrd) section */ + kick_watchdog(); + if (initrdSect_start != 0 && (initrd_size = initrdSect_size) != 0) { initrd_start = (RAM_END - initrd_size) & ~0xFFF; @@ -208,6 +169,8 @@ /* Linux kernel image section */ + kick_watchdog(); + im = (unsigned char *)(imageSect_start); len = imageSect_size; dst = (void *)PROG_START; @@ -233,6 +196,7 @@ memmove(dst, im, len); } + kick_watchdog(); flush_cache(dst, len); diff -Nru a/arch/ppc/boot/tree/misc.S b/arch/ppc/boot/tree/misc.S --- a/arch/ppc/boot/tree/misc.S Sat Jun 16 06:00:05 2001 +++ b/arch/ppc/boot/tree/misc.S Sat Jun 16 06:00:05 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.misc.S 1.7 05/18/01 06:20:29 patch + * BK Id: %F% %I% %G% %U% %#% */ /* * Copyright (C) Paul Mackerras 1997. diff -Nru a/arch/ppc/boot/utils/addnote.c b/arch/ppc/boot/utils/addnote.c --- a/arch/ppc/boot/utils/addnote.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/boot/utils/addnote.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.addnote.c 1.7 05/18/01 15:17:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Program to hack in a PT_NOTE program header entry in an ELF file. diff -Nru a/arch/ppc/boot/utils/hack-coff.c b/arch/ppc/boot/utils/hack-coff.c --- a/arch/ppc/boot/utils/hack-coff.c Sat Jun 16 06:00:07 2001 +++ b/arch/ppc/boot/utils/hack-coff.c Sat Jun 16 06:00:07 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.hack-coff.c 1.8 05/18/01 06:20:29 patch + * BK Id: %F% %I% %G% %U% %#% */ /* * hack-coff.c - hack the header of an xcoff file to fill in diff -Nru a/arch/ppc/boot/utils/mkevimg b/arch/ppc/boot/utils/mkevimg --- a/arch/ppc/boot/utils/mkevimg Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/boot/utils/mkevimg Sat Jun 16 06:00:02 2001 @@ -23,7 +23,8 @@ # unsigned long num_512blocks; Size, rounded-up, in 512 byte blocks # unsigned long debug_flag; Run the debugger or image after load # unsigned long entry_point; The image address to jump to after load -# unsigned long reserved[3]; +# unsigned long checksum; 32 bit checksum including header +# unsigned long reserved[2]; # } boot_block_t; # # @@ -61,6 +62,7 @@ } if ($status != 1) { + print(" -c Put checksum in load information block.\n"); print(" -h Print out this message and exit.\n"); print(" -l Linux mode; if present, copy 'image' and 'initrd' sections.\n"); print(" -v Verbose. Print out lots of ELF information.\n"); @@ -148,10 +150,14 @@ sub decode_options { - if (!getopts("hlvV")) { + if (!getopts("chlvV")) { usage(1); } + if ($opt_c) { + $do_checksum = 1; + } + if ($opt_h) { usage(0); } @@ -360,14 +366,20 @@ $output_size += $initrd_size; } - $num_blocks = $output_size / 512 + 1; + # + # Compute size with header + # + + $header = pack("H8N7", "0052504f", 0, 0, 0, 0, 0, 0, 0); + $num_blocks = ($output_size + length($header) + 511) / 512; # # Write IBM PowerPC evaluation board boot_block_t header # $header = pack("H8N7", "0052504f", $text_addr, $num_blocks, 0, - $text_addr, 0, 0, 0); + $text_addr, 0, 0, 0); + $bytes = length($header); @@ -412,18 +424,57 @@ # # Pad to a multiple of 512 bytes + # If the (size of the boot image mod 512) is between 509 and 511 bytes + # then the tftp to the Walnut fails. This may be fixed in more recent + # Walnut bootrom. # - $pad_size = 512 - (length($header) + $output_size) % 512; + $pad_size = 512 - ((length($header) + $output_size) % 512); + if ($pad_size == 512) { + $pad_size = 0; + } + + if ($pad_size != 0) { + + if ($verbose) { + print("Padding boot image by an additional $pad_size bytes.\n"); + } + + $pad_string = pack("H8","deadbeef") x 128; + + syswrite(BOOT, $pad_string, $pad_size) or + die "Could not pad boot image in output file.\n"; - if ($verbose) { - print("Padding boot image by an additional $pad_size bytes.\n"); } - $pad_string = pack(("H8","deadbeef") x 128); + # + # Compute 32 bit checksum over entire file. + # + + if ($do_checksum) { - syswrite(BOOT, $pad_string, $pad_size) or - die "Could not pad boot image in output file.\n"; + close(BOOT); + open(BOOT, "+<$ofile") || die "Cannot open output file"; + undef $/; + $temp = unpack("%32N*", ); + # Solaris and PPC Linux return 0x80000000 for "-$temp" when $temp + # is negative. "~($temp - 1)" negates $temp properly. + $csum = ~($temp - 1); + printf("Checksum = 0x%08x\r\n", $csum); + + # + # Rewrite IBM PowerPC evaluation board boot_block_t header, + # this time with the checksum included + # + + $header = pack("H8N7", "0052504f", $text_addr, $num_blocks, 0, + $text_addr, $csum, 0, 0); + + seek(BOOT, 0, 0); + syswrite(BOOT, $header, length($header)) or + die("Could not write boot image header to output file."); + + } # # Clean-up and leave diff -Nru a/arch/ppc/boot/utils/mknote.c b/arch/ppc/boot/utils/mknote.c --- a/arch/ppc/boot/utils/mknote.c Sat Jun 16 06:00:07 2001 +++ b/arch/ppc/boot/utils/mknote.c Sat Jun 16 06:00:07 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.mknote.c 1.7 05/18/01 15:17:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Copyright (C) Cort Dougan 1999. diff -Nru a/arch/ppc/boot/utils/mkprep.c b/arch/ppc/boot/utils/mkprep.c --- a/arch/ppc/boot/utils/mkprep.c Sat Jun 16 06:00:03 2001 +++ b/arch/ppc/boot/utils/mkprep.c Sat Jun 16 06:00:03 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.mkprep.c 1.7 05/18/01 06:20:29 patch + * BK Id: %F% %I% %G% %U% %#% */ /* * Makes a prep bootable image which can be dd'd onto diff -Nru a/arch/ppc/boot/utils/mksimage.c b/arch/ppc/boot/utils/mksimage.c --- a/arch/ppc/boot/utils/mksimage.c Sat Jun 16 06:00:11 2001 +++ b/arch/ppc/boot/utils/mksimage.c Sat Jun 16 06:00:13 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.mksimage.c 1.6 05/18/01 15:16:42 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * diff -Nru a/arch/ppc/boot/utils/piggyback.c b/arch/ppc/boot/utils/piggyback.c --- a/arch/ppc/boot/utils/piggyback.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/boot/utils/piggyback.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.piggyback.c 1.7 05/18/01 15:17:23 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/config.in b/arch/ppc/config.in --- a/arch/ppc/config.in Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/config.in Sat Jun 16 06:00:02 2001 @@ -1,4 +1,4 @@ -# BK Id: SCCS/s.config.in 1.24 05/21/01 00:48:24 cort +# BK Id: %F% %I% %G% %U% %#% # # For a description of the syntax of this configuration file, # see Documentation/kbuild/config-language.txt. diff -Nru a/arch/ppc/kernel/Makefile b/arch/ppc/kernel/Makefile --- a/arch/ppc/kernel/Makefile Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/kernel/Makefile Sat Jun 16 06:00:06 2001 @@ -1,4 +1,4 @@ -# BK Id: SCCS/s.Makefile 1.19 05/26/01 14:48:14 paulus +# BK Id: %F% %I% %G% %U% %#% # # # Makefile for the linux kernel. diff -Nru a/arch/ppc/kernel/align.c b/arch/ppc/kernel/align.c --- a/arch/ppc/kernel/align.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/kernel/align.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.align.c 1.5 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * align.c - handle alignment exceptions for the Power PC. diff -Nru a/arch/ppc/kernel/apus_pci.c b/arch/ppc/kernel/apus_pci.c --- a/arch/ppc/kernel/apus_pci.c Sat Jun 16 06:00:08 2001 +++ b/arch/ppc/kernel/apus_pci.c Sat Jun 16 06:00:13 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.apus_pci.c 1.3 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Copyright (C) Michel Dänzer diff -Nru a/arch/ppc/kernel/apus_pci.h b/arch/ppc/kernel/apus_pci.h --- a/arch/ppc/kernel/apus_pci.h Sat Jun 16 06:00:07 2001 +++ b/arch/ppc/kernel/apus_pci.h Sat Jun 16 06:00:13 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.apus_pci.h 1.4 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Phase5 CybervisionPPC (TVP4020) definitions for the Permedia2 framebuffer diff -Nru a/arch/ppc/kernel/apus_setup.c b/arch/ppc/kernel/apus_setup.c --- a/arch/ppc/kernel/apus_setup.c Sat Jun 16 06:00:03 2001 +++ b/arch/ppc/kernel/apus_setup.c Sat Jun 16 06:00:03 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.apus_setup.c 1.11 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * linux/arch/ppc/kernel/apus_setup.c diff -Nru a/arch/ppc/kernel/bitops.c b/arch/ppc/kernel/bitops.c --- a/arch/ppc/kernel/bitops.c Sat Jun 16 06:00:04 2001 +++ b/arch/ppc/kernel/bitops.c Sat Jun 16 06:00:04 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.bitops.c 1.7 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Copyright (C) 1996 Paul Mackerras. diff -Nru a/arch/ppc/kernel/checks.c b/arch/ppc/kernel/checks.c --- a/arch/ppc/kernel/checks.c Sat Jun 16 06:00:08 2001 +++ b/arch/ppc/kernel/checks.c Sat Jun 16 06:00:08 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.checks.c 1.6 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/kernel/chrp_pci.c b/arch/ppc/kernel/chrp_pci.c --- a/arch/ppc/kernel/chrp_pci.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/kernel/chrp_pci.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.chrp_pci.c 1.16 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * CHRP pci routines. @@ -314,14 +314,16 @@ struct pci_controller *hose; volatile unsigned char *cfg; unsigned int *dma; -#ifdef CONFIG_POWER3 struct device_node *root = find_path_device("/"); +#ifdef CONFIG_POWER3 unsigned int *opprop = (unsigned int *) get_property(root, "platform-open-pic", NULL); int i; #endif for(; dev != NULL; dev = dev->next, ++index) { + if (dev->parent != root) + continue; if (dev->n_addrs < 1) { printk(KERN_WARNING "Can't use %s: no address\n", dev->full_name); diff -Nru a/arch/ppc/kernel/chrp_setup.c b/arch/ppc/kernel/chrp_setup.c --- a/arch/ppc/kernel/chrp_setup.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/kernel/chrp_setup.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.chrp_setup.c 1.20 06/05/01 21:22:02 paulus + * BK Id: %F% %I% %G% %U% %#% */ /* * linux/arch/ppc/kernel/setup.c diff -Nru a/arch/ppc/kernel/chrp_time.c b/arch/ppc/kernel/chrp_time.c --- a/arch/ppc/kernel/chrp_time.c Sat Jun 16 06:00:03 2001 +++ b/arch/ppc/kernel/chrp_time.c Sat Jun 16 06:00:03 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.chrp_time.c 1.7 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * linux/arch/i386/kernel/time.c diff -Nru a/arch/ppc/kernel/entry.S b/arch/ppc/kernel/entry.S --- a/arch/ppc/kernel/entry.S Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/kernel/entry.S Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.entry.S 1.15 06/09/01 22:16:38 paulus + * BK Id: %F% %I% %G% %U% %#% */ /* * PowerPC version diff -Nru a/arch/ppc/kernel/error_log.c b/arch/ppc/kernel/error_log.c --- a/arch/ppc/kernel/error_log.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/kernel/error_log.c Sat Jun 16 06:00:13 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.error_log.c 1.6 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * arch/ppc/kernel/error_log.c diff -Nru a/arch/ppc/kernel/error_log.h b/arch/ppc/kernel/error_log.h --- a/arch/ppc/kernel/error_log.h Sat Jun 16 06:00:04 2001 +++ b/arch/ppc/kernel/error_log.h Sat Jun 16 06:00:13 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.error_log.h 1.5 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ #ifndef __ERROR_LOG_H__ #define __ERROR_LOG_H__ diff -Nru a/arch/ppc/kernel/feature.c b/arch/ppc/kernel/feature.c --- a/arch/ppc/kernel/feature.c Sat Jun 16 06:00:08 2001 +++ b/arch/ppc/kernel/feature.c Sat Jun 16 06:00:08 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.feature.c 1.10 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * arch/ppc/kernel/feature.c diff -Nru a/arch/ppc/kernel/find_name.c b/arch/ppc/kernel/find_name.c --- a/arch/ppc/kernel/find_name.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/kernel/find_name.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.find_name.c 1.5 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/kernel/galaxy_pci.c b/arch/ppc/kernel/galaxy_pci.c --- a/arch/ppc/kernel/galaxy_pci.c Sat Jun 16 06:00:10 2001 +++ b/arch/ppc/kernel/galaxy_pci.c Sat Jun 16 06:00:10 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.galaxy_pci.c 1.7 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * diff -Nru a/arch/ppc/kernel/gemini_pci.c b/arch/ppc/kernel/gemini_pci.c --- a/arch/ppc/kernel/gemini_pci.c Sat Jun 16 06:00:04 2001 +++ b/arch/ppc/kernel/gemini_pci.c Sat Jun 16 06:00:13 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.gemini_pci.c 1.5 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/kernel/gemini_prom.S b/arch/ppc/kernel/gemini_prom.S --- a/arch/ppc/kernel/gemini_prom.S Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/kernel/gemini_prom.S Sat Jun 16 06:00:13 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.gemini_prom.S 1.5 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * arch/ppc/kernel/gemini_prom.S diff -Nru a/arch/ppc/kernel/gemini_setup.c b/arch/ppc/kernel/gemini_setup.c --- a/arch/ppc/kernel/gemini_setup.c Sat Jun 16 06:00:08 2001 +++ b/arch/ppc/kernel/gemini_setup.c Sat Jun 16 06:00:13 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.gemini_setup.c 1.7 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * linux/arch/ppc/kernel/setup.c diff -Nru a/arch/ppc/kernel/hashtable.S b/arch/ppc/kernel/hashtable.S --- a/arch/ppc/kernel/hashtable.S Sat Jun 16 06:00:07 2001 +++ b/arch/ppc/kernel/hashtable.S Sat Jun 16 06:00:07 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.hashtable.S 1.11 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * arch/ppc/kernel/hashtable.S diff -Nru a/arch/ppc/kernel/head.S b/arch/ppc/kernel/head.S --- a/arch/ppc/kernel/head.S Sat Jun 16 06:00:07 2001 +++ b/arch/ppc/kernel/head.S Sat Jun 16 06:00:07 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.head.S 1.21 05/23/01 00:38:42 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * PowerPC version diff -Nru a/arch/ppc/kernel/head_4xx.S b/arch/ppc/kernel/head_4xx.S --- a/arch/ppc/kernel/head_4xx.S Sat Jun 16 06:00:12 2001 +++ b/arch/ppc/kernel/head_4xx.S Sat Jun 16 06:00:12 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.head_4xx.S 1.6 05/21/01 11:50:00 paulus + * BK Id: %F% %I% %G% %U% %#% */ /* * Copyright (c) 1995-1996 Gary Thomas diff -Nru a/arch/ppc/kernel/head_8xx.S b/arch/ppc/kernel/head_8xx.S --- a/arch/ppc/kernel/head_8xx.S Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/kernel/head_8xx.S Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.head_8xx.S 1.11 05/21/01 11:50:00 paulus + * BK Id: %F% %I% %G% %U% %#% */ /* * arch/ppc/kernel/except_8xx.S diff -Nru a/arch/ppc/kernel/i8259.c b/arch/ppc/kernel/i8259.c --- a/arch/ppc/kernel/i8259.c Sat Jun 16 06:00:04 2001 +++ b/arch/ppc/kernel/i8259.c Sat Jun 16 06:00:04 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.i8259.c 1.7 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ #include diff -Nru a/arch/ppc/kernel/i8259.h b/arch/ppc/kernel/i8259.h --- a/arch/ppc/kernel/i8259.h Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/kernel/i8259.h Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.i8259.h 1.5 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ #ifndef _PPC_KERNEL_i8259_H diff -Nru a/arch/ppc/kernel/idle.c b/arch/ppc/kernel/idle.c --- a/arch/ppc/kernel/idle.c Sat Jun 16 06:00:05 2001 +++ b/arch/ppc/kernel/idle.c Sat Jun 16 06:00:05 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.idle.c 1.11 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Idle daemon for PowerPC. Idle daemon will handle any action diff -Nru a/arch/ppc/kernel/indirect_pci.c b/arch/ppc/kernel/indirect_pci.c --- a/arch/ppc/kernel/indirect_pci.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/kernel/indirect_pci.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.indirect_pci.c 1.7 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Support for indirect PCI bridges. diff -Nru a/arch/ppc/kernel/irq.c b/arch/ppc/kernel/irq.c --- a/arch/ppc/kernel/irq.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/kernel/irq.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.irq.c 1.26 06/06/01 22:33:09 paulus + * BK Id: %F% %I% %G% %U% %#% */ /* * arch/ppc/kernel/irq.c diff -Nru a/arch/ppc/kernel/local_irq.h b/arch/ppc/kernel/local_irq.h --- a/arch/ppc/kernel/local_irq.h Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/kernel/local_irq.h Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.local_irq.h 1.7 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ #ifndef _PPC_KERNEL_LOCAL_IRQ_H diff -Nru a/arch/ppc/kernel/m8260_setup.c b/arch/ppc/kernel/m8260_setup.c --- a/arch/ppc/kernel/m8260_setup.c Sat Jun 16 06:00:08 2001 +++ b/arch/ppc/kernel/m8260_setup.c Sat Jun 16 06:00:08 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.m8260_setup.c 1.15 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * linux/arch/ppc/kernel/setup.c diff -Nru a/arch/ppc/kernel/m8xx_setup.c b/arch/ppc/kernel/m8xx_setup.c --- a/arch/ppc/kernel/m8xx_setup.c Sat Jun 16 06:00:12 2001 +++ b/arch/ppc/kernel/m8xx_setup.c Sat Jun 16 06:00:12 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.m8xx_setup.c 1.17 05/18/01 07:54:04 patch + * BK Id: %F% %I% %G% %U% %#% */ /* * linux/arch/ppc/kernel/setup.c diff -Nru a/arch/ppc/kernel/misc.S b/arch/ppc/kernel/misc.S --- a/arch/ppc/kernel/misc.S Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/kernel/misc.S Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.misc.S 1.16 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * This file contains miscellaneous low-level functions. @@ -263,10 +263,13 @@ * This is a no-op on the 601. */ _GLOBAL(flush_instruction_cache) -#ifdef CONFIG_8xx +#if defined(CONFIG_8xx) isync lis r5, IDC_INVALL@h mtspr IC_CST, r5 +#elif defined(CONFIG_4xx) + lis r3, KERNELBASE@h + iccci 0,r3 #else mfspr r3,PVR rlwinm r3,r3,16,16,31 diff -Nru a/arch/ppc/kernel/mk_defs.c b/arch/ppc/kernel/mk_defs.c --- a/arch/ppc/kernel/mk_defs.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/kernel/mk_defs.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.mk_defs.c 1.5 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * This program is used to generate definitions needed by diff -Nru a/arch/ppc/kernel/oak_setup.c b/arch/ppc/kernel/oak_setup.c --- a/arch/ppc/kernel/oak_setup.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/kernel/oak_setup.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.oak_setup.c 1.5 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * diff -Nru a/arch/ppc/kernel/oak_setup.h b/arch/ppc/kernel/oak_setup.h --- a/arch/ppc/kernel/oak_setup.h Sat Jun 16 06:00:05 2001 +++ b/arch/ppc/kernel/oak_setup.h Sat Jun 16 06:00:05 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.oak_setup.h 1.5 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * diff -Nru a/arch/ppc/kernel/open_pic.c b/arch/ppc/kernel/open_pic.c --- a/arch/ppc/kernel/open_pic.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/kernel/open_pic.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.open_pic.c 1.20 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * arch/ppc/kernel/open_pic.c -- OpenPIC Interrupt Handling diff -Nru a/arch/ppc/kernel/open_pic.h b/arch/ppc/kernel/open_pic.h --- a/arch/ppc/kernel/open_pic.h Sat Jun 16 06:00:04 2001 +++ b/arch/ppc/kernel/open_pic.h Sat Jun 16 06:00:04 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.open_pic.h 1.8 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * arch/ppc/kernel/open_pic.h -- OpenPIC Interrupt Handling diff -Nru a/arch/ppc/kernel/open_pic_defs.h b/arch/ppc/kernel/open_pic_defs.h --- a/arch/ppc/kernel/open_pic_defs.h Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/kernel/open_pic_defs.h Sat Jun 16 06:00:13 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.open_pic_defs.h 1.7 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * linux/openpic.h -- OpenPIC definitions diff -Nru a/arch/ppc/kernel/pci-dma.c b/arch/ppc/kernel/pci-dma.c --- a/arch/ppc/kernel/pci-dma.c Sat Jun 16 06:00:05 2001 +++ b/arch/ppc/kernel/pci-dma.c Sat Jun 16 06:00:05 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.pci-dma.c 1.5 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Copyright (C) 2000 Ani Joshi diff -Nru a/arch/ppc/kernel/pci.c b/arch/ppc/kernel/pci.c --- a/arch/ppc/kernel/pci.c Sat Jun 16 06:00:09 2001 +++ b/arch/ppc/kernel/pci.c Sat Jun 16 06:00:09 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.pci.c 1.21 05/21/01 01:31:30 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Common pmac/prep/chrp pci routines. -- Cort diff -Nru a/arch/ppc/kernel/pci.h b/arch/ppc/kernel/pci.h --- a/arch/ppc/kernel/pci.h Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/kernel/pci.h Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.pci.h 1.7 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ #ifndef __PPC_KERNEL_PCI_H__ diff -Nru a/arch/ppc/kernel/pmac_backlight.c b/arch/ppc/kernel/pmac_backlight.c --- a/arch/ppc/kernel/pmac_backlight.c Sat Jun 16 06:00:04 2001 +++ b/arch/ppc/kernel/pmac_backlight.c Sat Jun 16 06:00:04 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.pmac_backlight.c 1.5 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Miscellaneous procedures for dealing with the PowerMac hardware. diff -Nru a/arch/ppc/kernel/pmac_nvram.c b/arch/ppc/kernel/pmac_nvram.c --- a/arch/ppc/kernel/pmac_nvram.c Sat Jun 16 06:00:09 2001 +++ b/arch/ppc/kernel/pmac_nvram.c Sat Jun 16 06:00:09 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.pmac_nvram.c 1.5 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Miscellaneous procedures for dealing with the PowerMac hardware. diff -Nru a/arch/ppc/kernel/pmac_pci.c b/arch/ppc/kernel/pmac_pci.c --- a/arch/ppc/kernel/pmac_pci.c Sat Jun 16 06:00:12 2001 +++ b/arch/ppc/kernel/pmac_pci.c Sat Jun 16 06:00:12 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.pmac_pci.c 1.14 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Support for PCI bridges found on Power Macintoshes. diff -Nru a/arch/ppc/kernel/pmac_pic.c b/arch/ppc/kernel/pmac_pic.c --- a/arch/ppc/kernel/pmac_pic.c Sat Jun 16 06:00:03 2001 +++ b/arch/ppc/kernel/pmac_pic.c Sat Jun 16 06:00:03 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.pmac_pic.c 1.14 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/kernel/pmac_pic.h b/arch/ppc/kernel/pmac_pic.h --- a/arch/ppc/kernel/pmac_pic.h Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/kernel/pmac_pic.h Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.pmac_pic.h 1.5 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ #ifndef _PPC_KERNEL_PMAC_PIC_H #define _PPC_KERNEL_PMAC_PIC_H diff -Nru a/arch/ppc/kernel/pmac_setup.c b/arch/ppc/kernel/pmac_setup.c --- a/arch/ppc/kernel/pmac_setup.c Sat Jun 16 06:00:03 2001 +++ b/arch/ppc/kernel/pmac_setup.c Sat Jun 16 06:00:03 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.pmac_setup.c 1.21 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * linux/arch/ppc/kernel/setup.c diff -Nru a/arch/ppc/kernel/pmac_time.c b/arch/ppc/kernel/pmac_time.c --- a/arch/ppc/kernel/pmac_time.c Sat Jun 16 06:00:07 2001 +++ b/arch/ppc/kernel/pmac_time.c Sat Jun 16 06:00:07 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.pmac_time.c 1.8 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Support for periodic interrupts (100 per second) and for getting diff -Nru a/arch/ppc/kernel/ppc-stub.c b/arch/ppc/kernel/ppc-stub.c --- a/arch/ppc/kernel/ppc-stub.c Sat Jun 16 06:00:08 2001 +++ b/arch/ppc/kernel/ppc-stub.c Sat Jun 16 06:00:08 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.ppc-stub.c 1.6 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * ppc-stub.c: KGDB support for the Linux kernel. diff -Nru a/arch/ppc/kernel/ppc4xx_pic.c b/arch/ppc/kernel/ppc4xx_pic.c --- a/arch/ppc/kernel/ppc4xx_pic.c Sat Jun 16 06:00:07 2001 +++ b/arch/ppc/kernel/ppc4xx_pic.c Sat Jun 16 06:00:07 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.ppc4xx_pic.c 1.5 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * diff -Nru a/arch/ppc/kernel/ppc4xx_pic.h b/arch/ppc/kernel/ppc4xx_pic.h --- a/arch/ppc/kernel/ppc4xx_pic.h Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/kernel/ppc4xx_pic.h Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.ppc4xx_pic.h 1.5 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * @@ -14,12 +14,8 @@ #ifndef __PPC4XX_PIC_H__ #define __PPC4XX_PIC_H__ -#include - - -#ifdef __cplusplus -extern "C" { -#endif +#include +#include "local_irq.h" /* External Global Variables */ @@ -30,10 +26,5 @@ extern void ppc4xx_pic_init(void); extern int ppc4xx_pic_get_irq(struct pt_regs *regs); - - -#ifdef __cplusplus -} -#endif #endif /* __PPC4XX_PIC_H__ */ diff -Nru a/arch/ppc/kernel/ppc8260_pic.c b/arch/ppc/kernel/ppc8260_pic.c --- a/arch/ppc/kernel/ppc8260_pic.c Sat Jun 16 06:00:08 2001 +++ b/arch/ppc/kernel/ppc8260_pic.c Sat Jun 16 06:00:08 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.ppc8260_pic.c 1.5 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ #include diff -Nru a/arch/ppc/kernel/ppc8260_pic.h b/arch/ppc/kernel/ppc8260_pic.h --- a/arch/ppc/kernel/ppc8260_pic.h Sat Jun 16 06:00:12 2001 +++ b/arch/ppc/kernel/ppc8260_pic.h Sat Jun 16 06:00:12 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.ppc8260_pic.h 1.7 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ #ifndef _PPC_KERNEL_PPC8260_H diff -Nru a/arch/ppc/kernel/ppc8xx_pic.c b/arch/ppc/kernel/ppc8xx_pic.c --- a/arch/ppc/kernel/ppc8xx_pic.c Sat Jun 16 06:00:04 2001 +++ b/arch/ppc/kernel/ppc8xx_pic.c Sat Jun 16 06:00:04 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.ppc8xx_pic.c 1.10 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/kernel/ppc8xx_pic.h b/arch/ppc/kernel/ppc8xx_pic.h --- a/arch/ppc/kernel/ppc8xx_pic.h Sat Jun 16 06:00:07 2001 +++ b/arch/ppc/kernel/ppc8xx_pic.h Sat Jun 16 06:00:07 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.ppc8xx_pic.h 1.7 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ #ifndef _PPC_KERNEL_PPC8xx_H #define _PPC_KERNEL_PPC8xx_H diff -Nru a/arch/ppc/kernel/ppc_asm.h b/arch/ppc/kernel/ppc_asm.h --- a/arch/ppc/kernel/ppc_asm.h Sat Jun 16 06:00:08 2001 +++ b/arch/ppc/kernel/ppc_asm.h Sat Jun 16 06:00:08 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.ppc_asm.h 1.10 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * arch/ppc/kernel/ppc_asm.h diff -Nru a/arch/ppc/kernel/ppc_htab.c b/arch/ppc/kernel/ppc_htab.c --- a/arch/ppc/kernel/ppc_htab.c Sat Jun 16 06:00:11 2001 +++ b/arch/ppc/kernel/ppc_htab.c Sat Jun 16 06:00:11 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.ppc_htab.c 1.8 05/17/01 18:14:21 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * PowerPC hash table management proc entry. Will show information diff -Nru a/arch/ppc/kernel/ppc_ksyms.c b/arch/ppc/kernel/ppc_ksyms.c --- a/arch/ppc/kernel/ppc_ksyms.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/kernel/ppc_ksyms.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.ppc_ksyms.c 1.34 06/09/01 22:38:13 paulus + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/kernel/prep_nvram.c b/arch/ppc/kernel/prep_nvram.c --- a/arch/ppc/kernel/prep_nvram.c Sat Jun 16 06:00:03 2001 +++ b/arch/ppc/kernel/prep_nvram.c Sat Jun 16 06:00:03 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.prep_nvram.c 1.9 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * linux/arch/ppc/kernel/prep_nvram.c diff -Nru a/arch/ppc/kernel/prep_pci.c b/arch/ppc/kernel/prep_pci.c --- a/arch/ppc/kernel/prep_pci.c Sat Jun 16 06:00:12 2001 +++ b/arch/ppc/kernel/prep_pci.c Sat Jun 16 06:00:12 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.prep_pci.c 1.18 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * PReP pci functions. diff -Nru a/arch/ppc/kernel/prep_setup.c b/arch/ppc/kernel/prep_setup.c --- a/arch/ppc/kernel/prep_setup.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/kernel/prep_setup.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.prep_setup.c 1.20 05/21/01 09:19:50 trini + * BK Id: %F% %I% %G% %U% %#% */ /* * linux/arch/ppc/kernel/setup.c diff -Nru a/arch/ppc/kernel/prep_time.c b/arch/ppc/kernel/prep_time.c --- a/arch/ppc/kernel/prep_time.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/kernel/prep_time.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.prep_time.c 1.7 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * linux/arch/i386/kernel/time.c diff -Nru a/arch/ppc/kernel/proc_rtas.c b/arch/ppc/kernel/proc_rtas.c --- a/arch/ppc/kernel/proc_rtas.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/kernel/proc_rtas.c Sat Jun 16 06:00:13 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.proc_rtas.c 1.5 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * arch/ppc/kernel/proc_rtas.c diff -Nru a/arch/ppc/kernel/process.c b/arch/ppc/kernel/process.c --- a/arch/ppc/kernel/process.c Sat Jun 16 06:00:05 2001 +++ b/arch/ppc/kernel/process.c Sat Jun 16 06:00:05 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.process.c 1.15 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * linux/arch/ppc/kernel/process.c @@ -267,6 +267,15 @@ printk("Last syscall: %ld ", current->thread.last_syscall); printk("\nlast math %p last altivec %p", last_task_used_math, last_task_used_altivec); + +#ifdef CONFIG_4xx + printk("\nPLB0: bear= 0x%8.8x acr= 0x%8.8x besr= 0x%8.8x\n", + mfdcr(DCRN_POB0_BEAR), mfdcr(DCRN_PLB0_ACR), + mfdcr(DCRN_PLB0_BESR)); + printk("PLB0 to OPB: bear= 0x%8.8x besr0= 0x%8.8x besr1= 0x%8.8x\n", + mfdcr(DCRN_PLB0_BEAR), mfdcr(DCRN_POB0_BESR0), + mfdcr(DCRN_POB0_BESR1)); +#endif #ifdef CONFIG_SMP printk(" CPU: %d", current->processor); @@ -289,7 +298,8 @@ printk("\n"); } } -out: ; +out: + print_backtrace((unsigned long *)regs->gpr[1]); } void exit_thread(void) diff -Nru a/arch/ppc/kernel/prom.c b/arch/ppc/kernel/prom.c --- a/arch/ppc/kernel/prom.c Sat Jun 16 06:00:07 2001 +++ b/arch/ppc/kernel/prom.c Sat Jun 16 06:00:07 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.prom.c 1.23 06/06/01 22:49:01 paulus + * BK Id: %F% %I% %G% %U% %#% */ /* * Procedures for interfacing to the Open Firmware PROM on @@ -174,7 +174,6 @@ #endif extern void enter_rtas(void *); -extern unsigned long reloc_offset(void); void phys_call_rtas(int, int, int, ...); extern char cmd_line[512]; /* XXX */ @@ -191,6 +190,14 @@ #define BOOT_INFO_IS_COMPATIBLE(bi) ((bi)->compatible_version <= BOOT_INFO_VERSION) #define BOOT_INFO_IS_V2_COMPATIBLE(bi) ((bi)->version >= 2) #define BOOT_INFO_IS_V4_COMPATIBLE(bi) ((bi)->version >= 4) + +/* + * Note that prom_init() and anything called from prom_init() must + * use the RELOC/PTRRELOC macros to access any static data in + * memory, since the kernel may be running at an address that is + * different from the address that it was linked at. + * (Note that strings count as static variables.) + */ __init static void diff -Nru a/arch/ppc/kernel/ptrace.c b/arch/ppc/kernel/ptrace.c --- a/arch/ppc/kernel/ptrace.c Sat Jun 16 06:00:07 2001 +++ b/arch/ppc/kernel/ptrace.c Sat Jun 16 06:00:07 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.ptrace.c 1.5 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * linux/arch/ppc/kernel/ptrace.c diff -Nru a/arch/ppc/kernel/qspan_pci.c b/arch/ppc/kernel/qspan_pci.c --- a/arch/ppc/kernel/qspan_pci.c Sat Jun 16 06:00:08 2001 +++ b/arch/ppc/kernel/qspan_pci.c Sat Jun 16 06:00:08 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.qspan_pci.c 1.5 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * QSpan pci routines. diff -Nru a/arch/ppc/kernel/residual.c b/arch/ppc/kernel/residual.c --- a/arch/ppc/kernel/residual.c Sat Jun 16 06:00:08 2001 +++ b/arch/ppc/kernel/residual.c Sat Jun 16 06:00:08 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.residual.c 1.7 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Code to deal with the PReP residual data. diff -Nru a/arch/ppc/kernel/semaphore.c b/arch/ppc/kernel/semaphore.c --- a/arch/ppc/kernel/semaphore.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/kernel/semaphore.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.semaphore.c 1.12 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * PowerPC-specific semaphore code. diff -Nru a/arch/ppc/kernel/setup.c b/arch/ppc/kernel/setup.c --- a/arch/ppc/kernel/setup.c Sat Jun 16 06:00:04 2001 +++ b/arch/ppc/kernel/setup.c Sat Jun 16 06:00:04 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.setup.c 1.32 05/23/01 00:38:42 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Common prep/pmac/chrp boot and setup code. @@ -36,16 +36,16 @@ #include #include #endif +#ifdef CONFIG_4xx +#include +#endif #include #include #include #include -#ifdef CONFIG_OAK -#include "oak_setup.h" -#endif /* CONFIG_OAK */ -extern void pmac_init(unsigned long r3, +extern void apus_init(unsigned long r3, unsigned long r4, unsigned long r5, unsigned long r6, @@ -57,7 +57,7 @@ unsigned long r6, unsigned long r7); -extern void prep_init(unsigned long r3, +extern void gemini_init(unsigned long r3, unsigned long r4, unsigned long r5, unsigned long r6, @@ -69,19 +69,24 @@ unsigned long r6, unsigned long r7); -extern void apus_init(unsigned long r3, +extern void m8260_init(unsigned long r3, + unsigned long r4, + unsigned long r5, + unsigned long r6, + unsigned long r7); + +extern void pmac_init(unsigned long r3, unsigned long r4, unsigned long r5, unsigned long r6, unsigned long r7); -extern void gemini_init(unsigned long r3, +extern void prep_init(unsigned long r3, unsigned long r4, unsigned long r5, unsigned long r6, unsigned long r7); - extern void bootx_init(unsigned long r4, unsigned long phys); extern unsigned long reloc_offset(void); @@ -379,11 +384,12 @@ break; } - len += sprintf(len+buffer, "revision\t: %hd.%hd\n", maj, min); + len += sprintf(len+buffer, "revision\t: %hd.%hd (pvr %04x %04x)\n", + maj, min, PVR_VER(pvr), PVR_REV(pvr)); len += sprintf(buffer+len, "bogomips\t: %lu.%02lu\n", - (CD(loops_per_jiffy)+2500)/(500000/HZ), - (CD(loops_per_jiffy)+2500)/(5000/HZ) % 100); + CD(loops_per_jiffy)/(500000/HZ), + CD(loops_per_jiffy)/(5000/HZ) % 100); bogosum += CD(loops_per_jiffy); } @@ -391,8 +397,8 @@ if ( i ) len += sprintf(buffer+len, "\n"); len += sprintf(buffer+len,"total bogomips\t: %lu.%02lu\n", - (bogosum+2500)/(500000/HZ), - (bogosum+2500)/(5000/HZ) % 100); + bogosum/500000, + bogosum/5000 % 100); #endif /* CONFIG_SMP */ /* @@ -441,11 +447,15 @@ } #endif /* CONFIG_ALL_PPC */ -#ifdef CONFIG_6xx +#if defined(CONFIG_6xx) || defined(CONFIG_PPC64BRIDGE) /* * We're called here very early in the boot. We determine the machine * type and call the appropriate low-level setup functions. * -- Cort + * + * Note that the kernel may be running at an address which is different + * from the address that it was linked at, so we must use RELOC/PTRRELOC + * to access static data (including strings). -- paulus */ __init unsigned long @@ -454,65 +464,36 @@ extern char __bss_start, _end; unsigned long phys; unsigned long offset = reloc_offset(); - unsigned long local_have_of = 1, local_machine; - struct bi_record *rec; - + /* Default */ phys = offset + KERNELBASE; - -#if defined(CONFIG_APUS) - return phys; -#endif - + /* First zero the BSS -- use memset, some arches don't have * caches on yet */ - memset_io(PTRRELOC(&__bss_start),0 , &_end - &__bss_start); + memset_io(PTRRELOC(&__bss_start), 0, &_end - &__bss_start); -#if defined(CONFIG_ALL_PPC) || defined(CONFIG_GEMINI) +#if defined(CONFIG_ALL_PPC) || defined(CONFIG_PPC64BRIDGE) /* If we came here from BootX, clear the screen, * set up some pointers and return. */ -#if defined(CONFIG_ALL_PPC) if ((r3 == 0x426f6f58) && (r5 == 0)) { bootx_init(r4, phys); return phys; } -#endif /* check if we're prep, return if we are */ if ( *(unsigned long *)(0) == 0xdeadc0de ) return phys; - - /* - * See if we have any bootloader info passed along. If we do, - * get the machine type and find out if we have OF. - * - * The strategy here is to assume that we want to call prom_init() - * unless the bootinfo data passed to us tell us that we don't - * have OF. - * -- Cort - */ - rec = (struct bi_record *)_ALIGN((ulong)PTRRELOC(&__bss_start)+(1<<20)-1,(1<<20)); - if ( rec->tag == BI_FIRST ) - { - for ( ; rec->tag != BI_LAST ; - rec = (struct bi_record *)((ulong)rec + rec->size) ) - { - ulong *data = rec->data; - if ( rec->tag == BI_MACHTYPE ) - { - local_machine = data[0]; - local_have_of = data[1]; - } - } - } - if ( local_have_of ) - phys = prom_init( r3, r4, (prom_entry)r5); + /* + * for now, don't use bootinfo because it breaks yaboot 0.5 + * and assume that if we didn't find a magic number, we have OF + */ + phys = prom_init( r3, r4, (prom_entry)r5); #endif - + return phys; } -#endif /* CONFIG_6xx */ +#endif /* CONFIG_6xx || CONFIG_PPC64BRIDGE */ /* * Find out what kind of machine we're on and save any data we need @@ -522,6 +503,10 @@ identify_machine(unsigned long r3, unsigned long r4, unsigned long r5, unsigned long r6, unsigned long r7) { +#ifdef CONFIG_CMDLINE + strcpy(cmd_line, CONFIG_CMDLINE); +#endif /* CONFIG_CMDLINE */ + parse_bootinfo(); if ( ppc_md.progress ) ppc_md.progress("id mach(): start", 0x100); diff -Nru a/arch/ppc/kernel/signal.c b/arch/ppc/kernel/signal.c --- a/arch/ppc/kernel/signal.c Sat Jun 16 06:00:05 2001 +++ b/arch/ppc/kernel/signal.c Sat Jun 16 06:00:05 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.signal.c 1.7 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * linux/arch/ppc/kernel/signal.c diff -Nru a/arch/ppc/kernel/sleep.S b/arch/ppc/kernel/sleep.S --- a/arch/ppc/kernel/sleep.S Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/kernel/sleep.S Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.sleep.S 1.7 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * This file contains sleep low-level functions for PowerBook G3. diff -Nru a/arch/ppc/kernel/smp.c b/arch/ppc/kernel/smp.c --- a/arch/ppc/kernel/smp.c Sat Jun 16 06:00:03 2001 +++ b/arch/ppc/kernel/smp.c Sat Jun 16 06:00:03 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.smp.c 1.25 05/23/01 00:38:42 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Smp support for ppc. diff -Nru a/arch/ppc/kernel/softemu8xx.c b/arch/ppc/kernel/softemu8xx.c --- a/arch/ppc/kernel/softemu8xx.c Sat Jun 16 06:00:12 2001 +++ b/arch/ppc/kernel/softemu8xx.c Sat Jun 16 06:00:12 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.softemu8xx.c 1.8 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Software emulation of some PPC instructions for the 8xx core. diff -Nru a/arch/ppc/kernel/syscalls.c b/arch/ppc/kernel/syscalls.c --- a/arch/ppc/kernel/syscalls.c Sat Jun 16 06:00:12 2001 +++ b/arch/ppc/kernel/syscalls.c Sat Jun 16 06:00:12 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.syscalls.c 1.8 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * linux/arch/ppc/kernel/sys_ppc.c diff -Nru a/arch/ppc/kernel/time.c b/arch/ppc/kernel/time.c --- a/arch/ppc/kernel/time.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/kernel/time.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.time.c 1.18 06/06/01 22:33:09 paulus + * BK Id: %F% %I% %G% %U% %#% */ /* * Common time routines among all ppc machines. diff -Nru a/arch/ppc/kernel/traps.c b/arch/ppc/kernel/traps.c --- a/arch/ppc/kernel/traps.c Sat Jun 16 06:00:08 2001 +++ b/arch/ppc/kernel/traps.c Sat Jun 16 06:00:08 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.traps.c 1.11 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * linux/arch/ppc/kernel/traps.c @@ -82,7 +82,6 @@ spin_lock_irq(&oops_lock); printk("Oops: %s, sig: %ld\n", str, err); show_regs(fp); - print_backtrace((unsigned long *)fp->gpr[1]); spin_unlock_irq(&oops_lock); /* do_exit() should take care of panic'ing from an interrupt * context so we don't handle it here @@ -186,7 +185,6 @@ } #endif show_regs(regs); - print_backtrace((unsigned long *)regs->gpr[1]); panic("System Management Interrupt"); } @@ -334,7 +332,6 @@ debugger(regs); #endif show_regs(regs); - print_backtrace((unsigned long *)regs->gpr[1]); panic("kernel stack overflow"); } diff -Nru a/arch/ppc/kernel/walnut_setup.c b/arch/ppc/kernel/walnut_setup.c --- a/arch/ppc/kernel/walnut_setup.c Sat Jun 16 06:00:05 2001 +++ b/arch/ppc/kernel/walnut_setup.c Sat Jun 16 06:00:05 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.walnut_setup.c 1.5 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * diff -Nru a/arch/ppc/kernel/walnut_setup.h b/arch/ppc/kernel/walnut_setup.h --- a/arch/ppc/kernel/walnut_setup.h Sat Jun 16 06:00:12 2001 +++ b/arch/ppc/kernel/walnut_setup.h Sat Jun 16 06:00:12 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.walnut_setup.h 1.5 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * diff -Nru a/arch/ppc/kernel/xics.c b/arch/ppc/kernel/xics.c --- a/arch/ppc/kernel/xics.c Sat Jun 16 06:00:12 2001 +++ b/arch/ppc/kernel/xics.c Sat Jun 16 06:00:12 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.xics.c 1.5 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * arch/ppc/kernel/xics.c diff -Nru a/arch/ppc/kernel/xics.h b/arch/ppc/kernel/xics.h --- a/arch/ppc/kernel/xics.h Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/kernel/xics.h Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.xics.h 1.5 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * arch/ppc/kernel/xics.h diff -Nru a/arch/ppc/lib/Makefile b/arch/ppc/lib/Makefile --- a/arch/ppc/lib/Makefile Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/lib/Makefile Sat Jun 16 06:00:06 2001 @@ -1,4 +1,4 @@ -# BK Id: SCCS/s.Makefile 1.7 05/17/01 18:14:22 cort +# BK Id: %F% %I% %G% %U% %#% # # # Makefile for ppc-specific library files.. diff -Nru a/arch/ppc/lib/checksum.S b/arch/ppc/lib/checksum.S --- a/arch/ppc/lib/checksum.S Sat Jun 16 06:00:07 2001 +++ b/arch/ppc/lib/checksum.S Sat Jun 16 06:00:07 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.checksum.S 1.5 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * This file contains assembly-language implementations diff -Nru a/arch/ppc/lib/locks.c b/arch/ppc/lib/locks.c --- a/arch/ppc/lib/locks.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/lib/locks.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.locks.c 1.8 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Locks for smp ppc diff -Nru a/arch/ppc/lib/strcase.c b/arch/ppc/lib/strcase.c --- a/arch/ppc/lib/strcase.c Sat Jun 16 06:00:07 2001 +++ b/arch/ppc/lib/strcase.c Sat Jun 16 06:00:07 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.strcase.c 1.5 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include diff -Nru a/arch/ppc/lib/string.S b/arch/ppc/lib/string.S --- a/arch/ppc/lib/string.S Sat Jun 16 06:00:07 2001 +++ b/arch/ppc/lib/string.S Sat Jun 16 06:00:07 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.string.S 1.5 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * String handling functions for PowerPC. diff -Nru a/arch/ppc/math-emu/Makefile b/arch/ppc/math-emu/Makefile --- a/arch/ppc/math-emu/Makefile Sat Jun 16 06:00:03 2001 +++ b/arch/ppc/math-emu/Makefile Sat Jun 16 06:00:03 2001 @@ -1,4 +1,4 @@ -# BK Id: SCCS/s.Makefile 1.3 05/17/01 18:14:22 cort +# BK Id: %F% %I% %G% %U% %#% # # # diff -Nru a/arch/ppc/math-emu/double.h b/arch/ppc/math-emu/double.h --- a/arch/ppc/math-emu/double.h Sat Jun 16 06:00:09 2001 +++ b/arch/ppc/math-emu/double.h Sat Jun 16 06:00:09 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.double.h 1.5 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Definitions for IEEE Double Precision diff -Nru a/arch/ppc/math-emu/fabs.c b/arch/ppc/math-emu/fabs.c --- a/arch/ppc/math-emu/fabs.c Sat Jun 16 06:00:12 2001 +++ b/arch/ppc/math-emu/fabs.c Sat Jun 16 06:00:12 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fabs.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fadd.c b/arch/ppc/math-emu/fadd.c --- a/arch/ppc/math-emu/fadd.c Sat Jun 16 06:00:12 2001 +++ b/arch/ppc/math-emu/fadd.c Sat Jun 16 06:00:12 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fadd.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fadds.c b/arch/ppc/math-emu/fadds.c --- a/arch/ppc/math-emu/fadds.c Sat Jun 16 06:00:04 2001 +++ b/arch/ppc/math-emu/fadds.c Sat Jun 16 06:00:04 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fadds.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fcmpo.c b/arch/ppc/math-emu/fcmpo.c --- a/arch/ppc/math-emu/fcmpo.c Sat Jun 16 06:00:03 2001 +++ b/arch/ppc/math-emu/fcmpo.c Sat Jun 16 06:00:03 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fcmpo.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fcmpu.c b/arch/ppc/math-emu/fcmpu.c --- a/arch/ppc/math-emu/fcmpu.c Sat Jun 16 06:00:05 2001 +++ b/arch/ppc/math-emu/fcmpu.c Sat Jun 16 06:00:05 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fcmpu.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fctiw.c b/arch/ppc/math-emu/fctiw.c --- a/arch/ppc/math-emu/fctiw.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/math-emu/fctiw.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fctiw.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fctiwz.c b/arch/ppc/math-emu/fctiwz.c --- a/arch/ppc/math-emu/fctiwz.c Sat Jun 16 06:00:12 2001 +++ b/arch/ppc/math-emu/fctiwz.c Sat Jun 16 06:00:12 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fctiwz.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fdiv.c b/arch/ppc/math-emu/fdiv.c --- a/arch/ppc/math-emu/fdiv.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/math-emu/fdiv.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fdiv.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fdivs.c b/arch/ppc/math-emu/fdivs.c --- a/arch/ppc/math-emu/fdivs.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/math-emu/fdivs.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fdivs.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fmadd.c b/arch/ppc/math-emu/fmadd.c --- a/arch/ppc/math-emu/fmadd.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/math-emu/fmadd.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fmadd.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fmadds.c b/arch/ppc/math-emu/fmadds.c --- a/arch/ppc/math-emu/fmadds.c Sat Jun 16 06:00:07 2001 +++ b/arch/ppc/math-emu/fmadds.c Sat Jun 16 06:00:07 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fmadds.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fmr.c b/arch/ppc/math-emu/fmr.c --- a/arch/ppc/math-emu/fmr.c Sat Jun 16 06:00:07 2001 +++ b/arch/ppc/math-emu/fmr.c Sat Jun 16 06:00:07 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fmr.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fmsub.c b/arch/ppc/math-emu/fmsub.c --- a/arch/ppc/math-emu/fmsub.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/math-emu/fmsub.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fmsub.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fmsubs.c b/arch/ppc/math-emu/fmsubs.c --- a/arch/ppc/math-emu/fmsubs.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/math-emu/fmsubs.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fmsubs.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fmul.c b/arch/ppc/math-emu/fmul.c --- a/arch/ppc/math-emu/fmul.c Sat Jun 16 06:00:05 2001 +++ b/arch/ppc/math-emu/fmul.c Sat Jun 16 06:00:05 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fmul.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fmuls.c b/arch/ppc/math-emu/fmuls.c --- a/arch/ppc/math-emu/fmuls.c Sat Jun 16 06:00:05 2001 +++ b/arch/ppc/math-emu/fmuls.c Sat Jun 16 06:00:05 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fmuls.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fnabs.c b/arch/ppc/math-emu/fnabs.c --- a/arch/ppc/math-emu/fnabs.c Sat Jun 16 06:00:07 2001 +++ b/arch/ppc/math-emu/fnabs.c Sat Jun 16 06:00:07 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fnabs.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fneg.c b/arch/ppc/math-emu/fneg.c --- a/arch/ppc/math-emu/fneg.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/math-emu/fneg.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fneg.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fnmadd.c b/arch/ppc/math-emu/fnmadd.c --- a/arch/ppc/math-emu/fnmadd.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/math-emu/fnmadd.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fnmadd.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fnmadds.c b/arch/ppc/math-emu/fnmadds.c --- a/arch/ppc/math-emu/fnmadds.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/math-emu/fnmadds.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fnmadds.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fnmsub.c b/arch/ppc/math-emu/fnmsub.c --- a/arch/ppc/math-emu/fnmsub.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/math-emu/fnmsub.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fnmsub.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fnmsubs.c b/arch/ppc/math-emu/fnmsubs.c --- a/arch/ppc/math-emu/fnmsubs.c Sat Jun 16 06:00:09 2001 +++ b/arch/ppc/math-emu/fnmsubs.c Sat Jun 16 06:00:09 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fnmsubs.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fres.c b/arch/ppc/math-emu/fres.c --- a/arch/ppc/math-emu/fres.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/math-emu/fres.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fres.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/frsp.c b/arch/ppc/math-emu/frsp.c --- a/arch/ppc/math-emu/frsp.c Sat Jun 16 06:00:05 2001 +++ b/arch/ppc/math-emu/frsp.c Sat Jun 16 06:00:05 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.frsp.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/frsqrte.c b/arch/ppc/math-emu/frsqrte.c --- a/arch/ppc/math-emu/frsqrte.c Sat Jun 16 06:00:08 2001 +++ b/arch/ppc/math-emu/frsqrte.c Sat Jun 16 06:00:08 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.frsqrte.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fsel.c b/arch/ppc/math-emu/fsel.c --- a/arch/ppc/math-emu/fsel.c Sat Jun 16 06:00:09 2001 +++ b/arch/ppc/math-emu/fsel.c Sat Jun 16 06:00:09 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fsel.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fsqrt.c b/arch/ppc/math-emu/fsqrt.c --- a/arch/ppc/math-emu/fsqrt.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/math-emu/fsqrt.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fsqrt.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fsqrts.c b/arch/ppc/math-emu/fsqrts.c --- a/arch/ppc/math-emu/fsqrts.c Sat Jun 16 06:00:07 2001 +++ b/arch/ppc/math-emu/fsqrts.c Sat Jun 16 06:00:07 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fsqrts.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fsub.c b/arch/ppc/math-emu/fsub.c --- a/arch/ppc/math-emu/fsub.c Sat Jun 16 06:00:07 2001 +++ b/arch/ppc/math-emu/fsub.c Sat Jun 16 06:00:07 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fsub.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/fsubs.c b/arch/ppc/math-emu/fsubs.c --- a/arch/ppc/math-emu/fsubs.c Sat Jun 16 06:00:05 2001 +++ b/arch/ppc/math-emu/fsubs.c Sat Jun 16 06:00:05 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fsubs.c 1.6 05/17/01 18:14:22 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/lfd.c b/arch/ppc/math-emu/lfd.c --- a/arch/ppc/math-emu/lfd.c Sat Jun 16 06:00:05 2001 +++ b/arch/ppc/math-emu/lfd.c Sat Jun 16 06:00:05 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.lfd.c 1.6 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/lfs.c b/arch/ppc/math-emu/lfs.c --- a/arch/ppc/math-emu/lfs.c Sat Jun 16 06:00:08 2001 +++ b/arch/ppc/math-emu/lfs.c Sat Jun 16 06:00:08 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.lfs.c 1.6 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/math.c b/arch/ppc/math-emu/math.c --- a/arch/ppc/math-emu/math.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/math-emu/math.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.math.c 1.6 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * arch/ppc/math-emu/math.c diff -Nru a/arch/ppc/math-emu/mcrfs.c b/arch/ppc/math-emu/mcrfs.c --- a/arch/ppc/math-emu/mcrfs.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/math-emu/mcrfs.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.mcrfs.c 1.6 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/mffs.c b/arch/ppc/math-emu/mffs.c --- a/arch/ppc/math-emu/mffs.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/math-emu/mffs.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.mffs.c 1.6 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/mtfsb0.c b/arch/ppc/math-emu/mtfsb0.c --- a/arch/ppc/math-emu/mtfsb0.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/math-emu/mtfsb0.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.mtfsb0.c 1.6 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/mtfsb1.c b/arch/ppc/math-emu/mtfsb1.c --- a/arch/ppc/math-emu/mtfsb1.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/math-emu/mtfsb1.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.mtfsb1.c 1.6 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/mtfsf.c b/arch/ppc/math-emu/mtfsf.c --- a/arch/ppc/math-emu/mtfsf.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/math-emu/mtfsf.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.mtfsf.c 1.6 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/mtfsfi.c b/arch/ppc/math-emu/mtfsfi.c --- a/arch/ppc/math-emu/mtfsfi.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/math-emu/mtfsfi.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.mtfsfi.c 1.6 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/op-1.h b/arch/ppc/math-emu/op-1.h --- a/arch/ppc/math-emu/op-1.h Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/math-emu/op-1.h Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.op-1.h 1.5 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Basic one-word fraction declaration and manipulation. diff -Nru a/arch/ppc/math-emu/op-2.h b/arch/ppc/math-emu/op-2.h --- a/arch/ppc/math-emu/op-2.h Sat Jun 16 06:00:11 2001 +++ b/arch/ppc/math-emu/op-2.h Sat Jun 16 06:00:11 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.op-2.h 1.5 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Basic two-word fraction declaration and manipulation. diff -Nru a/arch/ppc/math-emu/op-4.h b/arch/ppc/math-emu/op-4.h --- a/arch/ppc/math-emu/op-4.h Sat Jun 16 06:00:11 2001 +++ b/arch/ppc/math-emu/op-4.h Sat Jun 16 06:00:11 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.op-4.h 1.5 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Basic four-word fraction declaration and manipulation. diff -Nru a/arch/ppc/math-emu/op-common.h b/arch/ppc/math-emu/op-common.h --- a/arch/ppc/math-emu/op-common.h Sat Jun 16 06:00:05 2001 +++ b/arch/ppc/math-emu/op-common.h Sat Jun 16 06:00:05 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.op-common.h 1.5 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ #define _FP_DECL(wc, X) \ diff -Nru a/arch/ppc/math-emu/sfp-machine.h b/arch/ppc/math-emu/sfp-machine.h --- a/arch/ppc/math-emu/sfp-machine.h Sat Jun 16 06:00:07 2001 +++ b/arch/ppc/math-emu/sfp-machine.h Sat Jun 16 06:00:07 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.sfp-machine.h 1.5 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* Machine-dependent software floating-point definitions. PPC version. Copyright (C) 1997 Free Software Foundation, Inc. diff -Nru a/arch/ppc/math-emu/single.h b/arch/ppc/math-emu/single.h --- a/arch/ppc/math-emu/single.h Sat Jun 16 06:00:07 2001 +++ b/arch/ppc/math-emu/single.h Sat Jun 16 06:00:07 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.single.h 1.5 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Definitions for IEEE Single Precision diff -Nru a/arch/ppc/math-emu/soft-fp.h b/arch/ppc/math-emu/soft-fp.h --- a/arch/ppc/math-emu/soft-fp.h Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/math-emu/soft-fp.h Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.soft-fp.h 1.5 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ #ifndef SOFT_FP_H #define SOFT_FP_H diff -Nru a/arch/ppc/math-emu/stfd.c b/arch/ppc/math-emu/stfd.c --- a/arch/ppc/math-emu/stfd.c Sat Jun 16 06:00:10 2001 +++ b/arch/ppc/math-emu/stfd.c Sat Jun 16 06:00:10 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.stfd.c 1.6 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/stfiwx.c b/arch/ppc/math-emu/stfiwx.c --- a/arch/ppc/math-emu/stfiwx.c Sat Jun 16 06:00:03 2001 +++ b/arch/ppc/math-emu/stfiwx.c Sat Jun 16 06:00:03 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.stfiwx.c 1.6 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/stfs.c b/arch/ppc/math-emu/stfs.c --- a/arch/ppc/math-emu/stfs.c Sat Jun 16 06:00:08 2001 +++ b/arch/ppc/math-emu/stfs.c Sat Jun 16 06:00:08 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.stfs.c 1.6 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ #include #include diff -Nru a/arch/ppc/math-emu/types.c b/arch/ppc/math-emu/types.c --- a/arch/ppc/math-emu/types.c Sat Jun 16 06:00:04 2001 +++ b/arch/ppc/math-emu/types.c Sat Jun 16 06:00:04 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.types.c 1.5 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ #include "soft-fp.h" diff -Nru a/arch/ppc/math-emu/udivmodti4.c b/arch/ppc/math-emu/udivmodti4.c --- a/arch/ppc/math-emu/udivmodti4.c Sat Jun 16 06:00:12 2001 +++ b/arch/ppc/math-emu/udivmodti4.c Sat Jun 16 06:00:12 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.udivmodti4.c 1.5 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* This has so very few changes over libgcc2's __udivmoddi4 it isn't funny. */ diff -Nru a/arch/ppc/mm/4xx_tlb.c b/arch/ppc/mm/4xx_tlb.c --- a/arch/ppc/mm/4xx_tlb.c Sat Jun 16 06:00:11 2001 +++ b/arch/ppc/mm/4xx_tlb.c Sat Jun 16 06:00:11 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.4xx_tlb.c 1.5 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * diff -Nru a/arch/ppc/mm/4xx_tlb.h b/arch/ppc/mm/4xx_tlb.h --- a/arch/ppc/mm/4xx_tlb.h Sat Jun 16 06:00:04 2001 +++ b/arch/ppc/mm/4xx_tlb.h Sat Jun 16 06:00:04 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.4xx_tlb.h 1.5 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * diff -Nru a/arch/ppc/mm/Makefile b/arch/ppc/mm/Makefile --- a/arch/ppc/mm/Makefile Sat Jun 16 06:00:12 2001 +++ b/arch/ppc/mm/Makefile Sat Jun 16 06:00:12 2001 @@ -1,4 +1,4 @@ -# BK Id: SCCS/s.Makefile 1.3 05/17/01 18:14:23 cort +# BK Id: %F% %I% %G% %U% %#% # # # Makefile for the linux ppc-specific parts of the memory manager. diff -Nru a/arch/ppc/mm/extable.c b/arch/ppc/mm/extable.c --- a/arch/ppc/mm/extable.c Sat Jun 16 06:00:11 2001 +++ b/arch/ppc/mm/extable.c Sat Jun 16 06:00:11 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.extable.c 1.5 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * linux/arch/ppc/mm/extable.c diff -Nru a/arch/ppc/mm/fault.c b/arch/ppc/mm/fault.c --- a/arch/ppc/mm/fault.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/mm/fault.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.fault.c 1.10 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * arch/ppc/mm/fault.c diff -Nru a/arch/ppc/mm/init.c b/arch/ppc/mm/init.c --- a/arch/ppc/mm/init.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/mm/init.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.init.c 1.22 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * PowerPC version diff -Nru a/arch/ppc/mm/mem_pieces.c b/arch/ppc/mm/mem_pieces.c --- a/arch/ppc/mm/mem_pieces.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/mm/mem_pieces.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.mem_pieces.c 1.5 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Copyright (c) 1996 Paul Mackerras diff -Nru a/arch/ppc/mm/mem_pieces.h b/arch/ppc/mm/mem_pieces.h --- a/arch/ppc/mm/mem_pieces.h Sat Jun 16 06:00:09 2001 +++ b/arch/ppc/mm/mem_pieces.h Sat Jun 16 06:00:10 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.mem_pieces.h 1.5 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Copyright (c) 1996 Paul Mackerras diff -Nru a/arch/ppc/xmon/Makefile b/arch/ppc/xmon/Makefile --- a/arch/ppc/xmon/Makefile Sat Jun 16 06:00:08 2001 +++ b/arch/ppc/xmon/Makefile Sat Jun 16 06:00:08 2001 @@ -1,4 +1,4 @@ -# BK Id: SCCS/s.Makefile 1.3 05/17/01 18:14:23 cort +# BK Id: %F% %I% %G% %U% %#% # # Makefile for xmon diff -Nru a/arch/ppc/xmon/adb.c b/arch/ppc/xmon/adb.c --- a/arch/ppc/xmon/adb.c Sat Jun 16 06:00:12 2001 +++ b/arch/ppc/xmon/adb.c Sat Jun 16 06:00:12 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.adb.c 1.5 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Copyright (C) 1996 Paul Mackerras. diff -Nru a/arch/ppc/xmon/ansidecl.h b/arch/ppc/xmon/ansidecl.h --- a/arch/ppc/xmon/ansidecl.h Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/xmon/ansidecl.h Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.ansidecl.h 1.5 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* ANSI and traditional C compatability macros Copyright 1991, 1992 Free Software Foundation, Inc. diff -Nru a/arch/ppc/xmon/nonstdio.h b/arch/ppc/xmon/nonstdio.h --- a/arch/ppc/xmon/nonstdio.h Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/xmon/nonstdio.h Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.nonstdio.h 1.5 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ typedef int FILE; extern FILE *xmon_stdin, *xmon_stdout; diff -Nru a/arch/ppc/xmon/ppc-dis.c b/arch/ppc/xmon/ppc-dis.c --- a/arch/ppc/xmon/ppc-dis.c Sat Jun 16 06:00:03 2001 +++ b/arch/ppc/xmon/ppc-dis.c Sat Jun 16 06:00:03 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.ppc-dis.c 1.5 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* ppc-dis.c -- Disassemble PowerPC instructions Copyright 1994 Free Software Foundation, Inc. diff -Nru a/arch/ppc/xmon/ppc-opc.c b/arch/ppc/xmon/ppc-opc.c --- a/arch/ppc/xmon/ppc-opc.c Sat Jun 16 06:00:05 2001 +++ b/arch/ppc/xmon/ppc-opc.c Sat Jun 16 06:00:05 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.ppc-opc.c 1.5 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* ppc-opc.c -- PowerPC opcode list Copyright 1994 Free Software Foundation, Inc. diff -Nru a/arch/ppc/xmon/ppc.h b/arch/ppc/xmon/ppc.h --- a/arch/ppc/xmon/ppc.h Sat Jun 16 06:00:09 2001 +++ b/arch/ppc/xmon/ppc.h Sat Jun 16 06:00:09 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.ppc.h 1.5 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* ppc.h -- Header file for PowerPC opcode table Copyright 1994 Free Software Foundation, Inc. diff -Nru a/arch/ppc/xmon/privinst.h b/arch/ppc/xmon/privinst.h --- a/arch/ppc/xmon/privinst.h Sat Jun 16 06:00:11 2001 +++ b/arch/ppc/xmon/privinst.h Sat Jun 16 06:00:11 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.privinst.h 1.5 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Copyright (C) 1996 Paul Mackerras. diff -Nru a/arch/ppc/xmon/setjmp.c b/arch/ppc/xmon/setjmp.c --- a/arch/ppc/xmon/setjmp.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/xmon/setjmp.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.setjmp.c 1.5 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Copyright (C) 1996 Paul Mackerras. diff -Nru a/arch/ppc/xmon/start.c b/arch/ppc/xmon/start.c --- a/arch/ppc/xmon/start.c Sat Jun 16 06:00:03 2001 +++ b/arch/ppc/xmon/start.c Sat Jun 16 06:00:03 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.start.c 1.12 05/21/01 21:39:13 paulus + * BK Id: %F% %I% %G% %U% %#% */ /* * Copyright (C) 1996 Paul Mackerras. diff -Nru a/arch/ppc/xmon/start_8xx.c b/arch/ppc/xmon/start_8xx.c --- a/arch/ppc/xmon/start_8xx.c Sat Jun 16 06:00:06 2001 +++ b/arch/ppc/xmon/start_8xx.c Sat Jun 16 06:00:06 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.start_8xx.c 1.7 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Copyright (C) 1996 Paul Mackerras. diff -Nru a/arch/ppc/xmon/subr_prf.c b/arch/ppc/xmon/subr_prf.c --- a/arch/ppc/xmon/subr_prf.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/xmon/subr_prf.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.subr_prf.c 1.5 05/17/01 18:14:23 cort + * BK Id: %F% %I% %G% %U% %#% */ /* * Written by Cort Dougan to replace the version originally used diff -Nru a/arch/ppc/xmon/xmon.c b/arch/ppc/xmon/xmon.c --- a/arch/ppc/xmon/xmon.c Sat Jun 16 06:00:02 2001 +++ b/arch/ppc/xmon/xmon.c Sat Jun 16 06:00:02 2001 @@ -1,5 +1,5 @@ /* - * BK Id: SCCS/s.xmon.c 1.12 06/09/01 22:18:05 paulus + * BK Id: %F% %I% %G% %U% %#% */ /* * Routines providing a simple monitor for use on the PowerMac. diff -Nru a/drivers/block/swim3.c b/drivers/block/swim3.c --- a/drivers/block/swim3.c Sat Jun 16 06:00:03 2001 +++ b/drivers/block/swim3.c Sat Jun 16 06:00:03 2001 @@ -33,6 +33,7 @@ #define MAJOR_NR FLOPPY_MAJOR #include +#include static int floppy_blocksizes[2] = {512,512}; static int floppy_sizes[2] = {2880,2880}; @@ -248,10 +249,7 @@ int swim3_init(void); #ifndef CONFIG_PMAC_PBOOK -static inline int check_media_bay(struct device_node *which_bay, int what) -{ - return 1; -} +#define check_media_bay(which, what) 1 #endif static void swim3_select(struct floppy_state *fs, int sel) @@ -1014,10 +1012,14 @@ revalidate: floppy_revalidate, }; +static devfs_handle_t floppy_devfs_handle; + int swim3_init(void) { struct device_node *swim; + floppy_devfs_handle = devfs_mk_dir(NULL, "floppy", NULL); + swim = find_devices("floppy"); while (swim && (floppy_count < MAX_FLOPPIES)) { @@ -1034,7 +1036,7 @@ if (floppy_count > 0) { - if (register_blkdev(MAJOR_NR, "fd", &floppy_fops)) { + if (devfs_register_blkdev(MAJOR_NR, "fd", &floppy_fops)) { printk(KERN_ERR "Unable to get major %d for floppy\n", MAJOR_NR); return -EBUSY; @@ -1051,7 +1053,9 @@ { struct device_node *mediabay; struct floppy_state *fs = &floppy_states[floppy_count]; - + char floppy_name[16]; + devfs_handle_t floppy_handle; + if (swim->n_addrs < 2) { printk(KERN_INFO "swim3: expecting 2 addrs (n_addrs:%d, n_intrs:%d)\n", @@ -1108,6 +1112,12 @@ printk(KERN_INFO "fd%d: SWIM3 floppy controller %s\n", floppy_count, mediabay ? "in media bay" : ""); + sprintf(floppy_name, "%s%d", floppy_devfs_handle ? "" : "floppy", + floppy_count); + floppy_handle = devfs_register(floppy_devfs_handle, floppy_name, + DEVFS_FL_DEFAULT, MAJOR_NR, floppy_count, + S_IFBLK | S_IRUSR | S_IWUSR | S_IRGRP |S_IWGRP, + &floppy_fops, NULL); floppy_count++; diff -Nru a/drivers/char/keyboard.c b/drivers/char/keyboard.c --- a/drivers/char/keyboard.c Sat Jun 16 06:00:02 2001 +++ b/drivers/char/keyboard.c Sat Jun 16 06:00:02 2001 @@ -322,7 +322,7 @@ compute_shiftstate(); kbd->slockstate = 0; /* play it safe */ #else - keysym = U(plain_map[keycode]); + keysym = U(key_maps[0][keycode]); type = KTYP(keysym); if (type == KT_SHIFT) (*key_handler[type])(keysym & 0xff, up_flag); @@ -750,7 +750,7 @@ k = i*BITS_PER_LONG; for(j=0; jselect.b.unit & 0x01); - outb(inb(hwif->dma_base+2) & ~(1<<(5+unit)), hwif->dma_base+2); + /* Some interfaces would like to use this routine, but don"t have this + * kind of DMA engine. --BenH. + */ + if (hwif->dma_base) + outb(inb(hwif->dma_base+2) & ~(1<<(5+unit)), hwif->dma_base+2); #endif /* (CONFIG_BLK_DEV_IDEDMA) && !(CONFIG_DMA_NONPCI) */ /* @@ -356,10 +360,15 @@ drive->id->dma_1word &= ~0x0F00; #if defined(CONFIG_BLK_DEV_IDEDMA) && !defined(CONFIG_DMA_NONPCI) - if (speed > XFER_PIO_4) { - outb(inb(hwif->dma_base+2)|(1<<(5+unit)), hwif->dma_base+2); - } else { - outb(inb(hwif->dma_base+2) & ~(1<<(5+unit)), hwif->dma_base+2); + /* Some interfaces would like to use this routine, but don"t have this + * kind of DMA engine. --BenH. + */ + if (hwif->dma_base) { + if (speed > XFER_PIO_4) { + outb(inb(hwif->dma_base+2)|(1<<(5+unit)), hwif->dma_base+2); + } else { + outb(inb(hwif->dma_base+2) & ~(1<<(5+unit)), hwif->dma_base+2); + } } #endif /* (CONFIG_BLK_DEV_IDEDMA) && !(CONFIG_DMA_NONPCI) */ diff -Nru a/drivers/macintosh/mac_hid.c b/drivers/macintosh/mac_hid.c --- a/drivers/macintosh/mac_hid.c Sat Jun 16 06:00:02 2001 +++ b/drivers/macintosh/mac_hid.c Sat Jun 16 06:00:02 2001 @@ -15,6 +15,7 @@ #include #include #include +#include #ifdef CONFIG_MAC_ADBKEYCODES #include @@ -401,6 +402,8 @@ return keyboard_sends_linux_keycodes; } +EXPORT_SYMBOL(mac_hid_keyboard_sends_linux_keycodes); + static int __init mac_hid_setup(char *str) { int ints[2]; @@ -448,6 +451,8 @@ return 0; } +EXPORT_SYMBOL(mac_hid_mouse_emulate_buttons); + static void emumousebtn_input_register(void) { emumousebtn.name = "Macintosh mouse button emulation"; @@ -473,9 +478,19 @@ #ifdef CONFIG_MAC_ADBKEYCODES memcpy(pc_key_maps_save, key_maps, sizeof(key_maps)); - if (!keyboard_sends_linux_keycodes) + if (!keyboard_sends_linux_keycodes) { +#ifdef CONFIG_MAGIC_SYSRQ + ppc_md.ppc_kbd_sysrq_xlate = mac_hid_kbd_sysrq_xlate; + SYSRQ_KEY = 0x69; +#endif memcpy(key_maps, mac_key_maps_save, sizeof(key_maps)); + } else { +#ifdef CONFIG_MAGIC_SYSRQ + ppc_md.ppc_kbd_sysrq_xlate = pckbd_sysrq_xlate; + SYSRQ_KEY = 0x54; #endif + } +#endif /* CONFIG_MAC_ADBKEYCODES */ #ifdef CONFIG_MAC_EMUMOUSEBTN emumousebtn_input_register(); diff -Nru a/drivers/macintosh/mac_keyb.c b/drivers/macintosh/mac_keyb.c --- a/drivers/macintosh/mac_keyb.c Sat Jun 16 06:00:05 2001 +++ b/drivers/macintosh/mac_keyb.c Sat Jun 16 06:00:05 2001 @@ -305,7 +305,7 @@ return 1; } -int mackbd_unexpected_up(unsigned char keycode) +char mackbd_unexpected_up(unsigned char keycode) { return 0x80; } diff -Nru a/drivers/macintosh/macserial.c b/drivers/macintosh/macserial.c --- a/drivers/macintosh/macserial.c Sat Jun 16 06:00:07 2001 +++ b/drivers/macintosh/macserial.c Sat Jun 16 06:00:07 2001 @@ -448,7 +448,7 @@ goto out; info->tx_active = 0; - if (info->x_char) { + if (info->x_char && !info->power_wait) { /* Send next char */ write_zsdata(info->zs_channel, info->x_char); info->x_char = 0; @@ -456,7 +456,8 @@ goto out; } - if ((info->xmit_cnt <= 0) || info->tty->stopped || info->tx_stopped) { + if ((info->xmit_cnt <= 0) || info->tty->stopped || info->tx_stopped + || info->power_wait) { write_zsreg(info->zs_channel, 0, RES_Tx_P); goto out; } @@ -474,6 +475,14 @@ restore_flags(flags); } +static void powerup_done(unsigned long data) +{ + struct mac_serial *info = (struct mac_serial *) data; + + info->power_wait = 0; + transmit_chars(info); +} + static _INLINE_ void status_handle(struct mac_serial *info) { unsigned char status; @@ -730,7 +739,7 @@ } } -static int startup(struct mac_serial * info, int can_sleep) +static int startup(struct mac_serial * info) { int delay; @@ -753,6 +762,18 @@ setup_scc(info); + if (delay) { + unsigned long flags; + + /* delay is in ms */ + save_flags(flags); + cli(); + info->power_wait = 1; + mod_timer(&info->powerup_timer, + jiffies + (delay * HZ + 999) / 1000); + restore_flags(flags); + } + OPNDBG("enabling IRQ on ttyS%d (irq %d)...\n", info->line, info->irq); info->flags |= ZILOG_INITIALIZED; @@ -761,15 +782,6 @@ enable_irq(info->rx_dma_irq); } - if (delay) { - if (can_sleep) { - /* we need to wait a bit before using the port */ - current->state = TASK_INTERRUPTIBLE; - schedule_timeout(delay * HZ / 1000); - } else - mdelay(delay); - } - return 0; } @@ -863,7 +875,7 @@ queue_task(&tty->flip.tqueue, &tq_timer); } -static void poll_rxdma(void *private_) +static void poll_rxdma(unsigned long private_) { struct mac_serial *info = (struct mac_serial *) private_; unsigned long flags; @@ -2325,7 +2337,7 @@ * Start up serial port */ - retval = startup(info, 1); + retval = startup(info); if (retval) return retval; @@ -2426,6 +2438,10 @@ zss->rx_dma_irq = ch->intrs[2].line; spin_lock_init(&zss->rx_dma_lock); } + + init_timer(&zss->powerup_timer); + zss->powerup_timer.function = powerup_done; + zss->powerup_timer.data = (unsigned long) zss; } /* Ask the PROM how many Z8530s we have and initialize their zs_channels */ @@ -2680,11 +2696,9 @@ return 0; } -#ifdef MODULE int init_module(void) { - macserial_init(); - return 0; + return macserial_init(); } void cleanup_module(void) @@ -2717,7 +2731,9 @@ pmu_unregister_sleep_notifier(&serial_sleep_notifier); #endif /* CONFIG_PMAC_PBOOK */ } -#endif /* MODULE */ + +module_init(init_module); +module_exit(cleanup_module); #if 0 /* @@ -3119,7 +3135,7 @@ struct mac_serial *info = &zs_soft[i]; if (info->flags & ZILOG_SLEEPING) { info->flags &= ~ZILOG_SLEEPING; - startup(info, 0); + startup(info); } } break; diff -Nru a/drivers/macintosh/macserial.h b/drivers/macintosh/macserial.h --- a/drivers/macintosh/macserial.h Sat Jun 16 06:00:12 2001 +++ b/drivers/macintosh/macserial.h Sat Jun 16 06:00:12 2001 @@ -115,6 +115,7 @@ char is_irda; /* is connected to an IrDA codec */ unsigned char tx_active; /* character is being xmitted */ unsigned char tx_stopped; /* output is suspended */ + unsigned char power_wait; /* waiting for power-up delay to expire */ /* We need to know the current clock divisor * to read the bps rate the chip has currently @@ -186,6 +187,8 @@ void *dma_priv; struct timer_list poll_dma_timer; #define RX_DMA_TIMER (jiffies + 10*HZ/1000) + + struct timer_list powerup_timer; }; diff -Nru a/drivers/net/ne2k-pci.c b/drivers/net/ne2k-pci.c --- a/drivers/net/ne2k-pci.c Sat Jun 16 06:00:04 2001 +++ b/drivers/net/ne2k-pci.c Sat Jun 16 06:00:04 2001 @@ -62,8 +62,6 @@ #if defined(__powerpc__) #define inl_le(addr) le32_to_cpu(inl(addr)) #define inw_le(addr) le16_to_cpu(inw(addr)) -#define insl insl_ns -#define outsl outsl_ns #endif MODULE_AUTHOR("Donald Becker / Paul Gortmaker"); diff -Nru a/drivers/scsi/sym53c8xx_defs.h b/drivers/scsi/sym53c8xx_defs.h --- a/drivers/scsi/sym53c8xx_defs.h Sat Jun 16 06:00:07 2001 +++ b/drivers/scsi/sym53c8xx_defs.h Sat Jun 16 06:00:07 2001 @@ -168,16 +168,12 @@ #endif /* - * Use normal IO if configured. Forced for alpha and powerpc. - * Powerpc fails copying to on-chip RAM using memcpy_toio(). + * Use normal IO if configured. Forced for alpha. */ #if defined(CONFIG_SCSI_NCR53C8XX_IOMAPPED) #define SCSI_NCR_IOMAPPED #elif defined(__alpha__) #define SCSI_NCR_IOMAPPED -#elif defined(__powerpc__) -#define SCSI_NCR_IOMAPPED -#define SCSI_NCR_PCI_MEM_NOT_SUPPORTED #elif defined(__sparc__) #undef SCSI_NCR_IOMAPPED #endif diff -Nru a/drivers/sgi/char/linux_logo.h b/drivers/sgi/char/linux_logo.h --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/drivers/sgi/char/linux_logo.h Sat Jun 16 06:00:13 2001 @@ -0,0 +1,909 @@ +/* This is a linux logo to be displayed on boot. + * + * You can put anything here, but: + * LINUX_LOGO_COLORS has to be less than 224 + * image size has to be 80x80 + * values have to start from0x20 + * (i.e. RGB(linux_logo_red[0], + * linux_logo_green[0], + * linux_logo_blue[0]) is color0x20) + */ + +#define LINUX_LOGO_COLORS 221 + +unsigned char linux_logo_red[] = { + 0xF3, 0xF6, 0xF8, 0xF7, 0xEF, 0xE7, 0xE5, 0xE3, + 0xCA, 0xD4, 0xDD, 0xC8, 0xC7, 0xC4, 0xC2, 0xE5, + 0xF1, 0xED, 0xEE, 0xE6, 0xC6, 0xDA, 0xDD, 0xE5, + 0xD9, 0xC6, 0xE3, 0xD0, 0xC6, 0xBA, 0xB0, 0xB6, + 0xBB, 0xBE, 0xB9, 0xB8, 0xB3, 0xB2, 0xB0, 0xAD, + 0xAC, 0xA9, 0xA8, 0xA6, 0xA4, 0xA1, 0xA0, 0x9D, + 0xA0, 0x9F, 0x9E, 0x9C, 0x9B, 0x99, 0x9A, 0x99, + 0x98, 0x95, 0x96, 0x94, 0x93, 0x92, 0x8F, 0x8D, + 0x8C, 0x8A, 0x87, 0x86, 0x83, 0x81, 0x0D, 0x03, + 0x66, 0x44, 0x24, 0x08, 0xD6, 0xE6, 0xE9, 0xE6, + 0xE7, 0xCA, 0xDC, 0xDB, 0xD5, 0xD0, 0xC9, 0xE2, + 0xD5, 0xC6, 0xC4, 0xB3, 0xB2, 0xB9, 0xA9, 0x9A, + 0xB2, 0x9D, 0xE8, 0xEC, 0xF5, 0xF5, 0xF4, 0xF4, + 0xEC, 0xEE, 0xF0, 0xF5, 0xE0, 0xD6, 0xC5, 0xC2, + 0xD9, 0xD5, 0xD8, 0xD6, 0xF6, 0xF4, 0xED, 0xEC, + 0xEB, 0xF1, 0xF6, 0xF5, 0xF5, 0xEE, 0xEF, 0xEC, + 0xE7, 0xE3, 0xE6, 0xD6, 0xDD, 0xC3, 0xD6, 0xD7, + 0xCD, 0xCA, 0xC3, 0xAC, 0x95, 0x99, 0xB7, 0xA3, + 0x8B, 0x88, 0x95, 0x8A, 0x94, 0xD2, 0xCC, 0xC4, + 0xA8, 0x8E, 0x8F, 0xAE, 0xB8, 0xAC, 0xB6, 0xB4, + 0xAD, 0xA5, 0xA0, 0x9B, 0x8B, 0xA3, 0x94, 0x87, + 0x85, 0x89, 0x53, 0x80, 0x7D, 0x7C, 0x7A, 0x78, + 0x76, 0x71, 0x73, 0x6E, 0x6B, 0x67, 0x65, 0x62, + 0x4B, 0x5B, 0x5F, 0x53, 0x56, 0x52, 0x4F, 0x46, + 0x42, 0x0F, 0x75, 0x78, 0x7D, 0x72, 0x5F, 0x6E, + 0x7A, 0x75, 0x6A, 0x58, 0x48, 0x4F, 0x00, 0x2B, + 0x37, 0x3E, 0x32, 0x33, 0x25, 0x2C, 0x3B, 0x11, + 0x1D, 0x14, 0x06, 0x02, 0x00 +}; + +unsigned char linux_logo_green[] = { + 0xF3, 0xF6, 0xF8, 0xF7, 0xEF, 0xE7, 0xE5, 0xE3, + 0xCA, 0xD4, 0xDD, 0xC8, 0xC7, 0xC4, 0xC2, 0xD3, + 0xDA, 0xD4, 0xD7, 0xCC, 0xC1, 0xCC, 0xCB, 0xC9, + 0xC5, 0xBC, 0xBC, 0xBB, 0xB7, 0xA5, 0xB0, 0xB6, + 0xBB, 0xBE, 0xB9, 0xB8, 0xB3, 0xB2, 0xAD, 0xAD, + 0xAC, 0xA9, 0xA8, 0xA6, 0xA4, 0xA1, 0xA0, 0x95, + 0xA0, 0x9F, 0x9E, 0x9C, 0x9B, 0x99, 0x9A, 0x99, + 0x98, 0x95, 0x96, 0x94, 0x93, 0x92, 0x8F, 0x8D, + 0x8C, 0x8A, 0x87, 0x86, 0x83, 0x81, 0x08, 0x02, + 0x53, 0x2E, 0x19, 0x06, 0xC6, 0xC8, 0xCF, 0xBD, + 0xB3, 0xB6, 0xB4, 0xAB, 0xA5, 0xA3, 0x9B, 0xB6, + 0xA7, 0x99, 0x92, 0xA4, 0x9E, 0x9D, 0x98, 0x8C, + 0x8A, 0x86, 0xCD, 0xCC, 0xC9, 0xD7, 0xCA, 0xC4, + 0xCA, 0xC3, 0xC7, 0xC3, 0xC8, 0xB4, 0x91, 0x8E, + 0x8A, 0x82, 0x87, 0x85, 0xBD, 0xBF, 0xB6, 0xBC, + 0xAE, 0xB7, 0xBC, 0xB8, 0xBF, 0xB6, 0xBC, 0xB5, + 0xAB, 0xA6, 0xAD, 0xB2, 0xA5, 0x87, 0x9C, 0x96, + 0x95, 0x8E, 0x87, 0x8F, 0x86, 0x86, 0x8E, 0x80, + 0x7A, 0x70, 0x7B, 0x78, 0x78, 0x7F, 0x77, 0x6F, + 0x70, 0x76, 0x59, 0x77, 0x68, 0x64, 0x7B, 0x7C, + 0x75, 0x6D, 0x77, 0x69, 0x65, 0x5F, 0x5B, 0x54, + 0x4F, 0x5B, 0x39, 0x80, 0x7D, 0x7C, 0x7A, 0x78, + 0x76, 0x71, 0x73, 0x6E, 0x6B, 0x67, 0x65, 0x62, + 0x4B, 0x5B, 0x5F, 0x53, 0x56, 0x52, 0x4F, 0x46, + 0x42, 0x0B, 0x69, 0x66, 0x64, 0x57, 0x4A, 0x4E, + 0x55, 0x4B, 0x46, 0x3B, 0x30, 0x33, 0x00, 0x2B, + 0x37, 0x3E, 0x32, 0x33, 0x25, 0x2C, 0x29, 0x0D, + 0x1D, 0x14, 0x06, 0x02, 0x00 +}; + +unsigned char linux_logo_blue[] = { + 0xF3, 0xF6, 0xF8, 0xF7, 0xEF, 0xEE, 0xE5, 0xDE, + 0xD7, 0xD3, 0xDD, 0xC8, 0xC7, 0xC4, 0xC2, 0xB5, + 0xB0, 0xA6, 0xAC, 0x9B, 0xB5, 0xB5, 0xAE, 0x84, + 0x90, 0xA9, 0x81, 0x8D, 0x96, 0x86, 0xB0, 0xB6, + 0xBB, 0xBE, 0xB9, 0xB8, 0xB3, 0xB2, 0xA7, 0xAD, + 0xAC, 0xA9, 0xA8, 0xA6, 0xA4, 0xA1, 0xA5, 0x87, + 0xA0, 0x9F, 0x9E, 0x9C, 0x9B, 0x9A, 0x9A, 0x99, + 0x98, 0x95, 0x96, 0x94, 0x93, 0x92, 0x8F, 0x8D, + 0x8C, 0x8A, 0x87, 0x86, 0x83, 0x81, 0xC8, 0xD7, + 0x9B, 0x8E, 0x8C, 0xB2, 0x77, 0x77, 0x4E, 0x77, + 0x69, 0x71, 0x78, 0x6B, 0x65, 0x66, 0x64, 0x59, + 0x5C, 0x5A, 0x48, 0x72, 0x7B, 0x6B, 0x67, 0x6E, + 0x42, 0x5B, 0x29, 0x36, 0x25, 0x10, 0x17, 0x14, + 0x19, 0x16, 0x13, 0x0E, 0x08, 0x2E, 0x2E, 0x3D, + 0x24, 0x24, 0x24, 0x24, 0x13, 0x12, 0x14, 0x14, + 0x0E, 0x08, 0x0D, 0x0F, 0x08, 0x0D, 0x0E, 0x08, + 0x08, 0x0C, 0x06, 0x06, 0x07, 0x16, 0x07, 0x0E, + 0x08, 0x0A, 0x07, 0x0D, 0x2D, 0x3E, 0x09, 0x4E, + 0x68, 0x52, 0x56, 0x58, 0x4B, 0x22, 0x20, 0x20, + 0x27, 0x39, 0x28, 0x19, 0x1E, 0x1E, 0x08, 0x06, + 0x07, 0x09, 0x08, 0x08, 0x05, 0x1D, 0x1F, 0x17, + 0x18, 0x06, 0x79, 0x80, 0x7D, 0x7C, 0x7A, 0x78, + 0x76, 0x71, 0x73, 0x6E, 0x6B, 0x68, 0x65, 0x62, + 0x4B, 0x5B, 0x5F, 0x55, 0x56, 0x52, 0x4F, 0x46, + 0x42, 0x5A, 0x14, 0x23, 0x3D, 0x2B, 0x21, 0x14, + 0x06, 0x04, 0x03, 0x07, 0x09, 0x13, 0x2A, 0x3A, + 0x37, 0x3E, 0x32, 0x33, 0x25, 0x2C, 0x07, 0x09, + 0x1D, 0x14, 0x06, 0x02, 0x00 +}; + +unsigned char linux_logo[] = { + 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x58, 0x57, 0x57, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x58, 0x57, + 0x58, 0x58, 0x59, 0x5C, 0x5D, 0x5F, 0x60, 0x61, + 0x62, 0x61, 0x61, 0x62, 0x62, 0x62, 0x63, 0x63, + 0x61, 0x61, 0x61, 0x61, 0x61, 0x60, 0x5E, 0x5E, + 0x5E, 0x5D, 0x5D, 0x5C, 0x5D, 0x5B, 0x58, 0x58, + 0x58, 0x57, 0x58, 0x57, 0x57, 0x57, 0x57, 0x58, + 0x57, 0x57, 0x58, 0x57, 0x57, 0x58, 0x57, 0x57, + 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x58, 0x57, 0x57, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x58, 0x57, + 0x54, 0x56, 0x57, 0x67, 0xFC, 0xFC, 0xFC, 0xFC, + 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0x67, 0x4C, + 0x4A, 0x49, 0x4A, 0x49, 0x4A, 0x49, 0x49, 0x4A, + 0x4A, 0x4B, 0x4B, 0x4B, 0x4C, 0x50, 0x51, 0x52, + 0x54, 0x54, 0x56, 0x57, 0x57, 0x57, 0x57, 0x58, + 0x57, 0x57, 0x58, 0x57, 0x57, 0x58, 0x57, 0x57, + 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x58, 0x57, 0x57, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x57, 0x57, 0x58, 0x56, 0x56, 0x53, + 0x52, 0x53, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, + 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFB, 0xFB, 0xFB, + 0x4B, 0x4B, 0x4B, 0x4A, 0x49, 0x4A, 0x4A, 0x49, + 0x49, 0x49, 0x48, 0x49, 0x49, 0x4A, 0x4A, 0x4B, + 0x4C, 0x4D, 0x52, 0x54, 0x56, 0x55, 0x57, 0x58, + 0x57, 0x57, 0x58, 0x57, 0x57, 0x58, 0x57, 0x57, + 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x58, 0x57, 0x57, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x55, 0x54, 0x53, 0x52, 0x51, 0x50, + 0x50, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, + 0xFC, 0xFC, 0xFC, 0xFC, 0xF8, 0xF0, 0xF4, 0xFB, + 0xFC, 0x67, 0x53, 0x50, 0x4D, 0x4C, 0x4C, 0x4C, + 0x4B, 0x4A, 0x4A, 0x48, 0x49, 0x48, 0x48, 0x49, + 0x49, 0x49, 0x4B, 0x4C, 0x50, 0x52, 0x53, 0x56, + 0x57, 0x57, 0x58, 0x57, 0x57, 0x58, 0x57, 0x57, + 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x58, 0x57, 0x57, 0x57, 0x57, 0x57, + 0x55, 0x54, 0x53, 0x51, 0x51, 0x50, 0x4C, 0x4D, + 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, + 0xFC, 0xFC, 0xFC, 0xFC, 0xF4, 0xD2, 0xD7, 0xF5, + 0xFC, 0xFC, 0x5D, 0x5D, 0x5C, 0x5C, 0x59, 0x58, + 0x58, 0x56, 0x52, 0x4C, 0x4B, 0x4A, 0x4A, 0x48, + 0x48, 0x48, 0x48, 0x48, 0x49, 0x4B, 0x4D, 0x51, + 0x54, 0x56, 0x58, 0x57, 0x57, 0x58, 0x57, 0x57, + 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x58, 0x57, 0x57, 0x57, 0x55, 0x54, + 0x53, 0x52, 0x51, 0x4D, 0x4D, 0x4D, 0x50, 0x50, + 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, + 0xFC, 0xFC, 0xFC, 0xFC, 0xF4, 0x64, 0xD9, 0xF5, + 0xF9, 0xFC, 0xFC, 0x64, 0x63, 0x62, 0x61, 0x61, + 0x61, 0x60, 0x5E, 0x5B, 0x5A, 0x54, 0x52, 0x4C, + 0x4B, 0x49, 0x49, 0x47, 0x47, 0x48, 0x49, 0x4B, + 0x4C, 0x51, 0x53, 0x56, 0x57, 0x58, 0x57, 0x57, + 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x58, 0x57, 0x57, 0x55, 0x53, 0x53, + 0x51, 0x50, 0x50, 0x50, 0x50, 0x50, 0x53, 0xFC, + 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, + 0xFC, 0xFC, 0xFC, 0xFC, 0xF4, 0xF5, 0xF9, 0xFC, + 0xFC, 0xFC, 0xFC, 0x64, 0x64, 0x64, 0x64, 0x64, + 0x64, 0x64, 0x64, 0x63, 0x61, 0x61, 0x5E, 0x59, + 0x55, 0x52, 0x4C, 0x4A, 0x49, 0x47, 0x48, 0x48, + 0x49, 0x4B, 0x4D, 0x51, 0x54, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x58, 0x55, 0x54, 0x54, 0x52, 0x51, + 0x51, 0x51, 0x51, 0x51, 0x53, 0x54, 0x59, 0xFC, + 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, + 0xFC, 0xFC, 0xFC, 0xFC, 0xF7, 0xFC, 0xFC, 0xFC, + 0xFC, 0xFC, 0xFC, 0xFC, 0x60, 0x60, 0x60, 0x61, + 0x62, 0x63, 0x64, 0x64, 0x65, 0x65, 0x64, 0x63, + 0x61, 0x5E, 0x59, 0x56, 0x4D, 0x4B, 0x48, 0x48, + 0x48, 0x48, 0x49, 0x4B, 0x50, 0x53, 0x56, 0x56, + 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x56, 0x54, 0x53, 0x52, 0x51, 0x51, + 0x51, 0x52, 0x53, 0x55, 0x59, 0x5D, 0x5E, 0xFC, + 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, + 0xFC, 0xFC, 0xFC, 0xFB, 0xFB, 0xFB, 0xFC, 0xFC, + 0xFC, 0xFC, 0xFC, 0xFC, 0x4C, 0x4E, 0x51, 0x52, + 0x57, 0x5A, 0x5E, 0x60, 0x61, 0x63, 0x65, 0xCB, + 0x64, 0x64, 0x63, 0x60, 0x5C, 0x57, 0x50, 0x4B, + 0x48, 0x47, 0x47, 0x47, 0x4A, 0x4C, 0x52, 0x53, + 0x54, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, + 0x55, 0x54, 0x53, 0x53, 0x51, 0x52, 0x52, 0x53, + 0x53, 0x57, 0x5A, 0x5D, 0x5E, 0x5E, 0x60, 0xFC, + 0xFC, 0xFC, 0xFB, 0xF9, 0xFC, 0xFC, 0xFC, 0xFC, + 0xFC, 0xFC, 0xFC, 0xFA, 0xF9, 0xF5, 0xFB, 0xFC, + 0xFC, 0xFC, 0xFC, 0xFC, 0xFB, 0x45, 0x3F, 0x3F, + 0x45, 0x48, 0x4B, 0x4D, 0x54, 0x5A, 0x5E, 0x61, + 0x63, 0xCB, 0xCB, 0x65, 0x64, 0x62, 0x5E, 0x57, + 0x50, 0x4B, 0x48, 0x47, 0x47, 0x48, 0x4B, 0x4D, + 0x51, 0x56, 0x56, 0x57, 0x57, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x55, + 0x54, 0x54, 0x53, 0x53, 0x52, 0x53, 0x54, 0x57, + 0x59, 0x5C, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0xFC, + 0xFC, 0xFA, 0xFC, 0xFA, 0xE0, 0xFC, 0xFC, 0xFC, + 0xFB, 0xFB, 0xFB, 0xDF, 0xD8, 0xF9, 0xE0, 0xFC, + 0xFC, 0xFC, 0xFC, 0xFC, 0xFB, 0x4C, 0x4A, 0x48, + 0x48, 0x3E, 0x44, 0x43, 0x3F, 0x47, 0x4B, 0x52, + 0x5A, 0x5E, 0x62, 0x64, 0xCB, 0xCB, 0x64, 0x61, + 0x5E, 0x57, 0x4D, 0x49, 0x47, 0x47, 0x48, 0x4A, + 0x4C, 0x52, 0x54, 0x56, 0x57, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x55, + 0x54, 0x53, 0x53, 0x54, 0x54, 0x55, 0x58, 0x5B, + 0x5C, 0x5D, 0x5E, 0x5D, 0x5D, 0x5B, 0x58, 0xFC, + 0xFC, 0xD8, 0x4C, 0x60, 0xFC, 0xF5, 0xFC, 0xFC, + 0xFC, 0xF7, 0x5F, 0x48, 0x48, 0x2C, 0xF8, 0xF9, + 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0x4B, 0x4A, 0x49, + 0x49, 0x49, 0x49, 0x47, 0x3E, 0x44, 0x42, 0x3F, + 0x3E, 0x4B, 0x54, 0x5C, 0x61, 0x64, 0xCB, 0xCB, + 0x64, 0x61, 0x5D, 0x53, 0x4B, 0x49, 0x47, 0x47, + 0x49, 0x4B, 0x50, 0x53, 0x56, 0x57, 0x57, 0x57, + 0x57, 0x57, 0x57, 0x57, 0x57, 0x55, 0x55, 0x54, + 0x53, 0x53, 0x54, 0x56, 0x58, 0x5A, 0x5B, 0x5D, + 0x5D, 0x5D, 0x5C, 0x5A, 0x54, 0x52, 0x4C, 0xFC, + 0xF7, 0x4E, 0x2D, 0x29, 0x4E, 0xFC, 0xFC, 0xFC, + 0xFB, 0x5F, 0x26, 0x24, 0x20, 0x2E, 0x65, 0xFC, + 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0x45, 0x3F, 0x45, + 0x3E, 0x47, 0x47, 0x47, 0x47, 0x47, 0x3E, 0x44, + 0x43, 0x40, 0x44, 0x49, 0x51, 0x5C, 0x62, 0x64, + 0xCB, 0xCB, 0x63, 0x60, 0x58, 0x50, 0x49, 0x48, + 0x48, 0x48, 0x4A, 0x4D, 0x53, 0x54, 0x57, 0x57, + 0x57, 0x57, 0x57, 0x57, 0x55, 0x54, 0x54, 0x54, + 0x54, 0x54, 0x55, 0x57, 0x59, 0x5B, 0x5C, 0x5D, + 0x5C, 0x5A, 0x54, 0x51, 0x4C, 0x4C, 0x54, 0xFC, + 0xF9, 0x23, 0xDB, 0x2D, 0x23, 0xFA, 0xFB, 0xFA, + 0xF5, 0x27, 0x21, 0xD9, 0xF8, 0x20, 0x21, 0xFB, + 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0x5D, 0x58, 0x55, + 0x50, 0x48, 0x45, 0x43, 0x44, 0x44, 0x45, 0x45, + 0x3E, 0x3F, 0x43, 0x41, 0x3F, 0x48, 0x52, 0x5D, + 0x63, 0x65, 0xCB, 0x65, 0x61, 0x5D, 0x52, 0x4B, + 0x48, 0x47, 0x47, 0x49, 0x4C, 0x51, 0x54, 0x57, + 0x57, 0x57, 0x57, 0x57, 0x55, 0x54, 0x54, 0x54, + 0x54, 0x58, 0x5A, 0x59, 0x5B, 0x5B, 0x5B, 0x5A, + 0x55, 0x52, 0x4D, 0x4D, 0x55, 0x5B, 0x5D, 0xFC, + 0xF1, 0xF9, 0xFC, 0xD4, 0x21, 0xCC, 0xF7, 0xF8, + 0xF2, 0x21, 0xD9, 0xFC, 0xF2, 0xFB, 0x21, 0x45, + 0xFC, 0xFC, 0xFC, 0xFC, 0xFB, 0xD1, 0xD0, 0xCD, + 0xCC, 0x63, 0x5E, 0x58, 0x50, 0x47, 0x43, 0x3F, + 0x3F, 0x3F, 0x3F, 0x3F, 0x40, 0x41, 0x3F, 0x4A, + 0x56, 0x5E, 0x64, 0xCB, 0x65, 0x63, 0x5E, 0x56, + 0x4C, 0x48, 0x47, 0x47, 0x49, 0x4C, 0x51, 0x54, + 0x58, 0x57, 0x57, 0x57, 0x57, 0x55, 0x54, 0x54, + 0x57, 0x5A, 0x5A, 0x5C, 0x5B, 0x5A, 0x58, 0x54, + 0x51, 0x4C, 0x55, 0x5D, 0x5D, 0x5B, 0x54, 0xFC, + 0xF0, 0xF9, 0xFC, 0x65, 0x45, 0xCD, 0xFB, 0xFB, + 0xF8, 0x26, 0xFB, 0xFC, 0xFC, 0xFC, 0x21, 0x27, + 0xFB, 0xFC, 0xFC, 0xFC, 0xFB, 0xD7, 0x35, 0x34, + 0x2F, 0x35, 0x36, 0x2F, 0x2F, 0x36, 0x2F, 0x2F, + 0x36, 0x36, 0x35, 0x35, 0x43, 0x42, 0x41, 0x2E, + 0x45, 0x4C, 0x5B, 0x62, 0x65, 0xCC, 0x64, 0x60, + 0x58, 0x4D, 0x49, 0x47, 0x47, 0x49, 0x4C, 0x51, + 0x58, 0x57, 0x57, 0x57, 0x57, 0x57, 0x55, 0x57, + 0x58, 0x5A, 0x5A, 0x5B, 0x5A, 0x55, 0x54, 0x51, + 0x53, 0x5C, 0x5D, 0x5D, 0x54, 0x4B, 0x4D, 0xFC, + 0xFC, 0x44, 0xFC, 0xFB, 0x7B, 0xAB, 0xA8, 0xAE, + 0xAB, 0x7F, 0xFC, 0xFC, 0xFB, 0xFB, 0x22, 0x2A, + 0xFC, 0xFC, 0xFC, 0xFC, 0x36, 0x2F, 0x30, 0x30, + 0x32, 0x30, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x2F, 0x2F, 0x40, 0x41, + 0x2E, 0x40, 0x48, 0x56, 0x5F, 0x64, 0xCC, 0x65, + 0x61, 0x59, 0x50, 0x49, 0x47, 0x47, 0x49, 0x4C, + 0x5A, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x58, + 0x5A, 0x5A, 0x5A, 0x58, 0x55, 0x52, 0x51, 0x5A, + 0x5D, 0x5D, 0x57, 0x4C, 0x51, 0x54, 0x5D, 0xFC, + 0xFC, 0x2A, 0xFC, 0xC9, 0xAA, 0x8B, 0x8A, 0x8C, + 0xAB, 0x8C, 0x8C, 0xFB, 0xFB, 0x23, 0x20, 0xF1, + 0xFC, 0xFC, 0xFC, 0x3B, 0x33, 0x33, 0x32, 0x32, + 0x31, 0x32, 0x30, 0x32, 0x32, 0x32, 0x32, 0x30, + 0x31, 0x31, 0x31, 0x32, 0x33, 0x33, 0x3C, 0x41, + 0x41, 0x2E, 0x2D, 0x45, 0x4D, 0x5D, 0x63, 0xCC, + 0x65, 0x62, 0x5D, 0x51, 0x49, 0x47, 0x47, 0x4A, + 0x59, 0x57, 0x57, 0x57, 0x57, 0x58, 0x58, 0x58, + 0x5A, 0x5A, 0x58, 0x55, 0x53, 0x53, 0x5C, 0x5E, + 0x59, 0x51, 0x4E, 0x54, 0x59, 0x5E, 0x62, 0xFC, + 0xFC, 0xDB, 0xAA, 0xA1, 0x95, 0x9C, 0x8C, 0x88, + 0x82, 0x83, 0x83, 0x8C, 0x88, 0xAE, 0xB9, 0xFB, + 0xFC, 0xFC, 0xFC, 0x3C, 0x3B, 0x72, 0x38, 0x33, + 0x33, 0x33, 0x31, 0x33, 0x31, 0x31, 0x31, 0x31, + 0x33, 0x33, 0x38, 0x33, 0x72, 0x3B, 0x44, 0x2E, + 0x41, 0x2E, 0x2E, 0x2D, 0x43, 0x4B, 0x5B, 0x63, + 0xCB, 0xCC, 0x63, 0x5D, 0x51, 0x49, 0x47, 0x49, + 0x5C, 0x58, 0x57, 0x57, 0x57, 0x57, 0x58, 0x58, + 0x58, 0x58, 0x57, 0x53, 0x58, 0x5D, 0x5E, 0x55, + 0x51, 0x53, 0x58, 0x5E, 0x60, 0x63, 0x64, 0xFC, + 0xFC, 0xC0, 0xA6, 0x9D, 0x8B, 0x9C, 0x8C, 0x8C, + 0x6E, 0x83, 0x88, 0x8C, 0x8C, 0x8C, 0x83, 0xE8, + 0xFB, 0xFC, 0xFC, 0xFC, 0x33, 0x70, 0x70, 0x6F, + 0x6F, 0x6F, 0x6F, 0x3A, 0x6F, 0x6D, 0x6F, 0x6F, + 0x70, 0x6F, 0x6F, 0x70, 0x6F, 0x32, 0x5A, 0x48, + 0x41, 0x2D, 0x2D, 0x2D, 0x2C, 0x41, 0x49, 0x5A, + 0x62, 0xCB, 0xCB, 0x63, 0x5D, 0x50, 0x49, 0x4A, + 0x5C, 0x58, 0x58, 0x57, 0x55, 0x57, 0x57, 0x57, + 0x57, 0x55, 0x56, 0x59, 0x5E, 0x5C, 0x52, 0x53, + 0x55, 0x5B, 0x5E, 0x61, 0x63, 0x64, 0x63, 0xFC, + 0xE8, 0xBF, 0xA4, 0x99, 0x9C, 0x8C, 0x88, 0x88, + 0x6E, 0x88, 0x8C, 0x8C, 0x8C, 0xC2, 0xA6, 0xC4, + 0xFC, 0xFC, 0xFC, 0xFC, 0x36, 0x3A, 0x6F, 0x70, + 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, + 0x70, 0x70, 0x70, 0x70, 0x37, 0x32, 0xCD, 0x5E, + 0x4C, 0x43, 0x2C, 0x2D, 0x2D, 0x2C, 0x2E, 0x47, + 0x57, 0x61, 0x65, 0xCC, 0x63, 0x5C, 0x50, 0x4D, + 0x5C, 0x5A, 0x57, 0x55, 0x55, 0x55, 0x58, 0x58, + 0x55, 0x54, 0x5B, 0x5E, 0x5D, 0x53, 0x53, 0x55, + 0x5D, 0x5E, 0x61, 0x61, 0x61, 0x61, 0x5E, 0xFC, + 0xEA, 0xBE, 0xA4, 0x9B, 0x8B, 0x85, 0x8C, 0x6E, + 0x8C, 0x8C, 0x8C, 0xA3, 0xAA, 0xA4, 0xA4, 0xE9, + 0xFB, 0xFC, 0xFC, 0xFC, 0x36, 0x6D, 0x70, 0x73, + 0x70, 0x70, 0x70, 0x73, 0x73, 0x73, 0x73, 0x70, + 0x70, 0x70, 0x73, 0x70, 0x37, 0x38, 0xD1, 0xCF, + 0x61, 0x4D, 0x44, 0x2C, 0x2D, 0x2E, 0x2C, 0x2E, + 0x3E, 0x56, 0x61, 0xCB, 0xCC, 0x62, 0x5B, 0x57, + 0x59, 0x58, 0x55, 0x54, 0x54, 0x55, 0x58, 0x58, + 0x58, 0x5B, 0x5E, 0x5B, 0x53, 0x55, 0x55, 0x5C, + 0x5E, 0x61, 0x61, 0x60, 0x5D, 0x5A, 0x4E, 0xFC, + 0xFC, 0xEA, 0xAA, 0x9C, 0x8A, 0x85, 0x82, 0x8C, + 0x8C, 0xA8, 0xEB, 0xA8, 0xA4, 0xA4, 0xAA, 0xFC, + 0xFC, 0xFC, 0x64, 0xFB, 0x39, 0x31, 0x72, 0x78, + 0x73, 0x78, 0x73, 0x74, 0x74, 0x74, 0x74, 0x73, + 0x78, 0x70, 0x73, 0x73, 0x33, 0xCC, 0xD2, 0xD1, + 0xCE, 0x62, 0x53, 0x3F, 0x2D, 0x2D, 0x41, 0x2C, + 0x2E, 0x3E, 0x56, 0x62, 0xCB, 0xCB, 0x61, 0x5D, + 0x54, 0x54, 0x54, 0x54, 0x56, 0x58, 0x58, 0x58, + 0x5C, 0x5E, 0x5A, 0x55, 0x58, 0x58, 0x5B, 0x5E, + 0x61, 0x5E, 0x5D, 0x5A, 0x52, 0x55, 0xCD, 0xFC, + 0xFC, 0x34, 0xC9, 0xE8, 0xA8, 0xAE, 0xC2, 0xE8, + 0xC3, 0xA6, 0xA7, 0xA6, 0xAA, 0x78, 0x2E, 0x42, + 0xFC, 0xFC, 0xD2, 0x64, 0xF8, 0x31, 0x72, 0x73, + 0x73, 0x73, 0x73, 0x74, 0x75, 0x75, 0x74, 0x73, + 0x73, 0x73, 0x73, 0x72, 0x33, 0x5C, 0x64, 0xD2, + 0xD1, 0xCF, 0x63, 0x54, 0x3F, 0x2C, 0x41, 0x41, + 0x2C, 0x2E, 0x47, 0x58, 0x63, 0xCB, 0xCB, 0x62, + 0x52, 0x53, 0x53, 0x56, 0x58, 0x58, 0x5A, 0x5B, + 0x5E, 0x5A, 0x57, 0x58, 0x58, 0x58, 0x60, 0x60, + 0x5D, 0x5A, 0x55, 0x4E, 0x64, 0xD2, 0xD1, 0xFC, + 0xFC, 0x41, 0x3E, 0xC1, 0xC0, 0xA3, 0xA6, 0xA7, + 0xA7, 0xA9, 0xAA, 0xB8, 0x2E, 0x3F, 0x2C, 0x41, + 0xFC, 0xFC, 0xF7, 0xCE, 0xCD, 0x36, 0x72, 0x73, + 0x74, 0x75, 0x78, 0x75, 0x75, 0x75, 0x74, 0x74, + 0x74, 0x74, 0x78, 0x72, 0x6D, 0x49, 0x59, 0xCB, + 0xD1, 0xD1, 0xD2, 0xCB, 0x56, 0x3F, 0x2C, 0x41, + 0x40, 0x2D, 0x2E, 0x49, 0x5B, 0x64, 0xCC, 0x64, + 0x51, 0x53, 0x53, 0x55, 0x58, 0x59, 0x5B, 0x5E, + 0x59, 0x58, 0x58, 0x58, 0x55, 0x60, 0x60, 0x5C, + 0x5A, 0x53, 0x5B, 0xD0, 0xD3, 0xD3, 0xD3, 0xFB, + 0xFC, 0x40, 0x41, 0x45, 0xC4, 0xC0, 0xBE, 0xBE, + 0xC1, 0xC0, 0x3C, 0x47, 0x2E, 0x21, 0x22, 0x20, + 0x65, 0xFC, 0xFC, 0xFC, 0xFC, 0x6D, 0x72, 0x75, + 0x78, 0x76, 0x75, 0x79, 0x76, 0x76, 0x76, 0x76, + 0x75, 0x75, 0x75, 0x72, 0x6D, 0x2E, 0x48, 0x5D, + 0xCE, 0xD1, 0xD4, 0xD3, 0xCB, 0x56, 0x43, 0x2C, + 0x42, 0x43, 0x2E, 0x2E, 0x4A, 0x5D, 0x64, 0x64, + 0x50, 0x52, 0x56, 0x58, 0x5C, 0x5D, 0x5E, 0x5D, + 0x5A, 0x58, 0x58, 0x55, 0x61, 0x60, 0x58, 0x58, + 0x4E, 0x61, 0xD1, 0xD4, 0xD4, 0xD1, 0xEE, 0xFC, + 0xFC, 0x2B, 0x29, 0x2E, 0x3F, 0xB0, 0xAD, 0x81, + 0x46, 0x2D, 0x46, 0x2C, 0x24, 0x22, 0x22, 0x23, + 0x25, 0xFC, 0xFC, 0xFC, 0xFC, 0x6E, 0x73, 0x76, + 0x76, 0x79, 0x79, 0x79, 0x76, 0x76, 0x79, 0x76, + 0x79, 0x79, 0x79, 0x74, 0x3F, 0x41, 0x2C, 0x48, + 0x5F, 0xCF, 0xD5, 0xD7, 0xD6, 0xCD, 0x57, 0x40, + 0x2E, 0x3F, 0x44, 0x2E, 0x41, 0x4C, 0x60, 0x61, + 0x51, 0x53, 0x58, 0x5C, 0x5D, 0x5E, 0x5D, 0x5C, + 0x58, 0x57, 0x54, 0x5F, 0x5E, 0x55, 0x55, 0x52, + 0x64, 0xD4, 0xD5, 0xD4, 0xD1, 0x5D, 0xFA, 0xFB, + 0xF4, 0x21, 0x24, 0x41, 0x40, 0x44, 0x2E, 0x2E, + 0x42, 0x41, 0x2A, 0x24, 0x22, 0x22, 0x22, 0x22, + 0x23, 0xD9, 0xFC, 0xFC, 0xFC, 0xFC, 0xE5, 0xB8, + 0x8F, 0x8F, 0x7A, 0x8F, 0x7A, 0x8F, 0x7A, 0x8F, + 0x8F, 0x8F, 0xB8, 0xE5, 0x3F, 0x3E, 0x43, 0x2C, + 0x48, 0x61, 0xD1, 0xD7, 0xD9, 0xD7, 0xD0, 0x57, + 0x41, 0x2E, 0x3E, 0x44, 0x2D, 0x40, 0x52, 0x5D, + 0x53, 0x55, 0x59, 0x5D, 0x5E, 0x5E, 0x5D, 0x5A, + 0x57, 0x53, 0x5E, 0x5E, 0x54, 0x53, 0x54, 0x65, + 0xD5, 0xD6, 0xD4, 0xCE, 0x53, 0xFB, 0xF9, 0xFC, + 0x24, 0x22, 0x23, 0x23, 0x41, 0x42, 0x2E, 0x40, + 0x2B, 0x21, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, + 0x23, 0x23, 0xFC, 0xFC, 0xFC, 0xFC, 0xE7, 0xBD, + 0xB5, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, + 0x93, 0xB5, 0xC6, 0xEB, 0x2D, 0x47, 0x4A, 0x47, + 0x2C, 0x3E, 0x61, 0xD4, 0xDC, 0xDC, 0xDA, 0xCF, + 0x54, 0x41, 0x41, 0x3E, 0x45, 0x2C, 0x3F, 0x4A, + 0x58, 0x5A, 0x5C, 0x5F, 0x60, 0x5E, 0x5D, 0x57, + 0x51, 0x5D, 0x5D, 0x51, 0x53, 0x53, 0xCB, 0xD5, + 0xD6, 0xD5, 0x63, 0x55, 0xFC, 0xFC, 0xFC, 0x2C, + 0x23, 0x22, 0x23, 0x22, 0x20, 0x2D, 0x2C, 0x26, + 0x21, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, + 0x22, 0x21, 0xF0, 0xFC, 0xFC, 0xFC, 0xE2, 0xC6, + 0xB5, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, + 0x93, 0x93, 0xC7, 0xE3, 0x3E, 0x2E, 0x49, 0x52, + 0x4C, 0x41, 0x44, 0x62, 0xD6, 0xDE, 0xDE, 0xD9, + 0xD0, 0x51, 0x2E, 0x40, 0x47, 0x44, 0x2C, 0x42, + 0x5D, 0x5D, 0x5F, 0x60, 0x60, 0x5D, 0x57, 0x51, + 0x58, 0x5D, 0x4E, 0x52, 0x55, 0x64, 0xD5, 0xD6, + 0xD4, 0x61, 0x59, 0x6B, 0xFC, 0xFC, 0xFC, 0x21, + 0x23, 0x22, 0x23, 0x22, 0x23, 0x21, 0x23, 0x22, + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, + 0x22, 0x21, 0x24, 0xFC, 0xFC, 0xFC, 0xE2, 0xC7, + 0xB5, 0x90, 0x93, 0x93, 0x93, 0x90, 0x93, 0x93, + 0x90, 0xB5, 0xC8, 0xE4, 0x5F, 0x45, 0x2E, 0x4D, + 0x57, 0x57, 0x44, 0x43, 0x63, 0xDA, 0xDF, 0xDF, + 0xD9, 0xCE, 0x4C, 0x2C, 0x3F, 0x3E, 0x40, 0x40, + 0x60, 0x5E, 0x61, 0x61, 0x5E, 0x5B, 0x53, 0x52, + 0x5C, 0x52, 0x52, 0x55, 0x61, 0xD4, 0xD5, 0xD1, + 0x5E, 0x5B, 0x5C, 0xFB, 0xFC, 0xFC, 0x2A, 0x21, + 0x23, 0x22, 0x23, 0x22, 0x22, 0x22, 0x23, 0x22, + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, + 0x22, 0x22, 0x22, 0xFB, 0xFC, 0xFC, 0xB3, 0xC8, + 0xB5, 0x90, 0x92, 0xB5, 0x93, 0x93, 0xB5, 0x93, + 0x92, 0xB5, 0xC8, 0xB9, 0xD0, 0x5E, 0x44, 0x40, + 0x52, 0x58, 0x57, 0x48, 0x40, 0x63, 0xD9, 0xE0, + 0xE0, 0xD9, 0xCB, 0x49, 0x2D, 0x3F, 0x45, 0x3F, + 0x63, 0x61, 0x62, 0x60, 0x5E, 0x55, 0x4D, 0x59, + 0x53, 0x4E, 0x54, 0x5D, 0xD2, 0xD4, 0xD2, 0x5E, + 0x5C, 0x5D, 0xFC, 0xFC, 0xFC, 0xF8, 0x29, 0x23, + 0x23, 0x23, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, + 0x23, 0x22, 0x22, 0x23, 0x23, 0x23, 0x22, 0x22, + 0x22, 0x22, 0x22, 0xF0, 0xFC, 0xFC, 0xB3, 0xC7, + 0xB5, 0x93, 0xB5, 0x93, 0x93, 0x91, 0x93, 0x93, + 0x91, 0xB5, 0xC7, 0xAD, 0xD6, 0xD2, 0x5E, 0x3F, + 0x3F, 0x57, 0x57, 0x58, 0x4A, 0x41, 0x64, 0xDC, + 0xF1, 0xDF, 0xDA, 0x61, 0x45, 0x2E, 0x43, 0x47, + 0xCB, 0x63, 0x62, 0x5F, 0x58, 0x51, 0x53, 0x54, + 0x4C, 0x52, 0x5C, 0xCD, 0xD3, 0xD2, 0x60, 0x5D, + 0x5D, 0xFB, 0xFC, 0xFC, 0xFC, 0xDB, 0x49, 0x24, + 0x21, 0x23, 0x23, 0x22, 0x26, 0x26, 0x2A, 0x24, + 0x22, 0x23, 0x22, 0x21, 0x24, 0x26, 0x26, 0x2A, + 0x29, 0x2B, 0x24, 0x25, 0xFC, 0xFC, 0xB3, 0xC5, + 0x91, 0x91, 0x92, 0x91, 0x92, 0x92, 0x93, 0x93, + 0x91, 0x93, 0xC6, 0xAD, 0xDC, 0xD9, 0xD4, 0x60, + 0x43, 0x45, 0x58, 0x58, 0x57, 0x4B, 0x43, 0xCC, + 0xDD, 0xF1, 0xD8, 0xD5, 0x5D, 0x43, 0x41, 0x47, + 0xCD, 0x63, 0x62, 0x5D, 0x54, 0x4C, 0x55, 0x4B, + 0x51, 0x58, 0x62, 0xD0, 0xD0, 0x62, 0x5D, 0x5D, + 0x67, 0xFC, 0xFC, 0xFC, 0xFC, 0x58, 0x4E, 0x28, + 0x2A, 0x20, 0x23, 0x22, 0x23, 0x2A, 0x23, 0x22, + 0x22, 0x22, 0x23, 0x23, 0x25, 0x2A, 0x2E, 0x2D, + 0x2E, 0x2E, 0x2E, 0x23, 0xFA, 0xFC, 0xB2, 0xBD, + 0xB5, 0x90, 0x91, 0x93, 0x92, 0x90, 0x91, 0x93, + 0x92, 0x91, 0xBD, 0xAD, 0xDE, 0xE0, 0xD8, 0xD7, + 0x61, 0x40, 0x48, 0x58, 0x58, 0x58, 0x48, 0x44, + 0xCF, 0xDE, 0xE0, 0xDD, 0xD0, 0x52, 0x41, 0x45, + 0xCD, 0x63, 0x61, 0x58, 0x4D, 0x51, 0x4C, 0x4B, + 0x54, 0x5D, 0xCC, 0xCE, 0x63, 0x61, 0x5D, 0x5D, + 0xFB, 0xFC, 0xFC, 0xFC, 0xFC, 0x4B, 0x27, 0x21, + 0x22, 0x22, 0x23, 0x22, 0x22, 0x24, 0x23, 0x22, + 0x22, 0x22, 0x23, 0x22, 0x23, 0x23, 0x22, 0x20, + 0x27, 0x2B, 0x41, 0x2B, 0x23, 0xFC, 0xB2, 0xB6, + 0x93, 0x90, 0x92, 0xB5, 0x92, 0x90, 0xB5, 0x90, + 0x92, 0x93, 0xBC, 0xAD, 0xDC, 0xF1, 0xF3, 0xF0, + 0xD9, 0x61, 0x41, 0x4A, 0x58, 0x57, 0x57, 0x44, + 0x49, 0xD2, 0xDD, 0xD8, 0xDA, 0x63, 0x4A, 0x45, + 0xCC, 0x63, 0x5E, 0x52, 0x4B, 0x4C, 0x49, 0x51, + 0x5C, 0x61, 0xCD, 0x65, 0x63, 0x5E, 0x4E, 0xCF, + 0xFB, 0xFB, 0xF0, 0xFC, 0xD2, 0x2A, 0x22, 0x23, + 0x22, 0x22, 0x23, 0x22, 0x22, 0x21, 0x22, 0x22, + 0x22, 0x22, 0x23, 0x22, 0x23, 0x23, 0x22, 0x22, + 0x23, 0x22, 0x26, 0x41, 0x27, 0xF9, 0x81, 0xB7, + 0xB5, 0x91, 0x92, 0xB5, 0x91, 0xB5, 0x93, 0xB5, + 0x93, 0xB6, 0xB7, 0xB9, 0xCB, 0xD8, 0xF3, 0xF2, + 0xF2, 0xDB, 0x61, 0x2D, 0x51, 0x58, 0x57, 0x58, + 0x41, 0x51, 0xD4, 0xDB, 0xDC, 0xD1, 0x5B, 0x4C, + 0xCB, 0x62, 0x59, 0x4C, 0x4A, 0x49, 0x4B, 0x55, + 0x60, 0x64, 0xCC, 0x64, 0x5E, 0x55, 0x60, 0xE1, + 0xFB, 0xF8, 0xFC, 0xFC, 0x21, 0x22, 0x22, 0x23, + 0x22, 0x22, 0x23, 0x22, 0x22, 0x21, 0x22, 0x22, + 0x22, 0x22, 0x23, 0x22, 0x23, 0x23, 0x22, 0x22, + 0x23, 0x22, 0x21, 0x24, 0x2D, 0x21, 0xB4, 0xBB, + 0xB6, 0xB5, 0xB6, 0xB7, 0xB7, 0xB7, 0xB7, 0xB6, + 0xB6, 0xB6, 0xBB, 0xB9, 0x45, 0xCB, 0xDF, 0xF3, + 0xF3, 0xF3, 0xDB, 0x5E, 0x2C, 0x51, 0x58, 0x58, + 0x52, 0x2D, 0x5C, 0xD4, 0xD9, 0xD5, 0x63, 0x58, + 0x64, 0x60, 0x53, 0x49, 0x4A, 0x49, 0x52, 0x5C, + 0x63, 0xCD, 0xCD, 0x63, 0x5C, 0x4E, 0x65, 0xFC, + 0xFC, 0xF5, 0xFC, 0xD2, 0x23, 0x22, 0x22, 0x23, + 0x22, 0x22, 0x23, 0x22, 0x22, 0x21, 0x22, 0x22, + 0x22, 0x22, 0x23, 0x22, 0x23, 0x23, 0x22, 0x22, + 0x23, 0x22, 0x21, 0x22, 0x25, 0x29, 0xB3, 0xC7, + 0xB5, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, + 0xB6, 0xB5, 0xC7, 0xAD, 0x57, 0x3F, 0xCB, 0xF0, + 0xF3, 0xF3, 0xF2, 0xD9, 0x58, 0x41, 0x4C, 0x58, + 0x57, 0x47, 0x42, 0x62, 0xD4, 0xD4, 0xCC, 0x60, + 0x63, 0x5D, 0x50, 0x47, 0x48, 0x4B, 0x58, 0x60, + 0xCC, 0xCE, 0xCD, 0x60, 0x53, 0x5C, 0x62, 0xFB, + 0xF9, 0xFC, 0xFC, 0x21, 0x23, 0x22, 0x22, 0x23, + 0x22, 0x22, 0x23, 0x23, 0x23, 0x21, 0x22, 0x22, + 0x22, 0x22, 0x23, 0x22, 0x23, 0x23, 0x22, 0x22, + 0x23, 0x22, 0x23, 0x23, 0x22, 0x23, 0x81, 0xC7, + 0xB7, 0xB7, 0xBC, 0xB7, 0xBC, 0xBC, 0xBC, 0xB7, + 0xB7, 0xB7, 0xC8, 0x80, 0x58, 0x57, 0x40, 0xCE, + 0xF3, 0xF2, 0xF2, 0xF0, 0xD5, 0x4C, 0x3F, 0x4B, + 0x52, 0x50, 0x2D, 0x4B, 0x64, 0xD2, 0xCC, 0x61, + 0x60, 0x58, 0x4A, 0x47, 0x47, 0x4C, 0x59, 0x64, + 0xD0, 0xD0, 0x64, 0x59, 0x49, 0x5D, 0xFB, 0xFC, + 0xD9, 0xFC, 0xD6, 0x23, 0x22, 0x22, 0x22, 0x23, + 0x22, 0x22, 0x23, 0x23, 0x21, 0x21, 0x22, 0x22, + 0x22, 0x22, 0x23, 0x22, 0x23, 0x23, 0x22, 0x22, + 0x23, 0x22, 0x23, 0x23, 0x22, 0x23, 0xB4, 0xC8, + 0xBD, 0xB7, 0xBD, 0xBC, 0xBD, 0xC5, 0xBC, 0xC5, + 0xBC, 0xBD, 0xC7, 0xAC, 0x58, 0x57, 0x58, 0x2C, + 0xD1, 0xF0, 0xF3, 0xF3, 0xE0, 0xCD, 0x45, 0x3E, + 0x48, 0x4B, 0x3F, 0x41, 0x56, 0x64, 0x65, 0x62, + 0x5D, 0x52, 0x47, 0x48, 0x48, 0x53, 0x60, 0xCC, + 0xD2, 0xD0, 0x63, 0x52, 0x4E, 0x53, 0xFB, 0xFB, + 0xFC, 0xFC, 0x23, 0x23, 0x22, 0x23, 0x22, 0x23, + 0x22, 0x22, 0x23, 0x23, 0x20, 0x21, 0x22, 0x22, + 0x22, 0x22, 0x23, 0x22, 0x23, 0x23, 0x22, 0x22, + 0x23, 0x22, 0x23, 0x22, 0x23, 0x22, 0xB4, 0xC7, + 0xC5, 0xBC, 0xC5, 0xBD, 0xC5, 0xC5, 0xBD, 0xC5, + 0xBC, 0xC6, 0xC7, 0xB9, 0x58, 0x57, 0x58, 0x57, + 0x2D, 0xD4, 0xF1, 0xF2, 0xF0, 0xD9, 0x5D, 0x47, + 0x48, 0x3F, 0x42, 0x2C, 0x48, 0x5C, 0x5F, 0x60, + 0x58, 0x50, 0x47, 0x4A, 0x49, 0x55, 0x63, 0xD0, + 0xD2, 0xCD, 0x5D, 0x49, 0x4E, 0xE1, 0xFC, 0xF0, + 0xFC, 0xF8, 0x22, 0x22, 0x22, 0x23, 0x22, 0x23, + 0x22, 0x22, 0x23, 0x20, 0x21, 0x21, 0x22, 0x22, + 0x22, 0x22, 0x23, 0x22, 0x23, 0x23, 0x23, 0x22, + 0x23, 0x22, 0x23, 0x23, 0x23, 0x22, 0xC4, 0xC8, + 0xBD, 0xBD, 0xC6, 0xBD, 0xC6, 0xC6, 0xC5, 0xC6, + 0xBD, 0xC6, 0xC7, 0xE4, 0x54, 0x57, 0x58, 0x57, + 0x57, 0x43, 0xD7, 0xE0, 0xF1, 0xD8, 0xCD, 0x4B, + 0x4A, 0x47, 0x42, 0x2C, 0x3F, 0x4D, 0x58, 0x5C, + 0x52, 0x4B, 0x48, 0x4B, 0x4A, 0x58, 0xCB, 0xD3, + 0xD2, 0xCD, 0x58, 0x47, 0x4A, 0xFC, 0xFC, 0xFB, + 0xFC, 0x2B, 0x22, 0x22, 0x22, 0x23, 0x22, 0x23, + 0x22, 0x22, 0x23, 0x26, 0x21, 0x21, 0x23, 0x22, + 0x22, 0x22, 0x23, 0x22, 0x23, 0x23, 0x22, 0x23, + 0x22, 0x23, 0x22, 0x23, 0x22, 0x23, 0xE5, 0xC8, + 0xBA, 0xC5, 0xC6, 0xC6, 0xC6, 0xC7, 0xC6, 0xC7, + 0xC5, 0xC6, 0xC8, 0xE5, 0x2E, 0x54, 0x58, 0x57, + 0x57, 0x4C, 0x4D, 0xDA, 0xD8, 0xD8, 0xD4, 0x5C, + 0x4B, 0x4B, 0x3F, 0x42, 0x44, 0x4A, 0x51, 0x58, + 0x4B, 0x48, 0x4B, 0x51, 0x4D, 0x5F, 0xD0, 0xD1, + 0xD0, 0x64, 0x51, 0x44, 0x6B, 0xFC, 0xFB, 0xFC, + 0xFC, 0x21, 0x23, 0x22, 0x22, 0x23, 0x22, 0x23, + 0x22, 0x22, 0x23, 0x26, 0x21, 0x23, 0x23, 0x22, + 0x22, 0x22, 0x23, 0x22, 0x23, 0x23, 0x22, 0x23, + 0x22, 0x23, 0x22, 0x23, 0x23, 0x23, 0xE5, 0xED, + 0xE7, 0xBA, 0xC8, 0xC6, 0xC6, 0xC6, 0xC6, 0xC7, + 0xC7, 0xE5, 0xED, 0xE6, 0x61, 0x41, 0x52, 0x58, + 0x58, 0x57, 0x45, 0x5E, 0xD7, 0xDD, 0xD5, 0x60, + 0x4B, 0x4C, 0x48, 0x4D, 0x4D, 0x50, 0x4D, 0x56, + 0x4A, 0x3E, 0x53, 0x53, 0x52, 0x63, 0xD3, 0xD0, + 0xCE, 0x60, 0x4A, 0x45, 0xFC, 0xFC, 0xF7, 0xFC, + 0xFC, 0x21, 0x23, 0x23, 0x22, 0x23, 0x22, 0x23, + 0x22, 0x23, 0x21, 0x2A, 0x20, 0x23, 0x23, 0x22, + 0x22, 0x22, 0x23, 0x22, 0x23, 0x23, 0x22, 0x22, + 0x23, 0x22, 0x23, 0x22, 0x21, 0x23, 0xEB, 0xF6, + 0xF6, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED, + 0xF6, 0xF6, 0xF6, 0xE6, 0xDB, 0x58, 0x45, 0x4B, + 0x58, 0x57, 0x4D, 0x4B, 0x64, 0xD4, 0xD0, 0x5C, + 0x48, 0x51, 0x4C, 0x5D, 0x5E, 0x5C, 0x56, 0x59, + 0x3E, 0x4A, 0x58, 0x54, 0x52, 0x65, 0xD3, 0xD0, + 0xCF, 0x5D, 0x48, 0xFC, 0xFC, 0xFC, 0xFA, 0xFC, + 0xFC, 0x21, 0x22, 0x23, 0x22, 0x23, 0x22, 0x23, + 0x22, 0x23, 0x21, 0x2A, 0x21, 0x23, 0x23, 0x22, + 0x22, 0x22, 0x23, 0x22, 0x23, 0x23, 0x22, 0x22, + 0x23, 0x22, 0x23, 0x22, 0x21, 0x4F, 0xE6, 0xC6, + 0xC6, 0xBD, 0xC6, 0xBD, 0xBD, 0xBD, 0xBD, 0xC6, + 0xC5, 0xBA, 0xC7, 0xE6, 0xF2, 0xD4, 0x49, 0x4B, + 0x3E, 0x4D, 0x52, 0x3E, 0x52, 0x63, 0x64, 0x56, + 0x48, 0x54, 0x4D, 0x61, 0xCC, 0xCC, 0x60, 0x60, + 0x47, 0x4D, 0x5C, 0x53, 0x58, 0xCF, 0xD1, 0xCF, + 0xD0, 0x59, 0x45, 0xFC, 0xFC, 0xFC, 0xEF, 0xF9, + 0xFC, 0x21, 0x23, 0x22, 0x23, 0x22, 0x23, 0x22, + 0x23, 0x22, 0x23, 0x2A, 0x21, 0x23, 0x23, 0x22, + 0x22, 0x22, 0x23, 0x22, 0x23, 0x23, 0x22, 0x22, + 0x23, 0x22, 0x23, 0x22, 0x23, 0x4F, 0xE4, 0xB9, + 0xAF, 0x80, 0x80, 0x8E, 0x8E, 0x8E, 0x8E, 0x8F, + 0x80, 0xB4, 0xB9, 0xE4, 0x7F, 0xDE, 0x61, 0x52, + 0x54, 0x48, 0x3F, 0x43, 0x4D, 0x56, 0x59, 0x4B, + 0x3E, 0x58, 0x53, 0x61, 0xD3, 0xD4, 0xCF, 0xCD, + 0x4C, 0x58, 0x5F, 0x53, 0x5E, 0xD3, 0xD0, 0xCE, + 0xCE, 0x52, 0x3F, 0xFC, 0xFC, 0xFC, 0xF7, 0x65, + 0xFA, 0x22, 0x23, 0x22, 0x23, 0x22, 0x23, 0x22, + 0x23, 0x22, 0x21, 0x2A, 0x23, 0x23, 0x23, 0x22, + 0x22, 0x22, 0x23, 0x22, 0x23, 0x23, 0x22, 0x22, + 0x23, 0x22, 0x23, 0x22, 0x21, 0xB1, 0xE4, 0xE6, + 0x7C, 0xB1, 0x7C, 0xB1, 0xB2, 0xB2, 0xB3, 0x3D, + 0xB3, 0x3C, 0xE5, 0xB3, 0xB0, 0xF1, 0xD0, 0x58, + 0x5D, 0x4D, 0x40, 0x41, 0x48, 0x51, 0x4C, 0x3F, + 0x3F, 0x4D, 0x5A, 0x5A, 0xD5, 0xD9, 0xD7, 0xD4, + 0x57, 0x5E, 0x61, 0x4C, 0x63, 0xD4, 0xCF, 0xCE, + 0xCB, 0x4D, 0x4A, 0xFC, 0xFC, 0xFC, 0xFC, 0xF0, + 0xFB, 0x22, 0x23, 0x22, 0x23, 0x22, 0x23, 0x22, + 0x23, 0x22, 0x23, 0x2A, 0x21, 0x23, 0x23, 0x22, + 0x22, 0x22, 0x23, 0x22, 0x23, 0x23, 0x22, 0x22, + 0x22, 0x23, 0x22, 0x23, 0x23, 0xB1, 0x81, 0x7D, + 0x39, 0x35, 0x35, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x7C, 0xB2, 0xB0, 0xDF, 0xD2, 0x57, + 0x60, 0x59, 0x5B, 0x59, 0x52, 0x4C, 0x4A, 0x40, + 0x42, 0x4A, 0x53, 0x4D, 0xD2, 0xDE, 0xDE, 0xD9, + 0x5E, 0x5E, 0x60, 0x4A, 0xCD, 0xD1, 0xCF, 0xCE, + 0x63, 0x49, 0x5C, 0xFB, 0xE8, 0x89, 0x9F, 0xFC, + 0xD6, 0x21, 0x21, 0x23, 0x22, 0x22, 0x23, 0x22, + 0x23, 0x22, 0x21, 0x2A, 0x22, 0x23, 0x23, 0x22, + 0x22, 0x22, 0x23, 0x22, 0x23, 0x23, 0x22, 0x22, + 0x22, 0x23, 0x22, 0x23, 0x23, 0x22, 0x7F, 0xB9, + 0x71, 0x6C, 0x38, 0x38, 0x33, 0x33, 0x33, 0x38, + 0x38, 0x71, 0xAD, 0xE4, 0xD3, 0xDA, 0xCC, 0x52, + 0x63, 0x60, 0xCE, 0xD4, 0xCF, 0x60, 0x4C, 0x40, + 0x3F, 0x45, 0x4B, 0x5A, 0xCB, 0xD8, 0xDE, 0xDC, + 0x5E, 0x5E, 0x5F, 0x4C, 0xD2, 0xD2, 0xCF, 0xCF, + 0x61, 0x45, 0x5E, 0xA7, 0x9D, 0x95, 0x8B, 0x99, + 0xFC, 0x41, 0x21, 0x23, 0x23, 0x22, 0x23, 0x22, + 0x23, 0x22, 0x23, 0x2A, 0x23, 0x23, 0x23, 0x22, + 0x22, 0x22, 0x23, 0x22, 0x23, 0x23, 0x22, 0x22, + 0x22, 0x22, 0x23, 0x22, 0x23, 0x77, 0x77, 0xF6, + 0xFC, 0x7D, 0x7D, 0x7E, 0x7E, 0x7E, 0x7E, 0x7D, + 0x7D, 0xFC, 0x47, 0x64, 0xD0, 0xD0, 0x5D, 0x4B, + 0x62, 0xCC, 0xD1, 0xDE, 0xDE, 0xD4, 0x5E, 0x43, + 0x3F, 0x3E, 0x48, 0x53, 0x58, 0xDB, 0xD8, 0xDC, + 0x5E, 0x5E, 0x5E, 0x53, 0xD4, 0xD2, 0xD0, 0xD0, + 0x5E, 0x49, 0xA7, 0xA6, 0x89, 0x95, 0x8B, 0x9C, + 0x9C, 0xFB, 0xD4, 0x22, 0x22, 0x22, 0x22, 0x23, + 0x22, 0x23, 0x23, 0x2A, 0x22, 0x23, 0x23, 0x22, + 0x22, 0x22, 0x23, 0x22, 0x23, 0x23, 0x22, 0x23, + 0x23, 0x22, 0x23, 0x23, 0x98, 0x8C, 0x8C, 0x88, + 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xF8, + 0xE9, 0x9C, 0x48, 0x5C, 0xD0, 0xCB, 0x48, 0x49, + 0x5B, 0xCB, 0xCD, 0xE0, 0xF1, 0xDD, 0xD0, 0x4A, + 0x41, 0x47, 0x45, 0x4C, 0x48, 0xD7, 0xDE, 0xDC, + 0x5E, 0x5E, 0x5A, 0x58, 0xD1, 0xD0, 0xD0, 0xD2, + 0x5C, 0x55, 0xA7, 0xA6, 0x87, 0x86, 0x89, 0x94, + 0x9C, 0xA9, 0xFC, 0xF4, 0x22, 0x23, 0x22, 0x23, + 0x22, 0x23, 0x22, 0x2A, 0x21, 0x23, 0x23, 0x22, + 0x22, 0x22, 0x23, 0x22, 0x23, 0x23, 0x22, 0x23, + 0x22, 0x23, 0x22, 0x23, 0xA4, 0x89, 0x8C, 0xAA, + 0xFB, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xF7, + 0x85, 0x88, 0x8D, 0x59, 0x64, 0x63, 0x47, 0x3E, + 0x4C, 0x60, 0x61, 0xE0, 0xF0, 0xDF, 0xD9, 0x5D, + 0x2E, 0x3E, 0x3E, 0x47, 0x4D, 0xCD, 0xDE, 0xDC, + 0x5D, 0x5C, 0x51, 0x5D, 0xD1, 0xD2, 0xD2, 0xD4, + 0x5A, 0xBE, 0xA7, 0x98, 0x8A, 0x8A, 0xA0, 0x8B, + 0x86, 0x86, 0xF7, 0xFC, 0xF7, 0x26, 0x23, 0x23, + 0x22, 0x22, 0x22, 0x22, 0x21, 0x22, 0x23, 0x22, + 0x22, 0x22, 0x23, 0x22, 0x23, 0x23, 0x22, 0x23, + 0x22, 0x21, 0x21, 0x21, 0xA1, 0x98, 0x9F, 0xBF, + 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xA7, + 0x8C, 0x86, 0x8D, 0x59, 0x5E, 0x5D, 0x3F, 0x3E, + 0x47, 0x53, 0x63, 0xD9, 0xF0, 0xF1, 0xDE, 0xD0, + 0x43, 0x3E, 0x47, 0x45, 0x4A, 0x5B, 0xDC, 0xDA, + 0x5D, 0x59, 0x49, 0x5F, 0xD1, 0xD2, 0xD3, 0xB9, + 0xA5, 0xA7, 0x98, 0x9B, 0x96, 0x9D, 0x89, 0x89, + 0x8B, 0x9C, 0x9D, 0xFC, 0xFC, 0xFC, 0x26, 0x22, + 0x23, 0x23, 0x22, 0x22, 0x21, 0x22, 0x23, 0x22, + 0x22, 0x22, 0x23, 0x22, 0x23, 0x23, 0x22, 0x23, + 0x22, 0x22, 0x29, 0x2D, 0x99, 0x99, 0xA2, 0xAA, + 0xC4, 0xFB, 0xFC, 0xFC, 0xFC, 0xF6, 0xBF, 0xA2, + 0x9C, 0x9C, 0x8E, 0xDC, 0xCD, 0x51, 0x41, 0x3E, + 0x45, 0x49, 0x58, 0xCD, 0xE0, 0xE0, 0xD8, 0xDA, + 0x4C, 0x4A, 0x45, 0x45, 0x48, 0x47, 0xDA, 0xDA, + 0x5C, 0x58, 0x44, 0x69, 0xA9, 0x98, 0xA4, 0xA6, + 0xA1, 0xA4, 0x99, 0x9E, 0x9D, 0x8B, 0x8A, 0x97, + 0x87, 0x9A, 0x8A, 0xC2, 0xFC, 0xFC, 0xFC, 0x4D, + 0x21, 0x21, 0x23, 0x22, 0x21, 0x22, 0x23, 0x22, + 0x22, 0x22, 0x23, 0x22, 0x23, 0x23, 0x23, 0x22, + 0x21, 0x22, 0x2D, 0x34, 0xA4, 0xA2, 0xA2, 0xA9, + 0xBF, 0xC0, 0xC3, 0xC1, 0xC0, 0xBE, 0xA6, 0x9D, + 0x99, 0x87, 0xA2, 0xF1, 0xDC, 0x64, 0x42, 0x45, + 0x47, 0x3E, 0x49, 0x4C, 0xDD, 0xDF, 0xD8, 0xDB, + 0x5E, 0x4C, 0x48, 0x45, 0x45, 0x41, 0xD1, 0xD6, + 0x5A, 0x55, 0x3F, 0xA7, 0xA1, 0x98, 0x9F, 0x99, + 0x9F, 0x9D, 0x9A, 0x95, 0x8B, 0x97, 0x89, 0x8A, + 0x88, 0x94, 0x9C, 0x8C, 0xFC, 0xFC, 0xFC, 0xFC, + 0xF4, 0x21, 0x23, 0x22, 0x21, 0x22, 0x23, 0x22, + 0x22, 0x22, 0x23, 0x22, 0x23, 0x23, 0x22, 0x23, + 0x23, 0x23, 0x2C, 0x2C, 0xA8, 0xA2, 0xA4, 0xA4, + 0xA9, 0xAA, 0xAA, 0xAA, 0xA9, 0xA6, 0x98, 0x9C, + 0x8B, 0x88, 0x98, 0x8D, 0xD8, 0xD6, 0x4E, 0x47, + 0x47, 0x49, 0x47, 0x3F, 0xDA, 0xDD, 0xDE, 0xDD, + 0xCC, 0x4A, 0x4B, 0x3E, 0x45, 0x43, 0x61, 0xD4, + 0x56, 0x51, 0x44, 0xA4, 0x9B, 0x8B, 0x9C, 0x9A, + 0xA0, 0xA2, 0x98, 0x98, 0x8B, 0x8B, 0x98, 0x98, + 0x84, 0x8B, 0x94, 0x8A, 0xA4, 0xFC, 0xFC, 0xFC, + 0xFC, 0xF2, 0x21, 0x22, 0x21, 0x22, 0x23, 0x22, + 0x22, 0x22, 0x23, 0x22, 0x23, 0x23, 0x23, 0x23, + 0x23, 0x22, 0x2C, 0x2D, 0xC0, 0xA4, 0xA2, 0xA4, + 0xA4, 0xA6, 0xA6, 0xA6, 0xA4, 0xA2, 0x9F, 0x89, + 0x8B, 0x9C, 0x9C, 0x8B, 0x68, 0xDB, 0x5F, 0x4B, + 0x3E, 0x49, 0x4B, 0x3E, 0xCC, 0xDA, 0xDC, 0xDD, + 0xD3, 0x49, 0x52, 0x48, 0x45, 0x45, 0x53, 0xD0, + 0x51, 0x4A, 0x44, 0xA4, 0x9B, 0x8B, 0x9C, 0xA0, + 0x9B, 0x86, 0x89, 0x98, 0x89, 0x8A, 0x96, 0x8A, + 0x9C, 0x89, 0x89, 0x9C, 0x8C, 0xF6, 0xFC, 0xFC, + 0xFC, 0xFC, 0x21, 0x22, 0x21, 0x22, 0x23, 0x22, + 0x22, 0x22, 0x22, 0x23, 0x22, 0x21, 0x22, 0x23, + 0x22, 0x21, 0x2B, 0x34, 0xC0, 0xA8, 0xA4, 0xA2, + 0xA2, 0x98, 0xA1, 0xA0, 0x98, 0x9F, 0x95, 0x8A, + 0x94, 0xA1, 0x8A, 0x84, 0x9B, 0x68, 0xCC, 0x49, + 0x4A, 0x47, 0x4C, 0x4B, 0x51, 0xD3, 0xDA, 0xDC, + 0xD5, 0x56, 0x56, 0x4A, 0x3E, 0x45, 0x48, 0x63, + 0x4A, 0x47, 0x3E, 0xA7, 0x98, 0x9D, 0x9E, 0x8B, + 0x95, 0x9B, 0x89, 0x86, 0x9B, 0x8B, 0x89, 0x84, + 0x9A, 0xA1, 0x95, 0x9A, 0x8C, 0xA4, 0xFC, 0xFC, + 0xFC, 0xFA, 0x23, 0x22, 0x21, 0x22, 0x23, 0x22, + 0x22, 0x22, 0x22, 0x23, 0x22, 0x21, 0x22, 0x23, + 0x21, 0x23, 0x2C, 0xF6, 0xBF, 0xA9, 0xA2, 0x99, + 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9B, 0x87, 0x8B, + 0x9C, 0x86, 0x9C, 0x8A, 0x87, 0x87, 0x89, 0x51, + 0x54, 0x47, 0x4B, 0x50, 0x4B, 0xCF, 0xD6, 0xDC, + 0xD5, 0x60, 0x54, 0x52, 0x48, 0x45, 0x40, 0x5A, + 0x45, 0x43, 0x47, 0xA7, 0x98, 0x9B, 0x95, 0x95, + 0x9A, 0x87, 0x98, 0x98, 0x8A, 0x86, 0x87, 0x9E, + 0x9B, 0x95, 0x9D, 0x9D, 0x99, 0x85, 0xA6, 0xFA, + 0xF2, 0x21, 0x23, 0x22, 0x21, 0x22, 0x23, 0x22, + 0x22, 0x22, 0x22, 0x23, 0x22, 0x21, 0x22, 0x22, + 0x21, 0x24, 0xFB, 0xF7, 0xBF, 0xA6, 0xA2, 0x99, + 0x97, 0x89, 0x86, 0x89, 0x9C, 0x96, 0x9E, 0x94, + 0x89, 0x99, 0x98, 0x89, 0x9E, 0x9B, 0x89, 0x8B, + 0x58, 0x4B, 0x4A, 0x52, 0x48, 0xCC, 0xD3, 0xDA, + 0xD3, 0x65, 0x4C, 0x58, 0x49, 0x3E, 0x2E, 0x4D, + 0x40, 0x41, 0x45, 0xA9, 0xA1, 0x9B, 0x9E, 0x9C, + 0x95, 0x8A, 0x94, 0x89, 0x96, 0x87, 0x9C, 0x9A, + 0x84, 0x9D, 0x9C, 0x9E, 0x9A, 0x9C, 0x9D, 0xBB, + 0x23, 0x23, 0x22, 0x22, 0x21, 0x22, 0x23, 0x22, + 0x22, 0x22, 0x22, 0x23, 0x22, 0x21, 0x23, 0x23, + 0x24, 0xFC, 0xFC, 0xF6, 0xBF, 0xA6, 0x9F, 0x99, + 0x89, 0x95, 0x87, 0x94, 0x9D, 0x9E, 0x97, 0x9E, + 0x95, 0x9B, 0x89, 0x95, 0x95, 0x9B, 0x89, 0x87, + 0x5D, 0x56, 0x3E, 0x51, 0x3E, 0x60, 0xCF, 0xD3, + 0xD2, 0xCD, 0x5C, 0x49, 0x4B, 0x3E, 0x2C, 0x48, + 0x3E, 0x43, 0x3E, 0xA9, 0xA1, 0x9B, 0x97, 0x94, + 0x95, 0x9A, 0x9C, 0x87, 0x87, 0x9B, 0x9C, 0x95, + 0x9D, 0x89, 0x9A, 0x89, 0x9E, 0x9E, 0x8C, 0xA6, + 0x20, 0x23, 0x23, 0x22, 0x23, 0x22, 0x23, 0x22, + 0x22, 0x22, 0x22, 0x22, 0x21, 0x21, 0x20, 0x40, + 0xFC, 0xFC, 0xFC, 0xEC, 0xBE, 0xA4, 0x9F, 0x99, + 0x95, 0x9F, 0xA0, 0x88, 0x9D, 0x8B, 0x97, 0x95, + 0x87, 0x95, 0x96, 0x95, 0x97, 0x94, 0x94, 0x98, + 0xD3, 0x4C, 0x47, 0x4D, 0x42, 0x4C, 0x60, 0xCC, + 0xCE, 0xD0, 0x65, 0x4B, 0x47, 0x44, 0x2B, 0x45, + 0x4B, 0x47, 0x49, 0xA7, 0xA1, 0x9A, 0x97, 0x89, + 0x95, 0x97, 0x97, 0x9E, 0x89, 0x95, 0x89, 0x9C, + 0x87, 0x95, 0x97, 0x99, 0x95, 0x99, 0x9F, 0xA4, + 0xC4, 0x21, 0x21, 0x23, 0x21, 0x23, 0x23, 0x23, + 0x23, 0x23, 0x23, 0x23, 0x21, 0x20, 0xFC, 0xFC, + 0xFC, 0xFC, 0xFC, 0xEA, 0xAA, 0xA6, 0xA2, 0x99, + 0x8B, 0x9A, 0x95, 0x9E, 0x9E, 0x9A, 0x94, 0x87, + 0x94, 0x94, 0x89, 0x94, 0x9B, 0x9B, 0xA7, 0xDC, + 0xDB, 0x65, 0x2E, 0x3E, 0x43, 0x44, 0x49, 0x58, + 0x63, 0xD3, 0xD3, 0x5E, 0x42, 0x42, 0x2D, 0x40, + 0x54, 0x4C, 0x4A, 0xA7, 0xA0, 0x99, 0x9B, 0x94, + 0xA0, 0x8A, 0x9B, 0x9D, 0x87, 0x95, 0x94, 0x8B, + 0x8A, 0x98, 0x9C, 0x8A, 0x9B, 0x99, 0xA2, 0xA6, + 0xBF, 0xEC, 0x2A, 0x20, 0x21, 0x23, 0x21, 0x20, + 0x20, 0x20, 0x20, 0x4C, 0xF9, 0xFC, 0xFC, 0xFC, + 0xFC, 0xFC, 0xFC, 0xEB, 0xAA, 0xA4, 0x9F, 0x9C, + 0x8B, 0x9B, 0x88, 0x84, 0x9E, 0x9D, 0x96, 0x94, + 0x94, 0x9A, 0x9B, 0x9B, 0xA4, 0xD5, 0xCD, 0xDE, + 0xF1, 0xDA, 0x4C, 0x2D, 0x41, 0x2B, 0x42, 0x4C, + 0x5E, 0xD4, 0xD7, 0xCD, 0x49, 0x2E, 0x2E, 0x41, + 0x5E, 0x57, 0xA7, 0xA6, 0xA7, 0xA4, 0xA2, 0x98, + 0x9D, 0x9C, 0xA1, 0x99, 0x9D, 0x88, 0x8B, 0x9C, + 0x8A, 0x9C, 0x9C, 0x94, 0x9C, 0x89, 0xA0, 0xA6, + 0xAA, 0xEB, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, + 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, + 0xFC, 0xFC, 0xFB, 0xE9, 0xAA, 0xA6, 0xA2, 0x8B, + 0x8B, 0x8A, 0x86, 0x9B, 0x9C, 0x98, 0xA0, 0x9B, + 0x9B, 0x84, 0xA7, 0xB4, 0x61, 0xD1, 0xD2, 0xE0, + 0xF1, 0xDC, 0x61, 0x2D, 0x2E, 0x3F, 0x56, 0x62, + 0x5D, 0xD4, 0xD9, 0xD3, 0x54, 0x41, 0x41, 0x44, + 0xCB, 0x60, 0x52, 0xA9, 0xA9, 0xA9, 0xA7, 0xA6, + 0xA6, 0xA4, 0xA4, 0xA2, 0xA2, 0x9D, 0x95, 0x89, + 0x9C, 0x8A, 0x9E, 0x9C, 0x8A, 0x9E, 0xA0, 0xA8, + 0xC0, 0xE9, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, + 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, + 0xFC, 0xFC, 0xFC, 0xE9, 0xAA, 0xA6, 0xA0, 0x99, + 0x9C, 0x8B, 0x9A, 0x84, 0x9B, 0x9B, 0x98, 0x98, + 0xA9, 0xB9, 0x49, 0x57, 0xCB, 0xD4, 0xD3, 0xF1, + 0xD8, 0xDA, 0xCE, 0x3F, 0x41, 0x4B, 0x5D, 0xCB, + 0x5E, 0xD6, 0xDB, 0xD6, 0x5D, 0x43, 0x3F, 0x49, + 0xD1, 0xCC, 0x4F, 0xDD, 0xC3, 0xBB, 0xBF, 0xAA, + 0xAA, 0xA9, 0xAA, 0xA8, 0xA8, 0xA6, 0xA6, 0xA2, + 0x9C, 0x9F, 0x9B, 0x9A, 0x9D, 0xA2, 0xA8, 0xAA, + 0xC1, 0xEA, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, + 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, + 0xFC, 0xFC, 0xFC, 0xEA, 0xC0, 0xAA, 0xA6, 0xA2, + 0xA2, 0x99, 0xA0, 0xA0, 0xA4, 0xA7, 0xA9, 0xC0, + 0x67, 0x49, 0x54, 0x60, 0xD0, 0xD4, 0xCC, 0xDF, + 0xD9, 0xD5, 0xD2, 0x3E, 0x47, 0x56, 0x60, 0xCD, + 0x5D, 0xD9, 0xD9, 0xD6, 0x61, 0x3F, 0x47, 0x52, + 0xD6, 0xD3, 0x62, 0x4D, 0x40, 0x4A, 0x57, 0xCA, + 0xC3, 0xC1, 0xC1, 0xC0, 0xBF, 0xBF, 0xAA, 0xAA, + 0xA6, 0xA4, 0xA4, 0xA4, 0xA6, 0xA8, 0xBE, 0xC1, + 0xC9, 0xEB, 0xFB, 0xFB, 0xFC, 0xFC, 0xFC, 0xFC, + 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, + 0xFC, 0xFC, 0xFC, 0xEB, 0xC3, 0xC0, 0xAA, 0xA8, + 0xA6, 0xA6, 0xA6, 0xA9, 0xAA, 0xC0, 0xE8, 0xD0, + 0xD2, 0x4C, 0x5E, 0x64, 0xD0, 0xD1, 0x5F, 0xD9, + 0xD5, 0xD1, 0xD0, 0x48, 0x52, 0x5C, 0x64, 0xCD, + 0x5C, 0xDC, 0xD7, 0xD5, 0x62, 0x3F, 0x4C, 0x53, + 0xDA, 0xD7, 0xCE, 0x56, 0x40, 0x4B, 0x52, 0x56, + 0xCE, 0xDF, 0x6A, 0xEB, 0xE9, 0xC9, 0xC3, 0xC0, + 0xC0, 0xBF, 0xBE, 0xAA, 0xBF, 0xC0, 0xC3, 0xC9, + 0xEA, 0xF6, 0xEE, 0x58, 0x57, 0x5E, 0xD6, 0xD0, + 0xD2, 0x61, 0xCB, 0xD6, 0xD6, 0xD4, 0xDF, 0xF3, + 0xF2, 0xDD, 0xD7, 0xEB, 0xC9, 0xC1, 0xC0, 0xBF, + 0xAA, 0xAA, 0xAA, 0xBE, 0xC3, 0xF0, 0xD2, 0xD2, + 0xD2, 0x51, 0x62, 0xCC, 0xD0, 0xCC, 0x61, 0xD3, + 0xCF, 0xCE, 0xD2, 0x48, 0x5A, 0x61, 0xCC, 0xCE, + 0x5F, 0xD9, 0xD5, 0xD1, 0x63, 0x44, 0x56, 0x56, + 0xDC, 0xD9, 0xD4, 0x5E, 0x42, 0x4A, 0x4C, 0x57, + 0x5D, 0xD8, 0xE0, 0xD8, 0xDC, 0xCB, 0x66, 0xEC, + 0xE8, 0xC3, 0xC3, 0xC3, 0xC3, 0xC9, 0xE8, 0xEA, + 0xF6, 0x50, 0x3E, 0x58, 0x57, 0x5A, 0xD6, 0xD4, + 0xCC, 0x4B, 0x53, 0x5C, 0x64, 0xD1, 0xDF, 0xF3, + 0xF1, 0xDE, 0xD9, 0xF6, 0xEB, 0xC9, 0xC1, 0xC1, + 0xC0, 0xC0, 0xC1, 0xC9, 0xF0, 0xD6, 0xCD, 0xD6, + 0xD3, 0x53, 0xCB, 0xCF, 0xCD, 0x5F, 0x5F, 0xCE, + 0xCF, 0xCD, 0xD0, 0x47, 0x5F, 0xCB, 0xCE, 0xCD, + 0x63, 0xD6, 0xD3, 0xD1, 0x63, 0x3F, 0x58, 0x58, + 0xDB, 0xDC, 0xDA, 0x65, 0x3E, 0x49, 0x49, 0x4D, + 0x49, 0xDC, 0xDF, 0xE0, 0xDE, 0xD5, 0x47, 0x47, + 0x46, 0x6B, 0xEB, 0xEA, 0xE9, 0xEA, 0xEB, 0xF6, + 0xD0, 0x57, 0x57, 0x47, 0x47, 0x5B, 0xD4, 0xD4, + 0xCD, 0x44, 0x3E, 0x4B, 0x50, 0x4B, 0x51, 0xD5, + 0xDB, 0xD8, 0xDE, 0x4B, 0xF6, 0xF6, 0xEA, 0xE9, + 0xE8, 0xEA, 0xEB, 0x67, 0x5E, 0xCC, 0xD6, 0xDC, + 0xD5, 0x58, 0xCE, 0xCE, 0x62, 0x50, 0xCC, 0xD3, + 0xD2, 0xCD, 0xCD, 0x4B, 0x64, 0xCE, 0xCE, 0x64, + 0xCC, 0xD3, 0xD2, 0xD2, 0x61, 0x47, 0x5D, 0x5C, + 0xDD, 0xDD, 0xD9, 0xD1, 0x4C, 0x47, 0x49, 0x4A, + 0x4B, 0xD1, 0xD8, 0xE0, 0xDF, 0xDD, 0x5D, 0x4A, + 0x48, 0x52, 0x51, 0x3F, 0xF6, 0xEC, 0xE0, 0xE0, + 0xD3, 0x5E, 0x5F, 0x50, 0x4B, 0x50, 0xCB, 0xCE, + 0x64, 0x45, 0x4C, 0x57, 0x57, 0x58, 0x52, 0xD6, + 0xD3, 0xDE, 0xDF, 0xD1, 0x3E, 0x4B, 0xF6, 0xF6, + 0xEC, 0x66, 0x53, 0x43, 0x56, 0xD1, 0xD9, 0xDE, + 0xD4, 0x5E, 0xCE, 0xCC, 0x5B, 0x2C, 0xD4, 0xD5, + 0xD2, 0xD0, 0x63, 0x5D, 0xCD, 0xD0, 0xCD, 0x5E, + 0xD0, 0xCF, 0xCE, 0xD2, 0x5E, 0x50, 0x60, 0x5D, + 0xDE, 0xDD, 0xDC, 0xD7, 0x5D, 0x45, 0x47, 0x3E, + 0x4B, 0x5E, 0xDE, 0xDF, 0xE0, 0xD8, 0xCF, 0x3E, + 0x45, 0x51, 0x58, 0x42, 0xCB, 0xDA, 0xDE, 0xD8, + 0xD2, 0x61, 0xCC, 0xCF, 0xD6, 0xDA, 0xDA, 0xD5, + 0xD0, 0x50, 0x44, 0x57, 0x57, 0x58, 0x45, 0xD1, + 0xD1, 0xD7, 0xDF, 0xDF, 0xD7, 0xCF, 0x64, 0x60, + 0xCE, 0xCE, 0xCE, 0x63, 0xCF, 0xDA, 0xDE, 0xD9, + 0xCF, 0x63, 0xCD, 0x63, 0x4D, 0x4B, 0xD6, 0xD5, + 0xCE, 0xD3, 0x60, 0xCB, 0xD0, 0xD0, 0x65, 0x47, + 0xD0, 0xCC, 0xCC, 0xD1, 0x59, 0x5D, 0x63, 0x5E, + 0xDD, 0xDD, 0xDE, 0xDC, 0xCB, 0x40, 0x48, 0x45, + 0x3E, 0x3E, 0xD9, 0xDF, 0xE0, 0xDF, 0xDA, 0x51, + 0x4C, 0x48, 0x56, 0x4C, 0x5B, 0xD2, 0xDA, 0xDB, + 0xCB, 0x5F, 0xD0, 0xCC, 0xDC, 0xF0, 0xF3, 0xE0, + 0xDD, 0xCC, 0x41, 0x50, 0x57, 0x57, 0x4B, 0x5D, + 0xD3, 0xD1, 0xDE, 0xDF, 0xDE, 0xD7, 0xD0, 0xD0, + 0xD5, 0xD6, 0xD6, 0xCE, 0xD7, 0xDC, 0xDA, 0xD5, + 0x60, 0x63, 0x64, 0x5E, 0x47, 0x61, 0xD5, 0xD2, + 0xCF, 0xD0, 0x59, 0xCD, 0xD1, 0xCF, 0x61, 0x4D, + 0xCC, 0xCE, 0xCD, 0xD0, 0x52, 0x61, 0x64, 0x60, + 0xDA, 0xDE, 0xDE, 0xDD, 0xD1, 0x4B, 0x4A, 0x45, + 0x3E, 0x41, 0xCD, 0xDE, 0xE0, 0xF1, 0xDE, 0x63, + 0x4A, 0x4A, 0x4A, 0x4B, 0x50, 0xCB, 0xD4, 0xD7, + 0x5E, 0x54, 0x62, 0xD3, 0xD4, 0xF0, 0xF3, 0xF3, + 0xF2, 0xDE, 0x61, 0x40, 0x49, 0x56, 0x4D, 0x3E, + 0x4B, 0xCE, 0xD9, 0xD8, 0xD9, 0xD5, 0xCF, 0xD2, + 0xD6, 0xD6, 0xD1, 0xD1, 0xD7, 0xD5, 0xCF, 0xD0, + 0x54, 0x64, 0x63, 0x56, 0x2C, 0xCB, 0xD1, 0xCC, + 0xD3, 0xCD, 0x54, 0xCF, 0xD1, 0xCE, 0x5E, 0x5C, + 0xCE, 0xCE, 0xCE, 0xCB, 0x4B, 0x63, 0xCC, 0x61, + 0xD4, 0xDC, 0xDE, 0xDE, 0xDA, 0x5D, 0x45, 0x45, + 0x48, 0x3F, 0x52, 0xD9, 0xD8, 0xDF, 0xDF, 0xD2, + 0x52, 0x4B, 0x3E, 0x2E, 0x47, 0x60, 0xCF, 0xD3, + 0x59, 0x48, 0x50, 0x5E, 0xCC, 0xDE, 0xF2, 0xF2, + 0xF3, 0xF3, 0xDD, 0x5D, 0x3E, 0x48, 0x47, 0x47, + 0x58, 0xD1, 0xDA, 0xDA, 0xD5, 0xD1, 0xCD, 0xD2, + 0xD3, 0xCF, 0xD3, 0xD1, 0xCD, 0xD3, 0xD2, 0x5E, + 0x52, 0x64, 0x60, 0x4B, 0x45, 0x61, 0xCD, 0xD3, + 0xD3, 0x64, 0x61, 0xD0, 0xD0, 0x64, 0x45, 0x63, + 0xD0, 0xCE, 0xD0, 0x60, 0x56, 0xCB, 0xCC, 0x62, + 0xCE, 0xDA, 0xDE, 0xD8, 0xDD, 0xCC, 0x45, 0x49, + 0x3E, 0x47, 0x42, 0xD1, 0xDC, 0xD8, 0xD8, 0xD3, + 0x5D, 0x4C, 0x49, 0x3F, 0x47, 0x59, 0xCD, 0xCF, + 0x59, 0x2E, 0x48, 0x47, 0x52, 0x63, 0xF0, 0xF2, + 0xF3, 0xF3, 0xF2, 0xDA, 0x52, 0x4B, 0x52, 0x58, + 0x5E, 0x63, 0xD0, 0xD0, 0xD0, 0xCF, 0xCE, 0xCE, + 0xCF, 0x65, 0x61, 0xD6, 0xD6, 0xD6, 0xCB, 0x4B, + 0x61, 0x62, 0x5D, 0x43, 0x4B, 0x61, 0xD0, 0xD4, + 0xD1, 0x61, 0xCE, 0xD2, 0xCD, 0x5E, 0x4A, 0xCE, + 0xD0, 0xCC, 0xD0, 0x59, 0x61, 0xCC, 0xCC, 0x62, + 0xD1, 0xD5, 0xDE, 0xD8, 0xDD, 0xCF, 0x4B, 0x4A, + 0x45, 0x3E, 0x2D, 0xCB, 0xDC, 0xDE, 0xD8, 0xD5, + 0x60, 0x54, 0x51, 0x4C, 0x4D, 0x5C, 0xCC, 0xCE, + 0x5A, 0x2C, 0x50, 0x53, 0x3E, 0x59, 0xD8, 0xF3, + 0xF2, 0xF3, 0xF3, 0xE0, 0x5E, 0x4A, 0x4C, 0x53, + 0x5E, 0x63, 0xCC, 0xCC, 0xCC, 0xCD, 0xCF, 0xD3, + 0x62, 0x53, 0xD6, 0xD6, 0xD6, 0xD6, 0x5B, 0x48, + 0x64, 0x63, 0x59, 0x44, 0x57, 0x63, 0xD2, 0xD3, + 0xD0, 0x5E, 0xD0, 0xD1, 0xCB, 0x58, 0x4C, 0xCF, + 0xCF, 0xCE, 0xCE, 0x57, 0x63, 0xCC, 0xCD, 0x57, +}; + diff -Nru a/drivers/sound/dmasound/Makefile b/drivers/sound/dmasound/Makefile --- a/drivers/sound/dmasound/Makefile Sat Jun 16 06:00:11 2001 +++ b/drivers/sound/dmasound/Makefile Sat Jun 16 06:00:11 2001 @@ -7,15 +7,21 @@ # # Note 2! The CFLAGS definitions are now in the main makefile... +O_TARGET = dmasound.o + export-objs := dmasound_core.o -obj-$(CONFIG_DMASOUND_ATARI) += dmasound_core.o dmasound_atari.o -obj-$(CONFIG_DMASOUND_AWACS) += dmasound_core.o dmasound_awacs.o -obj-$(CONFIG_DMASOUND_PAULA) += dmasound_core.o dmasound_paula.o -obj-$(CONFIG_DMASOUND_Q40) += dmasound_core.o dmasound_q40.o - -ifeq ($(CONFIG_DMASOUND),y) - O_TARGET = dmasound.o -endif +list-multi := dmasound_pmac.o + +dmasound_pmac-objs := dmasound_awacs.o + +obj-$(CONFIG_DMASOUND) += dmasound_core.o +obj-$(CONFIG_DMASOUND_ATARI) += dmasound_atari.o +obj-$(CONFIG_DMASOUND_AWACS) += dmasound_pmac.o +obj-$(CONFIG_DMASOUND_PAULA) += dmasound_paula.o +obj-$(CONFIG_DMASOUND_Q40) += dmasound_q40.o include $(TOPDIR)/Rules.make + +dmasound_pmac.o: $(dmasound_pmac-objs) + $(LD) $(EXTRA_LDFLAGS) -r -o $@ $(dmasound_pmac-objs) diff -Nru a/drivers/sound/dmasound/dmasound.h b/drivers/sound/dmasound/dmasound.h --- a/drivers/sound/dmasound/dmasound.h Sat Jun 16 06:00:06 2001 +++ b/drivers/sound/dmasound/dmasound.h Sat Jun 16 06:00:06 2001 @@ -29,6 +29,9 @@ #define SND_DEV_SNDPROC 9 /* /dev/sndproc for programmable devices */ #define SND_DEV_PSS SND_DEV_SNDPROC +#define DMASOUND_CORE_REVISION 1 +#define DMASOUND_CORE_EDITION 1 + #define DSP_DEFAULT_SPEED 8000 #define ON 1 @@ -121,12 +124,13 @@ void (*record)(void); /* optional */ void (*mixer_init)(void); /* optional */ int (*mixer_ioctl)(u_int, u_long); /* optional */ - void (*write_sq_setup)(void); /* optional */ - void (*read_sq_setup)(void); /* optional */ + int (*write_sq_setup)(void); /* optional */ + int (*read_sq_setup)(void); /* optional */ void (*sq_open)(void); /* optional */ int (*state_info)(char *); /* optional */ void (*abort_read)(void); /* optional */ int min_dsp_speed; + int version; } MACHINE; diff -Nru a/drivers/sound/dmasound/dmasound_atari.c b/drivers/sound/dmasound/dmasound_atari.c --- a/drivers/sound/dmasound/dmasound_atari.c Sat Jun 16 06:00:02 2001 +++ b/drivers/sound/dmasound/dmasound_atari.c Sat Jun 16 06:00:02 2001 @@ -1438,9 +1438,10 @@ return AtaMixerIoctl(cmd, arg); } -static void AtaWriteSqSetup(void) +static int AtaWriteSqSetup(void) { write_sq_ignore_int = 0; + return 0; } static void AtaSqOpen(void) diff -Nru a/drivers/sound/dmasound/dmasound_awacs.c b/drivers/sound/dmasound/dmasound_awacs.c --- a/drivers/sound/dmasound/dmasound_awacs.c Sat Jun 16 06:00:11 2001 +++ b/drivers/sound/dmasound/dmasound_awacs.c Sat Jun 16 06:00:11 2001 @@ -4,7 +4,14 @@ * * PowerMac `AWACS' and `Burgundy' DMA Sound Driver * - * See linux/drivers/sound/dmasound/dmasound_core.c for copyright and credits + * See linux/drivers/sound/dmasound/dmasound_core.c for copyright and + * history prior to 2001/01/26. + * + * 26/01/2001 ed 0.1 Iain Sandoe + * - added version info. + * - moved dbdma command buffer allocation to PMacXXXSqSetup() + * - fixed up beep dbdma cmd buffers + * */ @@ -18,6 +25,7 @@ #include #include #include +#include #ifdef CONFIG_ADB_CUDA #include #endif @@ -36,6 +44,8 @@ #include "awacs_defs.h" #include "dmasound.h" +#define DMASOUND_AWACS_REVISION 0 +#define DMASOUND_AWACS_EDITION 1 /* * Interrupt numbers and addresses, obtained from the device tree. @@ -54,15 +64,18 @@ int awacs_device_id = 0; int awacs_has_iic = 0; #define AWACS_BURGUNDY 100 /* fake revision # for burgundy */ +#define AWACS_DACA 80 /* fake revision # for daca (ibook)? */ /* * Space for the DBDMA command blocks. */ static void *awacs_tx_cmd_space; static volatile struct dbdma_cmd *awacs_tx_cmds; +static int number_of_tx_cmd_buffers = 0; static void *awacs_rx_cmd_space; static volatile struct dbdma_cmd *awacs_rx_cmds; +static int number_of_rx_cmd_buffers = 0; /* * Cached values of AWACS registers (we can't read them). @@ -121,6 +134,7 @@ static int beep_playing = 0; static int awacs_beep_state = 0; static short *beep_buf; +static void *beep_dbdma_cmd_space; static volatile struct dbdma_cmd *beep_dbdma_cmd; static void (*orig_mksound)(unsigned int, unsigned int); static int is_pbook_3400; @@ -246,8 +260,8 @@ static int PMacMixerIoctl(u_int cmd, u_long arg); -static void PMacWriteSqSetup(void); -static void PMacReadSqSetup(void); +static int PMacWriteSqSetup(void); +static int PMacReadSqSetup(void); static void PMacAbortRead(void); @@ -850,12 +864,16 @@ free_irq(awacs_irq, 0); free_irq(awacs_tx_irq, 0); free_irq(awacs_rx_irq, 0); - kfree(awacs_tx_cmd_space); + if (awacs_tx_cmd_space) + kfree(awacs_tx_cmd_space); if (awacs_rx_cmd_space) kfree(awacs_rx_cmd_space); - if (beep_buf) + if (beep_dbdma_cmd_space) + kfree(beep_dbdma_cmd_space); + if (beep_buf) { kfree(beep_buf); - kd_mksound = orig_mksound; + kd_mksound = orig_mksound; + } #ifdef CONFIG_PMAC_PBOOK pmu_unregister_sleep_notifier(&awacs_sleep_notifier); #endif @@ -1017,6 +1035,8 @@ if (awacs_beep_state) { /* sound takes precedence over beeps */ out_le32(&awacs_txdma->control, (RUN|PAUSE|FLUSH|WAKE) << 16); + while (in_le32(&awacs_txdma->status) & RUN) + udelay(1); out_le32(&awacs->control, (in_le32(&awacs->control) & ~0x1f00) | (awacs_rate_index << 8)); @@ -1043,6 +1063,7 @@ out_le16(&cp->command, OUTPUT_MORE + INTR_ALWAYS); if (write_sq.active == 0) out_le32(&awacs_txdma->cmdptr, virt_to_bus(cp)); + (void)in_le32(&awacs_txdma->status); out_le32(&awacs_txdma->control, ((RUN|WAKE) << 16) + (RUN|WAKE)); ++write_sq.active; } @@ -1099,7 +1120,6 @@ static void pmac_awacs_rx_intr(int irq, void *devid, struct pt_regs *regs) { - /* For some reason on my PowerBook G3, I get one interrupt * when the interrupt vector is installed (like something is * pending). This happens before the dbdma is initialize by @@ -1167,7 +1187,7 @@ static void awacs_write(int val) { - if (awacs_revision >= AWACS_BURGUNDY) + if (awacs_revision >= AWACS_DACA) return; while (in_le32(&awacs->codec_ctrl) & MASK_NEWECMD) ; /* XXX should have timeout */ @@ -1182,6 +1202,8 @@ if (beep_playing) { st_le16(&beep_dbdma_cmd->command, DBDMA_STOP); out_le32(&awacs_txdma->control, (RUN|PAUSE|FLUSH|WAKE) << 16); + while (in_le32(&awacs_txdma->status) & RUN) + udelay(1); out_le32(&awacs->control, (in_le32(&awacs->control) & ~0x1f00) | (awacs_rate_index << 8)); @@ -1207,6 +1229,8 @@ static int beep_nsamples_cache; static int beep_volume_cache; + if (beep_buf == NULL) + return; for (i = 0; i < 8 && awacs_freqs[i] >= BEEP_SRATE; ++i) if (awacs_freqs_ok[i]) beep_speed = i; @@ -1264,11 +1288,14 @@ save_flags(flags); cli(); if (beep_playing) { /* i.e. haven't been terminated already */ out_le32(&awacs_txdma->control, (RUN|WAKE|FLUSH|PAUSE) << 16); + while (in_le32(&awacs_txdma->status) & RUN) + udelay(1); out_le32(&awacs->control, (in_le32(&awacs->control) & ~0x1f00) | (beep_speed << 8)); out_le32(&awacs->byteswap, 0); out_le32(&awacs_txdma->cmdptr, virt_to_bus(beep_dbdma_cmd)); + (void)in_le32(&awacs_txdma->status); out_le32(&awacs_txdma->control, RUN | (RUN << 16)); } restore_flags(flags); @@ -1558,13 +1585,13 @@ static void awacs_enable_amp(int spkr_vol) { +#ifdef CONFIG_ADB_CUDA struct adb_request req; awacs_spkr_vol = spkr_vol; if (sys_ctrler != SYS_CTRLER_CUDA) return; -#ifdef CONFIG_ADB_CUDA /* turn on headphones */ cuda_request(&req, NULL, 5, CUDA_PACKET, CUDA_GET_SET_IIC, 0x8a, 4, 0); @@ -1871,11 +1898,53 @@ } -static void PMacWriteSqSetup(void) +/* Write/Read sq setup functions: + Check to see if we have enough (or any) dbdma cmd buffers for the + user's fragment settings. If not, allocate some. If this fails we will + point at the beep buffer - as an emergency provision - to stop dma tromping + on some random bit of memory (if someone lets it go anyway). + The command buffers are then set up to point to the fragment buffers + (allocated elsewhere). We need n+1 commands the last of which holds + a NOP + loop to start. +*/ + +static int PMacWriteSqSetup(void) { int i; volatile struct dbdma_cmd *cp; + /* stop the controller from doing any output - if it isn't already. + it _should_ be before this is called anyway */ + + out_le32(&awacs_txdma->control, (RUN|PAUSE|FLUSH|WAKE) << 16); + while (in_le32(&awacs_txdma->status) & RUN) + udelay(1); + + if ((write_sq.numBufs+1) > number_of_tx_cmd_buffers) { + if (awacs_tx_cmd_space) + kfree(awacs_tx_cmd_space); + number_of_tx_cmd_buffers = 0; + + /* we need nbufs + 1 (for the loop) and we should request + 1 again + because the DBDMA_ALIGN might pull the start up by up to + sizeof(struct dbdma_cmd) - 4 (assuming kmalloc aligns 32 bits). + */ + + awacs_tx_cmd_space = kmalloc + ((write_sq.numBufs + 1 + 1) * sizeof(struct dbdma_cmd), + GFP_KERNEL); + if (awacs_tx_cmd_space == NULL) { + /* don't leave it dangling - nasty but better than a random address */ + out_le32(&awacs_txdma->cmdptr, virt_to_bus(beep_dbdma_cmd)); + printk(KERN_ERR + "dmasound_pmac: can't allocate dbdma cmd buffers, driver disabled\n"); + return -ENOMEM; + } + awacs_tx_cmds = (volatile struct dbdma_cmd *) + DBDMA_ALIGN(awacs_tx_cmd_space); + number_of_tx_cmd_buffers = write_sq.numBufs + 1; + } + cp = awacs_tx_cmds; memset((void *)cp, 0, (write_sq.numBufs+1) * sizeof(struct dbdma_cmd)); for (i = 0; i < write_sq.numBufs; ++i, ++cp) { @@ -1883,15 +1952,47 @@ } st_le16(&cp->command, DBDMA_NOP + BR_ALWAYS); st_le32(&cp->cmd_dep, virt_to_bus(awacs_tx_cmds)); - out_le32(&awacs_txdma->control, (RUN|PAUSE|FLUSH|WAKE) << 16); + /* point the controller at the command stack - ready to go */ out_le32(&awacs_txdma->cmdptr, virt_to_bus(awacs_tx_cmds)); + return 0; } -static void PMacReadSqSetup(void) +static int PMacReadSqSetup(void) { int i; volatile struct dbdma_cmd *cp; + /* stop the controller from doing any input - if it isn't already. + it _should_ be before this is called anyway */ + + out_le32(&awacs_rxdma->control, (RUN|PAUSE|FLUSH|WAKE) << 16); + while (in_le32(&awacs_rxdma->status) & RUN) + udelay(1); + + if( (read_sq.numBufs+1) > number_of_rx_cmd_buffers ) { + if (awacs_rx_cmd_space) + kfree(awacs_rx_cmd_space); + number_of_rx_cmd_buffers = 0; + + /* we need nbufs + 1 (for the loop) and we should request + 1 again + because the DBDMA_ALIGN might pull the start up by up to + sizeof(struct dbdma_cmd) - 4 (assuming kmalloc aligns 32 bits). + */ + + awacs_rx_cmd_space = kmalloc + ((read_sq.numBufs + 1 + 1) * sizeof(struct dbdma_cmd), + GFP_KERNEL); + if (awacs_rx_cmd_space == NULL) { + /* don't leave it dangling - nasty but better than a random address */ + out_le32(&awacs_rxdma->cmdptr, virt_to_bus(beep_dbdma_cmd)); + printk(KERN_ERR + "dmasound_pmac: can't allocate dbdma cmd buffers, driver disabled\n"); + return -ENOMEM; + } + awacs_rx_cmds = (volatile struct dbdma_cmd *) + DBDMA_ALIGN(awacs_rx_cmd_space); + number_of_rx_cmd_buffers = read_sq.numBufs+1 ; + } cp = awacs_rx_cmds; memset((void *)cp, 0, (read_sq.numBufs+1) * sizeof(struct dbdma_cmd)); @@ -1907,14 +2008,9 @@ */ st_le16(&cp->command, DBDMA_NOP + BR_ALWAYS); st_le32(&cp->cmd_dep, virt_to_bus(awacs_rx_cmds)); - - /* Don't start until the first read is done. - * This will also abort any operations in progress if the DMA - * happens to be running (and it shouldn't). - */ - out_le32(&awacs_rxdma->control, (RUN|PAUSE|FLUSH|WAKE) << 16); + /* point the controller at the command stack - ready to go */ out_le32(&awacs_rxdma->cmdptr, virt_to_bus(awacs_rx_cmds)); - + return 0; } static void PMacAbortRead(void) @@ -1937,7 +2033,7 @@ static MACHINE machPMac = { name: awacs_name, - name2: "AWACS", + name2: "Built-in Sound", open: PMacOpen, release: PMacRelease, dma_alloc: PMacAlloc, @@ -1956,7 +2052,8 @@ write_sq_setup: PMacWriteSqSetup, read_sq_setup: PMacReadSqSetup, abort_read: PMacAbortRead, - min_dsp_speed: 8000 + min_dsp_speed: 8000, + version: ((DMASOUND_AWACS_REVISION<<8) + DMASOUND_AWACS_EDITION) }; @@ -1966,6 +2063,7 @@ int __init dmasound_awacs_init(void) { struct device_node *np; + int vol; if (_machine != _MACH_Pmac) return -ENODEV; @@ -1974,203 +2072,218 @@ awacs_revision = 0; np = find_devices("awacs"); if (np == 0) { + unsigned int *prop, l, i; + /* * powermac G3 models have a node called "davbus" * with a child called "sound". */ struct device_node *sound; np = find_devices("davbus"); + /* + * if we didn't find a davbus device, try 'i2s-a' since + * this seems to be what iBooks have + */ + if (np == NULL) { + np = find_devices("i2s-a"); + } + if (np == NULL) + return -ENODEV; sound = find_devices("sound"); - if (sound != 0 && sound->parent == np) { - unsigned int *prop, l, i; - prop = (unsigned int *) - get_property(sound, "sub-frame", 0); - if (prop != 0 && *prop >= 0 && *prop < 16) - awacs_subframe = *prop; - if (device_is_compatible(sound, "burgundy")) - awacs_revision = AWACS_BURGUNDY; - /* This should be verified on older screamers */ - if (device_is_compatible(sound, "screamer")) - awacs_is_screamer = 1; - prop = (unsigned int *)get_property(sound, "device-id", 0); - if (prop != 0) - awacs_device_id = *prop; - awacs_has_iic = (find_devices("perch") != NULL); - - /* look for a property saying what sample rates - are available */ - for (i = 0; i < 8; ++i) - awacs_freqs_ok[i] = 0; + while (sound != 0 && sound->parent != np) + sound = sound->next; + if (sound == 0) + return -ENODEV; + prop = (unsigned int *) get_property(sound, "sub-frame", 0); + if (prop != 0 && *prop >= 0 && *prop < 16) + awacs_subframe = *prop; + if (device_is_compatible(sound, "burgundy")) + awacs_revision = AWACS_BURGUNDY; + if (device_is_compatible(sound, "daca")) + awacs_revision = AWACS_DACA; + /* This should be verified on older screamers */ + if (device_is_compatible(sound, "screamer")) + awacs_is_screamer = 1; + prop = (unsigned int *)get_property(sound, "device-id", 0); + if (prop != 0) + awacs_device_id = *prop; + awacs_has_iic = (find_devices("perch") != NULL); + + /* look for a property saying what sample rates + are available */ + for (i = 0; i < 8; ++i) + awacs_freqs_ok[i] = 0; + prop = (unsigned int *)get_property(sound, "sample-rates", &l); + if (prop == 0) prop = (unsigned int *) get_property - (sound, "sample-rates", &l); - if (prop == 0) - prop = (unsigned int *) get_property - (sound, "output-frame-rates", &l); - if (prop != 0) { - for (l /= sizeof(int); l > 0; --l) { - /* sometimes the rate is in the - high-order 16 bits (?) */ - unsigned int r = *prop++; - if (r >= 0x10000) - r >>= 16; - for (i = 0; i < 8; ++i) { - if (r == awacs_freqs[i]) { - awacs_freqs_ok[i] = 1; - break; - } + (sound, "output-frame-rates", &l); + if (prop != 0) { + for (l /= sizeof(int); l > 0; --l) { + /* sometimes the rate is in the + high-order 16 bits (?) */ + unsigned int r = *prop++; + if (r >= 0x10000) + r >>= 16; + for (i = 0; i < 8; ++i) { + if (r == awacs_freqs[i]) { + awacs_freqs_ok[i] = 1; + break; } } - } else { - /* assume just 44.1k is OK */ - awacs_freqs_ok[0] = 1; } + } else { + /* assume just 44.1k is OK */ + awacs_freqs_ok[0] = 1; } } - if (np != NULL && np->n_addrs >= 3 && np->n_intrs >= 3) { - int vol; - dmasound.mach = machPMac; - - awacs = (volatile struct awacs_regs *) - ioremap(np->addrs[0].address, 0x80); - awacs_txdma = (volatile struct dbdma_regs *) - ioremap(np->addrs[1].address, 0x100); - awacs_rxdma = (volatile struct dbdma_regs *) - ioremap(np->addrs[2].address, 0x100); - - awacs_irq = np->intrs[0].line; - awacs_tx_irq = np->intrs[1].line; - awacs_rx_irq = np->intrs[2].line; - - awacs_tx_cmd_space = kmalloc((write_sq.numBufs + 4) * sizeof(struct dbdma_cmd), - GFP_KERNEL); - if (awacs_tx_cmd_space == NULL) { - printk(KERN_ERR "DMA sound driver: Not enough buffer memory, driver disabled!\n"); - return -ENOMEM; - } - awacs_node = np; -#ifdef CONFIG_PMAC_PBOOK - if (machine_is_compatible("PowerBook1,1") - || machine_is_compatible("AAPL,PowerBook1998")) { - pmu_suspend(); - feature_set(np, FEATURE_Sound_CLK_enable); - feature_set(np, FEATURE_Sound_power); - /* Shorter delay will not work */ - mdelay(1000); - pmu_resume(); - } -#endif - awacs_tx_cmds = (volatile struct dbdma_cmd *) - DBDMA_ALIGN(awacs_tx_cmd_space); + if (np->n_addrs < 3 || np->n_intrs < 3) { + printk(KERN_ERR "AWACS: can't use %s (%d addrs, %d intrs)\n", + np->full_name, np->n_addrs, np->n_intrs); + return -ENODEV; + } + dmasound.mach = machPMac; - awacs_rx_cmd_space = kmalloc((read_sq.numBufs + 4) * sizeof(struct dbdma_cmd), - GFP_KERNEL); - if (awacs_rx_cmd_space == NULL) { - printk("DMA sound driver: No memory for input"); - } - awacs_rx_cmds = (volatile struct dbdma_cmd *) - DBDMA_ALIGN(awacs_rx_cmd_space); + awacs = (volatile struct awacs_regs *) + ioremap(np->addrs[0].address, 0x80); + awacs_txdma = (volatile struct dbdma_regs *) + ioremap(np->addrs[1].address, 0x100); + awacs_rxdma = (volatile struct dbdma_regs *) + ioremap(np->addrs[2].address, 0x100); + + awacs_irq = np->intrs[0].line; + awacs_tx_irq = np->intrs[1].line; + awacs_rx_irq = np->intrs[2].line; + awacs_node = np; +#ifdef CONFIG_PMAC_PBOOK + if (machine_is_compatible("PowerBook1,1") + || machine_is_compatible("AAPL,PowerBook1998")) { + feature_set(np, FEATURE_Sound_CLK_enable); + feature_set(np, FEATURE_Sound_power); + /* Shorter delay will not work */ + mdelay(1000); + } +#endif - awacs_reg[0] = MASK_MUX_CD; - /* FIXME: Only machines with external SRS module need MASK_PAROUT */ - awacs_reg[1] = MASK_LOOPTHRU; - if (awacs_has_iic || awacs_device_id == 0x5 || /*awacs_device_id == 0x8 - || */awacs_device_id == 0xb) - awacs_reg[1] |= MASK_PAROUT; - /* get default volume from nvram */ - vol = (~nvram_read_byte(0x1308) & 7) << 1; - awacs_reg[2] = vol + (vol << 6); - awacs_reg[4] = vol + (vol << 6); - awacs_reg[5] = 0; - awacs_reg[6] = 0; - awacs_reg[7] = 0; - out_le32(&awacs->control, 0x11); - awacs_write(awacs_reg[0] + MASK_ADDR0); - awacs_write(awacs_reg[1] + MASK_ADDR1); - awacs_write(awacs_reg[2] + MASK_ADDR2); - awacs_write(awacs_reg[4] + MASK_ADDR4); - if (awacs_is_screamer) { - awacs_write(awacs_reg[5] + MASK_ADDR5); - awacs_write(awacs_reg[6] + MASK_ADDR6); - awacs_write(awacs_reg[7] + MASK_ADDR7); + awacs_reg[0] = MASK_MUX_CD; + /* FIXME: Only machines with external SRS module need MASK_PAROUT */ + awacs_reg[1] = MASK_LOOPTHRU; + if (awacs_has_iic || awacs_device_id == 0x5 + || /*awacs_device_id == 0x8 ||*/ awacs_device_id == 0xb) + awacs_reg[1] |= MASK_PAROUT; + /* get default volume from nvram */ + vol = (~nvram_read_byte(0x1308) & 7) << 1; + awacs_reg[2] = vol + (vol << 6); + awacs_reg[4] = vol + (vol << 6); + awacs_reg[5] = 0; + awacs_reg[6] = 0; + awacs_reg[7] = 0; + out_le32(&awacs->control, 0x11); + awacs_write(awacs_reg[0] + MASK_ADDR0); + awacs_write(awacs_reg[1] + MASK_ADDR1); + awacs_write(awacs_reg[2] + MASK_ADDR2); + awacs_write(awacs_reg[4] + MASK_ADDR4); + if (awacs_is_screamer) { + awacs_write(awacs_reg[5] + MASK_ADDR5); + awacs_write(awacs_reg[6] + MASK_ADDR6); + awacs_write(awacs_reg[7] + MASK_ADDR7); + } + + /* Initialize recent versions of the awacs */ + if (awacs_revision == 0) { + awacs_revision = (in_le32(&awacs->codec_stat) >> 12) & 0xf; + if (awacs_revision == 3) { + mdelay(100); + awacs_write(0x6000); + mdelay(2); + awacs_write(awacs_reg[1] + MASK_ADDR1); + awacs_enable_amp(100 * 0x101); } + } + if (awacs_revision >= AWACS_BURGUNDY) + awacs_burgundy_init(); - /* Initialize recent versions of the awacs */ - if (awacs_revision == 0) { - awacs_revision = - (in_le32(&awacs->codec_stat) >> 12) & 0xf; - if (awacs_revision == 3) { - mdelay(100); - awacs_write(0x6000); - mdelay(2); - awacs_write(awacs_reg[1] + MASK_ADDR1); - awacs_enable_amp(100 * 0x101); - } - } - if (awacs_revision >= AWACS_BURGUNDY) - awacs_burgundy_init(); + /* Reset dbdma channels */ + out_le32(&awacs_txdma->control, (RUN|PAUSE|FLUSH|WAKE|DEAD) << 16); + while (in_le32(&awacs_txdma->status) & RUN) + udelay(1); + out_le32(&awacs_rxdma->control, (RUN|PAUSE|FLUSH|WAKE|DEAD) << 16); + while (in_le32(&awacs_rxdma->status) & RUN) + udelay(1); + + /* Initialize beep stuff */ + /* need to ask for two buffers to cater for potential pull-up + by DBDMA_ALIGN + */ + beep_dbdma_cmd_space = kmalloc((1 + 1) * sizeof(struct dbdma_cmd), + GFP_KERNEL); + if (beep_dbdma_cmd_space == NULL) { + printk(KERN_ERR "dmasound_pmac: no beep dbdma cmd space\n") ; + return -ENOMEM; + } + beep_dbdma_cmd = (volatile struct dbdma_cmd *) + DBDMA_ALIGN(beep_dbdma_cmd_space); + beep_buf = (short *) kmalloc(BEEP_BUFLEN * 4, GFP_KERNEL); + if (beep_buf == NULL) { + printk(KERN_ERR "dmasound_pmac: no memory for beep buffer\n"); + kfree(beep_dbdma_cmd_space); + return -ENOMEM; + } + /* OK, we should be safe to claim the mksound vector now */ + orig_mksound = kd_mksound; + kd_mksound = awacs_mksound; - /* Initialize beep stuff */ - beep_dbdma_cmd = awacs_tx_cmds + (write_sq.numBufs + 1); - orig_mksound = kd_mksound; - kd_mksound = awacs_mksound; - beep_buf = (short *) kmalloc(BEEP_BUFLEN * 4, GFP_KERNEL); - if (beep_buf == NULL) - printk(KERN_WARNING "dmasound: no memory for " - "beep buffer\n"); #ifdef CONFIG_PMAC_PBOOK - pmu_register_sleep_notifier(&awacs_sleep_notifier); + pmu_register_sleep_notifier(&awacs_sleep_notifier); #endif /* CONFIG_PMAC_PBOOK */ - /* Powerbooks have odd ways of enabling inputs such as - an expansion-bay CD or sound from an internal modem - or a PC-card modem. */ - if (machine_is_compatible("AAPL,3400/2400") - || machine_is_compatible("AAPL,3500")) { - is_pbook_3400 = 1; - /* - * Enable CD and PC-card sound inputs. - * This is done by reading from address - * f301a000, + 0x10 to enable the expansion-bay - * CD sound input, + 0x80 to enable the PC-card - * sound input. The 0x100 enables the SCSI bus - * terminator power. - */ - latch_base = (unsigned char *) ioremap - (0xf301a000, 0x1000); - in_8(latch_base + 0x190); - } else if (machine_is_compatible("PowerBook1,1") - || machine_is_compatible("AAPL,PowerBook1998")) { - struct device_node* mio; - macio_base = 0; - is_pbook_G3 = 1; - for (mio = np->parent; mio; mio = mio->parent) { - if (strcmp(mio->name, "mac-io") == 0 - && mio->n_addrs > 0) { - macio_base = (unsigned char *) ioremap - (mio->addrs[0].address, 0x40); - break; - } + /* Powerbooks have odd ways of enabling inputs such as + an expansion-bay CD or sound from an internal modem + or a PC-card modem. */ + if (machine_is_compatible("AAPL,3400/2400") + || machine_is_compatible("AAPL,3500")) { + is_pbook_3400 = 1; + /* + * Enable CD and PC-card sound inputs. + * This is done by reading from address + * f301a000, + 0x10 to enable the expansion-bay + * CD sound input, + 0x80 to enable the PC-card + * sound input. The 0x100 enables the SCSI bus + * terminator power. + */ + latch_base = (unsigned char *) ioremap (0xf301a000, 0x1000); + in_8(latch_base + 0x190); + + } else if (machine_is_compatible("PowerBook1,1") + || machine_is_compatible("AAPL,PowerBook1998")) { + struct device_node* mio; + macio_base = 0; + is_pbook_G3 = 1; + for (mio = np->parent; mio; mio = mio->parent) { + if (strcmp(mio->name, "mac-io") == 0 + && mio->n_addrs > 0) { + macio_base = (unsigned char *) ioremap + (mio->addrs[0].address, 0x40); + break; } - /* - * Enable CD sound input. - * The relevant bits for writing to this byte are 0x8f. - * I haven't found out what the 0x80 bit does. - * For the 0xf bits, writing 3 or 7 enables the CD - * input, any other value disables it. Values - * 1, 3, 5, 7 enable the microphone. Values 0, 2, - * 4, 6, 8 - f enable the input from the modem. - */ - if (macio_base) - out_8(macio_base + 0x37, 3); - } - sprintf(awacs_name, "PowerMac (AWACS rev %d) ", - awacs_revision); - return dmasound_init(); + } + /* + * Enable CD sound input. + * The relevant bits for writing to this byte are 0x8f. + * I haven't found out what the 0x80 bit does. + * For the 0xf bits, writing 3 or 7 enables the CD + * input, any other value disables it. Values + * 1, 3, 5, 7 enable the microphone. Values 0, 2, + * 4, 6, 8 - f enable the input from the modem. + * -- paulus. + */ + if (macio_base) + out_8(macio_base + 0x37, 3); } - return -ENODEV; + sprintf(awacs_name, "PowerMac (AWACS rev %d) ", awacs_revision); + return dmasound_init(); } static void __exit dmasound_awacs_cleanup(void) diff -Nru a/drivers/sound/dmasound/dmasound_core.c b/drivers/sound/dmasound/dmasound_core.c --- a/drivers/sound/dmasound/dmasound_core.c Sat Jun 16 06:00:12 2001 +++ b/drivers/sound/dmasound/dmasound_core.c Sat Jun 16 06:00:12 2001 @@ -103,6 +103,13 @@ * 2000/3/25 Geert Uytterhoeven: * - Integration of dmasound_q40 * - Small clean ups + * + * 2001/01/26 [rev 1.0] Iain Sandoe + * - make /dev/sndstat show revision & edition information. + * - since dmasound.mach.sq_setup() can fail on pmac its type + * has been changed to int and the returns are checked. + * [1.1] - stop missing translations from being called. + * */ @@ -117,7 +124,6 @@ #include "dmasound.h" - /* * Declarations */ @@ -480,7 +486,12 @@ default: return 0; } - return ct_func(userPtr, userCount, frame, frameUsed, frameLeft); + /* if the user has requested a non-existent translation don't try + to call it but just return 0 bytes moved + */ + if (ct_func) + return ct_func(userPtr, userCount, frame, frameUsed, frameLeft); + return 0; } @@ -606,10 +617,10 @@ } } -static void sq_setup(struct sound_queue *sq, int max_count, int max_active, - int block_size) +static int sq_setup(struct sound_queue *sq, int max_count, int max_active, + int block_size) { - void (*setup_func)(void); + int (*setup_func)(void); sq->max_count = max_count; sq->max_active = max_active; @@ -627,7 +638,8 @@ setup_func = dmasound.mach.read_sq_setup; } if (setup_func) - setup_func(); + return setup_func(); + return 0; } static inline void sq_play(void) @@ -817,7 +829,8 @@ return rc; } - sq_setup(sq, numbufs, numbufs, bufsize); + if ((rc = sq_setup(sq, numbufs, numbufs, bufsize))) + return rc; sq->open_mode = file->f_mode; } return rc; @@ -936,7 +949,7 @@ static int sq_ioctl(struct inode *inode, struct file *file, u_int cmd, u_long arg) { - int val; + int val, result; u_long fmt; int data; int size, nbufs; @@ -1013,7 +1026,9 @@ size = write_sq.bufSize; } else size = write_sq.bufSize; - sq_setup(&write_sq, write_sq.numBufs, nbufs, size); + result = sq_setup(&write_sq, write_sq.numBufs, nbufs, size); + if (result) + return result; return IOCTL_OUT(arg,write_sq.bufSize | write_sq.numBufs << 16); case SNDCTL_DSP_GETOSPACE: info.fragments = write_sq.max_active - write_sq.count; @@ -1081,9 +1096,11 @@ * /dev/sndstat */ +#define STAT_BUFF_LEN 512 + static struct { int busy; - char buf[512]; /* state.buf should not overflow! */ + char buf[STAT_BUFF_LEN]; /* state.buf should not overflow! */ int len, ptr; } state; @@ -1099,7 +1116,13 @@ state.ptr = 0; state.busy = 1; - len += sprintf(buffer+len, "%sDMA sound driver:\n", dmasound.mach.name); + len += sprintf(buffer+len, "%sDMA sound driver rev %03d :\n", + dmasound.mach.name, (DMASOUND_CORE_REVISION<<4) + + ((dmasound.mach.version>>8) & 0x0f)); + len += sprintf(buffer+len, + "Core driver edition %02d.%02d : %s driver edition %02d.%02d\n", + DMASOUND_CORE_REVISION, DMASOUND_CORE_EDITION, dmasound.mach.name2, + (dmasound.mach.version >> 8), (dmasound.mach.version & 0xff)) ; len += sprintf(buffer+len, "\tsound.format = 0x%x", dmasound.soft.format); @@ -1145,6 +1168,9 @@ write_sq.count, write_sq.rear_size); len += sprintf(buffer+len, "\tsq.active = %d sq.syncing = %d\n", write_sq.active, write_sq.syncing); + if (len >= STAT_BUFF_LEN) + printk(KERN_ERR "dmasound_core: stat buffer overflowed!\n") +; state.len = len; return 0; } @@ -1237,6 +1263,7 @@ if (irq_installed) { sound_silence(); dmasound.mach.irqcleanup(); + irq_installed = 0; } write_sq_release_buffers(); diff -Nru a/drivers/video/aty128.h b/drivers/video/aty128.h --- a/drivers/video/aty128.h Sat Jun 16 06:00:04 2001 +++ b/drivers/video/aty128.h Sat Jun 16 06:00:04 2001 @@ -267,7 +267,6 @@ #define DAC_MASK 0xFF000000 #define DAC_BLANKING 0x00000004 #define DAC_RANGE_CNTL 0x00000003 -#define DAC_RANGE_CNTL 0x00000003 #define DAC_PALETTE_ACCESS_CNTL 0x00000020 #define DAC_PDWN 0x00008000 diff -Nru a/drivers/video/aty128fb.c b/drivers/video/aty128fb.c --- a/drivers/video/aty128fb.c Sat Jun 16 06:00:06 2001 +++ b/drivers/video/aty128fb.c Sat Jun 16 06:00:06 2001 @@ -67,6 +67,9 @@ #ifdef CONFIG_FB_COMPAT_XPMAC #include #endif +#ifdef CONFIG_BOOTX_TEXT +#include +#endif /* CONFIG_BOOTX_TEXT */ #include