You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(6) |
Sep
(2) |
Oct
(43) |
Nov
(4) |
Dec
(12) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(78) |
Feb
(97) |
Mar
(29) |
Apr
(2) |
May
(22) |
Jun
(38) |
Jul
(11) |
Aug
(27) |
Sep
(40) |
Oct
(2) |
Nov
(17) |
Dec
(8) |
2002 |
Jan
|
Feb
(2) |
Mar
(1) |
Apr
(480) |
May
(456) |
Jun
(12) |
Jul
|
Aug
(1) |
Sep
|
Oct
(18) |
Nov
(3) |
Dec
(6) |
2003 |
Jan
|
Feb
(18) |
Mar
(1) |
Apr
|
May
(6) |
Jun
(147) |
Jul
(7) |
Aug
(3) |
Sep
(235) |
Oct
(10) |
Nov
(2) |
Dec
(1) |
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Andy P. <at...@us...> - 2002-04-10 18:40:30
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/sh/stboards In directory usw-pr-cvs1:/tmp/cvs-serv30858/sh/stboards Added Files: Makefile harp.h irq.c led.c mach.c pcidma.c setup.c Log Message: synch 2.4.15 commit 45 --- NEW FILE --- # # Makefile for STMicroelectronics board specific parts of the kernel # # Note! Dependencies are done automagically by 'make dep', which also # removes any old dependencies. DON'T put your own dependencies here # unless it's something special (ie not a .c file). # all: stboards.o O_TARGET := stboards.o obj-y := irq.o setup.o mach.o led.o clean: include $(TOPDIR)/Rules.make --- NEW FILE --- /* * Copyright (C) 2001 David J. Mckay (dav...@st...) * * May be copied or modified under the terms of the GNU General Public * License. See linux/COPYING for more information. * * Defintions applicable to the STMicroelectronics ST40STB1 HARP and * compatible boards. */ #if defined(CONFIG_SH_STB1_HARP) #define EPLD_BASE 0xa0800000 #define EPLD_LED (EPLD_BASE+0x000c0000) #define EPLD_INTSTAT0 (EPLD_BASE+0x00200000) #define EPLD_INTSTAT1 (EPLD_BASE+0x00240000) #define EPLD_INTMASK0 (EPLD_BASE+0x00280000) #define EPLD_INTMASK1 (EPLD_BASE+0x002c0000) #define EPLD_PAGEADDR (EPLD_BASE+0x00300000) #define EPLD_REVID1 (EPLD_BASE+0x00380000) #define EPLD_REVID2 (EPLD_BASE+0x003c0000) #define EPLD_LED_ON 1 #define EPLD_LED_OFF 0 #elif defined(CONFIG_SH_STB1_OVERDRIVE) #define EPLD_BASE 0xa7000000 #define EPLD_REVID (EPLD_BASE+0x00000000) #define EPLD_LED (EPLD_BASE+0x00040000) #define EPLD_INTMASK0 (EPLD_BASE+0x001c0000) #define EPLD_INTMASK1 (EPLD_BASE+0x00200000) #define EPLD_INTSTAT0 (EPLD_BASE+0x00240000) #define EPLD_INTSTAT1 (EPLD_BASE+0x00280000) #define EPLD_LED_ON 0 #define EPLD_LED_OFF 1 #else #error Unknown board #endif --- NEW FILE --- /* * Copyright (C) 2000 David J. Mckay (dav...@st...) * * May be copied or modified under the terms of the GNU General Public * License. See linux/COPYING for more information. * * Looks after interrupts on the HARP board. * * Bases on the IPR irq system */ #include <linux/config.h> #include <linux/init.h> #include <linux/irq.h> #include <asm/system.h> #include <asm/io.h> #include "harp.h" #define NUM_EXTERNAL_IRQS 16 // Early versions of the STB1 Overdrive required this nasty frig //#define INVERT_INTMASK_WRITES static void enable_harp_irq(unsigned int irq); static void disable_harp_irq(unsigned int irq); /* shutdown is same as "disable" */ #define shutdown_harp_irq disable_harp_irq static void mask_and_ack_harp(unsigned int); static void end_harp_irq(unsigned int irq); static unsigned int startup_harp_irq(unsigned int irq) { enable_harp_irq(irq); return 0; /* never anything pending */ } static struct hw_interrupt_type harp_irq_type = { "Harp-IRQ", startup_harp_irq, shutdown_harp_irq, enable_harp_irq, disable_harp_irq, mask_and_ack_harp, end_harp_irq }; static void disable_harp_irq(unsigned int irq) { unsigned val, flags; unsigned maskReg; unsigned mask; int pri; if (irq < 0 || irq >= NUM_EXTERNAL_IRQS) return; pri = 15 - irq; if (pri < 8) { maskReg = EPLD_INTMASK0; } else { maskReg = EPLD_INTMASK1; pri -= 8; } save_and_cli(flags); mask = ctrl_inl(maskReg); mask &= (~(1 << pri)); #if defined(INVERT_INTMASK_WRITES) mask ^= 0xff; #endif ctrl_outl(mask, maskReg); restore_flags(flags); } static void enable_harp_irq(unsigned int irq) { unsigned flags; unsigned maskReg; unsigned mask; int pri; if (irq < 0 || irq >= NUM_EXTERNAL_IRQS) return; pri = 15 - irq; if (pri < 8) { maskReg = EPLD_INTMASK0; } else { maskReg = EPLD_INTMASK1; pri -= 8; } save_and_cli(flags); mask = ctrl_inl(maskReg); mask |= (1 << pri); #if defined(INVERT_INTMASK_WRITES) mask ^= 0xff; #endif ctrl_outl(mask, maskReg); restore_flags(flags); } /* This functions sets the desired irq handler to be an overdrive type */ static void __init make_harp_irq(unsigned int irq) { disable_irq_nosync(irq); irq_desc[irq].handler = &harp_irq_type; disable_harp_irq(irq); } static void mask_and_ack_harp(unsigned int irq) { disable_harp_irq(irq); } static void end_harp_irq(unsigned int irq) { enable_harp_irq(irq); } void __init init_harp_irq(void) { int i; #if !defined(INVERT_INTMASK_WRITES) // On the harp these are set to enable an interrupt ctrl_outl(0x00, EPLD_INTMASK0); ctrl_outl(0x00, EPLD_INTMASK1); #else // On the Overdrive the data is inverted before being stored in the reg ctrl_outl(0xff, EPLD_INTMASK0); ctrl_outl(0xff, EPLD_INTMASK1); #endif for (i = 0; i < NUM_EXTERNAL_IRQS; i++) { make_harp_irq(i); } } --- NEW FILE --- /* * linux/arch/sh/stboards/led.c * * Copyright (C) 2000 Stuart Menefy <stu...@st...> * * May be copied or modified under the terms of the GNU General Public * License. See linux/COPYING for more information. * * This file contains ST40STB1 HARP and compatible code. */ #include <linux/config.h> #include <asm/io.h> #include "harp.h" /* Harp: Flash LD10 (front pannel) connected to EPLD (IC8) */ /* Overdrive: Flash LD1 (front panel) connected to EPLD (IC4) */ /* Works for HARP and overdrive */ static void mach_led(int position, int value) { if (value) { ctrl_outl(EPLD_LED_ON, EPLD_LED); } else { ctrl_outl(EPLD_LED_OFF, EPLD_LED); } } #ifdef CONFIG_HEARTBEAT #include <linux/sched.h> /* acts like an actual heart beat -- ie thump-thump-pause... */ void heartbeat_harp(void) { static unsigned cnt = 0, period = 0, dist = 0; if (cnt == 0 || cnt == dist) mach_led( -1, 1); else if (cnt == 7 || cnt == dist+7) mach_led( -1, 0); if (++cnt > period) { cnt = 0; /* The hyperbolic function below modifies the heartbeat period * length in dependency of the current (5min) load. It goes * through the points f(0)=126, f(1)=86, f(5)=51, * f(inf)->30. */ period = ((672<<FSHIFT)/(5*avenrun[0]+(7<<FSHIFT))) + 30; dist = period / 4; } } #endif --- NEW FILE --- /* * linux/arch/sh/stboards/mach.c * * Copyright (C) 2000 Stuart Menefy (stu...@st...) * * May be copied or modified under the terms of the GNU General Public * License. See linux/COPYING for more information. * * Machine vector for the STMicroelectronics STB1 HARP and compatible boards */ #include <linux/init.h> #include <asm/machvec.h> #include <asm/rtc.h> #include <asm/machvec_init.h> #include <asm/io_hd64465.h> #include <asm/hd64465.h> void setup_harp(void); void init_harp_irq(void); void heartbeat_harp(void); /* * The Machine Vector */ struct sh_machine_vector mv_harp __initmv = { mv_name: "STB1 Harp", mv_nr_irqs: 89 + HD64465_IRQ_NUM, mv_inb: hd64465_inb, mv_inw: hd64465_inw, mv_inl: hd64465_inl, mv_outb: hd64465_outb, mv_outw: hd64465_outw, mv_outl: hd64465_outl, mv_inb_p: hd64465_inb_p, mv_inw_p: hd64465_inw, mv_inl_p: hd64465_inl, mv_outb_p: hd64465_outb_p, mv_outw_p: hd64465_outw, mv_outl_p: hd64465_outl, mv_insb: hd64465_insb, mv_insw: hd64465_insw, mv_insl: hd64465_insl, mv_outsb: hd64465_outsb, mv_outsw: hd64465_outsw, mv_outsl: hd64465_outsl, mv_readb: generic_readb, mv_readw: generic_readw, mv_readl: generic_readl, mv_writeb: generic_writeb, mv_writew: generic_writew, mv_writel: generic_writel, mv_ioremap: generic_ioremap, mv_iounmap: generic_iounmap, mv_isa_port2addr: hd64465_isa_port2addr, mv_init_arch: setup_harp, #ifdef CONFIG_PCI mv_init_irq: init_harp_irq, #endif #ifdef CONFIG_HEARTBEAT mv_heartbeat: heartbeat_harp, #endif mv_rtc_gettimeofday: sh_rtc_gettimeofday, mv_rtc_settimeofday: sh_rtc_settimeofday, }; ALIAS_MV(harp) --- NEW FILE --- /* * Copyright (C) 2001 David J. Mckay (dav...@st...) * * May be copied or modified under the terms of the GNU General Public * License. See linux/COPYING for more information. * * Dynamic DMA mapping support. */ #include <linux/types.h> #include <linux/mm.h> #include <linux/string.h> #include <linux/pci.h> #include <asm/io.h> #include <asm/addrspace.h> void *pci_alloc_consistent(struct pci_dev *hwdev, size_t size, dma_addr_t * dma_handle) { void *ret; int gfp = GFP_ATOMIC; ret = (void *) __get_free_pages(gfp, get_order(size)); if (ret != NULL) { /* Is it neccessary to do the memset? */ memset(ret, 0, size); *dma_handle = virt_to_bus(ret); } /* We must flush the cache before we pass it on to the device */ flush_cache_all(); return P2SEGADDR(ret); } void pci_free_consistent(struct pci_dev *hwdev, size_t size, void *vaddr, dma_addr_t dma_handle) { unsigned long p1addr=P1SEGADDR((unsigned long)vaddr); free_pages(p1addr, get_order(size)); } --- NEW FILE --- /* * arch/sh/stboard/setup.c * * Copyright (C) 2001 Stuart Menefy (stu...@st...) * * May be copied or modified under the terms of the GNU General Public * License. See linux/COPYING for more information. * * STMicroelectronics ST40STB1 HARP and compatible support. */ #include <linux/config.h> #include <linux/kernel.h> #include <linux/init.h> #include <asm/io.h> #include "harp.h" /* * Initialize the board */ int __init setup_harp(void) { #ifdef CONFIG_SH_STB1_HARP unsigned long ic8_version, ic36_version; ic8_version = ctrl_inl(EPLD_REVID2); ic36_version = ctrl_inl(EPLD_REVID1); printk("STMicroelectronics STB1 HARP initialisaton\n"); printk("EPLD versions: IC8: %d.%02d, IC36: %d.%02d\n", (ic8_version >> 4) & 0xf, ic8_version & 0xf, (ic36_version >> 4) & 0xf, ic36_version & 0xf); #elif defined(CONFIG_SH_STB1_OVERDRIVE) unsigned long version; version = ctrl_inl(EPLD_REVID); printk("STMicroelectronics STB1 Overdrive initialisaton\n"); printk("EPLD version: %d.%02d\n", (version >> 4) & 0xf, version & 0xf); #else #error Undefined machine #endif /* Currently all STB1 chips have problems with the sleep instruction, * so disable it here. */ disable_hlt(); return 0; } |
From: Andy P. <at...@us...> - 2002-04-10 18:40:23
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/m68k/mvme16x In directory usw-pr-cvs1:/tmp/cvs-serv13561/m68k/mvme16x Modified Files: config.c rtc.c Log Message: synch 2.4.15 commit 37 Index: config.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/m68k/mvme16x/config.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- config.c 14 Jan 2001 19:41:57 -0000 1.1.1.1 +++ config.c 10 Apr 2002 14:34:36 -0000 1.2 @@ -17,7 +17,6 @@ #include <linux/types.h> #include <linux/kernel.h> #include <linux/mm.h> -#include <linux/kd.h> #include <linux/tty.h> #include <linux/console.h> #include <linux/linkage.h> @@ -30,11 +29,10 @@ #include <asm/setup.h> #include <asm/irq.h> #include <asm/traps.h> +#include <asm/rtc.h> #include <asm/machdep.h> #include <asm/mvme16xhw.h> -int atari_SCC_reset_done = 1; /* So SCC doesn't get reset */ -u_long atari_mch_cookie = 0; extern t_bdid mvme_bdid; static MK48T08ptr_t volatile rtc = (MK48T08ptr_t)MVME_RTC_BASE; Index: rtc.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/m68k/mvme16x/rtc.c,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- rtc.c 25 Feb 2001 23:15:20 -0000 1.1.1.2 +++ rtc.c 10 Apr 2002 14:34:36 -0000 1.2 @@ -72,7 +72,7 @@ unsigned char mon, day, hrs, min, sec, leap_yr; unsigned int yrs; - if (!suser()) + if (!capable(CAP_SYS_ADMIN)) return -EACCES; if (copy_from_user(&rtc_tm, (struct rtc_time*)arg, |
From: Andy P. <at...@us...> - 2002-04-10 18:40:20
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/arm/tools In directory usw-pr-cvs1:/tmp/cvs-serv24336/arm/tools Modified Files: mach-types Added Files: Makefile constants-hdr getconstants.c Log Message: synch 2.4.15 commit 32 --- NEW FILE --- # # linux/arch/arm/tools/Makefile # # Copyright (C) 2001 Russell King # all: $(TOPDIR)/include/asm-arm/mach-types.h \ $(TOPDIR)/include/asm-arm/constants.h $(TOPDIR)/include/asm-arm/mach-types.h: mach-types gen-mach-types awk -f gen-mach-types mach-types > $@ # Generate the constants.h header file using the compiler. We get # the compiler to spit out assembly code, and then mundge it into # what we want. We do this in several stages so make picks up on # any errors that occur along the way. $(TOPDIR)/include/asm-arm/constants.h: constants-hdr getconstants.c $(CC) $(CFLAGS) -S -o - getconstants.c > $@.tmp.1 sed 's/^\(#define .* \)[#$$]\(.*\)/\1\2/;/^#define/!d' $@.tmp.1 > $@.tmp.2 cat constants-hdr $@.tmp.2 > $@.tmp cmp $@.tmp $@ >/dev/null 2>&1 || mv $@.tmp $@ $(RM) $@.tmp* # Build our dependencies, and then generate the constants and # mach-types header files. If we do it now, mkdep will pick # the dependencies up later on when it runs through the other # directories dep: $(TOPDIR)/scripts/mkdep $(CFLAGS) $(EXTRA_CFLAGS) -- getconstants.c |\ sed s,getconstants.o,$(TOPDIR)/include/asm-arm/constants.h, > .depend $(MAKE) all .PHONY: all dep ifneq ($(wildcard .depend),) include .depend endif --- NEW FILE --- /* * This file is automatically generated from arch/arm/tools/getconstants.c. * Do not edit! Only include this file in assembly (.S) files! */ --- NEW FILE --- /* * linux/arch/arm/tools/getconsdata.c * * Copyright (C) 1995-2001 Russell King * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #include <linux/config.h> #include <linux/sched.h> #include <linux/mm.h> #include <asm/pgtable.h> #include <asm/uaccess.h> /* * Make sure that the compiler and target are compatible. */ #if defined(__APCS_32__) && defined(CONFIG_CPU_26) #error Your compiler targets APCS-32 but this kernel requires APCS-26 #endif #if defined(__APCS_26__) && defined(CONFIG_CPU_32) #error Your compiler targets APCS-26 but this kernel requires APCS-32 #endif #define OFF_TSK(n) (unsigned long)&(((struct task_struct *)0)->n) #define DEFN(name,off) asm("\n#define "name" %0" :: "I" (off)) void func(void) { DEFN("TSK_SIGPENDING", OFF_TSK(sigpending)); DEFN("TSK_ADDR_LIMIT", OFF_TSK(addr_limit)); DEFN("TSK_NEED_RESCHED", OFF_TSK(need_resched)); DEFN("TSK_PTRACE", OFF_TSK(ptrace)); DEFN("TSK_USED_MATH", OFF_TSK(used_math)); DEFN("TSS_SAVE", OFF_TSK(thread.save)); DEFN("TSS_FPESAVE", OFF_TSK(thread.fpstate.soft.save)); #ifdef CONFIG_CPU_32 DEFN("TSS_DOMAIN", OFF_TSK(thread.domain)); DEFN("HPTE_TYPE_SMALL", PTE_TYPE_SMALL); DEFN("HPTE_AP_READ", PTE_AP_READ); DEFN("HPTE_AP_WRITE", PTE_AP_WRITE); DEFN("LPTE_PRESENT", L_PTE_PRESENT); DEFN("LPTE_YOUNG", L_PTE_YOUNG); DEFN("LPTE_BUFFERABLE", L_PTE_BUFFERABLE); DEFN("LPTE_CACHEABLE", L_PTE_CACHEABLE); DEFN("LPTE_USER", L_PTE_USER); DEFN("LPTE_WRITE", L_PTE_WRITE); DEFN("LPTE_EXEC", L_PTE_EXEC); DEFN("LPTE_DIRTY", L_PTE_DIRTY); #endif #ifdef CONFIG_CPU_26 DEFN("PAGE_PRESENT", _PAGE_PRESENT); DEFN("PAGE_READONLY", _PAGE_READONLY); DEFN("PAGE_NOT_USER", _PAGE_NOT_USER); DEFN("PAGE_OLD", _PAGE_OLD); DEFN("PAGE_CLEAN", _PAGE_CLEAN); #endif DEFN("PAGE_SZ", PAGE_SIZE); DEFN("SYS_ERROR0", 0x9f0000); } Index: mach-types =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/arm/tools/mach-types,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- mach-types 14 Jan 2001 19:48:12 -0000 1.1.1.1 +++ mach-types 10 Apr 2002 13:51:24 -0000 1.2 @@ -1,10 +1,12 @@ # Database of machine macros and numbers # +# This file is linux/arch/arm/tools/mach-types +# # Please do not send patches to this file; it is automatically generated! # To add an entry into this database, please see Documentation/arm/README, # or contact rm...@ar... # -# Last update: Mon Nov 20 22:59:11 2000 +# Last update: Fri Oct 26 17:37:13 2001 # # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number # @@ -29,13 +31,13 @@ l7200 ARCH_L7200 L7200 19 pleb SA1100_PLEB PLEB 20 integrator ARCH_INTEGRATOR INTEGRATOR 21 -bitsy SA1100_BITSY BITSY 22 +h3600 SA1100_H3600 H3600 22 ixp1200 ARCH_IXP1200 IXP1200 23 p720t ARCH_P720T P720T 24 assabet SA1100_ASSABET ASSABET 25 victor SA1100_VICTOR VICTOR 26 lart SA1100_LART LART 27 -ranger ARCH_RANGER RANGER 28 +ranger SA1100_RANGER RANGER 28 graphicsclient SA1100_GRAPHICSCLIENT GRAPHICSCLIENT 29 xp860 SA1100_XP860 XP860 30 cerf SA1100_CERF CERF 31 @@ -48,13 +50,90 @@ netport SA1100_NETPORT NETPORT 38 pangolin SA1100_PANGOLIN PANGOLIN 39 yopy SA1100_YOPY YOPY 40 -sa1100 SA1100_SA1100 SA1100 41 -huw_webpanel ARCH_HUW_WEBPANEL HUW_WEBPANEL 42 +coolidge SA1100_COOLIDGE COOLIDGE 41 +huw_webpanel SA1100_HUW_WEBPANEL HUW_WEBPANEL 42 spotme ARCH_SPOTME SPOTME 43 freebird ARCH_FREEBIRD FREEBIRD 44 ti925 ARCH_TI925 TI925 45 riscstation ARCH_RISCSTATION RISCSTATION 46 cavy SA1100_CAVY CAVY 47 - -# The following are unallocated -empeg SA1100_EMPEG EMPEG +jornada720 SA1100_JORNADA720 JORNADA720 48 +omnimeter SA1100_OMNIMETER OMNIMETER 49 +edb7211 ARCH_EDB7211 EDB7211 50 +citygo SA1100_CITYGO CITYGO 51 +pfs168 SA1100_PFS168 PFS168 52 +spot SA1100_SPOT SPOT 53 +flexanet SA1100_FLEXANET FLEXANET 54 +webpal ARCH_WEBPAL WEBPAL 55 +linpda SA1100_LINPDA LINPDA 56 +anakin ARCH_ANAKIN ANAKIN 57 +mvi SA1100_MVI MVI 58 +jupiter SA1100_JUPITER JUPITER 59 +psionw ARCH_PSIONW PSIONW 60 +aln SA1100_ALN ALN 61 +epxa10db ARCH_CAMELOT CAMELOT 62 +gds2200 SA1100_GDS2200 GDS2200 63 +psion_series7 SA1100_PSION_SERIES7 PSION_SERIES7 64 +xfile SA1100_XFILE XFILE 65 +accelent_ep9312 ARCH_ACCELENT_EP9312 ACCELENT_EP9312 66 +ic200 ARCH_IC200 IC200 67 +creditlart SA1100_CREDITLART CREDITLART 68 +htm SA1100_HTM HTM 69 +iq80310 ARCH_IQ80310 IQ80310 70 +freebot SA1100_FREEBOT FREEBOT 71 +entel ARCH_ENTEL ENTEL 72 +enp3510 ARCH_ENP3510 ENP3510 73 +trizeps SA1100_TRIZEPS TRIZEPS 74 +nesa SA1100_NESA NESA 75 +venus ARCH_VENUS VENUS 76 +tardis ARCH_TARDIS TARDIS 77 +mercury ARCH_MERCURY MERCURY 78 +empeg SA1100_EMPEG EMPEG 79 +adi_evb ARCH_I80200FCC I80200FCC 80 +itt_cpb SA1100_ITT_CPB ITT_CPB 81 +svc SA1100_SVC SVC 82 +alpha2 SA1100_ALPHA2 ALPHA2 84 +alpha1 SA1100_ALPHA1 ALPHA1 85 +netarm ARCH_NETARM NETARM 86 +simpad SA1100_SIMPAD SIMPAD 87 +pda1 ARCH_PDA1 PDA1 88 +lubbock ARCH_LUBBOCK LUBBOCK 89 +aniko ARCH_ANIKO ANIKO 90 +clep7212 ARCH_CLEP7212 CLEP7212 91 +cs89712 ARCH_CS89712 CS89712 92 +weararm SA1100_WEARARM WEARARM 93 +possio_px SA1100_POSSIO_PX POSSIO_PX 94 +sidearm SA1100_SIDEARM SIDEARM 95 +stork SA1100_STORK STORK 96 +shannon SA1100_SHANNON SHANNON 97 +ace ARCH_ACE ACE 98 +ballyarm SA1100_BALLYARM BALLYARM 99 +simputer SA1100_SIMPUTER SIMPUTER 100 +nexterm SA1100_NEXTERM NEXTERM 101 +sa1100_elf SA1100_SA1100_ELF SA1100_ELF 102 +gator SA1100_GATOR GATOR 103 +granite ARCH_GRANITE GRANITE 104 +consus SA1100_CONSUS CONSUS 105 +aaed2000 ARCH_AAED2000 AAED2000 106 +cdb89712 ARCH_CDB89712 CDB89712 107 +graphicsmaster SA1100_GRAPHICSMASTER GRAPHICSMASTER 108 +adsbitsy SA1100_ADSBITSY ADSBITSY 109 +cotulla_idp ARCH_COTULLA_IDP COTULLA_IDP 110 +plce ARCH_PLCE PLCE 111 +pt_system3 SA1100_PT_SYSTEM3 PT_SYSTEM3 112 +medalb ARCH_MEDALB MEDALB 113 +eagle ARCH_EAGLE EAGLE 114 +dsc21 ARCH_DSC21 DSC21 115 +dsc24 ARCH_DSC24 DSC24 116 +ti5472 ARCH_TI5472 TI5472 117 +autcpu12 ARCH_AUTCPU12 AUTCPU12 118 +uengine ARCH_UENGINE UENGINE 119 +bluestem SA1100_BLUESTEM BLUESTEM 120 +xingu8 ARCH_XINGU8 XINGU8 121 +bushstb ARCH_BUSHSTB BUSHSTB 122 +epsilon1 SA1100_EPSILON1 EPSILON1 123 +balloon SA1100_BALLOON BALLOON 124 +puppy ARCH_PUPPY PUPPY 125 +elroy SA1100_ELROY ELROY 126 +gms720 ARCH_GMS720 GMS720 127 +s24x ARCH_S24X S24X 128 |
Update of /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu In directory usw-pr-cvs1:/tmp/cvs-serv10929/i386/math-emu Modified Files: control_w.h div_Xsig.S errors.c exception.h fpu_asm.h fpu_emu.h fpu_entry.c fpu_etc.c fpu_proto.h fpu_trig.c get_address.c load_store.c poly.h poly_2xm1.c poly_atan.c poly_l2.c poly_sin.c poly_tan.c reg_compare.c reg_constant.h reg_divide.c reg_ld_str.c reg_mul.c reg_round.S reg_u_add.S reg_u_div.S reg_u_mul.S reg_u_sub.S status_w.h wm_sqrt.S Log Message: synch 2.4.15 commit 35 Index: control_w.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/control_w.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- control_w.h 14 Jan 2001 19:20:07 -0000 1.1.1.1 +++ control_w.h 10 Apr 2002 14:23:21 -0000 1.2 @@ -42,4 +42,4 @@ /* FULL_PRECISION simulates all exceptions masked */ #define FULL_PRECISION (PR_64_BITS | RC_RND | 0x3f) -#endif _CONTROLW_H_ +#endif /* _CONTROLW_H_ */ Index: div_Xsig.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/div_Xsig.S,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- div_Xsig.S 14 Jan 2001 19:20:49 -0000 1.1.1.1 +++ div_Xsig.S 10 Apr 2002 14:23:21 -0000 1.2 @@ -70,7 +70,7 @@ .long 0 FPU_result_1: .long 0 -#endif NON_REENTRANT_FPU +#endif /* NON_REENTRANT_FPU */ .text @@ -79,7 +79,7 @@ movl %esp,%ebp #ifndef NON_REENTRANT_FPU subl $28,%esp -#endif NON_REENTRANT_FPU +#endif /* NON_REENTRANT_FPU */ pushl %esi pushl %edi @@ -91,7 +91,7 @@ #ifdef PARANOID testl $0x80000000, XsigH(%ebx) /* Divisor */ je L_bugged -#endif PARANOID +#endif /* PARANOID */ /*---------------------------------------------------------------------------+ @@ -164,7 +164,7 @@ #ifdef PARANOID jb L_bugged_1 -#endif PARANOID +#endif /* PARANOID */ /* need to subtract another once of the denom */ incl FPU_result_3 /* Correct the answer */ @@ -177,7 +177,7 @@ #ifdef PARANOID sbbl $0,FPU_accum_3 jne L_bugged_1 /* Must check for non-zero result here */ -#endif PARANOID +#endif /* PARANOID */ /*----------------------------------------------------------------------*/ /* Half of the main problem is done, there is just a reduced numerator @@ -207,7 +207,7 @@ #ifdef PARANOID je L_bugged_2 /* Can't bump the result to 1.0 */ -#endif PARANOID +#endif /* PARANOID */ LDo_2nd_div: cmpl $0,%ecx /* augmented denom msw */ @@ -230,7 +230,7 @@ #ifdef PARANOID jc L_bugged_2 -#endif PARANOID +#endif /* PARANOID */ movl FPU_result_2,%eax /* Get the result back */ mull XsigL(%ebx) /* now mul the ls dw of the denom */ @@ -241,14 +241,14 @@ #ifdef PARANOID jc L_bugged_2 -#endif PARANOID +#endif /* PARANOID */ jz LDo_3rd_32_bits #ifdef PARANOID cmpl $1,FPU_accum_2 jne L_bugged_2 -#endif PARANOID +#endif /* PARANOID */ /* need to subtract another once of the denom */ movl XsigL(%ebx),%eax @@ -260,14 +260,14 @@ #ifdef PARANOID jc L_bugged_2 jne L_bugged_2 -#endif PARANOID +#endif /* PARANOID */ addl $1,FPU_result_2 /* Correct the answer */ adcl $0,FPU_result_3 #ifdef PARANOID jc L_bugged_2 /* Must check for non-zero result here */ -#endif PARANOID +#endif /* PARANOID */ /*----------------------------------------------------------------------*/ /* The division is essentially finished here, we just need to perform @@ -362,4 +362,4 @@ call EXCEPTION pop %ebx jmp L_exit -#endif PARANOID +#endif /* PARANOID */ Index: errors.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/errors.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- errors.c 14 Jan 2001 19:20:10 -0000 1.1.1.1 +++ errors.c 10 Apr 2002 14:23:21 -0000 1.2 @@ -141,7 +141,7 @@ if ( partial_status & SW_Zero_Div ) printk("SW: divide by zero\n"); if ( partial_status & SW_Denorm_Op ) printk("SW: denormalized operand\n"); if ( partial_status & SW_Invalid ) printk("SW: invalid operation\n"); -#endif DEBUGGING +#endif /* DEBUGGING */ printk(" SW: b=%d st=%ld es=%d sf=%d cc=%d%d%d%d ef=%d%d%d%d%d%d\n", partial_status & 0x8000 ? 1 : 0, /* busy */ @@ -327,7 +327,7 @@ #ifdef PRINT_MESSAGES /* My message from the sponsor */ printk(FPU_VERSION" "__DATE__" (C) W. Metzenthen.\n"); -#endif PRINT_MESSAGES +#endif /* PRINT_MESSAGES */ /* Get a name string for error reporting */ for (i=0; exception_names[i].type; i++) @@ -338,7 +338,7 @@ { #ifdef PRINT_MESSAGES printk("FP Exception: %s!\n", exception_names[i].name); -#endif PRINT_MESSAGES +#endif /* PRINT_MESSAGES */ } else printk("FPU emulator: Unknown Exception: 0x%04x!\n", n); @@ -351,7 +351,7 @@ #ifdef PRINT_MESSAGES else FPU_printall(); -#endif PRINT_MESSAGES +#endif /* PRINT_MESSAGES */ /* * The 80486 generates an interrupt on the next non-control FPU @@ -363,7 +363,7 @@ #ifdef __DEBUG__ math_abort(FPU_info,SIGFPE); -#endif __DEBUG__ +#endif /* __DEBUG__ */ } @@ -469,7 +469,7 @@ else #ifdef PARANOID if (tagb == TW_NaN) -#endif PARANOID +#endif /* PARANOID */ { signalling = !(b->sigh & 0x40000000); x = b; @@ -481,7 +481,7 @@ EXCEPTION(EX_INTERNAL|0x113); x = &CONST_QNaN; } -#endif PARANOID +#endif /* PARANOID */ if ( (!signalling) || (control_word & CW_Invalid) ) { Index: exception.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/exception.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- exception.h 14 Jan 2001 19:20:10 -0000 1.1.1.1 +++ exception.h 10 Apr 2002 14:23:21 -0000 1.2 @@ -18,7 +18,7 @@ #ifndef SW_C1 #include "fpu_emu.h" -#endif SW_C1 +#endif /* SW_C1 */ #define FPU_BUSY Const_(0x8000) /* FPU busy bit (8087 compatibility) */ #define EX_ErrorSummary Const_(0x0080) /* Error summary status */ @@ -48,6 +48,6 @@ #define EXCEPTION(x) FPU_exception(x) #endif -#endif __ASSEMBLY__ +#endif /* __ASSEMBLY__ */ -#endif _EXCEPTION_H_ +#endif /* _EXCEPTION_H_ */ Index: fpu_asm.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/fpu_asm.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- fpu_asm.h 14 Jan 2001 19:20:11 -0000 1.1.1.1 +++ fpu_asm.h 10 Apr 2002 14:23:21 -0000 1.2 @@ -29,4 +29,4 @@ #define SIGL(x) SIGL_OFFSET##(x) #define SIGH(x) 4(x) -#endif _FPU_ASM_H_ +#endif /* _FPU_ASM_H_ */ Index: fpu_emu.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/fpu_emu.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- fpu_emu.h 14 Jan 2001 19:20:12 -0000 1.1.1.1 +++ fpu_emu.h 10 Apr 2002 14:23:21 -0000 1.2 @@ -88,7 +88,7 @@ #else # define RE_ENTRANT_CHECK_OFF # define RE_ENTRANT_CHECK_ON -#endif RE_ENTRANT_CHECKING +#endif /* RE_ENTRANT_CHECKING */ #define FWAIT_OPCODE 0x9b #define OP_SIZE_PREFIX 0x66 @@ -212,6 +212,6 @@ #include "fpu_proto.h" #endif -#endif __ASSEMBLY__ +#endif /* __ASSEMBLY__ */ -#endif _FPU_EMU_H_ +#endif /* _FPU_EMU_H_ */ Index: fpu_entry.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/fpu_entry.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- fpu_entry.c 14 Jan 2001 19:20:15 -0000 1.1.1.1 +++ fpu_entry.c 10 Apr 2002 14:23:21 -0000 1.2 @@ -78,7 +78,7 @@ fdivr_, FPU_trigb, __BAD__, __BAD__, fdiv_i, __BAD__, fdivp_, __BAD__, }; -#endif NO_UNDOC_CODE +#endif /* NO_UNDOC_CODE */ #define _NONE_ 0 /* Take no special action */ @@ -120,12 +120,12 @@ _REGI_, _NONE_, _null_, _null_, _REGIi, _null_, _REGIp, _null_ }; -#endif NO_UNDOC_CODE +#endif /* NO_UNDOC_CODE */ #ifdef RE_ENTRANT_CHECKING u_char emulating=0; -#endif RE_ENTRANT_CHECKING +#endif /* RE_ENTRANT_CHECKING */ static int valid_prefix(u_char *Byte, u_char **fpu_eip, overrides *override); @@ -152,7 +152,7 @@ printk("ERROR: wm-FPU-emu is not RE-ENTRANT!\n"); } RE_ENTRANT_CHECK_ON; -#endif RE_ENTRANT_CHECKING +#endif /* RE_ENTRANT_CHECKING */ if (!current->used_math) { @@ -251,7 +251,7 @@ #ifdef PARANOID EXCEPTION(EX_INTERNAL|0x128); math_abort(FPU_info,SIGILL); -#endif PARANOID +#endif /* PARANOID */ } RE_ENTRANT_CHECK_OFF; @@ -386,7 +386,7 @@ /* fdiv or fsub */ real_2op_NaN(&loaded_data, loaded_tag, 0, &loaded_data); else -#endif PECULIAR_486 +#endif /* PECULIAR_486 */ /* fadd, fdivr, fmul, or fsubr */ real_2op_NaN(&loaded_data, loaded_tag, 0, st0_ptr); } @@ -497,7 +497,7 @@ to do this: */ operand_address.offset = 0; operand_address.selector = FPU_DS; -#endif PECULIAR_486 +#endif /* PECULIAR_486 */ st0_ptr = &st(0); st0_tag = FPU_gettag0(); @@ -557,7 +557,7 @@ RE_ENTRANT_CHECK_OFF; FPU_printall(); RE_ENTRANT_CHECK_ON; -#endif DEBUG +#endif /* DEBUG */ if (FPU_lookahead && !current->need_resched) { @@ -669,7 +669,7 @@ __asm__("movl %0,%%esp ; ret": :"g" (((long) info)-4)); #ifdef PARANOID printk("ERROR: wm-FPU-emu math_abort failed!\n"); -#endif PARANOID +#endif /* PARANOID */ } @@ -739,7 +739,7 @@ S387->twd |= 0xffff0000; S387->fcs &= ~0xf8000000; S387->fos |= 0xffff0000; -#endif PECULIAR_486 +#endif /* PECULIAR_486 */ __copy_to_user(d, &S387->cwd, 7*4); RE_ENTRANT_CHECK_ON; Index: fpu_etc.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/fpu_etc.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- fpu_etc.c 14 Jan 2001 19:20:15 -0000 1.1.1.1 +++ fpu_etc.c 10 Apr 2002 14:23:21 -0000 1.2 @@ -68,7 +68,7 @@ /* This is weird! */ if (getsign(st0_ptr) == SIGN_POS) setcc(SW_C3); -#endif PECULIAR_486 +#endif /* PECULIAR_486 */ return; } break; Index: fpu_proto.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/fpu_proto.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- fpu_proto.h 14 Jan 2001 19:20:17 -0000 1.1.1.1 +++ fpu_proto.h 10 Apr 2002 14:23:21 -0000 1.2 @@ -53,7 +53,7 @@ extern void fst_i_(void); extern void fstp_i(void); /* fpu_entry.c */ -extern void math_emulate(long arg); +asmlinkage extern void math_emulate(long arg); extern void math_abort(struct info *info, unsigned int signal); /* fpu_etc.c */ extern void FPU_etc(void); Index: fpu_trig.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/fpu_trig.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- fpu_trig.c 14 Jan 2001 19:20:23 -0000 1.1.1.1 +++ fpu_trig.c 10 Apr 2002 14:23:21 -0000 1.2 @@ -98,7 +98,7 @@ q++; } } -#endif BETTER_THAN_486 +#endif /* BETTER_THAN_486 */ } #ifdef BETTER_THAN_486 else @@ -138,7 +138,7 @@ } } } -#endif BETTER_THAN_486 +#endif /* BETTER_THAN_486 */ FPU_settag0(st0_tag); control_word = old_cw; @@ -186,7 +186,7 @@ #ifdef PARANOID else EXCEPTION(EX_INTERNAL|0x0112); -#endif PARANOID +#endif /* PARANOID */ } @@ -232,7 +232,7 @@ #ifdef PARANOID default: EXCEPTION(EX_INTERNAL|0x0112); -#endif PARANOID +#endif /* PARANOID */ } } @@ -463,7 +463,7 @@ #ifdef PARANOID else EXCEPTION(EX_INTERNAL | 0x119); -#endif PARANOID +#endif /* PARANOID */ } @@ -716,7 +716,7 @@ set_precision_flag_down(); /* 80486 appears to do this. */ #else set_precision_flag_up(); /* Must be up. */ -#endif PECULIAR_486 +#endif /* PECULIAR_486 */ return 0; } } @@ -1008,7 +1008,7 @@ setcc(SW_C2); #else setcc(0); -#endif PECULIAR_486 +#endif /* PECULIAR_486 */ return; } cc = SW_C2; @@ -1114,7 +1114,7 @@ #ifdef PARANOID if ( (st0_tag != TW_NaN) && (st1_tag != TW_NaN) ) EXCEPTION(EX_INTERNAL | 0x118); -#endif PARANOID +#endif /* PARANOID */ real_2op_NaN(st1_ptr, st1_tag, 0, st1_ptr); @@ -1315,7 +1315,7 @@ sign = getsign(st1_ptr); if ( FPU_divide_by_zero(1, sign) < 0 ) return; -#endif PECULIAR_486 +#endif /* PECULIAR_486 */ changesign(st1_ptr); } @@ -1451,7 +1451,7 @@ #ifdef PARANOID else EXCEPTION(EX_INTERNAL | 0x125); -#endif PARANOID +#endif /* PARANOID */ FPU_pop(); set_precision_flag_up(); /* We do not really know if up or down */ @@ -1542,7 +1542,8 @@ #ifdef PARANOID EXCEPTION(EX_INTERNAL | 0x116); return; -#endif PARANOID +#endif /* PARANOID */ + break; } } else if ( (st0_tag == TAG_Valid) || (st0_tag == TW_Denormal) ) @@ -1560,7 +1561,7 @@ #else if ( arith_invalid(1) < 0 ) return; -#endif PECULIAR_486 +#endif /* PECULIAR_486 */ } else if ( (st0_tag == TW_Denormal) && (denormal_operand() < 0) ) return; @@ -1583,7 +1584,7 @@ changesign(st1_ptr); #else if ( arith_invalid(1) < 0 ) return; -#endif PECULIAR_486 +#endif /* PECULIAR_486 */ } else if ( (st0_tag == TW_Denormal) && (denormal_operand() < 0) ) return; @@ -1618,14 +1619,14 @@ /* This should have higher priority than denormals, but... */ if ( arith_invalid(1) < 0 ) /* log(-infinity) */ return; -#endif PECULIAR_486 +#endif /* PECULIAR_486 */ if ( (st1_tag == TW_Denormal) && (denormal_operand() < 0) ) return; #ifdef PECULIAR_486 /* Denormal operands actually get higher priority */ if ( arith_invalid(1) < 0 ) /* log(-infinity) */ return; -#endif PECULIAR_486 +#endif /* PECULIAR_486 */ } else if ( st1_tag == TAG_Zero ) { @@ -1654,7 +1655,7 @@ EXCEPTION(EX_INTERNAL | 0x117); return; } -#endif PARANOID +#endif /* PARANOID */ FPU_pop(); return; Index: get_address.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/get_address.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- get_address.c 14 Jan 2001 19:20:24 -0000 1.1.1.1 +++ get_address.c 10 Apr 2002 14:23:21 -0000 1.2 @@ -143,7 +143,7 @@ EXCEPTION(EX_INTERNAL|0x130); math_abort(FPU_info,SIGSEGV); } -#endif PARANOID +#endif /* PARANOID */ addr->selector = VM86_REG_(segment); return (unsigned long)VM86_REG_(segment) << 4; } @@ -166,7 +166,7 @@ EXCEPTION(EX_INTERNAL|0x132); math_abort(FPU_info,SIGSEGV); } -#endif PARANOID +#endif /* PARANOID */ switch ( segment ) { Index: load_store.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/load_store.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- load_store.c 14 Jan 2001 19:20:25 -0000 1.1.1.1 +++ load_store.c 10 Apr 2002 14:23:21 -0000 1.2 @@ -85,7 +85,7 @@ #ifdef PARANOID else EXCEPTION(EX_INTERNAL|0x140); -#endif PARANOID +#endif /* PARANOID */ } switch ( type_table[type] ) @@ -112,7 +112,7 @@ default: EXCEPTION(EX_INTERNAL|0x141); return 0; -#endif PARANOID +#endif /* PARANOID */ } switch ( type ) @@ -217,7 +217,7 @@ partial_status &= ~(SW_Summary | SW_Backward); #ifdef PECULIAR_486 control_word |= 0x40; /* An 80486 appears to always set this bit */ -#endif PECULIAR_486 +#endif /* PECULIAR_486 */ return 1; case 025: /* fld m80real */ clear_C1(); Index: poly.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/poly.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- poly.h 14 Jan 2001 19:20:50 -0000 1.1.1.1 +++ poly.h 10 Apr 2002 14:23:21 -0000 1.2 @@ -60,7 +60,7 @@ /* Some versions of gcc make it difficult to stop eax from being clobbered. Merely specifying that it is used doesn't work... */ -extern inline unsigned long mul_32_32(const unsigned long arg1, +static inline unsigned long mul_32_32(const unsigned long arg1, const unsigned long arg2) { int retval; @@ -73,7 +73,7 @@ /* Add the 12 byte Xsig x2 to Xsig dest, with no checks for overflow. */ -extern inline void add_Xsig_Xsig(Xsig *dest, const Xsig *x2) +static inline void add_Xsig_Xsig(Xsig *dest, const Xsig *x2) { asm volatile ("movl %1,%%edi; movl %2,%%esi; movl (%%esi),%%eax; addl %%eax,(%%edi); @@ -88,7 +88,7 @@ /* Note: the constraints in the asm statement didn't always work properly with gcc 2.5.8. Changing from using edi to using ecx got around the problem, but keep fingers crossed! */ -extern inline void add_two_Xsig(Xsig *dest, const Xsig *x2, long int *exp) +static inline void add_two_Xsig(Xsig *dest, const Xsig *x2, long int *exp) { asm volatile ("movl %2,%%ecx; movl %3,%%esi; movl (%%esi),%%eax; addl %%eax,(%%ecx); @@ -108,7 +108,7 @@ /* Negate (subtract from 1.0) the 12 byte Xsig */ /* This is faster in a loop on my 386 than using the "neg" instruction. */ -extern inline void negate_Xsig(Xsig *x) +static inline void negate_Xsig(Xsig *x) { asm volatile("movl %1,%%esi; " "xorl %%ecx,%%ecx; " @@ -118,4 +118,4 @@ :"=g" (*x):"g" (x):"si","ax","cx"); } -#endif _POLY_H +#endif /* _POLY_H */ Index: poly_2xm1.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/poly_2xm1.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- poly_2xm1.c 14 Jan 2001 19:20:26 -0000 1.1.1.1 +++ poly_2xm1.c 10 Apr 2002 14:23:21 -0000 1.2 @@ -67,7 +67,7 @@ EXCEPTION(EX_INTERNAL|0x127); return 1; } -#endif PARANOID +#endif /* PARANOID */ argSignif.lsw = 0; XSIG_LL(argSignif) = Xll = significand(arg); Index: poly_atan.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/poly_atan.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- poly_atan.c 14 Jan 2001 19:20:27 -0000 1.1.1.1 +++ poly_atan.c 10 Apr 2002 14:23:21 -0000 1.2 @@ -124,7 +124,7 @@ EXCEPTION(EX_INTERNAL|0x104); /* There must be a logic error */ return; } -#endif PARANOID +#endif /* PARANOID */ argSignif.msw = 0; /* Make the transformed arg -> 0.0 */ } else Index: poly_l2.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/poly_l2.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- poly_l2.c 14 Jan 2001 19:20:28 -0000 1.1.1.1 +++ poly_l2.c 10 Apr 2002 14:23:21 -0000 1.2 @@ -157,7 +157,7 @@ #else if ( arith_invalid(1) < 0 ) return 1; -#endif PECULIAR_486 +#endif /* PECULIAR_486 */ } /* 80486 appears to do this */ @@ -243,7 +243,7 @@ /* The argument is too large */ } } -#endif PECULIAR_486 +#endif /* PECULIAR_486 */ arg_signif.lsw = argSignif.lsw; XSIG_LL(arg_signif) = XSIG_LL(argSignif); adj = norm_Xsig(&argSignif); Index: poly_sin.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/poly_sin.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- poly_sin.c 14 Jan 2001 19:20:29 -0000 1.1.1.1 +++ poly_sin.c 10 Apr 2002 14:23:21 -0000 1.2 @@ -199,7 +199,7 @@ { EXCEPTION(EX_INTERNAL|0x150); } -#endif PARANOID +#endif /* PARANOID */ } @@ -224,7 +224,7 @@ FPU_copy_to_reg0(&CONST_QNaN, TAG_Special); return; } -#endif PARANOID +#endif /* PARANOID */ exponent = exponent(st0_ptr); @@ -392,6 +392,6 @@ { EXCEPTION(EX_INTERNAL|0x151); } -#endif PARANOID +#endif /* PARANOID */ } Index: poly_tan.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/poly_tan.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- poly_tan.c 14 Jan 2001 19:20:30 -0000 1.1.1.1 +++ poly_tan.c 10 Apr 2002 14:23:21 -0000 1.2 @@ -66,7 +66,7 @@ #ifdef PARANOID if ( signnegative(st0_ptr) ) /* Can't hack a number < 0.0 */ { arith_invalid(0); return; } /* Need a positive number */ -#endif PARANOID +#endif /* PARANOID */ /* Split the problem into two domains, smaller and larger than pi/4 */ if ( (exponent == 0) || ((exponent == -1) && (st0_ptr->sigh > 0xc90fdaa2)) ) Index: reg_compare.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/reg_compare.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- reg_compare.c 14 Jan 2001 19:20:33 -0000 1.1.1.1 +++ reg_compare.c 10 Apr 2002 14:23:21 -0000 1.2 @@ -136,7 +136,7 @@ #ifdef PARANOID if (!(st0_ptr->sigh & 0x80000000)) EXCEPTION(EX_Invalid); if (!(b->sigh & 0x80000000)) EXCEPTION(EX_Invalid); -#endif PARANOID +#endif /* PARANOID */ diff = exp0 - expb; if ( diff == 0 ) @@ -203,7 +203,7 @@ EXCEPTION(EX_INTERNAL|0x121); f = SW_C3 | SW_C2 | SW_C0; break; -#endif PARANOID +#endif /* PARANOID */ } setcc(f); if (c & COMP_Denormal) @@ -255,7 +255,7 @@ EXCEPTION(EX_INTERNAL|0x122); f = SW_C3 | SW_C2 | SW_C0; break; -#endif PARANOID +#endif /* PARANOID */ } setcc(f); if (c & COMP_Denormal) @@ -312,7 +312,7 @@ EXCEPTION(EX_INTERNAL|0x123); f = SW_C3 | SW_C2 | SW_C0; break; -#endif PARANOID +#endif /* PARANOID */ } setcc(f); if (c & COMP_Denormal) Index: reg_constant.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/reg_constant.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- reg_constant.h 14 Jan 2001 19:20:45 -0000 1.1.1.1 +++ reg_constant.h 10 Apr 2002 14:23:21 -0000 1.2 @@ -28,4 +28,4 @@ extern FPU_REG const CONST_MINF; extern FPU_REG const CONST_QNaN; -#endif _REG_CONSTANT_H_ +#endif /* _REG_CONSTANT_H_ */ Index: reg_divide.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/reg_divide.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- reg_divide.c 14 Jan 2001 19:20:53 -0000 1.1.1.1 +++ reg_divide.c 10 Apr 2002 14:23:21 -0000 1.2 @@ -201,6 +201,6 @@ EXCEPTION(EX_INTERNAL|0x102); return FPU_Exception; } -#endif PARANOID +#endif /* PARANOID */ } Index: reg_ld_str.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/reg_ld_str.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- reg_ld_str.c 14 Jan 2001 19:20:38 -0000 1.1.1.1 +++ reg_ld_str.c 10 Apr 2002 14:23:21 -0000 1.2 @@ -439,7 +439,7 @@ converts to decide underflow. */ if ( !((tmp.sigh == 0x00100000) && (tmp.sigl == 0) && (st0_ptr->sigl & 0x000007ff)) ) -#endif PECULIAR_486 +#endif /* PECULIAR_486 */ { EXCEPTION(EX_Underflow); /* This is a special case: see sec 16.2.5.1 of @@ -559,7 +559,7 @@ /* Underflow has priority. */ if ( control_word & CW_Underflow ) denormal_operand(); -#endif PECULIAR_486 +#endif /* PECULIAR_486 */ reg_copy(st0_ptr, &tmp); goto denormal_arg; } @@ -659,7 +659,7 @@ converts to decide underflow. */ if ( !((tmp.sigl == 0x00800000) && ((st0_ptr->sigh & 0x000000ff) || st0_ptr->sigl)) ) -#endif PECULIAR_486 +#endif /* PECULIAR_486 */ { EXCEPTION(EX_Underflow); /* This is a special case: see sec 16.2.5.1 of @@ -776,7 +776,7 @@ /* Underflow has priority. */ if ( control_word & CW_Underflow ) denormal_operand(); -#endif PECULIAR_486 +#endif /* PECULIAR_486 */ goto denormal_arg; } else if (st0_tag == TW_Infinity) @@ -1221,7 +1221,7 @@ #ifdef PECULIAR_486 control_word &= ~0xe080; -#endif PECULIAR_486 +#endif /* PECULIAR_486 */ top = (partial_status >> SW_Top_Shift) & 7; @@ -1303,7 +1303,7 @@ FPU_put_user(control_word & ~0xe080, (unsigned long *) d); #else FPU_put_user(control_word, (unsigned short *) d); -#endif PECULIAR_486 +#endif /* PECULIAR_486 */ FPU_put_user(status_word(), (unsigned short *) (d+2)); FPU_put_user(fpu_tag_word, (unsigned short *) (d+4)); FPU_put_user(instruction_address.offset, (unsigned short *) (d+6)); @@ -1335,7 +1335,7 @@ fpu_tag_word |= 0xffff0000; I387.soft.fcs &= ~0xf8000000; I387.soft.fos |= 0xffff0000; -#endif PECULIAR_486 +#endif /* PECULIAR_486 */ __copy_to_user(d, &control_word, 7*4); RE_ENTRANT_CHECK_ON; d += 0x1c; Index: reg_mul.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/reg_mul.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- reg_mul.c 14 Jan 2001 19:20:39 -0000 1.1.1.1 +++ reg_mul.c 10 Apr 2002 14:23:21 -0000 1.2 @@ -126,6 +126,6 @@ EXCEPTION(EX_INTERNAL|0x102); return FPU_Exception; } -#endif PARANOID +#endif /* PARANOID */ } Index: reg_round.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/reg_round.S,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- reg_round.S 14 Jan 2001 19:20:48 -0000 1.1.1.1 +++ reg_round.S 10 Apr 2002 14:23:21 -0000 1.2 @@ -100,7 +100,7 @@ .byte 0 FPU_denormal: .byte 0 -#endif NON_REENTRANT_FPU +#endif /* NON_REENTRANT_FPU */ .text @@ -126,13 +126,13 @@ #ifndef NON_REENTRANT_FPU pushl %ebx /* adjust the stack pointer */ -#endif NON_REENTRANT_FPU +#endif /* NON_REENTRANT_FPU */ #ifdef PARANOID /* Cannot use this here yet */ /* orl %eax,%eax */ /* jns L_entry_bugged */ -#endif PARANOID +#endif /* PARANOID */ cmpw EXP_UNDER,EXP(%edi) jle L_Make_denorm /* The number is a de-normal */ @@ -160,12 +160,12 @@ je LRound_To_64 #ifdef PARANOID jmp L_bugged_denorm_486 -#endif PARANOID +#endif /* PARANOID */ #else #ifdef PARANOID jmp L_bugged_denorm /* There is no bug, just a bad control word */ -#endif PARANOID -#endif PECULIAR_486 +#endif /* PARANOID */ +#endif /* PECULIAR_486 */ /* Round etc to 24 bit precision */ @@ -186,7 +186,7 @@ #ifdef PARANOID jmp L_bugged_round24 -#endif PARANOID +#endif /* PARANOID */ LUp_24: cmpb SIGN_POS,PARAM5 @@ -266,7 +266,7 @@ #ifdef PARANOID jmp L_bugged_round53 -#endif PARANOID +#endif /* PARANOID */ LUp_53: cmpb SIGN_POS,PARAM5 @@ -340,7 +340,7 @@ #ifdef PARANOID jmp L_bugged_round64 -#endif PARANOID +#endif /* PARANOID */ LUp_64: cmpb SIGN_POS,PARAM5 @@ -430,7 +430,7 @@ #ifndef NON_REENTRANT_FPU popl %ebx /* adjust the stack pointer */ -#endif NON_REENTRANT_FPU +#endif /* NON_REENTRANT_FPU */ fpu_Arith_exit: popl %ebx @@ -570,7 +570,7 @@ /* But check it... just in case. */ cmpw EXP_UNDER+1,EXP(%edi) jne L_norm_bugged -#endif PARANOID +#endif /* PARANOID */ #ifdef PECULIAR_486 /* @@ -586,7 +586,7 @@ #else orl %eax,%eax /* ms bits */ js L_Normalised /* No longer a denormal */ -#endif PECULIAR_486 +#endif /* PECULIAR_486 */ jnz LDenormal_adj_exponent @@ -673,7 +673,7 @@ call EXCEPTION popl %ebx jmp L_exception_exit -#endif PECULIAR_486 +#endif /* PECULIAR_486 */ L_bugged_round24: pushl EX_INTERNAL|0x231 @@ -706,4 +706,4 @@ L_exception_exit: mov $-1,%eax jmp fpu_reg_round_special_exit -#endif PARANOID +#endif /* PARANOID */ Index: reg_u_add.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/reg_u_add.S,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- reg_u_add.S 14 Jan 2001 19:20:40 -0000 1.1.1.1 +++ reg_u_add.S 10 Apr 2002 14:23:21 -0000 1.2 @@ -72,7 +72,7 @@ testl $0x80000000,SIGH(%esi) je L_bugged -#endif PARANOID +#endif /* PARANOID */ /* The number to be shifted is in %eax:%ebx:%edx */ cmpw $32,%cx /* shrd only works for 0..31 bits */ @@ -164,4 +164,4 @@ popl %esi leave ret -#endif PARANOID +#endif /* PARANOID */ Index: reg_u_div.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/reg_u_div.S,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- reg_u_div.S 14 Jan 2001 19:20:41 -0000 1.1.1.1 +++ reg_u_div.S 10 Apr 2002 14:23:21 -0000 1.2 @@ -67,7 +67,7 @@ .long 0 FPU_ovfl_flag: .byte 0 -#endif NON_REENTRANT_FPU +#endif /* NON_REENTRANT_FPU */ #define REGA PARAM1 #define REGB PARAM2 @@ -79,7 +79,7 @@ movl %esp,%ebp #ifndef NON_REENTRANT_FPU subl $28,%esp -#endif NON_REENTRANT_FPU +#endif /* NON_REENTRANT_FPU */ pushl %esi pushl %edi @@ -89,10 +89,8 @@ movl REGB,%ebx movl DEST,%edi - movw EXP(%esi),%dx - movw EXP(%ebx),%ax - .byte 0x0f,0xbf,0xc0 /* movsx %ax,%eax */ - .byte 0x0f,0xbf,0xd2 /* movsx %dx,%edx */ + movswl EXP(%esi),%edx + movswl EXP(%ebx),%eax subl %eax,%edx addl EXP_BIAS,%edx @@ -112,7 +110,7 @@ /* je L_bugged */ testl $0x80000000, SIGH(%ebx) /* Divisor */ je L_bugged -#endif PARANOID +#endif /* PARANOID */ /* Check if the divisor can be treated as having just 32 bits */ cmpl $0,SIGL(%ebx) @@ -248,7 +246,7 @@ #ifdef PARANOID jb L_bugged_1 -#endif PARANOID +#endif /* PARANOID */ /* need to subtract another once of the denom */ incl FPU_result_2 /* Correct the answer */ @@ -261,7 +259,7 @@ #ifdef PARANOID sbbl $0,FPU_accum_3 jne L_bugged_1 /* Must check for non-zero result here */ -#endif PARANOID +#endif /* PARANOID */ /*----------------------------------------------------------------------*/ /* Half of the main problem is done, there is just a reduced numerator @@ -291,7 +289,7 @@ #ifdef PARANOID je L_bugged_2 /* Can't bump the result to 1.0 */ -#endif PARANOID +#endif /* PARANOID */ LDo_2nd_div: cmpl $0,%ecx /* augmented denom msw */ @@ -314,7 +312,7 @@ #ifdef PARANOID jc L_bugged_2 -#endif PARANOID +#endif /* PARANOID */ movl FPU_result_1,%eax /* Get the result back */ mull SIGL(%ebx) /* now mul the ls dw of the denom */ @@ -325,14 +323,14 @@ #ifdef PARANOID jc L_bugged_2 -#endif PARANOID +#endif /* PARANOID */ jz LDo_3rd_32_bits #ifdef PARANOID cmpl $1,FPU_accum_2 jne L_bugged_2 -#endif PARANOID +#endif /* PARANOID */ /* need to subtract another once of the denom */ movl SIGL(%ebx),%eax @@ -344,14 +342,14 @@ #ifdef PARANOID jc L_bugged_2 jne L_bugged_2 -#endif PARANOID +#endif /* PARANOID */ addl $1,FPU_result_1 /* Correct the answer */ adcl $0,FPU_result_2 #ifdef PARANOID jc L_bugged_2 /* Must check for non-zero result here */ -#endif PARANOID +#endif /* PARANOID */ /*----------------------------------------------------------------------*/ /* The division is essentially finished here, we just need to perform @@ -470,4 +468,4 @@ leave ret -#endif PARANOID +#endif /* PARANOID */ Index: reg_u_mul.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/reg_u_mul.S,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- reg_u_mul.S 14 Jan 2001 19:20:42 -0000 1.1.1.1 +++ reg_u_mul.S 10 Apr 2002 14:23:21 -0000 1.2 @@ -40,7 +40,7 @@ .long 0 FPU_accum_1: .long 0 -#endif NON_REENTRANT_FPU +#endif /* NON_REENTRANT_FPU */ .text @@ -49,7 +49,7 @@ movl %esp,%ebp #ifndef NON_REENTRANT_FPU subl $8,%esp -#endif NON_REENTRANT_FPU +#endif /* NON_REENTRANT_FPU */ pushl %esi pushl %edi @@ -63,7 +63,7 @@ jz L_bugged testl $0x80000000,SIGH(%edi) jz L_bugged -#endif PARANOID +#endif /* PARANOID */ xorl %ecx,%ecx xorl %ebx,%ebx @@ -144,5 +144,5 @@ popl %esi leave ret -#endif PARANOID +#endif /* PARANOID */ Index: reg_u_sub.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/reg_u_sub.S,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- reg_u_sub.S 14 Jan 2001 19:20:42 -0000 1.1.1.1 +++ reg_u_sub.S 10 Apr 2002 14:23:21 -0000 1.2 @@ -54,7 +54,7 @@ testl $0x80000000,SIGH(%esi) je L_bugged_2 -#endif PARANOID +#endif /* PARANOID */ /*--------------------------------------+ | Form a register holding the | @@ -165,7 +165,7 @@ #ifdef PARANOID /* We can never get a borrow */ jc L_bugged -#endif PARANOID +#endif /* PARANOID */ /*--------------------------------------+ | Normalize the result | @@ -199,7 +199,7 @@ #ifdef PARANOID orl %edx,%edx jnz L_bugged_3 -#endif PARANOID +#endif /* PARANOID */ /* The result is zero */ movw $0,EXP(%edi) /* exponent */ @@ -262,7 +262,7 @@ L_error_exit: movl $-1,%eax -#endif PARANOID +#endif /* PARANOID */ L_exit: popl %ebx Index: status_w.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/status_w.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- status_w.h 14 Jan 2001 19:20:43 -0000 1.1.1.1 +++ status_w.h 10 Apr 2002 14:23:21 -0000 1.2 @@ -58,8 +58,8 @@ # define clear_C1() { partial_status &= ~SW_C1; } # else # define clear_C1() -#endif PECULIAR_486 +#endif /* PECULIAR_486 */ -#endif __ASSEMBLY__ +#endif /* __ASSEMBLY__ */ -#endif _STATUS_H_ +#endif /* _STATUS_H_ */ Index: wm_sqrt.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/math-emu/wm_sqrt.S,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- wm_sqrt.S 14 Jan 2001 19:20:45 -0000 1.1.1.1 +++ wm_sqrt.S 10 Apr 2002 14:23:21 -0000 1.2 @@ -70,7 +70,7 @@ .long 0 FPU_fsqrt_arg_0: .long 0 /* ls word, at most the ms bit is set */ -#endif NON_REENTRANT_FPU +#endif /* NON_REENTRANT_FPU */ .text @@ -79,7 +79,7 @@ movl %esp,%ebp #ifndef NON_REENTRANT_FPU subl $28,%esp -#endif NON_REENTRANT_FPU +#endif /* NON_REENTRANT_FPU */ pushl %esi pushl %edi pushl %ebx @@ -210,7 +210,7 @@ /* It should be possible to get here only if the arg is ffff....ffff */ cmp $0xffffffff,FPU_fsqrt_arg_1 jnz sqrt_stage_2_error -#endif PARANOID +#endif /* PARANOID */ /* The best rounded result. */ xorl %eax,%eax @@ -224,7 +224,7 @@ sqrt_stage_2_error: pushl EX_INTERNAL|0x213 call EXCEPTION -#endif PARANOID +#endif /* PARANOID */ sqrt_stage_2_done: @@ -279,7 +279,7 @@ call EXCEPTION sqrt_stage_3_no_error: -#endif PARANOID +#endif /* PARANOID */ movl FPU_accum_2,%edx movl FPU_accum_1,%eax @@ -385,7 +385,7 @@ call EXCEPTION sqrt_near_exact_ok: -#endif PARANOID +#endif /* PARANOID */ or %ebx,%ebx js sqrt_near_exact_small @@ -445,7 +445,7 @@ call EXCEPTION sqrt_more_prec_ok: -#endif PARANOID +#endif /* PARANOID */ or %ebx,%ebx js sqrt_more_prec_small |
From: Andy P. <at...@us...> - 2002-04-10 18:40:18
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/mips/philips/nino/ramdisk In directory usw-pr-cvs1:/tmp/cvs-serv21895/mips/philips/nino/ramdisk Added Files: Makefile ld.script Log Message: synch 2.4.15 commit 41 --- NEW FILE --- # # Makefile for the Philips Nino ramdisk # # Note! Dependencies are done automagically by 'make dep', which also # removes any old dependencies. DON'T put your own dependencies here # unless it's something special (ie not a .c file). # ramdisk.o: ramdisk.gz ld.script $(LD) -T ld.script -b binary -o $@ ramdisk.gz include $(TOPDIR)/Rules.make --- NEW FILE --- OUTPUT_FORMAT("ecoff-littlemips") OUTPUT_ARCH(mips) SECTIONS { .initrd : { *(.data) } } |
From: Andy P. <at...@us...> - 2002-04-10 18:40:17
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/mips/ite-boards/ivr In directory usw-pr-cvs1:/tmp/cvs-serv15748/arch/mips/ite-boards/ivr Log Message: Directory /cvsroot/linux-vax/kernel-2.4/arch/mips/ite-boards/ivr added to the repository |
From: Andy P. <at...@us...> - 2002-04-10 18:40:17
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/i386/boot/tools In directory usw-pr-cvs1:/tmp/cvs-serv10929/i386/boot/tools Modified Files: build.c Log Message: synch 2.4.15 commit 35 Index: build.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/boot/tools/build.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- build.c 14 Jan 2001 19:20:00 -0000 1.1.1.1 +++ build.c 10 Apr 2002 14:23:20 -0000 1.2 @@ -154,7 +154,7 @@ if (sys_size > (is_big_kernel ? 0x28000 : DEF_SYSSIZE)) die("System is too big. Try using %smodules.", is_big_kernel ? "" : "bzImage or "); - if (sys_size > 0xffff) + if (sys_size > 0xefff) fprintf(stderr,"warning: kernel is too big for standalone boot " "from floppy\n"); while (sz > 0) { |
From: Andy P. <at...@us...> - 2002-04-10 18:40:16
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/i386 In directory usw-pr-cvs1:/tmp/cvs-serv10929/i386 Modified Files: Makefile config.in defconfig vmlinux.lds Log Message: synch 2.4.15 commit 35 Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/Makefile,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- Makefile 25 Feb 2001 23:15:16 -0000 1.1.1.2 +++ Makefile 10 Apr 2002 14:23:20 -0000 1.2 @@ -82,6 +82,10 @@ CFLAGS += -march=i586 endif +ifdef CONFIG_MCYRIXIII +CFLAGS += -march=i586 +endif + HEAD := arch/i386/kernel/head.o arch/i386/kernel/init_task.o SUBDIRS += arch/i386/kernel arch/i386/mm arch/i386/lib Index: config.in =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/config.in,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- config.in 25 Feb 2001 23:15:16 -0000 1.1.1.2 +++ config.in 10 Apr 2002 14:23:20 -0000 1.2 @@ -27,33 +27,40 @@ mainmenu_option next_comment comment 'Processor type and features' choice 'Processor family' \ - "386 CONFIG_M386 \ - 486 CONFIG_M486 \ - 586/K5/5x86/6x86/6x86MX CONFIG_M586 \ - Pentium-Classic CONFIG_M586TSC \ - Pentium-MMX CONFIG_M586MMX \ - Pentium-Pro/Celeron/Pentium-II CONFIG_M686 \ - Pentium-III CONFIG_MPENTIUMIII \ - Pentium-4 CONFIG_MPENTIUM4 \ - K6/K6-II/K6-III CONFIG_MK6 \ - Athlon/K7 CONFIG_MK7 \ - Crusoe CONFIG_MCRUSOE \ - Winchip-C6 CONFIG_MWINCHIPC6 \ - Winchip-2 CONFIG_MWINCHIP2 \ - Winchip-2A/Winchip-3 CONFIG_MWINCHIP3D" Pentium-Pro + "386 CONFIG_M386 \ + 486 CONFIG_M486 \ + 586/K5/5x86/6x86/6x86MX CONFIG_M586 \ + Pentium-Classic CONFIG_M586TSC \ + Pentium-MMX CONFIG_M586MMX \ + Pentium-Pro/Celeron/Pentium-II CONFIG_M686 \ + Pentium-III/Celeron(Coppermine) CONFIG_MPENTIUMIII \ + Pentium-4 CONFIG_MPENTIUM4 \ + K6/K6-II/K6-III CONFIG_MK6 \ + Athlon/Duron/K7 CONFIG_MK7 \ + Crusoe CONFIG_MCRUSOE \ + Winchip-C6 CONFIG_MWINCHIPC6 \ + Winchip-2 CONFIG_MWINCHIP2 \ + Winchip-2A/Winchip-3 CONFIG_MWINCHIP3D \ + CyrixIII/C3 CONFIG_MCYRIXIII" Pentium-Pro # # Define implied options from the CPU selection here # if [ "$CONFIG_M386" = "y" ]; then define_bool CONFIG_X86_CMPXCHG n + define_bool CONFIG_X86_XADD n define_int CONFIG_X86_L1_CACHE_SHIFT 4 + define_bool CONFIG_RWSEM_GENERIC_SPINLOCK y + define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM n else define_bool CONFIG_X86_WP_WORKS_OK y define_bool CONFIG_X86_INVLPG y define_bool CONFIG_X86_CMPXCHG y + define_bool CONFIG_X86_XADD y define_bool CONFIG_X86_BSWAP y define_bool CONFIG_X86_POPAD_OK y + define_bool CONFIG_RWSEM_GENERIC_SPINLOCK n + define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM y fi if [ "$CONFIG_M486" = "y" ]; then define_int CONFIG_X86_L1_CACHE_SHIFT 4 @@ -113,6 +120,13 @@ define_bool CONFIG_X86_PGE y define_bool CONFIG_X86_USE_PPRO_CHECKSUM y fi +if [ "$CONFIG_MCYRIXIII" = "y" ]; then + define_int CONFIG_X86_L1_CACHE_SHIFT 5 + define_bool CONFIG_X86_TSC y + define_bool CONFIG_X86_ALIGNMENT_16 y + define_bool CONFIG_X86_USE_3DNOW y + define_bool CONFIG_X86_USE_PPRO_CHECKSUM y +fi if [ "$CONFIG_MCRUSOE" = "y" ]; then define_int CONFIG_X86_L1_CACHE_SHIFT 5 define_bool CONFIG_X86_TSC y @@ -135,6 +149,7 @@ define_bool CONFIG_X86_USE_PPRO_CHECKSUM y fi tristate 'Toshiba Laptop support' CONFIG_TOSHIBA +tristate 'Dell Inspiron 8000 support' CONFIG_I8K tristate '/dev/cpu/microcode - Intel IA32 CPU microcode support' CONFIG_MICROCODE tristate '/dev/cpu/*/msr - Model-specific register support' CONFIG_X86_MSR @@ -156,11 +171,16 @@ bool 'MTRR (Memory Type Range Register) support' CONFIG_MTRR bool 'Symmetric multi-processing support' CONFIG_SMP if [ "$CONFIG_SMP" != "y" ]; then - bool 'APIC and IO-APIC support on uniprocessors' CONFIG_X86_UP_IOAPIC + bool 'Local APIC support on uniprocessors' CONFIG_X86_UP_APIC + dep_bool 'IO-APIC support on uniprocessors' CONFIG_X86_UP_IOAPIC $CONFIG_X86_UP_APIC + if [ "$CONFIG_X86_UP_APIC" = "y" ]; then + define_bool CONFIG_X86_LOCAL_APIC y + fi if [ "$CONFIG_X86_UP_IOAPIC" = "y" ]; then define_bool CONFIG_X86_IO_APIC y - define_bool CONFIG_X86_LOCAL_APIC y fi +else + bool 'Multiquad NUMA system' CONFIG_MULTIQUAD fi if [ "$CONFIG_SMP" = "y" -a "$CONFIG_X86_CMPXCHG" = "y" ]; then @@ -172,7 +192,10 @@ comment 'General setup' bool 'Networking support' CONFIG_NET -bool 'SGI Visual Workstation support' CONFIG_VISWS + +# Visual Workstation support is utterly broken. +# If you want to see it working mail an VW540 to hc...@in... 8) +#bool 'SGI Visual Workstation support' CONFIG_VISWS if [ "$CONFIG_VISWS" = "y" ]; then define_bool CONFIG_X86_VISWS_APIC y define_bool CONFIG_X86_LOCAL_APIC y @@ -211,8 +234,10 @@ if [ "$CONFIG_HOTPLUG" = "y" ] ; then source drivers/pcmcia/Config.in + source drivers/hotplug/Config.in else define_bool CONFIG_PCMCIA n + define_bool CONFIG_HOTPLUG_PCI n fi bool 'System V IPC' CONFIG_SYSVIPC @@ -231,6 +256,10 @@ if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then dep_bool ' ACPI support' CONFIG_ACPI $CONFIG_PM + + if [ "$CONFIG_ACPI" != "n" ]; then + source drivers/acpi/Config.in + fi fi dep_tristate ' Advanced Power Management BIOS support' CONFIG_APM $CONFIG_PM @@ -285,9 +314,11 @@ fi endmenu +source drivers/message/fusion/Config.in + source drivers/ieee1394/Config.in -source drivers/i2o/Config.in +source drivers/message/i2o/Config.in if [ "$CONFIG_NET" = "y" ]; then mainmenu_option next_comment @@ -361,9 +392,21 @@ source drivers/usb/Config.in +if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then + source net/bluetooth/Config.in +fi + mainmenu_option next_comment comment 'Kernel hacking' -#bool 'Debug kmalloc/kfree' CONFIG_DEBUG_MALLOC -bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ +bool 'Kernel debugging' CONFIG_DEBUG_KERNEL +if [ "$CONFIG_DEBUG_KERNEL" != "n" ]; then + bool ' Debug high memory support' CONFIG_DEBUG_HIGHMEM + bool ' Debug memory allocations' CONFIG_DEBUG_SLAB + bool ' Memory mapped I/O debugging' CONFIG_DEBUG_IOVIRT + bool ' Magic SysRq key' CONFIG_MAGIC_SYSRQ + bool ' Spinlock debugging' CONFIG_DEBUG_SPINLOCK + bool ' Verbose BUG() reporting (adds 70K)' CONFIG_DEBUG_BUGVERBOSE +fi + endmenu Index: defconfig =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/defconfig,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- defconfig 25 Feb 2001 23:15:16 -0000 1.1.1.2 +++ defconfig 10 Apr 2002 14:23:20 -0000 1.2 @@ -35,17 +35,22 @@ # CONFIG_MWINCHIPC6 is not set # CONFIG_MWINCHIP2 is not set # CONFIG_MWINCHIP3D is not set +# CONFIG_MCYRIXIII is not set CONFIG_X86_WP_WORKS_OK=y CONFIG_X86_INVLPG=y CONFIG_X86_CMPXCHG=y +CONFIG_X86_XADD=y CONFIG_X86_BSWAP=y CONFIG_X86_POPAD_OK=y +# CONFIG_RWSEM_GENERIC_SPINLOCK is not set +CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_X86_L1_CACHE_SHIFT=5 CONFIG_X86_TSC=y CONFIG_X86_GOOD_APIC=y CONFIG_X86_PGE=y CONFIG_X86_USE_PPRO_CHECKSUM=y # CONFIG_TOSHIBA is not set +# CONFIG_I8K is not set # CONFIG_MICROCODE is not set # CONFIG_X86_MSR is not set # CONFIG_X86_CPUID is not set @@ -55,13 +60,13 @@ # CONFIG_MATH_EMULATION is not set # CONFIG_MTRR is not set CONFIG_SMP=y +# CONFIG_MULTIQUAD is not set CONFIG_HAVE_DEC_LOCK=y # # General setup # CONFIG_NET=y -# CONFIG_VISWS is not set CONFIG_X86_IO_APIC=y CONFIG_X86_LOCAL_APIC=y CONFIG_PCI=y @@ -80,8 +85,16 @@ # CONFIG_PCMCIA=y CONFIG_CARDBUS=y +# CONFIG_I82092 is not set # CONFIG_I82365 is not set # CONFIG_TCIC is not set + +# +# PCI Hotplug Support +# +# CONFIG_HOTPLUG_PCI is not set +# CONFIG_HOTPLUG_PCI_COMPAQ is not set +# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y @@ -132,6 +145,7 @@ # CONFIG_MD_RAID0 is not set # CONFIG_MD_RAID1 is not set # CONFIG_MD_RAID5 is not set +# CONFIG_MD_MULTIPATH is not set # CONFIG_BLK_DEV_LVM is not set # @@ -171,6 +185,7 @@ # # CONFIG_PHONE is not set # CONFIG_PHONE_IXJ is not set +# CONFIG_PHONE_IXJ_PCMCIA is not set # # ATA/IDE/MFM/RLL support @@ -188,7 +203,7 @@ # CONFIG_BLK_DEV_HD_IDE is not set # CONFIG_BLK_DEV_HD is not set CONFIG_BLK_DEV_IDEDISK=y -# CONFIG_IDEDISK_MULTI_MODE is not set +CONFIG_IDEDISK_MULTI_MODE=y # CONFIG_BLK_DEV_IDEDISK_VENDOR is not set # CONFIG_BLK_DEV_IDEDISK_FUJITSU is not set # CONFIG_BLK_DEV_IDEDISK_IBM is not set @@ -213,39 +228,45 @@ CONFIG_BLK_DEV_RZ1000=y CONFIG_BLK_DEV_IDEPCI=y CONFIG_IDEPCI_SHARE_IRQ=y -# CONFIG_BLK_DEV_IDEDMA_PCI is not set +CONFIG_BLK_DEV_IDEDMA_PCI=y +CONFIG_BLK_DEV_ADMA=y # CONFIG_BLK_DEV_OFFBOARD is not set -# CONFIG_IDEDMA_PCI_AUTO is not set -# CONFIG_BLK_DEV_IDEDMA is not set +CONFIG_IDEDMA_PCI_AUTO=y +CONFIG_BLK_DEV_IDEDMA=y # CONFIG_IDEDMA_PCI_WIP is not set # CONFIG_IDEDMA_NEW_DRIVE_LISTINGS is not set # CONFIG_BLK_DEV_AEC62XX is not set # CONFIG_AEC62XX_TUNING is not set # CONFIG_BLK_DEV_ALI15X3 is not set # CONFIG_WDC_ALI15X3 is not set -# CONFIG_BLK_DEV_AMD7409 is not set -# CONFIG_AMD7409_OVERRIDE is not set +# CONFIG_BLK_DEV_AMD74XX is not set +# CONFIG_AMD74XX_OVERRIDE is not set # CONFIG_BLK_DEV_CMD64X is not set # CONFIG_BLK_DEV_CY82C693 is not set # CONFIG_BLK_DEV_CS5530 is not set # CONFIG_BLK_DEV_HPT34X is not set # CONFIG_HPT34X_AUTODMA is not set # CONFIG_BLK_DEV_HPT366 is not set -# CONFIG_BLK_DEV_PIIX is not set -# CONFIG_PIIX_TUNING is not set +CONFIG_BLK_DEV_PIIX=y +CONFIG_PIIX_TUNING=y # CONFIG_BLK_DEV_NS87415 is not set # CONFIG_BLK_DEV_OPTI621 is not set # CONFIG_BLK_DEV_PDC202XX is not set # CONFIG_PDC202XX_BURST is not set -# CONFIG_BLK_DEV_OSB4 is not set +# CONFIG_PDC202XX_FORCE is not set +# CONFIG_BLK_DEV_SVWKS is not set # CONFIG_BLK_DEV_SIS5513 is not set # CONFIG_BLK_DEV_SLC90E66 is not set # CONFIG_BLK_DEV_TRM290 is not set # CONFIG_BLK_DEV_VIA82CXXX is not set # CONFIG_IDE_CHIPSETS is not set -# CONFIG_IDEDMA_AUTO is not set +CONFIG_IDEDMA_AUTO=y +# CONFIG_IDEDMA_IVB is not set # CONFIG_DMA_NONPCI is not set CONFIG_BLK_DEV_IDE_MODES=y +# CONFIG_BLK_DEV_ATARAID is not set +# CONFIG_BLK_DEV_ATARAID_PDC is not set +# CONFIG_BLK_DEV_ATARAID_HPT is not set # # SCSI support @@ -280,6 +301,8 @@ # CONFIG_SCSI_AHA1542 is not set # CONFIG_SCSI_AHA1740 is not set # CONFIG_SCSI_AIC7XXX is not set +# CONFIG_SCSI_AIC7XXX_OLD is not set +# CONFIG_SCSI_DPT_I2O is not set # CONFIG_SCSI_ADVANSYS is not set # CONFIG_SCSI_IN2000 is not set # CONFIG_SCSI_AM53C974 is not set @@ -299,6 +322,7 @@ # CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_NCR53C406A is not set # CONFIG_SCSI_NCR53C7xx is not set +# CONFIG_SCSI_SYM53C8XX_2 is not set # CONFIG_SCSI_NCR53C8XX is not set CONFIG_SCSI_SYM53C8XX=y CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=4 @@ -329,6 +353,15 @@ # CONFIG_SCSI_PCMCIA is not set # +# Fusion MPT device support +# +# CONFIG_FUSION is not set +# CONFIG_FUSION_BOOT is not set +# CONFIG_FUSION_ISENSE is not set +# CONFIG_FUSION_CTL is not set +# CONFIG_FUSION_LAN is not set + +# # I2O device support # # CONFIG_I2O is not set @@ -357,10 +390,17 @@ # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y +# CONFIG_SUNLANCE is not set +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNBMAC is not set +# CONFIG_SUNQE is not set +# CONFIG_SUNLANCE is not set +# CONFIG_SUNGEM is not set # CONFIG_NET_VENDOR_3COM is not set # CONFIG_LANCE is not set # CONFIG_NET_VENDOR_SMC is not set # CONFIG_NET_VENDOR_RACAL is not set +# CONFIG_AT1700 is not set # CONFIG_DEPCA is not set # CONFIG_HP100 is not set # CONFIG_NET_ISA is not set @@ -375,30 +415,37 @@ # CONFIG_DGRS is not set # CONFIG_DM9102 is not set CONFIG_EEPRO100=y -# CONFIG_EEPRO100_PM is not set # CONFIG_LNE390 is not set +# CONFIG_FEALNX is not set # CONFIG_NATSEMI is not set # CONFIG_NE2K_PCI is not set # CONFIG_NE3210 is not set # CONFIG_ES3210 is not set +# CONFIG_8139CP is not set # CONFIG_8139TOO is not set -# CONFIG_RTL8129 is not set +# CONFIG_8139TOO_PIO is not set +# CONFIG_8139TOO_TUNE_TWISTER is not set +# CONFIG_8139TOO_8129 is not set # CONFIG_SIS900 is not set # CONFIG_EPIC100 is not set # CONFIG_SUNDANCE is not set # CONFIG_TLAN is not set # CONFIG_VIA_RHINE is not set # CONFIG_WINBOND_840 is not set -# CONFIG_HAPPYMEAL is not set # CONFIG_NET_POCKET is not set # # Ethernet (1000 Mbit) # # CONFIG_ACENIC is not set +# CONFIG_DL2K is not set +# CONFIG_MYRI_SBUS is not set +# CONFIG_NS83820 is not set # CONFIG_HAMACHI is not set +# CONFIG_YELLOWFIN is not set # CONFIG_SK98LIN is not set # CONFIG_FDDI is not set +# CONFIG_PLIP is not set # CONFIG_PPP is not set # CONFIG_SLIP is not set @@ -429,15 +476,16 @@ # CONFIG_PCMCIA_NMCLAN is not set # CONFIG_PCMCIA_SMC91C92 is not set # CONFIG_PCMCIA_XIRC2PS is not set +# CONFIG_PCMCIA_AXNET is not set # CONFIG_ARCNET_COM20020_CS is not set # CONFIG_PCMCIA_IBMTR is not set +# CONFIG_PCMCIA_XIRCOM is not set # CONFIG_PCMCIA_XIRTULIP is not set CONFIG_NET_PCMCIA_RADIO=y CONFIG_PCMCIA_RAYCS=y # CONFIG_PCMCIA_NETWAVE is not set # CONFIG_PCMCIA_WAVELAN is not set # CONFIG_AIRONET4500_CS is not set -CONFIG_PCMCIA_NETCARD=y # # Amateur Radio support @@ -463,6 +511,10 @@ # Input core support # # CONFIG_INPUT is not set +# CONFIG_INPUT_KEYBDEV is not set +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_EVDEV is not set # # Character devices @@ -493,7 +545,11 @@ # # Joysticks # -# CONFIG_JOYSTICK is not set +# CONFIG_INPUT_GAMEPORT is not set + +# +# Input core support is needed for gameports +# # # Input core support is needed for joysticks @@ -522,6 +578,7 @@ CONFIG_AGP_AMD=y CONFIG_AGP_SIS=y CONFIG_AGP_ALI=y +# CONFIG_AGP_SWORKS is not set CONFIG_DRM=y CONFIG_DRM_TDFX=y # CONFIG_DRM_GAMMA is not set @@ -529,13 +586,12 @@ CONFIG_DRM_RADEON=y # CONFIG_DRM_I810 is not set # CONFIG_DRM_MGA is not set -CONFIG_PCMCIA_SERIAL=y # -# PCMCIA character device support +# PCMCIA character devices # # CONFIG_PCMCIA_SERIAL_CS is not set -# CONFIG_PCMCIA_SERIAL_CB is not set +# CONFIG_MWAVE is not set # # Multimedia devices @@ -550,22 +606,30 @@ CONFIG_AUTOFS4_FS=y # CONFIG_REISERFS_FS is not set # CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set # CONFIG_ADFS_FS is not set # CONFIG_ADFS_FS_RW is not set # CONFIG_AFFS_FS is not set # CONFIG_HFS_FS is not set # CONFIG_BFS_FS is not set +# CONFIG_EXT3_FS is not set +# CONFIG_JBD is not set +# CONFIG_JBD_DEBUG is not set # CONFIG_FAT_FS is not set # CONFIG_MSDOS_FS is not set # CONFIG_UMSDOS_FS is not set # CONFIG_VFAT_FS is not set # CONFIG_EFS_FS is not set # CONFIG_JFFS_FS is not set +# CONFIG_JFFS2_FS is not set # CONFIG_CRAMFS is not set +CONFIG_TMPFS=y # CONFIG_RAMFS is not set CONFIG_ISO9660_FS=y # CONFIG_JOLIET is not set +# CONFIG_ZISOFS is not set # CONFIG_MINIX_FS is not set +# CONFIG_VXFS_FS is not set # CONFIG_NTFS_FS is not set # CONFIG_NTFS_RW is not set # CONFIG_HPFS_FS is not set @@ -579,7 +643,6 @@ # CONFIG_ROMFS_FS is not set CONFIG_EXT2_FS=y # CONFIG_SYSV_FS is not set -# CONFIG_SYSV_FS_WRITE is not set # CONFIG_UDF_FS is not set # CONFIG_UDF_RW is not set # CONFIG_UFS_FS is not set @@ -589,6 +652,7 @@ # Network File Systems # # CONFIG_CODA_FS is not set +# CONFIG_INTERMEZZO_FS is not set CONFIG_NFS_FS=y # CONFIG_NFS_V3 is not set # CONFIG_ROOT_NFS is not set @@ -606,6 +670,8 @@ # CONFIG_NCPFS_SMALLDOS is not set # CONFIG_NCPFS_NLS is not set # CONFIG_NCPFS_EXTRAS is not set +# CONFIG_ZISOFS_FS is not set +# CONFIG_ZLIB_FS_INFLATE is not set # # Partition Types @@ -625,8 +691,10 @@ # Sound # CONFIG_SOUND=y +# CONFIG_SOUND_BT878 is not set # CONFIG_SOUND_CMPCI is not set # CONFIG_SOUND_EMU10K1 is not set +# CONFIG_MIDI_EMU10K1 is not set # CONFIG_SOUND_FUSION is not set # CONFIG_SOUND_CS4281 is not set # CONFIG_SOUND_ES1370 is not set @@ -635,11 +703,13 @@ # CONFIG_SOUND_MAESTRO is not set # CONFIG_SOUND_MAESTRO3 is not set # CONFIG_SOUND_ICH is not set +# CONFIG_SOUND_RME96XX is not set # CONFIG_SOUND_SONICVIBES is not set # CONFIG_SOUND_TRIDENT is not set # CONFIG_SOUND_MSNDCLAS is not set # CONFIG_SOUND_MSNDPIN is not set # CONFIG_SOUND_VIA82CXXX is not set +# CONFIG_MIDI_VIA82CXXX is not set # CONFIG_SOUND_OSS is not set # CONFIG_SOUND_TVMIXER is not set @@ -654,6 +724,7 @@ # # CONFIG_USB_DEVICEFS is not set # CONFIG_USB_BANDWIDTH is not set +# CONFIG_USB_LONG_TIMEOUT is not set # # USB Controllers @@ -668,7 +739,13 @@ # CONFIG_USB_BLUETOOTH is not set CONFIG_USB_STORAGE=y # CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_DATAFAB is not set # CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_DPCM is not set +# CONFIG_USB_STORAGE_HP8200e is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set # CONFIG_USB_ACM is not set # CONFIG_USB_PRINTER is not set @@ -687,21 +764,24 @@ # CONFIG_USB_MDC800 is not set # CONFIG_USB_SCANNER is not set # CONFIG_USB_MICROTEK is not set +# CONFIG_USB_HPUSBSCSI is not set # # USB Multimedia devices # -# CONFIG_USB_IBMCAM is not set -# CONFIG_USB_OV511 is not set -# CONFIG_USB_DSBR is not set -# CONFIG_USB_DABUSB is not set + +# +# Video4Linux support is needed for USB Multimedia device support +# # # USB Network adaptors # -# CONFIG_USB_PLUSB is not set # CONFIG_USB_PEGASUS is not set -# CONFIG_USB_NET1080 is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_CATC is not set +# CONFIG_USB_CDCETHER is not set +# CONFIG_USB_USBNET is not set # # USB port drivers @@ -712,13 +792,37 @@ # USB Serial Converter support # # CONFIG_USB_SERIAL is not set +# CONFIG_USB_SERIAL_GENERIC is not set +# CONFIG_USB_SERIAL_BELKIN is not set +# CONFIG_USB_SERIAL_WHITEHEAT is not set +# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set +# CONFIG_USB_SERIAL_EMPEG is not set +# CONFIG_USB_SERIAL_FTDI_SIO is not set +# CONFIG_USB_SERIAL_VISOR is not set +# CONFIG_USB_SERIAL_IR is not set +# CONFIG_USB_SERIAL_EDGEPORT is not set +# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +# CONFIG_USB_SERIAL_KEYSPAN is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set +# CONFIG_USB_SERIAL_MCT_U232 is not set +# CONFIG_USB_SERIAL_PL2303 is not set +# CONFIG_USB_SERIAL_CYBERJACK is not set +# CONFIG_USB_SERIAL_XIRCOM is not set +# CONFIG_USB_SERIAL_OMNINET is not set # -# USB misc drivers +# USB Miscellaneous drivers # # CONFIG_USB_RIO500 is not set # # Kernel hacking # -# CONFIG_MAGIC_SYSRQ is not set +# CONFIG_DEBUG_KERNEL is not set Index: vmlinux.lds =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/vmlinux.lds,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- vmlinux.lds 14 Jan 2001 19:19:47 -0000 1.1.1.1 +++ vmlinux.lds 10 Apr 2002 14:23:20 -0000 1.2 @@ -17,7 +17,7 @@ _etext = .; /* End of text section */ - .rodata : { *(.rodata) } + .rodata : { *(.rodata) *(.rodata.*) } .kstrtab : { *(.kstrtab) } . = ALIGN(16); /* Exception table */ |
Update of /cvsroot/linux-vax/kernel-2.4/arch/mips/dec In directory usw-pr-cvs1:/tmp/cvs-serv16972/mips/dec Modified Files: Makefile int-handler.S irq.c reset.c rtc-dec.c setup.c time.c wbflush.c Removed Files: serial.c Log Message: synch 2.4.15 Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips/dec/Makefile,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- Makefile 14 Jan 2001 19:28:53 -0000 1.1.1.1 +++ Makefile 10 Apr 2002 14:38:05 -0000 1.2 @@ -7,30 +7,19 @@ # .S.s: - $(CPP) $(CFLAGS) $< -o $*.s + $(CPP) $(AFLAGS) $< -o $@ .S.o: - $(CC) $(CFLAGS) -c $< -o $*.o + $(CC) $(AFLAGS) -c $< -o $@ -all: dec.o O_TARGET := dec.o -O_OBJS := int-handler.o setup.o irq.o time.o reset.o rtc-dec.o -ifdef CONFIG_PROM_CONSOLE -O_OBJS += promcon.o -endif +all: dec.o -ifdef CONFIG_SERIAL -O_OBJS += serial.o -endif +export-objs := wbflush.o +obj-y := int-handler.o setup.o irq.o time.o reset.o rtc-dec.o wbflush.o -ifeq ($(CONFIG_MODULES),y) - OX_OBJS = wbflush.o -else - O_OBJS += wbflush.o -endif +obj-$(CONFIG_PROM_CONSOLE) += promcon.o int-handler.o: int-handler.S - -clean: include $(TOPDIR)/Rules.make Index: int-handler.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips/dec/int-handler.S,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- int-handler.S 14 Jan 2001 19:28:54 -0000 1.1.1.1 +++ int-handler.S 10 Apr 2002 14:38:05 -0000 1.2 @@ -2,6 +2,7 @@ * arch/mips/dec/int-handler.S * * Copyright (C) 1995, 1996, 1997 Paul M. Antoine and Harald Koerfgen + * Copyright (C) 2000 Maciej W. Rozycki * * Written by Ralf Baechle and Andreas Busse, modified for DECStation * support by Paul Antoine and Harald Koerfgen. @@ -16,6 +17,11 @@ #include <asm/stackframe.h> #include <asm/addrspace.h> +#include <asm/dec/kn01.h> +#include <asm/dec/kn02.h> +#include <asm/dec/kn02xa.h> +#include <asm/dec/kn03.h> +#include <asm/dec/ioasic_addrs.h> #include <asm/dec/interrupts.h> @@ -24,8 +30,6 @@ /* * decstation_handle_int: Interrupt handler for DECStations * - * FIXME: Detection of spurious interrupts not yet implemented! - * * We follow the model in the Indy interrupt code by David Miller, where he * says: a lot of complication here is taken away because: * @@ -139,12 +143,12 @@ la t1,cpu_mask_tbl and t0,t2 # isolate allowed ones - /* insert detection of spurious interrupts here */ + beqz t0,spurious /* * Find irq with highest priority */ -1: lw t2,(t1) +1: lw t2,(t1) move t3,t0 and t3,t2 beq t3,zero,1b @@ -156,18 +160,18 @@ lw a0,%lo(cpu_irq_nr-cpu_mask_tbl-PTRSIZE)(t1) lw t0,%lo(cpu_ivec_tbl-cpu_mask_tbl-PTRSIZE)(t1) bgez a0, handle_it # irq_nr >= 0? - # irq_nr < 0: a0 contains an address - nop + # irq_nr < 0: t0 contains an address + nop jr t0 nop # delay slot /* * Handle "IRQ Controller" Interrupts * Masked Interrupts are still visible and have to be masked "by hand". - * %hi(KN02_CSR_ADDR) does not work so all addresses are hardcoded :-(. */ EXPORT(kn02_io_int) -kn02_io_int: lui t0,0xbff0 # get interrupt status and mask +kn02_io_int: # 3max + lui t0,KN02_CSR_ADDR>>16 # get interrupt status and mask lw t0,(t0) la t1,asic_mask_tbl move t3,t0 @@ -176,27 +180,32 @@ and t0,t3 # mask out allowed ones EXPORT(kn03_io_int) -kn03_io_int: lui t2,0xbf84 # upper part of IOASIC Address - lw t0,0x0110(t2) # get status: IOASIC isr - lw t3,0x0120(t2) # get mask: IOASIC isrm +kn03_io_int: # 3max+ + lui t2,KN03_IOASIC_BASE>>16 # upper part of IOASIC Address + lw t0,SIR(t2) # get status: IOASIC isr + lw t3,SIMR(t2) # get mask: IOASIC isrm la t1,asic_mask_tbl b find_int and t0,t3 # mask out allowed ones - EXPORT(kn02ba_io_int) -kn02ba_io_int: lui t2,0xbc04 - lw t0,0x0110(t2) # IOASIC isr, works for maxine also - lw t3,0x0120(t2) # IOASIC isrm + EXPORT(kn02xa_io_int) +kn02xa_io_int: # 3min/maxine + lui t2,KN02XA_IOASIC_BASE>>16 + # upper part of IOASIC Address + lw t0,SIR(t2) # get status: IOASIC isr + lw t3,SIMR(t2) # get mask: IOASIC isrm la t1,asic_mask_tbl and t0,t3 /* * Find irq with highest priority */ -find_int: lw t2,(t1) +find_int: beqz t0,spurious + +1: lw t2,(t1) move t3,t0 and t3,t2 - beq zero,t3,find_int + beq zero,t3,1b addu t1,PTRSIZE # delay slot /* @@ -209,7 +218,10 @@ move a1,sp j ret_from_irq nop - + +spurious: + j spurious_interrupt + nop END(decstation_handle_int) /* * Interrupt routines common to all DECStations first. @@ -218,14 +230,6 @@ dec_intr_fpu: PANIC("Unimplemented FPU interrupt handler") /* - * Halt interrupt - */ - EXPORT(intr_halt) -intr_halt: la k0,0xbc000000 - jr k0 - nop - -/* * Generic unimplemented interrupt routines - ivec_tbl is initialised to * point all interrupts here. The table is then filled in by machine-specific * initialisation in dec_setup(). @@ -358,5 +362,3 @@ .word 0 .word 0 .word 0xffffffff # EOL - - Index: irq.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips/dec/irq.c,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- irq.c 25 Feb 2001 23:15:18 -0000 1.1.1.2 +++ irq.c 10 Apr 2002 14:38:05 -0000 1.2 @@ -2,9 +2,7 @@ * Code to handle DECstation IRQs plus some generic interrupt stuff. * * Copyright (C) 1992 Linus Torvalds - * Copyright (C) 1994, 1995, 1996, 1997 Ralf Baechle - * - * $Id$ + * Copyright (C) 1994, 1995, 1996, 1997, 2000 Ralf Baechle */ #include <linux/errno.h> #include <linux/init.h> @@ -27,9 +25,14 @@ #include <asm/dec/interrupts.h> -extern volatile unsigned int *isr; /* address of the interrupt status register */ -extern volatile unsigned int *imr; /* address of the interrupt mask register */ -extern decint_t dec_interrupt[NR_INTS]; +extern void dec_init_kn01(void); +extern void dec_init_kn230(void); +extern void dec_init_kn02(void); +extern void dec_init_kn02ba(void); +extern void dec_init_kn02ca(void); +extern void dec_init_kn03(void); + +extern asmlinkage void decstation_handle_int(void); unsigned long spurious_count = 0; @@ -42,7 +45,7 @@ dummy = *imr; dummy = *imr; } else /* This is a cpu interrupt */ - set_cp0_status(ST0_IM, read_32bit_cp0_register(CP0_STATUS) & ~dec_interrupt[irq_nr].cpu_mask); + change_cp0_status(ST0_IM, read_32bit_cp0_register(CP0_STATUS) & ~dec_interrupt[irq_nr].cpu_mask); } static inline void unmask_irq(unsigned int irq_nr) @@ -54,7 +57,7 @@ dummy = *imr; dummy = *imr; } - set_cp0_status(ST0_IM, read_32bit_cp0_register(CP0_STATUS) | dec_interrupt[irq_nr].cpu_mask); + change_cp0_status(ST0_IM, read_32bit_cp0_register(CP0_STATUS) | dec_interrupt[irq_nr].cpu_mask); } void disable_irq(unsigned int irq_nr) @@ -125,7 +128,7 @@ int do_random, cpu; cpu = smp_processor_id(); - irq_enter(cpu); + irq_enter(cpu, irq); kstat.irqs[cpu][irq]++; mask_irq(irq); @@ -142,10 +145,10 @@ } while (action); if (do_random & SA_SAMPLE_RANDOM) add_interrupt_randomness(irq); - unmask_irq(irq); __cli(); + unmask_irq(irq); } - irq_exit(cpu); + irq_exit(cpu, irq); /* unmasking and bottom half handling is done magically for us. */ } @@ -261,5 +264,34 @@ void __init init_IRQ(void) { - irq_setup(); + switch (mips_machtype) { + case MACH_DS23100: + dec_init_kn01(); + break; + case MACH_DS5100: /* DS5100 MIPSMATE */ + dec_init_kn230(); + break; + case MACH_DS5000_200: /* DS5000 3max */ + dec_init_kn02(); + break; + case MACH_DS5000_1XX: /* DS5000/100 3min */ + dec_init_kn02ba(); + break; + case MACH_DS5000_2X0: /* DS5000/240 3max+ */ + dec_init_kn03(); + break; + case MACH_DS5000_XX: /* Personal DS5000/2x */ + dec_init_kn02ca(); + break; + case MACH_DS5800: /* DS5800 Isis */ + panic("Don't know how to set this up!"); + break; + case MACH_DS5400: /* DS5400 MIPSfair */ + panic("Don't know how to set this up!"); + break; + case MACH_DS5500: /* DS5500 MIPSfair-2 */ + panic("Don't know how to set this up!"); + break; + } + set_except_vector(0, decstation_handle_int); } Index: reset.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips/dec/reset.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- reset.c 14 Jan 2001 19:28:55 -0000 1.1.1.1 +++ reset.c 10 Apr 2002 14:38:05 -0000 1.2 @@ -23,3 +23,7 @@ back_to_prom(); } +void dec_intr_halt(int irq, void *dev_id, struct pt_regs *regs) +{ + dec_machine_halt(); +} Index: rtc-dec.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips/dec/rtc-dec.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- rtc-dec.c 14 Jan 2001 19:28:55 -0000 1.1.1.1 +++ rtc-dec.c 10 Apr 2002 14:38:05 -0000 1.2 @@ -1,13 +1,12 @@ - -/* $Id$ - +/* * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. * * RTC routines for DECstation style attached Dallas chip. * - * Copyright (C) 1998 by Ralf Baechle, Harald Koerfgen + * Copyright (C) 1998, 2001 by Ralf Baechle + * Copyright (C) 1998 by Harald Koerfgen */ #include <linux/mc146818rtc.h> Index: setup.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips/dec/setup.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- setup.c 14 Jan 2001 19:28:57 -0000 1.1.1.1 +++ setup.c 10 Apr 2002 14:38:05 -0000 1.2 @@ -6,11 +6,13 @@ * for more details. * * Copyright (C) 1998 Harald Koerfgen + * Copyright (C) 2000 Maciej W. Rozycki */ #include <linux/sched.h> #include <linux/interrupt.h> #include <linux/mc146818rtc.h> #include <linux/param.h> +#include <linux/console.h> #include <asm/mipsregs.h> #include <asm/bootinfo.h> #include <linux/init.h> @@ -22,25 +24,19 @@ #include <asm/dec/kn02.h> #include <asm/dec/kn02xa.h> #include <asm/dec/kn03.h> +#include <asm/dec/ioasic.h> +#include <asm/dec/ioasic_addrs.h> #include <asm/dec/ioasic_ints.h> -extern asmlinkage void decstation_handle_int(void); -void dec_init_kn01(void); -void dec_init_kn230(void); -void dec_init_kn02(void); -void dec_init_kn02ba(void); -void dec_init_kn02ca(void); -void dec_init_kn03(void); +char *dec_rtc_base = (void *) KN01_RTC_BASE; /* Assume DS2100/3100 initially */ -char *dec_rtc_base = (char *) KN01_RTC_BASE; /* Assume DS2100/3100 initially */ +volatile unsigned int *ioasic_base; decint_t dec_interrupt[NR_INTS]; -/* +/* * Information regarding the IRQ Controller - * - * isr and imr are also hardcoded for different machines in int_handler.S */ volatile unsigned int *isr = 0L; /* address of the interrupt status register */ @@ -49,50 +45,17 @@ extern void dec_machine_restart(char *command); extern void dec_machine_halt(void); extern void dec_machine_power_off(void); +extern void dec_intr_halt(int irq, void *dev_id, struct pt_regs *regs); extern void wbflush_setup(void); extern struct rtc_ops dec_rtc_ops; -extern void intr_halt(void); - extern int setup_dec_irq(int, struct irqaction *); void (*board_time_init) (struct irqaction * irq); -static void __init dec_irq_setup(void) -{ - switch (mips_machtype) { - case MACH_DS23100: - dec_init_kn01(); - break; - case MACH_DS5100: /* DS5100 MIPSMATE */ - dec_init_kn230(); - break; - case MACH_DS5000_200: /* DS5000 3max */ - dec_init_kn02(); - break; - case MACH_DS5000_1XX: /* DS5000/100 3min */ - dec_init_kn02ba(); - break; - case MACH_DS5000_2X0: /* DS5000/240 3max+ */ - dec_init_kn03(); - break; - case MACH_DS5000_XX: /* Personal DS5000/2x */ - dec_init_kn02ca(); - break; - case MACH_DS5800: /* DS5800 Isis */ - panic("Don't know how to set this up!"); - break; - case MACH_DS5400: /* DS5400 MIPSfair */ - panic("Don't know how to set this up!"); - break; - case MACH_DS5500: /* DS5500 MIPSfair-2 */ - panic("Don't know how to set this up!"); - break; - } - set_except_vector(0, decstation_handle_int); -} +static struct irqaction irq10 = {dec_intr_halt, 0, 0, "halt", NULL, NULL}; /* * enable the periodic interrupts @@ -112,9 +75,16 @@ setup_dec_irq(CLOCK, irq); } +/* + * Enable the halt interrupt. + */ +static void __init dec_halt_init(struct irqaction *irq) +{ + setup_dec_irq(HALT, irq); +} + void __init decstation_setup(void) { - irq_setup = dec_irq_setup; board_time_init = dec_time_init; wbflush_setup(); @@ -123,6 +93,10 @@ _machine_halt = dec_machine_halt; _machine_power_off = dec_machine_power_off; +#ifdef CONFIG_FB + conswitchp = &dummy_con; +#endif + rtc_ops = &dec_rtc_ops; } @@ -206,8 +180,8 @@ * Setup some memory addresses. FIXME: probably incomplete! */ dec_rtc_base = (char *) KN02_RTC_BASE; - isr = (volatile unsigned int *) KN02_CSR_ADDR; - imr = (volatile unsigned int *) KN02_CSR_ADDR; + isr = (void *) KN02_CSR_ADDR; + imr = (void *) KN02_CSR_ADDR; /* * Setup IOASIC interrupt @@ -275,16 +249,17 @@ /* * Setup some memory addresses. */ + ioasic_base = (void *) KN02XA_IOASIC_BASE; dec_rtc_base = (char *) KN02XA_RTC_BASE; - isr = (volatile unsigned int *) KN02XA_SIR_ADDR; - imr = (volatile unsigned int *) KN02XA_SIRM_ADDR; + isr = (void *) KN02XA_IOASIC_REG(SIR); + imr = (void *) KN02XA_IOASIC_REG(SIMR); /* * Setup IOASIC interrupt */ cpu_mask_tbl[0] = IE_IRQ3; cpu_irq_nr[0] = -1; - cpu_ivec_tbl[0] = kn02ba_io_int; + cpu_ivec_tbl[0] = kn02xa_io_int; *imr = 0; /* @@ -345,6 +320,7 @@ cpu_mask_tbl[5] = IE_IRQ5; cpu_irq_nr[5] = FPU; + dec_halt_init(&irq10); } /* dec_init_kn02ba */ /* @@ -355,14 +331,15 @@ /* * Setup some memory addresses. FIXME: probably incomplete! */ + ioasic_base = (void *) KN02XA_IOASIC_BASE; dec_rtc_base = (char *) KN02XA_RTC_BASE; - isr = (volatile unsigned int *) KN02XA_SIR_ADDR; - imr = (volatile unsigned int *) KN02XA_SIRM_ADDR; + isr = (void *) KN02XA_IOASIC_REG(SIR); + imr = (void *) KN02XA_IOASIC_REG(SIMR); /* * Setup IOASIC interrupt */ - cpu_ivec_tbl[1] = kn02ba_io_int; + cpu_ivec_tbl[1] = kn02xa_io_int; cpu_irq_nr[1] = -1; cpu_mask_tbl[1] = IE_IRQ3; *imr = 0; @@ -420,6 +397,7 @@ cpu_mask_tbl[4] = IE_IRQ5; cpu_irq_nr[4] = FPU; + dec_halt_init(&irq10); } /* dec_init_kn02ca */ /* @@ -430,9 +408,10 @@ /* * Setup some memory addresses. FIXME: probably incomplete! */ + ioasic_base = (void *) KN03_IOASIC_BASE; dec_rtc_base = (char *) KN03_RTC_BASE; - isr = (volatile unsigned int *) KN03_SIR_ADDR; - imr = (volatile unsigned int *) KN03_SIRM_ADDR; + isr = (void *) KN03_IOASIC_REG(SIR); + imr = (void *) KN03_IOASIC_REG(SIMR); /* * Setup IOASIC interrupt @@ -500,4 +479,5 @@ cpu_mask_tbl[4] = IE_IRQ5; cpu_irq_nr[4] = FPU; + dec_halt_init(&irq10); } /* dec_init_kn03 */ Index: time.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips/dec/time.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- time.c 14 Jan 2001 19:28:59 -0000 1.1.1.1 +++ time.c 10 Apr 2002 14:38:05 -0000 1.2 @@ -1,8 +1,8 @@ - /* - * linux/arch/mips/kernel/time.c + * linux/arch/mips/dec/time.c * * Copyright (C) 1991, 1992, 1995 Linus Torvalds + * Copyright (C) 2000 Maciej W. Rozycki * * This file contains the time handling details for PC-style clocks as * found in some MIPS systems. @@ -17,14 +17,22 @@ #include <linux/mm.h> #include <linux/interrupt.h> +#include <asm/cpu.h> #include <asm/bootinfo.h> #include <asm/mipsregs.h> #include <asm/io.h> #include <asm/irq.h> +#include <asm/dec/machtype.h> +#include <asm/dec/ioasic.h> +#include <asm/dec/ioasic_addrs.h> #include <linux/mc146818rtc.h> #include <linux/timex.h> +#include <asm/div64.h> + +extern void (*board_time_init)(struct irqaction *irq); + extern volatile unsigned long wall_jiffies; extern rwlock_t xtime_lock; @@ -36,12 +44,22 @@ /* This is for machines which generate the exact clock. */ #define USECS_PER_JIFFY (1000000/HZ) +#define USECS_PER_JIFFY_FRAC ((1000000ULL << 32) / HZ & 0xffffffff) /* Cycle counter value at the previous timer interrupt.. */ static unsigned int timerhi, timerlo; /* + * Cached "1/(clocks per usec)*2^32" value. + * It has to be recalculated once each jiffy. + */ +static unsigned long cached_quotient = 0; + +/* Last jiffy when do_fast_gettimeoffset() was called. */ +static unsigned long last_jiffies = 0; + +/* * On MIPS only R4000 and better have a cycle counter. * * FIXME: Does playing with the RP bit in c0_status interfere with this code? @@ -50,45 +68,34 @@ { u32 count; unsigned long res, tmp; - - /* Last jiffy when do_fast_gettimeoffset() was called. */ - static unsigned long last_jiffies = 0; unsigned long quotient; - /* - * Cached "1/(clocks per usec)*2^32" value. - * It has to be recalculated once each jiffy. - */ - static unsigned long cached_quotient = 0; - tmp = jiffies; quotient = cached_quotient; - if (tmp && last_jiffies != tmp) { - last_jiffies = tmp; - __asm__(".set\tnoreorder\n\t" - ".set\tnoat\n\t" - ".set\tmips3\n\t" - "lwu\t%0,%2\n\t" - "dsll32\t$1,%1,0\n\t" - "or\t$1,$1,%0\n\t" - "ddivu\t$0,$1,%3\n\t" - "mflo\t$1\n\t" - "dsll32\t%0,%4,0\n\t" - "nop\n\t" - "ddivu\t$0,%0,$1\n\t" - "mflo\t%0\n\t" - ".set\tmips0\n\t" - ".set\tat\n\t" - ".set\treorder" - :"=&r"(quotient) - :"r"(timerhi), - "m"(timerlo), - "r"(tmp), - "r"(USECS_PER_JIFFY) - :"$1"); + if (last_jiffies != tmp) { + last_jiffies = tmp; + if (last_jiffies != 0) { + unsigned long r0; + __asm__(".set push\n\t" + ".set mips3\n\t" + "lwu %0,%3\n\t" + "dsll32 %1,%2,0\n\t" + "or %1,%1,%0\n\t" + "ddivu $0,%1,%4\n\t" + "mflo %1\n\t" + "dsll32 %0,%5,0\n\t" + "or %0,%0,%6\n\t" + "ddivu $0,%0,%1\n\t" + "mflo %0\n\t" + ".set pop" + : "=&r" (quotient), "=&r" (r0) + : "r" (timerhi), "m" (timerlo), + "r" (tmp), "r" (USECS_PER_JIFFY), + "r" (USECS_PER_JIFFY_FRAC)); cached_quotient = quotient; + } } /* Get last timer tick in absolute kernel time */ count = read_32bit_cp0_register(CP0_COUNT); @@ -97,11 +104,9 @@ count -= timerlo; //printk("count: %08lx, %08lx:%08lx\n", count, timerhi, timerlo); - __asm__("multu\t%1,%2\n\t" - "mfhi\t%0" - :"=r"(res) - :"r"(count), - "r"(quotient)); + __asm__("multu %2,%3" + : "=l" (tmp), "=h" (res) + : "r" (count), "r" (quotient)); /* * Due to possible jiffies inconsistencies, we need to check @@ -113,6 +118,47 @@ return res; } +static unsigned long do_ioasic_gettimeoffset(void) +{ + u32 count; + unsigned long res, tmp; + unsigned long quotient; + + tmp = jiffies; + + quotient = cached_quotient; + + if (last_jiffies != tmp) { + last_jiffies = tmp; + if (last_jiffies != 0) { + unsigned long r0; + do_div64_32(r0, timerhi, timerlo, tmp); + do_div64_32(quotient, USECS_PER_JIFFY, + USECS_PER_JIFFY_FRAC, r0); + cached_quotient = quotient; + } + } + /* Get last timer tick in absolute kernel time */ + count = ioasic_read(FCTR); + + /* .. relative to previous jiffy (32 bits is enough) */ + count -= timerlo; +//printk("count: %08x, %08x:%08x\n", count, timerhi, timerlo); + + __asm__("multu %2,%3" + : "=l" (tmp), "=h" (res) + : "r" (count), "r" (quotient)); + + /* + * Due to possible jiffies inconsistencies, we need to check + * the result so that we'll get a timer that is monotonic. + */ + if (res >= USECS_PER_JIFFY) + res = USECS_PER_JIFFY - 1; + + return res; +} + /* This function must be called with interrupts disabled * It was inspired by Steve McCanne's microtime-i386 for BSD. -- jrs * @@ -170,8 +216,8 @@ tv->tv_usec += do_gettimeoffset(); /* - * xtime is atomically updated in timer_bh. lost_ticks is - * nonzero if the timer bottom half hasnt executed yet. + * xtime is atomically updated in timer_bh. jiffies - wall_jiffies + * is nonzero if the timer bottom half hasnt executed yet. */ if (jiffies - wall_jiffies) tv->tv_usec += USECS_PER_JIFFY; @@ -187,6 +233,7 @@ void do_settimeofday(struct timeval *tv) { write_lock_irq(&xtime_lock); + /* This is revolting. We need to set the xtime.tv_usec * correctly. However, the value in this location is * is value at the last tick. @@ -199,10 +246,13 @@ tv->tv_usec += 1000000; tv->tv_sec--; } + xtime = *tv; - time_state = TIME_BAD; - time_maxerror = MAXPHASE; - time_esterror = MAXPHASE; + time_adjust = 0; /* stop active adjtime() */ + time_status |= STA_UNSYNC; + time_maxerror = NTP_PHASE_LIMIT; + time_esterror = NTP_PHASE_LIMIT; + write_unlock_irq(&xtime_lock); } @@ -307,13 +357,16 @@ * called as close as possible to 500 ms before the new second starts. */ read_lock(&xtime_lock); - if (time_state != TIME_BAD && xtime.tv_sec > last_rtc_update + 660 && - xtime.tv_usec > 500000 - (tick >> 1) && - xtime.tv_usec < 500000 + (tick >> 1)) + if ((time_status & STA_UNSYNC) == 0 + && xtime.tv_sec > last_rtc_update + 660 + && xtime.tv_usec >= 500000 - tick / 2 + && xtime.tv_usec <= 500000 + tick / 2) { if (set_rtc_mmss(xtime.tv_sec) == 0) last_rtc_update = xtime.tv_sec; else - last_rtc_update = xtime.tv_sec - 600; /* do it again in 60 s */ + /* do it again in 60 s */ + last_rtc_update = xtime.tv_sec - 600; + } /* As we return to user mode fire off the other CPU schedulers.. this is basically because we don't yet share IRQ's around. This message is rigged to be safe on the 386 - basically it's a hack, so don't look @@ -334,66 +387,50 @@ timerhi += (count < timerlo); /* Wrap around */ timerlo = count; - timer_interrupt(irq, dev_id, regs); - - if (!jiffies) { + if (jiffies == ~0) { /* - * If jiffies has overflowed in this timer_interrupt we must + * If jiffies is to overflow in this timer_interrupt we must * update the timer[hi]/[lo] to make do_fast_gettimeoffset() * quotient calc still valid. -arca */ + write_32bit_cp0_register(CP0_COUNT, 0); timerhi = timerlo = 0; } -} -char cyclecounter_available; + timer_interrupt(irq, dev_id, regs); +} -static inline void init_cycle_counter(void) +static void ioasic_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - switch (mips_cputype) { - case CPU_UNKNOWN: - case CPU_R2000: - case CPU_R3000: - case CPU_R3000A: - case CPU_R3041: - case CPU_R3051: - case CPU_R3052: - case CPU_R3081: - case CPU_R3081E: - case CPU_R6000: - case CPU_R6000A: - case CPU_R8000: /* Not shure about that one, play safe */ - cyclecounter_available = 0; - break; - case CPU_R4000PC: - case CPU_R4000SC: - case CPU_R4000MC: - case CPU_R4200: - case CPU_R4400PC: - case CPU_R4400SC: - case CPU_R4400MC: - case CPU_R4600: - case CPU_R10000: - case CPU_R4300: - case CPU_R4650: - case CPU_R4700: - case CPU_R5000: - case CPU_R5000A: - case CPU_R4640: - case CPU_NEVADA: - cyclecounter_available = 1; - break; + unsigned int count; + + /* + * The free-running counter is 32 bit which is good for about + * 2 minutes, 50 seconds at possible count rates of upto 25MHz. + */ + count = ioasic_read(FCTR); + timerhi += (count < timerlo); /* Wrap around */ + timerlo = count; + + if (jiffies == ~0) { + /* + * If jiffies is to overflow in this timer_interrupt we must + * update the timer[hi]/[lo] to make do_fast_gettimeoffset() + * quotient calc still valid. -arca + */ + ioasic_write(FCTR, 0); + timerhi = timerlo = 0; } + + timer_interrupt(irq, dev_id, regs); } struct irqaction irq0 = {timer_interrupt, SA_INTERRUPT, 0, "timer", NULL, NULL}; -void (*board_time_init) (struct irqaction * irq); - void __init time_init(void) { - unsigned int year, mon, day, hour, min, sec; + unsigned int year, mon, day, hour, min, sec, real_year; int i; /* The Linux interpretation of the CMOS clock register contents: @@ -425,23 +462,26 @@ BCD_TO_BIN(year); } /* - * The DECstation RTC is used as a TOY (Time Of Year). - * The PROM will reset the year to either '70, '71 or '72. - * This hack will only work until Dec 31 2001. + * The PROM will reset the year to either '72 or '73. + * Therefore we store the real year separately, in one + * of unused BBU RAM locations. */ - year += 1928; + real_year = CMOS_READ(RTC_DEC_YEAR); + year += real_year - 72 + 2000; write_lock_irq(&xtime_lock); xtime.tv_sec = mktime(year, mon, day, hour, min, sec); xtime.tv_usec = 0; write_unlock_irq(&xtime_lock); - init_cycle_counter(); - - if (cyclecounter_available) { + if (mips_cpu.options & MIPS_CPU_COUNTER) { write_32bit_cp0_register(CP0_COUNT, 0); do_gettimeoffset = do_fast_gettimeoffset; irq0.handler = r4k_timer_interrupt; - } + } else if (IOASIC) { + ioasic_write(FCTR, 0); + do_gettimeoffset = do_ioasic_gettimeoffset; + irq0.handler = ioasic_timer_interrupt; + } board_time_init(&irq0); } Index: wbflush.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips/dec/wbflush.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- wbflush.c 14 Jan 2001 19:28:59 -0000 1.1.1.1 +++ wbflush.c 10 Apr 2002 14:38:05 -0000 1.2 @@ -103,8 +103,6 @@ { } -#ifdef EXPORT_SYMTAB #include <linux/module.h> EXPORT_SYMBOL(__wbflush); -#endif --- serial.c DELETED --- |
Update of /cvsroot/linux-vax/kernel-2.4/arch/ppc/chrpboot In directory usw-pr-cvs1:/tmp/cvs-serv25860/ppc/chrpboot Removed Files: Makefile addnote.c crt0.S main.c misc.S mknote.c no_initrd.c piggyback.c start.c Log Message: synch 2.4.15 commit 43 --- Makefile DELETED --- --- addnote.c DELETED --- --- crt0.S DELETED --- --- main.c DELETED --- --- misc.S DELETED --- --- mknote.c DELETED --- --- no_initrd.c DELETED --- --- piggyback.c DELETED --- --- start.c DELETED --- |
From: Andy P. <at...@us...> - 2002-04-10 18:40:12
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/sparc/prom In directory usw-pr-cvs1:/tmp/cvs-serv31330/sparc/prom Modified Files: Makefile bootstr.c console.c devmap.c devops.c init.c memory.c misc.c mp.c palloc.c printf.c ranges.c segment.c tree.c Log Message: synch 2.4.15 commit 45 Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/prom/Makefile,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 Index: bootstr.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/prom/bootstr.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 Index: console.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/prom/console.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- console.c 14 Jan 2001 19:26:43 -0000 1.1.1.1 +++ console.c 10 Apr 2002 15:17:43 -0000 1.2 @@ -3,7 +3,7 @@ * to/from the current console device using the PROM. * * Copyright (C) 1995 David S. Miller (da...@ca...) - * Copyright (C) 1998 Pete Zaitcev <za...@me...> + * Copyright (C) 1998 Pete Zaitcev <za...@ya...> */ #include <linux/types.h> @@ -207,6 +207,7 @@ } break; default: - } + ; + }; return PROMDEV_O_UNK; } Index: devmap.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/prom/devmap.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 Index: devops.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/prom/devops.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 Index: init.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/prom/init.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 Index: memory.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/prom/memory.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 Index: misc.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/prom/misc.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 Index: mp.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/prom/mp.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 Index: palloc.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/prom/palloc.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 Index: printf.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/prom/printf.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 Index: ranges.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/prom/ranges.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 Index: segment.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/prom/segment.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 Index: tree.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/prom/tree.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 |
From: Andy P. <at...@us...> - 2002-04-10 18:40:06
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/arm/boot/compressed In directory usw-pr-cvs1:/tmp/cvs-serv24336/arm/boot/compressed Modified Files: Makefile head-sa1100.S head-shark.S head.S ll_char_wr.S misc.c ofw-shark.c vmlinux.lds.in Added Files: head-clps7500.S head-integrator.S Removed Files: setup-sa1100.S Log Message: synch 2.4.15 commit 32 --- NEW FILE --- /* * linux/arch/arm/boot/compressed/head.S * * Copyright (C) 1999, 2000, 2001 Nexus Electronics Ltd */ #include <linux/config.h> /* There are three different ways the kernel can be booted on a 7500 system: from Angel (loaded in RAM), from 16-bit ROM or from 32-bit Flash. Luckily, a single kernel image does for them all. */ /* This branch is taken if the CPU memory width matches the actual device in use. The default at power on is 16 bits so we must be prepared for a mismatch. */ .section ".start", #alloc, #execinstr 2: b 1f .word 0xffff .word 0xb632 @ mov r11, #0x03200000 .word 0xe3a0 .word 0x0000 @ mov r0, #0 .word 0xe3a0 .word 0x0080 @ strb r0, [r11, #0x80] .word 0xe5cb .word 0xf000 @ mov pc, #0 .word 0xe3a0 1: adr r1, 2b teq r1, #0 bne .Langel /* This is a direct-from-ROM boot. Copy the kernel into RAM and run it there. */ mov r0, #0x30 mcr p15, 0, r0, c1, c0, 0 mov r0, #0x13 msr cpsr, r0 mov r12, #0x03000000 @ point to LEDs orr r12, r12, #0x00020000 orr r12, r12, #0xba00 mov r0, #0x5500 str r0, [r12] mov r0, #0x10000000 orr r0, r0, #0x8000 mov r4, r0 ldr r2, =_end 2: ldr r3, [r1], #4 str r3, [r0], #4 teq r0, r2 bne 2b mov r0, #0xff00 str r0, [r12] 1: mov r12, #0x03000000 @ point to LEDs orr r12, r12, #0x00020000 orr r12, r12, #0xba00 mov r0, #0xfe00 str r0, [r12] adr lr, 1f mov r0, #0 mov r1, #14 /* MACH_TYPE_CLPS7500 */ mov pc, lr .Langel: #ifdef CONFIG_ANGELBOOT /* Call Angel to switch into SVC mode. */ mov r0, #0x17 swi 0x123456 #endif /* Ensure all interrupts are off and MMU disabled */ mrs r0, cpsr orr r0, r0, #0xc0 msr cpsr, r0 adr lr, 1b orr lr, lr, #0x10000000 mov r0, #0x30 @ MMU off mcr p15, 0, r0, c1, c0, 0 mov r0, r0 mov pc, lr .ltorg 1: /* And the rest */ #include "head.S" --- NEW FILE --- #include <asm/mach-types.h> .section ".start", #alloc, #execinstr mov r7, #MACH_TYPE_INTEGRATOR Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/arm/boot/compressed/Makefile,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- Makefile 25 Feb 2001 23:15:20 -0000 1.1.1.2 +++ Makefile 10 Apr 2002 13:51:20 -0000 1.2 @@ -9,7 +9,7 @@ HEAD = head.o OBJS = misc.o -CFLAGS = $(CPPFLAGS) -O2 -DSTDC_HEADERS $(CFLAGS_PROC) +CFLAGS = $(CPPFLAGS) -O2 -DSTDC_HEADERS $(CFLAGS_PROC) -msoft-float FONTC = $(TOPDIR)/drivers/video/font_acorn_8x8.c ZLDFLAGS = -p -X -T vmlinux.lds @@ -25,25 +25,33 @@ OBJS += head-netwinder.o endif +ifeq ($(CONFIG_ARCH_SHARK),y) +OBJS += head-shark.o ofw-shark.o +endif + ifeq ($(CONFIG_ARCH_INTEGRATOR),y) -OBJS += head-netwinder.o +OBJS += head-integrator.o endif -ifeq ($(CONFIG_ARCH_NEXUSPCI),y) -HEAD = head-nexuspci.o +ifeq ($(CONFIG_ARCH_FTVPCI),y) +OBJS += head-ftvpci.o endif ifeq ($(CONFIG_ARCH_L7200),y) OBJS += head-l7200.o endif +ifeq ($(CONFIG_ARCH_CLPS7500),y) +HEAD = head-clps7500.o +endif + ifeq ($(CONFIG_ARCH_P720T),y) # Borrow this code from SA1100 OBJS += head-sa1100.o endif ifeq ($(CONFIG_ARCH_SA1100),y) -OBJS += head-sa1100.o setup-sa1100.o +OBJS += head-sa1100.o ifeq ($(CONFIG_SA1100_NANOENGINE),y) OBJS += hw-bse.o endif @@ -56,6 +64,8 @@ else SEDFLAGS += s/BSS_START/ALIGN(4)/ endif + +LIBGCC := $(shell $(CC) $(CFLAGS) --print-libgcc-file-name) all: vmlinux Index: head-sa1100.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/arm/boot/compressed/head-sa1100.S,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- head-sa1100.S 25 Feb 2001 23:15:20 -0000 1.1.1.2 +++ head-sa1100.S 10 Apr 2002 13:51:20 -0000 1.2 @@ -17,6 +17,24 @@ @ Preserve r8/r7 i.e. kernel entry values +#if defined(CONFIG_SA1100_GRAPHICSCLIENT) && !defined(CONFIG_ANGELBOOT) + mov r7, #MACH_TYPE_GRAPHICSCLIENT + mov r8, #0 +#endif +#if defined(CONFIG_SA1100_GRAPHICSMASTER) && !defined(CONFIG_ANGELBOOT) + mov r7, #MACH_TYPE_GRAPHICSMASTER + mov r8, #0 +#endif +#if defined(CONFIG_SA1100_ADSBITSY) && !defined(CONFIG_ANGELBOOT) + mov r7, #MACH_TYPE_ADSBITSY + mov r8, #0 +#endif + +#ifdef CONFIG_SA1100_PFS168 + @ REVISIT_PFS168: Temporary until firmware updated to use assigned machine number + mov r7, #MACH_TYPE_PFS168 +#endif + #ifdef CONFIG_SA1100_VICTOR teq r7, #MACH_TYPE_VICTOR bne 10f @@ -51,7 +69,6 @@ bic r0, r0, #0x1000 @ clear Icache mcr p15, 0, r0, c1, c0, 0 -#ifdef CONFIG_ANGELBOOT /* * Pause for a short time so that we give enough time * for the host to start a terminal up. @@ -59,5 +76,4 @@ mov r0, #0x00200000 1: subs r0, r0, #1 bne 1b -#endif Index: head-shark.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/arm/boot/compressed/head-shark.S,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- head-shark.S 25 Feb 2001 23:15:20 -0000 1.1.1.1 +++ head-shark.S 10 Apr 2002 13:51:20 -0000 1.2 @@ -1,5 +1,5 @@ /* The head-file for the Shark - * by Ale...@st... + * by Alexander Schulz <as...@ne...> * * Does the following: * - get the memory layout from firmware. This can only be done as long as the mmu @@ -20,8 +20,6 @@ b __beginning -__serial_addr: .long 0xf7eff3f8 - .long 0 @ space __ofw_data: .long 0 @ the number of memory blocks .space 128 @ (startaddr,size) ... .space 128 @ bootargs @@ -31,14 +29,10 @@ mov r0, #0xC0 @ disable irq and fiq mov r1, r0 - mrs r3, cpsr_all + mrs r3, cpsr bic r2, r3, r0 eor r2, r2, r1 - msr cpsr_all, r2 - - ldr r0, __serial_addr @ disable serial interrupt - mov r1, #0 @ hangs the machine, I don t know why. - strb r1, [r0, #0x01] + msr cpsr_c, r2 mov r0, r4 @ get the Memory layout from firmware adr r1, __ofw_data Index: head.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/arm/boot/compressed/head.S,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- head.S 25 Feb 2001 23:15:20 -0000 1.1.1.2 +++ head.S 10 Apr 2002 13:51:20 -0000 1.2 @@ -12,7 +12,39 @@ /* * Debugging stuff + * + * Note that these macros must not contain any code which is not + * 100% relocatable. Any attempt to do so will result in a crash. + * Please select one of the following when turning on debugging. */ +#ifdef DEBUG +#if 0 /* DC21285-type */ + .macro loadsp, rb + mov \rb, #0x7c000000 + .endm + .macro writeb, rb + strb \rb, [r3, #0x3f8] + .endm +#elif 0 /* RiscPC-type */ + .macro loadsp, rb + mov \rb, #0x03000000 + orr \rb, \rb, #0x00010000 + .endm + .macro writeb, rb + strb \rb, [r3, #0x3f8 << 2] + .endm +#elif 0 /* integrator-type */ + .macro loadsp, rb + mov \rb, #0x16000000 + .endm + .macro writeb, rb + strb \rb, [r3, #0] + .endm +#else +#error no serial architecture defined +#endif +#endif + .macro kputc,val mov r0, \val bl putc @@ -27,53 +59,31 @@ .macro debug_reloc_start #ifdef DEBUG kputc #'\n' - kphex r6, 8 + kphex r6, 8 /* processor id */ kputc #':' - kphex r5, 8 + kphex r7, 8 /* architecture id */ + kputc #':' + mrc p15, 0, r0, c1, c0 + kphex r0, 8 /* control reg + kputc #'\n' + kphex r5, 8 /* decompressed kernel start */ kputc #'-' - kphex r8, 8 + kphex r8, 8 /* decompressed kernel end */ kputc #'>' - kphex r4, 8 + kphex r4, 8 /* kernel execution address */ kputc #'\n' #endif .endm .macro debug_reloc_end #ifdef DEBUG - mov r8, r0 - kphex r5, 8 - kputc #'-' - kphex r8, 8 + kphex r5, 8 /* end of kernel */ kputc #'\n' mov r0, r4 - bl memdump + bl memdump /* dump 256 bytes at start of kernel */ #endif .endm -/* - * Note that these macros must not contain any code which is not - * 100% relocatable. Any attempt to do so will result in a crash. - */ -#if 0 - .macro loadsp, rb - mov \rb, #0x7c000000 - .endm - - .macro writeb, rb - strb \rb, [r3, #0x3f8] - .endm -#else - .macro loadsp, rb - mov \rb, #0x03000000 - orr \rb, \rb, #0x00010000 - .endm - - .macro writeb, rb - strb \rb, [r3, #0x3f8 << 2] - .endm -#endif - - .section ".start", #alloc, #execinstr /* * sort out different calling conventions @@ -87,25 +97,35 @@ b 1f .word 0x016f2818 @ Magic numbers to help the loader - .word start + .word start @ absolute load/run zImage address + .word _edata @ zImage end address 1: mov r7, r1 @ save architecture ID mov r8, #0 @ save r0 -#ifdef CONFIG_ANGELBOOT + +#ifndef __ARM_ARCH_2__ /* * Booting from Angel - need to enter SVC mode and disable - * FIQs/IRQs (numeric definitions from angel arm.h source) + * FIQs/IRQs (numeric definitions from angel arm.h source). + * We only do this if we were in user mode on entry. */ + mrs r2, cpsr @ get current mode + tst r2, #3 @ not user? + bne not_angel mov r0, #0x17 @ angel_SWIreason_EnterSVC swi 0x123456 @ angel_SWI_ARM - mrs r0, cpsr @ turn off interrupts to - orr r0, r0, #0xc0 @ prevent angel from running - msr cpsr_c, r0 +not_angel: + mrs r2, cpsr @ turn off interrupts to + orr r2, r2, #0xc0 @ prevent angel from running + msr cpsr_c, r2 +#else + teqp pc, #0x0c000003 @ turn off interrupts +#endif /* * Note that some cache flushing and other stuff may * be needed here - is there an Angel SWI call for this? */ -#endif + /* * some architecture specific code can be inserted * by the linker here, but it should preserve r7 and r8. @@ -210,7 +230,7 @@ mov r0, r3 mov r8, r0, lsr #18 mov r8, r8, lsl #18 @ start of RAM - add r9, r8, #0x20000000 @ the maximum RAM size + add r9, r8, #0x10000000 @ a reasonable RAM size mov r1, #0x12 orr r1, r1, #3 << 10 add r2, r3, #16384 @@ -299,30 +319,46 @@ .size proc_sa1110_type, . - proc_sa1110_type /* - * Turn off StrongARM cache and MMU. It is safe to - * leave the I-cache on. + * Turn off the Cache and MMU. ARMv3 does not support + * reading the control register, but ARMv4 does. * - * On entry, - * r6 = processor ID - * On exit, - * r0, r1 corrupted - * This routine must preserve: - * r4, r6, r7 + * On entry, r6 = processor ID + * On exit, r0, r1 corrupted + * This routine must preserve: r4, r6, r7 */ .align 5 -cache_off: ldr r1, proc_sa110_type - eor r1, r1, r6 - movs r1, r1, lsr #5 @ catch SA110 and SA1100 - beq 1f - ldr r1, proc_sa1110_type - eor r1, r1, r6 - movs r1, r1, lsr #4 - movne pc, lr -1: +cache_off: +#ifdef CONFIG_CPU_ARM610 + eor r1, r6, #0x41000000 + eor r1, r1, #0x00560000 + bic r1, r1, #0x0000001f + teq r1, #0x00000600 + mov r0, #0x00000060 @ ARM6 control reg. + beq __armv3_cache_off +#endif +#ifdef CONFIG_CPU_ARM710 + eor r1, r6, #0x41000000 + bic r1, r1, #0x00070000 + bic r1, r1, #0x000000ff + teq r1, #0x00007000 @ ARM7 + teqne r1, #0x00007100 @ ARM710 + mov r0, #0x00000070 @ ARM7 control reg. + beq __armv3_cache_off +#endif mrc p15, 0, r0, c1, c0 bic r0, r0, #0x000d - mcr p15, 0, r0, c1, c0 - mov pc, lr + mcr p15, 0, r0, c1, c0 @ turn MMU and cache off + mov r0, #0 + mcr p15, 0, r0, c7, c7 @ invalidate whole cache v4 + mcr p15, 0, r0, c8, c7 @ invalidate whole TLB v4 + mov pc, lr + +__armv3_cache_off: + mcr p15, 0, r0, c1, c0 @ turn MMU and cache off + mov r0, #0 + mcr p15, 0, r0, c7, c0 @ invalidate whole cache v3 + mcr p15, 0, r0, c5, c0 @ invalidate whole TLB v3 + mov pc, lr /* * Clean and flush the cache to maintain consistency. @@ -400,13 +436,10 @@ memdump: mov r12, r0 mov r10, lr - mov r1, #8 - bl phex - mov r0, #'\n' - bl putc mov r11, #0 2: mov r0, r11, lsl #2 - mov r1, #4 + add r0, r0, r12 + mov r1, #8 bl phex mov r0, #':' bl putc Index: ll_char_wr.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/arm/boot/compressed/ll_char_wr.S,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- ll_char_wr.S 14 Jan 2001 19:45:53 -0000 1.1.1.1 +++ ll_char_wr.S 10 Apr 2002 13:51:20 -0000 1.2 @@ -16,7 +16,7 @@ @ Regs: [] = corruptible @ {} = used @ () = do not use -#define __ASSEMBLY__ + #include <linux/linkage.h> #include <asm/assembler.h> .text Index: misc.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/arm/boot/compressed/misc.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- misc.c 14 Jan 2001 19:45:53 -0000 1.1.1.1 +++ misc.c 10 Apr 2002 13:51:20 -0000 1.2 @@ -73,7 +73,7 @@ *u.ucp++ = 0; } -extern __inline__ __ptr_t memcpy(__ptr_t __dest, __const __ptr_t __src, +static inline __ptr_t memcpy(__ptr_t __dest, __const __ptr_t __src, size_t __n) { int i = 0; Index: ofw-shark.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/arm/boot/compressed/ofw-shark.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- ofw-shark.c 25 Feb 2001 23:15:20 -0000 1.1.1.1 +++ ofw-shark.c 10 Apr 2002 13:51:20 -0000 1.2 @@ -1,7 +1,7 @@ /* * linux/arch/arm/boot/compressed/ofw-shark.c * - * by Ale...@st... + * by Alexander Schulz <as...@ne...> * * This file is used to get some basic information * about the memory layout of the shark we are running @@ -11,6 +11,7 @@ #include <linux/kernel.h> +#include <linux/types.h> #include <asm/setup.h> #include <asm/page.h> @@ -18,15 +19,21 @@ asmlinkage void create_params (unsigned long *buffer) { - /* Is there a better address? Also change in kernel/arch.c */ - struct param_struct *params = (struct param_struct *) 0x08003000; + /* Is there a better address? Also change in mach-shark/arch.c */ + struct tag *tag = (struct tag *) 0x08003000; int j,i,m,k,nr_banks,size; + unsigned char *c; - for (j=0;j<256;j++) params->u1.unused[j]=0; + /* Head of the taglist */ + tag->hdr.tag = ATAG_CORE; + tag->hdr.size = tag_size(tag_core); + tag->u.core.flags = FLAG_READONLY; + tag->u.core.pagesize = PAGE_SIZE; + tag->u.core.rootdev = 0; + /* Build up one tagged block for each memory region */ size=0; nr_banks=(unsigned int) buffer[0]; - if (nr_banks > NR_BANKS) nr_banks = NR_BANKS; for (j=0;j<nr_banks;j++){ /* search the lowest address and put it into the next entry */ /* not a fast sort algorithm, but there are at most 8 entries */ @@ -39,23 +46,38 @@ } } - /* using pages_in_bank for startaddress and size */ - /* start is in bytes, size in pages and not bigger than 0x2000 */ - /* This is decoded in fixup_shark in arch/arm/kernel/arch.c */ - params->u1.s.pages_in_bank[j]=buffer[2*k+1]|(buffer[2*k+2]/PAGE_SIZE); + tag = tag_next(tag); + tag->hdr.tag = ATAG_MEM; + tag->hdr.size = tag_size(tag_mem32); + tag->u.mem.size = buffer[2*k+2]; + tag->u.mem.start = buffer[2*k+1]; + size += buffer[2*k+2]; - buffer[2*k+1]=0xffffffff; /* mark as copied */ + buffer[2*k+1]=0xffffffff; /* mark as copied */ } - params->u1.s.page_size = PAGE_SIZE; - params->u1.s.nr_pages = size/PAGE_SIZE; - params->u1.s.flags = FLAG_READONLY; + /* The command line */ + tag = tag_next(tag); + tag->hdr.tag = ATAG_CMDLINE; - /* Copy over the bootargs */ - for (j=0;j<128/4;j++) { - ((unsigned long *) params->commandline)[j]=buffer[33+j]; - } + c=(unsigned char *)(&buffer[34]); + j=0; + while (*c) tag->u.cmdline.cmdline[j++]=*c++; + + tag->u.cmdline.cmdline[j]=0; + tag->hdr.size = (j + 7 + sizeof(struct tag_header)) >> 2; + + /* Hardware revision */ + tag = tag_next(tag); + tag->hdr.tag = ATAG_REVISION; + tag->hdr.size = tag_size(tag_revision); + tag->u.revision.rev = ((unsigned char) buffer[33])-'0'; + + /* End of the taglist */ + tag = tag_next(tag); + tag->hdr.tag = 0; + tag->hdr.size = 0; } @@ -164,7 +186,7 @@ asmlinkage void ofw_init(ofw_handle_t o, int *nomr, int *pointer) { int phandle,i,mem_len,buffer[32]; - char temp[12]; + char temp[15]; temp[0]='/'; temp[1]='m'; @@ -211,6 +233,26 @@ mem_len = OF_getproplen(o,phandle, temp); OF_getprop(o,phandle, temp, buffer, mem_len); - for (i=0; i<=mem_len/4; i++) pointer[i+32]=buffer[i]; - + if (mem_len > 128) mem_len=128; + for (i=0; i<=mem_len/4; i++) pointer[i+33]=buffer[i]; + pointer[i+33]=0; + + temp[0]='/'; + temp[1]='\0'; + phandle=OF_finddevice(o,temp); + temp[0]='b'; + temp[1]='a'; + temp[2]='n'; + temp[3]='n'; + temp[4]='e'; + temp[5]='r'; + temp[6]='-'; + temp[7]='n'; + temp[8]='a'; + temp[9]='m'; + temp[10]='e'; + temp[11]='\0'; + mem_len = OF_getproplen(o,phandle, temp); + OF_getprop(o,phandle, temp, buffer, mem_len); + (unsigned char) pointer[32] = ((unsigned char *) buffer)[mem_len-2]; } Index: vmlinux.lds.in =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/arm/boot/compressed/vmlinux.lds.in,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- vmlinux.lds.in 25 Feb 2001 23:15:20 -0000 1.1.1.2 +++ vmlinux.lds.in 10 Apr 2002 13:51:20 -0000 1.2 @@ -24,6 +24,7 @@ *(.fixup) *(.gnu.warning) *(.rodata) + *(.rodata.*) *(.glue_7) *(.glue_7t) input_data = .; --- setup-sa1100.S DELETED --- |
From: Andy P. <at...@us...> - 2002-04-10 18:40:05
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/mips/philips/nino In directory usw-pr-cvs1:/tmp/cvs-serv15993/arch/mips/philips/nino Log Message: Directory /cvsroot/linux-vax/kernel-2.4/arch/mips/philips/nino added to the repository |
From: Andy P. <at...@us...> - 2002-04-10 18:40:05
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/arm/boot In directory usw-pr-cvs1:/tmp/cvs-serv24336/arm/boot Modified Files: Makefile Log Message: synch 2.4.15 commit 32 Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/arm/boot/Makefile,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- Makefile 25 Feb 2001 23:15:20 -0000 1.1.1.2 +++ Makefile 10 Apr 2002 13:51:20 -0000 1.2 @@ -55,8 +55,7 @@ endif ifeq ($(CONFIG_ARCH_NEXUSPCI),y) -ZTEXTADDR = 0x40200000 -ZRELADDR = 0x40008000 +ZTEXTADDR = 0x40008000 endif ifeq ($(CONFIG_ARCH_L7200),y) @@ -70,13 +69,21 @@ ZBSSADDR = 0xf03e0000 endif -ifeq ($(CONFIG_ARCH_P720T),y) -ZTEXTADDR = 0xc0018000 -ZRELADDR = 0xc0018000 +# The standard locations for stuff on CLPS711x type processors +ifeq ($(CONFIG_ARCH_CLPS711X),y) +ZTEXTADDR = 0xc0028000 PARAMS_PHYS = 0xc0000100 +endif + +# Should probably have some agreement on these... +ifeq ($(CONFIG_ARCH_P720T),y) INITRD_PHYS = 0xc0400000 INITRD_VIRT = 0xc0400000 endif +ifeq ($(CONFIG_ARCH_CDB89712),y) +INITRD_PHYS = 0x00700000 +INITRD_VIRT = 0xc0300000 +endif ifeq ($(CONFIG_ARCH_SA1100),y) ZTEXTADDR = 0xc0008000 @@ -92,9 +99,23 @@ ifeq ($(CONFIG_SA1100_GRAPHICSCLIENT),y) ZTEXTADDR = 0xC0200000 endif +ifeq ($(CONFIG_SA1100_GRAPHICSMASTER),y) + ZTEXTADDR = 0xC0400000 +endif +ifeq ($(CONFIG_SA1100_ADSBITSY),y) + ZTEXTADDR = 0xC0400000 +endif +ifeq ($(CONFIG_SA1100_YOPY),y) + ZTEXTADDR = 0x00080000 + ZBSSADDR = 0xc0200000 +endif ifeq ($(CONFIG_SA1111),y) ZRELADDR = 0xc0208000 endif +endif + +ifeq ($(CONFIG_ARCH_ANAKIN),y) +ZTEXTADDR = 0x20008000 endif # |
From: Andy P. <at...@us...> - 2002-04-10 18:40:04
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/sparc64/math-emu In directory usw-pr-cvs1:/tmp/cvs-serv32333/sparc64/math-emu Modified Files: math.c sfp-util.h Log Message: synch 2.4.15 commit 46 Index: math.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc64/math-emu/math.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 Index: sfp-util.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc64/math-emu/sfp-util.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- sfp-util.h 14 Jan 2001 19:45:44 -0000 1.1.1.1 +++ sfp-util.h 10 Apr 2002 15:21:24 -0000 1.2 @@ -12,10 +12,10 @@ #include <asm/byteorder.h> #define add_ssaaaa(sh, sl, ah, al, bh, bl) \ - __asm__ ("addcc %4,%5,%1 - add %2,%3,%0 - bcs,a,pn %%xcc, 1f - add %0, 1, %0 + __asm__ ("addcc %4,%5,%1\n\ + add %2,%3,%0\n\ + bcs,a,pn %%xcc, 1f\n\ + add %0, 1, %0\n\ 1:" \ : "=r" ((UDItype)(sh)), \ "=&r" ((UDItype)(sl)) \ @@ -26,10 +26,10 @@ : "cc") #define sub_ddmmss(sh, sl, ah, al, bh, bl) \ - __asm__ ("subcc %4,%5,%1 - sub %2,%3,%0 - bcs,a,pn %%xcc, 1f - sub %0, 1, %0 + __asm__ ("subcc %4,%5,%1\n\ + sub %2,%3,%0\n\ + bcs,a,pn %%xcc, 1f\n\ + sub %0, 1, %0\n\ 1:" \ : "=r" ((UDItype)(sh)), \ "=&r" ((UDItype)(sl)) \ @@ -43,26 +43,26 @@ do { \ UDItype tmp1, tmp2, tmp3, tmp4; \ __asm__ __volatile__ ( \ - "srl %7,0,%3 - mulx %3,%6,%1 - srlx %6,32,%2 - mulx %2,%3,%4 - sllx %4,32,%5 - srl %6,0,%3 - sub %1,%5,%5 - srlx %5,32,%5 - addcc %4,%5,%4 - srlx %7,32,%5 - mulx %3,%5,%3 - mulx %2,%5,%5 - sethi %%hi(0x80000000),%2 - addcc %4,%3,%4 - srlx %4,32,%4 - add %2,%2,%2 - movcc %%xcc,%%g0,%2 - addcc %5,%4,%5 - sllx %3,32,%3 - add %1,%3,%1 + "srl %7,0,%3\n\ + mulx %3,%6,%1\n\ + srlx %6,32,%2\n\ + mulx %2,%3,%4\n\ + sllx %4,32,%5\n\ + srl %6,0,%3\n\ + sub %1,%5,%5\n\ + srlx %5,32,%5\n\ + addcc %4,%5,%4\n\ + srlx %7,32,%5\n\ + mulx %3,%5,%3\n\ + mulx %2,%5,%5\n\ + sethi %%hi(0x80000000),%2\n\ + addcc %4,%3,%4\n\ + srlx %4,32,%4\n\ + add %2,%2,%2\n\ + movcc %%xcc,%%g0,%2\n\ + addcc %5,%4,%5\n\ + sllx %3,32,%3\n\ + add %1,%3,%1\n\ add %5,%2,%0" \ : "=r" ((UDItype)(wh)), \ "=&r" ((UDItype)(wl)), \ |
From: Andy P. <at...@us...> - 2002-04-10 18:39:59
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/arm/mach-shark In directory usw-pr-cvs1:/tmp/cvs-serv24336/arm/mach-shark Modified Files: Makefile arch.c dma.c mm.c Added Files: leds.c Log Message: synch 2.4.15 commit 32 --- NEW FILE --- /* * arch/arm/kernel/leds-shark.c * by Alexander Schulz * * derived from: * arch/arm/kernel/leds-footbridge.c * Copyright (C) 1998-1999 Russell King * * DIGITAL Shark LED control routines. * * The leds use is as follows: * - Green front - toggles state every 50 timer interrupts * - Amber front - Unused, this is a dual color led (Amber/Green) * - Amber back - On if system is not idle * * Changelog: */ #include <linux/config.h> #include <linux/kernel.h> #include <linux/module.h> #include <linux/init.h> #include <linux/spinlock.h> #include <linux/ioport.h> #include <asm/hardware.h> #include <asm/leds.h> #include <asm/io.h> #include <asm/system.h> #define LED_STATE_ENABLED 1 #define LED_STATE_CLAIMED 2 static char led_state; static short hw_led_state; static short saved_state; static spinlock_t leds_lock = SPIN_LOCK_UNLOCKED; short sequoia_read(int addr) { outw(addr,0x24); return inw(0x26); } void sequoia_write(short value,short addr) { outw(addr,0x24); outw(value,0x26); } static void sequoia_leds_event(led_event_t evt) { unsigned long flags; spin_lock_irqsave(&leds_lock, flags); hw_led_state = sequoia_read(0x09); switch (evt) { case led_start: hw_led_state |= SEQUOIA_LED_GREEN; hw_led_state |= SEQUOIA_LED_AMBER; #ifdef CONFIG_LEDS_CPU hw_led_state |= SEQUOIA_LED_BACK; #else hw_led_state &= ~SEQUOIA_LED_BACK; #endif led_state |= LED_STATE_ENABLED; break; case led_stop: hw_led_state &= ~SEQUOIA_LED_BACK; hw_led_state |= SEQUOIA_LED_GREEN; hw_led_state |= SEQUOIA_LED_AMBER; led_state &= ~LED_STATE_ENABLED; break; case led_claim: led_state |= LED_STATE_CLAIMED; saved_state = hw_led_state; hw_led_state &= ~SEQUOIA_LED_BACK; hw_led_state |= SEQUOIA_LED_GREEN; hw_led_state |= SEQUOIA_LED_AMBER; break; case led_release: led_state &= ~LED_STATE_CLAIMED; hw_led_state = saved_state; break; #ifdef CONFIG_LEDS_TIMER case led_timer: if (!(led_state & LED_STATE_CLAIMED)) hw_led_state ^= SEQUOIA_LED_GREEN; break; #endif #ifdef CONFIG_LEDS_CPU case led_idle_start: if (!(led_state & LED_STATE_CLAIMED)) hw_led_state &= ~SEQUOIA_LED_BACK; break; case led_idle_end: if (!(led_state & LED_STATE_CLAIMED)) hw_led_state |= SEQUOIA_LED_BACK; break; #endif case led_green_on: if (led_state & LED_STATE_CLAIMED) hw_led_state &= ~SEQUOIA_LED_GREEN; break; case led_green_off: if (led_state & LED_STATE_CLAIMED) hw_led_state |= SEQUOIA_LED_GREEN; break; case led_amber_on: if (led_state & LED_STATE_CLAIMED) hw_led_state &= ~SEQUOIA_LED_AMBER; break; case led_amber_off: if (led_state & LED_STATE_CLAIMED) hw_led_state |= SEQUOIA_LED_AMBER; break; case led_red_on: if (led_state & LED_STATE_CLAIMED) hw_led_state |= SEQUOIA_LED_BACK; break; case led_red_off: if (led_state & LED_STATE_CLAIMED) hw_led_state &= ~SEQUOIA_LED_BACK; break; default: break; } if (led_state & LED_STATE_ENABLED) sequoia_write(hw_led_state,0x09); spin_unlock_irqrestore(&leds_lock, flags); } static int __init leds_init(void) { extern void (*leds_event)(led_event_t); short temp; leds_event = sequoia_leds_event; /* Make LEDs independent of power-state */ request_region(0x24,4,"sequoia"); temp = sequoia_read(0x09); temp |= 1<<10; sequoia_write(temp,0x09); leds_event(led_start); return 0; } __initcall(leds_init); Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/arm/mach-shark/Makefile,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- Makefile 25 Feb 2001 23:15:21 -0000 1.1.1.2 +++ Makefile 10 Apr 2002 13:51:23 -0000 1.2 @@ -18,6 +18,6 @@ export-objs := -#obj-$(CONFIG_LEDS) += leds.o +obj-$(CONFIG_LEDS) += leds.o include $(TOPDIR)/Rules.make Index: arch.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/arm/mach-shark/arch.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- arch.c 14 Jan 2001 19:48:18 -0000 1.1.1.1 +++ arch.c 10 Apr 2002 13:51:23 -0000 1.2 @@ -1,10 +1,7 @@ /* * linux/arch/arm/mach-shark/arch.c * - * Architecture specific fixups. This is where any - * parameters in the params struct are fixed up, or - * any additional architecture specific information - * is pulled from the params struct. + * Architecture specific stuff. */ #include <linux/tty.h> #include <linux/delay.h> @@ -18,14 +15,13 @@ #include <asm/mach/arch.h> -extern void setup_initrd(unsigned int start, unsigned int size); -extern void setup_ramdisk(int doload, int prompt, int start, unsigned int rd_sz); -extern void __init footbridge_map_io(void); -extern void __init shark_map_io(void); +extern void shark_map_io(void); +extern void genarch_init_irq(void); MACHINE_START(SHARK, "Shark") MAINTAINER("Alexander Schulz") BOOT_MEM(0x08000000, 0x40000000, 0xe0000000) - VIDEO(0x06000000, 0x061fffff) + BOOT_PARAMS(0x08003000) MAPIO(shark_map_io) + INITIRQ(genarch_init_irq) MACHINE_END Index: dma.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/arm/mach-shark/dma.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- dma.c 14 Jan 2001 19:48:19 -0000 1.1.1.1 +++ dma.c 10 Apr 2002 13:51:23 -0000 1.2 @@ -1,7 +1,7 @@ /* * linux/arch/arm/mach-shark/dma.c * - * by Ale...@st... + * by Alexander Schulz * * derived from: * arch/arm/kernel/dma-ebsa285.c Index: mm.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/arm/mach-shark/mm.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- mm.c 14 Jan 2001 19:48:19 -0000 1.1.1.1 +++ mm.c 10 Apr 2002 13:51:23 -0000 1.2 @@ -1,7 +1,7 @@ /* * linux/arch/arm/mach-shark/mm.c * - * by Ale...@st... + * by Alexander Schulz * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as @@ -19,8 +19,6 @@ static struct map_desc shark_io_desc[] __initdata = { { IO_BASE , IO_START , IO_SIZE , DOMAIN_IO, 0, 1, 0, 0 }, - { FB_BASE , FB_START , FB_SIZE , DOMAIN_IO, 0, 1, 0, 0 }, - { FBREG_BASE , FBREG_START , FBREG_SIZE , DOMAIN_IO, 0, 1, 0, 0 }, LAST_DESC }; |
From: Andy P. <at...@us...> - 2002-04-10 18:39:59
|
Update of /cvsroot/linux-vax/kernel-2.4/drivers/isdn/act2000 In directory usw-pr-cvs1:/tmp/cvs-serv1502/isdn/act2000 Modified Files: act2000.h act2000_isa.c act2000_isa.h capi.c capi.h module.c Log Message: synch 2.4.15 commit 49 Index: act2000.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/isdn/act2000/act2000.h,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- act2000.h 25 Feb 2001 23:15:10 -0000 1.1.1.2 +++ act2000.h 10 Apr 2002 15:32:22 -0000 1.2 @@ -2,34 +2,18 @@ * * ISDN lowlevel-module for the IBM ISDN-S0 Active 2000. * - * Copyright 1998 by Fritz Elfert (fr...@is...) - * Thanks to Friedemann Baitinger and IBM Germany - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * Author Fritz Elfert + * Copyright by Fritz Elfert <fr...@is...> + * + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * Thanks to Friedemann Baitinger and IBM Germany * */ #ifndef act2000_h #define act2000_h - -#ifdef __KERNEL__ -/* Kernel includes */ - -#include <linux/module.h> -#include <linux/version.h> -#endif #define ACT2000_IOCTL_SETPORT 1 #define ACT2000_IOCTL_GETPORT 2 Index: act2000_isa.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/isdn/act2000/act2000_isa.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- act2000_isa.c 14 Jan 2001 18:42:57 -0000 1.1.1.1 +++ act2000_isa.c 10 Apr 2002 15:32:22 -0000 1.2 @@ -2,22 +2,13 @@ * * ISDN lowlevel-module for the IBM ISDN-S0 Active 2000 (ISA-Version). * - * Copyright 1998 by Fritz Elfert (fr...@is...) - * Thanks to Friedemann Baitinger and IBM Germany - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * Author Fritz Elfert + * Copyright by Fritz Elfert <fr...@is...> + * + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * Thanks to Friedemann Baitinger and IBM Germany * */ @@ -26,16 +17,7 @@ #include "act2000_isa.h" #include "capi.h" -static act2000_card *irq2card_map[16] = -{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -static int act2000_isa_irqs[] = -{ - 3, 5, 7, 10, 11, 12, 15 -}; -#define ISA_NRIRQS (sizeof(act2000_isa_irqs)/sizeof(int)) +static act2000_card *irq2card_map[16]; static void act2000_isa_delay(long t) @@ -82,13 +64,9 @@ act2000_isa_detect(unsigned short portbase) { int ret = 0; - unsigned long flags; - save_flags(flags); - cli(); if (!check_region(portbase, ISA_REGION)) ret = act2000_isa_reset(portbase); - restore_flags(flags); return ret; } @@ -167,9 +145,6 @@ int act2000_isa_config_irq(act2000_card * card, short irq) { - int i; - unsigned long flags; - if (card->flags & ACT2000_FLAGS_IVALID) { free_irq(card->irq, NULL); irq2card_map[card->irq] = NULL; @@ -178,30 +153,13 @@ outb(ISA_COR_IRQOFF, ISA_PORT_COR); if (!irq) return 0; - save_flags(flags); - cli(); - if (irq == -1) { - /* Auto select */ - for (i = 0; i < ISA_NRIRQS; i++) { - if (!request_irq(act2000_isa_irqs[i], &act2000_isa_interrupt, 0, card->regname, NULL)) { - card->irq = act2000_isa_irqs[i]; - irq2card_map[card->irq] = card; - card->flags |= ACT2000_FLAGS_IVALID; - break; - } - } - } else { - /* Fixed irq */ - if (!request_irq(irq, &act2000_isa_interrupt, 0, card->regname, NULL)) { - card->irq = irq; - irq2card_map[card->irq] = card; - card->flags |= ACT2000_FLAGS_IVALID; - } - } - restore_flags(flags); - if (!card->flags & ACT2000_FLAGS_IVALID) { + + if (!request_irq(irq, &act2000_isa_interrupt, 0, card->regname, NULL)) { + card->irq = irq; + irq2card_map[card->irq] = card; + card->flags |= ACT2000_FLAGS_IVALID; printk(KERN_WARNING - "act2000: Could not request irq\n"); + "act2000: Could not request irq %d\n",irq); return -EBUSY; } else { act2000_isa_select_irq(card); @@ -451,7 +409,7 @@ int act2000_isa_download(act2000_card * card, act2000_ddef * cb) { - int length; + unsigned int length; int ret; int l; int c; @@ -464,9 +422,8 @@ if (!act2000_isa_reset(card->port)) return -ENXIO; act2000_isa_delay(HZ / 2); - if ((ret = verify_area(VERIFY_READ, (void *) cb, sizeof(cblock)))) - return ret; - copy_from_user(&cblock, (char *) cb, sizeof(cblock)); + if(copy_from_user(&cblock, (char *) cb, sizeof(cblock))) + return -EFAULT; length = cblock.length; p = cblock.buffer; if ((ret = verify_area(VERIFY_READ, (void *) p, length))) Index: act2000_isa.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/isdn/act2000/act2000_isa.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- act2000_isa.h 14 Jan 2001 18:42:59 -0000 1.1.1.1 +++ act2000_isa.h 10 Apr 2002 15:32:22 -0000 1.2 @@ -2,22 +2,13 @@ * * ISDN lowlevel-module for the IBM ISDN-S0 Active 2000 (ISA-Version). * - * Copyright 1998 by Fritz Elfert (fr...@is...) - * Thanks to Friedemann Baitinger and IBM Germany - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. + * Author Fritz Elfert + * Copyright by Fritz Elfert <fr...@is...> + * + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * Thanks to Friedemann Baitinger and IBM Germany * */ Index: capi.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/isdn/act2000/capi.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- capi.c 14 Jan 2001 18:43:03 -0000 1.1.1.1 +++ capi.c 10 Apr 2002 15:32:22 -0000 1.2 @@ -1,24 +1,15 @@ /* $Id$ * * ISDN lowlevel-module for the IBM ISDN-S0 Active 2000. - * CAPI encoder/decoder + * CAPI encoder/decoder * - * Copyright 1998 by Fritz Elfert (fr...@is...) - * Thanks to Friedemann Baitinger and IBM Germany - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. + * Author Fritz Elfert + * Copyright by Fritz Elfert <fr...@is...> + * + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * Thanks to Friedemann Baitinger and IBM Germany * */ @@ -124,7 +115,7 @@ m->hdr.cmd.cmd = c; \ m->hdr.cmd.subcmd = s; \ m->hdr.msgnum = actcapi_nextsmsg(card); \ - } \ + } else m = NULL;\ } #define ACTCAPI_CHKSKB if (!skb) { \ Index: capi.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/isdn/act2000/capi.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- capi.h 14 Jan 2001 18:43:04 -0000 1.1.1.1 +++ capi.h 10 Apr 2002 15:32:22 -0000 1.2 @@ -2,22 +2,13 @@ * * ISDN lowlevel-module for the IBM ISDN-S0 Active 2000. * - * Copyright 1998 by Fritz Elfert (fr...@is...) - * Thanks to Friedemann Baitinger and IBM Germany - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. + * Author Fritz Elfert + * Copyright by Fritz Elfert <fr...@is...> + * + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * Thanks to Friedemann Baitinger and IBM Germany * */ @@ -44,7 +35,7 @@ char *description; } actcapi_msgdsc; -/* CAPI Adress */ +/* CAPI Address */ typedef struct actcapi_addr { __u8 len; /* Length of element */ __u8 tnp; /* Type/Numbering Plan */ Index: module.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/drivers/isdn/act2000/module.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- module.c 14 Jan 2001 18:43:08 -0000 1.1.1.1 +++ module.c 10 Apr 2002 15:32:22 -0000 1.2 @@ -2,28 +2,21 @@ * * ISDN lowlevel-module for the IBM ISDN-S0 Active 2000. * - * Copyright 1998 by Fritz Elfert (fr...@is...) - * Thanks to Friedemann Baitinger and IBM Germany - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * Author Fritz Elfert + * Copyright by Fritz Elfert <fr...@is...> + * + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * Thanks to Friedemann Baitinger and IBM Germany * */ #include "act2000.h" #include "act2000_isa.h" #include "capi.h" +#include <linux/module.h> +#include <linux/init.h> static unsigned short act2000_isa_ports[] = { @@ -37,15 +30,15 @@ /* Parameters to be set by insmod */ static int act_bus = 0; static int act_port = -1; /* -1 = Autoprobe */ -static int act_irq = -1; /* -1 = Autoselect */ +static int act_irq = -1; static char *act_id = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; -MODULE_DESCRIPTION( "Driver for IBM Active 2000 ISDN card"); +MODULE_DESCRIPTION( "ISDN4Linux: Driver for IBM Active 2000 ISDN card"); MODULE_AUTHOR( "Fritz Elfert"); -MODULE_SUPPORTED_DEVICE( "ISDN subsystem"); +MODULE_LICENSE( "GPL"); MODULE_PARM_DESC(act_bus, "BusType of first card, 1=ISA, 2=MCA, 3=PCMCIA, currently only ISA"); MODULE_PARM_DESC(membase, "Base port address of first card"); -MODULE_PARM_DESC(act_irq, "IRQ of first card (-1 = grab next free IRQ)"); +MODULE_PARM_DESC(act_irq, "IRQ of first card"); MODULE_PARM_DESC(act_id, "ID-String of first card"); MODULE_PARM(act_bus, "i"); MODULE_PARM(act_port, "i"); @@ -820,12 +813,7 @@ #define DRIVERNAME "IBM Active 2000 ISDN driver" -#ifdef MODULE -#define act2000_init init_module -#endif - -int -act2000_init(void) +static int __init act2000_init(void) { printk(KERN_INFO "%s\n", DRIVERNAME); if (!cards) @@ -837,9 +825,7 @@ return 0; } -#ifdef MODULE -void -cleanup_module(void) +static void __exit act2000_exit(void) { act2000_card *card = cards; act2000_card *last; @@ -858,34 +844,5 @@ printk(KERN_INFO "%s unloaded\n", DRIVERNAME); } -#else -void -act2000_setup(char *str, int *ints) -{ - int i, j, argc, port, irq, bus; - - argc = ints[0]; - i = 1; - if (argc) - while (argc) { - port = irq = -1; - bus = 0; - if (argc) { - bus = ints[i]; - i++; - argc--; - } - if (argc) { - port = ints[i]; - i++; - argc--; - } - if (argc) { - irq = ints[i]; - i++; - argc--; - } - act2000_addcard(bus, port, irq, act_id); - } -} -#endif +module_init(act2000_init); +module_exit(act2000_exit); |
From: Andy P. <at...@us...> - 2002-04-10 18:39:53
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/mips64/arc In directory usw-pr-cvs1:/tmp/cvs-serv18937/mips64/arc Modified Files: Makefile cmdline.c console.c env.c file.c identify.c init.c memory.c misc.c salone.c time.c tree.c Added Files: arc_con.c Removed Files: printf.c Log Message: synch 2.4.15 commit 38 --- NEW FILE --- /* * Wrap-around code for a console using the * ARC io-routines. * * Copyright (c) 1998 Harald Koerfgen * Copyright (c) 2001 Ralf Baechle */ #include <linux/tty.h> #include <linux/major.h> #include <linux/ptrace.h> #include <linux/init.h> #include <linux/console.h> #include <linux/fs.h> #include <asm/sgialib.h> extern void prom_printf (char *, ...); void prom_putchar(char c) { ULONG cnt; CHAR it = c; ArcWrite(1, &it, 1, &cnt); } static void prom_console_write(struct console *co, const char *s, unsigned count) { unsigned i; /* * Now, do each character */ for (i = 0; i < count; i++) { if (*s == 10) prom_printf("%c", 13); prom_printf("%c", *s++); } } static int prom_console_wait_key(struct console *co) { return 0; } static int __init prom_console_setup(struct console *co, char *options) { return 0; } static kdev_t prom_console_device(struct console *c) { return MKDEV(TTY_MAJOR, 64 + c->index); } static struct console arc_cons = { "ttyS", prom_console_write, NULL, prom_console_device, prom_console_wait_key, NULL, prom_console_setup, CON_PRINTBUFFER, -1, 0, NULL }; /* * Register console. */ void __init arc_console_init(void) { register_console(&arc_cons); } Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/arc/Makefile,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- Makefile 25 Feb 2001 23:15:22 -0000 1.1.1.2 +++ Makefile 10 Apr 2002 14:43:18 -0000 1.2 @@ -3,13 +3,10 @@ # L_TARGET = arclib.a -obj-y := init.o printf.o tree.o env.o cmdline.o misc.o time.o file.o \ - identify.o - -ifndef CONFIG_SGI_IP27 - obj-y += console.o -endif +obj-y := console.o init.o identify.o tree.o env.o cmdline.o misc.o time.o \ + file.o obj-$(CONFIG_ARC_MEMORY) += memory.o +obj-$(CONFIG_ARC_CONSOLE) += arc_con.o include $(TOPDIR)/Rules.make Index: cmdline.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/arc/cmdline.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- cmdline.c 14 Jan 2001 19:53:32 -0000 1.1.1.1 +++ cmdline.c 10 Apr 2002 14:43:19 -0000 1.2 @@ -1,5 +1,4 @@ -/* $Id$ - * +/* * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. @@ -30,10 +29,49 @@ "SystemPartition=", "OSLoader=", "OSLoadPartition=", - "OSLoadFilename=" + "OSLoadFilename=", + "OSLoadOptions=" }; #define NENTS(foo) ((sizeof((foo)) / (sizeof((foo[0]))))) +static char *used_arc[][2] = { + { "OSLoadPartition=", "root=" }, + { "OSLoadOptions=", "" } +}; + +static char * __init move_firmware_args(char* cp) +{ + char *s; + int actr, i; + + actr = 1; /* Always ignore argv[0] */ + + while (actr < prom_argc) { + for(i = 0; i < NENTS(used_arc); i++) { + int len = strlen(used_arc[i][0]); + + if (!strncmp(prom_argv(actr), used_arc[i][0], len)) { + /* Ok, we want it. First append the replacement... */ + strcat(cp, used_arc[i][1]); + cp += strlen(used_arc[i][1]); + /* ... and now the argument */ + s = strstr(prom_argv(actr), "="); + if (s) { + s++; + strcpy(cp, s); + cp += strlen(s); + } + *cp++ = ' '; + break; + } + } + actr++; + } + + return cp; +} + + void __init prom_init_cmdline(void) { char *cp; @@ -42,11 +80,17 @@ actr = 1; /* Always ignore argv[0] */ cp = &(arcs_cmdline[0]); - while(actr < prom_argc) { - for(i = 0; i < NENTS(ignored); i++) { + /* + * Move ARC variables to the beginning to make sure they can be + * overridden by later arguments. + */ + cp = move_firmware_args(cp); + + while (actr < prom_argc) { + for (i = 0; i < NENTS(ignored); i++) { int len = strlen(ignored[i]); - if(!strncmp(prom_argv(actr), ignored[i], len)) + if (!strncmp(prom_argv(actr), ignored[i], len)) goto pic_cont; } /* Ok, we want it. */ Index: console.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/arc/console.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- console.c 14 Jan 2001 19:53:32 -0000 1.1.1.1 +++ console.c 10 Apr 2002 14:43:19 -0000 1.2 @@ -6,22 +6,28 @@ * Copyright (C) 1996 David S. Miller (dm...@sg...) */ #include <linux/init.h> +#include <linux/kernel.h> #include <asm/sgialib.h> -void prom_putchar(char c) +static char ppbuf[1024]; + +void prom_printf(char *fmt, ...) { - ULONG cnt; - CHAR it = c; + va_list args; + char ch, *bptr; + int i; - ArcWrite(1, &it, 1, &cnt); -} + va_start(args, fmt); + i = vsprintf(ppbuf, fmt, args); -char __init prom_getchar(void) -{ - ULONG cnt; - CHAR c; + bptr = ppbuf; - ArcRead(0, &c, 1, &cnt); + while((ch = *(bptr++)) != 0) { + if(ch == '\n') + prom_putchar('\r'); - return c; + prom_putchar(ch); + } + va_end(args); + return; } Index: env.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/arc/env.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- env.c 14 Jan 2001 19:53:32 -0000 1.1.1.1 +++ env.c 10 Apr 2002 14:43:19 -0000 1.2 @@ -1,5 +1,4 @@ -/* $Id$ - * +/* * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. Index: file.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/arc/file.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- file.c 14 Jan 2001 19:53:33 -0000 1.1.1.1 +++ file.c 10 Apr 2002 14:43:19 -0000 1.2 @@ -1,5 +1,4 @@ -/* $Id$ - * +/* * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. Index: identify.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/arc/identify.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- identify.c 14 Jan 2001 19:53:33 -0000 1.1.1.1 +++ identify.c 10 Apr 2002 14:43:19 -0000 1.2 @@ -42,14 +42,11 @@ { int i; - for (i = 0; i < sizeof (mach_table); i++) { + for (i = 0; i < (sizeof (mach_table) / sizeof (mach_table[0])); i++) { if(!strcmp(s, mach_table[i].name)) return &mach_table[i]; } - prom_printf("\nYeee, could not determine architecture type <%s>\n", s); - prom_printf("press a key to reboot\n"); - prom_getchar(); - ArcEnterInteractiveMode(); + panic("\nYeee, could not determine architecture type <%s>", s); return NULL; } Index: init.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/arc/init.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- init.c 14 Jan 2001 19:53:33 -0000 1.1.1.1 +++ init.c 10 Apr 2002 14:43:19 -0000 1.2 @@ -1,5 +1,4 @@ -/* $Id$ - * +/* * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. Index: memory.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/arc/memory.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- memory.c 14 Jan 2001 19:53:34 -0000 1.1.1.1 +++ memory.c 10 Apr 2002 14:43:19 -0000 1.2 @@ -1,11 +1,9 @@ -/* $Id$ - * - * This file is subject to the terms and conditions of the GNU General Public - * License. See the file "COPYING" in the main directory of this archive - * for more details. +/* + * memory.c: PROM library functions for acquiring/using memory descriptors + * given to us from the ARCS firmware. * * Copyright (C) 1996 by David S. Miller - * Copyright (C) 1999, 2000 by Ralf Baechle + * Copyright (C) 1999, 2000, 2001 by Ralf Baechle * Copyright (C) 1999, 2000 by Silicon Graphics, Inc. * * PROM library functions for acquiring/using memory descriptors given to us @@ -41,7 +39,7 @@ "Free/Contig RAM", "Generic Free RAM", "Bad Memory", - "Standlong Program Pages", + "Standalone Program Pages", "ARCS Temp Storage Area", "ARCS Permanent Storage Area" }; @@ -54,31 +52,26 @@ "LoadedProgram", "FirmwareTemporary", "FirmwarePermanent", - "FreeContigiuous" + "FreeContiguous" }; -#define mtypes(a) (prom_flags & PROM_FLAG_ARCS) ? arcs_mtypes[a.arcs] : arc_mtypes[a.arc] +#define mtypes(a) (prom_flags & PROM_FLAG_ARCS) ? arcs_mtypes[a.arcs] \ + : arc_mtypes[a.arc] #endif -static struct prom_pmemblock pblocks[PROM_MAX_PMEMBLOCKS]; - -#define MEMTYPE_DONTUSE 0 -#define MEMTYPE_PROM 1 -#define MEMTYPE_FREE 2 - static inline int memtype_classify_arcs (union linux_memtypes type) { switch (type.arcs) { case arcs_fcontig: case arcs_free: - return MEMTYPE_FREE; + return BOOT_MEM_RAM; case arcs_atmp: - return MEMTYPE_PROM; + return BOOT_MEM_ROM_DATA; case arcs_eblock: case arcs_rvpage: case arcs_bmem: case arcs_prog: case arcs_aperm: - return MEMTYPE_DONTUSE; + return BOOT_MEM_RESERVED; default: BUG(); } @@ -90,15 +83,15 @@ switch (type.arc) { case arc_free: case arc_fcontig: - return MEMTYPE_FREE; + return BOOT_MEM_RAM; case arc_atmp: - return MEMTYPE_PROM; + return BOOT_MEM_ROM_DATA; case arc_eblock: case arc_rvpage: case arc_bmem: case arc_prog: case arc_aperm: - return MEMTYPE_DONTUSE; + return BOOT_MEM_RESERVED; default: BUG(); } @@ -113,52 +106,18 @@ return memtype_classify_arc(type); } -static inline unsigned long find_max_low_pfn(void) -{ - struct prom_pmemblock *p, *highest; - unsigned long pfn; - - p = pblocks; - highest = 0; - while (p->size != 0) { - if (!highest || p->base > highest->base) - highest = p; - p++; - } - - pfn = (highest->base + highest->size) >> PAGE_SHIFT; -#ifdef DEBUG - prom_printf("find_max_low_pfn: 0x%lx pfns.\n", pfn); -#endif - return pfn; -} - -static inline struct prom_pmemblock *find_largest_memblock(void) -{ - struct prom_pmemblock *p, *largest; - - p = pblocks; - largest = 0; - while (p->size != 0) { - if (!largest || p->size > largest->size) - largest = p; - p++; - } - - return largest; -} - void __init prom_meminit(void) { - struct prom_pmemblock *largest; - unsigned long bootmap_size; struct linux_mdesc *p; - int totram; - int i = 0; #ifdef DEBUG + int i = 0; + prom_printf("ARCS MEMORY DESCRIPTOR dump:\n"); + i=0; + prom_printf ("i=%d\n", i); p = ArcGetMemoryDescriptor(PROM_NULL_MDESC); + prom_printf ("i=%d\n", i); while(p) { prom_printf("[%d,%p]: base<%08lx> pages<%08lx> type<%s>\n", i, p, p->base, p->pages, mtypes(p->type)); @@ -167,78 +126,38 @@ } #endif - totram = 0; - i = 0; p = PROM_NULL_MDESC; while ((p = ArcGetMemoryDescriptor(p))) { - pblocks[i].type = prom_memtype_classify(p->type); - pblocks[i].base = p->base << PAGE_SHIFT; - pblocks[i].size = p->pages << PAGE_SHIFT; - - switch (pblocks[i].type) { - case MEMTYPE_FREE: - totram += pblocks[i].size; -#ifdef DEBUG - prom_printf("free_chunk[%d]: base=%08lx size=%x\n", - i, pblocks[i].base, - pblocks[i].size); -#endif - i++; - break; - case MEMTYPE_PROM: -#ifdef DEBUG - prom_printf("prom_chunk[%d]: base=%08lx size=%x\n", - i, pblocks[i].base, - pblocks[i].size); -#endif - i++; - break; - default: - break; - } - } - pblocks[i].size = 0; + unsigned long base, size; + long type; - max_low_pfn = find_max_low_pfn(); - largest = find_largest_memblock(); - bootmap_size = init_bootmem(largest->base >> PAGE_SHIFT, max_low_pfn); - - for (i = 0; pblocks[i].size; i++) - if (pblocks[i].type == MEMTYPE_FREE) - free_bootmem(pblocks[i].base, pblocks[i].size); - - /* This test is simpleminded. It will fail if the bootmem bitmap - falls into multiple adjacent ARC memory areas. */ - if (bootmap_size > largest->size) { - prom_printf("CRITIAL: overwriting PROM data.\n"); - BUG(); - } - reserve_bootmem(largest->base, bootmap_size); + base = p->base << PAGE_SHIFT; + size = p->pages << PAGE_SHIFT; + type = prom_memtype_classify(p->type); - printk("PROMLIB: Total free ram %dK / %dMB.\n", - totram >> 10, totram >> 20); + add_memory_region(base, size, type); + } } -void __init -prom_free_prom_memory (void) +void __init prom_free_prom_memory (void) { - struct prom_pmemblock *p; unsigned long freed = 0; - unsigned long addr, end; + unsigned long addr; + int i; - for (p = pblocks; p->size != 0; p++) { - if (p->type != MEMTYPE_PROM) + for (i = 0; i < boot_mem_map.nr_map; i++) { + if (boot_mem_map.map[i].type != BOOT_MEM_ROM_DATA) continue; - addr = PAGE_OFFSET + (unsigned long) (long) p->base; - end = addr + (unsigned long) (long) p->size; - while (addr < end) { - ClearPageReserved(virt_to_page(addr)); - set_page_count(virt_to_page(addr), 1); - free_page(addr); + addr = boot_mem_map.map[i].addr; + while (addr < boot_mem_map.map[i].addr + + boot_mem_map.map[i].size) { + ClearPageReserved(virt_to_page(__va(addr))); + set_page_count(virt_to_page(__va(addr)), 1); + free_page((unsigned long)__va(addr)); addr += PAGE_SIZE; freed += PAGE_SIZE; } } - printk("Freeing prom memory: %ldkb freed\n", freed >> 10); + printk(KERN_INFO "Freeing prom memory: %ldkb freed\n", freed >> 10); } Index: misc.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/arc/misc.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- misc.c 14 Jan 2001 19:53:34 -0000 1.1.1.1 +++ misc.c 10 Apr 2002 14:43:19 -0000 1.2 @@ -1,5 +1,4 @@ -/* $Id$ - * +/* * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. Index: salone.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/arc/salone.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- salone.c 14 Jan 2001 19:53:34 -0000 1.1.1.1 +++ salone.c 10 Apr 2002 14:43:19 -0000 1.2 @@ -1,5 +1,4 @@ -/* $Id$ - * +/* * Routines to load into memory and execute stand-along program images using * ARCS PROM firmware. * Index: time.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/arc/time.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- time.c 14 Jan 2001 19:53:34 -0000 1.1.1.1 +++ time.c 10 Apr 2002 14:43:19 -0000 1.2 @@ -1,5 +1,4 @@ -/* $Id$ - * +/* * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. Index: tree.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/mips64/arc/tree.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- tree.c 14 Jan 2001 19:53:35 -0000 1.1.1.1 +++ tree.c 10 Apr 2002 14:43:19 -0000 1.2 @@ -1,5 +1,4 @@ -/* $Id$ - * +/* * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. @@ -123,8 +122,6 @@ dump_component(p); p = ArcGetPeer(p); } - prom_printf("press a key\n"); - prom_getchar(); } #endif /* DEBUG_PROM_TREE */ --- printf.c DELETED --- |
From: Andy P. <at...@us...> - 2002-04-10 18:39:52
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/sparc/boot In directory usw-pr-cvs1:/tmp/cvs-serv31330/sparc/boot Modified Files: Makefile btfixupprep.c piggyback.c Log Message: synch 2.4.15 commit 45 Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/boot/Makefile,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 Index: btfixupprep.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/boot/btfixupprep.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- btfixupprep.c 14 Jan 2001 19:24:37 -0000 1.1.1.1 +++ btfixupprep.c 10 Apr 2002 15:17:41 -0000 1.2 @@ -88,6 +88,16 @@ return array + last - 1; } +void set_mode (char *buffer) +{ + for (mode = 0;; mode++) + if (buffer[mode] < '0' || buffer[mode] > '9') + break; + if (mode != 8 && mode != 16) + fatal(); +} + + int main(int argc,char **argv) { char *p, *q; @@ -106,14 +116,6 @@ goto main0; fatal(); main0: - if (fgets (buffer, 1024, stdin) == NULL || buffer[0] < '0' || buffer[0] > '9') - fatal(); - for (mode = 0;; mode++) - if (buffer[mode] < '0' || buffer[mode] > '9') - break; - if (mode != 8 && mode != 16) - fatal(); - rellen = strlen(relrec); while (fgets (buffer, 1024, stdin) != NULL) if (!strncmp (buffer, relrec, rellen)) @@ -132,6 +134,8 @@ int nbase; if (!strncmp (buffer, relrec, rellen)) goto main1; + if (mode == 0) + set_mode (buffer); p = strchr (buffer, '\n'); if (p) *p = 0; if (strlen (buffer) < 22+mode) Index: piggyback.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/boot/piggyback.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 |
From: Andy P. <at...@us...> - 2002-04-10 18:39:51
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/sparc In directory usw-pr-cvs1:/tmp/cvs-serv31330/sparc Modified Files: Makefile config.in defconfig vmlinux.lds Log Message: synch 2.4.15 commit 45 Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/Makefile,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- Makefile 14 Jan 2001 19:24:33 -0000 1.1.1.1 +++ Makefile 10 Apr 2002 15:17:41 -0000 1.2 @@ -60,7 +60,7 @@ archdep: check_asm -check_asm: +check_asm: include/linux/version.h $(MAKE) -C arch/sparc/kernel check_asm tftpboot.img: Index: config.in =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/config.in,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- config.in 25 Feb 2001 23:15:17 -0000 1.1.1.2 +++ config.in 10 Apr 2002 15:17:41 -0000 1.2 @@ -48,6 +48,8 @@ define_bool CONFIG_SUN_CONSOLE y define_bool CONFIG_SUN_AUXIO y define_bool CONFIG_SUN_IO y +define_bool CONFIG_RWSEM_GENERIC_SPINLOCK y +define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM n bool 'Support for SUN4 machines (disables SUN4[CDM] support)' CONFIG_SUN4 if [ "$CONFIG_SUN4" != "y" ]; then @@ -160,9 +162,7 @@ dep_tristate ' SCSI tape support' CONFIG_CHR_DEV_ST $CONFIG_SCSI - if [ "$CONFIG_BLK_DEV_ST" != "n" ]; then - int 'Maximum number of SCSI tapes that can be loaded as modules' CONFIG_ST_EXTRA_DEVS 2 - fi + dep_tristate ' SCSI OnStream SC-x0 tape support' CONFIG_CHR_DEV_OSST $CONFIG_SCSI dep_tristate ' SCSI CDROM support' CONFIG_BLK_DEV_SR $CONFIG_SCSI @@ -250,6 +250,10 @@ endmenu source fs/Config.in + +if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then + source net/bluetooth/Config.in +fi mainmenu_option next_comment comment 'Watchdog' Index: defconfig =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/defconfig,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- defconfig 25 Feb 2001 23:15:17 -0000 1.1.1.2 +++ defconfig 10 Apr 2002 15:17:41 -0000 1.2 @@ -38,6 +38,8 @@ CONFIG_SUN_CONSOLE=y CONFIG_SUN_AUXIO=y CONFIG_SUN_IO=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set # CONFIG_SUN4 is not set # CONFIG_PCI is not set CONFIG_SUN_OPENPROMFS=m @@ -105,8 +107,8 @@ # # CONFIG_SPARCAUDIO is not set # CONFIG_SPARCAUDIO_AMD7930 is not set -# CONFIG_SPARCAUDIO_CS4231 is not set # CONFIG_SPARCAUDIO_DBRI is not set +# CONFIG_SPARCAUDIO_CS4231 is not set # CONFIG_SPARCAUDIO_DUMMY is not set # @@ -125,8 +127,8 @@ # CONFIG_MD_RAID0 is not set # CONFIG_MD_RAID1 is not set # CONFIG_MD_RAID5 is not set +# CONFIG_MD_MULTIPATH is not set # CONFIG_BLK_DEV_LVM is not set -# CONFIG_LVM_PROC_FS is not set CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_SIZE=4096 CONFIG_BLK_DEV_INITRD=y @@ -149,9 +151,9 @@ # CONFIG_INET_ECN is not set # CONFIG_SYN_COOKIES is not set CONFIG_IPV6=m -# CONFIG_IPV6_EUI64 is not set # CONFIG_KHTTPD is not set # CONFIG_ATM is not set +# CONFIG_VLAN_8021Q is not set # # @@ -196,7 +198,7 @@ CONFIG_BLK_DEV_SD=y CONFIG_SD_EXTRA_DEVS=40 CONFIG_CHR_DEV_ST=y -CONFIG_ST_EXTRA_DEVS=2 +# CONFIG_CHR_DEV_OSST is not set CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SR_VENDOR=y CONFIG_SR_EXTRA_DEVS=2 @@ -266,22 +268,32 @@ # CONFIG_QUOTA is not set CONFIG_AUTOFS_FS=m CONFIG_AUTOFS4_FS=m +# CONFIG_REISERFS_FS is not set +# CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set # CONFIG_ADFS_FS is not set # CONFIG_ADFS_FS_RW is not set CONFIG_AFFS_FS=m # CONFIG_HFS_FS is not set # CONFIG_BFS_FS is not set +CONFIG_EXT3_FS=m +CONFIG_JBD=m +# CONFIG_JBD_DEBUG is not set CONFIG_FAT_FS=m CONFIG_MSDOS_FS=m # CONFIG_UMSDOS_FS is not set CONFIG_VFAT_FS=m CONFIG_EFS_FS=m # CONFIG_JFFS_FS is not set +# CONFIG_JFFS2_FS is not set # CONFIG_CRAMFS is not set +# CONFIG_TMPFS is not set # CONFIG_RAMFS is not set CONFIG_ISO9660_FS=m # CONFIG_JOLIET is not set +# CONFIG_ZISOFS is not set CONFIG_MINIX_FS=m +# CONFIG_VXFS_FS is not set # CONFIG_NTFS_FS is not set # CONFIG_NTFS_RW is not set CONFIG_HPFS_FS=m @@ -295,7 +307,6 @@ CONFIG_ROMFS_FS=m CONFIG_EXT2_FS=y CONFIG_SYSV_FS=m -# CONFIG_SYSV_FS_WRITE is not set # CONFIG_UDF_FS is not set # CONFIG_UDF_RW is not set CONFIG_UFS_FS=m @@ -305,6 +316,7 @@ # Network File Systems # CONFIG_CODA_FS=m +CONFIG_INTERMEZZO_FS=m CONFIG_NFS_FS=y # CONFIG_NFS_V3 is not set # CONFIG_ROOT_NFS is not set @@ -323,6 +335,8 @@ # CONFIG_NCPFS_SMALLDOS is not set # CONFIG_NCPFS_NLS is not set # CONFIG_NCPFS_EXTRAS is not set +# CONFIG_ZISOFS_FS is not set +# CONFIG_ZLIB_FS_INFLATE is not set # # Partition Types @@ -352,11 +366,13 @@ # CONFIG_NLS_CODEPAGE_865 is not set # CONFIG_NLS_CODEPAGE_866 is not set # CONFIG_NLS_CODEPAGE_869 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_CODEPAGE_932 is not set # CONFIG_NLS_CODEPAGE_936 is not set -# CONFIG_NLS_CODEPAGE_949 is not set # CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set # CONFIG_NLS_ISO8859_1 is not set # CONFIG_NLS_ISO8859_2 is not set # CONFIG_NLS_ISO8859_3 is not set @@ -364,12 +380,18 @@ # CONFIG_NLS_ISO8859_5 is not set # CONFIG_NLS_ISO8859_6 is not set # CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_8 is not set # CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set # CONFIG_NLS_ISO8859_14 is not set # CONFIG_NLS_ISO8859_15 is not set # CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set # CONFIG_NLS_UTF8 is not set + +# +# Bluetooth support +# +# CONFIG_BLUEZ is not set # # Watchdog Index: vmlinux.lds =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/sparc/vmlinux.lds,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- vmlinux.lds 14 Jan 2001 19:24:35 -0000 1.1.1.1 +++ vmlinux.lds 10 Apr 2002 15:17:41 -0000 1.2 @@ -12,7 +12,7 @@ } =0 _etext = .; PROVIDE (etext = .); - .rodata : { *(.rodata) } + .rodata : { *(.rodata) *(.rodata.*) } .rodata1 : { *(.rodata1) } .data : { |
From: Andy P. <at...@us...> - 2002-04-10 18:39:44
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/i386/boot In directory usw-pr-cvs1:/tmp/cvs-serv10929/i386/boot Modified Files: Makefile bootsect.S install.sh setup.S video.S Log Message: synch 2.4.15 commit 35 Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/boot/Makefile,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- Makefile 14 Jan 2001 19:19:52 -0000 1.1.1.1 +++ Makefile 10 Apr 2002 14:23:20 -0000 1.2 @@ -43,7 +43,7 @@ $(HOSTCC) $(HOSTCFLAGS) -o $@ $< -I$(TOPDIR)/include bootsect: bootsect.o - $(LD) -Ttext 0x0 -s -oformat binary -o $@ $< + $(LD) -Ttext 0x0 -s --oformat binary -o $@ $< bootsect.o: bootsect.s $(AS) -o $@ $< @@ -52,7 +52,7 @@ $(CPP) $(CPPFLAGS) -traditional $(SVGA_MODE) $(RAMDISK) $< -o $@ bbootsect: bbootsect.o - $(LD) -Ttext 0x0 -s -oformat binary $< -o $@ + $(LD) -Ttext 0x0 -s --oformat binary $< -o $@ bbootsect.o: bbootsect.s $(AS) -o $@ $< @@ -61,22 +61,22 @@ $(CPP) $(CPPFLAGS) -D__BIG_KERNEL__ -traditional $(SVGA_MODE) $(RAMDISK) $< -o $@ setup: setup.o - $(LD) -Ttext 0x0 -s -oformat binary -e begtext -o $@ $< + $(LD) -Ttext 0x0 -s --oformat binary -e begtext -o $@ $< setup.o: setup.s $(AS) -o $@ $< setup.s: setup.S video.S Makefile $(BOOT_INCL) $(TOPDIR)/include/linux/version.h $(TOPDIR)/include/linux/compile.h - $(CPP) $(CPPFLAGS) -traditional $(SVGA_MODE) $(RAMDISK) $< -o $@ + $(CPP) $(CPPFLAGS) -D__ASSEMBLY__ -traditional $(SVGA_MODE) $(RAMDISK) $< -o $@ bsetup: bsetup.o - $(LD) -Ttext 0x0 -s -oformat binary -e begtext -o $@ $< + $(LD) -Ttext 0x0 -s --oformat binary -e begtext -o $@ $< bsetup.o: bsetup.s $(AS) -o $@ $< bsetup.s: setup.S video.S Makefile $(BOOT_INCL) $(TOPDIR)/include/linux/version.h $(TOPDIR)/include/linux/compile.h - $(CPP) $(CPPFLAGS) -D__BIG_KERNEL__ -traditional $(SVGA_MODE) $(RAMDISK) $< -o $@ + $(CPP) $(CPPFLAGS) -D__BIG_KERNEL__ -D__ASSEMBLY__ -traditional $(SVGA_MODE) $(RAMDISK) $< -o $@ dep: Index: bootsect.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/boot/bootsect.S,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- bootsect.S 25 Feb 2001 23:15:16 -0000 1.1.1.2 +++ bootsect.S 10 Apr 2002 14:23:20 -0000 1.2 @@ -5,8 +5,12 @@ * modified by Bruce Evans (bde) * modified by Chris Noe (May 1999) (as86 -> gas) * - * bootsect is loaded at 0x7c00 by the bios-startup routines, and moves - * itself out of the way to address 0x90000, and jumps there. + * 360k/720k disk support: Andrzej Krzysztofowicz <an...@gr...> + * + * BIG FAT NOTE: We're in real mode using 64k segments. Therefore segment + * addresses must be multiplied by 16 to obtain their respective linear + * addresses. To avoid confusion, linear addresses are written using leading + * hex while segment addresses are written as segment:offset. * * bde - should not jump blindly, there may be systems with only 512K low * memory. Use int 0x12 to get the top of memory, etc. @@ -43,7 +47,7 @@ #ifndef RAMDISK #define RAMDISK 0 -#endif +#endif #ifndef ROOT_RDONLY #define ROOT_RDONLY 1 @@ -55,14 +59,12 @@ .global _start _start: -#if 0 /* hook for debugger, harmless unless BIOS is fussy (old HP) */ - int $0x3 -#endif +# First things first. Move ourself from 0x7C00 -> 0x90000 and jump there. movw $BOOTSEG, %ax - movw %ax, %ds + movw %ax, %ds # %ds = BOOTSEG movw $INITSEG, %ax - movw %ax, %es + movw %ax, %es # %ax = %es = INITSEG movw $256, %cx subw %si, %si subw %di, %di @@ -81,7 +83,7 @@ # length of bootsect + length of # setup + room for stack; # 12 is disk parm size. - movw %ax, %ds # ax and es already contain INITSEG + movw %ax, %ds # %ax and %es already contain INITSEG movw %ax, %ss movw %di, %sp # put stack at INITSEG:0x4000-12. @@ -97,52 +99,29 @@ # # High doesn't hurt. Low does. # -# Segments are as follows: ds = es = ss = cs - INITSEG, fs = 0, -# and gs is unused. +# Segments are as follows: %cs = %ds = %es = %ss = INITSEG, %fs = 0, +# and %gs is unused. - movw %cx, %fs # set fs to 0 - movw $0x78, %bx # fs:bx is parameter table address + movw %cx, %fs # %fs = 0 + movw $0x78, %bx # %fs:%bx is parameter table address pushw %ds - ldsw %fs:(%bx), %si # ds:si is source + ldsw %fs:(%bx), %si # %ds:%si is source movb $6, %cl # copy 12 bytes - pushw %di # di = 0x4000-12. - rep # don't need cld -> done on line 66 - movsw + pushw %di # %di = 0x4000-12. + rep # don't worry about cld + movsw # already done above popw %di popw %ds movb $36, 0x4(%di) # patch sector count movw %di, %fs:(%bx) movw %es, %fs:2(%bx) -# Load the setup-sectors directly after the bootblock. -# Note that 'es' is already set up. -# Also, cx = 0 from rep movsw above. - -load_setup: - xorb %ah, %ah # reset FDC - xorb %dl, %dl - int $0x13 - xorw %dx, %dx # drive 0, head 0 - movb $0x02, %cl # sector 2, track 0 - movw $0x0200, %bx # address = 512, in INITSEG - movb $0x02, %ah # service 2, "read sector(s)" - movb setup_sects, %al # (assume all on head 0, track 0) - int $0x13 # read it - jnc ok_load_setup # ok - continue - - pushw %ax # dump error code - call print_nl - movw %sp, %bp - call print_hex - popw %ax - jmp load_setup - -ok_load_setup: # Get disk drive parameters, specifically number of sectors/track. # It seems that there is no BIOS call to get the number of sectors. # Guess 36 sectors if sector 36 can be read, 18 sectors if sector 18 # can be read, 15 if sector 15 can be read. Otherwise guess 9. +# Note that %cx = 0 from rep movsw above. movw $disksizes, %si # table of sizes to try probe_loop: @@ -151,30 +130,56 @@ movw %ax, sectors cmpw $disksizes+4, %si jae got_sectors # If all else fails, try 9 - - xchgw %cx, %ax # cx = track and sector + + xchgw %cx, %ax # %cx = track and sector xorw %dx, %dx # drive 0, head 0 - xorb %bl, %bl - movb setup_sects, %bh - incb %bh - shlb %bh # address after setup (es = cs) + movw $0x0200, %bx # address = 512, in INITSEG (%es = %cs) movw $0x0201, %ax # service 2, 1 sector int $0x13 jc probe_loop # try next value got_sectors: - movw $INITSEG, %ax - movw %ax, %es # set up es movb $0x03, %ah # read cursor pos xorb %bh, %bh int $0x10 movw $9, %cx - movw $0x0007, %bx # page 0, attribute 7 (normal) - movw $msg1, %bp - movw $0x1301, %ax # write string, move cursor + movb $0x07, %bl # page 0, attribute 7 (normal) + # %bh is set above; int10 doesn't + # modify it + movw $msg1, %bp + movw $0x1301, %ax # write string, move cursor int $0x10 # tell the user we're loading.. - movw $SYSSEG, %ax # ok, we've written the message, now - movw %ax, %es # we want to load system (at 0x10000) + +# Load the setup-sectors directly after the moved bootblock (at 0x90200). +# We should know the drive geometry to do it, as setup may exceed first +# cylinder (for 9-sector 360K and 720K floppies). + + movw $0x0001, %ax # set sread (sector-to-read) to 1 as + movw $sread, %si # the boot sector has already been read + movw %ax, (%si) + + xorw %ax, %ax # reset FDC + xorb %dl, %dl + int $0x13 + movw $0x0200, %bx # address = 512, in INITSEG +next_step: + movb setup_sects, %al + movw sectors, %cx + subw (%si), %cx # (%si) = sread + cmpb %cl, %al + jbe no_cyl_crossing + movw sectors, %ax + subw (%si), %ax # (%si) = sread +no_cyl_crossing: + call read_track + pushw %ax # save it + call set_next # set %bx properly; it uses %ax,%cx,%dx + popw %ax # restore + subb %al, setup_sects # rest - for next step + jnz next_step + + pushw $SYSSEG + popw %es # %es = SYSSEG call read_it call kill_motor call print_nl @@ -184,23 +189,26 @@ # Otherwise, one of /dev/fd0H2880 (2,32) or /dev/PS0 (2,28) or /dev/at0 (2,8) # depending on the number of sectors we pretend to know we have. +# Segments are as follows: %cs = %ds = %ss = INITSEG, +# %es = SYSSEG, %fs = 0, %gs is unused. + movw root_dev, %ax orw %ax, %ax jne root_defined - + movw sectors, %bx movw $0x0208, %ax # /dev/ps0 - 1.2Mb cmpw $15, %bx je root_defined - + movb $0x1c, %al # /dev/PS0 - 1.44Mb cmpw $18, %bx je root_defined - + movb $0x20, %al # /dev/fd0H2880 - 2.88Mb cmpw $36, %bx je root_defined - + movb $0, %al # /dev/fd0 - autodetect root_defined: movw %ax, root_dev @@ -210,46 +218,45 @@ ljmp $SETUPSEG, $0 -# This routine loads the system at address 0x10000, making sure -# no 64kB boundaries are crossed. We try to load it as fast as -# possible, loading whole tracks whenever we can. - -# es = starting address segment (normally 0x1000) +# These variables are addressed via %si register as it gives shorter code. sread: .word 0 # sectors read of current track head: .word 0 # current head track: .word 0 # current track +# This routine loads the system at address SYSSEG, making sure +# no 64kB boundaries are crossed. We try to load it as fast as +# possible, loading whole tracks whenever we can. + read_it: - movb setup_sects, %al - incb %al - movb %al, sread - movw %es, %ax + movw %es, %ax # %es = SYSSEG when called testw $0x0fff, %ax -die: jne die # es must be at 64kB boundary - - xorw %bx, %bx # bx is starting address within segment +die: jne die # %es must be at 64kB boundary + xorw %bx, %bx # %bx is starting address within segment rp_read: -#ifdef __BIG_KERNEL__ - bootsect_kludge = 0x220 # 0x200 (size of bootsector) + 0x20 (offset - lcall bootsect_kludge # of bootsect_kludge in setup.S) +#ifdef __BIG_KERNEL__ # look in setup.S for bootsect_kludge + bootsect_kludge = 0x220 # 0x200 + 0x20 which is the size of the + lcall bootsect_kludge # bootsector + bootsect_kludge offset #else movw %es, %ax subw $SYSSEG, %ax + movw %bx, %cx + shr $4, %cx + add %cx, %ax # check offset #endif - cmpw syssize, %ax # have we loaded all yet? + cmpw syssize, %ax # have we loaded everything yet? jbe ok1_read ret ok1_read: movw sectors, %ax - subw sread, %ax + subw (%si), %ax # (%si) = sread movw %ax, %cx shlw $9, %cx addw %bx, %cx jnc ok2_read - + je ok2_read xorw %ax, %ax @@ -257,60 +264,64 @@ shrw $9, %ax ok2_read: call read_track - movw %ax, %cx - addw sread, %ax - cmpw sectors, %ax - jne ok3_read - - movw $1, %ax - subw head, %ax - jne ok4_read - - incw track -ok4_read: - movw %ax, head - xorw %ax, %ax -ok3_read: - movw %ax, sread - shlw $9, %cx - addw %cx, %bx - jnc rp_read - - movw %es, %ax - addb $0x10, %ah - movw %ax, %es - xorw %bx, %bx + call set_next jmp rp_read read_track: pusha pusha - movw $0xe2e, %ax # loading... message 2e = . + movw $0xe2e, %ax # loading... message 2e = . movw $7, %bx int $0x10 popa - movw track, %dx - movw sread, %cx + +# Accessing head, track, sread via %si gives shorter code. + + movw 4(%si), %dx # 4(%si) = track + movw (%si), %cx # (%si) = sread incw %cx movb %dl, %ch - movw head, %dx + movw 2(%si), %dx # 2(%si) = head movb %dl, %dh andw $0x0100, %dx movb $2, %ah - pushw %dx # save for error dump + pushw %dx # save for error dump pushw %cx pushw %bx pushw %ax int $0x13 jc bad_rt - + addw $8, %sp popa ret +set_next: + movw %ax, %cx + addw (%si), %ax # (%si) = sread + cmp sectors, %ax + jne ok3_set + movw $0x0001, %ax + xorw %ax, 2(%si) # change head + jne ok4_set + incw 4(%si) # next track +ok4_set: + xorw %ax, %ax +ok3_set: + movw %ax, (%si) # set sread + shlw $9, %cx + addw %cx, %bx + jnc set_next_fin + movw %es, %ax + addb $0x10, %ah + movw %ax, %es + xorw %bx, %bx +set_next_fin: + ret + bad_rt: - pushw %ax # save error code - call print_all # ah = error, al = read + pushw %ax # save error code + call print_all # %ah = error, %al = read xorb %ah, %ah xorb %dl, %dl int $0x13 @@ -331,13 +342,13 @@ # ret <- %sp print_all: - movw $5, %cx # error code + 4 registers + movw $5, %cx # error code + 4 registers movw %sp, %bp print_loop: - pushw %cx # save count left - call print_nl # nl for readability + pushw %cx # save count remaining + call print_nl # <-- for readability cmpb $5, %cl - jae no_reg # see if register name is needed + jae no_reg # see if register name is needed movw $0xe05 + 'A' - 1, %ax subb %cl, %al @@ -347,31 +358,31 @@ movb $':', %al int $0x10 no_reg: - addw $2, %bp # next register - call print_hex # print it + addw $2, %bp # next register + call print_hex # print it popw %cx loop print_loop ret print_nl: - movw $0xe0d, %ax # CR + movw $0xe0d, %ax # CR int $0x10 - movb $0xa, %al # LF + movb $0xa, %al # LF int $0x10 ret # print_hex is for debugging purposes, and prints the word -# pointed to by ss:bp in hexadecimal. +# pointed to by %ss:%bp in hexadecimal. print_hex: - movw $4, %cx # 4 hex digits - movw (%bp), %dx # load word into dx + movw $4, %cx # 4 hex digits + movw (%bp), %dx # load word into %dx print_digit: - rolw $4, %dx # rotate to use low 4 bits - movw $0xe0f, %ax # ah = request - andb %dl, %al # al = mask for nybble - addb $0x90, %al # convert al to ascii hex - daa # in only four instructions! + rolw $4, %dx # rotate to use low 4 bits + movw $0xe0f, %ax # %ah = request + andb %dl, %al # %al = mask for nybble + addb $0x90, %al # convert %al to ascii hex + daa # in only four instructions! adc $0x40, %al daa int $0x10 @@ -381,11 +392,18 @@ # This procedure turns off the floppy drive motor, so # that we enter the kernel in a known state, and # don't have to worry about it later. +# NOTE: Doesn't save %ax or %dx; do it yourself if you need to. kill_motor: +#if 1 + xorw %ax, %ax # reset FDC + xorb %dl, %dl + int $0x13 +#else movw $0x3f2, %dx xorb %al, %al outb %al, %dx +#endif ret sectors: .word 0 Index: install.sh =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/boot/install.sh,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- install.sh 14 Jan 2001 19:19:53 -0000 1.1.1.1 +++ install.sh 10 Apr 2002 14:23:20 -0000 1.2 @@ -21,6 +21,7 @@ # User may have a custom install script +if [ -x ~/bin/installkernel ]; then exec ~/bin/installkernel "$@"; fi if [ -x /sbin/installkernel ]; then exec /sbin/installkernel "$@"; fi # Default install - same as make zlilo Index: setup.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/boot/setup.S,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- setup.S 14 Jan 2001 19:19:52 -0000 1.1.1.1 +++ setup.S 10 Apr 2002 14:23:20 -0000 1.2 @@ -18,7 +18,7 @@ * March 1993/June 1994 (Chr...@li...) * * add APM BIOS checking by Stephen Rothwell, May 1994 - * (Ste...@ca...) + * (sf...@ca...) * * High load stuff, initrd support and position independency * by Hans Lermen & Werner Almesberger, February 1996 @@ -32,9 +32,18 @@ * * Transcribed from Intel (as86) -> AT&T (gas) by Chris Noe, May 1999. * <st...@no...> + * + * Fix to work around buggy BIOSes which dont use carry bit correctly + * and/or report extended memory in CX/DX for e801h memory size detection + * call. As a result the kernel got wrong figures. The int15/e801h docs + * from Ralf Brown interrupt list seem to indicate AX/BX should be used + * anyway. So to avoid breaking many machines (presumably there was a reason + * to orginally use CX/DX instead of AX/BX), we do a kludge to see + * if CX/DX have been changed in the e801 call and if so use AX/BX . + * Michael Miller, April 2001 <mic...@mj...> + * */ -#define __ASSEMBLY__ #include <linux/config.h> #include <asm/segment.h> #include <linux/version.h> @@ -81,14 +90,9 @@ type_of_loader: .byte 0 # = 0, old one (LILO, Loadlin, # Bootlin, SYSLX, bootsect...) - # Else it is set by the loader: - # 0xTV: T=0 for LILO - # T=1 for Loadlin - # T=2 for bootsect-loader - # T=3 for SYSLX - # T=4 for ETHERBOOT - # V = version - + # See Documentation/i386/boot.txt for + # assigned ids + # flags, unused bits must be zero (RFU) bit within loadflags loadflags: LOADED_HIGH = 1 # If set, the kernel is loaded high @@ -228,8 +232,8 @@ # Move rest of setup code/data to here movw $2048, %di # four sectors loaded by LILO subw %si, %si - movw %cs, %ax # aka SETUPSEG - movw %ax, %es + pushw %cs + popw %es movw $SYSSEG, %ax movw %ax, %ds rep @@ -249,6 +253,7 @@ call prtstr no_sig_loop: + hlt jmp no_sig_loop good_sig: @@ -341,10 +346,24 @@ # to write everything into the same place.) meme801: + stc # fix to work around buggy + xorw %cx,%cx # BIOSes which dont clear/set + xorw %dx,%dx # carry on pass/error of + # e801h memory size call + # or merely pass cx,dx though + # without changing them. movw $0xe801, %ax int $0x15 jc mem88 + cmpw $0x0, %cx # Kludge to handle BIOSes + jne e801usecxdx # which report their extended + cmpw $0x0, %dx # memory in AX/BX rather than + jne e801usecxdx # CX/DX. The spec I have read + movw %ax, %cx # seems to indicate AX/BX + movw %bx, %dx # are more reasonable anyway... + +e801usecxdx: andl $0xffff, %edx # clear sign extend shll $6, %edx # and go from 64k to 1k chunks movl %edx, (0x1e0) # store extended memory size @@ -623,18 +642,40 @@ movw %ax, %ds movw %dx, %ss end_move_self: # now we are at the right place - lidt idt_48 # load idt with 0,0 - xorl %eax, %eax # Compute gdt_base - movw %ds, %ax # (Convert %ds:gdt to a linear ptr) - shll $4, %eax - addl $gdt, %eax - movl %eax, (gdt_48+2) - lgdt gdt_48 # load gdt with whatever is - # appropriate -# that was painless, now we enable a20 +# +# Enable A20. This is at the very best an annoying procedure. +# A20 code ported from SYSLINUX 1.52-1.63 by H. Peter Anvin. +# + +A20_TEST_LOOPS = 32 # Iterations per wait +A20_ENABLE_LOOPS = 255 # Total loops to try + + +a20_try_loop: + + # First, see if we are on a system with no A20 gate. +a20_none: + call a20_test + jnz a20_done + + # Next, try the BIOS (INT 0x15, AX=0x2401) +a20_bios: + movw $0x2401, %ax + pushfl # Be paranoid about flags + int $0x15 + popfl + + call a20_test + jnz a20_done + + # Try enabling A20 through the keyboard controller +a20_kbc: call empty_8042 + call a20_test # Just in case the BIOS worked + jnz a20_done # but had a delayed reaction. + movb $0xD1, %al # command write outb %al, $0x64 call empty_8042 @@ -643,29 +684,62 @@ outb %al, $0x60 call empty_8042 -# -# You must preserve the other bits here. Otherwise embarrasing things -# like laptops powering off on boot happen. Corrected version by Kira -# Brown from Linux 2.2 -# - inb $0x92, %al # - orb $02, %al # "fast A20" version - outb %al, $0x92 # some chips have only this - -# wait until a20 really *is* enabled; it can take a fair amount of -# time on certain systems; Toshiba Tecras are known to have this -# problem. The memory location used here (0x200) is the int 0x80 -# vector, which should be safe to use. - - xorw %ax, %ax # segment 0x0000 - movw %ax, %fs - decw %ax # segment 0xffff (HMA) - movw %ax, %gs -a20_wait: - incw %ax # unused memory location <0xfff0 - movw %ax, %fs:(0x200) # we use the "int 0x80" vector - cmpw %gs:(0x210), %ax # and its corresponding HMA addr - je a20_wait # loop until no longer aliased + # Wait until a20 really *is* enabled; it can take a fair amount of + # time on certain systems; Toshiba Tecras are known to have this + # problem. +a20_kbc_wait: + xorw %cx, %cx +a20_kbc_wait_loop: + call a20_test + jnz a20_done + loop a20_kbc_wait_loop + + # Final attempt: use "configuration port A" +a20_fast: + inb $0x92, %al # Configuration Port A + orb $0x02, %al # "fast A20" version + andb $0xFE, %al # don't accidentally reset + outb %al, $0x92 + + # Wait for configuration port A to take effect +a20_fast_wait: + xorw %cx, %cx +a20_fast_wait_loop: + call a20_test + jnz a20_done + loop a20_fast_wait_loop + + # A20 is still not responding. Try frobbing it again. + # + decb (a20_tries) + jnz a20_try_loop + + movw $a20_err_msg, %si + call prtstr + +a20_die: + hlt + jmp a20_die + +a20_tries: + .byte A20_ENABLE_LOOPS + +a20_err_msg: + .ascii "linux: fatal error: A20 gate not responding!" + .byte 13, 10, 0 + + # If we get here, all is good +a20_done: + +# set up gdt and idt + lidt idt_48 # load idt with 0,0 + xorl %eax, %eax # Compute gdt_base + movw %ds, %ax # (Convert %ds:gdt to a linear ptr) + shll $4, %eax + addl $gdt, %eax + movl %eax, (gdt_48+2) + lgdt gdt_48 # load gdt with whatever is + # appropriate # make sure any possible coprocessor is properly reset.. xorw %ax, %ax @@ -821,6 +895,37 @@ bootsect_panic_mess: .string "INT15 refuses to access high mem, giving up." + + +# This routine tests whether or not A20 is enabled. If so, it +# exits with zf = 0. +# +# The memory address used, 0x200, is the int $0x80 vector, which +# should be safe. + +A20_TEST_ADDR = 4*0x80 + +a20_test: + pushw %cx + pushw %ax + xorw %cx, %cx + movw %cx, %fs # Low memory + decw %cx + movw %cx, %gs # High memory area + movw $A20_TEST_LOOPS, %cx + movw %fs:(A20_TEST_ADDR), %ax + pushw %ax +a20_test_wait: + incw %ax + movw %ax, %fs:(A20_TEST_ADDR) + call delay # Serialize and make delay constant + cmpw %gs:(A20_TEST_ADDR+0x10), %ax + loope a20_test_wait + + popw %fs:(A20_TEST_ADDR) + popw %ax + popw %cx + ret # This routine checks that the keyboard command queue is empty # (after emptying the output buffers) Index: video.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/i386/boot/video.S,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- video.S 14 Jan 2001 19:19:57 -0000 1.1.1.1 +++ video.S 10 Apr 2002 14:23:20 -0000 1.2 @@ -496,7 +496,7 @@ jnc setbad addw %bx, %bx - .word 0xa7ff, spec_inits # JMP [BX+spec_inits] + jmp *spec_inits(%bx) setmenu: orb %al, %al # 80x25 is an exception @@ -1008,7 +1008,7 @@ vesa1: # gas version 2.9.1, using BFD version 2.9.1.0.23 buggers the next inst. # XXX: lodsw %gs:(%si), %ax # Get next mode in the list - .byte 0x65, 0xAD # %gs seg prefix + lodsw + gs; lodsw cmpw $0xffff, %ax # End of the table? jz vesar |
From: Andy P. <at...@us...> - 2002-04-10 18:39:44
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/mips/ite-boards/generic In directory usw-pr-cvs1:/tmp/cvs-serv15748/arch/mips/ite-boards/generic Log Message: Directory /cvsroot/linux-vax/kernel-2.4/arch/mips/ite-boards/generic added to the repository |
From: Andy P. <at...@us...> - 2002-04-10 18:39:42
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/m68k/mm In directory usw-pr-cvs1:/tmp/cvs-serv13561/m68k/mm Modified Files: fault.c init.c memory.c motorola.c Log Message: synch 2.4.15 commit 37 Index: fault.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/m68k/mm/fault.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- fault.c 14 Jan 2001 19:40:20 -0000 1.1.1.1 +++ fault.c 10 Apr 2002 14:34:36 -0000 1.2 @@ -101,7 +101,7 @@ if (in_interrupt() || !mm) goto no_context; - down(&mm->mmap_sem); + down_read(&mm->mmap_sem); vma = find_vma(mm, address); if (!vma) @@ -168,7 +168,7 @@ #warning should be obsolete now... if (CPU_IS_040_OR_060) flush_tlb_page(vma, address); - up(&mm->mmap_sem); + up_read(&mm->mmap_sem); return 0; /* @@ -203,6 +203,6 @@ current->thread.faddr = address; send_sig: - up(&mm->mmap_sem); + up_read(&mm->mmap_sem); return send_fault_sig(regs); } Index: init.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/m68k/mm/init.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- init.c 14 Jan 2001 19:40:20 -0000 1.1.1.1 +++ init.c 10 Apr 2002 14:34:36 -0000 1.2 @@ -31,12 +31,11 @@ #ifdef CONFIG_ATARI #include <asm/atari_stram.h> #endif +#include <asm/tlb.h> -static unsigned long totalram_pages; +mmu_gather_t mmu_gathers[NR_CPUS]; -#ifdef CONFIG_SUN3 -void mmu_emu_reserve_pages(unsigned long max_page); -#endif +unsigned long totalram_pages = 0; int do_check_pgt_cache(int low, int high) { @@ -86,7 +85,7 @@ void show_mem(void) { unsigned long i; - int free = 0, total = 0, reserved = 0, nonshared = 0, shared = 0; + int free = 0, total = 0, reserved = 0, shared = 0; int cached = 0; printk("\nMem-info:\n"); @@ -101,15 +100,12 @@ cached++; else if (!page_count(mem_map+i)) free++; - else if (page_count(mem_map+i) == 1) - nonshared++; else shared += page_count(mem_map+i) - 1; } printk("%d pages of RAM\n",total); printk("%d free pages\n",free); printk("%d reserved pages\n",reserved); - printk("%d pages nonshared\n",nonshared); printk("%d pages shared\n",shared); printk("%d pages swap cached\n",cached); printk("%ld pages in page table cache\n",pgtable_cache_size); @@ -137,17 +133,11 @@ #ifdef CONFIG_ATARI if (MACH_IS_ATARI) - atari_stram_reserve_pages( start_mem ); -#endif - -#ifdef CONFIG_SUN3 - /* reserve rom pages */ - mmu_emu_reserve_pages(max_mapnr); + atari_stram_mem_init_hook(); #endif /* this will put all memory onto the freelists */ totalram_pages = free_all_bootmem(); - printk("tp:%ld\n", totalram_pages); for (tmp = PAGE_OFFSET ; tmp < (unsigned long)high_memory; tmp += PAGE_SIZE) { #if 0 @@ -201,13 +191,15 @@ #ifdef CONFIG_BLK_DEV_INITRD void free_initrd_mem(unsigned long start, unsigned long end) { + int pages = 0; for (; start < end; start += PAGE_SIZE) { ClearPageReserved(virt_to_page(start)); set_page_count(virt_to_page(start), 1); free_page(start); totalram_pages++; + pages++; } - printk ("Freeing initrd memory: %ldk freed\n", (end - start) >> 10); + printk ("Freeing initrd memory: %dk freed\n", pages); } #endif @@ -220,15 +212,8 @@ val->sharedram = 0; val->freeram = nr_free_pages(); val->bufferram = atomic_read(&buffermem_pages); - while (i-- > 0) { - if (PageReserved(mem_map+i)) - continue; - val->totalram++; - if (!page_count(mem_map+i)) - continue; - val->sharedram += page_count(mem_map+i) - 1; - } val->totalhigh = 0; val->freehigh = 0; + val->mem_unit = PAGE_SIZE; return; } Index: memory.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/m68k/mm/memory.c,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- memory.c 25 Feb 2001 23:15:19 -0000 1.1.1.2 +++ memory.c 10 Apr 2002 14:34:36 -0000 1.2 @@ -39,6 +39,7 @@ pgd_set(pgd, (pmd_t *)BAD_PAGETABLE); } +#if 0 pte_t *get_pte_slow(pmd_t *pmd, unsigned long offset) { pte_t *pte; @@ -63,7 +64,9 @@ } return (pte_t *)__pmd_page(*pmd) + offset; } +#endif +#if 0 pmd_t *get_pmd_slow(pgd_t *pgd, unsigned long offset) { pmd_t *pmd; @@ -84,7 +87,7 @@ } return (pmd_t *)__pgd_page(*pgd) + offset; } - +#endif /* ++andreas: {get,free}_pointer_table rewritten to use unused fields from struct page instead of separately kmalloced struct. Stolen from @@ -246,6 +249,14 @@ voff -= m68k_memory[i].size; } while (++i < m68k_num_memory); + /* As a special case allow `__pa(high_memory)'. */ + if (voff == 0) + return m68k_memory[i-1].addr + m68k_memory[i-1].size; + + /* As a special case allow `__pa(high_memory)'. */ + if (voff == 0) + return m68k_memory[i-1].addr + m68k_memory[i-1].size; + return mm_vtop_fallback(vaddr); } #endif @@ -450,16 +461,21 @@ ".chip 68k" \ : : "a" (paddr)) -/* push and invalidate page in both caches */ +/* push and invalidate page in both caches, must disable ints + * to avoid invalidating valid data */ #define pushcl040(paddr) \ - do { push040(paddr); \ + do { unsigned long flags; \ + save_flags(flags); \ + cli(); \ + push040(paddr); \ if (CPU_IS_060) clear040(paddr); \ + restore_flags(flags); \ } while(0) /* push page in both caches, invalidate in i-cache */ +/* RZ: cpush %bc DOES invalidate %ic, regardless of DPI */ #define pushcli040(paddr) \ do { push040(paddr); \ - if (CPU_IS_060) cleari040(paddr); \ } while(0) Index: motorola.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/m68k/mm/motorola.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- motorola.c 14 Jan 2001 19:40:25 -0000 1.1.1.1 +++ motorola.c 10 Apr 2002 14:34:36 -0000 1.2 @@ -286,6 +286,7 @@ } extern char __init_begin, __init_end; +extern unsigned long totalram_pages; void free_initmem(void) { @@ -296,6 +297,7 @@ virt_to_page(addr)->flags &= ~(1 << PG_reserved); set_page_count(virt_to_page(addr), 1); free_page(addr); + totalram_pages++; } } |
From: Andy P. <at...@us...> - 2002-04-10 18:39:41
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/ia64/sn/fprom In directory usw-pr-cvs1:/tmp/cvs-serv12040/ia64/sn/fprom Modified Files: Makefile fprom.lds fw-emu.c Log Message: synch 2.4.15 commit 36 Index: Makefile =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ia64/sn/fprom/Makefile,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- Makefile 14 Jan 2001 19:51:03 -0000 1.1.1.1 +++ Makefile 10 Apr 2002 14:27:22 -0000 1.2 @@ -13,6 +13,7 @@ LIB = ../../lib/lib.a OBJ=fpromasm.o main.o fw-emu.o fpmem.o +obj-y=fprom fprom: $(OBJ) $(LD) -static -Tfprom.lds -o fprom $(OBJ) $(LIB) Index: fprom.lds =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ia64/sn/fprom/fprom.lds,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- fprom.lds 14 Jan 2001 19:51:05 -0000 1.1.1.1 +++ fprom.lds 10 Apr 2002 14:27:22 -0000 1.2 @@ -24,7 +24,7 @@ _data = .; .rodata : AT(ADDR(.rodata) - 0x0000000000000000 ) - { *(.rodata) } + { *(.rodata) *(.rodata.*) } .opd : AT(ADDR(.opd) - 0x0000000000000000 ) { *(.opd) } .data : AT(ADDR(.data) - 0x0000000000000000 ) Index: fw-emu.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/ia64/sn/fprom/fw-emu.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- fw-emu.c 14 Jan 2001 19:51:08 -0000 1.1.1.1 +++ fw-emu.c 10 Apr 2002 14:27:22 -0000 1.2 @@ -62,6 +62,7 @@ func_ptr_t ap_entry; +static efi_runtime_services_t *efi_runtime_p; static char fw_mem[( sizeof(efi_system_table_t) + sizeof(efi_runtime_services_t) + NUM_EFI_DESCS*sizeof(efi_config_table_t) @@ -88,8 +89,8 @@ .text .proc pal_emulator_static pal_emulator_static: - mov r8=-1 - cmp.eq p6,p7=6,r28 /* PAL_PTCE_INFO */ + mov r8=-1;; + cmp.eq p6,p7=6,r28;; /* PAL_PTCE_INFO */ (p7) br.cond.sptk.few 1f ;; mov r8=0 /* status = 0 */ @@ -98,20 +99,20 @@ movl r11=0x1000000000002000 /* stride[0], stride[1] */ br.cond.sptk.few rp -1: cmp.eq p6,p7=14,r28 /* PAL_FREQ_RATIOS */ -(p7) br.cond.sptk.few 1f +1: cmp.eq p6,p7=14,r28;; /* PAL_FREQ_RATIOS */ +(p7) br.cond.sptk.few 1f;; mov r8=0 /* status = 0 */ movl r9 =0x100000064 /* proc_ratio (1/100) */ movl r10=0x100000100 /* bus_ratio<<32 (1/256) */ movl r11=0x10000000a /* itc_ratio<<32 (1/100) */ -1: cmp.eq p6,p7=22,r28 /* PAL_MC_DRAIN */ -(p7) br.cond.sptk.few 1f +1: cmp.eq p6,p7=22,r28;; /* PAL_MC_DRAIN */ +(p7) br.cond.sptk.few 1f;; mov r8=0 br.cond.sptk.few rp -1: cmp.eq p6,p7=23,r28 /* PAL_MC_EXPECTED */ -(p7) br.cond.sptk.few 1f +1: cmp.eq p6,p7=23,r28;; /* PAL_MC_EXPECTED */ +(p7) br.cond.sptk.few 1f;; mov r8=0 br.cond.sptk.few rp @@ -256,6 +257,36 @@ _fp->gp = __fwtab_pa(base_nasid, _fp->gp); } +void +fix_virt_function_pointer(void *fptr) +{ + func_ptr_t *fp; + + fp = fptr; + fp->pc = fp->pc | PAGE_OFFSET; + fp->gp = fp->gp | PAGE_OFFSET; +} + + +int +efi_set_virtual_address_map(void) +{ + efi_runtime_services_t *runtime; + + runtime = efi_runtime_p; + fix_virt_function_pointer((void*)runtime->get_time); + fix_virt_function_pointer((void*)runtime->set_time); + fix_virt_function_pointer((void*)runtime->get_wakeup_time); + fix_virt_function_pointer((void*)runtime->set_wakeup_time); + fix_virt_function_pointer((void*)runtime->set_virtual_address_map); + fix_virt_function_pointer((void*)runtime->get_variable); + fix_virt_function_pointer((void*)runtime->get_next_variable); + fix_virt_function_pointer((void*)runtime->set_variable); + fix_virt_function_pointer((void*)runtime->get_next_high_mono_count); + fix_virt_function_pointer((void*)runtime->reset_system); + return EFI_SUCCESS;; +} + void sys_fw_init (const char *args, int arglen, int bsp) @@ -305,7 +336,7 @@ cp = fw_mem; efi_systab = (void *) cp; cp += sizeof(*efi_systab); - efi_runtime = (void *) cp; cp += sizeof(*efi_runtime); + efi_runtime_p = efi_runtime = (void *) cp; cp += sizeof(*efi_runtime); efi_tables = (void *) cp; cp += NUM_EFI_DESCS*sizeof(*efi_tables); sal_systab = (void *) cp; cp += sizeof(*sal_systab); sal_ed = (void *) cp; cp += sizeof(*sal_ed); @@ -354,7 +385,7 @@ efi_runtime->set_time = __fwtab_pa(base_nasid, &efi_unimplemented); efi_runtime->get_wakeup_time = __fwtab_pa(base_nasid, &efi_unimplemented); efi_runtime->set_wakeup_time = __fwtab_pa(base_nasid, &efi_unimplemented); - efi_runtime->set_virtual_address_map = __fwtab_pa(base_nasid, &efi_success); + efi_runtime->set_virtual_address_map = __fwtab_pa(base_nasid, &efi_set_virtual_address_map); efi_runtime->get_variable = __fwtab_pa(base_nasid, &efi_unimplemented); efi_runtime->get_next_variable = __fwtab_pa(base_nasid, &efi_unimplemented); efi_runtime->set_variable = __fwtab_pa(base_nasid, &efi_unimplemented); @@ -370,10 +401,11 @@ fix_function_pointer(&efi_get_time); fix_function_pointer(&efi_success); fix_function_pointer(&efi_reset_system); + fix_function_pointer(&efi_set_virtual_address_map); /* fill in the ACPI system table: */ memcpy(acpi_systab->signature, "RSD PTR ", 8); - acpi_systab->rsdt = (acpi_rsdt_t*)__fwtab_pa(base_nasid, acpi_rsdt); + acpi_systab->rsdt = (struct acpi_rsdt*)__fwtab_pa(base_nasid, acpi_rsdt); memcpy(acpi_rsdt->header.signature, "RSDT",4); acpi_rsdt->header.length = sizeof(acpi_rsdt_t); |
From: Andy P. <at...@us...> - 2002-04-10 18:39:40
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/m68k/mvme147 In directory usw-pr-cvs1:/tmp/cvs-serv13561/m68k/mvme147 Modified Files: config.c Log Message: synch 2.4.15 commit 37 Index: config.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/m68k/mvme147/config.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- config.c 14 Jan 2001 19:41:59 -0000 1.1.1.1 +++ config.c 10 Apr 2002 14:34:36 -0000 1.2 @@ -16,7 +16,6 @@ #include <linux/types.h> #include <linux/kernel.h> #include <linux/mm.h> -#include <linux/kd.h> #include <linux/tty.h> #include <linux/console.h> #include <linux/linkage.h> @@ -29,6 +28,7 @@ #include <asm/setup.h> #include <asm/irq.h> #include <asm/traps.h> +#include <asm/rtc.h> #include <asm/machdep.h> #include <asm/mvme147hw.h> |