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: Steve L. <slo...@us...> - 2001-08-23 17:10:46
|
Update of /cvsroot/linux-mips/linux/include/asm-mips
In directory usw-pr-cvs1:/tmp/cvs-serv24086/include/asm-mips
Modified Files:
au1000_dma.h
Log Message:
Renamed the Au1000 dma functions to not collide with kernel/dma.c.
Also, /proc/dma will show the output from kernel/dma.c:get_dma_list(),
not the Au1000 dma list. To fix requires a change to fs/proc/proc_misc.c.
Index: au1000_dma.h
===================================================================
RCS file: /cvsroot/linux-mips/linux/include/asm-mips/au1000_dma.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** au1000_dma.h 2001/08/17 22:53:26 1.1
--- au1000_dma.h 2001/08/23 17:10:44 1.2
***************
*** 40,44 ****
#include <asm/system.h>
! #define MAX_AU1000_DMA_CHANNELS 8
/* DMA Channel Base Addresses */
--- 40,44 ----
#include <asm/system.h>
! #define NUM_AU1000_DMA_CHANNELS 8
/* DMA Channel Base Addresses */
***************
*** 113,127 ****
/* These are in arch/mips/au1000/common/dma.c */
! extern int request_dma(int dev_id, const char * dev_str); // reserve a channel
! extern void free_dma(unsigned int dmanr); // release a channel
! extern void dump_dma_channel(unsigned int dmanr); // dump DMA channel registers
! extern struct dma_chan * get_dma_chan (unsigned int dmanr);
! extern spinlock_t dma_spin_lock;
static __inline__ unsigned long claim_dma_lock(void)
{
unsigned long flags;
! spin_lock_irqsave(&dma_spin_lock, flags);
return flags;
}
--- 113,137 ----
/* These are in arch/mips/au1000/common/dma.c */
! extern struct dma_chan au1000_dma_table[];
! extern int request_au1000_dma(int dev_id, const char * dev_str);
! extern void free_au1000_dma(unsigned int dmanr);
! extern int au1000_dma_read_proc (char *buf, char **start, off_t fpos,
! int length, int *eof, void *data);
! extern void dump_au1000_dma_channel(unsigned int dmanr);
! extern spinlock_t au1000_dma_spin_lock;
+ static __inline__ struct dma_chan *
+ get_dma_chan (unsigned int dmanr)
+ {
+ if (dmanr > NUM_AU1000_DMA_CHANNELS || au1000_dma_table[dmanr].dev_id < 0)
+ return NULL;
+ return &au1000_dma_table[dmanr];
+ }
+
static __inline__ unsigned long claim_dma_lock(void)
{
unsigned long flags;
! spin_lock_irqsave(&au1000_dma_spin_lock, flags);
return flags;
}
***************
*** 129,133 ****
static __inline__ void release_dma_lock(unsigned long flags)
{
! spin_unlock_irqrestore(&dma_spin_lock, flags);
}
--- 139,143 ----
static __inline__ void release_dma_lock(unsigned long flags)
{
! spin_unlock_irqrestore(&au1000_dma_spin_lock, flags);
}
|
|
From: Steve L. <slo...@us...> - 2001-08-23 17:10:46
|
Update of /cvsroot/linux-mips/linux/arch/mips/au1000/common
In directory usw-pr-cvs1:/tmp/cvs-serv24086/arch/mips/au1000/common
Modified Files:
dma.c usbdev.c
Log Message:
Renamed the Au1000 dma functions to not collide with kernel/dma.c.
Also, /proc/dma will show the output from kernel/dma.c:get_dma_list(),
not the Au1000 dma list. To fix requires a change to fs/proc/proc_misc.c.
Index: dma.c
===================================================================
RCS file: /cvsroot/linux-mips/linux/arch/mips/au1000/common/dma.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** dma.c 2001/08/17 22:53:26 1.1
--- dma.c 2001/08/23 17:10:44 1.2
***************
*** 59,71 ****
! spinlock_t dma_spin_lock = SPIN_LOCK_UNLOCKED;
!
! /*
! * If our port doesn't define this it has no Au1000 DMA
! */
!
! #ifdef MAX_AU1000_DMA_CHANNELS
! static struct dma_chan dma_table[MAX_AU1000_DMA_CHANNELS] = {
{dev_id: -1,},
{dev_id: -1,},
--- 59,65 ----
! spinlock_t au1000_dma_spin_lock = SPIN_LOCK_UNLOCKED;
! struct dma_chan au1000_dma_table[NUM_AU1000_DMA_CHANNELS] = {
{dev_id: -1,},
{dev_id: -1,},
***************
*** 100,140 ****
{ I2S_DATA, DMA_DR | DMA_DW32 | DMA_NC }
};
-
- struct dma_chan *
- get_dma_chan (unsigned int dmanr)
- {
- if (dmanr > MAX_AU1000_DMA_CHANNELS ||
- dma_table[dmanr].dev_id < 0)
- return NULL;
- return &dma_table[dmanr];
- }
! int get_dma_list(char *buf)
{
! int i, len;
struct dma_chan * chan;
! len = sprintf(buf, "Au1000 Allocated DMA Channels:\n");
! len += sprintf(buf+len, "------------------------------\n");
!
! for (i = 0 ; i < MAX_AU1000_DMA_CHANNELS ; i++) {
if ((chan = get_dma_chan(i)) != NULL) {
! len += sprintf(buf+len, "%2d: %s\n",
! i,
! chan->dev_str);
}
}
return len;
! } /* get_dma_list */
! void dump_dma_channel(unsigned int dmanr)
{
struct dma_chan * chan;
! if (dmanr > MAX_AU1000_DMA_CHANNELS)
return;
! chan = &dma_table[dmanr];
printk(KERN_INFO "Au1000 DMA%d Register Dump:\n", dmanr);
--- 94,131 ----
{ I2S_DATA, DMA_DR | DMA_DW32 | DMA_NC }
};
! int au1000_dma_read_proc (char *buf, char **start, off_t fpos,
! int length, int *eof, void *data)
{
! int i, len=0;
struct dma_chan * chan;
! for (i = 0 ; i < NUM_AU1000_DMA_CHANNELS ; i++) {
if ((chan = get_dma_chan(i)) != NULL) {
! len += sprintf(buf+len, "%2d: %s\n", i, chan->dev_str);
}
}
+
+ if (fpos >= len) {
+ *start = buf;
+ *eof = 1;
+ return 0;
+ }
+ *start = buf + fpos;
+ if ((len -= fpos) > length)
+ return length;
+ *eof = 1;
return len;
! }
! void dump_au1000_dma_channel(unsigned int dmanr)
{
struct dma_chan * chan;
! if (dmanr > NUM_AU1000_DMA_CHANNELS)
return;
! chan = &au1000_dma_table[dmanr];
printk(KERN_INFO "Au1000 DMA%d Register Dump:\n", dmanr);
***************
*** 152,156 ****
* Returns the allocated channel number, or negative on error.
*/
! int request_dma(int dev_id, const char * dev_str)
{
struct dma_chan * chan;
--- 143,147 ----
* Returns the allocated channel number, or negative on error.
*/
! int request_au1000_dma(int dev_id, const char * dev_str)
{
struct dma_chan * chan;
***************
*** 160,171 ****
return -EINVAL;
! for (i = 0 ; i < MAX_AU1000_DMA_CHANNELS ; i++) {
! if (dma_table[i].dev_id < 0)
break;
}
! if (i == MAX_AU1000_DMA_CHANNELS)
return -ENODEV;
! chan = &dma_table[i];
// fill it in
--- 151,162 ----
return -EINVAL;
! for (i = 0 ; i < NUM_AU1000_DMA_CHANNELS ; i++) {
! if (au1000_dma_table[i].dev_id < 0)
break;
}
! if (i == NUM_AU1000_DMA_CHANNELS)
return -ENODEV;
! chan = &au1000_dma_table[i];
// fill it in
***************
*** 181,185 ****
! void free_dma(unsigned int dmanr)
{
struct dma_chan * chan = get_dma_chan(dmanr);
--- 172,176 ----
! void free_au1000_dma(unsigned int dmanr)
{
struct dma_chan * chan = get_dma_chan(dmanr);
***************
*** 193,212 ****
chan->dev_id = -1;
} /* free_dma */
-
- #else
-
- int request_dma(unsigned int dmanr, const char *device_id)
- {
- return -EINVAL;
- }
-
- void free_dma(unsigned int dmanr)
- {
- }
-
- int get_dma_list(char *buf)
- {
- strcpy(buf, "No DMA\n");
- return 7;
- }
- #endif
--- 184,185 ----
Index: usbdev.c
===================================================================
RCS file: /cvsroot/linux-mips/linux/arch/mips/au1000/common/usbdev.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** usbdev.c 2001/08/17 22:53:26 1.1
--- usbdev.c 2001/08/23 17:10:44 1.2
***************
*** 1077,1081 ****
// SETUP packet received ?
! if (cs & USBDEV_CS_SU) {
if (pkt->size == sizeof(devrequest)) {
devrequest setup;
--- 1077,1081 ----
// SETUP packet received ?
! //if (cs & USBDEV_CS_SU) { FIXME: uncomment!
if (pkt->size == sizeof(devrequest)) {
devrequest setup;
***************
*** 1086,1095 ****
memcpy(&setup, pkt->bufptr, sizeof(devrequest));
process_setup(serial, &setup);
! } else
! dbg(__FUNCTION__ ": wrong size SETUP received");
! } else {
! // DATAx packet received on endpoint 0
! // FIXME: will need a state machine for control OUT transactions
! dbg("got DATAx on EP0, size=%d, cs=%08x", pkt->size, cs);
}
--- 1086,1095 ----
memcpy(&setup, pkt->bufptr, sizeof(devrequest));
process_setup(serial, &setup);
! //} else FIXME: uncomment!
! //dbg(__FUNCTION__ ": wrong size SETUP received");
! } else {
! // DATAx packet received on endpoint 0
! // FIXME: will need a state machine for control OUT transactions
! dbg("got DATAx on EP0, size=%d, cs=%08x", pkt->size, cs);
}
***************
*** 1581,1586 ****
free_irq(ep->inirq, &usbserial);
//free_irq(ep->outirq, &usbserial);
! free_dma(ep->indma);
! free_dma(ep->outdma);
endpoint_flush(ep);
--- 1581,1586 ----
free_irq(ep->inirq, &usbserial);
//free_irq(ep->outirq, &usbserial);
! free_au1000_dma(ep->indma);
! free_au1000_dma(ep->outdma);
endpoint_flush(ep);
***************
*** 1590,1594 ****
ep = &usbserial.port[i].ep_bulkin;
free_irq(ep->inirq, &usbserial);
! free_dma(ep->indma);
endpoint_flush(ep);
--- 1590,1594 ----
ep = &usbserial.port[i].ep_bulkin;
free_irq(ep->inirq, &usbserial);
! free_au1000_dma(ep->indma);
endpoint_flush(ep);
***************
*** 1596,1600 ****
ep = &usbserial.port[i].ep_bulkout;
//free_irq(ep->outirq, &usbserial);
! free_dma(ep->outdma);
endpoint_flush(ep);
--- 1596,1600 ----
ep = &usbserial.port[i].ep_bulkout;
//free_irq(ep->outirq, &usbserial);
! free_au1000_dma(ep->outdma);
endpoint_flush(ep);
***************
*** 1689,1697 ****
ep->max_pkt_size = usbserial.dev_desc->bMaxPacketSize0;
ep->indma = ep->outdma = -1;
! if ((ep->indma = request_dma(ep_dma_id[0].id, ep_dma_id[0].str)) < 0) {
err("Can't get %s DMA\n", ep_dma_id[0].str);
goto err_out;
}
! if ((ep->outdma = request_dma(ep_dma_id[1].id, ep_dma_id[1].str)) < 0) {
err("Can't get %s DMA\n", ep_dma_id[1].str);
goto err_out;
--- 1689,1699 ----
ep->max_pkt_size = usbserial.dev_desc->bMaxPacketSize0;
ep->indma = ep->outdma = -1;
! if ((ep->indma = request_au1000_dma(ep_dma_id[0].id,
! ep_dma_id[0].str)) < 0) {
err("Can't get %s DMA\n", ep_dma_id[0].str);
goto err_out;
}
! if ((ep->outdma = request_au1000_dma(ep_dma_id[1].id,
! ep_dma_id[1].str)) < 0) {
err("Can't get %s DMA\n", ep_dma_id[1].str);
goto err_out;
***************
*** 1735,1740 ****
ep->max_pkt_size = ep->desc->wMaxPacketSize;
ep->indma = ep->outdma = -1;
! if ((ep->indma = request_dma(ep_dma_id[2+NUM_PORTS*i].id,
! ep_dma_id[2+NUM_PORTS*i].str)) < 0) {
err("Can't get %s DMA\n", ep_dma_id[2+NUM_PORTS*i].str);
goto err_out;
--- 1737,1743 ----
ep->max_pkt_size = ep->desc->wMaxPacketSize;
ep->indma = ep->outdma = -1;
! if ((ep->indma =
! request_au1000_dma(ep_dma_id[2+NUM_PORTS*i].id,
! ep_dma_id[2+NUM_PORTS*i].str)) < 0) {
err("Can't get %s DMA\n", ep_dma_id[2+NUM_PORTS*i].str);
goto err_out;
***************
*** 1754,1759 ****
ep->max_pkt_size = ep->desc->wMaxPacketSize;
ep->indma = ep->outdma = -1;
! if ((ep->outdma = request_dma(ep_dma_id[2+NUM_PORTS*i + 1].id,
! ep_dma_id[2+NUM_PORTS*i + 1].str)) < 0) {
err("Can't get %s DMA\n", ep_dma_id[2+NUM_PORTS*i + 1].str);
goto err_out;
--- 1757,1763 ----
ep->max_pkt_size = ep->desc->wMaxPacketSize;
ep->indma = ep->outdma = -1;
! if ((ep->outdma =
! request_au1000_dma(ep_dma_id[2+NUM_PORTS*i + 1].id,
! ep_dma_id[2+NUM_PORTS*i + 1].str)) < 0) {
err("Can't get %s DMA\n", ep_dma_id[2+NUM_PORTS*i + 1].str);
goto err_out;
|
|
From: Jun S. <ju...@us...> - 2001-08-23 04:20:18
|
Update of /cvsroot/linux-mips/linux/arch/mips/ddb5xxx/common
In directory usw-pr-cvs1:/tmp/cvs-serv32754/arch/mips/ddb5xxx/common
Modified Files:
Makefile rtc_ds1386.c
Added Files:
irq.c
Log Message:
Move to_tm() to common time.c file. Some related ddb5477 changes.
--- NEW FILE: irq.c ---
/***********************************************************************
*
* Copyright 2001 MontaVista Software Inc.
* Author: js...@mv... or js...@ju...
*
* arch/mips/ddb5xxx/common/irq.c
* Common irq code for DDB boards. This really should belong
* arch/mips/kernel/irq.c. Need to talk to Ralf.
*
* 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.
*
***********************************************************************
*/
#include <linux/config.h>
#include <linux/init.h> /* for __init */
void (*irq_setup)(void);
void __init init_IRQ(void)
{
#ifdef CONFIG_REMOTE_DEBUG
extern void breakpoint(void);
extern void set_debug_traps(void);
printk("Wait for gdb client connection ...\n");
set_debug_traps();
breakpoint();
#endif
/* invoke board-specific irq setup */
irq_setup();
}
Index: Makefile
===================================================================
RCS file: /cvsroot/linux-mips/linux/arch/mips/ddb5xxx/common/Makefile,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** Makefile 2001/06/22 02:29:31 1.1.1.1
--- Makefile 2001/08/23 04:20:15 1.2
***************
*** 14,18 ****
O_TARGET:= ddb5xxx.o
! obj-y += irq_cpu.o nile4.o prom.o pci.o pci_auto.o rtc_ds1386.o
include $(TOPDIR)/Rules.make
--- 14,18 ----
O_TARGET:= ddb5xxx.o
! obj-y += irq.o irq_cpu.o nile4.o prom.o pci.o pci_auto.o rtc_ds1386.o
include $(TOPDIR)/Rules.make
Index: rtc_ds1386.c
===================================================================
RCS file: /cvsroot/linux-mips/linux/arch/mips/ddb5xxx/common/rtc_ds1386.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** rtc_ds1386.c 2001/06/22 02:29:31 1.1.1.1
--- rtc_ds1386.c 2001/08/23 04:20:15 1.2
***************
*** 24,28 ****
#include <linux/types.h>
#include <linux/time.h>
- #include <linux/rtc.h>
#include <asm/time.h>
--- 24,27 ----
***************
*** 83,87 ****
}
- void to_tm(unsigned long tim, struct rtc_time * tm);
static int
rtc_ds1386_set_time(unsigned long t)
--- 82,85 ----
***************
*** 173,267 ****
- /* ================================================== */
- #define TICK_SIZE tick
- #define FEBRUARY 2
- #define STARTOFTIME 1970
- #define SECDAY 86400L
- #define SECYR (SECDAY * 365)
- #define leapyear(year) ((year) % 4 == 0)
- #define days_in_year(a) (leapyear(a) ? 366 : 365)
- #define days_in_month(a) (month_days[(a) - 1])
-
- static int month_days[12] = {
- 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
- };
-
- /*
- * This only works for the Gregorian calendar - i.e. after 1752 (in the UK)
- */
- static void
- GregorianDay(struct rtc_time * tm)
- {
- int leapsToDate;
- int lastYear;
- int day;
- int MonthOffset[] = { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 };
-
- lastYear=tm->tm_year-1;
-
- /*
- * Number of leap corrections to apply up to end of last year
- */
- leapsToDate = lastYear/4 - lastYear/100 + lastYear/400;
-
- /*
- * This year is a leap year if it is divisible by 4 except when it is
- * divisible by 100 unless it is divisible by 400
- *
- * e.g. 1904 was a leap year, 1900 was not, 1996 is, and 2000 will be
- */
- if((tm->tm_year%4==0) &&
- ((tm->tm_year%100!=0) || (tm->tm_year%400==0)) &&
- (tm->tm_mon>2))
- {
- /*
- * We are past Feb. 29 in a leap year
- */
- day=1;
- }
- else
- {
- day=0;
- }
-
- day += lastYear*365 + leapsToDate + MonthOffset[tm->tm_mon-1] +
- tm->tm_mday;
-
- tm->tm_wday=day%7;
- }
-
-
- void to_tm(unsigned long tim, struct rtc_time * tm)
- {
- register int i;
- register long hms, day;
-
- day = tim / SECDAY;
- hms = tim % SECDAY;
-
- /* Hours, minutes, seconds are easy */
- tm->tm_hour = hms / 3600;
- tm->tm_min = (hms % 3600) / 60;
- tm->tm_sec = (hms % 3600) % 60;
-
- /* Number of years in days */
- for (i = STARTOFTIME; day >= days_in_year(i); i++)
- day -= days_in_year(i);
- tm->tm_year = i;
-
- /* Number of months in days left */
- if (leapyear(tm->tm_year))
- days_in_month(FEBRUARY) = 29;
- for (i = 1; day >= days_in_month(i); i++)
- day -= days_in_month(i);
- days_in_month(FEBRUARY) = 28;
- tm->tm_mon = i;
-
- /* Days are what is left over (+1) from all that. */
- tm->tm_mday = day + 1;
-
- /*
- * Determine the day of week
- */
- GregorianDay(tm);
- }
--- 171,172 ----
|
|
From: Jun S. <ju...@us...> - 2001-08-23 04:20:18
|
Update of /cvsroot/linux-mips/linux/arch/mips/ddb5xxx/ddb5477
In directory usw-pr-cvs1:/tmp/cvs-serv32754/arch/mips/ddb5xxx/ddb5477
Modified Files:
irq.c
Log Message:
Move to_tm() to common time.c file. Some related ddb5477 changes.
Index: irq.c
===================================================================
RCS file: /cvsroot/linux-mips/linux/arch/mips/ddb5xxx/ddb5477/irq.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** irq.c 2001/08/03 21:26:26 1.2
--- irq.c 2001/08/23 04:20:15 1.3
***************
*** 164,184 ****
}
}
-
- void (*irq_setup)(void);
-
- void __init init_IRQ(void)
- {
-
- #ifdef CONFIG_REMOTE_DEBUG
- extern void breakpoint(void);
- extern void set_debug_traps(void);
-
- printk("Wait for gdb client connection ...\n");
- set_debug_traps();
- breakpoint();
- #endif
-
- /* invoke board-specific irq setup */
- irq_setup();
- }
-
--- 164,165 ----
|
|
From: Jun S. <ju...@us...> - 2001-08-23 04:20:18
|
Update of /cvsroot/linux-mips/linux/arch/mips/kernel
In directory usw-pr-cvs1:/tmp/cvs-serv32754/arch/mips/kernel
Modified Files:
time.c
Log Message:
Move to_tm() to common time.c file. Some related ddb5477 changes.
Index: time.c
===================================================================
RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/time.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** time.c 2001/08/22 18:18:14 1.5
--- time.c 2001/08/23 04:20:15 1.6
***************
*** 3,7 ****
* Author: Jun Sun, js...@mv... or js...@ju...
*
! * Common time service routines for MIPS machines. See Documents/MIPS/time.txt.
*
* This program is free software; you can redistribute it and/or modify it
--- 3,8 ----
* Author: Jun Sun, js...@mv... or js...@ju...
*
! * Common time service routines for MIPS machines. See
! * Documents/MIPS/README.txt.
*
* This program is free software; you can redistribute it and/or modify it
***************
*** 460,461 ****
--- 461,511 ----
board_timer_setup(&timer_irqaction);
}
+
+ /* ================================================== */
+ #define FEBRUARY 2
+ #define STARTOFTIME 1970
+ #define SECDAY 86400L
+ #define SECYR (SECDAY * 365)
+ #define leapyear(year) ((year) % 4 == 0)
+ #define days_in_year(a) (leapyear(a) ? 366 : 365)
+ #define days_in_month(a) (month_days[(a) - 1])
+
+ static int month_days[12] = {
+ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
+ };
+
+ void to_tm(unsigned long tim, struct rtc_time * tm)
+ {
+ register int i;
+ register long hms, day;
+
+ day = tim / SECDAY;
+ hms = tim % SECDAY;
+
+ /* Hours, minutes, seconds are easy */
+ tm->tm_hour = hms / 3600;
+ tm->tm_min = (hms % 3600) / 60;
+ tm->tm_sec = (hms % 3600) % 60;
+
+ /* Number of years in days */
+ for (i = STARTOFTIME; day >= days_in_year(i); i++)
+ day -= days_in_year(i);
+ tm->tm_year = i;
+
+ /* Number of months in days left */
+ if (leapyear(tm->tm_year))
+ days_in_month(FEBRUARY) = 29;
+ for (i = 1; day >= days_in_month(i); i++)
+ day -= days_in_month(i);
+ days_in_month(FEBRUARY) = 28;
+ tm->tm_mon = i;
+
+ /* Days are what is left over (+1) from all that. */
+ tm->tm_mday = day + 1;
+
+ /*
+ * Determine the day of week
+ */
+ tm->tm_wday = (day + 3) % 7;
+ }
+
|
|
From: Jun S. <ju...@us...> - 2001-08-23 04:20:18
|
Update of /cvsroot/linux-mips/linux/include/asm-mips In directory usw-pr-cvs1:/tmp/cvs-serv32754/include/asm-mips Added Files: time.h Log Message: Move to_tm() to common time.c file. Some related ddb5477 changes. |
|
From: Jun S. <ju...@us...> - 2001-08-23 03:17:37
|
Update of /cvsroot/linux-mips/linux In directory usw-pr-cvs1:/tmp/cvs-serv21628 Modified Files: Makefile Log Message: Fix arch to 'mips' so that we don't have to modify it in cross-compile case. Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Makefile 2001/08/20 15:55:09 1.1 --- Makefile 2001/08/23 03:17:33 1.2 *************** *** 6,10 **** KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) ! ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/) CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ --- 6,10 ---- KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) ! ARCH := mips CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ |
|
From: James S. <jsi...@us...> - 2001-08-22 18:19:20
|
Update of /cvsroot/linux-mips/linux/arch/mips/kernel In directory usw-pr-cvs1:/tmp/cvs-serv16178/arch/mips/kernel Added Files: old-irq.c old-time.c Log Message: Synced to Ralph's tree |
|
From: James S. <jsi...@us...> - 2001-08-22 18:19:20
|
Update of /cvsroot/linux-mips/linux/arch/mips/baget
In directory usw-pr-cvs1:/tmp/cvs-serv16178/arch/mips/baget
Added Files:
ld.script.balo
Log Message:
Synced to Ralph's tree
--- NEW FILE: ld.script.balo ---
OUTPUT_FORMAT("elf32-bigmips")
OUTPUT_ARCH(mips)
ENTRY(balo_entry)
SECTIONS
{
/* Read-only sections, merged into text segment: */
. = 0x80400000;
.rel.text : { *(.rel.text) }
.rela.text : { *(.rela.text) }
.rel.data : { *(.rel.data) }
.rela.data : { *(.rela.data) }
.rel.rodata : { *(.rel.rodata) }
.rela.rodata : { *(.rela.rodata) }
.rel.got : { *(.rel.got) }
.rela.got : { *(.rela.got) }
.rel.ctors : { *(.rel.ctors) }
.rela.ctors : { *(.rela.ctors) }
.rel.dtors : { *(.rel.dtors) }
.rela.dtors : { *(.rela.dtors) }
.rel.init : { *(.rel.init) }
.rela.init : { *(.rela.init) }
.rel.fini : { *(.rel.fini) }
.rela.fini : { *(.rela.fini) }
.rel.bss : { *(.rel.bss) }
.rela.bss : { *(.rela.bss) }
.rel.plt : { *(.rel.plt) }
.rela.plt : { *(.rela.plt) }
.init : { *(.init) } =0
.text :
{
_ftext = . ;
*(.text)
*(.rodata)
*(.rodata.*)
*(.rodata1)
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
_etext = .;
PROVIDE (etext = .);
/* Startup code */
. = ALIGN(4096);
__init_begin = .;
*(.text.init)
*(.data.init)
. = ALIGN(4096); /* Align double page for init_task_union */
__init_end = .;
*(.fini)
*(.reginfo)
/* Adjust the address for the data segment. We want to adjust up to
the same address within the page on the next page up. It would
be more correct to do this:
. = .;
The current expression does not correctly handle the case of a
text segment ending precisely at the end of a page; it causes the
data segment to skip a page. The above expression does not have
this problem, but it will currently (2/95) cause BFD to allocate
a single segment, combining both text and data, for this case.
This will prevent the text segment from being shared among
multiple executions of the program; I think that is more
important than losing a page of the virtual address space (note
that no actual memory is lost; the page which is skipped can not
be referenced). */
. = .;
_fdata = . ;
*(.data)
CONSTRUCTORS
*(.data1)
_gp = . + 0x8000;
*(.lit8)
*(.lit4)
*(.ctors)
*(.dtors)
*(.got.plt) *(.got)
*(.dynamic)
/* We want the small data sections together, so single-instruction offsets
can access them all, and initialized data all before uninitialized, so
we can shorten the on-disk segment size. */
*(.sdata)
_edata = .;
PROVIDE (edata = .);
__bss_start = .;
_fbss = .;
*(.dynbss)
*(.bss)
*(COMMON)
_end = . ;
PROVIDE (end = .);
*(.sbss)
*(.scommon)
/* These are needed for ELF backends which have not yet been
converted to the new style linker. */
*(.stab)
*(.stabstr)
/* DWARF debug sections.
Symbols in the .debug DWARF section are relative to the beginning of the
section so we begin .debug at 0. It's not clear yet what needs to happen
for the others. */
*(.debug)
*(.debug_srcinfo)
*(.debug_aranges)
*(.debug_pubnames)
*(.debug_sfnames)
*(.line)
/* These must appear regardless of . */
*(.gptab.data) *(.gptab.sdata)
*(.gptab.bss) *(.gptab.sbss)
_vmlinux_start = .;
*(.vmlinux)
_vmlinux_end = .;
_ramdisk_start = .;
*(.ramdisk)
_ramdisk_end = .;
} =0
}
|
|
From: James S. <jsi...@us...> - 2001-08-22 18:19:20
|
Update of /cvsroot/linux-mips/linux/arch/mips64/sgi-ip27
In directory usw-pr-cvs1:/tmp/cvs-serv16178/arch/mips64/sgi-ip27
Added Files:
ip27-timer.c
Log Message:
Synced to Ralph's tree
--- NEW FILE: ip27-timer.c ---
/*
* Copytight (C) 1999, 2000 Ralf Baechle (ra...@gn...)
* Copytight (C) 1999, 2000 Silicon Graphics, Inc.
*/
#include <linux/config.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/interrupt.h>
#include <linux/kernel_stat.h>
#include <linux/param.h>
#include <linux/timex.h>
#include <linux/mm.h>
#include <asm/pgtable.h>
#include <asm/sgialib.h>
#include <asm/sn/ioc3.h>
#include <asm/m48t35.h>
#include <asm/sn/klconfig.h>
#include <asm/sn/arch.h>
#include <asm/sn/addrs.h>
#include <asm/sn/sn_private.h>
#include <asm/sn/sn0/ip27.h>
#include <asm/sn/sn0/hub.h>
/*
* This is a hack; we really need to figure these values out dynamically
*
* Since 800 ns works very well with various HUB frequencies, such as
* 360, 380, 390 and 400 MHZ, we use 800 ns rtc cycle time.
*
* Ralf: which clock rate is used to feed the counter?
*/
#define NSEC_PER_CYCLE 800
#define NSEC_PER_SEC 1000000000
#define CYCLES_PER_SEC (NSEC_PER_SEC/NSEC_PER_CYCLE)
#define CYCLES_PER_JIFFY (CYCLES_PER_SEC/HZ)
static unsigned long ct_cur[NR_CPUS]; /* What counter should be at next timer irq */
static long last_rtc_update; /* Last time the rtc clock got updated */
extern rwlock_t xtime_lock;
extern volatile unsigned long wall_jiffies;
static int set_rtc_mmss(unsigned long nowtime)
{
int retval = 0;
int real_seconds, real_minutes, cmos_minutes;
struct m48t35_rtc *rtc;
nasid_t nid;
nid = get_nasid();
rtc = (struct m48t35_rtc *)(KL_CONFIG_CH_CONS_INFO(nid)->memory_base +
IOC3_BYTEBUS_DEV0);
rtc->control |= M48T35_RTC_READ;
cmos_minutes = rtc->min;
BCD_TO_BIN(cmos_minutes);
rtc->control &= ~M48T35_RTC_READ;
/*
* Since we're only adjusting minutes and seconds, don't interfere with
* hour overflow. This avoids messing with unknown time zones but
* requires your RTC not to be off by more than 15 minutes
*/
real_seconds = nowtime % 60;
real_minutes = nowtime / 60;
if (((abs(real_minutes - cmos_minutes) + 15)/30) & 1)
real_minutes += 30; /* correct for half hour time zone */
real_minutes %= 60;
if (abs(real_minutes - cmos_minutes) < 30) {
BIN_TO_BCD(real_seconds);
BIN_TO_BCD(real_minutes);
rtc->control |= M48T35_RTC_SET;
rtc->sec = real_seconds;
rtc->min = real_minutes;
rtc->control &= ~M48T35_RTC_SET;
} else {
printk(KERN_WARNING
"set_rtc_mmss: can't update from %d to %d\n",
cmos_minutes, real_minutes);
retval = -1;
}
return retval;
}
void rt_timer_interrupt(struct pt_regs *regs)
{
int cpu = smp_processor_id();
int cpuA = ((cputoslice(cpu)) == 0);
int irq = 7; /* XXX Assign number */
write_lock(&xtime_lock);
again:
LOCAL_HUB_S(cpuA ? PI_RT_PEND_A : PI_RT_PEND_B, 0); /* Ack */
ct_cur[cpu] += CYCLES_PER_JIFFY;
LOCAL_HUB_S(cpuA ? PI_RT_COMPARE_A : PI_RT_COMPARE_B, ct_cur[cpu]);
if (LOCAL_HUB_L(PI_RT_COUNT) >= ct_cur[cpu])
goto again;
kstat.irqs[cpu][irq]++; /* kstat only for bootcpu? */
if (cpu == 0)
do_timer(regs);
#ifdef CONFIG_SMP
{
int user = user_mode(regs);
/*
* update_process_times() expects us to have done irq_enter().
* Besides, if we don't timer interrupts ignore the global
* interrupt lock, which is the WrongThing (tm) to do.
* Picked from i386 code.
*/
irq_enter(cpu, 0);
update_process_times(user);
irq_exit(cpu, 0);
}
#endif /* CONFIG_SMP */
/*
* If we have an externally synchronized Linux clock, then update
* RTC clock accordingly every ~11 minutes. Set_rtc_mmss() has to be
* called as close as possible to when a second starts.
*/
if ((time_status & STA_UNSYNC) == 0 &&
xtime.tv_sec > last_rtc_update + 660) {
if (xtime.tv_usec >= 1000000 - ((unsigned) tick) / 2) {
if (set_rtc_mmss(xtime.tv_sec + 1) == 0)
last_rtc_update = xtime.tv_sec;
else
last_rtc_update = xtime.tv_sec - 600;
} else if (xtime.tv_usec <= ((unsigned) tick) / 2) {
if (set_rtc_mmss(xtime.tv_sec) == 0)
last_rtc_update = xtime.tv_sec;
else
last_rtc_update = xtime.tv_sec - 600;
}
}
write_unlock(&xtime_lock);
if (softirq_pending(cpu))
do_softirq();
}
unsigned long inline do_gettimeoffset(void)
{
unsigned long ct_cur1;
ct_cur1 = REMOTE_HUB_L(cputonasid(0), PI_RT_COUNT) + CYCLES_PER_JIFFY;
return (ct_cur1 - ct_cur[0]) * NSEC_PER_CYCLE / 1000;
}
void do_gettimeofday(struct timeval *tv)
{
unsigned long flags;
unsigned long usec, sec;
read_lock_irqsave(&xtime_lock, flags);
usec = do_gettimeoffset();
{
unsigned long lost = jiffies - wall_jiffies;
if (lost)
usec += lost * (1000000 / HZ);
}
sec = xtime.tv_sec;
usec += xtime.tv_usec;
read_unlock_irqrestore(&xtime_lock, flags);
while (usec >= 1000000) {
usec -= 1000000;
sec++;
}
tv->tv_sec = sec;
tv->tv_usec = usec;
}
void do_settimeofday(struct timeval *tv)
{
write_lock_irq(&xtime_lock);
tv->tv_usec -= do_gettimeoffset();
tv->tv_usec -= (jiffies - wall_jiffies) * (1000000 / HZ);
while (tv->tv_usec < 0) {
tv->tv_usec += 1000000;
tv->tv_sec--;
}
xtime = *tv;
time_adjust = 0; /* stop active adjtime() */
time_status |= STA_UNSYNC;
time_maxerror = NTP_PHASE_LIMIT;
time_esterror = NTP_PHASE_LIMIT;
write_unlock_irq(&xtime_lock);
}
/* Includes for ioc3_init(). */
#include <asm/sn/types.h>
#include <asm/sn/sn0/addrs.h>
#include <asm/sn/sn0/hubni.h>
#include <asm/sn/sn0/hubio.h>
#include <asm/pci/bridge.h>
static __init unsigned long get_m48t35_time(void)
{
unsigned int year, month, date, hour, min, sec;
struct m48t35_rtc *rtc;
nasid_t nid;
nid = get_nasid();
rtc = (struct m48t35_rtc *)(KL_CONFIG_CH_CONS_INFO(nid)->memory_base +
IOC3_BYTEBUS_DEV0);
rtc->control |= M48T35_RTC_READ;
sec = rtc->sec;
min = rtc->min;
hour = rtc->hour;
date = rtc->date;
month = rtc->month;
year = rtc->year;
rtc->control &= ~M48T35_RTC_READ;
BCD_TO_BIN(sec);
BCD_TO_BIN(min);
BCD_TO_BIN(hour);
BCD_TO_BIN(date);
BCD_TO_BIN(month);
BCD_TO_BIN(year);
year += 1970;
return mktime(year, month, date, hour, min, sec);
}
void __init time_init(void)
{
xtime.tv_sec = get_m48t35_time();
xtime.tv_usec = 0;
}
void __init cpu_time_init(void)
{
lboard_t *board;
klcpu_t *cpu;
int cpuid;
/* Don't use ARCS. ARCS is fragile. Klconfig is simple and sane. */
board = find_lboard(KL_CONFIG_INFO(get_nasid()), KLTYPE_IP27);
if (!board)
panic("Can't find board info for myself.");
cpuid = LOCAL_HUB_L(PI_CPU_NUM) ? IP27_CPU0_INDEX : IP27_CPU1_INDEX;
cpu = (klcpu_t *) KLCF_COMP(board, cpuid);
if (!cpu)
panic("No information about myself?");
printk("CPU %d clock is %dMHz.\n", smp_processor_id(), cpu->cpu_speed);
set_cp0_status(SRB_TIMOCLK, SRB_TIMOCLK);
}
void __init hub_rtc_init(cnodeid_t cnode)
{
/*
* We only need to initialize the current node.
* If this is not the current node then it is a cpuless
* node and timeouts will not happen there.
*/
if (get_compact_nodeid() == cnode) {
int cpu = smp_processor_id();
LOCAL_HUB_S(PI_RT_EN_A, 1);
LOCAL_HUB_S(PI_RT_EN_B, 1);
LOCAL_HUB_S(PI_PROF_EN_A, 0);
LOCAL_HUB_S(PI_PROF_EN_B, 0);
ct_cur[cpu] = CYCLES_PER_JIFFY;
LOCAL_HUB_S(PI_RT_COMPARE_A, ct_cur[cpu]);
LOCAL_HUB_S(PI_RT_COUNT, 0);
LOCAL_HUB_S(PI_RT_PEND_A, 0);
LOCAL_HUB_S(PI_RT_COMPARE_B, ct_cur[cpu]);
LOCAL_HUB_S(PI_RT_COUNT, 0);
LOCAL_HUB_S(PI_RT_PEND_B, 0);
}
}
|
|
From: James S. <jsi...@us...> - 2001-08-22 18:18:18
|
Update of /cvsroot/linux-mips/linux/drivers/net
In directory usw-pr-cvs1:/tmp/cvs-serv15361/drivers/net
Modified Files:
Config.in ioc3-eth.c saa9730.c
Log Message:
Synced to Ralph's tree
Index: Config.in
===================================================================
RCS file: /cvsroot/linux-mips/linux/drivers/net/Config.in,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** Config.in 2001/08/10 03:04:58 1.4
--- Config.in 2001/08/22 18:18:14 1.5
***************
*** 16,20 ****
fi
! tristate 'General Instruments Surfboard 1000' CONFIG_NET_SB1000
#
--- 16,22 ----
fi
! if [ "$CONFIG_ISAPNP" = "y" -o "$CONFIG_ISAPNP" = "m" ]; then
! tristate 'General Instruments Surfboard 1000' CONFIG_NET_SB1000 $CONFIG_ISAPNP
! fi
#
***************
*** 27,36 ****
bool 'Ethernet (10 or 100Mbit)' CONFIG_NET_ETHERNET
if [ "$CONFIG_NET_ETHERNET" = "y" ]; then
! if [ "$CONFIG_ARM" = "y" ]; then
! if [ "$CONFIG_ARCH_ACORN" != "y" ]; then
! tristate ' AM79C961A support' CONFIG_ARM_AM79C961A
! else
! source drivers/acorn/net/Config.in
! fi
fi
if [ "$CONFIG_PPC" = "y" ]; then
--- 29,35 ----
bool 'Ethernet (10 or 100Mbit)' CONFIG_NET_ETHERNET
if [ "$CONFIG_NET_ETHERNET" = "y" ]; then
! dep_bool ' ARM EBSA110 AM79C961A support' CONFIG_ARM_AM79C961A $CONFIG_ARCH_EBSA110
! if [ "$CONFIG_ARCH_ACORN" = "y" ]; then
! source drivers/acorn/net/Config.in
fi
if [ "$CONFIG_PPC" = "y" ]; then
***************
*** 68,71 ****
--- 67,78 ----
tristate ' National DP83902AV support' CONFIG_STNIC
fi
+ dep_tristate ' Sun LANCE support' CONFIG_SUNLANCE $CONFIG_SBUS
+ if [ "$CONFIG_SBUS" = "y" -o "$CONFIG_PCI" = "y" ]; then
+ tristate ' Sun Happy Meal 10/100baseT support' CONFIG_HAPPYMEAL
+ fi
+ dep_tristate ' Sun BigMAC 10/100baseT support (EXPERIMENTAL)' CONFIG_SUNBMAC $CONFIG_SBUS $CONFIG_EXPERIMENTAL
+ dep_tristate ' Sun QuadEthernet support' CONFIG_SUNQE $CONFIG_SBUS
+ dep_tristate ' Sun LANCE support' CONFIG_SUNLANCE $CONFIG_SBUS
+ dep_tristate ' Sun GEM support' CONFIG_SUNGEM $CONFIG_PCI
bool ' 3COM cards' CONFIG_NET_VENDOR_3COM
if [ "$CONFIG_NET_VENDOR_3COM" = "y" ]; then
***************
*** 89,110 ****
bool ' Western Digital/SMC cards' CONFIG_NET_VENDOR_SMC
if [ "$CONFIG_NET_VENDOR_SMC" = "y" ]; then
! tristate ' WD80*3 support' CONFIG_WD80x3
! if [ "$CONFIG_MCA" = "y" ]; then
! tristate ' SMC Ultra MCA support' CONFIG_ULTRAMCA
! fi
! tristate ' SMC Ultra support' CONFIG_ULTRA
dep_tristate ' SMC Ultra32 EISA support' CONFIG_ULTRA32 $CONFIG_EISA
! tristate ' SMC 9194 support' CONFIG_SMC9194
fi
bool ' Racal-Interlan (Micom) NI cards' CONFIG_NET_VENDOR_RACAL
if [ "$CONFIG_NET_VENDOR_RACAL" = "y" ]; then
! dep_tristate ' NI5010 support (EXPERIMENTAL)' CONFIG_NI5010 $CONFIG_EXPERIMENTAL
! tristate ' NI5210 support' CONFIG_NI52
! tristate ' NI6510 support' CONFIG_NI65
fi
! if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
! tristate ' AT1700/1720 support (EXPERIMENTAL)' CONFIG_AT1700
fi
! tristate ' DEPCA, DE10x, DE200, DE201, DE202, DE422 support' CONFIG_DEPCA
if [ "$CONFIG_ISA" = "y" -o "$CONFIG_EISA" = "y" -o "$CONFIG_PCI" = "y" ]; then
tristate ' HP 10/100VG PCLAN (ISA, EISA, PCI) support' CONFIG_HP100
--- 96,117 ----
bool ' Western Digital/SMC cards' CONFIG_NET_VENDOR_SMC
if [ "$CONFIG_NET_VENDOR_SMC" = "y" ]; then
! dep_tristate ' WD80*3 support' CONFIG_WD80x3 $CONFIG_ISA
! dep_tristate ' SMC Ultra MCA support' CONFIG_ULTRAMCA $CONFIG_MCA
! dep_tristate ' SMC Ultra support' CONFIG_ULTRA $CONFIG_ISA
dep_tristate ' SMC Ultra32 EISA support' CONFIG_ULTRA32 $CONFIG_EISA
! dep_tristate ' SMC 9194 support' CONFIG_SMC9194 $CONFIG_ISA
fi
bool ' Racal-Interlan (Micom) NI cards' CONFIG_NET_VENDOR_RACAL
if [ "$CONFIG_NET_VENDOR_RACAL" = "y" ]; then
! dep_tristate ' NI5010 support (EXPERIMENTAL)' CONFIG_NI5010 $CONFIG_ISA $CONFIG_EXPERIMENTAL
! dep_tristate ' NI5210 support' CONFIG_NI52 $CONFIG_ISA
! dep_tristate ' NI6510 support' CONFIG_NI65 $CONFIG_ISA
fi
! if [ "$CONFIG_ISA" = "y" -o "$CONFIG_MCA" = "y" ]; then
! dep_tristate ' AT1700/1720 support (EXPERIMENTAL)' CONFIG_AT1700 $CONFIG_EXPERIMENTAL
fi
! if [ "$CONFIG_ISA" = "y" -o "$CONFIG_EISA" = "y" -o "$CONFIG_MCA" = "y" ]; then
! tristate ' DEPCA, DE10x, DE200, DE201, DE202, DE422 support' CONFIG_DEPCA
! fi
if [ "$CONFIG_ISA" = "y" -o "$CONFIG_EISA" = "y" -o "$CONFIG_PCI" = "y" ]; then
tristate ' HP 10/100VG PCLAN (ISA, EISA, PCI) support' CONFIG_HP100
***************
*** 135,139 ****
tristate ' IBM LAN Adapter/A support' CONFIG_IBMLANA
fi
! bool ' EISA, VLB, PCI and on board controllers' CONFIG_NET_PCI
if [ "$CONFIG_NET_PCI" = "y" ]; then
dep_tristate ' AMD PCnet32 PCI support' CONFIG_PCNET32 $CONFIG_PCI
--- 142,150 ----
tristate ' IBM LAN Adapter/A support' CONFIG_IBMLANA
fi
! if [ "$CONFIG_ISA" = "y" -o "$CONFIG_PCI" = "y" ]; then
! bool ' EISA, VLB, PCI and on board controllers' CONFIG_NET_PCI
! else
! define_bool CONFIG_NET_PCI n
! fi
if [ "$CONFIG_NET_PCI" = "y" ]; then
dep_tristate ' AMD PCnet32 PCI support' CONFIG_PCNET32 $CONFIG_PCI
***************
*** 143,149 ****
fi
! tristate ' Apricot Xen-II on board Ethernet' CONFIG_APRICOT
dep_tristate ' CS89x0 support' CONFIG_CS89x0 $CONFIG_ISA
dep_tristate ' DECchip Tulip (dc21x4x) PCI support' CONFIG_TULIP $CONFIG_PCI
if [ "$CONFIG_PCI" = "y" -o "$CONFIG_EISA" = "y" ]; then
tristate ' Generic DECchip & DIGITAL EtherWORKS PCI/EISA' CONFIG_DE4X5
--- 154,162 ----
fi
! dep_tristate ' Apricot Xen-II on board Ethernet' CONFIG_APRICOT $CONFIG_ISA
dep_tristate ' CS89x0 support' CONFIG_CS89x0 $CONFIG_ISA
dep_tristate ' DECchip Tulip (dc21x4x) PCI support' CONFIG_TULIP $CONFIG_PCI
+ dep_mbool ' New bus configuration (EXPERIMENTAL)' CONFIG_TULIP_MWI $CONFIG_EXPERIMENTAL $CONFIG_TULIP
+ dep_mbool ' Use PCI shared mem for NIC registers' CONFIG_TULIP_MMIO $CONFIG_TULIP
if [ "$CONFIG_PCI" = "y" -o "$CONFIG_EISA" = "y" ]; then
tristate ' Generic DECchip & DIGITAL EtherWORKS PCI/EISA' CONFIG_DE4X5
***************
*** 152,156 ****
dep_tristate ' Davicom DM910x/DM980x support' CONFIG_DM9102 $CONFIG_PCI
dep_tristate ' EtherExpressPro/100 support' CONFIG_EEPRO100 $CONFIG_PCI
- dep_mbool ' Enable Power Management (EXPERIMENTAL)' CONFIG_EEPRO100_PM $CONFIG_EEPRO100 $CONFIG_EXPERIMENTAL
dep_tristate ' Mylex EISA LNE390A/B support (EXPERIMENTAL)' CONFIG_LNE390 $CONFIG_EISA $CONFIG_EXPERIMENTAL
dep_tristate ' Myson MTD-8xx PCI Ethernet support' CONFIG_FEALNX $CONFIG_PCI
--- 165,168 ----
***************
*** 171,179 ****
dep_tristate ' VIA Rhine support' CONFIG_VIA_RHINE $CONFIG_PCI
dep_tristate ' Winbond W89c840 Ethernet support' CONFIG_WINBOND_840 $CONFIG_PCI
- dep_tristate ' Sun Happy Meal 10/100baseT PCI support' CONFIG_HAPPYMEAL $CONFIG_PCI
if [ "$CONFIG_OBSOLETE" = "y" ]; then
! bool ' Zenith Z-Note support (EXPERIMENTAL)' CONFIG_ZNET
fi
! if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
bool ' Philips SAA9730 Ethernet support (EXPERIMENTAL)' CONFIG_LAN_SAA9730
fi
--- 183,190 ----
dep_tristate ' VIA Rhine support' CONFIG_VIA_RHINE $CONFIG_PCI
dep_tristate ' Winbond W89c840 Ethernet support' CONFIG_WINBOND_840 $CONFIG_PCI
if [ "$CONFIG_OBSOLETE" = "y" ]; then
! dep_bool ' Zenith Z-Note support (EXPERIMENTAL)' CONFIG_ZNET $CONFIG_ISA
fi
! if [ "$CONFIG_EXPERIMENTAL" = "y" -a "$CONFIG_ORION" = "y" ]; then
bool ' Philips SAA9730 Ethernet support (EXPERIMENTAL)' CONFIG_LAN_SAA9730
fi
***************
*** 181,187 ****
bool ' Pocket and portable adapters' CONFIG_NET_POCKET
if [ "$CONFIG_NET_POCKET" = "y" ]; then
! dep_tristate ' AT-LAN-TEC/RealTek pocket adapter support' CONFIG_ATP $CONFIG_ISA
! tristate ' D-Link DE600 pocket adapter support' CONFIG_DE600
! tristate ' D-Link DE620 pocket adapter support' CONFIG_DE620
fi
if [ "$CONFIG_SGI_IP22" = "y" ]; then
--- 192,200 ----
bool ' Pocket and portable adapters' CONFIG_NET_POCKET
if [ "$CONFIG_NET_POCKET" = "y" ]; then
! if [ "$CONFIG_ISA" = "y" -a "$CONFIG_X86" = "y" ]; then
! tristate ' AT-LAN-TEC/RealTek pocket adapter support' CONFIG_ATP
! fi
! dep_tristate ' D-Link DE600 pocket adapter support' CONFIG_DE600 $CONFIG_ISA
! dep_tristate ' D-Link DE620 pocket adapter support' CONFIG_DE620 $CONFIG_ISA
fi
if [ "$CONFIG_SGI_IP22" = "y" ]; then
***************
*** 190,194 ****
if [ "$CONFIG_DECSTATION" = "y" ]; then
bool ' DEC LANCE ethernet controller support' CONFIG_DECLANCE
! fi
if [ "$CONFIG_BAGET_MIPS" = "y" ]; then
tristate ' Baget AMD LANCE support' CONFIG_BAGETLANCE
--- 203,207 ----
if [ "$CONFIG_DECSTATION" = "y" ]; then
bool ' DEC LANCE ethernet controller support' CONFIG_DECLANCE
! fi
if [ "$CONFIG_BAGET_MIPS" = "y" ]; then
tristate ' Baget AMD LANCE support' CONFIG_BAGETLANCE
***************
*** 206,216 ****
dep_tristate 'Alteon AceNIC/3Com 3C985/NetGear GA620 Gigabit support' CONFIG_ACENIC $CONFIG_PCI
! if [ "$CONFIG_ACENIC" != "n" ]; then
! bool ' Omit support for old Tigon I based AceNICs' CONFIG_ACENIC_OMIT_TIGON_I
! fi
dep_tristate 'Packet Engines Hamachi GNIC-II support' CONFIG_HAMACHI $CONFIG_PCI
! if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
! dep_tristate 'Packet Engines Yellowfin Gigabit-NIC support (EXPERIMENTAL)' CONFIG_YELLOWFIN $CONFIG_PCI
! fi
dep_tristate 'SysKonnect SK-98xx support' CONFIG_SK98LIN $CONFIG_PCI
--- 219,226 ----
dep_tristate 'Alteon AceNIC/3Com 3C985/NetGear GA620 Gigabit support' CONFIG_ACENIC $CONFIG_PCI
! dep_mbool ' Omit support for old Tigon I based AceNICs' CONFIG_ACENIC_OMIT_TIGON_I $CONFIG_ACENIC
! dep_tristate 'MyriCOM Gigabit Ethernet support' CONFIG_MYRI_SBUS $CONFIG_SBUS
dep_tristate 'Packet Engines Hamachi GNIC-II support' CONFIG_HAMACHI $CONFIG_PCI
! dep_tristate 'Packet Engines Yellowfin Gigabit-NIC support (EXPERIMENTAL)' CONFIG_YELLOWFIN $CONFIG_PCI $CONFIG_EXPERIMENTAL
dep_tristate 'SysKonnect SK-98xx support' CONFIG_SK98LIN $CONFIG_PCI
***************
*** 222,226 ****
tristate ' Digital DEFEA and DEFPA adapter support' CONFIG_DEFXX
fi
! tristate ' SysKonnect FDDI PCI support' CONFIG_SKFP
fi
--- 232,236 ----
tristate ' Digital DEFEA and DEFPA adapter support' CONFIG_DEFXX
fi
! dep_tristate ' SysKonnect FDDI PCI support' CONFIG_SKFP $CONFIG_PCI
fi
***************
*** 229,233 ****
bool 'HIPPI driver support (EXPERIMENTAL)' CONFIG_HIPPI
if [ "$CONFIG_HIPPI" = "y" -a "$CONFIG_PCI" = "y" ]; then
! tristate ' Essential RoadRunner HIPPI PCI adapter support' CONFIG_ROADRUNNER
if [ "$CONFIG_ROADRUNNER" != "n" ]; then
bool ' Use large TX/RX rings' CONFIG_ROADRUNNER_LARGE_RINGS
--- 239,243 ----
bool 'HIPPI driver support (EXPERIMENTAL)' CONFIG_HIPPI
if [ "$CONFIG_HIPPI" = "y" -a "$CONFIG_PCI" = "y" ]; then
! dep_tristate ' Essential RoadRunner HIPPI PCI adapter support' CONFIG_ROADRUNNER $CONFIG_PCI
if [ "$CONFIG_ROADRUNNER" != "n" ]; then
bool ' Use large TX/RX rings' CONFIG_ROADRUNNER_LARGE_RINGS
***************
*** 237,243 ****
fi
! if [ ! "$CONFIG_PARPORT" = "n" ]; then
! dep_tristate 'PLIP (parallel port) support' CONFIG_PLIP $CONFIG_PARPORT
! fi
tristate 'PPP (point-to-point protocol) support' CONFIG_PPP
--- 247,251 ----
fi
! dep_tristate 'PLIP (parallel port) support' CONFIG_PLIP $CONFIG_PARPORT
tristate 'PPP (point-to-point protocol) support' CONFIG_PPP
***************
*** 249,255 ****
dep_tristate ' PPP Deflate compression' CONFIG_PPP_DEFLATE $CONFIG_PPP
dep_tristate ' PPP BSD-Compress compression' CONFIG_PPP_BSDCOMP $CONFIG_PPP
! if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
! dep_tristate ' PPP over Ethernet (EXPERIMENTAL)' CONFIG_PPPOE $CONFIG_PPP
! fi
fi
--- 257,261 ----
dep_tristate ' PPP Deflate compression' CONFIG_PPP_DEFLATE $CONFIG_PPP
dep_tristate ' PPP BSD-Compress compression' CONFIG_PPP_BSDCOMP $CONFIG_PPP
! dep_tristate ' PPP over Ethernet (EXPERIMENTAL)' CONFIG_PPPOE $CONFIG_PPP $CONFIG_EXPERIMENTAL
fi
Index: ioc3-eth.c
===================================================================
RCS file: /cvsroot/linux-mips/linux/drivers/net/ioc3-eth.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** ioc3-eth.c 2001/07/09 19:28:47 1.2
--- ioc3-eth.c 2001/08/22 18:18:14 1.3
***************
*** 67,82 ****
#define RX_BUFFS 64
- /*
- * Private ioctls that de facto are well known and used for example
- * by mii-tool. These are deprecated and will go away in 2.5.0.
- */
- #define SIOCGMIIPHY (SIOCDEVPRIVATE) /* Read from current PHY */
- #define SIOCGMIIREG (SIOCDEVPRIVATE+1) /* Read any PHY register */
- #define SIOCSMIIREG (SIOCDEVPRIVATE+2) /* Write any PHY register */
-
- /* These exist in other drivers; we don't use them at this time. */
- #define SIOCGPARAMS (SIOCDEVPRIVATE+3) /* Read operational parameters */
- #define SIOCSPARAMS (SIOCDEVPRIVATE+4) /* Set operational parameters */
-
/* Timer state engine. */
enum ioc3_timer_state {
--- 67,70 ----
Index: saa9730.c
===================================================================
RCS file: /cvsroot/linux-mips/linux/drivers/net/saa9730.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** saa9730.c 2001/08/10 03:04:58 1.3
--- saa9730.c 2001/08/22 18:18:14 1.4
***************
*** 45,49 ****
/* Non-zero only if the current card is a PCI with BIOS-set IRQ. */
! static unsigned int pci_irq_line = 0;
#define INL(a) inl((unsigned long)a)
--- 45,49 ----
/* Non-zero only if the current card is a PCI with BIOS-set IRQ. */
! static unsigned int pci_irq_line;
#define INL(a) inl((unsigned long)a)
|
|
From: James S. <jsi...@us...> - 2001-08-22 18:18:18
|
Update of /cvsroot/linux-mips/linux/arch/mips64
In directory usw-pr-cvs1:/tmp/cvs-serv15361/arch/mips64
Modified Files:
defconfig defconfig-ip22 defconfig-ip27
Added Files:
ld.script.elf32.S ld.script.elf64
Log Message:
Synced to Ralph's tree
--- NEW FILE: ld.script.elf32.S ---
OUTPUT_ARCH(mips)
ENTRY(kernel_entry)
SECTIONS
{
/* Read-only sections, merged into text segment: */
.init : { *(.init) } =0
.text :
{
*(.text)
*(.rodata)
*(.rodata.*)
*(.rodata1)
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
} =0
.kstrtab : { *(.kstrtab) }
. = ALIGN(16); /* Exception table */
__start___ex_table = .;
__ex_table : { *(__ex_table) }
__stop___ex_table = .;
__start___dbe_table = .; /* Exception table for data bus errors */
__dbe_table : { *(__dbe_table) }
__stop___dbe_table = .;
_etext = .;
. = ALIGN(16384);
. = . + MAPPED_OFFSET; /* for CONFIG_MAPPED_KERNEL */
.data.init_task : { *(.data.init_task) }
/* Startup code */
. = ALIGN(4096);
__init_begin = .;
.text.init : { *(.text.init) }
.data.init : { *(.data.init) }
. = ALIGN(16);
__setup_start = .;
.setup.init : { *(.setup.init) }
__setup_end = .;
__initcall_start = .;
.initcall.init : { *(.initcall.init) }
__initcall_end = .;
. = ALIGN(4096); /* Align double page for init_task_union */
__init_end = .;
. = ALIGN(4096);
.data.page_aligned : { *(.data.idt) }
. = ALIGN(32);
.data.cacheline_aligned : { *(.data.cacheline_aligned) }
.fini : { *(.fini) } =0
.reginfo : { *(.reginfo) }
/* Adjust the address for the data segment. We want to adjust up to
the same address within the page on the next page up. It would
be more correct to do this:
. = .;
The current expression does not correctly handle the case of a
text segment ending precisely at the end of a page; it causes the
data segment to skip a page. The above expression does not have
this problem, but it will currently (2/95) cause BFD to allocate
a single segment, combining both text and data, for this case.
This will prevent the text segment from being shared among
multiple executions of the program; I think that is more
important than losing a page of the virtual address space (note
that no actual memory is lost; the page which is skipped can not
be referenced). */
. = .;
.data :
{
_fdata = . ;
*(.data)
CONSTRUCTORS
}
.data1 : { *(.data1) }
.lit8 : { *(.lit8) }
.lit4 : { *(.lit4) }
.ctors : { *(.ctors) }
.dtors : { *(.dtors) }
.got : { *(.got.plt) *(.got) }
.dynamic : { *(.dynamic) }
/* We want the small data sections together, so single-instruction offsets
can access them all, and initialized data all before uninitialized, so
we can shorten the on-disk segment size. */
.sdata : { *(.sdata) }
_edata = .;
.sbss : { *(.sbss) *(.scommon) }
.bss :
{
*(.dynbss)
*(.bss)
*(COMMON)
_end = . ;
}
/* Sections to be discarded */
/DISCARD/ :
{
*(.text.exit)
*(.data.exit)
*(.exitcall.exit)
}
/* These are needed for ELF backends which have not yet been
converted to the new style linker. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
/* DWARF debug sections.
Symbols in the .debug DWARF section are relative to the beginning of the
section so we begin .debug at 0. It's not clear yet what needs to happen
for the others. */
.debug 0 : { *(.debug) }
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
.debug_sfnames 0 : { *(.debug_sfnames) }
.line 0 : { *(.line) }
/* These must appear regardless of . */
.gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
.gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
}
--- NEW FILE: ld.script.elf64 ---
OUTPUT_ARCH(mips)
ENTRY(kernel_entry)
SECTIONS
{
/* Read-only sections, merged into text segment: */
/* . = 0xc000000000000000; */
/* This is the value for an Origin kernel, taken from an IRIX kernel. */
/* . = 0xc00000000001c000; */
/* Set the vaddr for the text segment to a value
>= 0xa800 0000 0001 9000 if no symmon is going to configured
>= 0xa800 0000 0030 0000 otherwise */
/* . = 0xa800000000300000; */
/* . = 0xa800000000300000; */
. = 0xffffffff80300000;
.text : {
*(.text)
*(.rodata)
*(.rodata.*)
*(.rodata1)
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
} = 0
.kstrtab : { *(.kstrtab) }
. = ALIGN(16); /* Exception table */
__start___ex_table = .;
__ex_table : { *(__ex_table) }
__stop___ex_table = .;
__start___dbe_table = .; /* Exception table for data bus errors */
__dbe_table : { *(__dbe_table) }
__stop___dbe_table = .;
_etext = .;
. = ALIGN(16384);
.data.init_task : { *(.data.init_task) }
/* Startup code */
. = ALIGN(4096);
__init_begin = .;
.text.init : { *(.text.init) }
.data.init : { *(.data.init) }
. = ALIGN(16);
__setup_start = .;
.setup.init : { *(.setup.init) }
__setup_end = .;
__initcall_start = .;
.initcall.init : { *(.initcall.init) }
__initcall_end = .;
. = ALIGN(4096); /* Align double page for init_task_union */
__init_end = .;
. = ALIGN(4096);
.data.page_aligned : { *(.data.idt) }
. = ALIGN(32);
.data.cacheline_aligned : { *(.data.cacheline_aligned) }
.fini : { *(.fini) } =0
.reginfo : { *(.reginfo) }
/* Adjust the address for the data segment. We want to adjust up to
the same address within the page on the next page up. It would
be more correct to do this:
. = .;
The current expression does not correctly handle the case of a
text segment ending precisely at the end of a page; it causes the
data segment to skip a page. The above expression does not have
this problem, but it will currently (2/95) cause BFD to allocate
a single segment, combining both text and data, for this case.
This will prevent the text segment from being shared among
multiple executions of the program; I think that is more
important than losing a page of the virtual address space (note
that no actual memory is lost; the page which is skipped can not
be referenced). */
. = .;
.data :
{
_fdata = . ;
*(.data)
CONSTRUCTORS
}
.data1 : { *(.data1) }
.lit8 : { *(.lit8) }
.lit4 : { *(.lit4) }
.ctors : { *(.ctors) }
.dtors : { *(.dtors) }
.got : { *(.got.plt) *(.got) }
.dynamic : { *(.dynamic) }
/* We want the small data sections together, so single-instruction offsets
can access them all, and initialized data all before uninitialized, so
we can shorten the on-disk segment size. */
.sdata : { *(.sdata) }
_edata = .;
.sbss : { *(.sbss) *(.scommon) }
.bss :
{
*(.dynbss)
*(.bss)
*(COMMON)
_end = . ;
}
/* Sections to be discarded */
/DISCARD/ :
{
*(.text.exit)
*(.data.exit)
*(.exitcall.exit)
}
/* These are needed for ELF backends which have not yet been
converted to the new style linker. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
/* DWARF debug sections.
Symbols in the .debug DWARF section are relative to the beginning of the
section so we begin .debug at 0. It's not clear yet what needs to happen
for the others. */
.debug 0 : { *(.debug) }
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
.debug_sfnames 0 : { *(.debug_sfnames) }
.line 0 : { *(.line) }
/* These must appear regardless of . */
.gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
.gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
}
Index: defconfig
===================================================================
RCS file: /cvsroot/linux-mips/linux/arch/mips64/defconfig,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** defconfig 2001/06/22 02:29:32 1.1.1.1
--- defconfig 2001/08/22 18:18:14 1.2
***************
*** 242,246 ****
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
- # CONFIG_NET_SB1000 is not set
#
--- 242,245 ----
***************
*** 248,257 ****
#
CONFIG_NET_ETHERNET=y
CONFIG_SGI_IOC3_ETH=y
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_LANCE is not set
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_RACAL is not set
- # CONFIG_DEPCA is not set
# CONFIG_HP100 is not set
# CONFIG_NET_ISA is not set
--- 247,262 ----
#
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
+ # CONFIG_SUNBMAC is not set
+ # CONFIG_SUNQE is not set
+ # CONFIG_SUNLANCE is not set
+ # CONFIG_SUNGEM is not set
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_LANCE is not set
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_RACAL is not set
# CONFIG_HP100 is not set
# CONFIG_NET_ISA is not set
***************
*** 263,269 ****
--- 268,278 ----
#
# CONFIG_ACENIC is not set
+ # CONFIG_ACENIC_OMIT_TIGON_I is not set
+ # CONFIG_MYRI_SBUS is not set
# CONFIG_HAMACHI is not set
+ # CONFIG_YELLOWFIN is not set
# CONFIG_SK98LIN is not set
# CONFIG_FDDI is not set
+ # CONFIG_PLIP is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
***************
*** 399,403 ****
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
--- 408,411 ----
Index: defconfig-ip22
===================================================================
RCS file: /cvsroot/linux-mips/linux/arch/mips64/defconfig-ip22,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** defconfig-ip22 2001/06/22 02:29:32 1.1.1.1
--- defconfig-ip22 2001/08/22 18:18:14 1.2
***************
*** 245,249 ****
# CONFIG_TUN is not set
# CONFIG_ETHERTAP is not set
- # CONFIG_NET_SB1000 is not set
#
--- 245,248 ----
***************
*** 251,260 ****
#
CONFIG_NET_ETHERNET=y
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_LANCE is not set
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_RACAL is not set
- # CONFIG_AT1700 is not set
- # CONFIG_DEPCA is not set
# CONFIG_NET_ISA is not set
# CONFIG_NET_PCI is not set
--- 250,263 ----
#
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
+ # CONFIG_SUNLANCE is not set
+ # CONFIG_SUNGEM is not set
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_LANCE is not set
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_RACAL is not set
# CONFIG_NET_ISA is not set
# CONFIG_NET_PCI is not set
***************
*** 266,269 ****
--- 269,274 ----
#
# CONFIG_ACENIC is not set
+ # CONFIG_ACENIC_OMIT_TIGON_I is not set
+ # CONFIG_MYRI_SBUS is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
***************
*** 271,274 ****
--- 276,280 ----
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
+ # CONFIG_PLIP is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
***************
*** 406,410 ****
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
--- 412,415 ----
Index: defconfig-ip27
===================================================================
RCS file: /cvsroot/linux-mips/linux/arch/mips64/defconfig-ip27,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** defconfig-ip27 2001/06/22 02:29:32 1.1.1.1
--- defconfig-ip27 2001/08/22 18:18:14 1.2
***************
*** 242,246 ****
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
- # CONFIG_NET_SB1000 is not set
#
--- 242,245 ----
***************
*** 248,257 ****
#
CONFIG_NET_ETHERNET=y
CONFIG_SGI_IOC3_ETH=y
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_LANCE is not set
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_RACAL is not set
- # CONFIG_DEPCA is not set
# CONFIG_HP100 is not set
# CONFIG_NET_ISA is not set
--- 247,262 ----
#
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
+ # CONFIG_SUNBMAC is not set
+ # CONFIG_SUNQE is not set
+ # CONFIG_SUNLANCE is not set
+ # CONFIG_SUNGEM is not set
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_LANCE is not set
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_RACAL is not set
# CONFIG_HP100 is not set
# CONFIG_NET_ISA is not set
***************
*** 263,269 ****
--- 268,278 ----
#
# CONFIG_ACENIC is not set
+ # CONFIG_ACENIC_OMIT_TIGON_I is not set
+ # CONFIG_MYRI_SBUS is not set
# CONFIG_HAMACHI is not set
+ # CONFIG_YELLOWFIN is not set
# CONFIG_SK98LIN is not set
# CONFIG_FDDI is not set
+ # CONFIG_PLIP is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
***************
*** 399,403 ****
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
--- 408,411 ----
|
|
From: James S. <jsi...@us...> - 2001-08-22 18:18:18
|
Update of /cvsroot/linux-mips/linux/arch/mips64/kernel In directory usw-pr-cvs1:/tmp/cvs-serv15361/arch/mips64/kernel Modified Files: binfmt_elf32.c entry.S scall_64.S scall_o32.S Log Message: Synced to Ralph's tree Index: binfmt_elf32.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/kernel/binfmt_elf32.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** binfmt_elf32.c 2001/06/22 02:29:32 1.1.1.1 --- binfmt_elf32.c 2001/08/22 18:18:14 1.2 *************** *** 33,37 **** #define TASK32_SIZE 0x80000000UL #undef ELF_ET_DYN_BASE ! #define ELF_ET_DYN_BASE (2 * TASK32_SIZE / 3) #include <asm/processor.h> --- 33,37 ---- #define TASK32_SIZE 0x80000000UL #undef ELF_ET_DYN_BASE ! #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2) #include <asm/processor.h> Index: entry.S =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/kernel/entry.S,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** entry.S 2001/06/22 02:29:32 1.1.1.1 --- entry.S 2001/08/22 18:18:14 1.2 *************** *** 6,11 **** * Low level exception handling * ! * Copyright (C) 1994 - 2000 by Ralf Baechle * Copyright (C) 1999, 2000 Silicon Graphics */ #include <linux/config.h> --- 6,12 ---- * Low level exception handling * ! * Copyright (C) 1994 - 2000, 2001 Ralf Baechle * Copyright (C) 1999, 2000 Silicon Graphics + * Copyright (C) 2001 MIPS Technologies, Inc. */ #include <linux/config.h> *************** *** 16,66 **** #include <asm/stackframe.h> .text - .set noreorder .align 4 FEXPORT(ret_from_fork) jal schedule_tail ! move a0, v0 # prev j ret_from_sys_call - nop - FEXPORT(handle_softirq) - jal do_softirq - nop - b 9f - nop reschedule: jal schedule - nop FEXPORT(ret_from_sys_call) ! FEXPORT(ret_from_irq) ! la t1, irq_stat # softirq_active ! #ifdef CONFIG_SMP ! lwu t0, TASK_PROCESSOR($28) ! dsll t0, t0, 5 ! daddu t1, t0 ! #endif ! lw t0, 0 (t1) # softirq_active ! lw t1, 4 (t1) # softirq_mask. unused delay slot ! and t0, t1 ! bnez t0, handle_softirq ! 9: ld t0, PT_STATUS(sp) # returning to kernel mode? ! andi t1, t0, 0x10 ! beqz t1, return # -> yes ! ld t1, TASK_NEED_RESCHED($28) ! bnez t1, reschedule ! lw v0, TASK_SIGPENDING($28) ! move a0, zero ! beqz v0, return ! nop ! jal do_signal ! move a1, sp ! FEXPORT(return) .set noat RESTORE_ALL eret .set at /* * Common spurious interrupt handler. --- 17,75 ---- #include <asm/stackframe.h> + /* This duplicates the definition from <linux/sched.h> */ + #define PT_TRACESYS 0x00000002 /* tracing system calls */ + + #define KU_USER 0x10 + .text .align 4 FEXPORT(ret_from_fork) + move a0, v0 # prev jal schedule_tail ! lw t0, TASK_PTRACE($28) # syscall tracing enabled? ! andi t0, PT_TRACESYS ! bnez t0, tracesys_exit j ret_from_sys_call + tracesys_exit: + jal syscall_trace + b ret_from_sys_call + + EXPORT(ret_from_irq) + EXPORT(ret_from_exception) + lw t0, PT_STATUS(sp) # returning to kernel mode? + andi t0, t0, KU_USER + bnez t0, ret_from_sys_call + j restore_all + reschedule: jal schedule FEXPORT(ret_from_sys_call) ! mfc0 t0, CP0_STATUS # need_resched and signals atomic test ! ori t0, t0, 1 ! xori t0, t0, 1 ! mtc0 t0, CP0_STATUS ! ld v0, TASK_NEED_RESCHED($28) ! lw v1, TASK_SIGPENDING($28) ! bnez v0, reschedule ! bnez v1, signal_return ! restore_all: .set noat RESTORE_ALL eret .set at + signal_return: .type signal_return, @function + + mfc0 t0, CP0_STATUS + ori t0, t0, 1 + mtc0 t0, CP0_STATUS + + move a0, zero + move a1, sp + jal do_signal + b restore_all + /* * Common spurious interrupt handler. *************** *** 76,80 **** lw t0,%lo(spurious_count)(t1) addiu t0,1 j ret_from_irq - sw t0,%lo(spurious_count)(t1) END(spurious_interrupt) --- 85,89 ---- lw t0,%lo(spurious_count)(t1) addiu t0,1 + sw t0,%lo(spurious_count)(t1) j ret_from_irq END(spurious_interrupt) Index: scall_64.S =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/kernel/scall_64.S,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** scall_64.S 2001/06/22 02:29:32 1.1.1.1 --- scall_64.S 2001/08/22 18:18:14 1.2 *************** *** 4,9 **** * for more details. * ! * Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000 by Ralf Baechle * Copyright (C) 1999, 2000 Silicon Graphics, Inc. */ #include <linux/config.h> --- 4,10 ---- * for more details. * ! * Copyright (C) 1995, 96, 97, 98, 99, 2000, 01 by Ralf Baechle * Copyright (C) 1999, 2000 Silicon Graphics, Inc. + * Copyright (C) 2001 MIPS Technologies, Inc. */ #include <linux/config.h> *************** *** 63,104 **** 1: sd v0, PT_R2(sp) # result ! FEXPORT(ret_from_sys_call_64) ! la t1, irq_stat # softirq_active ! #ifdef CONFIG_SMP ! lwu t0, TASK_PROCESSOR($28) ! dsll t0, t0, 5 ! daddu t1, t0 ! #endif ! lw t0, 0(t1) # softirq_active ! lw t1, 4(t1) # softirq_mask. unused delay slot ! and t0, t1 ! bnez t0, handle_softirq_64 - 9: ld t0, PT_STATUS(sp) # returning to kernel mode? - andi t1, t0, 0x10 ld t2, TASK_NEED_RESCHED($28) ! beqz t1, return_64 # -> yes ! bnez t2, reschedule_64 lw v0, TASK_SIGPENDING($28) ! move a0, zero ! beqz v0, return_64 ! move a1, sp ! SAVE_STATIC ! jal do_signal ! return_64: RESTORE_SOME RESTORE_SP - .set mips3 eret - .set mips0 ! handle_softirq_64: ! jal do_softirq ! b 9b ! reschedule_64: SAVE_STATIC jal schedule ! b ret_from_sys_call_64 /* ------------------------------------------------------------------------ */ --- 64,100 ---- 1: sd v0, PT_R2(sp) # result ! ret_from_sys_call: ! mfc0 t0, CP0_STATUS ! xori t0, t0, 1 ! ori t0, t0, 1 ! mtc0 t0, CP0_STATUS ld t2, TASK_NEED_RESCHED($28) ! bnez t2, reschedule lw v0, TASK_SIGPENDING($28) ! bnez v0, signal_return ! restore_all: RESTORE_SOME RESTORE_SP eret ! /* Put this behind restore_all for the sake of the branch prediction. */ ! signal_return: ! .type signal_return, @function ! ! mfc0 t0, CP0_STATUS ! ori t0, t0, 1 ! mtc0 t0, CP0_STATUS ! ! move a0, zero ! move a1, sp ! jal do_signal ! b restore_all ! ! reschedule: SAVE_STATIC jal schedule ! b ret_from_sys_call /* ------------------------------------------------------------------------ */ Index: scall_o32.S =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/kernel/scall_o32.S,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** scall_o32.S 2001/08/10 16:00:00 1.4 --- scall_o32.S 2001/08/22 18:18:14 1.5 *************** *** 55,111 **** stack_done: ! ld t0, TASK_PTRACE($28) # syscall tracing enabled? ! andi t0, PT_TRACESYS ! bnez t0, trace_a_syscall ! jalr t2 # Do The Real Thing (TM) ! li t0, -EMAXERRNO - 1 # error? ! sltu t0, t0, v0 ! sd t0, PT_R7(sp) # set error flag ! beqz t0, 1f ! negu v0 # error ! sd v0, PT_R0(sp) # set flag for syscall restarting ! 1: sd v0, PT_R2(sp) # result ! FEXPORT(o32_ret_from_sys_call) ! la t1, irq_stat # softirq_active ! #ifdef CONFIG_SMP ! lwu t0, TASK_PROCESSOR($28) ! dsll t0, t0, 5 ! daddu t1, t0 ! #endif ! lw t0, 0(t1) # softirq_active ! lw t1, 4(t1) # softirq_mask. unused delay slot ! and t0, t1 ! bnez t0, o32_handle_softirq ! 9: ld t0,PT_STATUS(sp) # returning to kernel mode? ! andi t1, t0, 0x10 ! ld t2, TASK_NEED_RESCHED($28) ! beqz t1, o32_return # -> yes ! bnez t2, o32_reschedule ! lw v0, TASK_SIGPENDING($28) ! move a0, zero ! beqz v0, o32_return ! move a1, sp ! SAVE_STATIC ! jal do_signal ! o32_return: ! RESTORE_SOME ! RESTORE_SP ! .set mips3 ! eret ! .set mips0 ! o32_handle_softirq: ! jal do_softirq ! b 9b o32_reschedule: ! SAVE_STATIC ! jal schedule ! b o32_ret_from_sys_call /* ------------------------------------------------------------------------ */ --- 55,102 ---- stack_done: ! ld t0, TASK_PTRACE($28) # syscall tracing enabled? ! andi t0, PT_TRACESYS ! bnez t0, trace_a_syscall ! jalr t2 # Do The Real Thing (TM) ! li t0, -EMAXERRNO - 1 # error? ! sltu t0, t0, v0 ! sd t0, PT_R7(sp) # set error flag ! beqz t0, 1f ! negu v0 # error ! sd v0, PT_R0(sp) # flag for syscall restarting ! 1: sd v0, PT_R2(sp) # result ! FEXPORT(o32_ret_from_sys_call) ! mfc0 t0, CP0_STATUS # need_resched and signals atomic test ! ori t0, t0, 1 ! xori t0, t0, 1 ! mtc0 t0, CP0_STATUS ! ld t2, TASK_NEED_RESCHED($28) ! bnez t2, o32_reschedule ! lw v0, TASK_SIGPENDING($28) ! bnez v0, signal_return ! restore_all: RESTORE_SOME ! RESTORE_SP ! .set mips3 ! eret ! .set mips0 ! signal_return: mfc0 t0, CP0_STATUS # need_resched and signals atomic test ! ori t0, t0, 1 ! mtc0 t0, CP0_STATUS ! move a0, zero ! move a1, sp ! SAVE_STATIC ! jal do_signal ! o32_reschedule: ! SAVE_STATIC ! jal schedule ! b o32_ret_from_sys_call /* ------------------------------------------------------------------------ */ |
|
From: James S. <jsi...@us...> - 2001-08-22 18:18:18
|
Update of /cvsroot/linux-mips/linux/arch/mips64/mips-boards/generic
In directory usw-pr-cvs1:/tmp/cvs-serv15361/arch/mips64/mips-boards/generic
Modified Files:
pci.c
Log Message:
Synced to Ralph's tree
Index: pci.c
===================================================================
RCS file: /cvsroot/linux-mips/linux/arch/mips64/mips-boards/generic/pci.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** pci.c 2001/06/22 02:29:32 1.1.1.1
--- pci.c 2001/08/22 18:18:14 1.2
***************
*** 321,324 ****
--- 321,329 ----
}
+ unsigned __init int pcibios_assign_all_busses(void)
+ {
+ return 1;
+ }
+
/*
* Called after each bus is probed, but before its children
|
|
From: James S. <jsi...@us...> - 2001-08-22 18:18:18
|
Update of /cvsroot/linux-mips/linux/drivers/char
In directory usw-pr-cvs1:/tmp/cvs-serv15361/drivers/char
Modified Files:
tty_io.c
Log Message:
Synced to Ralph's tree
Index: tty_io.c
===================================================================
RCS file: /cvsroot/linux-mips/linux/drivers/char/tty_io.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** tty_io.c 2001/08/10 03:04:58 1.3
--- tty_io.c 2001/08/22 18:18:14 1.4
***************
*** 149,152 ****
--- 149,153 ----
extern void console_8xx_init(void);
extern int rs_8xx_init(void);
+ extern void mac_scc_console_init(void);
extern void hwc_console_init(void);
extern void hwc_tty_init(void);
***************
*** 1874,1877 ****
--- 1875,1880 ----
void do_SAK(struct tty_struct *tty)
{
+ if (!tty)
+ return;
PREPARE_TQUEUE(&tty->SAK_tq, __do_SAK, tty);
schedule_task(&tty->SAK_tq);
***************
*** 2190,2193 ****
--- 2193,2198 ----
#if (defined(CONFIG_8xx) || defined(CONFIG_8260))
console_8xx_init();
+ #elif defined(CONFIG_MAC_SERIAL)
+ mac_scc_console_init();
#elif defined(CONFIG_SERIAL)
serial_console_init();
***************
*** 2321,2327 ****
#ifdef CONFIG_COMPUTONE
ip2_init();
- #endif
- #ifdef CONFIG_MAC_SERIAL
- macserial_init();
#endif
#ifdef CONFIG_ROCKETPORT
--- 2326,2329 ----
|
|
From: James S. <jsi...@us...> - 2001-08-22 18:18:18
|
Update of /cvsroot/linux-mips/linux/include/asm-mips64
In directory usw-pr-cvs1:/tmp/cvs-serv15361/include/asm-mips64
Modified Files:
elf.h hardirq.h ide.h pci.h socket.h softirq.h termios.h
Log Message:
Synced to Ralph's tree
Index: elf.h
===================================================================
RCS file: /cvsroot/linux-mips/linux/include/asm-mips64/elf.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** elf.h 2001/06/22 02:29:33 1.1.1.1
--- elf.h 2001/08/22 18:18:14 1.2
***************
*** 94,98 ****
#ifndef ELF_ET_DYN_BASE
! #define ELF_ET_DYN_BASE (2 * TASK_SIZE / 3)
#endif
--- 94,98 ----
#ifndef ELF_ET_DYN_BASE
! #define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
#endif
Index: hardirq.h
===================================================================
RCS file: /cvsroot/linux-mips/linux/include/asm-mips64/hardirq.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** hardirq.h 2001/08/10 19:55:51 1.1
--- hardirq.h 2001/08/22 18:18:14 1.2
***************
*** 4,9 ****
* for more details.
*
! * Copyright (C) 1997 - 2000 by Ralf Baechle
* Copyright (C) 1999, 2000 Silicon Graphics, Inc.
*/
#ifndef _ASM_HARDIRQ_H
--- 4,10 ----
* for more details.
*
! * Copyright (C) 1997 - 2000, 2001 by Ralf Baechle
* Copyright (C) 1999, 2000 Silicon Graphics, Inc.
+ * Copyright (C) 2001 MIPS Technologies, Inc.
*/
#ifndef _ASM_HARDIRQ_H
***************
*** 14,18 ****
#include <linux/irq.h>
- /* entry.S is sensitive to the offsets of these fields */
typedef struct {
unsigned int __softirq_pending;
--- 15,18 ----
Index: ide.h
===================================================================
RCS file: /cvsroot/linux-mips/linux/include/asm-mips64/ide.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** ide.h 2001/08/20 17:29:56 1.2
--- ide.h 2001/08/22 18:18:14 1.3
***************
*** 9,12 ****
--- 9,16 ----
*/
+ /*
+ * This file contains the MIPS architecture specific IDE code.
+ */
+
#ifndef __ASM_IDE_H
#define __ASM_IDE_H
Index: pci.h
===================================================================
RCS file: /cvsroot/linux-mips/linux/include/asm-mips64/pci.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** pci.h 2001/06/22 02:29:33 1.1.1.1
--- pci.h 2001/08/22 18:18:14 1.2
***************
*** 7,10 ****
--- 7,12 ----
#define _ASM_PCI_H
+ #include <linux/config.h>
+
#ifdef __KERNEL__
***************
*** 13,17 ****
--- 15,23 ----
or architectures with incomplete PCI setup by the loader */
+ #ifdef CONFIG_PCI
+ extern unsigned int pcibios_assign_all_busses(void);
+ #else
#define pcibios_assign_all_busses() 0
+ #endif
#define PCIBIOS_MIN_IO 0x1000
Index: socket.h
===================================================================
RCS file: /cvsroot/linux-mips/linux/include/asm-mips64/socket.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** socket.h 2001/08/10 19:28:11 1.4
--- socket.h 2001/08/22 18:18:14 1.5
***************
*** 4,9 ****
* for more details.
*
! * Copyright (C) 1997, 1999, 2000 Ralf Baechle
! * Copyright (C) 2000 Silicon Graphics, Inc.
*/
#ifndef _ASM_SOCKET_H
--- 4,9 ----
* for more details.
*
! * Copyright (C) 1997, 1999, 2000, 2001 Ralf Baechle
! * Copyright (C) 2000, 2001 Silicon Graphics, Inc.
*/
#ifndef _ASM_SOCKET_H
***************
*** 42,46 ****
#define SO_SNDTIMEO 0x1005 /* send timeout */
#define SO_RCVTIMEO 0x1006 /* receive timeout */
! #define SO_ACCEPTCONN 0x1007
/* linux-specific, might as well be the same as on i386 */
--- 42,46 ----
#define SO_SNDTIMEO 0x1005 /* send timeout */
#define SO_RCVTIMEO 0x1006 /* receive timeout */
! #define SO_ACCEPTCONN 0x1009
/* linux-specific, might as well be the same as on i386 */
Index: softirq.h
===================================================================
RCS file: /cvsroot/linux-mips/linux/include/asm-mips64/softirq.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** softirq.h 2001/08/10 20:07:27 1.1
--- softirq.h 2001/08/22 18:18:14 1.2
***************
*** 4,9 ****
* for more details.
*
! * Copyright (C) 1997, 1998, 1999, 2000 by Ralf Baechle
* Copyright (C) 1999, 2000 Silicon Graphics, Inc.
*/
#ifndef _ASM_SOFTIRQ_H
--- 4,10 ----
* for more details.
*
! * Copyright (C) 1997, 1998, 1999, 2000, 2001 by Ralf Baechle
* Copyright (C) 1999, 2000 Silicon Graphics, Inc.
+ * Copyright (C) 2001 MIPS Technologies, Inc.
*/
#ifndef _ASM_SOFTIRQ_H
***************
*** 13,26 ****
#include <asm/hardirq.h>
! #define cpu_bh_disable(cpu) do { local_bh_count(cpu)++; barrier(); } while (0)
! #define cpu_bh_enable(cpu) do { barrier(); local_bh_count(cpu)--; } while (0)
#define local_bh_disable() cpu_bh_disable(smp_processor_id())
! #define __local_bh_enable local_bh_enable
! #define local_bh_enable() cpu_bh_enable(smp_processor_id())
#define in_softirq() (local_bh_count(smp_processor_id()) != 0)
! #define __cpu_raise_softirq(cpu,nr) set_bit((nr), &softirq_pending(cpu))
#endif /* _ASM_SOFTIRQ_H */
--- 14,57 ----
#include <asm/hardirq.h>
! extern inline void cpu_bh_disable(int cpu)
! {
! local_bh_count(cpu)++;
! barrier();
! }
!
! extern inline void __cpu_bh_enable(int cpu)
! {
! barrier();
! local_bh_count(cpu)--;
! }
#define local_bh_disable() cpu_bh_disable(smp_processor_id())
! #define __local_bh_enable() __cpu_bh_enable(smp_processor_id())
! #define local_bh_enable() \
! do { \
! int cpu; \
! \
! barrier(); \
! cpu = smp_processor_id(); \
! if (!--local_bh_count(cpu) && softirq_pending(cpu)) \
! do_softirq(); \
! } while (0)
#define in_softirq() (local_bh_count(smp_processor_id()) != 0)
! extern inline void __cpu_raise_softirq(int cpu, int nr)
! {
! unsigned int *m = (unsigned int *) &softirq_pending(cpu);
! unsigned int temp;
!
! __asm__ __volatile__(
! "1:\tll\t%0, %1\t\t\t# __cpu_raise_softirq\n\t"
! "or\t%0, %2\n\t"
! "sc\t%0, %1\n\t"
! "beqz\t%0, 1b"
! : "=&r" (temp), "=m" (*m)
! : "ir" (1UL << nr), "m" (*m)
! : "memory");
! }
#endif /* _ASM_SOFTIRQ_H */
Index: termios.h
===================================================================
RCS file: /cvsroot/linux-mips/linux/include/asm-mips64/termios.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** termios.h 2001/08/10 19:28:58 1.2
--- termios.h 2001/08/22 18:18:14 1.3
***************
*** 1,9 ****
! /* $Id$
! *
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*
! * Copyright (C) 1995, 1996 by Ralf Baechle
*/
#ifndef _ASM_TERMIOS_H
--- 1,9 ----
! /*
* 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.
*
! * Copyright (C) 1995, 1996, 2000, 2001 by Ralf Baechle
! * Copyright (C) 2000, 2001 Silicon Graphics, Inc.
*/
#ifndef _ASM_TERMIOS_H
***************
*** 102,106 ****
#define N_HDLC 13 /* synchronous HDLC */
#define N_SYNC_PPP 14 /* synchronous PPP */
! #define N_HCI 15 /* Bluetooth HCI UART */
#ifdef __KERNEL__
--- 102,106 ----
#define N_HDLC 13 /* synchronous HDLC */
#define N_SYNC_PPP 14 /* synchronous PPP */
! #define N_HCI 15 /* Bluetooth HCI UART */
#ifdef __KERNEL__
|
|
From: James S. <jsi...@us...> - 2001-08-22 18:18:18
|
Update of /cvsroot/linux-mips/linux/include/asm-mips
In directory usw-pr-cvs1:/tmp/cvs-serv15361/include/asm-mips
Modified Files:
hardirq.h ioctls.h pci.h softirq.h system.h termios.h
Added Files:
elf.h
Log Message:
Synced to Ralph's tree
Index: hardirq.h
===================================================================
RCS file: /cvsroot/linux-mips/linux/include/asm-mips/hardirq.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** hardirq.h 2001/08/10 19:54:38 1.3
--- hardirq.h 2001/08/22 18:18:14 1.4
***************
*** 4,9 ****
* for more details.
*
! * Copyright (C) 1997, 1998, 1999, 2000 by Ralf Baechle
* Copyright (C) 1999, 2000 Silicon Graphics, Inc.
*/
#ifndef _ASM_HARDIRQ_H
--- 4,10 ----
* for more details.
*
! * Copyright (C) 1997, 1998, 1999, 2000, 2001 by Ralf Baechle
* Copyright (C) 1999, 2000 Silicon Graphics, Inc.
+ * Copyright (C) 2001 MIPS Technologies, Inc.
*/
#ifndef _ASM_HARDIRQ_H
***************
*** 15,19 ****
#include <linux/spinlock.h>
- /* entry.S is sensitive to the offsets of these fields */
typedef struct {
unsigned int __softirq_pending;
--- 16,19 ----
Index: ioctls.h
===================================================================
RCS file: /cvsroot/linux-mips/linux/include/asm-mips/ioctls.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** ioctls.h 2001/07/24 16:15:25 1.1
--- ioctls.h 2001/08/22 18:18:14 1.2
***************
*** 53,56 ****
--- 53,57 ----
#define FIOASYNC 0x667d
#define FIONBIO 0x667e
+ #define FIOQSIZE 0x667f
#define TIOCGLTC 0x7474 /* get special local chars */
Index: pci.h
===================================================================
RCS file: /cvsroot/linux-mips/linux/include/asm-mips/pci.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** pci.h 2001/07/09 19:28:47 1.2
--- pci.h 2001/08/22 18:18:14 1.3
***************
*** 7,10 ****
--- 7,12 ----
#define _ASM_PCI_H
+ #include <linux/config.h>
+
#ifdef __KERNEL__
***************
*** 13,18 ****
or architectures with incomplete PCI setup by the loader */
! //#define pcibios_assign_all_busses() 0
! #define pcibios_assign_all_busses() 1
#define PCIBIOS_MIN_IO 0x1000
--- 15,23 ----
or architectures with incomplete PCI setup by the loader */
! #ifdef CONFIG_PCI
! extern unsigned int pcibios_assign_all_busses(void);
! #else
! #define pcibios_assign_all_busses() 0
! #endif
#define PCIBIOS_MIN_IO 0x1000
Index: softirq.h
===================================================================
RCS file: /cvsroot/linux-mips/linux/include/asm-mips/softirq.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** softirq.h 2001/08/10 20:06:04 1.1
--- softirq.h 2001/08/22 18:18:14 1.2
***************
*** 1,10 ****
! /* $Id$
! *
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*
! * Copyright (C) 1997, 1998, 1999, 2000 by Ralf Baechle
* Copyright (C) 1999, 2000 Silicon Graphics, Inc.
*/
#ifndef _ASM_SOFTIRQ_H
--- 1,10 ----
! /*
* 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.
*
! * Copyright (C) 1997, 1998, 1999, 2000, 2001 Ralf Baechle
* Copyright (C) 1999, 2000 Silicon Graphics, Inc.
+ * Copyright (C) 1999, 2001 MIPS Technologies, Inc.
*/
#ifndef _ASM_SOFTIRQ_H
***************
*** 14,27 ****
#include <asm/hardirq.h>
! #define cpu_bh_disable(cpu) do { local_bh_count(cpu)++; barrier(); } while (0)
! #define cpu_bh_enable(cpu) do { barrier(); local_bh_count(cpu)--; } while (0)
#define local_bh_disable() cpu_bh_disable(smp_processor_id())
! #define __local_bh_enable local_bh_enable
! #define local_bh_enable() cpu_bh_enable(smp_processor_id())
#define in_softirq() (local_bh_count(smp_processor_id()) != 0)
! #define __cpu_raise_softirq(cpu,nr) set_bit((nr), &softirq_pending(cpu))
#endif /* _ASM_SOFTIRQ_H */
--- 14,45 ----
#include <asm/hardirq.h>
! extern inline void cpu_bh_disable(int cpu)
! {
! local_bh_count(cpu)++;
! barrier();
! }
!
! extern inline void __cpu_bh_enable(int cpu)
! {
! barrier();
! local_bh_count(cpu)--;
! }
!
#define local_bh_disable() cpu_bh_disable(smp_processor_id())
! #define __local_bh_enable() __cpu_bh_enable(smp_processor_id())
! #define local_bh_enable() \
! do { \
! int cpu; \
! \
! barrier(); \
! cpu = smp_processor_id(); \
! if (!--local_bh_count(cpu) && softirq_pending(cpu)) \
! do_softirq(); \
! } while (0)
#define in_softirq() (local_bh_count(smp_processor_id()) != 0)
! #define __cpu_raise_softirq(cpu, nr) set_bit(nr, &softirq_pending(cpu))
#endif /* _ASM_SOFTIRQ_H */
Index: system.h
===================================================================
RCS file: /cvsroot/linux-mips/linux/include/asm-mips/system.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** system.h 2001/07/16 18:30:08 1.2
--- system.h 2001/08/22 18:18:14 1.3
***************
*** 256,260 ****
extern void __die_if_kernel(const char *, struct pt_regs *, const char *where,
unsigned long line);
- extern int abs(int);
#define die(msg, regs) \
--- 256,259 ----
Index: termios.h
===================================================================
RCS file: /cvsroot/linux-mips/linux/include/asm-mips/termios.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** termios.h 2001/08/10 19:24:29 1.2
--- termios.h 2001/08/22 18:18:14 1.3
***************
*** 101,105 ****
#define N_HDLC 13 /* synchronous HDLC */
#define N_SYNC_PPP 14 /* synchronous PPP */
! #define N_HCI 15 /* Bluetooth HCI UART */
#ifdef __KERNEL__
--- 101,105 ----
#define N_HDLC 13 /* synchronous HDLC */
#define N_SYNC_PPP 14 /* synchronous PPP */
! #define N_HCI 15 /* Bluetooth HCI UART */
#ifdef __KERNEL__
|
|
From: James S. <jsi...@us...> - 2001-08-22 18:18:18
|
Update of /cvsroot/linux-mips/linux/arch/mips64/sgi-ip27
In directory usw-pr-cvs1:/tmp/cvs-serv15361/arch/mips64/sgi-ip27
Modified Files:
ip27-irq.c ip27-pci.c
Log Message:
Synced to Ralph's tree
Index: ip27-irq.c
===================================================================
RCS file: /cvsroot/linux-mips/linux/arch/mips64/sgi-ip27/ip27-irq.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** ip27-irq.c 2001/06/22 02:29:32 1.1.1.1
--- ip27-irq.c 2001/08/22 18:18:14 1.2
***************
*** 93,102 ****
if (node_level_to_irq[nodenum][j] == -1) {
node_level_to_irq[nodenum][j] = irq;
! return(j);
}
}
printk("Cpu %ld flooded with devices\n", cpunum);
while(1);
! return(-1);
}
--- 93,102 ----
if (node_level_to_irq[nodenum][j] == -1) {
node_level_to_irq[nodenum][j] = irq;
! return j;
}
}
printk("Cpu %ld flooded with devices\n", cpunum);
while(1);
! return -1;
}
***************
*** 184,188 ****
irq_exit(thiscpu, irq);
! /* unmasking and bottom half handling is done magically for us. */
}
--- 184,189 ----
irq_exit(thiscpu, irq);
! if (softirq_pending(thiscpu))
! do_softirq();
}
Index: ip27-pci.c
===================================================================
RCS file: /cvsroot/linux-mips/linux/arch/mips64/sgi-ip27/ip27-pci.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** ip27-pci.c 2001/06/22 02:29:32 1.1.1.1
--- ip27-pci.c 2001/08/22 18:18:14 1.2
***************
*** 257,260 ****
--- 257,265 ----
}
+ unsigned __init int pcibios_assign_all_busses(void)
+ {
+ return 0;
+ }
+
char * __init
pcibios_setup(char *str)
|
|
From: James S. <jsi...@us...> - 2001-08-22 18:18:18
|
Update of /cvsroot/linux-mips/linux/arch/mips/kernel In directory usw-pr-cvs1:/tmp/cvs-serv15361/arch/mips/kernel Modified Files: entry.S scall_o32.S time.c Log Message: Synced to Ralph's tree Index: entry.S =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/entry.S,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** entry.S 2001/08/13 16:42:50 1.4 --- entry.S 2001/08/22 18:18:13 1.5 *************** *** 1,12 **** ! /* $Id$ ! * ! * Low level exception handling ! * * 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. * ! * Copyright (C) 1994 - 2000 by Ralf Baechle * Copyright (C) 1999, 2000 Silicon Graphics, Inc. */ #include <linux/config.h> --- 1,11 ---- ! /* ! /* * 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. * ! * Copyright (C) 1994 - 2000, 2001 by Ralf Baechle * Copyright (C) 1999, 2000 Silicon Graphics, Inc. + * Copyright (C) 2001 MIPS Technologies, Inc. */ #include <linux/config.h> *************** *** 27,30 **** --- 26,33 ---- #include <asm/isadep.h> + /* This duplicates the definition from <linux/sched.h> */ + #define PT_TRACESYS 0x00000002 /* tracing system calls */ + + .text .align 4 *************** *** 32,72 **** .set reorder EXPORT(ret_from_fork) ! move a0, v0 # prev jal schedule_tail j ret_from_sys_call ! EXPORT(handle_softirq) ! jal do_softirq ! b 9f reschedule: jal schedule EXPORT(ret_from_sys_call) - EXPORT(ret_from_irq) .type ret_from_irq,@function - la t1, irq_stat # softirq_pending - #ifdef CONFIG_SMP - lw t0, TASK_PROCESSOR($28) - sll t0, t0, 5 - addu t1, t0 - #endif - lw t0, 0(t1) # softirq_pending - bnez t0, handle_softirq ! 9: lw t0,PT_STATUS(sp) # returning to kernel mode? ! lw t2, TASK_NEED_RESCHED($28) ! andi t1, t0, KU_USER ! beqz t1, return # -> yes ! bnez t2, reschedule ! lw v0, TASK_SIGPENDING($28) ! move a0, zero ! beqz v0, return ! move a1, sp ! jal do_signal ! EXPORT(return) .set noat RESTORE_ALL_AND_RET .set at /* * Common spurious interrupt handler. --- 35,87 ---- .set reorder EXPORT(ret_from_fork) ! move a0, v0 # prev jal schedule_tail + lw t0, TASK_PTRACE($28) # syscall tracing enabled? + andi t0, PT_TRACESYS + bnez t0, tracesys_exit j ret_from_sys_call ! tracesys_exit: jal syscall_trace ! b ret_from_sys_call ! ! EXPORT(ret_from_irq) ! EXPORT(ret_from_exception) ! lw t0, PT_STATUS(sp) # returning to kernel mode? ! andi t0, t0, KU_USER ! bnez t0, ret_from_sys_call ! j restore_all reschedule: jal schedule EXPORT(ret_from_sys_call) .type ret_from_irq,@function ! mfc0 t0, CP0_STATUS # need_resched and signals atomic test ! ori t0, t0, 1 ! xori t0, t0, 1 ! mtc0 t0, CP0_STATUS ! nop; nop; nop ! lw v0, TASK_NEED_RESCHED($28) ! lw v1, TASK_SIGPENDING($28) ! bnez v0, reschedule ! bnez v1, signal_return ! restore_all: .set noat RESTORE_ALL_AND_RET .set at + /* Put this behind restore_all for the sake of the branch prediction. */ + signal_return: + .type signal_return, @function + + mfc0 t0, CP0_STATUS + ori t0, t0, 1 + mtc0 t0, CP0_STATUS + + move a0, zero + move a1, sp + jal do_signal + b restore_all + /* * Common spurious interrupt handler. *************** *** 84,89 **** .set noreorder addiu t0,1 j ret_from_irq - sw t0,%lo(spurious_count)(t1) END(spurious_interrupt) --- 99,104 ---- .set noreorder addiu t0,1 + sw t0,%lo(spurious_count)(t1) j ret_from_irq END(spurious_interrupt) *************** *** 105,109 **** STI #define __BUILD_clear_ade(exception) \ ! .set reorder; \ MFC0 t0,CP0_BADVADDR; \ .set noreorder; \ --- 120,124 ---- STI #define __BUILD_clear_ade(exception) \ ! .set reorder; \ MFC0 t0,CP0_BADVADDR; \ .set noreorder; \ *************** *** 138,143 **** __BUILD_##verbose(exception); \ jal do_##handler; \ ! move a0,sp; \ ! j ret_from_sys_call; \ nop; \ END(handle_##exception) --- 153,158 ---- __BUILD_##verbose(exception); \ jal do_##handler; \ ! move a0, sp; \ ! j ret_from_exception; \ nop; \ END(handle_##exception) Index: scall_o32.S =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/scall_o32.S,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** scall_o32.S 2001/08/13 22:07:46 1.3 --- scall_o32.S 2001/08/22 18:18:14 1.4 *************** *** 66,97 **** EXPORT(o32_ret_from_sys_call) ! la t1, irq_stat # softirq_pending ! #ifdef CONFIG_SMP ! lw t0, TASK_PROCESSOR($28) ! sll t0, t0, 5 ! addu t1, t0 ! #endif ! lw t0, 0(t1) # softirq_pending ! bnez t0, o32_handle_softirq - 9: lw t0, PT_STATUS(sp) # returning to kernel mode? - andi t1, t0, KU_USER lw t2, TASK_NEED_RESCHED($28) - beqz t1, o32_return # -> yes bnez t2, o32_reschedule lw v0, TASK_SIGPENDING($28) move a0, zero - beqz v0, o32_return move a1, sp - SAVE_STATIC jal do_signal - o32_return: - RESTORE_SOME - RESTORE_SP_AND_RET - - o32_handle_softirq: - jal do_softirq - b 9b o32_reschedule: SAVE_STATIC --- 66,95 ---- EXPORT(o32_ret_from_sys_call) ! mfc0 t0, CP0_STATUS # need_resched and signals atomic test ! ori t0, t0, 1 ! xori t0, t0, 1 ! mtc0 t0, CP0_STATUS lw t2, TASK_NEED_RESCHED($28) bnez t2, o32_reschedule lw v0, TASK_SIGPENDING($28) + bnez v0, signal_return + restore_all: + RESTORE_SOME + RESTORE_SP_AND_RET + + /* Put this behind restore_all for the sake of the branch prediction. */ + signal_return: + .type signal_return, @function + + mfc0 t0, CP0_STATUS + ori t0, t0, 1 + mtc0 t0, CP0_STATUS + move a0, zero move a1, sp jal do_signal + b restore_all o32_reschedule: SAVE_STATIC Index: time.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/time.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** time.c 2001/08/10 21:53:38 1.4 --- time.c 2001/08/22 18:18:14 1.5 *************** *** 374,378 **** irq_exit(cpu, irq); - /* check for bottom half */ if (softirq_pending(cpu)) do_softirq(); --- 374,377 ---- |
|
From: James S. <jsi...@us...> - 2001-08-22 18:18:18
|
Update of /cvsroot/linux-mips/linux/arch/mips/ite-boards/generic
In directory usw-pr-cvs1:/tmp/cvs-serv15361/arch/mips/ite-boards/generic
Modified Files:
it8172_pci.c
Log Message:
Synced to Ralph's tree
Index: it8172_pci.c
===================================================================
RCS file: /cvsroot/linux-mips/linux/arch/mips/ite-boards/generic/it8172_pci.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** it8172_pci.c 2001/07/07 19:41:39 1.2
--- it8172_pci.c 2001/08/22 18:18:13 1.3
***************
*** 220,223 ****
};
!
#endif /* CONFIG_PCI */
--- 220,226 ----
};
! unsigned __init int pcibios_assign_all_busses(void)
! {
! return 1;
! }
#endif /* CONFIG_PCI */
|
|
From: James S. <jsi...@us...> - 2001-08-22 18:18:17
|
Update of /cvsroot/linux-mips/linux/arch/mips/gt64120/common
In directory usw-pr-cvs1:/tmp/cvs-serv15361/arch/mips/gt64120/common
Modified Files:
pci.c
Log Message:
Synced to Ralph's tree
Index: pci.c
===================================================================
RCS file: /cvsroot/linux-mips/linux/arch/mips/gt64120/common/pci.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** pci.c 2001/06/22 02:29:32 1.1.1.1
--- pci.c 2001/08/22 18:18:13 1.2
***************
*** 1138,1140 ****
--- 1138,1145 ----
}
+ unsigned __init int pcibios_assign_all_busses(void)
+ {
+ return 1;
+ }
+
#endif /* CONFIG_PCI */
|
|
From: James S. <jsi...@us...> - 2001-08-22 18:18:17
|
Update of /cvsroot/linux-mips/linux/arch/mips/sni
In directory usw-pr-cvs1:/tmp/cvs-serv15361/arch/mips/sni
Added Files:
pci.c
Log Message:
Synced to Ralph's tree
--- NEW FILE: pci.c ---
/*
* 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.
*
* SNI specific PCI support for RM200/RM300.
*
* Copyright (C) 1997 - 2000 Ralf Baechle
*/
#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/pci.h>
#include <linux/types.h>
#include <asm/byteorder.h>
#include <asm/sni.h>
#ifdef CONFIG_PCI
#define mkaddr(dev, where) \
do { \
if ((dev)->bus->number == 0) \
return -1; \
*(volatile u32 *)PCIMT_CONFIG_ADDRESS = \
((dev->bus->number & 0xff) << 0x10) | \
((dev->devfn & 0xff) << 0x08) | \
(where & 0xfc); \
} while(0);
#if 0
/* To do: Bring this uptodate ... */
static void pcimt_pcibios_fixup (void)
{
struct pci_dev *dev;
pci_for_each_dev(dev) {
/*
* TODO: Take care of RM300 revision D boards for where the
* network slot became an ordinary PCI slot.
*/
if (dev->devfn == PCI_DEVFN(1, 0)) {
/* Evil hack ... */
set_cp0_config(CONF_CM_CMASK, CONF_CM_CACHABLE_NO_WA);
dev->irq = PCIMT_IRQ_SCSI;
continue;
}
if (dev->devfn == PCI_DEVFN(2, 0)) {
dev->irq = PCIMT_IRQ_ETHERNET;
continue;
}
switch(dev->irq) {
case 1 ... 4:
dev->irq += PCIMT_IRQ_INTA - 1;
break;
case 0:
break;
default:
printk("PCI device on bus %d, dev %d, function %d "
"impossible interrupt configured.\n",
dev->bus->number, PCI_SLOT(dev->devfn),
PCI_SLOT(dev->devfn));
}
}
}
#endif
/*
* We can't address 8 and 16 bit words directly. Instead we have to
* read/write a 32bit word and mask/modify the data we actually want.
*/
static int pcimt_read_config_byte (struct pci_dev *dev,
int where, unsigned char *val)
{
u32 res;
mkaddr(dev, where);
res = *(volatile u32 *)PCIMT_CONFIG_DATA;
res = (le32_to_cpu(res) >> ((where & 3) << 3)) & 0xff;
*val = res;
return PCIBIOS_SUCCESSFUL;
}
static int pcimt_read_config_word (struct pci_dev *dev,
int where, unsigned short *val)
{
u32 res;
if (where & 1)
return PCIBIOS_BAD_REGISTER_NUMBER;
mkaddr(dev, where);
res = *(volatile u32 *)PCIMT_CONFIG_DATA;
res = (le32_to_cpu(res) >> ((where & 3) << 3)) & 0xffff;
*val = res;
return PCIBIOS_SUCCESSFUL;
}
static int pcimt_read_config_dword (struct pci_dev *dev,
int where, unsigned int *val)
{
u32 res;
if (where & 3)
return PCIBIOS_BAD_REGISTER_NUMBER;
mkaddr(dev, where);
res = *(volatile u32 *)PCIMT_CONFIG_DATA;
res = le32_to_cpu(res);
*val = res;
return PCIBIOS_SUCCESSFUL;
}
static int pcimt_write_config_byte (struct pci_dev *dev,
int where, unsigned char val)
{
mkaddr(dev, where);
*(volatile u8 *)(PCIMT_CONFIG_DATA + (where & 3)) = val;
return PCIBIOS_SUCCESSFUL;
}
static int pcimt_write_config_word (struct pci_dev *dev,
int where, unsigned short val)
{
if (where & 1)
return PCIBIOS_BAD_REGISTER_NUMBER;
mkaddr(dev, where);
*(volatile u16 *)(PCIMT_CONFIG_DATA + (where & 3)) = le16_to_cpu(val);
return PCIBIOS_SUCCESSFUL;
}
static int pcimt_write_config_dword (struct pci_dev *dev,
int where, unsigned int val)
{
if (where & 3)
return PCIBIOS_BAD_REGISTER_NUMBER;
mkaddr(dev, where);
*(volatile u32 *)PCIMT_CONFIG_DATA = le32_to_cpu(val);
return PCIBIOS_SUCCESSFUL;
}
struct pci_ops sni_pci_ops = {
pcimt_read_config_byte,
pcimt_read_config_word,
pcimt_read_config_dword,
pcimt_write_config_byte,
pcimt_write_config_word,
pcimt_write_config_dword
};
void __init
pcibios_fixup_bus(struct pci_bus *b)
{
}
void
pcibios_update_resource(struct pci_dev *dev, struct resource *root,
struct resource *res, int resource)
{
u32 new, check;
int reg;
new = res->start | (res->flags & PCI_REGION_FLAG_MASK);
if (resource < 6) {
reg = PCI_BASE_ADDRESS_0 + 4*resource;
} else if (resource == PCI_ROM_RESOURCE) {
res->flags |= PCI_ROM_ADDRESS_ENABLE;
new |= PCI_ROM_ADDRESS_ENABLE;
reg = dev->rom_base_reg;
} else {
/* Somebody might have asked allocation of a non-standard resource */
return;
}
pci_write_config_dword(dev, reg, new);
pci_read_config_dword(dev, reg, &check);
if ((new ^ check) & ((new & PCI_BASE_ADDRESS_SPACE_IO) ? PCI_BASE_ADDRESS_IO_MASK : PCI_BASE_ADDRESS_MEM_MASK)) {
printk(KERN_ERR "PCI: Error while updating region "
"%s/%d (%08x != %08x)\n", dev->slot_name, resource,
new, check);
}
}
void __init pcibios_init(void)
{
struct pci_ops *ops = &sni_pci_ops;
pci_scan_bus(0, ops, NULL);
}
int __init pcibios_enable_device(struct pci_dev *dev)
{
/* Not needed, since we enable all devices at startup. */
return 0;
}
void __init
pcibios_align_resource(void *data, struct resource *res, unsigned long size)
{
}
unsigned __init int pcibios_assign_all_busses(void)
{
return 0;
}
char * __init
pcibios_setup(char *str)
{
/* Nothing to do for now. */
return str;
}
struct pci_fixup pcibios_fixups[] = {
{ 0 }
};
#endif /* CONFIG_PCI */
|
|
From: James S. <jsi...@us...> - 2001-08-22 18:18:17
|
Update of /cvsroot/linux-mips/linux/arch/mips/mips-boards/generic
In directory usw-pr-cvs1:/tmp/cvs-serv15361/arch/mips/mips-boards/generic
Added Files:
pci.c
Log Message:
Synced to Ralph's tree
--- NEW FILE: pci.c ---
/*
* Carsten Langgaard, car...@mi...
* Copyright (C) 1999,2000 MIPS Technologies, Inc. All rights reserved.
*
* This program is free software; you can distribute it and/or modify it
* under the terms of the GNU General Public License (Version 2) as
* published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
*
* MIPS boards specific PCI support.
*
*/
#include <linux/config.h>
#ifdef CONFIG_PCI
#include <linux/types.h>
#include <linux/pci.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <asm/mips-boards/generic.h>
#include <asm/gt64120.h>
#ifdef CONFIG_MIPS_MALTA
#include <asm/mips-boards/malta.h>
#endif
#define PCI_ACCESS_READ 0
#define PCI_ACCESS_WRITE 1
static int
mips_pcibios_config_access(unsigned char access_type, struct pci_dev *dev,
unsigned char where, u32 *data)
{
unsigned char bus = dev->bus->number;
unsigned char dev_fn = dev->devfn;
u32 intr;
if ((bus == 0) && (dev_fn >= PCI_DEVFN(31,0)))
return -1; /* Because of a bug in the galileo (for slot 31). */
/* Clear cause register bits */
GT_WRITE(GT_INTRCAUSE_OFS, ~(GT_INTRCAUSE_MASABORT0_BIT |
GT_INTRCAUSE_TARABORT0_BIT));
/* Setup address */
GT_WRITE(GT_PCI0_CFGADDR_OFS,
(bus << GT_PCI0_CFGADDR_BUSNUM_SHF) |
(dev_fn << GT_PCI0_CFGADDR_FUNCTNUM_SHF) |
((where / 4) << GT_PCI0_CFGADDR_REGNUM_SHF) |
GT_PCI0_CFGADDR_CONFIGEN_BIT);
if (access_type == PCI_ACCESS_WRITE) {
if (bus == 0 && dev_fn == 0) {
/*
* Galileo is acting differently than other devices.
*/
GT_WRITE(GT_PCI0_CFGDATA_OFS, *data);
} else {
GT_PCI_WRITE(GT_PCI0_CFGDATA_OFS, *data);
}
} else {
if (bus == 0 && dev_fn == 0) {
/*
* Galileo is acting differently than other devices.
*/
GT_READ(GT_PCI0_CFGDATA_OFS, *data);
} else {
GT_PCI_READ(GT_PCI0_CFGDATA_OFS, *data);
}
}
/* Check for master or target abort */
GT_READ(GT_INTRCAUSE_OFS, intr);
if (intr & (GT_INTRCAUSE_MASABORT0_BIT | GT_INTRCAUSE_TARABORT0_BIT))
{
/* Error occured */
/* Clear bits */
GT_WRITE( GT_INTRCAUSE_OFS, ~(GT_INTRCAUSE_MASABORT0_BIT |
GT_INTRCAUSE_TARABORT0_BIT) );
return -1;
}
return 0;
}
/*
* We can't address 8 and 16 bit words directly. Instead we have to
* read/write a 32bit word and mask/modify the data we actually want.
*/
static int
mips_pcibios_read_config_byte (struct pci_dev *dev, int where, u8 *val)
{
u32 data = 0;
if (mips_pcibios_config_access(PCI_ACCESS_READ, dev, where, &data))
return -1;
*val = (data >> ((where & 3) << 3)) & 0xff;
return PCIBIOS_SUCCESSFUL;
}
static int
mips_pcibios_read_config_word (struct pci_dev *dev, int where, u16 *val)
{
u32 data = 0;
if (where & 1)
return PCIBIOS_BAD_REGISTER_NUMBER;
if (mips_pcibios_config_access(PCI_ACCESS_READ, dev, where, &data))
return -1;
*val = (data >> ((where & 3) << 3)) & 0xffff;
return PCIBIOS_SUCCESSFUL;
}
static int
mips_pcibios_read_config_dword (struct pci_dev *dev, int where, u32 *val)
{
u32 data = 0;
if (where & 3)
return PCIBIOS_BAD_REGISTER_NUMBER;
if (mips_pcibios_config_access(PCI_ACCESS_READ, dev, where, &data))
return -1;
*val = data;
return PCIBIOS_SUCCESSFUL;
}
static int
mips_pcibios_write_config_byte (struct pci_dev *dev, int where, u8 val)
{
u32 data = 0;
if (mips_pcibios_config_access(PCI_ACCESS_READ, dev, where, &data))
return -1;
data = (data & ~(0xff << ((where & 3) << 3))) |
(val << ((where & 3) << 3));
if (mips_pcibios_config_access(PCI_ACCESS_WRITE, dev, where, &data))
return -1;
return PCIBIOS_SUCCESSFUL;
}
static int
mips_pcibios_write_config_word (struct pci_dev *dev, int where, u16 val)
{
u32 data = 0;
if (where & 1)
return PCIBIOS_BAD_REGISTER_NUMBER;
if (mips_pcibios_config_access(PCI_ACCESS_READ, dev, where, &data))
return -1;
data = (data & ~(0xffff << ((where & 3) << 3))) |
(val << ((where & 3) << 3));
if (mips_pcibios_config_access(PCI_ACCESS_WRITE, dev, where, &data))
return -1;
return PCIBIOS_SUCCESSFUL;
}
static int
mips_pcibios_write_config_dword(struct pci_dev *dev, int where, u32 val)
{
if (where & 3)
return PCIBIOS_BAD_REGISTER_NUMBER;
if (mips_pcibios_config_access(PCI_ACCESS_WRITE, dev, where, &val))
return -1;
return PCIBIOS_SUCCESSFUL;
}
struct pci_ops mips_pci_ops = {
mips_pcibios_read_config_byte,
mips_pcibios_read_config_word,
mips_pcibios_read_config_dword,
mips_pcibios_write_config_byte,
mips_pcibios_write_config_word,
mips_pcibios_write_config_dword
};
void __init pcibios_init(void)
{
#ifdef CONFIG_MIPS_MALTA
struct pci_dev *pdev;
unsigned char reg_val;
#endif
printk("PCI: Probing PCI hardware on host bus 0.\n");
pci_scan_bus(0, &mips_pci_ops, NULL);
/*
* Due to a bug in the Galileo system controller, we need to setup
* the PCI BAR for the Galileo internal registers.
* This should be done in the bios/bootprom and will be fixed in
* a later revision of YAMON (the MIPS boards boot prom).
*/
GT_WRITE(GT_PCI0_CFGADDR_OFS,
(0 << GT_PCI0_CFGADDR_BUSNUM_SHF) | /* Local bus */
(0 << GT_PCI0_CFGADDR_DEVNUM_SHF) | /* GT64120 device */
(0 << GT_PCI0_CFGADDR_FUNCTNUM_SHF) | /* Function 0 */
((0x20/4) << GT_PCI0_CFGADDR_REGNUM_SHF) | /* BAR 4 */
GT_PCI0_CFGADDR_CONFIGEN_BIT );
/* Perform the write */
GT_WRITE( GT_PCI0_CFGDATA_OFS, PHYSADDR(MIPS_GT_BASE));
#ifdef CONFIG_MIPS_MALTA
pci_for_each_dev(pdev) {
if ((pdev->vendor == PCI_VENDOR_ID_INTEL)
&& (pdev->device == PCI_DEVICE_ID_INTEL_82371AB)
&& (PCI_SLOT(pdev->devfn) == 0x0a)) {
/*
* IDE Decode enable.
*/
pci_read_config_byte(pdev, 0x41, ®_val);
pci_write_config_byte(pdev, 0x41, reg_val | 0x80);
pci_read_config_byte(pdev, 0x43, ®_val);
pci_write_config_byte(pdev, 0x43, reg_val | 0x80);
}
if ((pdev->vendor == PCI_VENDOR_ID_INTEL)
&& (pdev->device == PCI_DEVICE_ID_INTEL_82371AB_0)
&& (PCI_SLOT(pdev->devfn) == 0x0a)) {
/*
* Set top of main memory accessible by ISA or DMA
* devices to 16 Mb.
*/
pci_read_config_byte(pdev, 0x69, ®_val);
pci_write_config_byte(pdev, 0x69, reg_val | 0xf0);
}
}
/*
* Activate Floppy Controller in the SMSC FDC37M817 Super I/O
* Controller.
* This should be done in the bios/bootprom and will be fixed in
* a later revision of YAMON (the MIPS boards boot prom).
*/
/* Entering config state. */
SMSC_WRITE(SMSC_CONFIG_ENTER, SMSC_CONFIG_REG);
/* Activate floppy controller. */
SMSC_WRITE(SMSC_CONFIG_DEVNUM, SMSC_CONFIG_REG);
SMSC_WRITE(SMSC_CONFIG_DEVNUM_FLOPPY, SMSC_DATA_REG);
SMSC_WRITE(SMSC_CONFIG_ACTIVATE, SMSC_CONFIG_REG);
SMSC_WRITE(SMSC_CONFIG_ACTIVATE_ENABLE, SMSC_DATA_REG);
/* Exit config state. */
SMSC_WRITE(SMSC_CONFIG_EXIT, SMSC_CONFIG_REG);
#endif
}
int __init
pcibios_enable_device(struct pci_dev *dev)
{
/* Not needed, since we enable all devices at startup. */
return 0;
}
void __init
pcibios_align_resource(void *data, struct resource *res, unsigned long size)
{
}
char * __init
pcibios_setup(char *str)
{
/* Nothing to do for now. */
return str;
}
struct pci_fixup pcibios_fixups[] = {
{ 0 }
};
void __init
pcibios_update_resource(struct pci_dev *dev, struct resource *root,
struct resource *res, int resource)
{
unsigned long where, size;
u32 reg;
where = PCI_BASE_ADDRESS_0 + (resource * 4);
size = res->end - res->start;
pci_read_config_dword(dev, where, ®);
reg = (reg & size) | (((u32)(res->start - root->start)) & ~size);
pci_write_config_dword(dev, where, reg);
}
/*
* Called after each bus is probed, but before its children
* are examined.
*/
void __init pcibios_fixup_bus(struct pci_bus *b)
{
pci_read_bridge_bases(b);
}
unsigned __init int pcibios_assign_all_busses(void)
{
return 1;
}
#endif /* CONFIG_PCI */
|
|
From: James S. <jsi...@us...> - 2001-08-22 18:18:17
|
Update of /cvsroot/linux-mips/linux/arch/mips/dec/boot
In directory usw-pr-cvs1:/tmp/cvs-serv15361/arch/mips/dec/boot
Added Files:
ld.ecoff
Log Message:
Synced to Ralph's tree
--- NEW FILE: ld.ecoff ---
OUTPUT_FORMAT("ecoff-littlemips")
OUTPUT_ARCH(mips)
ENTRY(dec_entry)
SECTIONS
{
. = 0x80200000;
.text :
{
_ftext = .;
*(.text)
*(.fixup)
}
.rdata :
{
*(.rodata .rodata.* .rdata)
}
.data :
{
. = ALIGN(0x1000);
ramdisk.img (.data)
*(.data)
}
.sdata :
{
*(.sdata)
}
_gp = .;
.sbss :
{
*(.sbss)
*(.scommon)
}
.bss :
{
*(.dynbss)
*(.bss)
*(COMMON)
}
/DISCARD/ : {
*(.reginfo .mdebug .note)
}
}
|
|
From: James S. <jsi...@us...> - 2001-08-22 18:18:17
|
Update of /cvsroot/linux-mips/linux/arch/mips/galileo-boards/ev64120
In directory usw-pr-cvs1:/tmp/cvs-serv15361/arch/mips/galileo-boards/ev64120
Modified Files:
pci_bios.c
Log Message:
Synced to Ralph's tree
Index: pci_bios.c
===================================================================
RCS file: /cvsroot/linux-mips/linux/arch/mips/galileo-boards/ev64120/pci_bios.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** pci_bios.c 2001/06/22 02:29:31 1.1.1.1
--- pci_bios.c 2001/08/22 18:18:13 1.2
***************
*** 1182,1185 ****
--- 1182,1190 ----
}
+ unsigned __init int pcibios_assign_all_busses(void)
+ {
+ return 1;
+ }
+
void __init pcibios_init(void)
{
|