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: Leblanc f. <fle...@us...> - 2002-06-13 12:57:36
|
Update of /cvsroot/linux-mips/linux/drivers/video In directory usw-pr-cvs1:/tmp/cvs-serv2868/drivers/video Modified Files: Makefile Added Files: gpiolcd.c Log Message: Correct CONFIG_PM conflict in config.in and move misplaced files. --- NEW FILE: gpiolcd.c --- /* * linux/arch/mips/vr41xx/gpiolcd.c * * Platform support for the machine which LCD control by GPIO. * * Copyright (C) 2000 SATO Kazumi * * 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. * */ #include <asm/io.h> #include <asm/system.h> #include <asm/vr41xx.h> #ifdef CONFIG_NEC_MOBILEGEAR2_R300 #define LCDON VR41XX_GIUPIODL_GPIO10 /* GPIO[10] 0100 0000 0000 */ #define LCDON_PORT VR41XX_GIUPIODL #define LIGHTON VR41XX_GIUPODATL_GPIO45 /* GPIO[45] 10 0000 0000 0000 */ #define LIGHTON_PORT VR41XX_GIUPODATL #define MAXCONTRAST 6 /* XXX temporary */ #elif defined(CONFIG_NEC_MOBILEGEAR2_R310) #define LCDON VR41XX_GIUPIODL_GPIO10 /* GPIO[10] 0100 0000 0000 */ #define LCDON_PORT VR41XX_GIUPIODL #define LIGHTON VR41XX_GIUPODATL_GPIO45 /* GPIO[45] 10 0000 0000 0000 */ #define LIGHTON_PORT VR41XX_GIUPODATL #define MAXCONTRAST 6 /* XXX temporary */ #elif defined(CONFIG_CASIO_E15) #define LCDON VR41XX_GIUPIODH_GPIO24 /* GPIO[24] 0000 0001 0000 0000 */ #define LCDON_PORT VR41XX_GIUPIODH #define LIGHTON VR41XX_GIUPIODH_GPIO26 /* GPIO[26] 0000 0100 0000 0000 */ #define LIGHTON_PORT VR41XX_GIUPIODH #define MAXCONTRAST 6 /* XXX temporary */ #else #error no LCD GPIO Infomation.... #endif static int backlight, contrast, lcdpower; void gpiolcd_init_backlight(void) { #ifdef STANDALONE backlight = 1; #else /* STANDALONE */ /* save boot time status (maybe set by Windows CE) */ if (*LIGHTON_PORT&LIGHTON) backlight = 1; else backlight = 0; #endif /* STANDALONE */ } int get_gpiolcd_backlight(void) { return backlight; } int gpiolcd_backlight(int n) { int flags; if(n == 0) { backlight = 0; save_and_cli(flags); *LIGHTON_PORT &= ~LIGHTON; restore_flags(flags); // Turn the backlight off. } else { backlight = 1; save_and_cli(flags); *LIGHTON_PORT |= LIGHTON; restore_flags(flags); } return 0; } void gpiolcd_init_contrast(void) { #ifdef STANDALONE contrast = MAXCONTRAST; #else /* STANDALONE */ /* save boot time status (maybe set by Windows CE) */ /* but we don't know current value methods, so set constant */ contrast = MAXCONTRAST; #endif /* STANDALONE */ } int get_gpiolcd_contrast(void) { return contrast; } int gpiolcd_contrast(int n) { if (n > MAXCONTRAST) contrast = MAXCONTRAST; else contrast = n; // Turn the lcd on and some contrast. return 0; } int get_gpiolcd_lcdpower(void) { return lcdpower; } int gpiolcd_lcdpower(int n) { int flags; lcdpower = n; if(n == 0) { save_and_cli(flags); *LCDON_PORT &= ~LCDON; restore_flags(flags); } else { save_and_cli(flags); *LCDON_PORT |= LCDON; restore_flags(flags); } return 0; } void gpiolcd_setup(void) { lcdpower = 1; /* boot time always on */ /* backlight & contrast inherit by WinCE */ gpiolcd_init_backlight(); gpiolcd_init_contrast(); gpiolcd_lcdpower(lcdpower); gpiolcd_contrast(contrast); gpiolcd_backlight(backlight); } Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/video/Makefile,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- Makefile 18 Apr 2002 00:02:04 -0000 1.15 +++ Makefile 13 Jun 2002 12:57:33 -0000 1.16 @@ -122,6 +122,7 @@ # For Linux VR obj-$(CONFIG_FB_SIMPLE) += sfb.o obj-$(CONFIG_FB_HPCSFB) += hpcsfb.o +obj-$(CONFIG_GPIO_LCD) += gpiolcd.o # Generic Low Level Drivers |
From: Leblanc f. <fle...@us...> - 2002-06-13 07:45:23
|
Update of /cvsroot/linux-mips/linux/Documentation/mips In directory usw-pr-cvs1:/tmp/cvs-serv8622/Documentation/mips Modified Files: casio-e15.txt Log Message: *Casio cassiopeia E15 halt/restart full support throw win ce. *Gpio mapping update. Index: casio-e15.txt =================================================================== RCS file: /cvsroot/linux-mips/linux/Documentation/mips/casio-e15.txt,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- casio-e15.txt 22 Mar 2002 10:22:42 -0000 1.1 +++ casio-e15.txt 13 Jun 2002 07:45:19 -0000 1.2 @@ -1,22 +1,23 @@ Casio E15 gpio definition (2002/03/18) ====================================== +François Leblanc <fra...@ce...> + This document is the result of my investigations about Casio Cassiopeia hardware definitions. -Feel free to append any informations about E15 that +Feel free to add any informations about E15 that you think useful. -François Leblanc <fra...@ce...> -This informations are no officials since Casio cie -never transmit me any informations of this device +This informations are not officials since Casio cie +never transmit me any informations on this device although I ask them many times. -<<I advice anybody to not buy casio devices for future +<<I advice everybody to not buy casio devices for future use unless they don't need linux on it. Casio don't care of open source developpers and don't give any informations of any kinds about theirs products. I -had to spend a lot of my time life to get this +I had to spend a lot of my time life to get this informations available althought device is quite old... I don't think that device schematics are still secret, perhaps they use it on nuclear weapons? :-).>> @@ -32,6 +33,52 @@ */ +KERNEL BUILD SECTION +==================== + +The linux kernel for casio e15 is available can be found at +http://linux-mips.sourceforge.net + +To build simply copying defconfig-casio-e15 to .config under root dir +then type commands: + +-first prepare configuration +cp arch/mips/configs/defconfig-casio-e15 .config +make menuconfig, you can make adjustments but the default config should +be quite fine. + +-second run build +make stripped +make modules + +This should produce the kernel the file arch/mips/boot/vmlinux-stripped +witch is linux OS. + +-install modules to the prepared root dir +make INSTALL_MOD_PATH=c:/home/flc/mips/appli/rootfs modules_install + +WARNING: INSTALL_MOD_PATH must be an absolute path name elsewhere +modules are not propely installed. + +-transfering arch/mips/boot/vmlinux-stripped to casio e15 with cyace.exe +and cyacecfg.txt. cyace.exe is the kernel luncher under win ce you may +find it on the net. + +-transfering your ready build root to casio e15. + +For the two last scripts, descriptions and tools for transfering, build +rootfs etc... are grouped under package called casio-mips (try to look +for casio-mips.tar.gz) on the net, I will make it available soon (I hope). + +GPIO SECTION +============ + +Small memo about gpio use in casio E15. To complete explains have +a look to files: +include/asm-mips/vr41xx/e15.h +include/linux/button.h +drivers/char/buttons.c +drivers/char/gpiobtns.c GPIO base value: ---------------- @@ -43,43 +90,47 @@ 0xab000104: 0x7fc3 0xab000106: 0xebe9 - gpiodl -I/O | fonction | 0x7fc3 | 0111 1111 1100 0011 | hexa value | name -------------------------------------------------------------------- -(I) | | | 1111 1111 1100 0011 | | GPIO15 -(I) | KEY DOWN | 0x3fc3 | 0011 1111 1100 0011 | | GPIO14 -(I) | UP_ACT | 0x5fc3 | 0101 1111 1100 0011 | | GPIO13 -(I) | DN_ACT | 0x6fc3 | 0110 1111 1100 0011 | | GPIO12 -(I) | VOICE | 0x77c3 | 0111 0111 1100 0011 | | GPIO11 -(I) | APP1 | 0x7bc3 | 0111 1011 1100 0011 | | GPIO10 -(I) | APP2 | 0x7dc3 | 0111 1101 1100 0011 | | GPIO9 -(I) | APP3 | 0x7ec3 | 0111 1110 1100 0011 | | GPIO8 -(I) | EXIT | 0x7f43 | 0111 1111 0100 0011 | | GPIO7 -(I) | ACTION | 0x7f83 | 0111 1111 1000 0011 | | GPIO6 -(I) | POWER | 0x7fe3 | 0111 1111 1110 0011 | | GPIO5 -(I) | | | 0111 1111 1101 0011 | | GPIO4 -(I) | | | 0111 1111 1100 1011 | | GPIO3 -(I) | | | 0111 1111 1100 0111 | | GPIO2 -(I) | | | 0111 1111 1110 0001 | | GPIO1 -(I) | | | 0111 1111 1110 0010 | | GPIO0 + gpiodl +I/O | fonction | 0x7fc3 | 0111 1111 1100 0011 | hexa value | name +---------------------------------------------------------------------- +(I) | | | 1111 1111 1100 0011 | | GPIO15 +(I) | KEYPAD DOWN | 0x3fc3 | 0011 1111 1100 0011 | | GPIO14 +(I) | ACTION UP | 0x5fc3 | 0101 1111 1100 0011 | | GPIO13 +(I) | ACTION DOWN | 0x6fc3 | 0110 1111 1100 0011 | | GPIO12 +(I) | VOICE | 0x77c3 | 0111 0111 1100 0011 | | GPIO11 +(I) | APP1 | 0x7bc3 | 0111 1011 1100 0011 | | GPIO10 +(I) | APP2 | 0x7dc3 | 0111 1101 1100 0011 | | GPIO9 +(I) | APP3 | 0x7ec3 | 0111 1110 1100 0011 | | GPIO8 +(I) | EXIT | 0x7f43 | 0111 1111 0100 0011 | | GPIO7 +(I) | ACTION PUSH | 0x7f83 | 0111 1111 1000 0011 | | GPIO6 +(I) | POWER | 0x7fe3 | 0111 1111 1110 0011 | | GPIO5 +(I) | | | 0111 1111 1101 0011 | | GPIO4 +(I) | | | 0111 1111 1100 1011 | | GPIO3 +(I) | | | 0111 1111 1100 0111 | | GPIO2 +(I) | | | 0111 1111 1110 0001 | | GPIO1 +(I) | | | 0111 1111 1110 0010 | | GPIO0 - gpiodh -I/O | fonction | 0xe3e9 | 1110 0011 1110 1001 | hexa value | name -------------------------------------------------------------------- -(I) | LEFT | 0x63e9 | 0110 0011 1110 1001 | | GPIO31 -(I) | RIGHT | 0xa3e9 | 1010 0011 1110 1001 | | GPIO30 -(I) | UP | 0xc3e9 | 1100 0011 1110 1001 | | GPIO29 -(O) | UNKNOW | | | 0x1000 | GPIO28 -(O) | SPEAKER | | | 0x0800 | GPIO27 -(O) | BACKLIGHT | | | 0x0400 | GPIO26 -(O) | UNKNOW | | | 0x0200 | GPIO25 -(O) | LCD ON/OFF | | | 0x0100 | GPIO24 + gpiodh +I/O | fonction | 0xe3e9 | 1110 0011 1110 1001 | hexa value | name +---------------------------------------------------------------------- +(I) | KEYPAD LEFT | 0x63e9 | 0110 0011 1110 1001 | | GPIO31 +(I) | KEYPAD RIGHT| 0xa3e9 | 1010 0011 1110 1001 | | GPIO30 +(I) | KEYPAD UP | 0xc3e9 | 1100 0011 1110 1001 | | GPIO29 +(O) | UNKNOW | | | 0x1000 | GPIO28 +(O) | SPEAKER | | | 0x0800 | GPIO27 +(O) | BACKLIGHT | | | 0x0400 | GPIO26 +(O) | UNKNOW | | | 0x0200 | GPIO25 +(O) | LCD ON/OFF | | | 0x0100 | GPIO24 -(I) | | 0xe3fd | 1110 0011 1111 1101 | | GPIO20 (main battery low???) -(I) | RESET? | 0xXXXX | 1110 0011 1110 0001 | | GPIO19 (back reset button???) -(I) | | 0xe3ed | 1110 0011 1110 1101 | | GPIO18 (backup battery low???) -(I) | | | | | GPIO17 -(I) | | | | | GPIO16 +(I) | | | | | GPIO23 +(I) | | | | | GPIO22 +(I) | | | | | GPIO21 + +(I) | | 0xe3fd | 1110 0011 1111 1101 | | GPIO20 (main battery low???) +(I) | RESET? | 0xXXXX | 1110 0011 1110 0001 | | GPIO19 (back reset button???) +(I) | | 0xe3ed | 1110 0011 1110 1101 | | GPIO18 (backup battery low???) +(I) | | | | | GPIO17 +(I) | | | | | GPIO16 CONTROL: |
From: Leblanc f. <fle...@us...> - 2002-06-13 07:45:23
|
Update of /cvsroot/linux-mips/linux/arch/mips/vr41xx/vr4111/casio-e15 In directory usw-pr-cvs1:/tmp/cvs-serv8622/arch/mips/vr41xx/vr4111/casio-e15 Modified Files: Makefile setup.c Added Files: serial.c Log Message: *Casio cassiopeia E15 halt/restart full support throw win ce. *Gpio mapping update. --- NEW FILE: serial.c --- /* * linux/drivers/char/serial.c * Serial (SIU) driver for NEC VR41xx CPUs, VR4102 and up only. * * Based almost entirely on linux/drivers/char/serial.c * Modified for VR41xx by Michael Klar, mf...@po... * * 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. * */ /* * Changes: * François Leblanc <fra...@ce...> Mon, 13 Apr 2002 * - Append missing function and minor syntax changes. */ #include <linux/config.h> #include <linux/pm.h> #include <linux/init.h> #include <linux/serial.h> #include <linux/serial_reg.h> #include <asm/serial.h> #include <asm/vr41xx.h> #include <asm/vr41xx-platdep.h> #define DEVICE_NAME "Serial pm manager" #ifndef MAX_VR_PORT #define MAX_VR_PORT 1 #endif static unsigned int serial_powered_on; #ifdef CONFIG_PM static unsigned char fcr_shadow[MAX_VR_PORT+1]; #endif #ifdef CONFIG_PM static int pm_serial_request(struct pm_dev *dev, pm_request_t rqst, void *data) { #ifndef CONFIG_CPU_VR4181 static unsigned char save_state[6]; #else static unsigned char save_state[12]; #endif unsigned char dummy; int flags; /* if not powered on, do nothing if (!serial_powered_on) return 0; */ switch (rqst) { case PM_SUSPEND: /* wait for anything in the xmit FIFO to send */ save_and_cli(flags); while (!(*VR41XX_SIULS & UART_LSR_TEMT)) barrier(); save_state[0] = *VR41XX_SIULC; *VR41XX_SIULC = UART_LCR_DLAB; /* DLAB = 1 to read baud rate */ barrier(); save_state[1] = *VR41XX_SIUDLL; save_state[2] = *VR41XX_SIUDLM; barrier(); *VR41XX_SIULC = 0; barrier(); save_state[3] = *VR41XX_SIUIE; *VR41XX_SIUIE = save_state[3] & ~UART_IER_THRI; // MFK: should also power down, cut clocks, and disable receive int, too, if // wakeup not enabled for this device. // MFK: should probably also enable DCD IRQ if wakeup is enabled save_state[4] = *VR41XX_SIUMC; #ifndef CONFIG_CPU_VR4181 save_state[5] = *VR41XX_SIUIRSEL; #else /* VR4181 has a 2nd UART */ while (!(*VR41XX_SIULS_2 & UART_LSR_TEMT)) barrier(); save_state[5] = *VR41XX_SIULC_2; *VR41XX_SIULC_2 = UART_LCR_DLAB; /* DLAB = 1 to read baud rate */ barrier(); save_state[6] = *VR41XX_SIUDLL_2; save_state[7] = *VR41XX_SIUDLM_2; barrier(); *VR41XX_SIULC_2 = 0; barrier(); save_state[8] = *VR41XX_SIUIE_2; *VR41XX_SIUIE_2 = save_state[8] & ~UART_IER_THRI; save_state[9] = *VR41XX_SIUMC_2; save_state[10] = *VR41XX_SIUIRSEL_2; save_state[11] = *VR41XX_SIUCSEL_2; #endif restore_flags(flags); break; case PM_RESUME: // MFK: it's too late to disable ints here, if it was serial data that woke us // up. Need to check in the interrupt handler if we're still in suspend, then // throw out the data there if we are (because data in FIFO will be bogus). save_and_cli(flags); /* clear out any pending data or interrupts */ *VR41XX_SIUFC = UART_FCR_CLEAR_RCVR | UART_FCR_CLEAR_XMIT; dummy = *VR41XX_SIURB; dummy = *VR41XX_SIUMS; dummy = *VR41XX_SIUIID; barrier(); while ( *VR41XX_SIULS & UART_LSR_DR ) dummy = *VR41XX_SIURB; *VR41XX_SIULC = UART_LCR_DLAB; barrier(); *VR41XX_SIUDLL = save_state[1]; *VR41XX_SIUDLM = save_state[2]; barrier(); *VR41XX_SIULC = 0; barrier(); *VR41XX_SIUIE = save_state[3]; *VR41XX_SIUMC = save_state[4]; #ifndef CONFIG_CPU_VR4181 *VR41XX_SIUIRSEL = save_state[5]; #endif barrier(); *VR41XX_SIULC = save_state[0]; #ifndef CONFIG_CPU_VR4181 *VR41XX_SIUFC = fcr_shadow[(save_state[5] & 1) ? 1 : 0 ]; #else *VR41XX_SIUFC = fcr_shadow[0]; /* same as above for 2nd UART on VR4181 */ *VR41XX_SIUFC_2 = UART_FCR_CLEAR_RCVR | UART_FCR_CLEAR_XMIT; dummy = *VR41XX_SIURB_2; dummy = *VR41XX_SIUMS_2; dummy = *VR41XX_SIUIID_2; barrier(); while ( *VR41XX_SIULS_2 & UART_LSR_DR ) dummy = *VR41XX_SIURB_2; *VR41XX_SIULC_2 = UART_LCR_DLAB; barrier(); *VR41XX_SIUDLL_2 = save_state[6]; *VR41XX_SIUDLM_2 = save_state[7]; barrier(); *VR41XX_SIULC_2 = 0; barrier(); *VR41XX_SIUIE_2 = save_state[8]; *VR41XX_SIUMC_2 = save_state[9]; *VR41XX_SIUIRSEL_2 = save_state[10]; *VR41XX_SIUCSEL_2 = save_state[11]; barrier(); *VR41XX_SIULC_2 = save_state[5]; *VR41XX_SIUFC_2 = fcr_shadow[(save_state[10] & 1) ? 1 : 2 ]; #endif restore_flags(flags); break; } return 0; } static int __init casio_e15_serial_init(void) { #if 0 printk(KERN_DEBUG DEVICE_NAME ": pm_init\n"); pm_register(PM_ISA_DEV, PM_SYS_COM, pm_serial_request); //pm_register(PM_SYS_DEV, PM_SYS_UNKNOWN, pm_serial_request); #else printk(KERN_DEBUG DEVICE_NAME ": pm_init not done\n"); #endif return 0; } __initcall(casio_e15_serial_init); #endif #ifdef CONFIG_REMOTE_DEBUG /* * This is the interface to the remote debugger stub. * I've put that here to be able to control the serial * device more directly. * * We're a little paranoid with the barrier()s, just in * case the compiler tries to be too cute. */ static int initialized = 0; void DbgInitSerial(void) { unsigned char dummy; /* Ensure that serial is set to RS-232C (not IrDA) */ *VR41XX_SIUIRSEL &= ~VR41XX_SIUIRSEL_SIRSEL; /* Supply clocks to all serial units */ vr41xx_clock_supply(VR41XX_CMUCLKMSK_MSKSIU); vr41xx_clock_supply(VR41XX_CMUCLKMSK_MSKDSIU); vr41xx_clock_supply(VR41XX_CMUCLKMSK_MSKSSIU); #if 0 /* turn on the clocks to the serial port */ serial_power_on(0); #endif *VR41XX_SIULC = UART_LCR_DLAB; /* prepare to set baud rate */ barrier(); *VR41XX_SIUDLL = 10; /* set 120 here for 9600 */ *VR41XX_SIUDLM = 0; /* hardcoded: set to 115200 */ barrier(); *VR41XX_SIULC = UART_LCR_WLEN8; /* clear DLAB, set up for 8N1 */ barrier(); *VR41XX_SIUIE = 0; /* disable interrupts */ *VR41XX_SIUFC = UART_FCR_CLEAR_RCVR | UART_FCR_CLEAR_XMIT; #ifdef CONFIG_PM //fcr_shadow[0] = 0; #endif *VR41XX_SIUMC = UART_MCR_RTS | UART_MCR_DTR; /* set RTS and DTR */ dummy = *VR41XX_SIURB; /* clear any pending ints */ dummy = *VR41XX_SIUMS; dummy = *VR41XX_SIUIID; barrier(); /* clear the receive buffer (and finish clearing ints) */ while ( *VR41XX_SIULS & UART_LSR_DR ) dummy = *VR41XX_SIURB; } int putDebugChar(unsigned char c) { if (!initialized) { /* need to init device first */ DbgInitSerial(); initialized = 1; } while ( !(*VR41XX_SIULS & UART_LSR_THRE) ) ; barrier(); *VR41XX_SIUTH = c; return 1; } char getDebugChar(void) { if (!initialized) { /* need to init device first */ DbgInitSerial(); initialized = 1; } while ( !(*VR41XX_SIULS & UART_LSR_DR) ) ; barrier(); return(*VR41XX_SIURB); } #endif /* CONFIG_REMOTE_DEBUG */ /* Local variables: compile-command: "gcc -D__KERNEL__ -I../../include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -D__SMP__ -pipe -fno-strength-reduce -march=i686 -DMODULE -DMODVERSIONS -include ../../include/linux/modversions.h -DEXPORT_SYMTAB -c serial.c" End: */ Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/vr41xx/vr4111/casio-e15/Makefile,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Makefile 23 Apr 2002 13:14:29 -0000 1.4 +++ Makefile 13 Jun 2002 07:45:19 -0000 1.5 @@ -19,9 +19,16 @@ all: casio-e15.o -obj-y += setup.o prom.o -obj-$(CONFIG_REMOTE_DEBUG) += gdb.o +# All of the (potential) objects that export symbols. +# This list comes from 'grep -l EXPORT_SYMBOL *.[hc]'. + +export-objs := serial.o + + +obj-y += setup.o prom.o +#obj-$(CONFIG_REMOTE_DEBUG) += gdb.o obj-$(CONFIG_IDE) += ide-e15.o +obj-$(CONFIG_SERIAL) += serial.o include $(TOPDIR)/Rules.make Index: setup.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/vr41xx/vr4111/casio-e15/setup.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- setup.c 23 Apr 2002 13:14:29 -0000 1.5 +++ setup.c 13 Jun 2002 07:45:19 -0000 1.6 @@ -27,6 +27,7 @@ #include <linux/ioport.h> #include <asm/reboot.h> +#include <asm/power.h> #include <asm/time.h> #include <asm/vr41xx.h> #include <asm/vr41xx/e15.h> @@ -36,6 +37,9 @@ extern void vr4111_hibernate(void); extern void vr4111_suspend(void); +extern void vr4111_time_init(void); +extern void vr4111_timer_setup(struct irqaction *irq); + #ifdef CONFIG_BLK_DEV_INITRD extern unsigned long initrd_start, initrd_end; extern void * __rd_start, * __rd_end; @@ -53,25 +57,6 @@ } #ifdef CONFIG_PM_SUSPEND_WAKEUP -void vr41xx_board_hibernate(void) -{ - vr4111_hibernate(); -} -#endif -#ifdef CONFIG_PM_POWERED_SUSPEND -void vr41xx_board_suspend(void) -{ - vr4111_suspend(); -} -#endif -#ifdef CONFIG_PM_STANDBY -void vr41xx_board_standby(void) -{ - vr4111_wait(); -} -#endif - -#ifdef CONFIG_PM_SUSPEND_WAKEUP #include <asm/gdb-stub.h> extern asmlinkage void kernel_entry(void); @@ -167,8 +152,14 @@ _machine_halt = vr41xx_halt; _machine_power_off = vr41xx_power_off; - board_time_init = vr41xx_time_init; - board_timer_setup = vr41xx_timer_setup; + board_time_init = vr4111_time_init; + board_timer_setup = vr4111_timer_setup; + +#ifdef CONFIG_PM + vr41xx_board_hibernate = vr4111_hibernate; + vr41xx_board_suspend = vr4111_suspend; + vr41xx_board_standby = vr4111_wait; +#endif #ifdef CONFIG_BLK_DEV_IDE ide_ops = &e15_ide_ops; |
From: Leblanc f. <fle...@us...> - 2002-06-13 07:45:23
|
Update of /cvsroot/linux-mips/linux/include/asm-mips In directory usw-pr-cvs1:/tmp/cvs-serv8622/include/asm-mips Modified Files: power.h Log Message: *Casio cassiopeia E15 halt/restart full support throw win ce. *Gpio mapping update. Index: power.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/power.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- power.h 22 Mar 2002 10:22:43 -0000 1.2 +++ power.h 13 Jun 2002 07:45:20 -0000 1.3 @@ -18,6 +18,10 @@ extern asmlinkage int do_wakeup(void); extern asmlinkage void do_hibernate(void *sp); + +extern void (*vr41xx_board_hibernate)(void); +extern void (*vr41xx_board_suspend)(void); +extern void (*vr41xx_board_standby)(void); #endif #define LOAD_MAGIC (('L'<<24) | ('O'<<16) | ('A'<<8) | 'D') |
From: Leblanc f. <fle...@us...> - 2002-06-13 07:45:23
|
Update of /cvsroot/linux-mips/linux/include/asm-mips/vr41xx In directory usw-pr-cvs1:/tmp/cvs-serv8622/include/asm-mips/vr41xx Modified Files: e15.h Log Message: *Casio cassiopeia E15 halt/restart full support throw win ce. *Gpio mapping update. Index: e15.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/vr41xx/e15.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- e15.h 23 Apr 2002 13:14:29 -0000 1.2 +++ e15.h 13 Jun 2002 07:45:20 -0000 1.3 @@ -50,7 +50,7 @@ #define FB_Y_RES 320 #define FB_BPP 4 #define FB_IS_GREY 1 -#define FB_IS_INVERSE 0 //1 +#define FB_IS_INVERSE 1 // GPIO[27] is speaker power on/off bit #define VR41XX_ENABLE_SPEAKER() \ @@ -86,10 +86,17 @@ /* GPIO buttons mapping from GPIO0 to GPIO31 */ #define GPIO_BTN_MAP { \ - 0, 0, 0, 0, 0, BTN_POWER_GPIO, BTN_ACTION, BTN_EXIT, \ - BTN_AP3, BTN_AP2, BTN_AP1, BTN_AP4, BTN_UP, BTN_DOWN, BTN_SYNC, \ - 0, 0, BTN_NOTIFICATION, 0, BTN_NOTIFICATION, 0, 0, 0, \ + 0, BTN_AP13, BTN_AP14, BTN_AP15, BTN_AP16, BTN_POWER_GPIO, BTN_ACTION, BTN_EXIT, \ + BTN_AP3, BTN_AP2, BTN_AP1, BTN_AP4, BTN_DOWN, BTN_UP, BTN_DOWN, BTN_AP12, \ + BTN_AP6, BTN_AP7, BTN_NOTIFICATION, BTN_AP8, BTN_NOTIFICATION, BTN_AP9, BTN_AP10, BTN_AP11, \ 0, 0, 0, 0, 0, BTN_NORTH, BTN_WEST, BTN_EAST \ } + +#define GPIO_BTN_PRESS_LOW + +#define VR41XX_ENABLE_SERIAL(x) do { } while (0) +#define VR41XX_DISABLE_SERIAL(x) do { } while (0) +#define VR41XX_ENABLE_IRDA() do { } while (0) +#define VR41XX_DISABLE_IRDA() do { } while (0) #endif /* __CASIO_E15_H */ |
From: Leblanc f. <fle...@us...> - 2002-06-13 07:45:23
|
Update of /cvsroot/linux-mips/linux/arch/mips/vr41xx/common In directory usw-pr-cvs1:/tmp/cvs-serv8622/arch/mips/vr41xx/common Modified Files: power.c Log Message: *Casio cassiopeia E15 halt/restart full support throw win ce. *Gpio mapping update. Index: power.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/vr41xx/common/power.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- power.c 23 Apr 2002 13:14:28 -0000 1.3 +++ power.c 13 Jun 2002 07:45:19 -0000 1.4 @@ -39,9 +39,10 @@ extern struct semaphore vr41xx_dma_sem; extern void vr41xx_extend_hibernate(void); -extern void vr41xx_board_hibernate(void); -extern void vr41xx_board_suspend(void); -extern void vr41xx_board_standby(void); + +void (*vr41xx_board_hibernate)(void); +void (*vr41xx_board_suspend)(void); +void (*vr41xx_board_standby)(void); #ifdef CONFIG_PM_SUSPEND_WAKEUP @@ -86,6 +87,7 @@ unsigned int powerevent_queued; unsigned int hibernation_state = LOAD_MAGIC; static unsigned short clkmsk_state; +static unsigned short more_gpioregs_to_save[2]; #ifndef VR41XX_IRQ_MAX #define VR41XX_IRQ_MAX ((VR41XX_NUM_CPU_IRQ)+(VR41XX_NUM_SYS_IRQ)+(VR41XX_NUM_GPIO_IRQ)) @@ -99,7 +101,7 @@ // static void do_pm_irq_request(pm_request_t rqst) { - static unsigned short irq_mask[(VR41XX_IRQ_MAX + 9)/16]; + static unsigned short irq_mask[5]; unsigned int status; switch (rqst) { @@ -134,7 +136,7 @@ #define MAX_GPIOREG VR41XX_LCDGPMODE #else #define MIN_GPIOREG VR41XX_GIUIOSELL -#define MAX_GPIOREG VR41XX_GIUINTHTSELH +#define MAX_GPIOREG VR41XX_GIUPODATH #endif #define NR_GPIOREGS (((long)MAX_GPIOREG - (long)MIN_GPIOREG) / sizeof(short) + 1) @@ -155,8 +157,10 @@ do_pm_irq_request(PM_SUSPEND); for (i = 0; i < NR_GPIOREGS; i++) gpio_state[i] = *(MIN_GPIOREG + i); + more_gpioregs_to_save[0] = *VR41XX_GIUUSEUPDN; + more_gpioregs_to_save[1] = *VR41XX_GIUTERMUPDN; clkmsk_state = *VR41XX_CMUCLKMSK; - + // do more board specific hibernate code #ifdef CONFIG_VR41XX_EXTEND_HIBERNATE vr41xx_extend_hibernate(); @@ -189,16 +193,12 @@ // this is about the point where we would check CRC if we did one *VR41XX_CMUCLKMSK = clkmsk_state; + *VR41XX_GIUUSEUPDN = more_gpioregs_to_save[0]; + *VR41XX_GIUTERMUPDN = more_gpioregs_to_save[1]; for (i = 0; i < NR_GPIOREGS; i++) *(MIN_GPIOREG + i) = gpio_state[i]; do_pm_irq_request(PM_RESUME); retval = pm_send_all(PM_RESUME, (void *)0); - -#ifdef CONFIG_REMOTE_DEBUG - //re-init serial - set_debug_traps(); - DbgInitSerial(); -#endif if (!retval) { sti(); |
From: Leblanc f. <fle...@us...> - 2002-06-13 07:45:23
|
Update of /cvsroot/linux-mips/linux/arch/mips/vr41xx/vr4111/common In directory usw-pr-cvs1:/tmp/cvs-serv8622/arch/mips/vr41xx/vr4111/common Modified Files: time.c Log Message: *Casio cassiopeia E15 halt/restart full support throw win ce. *Gpio mapping update. Index: time.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/vr41xx/vr4111/common/time.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- time.c 10 Mar 2002 23:15:47 -0000 1.1 +++ time.c 13 Jun 2002 07:45:19 -0000 1.2 @@ -29,9 +29,16 @@ * with this program; if not, write to the Free Software Foundation, Inc., * 675 Mass Ave, Cambridge, MA 02139, USA. */ +/* + * Changes: + * Francois Leblanc <fra...@ce...> Thu, 11 Jun 2002 + * - Add power management, re-init real time and restart main timer. + */ #include <linux/spinlock.h> #include <linux/config.h> +#include <linux/init.h> #include <linux/irq.h> +#include <linux/pm.h> #include <asm/io.h> #include <asm/time.h> #include <asm/vr41xx.h> @@ -121,3 +128,55 @@ count + (mips_counter_frequency / HZ)); setup_irq(VR41XX_IRQ_TIMER, irq); } + +#ifdef CONFIG_PM +extern rwlock_t xtime_lock; + +static int pm_time_request(struct pm_dev *dev, pm_request_t rqst, void *data) +{ + unsigned long flags; + unsigned int count; + + if((board_time_init != vr4111_time_init) || + (board_timer_setup != vr4111_timer_setup)) + return 0; + + switch (rqst) { + case PM_SUSPEND: + disable_irq(VR41XX_IRQ_TIMER); + break; + case PM_RESUME: + write_lock_irqsave(&xtime_lock, flags); + enable_irq(VR41XX_IRQ_TIMER); + /* + * While power suspend interrupt may be disable but timer continue + * to count, so match time may be passed and timer interrupt pending + * but after hibernate command pending interrupts are clean (in hibernate + * mode cpu is in so deep sleep state that no interrupts can append) + * If restart without setting timer count again, kernel freeze until + * timer loop (from 0 second to fewer minut) very annoying. Avoid this + * by setting here next timer match count. + * - no harm if the machine is using another timer interrupt source. + * Note that writing to COMPARE register clears the interrupt + */ + count = read_32bit_cp0_register(CP0_COUNT); + write_32bit_cp0_register (CP0_COMPARE, + count + (mips_counter_frequency / HZ)); + xtime.tv_sec = rtc_get_time(); + xtime.tv_usec = 0; + write_unlock_irqrestore(&xtime_lock, flags); + break; + } + return 0; +} + +static int __init pm_time_init(void) +{ + pm_register(PM_SYS_DEV, PM_SYS_UNKNOWN, pm_time_request); + return 0; +} + +__initcall(pm_time_init); +#endif + + |
From: Leblanc f. <fle...@us...> - 2002-06-13 07:45:23
|
Update of /cvsroot/linux-mips/linux/include/linux In directory usw-pr-cvs1:/tmp/cvs-serv8622/include/linux Modified Files: buttons.h Log Message: *Casio cassiopeia E15 halt/restart full support throw win ce. *Gpio mapping update. Index: buttons.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/linux/buttons.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- buttons.h 7 Mar 2002 09:15:17 -0000 1.1 +++ buttons.h 13 Jun 2002 07:45:20 -0000 1.2 @@ -24,7 +24,7 @@ /* * The button definitions: * - * Feel free to add more. With 4096 potential vlaues, we're not going to + * Feel free to add more. With 4096 potential values, we're not going to * run out any time soon. Note that the application types listed for the * BTN_AP buttons are only suggestions for which AP buttons to assign to * which physical button based on button icon, and may not be applicable |
From: Leblanc f. <fle...@us...> - 2002-06-13 07:45:23
|
Update of /cvsroot/linux-mips/linux/arch/mips/configs In directory usw-pr-cvs1:/tmp/cvs-serv8622/arch/mips/configs Modified Files: defconfig-casio-e15 Log Message: *Casio cassiopeia E15 halt/restart full support throw win ce. *Gpio mapping update. Index: defconfig-casio-e15 =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/configs/defconfig-casio-e15,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- defconfig-casio-e15 23 Apr 2002 13:14:28 -0000 1.4 +++ defconfig-casio-e15 13 Jun 2002 07:45:19 -0000 1.5 @@ -2,6 +2,7 @@ # Automatically generated by make menuconfig: don't edit # CONFIG_MIPS=y +CONFIG_MIPS32=y # # Code maturity level options @@ -115,11 +116,11 @@ CONFIG_ELF_KERNEL=y # CONFIG_BINFMT_AOUT is not set CONFIG_BINFMT_ELF=y -CONFIG_BINFMT_MISC=m +CONFIG_BINFMT_MISC=y CONFIG_PM=y CONFIG_PM_SUSPEND_WAKEUP=y CONFIG_PM_POWERED_SUSPEND=y -# CONFIG_PM_STANDBY is not set +CONFIG_PM_STANDBY=y CONFIG_PROC_GIUINFO=y # CONFIG_MOUNT_PROC is not set # CONFIG_CPU_FREQ is not set @@ -161,6 +162,10 @@ CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_SIZE=4096 CONFIG_BLK_DEV_INITRD=y + +# +# MIPS initrd options +# CONFIG_EMBEDDED_RAMDISK=y # @@ -183,7 +188,7 @@ # CONFIG_NETLINK_DEV is not set # CONFIG_NETFILTER is not set # CONFIG_FILTER is not set -CONFIG_UNIX=m +CONFIG_UNIX=y CONFIG_INET=y CONFIG_IP_MULTICAST=y # CONFIG_IP_ADVANCED_ROUTER is not set @@ -287,7 +292,7 @@ # ARCnet devices # # CONFIG_ARCNET is not set -CONFIG_DUMMY=m +CONFIG_DUMMY=y # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set # CONFIG_TUN is not set @@ -333,8 +338,8 @@ CONFIG_PPP_DEFLATE=m CONFIG_PPP_BSDCOMP=m CONFIG_PPPOE=m -CONFIG_SLIP=m -# CONFIG_SLIP_COMPRESSED is not set +CONFIG_SLIP=y +CONFIG_SLIP_COMPRESSED=y # CONFIG_SLIP_SMART is not set # CONFIG_SLIP_MODE_SLIP6 is not set @@ -620,8 +625,8 @@ # CONFIG_FB_TRIDENT is not set # CONFIG_FB_E1356 is not set # CONFIG_FB_IT8181 is not set -CONFIG_FB_SIMPLE=y -# CONFIG_FB_HPCSFB is not set +# CONFIG_FB_SIMPLE is not set +CONFIG_FB_HPCSFB=y # CONFIG_FB_VIRTUAL is not set CONFIG_FBCON_ADVANCED=y # CONFIG_FBCON_MFB is not set @@ -641,9 +646,14 @@ # CONFIG_FBCON_VGA is not set # CONFIG_FBCON_HGA is not set # CONFIG_FBCON_FONTWIDTH8_ONLY is not set -# CONFIG_FBCON_FONTS is not set +CONFIG_FBCON_FONTS=y CONFIG_FONT_8x8=y -CONFIG_FONT_8x16=y +# CONFIG_FONT_8x16 is not set +# CONFIG_FONT_SUN8x16 is not set +# CONFIG_FONT_SUN12x22 is not set +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# CONFIG_FONT_ACORN_8x8 is not set # # Sound |
From: Leblanc f. <fle...@us...> - 2002-06-11 15:43:57
|
Update of /cvsroot/linux-mips/linux/include/asm-mips In directory usw-pr-cvs1:/tmp/cvs-serv26023/include/asm-mips Modified Files: cpu.h Log Message: define CPU_20KC to make compiler happy. Index: cpu.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/cpu.h,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- cpu.h 29 May 2002 18:19:58 -0000 1.27 +++ cpu.h 11 Jun 2002 15:43:54 -0000 1.28 @@ -147,7 +147,7 @@ CPU_5KC, CPU_R4310, CPU_SB1, CPU_TX3912, CPU_TX3922, CPU_TX3927, CPU_AU1000, CPU_4KEC, CPU_4KSC, CPU_VR41XX, CPU_R5500, CPU_TX49XX, CPU_TX39XX, CPU_AU1500, CPU_R5900, CPU_RC32300, CPU_SR7100, - CPU_AU1100, CPU_LAST + CPU_AU1100, CPU_20KC, CPU_LAST }; #endif |
From: Paul M. <le...@us...> - 2002-06-05 14:20:01
|
Update of /cvsroot/linux-mips/linux/arch/mips In directory usw-pr-cvs1:/tmp/cvs-serv25062 Modified Files: Makefile Log Message: Add a vmlinux.srec target. Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/Makefile,v retrieving revision 1.48 retrieving revision 1.49 diff -u -d -r1.48 -r1.49 --- Makefile 9 May 2002 17:22:33 -0000 1.48 +++ Makefile 5 Jun 2002 14:19:57 -0000 1.49 @@ -559,6 +559,9 @@ vmlinux.ecoff: vmlinux @$(MAKEBOOT) $@ +vmlinux.srec: vmlinux + @$(MAKEBOOT) $@ + stripped: vmlinux @$(MAKEBOOT) stripped |
From: Paul M. <le...@us...> - 2002-06-05 14:20:01
|
Update of /cvsroot/linux-mips/linux/arch/mips/boot In directory usw-pr-cvs1:/tmp/cvs-serv25062/boot Modified Files: Makefile Log Message: Add a vmlinux.srec target. Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/boot/Makefile,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Makefile 10 Dec 2001 17:39:08 -0000 1.3 +++ Makefile 5 Jun 2002 14:19:57 -0000 1.4 @@ -29,11 +29,14 @@ drop-sections = .reginfo .mdebug strip-flags = $(addprefix --remove-section=,$(drop-sections)) -all: vmlinux.ecoff addinitrd +all: vmlinux.ecoff vmlinux.srec addinitrd vmlinux.ecoff: $(CONFIGURE) elf2ecoff $(TOPDIR)/vmlinux ./elf2ecoff $(TOPDIR)/vmlinux vmlinux.ecoff $(E2EFLAGS) +vmlinux.srec: $(CONFIGURE) $(TOPDIR)/vmlinux + $(OBJCOPY) -S -O srec $(strip-flags) $(TOPDIR)/vmlinux vmlinux.srec + elf2ecoff: elf2ecoff.c $(HOSTCC) -o $@ $^ @@ -49,6 +52,7 @@ clean: rm -f vmlinux.ecoff + rm -f vmlinux.srec rm -f zImage zImage.tmp rm -f vmlinux-stripped |
From: Paul M. <le...@us...> - 2002-06-04 16:14:11
|
Update of /cvsroot/linux-mips/linux/arch/mips/jmr3927/rbhma3100 In directory usw-pr-cvs1:/tmp/cvs-serv30197/jmr3927/rbhma3100 Modified Files: Makefile Removed Files: rtc.c Log Message: Use the generic MIPS RTC. Blow away some unused debug cruft. Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/jmr3927/rbhma3100/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Makefile 10 Nov 2001 03:56:05 -0000 1.1 +++ Makefile 4 Jun 2002 16:14:06 -0000 1.2 @@ -13,9 +13,8 @@ O_TARGET:= jmr3927.o -obj-y += init.o int-handler.o irq.o setup.o rtc.o pci_fixup.o pci_ops.o +obj-y += init.o int-handler.o irq.o setup.o pci_fixup.o pci_ops.o -obj-$(CONFIG_LL_DEBUG) += debug.o obj-$(CONFIG_REMOTE_DEBUG) += kgdb_io.o include $(TOPDIR)/Rules.make --- rtc.c DELETED --- |
From: Paul M. <le...@us...> - 2002-06-04 16:14:11
|
Update of /cvsroot/linux-mips/linux/arch/mips/configs In directory usw-pr-cvs1:/tmp/cvs-serv30197/configs Modified Files: defconfig-jmr3927 Log Message: Use the generic MIPS RTC. Blow away some unused debug cruft. Index: defconfig-jmr3927 =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/configs/defconfig-jmr3927,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- defconfig-jmr3927 12 Feb 2002 18:21:25 -0000 1.5 +++ defconfig-jmr3927 4 Jun 2002 16:14:05 -0000 1.6 @@ -484,7 +484,7 @@ # CONFIG_INTEL_RNG is not set # CONFIG_NVRAM is not set # CONFIG_RTC is not set -# CONFIG_MIPS_RTC is not set +CONFIG_MIPS_RTC=y # CONFIG_DTLK is not set # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set |
From: Paul M. <le...@us...> - 2002-05-31 20:12:24
|
Update of /cvsroot/linux-mips/linux/Documentation In directory usw-pr-cvs1:/tmp/cvs-serv31520/Documentation Modified Files: Configure.help Log Message: TX4927 WDT. Index: Configure.help =================================================================== RCS file: /cvsroot/linux-mips/linux/Documentation/Configure.help,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- Configure.help 21 Apr 2002 18:03:10 -0000 1.11 +++ Configure.help 31 May 2002 20:12:20 -0000 1.12 @@ -17638,6 +17638,52 @@ module, say M here and read <file:Documentation/modules.txt>. Most people will say N. +Toshiba TX4927 Watchdog +CONFIG_TX4927_WDT + This is a driver for the hardware watchdog integrated in the TX4927 + microprocessor. If you want your processor to be reset when it becomes + unresponsive for a duration of time, say Y here, otherwise N. + + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you want). + The module is called tx4927wdt.o. If you want to compile it as a + module, say M here and read <file:Documentation/modules.txt>. Most + people will say N. + +Heartbeat Multiplier +CONFIG_TX4927_WDT_MULT + This is the multiplier used to calculate the next heartbeat duration. + In order to validate the responsiveness of the system, the system + must respond before the heartbeat runs out or the overflow counter + will be allowed to overflow. The next heartbeat time is set to the + overflow value * the multiplier. + + If unsure, use the default value. + +Timer divisor +CONFIG_TX4927_WDT_DIV + This is the divisor used to calculate the next time the overflow + counter is cleared. The timer is set to the overflow value / the + divisor. + + If unsure, use the default value. + +Trigger NMI on overflow +CONFIG_TX4927_WDT_NMI + This changes the behavior of the WDT upon an overflow. By default, + a reset is initiated at overflow time, but optionally this can be + disabled and an NMI can be triggered instead. + + If unsure, say N. + +Overflow value (overrides default) +CONFIG_TX4927_WDT_CMP + This changes the default overflow value. The watchdog overflows + when the overflow counter reaches this value. This can be any + 32-bit value (0 = use default), and defaults to 0xffffffff. + + If unsure, use the default value. + Toshiba Laptop support CONFIG_TOSHIBA This adds a driver to safely access the System Management Mode of |
From: Paul M. <le...@us...> - 2002-05-31 20:12:24
|
Update of /cvsroot/linux-mips/linux/drivers/char In directory usw-pr-cvs1:/tmp/cvs-serv31520/drivers/char Modified Files: Config.in Makefile Added Files: tx4927wdt.c Log Message: TX4927 WDT. --- NEW FILE: tx4927wdt.c --- /* * drivers/char/tx4927wdt.c * * Watchdog driver for integrated watchdog in the TX4927 processors. * * Copyright (C) 2002 Paul Mundt <le...@ch...> * * 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/module.h> #include <linux/init.h> #include <linux/kernel.h> #include <linux/types.h> #include <linux/watchdog.h> #include <linux/miscdevice.h> #include <linux/reboot.h> #include <linux/notifier.h> #include <linux/ioport.h> #include <linux/fs.h> #include <asm/io.h> #include <asm/uaccess.h> #include <asm/tx4927.h> #ifndef CONFIG_CPU_TX49XX #error "Can't use TX49XX watchdog on non-TX49XX processor." #endif #ifndef minor #define minor(x) MINOR(x) #endif #define BIT(x) (1UL << (x)) /* * The TX4927 consists of 3 timer channels: * * 0: Interval Timer mode (default) * 1: Pulse Generator mode * 2: Watchdog Timer mode * * The watchdog exists as the third timer channel. When in * watchdog mode, the first 2 timer channels are reserved. */ /* Registers */ #define TX4927_TMTCR2 0xf200 /* Timer Control Register 2 */ #define TX4927_TMTISR2 0xf204 /* Timer Interrupt Status Register 2 */ #define TX4927_TMCPRA2 0xf208 /* Compare Register A 2 */ #define TX4927_TMCPRB2 0xf20c /* Reserved */ #define TX4927_TMITMR2 0xf210 /* Interval Timer Mode Register 2 */ #define TX4927_TMCCDR2 0xf220 /* Divide Cycle Register 2 */ #define TX4927_TMWGMR2 0xf230 /* Reserved */ #define TX4927_TMWTMR2 0xf240 /* Watchdog Timer Mode Register 2 */ #define TX4927_TMTRR2 0xf2f0 /* Timer Read Register 2 */ /* Flags */ #define TMTCR2_TCE BIT(7) /* Timer Counter Enable */ #define TMTCR2_TMODE_HI BIT(1) /* Timer Mode (high bit) */ #define TMTCR2_TMODE_LO BIT(0) /* Timer Mode (low bit) */ #define TMWTMR2_TWIE BIT(15) /* Watchdog Timer Signaling Enable (NMI) */ #define TMWTMR2_WDIS BIT(7) /* Watchdog Timer Disable */ #define TMWTMR2_TWC BIT(0) /* Watchdog Timer Clear */ /* General Watchdog Flags */ #define WDT_OPEN 0 /* Device is open */ #define WDT_NOWAYOUT 1 /* Don't stop the WDT on exit */ #define WDT_GEN_NMI 2 /* Generate a NMI on overflow */ static unsigned long next_heartbeat; static unsigned long tx4927_flags = 0; static struct watchdog_info tx4927_wdt_info; static struct timer_list timer; static int compare = CONFIG_TX4927_WDT_CMP; static int multiplier = CONFIG_TX4927_WDT_MULT; static int divisor = CONFIG_TX4927_WDT_DIV; #ifdef CONFIG_TX4927_WDT_NMI static int action = 1; #else static int action = 0; #endif #ifdef CONFIG_WATCHDOG_NOWAYOUT static int nowayout = 1; #else static int nowayout = 0; #endif static void tx4927_wdt_start(void) { u32 tmp; timer.expires = tx4927_in32(TX4927_TMCPRA2) / divisor; next_heartbeat = tx4927_in32(TX4927_TMCPRA2) * multiplier; add_timer(&timer); tmp = tx4927_in32(TX4927_TMTCR2); tmp &= ~TMTCR2_TMODE_LO; tmp |= TMTCR2_TMODE_HI; tx4927_out32(TX4927_TMTCR2, tmp); /* * Trigger a NMI on overflow if desired. */ if (test_bit(WDT_GEN_NMI, &tx4927_flags)) { tmp = tx4927_in32(TX4927_TMWTMR2); tmp |= TMWTMR2_TWIE; tx4927_out32(TX4927_TMWTMR2, tmp); } /* * Override the default overflow value if desired. */ if (compare) tx4927_out32(TX4927_TMCPRA2, compare); } static void tx4927_wdt_stop(void) { u32 tmp; del_timer(&timer); tmp = tx4927_in32(TX4927_TMWTMR2); tmp |= TMWTMR2_WDIS; tx4927_out32(TX4927_TMWTMR2, tmp); tmp = tx4927_in32(TX4927_TMTCR2); tmp &= ~TMTCR2_TCE; tx4927_out32(TX4927_TMTCR2, tmp); } static void tx4927_wdt_ping(unsigned long data) { u32 tmp; if (!time_before(jiffies, next_heartbeat)) return; tmp = tx4927_in32(TX4927_TMWTMR2); tmp |= TMWTMR2_TWC; tx4927_out32(TX4927_TMWTMR2, tmp); timer.expires = tx4927_in32(TX4927_TMCPRA2) / divisor; add_timer(&timer); } static int tx4927_wdt_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) { switch (cmd) { case WDIOC_GETSUPPORT: if (copy_to_user((struct watchdog_info *)arg, &tx4927_wdt_info, sizeof(tx4927_wdt_info))) return -EFAULT; break; case WDIOC_KEEPALIVE: next_heartbeat = tx4927_in32(TX4927_TMCPRA2) * multiplier; break; default: return -ENOTTY; } return 0; } static int tx4927_wdt_open(struct inode *inode, struct file *file) { if (minor(inode->i_rdev) != WATCHDOG_MINOR) return -ENODEV; if (test_and_set_bit(WDT_OPEN, &tx4927_flags)) return -EBUSY; tx4927_wdt_start(); return 0; } static int tx4927_wdt_release(struct inode *inode, struct file *file) { if (minor(inode->i_rdev) != WATCHDOG_MINOR) return -ENODEV; if (!test_bit(WDT_NOWAYOUT, &tx4927_flags)) tx4927_wdt_stop(); clear_bit(WDT_OPEN, &tx4927_flags); return 0; } static ssize_t tx4927_wdt_write(struct file *file, const char *buf, size_t count, loff_t *ppos) { if (ppos != &file->f_pos) return -ESPIPE; if (count) { next_heartbeat = tx4927_in32(TX4927_TMCPRA2) * multiplier; return 1; } return 0; } static int tx4927_wdt_notify_sys(struct notifier_block *this, unsigned long code, void *unusued) { if (code == SYS_DOWN || code == SYS_HALT) tx4927_wdt_stop(); return NOTIFY_DONE; } static struct file_operations tx4927_wdt_fops = { owner: THIS_MODULE, llseek: no_llseek, write: tx4927_wdt_write, ioctl: tx4927_wdt_ioctl, open: tx4927_wdt_open, release: tx4927_wdt_release, }; static struct watchdog_info tx4927_wdt_info = { options: WDIOF_KEEPALIVEPING, identity: "TX4927 WDT", firmware_version: 1, }; static struct notifier_block tx4927_wdt_notifier = { notifier_call: tx4927_wdt_notify_sys, priority: 0, }; static struct miscdevice tx4927_wdt_miscdev = { minor: WATCHDOG_MINOR, name: "watchdog", fops: &tx4927_wdt_fops, }; static int __init tx4927_wdt_init(void) { if (misc_register(&tx4927_wdt_miscdev)) return -EINVAL; if (register_reboot_notifier(&tx4927_wdt_notifier)) { misc_deregister(&tx4927_wdt_miscdev); return -EINVAL; } if (nowayout) set_bit(WDT_NOWAYOUT, &tx4927_flags); if (action) set_bit(WDT_GEN_NMI, &tx4927_flags); init_timer(&timer); timer.function = tx4927_wdt_ping; timer.data = 0; return 0; } static void __exit tx4927_wdt_exit(void) { unregister_reboot_notifier(&tx4927_wdt_notifier); misc_deregister(&tx4927_wdt_miscdev); } EXPORT_NO_SYMBOLS; MODULE_AUTHOR("Paul Mundt <le...@ch...>"); MODULE_DESCRIPTION("TX4927 watchdog driver"); MODULE_LICENSE("GPL"); MODULE_PARM(nowayout, "i"); MODULE_PARM_DESC(nowayout, "Watchdog can't be stopped once started. Defaults to CONFIG_WATCHDOG_NOWAYOUT."); MODULE_PARM(multiplier, "i"); MODULE_PARM_DESC(multiplier, "Heartbeat multiplier (next heartbeat = overflow value * multiplier). Defaults to CONFIG_TX4927_WDT_MULT."); MODULE_PARM(divisor, "i"); MODULE_PARM_DESC(divisor, "Timer divisor (next counter clear = overflow value / divisor). Defaults to CONFIG_TX4927_WDT_DIV."); MODULE_PARM(action, "i"); MODULE_PARM_DESC(action, "Action on counter overflow (0 = reset, 1 = NMI). Defaults to reset."); MODULE_PARM(compare, "i"); MODULE_PARM_DESC(compare, "Overflow value. Defaults to 0xffffffff."); module_init(tx4927_wdt_init); module_exit(tx4927_wdt_exit); Index: Config.in =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/char/Config.in,v retrieving revision 1.36 retrieving revision 1.37 diff -u -d -r1.36 -r1.37 --- Config.in 29 May 2002 00:23:16 -0000 1.36 +++ Config.in 31 May 2002 20:12:20 -0000 1.37 @@ -224,6 +224,13 @@ tristate ' ZF MachZ Watchdog' CONFIG_MACHZ_WDT dep_tristate ' Indy/I2 Hardware Watchdog' CONFIG_INDYDOG $CONFIG_SGI_IP22 dep_tristate ' NEC VR41xx Watchdog (DSU)' CONFIG_VR41XX_WDT $CONFIG_CPU_VR41XX + dep_tristate ' Toshiba TX4927 Watchdog' CONFIG_TX4927_WDT $CONFIG_CPU_TX49XX + if [ "$CONFIG_TX4927_WDT" != "n" ]; then + int ' Heartbeat multiplier' CONFIG_TX4927_WDT_MULT 2 + int ' Timer divisor' CONFIG_TX4927_WDT_DIV 2 + bool ' Trigger NMI on overflow' CONFIG_TX4927_WDT_NMI + int ' Overflow value (overrides default)' CONFIG_TX4927_WDT_CMP 0 + fi fi endmenu Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/char/Makefile,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- Makefile 29 May 2002 00:23:16 -0000 1.30 +++ Makefile 31 May 2002 20:12:20 -0000 1.31 @@ -265,6 +265,7 @@ obj-$(CONFIG_SOFT_WATCHDOG) += softdog.o obj-$(CONFIG_INDYDOG) += indydog.o obj-$(CONFIG_VR41XX_WDT) += vr41xxwdt.o +obj-$(CONFIG_TX4927_WDT) += tx4927wdt.o obj-$(CONFIG_BUTTONS) += buttons.o obj-$(CONFIG_VR41XX_GPIO_BUTTONS) += gpiobtns.o obj-$(CONFIG_VR41XX_E105_BUTTONS) += e105btns.o |
From: Paul M. <le...@us...> - 2002-05-31 18:03:07
|
Update of /cvsroot/linux-mips/linux/drivers/char In directory usw-pr-cvs1:/tmp/cvs-serv32596 Modified Files: vr41xxwdt.c Log Message: Make things build under 2.4 again. Index: vr41xxwdt.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/char/vr41xxwdt.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- vr41xxwdt.c 24 May 2002 14:52:25 -0000 1.6 +++ vr41xxwdt.c 31 May 2002 18:03:04 -0000 1.7 @@ -32,6 +32,10 @@ #error "Can't use VR41xx watchdog on processors without a DSU." #endif +#ifndef minor + #define minor(x) MINOR(x) +#endif + #define DSUMINOVRFLW 0x01 /* DSU Min Overflow Interval */ #define DSUMAXOVRFLW 0x0f /* DSU Max Overflow Interval */ |
From: Paul M. <le...@us...> - 2002-05-31 17:29:01
|
Update of /cvsroot/linux-mips/linux/arch/mips/mm In directory usw-pr-cvs1:/tmp/cvs-serv14706 Modified Files: pg-vr4131.c Log Message: r4k_clear_page_d32() update. Get things more in sync with the generic r4k approach, but make sure to use Index_Writeback_Inv_D. Index: pg-vr4131.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/mm/pg-vr4131.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- pg-vr4131.c 10 Mar 2002 08:26:36 -0000 1.2 +++ pg-vr4131.c 31 May 2002 17:28:58 -0000 1.3 @@ -127,50 +127,31 @@ void r4k_clear_page_d32(void *page) { - unsigned long reg1; - __asm__ __volatile__( ".set\tnoreorder\n\t" ".set\tnoat\n\t" ".set\tmips3\n\t" - "mfc0 %1,$16\n\t" - "nop\n\t" - "mtc0\t$0,$28\n\t" - "mtc0\t$0,$29\n\t" - "nop\n\t" - "daddiu\t$1,%0,%3\n" - "1:\tcache\t0x09,(%0)\n\t" - "cache\t%4,(%0)\n\t" + "daddiu\t$1,%0,%2\n" + "1:\tcache\t%3,(%0)\n\t" "sd\t$0,(%0)\n\t" "sd\t$0,8(%0)\n\t" - "cache\t0x09,(%0)\n\t" - "cache\t0x09,16(%0)\n\t" "sd\t$0,16(%0)\n\t" "sd\t$0,24(%0)\n\t" "daddiu\t%0,64\n\t" - "cache\t0x09,16(%0)\n\t" - "cache\t0x09,-32(%0)\n\t" - "cache\t%4,-32(%0)\n\t" + "cache\t%3,-32(%0)\n\t" "sd\t$0,-32(%0)\n\t" "sd\t$0,-24(%0)\n\t" - "cache\t0x09,-32(%0)\n\t" - "cache\t0x09,-16(%0)\n\t" "sd\t$0,-16(%0)\n\t" - "sd\t$0,-8(%0)\n\t" - "cache\t0x09,-16(%0)\n\t" - "nop\n\t" "bne\t$1,%0,1b\n\t" - "nop\n\t" - "mtc0 %1,$16\n\t" - "nop\n\t" + "sd\t$0,-8(%0)\n\t" ".set\tmips0\n\t" ".set\tat\n\t" ".set\treorder" - :"=r" (page), "=&r" (reg1) + :"=r" (page) :"0" (page), "I" (PAGE_SIZE), "i" (Index_Writeback_Inv_D) - :"$1", "memory"); + :"$1","memory"); } void r4k_copy_page_d32(void *to, void *from) |
From: Paul M. <le...@us...> - 2002-05-31 17:22:55
|
Update of /cvsroot/linux-mips/linux/include/linux In directory usw-pr-cvs1:/tmp/cvs-serv13160/include/linux Modified Files: pci_ids.h Log Message: Do something with the M5457 on the DDB4131. Index: pci_ids.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/linux/pci_ids.h,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- pci_ids.h 21 Apr 2002 20:06:20 -0000 1.16 +++ pci_ids.h 31 May 2002 17:22:51 -0000 1.17 @@ -822,6 +822,7 @@ #define PCI_DEVICE_ID_AL_M5237 0x5237 #define PCI_DEVICE_ID_AL_M5243 0x5243 #define PCI_DEVICE_ID_AL_M5451 0x5451 +#define PCI_DEVICE_ID_AL_M5457 0x5457 #define PCI_DEVICE_ID_AL_M7101 0x7101 #define PCI_VENDOR_ID_MITSUBISHI 0x10ba |
From: Paul M. <le...@us...> - 2002-05-31 17:22:55
|
Update of /cvsroot/linux-mips/linux/drivers/char In directory usw-pr-cvs1:/tmp/cvs-serv13160/drivers/char Modified Files: serial.c Log Message: Do something with the M5457 on the DDB4131. Index: serial.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/char/serial.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- serial.c 21 Apr 2002 20:01:14 -0000 1.12 +++ serial.c 31 May 2002 17:22:50 -0000 1.13 @@ -4172,10 +4172,6 @@ if (!enable) /* is there something to deinit? */ return(0); -#ifdef SERIAL_DEBUG_PCI - printk(KERN_DEBUG " Subsystem ID %lx (intel 960)\n", - (unsigned long) board->subdevice); -#endif /* is firmware started? */ pci_read_config_dword(dev, 0x44, (void*) &oldval); if (oldval == 0x00001000L) { /* RESET value */ @@ -4887,6 +4883,9 @@ 0xFF00, 0, 0, 0, pbn_sgi_ioc3 }, + { PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M5457, + PCI_ANY_ID, PCI_ANY_ID, 0, 0, pbn_b0_1_115200 }, + #ifdef CONFIG_DDB5074 /* * NEC Vrc-5074 (Nile 4) builtin UART. @@ -5509,7 +5508,7 @@ && (state->port != 0 || state->iomem_base != 0)) state->irq = detect_uart_irq(state); if (state->io_type == SERIAL_IO_MEM) { - printk(KERN_INFO"ttyS%02d%s at 0x%px (irq = %d) is a %s\n", + printk(KERN_INFO"ttyS%02d%s at 0x%p (irq = %d) is a %s\n", state->line + SERIAL_DEV_OFFSET, (state->flags & ASYNC_FOURPORT) ? " FourPort" : "", state->iomem_base, state->irq, |
From: Steve L. <slo...@us...> - 2002-05-30 22:26:48
|
Update of /cvsroot/linux-mips/linux/arch/mips/kernel In directory usw-pr-cvs1:/tmp/cvs-serv10571 Modified Files: proc.c Log Message: RC32300 was trampled. Index: proc.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/proc.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- proc.c 30 May 2002 20:42:08 -0000 1.18 +++ proc.c 30 May 2002 22:26:45 -0000 1.19 @@ -67,6 +67,7 @@ [CPU_R5500] "R5500", [CPU_TX49XX] "TX49xx", [CPU_TX39XX] "TX39xx", + [CPU_RC32300] "RC32300", [CPU_20KC] "MIPS 20Kc" }; |
From: James S. <jsi...@us...> - 2002-05-30 20:43:36
|
Update of /cvsroot/linux-mips/linux/include/asm-mips64/sibyte In directory usw-pr-cvs1:/tmp/cvs-serv30332/include/asm-mips64/sibyte Removed Files: sb1250_pci.h Log Message: Updated Mips 64 to OSS tree. --- sb1250_pci.h DELETED --- |
From: James S. <jsi...@us...> - 2002-05-30 20:42:45
|
Update of /cvsroot/linux-mips/linux/arch/mips64/configs In directory usw-pr-cvs1:/tmp/cvs-serv29100/arch/mips64/configs Modified Files: defconfig-atlas defconfig-ip22 defconfig-ip27 defconfig-ip32 defconfig-malta defconfig-sb1250-swarm Log Message: Updated Mips 64 to OSS tree. Index: defconfig-atlas =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/configs/defconfig-atlas,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- defconfig-atlas 18 Mar 2002 22:25:07 -0000 1.6 +++ defconfig-atlas 30 May 2002 20:42:08 -0000 1.7 @@ -10,6 +10,11 @@ CONFIG_EXPERIMENTAL=y # +# Loadable module support +# +# CONFIG_MODULES is not set + +# # Machine selection # CONFIG_MIPS_ATLAS=y @@ -25,10 +30,6 @@ CONFIG_NONCOHERENT_IO=y CONFIG_PCI=y CONFIG_SWAP_IO_SPACE=y -# CONFIG_ISA is not set -# CONFIG_EISA is not set -# CONFIG_MCA is not set -# CONFIG_SBUS is not set # # CPU selection @@ -49,24 +50,24 @@ # CONFIG_CPU_LITTLE_ENDIAN is not set CONFIG_NET=y CONFIG_PCI_NAMES=y +# CONFIG_ISA is not set +# CONFIG_EISA is not set +# CONFIG_MCA is not set +# CONFIG_SBUS is not set # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_SYSCTL is not set +CONFIG_KCORE_ELF=y +# CONFIG_KCORE_AOUT is not set CONFIG_BINFMT_ELF=y CONFIG_MIPS32_COMPAT=y CONFIG_BINFMT_ELF32=y # CONFIG_BINFMT_MISC is not set # -# Loadable module support -# -# CONFIG_MODULES is not set -CONFIG_PCI_NAMES=y - -# # Memory Technology Devices (MTD) # # CONFIG_MTD is not set @@ -77,6 +78,12 @@ # CONFIG_PARPORT is not set # +# Plug and Play configuration +# +# CONFIG_PNP is not set +# CONFIG_ISAPNP is not set + +# # Block devices # # CONFIG_BLK_DEV_FD is not set @@ -236,6 +243,16 @@ # CONFIG_SCSI_DEBUG is not set # +# I2O device support +# +# CONFIG_I2O is not set +# CONFIG_I2O_PCI is not set +# CONFIG_I2O_BLOCK is not set +# CONFIG_I2O_LAN is not set +# CONFIG_I2O_SCSI is not set +# CONFIG_I2O_PROC is not set + +# # Network device support # CONFIG_NETDEVICES=y @@ -318,11 +335,6 @@ # CONFIG_ISDN is not set # -# Old CD-ROM drivers (not SCSI, not IDE) -# -# CONFIG_CD_NO_IDESCSI is not set - -# # Character devices # # CONFIG_VT is not set @@ -463,7 +475,6 @@ CONFIG_MSDOS_PARTITION=y # CONFIG_SMB_NLS is not set # CONFIG_NLS is not set -CONFIG_KCORE_ELF=y # # Sound Index: defconfig-ip22 =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/configs/defconfig-ip22,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- defconfig-ip22 18 Mar 2002 22:25:07 -0000 1.11 +++ defconfig-ip22 30 May 2002 20:42:09 -0000 1.12 @@ -10,6 +10,13 @@ CONFIG_EXPERIMENTAL=y # +# Loadable module support +# +CONFIG_MODULES=y +# CONFIG_MODVERSIONS is not set +CONFIG_KMOD=y + +# # Machine selection # # CONFIG_MIPS_ATLAS is not set @@ -30,11 +37,6 @@ CONFIG_NONCOHERENT_IO=y CONFIG_SGI=y CONFIG_L1_CACHE_SHIFT=5 -# CONFIG_ISA is not set -# CONFIG_EISA is not set -# CONFIG_PCI is not set -# CONFIG_MCA is not set -# CONFIG_SBUS is not set # # CPU selection @@ -53,27 +55,27 @@ # General setup # # CONFIG_CPU_LITTLE_ENDIAN is not set +CONFIG_ARC_CONSOLE=y CONFIG_NET=y +# CONFIG_PCI is not set +# CONFIG_ISA is not set +# CONFIG_EISA is not set +# CONFIG_MCA is not set +# CONFIG_SBUS is not set # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y -CONFIG_ARC_CONSOLE=y +CONFIG_KCORE_ELF=y +# CONFIG_KCORE_AOUT is not set CONFIG_BINFMT_ELF=y CONFIG_MIPS32_COMPAT=y CONFIG_BINFMT_ELF32=y # CONFIG_BINFMT_MISC is not set # -# Loadable module support -# -CONFIG_MODULES=y -# CONFIG_MODVERSIONS is not set -CONFIG_KMOD=y - -# # Memory Technology Devices (MTD) # # CONFIG_MTD is not set @@ -84,6 +86,12 @@ # CONFIG_PARPORT is not set # +# Plug and Play configuration +# +# CONFIG_PNP is not set +# CONFIG_ISAPNP is not set + +# # Block devices # # CONFIG_BLK_DEV_FD is not set @@ -165,13 +173,6 @@ # CONFIG_PHONE_IXJ_PCMCIA is not set # -# ATA/IDE/MFM/RLL support -# -# CONFIG_IDE is not set -# CONFIG_BLK_DEV_IDE_MODES is not set -# CONFIG_BLK_DEV_HD is not set - -# # SCSI support # CONFIG_SCSI=y @@ -319,11 +320,6 @@ # CONFIG_ISDN is not set # -# Old CD-ROM drivers (not SCSI, not IDE) -# -# CONFIG_CD_NO_IDESCSI is not set - -# # Character devices # CONFIG_VT=y @@ -503,7 +499,6 @@ # CONFIG_FB is not set CONFIG_SGI_NEWPORT_CONSOLE=y CONFIG_FONT_8x16=y -CONFIG_KCORE_ELF=y # # Sound @@ -635,7 +630,6 @@ # Kernel hacking # CONFIG_CROSSCOMPILE=y -# CONFIG_MIPS_FPE_MODULE is not set # CONFIG_REMOTE_DEBUG is not set # CONFIG_MAGIC_SYSRQ is not set # CONFIG_MIPS_UNCACHED is not set Index: defconfig-ip27 =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/configs/defconfig-ip27,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- defconfig-ip27 26 Feb 2002 19:03:28 -0000 1.10 +++ defconfig-ip27 30 May 2002 20:42:09 -0000 1.11 @@ -10,10 +10,16 @@ # CONFIG_EXPERIMENTAL is not set # +# Loadable module support +# +# CONFIG_MODULES is not set + +# # Machine selection # +# CONFIG_MIPS_ATLAS is not set +# CONFIG_MIPS_MALTA is not set CONFIG_SGI_IP27=y -# CONFIG_SIBYTE_SB1250 is not set # CONFIG_SGI_SN0_N_MODE is not set CONFIG_DISCONTIGMEM=y CONFIG_NUMA=y @@ -21,6 +27,9 @@ # CONFIG_REPLICATE_KTEXT is not set # CONFIG_REPLICATE_EXHANDLERS is not set CONFIG_SMP=y +# CONFIG_SGI_IP22 is not set +# CONFIG_SGI_IP32 is not set +# CONFIG_SIBYTE_SB1250 is not set CONFIG_RWSEM_GENERIC_SPINLOCK=y # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set CONFIG_BOOT_ELF64=y @@ -29,10 +38,6 @@ CONFIG_PCI=y CONFIG_QL_ISP_A64=y CONFIG_L1_CACHE_SHIFT=7 -# CONFIG_ISA is not set -# CONFIG_EISA is not set -# CONFIG_MCA is not set -# CONFIG_SBUS is not set # # CPU selection @@ -54,24 +59,24 @@ # CONFIG_CPU_LITTLE_ENDIAN is not set CONFIG_NET=y CONFIG_PCI_NAMES=y +# CONFIG_ISA is not set +# CONFIG_EISA is not set +# CONFIG_MCA is not set +# CONFIG_SBUS is not set # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y +CONFIG_KCORE_ELF=y +# CONFIG_KCORE_AOUT is not set CONFIG_BINFMT_ELF=y CONFIG_MIPS32_COMPAT=y CONFIG_BINFMT_ELF32=y # CONFIG_BINFMT_MISC is not set # -# Loadable module support -# -# CONFIG_MODULES is not set -CONFIG_PCI_NAMES=y - -# # Memory Technology Devices (MTD) # # CONFIG_MTD is not set @@ -82,6 +87,12 @@ # CONFIG_PARPORT is not set # +# Plug and Play configuration +# +# CONFIG_PNP is not set +# CONFIG_ISAPNP is not set + +# # Block devices # # CONFIG_BLK_DEV_FD is not set @@ -227,6 +238,16 @@ # CONFIG_SCSI_U14_34F is not set # +# I2O device support +# +# CONFIG_I2O is not set +# CONFIG_I2O_PCI is not set +# CONFIG_I2O_BLOCK is not set +# CONFIG_I2O_LAN is not set +# CONFIG_I2O_SCSI is not set +# CONFIG_I2O_PROC is not set + +# # Network device support # CONFIG_NETDEVICES=y @@ -306,11 +327,6 @@ # CONFIG_ISDN is not set # -# Old CD-ROM drivers (not SCSI, not IDE) -# -# CONFIG_CD_NO_IDESCSI is not set - -# # Character devices # # CONFIG_VT is not set @@ -465,7 +481,6 @@ # CONFIG_SUN_PARTITION is not set # CONFIG_SMB_NLS is not set # CONFIG_NLS is not set -CONFIG_KCORE_ELF=y # # Sound Index: defconfig-ip32 =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/configs/defconfig-ip32,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- defconfig-ip32 18 Mar 2002 22:25:07 -0000 1.11 +++ defconfig-ip32 30 May 2002 20:42:09 -0000 1.12 @@ -10,6 +10,11 @@ CONFIG_EXPERIMENTAL=y # +# Loadable module support +# +# CONFIG_MODULES is not set + +# # Machine selection # # CONFIG_MIPS_ATLAS is not set @@ -28,10 +33,6 @@ CONFIG_NONCOHERENT_IO=y CONFIG_ARC_MEMORY=y CONFIG_L1_CACHE_SHIFT=5 -# CONFIG_ISA is not set -# CONFIG_EISA is not set -# CONFIG_MCA is not set -# CONFIG_SBUS is not set # # CPU selection @@ -50,27 +51,27 @@ # General setup # # CONFIG_CPU_LITTLE_ENDIAN is not set +CONFIG_ARC_CONSOLE=y CONFIG_NET=y CONFIG_PCI_NAMES=y +# CONFIG_ISA is not set +# CONFIG_EISA is not set +# CONFIG_MCA is not set +# CONFIG_SBUS is not set # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_SYSCTL=y -CONFIG_ARC_CONSOLE=y +CONFIG_KCORE_ELF=y +# CONFIG_KCORE_AOUT is not set CONFIG_BINFMT_ELF=y CONFIG_MIPS32_COMPAT=y CONFIG_BINFMT_ELF32=y CONFIG_BINFMT_MISC=y # -# Loadable module support -# -# CONFIG_MODULES is not set -CONFIG_PCI_NAMES=y - -# # Memory Technology Devices (MTD) # # CONFIG_MTD is not set @@ -81,6 +82,12 @@ # CONFIG_PARPORT is not set # +# Plug and Play configuration +# +# CONFIG_PNP is not set +# CONFIG_ISAPNP is not set + +# # Block devices # # CONFIG_BLK_DEV_FD is not set @@ -244,6 +251,16 @@ # CONFIG_SCSI_DEBUG is not set # +# I2O device support +# +# CONFIG_I2O is not set +# CONFIG_I2O_PCI is not set +# CONFIG_I2O_BLOCK is not set +# CONFIG_I2O_LAN is not set +# CONFIG_I2O_SCSI is not set +# CONFIG_I2O_PROC is not set + +# # Network device support # CONFIG_NETDEVICES=y @@ -327,11 +344,6 @@ # CONFIG_ISDN is not set # -# Old CD-ROM drivers (not SCSI, not IDE) -# -# CONFIG_CD_NO_IDESCSI is not set - -# # Character devices # # CONFIG_VT is not set @@ -485,7 +497,6 @@ # CONFIG_SUN_PARTITION is not set # CONFIG_SMB_NLS is not set # CONFIG_NLS is not set -CONFIG_KCORE_ELF=y # # Sound Index: defconfig-malta =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/configs/defconfig-malta,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- defconfig-malta 18 Mar 2002 22:25:07 -0000 1.6 +++ defconfig-malta 30 May 2002 20:42:09 -0000 1.7 @@ -10,6 +10,11 @@ CONFIG_EXPERIMENTAL=y # +# Loadable module support +# +# CONFIG_MODULES is not set + +# # Machine selection # # CONFIG_MIPS_ATLAS is not set @@ -26,10 +31,6 @@ CONFIG_NONCOHERENT_IO=y CONFIG_PCI=y CONFIG_SWAP_IO_SPACE=y -# CONFIG_ISA is not set -# CONFIG_EISA is not set -# CONFIG_MCA is not set -# CONFIG_SBUS is not set # # CPU selection @@ -50,24 +51,24 @@ CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_NET=y CONFIG_PCI_NAMES=y +# CONFIG_ISA is not set +# CONFIG_EISA is not set +# CONFIG_MCA is not set +# CONFIG_SBUS is not set # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_SYSCTL is not set +CONFIG_KCORE_ELF=y +# CONFIG_KCORE_AOUT is not set CONFIG_BINFMT_ELF=y CONFIG_MIPS32_COMPAT=y CONFIG_BINFMT_ELF32=y # CONFIG_BINFMT_MISC is not set # -# Loadable module support -# -# CONFIG_MODULES is not set -CONFIG_PCI_NAMES=y - -# # Memory Technology Devices (MTD) # # CONFIG_MTD is not set @@ -78,6 +79,12 @@ # CONFIG_PARPORT is not set # +# Plug and Play configuration +# +# CONFIG_PNP is not set +# CONFIG_ISAPNP is not set + +# # Block devices # CONFIG_BLK_DEV_FD=y @@ -237,6 +244,16 @@ # CONFIG_SCSI_DEBUG is not set # +# I2O device support +# +# CONFIG_I2O is not set +# CONFIG_I2O_PCI is not set +# CONFIG_I2O_BLOCK is not set +# CONFIG_I2O_LAN is not set +# CONFIG_I2O_SCSI is not set +# CONFIG_I2O_PROC is not set + +# # Network device support # CONFIG_NETDEVICES=y @@ -319,11 +336,6 @@ # CONFIG_ISDN is not set # -# Old CD-ROM drivers (not SCSI, not IDE) -# -# CONFIG_CD_NO_IDESCSI is not set - -# # Character devices # # CONFIG_VT is not set @@ -464,7 +476,6 @@ CONFIG_MSDOS_PARTITION=y # CONFIG_SMB_NLS is not set # CONFIG_NLS is not set -CONFIG_KCORE_ELF=y # # Sound Index: defconfig-sb1250-swarm =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/configs/defconfig-sb1250-swarm,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- defconfig-sb1250-swarm 26 Feb 2002 19:03:28 -0000 1.7 +++ defconfig-sb1250-swarm 30 May 2002 20:42:09 -0000 1.8 @@ -10,9 +10,18 @@ # CONFIG_EXPERIMENTAL is not set # +# Loadable module support +# +# CONFIG_MODULES is not set + +# # Machine selection # +# CONFIG_MIPS_ATLAS is not set +# CONFIG_MIPS_MALTA is not set # CONFIG_SGI_IP27 is not set +# CONFIG_SGI_IP22 is not set +# CONFIG_SGI_IP32 is not set CONFIG_SIBYTE_SB1250=y # CONFIG_PCI is not set # CONFIG_SIBYTE_SB1250_PROF is not set @@ -30,11 +39,6 @@ CONFIG_CFE=y CONFIG_SIBYTE_SB1250=y CONFIG_L1_CACHE_SHIFT=5 -# CONFIG_ISA is not set -# CONFIG_EISA is not set -# CONFIG_PCI is not set -# CONFIG_MCA is not set -# CONFIG_SBUS is not set # # CPU selection @@ -57,23 +61,25 @@ # # CONFIG_CPU_LITTLE_ENDIAN is not set CONFIG_NET=y +# CONFIG_PCI is not set +# CONFIG_ISA is not set +# CONFIG_EISA is not set +# CONFIG_MCA is not set +# CONFIG_SBUS is not set # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set # CONFIG_HOTPLUG_PCI is not set # CONFIG_SYSVIPC is not set # CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_SYSCTL is not set +CONFIG_KCORE_ELF=y +# CONFIG_KCORE_AOUT is not set CONFIG_BINFMT_ELF=y CONFIG_MIPS32_COMPAT=y CONFIG_BINFMT_ELF32=y # CONFIG_BINFMT_MISC is not set # -# Loadable module support -# -# CONFIG_MODULES is not set - -# # Memory Technology Devices (MTD) # # CONFIG_MTD is not set @@ -84,6 +90,12 @@ # CONFIG_PARPORT is not set # +# Plug and Play configuration +# +# CONFIG_PNP is not set +# CONFIG_ISAPNP is not set + +# # Block devices # # CONFIG_BLK_DEV_FD is not set @@ -150,13 +162,6 @@ # CONFIG_PHONE_IXJ_PCMCIA is not set # -# ATA/IDE/MFM/RLL support -# -# CONFIG_IDE is not set -# CONFIG_BLK_DEV_IDE_MODES is not set -# CONFIG_BLK_DEV_HD is not set - -# # SCSI support # # CONFIG_SCSI is not set @@ -239,11 +244,6 @@ # CONFIG_ISDN is not set # -# Old CD-ROM drivers (not SCSI, not IDE) -# -# CONFIG_CD_NO_IDESCSI is not set - -# # Character devices # # CONFIG_VT is not set @@ -420,7 +420,6 @@ # CONFIG_SUN_PARTITION is not set # CONFIG_SMB_NLS is not set # CONFIG_NLS is not set -CONFIG_KCORE_ELF=y # # Sound |
From: James S. <jsi...@us...> - 2002-05-30 20:42:44
|
Update of /cvsroot/linux-mips/linux/arch/mips64/kernel In directory usw-pr-cvs1:/tmp/cvs-serv29100/arch/mips64/kernel Modified Files: entry.S irq.c linux32.c pci-dma.c proc.c r4k_switch.S setup.c signal.c signal32.c smp.c syscall.c unaligned.c Log Message: Updated Mips 64 to OSS tree. Index: entry.S =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/kernel/entry.S,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- entry.S 18 Dec 2001 00:25:47 -0000 1.5 +++ entry.S 30 May 2002 20:42:10 -0000 1.6 @@ -9,8 +9,6 @@ * Copyright (C) 1999, 2000 Silicon Graphics * Copyright (C) 2001 MIPS Technologies, Inc. */ -#include <linux/config.h> - #include <asm/asm.h> #include <asm/regdef.h> #include <asm/mipsregs.h> @@ -37,7 +35,7 @@ EXPORT(ret_from_irq) EXPORT(ret_from_exception) - lw t0, PT_STATUS(sp) # returning to kernel mode? + ld t0, PT_STATUS(sp) # returning to kernel mode? andi t0, t0, KU_USER bnez t0, ret_from_sys_call j restore_all Index: irq.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/kernel/irq.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- irq.c 28 Jan 2002 20:31:57 -0000 1.4 +++ irq.c 30 May 2002 20:42:10 -0000 1.5 @@ -76,13 +76,13 @@ int get_irq_list(char *buf) { + int i, j; struct irqaction * action; char *p = buf; - int i; p += sprintf(p, " "); - for (i=0; i < 1 /*smp_num_cpus*/; i++) - p += sprintf(p, "CPU%d ", i); + for (j=0; j<smp_num_cpus; j++) + p += sprintf(p, "CPU%d ",j); *p++ = '\n'; for (i = 0 ; i < NR_IRQS ; i++) { @@ -90,7 +90,13 @@ if (!action) continue; p += sprintf(p, "%3d: ",i); +#ifndef CONFIG_SMP p += sprintf(p, "%10u ", kstat_irqs(i)); +#else + for (j = 0; j < smp_num_cpus; j++) + p += sprintf(p, "%10u ", + kstat.irqs[cpu_logical_map(j)][i]); +#endif p += sprintf(p, " %14s", irq_desc[i].handler->typename); p += sprintf(p, " %s", action->name); @@ -98,7 +104,8 @@ p += sprintf(p, ", %s", action->name); *p++ = '\n'; } - p += sprintf(p, "ERR: %10lu\n", irq_err_count); + p += sprintf(p, "\n"); + p += sprintf(p, "ERR: %10u\n", atomic_read(&irq_err_count)); return p - buf; } Index: linux32.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/kernel/linux32.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- linux32.c 28 May 2002 20:25:36 -0000 1.6 +++ linux32.c 30 May 2002 20:42:10 -0000 1.7 @@ -1607,7 +1607,9 @@ if (!p) return -ENOMEM; err = get_user (p->mtype, &up->mtype); - err |= __copy_from_user (p->mtext, &up->mtext, second); + if (err) + goto out; + err = __copy_from_user (p->mtext, &up->mtext, second); if (err) goto out; old_fs = get_fs (); Index: pci-dma.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/kernel/pci-dma.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- pci-dma.c 28 Jan 2002 20:34:23 -0000 1.1 +++ pci-dma.c 30 May 2002 20:42:10 -0000 1.2 @@ -7,6 +7,7 @@ * Copyright (C) 2000 Ralf Baechle <ra...@gn...> * swiped from i386, and cloned for MIPS by Geert, polished by Ralf. */ +#include <linux/config.h> #include <linux/types.h> #include <linux/mm.h> #include <linux/string.h> Index: proc.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/kernel/proc.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- proc.c 21 Apr 2002 20:01:14 -0000 1.11 +++ proc.c 30 May 2002 20:42:10 -0000 1.12 @@ -59,13 +59,15 @@ [CPU_TX3912] "TX3912", [CPU_TX3922] "TX3922", [CPU_TX3927] "TX3927", - [CPU_AU1000] "Au1000", + [CPU_AU1000] "Au1000", + [CPU_AU1500] "Au1500", [CPU_4KEC] "MIPS 4KEc", [CPU_4KSC] "MIPS 4KSc", [CPU_VR41XX] "NEC Vr41xx", [CPU_R5500] "R5500", [CPU_TX49XX] "TX49xx", - [CPU_TX39XX] "TX39xx" + [CPU_TX39XX] "TX39xx", + [CPU_20KC] "MIPS 20Kc" }; @@ -100,6 +102,7 @@ seq_printf(m, "wait instruction\t: %s\n", cpu_wait ? "yes" : "no"); seq_printf(m, "microsecond timers\t: %s\n", (mips_cpu.options & MIPS_CPU_COUNTER) ? "yes" : "no"); + seq_printf(m, "tlb_entries\t\t: %d\n", mips_cpu.tlbsize); seq_printf(m, "extra interrupt vector\t: %s\n", (mips_cpu.options & MIPS_CPU_DIVEC) ? "yes" : "no"); seq_printf(m, "hardware watchpoint\t: %s\n", Index: r4k_switch.S =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/kernel/r4k_switch.S,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- r4k_switch.S 28 May 2002 20:25:36 -0000 1.3 +++ r4k_switch.S 30 May 2002 20:42:10 -0000 1.4 @@ -8,7 +8,6 @@ * Copyright (C) 1994, 1995, 1996, by Andreas Busse * Copyright (C) 1999 Silicon Graphics, Inc. */ -#include <linux/config.h> #include <asm/asm.h> #include <asm/cachectl.h> #include <asm/current.h> Index: setup.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/kernel/setup.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- setup.c 19 Feb 2002 17:50:59 -0000 1.11 +++ setup.c 30 May 2002 20:42:10 -0000 1.12 @@ -140,6 +140,11 @@ case CPU_NEVADA: case CPU_RM7000: case CPU_TX49XX: + case CPU_4KC: + case CPU_4KEC: + case CPU_4KSC: + case CPU_5KC: +/* case CPU_20KC:*/ cpu_wait = r4k_wait; printk(" available.\n"); break; @@ -189,9 +194,26 @@ static inline void cpu_probe(void) { #ifdef CONFIG_CPU_MIPS32 + unsigned long config0 = read_32bit_cp0_register(CP0_CONFIG); unsigned long config1; -#endif + if (config0 & (1 << 31)) { + /* MIPS32 compliant CPU. Read Config 1 register. */ + mips_cpu.isa_level = MIPS_CPU_ISA_M32; + mips_cpu.options = MIPS_CPU_TLB | MIPS_CPU_4KEX | + MIPS_CPU_4KTLB | MIPS_CPU_COUNTER | MIPS_CPU_DIVEC; + config1 = read_mips32_cp0_config1(); + if (config1 & (1 << 3)) + mips_cpu.options |= MIPS_CPU_WATCH; + if (config1 & (1 << 2)) + mips_cpu.options |= MIPS_CPU_MIPS16; + if (config1 & (1 << 1)) + mips_cpu.options |= MIPS_CPU_EJTAG; + if (config1 & 1) + mips_cpu.options |= MIPS_CPU_FPU; + mips_cpu.scache.flags = MIPS_CACHE_NOT_PRESENT; + } +#endif mips_cpu.processor_id = read_32bit_cp0_register(CP0_PRID); switch (mips_cpu.processor_id & 0xff0000) { case PRID_COMP_LEGACY: @@ -381,48 +403,20 @@ switch (mips_cpu.processor_id & 0xff00) { case PRID_IMP_4KC: mips_cpu.cputype = CPU_4KC; - goto cpu_4kc; + break; case PRID_IMP_4KEC: mips_cpu.cputype = CPU_4KEC; - goto cpu_4kc; + break; case PRID_IMP_4KSC: mips_cpu.cputype = CPU_4KSC; -cpu_4kc: - /* - * Why do we set all these options by default, THEN - * query them?? - */ - mips_cpu.isa_level = MIPS_CPU_ISA_M32; - mips_cpu.options = MIPS_CPU_TLB | MIPS_CPU_4KEX | - MIPS_CPU_4KTLB | MIPS_CPU_COUNTER | - MIPS_CPU_DIVEC | MIPS_CPU_WATCH | - MIPS_CPU_MCHECK; - config1 = read_mips32_cp0_config1(); - if (config1 & (1 << 3)) - mips_cpu.options |= MIPS_CPU_WATCH; - if (config1 & (1 << 2)) - mips_cpu.options |= MIPS_CPU_MIPS16; - if (config1 & 1) - mips_cpu.options |= MIPS_CPU_FPU; - mips_cpu.scache.flags = MIPS_CACHE_NOT_PRESENT; break; case PRID_IMP_5KC: mips_cpu.cputype = CPU_5KC; mips_cpu.isa_level = MIPS_CPU_ISA_M64; - /* See comment above about querying options */ - mips_cpu.options = MIPS_CPU_TLB | MIPS_CPU_4KEX | - MIPS_CPU_4KTLB | MIPS_CPU_COUNTER | - MIPS_CPU_DIVEC | MIPS_CPU_WATCH | - MIPS_CPU_MCHECK; - config1 = read_mips32_cp0_config1(); - if (config1 & (1 << 3)) - mips_cpu.options |= MIPS_CPU_WATCH; - if (config1 & (1 << 2)) - mips_cpu.options |= MIPS_CPU_MIPS16; - if (config1 & 1) - mips_cpu.options |= MIPS_CPU_FPU; - mips_cpu.scache.flags = MIPS_CACHE_NOT_PRESENT; break; + case PRID_IMP_20KC: + mips_cpu.cputype = CPU_20KC; + mips_cpu.isa_level = MIPS_CPU_ISA_M64; default: mips_cpu.cputype = CPU_UNKNOWN; break; @@ -432,19 +426,10 @@ switch (mips_cpu.processor_id & 0xff00) { case PRID_IMP_AU1_REV1: case PRID_IMP_AU1_REV2: - mips_cpu.cputype = CPU_AU1000; - mips_cpu.isa_level = MIPS_CPU_ISA_M32; - mips_cpu.options = MIPS_CPU_TLB | MIPS_CPU_4KEX | - MIPS_CPU_4KTLB | MIPS_CPU_COUNTER | - MIPS_CPU_DIVEC | MIPS_CPU_WATCH; - config1 = read_mips32_cp0_config1(); - if (config1 & (1 << 3)) - mips_cpu.options |= MIPS_CPU_WATCH; - if (config1 & (1 << 2)) - mips_cpu.options |= MIPS_CPU_MIPS16; - if (config1 & 1) - mips_cpu.options |= MIPS_CPU_FPU; - mips_cpu.scache.flags = MIPS_CACHE_NOT_PRESENT; + if (mips_cpu.processor_id & 0xff000000) + mips_cpu.cputype = CPU_AU1500; + else + mips_cpu.cputype = CPU_AU1000; break; default: mips_cpu.cputype = CPU_UNKNOWN; Index: signal.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/kernel/signal.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- signal.c 20 Nov 2001 17:34:02 -0000 1.3 +++ signal.c 30 May 2002 20:42:10 -0000 1.4 @@ -456,8 +456,9 @@ regs->cp0_epc = regs->regs[25] = (unsigned long) ka->sa.sa_handler; #if DEBUG_SIG - printk("SIG deliver (%s:%d): sp=0x%p pc=0x%p ra=0x%p\n", current->comm, - current->pid, frame, regs->cp0_epc, frame->sf_code); + printk("SIG deliver (%s:%d): sp=0x%p pc=0x%lx ra=0x%p\n", + current->comm, current->pid, + frame, regs->cp0_epc, frame->sf_code); #endif return; @@ -532,8 +533,9 @@ regs->cp0_epc = regs->regs[25] = (unsigned long) ka->sa.sa_handler; #if DEBUG_SIG - printk("SIG deliver (%s:%d): sp=0x%p pc=0x%p ra=0x%p\n", current->comm, - current->pid, frame, regs->cp0_epc, frame->rs_code); + printk("SIG deliver (%s:%d): sp=0x%p pc=0x%lx ra=0x%p\n", + current->comm, current->pid, + frame, regs->cp0_epc, frame->rs_code); #endif return; Index: signal32.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/kernel/signal32.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- signal32.c 20 Nov 2001 17:34:02 -0000 1.3 +++ signal32.c 30 May 2002 20:42:10 -0000 1.4 @@ -537,8 +537,9 @@ regs->cp0_epc = regs->regs[25] = (unsigned long) ka->sa.sa_handler; #if DEBUG_SIG - printk("SIG deliver (%s:%d): sp=0x%p pc=0x%p ra=0x%p\n", current->comm, - current->pid, frame, regs->cp0_epc, frame->sf_code); + printk("SIG deliver (%s:%d): sp=0x%p pc=0x%lx ra=0x%p\n", + current->comm, current->pid, + frame, regs->cp0_epc, frame->sf_code); #endif return; @@ -613,8 +614,9 @@ regs->cp0_epc = regs->regs[25] = (unsigned long) ka->sa.sa_handler; #if DEBUG_SIG - printk("SIG deliver (%s:%d): sp=0x%p pc=0x%p ra=0x%p\n", current->comm, - current->pid, frame, regs->cp0_epc, frame->rs_code); + printk("SIG deliver (%s:%d): sp=0x%p pc=0x%lx ra=0x%p\n", + current->comm, current->pid, + frame, regs->cp0_epc, frame->rs_code); #endif return; Index: smp.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/kernel/smp.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- smp.c 21 Apr 2002 20:01:14 -0000 1.16 +++ smp.c 30 May 2002 20:42:10 -0000 1.17 @@ -7,6 +7,7 @@ * Copyright (C) 2000, 2001 Ralf Baechle * Copyright (C) 2000, 2001 Silicon Graphics, Inc. */ +#include <linux/config.h> #include <linux/delay.h> #include <linux/init.h> #include <linux/interrupt.h> @@ -78,6 +79,7 @@ printk("Slave cpu booted successfully\n"); CPUMASK_SETB(cpu_online_map, cpu); atomic_inc(&cpus_booted); + while (!atomic_read(&smp_commenced)); cpu_idle(); } #endif /* CONFIG_SGI_IP27 */ Index: syscall.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/kernel/syscall.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- syscall.c 26 Feb 2002 17:35:25 -0000 1.3 +++ syscall.c 30 May 2002 20:42:10 -0000 1.4 @@ -50,6 +50,59 @@ return res; } +#define COLOUR_ALIGN(addr,pgoff) \ + ((((addr)+SHMLBA-1)&~(SHMLBA-1)) + \ + (((pgoff)<<PAGE_SHIFT) & (SHMLBA-1))) + +unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, + unsigned long len, unsigned long pgoff, unsigned long flags) +{ + struct vm_area_struct * vmm; + int do_color_align; + + if (flags & MAP_FIXED) { + /* + * We do not accept a shared mapping if it would violate + * cache aliasing constraints. + */ + if ((flags & MAP_SHARED) && (addr & (SHMLBA - 1))) + return -EINVAL; + return addr; + } + + if (len > TASK_SIZE) + return -ENOMEM; + do_color_align = 0; + if (filp || (flags & MAP_SHARED)) + do_color_align = 1; + if (addr) { + if (do_color_align) + addr = COLOUR_ALIGN(addr, pgoff); + else + addr = PAGE_ALIGN(addr); + vmm = find_vma(current->mm, addr); + if (TASK_SIZE - len >= addr && + (!vmm || addr + len <= vmm->vm_start)) + return addr; + } + addr = TASK_UNMAPPED_BASE; + if (do_color_align) + addr = COLOUR_ALIGN(addr, pgoff); + else + addr = PAGE_ALIGN(addr); + + for (vmm = find_vma(current->mm, addr); ; vmm = vmm->vm_next) { + /* At this point: (!vmm || addr < vmm->vm_end). */ + if (TASK_SIZE - len < addr) + return -ENOMEM; + if (!vmm || addr + len <= vmm->vm_start) + return addr; + addr = vmm->vm_end; + if (do_color_align) + addr = COLOUR_ALIGN(addr, pgoff); + } +} + asmlinkage unsigned long sys_mmap(unsigned long addr, size_t len, unsigned long prot, unsigned long flags, unsigned long fd, off_t offset) Index: unaligned.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/kernel/unaligned.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- unaligned.c 24 Apr 2002 17:34:12 -0000 1.6 +++ unaligned.c 30 May 2002 20:42:11 -0000 1.7 @@ -5,7 +5,7 @@ * License. See the file "COPYING" in the main directory of this archive * for more details. * - * Copyright (C) 1996, 1998, 1999 by Ralf Baechle + * Copyright (C) 1996, 1998, 1999, 2002 by Ralf Baechle * Copyright (C) 1999 Silicon Graphics, Inc. * * This file contains exception handler for address error exception with the @@ -351,7 +351,7 @@ fault: /* Did we have an exception handler installed? */ - fixup = search_exception_table(regs->cp0_epc); + fixup = search_exception_table(exception_epc(regs)); if (fixup) { long new_epc; new_epc = fixup_exception(dpf_reg, fixup, regs->cp0_epc); |
From: James S. <jsi...@us...> - 2002-05-30 20:42:44
|
Update of /cvsroot/linux-mips/linux/arch/mips/kernel In directory usw-pr-cvs1:/tmp/cvs-serv29100/arch/mips/kernel Modified Files: irq.c proc.c smp.c Log Message: Updated Mips 64 to OSS tree. Index: irq.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/irq.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- irq.c 18 Mar 2002 22:38:02 -0000 1.11 +++ irq.c 30 May 2002 20:42:08 -0000 1.12 @@ -76,13 +76,13 @@ int get_irq_list(char *buf) { + int i, j; struct irqaction * action; char *p = buf; - int i; p += sprintf(p, " "); - for (i=0; i < 1 /*smp_num_cpus*/; i++) - p += sprintf(p, "CPU%d ", i); + for (j=0; j<smp_num_cpus; j++) + p += sprintf(p, "CPU%d ",j); *p++ = '\n'; for (i = 0 ; i < NR_IRQS ; i++) { @@ -90,7 +90,13 @@ if (!action) continue; p += sprintf(p, "%3d: ",i); +#ifndef CONFIG_SMP p += sprintf(p, "%10u ", kstat_irqs(i)); +#else + for (j = 0; j < smp_num_cpus; j++) + p += sprintf(p, "%10u ", + kstat.irqs[cpu_logical_map(j)][i]); +#endif p += sprintf(p, " %14s", irq_desc[i].handler->typename); p += sprintf(p, " %s", action->name); @@ -98,7 +104,8 @@ p += sprintf(p, ", %s", action->name); *p++ = '\n'; } - p += sprintf(p, "ERR: %10lu\n", atomic_read(&irq_err_count)); + p += sprintf(p, "\n"); + p += sprintf(p, "ERR: %10u\n", atomic_read(&irq_err_count)); return p - buf; } Index: proc.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/proc.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- proc.c 29 Apr 2002 23:05:11 -0000 1.17 +++ proc.c 30 May 2002 20:42:08 -0000 1.18 @@ -59,17 +59,15 @@ [CPU_TX3912] "TX3912", [CPU_TX3922] "TX3922", [CPU_TX3927] "TX3927", - [CPU_AU1000] "Au1000", + [CPU_AU1000] "Au1000", [CPU_AU1500] "Au1500", - [CPU_AU1100] "Au1100", [CPU_4KEC] "MIPS 4KEc", [CPU_4KSC] "MIPS 4KSc", [CPU_VR41XX] "NEC Vr41xx", [CPU_R5500] "R5500", [CPU_TX49XX] "TX49xx", - [CPU_TX39XX] "TX39xx", - [CPU_R5900] "R5900", - [CPU_RC32300] "RC32300" + [CPU_TX39XX] "TX39xx", + [CPU_20KC] "MIPS 20Kc" }; @@ -81,7 +79,7 @@ char fmt [64]; #ifdef CONFIG_SMP - if (!(cpu_online_map & (1<<n))) + if (!CPUMASK_TSTB(cpu_online_map, n)) return 0; #endif Index: smp.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/smp.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- smp.c 24 Apr 2002 17:33:03 -0000 1.17 +++ smp.c 30 May 2002 20:42:08 -0000 1.18 @@ -18,7 +18,6 @@ * Copyright (C) 2000, 2001 Silicon Graphics, Inc. * Copyright (C) 2000, 2001 Broadcom Corporation */ -#include <linux/config.h> #include <linux/cache.h> #include <linux/init.h> #include <linux/spinlock.h> @@ -43,8 +42,11 @@ /* Ze Big Kernel Lock! */ spinlock_t kernel_flag __cacheline_aligned_in_smp = SPIN_LOCK_UNLOCKED; int smp_threads_ready; +atomic_t smp_commenced = ATOMIC_INIT(0); int smp_num_cpus = 1; /* Number that came online. */ cpumask_t cpu_online_map; /* Bitmask of currently online CPUs */ +int __cpu_number_map[NR_CPUS]; +int __cpu_logical_map[NR_CPUS]; struct cpuinfo_mips cpu_data[NR_CPUS]; void (*volatile smp_cpu0_finalize)(void); @@ -107,7 +109,8 @@ void __init smp_commence(void) { - /* Not sure what to do here yet */ + wmb(); + atomic_set(&smp_commenced, 1); } void smp_send_reschedule(int cpu) |