You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(165) |
Sep
(240) |
Oct
(424) |
Nov
(526) |
Dec
(293) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(242) |
Feb
(149) |
Mar
(143) |
Apr
(143) |
May
(76) |
Jun
(59) |
Jul
(20) |
Aug
(2) |
Sep
(49) |
Oct
(1) |
Nov
(4) |
Dec
|
2003 |
Jan
(1) |
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2004 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(3) |
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
(72) |
Jul
(36) |
Aug
(9) |
Sep
(16) |
Oct
(23) |
Nov
(9) |
Dec
(3) |
2010 |
Jan
|
Feb
(1) |
Mar
(35) |
Apr
(44) |
May
(56) |
Jun
(71) |
Jul
(41) |
Aug
(41) |
Sep
(22) |
Oct
(3) |
Nov
(1) |
Dec
(1) |
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2014 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
(1) |
Nov
(1) |
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2017 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
(1) |
Jun
|
Jul
(1) |
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2021 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
(25) |
Oct
(105) |
Nov
(15) |
Dec
|
2025 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
(4) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: James S. <jsi...@us...> - 2001-10-22 19:17:59
|
Update of /cvsroot/linux-mips/linux/drivers/net/tulip In directory usw-pr-cvs1:/tmp/cvs-serv12199 Modified Files: interrupt.c media.c tulip_core.c Removed Files: tulip.h Log Message: Many improvements. The tulip driver has alot of the functional we need already. NOTE: the udelay in media.c is vitual for the qube to work. Index: interrupt.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/net/tulip/interrupt.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- interrupt.c 2001/10/22 18:20:56 1.4 +++ interrupt.c 2001/10/22 19:17:55 1.5 @@ -74,7 +74,7 @@ struct sk_buff *skb; dma_addr_t mapping; - skb = tp->rx_buffers[entry].skb = dev_alloc_skb(PKT_BUF_SZ + PKT_BUF_FUDGE); + skb = tp->rx_buffers[entry].skb = dev_alloc_skb(PKT_BUF_SZ); if (skb == NULL) break; @@ -186,7 +186,7 @@ tp->rx_buffers[entry].skb->tail, pkt_len); #endif -#ifdef CONFIG_COBALT_27 +#if defined(__mips__) /* * Scrub the cache to avoid stale data in * the next packet delivered in this slot. Index: media.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/net/tulip/media.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- media.c 2001/10/22 18:20:56 1.5 +++ media.c 2001/10/22 19:17:55 1.6 @@ -232,7 +232,7 @@ outl(csr13val, ioaddr + CSR13); } else { csr13val = 1; - csr14val = 0x0003FFFF; + csr14val = 0; csr15dir = (setup[0]<<16) | 0x0008; csr15val = (setup[1]<<16) | 0x0008; if (dev->if_port <= 4) Index: tulip_core.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/net/tulip/tulip_core.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- tulip_core.c 2001/10/22 18:20:56 1.6 +++ tulip_core.c 2001/10/22 19:17:55 1.7 @@ -33,15 +33,7 @@ static char version[] __devinitdata = "Linux Tulip driver version " DRV_VERSION " (" DRV_RELDATE ")\n"; -#ifdef CONFIG_COBALT_27 -#include <asm/io.h> -#endif -#ifdef CONFIG_COBALT_27 -/* COBALT LOCAL: Needed because our mips is not DMA coherent. -DaveM */ -#define CACHED_TO_UNCACHED(x) (((unsigned long)(x) & (unsigned long)0x1fffffff) + KSEG1) -#endif - /* A few user-configurable values. */ /* Maximum events (Rx packets, etc.) to handle at each interrupt. */ @@ -66,10 +58,8 @@ /* Set the copy breakpoint for the copy-only-tiny-buffer Rx structure. */ #if defined(__alpha__) || defined(__arm__) || defined(__hppa__) \ || defined(__sparc_) || defined(__ia64__) \ - || defined(__sh__) + || defined(__sh__) || defined(__mips__) static int rx_copybreak = 1518; -#elif defined(__mips__) -static int rx_copybreak = 1536; #else static int rx_copybreak = 100; #endif @@ -352,7 +342,7 @@ tp->tx_buffers[tp->cur_tx].skb = NULL; tp->tx_buffers[tp->cur_tx].mapping = mapping; -#ifdef CONFIG_COBALT_27 +#if defined(__mips__) dma_cache_wback_inv((unsigned long)tp->setup_frame, sizeof(tp->setup_frame)); #endif @@ -687,7 +677,7 @@ /* Note the receive buffer must be longword aligned. dev_alloc_skb() provides 16 byte alignment. But do *not* use skb_reserve() to align the IP header! */ - struct sk_buff *skb = dev_alloc_skb(PKT_BUF_SZ + PKT_BUF_FUDGE); + struct sk_buff *skb = dev_alloc_skb(PKT_BUF_SZ); tp->rx_buffers[i].skb = skb; if (skb == NULL) break; @@ -695,9 +685,8 @@ PKT_BUF_SZ, PCI_DMA_FROMDEVICE); tp->rx_buffers[i].mapping = mapping; skb->dev = dev; /* Mark as being used by this device. */ -#ifdef CONFIG_COBALT_27 - /* COBALT LOCAL: Kick out any matching lines in the cache. - -DaveM */ +#if defined(__mips__) + /* Kick out any matching lines in the cache. */ dma_cache_inv((unsigned long)skb->tail, PKT_BUF_SZ); #endif tp->rx_ring[i].status = cpu_to_le32(DescOwned); /* Owned by Tulip chip */ @@ -777,7 +766,7 @@ tp->tx_ring[entry].length = cpu_to_le32(skb->len | flag); /* if we were using Transmit Automatic Polling, we would need a * wmb() here. */ -#ifdef CONFIG_COBALT_27 +#if defined(__mips__) dma_cache_wback_inv((unsigned long)skb->data, skb->len); #endif tp->tx_ring[entry].status = cpu_to_le32(DescOwned); @@ -864,12 +853,6 @@ init_timer(&tp->timer); tp->timer.data = (unsigned long)dev; -#ifdef __mips__ // workaround compiler bug?! -if(tp->chip_id == DC21143 && tulip_tbl[tp->chip_id].media_timer != t21142_timer) { - tp->timer.function = t21142_timer; - printk(KERN_ERR"tulip_down: set timer.function to %p (chipid=%d) - bad pointer bug=%p\n", tp->timer.function, (int)tp->chip_id, tulip_tbl[tp->chip_id].media_timer); -} else -#endif tp->timer.function = tulip_tbl[tp->chip_id].media_timer; dev->if_port = tp->saved_if_port; @@ -1518,13 +1501,6 @@ /* grab all resources from both PIO and MMIO regions, as we * don't want anyone else messing around with our hardware */ -#ifdef CONFIG_COBALT_27 - for(i=0; i<6; i++) - if(pci_resource_flags(pdev, i) & IORESOURCE_MEM) - pci_resource_start(pdev,i) = \ - pci_resource_end(pdev,i) = \ - pci_resource_flags(pdev,i) = 0; -#endif if (pci_request_regions (pdev, "tulip")) goto err_out_free_netdev; @@ -1562,12 +1538,6 @@ spin_lock_init(&tp->mii_lock); init_timer(&tp->timer); tp->timer.data = (unsigned long)dev; -#ifdef __mips__ // workaround compiler bug?! -if(tp->chip_id == DC21143 && tulip_tbl[tp->chip_id].media_timer != t21142_timer) { - tp->timer.function = t21142_timer; - printk(KERN_ERR"tulip_init_one: set timer.function to %p (chipid=%d) - bad pointer bug=%p\n", tp->timer.function, (int)tp->chip_id, tulip_tbl[tp->chip_id].media_timer); -} else -#endif tp->timer.function = tulip_tbl[tp->chip_id].media_timer; dev->base_addr = ioaddr; @@ -1585,6 +1555,7 @@ /* Stop the chip's Tx and Rx processes. */ tulip_stop_rxtx(tp); + pci_set_master(pdev); /* Clear the missed-packet counter. */ inl(ioaddr + CSR8); @@ -1642,11 +1613,11 @@ just put the address in the first EEPROM locations. */ /* This does memcmp(eedata, eedata+16, 8) */ #ifdef __mips__ - if (ioaddr == 0x10108000) /* PCI board does it right */ + if (ioaddr == 0x10108000) /* PCI board does it right */ #endif - for (i = 0; i < 8; i ++) - if (ee_data[i] != ee_data[16+i]) - sa_offset = 20; + for (i = 0; i < 8; i ++) + if (ee_data[i] != ee_data[16+i]) + sa_offset = 20; if (ee_data[0] == 0xff && ee_data[1] == 0xff && ee_data[2] == 0) { sa_offset = 2; /* Grrr, damn Matrox boards. */ multiport_cnt = 4; --- tulip.h DELETED --- |
From: Paul M. <le...@us...> - 2001-10-22 19:16:50
|
Update of /cvsroot/linux-mips/linux/fs In directory usw-pr-cvs1:/tmp/cvs-serv11592/fs Modified Files: Makefile Log Message: Further syncing with OSS 2.4.10. Massive restructuring of TLB handling. Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/fs/Makefile,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Makefile 2001/09/25 03:36:35 1.2 +++ Makefile 2001/10/22 19:16:45 1.3 @@ -32,6 +32,7 @@ subdir-$(CONFIG_CODA_FS) += coda subdir-$(CONFIG_MINIX_FS) += minix subdir-$(CONFIG_FAT_FS) += fat +subdir-$(CONFIG_UMSDOS_FS) += umsdos subdir-$(CONFIG_MSDOS_FS) += msdos subdir-$(CONFIG_VFAT_FS) += vfat subdir-$(CONFIG_BFS_FS) += bfs @@ -43,7 +44,6 @@ subdir-$(CONFIG_NFSD) += nfsd subdir-$(CONFIG_LOCKD) += lockd subdir-$(CONFIG_NLS) += nls -subdir-$(CONFIG_UMSDOS_FS) += umsdos subdir-$(CONFIG_SYSV_FS) += sysv subdir-$(CONFIG_SMB_FS) += smbfs subdir-$(CONFIG_NCP_FS) += ncpfs |
From: Paul M. <le...@us...> - 2001-10-22 19:16:50
|
Update of /cvsroot/linux-mips/linux/include/linux In directory usw-pr-cvs1:/tmp/cvs-serv11592/include/linux Modified Files: module.h Log Message: Further syncing with OSS 2.4.10. Massive restructuring of TLB handling. Index: module.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/linux/module.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- module.h 2001/09/11 22:22:43 1.2 +++ module.h 2001/10/22 19:16:46 1.3 @@ -260,6 +260,34 @@ #define MODULE_DEVICE_TABLE(type,name) \ MODULE_GENERIC_TABLE(type##_device,name) +/* + * The following license idents are currently accepted as indicating free + * software modules + * + * "GPL" [GNU Public License v2 or later] + * "GPL and additional rights" [GNU Public License v2 rights and more] + * "Dual BSD/GPL" [GNU Public License v2 or BSD license choice] + * "Dual MPL/GPL" [GNU Public License v2 or Mozilla license choice] + * + * The following other idents are available + * + * "Proprietary" [Non free products] + * + * There are dual licensed components, but when running with Linux it is the + * GPL that is relevant so this is a non issue. Similarly LGPL linked with GPL + * is a GPL combined work. + * + * This exists for several reasons + * 1. So modinfo can show license info for users wanting to vet their setup + * is free + * 2. So the community can ignore bug reports including proprietary modules + * 3. So vendors can do likewise based on their own policies + */ + +#define MODULE_LICENSE(license) \ +static const char __module_license[] __attribute__((section(".modinfo"))) = \ +"license=" license + /* Define the module variable, and usage macros. */ extern struct module __this_module; @@ -279,6 +307,7 @@ #else /* MODULE */ #define MODULE_AUTHOR(name) +#define MODULE_LICENSE(license) #define MODULE_DESCRIPTION(desc) #define MODULE_SUPPORTED_DEVICE(name) #define MODULE_PARM(var,type) |
From: Paul M. <le...@us...> - 2001-10-22 19:16:50
|
Update of /cvsroot/linux-mips/linux/include/asm-mips In directory usw-pr-cvs1:/tmp/cvs-serv11592/include/asm-mips Modified Files: au1000.h debug.h mmu_context.h pb1000.h Log Message: Further syncing with OSS 2.4.10. Massive restructuring of TLB handling. Index: au1000.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/au1000.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- au1000.h 2001/09/25 03:36:35 1.7 +++ au1000.h 2001/10/22 19:16:45 1.8 @@ -57,11 +57,13 @@ outb(val, reg); au_sync(); } + void static inline outw_sync(u16 val, int reg) { outw(val, reg); au_sync(); } + void static inline outl_sync(u32 val, int reg) { outl(val, reg); Index: debug.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/debug.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- debug.h 2001/09/12 16:15:14 1.1 +++ debug.h 2001/10/22 19:16:45 1.2 @@ -1,42 +1,48 @@ -/*********************************************************************** - * - * Copyright 2001 MontaVista Software Inc. - * Author: js...@mv... or js...@ju... +/* + * Debug macros for run-time debugging. Turned on/off with CONFIG_DEBUG option. * - * include/asm-mips/debug.h - * Some debug macros. + * Copyright (C) 2001 MontaVista Software Inc. + * Author: Jun Sun, js...@mv... or js...@ju... * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * - *********************************************************************** */ -#ifndef __ASM_DEBUG_H -#define __ASM_DEBUG_H +#ifndef _ASM_DEBUG_H +#define _ASM_DEBUG_H #include <linux/config.h> /* - * macro for catching spurious errors. Eable to LL_DEBUG in kernel hacking - * config menu. + * run-time macros for catching spurious errors. Eable CONFIG_DEBUG in + * kernel hacking config menu to use them. + * + * Use them as run-time debugging aid. NEVER USE THEM AS ERROR HANDLING CODE!!! */ -#ifdef CONFIG_LL_DEBUG +#ifdef CONFIG_DEBUG + #include <linux/kernel.h> -#define MIPS_ASSERT(x) if (!(x)) { panic("MIPS_ASSERT failed at %s:%d\n", __FILE__, __LINE__); } -#define MIPS_VERIFY(x, y) MIPS_ASSERT(x y) -#define MIPS_DEBUG(x) do { x; } while (0) +#define db_assert(x) if (!(x)) { \ + panic("assertion failed at %s:%d: %s\n", __FILE__, __LINE__, #x); } +#define db_warn(x) if (!(x)) { \ + printk(KERN_WARNING "warning at %s:%d: %s\n", __FILE__, __LINE__, #x); } +#define db_verify(x, y) db_assert(x y) +#define db_verify_warn(x, y) db_warn(x y) +#define db_run(x) do { x; } while (0) #else -#define MIPS_ASSERT(x) -#define MIPS_VERIFY(x, y) x -#define MIPS_DEBUG(x) +#define db_assert(x) +#define db_warn(x) +#define db_verify(x, y) x +#define db_verify_warn(x, y) x +#define db_run(x) #endif -#endif /* __ASM_DEBUG_H */ +#endif /* _ASM_DEBUG_H */ Index: mmu_context.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/mmu_context.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- mmu_context.h 2001/10/11 18:38:41 1.3 +++ mmu_context.h 2001/10/22 19:16:45 1.4 @@ -60,8 +60,6 @@ #define ASID_VERSION_MASK ((unsigned long)~(ASID_MASK|(ASID_MASK-1))) #define ASID_FIRST_VERSION ((unsigned long)(~ASID_VERSION_MASK) + 1) -extern void local_flush_tlb_all(void); - extern inline void get_new_cpu_mmu_context(struct mm_struct *mm, unsigned long cpu) { Index: pb1000.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/pb1000.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- pb1000.h 2001/10/03 22:49:23 1.4 +++ pb1000.h 2001/10/22 19:16:45 1.5 @@ -1,5 +1,4 @@ /* - * * Alchemy Semi PB1000 Referrence Board * * Copyright 2001 MontaVista Software Inc. @@ -25,10 +24,8 @@ * * */ - #ifndef __ASM_PB1000_H #define __ASM_PB1000_H - /* PCMCIA PB1000 specific defines */ #define PCMCIA_MAX_SOCK 0 /* the second socket, 1, is not supported at this time */ |
From: Paul M. <le...@us...> - 2001-10-22 19:16:50
|
Update of /cvsroot/linux-mips/linux/include/asm-mips64 In directory usw-pr-cvs1:/tmp/cvs-serv11592/include/asm-mips64 Modified Files: io.h Log Message: Further syncing with OSS 2.4.10. Massive restructuring of TLB handling. Index: io.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips64/io.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- io.h 2001/09/25 03:36:36 1.5 +++ io.h 2001/10/22 19:16:45 1.6 @@ -202,12 +202,12 @@ #define __INS(m,s,i) \ __INS1(s) __INS2(m) \ : "=r" (addr), "=r" (count) \ - : "0" (addr), "1" (count), "i" (0), "r" (mips_io_port_base+port), "I" (i) \ - : "$1");} \ + : "0" (addr), "1" (count), "i" (0), "r" (mips_io_port_base+port), \ + "I" (i));} \ __INS1(s##c) __INS2(m) \ : "=r" (addr), "=r" (count) \ - : "0" (addr), "1" (count), "ir" (port), "r" (mips_io_port_base), "I" (i) \ - : "$1");} + : "0" (addr), "1" (count), "ir" (port), "r" (mips_io_port_base), \ + "I" (i));} #define __OUTS1(s) \ extern inline void __outs##s(unsigned long port, const void * addr, unsigned long count) { @@ -228,12 +228,12 @@ #define __OUTS(m,s,i) \ __OUTS1(s) __OUTS2(m) \ : "=r" (addr), "=r" (count) \ - : "0" (addr), "1" (count), "i" (0), "r" (mips_io_port_base+port), "I" (i) \ - : "$1");} \ + : "0" (addr), "1" (count), "i" (0), "r" (mips_io_port_base+port), \ + "I" (i));} \ __OUTS1(s##c) __OUTS2(m) \ : "=r" (addr), "=r" (count) \ - : "0" (addr), "1" (count), "ir" (port), "r" (mips_io_port_base), "I" (i) \ - : "$1");} + : "0" (addr), "1" (count), "ir" (port), "r" (mips_io_port_base), \ + "I" (i));} __IN(unsigned char,b,b) __IN(unsigned short,h,w) |
Update of /cvsroot/linux-mips/linux/fs/jffs2 In directory usw-pr-cvs1:/tmp/cvs-serv11592/fs/jffs2 Modified Files: Makefile background.c compr_rubin.c erase.c file.c nodelist.h readinode.c scan.c super.c write.c Log Message: Further syncing with OSS 2.4.10. Massive restructuring of TLB handling. Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/fs/jffs2/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Makefile 2001/07/11 16:55:46 1.1 +++ Makefile 2001/10/22 19:16:45 1.2 @@ -18,8 +18,6 @@ EXTRA_CFLAGS= -DCONFIG_JFFS2_FS_DEBUG=1 -g endif -EXTRA_CFLAGS += -DJFFS2_OUT_OF_KERNEL - obj-$(CONFIG_JFFS2_FS) += jffs2.o COMPR_OBJS := compr.o compr_rubin.o compr_rtime.o pushpull.o \ Index: background.c =================================================================== RCS file: /cvsroot/linux-mips/linux/fs/jffs2/background.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- background.c 2001/07/11 16:55:46 1.1 +++ background.c 2001/10/22 19:16:45 1.2 @@ -43,6 +43,7 @@ #include <linux/jffs2.h> #include <linux/mtd/mtd.h> #include <linux/interrupt.h> +#include <linux/smp_lock.h> #include "nodelist.h" @@ -62,6 +63,7 @@ pid_t pid; int ret = 0; init_MUTEX_LOCKED(&c->gc_thread_sem); + init_completion(&c->gc_thread_exit); pid = kernel_thread(jffs2_garbage_collect_thread, c, CLONE_FS|CLONE_FILES); if (pid < 0) { @@ -86,6 +88,7 @@ } spin_unlock_bh(&c->erase_completion_lock); down(&c->gc_thread_sem); + wait_for_completion(&c->gc_thread_exit); } static int jffs2_garbage_collect_thread(void *_c) @@ -139,7 +142,8 @@ spin_lock_bh(&c->erase_completion_lock); c->gc_task = NULL; spin_unlock_bh(&c->erase_completion_lock); - up_and_exit(&c->gc_thread_sem, 0); + up(&c->gc_thread_sem); + complete_and_exit(&c->gc_thread_exit,0 ); case SIGHUP: D1(printk(KERN_DEBUG "jffs2_garbage_collect_thread(): SIGHUP received.\n")); Index: compr_rubin.c =================================================================== RCS file: /cvsroot/linux-mips/linux/fs/jffs2/compr_rubin.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- compr_rubin.c 2001/07/11 16:55:46 1.1 +++ compr_rubin.c 2001/10/22 19:16:45 1.2 @@ -37,7 +37,6 @@ #include <linux/string.h> -#include <linux/types.h> #include "compr_rubin.h" #include "histo_mips.h" Index: erase.c =================================================================== RCS file: /cvsroot/linux-mips/linux/fs/jffs2/erase.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- erase.c 2001/07/11 16:55:46 1.1 +++ erase.c 2001/10/22 19:16:45 1.2 @@ -38,6 +38,7 @@ #include <linux/slab.h> #include <linux/mtd/mtd.h> #include <linux/jffs2.h> +#include <linux/interrupt.h> #include "nodelist.h" #include "crc32.h" @@ -151,7 +152,7 @@ spin_unlock(&priv->c->erase_completion_lock); wake_up(&priv->c->erase_wait); } else { - D1(printk(KERN_DEBUG "Erase completed successfully at 0x%08x\n", instr->addr)); + D1(printk(KERN_DEBUG "Erase completed successfully at 0x%08lx\n", instr->addr)); spin_lock(&priv->c->erase_completion_lock); list_del(&priv->jeb->list); list_add_tail(&priv->jeb->list, &priv->c->erase_complete_list); Index: file.c =================================================================== RCS file: /cvsroot/linux-mips/linux/fs/jffs2/file.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- file.c 2001/07/11 16:55:46 1.1 +++ file.c 2001/10/22 19:16:45 1.2 @@ -54,6 +54,7 @@ struct file_operations jffs2_file_operations = { + llseek: generic_file_llseek, open: generic_file_open, read: generic_file_read, write: generic_file_write, Index: nodelist.h =================================================================== RCS file: /cvsroot/linux-mips/linux/fs/jffs2/nodelist.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- nodelist.h 2001/07/11 16:55:46 1.1 +++ nodelist.h 2001/10/22 19:16:45 1.2 @@ -234,8 +234,8 @@ #define PAD(x) (((x)+3)&~3) /* These probably ought to be somewhere central. */ -#define min(x,y) ({ typeof((x)) _x = (x); typeof((y)) _y = (y); (_x>_y)?_y:_x; }) -#define max(x,y) ({ typeof((x)) _x = (x); typeof((y)) _y = (y); (_x>_y)?_x:_y; }) +//#define min(x,y) ({ typeof((x)) _x = (x); typeof((y)) _y = (y); (_x>_y)?_y:_x; }) +//#define max(x,y) ({ typeof((x)) _x = (x); typeof((y)) _y = (y); (_x>_y)?_x:_y; }) static inline int jffs2_raw_ref_to_inum(struct jffs2_raw_node_ref *raw) { Index: readinode.c =================================================================== RCS file: /cvsroot/linux-mips/linux/fs/jffs2/readinode.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- readinode.c 2001/07/11 16:55:46 1.1 +++ readinode.c 2001/10/22 19:16:45 1.2 @@ -460,8 +460,11 @@ frags = f->fraglist; fds = f->dents; - if (f->metadata) + if (f->metadata) { + if (!f->inocache->nlink) + jffs2_mark_node_obsolete(c, f->metadata->raw); jffs2_free_full_dnode(f->metadata); + } while (frags) { frag = frags; Index: scan.c =================================================================== RCS file: /cvsroot/linux-mips/linux/fs/jffs2/scan.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- scan.c 2001/07/11 16:55:46 1.1 +++ scan.c 2001/10/22 19:16:45 1.2 @@ -76,8 +76,6 @@ int jffs2_scan_medium(struct jffs2_sb_info *c) { int i, ret; - __u32 empty_blocks = 0; - if (!c->blocks) { printk(KERN_WARNING "EEEK! c->blocks is NULL!\n"); return -EINVAL; @@ -86,24 +84,13 @@ struct jffs2_eraseblock *jeb = &c->blocks[i]; ret = jffs2_scan_eraseblock(c, jeb); - if (ret < 0) + if (ret) return ret; ACCT_PARANOIA_CHECK(jeb); /* Now decide which list to put it on */ - if (ret == 1) { - /* - * Empty block. Since we can't be sure it - * was entirely erased, we just queue it for erase - * again. It will be marked as such when the erase - * is complete. Meanwhile we still count it as empty - * for later checks. - */ - list_add(&jeb->list, &c->erase_pending_list); - empty_blocks++; - c->nr_erasing_blocks++; - } else if (jeb->used_size == PAD(sizeof(struct jffs2_unknown_node)) && !jeb->first_node->next_in_ino) { + if (jeb->used_size == PAD(sizeof(struct jffs2_unknown_node)) && !jeb->first_node->next_in_ino) { /* Only a CLEANMARKER node is valid */ if (!jeb->dirty_size) { /* It's actually free */ @@ -142,13 +129,9 @@ c->nr_erasing_blocks++; } } - if (c->nr_erasing_blocks) { - if (!c->used_size && empty_blocks != c->nr_blocks) { - printk(KERN_NOTICE "Cowardly refusing to erase blocks on filesystem with no valid JFFS2 nodes\n"); - return -EIO; - } + if (c->nr_erasing_blocks) jffs2_erase_pending_trigger(c); - } + return 0; } @@ -157,22 +140,13 @@ __u32 ofs, prevofs; __u32 hdr_crc, nodetype; int err; - int noise = 0; + int noise = 10; ofs = jeb->offset; prevofs = jeb->offset - 1; D1(printk(KERN_DEBUG "jffs2_scan_eraseblock(): Scanning block at 0x%x\n", ofs)); - err = jffs2_scan_empty(c, jeb, &ofs, &noise); - if (err) return err; - if (ofs == jeb->offset + c->sector_size) { - D1(printk(KERN_DEBUG "Block at 0x%08x is empty (erased)\n", jeb->offset)); - return 1; /* special return code */ - } - - noise = 10; - while(ofs < jeb->offset + c->sector_size) { ssize_t retlen; ACCT_PARANOIA_CHECK(jeb); @@ -632,8 +606,6 @@ if (crc != rd.name_crc) { printk(KERN_NOTICE "jffs2_scan_dirent_node(): Name CRC failed on node at 0x%08x: Read 0x%08x, calculated 0x%08x\n", *ofs, rd.name_crc, crc); - fd->name[rd.nsize]=0; - D1(printk(KERN_NOTICE "Name for which CRC failed is (now) '%s', ino #%d\n", fd->name, rd.ino)); jffs2_free_full_dirent(fd); /* FIXME: Why do we believe totlen? */ DIRTY_SPACE(PAD(rd.totlen)); Index: super.c =================================================================== RCS file: /cvsroot/linux-mips/linux/fs/jffs2/super.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- super.c 2001/07/11 16:55:46 1.1 +++ super.c 2001/10/22 19:16:45 1.2 @@ -46,6 +46,8 @@ #include <linux/jffs2.h> #include <linux/pagemap.h> #include <linux/mtd/mtd.h> +#include <linux/interrupt.h> + #include "nodelist.h" #ifndef MTD_BLOCK_MAJOR @@ -292,8 +294,6 @@ jffs2_free_ino_caches(c); jffs2_free_raw_node_refs(c); kfree(c->blocks); - if (c->mtd->sync) - c->mtd->sync(c->mtd); put_mtd_device(c->mtd); D1(printk(KERN_DEBUG "jffs2_put_super returning\n")); Index: write.c =================================================================== RCS file: /cvsroot/linux-mips/linux/fs/jffs2/write.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- write.c 2001/07/11 16:55:46 1.1 +++ write.c 2001/10/22 19:16:45 1.2 @@ -255,7 +255,7 @@ struct iovec vecs[2]; int ret; - D1(printk(KERN_DEBUG "jffs2_write_dirent(ino #%u, name at *0x%p \"%s\"->ino #%u, name_crc 0x%08x)\n", rd->pino, name, name, rd->ino, rd->name_crc)); + D1(printk(KERN_DEBUG "jffs2_write_dirent(ino #%u, name \"%s\"->ino #%u\n", rd->pino, name, rd->ino)); writecheck(c->mtd, flash_ofs); D1(if(rd->hdr_crc != crc32(0, rd, sizeof(struct jffs2_unknown_node)-4)) { |
From: Paul M. <le...@us...> - 2001-10-22 19:16:49
|
Update of /cvsroot/linux-mips/linux/drivers/net In directory usw-pr-cvs1:/tmp/cvs-serv11592/drivers/net Modified Files: Makefile au1000_eth.c Log Message: Further syncing with OSS 2.4.10. Massive restructuring of TLB handling. Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/net/Makefile,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Makefile 2001/08/25 02:19:28 1.5 +++ Makefile 2001/10/22 19:16:45 1.6 @@ -74,7 +74,9 @@ obj-$(CONFIG_DM9102) += dmfe.o obj-$(CONFIG_YELLOWFIN) += yellowfin.o obj-$(CONFIG_ACENIC) += acenic.o +obj-$(CONFIG_VETH) += veth.o obj-$(CONFIG_NATSEMI) += natsemi.o +obj-$(CONFIG_NS83820) += ns83820.o obj-$(CONFIG_STNIC) += stnic.o 8390.o obj-$(CONFIG_FEALNX) += fealnx.o @@ -137,17 +139,11 @@ obj-$(CONFIG_PPPOE) += pppox.o pppoe.o obj-$(CONFIG_SLIP) += slip.o -ifeq ($(CONFIG_SLIP),y) - obj-$(CONFIG_SLIP_COMPRESSED) += slhc.o -else - ifeq ($(CONFIG_SLIP),m) - obj-$(CONFIG_SLIP_COMPRESSED) += slhc.o - endif +ifeq ($(CONFIG_SLIP_COMPRESSED),y) + obj-$(CONFIG_SLIP) += slhc.o endif obj-$(CONFIG_STRIP) += strip.o -obj-$(CONFIG_DE650) += de650.o 8390.o -obj-$(CONFIG_3C589) += 3c589.o obj-$(CONFIG_DUMMY) += dummy.o obj-$(CONFIG_BONDING) += bonding.o obj-$(CONFIG_DE600) += de600.o @@ -184,8 +180,13 @@ obj-$(CONFIG_ELPLUS) += 3c505.o obj-$(CONFIG_AC3200) += ac3200.o 8390.o obj-$(CONFIG_APRICOT) += 82596.o +obj-$(CONFIG_LASI_82596) += lasi_82596.o obj-$(CONFIG_MVME16x_NET) += 82596.o obj-$(CONFIG_BVME6000_NET) += 82596.o + +# This is also a 82596 and should probably be merged +obj-$(CONFIG_LP486E) += lp486e.o + obj-$(CONFIG_ETH16I) += eth16i.o obj-$(CONFIG_ARIADNE2) += ariadne2.o 8390.o obj-$(CONFIG_HPLANCE) += hplance.o 7990.o Index: au1000_eth.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/net/au1000_eth.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- au1000_eth.c 2001/08/30 18:13:31 1.5 +++ au1000_eth.c 2001/10/22 19:16:45 1.6 @@ -39,7 +39,7 @@ #include <linux/errno.h> #include <linux/in.h> #include <linux/ioport.h> -#include <linux/malloc.h> +#include <linux/slab.h> #include <linux/interrupt.h> #include <linux/pci.h> #include <linux/init.h> |
From: Paul M. <le...@us...> - 2001-10-22 19:16:49
|
Update of /cvsroot/linux-mips/linux/drivers/char In directory usw-pr-cvs1:/tmp/cvs-serv11592/drivers/char Modified Files: Config.in dummy_keyb.c serial_tx3912.c Log Message: Further syncing with OSS 2.4.10. Massive restructuring of TLB handling. Index: Config.in =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/char/Config.in,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- Config.in 2001/10/19 21:19:38 1.10 +++ Config.in 2001/10/22 19:16:45 1.11 @@ -82,6 +82,24 @@ fi bool ' Console on DC21285 serial port' CONFIG_SERIAL_21285_CONSOLE fi + if [ "$CONFIG_MIPS" = "y" ]; then + bool ' TMPTX3912/PR31700 serial port support' CONFIG_SERIAL_TX3912 + dep_bool ' Console on TMPTX3912/PR31700 serial port' CONFIG_SERIAL_TX3912_CONSOLE $CONFIG_SERIAL_TX3912 + bool ' Enable Au1000 UART Support' CONFIG_AU1000_UART + if [ "$CONFIG_AU1000_UART" = "y" ]; then + bool ' Enable Au1000 serial console' CONFIG_AU1000_SERIAL_CONSOLE + fi + fi +fi +if [ "$CONFIG_IT8712" = "y" ]; then + bool 'Enable Qtronix 990P Keyboard Support' CONFIG_QTRONIX_KEYBOARD + if [ "$CONFIG_QTRONIX_KEYBOARD" = "y" ]; then + define_bool CONFIG_IT8172_CIR y + else + bool ' Enable PS2 Keyboard Support' CONFIG_PC_KEYB + fi + bool 'Enable Smart Card Reader 0 Support ' CONFIG_IT8172_SCR0 + bool 'Enable Smart Card Reader 1 Support ' CONFIG_IT8172_SCR1 fi bool 'Unix98 PTY support' CONFIG_UNIX98_PTYS if [ "$CONFIG_UNIX98_PTYS" = "y" ]; then Index: dummy_keyb.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/char/dummy_keyb.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- dummy_keyb.c 2001/09/25 03:47:07 1.2 +++ dummy_keyb.c 2001/10/22 19:16:45 1.3 @@ -31,11 +31,6 @@ { } -int kbd_rate(struct kbd_repeat *rep) -{ - return 0; -} - int kbd_setkeycode(unsigned int scancode, unsigned int keycode) { return (scancode == keycode) ? 0 : -EINVAL; Index: serial_tx3912.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/char/serial_tx3912.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- serial_tx3912.c 2001/09/15 08:20:47 1.3 +++ serial_tx3912.c 2001/10/22 19:16:45 1.4 @@ -18,7 +18,6 @@ #include <linux/ptrace.h> #include <linux/init.h> #include <linux/console.h> -#include <linux/serial.h> #include <linux/fs.h> #include <linux/mm.h> #include <linux/malloc.h> |
From: Paul M. <le...@us...> - 2001-10-22 19:16:49
|
Update of /cvsroot/linux-mips/linux/drivers/video In directory usw-pr-cvs1:/tmp/cvs-serv11592/drivers/video Modified Files: fbmem.c maxinefb.c Log Message: Further syncing with OSS 2.4.10. Massive restructuring of TLB handling. Index: fbmem.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/video/fbmem.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- fbmem.c 2001/10/19 21:19:39 1.8 +++ fbmem.c 2001/10/22 19:16:45 1.9 @@ -20,7 +20,7 @@ #include <linux/smp_lock.h> #include <linux/kernel.h> #include <linux/major.h> -#include <linux/malloc.h> +#include <linux/slab.h> #include <linux/mman.h> #include <linux/tty.h> #include <linux/console.h> Index: maxinefb.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/video/maxinefb.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- maxinefb.c 2001/10/19 21:19:39 1.3 +++ maxinefb.c 2001/10/22 19:16:45 1.4 @@ -31,7 +31,7 @@ #include <linux/string.h> #include <linux/mm.h> #include <linux/tty.h> -#include <linux/malloc.h> +#include <linux/slab.h> #include <linux/delay.h> #include <linux/init.h> #include <linux/fb.h> |
From: Paul M. <le...@us...> - 2001-10-22 19:16:49
|
Update of /cvsroot/linux-mips/linux/drivers/sound In directory usw-pr-cvs1:/tmp/cvs-serv11592/drivers/sound Modified Files: nec_vrc5477.c Log Message: Further syncing with OSS 2.4.10. Massive restructuring of TLB handling. Index: nec_vrc5477.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/sound/nec_vrc5477.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- nec_vrc5477.c 2001/10/11 20:45:26 1.3 +++ nec_vrc5477.c 2001/10/22 19:16:45 1.4 @@ -6,6 +6,8 @@ * AC97 sound dirver for NEC Vrc5477 chip (an integrated, * multi-function controller chip for MIPS CPUs) * + * VRA support Copyright 2001 Bradley D. LaRonde <br...@lt...> + * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your @@ -197,6 +199,7 @@ unsigned dacChannels, adcChannels; unsigned short dacRate, adcRate; + unsigned short extended_status; spinlock_t lock; struct semaphore open_sem; @@ -353,8 +356,10 @@ static void set_dac_rate(struct vrc5477_ac97_state *s, unsigned rate) { + if(s->extended_status & AC97_EXTSTAT_VRA) { wrcodec(&s->codec, AC97_PCM_FRONT_DAC_RATE, rate); - s->dacRate = rate; + s->dacRate = rdcodec(&s->codec, AC97_PCM_FRONT_DAC_RATE); + } } @@ -1862,7 +1867,9 @@ const struct pci_device_id *pciid) { struct vrc5477_ac97_state *s; +#ifdef VRC5477_AC97_DEBUG char proc_str[80]; +#endif if (pcidev->irq == 0) return -1; @@ -1943,6 +1950,25 @@ /* TODO : why this proc file does not show up? */ #endif + /* Try to enable variable rate audio mode. */ + wrcodec(&s->codec, AC97_EXTENDED_STATUS, + rdcodec(&s->codec, AC97_EXTENDED_STATUS) | AC97_EXTSTAT_VRA); + /* Did we enable it? */ + if(rdcodec(&s->codec, AC97_EXTENDED_STATUS) & AC97_EXTSTAT_VRA) + s->extended_status |= AC97_EXTSTAT_VRA; + else { + s->dacRate = 48000; + printk(KERN_INFO PFX "VRA mode not enabled; rate fixed at %d.", + s->dacRate); + } + +#if 0 + /* What's wrong with the codec chip defaults? + * If at all, shouldn't this be done through ac97_codec.c instead? + * This code just ends up making my system noisey at boot. + * /dev/mixer reaches these anyway. bdl + */ + /* let us get the default volumne louder */ wrcodec(&s->codec, 0x2, 0); wrcodec(&s->codec, 0x18, 0x0707); @@ -1955,6 +1981,7 @@ // wrcodec(&s->codec, 0x1c, 0x0707); wrcodec(&s->codec, 0x1c, 0x0f0f); wrcodec(&s->codec, 0x1e, 0x07); +#endif /* enable the master interrupt but disable all others */ outl(VRC5477_INT_MASK_NMASK, s->io + VRC5477_INT_MASK); @@ -2006,8 +2033,6 @@ } -#define PCI_VENDOR_ID_NEC 0x1033 -#define PCI_DEVICE_ID_NEC_VRC5477_AC97 0x00A6 static struct pci_device_id id_table[] __devinitdata = { { PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_VRC5477_AC97, PCI_ANY_ID, PCI_ANY_ID, 0, 0 }, |
From: Paul M. <le...@us...> - 2001-10-22 19:16:49
|
Update of /cvsroot/linux-mips/linux/drivers/pci In directory usw-pr-cvs1:/tmp/cvs-serv11592/drivers/pci Modified Files: pci.ids Log Message: Further syncing with OSS 2.4.10. Massive restructuring of TLB handling. Index: pci.ids =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/pci/pci.ids,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- pci.ids 2001/10/12 17:55:30 1.5 +++ pci.ids 2001/10/22 19:16:45 1.6 @@ -751,6 +751,7 @@ 0620 620 Host 0630 630 Host 0730 730 Host + 0735 735 Host 0900 SiS900 10/100 Ethernet 1039 0900 SiS900 10/100 Ethernet Adapter 3602 83C602 @@ -783,6 +784,7 @@ 1569 6326 SiS6326 GUI Accelerator 7001 7001 7007 OHCI Compliant FireWire Controller + 7012 SiS7012 PCI Audio Accelerator 7016 SiS7016 10/100 Ethernet Adapter 1039 7016 SiS7016 10/100 Ethernet Adapter 7018 SiS PCI Audio Accelerator @@ -811,6 +813,7 @@ 103a Seiko Epson Corporation 103b Tatung Co. of America 103c Hewlett-Packard Company + 1005 A4977A Visualize EG 1030 J2585A 1031 J2585B 103c 1040 J2973A DeskDirect 10BaseT NIC @@ -1954,7 +1957,7 @@ 0505 VT82C505 0561 VT82C561 0571 Bus Master IDE - 0576 VT82C576 3V [Apollo Master] + 0576 VT82C576 [Apollo Master] 0585 VT82C585VP [Apollo VP1/VPX] 0586 VT82C586/A/B PCI-to-ISA [Apollo VP] 1106 0000 MVP3 ISA Bridge @@ -1977,7 +1980,7 @@ 0926 VT82C926 [Amazon] 1000 VT82C570MV 1106 VT82C570MV - 1571 VT82C416MV + 1571 VT82C576 IDE [Apollo Master] 1595 VT82C595/97 [Apollo VP2/97] 3038 UHCI USB 1234 0925 MVP3 USB Controller @@ -1998,6 +2001,7 @@ 3074 VT8233 PCI to ISA Bridge 3091 VT8633 [Apollo Pro266] 3099 VT8367 [KT266] + 3109 VT8233C PCI to ISA Bridge 5030 VT82C596 ACPI [Apollo PRO] 6100 VT85C100A [Rhine II] 8231 VT8231 [PCI-to-ISA Bridge] @@ -2638,6 +2642,7 @@ 11d2 Intercom Inc. 11d3 Trancell Systems Inc 11d4 Analog Devices + 1889 AD1889 sound chip 11d5 Ikon Corporation 0115 10115 0117 10117 |
From: Paul M. <le...@us...> - 2001-10-22 19:16:48
|
Update of /cvsroot/linux-mips/linux/arch/mips/mm In directory usw-pr-cvs1:/tmp/cvs-serv11592/arch/mips/mm Modified Files: Makefile andes.c mips32.c r2300.c r4xx0.c r5432.c rm7k.c sb1.c Log Message: Further syncing with OSS 2.4.10. Massive restructuring of TLB handling. Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/mm/Makefile,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Makefile 2001/10/08 16:29:33 1.4 +++ Makefile 2001/10/22 19:16:45 1.5 @@ -5,23 +5,27 @@ # removes any old dependencies. DON'T put your own dependencies here # unless it's something special (ie not a .c file). # -# Note 2! The CFLAGS definition is now in the main makefile... +.S.s: + $(CPP) $(AFLAGS) $< -o $@ +.S.o: + $(CC) $(AFLAGS) -c $< -o $@ + O_TARGET := mm.o export-objs += ioremap.o umap.o obj-y += extable.o init.o ioremap.o fault.o loadmmu.o -obj-$(CONFIG_CPU_R3000) += pg-r2300.o r2300.o -obj-$(CONFIG_CPU_R4300) += pg-r4xx0.o r4xx0.o -obj-$(CONFIG_CPU_R4X00) += pg-r4xx0.o r4xx0.o -obj-$(CONFIG_CPU_VR41XX) += pg-r4xx0.o r4xx0.o -obj-$(CONFIG_CPU_R5000) += pg-r4xx0.o r4xx0.o -obj-$(CONFIG_CPU_NEVADA) += pg-r4xx0.o r4xx0.o -obj-$(CONFIG_CPU_R5432) += pg-r5432.o r5432.o -obj-$(CONFIG_CPU_RM7000) += pg-rm7k.o rm7k.o -obj-$(CONFIG_CPU_MIPS32) += pg-mips32.o mips32.o -obj-$(CONFIG_CPU_MIPS64) += pg-mips32.o mips32.o +obj-$(CONFIG_CPU_R3000) += pg-r3k.o r2300.o tlb-r3k.o tlbex-r3k.o +obj-$(CONFIG_CPU_R4300) += pg-r4k.o r4xx0.o tlb-r4k.o tlbex-r4k.o +obj-$(CONFIG_CPU_R4X00) += pg-r4k.o r4xx0.o tlb-r4k.o tlbex-r4k.o +obj-$(CONFIG_CPU_VR41XX) += pg-r4k.o r4xx0.o tlb-r4k.o tlbex-r4k.o +obj-$(CONFIG_CPU_R5000) += pg-r4k.o r4xx0.o tlb-r4k.o tlbex-r4k.o +obj-$(CONFIG_CPU_NEVADA) += pg-r4k.o r4xx0.o tlb-r4k.o tlbex-r4k.o +obj-$(CONFIG_CPU_R5432) += pg-r5432.o r5432.o tlb-r4k.o tlbex-r4k.o +obj-$(CONFIG_CPU_RM7000) += pg-rm7k.o rm7k.o tlb-r4k.o tlbex-r4k.o +obj-$(CONFIG_CPU_MIPS32) += pg-mips32.o mips32.o tlb-r4k.o tlbex-r4k.o +obj-$(CONFIG_CPU_MIPS64) += pg-mips32.o mips32.o tlb-r4k.o tlbex-r4k.o obj-$(CONFIG_SGI_IP22) += umap.o obj-$(CONFIG_BAGET_MIPS) += umap.o Index: andes.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/mm/andes.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- andes.c 2001/10/11 22:44:25 1.5 +++ andes.c 2001/10/22 19:16:45 1.6 @@ -13,6 +13,8 @@ #include <asm/sgialib.h> #include <asm/mmu_context.h> +extern void r4k_tlb_init(void); + /* Cache operations. XXX Write these dave... */ static inline void andes_flush_cache_all(void) { @@ -59,38 +61,10 @@ protected_flush_icache_line(addr & ~(ic_lsize - 1)); } -/* TLB operations. XXX Write these dave... */ -void local_flush_tlb_all(void) -{ - /* XXX */ -} - -void local_flush_tlb_mm(struct mm_struct *mm) -{ - /* XXX */ -} - -void local_flush_tlb_range(struct mm_struct *mm, unsigned long start, - unsigned long end) -{ - /* XXX */ -} - -void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page) -{ - /* XXX */ -} - void pgd_init(unsigned long page) { } -void add_wired_entry(unsigned long entrylo0, unsigned long entrylo1, - unsigned long entryhi, unsigned long pagemask) -{ - /* XXX */ -} - void __init ld_mmu_andes(void) { _clear_page = andes_clear_page; @@ -106,14 +80,6 @@ _flush_icache_page = andes_flush_icache_page; _flush_icache_range = andes_flush_icache_range; - write_32bit_cp0_register(CP0_FRAMEMASK, 0); - flush_cache_all(); - local_flush_tlb_all(); - - /* - * The R10k might even work for Linux/MIPS - but we're paranoid - * and refuse to run until this is tested on real silicon - */ - panic("CPU too expensive - making holiday in the ANDES!"); + r4k_tlb_init(); } Index: mips32.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/mm/mips32.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- mips32.c 2001/10/09 21:54:13 1.5 +++ mips32.c 2001/10/22 19:16:45 1.6 @@ -31,6 +31,9 @@ #include <asm/system.h> #include <asm/mmu_context.h> +extern void r4k_tlb_init(void); +extern char except_vec0_r4000; + /* CP0 hazard avoidance. */ #define BARRIER __asm__ __volatile__(".set noreorder\n\t" \ "nop; nop; nop; nop; nop; nop;\n\t" \ @@ -413,144 +416,6 @@ protected_flush_icache_line(addr & ~(ic_lsize - 1)); } -#undef DEBUG_TLB -#undef DEBUG_TLBUPDATE - -void local_flush_tlb_all(void) -{ - unsigned long flags; - unsigned long old_ctx; - int entry; - -#ifdef DEBUG_TLB - printk("[tlball]"); -#endif - - __save_and_cli(flags); - /* Save old context and create impossible VPN2 value */ - old_ctx = (get_entryhi() & 0xff); - set_entryhi(KSEG0); - set_entrylo0(0); - set_entrylo1(0); - BARRIER; - - entry = get_wired(); - - /* Blast 'em all away. */ - while(entry < mips_cpu.tlbsize) { - /* Make sure all entries differ. */ - set_entryhi(KSEG0+entry*0x2000); - set_index(entry); - BARRIER; - tlb_write_indexed(); - BARRIER; - entry++; - } - BARRIER; - set_entryhi(old_ctx); - __restore_flags(flags); -} - -void local_flush_tlb_mm(struct mm_struct *mm) -{ - if (mm->context != 0) { - unsigned long flags; - -#ifdef DEBUG_TLB - printk("[tlbmm<%d>]", mm->context); -#endif - __save_and_cli(flags); - get_new_cpu_mmu_context(mm, smp_processor_id()); - if (mm == current->active_mm) - set_entryhi(mm->context & 0xff); - __restore_flags(flags); - } -} - -void local_flush_tlb_range(struct mm_struct *mm, unsigned long start, - unsigned long end) -{ - if(mm->context != 0) { - unsigned long flags; - int size; - -#ifdef DEBUG_TLB - printk("[tlbrange<%02x,%08lx,%08lx>]", (mm->context & 0xff), - start, end); -#endif - __save_and_cli(flags); - size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT; - size = (size + 1) >> 1; - if(size <= mips_cpu.tlbsize/2) { - int oldpid = (get_entryhi() & 0xff); - int newpid = (mm->context & 0xff); - - start &= (PAGE_MASK << 1); - end += ((PAGE_SIZE << 1) - 1); - end &= (PAGE_MASK << 1); - while(start < end) { - int idx; - - set_entryhi(start | newpid); - start += (PAGE_SIZE << 1); - BARRIER; - tlb_probe(); - BARRIER; - idx = get_index(); - set_entrylo0(0); - set_entrylo1(0); - if(idx < 0) - continue; - /* Make sure all entries differ. */ - set_entryhi(KSEG0+idx*0x2000); - BARRIER; - tlb_write_indexed(); - BARRIER; - } - set_entryhi(oldpid); - } else { - get_new_cpu_mmu_context(mm, smp_processor_id()); - if (mm == current->active_mm) - set_entryhi(mm->context & 0xff); - } - __restore_flags(flags); - } -} - -void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page) -{ - if (vma->vm_mm->context != 0) { - unsigned long flags; - int oldpid, newpid, idx; - -#ifdef DEBUG_TLB - printk("[tlbpage<%d,%08lx>]", vma->vm_mm->context, page); -#endif - newpid = (vma->vm_mm->context & 0xff); - page &= (PAGE_MASK << 1); - __save_and_cli(flags); - oldpid = (get_entryhi() & 0xff); - set_entryhi(page | newpid); - BARRIER; - tlb_probe(); - BARRIER; - idx = get_index(); - set_entrylo0(0); - set_entrylo1(0); - if(idx < 0) - goto finish; - /* Make sure all entries differ. */ - set_entryhi(KSEG0+idx*0x2000); - BARRIER; - tlb_write_indexed(); - - finish: - BARRIER; - set_entryhi(oldpid); - __restore_flags(flags); - } -} - void pgd_init(unsigned long page) { unsigned long *p = (unsigned long *) page; @@ -568,59 +433,6 @@ } } -/* - * Updates the TLB with the new pte(s). - */ -void update_mmu_cache(struct vm_area_struct * vma, - unsigned long address, pte_t pte) -{ - unsigned long flags; - pgd_t *pgdp; - pmd_t *pmdp; - pte_t *ptep; - int idx, pid; - - /* - * Handle debugger faulting in for debugee. - */ - if (current->active_mm != vma->vm_mm) - return; - - pid = get_entryhi() & 0xff; - -#ifdef DEBUG_TLB - if((pid != (vma->vm_mm->context & 0xff)) || (vma->vm_mm->context == 0)) { - printk("update_mmu_cache: Wheee, bogus tlbpid mmpid=%d tlbpid=%d\n", - (int) (vma->vm_mm->context & 0xff), pid); - } -#endif - - __save_and_cli(flags); - address &= (PAGE_MASK << 1); - set_entryhi(address | (pid)); - pgdp = pgd_offset(vma->vm_mm, address); - BARRIER; - tlb_probe(); - BARRIER; - pmdp = pmd_offset(pgdp, address); - idx = get_index(); - ptep = pte_offset(pmdp, address); - BARRIER; - set_entrylo0(pte_val(*ptep++) >> 6); - set_entrylo1(pte_val(*ptep) >> 6); - set_entryhi(address | (pid)); - BARRIER; - if(idx < 0) { - tlb_write_random(); - } else { - tlb_write_indexed(); - } - BARRIER; - set_entryhi(pid); - BARRIER; - __restore_flags(flags); -} - void show_regs(struct pt_regs * regs) { /* Saved main processor registers. */ @@ -646,37 +458,6 @@ regs->cp0_epc, regs->cp0_status, regs->cp0_cause); } -void add_wired_entry(unsigned long entrylo0, unsigned long entrylo1, - unsigned long entryhi, unsigned long pagemask) -{ - unsigned long flags; - unsigned long wired; - unsigned long old_pagemask; - unsigned long old_ctx; - - __save_and_cli(flags); - /* Save old context and create impossible VPN2 value */ - old_ctx = (get_entryhi() & 0xff); - old_pagemask = get_pagemask(); - wired = get_wired(); - set_wired (wired + 1); - set_index (wired); - BARRIER; - set_pagemask (pagemask); - set_entryhi(entryhi); - set_entrylo0(entrylo0); - set_entrylo1(entrylo1); - BARRIER; - tlb_write_indexed(); - BARRIER; - - set_entryhi(old_ctx); - BARRIER; - set_pagemask (old_pagemask); - local_flush_tlb_all(); - __restore_flags(flags); -} - /* Detect and size the various caches. */ static void __init probe_icache(unsigned long config) { @@ -955,13 +736,5 @@ _flush_icache_range = mips32_flush_icache_range; /* Ouch */ __flush_cache_all(); - write_32bit_cp0_register(CP0_WIRED, 0); - - /* - * You should never change this register: - * - The entire mm handling assumes the c0_pagemask register to - * be set for 4kb pages. - */ - write_32bit_cp0_register(CP0_PAGEMASK, PM_4K); - local_flush_tlb_all(); + r4k_tlb_init(); } Index: r2300.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/mm/r2300.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- r2300.c 2001/10/09 21:54:13 1.5 +++ r2300.c 2001/10/22 19:16:45 1.6 @@ -23,6 +23,8 @@ #include <asm/bootinfo.h> #include <asm/cpu.h> +extern char except_vec0_r2300; + /* * According to the paper written by D. Miller about Linux cache & TLB * flush implementation, DMA/Driver coherence should be done at the @@ -38,7 +40,6 @@ #include <asm/cacheops.h> #include <asm/r4kcache.h> -#undef DEBUG_TLB #undef DEBUG_CACHE unsigned long __init r3k_cache_size(unsigned long ca_flags) @@ -369,116 +370,6 @@ r3k_flush_dcache_range(start, start + size); } -/* TLB operations. */ -void local_flush_tlb_all(void) -{ - unsigned long flags; - unsigned long old_ctx; - int entry; - -#ifdef DEBUG_TLB - printk("[tlball]"); -#endif - - save_and_cli(flags); - old_ctx = (get_entryhi() & 0xfc0); - write_32bit_cp0_register(CP0_ENTRYLO0, 0); - for (entry = 8; entry < mips_cpu.tlbsize; entry++) { - write_32bit_cp0_register(CP0_INDEX, entry << 8); - write_32bit_cp0_register(CP0_ENTRYHI, ((entry | 0x80000) << 12)); - __asm__ __volatile__("tlbwi"); - } - set_entryhi(old_ctx); - restore_flags(flags); -} - -void local_flush_tlb_mm(struct mm_struct *mm) -{ - if (mm->context != 0) { - unsigned long flags; - -#ifdef DEBUG_TLB - printk("[tlbmm<%lu>]", (unsigned long) mm->context); -#endif - save_and_cli(flags); - get_new_cpu_mmu_context(mm, smp_processor_id()); - if (mm == current->active_mm) - set_entryhi(mm->context & 0xfc0); - restore_flags(flags); - } -} - -void local_flush_tlb_range(struct mm_struct *mm, unsigned long start, - unsigned long end) -{ - if (mm->context != 0) { - unsigned long flags; - int size; - -#ifdef DEBUG_TLB - printk("[tlbrange<%lu,0x%08lx,0x%08lx>]", - (mm->context & 0xfc0), start, end); -#endif - save_and_cli(flags); - size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT; - if(size <= mips_cpu.tlbsize) { - int oldpid = (get_entryhi() & 0xfc0); - int newpid = (mm->context & 0xfc0); - - start &= PAGE_MASK; - end += (PAGE_SIZE - 1); - end &= PAGE_MASK; - while(start < end) { - int idx; - - set_entryhi(start | newpid); - start += PAGE_SIZE; - tlb_probe(); - idx = get_index(); - set_entrylo0(0); - set_entryhi(KSEG0); - if(idx < 0) - continue; - tlb_write_indexed(); - } - set_entryhi(oldpid); - } else { - get_new_cpu_mmu_context(mm, smp_processor_id()); - if (mm == current->active_mm) - set_entryhi(mm->context & 0xfc0); - } - restore_flags(flags); - } -} - -void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page) -{ - if(vma->vm_mm->context != 0) { - unsigned long flags; - int oldpid, newpid, idx; - -#ifdef DEBUG_TLB - printk("[tlbpage<%lu,0x%08lx>]", vma->vm_mm->context, page); -#endif - newpid = (vma->vm_mm->context & 0xfc0); - page &= PAGE_MASK; - save_and_cli(flags); - oldpid = (get_entryhi() & 0xfc0); - set_entryhi(page | newpid); - tlb_probe(); - idx = get_index(); - set_entrylo0(0); - set_entryhi(KSEG0); - if(idx < 0) - goto finish; - tlb_write_indexed(); - -finish: - set_entryhi(oldpid); - restore_flags(flags); - } -} - /* * Initialize new page directory with pointers to invalid ptes */ @@ -511,55 +402,6 @@ "1" (PAGE_SIZE/(sizeof(pmd_t)*8))); } -void update_mmu_cache(struct vm_area_struct * vma, unsigned long address, - pte_t pte) -{ - unsigned long flags; - pgd_t *pgdp; - pmd_t *pmdp; - pte_t *ptep; - int idx, pid; - - /* - * Handle debugger faulting in for debugee. - */ - if (current->active_mm != vma->vm_mm) - return; - - pid = get_entryhi() & 0xfc0; - -#ifdef DEBUG_TLB - if((pid != (vma->vm_mm->context & 0xfc0)) || (vma->vm_mm->context == 0)) { - printk("update_mmu_cache: Wheee, bogus tlbpid mmpid=%lu tlbpid=%d\n", - (vma->vm_mm->context & 0xfc0), pid); - } -#endif - - save_and_cli(flags); - address &= PAGE_MASK; - set_entryhi(address | (pid)); - pgdp = pgd_offset(vma->vm_mm, address); - tlb_probe(); - pmdp = pmd_offset(pgdp, address); - idx = get_index(); - ptep = pte_offset(pmdp, address); - set_entrylo0(pte_val(*ptep)); - set_entryhi(address | (pid)); - if(idx < 0) { - tlb_write_random(); -#if 0 - printk("[MISS]"); -#endif - } else { - tlb_write_indexed(); -#if 0 - printk("[HIT]"); -#endif - } - set_entryhi(pid); - restore_flags(flags); -} - void show_regs(struct pt_regs * regs) { /* @@ -593,28 +435,6 @@ (unsigned int) regs->cp0_cause); } -/* Todo: handle r4k-style TX39 TLB */ -void add_wired_entry(unsigned long entrylo0, unsigned long entrylo1, - unsigned long entryhi, unsigned long pagemask) -{ - unsigned long flags; - unsigned long old_ctx; - static unsigned long wired = 0; - - if (wired < 8) { - save_and_cli(flags); - old_ctx = get_entryhi() & 0xfc0; - set_entrylo0(entrylo0); - set_entryhi(entryhi); - set_index(wired); - wired++; - tlb_write_indexed(); - set_entryhi(old_ctx); - local_flush_tlb_all(); - restore_flags(flags); - } -} - static void tx39_flush_icache_all(void ) { @@ -724,4 +544,6 @@ (int) (dcache_size >> 10), (int) dcache_lsize); local_flush_tlb_all(); + memcpy((void *)KSEG0, &except_vec0_r2300, 0x80); + flush_icache_range(KSEG0, KSEG0 + 0x80); } Index: r4xx0.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/mm/r4xx0.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- r4xx0.c 2001/10/09 21:54:13 1.8 +++ r4xx0.c 2001/10/22 19:16:45 1.9 @@ -28,10 +28,7 @@ #include <asm/system.h> #include <asm/mmu_context.h> -/* CP0 hazard avoidance. */ -#define BARRIER __asm__ __volatile__(".set noreorder\n\t" \ - "nop; nop; nop; nop; nop; nop;\n\t" \ - ".set reorder\n\t") +extern void r4k_tlb_init(void); /* Primary cache parameters. */ static int icache_size, dcache_size; /* Size in bytes */ @@ -1279,140 +1276,6 @@ __restore_flags(flags); } -#undef DEBUG_TLB -#undef DEBUG_TLBUPDATE - -void local_flush_tlb_all(void) -{ - unsigned long flags; - unsigned long old_ctx; - int entry; - -#ifdef DEBUG_TLB - printk("[tlball]"); -#endif - - __save_and_cli(flags); - /* Save old context and create impossible VPN2 value */ - old_ctx = (get_entryhi() & 0xff); - set_entryhi(KSEG0); - set_entrylo0(0); - set_entrylo1(0); - BARRIER; - - entry = get_wired(); - - /* Blast 'em all away. */ - while(entry < mips_cpu.tlbsize) { - set_index(entry); - BARRIER; - tlb_write_indexed(); - BARRIER; - entry++; - } - BARRIER; - set_entryhi(old_ctx); - __restore_flags(flags); -} - -void local_flush_tlb_mm(struct mm_struct *mm) -{ - if (mm->context != 0) { - unsigned long flags; - -#ifdef DEBUG_TLB - printk("[tlbmm<%d>]", mm->context); -#endif - __save_and_cli(flags); - get_new_cpu_mmu_context(mm, smp_processor_id()); - if (mm == current->active_mm) - set_entryhi(mm->context & 0xff); - __restore_flags(flags); - } -} - -void local_flush_tlb_range(struct mm_struct *mm, unsigned long start, - unsigned long end) -{ - if(mm->context != 0) { - unsigned long flags; - int size; - -#ifdef DEBUG_TLB - printk("[tlbrange<%02x,%08lx,%08lx>]", (mm->context & 0xff), - start, end); -#endif - __save_and_cli(flags); - size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT; - size = (size + 1) >> 1; - if(size <= mips_cpu.tlbsize/2) { - int oldpid = (get_entryhi() & 0xff); - int newpid = (mm->context & 0xff); - - start &= (PAGE_MASK << 1); - end += ((PAGE_SIZE << 1) - 1); - end &= (PAGE_MASK << 1); - while(start < end) { - int idx; - - set_entryhi(start | newpid); - start += (PAGE_SIZE << 1); - BARRIER; - tlb_probe(); - BARRIER; - idx = get_index(); - set_entrylo0(0); - set_entrylo1(0); - set_entryhi(KSEG0); - BARRIER; - if(idx < 0) - continue; - tlb_write_indexed(); - BARRIER; - } - set_entryhi(oldpid); - } else { - get_new_cpu_mmu_context(mm, smp_processor_id()); - if (mm == current->active_mm) - set_entryhi(mm->context & 0xff); - } - __restore_flags(flags); - } -} - -void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page) -{ - if (vma->vm_mm->context != 0) { - unsigned long flags; - int oldpid, newpid, idx; - -#ifdef DEBUG_TLB - printk("[tlbpage<%d,%08lx>]", vma->vm_mm->context, page); -#endif - newpid = (vma->vm_mm->context & 0xff); - page &= (PAGE_MASK << 1); - __save_and_cli(flags); - oldpid = (get_entryhi() & 0xff); - set_entryhi(page | newpid); - BARRIER; - tlb_probe(); - BARRIER; - idx = get_index(); - set_entrylo0(0); - set_entrylo1(0); - set_entryhi(KSEG0); - if(idx < 0) - goto finish; - BARRIER; - tlb_write_indexed(); - - finish: - BARRIER; - set_entryhi(oldpid); - __restore_flags(flags); - } -} - void pgd_init(unsigned long page) { unsigned long *p = (unsigned long *) page; @@ -1430,90 +1293,6 @@ } } -/* We will need multiple versions of update_mmu_cache(), one that just - * updates the TLB with the new pte(s), and another which also checks - * for the R4k "end of page" hardware bug and does the needy. - */ -void update_mmu_cache(struct vm_area_struct * vma, - unsigned long address, pte_t pte) -{ - unsigned long flags; - pgd_t *pgdp; - pmd_t *pmdp; - pte_t *ptep; - int idx, pid; - - /* - * Handle debugger faulting in for debugee. - */ - if (current->active_mm != vma->vm_mm) - return; - - pid = get_entryhi() & 0xff; - -#ifdef DEBUG_TLB - if((pid != (vma->vm_mm->context & 0xff)) || (vma->vm_mm->context == 0)) { - printk("update_mmu_cache: Wheee, bogus tlbpid mmpid=%d tlbpid=%d\n", - (int) (vma->vm_mm->context & 0xff), pid); - } -#endif - - __save_and_cli(flags); - address &= (PAGE_MASK << 1); - set_entryhi(address | (pid)); - pgdp = pgd_offset(vma->vm_mm, address); - BARRIER; - tlb_probe(); - BARRIER; - pmdp = pmd_offset(pgdp, address); - idx = get_index(); - ptep = pte_offset(pmdp, address); - BARRIER; - set_entrylo0(pte_val(*ptep++) >> 6); - set_entrylo1(pte_val(*ptep) >> 6); - set_entryhi(address | (pid)); - BARRIER; - if(idx < 0) { - tlb_write_random(); - } else { - tlb_write_indexed(); - } - BARRIER; - set_entryhi(pid); - BARRIER; - __restore_flags(flags); -} - -#if 0 -static void r4k_update_mmu_cache_hwbug(struct vm_area_struct * vma, - unsigned long address, pte_t pte) -{ - unsigned long flags; - pgd_t *pgdp; - pmd_t *pmdp; - pte_t *ptep; - int idx; - - __save_and_cli(flags); - address &= (PAGE_MASK << 1); - set_entryhi(address | (get_entryhi() & 0xff)); - pgdp = pgd_offset(vma->vm_mm, address); - tlb_probe(); - pmdp = pmd_offset(pgdp, address); - idx = get_index(); - ptep = pte_offset(pmdp, address); - set_entrylo0(pte_val(*ptep++) >> 6); - set_entrylo1(pte_val(*ptep) >> 6); - BARRIER; - if(idx < 0) - tlb_write_random(); - else - tlb_write_indexed(); - BARRIER; - __restore_flags(flags); -} -#endif - void show_regs(struct pt_regs * regs) { /* Saved main processor registers. */ @@ -1539,37 +1318,6 @@ regs->cp0_epc, regs->cp0_status, regs->cp0_cause); } -void add_wired_entry(unsigned long entrylo0, unsigned long entrylo1, - unsigned long entryhi, unsigned long pagemask) -{ - unsigned long flags; - unsigned long wired; - unsigned long old_pagemask; - unsigned long old_ctx; - - __save_and_cli(flags); - /* Save old context and create impossible VPN2 value */ - old_ctx = (get_entryhi() & 0xff); - old_pagemask = get_pagemask(); - wired = get_wired(); - set_wired (wired + 1); - set_index (wired); - BARRIER; - set_pagemask (pagemask); - set_entryhi(entryhi); - set_entrylo0(entrylo0); - set_entrylo1(entrylo1); - BARRIER; - tlb_write_indexed(); - BARRIER; - - set_entryhi(old_ctx); - BARRIER; - set_pagemask (old_pagemask); - local_flush_tlb_all(); - __restore_flags(flags); -} - /* Detect and size the various r4k caches. */ static void __init probe_icache(unsigned long config) { @@ -1870,15 +1618,5 @@ } __flush_cache_all(); - write_32bit_cp0_register(CP0_WIRED, 0); - - /* - * You should never change this register: - * - On R4600 1.7 the tlbp never hits for pages smaller than - * the value in the c0_pagemask register. - * - The entire mm handling assumes the c0_pagemask register to - * be set for 4kb pages. - */ - set_pagemask(PM_4K); - local_flush_tlb_all(); + r4k_tlb_init(); } Index: r5432.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/mm/r5432.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- r5432.c 2001/10/09 21:54:13 1.4 +++ r5432.c 2001/10/22 19:16:45 1.5 @@ -34,6 +34,8 @@ #include <asm/bootinfo.h> #include <asm/mmu_context.h> +extern void r4k_tlb_init(void); + /* CP0 hazard avoidance. */ #define BARRIER __asm__ __volatile__(".set noreorder\n\t" \ "nop; nop; nop; nop; nop; nop;\n\t" \ @@ -441,144 +443,6 @@ protected_flush_icache_line(addr & ~(ic_lsize - 1)); } -#undef DEBUG_TLB -#undef DEBUG_TLBUPDATE - -#define NTLB_ENTRIES 48 /* Fixed on all R4XX0 variants... */ - -#define NTLB_ENTRIES_HALF 24 /* Fixed on all R4XX0 variants... */ - -void local_flush_tlb_all(void) -{ - unsigned long old_ctx; - int entry; - unsigned long flags; - -#ifdef DEBUG_TLB - printk("[tlball]"); -#endif - - __save_and_cli(flags); - /* Save old context and create impossible VPN2 value */ - old_ctx = (get_entryhi() & 0xff); - set_entryhi(KSEG0); - set_entrylo0(0); - set_entrylo1(0); - BARRIER; - - entry = get_wired(); - - /* Blast 'em all away. */ - while(entry < NTLB_ENTRIES) { - set_index(entry); - BARRIER; - tlb_write_indexed(); - BARRIER; - entry++; - } - BARRIER; - set_entryhi(old_ctx); - __restore_flags(flags); -} - -void local_flush_tlb_mm(struct mm_struct *mm) -{ - if (mm->context != 0) { - unsigned long flags; - -#ifdef DEBUG_TLB - printk("[tlbmm<%d>]", mm->context); -#endif - __save_and_cli(flags); - get_new_cpu_mmu_context(mm, smp_processor_id()); - if (mm == current->active_mm) - set_entryhi(mm->context & 0xff); - __restore_flags(flags); - } -} - -void local_flush_tlb_range(struct mm_struct *mm, unsigned long start, - unsigned long end) -{ - if(mm->context != 0) { - unsigned long flags; - int size; - -#ifdef DEBUG_TLB - printk("[tlbrange<%02x,%08lx,%08lx>]", (mm->context & 0xff), - start, end); -#endif - __save_and_cli(flags); - size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT; - size = (size + 1) >> 1; - if(size <= NTLB_ENTRIES_HALF) { - int oldpid = (get_entryhi() & 0xff); - int newpid = (mm->context & 0xff); - - start &= (PAGE_MASK << 1); - end += ((PAGE_SIZE << 1) - 1); - end &= (PAGE_MASK << 1); - while(start < end) { - int idx; - - set_entryhi(start | newpid); - start += (PAGE_SIZE << 1); - BARRIER; - tlb_probe(); - BARRIER; - idx = get_index(); - set_entrylo0(0); - set_entrylo1(0); - set_entryhi(KSEG0); - BARRIER; - if(idx < 0) - continue; - tlb_write_indexed(); - BARRIER; - } - set_entryhi(oldpid); - } else { - get_new_cpu_mmu_context(mm, smp_processor_id()); - if (mm == current->active_mm) - set_entryhi(mm->context & 0xff); - } - __restore_flags(flags); - } -} - -void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page) -{ - if (vma->vm_mm->context != 0) { - unsigned long flags; - int oldpid, newpid, idx; - -#ifdef DEBUG_TLB - printk("[tlbpage<%d,%08lx>]", vma->vm_mm->context, page); -#endif - newpid = (vma->vm_mm->context & 0xff); - page &= (PAGE_MASK << 1); - __save_and_cli(flags); - oldpid = (get_entryhi() & 0xff); - set_entryhi(page | newpid); - BARRIER; - tlb_probe(); - BARRIER; - idx = get_index(); - set_entrylo0(0); - set_entrylo1(0); - set_entryhi(KSEG0); - if(idx < 0) - goto finish; - BARRIER; - tlb_write_indexed(); - - finish: - BARRIER; - set_entryhi(oldpid); - __restore_flags(flags); - } -} - void pgd_init(unsigned long page) { unsigned long *p = (unsigned long *) page; @@ -596,60 +460,6 @@ } } -/* We will need multiple versions of update_mmu_cache(), one that just - * updates the TLB with the new pte(s), and another which also checks - * for the R4k "end of page" hardware bug and does the needy. - */ -void update_mmu_cache(struct vm_area_struct * vma, - unsigned long address, pte_t pte) -{ - unsigned long flags; - pgd_t *pgdp; - pmd_t *pmdp; - pte_t *ptep; - int idx, pid; - - /* - * Handle debugger faulting in for debugee. - */ - if (current->active_mm != vma->vm_mm) - return; - - pid = get_entryhi() & 0xff; - -#ifdef DEBUG_TLB - if((pid != (vma->vm_mm->context & 0xff)) || (vma->vm_mm->context == 0)) { - printk("update_mmu_cache: Wheee, bogus tlbpid mmpid=%d tlbpid=%d\n", - (int) (vma->vm_mm->context & 0xff), pid); - } -#endif - - __save_and_cli(flags); - address &= (PAGE_MASK << 1); - set_entryhi(address | (pid)); - pgdp = pgd_offset(vma->vm_mm, address); - BARRIER; - tlb_probe(); - BARRIER; - pmdp = pmd_offset(pgdp, address); - idx = get_index(); - ptep = pte_offset(pmdp, address); - BARRIER; - set_entrylo0(pte_val(*ptep++) >> 6); - set_entrylo1(pte_val(*ptep) >> 6); - set_entryhi(address | (pid)); - BARRIER; - if(idx < 0) { - tlb_write_random(); - } else { - tlb_write_indexed(); - } - BARRIER; - set_entryhi(pid); - BARRIER; - __restore_flags(flags); -} - void show_regs(struct pt_regs * regs) { /* Saved main processor registers. */ @@ -675,37 +485,6 @@ regs->cp0_epc, regs->cp0_status, regs->cp0_cause); } -void add_wired_entry(unsigned long entrylo0, unsigned long entrylo1, - unsigned long entryhi, unsigned long pagemask) -{ - unsigned long flags; - unsigned long wired; - unsigned long old_pagemask; - unsigned long old_ctx; - - __save_and_cli(flags); - /* Save old context and create impossible VPN2 value */ - old_ctx = (get_entryhi() & 0xff); - old_pagemask = get_pagemask(); - wired = get_wired(); - set_wired (wired + 1); - set_index (wired); - BARRIER; - set_pagemask (pagemask); - set_entryhi(entryhi); - set_entrylo0(entrylo0); - set_entrylo1(entrylo1); - BARRIER; - tlb_write_indexed(); - BARRIER; - - set_entryhi(old_ctx); - BARRIER; - set_pagemask (old_pagemask); - local_flush_tlb_all(); - __restore_flags(flags); -} - /* Detect and size the various r4k caches. */ static void __init probe_icache(unsigned long config) { @@ -754,15 +533,5 @@ _flush_icache_range = r5432_flush_icache_range; /* Ouch */ __flush_cache_all(); - write_32bit_cp0_register(CP0_WIRED, 0); - - /* - * You should never change this register: - * - On R4600 1.7 the tlbp never hits for pages smaller than - * the value in the c0_pagemask register. - * - The entire mm handling assumes the c0_pagemask register to - * be set for 4kb pages. - */ - write_32bit_cp0_register(CP0_PAGEMASK, PM_4K); - local_flush_tlb_all(); + r4k_tlb_init(); } Index: rm7k.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/mm/rm7k.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- rm7k.c 2001/10/11 16:41:30 1.3 +++ rm7k.c 2001/10/22 19:16:45 1.4 @@ -26,6 +26,8 @@ #include <asm/bootinfo.h> #include <asm/mmu_context.h> +extern void r4k_tlb_init(void); + /* CP0 hazard avoidance. */ #define BARRIER __asm__ __volatile__(".set noreorder\n\t" \ "nop; nop; nop; nop; nop; nop;\n\t" \ @@ -194,138 +196,6 @@ protected_flush_icache_line(addr & ~(ic_lsize - 1)); } -/* - * Undocumented RM7000: Bit 29 in the info register of the RM7000 v2.0 - * indicates if the TLB has 48 or 64 entries. - * - * 29 1 => 64 entry JTLB - * 0 => 48 entry JTLB - */ -static inline int __attribute__((const)) ntlb_entries(void) -{ - if (get_info() & (1 << 29)) - return 64; - - return 48; -} - -void local_flush_tlb_all(void) -{ - unsigned long flags; - unsigned long old_ctx; - int entry; - - __save_and_cli(flags); - /* Save old context and create impossible VPN2 value */ - old_ctx = get_entryhi() & 0xff; - set_entryhi(KSEG0); - set_entrylo0(0); - set_entrylo1(0); - BARRIER; - - entry = get_wired(); - - /* Blast 'em all away. */ - while (entry < ntlb_entries()) { - set_index(entry); - BARRIER; - tlb_write_indexed(); - BARRIER; - entry++; - } - BARRIER; - set_entryhi(old_ctx); - __restore_flags(flags); -} - -void local_flush_tlb_mm(struct mm_struct *mm) -{ - if(mm->context != 0) { - unsigned long flags; - - __save_and_cli(flags); - get_new_cpu_mmu_context(mm, smp_processor_id()); - if (mm == current->mm) - set_entryhi(mm->context & 0xff); - __restore_flags(flags); - } -} - -void local_flush_tlb_range(struct mm_struct *mm, unsigned long start, - unsigned long end) -{ - if(mm->context != 0) { - unsigned long flags; - int size; - - __save_and_cli(flags); - size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT; - size = (size + 1) >> 1; - if (size <= (ntlb_entries() / 2)) { - int oldpid = (get_entryhi() & 0xff); - int newpid = (mm->context & 0xff); - - start &= (PAGE_MASK << 1); - end += ((PAGE_SIZE << 1) - 1); - end &= (PAGE_MASK << 1); - while(start < end) { - int idx; - - set_entryhi(start | newpid); - start += (PAGE_SIZE << 1); - BARRIER; - tlb_probe(); - BARRIER; - idx = get_index(); - set_entrylo0(0); - set_entrylo1(0); - set_entryhi(KSEG0); - BARRIER; - if(idx < 0) - continue; - tlb_write_indexed(); - BARRIER; - } - set_entryhi(oldpid); - } else { - get_new_cpu_mmu_context(mm, smp_processor_id()); - if(mm == current->mm) - set_entryhi(mm->context & 0xff); - } - __restore_flags(flags); - } -} - -void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page) -{ - if(vma->vm_mm->context != 0) { - unsigned long flags; - int oldpid, newpid, idx; - - newpid = (vma->vm_mm->context & 0xff); - page &= (PAGE_MASK << 1); - __save_and_cli(flags); - oldpid = (get_entryhi() & 0xff); - set_entryhi(page | newpid); - BARRIER; - tlb_probe(); - BARRIER; - idx = get_index(); - set_entrylo0(0); - set_entrylo1(0); - set_entryhi(KSEG0); - if(idx < 0) - goto finish; - BARRIER; - tlb_write_indexed(); - - finish: - BARRIER; - set_entryhi(oldpid); - __restore_flags(flags); - } -} - void pgd_init(unsigned long page) { unsigned long *p = (unsigned long *) page; @@ -343,54 +213,6 @@ } } -/* - * We will need multiple versions of update_mmu_cache(), one that just - * updates the TLB with the new pte(s), and another which also checks - * for the R4k "end of page" hardware bug and does the needy. - */ -void update_mmu_cache(struct vm_area_struct * vma, - unsigned long address, pte_t pte) -{ - unsigned long flags; - pgd_t *pgdp; - pmd_t *pmdp; - pte_t *ptep; - int idx, pid; - - /* - * Handle debugger faulting in for debugee. - */ - if (current->active_mm != vma->vm_mm) - return; - - pid = get_entryhi() & 0xff; - - __save_and_cli(flags); - address &= (PAGE_MASK << 1); - set_entryhi(address | (pid)); - pgdp = pgd_offset(vma->vm_mm, address); - BARRIER; - tlb_probe(); - BARRIER; - pmdp = pmd_offset(pgdp, address); - idx = get_index(); - ptep = pte_offset(pmdp, address); - BARRIER; - set_entrylo0(pte_val(*ptep++) >> 6); - set_entrylo1(pte_val(*ptep) >> 6); - set_entryhi(address | (pid)); - BARRIER; - if (idx < 0) { - tlb_write_random(); - } else { - tlb_write_indexed(); - } - BARRIER; - set_entryhi(pid); - BARRIER; - __restore_flags(flags); -} - void show_regs(struct pt_regs * regs) { /* Saved main processor registers. */ @@ -416,83 +238,6 @@ regs->cp0_epc, regs->cp0_status, regs->cp0_cause); } -void add_wired_entry(unsigned long entrylo0, unsigned long entrylo1, - unsigned long entryhi, unsigned long pagemask) -{ - unsigned long flags; - unsigned long wired; - unsigned long old_pagemask; - unsigned long old_ctx; - - __save_and_cli(flags); - /* Save old context and create impossible VPN2 value */ - old_ctx = (get_entryhi() & 0xff); - old_pagemask = get_pagemask(); - wired = get_wired(); - set_wired (wired + 1); - set_index (wired); - BARRIER; - set_pagemask (pagemask); - set_entryhi(entryhi); - set_entrylo0(entrylo0); - set_entrylo1(entrylo1); - BARRIER; - tlb_write_indexed(); - BARRIER; - - set_entryhi(old_ctx); - BARRIER; - set_pagemask (old_pagemask); - local_flush_tlb_all(); - __restore_flags(flags); -} - -/* Used for loading TLB entries before trap_init() has started, when we - don't actually want to add a wired entry which remains throughout the - lifetime of the system */ - -static int temp_tlb_entry __initdata; - -__init int add_temporary_entry(unsigned long entrylo0, unsigned long entrylo1, - unsigned long entryhi, unsigned long pagemask) -{ - int ret = 0; - unsigned long flags; - unsigned long wired; - unsigned long old_pagemask; - unsigned long old_ctx; - - __save_and_cli(flags); - /* Save old context and create impossible VPN2 value */ - old_ctx = (get_entryhi() & 0xff); - old_pagemask = get_pagemask(); - wired = get_wired(); - if (--temp_tlb_entry < wired) { - printk(KERN_WARNING "No TLB space left for add_temporary_entry\n"); - ret = -ENOSPC; - goto out; - } - - set_index (temp_tlb_entry); - BARRIER; - set_pagemask (pagemask); - set_entryhi(entryhi); - set_entrylo0(entrylo0); - set_entrylo1(entrylo1); - BARRIER; - tlb_write_indexed(); - BARRIER; - - set_entryhi(old_ctx); - BARRIER; - set_pagemask (old_pagemask); - out: - __restore_flags(flags); - return ret; -} - - - /* Detect and size the caches. */ static inline void probe_icache(unsigned long config) { @@ -629,8 +374,6 @@ probe_scache(config); probe_tcache(config); - printk("TLB has %d entries.\n", ntlb_entries()); - _clear_page = rm7k_clear_page; _copy_page = rm7k_copy_page; @@ -649,8 +392,5 @@ _dma_cache_inv = rm7k_dma_cache_inv; __flush_cache_all_d32i32(); - write_32bit_cp0_register(CP0_WIRED, 0); - temp_tlb_entry = ntlb_entries() - 1; - write_32bit_cp0_register(CP0_PAGEMASK, PM_4K); - local_flush_tlb_all(); + r4k_tlb_init(); } Index: sb1.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/mm/sb1.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- sb1.c 2001/10/11 22:44:25 1.4 +++ sb1.c 2001/10/22 19:16:45 1.5 @@ -26,6 +26,8 @@ #include <asm/mmu_context.h> +extern void r4k_tlb_init(void); + /* These are probed at ld_mmu time */ static unsigned int icache_size; static unsigned int dcache_size; @@ -416,7 +418,7 @@ * at this level instead of as common code in loadmmu()? */ flush_cache_all(); - local_flush_tlb_all(); + r4k_tlb_init(); /* Turn on caching in kseg0 */ set_cp0_config(CONF_CM_CMASK, 0); |
From: Paul M. <le...@us...> - 2001-10-22 19:16:48
|
Update of /cvsroot/linux-mips/linux/arch/mips64/sgi-ip27 In directory usw-pr-cvs1:/tmp/cvs-serv11592/arch/mips64/sgi-ip27 Modified Files: ip27-init.c Log Message: Further syncing with OSS 2.4.10. Massive restructuring of TLB handling. Index: ip27-init.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/sgi-ip27/ip27-init.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- ip27-init.c 2001/06/22 02:29:32 1.1.1.1 +++ ip27-init.c 2001/10/22 19:16:45 1.2 @@ -449,7 +449,7 @@ bte_lateinit(); init_mfhi_war(); #endif - _flush_tlb_all(); + local_flush_tlb_all(); flush_cache_l1(); flush_cache_l2(); start_secondary(); |
From: Paul M. <le...@us...> - 2001-10-22 19:16:48
|
Update of /cvsroot/linux-mips/linux/drivers/i2c In directory usw-pr-cvs1:/tmp/cvs-serv11592/drivers/i2c Modified Files: Config.in Makefile Log Message: Further syncing with OSS 2.4.10. Massive restructuring of TLB handling. Index: Config.in =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/i2c/Config.in,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- Config.in 2001/06/22 02:29:32 1.1.1.1 +++ Config.in 2001/10/22 19:16:45 1.2 @@ -27,6 +27,13 @@ fi fi + if [ "$CONFIG_MIPS_ITE8172" = "y" ]; then + dep_tristate 'ITE I2C Algorithm' CONFIG_ITE_I2C_ALGO $CONFIG_I2C + if [ "$CONFIG_ITE_I2C_ALGO" != "n" ]; then + dep_tristate ' ITE I2C Adapter' CONFIG_ITE_I2C_ADAP $CONFIG_ITE_I2C_ALGO + fi + fi + # This is needed for automatic patch generation: sensors code starts here # This is needed for automatic patch generation: sensors code ends here Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/i2c/Makefile,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- Makefile 2001/06/22 02:29:32 1.1.1.1 +++ Makefile 2001/10/22 19:16:45 1.2 @@ -2,7 +2,6 @@ # Makefile for the kernel i2c bus driver. # -MOD_LIST_NAME := I2C_MODULES O_TARGET := i2c.o export-objs := i2c-core.o i2c-algo-bit.o i2c-algo-pcf.o i2c-algo-ite.o @@ -15,8 +14,6 @@ obj-$(CONFIG_I2C_VELLEMAN) += i2c-velleman.o obj-$(CONFIG_I2C_ALGOPCF) += i2c-algo-pcf.o obj-$(CONFIG_I2C_ELEKTOR) += i2c-elektor.o -obj-$(CONFIG_I2C_ALGO8XX) += i2c-algo-8xx.o -obj-$(CONFIG_I2C_RPXLITE) += i2c-rpx.o obj-$(CONFIG_ITE_I2C_ALGO) += i2c-algo-ite.o obj-$(CONFIG_ITE_I2C_ADAP) += i2c-adap-ite.o |
From: Paul M. <le...@us...> - 2001-10-22 19:16:48
|
Update of /cvsroot/linux-mips/linux/arch/mips/kernel In directory usw-pr-cvs1:/tmp/cvs-serv11592/arch/mips/kernel Modified Files: Makefile entry.S head.S irq_cpu.c setup.c traps.c Log Message: Further syncing with OSS 2.4.10. Massive restructuring of TLB handling. Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/Makefile,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- Makefile 2001/09/27 22:36:33 1.8 +++ Makefile 2001/10/22 19:16:44 1.9 @@ -23,17 +23,22 @@ ipc.o scall_o32.o unaligned.o fast-sysmips.o obj-$(CONFIG_MODULES) += mips_ksyms.o -ifdef CONFIG_CPU_R3000 -obj-y += r2300_misc.o r2300_fpu.o r2300_switch.o -else -obj-y += r4k_misc.o r4k_switch.o -ifdef CONFIG_CPU_R6000 -obj-y += r6000_fpu.o -else -obj-y += r4k_fpu.o -endif -endif +obj-$(CONFIG_CPU_R3000) += r2300_fpu.o r2300_switch.o +obj-$(CONFIG_CPU_R4000) += r4k_fpu.o r4k_switch.o +obj-$(CONFIG_CPU_VR41XX) += r4k_fpu.o r4k_switch.o +obj-$(CONFIG_CPU_R4300) += r4k_fpu.o r4k_switch.o +obj-$(CONFIG_CPU_R4X00) += r4k_fpu.o r4k_switch.o +obj-$(CONFIG_CPU_R5000) += r4k_fpu.o r4k_switch.o +obj-$(CONFIG_CPU_R5432) += r4k_fpu.o r4k_switch.o +obj-$(CONFIG_CPU_RM7000) += r4k_fpu.o r4k_switch.o +obj-$(CONFIG_CPU_NEVADA) += r4k_fpu.o r4k_switch.o +obj-$(CONFIG_CPU_R10000) += r4k_fpu.o r4k_switch.o +obj-$(CONFIG_CPU_SB1) += r4k_fpu.o r4k_switch.o +obj-$(CONFIG_CPU_MIPS32) += r4k_fpu.o r4k_switch.o +obj-$(CONFIG_CPU_MIPS64) += r4k_fpu.o r4k_switch.o +obj-$(CONFIG_CPU_R6000) += r6000_fpu.o r4k_switch.o +export-objs += smp.o obj-$(CONFIG_SMP) += smp.o # Old style irq support, going to die in 2.5. Index: entry.S =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/entry.S,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- entry.S 2001/10/02 17:18:31 1.6 +++ entry.S 2001/10/22 19:16:44 1.7 @@ -9,10 +9,12 @@ * Copyright (C) 2001 MIPS Technologies, Inc. */ #include <linux/config.h> +#include <linux/init.h> #include <linux/sys.h> #include <asm/addrspace.h> #include <asm/asm.h> +#include <asm/cacheops.h> #include <asm/current.h> #include <asm/errno.h> #include <asm/mipsregs.h> @@ -102,6 +104,82 @@ sw t0,%lo(spurious_count)(t1) j ret_from_irq END(spurious_interrupt) + + __INIT + + /* + * General exception vector. Used for all CPUs except R4000 + * and R4400 SC and MC versions. + */ + .set reorder + + NESTED(except_vec1_generic, 0, sp) + PANIC("Exception vector 1 called") + END(except_vec1_generic) + + NESTED(except_vec3_generic, 0, sp) + .set mips0 + mfc0 k1, CP0_CAUSE + la k0, exception_handlers + andi k1, k1, 0x7c + addu k0, k0, k1 + lw k0, (k0) + jr k0 + END(except_vec3_generic) + .set at + + /* General exception vector R4000 version. */ + NESTED(except_vec3_r4000, 0, sp) + .set noat + mfc0 k1, CP0_CAUSE + andi k1, k1, 0x7c + li k0, 31<<2 + beq k1, k0, handle_vced + li k0, 14<<2 + beq k1, k0, handle_vcei + la k0, exception_handlers + addu k0, k0, k1 + lw k0, (k0) + nop + jr k0 + nop + + /* + * Big shit, we now may have two dirty primary cache lines for + * the same physical address. We can savely invalidate the + * line pointed to by c0_badvaddr because after return from + * this exception handler the load / store will be re-executed. + */ + .set mips3 +handle_vced: + mfc0 k0, CP0_BADVADDR + li k1, -4 + and k0, k1 + mtc0 zero, CP0_TAGLO + cache Index_Store_Tag_D,(k0) + cache Hit_Writeback_Inv_SD,(k0) +#ifdef CONFIG_PROC_FS + lui k0, %hi(vced_count) + lw k1, %lo(vced_count)(k0) + addiu k1, 1 + sw k1, %lo(vced_count)(k0) +#endif + eret + +handle_vcei: + mfc0 k0, CP0_BADVADDR + cache Hit_Writeback_Inv_SD, (k0) # also cleans pi +#ifdef CONFIG_PROC_FS + lui k0, %hi(vcei_count) + lw k1, %lo(vcei_count)(k0) + addiu k1, 1 + sw k1, %lo(vcei_count)(k0) +#endif + eret + + END(except_vec3_r4000) + + __FINIT /* * Build a default exception handler for the exceptions that don't need Index: head.S =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/head.S,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- head.S 2001/10/11 18:19:06 1.8 +++ head.S 2001/10/22 19:16:44 1.9 @@ -1,6 +1,4 @@ /* - * arch/mips/kernel/head.S - * * 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. @@ -13,21 +11,14 @@ * Further modifications by David S. Miller and Harald Koerfgen * Copyright (C) 1999 Silicon Graphics, Inc. * - * Head.S contains the MIPS exception handler and startup code. - * - ************************************************************************** - * 9 Nov, 2000. - * Added Cache Error exception handler and SBDDP EJTAG debug exception. - * * Kevin Kissell, ke...@mi... and Carsten Langgaard, car...@mi... * Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved. - ************************************************************************** */ #include <linux/config.h> +#include <linux/init.h> #include <linux/threads.h> #include <asm/asm.h> -#include <asm/cacheops.h> #include <asm/current.h> #include <asm/offset.h> #include <asm/processor.h> @@ -37,320 +28,18 @@ #include <asm/stackframe.h> #include <asm/bootinfo.h> + __INIT + .text /* * Reserved space for exception handlers. * Necessary for machines which link their kernels at KSEG0. - * FIXME: Use the initcode feature to get rid of unused handler - * variants. */ .fill 0x280 -/* - * This is space for the interrupt handlers. - * After trap_init() they are located at virtual address KSEG0. - * - * These handlers much be written in a relocatable manner - * because based upon the cpu type an arbitrary one of the - * following pieces of code will be copied to the KSEG0 - * vector location. - */ - /* TLB refill, EXL == 0, R4xx0, non-R4600 version */ - .set noreorder - .set noat - LEAF(except_vec0_r4000) - .set mips3 -#ifdef CONFIG_SMP - mfc0 k1, CP0_CONTEXT - la k0, pgd_current - srl k1, 23 - sll k1, 2 - addu k1, k0, k1 - lw k1, (k1) -#else - lw k1, pgd_current # get pgd pointer -#endif - mfc0 k0, CP0_BADVADDR # Get faulting address - srl k0, k0, 22 # get pgd only bits - - sll k0, k0, 2 - addu k1, k1, k0 # add in pgd offset - mfc0 k0, CP0_CONTEXT # get context reg - lw k1, (k1) -#if defined(CONFIG_CPU_VR41XX) - srl k0, k0, 3 # get pte offset -#else - srl k0, k0, 1 # get pte offset -#endif - and k0, k0, 0xff8 - addu k1, k1, k0 # add in offset - lw k0, 0(k1) # get even pte - lw k1, 4(k1) # get odd pte - srl k0, k0, 6 # convert to entrylo0 - mtc0 k0, CP0_ENTRYLO0 # load it - srl k1, k1, 6 # convert to entrylo1 - mtc0 k1, CP0_ENTRYLO1 # load it - b 1f - tlbwr # write random tlb entry -1: - nop - eret # return from trap - END(except_vec0_r4000) - -#ifdef CONFIG_MIPS_AU1000 - /* TLB refill, EXL == 0, Au1000 version */ - /* we'll worry about smp later */ - .set noreorder - .set noat - LEAF(except_vec0_au1000) - .set mips3 - mfc0 k0, CP0_BADVADDR # Get faulting address - srl k0, k0, 22 # get pgd only bits - lw k1, pgd_current # get pgd pointer - sll k0, k0, 2 - addu k1, k1, k0 # add in pgd offset - mfc0 k0, CP0_CONTEXT # get context reg - lw k1, (k1) - srl k0, k0, 1 # get pte offset - and k0, k0, 0xff8 - addu k1, k1, k0 # add in offset - j translate_pte - nop - END(except_vec0_au1000) -#endif - - /* TLB refill, EXL == 0, R4600 version */ - LEAF(except_vec0_r4600) - .set mips3 - mfc0 k0, CP0_BADVADDR - srl k0, k0, 22 - lw k1, pgd_current # get pgd pointer - sll k0, k0, 2 - addu k1, k1, k0 - mfc0 k0, CP0_CONTEXT - lw k1, (k1) - srl k0, k0, 1 - and k0, k0, 0xff8 - addu k1, k1, k0 - lw k0, 0(k1) - lw k1, 4(k1) - srl k0, k0, 6 - mtc0 k0, CP0_ENTRYLO0 - srl k1, k1, 6 - mtc0 k1, CP0_ENTRYLO1 - nop - tlbwr - nop - eret - END(except_vec0_r4600) - - /* TLB refill, EXL == 0, R52x0 "Nevada" version */ - /* - * This version has a bug workaround for the Nevada. It seems - * as if under certain circumstances the move from cp0_context - * might produce a bogus result when the mfc0 instruction and - * it's consumer are in a different cacheline or a load instruction, - * probably any memory reference, is between them. This is - * potencially slower than the R4000 version, so we use this - * special version. - */ - .set noreorder - .set noat - LEAF(except_vec0_nevada) - .set mips3 - mfc0 k0, CP0_BADVADDR # Get faulting address - srl k0, k0, 22 # get pgd only bits - lw k1, pgd_current # get pgd pointer - sll k0, k0, 2 - addu k1, k1, k0 # add in pgd offset - lw k1, (k1) - mfc0 k0, CP0_CONTEXT # get context reg - srl k0, k0, 1 # get pte offset - and k0, k0, 0xff8 - addu k1, k1, k0 # add in offset - lw k0, 0(k1) # get even pte - lw k1, 4(k1) # get odd pte - srl k0, k0, 6 # convert to entrylo0 - mtc0 k0, CP0_ENTRYLO0 # load it - srl k1, k1, 6 # convert to entrylo1 - mtc0 k1, CP0_ENTRYLO1 # load it - nop # QED specified nops - nop - tlbwr # write random tlb entry - nop # traditional nop - eret # return from trap - END(except_vec0_nevada) - - /* TLB refill, EXL == 0, R4[40]00/R5000 badvaddr hwbug version */ - LEAF(except_vec0_r45k_bvahwbug) - .set mips3 - mfc0 k0, CP0_BADVADDR - srl k0, k0, 22 - lw k1, pgd_current # get pgd pointer - sll k0, k0, 2 - addu k1, k1, k0 - mfc0 k0, CP0_CONTEXT - lw k1, (k1) - srl k0, k0, 1 - and k0, k0, 0xff8 - addu k1, k1, k0 - lw k0, 0(k1) - lw k1, 4(k1) - nop /* XXX */ - tlbp - srl k0, k0, 6 - mtc0 k0, CP0_ENTRYLO0 - srl k1, k1, 6 - mfc0 k0, CP0_INDEX - mtc0 k1, CP0_ENTRYLO1 - bltzl k0, 1f - tlbwr -1: - nop - eret - END(except_vec0_r45k_bvahwbug) - -#ifdef CONFIG_SMP - /* TLB refill, EXL == 0, R4000 MP badvaddr hwbug version */ - LEAF(except_vec0_r4k_mphwbug) - .set mips3 - mfc0 k0, CP0_BADVADDR - srl k0, k0, 22 - lw k1, pgd_current # get pgd pointer - sll k0, k0, 2 - addu k1, k1, k0 - mfc0 k0, CP0_CONTEXT - lw k1, (k1) - srl k0, k0, 1 - and k0, k0, 0xff8 - addu k1, k1, k0 - lw k0, 0(k1) - lw k1, 4(k1) - nop /* XXX */ - tlbp - srl k0, k0, 6 - mtc0 k0, CP0_ENTRYLO0 - srl k1, k1, 6 - mfc0 k0, CP0_INDEX - mtc0 k1, CP0_ENTRYLO1 - bltzl k0, 1f - tlbwr -1: - nop - eret - END(except_vec0_r4k_mphwbug) -#endif - - /* TLB refill, EXL == 0, R4000 UP 250MHZ entrylo[01] hwbug version */ - LEAF(except_vec0_r4k_250MHZhwbug) - .set mips3 - mfc0 k0, CP0_BADVADDR - srl k0, k0, 22 - lw k1, pgd_current # get pgd pointer - sll k0, k0, 2 - addu k1, k1, k0 - mfc0 k0, CP0_CONTEXT - lw k1, (k1) - srl k0, k0, 1 - and k0, k0, 0xff8 - addu k1, k1, k0 - lw k0, 0(k1) - lw k1, 4(k1) - srl k0, k0, 6 - mtc0 zero, CP0_ENTRYLO0 - mtc0 k0, CP0_ENTRYLO0 - srl k1, k1, 6 - mtc0 zero, CP0_ENTRYLO1 - mtc0 k1, CP0_ENTRYLO1 - b 1f - tlbwr -1: - nop - eret - END(except_vec0_r4k_250MHZhwbug) - -#ifdef CONFIG_SMP - /* TLB refill, EXL == 0, R4000 MP 250MHZ entrylo[01]+badvaddr bug version */ - LEAF(except_vec0_r4k_MP250MHZhwbug) - .set mips3 - mfc0 k0, CP0_BADVADDR - srl k0, k0, 22 - lw k1, pgd_current # get pgd pointer - sll k0, k0, 2 - addu k1, k1, k0 - mfc0 k0, CP0_CONTEXT - lw k1, (k1) - srl k0, k0, 1 - and k0, k0, 0xff8 - addu k1, k1, k0 - lw k0, 0(k1) - lw k1, 4(k1) - nop /* XXX */ - tlbp - srl k0, k0, 6 - mtc0 zero, CP0_ENTRYLO0 - mtc0 k0, CP0_ENTRYLO0 - mfc0 k0, CP0_INDEX - srl k1, k1, 6 - mtc0 zero, CP0_ENTRYLO1 - mtc0 k1, CP0_ENTRYLO1 - bltzl k0, 1f - tlbwr -1: - nop - eret - END(except_vec0_r4k_MP250MHZhwbug) -#endif - - /* TLB refill, R[23]00 version */ - LEAF(except_vec0_r2300) - .set noat - .set mips1 - mfc0 k0, CP0_BADVADDR - lw k1, pgd_current # get pgd pointer - srl k0, k0, 22 - sll k0, k0, 2 - addu k1, k1, k0 - mfc0 k0, CP0_CONTEXT - lw k1, (k1) - and k0, k0, 0xffc - addu k1, k1, k0 - lw k0, (k1) - nop - mtc0 k0, CP0_ENTRYLO0 - mfc0 k1, CP0_EPC - tlbwr - jr k1 - rfe - END(except_vec0_r2300) - - /* XTLB refill, EXL == 0, R4xx0 cpus only use this... */ - NESTED(except_vec1_generic, 0, sp) - .set noat - .set mips3 - /* Register saving is delayed as long as we don't know - * which registers really need to be saved. - */ - mfc0 k1, CP0_CONTEXT - dsra k1, 1 - lwu k0, (k1) # May cause another exception - lwu k1, 4(k1) - dsrl k0, 6 # Convert to EntryLo format - dsrl k1, 6 # Convert to EntryLo format - dmtc0 k0, CP0_ENTRYLO0 - dmtc0 k1, CP0_ENTRYLO1 - nop # Needed for R4[04]00 pipeline - tlbwr - nop # Needed for R4[04]00 pipeline - nop - nop - eret - nop /* Workaround for R4000 bug. */ - eret - END(except_vec1_generic) - /* Cache Error */ LEAF(except_vec2_generic) + .set noreorder .set noat .set mips0 /* @@ -373,78 +62,14 @@ nop END(except_vec2_generic) - /* General exception vector R4000 version. */ - NESTED(except_vec3_r4000, 0, sp) - .set noat - mfc0 k1, CP0_CAUSE - andi k1, k1, 0x7c - li k0, 31<<2 - beq k1, k0, handle_vced - li k0, 14<<2 - beq k1, k0, handle_vcei - la k0, exception_handlers - addu k0, k0, k1 - lw k0, (k0) - nop - jr k0 - nop - -/* - * Big shit, we now may have two dirty primary cache lines for the same - * physical address. We can savely invalidate the line pointed to by - * c0_badvaddr because after return from this exception handler the load / - * store will be re-executed. - */ - .set mips3 -handle_vced: - mfc0 k0, CP0_BADVADDR - li k1, -4 - and k0, k1 - mtc0 zero, CP0_TAGLO - cache Index_Store_Tag_D,(k0) - cache Hit_Writeback_Inv_SD,(k0) -#ifdef CONFIG_PROC_FS - lui k0, %hi(vced_count) - lw k1, %lo(vced_count)(k0) - addiu k1, 1 - sw k1, %lo(vced_count)(k0) -#endif - eret - -handle_vcei: - mfc0 k0, CP0_BADVADDR - cache Hit_Writeback_Inv_SD,(k0) # also cleans pi -#ifdef CONFIG_PROC_FS - lui k0, %hi(vcei_count) - lw k1, %lo(vcei_count)(k0) - addiu k1, 1 - sw k1, %lo(vcei_count)(k0) -#endif - eret - - END(except_vec3_r4000) .set at - /* General exception vector. */ - NESTED(except_vec3_generic, 0, sp) - .set noat - .set mips0 - mfc0 k1, CP0_CAUSE - la k0, exception_handlers - andi k1, k1, 0x7c - addu k0, k0, k1 - lw k0, (k0) - nop - jr k0 - nop - END(except_vec3_generic) - .set at - /* * Special interrupt vector for embedded MIPS. This is a * dedicated interrupt vector which reduces interrupt processing * overhead. The jump instruction will be inserted here at - * initialization time. This handler may only be 8 bytes in size! + * initialization time. This handler may only be 8 bytes in + * size! */ NESTED(except_vec4, 0, sp) 1: j 1b /* Dummy, will be replaced */ @@ -482,8 +107,7 @@ .set at END(ejtag_debug_handler) - -/* + /* * Kernel entry point */ NESTED(kernel_entry, 16, sp) @@ -679,6 +303,7 @@ __saved_pte: PTR 0 __saved_ra: PTR 0 #endif + __FINIT .comm kernelsp, NR_CPUS * 8, 8 .comm pgd_current, NR_CPUS * 8, 8 @@ -697,9 +322,12 @@ EXPORT(invalid_pte_table) .org 0x5000 -/* XXX This label is required to keep GAS trying to be too clever ... - Bug? */ +/* + * Odd MIPS as behaviour but no bug - this label is required to keep as from + * trying to be too clever ... + */ dummy: + /* * Align to 8kb boundary for init_task_union which follows in the * .text segment. Index: irq_cpu.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/irq_cpu.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- irq_cpu.c 2001/09/26 23:20:15 1.1 +++ irq_cpu.c 2001/10/22 19:16:44 1.2 @@ -1,15 +1,13 @@ -/*********************************************************************** +/* * Copyright 2001 MontaVista Software Inc. * Author: Jun Sun, js...@mv... or js...@ju... * - * arch/mips/ddb5xxx/common/irq_cpu.c * This file define the irq handler for MIPS CPU interrupts. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. - *********************************************************************** */ /* @@ -28,18 +26,11 @@ #include <asm/mipsregs.h> -/* [jsun] sooner or later we should move this debug stuff to MIPS common */ -#include <asm/ddb5xxx/debug.h> - static int mips_cpu_irq_base=-1; static void mips_cpu_irq_enable(unsigned int irq) { - MIPS_ASSERT(mips_cpu_irq_base != -1); - MIPS_ASSERT(irq >= mips_cpu_irq_base); - MIPS_ASSERT(irq < mips_cpu_irq_base+8); - clear_cp0_cause( 1 << (irq - mips_cpu_irq_base + 8)); set_cp0_status(1 << (irq - mips_cpu_irq_base + 8)); } @@ -47,16 +38,13 @@ static void mips_cpu_irq_disable(unsigned int irq) { - MIPS_ASSERT(mips_cpu_irq_base != -1); - MIPS_ASSERT(irq >= mips_cpu_irq_base); - MIPS_ASSERT(irq < mips_cpu_irq_base+8); - clear_cp0_status(1 << (irq - mips_cpu_irq_base + 8)); } static unsigned int mips_cpu_irq_startup(unsigned int irq) { mips_cpu_irq_enable(irq); + return 0; } @@ -65,25 +53,19 @@ static void mips_cpu_irq_ack(unsigned int irq) { - MIPS_ASSERT(mips_cpu_irq_base != -1); - MIPS_ASSERT(irq >= mips_cpu_irq_base); - MIPS_ASSERT(irq < mips_cpu_irq_base+8); - /* although we attemp to clear the IP bit in cause reigster, I think * usually it is cleared by device (irq source) */ - clear_cp0_cause( 1 << (irq - mips_cpu_irq_base + 8)); + clear_cp0_cause(1 << (irq - mips_cpu_irq_base + 8)); - /* I am not fully convinced that I should disable irq here */ + /* disable this interrupt - so that we safe proceed to the handler */ + mips_cpu_irq_disable(irq); } static void mips_cpu_irq_end(unsigned int irq) { - MIPS_ASSERT(mips_cpu_irq_base != -1); - MIPS_ASSERT(irq >= mips_cpu_irq_base); - MIPS_ASSERT(irq < mips_cpu_irq_base+8); - /* I am not fully convinced that I should enable irq here */ + mips_cpu_irq_enable(irq); } static hw_irq_controller mips_cpu_irq_controller = { Index: setup.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/setup.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- setup.c 2001/10/18 18:08:17 1.21 +++ setup.c 2001/10/22 19:16:44 1.22 @@ -188,8 +188,9 @@ else mips_cpu.cputype = CPU_R4000SC; mips_cpu.isa_level = MIPS_CPU_ISA_III; - mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU | MIPS_CPU_32FPR | - MIPS_CPU_WATCH | MIPS_CPU_VCE; + mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU | + MIPS_CPU_32FPR | MIPS_CPU_WATCH | + MIPS_CPU_VCE; mips_cpu.tlbsize = 48; break; case PRID_IMP_VR41XX: @@ -208,16 +209,20 @@ mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU; mips_cpu.tlbsize = 48; break; -/* - * This processor doesn't have an MMU, so it's not "real easy" to - * run Linux on it. It is left purely for documentation. - * case PRID_IMP_R4650: + #if 0 + case PRID_IMP_R4650: + /* + * This processor doesn't have an MMU, so it's not + * "real easy" to run Linux on it. It is left purely + * for documentation. Commented out because it shares + * it's c0_prid id number with the TX3900. + */ mips_cpu.cputype = CPU_R4650; mips_cpu.isa_level = MIPS_CPU_ISA_III; mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU; mips_cpu.tlbsize = 48; break; -*/ + #endif case PRID_IMP_TX39: mips_cpu.isa_level = MIPS_CPU_ISA_I; mips_cpu.options = MIPS_CPU_TLB; @@ -243,32 +248,36 @@ case PRID_IMP_R4700: mips_cpu.cputype = CPU_R4700; mips_cpu.isa_level = MIPS_CPU_ISA_III; - mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU | MIPS_CPU_32FPR; + mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU | + MIPS_CPU_32FPR; mips_cpu.tlbsize = 48; break; case PRID_IMP_R5000: mips_cpu.cputype = CPU_R5000; mips_cpu.isa_level = MIPS_CPU_ISA_IV; - mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU | MIPS_CPU_32FPR; + mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU | + MIPS_CPU_32FPR; mips_cpu.tlbsize = 48; break; case PRID_IMP_R5432: mips_cpu.cputype = CPU_R5432; mips_cpu.isa_level = MIPS_CPU_ISA_IV; - mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU | MIPS_CPU_32FPR; + mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU | + MIPS_CPU_32FPR; mips_cpu.tlbsize = 48; break; case PRID_IMP_R5500: mips_cpu.cputype = CPU_R5500; mips_cpu.isa_level = MIPS_CPU_ISA_IV; - mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU | MIPS_CPU_32FPR; + mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU | + MIPS_CPU_32FPR; mips_cpu.tlbsize = 48; break; case PRID_IMP_NEVADA: mips_cpu.cputype = CPU_NEVADA; mips_cpu.isa_level = MIPS_CPU_ISA_IV; - mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU | MIPS_CPU_32FPR | - MIPS_CPU_DIVEC; + mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU | + MIPS_CPU_32FPR | MIPS_CPU_DIVEC; mips_cpu.tlbsize = 48; mips_cpu.icache.ways = 2; mips_cpu.dcache.ways = 2; @@ -297,7 +306,17 @@ case PRID_IMP_RM7000: mips_cpu.cputype = CPU_RM7000; mips_cpu.isa_level = MIPS_CPU_ISA_IV; - mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU | MIPS_CPU_32FPR; + mips_cpu.options = R4K_OPTS | MIPS_CPU_FPU | + MIPS_CPU_32FPR; + /* + * Undocumented RM7000: Bit 29 in the info register of + * the RM7000 v2.0 indicates if the TLB has 48 or 64 + * entries. + * + * 29 1 => 64 entry JTLB + * 0 => 48 entry JTLB + */ + mips_cpu.tlbsize = (get_info() & (1 << 29)) ? 64 : 48; break; case PRID_IMP_R8000: mips_cpu.cputype = CPU_R8000; Index: traps.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/traps.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- traps.c 2001/10/09 21:37:55 1.19 +++ traps.c 2001/10/22 19:16:44 1.20 @@ -794,8 +794,6 @@ void __init trap_init(void) { - extern char except_vec0_nevada, except_vec0_r4000; - extern char except_vec0_r4600, except_vec0_r2300; extern char except_vec1_generic, except_vec2_generic; extern char except_vec3_generic, except_vec3_r4000; extern char except_vec4; @@ -874,13 +872,6 @@ */ if ((mips_cpu.options & MIPS_CPU_4KEX) && (mips_cpu.options & MIPS_CPU_4KTLB)) { - if (mips_cpu.cputype == CPU_NEVADA) { - memcpy((void *)KSEG0, &except_vec0_nevada, 0x80); - } else if (mips_cpu.cputype == CPU_R4600) - memcpy((void *)KSEG0, &except_vec0_r4600, 0x80); - else - memcpy((void *)KSEG0, &except_vec0_r4000, 0x80); - /* Cache error vector already set above. */ if (mips_cpu.options & MIPS_CPU_VCE) { @@ -904,7 +895,6 @@ * XXX - This should be folded in to the "cleaner" handling, * above */ - memcpy((void *)KSEG0, &except_vec0_r4000, 0x80); memcpy((void *)(KSEG0 + 0x180), &except_vec3_r4000, 0x80); save_fp_context = _save_fp_context; restore_fp_context = _restore_fp_context; @@ -941,7 +931,6 @@ case CPU_TX3927: save_fp_context = _save_fp_context; restore_fp_context = _restore_fp_context; - memcpy((void *)KSEG0, &except_vec0_r2300, 0x80); memcpy((void *)(KSEG0 + 0x80), &except_vec3_generic, 0x80); break; |
From: Paul M. <le...@us...> - 2001-10-22 19:16:47
|
Update of /cvsroot/linux-mips/linux/arch/mips64/mm In directory usw-pr-cvs1:/tmp/cvs-serv11592/arch/mips64/mm Modified Files: andes.c Log Message: Further syncing with OSS 2.4.10. Massive restructuring of TLB handling. Index: andes.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/mm/andes.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- andes.c 2001/10/11 23:05:09 1.4 +++ andes.c 2001/10/22 19:16:45 1.5 @@ -152,7 +152,7 @@ entry = get_wired(); /* Blast 'em all away. */ - while(entry < NTLB_ENTRIES) { + while (entry < NTLB_ENTRIES) { set_index(entry); tlb_write_indexed(); entry++; @@ -191,7 +191,7 @@ __save_and_cli(flags); size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT; size = (size + 1) >> 1; - if(size <= NTLB_ENTRIES_HALF) { + if (size <= NTLB_ENTRIES_HALF) { int oldpid = (get_entryhi() & 0xff); int newpid = (CPU_CONTEXT(smp_processor_id(), mm) & 0xff); @@ -242,7 +242,7 @@ set_entrylo0(0); set_entrylo1(0); set_entryhi(KSEG0); - if(idx < 0) + if (idx < 0) goto finish; tlb_write_indexed(); @@ -270,16 +270,16 @@ if (current->active_mm != vma->vm_mm) return; - __save_and_cli(flags); pid = get_entryhi() & 0xff; - if((pid != (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) & 0xff)) || + if ((pid != (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) & 0xff)) || (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) == 0)) { printk("update_mmu_cache: Wheee, bogus tlbpid mmpid=%d " "tlbpid=%d\n", (int) (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) & 0xff), pid); } + __save_and_cli(flags); address &= (PAGE_MASK << 1); set_entryhi(address | (pid)); pgdp = pgd_offset(vma->vm_mm, address); @@ -290,7 +290,7 @@ set_entrylo0(pte_val(*ptep++) >> 6); set_entrylo1(pte_val(*ptep) >> 6); set_entryhi(address | (pid)); - if(idx < 0) { + if (idx < 0) { tlb_write_random(); } else { tlb_write_indexed(); |
From: James S. <jsi...@us...> - 2001-10-22 18:20:59
|
Update of /cvsroot/linux-mips/linux/drivers/net/tulip In directory usw-pr-cvs1:/tmp/cvs-serv28805 Modified Files: eeprom.c interrupt.c tulip.h tulip_core.c Added Files: media.c Log Message: Fixed tulip driver on cobalt qube again. Index: eeprom.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/net/tulip/eeprom.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- eeprom.c 2001/07/10 00:07:16 1.1 +++ eeprom.c 2001/10/22 18:20:56 1.2 @@ -180,10 +180,10 @@ for (i = 0; i < count; i++) { unsigned char media_block = *p++; int media_code = media_block & MEDIA_MASK; - if (media_code & 0x40) + if (media_block & 0x40) p += 6; printk(KERN_INFO "%s: 21041 media #%d, %s.\n", - dev->name, media_code & 15, medianame[media_code & 15]); + dev->name, media_code, medianame[media_code]); } } else { unsigned char *p = (void *)ee_data + ee_data[27]; Index: interrupt.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/net/tulip/interrupt.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- interrupt.c 2001/08/25 02:19:28 1.3 +++ interrupt.c 2001/10/22 18:20:56 1.4 @@ -74,7 +74,7 @@ struct sk_buff *skb; dma_addr_t mapping; - skb = tp->rx_buffers[entry].skb = dev_alloc_skb(PKT_BUF_SZ); + skb = tp->rx_buffers[entry].skb = dev_alloc_skb(PKT_BUF_SZ + PKT_BUF_FUDGE); if (skb == NULL) break; @@ -309,7 +309,7 @@ long ioaddr = dev->base_addr; int csr5; int entry; - int missed; + int csr8; int rx = 0; int tx = 0; int oi = 0; @@ -442,7 +442,6 @@ } } if (csr5 & RxDied) { /* Missed a Rx frame. */ - tp->stats.rx_missed_errors += inl(ioaddr + CSR8) & 0xffff; #ifdef CONFIG_NET_HW_FLOWCONTROL if (tp->fc_bit && !test_bit(tp->fc_bit, &netdev_fc_xoff)) { tp->stats.rx_errors++; @@ -556,9 +555,8 @@ } } - if ((missed = inl(ioaddr + CSR8) & 0x1ffff)) { - tp->stats.rx_dropped += missed & 0x10000 ? 0x10000 : missed; - } + csr8 = inl(ioaddr + CSR8); + tp->stats.rx_dropped += (csr8 & 0x1ffff) + ((csr8 >> 17) & 0xfff); if (tulip_debug > 4) printk(KERN_DEBUG "%s: exiting interrupt, csr5=%#4.4x.\n", Index: tulip.h =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/net/tulip/tulip.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- tulip.h 2001/08/25 02:19:28 1.6 +++ tulip.h 2001/10/22 18:20:56 1.7 @@ -29,7 +29,7 @@ /* undefine, or define to various debugging levels (>4 == obscene levels) */ -#define TULIP_DEBUG 1 +#define TULIP_DEBUG 1 /* undefine USE_IO_OPS for MMIO, define for PIO */ #ifdef CONFIG_TULIP_MMIO Index: tulip_core.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/net/tulip/tulip_core.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- tulip_core.c 2001/08/25 06:24:45 1.5 +++ tulip_core.c 2001/10/22 18:20:56 1.6 @@ -15,8 +15,8 @@ */ #define DRV_NAME "tulip" -#define DRV_VERSION "0.9.15-pre6" -#define DRV_RELDATE "July 2, 2001" +#define DRV_VERSION "0.9.15-pre7" +#define DRV_RELDATE "Oct 2, 2001" #include <linux/config.h> #include <linux/module.h> @@ -66,7 +66,7 @@ /* Set the copy breakpoint for the copy-only-tiny-buffer Rx structure. */ #if defined(__alpha__) || defined(__arm__) || defined(__hppa__) \ || defined(__sparc_) || defined(__ia64__) \ - || defined(__sh__) || defined(__mips__) + || defined(__sh__) static int rx_copybreak = 1518; #elif defined(__mips__) static int rx_copybreak = 1536; @@ -87,7 +87,7 @@ ToDo: Non-Intel setting could be better. */ -#if defined(__alpha__) || defined(__ia64__) +#if defined(__alpha__) || defined(__ia64__) || defined(__x86_64__) static int csr0 = 0x01A00000 | 0xE000; #elif defined(__i386__) || defined(__powerpc__) static int csr0 = 0x01A00000 | 0x8000; @@ -113,6 +113,7 @@ MODULE_AUTHOR("The Linux Kernel Team"); MODULE_DESCRIPTION("Digital 21*4* Tulip ethernet driver"); +MODULE_LICENSE("GPL"); MODULE_PARM(tulip_debug, "i"); MODULE_PARM(max_interrupt_work, "i"); MODULE_PARM(rx_copybreak, "i"); @@ -686,7 +687,7 @@ /* Note the receive buffer must be longword aligned. dev_alloc_skb() provides 16 byte alignment. But do *not* use skb_reserve() to align the IP header! */ - struct sk_buff *skb = dev_alloc_skb(PKT_BUF_SZ); + struct sk_buff *skb = dev_alloc_skb(PKT_BUF_SZ + PKT_BUF_FUDGE); tp->rx_buffers[i].skb = skb; if (skb == NULL) break; @@ -777,7 +778,7 @@ /* if we were using Transmit Automatic Polling, we would need a * wmb() here. */ #ifdef CONFIG_COBALT_27 - dma_cache_wback_inv((unsigned long)skb->data, skb->len); + dma_cache_wback_inv((unsigned long)skb->data, skb->len); #endif tp->tx_ring[entry].status = cpu_to_le32(DescOwned); wmb(); @@ -1318,7 +1319,7 @@ if (tulip_debug > 3) printk(KERN_DEBUG "%s: tulip_mwi_config()\n", pdev->slot_name); - tp->csr0 = 0; + tp->csr0 = csr0 = 0; /* check for sane cache line size. from acenic.c. */ pci_read_config_byte(pdev, PCI_CACHE_LINE_SIZE, &cache); @@ -1454,7 +1455,7 @@ */ #ifdef CONFIG_COBALT_27 - force_csr0 = 1; + force_csr0 = 1; #endif /* Intel Saturn. Switch to 8 long words burst, 8 long word cache aligned Aries might need this too. The Saturn errata are not pretty reading but @@ -1534,8 +1535,6 @@ goto err_out_free_res; #endif - pci_set_master(pdev); - pci_read_config_byte (pdev, PCI_REVISION_ID, &chip_rev); /* @@ -1577,10 +1576,15 @@ #ifdef CONFIG_TULIP_MWI if (!force_csr0 && (tp->flags & HAS_PCI_MWI)) tulip_mwi_config (pdev, dev); +#else + /* MWI is broken for DC21143 rev 65... */ + if (chip_idx == DC21143 && chip_rev == 65) + tp->csr0 &= ~MWI; #endif /* Stop the chip's Tx and Rx processes. */ tulip_stop_rxtx(tp); + /* Clear the missed-packet counter. */ inl(ioaddr + CSR8); |
Update of /cvsroot/linux-mips/linux/drivers/net/tulip In directory usw-pr-cvs1:/tmp/cvs-serv7865 Removed Files: Tag: current 21142.o eeprom.o interrupt.o media.o pnic.o timer.o tulip.o tulip_core.o Log Message: Oops. Didn't mean to commit .o files. --- 21142.o DELETED --- --- eeprom.o DELETED --- --- interrupt.o DELETED --- --- media.o DELETED --- --- pnic.o DELETED --- --- timer.o DELETED --- --- tulip.o DELETED --- --- tulip_core.o DELETED --- |
From: James S. <jsi...@us...> - 2001-10-19 22:56:03
|
Update of /cvsroot/linux-mips/linux/drivers/net/tulip In directory usw-pr-cvs1:/tmp/cvs-serv7439 Modified Files: Tag: current tulip.h Log Message: Removed annoying over debugging. Index: tulip.h =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/net/tulip/tulip.h,v retrieving revision 1.3 retrieving revision 1.3.2.1 diff -u -d -r1.3 -r1.3.2.1 --- tulip.h 2001/08/07 22:48:09 1.3 +++ tulip.h 2001/10/19 22:56:01 1.3.2.1 @@ -29,7 +29,7 @@ /* undefine, or define to various debugging levels (>4 == obscene levels) */ -#define TULIP_DEBUG 9 +#define TULIP_DEBUG 1 /* undefine USE_IO_OPS for MMIO, define for PIO */ #ifdef CONFIG_TULIP_MMIO |
From: James S. <jsi...@us...> - 2001-10-19 22:55:14
|
Update of /cvsroot/linux-mips/linux/drivers/net/tulip In directory usw-pr-cvs1:/tmp/cvs-serv7255 Added Files: Tag: current 21142.c 21142.o ChangeLog Makefile eeprom.o interrupt.o media.o pnic.c pnic.o timer.c timer.o tulip.o tulip_core.o Log Message: Backed it to a earlier version of the driver that worked. I will hunt down the bug and fix it. --- NEW FILE: 21142.c --- /* drivers/net/tulip/21142.c Maintained by Jeff Garzik <jg...@ma...> Copyright 2000,2001 The Linux Kernel Team Written/copyright 1994-2001 by Donald Becker. This software may be used and distributed according to the terms of the GNU General Public License, incorporated herein by reference. Please refer to Documentation/DocBook/tulip.{pdf,ps,html} for more information on this driver, or visit the project Web page at http://sourceforge.net/projects/tulip/ */ #include "tulip.h" #include <linux/pci.h> #include <linux/delay.h> static u16 t21142_csr13[] = { 0x0001, 0x0009, 0x0009, 0x0000, 0x0001, }; u16 t21142_csr14[] = { 0xFFFF, 0x0705, 0x0705, 0x0000, 0x7F3D, }; static u16 t21142_csr15[] = { 0x0008, 0x0006, 0x000E, 0x0008, 0x0008, }; /* Handle the 21143 uniquely: do autoselect with NWay, not the EEPROM list of available transceivers. */ void t21142_timer(unsigned long data) { struct net_device *dev = (struct net_device *)data; struct tulip_private *tp = (struct tulip_private *)dev->priv; long ioaddr = dev->base_addr; int csr12 = inl(ioaddr + CSR12); int next_tick = 60*HZ; int new_csr6 = 0; if (tulip_debug > 2) printk(KERN_INFO"%s: 21143 negotiation status %8.8x, %s.\n", dev->name, csr12, medianame[dev->if_port]); if (tulip_media_cap[dev->if_port] & MediaIsMII) { tulip_check_duplex(dev); next_tick = 60*HZ; } else if (tp->nwayset) { /* Don't screw up a negotiated session! */ if (tulip_debug > 1) printk(KERN_INFO"%s: Using NWay-set %s media, csr12 %8.8x.\n", dev->name, medianame[dev->if_port], csr12); } else if (tp->medialock) { ; } else if (dev->if_port == 3) { if (csr12 & 2) { /* No 100mbps link beat, revert to 10mbps. */ if (tulip_debug > 1) printk(KERN_INFO"%s: No 21143 100baseTx link beat, %8.8x, " "trying NWay.\n", dev->name, csr12); t21142_start_nway(dev); next_tick = 3*HZ; } } else if ((csr12 & 0x7000) != 0x5000) { /* Negotiation failed. Search media types. */ if (tulip_debug > 1) printk(KERN_INFO"%s: 21143 negotiation failed, status %8.8x.\n", dev->name, csr12); if (!(csr12 & 4)) { /* 10mbps link beat good. */ new_csr6 = 0x82420000; dev->if_port = 0; outl(0, ioaddr + CSR13); outl(0x0003FFFF, ioaddr + CSR14); outw(t21142_csr15[dev->if_port], ioaddr + CSR15); outl(t21142_csr13[dev->if_port], ioaddr + CSR13); } else { /* Select 100mbps port to check for link beat. */ new_csr6 = 0x83860000; dev->if_port = 3; outl(0, ioaddr + CSR13); outl(0x0003FF7F, ioaddr + CSR14); outw(8, ioaddr + CSR15); outl(1, ioaddr + CSR13); } if (tulip_debug > 1) printk(KERN_INFO"%s: Testing new 21143 media %s.\n", dev->name, medianame[dev->if_port]); if (new_csr6 != (tp->csr6 & ~0x00D5)) { tp->csr6 &= 0x00D5; tp->csr6 |= new_csr6; outl(0x0301, ioaddr + CSR12); tulip_restart_rxtx(tp); } next_tick = 3*HZ; } /* mod_timer synchronizes us with potential add_timer calls * from interrupts. */ mod_timer(&tp->timer, RUN_AT(next_tick)); } void t21142_start_nway(struct net_device *dev) { struct tulip_private *tp = (struct tulip_private *)dev->priv; long ioaddr = dev->base_addr; int csr14 = ((tp->sym_advertise & 0x0780) << 9) | ((tp->sym_advertise & 0x0020) << 1) | 0xffbf; dev->if_port = 0; tp->nway = tp->mediasense = 1; tp->nwayset = tp->lpar = 0; if (tp->chip_id == PNIC2) { tp->csr6 = 0x01000000 | (tp->sym_advertise & 0x0040 ? FullDuplex : 0); return; } if (tulip_debug > 1) printk(KERN_DEBUG "%s: Restarting 21143 autonegotiation, csr14=%8.8x.\n", dev->name, csr14); outl(0x0001, ioaddr + CSR13); udelay(100); outl(csr14, ioaddr + CSR14); tp->csr6 = 0x82420000 | (tp->sym_advertise & 0x0040 ? FullDuplex : 0); outl(tp->csr6, ioaddr + CSR6); if (tp->mtable && tp->mtable->csr15dir) { outl(tp->mtable->csr15dir, ioaddr + CSR15); outl(tp->mtable->csr15val, ioaddr + CSR15); } else outw(0x0008, ioaddr + CSR15); outl(0x1301, ioaddr + CSR12); /* Trigger NWAY. */ } void pnic2_lnk_change(struct net_device *dev, int csr5) { struct tulip_private *tp = (struct tulip_private *)dev->priv; long ioaddr = dev->base_addr; int csr12 = inl(ioaddr + CSR12); if (tulip_debug > 1) printk(KERN_INFO"%s: PNIC-2 link status changed, CSR5/12/14 %8.8x" " %8.8x, %8.8x.\n", dev->name, csr12, csr5, (int)inl(ioaddr + CSR14)); dev->if_port = 5; tp->lpar = csr12 >> 16; tp->nwayset = 1; tp->csr6 = 0x01000000 | (tp->csr6 & 0xffff); outl(tp->csr6, ioaddr + CSR6); } void t21142_lnk_change(struct net_device *dev, int csr5) { struct tulip_private *tp = (struct tulip_private *)dev->priv; long ioaddr = dev->base_addr; int csr12 = inl(ioaddr + CSR12); if (tulip_debug > 1) printk(KERN_INFO"%s: 21143 link status interrupt %8.8x, CSR5 %x, " "%8.8x.\n", dev->name, csr12, csr5, inl(ioaddr + CSR14)); /* If NWay finished and we have a negotiated partner capability. */ if (tp->nway && !tp->nwayset && (csr12 & 0x7000) == 0x5000) { int setup_done = 0; int negotiated = tp->sym_advertise & (csr12 >> 16); tp->lpar = csr12 >> 16; tp->nwayset = 1; if (negotiated & 0x0100) dev->if_port = 5; else if (negotiated & 0x0080) dev->if_port = 3; else if (negotiated & 0x0040) dev->if_port = 4; else if (negotiated & 0x0020) dev->if_port = 0; else { tp->nwayset = 0; if ((csr12 & 2) == 0 && (tp->sym_advertise & 0x0180)) dev->if_port = 3; } tp->full_duplex = (tulip_media_cap[dev->if_port] & MediaAlwaysFD) ? 1:0; if (tulip_debug > 1) { if (tp->nwayset) printk(KERN_INFO "%s: Switching to %s based on link " "negotiation %4.4x & %4.4x = %4.4x.\n", dev->name, medianame[dev->if_port], tp->sym_advertise, tp->lpar, negotiated); else printk(KERN_INFO "%s: Autonegotiation failed, using %s," " link beat status %4.4x.\n", dev->name, medianame[dev->if_port], csr12); } if (tp->mtable) { int i; for (i = 0; i < tp->mtable->leafcount; i++) if (tp->mtable->mleaf[i].media == dev->if_port) { tp->cur_index = i; tulip_select_media(dev, 1); setup_done = 1; break; } } if ( ! setup_done) { tp->csr6 = (dev->if_port & 1 ? 0x838E0000 : 0x82420000) | (tp->csr6 & 0x20ff); if (tp->full_duplex) tp->csr6 |= 0x0200; outl(1, ioaddr + CSR13); } #if 0 /* Restart shouldn't be needed. */ outl(tp->csr6 | RxOn, ioaddr + CSR6); if (tulip_debug > 2) printk(KERN_DEBUG "%s: Restarting Tx and Rx, CSR5 is %8.8x.\n", dev->name, inl(ioaddr + CSR5)); #endif tulip_start_rxtx(tp); if (tulip_debug > 2) printk(KERN_DEBUG "%s: Setting CSR6 %8.8x/%x CSR12 %8.8x.\n", dev->name, tp->csr6, inl(ioaddr + CSR6), inl(ioaddr + CSR12)); } else if ((tp->nwayset && (csr5 & 0x08000000) && (dev->if_port == 3 || dev->if_port == 5) && (csr12 & 2) == 2) || (tp->nway && (csr5 & (TPLnkFail)))) { /* Link blew? Maybe restart NWay. */ del_timer_sync(&tp->timer); t21142_start_nway(dev); tp->timer.expires = RUN_AT(3*HZ); add_timer(&tp->timer); } else if (dev->if_port == 3 || dev->if_port == 5) { if (tulip_debug > 1) printk(KERN_INFO"%s: 21143 %s link beat %s.\n", dev->name, medianame[dev->if_port], (csr12 & 2) ? "failed" : "good"); if ((csr12 & 2) && ! tp->medialock) { del_timer_sync(&tp->timer); t21142_start_nway(dev); tp->timer.expires = RUN_AT(3*HZ); add_timer(&tp->timer); } else if (dev->if_port == 5) outl(inl(ioaddr + CSR14) & ~0x080, ioaddr + CSR14); } else if (dev->if_port == 0 || dev->if_port == 4) { if ((csr12 & 4) == 0) printk(KERN_INFO"%s: 21143 10baseT link beat good.\n", dev->name); } else if (!(csr12 & 4)) { /* 10mbps link beat good. */ if (tulip_debug) printk(KERN_INFO"%s: 21143 10mbps sensed media.\n", dev->name); dev->if_port = 0; } else if (tp->nwayset) { if (tulip_debug) printk(KERN_INFO"%s: 21143 using NWay-set %s, csr6 %8.8x.\n", dev->name, medianame[dev->if_port], tp->csr6); } else { /* 100mbps link beat good. */ if (tulip_debug) printk(KERN_INFO"%s: 21143 100baseTx sensed media.\n", dev->name); dev->if_port = 3; tp->csr6 = 0x838E0000 | (tp->csr6 & 0x20ff); outl(0x0003FF7F, ioaddr + CSR14); outl(0x0301, ioaddr + CSR12); tulip_restart_rxtx(tp); } } --- NEW FILE: 21142.o --- ELF --- NEW FILE: ChangeLog --- 2001-07-17 Erik A. Hendriks <hen...@la...> * 21142.c: Merge fix from tulip.c 0.92w which prevents the overwriting of csr6 bits we want to preserve. 2001-07-10 Jeff Golds <jg...@re...> * tulip_core.c: Fix two comments 2001-07-06 Stephen Degler <sd...@de...> * media.c: The media selection process at the end of NWAY is busted because for the case of MII/SYM it needs to be: csr13 <- 0 csr14 <- 0 csr6 <- the value calculated is okay. In the other media cases csr14 is computed by t21142_csr14val[dev->if_port], which seems ok. The value of zero as opposed to 3FFFFF comes straight from appendix D of the 21143 data book, and it makes logical sense because you're bypassing all the SIA interface when you usa MII or SYM (see figure 1-1 in the data book if your're visually oriented) 2001-07-03 Jeff Golds <jg...@re...> * tulip_core.c (tulip_clean_tx_ring): Clear status for in-progress Tx's, and count Tx errors for all packets being released. 2001-06-16 Jeff Garzik <jg...@ma...> * tulip.h, tulip_core.c: Integrate MMIO support from devel branch, but default it to off for stable kernel and driver series. 2001-06-16 Jeff Garzik <jg...@ma...> * tulip_core.c (tulip_init_one): Free descriptor rings on error. 2001-06-16 Jeff Garzik <jg...@ma...> * tulip_core.c (tulip_mwi_config, tulip_init_one): Large update to csr0 bus configuration code. This is not stable yet, so it is only conditionally enabled, via CONFIG_TULIP_MWI. 2001-06-16 Jeff Garzik <jg...@ma...> * tulip_core.c: Initialize timer in tulip_init_one and tulip_down, not in tulip_up. 2001-06-14 Jeff Garzik <jg...@ma...> * tulip_core.c: - Update tulip_suspend, tulip_resume for new PCI PM API. - Surround suspend/resume code with CONFIG_PM. 2001-06-12 Jeff Golds <jg...@re...> * tulip_core.c: - Reset sw ring ptrs in tulip_up. Fixes PM resume case. - Clean rx and tx rings on device down. 2001-06-05 David Miller <da...@re...> * tulip_core (set_rx_mode): Do not use set_bit on an integer variable. Also fix endianness issue. 2001-06-04 Jeff Garzik <jg...@ma...> * interrupt.c: Simplify rx processing when CONFIG_NET_HW_FLOWCONTROL is active, and in the process fix a bug where flow control and low load caused rx not to be acknowledged properly. 2001-06-01 Jeff Garzik <jg...@ma...> * tulip.h: - Remove tulip_outl_csr helper, redundant. - Add tulip_start_rxtx inline helper. - tulip_stop_rxtx helper: Add synchronization. Always use current csr6 value, instead of tp->csr6 value or value passed as arg. - tulip_restart_rxtx helper: Add synchronization. Always use tp->csr6 for desired mode, not value passed as arg. - New RxOn, TxOn, RxTx constants for csr6 modes. - Remove now-redundant constants csr6_st, csr6_sr. * 21142.c, interrupt.c, media.c, pnic.c, tulip_core.c: Update for above rxtx helper changes. * interrupt.c: - whitespace cleanup around #ifdef CONFIG_NET_HW_FLOWCONTROL, convert tabs to spaces. - Move tp->stats.rx_missed_errors update outside the ifdef. 2001-05-18 Jeff Garzik <jg...@ma...> * tulip_core.c: Added ethtool support. ETHTOOL_GDRVINFO ioctl only, for now. 2001-05-14 Robert Olsson <Rob...@da...> * Restored HW_FLOWCONTROL from Linux 2.1 series tulip (ANK) plus Jamal's NETIF_RX_* feedback control. 2001-05-14 Robert Olsson <Rob...@da...> * Added support for 21143's Interrupt Mitigation. Jamal original instigator. 2001-05-14 Robert Olsson <Rob...@da...> * tulip_refill_rx prototype added to tulip.h 2001-05-13 Jeff Garzik <jg...@ma...> * tulip_core.c: Remove HAS_PCI_MWI flag from Comet, untested. 2001-05-12 Jeff Garzik <jg...@ma...> * tulip_core.c, tulip.h: Remove Conexant PCI id, no chip docs are available to fix problems with support. 2001-05-12 Jeff Garzik <jg...@ma...> * tulip_core.c (tulip_init_one): Do not call unregister_netdev in error cleanup. Remnant of old usage of init_etherdev. 2001-05-12 Jeff Garzik <jg...@ma...> * media.c (tulip_find_mii): Simple write the updated BMCR twice, as it seems the best thing to do for both broken and sane chips. If the mii_advert value, as read from MII_ADVERTISE, is zero, then generate a value we should advertise from the capability bits in BMSR. Fill in tp->advertising for all cases. Just to be safe, clear all unwanted bits. 2001-05-12 Jeff Garzik <jg...@ma...> * tulip_core.c (private_ioctl): Fill in tp->advertising when advertising value is changed by the user. 2001-05-12 Jeff Garzik <jg...@ma...> * tulip_core.c: Mark Comet chips as needed the updated MWI csr0 configuration. 2001-05-12 Jeff Garzik <jg...@ma...> * media.c, tulip_core.c: Move MII scan into from inlined inside tulip_init_one to new function tulip_find_mii in media.c. 2001-05-12 Jeff Garzik <jg...@ma...> * media.c (tulip_check_duplex): Only restart Rx/Tx engines if they are active (and csr6 changes) 2001-05-12 Jeff Garzik <jg...@ma...> * tulip_core.c (tulip_mwi_config): Clamp values read from PCI cache line size register to values acceptable to tulip chip. Done for safety and -almost- certainly unneeded. 2001-05-11 Jeff Garzik <jg...@ma...> * tulip_core.c (tulip_init_one): Instead of unconditionally enabling autonegotiation, disable autonegotiation if not using the default port. Further, flip the nway bit immediately, and then update the speed/duplex in a separate MII transaction. We do this because some boards require that nway be disabled separately, before media selection is forced. TODO: Investigate if we can simply write the same value to BMCR twice, to avoid setting unnecessarily changing phy settings. 2001-05-11 Jeff Garzik <jg...@ma...> * tulip.h, tulip_core.c: If HAS_PCI_MWI is set for a given chip, adjust the csr0 values not according to provided values but according to system cache line size. Currently cache alignment is matched as closely to cache line size as possible. Currently programmable burst limit is set (ie. never unlimited), and always equal to cache alignment and system cache size. Currently MWI bit is set only if the MWI bit is present in the PCI command register. 2001-05-11 Jeff Garzik <jg...@ma...> * media.c (tulip_select_media): For media types 1 and 3, only use the provided eeprom advertising value if it is non-zero. (tulip_check_duplex): Do not exit ASAP if full_duplex_lock is set. This ensures that the csr6 value is written if an update is needed. 2001-05-10 Jeff Garzik <jg...@ma...> Merge PNIC-II-specific stuff from Becker's tulip.c: * tulip.h, 21142.c (pnic2_lnk_change): new function * tulip_core.c (tulip_init_one): use it * tulip_core.c (tulip_tx_timeout): Add specific debugging for PNIC2. 2001-05-10 Jeff Garzik <jg...@ma...> * tulip_core.c (tulip_init_one): Print out tulip%d instead of PCI device number, for consistency. 2001-05-10 Jeff Garzik <jg...@ma...> * Merge changes from Becker's tulip.c: Fix bugs in ioctl. Fix several bugs by distinguishing between MII and SYM advertising values. Set CSR14 autonegotiation bit for media types 2 and 4, where the SIA CSR setup values are not provided. 2001-05-10 Jeff Garzik <jg...@ma...> * media.c (tulip_select_media): Only update MII advertising value if startup arg < 2. * tulip.h: Do not enable CSR13/14/15 autoconfiguration for 21041. * tulip_core.c: 21041: add specific code for reset, and do not set CAC bit When resetting media, for media table type 11 media, pass value 2 as 'startup' arg to select_media, to avoid updating MII advertising value. 2001-05-10 Jeff Garzik <jg...@ma...> * pnic.c (pnic_check_duplex): remove pnic.c (pnic_lnk_change, pnic_timer): use tulip_check_duplex not pnic_check_duplex. * media.c (tulip_check_duplex): Clean up to use symbolic names instead of numeric constants. Set TxThreshold mode as necessary as well as clearing it. Update csr6 if csr6 changes, not simply if duplex changes. (found by Manfred Spraul) 2001-05-10 Jeff Garzik <jg...@ma...> * 21142.c, eeprom.c, tulip.h, tulip_core.c: Remove DPRINTK as another, better method of debug message printing is available. 2001-05-09 Jeff Garzik <jg...@ma...> * 21142.c (t21142_lnk_change): Pass arg startup==1 to tulip_select_media, in order to force csr13 to be zeroed out prior to going to full duplex mode. Fixes autonegotiation on a quad-port Znyx card. (from Stephen Dengler) 2001-05-09 Russell King <rm...@ar...> * interrupt.c: Better PCI bus error reporting. 2001-04-03 Jeff Garzik <jg...@ma...> * tulip_core.c: Now that dev->name is only available late in the probe, insert a hack to replace a not-evaluated "eth%d" string with an evaluated "tulip%d" string. Also, remove obvious comment and an indentation cleanup. 2001-04-03 Jeff Garzik <jg...@ma...> * tulip_core.c: If we are a module, always print out the version string. If we are built into the kernel, only print the version string if at least one tulip is detected. 2001-04-03 Jeff Garzik <jg...@ma...> Merged from Becker's tulip.c 0.92t: * tulip_core.c: Add support for Conexant LANfinity. 2001-04-03 Jeff Garzik <jg...@ma...> * tulip_core.c: Only suspend/resume if the interface is up and running. Use alloc_etherdev and pci_request_regions. Spelling fix. 2001-04-03 Jeff Garzik <jg...@ma...> * tulip_core.c: Remove code that existed when one or more of the following defines existed. These defines were never used by normal users in practice: TULIP_FULL_DUPLEX, TULIP_DEFAULT_MEDIA, and TULIP_NO_MEDIA_SWITCH. * tulip.h, eeprom.c: Move EE_* constants from tulip.h to eeprom.c. * tulip.h, media.c: Move MDIO_* constants from tulip.h to media.c. * media.c: Add barrier() to mdio_read/write's PNIC status check loops. 2001-04-03 Jeff Garzik <jg...@ma...> Merged from Becker's tulip.c 0.92t: * tulip.h: Add MEDIA_MASK constant for bounding medianame[] array lookups. * eeprom.c, media.c, timer.c, tulip_core.c: Use it. * media.c, tulip_core.c: mdio_{read,write} cleanup. Since this is called [pretty much] directly from ioctl, we mask read/write arguments to limit the values passed. Added mii_lock. Added comet_miireg2offset and better Comet-specific mdio_read/write code. Pay closer attention to the bits we set in ioctl. Remove spinlocks from ioctl, they are in mdio_read/write now. Use mask to limit phy number in tulip_init_one's MII scan. 2001-04-03 Jeff Garzik <jg...@ma...> Merged from Becker's tulip.c 0.92t: * 21142.c, tulip_core.c: PNIC2 MAC address and NWay fixes. * tulip.h: Add FullDuplex constant, used in above change. 2001-04-03 Jeff Garzik <jg...@ma...> * timer.c: Do not call netif_carrier_{on,off}, it is not used in the main tree. Leave code in, disabled, as markers for future carrier notification. 2001-04-03 Jeff Garzik <jg...@ma...> Merged from Becker's tulip.c 0.92t, except for the tulip.h whitespace cleanup: * interrupt.c: If Rx stops, make sure to update the multicast filter before restarting. * tulip.h: Add COMET_MAC_ADDR feature flag, clean up flags. Add Accept* Rx mode bit constants. Add mc_filter[] to driver private struct. * tulip_core.c: Add new Comet PCI id 0x1113:0x9511. Add COMET_MAC_ADDR feature flag to comet entry in board info array. Prefer to test COMET_MAC_ADDR flag to testing chip_id for COMET, when dealing with the Comet's MAC address. Enable Tx underrun recovery for Comet chips. Use new Accept* constants in set_rx_mode. Prefer COMET_MAC_ADDR flag test to chip_id test in set_rx_mode. Store built mc_filter for later use in intr handler by Comets. 2001-04-03 Jeff Garzik <jg...@ma...> * tulip_core.c: Use tp->cur_tx when building the setup frame, instead of assuming that the setup frame is always built in slot zero. This case is hit during PM resume. 2001-04-03 Jeff Garzik <jg...@ma...> * *.c: Update file headers (copyright, urls, etc.) * Makefile: re-order to that chip-specific modules on own line * eeprom.c: BSS/zero-init cleanup (Andrey Panin) * tulip_core.c: merge medianame[] update from tulip.c. Additional arch-specific rx_copybreak, csr0 values. (various) 2001-02-20 Jeff Garzik <jg...@ma...> * media.c (tulip_select_media): No need to initialize new_csr6, all cases initialize it properly. 2001-02-18 Manfred Spraul <ma...@co...> * interrupt.c (tulip_refill_rx): Make public. If PNIC chip stops due to lack of Rx buffers, restart it. (tulip_interrupt): PNIC doesn't have a h/w timer, emulate with software timers. * pnic.c (pnic_check_duplex): New function, PNIC-specific version of tulip_check_duplex. (pnic_lnk_change): Call pnic_check_duplex. If we use an external MII, then we mustn't use the internal negotiation. (pnic_timer): Support Rx refilling on work overflow in interrupt handler, as PNIC doesn't support a h/w timer. * tulip_core.c (tulip_tbl[]): Modify default csr6 2001-02-11 Jeff Garzik <jg...@ma...> * tulip_core.c (tulip_init_one): Call pci_enable_device to ensure wakeup/resource assignment before checking those values. (tulip_init_one): Replace PCI ids with constants from pci_id.h. (tulip_suspend, tulip_resume, tulip_remove_one): Call pci_power_on/off (commented out for now). 2001-02-10 Jeff Garzik <jg...@ma...> * tulip.h: Add CFDD_xxx bits for Tulip power management * tulip_core.c (tulip_set_power_state): New function, manipulating Tulip chip power state where supported. (tulip_up, tulip_down, tulip_init_one): Use it. 2001-02-10 Jeff Garzik <jg...@ma...> * tulip_core.c (tulip_tx_timeout): Call netif_wake_queue to ensure the next Tx is always sent to us. 2001-01-27 Jeff Garzik <jg...@ma...> * tulip_core.c (tulip_remove_one): Fix mem leak by freeing tp->media_tbl. Add check for !dev, reformat code appropriately. 2001-01-27 Jeff Garzik <jg...@ma...> * tulip_tbl[]: Comment all entries to make order and chip_id relationship more clear. * tulip_pci_tbl[]: Add new Accton PCI id (COMET chipset). 2001-01-16 Jeff Garzik <jg...@ma...> * tulip_core.c: static vars no longer explicitly initialized to zero. * eeprom.c (tulip_read_eeprom): Make sure to delay between EE_ENB and EE_ENB|EE_SHIFT_CLK. Merged from becker tulip.c. 2001-01-05 Peter De Schrijver <p2...@mi...> * eeprom.c (tulip_parse_eeprom): Interpret a bit more of 21142 extended format type 3 info blocks in a tulip SROM. 2001-01-03 Matti Aarnio <mat...@zm...> * media.c (tulip_select_media): Support media types 5 and 6 2001-??-?? ?? * tulip_core.c: Add comment about LanMedia needing a different driver. Enable workarounds for early PCI chipsets. Add IA64 csr0 support, update HPPA csr0 support. 2000-12-17 Alan Cox <al...@re...> * eeprom.c, timer.c, tulip.h, tulip_core.c: Merge support for the Davicom's quirks into the main tulip. Patch by Tobias Ringstrom 2000-11-08 Jim Studt <ji...@fe...> * eeprom.c (tulip_parse_eeprom): Check array bounds for medianame[] and block_name[] arrays to avoid oops due to bad values returned from hardware. 2000-11-02 Jeff Garzik <jg...@ma...> * tulip_core.c (set_rx_mode): This is synchronized via dev->xmit_lock, so only the queueing of the setup frame needs to be locked, against tulip_interrupt. 2000-11-02 Alexey Kuznetov <ku...@ms...> * timer.c (tulip_timer): Call netif_carrier_{on,off} to report link state to the rest of the kernel, and userspace. * interrupt.c (tulip_interrupt): Remove tx_full. * tulip.h: Likewise. * tulip_core.c (tulip_init_ring, tulip_start_xmit, set_rx_mode): Likewise. 2000-10-18 Jeff Garzik <jg...@ma...> * tulip_core.c: (tulip_init_one) Print out ethernet interface on error. Print out a message when pci_enable_device fails. Handle DMA alloc failure. 2000-10-18 Jeff Garzik <jg...@ma...> * Makefile: New file. * tulip_core.c (tulip_init_one): Correct error messages on PIO/MMIO region reserve failure. (tulip_init_one) Add new check to ensure that PIO region is sufficient for our needs. --- NEW FILE: Makefile --- # # Makefile for the Tulip ethernet driver # # Note! Dependencies are done automagically by 'make dep', which also # removes any old dependencies. DON'T put your own dependencies here # unless it's something special (ie not a .c file). # # Note 2! The CFLAGS definitions are now in the main makefile... O_TARGET := tulip.o obj-y := eeprom.o interrupt.o media.o \ timer.o tulip_core.o \ 21142.o pnic.o obj-m := $(O_TARGET) include $(TOPDIR)/Rules.make --- NEW FILE: eeprom.o --- ELF --- NEW FILE: interrupt.o --- ELF --- NEW FILE: media.o --- ELF $À <! ! <! $ --- NEW FILE: pnic.c --- /* drivers/net/tulip/pnic.c Maintained by Jeff Garzik <jg...@ma...> Copyright 2000,2001 The Linux Kernel Team Written/copyright 1994-2001 by Donald Becker. This software may be used and distributed according to the terms of the GNU General Public License, incorporated herein by reference. Please refer to Documentation/DocBook/tulip.{pdf,ps,html} for more information on this driver, or visit the project Web page at http://sourceforge.net/projects/tulip/ */ #include <linux/kernel.h> #include "tulip.h" void pnic_do_nway(struct net_device *dev) { struct tulip_private *tp = (struct tulip_private *)dev->priv; long ioaddr = dev->base_addr; u32 phy_reg = inl(ioaddr + 0xB8); u32 new_csr6 = tp->csr6 & ~0x40C40200; if (phy_reg & 0x78000000) { /* Ignore baseT4 */ if (phy_reg & 0x20000000) dev->if_port = 5; else if (phy_reg & 0x40000000) dev->if_port = 3; else if (phy_reg & 0x10000000) dev->if_port = 4; else if (phy_reg & 0x08000000) dev->if_port = 0; tp->nwayset = 1; new_csr6 = (dev->if_port & 1) ? 0x01860000 : 0x00420000; outl(0x32 | (dev->if_port & 1), ioaddr + CSR12); if (dev->if_port & 1) outl(0x1F868, ioaddr + 0xB8); if (phy_reg & 0x30000000) { tp->full_duplex = 1; new_csr6 |= 0x00000200; } if (tulip_debug > 1) printk(KERN_DEBUG "%s: PNIC autonegotiated status %8.8x, %s.\n", dev->name, phy_reg, medianame[dev->if_port]); if (tp->csr6 != new_csr6) { tp->csr6 = new_csr6; /* Restart Tx */ tulip_restart_rxtx(tp); dev->trans_start = jiffies; } } } void pnic_lnk_change(struct net_device *dev, int csr5) { struct tulip_private *tp = (struct tulip_private *)dev->priv; long ioaddr = dev->base_addr; int phy_reg = inl(ioaddr + 0xB8); if (tulip_debug > 1) printk(KERN_DEBUG "%s: PNIC link changed state %8.8x, CSR5 %8.8x.\n", dev->name, phy_reg, csr5); if (inl(ioaddr + CSR5) & TPLnkFail) { outl((inl(ioaddr + CSR7) & ~TPLnkFail) | TPLnkPass, ioaddr + CSR7); /* If we use an external MII, then we mustn't use the * internal negotiation. */ if (tulip_media_cap[dev->if_port] & MediaIsMII) return; if (! tp->nwayset || jiffies - dev->trans_start > 1*HZ) { tp->csr6 = 0x00420000 | (tp->csr6 & 0x0000fdff); outl(tp->csr6, ioaddr + CSR6); outl(0x30, ioaddr + CSR12); outl(0x0201F078, ioaddr + 0xB8); /* Turn on autonegotiation. */ dev->trans_start = jiffies; } } else if (inl(ioaddr + CSR5) & TPLnkPass) { if (tulip_media_cap[dev->if_port] & MediaIsMII) { spin_lock(&tp->lock); tulip_check_duplex(dev); spin_unlock(&tp->lock); } else { pnic_do_nway(dev); } outl((inl(ioaddr + CSR7) & ~TPLnkPass) | TPLnkFail, ioaddr + CSR7); } } void pnic_timer(unsigned long data) { struct net_device *dev = (struct net_device *)data; struct tulip_private *tp = (struct tulip_private *)dev->priv; long ioaddr = dev->base_addr; int next_tick = 60*HZ; if(!inl(ioaddr + CSR7)) { /* the timer was called due to a work overflow * in the interrupt handler. Skip the connection * checks, the nic is definitively speaking with * his link partner. */ goto too_good_connection; } if (tulip_media_cap[dev->if_port] & MediaIsMII) { spin_lock_irq(&tp->lock); if (tulip_check_duplex(dev) > 0) next_tick = 3*HZ; spin_unlock_irq(&tp->lock); } else { int csr12 = inl(ioaddr + CSR12); int new_csr6 = tp->csr6 & ~0x40C40200; int phy_reg = inl(ioaddr + 0xB8); int csr5 = inl(ioaddr + CSR5); if (tulip_debug > 1) printk(KERN_DEBUG "%s: PNIC timer PHY status %8.8x, %s " "CSR5 %8.8x.\n", dev->name, phy_reg, medianame[dev->if_port], csr5); if (phy_reg & 0x04000000) { /* Remote link fault */ outl(0x0201F078, ioaddr + 0xB8); next_tick = 1*HZ; tp->nwayset = 0; } else if (phy_reg & 0x78000000) { /* Ignore baseT4 */ pnic_do_nway(dev); next_tick = 60*HZ; } else if (csr5 & TPLnkFail) { /* 100baseTx link beat */ if (tulip_debug > 1) printk(KERN_DEBUG "%s: %s link beat failed, CSR12 %4.4x, " "CSR5 %8.8x, PHY %3.3x.\n", dev->name, medianame[dev->if_port], csr12, inl(ioaddr + CSR5), inl(ioaddr + 0xB8)); next_tick = 3*HZ; if (tp->medialock) { } else if (tp->nwayset && (dev->if_port & 1)) { next_tick = 1*HZ; } else if (dev->if_port == 0) { dev->if_port = 3; outl(0x33, ioaddr + CSR12); new_csr6 = 0x01860000; outl(0x1F868, ioaddr + 0xB8); } else { dev->if_port = 0; outl(0x32, ioaddr + CSR12); new_csr6 = 0x00420000; outl(0x1F078, ioaddr + 0xB8); } if (tp->csr6 != new_csr6) { tp->csr6 = new_csr6; /* Restart Tx */ tulip_restart_rxtx(tp); dev->trans_start = jiffies; if (tulip_debug > 1) printk(KERN_INFO "%s: Changing PNIC configuration to %s " "%s-duplex, CSR6 %8.8x.\n", dev->name, medianame[dev->if_port], tp->full_duplex ? "full" : "half", new_csr6); } } } too_good_connection: mod_timer(&tp->timer, RUN_AT(next_tick)); if(!inl(ioaddr + CSR7)) { if (tulip_debug > 1) printk(KERN_INFO "%s: sw timer wakeup.\n", dev->name); disable_irq(dev->irq); tulip_refill_rx(dev); enable_irq(dev->irq); outl(tulip_tbl[tp->chip_id].valid_intrs, ioaddr + CSR7); } } --- NEW FILE: pnic.o --- ELF --- NEW FILE: timer.c --- /* drivers/net/tulip/timer.c Maintained by Jeff Garzik <jg...@ma...> Copyright 2000,2001 The Linux Kernel Team Written/copyright 1994-2001 by Donald Becker. This software may be used and distributed according to the terms of the GNU General Public License, incorporated herein by reference. Please refer to Documentation/DocBook/tulip.{pdf,ps,html} for more information on this driver, or visit the project Web page at http://sourceforge.net/projects/tulip/ */ #include "tulip.h" void tulip_timer(unsigned long data) { struct net_device *dev = (struct net_device *)data; struct tulip_private *tp = (struct tulip_private *)dev->priv; long ioaddr = dev->base_addr; u32 csr12 = inl(ioaddr + CSR12); int next_tick = 2*HZ; if (tulip_debug > 2) { printk(KERN_DEBUG "%s: Media selection tick, %s, status %8.8x mode" " %8.8x SIA %8.8x %8.8x %8.8x %8.8x.\n", dev->name, medianame[dev->if_port], inl(ioaddr + CSR5), inl(ioaddr + CSR6), csr12, inl(ioaddr + CSR13), inl(ioaddr + CSR14), inl(ioaddr + CSR15)); } switch (tp->chip_id) { case DC21040: if (!tp->medialock && csr12 & 0x0002) { /* Network error */ printk(KERN_INFO "%s: No link beat found.\n", dev->name); dev->if_port = (dev->if_port == 2 ? 0 : 2); tulip_select_media(dev, 0); dev->trans_start = jiffies; } break; case DC21041: if (tulip_debug > 2) printk(KERN_DEBUG "%s: 21041 media tick CSR12 %8.8x.\n", dev->name, csr12); if (tp->medialock) break; switch (dev->if_port) { case 0: case 3: case 4: if (csr12 & 0x0004) { /*LnkFail */ /* 10baseT is dead. Check for activity on alternate port. */ tp->mediasense = 1; if (csr12 & 0x0200) dev->if_port = 2; else dev->if_port = 1; printk(KERN_INFO "%s: No 21041 10baseT link beat, Media switched to %s.\n", dev->name, medianame[dev->if_port]); outl(0, ioaddr + CSR13); /* Reset */ outl(t21041_csr14[dev->if_port], ioaddr + CSR14); outl(t21041_csr15[dev->if_port], ioaddr + CSR15); outl(t21041_csr13[dev->if_port], ioaddr + CSR13); next_tick = 10*HZ; /* 2.4 sec. */ } else next_tick = 30*HZ; break; case 1: /* 10base2 */ case 2: /* AUI */ if (csr12 & 0x0100) { next_tick = (30*HZ); /* 30 sec. */ tp->mediasense = 0; } else if ((csr12 & 0x0004) == 0) { printk(KERN_INFO "%s: 21041 media switched to 10baseT.\n", dev->name); dev->if_port = 0; tulip_select_media(dev, 0); next_tick = (24*HZ)/10; /* 2.4 sec. */ } else if (tp->mediasense || (csr12 & 0x0002)) { dev->if_port = 3 - dev->if_port; /* Swap ports. */ tulip_select_media(dev, 0); next_tick = 20*HZ; } else { next_tick = 20*HZ; } break; } break; case DC21140: case DC21142: case MX98713: case COMPEX9881: case DM910X: default: { struct medialeaf *mleaf; unsigned char *p; if (tp->mtable == NULL) { /* No EEPROM info, use generic code. */ /* Not much that can be done. Assume this a generic MII or SYM transceiver. */ next_tick = 60*HZ; if (tulip_debug > 2) printk(KERN_DEBUG "%s: network media monitor CSR6 %8.8x " "CSR12 0x%2.2x.\n", dev->name, inl(ioaddr + CSR6), csr12 & 0xff); break; } mleaf = &tp->mtable->mleaf[tp->cur_index]; p = mleaf->leafdata; switch (mleaf->type) { case 0: case 4: { /* Type 0 serial or 4 SYM transceiver. Check the link beat bit. */ int offset = mleaf->type == 4 ? 5 : 2; s8 bitnum = p[offset]; if (p[offset+1] & 0x80) { if (tulip_debug > 1) printk(KERN_DEBUG"%s: Transceiver monitor tick " "CSR12=%#2.2x, no media sense.\n", dev->name, csr12); if (mleaf->type == 4) { if (mleaf->media == 3 && (csr12 & 0x02)) goto select_next_media; } break; } if (tulip_debug > 2) printk(KERN_DEBUG "%s: Transceiver monitor tick: CSR12=%#2.2x" " bit %d is %d, expecting %d.\n", dev->name, csr12, (bitnum >> 1) & 7, (csr12 & (1 << ((bitnum >> 1) & 7))) != 0, (bitnum >= 0)); /* Check that the specified bit has the proper value. */ if ((bitnum < 0) != ((csr12 & (1 << ((bitnum >> 1) & 7))) != 0)) { if (tulip_debug > 2) printk(KERN_DEBUG "%s: Link beat detected for %s.\n", dev->name, medianame[mleaf->media & MEDIA_MASK]); if ((p[2] & 0x61) == 0x01) /* Bogus Znyx board. */ goto actually_mii; /* netif_carrier_on(dev); */ break; } /* netif_carrier_off(dev); */ if (tp->medialock) break; select_next_media: if (--tp->cur_index < 0) { /* We start again, but should instead look for default. */ tp->cur_index = tp->mtable->leafcount - 1; } dev->if_port = tp->mtable->mleaf[tp->cur_index].media; if (tulip_media_cap[dev->if_port] & MediaIsFD) goto select_next_media; /* Skip FD entries. */ if (tulip_debug > 1) printk(KERN_DEBUG "%s: No link beat on media %s," " trying transceiver type %s.\n", dev->name, medianame[mleaf->media & MEDIA_MASK], medianame[tp->mtable->mleaf[tp->cur_index].media]); tulip_select_media(dev, 0); /* Restart the transmit process. */ tulip_restart_rxtx(tp); next_tick = (24*HZ)/10; break; } case 1: case 3: /* 21140, 21142 MII */ actually_mii: if (tulip_check_duplex(dev) < 0) { /* netif_carrier_off(dev); */ } else { /* netif_carrier_on(dev); */ } next_tick = 60*HZ; break; case 2: /* 21142 serial block has no link beat. */ default: break; } } break; } /* mod_timer synchronizes us with potential add_timer calls * from interrupts. */ mod_timer(&tp->timer, RUN_AT(next_tick)); } void mxic_timer(unsigned long data) { struct net_device *dev = (struct net_device *)data; struct tulip_private *tp = (struct tulip_private *)dev->priv; long ioaddr = dev->base_addr; int next_tick = 60*HZ; if (tulip_debug > 3) { printk(KERN_INFO"%s: MXIC negotiation status %8.8x.\n", dev->name, inl(ioaddr + CSR12)); } if (next_tick) { mod_timer(&tp->timer, RUN_AT(next_tick)); } } void comet_timer(unsigned long data) { struct net_device *dev = (struct net_device *)data; struct tulip_private *tp = (struct tulip_private *)dev->priv; long ioaddr = dev->base_addr; int next_tick = 60*HZ; if (tulip_debug > 1) printk(KERN_DEBUG "%s: Comet link status %4.4x partner capability " "%4.4x.\n", dev->name, inl(ioaddr + 0xB8), inl(ioaddr + 0xC8)); /* mod_timer synchronizes us with potential add_timer calls * from interrupts. */ mod_timer(&tp->timer, RUN_AT(next_tick)); } --- NEW FILE: timer.o --- ELF --- NEW FILE: tulip.o --- ELF $À <! ! <! $ $( $ $ $!¦ $ $ $( <·J5 _ --- NEW FILE: tulip_core.o --- ELF <·J5 ç$ 1& ¥$ $¸ $ $À $¸ 1& $ B |
From: James S. <jsi...@us...> - 2001-10-19 21:20:12
|
Update of /cvsroot/linux-mips/linux/arch/mips64/sgi-ip22 In directory usw-pr-cvs1:/tmp/cvs-serv13849/arch/mips64/sgi-ip22 Modified Files: ip22-setup.c Log Message: Synced to 2.4.10. Index: ip22-setup.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/sgi-ip22/ip22-setup.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- ip22-setup.c 2001/09/09 20:17:15 1.5 +++ ip22-setup.c 2001/10/19 21:19:38 1.6 @@ -36,10 +36,6 @@ extern void ip22_reboot_setup(void); extern void ip22_volume_set(unsigned char); -#if defined(CONFIG_SERIAL_CONSOLE) || defined(CONFIG_ARC_CONSOLE) -extern void console_setup(char *); -#endif - #define sgi_kh ((struct hpc_keyb *) (KSEG1 + 0x1fbd9800 + 64)) #define KBD_STAT_IBF 0x02 /* Keyboard input buffer full */ @@ -103,16 +99,16 @@ } struct kbd_ops sgi_kbd_ops = { - ip22_request_region, - ip22_request_irq, + kbd_request_region: ip22_request_region, + kbd_request_irq: ip22_request_irq, - ip22_aux_request_irq, - ip22_aux_free_irq, + aux_request_irq: ip22_aux_request_irq, + aux_free_irq: ip22_aux_free_irq, - ip22_read_input, - ip22_write_output, - ip22_write_command, - ip22_read_status + kbd_read_input: ip22_read_input, + kbd_write_output: ip22_write_output, + kbd_write_command: ip22_write_command, + kbd_read_status: ip22_read_status }; int __init page_is_ram(unsigned long pagenr) |
From: James S. <jsi...@us...> - 2001-10-19 21:20:11
|
Update of /cvsroot/linux-mips/linux/arch/mips64/kernel In directory usw-pr-cvs1:/tmp/cvs-serv13849/arch/mips64/kernel Modified Files: process.c Removed Files: ptrace.c Log Message: Synced to 2.4.10. Index: process.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/kernel/process.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- process.c 2001/10/05 17:07:14 1.1 +++ process.c 2001/10/19 21:19:38 1.2 @@ -15,6 +15,7 @@ #include <linux/ptrace.h> #include <linux/slab.h> #include <linux/mman.h> +#include <linux/personality.h> #include <linux/sys.h> #include <linux/user.h> #include <linux/a.out.h> --- ptrace.c DELETED --- |
From: James S. <jsi...@us...> - 2001-10-19 21:20:11
|
Update of /cvsroot/linux-mips/linux/arch/mips64/mm In directory usw-pr-cvs1:/tmp/cvs-serv13849/arch/mips64/mm Modified Files: init.c Removed Files: fault.c Log Message: Synced to 2.4.10. Index: init.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/mm/init.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- init.c 2001/07/09 19:28:47 1.2 +++ init.c 2001/10/19 21:19:38 1.3 @@ -36,7 +36,9 @@ #include <asm/sgialib.h> #endif #include <asm/mmu_context.h> +#include <asm/tlb.h> +mmu_gather_t mmu_gathers[NR_CPUS]; unsigned long totalram_pages; void pgd_init(unsigned long page) --- fault.c DELETED --- |
Update of /cvsroot/linux-mips/linux/arch/mips/configs In directory usw-pr-cvs1:/tmp/cvs-serv13849/arch/mips/configs Modified Files: defconfig-atlas defconfig-cobalt defconfig-ddb5476 defconfig-ddb5477 defconfig-decstation defconfig-eagle defconfig-ev64120 defconfig-ev96100 defconfig-ip22 defconfig-it8172 defconfig-korva defconfig-malta defconfig-nino defconfig-ocelot defconfig-osprey defconfig-pb1000 defconfig-rm200 Log Message: Synced to 2.4.10. Index: defconfig-atlas =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/configs/defconfig-atlas,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- defconfig-atlas 2001/10/11 20:45:25 1.7 +++ defconfig-atlas 2001/10/19 21:19:37 1.8 @@ -127,6 +127,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 # @@ -178,6 +179,7 @@ # # CONFIG_PHONE is not set # CONFIG_PHONE_IXJ is not set +# CONFIG_PHONE_IXJ_PCMCIA is not set # # ATA/IDE/MFM/RLL support @@ -220,6 +222,7 @@ # 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 @@ -237,6 +240,7 @@ # CONFIG_SCSI_INITIO is not set # CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_NCR53C406A is not set +# CONFIG_SCSI_NCR_D700 is not set # CONFIG_SCSI_NCR53C7xx is not set # CONFIG_SCSI_NCR53C8XX is not set # CONFIG_SCSI_SYM53C8XX is not set @@ -283,7 +287,6 @@ # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y -# CONFIG_ARM_AM79C961A is not set # CONFIG_SUNLANCE is not set # CONFIG_HAPPYMEAL is not set # CONFIG_SUNBMAC is not set @@ -303,9 +306,9 @@ # Ethernet (1000 Mbit) # # CONFIG_ACENIC is not set -# CONFIG_ACENIC_OMIT_TIGON_I 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 @@ -378,9 +381,13 @@ # # 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 # # CONFIG_QIC02_TAPE is not set @@ -498,6 +505,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 # # Kernel hacking Index: defconfig-cobalt =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/configs/defconfig-cobalt,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- defconfig-cobalt 2001/10/11 20:45:25 1.8 +++ defconfig-cobalt 2001/10/19 21:19:37 1.9 @@ -132,6 +132,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 # @@ -184,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 @@ -260,6 +262,9 @@ # CONFIG_IDEDMA_IVB is not set # CONFIG_DMA_NONPCI is not set # CONFIG_BLK_DEV_IDE_MODES is not set +# 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 @@ -345,6 +350,7 @@ # CONFIG_ACENIC_OMIT_TIGON_I 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 @@ -416,9 +422,13 @@ # # 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 # # CONFIG_QIC02_TAPE is not set @@ -537,6 +547,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 # # Kernel hacking Index: defconfig-ddb5476 =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/configs/defconfig-ddb5476,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- defconfig-ddb5476 2001/10/11 20:45:25 1.10 +++ defconfig-ddb5476 2001/10/19 21:19:37 1.11 @@ -138,6 +138,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 # @@ -190,6 +191,7 @@ # # CONFIG_PHONE is not set # CONFIG_PHONE_IXJ is not set +# CONFIG_PHONE_IXJ_PCMCIA is not set # # ATA/IDE/MFM/RLL support @@ -265,6 +267,9 @@ # CONFIG_IDEDMA_AUTO is not set # CONFIG_DMA_NONPCI is not set # CONFIG_BLK_DEV_IDE_MODES is not set +# 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 @@ -353,6 +358,7 @@ # CONFIG_ACENIC_OMIT_TIGON_I 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 @@ -429,7 +435,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 @@ -556,9 +566,11 @@ # CONFIG_FB_MQ200 is not set # CONFIG_FB_MATROX is not set # CONFIG_FB_ATY is not set +# CONFIG_FB_RADEON is not set # CONFIG_FB_ATY128 is not set -CONFIG_FB_3DFX=y # CONFIG_FB_SIS is not set +CONFIG_FB_3DFX=y +# CONFIG_FB_VOODOO1 is not set # CONFIG_FB_E1356 is not set # CONFIG_FB_VIRTUAL is not set # CONFIG_FBCON_ADVANCED is not set @@ -584,6 +596,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 # # Kernel hacking Index: defconfig-ddb5477 =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/configs/defconfig-ddb5477,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- defconfig-ddb5477 2001/10/11 20:45:25 1.9 +++ defconfig-ddb5477 2001/10/19 21:19:38 1.10 @@ -129,6 +129,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 # @@ -181,6 +182,7 @@ # # CONFIG_PHONE is not set # CONFIG_PHONE_IXJ is not set +# CONFIG_PHONE_IXJ_PCMCIA is not set # # ATA/IDE/MFM/RLL support @@ -222,7 +224,6 @@ # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y -# CONFIG_ARM_AM79C961A is not set # CONFIG_SUNLANCE is not set # CONFIG_HAPPYMEAL is not set # CONFIG_SUNBMAC is not set @@ -270,9 +271,9 @@ # Ethernet (1000 Mbit) # # CONFIG_ACENIC is not set -# CONFIG_ACENIC_OMIT_TIGON_I 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 @@ -344,9 +345,13 @@ # # 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 # # CONFIG_QIC02_TAPE is not set @@ -464,6 +469,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 # # Kernel hacking Index: defconfig-decstation =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/configs/defconfig-decstation,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- defconfig-decstation 2001/10/11 20:45:25 1.8 +++ defconfig-decstation 2001/10/19 21:19:38 1.9 @@ -125,6 +125,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 # @@ -177,6 +178,7 @@ # # CONFIG_PHONE is not set # CONFIG_PHONE_IXJ is not set +# CONFIG_PHONE_IXJ_PCMCIA is not set # # SCSI support @@ -213,6 +215,7 @@ # 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 @@ -229,6 +232,7 @@ # CONFIG_SCSI_INITIO is not set # CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_NCR53C406A is not set +# CONFIG_SCSI_NCR_D700 is not set # CONFIG_SCSI_NCR53C7xx is not set # CONFIG_SCSI_PAS16 is not set # CONFIG_SCSI_PCI2000 is not set @@ -259,7 +263,6 @@ # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y -# CONFIG_ARM_AM79C961A is not set # CONFIG_SUNLANCE is not set # CONFIG_SUNBMAC is not set # CONFIG_SUNQE is not set @@ -278,9 +281,9 @@ # Ethernet (1000 Mbit) # # CONFIG_ACENIC is not set -# CONFIG_ACENIC_OMIT_TIGON_I 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 @@ -353,9 +356,13 @@ # # 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 # # CONFIG_QIC02_TAPE is not set @@ -493,6 +500,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 # # Kernel hacking Index: defconfig-eagle =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/configs/defconfig-eagle,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- defconfig-eagle 2001/10/11 20:45:25 1.6 +++ defconfig-eagle 2001/10/19 21:19:38 1.7 @@ -129,6 +129,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 # @@ -181,6 +182,7 @@ # # CONFIG_PHONE is not set # CONFIG_PHONE_IXJ is not set +# CONFIG_PHONE_IXJ_PCMCIA is not set # # ATA/IDE/MFM/RLL support @@ -273,6 +275,7 @@ # CONFIG_ACENIC_OMIT_TIGON_I 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 @@ -346,9 +349,13 @@ # # 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 # # CONFIG_QIC02_TAPE is not set @@ -486,8 +493,10 @@ CONFIG_FB_MQ200=y # CONFIG_FB_MATROX is not set # CONFIG_FB_ATY is not set +# CONFIG_FB_RADEON is not set # CONFIG_FB_ATY128 is not set # CONFIG_FB_3DFX is not set +# CONFIG_FB_VOODOO1 is not set # CONFIG_FB_SIS is not set # CONFIG_FB_E1356 is not set CONFIG_FB_VIRTUAL=y @@ -532,6 +541,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 # # Kernel hacking Index: defconfig-ev64120 =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/configs/defconfig-ev64120,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- defconfig-ev64120 2001/10/11 20:45:25 1.7 +++ defconfig-ev64120 2001/10/19 21:19:38 1.8 @@ -134,6 +134,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 # @@ -185,6 +186,7 @@ # # CONFIG_PHONE is not set # CONFIG_PHONE_IXJ is not set +# CONFIG_PHONE_IXJ_PCMCIA is not set # # ATA/IDE/MFM/RLL support @@ -226,7 +228,6 @@ # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y -# CONFIG_ARM_AM79C961A is not set # CONFIG_SUNLANCE is not set # CONFIG_HAPPYMEAL is not set # CONFIG_SUNBMAC is not set @@ -245,8 +246,6 @@ # CONFIG_APRICOT is not set # CONFIG_CS89x0 is not set # CONFIG_TULIP is not set -# CONFIG_TULIP_MWI is not set -# CONFIG_TULIP_MMIO is not set # CONFIG_DE4X5 is not set # CONFIG_DGRS is not set # CONFIG_DM9102 is not set @@ -274,9 +273,9 @@ # Ethernet (1000 Mbit) # # CONFIG_ACENIC is not set -# CONFIG_ACENIC_OMIT_TIGON_I 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 @@ -356,9 +355,13 @@ # # 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 # # CONFIG_QIC02_TAPE is not set @@ -476,6 +479,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 # # Kernel hacking Index: defconfig-ev96100 =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/configs/defconfig-ev96100,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- defconfig-ev96100 2001/10/11 20:45:25 1.8 +++ defconfig-ev96100 2001/10/19 21:19:38 1.9 @@ -131,6 +131,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 # @@ -182,6 +183,7 @@ # # CONFIG_PHONE is not set # CONFIG_PHONE_IXJ is not set +# CONFIG_PHONE_IXJ_PCMCIA is not set # # ATA/IDE/MFM/RLL support @@ -223,7 +225,6 @@ # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y -# CONFIG_ARM_AM79C961A is not set CONFIG_MIPS_GT96100ETH=y # CONFIG_SUNLANCE is not set # CONFIG_HAPPYMEAL is not set @@ -272,9 +273,9 @@ # Ethernet (1000 Mbit) # # CONFIG_ACENIC is not set -# CONFIG_ACENIC_OMIT_TIGON_I 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 @@ -347,9 +348,13 @@ # # 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 # # CONFIG_QIC02_TAPE is not set @@ -467,6 +472,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 # # Kernel hacking Index: defconfig-ip22 =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/configs/defconfig-ip22,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- defconfig-ip22 2001/10/11 20:45:25 1.8 +++ defconfig-ip22 2001/10/19 21:19:38 1.9 @@ -133,6 +133,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 # @@ -189,6 +190,7 @@ # # CONFIG_PHONE is not set # CONFIG_PHONE_IXJ is not set +# CONFIG_PHONE_IXJ_PCMCIA is not set # # SCSI support @@ -226,6 +228,7 @@ # 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 @@ -242,6 +245,7 @@ # CONFIG_SCSI_INITIO is not set # CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_NCR53C406A is not set +# CONFIG_SCSI_NCR_D700 is not set # CONFIG_SCSI_NCR53C7xx is not set # CONFIG_SCSI_PAS16 is not set # CONFIG_SCSI_PCI2000 is not set @@ -273,7 +277,6 @@ # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y -# CONFIG_ARM_AM79C961A is not set # CONFIG_SUNLANCE is not set # CONFIG_SUNBMAC is not set # CONFIG_SUNQE is not set @@ -292,9 +295,9 @@ # Ethernet (1000 Mbit) # # CONFIG_ACENIC is not set -# CONFIG_ACENIC_OMIT_TIGON_I 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 @@ -370,9 +373,13 @@ # # 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 # # CONFIG_QIC02_TAPE is not set @@ -534,6 +541,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 # # Kernel hacking Index: defconfig-it8172 =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/configs/defconfig-it8172,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- defconfig-it8172 2001/10/11 20:45:25 1.9 +++ defconfig-it8172 2001/10/19 21:19:38 1.10 @@ -206,6 +206,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 # @@ -257,6 +258,7 @@ # # CONFIG_PHONE is not set # CONFIG_PHONE_IXJ is not set +# CONFIG_PHONE_IXJ_PCMCIA is not set # # ATA/IDE/MFM/RLL support @@ -343,12 +345,15 @@ # CONFIG_BLK_DEV_DTC2278 is not set # CONFIG_BLK_DEV_HT6560B is not set # CONFIG_BLK_DEV_PDC4030 is not set -# CONFIG_BLK_DEV_QD6580 is not set +# CONFIG_BLK_DEV_QD65XX is not set # CONFIG_BLK_DEV_UMC8672 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 @@ -434,6 +439,7 @@ # CONFIG_ACENIC_OMIT_TIGON_I 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 @@ -489,9 +495,10 @@ CONFIG_SERIAL_CONSOLE=y # CONFIG_SERIAL_EXTENDED is not set # CONFIG_SERIAL_NONSTANDARD is not set -CONFIG_QTRONIX_KEYBOARD=y # CONFIG_IT8172_SCR0 is not set # CONFIG_IT8172_SCR1 is not set +CONFIG_QTRONIX_KEYBOARD=y +CONFIG_IT8172_CIR=y CONFIG_UNIX98_PTYS=y CONFIG_UNIX98_PTY_COUNT=256 @@ -509,7 +516,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 @@ -630,6 +641,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 # # Kernel hacking Index: defconfig-korva =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/configs/defconfig-korva,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- defconfig-korva 2001/10/11 20:45:25 1.3 +++ defconfig-korva 2001/10/19 21:19:38 1.4 @@ -130,6 +130,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 # @@ -182,6 +183,7 @@ # # CONFIG_PHONE is not set # CONFIG_PHONE_IXJ is not set +# CONFIG_PHONE_IXJ_PCMCIA is not set # # ATA/IDE/MFM/RLL support @@ -244,6 +246,7 @@ # CONFIG_ACENIC_OMIT_TIGON_I 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 @@ -319,9 +322,13 @@ # # 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 # # CONFIG_QIC02_TAPE is not set @@ -439,6 +446,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 # # Kernel hacking Index: defconfig-malta =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/configs/defconfig-malta,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- defconfig-malta 2001/10/11 20:45:25 1.7 +++ defconfig-malta 2001/10/19 21:19:38 1.8 @@ -127,6 +127,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 # @@ -178,6 +179,7 @@ # # CONFIG_PHONE is not set # CONFIG_PHONE_IXJ is not set +# CONFIG_PHONE_IXJ_PCMCIA is not set # # ATA/IDE/MFM/RLL support @@ -220,6 +222,7 @@ # 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 @@ -237,6 +240,7 @@ # CONFIG_SCSI_INITIO is not set # CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_NCR53C406A is not set +# CONFIG_SCSI_NCR_D700 is not set # CONFIG_SCSI_NCR53C7xx is not set # CONFIG_SCSI_NCR53C8XX is not set # CONFIG_SCSI_SYM53C8XX is not set @@ -283,7 +287,6 @@ # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y -# CONFIG_ARM_AM79C961A is not set # CONFIG_SUNLANCE is not set # CONFIG_HAPPYMEAL is not set # CONFIG_SUNBMAC is not set @@ -302,8 +305,6 @@ # CONFIG_APRICOT is not set # CONFIG_CS89x0 is not set # CONFIG_TULIP is not set -# CONFIG_TULIP_MWI is not set -# CONFIG_TULIP_MMIO is not set # CONFIG_DE4X5 is not set # CONFIG_DGRS is not set # CONFIG_DM9102 is not set @@ -331,9 +332,9 @@ # Ethernet (1000 Mbit) # # CONFIG_ACENIC is not set -# CONFIG_ACENIC_OMIT_TIGON_I 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 @@ -406,7 +407,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 @@ -526,6 +531,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 # # Kernel hacking Index: defconfig-nino =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/configs/defconfig-nino,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- defconfig-nino 2001/10/11 20:45:25 1.8 +++ defconfig-nino 2001/10/19 21:19:38 1.9 @@ -129,6 +129,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 # @@ -136,6 +137,7 @@ # # CONFIG_PHONE is not set # CONFIG_PHONE_IXJ is not set +# CONFIG_PHONE_IXJ_PCMCIA is not set # # ATA/IDE/MFM/RLL support @@ -214,7 +216,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 @@ -314,6 +320,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 # # Kernel hacking Index: defconfig-ocelot =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/configs/defconfig-ocelot,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- defconfig-ocelot 2001/10/11 20:45:25 1.7 +++ defconfig-ocelot 2001/10/19 21:19:38 1.8 @@ -129,6 +129,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 # @@ -180,6 +181,7 @@ # # CONFIG_PHONE is not set # CONFIG_PHONE_IXJ is not set +# CONFIG_PHONE_IXJ_PCMCIA is not set # # ATA/IDE/MFM/RLL support @@ -221,7 +223,6 @@ # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y -# CONFIG_ARM_AM79C961A is not set # CONFIG_SUNLANCE is not set # CONFIG_HAPPYMEAL is not set # CONFIG_SUNBMAC is not set @@ -240,8 +241,6 @@ # CONFIG_APRICOT is not set # CONFIG_CS89x0 is not set # CONFIG_TULIP is not set -# CONFIG_TULIP_MWI is not set -# CONFIG_TULIP_MMIO is not set # CONFIG_DE4X5 is not set # CONFIG_DGRS is not set # CONFIG_DM9102 is not set @@ -269,9 +268,9 @@ # Ethernet (1000 Mbit) # # CONFIG_ACENIC is not set -# CONFIG_ACENIC_OMIT_TIGON_I 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 @@ -344,9 +343,13 @@ # # 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 # # CONFIG_QIC02_TAPE is not set @@ -464,6 +467,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 # # Kernel hacking Index: defconfig-osprey =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/configs/defconfig-osprey,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- defconfig-osprey 2001/10/11 20:45:25 1.6 +++ defconfig-osprey 2001/10/19 21:19:38 1.7 @@ -133,6 +133,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 # @@ -185,6 +186,7 @@ # # CONFIG_PHONE is not set # CONFIG_PHONE_IXJ is not set +# CONFIG_PHONE_IXJ_PCMCIA is not set # # ATA/IDE/MFM/RLL support @@ -225,7 +227,6 @@ # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y -# CONFIG_ARM_AM79C961A is not set # CONFIG_SUNLANCE is not set # CONFIG_SUNBMAC is not set # CONFIG_SUNQE is not set @@ -244,9 +245,9 @@ # Ethernet (1000 Mbit) # # CONFIG_ACENIC is not set -# CONFIG_ACENIC_OMIT_TIGON_I 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 @@ -320,9 +321,13 @@ # # 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 # # CONFIG_QIC02_TAPE is not set @@ -451,6 +456,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 # # Kernel hacking Index: defconfig-pb1000 =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/configs/defconfig-pb1000,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- defconfig-pb1000 2001/10/11 20:45:25 1.9 +++ defconfig-pb1000 2001/10/19 21:19:38 1.10 @@ -131,6 +131,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 # @@ -183,6 +184,7 @@ # # CONFIG_PHONE is not set # CONFIG_PHONE_IXJ is not set +# CONFIG_PHONE_IXJ_PCMCIA is not set # # ATA/IDE/MFM/RLL support @@ -224,7 +226,6 @@ # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y -# CONFIG_ARM_AM79C961A is not set CONFIG_MIPS_AU1000_ENET=y # CONFIG_SUNLANCE is not set # CONFIG_HAPPYMEAL is not set @@ -245,9 +246,9 @@ # Ethernet (1000 Mbit) # # CONFIG_ACENIC is not set -# CONFIG_ACENIC_OMIT_TIGON_I 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 @@ -340,9 +341,13 @@ # # 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 # # CONFIG_QIC02_TAPE is not set @@ -548,6 +553,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 # # Kernel hacking Index: defconfig-rm200 =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/configs/defconfig-rm200,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- defconfig-rm200 2001/10/11 20:45:25 1.7 +++ defconfig-rm200 2001/10/19 21:19:38 1.8 @@ -138,6 +138,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 # @@ -187,6 +188,7 @@ # # CONFIG_PHONE is not set # CONFIG_PHONE_IXJ is not set +# CONFIG_PHONE_IXJ_PCMCIA is not set # # ATA/IDE/MFM/RLL support @@ -260,7 +262,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 @@ -404,6 +410,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 # # Kernel hacking |
From: James S. <jsi...@us...> - 2001-10-19 21:20:11
|
Update of /cvsroot/linux-mips/linux/arch/mips64/configs In directory usw-pr-cvs1:/tmp/cvs-serv13849/arch/mips64/configs Modified Files: defconfig-ip22 defconfig-ip27 Log Message: Synced to 2.4.10. Index: defconfig-ip22 =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/configs/defconfig-ip22,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- defconfig-ip22 2001/10/11 22:55:10 1.2 +++ defconfig-ip22 2001/10/19 21:19:38 1.3 @@ -93,6 +93,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 # @@ -149,6 +150,7 @@ # # CONFIG_PHONE is not set # CONFIG_PHONE_IXJ is not set +# CONFIG_PHONE_IXJ_PCMCIA is not set # # ATA/IDE/MFM/RLL support @@ -193,6 +195,7 @@ # 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 @@ -209,6 +212,7 @@ # CONFIG_SCSI_INITIO is not set # CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_NCR53C406A is not set +# CONFIG_SCSI_NCR_D700 is not set # CONFIG_SCSI_NCR53C7xx is not set # CONFIG_SCSI_PAS16 is not set # CONFIG_SCSI_PCI2000 is not set @@ -244,13 +248,11 @@ # CONFIG_EQUALIZER is not set # CONFIG_TUN is not set # CONFIG_ETHERTAP is not set -# CONFIG_NET_SB1000 is not set # # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y -# CONFIG_ARM_AM79C961A is not set # CONFIG_SUNLANCE is not set # CONFIG_SUNBMAC is not set # CONFIG_SUNQE is not set @@ -260,8 +262,6 @@ # 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_NET_ISA is not set # CONFIG_NET_PCI is not set # CONFIG_NET_POCKET is not set @@ -271,9 +271,9 @@ # Ethernet (1000 Mbit) # # CONFIG_ACENIC is not set -# CONFIG_ACENIC_OMIT_TIGON_I 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 @@ -346,7 +346,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 @@ -416,7 +420,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 @@ -499,6 +502,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 # # Kernel hacking Index: defconfig-ip27 =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/configs/defconfig-ip27,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- defconfig-ip27 2001/10/11 22:55:10 1.2 +++ defconfig-ip27 2001/10/19 21:19:38 1.3 @@ -24,6 +24,7 @@ CONFIG_BOOT_ELF64=y CONFIG_ARC64=y CONFIG_COHERENT_IO=y +CONFIG_MAPPED_PCI_IO=y CONFIG_PCI=y CONFIG_QL_ISP_A64=y CONFIG_L1_CACHE_SHIFT=7 @@ -98,6 +99,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 # @@ -142,6 +144,7 @@ # # CONFIG_PHONE is not set # CONFIG_PHONE_IXJ is not set +# CONFIG_PHONE_IXJ_PCMCIA is not set # # ATA/IDE/MFM/RLL support @@ -184,6 +187,7 @@ # 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 @@ -201,6 +205,7 @@ # CONFIG_SCSI_INITIO is not set # CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_NCR53C406A is not set +# CONFIG_SCSI_NCR_D700 is not set # CONFIG_SCSI_NCR53C7xx is not set # CONFIG_SCSI_NCR53C8XX is not set # CONFIG_SCSI_SYM53C8XX is not set @@ -241,13 +246,11 @@ # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set # CONFIG_TUN is not set -# CONFIG_NET_SB1000 is not set # # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y -# CONFIG_ARM_AM79C961A is not set CONFIG_SGI_IOC3_ETH=y # CONFIG_SUNLANCE is not set # CONFIG_HAPPYMEAL is not set @@ -259,7 +262,6 @@ # CONFIG_LANCE is not set # CONFIG_NET_VENDOR_SMC is not set # CONFIG_NET_VENDOR_RACAL is not set -# CONFIG_DEPCA is not set # CONFIG_HP100 is not set # CONFIG_NET_ISA is not set # CONFIG_NET_PCI is not set @@ -269,9 +271,9 @@ # Ethernet (1000 Mbit) # # CONFIG_ACENIC is not set -# CONFIG_ACENIC_OMIT_TIGON_I 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 @@ -341,7 +343,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 @@ -410,7 +416,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 @@ -475,6 +480,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 # # Kernel hacking @@ -482,4 +491,3 @@ CONFIG_CROSSCOMPILE=y # CONFIG_REMOTE_DEBUG is not set # CONFIG_MAGIC_SYSRQ is not set -# CONFIG_MIPS_UNCACHED is not set |