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> |